ZGlmZiAtLWdpdCBhL0FuZHJvaWQubWsgYi9BbmRyb2lkLm1rCmluZGV4IGJmMjY1Y2IuLjk4YzQ3ZTUgMTAwNjQ0Ci0tLSBhL0FuZHJvaWQubWsKKysrIGIvQW5kcm9pZC5tawpAQCAtMTU5LDcgKzE1OSw2IEBACiAJY29yZWdyaW5kL21fY29tbWFuZGxpbmUuYyBcCiAJY29yZWdyaW5kL21fY2xpZW50c3RhdGUuYyBcCiAJY29yZWdyaW5kL21fY3B1aWQuUyBcCi0JY29yZWdyaW5kL21fZGVidWdnZXIuYyBcCiAJY29yZWdyaW5kL21fZGVidWdsb2cuYyBcCiAJY29yZWdyaW5kL21fZXJyb3JtZ3IuYyBcCiAJY29yZWdyaW5kL21fZXhlY29udGV4dC5jIFwKZGlmZiAtLWdpdCBhL0NPUFlJTkcgYi9DT1BZSU5HCmluZGV4IGU5MGRmZWQuLmQxNTkxNjkgMTAwNjQ0Ci0tLSBhL0NPUFlJTkcKKysrIGIvQ09QWUlORwpAQCAtMSwxMiArMSwxMiBAQAotCQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKLQkJICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCisgICAgICAgICAgICAgICAgICAgIEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCisgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCiAKLSBDb3B5cmlnaHQgKEMpIDE5ODksIDE5OTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gICAgIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyBDb3B5cmlnaHQgKEMpIDE5ODksIDE5OTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKICBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMKICBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KIAotCQkJICAgIFByZWFtYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKIAogICBUaGUgbGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYXJlIGRlc2lnbmVkIHRvIHRha2UgYXdheSB5b3VyCiBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpAQCAtMTUsNyArMTUsNyBAQAogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBsaWVzIHRvIG1vc3Qgb2YgdGhlIEZyZWUgU29mdHdhcmUKIEZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KIHVzaW5nIGl0LiAgKFNvbWUgb3RoZXIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHNvZnR3YXJlIGlzIGNvdmVyZWQgYnkKLXRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwordGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpbnN0ZWFkLikgIFlvdSBjYW4gYXBwbHkgaXQgdG8KIHlvdXIgcHJvZ3JhbXMsIHRvby4KIAogICBXaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSByZWZlcnJpbmcgdG8gZnJlZWRvbSwgbm90CkBAIC01Niw3ICs1Niw3IEBACiAgIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCiBtb2RpZmljYXRpb24gZm9sbG93LgogCi0JCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9OCiAKICAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwpAQCAtMjU1LDcgKzI1NSw3IEBACiBvZiBwcmVzZXJ2aW5nIHRoZSBmcmVlIHN0YXR1cyBvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kCiBvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KIAotCQkJICAgIE5PIFdBUlJBTlRZCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk8gV0FSUkFOVFkKIAogICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKIEZPUiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcuICBFWENFUFQgV0hFTgpAQCAtMjc3LDkgKzI3Nyw5IEBACiBQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KIAotCQkgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCiAKLQkgICAgSG93IHRvIEFwcGx5IFRoZXNlIFRlcm1zIHRvIFlvdXIgTmV3IFByb2dyYW1zCisgICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKIAogICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CiBwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CkBAIC0zMDMsMTcgKzMwMywxNiBAQAogICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKLQorICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisgICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyAgICA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgogCiBBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KIAogSWYgdGhlIHByb2dyYW0gaXMgaW50ZXJhY3RpdmUsIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQgbm90aWNlIGxpa2UgdGhpcwogd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKIAotICAgIEdub21vdmlzaW9uIHZlcnNpb24gNjksIENvcHlyaWdodCAoQykgeWVhciAgbmFtZSBvZiBhdXRob3IKKyAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgICBHbm9tb3Zpc2lvbiBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICAgVGhpcyBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdAogICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KQEAgLTMzNiw1ICszMzUsNSBAQAogVGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGRvZXMgbm90IHBlcm1pdCBpbmNvcnBvcmF0aW5nIHlvdXIgcHJvZ3JhbSBpbnRvCiBwcm9wcmlldGFyeSBwcm9ncmFtcy4gIElmIHlvdXIgcHJvZ3JhbSBpcyBhIHN1YnJvdXRpbmUgbGlicmFyeSwgeW91IG1heQogY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCi1saWJyYXJ5LiAgSWYgdGhpcyBpcyB3aGF0IHlvdSB3YW50IHRvIGRvLCB1c2UgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwKK2xpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsCiBQdWJsaWMgTGljZW5zZSBpbnN0ZWFkIG9mIHRoaXMgTGljZW5zZS4KZGlmZiAtLWdpdCBhL0NPUFlJTkcuRE9DUyBiL0NPUFlJTkcuRE9DUwppbmRleCAxYWQ1MGIwLi5hOTg4ZGE1IDEwMDY0NAotLS0gYS9DT1BZSU5HLkRPQ1MKKysrIGIvQ09QWUlORy5ET0NTCkBAIC0xLDkgKzEsOSBAQAotICAgICAgICBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UKLSAgICAgICAgICBWZXJzaW9uIDEuMiwgTm92ZW1iZXIgMjAwMgorICAgICAgICAgICAgICAgIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZQorICAgICAgICAgICAgICAgICAgVmVyc2lvbiAxLjIsIE5vdmVtYmVyIDIwMDIKIAogCiAgQ29weXJpZ2h0IChDKSAyMDAwLDIwMDEsMjAwMiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gICAgIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAgICAgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMKICBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KIApAQCAtMzk1LDQgKzM5NSwzIEBACiByZWNvbW1lbmQgcmVsZWFzaW5nIHRoZXNlIGV4YW1wbGVzIGluIHBhcmFsbGVsIHVuZGVyIHlvdXIgY2hvaWNlIG9mCiBmcmVlIHNvZnR3YXJlIGxpY2Vuc2UsIHN1Y2ggYXMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAogdG8gcGVybWl0IHRoZWlyIHVzZSBpbiBmcmVlIHNvZnR3YXJlLgotCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbGwuYW0gYi9NYWtlZmlsZS5hbGwuYW0KaW5kZXggZDU4NzU0OC4uNDRhNjIwNyAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuYWxsLmFtCisrKyBiL01ha2VmaWxlLmFsbC5hbQpAQCAtMTAwLDE1ICsxMDAsMTcgQEAKIAktTzIgLWcgXAogCS1zdGQ9Z251OTkgXAogCS1XYWxsIFwKLQktV2Nhc3QtYWxpZ24gXAogCS1XbWlzc2luZy1wcm90b3R5cGVzIFwKIAktV3NoYWRvdyBcCiAJLVdwb2ludGVyLWFyaXRoIFwKIAktV3N0cmljdC1wcm90b3R5cGVzIFwKIAktV21pc3NpbmctZGVjbGFyYXRpb25zIFwKKwlARkxBR19XX0NBU1RfQUxJR05AIFwKIAlARkxBR19XX0NBU1RfUVVBTEAgXAogCUBGTEFHX1dfV1JJVEVfU1RSSU5HU0AgXAorCUBGTEFHX1dfRU1QVFlfQk9EWUAgXAogCUBGTEFHX1dfRk9STUFUQCBcCisJQEZMQUdfV19GT1JNQVRfU0lHTkVETkVTU0AgXAogCUBGTEFHX1dfRk9STUFUX1NFQ1VSSVRZQCBcCiAJQEZMQUdfV19JR05PUkVEX1FVQUxJRklFUlNAIFwKIAlARkxBR19XX01JU1NJTkdfUEFSQU1FVEVSX1RZUEVAIFwKQEAgLTEzMywxMCArMTM1LDEwIEBACiBpZiBWR0NPTkZfT1NfSVNfREFSV0lOCiBBTV9DRkxBR1NfUFNPX0JBU0UgPSAtZHluYW1pYyBcCiAJCSAgICAgLU8gLWcgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLWZuby1zdHJpY3QtYWxpYXNpbmcgXAotCQkgICAgIC1mcGljIC1mUElDIC1mbm8tYnVpbHRpbgorCQkgICAgIC1mcGljIC1mUElDIC1mbm8tYnVpbHRpbiBARkxBR19GTk9fSVBBX0lDRkAKIGVsc2UKIEFNX0NGTEFHU19QU09fQkFTRSA9IC1PIC1nIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIFwKLQkJICAgICAtZnBpYyAtZm5vLWJ1aWx0aW4KKwkJICAgICAtZnBpYyAtZm5vLWJ1aWx0aW4gQEZMQUdfRk5PX0lQQV9JQ0ZACiBlbmRpZgogCiAKQEAgLTI0MCw2ICsyNDIsMTggQEAKIEFNX0NGTEFHU19USUxFR1hfTElOVVggICAgID0gQEZMQUdfTTY0QCAkKEFNX0NGTEFHU19CQVNFKQogQU1fQ0ZMQUdTX1BTT19USUxFR1hfTElOVVggPSBARkxBR19NNjRAICQoQU1fQ0ZMQUdTX0JBU0UpICQoQU1fQ0ZMQUdTX1BTT19CQVNFKQogCitBTV9GTEFHX00zMjY0X1g4Nl9TT0xBUklTICAgPSBARkxBR19NMzJACitBTV9DRkxBR1NfWDg2X1NPTEFSSVMgICAgICAgPSBARkxBR19NMzJAIEBQUkVGRVJSRURfU1RBQ0tfQk9VTkRBUllfMkAgXAorCQkJIAkkKEFNX0NGTEFHU19CQVNFKSAtZm9taXQtZnJhbWUtcG9pbnRlcgorQU1fQ0ZMQUdTX1BTT19YODZfU09MQVJJUyAgID0gQEZMQUdfTTMyQCAkKEFNX0NGTEFHU19CQVNFKSAkKEFNX0NGTEFHU19QU09fQkFTRSkKK0FNX0NDQVNGTEFHU19YODZfU09MQVJJUyAgICA9IEBGTEFHX00zMkAgLWcgLURfQVNNCisKK0FNX0ZMQUdfTTMyNjRfQU1ENjRfU09MQVJJUyA9IEBGTEFHX002NEAKK0FNX0NGTEFHU19BTUQ2NF9TT0xBUklTICAgICA9IEBGTEFHX002NEAgXAorCQkJCSQoQU1fQ0ZMQUdTX0JBU0UpIC1mb21pdC1mcmFtZS1wb2ludGVyCitBTV9DRkxBR1NfUFNPX0FNRDY0X1NPTEFSSVMgID0gQEZMQUdfTTY0QCAkKEFNX0NGTEFHU19CQVNFKSAkKEFNX0NGTEFHU19QU09fQkFTRSkKK0FNX0NDQVNGTEFHU19BTUQ2NF9TT0xBUklTICA9IEBGTEFHX002NEAgLWcgLURfQVNNCisKICMgRmxhZ3MgZm9yIHRoZSBwcmltYXJ5IHRhcmdldC4gIFRoZXNlIG11c3QgYmUgdXNlZCB0byBidWlsZCB0aGUKICMgcmVndGVzdHMgYW5kIHBlcmZvcm1hbmNlIHRlc3RzLiAgSW4gZmFjdCwgdGhlc2UgbXVzdCBiZSB1c2VkIHRvCiAjIGJ1aWxkIGFueXRoaW5nIHdoaWNoIGlzIGJ1aWx0IG9ubHkgb25jZSBvbiBhIGR1YWwtYXJjaCBidWlsZC4KQEAgLTI2MCw2ICsyNzQsMTAgQEAKICMKIFBSRUxPQURfTERGTEFHU19DT01NT05fTElOVVggID0gLW5vZGVmYXVsdGxpYnMgLXNoYXJlZCAtV2wsLXosaW50ZXJwb3NlLC16LGluaXRmaXJzdAogUFJFTE9BRF9MREZMQUdTX0NPTU1PTl9EQVJXSU4gPSAtZHluYW1pYyAtZHluYW1pY2xpYiAtYWxsX2xvYWQKK1BSRUxPQURfTERGTEFHU19DT01NT05fU09MQVJJUyA9IC1ub2RlZmF1bHRsaWJzIC1zaGFyZWQgLVdsLC16LGludGVycG9zZSwteixpbml0Zmlyc3QKK2lmIFNPTEFSSVNfWFBHX1NZTUJPTFNfUFJFU0VOVAorUFJFTE9BRF9MREZMQUdTX0NPTU1PTl9TT0xBUklTICs9IC1XbCwtTSwkKHRvcF9zcmNkaXIpL3NvbGFyaXMvdmdwcmVsb2FkLXNvbGFyaXMubWFwZmlsZQorZW5kaWYKIAogaWYgVkdDT05GX1BMQVRWQVJJQU5UX0lTX0FORFJPSUQKICMgVGhlIEFuZHJvaWQgdG9vbGNoYWluIGluY2x1ZGVzIGFsbCBraW5kcyBvZiBzdGRsaWIgaGVscGVycyBwcmVzZW50IGluCkBAIC0yODEsNCArMjk5LDYgQEAKIFBSRUxPQURfTERGTEFHU19NSVBTMzJfTElOVVggICA9ICQoUFJFTE9BRF9MREZMQUdTX0NPTU1PTl9MSU5VWCkgQEZMQUdfTTMyQAogUFJFTE9BRF9MREZMQUdTX01JUFM2NF9MSU5VWCAgID0gJChQUkVMT0FEX0xERkxBR1NfQ09NTU9OX0xJTlVYKSBARkxBR19NNjRACiBQUkVMT0FEX0xERkxBR1NfVElMRUdYX0xJTlVYICAgPSAkKFBSRUxPQURfTERGTEFHU19DT01NT05fTElOVVgpIEBGTEFHX002NEAKK1BSRUxPQURfTERGTEFHU19YODZfU09MQVJJUyAgICA9ICQoUFJFTE9BRF9MREZMQUdTX0NPTU1PTl9TT0xBUklTKSBARkxBR19NMzJACitQUkVMT0FEX0xERkxBR1NfQU1ENjRfU09MQVJJUyAgPSAkKFBSRUxPQURfTERGTEFHU19DT01NT05fU09MQVJJUykgQEZMQUdfTTY0QAogCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IGQzNWZkMzYuLjRhZDdiMTYgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0zMiw2ICszMiw3IEBACiAJbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0IFwKIAlhdXhwcm9ncyBcCiAJbXBpIFwKKwlzb2xhcmlzIFwKIAlkb2NzCiBESVNUX1NVQkRJUlMgID0gJChTVUJESVJTKQogCkBAIC00NSw4ICs0Niw5IEBACiAJZXhwLXNnY2hlY2suc3VwcCBcCiAJZGFyd2luOS5zdXBwIGRhcndpbjktZHJkLnN1cHAgXAogCWRhcndpbjEwLnN1cHAgZGFyd2luMTAtZHJkLnN1cHAgXAotCWRhcndpbjExLnN1cHAgZGFyd2luMTIuc3VwcCBkYXJ3aW4xMy5zdXBwIGRhcndpbjE0LnN1cHAgXAotCWJpb25pYy5zdXBwCisJZGFyd2luMTEuc3VwcCBkYXJ3aW4xMi5zdXBwIGRhcndpbjEzLnN1cHAgZGFyd2luMTQuc3VwcCBkYXJ3aW4xNS5zdXBwIFwKKwliaW9uaWMuc3VwcCBcCisJc29sYXJpczExLnN1cHAgc29sYXJpczEyLnN1cHAKIERFRkFVTFRfU1VQUF9GSUxFUyA9IEBERUZBVUxUX1NVUFBACiAKICMgV2UgaW5jbHVkZSBhbGwgdGhlIGJhc2UgLnN1cHAgZmlsZXMgaW4gdGhlIGRpc3RyaWJ1dGlvbiwgYnV0IG5vdApAQCAtMTA2LDYgKzEwOCw3IEBACiAJUkVBRE1FLmFuZHJvaWRfZW11bGF0b3IgXAogCVJFQURNRS5taXBzIFwKIAlSRUFETUUuYWFyY2g2NCBcCisJUkVBRE1FLnNvbGFyaXMgXAogCU5FV1Mub2xkIFwKIAl2YWxncmluZC5wYy5pbiBcCiAJdmFsZ3JpbmQuc3BlYy5pbiBcCmRpZmYgLS1naXQgYS9NYWtlZmlsZS50b29sLXRlc3RzLmFtIGIvTWFrZWZpbGUudG9vbC10ZXN0cy5hbQppbmRleCBjYTlkOWE2Li5lYjM1OWRiIDEwMDY0NAotLS0gYS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCisrKyBiL01ha2VmaWxlLnRvb2wtdGVzdHMuYW0KQEAgLTI2LDYgKzI2LDExIEBACiAjIGF1dG9tYWtlOyAgc2VlIGNvbW1lbnRzIGluIE1ha2VmaWxlLmFsbC5hbSBmb3IgbW9yZSBkZXRhaWwuCiBBTV9DQ0FTRkxBR1MgPSAkKEFNX0NQUEZMQUdTKQogCitpZiBWR0NPTkZfT1NfSVNfU09MQVJJUworIyBNYWtlIHN1cmUgdGhhdCBhbGwgdGVzdCBwcm9ncmFtcyBoYXZlIHRocmVhZGVkIGVycm5vLgorQU1fQ0ZMQUdTICArPSAtRF9SRUVOVFJBTlQKK2VuZGlmCisKIGlmIFZHQ09ORl9PU19JU19EQVJXSU4KIG5vaW5zdF9EU1lNUyA9ICQoY2hlY2tfUFJPR1JBTVMpCiBlbmRpZgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUudG9vbC5hbSBiL01ha2VmaWxlLnRvb2wuYW0KaW5kZXggNDFmNWM5Ny4uNWFmMzAyMyAxMDA2NDQKLS0tIGEvTWFrZWZpbGUudG9vbC5hbQorKysgYi9NYWtlZmlsZS50b29sLmFtCkBAIC0zNiw2ICszNiw5IEBACiAJLXN0YXRpYyAtbm9kZWZhdWx0bGlicyAtbm9zdGFydGZpbGVzIC11IF9zdGFydCBARkxBR19OT19CVUlMRF9JREAKIFRPT0xfTERGTEFHU19DT01NT05fREFSV0lOID0gXAogCS1ub2RlZmF1bHRsaWJzIC1ub3N0YXJ0ZmlsZXMgLVdsLC11LF9fc3RhcnQgLVdsLC1lLF9fc3RhcnQKK1RPT0xfTERGTEFHU19DT01NT05fU09MQVJJUyA9IFwKKwktc3RhdGljIC1ub2RlZmF1bHRsaWJzIC1ub3N0YXJ0ZmlsZXMgLXUgX3N0YXJ0IFwKKwktV2wsLU0sL3Vzci9saWIvbGQvbWFwLm5vZXhzdGsKIAogVE9PTF9MREZMQUdTX1g4Nl9MSU5VWCA9IFwKIAkkKFRPT0xfTERGTEFHU19DT01NT05fTElOVVgpIEBGTEFHX00zMkAKQEAgLTc5LDYgKzgyLDEyIEBACiBUT09MX0xERkxBR1NfVElMRUdYX0xJTlVYID0gXAogCSQoVE9PTF9MREZMQUdTX0NPTU1PTl9MSU5VWCkgQEZMQUdfTTY0QAogCitUT09MX0xERkxBR1NfWDg2X1NPTEFSSVMgPSBcCisJJChUT09MX0xERkxBR1NfQ09NTU9OX1NPTEFSSVMpIEBGTEFHX00zMkAKKworVE9PTF9MREZMQUdTX0FNRDY0X1NPTEFSSVMgPSBcCisJJChUT09MX0xERkxBR1NfQ09NTU9OX1NPTEFSSVMpIEBGTEFHX002NEAKKwogIyBPbiBBbmRyb2lkIHdlIG11c3QgYXNrIGZvciBub24tZXhlY3V0YWJsZSBzdGFjaywgbm90IHN1cmUgd2h5LgogaWYgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX0FSTV9MSU5VWAogaWYgVkdDT05GX1BMQVRWQVJJQU5UX0lTX0FORFJPSUQKQEAgLTEzOCw2ICsxNDcsMTIgQEAKIExJQlJFUExBQ0VNQUxMT0NfVElMRUdYX0xJTlVYID0gXAogCSQodG9wX2J1aWxkZGlyKS9jb3JlZ3JpbmQvbGlicmVwbGFjZW1hbGxvY190b29scHJlbG9hZC10aWxlZ3gtbGludXguYQogCitMSUJSRVBMQUNFTUFMTE9DX1g4Nl9TT0xBUklTID0gXAorCSQodG9wX2J1aWxkZGlyKS9jb3JlZ3JpbmQvbGlicmVwbGFjZW1hbGxvY190b29scHJlbG9hZC14ODYtc29sYXJpcy5hCisKK0xJQlJFUExBQ0VNQUxMT0NfQU1ENjRfU09MQVJJUyA9IFwKKwkkKHRvcF9idWlsZGRpcikvY29yZWdyaW5kL2xpYnJlcGxhY2VtYWxsb2NfdG9vbHByZWxvYWQtYW1kNjQtc29sYXJpcy5hCisKIExJQlJFUExBQ0VNQUxMT0NfTERGTEFHU19YODZfTElOVVggPSBcCiAJLVdsLC0td2hvbGUtYXJjaGl2ZSBcCiAJJChMSUJSRVBMQUNFTUFMTE9DX1g4Nl9MSU5VWCkgXApAQCAtMTk5LDYgKzIxNCwxNiBAQAogCSQoTElCUkVQTEFDRU1BTExPQ19USUxFR1hfTElOVVgpIFwKIAktV2wsLS1uby13aG9sZS1hcmNoaXZlCiAKK0xJQlJFUExBQ0VNQUxMT0NfTERGTEFHU19YODZfU09MQVJJUyA9IFwKKwktV2wsLS13aG9sZS1hcmNoaXZlIFwKKwkkKExJQlJFUExBQ0VNQUxMT0NfWDg2X1NPTEFSSVMpIFwKKwktV2wsLS1uby13aG9sZS1hcmNoaXZlCisKK0xJQlJFUExBQ0VNQUxMT0NfTERGTEFHU19BTUQ2NF9TT0xBUklTID0gXAorCS1XbCwtLXdob2xlLWFyY2hpdmUgXAorCSQoTElCUkVQTEFDRU1BTExPQ19BTUQ2NF9TT0xBUklTKSBcCisJLVdsLC0tbm8td2hvbGUtYXJjaGl2ZQorCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBHZW5lcmFsIHN0dWZmCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggZjRiMmNlMi4uYjQ4Mjc0NSAxMDA2NDQKLS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC0xLDg3ICsxLDIxMyBAQAotUmVsZWFzZSAzLjExLjAgKD8/ID8/Pz8/Pz8/PyAyMDE/KQorUmVsZWFzZSAzLjEyLjAgKD8/ID8/Pz8/Pz8/PyAyMDE/KQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotUmVsZWFzZSAzLjExLjAgaXMgdW5kZXIgZGV2ZWxvcG1lbnQsIG5vdCB5ZXQgcmVsZWFzZWQuCitSZWxlYXNlIDMuMTIuMCBpcyB1bmRlciBkZXZlbG9wbWVudCwgbm90IHlldCByZWxlYXNlZC4KIAogKiA9PT09PT09PT09PT09PT09PT0gUExBVEZPUk0gQ0hBTkdFUyA9PT09PT09PT09PT09PT09PQogCi0qIHMzOTB4OiBJdCBpcyBub3cgcmVxdWlyZWQgZm9yIHRoZSBob3N0IHRvIGhhdmUgdGhlIGxvbmcgZGlzcGxhY2VtZW50Ci0gIGZhY2lsaXR5LiBUaGUgb2xkZXN0IHN1cHBvcnRlZCBtYWNoaW5lIG1vZGVsIGlzIHo5OTAuCi0KICogPT09PT09PT09PT09PT09PT09PT0gVE9PTCBDSEFOR0VTID09PT09PT09PT09PT09PT09PT09CiAKICogTWVtY2hlY2s6CiAKLSogTWFzc2lmOgotICAtIE5ldyBtb25pdG9yIGNvbW1hbmQgJ2FsbF9zbmFwc2hvdHMgPGZpbGVuYW1lPicgdGhhdCBkdW1wcyBhbGwgc25hcHNob3RzCi0gICAgdGFrZW4gc28gZmFyLgotCiAqIEhlbGdyaW5kOgotICAtIFRoZSBkZWZhdWx0IHZhbHVlIGZvciAtLWNvbmZsaWN0LWNhY2hlLXNpemU9TiBoYXMgYmVlbiBkb3VibGVkIHRvIDIwMDAwMDAuCi0gICAgVXNlcnMgdGhhdCB3ZXJlIG5vdCB1c2luZyB0aGUgZGVmYXVsdCB2YWx1ZSBzaG91bGQgcHJlZmVycmFibHkgYWxzbwotICAgIGRvdWJsZSB0aGUgdmFsdWUgdGhleSBnaXZlLiAKLSAgICBUaGUgZGVmYXVsdCB3YXMgdXBkYWRlZCBkdWUgdG8gdGhlIGNoYW5nZXMgaW4gdGhlIGZ1bGwgaGlzdG9yeQotICAgIGltcGxlbWVudGF0aW9uLiBEb3VibGluZyB0aGUgdmFsdWUgZ2l2ZXMgaW4gYXZlcmFnZSBhIHNsaWdodGx5IG1vcmUKLSAgICBjb21wbGV0ZSBoaXN0b3J5IGFuZCB1c2VzIHNpbWlsYXIgbWVtb3J5IChvciBzaWduaWZpY2FudGx5IGxlc3MgbWVtb3J5Ci0gICAgaW4gdGhlIHdvcnN0IGNhc2UpIHRoYW4gdGhlIHByZXZpb3VzIEhlbGdyaW5kIHZlcnNpb24uCi0gICAgCi0gIC0gU2lnbmlmaWNhbnQgbWVtb3J5IGltcHJvdmVtZW50IGFuZCBtb2RlcmF0ZSBzcGVlZCBpbXByb3ZlbWVudCBmb3IKLSAgICAtLWhpc3RvcnktbGV2ZWw9ZnVsbCBmb3IgYXBwbGljYXRpb25zIGFjY2Vzc2luZyBhIGxvdCBvZiBtZW1vcnkgd2l0aAotICAgIG1hbnkgZGlmZmVyZW50IHN0YWNrdHJhY2VzLgotCi0gIC0gVGhlIGhlbGdyaW5kIG1vbml0b3IgY29tbWFuZCAnaW5mbyBsb2Nrcycgbm93IGFjY2VwdHMgYW4gb3B0aW9uYWwKLSAgICBhcmd1bWVudCAnbG9ja19hZGRyJywgdG8gb25seSBzaG93IGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NrIGF0IHRoZQotICAgIGdpdmVuIGFkZHJlc3MuCi0KLSAgLSBXaGVuIHVzaW5nIC0taGlzdG9yeS1sZXZlbD1mdWxsLCB0aGUgbmV3IGhlbGdyaW5kIG1vbml0b3IgY29tbWFuZAotICAgICdhY2Nlc3NoaXN0b3J5IDxhZGRyPiBbPGxlbj5dJyB3aWxsIHNob3cgdGhlIHJlY29yZGVkIGFjY2Vzc2VzIGZvcgotICAgIDxsZW4+IChvciAxKSBieXRlcyBhdCA8YWRkcj4uCiAKICogQ2FsbGdyaW5kOgogCisqIERSRDoKK24taS1ieiBJbXByb3ZlZCB0aHJlYWQgc3RhcnR1cCB0aW1lIHNpZ25pZmljYW50bHkgb24gbm9uLUxpbnV4IHBsYXRmb3Jtcy4KKwogKiA9PT09PT09PT09PT09PT09PT09PSBPVEhFUiBDSEFOR0VTID09PT09PT09PT09PT09PT09PT09CiAKKyogPT09PT09PT09PT09PT09PT09PT0gRklYRUQgQlVHUyA9PT09PT09PT09PT09PT09PT09PQorCitUaGUgZm9sbG93aW5nIGJ1Z3MgaGF2ZSBiZWVuIGZpeGVkIG9yIHJlc29sdmVkLiAgTm90ZSB0aGF0ICJuLWktYnoiCitzdGFuZHMgZm9yICJub3QgaW4gYnVnemlsbGEiIC0tIHRoYXQgaXMsIGEgYnVnIHRoYXQgd2FzIHJlcG9ydGVkIHRvIHVzCitidXQgbmV2ZXIgZ290IGEgYnVnemlsbGEgZW50cnkuICBXZSBlbmNvdXJhZ2UgeW91IHRvIGZpbGUgYnVncyBpbgorYnVnemlsbGEgKGh0dHBzOi8vYnVncy5rZGUub3JnL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD12YWxncmluZCkgcmF0aGVyCit0aGFuIG1haWxpbmcgdGhlIGRldmVsb3BlcnMgKG9yIG1haWxpbmcgbGlzdHMpIGRpcmVjdGx5IC0tIGJ1Z3MgdGhhdAorYXJlIG5vdCBlbnRlcmVkIGludG8gYnVnemlsbGEgdGVuZCB0byBnZXQgZm9yZ290dGVuIGFib3V0IG9yIGlnbm9yZWQuCisKK1RvIHNlZSBkZXRhaWxzIG9mIGEgZ2l2ZW4gYnVnLCB2aXNpdAorICBodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9WFhYWFhYCit3aGVyZSBYWFhYWFggaXMgdGhlIGJ1ZyBudW1iZXIgYXMgbGlzdGVkIGJlbG93LgorCisyNzg3NDQgIGN2dHBzMnBkIHdpdGggcmVkdW5kYW50IFJleFcKKzM1MzA4MyAgYXJtNjQgZG9lc24ndCBpbXBsZW1lbnQgdmFyaW91cyB4YXR0ciBzeXN0ZW0gY2FsbHMKKzM1MzA4NCAgYXJtNjQgZG9lc24ndCBzdXBwb3J0IHNpZ3BlbmRpbmcgc3lzdGVtIGNhbGwKKzM1MzM3MCAgZG9uJ3QgYWR2ZXJ0aXNlIFJEUkFORCBpbiBjcHVpZCBmb3IgQ29yZS1pNy00OTEwLWxpa2UgYXZ4MiBtYWNoaW5lCiszNTMzOTggIFdBUk5JTkc6IHVuaGFuZGxlZCBhbWQ2NC1zb2xhcmlzIHN5c2NhbGw6IDIwNworMzUzNjgwICBzMzkweDogQ3Jhc2ggd2l0aCBjZXJ0YWluIGdsaWJjIHZlcnNpb25zIGR1ZSB0byBub24taW1wbGVtZW50ZWQgVEJFR0lOCiszNTM4OTEgIEFzc2VydCAnYmFkX3NjYW5uZWRfYWRkciA8IFZHX1JPVU5ERE4oc3RhcnQrbGVuLCBzaXplb2YoQWRkcikpJyBmYWlsZWQKKzM1MzkxNyAgdW5oYW5kbGVkIGFtZDY0LXNvbGFyaXMgc3lzY2FsbCBmY2hkaXIoMTIwKQorMzUzOTIwICB1bmhhbmRsZWQgYW1kNjQtc29sYXJpcyBzeXNjYWxsOiAxNzAKKworCisKK1JlbGVhc2UgMy4xMS4wICgyMiBTZXB0ZW1iZXIgMjAxNSkKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworMy4xMS4wIGlzIGEgZmVhdHVyZSByZWxlYXNlIHdpdGggbWFueSBpbXByb3ZlbWVudHMgYW5kIHRoZSB1c3VhbAorY29sbGVjdGlvbiBvZiBidWcgZml4ZXMuCisKK1RoaXMgcmVsZWFzZSBzdXBwb3J0cyBYODYvTGludXgsIEFNRDY0L0xpbnV4LCBBUk0zMi9MaW51eCwKK0FSTTY0L0xpbnV4LCBQUEMzMi9MaW51eCwgUFBDNjRCRS9MaW51eCwgUFBDNjRMRS9MaW51eCwgUzM5MFgvTGludXgsCitNSVBTMzIvTGludXgsIE1JUFM2NC9MaW51eCwgQVJNL0FuZHJvaWQsIEFSTTY0L0FuZHJvaWQsCitNSVBTMzIvQW5kcm9pZCwgWDg2L0FuZHJvaWQsIFg4Ni9Tb2xhcmlzLCBBTUQ2NC9Tb2xhcmlzLCBYODYvTWFjT1NYCisxMC4xMCBhbmQgQU1ENjQvTWFjT1NYIDEwLjEwLiAgVGhlcmUgaXMgYWxzbyBwcmVsaW1pbmFyeSBzdXBwb3J0IGZvcgorWDg2L01hY09TWCAxMC4xMSwgQU1ENjQvTWFjT1NYIDEwLjExIGFuZCBUSUxFR1gvTGludXguCisKKyogPT09PT09PT09PT09PT09PT09IFBMQVRGT1JNIENIQU5HRVMgPT09PT09PT09PT09PT09PT0KKworKiBTdXBwb3J0IGZvciBTb2xhcmlzL3g4NiBhbmQgU29sYXJpcy9hbWQ2NCBoYXMgYmVlbiBhZGRlZC4KKworKiBQcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBNYWMgT1MgWCAxMC4xMSAoRWwgQ2FwaXRhbikgaGFzIGJlZW4gYWRkZWQuCisKKyogUHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgdGhlIFRpbGVyYSBUaWxlR1ggYXJjaGl0ZWN0dXJlIGhhcyBiZWVuIGFkZGVkLgorCisqIHMzOTB4OiBJdCBpcyBub3cgcmVxdWlyZWQgZm9yIHRoZSBob3N0IHRvIGhhdmUgdGhlICJsb25nIGRpc3BsYWNlbWVudCIKKyAgZmFjaWxpdHkuICBUaGUgb2xkZXN0IHN1cHBvcnRlZCBtYWNoaW5lIG1vZGVsIGlzIHo5OTAuCisKKyogeDg2OiBvbiBhbiBTU0UyIG9ubHkgaG9zdCwgVmFsZ3JpbmQgaW4gMzIgYml0IG1vZGUgbm93IGNsYWltcyB0byBiZSBhCisgIFBlbnRpdW0gNC4gIDMuMTAuMSB3cm9uZ2x5IGNsYWltZWQgdG8gYmUgYSBDb3JlIDIsIHdoaWNoIGlzIFNTU0UzLgorCisqIFRoZSBKSVQncyByZWdpc3RlciBhbGxvY2F0b3IgaXMgc2lnbmlmaWNhbnRseSBmYXN0ZXIsIG1ha2luZyB0aGUgSklUCisgIGFzIGEgd2hvbGUgc29tZXdoYXQgZmFzdGVyLCBzbyBKSVQtaW50ZW5zaXZlIGFjdGl2aXRpZXMsIGZvciBleGFtcGxlCisgIHByb2dyYW0gc3RhcnR1cCwgYXJlIG1vZGVzdGx5IGZhc3RlciwgYXJvdW5kIDUlLgorCisqIFRoZXJlIGhhdmUgYmVlbiBjaGFuZ2VzIHRvIHRoZSBkZWZhdWx0IHNldHRpbmdzIG9mIHNldmVyYWwgY29tbWFuZAorICBsaW5lIGZsYWdzLCBhcyBkZXRhaWxlZCBiZWxvdy4KKworKiBJbnRlbCBBVlgyIHN1cHBvcnQgaXMgbW9yZSBjb21wbGV0ZSAoNjQgYml0IHRhcmdldHMgb25seSkuICBPbiBBVlgyCisgIGNhcGFibGUgaG9zdHMsIHRoZSBzaW11bGF0ZWQgQ1BVSUQgd2lsbCBub3cgaW5kaWNhdGUgQVZYMiBzdXBwb3J0LgorCisqID09PT09PT09PT09PT09PT09PT09IFRPT0wgQ0hBTkdFUyA9PT09PT09PT09PT09PT09PT09PQorCisqIE1lbWNoZWNrOgorCisgIC0gVGhlIGRlZmF1bHQgdmFsdWUgZm9yIC0tbGVhay1jaGVjay1oZXVyaXN0aWNzIGhhcyBiZWVuIGNoYW5nZWQgZnJvbQorICAgICJub25lIiB0byAiYWxsIi4gVGhpcyBoZWxwcyB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBwb3NzaWJseQorICAgIGxvc3QgYmxvY2tzLCBpbiBwYXJ0aWN1bGFyIGZvciBDKysgYXBwbGljYXRpb25zLgorCisgIC0gVGhlIGRlZmF1bHQgdmFsdWUgZm9yIC0ta2VlcC1zdGFja3RyYWNlcyBoYXMgYmVlbiBjaGFuZ2VkIGZyb20KKyAgICAibWFsbG9jLXRoZW4tZnJlZSIgdG8gIm1hbGxvYy1hbmQtZnJlZSIuICBUaGlzIGhhcyBhIHNtYWxsIGNvc3QgaW4KKyAgICBtZW1vcnkgKG9uZSB3b3JkIHBlciBtYWxsb2MtZWQgYmxvY2spIGJ1dCBhbGxvd3MgTWVtY2hlY2sgdG8gc2hvdyB0aGUKKyAgICAzIHN0YWNrdHJhY2VzIG9mIGEgZGFuZ2xpbmcgcmVmZXJlbmNlOiB3aGVyZSB0aGUgYmxvY2sgd2FzIGFsbG9jYXRlZCwKKyAgICB3aGVyZSBpdCB3YXMgZnJlZWQsIGFuZCB3aGVyZSBpdCBpcyBhY2NjZXNzZWQgYWZ0ZXIgYmVpbmcgZnJlZWQuCisKKyAgLSBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgLS1wYXJ0aWFsLWxvYWRzLW9rIGhhcyBiZWVuIGNoYW5nZWQgZnJvbSAibm8iIHRvIAorICAgICJ5ZXMiLCBzbyBhcyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZSBlcnJvcnMgcmVzdWx0aW5nIGZyb20gc29tZSBraW5kcworICAgIG9mIHZlY3RvcmlzZWQgbG9vcHMuCisKKyAgLSBBIG5ldyBtb25pdG9yIGNvbW1hbmQgJ3hiIDxhZGRyPiA8bGVuPicgc2hvd3MgdGhlIHZhbGlkaXR5IGJpdHMgb2YKKyAgICA8bGVuPiBieXRlcyBhdCA8YWRkcj4uICBUaGUgbW9uaXRvciBjb21tYW5kICd4YicgaXMgZWFzaWVyIHRvIHVzZQorICAgIHRoYW4gZ2V0X3ZiaXRzIHdoZW4geW91IG5lZWQgdG8gYXNzb2NpYXRlIGJ5dGUgZGF0YSB2YWx1ZSB3aXRoCisgICAgdGhlaXIgY29ycmVzcG9uZGluZyB2YWxpZGl0eSBiaXRzLgorCisgIC0gVGhlICdibG9ja19saXN0JyBtb25pdG9yIGNvbW1hbmQgaGFzIGJlZW4gZW5oYW5jZWQ6CisgICAgICBvIGl0IGNhbiBwcmludCBhIHJhbmdlIG9mIGxvc3MgcmVjb3JkcworICAgICAgbyBpdCBub3cgYWNjZXB0cyBhbiBvcHRpb25hbCBhcmd1bWVudCAnbGltaXRlZCA8bWF4X2Jsb2Nrcz4nCisgICAgICAgIHRvIGNvbnRyb2wgdGhlIG51bWJlciBvZiBibG9ja3MgcHJpbnRlZC4KKyAgICAgIG8gaWYgYSBibG9jayBoYXMgYmVlbiBmb3VuZCB1c2luZyBhIGhldXJpc3RpYywgdGhlbgorICAgICAgICAnYmxvY2tfbGlzdCcgbm93IHNob3dzIHRoZSBoZXVyaXN0aWMgYWZ0ZXIgdGhlIGJsb2NrIHNpemUuCisgICAgICBvIHRoZSBsb3NzIHJlY29yZHMvYmxvY2tzIHRvIHByaW50IGNhbiBiZSBsaW1pdGVkIHRvIHRoZSBibG9ja3MKKyAgICAgICAgZm91bmQgdmlhIHNwZWNpZmllZCBoZXVyaXN0aWNzLgorCisgIC0gVGhlIEMgaGVscGVyIGZ1bmN0aW9ucyB1c2VkIHRvIGluc3RydW1lbnQgbG9hZHMgb24KKyAgICB4ODYte2xpbnV4LHNvbGFyaXN9IGFuZCBhcm0tbGludXggKGJvdGggMzItYml0IG9ubHkpIGhhdmUgYmVlbgorICAgIHJlcGxhY2VkIGJ5IGhhbmR3cml0dGVuIGFzc2VtYmx5IHNlcXVlbmNlcy4gIFRoaXMgZ2l2ZXMgc3BlZWR1cHMKKyAgICBpbiB0aGUgcmVnaW9uIG9mIDAlIHRvIDclIGZvciB0aG9zZSB0YXJnZXRzIG9ubHkuCisKKyAgLSBBIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uLCAtLWV4cGVuc2l2ZS1kZWZpbmVkbmVzcy1jaGVja3M9eWVzfG5vLAorICAgIGhhcyBiZWVuIGFkZGVkLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGF2b2lkaW5nIG9jY2FzaW9uYWwgaW52YWxpZAorICAgIHVuaW5pdGlhbGlzZWQtdmFsdWUgZXJyb3JzIGluIG9wdGltaXNlZCBjb2RlLiAgV2F0Y2ggb3V0IGZvcgorICAgIHJ1bnRpbWUgZGVncmFkYXRpb24sIGFzIHRoaXMgY2FuIGJlIHVwIHRvIDI1JS4gIEFzIGFsd2F5cywgdGhvdWdoLAorICAgIHRoZSBzbG93ZG93biBpcyBoaWdobHkgYXBwbGljYXRpb24gc3BlY2lmaWMuICBUaGUgZGVmYXVsdCBzZXR0aW5nCisgICAgaXMgIm5vIi4KKworKiBNYXNzaWY6CisKKyAgLSBBIG5ldyBtb25pdG9yIGNvbW1hbmQgJ2FsbF9zbmFwc2hvdHMgPGZpbGVuYW1lPicgZHVtcHMgYWxsCisgICAgc25hcHNob3RzIHRha2VuIHNvIGZhci4KKworKiBIZWxncmluZDoKKworICAtIFNpZ25pZmljYW50IG1lbW9yeSByZWR1Y3Rpb24gYW5kIG1vZGVyYXRlIHNwZWVkdXBzIGZvcgorICAgIC0taGlzdG9yeS1sZXZlbD1mdWxsIGZvciBhcHBsaWNhdGlvbnMgYWNjZXNzaW5nIGEgbG90IG9mIG1lbW9yeQorICAgIHdpdGggbWFueSBkaWZmZXJlbnQgc3RhY2t0cmFjZXMuCisKKyAgLSBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgLS1jb25mbGljdC1jYWNoZS1zaXplPU4gaGFzIGJlZW4gZG91YmxlZCB0bworICAgIDIwMDAwMDAuICBVc2VycyB0aGF0IHdlcmUgbm90IHVzaW5nIHRoZSBkZWZhdWx0IHZhbHVlIHNob3VsZAorICAgIHByZWZlcmFibHkgYWxzbyBkb3VibGUgdGhlIHZhbHVlIHRoZXkgZ2l2ZS4KKworICAgIFRoZSBkZWZhdWx0IHdhcyBjaGFuZ2VkIGR1ZSB0byB0aGUgY2hhbmdlcyBpbiB0aGUgImZ1bGwgaGlzdG9yeSIKKyAgICBpbXBsZW1lbnRhdGlvbi4gIERvdWJsaW5nIHRoZSB2YWx1ZSBnaXZlcyBvbiBhdmVyYWdlIGEgc2xpZ2h0bHkgbW9yZQorICAgIGNvbXBsZXRlIGhpc3RvcnkgYW5kIHVzZXMgc2ltaWxhciBtZW1vcnkgKG9yIHNpZ25pZmljYW50bHkgbGVzcyBtZW1vcnkKKyAgICBpbiB0aGUgd29yc3QgY2FzZSkgdGhhbiB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24uCisgICAgCisgIC0gVGhlIEhlbGdyaW5kIG1vbml0b3IgY29tbWFuZCAnaW5mbyBsb2Nrcycgbm93IGFjY2VwdHMgYW4gb3B0aW9uYWwKKyAgICBhcmd1bWVudCAnbG9ja19hZGRyJywgd2hpY2ggc2hvd3MgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2sgYXQgdGhlCisgICAgZ2l2ZW4gYWRkcmVzcyBvbmx5LgorCisgIC0gV2hlbiB1c2luZyAtLWhpc3RvcnktbGV2ZWw9ZnVsbCwgdGhlIG5ldyBIZWxncmluZCBtb25pdG9yIGNvbW1hbmQKKyAgICAnYWNjZXNzaGlzdG9yeSA8YWRkcj4gWzxsZW4+XScgd2lsbCBzaG93IHRoZSByZWNvcmRlZCBhY2Nlc3NlcyBmb3IKKyAgICA8bGVuPiAob3IgMSkgYnl0ZXMgYXQgPGFkZHI+LgorCisqID09PT09PT09PT09PT09PT09PT09IE9USEVSIENIQU5HRVMgPT09PT09PT09PT09PT09PT09PT0KKworKiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIC0tc21jLWNoZWNrIG9wdGlvbiBoYXMgYmVlbiBjaGFuZ2VkIGZyb20KKyAgInN0YWNrIiB0byAiYWxsLW5vbi1maWxlIiBvbiB0YXJnZXRzIHRoYXQgcHJvdmlkZSBhdXRvbWF0aWMgRC1JCisgIGNhY2hlIGNvaGVyZW5jZSAoeDg2LCBhbWQ2NCBhbmQgczM5MHgpLiAgVGhlIHJlc3VsdCBpcyB0byBwcm92aWRlLAorICBieSBkZWZhdWx0LCB0cmFuc3BhcmVudCBzdXBwb3J0IGZvciBKSVQgZ2VuZXJhdGVkIGFuZCBzZWxmLW1vZGlmeWluZworICBjb2RlIG9uIGFsbCB0YXJnZXRzLgorCisqIE1hYyBPUyBYIG9ubHk6IHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgLS1kc3ltdXRpbCBvcHRpb24gaGFzIGJlZW4KKyAgY2hhbmdlZCBmcm9tICJubyIgdG8gInllcyIsIHNpbmNlIGFueSBzZXJpb3VzIHVzYWdlIG9uIE1hYyBPUyBYCisgIGFsd2F5cyByZXF1aXJlZCBpdCB0byBiZSAieWVzIi4KKworKiBUaGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgLS1kYi1hdHRhY2ggYW5kIC0tZGItY29tbWFuZCBoYXZlIGJlZW4gcmVtb3ZlZC4KKyAgVGhleSB3ZXJlIGRlcHJlY2F0ZWQgaW4gMy4xMC4wLgorCiAqIFdoZW4gYSBwcm9jZXNzIGRpZXMgZHVlIHRvIGEgc2lnbmFsLCBWYWxncmluZCBub3cgc2hvd3MgdGhlIHNpZ25hbAogICBhbmQgdGhlIHN0YWNrdHJhY2UgYXQgZGVmYXVsdCB2ZXJib3NpdHkgKGkuZS4gdmVyYm9zaXR5IDEpLgogCi0qIEFkZHJlc3MgZGVzY3JpcHRpb24gbG9naWMgKHVzZWQgYnkgbWVtY2hlY2sgYW5kIGhlbGdyaW5kKQotICBub3cgZGVzY3JpYmVzIGFkZHJlc3NlcyBpbiBhbm9ueW1vdXMgc2VnbWVudHMsIGZpbGUgbW1hcC1lZAotICBzZWdtZW50cywgc2hhcmVkIG1lbW9yeSBzZWdtZW50cyBhbmQgdGhlIGJyayBkYXRhIHNlZ21lbnQuCisqIFRoZSBhZGRyZXNzIGRlc2NyaXB0aW9uIGxvZ2ljIHVzZWQgYnkgTWVtY2hlY2sgYW5kIEhlbGdyaW5kIG5vdworICBkZXNjcmliZXMgYWRkcmVzc2VzIGluIGFub255bW91cyBzZWdtZW50cywgZmlsZSBtbWFwLWVkIHNlZ21lbnRzLAorICBzaGFyZWQgbWVtb3J5IHNlZ21lbnRzIGFuZCB0aGUgYnJrIGRhdGEgc2VnbWVudC4KIAotKiBPcHRpb24gLS1lcnJvci1tYXJrZXJzPTxiZWdpbj4sPGVuZD4gY2FuIGJlIHVzZWQgdG8gbWFyawotICB0aGUgYmVnaW4vZW5kIG9mIGVycm9ycyBpbiB0ZXh0dWFsIG91dHB1dCBtb2RlLCB0byBmYWNpbGl0YXRlCi0gIHNlYXJjaGluZy9leHRyYWN0aW5nIGVycm9ycyBpbiBvdXRwdXQgZmlsZXMgbWl4aW5nIHZhbGdyaW5kCi0gIGVycm9ycyB3aXRoIHByb2dyYW0gb3V0cHV0LgorKiBUaGUgbmV3IG9wdGlvbiAtLWVycm9yLW1hcmtlcnM9PGJlZ2luPiw8ZW5kPiBjYW4gYmUgdXNlZCB0byBtYXJrIHRoZQorICBiZWdpbi9lbmQgb2YgZXJyb3JzIGluIHRleHR1YWwgb3V0cHV0IG1vZGUsIHRvIGZhY2lsaXRhdGUKKyAgc2VhcmNoaW5nL2V4dHJhY3RpbmcgZXJyb3JzIGluIG91dHB1dCBmaWxlcyB0aGF0IG1peCB2YWxncmluZCBlcnJvcnMKKyAgd2l0aCBwcm9ncmFtIG91dHB1dC4KIAotKiBOZXcgT3B0aW9uIC0tbWF4LXRocmVhZHM9PG51bWJlcj4gY2FuIGJlIHVzZWQgdG8gY2hhbmdlIHRoZQotICBudW1iZXIgb2YgdGhyZWFkcyB2YWxncmluZCBjYW4gaGFuZGxlLiBUaGUgZGVmYXVsdCBpcyA1MDAgdGhyZWFkcwotICB3aGljaCBzaG91bGQgYmUgbW9yZSB0aGFuIGVub3VnaCBmb3IgbW9zdCBhcHBsaWNhdGlvbnMuCisqIFRoZSBuZXcgb3B0aW9uIC0tbWF4LXRocmVhZHM9PG51bWJlcj4gY2FuIGJlIHVzZWQgdG8gY2hhbmdlIHRoZSBudW1iZXIKKyAgb2YgdGhyZWFkcyB2YWxncmluZCBjYW4gaGFuZGxlLiAgVGhlIGRlZmF1bHQgaXMgNTAwIHRocmVhZHMgd2hpY2gKKyAgc2hvdWxkIGJlIG1vcmUgdGhhbiBlbm91Z2ggZm9yIG1vc3QgYXBwbGljYXRpb25zLgogCi0qIE5ldyBPcHRpb24gLS12YWxncmluZC1zdGFja3NpemU9PG51bWJlcj4gY2FuIGJlIHVzZWQgdG8gY2hhbmdlCi0gIHRoZSBzaXplIG9mIHRoZSBwcml2YXRlIHRocmVhZCBzdGFja3MgdXNlZCBieSBWYWxncmluZC4KLSAgVXNlZnVsIHRvIHJlZHVjZSBtZW1vcnkgdXNlIG9yIGluY3JlYXNlIHRoZSBzdGFjayBzaXplIGlmIFZhbGdyaW5kCi0gIHNlZ2ZhdWx0cyBkdWUgdG8gc3RhY2sgZXhoYXVzdGVkLgorKiBUaGUgbmV3IG9wdGlvbiAtLXZhbGdyaW5kLXN0YWNrc2l6ZT08bnVtYmVyPiBjYW4gYmUgdXNlZCB0byBjaGFuZ2UgdGhlCisgIHNpemUgb2YgdGhlIHByaXZhdGUgdGhyZWFkIHN0YWNrcyB1c2VkIGJ5IFZhbGdyaW5kLiAgVGhpcyBpcyB1c2VmdWwKKyAgZm9yIHJlZHVjaW5nIG1lbW9yeSB1c2Ugb3IgaW5jcmVhc2luZyB0aGUgc3RhY2sgc2l6ZSBpZiBWYWxncmluZAorICBzZWdmYXVsdHMgZHVlIHRvIHN0YWNrIG92ZXJmbG93LgogCi0qIE5ldyBPcHRpb24gLS1hdmctdHJhbnN0YWItZW50cnktc2l6ZT08bnVtYmVyPiBjYW4gYmUgdXNlZCB0byB0dW5lCi0gIHRoZSBzaXplIG9mIHRoZSB0cmFuc2xhdGlvbiB0YWJsZSBzZWN0b3JzLCBlaXRoZXIgdG8gZ2FpbiBtZW1vcnkKLSAgb3IgdG8gYXZvaWQgdG9vIG1hbnkgcmV0cmFuc2xhdGlvbnMuCisqIFRoZSBuZXcgb3B0aW9uIC0tYXZnLXRyYW5zdGFiLWVudHJ5LXNpemU9PG51bWJlcj4gY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQorICB0aGUgZXhwZWN0ZWQgaW5zdHJ1bWVudGVkIGJsb2NrIHNpemUsIGVpdGhlciB0byByZWR1Y2UgbWVtb3J5IHVzZSBvcgorICB0byBhdm9pZCBleGNlc3NpdmUgcmV0cmFuc2xhdGlvbi4KIAotKiBWYWxncmluZCBjYW4gYmUgYnVpbHQgd2l0aCBJbnRlbCdzIElDQyBjb21waWxlci4gVGhlIHJlcXVpcmVkCi0gIGNvbXBpbGVyIHZlcnNpb24gaXMgMTQuMCBvciBsYXRlci4KKyogVmFsZ3JpbmQgY2FuIGJlIGJ1aWx0IHdpdGggSW50ZWwncyBJQ0MgY29tcGlsZXIsIHZlcnNpb24gMTQuMCBvciBsYXRlci4KIAogKiBOZXcgYW5kIG1vZGlmaWVkIEdEQiBzZXJ2ZXIgbW9uaXRvciBmZWF0dXJlczoKKwogICAtIFdoZW4gYSBzaWduYWwgaXMgcmVwb3J0ZWQgaW4gR0RCLCB5b3UgY2FuIG5vdyB1c2UgdGhlIEdEQiBjb252ZW5pZW5jZQogICAgIHZhcmlhYmxlICRfc2lnaW5mbyB0byBleGFtaW5lIGRldGFpbGVkIHNpZ25hbCBpbmZvcm1hdGlvbi4KICAKLSAgLSBWYWxncmluZCBnZGJzZXJ2ZXIgbm93IGFsbG93cyB0aGUgdXNlciB0byBjaGFuZ2UgdGhlIHNpZ25hbAotICAgIHRvIGRlbGl2ZXIgdG8gdGhlIHByb2Nlc3MuIFNvLCB1c2UgJ3NpZ25hbCBTSUdOQUwnIHRvIGNvbnRpbnVlIGV4ZWN1dGlvbgorICAtIFZhbGdyaW5kJ3MgZ2Ric2VydmVyIG5vdyBhbGxvd3MgdGhlIHVzZXIgdG8gY2hhbmdlIHRoZSBzaWduYWwKKyAgICB0byBkZWxpdmVyIHRvIHRoZSBwcm9jZXNzLiAgU28sIHVzZSAnc2lnbmFsIFNJR05BTCcgdG8gY29udGludWUgZXhlY3V0aW9uCiAgICAgd2l0aCBTSUdOQUwgaW5zdGVhZCBvZiB0aGUgc2lnbmFsIHJlcG9ydGVkIHRvIEdEQi4gVXNlICdzaWduYWwgMCcgdG8KICAgICBjb250aW51ZSB3aXRob3V0IHBhc3NpbmcgdGhlIHNpZ25hbCB0byB0aGUgcHJvY2Vzcy4KIAotICAtIFdpdGggcmVjZW50IEdEQiAoPj0gNy45LjUwLjIwMTUwNTE0LWN2cyksIHRoZSBjb21tYW5kICd0YXJnZXQgcmVtb3RlJworICAtIFdpdGggR0RCID49IDcuMTAsIHRoZSBjb21tYW5kICd0YXJnZXQgcmVtb3RlJwogICAgIHdpbGwgYXV0b21hdGljYWxseSBsb2FkIHRoZSBleGVjdXRhYmxlIGZpbGUgb2YgdGhlIHByb2Nlc3MgcnVubmluZwogICAgIHVuZGVyIFZhbGdyaW5kLiBUaGlzIG1lYW5zIHlvdSBkbyBub3QgbmVlZCB0byBzcGVjaWZ5IHRoZSBleGVjdXRhYmxlCi0gICAgZmlsZSB5b3Vyc2VsZiwgR0RCIHdpbGwgZGlzY292ZXIgaXQgaXRzZWxmLgotICAgIFNlZSBHREIgZG9jdW1lbnRhdGlvbiBhYm91dCAncVhmZXI6ZXhlYy1maWxlOnJlYWQnIHBhY2tldCBmb3IgbW9yZSBpbmZvLgorICAgIGZpbGUgeW91cnNlbGYsIEdEQiB3aWxsIGRpc2NvdmVyIGl0IGl0c2VsZi4gIFNlZSBHREIgZG9jdW1lbnRhdGlvbiBhYm91dAorICAgICdxWGZlcjpleGVjLWZpbGU6cmVhZCcgcGFja2V0IGZvciBtb3JlIGluZm8uCiAKICogPT09PT09PT09PT09PT09PT09PT0gRklYRUQgQlVHUyA9PT09PT09PT09PT09PT09PT09PQogCkBAIC0xMDAsNjAgKzIyNiw4NyBAQAogMTU1MTI1ICBhdm9pZCBjdXR0aW5nIGF3YXkgZmlsZTpsaW5lbm8gYWZ0ZXIgbG9uZyBmdW5jdGlvbiBuYW1lCiAxOTcyNTkgIFVuc3VwcG9ydGVkIGFyY2hfcHJ0Y3RsIFBSX1NFVF9HUyBvcHRpb24KIDIwMTE1MiAgcHBjNjQ6IEFzc2VydGlvbiBpbiBwcGMzMmdfZGlydHloZWxwZXJfTUZTUFJfMjY4XzI2OQorMjAxMjE2ICBGaXggVmFsZ3JpbmQgZG9lcyBub3Qgc3VwcG9ydCBwdGhyZWFkX3NpZ21hc2soKSBvbiBPUyBYCiAyMDE0MzUgIEZpeCBEYXJ3aW46IC12IGRvZXMgbm90IHNob3cga2VybmVsIHZlcnNpb24KIDIwODIxNyAgIldhcm5pbmc6IG5vdGVkIGJ1dCB1bmhhbmRsZWQgaW9jdGwgMHgyMDAwNzQ3YiIgb24gTWFjIE9TIFgKIDIxMTI1NiAgRml4ZWQgYW4gb3V0ZGF0ZWQgY29tbWVudCByZWdhcmRpbmcgdGhlIGRlZmF1bHQgcGxhdGZvcm0uCisyMTE1MjkgIEluY29tcGxldGUgY2FsbCBzdGFja3MgZm9yIGNvZGUgY29tcGlsZWQgYnkgbmV3ZXIgdmVyc2lvbnMgb2YgTVNWQwogMjExOTI2ICBBdm9pZCBjb21waWxhdGlvbiB3YXJuaW5ncyBpbiB2YWxncmluZC5oIHdpdGggLXBlZGFudGljCiAyMTIyOTEgIEZpeCB1bmhhbmRsZWQgc3lzY2FsbDogdW5peDoxMzIgKG1rZmlmbykgb24gT1MgWAogICAgICAgICA9PSAyNjMxMTkKIDIyNjYwOSAgQ3JlZGl0aW5nIHVwc3RyZWFtIGF1dGhvcnMgaW4gbWFuIHBhZ2UKIDIzMTI1NyAgVmFsZ3JpbmQgb21pdHMgcGF0aCB3aGVuIGV4ZWN1dGluZyBzY3JpcHQgZnJvbSBzaGViYW5nIGxpbmUKLTI1NDE2NCAgT1MgWCB0YXNrX2luZm86IFVOS05PV04gdGFzayBtZXNzYWdlIFtpZCAzNDA1LCB0byBtYWNoX3Rhc2tfc2VsZigpLCAKLSAgICAgICAgcmVwbHkgMHguLi4uLi4uLl0KKzI1NDE2NCAgT1MgWCB0YXNrX2luZm86IFVOS05PV04gdGFzayBtZXNzYWdlIFtpZCAzNDA1LCB0byBtYWNoX3Rhc2tfc2VsZigpIFsuLl0KKzI5NDA2NSAgSW1wcm92ZSB0aGUgcGRiIGZpbGUgcmVhZGVyIGJ5IGF2b2lkaW5nIGhhcmR3aXJlZCBhYnNvbHV0ZSBwYXRobmFtZXMKIDI2OTM2MCAgczM5MHg6IEZpeCBhZGRyZXNzaW5nIG1vZGUgc2VsZWN0aW9uIGZvciBjb21wYXJlLWFuZC1zd2FwCiszMDI2MzAgIE1lbWNoZWNrOiBBc3NlcnRpb24gZmFpbGVkOiAnc2l6ZW9mKFVXb3JkKSA9PSBzaXplb2YoVUludCknCisgICAgICAgID09IDMyNjc5NworMzEyOTg5ICBpb2N0bCBoYW5kbGluZyBuZWVkcyB0byBkbyBQT1NUIGhhbmRsaW5nIG9uIGdlbmVyaWMgaW9jdGxzIGFuZCBbLi5dCiAzMTkyNzQgIEZpeCB1bmhhbmRsZWQgc3lzY2FsbDogdW5peDo0MTAgKHNpZ3N1c3BlbmRfbm9jYW5jZWwpIG9uIE9TIFgKKzMyNDE4MSAgbW1hcCBkb2VzIG5vdCBoYW5kbGUgTUFQXzMyQklUIChoYW5kbGUgaXQgbm93LCByYXRoZXIgdGhhbiBmYWlsIGl0KQorMzI3NzQ1ICBGaXggdmFsZ3JpbmQgMy45LjAgYnVpbGQgZmFpbHMgb24gTWFjIE9TIFggMTAuNi44CiszMzAxNDcgIGxpYm1waXdyYXAgUE1QSV9HZXRfY291bnQgcmV0dXJucyB1bmRlZmluZWQgdmFsdWUKIDMzMzA1MSAgbW1hcCBvZiBodWdlIHBhZ2VzIGZhaWxzIGR1ZSB0byBpbmNvcnJlY3QgYWxpZ25tZW50CiAgICAgICAgID09IDMzOTE2MwogMzM0ODAyICB2YWxncmluZCBkb2VzIG5vdCBhbHdheXMgZXhwbGFpbiB3aHkgYSBnaXZlbiBvcHRpb24gaXMgYmFkCiszMzU2MTggIG1vdi53IHJOLCBwYy9zcCAoQVJNMzIpCiAzMzU3ODUgIGFtZDY0LT5JUiAweEM0IDB4RTIgMHg3NSAweDJGICh2bWFza21vdnBkKQogICAgICAgICA9PSAzMDczOTkKICAgICAgICAgPT0gMzQzMTc1CiAgICAgICAgID09IDM0Mjc0MAorICAgICAgICA9PSAzNDY5MTIKIDMzNTkwNyAgc2VnZmF1bHQgd2hlbiBydW5uaW5nIHdpbmUncyBkZHJhd2V4L3Rlc3RzL3N1cmZhY2UuYyB1bmRlciB2YWxncmluZAorMzM4NjAyICBBVlgyIGJpdCBpbiBDUFVJRCBtaXNzaW5nCiszMzg2MDYgIFN0cmFuZ2UgbWVzc2FnZSBmb3Igc2NyaXB0cyB3aXRoIGludmFsaWQgaW50ZXJwcmV0ZXIKIDMzODczMSAgcHBjOiBGaXggdGVzdHVpdGUgYnVpbGQgZm9yIHRvb2xjaGFpbnMgbm90IHN1cHBvcnRpbmcgLW1hbHRpdmVjCiAzMzg5OTUgIHNobWF0IHdpdGggaHVnZXBhZ2VzIChTSE1fSFVHRVRMQikgZmFpbHMgd2l0aCBFSU5WQUwKIDMzOTA0NSAgR2V0dGluZyB2YWxncmluZCB0byBjb21waWxlIGFuZCBydW4gb24gT1MgWCBZb3NlbWl0ZSAoMTAuMTApCiAgICAgICAgID09IDM0MDI1MgogMzM5MTU2ICBnZGJzcnYgbm90IGNhbGxlZCBmb3IgZmF0YWwgc2lnbmFsCiszMzkyMTUgIFZhbGdyaW5kIDMuMTAuMCBjb250YWluIDIwMTMgaW4gY29weXJpZ2h0cyBub3RpY2UKIDMzOTI4OCAgc3VwcG9ydCBDYXZpdW0gT2N0ZW9uIE1JUFMgc3BlY2lmaWMgQkJJVCozMiBpbnN0cnVjdGlvbnMKKzMzOTYzNiAgVXNlIGZ4c2F2ZTY0IGFuZCBmeHJzdG9yNjQgbW5lbW9uaWNzIGluc3RlYWQgb2Ygb2xkLXNjaG9vbCByZXg2NCBwcmVmaXgKIDMzOTQ0MiAgRml4IHRlc3RzdWl0ZSBidWlsZCBmYWlsdXJlIG9uIE9TIFggMTAuOQogMzM5NTQyICBFbmFibGUgY29tcGlsYXRpb24gd2l0aCBJbnRlbCdzIElDQyBjb21waWxlcgotMzM5NjM2ICBVc2UgZnhzYXZlNjQgYW5kIGZ4cnN0b3I2NCBtbmVtb25pY3MgaW5zdGVhZCBvZiBvbGQtc2Nob29sIHJleDY0IHByZWZpeCAKKzMzOTU2MyAgVGhlIERWQiBkZW11eCBETVhfU1RPUCBpb2N0bCBkb2Vzbid0IGhhdmUgYSB3cmFwcGVyCiAzMzk2ODggIE1hYy1zcGVjaWZpYyBBU00gZG9lcyBub3Qgc3VwcG9ydCAudmVyc2lvbiBkaXJlY3RpdmUgKGNwdWlkLAogICAgICAgICB0cm9uaWNhbCBhbmQgcHVzaGZwb3BmIHRlc3RzKQogMzM5NzQ1ICBWYWxncmluZCBjcmFzaCB3aGVuIGNoZWNrIE1hcm1hbGFkZSBhcHAgKHBhcnRpYWwgZml4KQogMzM5NzU1ICBGaXgga25vd24gZGVsaWJlcmF0ZSBtZW1vcnkgbGVhayBpbiBzZXRlbnYoKSBvbiBNYWMgT1MgWCAxMC45CiszMzk3NzggIExpbnV4L1RpbGVHeCBwbGF0Zm9ybSBzdXBwb3J0IGZvciBWYWxncmluZAogMzM5NzgwICBGaXgga25vd24gdW5pbml0aWFsaXNlZCByZWFkIGluIHB0aHJlYWRfcndsb2NrX2luaXQoKSBvbiBNYWMgT1MgWCAxMC45IAogMzM5Nzg5ICBGaXggbm9uZS90ZXN0cy9leGVjdmUgdGVzdCBvbiBNYWMgT1MgWCAxMC45CiAzMzk4MDggIEZpeCBub25lL3Rlc3RzL3JsaW1pdDY0X25vZmlsZSB0ZXN0IG9uIE1hYyBPUyBYIDEwLjkKKzMzOTgyMCAgdmV4IGFtZDY0LT5JUjogMHg2NiAweEYgMHgzQSAweDYzIDB4QSAweDQyIDB4NzQgMHg5IChwY21waXN0cmkgJDB4NDIpCiAzNDAxMTUgIEZpeCBub25lL3Rlc3RzL2NtZGxpbmVbMXwyXSB0ZXN0cyBvbiBzeXN0ZW1zIHdoaWNoIGRlZmluZSBUTVBESVIKKzM0MDM5MiAgQWxsb3cgdXNlciB0byBzZWxlY3QgbW9yZSBhY2N1cmF0ZSBkZWZpbmVkbmVzcyBjaGVja2luZyBpbiBtZW1jaGVjaworICAgICAgICB0byBhdm9pZCBpbnZhbGlkIGNvbXBsYWludHMgb24gb3B0aW1pc2VkIGNvZGUKIDM0MDQzMCAgRml4IHNvbWUgZ3JhbW1hdGljYWwgd2VpcmRuZXNzIGluIHRoZSBtYW51YWwuCiAzNDEyMzggIFJlY29nbml6ZSBHQ0M1L0RXQVJGdjUgRFdfTEFORyBjb25zdGFudHMgKEdvLCBDMTEsIEMrKzExLCBDKysxNCkKKzM0MTQxOSAgU2lnbmFsIGhhbmRsZXIgdWNvbnRleHRfdCBub3QgZmlsbGVkIG91dCBjb3JyZWN0bHkgb24gT1MgWAogMzQxNTM5ICBWR18oZGVzY3JpYmVfYWRkcikgc2hvdWxkIG5vdCBkZXNjcmliZSBhZGRyZXNzIGFzIGJlbG9uZ2luZyB0byBjbGllbnQKICAgICAgICAgc2VnbWVudCBpZiBpdCBpcyBwYXN0IHRoZSBoZWFwIGVuZAogMzQxNjEzICBFbmFibGUgYnVpbGRpbmcgb2YgbWFueXRocmVhZHMgYW5kIHRocmVhZC1leGl0cyB0ZXN0cyBvbiBNYWMgT1MgWAogMzQxNjE1ICBGaXggbm9uZS90ZXN0cy9kYXJ3aW4vYWNjZXNzX2V4dGVuZGVkIHRlc3Qgb24gTWFjIE9TIFgKLTM0MTY5OCAgVmFsZ3JpbmQncyBBRVNLRVlHRU5BU1NJU1QgZ2l2ZXMgd3JvbmcgcmVzdWx0IGluIHdvcmRzIDAgYW5kIDIKLSAgICAgICAgd2hlbiBkZXN0IHJlZ2lzdGVyID0gc291cmNlIHJlZ2lzdGVyCiszNDE2OTggIFZhbGdyaW5kJ3MgQUVTS0VZR0VOQVNTSVNUIGdpdmVzIHdyb25nIHJlc3VsdCBpbiB3b3JkcyAwIGFuZCAyIFsuLl0KIDM0MTc4OSAgYWFyY2g2NDogc2htYXQgZmFpbHMgd2l0aCB2YWxncmluZCBvbiBBUk12OAorMzQxOTk3ICBNSVBTNjQ6IENhdml1bSBPQ1RFT04gaW5zbnMgLSBpbW1lZGlhdGUgb3BlcmFuZCBoYW5kbGVkIGluY29ycmVjdGx5CiszNDIwMDggIHZhbGdyaW5kLmggbmVlZHMgdHlwZSBjYXN0IFsuLl0gZm9yIGNsYW5nL2xsdm0gaW4gNjQtYml0IG1vZGUKIDM0MjAzOCAgVW5oYW5kbGVkIHN5c2NhbGxzIG9uIGFhcmNoNjQgKG1iaW5kL2dldC9zZXRfbWVtcG9saWN5KQogMzQyMDYzICB3cm9uZyBmb3JtYXQgc3BlY2lmaWVyIGZvciB0ZXN0IG1jYmxvY2tsaXN0c2VhcmNoIGluIGdkYnNlcnZlcl90ZXN0cworMzQyMTE3ICBIYW5nIHdoZW4gbG9hZGluZyBQREIgZmlsZSBmb3IgTVNWQyBjb21waWxlZCBGaXJlZm94IHVuZGVyIFdpbmUKIDM0MjIyMSAgc29ja2V0IGNvbm5lY3QgZmFsc2UgcG9zaXRpdmUgdW5pbml0IG1lbW9yeSBmb3IgdW5rbm93biBhZiBmYW1pbHkKIDM0MjM1MyAgQWxsb3cgZHVtcGluZyBmdWxsIG1hc3NpZiBvdXRwdXQgd2hpbGUgdmFsZ3JpbmQgaXMgc3RpbGwgcnVubmluZworMzQyNTcxICBWYWxncmluZCBjaG9rZXMgb24gQVZYIGNvbXBhcmUgaW50cmluc2ljIHdpdGggX0NNUF9HRV9RUworICAgICAgICA9PSAzNDY0NzYKKyAgICAgICAgPT0gMzQ4Mzg3CisgICAgICAgID09IDM1MDU5MwogMzQyNjAzICBBZGQgSTJDX1NNQlVTIGlvY3RsIHN1cHBvcnQKIDM0MjYzNSAgT1MgWCAxMC4xMCAoWW9zZW1pdGUpIC0gbWlzc2luZyBzeXN0ZW0gY2FsbHMgYW5kIGZjbnRsIGNvZGUKIDM0MjY4MyAgTWFyayBtZW1vcnkgcGFzdCB0aGUgaW5pdGlhbCBicmsgbGltaXQgYXMgdW5hZGRyZXNzYWJsZQorMzQyNzgzICBhcm06IHVuaGFuZGxlZCBpbnN0cnVjdGlvbiAweEVFRkUxQUNBID0gInZjdnQuczMyLmYzMiBzMywgczMsICMxMiIKIDM0Mjc5NSAgSW50ZXJuYWwgZ2xpYmMgX19HSV9tZW1wY3B5IGNhbGwgc2hvdWxkIGJlIGludGVyY2VwdGVkCiszNDI4NDEgIHMzOTB4OiBTdXBwb3J0IGluc3RydWN0aW9ucyBmaWVicihhKSBhbmQgZmlkYnIoYSkKIDM0MzAxMiAgVW5oYW5kbGVkIHN5c2NhbGwgMzE5IChtZW1mZF9jcmVhdGUpCiAzNDMwNjkgIFBhdGNoIHVwZGF0aW5nIHY0bDIgQVBJIHN1cHBvcnQKIDM0MzE3MyAgaGVsZ3JpbmQgY3Jhc2ggZHVyaW5nIHN0YWNrIHVud2luZApAQCAtMTYyLDY4ICszMTUsMTM5IEBACiAzNDMzMDYgIE9TIFggMTAuMTA6IFVOS05PV04gbWFjaF9tc2cgdW5oYW5kbGVkIE1BQ0hfU0VORF9UUkFJTEVSIG9wdGlvbgogMzQzMzMyICBVbmhhbmRsZWQgaW5zdHJ1Y3Rpb24gMHg5RTMxMDAyMSAoZmN2dG11KSBvbiBhYXJjaDY0CiAzNDMzMzUgIHVuaGFuZGxlZCBpbnN0cnVjdGlvbiAweDFFNjM4NDAwIChmY2NtcCkgYWFyY2g2NAotMzQzNTIzICBPUyBYIG1hY2hfcG9ydHNfcmVnaXN0ZXI6IFVOS05PV04gdGFzayBtZXNzYWdlIFtpZCAzNDAzLCB0byAKLSAgICAgICAgbWFjaF90YXNrX3NlbGYoKSwgcmVwbHkgMHgzMGZdCiszNDM1MjMgIE9TIFggbWFjaF9wb3J0c19yZWdpc3RlcjogVU5LTk9XTiB0YXNrIG1lc3NhZ2UgW2lkIDM0MDMsIHRvIFsuLl0KKzM0MzUyNSAgT1MgWCBob3N0X2dldF9zcGVjaWFsX3BvcnQ6IFVOS05PV04gaG9zdCBtZXNzYWdlIFtpZCA0MTIsIHRvIFsuLl0KIDM0MzU5NyAgcHBjNjRsZTogaW5jb3JyZWN0IHVzZSBvZiBvZmZzZW9mIG1hY3JvCiszNDM2NDkgIE9TIFggaG9zdF9jcmVhdGVfbWFjaF92b3VjaGVyOiBVTktOT1dOIGhvc3QgbWVzc2FnZSBbaWQgMjIyLCB0byBbLi5dCiszNDM2NjMgIE9TIFggMTAuMTAgIE1lbWNoZWNqIGFsd2F5cyByZXBvcnRzIGEgbGVhayByZWdhcmRsZXNzIG9mIFsuLl0KIDM0MzczMiAgVW5oYW5kbGVkIHN5c2NhbGwgMTQ0IChzZXRnaWQpIG9uIGFhcmNoNjQKIDM0MzczMyAgVW5oYW5kbGVkIHN5c2NhbGwgMTg3IChtc2djdGwgYW5kIHJlbGF0ZWQpIG9uIGFhcmNoNjQKLTM0MzgwMiAgczM5MHg6IEZpeCBmYWxzZSBwb3NpdGl2ZXMgImNvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uCi0gICAgICAgIHVuaXRpYWxpc2VkIHZhbHVlKHMpIgorMzQzODAyICBzMzkweDogRmFsc2UgcG9zaXRpdmUgImNvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIFsuLl0KIDM0MzkwMiAgLS12Z2RiPXllcyBkb2Vzbid0IGJyZWFrIHdoZW4gLS14bWw9eWVzIGlzIHVzZWQKIDM0Mzk2NyAgRG9uJ3Qgd2FybiBhYm91dCBzZXR1aWQvc2V0Z2lkL3NldGNhcCBleGVjdXRhYmxlIGZvciBkaXJlY3RvcmllcwogMzQzOTc4ICBSZWNvZ25pemUgRFdBUkY1L0dDQzUgRFdfTEFOR19Gb3J0cmFuIDIwMDMgYW5kIDIwMDggY29uc3RhbnRzCiAzNDQwMDcgIGFjY2VwdDQgc3lzY2FsbCB1bmhhbmRsZWQgb24gYXJtNjQgKDI0MikgYW5kIHBwYzY0ICgzNDQpCi0zNDQwMzMgIEhlbGdyaW5kIG9uIEFSTTMyIGxvc2VzIHRyYWNrIG9mIG11dGV4IGxvY2tlZG5lc3Mgc3RhdGUgaW4KLSAgICAgICAgcHRocmVhZF9jb25kX3dhaXQKKzM0NDAzMyAgSGVsZ3JpbmQgb24gQVJNMzIgbG9zZXMgdHJhY2sgb2YgbXV0ZXggc3RhdGUgaW4gcHRocmVhZF9jb25kX3dhaXQKIDM0NDA1NCAgd3d3IC0gdXBkYXRlIGluZm8gZm9yIFNvbGFyaXMvaWxsdW1vcworMzQ0NDE2ICAnbWFrZSByZWd0ZXN0JyBkb2VzIG5vdCB3b3JrIGNsZWFubHkgb24gT1MgWAogMzQ0MjM1ICBSZW1vdmUgZHVwbGljYXRlIGluY2x1ZGUgb2YgcHViX2NvcmVfYXNwYWNlbWdyLmgKIDM0NDI3OSAgc3lzY2FsbCBzZW5kbW1zZyBvbiBhcm02NCAoMjY5KSBhbmQgcHBjMzIvNjQgKDM0OSkgdW5oYW5kbGVkCiAzNDQyOTUgIHN5c2NhbGwgcmVjdm1tc2cgb24gYXJtNjQgKDI0MykgYW5kIHBwYzMyLzY0ICgzNDMpIHVuaGFuZGxlZAogMzQ0MzA3ICAyIHVuaGFuZGxlZCBzeXNjYWxscyBvbiBhYXJjaDY0L2FybTY0OiB1bW91bnQyKDM5KSwgbW91bnQgKDQwKQogMzQ0MzE0ICBjYWxsZ3JpbmRfYW5ub3RhdGUgLi4uIHdhcm5pbmdzIGFib3V0IGNvbW1hbmRzIGNvbnRhaW5pbmcgbmV3bGluZXMKIDM0NDMxOCAgc29ja2V0Y2FsbCBzaG91bGQgd3JhcCByZWN2bW1zZyBhbmQgc2VuZG1tc2cKLTM0NDQ5OSAgRml4IGNvbXBpbGF0aW9uIGZvciBMaW51eCBrZXJuZWwgPj0gNC4gV2l0aCB0aGlzLCBhbHNvIHJlcXVpcmUKLSAgICAgICAgYSBMaW51eCBrZXJuZWwgPj0gMi42IGFzIDIuNCBpcyBtb3N0bHkgdW50ZXN0ZWQgYW5kIG1pZ2h0IHRyaWdnZXIKLSAgICAgICAgb2J2aW91cyBhbmQgbm9uLW9idmlvdXMgaXNzdWVzCi0zNDQ1MTIgIEZpeCB1bmhhbmRsZWQgc3lzY2FsbDogdW5peDozNDggKF9fcHRocmVhZF9jaGRpcikgYW5kIHVuaGFuZGxlZCAKLSAgICAgICAgc3lzY2FsbDogdW5peDozNDkgKF9fcHRocmVhZF9mY2hkaXIpIG9uIE9TIFgKKzM0NDMzNyAgRml4IHVuaGFuZGxlZCBzeXNjYWxsOiBtYWNoOjQxIChfa2VybmVscnBjX21hY2hfcG9ydF9ndWFyZF90cmFwKQorMzQ0NDE2ICBGaXggJ21ha2UgcmVndGVzdCcgZG9lcyBub3Qgd29yayBjbGVhbmx5IG9uIE9TIFgKKzM0NDQ5OSAgRml4IGNvbXBpbGF0aW9uIGZvciBMaW51eCBrZXJuZWwgPj0gNC4wLjAKKzM0NDUxMiAgT1MgWDogdW5oYW5kbGVkIHN5c2NhbGw6IHVuaXg6MzQ4IChfX3B0aHJlYWRfY2hkaXIpLCAKKyAgICAgICAgdW5peDozNDkgKF9fcHRocmVhZF9mY2hkaXIpCiAzNDQ1NTkgIEdhcmJhZ2UgY29sbGVjdGlvbiBvZiB1bnVzZWQgc2VnbWVudCBuYW1lcyBpbiBhZGRyZXNzIHNwYWNlIG1hbmFnZXIKIDM0NDU2MCAgRml4IHN0YWNrIHRyYWNlcyBtaXNzaW5nIHBlbnVsdGltYXRlIGZyYW1lIG9uIE9TIFgKIDM0NDYyMSAgRml4IG1lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlNCB0ZXN0IG9uIE9TIFgKIDM0NDY4NiAgRml4IHN1cHByZXNzaW9uIGZvciBwdGhyZWFkX3J3bG9ja19pbml0IG9uIE9TIFggMTAuMTAKIDM0NDcwMiAgRml4IG1pc3NpbmcgbGlib2JqYyBzdXBwcmVzc2lvbnMgb24gT1MgWCAxMC4xMAorICAgICAgICA9PSAzNDQ1NDMKIDM0NDkzNiAgRml4IHVuaGFuZGxlZCBzeXNjYWxsOiB1bml4OjQ3MyAocmVhZGxpbmthdCkgb24gT1MgWCAxMC4xMAogMzQ0OTM5ICBGaXggbWVtY2hlY2svdGVzdHMveG1sMSBvbiBPUyBYIDEwLjEwCiAzNDUwMTYgIGhlbGdyaW5kL3Rlc3RzL2xvY2tlZF92c191bmxvY2tlZDIgaXMgZmFpbGluZyBzb21ldGltZXMKIDM0NTA3OSAgRml4IGJ1aWxkIHByb2JsZW1zIGluIFZFWC91c2VmdWwvdGVzdF9tYWluLmMKKzM0NTEyNiAgSW5jb3JyZWN0IGhhbmRsaW5nIG9mIFZJRElPQ19HX0FVRElPIGFuZCBHX0FVRE9VVAorMzQ1MTc3ICBhcm02NDogcHJmbSAocmVnKSBub3QgaW1wbGVtZW50ZWQKIDM0NTIxNSAgUGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIGZvciB0aGUgcmVnaXN0ZXIgYWxsb2NhdG9yCiszNDUyNDggIGFkZCBzdXBwb3J0IGZvciBTb2xhcmlzIE9TIGluIHZhbGdyaW5kCiszNDUzMzggIFRJT0NHU0VSSUFMIGFuZCBUSU9DU1NFUklBTCBpb2N0bCBzdXBwb3J0IG9uIExpbnV4CiAzNDUzOTQgIEZpeCBtZW1jaGVjay90ZXN0cy9zdHJjaHIgb24gT1MgWAogMzQ1NjM3ICBGaXggbWVtY2hlY2svdGVzdHMvc2VuZG1zZyBvbiBPUyBYCiAzNDU2OTUgIEFkZCBQT1dFUlBDIHN1cHBvcnQgZm9yIEFUX0RDQUNIRVNJWkUgYW5kIEhXQ0FQMgogMzQ1ODI0ICBGaXggYXNwYWNlbSBzZWdtZW50IG1pc21hdGNoOiBzZWVuIHdpdGggbm9uZS90ZXN0cy9iaWdjb2RlCiAzNDU4ODcgIEZpeCBhbiBhc3NlcnRpb24gaW4gdGhlIGFkZHJlc3Mgc3BhY2UgbWFuYWdlcgorMzQ1OTI4ICBhbWQ2NDogY2FsbHN0YWNrIG9ubHkgY29udGFpbnMgY3VycmVudCBmdW5jdGlvbiBmb3Igc21hbGwgc3RhY2tzCiszNDU5ODQgIGRpc0luc3RyKGFybSk6IHVuaGFuZGxlZCBpbnN0cnVjdGlvbjogMHhFRTE5M0YxRQorMzQ1OTg3ICBNSVBTNjQ6IEltcGxlbWVudCBjYXZpdW0gTEhYIGluc3RydWN0aW9uCiszNDYwMzEgIE1JUFM6IEltcGxlbWVudCBzdXBwb3J0IGZvciB0aGUgQ3ZtQ291bnQgcmVnaXN0ZXIgKHJod3IgJTAsIDMxKQorMzQ2MTg1ICBGaXggdHlwbyBzYXZpbmcgYWx0aXZlYyByZWdpc3RlciB2MjQKIDM0NjI2NyAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIFBQQzY0IGNvZGUgb24gY2FsbCB0byBMaWJWRVhfR3Vlc3RQUEM2NF9nZXRfWEVSKCkKICAgICAgICAgYW5kIExpYlZFWF9HdWVzdFBQQzY0X2dldF9DUigpCiAzNDYyNzAgIFJlZ3Jlc3Npb24gdGVzdHMgbm9uZS90ZXN0cy9qbV92ZWMvaXNhXzJfMDcgYW5kCiAgICAgICAgIG5vbmUvdGVzdHMvdGVzdF9pc2FfMl8wN19wYXJ0MiBoYXZlIGZhaWx1cmVzIG9uIFBQQzY0IGxpdHRsZSBlbmRpYW4KIDM0NjMwNyAgZnVzZSBmaWxlc3lzdGVtIHN5c2NhbGwgZGVhZGxvY2tzCiAzNDYzMjQgIFBQQzY0IG1pc3Npbmcgc3VwcG9ydCBmb3IgbGJhcngsIGxoYXJ4LCBzdGJjeCBhbmQgc3RoY3ggaW5zdHJ1Y3Rpb25zCiszNDY0MTEgIE1JUFM6IFN5c1Jlczo6X3ZhbEV4IGhhbmRsaW5nIGlzIGluY29ycmVjdAogMzQ2NDE2ICBBZGQgc3VwcG9ydCBmb3IgTExfSU9DX1BBVEgyRklEIGFuZCBMTF9JT0NfR0VUUEFSRU5UIEx1c3RyZSBpb2N0bHMKIDM0NjQ3NCAgUFBDNjQgUG93ZXIgOCwgc3ByIFRFWEFTUlUgcmVnaXN0ZXIgbm90IHN1cHBvcnRlZAogMzQ2NDg3ICBDb21waWxlciBnZW5lcmF0ZXMgIm5vdGUiIGFib3V0IGEgZnV0dXJlIEFCSSBjaGFuZ2UgZm9yIFBQQzY0CiszNDY1NjIgIE1JUFM2NDogbHdsL2x3ciBpbnN0cnVjdGlvbnMgYXJlIHBlcmZvcm1pbmcgNjRiaXQgbG9hZHMKKyAgICAgICAgYW5kIGNhdXNpbmcgc3B1cmlvdXMgImludmFsaWQgcmVhZCBvZiBzaXplIDgiIHdhcm5pbmdzCiAzNDY4MDEgIEZpeCBsaW5rIGVycm9yIG9uIE9TIFg6IF92Z01vZHVsZUxvY2FsX3NmX21heWJlX2V4dGVuZF9zdGFjawogMzQ3MTUxICBGaXggc3VwcHJlc3Npb24gZm9yIHB0aHJlYWRfcndsb2NrX2luaXQgb24gT1MgWCAxMC44CiAzNDcyMzMgIEZpeCBtZW1jaGVjay90ZXN0cy9zdHJjaHIgb24gT1MgWCAxMC4xMCAoSGFzd2VsbCkgCi0zNDczNzkgIHZhbGdyaW5kIC0tbGVhay1jaGVjaz1mdWxsIG1lbWxlYWsgZXJyb3JzIGZyb20gc3lzdGVtIGxpYnJhcmllcyBvbiBPUyBYIDEwLjgKKzM0NzMyMiAgUG93ZXIgUEMgcmVncmVzc2lvbiB0ZXN0IGNsZWFudXAKKzM0NzM3OSAgdmFsZ3JpbmQgLS1sZWFrLWNoZWNrPWZ1bGwgbGVhayBlcnJvcnMgZnJvbSBzeXN0ZW0gbGlicyBvbiBPUyBYIDEwLjgKICAgICAgICAgPT0gMjE3MjM2CiAzNDczODkgIHVuaGFuZGxlZCBzeXNjYWxsOiAzNzMgKExpbnV4IEFSTSBzeW5jZnMpCiszNDc2ODYgIFBhdGNoIHNldCB0byBjbGVhbnVwIFBQQzY0IHJlZ3Rlc3RzCiszNDc5NzggIFJlbW92ZSBiYXNoIGRlcGVuZGVuY2llcyB3aGVyZSBub3QgbmVlZGVkCiszNDc5ODIgIE9TIFg6IHVuZGVmaW5lZCBzeW1ib2xzIGZvciBhcmNoaXRlY3R1cmUgeDg2XzY0OiAiX2dsb2JhbCIgWy4uXQorMzQ3OTg4ICBNZW1jaGVjazogdGhlICdpbXBvc3NpYmxlJyBoYXBwZW5lZDogdW5leHBlY3RlZCBzaXplIGZvciBBZGRyIChPU1gvd2luZSkKKyAgICAgICAgPT0gMzQ1OTI5CiszNDgxMDIgIFBhdGNoIHVwZGF0aW5nIHY0bDIgQVBJIHN1cHBvcnQKKzM0ODI0NyAgYW1kNjQgZnJvbnQgZW5kOiBqbm8ganVtcHMgd3JvbmdseSB3aGVuIG92ZXJmbG93IGlzIG5vdCBzZXQKKzM0ODI2OSAgSW1wcm92ZSBtbWFwIE1BUF9IVUdFVExCIHN1cHBvcnQuCiszNDgzMzQgIChwcGMpIHZhbGdyaW5kIGRvZXMgbm90IHNpbXVsYXRlIGRjYmZsIC0gdGhlbiBteSBwcm9ncmFtIHRlcm1pbmF0ZXMKKzM0ODM0NSAgQXNzZXJ0aW9uIGZhaWxzIGZvciBuZWdhdGl2ZSBsaW5lbm8KKzM0ODM3NyAgVW5zdXBwb3J0ZWQgQVJNIGluc3RydWN0aW9uOiB5aWVsZAorMzQ4NTY1ICBGaXggZGV0ZWN0aW9uIG9mIGNvbW1hbmQgbGluZSBvcHRpb24gYXZhaWxhYmlsaXR5IGZvciBjbGFuZworMzQ4NTc0ICB2ZXggYW1kNjQtPklSIHBjbXBpc3RyaSBTU0U0LjIgdW5zdXBwb3J0ZWQgKHBjbXBpc3RyaSAkMHgxOCkKKzM0ODcyOCAgRml4IGJyb2tlbiBjaGVjayBmb3IgVklESU9DX0dfRU5DX0lOREVYCiszNDg3NDggIEZpeCByZWR1bmRhbnQgY29uZGl0aW9uCiszNDg4OTAgIEZpeCBjbGFuZyB3YXJuaW5nIGFib3V0IHVuc3VwcG9ydGVkIC0tcGFyYW0gaW5saW5lLXVuaXQtZ3Jvd3RoPTkwMAorMzQ4OTQ5ICBCb2d1cyAiRVJST1I6IC0taWdub3JlLXJhbmdlczogc3VzcGljaW91c2x5IGxhcmdlIHJhbmdlIgorMzQ5MDM0ICBBZGQgTHVzdHJlIGlvY3RscyBMTF9JT0NfR1JPVVBfTE9DSyBhbmQgTExfSU9DX0dST1VQX1VOTE9DSworMzQ5MDg2ICBGaXggVU5LTk9XTiB0YXNrIG1lc3NhZ2UgW2lkIDM0MDYsIHRvIG1hY2hfdGFza19zZWxmKCksIFsuLl0KKzM0OTA4NyAgRml4IFVOS05PV04gdGFzayBtZXNzYWdlIFtpZCAzNDEwLCB0byBtYWNoX3Rhc2tfc2VsZigpLCBbLi5dCiszNDk2MjYgIEltcGxlbWVudGVkIGFkZGl0aW9uYWwgWGVuIGh5cGVyY2FsbHMKKzM0OTc2OSAgQ2xhbmcvb3N4OiBsZDogd2FybmluZzogLXJlYWRfb25seV9yZWxvY3MgY2Fubm90IGJlIHVzZWQgd2l0aCB4ODZfNjQKKzM0OTc5MCAgQ2xlYW4gdXAgb2YgdGhlIGhhcmR3YXJlIGNhcGFiaWxpdHkgY2hlY2tpbmcgdXRpbGl0aWVzLgorMzQ5ODI4ICBtZW1jcHkgaW50ZXJjZXB0cyBtZW1tb3ZlIGNhdXNpbmcgc3JjL2RzdCBvdmVybGFwIGVycm9yIChwcGM2NCBsZC5zbykKKzM0OTg3NCAgRml4IHR5cG9zIGluIHNvdXJjZSBjb2RlCiszNDk4NzkgIG1lbWNoZWNrOiBhZGQgaGFuZHdyaXR0ZW4gYXNzZW1ibHkgZm9yIGhlbHBlcmNfTE9BRFYqCiszNDk5NDEgIGRpX25vdGlmeV9tbWFwIG1pZ2h0IGNyZWF0ZSB3cm9uZyBzdGFydC9zaXplIERlYnVnSW5mb01hcHBpbmcKKzM1MDA2MiAgdmV4IHg4Ni0+SVI6IDB4NjYgMHhGIDB4M0EgMHhCIChST1VORFNEKSBvbiBPUyBYCiszNTAyMDIgIEFkZCBsaW1pdGVkIHBhcmFtIHRvICdtb25pdG9yIGJsb2NrX2xpc3QnCiszNTAyOTAgIHMzOTB4OiBTdXBwb3J0IGluc3RydWN0aW9ucyBmaXhicihhKQorMzUwMzU5ICBtZW1jaGVjay90ZXN0cy94ODYvZnhzYXZlIGhhbmdzIGluZGVmaW5ldGVseSBvbiBPUyBYCiszNTA4MDkgIEZpeCBub25lL3Rlc3RzL2FzeW5jLXNpZ3MgZm9yIFNvbGFyaXMKKzM1MDgxMSAgUmVtb3ZlIHJlZmVyZW5jZSB0byAtLWRiLWF0dGFjaCB3aGljaCBoYXMgYmVlbiByZW1vdmVkLgorMzUwODEzICBNZW1jaGVjay94ODY6IGVuYWJsZSBoYW5kd3JpdHRlbiBhc3NlbWJseSBoZWxwZXJzIGZvciB4ODYvU29sYXJpcyB0b28KKzM1MDg1NCAgaGFyZC10by11bmRlcnN0YW5kIGNvZGUgaW4gVkdfKGxvYWRfRUxGKSgpCiszNTExNDAgIGFybTY0IHN5c2NhbGxzIHNldHVpZCAoMTQ2KSBhbmQgc2V0cmVzZ2lkICgxNDkpIG5vdCBpbXBsZW1lbnRlZAorMzUxMzg2ICBTb2xhcmlzOiBDYW5ub3QgcnVuIGxkLnNvLjEgdW5kZXIgVmFsZ3JpbmQKKzM1MTQ3NCAgRml4IFZHXyhpc2Vxc2lnc2V0KSBhcyBvYnZpb3VzCiszNTE1MzQgIEZpeCBpbmNvcnJlY3QgaGVhZGVyIGd1YXJkCiszNTE2MzIgIEZpeCBVTktOT1dOIGZjbnRsIDk3IG9uIE9TIFggMTAuMTEKKzM1MTc1NiAgSW50ZXJjZXB0IHBsYXRmb3JtX21lbWNociRWQVJJQU5UJEhhc3dlbGwgb24gT1MgWAorMzUxODU4ICBsZHNvZXhlYyBzdXBwb3J0IG9uIFNvbGFyaXMKKzM1MTg3MyAgTmV3ZXIgZ2NjIGRvZXNuJ3QgYWxsb3cgX19idWlsdGluX3RhYm9ydGRjW2ldIGluIHBwYzMyIG1vZGUKKzM1MjEzMCAgaGVsZ3JpbmQgcmVwb3J0cyBmYWxzZSByYWNlcyBmb3IgcHJpbnRmcyB1c2luZyBtZW1wY3B5IG9uIEZJTEUqIHN0YXRlCiszNTIyODQgIHMzOTA6IENvbmRpdGlvbmFsIGp1bXAgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpIGluIHZmcHJpbnRmIAorMzUyMzIwICBhcm02NCBjcmFzaCBvbiBub25lL3Rlc3RzL25lc3RlZGZzCiszNTI3NjUgIFZiaXQgdGVzdCBmYWlscyBvbiBQb3dlciA2CiszNTI3NjggIFRoZSBtYmFyIGluc3RydWN0aW9uIGlzIG1pc3NpbmcgZnJvbSB0aGUgUG93ZXIgUEMgc3VwcG9ydAorMzUyNzY5ICBQb3dlciBQQyBwcm9ncmFtIHByaW9yaXR5IHJlZ2lzdGVyIChQUFIpIGlzIG5vdCBzdXBwb3J0ZWQKIG4taS1ieiAgUHJvdmlkZSBpbXBsZW1lbnRhdGlvbnMgb2YgY2VydGFpbiBjb21waWxlciBidWlsdGlucyB0byBzdXBwb3J0Ci0gICAgICAgIGNvbXBpbGVycyB3aG8gbWF5IG5vdCBwcm92aWRlIHRob3NlCisgICAgICAgIGNvbXBpbGVycyB0aGF0IG1heSBub3QgcHJvdmlkZSB0aG9zZQogbi1pLWJ6ICBPbGQgU1RBQlMgY29kZSBpcyBzdGlsbCBiZWluZyBjb21waWxlZCwgYnV0IG5ldmVyIHVzZWQuIFJlbW92ZSBpdC4KIG4taS1ieiAgRml4IGNvbXBpbGF0aW9uIG9uIGRpc3Ryb3Mgd2l0aCBnbGliYyA8IDIuNQogbi1pLWJ6ICAodmV4IDMwOTgpIEF2b2lkIGdlbmVyYXRpb24gb2YgTmVvbiBpbnNucyBvbiBub24tTmVvbiBob3N0cwogbi1pLWJ6ICBFbmFibGUgcnRfc2lncGVuZGluZyBzeXNjYWxsIG9uIHBwYzY0IGxpbnV4Lgogbi1pLWJ6ICBtcmVtYXAgZGlkIG5vdCB3b3JrIHByb3Blcmx5IG9uIHNoYXJlZCBtZW1vcnkKK24taS1ieiAgRml4IGluY29ycmVjdCBzaXplb2YgZXhwcmVzc2lvbiBpbiBzeXN3cmFwLXhlbi5jIHJlcG9ydGVkIGJ5IENvdmVyaXR5CituLWktYnogIEluIFZBTEdSSU5EX1BSSU5URiB3cml0ZSBvdXQgdGhyZWFkIG5hbWUsIGlmIGFueSwgdG8geG1sCisKKygzLjExLjAuVEVTVDE6ICA4IFNlcHRlbWJlciAyMDE1LCB2ZXggcjMxODcsIHZhbGdyaW5kIHIxNTY0NikKKygzLjExLjAuVEVTVDI6IDIxIFNlcHRlbWJlciAyMDE1LCB2ZXggcjMxOTMsIHZhbGdyaW5kIHIxNTY2NykKKygzLjExLjA6ICAgICAgIDIyIFNlcHRlbWJlciAyMDE1LCB2ZXggcjMxOTUsIHZhbGdyaW5kIHIxNTY3NCkKKwogCiAKIFJlbGVhc2UgMy4xMC4xICgyNSBOb3ZlbWJlciAyMDE0KQpAQCAtMjc0LDYgKzQ5OCwxMyBAQAogMzQwODA3ICBkaXNJbnN0cihhcm0pOiB1bmhhbmRsZWQgaW5zdHJ1Y3Rpb246IDB4RUU5ODlCMjAKIDM0MDg1NiAgZGlzSW5zdHIoYXJtNjQpOiB1bmhhbmRsZWQgaW5zdHJ1Y3Rpb24gMHgxRTYzNEM0NSAoZmNzZWwpCiAzNDA5MjIgIGFybTY0OiB1bmhhbmRsZWQgZ2V0Z3JvdXBzL3NldGdyb3VwcyBzeXNjYWxscworMzUwMjUxICBGaXggdHlwbyBpbiBWRVggdXRpbGl0eSBwcm9ncmFtICh0ZXN0X21haW4uYykuCiszNTA0MDcgIGFybTY0OiB1bmhhbmRsZWQgaW5zdHJ1Y3Rpb24gdWN2dGYgKHZlY3RvciwgaW50ZWdlcikKKzM1MDgwOSAgbm9uZS90ZXN0cy9hc3luYy1zaWdzIGJyZWFrcyB3aGVuIHJ1biB1bmRlciBjcm9uIG9uIFNvbGFyaXMKKzM1MDgxMSAgdXBkYXRlIFJFQURNRS5zb2xhcmlzIGFmdGVyIHIxNTQ0NQorMzUwODEzICBVc2UgaGFuZHdyaXR0ZW4gbWVtY2hlY2sgYXNzZW1ibHkgaGVscGVycyBvbiB4ODYvU29sYXJpcyBbLi5dCiszNTA4NTQgIHN0cmFuZ2UgY29kZSBpbiBWR18obG9hZF9FTEYpKCkKKzM1MTE0MCAgYXJtNjQgc3lzY2FsbHMgc2V0dWlkICgxNDYpIGFuZCBzZXRyZXNnaWQgKDE0OSkgbm90IGltcGxlbWVudGVkCiBuLWktYnogIERSRCBhbmQgSGVsZ3JpbmQ6IEhhbmRsZSBJbWJlX0NhbmNlbFJlc2VydmF0aW9uIChjbHJleCBvbiBBUk0pCiBuLWktYnogIEFkZCBtaXNzaW5nIF1dIHRvIHRlcm1pbmF0ZSBDREFUQS4KIG4taS1ieiAgR2xpYmMgdmVyc2lvbnMgcHJpb3IgdG8gMi41IGRvIG5vdCBkZWZpbmUgUFRSQUNFX0dFVFNJR0lORk8KZGlmZiAtLWdpdCBhL1JFQURNRS5zMzkwIGIvUkVBRE1FLnMzOTAKaW5kZXggNWIzZDNjMC4uOTZkYWMxYiAxMDA2NDQKLS0tIGEvUkVBRE1FLnMzOTAKKysrIGIvUkVBRE1FLnMzOTAKQEAgLTIyLDYgKzIyLDkgQEAKIC0gU29tZSBnY2MgdmVyc2lvbnMgdXNlIG12YyB0byBjb3B5IDQvOCBieXRlIHZhbHVlcy4gVGhpcyB3aWxsIGFmZmVjdAogICBjZXJ0YWluIGRlYnVnIG1lc3NhZ2VzLiBGb3IgZXhhbXBsZSwgbWVtY2hlY2sgd2lsbCBjb21wbGFpbiBhYm91dAogICA0IG9uZS1ieXRlIHJlYWRzL3dyaXRlcyBpbnN0ZWFkIG9mIGp1c3QgYSBzaW5nbGUgcmVhZC93cml0ZS4KKy0gVGhlIHRyYW5zYWN0aW9uYWwtZXhlY3V0aW9uIGZhY2lsaXR5IGlzIG5vdCBzdXBwb3J0ZWQ7IGl0IGlzIG1hc2tlZAorICBvZmYgZnJvbSBIV0NBUC4KKy0gVGhlIHZlY3RvciBmYWNpbGl0eSBpcyBub3Qgc3VwcG9ydGVkOyBpdCBpcyBtYXNrZWQgb2ZmIGZyb20gSFdDQVAuCiAKIAogSGFyZHdhcmUgZmFjaWxpdGllcwpkaWZmIC0tZ2l0IGEvUkVBRE1FLnNvbGFyaXMgYi9SRUFETUUuc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDczZTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvUkVBRE1FLnNvbGFyaXMKQEAgLTAsMCArMSwxNDIgQEAKK1JlcXVpcmVtZW50cworLS0tLS0tLS0tLS0tCistIFlvdSBuZWVkIGEgcmVjZW50IFNvbGFyaXMtbGlrZSBPUyB0byBjb21waWxlIHRoaXMgcG9ydC4gU29sYXJpcyAxMSBvcgorICBhbnkgaWxsdW1vcy1iYXNlZCBkaXN0cmlidXRpb24gc2hvdWxkIHdvcmssIFNvbGFyaXMgMTAgaXMgbm90IHN1cHBvcnRlZC4KKyAgUnVubmluZyBgdW5hbWUgLXJgIGhhcyB0byBwcmludCAnNS4xMScuCistIFJlY2VudCBHQ0MgdG9vbHMgYXJlIHJlcXVpcmVkLCBHQ0MgMyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrLiBHQ0MgdmVyc2lvbgorICA0LjUgKG9yIGhpZ2hlcikgaXMgcmVjb21tZW5kZWQuCistIFNvbGFyaXMgbGQgaGFzIHRvIGJlIHRoZSBmaXJzdCBsaW5rZXIgaW4gdGhlIFBBVEguIEdOVSBsZCBjYW5ub3QgYmUgdXNlZC4KKyAgVGhlcmUgaXMgY3VycmVudGx5IG5vIGxpbmtlciBjaGVjayBpbiB0aGUgY29uZmlndXJlIHNjcmlwdCBidXQgdGhlIGxpbmtpbmcKKyAgcGhhc2UgZmFpbHMgaWYgR05VIGxkIGlzIHVzZWQuIFJlY2VudCBTb2xhcmlzL2lsbHVtb3MgZGlzdHJpYnV0aW9ucyBhcmUgb2suCistIEEgd29ya2luZyBjb21iaW5hdGlvbiBvZiBhdXRvdG9vbHMgaXMgcmVxdWlyZWQ6IGFjbG9jYWwsIGF1dG9oZWFkZXIsCisgIGF1dG9tYWtlIGFuZCBhdXRvY29uZiBoYXZlIHRvIGJlIGZvdW5kIGluIHRoZSBQQVRILiBZb3Ugc2hvdWxkIGJlIGFibGUgdG8KKyAgaW5zdGFsbCBwa2c6L2RldmVsb3Blci9idWlsZC9hdXRvbWFrZSBhbmQgcGtnOi9kZXZlbG9wZXIvYnVpbGQvYXV0b2NvbmYKKyAgcGFja2FnZXMgdG8gZnVsbGZpbCB0aGlzIHJlcXVpcmVtZW50LgorLSBTeXN0ZW0gaGVhZGVyIGZpbGVzIGFyZSByZXF1aXJlZC4gT24gU29sYXJpcywgdGhlc2UgY2FuIGJlIGluc3RhbGxlZCB3aXRoOgorICAgICMgcGtnIGluc3RhbGwgc3lzdGVtL2hlYWRlcgorLSBHTlUgbWFrZSBpcyBhbHNvIHJlcXVpcmVkLiBPbiBTb2xhcmlzLCB0aGlzIGNhbiBiZSBxdWlja2x5IGFjaGlldmVkIHdpdGg6CisgICAgJCBQQVRIPS91c3IvZ251L2JpbjokUEFUSDsgZXhwb3J0IFBBVEgKKy0gRm9yIHJlbW90ZSBkZWJ1Z2dpbmcgc3VwcG9ydCwgd29ya2luZyBHREIgaXMgcmVxdWlyZWQgKHNlZSBiZWxvdykuCisKKworQ29tcGlsYXRpb24KKy0tLS0tLS0tLS0tCitQbGVhc2UgZm9sbG93IHRoZSBnZW5lcmljIGluc3RydWN0aW9ucyBpbiB0aGUgUkVBRE1FIGZpbGUuCisKK1RoZSBjb25maWd1cmUgc2NyaXB0IGRldGVjdHMgYSBjYW5vbmljYWwgaG9zdCB0byBkZXRlcm1pbmUgd2hpY2ggdmVyc2lvbiBvZgorVmFsZ3JpbmQgc2hvdWxkIGJlIGJ1aWx0LiBJZiB0aGUgc3lzdGVtIGNvbXBpbGVyIGJ5IGRlZmF1bHQgcHJvZHVjZXMgMzItYml0CitiaW5hcmllcyB0aGVuIG9ubHkgYSAzMi1iaXQgdmVyc2lvbiBvZiBWYWxncmluZCB3aWxsIGJlIGJ1aWx0LiBUbyBlbmFibGUKK2NvbXBpbGF0aW9uIG9mIGJvdGggNjQtYml0IGFuZCAzMi1iaXQgdmVyc2lvbnMgb24gc3VjaCBhIHN5c3RlbSwgaXNzdWUgdGhlCitjb25maWd1cmUgc2NyaXB0IGFzIGZvbGxvd3M6CisuL2NvbmZpZ3VyZSBDQz0nZ2NjIC1tNjQnIENYWD0nZysrIC1tNjQnCisKKworT3JhY2xlIFNvbGFyaXMgYW5kIGlsbHVtb3Mgc3VwcG9ydAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorT25lIG9mIHRoZSBtYWluIGdvYWwgb2YgdGhpcyBwb3J0IGlzIHRvIHN1cHBvcnQgYm90aCBPcmFjbGUgU29sYXJpcyBhbmQKK2lsbHVtb3Mga2VybmVscy4gVGhpcyBpcyBhIHZlcnkgaGFyZCB0YXNrIGJlY2F1c2UgU29sYXJpcyBrZXJuZWwgdHJhZGl0aW9uYWxseQorZG9lcyBub3QgcHJvdmlkZSBhIHN0YWJsZSBzeXNjYWxsIGludGVyZmFjZSBhbmQgYmVjYXVzZSBWYWxncmluZCBjb250YWlucworc2V2ZXJhbCBwYXJ0cyB0aGF0IGFyZSBjbG9zZWx5IHRpZWQgdG8gdGhlIHVuZGVybHlpbmcga2VybmVsLiBGb3IgdGhlc2UKK3JlYXNvbnMsIHRoZSBwb3J0IG5lZWRzIHRvIGRldGVjdCB3aGljaCBzeXNjYWxsIGludGVyZmFjZXMgYXJlIHByZXNlbnQuIFRoaXMKK2RldGVjdGlvbiBjYW5ub3QgYmUgZG9uZSBlYXNpbHkgYXQgcnVuIHRpbWUgYW5kIGlzIGN1cnJlbnRseSBpbXBsZW1lbnRlZCBhcworYSBzZXQgb2YgY29uZmlndXJlIHRlc3RzLiBUaGlzIG1lYW5zIHRoYXQgYSBiaW5hcnkgdmVyc2lvbiBvZiB0aGlzIHBvcnQgY2FuIGJlCitleGVjdXRlZCBvbmx5IG9uIGEga2VybmVsIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGEga2VybmVsIHRoYXQgd2FzIHVzZWQKK2R1cmluZyB0aGUgY29uZmlndXJlIGFuZCBjb21waWxhdGlvbiB0aW1lLgorCitNYWluIGN1cnJlbnRseS1rbm93biBpbmNvbXBhdGliaWxpdGllczoKKy0gU29sYXJpcyAxMSAocmVsZWFzZWQgaW4gTm92ZW1iZXIgMjAxMSkgcmVtb3ZlZCBhIGxhcmdlIHNldCBvZiBzeXNjYWxscyB3aGVyZQorICAqYXQgdmFyaWFudCBvZiB0aGUgc3lzY2FsbCB3YXMgYWxzbyBwcmVzZW50LCBmb3IgZXhhbXBsZSwgb3BlbigpIHZlcnN1cworICBvcGVuYXQoQVRfRkRDV0QpIFsxXQorLSBzeXNjYWxsIG51bWJlciBmb3IgdW5saW5rYXQoKSBpcyA3NiBvbiBTb2xhcmlzIDExLCBidXQgNjUgb24gaWxsdW1vcyBbMl0KKy0gaWxsdW1vcyAoaW4gQXByaWwgMjAxMykgY2hhbmdlZCBpbnRlcmZhY2Ugb2YgdGhlIGFjY2VwdCgpIGFuZCBwaXBlKCkKKyAgc3lzY2FsbHMgWzNdCisKK1sxXSBodHRwOi8vZG9jcy5vcmFjbGUuY29tL2NkL0UyNjUwMl8wMS9odG1sL0UyODU1Ni9na3psZi5odG1sI2dremlwCitbMl0gaHR0cHM6Ly93d3cuaWxsdW1vcy5vcmcvaXNzdWVzLzUyMQorWzNdIGh0dHBzOi8vZ2l0aHViLmNvbS9pbGx1bW9zL2lsbHVtb3MtZ2F0ZS9jb21taXQvNWRiZmQxOWFkNWZjYzJiNzc5ZjQwZjgwZmEwNWMxYmQyOGZkMGI0ZQorCisKK0xpbWl0YXRpb25zCistLS0tLS0tLS0tLQorLSBUaGUgcG9ydCBpcyBXb3JrLUluLVByb2dyZXNzLCBtYW55IHRoaW5ncyBtYXkgbm90IHdvcmsgb3IgdGhleSBjYW4gYmUgc3VidGx5CisgIGJyb2tlbi4KKy0gQ29yZWR1bXBzIHByb2R1Y2VkIGJ5IFZhbGdyaW5kIGRvIG5vdCBjb250YWluIGFsbCBpbmZvcm1hdGlvbiBhdmFpbGFibGUsCisgIGVzcGVjaWFsbHkgbWljcm9zdGF0ZSBhY2NvdW50aW5nIGFuZCBwcm9jZXNzb3IgYmluZGluZ3MuCistIEFjY2Vzc2luZyBjb250ZW50cyBvZiAvcHJvYy9zZWxmL3BzaW5mbyBpcyBub3QgdGhyZWFkLXNhZmUuICBUaGF0IGlzIGJlY2F1c2UKKyAgVmFsZ3JpbmQgZW11bGF0ZXMgdGhpcyBmaWxlIG9uIGJlaGFsZiBvZiB0aGUgY2xpZW50IHByb2dyYW1zLiAgRW50aXJlCisgIG9wZW4oKSAtIHJlYWQoKSAtIGNsb3NlKCkgc2VxdWVuY2Ugb24gdGhpcyBmaWxlIG5lZWRzIHRvIGJlIHBlcmZvcm1lZAorICBhdG9taWNhbGx5LgorLSBGb3JrIGxpbWl0YXRpb25zOiB2Zm9yaygpIGlzIHRyYW5zbGF0ZWQgdG8gZm9yaygpLCBmb3JrYWxsKCkgaXMgbm90CisgIHN1cHBvcnRlZC4KKy0gVmFsZ3JpbmQgZG9lcyBub3QgdHJhY2sgZGVmaW5lZG5lc3Mgb2Ygc29tZSBlZmxhZ3MgKE9GLCBTRiwgWkYsIEFGLCBDRiwgUEYpCisgIGluZGl2aWR1YWxseSBmb3IgZWFjaCBmbGFnLiBBZnRlciBhIHN5c2NhbGwgaXMgZmluaXNoZWQsIHdoZW4gYSBjYXJyeSBmbGFnCisgIGlzIHNldCBhbmQgZGVmaW5lZCwgYWxsIG90aGVyIG1lbnRpb25lZCBmbGFncyB3aWxsIGJlIGFsc28gZGVmaW5lZCBldmVuCisgIHRob3VnaCB0aGV5IG1pZ2h0IGJlIHVuZGVmaW5lZCBiZWZvcmUgbWFraW5nIHRoZSBzeXNjYWxsLgorLSBTeXN0ZW0gY2FsbCAiZXhlY3ZlIiB3aXRoIGEgZmlsZSBkZXNjcmlwdG9yIHdoaWNoIHBvaW50cyB0byBhIGhhcmRsaW5rCisgIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLiBUaGF0IGlzIGJlY2F1c2UgZnJvbSB0aGUgb3BlbmVkIGZpbGUgZGVzY3JpcHRvcgorICBpdHNlbGYgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHJldmVyc2UgbWFwIHRoZSBpbnRlbmRlZCBwYXRobmFtZS4KKyAgRXhhbXBsZXMgYXJlIGZleGVjdmUoM0MpIGFuZCBpc2FleGVjKDNDKS4KKy0gUHJvZ3JhbSBoZWFkZXJzIFBUX1NVTldfU1lTU1RBVCBhbmQgUFRfU1VOV19TWVNTVEFUX1pPTkUgYXJlIG5vdCBzdXBwb3J0ZWQuCisgIFRoYXQgaXMsIHByb2dyYW1zIGxpbmtlZCB3aXRoIG1hcGZpbGUgZGlyZWN0aXZlIFJFU0VSVkVfU0VHTUVOVCBhbmQgYXR0cmlidXRlCisgIFRZUEUgZXF1YWwgdG8gU1lTU1RBVCBvciBTWVNTVEFUX1pPTkUgd2lsbCBjYXVzZSBWYWxncmluZCBleGl0LiBJdCBpcyBub3QKKyAgcG9zc2libGUgZm9yIFZhbGdyaW5kIHRvIGFycmFuZ2UgbWFwcGluZyBvZiBhIGtlcm5lbCBzaGFyZWQgcGFnZSBhdCB0aGUKKyAgYWRkcmVzcyBzcGVjaWZpZWQgaW4gdGhlIG1hcGZpbGUgZm9yIHRoZSBndWVzdCBhcHBsaWNhdGlvbi4gVGhlcmUgaXMgY3VycmVudGx5CisgIG5vIHN1Y2ggbWVjaGFuaXNtIGluIFNvbGFyaXMuIEhhY2t5IHdvcmthcm91bmRzIGFyZSBwb3NzaWJsZSwgdGhvdWdoLgorLSBXaGVuIGEgdGhyZWFkIGhhcyBubyBzdGFjayB0aGVuIGFsbCBzeXN0ZW0gY2FsbHMgd2lsbCByZXN1bHQgaW4gVmFsZ3JpbmQKKyAgY3Jhc2gsIGV2ZW4gdGhvdWdoIHN1Y2ggc3lzdGVtIGNhbGxzIHVzZSBqdXN0IHBhcmFtZXRlcnMgcGFzc2VkIGluIHJlZ2lzdGVycy4KKyAgVGhpcyBzaG91bGQgaGFwcGVuIG9ubHkgaW4gcGF0aG9sb2dpY2FsIHNpdHVhdGlvbnMgd2hlbiBhIHRocmVhZCBpcyBjcmVhdGVkCisgIHdpdGggY3VzdG9tIG1tYXAnZWQgc3RhY2sgYW5kIHRoaXMgc3RhY2sgaXMgdGhlbiB1bm1hcCdlZCBkdXJpbmcgdGhyZWFkCisgIGV4ZWN1dGlvbi4KKworCitSZW1vdGUgZGVidWdnaW5nIHN1cHBvcnQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU29sYXJpcyBwb3J0IG9mIEdEQiBoYXMgYSBtYWpvciBmbGF3IHdoaWNoIHByZXZlbnRzIHJlbW90ZSBkZWJ1Z2dpbmcgZnJvbQord29ya2luZyBjb3JyZWN0bHkuIEZvcnR1bmF0ZWx5IHRoaXMgZmxhdyBoYXMgYW4gZWFzeSBmaXggWzRdLiBVbmZvcnR1bmF0ZWx5CitpdCBpcyBub3QgcHJlc2VudCBpbiB0aGUgY3VycmVudCBHREIgNy42LjIuIFRoaXMgYm9pbHMgZG93biB0byBzZXZlcmFsCitvcHRpb25zOgorLSBVc2UgR0RCIHNoaXBwZWQgd2l0aCBTb2xhcmlzIDExLjIgd2hpY2ggaGFzIHRoaXMgZmxhdyBmaXhlZC4KKy0gV2FpdCB1bnRpbCBHREIgNy43IGJlY29tZXMgYXZhaWxhYmxlICh0aGVyZSB3b24ndCBiZSBvdGhlciA3LjYueCByZWxlYXNlcykuCistIEJ1aWxkIEdEQiA3LjYuMiB3aXRoIHRoZSBmaXggYnkgeW91cnNlbGYgdXNpbmcgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAjIHBrZyBpbnN0YWxsIGRldmVsb3Blci9nbnUtYmludXRpbHMKKyAgICAkIHdnZXQgaHR0cDovL2Z0cC5nbnUub3JnL2dudS9nZGIvZ2RiLTcuNi4yLnRhci5negorICAgICQgZ3ppcCAtZGMgZ2RiLTcuNi4yLnRhci5neiB8IHRhciB4ZiAtCisgICAgJCBjZCBnZGItNy42LjIKKyAgICAkIHBhdGNoIC1wMSAtaSAvcGF0aC90by92YWxncmluZC1zb2xhcmlzL3NvbGFyaXMvZ2RiLXNvbC10aHJlYWQucGF0Y2gKKyAgICAkIGV4cG9ydCBMSUJTPSItbG5jdXJzZXMiCisgICAgJCBleHBvcnQgQ0M9ImdjYyAtbTY0IgorICAgICQgLi9jb25maWd1cmUgLS13aXRoLXg9bm8gLS13aXRoLWN1cnNlcyAtLXdpdGgtbGliZXhwYXQtcHJlZml4PS91c3IvbGliCisgICAgJCBnbWFrZSAmJiBnbWFrZSBpbnN0YWxsCisKK1s0XSBodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTMtMTIvbXNnMDA1NzMuaHRtbAorCisKK1RPRE8gbGlzdAorLS0tLS0tLS0tCistIEZpeCBmZXcgcmVtYWluaW5nIGZhaWxpbmcgdGVzdHMuCistIEFkZCBtb3JlIFNvbGFyaXMtc3BlY2lmaWMgdGVzdHMgKGVzcGVjaWFsbHkgZm9yIHRoZSBkb29yIGFuZCBzcGF3bgorICBzeXNjYWxscykuCistIFByb3ZpZGUgYmV0dGVyIGVycm9yIHJlcG9ydGluZyBmb3IgdmFyaW91cyBzdWJzeXNjYWxscy4KKy0gSW1wbGVtZW50IHN0b3Jpbmcgb2YgZXh0cmEgcmVnaXN0ZXIgc3RhdGUgaW4gc2lnbmFsIGZyYW1lLgorLSBQZXJmb3JtYW5jZSBjb21wYXJpc29uIGFnYWluc3Qgb3RoZXIgcGxhdGZvcm1zLgorCistIFByZXZlbnQgU0lHUElQRSB3aGVuIHdyaXRpbmcgdG8gYSBzb2NrZXQgKGNvcmVncmluZC9tX2xpYmNmaWxlLmMpLgorLSBJbXBsZW1lbnQgdGlja2V0IGxvY2tpbmcgZm9yIGZhaXIgc2NoZWR1bGluZyAoLS1mYWlyLXNjaGVkPXllcykuCistIEltcGxlbWVudCBzdXBwb3J0IGluIERSRCBhbmQgSGVsZ3JpbmQgdG9vbHMgZm9yIHRocl9qb2luKCkgd2l0aCB0aHJlYWQgPT0gMC4KKy0gQWRkIHN1cHBvcnQgZm9yIGFjY2Vzc2luZyB0aHJlYWQtbG9jYWwgdmFyaWFibGVzIHZpYSBnZGIgKGF1eHByb2dzL2dldG9mZi5jKS4KKyAgUmVxdWlyZXMgcmVzZWFyY2ggb24gaW50ZXJuYWwgbGliYyBUTFMgcmVwcmVzZW50YXRpb24uCistIFZFWCBzdXBwb3J0cyBBVlgsIEJNSSBhbmQgQVZYMi4gSW52ZXN0aWdhdGUgaWYgdGhleSBjYW4gYmUgZW5hYmxlZCBvbgorICBTb2xhcmlzL2lsbHVtb3MuCistIEludmVzdGlnYXRlIHN1cHBvcnQgZm9yIG1vcmUgZmxhZ3MgaW4gQVRfU1VOX0FVWEZMQUdTLgorLSBGaXggVmFsZ3JpbmQgY3Jhc2ggd2hlbiBhIHRocmVhZCBoYXMgbm8gc3RhY2sgYW5kIHN5c3dyYXAtbWFpbi5jIGFjY2Vzc2VzCisgIGFsbCBwb3NzaWJsZSBzeXNjYWxsIHBhcmFtZXRlcnMuIEVuYWJsZSBoZWxncmluZC90ZXN0cy9zdGFja3RlYXJkb3duLmMKKyAgdG8gc2VlIHRoaXMgaW4gZWZmZWN0LiBXb3VsZCByZXF1aXJlIGF3YXJlbmVzcyBvZiBzeXNjYWxsIHBhcmFtZXRlciBzZW1hbnRpY3MuCistIENvcnJlY3RseSBwcmludCBhcmd1bWVudHMgb2YgRFdfQ0ZBX09SQ0xfYXJnX2xvYyBpbiBzaG93X0NGX2luc3RydWN0aW9uKCkgd2hlbgorICBpdCBpcyBpbXBsZW1lbnRlZCBpbiBsaWJkd2FyZi4KKworCitDb250YWN0cworLS0tLS0tLS0KK1BsZWFzZSBzZW5kIGJ1ZyByZXBvcnRzIGFuZCBhbnkgcXVlc3Rpb25zIGFib3V0IHRoZSBwb3J0IHRvOgorSXZvIFJhaXNyIDxpdm9zaEBpdm9zaC5uZXQ+CitQZXRyIFBhdmx1IDxzZXR1cEBkYWdvYmFoLmN6PgpkaWZmIC0tZ2l0IGEvUkVBRE1FX01JU1NJTkdfU1lTQ0FMTF9PUl9JT0NUTCBiL1JFQURNRV9NSVNTSU5HX1NZU0NBTExfT1JfSU9DVEwKaW5kZXggMjdkMWFiMC4uYWI3ODkwMiAxMDA2NDQKLS0tIGEvUkVBRE1FX01JU1NJTkdfU1lTQ0FMTF9PUl9JT0NUTAorKysgYi9SRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMCkBAIC0xODIsMyArMTgyLDU0IEBACiBBcyBhYm92ZSwgcGxlYXNlIGNyZWF0ZSBhIGJ1ZyByZXBvcnQgYW5kIGF0dGFjaCB0aGUgcGF0Y2ggYXMgZGVzY3JpYmVkCiBvbiBodHRwOi8vd3d3LnZhbGdyaW5kLm9yZy4KIAorCitXcml0aW5nIHlvdXIgb3duIGRvb3IgY2FsbCB3cmFwcGVycyAoU29sYXJpcyBvbmx5KQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworVW5saWtlIHN5c2NhbGxzIG9yIGlvY3RscywgZG9vciBjYWxscyB0cmFuc2ZlciBkYXRhIGJldHdlZW4gdHdvIHVzZXJzcGFjZQorcHJvZ3JhbXMsIGFsYmVpdCB0aHJvdWdoIGEga2VybmVsIGludGVyZmFjZS4gUHJvZ3JhbXMgbWF5IHVzZSBjb21wbGV0ZWx5Citwcm9wcmlldGFyeSBzZW1hbnRpY3MgaW4gdGhlIGRhdGEgYnVmZmVycyBwYXNzZWQgYmV0d2VlbiB0aGVtLgorVGhlcmVmb3JlIGl0IG1heSBub3QgYmUgcG9zc2libGUgdG8gY2FwdHVyZSB0aGVzZSBzZW1hbnRpY3Mgd2l0aGluCithIFZhbGdyaW5kIGRvb3IgY2FsbCBvciBkb29yIHJldHVybiB3cmFwcGVyLgorCitOZXZlcnRoZWxlc3MsIGZvciBzeXN0ZW0gb3Igd2VsbC1rbm93biBkb29yIHNlcnZpY2VzIGl0IHdvdWxkIGJlIGJlbmVmaWNpYWwKK3RvIGhhdmUgYSBkb29yIGNhbGwgYW5kIGEgZG9vciByZXR1cm4gd3JhcHBlci4gV3JpdGluZyBzdWNoIHdyYXBwZXIgaXMgcHJldHR5CittdWNoIHRoZSBzYW1lIGFzIHdyaXRpbmcgaW9jdGwgd3JhcHBlcnMuIFBsZWFzZSB0YWtlIGEgZmV3IG1vbWVudHMgdG8gc3R1ZHkKK3RoZSBmb2xsb3dpbmcgcGljdHVyZSBkZXBpY3RpbmcgaG93IGEgZG9vciBjbGllbnQgYW5kIGEgZG9vciBzZXJ2ZXIgaW50ZXJhY3QKK3Rocm91Z2ggdGhlIGtlcm5lbCBpbnRlcmZhY2UgaW4gYSB0eXBpY2FsIHNjZW5hcmlvOgorCisKK2Rvb3IgY2xpZW50IHRocmVhZCAgICAgICAgICBrZXJuZWwgICAgICAgZG9vciBzZXJ2ZXIgdGhyZWFkCitpbnZva2VzIGRvb3JfY2FsbCgpICAgICAgICAgICAgICAgICAgICAgaW52b2tlcyBkb29yX3JldHVybigpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC0tLS0gIFBSRShzeXNfZG9vciwgRE9PUl9SRVRVUk4pCitQUkUoc3lzX2Rvb3IsIERPT1JfQ0FMTCkgIC0tLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tPiAgUE9TVChzeXNfZG9vciwgRE9PUl9SRVRVUk4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLT4gc2VydmVyX3Byb2NlZHVyZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LS0tLSAgUFJFKHN5c19kb29yLCBET09SX1JFVFVSTikKK1BPU1Qoc3lzX2Rvb3IsIERPT1JfQ0FMTCkgPC0tLQorCitUaGUgZmlyc3QgUFJFKHN5c19kb29yLCBET09SX1JFVFVSTikgaXMgaW52b2tlZCB3aXRoIGRhdGFfcHRyPU5VTEwKK2FuZCBkYXRhX3NpemU9MC4gVGhhdCdzIGJlY2F1c2UgaXQgaGFzIG5vdCByZWNlaXZlZCBhbnkgZGF0YSBmcm9tCithIGRvb3IgY2FsbCwgeWV0LgorCitTZW1hbnRpY3MgYXJlIGRlc2NyaWJlZCBieSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucworaW4gY29yZWdyaW5nL21fc3lzd3JhcC9zeXN3cmFwLXNvbGFyaXMuYyBtb2R1bGU6CitvIEZvciBhIGRvb3IgY2FsbCB3cmFwcGVyIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBvZiAncGFyYW1zJyBhcmd1bWVudDoKKyAgLSBkYXRhX3B0ciAoYW5kIGFzc29jaWF0ZWQgZGF0YV9zaXplKSBhcyBpbnB1dCBidWZmZXIgKHJlcXVlc3QpOworICAgICAgZGVzY3JpYmVkIGluIGRvb3JfY2FsbF9wcmVfbWVtX3BhcmFtc19kYXRhKCkKKyAgLSByYnVmIChhbmQgYXNzb2NpYXRlZCByc2l6ZSkgYXMgb3V0cHV0IGJ1ZmZlciAocmVzcG9uc2UpOworICAgICAgZGVzY3JpYmVkIGluIGRvb3JfY2FsbF9wb3N0X21lbV9wYXJhbXNfcmJ1ZigpCitvIEZvciBhIGRvb3IgcmV0dXJuIHdyYXBwZXIgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOgorICAtIGRhdGFfcHRyIChhbmQgYXNzb2NpYXRlZCBkYXRhX3NpemUpIGFzIGlucHV0IGJ1ZmZlciAocmVxdWVzdCk7CisgICAgICBkZXNjcmliZWQgaW4gZG9vcl9yZXR1cm5fcG9zdF9tZW1fZGF0YSgpCisgIC0gZGF0YV9wdHIgKGFuZCBhc3NvY2lhdGVkIGRhdGFfc2l6ZSkgYXMgb3V0cHV0IGJ1ZmZlciAocmVzcG9uc2UpOworICAgICAgZGVzY3JpYmVkIGluIGRvb3JfcmV0dXJuX3ByZV9tZW1fZGF0YSgpCisKK1RoZXJlJ3MgYSBkZWZhdWx0IGNhc2Ugd2hpY2ggbWF5IG5vdCBiZSBjb3JyZWN0IGFuZCB5b3UgaGF2ZSB0byB3cml0ZSBhCittb3JlIHNwZWNpZmljIGNhc2UgdG8gZ2V0IHRoZSByaWdodCBiZWhhdmlvdXIuIFVubGVzcyBWYWxncmluZCdzIG9wdGlvbgorJy0tc2ltLWhpbnRzPWxheC1kb29ycycgaXMgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBjYXNlIGFsc28gc3BpdHMgYSB3YXJuaW5nLgorCitBcyBhYm92ZSwgcGxlYXNlIGNyZWF0ZSBhIGJ1ZyByZXBvcnQgYW5kIGF0dGFjaCB0aGUgcGF0Y2ggYXMgZGVzY3JpYmVkCitvbiBodHRwOi8vd3d3LnZhbGdyaW5kLm9yZy4KZGlmZiAtLWdpdCBhL1ZFWC9hdXhwcm9ncy9nZW5vZmZzZXRzLmMgYi9WRVgvYXV4cHJvZ3MvZ2Vub2Zmc2V0cy5jCmluZGV4IGI4NGVmZDMuLjcwZjY0OTEgMTAwNjQ0Ci0tLSBhL1ZFWC9hdXhwcm9ncy9nZW5vZmZzZXRzLmMKKysrIGIvVkVYL2F1eHByb2dzL2dlbm9mZnNldHMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X2FtZDY0X2RlZnMuaCBiL1ZFWC9wcml2L2d1ZXN0X2FtZDY0X2RlZnMuaAppbmRleCAwMDNlYmRlLi5lYzMwMDE1IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF9hbWQ2NF9kZWZzLmgKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfYW1kNjRfZGVmcy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTY4LDEzICsxNjgsMTkgQEAKIGV4dGVybiB2b2lkICBhbWQ2NGdfZGlydHloZWxwZXJfQ1BVSURfc3NlM19hbmRfY3gxNiAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogc3QgKTsKIGV4dGVybiB2b2lkICBhbWQ2NGdfZGlydHloZWxwZXJfQ1BVSURfc3NlNDJfYW5kX2N4MTYgKCBWZXhHdWVzdEFNRDY0U3RhdGUqIHN0ICk7CiBleHRlcm4gdm9pZCAgYW1kNjRnX2RpcnR5aGVscGVyX0NQVUlEX2F2eF9hbmRfY3gxNiAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogc3QgKTsKK2V4dGVybiB2b2lkICBhbWQ2NGdfZGlydHloZWxwZXJfQ1BVSURfYXZ4MiAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogc3QgKTsKIAogZXh0ZXJuIHZvaWQgIGFtZDY0Z19kaXJ0eWhlbHBlcl9GSU5JVCAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogKTsKIAotZXh0ZXJuIHZvaWQgICAgICBhbWQ2NGdfZGlydHloZWxwZXJfRlhTQVZFX0FMTF9FWENFUFRfWE1NCi0gICAgICAgICAgICAgICAgICAgICggVmV4R3Vlc3RBTUQ2NFN0YXRlKiwgSFdvcmQgKTsKLWV4dGVybiBWZXhFbU5vdGUgYW1kNjRnX2RpcnR5aGVscGVyX0ZYUlNUT1JfQUxMX0VYQ0VQVF9YTU0KLSAgICAgICAgICAgICAgICAgICAgKCBWZXhHdWVzdEFNRDY0U3RhdGUqLCBIV29yZCApOworZXh0ZXJuIHZvaWQgYW1kNjRnX2RpcnR5aGVscGVyX1hTQVZFX0NPTVBPTkVOVF8wCisgICAgICAgICAgICAgICAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogZ3N0LCBIV29yZCBhZGRyICk7CitleHRlcm4gdm9pZCBhbWQ2NGdfZGlydHloZWxwZXJfWFNBVkVfQ09NUE9ORU5UXzFfRVhDTFVESU5HX1hNTVJFR1MgCisgICAgICAgICAgICAgICAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogZ3N0LCBIV29yZCBhZGRyICk7CisKK2V4dGVybiBWZXhFbU5vdGUgYW1kNjRnX2RpcnR5aGVscGVyX1hSU1RPUl9DT01QT05FTlRfMAorICAgICAgICAgICAgICAgICAgICAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogZ3N0LCBIV29yZCBhZGRyICk7CitleHRlcm4gVmV4RW1Ob3RlIGFtZDY0Z19kaXJ0eWhlbHBlcl9YUlNUT1JfQ09NUE9ORU5UXzFfRVhDTFVESU5HX1hNTVJFR1MgCisgICAgICAgICAgICAgICAgICAgICggVmV4R3Vlc3RBTUQ2NFN0YXRlKiBnc3QsIEhXb3JkIGFkZHIgKTsKIAogZXh0ZXJuIFVMb25nIGFtZDY0Z19kaXJ0eWhlbHBlcl9SRFRTQyAoIHZvaWQgKTsKIGV4dGVybiB2b2lkICBhbWQ2NGdfZGlydHloZWxwZXJfUkRUU0NQICggVmV4R3Vlc3RBTUQ2NFN0YXRlKiBzdCApOwpAQCAtMzE2LDYgKzMyMiwxNSBAQAogI2RlZmluZSBBTUQ2NEdfQ0NfTUFTS19DICAgICgxVUxMIDw8IEFNRDY0R19DQ19TSElGVF9DKQogI2RlZmluZSBBTUQ2NEdfQ0NfTUFTS19QICAgICgxVUxMIDw8IEFNRDY0R19DQ19TSElGVF9QKQogCisvKiBhZGRpdGlvbmFsIHJmbGFncyBtYXNrcyAqLworI2RlZmluZSBBTUQ2NEdfQ0NfU0hJRlRfSUQgIDIxCisjZGVmaW5lIEFNRDY0R19DQ19TSElGVF9BQyAgMTgKKyNkZWZpbmUgQU1ENjRHX0NDX1NISUZUX0QgICAxMAorCisjZGVmaW5lIEFNRDY0R19DQ19NQVNLX0lEICAgKDFVTEwgPDwgQU1ENjRHX0NDX1NISUZUX0lEKQorI2RlZmluZSBBTUQ2NEdfQ0NfTUFTS19BQyAgICgxVUxMIDw8IEFNRDY0R19DQ19TSElGVF9BQykKKyNkZWZpbmUgQU1ENjRHX0NDX01BU0tfRCAgICAoMVVMTCA8PCBBTUQ2NEdfQ0NfU0hJRlRfRCkKKwogLyogRlBVIGZsYWcgbWFza3MgKi8KICNkZWZpbmUgQU1ENjRHX0ZDX1NISUZUX0MzICAgMTQKICNkZWZpbmUgQU1ENjRHX0ZDX1NISUZUX0MyICAgMTAKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X2FtZDY0X2hlbHBlcnMuYyBiL1ZFWC9wcml2L2d1ZXN0X2FtZDY0X2hlbHBlcnMuYwppbmRleCAyODg3YjA4Li5hYjUzZTE1IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF9hbWQ2NF9oZWxwZXJzLmMKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfYW1kNjRfaGVscGVycy5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzksMzIgKzc5LDM0IEBACiAKIHN0YXRpYyB2b2lkIG11bGxTNjQgKCBMb25nIHUsIExvbmcgdiwgTG9uZyogckhpLCBMb25nKiByTG8gKQogeworICAgY29uc3QgTG9uZyBoYWxmTWFzayA9IDB4RkZGRkZGRkZMTDsKICAgIFVMb25nIHUwLCB2MCwgdzA7CiAgICAgTG9uZyB1MSwgdjEsIHcxLCB3MiwgdDsKLSAgIHUwICAgPSB1ICYgMHhGRkZGRkZGRlVMTDsgCisgICB1MCAgID0gdSAmIGhhbGZNYXNrOyAKICAgIHUxICAgPSB1ID4+IDMyOwotICAgdjAgICA9IHYgJiAweEZGRkZGRkZGVUxMOworICAgdjAgICA9IHYgJiBoYWxmTWFzazsKICAgIHYxICAgPSB2ID4+IDMyOwogICAgdzAgICA9IHUwICogdjA7CiAgICB0ICAgID0gdTEgKiB2MCArICh3MCA+PiAzMik7Ci0gICB3MSAgID0gdCAmIDB4RkZGRkZGRkZVTEw7CisgICB3MSAgID0gdCAmIGhhbGZNYXNrOwogICAgdzIgICA9IHQgPj4gMzI7CiAgICB3MSAgID0gdTAgKiB2MSArIHcxOwogICAgKnJIaSA9IHUxICogdjEgKyB3MiArICh3MSA+PiAzMik7Ci0gICAqckxvID0gdSAqIHY7CisgICAqckxvID0gKExvbmcpKChVTG9uZyl1ICogKFVMb25nKXYpOwogfQogCiBzdGF0aWMgdm9pZCBtdWxsVTY0ICggVUxvbmcgdSwgVUxvbmcgdiwgVUxvbmcqIHJIaSwgVUxvbmcqIHJMbyApCiB7CisgICBjb25zdCBVTG9uZyBoYWxmTWFzayA9IDB4RkZGRkZGRkZVTEw7CiAgICBVTG9uZyB1MCwgdjAsIHcwOwogICAgVUxvbmcgdTEsIHYxLCB3MSx3Mix0OwotICAgdTAgICA9IHUgJiAweEZGRkZGRkZGVUxMOworICAgdTAgICA9IHUgJiBoYWxmTWFzazsKICAgIHUxICAgPSB1ID4+IDMyOwotICAgdjAgICA9IHYgJiAweEZGRkZGRkZGVUxMOworICAgdjAgICA9IHYgJiBoYWxmTWFzazsKICAgIHYxICAgPSB2ID4+IDMyOwogICAgdzAgICA9IHUwICogdjA7CiAgICB0ICAgID0gdTEgKiB2MCArICh3MCA+PiAzMik7Ci0gICB3MSAgID0gdCAmIDB4RkZGRkZGRkZVTEw7CisgICB3MSAgID0gdCAmIGhhbGZNYXNrOwogICAgdzIgICA9IHQgPj4gMzI7CiAgICB3MSAgID0gdTAgKiB2MSArIHcxOwogICAgKnJIaSA9IHUxICogdjEgKyB3MiArICh3MSA+PiAzMik7CkBAIC05MTEsNiArOTEzLDQzIEBACiAKIC8qIFZJU0lCTEUgVE8gTElCVkVYIENMSUVOVCAqLwogdm9pZAorTGliVkVYX0d1ZXN0QU1ENjRfcHV0X3JmbGFncyAoIFVMb25nIHJmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKk1PRCovVmV4R3Vlc3RBTUQ2NFN0YXRlKiB2ZXhfc3RhdGUgKQoreworICAgLyogRCBmbGFnICovCisgICBpZiAocmZsYWdzICYgQU1ENjRHX0NDX01BU0tfRCkgeworICAgICAgdmV4X3N0YXRlLT5ndWVzdF9ERkxBRyA9IC0xOworICAgICAgcmZsYWdzICY9IH5BTUQ2NEdfQ0NfTUFTS19EOworICAgfQorICAgZWxzZQorICAgICAgdmV4X3N0YXRlLT5ndWVzdF9ERkxBRyA9IDE7CisKKyAgIC8qIElEIGZsYWcgKi8KKyAgIGlmIChyZmxhZ3MgJiBBTUQ2NEdfQ0NfTUFTS19JRCkgeworICAgICAgdmV4X3N0YXRlLT5ndWVzdF9JREZMQUcgPSAxOworICAgICAgcmZsYWdzICY9IH5BTUQ2NEdfQ0NfTUFTS19JRDsKKyAgIH0KKyAgIGVsc2UKKyAgICAgIHZleF9zdGF0ZS0+Z3Vlc3RfSURGTEFHID0gMDsKKworICAgLyogQUMgZmxhZyAqLworICAgaWYgKHJmbGFncyAmIEFNRDY0R19DQ19NQVNLX0FDKSB7CisgICAgICB2ZXhfc3RhdGUtPmd1ZXN0X0FDRkxBRyA9IDE7CisgICAgICByZmxhZ3MgJj0gfkFNRDY0R19DQ19NQVNLX0FDOworICAgfQorICAgZWxzZQorICAgICAgdmV4X3N0YXRlLT5ndWVzdF9BQ0ZMQUcgPSAwOworCisgICBVSW50IGNjX21hc2sgPSBBTUQ2NEdfQ0NfTUFTS19PIHwgQU1ENjRHX0NDX01BU0tfUyB8IEFNRDY0R19DQ19NQVNLX1ogfAorICAgICAgICAgICAgICAgICAgQU1ENjRHX0NDX01BU0tfQSB8IEFNRDY0R19DQ19NQVNLX0MgfCBBTUQ2NEdfQ0NfTUFTS19QOworICAgdmV4X3N0YXRlLT5ndWVzdF9DQ19PUCAgID0gQU1ENjRHX0NDX09QX0NPUFk7CisgICB2ZXhfc3RhdGUtPmd1ZXN0X0NDX0RFUDEgPSByZmxhZ3MgJiBjY19tYXNrOworICAgdmV4X3N0YXRlLT5ndWVzdF9DQ19ERVAyID0gMDsKKyAgIHZleF9zdGF0ZS0+Z3Vlc3RfQ0NfTkRFUCA9IDA7Cit9CisKKy8qIFZJU0lCTEUgVE8gTElCVkVYIENMSUVOVCAqLwordm9pZAogTGliVkVYX0d1ZXN0QU1ENjRfcHV0X3JmbGFnX2MgKCBVTG9uZyBuZXdfY2FycnlfZmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKk1PRCovVmV4R3Vlc3RBTUQ2NFN0YXRlKiB2ZXhfc3RhdGUgKQogewpAQCAtMTAzNiw3ICsxMDc1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChJb3BfWG9yNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NfZGVwMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChJb3BfU3ViNjQsIGNjX2RlcDEsIGNjX2RlcDIpKSksCi0gICAgICAgICAgICAgICAgICAgICAgbWtVOCg2NCkpOworICAgICAgICAgICAgICAgICAgICAgIG1rVTgoNjMpKTsKICAgICAgIH0KICAgICAgIGlmIChpc1U2NChjY19vcCwgQU1ENjRHX0NDX09QX1NVQlEpICYmIGlzVTY0KGNvbmQsIEFNRDY0Q29uZE5PKSkgewogICAgICAgICAgLyogTm8gYWN0aW9uLiAgTmV2ZXIgeWV0IGZvdW5kIGEgdGVzdCBjYXNlLiAqLwpAQCAtMTkwNCwxMSArMTk0MywxNSBAQAogfQogCiAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFN1cHBvcnRpbmcgZnVuY3Rpb25zIGZvciBYU0FWRS9GWFNBVkUuICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKwogLyogQ0FMTEVEIEZST00gR0VORVJBVEVEIENPREUgKi8KIC8qIERJUlRZIEhFTFBFUiAocmVhZHMgZ3Vlc3Qgc3RhdGUsIHdyaXRlcyBndWVzdCBtZW0pICovCi0vKiBOT1RFOiBvbmx5IGhhbmRsZXMgMzItYml0IGZvcm1hdCAobm8gUkVYLlcgb24gdGhlIGluc24pICovCi12b2lkIGFtZDY0Z19kaXJ0eWhlbHBlcl9GWFNBVkVfQUxMX0VYQ0VQVF9YTU0gKCBWZXhHdWVzdEFNRDY0U3RhdGUqIGdzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhXb3JkIGFkZHIgKQorLyogWFNBVkUgY29tcG9uZW50IDAgaXMgdGhlIHg4NyBGUFUgc3RhdGUuICovCit2b2lkIGFtZDY0Z19kaXJ0eWhlbHBlcl9YU0FWRV9DT01QT05FTlRfMAorICAgICAgICAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogZ3N0LCBIV29yZCBhZGRyICkKIHsKICAgIC8qIERlcml2ZWQgZnJvbSB2YWx1ZXMgb2J0YWluZWQgZnJvbQogICAgICAgdmVuZG9yX2lkICAgICAgIDogQXV0aGVudGljQU1ECkBAIC0xOTIzLDE3ICsxOTY2LDE1IEBACiAgICBGcHVfU3RhdGUgdG1wOwogICAgVVNob3J0KiAgIGFkZHJTID0gKFVTaG9ydCopYWRkcjsKICAgIFVDaGFyKiAgICBhZGRyQyA9IChVQ2hhciopYWRkcjsKLSAgIFVJbnQgICAgICBteGNzcjsKICAgIFVTaG9ydCAgICBmcF90YWdzOwogICAgVUludCAgICAgIHN1bW1hcnlfdGFnczsKICAgIEludCAgICAgICByLCBzdG5vOwogICAgVVNob3J0ICAgICpzcmNTLCAqZHN0UzsKIAogICAgZG9fZ2V0X3g4NyggZ3N0LCAoVUNoYXIqKSZ0bXAgKTsKLSAgIG14Y3NyID0gYW1kNjRnX2NyZWF0ZV9teGNzciggZ3N0LT5ndWVzdF9TU0VST1VORCApOwogCi0gICAvKiBOb3cgYnVpbGQgdGhlIHByb3BlciBmeHNhdmUgaW1hZ2UgZnJvbSB0aGUgeDg3IGltYWdlIHdlIGp1c3QKLSAgICAgIG1hZGUuICovCisgICAvKiBOb3cgYnVpbGQgdGhlIHByb3BlciBmeHNhdmUgeDg3IGltYWdlIGZyb20gdGhlIGZzYXZlIHg4NyBpbWFnZQorICAgICAgd2UganVzdCBtYWRlLiAqLwogCiAgICBhZGRyU1swXSAgPSB0bXAuZW52W0ZQX0VOVl9DVFJMXTsgLyogRkNXOiBmcHUgY29udHJvbCB3b3JkICovCiAgICBhZGRyU1sxXSAgPSB0bXAuZW52W0ZQX0VOVl9TVEFUXTsgLyogRkNXOiBmcHUgc3RhdHVzIHdvcmQgKi8KQEAgLTE5NjYsMTEgKzIwMDcsOCBAQAogICAgYWRkclNbMTBdID0gMDsgLyogQk9HVVMgKi8KICAgIGFkZHJTWzExXSA9IDA7IC8qIEJPR1VTICovCiAKLSAgIGFkZHJTWzEyXSA9IHRvVVNob3J0KG14Y3NyKTsgIC8qIE1YQ1NSICovCi0gICBhZGRyU1sxM10gPSB0b1VTaG9ydChteGNzciA+PiAxNik7Ci0KLSAgIGFkZHJTWzE0XSA9IDB4RkZGRjsgLyogTVhDU1IgbWFzayAobG8xNikgKi8KLSAgIGFkZHJTWzE1XSA9IDB4MDAwMDsgLyogTVhDU1IgbWFzayAoaGkxNikgKi8KKyAgIC8qIGFkZHJTWzEzLDEyXSBhcmUgTVhDU1IgLS0gbm90IHdyaXR0ZW4gKi8KKyAgIC8qIGFkZHJTWzE1LDE0XSBhcmUgTVhDU1JfTUFTSyAtLSBub3Qgd3JpdHRlbiAqLwogCiAgICAvKiBDb3B5IGluIHRoZSBGUCByZWdpc3RlcnMsIGluIFNUIG9yZGVyLiAqLwogICAgZm9yIChzdG5vID0gMDsgc3RubyA8IDg7IHN0bm8rKykgewpAQCAtMTk4NSwzMyArMjAyMyw5NSBAQAogICAgICAgZHN0U1s2XSA9IDA7CiAgICAgICBkc3RTWzddID0gMDsKICAgIH0KLQotICAgLyogVGhhdCdzIHRoZSBmaXJzdCAxNjAgYnl0ZXMgb2YgdGhlIGltYWdlIGRvbmUuICBOb3cgb25seSAleG1tMAotICAgICAgLi4gJXhtbTE1IHJlbWFpbiB0byBiZSBjb3BpZWQsIGFuZCB3ZSBsZXQgdGhlIGdlbmVyYXRlZCBJUiBkbwotICAgICAgdGhhdCwgc28gYXMgdG8gbWFrZSBNZW1jaGVjaydzIGRlZmluZWRuZXNzIGZsb3cgZm9yIHRoZSBub24tWE1NCi0gICAgICBwYXJ0cyBpbmRlcGVuZGFudCBmcm9tIHRoYXQgb2YgdGhlIGFsbCB0aGUgb3RoZXIgY29udHJvbCBhbmQKLSAgICAgIHN0YXR1cyB3b3JkcyBpbiB0aGUgc3RydWN0dXJlLiAgVGhpcyBhdm9pZHMgdGhlIGZhbHNlIHBvc2l0aXZlcwotICAgICAgc2hvd24gaW4gIzI5MTMxMC4gKi8KIH0KIAogCiAvKiBDQUxMRUQgRlJPTSBHRU5FUkFURUQgQ09ERSAqLworLyogRElSVFkgSEVMUEVSIChyZWFkcyBndWVzdCBzdGF0ZSwgd3JpdGVzIGd1ZXN0IG1lbSkgKi8KKy8qIFhTQVZFIGNvbXBvbmVudCAxIGlzIHRoZSBTU0Ugc3RhdGUuICovCit2b2lkIGFtZDY0Z19kaXJ0eWhlbHBlcl9YU0FWRV9DT01QT05FTlRfMV9FWENMVURJTkdfWE1NUkVHUyAKKyAgICAgICAgKCBWZXhHdWVzdEFNRDY0U3RhdGUqIGdzdCwgSFdvcmQgYWRkciApCit7CisgICBVU2hvcnQqIGFkZHJTID0gKFVTaG9ydCopYWRkcjsKKyAgIFVJbnQgICAgbXhjc3I7CisKKyAgIC8qIFRoZSBvbmx5IG5vbi1yZWdpc3RlciBwYXJ0cyBvZiB0aGUgU1NFIHN0YXRlIGFyZSBNWENTUiBhbmQKKyAgICAgIE1YQ1NSX01BU0suICovCisgICBteGNzciA9IGFtZDY0Z19jcmVhdGVfbXhjc3IoIGdzdC0+Z3Vlc3RfU1NFUk9VTkQgKTsKKworICAgYWRkclNbMTJdID0gdG9VU2hvcnQobXhjc3IpOyAgLyogTVhDU1IgKi8KKyAgIGFkZHJTWzEzXSA9IHRvVVNob3J0KG14Y3NyID4+IDE2KTsKKworICAgYWRkclNbMTRdID0gMHhGRkZGOyAvKiBNWENTUiBtYXNrIChsbzE2KSAqLworICAgYWRkclNbMTVdID0gMHgwMDAwOyAvKiBNWENTUiBtYXNrIChoaTE2KSAqLworfQorCisKKy8qIFZJU0lCTEUgVE8gTElCVkVYIENMSUVOVCAqLworLyogRG8gRlhTQVZFIGZyb20gdGhlIHN1cHBsaWVkIFZleEd1ZXN0QU1ENjRTdGF0ZSBzdHJ1Y3R1cmUgYW5kIHN0b3JlCisgICB0aGUgcmVzdWx0IGF0IHRoZSBnaXZlbiBhZGRyZXNzIHdoaWNoIHJlcHJlc2VudHMgYSBidWZmZXIgb2YgYXQKKyAgIGxlYXN0IDQxNiBieXRlcy4KKworICAgVGhpcyBmdW5jdGlvbiBpcyBub3QgY2FsbGVkIGZyb20gZ2VuZXJhdGVkIGNvZGUuICBGWFNBVkUgaXMgZGVhbHQKKyAgIHdpdGggYnkgdGhlIGFtZDY0IGZyb250IGVuZCBieSBjYWxsaW5nIHRoZSBYU0FWRV9DT01QT05FTlRfezAsMX0KKyAgIGZ1bmN0aW9ucyBhYm92ZSBwbHVzIHNvbWUgaW4tbGluZSBJUi4gIFRoaXMgZnVuY3Rpb24gaXMgbWVyZWx5IGEKKyAgIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBWRVgncyB1c2Vycy4KKyovCit2b2lkIExpYlZFWF9HdWVzdEFNRDY0X2Z4c2F2ZSAoIC8qSU4qL1ZleEd1ZXN0QU1ENjRTdGF0ZSogZ3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKk9VVCovSFdvcmQgZnBfc3RhdGUgKQoreworICAgLyogRG8gdGhlIHg4NyBwYXJ0ICovCisgICBhbWQ2NGdfZGlydHloZWxwZXJfWFNBVkVfQ09NUE9ORU5UXzAoZ3N0LCBmcF9zdGF0ZSk7CisKKyAgIC8qIEFuZCBub3cgdGhlIFNTRSBwYXJ0LCBleGNlcHQgZm9yIHRoZSByZWdpc3RlcnMgdGhlbXNlbHZlcy4gKi8KKyAgIGFtZDY0Z19kaXJ0eWhlbHBlcl9YU0FWRV9DT01QT05FTlRfMV9FWENMVURJTkdfWE1NUkVHUyhnc3QsIGZwX3N0YXRlKTsKKworICAgLyogVGhhdCdzIHRoZSBmaXJzdCAxNjAgYnl0ZXMgb2YgdGhlIGltYWdlIGRvbmUuICovCisgICAvKiBOb3cgb25seSAleG1tMCAuLiAleG1tMTUgcmVtYWluIHRvIGJlIGNvcGllZC4gIElmIHRoZSBob3N0IGlzCisgICAgICBiaWctZW5kaWFuLCB0aGVzZSBuZWVkIHRvIGJlIGJ5dGUtc3dhcHBlZC4gKi8KKyAgIFUxMjggKnhtbSA9IChVMTI4ICopKGZwX3N0YXRlICsgMTYwKTsKKyAgIHZhc3NlcnQoaG9zdF9pc19saXR0bGVfZW5kaWFuKCkpOworCisjICBkZWZpbmUgQ09QWV9VMTI4KF9kc3QsX3NyYykgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGRvIHsgX2RzdFswXSA9IF9zcmNbMF07IF9kc3RbMV0gPSBfc3JjWzFdOyAgICAgXAorICAgICAgICAgICBfZHN0WzJdID0gX3NyY1syXTsgX2RzdFszXSA9IF9zcmNbM107IH0gICBcCisgICAgICB3aGlsZSAoMCkKKworICAgQ09QWV9VMTI4KCB4bW1bMF0sICBnc3QtPmd1ZXN0X1lNTTAgKTsKKyAgIENPUFlfVTEyOCggeG1tWzFdLCAgZ3N0LT5ndWVzdF9ZTU0xICk7CisgICBDT1BZX1UxMjgoIHhtbVsyXSwgIGdzdC0+Z3Vlc3RfWU1NMiApOworICAgQ09QWV9VMTI4KCB4bW1bM10sICBnc3QtPmd1ZXN0X1lNTTMgKTsKKyAgIENPUFlfVTEyOCggeG1tWzRdLCAgZ3N0LT5ndWVzdF9ZTU00ICk7CisgICBDT1BZX1UxMjgoIHhtbVs1XSwgIGdzdC0+Z3Vlc3RfWU1NNSApOworICAgQ09QWV9VMTI4KCB4bW1bNl0sICBnc3QtPmd1ZXN0X1lNTTYgKTsKKyAgIENPUFlfVTEyOCggeG1tWzddLCAgZ3N0LT5ndWVzdF9ZTU03ICk7CisgICBDT1BZX1UxMjgoIHhtbVs4XSwgIGdzdC0+Z3Vlc3RfWU1NOCApOworICAgQ09QWV9VMTI4KCB4bW1bOV0sICBnc3QtPmd1ZXN0X1lNTTkgKTsKKyAgIENPUFlfVTEyOCggeG1tWzEwXSwgZ3N0LT5ndWVzdF9ZTU0xMCApOworICAgQ09QWV9VMTI4KCB4bW1bMTFdLCBnc3QtPmd1ZXN0X1lNTTExICk7CisgICBDT1BZX1UxMjgoIHhtbVsxMl0sIGdzdC0+Z3Vlc3RfWU1NMTIgKTsKKyAgIENPUFlfVTEyOCggeG1tWzEzXSwgZ3N0LT5ndWVzdF9ZTU0xMyApOworICAgQ09QWV9VMTI4KCB4bW1bMTRdLCBnc3QtPmd1ZXN0X1lNTTE0ICk7CisgICBDT1BZX1UxMjgoIHhtbVsxNV0sIGdzdC0+Z3Vlc3RfWU1NMTUgKTsKKyMgIHVuZGVmIENPUFlfVTEyOAorfQorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFN1cHBvcnRpbmcgZnVuY3Rpb25zIGZvciBYUlNUT1IvRlhSU1RPUi4gICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogQ0FMTEVEIEZST00gR0VORVJBVEVEIENPREUgKi8KIC8qIERJUlRZIEhFTFBFUiAod3JpdGVzIGd1ZXN0IHN0YXRlLCByZWFkcyBndWVzdCBtZW0pICovCi1WZXhFbU5vdGUgYW1kNjRnX2RpcnR5aGVscGVyX0ZYUlNUT1JfQUxMX0VYQ0VQVF9YTU0gKCBWZXhHdWVzdEFNRDY0U3RhdGUqIGdzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhXb3JkIGFkZHIgKQorVmV4RW1Ob3RlIGFtZDY0Z19kaXJ0eWhlbHBlcl9YUlNUT1JfQ09NUE9ORU5UXzAKKyAgICAgICAgICAgICAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogZ3N0LCBIV29yZCBhZGRyICkKIHsKICAgIEZwdV9TdGF0ZSB0bXA7Ci0gICBWZXhFbU5vdGUgd2Fyblg4NyA9IEVtTm90ZV9OT05FOwotICAgVmV4RW1Ob3RlIHdhcm5YTU0gPSBFbU5vdGVfTk9ORTsKICAgIFVTaG9ydCogICBhZGRyUyAgID0gKFVTaG9ydCopYWRkcjsKICAgIFVDaGFyKiAgICBhZGRyQyAgID0gKFVDaGFyKilhZGRyOwogICAgVVNob3J0ICAgIGZwX3RhZ3M7CiAgICBJbnQgICAgICAgciwgc3RubywgaTsKIAotICAgLyogRG9uJ3QgcmVzdG9yZSAleG1tMCAuLiAleG1tMTUsIGZvciB0aGUgc2FtZSByZWFzb25zIHRoYXQKLSAgICAgIGFtZDY0Z19kaXJ0eWhlbHBlcl9GWFNBVkVfQUxMX0VYQ0VQVF9YTU0gZG9lc24ndCBzYXZlIHRoZW0uICBTZWUKLSAgICAgIGNvbW1lbnQgaW4gdGhhdCBmdW5jdGlvbiBmb3IgZGV0YWlscy4gKi8KLQogICAgLyogQ29weSB0aGUgeDg3IHJlZ2lzdGVycyBvdXQgb2YgdGhlIGltYWdlLCBpbnRvIGEgdGVtcG9yYXJ5CiAgICAgICBGcHVfU3RhdGUgc3RydWN0LiAqLwogICAgZm9yIChpID0gMDsgaSA8IDE0OyBpKyspIHRtcC5lbnZbaV0gPSAwOwpAQCAtMjA0MCwxNiArMjE0MCw3NSBAQAogICAgdG1wLmVudltGUF9FTlZfVEFHXSA9IGZwX3RhZ3M7CiAKICAgIC8qIE5vdyB3cml0ZSAndG1wJyBpbnRvIHRoZSBndWVzdCBzdGF0ZS4gKi8KLSAgIHdhcm5YODcgPSBkb19wdXRfeDg3KCBUcnVlLyptb3ZlUmVncyovLCAoVUNoYXIqKSZ0bXAsIGdzdCApOworICAgVmV4RW1Ob3RlIHdhcm5YODcgPSBkb19wdXRfeDg3KCBUcnVlLyptb3ZlUmVncyovLCAoVUNoYXIqKSZ0bXAsIGdzdCApOwogCi0gICB7IFVJbnQgdzMyID0gKCgoVUludClhZGRyU1sxMl0pICYgMHhGRkZGKQotICAgICAgICAgICAgICAgIHwgKCgoKFVJbnQpYWRkclNbMTNdKSAmIDB4RkZGRikgPDwgMTYpOwotICAgICBVTG9uZyB3NjQgPSBhbWQ2NGdfY2hlY2tfbGRteGNzciggKFVMb25nKXczMiApOworICAgcmV0dXJuIHdhcm5YODc7Cit9CiAKLSAgICAgd2FyblhNTSA9IChWZXhFbU5vdGUpKHc2NCA+PiAzMik7CiAKLSAgICAgZ3N0LT5ndWVzdF9TU0VST1VORCA9IHc2NCAmIDB4RkZGRkZGRkZVTEw7Ci0gICB9CisvKiBDQUxMRUQgRlJPTSBHRU5FUkFURUQgQ09ERSAqLworLyogRElSVFkgSEVMUEVSICh3cml0ZXMgZ3Vlc3Qgc3RhdGUsIHJlYWRzIGd1ZXN0IG1lbSkgKi8KK1ZleEVtTm90ZSBhbWQ2NGdfZGlydHloZWxwZXJfWFJTVE9SX0NPTVBPTkVOVF8xX0VYQ0xVRElOR19YTU1SRUdTCisgICAgICAgICAgICAgKCBWZXhHdWVzdEFNRDY0U3RhdGUqIGdzdCwgSFdvcmQgYWRkciApCit7CisgICBVU2hvcnQqIGFkZHJTID0gKFVTaG9ydCopYWRkcjsKKyAgIFVJbnQgICAgdzMyICAgPSAoKChVSW50KWFkZHJTWzEyXSkgJiAweEZGRkYpCisgICAgICAgICAgICAgICAgICAgfCAoKCgoVUludClhZGRyU1sxM10pICYgMHhGRkZGKSA8PCAxNik7CisgICBVTG9uZyAgIHc2NCAgID0gYW1kNjRnX2NoZWNrX2xkbXhjc3IoIChVTG9uZyl3MzIgKTsKKworICAgVmV4RW1Ob3RlIHdhcm5YTU0gPSAoVmV4RW1Ob3RlKSh3NjQgPj4gMzIpOworCisgICBnc3QtPmd1ZXN0X1NTRVJPVU5EID0gdzY0ICYgMHhGRkZGRkZGRlVMTDsKKyAgIHJldHVybiB3YXJuWE1NOworfQorCisKKy8qIFZJU0lCTEUgVE8gTElCVkVYIENMSUVOVCAqLworLyogRG8gRlhSU1RPUiBmcm9tIHRoZSBzdXBwbGllZCBhZGRyZXNzIGFuZCBzdG9yZSByZWFkIHZhbHVlcyB0byB0aGUgZ2l2ZW4KKyAgIFZleEd1ZXN0QU1ENjRTdGF0ZSBzdHJ1Y3R1cmUuIAorCisgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgZnJvbSBnZW5lcmF0ZWQgY29kZS4gIEZYUlNUT1IgaXMgZGVhbHQKKyAgIHdpdGggYnkgdGhlIGFtZDY0IGZyb250IGVuZCBieSBjYWxsaW5nIHRoZSBYUlNUT1JfQ09NUE9ORU5UX3swLDF9CisgICBmdW5jdGlvbnMgYWJvdmUgcGx1cyBzb21lIGluLWxpbmUgSVIuICBUaGlzIGZ1bmN0aW9uIGlzIG1lcmVseSBhCisgICBjb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgVkVYJ3MgdXNlcnMuCisqLworVmV4RW1Ob3RlIExpYlZFWF9HdWVzdEFNRDY0X2Z4cnN0b3IgKCAvKklOKi9IV29yZCBmcF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1ZleEd1ZXN0QU1ENjRTdGF0ZSogZ3N0ICkKK3sKKyAgIC8qIFJlc3RvcmUgJXhtbTAgLi4gJXhtbTE1LiAgSWYgdGhlIGhvc3QgaXMgYmlnLWVuZGlhbiwgdGhlc2UgbmVlZAorICAgICAgdG8gYmUgYnl0ZS1zd2FwcGVkLiAqLworICAgVTEyOCAqeG1tID0gKFUxMjggKikoZnBfc3RhdGUgKyAxNjApOworCisgICB2YXNzZXJ0KGhvc3RfaXNfbGl0dGxlX2VuZGlhbigpKTsKKworIyAgZGVmaW5lIENPUFlfVTEyOChfZHN0LF9zcmMpICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBkbyB7IF9kc3RbMF0gPSBfc3JjWzBdOyBfZHN0WzFdID0gX3NyY1sxXTsgICAgIFwKKyAgICAgICAgICAgX2RzdFsyXSA9IF9zcmNbMl07IF9kc3RbM10gPSBfc3JjWzNdOyB9ICAgXAorICAgICAgd2hpbGUgKDApCisKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU0wLCB4bW1bMF0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU0xLCB4bW1bMV0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU0yLCB4bW1bMl0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU0zLCB4bW1bM10gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU00LCB4bW1bNF0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU01LCB4bW1bNV0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU02LCB4bW1bNl0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU03LCB4bW1bN10gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU04LCB4bW1bOF0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU05LCB4bW1bOV0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU0xMCwgeG1tWzEwXSApOworICAgQ09QWV9VMTI4KCBnc3QtPmd1ZXN0X1lNTTExLCB4bW1bMTFdICk7CisgICBDT1BZX1UxMjgoIGdzdC0+Z3Vlc3RfWU1NMTIsIHhtbVsxMl0gKTsKKyAgIENPUFlfVTEyOCggZ3N0LT5ndWVzdF9ZTU0xMywgeG1tWzEzXSApOworICAgQ09QWV9VMTI4KCBnc3QtPmd1ZXN0X1lNTTE0LCB4bW1bMTRdICk7CisgICBDT1BZX1UxMjgoIGdzdC0+Z3Vlc3RfWU1NMTUsIHhtbVsxNV0gKTsKKworIyAgdW5kZWYgQ09QWV9VMTI4CisKKyAgIFZleEVtTm90ZSB3YXJuWE1NCisgICAgICA9IGFtZDY0Z19kaXJ0eWhlbHBlcl9YUlNUT1JfQ09NUE9ORU5UXzFfRVhDTFVESU5HX1hNTVJFR1MoZ3N0LCBmcF9zdGF0ZSk7CisgICBWZXhFbU5vdGUgd2Fyblg4NworICAgICAgPSBhbWQ2NGdfZGlydHloZWxwZXJfWFJTVE9SX0NPTVBPTkVOVF8wKGdzdCwgZnBfc3RhdGUpOwogCiAgICAvKiBQcmVmZXIgYW4gWDg3IGVtd2FybiBvdmVyIGFuIFhNTSBvbmUsIGlmIGJvdGggZXhpc3QuICovCiAgICBpZiAod2Fyblg4NyAhPSBFbU5vdGVfTk9ORSkKQEAgLTIwNTksNiArMjIxOCwxMCBAQAogfQogCiAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFN1cHBvcnRpbmcgZnVuY3Rpb25zIGZvciBGU0FWRS9GUlNUT1IgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKwogLyogRElSVFkgSEVMUEVSICh3cml0ZXMgZ3Vlc3Qgc3RhdGUpICovCiAvKiBJbml0aWFsaXNlIHRoZSB4ODcgRlBVIHN0YXRlIGFzIHBlciAnZmluaXQnLiAqLwogdm9pZCBhbWQ2NGdfZGlydHloZWxwZXJfRklOSVQgKCBWZXhHdWVzdEFNRDY0U3RhdGUqIGdzdCApCkBAIC0yMzUxLDcgKzI1MTQsNyBAQAogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLS8qLS0tIE1pc2MgaW50ZWdlciBoZWxwZXJzLCBpbmNsdWRpbmcgcm90YXRlcyBhbmQgQ1BVSUQuICAgICAgLS0tKi8KKy8qLS0tIENQVUlEIGhlbHBlcnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogLyogQ2xhaW0gdG8gYmUgdGhlIGZvbGxvd2luZyBDUFUsIHdoaWNoIGlzIHByb2JhYmx5IHJlcHJlc2VudGF0aXZlIG9mCkBAIC0yNzEwLDYgKzI4NzMsMTQgQEAKIC8qIENsYWltIHRvIGJlIHRoZSBmb2xsb3dpbmcgQ1BVICg0IHggLi4uKSwgd2hpY2ggaXMgQVZYIGFuZCBjeDE2CiAgICBjYXBhYmxlLiAgUGx1cyAoa2x1ZGdlISkgaXQgInN1cHBvcnRzIiBIVE0uCiAKKyAgIEFsc28gd2l0aCB0aGUgZm9sbG93aW5nIGNoYW5nZTogY2xhaW0gdGhhdCBYU2F2ZU9wdCBpcyBub3QKKyAgIGF2YWlsYWJsZSwgYnkgY3B1aWQoZWF4PTB4RCxlY3g9MSkuZWF4WzBdIHJldHVybnMgMCwgY29tcGFyZWQgdG8gMQorICAgb24gdGhlIHJlYWwgQ1BVLiAgQ29uc2VxdWVudGx5LCBwcm9ncmFtcyB0aGF0IGNvcnJlY3RseSBvYnNlcnZlCisgICB0aGVzZSBDUFVJRCB2YWx1ZXMgc2hvdWxkIG9ubHkgdHJ5IHRvIHVzZSAzIG9mIHRoZSA4IFhTYXZlLWZhbWlseQorICAgaW5zdHJ1Y3Rpb25zOiBYR0VUQlYsIFhTQVZFIGFuZCBYUlNUT1IuICBJbiBwYXJ0aWN1bGFyIHRoaXMgYXZvaWRzCisgICBoYXZpbmcgdG8gaW1wbGVtZW50IHRoZSBjb21wYWN0ZWQgb3Igb3B0aW1pc2VkIHNhdmUvcmVzdG9yZQorICAgdmFyaWFudHMuCisKICAgIHZlbmRvcl9pZCAgICAgICA6IEdlbnVpbmVJbnRlbAogICAgY3B1IGZhbWlseSAgICAgIDogNgogICAgbW9kZWwgICAgICAgICAgIDogNDIKQEAgLTI4MjAsNyArMjk5MSw3IEBACiAgICAgICAgICBzd2l0Y2ggKG9sZF9lY3gpIHsKICAgICAgICAgICAgIGNhc2UgMHgwMDAwMDAwMDogU0VUX0FCQ0QoMHgwMDAwMDAwNywgMHgwMDAwMDM0MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDM0MCwgMHgwMDAwMDAwMCk7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSAweDAwMDAwMDAxOiBTRVRfQUJDRCgweDAwMDAwMDAxLCAweDAwMDAwMDAwLAorICAgICAgICAgICAgY2FzZSAweDAwMDAwMDAxOiBTRVRfQUJDRCgweDAwMDAwMDAwLCAweDAwMDAwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAweDAwMDAwMDAwKTsgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIDB4MDAwMDAwMDI6IFNFVF9BQkNEKDB4MDAwMDAxMDAsIDB4MDAwMDAyNDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDApOyBicmVhazsKQEAgLTI4NjksNiArMzA0MCwxNzcgQEAKIH0KIAogCisvKiBDbGFpbSB0byBiZSB0aGUgZm9sbG93aW5nIENQVSAoNCB4IC4uLiksIHdoaWNoIGlzIEFWWDIgY2FwYWJsZS4KKworICAgV2l0aCB0aGUgZm9sbG93aW5nIGNoYW5nZTogY2xhaW0gdGhhdCBYU2F2ZU9wdCBpcyBub3QgYXZhaWxhYmxlLCBieQorICAgY3B1aWQoZWF4PTB4RCxlY3g9MSkuZWF4WzBdIHJldHVybnMgMCwgY29tcGFyZWQgdG8gMSBvbiB0aGUgcmVhbAorICAgQ1BVLiAgQ29uc2VxdWVudGx5LCBwcm9ncmFtcyB0aGF0IGNvcnJlY3RseSBvYnNlcnZlIHRoZXNlIENQVUlECisgICB2YWx1ZXMgc2hvdWxkIG9ubHkgdHJ5IHRvIHVzZSAzIG9mIHRoZSA4IFhTYXZlLWZhbWlseSBpbnN0cnVjdGlvbnM6CisgICBYR0VUQlYsIFhTQVZFIGFuZCBYUlNUT1IuICBJbiBwYXJ0aWN1bGFyIHRoaXMgYXZvaWRzIGhhdmluZyB0bworICAgaW1wbGVtZW50IHRoZSBjb21wYWN0ZWQgb3Igb3B0aW1pc2VkIHNhdmUvcmVzdG9yZSB2YXJpYW50cy4KKworICAgdmVuZG9yX2lkICAgICAgIDogR2VudWluZUludGVsCisgICBjcHUgZmFtaWx5ICAgICAgOiA2CisgICBtb2RlbCAgICAgICAgICAgOiA2MAorICAgbW9kZWwgbmFtZSAgICAgIDogSW50ZWwoUikgQ29yZShUTSkgaTctNDkxME1RIENQVSBAIDIuOTBHSHoKKyAgIHN0ZXBwaW5nICAgICAgICA6IDMKKyAgIG1pY3JvY29kZSAgICAgICA6IDB4MWMKKyAgIGNwdSBNSHogICAgICAgICA6IDkxOS45NTcKKyAgIGNhY2hlIHNpemUgICAgICA6IDgxOTIgS0IKKyAgIHBoeXNpY2FsIGlkICAgICA6IDAKKyAgIHNpYmxpbmdzICAgICAgICA6IDQKKyAgIGNvcmUgaWQgICAgICAgICA6IDMKKyAgIGNwdSBjb3JlcyAgICAgICA6IDQKKyAgIGFwaWNpZCAgICAgICAgICA6IDYKKyAgIGluaXRpYWwgYXBpY2lkICA6IDYKKyAgIGZwdSAgICAgICAgICAgICA6IHllcworICAgZnB1X2V4Y2VwdGlvbiAgIDogeWVzCisgICBjcHVpZCBsZXZlbCAgICAgOiAxMworICAgd3AgICAgICAgICAgICAgIDogeWVzCisgICBmbGFncyAgICAgICAgICAgOiBmcHUgdm1lIGRlIHBzZSB0c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMgc2VwIG10cnIgcGdlIG1jYQorICAgICAgICAgICAgICAgICAgICAgY21vdiBwYXQgcHNlMzYgY2xmbHVzaCBkdHMgYWNwaSBtbXggZnhzciBzc2Ugc3NlMiBzcyBodAorICAgICAgICAgICAgICAgICAgICAgdG0gcGJlIHN5c2NhbGwgbnggcGRwZTFnYiByZHRzY3AgbG0gY29uc3RhbnRfdHNjCisgICAgICAgICAgICAgICAgICAgICBhcmNoX3BlcmZtb24gcGVicyBidHMgcmVwX2dvb2Qgbm9wbCB4dG9wb2xvZ3kgbm9uc3RvcF90c2MKKyAgICAgICAgICAgICAgICAgICAgIGFwZXJmbXBlcmYgZWFnZXJmcHUgcG5pIHBjbG11bHFkcSBkdGVzNjQgbW9uaXRvciBkc19jcGwKKyAgICAgICAgICAgICAgICAgICAgIHZteCBzbXggZXN0IHRtMiBzc3NlMyBmbWEgY3gxNiB4dHByIHBkY20gcGNpZCBzc2U0XzEKKyAgICAgICAgICAgICAgICAgICAgIHNzZTRfMiB4MmFwaWMgbW92YmUgcG9wY250IHRzY19kZWFkbGluZV90aW1lciBhZXMgeHNhdmUKKyAgICAgICAgICAgICAgICAgICAgIGF2eCBmMTZjIHJkcmFuZCBsYWhmX2xtIGFibSBpZGEgYXJhdCBlcGIgcGxuIHB0cyBkdGhlcm0KKyAgICAgICAgICAgICAgICAgICAgIHRwcl9zaGFkb3cgdm5taSBmbGV4cHJpb3JpdHkgZXB0IHZwaWQgZnNnc2Jhc2UgdHNjX2FkanVzdAorICAgICAgICAgICAgICAgICAgICAgYm1pMSBhdngyIHNtZXAgYm1pMiBlcm1zIGludnBjaWQgeHNhdmVvcHQKKyAgIGJ1Z3MgICAgICAgICAgICA6CisgICBib2dvbWlwcyAgICAgICAgOiA1Nzg2LjY4CisgICBjbGZsdXNoIHNpemUgICAgOiA2NAorICAgY2FjaGVfYWxpZ25tZW50IDogNjQKKyAgIGFkZHJlc3Mgc2l6ZXMgICA6IDM5IGJpdHMgcGh5c2ljYWwsIDQ4IGJpdHMgdmlydHVhbAorICAgcG93ZXIgbWFuYWdlbWVudDoKKyovCit2b2lkIGFtZDY0Z19kaXJ0eWhlbHBlcl9DUFVJRF9hdngyICggVmV4R3Vlc3RBTUQ2NFN0YXRlKiBzdCApCit7CisjICBkZWZpbmUgU0VUX0FCQ0QoX2EsX2IsX2MsX2QpICAgICAgICAgICAgICAgIFwKKyAgICAgIGRvIHsgc3QtPmd1ZXN0X1JBWCA9IChVTG9uZykoX2EpOyAgICAgICAgXAorICAgICAgICAgICBzdC0+Z3Vlc3RfUkJYID0gKFVMb25nKShfYik7ICAgICAgICBcCisgICAgICAgICAgIHN0LT5ndWVzdF9SQ1ggPSAoVUxvbmcpKF9jKTsgICAgICAgIFwKKyAgICAgICAgICAgc3QtPmd1ZXN0X1JEWCA9IChVTG9uZykoX2QpOyAgICAgICAgXAorICAgICAgfSB3aGlsZSAoMCkKKworICAgVUludCBvbGRfZWF4ID0gKFVJbnQpc3QtPmd1ZXN0X1JBWDsKKyAgIFVJbnQgb2xkX2VjeCA9IChVSW50KXN0LT5ndWVzdF9SQ1g7CisKKyAgIHN3aXRjaCAob2xkX2VheCkgeworICAgICAgY2FzZSAweDAwMDAwMDAwOgorICAgICAgICAgU0VUX0FCQ0QoMHgwMDAwMDAwZCwgMHg3NTZlNjU0NywgMHg2YzY1NzQ2ZSwgMHg0OTY1NmU2OSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgwMDAwMDAwMToKKyAgICAgICAgIC8qIERvbid0IGFkdmVydGlzZSBSRFJBTkQgc3VwcG9ydCwgYml0IDMwIGluIEVDWC4gICovCisgICAgICAgICBTRVRfQUJDRCgweDAwMDMwNmMzLCAweDAyMTAwODAwLCAweDNmZmFmYmZmLCAweGJmZWJmYmZmKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweDAwMDAwMDAyOgorICAgICAgICAgU0VUX0FCQ0QoMHg3NjAzNjMwMSwgMHgwMGYwYjZmZiwgMHgwMDAwMDAwMCwgMHgwMGMxMDAwMCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgwMDAwMDAwMzoKKyAgICAgICAgIFNFVF9BQkNEKDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDApOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4MDAwMDAwMDQ6CisgICAgICAgICBzd2l0Y2ggKG9sZF9lY3gpIHsKKyAgICAgICAgICAgIGNhc2UgMHgwMDAwMDAwMDogU0VUX0FCQ0QoMHgxYzAwNDEyMSwgMHgwMWMwMDAzZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAzZiwgMHgwMDAwMDAwMCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAweDAwMDAwMDAxOiBTRVRfQUJDRCgweDFjMDA0MTIyLCAweDAxYzAwMDNmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDNmLCAweDAwMDAwMDAwKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDB4MDAwMDAwMDI6IFNFVF9BQkNEKDB4MWMwMDQxNDMsIDB4MDFjMDAwM2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxZmYsIDB4MDAwMDAwMDApOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMHgwMDAwMDAwMzogU0VUX0FCQ0QoMHgxYzAzYzE2MywgMHgwM2MwMDAzZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMWZmZiwgMHgwMDAwMDAwNik7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogICAgICAgICBTRVRfQUJDRCgweDAwMDAwMDAwLCAweDAwMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAweDAwMDAwMDAwKTsgYnJlYWs7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgwMDAwMDAwNToKKyAgICAgICAgIFNFVF9BQkNEKDB4MDAwMDAwNDAsIDB4MDAwMDAwNDAsIDB4MDAwMDAwMDMsIDB4MDAwNDIxMjApOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4MDAwMDAwMDY6CisgICAgICAgICBTRVRfQUJDRCgweDAwMDAwMDc3LCAweDAwMDAwMDAyLCAweDAwMDAwMDA5LCAweDAwMDAwMDAwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweDAwMDAwMDA3OgorICAgICAgICAgc3dpdGNoIChvbGRfZWN4KSB7CisgICAgICAgICAgICBjYXNlIDB4MDAwMDAwMDA6IFNFVF9BQkNEKDB4MDAwMDAwMDAsIDB4MDAwMDI3YWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDApOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgU0VUX0FCQ0QoMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCk7IGJyZWFrOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4MDAwMDAwMDg6CisgICAgICAgICBTRVRfQUJDRCgweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweDAwMDAwMDA5OgorICAgICAgICAgU0VUX0FCQ0QoMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgwMDAwMDAwYToKKyAgICAgICAgIFNFVF9BQkNEKDB4MDczMDA4MDMsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDA2MDMpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4MDAwMDAwMGI6CisgICAgICAgICBzd2l0Y2ggKG9sZF9lY3gpIHsKKyAgICAgICAgICAgIGNhc2UgMHgwMDAwMDAwMDogU0VUX0FCQ0QoMHgwMDAwMDAwMSwgMHgwMDAwMDAwMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMCwgMHgwMDAwMDAwMik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAweDAwMDAwMDAxOiBTRVRfQUJDRCgweDAwMDAwMDA0LCAweDAwMDAwMDA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAxLCAweDAwMDAwMDAyKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiAgICAgICAgIFNFVF9BQkNEKDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9lY3gsICAgIDB4MDAwMDAwMDIpOyBicmVhazsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweDAwMDAwMDBjOgorICAgICAgICAgU0VUX0FCQ0QoMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgwMDAwMDAwZDoKKyAgICAgICAgIHN3aXRjaCAob2xkX2VjeCkgeworICAgICAgICAgICAgY2FzZSAweDAwMDAwMDAwOiBTRVRfQUJDRCgweDAwMDAwMDA3LCAweDAwMDAwMzQwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMzQwLCAweDAwMDAwMDAwKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDB4MDAwMDAwMDE6IFNFVF9BQkNEKDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDApOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMHgwMDAwMDAwMjogU0VUX0FCQ0QoMHgwMDAwMDEwMCwgMHgwMDAwMDI0MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCk7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogICAgICAgICBTRVRfQUJDRCgweDAwMDAwMDAwLCAweDAwMDAwMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAweDAwMDAwMDAwKTsgYnJlYWs7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHg4MDAwMDAwMDoKKyAgICAgICAgIFNFVF9BQkNEKDB4ODAwMDAwMDgsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDApOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4ODAwMDAwMDE6CisgICAgICAgICBTRVRfQUJDRCgweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDIxLCAweDJjMTAwODAwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweDgwMDAwMDAyOgorICAgICAgICAgU0VUX0FCQ0QoMHg2NTc0NmU0OSwgMHgyOTUyMjg2YywgMHg3MjZmNDMyMCwgMHg0ZDU0Mjg2NSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHg4MDAwMDAwMzoKKyAgICAgICAgIFNFVF9BQkNEKDB4Mzc2OTIwMjksIDB4MzEzOTM0MmQsIDB4MjA1MTRkMzAsIDB4MjA1NTUwNDMpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4ODAwMDAwMDQ6CisgICAgICAgICBTRVRfQUJDRCgweDJlMzIyMDQwLCAweDQ4NDczMDM5LCAweDAwMDAwMDdhLCAweDAwMDAwMDAwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweDgwMDAwMDA1OgorICAgICAgICAgU0VUX0FCQ0QoMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHg4MDAwMDAwNjoKKyAgICAgICAgIFNFVF9BQkNEKDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDEwMDYwNDAsIDB4MDAwMDAwMDApOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4ODAwMDAwMDc6CisgICAgICAgICBTRVRfQUJDRCgweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMTAwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweDgwMDAwMDA4OgorICAgICAgICAgU0VUX0FCQ0QoMHgwMDAwMzAyNywgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgICBTRVRfQUJDRCgweDAwMDAwMDA3LCAweDAwMDAwMzQwLCAweDAwMDAwMzQwLCAweDAwMDAwMDAwKTsKKyAgICAgICAgIGJyZWFrOworICAgfQorIyAgdW5kZWYgU0VUX0FCQ0QKK30KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBNaXNjIGludGVnZXIgaGVscGVycywgaW5jbHVkaW5nIHJvdGF0ZXMgYW5kIGNyeXB0by4gICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKIFVMb25nIGFtZDY0Z19jYWxjdWxhdGVfUkNSICggVUxvbmcgYXJnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvbmcgcm90X2FtdCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb25nIHJmbGFnc19pbiwgCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ndWVzdF9hbWQ2NF90b0lSLmMgYi9WRVgvcHJpdi9ndWVzdF9hbWQ2NF90b0lSLmMKaW5kZXggYWRkOTQzZC4uYWY0ODE3ZiAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfYW1kNjRfdG9JUi5jCisrKyBiL1ZFWC9wcml2L2d1ZXN0X2FtZDY0X3RvSVIuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM0OSw2ICszNDksMTMgQEAKICAgIHZwYW5pYygiZG9TY2FsYXJXaWRlbmluZyhhbWQ2NCkiKTsKIH0KIAorc3RhdGljCit2b2lkIHB1dEd1YXJkZWQgKCBJbnQgZ3N0T2ZmQiwgSVJFeHByKiBndWFyZCwgSVJFeHByKiB2YWx1ZSApCit7CisgICBJUlR5cGUgdHkgPSB0eXBlT2ZJUkV4cHIoaXJzYi0+dHllbnYsIHZhbHVlKTsKKyAgIHN0bXQoIElSU3RtdF9QdXQoZ3N0T2ZmQiwKKyAgICAgICAgICAgICAgICAgICAgSVJFeHByX0lURShndWFyZCwgdmFsdWUsIElSRXhwcl9HZXQoZ3N0T2ZmQiwgdHkpKSkgKTsKK30KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0yMTQ2LDE4ICsyMTUzLDE4IEBACiAgICByZXR1cm4gZ3JwOF9uYW1lc1tvcGNfYXV4XTsKIH0KIAotLy8uLiBzdGF0aWMgY29uc3QgSENoYXIqIG5hbWVTUmVnICggVUludCBzcmVnICkKLS8vLi4gewotLy8uLiAgICBzd2l0Y2ggKHNyZWcpIHsKLS8vLi4gICAgICAgY2FzZSBSX0VTOiByZXR1cm4gIiVlcyI7Ci0vLy4uICAgICAgIGNhc2UgUl9DUzogcmV0dXJuICIlY3MiOwotLy8uLiAgICAgICBjYXNlIFJfU1M6IHJldHVybiAiJXNzIjsKLS8vLi4gICAgICAgY2FzZSBSX0RTOiByZXR1cm4gIiVkcyI7Ci0vLy4uICAgICAgIGNhc2UgUl9GUzogcmV0dXJuICIlZnMiOwotLy8uLiAgICAgICBjYXNlIFJfR1M6IHJldHVybiAiJWdzIjsKLS8vLi4gICAgICAgZGVmYXVsdDogdnBhbmljKCJuYW1lU1JlZyh4ODYpIik7Ci0vLy4uICAgIH0KLS8vLi4gfQorc3RhdGljIGNvbnN0IEhDaGFyKiBuYW1lU1JlZyAoIFVJbnQgc3JlZyApCit7CisgICBzd2l0Y2ggKHNyZWcpIHsKKyAgICAgIGNhc2UgUl9FUzogcmV0dXJuICIlZXMiOworICAgICAgY2FzZSBSX0NTOiByZXR1cm4gIiVjcyI7CisgICAgICBjYXNlIFJfU1M6IHJldHVybiAiJXNzIjsKKyAgICAgIGNhc2UgUl9EUzogcmV0dXJuICIlZHMiOworICAgICAgY2FzZSBSX0ZTOiByZXR1cm4gIiVmcyI7CisgICAgICBjYXNlIFJfR1M6IHJldHVybiAiJWdzIjsKKyAgICAgIGRlZmF1bHQ6IHZwYW5pYygibmFtZVNSZWcoYW1kNjQpIik7CisgICB9Cit9CiAKIHN0YXRpYyBjb25zdCBIQ2hhciogbmFtZU1NWFJlZyAoIEludCBtbXhyZWcgKQogewpAQCAtNTE5NSw2ICs1MjAyLDUyIEBACiB9CiAKIAorLyogR2VuZXJhdGUgYSBkaXJ0eSBoZWxwZXIgY2FsbCB0aGF0IGluaXRpYWxpc2VzIHRoZSB4ODcgc3RhdGUgYSBsYQorICAgRklOSVQuICBJZiB8Z3VhcmR8IGlzIE5VTEwsIGl0IGlzIGRvbmUgdW5jb25kaXRpb25hbGx5LiAgT3RoZXJ3aXNlCisgICB8Z3VhcmR8IGlzIHVzZWQgYXMgYSBndWFyZGluZyBjb25kaXRpb24uCisqLworc3RhdGljIHZvaWQgZ2VuX0ZJTklUX1NFUVVFTkNFICggSVJFeHByKiBndWFyZCApCit7CisgICAvKiBVc2VzIGRpcnR5IGhlbHBlcjogCisgICAgICAgICB2b2lkIGFtZDY0Z19kb19GSU5JVCAoIFZleEd1ZXN0QU1ENjRTdGF0ZSogKSAqLworICAgSVJEaXJ0eSogZCAgPSB1bnNhZmVJUkRpcnR5XzBfTiAoIAorICAgICAgICAgICAgICAgICAgICAwLypyZWdwYXJtcyovLCAKKyAgICAgICAgICAgICAgICAgICAgImFtZDY0Z19kaXJ0eWhlbHBlcl9GSU5JVCIsIAorICAgICAgICAgICAgICAgICAgICAmYW1kNjRnX2RpcnR5aGVscGVyX0ZJTklULAorICAgICAgICAgICAgICAgICAgICBta0lSRXhwclZlY18xKCBJUkV4cHJfQkJQVFIoKSApCisgICAgICAgICAgICAgICAgICk7CisKKyAgIC8qIGRlY2xhcmUgd2UncmUgd3JpdGluZyBndWVzdCBzdGF0ZSAqLworICAgZC0+bkZ4U3RhdGUgPSA1OworICAgdmV4X2J6ZXJvKCZkLT5meFN0YXRlLCBzaXplb2YoZC0+ZnhTdGF0ZSkpOworCisgICBkLT5meFN0YXRlWzBdLmZ4ICAgICA9IElmeF9Xcml0ZTsKKyAgIGQtPmZ4U3RhdGVbMF0ub2Zmc2V0ID0gT0ZGQl9GVE9QOworICAgZC0+ZnhTdGF0ZVswXS5zaXplICAgPSBzaXplb2YoVUludCk7CisKKyAgIGQtPmZ4U3RhdGVbMV0uZnggICAgID0gSWZ4X1dyaXRlOworICAgZC0+ZnhTdGF0ZVsxXS5vZmZzZXQgPSBPRkZCX0ZQUkVHUzsKKyAgIGQtPmZ4U3RhdGVbMV0uc2l6ZSAgID0gOCAqIHNpemVvZihVTG9uZyk7CisKKyAgIGQtPmZ4U3RhdGVbMl0uZnggICAgID0gSWZ4X1dyaXRlOworICAgZC0+ZnhTdGF0ZVsyXS5vZmZzZXQgPSBPRkZCX0ZQVEFHUzsKKyAgIGQtPmZ4U3RhdGVbMl0uc2l6ZSAgID0gOCAqIHNpemVvZihVQ2hhcik7CisKKyAgIGQtPmZ4U3RhdGVbM10uZnggICAgID0gSWZ4X1dyaXRlOworICAgZC0+ZnhTdGF0ZVszXS5vZmZzZXQgPSBPRkZCX0ZQUk9VTkQ7CisgICBkLT5meFN0YXRlWzNdLnNpemUgICA9IHNpemVvZihVTG9uZyk7CisKKyAgIGQtPmZ4U3RhdGVbNF0uZnggICAgID0gSWZ4X1dyaXRlOworICAgZC0+ZnhTdGF0ZVs0XS5vZmZzZXQgPSBPRkZCX0ZDMzIxMDsKKyAgIGQtPmZ4U3RhdGVbNF0uc2l6ZSAgID0gc2l6ZW9mKFVMb25nKTsKKworICAgaWYgKGd1YXJkKQorICAgICAgZC0+Z3VhcmQgPSBndWFyZDsKKworICAgc3RtdCggSVJTdG10X0RpcnR5KGQpICk7Cit9CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogR2l2ZW4gYWxsIHRoYXQgc3RhY2stbWFuZ2xpbmcganVuaywgd2UgY2FuIG5vdyBnbyBhaGVhZAogICAgYW5kIGRlc2NyaWJlIEZQIGluc3RydWN0aW9ucy4gCkBAIC01NDIwLDcgKzU0NzMsOCBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCBncmVnTE8zb2ZSTShtb2RybSkpOworICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKFVJbnQpZ3JlZ0xPM29mUk0obW9kcm0pKTsKICAgICAgICAgICAgICAgIHZleF9wcmludGYoImZpcnN0X29wY29kZSA9PSAweEQ4XG4iKTsKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWw7CiAgICAgICAgICB9CkBAIC01NDM5LDcgKzU0OTMsNyBAQAogICAgICAgICAgICAgLyogRHVubm8gaWYgdGhpcyBpcyByaWdodCAqLwogICAgICAgICAgICAgY2FzZSAweEQwIC4uLiAweEQ3OiAvKiBGQ09NICVzdCg/KSwlc3QoMCkgKi8KICAgICAgICAgICAgICAgIHJfZHN0ID0gKFVJbnQpbW9kcm0gLSAweEQwOwotICAgICAgICAgICAgICAgRElQKCJmY29tICUlc3QoMCksJSVzdCglZClcbiIsIHJfZHN0KTsKKyAgICAgICAgICAgICAgIERJUCgiZmNvbSAlJXN0KDApLCUlc3QoJXUpXG4iLCByX2RzdCk7CiAgICAgICAgICAgICAgICAvKiBUaGlzIGZvcmNlcyBDMSB0byB6ZXJvLCB3aGljaCBpc24ndCByaWdodC4gKi8KICAgICAgICAgICAgICAgIHB1dF9DMzIxMCggCiAgICAgICAgICAgICAgICAgICAgdW5vcChJb3BfMzJVdG82NCwKQEAgLTU0NTQsNyArNTUwOCw3IEBACiAgICAgICAgICAgICAvKiBEdW5ubyBpZiB0aGlzIGlzIHJpZ2h0ICovCiAgICAgICAgICAgICBjYXNlIDB4RDggLi4uIDB4REY6IC8qIEZDT01QICVzdCg/KSwlc3QoMCkgKi8KICAgICAgICAgICAgICAgIHJfZHN0ID0gKFVJbnQpbW9kcm0gLSAweEQ4OwotICAgICAgICAgICAgICAgRElQKCJmY29tcCAlJXN0KDApLCUlc3QoJWQpXG4iLCByX2RzdCk7CisgICAgICAgICAgICAgICBESVAoImZjb21wICUlc3QoMCksJSVzdCgldSlcbiIsIHJfZHN0KTsKICAgICAgICAgICAgICAgIC8qIFRoaXMgZm9yY2VzIEMxIHRvIHplcm8sIHdoaWNoIGlzbid0IHJpZ2h0LiAqLwogICAgICAgICAgICAgICAgcHV0X0MzMjEwKCAKICAgICAgICAgICAgICAgICAgICB1bm9wKElvcF8zMlV0bzY0LApAQCAtNTY3OSw3ICs1NzMzLDggQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgZ3JlZ0xPM29mUk0obW9kcm0pKTsKKyAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChVSW50KWdyZWdMTzNvZlJNKG1vZHJtKSk7CiAgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJmaXJzdF9vcGNvZGUgPT0gMHhEOVxuIik7CiAgICAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsOwogICAgICAgICAgfQpAQCAtNjA3OCw3ICs2MTMzLDggQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgZ3JlZ0xPM29mUk0obW9kcm0pKTsKKyAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChVSW50KWdyZWdMTzNvZlJNKG1vZHJtKSk7CiAgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJmaXJzdF9vcGNvZGUgPT0gMHhEQVxuIik7CiAgICAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsOwogICAgICAgICAgfQpAQCAtNjI0Miw3ICs2Mjk4LDggQEAKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsIGdyZWdMTzNvZlJNKG1vZHJtKSk7CisgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoVUludClncmVnTE8zb2ZSTShtb2RybSkpOwogICAgICAgICAgICAgICAgdmV4X3ByaW50ZigiZmlyc3Rfb3Bjb2RlID09IDB4REJcbiIpOwogICAgICAgICAgICAgICAgZ290byBkZWNvZGVfZmFpbDsKICAgICAgICAgIH0KQEAgLTYzMDUsNDEgKzYzNjIsNyBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgMHhFMzogewotICAgICAgICAgICAgICAgLyogVXNlcyBkaXJ0eSBoZWxwZXI6IAotICAgICAgICAgICAgICAgICAgICAgdm9pZCBhbWQ2NGdfZG9fRklOSVQgKCBWZXhHdWVzdEFNRDY0U3RhdGUqICkgKi8KLSAgICAgICAgICAgICAgIElSRGlydHkqIGQgID0gdW5zYWZlSVJEaXJ0eV8wX04gKCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC8qcmVncGFybXMqLywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbWQ2NGdfZGlydHloZWxwZXJfRklOSVQiLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFtZDY0Z19kaXJ0eWhlbHBlcl9GSU5JVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtJUkV4cHJWZWNfMSggSVJFeHByX0JCUFRSKCkgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotCi0gICAgICAgICAgICAgICAvKiBkZWNsYXJlIHdlJ3JlIHdyaXRpbmcgZ3Vlc3Qgc3RhdGUgKi8KLSAgICAgICAgICAgICAgIGQtPm5GeFN0YXRlID0gNTsKLSAgICAgICAgICAgICAgIHZleF9iemVybygmZC0+ZnhTdGF0ZSwgc2l6ZW9mKGQtPmZ4U3RhdGUpKTsKLQotICAgICAgICAgICAgICAgZC0+ZnhTdGF0ZVswXS5meCAgICAgPSBJZnhfV3JpdGU7Ci0gICAgICAgICAgICAgICBkLT5meFN0YXRlWzBdLm9mZnNldCA9IE9GRkJfRlRPUDsKLSAgICAgICAgICAgICAgIGQtPmZ4U3RhdGVbMF0uc2l6ZSAgID0gc2l6ZW9mKFVJbnQpOwotCi0gICAgICAgICAgICAgICBkLT5meFN0YXRlWzFdLmZ4ICAgICA9IElmeF9Xcml0ZTsKLSAgICAgICAgICAgICAgIGQtPmZ4U3RhdGVbMV0ub2Zmc2V0ID0gT0ZGQl9GUFJFR1M7Ci0gICAgICAgICAgICAgICBkLT5meFN0YXRlWzFdLnNpemUgICA9IDggKiBzaXplb2YoVUxvbmcpOwotCi0gICAgICAgICAgICAgICBkLT5meFN0YXRlWzJdLmZ4ICAgICA9IElmeF9Xcml0ZTsKLSAgICAgICAgICAgICAgIGQtPmZ4U3RhdGVbMl0ub2Zmc2V0ID0gT0ZGQl9GUFRBR1M7Ci0gICAgICAgICAgICAgICBkLT5meFN0YXRlWzJdLnNpemUgICA9IDggKiBzaXplb2YoVUNoYXIpOwotCi0gICAgICAgICAgICAgICBkLT5meFN0YXRlWzNdLmZ4ICAgICA9IElmeF9Xcml0ZTsKLSAgICAgICAgICAgICAgIGQtPmZ4U3RhdGVbM10ub2Zmc2V0ID0gT0ZGQl9GUFJPVU5EOwotICAgICAgICAgICAgICAgZC0+ZnhTdGF0ZVszXS5zaXplICAgPSBzaXplb2YoVUxvbmcpOwotCi0gICAgICAgICAgICAgICBkLT5meFN0YXRlWzRdLmZ4ICAgICA9IElmeF9Xcml0ZTsKLSAgICAgICAgICAgICAgIGQtPmZ4U3RhdGVbNF0ub2Zmc2V0ID0gT0ZGQl9GQzMyMTA7Ci0gICAgICAgICAgICAgICBkLT5meFN0YXRlWzRdLnNpemUgICA9IHNpemVvZihVTG9uZyk7Ci0KLSAgICAgICAgICAgICAgIHN0bXQoIElSU3RtdF9EaXJ0eShkKSApOwotCisgICAgICAgICAgICAgICBnZW5fRklOSVRfU0VRVUVOQ0UoTlVMTC8qbm8gZ3VhcmRpbmcgY29uZGl0aW9uKi8pOwogICAgICAgICAgICAgICAgRElQKCJmbmluaXRcbiIpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC02NDI1LDcgKzY0NDgsOCBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCBncmVnTE8zb2ZSTShtb2RybSkpOworICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKFVJbnQpZ3JlZ0xPM29mUk0obW9kcm0pKTsKICAgICAgICAgICAgICAgIHZleF9wcmludGYoImZpcnN0X29wY29kZSA9PSAweERDXG4iKTsKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWw7CiAgICAgICAgICB9CkBAIC02NjYwLDcgKzY2ODQsOCBAQAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgZ3JlZ0xPM29mUk0obW9kcm0pKTsKKyAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChVSW50KWdyZWdMTzNvZlJNKG1vZHJtKSk7CiAgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJmaXJzdF9vcGNvZGUgPT0gMHhERFxuIik7CiAgICAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsOwogICAgICAgICAgfQpAQCAtNjc5Myw3ICs2ODE4LDggQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgZ3JlZ0xPM29mUk0obW9kcm0pKTsKKyAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChVSW50KWdyZWdMTzNvZlJNKG1vZHJtKSk7CiAgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJmaXJzdF9vcGNvZGUgPT0gMHhERVxuIik7CiAgICAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsOwogICAgICAgICAgfQpAQCAtNjkwOSw3ICs2OTM1LDggQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgZ3JlZ0xPM29mUk0obW9kcm0pKTsKKyAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChVSW50KWdyZWdMTzNvZlJNKG1vZHJtKSk7CiAgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJmaXJzdF9vcGNvZGUgPT0gMHhERlxuIik7CiAgICAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsOwogICAgICAgICAgfQpAQCAtNzEyNSw3ICs3MTUyLDcgQEAKICAgICAgIGNhc2UgMHhGQjogb3AgPSBJb3BfU3ViNjQ7IGJyZWFrOwogCiAgICAgICBkZWZhdWx0OiAKLSAgICAgICAgIHZleF9wcmludGYoIlxuMHgleFxuIiwgKEludClvcGMpOworICAgICAgICAgdmV4X3ByaW50ZigiXG4weCV4XG4iLCAoVUludClvcGMpOwogICAgICAgICAgdnBhbmljKCJkaXNfTU1Yb3BfcmVnbWVtX3RvX3JlZyIpOwogICAgfQogCkBAIC04NjE1LDggKzg2NDIsNTcgQEAKIC8vLi4gICAgICAgcmV0dXJuIGxlbitkZWx0YTA7CiAvLy4uICAgIH0KIC8vLi4gfQotLy8uLiAKLS8vLi4gCisKKy8qIEhhbmRsZSBtb3ZlIGluc3RydWN0aW9ucyBvZiB0aGUgZm9ybQorICAgICAgbW92IFMsIEUgIG1lYW5pbmcKKyAgICAgIG1vdiBzcmVnLCByZWctb3ItbWVtCisgICBJcyBwYXNzZWQgdGhlIGEgcHRyIHRvIHRoZSBtb2RSTSBieXRlLCBhbmQgdGhlIGRhdGEgc2l6ZS4gIFJldHVybnMKKyAgIHRoZSBhZGRyZXNzIGFkdmFuY2VkIGNvbXBsZXRlbHkgb3ZlciB0aGlzIGluc3RydWN0aW9uLgorCisgICBWRVggZG9lcyBub3QgY3VycmVudGx5IHNpbXVsYXRlIHNlZ21lbnQgcmVnaXN0ZXJzIG9uIEFNRDY0IHdoaWNoIG1lYW5zIHRoYXQKKyAgIGluc3RlYWQgb2YgbW92aW5nIGEgdmFsdWUgb2YgYSBzZWdtZW50IHJlZ2lzdGVyLCB6ZXJvIGlzIG1vdmVkIHRvIHRoZQorICAgZGVzdGluYXRpb24uICBUaGUgemVybyB2YWx1ZSByZXByZXNlbnRzIGEgbnVsbCAodW51c2VkKSBzZWxlY3Rvci4gIFRoaXMgaXMKKyAgIG5vdCBjb3JyZWN0IChlc3BlY2lhbGx5IGZvciB0aGUgJWNzLCAlZnMgYW5kICVncyByZWdpc3RlcnMpIGJ1dCBpdCBzZWVtcyB0bworICAgcHJvdmlkZSBhIHN1ZmZpY2llbnQgc2ltdWxhdGlvbiBmb3IgY3VycmVudGx5IHNlZW4gcHJvZ3JhbXMgdGhhdCB1c2UgdGhpcworICAgaW5zdHJ1Y3Rpb24uICBJZiBzb21lIHByb2dyYW0gYWN0dWFsbHkgZGVjaWRlcyB0byB1c2UgdGhlIG9idGFpbmVkIHNlZ21lbnQKKyAgIHNlbGVjdG9yIGZvciBzb21ldGhpbmcgbWVhbmluZ2Z1bCB0aGVuIHRoZSB6ZXJvIHZhbHVlIHNob3VsZCBiZSBhIGNsZWFyCisgICBpbmRpY2F0b3IgdGhhdCB0aGVyZSBpcyBzb21lIHByb2JsZW0uCisKKyAgIFMoc3JjKSBpcyBzcmVnLgorICAgRShkc3QpIGlzIHJlZy1vci1tZW0KKworICAgSWYgRSBpcyByZWcsIC0tPiAgICBQVVQgJDAsICVFCisKKyAgIElmIEUgaXMgbWVtLCAtLT4gICAgKGdldEFkZHIgRSkgLT4gdG1wYQorICAgICAgICAgICAgICAgICAgICAgICBTVCAkMCwgKHRtcGEpCisqLworc3RhdGljCitVTG9uZyBkaXNfbW92X1NfRSAoIGNvbnN0IFZleEFiaUluZm8qIHZiaSwKKyAgICAgICAgICAgICAgICAgICAgUHJlZml4ICAgICAgcGZ4LAorICAgICAgICAgICAgICAgICAgICBJbnQgICAgICAgICBzaXplLAorICAgICAgICAgICAgICAgICAgICBMb25nICAgICAgICBkZWx0YTAgKQoreworICAgSW50ICAgbGVuOworICAgVUNoYXIgcm0gPSBnZXRVQ2hhcihkZWx0YTApOworICAgSENoYXIgZGlzX2J1Zls1MF07CisKKyAgIGlmIChlcGFydElzUmVnKHJtKSkgeworICAgICAgcHV0SVJlZ0Uoc2l6ZSwgcGZ4LCBybSwgbWtVKHN6VG9JVHkoc2l6ZSksIDApKTsKKyAgICAgIERJUCgibW92ICVzLCVzXG4iLCBuYW1lU1JlZyhncmVnT2ZSZXhSTShwZngsIHJtKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZUlSZWdFKHNpemUsIHBmeCwgcm0pKTsKKyAgICAgIHJldHVybiAxK2RlbHRhMDsKKyAgIH0KKworICAgLyogRSByZWZlcnMgdG8gbWVtb3J5ICovCisgICB7CisgICAgICBJUlRlbXAgYWRkciA9IGRpc0FNb2RlKCZsZW4sIHZiaSwgcGZ4LCBkZWx0YTAsIGRpc19idWYsIDApOworICAgICAgc3RvcmVMRShta2V4cHIoYWRkciksIG1rVTE2KDApKTsKKyAgICAgIERJUCgibW92ICVzLCVzXG4iLCBuYW1lU1JlZyhncmVnT2ZSZXhSTShwZngsIHJtKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgZGlzX2J1Zik7CisgICAgICByZXR1cm4gbGVuK2RlbHRhMDsKKyAgIH0KK30KKwogLy8uLiBzdGF0aWMgCiAvLy4uIHZvaWQgZGlzX3B1c2hfc2VncmVnICggVUludCBzcmVnLCBJbnQgc3ogKQogLy8uLiB7CkBAIC05MDI0LDYgKzkxMDAsOCBAQAogIyAgZGVmaW5lIFhYWChfcHJlLCBfb3AsIF9ub3QpIHsgcHJlID0gX3ByZTsgb3AgPSBfb3A7IG5vdCA9IF9ub3Q7IH0KICAgIC8vIElmIHlvdSBhZGQgYSBjYXNlIGhlcmUsIGFkZCBhIGNvcnJlc3BvbmRpbmcgdGVzdCBmb3IgYm90aCBWQ01QU0RfMTI4CiAgICAvLyBhbmQgVkNNUFNTXzEyOCBpbiBhdngtMS5jLgorICAgLy8gQ2FzZXMgMHhBIGFuZCBhYm92ZSBhcmUKKyAgIC8vICAgICJFbmhhbmNlZCBDb21wYXJpc29uIFByZWRpY2F0ZVtzXSBmb3IgVkVYLUVuY29kZWQgW2luc25zXSIKICAgIHN3aXRjaCAoaW1tOCkgewogICAgICAgLy8gIk8iID0gb3JkZXJlZCwgIlUiID0gdW5vcmRlcmVkCiAgICAgICAvLyAiUSIgPSBub24tc2lnbmFsbGluZyAocXVpZXQpLCAiUyIgPSBzaWduYWxsaW5nCkBAIC05MDM0LDM5ICs5MTEyLDUwIEBACiAgICAgICAvLyAgICAgICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgIHwKICAgICAgIC8vICAgICAgICAgICAgIHYgICAgICB2ICAgICAgICAgICAgICAgdgogICAgICAgY2FzZSAweDA6ICBYWFgoRmFsc2UsIElvcF9DbXBFUTMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBFUV9PUQotICAgICAgY2FzZSAweDE6ICBYWFgoRmFsc2UsIElvcF9DbXBMVDMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBMVF9PUwotICAgICAgY2FzZSAweDI6ICBYWFgoRmFsc2UsIElvcF9DbXBMRTMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBMRV9PUwotICAgICAgY2FzZSAweDM6ICBYWFgoRmFsc2UsIElvcF9DbXBVTjMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBVTk9SRF9RCi0gICAgICBjYXNlIDB4NDogIFhYWChGYWxzZSwgSW9wX0NtcEVRMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE5FUV9VUQotICAgICAgY2FzZSAweDU6ICBYWFgoRmFsc2UsIElvcF9DbXBMVDMyRng0LCBUcnVlKTsgIGJyZWFrOyAvLyBOTFRfVVMKLSAgICAgIGNhc2UgMHg2OiAgWFhYKEZhbHNlLCBJb3BfQ21wTEUzMkZ4NCwgVHJ1ZSk7ICBicmVhazsgLy8gTkxFX1VTCi0gICAgICBjYXNlIDB4NzogIFhYWChGYWxzZSwgSW9wX0NtcFVOMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE9SRF9RCiAgICAgICBjYXNlIDB4ODogIFhYWChGYWxzZSwgSW9wX0NtcEVRMzJGeDQsIEZhbHNlKTsgYnJlYWs7IC8vIEVRX1VRCi0gICAgICBjYXNlIDB4OTogIFhYWChUcnVlLCAgSW9wX0NtcExFMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE5HRV9VUwotICAgICAgLyogIkVuaGFuY2VkIENvbXBhcmlzb24gUHJlZGljYXRlW3NdIGZvciBWRVgtRW5jb2RlZCBbaW5zbnNdICovCi0gICAgICBjYXNlIDB4QTogIFhYWChUcnVlLCAgSW9wX0NtcExUMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE5HVF9VUwotICAgICAgLy8gMHhCICBGQUxTRV9PUQorICAgICAgY2FzZSAweDEwOiBYWFgoRmFsc2UsIElvcF9DbXBFUTMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBFUV9PUworICAgICAgY2FzZSAweDE4OiBYWFgoRmFsc2UsIElvcF9DbXBFUTMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBFUV9VUworICAgICAgLy8KKyAgICAgIGNhc2UgMHgxOiAgWFhYKEZhbHNlLCBJb3BfQ21wTFQzMkZ4NCwgRmFsc2UpOyBicmVhazsgLy8gTFRfT1MKKyAgICAgIGNhc2UgMHgxMTogWFhYKEZhbHNlLCBJb3BfQ21wTFQzMkZ4NCwgRmFsc2UpOyBicmVhazsgLy8gTFRfT1EKKyAgICAgIC8vCisgICAgICBjYXNlIDB4MjogIFhYWChGYWxzZSwgSW9wX0NtcExFMzJGeDQsIEZhbHNlKTsgYnJlYWs7IC8vIExFX09TCisgICAgICBjYXNlIDB4MTI6IFhYWChGYWxzZSwgSW9wX0NtcExFMzJGeDQsIEZhbHNlKTsgYnJlYWs7IC8vIExFX09RCisgICAgICAvLworICAgICAgY2FzZSAweDM6ICBYWFgoRmFsc2UsIElvcF9DbXBVTjMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBVTk9SRF9RCisgICAgICBjYXNlIDB4MTM6IFhYWChGYWxzZSwgSW9wX0NtcFVOMzJGeDQsIEZhbHNlKTsgYnJlYWs7IC8vIFVOT1JEX1MKKyAgICAgIC8vCiAgICAgICAvLyAweEM6IHRoaXMgaXNuJ3QgcmVhbGx5IHJpZ2h0IGJlY2F1c2UgaXQgcmV0dXJucyBhbGwtMXMgd2hlbgogICAgICAgLy8gZWl0aGVyIG9wZXJhbmQgaXMgYSBOYU4sIGFuZCBpdCBzaG91bGQgcmV0dXJuIGFsbC0wcy4KKyAgICAgIGNhc2UgMHg0OiAgWFhYKEZhbHNlLCBJb3BfQ21wRVEzMkZ4NCwgVHJ1ZSk7ICBicmVhazsgLy8gTkVRX1VRCiAgICAgICBjYXNlIDB4QzogIFhYWChGYWxzZSwgSW9wX0NtcEVRMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE5FUV9PUQotICAgICAgY2FzZSAweEQ6ICBYWFgoVHJ1ZSwgIElvcF9DbXBMRTMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBHRV9PUwotICAgICAgY2FzZSAweEU6ICBYWFgoVHJ1ZSwgIElvcF9DbXBMVDMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBHVF9PUwotICAgICAgLy8gMHhGICBUUlVFX1VRCi0gICAgICAvLyAweDEwICBFUV9PUwotICAgICAgY2FzZSAweDExOiBYWFgoRmFsc2UsIElvcF9DbXBMVDMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBMVF9PUQotICAgICAgY2FzZSAweDEyOiBYWFgoRmFsc2UsIElvcF9DbXBMRTMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBMRV9PUQotICAgICAgLy8gMHgxMyAgVU5PUkRfUwotICAgICAgLy8gMHgxNCAgTkVRX1VTCi0gICAgICAvLyAweDE1ICBOTFRfVVEKKyAgICAgIGNhc2UgMHgxNDogWFhYKEZhbHNlLCBJb3BfQ21wRVEzMkZ4NCwgVHJ1ZSk7ICBicmVhazsgLy8gTkVRX1VTCisgICAgICBjYXNlIDB4MUM6IFhYWChGYWxzZSwgSW9wX0NtcEVRMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE5FUV9PUworICAgICAgLy8KKyAgICAgIGNhc2UgMHg1OiAgWFhYKEZhbHNlLCBJb3BfQ21wTFQzMkZ4NCwgVHJ1ZSk7ICBicmVhazsgLy8gTkxUX1VTCisgICAgICBjYXNlIDB4MTU6IFhYWChGYWxzZSwgSW9wX0NtcExUMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE5MVF9VUQorICAgICAgLy8KKyAgICAgIGNhc2UgMHg2OiAgWFhYKEZhbHNlLCBJb3BfQ21wTEUzMkZ4NCwgVHJ1ZSk7ICBicmVhazsgLy8gTkxFX1VTCiAgICAgICBjYXNlIDB4MTY6IFhYWChGYWxzZSwgSW9wX0NtcExFMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE5MRV9VUQotICAgICAgLy8gMHgxNyAgT1JEX1MKLSAgICAgIC8vIDB4MTggIEVRX1VTCi0gICAgICAvLyAweDE5ICBOR0VfVVEKLSAgICAgIC8vIDB4MUEgIE5HVF9VUQotICAgICAgLy8gMHgxQiAgRkFMU0VfT1MKLSAgICAgIC8vIDB4MUMgIE5FUV9PUwotICAgICAgLy8gMHgxRCAgR0VfT1EKKyAgICAgIC8vCisgICAgICBjYXNlIDB4NzogIFhYWChGYWxzZSwgSW9wX0NtcFVOMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE9SRF9RCisgICAgICBjYXNlIDB4MTc6IFhYWChGYWxzZSwgSW9wX0NtcFVOMzJGeDQsIFRydWUpOyAgYnJlYWs7IC8vIE9SRF9TCisgICAgICAvLworICAgICAgY2FzZSAweDk6ICBYWFgoVHJ1ZSwgIElvcF9DbXBMRTMyRng0LCBUcnVlKTsgIGJyZWFrOyAvLyBOR0VfVVMKKyAgICAgIGNhc2UgMHgxOTogWFhYKFRydWUsICBJb3BfQ21wTEUzMkZ4NCwgVHJ1ZSk7ICBicmVhazsgLy8gTkdFX1VRCisgICAgICAvLworICAgICAgY2FzZSAweEE6ICBYWFgoVHJ1ZSwgIElvcF9DbXBMVDMyRng0LCBUcnVlKTsgIGJyZWFrOyAvLyBOR1RfVVMKKyAgICAgIGNhc2UgMHgxQTogWFhYKFRydWUsICBJb3BfQ21wTFQzMkZ4NCwgVHJ1ZSk7ICBicmVhazsgLy8gTkdUX1VRCisgICAgICAvLworICAgICAgY2FzZSAweEQ6ICBYWFgoVHJ1ZSwgIElvcF9DbXBMRTMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBHRV9PUworICAgICAgY2FzZSAweDFEOiBYWFgoVHJ1ZSwgIElvcF9DbXBMRTMyRng0LCBGYWxzZSk7IGJyZWFrOyAvLyBHRV9PUQorICAgICAgLy8KKyAgICAgIGNhc2UgMHhFOiAgWFhYKFRydWUsICBJb3BfQ21wTFQzMkZ4NCwgRmFsc2UpOyBicmVhazsgLy8gR1RfT1MKICAgICAgIGNhc2UgMHgxRTogWFhYKFRydWUsICBJb3BfQ21wTFQzMkZ4NCwgRmFsc2UpOyBicmVhazsgLy8gR1RfT1EKKyAgICAgIC8vIFVuaGFuZGxlZDoKKyAgICAgIC8vIDB4QiAgRkFMU0VfT1EKKyAgICAgIC8vIDB4RiAgVFJVRV9VUQorICAgICAgLy8gMHgxQiAgRkFMU0VfT1MKICAgICAgIC8vIDB4MUYgIFRSVUVfVVMKICAgICAgIC8qIERvbid0IGZvcmdldCB0byBhZGQgdGVzdCBjYXNlcyB0byBWQ01QU1NfMTI4XzxpbW04PiBpbgogICAgICAgICAgYXZ4LTEuYyBpZiBuZXcgY2FzZXMgdHVybiB1cC4gKi8KQEAgLTkxNTEsOCArOTI0MCw4IEBACiAgICAgICBhc3NpZ24oIHBsYWluLCBiaW5vcChvcCwgZ2V0WE1NUmVnKGdyZWdPZlJleFJNKHBmeCxybSkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRYTU1SZWcoZXJlZ09mUmV4Uk0ocGZ4LHJtKSkpICk7CiAgICAgICBkZWx0YSArPSAyOwotICAgICAgRElQKCIlcyAkJWQsJXMsJXNcbiIsIG9wbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW50KWltbTgsCisgICAgICBESVAoIiVzICQldSwlcywlc1xuIiwgb3BuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbTgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVhNTVJlZyhlcmVnT2ZSZXhSTShwZngscm0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lWE1NUmVnKGdyZWdPZlJleFJNKHBmeCxybSkpICk7CiAgICB9IGVsc2UgewpAQCAtOTE3NSw4ICs5MjY0LDggQEAKICAgICAgICAgICAgICAgKSAKICAgICAgICk7CiAgICAgICBkZWx0YSArPSBhbGVuKzE7Ci0gICAgICBESVAoIiVzICQlZCwlcywlc1xuIiwgb3BuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnQpaW1tOCwKKyAgICAgIERJUCgiJXMgJCV1LCVzLCVzXG4iLCBvcG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNfYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVYTU1SZWcoZ3JlZ09mUmV4Uk0ocGZ4LHJtKSkgKTsKICAgIH0KQEAgLTk4MTgsNiArOTkwNywxMCBAQAogICAgZ2VuX1NFR1ZfaWZfbm90X1hYX2FsaWduZWQoZWZmZWN0aXZlX2FkZHIsIDMyLTEpOwogfQogCitzdGF0aWMgdm9pZCBnZW5fU0VHVl9pZl9ub3RfNjRfYWxpZ25lZCAoIElSVGVtcCBlZmZlY3RpdmVfYWRkciApIHsKKyAgIGdlbl9TRUdWX2lmX25vdF9YWF9hbGlnbmVkKGVmZmVjdGl2ZV9hZGRyLCA2NC0xKTsKK30KKwogLyogSGVscGVyIGZvciBkZWNpZGluZyB3aGV0aGVyIGEgZ2l2ZW4gaW5zbiAoc3RhcnRpbmcgYXQgdGhlIG9wY29kZQogICAgYnl0ZSkgbWF5IHZhbGlkbHkgYmUgdXNlZCB3aXRoIGEgTE9DSyBwcmVmaXguICBUaGUgZm9sbG93aW5nIGluc25zCiAgICBtYXkgYmUgdXNlZCB3aXRoIExPQ0sgd2hlbiB0aGVpciBkZXN0aW5hdGlvbiBvcGVyYW5kIGlzIGluIG1lbW9yeS4KQEAgLTExMzQ3LDggKzExNDQwLDggQEAKICAgICAgIGFzc2lnbihzViwgZ2V0WE1NUmVnKHJFKSk7CiAgICAgICBpbW04ID0gZ2V0VUNoYXIoZGVsdGErMSkgJiA3OwogICAgICAgZGVsdGEgKz0gMSsxOwotICAgICAgRElQKCIlc3BleHRydyAkJWQsJXMsJXNcbiIsIGlzQXZ4ID8gInYiIDogIiIsCi0gICAgICAgICAgKEludClpbW04LCBuYW1lWE1NUmVnKHJFKSwgbmFtZUlSZWczMihyRykpOworICAgICAgRElQKCIlc3BleHRydyAkJXUsJXMsJXNcbiIsIGlzQXZ4ID8gInYiIDogIiIsCisgICAgICAgICAgaW1tOCwgbmFtZVhNTVJlZyhyRSksIG5hbWVJUmVnMzIockcpKTsKICAgIH0gZWxzZSB7CiAgICAgICAvKiBUaGUgbWVtb3J5IGNhc2UgaXMgZGlzYWxsb3dlZCwgYXBwYXJlbnRseS4gKi8KICAgICAgIHJldHVybiBkZWx0YUlOOyAvKiBGQUlMICovCkBAIC0xMTQ5Myw2ICsxMTU4Niw0OTUgQEAKIH0KIAogCitzdGF0aWMgdm9pZCBnZW5fWFNBVkVfU0VRVUVOQ0UgKCBJUlRlbXAgYWRkciwgSVJUZW1wIHJmYm0gKQoreworICAgLyogLS0tLS0tIHJmYm1bMF0gZ2F0ZXMgdGhlIHg4NyBzdGF0ZSAtLS0tLS0gKi8KKworICAgLyogVXNlcyBkaXJ0eSBoZWxwZXI6IAorICAgICAgICAgdm9pZCBhbWQ2NGdfZG9fWFNBVkVfQ09NUE9ORU5UXzAgKCBWZXhHdWVzdEFNRDY0U3RhdGUqLCBVTG9uZyApCisgICAqLworICAgSVJEaXJ0eSogZDAgPSB1bnNhZmVJUkRpcnR5XzBfTiAoCisgICAgICAgICAgICAgICAgICAgIDAvKnJlZ3Bhcm1zKi8sIAorICAgICAgICAgICAgICAgICAgICAiYW1kNjRnX2RpcnR5aGVscGVyX1hTQVZFX0NPTVBPTkVOVF8wIiwKKyAgICAgICAgICAgICAgICAgICAgJmFtZDY0Z19kaXJ0eWhlbHBlcl9YU0FWRV9DT01QT05FTlRfMCwKKyAgICAgICAgICAgICAgICAgICAgbWtJUkV4cHJWZWNfMiggSVJFeHByX0JCUFRSKCksIG1rZXhwcihhZGRyKSApCisgICAgICAgICAgICAgICAgICk7CisgICBkMC0+Z3VhcmQgPSBiaW5vcChJb3BfQ21wRVE2NCwgYmlub3AoSW9wX0FuZDY0LCBta2V4cHIocmZibSksIG1rVTY0KDEpKSwKKyAgICAgICAgICAgICAgICAgICAgIG1rVTY0KDEpKTsKKworICAgLyogRGVjbGFyZSB3ZSdyZSB3cml0aW5nIG1lbW9yeS4gIFJlYWxseSwgYnl0ZXMgMjQgdGhyb3VnaCAzMQorICAgICAgKE1YQ1NSIGFuZCBNWENTUl9NQVNLKSBhcmVuJ3Qgd3JpdHRlbiwgYnV0IHdlIGNhbid0IGV4cHJlc3MgbW9yZQorICAgICAgdGhhbiAxIG1lbW9yeSBhcmVhIGhlcmUsIHNvIGp1c3QgbWFyayB0aGUgd2hvbGUgdGhpbmcgYXMKKyAgICAgIHdyaXR0ZW4uICovCisgICBkMC0+bUZ4ICAgPSBJZnhfV3JpdGU7CisgICBkMC0+bUFkZHIgPSBta2V4cHIoYWRkcik7CisgICBkMC0+bVNpemUgPSAxNjA7CisKKyAgIC8qIGRlY2xhcmUgd2UncmUgcmVhZGluZyBndWVzdCBzdGF0ZSAqLworICAgZDAtPm5GeFN0YXRlID0gNTsKKyAgIHZleF9iemVybygmZDAtPmZ4U3RhdGUsIHNpemVvZihkMC0+ZnhTdGF0ZSkpOworCisgICBkMC0+ZnhTdGF0ZVswXS5meCAgICAgPSBJZnhfUmVhZDsKKyAgIGQwLT5meFN0YXRlWzBdLm9mZnNldCA9IE9GRkJfRlRPUDsKKyAgIGQwLT5meFN0YXRlWzBdLnNpemUgICA9IHNpemVvZihVSW50KTsKKworICAgZDAtPmZ4U3RhdGVbMV0uZnggICAgID0gSWZ4X1JlYWQ7CisgICBkMC0+ZnhTdGF0ZVsxXS5vZmZzZXQgPSBPRkZCX0ZQUkVHUzsKKyAgIGQwLT5meFN0YXRlWzFdLnNpemUgICA9IDggKiBzaXplb2YoVUxvbmcpOworCisgICBkMC0+ZnhTdGF0ZVsyXS5meCAgICAgPSBJZnhfUmVhZDsKKyAgIGQwLT5meFN0YXRlWzJdLm9mZnNldCA9IE9GRkJfRlBUQUdTOworICAgZDAtPmZ4U3RhdGVbMl0uc2l6ZSAgID0gOCAqIHNpemVvZihVQ2hhcik7CisKKyAgIGQwLT5meFN0YXRlWzNdLmZ4ICAgICA9IElmeF9SZWFkOworICAgZDAtPmZ4U3RhdGVbM10ub2Zmc2V0ID0gT0ZGQl9GUFJPVU5EOworICAgZDAtPmZ4U3RhdGVbM10uc2l6ZSAgID0gc2l6ZW9mKFVMb25nKTsKKworICAgZDAtPmZ4U3RhdGVbNF0uZnggICAgID0gSWZ4X1JlYWQ7CisgICBkMC0+ZnhTdGF0ZVs0XS5vZmZzZXQgPSBPRkZCX0ZDMzIxMDsKKyAgIGQwLT5meFN0YXRlWzRdLnNpemUgICA9IHNpemVvZihVTG9uZyk7CisKKyAgIHN0bXQoIElSU3RtdF9EaXJ0eShkMCkgKTsKKworICAgLyogLS0tLS0tIHJmYm1bMV0gZ2F0ZXMgdGhlIFNTRSBzdGF0ZSAtLS0tLS0gKi8KKworICAgSVJUZW1wIHJmYm1fMSAgICA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICBJUlRlbXAgcmZibV8xb3IyID0gbmV3VGVtcChJdHlfSTY0KTsKKyAgIGFzc2lnbihyZmJtXzEsICAgIGJpbm9wKElvcF9BbmQ2NCwgbWtleHByKHJmYm0pLCBta1U2NCgyKSkpOworICAgYXNzaWduKHJmYm1fMW9yMiwgYmlub3AoSW9wX0FuZDY0LCBta2V4cHIocmZibSksIG1rVTY0KDYpKSk7CisKKyAgIElSRXhwciogZ3VhcmRfMSAgICA9IGJpbm9wKElvcF9DbXBFUTY0LCBta2V4cHIocmZibV8xKSwgICAgbWtVNjQoMikpOworICAgSVJFeHByKiBndWFyZF8xb3IyID0gYmlub3AoSW9wX0NtcE5FNjQsIG1rZXhwcihyZmJtXzFvcjIpLCBta1U2NCgwKSk7CisKKyAgIC8qIFVzZXMgZGlydHkgaGVscGVyOiAKKyAgICAgICAgIHZvaWQgYW1kNjRnX2RvX1hTQVZFX0NPTVBPTkVOVF8xX0VYQ0xVRElOR19YTU1SRUdTCisgICAgICAgICAgICAgICAgICggVmV4R3Vlc3RBTUQ2NFN0YXRlKiwgVUxvbmcgKQorICAgICAgVGhpcyBjcmVhdGVzIG9ubHkgTVhDU1IgYW5kIE1YQ1NSX01BU0suICBXZSBuZWVkIHRvIGRvIHRoaXMgaWYKKyAgICAgIGVpdGhlciBjb21wb25lbnRzIDEgKFNTRSkgb3IgMiAoQVZYKSBhcmUgcmVxdWVzdGVkLiAgSGVuY2UgdGhlCisgICAgICBndWFyZCBjb25kaXRpb24gaXMgYSBiaXQgbW9yZSBjb21wbGV4LgorICAgKi8KKyAgIElSRGlydHkqIGQxID0gdW5zYWZlSVJEaXJ0eV8wX04gKAorICAgICAgICAgICAgICAgICAgICAwLypyZWdwYXJtcyovLCAKKyAgICAgICAgICAgICAgICAgICAgImFtZDY0Z19kaXJ0eWhlbHBlcl9YU0FWRV9DT01QT05FTlRfMV9FWENMVURJTkdfWE1NUkVHUyIsCisgICAgICAgICAgICAgICAgICAgICZhbWQ2NGdfZGlydHloZWxwZXJfWFNBVkVfQ09NUE9ORU5UXzFfRVhDTFVESU5HX1hNTVJFR1MsCisgICAgICAgICAgICAgICAgICAgIG1rSVJFeHByVmVjXzIoIElSRXhwcl9CQlBUUigpLCBta2V4cHIoYWRkcikgKQorICAgICAgICAgICAgICAgICApOworICAgZDEtPmd1YXJkID0gZ3VhcmRfMW9yMjsKKworICAgLyogRGVjbGFyZSB3ZSdyZSB3cml0aW5nIG1lbW9yeTogTVhDU1IgYW5kIE1YQ1NSX01BU0suICBOb3RlIHRoYXQKKyAgICAgIHRoZSBjb2RlIGZvciByYmZtWzBdIGp1c3QgYWJvdmUgY2xhaW1zIGEgd3JpdGUgb2YgMCAuLiAxNTksIHNvCisgICAgICB0aGlzIGR1cGxpY2F0ZXMgaXQuICBCdXQgYXQgbGVhc3QgY29ycmVjdGx5IGNvbm5lY3RzIDI0IC4uIDMxIHRvCisgICAgICB0aGUgTVhDU1IgZ3Vlc3Qgc3RhdGUgcmVwcmVzZW50YXRpb24gKFNTRVJPVU5EIGZpZWxkKS4gKi8KKyAgIGQxLT5tRnggICA9IElmeF9Xcml0ZTsKKyAgIGQxLT5tQWRkciA9IGJpbm9wKElvcF9BZGQ2NCwgbWtleHByKGFkZHIpLCBta1U2NCgyNCkpOworICAgZDEtPm1TaXplID0gODsKKworICAgLyogZGVjbGFyZSB3ZSdyZSByZWFkaW5nIGd1ZXN0IHN0YXRlICovCisgICBkMS0+bkZ4U3RhdGUgPSAxOworICAgdmV4X2J6ZXJvKCZkMS0+ZnhTdGF0ZSwgc2l6ZW9mKGQxLT5meFN0YXRlKSk7CisKKyAgIGQxLT5meFN0YXRlWzBdLmZ4ICAgICA9IElmeF9SZWFkOworICAgZDEtPmZ4U3RhdGVbMF0ub2Zmc2V0ID0gT0ZGQl9TU0VST1VORDsKKyAgIGQxLT5meFN0YXRlWzBdLnNpemUgICA9IHNpemVvZihVTG9uZyk7CisKKyAgIC8qIENhbGwgdGhlIGhlbHBlci4gIFRoaXMgY3JlYXRlcyBNWENTUiBhbmQgTVhDU1JfTUFTSyBidXQgbm90aGluZworICAgICAgZWxzZS4gIFdlIGRvIHRoZSBhY3R1YWwgcmVnaXN0ZXIgYXJyYXksIFhNTVswLi4xNV0sIHNlcGFyYXRlbHksCisgICAgICBpbiBvcmRlciB0aGF0IGFueSB1bmRlZmluZWRuZXNzIGluIHRoZSBYTU0gcmVnaXN0ZXJzIGlzIHRyYWNrZWQKKyAgICAgIHNlcGFyYXRlbHkgYnkgTWVtY2hlY2sgYW5kIGRvZXMgbm90ICJpbmZlY3QiIHRoZSBpbi1tZW1vcnkKKyAgICAgIHNoYWRvdyBmb3IgdGhlIG90aGVyIHBhcnRzIG9mIHRoZSBpbWFnZS4gKi8KKyAgIHN0bXQoIElSU3RtdF9EaXJ0eShkMSkgKTsKKworICAgLyogQW5kIG5vdyB0aGUgWE1NcyB0aGVtc2VsdmVzLiAqLworICAgVUludCByZWc7CisgICBmb3IgKHJlZyA9IDA7IHJlZyA8IDE2OyByZWcrKykgeworICAgICAgc3RtdCggSVJTdG10X1N0b3JlRygKKyAgICAgICAgICAgICAgIEllbmRfTEUsCisgICAgICAgICAgICAgICBiaW5vcChJb3BfQWRkNjQsIG1rZXhwcihhZGRyKSwgbWtVNjQoMTYwICsgcmVnICogMTYpKSwKKyAgICAgICAgICAgICAgIGdldFhNTVJlZyhyZWcpLAorICAgICAgICAgICAgICAgZ3VhcmRfMQorICAgICAgKSk7CisgICB9CisKKyAgIC8qIC0tLS0tLSByZmJtWzJdIGdhdGVzIHRoZSBBVlggc3RhdGUgLS0tLS0tICovCisgICAvKiBDb21wb25lbnQgMiBpcyBqdXN0IGEgYnVuY2ggb2YgcmVnaXN0ZXIgc2F2ZXMsIHNvIHdlJ2xsIGRvIGl0CisgICAgICBpbmxpbmUsIGp1c3QgdG8gYmUgc2ltcGxlIGFuZCB0byBiZSBNZW1jaGVjayBmcmllbmRseS4gKi8KKworICAgSVJUZW1wIHJmYm1fMiA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICBhc3NpZ24ocmZibV8yLCBiaW5vcChJb3BfQW5kNjQsIG1rZXhwcihyZmJtKSwgbWtVNjQoNCkpKTsKKworICAgSVJFeHByKiBndWFyZF8yID0gYmlub3AoSW9wX0NtcEVRNjQsIG1rZXhwcihyZmJtXzIpLCBta1U2NCg0KSk7CisKKyAgIGZvciAocmVnID0gMDsgcmVnIDwgMTY7IHJlZysrKSB7CisgICAgICBzdG10KCBJUlN0bXRfU3RvcmVHKAorICAgICAgICAgICAgICAgSWVuZF9MRSwKKyAgICAgICAgICAgICAgIGJpbm9wKElvcF9BZGQ2NCwgbWtleHByKGFkZHIpLCBta1U2NCg1NzYgKyByZWcgKiAxNikpLAorICAgICAgICAgICAgICAgZ2V0WU1NUmVnTGFuZTEyOChyZWcsMSksCisgICAgICAgICAgICAgICBndWFyZF8yCisgICAgICApKTsKKyAgIH0KK30KKworCitzdGF0aWMgTG9uZyBkaXNfWFNBVkUgKCBjb25zdCBWZXhBYmlJbmZvKiB2YmksCisgICAgICAgICAgICAgICAgICAgICAgICBQcmVmaXggcGZ4LCBMb25nIGRlbHRhLCBJbnQgc3ogKQoreworICAgLyogTm90ZSB0aGF0IHRoZSBwcmVzZW5jZSBvciBhYnNlbmNlIG9mIFJFWC5XIChpbmRpY2F0ZWQgaGVyZSBieQorICAgICAgfHN6fCkgc2xpZ2h0bHkgYWZmZWN0cyB0aGUgd3JpdHRlbiBmb3JtYXQ6IHdoZXRoZXIgdGhlIHNhdmVkIEZQVQorICAgICAgSVAgYW5kIERQIHBvaW50ZXJzIGFyZSA2NCBvciAzMiBiaXRzLiAgQnV0IHRoZSBoZWxwZXIgZnVuY3Rpb24KKyAgICAgIHdlIGNhbGwgc2ltcGx5IHdyaXRlcyB6ZXJvIGJpdHMgaW4gdGhlIHJlbGV2YW50IGZpZWxkcywgd2hpY2gKKyAgICAgIGFyZSA2NCBiaXRzIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBSRVguVyBpcywgYW5kIHNvIGl0J3MgZ29vZCBlbm91Z2gKKyAgICAgIChpb3csIGVxdWFsbHkgYnJva2VuKSBpbiBib3RoIGNhc2VzLiAqLworICAgSVJUZW1wIGFkZHIgID0gSVJUZW1wX0lOVkFMSUQ7CisgICBJbnQgICAgYWxlbiAgPSAwOworICAgSENoYXIgIGRpc19idWZbNTBdOworICAgVUNoYXIgIG1vZHJtID0gZ2V0VUNoYXIoZGVsdGEpOworICAgdmFzc2VydCghZXBhcnRJc1JlZyhtb2RybSkpOyAvKiBlbnN1cmVkIGJ5IGNhbGxlciAqLworICAgdmFzc2VydChzeiA9PSA0IHx8IHN6ID09IDgpOyAvKiBkaXR0byAqLworCisgICBhZGRyID0gZGlzQU1vZGUgKCAmYWxlbiwgdmJpLCBwZngsIGRlbHRhLCBkaXNfYnVmLCAwICk7CisgICBkZWx0YSArPSBhbGVuOworICAgZ2VuX1NFR1ZfaWZfbm90XzY0X2FsaWduZWQoYWRkcik7CisKKyAgIERJUCgiJXN4c2F2ZSAlc1xuIiwgc3o9PTggPyAicmV4NjQvIiA6ICIiLCBkaXNfYnVmKTsKKworICAgLyogVkVYJ3MgY2FsbGVyIGlzIGFzc3VtZWQgdG8gaGF2ZSBjaGVja2VkIHRoaXMuICovCisgICBjb25zdCBVTG9uZyBhU1NVTUVEX1hDUjBfVkFMVUUgPSA3OworCisgICBJUlRlbXAgcmZibSA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICBhc3NpZ24ocmZibSwKKyAgICAgICAgICBiaW5vcChJb3BfQW5kNjQsCisgICAgICAgICAgICAgICAgYmlub3AoSW9wX09yNjQsCisgICAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wX1NobDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoSW9wXzMyVXRvNjQsIGdldElSZWdSRFgoNCkpLCBta1U4KDMyKSksCisgICAgICAgICAgICAgICAgICAgICAgdW5vcChJb3BfMzJVdG82NCwgZ2V0SVJlZ1JBWCg0KSkpLAorICAgICAgICAgICAgICAgIG1rVTY0KGFTU1VNRURfWENSMF9WQUxVRSkpKTsKKworICAgZ2VuX1hTQVZFX1NFUVVFTkNFKGFkZHIsIHJmYm0pOworCisgICAvKiBGaW5hbGx5LCB3ZSBuZWVkIHRvIHVwZGF0ZSBYU1RBVEVfQlYgaW4gdGhlIFhTQVZFIGhlYWRlciBhcmVhLCBieQorICAgICAgT1ItaW5nIHRoZSBSRkJNIHZhbHVlIGludG8gaXQuICovCisgICBJUlRlbXAgYWRkcl9wbHVzXzUxMiA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICBhc3NpZ24oYWRkcl9wbHVzXzUxMiwgYmlub3AoSW9wX0FkZDY0LCBta2V4cHIoYWRkciksIG1rVTY0KDUxMikpKTsKKyAgIHN0b3JlTEUoIG1rZXhwcihhZGRyX3BsdXNfNTEyKSwKKyAgICAgICAgICAgIGJpbm9wKElvcF9PcjgsCisgICAgICAgICAgICAgICAgICB1bm9wKElvcF82NHRvOCwgbWtleHByKHJmYm0pKSwKKyAgICAgICAgICAgICAgICAgIGxvYWRMRShJdHlfSTgsIG1rZXhwcihhZGRyX3BsdXNfNTEyKSkpICk7CisKKyAgIHJldHVybiBkZWx0YTsKK30KKworCitzdGF0aWMgTG9uZyBkaXNfRlhTQVZFICggY29uc3QgVmV4QWJpSW5mbyogdmJpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFByZWZpeCBwZngsIExvbmcgZGVsdGEsIEludCBzeiApCit7CisgICAvKiBTZWUgY29tbWVudCBpbiBkaXNfWFNBVkUgYWJvdXQgdGhlIHNpZ25pZmljYW5jZSBvZiBSRVguVy4gKi8KKyAgIElSVGVtcCBhZGRyICA9IElSVGVtcF9JTlZBTElEOworICAgSW50ICAgIGFsZW4gID0gMDsKKyAgIEhDaGFyICBkaXNfYnVmWzUwXTsKKyAgIFVDaGFyICBtb2RybSA9IGdldFVDaGFyKGRlbHRhKTsKKyAgIHZhc3NlcnQoIWVwYXJ0SXNSZWcobW9kcm0pKTsgLyogZW5zdXJlZCBieSBjYWxsZXIgKi8KKyAgIHZhc3NlcnQoc3ogPT0gNCB8fCBzeiA9PSA4KTsgLyogZGl0dG8gKi8KKworICAgYWRkciA9IGRpc0FNb2RlICggJmFsZW4sIHZiaSwgcGZ4LCBkZWx0YSwgZGlzX2J1ZiwgMCApOworICAgZGVsdGEgKz0gYWxlbjsKKyAgIGdlbl9TRUdWX2lmX25vdF8xNl9hbGlnbmVkKGFkZHIpOworCisgICBESVAoIiVzZnhzYXZlICVzXG4iLCBzej09OCA/ICJyZXg2NC8iIDogIiIsIGRpc19idWYpOworCisgICAvKiBGWFNBVkUgaXMganVzdCBYU0FWRSB3aXRoIGNvbXBvbmVudHMgMCBhbmQgMSBzZWxlY3RlZC4gIFNldCByZmJtCisgICAgICB0byAwYjAxMSwgZ2VuZXJhdGUgdGhlIFhTQVZFIHNlcXVlbmNlIGFjY29yZGluZ2x5LCBhbmQgbGV0IGlyb3B0CisgICAgICBmb2xkIG91dCB0aGUgdW51c2VkIChBVlgpIHBhcnRzIGFjY29yZGluZ2x5LiAqLworICAgSVJUZW1wIHJmYm0gPSBuZXdUZW1wKEl0eV9JNjQpOworICAgYXNzaWduKHJmYm0sIG1rVTY0KDMpKTsKKyAgIGdlbl9YU0FWRV9TRVFVRU5DRShhZGRyLCByZmJtKTsKKworICAgcmV0dXJuIGRlbHRhOworfQorCisKK3N0YXRpYyB2b2lkIGdlbl9YUlNUT1JfU0VRVUVOQ0UgKCBJUlRlbXAgYWRkciwgSVJUZW1wIHhzdGF0ZV9idiwgSVJUZW1wIHJmYm0gKQoreworICAgLyogLS0tLS0tIHJmYm1bMF0gZ2F0ZXMgdGhlIHg4NyBzdGF0ZSAtLS0tLS0gKi8KKworICAgLyogSWYgcmZibVswXSA9PSAxLCB3ZSBoYXZlIHRvIHdyaXRlIHRoZSB4ODcgc3RhdGUuICBJZgorICAgICAgeHN0YXRlX2J2WzBdID09IDEsIHdlIHdpbGwgcmVhZCBpdCBmcm9tIHRoZSBtZW1vcnkgaW1hZ2UsIGVsc2UKKyAgICAgIHdlJ2xsIHNldCBpdCB0byBpbml0aWFsIHZhbHVlcy4gIERvaW5nIHRoaXMgd2l0aCBhIGhlbHBlcgorICAgICAgZnVuY3Rpb24gYW5kIGdldHRpbmcgdGhlIGRlZmluZWRuZXNzIGZsb3cgYW5ub3RhdGlvbnMgY29ycmVjdCBpcworICAgICAgdG9vIGRpZmZpY3VsdCwgc28gZ2VuZXJhdGUgc3R1cGlkIGJ1dCBzaW1wbGUgY29kZTogZmlyc3Qgc2V0IHRoZQorICAgICAgcmVnaXN0ZXJzIHRvIGluaXRpYWwgdmFsdWVzLCByZWdhcmRsZXNzIG9mIHhzdGF0ZV9idlswXS4gIFRoZW4sCisgICAgICBjb25kaXRpb25hbGx5IHJlc3RvcmUgZnJvbSB0aGUgbWVtb3J5IGltYWdlLiAqLworCisgICBJUlRlbXAgcmZibV8wICAgICAgID0gbmV3VGVtcChJdHlfSTY0KTsKKyAgIElSVGVtcCB4c3RhdGVfYnZfMCAgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgSVJUZW1wIHJlc3RvcmVfMCAgICA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICBhc3NpZ24ocmZibV8wLCAgICAgIGJpbm9wKElvcF9BbmQ2NCwgbWtleHByKHJmYm0pLCBta1U2NCgxKSkpOworICAgYXNzaWduKHhzdGF0ZV9idl8wLCBiaW5vcChJb3BfQW5kNjQsIG1rZXhwcih4c3RhdGVfYnYpLCBta1U2NCgxKSkpOworICAgYXNzaWduKHJlc3RvcmVfMCwgICBiaW5vcChJb3BfQW5kNjQsIG1rZXhwcihyZmJtXzApLCBta2V4cHIoeHN0YXRlX2J2XzApKSk7CisKKyAgIGdlbl9GSU5JVF9TRVFVRU5DRSggYmlub3AoSW9wX0NtcE5FNjQsIG1rZXhwcihyZmJtXzApLCBta1U2NCgwKSkgKTsKKworICAgLyogVXNlcyBkaXJ0eSBoZWxwZXI6IAorICAgICAgICAgdm9pZCBhbWQ2NGdfZG9fWFJTVE9SX0NPTVBPTkVOVF8wICggVmV4R3Vlc3RBTUQ2NFN0YXRlKiwgVUxvbmcgKQorICAgKi8KKyAgIElSRGlydHkqIGQwID0gdW5zYWZlSVJEaXJ0eV8wX04gKAorICAgICAgICAgICAgICAgICAgICAwLypyZWdwYXJtcyovLCAKKyAgICAgICAgICAgICAgICAgICAgImFtZDY0Z19kaXJ0eWhlbHBlcl9YUlNUT1JfQ09NUE9ORU5UXzAiLAorICAgICAgICAgICAgICAgICAgICAmYW1kNjRnX2RpcnR5aGVscGVyX1hSU1RPUl9DT01QT05FTlRfMCwKKyAgICAgICAgICAgICAgICAgICAgbWtJUkV4cHJWZWNfMiggSVJFeHByX0JCUFRSKCksIG1rZXhwcihhZGRyKSApCisgICAgICAgICAgICAgICAgICk7CisgICBkMC0+Z3VhcmQgPSBiaW5vcChJb3BfQ21wTkU2NCwgbWtleHByKHJlc3RvcmVfMCksIG1rVTY0KDApKTsKKworICAgLyogRGVjbGFyZSB3ZSdyZSByZWFkaW5nIG1lbW9yeS4gIFJlYWxseSwgYnl0ZXMgMjQgdGhyb3VnaCAzMQorICAgICAgKE1YQ1NSIGFuZCBNWENTUl9NQVNLKSBhcmVuJ3QgcmVhZCwgYnV0IHdlIGNhbid0IGV4cHJlc3MgbW9yZQorICAgICAgdGhhbiAxIG1lbW9yeSBhcmVhIGhlcmUsIHNvIGp1c3QgbWFyayB0aGUgd2hvbGUgdGhpbmcgYXMKKyAgICAgIHJlYWQuICovCisgICBkMC0+bUZ4ICAgPSBJZnhfUmVhZDsKKyAgIGQwLT5tQWRkciA9IG1rZXhwcihhZGRyKTsKKyAgIGQwLT5tU2l6ZSA9IDE2MDsKKworICAgLyogZGVjbGFyZSB3ZSdyZSB3cml0aW5nIGd1ZXN0IHN0YXRlICovCisgICBkMC0+bkZ4U3RhdGUgPSA1OworICAgdmV4X2J6ZXJvKCZkMC0+ZnhTdGF0ZSwgc2l6ZW9mKGQwLT5meFN0YXRlKSk7CisKKyAgIGQwLT5meFN0YXRlWzBdLmZ4ICAgICA9IElmeF9Xcml0ZTsKKyAgIGQwLT5meFN0YXRlWzBdLm9mZnNldCA9IE9GRkJfRlRPUDsKKyAgIGQwLT5meFN0YXRlWzBdLnNpemUgICA9IHNpemVvZihVSW50KTsKKworICAgZDAtPmZ4U3RhdGVbMV0uZnggICAgID0gSWZ4X1dyaXRlOworICAgZDAtPmZ4U3RhdGVbMV0ub2Zmc2V0ID0gT0ZGQl9GUFJFR1M7CisgICBkMC0+ZnhTdGF0ZVsxXS5zaXplICAgPSA4ICogc2l6ZW9mKFVMb25nKTsKKworICAgZDAtPmZ4U3RhdGVbMl0uZnggICAgID0gSWZ4X1dyaXRlOworICAgZDAtPmZ4U3RhdGVbMl0ub2Zmc2V0ID0gT0ZGQl9GUFRBR1M7CisgICBkMC0+ZnhTdGF0ZVsyXS5zaXplICAgPSA4ICogc2l6ZW9mKFVDaGFyKTsKKworICAgZDAtPmZ4U3RhdGVbM10uZnggICAgID0gSWZ4X1dyaXRlOworICAgZDAtPmZ4U3RhdGVbM10ub2Zmc2V0ID0gT0ZGQl9GUFJPVU5EOworICAgZDAtPmZ4U3RhdGVbM10uc2l6ZSAgID0gc2l6ZW9mKFVMb25nKTsKKworICAgZDAtPmZ4U3RhdGVbNF0uZnggICAgID0gSWZ4X1dyaXRlOworICAgZDAtPmZ4U3RhdGVbNF0ub2Zmc2V0ID0gT0ZGQl9GQzMyMTA7CisgICBkMC0+ZnhTdGF0ZVs0XS5zaXplICAgPSBzaXplb2YoVUxvbmcpOworCisgICBzdG10KCBJUlN0bXRfRGlydHkoZDApICk7CisKKyAgIC8qIC0tLS0tLSByZmJtWzFdIGdhdGVzIHRoZSBTU0Ugc3RhdGUgLS0tLS0tICovCisKKyAgIC8qIFNhbWUgc2NoZW1lIGFzIGNvbXBvbmVudCAwOiBmaXJzdCB6ZXJvIGl0IG91dCwgYW5kIHRoZW4gcG9zc2libHkKKyAgICAgIHJlc3RvcmUgZnJvbSB0aGUgbWVtb3J5IGFyZWEuICovCisgICBJUlRlbXAgcmZibV8xICAgICAgID0gbmV3VGVtcChJdHlfSTY0KTsKKyAgIElSVGVtcCB4c3RhdGVfYnZfMSAgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgSVJUZW1wIHJlc3RvcmVfMSAgICA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICBhc3NpZ24ocmZibV8xLCAgICAgIGJpbm9wKElvcF9BbmQ2NCwgbWtleHByKHJmYm0pLCBta1U2NCgyKSkpOworICAgYXNzaWduKHhzdGF0ZV9idl8xLCBiaW5vcChJb3BfQW5kNjQsIG1rZXhwcih4c3RhdGVfYnYpLCBta1U2NCgyKSkpOworICAgYXNzaWduKHJlc3RvcmVfMSwgICBiaW5vcChJb3BfQW5kNjQsIG1rZXhwcihyZmJtXzEpLCBta2V4cHIoeHN0YXRlX2J2XzEpKSk7CisgICBJUkV4cHIqIHJmYm1fMWUgICAgID0gYmlub3AoSW9wX0NtcE5FNjQsIG1rZXhwcihyZmJtXzEpLCAgICBta1U2NCgwKSk7CisgICBJUkV4cHIqIHJlc3RvcmVfMWUgID0gYmlub3AoSW9wX0NtcE5FNjQsIG1rZXhwcihyZXN0b3JlXzEpLCBta1U2NCgwKSk7CisKKyAgIElSVGVtcCByZmJtXzFvcjIgICAgICAgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgSVJUZW1wIHhzdGF0ZV9idl8xb3IyICA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICBJUlRlbXAgcmVzdG9yZV8xb3IyICAgID0gbmV3VGVtcChJdHlfSTY0KTsKKyAgIGFzc2lnbihyZmJtXzFvcjIsICAgICAgYmlub3AoSW9wX0FuZDY0LCBta2V4cHIocmZibSksIG1rVTY0KDYpKSk7CisgICBhc3NpZ24oeHN0YXRlX2J2XzFvcjIsIGJpbm9wKElvcF9BbmQ2NCwgbWtleHByKHhzdGF0ZV9idiksIG1rVTY0KDYpKSk7CisgICBhc3NpZ24ocmVzdG9yZV8xb3IyLCAgIGJpbm9wKElvcF9BbmQ2NCwgbWtleHByKHJmYm1fMW9yMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHhzdGF0ZV9idl8xb3IyKSkpOworICAgSVJFeHByKiByZmJtXzFvcjJlICAgICA9IGJpbm9wKElvcF9DbXBORTY0LCBta2V4cHIocmZibV8xb3IyKSwgICAgbWtVNjQoMCkpOworICAgSVJFeHByKiByZXN0b3JlXzFvcjJlICA9IGJpbm9wKElvcF9DbXBORTY0LCBta2V4cHIocmVzdG9yZV8xb3IyKSwgbWtVNjQoMCkpOworCisgICAvKiBUaGUgYXJlYXMgaW4gcXVlc3Rpb24gYXJlOiBTU0VST1VORCwgYW5kIHRoZSBYTU0gcmVnaXN0ZXIgYXJyYXkuICovCisgICBwdXRHdWFyZGVkKE9GRkJfU1NFUk9VTkQsIHJmYm1fMW9yMmUsIG1rVTY0KElycm1fTkVBUkVTVCkpOworCisgICBVSW50IHJlZzsKKyAgIGZvciAocmVnID0gMDsgcmVnIDwgMTY7IHJlZysrKSB7CisgICAgICBwdXRHdWFyZGVkKHhtbUd1ZXN0UmVnT2Zmc2V0KHJlZyksIHJmYm1fMWUsIG1rVjEyOCgwKSk7CisgICB9CisKKyAgIC8qIEFuZCBub3cgcG9zc2libHkgcmVzdG9yZSBmcm9tIE1YQ1NSL01YQ1NSX01BU0sgKi8KKyAgIC8qIFVzZXMgZGlydHkgaGVscGVyOiAKKyAgICAgICAgIHZvaWQgYW1kNjRnX2RvX1hSU1RPUl9DT01QT05FTlRfMV9FWENMVURJTkdfWE1NUkVHUworICAgICAgICAgICAgICAgICAoIFZleEd1ZXN0QU1ENjRTdGF0ZSosIFVMb25nICkKKyAgICAgIFRoaXMgcmVzdG9yZXMgZnJvbSBvbmx5IE1YQ1NSIGFuZCBNWENTUl9NQVNLLiAgV2UgbmVlZCB0byBkbworICAgICAgdGhpcyBpZiBlaXRoZXIgY29tcG9uZW50cyAxIChTU0UpIG9yIDIgKEFWWCkgYXJlIHJlcXVlc3RlZC4KKyAgICAgIEhlbmNlIHRoZSBndWFyZCBjb25kaXRpb24gaXMgYSBiaXQgbW9yZSBjb21wbGV4LgorICAgKi8KKyAgIElSRGlydHkqIGQxID0gdW5zYWZlSVJEaXJ0eV8wX04gKAorICAgICAgICAgICAgICAgICAgICAwLypyZWdwYXJtcyovLCAKKyAgICAgICAgICAgICAgICAgICAgImFtZDY0Z19kaXJ0eWhlbHBlcl9YUlNUT1JfQ09NUE9ORU5UXzFfRVhDTFVESU5HX1hNTVJFR1MiLAorICAgICAgICAgICAgICAgICAgICAmYW1kNjRnX2RpcnR5aGVscGVyX1hSU1RPUl9DT01QT05FTlRfMV9FWENMVURJTkdfWE1NUkVHUywKKyAgICAgICAgICAgICAgICAgICAgbWtJUkV4cHJWZWNfMiggSVJFeHByX0JCUFRSKCksIG1rZXhwcihhZGRyKSApCisgICAgICAgICAgICAgICAgKSA7CisgICBkMS0+Z3VhcmQgPSByZXN0b3JlXzFvcjJlOworCisgICAvKiBEZWNsYXJlIHdlJ3JlIHJlYWRpbmcgbWVtb3J5OiBNWENTUiBhbmQgTVhDU1JfTUFTSy4gIE5vdGUgdGhhdAorICAgICAgdGhlIGNvZGUgZm9yIHJiZm1bMF0ganVzdCBhYm92ZSBjbGFpbXMgYSByZWFkIG9mIDAgLi4gMTU5LCBzbworICAgICAgdGhpcyBkdXBsaWNhdGVzIGl0LiAgQnV0IGF0IGxlYXN0IGNvcnJlY3RseSBjb25uZWN0cyAyNCAuLiAzMSB0bworICAgICAgdGhlIE1YQ1NSIGd1ZXN0IHN0YXRlIHJlcHJlc2VudGF0aW9uIChTU0VST1VORCBmaWVsZCkuICovCisgICBkMS0+bUZ4ICAgPSBJZnhfUmVhZDsKKyAgIGQxLT5tQWRkciA9IGJpbm9wKElvcF9BZGQ2NCwgbWtleHByKGFkZHIpLCBta1U2NCgyNCkpOworICAgZDEtPm1TaXplID0gODsKKworICAgLyogZGVjbGFyZSB3ZSdyZSB3cml0aW5nIGd1ZXN0IHN0YXRlICovCisgICBkMS0+bkZ4U3RhdGUgPSAxOworICAgdmV4X2J6ZXJvKCZkMS0+ZnhTdGF0ZSwgc2l6ZW9mKGQxLT5meFN0YXRlKSk7CisKKyAgIGQxLT5meFN0YXRlWzBdLmZ4ICAgICA9IElmeF9Xcml0ZTsKKyAgIGQxLT5meFN0YXRlWzBdLm9mZnNldCA9IE9GRkJfU1NFUk9VTkQ7CisgICBkMS0+ZnhTdGF0ZVswXS5zaXplICAgPSBzaXplb2YoVUxvbmcpOworCisgICAvKiBDYWxsIHRoZSBoZWxwZXIuICBUaGlzIGNyZWF0ZXMgU1NFUk9VTkQgYnV0IG5vdGhpbmcKKyAgICAgIGVsc2UuICBXZSBkbyB0aGUgYWN0dWFsIHJlZ2lzdGVyIGFycmF5LCBYTU1bMC4uMTVdLCBzZXBhcmF0ZWx5LAorICAgICAgaW4gb3JkZXIgdGhhdCBhbnkgdW5kZWZpbmVkbmVzcyBpbiB0aGUgWE1NIHJlZ2lzdGVycyBpcyB0cmFja2VkCisgICAgICBzZXBhcmF0ZWx5IGJ5IE1lbWNoZWNrIGFuZCBpcyBub3QgImluZmVjdGVkIiBieSB0aGUgaW4tbWVtb3J5CisgICAgICBzaGFkb3cgZm9yIHRoZSBvdGhlciBwYXJ0cyBvZiB0aGUgaW1hZ2UuICovCisgICBzdG10KCBJUlN0bXRfRGlydHkoZDEpICk7CisKKyAgIC8qIEFuZCBub3cgdGhlIFhNTXMgdGhlbXNlbHZlcy4gIEZvciBlYWNoIHJlZ2lzdGVyLCB3ZSBQVVQgZWl0aGVyCisgICAgICBpdHMgb2xkIHZhbHVlLCBvciB0aGUgdmFsdWUgbG9hZGVkIGZyb20gbWVtb3J5LiAgT25lIGNvbnZlbmllbnQKKyAgICAgIHdheSB0byBkbyB0aGF0IGlzIHdpdGggYSBjb25kaXRpb25hbCBsb2FkIHRoYXQgaGFzIGl0cyB0aGUKKyAgICAgIGRlZmF1bHQgdmFsdWUsIHRoZSBvbGQgdmFsdWUgb2YgdGhlIHJlZ2lzdGVyLiAqLworICAgZm9yIChyZWcgPSAwOyByZWcgPCAxNjsgcmVnKyspIHsKKyAgICAgIElSRXhwciogZWEgID0gYmlub3AoSW9wX0FkZDY0LCBta2V4cHIoYWRkciksIG1rVTY0KDE2MCArIHJlZyAqIDE2KSk7CisgICAgICBJUkV4cHIqIGFsdCA9IGdldFhNTVJlZyhyZWcpOworICAgICAgSVJUZW1wICBsb2FkZWRWYWx1ZSA9IG5ld1RlbXAoSXR5X1YxMjgpOworICAgICAgc3RtdCggSVJTdG10X0xvYWRHKEllbmRfTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgSUxHb3BfSWRlbnRWMTI4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZSwgZWEsIGFsdCwgcmVzdG9yZV8xZSkgKTsKKyAgICAgIHB1dFhNTVJlZyhyZWcsIG1rZXhwcihsb2FkZWRWYWx1ZSkpOworICAgfQorCisgICAvKiAtLS0tLS0gcmZibVsyXSBnYXRlcyB0aGUgQVZYIHN0YXRlIC0tLS0tLSAqLworICAgLyogQ29tcG9uZW50IDIgaXMganVzdCBhIGJ1bmNoIG9mIHJlZ2lzdGVyIGxvYWRzLCBzbyB3ZSdsbCBkbyBpdAorICAgICAgaW5saW5lLCBqdXN0IHRvIGJlIHNpbXBsZSBhbmQgdG8gYmUgTWVtY2hlY2sgZnJpZW5kbHkuICovCisKKyAgIC8qIFNhbWUgc2NoZW1lIGFzIGNvbXBvbmVudCAwOiBmaXJzdCB6ZXJvIGl0IG91dCwgYW5kIHRoZW4gcG9zc2libHkKKyAgICAgIHJlc3RvcmUgZnJvbSB0aGUgbWVtb3J5IGFyZWEuICovCisgICBJUlRlbXAgcmZibV8yICAgICAgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgSVJUZW1wIHhzdGF0ZV9idl8yID0gbmV3VGVtcChJdHlfSTY0KTsKKyAgIElSVGVtcCByZXN0b3JlXzIgICA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICBhc3NpZ24ocmZibV8yLCAgICAgIGJpbm9wKElvcF9BbmQ2NCwgbWtleHByKHJmYm0pLCBta1U2NCg0KSkpOworICAgYXNzaWduKHhzdGF0ZV9idl8yLCBiaW5vcChJb3BfQW5kNjQsIG1rZXhwcih4c3RhdGVfYnYpLCBta1U2NCg0KSkpOworICAgYXNzaWduKHJlc3RvcmVfMiwgICBiaW5vcChJb3BfQW5kNjQsIG1rZXhwcihyZmJtXzIpLCBta2V4cHIoeHN0YXRlX2J2XzIpKSk7CisKKyAgIElSRXhwciogcmZibV8yZSAgICA9IGJpbm9wKElvcF9DbXBORTY0LCBta2V4cHIocmZibV8yKSwgICAgbWtVNjQoMCkpOworICAgSVJFeHByKiByZXN0b3JlXzJlID0gYmlub3AoSW9wX0NtcE5FNjQsIG1rZXhwcihyZXN0b3JlXzIpLCBta1U2NCgwKSk7CisKKyAgIGZvciAocmVnID0gMDsgcmVnIDwgMTY7IHJlZysrKSB7CisgICAgICBwdXRHdWFyZGVkKHltbUd1ZXN0UmVnTGFuZTEyOG9mZnNldChyZWcsIDEpLCByZmJtXzJlLCBta1YxMjgoMCkpOworICAgfQorCisgICBmb3IgKHJlZyA9IDA7IHJlZyA8IDE2OyByZWcrKykgeworICAgICAgSVJFeHByKiBlYSAgPSBiaW5vcChJb3BfQWRkNjQsIG1rZXhwcihhZGRyKSwgbWtVNjQoNTc2ICsgcmVnICogMTYpKTsKKyAgICAgIElSRXhwciogYWx0ID0gZ2V0WU1NUmVnTGFuZTEyOChyZWcsIDEpOworICAgICAgSVJUZW1wICBsb2FkZWRWYWx1ZSA9IG5ld1RlbXAoSXR5X1YxMjgpOworICAgICAgc3RtdCggSVJTdG10X0xvYWRHKEllbmRfTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgSUxHb3BfSWRlbnRWMTI4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZSwgZWEsIGFsdCwgcmVzdG9yZV8yZSkgKTsKKyAgICAgIHB1dFlNTVJlZ0xhbmUxMjgocmVnLCAxLCBta2V4cHIobG9hZGVkVmFsdWUpKTsKKyAgIH0KK30KKworCitzdGF0aWMgTG9uZyBkaXNfWFJTVE9SICggY29uc3QgVmV4QWJpSW5mbyogdmJpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFByZWZpeCBwZngsIExvbmcgZGVsdGEsIEludCBzeiApCit7CisgICAvKiBBcyB3aXRoIFhSU1RPUiBhYm92ZSB3ZSBpZ25vcmUgdGhlIHZhbHVlIG9mIFJFWC5XIHNpbmNlIHdlJ3JlCisgICAgICBub3QgYm90aGVyaW5nIHdpdGggdGhlIEZQVSBEUCBhbmQgSVAgZmllbGRzLiAqLworICAgSVJUZW1wIGFkZHIgID0gSVJUZW1wX0lOVkFMSUQ7CisgICBJbnQgICAgYWxlbiAgPSAwOworICAgSENoYXIgIGRpc19idWZbNTBdOworICAgVUNoYXIgIG1vZHJtID0gZ2V0VUNoYXIoZGVsdGEpOworICAgdmFzc2VydCghZXBhcnRJc1JlZyhtb2RybSkpOyAvKiBlbnN1cmVkIGJ5IGNhbGxlciAqLworICAgdmFzc2VydChzeiA9PSA0IHx8IHN6ID09IDgpOyAvKiBkaXR0byAqLworCisgICBhZGRyID0gZGlzQU1vZGUgKCAmYWxlbiwgdmJpLCBwZngsIGRlbHRhLCBkaXNfYnVmLCAwICk7CisgICBkZWx0YSArPSBhbGVuOworICAgZ2VuX1NFR1ZfaWZfbm90XzY0X2FsaWduZWQoYWRkcik7CisKKyAgIERJUCgiJXN4cnN0b3IgJXNcbiIsIHN6PT04ID8gInJleDY0LyIgOiAiIiwgZGlzX2J1Zik7CisKKyAgIC8qIFZFWCdzIGNhbGxlciBpcyBhc3N1bWVkIHRvIGhhdmUgY2hlY2tlZCB0aGlzLiAqLworICAgY29uc3QgVUxvbmcgYVNTVU1FRF9YQ1IwX1ZBTFVFID0gNzsKKworICAgSVJUZW1wIHJmYm0gPSBuZXdUZW1wKEl0eV9JNjQpOworICAgYXNzaWduKHJmYm0sCisgICAgICAgICAgYmlub3AoSW9wX0FuZDY0LAorICAgICAgICAgICAgICAgIGJpbm9wKElvcF9PcjY0LAorICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKElvcF9TaGw2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKElvcF8zMlV0bzY0LCBnZXRJUmVnUkRYKDQpKSwgbWtVOCgzMikpLAorICAgICAgICAgICAgICAgICAgICAgIHVub3AoSW9wXzMyVXRvNjQsIGdldElSZWdSQVgoNCkpKSwKKyAgICAgICAgICAgICAgICBta1U2NChhU1NVTUVEX1hDUjBfVkFMVUUpKSk7CisKKyAgIElSVGVtcCB4c3RhdGVfYnYgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgYXNzaWduKHhzdGF0ZV9idiwgbG9hZExFKEl0eV9JNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wX0FkZDY0LCBta2V4cHIoYWRkciksIG1rVTY0KDUxMiswKSkpKTsKKworICAgSVJUZW1wIHhjb21wX2J2ID0gbmV3VGVtcChJdHlfSTY0KTsKKyAgIGFzc2lnbih4Y29tcF9idiwgbG9hZExFKEl0eV9JNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChJb3BfQWRkNjQsIG1rZXhwcihhZGRyKSwgbWtVNjQoNTEyKzgpKSkpOworCisgICBJUlRlbXAgeHNhdmVoZHJfMjNfMTYgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgYXNzaWduKCB4c2F2ZWhkcl8yM18xNiwgCisgICAgICAgICAgIGxvYWRMRShJdHlfSTY0LAorICAgICAgICAgICAgICAgICAgYmlub3AoSW9wX0FkZDY0LCBta2V4cHIoYWRkciksIG1rVTY0KDUxMisxNikpKSk7CisKKyAgIC8qIFdlIG11c3QgZmF1bHQgaWYgCisgICAgICAqIHhjb21wX2J2WzYzXSA9PSAxLCBzaW5jZSB0aGlzIHNpbXVsYXRlZCBDUFUgZG9lcyBub3Qgc3VwcG9ydAorICAgICAgICB0aGUgY29tcGFjdGlvbiBleHRlbnNpb24uCisgICAgICAqIHhzdGF0ZV9idiBzZXRzIGEgYml0IG91dHNpZGUgb2YgWENSMCAod2hpY2ggd2UgYXNzdW1lIHRvIGJlIDcpLgorICAgICAgKiBhbnkgb2YgdGhlIHhzYXZlIGhlYWRlciBieXRlcyAyMyAuLiA4IGFyZSBub256ZXJvLiAgVGhpcyBzZWVtcyB0bworICAgICAgICBpbXBseSB0aGF0IHhjb21wX2J2IG11c3QgYmUgemVyby4KKyAgICAgIHhjb21wX2J2IGlzIGhlYWRlciBieXRlcyAxNSAuLiA4IGFuZCB4c3RhdGVfYnYgaXMgaGVhZGVyIGJ5dGVzIDcgLi4gMAorICAgKi8KKyAgIElSVGVtcCBmYXVsdF9pZl9ub256ZXJvID0gbmV3VGVtcChJdHlfSTY0KTsKKyAgIGFzc2lnbihmYXVsdF9pZl9ub256ZXJvLAorICAgICAgICAgIGJpbm9wKElvcF9PcjY0LAorICAgICAgICAgICAgICAgIGJpbm9wKElvcF9BbmQ2NCwgbWtleHByKHhzdGF0ZV9idiksIG1rVTY0KH5hU1NVTUVEX1hDUjBfVkFMVUUpKSwKKyAgICAgICAgICAgICAgICBiaW5vcChJb3BfT3I2NCwgbWtleHByKHhjb21wX2J2KSwgbWtleHByKHhzYXZlaGRyXzIzXzE2KSkpKTsKKyAgIHN0bXQoIElSU3RtdF9FeGl0KGJpbm9wKElvcF9DbXBORTY0LCBta2V4cHIoZmF1bHRfaWZfbm9uemVybyksIG1rVTY0KDApKSwKKyAgICAgICAgICAgICAgICAgICAgIElqa19TaWdTRUdWLAorICAgICAgICAgICAgICAgICAgICAgSVJDb25zdF9VNjQoZ3Vlc3RfUklQX2N1cnJfaW5zdHIpLAorICAgICAgICAgICAgICAgICAgICAgT0ZGQl9SSVAKKyAgICkpOworCisgICAvKiBXZSBhcmUgZ3VhcmFudGVlZCBub3cgdGhhdCBib3RoIHhzdGF0ZV9idiBhbmQgcmZibSBhcmUgaW4gdGhlCisgICAgICByYW5nZSAwIC4uIDcuICBHZW5lcmF0ZSB0aGUgcmVzdG9yZSBzZXF1ZW5jZSBwcm9wZXIuICovCisgICBnZW5fWFJTVE9SX1NFUVVFTkNFKGFkZHIsIHhzdGF0ZV9idiwgcmZibSk7CisKKyAgIHJldHVybiBkZWx0YTsKK30KKworCitzdGF0aWMgTG9uZyBkaXNfRlhSU1RPUiAoIGNvbnN0IFZleEFiaUluZm8qIHZiaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlZml4IHBmeCwgTG9uZyBkZWx0YSwgSW50IHN6ICkKK3sKKyAgIC8qIEFzIHdpdGggRlhTQVZFIGFib3ZlIHdlIGlnbm9yZSB0aGUgdmFsdWUgb2YgUkVYLlcgc2luY2Ugd2UncmUKKyAgICAgIG5vdCBib3RoZXJpbmcgd2l0aCB0aGUgRlBVIERQIGFuZCBJUCBmaWVsZHMuICovCisgICBJUlRlbXAgYWRkciAgPSBJUlRlbXBfSU5WQUxJRDsKKyAgIEludCAgICBhbGVuICA9IDA7CisgICBIQ2hhciAgZGlzX2J1Zls1MF07CisgICBVQ2hhciAgbW9kcm0gPSBnZXRVQ2hhcihkZWx0YSk7CisgICB2YXNzZXJ0KCFlcGFydElzUmVnKG1vZHJtKSk7IC8qIGVuc3VyZWQgYnkgY2FsbGVyICovCisgICB2YXNzZXJ0KHN6ID09IDQgfHwgc3ogPT0gOCk7IC8qIGRpdHRvICovCisKKyAgIGFkZHIgPSBkaXNBTW9kZSAoICZhbGVuLCB2YmksIHBmeCwgZGVsdGEsIGRpc19idWYsIDAgKTsKKyAgIGRlbHRhICs9IGFsZW47CisgICBnZW5fU0VHVl9pZl9ub3RfMTZfYWxpZ25lZChhZGRyKTsKKworICAgRElQKCIlc2Z4cnN0b3IgJXNcbiIsIHN6PT04ID8gInJleDY0LyIgOiAiIiwgZGlzX2J1Zik7CisKKyAgIC8qIEZYUlNUT1IgaXMganVzdCBYUlNUT1Igd2l0aCBjb21wb25lbnRzIDAgYW5kIDEgc2VsZWN0ZWQgYW5kIGFsc28KKyAgICAgIGFzIGlmIGNvbXBvbmVudHMgMCBhbmQgMSBhcmUgc2V0IGFzIHByZXNlbnQgaW4gWFNUQVRFX0JWIGluIHRoZQorICAgICAgWFNBVkUgaGVhZGVyLiAgU2V0IGJvdGggcmZibSBhbmQgeHN0YXRlX2J2IHRvIDBiMDExIHRoZXJlZm9yZSwKKyAgICAgIGdlbmVyYXRlIHRoZSBYUlNUT1Igc2VxdWVuY2UgYWNjb3JkaW5nbHksIGFuZCBsZXQgaXJvcHQgZm9sZCBvdXQKKyAgICAgIHRoZSB1bnVzZWQgKEFWWCkgcGFydHMgYWNjb3JkaW5nbHkuICovCisgICBJUlRlbXAgdGhyZWUgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgYXNzaWduKHRocmVlLCBta1U2NCgzKSk7CisgICBnZW5fWFJTVE9SX1NFUVVFTkNFKGFkZHIsIHRocmVlLyp4c3RhdGVfYnYqLywgdGhyZWUvKnJmYm0qLyk7CisKKyAgIHJldHVybiBkZWx0YTsKK30KKworCiBzdGF0aWMgSVJUZW1wIG1hdGhfUElOU1JXXzEyOCAoIElSVGVtcCB2MTI4LCBJUlRlbXAgdTE2LCBVSW50IGltbTggKQogewogICAgdmFzc2VydChpbW04ID49IDAgJiYgaW1tOCA8PSA3KTsKQEAgLTExNzM3LDYgKzEyMzE5LDcgQEAKIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKIHN0YXRpYwogTG9uZyBkaXNfRVNDXzBGX19TU0UyICggQm9vbCogZGVjb2RlX09LLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmV4QXJjaEluZm8qIGFyY2hpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmV4QWJpSW5mbyogdmJpLAogICAgICAgICAgICAgICAgICAgICAgICAgUHJlZml4IHBmeCwgSW50IHN6LCBMb25nIGRlbHRhSU4sCiAgICAgICAgICAgICAgICAgICAgICAgICBEaXNSZXN1bHQqIGRyZXMgKQpAQCAtMTI4MTMsNyArMTMzOTYsOCBAQAogICAgY2FzZSAweDVBOgogICAgICAgLyogMEYgNUEgPSBDVlRQUzJQRCAtLSBjb252ZXJ0IDIgeCBGMzIgaW4gbG93IGhhbGYgbWVtL3htbSB0byAyIHgKICAgICAgICAgIEY2NCBpbiB4bW0oRykuICovCi0gICAgICBpZiAoaGF2ZU5vNjZub0Yybm9GMyhwZngpICYmIHN6ID09IDQpIHsKKyAgICAgIGlmIChoYXZlTm82Nm5vRjJub0YzKHBmeCkKKyAgICAgICAgICAmJiAoc3ogPT0gNCB8fCAvKiBpZ25vcmUgcmVkdW5kYW50IFJFWC5XICovIHN6ID09IDgpKSB7CiAgICAgICAgICBkZWx0YSA9IGRpc19DVlRQUzJQRF8xMjgoIHZiaSwgcGZ4LCBkZWx0YSwgRmFsc2UvKiFpc0F2eCovICk7CiAgICAgICAgICBnb3RvIGRlY29kZV9zdWNjZXNzOwogICAgICAgfQpAQCAtMTM1NjMsMTY2ICsxNDE0NywzNCBAQAogICAgICAgICAgZGVsdGEgPSBkaXNfTERNWENTUih2YmksIHBmeCwgZGVsdGEsIEZhbHNlLyohaXNBdngqLyk7CiAgICAgICAgICBnb3RvIGRlY29kZV9zdWNjZXNzOwogICAgICAgfQotICAgICAgLyogMEYgQUUgLzAgPSBGWFNBVkUgbTUxMiAtLSB3cml0ZSB4ODcgYW5kIFNTRSBzdGF0ZSB0byBtZW1vcnkuCi0gICAgICAgICBOb3RlIHRoYXQgdGhlIHByZXNlbmNlIG9yIGFic2VuY2Ugb2YgUkVYLlcgc2xpZ2h0bHkgYWZmZWN0cyB0aGUKLSAgICAgICAgIHdyaXR0ZW4gZm9ybWF0OiB3aGV0aGVyIHRoZSBzYXZlZCBGUFUgSVAgYW5kIERQIHBvaW50ZXJzIGFyZSA2NAotICAgICAgICAgb3IgMzIgYml0cy4gIEJ1dCB0aGUgaGVscGVyIGZ1bmN0aW9uIHdlIGNhbGwgc2ltcGx5IHdyaXRlcyB6ZXJvCi0gICAgICAgICBiaXRzIGluIHRoZSByZWxldmFudCBmaWVsZHMgKHdoaWNoIGFyZSA2NCBiaXRzIHJlZ2FyZGxlc3Mgb2YKLSAgICAgICAgIHdoYXQgUkVYLlcgaXMpIGFuZCBzbyBpdCdzIGdvb2QgZW5vdWdoIChpb3csIGVxdWFsbHkgYnJva2VuKSBpbgotICAgICAgICAgYm90aCBjYXNlcy4gKi8KKyAgICAgIC8qIDBGIEFFIC8wID0gRlhTQVZFIG01MTIgLS0gd3JpdGUgeDg3IGFuZCBTU0Ugc3RhdGUgdG8gbWVtb3J5ICovCiAgICAgICBpZiAoaGF2ZU5vNjZub0Yybm9GMyhwZngpICYmIChzeiA9PSA0IHx8IHN6ID09IDgpCiAgICAgICAgICAgJiYgIWVwYXJ0SXNSZWcoZ2V0VUNoYXIoZGVsdGEpKQogICAgICAgICAgICYmIGdyZWdPZlJleFJNKHBmeCxnZXRVQ2hhcihkZWx0YSkpID09IDApIHsKLSAgICAgICAgICBJUkRpcnR5KiBkOwotICAgICAgICAgbW9kcm0gPSBnZXRVQ2hhcihkZWx0YSk7Ci0gICAgICAgICB2YXNzZXJ0KCFlcGFydElzUmVnKG1vZHJtKSk7Ci0KLSAgICAgICAgIGFkZHIgPSBkaXNBTW9kZSAoICZhbGVuLCB2YmksIHBmeCwgZGVsdGEsIGRpc19idWYsIDAgKTsKLSAgICAgICAgIGRlbHRhICs9IGFsZW47Ci0gICAgICAgICBnZW5fU0VHVl9pZl9ub3RfMTZfYWxpZ25lZChhZGRyKTsKLQotICAgICAgICAgRElQKCIlc2Z4c2F2ZSAlc1xuIiwgc3o9PTggPyAicmV4NjQvIiA6ICIiLCBkaXNfYnVmKTsKLQotICAgICAgICAgLyogVXNlcyBkaXJ0eSBoZWxwZXI6IAotICAgICAgICAgICAgICB2b2lkIGFtZDY0Z19kb19GWFNBVkVfQUxMX0VYQ0VQVF9YTU0gKCBWZXhHdWVzdEFNRDY0U3RhdGUqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9uZyApICovCi0gICAgICAgICBkID0gdW5zYWZlSVJEaXJ0eV8wX04gKCAKLSAgICAgICAgICAgICAgICAwLypyZWdwYXJtcyovLCAKLSAgICAgICAgICAgICAgICAiYW1kNjRnX2RpcnR5aGVscGVyX0ZYU0FWRV9BTExfRVhDRVBUX1hNTSIsCi0gICAgICAgICAgICAgICAgJmFtZDY0Z19kaXJ0eWhlbHBlcl9GWFNBVkVfQUxMX0VYQ0VQVF9YTU0sCi0gICAgICAgICAgICAgICAgbWtJUkV4cHJWZWNfMiggSVJFeHByX0JCUFRSKCksIG1rZXhwcihhZGRyKSApCi0gICAgICAgICAgICAgKTsKLQotICAgICAgICAgLyogZGVjbGFyZSB3ZSdyZSB3cml0aW5nIG1lbW9yeSAqLwotICAgICAgICAgZC0+bUZ4ICAgPSBJZnhfV3JpdGU7Ci0gICAgICAgICBkLT5tQWRkciA9IG1rZXhwcihhZGRyKTsKLSAgICAgICAgIGQtPm1TaXplID0gNDY0OyAvKiBhY2NvcmRpbmcgdG8gcmVjZW50IEludGVsIGRvY3MgKi8KLQotICAgICAgICAgLyogZGVjbGFyZSB3ZSdyZSByZWFkaW5nIGd1ZXN0IHN0YXRlICovCi0gICAgICAgICBkLT5uRnhTdGF0ZSA9IDY7Ci0gICAgICAgICB2ZXhfYnplcm8oJmQtPmZ4U3RhdGUsIHNpemVvZihkLT5meFN0YXRlKSk7Ci0KLSAgICAgICAgIGQtPmZ4U3RhdGVbMF0uZnggICAgID0gSWZ4X1JlYWQ7Ci0gICAgICAgICBkLT5meFN0YXRlWzBdLm9mZnNldCA9IE9GRkJfRlRPUDsKLSAgICAgICAgIGQtPmZ4U3RhdGVbMF0uc2l6ZSAgID0gc2l6ZW9mKFVJbnQpOwotCi0gICAgICAgICBkLT5meFN0YXRlWzFdLmZ4ICAgICA9IElmeF9SZWFkOwotICAgICAgICAgZC0+ZnhTdGF0ZVsxXS5vZmZzZXQgPSBPRkZCX0ZQUkVHUzsKLSAgICAgICAgIGQtPmZ4U3RhdGVbMV0uc2l6ZSAgID0gOCAqIHNpemVvZihVTG9uZyk7Ci0KLSAgICAgICAgIGQtPmZ4U3RhdGVbMl0uZnggICAgID0gSWZ4X1JlYWQ7Ci0gICAgICAgICBkLT5meFN0YXRlWzJdLm9mZnNldCA9IE9GRkJfRlBUQUdTOwotICAgICAgICAgZC0+ZnhTdGF0ZVsyXS5zaXplICAgPSA4ICogc2l6ZW9mKFVDaGFyKTsKLQotICAgICAgICAgZC0+ZnhTdGF0ZVszXS5meCAgICAgPSBJZnhfUmVhZDsKLSAgICAgICAgIGQtPmZ4U3RhdGVbM10ub2Zmc2V0ID0gT0ZGQl9GUFJPVU5EOwotICAgICAgICAgZC0+ZnhTdGF0ZVszXS5zaXplICAgPSBzaXplb2YoVUxvbmcpOwotCi0gICAgICAgICBkLT5meFN0YXRlWzRdLmZ4ICAgICA9IElmeF9SZWFkOwotICAgICAgICAgZC0+ZnhTdGF0ZVs0XS5vZmZzZXQgPSBPRkZCX0ZDMzIxMDsKLSAgICAgICAgIGQtPmZ4U3RhdGVbNF0uc2l6ZSAgID0gc2l6ZW9mKFVMb25nKTsKLQotICAgICAgICAgZC0+ZnhTdGF0ZVs1XS5meCAgICAgPSBJZnhfUmVhZDsKLSAgICAgICAgIGQtPmZ4U3RhdGVbNV0ub2Zmc2V0ID0gT0ZGQl9TU0VST1VORDsKLSAgICAgICAgIGQtPmZ4U3RhdGVbNV0uc2l6ZSAgID0gc2l6ZW9mKFVMb25nKTsKLQotICAgICAgICAgLyogQ2FsbCB0aGUgaGVscGVyLiAgVGhpcyBjcmVhdGVzIGFsbCBwYXJ0cyBvZiB0aGUgaW4tbWVtb3J5Ci0gICAgICAgICAgICBpbWFnZSBleGNlcHQgZm9yIHRoZSBYTU1bMC4uMTVdIGFycmF5LCB3aGljaCB3ZSBkbwotICAgICAgICAgICAgc2VwYXJhdGVseSwgaW4gb3JkZXIgdGhhdCBhbnkgdW5kZWZpbmVkbmVzcyBpbiB0aGUgWE1NCi0gICAgICAgICAgICByZWdpc3RlcnMgaXMgdHJhY2tlZCBzZXBhcmF0ZWx5IGJ5IE1lbWNoZWNrIGFuZCBkb2VzIG5vdAotICAgICAgICAgICAgImluZmVjdCIgdGhlIGluLW1lbW9yeSBzaGFkb3cgZm9yIHRoZSBvdGhlciBwYXJ0cyBvZiB0aGUKLSAgICAgICAgICAgIGltYWdlIChGUFRPUCwgRlBSRUdTLCBGUFRBR1MsIEZQUk9VTkQsIEZDMzIxMCwKLSAgICAgICAgICAgIFNTRVJPVU5EKS4gKi8KLSAgICAgICAgIHN0bXQoIElSU3RtdF9EaXJ0eShkKSApOwotCi0gICAgICAgICAvKiBBbmQgbm93IHRoZSBYTU1zIHRoZW1zZWx2ZXMuICovCi0gICAgICAgICBVSW50IHhtbTsKLSAgICAgICAgIGZvciAoeG1tID0gMDsgeG1tIDwgMTY7IHhtbSsrKSB7Ci0gICAgICAgICAgICBzdG9yZUxFKCBiaW5vcChJb3BfQWRkNjQsIG1rZXhwcihhZGRyKSwgbWtVNjQoMTYwICsgeG1tICogMTYpKSwKLSAgICAgICAgICAgICAgICAgICAgIGdldFhNTVJlZyh4bW0pICk7Ci0gICAgICAgICB9Ci0KKyAgICAgICAgIGRlbHRhID0gZGlzX0ZYU0FWRSh2YmksIHBmeCwgZGVsdGEsIHN6KTsKICAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3M7CiAgICAgICB9Ci0gICAgICAvKiAwRiBBRSAvMSA9IEZYUlNUT1IgbTUxMiAtLSByZWFkIHg4NyBhbmQgU1NFIHN0YXRlIGZyb20gbWVtb3J5LgotICAgICAgICAgQXMgd2l0aCBGWFNBVkUgYWJvdmUgd2UgaWdub3JlIHRoZSB2YWx1ZSBvZiBSRVguVyBzaW5jZSB3ZSdyZQotICAgICAgICAgbm90IGJvdGhlcmluZyB3aXRoIHRoZSBGUFUgRFAgYW5kIElQIGZpZWxkcy4gKi8KKyAgICAgIC8qIDBGIEFFIC8xID0gRlhSU1RPUiBtNTEyIC0tIHJlYWQgeDg3IGFuZCBTU0Ugc3RhdGUgZnJvbSBtZW1vcnkgKi8KICAgICAgIGlmIChoYXZlTm82Nm5vRjJub0YzKHBmeCkgJiYgKHN6ID09IDQgfHwgc3ogPT0gOCkKICAgICAgICAgICAmJiAhZXBhcnRJc1JlZyhnZXRVQ2hhcihkZWx0YSkpCiAgICAgICAgICAgJiYgZ3JlZ09mUmV4Uk0ocGZ4LGdldFVDaGFyKGRlbHRhKSkgPT0gMSkgewotICAgICAgICAgSVJEaXJ0eSogZDsKLSAgICAgICAgIG1vZHJtID0gZ2V0VUNoYXIoZGVsdGEpOwotICAgICAgICAgdmFzc2VydCghZXBhcnRJc1JlZyhtb2RybSkpOwotCi0gICAgICAgICBhZGRyID0gZGlzQU1vZGUgKCAmYWxlbiwgdmJpLCBwZngsIGRlbHRhLCBkaXNfYnVmLCAwICk7Ci0gICAgICAgICBkZWx0YSArPSBhbGVuOwotICAgICAgICAgZ2VuX1NFR1ZfaWZfbm90XzE2X2FsaWduZWQoYWRkcik7Ci0KLSAgICAgICAgIERJUCgiJXNmeHJzdG9yICVzXG4iLCBzej09OCA/ICJyZXg2NC8iIDogIiIsIGRpc19idWYpOwotCi0gICAgICAgICAvKiBVc2VzIGRpcnR5IGhlbHBlcjogCi0gICAgICAgICAgICAgIFZleEVtTm90ZSBhbWQ2NGdfZG9fRlhSU1RPUl9BTExfRVhDRVBUX1hNTSAoIFZleEd1ZXN0QU1ENjRTdGF0ZSosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb25nICkKLSAgICAgICAgICAgIE5PVEU6Ci0gICAgICAgICAgICAgIHRoZSBWZXhFbU5vdGUgdmFsdWUgaXMgc2ltcGx5IGlnbm9yZWQKLSAgICAgICAgICovCi0gICAgICAgICBkID0gdW5zYWZlSVJEaXJ0eV8wX04gKCAKLSAgICAgICAgICAgICAgICAwLypyZWdwYXJtcyovLCAKLSAgICAgICAgICAgICAgICAiYW1kNjRnX2RpcnR5aGVscGVyX0ZYUlNUT1JfQUxMX0VYQ0VQVF9YTU0iLCAKLSAgICAgICAgICAgICAgICAmYW1kNjRnX2RpcnR5aGVscGVyX0ZYUlNUT1JfQUxMX0VYQ0VQVF9YTU0sCi0gICAgICAgICAgICAgICAgbWtJUkV4cHJWZWNfMiggSVJFeHByX0JCUFRSKCksIG1rZXhwcihhZGRyKSApCi0gICAgICAgICAgICAgKTsKLQotICAgICAgICAgLyogZGVjbGFyZSB3ZSdyZSByZWFkaW5nIG1lbW9yeSAqLwotICAgICAgICAgZC0+bUZ4ICAgPSBJZnhfUmVhZDsKLSAgICAgICAgIGQtPm1BZGRyID0gbWtleHByKGFkZHIpOwotICAgICAgICAgZC0+bVNpemUgPSA0NjQ7IC8qIGFjY29yZGluZyB0byByZWNlbnQgSW50ZWwgZG9jcyAqLwotCi0gICAgICAgICAvKiBkZWNsYXJlIHdlJ3JlIHdyaXRpbmcgZ3Vlc3Qgc3RhdGUgKi8KLSAgICAgICAgIGQtPm5GeFN0YXRlID0gNjsKLSAgICAgICAgIHZleF9iemVybygmZC0+ZnhTdGF0ZSwgc2l6ZW9mKGQtPmZ4U3RhdGUpKTsKLQotICAgICAgICAgZC0+ZnhTdGF0ZVswXS5meCAgICAgPSBJZnhfV3JpdGU7Ci0gICAgICAgICBkLT5meFN0YXRlWzBdLm9mZnNldCA9IE9GRkJfRlRPUDsKLSAgICAgICAgIGQtPmZ4U3RhdGVbMF0uc2l6ZSAgID0gc2l6ZW9mKFVJbnQpOwotCi0gICAgICAgICBkLT5meFN0YXRlWzFdLmZ4ICAgICA9IElmeF9Xcml0ZTsKLSAgICAgICAgIGQtPmZ4U3RhdGVbMV0ub2Zmc2V0ID0gT0ZGQl9GUFJFR1M7Ci0gICAgICAgICBkLT5meFN0YXRlWzFdLnNpemUgICA9IDggKiBzaXplb2YoVUxvbmcpOwotCi0gICAgICAgICBkLT5meFN0YXRlWzJdLmZ4ICAgICA9IElmeF9Xcml0ZTsKLSAgICAgICAgIGQtPmZ4U3RhdGVbMl0ub2Zmc2V0ID0gT0ZGQl9GUFRBR1M7Ci0gICAgICAgICBkLT5meFN0YXRlWzJdLnNpemUgICA9IDggKiBzaXplb2YoVUNoYXIpOwotCi0gICAgICAgICBkLT5meFN0YXRlWzNdLmZ4ICAgICA9IElmeF9Xcml0ZTsKLSAgICAgICAgIGQtPmZ4U3RhdGVbM10ub2Zmc2V0ID0gT0ZGQl9GUFJPVU5EOwotICAgICAgICAgZC0+ZnhTdGF0ZVszXS5zaXplICAgPSBzaXplb2YoVUxvbmcpOwotCi0gICAgICAgICBkLT5meFN0YXRlWzRdLmZ4ICAgICA9IElmeF9Xcml0ZTsKLSAgICAgICAgIGQtPmZ4U3RhdGVbNF0ub2Zmc2V0ID0gT0ZGQl9GQzMyMTA7Ci0gICAgICAgICBkLT5meFN0YXRlWzRdLnNpemUgICA9IHNpemVvZihVTG9uZyk7Ci0KLSAgICAgICAgIGQtPmZ4U3RhdGVbNV0uZnggICAgID0gSWZ4X1dyaXRlOwotICAgICAgICAgZC0+ZnhTdGF0ZVs1XS5vZmZzZXQgPSBPRkZCX1NTRVJPVU5EOwotICAgICAgICAgZC0+ZnhTdGF0ZVs1XS5zaXplICAgPSBzaXplb2YoVUxvbmcpOwotCi0gICAgICAgICAvKiBDYWxsIHRoZSBoZWxwZXIuICBUaGlzIHJlYWRzIGFsbCBwYXJ0cyBvZiB0aGUgaW4tbWVtb3J5Ci0gICAgICAgICAgICBpbWFnZSBleGNlcHQgZm9yIHRoZSBYTU1bMC4uMTVdIGFycmF5LCB3aGljaCB3ZSBkbwotICAgICAgICAgICAgc2VwYXJhdGVseSwgaW4gb3JkZXIgdGhhdCBhbnkgdW5kZWZpbmVkbmVzcyBpbiB0aGUgWE1NCi0gICAgICAgICAgICByZWdpc3RlcnMgaXMgdHJhY2tlZCBzZXBhcmF0ZWx5IGJ5IE1lbWNoZWNrIGFuZCBkb2VzIG5vdAotICAgICAgICAgICAgImluZmVjdCIgdGhlIGluLWd1ZXN0LXN0YXRlIHNoYWRvdyBmb3IgdGhlIG90aGVyIHBhcnRzIG9mIHRoZQotICAgICAgICAgICAgaW1hZ2UgKEZQVE9QLCBGUFJFR1MsIEZQVEFHUywgRlBST1VORCwgRkMzMjEwLAotICAgICAgICAgICAgU1NFUk9VTkQpLiAqLwotICAgICAgICAgc3RtdCggSVJTdG10X0RpcnR5KGQpICk7Ci0KLSAgICAgICAgIC8qIEFuZCBub3cgdGhlIFhNTXMgdGhlbXNlbHZlcy4gKi8KLSAgICAgICAgIFVJbnQgeG1tOwotICAgICAgICAgZm9yICh4bW0gPSAwOyB4bW0gPCAxNjsgeG1tKyspIHsKLSAgICAgICAgICAgIHB1dFhNTVJlZyh4bW0sIGxvYWRMRShJdHlfVjEyOCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChJb3BfQWRkNjQsIG1rZXhwcihhZGRyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KDE2MCArIHhtbSAqIDE2KSkpKTsKLSAgICAgICAgIH0KLQorICAgICAgICAgZGVsdGEgPSBkaXNfRlhSU1RPUih2YmksIHBmeCwgZGVsdGEsIHN6KTsKKyAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3M7CisgICAgICB9CisgICAgICAvKiAwRiBBRSAvNCA9IFhTQVZFIG1lbSAtLSB3cml0ZSB4ODcsIFNTRSwgQVZYIHN0YXRlIHRvIG1lbW9yeSAqLworICAgICAgaWYgKGhhdmVObzY2bm9GMm5vRjMocGZ4KSAmJiAoc3ogPT0gNCB8fCBzeiA9PSA4KQorICAgICAgICAgICYmICFlcGFydElzUmVnKGdldFVDaGFyKGRlbHRhKSkKKyAgICAgICAgICAmJiBncmVnT2ZSZXhSTShwZngsZ2V0VUNoYXIoZGVsdGEpKSA9PSA0CisgICAgICAgICAgJiYgKGFyY2hpbmZvLT5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X0FWWCkpIHsKKyAgICAgICAgIGRlbHRhID0gZGlzX1hTQVZFKHZiaSwgcGZ4LCBkZWx0YSwgc3opOworICAgICAgICAgZ290byBkZWNvZGVfc3VjY2VzczsKKyAgICAgIH0KKyAgICAgIC8qIDBGIEFFIC81ID0gWFJTVE9SIG1lbSAtLSByZWFkIHg4NywgU1NFLCBBVlggc3RhdGUgZnJvbSBtZW1vcnkgKi8KKyAgICAgIGlmIChoYXZlTm82Nm5vRjJub0YzKHBmeCkgJiYgKHN6ID09IDQgfHwgc3ogPT0gOCkKKyAgICAgICAgICAmJiAhZXBhcnRJc1JlZyhnZXRVQ2hhcihkZWx0YSkpCisgICAgICAgICAgJiYgZ3JlZ09mUmV4Uk0ocGZ4LGdldFVDaGFyKGRlbHRhKSkgPT0gNQorICAgICAgICAgICYmIChhcmNoaW5mby0+aHdjYXBzICYgVkVYX0hXQ0FQU19BTUQ2NF9BVlgpKSB7CisgICAgICAgICBkZWx0YSA9IGRpc19YUlNUT1IodmJpLCBwZngsIGRlbHRhLCBzeik7CiAgICAgICAgICBnb3RvIGRlY29kZV9zdWNjZXNzOwogICAgICAgfQogICAgICAgYnJlYWs7CkBAIC0xMzc5Myw3ICsxNDI0NSw3IEBACiAgICAgICAgICAgICBhc3NpZ24odDQsIGdldElSZWcxNihlcmVnT2ZSZXhSTShwZngsbW9kcm0pKSk7CiAgICAgICAgICAgICBkZWx0YSArPSAxKzE7CiAgICAgICAgICAgICBsYW5lID0gZ2V0VUNoYXIoZGVsdGEtMSk7Ci0gICAgICAgICAgICBESVAoInBpbnNydyAkJWQsJXMsJXNcbiIsIChJbnQpbGFuZSwgCisgICAgICAgICAgICBESVAoInBpbnNydyAkJWQsJXMsJXNcbiIsIGxhbmUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lSVJlZzE2KGVyZWdPZlJleFJNKHBmeCxtb2RybSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lTU1YUmVnKGdyZWdMTzNvZlJNKG1vZHJtKSkpOwogICAgICAgICAgfSBlbHNlIHsKQEAgLTEzODAxLDcgKzE0MjUzLDcgQEAKICAgICAgICAgICAgIGRlbHRhICs9IDErYWxlbjsKICAgICAgICAgICAgIGxhbmUgPSBnZXRVQ2hhcihkZWx0YS0xKTsKICAgICAgICAgICAgIGFzc2lnbih0NCwgbG9hZExFKEl0eV9JMTYsIG1rZXhwcihhZGRyKSkpOwotICAgICAgICAgICAgRElQKCJwaW5zcncgJCVkLCVzLCVzXG4iLCAoSW50KWxhbmUsCisgICAgICAgICAgICBESVAoInBpbnNydyAkJWQsJXMsJXNcbiIsIGxhbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVNTVhSZWcoZ3JlZ0xPM29mUk0obW9kcm0pKSk7CiAgICAgICAgICB9CkBAIC0xMzgzMCw3ICsxNDI4Miw3IEBACiAgICAgICAgICAgICBkZWx0YSArPSAxKzE7CiAgICAgICAgICAgICBsYW5lID0gZ2V0VUNoYXIoZGVsdGEtMSk7CiAgICAgICAgICAgICBESVAoInBpbnNydyAkJWQsJXMsJXNcbiIsCi0gICAgICAgICAgICAgICAgKEludClsYW5lLCBuYW1lSVJlZzE2KHJFKSwgbmFtZVhNTVJlZyhyRykpOworICAgICAgICAgICAgICAgIGxhbmUsIG5hbWVJUmVnMTYockUpLCBuYW1lWE1NUmVnKHJHKSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYWRkciA9IGRpc0FNb2RlICggJmFsZW4sIHZiaSwgcGZ4LCBkZWx0YSwgZGlzX2J1ZiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLypieXRlIGFmdGVyIHRoZSBhbW9kZSovICk7CkBAIC0xMzgzOCw3ICsxNDI5MCw3IEBACiAgICAgICAgICAgICBsYW5lID0gZ2V0VUNoYXIoZGVsdGEtMSk7CiAgICAgICAgICAgICBhc3NpZ24odDQsIGxvYWRMRShJdHlfSTE2LCBta2V4cHIoYWRkcikpKTsKICAgICAgICAgICAgIERJUCgicGluc3J3ICQlZCwlcywlc1xuIiwKLSAgICAgICAgICAgICAgICAoSW50KWxhbmUsIGRpc19idWYsIG5hbWVYTU1SZWcockcpKTsKKyAgICAgICAgICAgICAgICBsYW5lLCBkaXNfYnVmLCBuYW1lWE1NUmVnKHJHKSk7CiAgICAgICAgICB9CiAgICAgICAgICBJUlRlbXAgc3JjX3ZlYyA9IG5ld1RlbXAoSXR5X1YxMjgpOwogICAgICAgICAgYXNzaWduKHNyY192ZWMsIGdldFhNTVJlZyhyRykpOwpAQCAtMTU4NDYsNyArMTYyOTgsNyBAQAogICAgICAgICAgICAgYXNzaWduKCBzViwgZ2V0WE1NUmVnKGVyZWdPZlJleFJNKHBmeCxtb2RybSkpICk7CiAgICAgICAgICAgICBkNjQgPSAoTG9uZylnZXRVQ2hhcihkZWx0YSsxKTsKICAgICAgICAgICAgIGRlbHRhICs9IDErMTsKLSAgICAgICAgICAgIERJUCgicGFsaWduciAkJWQsJXMsJXNcbiIsIChJbnQpZDY0LAorICAgICAgICAgICAgRElQKCJwYWxpZ25yICQlbGxkLCVzLCVzXG4iLCBkNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lWE1NUmVnKGVyZWdPZlJleFJNKHBmeCxtb2RybSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVhNTVJlZyhncmVnT2ZSZXhSTShwZngsbW9kcm0pKSk7CiAgICAgICAgICB9IGVsc2UgewpAQCAtMTU4NTUsNyArMTYzMDcsNyBAQAogICAgICAgICAgICAgYXNzaWduKCBzViwgbG9hZExFKEl0eV9WMTI4LCBta2V4cHIoYWRkcikpICk7CiAgICAgICAgICAgICBkNjQgPSAoTG9uZylnZXRVQ2hhcihkZWx0YSthbGVuKTsKICAgICAgICAgICAgIGRlbHRhICs9IGFsZW4rMTsKLSAgICAgICAgICAgIERJUCgicGFsaWduciAkJWQsJXMsJXNcbiIsIChJbnQpZDY0LAorICAgICAgICAgICAgRElQKCJwYWxpZ25yICQlbGxkLCVzLCVzXG4iLCBkNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNfYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVhNTVJlZyhncmVnT2ZSZXhSTShwZngsbW9kcm0pKSk7CiAgICAgICAgICB9CkBAIC0xNTg3OCw3ICsxNjMzMCw3IEBACiAgICAgICAgICAgICBhc3NpZ24oIHNWLCBnZXRNTVhSZWcoZXJlZ0xPM29mUk0obW9kcm0pKSApOwogICAgICAgICAgICAgZDY0ID0gKExvbmcpZ2V0VUNoYXIoZGVsdGErMSk7CiAgICAgICAgICAgICBkZWx0YSArPSAxKzE7Ci0gICAgICAgICAgICBESVAoInBhbGlnbnIgJCVkLCVzLCVzXG4iLCAgKEludClkNjQsIAorICAgICAgICAgICAgRElQKCJwYWxpZ25yICQlbGxkLCVzLCVzXG4iLCAgZDY0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lTU1YUmVnKGVyZWdMTzNvZlJNKG1vZHJtKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1NWFJlZyhncmVnTE8zb2ZSTShtb2RybSkpKTsKICAgICAgICAgIH0gZWxzZSB7CkBAIC0xNTg4Niw3ICsxNjMzOCw3IEBACiAgICAgICAgICAgICBhc3NpZ24oIHNWLCBsb2FkTEUoSXR5X0k2NCwgbWtleHByKGFkZHIpKSApOwogICAgICAgICAgICAgZDY0ID0gKExvbmcpZ2V0VUNoYXIoZGVsdGErYWxlbik7CiAgICAgICAgICAgICBkZWx0YSArPSBhbGVuKzE7Ci0gICAgICAgICAgICBESVAoInBhbGlnbnIgJCVkJXMsJXNcbiIsIChJbnQpZDY0LAorICAgICAgICAgICAgRElQKCJwYWxpZ25yICQlbGxkJXMsJXNcbiIsIGQ2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzX2J1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1NWFJlZyhncmVnTE8zb2ZSTShtb2RybSkpKTsKICAgICAgICAgIH0KQEAgLTE4MjE1LDE1ICsxODY2NywxNSBAQAogICAgICAgY2FzZXMgZm9yIHdoaWNoIHRoZSBoZWxwZXIgZnVuY3Rpb24gaGFzIG5vdCBiZWVuIHZlcmlmaWVkLiAqLwogICAgc3dpdGNoIChpbW0pIHsKICAgICAgIGNhc2UgMHgwMDogY2FzZSAweDAyOiBjYXNlIDB4MDg6IGNhc2UgMHgwQTogY2FzZSAweDBDOiBjYXNlIDB4MEU6Ci0gICAgICBjYXNlIDB4MTI6IGNhc2UgMHgxNDogY2FzZSAweDFBOgorICAgICAgY2FzZSAweDEyOiBjYXNlIDB4MTQ6IGNhc2UgMHgxODogY2FzZSAweDFBOgogICAgICAgY2FzZSAweDMwOiBjYXNlIDB4MzQ6IGNhc2UgMHgzODogY2FzZSAweDNBOgotICAgICAgY2FzZSAweDQwOiBjYXNlIDB4NDQ6IGNhc2UgMHg0NjogY2FzZSAweDRBOgorICAgICAgY2FzZSAweDQwOiBjYXNlIDB4NDI6IGNhc2UgMHg0NDogY2FzZSAweDQ2OiBjYXNlIDB4NEE6CiAgICAgICAgICBicmVhazsKICAgICAgIC8vIHRoZSAxNi1iaXQgY2hhcmFjdGVyIHZlcnNpb25zIG9mIHRoZSBhYm92ZQogICAgICAgY2FzZSAweDAxOiBjYXNlIDB4MDM6IGNhc2UgMHgwOTogY2FzZSAweDBCOiBjYXNlIDB4MEQ6Ci0gICAgICBjYXNlIDB4MTM6ICAgICAgICAgICAgY2FzZSAweDFCOgorICAgICAgY2FzZSAweDEzOiAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAweDFCOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgzOTogY2FzZSAweDNCOgotICAgICAgICAgICAgICAgICBjYXNlIDB4NDU6ICAgICAgICAgICAgY2FzZSAweDRCOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMHg0NTogICAgICAgICAgICBjYXNlIDB4NEI6CiAgICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gZGVsdGEwOyAvKkZBSUwqLwpAQCAtMTk3OTcsNyArMjAyNDksOCBAQAogICAgICAgICAgICAgICAgICBndWVzdF9SSVBfYmJzdGFydCtkZWx0YSwgZDY0ICk7CiAgICAgICAgICB2YXNzZXJ0KGRyZXMtPndoYXROZXh0ID09IERpc19TdG9wSGVyZSk7CiAgICAgICB9Ci0gICAgICBESVAoImolcy04IDB4JWxseCAlc1xuIiwgbmFtZV9BTUQ2NENvbmRjb2RlKG9wYyAtIDB4NzApLCBkNjQsIGNvbW1lbnQpOworICAgICAgRElQKCJqJXMtOCAweCVsbHggJXNcbiIsIG5hbWVfQU1ENjRDb25kY29kZShvcGMgLSAweDcwKSwgKFVMb25nKWQ2NCwKKyAgICAgICAgICBjb21tZW50KTsKICAgICAgIHJldHVybiBkZWx0YTsKICAgIH0KIApAQCAtMTk5MjUsNiArMjAzNzgsMTEgQEAKICAgICAgIGRlbHRhID0gZGlzX21vdl9FX0codmJpLCBwZngsIHN6LCBkZWx0YSk7CiAgICAgICByZXR1cm4gZGVsdGE7CiAKKyAgIGNhc2UgMHg4QzogLyogTU9WIFMsRSAtLSBNT1YgZnJvbSBhIFNFR01FTlQgUkVHSVNURVIgKi8KKyAgICAgIGlmIChoYXZlRjJvckYzKHBmeCkpIGdvdG8gZGVjb2RlX2ZhaWx1cmU7CisgICAgICBkZWx0YSA9IGRpc19tb3ZfU19FKHZiaSwgcGZ4LCBzeiwgZGVsdGEpOworICAgICAgcmV0dXJuIGRlbHRhOworCiAgICBjYXNlIDB4OEQ6IC8qIExFQSBNLEd2ICovCiAgICAgICBpZiAoaGF2ZUYyb3JGMyhwZngpKSBnb3RvIGRlY29kZV9mYWlsdXJlOwogICAgICAgaWYgKHN6ICE9IDQgJiYgc3ogIT0gOCkKQEAgLTIwMjA0LDcgKzIwNjYyLDcgQEAKICAgICAgIGFzc2lnbiggYWRkciwgaGFuZGxlQWRkck92ZXJyaWRlcyh2YmksIHBmeCwgbWtVNjQoZDY0KSkgKTsKICAgICAgIHB1dElSZWdSQVgoc3osIGxvYWRMRSggdHksIG1rZXhwcihhZGRyKSApKTsKICAgICAgIERJUCgibW92JWMgJXMweCVsbHgsICVzXG4iLCBuYW1lSVNpemUoc3opLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdSZWdUeHQocGZ4KSwgZDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ1JlZ1R4dChwZngpLCAoVUxvbmcpZDY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVJUmVnUkFYKHN6KSk7CiAgICAgICByZXR1cm4gZGVsdGE7CiAKQEAgLTIwMjIyLDcgKzIwNjgwLDcgQEAKICAgICAgIGFzc2lnbiggYWRkciwgaGFuZGxlQWRkck92ZXJyaWRlcyh2YmksIHBmeCwgbWtVNjQoZDY0KSkgKTsKICAgICAgIHN0b3JlTEUoIG1rZXhwcihhZGRyKSwgZ2V0SVJlZ1JBWChzeikgKTsKICAgICAgIERJUCgibW92JWMgJXMsICVzMHglbGx4XG4iLCBuYW1lSVNpemUoc3opLCBuYW1lSVJlZ1JBWChzeiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnUmVnVHh0KHBmeCksIGQ2NCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnUmVnVHh0KHBmeCksIChVTG9uZylkNjQpOwogICAgICAgcmV0dXJuIGRlbHRhOwogCiAgICBjYXNlIDB4QTQ6CkBAIC0yMDUzNCw2ICsyMDk5MiwxOCBAQAogICAgICAgRElQKCJpbnQgJDB4M1xuIik7CiAgICAgICByZXR1cm4gZGVsdGE7CiAKKyAgIGNhc2UgMHhDRDogLyogSU5UIGltbTggKi8KKyAgICAgIGQ2NCA9IGdldFVDaGFyKGRlbHRhKTsgZGVsdGErKzsKKworICAgICAgLyogSGFuZGxlIGludCAkMHhEMiAoU29sYXJpcyBmYXN0dHJhcCBzeXNjYWxscykuICovCisgICAgICBpZiAoZDY0ID09IDB4RDIpIHsKKyAgICAgICAgIGptcF9saXQoZHJlcywgSWprX1N5c19pbnQyMTAsIGd1ZXN0X1JJUF9iYnN0YXJ0ICsgZGVsdGEpOworICAgICAgICAgdmFzc2VydChkcmVzLT53aGF0TmV4dCA9PSBEaXNfU3RvcEhlcmUpOworICAgICAgICAgRElQKCJpbnQgJDB4RDJcbiIpOworICAgICAgICAgcmV0dXJuIGRlbHRhOworICAgICAgfQorICAgICAgZ290byBkZWNvZGVfZmFpbHVyZTsKKwogICAgY2FzZSAweEQwOiB7IC8qIEdycDIgMSxFYiAqLwogICAgICAgQm9vbCBkZWNvZGVfT0sgPSBUcnVlOwogICAgICAgaWYgKGhhdmVGMm9yRjMocGZ4KSkgZ290byBkZWNvZGVfZmFpbHVyZTsKQEAgLTIwNjg0LDcgKzIxMTU0LDcgQEAKICAgICAgIH0KICAgICAgIHN0bXQoIElSU3RtdF9FeGl0KGNvbmQsIElqa19Cb3JpbmcsIElSQ29uc3RfVTY0KGQ2NCksIE9GRkJfUklQKSApOwogCi0gICAgICBESVAoImxvb3AlcyVzIDB4JWxseFxuIiwgeHRyYSwgaGF2ZUFTTyhwZngpID8gImwiIDogIiIsIGQ2NCk7CisgICAgICBESVAoImxvb3AlcyVzIDB4JWxseFxuIiwgeHRyYSwgaGF2ZUFTTyhwZngpID8gImwiIDogIiIsIChVTG9uZylkNjQpOwogICAgICAgcmV0dXJuIGRlbHRhOwogICAgIH0KIApAQCAtMjA3MDIsNyArMjExNzIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSQ29uc3RfVTY0KGQ2NCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0ZGQl9SSVAKICAgICAgICAgICAgICApKTsKLSAgICAgICAgIERJUCgiamVjeHogMHglbGx4XG4iLCBkNjQpOworICAgICAgICAgRElQKCJqZWN4eiAweCVsbHhcbiIsIChVTG9uZylkNjQpOwogICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8qIDY0LWJpdCAqLwogICAgICAgICAgc3RtdCggSVJTdG10X0V4aXQoIGJpbm9wKElvcF9DbXBFUTY0LCAKQEAgLTIwNzEyLDcgKzIxMTgyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUkNvbnN0X1U2NChkNjQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9GRkJfUklQCiAgICAgICAgICAgICAgICApKTsKLSAgICAgICAgIERJUCgianJjeHogMHglbGx4XG4iLCBkNjQpOworICAgICAgICAgRElQKCJqcmN4eiAweCVsbHhcbiIsIChVTG9uZylkNjQpOwogICAgICAgfQogICAgICAgcmV0dXJuIGRlbHRhOwogCkBAIC0yMDgzMyw3ICsyMTMwMyw3IEBACiAgICAgICAgICBqbXBfbGl0KGRyZXMsIElqa19DYWxsLCBkNjQpOwogICAgICAgICAgdmFzc2VydChkcmVzLT53aGF0TmV4dCA9PSBEaXNfU3RvcEhlcmUpOwogICAgICAgfQotICAgICAgRElQKCJjYWxsIDB4JWxseFxuIixkNjQpOworICAgICAgRElQKCJjYWxsIDB4JWxseFxuIiwgKFVMb25nKWQ2NCk7CiAgICAgICByZXR1cm4gZGVsdGE7CiAKICAgIGNhc2UgMHhFOTogLyogSnYgKGp1bXAsIDE2LzMyIG9mZnNldCkgKi8KQEAgLTIwODUwLDcgKzIxMzIwLDcgQEAKICAgICAgICAgIGptcF9saXQoZHJlcywgSWprX0JvcmluZywgZDY0KTsKICAgICAgICAgIHZhc3NlcnQoZHJlcy0+d2hhdE5leHQgPT0gRGlzX1N0b3BIZXJlKTsKICAgICAgIH0KLSAgICAgIERJUCgiam1wIDB4JWxseFxuIiwgZDY0KTsKKyAgICAgIERJUCgiam1wIDB4JWxseFxuIiwgKFVMb25nKWQ2NCk7CiAgICAgICByZXR1cm4gZGVsdGE7CiAKICAgIGNhc2UgMHhFQjogLyogSmIgKGp1bXAsIGJ5dGUgb2Zmc2V0KSAqLwpAQCAtMjA4NjcsNyArMjEzMzcsNyBAQAogICAgICAgICAgam1wX2xpdChkcmVzLCBJamtfQm9yaW5nLCBkNjQpOwogICAgICAgICAgdmFzc2VydChkcmVzLT53aGF0TmV4dCA9PSBEaXNfU3RvcEhlcmUpOwogICAgICAgfQotICAgICAgRElQKCJqbXAtOCAweCVsbHhcbiIsIGQ2NCk7CisgICAgICBESVAoImptcC04IDB4JWxseFxuIiwgKFVMb25nKWQ2NCk7CiAgICAgICByZXR1cm4gZGVsdGE7CiAKICAgIGNhc2UgMHhGNTogLyogQ01DICovCkBAIC0yMTM0Miw3ICsyMTgxMiw4IEBACiAgICAgICAgICAgICAgICAgIGd1ZXN0X1JJUF9iYnN0YXJ0K2RlbHRhLCBkNjQgKTsKICAgICAgICAgIHZhc3NlcnQoZHJlcy0+d2hhdE5leHQgPT0gRGlzX1N0b3BIZXJlKTsKICAgICAgIH0KLSAgICAgIERJUCgiaiVzLTMyIDB4JWxseCAlc1xuIiwgbmFtZV9BTUQ2NENvbmRjb2RlKG9wYyAtIDB4ODApLCBkNjQsIGNvbW1lbnQpOworICAgICAgRElQKCJqJXMtMzIgMHglbGx4ICVzXG4iLCBuYW1lX0FNRDY0Q29uZGNvZGUob3BjIC0gMHg4MCksIChVTG9uZylkNjQsCisgICAgICAgICAgY29tbWVudCk7CiAgICAgICByZXR1cm4gZGVsdGE7CiAgICB9CiAKQEAgLTIxNDQ4LDMxICsyMTkxOSwyMCBAQAogICAgICAgY29uc3QgSENoYXIqIGZOYW1lID0gTlVMTDsKICAgICAgIHZvaWQqICAgICAgICBmQWRkciA9IE5VTEw7CiAKLSAgICAgIC8qIEpSUyAyMDE0LTExLTExOiB0aGlzIGEgcmVhbGx5IGhvcnJpYmxlIHRlbXAga2x1ZGdlIHRvIHdvcmsKLSAgICAgICAgIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHRoZSBZb3NlbWl0ZSAoT1NYIDEwLjEwKQotICAgICAgICAgL3Vzci9saWIvc3lzdGVtL2xpYmR5bGQuZHlsaWIgZXhwZWN0cyBYU0FWRS9YUlNUT1IgdG8gYmUKLSAgICAgICAgIGltcGxlbWVudGVkLCBiZWNhdXNlIGFtZDY0Z19kaXJ0eWhlbHBlcl9DUFVJRF9hdnhfYW5kX2N4MTYKLSAgICAgICAgIGNsYWltcyB0aGV5IGFyZSBzdXBwb3J0ZWQsIGJ1dCBzbyBmYXIgdGhleSBhcmVuJ3QuICBTbyBjYXVzZQotICAgICAgICAgaXQgdG8gZmFsbCBiYWNrIHRvIGEgc2ltcGxlciBDUFUuICBUaGUgY2xlYW5lciBhcHByb2FjaCBvZgotICAgICAgICAgc2V0dGluZyBDUFVJRChlYXg9MSkuT1NYU0FWRT0wIGFuZCAuWFNBVkU9MCBpc24ndCBkZXNpcmFibGUKLSAgICAgICAgIHNpbmNlIGl0IHdpbGwgKHBlciB0aGUgb2ZmaWNpYWwgSW50ZWwgZ3VpZGVsaW5lcykgbGVhZCB0bwotICAgICAgICAgc29mdHdhcmUgY29uY2x1ZGluZyB0aGF0IEFWWCBpc24ndCBzdXBwb3J0ZWQuCi0KLSAgICAgICAgIFRoaXMgaXMgYWxzbyBhIGtsdWRnZSBpbiB0aGF0IHB1dHRpbmcgdGhlc2UgaWZkZWZzIGhlcmUgY2hlY2tzCi0gICAgICAgICB0aGUgYnVpbGQgKGhvc3QpIGFyY2hpdGVjdHVyZSwgd2hlbiByZWFsbHkgd2UncmUgY2hlY2tpbmcgdGhlCi0gICAgICAgICBndWVzdCBhcmNoaXRlY3R1cmUuICovCi0gICAgICBCb29sIHRoaXNfaXNfeW9zZW1pdGUgPSBGYWxzZTsKLSMgICAgIGlmIGRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikgJiYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwCi0gICAgICB0aGlzX2lzX3lvc2VtaXRlID0gVHJ1ZTsKLSMgICAgIGVuZGlmCi0KICAgICAgIGlmIChoYXZlRjJvckYzKHBmeCkpIGdvdG8gZGVjb2RlX2ZhaWx1cmU7CisKICAgICAgIC8qIFRoaXMgaXNuJ3QgZW50aXJlbHkgY29ycmVjdCwgQ1BVSUQgc2hvdWxkIGRlcGVuZCBvbiB0aGUgVkVYCiAgICAgICAgICBjYXBhYmlsaXRpZXMsIG5vdCBvbiB0aGUgdW5kZXJseWluZyBDUFUuIFNlZSBidWcgIzMyNDg4Mi4gKi8KLSAgICAgIGlmICghdGhpc19pc195b3NlbWl0ZSAmJgotICAgICAgICAgIChhcmNoaW5mby0+aHdjYXBzICYgVkVYX0hXQ0FQU19BTUQ2NF9TU0UzKSAmJgorICAgICAgaWYgKChhcmNoaW5mby0+aHdjYXBzICYgVkVYX0hXQ0FQU19BTUQ2NF9TU0UzKSAmJgogICAgICAgICAgIChhcmNoaW5mby0+aHdjYXBzICYgVkVYX0hXQ0FQU19BTUQ2NF9DWDE2KSAmJgotICAgICAgICAgIChhcmNoaW5mby0+aHdjYXBzICYgVkVYX0hXQ0FQU19BTUQ2NF9BVlgpKSB7CisgICAgICAgICAgKGFyY2hpbmZvLT5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X0FWWDIpKSB7CisgICAgICAgICBmTmFtZSA9ICJhbWQ2NGdfZGlydHloZWxwZXJfQ1BVSURfYXZ4MiI7CisgICAgICAgICBmQWRkciA9ICZhbWQ2NGdfZGlydHloZWxwZXJfQ1BVSURfYXZ4MjsKKyAgICAgICAgIC8qIFRoaXMgaXMgYSBDb3JlLWk3LTQ5MTAtbGlrZSBtYWNoaW5lICovCisgICAgICB9CisgICAgICBlbHNlIGlmICgoYXJjaGluZm8tPmh3Y2FwcyAmIFZFWF9IV0NBUFNfQU1ENjRfU1NFMykgJiYKKyAgICAgICAgICAgICAgIChhcmNoaW5mby0+aHdjYXBzICYgVkVYX0hXQ0FQU19BTUQ2NF9DWDE2KSAmJgorICAgICAgICAgICAgICAgKGFyY2hpbmZvLT5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X0FWWCkpIHsKICAgICAgICAgIGZOYW1lID0gImFtZDY0Z19kaXJ0eWhlbHBlcl9DUFVJRF9hdnhfYW5kX2N4MTYiOwogICAgICAgICAgZkFkZHIgPSAmYW1kNjRnX2RpcnR5aGVscGVyX0NQVUlEX2F2eF9hbmRfY3gxNjsKICAgICAgICAgIC8qIFRoaXMgaXMgYSBDb3JlLWk1LTIzMDAtbGlrZSBtYWNoaW5lICovCkBAIC0yMTk3NCw3ICsyMjQzNCw4IEBACiAgICAgICBmYWNpbGl0eSBpbiA2NCBiaXQgbW9kZS4gKi8KICAgIHsKICAgICAgIEJvb2wgZGVjb2RlX09LID0gRmFsc2U7Ci0gICAgICBkZWx0YSA9IGRpc19FU0NfMEZfX1NTRTIgKCAmZGVjb2RlX09LLCB2YmksIHBmeCwgc3osIGRlbHRhSU4sIGRyZXMgKTsKKyAgICAgIGRlbHRhID0gZGlzX0VTQ18wRl9fU1NFMiAoICZkZWNvZGVfT0ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoaW5mbywgdmJpLCBwZngsIHN6LCBkZWx0YUlOLCBkcmVzICk7CiAgICAgICBpZiAoZGVjb2RlX09LKQogICAgICAgICAgcmV0dXJuIGRlbHRhOwogICAgfQpAQCAtMjI4NDksOCArMjMzMTAsOCBAQAogICAgICAgVUludCByRSA9IGVyZWdPZlJleFJNKHBmeCxybSk7CiAgICAgICBhc3NpZ24oYXJnUiwgZ2V0WE1NUmVnKHJFKSk7CiAgICAgICBkZWx0YSArPSAxKzE7Ci0gICAgICBESVAoIiVzICQlZCwlcywlcywlc1xuIiwKLSAgICAgICAgICBvcG5hbWUsIChJbnQpaW1tOCwKKyAgICAgIERJUCgiJXMgJCV1LCVzLCVzLCVzXG4iLAorICAgICAgICAgIG9wbmFtZSwgaW1tOCwKICAgICAgICAgICBuYW1lWE1NUmVnKHJFKSwgbmFtZVhNTVJlZyhyViksIG5hbWVYTU1SZWcockcpKTsKICAgIH0gZWxzZSB7CiAgICAgICBhZGRyID0gZGlzQU1vZGUgKCAmYWxlbiwgdmJpLCBwZngsIGRlbHRhLCBkaXNfYnVmLCAxICk7CkBAIC0yMjg2Miw4ICsyMzMyMyw4IEBACiAgICAgICAgICAgICAgOiBzeiA9PSA4ICAgPyB1bm9wKCBJb3BfNjRVdG9WMTI4LCBsb2FkTEUoSXR5X0k2NCwgbWtleHByKGFkZHIpKSkKICAgICAgICAgICAgICA6IC8qc3o9PTQqLyAgIHVub3AoIElvcF8zMlV0b1YxMjgsIGxvYWRMRShJdHlfSTMyLCBta2V4cHIoYWRkcikpKSk7CiAgICAgICBkZWx0YSArPSBhbGVuKzE7Ci0gICAgICBESVAoIiVzICQlZCwlcywlcywlc1xuIiwKLSAgICAgICAgICBvcG5hbWUsIChJbnQpaW1tOCwgZGlzX2J1ZiwgbmFtZVhNTVJlZyhyViksIG5hbWVYTU1SZWcockcpKTsKKyAgICAgIERJUCgiJXMgJCV1LCVzLCVzLCVzXG4iLAorICAgICAgICAgIG9wbmFtZSwgaW1tOCwgZGlzX2J1ZiwgbmFtZVhNTVJlZyhyViksIG5hbWVYTU1SZWcockcpKTsKICAgIH0KIAogICAgYXNzaWduKHBsYWluLCBwcmVTd2FwID8gYmlub3Aob3AsIG1rZXhwcihhcmdSKSwgbWtleHByKGFyZ0wpKQpAQCAtMjI5NjQsOCArMjM0MjUsOCBAQAogICAgICAgVUludCByRSA9IGVyZWdPZlJleFJNKHBmeCxybSk7CiAgICAgICBhc3NpZ24oYXJnUiwgZ2V0WU1NUmVnKHJFKSk7CiAgICAgICBkZWx0YSArPSAxKzE7Ci0gICAgICBESVAoIiVzICQlZCwlcywlcywlc1xuIiwKLSAgICAgICAgICBvcG5hbWUsIChJbnQpaW1tOCwKKyAgICAgIERJUCgiJXMgJCV1LCVzLCVzLCVzXG4iLAorICAgICAgICAgIG9wbmFtZSwgaW1tOCwKICAgICAgICAgICBuYW1lWU1NUmVnKHJFKSwgbmFtZVlNTVJlZyhyViksIG5hbWVZTU1SZWcockcpKTsKICAgIH0gZWxzZSB7CiAgICAgICBhZGRyID0gZGlzQU1vZGUgKCAmYWxlbiwgdmJpLCBwZngsIGRlbHRhLCBkaXNfYnVmLCAxICk7CkBAIC0yMjk3NSw4ICsyMzQzNiw4IEBACiAgICAgICBpZiAoIW9rKSByZXR1cm4gZGVsdGFJTjsgLyogRkFJTCAqLwogICAgICAgYXNzaWduKGFyZ1IsIGxvYWRMRShJdHlfVjI1NiwgbWtleHByKGFkZHIpKSApOwogICAgICAgZGVsdGEgKz0gYWxlbisxOwotICAgICAgRElQKCIlcyAkJWQsJXMsJXMsJXNcbiIsCi0gICAgICAgICAgb3BuYW1lLCAoSW50KWltbTgsIGRpc19idWYsIG5hbWVZTU1SZWcoclYpLCBuYW1lWU1NUmVnKHJHKSk7CisgICAgICBESVAoIiVzICQldSwlcywlcywlc1xuIiwKKyAgICAgICAgICBvcG5hbWUsIGltbTgsIGRpc19idWYsIG5hbWVZTU1SZWcoclYpLCBuYW1lWU1NUmVnKHJHKSk7CiAgICB9CiAKICAgIGJyZWFrdXBWMjU2dG9WMTI4cyggcHJlU3dhcCA/IGFyZ1IgOiBhcmdMLCAmYXJnTGhpLCAmYXJnTGxvICk7CkBAIC0zMDQ0NSwxNCArMzA5MDYsMTQgQEAKICAgICAgICAgICAgIGFzc2lnbiggc1YsIGdldFhNTVJlZyhyRSkgKTsKICAgICAgICAgICAgIGltbTggPSBnZXRVQ2hhcihkZWx0YSsxKTsKICAgICAgICAgICAgIGRlbHRhICs9IDErMTsKLSAgICAgICAgICAgIERJUCgidnBhbGlnbnIgJCVkLCVzLCVzLCVzXG4iLCBpbW04LCBuYW1lWE1NUmVnKHJFKSwKKyAgICAgICAgICAgIERJUCgidnBhbGlnbnIgJCV1LCVzLCVzLCVzXG4iLCBpbW04LCBuYW1lWE1NUmVnKHJFKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lWE1NUmVnKHJWKSwgbmFtZVhNTVJlZyhyRykpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGFkZHIgPSBkaXNBTW9kZSggJmFsZW4sIHZiaSwgcGZ4LCBkZWx0YSwgZGlzX2J1ZiwgMSApOwogICAgICAgICAgICAgYXNzaWduKCBzViwgbG9hZExFKEl0eV9WMTI4LCBta2V4cHIoYWRkcikpICk7CiAgICAgICAgICAgICBpbW04ID0gZ2V0VUNoYXIoZGVsdGErYWxlbik7CiAgICAgICAgICAgICBkZWx0YSArPSBhbGVuKzE7Ci0gICAgICAgICAgICBESVAoInZwYWxpZ25yICQlZCwlcywlcywlc1xuIiwgaW1tOCwgZGlzX2J1ZiwKKyAgICAgICAgICAgIERJUCgidnBhbGlnbnIgJCV1LCVzLCVzLCVzXG4iLCBpbW04LCBkaXNfYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVYTU1SZWcoclYpLCBuYW1lWE1NUmVnKHJHKSk7CiAgICAgICAgICB9CiAKQEAgLTMwNDgwLDE0ICszMDk0MSwxNCBAQAogICAgICAgICAgICAgYXNzaWduKCBzViwgZ2V0WU1NUmVnKHJFKSApOwogICAgICAgICAgICAgaW1tOCA9IGdldFVDaGFyKGRlbHRhKzEpOwogICAgICAgICAgICAgZGVsdGEgKz0gMSsxOwotICAgICAgICAgICAgRElQKCJ2cGFsaWduciAkJWQsJXMsJXMsJXNcbiIsIGltbTgsIG5hbWVZTU1SZWcockUpLAorICAgICAgICAgICAgRElQKCJ2cGFsaWduciAkJXUsJXMsJXMsJXNcbiIsIGltbTgsIG5hbWVZTU1SZWcockUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVZTU1SZWcoclYpLCBuYW1lWU1NUmVnKHJHKSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYWRkciA9IGRpc0FNb2RlKCAmYWxlbiwgdmJpLCBwZngsIGRlbHRhLCBkaXNfYnVmLCAxICk7CiAgICAgICAgICAgICBhc3NpZ24oIHNWLCBsb2FkTEUoSXR5X1YyNTYsIG1rZXhwcihhZGRyKSkgKTsKICAgICAgICAgICAgIGltbTggPSBnZXRVQ2hhcihkZWx0YSthbGVuKTsKICAgICAgICAgICAgIGRlbHRhICs9IGFsZW4rMTsKLSAgICAgICAgICAgIERJUCgidnBhbGlnbnIgJCVkLCVzLCVzLCVzXG4iLCBpbW04LCBkaXNfYnVmLAorICAgICAgICAgICAgRElQKCJ2cGFsaWduciAkJXUsJXMsJXMsJXNcbiIsIGltbTgsIGRpc19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVlNTVJlZyhyViksIG5hbWVZTU1SZWcockcpKTsKICAgICAgICAgIH0KIApAQCAtMzE2MDksMjA2ICszMjA3MCwyMCBAQAogICAgZWxzZQogICAgICAgZ290byBkZWNvZGVfc3VjY2VzczsgLyogXG8vICovCiAKLSNpZiAwIC8qIFhZWlpZICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSAgIC8qIC0tLSBUaGUgU1NFL1NTRTIgZGVjb2Rlci4gICAgICAgICAgICAgICAgICAgICAgICAtLS0gKi8KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogV2hhdCBkaWQgSSBkbyB0byBkZXNlcnZlIFNTRSA/ICBQZXJoYXBzIEkgd2FzIHJlYWxseSBiYWQgaW4gYQotICAgICAgcHJldmlvdXMgbGlmZT8gKi8KLQotICAgLyogTm90ZSwgdGhpcyBkb2Vzbid0IGhhbmRsZSBTU0UzIHJpZ2h0IG5vdy4gIEFsbCBhbWQ2NHMgc3VwcG9ydAotICAgICAgU1NFMiBhcyBhIG1pbmltdW0gc28gdGhlcmUgaXMgbm8gcG9pbnQgZGlzdGluZ3Vpc2hpbmcgU1NFMSB2cwotICAgICAgU1NFMi4gKi8KLQotICAgaW5zbiA9ICZndWVzdF9jb2RlW2RlbHRhXTsKLQotICAgLyogRlhTQVZFIGlzIHNwdXJpb3VzbHkgYXQgdGhlIHN0YXJ0IGhlcmUgb25seSBiZWNhdXNlIGl0IGlzCi0gICAgICB0aHVzbHkgcGxhY2VkIGluIGd1ZXN0LXg4Ni90b0lSLmMuICovCi0KLSAgIC8qIC0tLS0tLSBTU0UgZGVjb2RlciBtYWluIC0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gICAvKiAtLS0gZW5kIG9mIHRoZSBTU0UgZGVjb2Rlci4gICAgICAgICAgICAgICAgICAgICAgLS0tICovCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSAgIC8qIC0tLSBzdGFydCBvZiB0aGUgU1NFMiBkZWNvZGVyLiAgICAgICAgICAgICAgICAgICAtLS0gKi8KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotICAgLyogLS0tIGVuZCBvZiB0aGUgU1NFL1NTRTIgZGVjb2Rlci4gICAgICAgICAgICAgICAgIC0tLSAqLwotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gICAvKiAtLS0gc3RhcnQgb2YgdGhlIFNTRTMgZGVjb2Rlci4gICAgICAgICAgICAgICAgICAgLS0tICovCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSAgIC8qIC0tLSBlbmQgb2YgdGhlIFNTRTMgZGVjb2Rlci4gICAgICAgICAgICAgICAgICAgICAtLS0gKi8KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotICAgLyogLS0tIHN0YXJ0IG9mIHRoZSBTU1NFMyBkZWNvZGVyLiAgICAgICAgICAgICAgICAgIC0tLSAqLwotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gICAvKiAtLS0gZW5kIG9mIHRoZSBTU1NFMyBkZWNvZGVyLiAgICAgICAgICAgICAgICAgICAgLS0tICovCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSAgIC8qIC0tLSBzdGFydCBvZiB0aGUgU1NFNCBkZWNvZGVyICAgICAgICAgICAgICAgICAgICAtLS0gKi8KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotICAgLyogLS0tIGVuZCBvZiB0aGUgU1NFNCBkZWNvZGVyICAgICAgICAgICAgICAgICAgICAgIC0tLSAqLwotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0gICAvKmFmdGVyX3NzZV9kZWNvZGVyczoqLwotCi0gICAvKiBHZXQgdGhlIHByaW1hcnkgb3Bjb2RlLiAqLwotICAgb3BjID0gZ2V0VUNoYXIoZGVsdGEpOyBkZWx0YSsrOwotCi0gICAvKiBXZSBnZXQgaGVyZSBpZiB0aGUgY3VycmVudCBpbnNuIGlzbid0IFNTRSwgb3IgdGhpcyBDUFUgZG9lc24ndAotICAgICAgc3VwcG9ydCBTU0UuICovCi0KLSAgIHN3aXRjaCAob3BjKSB7Ci0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb250cm9sIGZsb3cgLS0tLS0tLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDV0QvQ0RRIC0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGUFUgb3BzIC0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJTlQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLSAgIGNhc2UgMHhDRDogeyAvKiBJTlQgaW1tOCAqLwotICAgICAgSVJKdW1wS2luZCBqayA9IElqa19Cb3Jpbmc7Ci0gICAgICBpZiAoaGF2ZTY2b3JGMm9yRjMocGZ4KSkgZ290byBkZWNvZGVfZmFpbHVyZTsKLSAgICAgIGQ2NCA9IGdldFVDaGFyKGRlbHRhKTsgZGVsdGErKzsKLSAgICAgIHN3aXRjaCAoZDY0KSB7Ci0gICAgICAgICBjYXNlIDMyOiBqayA9IElqa19TeXNfaW50MzI7IGJyZWFrOwotICAgICAgICAgZGVmYXVsdDogZ290byBkZWNvZGVfZmFpbHVyZTsKLSAgICAgIH0KLSAgICAgIGd1ZXN0X1JJUF9uZXh0X211c3RjaGVjayA9IFRydWU7Ci0gICAgICBndWVzdF9SSVBfbmV4dF9hc3N1bWVkID0gZ3Vlc3RfUklQX2Jic3RhcnQgKyBkZWx0YTsKLSAgICAgIGptcF9saXQoamssIGd1ZXN0X1JJUF9uZXh0X2Fzc3VtZWQpOwotICAgICAgLyogSXQncyBpbXBvcnRhbnQgdGhhdCBhbGwgQXJjaFJlZ3MgY2FycnkgdGhlaXIgdXAtdG8tZGF0ZSB2YWx1ZQotICAgICAgICAgYXQgdGhpcyBwb2ludC4gIFNvIHdlIGRlY2xhcmUgYW4gZW5kLW9mLWJsb2NrIGhlcmUsIHdoaWNoCi0gICAgICAgICBmb3JjZXMgYW55IFRlbXBSZWdzIGNhY2hpbmcgQXJjaFJlZ3MgdG8gYmUgZmx1c2hlZC4gKi8KLSAgICAgIHZhc3NlcnQoZHJlcy53aGF0TmV4dCA9PSBEaXNfU3RvcEhlcmUpOwotICAgICAgRElQKCJpbnQgJDB4JTAyeFxuIiwgKFVJbnQpZDY0KTsKLSAgICAgIGJyZWFrOwotICAgfQotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSmNvbmQsIGJ5dGUgb2Zmc2V0IC0tLS0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSU1VTCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTU9WIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTU9WeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIG9wbCBpbW0sIEEgLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIG9wbCBFdiwgR3YgLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIG9wbCBHdiwgRXYgLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBPUCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBVU0ggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotICAgLyogLS0tLS0tIEFFOiBTQ0FTIHZhcmlhbnRzIC0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0gQTYsIEE3OiBDTVBTIHZhcmlhbnRzIC0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0gQUEsIEFCOiBTVE9TIHZhcmlhbnRzIC0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0gQTQsIEE1OiBNT1ZTIHZhcmlhbnRzIC0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gWENIRyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSU4gLyBPVVQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSAKLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAoR3JwMSBleHRlbnNpb25zKSAtLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAoR3JwMiBleHRlbnNpb25zKSAtLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAoR3JwMyBleHRlbnNpb25zKSAtLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAoR3JwNCBleHRlbnNpb25zKSAtLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAoR3JwNSBleHRlbnNpb25zKSAtLS0tLS0tLS0tICovCi0KLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFc2NhcGVzIHRvIDItYnl0ZSBvcGNvZGVzIC0tICovCi0KLSAgIGNhc2UgMHgwRjogewotICAgICAgb3BjID0gZ2V0VUNoYXIoZGVsdGEpOyBkZWx0YSsrOwotICAgICAgc3dpdGNoIChvcGMpIHsKLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIEdycDggPS09LT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIEJTRi9CU1IgLT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIEJTV0FQIC09LT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIEJUL0JUUy9CVFIvQlRDID0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIENNT1YgPS09LT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIENNUFhDSEcgLT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIENQVUlEIC09LT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIE1PVlpYLCBNT1ZTWCA9LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIE1VTC9JTVVMID0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIE5PUHMgPS09LT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIEpjb25kIGQzMiAtPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIFBSRUZFVENIID0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIFJEVFNDIC09LT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIFNFVGNjIEViID0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIFNITEQvU0hSRCAtPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIFNZU0NBTEwgLT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIFhBREQgLT0tPS09LT0tPS09LT0tPS09LT0gKi8KLQotICAgICAgLyogPS09LT0tPS09LT0tPS09LT0tIFNHRFQgYW5kIFNJRFQgPS09LT0tPS09LT0tPS09LT0tPS09ICovCi0KLSAgICAgIC8qID0tPS09LT0tPS09LT0tPS09LSB1bmltcDIgPS09LT0tPS09LT0tPS09LT0tPS09ICovCi0KLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICBnb3RvIGRlY29kZV9mYWlsdXJlOwotICAgfSAvKiBzd2l0Y2ggKG9wYykgZm9yIHRoZSAyLWJ5dGUgb3Bjb2RlcyAqLwotICAgZ290byBkZWNvZGVfc3VjY2VzczsKLSAgIH0gLyogY2FzZSAweDBGOiBvZiBwcmltYXJ5IG9wY29kZSAqLwogCi0gICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gPz8/IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotI2VuZGlmIC8qIFhZWlpZICovCi0gIAotICAgICAvL2RlZmF1bHQ6CiAgIGRlY29kZV9mYWlsdXJlOgogICAgLyogQWxsIGRlY29kZSBmYWlsdXJlcyBlbmQgdXAgaGVyZS4gKi8KICAgIGlmIChzaWdpbGxfZGlhZykgewogICAgICAgdmV4X3ByaW50ZigidmV4IGFtZDY0LT5JUjogdW5oYW5kbGVkIGluc3RydWN0aW9uIGJ5dGVzOiAiCiAgICAgICAgICAgICAgICAgICIweCV4IDB4JXggMHgleCAweCV4IDB4JXggMHgleCAweCV4IDB4JXhcbiIsCi0gICAgICAgICAgICAgICAgIChJbnQpZ2V0VUNoYXIoZGVsdGFfc3RhcnQrMCksCi0gICAgICAgICAgICAgICAgIChJbnQpZ2V0VUNoYXIoZGVsdGFfc3RhcnQrMSksCi0gICAgICAgICAgICAgICAgIChJbnQpZ2V0VUNoYXIoZGVsdGFfc3RhcnQrMiksCi0gICAgICAgICAgICAgICAgIChJbnQpZ2V0VUNoYXIoZGVsdGFfc3RhcnQrMyksCi0gICAgICAgICAgICAgICAgIChJbnQpZ2V0VUNoYXIoZGVsdGFfc3RhcnQrNCksCi0gICAgICAgICAgICAgICAgIChJbnQpZ2V0VUNoYXIoZGVsdGFfc3RhcnQrNSksCi0gICAgICAgICAgICAgICAgIChJbnQpZ2V0VUNoYXIoZGVsdGFfc3RhcnQrNiksCi0gICAgICAgICAgICAgICAgIChJbnQpZ2V0VUNoYXIoZGVsdGFfc3RhcnQrNykgKTsKKyAgICAgICAgICAgICAgICAgZ2V0VUNoYXIoZGVsdGFfc3RhcnQrMCksCisgICAgICAgICAgICAgICAgIGdldFVDaGFyKGRlbHRhX3N0YXJ0KzEpLAorICAgICAgICAgICAgICAgICBnZXRVQ2hhcihkZWx0YV9zdGFydCsyKSwKKyAgICAgICAgICAgICAgICAgZ2V0VUNoYXIoZGVsdGFfc3RhcnQrMyksCisgICAgICAgICAgICAgICAgIGdldFVDaGFyKGRlbHRhX3N0YXJ0KzQpLAorICAgICAgICAgICAgICAgICBnZXRVQ2hhcihkZWx0YV9zdGFydCs1KSwKKyAgICAgICAgICAgICAgICAgZ2V0VUNoYXIoZGVsdGFfc3RhcnQrNiksCisgICAgICAgICAgICAgICAgIGdldFVDaGFyKGRlbHRhX3N0YXJ0KzcpICk7CiAgICAgICB2ZXhfcHJpbnRmKCJ2ZXggYW1kNjQtPklSOiAgIFJFWD0lZCBSRVguVz0lZCBSRVguUj0lZCBSRVguWD0lZCBSRVguQj0lZFxuIiwKICAgICAgICAgICAgICAgICAgaGF2ZVJFWChwZngpID8gMSA6IDAsIGdldFJleFcocGZ4KSwgZ2V0UmV4UihwZngpLAogICAgICAgICAgICAgICAgICBnZXRSZXhYKHBmeCksIGdldFJleEIocGZ4KSk7CkBAIC0zMTg0MSw3ICszMjExNiw2IEBACiAgICAqZXhwZWN0X0NBUyA9IEZhbHNlOwogICAgcmV0dXJuIGRyZXM7CiAKLSAgIC8vICAgfSAvKiBzd2l0Y2ggKG9wYykgZm9yIHRoZSBtYWluIChwcmltYXJ5KSBvcGNvZGUgc3dpdGNoLiAqLwogCiAgIGRlY29kZV9zdWNjZXNzOgogICAgLyogQWxsIGRlY29kZSBzdWNjZXNzZXMgZW5kIHVwIGhlcmUuICovCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ndWVzdF9hcm02NF9kZWZzLmggYi9WRVgvcHJpdi9ndWVzdF9hcm02NF9kZWZzLmgKaW5kZXggYTM0MzFmMC4uMGQ4YjgzYiAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfYXJtNjRfZGVmcy5oCisrKyBiL1ZFWC9wcml2L2d1ZXN0X2FybTY0X2RlZnMuaApAQCAtNiw3ICs2LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxMyBPcGVuV29ya3MKKyAgIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IE9wZW5Xb3JrcwogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ndWVzdF9hcm02NF9oZWxwZXJzLmMgYi9WRVgvcHJpdi9ndWVzdF9hcm02NF9oZWxwZXJzLmMKaW5kZXggZThkZGE2NC4uMGNmODA0NiAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfYXJtNjRfaGVscGVycy5jCisrKyBiL1ZFWC9wcml2L2d1ZXN0X2FybTY0X2hlbHBlcnMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxMyBPcGVuV29ya3MKKyAgIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IE9wZW5Xb3JrcwogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ndWVzdF9hcm02NF90b0lSLmMgYi9WRVgvcHJpdi9ndWVzdF9hcm02NF90b0lSLmMKaW5kZXggMTRjMjdmMS4uOGRhOTc4MCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfYXJtNjRfdG9JUi5jCisrKyBiL1ZFWC9wcml2L2d1ZXN0X2FybTY0X3RvSVIuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxMyBPcGVuV29ya3MKKyAgIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IE9wZW5Xb3JrcwogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01MTQxLDcgKzUxNDEsNyBAQAogICAgICAgICAgICAgdmFzc2VydCgwKTsKICAgICAgICAgIH0KICAgICAgICAgIHB1dElSZWc2NG9yU1Aobm4sIG1rZXhwcih0RUEpKTsKLSAgICAgICAgIERJUChhdFJOID8gImxkcnMlYyAlcywgWyVzXSwgIyVsbGRcbiIgOiAibGRycyVjICVzLCBbJXMsICMlbGxkXSEiLAorICAgICAgICAgRElQKGF0Uk4gPyAibGRycyVjICVzLCBbJXNdLCAjJWxsdVxuIiA6ICJsZHJzJWMgJXMsIFslcywgIyVsbHVdISIsCiAgICAgICAgICAgICAgY2gsIG5hbWVJUmVnT3JaUihpczY0LCB0dCksIG5hbWVJUmVnNjRvclNQKG5uKSwgc2ltbTkpOwogICAgICAgICAgcmV0dXJuIFRydWU7CiAgICAgICB9CkBAIC01MjE2LDcgKzUyMTYsNyBAQAogICAgICAgICAgICAgdmFzc2VydCgwKTsKICAgICAgICAgIH0KICAgICAgICAgIERJUCgibGR1cnMlYyAlcywgWyVzLCAjJWxsZF0iLAotICAgICAgICAgICAgIGNoLCBuYW1lSVJlZ09yWlIoaXM2NCwgdHQpLCBuYW1lSVJlZzY0b3JTUChubiksIHNpbW05KTsKKyAgICAgICAgICAgICBjaCwgbmFtZUlSZWdPclpSKGlzNjQsIHR0KSwgbmFtZUlSZWc2NG9yU1Aobm4pLCAoTG9uZylzaW1tOSk7CiAgICAgICAgICByZXR1cm4gVHJ1ZTsKICAgICAgIH0KICAgICAgIC8qIGVsc2UgZmFsbCB0aHJvdWdoICovCkBAIC01NTc1LDcgKzU1NzUsNyBAQAogICAgICAgcHV0SVJlZzY0b3JTUChubiwgbWtleHByKHRFQSkpOwogICAgICAgRElQKGF0Uk4gPyAiJXMgJXMsIFslc10sICMlbGxkXG4iIDogIiVzICVzLCBbJXMsICMlbGxkXSFcbiIsCiAgICAgICAgICAgaXNMRCA/ICJsZHIiIDogInN0ciIsCi0gICAgICAgICAgbmFtZVFSZWdMTyh0dCwgdHkpLCBuYW1lSVJlZzY0b3JTUChubiksIHNpbW05KTsKKyAgICAgICAgICBuYW1lUVJlZ0xPKHR0LCB0eSksIG5hbWVJUmVnNjRvclNQKG5uKSwgKExvbmcpc2ltbTkpOwogICAgICAgcmV0dXJuIFRydWU7CiAgICB9CiAKQEAgLTY0MTEsNiArNjQxMSwyMiBAQAogICAgICAgcmV0dXJuIFRydWU7CiAgICB9CiAKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLSBQUkZNIChyZWdpc3RlcikgLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiAzMSAyOSAgICAgIDIyIDIwIDE1ICAxMiAxMSA5ICA0CisgICAgICAxMSAxMTEwMDAxIDAxIFJtIG9wdCBTICAxMCBSbiBSdCAgICBQUkZNIHBmcm9wPVJ0LCBbWG58U1AsIFI8bT57ZXh0L3NofV0KKyAgICovCisgICBpZiAoSU5TTigzMSwyMSkgPT0gQklUUzExKDEsMSwxLDEsMSwwLDAsMCwxLDAsMSkKKyAgICAgICAmJiBJTlNOKDExLDEwKSA9PSBCSVRTMigxLDApKSB7CisgICAgICBIQ2hhciAgZGlzX2J1Zls2NF07CisgICAgICBVSW50ICAgdHQgPSBJTlNOKDQsMCk7CisgICAgICBJUlRlbXAgZWEgPSBnZW5faW5kZXhlZF9FQShkaXNfYnVmLCBpbnNuLCBUcnVlLyp0by9mcm9tIGludCByZWdzKi8pOworICAgICAgaWYgKGVhICE9IElSVGVtcF9JTlZBTElEKSB7CisgICAgICAgICAvKiBObyBhY3R1YWwgY29kZSB0byBnZW5lcmF0ZS4gKi8KKyAgICAgICAgIERJUCgicHJmbSBwcmZvcD0ldSwgJXNcbiIsIHR0LCBkaXNfYnVmKTsKKyAgICAgICAgIHJldHVybiBUcnVlOworICAgICAgfQorICAgfQorCiAgICB2ZXhfcHJpbnRmKCJBUk02NCBmcm9udCBlbmQ6IGxvYWRfc3RvcmVcbiIpOwogICAgcmV0dXJuIEZhbHNlOwogIyAgdW5kZWYgSU5TTgpAQCAtNjg0Myw2ICs2ODU5LDE5IEBACiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0KIAorICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLSBZSUVMRCAtLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiAzMSAgICAgICAgMjMgICAgICAgIDE1ICAgICAgICA3CisgICAgICAxMTAxIDAxMDEgMDAwMCAwMDExIDAwMTAgMDAwMCAwMDExIDExMTEKKyAgICovCisgICBpZiAoSU5TTigzMSwwKSA9PSAweEQ1MDMyMDNGKSB7CisgICAgICAvKiBSZXF1ZXN0IHlpZWxkIGZvbGxvd2VkIGJ5IGNvbnRpbnVhdGlvbiBhdCB0aGUgbmV4dCBpbnNuLiAqLworICAgICAgcHV0UEMobWtVNjQoZ3Vlc3RfUENfY3Vycl9pbnN0ciArIDQpKTsKKyAgICAgIGRyZXMtPndoYXROZXh0ICAgID0gRGlzX1N0b3BIZXJlOworICAgICAgZHJlcy0+amtfU3RvcEhlcmUgPSBJamtfWWllbGQ7CisgICAgICBESVAoInlpZWxkXG4iKTsKKyAgICAgIHJldHVybiBUcnVlOworICAgfQorCiAgIC8vZmFpbDoKICAgIHZleF9wcmludGYoIkFSTTY0IGZyb250IGVuZDogYnJhbmNoX2V0Y1xuIik7CiAgICByZXR1cm4gRmFsc2U7CkBAIC04Mjc1LDcgKzgzMDQsNyBAQAogICAgICAgcHV0UVJlZzEyOChkZCwgbWF0aF9NQVlCRV9aRVJPX0hJNjQoYml0USwgcmVzKSk7CiAgICAgICBjb25zdCBIQ2hhciogVGEgPSBiaXRRID09MSA/ICIxNmIiIDogIjhiIjsKICAgICAgIGNvbnN0IEhDaGFyKiBubSA9IGlzVEJYID8gInRieCIgOiAidGJsIjsKLSAgICAgIERJUCgiJXMgJXMuJXMsIHt2JWQuMTZiIC4uIHYlZC4xNmJ9LCAlcy4lc1xuIiwKKyAgICAgIERJUCgiJXMgJXMuJXMsIHt2JXUuMTZiIC4uIHYldS4xNmJ9LCAlcy4lc1xuIiwKICAgICAgICAgICBubSwgbmFtZVFSZWcxMjgoZGQpLCBUYSwgbm4sIChubiArIGxlbikgJSAzMiwgbmFtZVFSZWcxMjgobW0pLCBUYSk7CiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0KQEAgLTk0OTUsNyArOTUyNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChrcyA9PSAxID8gInNxZG1sYWwiIDogInNxZG1sc2wiKTsKICAgICAgIGNvbnN0IEhDaGFyICBhcnJOYXJyb3cgPSAiYmhzZCJbc2l6ZV07CiAgICAgICBjb25zdCBIQ2hhciAgYXJyV2lkZSAgID0gImJoc2QiW3NpemUrMV07Ci0gICAgICBESVAoIiVzICVjJWQsICVjJWQsICVjJWRcbiIsCisgICAgICBESVAoIiVzICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgbm0sIGFycldpZGUsIGRkLCBhcnJOYXJyb3csIG5uLCBhcnJOYXJyb3csIG1tKTsKICAgICAgIHJldHVybiBUcnVlOwogICAgfQpAQCAtOTcwNSw3ICs5NzM0LDcgQEAKICAgICAgICAgIG1hdGhfWkVST19BTExfRVhDRVBUX0xPV0VTVF9MQU5FKHNpemUsIG1rZXhwcihzYXQxbikpKTsKICAgICAgIGNvbnN0IEhDaGFyICBhcnIgPSAiYmhzZCJbc2l6ZV07CiAgICAgICBjb25zdCBIQ2hhciogbm0gID0gaXNSID8gInNxcmRtdWxoIiA6ICJzcWRtdWxoIjsKLSAgICAgIERJUCgiJXMgJWMlZCwgJWMlZCwgJWMlZFxuIiwgbm0sIGFyciwgZGQsIGFyciwgbm4sIGFyciwgbW0pOworICAgICAgRElQKCIlcyAlYyV1LCAlYyV1LCAlYyV1XG4iLCBubSwgYXJyLCBkZCwgYXJyLCBubiwgYXJyLCBtbSk7CiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0KIApAQCAtMTAyNjcsNyArMTAyOTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoa3MgPT0gMSA/ICJzcWRtbGFsIiA6ICJzcWRtbHNsIik7CiAgICAgICBjb25zdCBIQ2hhciAgYXJyTmFycm93ID0gImJoc2QiW3NpemVdOwogICAgICAgY29uc3QgSENoYXIgIGFycldpZGUgICA9ICJiaHNkIltzaXplKzFdOwotICAgICAgRElQKCIlcyAlYyVkLCAlYyVkLCB2JWQuJWNbJXVdXG4iLAorICAgICAgRElQKCIlcyAlYyV1LCAlYyV1LCB2JXUuJWNbJXVdXG4iLAogICAgICAgICAgIG5tLCBhcnJXaWRlLCBkZCwgYXJyTmFycm93LCBubiwgZGQsIGFyck5hcnJvdywgaXgpOwogICAgICAgcmV0dXJuIFRydWU7CiAgICB9CkBAIC0xMDMwMiw3ICsxMDMzMSw3IEBACiAgICAgICB1cGRhdGVRQ0ZMQUd3aXRoRGlmZmVyZW5jZVpISShzYXQxcSwgc2F0MW4sIG9wWkhJKTsKICAgICAgIGNvbnN0IEhDaGFyKiBubSAgPSBpc1IgPyAic3FyZG11bGgiIDogInNxZG11bGgiOwogICAgICAgSENoYXIgY2ggICAgICAgICA9IHNpemUgPT0gWDAxID8gJ2gnIDogJ3MnOwotICAgICAgRElQKCIlcyAlYyVkLCAlYyVkLCB2JWQuJWNbJXVdXG4iLCBubSwgY2gsIGRkLCBjaCwgbm4sIGNoLCBkZCwgaXgpOworICAgICAgRElQKCIlcyAlYyV1LCAlYyV1LCB2JWQuJWNbJXVdXG4iLCBubSwgY2gsIGRkLCBjaCwgbm4sIGNoLCAoSW50KWRkLCBpeCk7CiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0KIApAQCAtMTA2OTgsNyArMTA3MjcsNyBAQAogICAgICAgLyogKi8KICAgICAgIGlmIChyZXMpIHsKICAgICAgICAgIHB1dFFSZWcxMjgoZGQsIHJlcyk7Ci0gICAgICAgICBESVAoIiVjc2hsbCVzICVzLiVzLCAlcy4lcywgIyVkXG4iLAorICAgICAgICAgRElQKCIlY3NobGwlcyAlcy4lcywgJXMuJXMsICMldVxuIiwKICAgICAgICAgICAgICBpc1UgPyAndScgOiAncycsIGlzUSA/ICIyIiA6ICIiLAogICAgICAgICAgICAgIG5hbWVRUmVnMTI4KGRkKSwgdGEsIG5hbWVRUmVnMTI4KG5uKSwgdGIsIHNoKTsKICAgICAgICAgIHJldHVybiBUcnVlOwpAQCAtMTIxNjgsNyArMTIxOTcsNyBAQAogICAgICAgcHV0UVJlZzEyOChkZCwgbWtleHByKHJlcykpOwogICAgICAgY29uc3QgSENoYXIqIGFyck5hcnJvdyA9IG5hbWVBcnJfUV9TWihiaXRRLCBzaXplKTsKICAgICAgIGNvbnN0IEhDaGFyKiBhcnJXaWRlICAgPSBuYW1lQXJyX1FfU1ooMSwgICAgc2l6ZSsxKTsKLSAgICAgIERJUCgic2hsbCVzICVzLiVzLCAlcy4lcywgIyV1XG4iLCBpczIgPyAiMiIgOiAiIiwgCisgICAgICBESVAoInNobGwlcyAlcy4lcywgJXMuJXMsICMlZFxuIiwgaXMyID8gIjIiIDogIiIsIAogICAgICAgICAgIG5hbWVRUmVnMTI4KGRkKSwgYXJyV2lkZSwgbmFtZVFSZWcxMjgobm4pLCBhcnJOYXJyb3csIDggPDwgc2l6ZSk7CiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0KZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X2FybV9kZWZzLmggYi9WRVgvcHJpdi9ndWVzdF9hcm1fZGVmcy5oCmluZGV4IGI1YjAxMmIuLmE5NzI2NWUgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2d1ZXN0X2FybV9kZWZzLmgKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfYXJtX2RlZnMuaApAQCAtNiw3ICs2LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X2FybV9oZWxwZXJzLmMgYi9WRVgvcHJpdi9ndWVzdF9hcm1faGVscGVycy5jCmluZGV4IGEwN2VlZWIuLjkyYjk2Y2YgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2d1ZXN0X2FybV9oZWxwZXJzLmMKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfYXJtX2hlbHBlcnMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X2FybV90b0lSLmMgYi9WRVgvcHJpdi9ndWVzdF9hcm1fdG9JUi5jCmluZGV4IDljNjhlNGUuLjU0Y2NkMDcgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2d1ZXN0X2FybV90b0lSLmMKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfYXJtX3RvSVIuYwpAQCAtNywxMSArNywxMSBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgTkVPTiBzdXBwb3J0IGlzCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzCisgICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgICBjb250cmlidXRlZCBieSBEbWl0cnkgWmh1cmlraGluIDx6aHVyQGlzcHJhcy5ydT4KICAgICAgICAgICAgICAgYW5kIEtpcmlsbCBCYXR1em92IDxiYXR1em92a0Bpc3ByYXMucnU+CiAKQEAgLTk4Nyw3ICs5ODcsNyBAQAogICAgICAgICAgICAgbG93Yml0c190b19pZ25vcmUgPT0gMzEgKTsKICAgIElSVGVtcCBtYXNrZWQgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgYXNzaWduKG1hc2tlZCwgYmlub3AoSW9wX1NocjMyLCBlLCBta1U4KGxvd2JpdHNfdG9faWdub3JlKSkpOwotIAorCiAgICBzd2l0Y2ggKGZsYWdObykgewogICAgICAgY2FzZSAwOiBwdXRNaXNjUmVnMzIoT0ZGQl9HRUZMQUcwLCBta2V4cHIobWFza2VkKSwgY29uZFQpOyBicmVhazsKICAgICAgIGNhc2UgMTogcHV0TWlzY1JlZzMyKE9GRkJfR0VGTEFHMSwgbWtleHByKG1hc2tlZCksIGNvbmRUKTsgYnJlYWs7CkBAIC0yODcwLDcgKzI4NzAsNyBAQAogICAgICAgcHV0RFJlZ0k2NChkcmVnLCB0cmlvcChJb3BfU2xpY2U2NCwgLypoaUk2NCovZ2V0RFJlZ0k2NChtcmVnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypsb0k2NCovZ2V0RFJlZ0k2NChucmVnKSwgbWtVOChpbW00KSksIGNvbmRUKTsKICAgIH0KLSAgIERJUCgidmV4dC44ICVjJWQsICVjJWQsICVjJWQsICMlZFxuIiwgcmVnX3QsIGRyZWcsIHJlZ190LCBucmVnLAorICAgRElQKCJ2ZXh0LjggJWMldSwgJWMldSwgJWMldSwgIyV1XG4iLCByZWdfdCwgZHJlZywgcmVnX3QsIG5yZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ190LCBtcmVnLCBpbW00KTsKICAgIHJldHVybiBUcnVlOwogfQpAQCAtMzAzMCw3ICszMDMwLDcgQEAKICAgIH0gZWxzZSB7CiAgICAgICBwdXREUmVnSTY0KGRyZWcsIG1rZXhwcihyZXMpLCBjb25kVCk7CiAgICB9Ci0gICBESVAoInZkdXAuJWQgJWMlZCwgZCVkWyVkXVxuIiwgc2l6ZSwgUSA/ICdxJyA6ICdkJywgZHJlZywgbXJlZywgaW5kZXgpOworICAgRElQKCJ2ZHVwLiV1ICVjJXUsIGQldVsldV1cbiIsIHNpemUsIFEgPyAncScgOiAnZCcsIGRyZWcsIG1yZWcsIGluZGV4KTsKICAgIHJldHVybiBUcnVlOwogfQogCkBAIC0zMTM3LDcgKzMxMzcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKGFuZE9wLCBta2V4cHIoYXJnX20pLCBpbW1fdmFsKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChhbmRPcCwgbWtleHByKGFyZ19uKSwgaW1tX3ZhbCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTgoMSkpKSk7Ci0gICAgICAgICAgICBESVAoInZoYWRkLiVjJWQgJWMlZCwgJWMlZCwgJWMlZFxuIiwKKyAgICAgICAgICAgIERJUCgidmhhZGQuJWMlZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwgcmVnVHlwZSwKICAgICAgICAgICAgICAgICBkcmVnLCByZWdUeXBlLCBucmVnLCByZWdUeXBlLCBtcmVnKTsKICAgICAgICAgIH0gZWxzZSB7CkBAIC0zMTk2LDcgKzMxOTYsNyBAQAogICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3Aob3AsIG1rZXhwcihhcmdfbiksIG1rZXhwcihhcmdfbSkpKTsKICAgICAgICAgICAgIGFzc2lnbih0bXAsIGJpbm9wKG9wMiwgbWtleHByKGFyZ19uKSwgbWtleHByKGFyZ19tKSkpOwogICAgICAgICAgICAgc2V0RmxhZ19RQyhta2V4cHIocmVzKSwgbWtleHByKHRtcCksIFEsIGNvbmRUKTsKLSAgICAgICAgICAgIERJUCgidnFhZGQuJWMlZCAlYyVkLCAlYyVkLCAlYyVkXG4iLAorICAgICAgICAgICAgRElQKCJ2cWFkZC4lYyVkICVjJXUgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICBVID8gJ3UnIDogJ3MnLAogICAgICAgICAgICAgICAgIDggPDwgc2l6ZSwgcmVnX3QsIGRyZWcsIHJlZ190LCBucmVnLCByZWdfdCwgbXJlZyk7CiAgICAgICAgICB9CkBAIC0zMzA3LDcgKzMzMDcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVOCgxKSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKGNjKSkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRElQKCJ2cmhhZGQuJWMlZCAlYyVkLCAlYyVkLCAlYyVkXG4iLAorICAgICAgICAgICAgRElQKCJ2cmhhZGQuJWMlZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgIFUgPyAndScgOiAncycsCiAgICAgICAgICAgICAgICAgOCA8PCBzaXplLCByZWdfdCwgZHJlZywgcmVnX3QsIG5yZWcsIHJlZ190LCBtcmVnKTsKICAgICAgICAgIH0gZWxzZSB7CkBAIC0zMzIzLDcgKzMzMjMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3AoSW9wX0FuZDY0LCBta2V4cHIoYXJnX24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoYXJnX20pKSk7CiAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBESVAoInZhbmQgJWMlZCwgJWMlZCwgJWMlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgIERJUCgidmFuZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ190LCBkcmVnLCByZWdfdCwgbnJlZywgcmVnX3QsIG1yZWcpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CkBAIC0zMzM3LDcgKzMzMzcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3AoSW9wX0FuZDY0LCBta2V4cHIoYXJnX24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoSW9wX05vdDY0LCBta2V4cHIoYXJnX20pKSkpOwogICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgRElQKCJ2YmljICVjJWQsICVjJWQsICVjJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICBESVAoInZiaWMgJWMldSwgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICByZWdfdCwgZHJlZywgcmVnX3QsIG5yZWcsIHJlZ190LCBtcmVnKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQpAQCAtMzM1MiwxMyArMzM1MiwxMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3AoSW9wX09yNjQsIG1rZXhwcihhcmdfbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKGFyZ19tKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgRElQKCJ2b3JyICVjJWQsICVjJWQsICVjJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBESVAoInZvcnIgJWMldSwgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdfdCwgZHJlZywgcmVnX3QsIG5yZWcsIHJlZ190LCBtcmVnKTsKICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBWTU9WICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgSENoYXIgcmVnX3QgPSBRID8gJ3EnIDogJ2QnOwogICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduKHJlcywgbWtleHByKGFyZ19tKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBESVAoInZtb3YgJWMlZCwgJWMlZFxuIiwgcmVnX3QsIGRyZWcsIHJlZ190LCBtcmVnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIERJUCgidm1vdiAlYyV1LCAlYyV1XG4iLCByZWdfdCwgZHJlZywgcmVnX3QsIG1yZWcpOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICBjYXNlIDM6ewpAQCAtMzM3MSw3ICszMzcxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbihyZXMsIGJpbm9wKElvcF9PcjY0LCBta2V4cHIoYXJnX24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoSW9wX05vdDY0LCBta2V4cHIoYXJnX20pKSkpOwogICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgRElQKCJ2b3JuICVjJWQsICVjJWQsICVjJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICBESVAoInZvcm4gJWMldSwgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICByZWdfdCwgZHJlZywgcmVnX3QsIG5yZWcsIHJlZ190LCBtcmVnKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQpAQCAtMzU0OCw3ICszNTQ4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKG5vdE9wLCBta2V4cHIoYXJnX24pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoYXJnX20pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1fdmFsKSkpOwotICAgICAgICAgICAgRElQKCJ2aHN1Yi4lYyV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICBESVAoInZoc3ViLiVjJWQgJWMldSwgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbnJlZywgUSA/ICdxJyA6ICdkJywKICAgICAgICAgICAgICAgICBtcmVnKTsKQEAgLTM2MDYsNyArMzYwNiw3IEBACiAgICAgICAgICAgICBhc3NpZ24ocmVzLCBiaW5vcChvcCwgbWtleHByKGFyZ19uKSwgbWtleHByKGFyZ19tKSkpOwogICAgICAgICAgICAgYXNzaWduKHRtcCwgYmlub3Aob3AyLCBta2V4cHIoYXJnX24pLCBta2V4cHIoYXJnX20pKSk7CiAgICAgICAgICAgICBzZXRGbGFnX1FDKG1rZXhwcihyZXMpLCBta2V4cHIodG1wKSwgUSwgY29uZFQpOwotICAgICAgICAgICAgRElQKCJ2cXN1Yi4lYyV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICBESVAoInZxc3ViLiVjJWQgJWMldSwgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbnJlZywgUSA/ICdxJyA6ICdkJywKICAgICAgICAgICAgICAgICBtcmVnKTsKQEAgLTM2MzQsNyArMzYzNCw3IEBACiAgICAgICAgICAgICBpZiAoQiA9PSAwKSB7CiAgICAgICAgICAgICAgICAvKiBWQ0dUICAqLwogICAgICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3Aob3AsIG1rZXhwcihhcmdfbiksIG1rZXhwcihhcmdfbSkpKTsKLSAgICAgICAgICAgICAgIERJUCgidmNndC4lYyV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICAgICBESVAoInZjZ3QuJWMlZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgICAgIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBucmVnLCBRID8gJ3EnIDogJ2QnLAogICAgICAgICAgICAgICAgICAgIG1yZWcpOwpAQCAtMzY0Nyw3ICszNjQ3LDcgQEAKICAgICAgICAgICAgICAgIGFzc2lnbihyZXMsCiAgICAgICAgICAgICAgICAgICAgICAgdW5vcChRID8gSW9wX05vdFYxMjggOiBJb3BfTm90NjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChvcCwgbWtleHByKGFyZ19tKSwgbWtleHByKGFyZ19uKSkpKTsKLSAgICAgICAgICAgICAgIERJUCgidmNnZS4lYyV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICAgICBESVAoInZjZ2UuJWMlZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgICAgIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBucmVnLCBRID8gJ3EnIDogJ2QnLAogICAgICAgICAgICAgICAgICAgIG1yZWcpOwpAQCAtMzcwOSw3ICszNzA5LDcgQEAKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgIGFzc2lnbihyZXMsIGJpbm9wKG9wLCBta2V4cHIoYXJnX20pLCBta2V4cHIodG1wKSkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRElQKCJ2c2hsLiVjJXUgJWMldSwgJWMldSwgJWMldVxuIiwKKyAgICAgICAgICAgIERJUCgidnNobC4lYyVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG1yZWcsIFEgPyAncScgOiAnZCcsCiAgICAgICAgICAgICAgICAgbnJlZyk7CkBAIC0zODMzLDcgKzM4MzMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChRID8gSW9wX0FuZFYxMjggOiBJb3BfQW5kNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwcihhcmdfbSksIG1rZXhwcihtYXNrKSksCiAgICAgICAgICAgICAgICAgICAgICAgIFEsIGNvbmRUKTsKLSAgICAgICAgICAgIERJUCgidnFzaGwuJWMldSAlYyV1LCAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgRElQKCJ2cXNobC4lYyVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG1yZWcsIFEgPyAncScgOiAnZCcsCiAgICAgICAgICAgICAgICAgbnJlZyk7CkBAIC0zOTczLDcgKzM5NzMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3Aob3AsIG1rZXhwcihhcmdfbSksIG1rZXhwcihhcmdfbikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHJvdW5kKSkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRElQKCJ2cnNobC4lYyV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICBESVAoInZyc2hsLiVjJWQgJWMldSwgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbXJlZywgUSA/ICdxJyA6ICdkJywKICAgICAgICAgICAgICAgICBucmVnKTsKQEAgLTQxMzAsNyArNDEzMCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKFEgPyBJb3BfQW5kVjEyOCA6IElvcF9BbmQ2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKGFyZ19tKSwgbWtleHByKG1hc2spKSwKICAgICAgICAgICAgICAgICAgICAgICAgUSwgY29uZFQpOwotICAgICAgICAgICAgRElQKCJ2cXJzaGwuJWMldSAlYyV1LCAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgRElQKCJ2cXJzaGwuJWMlZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnLCBRID8gJ3EnIDogJ2QnLAogICAgICAgICAgICAgICAgIG5yZWcpOwpAQCAtNDE1OSw3ICs0MTU5LDcgQEAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFzc2lnbihyZXMsIGJpbm9wKG9wLCBta2V4cHIoYXJnX24pLCBta2V4cHIoYXJnX20pKSk7Ci0gICAgICAgICAgICBESVAoInZtYXguJWMldSAlYyV1LCAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgRElQKCJ2bWF4LiVjJWQgJWMldSwgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbnJlZywgUSA/ICdxJyA6ICdkJywKICAgICAgICAgICAgICAgICBtcmVnKTsKQEAgLTQxODQsNyArNDE4NCw3IEBACiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhc3NpZ24ocmVzLCBiaW5vcChvcCwgbWtleHByKGFyZ19uKSwgbWtleHByKGFyZ19tKSkpOwotICAgICAgICAgICAgRElQKCJ2bWluLiVjJXUgJWMldSwgJWMldSwgJWMldVxuIiwKKyAgICAgICAgICAgIERJUCgidm1pbi4lYyVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG5yZWcsIFEgPyAncScgOiAnZCcsCiAgICAgICAgICAgICAgICAgbXJlZyk7CkBAIC00MjUzLDcgKzQyNTMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoYXJnX24pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoUSA/IElvcF9Ob3RWMTI4IDogSW9wX05vdDY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoY29uZCkpKSkpOwotICAgICAgICAgICAgRElQKCJ2YWJkLiVjJXUgJWMldSwgJWMldSwgJWMldVxuIiwKKyAgICAgICAgICAgIERJUCgidmFiZC4lYyVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG5yZWcsIFEgPyAncScgOiAnZCcsCiAgICAgICAgICAgICAgICAgbXJlZyk7CkBAIC00MzMyLDcgKzQzMzIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcChRID8gSW9wX05vdFYxMjggOiBJb3BfTm90NjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwcihjb25kKSkpKSk7CiAgICAgICAgICAgICBhc3NpZ24ocmVzLCBiaW5vcChvcF9hZGQsIG1rZXhwcihhY2MpLCBta2V4cHIodG1wKSkpOwotICAgICAgICAgICAgRElQKCJ2YWJhLiVjJXUgJWMldSwgJWMldSwgJWMldVxuIiwKKyAgICAgICAgICAgIERJUCgidmFiYS4lYyVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG5yZWcsIFEgPyAncScgOiAnZCcsCiAgICAgICAgICAgICAgICAgbXJlZyk7CkBAIC00MzUwLDcgKzQzNTAsNyBAQAogICAgICAgICAgICAgICAgICAgY2FzZSAzOiBvcCA9IFEgPyBJb3BfQWRkNjR4MiA6IElvcF9BZGQ2NDsgYnJlYWs7CiAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2YXNzZXJ0KDApOwogICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgRElQKCJ2YWRkLmkldSAlYyV1LCAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgICAgRElQKCJ2YWRkLmklZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgICAgIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywKICAgICAgICAgICAgICAgICAgICBkcmVnLCBRID8gJ3EnIDogJ2QnLCBucmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC00MzYyLDcgKzQzNjIsNyBAQAogICAgICAgICAgICAgICAgICAgY2FzZSAzOiBvcCA9IFEgPyBJb3BfU3ViNjR4MiA6IElvcF9TdWI2NDsgYnJlYWs7CiAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2YXNzZXJ0KDApOwogICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgRElQKCJ2c3ViLmkldSAlYyV1LCAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgICAgRElQKCJ2c3ViLmklZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgICAgIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywKICAgICAgICAgICAgICAgICAgICBkcmVnLCBRID8gJ3EnIDogJ2QnLCBucmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgIH0KQEAgLTQzODEsNyArNDM4MSw3IEBACiAgICAgICAgICAgICAgICBhc3NpZ24ocmVzLCB1bm9wKG9wLCBiaW5vcChRID8gSW9wX0FuZFYxMjggOiBJb3BfQW5kNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoYXJnX24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKGFyZ19tKSkpKTsKLSAgICAgICAgICAgICAgIERJUCgidnRzdC4ldSAlYyV1LCAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgICAgRElQKCJ2dHN0LiVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgICAgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLAogICAgICAgICAgICAgICAgICAgIGRyZWcsIFEgPyAncScgOiAnZCcsIG5yZWcsIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTQzOTEsNyArNDM5MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoUSA/IElvcF9Yb3JWMTI4IDogSW9wX1hvcjY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwcihhcmdfbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKGFyZ19tKSkpKSk7Ci0gICAgICAgICAgICAgICBESVAoInZjZXEuaSV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICAgICBESVAoInZjZXEuaSVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgICAgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLAogICAgICAgICAgICAgICAgICAgIGRyZWcsIFEgPyAncScgOiAnZCcsIG5yZWcsIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgfQpAQCAtNDQ0NCw3ICs0NDQ0LDcgQEAKICAgICAgICAgICAgIGFzc2lnbihyZXMsIGJpbm9wKG9wMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEgPyBnZXRRUmVnKGRyZWcpIDogZ2V0RFJlZ0k2NChkcmVnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKG9wLCBta2V4cHIoYXJnX24pLCBta2V4cHIoYXJnX20pKSkpOwotICAgICAgICAgICAgRElQKCJ2bWwlYy5pJXUgJWMldSwgJWMldSwgJWMldVxuIiwKKyAgICAgICAgICAgIERJUCgidm1sJWMuaSVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgUCA/ICdzJyA6ICdhJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG5yZWcsIFEgPyAncScgOiAnZCcsCiAgICAgICAgICAgICAgICAgbXJlZyk7CkBAIC00NDcwLDcgKzQ0NzAsNyBAQAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3Aob3AsIG1rZXhwcihhcmdfbiksIG1rZXhwcihhcmdfbSkpKTsKLSAgICAgICAgICAgIERJUCgidm11bC4lYyV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICBESVAoInZtdWwuJWMlZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgIFAgPyAncCcgOiAnaScsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBucmVnLCBRID8gJ3EnIDogJ2QnLAogICAgICAgICAgICAgICAgIG1yZWcpOwpAQCAtNDUwMCw3ICs0NTAwLDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGFzc2lnbihyZXMsIGJpbm9wKG9wLCBta2V4cHIoYXJnX24pLCBta2V4cHIoYXJnX20pKSk7Ci0gICAgICAgICBESVAoInZwJXMuJWMldSAlYyV1LCAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgRElQKCJ2cCVzLiVjJWQgJWMldSwgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICBQID8gIm1pbiIgOiAibWF4IiwgVSA/ICd1JyA6ICdzJywKICAgICAgICAgICAgICA4IDw8IHNpemUsIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG5yZWcsCiAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgbXJlZyk7CkBAIC00NTM5LDcgKzQ1MzksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEgPyBta1UxMjgoaW1tKSA6IG1rVTY0KGltbSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA/IG1rVTEyOCgwKSA6IG1rVTY0KDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICBRLCBjb25kVCk7Ci0gICAgICAgICAgICAgICBESVAoInZxZG11bGgucyV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICAgICBESVAoInZxZG11bGgucyVkICVjJXUsICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgICAgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLAogICAgICAgICAgICAgICAgICAgIGRyZWcsIFEgPyAncScgOiAnZCcsIG5yZWcsIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTQ1NzMsNyArNDU3Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUSA/IG1rVTEyOChpbW0pIDogbWtVNjQoaW1tKSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBRID8gbWtVMTI4KDApIDogbWtVNjQoMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFEsIGNvbmRUKTsKLSAgICAgICAgICAgICAgIERJUCgidnFyZG11bGgucyV1ICVjJXUsICVjJXUsICVjJXVcbiIsCisgICAgICAgICAgICAgICBESVAoInZxcmRtdWxoLnMlZCAlYyV1LCAlYyV1LCAlYyV1XG4iLAogICAgICAgICAgICAgICAgICAgIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywKICAgICAgICAgICAgICAgICAgICBkcmVnLCBRID8gJ3EnIDogJ2QnLCBucmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgIH0KQEAgLTQ4NzQsNyArNDg3NCw3IEBACiAgICAgICAgICBhc3NpZ24oYXJnX20sIHVub3AoY3Z0LCBnZXREUmVnSTY0KG1yZWcpKSk7CiAgICAgICAgICBwdXRRUmVnKGRyZWcsIGJpbm9wKG9wLCBta2V4cHIoYXJnX24pLCBta2V4cHIoYXJnX20pKSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uZFQpOwotICAgICAgICAgRElQKCJ2JXMlYy4lYyV1IHEldSwgJWMldSwgZCV1XG4iLCAoQSAmIDIpID8gInN1YiIgOiAiYWRkIiwKKyAgICAgICAgIERJUCgidiVzJWMuJWMlZCBxJXUsICVjJXUsIGQldVxuIiwgKEEgJiAyKSA/ICJzdWIiIDogImFkZCIsCiAgICAgICAgICAgICAgKEEgJiAxKSA/ICd3JyA6ICdsJywgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLCBkcmVnLAogICAgICAgICAgICAgIChBICYgMSkgPyAncScgOiAnZCcsIG5yZWcsIG1yZWcpOwogICAgICAgICAgcmV0dXJuIFRydWU7CkBAIC00OTI2LDcgKzQ5MjYsNyBAQAogICAgICAgICAgfQogICAgICAgICAgcHV0RFJlZ0k2NChkcmVnLCB1bm9wKGN2dCwgYmlub3Aoc2gsIG1rZXhwcihyZXMpLCBta1U4KDggPDwgc2l6ZSkpKSwKICAgICAgICAgICAgICAgICAgICAgY29uZFQpOwotICAgICAgICAgRElQKCJ2JXNhZGRobi5pJXUgZCV1LCBxJXUsIHEldVxuIiwgVSA/ICJyIiA6ICIiLCAxNiA8PCBzaXplLCBkcmVnLAorICAgICAgICAgRElQKCJ2JXNhZGRobi5pJWQgZCV1LCBxJXUsIHEldVxuIiwgVSA/ICJyIiA6ICIiLCAxNiA8PCBzaXplLCBkcmVnLAogICAgICAgICAgICAgIG5yZWcsIG1yZWcpOwogICAgICAgICAgcmV0dXJuIFRydWU7CiAgICAgICBjYXNlIDU6CkBAIC00OTgyLDcgKzQ5ODIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcChJb3BfTm90VjEyOCwgbWtleHByKGNvbmQpKSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UVJlZyhkcmVnKSkpOwogICAgICAgICAgcHV0UVJlZyhkcmVnLCBta2V4cHIocmVzKSwgY29uZFQpOwotICAgICAgICAgRElQKCJ2YWJhbC4lYyV1IHEldSwgZCV1LCBkJXVcbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwgZHJlZywKKyAgICAgICAgIERJUCgidmFiYWwuJWMlZCBxJXUsIGQldSwgZCV1XG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsIGRyZWcsCiAgICAgICAgICAgICAgbnJlZywgbXJlZyk7CiAgICAgICAgICByZXR1cm4gVHJ1ZTsKICAgICAgIGNhc2UgNjoKQEAgLTUwMzYsNyArNTAzNiw3IEBACiAgICAgICAgICB9CiAgICAgICAgICBwdXREUmVnSTY0KGRyZWcsIHVub3AoY3Z0LCBiaW5vcChzaCwgbWtleHByKHJlcyksIG1rVTgoOCA8PCBzaXplKSkpLAogICAgICAgICAgICAgICAgICAgICBjb25kVCk7Ci0gICAgICAgICBESVAoInYlc3N1YmhuLmkldSBkJXUsIHEldSwgcSV1XG4iLCBVID8gInIiIDogIiIsIDE2IDw8IHNpemUsIGRyZWcsCisgICAgICAgICBESVAoInYlc3N1YmhuLmklZCBkJXUsIHEldSwgcSV1XG4iLCBVID8gInIiIDogIiIsIDE2IDw8IHNpemUsIGRyZWcsCiAgICAgICAgICAgICAgbnJlZywgbXJlZyk7CiAgICAgICAgICByZXR1cm4gVHJ1ZTsKICAgICAgIGNhc2UgNzoKQEAgLTUwODcsNyArNTA4Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChvcCwgbWtleHByKGFyZ19tKSwgbWtleHByKGFyZ19uKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKElvcF9Ob3RWMTI4LCBta2V4cHIoY29uZCkpKSkpOwogICAgICAgICAgcHV0UVJlZyhkcmVnLCBta2V4cHIocmVzKSwgY29uZFQpOwotICAgICAgICAgRElQKCJ2YWJkbC4lYyV1IHEldSwgZCV1LCBkJXVcbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwgZHJlZywKKyAgICAgICAgIERJUCgidmFiZGwuJWMlZCBxJXUsIGQldSwgZCV1XG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsIGRyZWcsCiAgICAgICAgICAgICAgbnJlZywgbXJlZyk7CiAgICAgICAgICByZXR1cm4gVHJ1ZTsKICAgICAgIGNhc2UgODoKQEAgLTUxMTgsNyArNTExOCw3IEBACiAgICAgICAgICByZXMgPSBuZXdUZW1wKEl0eV9WMTI4KTsKICAgICAgICAgIGFzc2lnbihyZXMsIGJpbm9wKG9wLCBnZXREUmVnSTY0KG5yZWcpLGdldERSZWdJNjQobXJlZykpKTsKICAgICAgICAgIHB1dFFSZWcoZHJlZywgYmlub3Aob3AyLCBnZXRRUmVnKGRyZWcpLCBta2V4cHIocmVzKSksIGNvbmRUKTsKLSAgICAgICAgIERJUCgidm1sJWNsLiVjJXUgcSV1LCBkJXUsIGQldVxuIiwgUCA/ICdzJyA6ICdhJywgVSA/ICd1JyA6ICdzJywKKyAgICAgICAgIERJUCgidm1sJWNsLiVjJWQgcSV1LCBkJXUsIGQldVxuIiwgUCA/ICdzJyA6ICdhJywgVSA/ICd1JyA6ICdzJywKICAgICAgICAgICAgICA4IDw8IHNpemUsIGRyZWcsIG5yZWcsIG1yZWcpOwogICAgICAgICAgcmV0dXJuIFRydWU7CiAgICAgICBjYXNlIDk6CkBAIC01MTY1LDcgKzUxNjUsNyBAQAogICAgICAgICAgICAgICAgICAgICBta1U2NCgwKSwKICAgICAgICAgICAgICAgICAgICAgRmFsc2UsIGNvbmRUKTsKICAgICAgICAgIHB1dFFSZWcoZHJlZywgYmlub3AoYWRkLCBnZXRRUmVnKGRyZWcpLCBta2V4cHIocmVzKSksIGNvbmRUKTsKLSAgICAgICAgIERJUCgidnFkbWwlY2wucyV1IHEldSwgZCV1LCBkJXVcbiIsIFAgPyAncycgOiAnYScsIDggPDwgc2l6ZSwgZHJlZywKKyAgICAgICAgIERJUCgidnFkbWwlY2wucyVkIHEldSwgZCV1LCBkJXVcbiIsIFAgPyAncycgOiAnYScsIDggPDwgc2l6ZSwgZHJlZywKICAgICAgICAgICAgICBucmVnLCBtcmVnKTsKICAgICAgICAgIHJldHVybiBUcnVlOwogICAgICAgY2FzZSAxMjoKQEAgLTUxOTIsNyArNTE5Miw3IEBACiAgICAgICAgICB9CiAgICAgICAgICBwdXRRUmVnKGRyZWcsIGJpbm9wKG9wLCBnZXREUmVnSTY0KG5yZWcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RFJlZ0k2NChtcmVnKSksIGNvbmRUKTsKLSAgICAgICAgIERJUCgidm11bGwuJWMldSBxJXUsIGQldSwgZCV1XG4iLCBQID8gJ3AnIDogKFUgPyAndScgOiAncycpLAorICAgICAgICAgRElQKCJ2bXVsbC4lYyVkIHEldSwgZCV1LCBkJXVcbiIsIFAgPyAncCcgOiAoVSA/ICd1JyA6ICdzJyksCiAgICAgICAgICAgICAgICA4IDw8IHNpemUsIGRyZWcsIG5yZWcsIG1yZWcpOwogICAgICAgICAgcmV0dXJuIFRydWU7CiAgICAgICBjYXNlIDEzOgpAQCAtNTIzMCw3ICs1MjMwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3Aob3AyLCBnZXREUmVnSTY0KG1yZWcpLCBta1U2NChpbW0pKSksCiAgICAgICAgICAgICAgICAgICAgIG1rVTY0KDApLAogICAgICAgICAgICAgICAgICAgICBGYWxzZSwgY29uZFQpOwotICAgICAgICAgRElQKCJ2cWRtdWxsLnMldSBxJXUsIGQldSwgZCV1XG4iLCA4IDw8IHNpemUsIGRyZWcsIG5yZWcsIG1yZWcpOworICAgICAgICAgRElQKCJ2cWRtdWxsLnMlZCBxJXUsIGQldSwgZCV1XG4iLCA4IDw8IHNpemUsIGRyZWcsIG5yZWcsIG1yZWcpOwogICAgICAgICAgcmV0dXJuIFRydWU7CiAgICAgICBkZWZhdWx0OgogICAgICAgICAgcmV0dXJuIEZhbHNlOwpAQCAtNTM1NSw3ICs1MzU1LDcgQEAKICAgICAgIGVsc2UKICAgICAgICAgIHB1dERSZWdJNjQoZHJlZywgYmlub3Aob3AyLCBnZXREUmVnSTY0KGRyZWcpLCBta2V4cHIocmVzKSksCiAgICAgICAgICAgICAgICAgICAgIGNvbmRUKTsKLSAgICAgIERJUCgidm1sJWMuJWMldSAlYyV1LCAlYyV1LCBkJXVbJXVdXG4iLCBJTlNOKDEwLDEwKSA/ICdzJyA6ICdhJywKKyAgICAgIERJUCgidm1sJWMuJWMlZCAlYyV1LCAlYyV1LCBkJXVbJXVdXG4iLCBJTlNOKDEwLDEwKSA/ICdzJyA6ICdhJywKICAgICAgICAgICAgIElOU04oOCw4KSA/ICdmJyA6ICdpJywgOCA8PCBzaXplLAogICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbnJlZywgbXJlZywgaW5kZXgpOwogICAgICAgcmV0dXJuIFRydWU7CkBAIC01NDEyLDcgKzU0MTIsNyBAQAogICAgICAgb3AyID0gSU5TTigxMCwxMCkgPyBzdWIgOiBhZGQ7CiAgICAgICBhc3NpZ24ocmVzLCBiaW5vcChvcCwgbWtleHByKGFyZ19uKSwgbWtleHByKGFyZ19tKSkpOwogICAgICAgcHV0UVJlZyhkcmVnLCBiaW5vcChvcDIsIGdldFFSZWcoZHJlZyksIG1rZXhwcihyZXMpKSwgY29uZFQpOwotICAgICAgRElQKCJ2bWwlY2wuJWMldSBxJXUsIGQldSwgZCV1WyV1XVxuIiwKKyAgICAgIERJUCgidm1sJWNsLiVjJWQgcSV1LCBkJXUsIGQldVsldV1cbiIsCiAgICAgICAgICAgSU5TTigxMCwxMCkgPyAncycgOiAnYScsIFUgPyAndScgOiAncycsCiAgICAgICAgICAgOCA8PCBzaXplLCBkcmVnLCBucmVnLCBtcmVnLCBpbmRleCk7CiAgICAgICByZXR1cm4gVHJ1ZTsKQEAgLTU0ODcsNyArNTQ4Nyw3IEBACiAgICAgICBzZXRGbGFnX1FDKG1rZXhwcih0bXApLCBiaW5vcChhZGQsIGdldFFSZWcoZHJlZyksIG1rZXhwcihyZXMpKSwKICAgICAgICAgICAgICAgICAgVHJ1ZSwgY29uZFQpOwogICAgICAgcHV0UVJlZyhkcmVnLCBiaW5vcChhZGQsIGdldFFSZWcoZHJlZyksIG1rZXhwcihyZXMpKSwgY29uZFQpOwotICAgICAgRElQKCJ2cWRtbCVjbC5zJXUgcSV1LCBkJXUsIGQldVsldV1cbiIsIFAgPyAncycgOiAnYScsIDggPDwgc2l6ZSwKKyAgICAgIERJUCgidnFkbWwlY2wucyVkIHEldSwgZCV1LCBkJXVbJXVdXG4iLCBQID8gJ3MnIDogJ2EnLCA4IDw8IHNpemUsCiAgICAgICAgICAgZHJlZywgbnJlZywgbXJlZywgaW5kZXgpOwogICAgICAgcmV0dXJuIFRydWU7CiAgICB9CkBAIC01NTgzLDcgKzU1ODMsNyBAQAogICAgICAgICAgcHV0UVJlZyhkcmVnLCBta2V4cHIocmVzKSwgY29uZFQpOwogICAgICAgZWxzZQogICAgICAgICAgcHV0RFJlZ0k2NChkcmVnLCBta2V4cHIocmVzKSwgY29uZFQpOwotICAgICAgRElQKCJ2bXVsLiVjJXUgJWMldSwgJWMldSwgZCV1WyV1XVxuIiwgSU5TTig4LDgpID8gJ2YnIDogJ2knLAorICAgICAgRElQKCJ2bXVsLiVjJWQgJWMldSwgJWMldSwgZCV1WyV1XVxuIiwgSU5TTig4LDgpID8gJ2YnIDogJ2knLAogICAgICAgICAgIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywgZHJlZywKICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBucmVnLCBtcmVnLCBpbmRleCk7CiAgICAgICByZXR1cm4gVHJ1ZTsKQEAgLTU2MjgsNyArNTYyOCw3IEBACiAgICAgICB9CiAgICAgICBhc3NpZ24ocmVzLCBiaW5vcChvcCwgbWtleHByKGFyZ19uKSwgbWtleHByKGFyZ19tKSkpOwogICAgICAgcHV0UVJlZyhkcmVnLCBta2V4cHIocmVzKSwgY29uZFQpOwotICAgICAgRElQKCJ2bXVsbC4lYyV1IHEldSwgZCV1LCBkJXVbJXVdXG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsIGRyZWcsCisgICAgICBESVAoInZtdWxsLiVjJWQgcSV1LCBkJXUsIGQldVsldV1cbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwgZHJlZywKICAgICAgICAgICBucmVnLCBtcmVnLCBpbmRleCk7CiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0KQEAgLTU2OTEsNyArNTY5MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKG9wMiwgbWtleHByKGFyZ19tKSwgbWtVNjQoaW1tKSkpLAogICAgICAgICAgICAgICAgICBta1U2NCgwKSwKICAgICAgICAgICAgICAgICAgRmFsc2UsIGNvbmRUKTsKLSAgICAgIERJUCgidnFkbXVsbC5zJXUgcSV1LCBkJXUsIGQldVsldV1cbiIsIDggPDwgc2l6ZSwgZHJlZywgbnJlZywgbXJlZywKKyAgICAgIERJUCgidnFkbXVsbC5zJWQgcSV1LCBkJXUsIGQldVsldV1cbiIsIDggPDwgc2l6ZSwgZHJlZywgbnJlZywgbXJlZywKICAgICAgICAgICBpbmRleCk7CiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0KQEAgLTU3ODgsNyArNTc4OCw3IEBACiAgICAgICAgICBwdXRRUmVnKGRyZWcsIG1rZXhwcihyZXMpLCBjb25kVCk7CiAgICAgICBlbHNlCiAgICAgICAgICBwdXREUmVnSTY0KGRyZWcsIG1rZXhwcihyZXMpLCBjb25kVCk7Ci0gICAgICBESVAoInZxZG11bGgucyV1ICVjJXUsICVjJXUsIGQldVsldV1cbiIsCisgICAgICBESVAoInZxZG11bGgucyVkICVjJXUsICVjJXUsIGQldVsldV1cbiIsCiAgICAgICAgICAgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLAogICAgICAgICAgIFEgPyAncScgOiAnZCcsIG5yZWcsIG1yZWcsIGluZGV4KTsKICAgICAgIHJldHVybiBUcnVlOwpAQCAtNTg4Niw3ICs1ODg2LDcgQEAKICAgICAgICAgIHB1dFFSZWcoZHJlZywgbWtleHByKHJlcyksIGNvbmRUKTsKICAgICAgIGVsc2UKICAgICAgICAgIHB1dERSZWdJNjQoZHJlZywgbWtleHByKHJlcyksIGNvbmRUKTsKLSAgICAgIERJUCgidnFyZG11bGgucyV1ICVjJXUsICVjJXUsIGQldVsldV1cbiIsCisgICAgICBESVAoInZxcmRtdWxoLnMlZCAlYyV1LCAlYyV1LCBkJXVbJXVdXG4iLAogICAgICAgICAgIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywgZHJlZywKICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBucmVnLCBtcmVnLCBpbmRleCk7CiAgICAgICByZXR1cm4gVHJ1ZTsKQEAgLTYwMzYsNyArNjAzNiw3IEBACiAgICAgICAgICAgICAgICBwdXREUmVnSTY0KGRyZWcsIGJpbm9wKGFkZCwgbWtleHByKHJlcyksIGdldERSZWdJNjQoZHJlZykpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kVCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBESVAoInZyc3JhLiVjJXUgJWMldSwgJWMldSwgIyV1XG4iLAorICAgICAgICAgICAgRElQKCJ2cnNyYS4lYyVkICVjJXUsICVjJXUsICMldVxuIiwKICAgICAgICAgICAgICAgICBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbXJlZywgc2hpZnRfaW1tKTsKICAgICAgICAgIH0gZWxzZSB7CkBAIC02MDQ1LDcgKzYwNDUsNyBAQAogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHB1dERSZWdJNjQoZHJlZywgbWtleHByKHJlcyksIGNvbmRUKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIERJUCgidnJzaHIuJWMldSAlYyV1LCAlYyV1LCAjJXVcbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKKyAgICAgICAgICAgIERJUCgidnJzaHIuJWMlZCAlYyV1LCAlYyV1LCAjJXVcbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnLCBzaGlmdF9pbW0pOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIFRydWU7CkBAIC02MTEzLDcgKzYxMTMsNyBAQAogICAgICAgICAgICAgICAgcHV0RFJlZ0k2NChkcmVnLCBiaW5vcChhZGQsIG1rZXhwcihyZXMpLCBnZXREUmVnSTY0KGRyZWcpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZFQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRElQKCJ2c3JhLiVjJXUgJWMldSwgJWMldSwgIyV1XG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCisgICAgICAgICAgICBESVAoInZzcmEuJWMlZCAlYyV1LCAlYyV1LCAjJXVcbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG1yZWcsIHNoaWZ0X2ltbSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKFEpIHsKQEAgLTYxMjEsNyArNjEyMSw3IEBACiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcHV0RFJlZ0k2NChkcmVnLCBta2V4cHIocmVzKSwgY29uZFQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRElQKCJ2c2hyLiVjJXUgJWMldSwgJWMldSwgIyV1XG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCisgICAgICAgICAgICBESVAoInZzaHIuJWMlZCAlYyV1LCAlYyV1LCAjJXVcbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG1yZWcsIHNoaWZ0X2ltbSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gVHJ1ZTsKQEAgLTYxNzAsNyArNjE3MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U4KHNoaWZ0X2ltbSkpKSk7CiAgICAgICAgICAgICBwdXREUmVnSTY0KGRyZWcsIG1rZXhwcihyZXMpLCBjb25kVCk7CiAgICAgICAgICB9Ci0gICAgICAgICBESVAoInZzcmkuJXUgJWMldSwgJWMldSwgIyV1XG4iLAorICAgICAgICAgRElQKCJ2c3JpLiVkICVjJXUsICVjJXUsICMldVxuIiwKICAgICAgICAgICAgICA4IDw8IHNpemUsIFEgPyAncScgOiAnZCcsIGRyZWcsCiAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgbXJlZywgc2hpZnRfaW1tKTsKICAgICAgICAgIHJldHVybiBUcnVlOwpAQCAtNjIxOSw3ICs2MjE5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTgoc2hpZnRfaW1tKSkpKTsKICAgICAgICAgICAgICAgIHB1dERSZWdJNjQoZHJlZywgbWtleHByKHJlcyksIGNvbmRUKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIERJUCgidnNsaS4ldSAlYyV1LCAlYyV1LCAjJXVcbiIsCisgICAgICAgICAgICBESVAoInZzbGkuJWQgJWMldSwgJWMldSwgIyV1XG4iLAogICAgICAgICAgICAgICAgIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywgZHJlZywKICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBtcmVnLCBzaGlmdF9pbW0pOwogICAgICAgICAgICAgcmV0dXJuIFRydWU7CkBAIC02MjQ1LDcgKzYyNDUsNyBAQAogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHB1dERSZWdJNjQoZHJlZywgbWtleHByKHJlcyksIGNvbmRUKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIERJUCgidnNobC5pJXUgJWMldSwgJWMldSwgIyV1XG4iLAorICAgICAgICAgICAgRElQKCJ2c2hsLmklZCAlYyV1LCAlYyV1LCAjJXVcbiIsCiAgICAgICAgICAgICAgICAgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLAogICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIG1yZWcsIHNoaWZ0X2ltbSk7CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZTsKQEAgLTYyNzcsNyArNjI3Nyw3IEBACiAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCgwKTsKICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIERJUCgidnFzaGwudSV1ICVjJXUsICVjJXUsICMldVxuIiwKKyAgICAgICAgICAgICAgIERJUCgidnFzaGwudSVkICVjJXUsICVjJXUsICMldVxuIiwKICAgICAgICAgICAgICAgICAgICA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbXJlZywgc2hpZnRfaW1tKTsKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC02MzAxLDcgKzYzMDEsNyBAQAogICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoMCk7CiAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBESVAoInZxc2hsdS5zJXUgJWMldSwgJWMldSwgIyV1XG4iLAorICAgICAgICAgICAgICAgRElQKCJ2cXNobHUucyVkICVjJXUsICVjJXUsICMldVxuIiwKICAgICAgICAgICAgICAgICAgICA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbXJlZywgc2hpZnRfaW1tKTsKICAgICAgICAgICAgIH0KQEAgLTYzMjgsNyArNjMyOCw3IEBACiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgdmFzc2VydCgwKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIERJUCgidnFzaGwucyV1ICVjJXUsICVjJXUsICMldVxuIiwKKyAgICAgICAgICAgIERJUCgidnFzaGwucyVkICVjJXUsICVjJXUsICMldVxuIiwKICAgICAgICAgICAgICAgICA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbXJlZywgc2hpZnRfaW1tKTsKICAgICAgICAgIH0KQEAgLTYzODgsNyArNjM4OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwcihyZWdfbSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTgoc2hpZnRfaW1tKSkpKTsKICAgICAgICAgICAgICAgIHB1dERSZWdJNjQoZHJlZywgbWtleHByKHJlcyksIGNvbmRUKTsKLSAgICAgICAgICAgICAgIERJUCgidnNocm4uaSV1IGQldSwgcSV1LCAjJXVcbiIsIDggPDwgc2l6ZSwgZHJlZywgbXJlZywKKyAgICAgICAgICAgICAgIERJUCgidnNocm4uaSVkIGQldSwgcSV1LCAjJXVcbiIsIDggPDwgc2l6ZSwgZHJlZywgbXJlZywKICAgICAgICAgICAgICAgICAgICBzaGlmdF9pbW0pOwogICAgICAgICAgICAgICAgcmV0dXJuIFRydWU7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtNjQzOCwxMCArNjQzOCwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1fdmFsKSkpKTsKICAgICAgICAgICAgICAgIHB1dERSZWdJNjQoZHJlZywgbWtleHByKHJlcyksIGNvbmRUKTsKICAgICAgICAgICAgICAgIGlmIChzaGlmdF9pbW0gPT0gMCkgewotICAgICAgICAgICAgICAgICAgRElQKCJ2bW92JXUgZCV1LCBxJXUsICMldVxuIiwgOCA8PCBzaXplLCBkcmVnLCBtcmVnLAorICAgICAgICAgICAgICAgICAgRElQKCJ2bW92JWQgZCV1LCBxJXUsICMldVxuIiwgOCA8PCBzaXplLCBkcmVnLCBtcmVnLAogICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0X2ltbSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgRElQKCJ2cnNocm4uaSV1IGQldSwgcSV1LCAjJXVcbiIsIDggPDwgc2l6ZSwgZHJlZywgbXJlZywKKyAgICAgICAgICAgICAgICAgIERJUCgidnJzaHJuLmklZCBkJXUsIHEldSwgIyV1XG4iLCA4IDw8IHNpemUsIGRyZWcsIG1yZWcsCiAgICAgICAgICAgICAgICAgICAgICAgc2hpZnRfaW1tKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBUcnVlOwpAQCAtNjQ3Niw3ICs2NDc2LDcgQEAKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KDApOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRElQKCJ2cSVzc2hybi4lYyV1IGQldSwgcSV1LCAjJXVcbiIsIEIgPyAiciIgOiAiIiwKKyAgICAgICAgICAgIERJUCgidnElc3Nocm4uJWMlZCBkJXUsIHEldSwgIyV1XG4iLCBCID8gInIiIDogIiIsCiAgICAgICAgICAgICAgICAgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLCBkcmVnLCBtcmVnLCBzaGlmdF9pbW0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHZhc3NlcnQoVSk7CkBAIC02NDk5LDcgKzY0OTksNyBAQAogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoMCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBESVAoInZxJXNzaHJ1bi5zJXUgZCV1LCBxJXUsICMldVxuIiwgQiA/ICJyIiA6ICIiLAorICAgICAgICAgICAgRElQKCJ2cSVzc2hydW4ucyVkIGQldSwgcSV1LCAjJXVcbiIsIEIgPyAiciIgOiAiIiwKICAgICAgICAgICAgICAgICA4IDw8IHNpemUsIGRyZWcsIG1yZWcsIHNoaWZ0X2ltbSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoQikgewpAQCAtNjU3MCwxMCArNjU3MCwxMCBAQAogICAgICAgICAgYXNzaWduKHJlcywgYmlub3Aob3AsIHVub3AoY3Z0LCBnZXREUmVnSTY0KG1yZWcpKSwgbWtVOChzaGlmdF9pbW0pKSk7CiAgICAgICAgICBwdXRRUmVnKGRyZWcsIG1rZXhwcihyZXMpLCBjb25kVCk7CiAgICAgICAgICBpZiAoc2hpZnRfaW1tID09IDApIHsKLSAgICAgICAgICAgIERJUCgidm1vdmwuJWMldSBxJXUsIGQldVxuIiwgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLAorICAgICAgICAgICAgRElQKCJ2bW92bC4lYyVkIHEldSwgZCV1XG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgZHJlZywgbXJlZyk7CiAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgRElQKCJ2c2hsbC4lYyV1IHEldSwgZCV1LCAjJXVcbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKKyAgICAgICAgICAgIERJUCgidnNobGwuJWMlZCBxJXUsIGQldSwgIyV1XG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgZHJlZywgbXJlZywgc2hpZnRfaW1tKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBUcnVlOwpAQCAtNjY2Miw3ICs2NjYyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoMCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhc3NpZ24ocmVzLCB1bm9wKG9wLCBta2V4cHIoYXJnX20pKSk7Ci0gICAgICAgICAgICAgICBESVAoInZyZXY2NC4ldSAlYyV1LCAlYyV1XG4iLCA4IDw8IHNpemUsCisgICAgICAgICAgICAgICBESVAoInZyZXY2NC4lZCAlYyV1LCAlYyV1XG4iLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbXJlZyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTY2ODMsNyArNjY4Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KDApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYXNzaWduKHJlcywgdW5vcChvcCwgbWtleHByKGFyZ19tKSkpOwotICAgICAgICAgICAgICAgRElQKCJ2cmV2MzIuJXUgJWMldSwgJWMldVxuIiwgOCA8PCBzaXplLAorICAgICAgICAgICAgICAgRElQKCJ2cmV2MzIuJWQgJWMldSwgJWMldVxuIiwgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC02NzAyLDcgKzY3MDIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCgwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGFzc2lnbihyZXMsIHVub3Aob3AsIG1rZXhwcihhcmdfbSkpKTsKLSAgICAgICAgICAgICAgIERJUCgidnJldjE2LiV1ICVjJXUsICVjJXVcbiIsIDggPDwgc2l6ZSwKKyAgICAgICAgICAgICAgIERJUCgidnJldjE2LiVkICVjJXUsICVjJXVcbiIsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNjczMSw3ICs2NzMxLDcgQEAKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGFzc2lnbihyZXMsIHVub3Aob3AsIG1rZXhwcihhcmdfbSkpKTsKLSAgICAgICAgICAgICAgIERJUCgidnBhZGRsLiVjJXUgJWMldSwgJWMldVxuIiwgVSA/ICd1JyA6ICdzJywgOCA8PCBzaXplLAorICAgICAgICAgICAgICAgRElQKCJ2cGFkZGwuJWMlZCAlYyV1LCAlYyV1XG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCiAgICAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgZHJlZywgUSA/ICdxJyA6ICdkJywgbXJlZyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTY3NDksNyArNjc0OSw3IEBACiAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2YXNzZXJ0KDApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYXNzaWduKHJlcywgdW5vcChvcCwgbWtleHByKGFyZ19tKSkpOwotICAgICAgICAgICAgICAgRElQKCJ2Y2xzLnMldSAlYyV1LCAlYyV1XG4iLCA4IDw8IHNpemUsIFEgPyAncScgOiAnZCcsIGRyZWcsCisgICAgICAgICAgICAgICBESVAoInZjbHMucyVkICVjJXUsICVjJXVcbiIsIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywgZHJlZywKICAgICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNjc2NCw3ICs2NzY0LDcgQEAKICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZhc3NlcnQoMCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhc3NpZ24ocmVzLCB1bm9wKG9wLCBta2V4cHIoYXJnX20pKSk7Ci0gICAgICAgICAgICAgICBESVAoInZjbHouaSV1ICVjJXUsICVjJXVcbiIsIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywgZHJlZywKKyAgICAgICAgICAgICAgIERJUCgidmNsei5pJWQgJWMldSwgJWMldVxuIiwgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLAogICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC02ODM2LDcgKzY4MzYsNyBAQAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3AoYWRkX29wLCB1bm9wKG9wLCBta2V4cHIoYXJnX20pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKGFyZ19kKSkpOwotICAgICAgICAgICAgICAgRElQKCJ2cGFkYWwuJWMldSAlYyV1LCAlYyV1XG4iLCBVID8gJ3UnIDogJ3MnLCA4IDw8IHNpemUsCisgICAgICAgICAgICAgICBESVAoInZwYWRhbC4lYyVkICVjJXUsICVjJXVcbiIsIFUgPyAndScgOiAncycsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNjg5OCw3ICs2ODk4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKG1hc2spKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZzIpKSk7CiAgICAgICAgICAgICAgICBzZXRGbGFnX1FDKG1rZXhwcihyZXMpLCBta2V4cHIodG1wKSwgUSwgY29uZFQpOwotICAgICAgICAgICAgICAgRElQKCJ2cWFicy5zJXUgJWMldSwgJWMldVxuIiwgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLAorICAgICAgICAgICAgICAgRElQKCJ2cWFicy5zJWQgJWMldSwgJWMldVxuIiwgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLAogICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC02OTMyLDcgKzY5MzIsNyBAQAogICAgICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3Aob3AsIHplcm8sIG1rZXhwcihhcmdfbSkpKTsKICAgICAgICAgICAgICAgIHNldEZsYWdfUUMobWtleHByKHJlcyksIGJpbm9wKG9wMiwgemVybywgbWtleHByKGFyZ19tKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFEsIGNvbmRUKTsKLSAgICAgICAgICAgICAgIERJUCgidnFuZWcucyV1ICVjJXUsICVjJXVcbiIsIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywgZHJlZywKKyAgICAgICAgICAgICAgIERJUCgidnFuZWcucyVkICVjJXUsICVjJXVcbiIsIDggPDwgc2l6ZSwgUSA/ICdxJyA6ICdkJywgZHJlZywKICAgICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNjk4MSw3ICs2OTgxLDcgQEAKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGFzc2lnbihyZXMsIGJpbm9wKG9wLCBta2V4cHIoYXJnX20pLCB6ZXJvKSk7Ci0gICAgICAgICAgICAgICBESVAoInZjZ3QuJWMldSAlYyV1LCAlYyV1LCAjMFxuIiwgRiA/ICdmJyA6ICdzJywgOCA8PCBzaXplLAorICAgICAgICAgICAgICAgRElQKCJ2Y2d0LiVjJWQgJWMldSwgJWMldSwgIzBcbiIsIEYgPyAnZicgOiAncycsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNzAxMiw3ICs3MDEyLDcgQEAKICAgICAgICAgICAgICAgICAgIGFzc2lnbihyZXMsIHVub3AoUSA/IElvcF9Ob3RWMTI4IDogSW9wX05vdDY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChvcCwgemVybywgbWtleHByKGFyZ19tKSkpKTsKICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIERJUCgidmNnZS4lYyV1ICVjJXUsICVjJXUsICMwXG4iLCBGID8gJ2YnIDogJ3MnLCA4IDw8IHNpemUsCisgICAgICAgICAgICAgICBESVAoInZjZ2UuJWMlZCAlYyV1LCAlYyV1LCAjMFxuIiwgRiA/ICdmJyA6ICdzJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC03MDQzLDcgKzcwNDMsNyBAQAogICAgICAgICAgICAgICAgICAgYXNzaWduKHJlcywgdW5vcChRID8gSW9wX05vdFYxMjggOiBJb3BfTm90NjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3Aob3AsIG1rZXhwcihhcmdfbSkpKSk7CiAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBESVAoInZjZXEuJWMldSAlYyV1LCAlYyV1LCAjMFxuIiwgRiA/ICdmJyA6ICdpJywgOCA8PCBzaXplLAorICAgICAgICAgICAgICAgRElQKCJ2Y2VxLiVjJWQgJWMldSwgJWMldSwgIzBcbiIsIEYgPyAnZicgOiAnaScsIDggPDwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtNzA3NCw3ICs3MDc0LDcgQEAKICAgICAgICAgICAgICAgICAgIGFzc2lnbihyZXMsIHVub3AoUSA/IElvcF9Ob3RWMTI4IDogSW9wX05vdDY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChvcCwgbWtleHByKGFyZ19tKSwgemVybykpKTsKICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIERJUCgidmNsZS4lYyV1ICVjJXUsICVjJXUsICMwXG4iLCBGID8gJ2YnIDogJ3MnLCA4IDw8IHNpemUsCisgICAgICAgICAgICAgICBESVAoInZjbGUuJWMlZCAlYyV1LCAlYyV1LCAjMFxuIiwgRiA/ICdmJyA6ICdzJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC03MTA0LDcgKzcxMDQsNyBAQAogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgYXNzaWduKHJlcywgYmlub3Aob3AsIHplcm8sIG1rZXhwcihhcmdfbSkpKTsKICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgIERJUCgidmNsdC4lYyV1ICVjJXUsICVjJXUsICMwXG4iLCBGID8gJ2YnIDogJ3MnLCA4IDw8IHNpemUsCisgICAgICAgICAgICAgICBESVAoInZjbHQuJWMlZCAlYyV1LCAlYyV1LCAjMFxuIiwgRiA/ICdmJyA6ICdzJywgOCA8PCBzaXplLAogICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIGRyZWcsIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC03MTI2LDcgKzcxMjYsNyBAQAogICAgICAgICAgICAgICAgICAgYXNzaWduKHJlcywgdW5vcChRID8gSW9wX0FiczMyRng0IDogSW9wX0FiczMyRngyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoYXJnX20pKSk7CiAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICBESVAoInZhYnMuJWMldSAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgICAgRElQKCJ2YWJzLiVjJWQgJWMldSwgJWMldVxuIiwKICAgICAgICAgICAgICAgICAgICBGID8gJ2YnIDogJ3MnLCA4IDw8IHNpemUsIFEgPyAncScgOiAnZCcsIGRyZWcsCiAgICAgICAgICAgICAgICAgICAgUSA/ICdxJyA6ICdkJywgbXJlZyk7CiAgICAgICAgICAgICAgICBicmVhazsKQEAgLTcxNTcsNyArNzE1Nyw3IEBACiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBhc3NpZ24ocmVzLCBiaW5vcChvcCwgemVybywgbWtleHByKGFyZ19tKSkpOwogICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgRElQKCJ2bmVnLiVjJXUgJWMldSwgJWMldVxuIiwKKyAgICAgICAgICAgICAgIERJUCgidm5lZy4lYyVkICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgICAgRiA/ICdmJyA6ICdzJywgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLAogICAgICAgICAgICAgICAgICAgIFEgPyAncScgOiAnZCcsIG1yZWcpOwogICAgICAgICAgICAgICAgYnJlYWs7CkBAIC03MjU1LDcgKzcyNTUsNyBAQAogICAgICAgICAgICAgICAgcHV0RFJlZ0k2NChkcmVnLCBta2V4cHIobmV3X2QpLCBjb25kVCk7CiAgICAgICAgICAgICAgICBwdXREUmVnSTY0KG1yZWcsIG1rZXhwcihuZXdfbSksIGNvbmRUKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIERJUCgidnRybi4ldSAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgRElQKCJ2dHJuLiVkICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgIHJldHVybiBUcnVlOwogICAgICAgICAgfSBlbHNlIGlmICgoQiA+PiAxKSA9PSAyKSB7CkBAIC03MzA2LDcgKzczMDYsNyBAQAogICAgICAgICAgICAgICAgcHV0RFJlZ0k2NChkcmVnLCBta2V4cHIobmV3X2QpLCBjb25kVCk7CiAgICAgICAgICAgICAgICBwdXREUmVnSTY0KG1yZWcsIG1rZXhwcihuZXdfbSksIGNvbmRUKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIERJUCgidnV6cC4ldSAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgRElQKCJ2dXpwLiVkICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgIHJldHVybiBUcnVlOwogICAgICAgICAgfSBlbHNlIGlmICgoQiA+PiAxKSA9PSAzKSB7CkBAIC03MzU3LDcgKzczNTcsNyBAQAogICAgICAgICAgICAgICAgcHV0RFJlZ0k2NChkcmVnLCBta2V4cHIobmV3X2QpLCBjb25kVCk7CiAgICAgICAgICAgICAgICBwdXREUmVnSTY0KG1yZWcsIG1rZXhwcihuZXdfbSksIGNvbmRUKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIERJUCgidnppcC4ldSAlYyV1LCAlYyV1XG4iLAorICAgICAgICAgICAgRElQKCJ2emlwLiVkICVjJXUsICVjJXVcbiIsCiAgICAgICAgICAgICAgICAgOCA8PCBzaXplLCBRID8gJ3EnIDogJ2QnLCBkcmVnLCBRID8gJ3EnIDogJ2QnLCBtcmVnKTsKICAgICAgICAgICAgIHJldHVybiBUcnVlOwogICAgICAgICAgfSBlbHNlIGlmIChCID09IDgpIHsKQEAgLTczNzIsNyArNzM3Miw3IEBACiAgICAgICAgICAgICAgICBkZWZhdWx0OiB2YXNzZXJ0KDApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHV0RFJlZ0k2NChkcmVnLCB1bm9wKG9wLCBnZXRRUmVnKG1yZWcpKSwgY29uZFQpOwotICAgICAgICAgICAgRElQKCJ2bW92bi5pJXUgZCV1LCBxJXVcbiIsIDE2IDw8IHNpemUsIGRyZWcsIG1yZWcpOworICAgICAgICAgICAgRElQKCJ2bW92bi5pJWQgZCV1LCBxJXVcbiIsIDE2IDw8IHNpemUsIGRyZWcsIG1yZWcpOwogICAgICAgICAgICAgcmV0dXJuIFRydWU7CiAgICAgICAgICB9IGVsc2UgaWYgKEIgPT0gOSB8fCAoQiA+PiAxKSA9PSA1KSB7CiAgICAgICAgICAgICAvKiBWUU1PVk4sIFZRTU9WVU4gKi8KQEAgLTc0MDEsNyArNzQwMSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBGYWxzZTsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZhc3NlcnQoMCk7CiAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBESVAoInZxbW92dW4ucyV1IGQldSwgcSV1XG4iLCAxNiA8PCBzaXplLCBkcmVnLCBtcmVnKTsKKyAgICAgICAgICAgICAgICAgIERJUCgidnFtb3Z1bi5zJWQgZCV1LCBxJXVcbiIsIDE2IDw8IHNpemUsIGRyZWcsIG1yZWcpOwogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNpemUpIHsKQEAgLTc0MTEsNyArNzQxMSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6IHJldHVybiBGYWxzZTsKICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZhc3NlcnQoMCk7CiAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBESVAoInZxbW92bi5zJXUgZCV1LCBxJXVcbiIsIDE2IDw8IHNpemUsIGRyZWcsIG1yZWcpOworICAgICAgICAgICAgICAgICAgRElQKCJ2cW1vdm4ucyVkIGQldSwgcSV1XG4iLCAxNiA8PCBzaXplLCBkcmVnLCBtcmVnKTsKICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAgc3dpdGNoIChzaXplKSB7CkBAIC03NDIxLDcgKzc0MjEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gRmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2YXNzZXJ0KDApOwogICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgRElQKCJ2cW1vdm4udSV1IGQldSwgcSV1XG4iLCAxNiA8PCBzaXplLCBkcmVnLCBtcmVnKTsKKyAgICAgICAgICAgICAgICAgIERJUCgidnFtb3ZuLnUlZCBkJXUsIHEldVxuIiwgMTYgPDwgc2l6ZSwgZHJlZywgbXJlZyk7CiAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KDApOwpAQCAtNzQ1NCw3ICs3NDU0LDcgQEAKICAgICAgICAgICAgIGFzc2lnbihyZXMsIGJpbm9wKG9wLCB1bm9wKGN2dCwgZ2V0RFJlZ0k2NChtcmVnKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVOChzaGlmdF9pbW0pKSk7CiAgICAgICAgICAgICBwdXRRUmVnKGRyZWcsIG1rZXhwcihyZXMpLCBjb25kVCk7Ci0gICAgICAgICAgICBESVAoInZzaGxsLmkldSBxJXUsIGQldSwgIyV1XG4iLCA4IDw8IHNpemUsIGRyZWcsIG1yZWcsIDggPDwgc2l6ZSk7CisgICAgICAgICAgICBESVAoInZzaGxsLmklZCBxJXUsIGQldSwgIyVkXG4iLCA4IDw8IHNpemUsIGRyZWcsIG1yZWcsIDggPDwgc2l6ZSk7CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZTsKICAgICAgICAgIH0gZWxzZSBpZiAoKEIgPj4gMykgPT0gMyAmJiAoQiAmIDMpID09IDApIHsKICAgICAgICAgICAgIC8qIFZDVlQgKGhhbGY8LT5zaW5nbGUpICovCkBAIC04Mzg3LDcgKzgzODcsNyBAQAogICAgICAgICAgICAgbWtfbmVvbl9lbGVtX2xvYWRfdG9fb25lX2xhbmUockQsIGluYywgaSwgTiwgc2l6ZSwgYWRkcik7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICBta19uZW9uX2VsZW1fc3RvcmVfZnJvbV9vbmVfbGFuZShyRCwgaW5jLCBpLCBOLCBzaXplLCBhZGRyKTsKLSAgICAgICAgIERJUCgidiVzJXUuJXUgeyIsIGJMID8gImxkIiA6ICJzdCIsIE4gKyAxLCA4IDw8IHNpemUpOworICAgICAgICAgRElQKCJ2JXMldS4lZCB7IiwgYkwgPyAibGQiIDogInN0IiwgTiArIDEsIDggPDwgc2l6ZSk7CiAgICAgICAgICBmb3IgKGogPSAwOyBqIDw9IE47IGorKykgewogICAgICAgICAgICAgaWYgKGopCiAgICAgICAgICAgICAgICBESVAoIiwgIik7CkBAIC04NDgyLDcgKzg0ODIsNyBAQAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgfQotICAgICAgICAgRElQKCJ2bGQldS4ldSB7IiwgTiArIDEsIDggPDwgc2l6ZSk7CisgICAgICAgICBESVAoInZsZCV1LiVkIHsiLCBOICsgMSwgOCA8PCBzaXplKTsKICAgICAgICAgIGZvciAociA9IDA7IHIgPCByZWdzOyByKyspIHsKICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPD0gTjsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoaSB8fCByKQpAQCAtODc4Myw3ICs4NzgzLDcgQEAKICAgICAgICAgICAgIHB1dElSZWdBKHJOLCBlLCBJUlRlbXBfSU5WQUxJRCwgSWprX0JvcmluZyk7CiAgICAgICB9CiAKLSAgICAgIERJUCgidiVzJXUuJXUgeyIsIGJMID8gImxkIiA6ICJzdCIsIE4gKyAxLCA4IDw8IElOU04oNyw2KSk7CisgICAgICBESVAoInYlcyV1LiVkIHsiLCBiTCA/ICJsZCIgOiAic3QiLCBOICsgMSwgOCA8PCBJTlNOKDcsNikpOwogICAgICAgaWYgKChpbmMgPT0gMSAmJiByZWdzICogKE4gKyAxKSA+IDEpCiAgICAgICAgICAgfHwgKGluYyA9PSAyICYmIHJlZ3MgPiAxICYmIE4gPiAwKSkgewogICAgICAgICAgRElQKCJkJXUtZCV1IiwgckQsIHJEICsgcmVncyAqIChOICsgMSkgLSAxKTsKQEAgLTEyNjc0LDkgKzEyNjc0LDkgQEAKICAgICAgICAgIHRyYW5zZmVyIGxhc3QgZm9yIGEgbG9hZCBhbmQgZmlyc3QgZm9yIGEgc3RvcmUuICBSZXF1aXJlcwogICAgICAgICAgcmVvcmRlcmluZyB4T2ZmL3hSZWcuICovCiAgICAgICBpZiAoMCkgewotICAgICAgICAgdmV4X3ByaW50ZigiXG5SRUdfTElTVF9QUkU6IChyTj0lZClcbiIsIHJOKTsKKyAgICAgICAgIHZleF9wcmludGYoIlxuUkVHX0xJU1RfUFJFOiAock49JXUpXG4iLCByTik7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgblg7IGkrKykKLSAgICAgICAgICAgIHZleF9wcmludGYoInJlZyAlZCAgIG9mZiAlZFxuIiwgeFJlZ1tpXSwgeE9mZltpXSk7CisgICAgICAgICAgICB2ZXhfcHJpbnRmKCJyZWcgJXUgICBvZmYgJXVcbiIsIHhSZWdbaV0sIHhPZmZbaV0pOwogICAgICAgICAgdmV4X3ByaW50ZigiXG4iKTsKICAgICAgIH0KIApAQCAtMTI3MTUsNyArMTI3MTUsNyBAQAogICAgICAgaWYgKDApIHsKICAgICAgICAgIHZleF9wcmludGYoIlJFR19MSVNUX1BPU1Q6XG4iKTsKICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuWDsgaSsrKQotICAgICAgICAgICAgdmV4X3ByaW50ZigicmVnICVkICAgb2ZmICVkXG4iLCB4UmVnW2ldLCB4T2ZmW2ldKTsKKyAgICAgICAgICAgIHZleF9wcmludGYoInJlZyAldSAgIG9mZiAldVxuIiwgeFJlZ1tpXSwgeE9mZltpXSk7CiAgICAgICAgICB2ZXhfcHJpbnRmKCJcbiIpOwogICAgICAgfQogICAgfQpAQCAtMTMzOTgsNyArMTMzOTgsNyBAQAogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoMCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBESVAoInZkdXAuJXUgcSV1LCByJXVcbiIsIDMyIC8gKDE8PHNpemUpLCByRCwgclQpOworICAgICAgICAgICAgRElQKCJ2ZHVwLiVkIHEldSwgciV1XG4iLCAzMiAvICgxPDxzaXplKSwgckQsIHJUKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBzd2l0Y2ggKHNpemUpIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKQEAgLTEzNDE1LDcgKzEzNDE1LDcgQEAKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KDApOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRElQKCJ2ZHVwLiV1IGQldSwgciV1XG4iLCAzMiAvICgxPDxzaXplKSwgckQsIHJUKTsKKyAgICAgICAgICAgIERJUCgidmR1cC4lZCBkJXUsIHIldVxuIiwgMzIgLyAoMTw8c2l6ZSksIHJELCByVCk7CiAgICAgICAgICB9CiAgICAgICAgICBnb3RvIGRlY29kZV9zdWNjZXNzX3ZmcDsKICAgICAgIH0KQEAgLTE0MzM4LDYgKzE0MzM4LDExIEBACiAgICAgICBVSW50IHNpemUgICAgICA9IGJTWCA9PSAwID8gMTYgOiAzMjsKICAgICAgIEludCAgZnJhY19iaXRzID0gc2l6ZSAtICgoaW1tNCA8PCAxKSB8IGJJKTsKICAgICAgIFVJbnQgZCAgICAgICAgID0gZHBfb3AgID8gKChiRCA8PCA0KSB8IFZkKSAgOiAoKFZkIDw8IDEpIHwgYkQpOworCisgICAgICBJUkV4cHIqIHJtICAgICA9IG1rVTMyKElycm1fTkVBUkVTVCk7CisgICAgICBJUlRlbXAgIHNjYWxlICA9IG5ld1RlbXAoSXR5X0Y2NCk7CisgICAgICBhc3NpZ24oc2NhbGUsIHVub3AoSW9wX0kzMlV0b0Y2NCwgbWtVMzIoIDEgPDwgKGZyYWNfYml0cy0xKSApKSk7CisKICAgICAgIGlmIChmcmFjX2JpdHMgPj0gMSAmJiBmcmFjX2JpdHMgPD0gMzIgJiYgIXRvX2ZpeGVkICYmICFkcF9vcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzaXplID09IDMyKSB7CiAgICAgICAgICAvKiBWQ1ZULkYzMi57UyxVfTMyIFNbZF0sIFNbZF0sICNmcmFjX2JpdHMgKi8KQEAgLTE0MzQ5LDkgKzE0MzU0LDYgQEAKICAgICAgICAgIGFzc2lnbihzcmMzMiwgIHVub3AoSW9wX1JlaW50ZXJwRjMyYXNJMzIsIGdldEZSZWcoZCkpKTsKICAgICAgICAgIElSRXhwciogYXNfRjY0ID0gdW5vcCggdW5zeW5lZCA/IElvcF9JMzJVdG9GNjQgOiBJb3BfSTMyU3RvRjY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoc3JjMzIgKSApOwotICAgICAgICAgSVJUZW1wIHNjYWxlID0gbmV3VGVtcChJdHlfRjY0KTsKLSAgICAgICAgIGFzc2lnbihzY2FsZSwgdW5vcChJb3BfSTMyVXRvRjY0LCBta1UzMiggMSA8PCAoZnJhY19iaXRzLTEpICkpKTsKLSAgICAgICAgIElSRXhwciogcm0gICAgID0gbWtVMzIoSXJybV9ORUFSRVNUKTsKICAgICAgICAgIElSRXhwciogcmVzRjY0ID0gdHJpb3AoSW9wX0RpdkY2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm0sIGFzX0Y2NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW9wKElvcF9BZGRGNjQsIHJtLCBta2V4cHIoc2NhbGUpLApAQCAtMTQzNzEsOSArMTQzNzMsNiBAQAogICAgICAgICAgYXNzaWduKHNyYzMyLCB1bm9wKElvcF82NHRvMzIsIGdldERSZWdJNjQoZCkpKTsKICAgICAgICAgIElSRXhwciogYXNfRjY0ID0gdW5vcCggdW5zeW5lZCA/IElvcF9JMzJVdG9GNjQgOiBJb3BfSTMyU3RvRjY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoc3JjMzIgKSApOwotICAgICAgICAgSVJUZW1wIHNjYWxlID0gbmV3VGVtcChJdHlfRjY0KTsKLSAgICAgICAgIGFzc2lnbihzY2FsZSwgdW5vcChJb3BfSTMyVXRvRjY0LCBta1UzMiggMSA8PCAoZnJhY19iaXRzLTEpICkpKTsKLSAgICAgICAgIElSRXhwciogcm0gICAgID0gbWtVMzIoSXJybV9ORUFSRVNUKTsKICAgICAgICAgIElSRXhwciogcmVzRjY0ID0gdHJpb3AoSW9wX0RpdkY2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm0sIGFzX0Y2NCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW9wKElvcF9BZGRGNjQsIHJtLCBta2V4cHIoc2NhbGUpLApAQCAtMTQzODgsMTAgKzE0Mzg3LDcgQEAKICAgICAgICAgIC8qIFZDVlQue1MsVX0zMi5GNjQgRFtkXSwgRFtkXSwgI2ZyYWNfYml0cyAqLwogICAgICAgICAgSVJUZW1wIHNyY0Y2NCA9IG5ld1RlbXAoSXR5X0Y2NCk7CiAgICAgICAgICBhc3NpZ24oc3JjRjY0LCBnZXREUmVnKGQpKTsKLSAgICAgICAgIElSVGVtcCBzY2FsZSA9IG5ld1RlbXAoSXR5X0Y2NCk7Ci0gICAgICAgICBhc3NpZ24oc2NhbGUsIHVub3AoSW9wX0kzMlV0b0Y2NCwgbWtVMzIoIDEgPDwgKGZyYWNfYml0cy0xKSApKSk7CiAgICAgICAgICBJUlRlbXAgc2NhbGVkRjY0ID0gbmV3VGVtcChJdHlfRjY0KTsKLSAgICAgICAgIElSRXhwciogcm0gPSBta1UzMihJcnJtX05FQVJFU1QpOwogICAgICAgICAgYXNzaWduKHNjYWxlZEY2NCwgdHJpb3AoSW9wX011bEY2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJtLCBta2V4cHIoc3JjRjY0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW9wKElvcF9BZGRGNjQsIHJtLCBta2V4cHIoc2NhbGUpLApAQCAtMTQ0MDMsNiArMTQzOTksMjkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHJtb2RlKSwgbWtleHByKHNjYWxlZEY2NCkpKTsKICAgICAgICAgIHB1dERSZWdJNjQoZCwgdW5vcCh1bnN5bmVkID8gSW9wXzMyVXRvNjQgOiBJb3BfMzJTdG82NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoYXNJMzIpKSwgY29uZFQpOworCisgICAgICAgICBESVAoInZjdnQuJWMzMi5mNjQsIGQldSwgZCV1LCAjJWRcbiIsCisgICAgICAgICAgICAgdW5zeW5lZCA/ICd1JyA6ICdzJywgZCwgZCwgZnJhY19iaXRzKTsKKyAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3NfdmZwOworICAgICAgfQorICAgICAgaWYgKGZyYWNfYml0cyA+PSAxICYmIGZyYWNfYml0cyA8PSAzMiAmJiB0b19maXhlZCAmJiAhZHBfb3AKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc2l6ZSA9PSAzMikgeworICAgICAgICAgLyogVkNWVC57UyxVfTMyLkYzMiBTW2RdLCBTW2RdLCAjZnJhY19iaXRzICovCisgICAgICAgICBJUlRlbXAgc3JjRjMyID0gbmV3VGVtcChJdHlfRjMyKTsKKyAgICAgICAgIGFzc2lnbihzcmNGMzIsIGdldEZSZWcoZCkpOworICAgICAgICAgSVJUZW1wIHNjYWxlZEY2NCA9IG5ld1RlbXAoSXR5X0Y2NCk7CisgICAgICAgICBhc3NpZ24oc2NhbGVkRjY0LCB0cmlvcChJb3BfTXVsRjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm0sIHVub3AoSW9wX0YzMnRvRjY0LCBta2V4cHIoc3JjRjMyKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlvcChJb3BfQWRkRjY0LCBybSwgbWtleHByKHNjYWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoc2NhbGUpKSkpOworICAgICAgICAgSVJUZW1wIHJtb2RlID0gbmV3VGVtcChJdHlfSTMyKTsKKyAgICAgICAgIGFzc2lnbihybW9kZSwgbWtVMzIoSXJybV9aRVJPKSk7IC8vIGFzIHBlciB0aGUgc3BlYworICAgICAgICAgSVJUZW1wIGFzSTMyID0gbmV3VGVtcChJdHlfSTMyKTsKKyAgICAgICAgIGFzc2lnbihhc0kzMiwgYmlub3AodW5zeW5lZCA/IElvcF9GNjR0b0kzMlUgOiBJb3BfRjY0dG9JMzJTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIocm1vZGUpLCBta2V4cHIoc2NhbGVkRjY0KSkpOworICAgICAgICAgcHV0RlJlZyhkLCB1bm9wKElvcF9SZWludGVycEkzMmFzRjMyLCBta2V4cHIoYXNJMzIpKSwgY29uZFQpOworICAgICAgICAgRElQKCJ2Y3Z0LiVjMzIuZjMyLCBkJXUsIGQldSwgIyVkXG4iLAorICAgICAgICAgICAgIHVuc3luZWQgPyAndScgOiAncycsIGQsIGQsIGZyYWNfYml0cyk7CiAgICAgICAgICBnb3RvIGRlY29kZV9zdWNjZXNzX3ZmcDsKICAgICAgIH0KICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwpAQCAtMTYzMDMsNyArMTYzMjIsNyBAQAogICAgICAgICAgICAgICAgdmFzc2VydCgwKTsgLy8gZ3VhcmRlZCBieSAiaWYiIGFib3ZlCiAgICAgICAgICB9CiAgICAgICAgICBwdXRJUmVnQShyRCwgbWtleHByKGRzdFQpLCBjb25kVCwgSWprX0JvcmluZyk7Ci0gICAgICAgICBESVAoIiVzJXMgciV1LCByJXUsIFJPUiAjJXVcbiIsIG5tLCBuQ0MoSU5TTl9DT05EKSwgckQsIHJNLCByb3QpOworICAgICAgICAgRElQKCIlcyVzIHIldSwgciV1LCBST1IgIyVkXG4iLCBubSwgbkNDKElOU05fQ09ORCksIHJELCByTSwgcm90KTsKICAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3M7CiAgICAgICB9CiAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KQEAgLTE2NzYzLDEyICsxNjc4Miw2IEBACiAgICAgICB9CiAgICB9CiAKLSAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gTk9QIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwotICAgaWYgKDB4MDMyMEYwMDAgPT0gKGluc24gJiAweDBGRkZGRkZGKSkgewotICAgICAgRElQKCJub3Alc1xuIiwgbkNDKElOU05fQ09ORCkpOwotICAgICAgZ290byBkZWNvZGVfc3VjY2VzczsKLSAgIH0KLQogICAgLyogLS0tLS0tLS0tLS0tLS0gKEExKSBMRFJUIHJlZysvLSNpbW0xMiAtLS0tLS0tLS0tLS0tLSAqLwogICAgLyogTG9hZCBSZWdpc3RlciBVbnByaXZpbGVnZWQ6CiAgICAgICBsZHJ0PGM+IFJ0LCBbUm5dIHssICMrLy1pbW0xMn0KQEAgLTE3MjA1LDcgKzE3MjE4LDcgQEAKICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICAgIC8qIC0tLS0tLS0tLS0tLS0tIHJlYWQgQ1AxNSBUUElEUlVSTyByZWdpc3RlciAtLS0tLS0tLS0tLS0tICovCi0gICAvKiBtcmMgICAgIHAxNSwgMCwgcjAsIGMxMywgYzAsIDMgIHVwIHRvCisgICAvKiBtcmMgICAgIHAxNSwgMCwgcjAsICBjMTMsIGMwLCAzICB1cCB0bwogICAgICAgbXJjICAgICBwMTUsIDAsIHIxNCwgYzEzLCBjMCwgMwogICAgKi8KICAgIC8qIEkgZG9uJ3Qga25vdyB3aGV0aGVyIHRoaXMgaXMgcmVhbGx5IHY3LW9ubHkuICBCdXQgYW55d2F5LCB3ZQpAQCAtMTcyMjMsNiArMTcyMzYsMjUgQEAKICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgfQogCisgICAvKiAtLS0tLS0tLS0tLS0tLSByZWFkIENQMTUgUE1VU1JFTlIgcmVnaXN0ZXIgLS0tLS0tLS0tLS0tLSAqLworICAgLyogbXJjICAgICBwMTUsIDAsIHIwLCAgYzksIGMxNCwgMCAgdXAgdG8KKyAgICAgIG1yYyAgICAgcDE1LCAwLCByMTQsIGM5LCBjMTQsIDAKKyAgICovCisgICAvKiBBIHByb2dyYW0gcmVhZGluZyB0aGlzIHJlZ2lzdGVyIGlzIHJlYWxseSBhc2tpbmcgIndoaWNoCisgICAgICBwZXJmb3JtYW5jZSBtb25pdG9yaW5nIHJlZ2lzdGVzIGFyZSBhdmFpbGFibGUgaW4gdXNlciBzcGFjZT8KKyAgICAgIFRoZSBzaW1wbGUgYW5zd2VyIGhlcmUgaXMgdG8gcmV0dXJuIHplcm8sIG1lYW5pbmcgIm5vbmUiLiAgU2VlCisgICAgICAjMzQ1OTg0LiAqLworICAgaWYgKDB4MEUxOTBGMUUgPT0gKGluc24gJiAweDBGRkYwRkZGKSkgeworICAgICAgVUludCByRCA9IElOU04oMTUsMTIpOworICAgICAgaWYgKHJEIDw9IDE0KSB7CisgICAgICAgICAvKiBza2lwIHIxNSwgdGhhdCdzIHRvbyBzdHVwaWQgdG8gaGFuZGxlICovCisgICAgICAgICBwdXRJUmVnQShyRCwgbWtVMzIoMCksIGNvbmRULCBJamtfQm9yaW5nKTsKKyAgICAgICAgIERJUCgibXJjJXMgcDE1LDAsIHIldSwgYzksIGMxNCwgMFxuIiwgbkNDKElOU05fQ09ORCksIHJEKTsKKyAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3M7CisgICAgICB9CisgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgIH0KKwogICAgLyogSGFuZGxlIHZhcmlvdXMga2luZHMgb2YgYmFycmllcnMuICBUaGlzIGlzIHJhdGhlciBpbmRpc2NyaW1pbmF0ZQogICAgICAgaW4gdGhlIHNlbnNlIHRoYXQgdGhleSBhcmUgYWxsIHR1cm5lZCBpbnRvIGFuIElSIEZlbmNlLCB3aGljaAogICAgICAgbWVhbnMgd2UgZG9uJ3Qga25vdyB3aGljaCB0aGV5IGFyZSwgc28gdGhlIGJhY2sgZW5kIGhhcyB0bwpAQCAtMTcyNjIsNiArMTcyOTQsMzAgQEAKICAgIH0KIAogICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIC0tIEhpbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisgICBzd2l0Y2ggKGluc24gJiAweDBGRkZGRkZGKSB7CisgICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tIE5PUCAtLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICAgIGNhc2UgMHgwMzIwRjAwMDoKKyAgICAgICAgIERJUCgibm9wJXNcbiIsIG5DQyhJTlNOX0NPTkQpKTsKKyAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3M7CisgICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tIFlJRUxEIC0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgICAgY2FzZSAweDAzMjBGMDAxOgorICAgICAgICAgLyogQ29udGludWUgYWZ0ZXIgY29uZGl0aW9uYWxseSB5aWVsZGluZy4gKi8KKyAgICAgICAgIERJUCgieWllbGQlc1xuIiwgbkNDKElOU05fQ09ORCkpOworICAgICAgICAgc3RtdCggSVJTdG10X0V4aXQoIHVub3AoSW9wXzMydG8xLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRUID09IElSVGVtcF9JTlZBTElEIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBta1UzMigxKSA6IG1rZXhwcihjb25kVCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIElqa19ZaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUkNvbnN0X1UzMihndWVzdF9SMTVfY3Vycl9pbnN0cl9ub3RFTkMgKyA0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPRkZCX1IxNVQgKSk7CisgICAgICAgICBnb3RvIGRlY29kZV9zdWNjZXNzOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgIGJyZWFrOworICAgfQorCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogICAgLyogLS0gVkZQIChDUCAxMCwgQ1AgMTEpIGluc3RydWN0aW9ucyAoaW4gQVJNIG1vZGUpICAgICAgICAgLS0gKi8KICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKQEAgLTE3MzA1LDkgKzE3MzYxLDkgQEAKICAgIGlmIChzaWdpbGxfZGlhZykgewogICAgICAgdmV4X3ByaW50ZigiZGlzSW5zdHIoYXJtKTogdW5oYW5kbGVkIGluc3RydWN0aW9uOiAiCiAgICAgICAgICAgICAgICAgICIweCV4XG4iLCBpbnNuKTsKLSAgICAgIHZleF9wcmludGYoIiAgICAgICAgICAgICAgICAgY29uZD0lZCgweCV4KSAyNzoyMD0ldSgweCUwMngpICIKKyAgICAgIHZleF9wcmludGYoIiAgICAgICAgICAgICAgICAgY29uZD0lZCgweCV4KSAyNzoyMD0lZCgweCUwMngpICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ6ND0lZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzOjA9JXUoMHgleClcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzOjA9JWQoMHgleClcbiIsCiAgICAgICAgICAgICAgICAgIChJbnQpSU5TTl9DT05ELCAoVUludClJTlNOX0NPTkQsCiAgICAgICAgICAgICAgICAgIChJbnQpSU5TTigyNywyMCksIChVSW50KUlOU04oMjcsMjApLAogICAgICAgICAgICAgICAgICAoSW50KUlOU04oNCw0KSwKQEAgLTE5MTUxLDE2ICsxOTIwNywxOCBAQAogICAgICAgICAgLyogLS0tLS0tIE5PUCAtLS0tLS0gKi8KICAgICAgICAgIERJUCgibm9wXG4iKTsKICAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3M7Ci0gICAgICBjYXNlIDB4QkYyMDoKLSAgICAgICAgIC8qIC0tLS0tLSBXRkUgLS0tLS0tICovCi0gICAgICAgICAvKiBXRkUgZ2V0cyB1c2VkIGFzIGEgc3Bpbi1sb29wIGhpbnQuICBEbyB0aGUgdXN1YWwgdGhpbmcsCisgICAgICBjYXNlIDB4QkYxMDogLy8gWUlFTEQKKyAgICAgIGNhc2UgMHhCRjIwOiAvLyBXRkUKKyAgICAgICAgIC8qIC0tLS0tLSBXRkUsIFlJRUxEIC0tLS0tLSAqLworICAgICAgICAgLyogQm90aCBhcHBlYXIgdG8gZ2V0IHVzZWQgYXMgYSBzcGluLWxvb3AgaGludHMuICBEbyB0aGUgdXN1YWwgdGhpbmcsCiAgICAgICAgICAgICB3aGljaCBpcyB0byBjb250aW51ZSBhZnRlciB5aWVsZGluZy4gKi8KICAgICAgICAgIHN0bXQoIElSU3RtdF9FeGl0KCB1bm9wKElvcF8zMnRvMSwgbWtleHByKGNvbmRUKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWprX1lpZWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSQ29uc3RfVTMyKChndWVzdF9SMTVfY3Vycl9pbnN0cl9ub3RFTkMgKyAyKSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgLypDUFNSLlQqLyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0ZGQl9SMTVUICkpOwotICAgICAgICAgRElQKCJ3ZmVcbiIpOworICAgICAgICAgQm9vbCBpc1dGRSA9IElOU04wKDE1LDApID09IDB4QkYyMDsKKyAgICAgICAgIERJUChpc1dGRSA/ICJ3ZmVcbiIgOiAieWllbGRcbiIpOwogICAgICAgICAgZ290byBkZWNvZGVfc3VjY2VzczsKICAgICAgIGNhc2UgMHhCRjQwOgogICAgICAgICAgLyogLS0tLS0tIFNFViAtLS0tLS0gKi8KQEAgLTE5NjEzLDEwICsxOTY3MSwxMCBAQAogICAgICAgICAgICYmIHJEICE9IDE1ICYmIHJOID09IDEzICYmIGltbTUgPD0gMyAmJiBob3cgPT0gMCkgewogICAgICAgICAgdmFsaWQgPSBUcnVlOwogICAgICAgfQotICAgICAgLyogYWxzbyBhbGxvdyAic3ViLncgcmVnLCBzcCwgcmVnICAgdy8gbm8gc2hpZnQKKyAgICAgIC8qIGFsc28gYWxsb3cgInN1Yi53IHJlZywgc3AsIHJlZyAgIGxzbCAjTiBmb3IgTj0wLDEsMiBvciAzCiAgICAgICAgICAoVDEpICJTVUIgKFNQIG1pbnVzIHJlZ2lzdGVyKSAqLwogICAgICAgaWYgKCF2YWxpZCAmJiBJTlNOMCg4LDUpID09IEJJVFM0KDEsMSwwLDEpIC8vIHN1YgotICAgICAgICAgICYmIHJEICE9IDE1ICYmIHJOID09IDEzICYmIGltbTUgPT0gMCAmJiBob3cgPT0gMCkgeworICAgICAgICAgICYmIHJEICE9IDE1ICYmIHJOID09IDEzICYmIGltbTUgPD0gMyAmJiBob3cgPT0gMCkgewogICAgICAgICAgdmFsaWQgPSBUcnVlOwogICAgICAgfQogICAgICAgaWYgKHZhbGlkKSB7CkBAIC0xOTg0OCwxMSArMTk5MDYsMTQgQEAKICAgIC8qIC0tLS0tLS0tLS0tLSAoVD8pIE1WTntTfS5XIFJkLCBSbiwge3NoaWZ0fSAtLS0tLS0tLS0tLS0gKi8KICAgIGlmICgoSU5TTjAoMTUsMCkgJiAweEZGQ0YpID09IDB4RUE0RgogICAgICAgICYmIElOU04xKDE1LDE1KSA9PSAwKSB7Ci0gICAgICBVSW50IHJEID0gSU5TTjEoMTEsOCk7Ci0gICAgICBVSW50IHJOID0gSU5TTjEoMywwKTsKLSAgICAgIGlmICghaXNCYWRSZWdUKHJEKSAmJiAhaXNCYWRSZWdUKHJOKSkgewotICAgICAgICAgVUludCBiUyAgICA9IElOU04wKDQsNCk7Ci0gICAgICAgICBVSW50IGlzTVZOID0gSU5TTjAoNSw1KTsKKyAgICAgIFVJbnQgckQgICAgICA9IElOU04xKDExLDgpOworICAgICAgVUludCByTiAgICAgID0gSU5TTjEoMywwKTsKKyAgICAgIFVJbnQgYlMgICAgICA9IElOU04wKDQsNCk7CisgICAgICBVSW50IGlzTVZOICAgPSBJTlNOMCg1LDUpOworICAgICAgQm9vbCByZWdzT0sgID0gKGJTIHx8IGlzTVZOKSAKKyAgICAgICAgICAgICAgICAgICAgICAgID8gKCFpc0JhZFJlZ1QockQpICYmICFpc0JhZFJlZ1Qock4pKQorICAgICAgICAgICAgICAgICAgICAgICAgOiAockQgIT0gMTUgJiYgck4gIT0gMTUgJiYgKHJEICE9IDEzIHx8IHJOICE9IDEzKSk7CisgICAgICBpZiAocmVnc09LKSB7CiAgICAgICAgICBVSW50IGltbTUgID0gKElOU04xKDE0LDEyKSA8PCAyKSB8IElOU04xKDcsNik7CiAgICAgICAgICBVSW50IGhvdyAgID0gSU5TTjEoNSw0KTsKIApAQCAtMjE0NTgsNyArMjE1MTksNyBAQAogICAgICAgVUludCByVDIgPSBJTlNOMSgxMSw4KTsKICAgICAgIFVJbnQgckQgID0gSU5TTjEoMywwKTsKICAgICAgIGlmICghaXNCYWRSZWdUKHJEKSAmJiAhaXNCYWRSZWdUKHJUKSAmJiAhaXNCYWRSZWdUKHJUMikKLSAgICAgICAgICAmJiByTiAhPSAxNSAmJiByRCAhPSByTiAmJiByRCAhPSByVCAmJiByRCAhPSByVCkgeworICAgICAgICAgICYmIHJOICE9IDE1ICYmIHJEICE9IHJOICYmIHJEICE9IHJUICYmIHJEICE9IHJUMikgewogICAgICAgICAgSVJUZW1wIHJlc1NDMSwgcmVzU0MzMiwgZGF0YTsKICAgICAgICAgIC8vIGdvIHVuY29uZAogICAgICAgICAgbWtfc2tpcF9vdmVyX1QzMl9pZl9jb25kX2lzX2ZhbHNlKCBjb25kVCApOwpAQCAtMjE1NDksNyArMjE2MTAsNyBAQAogICAgICAgVUludCBiVyAgID0gSU5TTjAoNSw1KTsKICAgICAgIFVJbnQgaW1tMiA9IElOU04xKDUsNCk7CiAgICAgICBpZiAoIWlzQmFkUmVnVChyTSkpIHsKLSAgICAgICAgIERJUCgicGxkJXMgW3IldSwgciV1LCBsc2wgJWRdXG4iLCBiVyA/ICJ3IiA6ICIiLCByTiwgck0sIGltbTIpOworICAgICAgICAgRElQKCJwbGQlcyBbciV1LCByJXUsIGxzbCAldV1cbiIsIGJXID8gInciIDogIiIsIHJOLCByTSwgaW1tMik7CiAgICAgICAgICBnb3RvIGRlY29kZV9zdWNjZXNzOwogICAgICAgfQogICAgICAgLyogZmFsbCB0aHJvdWdoICovCkBAIC0yMTU2MywxNiArMjE2MjQsMzAgQEAKICAgICAgIGhhdmUgdG8gc3VwcG9ydCBpdCBzaW5jZSBhcm0tbGludXggdXNlcyBUUElEUlVSTyBhcyBhIHRocmVhZAogICAgICAgc3RhdGUgcmVnaXN0ZXIuICovCiAgICBpZiAoKElOU04wKDE1LDApID09IDB4RUUxRCkgJiYgKElOU04xKDExLDApID09IDB4MEY3MCkpIHsKLSAgICAgIC8qIEZJWE1FOiBzaG91bGQgdGhpcyBiZSB1bmNvbmRpdGlvbmFsPyAqLwogICAgICAgVUludCByRCA9IElOU04xKDE1LDEyKTsKICAgICAgIGlmICghaXNCYWRSZWdUKHJEKSkgewotICAgICAgICAgcHV0SVJlZ1QockQsIElSRXhwcl9HZXQoT0ZGQl9UUElEUlVSTywgSXR5X0kzMiksIElSVGVtcF9JTlZBTElEKTsKKyAgICAgICAgIHB1dElSZWdUKHJELCBJUkV4cHJfR2V0KE9GRkJfVFBJRFJVUk8sIEl0eV9JMzIpLCBjb25kVCk7CiAgICAgICAgICBESVAoIm1yYyBwMTUsMCwgciV1LCBjMTMsIGMwLCAzXG4iLCByRCk7CiAgICAgICAgICBnb3RvIGRlY29kZV9zdWNjZXNzOwogICAgICAgfQogICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICB9CiAKKyAgIC8qIC0tLS0tLS0tLS0tLS0tIHJlYWQgQ1AxNSBQTVVTUkVOUiByZWdpc3RlciAtLS0tLS0tLS0tLS0tICovCisgICAvKiBtcmMgICAgIHAxNSwgMCwgcjAsICBjOSwgYzE0LCAwICB1cCB0bworICAgICAgbXJjICAgICBwMTUsIDAsIHIxNCwgYzksIGMxNCwgMAorICAgICAgU2VlIGNvbW1lbnQgb24gdGhlIEFSTSBlcXVpdmFsZW50IG9mIHRoaXMgKGFib3ZlKSBmb3IgZGV0YWlscy4KKyAgICovCisgICBpZiAoKElOU04wKDE1LDApID09IDB4RUUxOSkgJiYgKElOU04xKDExLDApID09IDB4MEYxRSkpIHsKKyAgICAgIFVJbnQgckQgPSBJTlNOMSgxNSwxMik7CisgICAgICBpZiAoIWlzQmFkUmVnVChyRCkpIHsKKyAgICAgICAgIHB1dElSZWdUKHJELCBta1UzMigwKSwgY29uZFQpOworICAgICAgICAgRElQKCJtcmMgcDE1LDAsIHIldSwgYzksIGMxNCwgMFxuIiwgckQpOworICAgICAgICAgZ290byBkZWNvZGVfc3VjY2VzczsKKyAgICAgIH0KKyAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLworICAgfQorCiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tIENMUkVYIC0tLS0tLS0tLS0tLS0tLS0tLSAqLwogICAgaWYgKElOU04wKDE1LDApID09IDB4RjNCRiAmJiBJTlNOMSgxNSwwKSA9PSAweDhGMkYpIHsKICAgICAgIC8qIEFGQUlDUywgdGhpcyBzaW1wbHkgY2FuY2VscyBhIChhbGw/KSByZXNlcnZhdGlvbnMgbWFkZSBieSBhCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ndWVzdF9nZW5lcmljX2JiX3RvX0lSLmMgYi9WRVgvcHJpdi9ndWVzdF9nZW5lcmljX2JiX3RvX0lSLmMKaW5kZXggY2EzNjgyZS4uNzc5ZjhhZSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfZ2VuZXJpY19iYl90b19JUi5jCisrKyBiL1ZFWC9wcml2L2d1ZXN0X2dlbmVyaWNfYmJfdG9fSVIuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X2dlbmVyaWNfYmJfdG9fSVIuaCBiL1ZFWC9wcml2L2d1ZXN0X2dlbmVyaWNfYmJfdG9fSVIuaAppbmRleCA0OWM5NGQ3Li43OGE1YTg3IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF9nZW5lcmljX2JiX3RvX0lSLmgKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfZ2VuZXJpY19iYl90b19JUi5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfZ2VuZXJpY194ODcuYyBiL1ZFWC9wcml2L2d1ZXN0X2dlbmVyaWNfeDg3LmMKaW5kZXggMGUzNmU5NC4uMmM5YjI1YiAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfZ2VuZXJpY194ODcuYworKysgYi9WRVgvcHJpdi9ndWVzdF9nZW5lcmljX3g4Ny5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzk2LDkgKzc5Niw5IEBACiAgICAgICB1bnZhbGlkYXRlZCBjYXNlcyBpbiB0aGUgY29kZSBiYXNlLiAqLwogICAgc3dpdGNoIChpbW04KSB7CiAgICAgICBjYXNlIDB4MDA6IGNhc2UgMHgwMjogY2FzZSAweDA4OiBjYXNlIDB4MEE6IGNhc2UgMHgwQzogY2FzZSAweDBFOgotICAgICAgY2FzZSAweDEyOiBjYXNlIDB4MTQ6IGNhc2UgMHgxQToKKyAgICAgIGNhc2UgMHgxMjogY2FzZSAweDE0OiBjYXNlIDB4MTg6IGNhc2UgMHgxQToKICAgICAgIGNhc2UgMHgzMDogY2FzZSAweDM0OiBjYXNlIDB4Mzg6IGNhc2UgMHgzQToKLSAgICAgIGNhc2UgMHg0MDogY2FzZSAweDQ0OiBjYXNlIDB4NDY6IGNhc2UgMHg0QToKKyAgICAgIGNhc2UgMHg0MDogY2FzZSAweDQyOiBjYXNlIDB4NDQ6IGNhc2UgMHg0NjogY2FzZSAweDRBOgogICAgICAgICAgYnJlYWs7CiAgICAgICBkZWZhdWx0OgogICAgICAgICAgcmV0dXJuIEZhbHNlOwpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfZ2VuZXJpY194ODcuaCBiL1ZFWC9wcml2L2d1ZXN0X2dlbmVyaWNfeDg3LmgKaW5kZXggOGNjZGZkNi4uNWE1MjBlYSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfZ2VuZXJpY194ODcuaAorKysgYi9WRVgvcHJpdi9ndWVzdF9nZW5lcmljX3g4Ny5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfbWlwc19kZWZzLmggYi9WRVgvcHJpdi9ndWVzdF9taXBzX2RlZnMuaAppbmRleCBjNjBlMDI2Li5mNGMzYmJjIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF9taXBzX2RlZnMuaAorKysgYi9WRVgvcHJpdi9ndWVzdF9taXBzX2RlZnMuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X21pcHNfaGVscGVycy5jIGIvVkVYL3ByaXYvZ3Vlc3RfbWlwc19oZWxwZXJzLmMKaW5kZXggODYzZWZkYS4uNGZiYjY3ZSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfbWlwc19oZWxwZXJzLmMKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfbWlwc19oZWxwZXJzLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgUlQtUksKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFJULVJLCiAgICAgICBtaXBzLXZhbGdyaW5kQHJ0LXJrLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMDg1LDYgKzEwODUsMTAgQEAKICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJyZGh3ciAlMCwgJDFcblx0IiA6ICI9ciIgKHgpICk7CiAgICAgICAgICBicmVhazsKIAorICAgICAgY2FzZSAzMTogIC8qIHggPSBDVk1YX2dldF9jeWNsZXMoKSAqLworICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJkaHdyICUwLCAkMzFcblx0IiA6ICI9ciIgKHgpICk7CisgICAgICAgICBicmVhazsKKwogICAgICAgZGVmYXVsdDoKICAgICAgICAgIHZhc3NlcnQoMCk7CiAgICAgICAgICBicmVhazsKQEAgLTExMDAsNiArMTEwNCwxMCBAQAogICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJkaHdyICUwLCAkMVxuXHQiIDogIj1yIiAoeCkgKTsKICAgICAgICAgIGJyZWFrOwogCisgICAgICBjYXNlIDMxOiAgLyogeCA9IENWTVhfZ2V0X2N5Y2xlcygpICovCisgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygicmRod3IgJTAsICQzMVxuXHQiIDogIj1yIiAoeCkgKTsKKyAgICAgICAgIGJyZWFrOworCiAgICAgICBkZWZhdWx0OgogICAgICAgICAgdmFzc2VydCgwKTsKICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfbWlwc190b0lSLmMgYi9WRVgvcHJpdi9ndWVzdF9taXBzX3RvSVIuYwppbmRleCA4ZTk0Mjk4Li5iNzJkMzE0IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF9taXBzX3RvSVIuYworKysgYi9WRVgvcHJpdi9ndWVzdF9taXBzX3RvSVIuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE1NTQsMTMgKzE1NTQsMTMgQEAKICAgICAgIGNhc2UgMHgzQToKICAgICAgICAgIGlmICgocmVnUnMgJiAweDAxKSA9PSAwKSB7CiAgICAgICAgICAgICAvKiBEb3VibGV3b3JkIFNoaWZ0IFJpZ2h0IExvZ2ljYWwgLSBEU1JMOyBNSVBTNjQgKi8KLSAgICAgICAgICAgIERJUCgiZHNybCByJXUsIHIldSwgJWQiLCByZWdSZCwgcmVnUnQsIChJbnQpc0ltbXNhKTsKKyAgICAgICAgICAgIERJUCgiZHNybCByJXUsIHIldSwgJWxsZCIsIHJlZ1JkLCByZWdSdCwgc0ltbXNhKTsKICAgICAgICAgICAgIGFzc2lnbih0bXBSZCwgYmlub3AoSW9wX1NocjY0LCBta2V4cHIodG1wUnQpLCBta1U4KHVJbW1zYSkpKTsKICAgICAgICAgICAgIHB1dElSZWcocmVnUmQsIG1rZXhwcih0bXBSZCkpOwogICAgICAgICAgfSBlbHNlIGlmICgocmVnUnMgJiAweDAxKSA9PSAxKSB7CiAgICAgICAgICAgICAvKiBEb3VibGV3b3JkIFJvdGF0ZSBSaWdodCAtIERST1RSOyBNSVBTNjRyMiAqLwogICAgICAgICAgICAgdmFzc2VydChtb2RlNjQpOwotICAgICAgICAgICAgRElQKCJkcm90ciByJXUsIHIldSwgJWQiLCByZWdSZCwgcmVnUnQsIChJbnQpc0ltbXNhKTsKKyAgICAgICAgICAgIERJUCgiZHJvdHIgciV1LCByJXUsICVsbGQiLCByZWdSZCwgcmVnUnQsIHNJbW1zYSk7CiAgICAgICAgICAgICBJUlRlbXAgdG1wTCA9IG5ld1RlbXAodHkpOwogICAgICAgICAgICAgSVJUZW1wIHRtcFIgPSBuZXdUZW1wKHR5KTsKICAgICAgICAgICAgIGFzc2lnbih0bXBSLCBiaW5vcChJb3BfU2hyNjQsIG1rZXhwcih0bXBSdCksIG1rVTgodUltbXNhKSkpOwpAQCAtMTU3NSwxMiArMTU3NSwxMiBAQAogICAgICAgY2FzZSAweDNFOgogICAgICAgICAgaWYgKChyZWdScyAmIDB4MDEpID09IDApIHsKICAgICAgICAgICAgIC8qIERvdWJsZXdvcmQgU2hpZnQgUmlnaHQgTG9naWNhbCBQbHVzIDMyIC0gRFNSTDMyOyBNSVBTNjQgKi8KLSAgICAgICAgICAgIERJUCgiZHNybDMyIHIldSwgciV1LCAlZCIsIHJlZ1JkLCByZWdSdCwgKEludCkoc0ltbXNhICsgMzIpKTsKKyAgICAgICAgICAgIERJUCgiZHNybDMyIHIldSwgciV1LCAlbGxkIiwgcmVnUmQsIHJlZ1J0LCBzSW1tc2EgKyAzMik7CiAgICAgICAgICAgICBhc3NpZ24odG1wUmQsIGJpbm9wKElvcF9TaHI2NCwgbWtleHByKHRtcFJ0KSwgbWtVOCh1SW1tc2EgKyAzMikpKTsKICAgICAgICAgICAgIHB1dElSZWcocmVnUmQsIG1rZXhwcih0bXBSZCkpOwogICAgICAgICAgfSBlbHNlIGlmICgocmVnUnMgJiAweDAxKSA9PSAxKSB7CiAgICAgICAgICAgICAvKiBEb3VibGV3b3JkIFJvdGF0ZSBSaWdodCBQbHVzIDMyIC0gRFJPVFIzMjsgTUlQUzY0cjIgKi8KLSAgICAgICAgICAgIERJUCgiZHJvdHIzMiByJXUsIHIldSwgJWQiLCByZWdSZCwgcmVnUnQsIChJbnQpc0ltbXNhKTsKKyAgICAgICAgICAgIERJUCgiZHJvdHIzMiByJXUsIHIldSwgJWxsZCIsIHJlZ1JkLCByZWdSdCwgc0ltbXNhKTsKICAgICAgICAgICAgIHZhc3NlcnQobW9kZTY0KTsKICAgICAgICAgICAgIElSVGVtcCB0bXBMID0gbmV3VGVtcCh0eSk7CiAgICAgICAgICAgICBJUlRlbXAgdG1wUiA9IG5ld1RlbXAodHkpOwpAQCAtMTYzNCwxNCArMTYzNCwxNCBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgzODogIC8qIERvdWJsZXdvcmQgU2hpZnQgTGVmdCBMb2dpY2FsIC0gRFNMTDsgTUlQUzY0ICovCi0gICAgICAgICBESVAoImRzbGwgciV1LCByJXUsICVkIiwgcmVnUmQsIHJlZ1J0LCAoSW50KXNJbW1zYSk7CisgICAgICAgICBESVAoImRzbGwgciV1LCByJXUsICVsbGQiLCByZWdSZCwgcmVnUnQsIHNJbW1zYSk7CiAgICAgICAgICB2YXNzZXJ0KG1vZGU2NCk7CiAgICAgICAgICBhc3NpZ24odG1wUmQsIGJpbm9wKElvcF9TaGw2NCwgbWtleHByKHRtcFJ0KSwgbWtVOCh1SW1tc2EpKSk7CiAgICAgICAgICBwdXRJUmVnKHJlZ1JkLCBta2V4cHIodG1wUmQpKTsKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4M0M6ICAvKiBEb3VibGV3b3JkIFNoaWZ0IExlZnQgTG9naWNhbCBQbHVzIDMyIC0gRFNMTDMyOyBNSVBTNjQgKi8KLSAgICAgICAgIERJUCgiZHNsbDMyIHIldSwgciV1LCAlZCIsIHJlZ1JkLCByZWdSdCwgKEludClzSW1tc2EpOworICAgICAgICAgRElQKCJkc2xsMzIgciV1LCByJXUsICVsbGQiLCByZWdSZCwgcmVnUnQsIHNJbW1zYSk7CiAgICAgICAgICBhc3NpZ24odG1wUmQsIGJpbm9wKElvcF9TaGw2NCwgbWtleHByKHRtcFJ0KSwgbWtVOCh1SW1tc2EgKyAzMikpKTsKICAgICAgICAgIHB1dElSZWcocmVnUmQsIG1rZXhwcih0bXBSZCkpOwogICAgICAgICAgYnJlYWs7CkBAIC0xNjU4LDE0ICsxNjU4LDE0IEBACiAgICAgICB9CiAKICAgICAgIGNhc2UgMHgzQjogIC8qIERvdWJsZXdvcmQgU2hpZnQgUmlnaHQgQXJpdGhtZXRpYyAtIERTUkE7IE1JUFM2NCAqLwotICAgICAgICAgRElQKCJkc3JhIHIldSwgciV1LCAlZCIsIHJlZ1JkLCByZWdSdCwgKEludClzSW1tc2EpOworICAgICAgICAgRElQKCJkc3JhIHIldSwgciV1LCAlbGxkIiwgcmVnUmQsIHJlZ1J0LCBzSW1tc2EpOwogICAgICAgICAgYXNzaWduKHRtcFJkLCBiaW5vcChJb3BfU2FyNjQsIG1rZXhwcih0bXBSdCksIG1rVTgodUltbXNhKSkpOwogICAgICAgICAgcHV0SVJlZyhyZWdSZCwgbWtleHByKHRtcFJkKSk7CiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDNGOiAgLyogRG91Ymxld29yZCBTaGlmdCBSaWdodCBBcml0aG1ldGljIFBsdXMgMzIgLSBEU1JBMzI7CiAgICAgICAgICAgICAgICAgICAgICBNSVBTNjQgKi8KLSAgICAgICAgIERJUCgiZHNyYTMyIHIldSwgciV1LCAlZCIsIHJlZ1JkLCByZWdSdCwgKEludClzSW1tc2EpOworICAgICAgICAgRElQKCJkc3JhMzIgciV1LCByJXUsICVsbGQiLCByZWdSZCwgcmVnUnQsIHNJbW1zYSk7CiAgICAgICAgICBhc3NpZ24odG1wUmQsIGJpbm9wKElvcF9TYXI2NCwgbWtleHByKHRtcFJ0KSwgbWtVOCh1SW1tc2EgKyAzMikpKTsKICAgICAgICAgIHB1dElSZWcocmVnUmQsIG1rZXhwcih0bXBSZCkpOwogICAgICAgICAgYnJlYWs7CkBAIC0xNzQ1LDcgKzE3NDUsNyBAQAogICAgICAgVUludCBmcGNfY2MgPSBnZXRfZnBjX2NjKGNpbnMpOwogICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgIGNhc2UgMHgxMDogeyAgLyogQy5jb25kLlMgKi8KLSAgICAgICAgICAgIERJUCgiYy4lcy5zICVkLCBmJWQsIGYlZCIsIHNob3dDb25kQ29kZShjb25kKSwgZnBjX2NjLCBmcywgZnQpOworICAgICAgICAgICAgRElQKCJjLiVzLnMgJXUsIGYldSwgZiV1Iiwgc2hvd0NvbmRDb2RlKGNvbmQpLCBmcGNfY2MsIGZzLCBmdCk7CiAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0xOTU0LDcgKzE5NTQsNyBAQAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgIGNhc2UgMHgxMTogeyAgLyogQy5jb25kLkQgKi8KLSAgICAgICAgICAgIERJUCgiYy4lcy5kICVkLCBmJWQsIGYlZCIsIHNob3dDb25kQ29kZShjb25kKSwgZnBjX2NjLCBmcywgZnQpOworICAgICAgICAgICAgRElQKCJjLiVzLmQgJXUsIGYldSwgZiV1Iiwgc2hvd0NvbmRDb2RlKGNvbmQpLCBmcGNfY2MsIGZzLCBmdCk7CiAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0yMjU3LDcgKzIyNTcsNyBAQAogICAgICAgY2FzZSAweDFDOiB7CiAgICAgICAgICBzd2l0Y2gob3BjMikgeyAKICAgICAgICAgICAgIGNhc2UgMHgwMzogeyAgLyogRE1VTCByZCwgcnMsIHJ0ICovCi0gICAgICAgICAgICAgICBESVAoImRtdWwgciVkLCByJWQsIHIlZCIsIHJlZ1JkLCByZWdScywgcmVnUnQpOworICAgICAgICAgICAgICAgRElQKCJkbXVsIHIldSwgciV1LCByJXUiLCByZWdSZCwgcmVnUnMsIHJlZ1J0KTsKICAgICAgICAgICAgICAgIElSVGVtcCB0MCA9IG5ld1RlbXAoSXR5X0kxMjgpOwogICAgICAgICAgICAgICAgYXNzaWduKHQwLCBiaW5vcChJb3BfTXVsbFU2NCwgZ2V0SVJlZyhyZWdScyksIGdldElSZWcocmVnUnQpKSk7CiAgICAgICAgICAgICAgICBwdXRJUmVnKHJlZ1JkLCB1bm9wKElvcF8xMjh0bzY0LCBta2V4cHIodDApKSk7CkBAIC0yNDI1LDcgKzI0MjUsNyBAQAogCiAgICAgICAgICAgICAvKiBVbnNpZ25lZCBCeXRlIEFkZCAtIEJBRERVIHJkLCBycywgcnQ7IENhdml1bSBPQ1RFT04gKi8KICAgICAgICAgICAgIGNhc2UgMHgyODogewotICAgICAgICAgICAgICAgRElQKCJCQUREVSByJWQsIHIlZCwgciVkIiwgcmVnUnMsIHJlZ1J0LCByZWdSZCk7CisgICAgICAgICAgICAgICBESVAoIkJBRERVIHIldSwgciV1LCByJXUiLCByZWdScywgcmVnUnQsIHJlZ1JkKTsKICAgICAgICAgICAgICAgIElSVGVtcCB0MCA9IG5ld1RlbXAoSXR5X0k4KTsKICAKICAgICAgICAgICAgICAgIGFzc2lnbih0MCwgYmlub3AoSW9wX0FkZDgsCkBAIC0yNDQ5LDcgKzI0NDksNyBAQAogICAgICAgICAgICAgICAgSVJUZW1wIG9sZCA9IG5ld1RlbXAodHkpOwogICAgICAgICAgICAgICAgSVJUZW1wIG55dSA9IElSVGVtcF9JTlZBTElEOwogICAgICAgICAgICAgICAgYXNzaWduKG9sZCwgZ2V0SVJlZyhyZWdScykpOwotICAgICAgICAgICAgICAgRElQKCJwb3AgciVkLCByJWQiLCByZWdSZCwgcmVnUnMpOworICAgICAgICAgICAgICAgRElQKCJwb3AgciV1LCByJXUiLCByZWdSZCwgcmVnUnMpOwogIAogICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDU7IGkrKykgewogICAgICAgICAgICAgICAgICAgbWFza1tpXSA9IG5ld1RlbXAodHkpOwpAQCAtMjUwNSw3ICsyNTA1LDcgQEAKICAgICAgICAgICAgICAgIElSVGVtcCBtYXNrWzZdOwogICAgICAgICAgICAgICAgSVJUZW1wIG9sZCA9IG5ld1RlbXAodHkpOwogICAgICAgICAgICAgICAgSVJUZW1wIG55dSA9IElSVGVtcF9JTlZBTElEOwotICAgICAgICAgICAgICAgRElQKCJkcG9wIHIlZCwgciVkIiwgcmVnUmQsIHJlZ1JzKTsKKyAgICAgICAgICAgICAgIERJUCgiZHBvcCByJXUsIHIldSIsIHJlZ1JkLCByZWdScyk7CiAgCiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICBtYXNrW2ldID0gbmV3VGVtcCh0eSk7CkBAIC0yNTM2LDcgKzI1MzYsNyBAQAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjYXNlIDB4MzI6ICAvKiA1LiBDSU5TIHJkLCBycywgcCwgbGVubTEgKi8KLSAgICAgICAgICAgICAgIERJUCgiY2lucyByJXUsIHIldSwgJWQsICVkXG4iLCByZWdSdCwgcmVnUnMsIHAsIGxlbk0xKTsgCisgICAgICAgICAgICAgICBESVAoImNpbnMgciV1LCByJXUsICV1LCAldVxuIiwgcmVnUnQsIHJlZ1JzLCBwLCBsZW5NMSk7IAogICAgICAgICAgICAgICAgYXNzaWduICggdG1wICAsIGJpbm9wKElvcF9TaGw2NCwgbWtleHByKHRtcFJzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U4KDY0LSggbGVuTTErMSApKSkpOwogICAgICAgICAgICAgICAgYXNzaWduICggdG1wUnQsIGJpbm9wKElvcF9TaHI2NCwgbWtleHByKCB0bXAgKSwKQEAgLTI1NzMsNyArMjU3Myw3IEBACiAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSAweDJCOiAgLyogMjAuIFNORSByZCwgcnMsIHJ0ICovCi0gICAgICAgICAgICAgICBESVAoInNuZSByJWQsIHIlZCwgciVkIiwgcmVnUmQscmVnUnMsIHJlZ1J0KTsKKyAgICAgICAgICAgICAgIERJUCgic25lIHIldSwgciV1LCByJXUiLCByZWdSZCxyZWdScywgcmVnUnQpOwogICAgICAgICAgICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmVnUmQsIHVub3AoSW9wXzFVdG82NCwgYmlub3AoSW9wX0NtcE5FNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElSZWcocmVnUnMpLApAQCAtMjU4NSw3ICsyNTg1LDcgQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIDB4MkE6ICAvKiBTZXQgRXF1YWxzIC0gU0VROyBDYXZpdW0gT0NURU9OICovCi0gICAgICAgICAgICAgICBESVAoInNlcSByJWQsIHIlZCwgJWQiLCByZWdSZCwgcmVnUnMsIHJlZ1J0KTsKKyAgICAgICAgICAgICAgIERJUCgic2VxIHIldSwgciV1LCAlZCIsIHJlZ1JkLCByZWdScywgcmVnUnQpOwogICAgICAgICAgICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmVnUmQsIHVub3AoSW9wXzFVdG82NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wX0NtcEVRNjQsIGdldElSZWcocmVnUnMpLApAQCAtMjU5Nyw3ICsyNTk3LDcgQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIDB4MkU6ICAvKiBTZXQgRXF1YWxzIEltbWVkaWF0ZSAtIFNFUUk7IENhdml1bSBPQ1RFT04gKi8KLSAgICAgICAgICAgICAgIERJUCgic2VxaSByJWQsIHIlZCwgJWQiLCByZWdSdCwgcmVnUnMsIGltbSk7CisgICAgICAgICAgICAgICBESVAoInNlcWkgciV1LCByJXUsICV1IiwgcmVnUnQsIHJlZ1JzLCBpbW0pOwogICAgICAgICAgICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmVnUnQsIHVub3AoSW9wXzFVdG82NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wX0NtcEVRNjQsIGdldElSZWcocmVnUnMpLApAQCAtMjYwOSw3ICsyNjA5LDcgQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIDB4MkY6ICAvKiBTZXQgTm90IEVxdWFscyBJbW1lZGlhdGUgLSBTTkVJOyBDYXZpdW0gT0NURU9OICovCi0gICAgICAgICAgICAgICBESVAoInNuZWkgciVkLCByJWQsICVkIiwgcmVnUnQsIHJlZ1JzLCBpbW0pOworICAgICAgICAgICAgICAgRElQKCJzbmVpIHIldSwgciV1LCAldSIsIHJlZ1J0LCByZWdScywgaW1tKTsKICAgICAgICAgICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICAgICAgICAgICBwdXRJUmVnKHJlZ1J0LCB1bm9wKElvcF8xVXRvNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKElvcF9DbXBORTY0LApAQCAtMjYzMiwyMSArMjYzMiwzMSBAQAogICAgICAgICAgICAgY2FzZSAweDBBOiB7ICAvLyBseCAtIExvYWQgaW5kZXhlZCBpbnN0cnVjdGlvbnMKICAgICAgICAgICAgICAgIHN3aXRjaCAoZ2V0X3NhKHRoZUluc3RyKSkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDAwOiB7ICAvLyBMV1ggcmQsIGluZGV4KGJhc2UpCi0gICAgICAgICAgICAgICAgICAgICBESVAoImx3eCByJWQsIHIlZChyJWQpIiwgcmVnUmQsIHJlZ1J0LCByZWdScyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImx3eCByJXUsIHIldShyJXUpIiwgcmVnUmQsIHJlZ1J0LCByZWdScyk7CiAgICAgICAgICAgICAgICAgICAgICBMT0FEWF9TVE9SRV9QQVRURVJOOwogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZWdSZCwgbWtXaWRlbkZyb20zMih0eSwgbG9hZChJdHlfSTMyLCBta2V4cHIodDEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBjYXNlIDB4MDQ6ICAvLyBMSFggcmQsIGluZGV4KGJhc2UpCisgICAgICAgICAgICAgICAgICAgICBESVAoImxoeCByJXUsIHIldShyJXUpIiwgcmVnUmQsIHJlZ1J0LCByZWdScyk7CisgICAgICAgICAgICAgICAgICAgICBMT0FEWF9TVE9SRV9QQVRURVJOOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGU2NCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmVnUmQsIHVub3AoSW9wXzE2U3RvNjQsIGxvYWQoSXR5X0kxNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHQxKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmVnUmQsIHVub3AoSW9wXzE2U3RvMzIsIGxvYWQoSXR5X0kxNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHQxKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgY2FzZSAweDA4OiB7ICAvLyBMRFggcmQsIGluZGV4KGJhc2UpCi0gICAgICAgICAgICAgICAgICAgICBESVAoImxkeCByJWQsIHIlZChyJWQpIiwgcmVnUmQsIHJlZ1J0LCByZWdScyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImxkeCByJXUsIHIldShyJXUpIiwgcmVnUmQsIHJlZ1J0LCByZWdScyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KG1vZGU2NCk7IC8qIEN1cnJlbnRseSBJbXBsZW1lbnRlZCBvbmx5IGZvciBuNjQgKi8KICAgICAgICAgICAgICAgICAgICAgIExPQURYX1NUT1JFX1BBVFRFUk47CiAgICAgICAgICAgICAgICAgICAgICBwdXRJUmVnKHJlZ1JkLCBsb2FkKEl0eV9JNjQsIG1rZXhwcih0MSkpKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDA2OiB7ICAvLyBMQlVYIHJkLCBpbmRleChiYXNlKQotICAgICAgICAgICAgICAgICAgICAgRElQKCJsYnV4IHIlZCwgciVkKHIlZCkiLCByZWdSZCwgcmVnUnQsIHJlZ1JzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgibGJ1eCByJXUsIHIldShyJXUpIiwgcmVnUmQsIHJlZ1J0LCByZWdScyk7CiAgICAgICAgICAgICAgICAgICAgICBMT0FEWF9TVE9SRV9QQVRURVJOOwogICAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmVnUmQsIHVub3AoSW9wXzhVdG82NCwgbG9hZChJdHlfSTgsCkBAIC0yNjU3LDE0ICsyNjY3LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogeyAgLy8gTFdVWCByZCwgaW5kZXgoYmFzZSkgKENhdml1bSBPQ1RFT04pCi0gICAgICAgICAgICAgICAgICAgICBESVAoImx3dXggciVkLCByJWQociVkKSIsIHJlZ1JkLCByZWdSdCwgcmVnUnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJsd3V4IHIldSwgciV1KHIldSkiLCByZWdSZCwgcmVnUnQsIHJlZ1JzKTsKICAgICAgICAgICAgICAgICAgICAgIExPQURYX1NUT1JFX1BBVFRFUk47IC8qIHNhbWUgZm9yIGJvdGggMzIgYW5kIDY0IG1vZGVzKi8KICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmVnUmQsIG1rV2lkZW5Gcm9tMzIodHksIGxvYWQoSXR5X0kzMiwgbWtleHByKHQxKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlKSk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxNDogeyAgLy8gTEhVWCByZCwgaW5kZXgoYmFzZSkgKENhdml1bSBPQ1RFT04pCi0gICAgICAgICAgICAgICAgICAgICBESVAoImxodXggciVkLCByJWQociVkKSIsIHJlZ1JkLCByZWdSdCwgcmVnUnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJsaHV4IHIldSwgciV1KHIldSkiLCByZWdSZCwgcmVnUnQsIHJlZ1JzKTsKICAgICAgICAgICAgICAgICAgICAgIExPQURYX1NUT1JFX1BBVFRFUk47CiAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kZTY0KQogICAgICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZWdSZCwKQEAgLTI2NzUsNyArMjY4NSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxNjogeyAgLy8gTEJYIHJkLCBpbmRleChiYXNlKSAoQ2F2aXVtIE9DVEVPTikKLSAgICAgICAgICAgICAgICAgICAgIERJUCgibGJ4IHIlZCwgciVkKHIlZCkiLCByZWdSZCwgcmVnUnMsIHJlZ1J0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgibGJ4IHIldSwgciV1KHIldSkiLCByZWdSZCwgcmVnUnMsIHJlZ1J0KTsKICAgICAgICAgICAgICAgICAgICAgIExPQURYX1NUT1JFX1BBVFRFUk47CiAgICAgICAgICAgICAgICAgICAgICBpZiAobW9kZTY0KQogICAgICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZWdSZCwKQEAgLTI3MjksMTMgKzI3MzksMTMgQEAKICAgICAgIGNhc2UgMHgwMDogeyAgLyogU3BlY2lhbCAqLwogICAgICAgICAgc3dpdGNoIChmdW5jdGlvbikgewogICAgICAgICAgICAgY2FzZSAweDEwOiB7ICAvKiBNRkhJICovCi0gICAgICAgICAgICAgICBESVAoIm1maGkgYWMlZCByJWQiLCBhY19tZmhpbG8sIHJkKTsKKyAgICAgICAgICAgICAgIERJUCgibWZoaSBhYyV1IHIldSIsIGFjX21maGlsbywgcmQpOwogICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgdW5vcChJb3BfNjRISXRvMzIsIGdldEFjYyhhY19tZmhpbG8pKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY2FzZSAweDExOiB7ICAvKiBNVEhJICovCi0gICAgICAgICAgICAgICBESVAoIm10aGkgYWMlZCByJWQiLCBhYywgcnMpOworICAgICAgICAgICAgICAgRElQKCJtdGhpIGFjJXUgciV1IiwgYWMsIHJzKTsKICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgIGFzc2lnbih0MSwgdW5vcChJb3BfNjR0bzMyLCBnZXRBY2MoYWMpKSk7CiAgICAgICAgICAgICAgICBwdXRBY2MoYWMsIGJpbm9wKElvcF8zMkhMdG82NCwgZ2V0SVJlZyhycyksIG1rZXhwcih0MSkpKTsKQEAgLTI3NDMsMTMgKzI3NTMsMTMgQEAKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY2FzZSAweDEyOiB7ICAvKiBNRkxPICovCi0gICAgICAgICAgICAgICBESVAoIm1mbG8gYWMlZCByJWQiLCBhY19tZmhpbG8sIHJkKTsKKyAgICAgICAgICAgICAgIERJUCgibWZsbyBhYyV1IHIldSIsIGFjX21maGlsbywgcmQpOwogICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgdW5vcChJb3BfNjR0bzMyLCBnZXRBY2MoYWNfbWZoaWxvKSkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNhc2UgMHgxMzogeyAgLyogTVRMTyAqLwotICAgICAgICAgICAgICAgRElQKCJtdGxvIGFjJWQgciVkIiwgYWMsIHJzKTsKKyAgICAgICAgICAgICAgIERJUCgibXRsbyBhYyV1IHIldSIsIGFjLCBycyk7CiAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICBhc3NpZ24odDEsIHVub3AoSW9wXzY0SEl0bzMyLCBnZXRBY2MoYWMpKSk7CiAgICAgICAgICAgICAgICBwdXRBY2MoYWMsIGJpbm9wKElvcF8zMkhMdG82NCwgbWtleHByKHQxKSwgZ2V0SVJlZyhycykpKTsKQEAgLTI3NTcsNyArMjc2Nyw3IEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNhc2UgMHgxODogeyAgLyogTVVMVCAqLwotICAgICAgICAgICAgICAgRElQKCJtdWx0IGFjJWQgciVkLCByJWQiLCBhYywgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgIERJUCgibXVsdCBhYyV1IHIldSwgciV1IiwgYWMsIHJzLCBydCk7CiAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICBhc3NpZ24odDEsIGJpbm9wKElvcF9NdWxsUzMyLCBta05hcnJvd1RvMzIoSXR5X0kzMiwgZ2V0SVJlZyhycykpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta05hcnJvd1RvMzIoSXR5X0kzMiwgZ2V0SVJlZyhydCkpKSk7CkBAIC0yNzY2LDcgKzI3NzYsNyBAQAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjYXNlIDB4MTk6IHsgIC8qIE1VTFRVICovCi0gICAgICAgICAgICAgICBESVAoIm11bHR1IGFjJWQgciVkLCByJWQiLCBhYywgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgIERJUCgibXVsdHUgYWMldSByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgYXNzaWduKHQxLCBiaW5vcChJb3BfTXVsbFUzMiwgbWtOYXJyb3dUbzMyKEl0eV9JMzIsIGdldElSZWcocnMpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rTmFycm93VG8zMihJdHlfSTMyLApAQCAtMjc4MCw3ICsyNzkwLDcgQEAKICAgICAgIGNhc2UgMHgxQzogeyAgLyogU3BlY2lhbDIgKi8KICAgICAgICAgIHN3aXRjaCAoZnVuY3Rpb24pIHsKICAgICAgICAgICAgIGNhc2UgMHgwMDogeyAgLyogTUFERCAqLwotICAgICAgICAgICAgICAgRElQKCJtYWRkIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICBESVAoIm1hZGQgYWMldSwgciV1LCByJXUiLCBhYywgcnMsIHJ0KTsKICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgIHQzID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTI3OTMsNyArMjgwMyw3IEBACiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgMHgwMTogeyAgLyogTUFERFUgKi8KLSAgICAgICAgICAgICAgIERJUCgibWFkZHUgYWMlZCByJWQsIHIlZCIsIGFjLCBycywgcnQpOworICAgICAgICAgICAgICAgRElQKCJtYWRkdSBhYyV1IHIldSwgciV1IiwgYWMsIHJzLCBydCk7CiAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICB0MyA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0yODA2LDcgKzI4MTYsNyBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIDB4MDQ6IHsgIC8qIE1TVUIgKi8KLSAgICAgICAgICAgICAgIERJUCgibXN1YiBhYyVkIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICBESVAoIm1zdWIgYWMldSByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMjgxOSw3ICsyODI5LDcgQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSAweDA1OiB7ICAvKiBNU1VCVSAqLwotICAgICAgICAgICAgICAgRElQKCJtc3VidSBhYyVkIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICBESVAoIm1zdWJ1IGFjJXUgciV1LCByJXUiLCBhYywgcnMsIHJ0KTsKICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgIHQzID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTI4MzksNyArMjg0OSw3IEBACiAgICAgICAgICAgICBjYXNlIDB4MTI6IHsgIC8qIEFCU1FfUy5QSCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChzYSkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDE6IHsgIC8qIEFCU1FfUy5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhYnNxX3MucWIgciVkLCByJWQiLCByZCwgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJhYnNxX3MucWIgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTgpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC0yOTg4LDcgKzI5OTgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MjogeyAgLyogUkVQTC5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJyZXBsLnFiIHIlZCwgJWQiLCByZCwgZHNwX2ltbSk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInJlcGwucWIgciV1LCAldSIsIHJkLCBkc3BfaW1tKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAKICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmQsIG1rVTMyKChkc3BfaW1tIDw8IDI0KSB8IChkc3BfaW1tIDw8IDE2KSB8CkBAIC0yOTk2LDcgKzMwMDYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MzogeyAgLyogUkVQTFYuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicmVwbHYucWIgciVkLCByJWQiLCByZCwgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJyZXBsdi5xYiByJXUsIHIldSIsIHJkLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JOCk7CiAKQEAgLTMwMDksNyArMzAxOSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg0OiB7ICAvKiBQUkVDRVFVLlBILlFCTCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjZXF1LnBoLnFibCByJWQsIHIlZCIsIHJkLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInByZWNlcXUucGgucWJsIHIldSwgciV1IiwgcmQsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAKICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmQsIGJpbm9wKElvcF9PcjMyLApAQCAtMzAyNiw3ICszMDM2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDU6IHsgIC8qIFBSRUNFUVUuUEguUUJSICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInByZWNlcXUucGgucWJyIHIlZCwgciVkIiwgcmQsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY2VxdS5waC5xYnIgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgYmlub3AoSW9wX09yMzIsCkBAIC0zMDQzLDcgKzMwNTMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4NjogeyAgLyogUFJFQ0VRVS5QSC5RQkxBICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInByZWNlcXUucGgucWJsYSByJWQsIHIlZCIsIHJkLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInByZWNlcXUucGgucWJsYSByJXUsIHIldSIsIHJkLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogCiAgICAgICAgICAgICAgICAgICAgICBwdXRJUmVnKHJkLCBiaW5vcChJb3BfT3IzMiwKQEAgLTMwNjAsNyArMzA3MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg3OiB7ICAvKiBQUkVDRVFVLlBILlFCUkEgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY2VxdS5waC5xYnJhIHIlZCwgciVkIiwgcmQsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY2VxdS5waC5xYnJhIHIldSwgciV1IiwgcmQsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAKICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmQsIGJpbm9wKElvcF9PcjMyLApAQCAtMzA3Nyw3ICszMDg3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDk6IHsgIC8qIEFCU1FfUy5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhYnNxX3MucGggciVkLCByJWQiLCByZCwgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJhYnNxX3MucGggciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTE2KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtMzE1Niw3ICszMTY2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEE6IHsgIC8qIFJFUEwuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicmVwbC5waCByJWQsICVkIiwgcmQsIGRzcF9pbW0pOworICAgICAgICAgICAgICAgICAgICAgRElQKCJyZXBsLnBoIHIldSwgJXUiLCByZCwgZHNwX2ltbSk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgVVNob3J0IGltbWVkaWF0ZSA9IGV4dGVuZF9zXzEwdG8xNihkc3BfaW1tKTsKIApAQCAtMzE2NCw3ICszMTc0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEI6IHsgIC8qIFJFUExWLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInJlcGx2LnBoIHIlZCwgciVkIiwgcmQsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicmVwbHYucGggciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgYmlub3AoSW9wXzE2SEx0bzMyLApAQCAtMzE3Myw3ICszMTgzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEM6IHsgIC8qIFBSRUNFUS5XLlBITCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjZXEudy5waGwgciVkLCByJWQiLCByZCwgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjZXEudy5waGwgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmQsIGJpbm9wKElvcF9BbmQzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElSZWcocnQpLApAQCAtMzE4MSw3ICszMTkxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEQ6IHsgIC8qIFBSRUNFUS5XLlBIUiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjZXEudy5waHIgciVkLCByJWQiLCByZCwgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjZXEudy5waHIgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmQsIGJpbm9wKElvcF8xNkhMdG8zMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoSW9wXzMydG8xNiwgZ2V0SVJlZyhydCkpLApAQCAtMzE4OSw3ICszMTk5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiB7ICAvKiBBQlNRX1MuVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhYnNxX3MudyByJWQsIHIlZCIsIHJkLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFic3Ffcy53IHIldSwgciV1IiwgcmQsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtMzIxOCw3ICszMjI4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDFCOiB7ICAvKiBCSVRSRVYgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiYml0cmV2IHIlZCwgciVkIiwgcmQsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiYml0cmV2IHIldSwgciV1IiwgcmQsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICAvKiAzMmJpdCByZXZlcnNhbCBhcyBzZWVuIG9uIEJpdCBUd2lkZGxpbmcgSGFja3Mgc2l0ZQogICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL2dyYXBoaWNzLnN0YW5mb3JkLmVkdS9+c2VhbmRlci9iaXRoYWNrcy5odG1sCkBAIC0zMjg2LDcgKzMyOTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MUM6IHsgIC8qIFBSRUNFVS5QSC5RQkwgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY2V1LnBoLnFibCByJWQsIHIlZCIsIHJkLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInByZWNldS5waC5xYmwgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgYmlub3AoSW9wX09yMzIsCkBAIC0zMzAzLDcgKzMzMTMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MUU6IHsgIC8qIFBSRUNFVS5QSC5RQkxBICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInByZWNldS5waC5xYmxhIHIlZCwgciVkIiwgcmQsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY2V1LnBoLnFibGEgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgYmlub3AoSW9wX09yMzIsCkBAIC0zMzIwLDcgKzMzMzAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MUQ6IHsgIC8qIFBSRUNFVS5QSC5RQlIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY2V1LnBoLnFiciByJWQsIHIlZCIsIHJkLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInByZWNldS5waC5xYnIgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgYmlub3AoSW9wX09yMzIsCkBAIC0zMzM1LDcgKzMzNDUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MUY6IHsgIC8qIFBSRUNFVS5QSC5RQlJBICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInByZWNldS5waC5xYnJhIHIlZCwgciVkIiwgcmQsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY2V1LnBoLnFicmEgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgYmlub3AoSW9wX09yMzIsCkBAIC0zMzU1LDcgKzMzNjUsNyBAQAogICAgICAgICAgICAgY2FzZSAweDM4OiB7ICAvKiBFWFRSLlcgKi8KICAgICAgICAgICAgICAgIHN3aXRjaChzYSkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDA6IHsgIC8qIEVYVFIuVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRyLncgciVkLCBhYyVkLCAlZCIsIHJ0LCBhYywgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRyLncgciV1LCBhYyV1LCAldSIsIHJ0LCBhYywgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTM0ODAsNyArMzQ5MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxOiB7ICAvKiBFWFRSVi5XICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImV4dHJ2LncgciVkLCBhYyVkLCByJWQiLCBydCwgYWMsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cnYudyByJXUsIGFjJXUsIHIldSIsIHJ0LCBhYywgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTM2MTUsNyArMzYyNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgyOiB7ICAvKiBFWFRQICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImV4dHAgciVkLCBhYyVkLCAlZCIsIHJ0LCBhYywgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRwIHIldSwgYWMldSwgJXUiLCBydCwgYWMsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0zNjk4LDcgKzM3MDgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MzogeyAgLyogRVhUUFYgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cHYgciVkLCBhYyVkLCByJWQiLCBydCwgYWMsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cHYgciV1LCBhYyV1LCByJXUiLCBydCwgYWMsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0zNzkzLDcgKzM4MDMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4NDogeyAgLyogRVhUUl9SLlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cl9yLncgciVkLCBhYyVkLCAlZCIsIHJ0LCBhYywgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRyX3IudyByJXUsIGFjJXUsICV1IiwgcnQsIGFjLCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMzkyNiw3ICszOTM2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDU6IHsgIC8qIEVYVFJWX1IuVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRydl9yLncgciVkLCBhYyVkLCByJWQiLCBydCwgYWMsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cnZfci53IHIldSwgYWMldSwgciV1IiwgcnQsIGFjLCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtNDA1Nyw3ICs0MDY3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDY6IHsgIC8qIEVYVFJfUlMuVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRyX3JzLncgciVkLCBhYyVkLCAlZCIsIHJ0LCBhYywgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRyX3JzLncgciV1LCBhYyV1LCAldSIsIHJ0LCBhYywgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTQxOTQsNyArNDIwNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg3OiB7ICAvKiBFWFRSVl9SUy5XICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImV4dHJ2X3JzLncgciVkLCBhYyVkLCByJWQiLCBydCwgYWMsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cnZfcnMudyByJXUsIGFjJXUsIHIldSIsIHJ0LCBhYywgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTQzNDIsNyArNDM1Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHhBOiB7ICAvKiBFWFRQRFAgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cGRwIHIlZCwgYWMlZCwgJWQiLCBydCwgYWMsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cGRwIHIldSwgYWMldSwgJXUiLCBydCwgYWMsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC00NDM2LDcgKzQ0NDYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4QjogeyAgLyogRVhUUERQViAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRwZHB2IHIlZCwgYWMlZCwgciVkIiwgcnQsIGFjLCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImV4dHBkcHYgciV1LCBhYyV1LCByJXUiLCBydCwgYWMsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC00NTQzLDcgKzQ1NTMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4RTogeyAgLyogRVhUUl9TLkggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZXh0cl9zLmggciVkLCBhYyVkLCAlZCIsIHJ0LCBhYywgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRyX3MuaCByJXUsIGFjJXUsICV1IiwgcnQsIGFjLCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtNDY1OCw3ICs0NjY4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEY6IHsgIC8qIEVYVFJWX1MuSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRydl9zLmggciVkLCBhYyVkLCAlZCIsIHJ0LCBhYywgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJleHRydl9zLmggciV1LCBhYyV1LCAldSIsIHJ0LCBhYywgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTQ3NzgsNyArNDc4OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMjogeyAgLyogUkREU1AqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJyZGRzcCByJWQsIG1hc2sgMHgleCIsIHJkLCByZGRzcF9tYXNrKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicmRkc3AgciV1LCBtYXNrIDB4JXgiLCByZCwgcmRkc3BfbWFzayk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogCiAgICAgICAgICAgICAgICAgICAgICBwdXRJUmVnKHJkLCBta1UzMigweDApKTsKQEAgLTQ4NDcsNyArNDg1Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMzogeyAgLyogV1JEU1AgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgid3Jkc3AgciVkLCBtYXNrIDB4JXgiLCBycywgd3Jkc3BfbWFzayk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIndyZHNwIHIldSwgbWFzayAweCV4IiwgcnMsIHdyZHNwX21hc2spOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgaWYgKCh3cmRzcF9tYXNrICYgMHgzZikgPT0gMHgzZikgewpAQCAtNDkzOSw3ICs0OTQ5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDFBOiB7ICAvKiBTSElMTyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGlsbyBhYyVkLCAlZCIsIGFjLCBzaGlmdCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNoaWxvIGFjJXUsICV1IiwgYWMsIHNoaWZ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC00OTcwLDcgKzQ5ODAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MUI6IHsgIC8qIFNISUxPViAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGlsb3YgYWMlZCwgciVkIiwgYWMsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic2hpbG92IGFjJXUsIHIldSIsIGFjLCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtNTAwOCw3ICs1MDE4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDFGOiB7ICAvKiBNVEhMSVAgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibXRobGlwIHIlZCwgYWMlZCIsIHJzLCBhYyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm10aGxpcCByJXUsIGFjJXUiLCBycywgYWMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTUwNDcsNyArNTA1Nyw3IEBACiAgICAgICAgICAgICBjYXNlIDB4QTogeyAgLyogTFggKi8KICAgICAgICAgICAgICAgIHN3aXRjaChzYSkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDA6IHsgIC8qIExXWCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJsd3ggciVkLCByJWQociVkKSIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJsd3ggciV1LCByJXUociV1KSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKIApAQCAtNTA1Nyw3ICs1MDY3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDQ6IHsgIC8qIExIWCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJsaHggciVkLCByJWQociVkKSIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJsaHggciV1LCByJXUociV1KSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKIApAQCAtNTA2Nyw3ICs1MDc3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDY6IHsgIC8qIExCVVggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibGJ1eCByJWQsIHIlZChyJWQpIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImxidXggciV1LCByJXUociV1KSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKIApAQCAtNTA4NCw3ICs1MDk0LDcgQEAKICAgICAgICAgICAgIGNhc2UgMHhDOiB7ICAvKiBJTlNWICovCiAgICAgICAgICAgICAgICBzd2l0Y2goc2EpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwOiB7ICAvKiBJTlNWICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImluc3YgciVkLCByJWQiLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJpbnN2IHIldSwgciV1IiwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTUxNzUsNyArNTE4NSw3IEBACiAgICAgICAgICAgICBjYXNlIDB4MTA6IHsgIC8qIEFERFUuUUIgKi8KICAgICAgICAgICAgICAgIHN3aXRjaChzYSkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDAwOiB7ICAvKiBBRERVLlFCICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImFkZHUucWIgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGR1LnFiIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTUyNzgsNyArNTI4OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxOiB7ICAvKiBTVUJVLlFCICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInN1YnUucWIgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJ1LnFiIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTUzODAsNyArNTM5MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwNDogeyAgLyogQUREVV9TLlFCICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImFkZHVfcy5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHVfcy5xYiByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC01NTAwLDcgKzU1MTAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDU6IHsgIC8qIFNVQlVfUy5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJ1X3MucWIgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJ1X3MucWIgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNTU5Nyw3ICs1NjA3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDY6IHsgIC8qIE1VTEVVX1MuUEguUUJMICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoIm11bGV1X3MucGgucWJsIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgibXVsZXVfcy5waC5xYmwgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTU2NTMsNyArNTY2Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg3OiB7ICAvKiBNVUxFVV9TLlBILlFCUiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJtdWxldV9zLnBoLnFiciByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm11bGV1X3MucGgucWJyIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC01NzEwLDcgKzU3MjAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDg6IHsgIC8qIEFERFUuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiYWRkdS5waCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHUucGggciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNTc2NCw3ICs1Nzc0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDk6IHsgIC8qIFNVQlUuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic3VidS5waCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInN1YnUucGggciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNTgxNyw3ICs1ODI3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEE6IHsgIC8qIEFERFEuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiYWRkcS5waCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHEucGggciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNTg4Niw3ICs1ODk2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEI6IHsgIC8qIFNVQlEuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic3VicS5waCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInN1YnEucGggciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNTk1NSw3ICs1OTY1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEM6IHsgIC8qIEFERFVfUy5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGR1X3MucGggciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGR1X3MucGggciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNjAxNCw3ICs2MDI0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEQ6IHsgIC8qIFNVQlVfUy5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJ1X3MucGggciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJ1X3MucGggciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNjA3MCw3ICs2MDgwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEU6IHsgIC8qIEFERFFfUy5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGRxX3MucGggciVkIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHFfcy5waCByJXUgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTYxNTUsNyArNjE2NSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHhGOiB7ICAvKiBTVUJRX1MuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic3VicV9zLnBoIHIlZCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJxX3MucGggciV1IHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC02MjQwLDcgKzYyNTAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTA6IHsgIC8qIEFERFNDICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImFkZHNjIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiYWRkc2MgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNjI2OCw3ICs2Mjc4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiB7ICAvKiBBRERXQyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGR3YyByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHdjIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC02MzA5LDcgKzYzMTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTI6IHsgIC8qIE1PRFNVQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJtb2RzdWIgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtb2RzdWIgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTYzNDEsNyArNjM1MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxNDogeyAgLyogUkFERFUuVy5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJyYWRkdS53LnFiIHIlZCwgciVkIiwgcmQsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicmFkZHUudy5xYiByJXUsIHIldSIsIHJkLCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgYmlub3AoSW9wX0FkZDMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wX0FkZDMyLApAQCAtNjM2NSw3ICs2Mzc1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE2OiB7ICAvKiBBRERRX1MuVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGRxX3MudyByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHFfcy53IHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTY0MDMsNyArNjQxMyw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxNzogeyAgLyogU1VCUV9TLlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic3VicV9zLncgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJxX3MudyByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC02NDQxLDcgKzY0NTEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MUM6IHsgIC8qIE1VTEVRX1MuVy5QSEwgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibXVsZXFfcy53LnBobCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm11bGVxX3Mudy5waGwgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNjQ4Myw3ICs2NDkzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDFEOiB7ICAvKiBNVUxFUV9TLlcuUEhSICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoIm11bGVxX3Mudy5waHIgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtdWxlcV9zLncucGhyIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTY1MjMsNyArNjUzMyw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxRTogeyAgLyogTVVMUV9TLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoIm11bHFfcy5waCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm11bHFfcy5waCByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtNjYwOSw3ICs2NjE5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDFGOiB7ICAvKiBNVUxRX1JTLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoIm11bHFfcnMucGggciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtdWxxX3JzLnBoIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTY3MDIsNyArNjcxMiw3IEBACiAgICAgICAgICAgICBjYXNlIDB4MTE6IHsgIC8qIENNUFUuRVEuUUIgKi8KICAgICAgICAgICAgICAgIHN3aXRjaChzYSkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDA6IHsgIC8qIENNUFUuRVEuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wdS5lcS5xYiByJWQsIHIlZCIsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImNtcHUuZXEucWIgciV1LCByJXUiLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwogICAgICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC02Nzc0LDcgKzY3ODQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTogeyAgLyogQ01QVS5MVC5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJjbXB1Lmx0LnFiIHIlZCwgciVkIiwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wdS5sdC5xYiByJXUsIHIldSIsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CiAgICAgICAgICAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTY4NTEsNyArNjg2MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgyOiB7ICAvKiBDTVBVLkxFLlFCICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImNtcHUubGUucWIgciVkLCByJWQiLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJjbXB1LmxlLnFiIHIldSwgciV1IiwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNjkyOCw3ICs2OTM4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDM6IHsgIC8qIFBJQ0suUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicGljay5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInBpY2sucWIgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTgpOwpAQCAtNjk4Nyw3ICs2OTk3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDQ6IHsgIC8qIENNUEdVLkVRLlFCICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImNtcGd1LmVxLnFiIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wZ3UuZXEucWIgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwogICAgICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC03MDUzLDcgKzcwNjMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4NTogeyAgLyogQ01QR1UuTFQuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wZ3UubHQucWIgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJjbXBndS5sdC5xYiByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CiAgICAgICAgICAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTcxMTgsNyArNzEyOCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg2OiB7ICAvKiBDTVBHVS5MRS5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJjbXBndS5sZS5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImNtcGd1LmxlLnFiIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNzE4Myw3ICs3MTkzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDg6IHsgIC8qIENNUC5FUS5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJjbXAuZXEucGggciVkLCByJWQiLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJjbXAuZXEucGggciV1LCByJXUiLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwogICAgICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC03MjExLDcgKzcyMjEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4OTogeyAgLyogQ01QLkxULlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImNtcC5sdC5waCByJWQsIHIlZCIsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImNtcC5sdC5waCByJXUsIHIldSIsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CiAgICAgICAgICAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTcyNDQsNyArNzI1NCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHhBOiB7ICAvKiBDTVAuTEUuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wLmxlLnBoIHIlZCwgciVkIiwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wLmxlLnBoIHIldSwgciV1IiwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNzI3Nyw3ICs3Mjg3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEI6IHsgIC8qIFBJQ0suUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicGljay5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInBpY2sucWIgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTE2KTsKQEAgLTczMDUsNyArNzMxNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHhDOiB7ICAvKiBQUkVDUlEuUUIuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY3JxLnFiLnBoIHIlZCwgciVkLCAlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjcnEucWIucGggciV1LCByJXUsICV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wXzE2SEx0bzMyLApAQCAtNzMyMiw3ICs3MzMyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEQ6IHsgIC8qIFBSRUNSLlFCLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInByZWNyLnFiLnBoIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY3IucWIucGggciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwKQEAgLTczNDAsNyArNzM1MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHhGOiB7ICAvKiBQUkVDUlFVX1MuUUIuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY3JxdV9zLnFiLnBoIHIlZCwgciVkLCAlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjcnF1X3MucWIucGggciV1LCByJXUsICV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JOCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k4KTsKQEAgLTc1NTIsNyArNzU2Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxNDogeyAgLyogUFJFQ1JRLlBILlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY3JxLnBoLncgciVkLCByJWQsICVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInByZWNycS5waC53IHIldSwgciV1LCAldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmQsIGJpbm9wKElvcF8xNkhMdG8zMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoSW9wXzMySEl0bzE2LCBnZXRJUmVnKHJzKSksCkBAIC03NTYwLDcgKzc1NzAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTU6IHsgIC8qIFBSRUNSUV9SUy5QSC5XICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInByZWNycV9ycy5waC53IHIlZCwgciVkLCAlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjcnFfcnMucGgudyByJXUsIHIldSwgJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTc2MjcsNyArNzYzNyw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxRTogeyAgLyogUFJFQ1JfU1JBLlBILlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicHJlY3Jfc3JhLnBoLncgciVkLCByJWQsICVkIiwgcnQsIHJzLCByZCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInByZWNyX3NyYS5waC53IHIldSwgciV1LCAldSIsIHJ0LCBycywgcmQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgaWYgKDAgPT0gcmQpIHsKQEAgLTc2NDYsNyArNzY1Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxRjogeyAgLyogUFJFQ1JfU1JBX1IuUEguVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjcl9zcmFfci5waC53IHIlZCwgciVkLCAlZCIsIHJ0LCBycywgcmQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVjcl9zcmFfci5waC53IHIldSwgciV1LCAldSIsIHJ0LCBycywgcmQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtNzY3OCw3ICs3Njg4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEU6IHsgIC8qIFBBQ0tSTC5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJwYWNrcmwucGggciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJwYWNrcmwucGggciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgcHV0SVJlZyhyZCwgYmlub3AoSW9wXzE2SEx0bzMyLApAQCAtNzY4Nyw3ICs3Njk3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE4OiB7ICAvKiBDTVBHRFUuRVEuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wZ2R1LmVxLnFiIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wZ2R1LmVxLnFiIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNzc4MSw3ICs3NzkxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE5OiB7ICAvKiBDTVBHRFUuTFQuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wZ2R1Lmx0LnFiIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wZ2R1Lmx0LnFiIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNzg3NSw3ICs3ODg1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDFBOiB7ICAvKiBDTVBHRFUuTEUuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wZ2R1LmxlLnFiIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY21wZ2R1LmxlLnFiIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtNzk3Nyw3ICs3OTg3LDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgxMzogeyAgLyogU0hMTC5RQiAqLwogICAgICAgICAgICAgICAgc3dpdGNoKHNhKSB7CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDogeyAgLyogU0hMTC5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGxsLnFiIHIlZCwgciVkLCAlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGxsLnFiIHIldSwgciV1LCAldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtODA5Myw3ICs4MTAzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDM6IHsgIC8qIFNIUkwuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hybC5xYiByJWQsIHIlZCwgJWQiLCByZCwgcnQsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic2hybC5xYiByJXUsIHIldSwgJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k4KTsKQEAgLTgxNTEsNyArODE2MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgyOiB7ICAvKiBTSExMVi5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGxsdi5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNobGx2LnFiIHIldSwgciV1LCByJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTgyNzIsNyArODI4Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxOiB7ICAvKiBTSFJMVi5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzaHJsdi5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNocmx2LnFiIHIldSwgciV1LCByJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k4KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTgpOwpAQCAtODMxMiw3ICs4MzIyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDQ6IHsgIC8qIFNIUkEuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYS5xYiByJWQsIHIlZCwgJWQiLCByZCwgcnQsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYS5xYiByJXUsIHIldSwgJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC04NDIzLDcgKzg0MzMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4NTogeyAgLyogU0hSQV9SLlFCICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInNocmFfci5xYiByJWQsIHIlZCwgJWQiLCByZCwgcnQsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYV9yLnFiIHIldSwgciV1LCAldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTgpOwpAQCAtODQ5Myw3ICs4NTAzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDY6IHsgIC8qIFNIUkFWLlFCICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInNocmF2LnFiIHIlZCwgciVkLCAlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzaHJhdi5xYiByJXUsIHIldSwgJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTg2NzksNyArODY4OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg3OiB7ICAvKiBTSFJBVl9SLlFCICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInNocmF2X3IucWIgciVkLCByJWQsIHIlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzaHJhdl9yLnFiIHIldSwgciV1LCByJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k4KTsKQEAgLTg3NTcsNyArODc2Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg4OiB7ICAvKiBTSExMLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInNobGwucGggciVkLCByJWQsICVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNobGwucGggciV1LCByJXUsICV1IiwgcmQsIHJ0LCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtODg2Nyw3ICs4ODc3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDk6IHsgIC8qIFNIUkEuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYS5waCByJWQsIHIlZCwgJWQiLCByZCwgcnQsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYS5waCByJXUsIHIldSwgJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC04ODg5LDcgKzg4OTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4QTogeyAgLyogU0hMTFYuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hsbHYucGggciVkLCByJWQsIHIlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGxsdi5waCByJXUsIHIldSwgciV1IiwgcmQsIHJ0LCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtODk5OSw3ICs5MDA5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEI6IHsgIC8qIFNIUkFWLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInNocmF2LnBoIHIlZCwgciVkLCByJWQiLCByZCwgcnQsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYXYucGggciV1LCByJXUsIHIldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtOTAyNyw3ICs5MDM3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEM6IHsgIC8qIFNITExfUy5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGxsX3MucGggciVkLCByJWQsICVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNobGxfcy5waCByJXUsIHIldSwgJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC05MjEwLDcgKzkyMjAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4RDogeyAgLyogU0hSQV9SLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInNocmEucGggciVkLCByJWQsICVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNocmEucGggciV1LCByJXUsICV1IiwgcmQsIHJ0LCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtOTI0Miw3ICs5MjUyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEU6IHsgIC8qIFNITExWX1MuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hsbHZfcy5waCByJWQsIHIlZCwgciVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNobGx2X3MucGggciV1LCByJXUsIHIldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTkzODEsNyArOTM5MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHhGOiB7ICAvKiBTSFJBVl9SLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInNocmF2X3IucGggciVkLCByJWQsIHIlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzaHJhdl9yLnBoIHIldSwgciV1LCByJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTk0MjUsNyArOTQzNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxNDogeyAgLyogU0hMTF9TLlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hsbF9zLncgciVkLCByJWQsICVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNobGxfcy53IHIldSwgciV1LCAldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTk1MDUsNyArOTUxNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxNTogeyAgLyogU0hSQV9SLlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYV9yLncgciVkLCByJWQsICVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInNocmFfci53IHIldSwgciV1LCAldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIGlmICgwID09IHJzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXRJUmVnKHJkLCBnZXRJUmVnKHJ0KSk7CkBAIC05NTI0LDcgKzk1MzQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTY6IHsgIC8qIFNITExWX1MuVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGxsdl9zLncgciVkLCByJWQsIHIlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzaGxsdl9zLncgciV1LCByJXUsIHIldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtOTU5OCw3ICs5NjA4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE3OiB7ICAvKiBTSFJBVl9SLlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYXZfci53IHIlZCwgciVkLCByJWQiLCByZCwgcnQsIHJzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic2hyYXZfci53IHIldSwgciV1LCByJXUiLCByZCwgcnQsIHJzKTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTk2MjIsNyArOTYzMiw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxOTogeyAgLyogU0hSTC5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzaHJsLnBoIHIlZCwgciVkLCAlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzaHJsLnBoIHIldSwgciV1LCAldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTk2NDAsNyArOTY1MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxQjogeyAgLyogU0hSTFYuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic2hybHYucGggciVkLCByJWQsIHIlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzaHJsdi5waCByJXUsIHIldSwgciV1IiwgcmQsIHJ0LCBycyk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC05NjgwLDcgKzk2OTAsNyBAQAogICAgICAgICAgICAgY2FzZSAweDE4OiB7ICAvKiBBRERVSC5RQi9NVUwuUEggKi8KICAgICAgICAgICAgICAgIHN3aXRjaChzYSkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDAwOiB7ICAvKiBBRERVSC5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGR1aC5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHVoLnFiIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAKQEAgLTk2OTAsNyArOTcwMCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxOiB7ICAvKiBTVUJVSC5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJ1aC5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInN1YnVoLnFiIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAKQEAgLTk3MDAsNyArOTcxMCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMjogeyAgLyogQUREVUhfUi5RQiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGR1aF9yLnFiIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiYWRkdWhfci5xYiByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtOTc4OSw3ICs5Nzk5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDM6IHsgIC8qIFNVQlVIX1IuUUIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic3VidWhfci5xYiByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInN1YnVoX3IucWIgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTk4NzcsNyArOTg4Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg4OiB7ICAvKiBBRERRSC5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGRxaC5waCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHFoLnBoIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxNik7CkBAIC05OTE0LDcgKzk5MjQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4OTogeyAgLyogU1VCUUguUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgic3VicWgucGggciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJxaC5waCByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogCiAgICAgICAgICAgICAgICAgICAgICBwdXRJUmVnKHJkLCBiaW5vcChJb3BfSFN1YjE2U3gyLApAQCAtOTkyMiw3ICs5OTMyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEE6IHsvKiBBRERRSF9SLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImFkZHFoX3IucGggciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJhZGRxaF9yLnBoIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxNik7CkBAIC05OTY0LDcgKzk5NzQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4QjogeyAgLyogU1VCUUhfUi5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJxaF9yLnBoIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic3VicWhfci5waCByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMTYpOwpAQCAtMTAwMDYsNyArMTAwMTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4QzogeyAgLyogTVVMLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoIm11bC5waCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm11bC5waCByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTAwNjcsNyArMTAwNzcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4RTogeyAgLyogTVVMX1MuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibXVsX3MucGggciVkIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm11bF9zLnBoIHIldSByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTAxNTcsNyArMTAxNjcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTA6IHsgIC8qIEFERFFILlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiYWRkcWgudyByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHFoLncgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEwMTczLDcgKzEwMTgzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiB7ICAvKiBTVUJRSC5XICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInN1YnFoLncgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJxaC53IHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xMDE4OSw3ICsxMDE5OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMjogeyAgLyogQUREUUhfUi5XICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImFkZHFoX3IudyByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFkZHFoX3IudyByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTAyMDksNyArMTAyMTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTM6IHsgIC8qIFNVQlFIX1IuVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJxaF9yLncgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWJxaF9yLncgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEwMjI5LDcgKzEwMjM5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE2OiB7ICAvKiBNVUxRX1MuVyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJtdWxxX3MudyByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm11bHFfcy53IHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTEwMjYxLDcgKzEwMjcxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE3OiB7ICAvKiBNVUxRX1JTLlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibXVscV9ycy53IHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgibXVscV9ycy53IHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTEwMzAyLDcgKzEwMzEyLDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgzMDogeyAgLyogRFBBUS5XLlBIICovCiAgICAgICAgICAgICAgICBzd2l0Y2goc2EpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwOiB7ICAvKiBEUEEuVy5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJkcGEudy5waCBhYyVkLCByJWQsIHIlZCIsIGFjLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJkcGEudy5waCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTAzMzEsNyArMTAzNDEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTogeyAgLyogRFBTLlcuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBzLncucGggYWMlZCwgciVkLCByJWQiLCBhYywgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBzLncucGggYWMldSwgciV1LCByJXUiLCBhYywgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEwMzYwLDcgKzEwMzcwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDI6IHsgIC8qIE1VTFNBLlcuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibXVsc2Eudy5waCBhYyVkLCByJWQsIHIlZCIsIGFjLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtdWxzYS53LnBoIGFjJXUsIHIldSwgciV1IiwgYWMsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTAzODYsNyArMTAzOTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MzogeyAgLyogRFBBVS5ILlFCTCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJkcGF1LmgucWJsIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImRwYXUuaC5xYmwgYWMldSwgciV1LCByJXUiLCBhYywgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0xMDQyMCw3ICsxMDQzMCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg0OiB7ICAvKiBEUEFRX1MuVy5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJkcGFxX3Mudy5waCBhYyVkLCByJWQsIHIlZCIsIGFjLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJkcGFxX3Mudy5waCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEwNTEzLDcgKzEwNTIzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDU6IHsgIC8qIERQU1FfUy5XLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImRwc3Ffcy53LnBoIGFjJWQgciVkLCByJWQiLCBhYywgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBzcV9zLncucGggYWMldSByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEwNjA3LDcgKzEwNjE3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDY6IHsgIC8qIE1VTFNBUV9TLlcuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibXVsc2FxX3Mudy5waCBhYyVkIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm11bHNhcV9zLncucGggYWMldSByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTA3MTEsNyArMTA3MjEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4NzogeyAgLyogRFBBVS5ILlFCUiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJkcGF1LmgucWJyIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImRwYXUuaC5xYnIgYWMldSwgciV1LCByJXUiLCBhYywgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0xMDc0MSw3ICsxMDc1MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHg4OiB7ICAvKiBEUEFYLlcuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBheC53LnBoIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImRwYXgudy5waCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEwNzY5LDcgKzEwNzc5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDk6IHsgIC8qIERQU1guVy5QSCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJkcHN4LncucGggYWMlZCByJWQsIHIlZCIsIGFjLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJkcHN4LncucGggYWMldSByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKIAogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTA3OTgsNyArMTA4MDgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4QjogeyAgLyogRFBTVS5ILlFCTCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJkcHN1LmgucWJsIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImRwc3UuaC5xYmwgYWMldSwgciV1LCByJXUiLCBhYywgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTEwODMxLDcgKzEwODQxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweEM6IHsgIC8qIERQQVFfU0EuTC5XICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImRwYXFfc2EubC53IGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImRwYXFfc2EubC53IGFjJXUsIHIldSwgciV1IiwgYWMsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTA5MjgsNyArMTA5MzgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4RDogeyAgLyogRFBTUV9TQS5MLlcgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBzcV9zYS5sLncgYWMlZCwgciVkLCByJWQiLCBhYywgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBzcV9zYS5sLncgYWMldSwgciV1LCByJXUiLCBhYywgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xMTAyNyw3ICsxMTAzNyw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHhGOiB7ICAvKiBEUFNVLkguUUJSICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImRwc3UuaC5xYnIgYWMlZCByJWQsIHIlZCIsIGFjLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJkcHN1LmgucWJyIGFjJXUgciV1LCByJXUiLCBhYywgcnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoIW1vZGU2NCk7CiAKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTExMDU5LDcgKzExMDY5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiB7ICAvKiBNQVFfU0EuVy5QSEwgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibWFxX3NhLncucGhsIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm1hcV9zYS53LnBobCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTExMTQ5LDcgKzExMTU5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDEyOiB7ICAvKiBNQVFfU0EuVy5QSFIgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibWFxX3NhLncucGhyIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm1hcV9zYS53LnBociBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTExMjM5LDcgKzExMjQ5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE0OiB7ICAvKiBNQVFfUy5XLlBITCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJtYXFfcy53LnBobCBhYyVkLCByJWQsIHIlZCIsIGFjLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtYXFfcy53LnBobCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTExMjk2LDcgKzExMzA2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE2OiB7ICAvKiBNQVFfUy5XLlBIUiAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJtYXFfcy53LnBociBhYyVkLCByJWQsIHIlZCIsIGFjLCBycywgcnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtYXFfcy53LnBociBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTExMzUzLDcgKzExMzYzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE4OiB7ICAvKiBEUEFRWF9TLlcuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBhcXhfcy53LnBoIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImRwYXF4X3Mudy5waCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTExNDQ1LDcgKzExNDU1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDE5OiB7ICAvKiBEUFNRWF9TLlcuUEggKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBzcXhfcy53LnBoIGFjJWQsIHIlZCwgciVkIiwgYWMsIHJzLCBydCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImRwc3F4X3Mudy5waCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTExNTM5LDcgKzExNTQ5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDFBOiB7ICAvKiBEUEFRWF9TQS5XLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImRwYXF4X3NhLncucGggYWMlZCwgciVkLCByJWQiLCBhYywgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBhcXhfc2Eudy5waCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTExNzA1LDcgKzExNzE1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDFCOiB7ICAvKiBEUFNRWF9TQS5XLlBIICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImRwc3F4X3NhLncucGggYWMlZCwgciVkLCByJWQiLCBhYywgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZHBzcXhfc2Eudy5waCBhYyV1LCByJXUsIHIldSIsIGFjLCBycywgcnQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTExODc4LDcgKzExODg4LDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgzMTogeyAgLyogQVBQRU5EICovCiAgICAgICAgICAgICAgICBzd2l0Y2goc2EpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwOiB7ICAvKiBBUFBFTkQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiYXBwZW5kIHIlZCwgciVkLCAlZCIsIHJ0LCBycywgcmQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJhcHBlbmQgciV1LCByJXUsICV1IiwgcnQsIHJzLCByZCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTE5MTIsNyArMTE5MjIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTogeyAgLyogUFJFUEVORCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVwZW5kIHIlZCwgciVkLCAlZCIsIHJ0LCBycywgcmQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJwcmVwZW5kIHIldSwgciV1LCAldSIsIHJ0LCBycywgcmQpOwogICAgICAgICAgICAgICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTExOTU3LDcgKzExOTY3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiB7ICAvKiBCQUxJR04gKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiYmFsaWduIHIlZCwgciVkLCAlZCIsIHJ0LCBycywgcmQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJiYWxpZ24gciV1LCByJXUsICV1IiwgcnQsIHJzLCByZCk7CiAgICAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KCFtb2RlNjQpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTIwNTEsNyArMTIwNjEsNyBAQAogCiAgICBjb25zdCBVQ2hhciAqY29kZSA9IGd1ZXN0X2NvZGUgKyBkZWx0YTsKICAgIGNpbnMgPSBnZXRVSW50KGNvZGUpOwotICAgRElQKCJcdDB4JWx4Olx0MHglMDh4XHQiLCAobG9uZylndWVzdF9QQ19jdXJyX2luc3RyLCBjaW5zKTsKKyAgIERJUCgiXHQweCVsbHg6XHQweCUwOHhcdCIsIChBZGRyNjQpZ3Vlc3RfUENfY3Vycl9pbnN0ciwgY2lucyk7CiAKICAgIGlmIChkZWx0YSAhPSAwKSB7CiAgICAgICBpZiAoYnJhbmNoX29yX2p1bXAoZ3Vlc3RfY29kZSArIGRlbHRhIC0gNCkpIHsKQEAgLTEyMjE3LDcgKzEyMjI3LDcgQEAKIAogICAgY2FzZSAweDExOiB7ICAvKiBDT1AxICovCiAgICAgICBpZiAoZm10ID09IDB4MyAmJiBmZCA9PSAwICYmIGZ1bmN0aW9uID09IDApIHsgIC8qIE1GSEMxICovCi0gICAgICAgICBESVAoIm1maGMxIHIlZCwgZiVkIiwgcnQsIGZzKTsKKyAgICAgICAgIERJUCgibWZoYzEgciV1LCBmJXUiLCBydCwgZnMpOwogICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTIyMjksNyArMTIyMzksNyBAQAogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICB9IGVsc2UgaWYgKGZtdCA9PSAweDcgJiYgZmQgPT0gMCAmJiBmdW5jdGlvbiA9PSAwKSB7ICAvKiBNVEhDMSAqLwotICAgICAgICAgRElQKCJtdGhjMSByJWQsIGYlZCIsIHJ0LCBmcyk7CisgICAgICAgICBESVAoIm10aGMxIHIldSwgZiV1IiwgcnQsIGZzKTsKICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgIGFzc2lnbih0MCwgYmlub3AoSW9wXzMySEx0bzY0LCBnZXRJUmVnKHJ0KSwKQEAgLTEyMjYwLDIzICsxMjI3MCwyMyBAQAogCiAgICAgICAgICBpZiAodGYgPT0gMSAmJiBuZCA9PSAwKSB7CiAgICAgICAgICAgICAvKiBicmFuY2ggb24gdHJ1ZSAqLwotICAgICAgICAgICAgRElQKCJiYzF0ICVkLCAlZCIsIGJjMV9jYywgaW1tKTsKKyAgICAgICAgICAgIERJUCgiYmMxdCAldSwgJXUiLCBiYzFfY2MsIGltbSk7CiAgICAgICAgICAgICBhc3NpZ24odDMsIGJpbm9wKElvcF9DbXBFUTMyLCBta1UzMigxKSwgbWtleHByKHQyKSkpOwogICAgICAgICAgICAgZGlzX2JyYW5jaChGYWxzZSwgbWtleHByKHQzKSwgaW1tLCAmYnN0bXQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9IGVsc2UgaWYgKHRmID09IDAgJiYgbmQgPT0gMCkgewogICAgICAgICAgICAgLyogYnJhbmNoIG9uIGZhbHNlICovCi0gICAgICAgICAgICBESVAoImJjMWYgJWQsICVkIiwgYmMxX2NjLCBpbW0pOworICAgICAgICAgICAgRElQKCJiYzFmICV1LCAldSIsIGJjMV9jYywgaW1tKTsKICAgICAgICAgICAgIGFzc2lnbih0MywgYmlub3AoSW9wX0NtcEVRMzIsIG1rVTMyKDApLCBta2V4cHIodDIpKSk7CiAgICAgICAgICAgICBkaXNfYnJhbmNoKEZhbHNlLCBta2V4cHIodDMpLCBpbW0sICZic3RtdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0gZWxzZSBpZiAobmQgPT0gMSAmJiB0ZiA9PSAwKSB7Ci0gICAgICAgICAgICBESVAoImJjMWZsICVkLCAlZCIsIGJjMV9jYywgaW1tKTsKKyAgICAgICAgICAgIERJUCgiYmMxZmwgJXUsICV1IiwgYmMxX2NjLCBpbW0pOwogICAgICAgICAgICAgbGFzdG4gPSBkaXNfYnJhbmNoX2xpa2VseShiaW5vcChJb3BfQ21wTkUzMiwgbWtleHByKHQyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVMzIoMHgwKSksIGltbSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0gZWxzZSBpZiAobmQgPT0gMSAmJiB0ZiA9PSAxKSB7Ci0gICAgICAgICAgICBESVAoImJjMXRsICVkLCAlZCIsIGJjMV9jYywgaW1tKTsKKyAgICAgICAgICAgIERJUCgiYmMxdGwgJXUsICV1IiwgYmMxX2NjLCBpbW0pOwogICAgICAgICAgICAgbGFzdG4gPSBkaXNfYnJhbmNoX2xpa2VseShiaW5vcChJb3BfQ21wRVEzMiwgbWtleHByKHQyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVMzIoMHgwKSksIGltbSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEyMzA1LDEyICsxMjMxNSwxMiBAQAogICAgICAgICAgICAgY2FzZSAweDU6ICAvKiBhYnMuZm10ICovCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhYnMucyBmJWQsIGYlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFicy5zIGYldSwgZiV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIHB1dEZSZWcoZmQsIG1rV2lkZW5Gcm9tRjMyKHR5RiwgdW5vcChJb3BfQWJzRjMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9Gcm9tRjY0KHR5RiwgZ2V0RlJlZyhmcykpKSkpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTE6ICAvKiBEICAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJhYnMuZCBmJWQsIGYlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImFicy5kIGYldSwgZiV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIHB1dERSZWcoZmQsIHVub3AoSW9wX0Fic0Y2NCwgZ2V0RFJlZyhmcykpKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKQEAgLTEyMzIxLDE0ICsxMjMzMSwxNCBAQAogICAgICAgICAgICAgY2FzZSAweDAyOiAgLyogTVVMLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogeyAgLyogRCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJtdWwuZCBmJWQsIGYlZCwgZiVkIiwgZmQsIGZzLCBmdCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoIm11bC5kIGYldSwgZiV1LCBmJXUiLCBmZCwgZnMsIGZ0KTsKICAgICAgICAgICAgICAgICAgICAgIElSRXhwciAqcm0gPSBnZXRfSVJfcm91bmRpbmdtb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCB0cmlvcChJb3BfTXVsRjY0LCBybSwgZ2V0RFJlZyhmcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXREUmVnKGZ0KSkpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTA6IHsgIC8qIFMgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibXVsLnMgZiVkLCBmJWQsIGYlZCIsIGZkLCBmcywgZnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtdWwucyBmJXUsIGYldSwgZiV1IiwgZmQsIGZzLCBmdCk7CiAgICAgICAgICAgICAgICAgICAgICBJUkV4cHIgKnJtID0gZ2V0X0lSX3JvdW5kaW5nbW9kZSgpOwogICAgICAgICAgICAgICAgICAgICAgcHV0RlJlZyhmZCwgbWtXaWRlbkZyb21GMzIodHlGLCB0cmlvcChJb3BfTXVsRjMyLCBybSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvRnJvbUY2NCh0eUYsIGdldEZSZWcoZnMpKSwKQEAgLTEyMzQzLDE0ICsxMjM1MywxNCBAQAogICAgICAgICAgICAgY2FzZSAweDAzOiAgLyogRElWLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogeyAgLyogRCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJkaXYuZCBmJWQsIGYlZCwgZiVkIiwgZmQsIGZzLCBmdCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImRpdi5kIGYldSwgZiV1LCBmJXUiLCBmZCwgZnMsIGZ0KTsKICAgICAgICAgICAgICAgICAgICAgIElSRXhwciAqcm0gPSBnZXRfSVJfcm91bmRpbmdtb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCB0cmlvcChJb3BfRGl2RjY0LCBybSwgZ2V0RFJlZyhmcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXREUmVnKGZ0KSkpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTA6IHsgIC8qIFMgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZGl2LnMgZiVkLCBmJWQsIGYlZCIsIGZkLCBmcywgZnQpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJkaXYucyBmJXUsIGYldSwgZiV1IiwgZmQsIGZzLCBmdCk7CiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCBmdCwgRElWUywgRmFsc2UsIDIpOwogICAgICAgICAgICAgICAgICAgICAgSVJFeHByICpybSA9IGdldF9JUl9yb3VuZGluZ21vZGUoKTsKICAgICAgICAgICAgICAgICAgICAgIHB1dEZSZWcoZmQsIG1rV2lkZW5Gcm9tRjMyKHR5RiwgdHJpb3AoSW9wX0RpdkYzMiwgcm0sCkBAIC0xMjM2Niw3ICsxMjM3Niw3IEBACiAgICAgICAgICAgICBjYXNlIDB4MDE6ICAvKiBTVUIuZm10ICovCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiB7ICAvKiBEICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInN1Yi5kIGYlZCwgZiVkLCBmJWQiLCBmZCwgZnMsIGZ0KTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgic3ViLmQgZiV1LCBmJXUsIGYldSIsIGZkLCBmcywgZnQpOwogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgZnQsIFNVQkQsIEZhbHNlLCAyKTsKICAgICAgICAgICAgICAgICAgICAgIElSRXhwciAqcm0gPSBnZXRfSVJfcm91bmRpbmdtb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCB0cmlvcChJb3BfU3ViRjY0LCBybSwgZ2V0RFJlZyhmcyksCkBAIC0xMjM3NCw3ICsxMjM4NCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogeyAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJzdWIucyBmJWQsIGYlZCwgZiVkIiwgZmQsIGZzLCBmdCk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInN1Yi5zIGYldSwgZiV1LCBmJXUiLCBmZCwgZnMsIGZ0KTsKICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIGZ0LCBTVUJTLCBUcnVlLCAyKTsKICAgICAgICAgICAgICAgICAgICAgIElSRXhwciAqcm0gPSBnZXRfSVJfcm91bmRpbmdtb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgICBwdXRGUmVnKGZkLCBta1dpZGVuRnJvbUYzMih0eUYsIHRyaW9wKElvcF9TdWJGMzIsIHJtLApAQCAtMTIzOTAsNyArMTI0MDAsNyBAQAogICAgICAgICAgICAgY2FzZSAweDA2OiAgLyogTU9WLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibW92LmQgZiVkLCBmJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtb3YuZCBmJXUsIGYldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCBnZXREUmVnKGZzKSk7CiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMTIzOTksNyArMTI0MDksNyBAQAogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTA6ICAvKiBTICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoIm1vdi5zIGYlZCwgZiVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgibW92LnMgZiV1LCBmJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgcHV0RlJlZyhmZCwgZ2V0RlJlZyhmcykpOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtMTI0MTAsMTIgKzEyNDIwLDEyIEBACiAgICAgICAgICAgICBjYXNlIDB4NzogIC8qIG5lZy5mbXQgKi8KICAgICAgICAgICAgICAgIHN3aXRjaCAoZm10KSB7CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTA6ICAvKiBTICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoIm5lZy5zIGYlZCwgZiVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgibmVnLnMgZiV1LCBmJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgcHV0RlJlZyhmZCwgbWtXaWRlbkZyb21GMzIodHlGLCB1bm9wKElvcF9OZWdGMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb0Zyb21GNjQodHlGLCBnZXRGUmVnKGZzKSkpKSk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibmVnLmQgZiVkLCBmJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJuZWcuZCBmJXUsIGYldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCB1bm9wKElvcF9OZWdGNjQsIGdldERSZWcoZnMpKSk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMjQyNiw3ICsxMjQzNiw3IEBACiAgICAgICAgICAgICBjYXNlIDB4MDg6ICAvKiBST1VORC5MLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogIC8qIFMgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicm91bmQubC5zIGYlZCwgZiVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgicm91bmQubC5zIGYldSwgZiV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIDAsIFJPVU5ETFMsIFRydWUsIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTI0NDAsNyArMTI0NTAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTE6ICAvKiBEICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInJvdW5kLmwuZCBmJWQsIGYlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInJvdW5kLmwuZCBmJXUsIGYldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCAwLCBST1VORExELCBGYWxzZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCBiaW5vcChJb3BfUm91bmRGNjR0b0ludCwgbWtVMzIoMHgwKSwKQEAgLTEyNDU4LDcgKzEyNDY4LDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgwOTogIC8qIFRSVU5DLkwuZm10ICovCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJ0cnVuYy5sLnMgZiVkLCBmJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJ0cnVuYy5sLnMgZiV1LCBmJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgVFJVTkNMUywgVHJ1ZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xMjQ3MSw3ICsxMjQ4MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgidHJ1bmMubC5kIGYlZCwgZiVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgidHJ1bmMubC5kIGYldSwgZiV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIDAsIFRSVU5DTEQsIEZhbHNlLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1dERSZWcoZmQsIGJpbm9wKElvcF9Sb3VuZEY2NHRvSW50LCBta1UzMigweDMpLApAQCAtMTI0ODgsNyArMTI0OTgsNyBAQAogICAgICAgICAgICAgY2FzZSAweDE1OiAgLyogUkVDSVAuZm10ICovCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiB7ICAvKiBTICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInJlY2lwLnMgZiVkLCBmJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJyZWNpcC5zIGYldSwgZiV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIElSRXhwciAqcm0gPSBnZXRfSVJfcm91bmRpbmdtb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgICBwdXRGUmVnKGZkLCBta1dpZGVuRnJvbUYzMih0eUYsIHRyaW9wKElvcF9EaXZGMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBybSwgdW5vcChJb3BfUmVpbnRlcnBJMzJhc0YzMiwKQEAgLTEyNDk3LDcgKzEyNTA3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiB7ICAvKiBEICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoInJlY2lwLmQgZiVkLCBmJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJyZWNpcC5kIGYldSwgZiV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIElSRXhwciAqcm0gPSBnZXRfSVJfcm91bmRpbmdtb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgICAvKiBwdXREUmVnKGZkLCAxLjAvZ2V0RHJlZyhmcykpOyAqLwogICAgICAgICAgICAgICAgICAgICAgcHV0RFJlZyhmZCwgdHJpb3AoSW9wX0RpdkY2NCwgcm0sCkBAIC0xMjUxNCw3ICsxMjUyNCw3IEBACiAgICAgICAgICAgICBjYXNlIDB4MTM6ICAvKiBNT1ZOLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogIC8qIFMgKi8KLSAgICAgICAgICAgICAgICAgIERJUCgibW92bi5zIGYlZCwgZiVkLCByJWQiLCBmZCwgZnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgIERJUCgibW92bi5zIGYldSwgZiV1LCByJXUiLCBmZCwgZnMsIHJ0KTsKICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgICAgICAgICAgIHQzID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtMTI1NTMsNyArMTI1NjMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHQ0KSkpOwogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MTE6ICAvKiBEICovCi0gICAgICAgICAgICAgICAgICBESVAoIm1vdm4uZCBmJWQsIGYlZCwgciVkIiwgZmQsIGZzLCBydCk7CisgICAgICAgICAgICAgICAgICBESVAoIm1vdm4uZCBmJXUsIGYldSwgciV1IiwgZmQsIGZzLCBydCk7CiAKICAgICAgICAgICAgICAgICAgIHQzID0gbmV3VGVtcChJdHlfSTEpOwogICAgICAgICAgICAgICAgICAgdDQgPSBuZXdUZW1wKEl0eV9GNjQpOwpAQCAtMTI1NzMsNyArMTI1ODMsNyBAQAogICAgICAgICAgICAgY2FzZSAweDEyOiAgLyogTU9WWi5mbXQgKi8KICAgICAgICAgICAgICAgIHN3aXRjaCAoZm10KSB7CiAgICAgICAgICAgICAgICBjYXNlIDB4MTA6ICAvKiBTICovCi0gICAgICAgICAgICAgICAgICBESVAoIm1vdnoucyBmJWQsIGYlZCwgciVkIiwgZmQsIGZzLCBydCk7CisgICAgICAgICAgICAgICAgICBESVAoIm1vdnoucyBmJXUsIGYldSwgciV1IiwgZmQsIGZzLCBydCk7CiAKICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfRjY0KTsKQEAgLTEyNjEwLDcgKzEyNjIwLDcgQEAKIAogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MTE6ICAvKiBEICovCi0gICAgICAgICAgICAgICAgICBESVAoIm1vdnouZCBmJWQsIGYlZCwgciVkIiwgZmQsIGZzLCBydCk7CisgICAgICAgICAgICAgICAgICBESVAoIm1vdnouZCBmJXUsIGYldSwgciV1IiwgZmQsIGZzLCBydCk7CiAgICAgICAgICAgICAgICAgICB0MyA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgICAgICAgIHQ0ID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgICAgICAgICAgIGlmIChtb2RlNjQpCkBAIC0xMjYzMCw3ICsxMjY0MCw3IEBACiAgICAgICAgICAgICAgICAgICBVSW50IG1vdl9jYyA9IGdldF9tb3ZfY2MoY2lucyk7CiAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgeyAgLyogTU9WQ0YgPSAwMTAwMDEgKi8KICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibW92dC5kIGYlZCwgZiVkLCAlZCIsIGZkLCBmcywgbW92X2NjKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgibW92dC5kIGYldSwgZiV1LCAldSIsIGZkLCBmcywgbW92X2NjKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwogICAgICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC0xMjY1NCw3ICsxMjY2NCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCBta2V4cHIodDQpKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJtb3Z0LnMgZiVkLCBmJWQsICVkIiwgZmQsIGZzLCBtb3ZfY2MpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtb3Z0LnMgZiV1LCBmJXUsICV1IiwgZmQsIGZzLCBtb3ZfY2MpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CiAgICAgICAgICAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MyA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTEyNzExLDcgKzEyNzIxLDcgQEAKICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZm10KSAgLyogTU9WQ0YgPSAwMTAwMDEgKi8KICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgibW92Zi5kIGYlZCwgZiVkLCAlZCIsIGZkLCBmcywgbW92X2NjKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgibW92Zi5kIGYldSwgZiV1LCAldSIsIGZkLCBmcywgbW92X2NjKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwogICAgICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC0xMjczNSw3ICsxMjc0NSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCBta2V4cHIodDQpKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJtb3ZmLnMgZiVkLCBmJWQsICVkIiwgZmQsIGZzLCBtb3ZfY2MpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJtb3ZmLnMgZiV1LCBmJXUsICV1IiwgZmQsIGZzLCBtb3ZfY2MpOwogICAgICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CiAgICAgICAgICAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICAgICB0MyA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTEyNzkzLDcgKzEyODAzLDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgwOiAgLyogYWRkLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogeyAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgRElQKCJhZGQucyBmJWQsIGYlZCwgZiVkIiwgZmQsIGZzLCBmdCk7CisgICAgICAgICAgICAgICAgICBESVAoImFkZC5zIGYldSwgZiV1LCBmJXUiLCBmZCwgZnMsIGZ0KTsKICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIGZ0LCBBRERTLCBUcnVlLCAyKTsKICAgICAgICAgICAgICAgICAgIElSRXhwciAqcm0gPSBnZXRfSVJfcm91bmRpbmdtb2RlKCk7CiAgICAgICAgICAgICAgICAgICBwdXRGUmVnKGZkLCBta1dpZGVuRnJvbUYzMih0eUYsIHRyaW9wKElvcF9BZGRGMzIsIHJtLApAQCAtMTI4MDIsNyArMTI4MTIsNyBAQAogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXNlIDB4MTE6IHsgIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgIERJUCgiYWRkLmQgZiVkLCBmJWQsIGYlZCIsIGZkLCBmcywgZnQpOworICAgICAgICAgICAgICAgICAgRElQKCJhZGQuZCBmJXUsIGYldSwgZiV1IiwgZmQsIGZzLCBmdCk7CiAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCBmdCwgQURERCwgRmFsc2UsIDIpOwogICAgICAgICAgICAgICAgICAgSVJFeHByICpybSA9IGdldF9JUl9yb3VuZGluZ21vZGUoKTsKICAgICAgICAgICAgICAgICAgIHB1dERSZWcoZmQsIHRyaW9wKElvcF9BZGRGNjQsIHJtLCBnZXREUmVnKGZzKSwgZ2V0RFJlZyhmdCkpKTsKQEAgLTEyODEwLDcgKzEyODIwLDcgQEAKICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgY2FzZSAweDQ6ICAvKiBNVEMxIChNb3ZlIFdvcmQgdG8gRmxvYXRpbmcgUG9pbnQpICovCi0gICAgICAgICAgICAgICAgICBESVAoIm10YzEgciVkLCBmJWQiLCBydCwgZnMpOworICAgICAgICAgICAgICAgICAgRElQKCJtdGMxIHIldSwgZiV1IiwgcnQsIGZzKTsKICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfRjMyKTsKQEAgLTEyODIzLDEzICsxMjgzMywxMyBAQAogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgICAgIGNhc2UgMHg1OiAgLyogRG91Ymxld29yZCBNb3ZlIHRvIEZsb2F0aW5nIFBvaW50IERNVEMxOyBNSVBTNjQgKi8KLSAgICAgICAgICAgICAgICAgIERJUCgiZG10YzEgciVkLCBmJWQiLCBydCwgZnMpOworICAgICAgICAgICAgICAgICAgRElQKCJkbXRjMSByJXUsIGYldSIsIHJ0LCBmcyk7CiAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KG1vZGU2NCk7CiAgICAgICAgICAgICAgICAgICBwdXRGUmVnKGZzLCB1bm9wKElvcF9SZWludGVycEk2NGFzRjY0LCBnZXRJUmVnKHJ0KSkpOwogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgICAgIGNhc2UgMHgwOiAgLyogTUZDMSAqLwotICAgICAgICAgICAgICAgICAgRElQKCJtZmMxIHIlZCwgZiVkIiwgcnQsIGZzKTsKKyAgICAgICAgICAgICAgICAgIERJUCgibWZjMSByJXUsIGYldSIsIHJ0LCBmcyk7CiAgICAgICAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0xMjg0MiwxMiArMTI4NTIsMTIgQEAKIAogICAgICAgICAgICAgICAgY2FzZSAweDE6ICAvKiBEb3VibGV3b3JkIE1vdmUgZnJvbSBGbG9hdGluZyBQb2ludCBETUZDMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUlQUzY0ICovCi0gICAgICAgICAgICAgICAgICBESVAoImRtZmMxIHIlZCwgZiVkIiwgcnQsIGZzKTsKKyAgICAgICAgICAgICAgICAgIERJUCgiZG1mYzEgciV1LCBmJXUiLCBydCwgZnMpOwogICAgICAgICAgICAgICAgICAgcHV0SVJlZyhydCwgdW5vcChJb3BfUmVpbnRlcnBGNjRhc0k2NCwgZ2V0RlJlZyhmcykpKTsKICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICBjYXNlIDB4NjogIC8qIENUQzEgKi8KLSAgICAgICAgICAgICAgICAgIERJUCgiY3RjMSByJWQsIGYlZCIsIHJ0LCBmcyk7CisgICAgICAgICAgICAgICAgICBESVAoImN0YzEgciV1LCBmJXUiLCBydCwgZnMpOwogICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTI4OTgsNyArMTI5MDgsNyBAQAogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDB4MjogIC8qIENGQzEgKi8KLSAgICAgICAgICAgICAgICAgIERJUCgiY2ZjMSByJWQsIGYlZCIsIHJ0LCBmcyk7CisgICAgICAgICAgICAgICAgICBESVAoImNmYzEgciV1LCBmJXUiLCBydCwgZnMpOwogICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTI5NTIsNyArMTI5NjIsNyBAQAogICAgICAgICAgICAgY2FzZSAweDIxOiAgLyogQ1ZULkQgKi8KICAgICAgICAgICAgICAgIHN3aXRjaCAoZm10KSB7CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTA6ICAvKiBTICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImN2dC5kLnMgZiVkLCBmJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJjdnQuZC5zIGYldSwgZiV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIDAsIENWVERTLCBUcnVlLCAxKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEyOTcyLDcgKzEyOTgyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTQ6Ci0gICAgICAgICAgICAgICAgICAgICBESVAoImN2dC5kLncgJWQsICVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY3Z0LmQudyAldSwgJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgQ1ZURFcsIFRydWUsIDEpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTI5OTQsNyArMTMwMDQsNyBAQAogCiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTU6IHsgIC8qIEwgKi8KICAgICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIERJUCgiY3Z0LmQubCAlZCwgJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgICAgRElQKCJjdnQuZC5sICV1LCAldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCAwLCBDVlRETCwgRmFsc2UsIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduKHQwLCB1bm9wKElvcF9SZWludGVycEY2NGFzSTY0LCBnZXRGUmVnKGZzKSkpOwpAQCAtMTMwMTMsNyArMTMwMjMsNyBAQAogICAgICAgICAgICAgY2FzZSAweDIwOiAgLyogY3Z0LnMgKi8KICAgICAgICAgICAgICAgIHN3aXRjaCAoZm10KSB7CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTQ6ICAvKiBXICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImN2dC5zLncgJWQsICVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY3Z0LnMudyAldSwgJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgQ1ZUU1csIFRydWUsIDEpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTMwMzUsNyArMTMwNDUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY3Z0LnMuZCAlZCwgJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJjdnQucy5kICV1LCAldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCAwLCBDVlRTRCwgRmFsc2UsIDEpOwogICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9GMzIpOwogICAgICAgICAgICAgICAgICAgICAgYXNzaWduKHQwLCBiaW5vcChJb3BfRjY0dG9GMzIsIGdldF9JUl9yb3VuZGluZ21vZGUoKSwKQEAgLTEzMDQ0LDcgKzEzMDU0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTU6ICAvKiBMICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImN2dC5zLmwgJWQsICVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY3Z0LnMubCAldSwgJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgQ1ZUU0wsIEZhbHNlLCAxKTsKICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbih0MCwgdW5vcChJb3BfUmVpbnRlcnBGNjRhc0k2NCwgZ2V0RlJlZyhmcykpKTsKQEAgLTEzMDYxLDcgKzEzMDcxLDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgyNDogIC8qIGN2dC53ICovCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgewogICAgICAgICAgICAgICAgY2FzZSAweDEwOiAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgRElQKCJjdnQudy5zICVkLCAlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICBESVAoImN2dC53LnMgJXUsICV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIDAsIENWVFdTLCBUcnVlLCAxKTsKICAgICAgICAgICAgICAgICAgIHB1dEZSZWcoZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rV2lkZW5Gcm9tRjMyKHR5RiwKQEAgLTEzMDcyLDcgKzEzMDgyLDcgQEAKICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICBjYXNlIDB4MTE6Ci0gICAgICAgICAgICAgICAgICBESVAoImN2dC53LmQgJWQsICVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgIERJUCgiY3Z0LncuZCAldSwgJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgQ1ZUV0QsIEZhbHNlLCAxKTsKICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfRjMyKTsKQEAgLTEzMDkxLDcgKzEzMTAxLDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgyNTogIC8qIGN2dC5sICovCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJjdnQubC5zICVkLCAlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImN2dC5sLnMgJXUsICV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIDAsIENWVExTLCBUcnVlLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEzMTA2LDcgKzEzMTE2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTE6IHsgIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY3Z0LmwuZCAlZCwgJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJjdnQubC5kICV1LCAldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCAwLCBDVlRMRCwgRmFsc2UsIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgcHV0RFJlZyhmZCwgYmlub3AoSW9wX1JvdW5kRjY0dG9JbnQsCkBAIC0xMzEyNSw3ICsxMzEzNSw3IEBACiAgICAgICAgICAgICBjYXNlIDB4MEI6ICAvKiBGTE9PUi5MLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogIC8qIFMgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiZmxvb3IubC5zICVkLCAlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImZsb29yLmwucyAldSwgJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgRkxPT1JMUywgVHJ1ZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xMzE0MCw3ICsxMzE1MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiAgLyogRCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJmbG9vci5sLmQgJWQsICVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiZmxvb3IubC5kICV1LCAldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCAwLCBGTE9PUkxELCBGYWxzZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCBiaW5vcChJb3BfUm91bmRGNjR0b0ludCwgbWtVMzIoMHgxKSwKQEAgLTEzMTU3LDcgKzEzMTY3LDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgwQzogIC8qIFJPVU5ELlcuZm10ICovCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJyb3VuZC53LnMgZiVkLCBmJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJyb3VuZC53LnMgZiV1LCBmJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgUk9VTkRXUywgVHJ1ZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xMzE4MSw3ICsxMzE5MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiAgLyogRCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJyb3VuZC53LmQgZiVkLCBmJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJyb3VuZC53LmQgZiV1LCBmJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgUk9VTkRXRCwgRmFsc2UsIDEpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTMyMDcsNyArMTMyMTcsNyBAQAogICAgICAgICAgICAgY2FzZSAweDBGOiAgLyogRkxPT1IuVy5mbXQgKi8KICAgICAgICAgICAgICAgIHN3aXRjaCAoZm10KSB7CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTA6ICAvKiBTICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImZsb29yLncucyBmJWQsIGYlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImZsb29yLncucyBmJXUsIGYldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCAwLCBGTE9PUldTLCBUcnVlLCAxKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEzMjMxLDcgKzEzMjQxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTE6ICAvKiBEICovCi0gICAgICAgICAgICAgICAgICAgICBESVAoImZsb29yLncuZCBmJWQsIGYlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoImZsb29yLncuZCBmJXUsIGYldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCAwLCBGTE9PUldELCBGYWxzZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0xMzI1OCw3ICsxMzI2OCw3IEBACiAgICAgICAgICAgICBjYXNlIDB4MEQ6ICAvKiBUUlVOQy5XICovCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZtdCkgewogICAgICAgICAgICAgICAgICAgY2FzZSAweDEwOiAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJ0cnVuYy53LnMgJWQsICVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgidHJ1bmMudy5zICV1LCAldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVGQ1NSKGZzLCAwLCBUUlVOQ1dTLCBUcnVlLCAxKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEzMjgxLDcgKzEzMjkxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEZSZWcoZnMpKSk7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMTogIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgidHJ1bmMudy5kICVkLCAlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInRydW5jLncuZCAldSwgJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgVFJVTkNXRCwgRmFsc2UsIDEpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTMzMDksNyArMTMzMTksNyBAQAogICAgICAgICAgICAgY2FzZSAweDBFOiAgLyogQ0VJTC5XLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogIC8qIFMgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY2VpbC53LnMgJWQsICVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY2VpbC53LnMgJXUsICV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIDAsIENFSUxXUywgVHJ1ZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xMzMzMyw3ICsxMzM0Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiAgLyogRCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJjZWlsLncuZCAlZCwgJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJjZWlsLncuZCAldSwgJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgQ0VJTFdELCBGYWxzZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZwX21vZGU2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTMzNTcsNyArMTMzNjcsNyBAQAogICAgICAgICAgICAgY2FzZSAweDBBOiAgLyogQ0VJTC5MLmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogIC8qIFMgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgiY2VpbC5sLnMgJWQsICVkIiwgZmQsIGZzKTsKKyAgICAgICAgICAgICAgICAgICAgIERJUCgiY2VpbC5sLnMgJXUsICV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZUZDU1IoZnMsIDAsIENFSUxMUywgVHJ1ZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xMzM3Miw3ICsxMzM4Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgICAgY2FzZSAweDExOiAgLyogRCAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJjZWlsLmwuZCAlZCwgJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJjZWlsLmwuZCAldSwgJXUiLCBmZCwgZnMpOwogICAgICAgICAgICAgICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRkNTUihmcywgMCwgQ0VJTExELCBGYWxzZSwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXREUmVnKGZkLCBiaW5vcChJb3BfUm91bmRGNjR0b0ludCwgbWtVMzIoMHgyKSwKQEAgLTEzMzkxLDcgKzEzNDAxLDcgQEAKICAgICAgICAgICAgIGNhc2UgMHgxNjogIC8qIFJTUVJULmZtdCAqLwogICAgICAgICAgICAgICAgc3dpdGNoIChmbXQpIHsKICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMDogeyAgLyogUyAqLwotICAgICAgICAgICAgICAgICAgICAgRElQKCJyc3FydC5zICVkLCAlZCIsIGZkLCBmcyk7CisgICAgICAgICAgICAgICAgICAgICBESVAoInJzcXJ0LnMgJXUsICV1IiwgZmQsIGZzKTsKICAgICAgICAgICAgICAgICAgICAgIElSRXhwciAqcm0gPSBnZXRfSVJfcm91bmRpbmdtb2RlKCk7CiAgICAgICAgICAgICAgICAgICAgICBwdXRGUmVnKGZkLCBta1dpZGVuRnJvbUYzMih0eUYsIHRyaW9wKElvcF9EaXZGMzIsIHJtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcChJb3BfUmVpbnRlcnBJMzJhc0YzMiwgbWtVMzIoT05FX1NJTkdMRSkpLApAQCAtMTM0MDAsNyArMTM0MTAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICBjYXNlIDB4MTE6IHsgIC8qIEQgKi8KLSAgICAgICAgICAgICAgICAgICAgIERJUCgicnNxcnQuZCAlZCwgJWQiLCBmZCwgZnMpOworICAgICAgICAgICAgICAgICAgICAgRElQKCJyc3FydC5kICV1LCAldSIsIGZkLCBmcyk7CiAgICAgICAgICAgICAgICAgICAgICBJUkV4cHIgKnJtID0gZ2V0X0lSX3JvdW5kaW5nbW9kZSgpOwogICAgICAgICAgICAgICAgICAgICAgcHV0RFJlZyhmZCwgdHJpb3AoSW9wX0RpdkY2NCwgcm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKElvcF9SZWludGVycEk2NGFzRjY0LApAQCAtMTM0MjYsNyArMTM0MzYsNyBAQAogICAgICAgYnJlYWs7ICAvKiBDT1AxICovCiAgICBjYXNlIDB4MTA6ICAvKiBDT1AwICovCiAgICAgICBpZiAocnMgPT0gMCkgeyAgLyogTUZDMCAqLwotICAgICAgICAgRElQKCJtZmMwIHIlZCwgciVkLCAlZCIsIHJ0LCByZCwgc2VsKTsKKyAgICAgICAgIERJUCgibWZjMCByJXUsIHIldSwgJXUiLCBydCwgcmQsIHNlbCk7CiAgICAgICAgICBJUlRlbXAgICB2YWwgID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgIElSRXhwcioqIGFyZ3MgPSBta0lSRXhwclZlY18zIChJUkV4cHJfQkJQVFIoKSwgbWtVMzIocmQpLCBta1UzMihzZWwpKTsKICAgICAgICAgIElSRGlydHkgKmQgPSB1bnNhZmVJUkRpcnR5XzFfTih2YWwsCkBAIC0xMzQzOCw3ICsxMzQ0OCw3IEBACiAgICAgICAgICBwdXRJUmVnKHJ0LCBta2V4cHIodmFsKSk7CiAgICAgICB9IGVsc2UgaWYgKHJzID09IDEpIHsKICAgICAgICAgIC8qIERvdWJsZXdvcmQgTW92ZSBmcm9tIENvcHJvY2Vzc29yIDAgLSBETUZDMDsgTUlQUzY0ICovCi0gICAgICAgICBESVAoImRtZmMwIHIlZCwgciVkLCAlZCIsIHJ0LCByZCwgc2VsKTsKKyAgICAgICAgIERJUCgiZG1mYzAgciV1LCByJXUsICV1IiwgcnQsIHJkLCBzZWwpOwogICAgICAgICAgSVJUZW1wICAgdmFsICA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICBJUkV4cHIqKiBhcmdzID0gbWtJUkV4cHJWZWNfMyAoSVJFeHByX0JCUFRSKCksIG1rVTY0KHJkKSwgbWtVNjQoc2VsKSk7CiAgICAgICAgICBJUkRpcnR5ICpkID0gdW5zYWZlSVJEaXJ0eV8xX04odmFsLApAQCAtMTM0NTQsNyArMTM0NjQsNyBAQAogCiAgICBjYXNlIDB4MzE6ICAvKiBMV0MxICovCiAgICAgICAvKiBMb2FkIFdvcmQgdG8gRmxvYXRpbmcgUG9pbnQgLSBMV0MxIChNSVBTMzIpICovCi0gICAgICBESVAoImx3YzEgZiVkLCAlZChyJWQpIiwgZnQsIGltbSwgcnMpOworICAgICAgRElQKCJsd2MxIGYldSwgJXUociV1KSIsIGZ0LCBpbW0sIHJzKTsKICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfRjMyKTsKICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTEzNDgyLDcgKzEzNDkyLDcgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4Mzk6ICAvKiBTV0MxICovCi0gICAgICBESVAoInN3YzEgZiVkLCAlZChyJWQpIiwgZnQsIGltbSwgcnMpOworICAgICAgRElQKCJzd2MxIGYldSwgJXUociV1KSIsIGZ0LCBpbW0sIHJzKTsKICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTEzNTAyLDI2ICsxMzUxMiwyNiBAQAogCiAgICBjYXNlIDB4MzU6CiAgICAgICAvKiBMb2FkIERvdWJsZXdvcmQgdG8gRmxvYXRpbmcgUG9pbnQgLSBMREMxIChNSVBTMzIpICovCi0gICAgICBESVAoImxkYzEgZiVkLCAlZCglZCkiLCBydCwgaW1tLCBycyk7CisgICAgICBESVAoImxkYzEgZiV1LCAldSgldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBMT0FEX1NUT1JFX1BBVFRFUk47CiAgICAgICBwdXREUmVnKGZ0LCBsb2FkKEl0eV9GNjQsIG1rZXhwcih0MSkpKTsKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4M0Q6CiAgICAgICAvKiBTdG9yZSBEb3VibGV3b3JkIGZyb20gRmxvYXRpbmcgUG9pbnQgLSBTREMxICovCi0gICAgICBESVAoInNkYzEgZiVkLCAlZCglZCkiLCBmdCwgaW1tLCBycyk7CisgICAgICBESVAoInNkYzEgZiV1LCAldSgldSkiLCBmdCwgaW1tLCBycyk7CiAgICAgICBMT0FEX1NUT1JFX1BBVFRFUk47CiAgICAgICBzdG9yZShta2V4cHIodDEpLCBnZXREUmVnKGZ0KSk7CiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDIzOiAgLyogTFcgKi8KLSAgICAgIERJUCgibHcgciVkLCAlZChyJWQpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJsdyByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBMT0FEX1NUT1JFX1BBVFRFUk47CiAgICAgICBwdXRJUmVnKHJ0LCBta1dpZGVuRnJvbTMyKHR5LCBsb2FkKEl0eV9JMzIsIG1rZXhwcih0MSkpLCBUcnVlKSk7CiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDIwOiAgLyogTEIgKi8KLSAgICAgIERJUCgibGIgciVkLCAlZChyJWQpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJsYiByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBMT0FEX1NUT1JFX1BBVFRFUk47CiAgICAgICBpZiAobW9kZTY0KQogICAgICAgICAgcHV0SVJlZyhydCwgdW5vcChJb3BfOFN0bzY0LCBsb2FkKEl0eV9JOCwgbWtleHByKHQxKSkpKTsKQEAgLTEzNTMwLDcgKzEzNTQwLDcgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4MjQ6ICAvKiBMQlUgKi8KLSAgICAgIERJUCgibGJ1IHIlZCwgJWQociVkKSIsIHJ0LCBpbW0sIHJzKTsKKyAgICAgIERJUCgibGJ1IHIldSwgJXUociV1KSIsIHJ0LCBpbW0sIHJzKTsKICAgICAgIExPQURfU1RPUkVfUEFUVEVSTjsKICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICBwdXRJUmVnKHJ0LCB1bm9wKElvcF84VXRvNjQsIGxvYWQoSXR5X0k4LCBta2V4cHIodDEpKSkpOwpAQCAtMTM1MzksNyArMTM1NDksNyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgyMTogIC8qIExIICovCi0gICAgICBESVAoImxoIHIlZCwgJWQociVkKSIsIHJ0LCBpbW0sIHJzKTsKKyAgICAgIERJUCgibGggciV1LCAldShyJXUpIiwgcnQsIGltbSwgcnMpOwogICAgICAgTE9BRF9TVE9SRV9QQVRURVJOOwogICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgIHB1dElSZWcocnQsIHVub3AoSW9wXzE2U3RvNjQsIGxvYWQoSXR5X0kxNiwgbWtleHByKHQxKSkpKTsKQEAgLTEzNTQ4LDcgKzEzNTU4LDcgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4MjU6ICAvKiBMSFUgKi8KLSAgICAgIERJUCgibGh1IHIlZCwgJWQociVkKSIsIHJ0LCBpbW0sIHJzKTsKKyAgICAgIERJUCgibGh1IHIldSwgJXUociV1KSIsIHJ0LCBpbW0sIHJzKTsKICAgICAgIExPQURfU1RPUkVfUEFUVEVSTjsKICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICBwdXRJUmVnKHJ0LCB1bm9wKElvcF8xNlV0bzY0LCBsb2FkKEl0eV9JMTYsIG1rZXhwcih0MSkpKSk7CkBAIC0xMzU1OCw3ICsxMzU2OCw3IEBACiAKICAgIGNhc2UgMHgwRjogIC8qIExVSSAqLwogICAgICAgcCA9IChpbW0gPDwgMTYpOwotICAgICAgRElQKCJsdWkgciVkLCBpbW06IDB4JXgiLCBydCwgaW1tKTsKKyAgICAgIERJUCgibHVpIHIldSwgaW1tOiAweCV4IiwgcnQsIGltbSk7CiAgICAgICBpZiAobW9kZTY0KQogICAgICAgICAgcHV0SVJlZyhydCwgbWtVNjQoZXh0ZW5kX3NfMzJ0bzY0KHApKSk7CiAgICAgICBlbHNlCkBAIC0xMzU2OSw3ICsxMzU3OSw3IEBACiAgICAgICBzd2l0Y2ggKGZ1bmN0aW9uKSB7CiAgICAgICBjYXNlIDB4MDogeyAgLyogTFdYQzEgKi8KICAgICAgICAgIC8qIExvYWQgV29yZCAgSW5kZXhlZCB0byBGbG9hdGluZyBQb2ludCAtIExXWEMxIChNSVBTMzJyMikgKi8KLSAgICAgICAgIERJUCgibHd4YzEgZiVkLCByJWQociVkKSIsIGZkLCBydCwgcnMpOworICAgICAgICAgRElQKCJsd3hjMSBmJXUsIHIldShyJXUpIiwgZmQsIHJ0LCBycyk7CiAgICAgICAgICBpZiAoZnBfbW9kZTY0KSB7CiAgICAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0xMzU5OCw3ICsxMzYwOCw3IEBACiAgICAgICAgICAvKiBMb2FkIERvdWJsZXdvcmQgIEluZGV4ZWQgdG8gRmxvYXRpbmcgUG9pbnQKICAgICAgICAgICAgIExEWEMxIChNSVBTMzJyMiBhbmQgTUlQUzY0KSAqLwogICAgICAgICAgaWYgKGZwX21vZGU2NCkgewotICAgICAgICAgICAgRElQKCJsZHhjMSBmJWQsIHIlZChyJWQpIiwgZmQsIHJ0LCBycyk7CisgICAgICAgICAgICBESVAoImxkeGMxIGYldSwgciV1KHIldSkiLCBmZCwgcnQsIHJzKTsKICAgICAgICAgICAgIHQwID0gbmV3VGVtcCh0eSk7CiAgICAgICAgICAgICBhc3NpZ24odDAsIGJpbm9wKG1vZGU2NCA/IElvcF9BZGQ2NCA6IElvcF9BZGQzMiwgZ2V0SVJlZyhycyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElSZWcocnQpKSk7CkBAIC0xMzYyNCw3ICsxMzYzNCw3IEBACiAKICAgICAgIGNhc2UgMHg1OiAgLyogTG9hZCBEb3VibGV3b3JkIEluZGV4ZWQgVW5hbGlnbmVkIHRvIEZsb2F0aW5nIFBvaW50IC0gTFVYQzE7CiAgICAgICAgICAgICAgICAgICAgIE1JUFMzMnIyICovCi0gICAgICAgICBESVAoImx1eGMxIGYlZCwgciVkKHIlZCkiLCBmZCwgcnQsIHJzKTsKKyAgICAgICAgIERJUCgibHV4YzEgZiV1LCByJXUociV1KSIsIGZkLCBydCwgcnMpOwogICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgYXNzaWduKHQwLCBiaW5vcChJb3BfQWRkNjQsIGdldElSZWcocnMpLCBnZXRJUmVnKHJ0KSkpOwpAQCAtMTM2MzQsNyArMTM2NDQsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHg4OiB7ICAvKiBTdG9yZSBXb3JkIEluZGV4ZWQgZnJvbSBGbG9hdGluZyBQb2ludCAtIFNXWEMxICovCi0gICAgICAgICBESVAoInN3eGMxIGYlZCwgciVkKHIlZCkiLCBmdCwgcnQsIHJzKTsKKyAgICAgICAgIERJUCgic3d4YzEgZiV1LCByJXUociV1KSIsIGZ0LCBydCwgcnMpOwogICAgICAgICAgaWYgKGZwX21vZGU2NCkgewogICAgICAgICAgICAgdDAgPSBuZXdUZW1wKHR5KTsKICAgICAgICAgICAgIGFzc2lnbih0MCwgYmlub3AobW9kZTY0ID8gSW9wX0FkZDY0IDogSW9wX0FkZDMyLCBnZXRJUmVnKHJzKSwKQEAgLTEzNjUwLDcgKzEzNjYwLDcgQEAKICAgICAgICAgIGJyZWFrOwogICAgICAgfQogICAgICAgY2FzZSAweDk6IHsgIC8qIFN0b3JlIERvdWJsZXdvcmQgSW5kZXhlZCBmcm9tIEZsb2F0aW5nIFBvaW50IC0gU0RYQzEgKi8KLSAgICAgICAgIERJUCgic2RjMSBmJWQsICVkKCVkKSIsIGZ0LCBpbW0sIHJzKTsKKyAgICAgICAgIERJUCgic2RjMSBmJXUsICV1KCV1KSIsIGZ0LCBpbW0sIHJzKTsKICAgICAgICAgIGlmIChmcF9tb2RlNjQpIHsKICAgICAgICAgICAgIHQwID0gbmV3VGVtcCh0eSk7CiAgICAgICAgICAgICBhc3NpZ24odDAsIGJpbm9wKG1vZGU2NCA/IElvcF9BZGQ2NCA6IElvcF9BZGQzMiwgZ2V0SVJlZyhycyksCkBAIC0xMzY3NSw3ICsxMzY4NSw3IEBACiAgICAgICB9CiAgICAgICBjYXNlIDB4RDogIC8qIFN0b3JlIERvdWJsZXdvcmQgSW5kZXhlZCBVbmFsaWduZWQgZnJvbSBGbG9hdGluZyBQb2ludCAtCiAgICAgICAgICAgICAgICAgICAgIFNVWEMxOyBNSVBTNjQgTUlQUzMycjIgKi8KLSAgICAgICAgIERJUCgic3V4YzEgZiVkLCByJWQociVkKSIsIGZkLCBydCwgcnMpOworICAgICAgICAgRElQKCJzdXhjMSBmJXUsIHIldShyJXUpIiwgZmQsIHJ0LCBycyk7CiAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICBhc3NpZ24odDAsIGJpbm9wKElvcF9BZGQ2NCwgZ2V0SVJlZyhycyksIGdldElSZWcocnQpKSk7CkBAIC0xMzY4OCw3ICsxMzY5OCw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIH0KICAgICAgIGNhc2UgMHgyMDogIHsgIC8qIE1BREQuUyAqLwotICAgICAgICAgRElQKCJtYWRkLnMgZiVkLCBmJWQsIGYlZCwgZiVkIiwgZmQsIGZtdCwgZnMsIGZ0KTsKKyAgICAgICAgIERJUCgibWFkZC5zIGYldSwgZiV1LCBmJXUsIGYldSIsIGZkLCBmbXQsIGZzLCBmdCk7CiAgICAgICAgICBJUkV4cHIgKnJtID0gZ2V0X0lSX3JvdW5kaW5nbW9kZSgpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9GMzIpOwogICAgICAgICAgYXNzaWduKHQxLCBxb3AoSW9wX01BZGRGMzIsIHJtLApAQCAtMTM2OTksMTQgKzEzNzA5LDE0IEBACiAgICAgICAgICBicmVhazsgIC8qIE1BREQuUyAqLwogICAgICAgfQogICAgICAgY2FzZSAweDIxOiB7ICAvKiBNQURELkQgKi8KLSAgICAgICAgIERJUCgibWFkZC5kIGYlZCwgZiVkLCBmJWQsIGYlZCIsIGZkLCBmbXQsIGZzLCBmdCk7CisgICAgICAgICBESVAoIm1hZGQuZCBmJXUsIGYldSwgZiV1LCBmJXUiLCBmZCwgZm10LCBmcywgZnQpOwogICAgICAgICAgSVJFeHByICpybSA9IGdldF9JUl9yb3VuZGluZ21vZGUoKTsKICAgICAgICAgIHB1dERSZWcoZmQsIHFvcChJb3BfTUFkZEY2NCwgcm0sIGdldERSZWcoZm10KSwgZ2V0RFJlZyhmcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RFJlZyhmdCkpKTsKICAgICAgICAgIGJyZWFrOyAgLyogTUFERC5EICovCiAgICAgICB9CiAgICAgICBjYXNlIDB4Mjg6IHsgIC8qIE1TVUIuUyAqLwotICAgICAgICAgRElQKCJtc3ViLnMgZiVkLCBmJWQsIGYlZCwgZiVkIiwgZmQsIGZtdCwgZnMsIGZ0KTsKKyAgICAgICAgIERJUCgibXN1Yi5zIGYldSwgZiV1LCBmJXUsIGYldSIsIGZkLCBmbXQsIGZzLCBmdCk7CiAgICAgICAgICBJUkV4cHIgKnJtID0gZ2V0X0lSX3JvdW5kaW5nbW9kZSgpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9GMzIpOwogICAgICAgICAgYXNzaWduKHQxLCBxb3AoSW9wX01TdWJGMzIsIHJtLApAQCAtMTM3MTcsMTQgKzEzNzI3LDE0IEBACiAgICAgICAgICBicmVhazsgIC8qIE1TVUIuUyAqLwogICAgICAgfQogICAgICAgY2FzZSAweDI5OiB7ICAvKiBNU1VCLkQgKi8KLSAgICAgICAgIERJUCgibXN1Yi5kIGYlZCwgZiVkLCBmJWQsIGYlZCIsIGZkLCBmbXQsIGZzLCBmdCk7CisgICAgICAgICBESVAoIm1zdWIuZCBmJXUsIGYldSwgZiV1LCBmJXUiLCBmZCwgZm10LCBmcywgZnQpOwogICAgICAgICAgSVJFeHByICpybSA9IGdldF9JUl9yb3VuZGluZ21vZGUoKTsKICAgICAgICAgIHB1dERSZWcoZmQsIHFvcChJb3BfTVN1YkY2NCwgcm0sIGdldERSZWcoZm10KSwgZ2V0RFJlZyhmcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RFJlZyhmdCkpKTsKICAgICAgICAgIGJyZWFrOyAgLyogTVNVQi5EICovCiAgICAgICB9CiAgICAgICBjYXNlIDB4MzA6IHsgIC8qIE5NQURELlMgKi8KLSAgICAgICAgIERJUCgibm1hZGQucyBmJWQsIGYlZCwgZiVkLCBmJWQiLCBmZCwgZm10LCBmcywgZnQpOworICAgICAgICAgRElQKCJubWFkZC5zIGYldSwgZiV1LCBmJXUsIGYldSIsIGZkLCBmbXQsIGZzLCBmdCk7CiAgICAgICAgICBJUkV4cHIgKnJtID0gZ2V0X0lSX3JvdW5kaW5nbW9kZSgpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9GMzIpOwogICAgICAgICAgYXNzaWduKHQxLCBxb3AoSW9wX01BZGRGMzIsIHJtLApAQCAtMTM3MzYsNyArMTM3NDYsNyBAQAogICAgICAgICAgYnJlYWs7ICAvKiBOTUFERC5TICovCiAgICAgICB9CiAgICAgICBjYXNlIDB4MzE6IHsgIC8qIE5NQURELkQgKi8KLSAgICAgICAgIERJUCgibm1hZGQuZCBmJWQsIGYlZCwgZiVkLCBmJWQiLCBmZCwgZm10LCBmcywgZnQpOworICAgICAgICAgRElQKCJubWFkZC5kIGYldSwgZiV1LCBmJXUsIGYldSIsIGZkLCBmbXQsIGZzLCBmdCk7CiAgICAgICAgICBJUkV4cHIgKnJtID0gZ2V0X0lSX3JvdW5kaW5nbW9kZSgpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9GNjQpOwogICAgICAgICAgYXNzaWduKHQxLCBxb3AoSW9wX01BZGRGNjQsIHJtLCBnZXREUmVnKGZtdCksIGdldERSZWcoZnMpLApAQCAtMTM3NDUsNyArMTM3NTUsNyBAQAogICAgICAgICAgYnJlYWs7ICAvKiBOTUFERC5EICovCiAgICAgICB9CiAgICAgICBjYXNlIDB4Mzg6IHsgIC8qIE5NU1VCQi5TICovCi0gICAgICAgICBESVAoIm5tc3ViLnMgZiVkLCBmJWQsIGYlZCwgZiVkIiwgZmQsIGZtdCwgZnMsIGZ0KTsKKyAgICAgICAgIERJUCgibm1zdWIucyBmJXUsIGYldSwgZiV1LCBmJXUiLCBmZCwgZm10LCBmcywgZnQpOwogICAgICAgICAgSVJFeHByICpybSA9IGdldF9JUl9yb3VuZGluZ21vZGUoKTsKICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfRjMyKTsKICAgICAgICAgIGFzc2lnbih0MSwgcW9wKElvcF9NU3ViRjMyLCBybSwKQEAgLTEzNzU3LDcgKzEzNzY3LDcgQEAKICAgICAgICAgIGJyZWFrOyAgLyogTk1TVUJCLlMgKi8KICAgICAgIH0KICAgICAgIGNhc2UgMHgzOTogeyAgLyogTk1TVUJCLkQgKi8KLSAgICAgICAgIERJUCgibm1zdWIuZCBmJWQsIGYlZCwgZiVkLCBmJWQiLCBmZCwgZm10LCBmcywgZnQpOworICAgICAgICAgRElQKCJubXN1Yi5kIGYldSwgZiV1LCBmJXUsIGYldSIsIGZkLCBmbXQsIGZzLCBmdCk7CiAgICAgICAgICBJUkV4cHIgKnJtID0gZ2V0X0lSX3JvdW5kaW5nbW9kZSgpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9GNjQpOwogICAgICAgICAgYXNzaWduKHQxLCBxb3AoSW9wX01TdWJGNjQsIHJtLCBnZXREUmVnKGZtdCksIGdldERSZWcoZnMpLApAQCAtMTM3NzIsNDYgKzEzNzgyLDMzIEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDIyOiAgLyogTFdMICovCi0gICAgICBESVAoImx3bCByJWQsICVkKHIlZCkiLCBydCwgaW1tLCBycyk7CisgICAgICBESVAoImx3bCByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAvKiB0MSA9IGFkZHIgKi8KICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKICNpZiBkZWZpbmVkIChfTUlQU0VMKQogICAgICAgICAgYXNzaWduKHQxLCBiaW5vcChJb3BfQWRkNjQsIGdldElSZWcocnMpLCBta1U2NChleHRlbmRfc18xNnRvNjQoaW1tKSkpKTsKLSAgICAgICAgIC8qIHQyID0gd29yZCBhZGRyICovCi0gICAgICAgICAvKiB0NCA9IGFkZHIgbW9kIDQgKi8KLSAgICAgICAgIExXWF9TV1hfUEFUVEVSTjY0OwotCi0gICAgICAgICAvKiB0MyA9IHdvcmQgY29udGVudCAtIHNoaWZ0ZWQgKi8KLSAgICAgICAgIHQzID0gbmV3VGVtcChJdHlfSTMyKTsKLSAgICAgICAgIGFzc2lnbih0MywgYmlub3AoSW9wX1NobDMyLCBta05hcnJvd1RvMzIodHksIGxvYWQoSXR5X0k2NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHQyKSkpLCBuYXJyb3dUbyhJdHlfSTgsIGJpbm9wKElvcF9TaGwzMiwKLSAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wX1N1YjMyLCBta1UzMigweDAzKSwgbWtleHByKHQ0KSksIG1rVTgoMykpKSkpOwotCi0gICAgICAgICAvKiBydCBjb250ZW50IC0gYWRqdXN0ZWQgKi8KLSAgICAgICAgIHQ1ID0gbmV3VGVtcChJdHlfSTMyKTsKLSAgICAgICAgIGFzc2lnbih0NSwgYmlub3AoSW9wX0FuZDMyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBta05hcnJvd1RvMzIodHksIGdldElSZWcocnQpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wX1NocjMyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1UzMigweDAwRkZGRkZGKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFycm93VG8oSXR5X0k4LCBiaW5vcChJb3BfTXVsMzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVMzIoMHgwOCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHQ0KSkpKSkpOwotCi0gICAgICAgICBwdXRJUmVnKHJ0LCBta1dpZGVuRnJvbTMyKHR5LCBiaW5vcChJb3BfT3IzMiwgbWtleHByKHQ1KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwcih0MykpLCBUcnVlKSk7CiAjZWxpZiBkZWZpbmVkIChfTUlQU0VCKQotICAgICAgICAgYXNzaWduKHQxLCBiaW5vcChJb3BfWG9yNjQsIG1rVTY0KDB4MyksCi0gICAgICAgICAgICAgICAgYmlub3AoSW9wX0FkZDY0LCBnZXRJUmVnKHJzKSwgbWtVNjQoZXh0ZW5kX3NfMTZ0bzY0KGltbSkpKSkpOworICAgICAgICAgYXNzaWduKHQxLCBiaW5vcChJb3BfWG9yNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KDB4MDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChJb3BfQWRkNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElSZWcocnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U2NChleHRlbmRfc18xNnRvNjQoaW1tKSkpKSk7CisjZW5kaWYKICAgICAgICAgIC8qIHQyID0gd29yZCBhZGRyICovCiAgICAgICAgICAvKiB0NCA9IGFkZHIgbW9kIDQgKi8KICAgICAgICAgIExXWF9TV1hfUEFUVEVSTjY0OwogCiAgICAgICAgICAvKiB0MyA9IHdvcmQgY29udGVudCAtIHNoaWZ0ZWQgKi8KICAgICAgICAgIHQzID0gbmV3VGVtcChJdHlfSTMyKTsKLSAgICAgICAgIGFzc2lnbih0MywgYmlub3AoSW9wX1NobDMyLCB1bm9wKElvcF82NEhJdG8zMiwgbG9hZChJdHlfSTY0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIodDIpKSksIG5hcnJvd1RvKEl0eV9JOCwgYmlub3AoSW9wX1NobDMyLAotICAgICAgICAgICAgICAgICAgICBiaW5vcChJb3BfU3ViMzIsIG1rVTMyKDB4MDMpLCBta2V4cHIodDQpKSwgbWtVOCgzKSkpKSk7CisgICAgICAgICBhc3NpZ24odDMsIGJpbm9wKElvcF9TaGwzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZChJdHlfSTMyLCBta2V4cHIodDIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmFycm93VG8oSXR5X0k4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChJb3BfU2hsMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKElvcF9TdWIzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVMzIoMHgwMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwcih0NCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U4KDMpKSkpKTsKIAogICAgICAgICAgLyogcnQgY29udGVudCAtIGFkanVzdGVkICovCiAgICAgICAgICB0NSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0xMzgyNSw3ICsxMzgyMiw2IEBACiAKICAgICAgICAgIHB1dElSZWcocnQsIG1rV2lkZW5Gcm9tMzIodHksIGJpbm9wKElvcF9PcjMyLCBta2V4cHIodDUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHQzKSksIFRydWUpKTsKLSNlbmRpZgogICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8qIHQxID0gYWRkciAqLwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTM4NjEsNDAgKzEzODU3LDI5IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDI2OiAgLyogTFdSICovCi0gICAgICBESVAoImx3ciByJWQsICVkKHIlZCkiLCBydCwgaW1tLCBycyk7CisgICAgICBESVAoImx3ciByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAvKiB0MSA9IGFkZHIgKi8KICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKICNpZiBkZWZpbmVkIChfTUlQU0VMKQogICAgICAgICAgYXNzaWduKHQxLCBiaW5vcChJb3BfQWRkNjQsIGdldElSZWcocnMpLCBta1U2NChleHRlbmRfc18xNnRvNjQoaW1tKSkpKTsKLSAgICAgICAgIC8qIHQyID0gd29yZCBhZGRyICovCi0gICAgICAgICAvKiB0NCA9IGFkZHIgbW9kIDggKi8KLSAgICAgICAgIExXWF9TV1hfUEFUVEVSTjY0OwotCi0gICAgICAgICAvKiB0MyA9IHdvcmQgY29udGVudCAtIHNoaWZ0ZWQgKi8KLSAgICAgICAgIHQzID0gbmV3VGVtcChJdHlfSTMyKTsKLSAgICAgICAgIGFzc2lnbih0MywgYmlub3AoSW9wX1NocjMyLCBta05hcnJvd1RvMzIodHksIGxvYWQoSXR5X0k2NCxta2V4cHIodDIpKSksCi0gICAgICAgICAgICAgICAgICAgIG5hcnJvd1RvKEl0eV9JOCwgYmlub3AoSW9wX1NobDMyLCBta2V4cHIodDQpLCBta1U4KDMpKSkpKTsKLQotICAgICAgICAgLyogcnQgY29udGVudCAgLSBhZGp1c3RlZCAqLwotICAgICAgICAgdDUgPSBuZXdUZW1wKEl0eV9JMzIpOwotICAgICAgICAgYXNzaWduKHQ1LCBiaW5vcChJb3BfQW5kMzIsIG1rTmFycm93VG8zMih0eSwgZ2V0SVJlZyhydCkpLAotICAgICAgICAgICAgICAgIHVub3AoSW9wX05vdDMyLCBiaW5vcChJb3BfU2hyMzIsIG1rVTMyKDB4RkZGRkZGRkYpLAotICAgICAgICAgICAgICAgIG5hcnJvd1RvKEl0eV9JOCwgYmlub3AoSW9wX1NobDMyLCBta2V4cHIodDQpLCBta1U4KDB4MykpKSkpKSk7Ci0KLSAgICAgICAgIHB1dElSZWcocnQsIG1rV2lkZW5Gcm9tMzIodHksIGJpbm9wKElvcF9PcjMyLCBta2V4cHIodDUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHQzKSksIFRydWUpKTsKICNlbGlmIGRlZmluZWQgKF9NSVBTRUIpCi0gICAgICAgICBhc3NpZ24odDEsIGJpbm9wKElvcF9Yb3I2NCwgbWtVNjQoMHgzKSwgYmlub3AoSW9wX0FkZDY0LCBnZXRJUmVnKHJzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQoZXh0ZW5kX3NfMTZ0bzY0KGltbSkpKSkpOworICAgICAgICAgYXNzaWduKHQxLCBiaW5vcChJb3BfWG9yNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KDB4MyksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKElvcF9BZGQ2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SVJlZyhycyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KGV4dGVuZF9zXzE2dG82NChpbW0pKSkpKTsKKyNlbmRpZgogICAgICAgICAgLyogdDIgPSB3b3JkIGFkZHIgKi8KICAgICAgICAgIC8qIHQ0ID0gYWRkciBtb2QgNCAqLwogICAgICAgICAgTFdYX1NXWF9QQVRURVJONjQ7CiAKICAgICAgICAgIC8qIHQzID0gd29yZCBjb250ZW50IC0gc2hpZnRlZCAqLwogICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JMzIpOwotICAgICAgICAgYXNzaWduKHQzLCBiaW5vcChJb3BfU2hyMzIsIHVub3AoSW9wXzY0SEl0bzMyLCBsb2FkKEl0eV9JNjQsbWtleHByKHQyKSkpLAotICAgICAgICAgICAgICAgICAgICBuYXJyb3dUbyhJdHlfSTgsIGJpbm9wKElvcF9TaGwzMiwgbWtleHByKHQ0KSwgbWtVOCgzKSkpKSk7CisgICAgICAgICBhc3NpZ24odDMsIGJpbm9wKElvcF9TaHIzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZChJdHlfSTMyLCBta2V4cHIodDIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmFycm93VG8oSXR5X0k4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcChJb3BfU2hsMzIsIG1rZXhwcih0NCksIG1rVTgoMHgwMykpKSkpOwogCiAgICAgICAgICAvKiBydCBjb250ZW50ICAtIGFkanVzdGVkICovCiAgICAgICAgICB0NSA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC0xMzkwNCw3ICsxMzg4OSw2IEBACiAKICAgICAgICAgIHB1dElSZWcocnQsIG1rV2lkZW5Gcm9tMzIodHksIGJpbm9wKElvcF9PcjMyLCBta2V4cHIodDUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHQzKSksIFRydWUpKTsKLSNlbmRpZgogCiAgICAgICB9IGVsc2UgewogICAgICAgICAgLyogdDEgPSBhZGRyICovCkBAIC0xMzkzNywxMyArMTM5MjEsMTMgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4MkI6ICAvKiBTVyAqLwotICAgICAgRElQKCJzdyByJWQsICVkKHIlZCkiLCBydCwgaW1tLCBycyk7CisgICAgICBESVAoInN3IHIldSwgJXUociV1KSIsIHJ0LCBpbW0sIHJzKTsKICAgICAgIExPQURfU1RPUkVfUEFUVEVSTjsKICAgICAgIHN0b3JlKG1rZXhwcih0MSksIG1rTmFycm93VG8zMih0eSwgZ2V0SVJlZyhydCkpKTsKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4MkM6IHsgIC8qIFNETCBydCwgb2Zmc2V0KGJhc2UpIE1JUFM2NCAqLwotICAgICAgRElQKCJzZGwgciV1LCAlZChyJXUpIiwgcnQsIChJbnQpIGltbSwgcnMpOworICAgICAgRElQKCJzZGwgciV1LCAldShyJXUpIiwgcnQsIGltbSwgcnMpOwogICAgICAgdmFzc2VydChtb2RlNjQpOwogICAgICAgSVJUZW1wIEFfYnl0ZSA9IG5ld1RlbXAoSXR5X0k4KTsKICAgICAgIElSVGVtcCBCX2J5dGUgPSBuZXdUZW1wKEl0eV9JOCk7CkBAIC0xNDA2OCw3ICsxNDA1Miw3IEBACiAgICBjYXNlIDB4MkQ6IHsKICAgICAgIC8qIFNEUiBydCwgb2Zmc2V0KGJhc2UpIC0gTUlQUzY0ICovCiAgICAgICB2YXNzZXJ0KG1vZGU2NCk7Ci0gICAgICBESVAoInNkciByJXUsICVkKHIldSkiLCBydCwgaW1tLCBycyk7CisgICAgICBESVAoInNkciByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBJUlRlbXAgQV9ieXRlID0gbmV3VGVtcChJdHlfSTgpOwogICAgICAgSVJUZW1wIEJfYnl0ZSA9IG5ld1RlbXAoSXR5X0k4KTsKICAgICAgIElSVGVtcCBDX2J5dGUgPSBuZXdUZW1wKEl0eV9JOCk7CkBAIC0xNDE4OSwxOSArMTQxNzMsMTkgQEAKICAgIH0KIAogICAgY2FzZSAweDI4OiAgLyogU0IgKi8KLSAgICAgIERJUCgic2IgciVkLCAlZChyJWQpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJzYiByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBMT0FEX1NUT1JFX1BBVFRFUk47CiAgICAgICBzdG9yZShta2V4cHIodDEpLCBuYXJyb3dUbyhJdHlfSTgsIGdldElSZWcocnQpKSk7CiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDI5OiAgLyogU0ggKi8KLSAgICAgIERJUCgic2ggciVkLCAlZChyJWQpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJzaCByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBMT0FEX1NUT1JFX1BBVFRFUk47CiAgICAgICBzdG9yZShta2V4cHIodDEpLCBuYXJyb3dUbyhJdHlfSTE2LCBnZXRJUmVnKHJ0KSkpOwogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgyQTogIC8qIFNXTCAqLwotICAgICAgRElQKCJzd2wgciVkLCAlZChyJWQpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJzd2wgciV1LCAldShyJXUpIiwgcnQsIGltbSwgcnMpOwogICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgSVJUZW1wIEVfYnl0ZSA9IG5ld1RlbXAoSXR5X0k4KTsKICAgICAgICAgIElSVGVtcCBGX2J5dGUgPSBuZXdUZW1wKEl0eV9JOCk7CkBAIC0xNDMyOCw3ICsxNDMxMiw3IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDJFOiAgLyogU1dSICovCi0gICAgICBESVAoInN3ciByJWQsICVkKHIlZCkiLCBydCwgaW1tLCBycyk7CisgICAgICBESVAoInN3ciByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICBJUlRlbXAgRV9ieXRlID0gbmV3VGVtcChJdHlfSTgpOwogICAgICAgICAgSVJUZW1wIEZfYnl0ZSA9IG5ld1RlbXAoSXR5X0k4KTsKQEAgLTE0NDc1LDcgKzE0NDU5LDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICBjYXNlIDB4MDI6IHsgIC8qIE1VTCAqLwotICAgICAgICAgICAgRElQKCJtdWwgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgICAgRElQKCJtdWwgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgICAgSVJUZW1wIHRtcFJzMzIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgSVJUZW1wIHRtcFJ0MzIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTQ0OTMsNyArMTQ0NzcsNyBAQAogCiAgICAgICAgICBjYXNlIDB4MDA6IHsgIC8qIE1BREQgKi8KICAgICAgICAgICAgIGlmIChtb2RlNjQpIHsKLSAgICAgICAgICAgICAgIERJUCgibWFkZCByJWQsIHIlZCIsIHJzLCBydCk7CisgICAgICAgICAgICAgICBESVAoIm1hZGQgciV1LCByJXUiLCBycywgcnQpOwogICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTQ1MjUsNyArMTQ1MDksNyBAQAogICAgICAgICAgICAgICAgICAgICAgZ290byBkZWNvZGVfZmFpbHVyZV9kc3A7CiAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgRElQKCJtYWRkIHIlZCwgciVkIiwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgICAgIERJUCgibWFkZCByJXUsIHIldSIsIHJzLCBydCk7CiAgICAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICAgICB0MyA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xNDU1Niw3ICsxNDU0MCw3IEBACiAKICAgICAgIGNhc2UgMHgwMTogeyAgLyogTUFERFUgKi8KICAgICAgICAgIGlmIChtb2RlNjQpIHsKLSAgICAgICAgICAgIERJUCgibWFkZHUgciVkLCByJWQiLCBycywgcnQpOworICAgICAgICAgICAgRElQKCJtYWRkdSByJXUsIHIldSIsIHJzLCBydCk7CiAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICB0MyA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xNDU4OCw3ICsxNDU3Miw3IEBACiAgICAgICAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsdXJlX2RzcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBESVAoIm1hZGR1IHIlZCwgciVkIiwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgIERJUCgibWFkZHUgciV1LCByJXUiLCBycywgcnQpOwogICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTQ2MTgsNyArMTQ2MDIsNyBAQAogCiAgICAgICBjYXNlIDB4MDQ6IHsgIC8qIE1TVUIgKi8KICAgICAgICAgIGlmIChtb2RlNjQpIHsKLSAgICAgICAgICAgIERJUCgibXN1YiByJWQsIHIlZCIsIHJzLCBydCk7CisgICAgICAgICAgICBESVAoIm1zdWIgciV1LCByJXUiLCBycywgcnQpOwogICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTQ2NTAsNyArMTQ2MzQsNyBAQAogICAgICAgICAgICAgICAgICAgZ290byBkZWNvZGVfZmFpbHVyZV9kc3A7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgRElQKCJtc3ViIHIlZCwgciVkIiwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgIERJUCgibXN1YiByJXUsIHIldSIsIHJzLCBydCk7CiAgICAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICAgICB0MyA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xNDY4NCw3ICsxNDY2OCw3IEBACiAKICAgICAgIGNhc2UgMHgwNTogeyAgLyogTVNVQlUgKi8KICAgICAgICAgIGlmIChtb2RlNjQpIHsKLSAgICAgICAgICAgIERJUCgibXN1YnUgciVkLCByJWQiLCBycywgcnQpOworICAgICAgICAgICAgRElQKCJtc3VidSByJXUsIHIldSIsIHJzLCBydCk7CiAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICAgICB0MyA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xNDcxNiw3ICsxNDcwMCw3IEBACiAgICAgICAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsdXJlX2RzcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBESVAoIm1zdWJ1IHIlZCwgciVkIiwgcnMsIHJ0KTsKKyAgICAgICAgICAgICAgIERJUCgibXN1YnUgciV1LCByJXUiLCBycywgcnQpOwogICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTQ4MTcsNyArMTQ4MDEsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgyMDogeyAgLyogQ0xaICovCi0gICAgICAgICBESVAoImNseiByJWQsIHIlZCIsIHJkLCBycyk7CisgICAgICAgICBESVAoImNseiByJXUsIHIldSIsIHJkLCBycyk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAgICBJUlRlbXAgdG1wQ2x6MzIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgSVJUZW1wIHRtcFJzMzIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTQ4MzYsNyArMTQ4MjAsNyBAQAogICAgICAgfQogCiAgICAgICBjYXNlIDB4MjE6IHsgIC8qIENMTyAqLwotICAgICAgICAgRElQKCJjbG8gciVkLCByJWQiLCByZCwgcnMpOworICAgICAgICAgRElQKCJjbG8gciV1LCByJXUiLCByZCwgcnMpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgSVJUZW1wIHRtcENsbzMyID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgIElSVGVtcCB0bXBSczMyID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTE0ODYyLDcgKzE0ODQ2LDcgQEAKICAgICAgIH0KIAogICAgICAgY2FzZSAweDI0OiAgLyogQ291bnQgTGVhZGluZyBaZXJvcyBpbiBEb3VibGV3b3JkIC0gRENMWjsgTUlQUzY0ICovCi0gICAgICAgICBESVAoImRjbHogciVkLCByJWQiLCByZCwgcnMpOworICAgICAgICAgRElQKCJkY2x6IHIldSwgciV1IiwgcmQsIHJzKTsKICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwogICAgICAgICAgYXNzaWduKHQxLCBiaW5vcChJb3BfQ21wRVE2NCwgZ2V0SVJlZyhycyksIG1rVTY0KDApKSk7CiAgICAgICAgICBwdXRJUmVnKHJkLCBJUkV4cHJfSVRFKG1rZXhwcih0MSksCkBAIC0xNDg3MSw3ICsxNDg1NSw3IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDI1OiAgLyogQ291bnQgTGVhZGluZyBPbmVzIGluIERvdWJsZXdvcmQgLSBEQ0xPOyBNSVBTNjQgKi8KLSAgICAgICAgIERJUCgiZGNsbyByJWQsIHIlZCIsIHJkLCBycyk7CisgICAgICAgICBESVAoImRjbG8gciV1LCByJXUiLCByZCwgcnMpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMSk7CiAgICAgICAgICBhc3NpZ24odDEsIGJpbm9wKElvcF9DbXBFUTY0LCBnZXRJUmVnKHJzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U2NCgweGZmZmZmZmZmZmZmZmZmZmZVTEwpKSk7CkBAIC0xNDg5Niw3ICsxNDg4MCw3IEBACiAgICAgICAgICAgICBVSW50IHNyY1BvcyA9IGxzYjsKICAgICAgICAgICAgIFVJbnQgZHN0U3ogPSBtc2IgKyAzMzsKICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKLSAgICAgICAgICAgIERJUCgiZGV4dG0gciV1LCByJXUsICVkLCAlZCIsIHJ0LCBycywgbHNiLCBtc2IgKyAxKTsKKyAgICAgICAgICAgIERJUCgiZGV4dG0gciV1LCByJXUsICV1LCAldSIsIHJ0LCBycywgbHNiLCBtc2IgKyAxKTsKIAogICAgICAgICAgICAgVUNoYXIgbHNBbXQgPSA2NCAtIChzcmNQb3MgKyBkc3RTeik7ICAvKiBsZWZ0IHNoaWZ0IGFtb3VudDsgKi8KICAgICAgICAgICAgIFVDaGFyIHJzQW10ID0gNjQgLSBkc3RTejsgIC8qIHJpZ2h0IHNoaWZ0IGFtb3VudDsgKi8KQEAgLTE0OTEzLDcgKzE0ODk3LDcgQEAKICAgICAgICAgICAgIHNpemUgPSBtc2IgKyAxOwogICAgICAgICAgICAgVUludCBzcmNQb3MgPSBsc2IgKyAzMjsKICAgICAgICAgICAgIFVJbnQgZHN0U3ogPSBtc2IgKyAxOwotICAgICAgICAgICAgRElQKCJkZXh0dSByJXUsIHIldSwgJWQsICVkIiwgcnQsIHJzLCBzcmNQb3MsIGRzdFN6KTsKKyAgICAgICAgICAgIERJUCgiZGV4dHUgciV1LCByJXUsICV1LCAldSIsIHJ0LCBycywgc3JjUG9zLCBkc3RTeik7CiAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k2NCk7CiAKICAgICAgICAgICAgIHZhc3NlcnQoc3JjUG9zID49IDMyICYmIHNyY1BvcyA8IDY0KTsKQEAgLTE0OTUxLDcgKzE0OTM1LDcgQEAKIAogICAgICAgICAgICAgYXNzaWduKHRtcFJzLCBnZXRJUmVnKHJzKSk7CiAgICAgICAgICAgICBhc3NpZ24odG1wUnQsIGdldElSZWcocnQpKTsKLSAgICAgICAgICAgIERJUCgiZGluc20gciV1LCByJXUsICVkLCAlZCIsIHJ0LCBycywgbHNiLCBtc2IpOworICAgICAgICAgICAgRElQKCJkaW5zbSByJXUsIHIldSwgJXUsICV1IiwgcnQsIHJzLCBsc2IsIG1zYik7CiAKICAgICAgICAgICAgIFVDaGFyIGxzQW10ID0gZHN0UG9zICsgc3JjU3ogLSAxOyAgIC8qIGxlZnQgc2hpZnQgYW1vdW50OyAqLwogICAgICAgICAgICAgVUNoYXIgcnNBbXQgPSBkc3RQb3MgKyBzcmNTeiAtIDE7ICAgLyogcmlnaHQgc2hpZnQgYW1vdW50OyAqLwpAQCAtMTUwMDMsNyArMTQ5ODcsNyBAQAogCiAgICAgICAgICAgICBhc3NpZ24odG1wUnMsIGdldElSZWcocnMpKTsKICAgICAgICAgICAgIGFzc2lnbih0bXBSdCwgZ2V0SVJlZyhydCkpOwotICAgICAgICAgICAgRElQKCJkaW5zdSByJXUsIHIldSwgJWQsICVkIiwgcnQsIHJzLCBsc2IsIG1zYik7CisgICAgICAgICAgICBESVAoImRpbnN1IHIldSwgciV1LCAldSwgJXUiLCBydCwgcnMsIGxzYiwgbXNiKTsKIAogICAgICAgICAgICAgVUNoYXIgbHNBbXQgPSA2NCAtIHNyY1N6OyAgLyogbGVmdCBzaGlmdCBhbW91bnQ7ICovCiAgICAgICAgICAgICBVQ2hhciByc0FtdCA9IDY0IC0gKGRzdFBvcyArIHNyY1N6KTsgIC8qIHJpZ2h0IHNoaWZ0IGFtb3VudDsgKi8KQEAgLTE1MDUxLDcgKzE1MDM1LDcgQEAKICAgICAgICAgICAgIG1zYiA9IGdldF9tc2IoY2lucyk7CiAgICAgICAgICAgICBsc2IgPSBnZXRfbHNiKGNpbnMpOwogICAgICAgICAgICAgc2l6ZSA9IG1zYiArIDE7Ci0gICAgICAgICAgICBESVAoImRpbnMgciV1LCByJXUsICVkLCAlZCIsIHJ0LCBycywgbHNiLAorICAgICAgICAgICAgRElQKCJkaW5zIHIldSwgciV1LCAldSwgJXUiLCBydCwgcnMsIGxzYiwKICAgICAgICAgICAgICAgICBtc2IgLSBsc2IgKyAxKTsKICAgICAgICAgICAgIFVDaGFyIGxzQW10ID0gNjMgLSBsc2I7ICAvKiBsZWZ0IHNoaWZ0IGFtb3VudDsgKi8KICAgICAgICAgICAgIFVDaGFyIHJzQW10ID0gNjMgLSBsc2I7ICAvKiByaWdodCBzaGlmdCBhbW91bnQ7ICovCkBAIC0xNTEyOCwxNiArMTUxMTIsMTkgQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHZleF9wcmludGYoIlxub3A2bzEwID0gJWQiLCBsc2IpOworICAgICAgICAgICAgdmV4X3ByaW50ZigiXG5vcDZvMTAgPSAldSIsIGxzYik7CiAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsdXJlOzsKICAgICAgICAgIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDNCOiB7ICAvKiBSREhXUiAqLwotICAgICAgICAgRElQKCJyZGh3ciByJWQsIHIlZCIsIHJ0LCByZCk7CisgICAgICAgICBESVAoInJkaHdyIHIldSwgciV1IiwgcnQsIHJkKTsKICAgICAgICAgICAgIGlmIChyZCA9PSAyOSkgewogICAgICAgICAgICAgICAgcHV0SVJlZyhydCwgZ2V0VUxSKCkpOwogI2lmIGRlZmluZWQoX19taXBzX18pICYmICgoZGVmaW5lZChfX21pcHNfaXNhX3JldikgJiYgX19taXBzX2lzYV9yZXYgPj0gMikpCi0gICAgICAgICAgICB9IGVsc2UgaWYgKHJkID09IDEpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmQgPT0gMQorICAgICAgICAgICAgICAgICAgICAgICB8fCAocmQgPT0gMzEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIFZFWF9NSVBTX0NPTVBfSUQoYXJjaGluZm8tPmh3Y2FwcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBWRVhfUFJJRF9DT01QX0NBVklVTSkpIHsKICAgICAgICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgICAgICAgIElSVGVtcCAgIHZhbCAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgICAgICAgICAgSVJFeHByKiogYXJncyA9IG1rSVJFeHByVmVjXzIgKG1rVTY0KHJ0KSwgbWtVNjQocmQpKTsKQEAgLTE1MTY4LDcgKzE1MTU1LDcgQEAKICAgICAgICAgIG1zYiA9IGdldF9tc2IoY2lucyk7CiAgICAgICAgICBsc2IgPSBnZXRfbHNiKGNpbnMpOwogICAgICAgICAgc2l6ZSA9IG1zYiAtIGxzYiArIDE7Ci0gICAgICAgICBESVAoImlucyBzaXplOiVkIG1zYjolZCBsc2I6JWQiLCBzaXplLCBtc2IsIGxzYik7CisgICAgICAgICBESVAoImlucyBzaXplOiV1IG1zYjoldSBsc2I6JXUiLCBzaXplLCBtc2IsIGxzYik7CiAKICAgICAgICAgIHZhc3NlcnQobHNiICsgc2l6ZSA8PSAzMik7CiAgICAgICAgICB2YXNzZXJ0KGxzYiArIHNpemUgPiAwKTsKQEAgLTE1MjIxLDcgKzE1MjA4LDcgQEAKICAgICAgICAgIG1zYiA9IGdldF9tc2IoY2lucyk7CiAgICAgICAgICBsc2IgPSBnZXRfbHNiKGNpbnMpOwogICAgICAgICAgc2l6ZSA9IG1zYiArIDE7Ci0gICAgICAgICBESVAoImV4dCBzaXplOiVkIG1zYjolZCBsc2I6JWQiLCBzaXplLCBtc2IsIGxzYik7CisgICAgICAgICBESVAoImV4dCBzaXplOiV1IG1zYjoldSBsc2I6JXUiLCBzaXplLCBtc2IsIGxzYik7CiAgICAgICAgICB2YXNzZXJ0KGxzYiArIHNpemUgPD0gMzIpOwogICAgICAgICAgdmFzc2VydChsc2IgKyBzaXplID4gMCk7CiAgICAgICAgICAvKiBwdXQgc2l6ZSBiaXRzIGZyb20gcnMgYXQgdGhlIHRvcCBvZiBpbiB0ZW1wb3JhcnkgKi8KQEAgLTE1MjQzLDcgKzE1MjMwLDcgQEAKICAgICAgICAgIG1zYiA9IGdldF9tc2IoY2lucyk7CiAgICAgICAgICBsc2IgPSBnZXRfbHNiKGNpbnMpOwogICAgICAgICAgc2l6ZSA9IG1zYiArIDE7Ci0gICAgICAgICBESVAoImRleHQgciV1LCByJXUsICVkLCAlZCIsIHJ0LCBycywgbHNiLCBtc2IgKyAxKTsKKyAgICAgICAgIERJUCgiZGV4dCByJXUsIHIldSwgJXUsICV1IiwgcnQsIHJzLCBsc2IsIG1zYiArIDEpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgdmFzc2VydChsc2IgPj0gMCAmJiBsc2IgPCAzMik7CiAgICAgICAgICB2YXNzZXJ0KHNpemUgPiAwICYmIHNpemUgPD0gMzIpOwpAQCAtMTUyNjAsNyArMTUyNDcsNyBAQAogICAgICAgY2FzZSAweDIwOiAgLyogQlNIRkwgKi8KICAgICAgICAgIHN3aXRjaCAoc2EpIHsKICAgICAgICAgICAgIGNhc2UgMHgwMjogIC8qIFdTQkggKi8KLSAgICAgICAgICAgICAgIERJUCgid3NiaCByJWQsIHIlZCIsIHJkLCBydCk7CisgICAgICAgICAgICAgICBESVAoIndzYmggciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTUyODEsNyArMTUyNjgsNyBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgMHgxMDogIC8qIFNFQiAqLwotICAgICAgICAgICAgICAgRElQKCJzZWIgciVkLCByJWQiLCByZCwgcnQpOworICAgICAgICAgICAgICAgRElQKCJzZWIgciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmQsIHVub3AoSW9wXzhTdG82NCwgdW5vcChJb3BfNjR0bzgsIGdldElSZWcocnQpKSkpOwogICAgICAgICAgICAgICAgZWxzZQpAQCAtMTUyODksNyArMTUyNzYsNyBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgMHgxODogIC8qIFNFSCAqLwotICAgICAgICAgICAgICAgRElQKCJzZWggciVkLCByJWQiLCByZCwgcnQpOworICAgICAgICAgICAgICAgRElQKCJzZWggciV1LCByJXUiLCByZCwgcnQpOwogICAgICAgICAgICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgICAgICAgICAgIHB1dElSZWcocmQsIHVub3AoSW9wXzE2U3RvNjQsIHVub3AoSW9wXzY0dG8xNiwgZ2V0SVJlZyhydCkpKSk7CiAgICAgICAgICAgICAgICBlbHNlCkBAIC0xNTUwOSw3ICsxNTQ5Niw3IEBACiAgICAgICBpZiAoMHgzQiA9PSBmdW5jdGlvbiAmJgogICAgICAgICAgIChWRVhfTUlQU19DT01QX0lEKGFyY2hpbmZvLT5od2NhcHMpID09IFZFWF9QUklEX0NPTVBfQlJPQURDT00pKSB7CiAgICAgICAgICAvKlJESFdSKi8KLSAgICAgICAgIERJUCgicmRod3IgciVkLCByJWQiLCBydCwgcmQpOworICAgICAgICAgRElQKCJyZGh3ciByJXUsIHIldSIsIHJ0LCByZCk7CiAgICAgICAgICBpZiAocmQgPT0gMjkpIHsKICAgICAgICAgICAgIHB1dElSZWcocnQsIGdldFVMUigpKTsKICAgICAgICAgIH0gZWxzZQpAQCAtMTU1MjUsNyArMTU1MTIsNyBAQAogICAgICAgY2FzZSAweDE6IHsKICAgICAgICAgIFVJbnQgbW92X2NjID0gZ2V0X21vdl9jYyhjaW5zKTsKICAgICAgICAgIGlmICh0ZiA9PSAwKSB7ICAvKiBNT1ZGICovCi0gICAgICAgICAgICBESVAoIm1vdmYgciVkLCByJWQsICVkIiwgcmQsIHJzLCBtb3ZfY2MpOworICAgICAgICAgICAgRElQKCJtb3ZmIHIldSwgciV1LCAldSIsIHJkLCBycywgbW92X2NjKTsKICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTEpOwogICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgdDMgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC0xNTU0NCw3ICsxNTUzMSw3IEBACiAgICAgICAgICAgICBhc3NpZ24odDMsIGJpbm9wKElvcF9DbXBFUTMyLCBta1UzMigwKSwgbWtleHByKHQyKSkpOwogICAgICAgICAgICAgcHV0SVJlZyhyZCwgSVJFeHByX0lURShta2V4cHIodDMpLCBnZXRJUmVnKHJzKSwgZ2V0SVJlZyhyZCkpKTsKICAgICAgICAgIH0gZWxzZSBpZiAodGYgPT0gMSkgeyAgLyogTU9WVCAqLwotICAgICAgICAgICAgRElQKCJtb3Z0IHIlZCwgciVkLCAlZCIsIHJkLCBycywgbW92X2NjKTsKKyAgICAgICAgICAgIERJUCgibW92dCByJXUsIHIldSwgJXUiLCByZCwgcnMsIG1vdl9jYyk7CiAgICAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgIHQzID0gbmV3VGVtcChJdHlfSTEpOwpAQCAtMTU1NjYsNyArMTU1NTMsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgICBjYXNlIDB4MEE6IHsgIC8qIE1PVlogKi8KLSAgICAgICAgIERJUCgibW92eiByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICBESVAoIm1vdnogciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKHR5KTsKICAgICAgICAgIHQyID0gbmV3VGVtcCh0eSk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CkBAIC0xNTU4OSw3ICsxNTU3Niw3IEBACiAgICAgICB9CiAKICAgICAgIGNhc2UgMHgwQjogeyAgLyogTU9WTiAqLwotICAgICAgICAgRElQKCJtb3ZuIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgIERJUCgibW92biByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICB0MSA9IG5ld1RlbXAodHkpOwogICAgICAgICAgdDIgPSBuZXdUZW1wKHR5KTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKQEAgLTE1NjI1LDcgKzE1NjEyLDcgQEAKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWx1cmVfZHNwOwogICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIERJUCgibXVsdCByJWQsIHIlZCIsIHJzLCBydCk7CisgICAgICAgICAgICBESVAoIm11bHQgciV1LCByJXUiLCBycywgcnQpOwogICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JNjQpOwogCiAgICAgICAgICAgICBhc3NpZ24odDIsIGJpbm9wKElvcF9NdWxsUzMyLCBta05hcnJvd1RvMzIodHksIGdldElSZWcocnMpKSwKQEAgLTE1NjQ5LDcgKzE1NjM2LDcgQEAKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWx1cmVfZHNwOwogICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIERJUCgibXVsdHUgciVkLCByJWQiLCBycywgcnQpOworICAgICAgICAgICAgRElQKCJtdWx0dSByJXUsIHIldSIsIHJzLCBydCk7CiAgICAgICAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0k2NCk7CiAKICAgICAgICAgICAgIGFzc2lnbih0MiwgYmlub3AoSW9wX011bGxVMzIsIG1rTmFycm93VG8zMih0eSwgZ2V0SVJlZyhycykpLApAQCAtMTU2NjEsNyArMTU2NDgsNyBAQAogICAgICAgICAgfQogICAgICAgfQogICAgICAgY2FzZSAweDIwOiB7ICAvKiBBREQgKi8KLSAgICAgICAgIERJUCgiYWRkIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgIERJUCgiYWRkIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgIElSVGVtcCB0bXBSczMyID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgIElSVGVtcCB0bXBSdDMyID0gbmV3VGVtcChJdHlfSTMyKTsKIApAQCAtMTU3MDUsNyArMTU2OTIsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgICBjYXNlIDB4MUE6ICAvKiBESVYgKi8KLSAgICAgICAgIERJUCgiZGl2IHIlZCwgciVkIiwgcnMsIHJ0KTsKKyAgICAgICAgIERJUCgiZGl2IHIldSwgciV1IiwgcnMsIHJ0KTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTY0KTsKIApAQCAtMTU3MjcsNyArMTU3MTQsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgxQjogIC8qIERJVlUgKi8KLSAgICAgICAgIERJUCgiZGl2dSByJWQsIHIlZCIsIHJzLCBydCk7CisgICAgICAgICBESVAoImRpdnUgciV1LCByJXUiLCBycywgcnQpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JNjQpOwogCkBAIC0xNTc5OCw3ICsxNTc4NSw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBESVAoIm1maGkgciVkIiwgcmQpOworICAgICAgICAgICAgRElQKCJtZmhpIHIldSIsIHJkKTsKICAgICAgICAgICAgIHB1dElSZWcocmQsIGdldEhJKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CkBAIC0xNTgxMyw3ICsxNTgwMCw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBESVAoIm10aGkgciVkIiwgcnMpOworICAgICAgICAgICAgRElQKCJtdGhpIHIldSIsIHJzKTsKICAgICAgICAgICAgIHB1dEhJKGdldElSZWcocnMpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQpAQCAtMTU4MjgsNyArMTU4MTUsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgRElQKCJtZmxvIHIlZCIsIHJkKTsKKyAgICAgICAgICAgIERJUCgibWZsbyByJXUiLCByZCk7CiAgICAgICAgICAgICBwdXRJUmVnKHJkLCBnZXRMTygpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQpAQCAtMTU4NDMsMTQgKzE1ODMwLDE0IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBESVAoIm10bG8gciVkIiwgcnMpOworICAgICAgICAgICAgRElQKCJtdGxvIHIldSIsIHJzKTsKICAgICAgICAgICAgIHB1dExPKGdldElSZWcocnMpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgfQogCiAgICAgICBjYXNlIDB4MjE6ICAvKiBBRERVICovCi0gICAgICAgICBESVAoImFkZHUgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgRElQKCJhZGR1IHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIEFMVV9QQVRURVJONjQoSW9wX0FkZDMyKTsKICAgICAgICAgIH0gZWxzZSB7CkBAIC0xNTg1OSw3ICsxNTg0Niw3IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDIyOiB7ICAvKiBTVUIgKi8KLSAgICAgICAgIERJUCgic3ViIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgIERJUCgic3ViIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgIElSVGVtcCB0bXBSczMyID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgIElSVGVtcCB0bXBSdDMyID0gbmV3VGVtcChJdHlfSTMyKTsKIApAQCAtMTU4OTgsNyArMTU4ODUsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgICBjYXNlIDB4MjM6ICAvKiBTVUJVICovCi0gICAgICAgICBESVAoInN1YnUgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgRElQKCJzdWJ1IHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIEFMVV9QQVRURVJONjQoSW9wX1N1YjMyKTsKICAgICAgICAgIH0gZWxzZSB7CkBAIC0xNTkwNyw3ICsxNTg5NCw3IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDI0OiAgLyogQU5EICovCi0gICAgICAgICBESVAoImFuZCByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICBESVAoImFuZCByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAgICBBTFVfUEFUVEVSTihJb3BfQW5kNjQpOwogICAgICAgICAgfSBlbHNlIHsKQEAgLTE1OTE2LDcgKzE1OTAzLDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MjU6ICAvKiBPUiAqLwotICAgICAgICAgRElQKCJvciByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICBESVAoIm9yIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIEFMVV9QQVRURVJOKElvcF9PcjY0KTsKICAgICAgICAgIH0gZWxzZSB7CkBAIC0xNTkyNSw3ICsxNTkxMiw3IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDI2OiAgLyogWE9SICovCi0gICAgICAgICBESVAoInhvciByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICBESVAoInhvciByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAgICBBTFVfUEFUVEVSTihJb3BfWG9yNjQpOwogICAgICAgICAgfSBlbHNlIHsKQEAgLTE1OTM0LDcgKzE1OTIxLDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4Mjc6ICAvKiBOT1IgKi8KLSAgICAgICAgIERJUCgibm9yIHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgIERJUCgibm9yIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICAgICBwdXRJUmVnKHJkLCB1bm9wKElvcF9Ob3Q2NCwgYmlub3AoSW9wX09yNjQsIGdldElSZWcocnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElSZWcocnQpKSkpOwpAQCAtMTU5NDQsMTQgKzE1OTMxLDE0IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDA4OiAgLyogSlIgKi8KLSAgICAgICAgIERJUCgianIgciVkIiwgcnMpOworICAgICAgICAgRElQKCJqciByJXUiLCBycyk7CiAgICAgICAgICB0MCA9IG5ld1RlbXAodHkpOwogICAgICAgICAgYXNzaWduKHQwLCBnZXRJUmVnKHJzKSk7CiAgICAgICAgICBsYXN0biA9IG1rZXhwcih0MCk7CiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDA5OiAgLyogSkFMUiAqLwotICAgICAgICAgRElQKCJqYWxyIHIlZCByJWQiLCByZCwgcnMpOworICAgICAgICAgRElQKCJqYWxyIHIldSByJXUiLCByZCwgcnMpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgcHV0SVJlZyhyZCwgbWtVNjQoZ3Vlc3RfUENfY3Vycl9pbnN0ciArIDgpKTsKICAgICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTE1OTc2LDcgKzE1OTYzLDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MkE6ICAvKiBTTFQgKi8KLSAgICAgICAgIERJUCgic2x0IHIlZCwgciVkLCByJWQiLCByZCwgcnMsIHJ0KTsKKyAgICAgICAgIERJUCgic2x0IHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICAgICBwdXRJUmVnKHJkLCB1bm9wKElvcF8xVXRvNjQsIGJpbm9wKElvcF9DbXBMVDY0UywgZ2V0SVJlZyhycyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElSZWcocnQpKSkpOwpAQCAtMTU5ODYsNyArMTU5NzMsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgyQjogIC8qIFNMVFUgKi8KLSAgICAgICAgIERJUCgic2x0dSByJWQsIHIlZCwgciVkIiwgcmQsIHJzLCBydCk7CisgICAgICAgICBESVAoInNsdHUgciV1LCByJXUsIHIldSIsIHJkLCBycywgcnQpOwogICAgICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgICAgIHB1dElSZWcocmQsIHVub3AoSW9wXzFVdG82NCwgYmlub3AoSW9wX0NtcExUNjRVLCBnZXRJUmVnKHJzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SVJlZyhydCkpKSk7CkBAIC0xNTk5Niw3ICsxNTk4Myw3IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDAwOiB7ICAvKiBTTEwgKi8KLSAgICAgICAgIERJUCgic2xsIHIlZCwgciVkLCAlZCIsIHJkLCBydCwgc2EpOworICAgICAgICAgRElQKCJzbGwgciV1LCByJXUsICV1IiwgcmQsIHJ0LCBzYSk7CiAgICAgICAgICBJUlRlbXAgdG1wUnQzMiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICBJUlRlbXAgdG1wU2gzMiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICBJUlRlbXAgdG1wUmQgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTYwMTEsNyArMTU5OTgsNyBAQAogICAgICAgfQogCiAgICAgICBjYXNlIDB4MDQ6IHsgIC8qIFNMTFYgKi8KLSAgICAgICAgIERJUCgic2xsdiByJWQsIHIlZCwgciVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICBESVAoInNsbHYgciV1LCByJXUsIHIldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgSVJUZW1wIHRtcFJzOCA9IG5ld1RlbXAoSXR5X0k4KTsKICAgICAgICAgICAgIElSVGVtcCB0bXBSdDMyID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTE2MDMwLDcgKzE2MDE3LDcgQEAKICAgICAgIH0KIAogICAgICAgY2FzZSAweDAzOiAgLyogU1JBICovCi0gICAgICAgICBESVAoInNyYSByJWQsIHIlZCwgJWQiLCByZCwgcnQsIHNhKTsKKyAgICAgICAgIERJUCgic3JhIHIldSwgciV1LCAldSIsIHJkLCBydCwgc2EpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgSVJUZW1wIHRtcFJ0MzIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgSVJUZW1wIHRtcFNoMzIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTYwNTQsNyArMTYwNDEsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgwNzogIC8qIFNSQVYgKi8KLSAgICAgICAgIERJUCgic3JhdiByJWQsIHIlZCwgciVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICBESVAoInNyYXYgciV1LCByJXUsIHIldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgSVJUZW1wIHRtcFJ0MzIgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgICAgSVJUZW1wIHRtcFNoMzIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTYwODQsMTEgKzE2MDcxLDExIEBACiAgICAgICBjYXNlIDB4MDI6IHsgIC8qIFNSTCAqLwogICAgICAgICAgcm90ID0gZ2V0X3JvdChjaW5zKTsKICAgICAgICAgIGlmIChyb3QpIHsKLSAgICAgICAgICAgIERJUCgicm90ciByJWQsIHIlZCwgJWQiLCByZCwgcnQsIHNhKTsKKyAgICAgICAgICAgIERJUCgicm90ciByJXUsIHIldSwgJXUiLCByZCwgcnQsIHNhKTsKICAgICAgICAgICAgIHB1dElSZWcocmQsIG1rV2lkZW5Gcm9tMzIodHksIGdlblJPUjMyKG1rTmFycm93VG8zMih0eSwKICAgICAgICAgICAgICAgICAgICAgICAgIGdldElSZWcocnQpKSwgc2EpLCBUcnVlKSk7CiAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgRElQKCJzcmwgciVkLCByJWQsICVkIiwgcmQsIHJ0LCBzYSk7CisgICAgICAgICAgICBESVAoInNybCByJXUsIHIldSwgJXUiLCByZCwgcnQsIHNhKTsKICAgICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgICAgIElSVGVtcCB0bXBTaDMyID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgICAgICAgIElSVGVtcCB0bXBSdDMyID0gbmV3VGVtcChJdHlfSTMyKTsKQEAgLTE2MTA2LDEyICsxNjA5MywxMiBAQAogICAgICAgY2FzZSAweDA2OiB7CiAgICAgICAgICByb3QgPSBnZXRfcm90dihjaW5zKTsKICAgICAgICAgIGlmIChyb3QpIHsKLSAgICAgICAgICAgIERJUCgicm90cnYgciVkLCByJWQsIHIlZCIsIHJkLCBydCwgcnMpOworICAgICAgICAgICAgRElQKCJyb3RydiByJXUsIHIldSwgciV1IiwgcmQsIHJ0LCBycyk7CiAgICAgICAgICAgICBwdXRJUmVnKHJkLCBta1dpZGVuRnJvbTMyKHR5LCBnZW5ST1JWMzIobWtOYXJyb3dUbzMyKHR5LAogICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SVJlZyhydCkpLCBta05hcnJvd1RvMzIodHksIGdldElSZWcocnMpKSksIFRydWUpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfSBlbHNlIHsgIC8qIFNSTFYgKi8KLSAgICAgICAgICAgIERJUCgic3JsdiByJWQsIHIlZCwgciVkIiwgcmQsIHJ0LCBycyk7CisgICAgICAgICAgICBESVAoInNybHYgciV1LCByJXUsIHIldSIsIHJkLCBydCwgcnMpOwogICAgICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgICAgU1hYVl9QQVRURVJONjQoSW9wX1NocjMyKTsKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0xNjEzMSw3ICsxNjExOCw3IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDMwOiB7ICAvKiBUR0UgKi8KLSAgICAgICAgIERJUCgidGdlIHIlZCwgciVkICVkIiwgcnMsIHJ0LCB0cmFwX2NvZGUpOworICAgICAgICAgRElQKCJ0Z2UgciV1LCByJXUgJXUiLCBycywgcnQsIHRyYXBfY29kZSk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAgICBpZiAodHJhcF9jb2RlID09IDcpCiAgICAgICAgICAgICAgICBzdG10IChJUlN0bXRfRXhpdCAodW5vcCAoSW9wX05vdDEsCkBAIC0xNjE4Niw3ICsxNjE3Myw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIH0KICAgICAgIGNhc2UgMHgzMTogeyAgLyogVEdFVSAqLwotICAgICAgICAgRElQKCJ0Z2V1IHIlZCwgciVkICVkIiwgcnMsIHJ0LCB0cmFwX2NvZGUpOworICAgICAgICAgRElQKCJ0Z2V1IHIldSwgciV1ICV1IiwgcnMsIHJ0LCB0cmFwX2NvZGUpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgaWYgKHRyYXBfY29kZSA9PSA3KQogICAgICAgICAgICAgICAgc3RtdCAoSVJTdG10X0V4aXQgKHVub3AgKElvcF9Ob3QxLApAQCAtMTYyNDEsNyArMTYyMjgsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgICBjYXNlIDB4MzI6IHsgIC8qIFRMVCAqLwotICAgICAgICAgRElQKCJ0bHQgciVkLCByJWQgJWQiLCBycywgcnQsIHRyYXBfY29kZSk7CisgICAgICAgICBESVAoInRsdCByJXUsIHIldSAldSIsIHJzLCBydCwgdHJhcF9jb2RlKTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIGlmICh0cmFwX2NvZGUgPT0gNykKICAgICAgICAgICAgICAgIHN0bXQoSVJTdG10X0V4aXQoYmlub3AoSW9wX0NtcExUNjRTLCBnZXRJUmVnKHJzKSwKQEAgLTE2Mjc4LDcgKzE2MjY1LDcgQEAKICAgICAgICAgIGJyZWFrOwogICAgICAgfQogICAgICAgY2FzZSAweDMzOiB7ICAvKiBUTFRVICovCi0gICAgICAgICBESVAoInRsdHUgciVkLCByJWQgJWQiLCBycywgcnQsIHRyYXBfY29kZSk7CisgICAgICAgICBESVAoInRsdHUgciV1LCByJXUgJXUiLCBycywgcnQsIHRyYXBfY29kZSk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAgICBpZiAodHJhcF9jb2RlID09IDcpCiAgICAgICAgICAgICAgICBzdG10KElSU3RtdF9FeGl0KGJpbm9wKElvcF9DbXBMVDY0VSwgZ2V0SVJlZyhycyksCkBAIC0xNjMxNSw3ICsxNjMwMiw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIH0KICAgICAgIGNhc2UgMHgzNDogeyAgLyogVEVRICovCi0gICAgICAgICBESVAoInRlcSByJWQsIHIlZCwgJWQiLCBycywgcnQsIHRyYXBfY29kZSk7CisgICAgICAgICBESVAoInRlcSByJXUsIHIldSwgJXUiLCBycywgcnQsIHRyYXBfY29kZSk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAgICBpZiAodHJhcF9jb2RlID09IDcpCiAgICAgICAgICAgICAgICBzdG10KElSU3RtdF9FeGl0KGJpbm9wKElvcF9DbXBFUTY0LCBnZXRJUmVnKHJzKSwKQEAgLTE2MzUyLDcgKzE2MzM5LDcgQEAKICAgICAgICAgIGJyZWFrOwogICAgICAgfQogICAgICAgY2FzZSAweDM2OiB7ICAvKiBUTkUgKi8KLSAgICAgICAgIERJUCgidG5lIHIlZCwgciVkICVkIiwgcnMsIHJ0LCB0cmFwX2NvZGUpOworICAgICAgICAgRElQKCJ0bmUgciV1LCByJXUgJXUiLCBycywgcnQsIHRyYXBfY29kZSk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAgICBpZiAodHJhcF9jb2RlID09IDcpCiAgICAgICAgICAgICAgICBzdG10KElSU3RtdF9FeGl0KGJpbm9wKElvcF9DbXBORTY0LCBnZXRJUmVnKHJzKSwKQEAgLTE2NDA3LDcgKzE2Mzk0LDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MkM6IHsgIC8qIERvdWJsZXdvcmQgQWRkIC0gREFERDsgTUlQUzY0ICovCi0gICAgICAgICBESVAoImRhZGQgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgRElQKCJkYWRkIHIldSwgciV1LCByJXUiLCByZCwgcnMsIHJ0KTsKICAgICAgICAgIElSVGVtcCB0bXBSczY0ID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgIElSVGVtcCB0bXBSdDY0ID0gbmV3VGVtcChJdHlfSTY0KTsKIApAQCAtMTY0NTMsNyArMTY0NDAsNyBAQAogICAgICAgfQogCiAgICAgICBjYXNlIDB4MkQ6ICAvKiBEb3VibGV3b3JkIEFkZCBVbnNpZ25lZCAtIERBRERVOyBNSVBTNjQgKi8KLSAgICAgICAgIERJUCgiZGFkZHUgciVkLCByJWQsIHIlZCIsIHJkLCBycywgcnQpOworICAgICAgICAgRElQKCJkYWRkdSByJXUsIHIldSwgciV1IiwgcmQsIHJzLCBydCk7CiAgICAgICAgICBBTFVfUEFUVEVSTihJb3BfQWRkNjQpOwogICAgICAgICAgYnJlYWs7CiAKQEAgLTE2NTIwLDcgKzE2NTA3LDcgQEAKIAogICAgICAgc3dpdGNoIChydCkgewogICAgICAgY2FzZSAweDAwOiAgLyogQkxUWiAqLwotICAgICAgICAgRElQKCJibHR6IHIlZCwgJWQiLCBycywgaW1tKTsKKyAgICAgICAgIERJUCgiYmx0eiByJXUsICV1IiwgcnMsIGltbSk7CiAgICAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICAgICBpZiAoIWRpc19pbnN0cl9icmFuY2goY2lucywgJmRyZXMsIHJlc3RlZXJPa0ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tfb3BhcXVlLCAmYnN0bXQpKQpAQCAtMTY1MzEsNyArMTY1MTgsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgwMTogIC8qIEJHRVogKi8KLSAgICAgICAgIERJUCgiYmdleiByJWQsICVkIiwgcnMsIGltbSk7CisgICAgICAgICBESVAoImJnZXogciV1LCAldSIsIHJzLCBpbW0pOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgaWYgKCFkaXNfaW5zdHJfYnJhbmNoKGNpbnMsICZkcmVzLCByZXN0ZWVyT2tGbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFja19vcGFxdWUsICZic3RtdCkpCkBAIC0xNjU0Miw3ICsxNjUyOSw3IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDAyOiAgLyogQkxUWkwgKi8KLSAgICAgICAgIERJUCgiYmx0emwgciVkLCAlZCIsIHJzLCBpbW0pOworICAgICAgICAgRElQKCJibHR6bCByJXUsICV1IiwgcnMsIGltbSk7CiAgICAgICAgICBsYXN0biA9IGRpc19icmFuY2hfbGlrZWx5KGJpbm9wKG1vZGU2NCA/IElvcF9DbXBORTY0IDogSW9wX0NtcE5FMzIsCiAgICAgICAgICAgICAgICAgICAgICBiaW5vcChtb2RlNjQgPyBJb3BfQW5kNjQgOiBJb3BfQW5kMzIsIGdldElSZWcocnMpLAogICAgICAgICAgICAgICAgICAgICAgbW9kZTY0ID8gbWtVNjQoMHg4MDAwMDAwMDAwMDAwMDAwVUxMKSA6IG1rVTMyKDB4ODAwMDAwMDApKSwKQEAgLTE2NTUxLDcgKzE2NTM4LDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MDM6ICAvKiBCR0VaTCAqLwotICAgICAgICAgRElQKCJiZ2V6bCByJWQsICVkIiwgcnMsIGltbSk7CisgICAgICAgICBESVAoImJnZXpsIHIldSwgJXUiLCBycywgaW1tKTsKICAgICAgICAgIGxhc3RuID0gZGlzX2JyYW5jaF9saWtlbHkoYmlub3AobW9kZTY0ID8gSW9wX0NtcE5FNjQgOiBJb3BfQ21wTkUzMiwKICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKG1vZGU2NCA/IElvcF9BbmQ2NCA6IElvcF9BbmQzMiwgZ2V0SVJlZyhycyksCiAgICAgICAgICAgICAgICAgICAgICBtb2RlNjQgPyBta1U2NCgweDgwMDAwMDAwMDAwMDAwMDBVTEwpIDogbWtVMzIoMHg4MDAwMDAwMCkpLApAQCAtMTY1NTksNyArMTY1NDYsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgxMDogIC8qIEJMVFpBTCAqLwotICAgICAgICAgRElQKCJibHR6YWwgciVkLCAlZCIsIHJzLCBpbW0pOworICAgICAgICAgRElQKCJibHR6YWwgciV1LCAldSIsIHJzLCBpbW0pOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgaWYgKCFkaXNfaW5zdHJfYnJhbmNoKGNpbnMsICZkcmVzLCByZXN0ZWVyT2tGbiwKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX29wYXF1ZSwgJmJzdG10KSkKQEAgLTE2NTcwLDcgKzE2NTU3LDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MTI6ICAvKiBCTFRaQUxMICovCi0gICAgICAgICBESVAoImJsdHphbGwgciVkLCAlZCIsIHJzLCBpbW0pOworICAgICAgICAgRElQKCJibHR6YWxsIHIldSwgJXUiLCBycywgaW1tKTsKICAgICAgICAgIHB1dElSZWcoMzEsIG1vZGU2NCA/IG1rVTY0KGd1ZXN0X1BDX2N1cnJfaW5zdHIgKyA4KSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1UzMihndWVzdF9QQ19jdXJyX2luc3RyICsgOCkpOwogICAgICAgICAgbGFzdG4gPSBkaXNfYnJhbmNoX2xpa2VseShiaW5vcChtb2RlNjQgPyBJb3BfQ21wTkU2NCA6IElvcF9DbXBORTMyLApAQCAtMTY1ODEsNyArMTY1NjgsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgxMTogIC8qIEJHRVpBTCAqLwotICAgICAgICAgRElQKCJiZ2V6YWwgciVkLCAlZCIsIHJzLCBpbW0pOworICAgICAgICAgRElQKCJiZ2V6YWwgciV1LCAldSIsIHJzLCBpbW0pOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgaWYgKCFkaXNfaW5zdHJfYnJhbmNoKGNpbnMsICZkcmVzLCByZXN0ZWVyT2tGbiwKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX29wYXF1ZSwgJmJzdG10KSkKQEAgLTE2NTkyLDcgKzE2NTc5LDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MTM6ICAvKiBCR0VaQUxMICovCi0gICAgICAgICBESVAoImJnZXphbGwgciVkLCAlZCIsIHJzLCBpbW0pOworICAgICAgICAgRElQKCJiZ2V6YWxsIHIldSwgJXUiLCBycywgaW1tKTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIHB1dElSZWcoMzEsIG1rVTY0KGd1ZXN0X1BDX2N1cnJfaW5zdHIgKyA4KSk7CiAgICAgICAgICAgICBsYXN0biA9IGRpc19icmFuY2hfbGlrZWx5KGJpbm9wKElvcF9DbXBORTY0LApAQCAtMTY2MTAsNyArMTY1OTcsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgwODogIC8qIFRHRUkgKi8KLSAgICAgICAgIERJUCgidGdlaSByJWQsICVkICVkIiwgcnMsIGltbSwgdHJhcF9jb2RlKTsKKyAgICAgICAgIERJUCgidGdlaSByJXUsICV1ICV1IiwgcnMsIGltbSwgdHJhcF9jb2RlKTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIHN0bXQgKElSU3RtdF9FeGl0ICh1bm9wIChJb3BfTm90MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCAoSW9wX0NtcExUNjRTLApAQCAtMTY2MzEsNyArMTY2MTgsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgwOTogeyAgLyogVEdFSVUgKi8KLSAgICAgICAgIERJUCgidGdlaXUgciVkLCAlZCAlZCIsIHJzLCBpbW0sIHRyYXBfY29kZSk7CisgICAgICAgICBESVAoInRnZWl1IHIldSwgJXUgJXUiLCBycywgaW1tLCB0cmFwX2NvZGUpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgc3RtdCAoSVJTdG10X0V4aXQgKHVub3AgKElvcF9Ob3QxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wIChJb3BfQ21wTFQ2NFUsCkBAIC0xNjY1Miw3ICsxNjYzOSw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIH0KICAgICAgIGNhc2UgMHgwQTogeyAgLyogVExUSSAqLwotICAgICAgICAgRElQKCJ0bHRpIHIlZCwgJWQgJWQiLCBycywgaW1tLCB0cmFwX2NvZGUpOworICAgICAgICAgRElQKCJ0bHRpIHIldSwgJXUgJXUiLCBycywgaW1tLCB0cmFwX2NvZGUpOwogICAgICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgICAgc3RtdCAoSVJTdG10X0V4aXQgKGJpbm9wIChJb3BfQ21wTFQ2NFMsIGdldElSZWcgKHJzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQgKGV4dGVuZF9zXzE2dG82NCAoaW1tKSkpLApAQCAtMTY2NjksNyArMTY2NTYsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgICBjYXNlIDB4MEI6IHsgIC8qIFRMVElVICovCi0gICAgICAgICBESVAoInRsdGl1IHIlZCwgJWQgJWQiLCBycywgaW1tLCB0cmFwX2NvZGUpOworICAgICAgICAgRElQKCJ0bHRpdSByJXUsICV1ICV1IiwgcnMsIGltbSwgdHJhcF9jb2RlKTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIHN0bXQgKElSU3RtdF9FeGl0IChiaW5vcCAoSW9wX0NtcExUNjRVLCBnZXRJUmVnIChycyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0IChleHRlbmRfc18xNnRvNjQgKGltbSkpKSwKQEAgLTE2Njg2LDcgKzE2NjczLDcgQEAKICAgICAgICAgIGJyZWFrOwogICAgICAgfQogICAgICAgY2FzZSAweDBDOiB7ICAvKiBURVFJICovCi0gICAgICAgICAgRElQKCJ0ZXFpIHIlZCwgJWQgJWQiLCBycywgaW1tLCB0cmFwX2NvZGUpOworICAgICAgICAgIERJUCgidGVxaSByJXUsICV1ICV1IiwgcnMsIGltbSwgdHJhcF9jb2RlKTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIHN0bXQgKElSU3RtdF9FeGl0IChiaW5vcCAoSW9wX0NtcEVRNjQsIGdldElSZWcgKHJzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQgKGV4dGVuZF9zXzE2dG82NCAoaW1tKSkpLApAQCAtMTY3MDMsNyArMTY2OTAsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgICBjYXNlIDB4MEU6IHsgIC8qIFRORUkgKi8KLSAgICAgICAgIERJUCgidG5laSByJWQsICVkICVkIiwgcnMsIGltbSwgdHJhcF9jb2RlKTsKKyAgICAgICAgIERJUCgidG5laSByJXUsICV1ICV1IiwgcnMsIGltbSwgdHJhcF9jb2RlKTsKICAgICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgICAgIHN0bXQgKElSU3RtdF9FeGl0IChiaW5vcCAoSW9wX0NtcE5FNjQsIGdldElSZWcgKHJzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQgKGV4dGVuZF9zXzE2dG82NCAoaW1tKSkpLApAQCAtMTY3MjAsNyArMTY3MDcsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgICBjYXNlIDB4MUM6IHsgIC8qIEJQT1NHRTMyICovCi0gICAgICAgICBESVAoImJwb3NnZTMyICVkIiwgaW1tKTsKKyAgICAgICAgIERJUCgiYnBvc2dlMzIgJXUiLCBpbW0pOwogICAgICAgICAgdmFzc2VydCghbW9kZTY0KTsKICAgICAgICAgIHQwID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgICAgIC8qIEdldCBwb3MgZmllbGQgZnJvbSBEU1BDb250cm9sIHJlZ2lzdGVyLiAqLwpAQCAtMTY3MzksNyArMTY3MjYsNyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgwNDoKLSAgICAgIERJUCgiYmVxIHIlZCwgciVkLCAlZCIsIHJzLCBydCwgaW1tKTsKKyAgICAgIERJUCgiYmVxIHIldSwgciV1LCAldSIsIHJzLCBydCwgaW1tKTsKICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICBkaXNfYnJhbmNoKEZhbHNlLCBiaW5vcChJb3BfQ21wRVE2NCwgZ2V0SVJlZyhycyksIGdldElSZWcocnQpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbSwgJmJzdG10KTsKQEAgLTE2NzQ5LDEzICsxNjczNiwxMyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgxNDoKLSAgICAgIERJUCgiYmVxbCByJWQsIHIlZCwgJWQiLCBycywgcnQsIGltbSk7CisgICAgICBESVAoImJlcWwgciV1LCByJXUsICV1IiwgcnMsIHJ0LCBpbW0pOwogICAgICAgbGFzdG4gPSBkaXNfYnJhbmNoX2xpa2VseShiaW5vcChtb2RlNjQgPyBJb3BfQ21wTkU2NCA6IElvcF9DbXBORTMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJUmVnKHJzKSwgZ2V0SVJlZyhydCkpLCBpbW0pOwogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgwNToKLSAgICAgIERJUCgiYm5lIHIlZCwgciVkLCAlZCIsIHJzLCBydCwgaW1tKTsKKyAgICAgIERJUCgiYm5lIHIldSwgciV1LCAldSIsIHJzLCBydCwgaW1tKTsKICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICBkaXNfYnJhbmNoKEZhbHNlLCBiaW5vcChJb3BfQ21wTkU2NCwgZ2V0SVJlZyhycyksIGdldElSZWcocnQpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbSwgJmJzdG10KTsKQEAgLTE2NzY1LDEzICsxNjc1MiwxMyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgxNToKLSAgICAgIERJUCgiYm5lbCByJWQsIHIlZCwgJWQiLCBycywgcnQsIGltbSk7CisgICAgICBESVAoImJuZWwgciV1LCByJXUsICV1IiwgcnMsIHJ0LCBpbW0pOwogICAgICAgbGFzdG4gPSBkaXNfYnJhbmNoX2xpa2VseShiaW5vcChtb2RlNjQgPyBJb3BfQ21wRVE2NCA6IElvcF9DbXBFUTMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJUmVnKHJzKSwgZ2V0SVJlZyhydCkpLCBpbW0pOwogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgwNzogIC8qIEJHVFogKi8KLSAgICAgIERJUCgiYmd0eiByJWQsICVkIiwgcnMsIGltbSk7CisgICAgICBESVAoImJndHogciV1LCAldSIsIHJzLCBpbW0pOwogICAgICAgaWYgKG1vZGU2NCkKICAgICAgICAgIGRpc19icmFuY2goRmFsc2UsIHVub3AoSW9wX05vdDEsIGJpbm9wKElvcF9DbXBMRTY0UywgZ2V0SVJlZyhycyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KDB4MDApKSksIGltbSwgJmJzdG10KTsKQEAgLTE2NzgxLDcgKzE2NzY4LDcgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4MTc6ICAvKiBCR1RaTCAqLwotICAgICAgRElQKCJiZ3R6bCByJWQsICVkIiwgcnMsIGltbSk7CisgICAgICBESVAoImJndHpsIHIldSwgJXUiLCBycywgaW1tKTsKICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICBsYXN0biA9IGRpc19icmFuY2hfbGlrZWx5KGJpbm9wKElvcF9DbXBMRTY0UywgZ2V0SVJlZyhycyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KDB4MDApKSwgaW1tKTsKQEAgLTE2NzkxLDcgKzE2Nzc4LDcgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4MDY6ICAvKiBCTEVaICovCi0gICAgICBESVAoImJsZXogciVkLCAlZCIsIHJzLCBpbW0pOworICAgICAgRElQKCJibGV6IHIldSwgJXUiLCBycywgaW1tKTsKICAgICAgIGlmIChtb2RlNjQpCiAgICAgICAgICBkaXNfYnJhbmNoKEZhbHNlLCBiaW5vcChJb3BfQ21wTEU2NFMsIGdldElSZWcocnMpLCBta1U2NCgweDApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tLCAmYnN0bXQpOwpAQCAtMTY4MDEsMTQgKzE2Nzg4LDE0IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDE2OiAgLyogQkxFWkwgKi8KLSAgICAgIERJUCgiYmxlemwgciVkLCAlZCIsIHJzLCBpbW0pOworICAgICAgRElQKCJibGV6bCByJXUsICV1IiwgcnMsIGltbSk7CiAgICAgICBsYXN0biA9IGRpc19icmFuY2hfbGlrZWx5KHVub3AoSW9wX05vdDEsIChiaW5vcChtb2RlNjQgPyBJb3BfQ21wTEU2NFMgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElvcF9DbXBMRTMyUywgZ2V0SVJlZyhycyksIG1vZGU2NCA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQoMHgwKSA6IG1rVTMyKDB4MCkpKSksIGltbSk7CiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDA4OiB7ICAvKiBBRERJICovCi0gICAgICBESVAoImFkZGkgciVkLCByJWQsICVkIiwgcnQsIHJzLCBpbW0pOworICAgICAgRElQKCJhZGRpIHIldSwgciV1LCAldSIsIHJ0LCBycywgaW1tKTsKICAgICAgIElSVGVtcCB0bXBSczMyID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgIGFzc2lnbih0bXBSczMyLCBta05hcnJvd1RvMzIodHksIGdldElSZWcocnMpKSk7CiAKQEAgLTE2ODQ1LDcgKzE2ODMyLDcgQEAKICAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSAweDA5OiAgLyogQURESVUgKi8KLSAgICAgIERJUCgiYWRkaXUgciVkLCByJWQsICVkIiwgcnQsIHJzLCBpbW0pOworICAgICAgRElQKCJhZGRpdSByJXUsIHIldSwgJXUiLCBydCwgcnMsIGltbSk7CiAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICBwdXRJUmVnKHJ0LCBta1dpZGVuRnJvbTMyKHR5LCBiaW5vcChJb3BfQWRkMzIsCiAgICAgICAgICAgICAgICAgICAgICBta05hcnJvd1RvMzIodHksIGdldElSZWcocnMpKSxta1UzMihleHRlbmRfc18xNnRvMzIoaW1tKSkpLApAQCAtMTY4NTUsNyArMTY4NDIsNyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgwQzogIC8qIEFOREkgKi8KLSAgICAgIERJUCgiYW5kaSByJWQsIHIlZCwgJWQiLCBydCwgcnMsIGltbSk7CisgICAgICBESVAoImFuZGkgciV1LCByJXUsICV1IiwgcnQsIHJzLCBpbW0pOwogICAgICAgaWYgKG1vZGU2NCkgewogICAgICAgICAgQUxVSV9QQVRURVJONjQoSW9wX0FuZDY0KTsKICAgICAgIH0gZWxzZSB7CkBAIC0xNjg2NCw3ICsxNjg1MSw3IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDBFOiAgLyogWE9SSSAqLwotICAgICAgRElQKCJ4b3JpIHIlZCwgciVkLCAlZCIsIHJ0LCBycywgaW1tKTsKKyAgICAgIERJUCgieG9yaSByJXUsIHIldSwgJXUiLCBydCwgcnMsIGltbSk7CiAgICAgICBpZiAobW9kZTY0KSB7CiAgICAgICAgICBBTFVJX1BBVFRFUk42NChJb3BfWG9yNjQpOwogICAgICAgfSBlbHNlIHsKQEAgLTE2ODczLDcgKzE2ODYwLDcgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4MEQ6ICAvKiBPUkkgKi8KLSAgICAgIERJUCgib3JpIHIlZCwgciVkLCAlZCIsIHJ0LCBycywgaW1tKTsKKyAgICAgIERJUCgib3JpIHIldSwgciV1LCAldSIsIHJ0LCBycywgaW1tKTsKICAgICAgIGlmIChtb2RlNjQpIHsKICAgICAgICAgIEFMVUlfUEFUVEVSTjY0KElvcF9PcjY0KTsKICAgICAgIH0gZWxzZSB7CkBAIC0xNjg4Miw3ICsxNjg2OSw3IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDBBOiAgLyogU0xUSSAqLwotICAgICAgRElQKCJzbHRpIHIlZCwgciVkLCAlZCIsIHJ0LCBycywgaW1tKTsKKyAgICAgIERJUCgic2x0aSByJXUsIHIldSwgJXUiLCBydCwgcnMsIGltbSk7CiAgICAgICBpZiAobW9kZTY0KQogICAgICAgICAgcHV0SVJlZyhydCwgdW5vcChJb3BfMVV0bzY0LCBiaW5vcChJb3BfQ21wTFQ2NFMsIGdldElSZWcocnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U2NChleHRlbmRfc18xNnRvNjQoaW1tKSkpKSk7CkBAIC0xNjg5Miw3ICsxNjg3OSw3IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDBCOiAgLyogU0xUSVUgKi8KLSAgICAgIERJUCgic2x0aXUgciVkLCByJWQsICVkIiwgcnQsIHJzLCBpbW0pOworICAgICAgRElQKCJzbHRpdSByJXUsIHIldSwgJXUiLCBydCwgcnMsIGltbSk7CiAgICAgICBpZiAobW9kZTY0KQogICAgICAgICAgcHV0SVJlZyhydCwgdW5vcChJb3BfMVV0bzY0LCBiaW5vcChJb3BfQ21wTFQ2NFUsIGdldElSZWcocnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U2NChleHRlbmRfc18xNnRvNjQoaW1tKSkpKSk7CkBAIC0xNjkwMiw3ICsxNjg4OSw3IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDE4OiB7ICAvKiBEb3VibGV3b3JkIEFkZCBJbW1pZGlhdGUgLSBEQUREOyBNSVBTNjQgKi8KLSAgICAgIERJUCgiZGFkZGkgciVkLCByJWQsICVkIiwgcnQsIHJzLCBpbW0pOworICAgICAgRElQKCJkYWRkaSByJXUsIHIldSwgJXUiLCBydCwgcnMsIGltbSk7CiAgICAgICBJUlRlbXAgdG1wUnM2NCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICBhc3NpZ24odG1wUnM2NCwgZ2V0SVJlZyhycykpOwogCkBAIC0xNjk0MSwxNCArMTY5MjgsMTQgQEAKICAgIH0KIAogICAgY2FzZSAweDE5OiAgLyogRG91Ymxld29yZCBBZGQgSW1taWRpYXRlIFVuc2lnbmVkIC0gREFERElVOyBNSVBTNjQgKi8KLSAgICAgIERJUCgiZGFkZGl1IHIlZCwgciVkLCAlZCIsIHJ0LCBycywgaW1tKTsKKyAgICAgIERJUCgiZGFkZGl1IHIldSwgciV1LCAldSIsIHJ0LCBycywgaW1tKTsKICAgICAgIHB1dElSZWcocnQsIGJpbm9wKElvcF9BZGQ2NCwgZ2V0SVJlZyhycyksIG1rVTY0KGV4dGVuZF9zXzE2dG82NChpbW0pKSkpOwogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgxQTogewogICAgICAgLyogTG9hZCBEb3VibGV3b3JkIExlZnQgLSBMREw7IE1JUFM2NCAqLwogICAgICAgdmFzc2VydChtb2RlNjQpOwotICAgICAgRElQKCJsZGwgciV1LCAlZChyJXUpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJsZGwgciV1LCAldShyJXUpIiwgcnQsIGltbSwgcnMpOwogICAgICAgLyogdDEgPSBhZGRyICovCiAjaWYgZGVmaW5lZCAoX01JUFNFTCkKICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTE2OTg3LDcgKzE2OTc0LDcgQEAKICAgIGNhc2UgMHgxQjogewogICAgICAgLyogTG9hZCBEb3VibGV3b3JkIFJpZ2h0IC0gTERSOyBNSVBTNjQgKi8KICAgICAgIHZhc3NlcnQobW9kZTY0KTsKLSAgICAgIERJUCgibGRyIHIldSwlZChyJXUpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJsZHIgciV1LCV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICAvKiB0MSA9IGFkZHIgKi8KICNpZiBkZWZpbmVkIChfTUlQU0VMKQogICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTcwMTcsMTQgKzE3MDA0LDE0IEBACiAgICB9CiAKICAgIGNhc2UgMHgyNzogIC8qIExvYWQgV29yZCB1bnNpZ25lZCAtIExXVTsgTUlQUzY0ICovCi0gICAgICBESVAoImx3dSByJXUsJWQociV1KSIsIHJ0LCBpbW0sIHJzKTsKKyAgICAgIERJUCgibHd1IHIldSwldShyJXUpIiwgcnQsIGltbSwgcnMpOwogICAgICAgTE9BRF9TVE9SRV9QQVRURVJOOwogCiAgICAgICBwdXRJUmVnKHJ0LCBta1dpZGVuRnJvbTMyKHR5LCBsb2FkKEl0eV9JMzIsIG1rZXhwcih0MSkpLCBGYWxzZSkpOwogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgzMDogIC8qIExMIC8gTFdDMCAqLwotICAgICAgRElQKCJsbCByJWQsICVkKHIlZCkiLCBydCwgaW1tLCBycyk7CisgICAgICBESVAoImxsIHIldSwgJXUociV1KSIsIHJ0LCBpbW0sIHJzKTsKICAgICAgIExPQURfU1RPUkVfUEFUVEVSTjsKIAogICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMzIpOwpAQCAtMTcwNDAsNyArMTcwMjcsNyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgzNDogIC8qIExvYWQgTGlua2VkIERvdWJsZXdvcmQgLSBMTEQ7IE1JUFM2NCAqLwotICAgICAgRElQKCJsbGQgciVkLCAlZChyJWQpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJsbGQgciV1LCAldShyJXUpIiwgcnQsIGltbSwgcnMpOwogICAgICAgTE9BRF9TVE9SRV9QQVRURVJOOwogCiAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0k2NCk7CkBAIC0xNzA1Niw3ICsxNzA0Myw3IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDM4OiAgLyogU0MgLyBTV0MwICovCi0gICAgICBESVAoInNjIHIlZCwgJWQociVkKSIsIHJ0LCBpbW0sIHJzKTsKKyAgICAgIERJUCgic2MgciV1LCAldShyJXUpIiwgcnQsIGltbSwgcnMpOwogICAgICAgTE9BRF9TVE9SRV9QQVRURVJOOwogCiAgICAgICB0MiA9IG5ld1RlbXAoSXR5X0kxKTsKQEAgLTE3MDcwLDcgKzE3MDU3LDcgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4M0M6ICAvKiBTdG9yZSBDb25kaXRpb25hbCBEb3VibGV3b3JkIC0gU0NEOyBNSVBTNjQgKi8KLSAgICAgIERJUCgic2RjIHIlZCwgJWQociVkKSIsIHJ0LCBpbW0sIHJzKTsKKyAgICAgIERJUCgic2RjIHIldSwgJXUociV1KSIsIHJ0LCBpbW0sIHJzKTsKICAgICAgIExPQURfU1RPUkVfUEFUVEVSTjsKIAogICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JMSk7CkBAIC0xNzA4NCwxMyArMTcwNzEsMTMgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIDB4Mzc6ICAvKiBMb2FkIERvdWJsZXdvcmQgLSBMRDsgTUlQUzY0ICovCi0gICAgICBESVAoImxkIHIldSwgJWQociV1KSIsIHJ0LCBpbW0sIHJzKTsKKyAgICAgIERJUCgibGQgciV1LCAldShyJXUpIiwgcnQsIGltbSwgcnMpOwogICAgICAgTE9BRF9TVE9SRV9QQVRURVJOOwogICAgICAgcHV0SVJlZyhydCwgbG9hZChJdHlfSTY0LCBta2V4cHIodDEpKSk7CiAgICAgICBicmVhazsKIAogICAgY2FzZSAweDNGOiAgLyogU3RvcmUgRG91Ymxld29yZCAtIFNEOyBNSVBTNjQgKi8KLSAgICAgIERJUCgic2QgciV1LCAlZChyJXUpIiwgcnQsIGltbSwgcnMpOworICAgICAgRElQKCJzZCByJXUsICV1KHIldSkiLCBydCwgaW1tLCBycyk7CiAgICAgICBMT0FEX1NUT1JFX1BBVFRFUk47CiAgICAgICBzdG9yZShta2V4cHIodDEpLCBnZXRJUmVnKHJ0KSk7CiAgICAgICBicmVhazsKQEAgLTE3MDk4LDcgKzE3MDg1LDcgQEAKICAgIGNhc2UgMHgzMjogIC8qIEJyYW5jaCBvbiBCaXQgQ2xlYXIgLSBCQklUMDsgQ2F2aXVtIE9DVEVPTiAqLwogICAgICAgLyogQ2F2aXVtIFNwZWNpZmljIGluc3RydWN0aW9ucy4gKi8KICAgICAgIGlmIChWRVhfTUlQU19DT01QX0lEKGFyY2hpbmZvLT5od2NhcHMpID09IFZFWF9QUklEX0NPTVBfQ0FWSVVNKSB7Ci0gICAgICAgICBESVAoImJiaXQwIHIlZCwgMHgleCwgJXgiLCBycywgcnQsIGltbSk7CisgICAgICAgICBESVAoImJiaXQwIHIldSwgMHgleCwgJXgiLCBycywgcnQsIGltbSk7CiAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICBhc3NpZ24odDAsIG1rVTMyKDB4MSkpOwpAQCAtMTcxMTcsNyArMTcxMDQsNyBAQAogICAgY2FzZSAweDM2OiAgLyogQnJhbmNoIG9uIEJpdCBDbGVhciBQbHVzIDMyIC0gQkJJVDAzMjsgQ2F2aXVtIE9DVEVPTiAqLwogICAgICAgLyogQ2F2aXVtIFNwZWNpZmljIGluc3RydWN0aW9ucy4gKi8KICAgICAgIGlmIChWRVhfTUlQU19DT01QX0lEKGFyY2hpbmZvLT5od2NhcHMpID09IFZFWF9QUklEX0NPTVBfQ0FWSVVNKSB7Ci0gICAgICAgICBESVAoImJiaXQwMzIgciVkLCAweCV4LCAleCIsIHJzLCBydCwgaW1tKTsKKyAgICAgICAgIERJUCgiYmJpdDAzMiByJXUsIDB4JXgsICV4IiwgcnMsIHJ0LCBpbW0pOwogICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JOCk7ICAvKiBTaGlmdC4gKi8KICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfSTY0KTsKQEAgLTE3MTM4LDcgKzE3MTI1LDcgQEAKICAgIGNhc2UgMHgzQTogIC8qIEJyYW5jaCBvbiBCaXQgU2V0IC0gQkJJVDE7IENhdml1bSBPQ1RFT04gKi8KICAgICAgIC8qIENhdml1bSBTcGVjaWZpYyBpbnN0cnVjdGlvbnMuICovCiAgICAgICBpZiAoVkVYX01JUFNfQ09NUF9JRChhcmNoaW5mby0+aHdjYXBzKSA9PSBWRVhfUFJJRF9DT01QX0NBVklVTSkgewotICAgICAgICAgRElQKCJiYml0MSByJWQsIDB4JXgsICV4IiwgcnMsIHJ0LCBpbW0pOworICAgICAgICAgRElQKCJiYml0MSByJXUsIDB4JXgsICV4IiwgcnMsIHJ0LCBpbW0pOwogICAgICAgICAgdDAgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgdDEgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgYXNzaWduKHQwLCBta1UzMigweDEpKTsKQEAgLTE3MTU3LDcgKzE3MTQ0LDcgQEAKICAgIGNhc2UgMHgzRTogIC8qIEJyYW5jaCBvbiBCaXQgU2V0IFBsdXMgMzIgLSBCQklUMTMyOyBDYXZpdW0gT0NURU9OICovCiAgICAgICAvKiBDYXZpdW0gU3BlY2lmaWMgaW5zdHJ1Y3Rpb25zLiAqLwogICAgICAgaWYgKFZFWF9NSVBTX0NPTVBfSUQoYXJjaGluZm8tPmh3Y2FwcykgPT0gVkVYX1BSSURfQ09NUF9DQVZJVU0pIHsKLSAgICAgICAgIERJUCgiYmJpdDEzMiByJWQsIDB4JXgsICV4IiwgcnMsIHJ0LCBpbW0pOworICAgICAgICAgRElQKCJiYml0MTMyIHIldSwgMHgleCwgJXgiLCBycywgcnQsIGltbSk7CiAgICAgICAgICB0MCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0k4KTsgIC8qIFNoaWZ0LiAqLwogICAgICAgICAgdDIgPSBuZXdUZW1wKEl0eV9JNjQpOwpAQCAtMTcxODcsMTAgKzE3MTc0LDEwIEBACiAgICAgICBpZiAoc2lnaWxsX2RpYWcpCiAgICAgICAgICB2ZXhfcHJpbnRmKCJ2ZXggbWlwcy0+SVI6IHVuaGFuZGxlZCBpbnN0cnVjdGlvbiBieXRlczogIgogICAgICAgICAgICAgICAgICAgICAiMHgleCAweCV4IDB4JXggMHgleFxuIiwKLSAgICAgICAgICAgICAgICAgICAgKEludCkgZ2V0SUJ5dGUoZGVsdGFfc3RhcnQgKyAwKSwKLSAgICAgICAgICAgICAgICAgICAgKEludCkgZ2V0SUJ5dGUoZGVsdGFfc3RhcnQgKyAxKSwKLSAgICAgICAgICAgICAgICAgICAgKEludCkgZ2V0SUJ5dGUoZGVsdGFfc3RhcnQgKyAyKSwKLSAgICAgICAgICAgICAgICAgICAgKEludCkgZ2V0SUJ5dGUoZGVsdGFfc3RhcnQgKyAzKSk7CisgICAgICAgICAgICAgICAgICAgIChVSW50KSBnZXRJQnl0ZShkZWx0YV9zdGFydCArIDApLAorICAgICAgICAgICAgICAgICAgICAoVUludCkgZ2V0SUJ5dGUoZGVsdGFfc3RhcnQgKyAxKSwKKyAgICAgICAgICAgICAgICAgICAgKFVJbnQpIGdldElCeXRlKGRlbHRhX3N0YXJ0ICsgMiksCisgICAgICAgICAgICAgICAgICAgIChVSW50KSBnZXRJQnl0ZShkZWx0YV9zdGFydCArIDMpKTsKIAogICAgICAgLyogVGVsbCB0aGUgZGlzcGF0Y2hlciB0aGF0IHRoaXMgaW5zbiBjYW5ub3QgYmUgZGVjb2RlZCwgYW5kIHNvIGhhcwogICAgICAgICAgbm90IGJlZW4gZXhlY3V0ZWQsIGFuZCAoaXMgY3VycmVudGx5KSB0aGUgbmV4dCB0byBiZSBleGVjdXRlZC4KZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X3BwY19kZWZzLmggYi9WRVgvcHJpdi9ndWVzdF9wcGNfZGVmcy5oCmluZGV4IDhlZjE3MDYuLmYyY2Y3YzcgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2d1ZXN0X3BwY19kZWZzLmgKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfcHBjX2RlZnMuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X3BwY19oZWxwZXJzLmMgYi9WRVgvcHJpdi9ndWVzdF9wcGNfaGVscGVycy5jCmluZGV4IGRjMzY4MTguLmE5NGJkYWQgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2d1ZXN0X3BwY19oZWxwZXJzLmMKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfcHBjX2hlbHBlcnMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTUyMSw2ICs1MjEsOCBAQAogCiAgICB2ZXhfc3RhdGUtPmd1ZXN0X0lQX0FUX1NZU0NBTEwgPSAwOwogICAgdmV4X3N0YXRlLT5ndWVzdF9TUFJHM19STyA9IDA7CisgICB2ZXhfc3RhdGUtPmd1ZXN0X1BQUiA9IDB4NFVMTCA8PCA1MDsgIC8vIG1lZGl1bSBwcmlvcml0eQorICAgdmV4X3N0YXRlLT5ndWVzdF9QU1BCID0gMHgxMDA7ICAvLyBhbiBhcmJpdHJhcnkgbm9uLXplcm8gdmFsdWUgdG8gc3RhcnQgd2l0aAogCiAgICB2ZXhfc3RhdGUtPnBhZGRpbmcxID0gMDsKICAgIHZleF9zdGF0ZS0+cGFkZGluZzIgPSAwOwpAQCAtNjkxLDYgKzY5Myw4IEBACiAgICB2ZXhfc3RhdGUtPmd1ZXN0X1RGSEFSICA9IDA7CiAgICB2ZXhfc3RhdGUtPmd1ZXN0X1RGSUFSICA9IDA7CiAgICB2ZXhfc3RhdGUtPmd1ZXN0X1RFWEFTUiA9IDA7CisgICB2ZXhfc3RhdGUtPmd1ZXN0X1BQUiA9IDB4NFVMTCA8PCA1MDsgIC8vIG1lZGl1bSBwcmlvcml0eQorICAgdmV4X3N0YXRlLT5ndWVzdF9QU1BCID0gMHgxMDA7ICAvLyBhbiBhcmJpdHJhcnkgbm9uLXplcm8gdmFsdWUgdG8gc3RhcnQgd2l0aAogfQogCiAKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X3BwY190b0lSLmMgYi9WRVgvcHJpdi9ndWVzdF9wcGNfdG9JUi5jCmluZGV4IGYxNWUxNjYuLjZhMGI2ZDggMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2d1ZXN0X3BwY190b0lSLmMKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfcHBjX3RvSVIuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI4OCw2ICsyODgsOCBAQAogI2RlZmluZSBPRkZCX1RFWEFTUiAgICAgIG9mZnNldG9mUFBDR3Vlc3RTdGF0ZShndWVzdF9URVhBU1IpCiAjZGVmaW5lIE9GRkJfVEVYQVNSVSAgICAgb2Zmc2V0b2ZQUENHdWVzdFN0YXRlKGd1ZXN0X1RFWEFTUlUpCiAjZGVmaW5lIE9GRkJfVEZJQVIgICAgICAgb2Zmc2V0b2ZQUENHdWVzdFN0YXRlKGd1ZXN0X1RGSUFSKQorI2RlZmluZSBPRkZCX1BQUiAgICAgICAgIG9mZnNldG9mUFBDR3Vlc3RTdGF0ZShndWVzdF9QUFIpCisjZGVmaW5lIE9GRkJfUFNQQiAgICAgICAgb2Zmc2V0b2ZQUENHdWVzdFN0YXRlKGd1ZXN0X1BTUEIpCiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtNDM4LDYgKzQ0MCwxNCBAQAogICAgIFBQQ19HU1RfVEZJQVIsICAvLyBUcmFuc2FjdGlvbmFsIEZhaWx1cmUgSW5zdHJ1Y3Rpb24gQWRkcmVzcyBSZWdpc3RlcgogICAgIFBQQ19HU1RfVEVYQVNSLCAvLyBUcmFuc2FjdGlvbmFsIEVYY2VwdGlvbiBBbmQgU3VtbWFyeSBSZWdpc3RlcgogICAgIFBQQ19HU1RfVEVYQVNSVSwgLy8gVHJhbnNhY3Rpb25hbCBFWGNlcHRpb24gQW5kIFN1bW1hcnkgUmVnaXN0ZXIgVXBwZXIKKyAgICBQUENfR1NUX1BQUiwgICAgIC8vIFByb2dyYW0gUHJpb3JpdHkgcmVnaXN0ZXIKKyAgICBQUENfR1NUX1BQUjMyLCAgIC8vIFVwcGVyIDMyLWJpdHMgb2YgUHJvZ3JhbSBQcmlvcml0eSByZWdpc3RlcgorICAgIFBQQ19HU1RfUFNQQiwgICAgLyogUHJvYmxlbSBTdGF0ZSBQcmlvcml0eSBCb29zdCByZWdpc3RlciwgTm90ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgICAgKiByZWdpc3RlciBpcyBpbml0aWFsaXplZCB0byBhIG5vbi16ZXJvIHZhbHVlLiAgQ3VycmVudGx5CisgICAgICAgICAgICAgICAgICAgICAgKiBWYWxncmluZCBpcyBub3Qgc3VwcG9ydGluZyB0aGUgcmVnaXN0ZXIgdmFsdWUgdG8KKyAgICAgICAgICAgICAgICAgICAgICAqIGF1dG9tYXRpY2FsbHkgZGVjcmVtZW50LiBDb3VsZCBiZSBhZGRlZCBsYXRlciBpZgorICAgICAgICAgICAgICAgICAgICAgICogbmVlZGVkLgorICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgUFBDX0dTVF9NQVgKIH0gUFBDX0dTVDsKIApAQCAtMTcxMCwxMiArMTcyMCwxMiBAQAogc3RhdGljIElSRXhwciogYWRkcl9hbGlnbiggSVJFeHByKiBhZGRyLCBVQ2hhciBhbGlnbiApCiB7CiAgICBJUlR5cGUgdHkgPSBtb2RlNjQgPyBJdHlfSTY0IDogSXR5X0kzMjsKLSAgIExvbmcgbWFzazsKKyAgIFVMb25nIG1hc2s7CiAgICBzd2l0Y2ggKGFsaWduKSB7CiAgICBjYXNlIDE6ICByZXR1cm4gYWRkcjsgICAgICAgICAgICAgICAgICAgIC8vIGJ5dGUgYWxpZ25lZAotICAgY2FzZSAyOiAgbWFzayA9ICgoTG9uZyktMSkgPDwgMTsgYnJlYWs7ICAvLyBoYWxmLXdvcmQgYWxpZ25lZAotICAgY2FzZSA0OiAgbWFzayA9ICgoTG9uZyktMSkgPDwgMjsgYnJlYWs7ICAvLyB3b3JkIGFsaWduZWQKLSAgIGNhc2UgMTY6IG1hc2sgPSAoKExvbmcpLTEpIDw8IDQ7IGJyZWFrOyAgLy8gcXVhZC13b3JkIGFsaWduZWQKKyAgIGNhc2UgMjogIG1hc2sgPSB+MFVMTCA8PCAxOyBicmVhazsgICAgICAgLy8gaGFsZi13b3JkIGFsaWduZWQKKyAgIGNhc2UgNDogIG1hc2sgPSB+MFVMTCA8PCAyOyBicmVhazsgICAgICAgLy8gd29yZCBhbGlnbmVkCisgICBjYXNlIDE2OiBtYXNrID0gfjBVTEwgPDwgNDsgYnJlYWs7ICAgICAgIC8vIHF1YWQtd29yZCBhbGlnbmVkCiAgICBkZWZhdWx0OgogICAgICAgdmV4X3ByaW50ZigiYWRkcl9hbGlnbjogYWxpZ24gPSAldVxuIiwgYWxpZ24pOwogICAgICAgdnBhbmljKCJhZGRyX2FsaWduKHBwYykiKTsKQEAgLTI3NDcsNiArMjc1NywxNSBAQAogICAgY2FzZSBQUENfR1NUX1RGSUFSOgogICAgICAgcmV0dXJuIElSRXhwcl9HZXQoIE9GRkJfVEZJQVIsIHR5ICk7CiAKKyAgIGNhc2UgUFBDX0dTVF9QUFI6CisgICAgICByZXR1cm4gSVJFeHByX0dldCggT0ZGQl9QUFIsIHR5ICk7CisKKyAgIGNhc2UgUFBDX0dTVF9QUFIzMjoKKyAgICAgIHJldHVybiB1bm9wKCBJb3BfNjRISXRvMzIsIElSRXhwcl9HZXQoIE9GRkJfUFBSLCB0eSApICk7CisKKyAgIGNhc2UgUFBDX0dTVF9QU1BCOgorICAgICAgcmV0dXJuIElSRXhwcl9HZXQoIE9GRkJfUFNQQiwgdHkgKTsKKwogICAgZGVmYXVsdDoKICAgICAgIHZleF9wcmludGYoImdldEdTVChwcGMpOiByZWcgPSAldSIsIHJlZyk7CiAgICAgICB2cGFuaWMoImdldEdTVChwcGMpIik7CkBAIC0yOTI2LDYgKzI5NDUsOTUgQEAKICAgICAgIHZhc3NlcnQoIHR5X3NyYyA9PSBJdHlfSTY0ICk7CiAgICAgICBzdG10KCBJUlN0bXRfUHV0KCBPRkZCX1RGSEFSLCBzcmMgKSApOwogICAgICAgYnJlYWs7CisKKyAgIGNhc2UgUFBDX0dTVF9QUFIzMjoKKyAgIGNhc2UgUFBDX0dTVF9QUFI6CisgICAgICB7CisgICAgICAgICAvKiBUaGUgUHJvZ3JhbSBQcmlvcml0eSBSZWdpc3RlciAoUFBSKSBzdG9yZXMgdGhlIHByaW9yaXR5IGluCisgICAgICAgICAgKiBiaXRzIFs1Mjo1MF0uICBUaGUgdXNlciBzZXRhYmxlIHByaW9yaXRpZXMgYXJlOgorICAgICAgICAgICoKKyAgICAgICAgICAqICAgIDAwMSAgdmVyeSBsb3cKKyAgICAgICAgICAqICAgIDAxMCAgbG93CisgICAgICAgICAgKiAgICAwMTEgIG1lZGl1bSBsb3cKKyAgICAgICAgICAqICAgIDEwMCAgbWVkaXVtCisgICAgICAgICAgKiAgICAxMDEgIG1lZGl1bSBoaWdoCisgICAgICAgICAgKgorICAgICAgICAgICogSWYgdGhlIGFyZ3VtZW50IGlzIG5vdCBiZXR3ZWVuIDBiMDAxIGFuZCAwYjEwMCB0aGUgcHJpb3JpdHkgaXMgc2V0CisgICAgICAgICAgKiB0byAwYjEwMC4gIFRoZSBwcmlvcml0eSBjYW4gb25seSBiZSBzZXQgdG8gMGIxMDEgaWYgdGhlIHRoZSBQcm9ibGVtCisgICAgICAgICAgKiBTdGF0ZSBCb29zdCBSZWdpc3RlciBpcyBub24temVyby4gIFRoZSB2YWx1ZSBvZiB0aGUgUFBSIGlzIG5vdAorICAgICAgICAgICogY2hhbmdlZCBpZiB0aGUgaW5wdXQgaXMgbm90IHZhbGlkLgorICAgICAgICAgICovCisKKyAgICAgICAgIElSVGVtcCBub3RfdmFsaWQgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgICAgICAgSVJUZW1wIGhhc19wZXJtID0gbmV3VGVtcChJdHlfSTY0KTsKKyAgICAgICAgIElSVGVtcCBuZXdfc3JjICA9IG5ld1RlbXAoSXR5X0k2NCk7CisgICAgICAgICBJUlRlbXAgUFNQQl92YWwgPSBuZXdUZW1wKEl0eV9JNjQpOworICAgICAgICAgSVJUZW1wIHZhbHVlICAgID0gbmV3VGVtcChJdHlfSTY0KTsKKworICAgICAgICAgdmFzc2VydCgoIHR5X3NyYyA9PSBJdHlfSTY0ICkgfHwgKCB0eV9zcmMgPT0gSXR5X0kzMiApKTsKKyAgICAgICAgIGFzc2lnbiggUFNQQl92YWwsIGJpbm9wKCBJb3BfMzJITHRvNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVMzIoIDAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUkV4cHJfR2V0KCBPRkZCX1BTUEIsIEl0eV9JMzIgKSApICk7CisgICAgICAgICBpZiggcmVnID09IFBQQ19HU1RfUFBSMzIgKSB7CisgICAgICAgICAgICB2YXNzZXJ0KCB0eV9zcmMgPT0gSXR5X0kzMiApOworICAgICAgICAgICAgYXNzaWduKCB2YWx1ZSwgYmlub3AoIElvcF8zMkhMdG82NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1UzMigwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX0FuZDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX1NocjMyLCBzcmMsICBta1U4KCAxOCApICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTMyKCAweDcgKSApICkgKTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXNzZXJ0KCB0eV9zcmMgPT0gSXR5X0k2NCApOworICAgICAgICAgICAgYXNzaWduKCB2YWx1ZSwgYmlub3AoIElvcF9BbmQ2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX1NocjY0LCBzcmMsICBta1U4KCA1MCApICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQoIDB4NyApICkgKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGFzc2lnbiggaGFzX3Blcm0sCisgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfQW5kNjQsCisgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfMVN0bzY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9DbXBFUTY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggUFNQQl92YWwgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U2NCggMCApICkgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF8xU3RvNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX0NtcEVRNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQoIDB4NSApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggdmFsdWUgKSApICkgKSApOworICAgICAgICAgYXNzaWduKCBub3RfdmFsaWQsCisgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfT3I2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF8xU3RvNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX0NtcEVRNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKCB2YWx1ZSApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KCAwICkgKSApLAorICAgICAgICAgICAgICAgICAgICAgICAgdW5vcCggSW9wXzFTdG82NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfQ21wTFQ2NFUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQoIDB4NSApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggdmFsdWUgKSApICkgKSApOworICAgICAgICAgYXNzaWduKCBuZXdfc3JjLAorICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX09yNjQsCisgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX0FuZDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9Ob3Q2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoIG5vdF92YWxpZCApICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjICksCisgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX0FuZDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggbm90X3ZhbGlkICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9PcjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX0FuZDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKCBoYXNfcGVybSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX1NobDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggdmFsdWUgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U4KCA1MCApICkgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9BbmQ2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSRXhwcl9HZXQoIE9GRkJfUFBSLCB0eSApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcCggSW9wX05vdDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKCBoYXNfcGVybSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICkgKSApICkgKTsKKworICAgICAgICAgICAgICAgICAvKiBtYWtlIHN1cmUgd2Ugb25seSBzZXQgdGhlIHZhbGlkIGJpdCBmaWVsZCBbNTI6NTBdICovCisgICAgICAgICAgICAgICAgIHN0bXQoIElSU3RtdF9QdXQoIE9GRkJfUFBSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX0FuZDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKCBuZXdfc3JjICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U2NCggMHgxQzAwMDAwMDAwMDAwMCkgKSApICk7CisgICAgICBicmVhazsKKyAgICAgIH0KICAgIGRlZmF1bHQ6CiAgICAgICB2ZXhfcHJpbnRmKCJwdXRHU1QocHBjKTogcmVnID0gJXUiLCByZWcpOwogICAgICAgdnBhbmljKCJwdXRHU1QocHBjKSIpOwpAQCAtMzQyNSw3ICszNTMzLDcgQEAKICAgICAgICAgIERJUCgibGlzIHIldSwlZFxuIiwgckRfYWRkciwgKEludClzaW1tMTYpOwogICAgICAgICAgYXNzaWduKCByRCwgbWtTekV4dGVuZFMzMih0eSwgdWltbTE2IDw8IDE2KSApOwogICAgICAgfSBlbHNlIHsKLSAgICAgICAgIERJUCgiYWRkaXMgciV1LHIldSwweCV4XG4iLCByRF9hZGRyLCByQV9hZGRyLCAoSW50KXNpbW0xNik7CisgICAgICAgICBESVAoImFkZGlzIHIldSxyJXUsMHgleFxuIiwgckRfYWRkciwgckFfYWRkciwgKFVJbnQpc2ltbTE2KTsKICAgICAgICAgIGFzc2lnbiggckQsIGJpbm9wKCBta1N6T3AodHksIElvcF9BZGQ4KSwgbWtleHByKHJBKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1N6RXh0ZW5kUzMyKHR5LCB1aW1tMTYgPDwgMTYpICkgKTsKICAgICAgIH0KQEAgLTU3MjgsNyArNTgzNiw3IEBACiAKICAgIElSVHlwZSAgIHR5ICAgICAgICA9IG1vZGU2NCA/IEl0eV9JNjQgOiBJdHlfSTMyOwogICAgQWRkcjY0ICAgdGd0ICAgICAgID0gMDsKLSAgIEludCAgICAgIEJEICAgICAgICA9IGV4dGVuZF9zXzE2dG8zMihCRF91MTYpOworICAgVUludCAgICAgQkQgICAgICAgID0gZXh0ZW5kX3NfMTZ0bzMyKEJEX3UxNik7CiAgICBJUlRlbXAgICBkb19icmFuY2ggPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgSVJUZW1wICAgY3RyX29rICAgID0gbmV3VGVtcChJdHlfSTMyKTsKICAgIElSVGVtcCAgIGNvbmRfb2sgICA9IG5ld1RlbXAoSXR5X0kzMik7CkBAIC01ODI2LDcgKzU5MzQsNyBAQAogICAgICAgICAgYjExdG8xNSBhcmUgYSBicmFuY2ggaGludCwgYW5kIHNvIHdlIG9ubHkgbmVlZCB0byBlbnN1cmUgaXQncwogICAgICAgICAgb2YgdGhlIGZvcm0gMDAwWFguICovCiAgICAgICBpZiAoKGIxMXRvMTUgJiB+MykgIT0gMCkgewotICAgICAgICAgdmV4X3ByaW50ZigiZGlzX2ludF9icmFuY2gocHBjKSgweDEzLGIxMXRvMTUpKCVkKVxuIiwgKEludCliMTF0bzE1KTsKKyAgICAgICAgIHZleF9wcmludGYoImRpc19pbnRfYnJhbmNoKHBwYykoMHgxMyxiMTF0bzE1KSglZClcbiIsIGIxMXRvMTUpOwogICAgICAgICAgcmV0dXJuIEZhbHNlOwogICAgICAgfQogCkBAIC02MTI4LDkgKzYyMzYsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgbWtVMzIoIChVSW50KXNpbW0xNiApLAogICAgICAgICAgICAgICAgICAgICAgICAgY2lhICk7CiAgICAgICBpZiAoVE8gPT0gNCkgewotICAgICAgICAgRElQKCJ0d2VxaSByJXUsJWRcbiIsIChVSW50KXJBX2FkZHIsIChJbnQpc2ltbTE2KTsKKyAgICAgICAgIERJUCgidHdlcWkgciV1LCVkXG4iLCByQV9hZGRyLCAoSW50KXNpbW0xNik7CiAgICAgICB9IGVsc2UgewotICAgICAgICAgRElQKCJ0dyVkaSByJXUsJWRcbiIsIChJbnQpVE8sIChVSW50KXJBX2FkZHIsIChJbnQpc2ltbTE2KTsKKyAgICAgICAgIERJUCgidHclZGkgciV1LCVkXG4iLCBUTywgckFfYWRkciwgKEludClzaW1tMTYpOwogICAgICAgfQogICAgICAgYnJlYWs7CiAgICBjYXNlIDB4MDI6IC8vIHRkaQpAQCAtNjEzOCw5ICs2MjQ2LDkgQEAKICAgICAgICAgIHJldHVybiBGYWxzZTsKICAgICAgIHVuY29uZCA9IGRvX3RyYXAoIFRPLCBnZXRJUmVnKHJBX2FkZHIpLCBta1U2NCggKFVMb25nKXNpbW0xNiApLCBjaWEgKTsKICAgICAgIGlmIChUTyA9PSA0KSB7Ci0gICAgICAgICBESVAoInRkZXFpIHIldSwlZFxuIiwgKFVJbnQpckFfYWRkciwgKEludClzaW1tMTYpOworICAgICAgICAgRElQKCJ0ZGVxaSByJXUsJWRcbiIsIHJBX2FkZHIsIChJbnQpc2ltbTE2KTsKICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBESVAoInRkJWRpIHIldSwlZFxuIiwgKEludClUTywgKFVJbnQpckFfYWRkciwgKEludClzaW1tMTYpOworICAgICAgICAgRElQKCJ0ZCVkaSByJXUsJWRcbiIsIFRPLCByQV9hZGRyLCAoSW50KXNpbW0xNik7CiAgICAgICB9CiAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CkBAIC02MTgyLDkgKzYyOTAsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2V0SVJlZyhyQl9hZGRyKSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNpYSApOwogICAgICAgaWYgKFRPID09IDQpIHsKLSAgICAgICAgIERJUCgidHdlcSByJXUsciV1XG4iLCAoVUludClyQV9hZGRyLCAoVUludClyQl9hZGRyKTsKKyAgICAgICAgIERJUCgidHdlcSByJXUsciV1XG4iLCByQV9hZGRyLCByQl9hZGRyKTsKICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBESVAoInR3JWQgciV1LHIldVxuIiwgKEludClUTywgKFVJbnQpckFfYWRkciwgKFVJbnQpckJfYWRkcik7CisgICAgICAgICBESVAoInR3JWQgciV1LHIldVxuIiwgVE8sIHJBX2FkZHIsIHJCX2FkZHIpOwogICAgICAgfQogICAgICAgYnJlYWs7CiAgICBjYXNlIDB4MDQ0OiAvLyB0ZCAoVHJhcCBEb3VibGV3b3JkLCBQUEM2NCBwNTM0KQpAQCAtNjE5Miw5ICs2MzAwLDkgQEAKICAgICAgICAgIHJldHVybiBGYWxzZTsKICAgICAgIHVuY29uZCA9IGRvX3RyYXAoIFRPLCBnZXRJUmVnKHJBX2FkZHIpLCBnZXRJUmVnKHJCX2FkZHIpLCBjaWEgKTsKICAgICAgIGlmIChUTyA9PSA0KSB7Ci0gICAgICAgICBESVAoInRkZXEgciV1LHIldVxuIiwgKFVJbnQpckFfYWRkciwgKFVJbnQpckJfYWRkcik7CisgICAgICAgICBESVAoInRkZXEgciV1LHIldVxuIiwgckFfYWRkciwgckJfYWRkcik7CiAgICAgICB9IGVsc2UgewotICAgICAgICAgRElQKCJ0ZCVkIHIldSxyJXVcbiIsIChJbnQpVE8sIChVSW50KXJBX2FkZHIsIChVSW50KXJCX2FkZHIpOworICAgICAgICAgRElQKCJ0ZCVkIHIldSxyJXVcbiIsIFRPLCByQV9hZGRyLCByQl9hZGRyKTsKICAgICAgIH0KICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKQEAgLTYyNjEsNiArNjM2OSw3IEBACiAgICBVSW50ICBiMTF0bzI1ID0gSUZJRUxEKHRoZUluc3RyLCAxMSwgMTUpOwogICAgVUNoYXIgZmxhZ19MICA9IGlmaWVsZFJlZ0RTKHRoZUluc3RyKTsKICAgIFVJbnQgIGIxMXRvMjAgPSBJRklFTEQodGhlSW5zdHIsIDExLCAxMCk7CisgICBVSW50ICBNMCAgICAgID0gSUZJRUxEKHRoZUluc3RyLCAxMSwgNSk7CiAgICBVQ2hhciByRF9hZGRyID0gaWZpZWxkUmVnRFModGhlSW5zdHIpOwogICAgVUNoYXIgclNfYWRkciA9IHJEX2FkZHI7CiAgICBVQ2hhciByQV9hZGRyID0gaWZpZWxkUmVnQSh0aGVJbnN0cik7CkBAIC02MjkxLDEyICs2NDAwLDIwIEBACiAgICAvKiBYLUZvcm0gKi8KICAgIGNhc2UgMHgxRjoKICAgICAgIHN3aXRjaCAob3BjMikgewotICAgICAgY2FzZSAweDM1NjogLy8gZWllaW8gKEVuZm9yY2UgSW4tT3JkZXIgRXhlYyBvZiBJL08sIFBQQzMyIHAzOTQpCi0gICAgICAgICBpZiAoYjExdG8yNSAhPSAwIHx8IGIwICE9IDApIHsKLSAgICAgICAgICAgIHZleF9wcmludGYoImRpc19tZW1zeW5jKHBwYykoZWllaTAsYjExdG8yNXxiMClcbiIpOwotICAgICAgICAgICAgcmV0dXJuIEZhbHNlOworICAgICAgY2FzZSAweDM1NjogLy8gZWllaW8gb3IgbWJhciAoRW5mb3JjZSBJbi1PcmRlciBFeGVjIG9mIEkvTywgUFBDMzIgcDM5NCkKKyAgICAgICAgIGlmIChNMCA9PSAwKSB7CisgICAgICAgICAgICBpZiAoYjExdG8yMCAhPSAwIHx8IGIwICE9IDApIHsKKyAgICAgICAgICAgICAgIHZleF9wcmludGYoImRpc19tZW1zeW5jKHBwYykoZWllaW8sYjExdG8yMHxiMClcbiIpOworICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRElQKCJlaWVpb1xuIik7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGIxMXRvMjAgIT0gMCB8fCBiMCAhPSAwKSB7CisgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJkaXNfbWVtc3luYyhwcGMpKG1iYXIsYjExdG8yMHxiMClcbiIpOworICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRElQKCJtYmFyICVkXG4iLCBNMCk7CiAgICAgICAgICB9Ci0gICAgICAgICBESVAoImVpZWlvXG4iKTsKICAgICAgICAgIC8qIEluc2VydCBhIG1lbW9yeSBmZW5jZSwganVzdCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLiAqLwogICAgICAgICAgc3RtdCggSVJTdG10X01CRShJbWJlX0ZlbmNlKSApOwogICAgICAgICAgYnJlYWs7CkBAIC02MzA3LDcgKzY0MjQsNyBAQAogICAgICAgICAgICAgaW4gdGhlIGRvY3VtZW50YXRpb24pIGlzIG1lcmVseSBhIGhpbnQgYml0IHRvIHRoZQogICAgICAgICAgICAgaGFyZHdhcmUsIEkgdGhpbmsgYXMgdG8gd2hldGhlciBvciBub3QgY29udGVudGlvbiBpcwogICAgICAgICAgICAgbGlrZWx5LiAgU28gd2UgY2FuIGp1c3QgaWdub3JlIGl0LiAqLwotICAgICAgICAgRElQKCJsd2FyeCByJXUsciV1LHIldSxFSD0ldVxuIiwgckRfYWRkciwgckFfYWRkciwgckJfYWRkciwgKFVJbnQpYjApOworICAgICAgICAgRElQKCJsd2FyeCByJXUsciV1LHIldSxFSD0ldVxuIiwgckRfYWRkciwgckFfYWRkciwgckJfYWRkciwgYjApOwogCiAgICAgICAgICAvLyB0cmFwIGlmIG1pc2FsaWduZWQKICAgICAgICAgIGdlbl9TSUdCVVNfaWZfbWlzYWxpZ25lZCggRUEsIDQgKTsKQEAgLTYzMjYsNyArNjQ0Myw3IEBACiAgICAgICAgICAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbikgaXMgbWVyZWx5IGEgaGludCBiaXQgdG8gdGhlCiAgICAgICAgICAgICBoYXJkd2FyZSwgSSB0aGluayBhcyB0byB3aGV0aGVyIG9yIG5vdCBjb250ZW50aW9uIGlzCiAgICAgICAgICAgICBsaWtlbHkuICBTbyB3ZSBjYW4ganVzdCBpZ25vcmUgaXQuICovCi0gICAgICAgICBESVAoImxiYXJ4IHIldSxyJXUsciV1LEVIPSV1XG4iLCByRF9hZGRyLCByQV9hZGRyLCByQl9hZGRyLCAoVUludCliMCk7CisgICAgICAgICBESVAoImxiYXJ4IHIldSxyJXUsciV1LEVIPSV1XG4iLCByRF9hZGRyLCByQV9hZGRyLCByQl9hZGRyLCBiMCk7CiAKICAgICAgICAgIC8vIGFuZCBhY3R1YWxseSBkbyB0aGUgbG9hZAogICAgICAgICAgcmVzID0gbmV3VGVtcChJdHlfSTgpOwpAQCAtNjM0Miw3ICs2NDU5LDcgQEAKICAgICAgICAgICAgIGluIHRoZSBkb2N1bWVudGF0aW9uKSBpcyBtZXJlbHkgYSBoaW50IGJpdCB0byB0aGUKICAgICAgICAgICAgIGhhcmR3YXJlLCBJIHRoaW5rIGFzIHRvIHdoZXRoZXIgb3Igbm90IGNvbnRlbnRpb24gaXMKICAgICAgICAgICAgIGxpa2VseS4gIFNvIHdlIGNhbiBqdXN0IGlnbm9yZSBpdC4gKi8KLSAgICAgICAgIERJUCgibGhhcnggciV1LHIldSxyJXUsRUg9JXVcbiIsIHJEX2FkZHIsIHJBX2FkZHIsIHJCX2FkZHIsIChVSW50KWIwKTsKKyAgICAgICAgIERJUCgibGhhcnggciV1LHIldSxyJXUsRUg9JXVcbiIsIHJEX2FkZHIsIHJBX2FkZHIsIHJCX2FkZHIsIGIwKTsKIAogICAgICAgICAgLy8gdHJhcCBpZiBtaXNhbGlnbmVkCiAgICAgICAgICBnZW5fU0lHQlVTX2lmX21pc2FsaWduZWQoIEVBLCAyICk7CkBAIC02NTAwLDcgKzY2MTcsNyBAQAogICAgICAgICAgICAgbGlrZWx5LiAgU28gd2UgY2FuIGp1c3QgaWdub3JlIGl0LiAqLwogICAgICAgICAgaWYgKCFtb2RlNjQpCiAgICAgICAgICAgICByZXR1cm4gRmFsc2U7Ci0gICAgICAgICBESVAoImxkYXJ4IHIldSxyJXUsciV1LEVIPSV1XG4iLCByRF9hZGRyLCByQV9hZGRyLCByQl9hZGRyLCAoVUludCliMCk7CisgICAgICAgICBESVAoImxkYXJ4IHIldSxyJXUsciV1LEVIPSV1XG4iLCByRF9hZGRyLCByQV9hZGRyLCByQl9hZGRyLCBiMCk7CiAKICAgICAgICAgIC8vIHRyYXAgaWYgbWlzYWxpZ25lZAogICAgICAgICAgZ2VuX1NJR0JVU19pZl9taXNhbGlnbmVkKCBFQSwgOCApOwpAQCAtNjU1Niw3ICs2NjczLDcgQEAKICAgICAgICAgICAgIGluIHRoZSBkb2N1bWVudGF0aW9uKSBpcyBtZXJlbHkgYSBoaW50IGJpdCB0byB0aGUKICAgICAgICAgICAgIGhhcmR3YXJlLCBJIHRoaW5rIGFzIHRvIHdoZXRoZXIgb3Igbm90IGNvbnRlbnRpb24gaXMKICAgICAgICAgICAgIGxpa2VseS4gIFNvIHdlIGNhbiBqdXN0IGlnbm9yZSBpdC4gKi8KLSAgICAgICAgIERJUCgibHFhcnggciV1LHIldSxyJXUsRUg9JXVcbiIsIHJEX2FkZHIsIHJBX2FkZHIsIHJCX2FkZHIsIChVSW50KWIwKTsKKyAgICAgICAgIERJUCgibHFhcnggciV1LHIldSxyJXUsRUg9JXVcbiIsIHJEX2FkZHIsIHJBX2FkZHIsIHJCX2FkZHIsIGIwKTsKIAogICAgICAgICAgLy8gdHJhcCBpZiBtaXNhbGlnbmVkCiAgICAgICAgICBnZW5fU0lHQlVTX2lmX21pc2FsaWduZWQoIEVBLCAxNiApOwpAQCAtNzEzMSw2ICs3MjQ4LDE4IEBACiAgICAgICAgICBESVAoIm1mc3ByIHIldSAoVEVYQVNSVSlcbiIsIHJEX2FkZHIpOwogICAgICAgICAgcHV0SVJlZyggckRfYWRkciwgZ2V0R1NUKCBQUENfR1NUX1RFWEFTUlUpICk7CiAgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHg5RjogIC8vIDE1OQorICAgICAgICAgRElQKCJtZnNwciByJXUgKFBTUEIpXG4iLCByRF9hZGRyKTsKKyAgICAgICAgIHB1dElSZWcoIHJEX2FkZHIsIGdldEdTVCggUFBDX0dTVF9QU1BCKSApOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4MzgwOiAgLy8gODk2CisgICAgICAgICBESVAoIm1mc3ByIHIldSAoUFBSKVxuIiwgckRfYWRkcik7CisgICAgICAgICBwdXRJUmVnKCByRF9hZGRyLCBnZXRHU1QoIFBQQ19HU1RfUFBSKSApOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4MzgyOiAgLy8gODk4CisgICAgICAgICBESVAoIm1mc3ByIHIldSAoUFBSKTMyXG4iLCByRF9hZGRyKTsKKyAgICAgICAgIHB1dElSZWcoIHJEX2FkZHIsIGdldEdTVCggUFBDX0dTVF9QUFIzMikgKTsKKyAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDEwMDogCiAgICAgICAgICBESVAoIm1mdnJzYXZlIHIldVxuIiwgckRfYWRkcik7CiAgICAgICAgICBwdXRJUmVnKCByRF9hZGRyLCBta1dpZGVuRnJvbTMyKHR5LCBnZXRHU1QoIFBQQ19HU1RfVlJTQVZFICksCkBAIC03MTYxLDcgKzcyOTAsNyBAQAogICAgICAgICAgc3RtdCggSVJTdG10X0RpcnR5KGQpICk7CiAgICAgICAgICBwdXRJUmVnKCByRF9hZGRyLAogICAgICAgICAgICAgICAgICAgbWtXaWRlbkZyb20zMih0eSwgbWtleHByKHZhbCksIEZhbHNlLyp1bnNpZ25lZCovKSApOwotICAgICAgICAgRElQKCJtZnNwciByJXUsJXUiLCByRF9hZGRyLCAoVUludClTUFIpOworICAgICAgICAgRElQKCJtZnNwciByJXUsJXUiLCByRF9hZGRyLCBTUFIpOwogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAKQEAgLTcxODIsNyArNzMxMSw3IEBACiAgICAgICAgICBzdG10KCBJUlN0bXRfRGlydHkoZCkgKTsKICAgICAgICAgIHB1dElSZWcoIHJEX2FkZHIsCiAgICAgICAgICAgICAgICAgICBta1dpZGVuRnJvbTMyKHR5LCBta2V4cHIodmFsKSwgRmFsc2UvKnVuc2lnbmVkKi8pICk7Ci0gICAgICAgICBESVAoIm1mc3ByIHIldSwldSIsIHJEX2FkZHIsIChVSW50KVNQUik7CisgICAgICAgICBESVAoIm1mc3ByIHIldSwldSIsIHJEX2FkZHIsIFNQUik7CiAgICAgICAgICBicmVhazsKICAgICAgIH0KIApAQCAtNzI4Nyw2ICs3NDE2LDE4IEBACiAgICAgICAgICBESVAoIm10c3ByIHIldSAoVEVYQVNSKVxuIiwgclNfYWRkcik7CiAgICAgICAgICBwdXRHU1QoIFBQQ19HU1RfVEVYQVNSLCBta2V4cHIoclMpICk7CiAgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHg5RjogIC8vIDE1OQorICAgICAgICAgRElQKCJtdHNwciByJXUgKFBTUEIpXG4iLCByU19hZGRyKTsKKyAgICAgICAgIHB1dEdTVCggUFBDX0dTVF9QU1BCLCBta2V4cHIoclMpICk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgzODA6ICAvLyA4OTYKKyAgICAgICAgIERJUCgibXRzcHIgciV1IChQUFIpXG4iLCByU19hZGRyKTsKKyAgICAgICAgIHB1dEdTVCggUFBDX0dTVF9QUFIsIG1rZXhwcihyUykgKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweDM4MjogIC8vIDg5OAorICAgICAgICAgRElQKCJtdHNwciByJXUgKFBQUjMyKVxuIiwgclNfYWRkcik7CisgICAgICAgICBwdXRHU1QoIFBQQ19HU1RfUFBSMzIsIG1rZXhwcihyUykgKTsKKyAgICAgICAgIGJyZWFrOwogICAgICAgZGVmYXVsdDoKICAgICAgICAgIHZleF9wcmludGYoImRpc19wcm9jX2N0bChwcGMpKG10c3ByLFNQUikoJXUpXG4iLCBTUFIpOwogICAgICAgICAgcmV0dXJuIEZhbHNlOwpAQCAtNzI5OSw3ICs3NDQwLDcgQEAKICAgICAgIFVDaGFyIHJBX2FkZHIgPSBpZmllbGRSZWdBKHRoZUluc3RyKTsKICAgICAgIElSRXhwciAqIGhpZ2g2NDsKICAgICAgIElSVGVtcCB2UyA9IG5ld1RlbXAoIEl0eV9WMTI4ICk7Ci0gICAgICBESVAoIm1mdnNyZCByJXUsdnNyJWRcbiIsIHJBX2FkZHIsIChVSW50KVhTKTsKKyAgICAgIERJUCgibWZ2c3JkIHIldSx2c3IlZFxuIiwgckFfYWRkciwgWFMpOwogCiAgICAgICAvKiAgWFMgPSBTWCB8fCBTCiAgICAgICAgKiAgRm9yIFNYPTAsIG1mdnNyZCBpcyB0cmVhdGVkIGFzIGEgRmxvYXRpbmctUG9pbnQKQEAgLTczMjEsNyArNzQ2Miw3IEBACiAgICAgICBVQ2hhciByQV9hZGRyID0gaWZpZWxkUmVnQSh0aGVJbnN0cik7CiAgICAgICBJUkV4cHIgKiBoaWdoNjQ7CiAgICAgICBJUlRlbXAgdlMgPSBuZXdUZW1wKCBJdHlfVjEyOCApOwotICAgICAgRElQKCJtZnZzcnd6IHIldSx2c3IlZFxuIiwgckFfYWRkciwgKFVJbnQpWFMpOworICAgICAgRElQKCJtZnZzcnd6IHIldSx2c3IlZFxuIiwgckFfYWRkciwgWFMpOwogICAgICAgLyogIFhTID0gU1ggfHwgUwogICAgICAgICogIEZvciBTWD0wLCBtZnZzcnd6IGlzIHRyZWF0ZWQgYXMgYSBGbG9hdGluZy1Qb2ludAogICAgICAgICogICAgICAgICAgICBpbnN0cnVjdGlvbiBpbiB0ZXJtcyBvZiByZXNvdXJjZSBhdmFpbGFiaWxpdHkuCkBAIC03MzQ1LDcgKzc0ODYsNyBAQAogICAgICAgVUNoYXIgWFQgPSBpZmllbGRSZWdYVCggdGhlSW5zdHIgKTsKICAgICAgIFVDaGFyIHJBX2FkZHIgPSBpZmllbGRSZWdBKHRoZUluc3RyKTsKICAgICAgIElSVGVtcCByQSA9IG5ld1RlbXAodHkpOwotICAgICAgRElQKCJtdHZzcmQgdnNyJWQsciV1XG4iLCAoVUludClYVCwgckFfYWRkcik7CisgICAgICBESVAoIm10dnNyZCB2c3IlZCxyJXVcbiIsIFhULCByQV9hZGRyKTsKICAgICAgIC8qICBYUyA9IFNYIHx8IFMKICAgICAgICAqICBGb3IgU1g9MCwgbWZ2c3JkIGlzIHRyZWF0ZWQgYXMgYSBGbG9hdGluZy1Qb2ludAogICAgICAgICogICAgICAgICAgICBpbnN0cnVjdGlvbiBpbiB0ZXJtcyBvZiByZXNvdXJjZSBhdmFpbGFiaWxpdHkuCkBAIC03MzcxLDcgKzc1MTIsNyBAQAogICAgICAgVUNoYXIgWFQgPSBpZmllbGRSZWdYVCggdGhlSW5zdHIgKTsKICAgICAgIFVDaGFyIHJBX2FkZHIgPSBpZmllbGRSZWdBKHRoZUluc3RyKTsKICAgICAgIElSVGVtcCByQSA9IG5ld1RlbXAoIEl0eV9JMzIgKTsKLSAgICAgIERJUCgibXR2c3J3YSB2c3IlZCxyJXVcbiIsIChVSW50KVhULCByQV9hZGRyKTsKKyAgICAgIERJUCgibXR2c3J3YSB2c3IlZCxyJXVcbiIsIFhULCByQV9hZGRyKTsKICAgICAgIC8qICBYUyA9IFNYIHx8IFMKICAgICAgICAqICBGb3IgU1g9MCwgbXR2c3J3YSBpcyB0cmVhdGVkIGFzIGEgRmxvYXRpbmctUG9pbnQKICAgICAgICAqICAgICAgICAgICAgaW5zdHJ1Y3Rpb24gaW4gdGVybXMgb2YgcmVzb3VyY2UgYXZhaWxhYmlsaXR5LgpAQCAtNzM5NSw3ICs3NTM2LDcgQEAKICAgICAgICAgIFVDaGFyIFhUID0gaWZpZWxkUmVnWFQoIHRoZUluc3RyICk7CiAgICAgICAgICBVQ2hhciByQV9hZGRyID0gaWZpZWxkUmVnQSh0aGVJbnN0cik7CiAgICAgICAgICBJUlRlbXAgckEgPSBuZXdUZW1wKCBJdHlfSTMyICk7Ci0gICAgICAgICBESVAoIm10dnNyd3ogdnNyJWQsciV1XG4iLCByQV9hZGRyLCAoVUludClYVCk7CisgICAgICAgICBESVAoIm10dnNyd3ogdnNyJWQsciV1XG4iLCByQV9hZGRyLCBYVCk7CiAgICAgICAgICAvKiAgWFMgPSBTWCB8fCBTCiAgICAgICAgICAgKiAgRm9yIFNYPTAsIG10dnNyd3ogaXMgdHJlYXRlZCBhcyBhIEZsb2F0aW5nLVBvaW50CiAgICAgICAgICAgKiAgICAgICAgICAgIGluc3RydWN0aW9uIGluIHRlcm1zIG9mIHJlc291cmNlIGF2YWlsYWJpbGl0eS4KQEAgLTc0NjIsMTAgKzc2MDMsMTAgQEAKICAgICAgIH0KICAgIH0KIAotICAgaWYgKG9wYzEgIT0gMHgxRiB8fCBiMjF0bzI1ICE9IDAgfHwgYjAgIT0gMCkgewotICAgICAgaWYgKDApIHZleF9wcmludGYoImRpc19jYWNoZV9tYW5hZ2UgJWQgJWQgJWRcbiIsIAotICAgICAgICAgICAgICAgICAgICAgICAgKEludClvcGMxLCAoSW50KWIyMXRvMjUsIChJbnQpYjApOwotICAgICAgdmV4X3ByaW50ZigiZGlzX2NhY2hlX21hbmFnZShwcGMpKG9wYzF8YjIxdG8yNXxiMClcbiIpOworICAgaWYgKG9wYzEgIT0gMHgxRiB8fCBiMCAhPSAwKSB7CisgICAgICBpZiAoMCkgdmV4X3ByaW50ZigiZGlzX2NhY2hlX21hbmFnZSAlZCAlZFxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICBvcGMxLCBiMCk7CisgICAgICB2ZXhfcHJpbnRmKCJkaXNfY2FjaGVfbWFuYWdlKHBwYykob3BjMXxiMClcbiIpOwogICAgICAgcmV0dXJuIEZhbHNlOwogICAgfQogCkBAIC05NDAwLDcgKzk1NDEsNyBAQAogICAgICAgICAgdmV4X3ByaW50ZigiZGlzX2ZwX3NjcihwcGMpKGluc3RyLG10ZnNmaSlcbiIpOwogICAgICAgICAgcmV0dXJuIEZhbHNlOwogICAgICAgfSAgICAgIAotICAgICAgRElQKCJtdGZzZmklcyBjcmYlZCwlZFxuIiwgZmxhZ19yQyA/ICIuIjoiIiwgY3JmRCwgSU1NKTsKKyAgICAgIERJUCgibXRmc2ZpJXMgY3JmJXUsJWRcbiIsIGZsYWdfckMgPyAiLiI6IiIsIGNyZkQsIElNTSk7CiAgICAgICBpZiAoR1hfbGV2ZWwpIHsKICAgICAgICAgIC8qIFRoaXMgaW1wbGllcyB0aGF0IERlY2ltYWwgRmxvYXRpbmcgUG9pbnQgaXMgc3VwcG9ydGVkLCBhbmQgdGhlCiAgICAgICAgICAgKiBGUFNDUiBtdXN0IGJlIG1hbmFnZWQgYXMgYSA2NC1iaXQgcmVnaXN0ZXIuCkBAIC0xMTE3NSw3ICsxMTMxNiw3IEBACiAgICBhc3NpZ24oIGdmaWVsZF8wXzRfc2hpZnQsIG1rVTgoIDMxIC0gNSApICk7ICAvLyBHLWZpZWxkWzA6NF0KICAgIHN3aXRjaCAob3BjMSkgewogICAgY2FzZSAweDNiOiAvLyBkdHN0ZGMsIGR0c3RkZwotICAgICAgRElQKCJkdHN0ZCVzICV1LHIldSwlZFxuIiwgb3BjMiA9PSAweGMyID8gImMiIDogImciLAorICAgICAgRElQKCJkdHN0ZCVzICV1LHIldSwldVxuIiwgb3BjMiA9PSAweGMyID8gImMiIDogImciLAogICAgICAgICAgICAgICAgY3JmRCwgZnJBX2FkZHIsIERDTSk7CiAgICAgICAvKiBzZXR1cCB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGxvbmcgZm9ybWF0IG9mIHRoZSB0d28gaW5zdHJ1Y3Rpb25zICovCiAgICAgICBhc3NpZ24oIGZyQUk2NF9sbywgbWtVNjQoIDAgKSApOwpAQCAtMTEyMTEsNyArMTEzNTIsNyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgMHgzRjogICAvLyBkdHN0ZGNxLCBkdHN0ZGdxCi0gICAgICBESVAoImR0c3RkJXNxICV1LHIldSwlZFxuIiwgb3BjMiA9PSAweGMyID8gImMiIDogImciLAorICAgICAgRElQKCJkdHN0ZCVzcSAldSxyJXUsJXVcbiIsIG9wYzIgPT0gMHhjMiA/ICJjIiA6ICJnIiwKICAgICAgICAgICAgICAgIGNyZkQsIGZyQV9hZGRyLCBEQ00pOwogICAgICAgLyogc2V0dXAgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBleHRlbmRlZCBmb3JtYXQgb2YgdGhlCiAgICAgICAgKiB0d28gaW5zdHJ1Y3Rpb25zCkBAIC0xMjU5Myw3ICsxMjczNCw3IEBACiAgICAgICBjYXNlIDB4MkIwOgogICAgICAgICAgLy8geHNjdmRwc3hkcyAoVlNYIFNjYWxhciB0cnVuY2F0ZSBEb3VibGUtUHJlY2lzaW9uIHRvIGludGVnZXIgYW5kIENvbnZlcnQKICAgICAgICAgIC8vICAgICAgICAgICAgIHRvIFNpZ25lZCBJbnRlZ2VyIERvdWJsZXdvcmQgZm9ybWF0IHdpdGggU2F0dXJhdGUpCi0gICAgICAgICBESVAoInhzY3ZkcHN4ZHMgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzY3ZkcHN4ZHMgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsIGJpbm9wKCBJb3BfRjY0dG9JNjRTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTMyKCBJcnJtX1pFUk8gKSwKQEAgLTEyNjAxLDcgKzEyNzQyLDcgQEAKICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDBiMDogLy8geHNjdmRwc3h3cyAoVlNYIFNjYWxhciB0cnVuY2F0ZSBEb3VibGUtUHJlY2lzaW9uIHRvIGludGVnZXIgYW5kCiAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBDb252ZXJ0IHRvIFNpZ25lZCBJbnRlZ2VyIFdvcmQgZm9ybWF0IHdpdGggU2F0dXJhdGUpCi0gICAgICAgICBESVAoInhzY3ZkcHN4d3MgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzY3ZkcHN4d3MgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF8zMlN0bzY0LApAQCAtMTI2MTIsNyArMTI3NTMsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MjkwOiAvLyB4c2N2ZHB1eGRzIChWU1ggU2NhbGFyIHRydW5jYXRlIERvdWJsZS1QcmVjaXNpb24gaW50ZWdlciBhbmQgQ29udmVydAogICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgdG8gVW5zaWduZWQgSW50ZWdlciBEb3VibGV3b3JkIGZvcm1hdCB3aXRoIFNhdHVyYXRlKQotICAgICAgICAgRElQKCJ4c2N2ZHB1eGRzIHYldSx2JXVcbiIsICAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c2N2ZHB1eGRzIHYldSx2JXVcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX0Y2NHRvSTY0VSwKQEAgLTEyNjIzLDcgKzEyNzY0LDcgQEAKICAgICAgIGNhc2UgMHgyNzA6CiAgICAgICAgICAvLyB4c2N2c3hkc3AgKFZTWCBTY2FsYXIgQ29udmVydCBhbmQgcm91bmQgU2lnbmVkIEludGVnZXIgRG91Ymxld29yZAogICAgICAgICAgLy8gICAgICAgICAgICAgdG8gU2luZ2xlLVByZWNpc2lvbiBmb3JtYXQpCi0gICAgICAgICBESVAoInhzY3ZzeGRzcCB2JXUsdiV1XG4iLCAgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNjdnN4ZHNwIHYldSx2JXVcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKQEAgLTEyNjM3LDcgKzEyNzc4LDcgQEAKICAgICAgIGNhc2UgMHgyRjA6CiAgICAgICAgICAvLyB4c2N2c3hkZHAgKFZTWCBTY2FsYXIgQ29udmVydCBhbmQgcm91bmQgU2lnbmVkIEludGVnZXIgRG91Ymxld29yZCB0bwogICAgICAgICAgLy8gICAgICAgICAgICBEb3VibGUtUHJlY2lzaW9uIGZvcm1hdCkKLSAgICAgICAgIERJUCgieHNjdnN4ZGRwIHYldSx2JXVcbiIsICAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c2N2c3hkZHAgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9JNjRTdG9GNjQsIGdldF9JUl9yb3VuZGluZ21vZGUoKSwKQEAgLTEyNjQ3LDcgKzEyNzg4LDcgQEAKICAgICAgIGNhc2UgMHgyNTA6CiAgICAgICAgICAvLyB4c2N2dXhkc3AgKFZTWCBTY2FsYXIgQ29udmVydCBhbmQgcm91bmQgVW5zaWduZWQgSW50ZWdlcgogICAgICAgICAgLy8gICAgICAgICAgICBEb3VibGV3b3JkIHRvIFNpbmdlbC1QcmVjaXNpb24gZm9ybWF0KQotICAgICAgICAgRElQKCJ4c2N2dXhkc3AgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzY3Z1eGRzcCB2JXUsdiV1XG4iLCBYVCwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULAogICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcCggSW9wX1JlaW50ZXJwRjY0YXNJNjQsCkBAIC0xMjY2MSw3ICsxMjgwMiw3IEBACiAgICAgICBjYXNlIDB4MkQwOgogICAgICAgICAgLy8geHNjdnV4ZGRwIChWU1ggU2NhbGFyIENvbnZlcnQgYW5kIHJvdW5kIFVuc2lnbmVkIEludGVnZXIgRG91Ymxld29yZCB0bwogICAgICAgICAgLy8gICAgICAgICAgICBEb3VibGUtUHJlY2lzaW9uIGZvcm1hdCkKLSAgICAgICAgIERJUCgieHNjdnV4ZGRwIHYldSx2JXVcbiIsICAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c2N2dXhkZHAgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9JNjRVdG9GNjQsIGdldF9JUl9yb3VuZGluZ21vZGUoKSwKQEAgLTEyNjc1LDcgKzEyODE2LDcgQEAKICAgICAgICAgIElSVGVtcCBsb1Jlc3VsdF8zMiA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICAgICBJUkV4cHIqIHJtWmVybyA9IG1rVTMyKElycm1fWkVSTyk7CiAKLSAgICAgICAgIERJUCgieHZjdmRwc3h3cyB2JXUsdiV1XG4iLCAgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZjdmRwc3h3cyB2JXUsdiV1XG4iLCAgWFQsIFhCKTsKICAgICAgICAgIGFzc2lnbihoaVJlc3VsdF8zMiwgYmlub3AoSW9wX0Y2NHRvSTMyUywgcm1aZXJvLCBta2V4cHIoeEIpKSk7CiAgICAgICAgICBhc3NpZ24obG9SZXN1bHRfMzIsIGJpbm9wKElvcF9GNjR0b0kzMlMsIHJtWmVybywgbWtleHByKHhCMikpKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKQEAgLTEyNjk5LDcgKzEyODQwLDcgQEAKICAgICAgICAgIEJvb2wgdW5fc2lnbmVkID0gKG9wYzIgPT0gMHgxMTApOwogICAgICAgICAgSVJPcCBvcCA9IHVuX3NpZ25lZCA/IElvcF9RRnRvSTMyVXg0X1JaIDogSW9wX1FGdG9JMzJTeDRfUlo7CiAKLSAgICAgICAgIERJUCgieHZjdnNwJXN4d3MgdiV1LHYldVxuIiwgdW5fc2lnbmVkID8gInUiIDogInMiLCAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dmN2c3Alc3h3cyB2JXUsdiV1XG4iLCB1bl9zaWduZWQgPyAidSIgOiAicyIsIFhULCBYQik7CiAgICAgICAgICAvKiBUaGUgeHZjdnNwe3N8dX14d3MgaW5zdHJ1Y3Rpb24gaXMgc2ltaWxhciB0byB2Y3R7c3x1fXhzLCBleGNlcHQgaWYgc3JjIGlzIGEgTmFOLAogICAgICAgICAgICogdGhlbiByZXN1bHQgaXMgc2V0IHRvIDB4ODAwMDAwMDAuICAqLwogICAgICAgICAgYXNzaWduKHRlbXBSZXN1bHQsIHVub3Aob3AsIGdldFZTUmVnKFhCKSkpOwpAQCAtMTI3MzksNyArMTI4ODAsNyBAQAogICAgICAgfQogICAgICAgY2FzZSAweDIxMjogLy8geHNjdmRwc3AgKFZTWCBTY2FsYXIgcm91bmQgRG91YmxlLVByZWNpc2lvbiB0byBzaW5nbGUtcHJlY2lzaW9uIGFuZAogICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgIENvbnZlcnQgdG8gU2luZ2xlLVByZWNpc2lvbiBmb3JtYXQKLSAgICAgICAgIERJUCgieHNjdmRwc3AgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzY3ZkcHNwIHYldSx2JXVcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzMySEx0bzY0LApAQCAtMTI3NTMsNyArMTI4OTQsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MjE2OiAvKiB4c2N2ZHBzcG4gKFZTWCBTY2FsYXIgY29udmVydCBzY2FsYXIgU2luZ2xlLVByZWNpc2lvbiB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIFNpbmdsZS1QcmVjaXNpb24gbm9uLXNpZ25hbGxpbmcgKi8KLSAgICAgICAgIERJUCgieHNjdmRwc3BuIHYldSx2JXVcbiIsICAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c2N2ZHBzcG4gdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfMzJITHRvNjQsCkBAIC0xMjc2NSw3ICsxMjkwNiw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgwOTA6IC8vIHhzY3ZkcHV4d3MgKFZTWCBTY2FsYXIgdHJ1bmNhdGUgRG91YmxlLVByZWNpc2lvbiB0byBpbnRlZ2VyCiAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBhbmQgQ29udmVydCB0byBVbnNpZ25lZCBJbnRlZ2VyIFdvcmQgZm9ybWF0IHdpdGggU2F0dXJhdGUpCi0gICAgICAgICBESVAoInhzY3ZkcHV4d3MgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzY3ZkcHV4d3MgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfMzJITHRvNjQsCkBAIC0xMjc3Niw3ICsxMjkxNyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KCAwVUxMICkgKSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MjkyOiAvLyB4c2N2c3BkcCAoVlNYIFNjYWxhciBDb252ZXJ0IFNpbmdsZS1QcmVjaXNpb24gdG8gRG91YmxlLVByZWNpc2lvbiBmb3JtYXQsIHNpZ25hbGluZykKLSAgICAgICAgIERJUCgieHNjdnNwZHAgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzY3ZzcGRwIHYldSx2JXVcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKQEAgLTEyNzg1LDcgKzEyOTI2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQoIDBVTEwgKSApICk7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgyOTY6IC8vIHhzY3ZzcGRwbiAoVlNYIFNjYWxhciBDb252ZXJ0IFNpbmdsZS1QcmVjaXNpb24gdG8gRG91YmxlLVByZWNpc2lvbiBmb3JtYXQgTm9uIHNpZ25hbGluZykKLSAgICAgICAgIERJUCgieHNjdnNwZHBuIHYldSx2JXVcbiIsICAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c2N2c3BkcG4gdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LApAQCAtMTI3OTUsNyArMTI5MzYsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MzEyOiAvLyB4dmN2ZHBzcCAoVlNYIFZlY3RvciByb3VuZCBEb3VibGUtUHJlY2lzaW9uIHRvIHNpbmdsZS1wcmVjaXNpb24KICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICBhbmQgQ29udmVydCB0byBTaW5nbGUtUHJlY2lzaW9uIGZvcm1hdCkKLSAgICAgICAgIERJUCgieHZjdmRwc3AgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2Y3ZkcHNwIHYldSx2JXVcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzMySEx0bzY0LApAQCAtMTI4MTYsNyArMTI5NTcsNyBAQAogICAgICAgY2FzZSAweDM5MDogLy8geHZjdmRwdXhkcyAoVlNYIFZlY3RvciB0cnVuY2F0ZSBEb3VibGUtUHJlY2lzaW9uIHRvIGludGVnZXIKICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGFuZCBDb252ZXJ0IHRvIFVuc2lnbmVkIEludGVnZXIgRG91Ymxld29yZCBmb3JtYXQKICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIHdpdGggU2F0dXJhdGUpCi0gICAgICAgICBESVAoInh2Y3ZkcHV4ZHMgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2Y3ZkcHV4ZHMgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfRjY0dG9JNjRVLCBta1UzMiggSXJybV9aRVJPICksIG1rZXhwciggeEIgKSApLApAQCAtMTI4MjQsNyArMTI5NjUsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MTkwOiAvLyB4dmN2ZHB1eHdzIChWU1ggVmVjdG9yIHRydW5jYXRlIERvdWJsZS1QcmVjaXNpb24gdG8gaW50ZWdlciBhbmQKICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIENvbnZlcnQgdG8gVW5zaWduZWQgSW50ZWdlciBXb3JkIGZvcm1hdCB3aXRoIFNhdHVyYXRlKQotICAgICAgICAgRElQKCJ4dmN2ZHB1eHdzIHYldSx2JXVcbiIsICAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dmN2ZHB1eHdzIHYldSx2JXVcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzMySEx0bzY0LApAQCAtMTI4MzksNyArMTI5ODAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVMzIoIDAgKSApICkgKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDM5MjogLy8geHZjdnNwZHAgKFZTWCBWZWN0b3IgQ29udmVydCBTaW5nbGUtUHJlY2lzaW9uIHRvIERvdWJsZS1QcmVjaXNpb24gZm9ybWF0KQotICAgICAgICAgRElQKCJ4dmN2c3BkcCB2JXUsdiV1XG4iLCAgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZjdnNwZHAgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LApAQCAtMTI4NTMsNyArMTI5OTQsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MzMwOiAvLyB4dmN2c3BzeGRzIChWU1ggVmVjdG9yIHRydW5jYXRlIFNpbmdsZS1QcmVjaXNpb24gdG8gaW50ZWdlciBhbmQKICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICBDb252ZXJ0IHRvIFNpZ25lZCBJbnRlZ2VyIERvdWJsZXdvcmQgZm9ybWF0IHdpdGggU2F0dXJhdGUpCi0gICAgICAgICBESVAoInh2Y3ZzcHN4ZHMgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2Y3ZzcHN4ZHMgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfRjY0dG9JNjRTLApAQCAtMTI4NjcsNyArMTMwMDgsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MzEwOiAvLyB4dmN2c3B1eGRzIChWU1ggVmVjdG9yIHRydW5jYXRlIFNpbmdsZS1QcmVjaXNpb24gdG8gaW50ZWdlciBhbmQKICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgQ29udmVydCB0byBVbnNpZ25lZCBJbnRlZ2VyIERvdWJsZXdvcmQgZm9ybWF0IHdpdGggU2F0dXJhdGUpCi0gICAgICAgICBESVAoInh2Y3ZzcHV4ZHMgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2Y3ZzcHV4ZHMgdiV1LHYldVxuIiwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfRjY0dG9JNjRVLApAQCAtMTI4ODEsNyArMTMwMjIsNyBAQAogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4M0IwOiAvLyB4dmN2ZHBzeGRzIChWU1ggVmVjdG9yIHRydW5jYXRlIERvdWJsZS1QcmVjaXNpb24gdG8gaW50ZWdlciBhbmQKICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIENvbnZlcnQgdG8gU2lnbmVkIEludGVnZXIgRG91Ymxld29yZCBmb3JtYXQgd2l0aCBTYXR1cmF0ZSkKLSAgICAgICAgIERJUCgieHZjdmRwc3hkcyB2JXUsdiV1XG4iLCAgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZjdmRwc3hkcyB2JXUsdiV1XG4iLCBYVCwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULAogICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9GNjR0b0k2NFMsIG1rVTMyKCBJcnJtX1pFUk8gKSwgbWtleHByKCB4QiApICksCkBAIC0xMjg4OSw3ICsxMzAzMCw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgzZjA6IC8vIHh2Y3ZzeGRkcCAoVlNYIFZlY3RvciBDb252ZXJ0IGFuZCByb3VuZCBTaWduZWQgSW50ZWdlciBEb3VibGV3b3JkCiAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgIHRvIERvdWJsZS1QcmVjaXNpb24gZm9ybWF0KQotICAgICAgICAgRElQKCJ4dmN2c3hkZHAgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2Y3ZzeGRkcCB2JXUsdiV1XG4iLCBYVCwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULAogICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcCggSW9wX1JlaW50ZXJwRjY0YXNJNjQsCkBAIC0xMjkwMyw3ICsxMzA0NCw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgzZDA6IC8vIHh2Y3Z1eGRkcCAoVlNYIFZlY3RvciBDb252ZXJ0IGFuZCByb3VuZCBVbnNpZ25lZCBJbnRlZ2VyIERvdWJsZXdvcmQKICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgdG8gRG91YmxlLVByZWNpc2lvbiBmb3JtYXQpCi0gICAgICAgICBESVAoInh2Y3Z1eGRkcCB2JXUsdiV1XG4iLCAgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZjdnV4ZGRwIHYldSx2JXVcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKQEAgLTEyOTE4LDcgKzEzMDU5LDcgQEAKICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDM3MDogLy8geHZjdnN4ZHNwIChWU1ggVmVjdG9yIENvbnZlcnQgYW5kIHJvdW5kIFNpZ25lZCBJbnRlZ2VyIERvdWJsZXdvcmQKICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgdG8gU2luZ2xlLVByZWNpc2lvbiBmb3JtYXQpCi0gICAgICAgICBESVAoInh2Y3ZzeGRkcCB2JXUsdiV1XG4iLCAgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZjdnN4ZGRwIHYldSx2JXVcbiIsICBYVCwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULAogICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF8zMkhMdG82NCwKQEAgLTEyOTQyLDcgKzEzMDgzLDcgQEAKICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDM1MDogLy8geHZjdnV4ZHNwIChWU1ggVmVjdG9yIENvbnZlcnQgYW5kIHJvdW5kIFVuc2lnbmVkIEludGVnZXIgRG91Ymxld29yZAogICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICB0byBTaW5nbGUtUHJlY2lzaW9uIGZvcm1hdCkKLSAgICAgICAgIERJUCgieHZjdnV4ZGRwIHYldSx2JXVcbiIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2Y3Z1eGRkcCB2JXUsdiV1XG4iLCBYVCwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULAogICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF8zMkhMdG82NCwKQEAgLTEyOTY2LDcgKzEzMTA3LDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MWYwOiAvLyB4dmN2c3h3ZHAgKFZTWCBWZWN0b3IgQ29udmVydCBTaWduZWQgSW50ZWdlciBXb3JkIHRvIERvdWJsZS1QcmVjaXNpb24gZm9ybWF0KQotICAgICAgICAgRElQKCJ4dmN2c3h3ZHAgdiV1LHYldVxuIiwgIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2Y3ZzeHdkcCB2JXUsdiV1XG4iLCAgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LApAQCAtMTI5NzcsNyArMTMxMTgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcCggSW9wXzMyU3RvNjQsIG1rZXhwciggYjEgKSApICkgKSApICk7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgxZDA6IC8vIHh2Y3Z1eHdkcCAoVlNYIFZlY3RvciBDb252ZXJ0IFVuc2lnbmVkIEludGVnZXIgV29yZCB0byBEb3VibGUtUHJlY2lzaW9uIGZvcm1hdCkKLSAgICAgICAgIERJUCgieHZjdnV4d2RwIHYldSx2JXVcbiIsICAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dmN2dXh3ZHAgdiV1LHYldVxuIiwgIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKQEAgLTEyOTg4LDExICsxMzEyOSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcCggSW9wXzMyVXRvNjQsIG1rZXhwciggYjEgKSApICkgKSApICk7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgxNzA6IC8vIHh2Y3ZzeHdzcCAoVlNYIFZlY3RvciBDb252ZXJ0IFNpZ25lZCBJbnRlZ2VyIFdvcmQgdG8gU2luZ2xlLVByZWNpc2lvbiBmb3JtYXQpCi0gICAgICAgICBESVAoInh2Y3ZzeHdzcCB2JXUsdiV1XG4iLCAgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZjdnN4d3NwIHYldSx2JXVcbiIsICBYVCwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULCB1bm9wKCBJb3BfSTMyU3RvRng0LCBnZXRWU1JlZyggWEIgKSApICk7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgxNTA6IC8vIHh2Y3Z1eHdzcCAoVlNYIFZlY3RvciBDb252ZXJ0IFVuc2lnbmVkIEludGVnZXIgV29yZCB0byBTaW5nbGUtUHJlY2lzaW9uIGZvcm1hdCkKLSAgICAgICAgIERJUCgieHZjdnV4d3NwIHYldSx2JXVcbiIsICAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dmN2dXh3c3AgdiV1LHYldVxuIiwgIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIHVub3AoIElvcF9JMzJVdG9GeDQsIGdldFZTUmVnKCBYQiApICkgKTsKICAgICAgICAgIGJyZWFrOwogCkBAIC0xMzA2MSw3ICsxMzIwMiw3IEBACiAgICAgICAgICB9CiAgICAgICAgICBJUlRlbXAgaGlSZXN1bHQgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgSVJUZW1wIGxvUmVzdWx0ID0gbmV3VGVtcChJdHlfSTY0KTsKLSAgICAgICAgIERJUCgieHYlc2RwIHYlZCx2JWQsdiVkXG4iLCBvcGVyX25hbWUsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4diVzZHAgdiVkLHYlZCx2JWRcbiIsIG9wZXJfbmFtZSwgWFQsIFhBLCBYQik7CiAKICAgICAgICAgIGFzc2lnbiggaGlSZXN1bHQsCiAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LApAQCAtMTMwNzcsNyArMTMyMTgsNyBAQAogICAgICAgewogICAgICAgICAgSVJUZW1wIGhpUmVzdWx0ID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgIElSVGVtcCBsb1Jlc3VsdCA9IG5ld1RlbXAoSXR5X0k2NCk7Ci0gICAgICAgICBESVAoInh2c3FydGRwIHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2c3FydGRwIHYlZCx2JWRcbiIsIFhULCBYQik7CiAKICAgICAgICAgIGFzc2lnbiggaGlSZXN1bHQsCiAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LApAQCAtMTMxNDEsNyArMTMyODIsNyBAQAogICAgICAgICAgSVJUZW1wIGZyVCA9IG5ld1RlbXAoSXR5X0Y2NCk7CiAgICAgICAgICBJUlRlbXAgZnJUMiA9IG5ld1RlbXAoSXR5X0Y2NCk7CiAgICAgICAgICBESVAoInh2JXNtJXMlcyB2JWQsdiVkLHYlZFxuIiwgbmVnYXRlID8gIm4iIDogIiIsIG9wZXJfbmFtZSwgbWRwID8gIm1kcCIgOiAiYWRwIiwKLSAgICAgICAgICAgICAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgICAgICBYVCwgWEEsIFhCKTsKICAgICAgICAgIGFzc2lnbihmclQsICB1bm9wKElvcF9SZWludGVycEk2NGFzRjY0LCB1bm9wKElvcF9WMTI4SEl0bzY0LCBnZXRWU1JlZyggWFQgKSApICkgKTsKICAgICAgICAgIGFzc2lnbihmclQyLCB1bm9wKElvcF9SZWludGVycEk2NGFzRjY0LCB1bm9wKElvcF9WMTI4dG82NCwgZ2V0VlNSZWcoIFhUICkgKSApICk7CiAKQEAgLTEzMTc3LDcgKzEzMzE4LDcgQEAKICAgICAgICAgIElSVGVtcCAgZmVfZmxhZ0hpLCBmZ19mbGFnSGksIGZlX2ZsYWdMbywgZmdfZmxhZ0xvOwogICAgICAgICAgZmVfZmxhZ0hpID0gZmdfZmxhZ0hpID0gZmVfZmxhZ0xvID0gZmdfZmxhZ0xvID0gSVJUZW1wX0lOVkFMSUQ7CiAKLSAgICAgICAgIERJUCgieHZ0c3FydGRwIGNyJWQsdiVkXG4iLCAoVUludCljcmZELCAoVUludClYQik7CisgICAgICAgICBESVAoInh2dHNxcnRkcCBjciVkLHYlZFxuIiwgY3JmRCwgWEIpOwogICAgICAgICAgYXNzaWduKCBmckJIaV9JNjQsIHVub3AoSW9wX1YxMjhISXRvNjQsIGdldFZTUmVnKCBYQiApKSApOwogICAgICAgICAgYXNzaWduKCBmckJMb19JNjQsIHVub3AoSW9wX1YxMjh0bzY0LCBnZXRWU1JlZyggWEIgKSkgKTsKICAgICAgICAgIGRvX2ZwX3RzcXJ0KGZyQkhpX0k2NCwgRmFsc2UgLypub3Qgc2luZ2xlIHByZWNpc2lvbiovLCAmZmVfZmxhZ0hpLCAmZmdfZmxhZ0hpKTsKQEAgLTEzMjEyLDcgKzEzMzUzLDcgQEAKICAgICAgICAgIElSVGVtcCAgZmVfZmxhZ0hpLCBmZ19mbGFnSGksIGZlX2ZsYWdMbywgZmdfZmxhZ0xvOwogICAgICAgICAgZmVfZmxhZ0hpID0gZmdfZmxhZ0hpID0gZmVfZmxhZ0xvID0gZmdfZmxhZ0xvID0gSVJUZW1wX0lOVkFMSUQ7CiAKLSAgICAgICAgIERJUCgieHZ0ZGl2ZHAgY3IlZCx2JWQsdiVkXG4iLCAoVUludCljcmZELCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dnRkaXZkcCBjciVkLHYlZCx2JWRcbiIsIGNyZkQsIFhBLCBYQik7CiAgICAgICAgICBhc3NpZ24oIGZyQUhpX0k2NCwgdW5vcChJb3BfVjEyOEhJdG82NCwgZ2V0VlNSZWcoIFhBICkpICk7CiAgICAgICAgICBhc3NpZ24oIGZyQUxvX0k2NCwgdW5vcChJb3BfVjEyOHRvNjQsIGdldFZTUmVnKCBYQSApKSApOwogICAgICAgICAgYXNzaWduKCBmckJIaV9JNjQsIHVub3AoSW9wX1YxMjhISXRvNjQsIGdldFZTUmVnKCBYQiApKSApOwpAQCAtMTMyNzUsMjEgKzEzNDE2LDIxIEBACiAKICAgIHN3aXRjaCAob3BjMikgewogICAgICAgY2FzZSAweDEwMDogLy8geHZhZGRzcCAoVlNYIFZlY3RvciBBZGQgU2luZ2xlLVByZWNpc2lvbikKLSAgICAgICAgIERJUCgieHZhZGRzcCB2JWQsdiVkLHYlZFxuIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInh2YWRkc3AgdiVkLHYlZCx2JWRcbiIsIFhULCBYQSwgWEIpOwogICAgICAgICAgLy8gV0FSTklORzogQk9HVVMhIFRoZSBiYWNrZW5kIGlnbm9yZXMgcm0gb24gSW9wX0FkZDMyRng0CiAgICAgICAgICBwdXRWU1JlZyggWFQsIHRyaW9wKElvcF9BZGQzMkZ4NCwgcm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFZTUmVnKCBYQSApLCBnZXRWU1JlZyggWEIgKSkgKTsKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MTQwOiAvLyB4dm11bHNwIChWU1ggVmVjdG9yIE11bHRpcGx5IFNpbmdsZS1QcmVjaXNpb24pCi0gICAgICAgICBESVAoInh2bXVsc3AgdiVkLHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dm11bHNwIHYlZCx2JWQsdiVkXG4iLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIC8vIFdBUk5JTkc6IEJPR1VTISBUaGUgYmFja2VuZCBpZ25vcmVzIHJtIG9uIElvcF9NdWwzMkZ4NAogICAgICAgICAgcHV0VlNSZWcoIFhULCB0cmlvcChJb3BfTXVsMzJGeDQsIHJtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRWU1JlZyggWEEgKSwgZ2V0VlNSZWcoIFhCICkpICk7CiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSAweDEyMDogLy8geHZzdWJzcCAoVlNYIFZlY3RvciBTdWJ0cmFjdCBTaW5nbGUtUHJlY2lzaW9uKQotICAgICAgICAgRElQKCJ4dnN1YnNwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZzdWJzcCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICAvLyBXQVJOSU5HOiBCT0dVUyEgVGhlIGJhY2tlbmQgaWdub3JlcyBybSBvbiBJb3BfU3ViMzJGeDQKICAgICAgICAgIHB1dFZTUmVnKCBYVCwgdHJpb3AoSW9wX1N1YjMyRng0LCBybSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VlNSZWcoIFhBICksIGdldFZTUmVnKCBYQiApKSApOwpAQCAtMTMzMDUsNyArMTM0NDYsNyBAQAogICAgICAgICAgICogSSB3aWxsIGRvIHRoZSBsYXR0ZXIsIGR1ZSB0byB0aGUgZ2VuZXJhbCBwaGlsb3NvcGh5IG9mCiAgICAgICAgICAgKiByZXVzaW5nIGV4aXN0aW5nIGltcGxlbWVudGF0aW9ucyB3aGVuIHByYWN0aWNhbC4KICAgICAgICAgICAqLwotICAgICAgICAgRElQKCJ4dmRpdnNwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZkaXZzcCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBicmVha1YxMjh0bzR4RjY0KCBnZXRWU1JlZyggWEEgKSwgJmEzLCAmYTIsICZhMSwgJmEwICk7CiAgICAgICAgICBicmVha1YxMjh0bzR4RjY0KCBnZXRWU1JlZyggWEIgKSwgJmIzLCAmYjIsICZiMSwgJmIwICk7CiAKQEAgLTEzMzM0LDcgKzEzNDc1LDcgQEAKICAgICAgIH0KICAgICAgIGNhc2UgMHgxMTY6IC8vIHh2c3FydHNwIChWU1ggVmVjdG9yIFNxdWFyZSBSb290IFNpbmdsZS1QcmVjaXNpb24pCiAgICAgICB7Ci0gICAgICAgICBESVAoInh2c3FydHNwIHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInh2c3FydHNwIHYlZCx2JWRcbiIsIFhULCBYQik7CiAgICAgICAgICBicmVha1YxMjh0bzR4RjY0KCBnZXRWU1JlZyggWEIgKSwgJmIzLCAmYjIsICZiMSwgJmIwICk7CiAgICAgICAgICAvKiBOb3RlOiBUaGUgbmF0aXZlIHh2c3FydHNwIGluc3J1Y3Rpb24gZG9lcyBub3QgYWx3YXlzIGdpdmUgdGhlIHNhbWUgcHJlY2lzaW9uCiAgICAgICAgICAgKiBhcyB3aGF0IHdlIGdldCB3aXRoIElvcF9TcXJ0RjY0LiAgQnV0IGl0IGRvZXNuJ3Qgc2VlbSB3b3J0aHdoaWxlIHRvIGltcGxlbWVudApAQCAtMTM0MDUsOCArMTM1NDYsOCBAQAogICAgICAgICAgICAgICAgbmVnYXRlID0gRmFsc2U7CiAgICAgICAgICB9CiAKLSAgICAgICAgIERJUCgieHYlc20lcyVzIHYlZCx2JWQsdiVkXG4iLCBuZWdhdGUgPyAibiIgOiAiIiwgb3Blcl9uYW1lLCBtc3AgPyAibXNwIiA6ICJhc3AiLAotICAgICAgICAgICAgIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4diVzbSVzJXMgdiVkLHYlZCx2JWRcbiIsIG5lZ2F0ZSA/ICJuIiA6ICIiLCBvcGVyX25hbWUsCisgICAgICAgICAgICAgbXNwID8gIm1zcCIgOiAiYXNwIiwgWFQsIFhBLCBYQik7CiAKICAgICAgICAgIHQzID0gdDIgPSB0MSA9IHQwID0gSVJUZW1wX0lOVkFMSUQ7CiAgICAgICAgICBicmVha1YxMjh0bzR4RjY0KCBnZXRWU1JlZyggWEEgKSwgJmEzLCAmYTIsICZhMSwgJmEwICk7CkBAIC0xMzQ2Niw3ICsxMzYwNyw3IEBACiAgICAgICAgICBJUlRlbXAgIGZlX2ZsYWcyLCBmZ19mbGFnMiwgZmVfZmxhZzMsIGZnX2ZsYWczOwogICAgICAgICAgZmVfZmxhZzAgPSBmZ19mbGFnMCA9IGZlX2ZsYWcxID0gZmdfZmxhZzEgPSBJUlRlbXBfSU5WQUxJRDsKICAgICAgICAgIGZlX2ZsYWcyID0gZmdfZmxhZzIgPSBmZV9mbGFnMyA9IGZnX2ZsYWczID0gSVJUZW1wX0lOVkFMSUQ7Ci0gICAgICAgICBESVAoInh2dHNxcnRzcCBjciVkLHYlZFxuIiwgKFVJbnQpY3JmRCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dnRzcXJ0c3AgY3IlZCx2JWRcbiIsIGNyZkQsIFhCKTsKIAogICAgICAgICAgYnJlYWtWMTI4dG80eDMyKCBnZXRWU1JlZyggWEIgKSwgJmIzLCAmYjIsICZiMSwgJmIwICk7CiAgICAgICAgICBkb19mcF90c3FydChiMCwgVHJ1ZSAvKiBzaW5nbGUgcHJlY2lzaW9uKi8sICZmZV9mbGFnMCwgJmZnX2ZsYWcwKTsKQEAgLTEzNTIwLDcgKzEzNjYxLDcgQEAKICAgICAgICAgIElSVGVtcCAgZmVfZmxhZzIsIGZnX2ZsYWcyLCBmZV9mbGFnMywgZmdfZmxhZzM7CiAgICAgICAgICBmZV9mbGFnMCA9IGZnX2ZsYWcwID0gZmVfZmxhZzEgPSBmZ19mbGFnMSA9IElSVGVtcF9JTlZBTElEOwogICAgICAgICAgZmVfZmxhZzIgPSBmZ19mbGFnMiA9IGZlX2ZsYWczID0gZmdfZmxhZzMgPSBJUlRlbXBfSU5WQUxJRDsKLSAgICAgICAgIERJUCgieHZ0ZGl2c3AgY3IlZCx2JWQsdiVkXG4iLCAoVUludCljcmZELCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dnRkaXZzcCBjciVkLHYlZCx2JWRcbiIsIGNyZkQsIFhBLCBYQik7CiAKICAgICAgICAgIGJyZWFrVjEyOHRvNHgzMiggZ2V0VlNSZWcoIFhBICksICZhMywgJmEyLCAmYTEsICZhMCApOwogICAgICAgICAgYnJlYWtWMTI4dG80eDMyKCBnZXRWU1JlZyggWEIgKSwgJmIzLCAmYjIsICZiMSwgJmIwICk7CkBAIC0xNDA2Nyw3ICsxNDIwOCw3IEBACiAgICAgICAgICBhc3NpZ24oZnJCLCAgdW5vcChJb3BfVjEyOEhJdG82NCwgZ2V0VlNSZWcoIFhCICkpKTsKICAgICAgICAgIGFzc2lnbihmckIyLCB1bm9wKElvcF9WMTI4dG82NCwgZ2V0VlNSZWcoIFhCICkpKTsKIAotICAgICAgICAgRElQKCIlcyB2JWQsdiVkXG4iLCByZWRwID8gInh2cmVkcCIgOiAieHZyc3FydGVkcCIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoIiVzIHYlZCx2JWRcbiIsIHJlZHAgPyAieHZyZWRwIiA6ICJ4dnJzcXJ0ZWRwIiwgWFQsIFhCKTsKICAgICAgICAgIGlmICghcmVkcCkgewogICAgICAgICAgICAgYXNzaWduKCBzcXJ0SGksCiAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfU3FydEY2NCwKQEAgLTE0MTE1LDcgKzE0MjU2LDcgQEAKICAgICAgICAgIElSRXhwciogaWVlZV9vbmUgPSBJUkV4cHJfQ29uc3QoSVJDb25zdF9GNjRpKDB4M2ZmMDAwMDAwMDAwMDAwMFVMTCkpOwogCiAgICAgICAgICBiMyA9IGIyID0gYjEgPSBiMCA9IElSVGVtcF9JTlZBTElEOwotICAgICAgICAgRElQKCIlcyB2JWQsdiVkXG4iLCByZXNwID8gInh2cmVzcCIgOiAieHZyc3FydGVzcCIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoIiVzIHYlZCx2JWRcbiIsIHJlc3AgPyAieHZyZXNwIiA6ICJ4dnJzcXJ0ZXNwIiwgWFQsIFhCKTsKICAgICAgICAgIGJyZWFrVjEyOHRvNHhGNjQoIGdldFZTUmVnKCBYQiApLCAmYjMsICZiMiwgJmIxLCAmYjAgKTsKIAogICAgICAgICAgaWYgKCFyZXNwKSB7CkBAIC0xNDE4Miw3ICsxNDMyMyw3IEBACiAKICAgICAgICAgIGEzID0gYTIgPSBhMSA9IGEwID0gSVJUZW1wX0lOVkFMSUQ7CiAgICAgICAgICBiMyA9IGIyID0gYjEgPSBiMCA9IElSVGVtcF9JTlZBTElEOwotICAgICAgICAgRElQKCIlcyB2JWQsdiVkIHYlZFxuIiwgaXNNaW4gPyAieHZtaW5zcCIgOiAieHZtYXhzcCIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCIlcyB2JWQsdiVkIHYlZFxuIiwgaXNNaW4gPyAieHZtaW5zcCIgOiAieHZtYXhzcCIsIFhULCBYQSwgWEIpOwogICAgICAgICAgYnJlYWtWMTI4dG80eEY2NCggZ2V0VlNSZWcoIFhBICksICZhMywgJmEyLCAmYTEsICZhMCApOwogICAgICAgICAgYnJlYWtWMTI4dG80eEY2NCggZ2V0VlNSZWcoIFhCICksICZiMywgJmIyLCAmYjEsICZiMCApOwogICAgICAgICAgYXNzaWduKCBhMF9JNjQsIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LCBta2V4cHIoIGEwICkgKSApOwpAQCAtMTQyMzMsNyArMTQzNzQsNyBAQAogICAgICAgICAgYXNzaWduKGZyQiwgIHVub3AoSW9wX1YxMjhISXRvNjQsIGdldFZTUmVnKCBYQiApKSk7CiAgICAgICAgICBhc3NpZ24oZnJBMiwgdW5vcChJb3BfVjEyOHRvNjQsIGdldFZTUmVnKCBYQSApKSk7CiAgICAgICAgICBhc3NpZ24oZnJCMiwgdW5vcChJb3BfVjEyOHRvNjQsIGdldFZTUmVnKCBYQiApKSk7Ci0gICAgICAgICBESVAoIiVzIHYlZCx2JWQgdiVkXG4iLCBpc01pbiA/ICJ4dm1pbmRwIiA6ICJ4dm1heGRwIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoIiVzIHYlZCx2JWQgdiVkXG4iLCBpc01pbiA/ICJ4dm1pbmRwIiA6ICJ4dm1heGRwIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwgZ2V0X21heF9taW5fZnAoZnJBLCBmckIsIGlzTWluKSwgZ2V0X21heF9taW5fZnAoZnJBMiwgZnJCMiwgaXNNaW4pICkgKTsKIAogICAgICAgICAgYnJlYWs7CkBAIC0xNDI1MCw3ICsxNDM5MSw3IEBACiAgICAgICAgICBhc3NpZ24oZnJBMiwgdW5vcChJb3BfVjEyOHRvNjQsIGdldFZTUmVnKCBYQSApKSk7CiAgICAgICAgICBhc3NpZ24oZnJCMiwgdW5vcChJb3BfVjEyOHRvNjQsIGdldFZTUmVnKCBYQiApKSk7CiAKLSAgICAgICAgIERJUCgieHZjcHNnbmRwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZjcHNnbmRwIHYlZCx2JWQsdiVkXG4iLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfT3I2NCwKQEAgLTE0Mjc5LDcgKzE0NDIwLDcgQEAKIAogICAgICAgICAgYTNfSTY0ID0gYTJfSTY0ID0gYTFfSTY0ID0gYTBfSTY0ID0gSVJUZW1wX0lOVkFMSUQ7CiAgICAgICAgICBiM19JNjQgPSBiMl9JNjQgPSBiMV9JNjQgPSBiMF9JNjQgPSBJUlRlbXBfSU5WQUxJRDsKLSAgICAgICAgIERJUCgieHZjcHNnbnNwIHYlZCx2JWQgdiVkXG4iLChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4dmNwc2duc3AgdiVkLHYlZCB2JWRcbiIsWFQsIFhBLCBYQik7CiAgICAgICAgICBicmVha1YxMjh0bzR4NjRVKCBnZXRWU1JlZyggWEEgKSwgJmEzX0k2NCwgJmEyX0k2NCwgJmExX0k2NCwgJmEwX0k2NCApOwogICAgICAgICAgYnJlYWtWMTI4dG80eDY0VSggZ2V0VlNSZWcoIFhCICksICZiM19JNjQsICZiMl9JNjQsICZiMV9JNjQsICZiMF9JNjQgKTsKIApAQCAtMTQzMzEsNyArMTQ0NzIsNyBAQAogICAgICAgICAgYXNzaWduKGZyQiwgIHVub3AoSW9wX1JlaW50ZXJwSTY0YXNGNjQsIHVub3AoSW9wX1YxMjhISXRvNjQsIGdldFZTUmVnKCBYQiApKSkpOwogICAgICAgICAgYXNzaWduKGZyQjIsIHVub3AoSW9wX1JlaW50ZXJwSTY0YXNGNjQsIHVub3AoSW9wX1YxMjh0bzY0LCBnZXRWU1JlZyhYQikpKSk7CiAKLSAgICAgICAgIERJUCgieHYlc2Fic2RwIHYlZCx2JWRcbiIsIG1ha2VfbmVnYXRpdmUgPyAibiIgOiAiIiwgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHYlc2Fic2RwIHYlZCx2JWRcbiIsIG1ha2VfbmVnYXRpdmUgPyAibiIgOiAiIiwgWFQsIFhCKTsKICAgICAgICAgIGlmIChtYWtlX25lZ2F0aXZlKSB7CiAgICAgICAgICAgICBhc3NpZ24oYWJzX3Jlc3VsdEhpLCB1bm9wKCBJb3BfTmVnRjY0LCB1bm9wKCBJb3BfQWJzRjY0LCBta2V4cHIoIGZyQiApICkgKSApOwogICAgICAgICAgICAgYXNzaWduKGFic19yZXN1bHRMbywgdW5vcCggSW9wX05lZ0Y2NCwgdW5vcCggSW9wX0Fic0Y2NCwgbWtleHByKCBmckIyICkgKSApICk7CkBAIC0xNDM5Miw3ICsxNDUzMyw3IEBACiAgICAgICAgICBJUlRlbXAgZnJCMiA9IG5ld1RlbXAoSXR5X0Y2NCk7CiAgICAgICAgICBhc3NpZ24oZnJCLCAgdW5vcChJb3BfUmVpbnRlcnBJNjRhc0Y2NCwgdW5vcChJb3BfVjEyOEhJdG82NCwgZ2V0VlNSZWcoIFhCICkpKSk7CiAgICAgICAgICBhc3NpZ24oZnJCMiwgdW5vcChJb3BfUmVpbnRlcnBJNjRhc0Y2NCwgdW5vcChJb3BfVjEyOHRvNjQsIGdldFZTUmVnKFhCKSkpKTsKLSAgICAgICAgIERJUCgieHZuZWdkcCB2JWQsdiVkXG4iLCAgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZuZWdkcCB2JWQsdiVkXG4iLCAgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LApAQCAtMTQ0MTcsNyArMTQ1NTgsNyBAQAogICAgICAgICAgYXNzaWduKCBmckJMb19JNjQsIHVub3AoIElvcF9WMTI4dG82NCwgZ2V0VlNSZWcoIFhCICkgKSApOwogICAgICAgICAgZnJEX2ZwX3JvdW5kTG8gPSBfZG9fdnN4X2ZwX3JvdW5kVG9JbnQoZnJCTG9fSTY0LCBvcGMyKTsKIAotICAgICAgICAgRElQKCJ4dnJkcGklcyB2JWQsdiVkXG4iLCBfZ2V0X3ZzeF9yZHBpX3N1ZmZpeChvcGMyKSwgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHZyZHBpJXMgdiVkLHYlZFxuIiwgX2dldF92c3hfcmRwaV9zdWZmaXgob3BjMiksIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwgZnJEX2ZwX3JvdW5kSGkgKSwKQEAgLTE0NDU2LDcgKzE0NTk3LDcgQEAKICAgICAgICAgICAgICAgICAgIHZleF9wcmludGYoIlVucmVjb2duaXplZCBvcGNvZGUgJXhcbiIsIG9wYzIpOwogICAgICAgICAgICAgICAgICAgdnBhbmljKCJkaXNfdnh2X21pc2MocHBjKSh2cnNwaTx4Pikob3BjMilcbiIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgRElQKCJ4dnJzcGklcyB2JWQsdiVkXG4iLCBpbnNuX3N1ZmZpeCwgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgICAgIERJUCgieHZyc3BpJXMgdiVkLHYlZFxuIiwgaW5zbl9zdWZmaXgsIFhULCBYQik7CiAgICAgICAgICAgICBwdXRWU1JlZyggWFQsIHVub3AoIG9wLCBnZXRWU1JlZyhYQikgKSApOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEhhbmRsZSB4dnJzcGljLiAgVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBubyBjb3JyZXNwb25kaW5nICJ2ZnJpYyIgaW5zdHJ1Y3Rpb24uCkBAIC0xNDQ4Miw3ICsxNDYyMyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2RvX3ZzeF9mcF9yb3VuZFRvSW50KGIxX0k2NCwgb3BjMikpOwogICAgICAgICAgICAgZnJEX2ZwX3JvdW5kYjAgPSB1bm9wKElvcF9UcnVuY0Y2NGFzRjMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kb192c3hfZnBfcm91bmRUb0ludChiMF9JNjQsIG9wYzIpKTsKLSAgICAgICAgICAgIERJUCgieHZyc3BpYyB2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgICAgRElQKCJ4dnJzcGljIHYlZCx2JWRcbiIsIFhULCBYQik7CiAgICAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzMySEx0bzY0LApAQCAtMTQ1MzIsNyArMTQ2NzMsNyBAQAogICAgICovCiAgICBzd2l0Y2ggKG9wYzIpIHsKICAgICAgIGNhc2UgMHgwMDA6IC8vIHhzYWRkc3AgIChWU1ggU2NhbGFyIEFkZCBTaW5nbGUtUHJlY2lzaW9uKQotICAgICAgICAgRElQKCJ4c2FkZHNwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNhZGRzcCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9Sb3VuZEY2NHRvRjMyLCBybSwKQEAgLTE0NTQyLDcgKzE0NjgzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KCAwICkgKSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MDIwOiAvLyB4c3N1YnNwICAoVlNYIFNjYWxhciBTdWJ0cmFjdCBTaW5nbGUtUHJlY2lzaW9uKQotICAgICAgICAgRElQKCJ4c3N1YnNwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNzdWJzcCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9Sb3VuZEY2NHRvRjMyLCBybSwKQEAgLTE0NTUyLDcgKzE0NjkzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KCAwICkgKSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MDgwOiAvLyB4c2FkZGRwIChWU1ggc2NhbGFyIGFkZCBkb3VibGUtcHJlY2lzaW9uKQotICAgICAgICAgRElQKCJ4c2FkZGRwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNhZGRkcCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwgdW5vcCggSW9wX1JlaW50ZXJwRjY0YXNJNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpb3AoIElvcF9BZGRGNjQsIHJtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoIGZyQSApLApAQCAtMTQ1NjAsNyArMTQ3MDEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQoIDAgKSApICk7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgwNjA6IC8vIHhzZGl2c3AgKFZTWCBzY2FsYXIgZGl2aWRlIHNpbmdsZS1wcmVjaXNpb24pCi0gICAgICAgICBESVAoInhzZGl2c3AgdiVkLHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c2RpdnNwIHYlZCx2JWQsdiVkXG4iLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcCggSW9wX1JlaW50ZXJwRjY0YXNJNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wX1JvdW5kRjY0dG9GMzIsIHJtLApAQCAtMTQ1NzAsNyArMTQ3MTEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KCAwICkgKSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MEUwOiAvLyB4c2RpdmRwIChWU1ggc2NhbGFyIGRpdmlkZSBkb3VibGUtcHJlY2lzaW9uKQotICAgICAgICAgRElQKCJ4c2RpdmRwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNkaXZkcCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwgdW5vcCggSW9wX1JlaW50ZXJwRjY0YXNJNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpb3AoIElvcF9EaXZGNjQsIHJtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoIGZyQSApLApAQCAtMTQ1ODMsNyArMTQ3MjQsNyBAQAogICAgICAgewogICAgICAgICAgSVJUZW1wIGZyVCA9IG5ld1RlbXAoSXR5X0Y2NCk7CiAgICAgICAgICBCb29sIG1kcCA9IG9wYzIgPT0gMHgwMjQ7Ci0gICAgICAgICBESVAoInhzbWFkZCVzc3AgdiVkLHYlZCx2JWRcbiIsIG1kcCA/ICJtIiA6ICJhIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInhzbWFkZCVzc3AgdiVkLHYlZCx2JWRcbiIsIG1kcCA/ICJtIiA6ICJhIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBhc3NpZ24oIGZyVCwgdW5vcCggSW9wX1JlaW50ZXJwSTY0YXNGNjQsIHVub3AoIElvcF9WMTI4SEl0bzY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRWU1JlZyggWFQgKSApICkgKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKQEAgLTE0NjAxLDcgKzE0NzQyLDcgQEAKICAgICAgIHsKICAgICAgICAgIElSVGVtcCBmclQgPSBuZXdUZW1wKEl0eV9GNjQpOwogICAgICAgICAgQm9vbCBtZHAgPSBvcGMyID09IDB4MEE0OwotICAgICAgICAgRElQKCJ4c21hZGQlc2RwIHYlZCx2JWQsdiVkXG4iLCBtZHAgPyAibSIgOiAiYSIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c21hZGQlc2RwIHYlZCx2JWQsdiVkXG4iLCBtZHAgPyAibSIgOiAiYSIsIFhULCBYQSwgWEIpOwogICAgICAgICAgYXNzaWduKCBmclQsIHVub3AoIElvcF9SZWludGVycEk2NGFzRjY0LCB1bm9wKCBJb3BfVjEyOEhJdG82NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VlNSZWcoIFhUICkgKSApICk7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwgdW5vcCggSW9wX1JlaW50ZXJwRjY0YXNJNjQsCkBAIC0xNDYxOCw3ICsxNDc1OSw3IEBACiAgICAgICB7CiAgICAgICAgICBJUlRlbXAgZnJUID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgIEJvb2wgbWRwID0gb3BjMiA9PSAweDA2NDsKLSAgICAgICAgIERJUCgieHNtc3ViJXNzcCB2JWQsdiVkLHYlZFxuIiwgbWRwID8gIm0iIDogImEiLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNtc3ViJXNzcCB2JWQsdiVkLHYlZFxuIiwgbWRwID8gIm0iIDogImEiLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIGFzc2lnbiggZnJULCB1bm9wKCBJb3BfUmVpbnRlcnBJNjRhc0Y2NCwgdW5vcCggSW9wX1YxMjhISXRvNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFZTUmVnKCBYVCApICkgKSApOwogICAgICAgICAgcHV0VlNSZWcoIFhULApAQCAtMTQ2MzYsNyArMTQ3NzcsNyBAQAogICAgICAgewogICAgICAgICAgSVJUZW1wIGZyVCA9IG5ld1RlbXAoSXR5X0Y2NCk7CiAgICAgICAgICBCb29sIG1kcCA9IG9wYzIgPT0gMHgwRTQ7Ci0gICAgICAgICBESVAoInhzbXN1YiVzZHAgdiVkLHYlZCx2JWRcbiIsIG1kcCA/ICJtIiA6ICJhIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInhzbXN1YiVzZHAgdiVkLHYlZCx2JWRcbiIsIG1kcCA/ICJtIiA6ICJhIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBhc3NpZ24oIGZyVCwgdW5vcCggSW9wX1JlaW50ZXJwSTY0YXNGNjQsIHVub3AoIElvcF9WMTI4SEl0bzY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRWU1JlZyggWFQgKSApICkgKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwgYmlub3AoIElvcF82NEhMdG9WMTI4LCB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKQEAgLTE0NjYwLDcgKzE0ODAxLDcgQEAKICAgICAgICAgIElSVGVtcCBmclQgPSBuZXdUZW1wKEl0eV9GNjQpOwogICAgICAgICAgSVJUZW1wIG1hZGRSZXN1bHQgPSBuZXdUZW1wKEl0eV9JNjQpOwogCi0gICAgICAgICBESVAoInhzbm1hZGQlc2RwIHYlZCx2JWQsdiVkXG4iLCBtZHAgPyAibSIgOiAiYSIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c25tYWRkJXNkcCB2JWQsdiVkLHYlZFxuIiwgbWRwID8gIm0iIDogImEiLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIGFzc2lnbiggZnJULCB1bm9wKCBJb3BfUmVpbnRlcnBJNjRhc0Y2NCwgdW5vcCggSW9wX1YxMjhISXRvNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFZTUmVnKCBYVCApICkgKSApOwogICAgICAgICAgYXNzaWduKCBtYWRkUmVzdWx0LCB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwgcW9wKCBJb3BfTUFkZEY2NCwgcm0sCkBAIC0xNDY4MCw3ICsxNDgyMSw3IEBACiAgICAgICAgICBJUlRlbXAgZnJUID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgIElSVGVtcCBtYWRkUmVzdWx0ID0gbmV3VGVtcChJdHlfSTY0KTsKIAotICAgICAgICAgRElQKCJ4c25tYWRkJXNzcCB2JWQsdiVkLHYlZFxuIiwgbWRwID8gIm0iIDogImEiLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNubWFkZCVzc3AgdiVkLHYlZCx2JWRcbiIsIG1kcCA/ICJtIiA6ICJhIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBhc3NpZ24oIGZyVCwgdW5vcCggSW9wX1JlaW50ZXJwSTY0YXNGNjQsIHVub3AoIElvcF9WMTI4SEl0bzY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRWU1JlZyggWFQgKSApICkgKTsKICAgICAgICAgIGFzc2lnbiggbWFkZFJlc3VsdCwKQEAgLTE0NzA0LDcgKzE0ODQ1LDcgQEAKICAgICAgICAgIEJvb2wgbWRwID0gb3BjMiA9PSAweDI2NDsKICAgICAgICAgIElSVGVtcCBtc3ViUmVzdWx0ID0gbmV3VGVtcChJdHlfSTY0KTsKIAotICAgICAgICAgRElQKCJ4c25tc3ViJXNzcCB2JWQsdiVkLHYlZFxuIiwgbWRwID8gIm0iIDogImEiLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNubXN1YiVzc3AgdiVkLHYlZCx2JWRcbiIsIG1kcCA/ICJtIiA6ICJhIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBhc3NpZ24oIGZyVCwgdW5vcCggSW9wX1JlaW50ZXJwSTY0YXNGNjQsIHVub3AoIElvcF9WMTI4SEl0bzY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRWU1JlZyggWFQgKSApICkgKTsKICAgICAgICAgIGFzc2lnbiggbXN1YlJlc3VsdCwKQEAgLTE0NzI4LDcgKzE0ODY5LDcgQEAKICAgICAgICAgIEJvb2wgbWRwID0gb3BjMiA9PSAweDJFNDsKICAgICAgICAgIElSVGVtcCBtc3ViUmVzdWx0ID0gbmV3VGVtcChJdHlfSTY0KTsKIAotICAgICAgICAgRElQKCJ4c25tc3ViJXNkcCB2JWQsdiVkLHYlZFxuIiwgbWRwID8gIm0iIDogImEiLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNubXN1YiVzZHAgdiVkLHYlZCx2JWRcbiIsIG1kcCA/ICJtIiA6ICJhIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBhc3NpZ24oIGZyVCwgdW5vcCggSW9wX1JlaW50ZXJwSTY0YXNGNjQsIHVub3AoIElvcF9WMTI4SEl0bzY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRWU1JlZyggWFQgKSApICkgKTsKICAgICAgICAgIGFzc2lnbihtc3ViUmVzdWx0LCB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKQEAgLTE0NzQ0LDcgKzE0ODg1LDcgQEAKICAgICAgIH0KIAogICAgICAgY2FzZSAweDA0MDogLy8geHNtdWxzcCAoVlNYIFNjYWxhciBNdWx0aXBseSBTaW5nbGUtUHJlY2lzaW9uKQotICAgICAgICAgRElQKCJ4c211bHNwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNtdWxzcCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9Sb3VuZEY2NHRvRjMyLCBybSwKQEAgLTE0NzU1LDcgKzE0ODk2LDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MEMwOiAvLyB4c211bGRwIChWU1ggU2NhbGFyIE11bHRpcGx5IERvdWJsZS1QcmVjaXNpb24pCi0gICAgICAgICBESVAoInhzbXVsZHAgdiVkLHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c211bGRwIHYlZCx2JWQsdiVkXG4iLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwgYmlub3AoIElvcF82NEhMdG9WMTI4LCB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlvcCggSW9wX011bEY2NCwgcm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggZnJBICksCkBAIC0xNDc2Myw3ICsxNDkwNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U2NCggMCApICkgKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDBBMDogLy8geHNzdWJkcCAoVlNYIFNjYWxhciBTdWJ0cmFjdCBEb3VibGUtUHJlY2lzaW9uKQotICAgICAgICAgRElQKCJ4c3N1YmRwIHYlZCx2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNzdWJkcCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfNjRITHRvVjEyOCwgdW5vcCggSW9wX1JlaW50ZXJwRjY0YXNJNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpb3AoIElvcF9TdWJGNjQsIHJtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoIGZyQSApLApAQCAtMTQ3NzIsNyArMTQ5MTMsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgMHgwMTY6IC8vIHhzc3FydHNwIChWU1ggU2NhbGFyIFNxdWFyZSBSb290IFNpbmdsZS1QcmVjaXNpb24pCi0gICAgICAgICBESVAoInhzc3FydHNwIHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzc3FydHNwIHYlZCx2JWRcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF82NEhMdG9WMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKQEAgLTE0NzgzLDcgKzE0OTI0LDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIDB4MDk2OiAvLyB4c3NxcnRkcCAoVlNYIFNjYWxhciBTcXVhcmUgUm9vdCBEb3VibGUtUHJlY2lzaW9uKQotICAgICAgICAgRElQKCJ4c3NxcnRkcCB2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c3NxcnRkcCB2JWQsdiVkXG4iLCBYVCwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULCAgYmlub3AoIElvcF82NEhMdG9WMTI4LCB1bm9wKCBJb3BfUmVpbnRlcnBGNjRhc0k2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9TcXJ0RjY0LCBybSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggZnJCICkgKSApLApAQCAtMTQ3OTUsNyArMTQ5MzYsNyBAQAogICAgICAgICAgVUNoYXIgY3JmRCAgICAgPSB0b1VDaGFyKCBJRklFTEQoIHRoZUluc3RyLCAyMywgMyApICk7CiAgICAgICAgICBJUlRlbXAgZnJBX0k2NCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICBJUlRlbXAgZnJCX0k2NCA9IG5ld1RlbXAoSXR5X0k2NCk7Ci0gICAgICAgICBESVAoInhzdGRpdmRwIGNyZiVkLHYlZCx2JWRcbiIsIGNyZkQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInhzdGRpdmRwIGNyZiVkLHYlZCx2JWRcbiIsIGNyZkQsIFhBLCBYQik7CiAgICAgICAgICBhc3NpZ24oIGZyQV9JNjQsIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LCBta2V4cHIoIGZyQSApICkgKTsKICAgICAgICAgIGFzc2lnbiggZnJCX0k2NCwgdW5vcCggSW9wX1JlaW50ZXJwRjY0YXNJNjQsIG1rZXhwciggZnJCICkgKSApOwogICAgICAgICAgcHV0R1NUX2ZpZWxkKCBQUENfR1NUX0NSLCBkb19mcF90ZGl2KGZyQV9JNjQsIGZyQl9JNjQpLCBjcmZEICk7CkBAIC0xNDgwOCw3ICsxNDk0OSw3IEBACiAgICAgICAgICBJUlRlbXAgZmxhZ3MgPSBuZXdUZW1wKEl0eV9JMzIpOwogICAgICAgICAgSVJUZW1wICBmZV9mbGFnLCBmZ19mbGFnOwogICAgICAgICAgZmVfZmxhZyA9IGZnX2ZsYWcgPSBJUlRlbXBfSU5WQUxJRDsKLSAgICAgICAgIERJUCgieHN0c3FydGRwIHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzdHNxcnRkcCB2JWQsdiVkXG4iLCBYVCwgWEIpOwogICAgICAgICAgYXNzaWduKCBmckJfSTY0LCB1bm9wKElvcF9WMTI4SEl0bzY0LCBnZXRWU1JlZyggWEIgKSkgKTsKICAgICAgICAgIGRvX2ZwX3RzcXJ0KGZyQl9JNjQsIEZhbHNlIC8qbm90IHNpbmdsZSBwcmVjaXNpb24qLywgJmZlX2ZsYWcsICZmZ19mbGFnKTsKICAgICAgICAgIC8qIFRoZSBDUiBmaWVsZCBjb25zaXN0cyBvZiBmbF9mbGFnIHx8IGZnX2ZsYWcgfHwgZmVfZmxhZyB8fCAwYjAKQEAgLTE0ODU5LDcgKzE1MDAwLDcgQEAKICAgICAgICAgIC8qIE5vdGU6IERpZmZlcmVuY2VzIGJldHdlZW4geHNjbXB1ZHAgYW5kIHhzY21wb2RwIGFyZSBvbmx5IGluCiAgICAgICAgICAgKiBleGNlcHRpb24gZmxhZyBzZXR0aW5ncywgd2hpY2ggYXJlbid0IHN1cHBvcnRlZCBhbnl3YXkuICovCiAgICAgICAgICBESVAoInhzY21wJXNkcCBjcmYlZCxmciV1LGZyJXVcbiIsIG9wYzIgPT0gMHgwOGMgPyAidSIgOiAibyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JmRCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmZELCBYQSwgWEIpOwogICAgICAgICAgY2NQUEMzMiA9IGdldF9mcF9jbXBfQ1JfdmFsKCBiaW5vcChJb3BfQ21wRjY0LCBta2V4cHIoZnJBKSwgbWtleHByKGZyQikpKTsKICAgICAgICAgIHB1dEdTVF9maWVsZCggUFBDX0dTVF9DUiwgbWtleHByKGNjUFBDMzIpLCBjcmZEICk7CiAgICAgICAgICBicmVhazsKQEAgLTE0OTgzLDcgKzE1MTI0LDcgQEAKICAgICAgIGNhc2UgMHgxOEM6IGNhc2UgMHgzOEM6ICAvLyB4dmNtcGVxZHBbLl0gKFZTWCBWZWN0b3IgQ29tcGFyZSBFcXVhbCBUbyBEb3VibGUtUHJlY2lzaW9uIFsgJiBSZWNvcmQgXSkKICAgICAgIHsKICAgICAgICAgIERJUCgieHZjbXBlcWRwJXMgY3JmJWQsZnIldSxmciV1XG4iLCAoZmxhZ19yQyA/ICIuIjoiIiksCi0gICAgICAgICAgICAgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICAgICAgWFQsIFhBLCBYQik7CiAgICAgICAgICBkb192dmVjX2ZwX2NtcCh2QSwgdkIsIFhULCBmbGFnX3JDLCBQUENfQ01QX0VRKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgfQpAQCAtMTQ5OTEsNyArMTUxMzIsNyBAQAogICAgICAgY2FzZSAweDFDQzogY2FzZSAweDNDQzogLy8geHZjbXBnZWRwWy5dIChWU1ggVmVjdG9yIENvbXBhcmUgR3JlYXRlciBUaGFuIG9yIEVxdWFsIFRvIERvdWJsZS1QcmVjaXNpb24gWyAmIFJlY29yZCBdKQogICAgICAgewogICAgICAgICAgRElQKCJ4dmNtcGdlZHAlcyBjcmYlZCxmciV1LGZyJXVcbiIsIChmbGFnX3JDID8gIi4iOiIiKSwKLSAgICAgICAgICAgICAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgICAgICBYVCwgWEEsIFhCKTsKICAgICAgICAgIGRvX3Z2ZWNfZnBfY21wKHZBLCB2QiwgWFQsIGZsYWdfckMsIFBQQ19DTVBfR0UpOwogICAgICAgICAgYnJlYWs7CiAgICAgICB9CkBAIC0xNDk5OSw3ICsxNTE0MCw3IEBACiAgICAgICBjYXNlIDB4MUFDOiBjYXNlIDB4M0FDOiAvLyB4dmNtcGd0ZHBbLl0gKFZTWCBWZWN0b3IgQ29tcGFyZSBHcmVhdGVyIFRoYW4gRG91YmxlLVByZWNpc2lvbiBbICYgUmVjb3JkIF0pCiAgICAgICB7CiAgICAgICAgICBESVAoInh2Y21wZ3RkcCVzIGNyZiVkLGZyJXUsZnIldVxuIiwgKGZsYWdfckMgPyAiLiI6IiIpLAotICAgICAgICAgICAgIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgICAgIFhULCBYQSwgWEIpOwogICAgICAgICAgZG9fdnZlY19mcF9jbXAodkEsIHZCLCBYVCwgZmxhZ19yQywgUFBDX0NNUF9HVCk7CiAgICAgICAgICBicmVhazsKICAgICAgIH0KQEAgLTE1MDA5LDcgKzE1MTUwLDcgQEAKICAgICAgICAgIElSVGVtcCB2RCA9IG5ld1RlbXAoSXR5X1YxMjgpOwogCiAgICAgICAgICBESVAoInh2Y21wZXFzcCVzIGNyZiVkLGZyJXUsZnIldVxuIiwgKGZsYWdfckMgPyAiLiI6IiIpLAotICAgICAgICAgICAgIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgICAgIFhULCBYQSwgWEIpOwogICAgICAgICAgYXNzaWduKCB2RCwgYmlub3AoSW9wX0NtcEVRMzJGeDQsIG1rZXhwcih2QSksIG1rZXhwcih2QikpICk7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIG1rZXhwcih2RCkgKTsKICAgICAgICAgIGlmIChmbGFnX3JDKSB7CkBAIC0xNTAyMyw3ICsxNTE2NCw3IEBACiAgICAgICAgICBJUlRlbXAgdkQgPSBuZXdUZW1wKEl0eV9WMTI4KTsKIAogICAgICAgICAgRElQKCJ4dmNtcGdlc3AlcyBjcmYlZCxmciV1LGZyJXVcbiIsIChmbGFnX3JDID8gIi4iOiIiKSwKLSAgICAgICAgICAgICAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgICAgICBYVCwgWEEsIFhCKTsKICAgICAgICAgIGFzc2lnbiggdkQsIGJpbm9wKElvcF9DbXBHRTMyRng0LCBta2V4cHIodkEpLCBta2V4cHIodkIpKSApOwogICAgICAgICAgcHV0VlNSZWcoIFhULCBta2V4cHIodkQpICk7CiAgICAgICAgICBpZiAoZmxhZ19yQykgewpAQCAtMTUwMzcsNyArMTUxNzgsNyBAQAogICAgICAgICAgSVJUZW1wIHZEID0gbmV3VGVtcChJdHlfVjEyOCk7CiAKICAgICAgICAgIERJUCgieHZjbXBndHNwJXMgY3JmJWQsZnIldSxmciV1XG4iLCAoZmxhZ19yQyA/ICIuIjoiIiksCi0gICAgICAgICAgICAgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICAgICAgWFQsIFhBLCBYQik7CiAgICAgICAgICBhc3NpZ24oIHZELCBiaW5vcChJb3BfQ21wR1QzMkZ4NCwgbWtleHByKHZBKSwgbWtleHByKHZCKSkgKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwgbWtleHByKHZEKSApOwogICAgICAgICAgaWYgKGZsYWdfckMpIHsKQEAgLTE1MDk5LDcgKzE1MjQwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKElvcF9TaGxWMTI4LCBta2V4cHIodkIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVOCgxKSksIG1rVTgoMSkpKTsKICAgICAgICAgIH0KLSAgICAgICAgIERJUCgieHNhYnNkcCB2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c2Fic2RwIHYlZCx2JWRcbiIsIFhULCBYQik7CiAgICAgICAgICBwdXRWU1JlZyhYVCwgbWtleHByKGFic1ZhbCkpOwogICAgICAgICAgYnJlYWs7CiAgICAgICB9CkBAIC0xNTEwOSw3ICsxNTI1MCw3IEBACiAgICAgICAgICBJUlRlbXAgdmVjQV9zaWduZWQgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgSVJUZW1wIHZlY0JfdW5zaWduZWQgPSBuZXdUZW1wKEl0eV9JNjQpOwogICAgICAgICAgSVJUZW1wIHZlY19yZXN1bHQgPSBuZXdUZW1wKEl0eV9WMTI4KTsKLSAgICAgICAgIERJUCgieHNjcHNnbmRwIHYlZCx2JWQgdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgieHNjcHNnbmRwIHYlZCx2JWQgdiVkXG4iLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIGFzc2lnbiggdmVjQV9zaWduZWQsIGJpbm9wKCBJb3BfQW5kNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5vcCggSW9wX1YxMjhISXRvNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKHZBKSksCkBAIC0xNTEzMCw3ICsxNTI3MSw3IEBACiAgICAgICB7CiAgICAgICAgICAvKiBTY2FsYXIgbmVnYXRpdmUgYWJzb2x1dGUgdmFsdWUgZG91YmxlLXByZWNpc2lvbiAqLwogICAgICAgICAgSVJUZW1wIEJIaV9zaWduZWQgPSBuZXdUZW1wKEl0eV9JNjQpOwotICAgICAgICAgRElQKCJ4c25hYnNkcCB2JWQsdiVkXG4iLCAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c25hYnNkcCB2JWQsdiVkXG4iLCBYVCwgWEIpOwogICAgICAgICAgYXNzaWduKCBCSGlfc2lnbmVkLCBiaW5vcCggSW9wX09yNjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfVjEyOEhJdG82NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwcih2QikgKSwKQEAgLTE1MTQ3LDcgKzE1Mjg4LDcgQEAKICAgICAgICAgIElSVGVtcCBCSGlfbmVnYXRlZCA9IG5ld1RlbXAoSXR5X0k2NCk7CiAgICAgICAgICBJUlRlbXAgQkhpX25lZ2F0ZWRfc2lnbmJpdCA9IG5ld1RlbXAoSXR5X0kxKTsKICAgICAgICAgIElSVGVtcCB2ZWNfcmVzdWx0ID0gbmV3VGVtcChJdHlfVjEyOCk7Ci0gICAgICAgICBESVAoInhzbmFic2RwIHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzbmFic2RwIHYlZCx2JWRcbiIsIFhULCBYQik7CiAgICAgICAgICBhc3NpZ24oIEJIaV9zaWduZWQsIHVub3AoIElvcF9WMTI4SEl0bzY0LCBta2V4cHIodkIpICkgKTsKICAgICAgICAgIGFzc2lnbiggQkhpX3Vuc2lnbmVkLCBiaW5vcCggSW9wX0FuZDY0LCBta2V4cHIoQkhpX3NpZ25lZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTY0KFZHX1BQQ19TSUdOX01BU0spICkgKTsKQEAgLTE1MTgxLDcgKzE1MzIyLDcgQEAKICAgICAgICAgIElSVGVtcCBmckEgICAgID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgIElSVGVtcCBmckIgICAgID0gbmV3VGVtcChJdHlfSTY0KTsKICAgICAgICAgIEJvb2wgaXNNaW4gPSBvcGMyID09IDB4MkEwID8gVHJ1ZSA6IEZhbHNlOwotICAgICAgICAgRElQKCIlcyB2JWQsdiVkIHYlZFxuIiwgaXNNaW4gPyAieHNtYXhkcCIgOiAieHNtaW5kcCIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCIlcyB2JWQsdiVkIHYlZFxuIiwgaXNNaW4gPyAieHNtYXhkcCIgOiAieHNtaW5kcCIsIFhULCBYQSwgWEIpOwogCiAgICAgICAgICBhc3NpZ24oZnJBLCB1bm9wKElvcF9WMTI4SEl0bzY0LCBta2V4cHIoIHZBICkpKTsKICAgICAgICAgIGFzc2lnbihmckIsIHVub3AoSW9wX1YxMjhISXRvNjQsIG1rZXhwciggdkIgKSkpOwpAQCAtMTUyMDEsNyArMTUzNDIsNyBAQAogICAgICAgICAgYXNzaWduKGZyQl9JNjQsIHVub3AoSW9wX1YxMjhISXRvNjQsIG1rZXhwciggdkIgKSkpOwogICAgICAgICAgZnJEX2ZwX3JvdW5kID0gX2RvX3ZzeF9mcF9yb3VuZFRvSW50KGZyQl9JNjQsIG9wYzIpOwogCi0gICAgICAgICBESVAoInhzcmRwaSVzIHYlZCx2JWRcbiIsIF9nZXRfdnN4X3JkcGlfc3VmZml4KG9wYzIpLCAoVUludClYVCwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4c3JkcGklcyB2JWQsdiVkXG4iLCBfZ2V0X3ZzeF9yZHBpX3N1ZmZpeChvcGMyKSwgWFQsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICBiaW5vcCggSW9wXzY0SEx0b1YxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEY2NGFzSTY0LCBmckRfZnBfcm91bmQpLApAQCAtMTUyMTgsOCArMTUzNTksOCBAQAogICAgICAgICAgSVJFeHByKiBpZWVlX29uZSA9IElSRXhwcl9Db25zdChJUkNvbnN0X0Y2NGkoMHgzZmYwMDAwMDAwMDAwMDAwVUxMKSk7CiAgICAgICAgICBJUkV4cHIqIHJtICA9IGdldF9JUl9yb3VuZGluZ21vZGUoKTsKICAgICAgICAgIEJvb2wgcmVkcCA9IG9wYzIgPT0gMHgwMzQ7Ci0gICAgICAgICBESVAoIiVzIHYlZCx2JWRcbiIsIHJlZHAgPyAieHNyZXNwIiA6ICJ4c3JzcXJ0ZXNwIiwgKFVJbnQpWFQsCi0gICAgICAgICAgICAgKFVJbnQpWEIpOworICAgICAgICAgRElQKCIlcyB2JWQsdiVkXG4iLCByZWRwID8gInhzcmVzcCIgOiAieHNyc3FydGVzcCIsIFhULAorICAgICAgICAgICAgIFhCKTsKIAogICAgICAgICAgYXNzaWduKCBmckIsCiAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEk2NGFzRjY0LApAQCAtMTUyNTIsNyArMTUzOTMsNyBAQAogICAgICAgICAgSVJFeHByKiBpZWVlX29uZSA9IElSRXhwcl9Db25zdChJUkNvbnN0X0Y2NGkoMHgzZmYwMDAwMDAwMDAwMDAwVUxMKSk7CiAgICAgICAgICBJUkV4cHIqIHJtICA9IGdldF9JUl9yb3VuZGluZ21vZGUoKTsKICAgICAgICAgIEJvb2wgcmVkcCA9IG9wYzIgPT0gMHgwQjQ7Ci0gICAgICAgICBESVAoIiVzIHYlZCx2JWRcbiIsIHJlZHAgPyAieHNyZWRwIiA6ICJ4c3JzcXJ0ZWRwIiwgKFVJbnQpWFQsIChVSW50KVhCKTsKKyAgICAgICAgIERJUCgiJXMgdiVkLHYlZFxuIiwgcmVkcCA/ICJ4c3JlZHAiIDogInhzcnNxcnRlZHAiLCBYVCwgWEIpOwogICAgICAgICAgYXNzaWduKCBmckIsCiAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEk2NGFzRjY0LAogICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfVjEyOEhJdG82NCwgbWtleHByKCB2QiApICkgKSApOwpAQCAtMTUyNzcsNyArMTU0MTgsNyBAQAogICAgICAgewogICAgICAgICAgSVJUZW1wIGZyQiA9IG5ld1RlbXAoSXR5X0Y2NCk7CiAgICAgICAgICBJUkV4cHIqIHJtICA9IGdldF9JUl9yb3VuZGluZ21vZGUoKTsKLSAgICAgICAgIERJUCgieHNyc3AgdiVkLCB2JWRcbiIsIChVSW50KVhULCAoVUludClYQik7CisgICAgICAgICBESVAoInhzcnNwIHYlZCwgdiVkXG4iLCBYVCwgWEIpOwogICAgICAgICAgYXNzaWduKCBmckIsCiAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9SZWludGVycEk2NGFzRjY0LAogICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfVjEyOEhJdG82NCwgbWtleHByKCB2QiApICkgKSApOwpAQCAtMTUzMjIsNDEgKzE1NDYzLDQxIEBACiAKICAgIHN3aXRjaCAob3BjMikgewogICAgICAgY2FzZSAweDI2ODogLy8geHhseG9yCi0gICAgICAgICBESVAoInh4bHhvciB2JWQsdiVkLHYlZFxuIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInh4bHhvciB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfWG9yVjEyOCwgbWtleHByKCB2QSApLCBta2V4cHIoIHZCICkgKSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MjQ4OiAvLyB4eGxvcgotICAgICAgICAgRElQKCJ4eGxvciB2JWQsdiVkLHYlZFxuIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInh4bG9yIHYlZCx2JWQsdiVkXG4iLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwgYmlub3AoIElvcF9PclYxMjgsIG1rZXhwciggdkEgKSwgbWtleHByKCB2QiApICkgKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDI4ODogLy8geHhsbm9yCi0gICAgICAgICBESVAoInh4bG5vciB2JWQsdiVkLHYlZFxuIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInh4bG5vciB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIHVub3AoIElvcF9Ob3RWMTI4LCBiaW5vcCggSW9wX09yVjEyOCwgbWtleHByKCB2QSApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggdkIgKSApICkgKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSAweDIwODogLy8geHhsYW5kCi0gICAgICAgICBESVAoInh4bGFuZCB2JWQsdiVkLHYlZFxuIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInh4bGFuZCB2JWQsdiVkLHYlZFxuIiwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIGJpbm9wKCBJb3BfQW5kVjEyOCwgbWtleHByKCB2QSApLCBta2V4cHIoIHZCICkgKSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MjI4OiAvL3h4bGFuZGMKLSAgICAgICAgIERJUCgieHhsYW5kYyB2JWQsdiVkLHYlZFxuIiwgKFVJbnQpWFQsIChVSW50KVhBLCAoVUludClYQik7CisgICAgICAgICBESVAoInh4bGFuZGMgdiVkLHYlZCx2JWRcbiIsIFhULCBYQSwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULCBiaW5vcCggSW9wX0FuZFYxMjgsIG1rZXhwciggdkEgKSwgdW5vcCggSW9wX05vdFYxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoIHZCICkgKSApICk7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgyQTg6IC8vIHh4bG9yYyAoVlNYIExvZ2ljYWwgT1Igd2l0aCBjb21wbGVtZW50KQotICAgICAgICAgRElQKCJ4eGxvcmMgdiVkLHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4eGxvcmMgdiVkLHYlZCx2JWRcbiIsIFhULCBYQSwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULCBiaW5vcCggSW9wX09yVjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rZXhwciggdkEgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9Ob3RWMTI4LCBta2V4cHIoIHZCICkgKSApICk7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgyQzg6IC8vIHh4bG5hbmQgKFZTWCBMb2dpY2FsIE5BTkQpCi0gICAgICAgICBESVAoInh4bG5hbmQgdiVkLHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4eGxuYW5kIHYlZCx2JWQsdiVkXG4iLCBYVCwgWEEsIFhCKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwgdW5vcCggSW9wX05vdFYxMjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfQW5kVjEyOCwgbWtleHByKCB2QSApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtleHByKCB2QiApICkgKSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MkU4OiAvLyB4eGxlcXYgKFZTWCBMb2dpY2FsIEVxdWl2YWxlbmNlKQotICAgICAgICAgRElQKCJ4eGxlcXYgdiVkLHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4eGxlcXYgdiVkLHYlZCx2JWRcbiIsIFhULCBYQSwgWEIpOwogICAgICAgICAgcHV0VlNSZWcoIFhULCB1bm9wKCBJb3BfTm90VjEyOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9Yb3JWMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta2V4cHIoIHZBICksIG1rZXhwciggdkIgKSApICkgKTsKQEAgLTE1Mzk2LDcgKzE1NTM3LDcgQEAKICAgIGNhc2UgMHgwMEM6IC8vIGx4c2l3enggKExvYWQgVlNYIFNjYWxhciBhcyBJbnRlZ2VyIFdvcmQgYW5kIFplcm8gSW5kZXhlZCkKICAgIHsKICAgICAgIElSRXhwciAqIGV4cDsKLSAgICAgIERJUCgibHhzaXd6eCAlZCxyJXUsciV1XG4iLCAoVUludClYVCwgckFfYWRkciwgckJfYWRkcik7CisgICAgICBESVAoImx4c2l3enggJWQsciV1LHIldVxuIiwgWFQsIHJBX2FkZHIsIHJCX2FkZHIpOwogCiAgICAgICBpZiAoaG9zdF9lbmRuZXNzID09IFZleEVuZG5lc3NMRSkKICAgICAgICAgIGV4cCA9IHVub3AoIElvcF82NHRvMzIsIGxvYWQoIEl0eV9JNjQsIG1rZXhwciggRUEgKSApICk7CkBAIC0xNTQxMSw3ICsxNTU1Miw3IEBACiAgICBjYXNlIDB4MDRDOiAvLyBseHNpd2F4IChMb2FkIFZTWCBTY2FsYXIgYXMgSW50ZWdlciBXb3JkIEFsZ2VicmFpYyBJbmRleGVkKQogICAgewogICAgICAgSVJFeHByICogZXhwOwotICAgICAgRElQKCJseHNpd2F4ICVkLHIldSxyJXVcbiIsIChVSW50KVhULCByQV9hZGRyLCByQl9hZGRyKTsKKyAgICAgIERJUCgibHhzaXdheCAlZCxyJXUsciV1XG4iLCBYVCwgckFfYWRkciwgckJfYWRkcik7CiAKICAgICAgIGlmIChob3N0X2VuZG5lc3MgPT0gVmV4RW5kbmVzc0xFKQogICAgICAgICAgZXhwID0gdW5vcCggSW9wXzY0dG8zMiwgbG9hZCggSXR5X0k2NCwgbWtleHByKCBFQSApICkgKTsKQEAgLTE1NDI2LDcgKzE1NTY3LDcgQEAKICAgIGNhc2UgMHgyMEM6IC8vIGx4c3NweCAoTG9hZCBWU1ggU2NhbGFyIFNpbmdsZS1QcmVjaXNpb24gSW5kZXhlZCkKICAgIHsKICAgICAgIElSRXhwciAqIGV4cDsKLSAgICAgIERJUCgibHhzc3B4ICVkLHIldSxyJXVcbiIsIChVSW50KVhULCByQV9hZGRyLCByQl9hZGRyKTsKKyAgICAgIERJUCgibHhzc3B4ICVkLHIldSxyJXVcbiIsIFhULCByQV9hZGRyLCByQl9hZGRyKTsKICAgICAgIC8qIFRha2UgMzItYml0IGZsb2F0aW5nIHBvaW50IHZhbHVlIGluIHRoZSB1cHBlciBoYWxmIG9mIHRoZSBmZXRjaGVkCiAgICAgICAgKiA2NC1iaXQgdmFsdWUsIGNvbnZlcnQgdG8gNjQtYml0IGZsb2F0aW5nIHBvaW50IHZhbHVlIGFuZCBsb2FkIGludG8KICAgICAgICAqIHRvcCB3b3JkIG9mIFYxMjguCkBAIC0xNTQ0Miw3ICsxNTU4Myw3IEBACiAgICBjYXNlIDB4MjRDOiAvLyBseHNkeAogICAgewogICAgICAgSVJFeHByICogZXhwOwotICAgICAgRElQKCJseHNkeCAlZCxyJXUsciV1XG4iLCAoVUludClYVCwgckFfYWRkciwgckJfYWRkcik7CisgICAgICBESVAoImx4c2R4ICVkLHIldSxyJXVcbiIsIFhULCByQV9hZGRyLCByQl9hZGRyKTsKICAgICAgIGV4cCA9IGxvYWQoIEl0eV9JNjQsIG1rZXhwciggRUEgKSApOwogICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGFuIGV4cHJlc3Npb24gb2YgdHlwZSBJdHlfVjEyOCB3aXRoIHB1dFZTUmVnLCBidXQgdGhlIGxvYWQKICAgICAgIC8vIHdlIGp1c3QgcGVyZm9ybWVkIGlzIG9ubHkgYSBEVy4gIEJ1dCBzaW5jZSB0aGUgY29udGVudHMgb2YgVlNSW1hUXSBlbGVtZW50IDEKQEAgLTE1NDU2LDcgKzE1NTk3LDcgQEAKICAgICAgIElSRXhwciAqIGhpZ2gsICpsb3c7CiAgICAgICBVTG9uZyBlYV9vZmYgPSA4OwogICAgICAgSVJFeHByKiBoaWdoX2FkZHI7Ci0gICAgICBESVAoImx4dmQyeCAlZCxyJXUsciV1XG4iLCAoVUludClYVCwgckFfYWRkciwgckJfYWRkcik7CisgICAgICBESVAoImx4dmQyeCAlZCxyJXUsciV1XG4iLCBYVCwgckFfYWRkciwgckJfYWRkcik7CiAgICAgICBoaWdoID0gbG9hZCggSXR5X0k2NCwgbWtleHByKCBFQSApICk7CiAgICAgICBoaWdoX2FkZHIgPSBiaW5vcCggYWRkT3AsIG1rZXhwciggRUEgKSwgdHkgPT0gSXR5X0k2NCA/IG1rVTY0KCBlYV9vZmYgKQogICAgICAgICAgICAgOiBta1UzMiggZWFfb2ZmICkgKTsKQEAgLTE1NDY3LDcgKzE1NjA4LDcgQEAKICAgIGNhc2UgMHgxNEM6IC8vIGx4dmRzeAogICAgewogICAgICAgSVJUZW1wIGRhdGEgPSBuZXdUZW1wKEl0eV9JNjQpOwotICAgICAgRElQKCJseHZkc3ggJWQsciV1LHIldVxuIiwgKFVJbnQpWFQsIHJBX2FkZHIsIHJCX2FkZHIpOworICAgICAgRElQKCJseHZkc3ggJWQsciV1LHIldVxuIiwgWFQsIHJBX2FkZHIsIHJCX2FkZHIpOwogICAgICAgYXNzaWduKCBkYXRhLCBsb2FkKCBJdHlfSTY0LCBta2V4cHIoIEVBICkgKSApOwogICAgICAgcHV0VlNSZWcoIFhULCBiaW5vcCggSW9wXzY0SEx0b1YxMjgsIG1rZXhwciggZGF0YSApLCBta2V4cHIoIGRhdGEgKSApICk7CiAgICAgICBicmVhazsKQEAgLTE1NDc2LDcgKzE1NjE3LDcgQEAKICAgIHsKICAgICAgIElSRXhwciAqdDA7CiAKLSAgICAgIERJUCgibHh2dzR4ICVkLHIldSxyJXVcbiIsIChVSW50KVhULCByQV9hZGRyLCByQl9hZGRyKTsKKyAgICAgIERJUCgibHh2dzR4ICVkLHIldSxyJXVcbiIsIFhULCByQV9hZGRyLCByQl9hZGRyKTsKIAogICAgICAgLyogVGhlIGxvYWQgd2lsbCByZXN1bHQgaW4gdGhlIGRhdGEgYmVpbmcgaW4gQkUgb3JkZXIuICovCiAgICAgICBpZiAoaG9zdF9lbmRuZXNzID09IFZleEVuZG5lc3NMRSkgewpAQCAtMTU1MzcsNyArMTU2NzgsNyBAQAogICAgICAgKiB0aGUgMTI4LWJpdCB2ZWN0b3IuCiAgICAgICAqLwogICAgICAgSVJFeHByICogaGlnaDY0LCAqIGxvdzMyOwotICAgICAgRElQKCJzdHhzaXd4ICVkLHIldSxyJXVcbiIsIChVSW50KVhTLCByQV9hZGRyLCByQl9hZGRyKTsKKyAgICAgIERJUCgic3R4c2l3eCAlZCxyJXUsciV1XG4iLCBYUywgckFfYWRkciwgckJfYWRkcik7CiAgICAgICBoaWdoNjQgPSB1bm9wKCBJb3BfVjEyOEhJdG82NCwgbWtleHByKCB2UyApICk7CiAgICAgICBsb3czMiAgPSB1bm9wKCBJb3BfNjR0bzMyLCBoaWdoNjQgKTsKICAgICAgIHN0b3JlKCBta2V4cHIoIEVBICksIGxvdzMyICk7CkBAIC0xNTU0Nyw3ICsxNTY4OCw3IEBACiAgICB7CiAgICAgICBJUlRlbXAgaGlnaDY0ID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgIElSVGVtcCB2YWwzMiAgPSBuZXdUZW1wKEl0eV9JMzIpOwotICAgICAgRElQKCJzdHhzc3B4ICVkLHIldSxyJXVcbiIsIChVSW50KVhTLCByQV9hZGRyLCByQl9hZGRyKTsKKyAgICAgIERJUCgic3R4c3NweCAlZCxyJXUsciV1XG4iLCBYUywgckFfYWRkciwgckJfYWRkcik7CiAgICAgICBhc3NpZ24oaGlnaDY0LCB1bm9wKCBJb3BfUmVpbnRlcnBJNjRhc0Y2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVub3AoIElvcF9WMTI4SEl0bzY0LCBta2V4cHIoIHZTICkgKSApICk7CiAgICAgICBhc3NpZ24odmFsMzIsIHVub3AoIElvcF9SZWludGVycEYzMmFzSTMyLApAQCAtMTU1NTksNyArMTU3MDAsNyBAQAogICAgY2FzZSAweDJDQzoKICAgIHsKICAgICAgIElSRXhwciAqIGhpZ2g2NDsKLSAgICAgIERJUCgic3R4c2R4ICVkLHIldSxyJXVcbiIsIChVSW50KVhTLCByQV9hZGRyLCByQl9hZGRyKTsKKyAgICAgIERJUCgic3R4c2R4ICVkLHIldSxyJXVcbiIsIFhTLCByQV9hZGRyLCByQl9hZGRyKTsKICAgICAgIGhpZ2g2NCA9IHVub3AoIElvcF9WMTI4SEl0bzY0LCBta2V4cHIoIHZTICkgKTsKICAgICAgIHN0b3JlKCBta2V4cHIoIEVBICksIGhpZ2g2NCApOwogICAgICAgYnJlYWs7CkBAIC0xNTU2Nyw3ICsxNTcwOCw3IEBACiAgICBjYXNlIDB4M0NDOgogICAgewogICAgICAgSVJFeHByICogaGlnaDY0LCAqbG93NjQ7Ci0gICAgICBESVAoInN0eHZkMnggJWQsciV1LHIldVxuIiwgKFVJbnQpWFMsIHJBX2FkZHIsIHJCX2FkZHIpOworICAgICAgRElQKCJzdHh2ZDJ4ICVkLHIldSxyJXVcbiIsIFhTLCByQV9hZGRyLCByQl9hZGRyKTsKICAgICAgIGhpZ2g2NCA9IHVub3AoIElvcF9WMTI4SEl0bzY0LCBta2V4cHIoIHZTICkgKTsKICAgICAgIGxvdzY0ID0gdW5vcCggSW9wX1YxMjh0bzY0LCBta2V4cHIoIHZTICkgKTsKICAgICAgIHN0b3JlKCBta2V4cHIoIEVBICksIGhpZ2g2NCApOwpAQCAtMTU1ODIsNyArMTU3MjMsNyBAQAogICAgICAgSVJUZW1wIGhpNjQgPSBuZXdUZW1wKCBJdHlfSTY0ICk7CiAgICAgICBJUlRlbXAgbG82NCA9IG5ld1RlbXAoIEl0eV9JNjQgKTsKIAotICAgICAgRElQKCJzdHh2dzR4ICVkLHIldSxyJXVcbiIsIChVSW50KVhTLCByQV9hZGRyLCByQl9hZGRyKTsKKyAgICAgIERJUCgic3R4dnc0eCAlZCxyJXUsciV1XG4iLCBYUywgckFfYWRkciwgckJfYWRkcik7CiAKICAgICAgIC8vIFRoaXMgaW5zdHJ1Y3Rpb24gc3VwcG9ydHMgd29yZC1hbGlnbmVkIHN0b3Jlcywgc28gRUEgbWF5IG5vdCBiZQogICAgICAgLy8gcXVhZC13b3JkIGFsaWduZWQuICBUaGVyZWZvcmUsIGRvIDQgaW5kaXZpZHVhbCB3b3JkLXNpemUgc3RvcmVzLgpAQCAtMTU2NDcsNyArMTU3ODgsNyBAQAogICAgICAgICAgICAgIGFzc2lnbiAoIHJlc3VsdCwgYmlub3AoSW9wX09yVjEyOCwgbWtleHByKGhpKSwgbWtleHByKGxvKSkgKTsKICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgIGFzc2lnbiAoIHJlc3VsdCwgbWtleHByKHZBKSApOwotICAgICAgICAgRElQKCJ4eHNsZHdpIHYlZCx2JWQsdiVkLCVkXG4iLCAoVUludClYVCwgKFVJbnQpWEEsIChVSW50KVhCLCAoVUludClTSFcpOworICAgICAgICAgRElQKCJ4eHNsZHdpIHYlZCx2JWQsdiVkLCVkXG4iLCBYVCwgWEEsIFhCLCBTSFcpOwogICAgICAgICAgcHV0VlNSZWcoIFhULCBta2V4cHIocmVzdWx0KSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICB9CkBAIC0xNTY2OSw3ICsxNTgxMCw3IEBACiAKICAgICAgICAgIGFzc2lnbiggdlQsIGJpbm9wKElvcF82NEhMdG9WMTI4LCBta2V4cHIoaGkpLCBta2V4cHIobG8pKSApOwogCi0gICAgICAgICBESVAoInh4cGVybWRpIHYlZCx2JWQsdiVkLDB4JXhcbiIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIsIChVSW50KURNKTsKKyAgICAgICAgIERJUCgieHhwZXJtZGkgdiVkLHYlZCx2JWQsMHgleFxuIiwgWFQsIFhBLCBYQiwgRE0pOwogICAgICAgICAgcHV0VlNSZWcoIFhULCBta2V4cHIoIHZUICkgKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgfQpAQCAtMTU2OTcsNyArMTU4MzgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlub3AoSW9wXzMySEx0bzY0LCBta2V4cHIoYWhpMzIpLCBta2V4cHIoYmhpMzIpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKElvcF8zMkhMdG82NCwgbWtleHByKGFsbzMyKSwgbWtleHByKGJsbzMyKSkpICk7CiAKLSAgICAgICAgIERJUCgieHhtcmclY3cgdiVkLHYlZCx2JWRcbiIsIHR5cGUsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIpOworICAgICAgICAgRElQKCJ4eG1yZyVjdyB2JWQsdiVkLHYlZFxuIiwgdHlwZSwgWFQsIFhBLCBYQik7CiAgICAgICAgICBwdXRWU1JlZyggWFQsIG1rZXhwciggdlQgKSApOwogICAgICAgICAgYnJlYWs7CiAgICAgICB9CkBAIC0xNTcwNiw3ICsxNTg0Nyw3IEBACiAgICAgICAgICBVQ2hhciBYQyA9IGlmaWVsZFJlZ1hDKHRoZUluc3RyKTsKICAgICAgICAgIElSVGVtcCB2QyA9IG5ld1RlbXAoIEl0eV9WMTI4ICk7CiAgICAgICAgICBhc3NpZ24oIHZDLCBnZXRWU1JlZyggWEMgKSApOwotICAgICAgICAgRElQKCJ4eHNlbCB2JWQsdiVkLHYlZCx2JWRcbiIsIChVSW50KVhULCAoVUludClYQSwgKFVJbnQpWEIsIChVSW50KVhDKTsKKyAgICAgICAgIERJUCgieHhzZWwgdiVkLHYlZCx2JWQsdiVkXG4iLCBYVCwgWEEsIFhCLCBYQyk7CiAgICAgICAgICAvKiB2RCA9ICh2QSAmIH52QykgfCAodkIgJiB2QykgKi8KICAgICAgICAgIHB1dFZTUmVnKCBYVCwgYmlub3AoSW9wX09yVjEyOCwKICAgICAgICAgICAgIGJpbm9wKElvcF9BbmRWMTI4LCBta2V4cHIodkEpLCB1bm9wKElvcF9Ob3RWMTI4LCBta2V4cHIodkMpKSksCkBAIC0xNTcxNyw3ICsxNTg1OCw3IEBACiAgICAgICB7CiAgICAgICAgICBVQ2hhciBVSU0gICA9IGlmaWVsZFJlZ0EodGhlSW5zdHIpICYgMzsKICAgICAgICAgIFVDaGFyIHNoX3VpbSA9ICgzIC0gKFVJTSkpICogMzI7Ci0gICAgICAgICBESVAoInh4c3BsdHcgdiVkLHYlZCwlZFxuIiwgKFVJbnQpWFQsIChVSW50KVhCLCBVSU0pOworICAgICAgICAgRElQKCJ4eHNwbHR3IHYlZCx2JWQsJWRcbiIsIFhULCBYQiwgVUlNKTsKICAgICAgICAgIHB1dFZTUmVnKCBYVCwKICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfRHVwMzJ4NCwKICAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKCBJb3BfVjEyOHRvMzIsCkBAIC0xODQ4NSw3ICsxODYyNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyB0aGUgcmVhc29uIGZvciBmYWlsaW5nIHRoZSB0cmFzYWN0aW9uICovCiAgICAgICBVSW50IHRtX2V4YWN0ICAgPSAxOyAgICAvKiBoYXZlIGV4YWN0IGFkZHJlc3MgZm9yIGZhaWx1cmUgKi8KIAotICAgICAgRElQKCJ0YmVnaW4uICVkXG4iLCBSKTsKKyAgICAgIERJUCgidGJlZ2luLiAldVxuIiwgUik7CiAKICAgICAgIC8qIFNldCB0aGUgQ1IwIGZpZWxkIHRvIGluZGljYXRlIHRoZSB0YmVnaW4gZmFpbGVkLiAgVGhlbiBsZXQKICAgICAgICAqIHRoZSBjb2RlIGRvIHRoZSBicmFuY2ggdG8gdGhlIGZhaWx1cmUgcGF0aC4KQEAgLTE4NTE3LDcgKzE4NjU4LDcgQEAKICAgICAgIC8qIFRoZSB0ZW5kLiBpcyBqdXN0IGEgbm9vcC4gIERvIG5vdGhpbmcgKi8KICAgICAgIFVJbnQgQSA9IElGSUVMRCggdGhlSW5zdHIsIDI1LCAxICk7CiAKLSAgICAgIERJUCgidGVuZC4gJWRcbiIsIEEpOworICAgICAgRElQKCJ0ZW5kLiAldVxuIiwgQSk7CiAgICAgICBicmVhazsKICAgIH0KIApAQCAtMTg1MjUsNyArMTg2NjYsNyBAQAogICAgICAgLyogVGhlIHRzci4gaXMganVzdCBhIG5vb3AuICBEbyBub3RoaW5nICovCiAgICAgICBVSW50IEwgPSBJRklFTEQoIHRoZUluc3RyLCAyMSwgMSApOwogCi0gICAgICBESVAoInRzci4gJWRcbiIsIEwpOworICAgICAgRElQKCJ0c3IuICV1XG4iLCBMKTsKICAgICAgIGJyZWFrOwogICAgfQogCkBAIC0xODUzMyw3ICsxODY3NCw3IEBACiAgICAgICAvKiBUaGUgdGNoZWNrLiBpcyBqdXN0IGEgbm9vcC4gIERvIG5vdGhpbmcgKi8KICAgICAgIFVJbnQgQkYgPSBJRklFTEQoIHRoZUluc3RyLCAyNSwgMSApOwogCi0gICAgICBESVAoInRjaGVjay4gJWRcbiIsIEJGKTsKKyAgICAgIERJUCgidGNoZWNrLiAldVxuIiwgQkYpOwogICAgICAgYnJlYWs7CiAgICB9CiAKQEAgLTE4NTQzLDcgKzE4Njg0LDcgQEAKICAgICAgIFVJbnQgUkEgPSBJRklFTEQoIHRoZUluc3RyLCAxNiwgNSApOwogICAgICAgVUludCBSQiA9IElGSUVMRCggdGhlSW5zdHIsIDExLCA1ICk7CiAKLSAgICAgIERJUCgidGFib3J0d2MuICVkLCVkLCVkXG4iLCBUTywgUkEsIFJCKTsKKyAgICAgIERJUCgidGFib3J0d2MuICV1LCV1LCV1XG4iLCBUTywgUkEsIFJCKTsKICAgICAgIGJyZWFrOwogICAgfQogCkBAIC0xODU1Myw3ICsxODY5NCw3IEBACiAgICAgICBVSW50IFJBID0gSUZJRUxEKCB0aGVJbnN0ciwgMTYsIDUgKTsKICAgICAgIFVJbnQgUkIgPSBJRklFTEQoIHRoZUluc3RyLCAxMSwgNSApOwogCi0gICAgICBESVAoInRhYm9ydGRjLiAlZCwlZCwlZFxuIiwgVE8sIFJBLCBSQik7CisgICAgICBESVAoInRhYm9ydGRjLiAldSwldSwldVxuIiwgVE8sIFJBLCBSQik7CiAgICAgICBicmVhazsKICAgIH0KIApAQCAtMTg1NjMsNyArMTg3MDQsNyBAQAogICAgICAgVUludCBSQSA9IElGSUVMRCggdGhlSW5zdHIsIDE2LCA1ICk7CiAgICAgICBVSW50IFNJID0gSUZJRUxEKCB0aGVJbnN0ciwgMTEsIDUgKTsKIAotICAgICAgRElQKCJ0YWJvcnR3Y2kuICVkLCVkLCVkXG4iLCBUTywgUkEsIFNJKTsKKyAgICAgIERJUCgidGFib3J0d2NpLiAldSwldSwldVxuIiwgVE8sIFJBLCBTSSk7CiAgICAgICBicmVhazsKICAgIH0KIApAQCAtMTg1NzMsNyArMTg3MTQsNyBAQAogICAgICAgVUludCBSQSA9IElGSUVMRCggdGhlSW5zdHIsIDE2LCA1ICk7CiAgICAgICBVSW50IFNJID0gSUZJRUxEKCB0aGVJbnN0ciwgMTEsIDUgKTsKIAotICAgICAgRElQKCJ0YWJvcnRkY2kuICVkLCVkLCVkXG4iLCBUTywgUkEsIFNJKTsKKyAgICAgIERJUCgidGFib3J0ZGNpLiAldSwldSwldVxuIiwgVE8sIFJBLCBTSSk7CiAgICAgICBicmVhazsKICAgIH0KIApAQCAtMTg1ODEsNyArMTg3MjIsNyBAQAogICAgICAgLyogVGhlIHRhYm9ydC4gaXMganVzdCBhIG5vb3AuICBEbyBub3RoaW5nICovCiAgICAgICBVSW50IFJBID0gSUZJRUxEKCB0aGVJbnN0ciwgMTYsIDUgKTsKIAotICAgICAgRElQKCJ0YWJvcnQuICVkXG4iLCBSQSk7CisgICAgICBESVAoInRhYm9ydC4gJXVcbiIsIFJBKTsKICAgICAgIGJyZWFrOwogICAgfQogCkBAIC0xODU4OSw3ICsxODczMCw3IEBACiAgICAgICAvKiBUaGUgdHJlY2xhaW0uIGlzIGp1c3QgYSBub29wLiAgRG8gbm90aGluZyAqLwogICAgICAgVUludCBSQSA9IElGSUVMRCggdGhlSW5zdHIsIDE2LCA1ICk7CiAKLSAgICAgIERJUCgidHJlY2xhaW0uICVkXG4iLCBSQSk7CisgICAgICBESVAoInRyZWNsYWltLiAldVxuIiwgUkEpOwogICAgICAgYnJlYWs7CiAgICB9CiAKQEAgLTE5MTcyLDYgKzE5MzEzLDcgQEAKICAgICAgICAgIGNhc2UgMHgzMjI6IC8vIFBPV0VSIDcgaW5zdCwgZGNmZml4IC0gREZQIGNvbnZlcnQgZnJvbSBmaXhlZAogICAgICAgICAgICAgaWYgKCFhbGxvd19WWCkKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWx1cmU7CisgICAgICAgICAgICBpZiAoIWFsbG93X0RGUCkgZ290byBkZWNvZGVfbm9ERlA7CiAgICAgICAgICAgICBpZiAoZGlzX2RmcF9mbXRfY29udiggdGhlSW5zdHIgKSkKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3M7CiAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsdXJlOwpAQCAtMTk1OTgsNiArMTk3NDAsNyBAQAogICAgICAgICAgICAgZ290byBkZWNvZGVfc3VjY2VzczsKICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWx1cmU7CiAgICAgICBjYXNlIDB4QTI6IC8vIGR0c3RleHEgLSBERlAgVGVzdCBleHBvbmVudCBRdWFkCisgICAgICAgICBpZiAoIWFsbG93X0RGUCkgZ290byBkZWNvZGVfbm9ERlA7CiAgICAgICAgICBpZiAoZGlzX2RmcF9leHBvbmVudF90ZXN0KCB0aGVJbnN0ciApICkKICAgICAgICAgICAgIGdvdG8gZGVjb2RlX3N1Y2Nlc3M7CiAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsdXJlOwpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfczM5MF9kZWZzLmggYi9WRVgvcHJpdi9ndWVzdF9zMzkwX2RlZnMuaAppbmRleCA3NThjZjkxLi5jZmU1ZjJmIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF9zMzkwX2RlZnMuaAorKysgYi9WRVgvcHJpdi9ndWVzdF9zMzkwX2RlZnMuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxMworICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTUKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2d1ZXN0X3MzOTBfaGVscGVycy5jIGIvVkVYL3ByaXYvZ3Vlc3RfczM5MF9oZWxwZXJzLmMKaW5kZXggNjIyY2RjYy4uZjQ4NGY4ZSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfczM5MF9oZWxwZXJzLmMKKysrIGIvVkVYL3ByaXYvZ3Vlc3RfczM5MF9oZWxwZXJzLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTMKKyAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDE1CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0yMTUxLDYgKzIxNTEsOCBAQAogICAgICAgICAgICAgcmV0dXJuIG1rVTMyKDApOwogICAgICAgICAgfQogCisgICAgICAgICBpZiAoY29uZCA9PSAxNSkgcmV0dXJuIG1rVTMyKDEpOworCiAgICAgICAgICBpZiAoY29uZCA9PSA4KSB7CiAgICAgICAgICAgICByZXR1cm4gdW5vcChJb3BfMVV0bzMyLCBiaW5vcChJb3BfQ21wRVE2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKElvcF9BbmQ2NCwgY2NfZGVwMSwgY2NfZGVwMiksCkBAIC0yMjI3LDYgKzIyMjksMTcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbm9wKElvcF9BbmQ2NCwgY2NfZGVwMSwgbWtVNjQobXNiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta1U2NCgwKSkpOwogICAgICAgICAgfQorICAgICAgICAgaWYgKGNvbmQgPT0gMTMpIHsgLyogY2MgPT0gMCB8fCBjYyA9PSAxIHx8IGNjID09IDMgKi8KKyAgICAgICAgICAgIElSRXhwciAqYzAxLCAqYzM7CisKKyAgICAgICAgICAgIGMwMSA9IGJpbm9wKElvcF9DbXBFUTY0LCBiaW5vcChJb3BfQW5kNjQsIGNjX2RlcDEsIG1rVTY0KG1zYikpLAorICAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQoMCkpOworICAgICAgICAgICAgYzMgPSBiaW5vcChJb3BfQ21wRVE2NCwgYmlub3AoSW9wX0FuZDY0LCBjY19kZXAxLCBjY19kZXAyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbWtVNjQobWFzazE2KSk7CisgICAgICAgICAgICByZXR1cm4gYmlub3AoSW9wX09yMzIsIHVub3AoSW9wXzFVdG8zMiwgYzAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1bm9wKElvcF8xVXRvMzIsIGMzKSk7CisgICAgICAgICB9CisgICAgICAgICAvLyBmaXhzMzkwOiBoYW5kbGUgY29uZCA9IDUsNiw5LDEwICh0aGUgbWlzc2luZyBjYXNlcykKICAgICAgICAgIC8vIHZleF9wcmludGYoIlRVTSBtYXNrID0gMHglbGx4XG4iLCBtYXNrMTYpOwogICAgICAgICAgZ290byBtaXNzZWQ7CiAgICAgICB9CkBAIC0yMzY1LDcgKzIzNzgsNyBAQAogICAgICAgZ290byBtaXNzZWQ7CiAgICB9CiAKLSAgIC8qIC0tLS0tLS0tLSBTcGVjaWFsaXNpbmcgInMzOTBfY2FsY3VsYXRlX2NvbmQiIC0tLS0tLS0tLSAqLworICAgLyogLS0tLS0tLS0tIFNwZWNpYWxpc2luZyAiczM5MF9jYWxjdWxhdGVfY2MiIC0tLS0tLS0tLSAqLwogCiAgICBpZiAodmV4X3N0cmVxKGZ1bmN0aW9uX25hbWUsICJzMzkwX2NhbGN1bGF0ZV9jYyIpKSB7CiAgICAgICBJUkV4cHIgKmNjX29wX2V4cHIsICpjY19kZXAxOwpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfczM5MF90b0lSLmMgYi9WRVgvcHJpdi9ndWVzdF9zMzkwX3RvSVIuYwppbmRleCAwMjNjYjdkLi4xMTZhNjA2IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF9zMzkwX3RvSVIuYworKysgYi9WRVgvcHJpdi9ndWVzdF9zMzkwX3RvSVIuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxMworICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTUKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTEyMzg0LDYgKzEyMzg0LDQ1IEBACiB9CiAKIHN0YXRpYyBjb25zdCBIQ2hhciAqCitzMzkwX2lyZ2VuX0ZJRUJSQShVQ2hhciBtMywgVUNoYXIgbTQgX19hdHRyaWJ1dGVfXygodW51c2VkKSksCisgICAgICAgICAgICAgICAgICBVQ2hhciByMSwgVUNoYXIgcjIpCit7CisgICBJUlRlbXAgcmVzdWx0ID0gbmV3VGVtcChJdHlfRjMyKTsKKworICAgYXNzaWduKHJlc3VsdCwgYmlub3AoSW9wX1JvdW5kRjMydG9JbnQsIG1rZXhwcihlbmNvZGVfYmZwX3JvdW5kaW5nX21vZGUobTMpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldF9mcHJfdzAocjIpKSk7CisgICBwdXRfZnByX3cwKHIxLCBta2V4cHIocmVzdWx0KSk7CisKKyAgIHJldHVybiAiZmllYnJhIjsKK30KKworc3RhdGljIGNvbnN0IEhDaGFyICoKK3MzOTBfaXJnZW5fRklEQlJBKFVDaGFyIG0zLCBVQ2hhciBtNCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwKKyAgICAgICAgICAgICAgICAgIFVDaGFyIHIxLCBVQ2hhciByMikKK3sKKyAgIElSVGVtcCByZXN1bHQgPSBuZXdUZW1wKEl0eV9GNjQpOworCisgICBhc3NpZ24ocmVzdWx0LCBiaW5vcChJb3BfUm91bmRGNjR0b0ludCwgbWtleHByKGVuY29kZV9iZnBfcm91bmRpbmdfbW9kZShtMykpLAorICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2Zwcl9kdzAocjIpKSk7CisgICBwdXRfZnByX2R3MChyMSwgbWtleHByKHJlc3VsdCkpOworCisgICByZXR1cm4gImZpZGJyYSI7Cit9CisKK3N0YXRpYyBjb25zdCBIQ2hhciAqCitzMzkwX2lyZ2VuX0ZJWEJSQShVQ2hhciBtMywgVUNoYXIgbTQgX19hdHRyaWJ1dGVfXygodW51c2VkKSksCisgICAgICAgICAgICAgICAgICBVQ2hhciByMSwgVUNoYXIgcjIpCit7CisgICBJUlRlbXAgcmVzdWx0ID0gbmV3VGVtcChJdHlfRjEyOCk7CisKKyAgIGFzc2lnbihyZXN1bHQsIGJpbm9wKElvcF9Sb3VuZEYxMjh0b0ludCwgbWtleHByKGVuY29kZV9iZnBfcm91bmRpbmdfbW9kZShtMykpLAorICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2Zwcl9wYWlyKHIyKSkpOworICAgcHV0X2Zwcl9wYWlyKHIxLCBta2V4cHIocmVzdWx0KSk7CisKKyAgIHJldHVybiAiZml4YnJhIjsKK30KKworc3RhdGljIGNvbnN0IEhDaGFyICoKIHMzOTBfaXJnZW5fTE5FQlIoVUNoYXIgcjEsIFVDaGFyIHIyKQogewogICAgSVJUZW1wIHJlc3VsdCA9IG5ld1RlbXAoSXR5X0YzMik7CkBAIC0xNDUwNSw3ICsxNDU0NCw5IEBACiAgICBjYXNlIDB4YjM0NjogczM5MF9mb3JtYXRfUlJGX1VVRkYoczM5MF9pcmdlbl9MRVhCUiwgb3ZsLmZtdC5SUkYyLm0zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92bC5mbXQuUlJGMi5tNCwgb3ZsLmZtdC5SUkYyLnIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92bC5mbXQuUlJGMi5yMik7ICBnb3RvIG9rOwotICAgY2FzZSAweGIzNDc6IC8qIEZJWEJSICovIGdvdG8gdW5pbXBsZW1lbnRlZDsKKyAgIGNhc2UgMHhiMzQ3OiBzMzkwX2Zvcm1hdF9SUkZfVVVGRihzMzkwX2lyZ2VuX0ZJWEJSQSwgb3ZsLmZtdC5SUkYyLm0zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92bC5mbXQuUlJGMi5tNCwgb3ZsLmZtdC5SUkYyLnIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92bC5mbXQuUlJGMi5yMik7ICBnb3RvIG9rOwogICAgY2FzZSAweGIzNDg6IC8qIEtYQlIgKi8gZ290byB1bmltcGxlbWVudGVkOwogICAgY2FzZSAweGIzNDk6IHMzOTBfZm9ybWF0X1JSRV9GRihzMzkwX2lyZ2VuX0NYQlIsIG92bC5mbXQuUlJFLnIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmwuZm10LlJSRS5yMik7ICBnb3RvIG9rOwpAQCAtMTQ1MjAsMTEgKzE0NTYxLDE1IEBACiAgICBjYXNlIDB4YjM1MDogLyogVEJFRFIgKi8gZ290byB1bmltcGxlbWVudGVkOwogICAgY2FzZSAweGIzNTE6IC8qIFRCRFIgKi8gZ290byB1bmltcGxlbWVudGVkOwogICAgY2FzZSAweGIzNTM6IC8qIERJRUJSICovIGdvdG8gdW5pbXBsZW1lbnRlZDsKLSAgIGNhc2UgMHhiMzU3OiAvKiBGSUVCUiAqLyBnb3RvIHVuaW1wbGVtZW50ZWQ7CisgICBjYXNlIDB4YjM1NzogczM5MF9mb3JtYXRfUlJGX1VVRkYoczM5MF9pcmdlbl9GSUVCUkEsIG92bC5mbXQuUlJGMi5tMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmwuZm10LlJSRjIubTQsIG92bC5mbXQuUlJGMi5yMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmwuZm10LlJSRjIucjIpOyAgZ290byBvazsKICAgIGNhc2UgMHhiMzU4OiAvKiBUSERFUiAqLyBnb3RvIHVuaW1wbGVtZW50ZWQ7CiAgICBjYXNlIDB4YjM1OTogLyogVEhEUiAqLyBnb3RvIHVuaW1wbGVtZW50ZWQ7CiAgICBjYXNlIDB4YjM1YjogLyogRElEQlIgKi8gZ290byB1bmltcGxlbWVudGVkOwotICAgY2FzZSAweGIzNWY6IC8qIEZJREJSICovIGdvdG8gdW5pbXBsZW1lbnRlZDsKKyAgIGNhc2UgMHhiMzVmOiBzMzkwX2Zvcm1hdF9SUkZfVVVGRihzMzkwX2lyZ2VuX0ZJREJSQSwgb3ZsLmZtdC5SUkYyLm0zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92bC5mbXQuUlJGMi5tNCwgb3ZsLmZtdC5SUkYyLnIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92bC5mbXQuUlJGMi5yMik7ICBnb3RvIG9rOwogICAgY2FzZSAweGIzNjA6IC8qIExQWFIgKi8gZ290byB1bmltcGxlbWVudGVkOwogICAgY2FzZSAweGIzNjE6IC8qIExOWFIgKi8gZ290byB1bmltcGxlbWVudGVkOwogICAgY2FzZSAweGIzNjI6IC8qIExUWFIgKi8gZ290byB1bmltcGxlbWVudGVkOwpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfdGlsZWd4X2RlZnMuaCBiL1ZFWC9wcml2L2d1ZXN0X3RpbGVneF9kZWZzLmgKaW5kZXggZWZhNzhjYS4uOTkxMDg5MCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfdGlsZWd4X2RlZnMuaAorKysgYi9WRVgvcHJpdi9ndWVzdF90aWxlZ3hfZGVmcy5oCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIFRpbGVyYSBDb3JwLgorICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgVGlsZXJhIENvcnAuCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ndWVzdF90aWxlZ3hfaGVscGVycy5jIGIvVkVYL3ByaXYvZ3Vlc3RfdGlsZWd4X2hlbHBlcnMuYwppbmRleCBjZGE1NDk5Li5iMjZjMDZkIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF90aWxlZ3hfaGVscGVycy5jCisrKyBiL1ZFWC9wcml2L2d1ZXN0X3RpbGVneF9oZWxwZXJzLmMKQEAgLTYsNyArNiw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgVGlsZXJhIENvcnAuCisgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFRpbGVyYSBDb3JwLgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTc3OCw3ICs3NzgsNyBAQAogICAgIGJyZWFrOwogICBjYXNlIDI3MToKICAgICB7Ci0gICAgICByZXR1cm4gX19pbnNuX3Yxc2hsaShyZDEsIHJkMik7CisgICAgICByZXR1cm4gX19pbnNuX3Yxc2hsKHJkMSwgcmQyKTsKICAgICB9CiAgICAgYnJlYWs7CiAgIGNhc2UgMjcyOgpAQCAtNzg4LDcgKzc4OCw3IEBACiAgICAgYnJlYWs7CiAgIGNhc2UgMjczOgogICAgIHsKLSAgICAgIHJldHVybiBfX2luc25fdjFzaHJzaShyZDEsIHJkMik7CisgICAgICByZXR1cm4gX19pbnNuX3Yxc2hycyhyZDEsIHJkMik7CiAgICAgfQogICAgIGJyZWFrOwogICBjYXNlIDI3NDoKQEAgLTk4OCw3ICs5ODgsNyBAQAogICAgIGJyZWFrOwogICBjYXNlIDMxMzoKICAgICB7Ci0gICAgICByZXR1cm4gX19pbnNuX3Yyc2hsaShyZDEsIHJkMik7CisgICAgICByZXR1cm4gX19pbnNuX3Yyc2hsKHJkMSwgcmQyKTsKICAgICB9CiAgICAgYnJlYWs7CiAgIGNhc2UgMzE0OgpAQCAtMTAwMyw3ICsxMDAzLDcgQEAKICAgICBicmVhazsKICAgY2FzZSAzMTY6CiAgICAgewotICAgICAgcmV0dXJuIF9faW5zbl92MnNocnNpKHJkMSwgcmQyKTsKKyAgICAgIHJldHVybiBfX2luc25fdjJzaHJzKHJkMSwgcmQyKTsKICAgICB9CiAgICAgYnJlYWs7CiAgIGNhc2UgMzE3OgpAQCAtMTAxMyw3ICsxMDEzLDcgQEAKICAgICBicmVhazsKICAgY2FzZSAzMTg6CiAgICAgewotICAgICAgcmV0dXJuIF9faW5zbl92MnNocnVpKHJkMSwgcmQyKTsKKyAgICAgIHJldHVybiBfX2luc25fdjJzaHJ1KHJkMSwgcmQyKTsKICAgICB9CiAgICAgYnJlYWs7CiAgIGNhc2UgMzE5OgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfdGlsZWd4X3RvSVIuYyBiL1ZFWC9wcml2L2d1ZXN0X3RpbGVneF90b0lSLmMKaW5kZXggNGNlNmY3Yi4uZjEzYzdhZCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfdGlsZWd4X3RvSVIuYworKysgYi9WRVgvcHJpdi9ndWVzdF90aWxlZ3hfdG9JUi5jCkBAIC03LDcgKzcsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAxMC0yMDEzICBUaWxlcmEgQ29ycC4KKyAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgIFRpbGVyYSBDb3JwLgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTE4MCw3ICsxODAsNyBAQAogICBJUlR5cGUgdHkgPSBJdHlfSTY0OwogICBpZighKGlyZWdObyA8IDU2IHx8IGlyZWdObyA9PSA2MyB8fAogICAgICAgIChpcmVnTm8gPj0gNzAgJiYgaXJlZ05vIDw9IDczKSkpIHsKLSAgICB2ZXhfcHJpbnRmKCJpcmVnTm89JWRcbiIsIGlyZWdObyk7CisgICAgdmV4X3ByaW50ZigiaXJlZ05vPSV1XG4iLCBpcmVnTm8pOwogICAgIHZhc3NlcnQoMCk7CiAgIH0KICAgcmV0dXJuIElSRXhwcl9HZXQoaW50ZWdlckd1ZXN0UmVnT2Zmc2V0KGlyZWdObyksIHR5KTsKQEAgLTE5MSw3ICsxOTEsNyBAQAogICBJUlR5cGUgdHkgPSBJdHlfSTY0OwogICBpZighKGFyY2hyZWcgPCA1NiB8fCBhcmNocmVnID09IDYzIHx8IGFyY2hyZWcgPT0gNzAgfHwKICAgICAgICBhcmNocmVnID09IDcyIHx8IGFyY2hyZWcgPT0gNzMpKSB7Ci0gICAgdmV4X3ByaW50ZigiYXJjaHJlZz0lZFxuIiwgYXJjaHJlZyk7CisgICAgdmV4X3ByaW50ZigiYXJjaHJlZz0ldVxuIiwgYXJjaHJlZyk7CiAgICAgdmFzc2VydCgwKTsKICAgfQogICB2YXNzZXJ0KHR5cGVPZklSRXhwcihpcnNiLT50eWVudiwgZSkgPT0gdHkpOwpAQCAtMjU3LDYgKzI1NywyMiBAQAogICAgIHJkX3diX2luZGV4Kys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB9IHdoaWxlKDApCiAKKworLyogRXhwYW5kL3JlcGVhdCBieXRlIF9YIDggdGltZXMgdG8gYSA2NC1iaXQgdmFsdWUgKi8KKyNkZWZpbmUgIFYxRVhQKF9YKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIF9YID0gKCgoKFVDaGFyKShfWCkpIDw8IDgpIHwgKChVQ2hhcikoX1gpKSk7ICAgICAgIFwKKyAgICBfWCA9ICgoKF9YKSA8PCAxNikgfCAoX1gpKTsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKCgoX1gpIDw8IDMyKSB8IChfWCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9KQorCisvKiBFeHBhbmQvcmVwZWF0IGJ5dGUgX1ggNCB0aW1lcyB0byBhIDY0LWJpdCB2YWx1ZSAqLworI2RlZmluZSAgVjJFWFAoX1gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIF9YID0gKCgoKFVDaGFyKShfWCkpIDw8IDE2KSB8ICgoVUNoYXIpKF9YKSkpOyAgXAorICAgICgoKF9YKSA8PCAzMikgfCAoX1gpKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB9KQorCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBEaXNhc3NlbWJsZSBhIHNpbmdsZSBpbnN0cnVjdGlvbiAgICAgICAgICAgICAgICAgICAgIC0tLSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0yMDgyLDkgKzIwOTgsMTIgQEAKICAgICBjYXNlIDIzMjoKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMjMzOgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjM0OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICBvcGRbM10gPSBWMUVYUChvcGRbM10pOworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDIzNToKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMjM2OgpAQCAtMjExMCwxMiArMjEyOSwxOCBAQAogICAgIGNhc2UgMjQxOgogICAgICAgLyogRmFsbC10aHJvdWdoICovCiAgICAgY2FzZSAyNDI6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOworICAgICAgYnJlYWs7CiAgICAgY2FzZSAyNDM6CisgICAgICBvcGRbM10gPSBWMUVYUChvcGRbM10pOworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMjQ0OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjQ1OgorICAgICAgb3BkWzNdID0gVjFFWFAob3BkWzNdKTsKICAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOwogICAgICAgYnJlYWs7CiAgICAgY2FzZSAyNDY6ICAvKiAidjFjbXBuZSIgKi8KQEAgLTIxNTEsMTMgKzIxNzYsMTkgQEAKICAgICBjYXNlIDI1ODoKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMjU5OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjYwOgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICBvcGRbM10gPSBWMUVYUChvcGRbM10pOworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDI2MToKLSAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDI2MjoKLSAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLworICAgICAgb3BkWzNdID0gVjFFWFAob3BkWzNdKTsKKyAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOworICAgICAgYnJlYWs7CiAgICAgY2FzZSAyNjM6CiAgICAgICAvKiBGYWxsLXRocm91Z2ggKi8KICAgICBjYXNlIDI2NDoKQEAgLTIxNzMsMTMgKzIyMDQsMTkgQEAKICAgICBjYXNlIDI2OToKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMjcwOgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjcxOgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICBvcGRbM10gPSBWMUVYUChvcGRbM10pOworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDI3MjoKLSAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDI3MzoKLSAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLworICAgICAgb3BkWzNdID0gVjFFWFAob3BkWzNdKTsKKyAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOworICAgICAgYnJlYWs7CiAgICAgY2FzZSAyNzQ6CiAgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKICAgICAgIGJyZWFrOwpAQCAtMjE5NSw5ICsyMjMyLDEyIEBACiAgICAgY2FzZSAyNzc6CiAgICAgICAvKiBGYWxsLXRocm91Z2ggKi8KICAgICBjYXNlIDI3ODoKLSAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDI3OToKLSAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLworICAgICAgb3BkWzNdID0gVjJFWFAob3BkWzNdKTsKKyAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOworICAgICAgYnJlYWs7CiAgICAgY2FzZSAyODA6CiAgICAgICAvKiBGYWxsLXRocm91Z2ggKi8KICAgICBjYXNlIDI4MToKQEAgLTIyMDUsMjEgKzIyNDUsMzAgQEAKICAgICBjYXNlIDI4MjoKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMjgzOgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjg0OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICBvcGRbM10gPSBWMkVYUChvcGRbM10pOworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDI4NToKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMjg2OgogICAgICAgLyogRmFsbC10aHJvdWdoICovCiAgICAgY2FzZSAyODc6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOworICAgICAgYnJlYWs7CiAgICAgY2FzZSAyODg6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIG9wZFszXSA9IFYyRVhQKG9wZFszXSk7CisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjg5OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjkwOgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICBvcGRbM10gPSBWMkVYUChvcGRbM10pOworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDI5MToKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMjkyOgpAQCAtMjIzMSwxMyArMjI4MCwxOSBAQAogICAgIGNhc2UgMjk1OgogICAgICAgLyogRmFsbC10aHJvdWdoICovCiAgICAgY2FzZSAyOTY6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOworICAgICAgYnJlYWs7CiAgICAgY2FzZSAyOTc6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIG9wZFszXSA9IFYyRVhQKG9wZFszXSk7CisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjk4OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMjk5OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICBvcGRbM10gPSBWMkVYUChvcGRbM10pOworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDMwMDoKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMzAxOgpAQCAtMjI2MywxOSArMjMxOCwyOCBAQAogICAgIGNhc2UgMzExOgogICAgICAgLyogRmFsbC10aHJvdWdoICovCiAgICAgY2FzZSAzMTI6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOworICAgICAgYnJlYWs7CiAgICAgY2FzZSAzMTM6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIG9wZFszXSA9IFYyRVhQKG9wZFszXSk7CisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMzE0OgogICAgICAgLyogRmFsbC10aHJvdWdoICovCiAgICAgY2FzZSAzMTU6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIHVzZV9kaXJ0eV9oZWxwZXIgPSAxOworICAgICAgYnJlYWs7CiAgICAgY2FzZSAzMTY6Ci0gICAgICAvKiBGYWxsLXRocm91Z2ggKi8KKyAgICAgIG9wZFszXSA9IFYyRVhQKG9wZFszXSk7CisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMzE3OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICB1c2VfZGlydHlfaGVscGVyID0gMTsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgMzE4OgotICAgICAgLyogRmFsbC10aHJvdWdoICovCisgICAgICBvcGRbM10gPSBWMkVYUChvcGRbM10pOworICAgICAgdXNlX2RpcnR5X2hlbHBlciA9IDE7CisgICAgICBicmVhazsKICAgICBjYXNlIDMxOToKICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGNhc2UgMzIwOgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfeDg2X2RlZnMuaCBiL1ZFWC9wcml2L2d1ZXN0X3g4Nl9kZWZzLmgKaW5kZXggNDEyZWU5NC4uNjVmNGEwOCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfeDg2X2RlZnMuaAorKysgYi9WRVgvcHJpdi9ndWVzdF94ODZfZGVmcy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTQ4LDYgKzE0OCw3IEBACiBleHRlcm4gdm9pZCAgeDg2Z19kaXJ0eWhlbHBlcl9DUFVJRF9tbXhleHQgKCBWZXhHdWVzdFg4NlN0YXRlKiApOwogZXh0ZXJuIHZvaWQgIHg4NmdfZGlydHloZWxwZXJfQ1BVSURfc3NlMSAoIFZleEd1ZXN0WDg2U3RhdGUqICk7CiBleHRlcm4gdm9pZCAgeDg2Z19kaXJ0eWhlbHBlcl9DUFVJRF9zc2UyICggVmV4R3Vlc3RYODZTdGF0ZSogKTsKK2V4dGVybiB2b2lkICB4ODZnX2RpcnR5aGVscGVyX0NQVUlEX3NzZTMgKCBWZXhHdWVzdFg4NlN0YXRlKiApOwogCiBleHRlcm4gdm9pZCAgeDg2Z19kaXJ0eWhlbHBlcl9GSU5JVCAoIFZleEd1ZXN0WDg2U3RhdGUqICk7CiAKQEAgLTE5Myw2ICsxOTQsMTUgQEAKICNkZWZpbmUgWDg2R19DQ19NQVNLX0MgICAgKDEgPDwgWDg2R19DQ19TSElGVF9DKQogI2RlZmluZSBYODZHX0NDX01BU0tfUCAgICAoMSA8PCBYODZHX0NDX1NISUZUX1ApCiAKKy8qIGFkZGl0aW9uYWwgZWZsYWdzIG1hc2tzICovCisjZGVmaW5lIFg4NkdfQ0NfU0hJRlRfSUQgIDIxCisjZGVmaW5lIFg4NkdfQ0NfU0hJRlRfQUMgIDE4CisjZGVmaW5lIFg4NkdfQ0NfU0hJRlRfRCAgIDEwCisKKyNkZWZpbmUgWDg2R19DQ19NQVNLX0lEICAgKDEgPDwgWDg2R19DQ19TSElGVF9JRCkKKyNkZWZpbmUgWDg2R19DQ19NQVNLX0FDICAgKDEgPDwgWDg2R19DQ19TSElGVF9BQykKKyNkZWZpbmUgWDg2R19DQ19NQVNLX0QgICAgKDEgPDwgWDg2R19DQ19TSElGVF9EKQorCiAvKiBGUFUgZmxhZyBtYXNrcyAqLwogI2RlZmluZSBYODZHX0ZDX1NISUZUX0MzICAgMTQKICNkZWZpbmUgWDg2R19GQ19TSElGVF9DMiAgIDEwCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ndWVzdF94ODZfaGVscGVycy5jIGIvVkVYL3ByaXYvZ3Vlc3RfeDg2X2hlbHBlcnMuYwppbmRleCBiNDg3NWVlLi5iYzVhMjllIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ndWVzdF94ODZfaGVscGVycy5jCisrKyBiL1ZFWC9wcml2L2d1ZXN0X3g4Nl9oZWxwZXJzLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC03MjQsMTcgKzcyNCw1NCBAQAogICAgVUludCBkZmxhZyA9IHZleF9zdGF0ZS0+Z3Vlc3RfREZMQUc7CiAgICB2YXNzZXJ0KGRmbGFnID09IDEgfHwgZGZsYWcgPT0gMHhGRkZGRkZGRik7CiAgICBpZiAoZGZsYWcgPT0gMHhGRkZGRkZGRikKLSAgICAgIGVmbGFncyB8PSAoMTw8MTApOworICAgICAgZWZsYWdzIHw9IFg4NkdfQ0NfTUFTS19EOwogICAgaWYgKHZleF9zdGF0ZS0+Z3Vlc3RfSURGTEFHID09IDEpCi0gICAgICBlZmxhZ3MgfD0gKDE8PDIxKTsKKyAgICAgIGVmbGFncyB8PSBYODZHX0NDX01BU0tfSUQ7CiAgICBpZiAodmV4X3N0YXRlLT5ndWVzdF9BQ0ZMQUcgPT0gMSkKLSAgICAgIGVmbGFncyB8PSAoMTw8MTgpOworICAgICAgZWZsYWdzIHw9IFg4NkdfQ0NfTUFTS19BQzsKIAkJCQkJICAgICAKICAgIHJldHVybiBlZmxhZ3M7CiB9CiAKIC8qIFZJU0lCTEUgVE8gTElCVkVYIENMSUVOVCAqLwogdm9pZAorTGliVkVYX0d1ZXN0WDg2X3B1dF9lZmxhZ3MgKCBVSW50IGVmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1ZleEd1ZXN0WDg2U3RhdGUqIHZleF9zdGF0ZSApCit7CisgICAvKiBEIGZsYWcgKi8KKyAgIGlmIChlZmxhZ3MgJiBYODZHX0NDX01BU0tfRCkgeworICAgICAgdmV4X3N0YXRlLT5ndWVzdF9ERkxBRyA9IDB4RkZGRkZGRkY7CisgICAgICBlZmxhZ3MgJj0gflg4NkdfQ0NfTUFTS19EOworICAgfQorICAgZWxzZQorICAgICAgdmV4X3N0YXRlLT5ndWVzdF9ERkxBRyA9IDE7CisKKyAgIC8qIElEIGZsYWcgKi8KKyAgIGlmIChlZmxhZ3MgJiBYODZHX0NDX01BU0tfSUQpIHsKKyAgICAgIHZleF9zdGF0ZS0+Z3Vlc3RfSURGTEFHID0gMTsKKyAgICAgIGVmbGFncyAmPSB+WDg2R19DQ19NQVNLX0lEOworICAgfQorICAgZWxzZQorICAgICAgdmV4X3N0YXRlLT5ndWVzdF9JREZMQUcgPSAwOworCisgICAvKiBBQyBmbGFnICovCisgICBpZiAoZWZsYWdzICYgWDg2R19DQ19NQVNLX0FDKSB7CisgICAgICB2ZXhfc3RhdGUtPmd1ZXN0X0FDRkxBRyA9IDE7CisgICAgICBlZmxhZ3MgJj0gflg4NkdfQ0NfTUFTS19BQzsKKyAgIH0KKyAgIGVsc2UKKyAgICAgIHZleF9zdGF0ZS0+Z3Vlc3RfQUNGTEFHID0gMDsKKworICAgVUludCBjY19tYXNrID0gWDg2R19DQ19NQVNLX08gfCBYODZHX0NDX01BU0tfUyB8IFg4NkdfQ0NfTUFTS19aIHwKKyAgICAgICAgICAgICAgICAgIFg4NkdfQ0NfTUFTS19BIHwgWDg2R19DQ19NQVNLX0MgfCBYODZHX0NDX01BU0tfUDsKKyAgIHZleF9zdGF0ZS0+Z3Vlc3RfQ0NfT1AgICA9IFg4NkdfQ0NfT1BfQ09QWTsKKyAgIHZleF9zdGF0ZS0+Z3Vlc3RfQ0NfREVQMSA9IGVmbGFncyAmIGNjX21hc2s7CisgICB2ZXhfc3RhdGUtPmd1ZXN0X0NDX0RFUDIgPSAwOworICAgdmV4X3N0YXRlLT5ndWVzdF9DQ19OREVQID0gMDsKK30KKworLyogVklTSUJMRSBUTyBMSUJWRVggQ0xJRU5UICovCit2b2lkCiBMaWJWRVhfR3Vlc3RYODZfcHV0X2VmbGFnX2MgKCBVSW50IG5ld19jYXJyeV9mbGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1ZleEd1ZXN0WDg2U3RhdGUqIHZleF9zdGF0ZSApCiB7CkBAIC0xODAwLDYgKzE4MzcsNyBAQAogICAgLyogQ29kZSB0aGF0IHNlZW1zIHRvIHRyaWdnZXIgdGhlIHByb2JsZW06CiAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTQ7IGkrKykgdG1wLmVudltpXSA9IDA7ICovCiAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB0bXAuZW52W2krMF0gPSAwOworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiIgOjo6ICJtZW1vcnkiKTsKICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHRtcC5lbnZbaSs3XSA9IDA7CiAgICAKICAgIGZvciAoaSA9IDA7IGkgPCA4MDsgaSsrKSB0bXAucmVnW2ldID0gMDsKQEAgLTE4MzUsNyArMTg3Myw3IEBACiAKICAgICAgd2FyblhNTSA9IChWZXhFbU5vdGUpKHc2NCA+PiAzMik7CiAKLSAgICAgZ3N0LT5ndWVzdF9TU0VST1VORCA9IChVSW50KXc2NDsKKyAgICAgZ3N0LT5ndWVzdF9TU0VST1VORCA9IHc2NCAmIDB4RkZGRkZGRkY7CiAgICB9CiAKICAgIC8qIFByZWZlciBhbiBYODcgZW13YXJuIG92ZXIgYW4gWE1NIG9uZSwgaWYgYm90aCBleGlzdC4gKi8KQEAgLTE4ODAsNiArMTkxOCw0MiBAQAogICAgcmV0dXJuIGRvX3B1dF94ODcoIEZhbHNlLypkb24ndCBtb3ZlIHJlZ3MqLywgKFVDaGFyKilhZGRyLCBnc3QpOwogfQogCisvKiBWSVNJQkxFIFRPIExJQlZFWCBDTElFTlQgKi8KKy8qIERvIHg4NyBzYXZlIGZyb20gdGhlIHN1cHBsaWVkIFZleEd1ZXN0WDg2U3RhdGUgc3RydWN0dXJlIGFuZCBzdG9yZSB0aGUKKyAgIHJlc3VsdCBhdCB0aGUgZ2l2ZW4gYWRkcmVzcyB3aGljaCByZXByZXNlbnRzIGEgYnVmZmVyIG9mIGF0IGxlYXN0IDEwOAorICAgYnl0ZXMuICovCit2b2lkIExpYlZFWF9HdWVzdFg4Nl9nZXRfeDg3ICggLypJTiovVmV4R3Vlc3RYODZTdGF0ZSogdmV4X3N0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qT1VUKi9VQ2hhciogeDg3X3N0YXRlICkKK3sKKyAgIGRvX2dldF94ODcgKCB2ZXhfc3RhdGUsIHg4N19zdGF0ZSApOworfQorCisvKiBWSVNJQkxFIFRPIExJQlZFWCBDTElFTlQgKi8KKy8qIERvIHg4NyByZXN0b3JlIGZyb20gdGhlIHN1cHBsaWVkIGFkZHJlc3MgYW5kIHN0b3JlIHJlYWQgdmFsdWVzIHRvIHRoZSBnaXZlbgorICAgVmV4R3Vlc3RYODZTdGF0ZSBzdHJ1Y3R1cmUuICovCitWZXhFbU5vdGUgTGliVkVYX0d1ZXN0WDg2X3B1dF94ODcgKCAvKklOKi9VQ2hhciogeDg3X3N0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1ZleEd1ZXN0WDg2U3RhdGUqIHZleF9zdGF0ZSApCit7CisgICByZXR1cm4gZG9fcHV0X3g4NyAoIFRydWUvKm1vdmVSZWdzKi8sIHg4N19zdGF0ZSwgdmV4X3N0YXRlICk7Cit9CisKKy8qIFZJU0lCTEUgVE8gTElCVkVYIENMSUVOVCAqLworLyogUmV0dXJuIG14Y3NyIGZyb20gdGhlIHN1cHBsaWVkIFZleEd1ZXN0WDg2U3RhdGUgc3RydWN0dXJlLiAqLworVUludCBMaWJWRVhfR3Vlc3RYODZfZ2V0X214Y3NyICggLypJTiovVmV4R3Vlc3RYODZTdGF0ZSogdmV4X3N0YXRlICkKK3sKKyAgIHJldHVybiB4ODZnX2NyZWF0ZV9teGNzciAoIHZleF9zdGF0ZS0+Z3Vlc3RfU1NFUk9VTkQgKTsKK30KKworLyogVklTSUJMRSBUTyBMSUJWRVggQ0xJRU5UICovCisvKiBNb2RpZnkgdGhlIGdpdmVuIFZleEd1ZXN0WDg2U3RhdGUgc3RydWN0dXJlIGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG14Y3NyCisgICB2YWx1ZS4gKi8KK1ZleEVtTm90ZSBMaWJWRVhfR3Vlc3RYODZfcHV0X214Y3NyICggLypJTiovVUludCBteGNzciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1ZleEd1ZXN0WDg2U3RhdGUqIHZleF9zdGF0ZSkKK3sKKyAgIFVMb25nIHc2NCA9IHg4NmdfY2hlY2tfbGRteGNzciggbXhjc3IgKTsKKyAgIHZleF9zdGF0ZS0+Z3Vlc3RfU1NFUk9VTkQgPSB3NjQgJiAweEZGRkZGRkZGOworICAgcmV0dXJuIChWZXhFbU5vdGUpKHc2NCA+PiAzMik7Cit9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIE1pc2MgaW50ZWdlciBoZWxwZXJzLCBpbmNsdWRpbmcgcm90YXRlcyBhbmQgQ1BVSUQuICAgICAgLS0tKi8KQEAgLTIyOTcsNiArMjM3MSw0NiBAQAogICAgfQogfQogCisvKiBDbGFpbSB0byBiZSB0aGUgZm9sbG93aW5nIFNTRTItY2FwYWJsZSBDUFU6CisgICB2ZW5kb3JfaWQgICAgOiBHZW51aW5lSW50ZWwKKyAgIGNwdSBmYW1pbHkgICA6IDE1CisgICBtb2RlbCAgICAgICAgOiAyCisgICBtb2RlbCBuYW1lICAgOiBJbnRlbChSKSBQZW50aXVtKFIpIDQgQ1BVIDMuMDBHSHoKKyAgIHN0ZXBwaW5nICAgICA6IDkKKyAgIG1pY3JvY29kZSAgICA6IDB4MTcKKyAgIGNwdSBNSHogICAgICA6IDI5OTIuNTc3CisgICBjYWNoZSBzaXplICAgOiA1MTIgS0IKKyAgIGZsYWdzICAgICAgICA6IGZwdSB2bWUgZGUgcHNlIHRzYyBtc3IgcGFlIG1jZSBjeDggYXBpYyBzZXAgbXRyciBwZ2UgbWNhIGNtb3YKKyAgICAgICAgICAgICAgICAgIHBhdCBwc2UzNiBjbGZsdXNoIGR0cyBhY3BpIG1teCBmeHNyIHNzZSBzc2UyIHNzIGh0IHRtIHBiZQorICAgICAgICAgICAgICAgICAgIHBlYnMgYnRzIGNpZCB4dHByCisgICBjbGZsdXNoIHNpemUgOiA2NAorICAgY2FjaGVfYWxpZ25tZW50IDogMTI4CisgICBhZGRyZXNzIHNpemVzIDogMzYgYml0cyBwaHlzaWNhbCwgMzIgYml0cyB2aXJ0dWFsCisqLwordm9pZCB4ODZnX2RpcnR5aGVscGVyX0NQVUlEX3NzZTIgKCBWZXhHdWVzdFg4NlN0YXRlKiBzdCApCit7CisgICBzd2l0Y2ggKHN0LT5ndWVzdF9FQVgpIHsKKyAgICAgIGNhc2UgMDogCisgICAgICAgICBzdC0+Z3Vlc3RfRUFYID0gMHgwMDAwMDAwMjsKKyAgICAgICAgIHN0LT5ndWVzdF9FQlggPSAweDc1NmU2NTQ3OworICAgICAgICAgc3QtPmd1ZXN0X0VDWCA9IDB4NmM2NTc0NmU7CisgICAgICAgICBzdC0+Z3Vlc3RfRURYID0gMHg0OTY1NmU2OTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAxOiAKKyAgICAgICAgIHN0LT5ndWVzdF9FQVggPSAweDAwMDAwZjI5OworICAgICAgICAgc3QtPmd1ZXN0X0VCWCA9IDB4MDEwMjA4MDk7CisgICAgICAgICBzdC0+Z3Vlc3RfRUNYID0gMHgwMDAwNDQwMDsKKyAgICAgICAgIHN0LT5ndWVzdF9FRFggPSAweGJmZWJmYmZmOworICAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICAgc3QtPmd1ZXN0X0VBWCA9IDB4MDMwMjAxMDE7CisgICAgICAgICBzdC0+Z3Vlc3RfRUJYID0gMHgwMDAwMDAwMDsKKyAgICAgICAgIHN0LT5ndWVzdF9FQ1ggPSAweDAwMDAwMDAwOworICAgICAgICAgc3QtPmd1ZXN0X0VEWCA9IDB4MGMwNDA4ODM7CisgICAgICAgICBicmVhazsKKyAgIH0KK30KKwogLyogQ2xhaW0gdG8gYmUgdGhlIGZvbGxvd2luZyBTU1NFMy1jYXBhYmxlIENQVSAoMiB4IC4uLik6CiAgICB2ZW5kb3JfaWQgICAgICAgOiBHZW51aW5lSW50ZWwKICAgIGNwdSBmYW1pbHkgICAgICA6IDYKQEAgLTIzMjQsNyArMjQzOCw3IEBACiAgICBhZGRyZXNzIHNpemVzICAgOiAzNiBiaXRzIHBoeXNpY2FsLCA0OCBiaXRzIHZpcnR1YWwKICAgIHBvd2VyIG1hbmFnZW1lbnQ6CiAqLwotdm9pZCB4ODZnX2RpcnR5aGVscGVyX0NQVUlEX3NzZTIgKCBWZXhHdWVzdFg4NlN0YXRlKiBzdCApCit2b2lkIHg4NmdfZGlydHloZWxwZXJfQ1BVSURfc3NlMyAoIFZleEd1ZXN0WDg2U3RhdGUqIHN0ICkKIHsKICMgIGRlZmluZSBTRVRfQUJDRChfYSxfYixfYyxfZCkgICAgICAgICAgICAgICBcCiAgICAgICBkbyB7IHN0LT5ndWVzdF9FQVggPSAoVUludCkoX2EpOyAgICAgICAgXApkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvZ3Vlc3RfeDg2X3RvSVIuYyBiL1ZFWC9wcml2L2d1ZXN0X3g4Nl90b0lSLmMKaW5kZXggZmM0MDJjZS4uYzI0ZDlhNCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvZ3Vlc3RfeDg2X3RvSVIuYworKysgYi9WRVgvcHJpdi9ndWVzdF94ODZfdG9JUi5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTU0OSw3ICsxNTQ5LDcgQEAKICAgICAgIC8qICEgMTQgKi8gY2FzZSAweDE1OiBjYXNlIDB4MTY6IGNhc2UgMHgxNzoKICAgICAgICAgIHsgVUNoYXIgcm0gPSB0b1VDaGFyKG1vZF9yZWdfcm0gJiA3KTsKICAgICAgICAgICAgVUludCAgZCAgPSBnZXRVRGlzcDMyKGRlbHRhKTsKLSAgICAgICAgICAgRElTKGJ1ZiwgIiVzMHgleCglcykiLCBzb3JiVHh0KHNvcmIpLCAoSW50KWQsIG5hbWVJUmVnKDQscm0pKTsKKyAgICAgICAgICAgRElTKGJ1ZiwgIiVzMHgleCglcykiLCBzb3JiVHh0KHNvcmIpLCBkLCBuYW1lSVJlZyg0LHJtKSk7CiAgICAgICAgICAgICpsZW4gPSA1OwogICAgICAgICAgICByZXR1cm4gZGlzQU1vZGVfY29weTJ0bXAoCiAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWdPdmVycmlkZShzb3JiLApAQCAtMzc4NCw4ICszNzg0LDggQEAKIHZvaWQgZnBfZG9fb3BfU1RfU1QgKCBjb25zdCBIQ2hhciogb3BfdHh0LCBJUk9wIG9wLCBVSW50IHN0X3NyYywgVUludCBzdF9kc3QsCiAgICAgICAgICAgICAgICAgICAgICAgQm9vbCBwb3BfYWZ0ZXIgKQogewotICAgRElQKCJmJXMlcyBzdCglZCksIHN0KCVkKVxuIiwgb3BfdHh0LCBwb3BfYWZ0ZXI/InAiOiIiLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnQpc3Rfc3JjLCAoSW50KXN0X2RzdCApOworICAgRElQKCJmJXMlcyBzdCgldSksIHN0KCV1KVxuIiwgb3BfdHh0LCBwb3BfYWZ0ZXI/InAiOiIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rfc3JjLCBzdF9kc3QpOwogICAgcHV0X1NUX1VOQ0hFQ0tFRCggCiAgICAgICBzdF9kc3QsIAogICAgICAgdHJpb3AoIG9wLCAKQEAgLTM4MDQsOCArMzgwNCw4IEBACiB2b2lkIGZwX2RvX29wcmV2X1NUX1NUICggY29uc3QgSENoYXIqIG9wX3R4dCwgSVJPcCBvcCwgVUludCBzdF9zcmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgVUludCBzdF9kc3QsIEJvb2wgcG9wX2FmdGVyICkKIHsKLSAgIERJUCgiZiVzJXMgc3QoJWQpLCBzdCglZClcbiIsIG9wX3R4dCwgcG9wX2FmdGVyPyJwIjoiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnQpc3Rfc3JjLCAoSW50KXN0X2RzdCApOworICAgRElQKCJmJXMlcyBzdCgldSksIHN0KCV1KVxuIiwgb3BfdHh0LCBwb3BfYWZ0ZXI/InAiOiIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rfc3JjLCBzdF9kc3QpOwogICAgcHV0X1NUX1VOQ0hFQ0tFRCggCiAgICAgICBzdF9kc3QsIAogICAgICAgdHJpb3AoIG9wLCAKQEAgLTM4MjAsNyArMzgyMCw3IEBACiAvKiAlZWZsYWdzKFosUCxDKSA9IFVDT01JKCBzdCgwKSwgc3QoaSkgKSAqLwogc3RhdGljIHZvaWQgZnBfZG9fdWNvbWlfU1QwX1NUaSAoIFVJbnQgaSwgQm9vbCBwb3BfYWZ0ZXIgKQogewotICAgRElQKCJmdWNvbWklcyAlJXN0KDApLCUlc3QoJWQpXG4iLCBwb3BfYWZ0ZXIgPyAicCIgOiAiIiwgKEludClpICk7CisgICBESVAoImZ1Y29taSVzICUlc3QoMCksJSVzdCgldSlcbiIsIHBvcF9hZnRlciA/ICJwIiA6ICIiLCBpKTsKICAgIC8qIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrIChhbmQgaXNuJ3QgcmVhbGx5IHJpZ2h0KS4gIEl0IHNldHMKICAgICAgIFosUCxDLE8gY29ycmVjdGx5LCBidXQgZm9yY2VzIEEgYW5kIFMgdG8gemVybywgd2hlcmVhcyB0aGUgSW50ZWwKICAgICAgIGRvY3VtZW50YXRpb24gaW1wbGllcyBBIGFuZCBTIGFyZSB1bmNoYW5nZWQuIApAQCAtMzkyMyw3ICszOTIzLDcgQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgZ3JlZ09mUk0obW9kcm0pKTsKKyAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsIChVSW50KWdyZWdPZlJNKG1vZHJtKSk7CiAgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJmaXJzdF9vcGNvZGUgPT0gMHhEOFxuIik7CiAgICAgICAgICAgICAgICBnb3RvIGRlY29kZV9mYWlsOwogICAgICAgICAgfQpAQCAtMzk0Miw3ICszOTQyLDcgQEAKICAgICAgICAgICAgIC8qIER1bm5vIGlmIHRoaXMgaXMgcmlnaHQgKi8KICAgICAgICAgICAgIGNhc2UgMHhEMCAuLi4gMHhENzogLyogRkNPTSAlc3QoPyksJXN0KDApICovCiAgICAgICAgICAgICAgICByX2RzdCA9IChVSW50KW1vZHJtIC0gMHhEMDsKLSAgICAgICAgICAgICAgIERJUCgiZmNvbSAlJXN0KDApLCUlc3QoJWQpXG4iLCAoSW50KXJfZHN0KTsKKyAgICAgICAgICAgICAgIERJUCgiZmNvbSAlJXN0KDApLCUlc3QoJXUpXG4iLCByX2RzdCk7CiAgICAgICAgICAgICAgICAvKiBUaGlzIGZvcmNlcyBDMSB0byB6ZXJvLCB3aGljaCBpc24ndCByaWdodC4gKi8KICAgICAgICAgICAgICAgIHB1dF9DMzIxMCggCiAgICAgICAgICAgICAgICAgICAgYmlub3AoIElvcF9BbmQzMiwKQEAgLTM5NTYsNyArMzk1Niw3IEBACiAgICAgICAgICAgICAvKiBEdW5ubyBpZiB0aGlzIGlzIHJpZ2h0ICovCiAgICAgICAgICAgICBjYXNlIDB4RDggLi4uIDB4REY6IC8qIEZDT01QICVzdCg/KSwlc3QoMCkgKi8KICAgICAgICAgICAgICAgIHJfZHN0ID0gKFVJbnQpbW9kcm0gLSAweEQ4OwotICAgICAgICAgICAgICAgRElQKCJmY29tcCAlJXN0KDApLCUlc3QoJWQpXG4iLCAoSW50KXJfZHN0KTsKKyAgICAgICAgICAgICAgIERJUCgiZmNvbXAgJSVzdCgwKSwlJXN0KCV1KVxuIiwgcl9kc3QpOwogICAgICAgICAgICAgICAgLyogVGhpcyBmb3JjZXMgQzEgdG8gemVybywgd2hpY2ggaXNuJ3QgcmlnaHQuICovCiAgICAgICAgICAgICAgICBwdXRfQzMyMTAoIAogICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfQW5kMzIsCkBAIC00MTc4LDcgKzQxNzgsNyBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCBncmVnT2ZSTShtb2RybSkpOworICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgKFVJbnQpZ3JlZ09mUk0obW9kcm0pKTsKICAgICAgICAgICAgICAgIHZleF9wcmludGYoImZpcnN0X29wY29kZSA9PSAweEQ5XG4iKTsKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWw7CiAgICAgICAgICB9CkBAIC00MTg5LDcgKzQxODksNyBAQAogCiAgICAgICAgICAgICBjYXNlIDB4QzAgLi4uIDB4Qzc6IC8qIEZMRCAlc3QoPykgKi8KICAgICAgICAgICAgICAgIHJfc3JjID0gKFVJbnQpbW9kcm0gLSAweEMwOwotICAgICAgICAgICAgICAgRElQKCJmbGQgJSVzdCglZClcbiIsIChJbnQpcl9zcmMpOworICAgICAgICAgICAgICAgRElQKCJmbGQgJSVzdCgldSlcbiIsIHJfc3JjKTsKICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgICAgICAgIGFzc2lnbih0MSwgZ2V0X1NUKHJfc3JjKSk7CiAgICAgICAgICAgICAgICBmcF9wdXNoKCk7CkBAIC00MTk4LDcgKzQxOTgsNyBAQAogCiAgICAgICAgICAgICBjYXNlIDB4QzggLi4uIDB4Q0Y6IC8qIEZYQ0ggJXN0KD8pICovCiAgICAgICAgICAgICAgICByX3NyYyA9IChVSW50KW1vZHJtIC0gMHhDODsKLSAgICAgICAgICAgICAgIERJUCgiZnhjaCAlJXN0KCVkKVxuIiwgKEludClyX3NyYyk7CisgICAgICAgICAgICAgICBESVAoImZ4Y2ggJSVzdCgldSlcbiIsIHJfc3JjKTsKICAgICAgICAgICAgICAgIHQxID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgICAgICAgIHQyID0gbmV3VGVtcChJdHlfRjY0KTsKICAgICAgICAgICAgICAgIGFzc2lnbih0MSwgZ2V0X1NUKDApKTsKQEAgLTQ2MjQsNyArNDYyNCw3IEBACiAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsIGdyZWdPZlJNKG1vZHJtKSk7CisgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCAoVUludClncmVnT2ZSTShtb2RybSkpOwogICAgICAgICAgICAgICAgdmV4X3ByaW50ZigiZmlyc3Rfb3Bjb2RlID09IDB4REFcbiIpOwogICAgICAgICAgICAgICAgZ290byBkZWNvZGVfZmFpbDsKICAgICAgICAgIH0KQEAgLTQ2MzYsNyArNDYzNiw3IEBACiAKICAgICAgICAgICAgIGNhc2UgMHhDMCAuLi4gMHhDNzogLyogRkNNT1ZCIFNUKGkpLCBTVCgwKSAqLwogICAgICAgICAgICAgICAgcl9zcmMgPSAoVUludCltb2RybSAtIDB4QzA7Ci0gICAgICAgICAgICAgICBESVAoImZjbW92YiAlJXN0KCVkKSwgJSVzdCgwKVxuIiwgKEludClyX3NyYyk7CisgICAgICAgICAgICAgICBESVAoImZjbW92YiAlJXN0KCV1KSwgJSVzdCgwKVxuIiwgcl9zcmMpOwogICAgICAgICAgICAgICAgcHV0X1NUX1VOQ0hFQ0tFRCgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJFeHByX0lURSggCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta194ODZnX2NhbGN1bGF0ZV9jb25kaXRpb24oWDg2Q29uZEIpLApAQCAtNDY0NSw3ICs0NjQ1LDcgQEAKIAogICAgICAgICAgICAgY2FzZSAweEM4IC4uLiAweENGOiAvKiBGQ01PVkUoWikgU1QoaSksIFNUKDApICovCiAgICAgICAgICAgICAgICByX3NyYyA9IChVSW50KW1vZHJtIC0gMHhDODsKLSAgICAgICAgICAgICAgIERJUCgiZmNtb3Z6ICUlc3QoJWQpLCAlJXN0KDApXG4iLCAoSW50KXJfc3JjKTsKKyAgICAgICAgICAgICAgIERJUCgiZmNtb3Z6ICUlc3QoJXUpLCAlJXN0KDApXG4iLCByX3NyYyk7CiAgICAgICAgICAgICAgICBwdXRfU1RfVU5DSEVDS0VEKDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUkV4cHJfSVRFKCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rX3g4NmdfY2FsY3VsYXRlX2NvbmRpdGlvbihYODZDb25kWiksCkBAIC00NjU0LDcgKzQ2NTQsNyBAQAogCiAgICAgICAgICAgICBjYXNlIDB4RDAgLi4uIDB4RDc6IC8qIEZDTU9WQkUgU1QoaSksIFNUKDApICovCiAgICAgICAgICAgICAgICByX3NyYyA9IChVSW50KW1vZHJtIC0gMHhEMDsKLSAgICAgICAgICAgICAgIERJUCgiZmNtb3ZiZSAlJXN0KCVkKSwgJSVzdCgwKVxuIiwgKEludClyX3NyYyk7CisgICAgICAgICAgICAgICBESVAoImZjbW92YmUgJSVzdCgldSksICUlc3QoMClcbiIsIHJfc3JjKTsKICAgICAgICAgICAgICAgIHB1dF9TVF9VTkNIRUNLRUQoMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSRXhwcl9JVEUoIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtfeDg2Z19jYWxjdWxhdGVfY29uZGl0aW9uKFg4NkNvbmRCRSksCkBAIC00NjYzLDcgKzQ2NjMsNyBAQAogCiAgICAgICAgICAgICBjYXNlIDB4RDggLi4uIDB4REY6IC8qIEZDTU9WVSBTVChpKSwgU1QoMCkgKi8KICAgICAgICAgICAgICAgIHJfc3JjID0gKFVJbnQpbW9kcm0gLSAweEQ4OwotICAgICAgICAgICAgICAgRElQKCJmY21vdnUgJSVzdCglZCksICUlc3QoMClcbiIsIChJbnQpcl9zcmMpOworICAgICAgICAgICAgICAgRElQKCJmY21vdnUgJSVzdCgldSksICUlc3QoMClcbiIsIHJfc3JjKTsKICAgICAgICAgICAgICAgIHB1dF9TVF9VTkNIRUNLRUQoMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSRXhwcl9JVEUoIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtfeDg2Z19jYWxjdWxhdGVfY29uZGl0aW9uKFg4NkNvbmRQKSwKQEAgLTQ3ODUsNyArNDc4NSw3IEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCBncmVnT2ZSTShtb2RybSkpOworICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgKFVJbnQpZ3JlZ09mUk0obW9kcm0pKTsKICAgICAgICAgICAgICAgIHZleF9wcmludGYoImZpcnN0X29wY29kZSA9PSAweERCXG4iKTsKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWw7CiAgICAgICAgICB9CkBAIC00Nzk3LDcgKzQ3OTcsNyBAQAogCiAgICAgICAgICAgICBjYXNlIDB4QzAgLi4uIDB4Qzc6IC8qIEZDTU9WTkIgU1QoaSksIFNUKDApICovCiAgICAgICAgICAgICAgICByX3NyYyA9IChVSW50KW1vZHJtIC0gMHhDMDsKLSAgICAgICAgICAgICAgIERJUCgiZmNtb3ZuYiAlJXN0KCVkKSwgJSVzdCgwKVxuIiwgKEludClyX3NyYyk7CisgICAgICAgICAgICAgICBESVAoImZjbW92bmIgJSVzdCgldSksICUlc3QoMClcbiIsIHJfc3JjKTsKICAgICAgICAgICAgICAgIHB1dF9TVF9VTkNIRUNLRUQoMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSRXhwcl9JVEUoIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtfeDg2Z19jYWxjdWxhdGVfY29uZGl0aW9uKFg4NkNvbmROQiksCkBAIC00ODA2LDcgKzQ4MDYsNyBAQAogCiAgICAgICAgICAgICBjYXNlIDB4QzggLi4uIDB4Q0Y6IC8qIEZDTU9WTkUoTlopIFNUKGkpLCBTVCgwKSAqLwogICAgICAgICAgICAgICAgcl9zcmMgPSAoVUludCltb2RybSAtIDB4Qzg7Ci0gICAgICAgICAgICAgICBESVAoImZjbW92bnogJSVzdCglZCksICUlc3QoMClcbiIsIChJbnQpcl9zcmMpOworICAgICAgICAgICAgICAgRElQKCJmY21vdm56ICUlc3QoJXUpLCAlJXN0KDApXG4iLCByX3NyYyk7CiAgICAgICAgICAgICAgICBwdXRfU1RfVU5DSEVDS0VEKDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUkV4cHJfSVRFKCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rX3g4NmdfY2FsY3VsYXRlX2NvbmRpdGlvbihYODZDb25kTlopLApAQCAtNDgxNSw3ICs0ODE1LDcgQEAKIAogICAgICAgICAgICAgY2FzZSAweEQwIC4uLiAweEQ3OiAvKiBGQ01PVk5CRSBTVChpKSwgU1QoMCkgKi8KICAgICAgICAgICAgICAgIHJfc3JjID0gKFVJbnQpbW9kcm0gLSAweEQwOwotICAgICAgICAgICAgICAgRElQKCJmY21vdm5iZSAlJXN0KCVkKSwgJSVzdCgwKVxuIiwgKEludClyX3NyYyk7CisgICAgICAgICAgICAgICBESVAoImZjbW92bmJlICUlc3QoJXUpLCAlJXN0KDApXG4iLCByX3NyYyk7CiAgICAgICAgICAgICAgICBwdXRfU1RfVU5DSEVDS0VEKDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUkV4cHJfSVRFKCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rX3g4NmdfY2FsY3VsYXRlX2NvbmRpdGlvbihYODZDb25kTkJFKSwKQEAgLTQ4MjQsNyArNDgyNCw3IEBACiAKICAgICAgICAgICAgIGNhc2UgMHhEOCAuLi4gMHhERjogLyogRkNNT1ZOVSBTVChpKSwgU1QoMCkgKi8KICAgICAgICAgICAgICAgIHJfc3JjID0gKFVJbnQpbW9kcm0gLSAweEQ4OwotICAgICAgICAgICAgICAgRElQKCJmY21vdm51ICUlc3QoJWQpLCAlJXN0KDApXG4iLCAoSW50KXJfc3JjKTsKKyAgICAgICAgICAgICAgIERJUCgiZmNtb3ZudSAlJXN0KCV1KSwgJSVzdCgwKVxuIiwgcl9zcmMpOwogICAgICAgICAgICAgICAgcHV0X1NUX1VOQ0hFQ0tFRCgwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJFeHByX0lURSggCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBta194ODZnX2NhbGN1bGF0ZV9jb25kaXRpb24oWDg2Q29uZE5QKSwKQEAgLTQ5NTUsNyArNDk1NSw3IEBACiAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgIHZleF9wcmludGYoInVuaGFuZGxlZCBvcGNfYXV4ID0gMHglMnhcbiIsIGdyZWdPZlJNKG1vZHJtKSk7CisgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCAoVUludClncmVnT2ZSTShtb2RybSkpOwogICAgICAgICAgICAgICAgdmV4X3ByaW50ZigiZmlyc3Rfb3Bjb2RlID09IDB4RENcbiIpOwogICAgICAgICAgICAgICAgZ290byBkZWNvZGVfZmFpbDsKICAgICAgICAgIH0KQEAgLTUxNDYsNyArNTE0Niw3IEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCBncmVnT2ZSTShtb2RybSkpOworICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgKFVJbnQpZ3JlZ09mUk0obW9kcm0pKTsKICAgICAgICAgICAgICAgIHZleF9wcmludGYoImZpcnN0X29wY29kZSA9PSAweEREXG4iKTsKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWw7CiAgICAgICAgICB9CkBAIC01MTU2LDEzICs1MTU2LDEzIEBACiAKICAgICAgICAgICAgIGNhc2UgMHhDMCAuLi4gMHhDNzogLyogRkZSRUUgJXN0KD8pICovCiAgICAgICAgICAgICAgICByX2RzdCA9IChVSW50KW1vZHJtIC0gMHhDMDsKLSAgICAgICAgICAgICAgIERJUCgiZmZyZWUgJSVzdCglZClcbiIsIChJbnQpcl9kc3QpOworICAgICAgICAgICAgICAgRElQKCJmZnJlZSAlJXN0KCV1KVxuIiwgcl9kc3QpOwogICAgICAgICAgICAgICAgcHV0X1NUX1RBRyAoIHJfZHN0LCBta1U4KDApICk7CiAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSAweEQwIC4uLiAweEQ3OiAvKiBGU1QgJXN0KDApLCVzdCg/KSAqLwogICAgICAgICAgICAgICAgcl9kc3QgPSAoVUludCltb2RybSAtIDB4RDA7Ci0gICAgICAgICAgICAgICBESVAoImZzdCAlJXN0KDApLCUlc3QoJWQpXG4iLCAoSW50KXJfZHN0KTsKKyAgICAgICAgICAgICAgIERJUCgiZnN0ICUlc3QoMCksJSVzdCgldSlcbiIsIHJfZHN0KTsKICAgICAgICAgICAgICAgIC8qIFA0IG1hbnVhbCBzYXlzOiAiSWYgdGhlIGRlc3RpbmF0aW9uIG9wZXJhbmQgaXMgYQogICAgICAgICAgICAgICAgICAgbm9uLWVtcHR5IHJlZ2lzdGVyLCB0aGUgaW52YWxpZC1vcGVyYXRpb24gZXhjZXB0aW9uCiAgICAgICAgICAgICAgICAgICBpcyBub3QgZ2VuZXJhdGVkLiAgSGVuY2UgcHV0X1NUX1VOQ0hFQ0tFRC4gKi8KQEAgLTUxNzEsNyArNTE3MSw3IEBACiAKICAgICAgICAgICAgIGNhc2UgMHhEOCAuLi4gMHhERjogLyogRlNUUCAlc3QoMCksJXN0KD8pICovCiAgICAgICAgICAgICAgICByX2RzdCA9IChVSW50KW1vZHJtIC0gMHhEODsKLSAgICAgICAgICAgICAgIERJUCgiZnN0cCAlJXN0KDApLCUlc3QoJWQpXG4iLCAoSW50KXJfZHN0KTsKKyAgICAgICAgICAgICAgIERJUCgiZnN0cCAlJXN0KDApLCUlc3QoJXUpXG4iLCByX2RzdCk7CiAgICAgICAgICAgICAgICAvKiBQNCBtYW51YWwgc2F5czogIklmIHRoZSBkZXN0aW5hdGlvbiBvcGVyYW5kIGlzIGEKICAgICAgICAgICAgICAgICAgIG5vbi1lbXB0eSByZWdpc3RlciwgdGhlIGludmFsaWQtb3BlcmF0aW9uIGV4Y2VwdGlvbgogICAgICAgICAgICAgICAgICAgaXMgbm90IGdlbmVyYXRlZC4gIEhlbmNlIHB1dF9TVF9VTkNIRUNLRUQuICovCkBAIC01MTgxLDcgKzUxODEsNyBAQAogCiAgICAgICAgICAgICBjYXNlIDB4RTAgLi4uIDB4RTc6IC8qIEZVQ09NICVzdCgwKSwlc3QoPykgKi8KICAgICAgICAgICAgICAgIHJfZHN0ID0gKFVJbnQpbW9kcm0gLSAweEUwOwotICAgICAgICAgICAgICAgRElQKCJmdWNvbSAlJXN0KDApLCUlc3QoJWQpXG4iLCAoSW50KXJfZHN0KTsKKyAgICAgICAgICAgICAgIERJUCgiZnVjb20gJSVzdCgwKSwlJXN0KCV1KVxuIiwgcl9kc3QpOwogICAgICAgICAgICAgICAgLyogVGhpcyBmb3JjZXMgQzEgdG8gemVybywgd2hpY2ggaXNuJ3QgcmlnaHQuICovCiAgICAgICAgICAgICAgICBwdXRfQzMyMTAoIAogICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfQW5kMzIsCkBAIC01MTk0LDcgKzUxOTQsNyBAQAogCiAgICAgICAgICAgICBjYXNlIDB4RTggLi4uIDB4RUY6IC8qIEZVQ09NUCAlc3QoMCksJXN0KD8pICovCiAgICAgICAgICAgICAgICByX2RzdCA9IChVSW50KW1vZHJtIC0gMHhFODsKLSAgICAgICAgICAgICAgIERJUCgiZnVjb21wICUlc3QoMCksJSVzdCglZClcbiIsIChJbnQpcl9kc3QpOworICAgICAgICAgICAgICAgRElQKCJmdWNvbXAgJSVzdCgwKSwlJXN0KCV1KVxuIiwgcl9kc3QpOwogICAgICAgICAgICAgICAgLyogVGhpcyBmb3JjZXMgQzEgdG8gemVybywgd2hpY2ggaXNuJ3QgcmlnaHQuICovCiAgICAgICAgICAgICAgICBwdXRfQzMyMTAoIAogICAgICAgICAgICAgICAgICAgIGJpbm9wKCBJb3BfQW5kMzIsCkBAIC01MzEwLDcgKzUzMTAsNyBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCBncmVnT2ZSTShtb2RybSkpOworICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgKFVJbnQpZ3JlZ09mUk0obW9kcm0pKTsKICAgICAgICAgICAgICAgIHZleF9wcmludGYoImZpcnN0X29wY29kZSA9PSAweERFXG4iKTsKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWw7CiAgICAgICAgICB9CkBAIC01NDIyLDcgKzU0MjIsNyBAQAogICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCJ1bmhhbmRsZWQgb3BjX2F1eCA9IDB4JTJ4XG4iLCBncmVnT2ZSTShtb2RybSkpOworICAgICAgICAgICAgICAgdmV4X3ByaW50ZigidW5oYW5kbGVkIG9wY19hdXggPSAweCUyeFxuIiwgKFVJbnQpZ3JlZ09mUk0obW9kcm0pKTsKICAgICAgICAgICAgICAgIHZleF9wcmludGYoImZpcnN0X29wY29kZSA9PSAweERGXG4iKTsKICAgICAgICAgICAgICAgIGdvdG8gZGVjb2RlX2ZhaWw7CiAgICAgICAgICB9CkBAIC01NjQyLDcgKzU2NDIsNyBAQAogICAgICAgY2FzZSAweEZCOiBvcCA9IElvcF9TdWI2NDsgYnJlYWs7CiAKICAgICAgIGRlZmF1bHQ6IAotICAgICAgICAgdmV4X3ByaW50ZigiXG4weCV4XG4iLCAoSW50KW9wYyk7CisgICAgICAgICB2ZXhfcHJpbnRmKCJcbjB4JXhcbiIsIG9wYyk7CiAgICAgICAgICB2cGFuaWMoImRpc19NTVhvcF9yZWdtZW1fdG9fcmVnIik7CiAgICB9CiAKQEAgLTczNTgsNyArNzM1OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0WE1NUmVnKGVyZWdPZlJNKHJtKSkpICk7CiAgICAgICBkZWx0YSArPSAyOwogICAgICAgRElQKCIlcyAkJWQsJXMsJXNcbiIsIG9wbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW50KWltbTgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lWE1NUmVnKGVyZWdPZlJNKHJtKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVhNTVJlZyhncmVnT2ZSTShybSkpICk7CiAgICB9IGVsc2UgewpAQCAtNzM3Niw3ICs3Mzc2LDcgQEAKICAgICAgICk7CiAgICAgICBkZWx0YSArPSBhbGVuKzE7CiAgICAgICBESVAoIiVzICQlZCwlcywlc1xuIiwgb3BuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnQpaW1tOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW04LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVhNTVJlZyhncmVnT2ZSTShybSkpICk7CiAgICB9CkBAIC04ODkwLDcgKzg4OTAsNyBAQAogICAgICAgICAgYXNzaWduKHQ0LCBnZXRJUmVnKDIsIGVyZWdPZlJNKG1vZHJtKSkpOwogICAgICAgICAgZGVsdGEgKz0gMysxOwogICAgICAgICAgbGFuZSA9IGluc25bMysxLTFdOwotICAgICAgICAgRElQKCJwaW5zcncgJCVkLCVzLCVzXG4iLCAoSW50KWxhbmUsIAorICAgICAgICAgRElQKCJwaW5zcncgJCVkLCVzLCVzXG4iLCBsYW5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lSVJlZygyLGVyZWdPZlJNKG1vZHJtKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVNTVhSZWcoZ3JlZ09mUk0obW9kcm0pKSk7CiAgICAgICB9IGVsc2UgewpAQCAtODg5OCw3ICs4ODk4LDcgQEAKICAgICAgICAgIGRlbHRhICs9IDMrYWxlbjsKICAgICAgICAgIGxhbmUgPSBpbnNuWzMrYWxlbi0xXTsKICAgICAgICAgIGFzc2lnbih0NCwgbG9hZExFKEl0eV9JMTYsIG1rZXhwcihhZGRyKSkpOwotICAgICAgICAgRElQKCJwaW5zcncgJCVkLCVzLCVzXG4iLCAoSW50KWxhbmUsIAorICAgICAgICAgRElQKCJwaW5zcncgJCVkLCVzLCVzXG4iLCBsYW5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNfYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lTU1YUmVnKGdyZWdPZlJNKG1vZHJtKSkpOwogICAgICAgfQpAQCAtMTA5NzQsNyArMTA5NzQsNyBAQAogICAgICAgICAgYXNzaWduKHQ0LCBnZXRJUmVnKDIsIGVyZWdPZlJNKG1vZHJtKSkpOwogICAgICAgICAgZGVsdGEgKz0gMysxOwogICAgICAgICAgbGFuZSA9IGluc25bMysxLTFdOwotICAgICAgICAgRElQKCJwaW5zcncgJCVkLCVzLCVzXG4iLCAoSW50KWxhbmUsIAorICAgICAgICAgRElQKCJwaW5zcncgJCVkLCVzLCVzXG4iLCBsYW5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lSVJlZygyLGVyZWdPZlJNKG1vZHJtKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVYTU1SZWcoZ3JlZ09mUk0obW9kcm0pKSk7CiAgICAgICB9IGVsc2UgewpAQCAtMTA5ODIsNyArMTA5ODIsNyBAQAogICAgICAgICAgZGVsdGEgKz0gMythbGVuOwogICAgICAgICAgbGFuZSA9IGluc25bMythbGVuLTFdOwogICAgICAgICAgYXNzaWduKHQ0LCBsb2FkTEUoSXR5X0kxNiwgbWtleHByKGFkZHIpKSk7Ci0gICAgICAgICBESVAoInBpbnNydyAkJWQsJXMsJXNcbiIsIChJbnQpbGFuZSwgCisgICAgICAgICBESVAoInBpbnNydyAkJWQsJXMsJXNcbiIsIGxhbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVYTU1SZWcoZ3JlZ09mUk0obW9kcm0pKSk7CiAgICAgICB9CkBAIC0xMjU2Nyw3ICsxMjU2Nyw3IEBACiAgICAgICAgICBhc3NpZ24oIHNWLCBnZXRNTVhSZWcoZXJlZ09mUk0obW9kcm0pKSApOwogICAgICAgICAgZDMyID0gKFVJbnQpaW5zblszKzFdOwogICAgICAgICAgZGVsdGEgKz0gMysxKzE7Ci0gICAgICAgICBESVAoInBhbGlnbnIgJCVkLCVzLCVzXG4iLCAgKEludClkMzIsIAorICAgICAgICAgRElQKCJwYWxpZ25yICQldSwlcywlc1xuIiwgIGQzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lTU1YUmVnKGVyZWdPZlJNKG1vZHJtKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZU1NWFJlZyhncmVnT2ZSTShtb2RybSkpKTsKICAgICAgIH0gZWxzZSB7CkBAIC0xMjU3NSw3ICsxMjU3NSw3IEBACiAgICAgICAgICBhc3NpZ24oIHNWLCBsb2FkTEUoSXR5X0k2NCwgbWtleHByKGFkZHIpKSApOwogICAgICAgICAgZDMyID0gKFVJbnQpaW5zblszK2FsZW5dOwogICAgICAgICAgZGVsdGEgKz0gMythbGVuKzE7Ci0gICAgICAgICBESVAoInBhbGlnbnIgJCVkJXMsJXNcbiIsIChJbnQpZDMyLAorICAgICAgICAgRElQKCJwYWxpZ25yICQldSVzLCVzXG4iLCBkMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVNTVhSZWcoZ3JlZ09mUk0obW9kcm0pKSk7CiAgICAgICB9CkBAIC0xMjYyNSw3ICsxMjYyNSw3IEBACiAgICAgICAgICBhc3NpZ24oIHNWLCBnZXRYTU1SZWcoZXJlZ09mUk0obW9kcm0pKSApOwogICAgICAgICAgZDMyID0gKFVJbnQpaW5zblszKzFdOwogICAgICAgICAgZGVsdGEgKz0gMysxKzE7Ci0gICAgICAgICBESVAoInBhbGlnbnIgJCVkLCVzLCVzXG4iLCAoSW50KWQzMiwKKyAgICAgICAgIERJUCgicGFsaWduciAkJXUsJXMsJXNcbiIsIGQzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVYTU1SZWcoZXJlZ09mUk0obW9kcm0pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVYTU1SZWcoZ3JlZ09mUk0obW9kcm0pKSk7CiAgICAgICB9IGVsc2UgewpAQCAtMTI2MzQsNyArMTI2MzQsNyBAQAogICAgICAgICAgYXNzaWduKCBzViwgbG9hZExFKEl0eV9WMTI4LCBta2V4cHIoYWRkcikpICk7CiAgICAgICAgICBkMzIgPSAoVUludClpbnNuWzMrYWxlbl07CiAgICAgICAgICBkZWx0YSArPSAzK2FsZW4rMTsKLSAgICAgICAgIERJUCgicGFsaWduciAkJWQsJXMsJXNcbiIsIChJbnQpZDMyLAorICAgICAgICAgRElQKCJwYWxpZ25yICQldSwlcywlc1xuIiwgZDMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzX2J1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVYTU1SZWcoZ3JlZ09mUk0obW9kcm0pKSk7CiAgICAgICB9CkBAIC0xMjg4NSw3ICsxMjg4NSw3IEBACiAgICAqLwogICAgaWYgKHN6ID09IDIgCiAgICAgICAgJiYgaW5zblswXSA9PSAweDBGICYmIGluc25bMV0gPT0gMHgzQQotICAgICAgICYmICgvKmluc25bMl0gPT0gMHgwQiB8fCAqL2luc25bMl0gPT0gMHgwQSkpIHsKKyAgICAgICAmJiAoaW5zblsyXSA9PSAweDBCIHx8IGluc25bMl0gPT0gMHgwQSkpIHsKIAogICAgICAgQm9vbCAgIGlzRCA9IGluc25bMl0gPT0gMHgwQjsKICAgICAgIElSVGVtcCBzcmMgPSBuZXdUZW1wKGlzRCA/IEl0eV9GNjQgOiBJdHlfRjMyKTsKQEAgLTEzMDMyLDcgKzEzMDMyLDcgQEAKICAgICAgIGQzMiA9IGdldFVEaXNwMTYoZGVsdGEpOyAKICAgICAgIGRlbHRhICs9IDI7CiAgICAgICBkaXNfcmV0KCZkcmVzLCBkMzIpOwotICAgICAgRElQKCJyZXQgJWRcbiIsIChJbnQpZDMyKTsKKyAgICAgIERJUCgicmV0ICV1XG4iLCBkMzIpOwogICAgICAgYnJlYWs7CiAgICBjYXNlIDB4QzM6IC8qIFJFVCAqLwogICAgICAgZGlzX3JldCgmZHJlcywgMCk7CkBAIC0xMzM2MSw0MSArMTMzNjEsNDMgQEAKICAgICAgIGlmIChkMzIgPj0gMHgzRiAmJiBkMzIgPD0gMHg0RikgewogICAgICAgICAgam1wX2xpdCgmZHJlcywgSWprX1NpZ1NFR1YsICgoQWRkcjMyKWd1ZXN0X0VJUF9iYnN0YXJ0KStkZWx0YS0yKTsKICAgICAgICAgIHZhc3NlcnQoZHJlcy53aGF0TmV4dCA9PSBEaXNfU3RvcEhlcmUpOwotICAgICAgICAgRElQKCJpbnQgJDB4JXhcbiIsIChJbnQpZDMyKTsKKyAgICAgICAgIERJUCgiaW50ICQweCV4XG4iLCBkMzIpOwogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAKICAgICAgIC8qIEhhbmRsZSBpbnQgJDB4ODAgKGxpbnV4IHN5c2NhbGxzKSwgaW50ICQweDgxIGFuZCAkMHg4MgotICAgICAgICAgKGRhcndpbiBzeXNjYWxscykuICBBcyBwYXJ0IG9mIHRoaXMsIG5vdGUgd2hlcmUgd2UgYXJlLCBzbyB3ZQorICAgICAgICAgKGRhcndpbiBzeXNjYWxscyksIGludCAkMHg5MSAoU29sYXJpcyBzeXNjYWxscykgYW5kIGludCAkMHhEMgorICAgICAgICAgKFNvbGFyaXMgZmFzdHRyYXAgc3lzY2FsbHMpLiAgQXMgcGFydCBvZiB0aGlzLCBub3RlIHdoZXJlIHdlIGFyZSwgc28gd2UKICAgICAgICAgIGNhbiBiYWNrIHVwIHRoZSBndWVzdCB0byB0aGlzIHBvaW50IGlmIHRoZSBzeXNjYWxsIG5lZWRzIHRvCiAgICAgICAgICBiZSByZXN0YXJ0ZWQuICovCi0gICAgICBpZiAoZDMyID09IDB4ODApIHsKLSAgICAgICAgIHN0bXQoIElSU3RtdF9QdXQoIE9GRkJfSVBfQVRfU1lTQ0FMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTMyKGd1ZXN0X0VJUF9jdXJyX2luc3RyKSApICk7Ci0gICAgICAgICBqbXBfbGl0KCZkcmVzLCBJamtfU3lzX2ludDEyOCwgKChBZGRyMzIpZ3Vlc3RfRUlQX2Jic3RhcnQpK2RlbHRhKTsKLSAgICAgICAgIHZhc3NlcnQoZHJlcy53aGF0TmV4dCA9PSBEaXNfU3RvcEhlcmUpOwotICAgICAgICAgRElQKCJpbnQgJDB4ODBcbiIpOworICAgICAgSVJKdW1wS2luZCBqdW1wX2tpbmQ7CisgICAgICBzd2l0Y2ggKGQzMikgeworICAgICAgY2FzZSAweDgwOgorICAgICAgICAganVtcF9raW5kID0gSWprX1N5c19pbnQxMjg7CiAgICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICAgIGlmIChkMzIgPT0gMHg4MSkgewotICAgICAgICAgc3RtdCggSVJTdG10X1B1dCggT0ZGQl9JUF9BVF9TWVNDQUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbWtVMzIoZ3Vlc3RfRUlQX2N1cnJfaW5zdHIpICkgKTsKLSAgICAgICAgIGptcF9saXQoJmRyZXMsIElqa19TeXNfaW50MTI5LCAoKEFkZHIzMilndWVzdF9FSVBfYmJzdGFydCkrZGVsdGEpOwotICAgICAgICAgdmFzc2VydChkcmVzLndoYXROZXh0ID09IERpc19TdG9wSGVyZSk7Ci0gICAgICAgICBESVAoImludCAkMHg4MVxuIik7CisgICAgICBjYXNlIDB4ODE6CisgICAgICAgICBqdW1wX2tpbmQgPSBJamtfU3lzX2ludDEyOTsKICAgICAgICAgIGJyZWFrOwotICAgICAgfQotICAgICAgaWYgKGQzMiA9PSAweDgyKSB7Ci0gICAgICAgICBzdG10KCBJUlN0bXRfUHV0KCBPRkZCX0lQX0FUX1NZU0NBTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBta1UzMihndWVzdF9FSVBfY3Vycl9pbnN0cikgKSApOwotICAgICAgICAgam1wX2xpdCgmZHJlcywgSWprX1N5c19pbnQxMzAsICgoQWRkcjMyKWd1ZXN0X0VJUF9iYnN0YXJ0KStkZWx0YSk7Ci0gICAgICAgICB2YXNzZXJ0KGRyZXMud2hhdE5leHQgPT0gRGlzX1N0b3BIZXJlKTsKLSAgICAgICAgIERJUCgiaW50ICQweDgyXG4iKTsKKyAgICAgIGNhc2UgMHg4MjoKKyAgICAgICAgIGp1bXBfa2luZCA9IElqa19TeXNfaW50MTMwOwogICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIDB4OTE6CisgICAgICAgICBqdW1wX2tpbmQgPSBJamtfU3lzX2ludDE0NTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAweEQyOgorICAgICAgICAganVtcF9raW5kID0gSWprX1N5c19pbnQyMTA7CisgICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgICAvKiBub25lIG9mIHRoZSBhYm92ZSAqLworICAgICAgICAgZ290byBkZWNvZGVfZmFpbHVyZTsKICAgICAgIH0KIAotICAgICAgLyogbm9uZSBvZiB0aGUgYWJvdmUgKi8KLSAgICAgIGdvdG8gZGVjb2RlX2ZhaWx1cmU7CisgICAgICBzdG10KCBJUlN0bXRfUHV0KCBPRkZCX0lQX0FUX1NZU0NBTEwsCisgICAgICAgICAgICAgICAgICAgICAgICBta1UzMihndWVzdF9FSVBfY3Vycl9pbnN0cikgKSApOworICAgICAgam1wX2xpdCgmZHJlcywganVtcF9raW5kLCAoKEFkZHIzMilndWVzdF9FSVBfYmJzdGFydCkrZGVsdGEpOworICAgICAgdmFzc2VydChkcmVzLndoYXROZXh0ID09IERpc19TdG9wSGVyZSk7CisgICAgICBESVAoImludCAkMHgleFxuIiwgZDMyKTsKKyAgICAgIGJyZWFrOwogCiAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSmNvbmQsIGJ5dGUgb2Zmc2V0IC0tLS0tLS0tLSAqLwogCkBAIC0xNDQxMywxNCArMTQ0MTUsMTQgQEAKICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgIGFieXRlID0gZ2V0SUJ5dGUoZGVsdGEpOyBkZWx0YSsrOwogICAgICAgYXNzaWduKHQxLCBta1UzMiggYWJ5dGUgJiAweEZGICkpOwotICAgICAgRElQKCJpbiVjICQlZCwlc1xuIiwgbmFtZUlTaXplKHN6KSwgKEludClhYnl0ZSwgbmFtZUlSZWcoc3osUl9FQVgpKTsKKyAgICAgIERJUCgiaW4lYyAkJWQsJXNcbiIsIG5hbWVJU2l6ZShzeiksIGFieXRlLCBuYW1lSVJlZyhzeixSX0VBWCkpOwogICAgICAgZ290byBkb19JTjsKICAgIGNhc2UgMHhFNTogLyogSU4gaW1tOCwgZUFYICovCiAgICAgICB2YXNzZXJ0KHN6ID09IDIgfHwgc3ogPT0gNCk7CiAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICBhYnl0ZSA9IGdldElCeXRlKGRlbHRhKTsgZGVsdGErKzsKICAgICAgIGFzc2lnbih0MSwgbWtVMzIoIGFieXRlICYgMHhGRiApKTsKLSAgICAgIERJUCgiaW4lYyAkJWQsJXNcbiIsIG5hbWVJU2l6ZShzeiksIChJbnQpYWJ5dGUsIG5hbWVJUmVnKHN6LFJfRUFYKSk7CisgICAgICBESVAoImluJWMgJCVkLCVzXG4iLCBuYW1lSVNpemUoc3opLCBhYnl0ZSwgbmFtZUlSZWcoc3osUl9FQVgpKTsKICAgICAgIGdvdG8gZG9fSU47CiAgICBjYXNlIDB4RUM6IC8qIElOICVEWCwgQUwgKi8KICAgICAgIHN6ID0gMTsgCkBAIC0xNDQ2MSwxNCArMTQ0NjMsMTQgQEAKICAgICAgIHQxID0gbmV3VGVtcChJdHlfSTMyKTsKICAgICAgIGFieXRlID0gZ2V0SUJ5dGUoZGVsdGEpOyBkZWx0YSsrOwogICAgICAgYXNzaWduKCB0MSwgbWtVMzIoIGFieXRlICYgMHhGRiApICk7Ci0gICAgICBESVAoIm91dCVjICVzLCQlZFxuIiwgbmFtZUlTaXplKHN6KSwgbmFtZUlSZWcoc3osUl9FQVgpLCAoSW50KWFieXRlKTsKKyAgICAgIERJUCgib3V0JWMgJXMsJCVkXG4iLCBuYW1lSVNpemUoc3opLCBuYW1lSVJlZyhzeixSX0VBWCksIGFieXRlKTsKICAgICAgIGdvdG8gZG9fT1VUOwogICAgY2FzZSAweEU3OiAvKiBPVVQgZUFYLCBpbW04ICovCiAgICAgICB2YXNzZXJ0KHN6ID09IDIgfHwgc3ogPT0gNCk7CiAgICAgICB0MSA9IG5ld1RlbXAoSXR5X0kzMik7CiAgICAgICBhYnl0ZSA9IGdldElCeXRlKGRlbHRhKTsgZGVsdGErKzsKICAgICAgIGFzc2lnbiggdDEsIG1rVTMyKCBhYnl0ZSAmIDB4RkYgKSApOwotICAgICAgRElQKCJvdXQlYyAlcywkJWRcbiIsIG5hbWVJU2l6ZShzeiksIG5hbWVJUmVnKHN6LFJfRUFYKSwgKEludClhYnl0ZSk7CisgICAgICBESVAoIm91dCVjICVzLCQlZFxuIiwgbmFtZUlTaXplKHN6KSwgbmFtZUlSZWcoc3osUl9FQVgpLCBhYnl0ZSk7CiAgICAgICBnb3RvIGRvX09VVDsKICAgIGNhc2UgMHhFRTogLyogT1VUIEFMLCAlRFggKi8KICAgICAgIHN6ID0gMTsKQEAgLTE0ODQyLDYgKzE0ODQ0LDExIEBACiAgICAgICAgICBJUkRpcnR5KiBkICAgICA9IE5VTEw7CiAgICAgICAgICB2b2lkKiAgICBmQWRkciA9IE5VTEw7CiAgICAgICAgICBjb25zdCBIQ2hhciogZk5hbWUgPSBOVUxMOworICAgICAgICAgaWYgKGFyY2hpbmZvLT5od2NhcHMgJiBWRVhfSFdDQVBTX1g4Nl9TU0UzKSB7CisgICAgICAgICAgICBmTmFtZSA9ICJ4ODZnX2RpcnR5aGVscGVyX0NQVUlEX3NzZTMiOworICAgICAgICAgICAgZkFkZHIgPSAmeDg2Z19kaXJ0eWhlbHBlcl9DUFVJRF9zc2UzOyAKKyAgICAgICAgIH0gCisgICAgICAgICBlbHNlCiAgICAgICAgICBpZiAoYXJjaGluZm8tPmh3Y2FwcyAmIFZFWF9IV0NBUFNfWDg2X1NTRTIpIHsKICAgICAgICAgICAgIGZOYW1lID0gIng4NmdfZGlydHloZWxwZXJfQ1BVSURfc3NlMiI7CiAgICAgICAgICAgICBmQWRkciA9ICZ4ODZnX2RpcnR5aGVscGVyX0NQVUlEX3NzZTI7IApAQCAtMTUzMzcsNyArMTUzNDQsNyBAQAogCiAgICAgICBjYXNlIDB4MDU6IC8qIEFNRCdzIHN5c2NhbGwgKi8KICAgICAgICAgIHN0bXQoIElSU3RtdF9QdXQoIE9GRkJfSVBfQVRfU1lTQ0FMTCwKLSAgICAgICAgICAgICAgbWtVMzIoZ3Vlc3RfRUlQX2N1cnJfaW5zdHIpICkgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1rVTMyKGd1ZXN0X0VJUF9jdXJyX2luc3RyKSApICk7CiAgICAgICAgICBqbXBfbGl0KCZkcmVzLCBJamtfU3lzX3N5c2NhbGwsICgoQWRkcjMyKWd1ZXN0X0VJUF9iYnN0YXJ0KStkZWx0YSk7CiAgICAgICAgICB2YXNzZXJ0KGRyZXMud2hhdE5leHQgPT0gRGlzX1N0b3BIZXJlKTsKICAgICAgICAgIERJUCgic3lzY2FsbFxuIik7CkBAIC0xNTM1OSwxMCArMTUzNjYsMTAgQEAKICAgIGlmIChzaWdpbGxfZGlhZykgewogICAgICAgdmV4X3ByaW50ZigidmV4IHg4Ni0+SVI6IHVuaGFuZGxlZCBpbnN0cnVjdGlvbiBieXRlczogIgogICAgICAgICAgICAgICAgICAiMHgleCAweCV4IDB4JXggMHgleFxuIiwKLSAgICAgICAgICAgICAgICAgKEludClnZXRJQnl0ZShkZWx0YV9zdGFydCswKSwKLSAgICAgICAgICAgICAgICAgKEludClnZXRJQnl0ZShkZWx0YV9zdGFydCsxKSwKLSAgICAgICAgICAgICAgICAgKEludClnZXRJQnl0ZShkZWx0YV9zdGFydCsyKSwKLSAgICAgICAgICAgICAgICAgKEludClnZXRJQnl0ZShkZWx0YV9zdGFydCszKSApOworICAgICAgICAgICAgICAgICBnZXRJQnl0ZShkZWx0YV9zdGFydCswKSwKKyAgICAgICAgICAgICAgICAgZ2V0SUJ5dGUoZGVsdGFfc3RhcnQrMSksCisgICAgICAgICAgICAgICAgIGdldElCeXRlKGRlbHRhX3N0YXJ0KzIpLAorICAgICAgICAgICAgICAgICBnZXRJQnl0ZShkZWx0YV9zdGFydCszKSk7CiAgICB9CiAKICAgIC8qIFRlbGwgdGhlIGRpc3BhdGNoZXIgdGhhdCB0aGlzIGluc24gY2Fubm90IGJlIGRlY29kZWQsIGFuZCBzbyBoYXMKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfYW1kNjRfZGVmcy5jIGIvVkVYL3ByaXYvaG9zdF9hbWQ2NF9kZWZzLmMKaW5kZXggNzUzNGU0My4uOWRlYzc4YyAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9hbWQ2NF9kZWZzLmMKKysrIGIvVkVYL3ByaXYvaG9zdF9hbWQ2NF9kZWZzLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC05MTAsNiArOTEwLDI4IEBACiAgICB2YXNzZXJ0KHN6ID09IDQgfHwgc3ogPT0gOCB8fCBzeiA9PSAxNik7CiAgICByZXR1cm4gaTsKIH0KK0FNRDY0SW5zdHIqIEFNRDY0SW5zdHJfU3NlQ1N0b3JlICggQU1ENjRDb25kQ29kZSBjb25kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIUmVnIHNyYywgQU1ENjRBTW9kZSogYWRkciApCit7CisgICBBTUQ2NEluc3RyKiBpICAgICAgICAgPSBMaWJWRVhfQWxsb2NfaW5saW5lKHNpemVvZihBTUQ2NEluc3RyKSk7CisgICBpLT50YWcgICAgICAgICAgICAgICAgPSBBaW5fU3NlQ1N0b3JlOworICAgaS0+QWluLlNzZUNTdG9yZS5jb25kID0gY29uZDsKKyAgIGktPkFpbi5Tc2VDU3RvcmUuc3JjICA9IHNyYzsKKyAgIGktPkFpbi5Tc2VDU3RvcmUuYWRkciA9IGFkZHI7CisgICB2YXNzZXJ0KGNvbmQgIT0gQWNjX0FMV0FZUyk7CisgICByZXR1cm4gaTsKK30KK0FNRDY0SW5zdHIqIEFNRDY0SW5zdHJfU3NlQ0xvYWQgKCBBTUQ2NENvbmRDb2RlIGNvbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU1ENjRBTW9kZSogYWRkciwgSFJlZyBkc3QgKQoreworICAgQU1ENjRJbnN0ciogaSAgICAgICAgPSBMaWJWRVhfQWxsb2NfaW5saW5lKHNpemVvZihBTUQ2NEluc3RyKSk7CisgICBpLT50YWcgICAgICAgICAgICAgICA9IEFpbl9Tc2VDTG9hZDsKKyAgIGktPkFpbi5Tc2VDTG9hZC5jb25kID0gY29uZDsKKyAgIGktPkFpbi5Tc2VDTG9hZC5hZGRyID0gYWRkcjsKKyAgIGktPkFpbi5Tc2VDTG9hZC5kc3QgID0gZHN0OworICAgdmFzc2VydChjb25kICE9IEFjY19BTFdBWVMpOworICAgcmV0dXJuIGk7Cit9CiBBTUQ2NEluc3RyKiBBTUQ2NEluc3RyX1NzZUxkekxPICAoIEludCBzeiwgSFJlZyByZWcsIEFNRDY0QU1vZGUqIGFkZHIgKQogewogICAgQU1ENjRJbnN0ciogaSAgICAgICAgID0gTGliVkVYX0FsbG9jX2lubGluZShzaXplb2YoQU1ENjRJbnN0cikpOwpAQCAtMTI2OCw2ICsxMjkwLDI0IEBACiAgICAgICAgICAgICBwcEFNRDY0QU1vZGUoaS0+QWluLlNzZUxkU3QuYWRkcik7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm47CisgICAgICBjYXNlIEFpbl9Tc2VDU3RvcmU6CisgICAgICAgICB2ZXhfcHJpbnRmKCJpZiAoJSVyZmxhZ3MuJXMpIHsgIiwKKyAgICAgICAgICAgICAgICAgICAgc2hvd0FNRDY0Q29uZENvZGUoaS0+QWluLlNzZUNTdG9yZS5jb25kKSk7CisgICAgICAgICB2ZXhfcHJpbnRmKCJtb3Z1cHMgIik7CisgICAgICAgICBwcEhSZWdBTUQ2NChpLT5BaW4uU3NlQ1N0b3JlLnNyYyk7CisgICAgICAgICB2ZXhfcHJpbnRmKCIsICIpOworICAgICAgICAgcHBBTUQ2NEFNb2RlKGktPkFpbi5Tc2VDU3RvcmUuYWRkcik7CisgICAgICAgICB2ZXhfcHJpbnRmKCIgfSIpOworICAgICAgICAgcmV0dXJuOworICAgICAgY2FzZSBBaW5fU3NlQ0xvYWQ6CisgICAgICAgICB2ZXhfcHJpbnRmKCJpZiAoJSVyZmxhZ3MuJXMpIHsgIiwKKyAgICAgICAgICAgICAgICAgICAgc2hvd0FNRDY0Q29uZENvZGUoaS0+QWluLlNzZUNMb2FkLmNvbmQpKTsKKyAgICAgICAgIHZleF9wcmludGYoIm1vdnVwcyAiKTsKKyAgICAgICAgIHBwQU1ENjRBTW9kZShpLT5BaW4uU3NlQ0xvYWQuYWRkcik7CisgICAgICAgICB2ZXhfcHJpbnRmKCIsICIpOworICAgICAgICAgcHBIUmVnQU1ENjQoaS0+QWluLlNzZUNMb2FkLmRzdCk7CisgICAgICAgICB2ZXhfcHJpbnRmKCIgfSIpOworICAgICAgICAgcmV0dXJuOwogICAgICAgY2FzZSBBaW5fU3NlTGR6TE86CiAgICAgICAgICB2ZXhfcHJpbnRmKCJtb3ZzJXMgIiwgaS0+QWluLlNzZUxkekxPLnN6PT00ID8gInMiIDogImQiKTsKICAgICAgICAgIHBwQU1ENjRBTW9kZShpLT5BaW4uU3NlTGR6TE8uYWRkcik7CkBAIC0xMzExLDcgKzEzNTEsNyBAQAogICAgICAgICAgcHBIUmVnQU1ENjQoaS0+QWluLlNzZUNNb3YuZHN0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgIGNhc2UgQWluX1NzZVNodWY6Ci0gICAgICAgICB2ZXhfcHJpbnRmKCJwc2h1ZmQgJDB4JXgsIiwgaS0+QWluLlNzZVNodWYub3JkZXIpOworICAgICAgICAgdmV4X3ByaW50ZigicHNodWZkICQweCV4LCIsIChVSW50KWktPkFpbi5Tc2VTaHVmLm9yZGVyKTsKICAgICAgICAgIHBwSFJlZ0FNRDY0KGktPkFpbi5Tc2VTaHVmLnNyYyk7CiAgICAgICAgICB2ZXhfcHJpbnRmKCIsIik7CiAgICAgICAgICBwcEhSZWdBTUQ2NChpLT5BaW4uU3NlU2h1Zi5kc3QpOwpAQCAtMTU2Niw2ICsxNjA2LDE0IEBACiAgICAgICAgICBhZGRIUmVnVXNlKHUsIGktPkFpbi5Tc2VMZFN0LmlzTG9hZCA/IEhSbVdyaXRlIDogSFJtUmVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgaS0+QWluLlNzZUxkU3QucmVnKTsKICAgICAgICAgIHJldHVybjsKKyAgICAgIGNhc2UgQWluX1NzZUNTdG9yZToKKyAgICAgICAgIGFkZFJlZ1VzYWdlX0FNRDY0QU1vZGUodSwgaS0+QWluLlNzZUNTdG9yZS5hZGRyKTsKKyAgICAgICAgIGFkZEhSZWdVc2UodSwgSFJtUmVhZCwgaS0+QWluLlNzZUNTdG9yZS5zcmMpOworICAgICAgICAgcmV0dXJuOworICAgICAgY2FzZSBBaW5fU3NlQ0xvYWQ6CisgICAgICAgICBhZGRSZWdVc2FnZV9BTUQ2NEFNb2RlKHUsIGktPkFpbi5Tc2VDTG9hZC5hZGRyKTsKKyAgICAgICAgIGFkZEhSZWdVc2UodSwgSFJtTW9kaWZ5LCBpLT5BaW4uU3NlQ0xvYWQuZHN0KTsKKyAgICAgICAgIHJldHVybjsKICAgICAgIGNhc2UgQWluX1NzZUxkekxPOgogICAgICAgICAgYWRkUmVnVXNhZ2VfQU1ENjRBTW9kZSh1LCBpLT5BaW4uU3NlTGR6TE8uYWRkcik7CiAgICAgICAgICBhZGRIUmVnVXNlKHUsIEhSbVdyaXRlLCBpLT5BaW4uU3NlTGR6TE8ucmVnKTsKQEAgLTE3OTksNiArMTg0NywxNCBAQAogICAgICAgICAgbWFwUmVnKG0sICZpLT5BaW4uU3NlTGRTdC5yZWcpOwogICAgICAgICAgbWFwUmVnc19BTUQ2NEFNb2RlKG0sIGktPkFpbi5Tc2VMZFN0LmFkZHIpOwogICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIEFpbl9Tc2VDU3RvcmU6CisgICAgICAgICBtYXBSZWdzX0FNRDY0QU1vZGUobSwgaS0+QWluLlNzZUNTdG9yZS5hZGRyKTsKKyAgICAgICAgIG1hcFJlZyhtLCAmaS0+QWluLlNzZUNTdG9yZS5zcmMpOworICAgICAgICAgcmV0dXJuOworICAgICAgY2FzZSBBaW5fU3NlQ0xvYWQ6CisgICAgICAgICBtYXBSZWdzX0FNRDY0QU1vZGUobSwgaS0+QWluLlNzZUNMb2FkLmFkZHIpOworICAgICAgICAgbWFwUmVnKG0sICZpLT5BaW4uU3NlQ0xvYWQuZHN0KTsKKyAgICAgICAgIHJldHVybjsKICAgICAgIGNhc2UgQWluX1NzZUxkekxPOgogICAgICAgICAgbWFwUmVnKG0sICZpLT5BaW4uU3NlTGR6TE8ucmVnKTsKICAgICAgICAgIG1hcFJlZ3NfQU1ENjRBTW9kZShtLCBpLT5BaW4uU3NlTGR6TE8uYWRkcik7CkBAIC0yMzY2LDcgKzI0MjIsNyBAQAogICAgVUNoYXIqIHAgPSAmYnVmWzBdOwogICAgVUNoYXIqIHB0bXA7CiAgICBJbnQgICAgajsKLSAgIHZhc3NlcnQobmJ1ZiA+PSAzMik7CisgICB2YXNzZXJ0KG5idWYgPj0gNjQpOwogICAgdmFzc2VydChtb2RlNjQgPT0gVHJ1ZSk7CiAKICAgIC8qIHZleF9wcmludGYoImFzbSAgIik7IHBwQU1ENjRJbnN0cihpLCBtb2RlNjQpOyB2ZXhfcHJpbnRmKCJcbiIpOyAqLwpAQCAtMjgyMywxMyArMjg3OSwzMyBAQAogICAgICAgICAgICAgICAgKnArKyA9IDB4NDg7ICpwKysgPSAweEI4OyBwID0gZW1pdDY0KHAsIDB4NTU1NTU1NTU1NTU1NTU1NVVMTCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgUkxQcmlfMkludDoKLSAgICAgICAgICAgICAgIHZhc3NlcnQoMCk7IC8vQVRDCisgICAgICAgICAgICAgICBnb3RvIGJhZDsgLy9BVEMKICAgICAgICAgICAgICAgIC8vIG1vdmFic3EgJDB4NTU1NTU1NTU1NTU1NTU1NSwgJXJheAogICAgICAgICAgICAgICAgKnArKyA9IDB4NDg7ICpwKysgPSAweEI4OyBwID0gZW1pdDY0KHAsIDB4NTU1NTU1NTU1NTU1NTU1NVVMTCk7CiAgICAgICAgICAgICAgICAvLyBtb3ZxICVyYXgsICVyZHgKICAgICAgICAgICAgICAgICpwKysgPSAweDQ4OyAqcCsrID0gMHg4OTsgKnArKyA9IDB4QzI7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkxQcmlfVjEyOFNwUmVsOgorICAgICAgICAgICAgICAgaWYgKGktPkFpbi5DYWxsLnJsb2Muc3BPZmYgPT0gMCkgeworICAgICAgICAgICAgICAgICAgLy8gV2UgY291bGQgYWNjZXB0IGFueSB8c3BPZmZ8IGhlcmUsIGJ1dCB0aGF0J3MgbW9yZQorICAgICAgICAgICAgICAgICAgLy8gaGFzc2xlIGFuZCB0aGUgb25seSB2YWx1ZSB3ZSdyZSBldmVyIGdvaW5nIHRvIGdldAorICAgICAgICAgICAgICAgICAgLy8gaXMgemVybyAoSSBiZWxpZXZlLikgIEhlbmNlIHRha2UgdGhlIGVhc3kgcGF0aCA6KQorICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCBhIHNjYWcgcmVnaXN0ZXIgLS0gcjExIGNhbiBiZSBpdC4KKyAgICAgICAgICAgICAgICAgIC8vIG1vdmFic3EgJDB4NTU1NTU1NTU1NTU1NTU1NSwgJXIxMQorICAgICAgICAgICAgICAgICAgKnArKyA9IDB4NDk7ICpwKysgPSAweEJCOworICAgICAgICAgICAgICAgICAgcCA9IGVtaXQ2NChwLCAweDU1NTU1NTU1NTU1NTU1NTVVTEwpOworICAgICAgICAgICAgICAgICAgLy8gbW92cSAlcjExLCAwKCVyc3ApCisgICAgICAgICAgICAgICAgICAqcCsrID0gMHg0QzsgKnArKyA9IDB4ODk7ICpwKysgPSAweDFDOyAqcCsrID0gMHgyNDsKKyAgICAgICAgICAgICAgICAgIC8vIG1vdnEgJXIxMSwgOCglcnNwKQorICAgICAgICAgICAgICAgICAgKnArKyA9IDB4NEM7ICpwKysgPSAweDg5OyAqcCsrID0gMHg1QzsgKnArKyA9IDB4MjQ7CisgICAgICAgICAgICAgICAgICAqcCsrID0gMHgwODsKKyAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgZ290byBiYWQ7IC8vQVRDIGZvciBhbGwgb3RoZXIgc3BPZmYgdmFsdWVzCisgICAgICAgICAgICBjYXNlIFJMUHJpX1YyNTZTcFJlbDoKKyAgICAgICAgICAgICAgIGdvdG8gYmFkOyAvL0FUQwogICAgICAgICAgICAgY2FzZSBSTFByaV9Ob25lOiBjYXNlIFJMUHJpX0lOVkFMSUQ6IGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICB2YXNzZXJ0KDApOworICAgICAgICAgICAgICAgdmFzc2VydCgwKTsgLy8gc2hvdWxkIG5ldmVyIGdldCBoZXJlCiAgICAgICAgICB9CiAKICAgICAgICAgIC8vIGFmdGVyOgpAQCAtMzAwNCw2ICszMDgwLDcgQEAKICAgICAgICAgIGNhc2UgSWprX0NsaWVudFJlcTogICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9DTElFTlRSRVE7ICAgYnJlYWs7CiAgICAgICAgICBjYXNlIElqa19TeXNfc3lzY2FsbDogdHJjdmFsID0gVkVYX1RSQ19KTVBfU1lTX1NZU0NBTEw7IGJyZWFrOwogICAgICAgICAgY2FzZSBJamtfU3lzX2ludDMyOiAgIHRyY3ZhbCA9IFZFWF9UUkNfSk1QX1NZU19JTlQzMjsgICBicmVhazsKKyAgICAgICAgIGNhc2UgSWprX1N5c19pbnQyMTA6ICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9TWVNfSU5UMjEwOyAgYnJlYWs7CiAgICAgICAgICBjYXNlIElqa19ZaWVsZDogICAgICAgdHJjdmFsID0gVkVYX1RSQ19KTVBfWUlFTEQ7ICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSBJamtfRW1XYXJuOiAgICAgIHRyY3ZhbCA9IFZFWF9UUkNfSk1QX0VNV0FSTjsgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgSWprX01hcEZhaWw6ICAgICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9NQVBGQUlMOyAgICAgYnJlYWs7CkBAIC0zMDgwLDcgKzMxNTcsNyBAQAogICAgfQogCiAgICBjYXNlIEFpbl9DU3RvcmU6IHsKLSAgICAgIC8qIEFGQUlDUyB0aGlzIGlzIGlkZW50aWNhbCB0byBBaW5fQ1N0b3JlIGV4Y2VwdCB0aGF0IHRoZSBvcGNvZGUKKyAgICAgIC8qIEFGQUlDUyB0aGlzIGlzIGlkZW50aWNhbCB0byBBaW5fQ0xvYWQgZXhjZXB0IHRoYXQgdGhlIG9wY29kZQogICAgICAgICAgaXMgMHg4OSBpbnN0ZWFkIG9mIDB4OEIuICovCiAgICAgICB2YXNzZXJ0KGktPkFpbi5DU3RvcmUuY29uZCAhPSBBY2NfQUxXQVlTKTsKIApAQCAtMzQxNyw2ICszNDk0LDYwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLT5BaW4uU3NlTGRTdC5hZGRyKTsKICAgICAgIGdvdG8gZG9uZTsKIAorICAgY2FzZSBBaW5fU3NlQ1N0b3JlOiB7CisgICAgICB2YXNzZXJ0KGktPkFpbi5Tc2VDU3RvcmUuY29uZCAhPSBBY2NfQUxXQVlTKTsKKworICAgICAgLyogVXNlIHB0bXAgZm9yIGJhY2twYXRjaGluZyBjb25kaXRpb25hbCBqdW1wcy4gKi8KKyAgICAgIHB0bXAgPSBOVUxMOworCisgICAgICAvKiBqbXAgZndkcyBpZiAhY29uZGl0aW9uICovCisgICAgICAqcCsrID0gdG9VQ2hhcigweDcwICsgKDB4RiAmIChpLT5BaW4uU3NlQ1N0b3JlLmNvbmQgXiAxKSkpOworICAgICAgcHRtcCA9IHA7IC8qIGZpbGwgaW4gdGhpcyBiaXQgbGF0ZXIgKi8KKyAgICAgICpwKysgPSAwOyAvKiAjIG9mIGJ5dGVzIHRvIGp1bXAgb3ZlcjsgZG9uJ3Qga25vdyBob3cgbWFueSB5ZXQuICovCisKKyAgICAgIC8qIE5vdyB0aGUgc3RvcmUuICovCisgICAgICAqcCsrID0gY2xlYXJXQml0KAorICAgICAgICAgICAgIHJleEFNb2RlX01fZW5jKHZyZWdFbmMzMjEwKGktPkFpbi5Tc2VDU3RvcmUuc3JjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLT5BaW4uU3NlQ1N0b3JlLmFkZHIpKTsKKyAgICAgICpwKysgPSAweDBGOyAKKyAgICAgICpwKysgPSB0b1VDaGFyKDB4MTEpOworICAgICAgcCA9IGRvQU1vZGVfTV9lbmMocCwgdnJlZ0VuYzMyMTAoaS0+QWluLlNzZUNTdG9yZS5zcmMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaS0+QWluLlNzZUNTdG9yZS5hZGRyKTsKKworICAgICAgLyogRml4IHVwIHRoZSBjb25kaXRpb25hbCBicmFuY2ggKi8KKyAgICAgIEludCBkZWx0YSA9IHAgLSBwdG1wOworICAgICAgdmFzc2VydChkZWx0YSA+IDAgJiYgZGVsdGEgPCA0MCk7CisgICAgICAqcHRtcCA9IHRvVUNoYXIoZGVsdGEtMSk7CisgICAgICBnb3RvIGRvbmU7CisgICB9CisKKyAgIGNhc2UgQWluX1NzZUNMb2FkOiB7CisgICAgICB2YXNzZXJ0KGktPkFpbi5Tc2VDTG9hZC5jb25kICE9IEFjY19BTFdBWVMpOworCisgICAgICAvKiBVc2UgcHRtcCBmb3IgYmFja3BhdGNoaW5nIGNvbmRpdGlvbmFsIGp1bXBzLiAqLworICAgICAgcHRtcCA9IE5VTEw7CisKKyAgICAgIC8qIGptcCBmd2RzIGlmICFjb25kaXRpb24gKi8KKyAgICAgICpwKysgPSB0b1VDaGFyKDB4NzAgKyAoMHhGICYgKGktPkFpbi5Tc2VDTG9hZC5jb25kIF4gMSkpKTsKKyAgICAgIHB0bXAgPSBwOyAvKiBmaWxsIGluIHRoaXMgYml0IGxhdGVyICovCisgICAgICAqcCsrID0gMDsgLyogIyBvZiBieXRlcyB0byBqdW1wIG92ZXI7IGRvbid0IGtub3cgaG93IG1hbnkgeWV0LiAqLworCisgICAgICAvKiBOb3cgdGhlIGxvYWQuICovCisgICAgICAqcCsrID0gY2xlYXJXQml0KAorICAgICAgICAgICAgIHJleEFNb2RlX01fZW5jKHZyZWdFbmMzMjEwKGktPkFpbi5Tc2VDTG9hZC5kc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGktPkFpbi5Tc2VDTG9hZC5hZGRyKSk7CisgICAgICAqcCsrID0gMHgwRjsgCisgICAgICAqcCsrID0gdG9VQ2hhcigweDEwKTsKKyAgICAgIHAgPSBkb0FNb2RlX01fZW5jKHAsIHZyZWdFbmMzMjEwKGktPkFpbi5Tc2VDTG9hZC5kc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaS0+QWluLlNzZUNMb2FkLmFkZHIpOworCisgICAgICAvKiBGaXggdXAgdGhlIGNvbmRpdGlvbmFsIGJyYW5jaCAqLworICAgICAgSW50IGRlbHRhID0gcCAtIHB0bXA7CisgICAgICB2YXNzZXJ0KGRlbHRhID4gMCAmJiBkZWx0YSA8IDQwKTsKKyAgICAgICpwdG1wID0gdG9VQ2hhcihkZWx0YS0xKTsKKyAgICAgIGdvdG8gZG9uZTsKKyAgIH0KKwogICAgY2FzZSBBaW5fU3NlTGR6TE86CiAgICAgICB2YXNzZXJ0KGktPkFpbi5Tc2VMZHpMTy5zeiA9PSA0IHx8IGktPkFpbi5Tc2VMZHpMTy5zeiA9PSA4KTsKICAgICAgIC8qIG1vdnNbc2RdIGFtb2RlLCAleG1tLWRzdCAqLwpAQCAtMzcyNSw3ICszODU2LDcgQEAKICAgIC8qTk9UUkVBQ0hFRCovCiAgICAKICAgZG9uZToKLSAgIHZhc3NlcnQocCAtICZidWZbMF0gPD0gMzIpOworICAgdmFzc2VydChwIC0gJmJ1ZlswXSA8PSA2NCk7CiAgICByZXR1cm4gcCAtICZidWZbMF07CiB9CiAKQEAgLTM3NTgsNyArMzg4OSw3IEBACiAgICBVQ2hhciogcCA9IChVQ2hhciopcGxhY2VfdG9fY2hhaW47CiAgICB2YXNzZXJ0KHBbMF0gPT0gMHg0OSk7CiAgICB2YXNzZXJ0KHBbMV0gPT0gMHhCQik7Ci0gICB2YXNzZXJ0KCooQWRkciopKCZwWzJdKSA9PSAoQWRkcilkaXNwX2NwX2NoYWluX21lX0VYUEVDVEVEKTsKKyAgIHZhc3NlcnQocmVhZF9taXNhbGlnbmVkX1VMb25nX0xFKCZwWzJdKSA9PSAoQWRkcilkaXNwX2NwX2NoYWluX21lX0VYUEVDVEVEKTsKICAgIHZhc3NlcnQocFsxMF0gPT0gMHg0MSk7CiAgICB2YXNzZXJ0KHBbMTFdID09IDB4RkYpOwogICAgdmFzc2VydChwWzEyXSA9PSAweEQzKTsKQEAgLTM4MDcsMTAgKzM5MzgsNyBAQAogICAgLyogQW5kIG1ha2UgdGhlIG1vZGlmaWNhdGlvbnMuICovCiAgICBpZiAoc2hvcnRPSykgewogICAgICAgcFswXSAgPSAweEU5OwotICAgICAgcFsxXSAgPSAoZGVsdGEgPj4gMCkgJiAweEZGOwotICAgICAgcFsyXSAgPSAoZGVsdGEgPj4gOCkgJiAweEZGOwotICAgICAgcFszXSAgPSAoZGVsdGEgPj4gMTYpICYgMHhGRjsKLSAgICAgIHBbNF0gID0gKGRlbHRhID4+IDI0KSAmIDB4RkY7CisgICAgICB3cml0ZV9taXNhbGlnbmVkX1VJbnRfTEUoJnBbMV0sIChVSW50KShJbnQpZGVsdGEpOwogICAgICAgcFs1XSAgPSAweDBGOyBwWzZdICA9IDB4MEI7CiAgICAgICBwWzddICA9IDB4MEY7IHBbOF0gID0gMHgwQjsKICAgICAgIHBbOV0gID0gMHgwRjsgcFsxMF0gPSAweDBCOwpAQCAtMzgyMCw3ICszOTQ4LDcgQEAKICAgICAgIHZhc3NlcnQoZGVsdGEgPT0gMExMIHx8IGRlbHRhID09IC0xTEwpOwogICAgfSBlbHNlIHsKICAgICAgIC8qIE1pbmltYWwgbW9kaWZpY2F0aW9ucyBmcm9tIHRoZSBzdGFydGluZyBzZXF1ZW5jZS4gKi8gICAKLSAgICAgKihBZGRyKikoJnBbMl0pID0gKEFkZHIpcGxhY2VfdG9fanVtcF90bzsKKyAgICAgIHdyaXRlX21pc2FsaWduZWRfVUxvbmdfTEUoJnBbMl0sIChVTG9uZykoQWRkcilwbGFjZV90b19qdW1wX3RvKTsKICAgICAgIHBbMTJdID0gMHhFMzsKICAgIH0KICAgIFZleEludmFsUmFuZ2UgdmlyID0geyAoSFdvcmQpcGxhY2VfdG9fY2hhaW4sIDEzIH07CkBAIC0zODU1LDcgKzM5ODMsOCBAQAogICAgVUNoYXIqIHAgICAgID0gKFVDaGFyKilwbGFjZV90b191bmNoYWluOwogICAgQm9vbCAgIHZhbGlkID0gRmFsc2U7CiAgICBpZiAocFswXSA9PSAweDQ5ICYmIHBbMV0gPT0gMHhCQgotICAgICAgICYmICooQWRkciopKCZwWzJdKSA9PSAoQWRkcilwbGFjZV90b19qdW1wX3RvX0VYUEVDVEVECisgICAgICAgJiYgcmVhZF9taXNhbGlnbmVkX1VMb25nX0xFKCZwWzJdKQorICAgICAgICAgID09IChVTG9uZykoQWRkcilwbGFjZV90b19qdW1wX3RvX0VYUEVDVEVECiAgICAgICAgJiYgcFsxMF0gPT0gMHg0MSAmJiBwWzExXSA9PSAweEZGICYmIHBbMTJdID09IDB4RTMpIHsKICAgICAgIC8qIGl0J3MgdGhlIGxvbmcgZm9ybSAqLwogICAgICAgdmFsaWQgPSBUcnVlOwpAQCAtMzg2Nyw3ICszOTk2LDcgQEAKICAgICAgICAmJiBwWzldICA9PSAweDBGICYmIHBbMTBdID09IDB4MEIKICAgICAgICAmJiBwWzExXSA9PSAweDBGICYmIHBbMTJdID09IDB4MEIpIHsKICAgICAgIC8qIEl0J3MgdGhlIHNob3J0IGZvcm0uICBDaGVjayB0aGUgb2Zmc2V0IGlzIHJpZ2h0LiAqLwotICAgICAgSW50ICBzMzIgPSAqKEludCopKCZwWzFdKTsKKyAgICAgIEludCAgczMyID0gKEludClyZWFkX21pc2FsaWduZWRfVUludF9MRSgmcFsxXSk7CiAgICAgICBMb25nIHM2NCA9IChMb25nKXMzMjsKICAgICAgIGlmICgoVUNoYXIqKXAgKyA1ICsgczY0ID09IHBsYWNlX3RvX2p1bXBfdG9fRVhQRUNURUQpIHsKICAgICAgICAgIHZhbGlkID0gVHJ1ZTsKQEAgLTM4ODYsNyArNDAxNSw3IEBACiAgICAqLwogICAgcFswXSA9IDB4NDk7CiAgICBwWzFdID0gMHhCQjsKLSAgICooQWRkciopKCZwWzJdKSA9IChBZGRyKWRpc3BfY3BfY2hhaW5fbWU7CisgICB3cml0ZV9taXNhbGlnbmVkX1VMb25nX0xFKCZwWzJdLCAoVUxvbmcpKEFkZHIpZGlzcF9jcF9jaGFpbl9tZSk7CiAgICBwWzEwXSA9IDB4NDE7CiAgICBwWzExXSA9IDB4RkY7CiAgICBwWzEyXSA9IDB4RDM7CmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X2FtZDY0X2RlZnMuaCBiL1ZFWC9wcml2L2hvc3RfYW1kNjRfZGVmcy5oCmluZGV4IGY3NmNkODMuLmZlOTk5ZjIgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfYW1kNjRfZGVmcy5oCisrKyBiL1ZFWC9wcml2L2hvc3RfYW1kNjRfZGVmcy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzkwLDYgKzM5MCw4IEBACiAgICAgICBBaW5fU3NlU0RTUywgICAgIC8qIHNjYWxhciBmbG9hdDMyIHRvL2Zyb20gZmxvYXQ2NCAqLwogICAgICAgQWluX1NzZUxkU3QsICAgICAvKiBTU0UgbG9hZC9zdG9yZSAzMi82NC8xMjggYml0cywgbm8gYWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLCB1cHBlciA5Ni82NC8wIGJpdHMgYXJiaXRyYXJ5ICovCisgICAgICBBaW5fU3NlQ1N0b3JlLCAgIC8qIFNTRSBjb25kaXRpb25hbCBzdG9yZSwgMTI4IGJpdCBvbmx5LCBhbnkgYWxpZ25tZW50ICovCisgICAgICBBaW5fU3NlQ0xvYWQsICAgIC8qIFNTRSBjb25kaXRpb25hbCBsb2FkLCAxMjggYml0IG9ubHksIGFueSBhbGlnbm1lbnQgKi8KICAgICAgIEFpbl9Tc2VMZHpMTywgICAgLyogU1NFIGxvYWQgbG93IDMyLzY0IGJpdHMsIHplcm8gcmVtYWluZGVyIG9mIHJlZyAqLwogICAgICAgQWluX1NzZTMyRng0LCAgICAvKiBTU0UgYmluYXJ5LCAzMkZ4NCAqLwogICAgICAgQWluX1NzZTMyRkxvLCAgICAvKiBTU0UgYmluYXJ5LCAzMkYgaW4gbG93ZXN0IGxhbmUgb25seSAqLwpAQCAtNjQyLDYgKzY0NCwxNiBAQAogICAgICAgICAgICAgQU1ENjRBTW9kZSogYWRkcjsKICAgICAgICAgIH0gU3NlTGRTdDsKICAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICBBTUQ2NENvbmRDb2RlIGNvbmQ7IC8qIG1heSBub3QgYmUgQWNjX0FMV0FZUyAqLworICAgICAgICAgICAgSFJlZyAgICAgICAgICBzcmM7CisgICAgICAgICAgICBBTUQ2NEFNb2RlKiAgIGFkZHI7CisgICAgICAgICB9IFNzZUNTdG9yZTsKKyAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICBBTUQ2NENvbmRDb2RlIGNvbmQ7IC8qIG1heSBub3QgYmUgQWNjX0FMV0FZUyAqLworICAgICAgICAgICAgQU1ENjRBTW9kZSogICBhZGRyOworICAgICAgICAgICAgSFJlZyAgICAgICAgICBkc3Q7CisgICAgICAgICB9IFNzZUNMb2FkOworICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIEludCAgICAgICAgIHN6OyAvKiA0IG9yIDggb25seSAqLwogICAgICAgICAgICAgSFJlZyAgICAgICAgcmVnOwogICAgICAgICAgICAgQU1ENjRBTW9kZSogYWRkcjsKQEAgLTc1MSw2ICs3NjMsOCBAQAogZXh0ZXJuIEFNRDY0SW5zdHIqIEFNRDY0SW5zdHJfU3NlU0YyU0kgICAoIEludCBzelMsIEludCBzekQsIEhSZWcgc3JjLCBIUmVnIGRzdCApOwogZXh0ZXJuIEFNRDY0SW5zdHIqIEFNRDY0SW5zdHJfU3NlU0RTUyAgICAoIEJvb2wgZnJvbTY0LCBIUmVnIHNyYywgSFJlZyBkc3QgKTsKIGV4dGVybiBBTUQ2NEluc3RyKiBBTUQ2NEluc3RyX1NzZUxkU3QgICAgKCBCb29sIGlzTG9hZCwgSW50IHN6LCBIUmVnLCBBTUQ2NEFNb2RlKiApOworZXh0ZXJuIEFNRDY0SW5zdHIqIEFNRDY0SW5zdHJfU3NlQ1N0b3JlICAoIEFNRDY0Q29uZENvZGUsIEhSZWcsIEFNRDY0QU1vZGUqICk7CitleHRlcm4gQU1ENjRJbnN0ciogQU1ENjRJbnN0cl9Tc2VDTG9hZCAgICggQU1ENjRDb25kQ29kZSwgQU1ENjRBTW9kZSosIEhSZWcgKTsKIGV4dGVybiBBTUQ2NEluc3RyKiBBTUQ2NEluc3RyX1NzZUxkekxPICAgKCBJbnQgc3osIEhSZWcsIEFNRDY0QU1vZGUqICk7CiBleHRlcm4gQU1ENjRJbnN0ciogQU1ENjRJbnN0cl9Tc2UzMkZ4NCAgICggQU1ENjRTc2VPcCwgSFJlZywgSFJlZyApOwogZXh0ZXJuIEFNRDY0SW5zdHIqIEFNRDY0SW5zdHJfU3NlMzJGTG8gICAoIEFNRDY0U3NlT3AsIEhSZWcsIEhSZWcgKTsKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfYW1kNjRfaXNlbC5jIGIvVkVYL3ByaXYvaG9zdF9hbWQ2NF9pc2VsLmMKaW5kZXggMzQwM2Q1NC4uYTA4Yzk4MCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9hbWQ2NF9pc2VsLmMKKysrIGIvVkVYL3ByaXYvaG9zdF9hbWQ2NF9pc2VsLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00Mjk4LDIxICs0Mjk4LDM1IEBACiAKICAgICAgIFVDaGFyIHN6QiA9IDA7IC8qIGludmFsaWQgKi8KICAgICAgIHN3aXRjaCAobGctPmN2dCkgewotICAgICAgICAgY2FzZSBJTEdvcF9JZGVudDMyOiBzekIgPSA0OyBicmVhazsKLSAgICAgICAgIGNhc2UgSUxHb3BfSWRlbnQ2NDogc3pCID0gODsgYnJlYWs7CisgICAgICAgICBjYXNlIElMR29wX0lkZW50MzI6ICAgc3pCID0gNDsgIGJyZWFrOworICAgICAgICAgY2FzZSBJTEdvcF9JZGVudDY0OiAgIHN6QiA9IDg7ICBicmVhazsKKyAgICAgICAgIGNhc2UgSUxHb3BfSWRlbnRWMTI4OiBzekIgPSAxNjsgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OiBicmVhazsKICAgICAgIH0KICAgICAgIGlmIChzekIgPT0gMCkKICAgICAgICAgIGdvdG8gc3RtdF9mYWlsOwogCi0gICAgICBBTUQ2NEFNb2RlKiBhbUFkZHIgPSBpc2VsSW50RXhwcl9BTW9kZShlbnYsIGxnLT5hZGRyKTsKLSAgICAgIEhSZWcgckFsdCAgPSBpc2VsSW50RXhwcl9SKGVudiwgbGctPmFsdCk7Ci0gICAgICBIUmVnIHJEc3QgID0gbG9va3VwSVJUZW1wKGVudiwgbGctPmRzdCk7CisgICAgICBBTUQ2NEFNb2RlKiBhbUFkZHIKKyAgICAgICAgID0gaXNlbEludEV4cHJfQU1vZGUoZW52LCBsZy0+YWRkcik7CisgICAgICBIUmVnIHJBbHQKKyAgICAgICAgID0gc3pCID09IDE2ID8gaXNlbFZlY0V4cHIoZW52LCBsZy0+YWx0KQorICAgICAgICAgICAgICAgICAgICAgOiBpc2VsSW50RXhwcl9SKGVudiwgbGctPmFsdCk7CisgICAgICBIUmVnIHJEc3QKKyAgICAgICAgID0gbG9va3VwSVJUZW1wKGVudiwgbGctPmRzdCk7CisKICAgICAgIC8qIEdldCB0aGUgYWx0IHZhbHVlIGludG8gdGhlIGRzdC4gIFdlJ2xsIGRvIGEgY29uZGl0aW9uYWwgbG9hZAogICAgICAgICAgd2hpY2ggb3ZlcndyaXRlcyBpdCAtLSBvciBub3QgLS0gd2l0aCBsb2FkZWQgZGF0YS4gKi8KLSAgICAgIGFkZEluc3RyKGVudiwgbWtfaU1PVnNkX1JSKHJBbHQsIHJEc3QpKTsKKyAgICAgIGlmIChzekIgPT0gMTYpIHsKKyAgICAgICAgIGFkZEluc3RyKGVudiwgbWtfdk1PVnNkX1JSKHJBbHQsIHJEc3QpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICBhZGRJbnN0cihlbnYsIG1rX2lNT1ZzZF9SUihyQWx0LCByRHN0KSk7CisgICAgICB9CiAgICAgICBBTUQ2NENvbmRDb2RlIGNjID0gaXNlbENvbmRDb2RlKGVudiwgbGctPmd1YXJkKTsKLSAgICAgIGFkZEluc3RyKGVudiwgQU1ENjRJbnN0cl9DTG9hZChjYywgc3pCLCBhbUFkZHIsIHJEc3QpKTsKKyAgICAgIGlmIChzekIgPT0gMTYpIHsKKyAgICAgICAgIGFkZEluc3RyKGVudiwgQU1ENjRJbnN0cl9Tc2VDTG9hZChjYywgYW1BZGRyLCByRHN0KSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgYWRkSW5zdHIoZW52LCBBTUQ2NEluc3RyX0NMb2FkKGNjLCBzekIsIGFtQWRkciwgckRzdCkpOworICAgICAgfQogICAgICAgcmV0dXJuOwogICAgfQogCkBAIC00MzI0LDE3ICs0MzM4LDI2IEBACiAKICAgICAgIFVDaGFyIHN6QiA9IDA7IC8qIGludmFsaWQgKi8KICAgICAgIHN3aXRjaCAodHlwZU9mSVJFeHByKGVudi0+dHlwZV9lbnYsIHNnLT5kYXRhKSkgewotICAgICAgICAgY2FzZSBJdHlfSTMyOiBzekIgPSA0OyBicmVhazsKLSAgICAgICAgIGNhc2UgSXR5X0k2NDogc3pCID0gODsgYnJlYWs7CisgICAgICAgICBjYXNlIEl0eV9JMzI6ICBzekIgPSA0OyBicmVhazsKKyAgICAgICAgIGNhc2UgSXR5X0k2NDogIHN6QiA9IDg7IGJyZWFrOworICAgICAgICAgY2FzZSBJdHlfVjEyODogc3pCID0gMTY7IGJyZWFrOwogICAgICAgICAgZGVmYXVsdDogYnJlYWs7CiAgICAgICB9CiAgICAgICBpZiAoc3pCID09IDApCiAgICAgICAgICBnb3RvIHN0bXRfZmFpbDsKIAotICAgICAgQU1ENjRBTW9kZSogICBhbUFkZHIgPSBpc2VsSW50RXhwcl9BTW9kZShlbnYsIHNnLT5hZGRyKTsKLSAgICAgIEhSZWcgICAgICAgICAgclNyYyAgID0gaXNlbEludEV4cHJfUihlbnYsIHNnLT5kYXRhKTsKLSAgICAgIEFNRDY0Q29uZENvZGUgY2MgICAgID0gaXNlbENvbmRDb2RlKGVudiwgc2ctPmd1YXJkKTsKLSAgICAgIGFkZEluc3RyKGVudiwgQU1ENjRJbnN0cl9DU3RvcmUoY2MsIHN6QiwgclNyYywgYW1BZGRyKSk7CisgICAgICBBTUQ2NEFNb2RlKiBhbUFkZHIKKyAgICAgICAgID0gaXNlbEludEV4cHJfQU1vZGUoZW52LCBzZy0+YWRkcik7CisgICAgICBIUmVnIHJTcmMKKyAgICAgICAgID0gc3pCID09IDE2ID8gaXNlbFZlY0V4cHIoZW52LCBzZy0+ZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgIDogaXNlbEludEV4cHJfUihlbnYsIHNnLT5kYXRhKTsKKyAgICAgIEFNRDY0Q29uZENvZGUgY2MKKyAgICAgICAgID0gaXNlbENvbmRDb2RlKGVudiwgc2ctPmd1YXJkKTsKKyAgICAgIGlmIChzekIgPT0gMTYpIHsKKyAgICAgICAgIGFkZEluc3RyKGVudiwgQU1ENjRJbnN0cl9Tc2VDU3RvcmUoY2MsIHJTcmMsIGFtQWRkcikpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgIGFkZEluc3RyKGVudiwgQU1ENjRJbnN0cl9DU3RvcmUoY2MsIHN6QiwgclNyYywgYW1BZGRyKSk7CisgICAgICB9CiAgICAgICByZXR1cm47CiAgICB9CiAKQEAgLTQ3NzQsNiArNDc5Nyw3IEBACiAgICAgICAgICBjYXNlIElqa19TaWdTRUdWOgogICAgICAgICAgY2FzZSBJamtfU2lnVFJBUDoKICAgICAgICAgIGNhc2UgSWprX1N5c19zeXNjYWxsOgorICAgICAgICAgY2FzZSBJamtfU3lzX2ludDIxMDoKICAgICAgICAgIGNhc2UgSWprX0ludmFsSUNhY2hlOgogICAgICAgICAgY2FzZSBJamtfWWllbGQ6CiAgICAgICAgICB7CkBAIC00ODY5LDYgKzQ4OTMsNyBAQAogICAgICAgY2FzZSBJamtfU2lnU0VHVjoKICAgICAgIGNhc2UgSWprX1NpZ1RSQVA6CiAgICAgICBjYXNlIElqa19TeXNfc3lzY2FsbDoKKyAgICAgIGNhc2UgSWprX1N5c19pbnQyMTA6CiAgICAgICBjYXNlIElqa19JbnZhbElDYWNoZToKICAgICAgIGNhc2UgSWprX1lpZWxkOiB7CiAgICAgICAgICBIUmVnICAgICAgICByICAgICA9IGlzZWxJbnRFeHByX1IoZW52LCBuZXh0KTsKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfYXJtNjRfZGVmcy5jIGIvVkVYL3ByaXYvaG9zdF9hcm02NF9kZWZzLmMKaW5kZXggYjg4NmU4MS4uODJmNjU4ZSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9hcm02NF9kZWZzLmMKKysrIGIvVkVYL3ByaXYvaG9zdF9hcm02NF9kZWZzLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgT3BlbldvcmtzCisgICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBPcGVuV29ya3MKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzYxNyw3ICszNjE3LDcgQEAKICAgICAgICAgICAgIGNhc2UgSWprX0NsaWVudFJlcTogICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9DTElFTlRSRVE7ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIElqa19TeXNfc3lzY2FsbDogdHJjdmFsID0gVkVYX1RSQ19KTVBfU1lTX1NZU0NBTEw7IGJyZWFrOwogICAgICAgICAgICAgLy9jYXNlIElqa19TeXNfaW50MTI4OiAgdHJjdmFsID0gVkVYX1RSQ19KTVBfU1lTX0lOVDEyODsgIGJyZWFrOwotICAgICAgICAgICAgLy9jYXNlIElqa19ZaWVsZDogICAgICAgdHJjdmFsID0gVkVYX1RSQ19KTVBfWUlFTEQ7ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJamtfWWllbGQ6ICAgICAgIHRyY3ZhbCA9IFZFWF9UUkNfSk1QX1lJRUxEOyAgICAgICBicmVhazsKICAgICAgICAgICAgIC8vY2FzZSBJamtfRW1XYXJuOiAgICAgIHRyY3ZhbCA9IFZFWF9UUkNfSk1QX0VNV0FSTjsgICAgICBicmVhazsKICAgICAgICAgICAgIC8vY2FzZSBJamtfTWFwRmFpbDogICAgIHRyY3ZhbCA9IFZFWF9UUkNfSk1QX01BUEZBSUw7ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgSWprX05vRGVjb2RlOiAgICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9OT0RFQ09ERTsgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X2FybTY0X2RlZnMuaCBiL1ZFWC9wcml2L2hvc3RfYXJtNjRfZGVmcy5oCmluZGV4IDAzOWZjZTEuLmQ3NGY4YTEgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfYXJtNjRfZGVmcy5oCisrKyBiL1ZFWC9wcml2L2hvc3RfYXJtNjRfZGVmcy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMy0yMDEzIE9wZW5Xb3JrcworICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgT3BlbldvcmtzCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfYXJtNjRfaXNlbC5jIGIvVkVYL3ByaXYvaG9zdF9hcm02NF9pc2VsLmMKaW5kZXggMDU2OGZkZS4uYTU3MjQwOCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9hcm02NF9pc2VsLmMKKysrIGIvVkVYL3ByaXYvaG9zdF9hcm02NF9pc2VsLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgT3BlbldvcmtzCisgICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBPcGVuV29ya3MKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzg3MCw5ICszODcwLDcgQEAKICAgICAgICAgID0gbWtfYmFzZWJsb2NrXzY0Yml0X2FjY2Vzc19hbW9kZShzdG10LT5Jc3QuRXhpdC5vZmZzSVApOwogCiAgICAgICAvKiBDYXNlOiBib3JpbmcgdHJhbnNmZXIgdG8ga25vd24gYWRkcmVzcyAqLwotICAgICAgaWYgKHN0bXQtPklzdC5FeGl0LmprID09IElqa19Cb3JpbmcKLSAgICAgICAgICAvKkFUQyB8fCBzdG10LT5Jc3QuRXhpdC5qayA9PSBJamtfQ2FsbCAqLwotICAgICAgICAgIC8qQVRDIHx8IHN0bXQtPklzdC5FeGl0LmprID09IElqa19SZXQgKi8gKSB7CisgICAgICBpZiAoc3RtdC0+SXN0LkV4aXQuamsgPT0gSWprX0JvcmluZykgewogICAgICAgICAgaWYgKGVudi0+Y2hhaW5pbmdBbGxvd2VkKSB7CiAgICAgICAgICAgICAvKiAuLiBhbG1vc3QgYWx3YXlzIHRydWUgLi4gKi8KICAgICAgICAgICAgIC8qIFNraXAgdGhlIGV2ZW50IGNoZWNrIGF0IHRoZSBkc3QgaWYgdGhpcyBpcyBhIGZvcndhcmRzCkBAIC0zODkyLDYgKzM4OTAsMjYgQEAKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KIAorICAgICAgLyogQ2FzZTogYXNzaXN0ZWQgdHJhbnNmZXIgdG8gYXJiaXRyYXJ5IGFkZHJlc3MgKi8KKyAgICAgIHN3aXRjaCAoc3RtdC0+SXN0LkV4aXQuamspIHsKKyAgICAgICAgIC8qIEtlZXAgdGhpcyBsaXN0IGluIHN5bmMgd2l0aCB0aGF0IGZvciBpc2VsTmV4dCBiZWxvdyAqLworICAgICAgICAgY2FzZSBJamtfQ2xpZW50UmVxOgorICAgICAgICAgY2FzZSBJamtfTm9EZWNvZGU6CisgICAgICAgICBjYXNlIElqa19Ob1JlZGlyOgorICAgICAgICAgY2FzZSBJamtfU3lzX3N5c2NhbGw6CisgICAgICAgICBjYXNlIElqa19JbnZhbElDYWNoZToKKyAgICAgICAgIGNhc2UgSWprX0ZsdXNoRENhY2hlOgorICAgICAgICAgY2FzZSBJamtfU2lnVFJBUDoKKyAgICAgICAgIGNhc2UgSWprX1lpZWxkOiB7CisgICAgICAgICAgICBIUmVnIHIgPSBpc2VsSW50RXhwcl9SKGVudiwgSVJFeHByX0NvbnN0KHN0bXQtPklzdC5FeGl0LmRzdCkpOworICAgICAgICAgICAgYWRkSW5zdHIoZW52LCBBUk02NEluc3RyX1hBc3Npc3RlZChyLCBhbVBDLCBjYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RtdC0+SXN0LkV4aXQuamspKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgIH0KKwogICAgICAgLyogRG8gd2UgZXZlciBleHBlY3QgdG8gc2VlIGFueSBvdGhlciBraW5kPyAqLwogICAgICAgZ290byBzdG10X2ZhaWw7CiAgICB9CkBAIC0zOTc1LDYgKzM5OTMsNyBAQAogICAgICAgY2FzZSBJamtfSW52YWxJQ2FjaGU6CiAgICAgICBjYXNlIElqa19GbHVzaERDYWNoZToKICAgICAgIGNhc2UgSWprX1NpZ1RSQVA6CisgICAgICBjYXNlIElqa19ZaWVsZDoKICAgICAgIHsKICAgICAgICAgIEhSZWcgICAgICAgIHIgICAgPSBpc2VsSW50RXhwcl9SKGVudiwgbmV4dCk7CiAgICAgICAgICBBUk02NEFNb2RlKiBhbVBDID0gbWtfYmFzZWJsb2NrXzY0Yml0X2FjY2Vzc19hbW9kZShvZmZzSVApOwpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9hcm1fZGVmcy5jIGIvVkVYL3ByaXYvaG9zdF9hcm1fZGVmcy5jCmluZGV4IDMxMDI3MWQuLjgyZDU1MTkgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfYXJtX2RlZnMuYworKysgYi9WRVgvcHJpdi9ob3N0X2FybV9kZWZzLmMKQEAgLTcsMTEgKzcsMTEgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIE5FT04gc3VwcG9ydCBpcwotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcwogICAgY29udHJpYnV0ZWQgYnkgRG1pdHJ5IFpodXJpa2hpbiA8emh1ckBpc3ByYXMucnU+CiAgICAgICAgICAgICAgIGFuZCBLaXJpbGwgQmF0dXpvdiA8YmF0dXpvdmtAaXNwcmFzLnJ1PgogCkBAIC02NTYsNyArNjU2LDcgQEAKIHsKICAgIHBwSFJlZ0FSTShwLT5yZWcpOwogICAgaWYgKHAtPnRhZyA9PSBBUk1OUlNfU2NhbGFyKSB7Ci0gICAgICB2ZXhfcHJpbnRmKCJbJWRdIiwgcC0+aW5kZXgpOworICAgICAgdmV4X3ByaW50ZigiWyV1XSIsIHAtPmluZGV4KTsKICAgIH0KIH0KIApAQCAtMTg4OSw3ICsxODg5LDcgQEAKICAgICAgICAgICAgICBpLT5BUk1pbi5OVW5hcnkub3AgPT0gQVJNbmVvbl9WQ1ZURnRvRml4ZWRVIHx8CiAgICAgICAgICAgICAgaS0+QVJNaW4uTlVuYXJ5Lm9wID09IEFSTW5lb25fVkNWVEZpeGVkU3RvRiB8fAogICAgICAgICAgICAgIGktPkFSTWluLk5VbmFyeS5vcCA9PSBBUk1uZW9uX1ZDVlRGaXhlZFV0b0YpIHsKLSAgICAgICAgICAgIHZleF9wcmludGYoIiwgIyVkIiwgaS0+QVJNaW4uTlVuYXJ5LnNpemUpOworICAgICAgICAgICAgdmV4X3ByaW50ZigiLCAjJXUiLCBpLT5BUk1pbi5OVW5hcnkuc2l6ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaS0+QVJNaW4uTlVuYXJ5Lm9wID09IEFSTW5lb25fVlFTSExOU1MgfHwKICAgICAgICAgICAgICBpLT5BUk1pbi5OVW5hcnkub3AgPT0gQVJNbmVvbl9WUVNITE5VVSB8fApAQCAtMTg5NywxMyArMTg5NywxMyBAQAogICAgICAgICAgICAgVUludCBzaXplOwogICAgICAgICAgICAgc2l6ZSA9IGktPkFSTWluLk5VbmFyeS5zaXplOwogICAgICAgICAgICAgaWYgKHNpemUgJiAweDQwKSB7Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCIsICMlZCIsIHNpemUgLSA2NCk7CisgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCIsICMldSIsIHNpemUgLSA2NCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHNpemUgJiAweDIwKSB7Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCIsICMlZCIsIHNpemUgLSAzMik7CisgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCIsICMldSIsIHNpemUgLSAzMik7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHNpemUgJiAweDEwKSB7Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCIsICMlZCIsIHNpemUgLSAxNik7CisgICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCIsICMldSIsIHNpemUgLSAxNik7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHNpemUgJiAweDA4KSB7Ci0gICAgICAgICAgICAgICB2ZXhfcHJpbnRmKCIsICMlZCIsIHNpemUgLSA4KTsKKyAgICAgICAgICAgICAgIHZleF9wcmludGYoIiwgIyV1Iiwgc2l6ZSAtIDgpOwogICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuOwpAQCAtMTk3Myw3ICsxOTczLDcgQEAKICAgICAgICAgIHZleF9wcmludGYoIiwgIik7CiAgICAgICAgICBwcEhSZWdBUk0oaS0+QVJNaW4uQWRkMzIuck4pOwogICAgICAgICAgdmV4X3ByaW50ZigiLCAiKTsKLSAgICAgICAgIHZleF9wcmludGYoIiVkIiwgaS0+QVJNaW4uQWRkMzIuaW1tMzIpOworICAgICAgICAgdmV4X3ByaW50ZigiJXUiLCBpLT5BUk1pbi5BZGQzMi5pbW0zMik7CiAgICAgICAgICByZXR1cm47CiAgICAgICBjYXNlIEFSTWluX0V2Q2hlY2s6CiAgICAgICAgICB2ZXhfcHJpbnRmKCIoZXZDaGVjaykgbGRyIHIxMiwiKTsKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfYXJtX2RlZnMuaCBiL1ZFWC9wcml2L2hvc3RfYXJtX2RlZnMuaAppbmRleCBmMGIxNzJiLi40N2Y0NTlkIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ob3N0X2FybV9kZWZzLmgKKysrIGIvVkVYL3ByaXYvaG9zdF9hcm1fZGVmcy5oCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9hcm1faXNlbC5jIGIvVkVYL3ByaXYvaG9zdF9hcm1faXNlbC5jCmluZGV4IGI4NjdjM2QuLjE1MTMxMTIgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfYXJtX2lzZWwuYworKysgYi9WRVgvcHJpdi9ob3N0X2FybV9pc2VsLmMKQEAgLTcsMTEgKzcsMTEgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIE5FT04gc3VwcG9ydCBpcwotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgU2Ftc3VuZyBFbGVjdHJvbmljcwogICAgY29udHJpYnV0ZWQgYnkgRG1pdHJ5IFpodXJpa2hpbiA8emh1ckBpc3ByYXMucnU+CiAgICAgICAgICAgICAgIGFuZCBLaXJpbGwgQmF0dXpvdiA8YmF0dXpvdmtAaXNwcmFzLnJ1PgogCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfbWFkZGYuYyBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19tYWRkZi5jCmluZGV4IGQ0ZTlmYjcuLmZlNDQ5NzQgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19tYWRkZi5jCisrKyBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19tYWRkZi5jCkBAIC01LDcgKzUsNyBAQAogCiAvKiAKICAgIENvbXB1dGUgeCAqIHkgKyB6IGFzIHRlcm5hcnkgb3BlcmF0aW9uLgotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgogICAgQ29udHJpYnV0ZWQgYnkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4sIDIwMTAuCiAKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19tYWRkZi5oIGIvVkVYL3ByaXYvaG9zdF9nZW5lcmljX21hZGRmLmgKaW5kZXggNjc1N2Y3NC4uNzI4MmQ5NyAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX21hZGRmLmgKKysrIGIvVkVYL3ByaXYvaG9zdF9nZW5lcmljX21hZGRmLmgKQEAgLTUsNyArNSw3IEBACiAKIC8qIAogICAgQ29tcHV0ZSB4ICogeSArIHogYXMgdGVybmFyeSBvcGVyYXRpb24uCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCiAgICBDb250cmlidXRlZCBieSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiwgMjAxMC4KIApkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3JlZ19hbGxvYzIuYyBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19yZWdfYWxsb2MyLmMKaW5kZXggYjMwMzYwNi4uZmQ0NjQ4NiAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3JlZ19hbGxvYzIuYworKysgYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfcmVnX2FsbG9jMi5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3JlZ3MuYyBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19yZWdzLmMKaW5kZXggYTYxOTJmNy4uMzNmYzdhMyAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3JlZ3MuYworKysgYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfcmVncy5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3JlZ3MuaCBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19yZWdzLmgKaW5kZXggYjZkZTA3Yi4uNWM0ODA0ZSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3JlZ3MuaAorKysgYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfcmVncy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQxMjguYyBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19zaW1kMTI4LmMKaW5kZXggMjJkZjcwOC4uNzdhMzE4MyAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQxMjguYworKysgYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfc2ltZDEyOC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIE9wZW5Xb3JrcyBHYlIKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IE9wZW5Xb3JrcyBHYlIKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQxMjguaCBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19zaW1kMTI4LmgKaW5kZXggYzMwYzBkZi4uYzU0NzY2NiAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQxMjguaAorKysgYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfc2ltZDEyOC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIE9wZW5Xb3JrcyBHYlIKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IE9wZW5Xb3JrcyBHYlIKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQyNTYuYyBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19zaW1kMjU2LmMKaW5kZXggYzVkZDdiNi4uMDQ1ZWU4ZCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQyNTYuYworKysgYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfc2ltZDI1Ni5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE9wZW5Xb3JrcyBHYlIKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IE9wZW5Xb3JrcyBHYlIKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQyNTYuaCBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19zaW1kMjU2LmgKaW5kZXggMjkxMzQzNS4uZmZiNTVmNCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQyNTYuaAorKysgYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfc2ltZDI1Ni5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIE9wZW5Xb3JrcyBHYlIKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IE9wZW5Xb3JrcyBHYlIKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQ2NC5jIGIvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQ2NC5jCmluZGV4IDM2NzQ5MWYuLmJlNzBmNWQgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19zaW1kNjQuYworKysgYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfc2ltZDY0LmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfc2ltZDY0LmggYi9WRVgvcHJpdi9ob3N0X2dlbmVyaWNfc2ltZDY0LmgKaW5kZXggZThkMzNkZi4uYzAxZTNjOSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9nZW5lcmljX3NpbWQ2NC5oCisrKyBiL1ZFWC9wcml2L2hvc3RfZ2VuZXJpY19zaW1kNjQuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfbWlwc19kZWZzLmMgYi9WRVgvcHJpdi9ob3N0X21pcHNfZGVmcy5jCmluZGV4IGQ4NWEzMDYuLjdkNzNlY2MgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfbWlwc19kZWZzLmMKKysrIGIvVkVYL3ByaXYvaG9zdF9taXBzX2RlZnMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM5Nyw3ICszOTcsNyBAQAogICAgICAgICAgcmV0ID0gImMubmd0LmQiOwogICAgICAgICAgYnJlYWs7CiAgICAgICBkZWZhdWx0OgotICAgICAgICAgdmV4X3ByaW50ZigiVW5rbm93biBvcDogJWQiLCBvcCk7CisgICAgICAgICB2ZXhfcHJpbnRmKCJVbmtub3duIG9wOiAlZCIsIChJbnQpb3ApOwogICAgICAgICAgdnBhbmljKCJzaG93TUlQU0ZwT3AiKTsKICAgICAgICAgIGJyZWFrOwogICAgfQpAQCAtMjEzNSw3ICsyMTM1LDcgQEAKICAgICAgICAgICAgIFVJbnQgZnVuYykKIHsKICAgIGlmIChycyA+PSAweDIwKQotICAgICAgdmV4X3ByaW50ZigicnMgPSAlZFxuIiwgcnMpOworICAgICAgdmV4X3ByaW50ZigicnMgPSAldVxuIiwgcnMpOwogICAgVUludCB0aGVJbnN0cjsKICAgIHZhc3NlcnQob3BjIDwgMHg0MCk7CiAgICB2YXNzZXJ0KHJzIDwgMHgyMCk7CkBAIC0yNTM0LDEzICsyNTM0LDkgQEAKICAgICAgICAgICAgIC8qIE1hbHVfQURELCBNYWx1X1NVQiwgTWFsdV9BTkQsIE1hbHVfT1IsIE1hbHVfTk9SLCBNYWx1X1hPUiwgTWFsdV9TTFQgKi8KICAgICAgICAgICAgIGNhc2UgTWFsdV9BREQ6CiAgICAgICAgICAgICAgICBpZiAoaW1tUikgewotICAgICAgICAgICAgICAgICAgdmFzc2VydChzcmNSLT5NcmguSW1tLmltbTE2ICE9IDB4ODAwMCk7Ci0gICAgICAgICAgICAgICAgICBpZiAoc3JjUi0+TXJoLkltbS5zeW5lZCkKLSAgICAgICAgICAgICAgICAgICAgIC8qIGFkZGkgKi8KLSAgICAgICAgICAgICAgICAgICAgIHAgPSBta0Zvcm1JKHAsIDksIHJfc3JjTCwgcl9kc3QsIHNyY1ItPk1yaC5JbW0uaW1tMTYpOwotICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgLyogYWRkaXUgKi8KLSAgICAgICAgICAgICAgICAgICAgIHAgPSBta0Zvcm1JKHAsIDksIHJfc3JjTCwgcl9kc3QsIHNyY1ItPk1yaC5JbW0uaW1tMTYpOworICAgICAgICAgICAgICAgICAgdmFzc2VydChzcmNSLT5NcmguSW1tLnN5bmVkKTsKKyAgICAgICAgICAgICAgICAgIC8qIGFkZGl1ICovCisgICAgICAgICAgICAgICAgICBwID0gbWtGb3JtSShwLCA5LCByX3NyY0wsIHJfZHN0LCBzcmNSLT5NcmguSW1tLmltbTE2KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAvKiBhZGR1ICovCiAgICAgICAgICAgICAgICAgICBwID0gbWtGb3JtUihwLCAwLCByX3NyY0wsIHJfc3JjUiwgcl9kc3QsIDAsIDMzKTsKQEAgLTI1NDgsMTAgKzI1NDQsMTAgQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBNYWx1X1NVQjoKICAgICAgICAgICAgICAgIGlmIChpbW1SKSB7Ci0gICAgICAgICAgICAgICAgICAvKiBhZGRpICwgYnV0IHdpdGggbmVnYXRlZCBpbW0gKi8KKyAgICAgICAgICAgICAgICAgIC8qIGFkZGl1ICwgYnV0IHdpdGggbmVnYXRlZCBpbW0gKi8KICAgICAgICAgICAgICAgICAgIHZhc3NlcnQoc3JjUi0+TXJoLkltbS5zeW5lZCk7CiAgICAgICAgICAgICAgICAgICB2YXNzZXJ0KHNyY1ItPk1yaC5JbW0uaW1tMTYgIT0gMHg4MDAwKTsKLSAgICAgICAgICAgICAgICAgIHAgPSBta0Zvcm1JKHAsIDgsIHJfc3JjTCwgcl9kc3QsICgtc3JjUi0+TXJoLkltbS5pbW0xNikpOworICAgICAgICAgICAgICAgICAgcCA9IG1rRm9ybUkocCwgOSwgcl9zcmNMLCByX2RzdCwgKC1zcmNSLT5NcmguSW1tLmltbTE2KSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgLyogc3VidSAqLwogICAgICAgICAgICAgICAgICAgcCA9IG1rRm9ybVIocCwgMCwgcl9zcmNMLCByX3NyY1IsIHJfZHN0LCAwLCAzNSk7CmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X21pcHNfZGVmcy5oIGIvVkVYL3ByaXYvaG9zdF9taXBzX2RlZnMuaAppbmRleCA1MDBjOTdmLi44NTA0NDk4IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ob3N0X21pcHNfZGVmcy5oCisrKyBiL1ZFWC9wcml2L2hvc3RfbWlwc19kZWZzLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgUlQtUksKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFJULVJLCiAgICAgICBtaXBzLXZhbGdyaW5kQHJ0LXJrLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X21pcHNfaXNlbC5jIGIvVkVYL3ByaXYvaG9zdF9taXBzX2lzZWwuYwppbmRleCAyMTNjNTJhLi5hNGE4OWNiIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ob3N0X21pcHNfaXNlbC5jCisrKyBiL1ZFWC9wcml2L2hvc3RfbWlwc19pc2VsLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgUlQtUksKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFJULVJLCiAgICAgICBtaXBzLXZhbGdyaW5kQHJ0LXJrLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X3BwY19kZWZzLmMgYi9WRVgvcHJpdi9ob3N0X3BwY19kZWZzLmMKaW5kZXggZTlkZTA4Yi4uMTNiMTkzYyAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9wcGNfZGVmcy5jCisrKyBiL1ZFWC9wcml2L2hvc3RfcHBjX2RlZnMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU1MTAsNyArNTUxMCw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB2ZXhfcHJpbnRmKCJFUlJPUjogZW1pdF9QUENJbnN0ciBxdWFkIGRlZmF1bHQgY2FzZSAlZCBcbiIsCi0gICAgICAgICAgICAgICAgICAgIGktPlBpbi5EZnBTaGlmdDEyOC5vcCk7CisgICAgICAgICAgICAgICAgICAgIChJbnQpaS0+UGluLkRmcFNoaWZ0MTI4Lm9wKTsKICAgICAgICAgIGdvdG8gYmFkOwogICAgICAgfQogCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X3BwY19kZWZzLmggYi9WRVgvcHJpdi9ob3N0X3BwY19kZWZzLmgKaW5kZXggOGY0MTE5MC4uYzA0Yzk5NCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF9wcGNfZGVmcy5oCisrKyBiL1ZFWC9wcml2L2hvc3RfcHBjX2RlZnMuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfcHBjX2lzZWwuYyBiL1ZFWC9wcml2L2hvc3RfcHBjX2lzZWwuYwppbmRleCA0MGZlODk1Li40M2U3OTg5IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ob3N0X3BwY19pc2VsLmMKKysrIGIvVkVYL3ByaXYvaG9zdF9wcGNfaXNlbC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjQ3NSwxOSArMjQ3NSwyMSBAQAogc3RhdGljIEJvb2wgdUludF9maXRzX2luXzE2X2JpdHMgKCBVSW50IHUgKSAKIHsKICAgIC8qIElzIHUgdGhlIHNhbWUgYXMgdGhlIHNpZ24tZXh0ZW5kIG9mIGl0cyBsb3dlciAxNiBiaXRzPyAqLwotICAgSW50IGkgPSB1ICYgMHhGRkZGOwotICAgaSA8PD0gMTY7Ci0gICBpID4+PSAxNjsKLSAgIHJldHVybiB0b0Jvb2wodSA9PSAoVUludClpKTsKKyAgIFVJbnQgdiA9IHUgJiAweEZGRkY7CisKKyAgIHYgPSAoSW50KSh2IDw8IDE2KSA+PiAxNjsgICAvKiBzaWduIGV4dGVuZCAqLworCisgICByZXR1cm4gdSA9PSB2OwogfQogCiBzdGF0aWMgQm9vbCB1TG9uZ19maXRzX2luXzE2X2JpdHMgKCBVTG9uZyB1ICkgCiB7CiAgICAvKiBJcyB1IHRoZSBzYW1lIGFzIHRoZSBzaWduLWV4dGVuZCBvZiBpdHMgbG93ZXIgMTYgYml0cz8gKi8KLSAgIExvbmcgaSA9IHUgJiAweEZGRkZVTEw7Ci0gICBpIDw8PSA0ODsKLSAgIGkgPj49IDQ4OwotICAgcmV0dXJuIHRvQm9vbCh1ID09IChVTG9uZylpKTsKKyAgIFVMb25nIHYgPSB1ICYgMHhGRkZGVUxMOworCisgICB2ID0gKExvbmcpKHYgPDwgNDgpID4+IDQ4OyAgIC8qIHNpZ24gZXh0ZW5kICovCisKKyAgIHJldHVybiB1ID09IHY7CiB9CiAKIHN0YXRpYyBCb29sIHVMb25nX2lzXzRfYWxpZ25lZCAoIFVMb25nIHUgKQpAQCAtNDM2Miw3ICs0MzY0LDcgQEAKICAgICAgICB9CiAgICAgICBkZWZhdWx0OgogICAgICAgICAgdmV4X3ByaW50ZiggIkVSUk9SOiBpc2VsRGZwNjRFeHByX3dyaywgVU5LTk9XTiB1bm9wIGNhc2UgJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICBlLT5JZXguVW5vcC5vcCApOworICAgICAgICAgICAgICAgICAgICAgKEludCllLT5JZXguVW5vcC5vcCApOwogICAgICAgfQogICAgfQogCkBAIC00NzIxLDcgKzQ3MjMsNyBAQAogICAgICAgfQogICAgICAgZGVmYXVsdDoKICAgICAgICAgIHZleF9wcmludGYoICJFUlJPUjogaXNlbERmcDEyOEV4cHJfd3JrLCBVTktOT1dOIGJpbm9wIGNhc2UgJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICBlLT5JZXguQmlub3Aub3AgKTsKKyAgICAgICAgICAgICAgICAgICAgIChJbnQpZS0+SWV4LkJpbm9wLm9wICk7CiAgICAgICAgICBicmVhazsKICAgICAgIH0KICAgIH0KZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfczM5MF9kZWZzLmMgYi9WRVgvcHJpdi9ob3N0X3MzOTBfZGVmcy5jCmluZGV4IDk3NGVjNmQuLjk4ODVkNDcgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfczM5MF9kZWZzLmMKKysrIGIvVkVYL3ByaXYvaG9zdF9zMzkwX2RlZnMuYwpAQCAtOCw4ICs4LDggQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxMwotICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgIEZsb3JpYW4gS3JvaG0gICAoYnJpdHplbEBhY20ub3JnKQorICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTUKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1ICBGbG9yaWFuIEtyb2htICAgKGJyaXR6ZWxAYWNtLm9yZykKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTEwOCw4ICsxMDgsOCBAQAogICAgaWYgKGhyZWdJc1ZpcnR1YWwocmVnKSkgewogICAgICAgYnVmWzBdID0gJ1wwJzsKICAgICAgIHN3aXRjaCAoaHJlZ0NsYXNzKHJlZykpIHsKLSAgICAgIGNhc2UgSFJjSW50NjQ6IHZleF9zcHJpbnRmKGJ1ZiwgIiUldlIlZCIsIHIpOyBicmVhazsKLSAgICAgIGNhc2UgSFJjRmx0NjQ6IHZleF9zcHJpbnRmKGJ1ZiwgIiUldkYlZCIsIHIpOyBicmVhazsKKyAgICAgIGNhc2UgSFJjSW50NjQ6IHZleF9zcHJpbnRmKGJ1ZiwgIiUldlIldSIsIHIpOyBicmVhazsKKyAgICAgIGNhc2UgSFJjRmx0NjQ6IHZleF9zcHJpbnRmKGJ1ZiwgIiUldkYldSIsIHIpOyBicmVhazsKICAgICAgIGRlZmF1bHQ6ICAgICAgIGdvdG8gZmFpbDsKICAgICAgIH0KICAgICAgIHJldHVybiBidWY7CkBAIC0zOTM5LDYgKzM5MzksNTcgQEAKIAogCiBzdGF0aWMgVUNoYXIgKgorczM5MF9lbWl0X0ZJRUJSQShVQ2hhciAqcCwgVUNoYXIgbTMsIFVDaGFyIG00LCBVQ2hhciByMSwgVUNoYXIgcjIpCit7CisgICB2YXNzZXJ0KG0zID09IDAgfHwgczM5MF9ob3N0X2hhc19mcGV4dCk7CisKKyAgIGlmIChVTkxJS0VMWSh2ZXhfdHJhY2VmbGFncyAmIFZFWF9UUkFDRV9BU00pKSB7CisgICAgICBpZiAobTQgPT0gMCkKKyAgICAgICAgIHMzOTBfZGlzYXNtKEVOQzQoTU5NLCBGUFIsIFVJTlQsIEZQUiksICJmaWViciIsIHIxLCBtMywgcjIpOworICAgICAgZWxzZQorICAgICAgICAgczM5MF9kaXNhc20oRU5DNShNTk0sIEZQUiwgVUlOVCwgRlBSLCBVSU5UKSwKKyAgICAgICAgICAgICAgICAgICAgICJmaWVicmEiLCByMSwgbTMsIHIyLCBtNCk7CisgICB9CisKKyAgIHJldHVybiBlbWl0X1JSRjIocCwgMHhiMzU3MDAwMCwgbTMsIG00LCByMSwgcjIpOworfQorCisKK3N0YXRpYyBVQ2hhciAqCitzMzkwX2VtaXRfRklEQlJBKFVDaGFyICpwLCBVQ2hhciBtMywgVUNoYXIgbTQsIFVDaGFyIHIxLCBVQ2hhciByMikKK3sKKyAgIHZhc3NlcnQobTMgPT0gMCB8fCBzMzkwX2hvc3RfaGFzX2ZwZXh0KTsKKworICAgaWYgKFVOTElLRUxZKHZleF90cmFjZWZsYWdzICYgVkVYX1RSQUNFX0FTTSkpIHsKKyAgICAgIGlmIChtNCA9PSAwKQorICAgICAgICAgczM5MF9kaXNhc20oRU5DNChNTk0sIEZQUiwgVUlOVCwgRlBSKSwgImZpZGJyIiwgcjEsIG0zLCByMik7CisgICAgICBlbHNlCisgICAgICAgICBzMzkwX2Rpc2FzbShFTkM1KE1OTSwgRlBSLCBVSU5ULCBGUFIsIFVJTlQpLAorICAgICAgICAgICAgICAgICAgICAgImZpZGJyYSIsIHIxLCBtMywgcjIsIG00KTsKKyAgIH0KKworICAgcmV0dXJuIGVtaXRfUlJGMihwLCAweGIzNWYwMDAwLCBtMywgbTQsIHIxLCByMik7Cit9CisKKworc3RhdGljIFVDaGFyICoKK3MzOTBfZW1pdF9GSVhCUkEoVUNoYXIgKnAsIFVDaGFyIG0zLCBVQ2hhciBtNCwgVUNoYXIgcjEsIFVDaGFyIHIyKQoreworICAgdmFzc2VydChtMyA9PSAwIHx8IHMzOTBfaG9zdF9oYXNfZnBleHQpOworCisgICBpZiAoVU5MSUtFTFkodmV4X3RyYWNlZmxhZ3MgJiBWRVhfVFJBQ0VfQVNNKSkgeworICAgICAgaWYgKG00ID09IDApCisgICAgICAgICBzMzkwX2Rpc2FzbShFTkM0KE1OTSwgRlBSLCBVSU5ULCBGUFIpLCAiZml4YnIiLCByMSwgbTMsIHIyKTsKKyAgICAgIGVsc2UKKyAgICAgICAgIHMzOTBfZGlzYXNtKEVOQzUoTU5NLCBGUFIsIFVJTlQsIEZQUiwgVUlOVCksCisgICAgICAgICAgICAgICAgICAgICAiZml4YnJhIiwgcjEsIG0zLCByMiwgbTQpOworICAgfQorCisgICByZXR1cm4gZW1pdF9SUkYyKHAsIDB4YjM0NzAwMDAsIG0zLCBtNCwgcjEsIHIyKTsKK30KKworCitzdGF0aWMgVUNoYXIgKgogczM5MF9lbWl0X01FRUJSKFVDaGFyICpwLCBVQ2hhciByMSwgVUNoYXIgcjIpCiB7CiAgICBpZiAoVU5MSUtFTFkodmV4X3RyYWNlZmxhZ3MgJiBWRVhfVFJBQ0VfQVNNKSkKQEAgLTU3MTQsNyArNTc2NSw3IEBACiB9CiAKIAotc3RhdGljIHMzOTBfaW5zbiAqCitzMzkwX2luc24gKgogczM5MF9pbnNuX2JmcDEyOF9jb252ZXJ0KFVDaGFyIHNpemUsIHMzOTBfYmZwX2NvbnZfdCB0YWcsIEhSZWcgZHN0X2hpLAogICAgICAgICAgICAgICAgICAgICAgICAgIEhSZWcgZHN0X2xvLCBIUmVnIG9wX2hpLCBIUmVnIG9wX2xvLAogICAgICAgICAgICAgICAgICAgICAgICAgIHMzOTBfYmZwX3JvdW5kX3Qgcm91bmRpbmdfbW9kZSkKQEAgLTU3MjIsOSArNTc3MywxMCBAQAogICAgczM5MF9pbnNuICppbnNuID0gTGliVkVYX0FsbG9jX2lubGluZShzaXplb2YoczM5MF9pbnNuKSk7CiAKICAgIGlmIChzaXplID09IDE2KSB7Ci0gICAgICAvKiBGcm9tIHNtYWxsZXIgc2l6ZSB0byAxNiBieXRlcyAqLworICAgICAgLyogRnJvbSBzbWFsbGVyIG9yIGVxdWFsIHNpemUgdG8gMTYgYnl0ZXMgKi8KICAgICAgIHZhc3NlcnQoaXNfdmFsaWRfZnAxMjhfcmVncGFpcihkc3RfaGksIGRzdF9sbykpOwotICAgICAgdmFzc2VydChocmVnSXNJbnZhbGlkKG9wX2xvKSk7CisgICAgICB2YXNzZXJ0KGhyZWdJc0ludmFsaWQob3BfbG8pCisgICAgICAgICAgICAgIHx8IGlzX3ZhbGlkX2ZwMTI4X3JlZ3BhaXIob3BfaGksIG9wX2xvKSk7CiAgICB9IGVsc2UgewogICAgICAgLyogRnJvbSAxNiBieXRlcyB0byBzbWFsbGVyIHNpemUgKi8KICAgICAgIHZhc3NlcnQoaXNfdmFsaWRfZnAxMjhfcmVncGFpcihvcF9oaSwgb3BfbG8pKTsKQEAgLTYzODgsNyArNjQ0MCw3IEBACiAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgY2FzZSAnRyc6ICAgICAvKiAlRyA9IGd1ZXN0IHN0YXRlIEAgb2Zmc2V0ICovCi0gICAgICAgICBwICs9IHZleF9zcHJpbnRmKHAsICJndWVzdFslZF0iLCB2YV9hcmcoYXJncywgVUludCkpOworICAgICAgICAgcCArPSB2ZXhfc3ByaW50ZihwLCAiZ3Vlc3RbJXVdIiwgdmFfYXJnKGFyZ3MsIFVJbnQpKTsKICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICBjYXNlICdDJzogICAgIC8qICVDID0gY29uZGl0aW9uIGNvZGUgKi8KQEAgLTY0MDcsNyArNjQ1OSw3IEBACiAKICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fYXJnczsgKytpKSB7CiAgICAgICAgICAgICBpZiAoaSAhPSAwKSBwICs9IHZleF9zcHJpbnRmKHAsICIsICIpOwotICAgICAgICAgICAgcCArPSB2ZXhfc3ByaW50ZihwLCAiciVkIiwgczM5MF9ncHJub19mcm9tX2FyZ19pbmRleChpKSk7CisgICAgICAgICAgICBwICs9IHZleF9zcHJpbnRmKHAsICJyJXUiLCBzMzkwX2dwcm5vX2Zyb21fYXJnX2luZGV4KGkpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQpAQCAtNjY5Myw2ICs2NzQ1LDkgQEAKICAgICAgIGNhc2UgUzM5MF9CRlBfRjY0X1RPX0YxMjg6CiAgICAgICBjYXNlIFMzOTBfQkZQX0YxMjhfVE9fRjMyOgogICAgICAgY2FzZSBTMzkwX0JGUF9GMTI4X1RPX0Y2NDogb3AgPSAidi1mMmYiOyBicmVhazsKKyAgICAgIGNhc2UgUzM5MF9CRlBfRjMyX1RPX0YzMkk6CisgICAgICBjYXNlIFMzOTBfQkZQX0Y2NF9UT19GNjRJOgorICAgICAgY2FzZSBTMzkwX0JGUF9GMTI4X1RPX0YxMjhJOiBvcCA9ICJ2LWYyZmkiOyBicmVhazsKICAgICAgIGRlZmF1bHQ6IGdvdG8gZmFpbDsKICAgICAgIH0KICAgICAgIHMzOTBfc3ByaW50ZihidWYsICIlTSAlUiwlUiIsIG9wLCBpbnNuLT52YXJpYW50LmJmcF9jb252ZXJ0LmRzdF9oaSwKQEAgLTg5NjQsNiArOTAxOSwxMSBAQAogICAgY2FzZSBTMzkwX0JGUF9GMTI4X1RPX0YzMjogcmV0dXJuIHMzOTBfZW1pdF9MRVhCUkEoYnVmLCBtMywgbTQsIHIxLCByMik7CiAgICBjYXNlIFMzOTBfQkZQX0YxMjhfVE9fRjY0OiByZXR1cm4gczM5MF9lbWl0X0xEWEJSQShidWYsIG0zLCBtNCwgcjEsIHIyKTsKIAorICAgICAgLyogTG9hZCBGUCBpbnRlZ2VyICovCisgICBjYXNlIFMzOTBfQkZQX0YzMl9UT19GMzJJOiByZXR1cm4gczM5MF9lbWl0X0ZJRUJSQShidWYsIG0zLCBtNCwgcjEsIHIyKTsKKyAgIGNhc2UgUzM5MF9CRlBfRjY0X1RPX0Y2NEk6IHJldHVybiBzMzkwX2VtaXRfRklEQlJBKGJ1ZiwgbTMsIG00LCByMSwgcjIpOworICAgY2FzZSBTMzkwX0JGUF9GMTI4X1RPX0YxMjhJOiByZXR1cm4gczM5MF9lbWl0X0ZJWEJSQShidWYsIG0zLCBtNCwgcjEsIHIyKTsKKwogICAgZGVmYXVsdDogZ290byBmYWlsOwogICAgfQogCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X3MzOTBfZGVmcy5oIGIvVkVYL3ByaXYvaG9zdF9zMzkwX2RlZnMuaAppbmRleCA5ZDczMmY5Li5hN2M0YjFlIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ob3N0X3MzOTBfZGVmcy5oCisrKyBiL1ZFWC9wcml2L2hvc3RfczM5MF9kZWZzLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTMKKyAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDE1CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0yNDIsNyArMjQyLDEwIEBACiAgICBTMzkwX0JGUF9GMTI4X1RPX1UzMiwKICAgIFMzOTBfQkZQX0YxMjhfVE9fVTY0LAogICAgUzM5MF9CRlBfRjEyOF9UT19GMzIsCi0gICBTMzkwX0JGUF9GMTI4X1RPX0Y2NAorICAgUzM5MF9CRlBfRjEyOF9UT19GNjQsCisgICBTMzkwX0JGUF9GMzJfVE9fRjMySSwKKyAgIFMzOTBfQkZQX0Y2NF9UT19GNjRJLAorICAgUzM5MF9CRlBfRjEyOF9UT19GMTI4SQogfSBzMzkwX2JmcF9jb252X3Q7CiAKIC8qIFR5cGUgY29udmVyc2lvbiBvcGVyYXRpb25zOiB0byBhbmQvb3IgZnJvbSBkZWNpbWFsIGZsb2F0aW5nIHBvaW50ICovCkBAIC02NTgsNiArNjYxLDkgQEAKIHMzOTBfaW5zbiAqczM5MF9pbnNuX2JmcF9jb21wYXJlKFVDaGFyIHNpemUsIEhSZWcgZHN0LCBIUmVnIG9wMSwgSFJlZyBvcDIpOwogczM5MF9pbnNuICpzMzkwX2luc25fYmZwX2NvbnZlcnQoVUNoYXIgc2l6ZSwgczM5MF9iZnBfY29udl90IHRhZywgSFJlZyBkc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIUmVnIG9wLCBzMzkwX2JmcF9yb3VuZF90KTsKK3MzOTBfaW5zbiAqczM5MF9pbnNuX2JmcDEyOF9jb252ZXJ0KFVDaGFyIHNpemUsIHMzOTBfYmZwX2NvbnZfdCB0YWcsIEhSZWcgZHN0X2hpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFJlZyBkc3RfbG8sIEhSZWcgb3BfaGksIEhSZWcgb3BfbG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMzkwX2JmcF9yb3VuZF90IHJvdW5kaW5nX21vZGUpOwogczM5MF9pbnNuICpzMzkwX2luc25fYmZwMTI4X2Jpbm9wKFVDaGFyIHNpemUsIHMzOTBfYmZwX2Jpbm9wX3QsIEhSZWcgZHN0X2hpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhSZWcgZHN0X2xvLCBIUmVnIG9wMl9oaSwgSFJlZyBvcDJfbG8pOwogczM5MF9pbnNuICpzMzkwX2luc25fYmZwMTI4X3Vub3AoVUNoYXIgc2l6ZSwgczM5MF9iZnBfdW5vcF90LCBIUmVnIGRzdF9oaSwKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfczM5MF9pc2VsLmMgYi9WRVgvcHJpdi9ob3N0X3MzOTBfaXNlbC5jCmluZGV4IGRlZTg5MmEuLjAyZjM5OWQgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfczM5MF9pc2VsLmMKKysrIGIvVkVYL3ByaXYvaG9zdF9zMzkwX2lzZWwuYwpAQCAtOCw4ICs4LDggQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxMwotICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgIEZsb3JpYW4gS3JvaG0gICAoYnJpdHplbEBhY20ub3JnKQorICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTUKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1ICBGbG9yaWFuIEtyb2htICAgKGJyaXR6ZWxAYWNtLm9yZykKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTU1OSw3ICs1NTksNyBAQAogICAgICAgICAgSVJUeXBlIHR5cGUgPSB0eXBlT2ZJUkV4cHIoZW52LT50eXBlX2VudiwgYXJnc1tpXSk7CiAgICAgICAgICBpZiAodHlwZSAhPSBJdHlfSTY0KSB7CiAgICAgICAgICAgICArK2FyZ19lcnJvcnM7Ci0gICAgICAgICAgICB2ZXhfcHJpbnRmKCJjYWxsaW5nICVzOiBhcmd1bWVudCAjJWQgaGFzIHR5cGUgIiwgY2FsbGVlLT5uYW1lLCBpKTsKKyAgICAgICAgICAgIHZleF9wcmludGYoImNhbGxpbmcgJXM6IGFyZ3VtZW50ICMldSBoYXMgdHlwZSAiLCBjYWxsZWUtPm5hbWUsIGkpOwogICAgICAgICAgICAgcHBJUlR5cGUodHlwZSk7CiAgICAgICAgICAgICB2ZXhfcHJpbnRmKCI7IEl0eV9JNjQgaXMgcmVxdWlyZWRcbiIpOwogICAgICAgICAgfQpAQCAtMjE0Myw2ICsyMTQzLDQyIEBACiAgICAgICAgICByZXR1cm47CiAgICAgICB9CiAKKyAgICAgIGNhc2UgSW9wX1JvdW5kRjEyOHRvSW50OiB7CisgICAgICAgICBJUkV4cHIgKmlycm07CisgICAgICAgICBJUkV4cHIgKmxlZnQ7CisgICAgICAgICBzMzkwX2JmcF9yb3VuZF90IHJtOworICAgICAgICAgSFJlZyBvcF9oaSwgb3BfbG87CisgICAgICAgICBIUmVnIGYwLCBmMiwgZjQsIGY2OyAgICAgICAgICAgLyogcmVhbCByZWdpc3RlcnMgKi8KKworICAgICAgICAgZjQgPSBtYWtlX2Zwcig0KTsgLyogc291cmNlICovCisgICAgICAgICBmNiA9IG1ha2VfZnByKDYpOyAvKiBzb3VyY2UgKi8KKyAgICAgICAgIGYwID0gbWFrZV9mcHIoMCk7IC8qIGRlc3RpbmF0aW9uICovCisgICAgICAgICBmMiA9IG1ha2VfZnByKDIpOyAvKiBkZXN0aW5hdGlvbiAqLworCisgICAgICAgICBpcnJtID0gZXhwci0+SWV4LkJpbm9wLmFyZzE7CisgICAgICAgICBsZWZ0ID0gZXhwci0+SWV4LkJpbm9wLmFyZzI7CisgICAgICAgICAKKyAgICAgICAgIGlmIChzMzkwX2hvc3RfaGFzX2ZwZXh0KSB7CisgICAgICAgICAgICBybSA9IGdldF9iZnBfcm91bmRpbmdfbW9kZShlbnYsIGlycm0pOworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNldF9iZnBfcm91bmRpbmdfbW9kZV9pbl9mcGMoZW52LCBpcnJtKTsKKyAgICAgICAgICAgIHJtID0gUzM5MF9CRlBfUk9VTkRfUEVSX0ZQQzsKKyAgICAgICAgIH0KKworICAgICAgICAgczM5MF9pc2VsX2Zsb2F0MTI4X2V4cHIoJm9wX2hpLCAmb3BfbG8sIGVudiwgbGVmdCk7CisgICAgICAgICAvKiBvcGVyYW5kIC0tPiAoZjQsIGY2KSAqLworICAgICAgICAgYWRkSW5zdHIoZW52LCBzMzkwX2luc25fbW92ZSg4LCBmNCwgb3BfaGkpKTsKKyAgICAgICAgIGFkZEluc3RyKGVudiwgczM5MF9pbnNuX21vdmUoOCwgZjYsIG9wX2xvKSk7CisgICAgICAgICBhZGRJbnN0cihlbnYsIHMzOTBfaW5zbl9iZnAxMjhfY29udmVydCgxNiwgUzM5MF9CRlBfRjEyOF9UT19GMTI4SSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYwLCBmMiwgZjQsIGY2LCBybSkpOworICAgICAgICAgLyogKGYwLCBmMikgLS0+IGRlc3RpbmF0aW9uICovCisgICAgICAgICAqZHN0X2hpID0gbmV3VlJlZ0YoZW52KTsKKyAgICAgICAgICpkc3RfbG8gPSBuZXdWUmVnRihlbnYpOworICAgICAgICAgYWRkSW5zdHIoZW52LCBzMzkwX2luc25fbW92ZSg4LCAqZHN0X2hpLCBmMCkpOworICAgICAgICAgYWRkSW5zdHIoZW52LCBzMzkwX2luc25fbW92ZSg4LCAqZHN0X2xvLCBmMikpOworICAgICAgICAgcmV0dXJuOworICAgICAgfQorCiAgICAgICBkZWZhdWx0OgogICAgICAgICAgZ290byBpcnJlZHVjaWJsZTsKICAgICAgIH0KQEAgLTIzNzgsNiArMjQxNCw4IEBACiAgICAgICAgICByZXR1cm4gZHN0OwogCiAgICAgICBjYXNlIElvcF9GNjR0b0YzMjogIGNvbnYgPSBTMzkwX0JGUF9GNjRfVE9fRjMyOyBnb3RvIGNvbnZlcnRfZmxvYXQ7CisgICAgICBjYXNlIElvcF9Sb3VuZEYzMnRvSW50OiBjb252ID0gUzM5MF9CRlBfRjMyX1RPX0YzMkk7IGdvdG8gY29udmVydF9mbG9hdDsKKyAgICAgIGNhc2UgSW9wX1JvdW5kRjY0dG9JbnQ6IGNvbnYgPSBTMzkwX0JGUF9GNjRfVE9fRjY0STsgZ290byBjb252ZXJ0X2Zsb2F0OwogICAgICAgY2FzZSBJb3BfSTMyU3RvRjMyOiBjb252ID0gUzM5MF9CRlBfSTMyX1RPX0YzMjsgZ290byBjb252ZXJ0X2ludDsKICAgICAgIGNhc2UgSW9wX0kzMlV0b0YzMjogY29udiA9IFMzOTBfQkZQX1UzMl9UT19GMzI7IGdvdG8gY29udmVydF9pbnQ7CiAgICAgICBjYXNlIElvcF9JNjRTdG9GMzI6IGNvbnYgPSBTMzkwX0JGUF9JNjRfVE9fRjMyOyBnb3RvIGNvbnZlcnRfaW50OwpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaG9zdF90aWxlZ3hfZGVmcy5jIGIvVkVYL3ByaXYvaG9zdF90aWxlZ3hfZGVmcy5jCmluZGV4IDkyY2EyYzcuLmZjMjU5ZTkgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2hvc3RfdGlsZWd4X2RlZnMuYworKysgYi9WRVgvcHJpdi9ob3N0X3RpbGVneF9kZWZzLmMKQEAgLTcsNyArNyw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgVGlsZXJhIENvcnAuCisgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFRpbGVyYSBDb3JwLgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTEyNzEsNyArMTI3MSw3IEBACiAgICAgICBpZiAob3AtPnR5cGUgPT0gVElMRUdYX09QX1RZUEVfUkVHSVNURVIpCiAgICAgICAgIHZleF9wcmludGYoInIlZCIsIChJbnQpIGRlY29kZWRbaV0ub3BlcmFuZF92YWx1ZXNbbl0pOwogICAgICAgZWxzZQotICAgICAgICB2ZXhfcHJpbnRmKCIlbGQiLCAodW5zaWduZWQgbG9uZylkZWNvZGVkW2ldLm9wZXJhbmRfdmFsdWVzW25dKTsKKyAgICAgICAgdmV4X3ByaW50ZigiJWxsdSIsIChVTG9uZylkZWNvZGVkW2ldLm9wZXJhbmRfdmFsdWVzW25dKTsKIAogICAgICAgaWYgKG4gIT0gKGRlY29kZWRbaV0ub3Bjb2RlLT5udW1fb3BlcmFuZHMgLSAxKSkKICAgICAgICAgdmV4X3ByaW50ZigiLCAiKTsKQEAgLTEzMDYsNyArMTMwNiw3IEBACiAKICAgICBJbnQgbiwgaywgYnVuZGxlZCA9IDA7CiAKLSAgICBmb3IoayA9IDA7IGRlY29kZVtrXS5vcGNvZGUgJiYgKGsgPFRJTEVHWF9NQVhfSU5TVFJVQ1RJT05TX1BFUl9CVU5ETEUpOworICAgIGZvcihrID0gMDsgKGsgPCBUSUxFR1hfTUFYX0lOU1RSVUNUSU9OU19QRVJfQlVORExFKSAmJiBkZWNvZGVba10ub3Bjb2RlOwogICAgICAgICBrKyspIHsKICAgICAgIGlmIChkZWNvZGVba10ub3Bjb2RlLT5tbmVtb25pYyAhPSBUSUxFR1hfT1BDX0ZOT1ApCiAgICAgICAgIGJ1bmRsZWQrKzsKQEAgLTEzMTcsNyArMTMxNyw3IEBACiAgICAgICB2ZXhfcHJpbnRmKCJ7ICIpOwogCiAgICAgbiA9IGJ1bmRsZWQ7Ci0gICAgZm9yKGsgPSAwOyBkZWNvZGVba10ub3Bjb2RlICYmIChrIDxUSUxFR1hfTUFYX0lOU1RSVUNUSU9OU19QRVJfQlVORExFKTsKKyAgICBmb3IoayA9IDA7IChrIDwgVElMRUdYX01BWF9JTlNUUlVDVElPTlNfUEVSX0JVTkRMRSkgJiYgZGVjb2RlW2tdLm9wY29kZTsKICAgICAgICAgaysrKSB7CiAgICAgICBpZiAoZGVjb2RlW2tdLm9wY29kZS0+bW5lbW9uaWMgPT0gVElMRUdYX09QQ19GTk9QKQogICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfdGlsZWd4X2RlZnMuaCBiL1ZFWC9wcml2L2hvc3RfdGlsZWd4X2RlZnMuaAppbmRleCA4Nzg4ZTFhLi4zNDRhNDQwIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ob3N0X3RpbGVneF9kZWZzLmgKKysrIGIvVkVYL3ByaXYvaG9zdF90aWxlZ3hfZGVmcy5oCkBAIC03LDcgKzcsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIFRpbGVyYSBDb3JwLgorICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSBUaWxlcmEgQ29ycC4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X3RpbGVneF9pc2VsLmMgYi9WRVgvcHJpdi9ob3N0X3RpbGVneF9pc2VsLmMKaW5kZXggN2U0ZTZlYi4uMGM5ZWE2NSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF90aWxlZ3hfaXNlbC5jCisrKyBiL1ZFWC9wcml2L2hvc3RfdGlsZWd4X2lzZWwuYwpAQCAtNyw3ICs3LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBUaWxlcmEgQ29ycC4KKyAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgVGlsZXJhIENvcnAuCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAgIH0KIAogICBpZiAoblZFQ1JFVHMgfHwgbkJCUFRScykKLSAgICB2ZXhfcHJpbnRmKCJuVkVDUkVUcz0lZCwgbkJCUFRScz0lZFxuIiwKKyAgICB2ZXhfcHJpbnRmKCJuVkVDUkVUcz0ldSwgbkJCUFRScz0ldVxuIiwKICAgICAgICAgICAgICAgIG5WRUNSRVRzLCBuQkJQVFJzKTsKIAogICBpZiAoVElMRUdYX05fUkVHUEFSTVMgPCBuX2FyZ3MpIHsKQEAgLTM2OSwxMiArMzY5LDEzIEBACiAgICByZXN1bHQuICBUaGUgZXhwcmVzc2lvbiBtYXkgb25seSBiZSBhIHdvcmQtc2l6ZSBvbmUuCiAqLwogCi1zdGF0aWMgQm9vbCB1SW50X2ZpdHNfaW5fMTZfYml0cyAoIFVJbnQgdSApCitzdGF0aWMgQm9vbCB1SW50X2ZpdHNfaW5fMTZfYml0cyAoIFVJbnQgdSApIAogewotICBJbnQgaSA9IHUgJiAweEZGRkY7Ci0gIGkgPDw9IDE2OwotICBpID4+PSAxNjsKLSAgcmV0dXJuIHRvQm9vbCh1ID09IChVSW50KSBpKTsKKyAgIFVJbnQgdiA9IHUgJiAweEZGRkY7CisKKyAgIHYgPSAoSW50KSh2IDw8IDE2KSA+PiAxNjsgICAvKiBzaWduIGV4dGVuZCAqLworCisgICByZXR1cm4gdSA9PSB2OwogfQogCiBzdGF0aWMgQm9vbCBzYW5lX0FNb2RlICggSVNlbEVudiAqIGVudiwgVElMRUdYQU1vZGUgKiBhbSApCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X3g4Nl9kZWZzLmMgYi9WRVgvcHJpdi9ob3N0X3g4Nl9kZWZzLmMKaW5kZXggNzkyMzgxZS4uNjMyMWEzZSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF94ODZfZGVmcy5jCisrKyBiL1ZFWC9wcml2L2hvc3RfeDg2X2RlZnMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTExOTYsNyArMTE5Niw3IEBACiAgICAgICAgICBwcEhSZWdYODYoaS0+WGluLlNzZUNNb3YuZHN0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgIGNhc2UgWGluX1NzZVNodWY6Ci0gICAgICAgICB2ZXhfcHJpbnRmKCJwc2h1ZmQgJDB4JXgsIiwgaS0+WGluLlNzZVNodWYub3JkZXIpOworICAgICAgICAgdmV4X3ByaW50ZigicHNodWZkICQweCV4LCIsIChVSW50KWktPlhpbi5Tc2VTaHVmLm9yZGVyKTsKICAgICAgICAgIHBwSFJlZ1g4NihpLT5YaW4uU3NlU2h1Zi5zcmMpOwogICAgICAgICAgdmV4X3ByaW50ZigiLCIpOwogICAgICAgICAgcHBIUmVnWDg2KGktPlhpbi5Tc2VTaHVmLmRzdCk7CkBAIC0yNTYwLDYgKzI1NjAsOCBAQAogICAgICAgICAgY2FzZSBJamtfU3lzX2ludDEyODogICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9TWVNfSU5UMTI4OyAgIGJyZWFrOwogICAgICAgICAgY2FzZSBJamtfU3lzX2ludDEyOTogICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9TWVNfSU5UMTI5OyAgIGJyZWFrOwogICAgICAgICAgY2FzZSBJamtfU3lzX2ludDEzMDogICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9TWVNfSU5UMTMwOyAgIGJyZWFrOworICAgICAgICAgY2FzZSBJamtfU3lzX2ludDE0NTogICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9TWVNfSU5UMTQ1OyAgIGJyZWFrOworICAgICAgICAgY2FzZSBJamtfU3lzX2ludDIxMDogICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9TWVNfSU5UMjEwOyAgIGJyZWFrOwogICAgICAgICAgY2FzZSBJamtfU3lzX3N5c2VudGVyOiB0cmN2YWwgPSBWRVhfVFJDX0pNUF9TWVNfU1lTRU5URVI7IGJyZWFrOwogICAgICAgICAgY2FzZSBJamtfWWllbGQ6ICAgICAgICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9ZSUVMRDsgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSBJamtfRW1XYXJuOiAgICAgICB0cmN2YWwgPSBWRVhfVFJDX0pNUF9FTVdBUk47ICAgICAgIGJyZWFrOwpAQCAtMzM2MCw3ICszMzYyLDggQEAKICAgICovCiAgICBVQ2hhciogcCA9IChVQ2hhciopcGxhY2VfdG9fY2hhaW47CiAgICB2YXNzZXJ0KHBbMF0gPT0gMHhCQSk7Ci0gICB2YXNzZXJ0KCooVUludCopKCZwWzFdKSA9PSAoVUludCkoQWRkcilkaXNwX2NwX2NoYWluX21lX0VYUEVDVEVEKTsKKyAgIHZhc3NlcnQocmVhZF9taXNhbGlnbmVkX1VJbnRfTEUoJnBbMV0pCisgICAgICAgICAgID09IChVSW50KShBZGRyKWRpc3BfY3BfY2hhaW5fbWVfRVhQRUNURUQpOwogICAgdmFzc2VydChwWzVdID09IDB4RkYpOwogICAgdmFzc2VydChwWzZdID09IDB4RDIpOwogICAgLyogQW5kIHdoYXQgd2Ugd2FudCB0byBjaGFuZ2UgaXQgdG8gaXM6CkBAIC0zMzc3LDExICszMzgwLDggQEAKIAogICAgLyogQW5kIG1ha2UgdGhlIG1vZGlmaWNhdGlvbnMuICovCiAgICBwWzBdID0gMHhFOTsKLSAgIHBbMV0gPSAoZGVsdGEgPj4gMCkgJiAweEZGOwotICAgcFsyXSA9IChkZWx0YSA+PiA4KSAmIDB4RkY7Ci0gICBwWzNdID0gKGRlbHRhID4+IDE2KSAmIDB4RkY7Ci0gICBwWzRdID0gKGRlbHRhID4+IDI0KSAmIDB4RkY7Ci0gICBwWzVdID0gMHgwRjsgcFs2XSAgPSAweDBCOworICAgd3JpdGVfbWlzYWxpZ25lZF9VSW50X0xFKCZwWzFdLCAoVUludCkoVUxvbmcpZGVsdGEpOworICAgcFs1XSA9IDB4MEY7IHBbNl0gPSAweDBCOwogICAgLyogc2FuaXR5IGNoZWNrIG9uIHRoZSBkZWx0YSAtLSB0b3AgMzIgYXJlIGFsbCAwIG9yIGFsbCAxICovCiAgICBkZWx0YSA+Pj0gMzI7CiAgICB2YXNzZXJ0KGRlbHRhID09IDBMTCB8fCBkZWx0YSA9PSAtMUxMKTsKQEAgLTM0MDksOSArMzQwOSw5IEBACiAgICBVQ2hhciogcCAgICAgPSAoVUNoYXIqKXBsYWNlX3RvX3VuY2hhaW47CiAgICBCb29sICAgdmFsaWQgPSBGYWxzZTsKICAgIGlmIChwWzBdID09IDB4RTkgCi0gICAgICAgJiYgcFs1XSAgPT0gMHgwRiAmJiBwWzZdICA9PSAweDBCKSB7CisgICAgICAgJiYgcFs1XSA9PSAweDBGICYmIHBbNl0gID09IDB4MEIpIHsKICAgICAgIC8qIENoZWNrIHRoZSBvZmZzZXQgaXMgcmlnaHQuICovCi0gICAgICBJbnQgczMyID0gKihJbnQqKSgmcFsxXSk7CisgICAgICBJbnQgczMyID0gKEludClyZWFkX21pc2FsaWduZWRfVUludF9MRSgmcFsxXSk7CiAgICAgICBpZiAoKFVDaGFyKilwICsgNSArIHMzMiA9PSBwbGFjZV90b19qdW1wX3RvX0VYUEVDVEVEKSB7CiAgICAgICAgICB2YWxpZCA9IFRydWU7CiAgICAgICAgICBpZiAoMCkKQEAgLTM0MjgsNyArMzQyOCw3IEBACiAgICAgICBTbyBpdCdzIHRoZSBzYW1lIGxlbmd0aCAoY29udmVuaWVudCwgaHVoKS4KICAgICovCiAgICBwWzBdID0gMHhCQTsKLSAgICooVUludCopKCZwWzFdKSA9IChVSW50KShBZGRyKWRpc3BfY3BfY2hhaW5fbWU7CisgICB3cml0ZV9taXNhbGlnbmVkX1VJbnRfTEUoJnBbMV0sIChVSW50KShBZGRyKWRpc3BfY3BfY2hhaW5fbWUpOwogICAgcFs1XSA9IDB4RkY7CiAgICBwWzZdID0gMHhEMjsKICAgIFZleEludmFsUmFuZ2UgdmlyID0geyAoSFdvcmQpcGxhY2VfdG9fdW5jaGFpbiwgNyB9OwpAQCAtMzQ2MywxMiArMzQ2MywxMiBAQAogICAgcFsyXSA9IGltbTMyICYgMHhGRjsgaW1tMzIgPj49IDg7CiAgICBwWzNdID0gaW1tMzIgJiAweEZGOyBpbW0zMiA+Pj0gODsKICAgIHBbNF0gPSBpbW0zMiAmIDB4RkY7IGltbTMyID4+PSA4OwotICAgcFs1XSA9IGltbTMyICYgMHhGRjsgaW1tMzIgPj49IDg7CisgICBwWzVdID0gaW1tMzIgJiAweEZGOwogICAgaW1tMzIgPSA0ICsgKFVJbnQpKEFkZHIpbG9jYXRpb25fb2ZfY291bnRlcjsKICAgIHBbOV0gID0gaW1tMzIgJiAweEZGOyBpbW0zMiA+Pj0gODsKICAgIHBbMTBdID0gaW1tMzIgJiAweEZGOyBpbW0zMiA+Pj0gODsKICAgIHBbMTFdID0gaW1tMzIgJiAweEZGOyBpbW0zMiA+Pj0gODsKLSAgIHBbMTJdID0gaW1tMzIgJiAweEZGOyBpbW0zMiA+Pj0gODsKKyAgIHBbMTJdID0gaW1tMzIgJiAweEZGOwogICAgVmV4SW52YWxSYW5nZSB2aXIgPSB7IChIV29yZClwbGFjZV90b19wYXRjaCwgMTQgfTsKICAgIHJldHVybiB2aXI7CiB9CmRpZmYgLS1naXQgYS9WRVgvcHJpdi9ob3N0X3g4Nl9kZWZzLmggYi9WRVgvcHJpdi9ob3N0X3g4Nl9kZWZzLmgKaW5kZXggZjFmNzM3Zi4uM2VhY2FkNyAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaG9zdF94ODZfZGVmcy5oCisrKyBiL1ZFWC9wcml2L2hvc3RfeDg2X2RlZnMuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2hvc3RfeDg2X2lzZWwuYyBiL1ZFWC9wcml2L2hvc3RfeDg2X2lzZWwuYwppbmRleCAwMTFjYmE1Li41NjE3MWJmIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9ob3N0X3g4Nl9pc2VsLmMKKysrIGIvVkVYL3ByaXYvaG9zdF94ODZfaXNlbC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDI4NSw2ICs0Mjg1LDggQEAKICAgICAgICAgIGNhc2UgSWprX1N5c19pbnQxMjg6CiAgICAgICAgICBjYXNlIElqa19TeXNfaW50MTI5OgogICAgICAgICAgY2FzZSBJamtfU3lzX2ludDEzMDoKKyAgICAgICAgIGNhc2UgSWprX1N5c19pbnQxNDU6CisgICAgICAgICBjYXNlIElqa19TeXNfaW50MjEwOgogICAgICAgICAgY2FzZSBJamtfU3lzX3N5c2NhbGw6CiAgICAgICAgICBjYXNlIElqa19TeXNfc3lzZW50ZXI6CiAgICAgICAgICBjYXNlIElqa19JbnZhbElDYWNoZToKQEAgLTQzODQsNiArNDM4Niw4IEBACiAgICAgICBjYXNlIElqa19TeXNfaW50MTI4OgogICAgICAgY2FzZSBJamtfU3lzX2ludDEyOToKICAgICAgIGNhc2UgSWprX1N5c19pbnQxMzA6CisgICAgICBjYXNlIElqa19TeXNfaW50MTQ1OgorICAgICAgY2FzZSBJamtfU3lzX2ludDIxMDoKICAgICAgIGNhc2UgSWprX1N5c19zeXNjYWxsOgogICAgICAgY2FzZSBJamtfU3lzX3N5c2VudGVyOgogICAgICAgY2FzZSBJamtfSW52YWxJQ2FjaGU6CmRpZmYgLS1naXQgYS9WRVgvcHJpdi9pcl9kZWZzLmMgYi9WRVgvcHJpdi9pcl9kZWZzLmMKaW5kZXggZGE4NTFmNS4uNGE3Yjc3MCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaXJfZGVmcy5jCisrKyBiL1ZFWC9wcml2L2lyX2RlZnMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTYzLDcgKzYzLDcgQEAKICAgICAgIGNhc2UgSXR5X0QxMjg6ICAgIHZleF9wcmludGYoICJEMTI4Iik7IGJyZWFrOwogICAgICAgY2FzZSBJdHlfVjEyODogICAgdmV4X3ByaW50ZiggIlYxMjgiKTsgYnJlYWs7CiAgICAgICBjYXNlIEl0eV9WMjU2OiAgICB2ZXhfcHJpbnRmKCAiVjI1NiIpOyBicmVhazsKLSAgICAgIGRlZmF1bHQ6IHZleF9wcmludGYoInR5ID0gMHgleFxuIiwgKEludCl0eSk7CisgICAgICBkZWZhdWx0OiB2ZXhfcHJpbnRmKCJ0eSA9IDB4JXhcbiIsIChVSW50KXR5KTsKICAgICAgICAgICAgICAgIHZwYW5pYygicHBJUlR5cGUiKTsKICAgIH0KIH0KQEAgLTExNCw3ICsxMTQsNyBAQAogICAgaWYgKHRtcCA9PSBJUlRlbXBfSU5WQUxJRCkKICAgICAgIHZleF9wcmludGYoIklSVGVtcF9JTlZBTElEIik7CiAgICBlbHNlCi0gICAgICB2ZXhfcHJpbnRmKCAidCVkIiwgKEludCl0bXApOworICAgICAgdmV4X3ByaW50ZiggInQldSIsIHRtcCk7CiB9CiAKIHZvaWQgcHBJUk9wICggSVJPcCBvcCApCkBAIC0zOTYsNiArMzk2LDcgQEAKICAgICAgIGNhc2UgSW9wX0YzMnRvRjY0OiB2ZXhfcHJpbnRmKCJGMzJ0b0Y2NCIpOyByZXR1cm47CiAgICAgICBjYXNlIElvcF9GNjR0b0YzMjogdmV4X3ByaW50ZigiRjY0dG9GMzIiKTsgcmV0dXJuOwogCisgICAgICBjYXNlIElvcF9Sb3VuZEYxMjh0b0ludDogdmV4X3ByaW50ZigiUm91bmRGMTI4dG9JbnQiKTsgcmV0dXJuOwogICAgICAgY2FzZSBJb3BfUm91bmRGNjR0b0ludDogdmV4X3ByaW50ZigiUm91bmRGNjR0b0ludCIpOyByZXR1cm47CiAgICAgICBjYXNlIElvcF9Sb3VuZEYzMnRvSW50OiB2ZXhfcHJpbnRmKCJSb3VuZEYzMnRvSW50Iik7IHJldHVybjsKICAgICAgIGNhc2UgSW9wX1JvdW5kRjY0dG9GMzI6IHZleF9wcmludGYoIlJvdW5kRjY0dG9GMzIiKTsgcmV0dXJuOwpAQCAtMTQ3MCwxMyArMTQ3MSwxNCBAQAogdm9pZCBwcElSTG9hZEdPcCAoIElSTG9hZEdPcCBjdnQgKQogewogICAgc3dpdGNoIChjdnQpIHsKLSAgICAgIGNhc2UgSUxHb3BfSU5WQUxJRDogdmV4X3ByaW50ZigiSUxHb3BfSU5WQUxJRCIpOyBicmVhazsgICAgICAKLSAgICAgIGNhc2UgSUxHb3BfSWRlbnQ2NDogdmV4X3ByaW50ZigiSWRlbnQ2NCIpOyBicmVhazsgICAgICAKLSAgICAgIGNhc2UgSUxHb3BfSWRlbnQzMjogdmV4X3ByaW50ZigiSWRlbnQzMiIpOyBicmVhazsgICAgICAKLSAgICAgIGNhc2UgSUxHb3BfMTZVdG8zMjogdmV4X3ByaW50ZigiMTZVdG8zMiIpOyBicmVhazsgICAgICAKLSAgICAgIGNhc2UgSUxHb3BfMTZTdG8zMjogdmV4X3ByaW50ZigiMTZTdG8zMiIpOyBicmVhazsgICAgICAKLSAgICAgIGNhc2UgSUxHb3BfOFV0bzMyOiAgdmV4X3ByaW50ZigiOFV0bzMyIik7IGJyZWFrOyAgICAgIAotICAgICAgY2FzZSBJTEdvcF84U3RvMzI6ICB2ZXhfcHJpbnRmKCI4U3RvMzIiKTsgYnJlYWs7ICAgICAgCisgICAgICBjYXNlIElMR29wX0lOVkFMSUQ6ICAgdmV4X3ByaW50ZigiSUxHb3BfSU5WQUxJRCIpOyBicmVhazsgICAgICAKKyAgICAgIGNhc2UgSUxHb3BfSWRlbnRWMTI4OiB2ZXhfcHJpbnRmKCJJZGVudFYxMjgiKTsgYnJlYWs7ICAgICAgCisgICAgICBjYXNlIElMR29wX0lkZW50NjQ6ICAgdmV4X3ByaW50ZigiSWRlbnQ2NCIpOyBicmVhazsgICAgICAKKyAgICAgIGNhc2UgSUxHb3BfSWRlbnQzMjogICB2ZXhfcHJpbnRmKCJJZGVudDMyIik7IGJyZWFrOyAgICAgIAorICAgICAgY2FzZSBJTEdvcF8xNlV0bzMyOiAgIHZleF9wcmludGYoIjE2VXRvMzIiKTsgYnJlYWs7ICAgICAgCisgICAgICBjYXNlIElMR29wXzE2U3RvMzI6ICAgdmV4X3ByaW50ZigiMTZTdG8zMiIpOyBicmVhazsgICAgICAKKyAgICAgIGNhc2UgSUxHb3BfOFV0bzMyOiAgICB2ZXhfcHJpbnRmKCI4VXRvMzIiKTsgYnJlYWs7ICAgICAgCisgICAgICBjYXNlIElMR29wXzhTdG8zMjogICAgdmV4X3ByaW50ZigiOFN0bzMyIik7IGJyZWFrOyAgICAgIAogICAgICAgZGVmYXVsdDogdnBhbmljKCJwcElSTG9hZEdPcCIpOwogICAgfQogfQpAQCAtMTUyMCw2ICsxNTIyLDggQEAKICAgICAgIGNhc2UgSWprX1N5c19pbnQxMjg6ICAgIHZleF9wcmludGYoIlN5c19pbnQxMjgiKTsgYnJlYWs7CiAgICAgICBjYXNlIElqa19TeXNfaW50MTI5OiAgICB2ZXhfcHJpbnRmKCJTeXNfaW50MTI5Iik7IGJyZWFrOwogICAgICAgY2FzZSBJamtfU3lzX2ludDEzMDogICAgdmV4X3ByaW50ZigiU3lzX2ludDEzMCIpOyBicmVhazsKKyAgICAgIGNhc2UgSWprX1N5c19pbnQxNDU6ICAgIHZleF9wcmludGYoIlN5c19pbnQxNDUiKTsgYnJlYWs7CisgICAgICBjYXNlIElqa19TeXNfaW50MjEwOiAgICB2ZXhfcHJpbnRmKCJTeXNfaW50MjEwIik7IGJyZWFrOwogICAgICAgY2FzZSBJamtfU3lzX3N5c2VudGVyOiAgdmV4X3ByaW50ZigiU3lzX3N5c2VudGVyIik7IGJyZWFrOwogICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgdnBhbmljKCJwcElSSnVtcEtpbmQiKTsKICAgIH0KQEAgLTI0NzAsNyArMjQ3NCw2IEBACiAvKi0tLSBQcmltb3AgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLXN0YXRpYwogdm9pZCB0eXBlT2ZQcmltb3AgKCBJUk9wIG9wLCAKICAgICAgICAgICAgICAgICAgICAgLypPVVRzKi8KICAgICAgICAgICAgICAgICAgICAgSVJUeXBlKiB0X2RzdCwgCkBAIC0zMTU4LDYgKzMxNjEsNyBAQAogICAgICAgICAgVU5BUlkoSXR5X0YxMjgsIEl0eV9GMTI4KTsKIAogICAgICAgY2FzZSBJb3BfU3FydEYxMjg6CisgICAgICBjYXNlIElvcF9Sb3VuZEYxMjh0b0ludDoKICAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsSXR5X0YxMjgsIEl0eV9GMTI4KTsKIAogICAgICAgY2FzZSBJb3BfSTMyU3RvRjEyODogVU5BUlkoSXR5X0kzMiwgSXR5X0YxMjgpOwpAQCAtMzUyMyw2ICszNTI3LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL0lSVHlwZSogdF9yZXMsIC8qT1VUKi9JUlR5cGUqIHRfYXJnICkKIHsKICAgIHN3aXRjaCAoY3Z0KSB7CisgICAgICBjYXNlIElMR29wX0lkZW50VjEyODoKKyAgICAgICAgICp0X3JlcyA9IEl0eV9WMTI4OyAqdF9hcmcgPSBJdHlfVjEyODsgYnJlYWs7CiAgICAgICBjYXNlIElMR29wX0lkZW50NjQ6CiAgICAgICAgICAqdF9yZXMgPSBJdHlfSTY0OyAqdF9hcmcgPSBJdHlfSTY0OyBicmVhazsKICAgICAgIGNhc2UgSUxHb3BfSWRlbnQzMjoKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L2lyX2luamVjdC5jIGIvVkVYL3ByaXYvaXJfaW5qZWN0LmMKaW5kZXggMDEyZWVjZC4uOTNiNGMxYyAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaXJfaW5qZWN0LmMKKysrIGIvVkVYL3ByaXYvaXJfaW5qZWN0LmMKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgIEZsb3JpYW4gS3JvaG0gICAoYnJpdHplbEBhY20ub3JnKQorICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgIEZsb3JpYW4gS3JvaG0gICAoYnJpdHplbEBhY20ub3JnKQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjEzLDcgKzIxMyw4IEBACiAgICAgICBpZiAoaXJpY2Iuc2hpZnRfYW1vdW50X2lzX2ltbWVkaWF0ZSkgewogICAgICAgICAgLy8gVGhpcyBpbXBsaWVzIHRoYXQgdGhlIElST3AgaXMgYSBzaGlmdCBvcAogICAgICAgICAgdmFzc2VydChpcmljYi50X29wbmQyID09IEl0eV9JOCk7Ci0gICAgICAgICBvcG5kMiA9IG1rVTgoKigoQ2hhciAqKWlyaWNiLm9wbmQyKSk7CisgICAgICAgICAvKiBJbnRlcnByZXQgdGhlIG1lbW9yeSBhcyBhbiBVTG9uZy4gKi8KKyAgICAgICAgIG9wbmQyID0gbWtVOCgqKChVTG9uZyAqKWlyaWNiLm9wbmQyKSk7CiAgICAgICB9IGVsc2UgewogICAgICAgICAgb3BuZDIgPSBsb2FkKGVuZGlhbiwgaXJpY2IudF9vcG5kMiwgaXJpY2Iub3BuZDIpOwogICAgICAgfQpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaXJfbWF0Y2guYyBiL1ZFWC9wcml2L2lyX21hdGNoLmMKaW5kZXggNTYwYTI1Yi4uNDBmZDQ2ZiAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaXJfbWF0Y2guYworKysgYi9WRVgvcHJpdi9pcl9tYXRjaC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaXJfbWF0Y2guaCBiL1ZFWC9wcml2L2lyX21hdGNoLmgKaW5kZXggNjkwMGZhNy4uZjMzOTQyNiAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvaXJfbWF0Y2guaAorKysgYi9WRVgvcHJpdi9pcl9tYXRjaC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvaXJfb3B0LmMgYi9WRVgvcHJpdi9pcl9vcHQuYwppbmRleCA1MmNlZjliLi43YTcyNDZhIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9pcl9vcHQuYworKysgYi9WRVgvcHJpdi9pcl9vcHQuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTEyNjQsNiArMTI2NCw3IEBACiAgICAgICBjYXNlIElvcF9Yb3I2NDogcmV0dXJuIElSRXhwcl9Db25zdChJUkNvbnN0X1U2NCgwKSk7CiAgICAgICBjYXNlIElvcF9Yb3JWMTI4OgogICAgICAgY2FzZSBJb3BfQW5kVjEyODogcmV0dXJuIElSRXhwcl9Db25zdChJUkNvbnN0X1YxMjgoMCkpOworICAgICAgY2FzZSBJb3BfWG9yVjI1NjoKICAgICAgIGNhc2UgSW9wX0FuZFYyNTY6IHJldHVybiBJUkV4cHJfQ29uc3QoSVJDb25zdF9WMjU2KDApKTsKICAgICAgIGRlZmF1bHQ6IHZwYW5pYygibWtaZXJvT2ZQcmltb3BSZXN1bHRUeXBlOiBiYWQgcHJpbW9wIik7CiAgICB9CkBAIC0yMjg1LDYgKzIyODYsNyBAQAogICAgICAgICAgICAgY2FzZSBJb3BfWG9yMzI6CiAgICAgICAgICAgICBjYXNlIElvcF9Yb3I2NDoKICAgICAgICAgICAgIGNhc2UgSW9wX1hvclYxMjg6CisgICAgICAgICAgICBjYXNlIElvcF9Yb3JWMjU2OgogICAgICAgICAgICAgICAgLyogWG9yOC8xNi8zMi82NC9WMTI4KHQsdCkgPT0+IDAsIGZvciBzb21lIElSVGVtcCB0ICovCiAgICAgICAgICAgICAgICBpZiAoc2FtZUlSRXhwcnMoZW52LCBlLT5JZXguQmlub3AuYXJnMSwgZS0+SWV4LkJpbm9wLmFyZzIpKSB7CiAgICAgICAgICAgICAgICAgICBlMiA9IG1rWmVyb09mUHJpbW9wUmVzdWx0VHlwZShlLT5JZXguQmlub3Aub3ApOwpAQCAtMjg4Nyw2ICsyODg5LDggQEAKICAgICAgIHR5cGVPZklSTG9hZEdPcChsZy0+Y3Z0LCAmY3Z0UmVzLCAmY3Z0QXJnKTsKICAgICAgIElST3AgY3Z0T3AgPSBJb3BfSU5WQUxJRDsKICAgICAgIHN3aXRjaCAobGctPmN2dCkgeworICAgICAgICAgY2FzZSBJTEdvcF9JZGVudFYxMjg6CisgICAgICAgICBjYXNlIElMR29wX0lkZW50NjQ6CiAgICAgICAgICBjYXNlIElMR29wX0lkZW50MzI6IGJyZWFrOwogICAgICAgICAgY2FzZSBJTEdvcF84VXRvMzI6ICBjdnRPcCA9IElvcF84VXRvMzI7ICBicmVhazsKICAgICAgICAgIGNhc2UgSUxHb3BfOFN0bzMyOiAgY3Z0T3AgPSBJb3BfOFN0bzMyOyAgYnJlYWs7CmRpZmYgLS1naXQgYS9WRVgvcHJpdi9pcl9vcHQuaCBiL1ZFWC9wcml2L2lyX29wdC5oCmluZGV4IDQzYjJhNDcuLmYwMTI5NjIgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L2lyX29wdC5oCisrKyBiL1ZFWC9wcml2L2lyX29wdC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvbWFpbl9nbG9iYWxzLmMgYi9WRVgvcHJpdi9tYWluX2dsb2JhbHMuYwppbmRleCBkYmU2MzY5Li44ZjNhMzk0IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9tYWluX2dsb2JhbHMuYworKysgYi9WRVgvcHJpdi9tYWluX2dsb2JhbHMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wcml2L21haW5fZ2xvYmFscy5oIGIvVkVYL3ByaXYvbWFpbl9nbG9iYWxzLmgKaW5kZXggZWI5N2VjMS4uYWYxM2U3NSAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvbWFpbl9nbG9iYWxzLmgKKysrIGIvVkVYL3ByaXYvbWFpbl9nbG9iYWxzLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9tYWluX21haW4uYyBiL1ZFWC9wcml2L21haW5fbWFpbi5jCmluZGV4IGVjNjgwNjUuLjJlNTFkZWQgMTAwNjQ0Ci0tLSBhL1ZFWC9wcml2L21haW5fbWFpbi5jCisrKyBiL1ZFWC9wcml2L21haW5fbWFpbi5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvbWFpbl91dGlsLmMgYi9WRVgvcHJpdi9tYWluX3V0aWwuYwppbmRleCBkMDczMmU5Li4wMjhkMzUzIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9tYWluX3V0aWwuYworKysgYi9WRVgvcHJpdi9tYWluX3V0aWwuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU4MCw2ICs1ODAsNTkgQEAKIH0KIAogCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBNaXNhbGlnbmVkIG1lbW9yeSBhY2Nlc3Mgc3VwcG9ydCAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK1VJbnQgcmVhZF9taXNhbGlnbmVkX1VJbnRfTEUgKCB2b2lkKiBhZGRyICkKK3sKKyAgIFVDaGFyKiBwID0gKFVDaGFyKilhZGRyOworICAgVUludCAgIHcgPSAwOworICAgdyA9ICh3IDw8IDgpIHwgcFszXTsKKyAgIHcgPSAodyA8PCA4KSB8IHBbMl07CisgICB3ID0gKHcgPDwgOCkgfCBwWzFdOworICAgdyA9ICh3IDw8IDgpIHwgcFswXTsKKyAgIHJldHVybiB3OworfQorCitVTG9uZyByZWFkX21pc2FsaWduZWRfVUxvbmdfTEUgKCB2b2lkKiBhZGRyICkKK3sKKyAgIFVDaGFyKiBwID0gKFVDaGFyKilhZGRyOworICAgVUxvbmcgIHcgPSAwOworICAgdyA9ICh3IDw8IDgpIHwgcFs3XTsKKyAgIHcgPSAodyA8PCA4KSB8IHBbNl07CisgICB3ID0gKHcgPDwgOCkgfCBwWzVdOworICAgdyA9ICh3IDw8IDgpIHwgcFs0XTsKKyAgIHcgPSAodyA8PCA4KSB8IHBbM107CisgICB3ID0gKHcgPDwgOCkgfCBwWzJdOworICAgdyA9ICh3IDw8IDgpIHwgcFsxXTsKKyAgIHcgPSAodyA8PCA4KSB8IHBbMF07CisgICByZXR1cm4gdzsKK30KKwordm9pZCB3cml0ZV9taXNhbGlnbmVkX1VJbnRfTEUgKCB2b2lkKiBhZGRyLCBVSW50IHcgKQoreworICAgVUNoYXIqIHAgPSAoVUNoYXIqKWFkZHI7CisgICBwWzBdID0gKHcgJiAweEZGKTsgdyA+Pj0gODsKKyAgIHBbMV0gPSAodyAmIDB4RkYpOyB3ID4+PSA4OworICAgcFsyXSA9ICh3ICYgMHhGRik7IHcgPj49IDg7CisgICBwWzNdID0gKHcgJiAweEZGKTsgdyA+Pj0gODsKK30KKwordm9pZCB3cml0ZV9taXNhbGlnbmVkX1VMb25nX0xFICggdm9pZCogYWRkciwgVUxvbmcgdyApCit7CisgICBVQ2hhciogcCA9IChVQ2hhciopYWRkcjsKKyAgIHBbMF0gPSAodyAmIDB4RkYpOyB3ID4+PSA4OworICAgcFsxXSA9ICh3ICYgMHhGRik7IHcgPj49IDg7CisgICBwWzJdID0gKHcgJiAweEZGKTsgdyA+Pj0gODsKKyAgIHBbM10gPSAodyAmIDB4RkYpOyB3ID4+PSA4OworICAgcFs0XSA9ICh3ICYgMHhGRik7IHcgPj49IDg7CisgICBwWzVdID0gKHcgJiAweEZGKTsgdyA+Pj0gODsKKyAgIHBbNl0gPSAodyAmIDB4RkYpOyB3ID4+PSA4OworICAgcFs3XSA9ICh3ICYgMHhGRik7IHcgPj49IDg7Cit9CisKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluX3V0aWwuYyAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvVkVYL3ByaXYvbWFpbl91dGlsLmggYi9WRVgvcHJpdi9tYWluX3V0aWwuaAppbmRleCAwMThiYTRmLi41N2Y0NWVkIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9tYWluX3V0aWwuaAorKysgYi9WRVgvcHJpdi9tYWluX3V0aWwuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE2Myw2ICsxNjMsMTQgQEAKICNlbmRpZgogfQogCisvKiBNaXNhbGlnbmVkIG1lbW9yeSBhY2Nlc3Mgc3VwcG9ydC4gKi8KKworZXh0ZXJuIFVJbnQgIHJlYWRfbWlzYWxpZ25lZF9VSW50X0xFICAoIHZvaWQqIGFkZHIgKTsKK2V4dGVybiBVTG9uZyByZWFkX21pc2FsaWduZWRfVUxvbmdfTEUgKCB2b2lkKiBhZGRyICk7CisKK2V4dGVybiB2b2lkICB3cml0ZV9taXNhbGlnbmVkX1VJbnRfTEUgICggdm9pZCogYWRkciwgVUludCAgdyApOworZXh0ZXJuIHZvaWQgIHdyaXRlX21pc2FsaWduZWRfVUxvbmdfTEUgKCB2b2lkKiBhZGRyLCBVTG9uZyB3ICk7CisKICNlbmRpZiAvKiBuZGVmIF9fVkVYX01BSU5fVVRJTF9IICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL1ZFWC9wcml2L3MzOTBfZGVmcy5oIGIvVkVYL3ByaXYvczM5MF9kZWZzLmgKaW5kZXggMWU4OTg4My4uNjc1MWQ4MCAxMDA2NDQKLS0tIGEvVkVYL3ByaXYvczM5MF9kZWZzLmgKKysrIGIvVkVYL3ByaXYvczM5MF9kZWZzLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTMKKyAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDE1CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9zMzkwX2Rpc2FzbS5jIGIvVkVYL3ByaXYvczM5MF9kaXNhc20uYwppbmRleCA5NWNmMWY3Li5mYTE4Y2E1IDEwMDY0NAotLS0gYS9WRVgvcHJpdi9zMzkwX2Rpc2FzbS5jCisrKyBiL1ZFWC9wcml2L3MzOTBfZGlzYXNtLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTMKKyAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDE1CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9WRVgvcHJpdi9zMzkwX2Rpc2FzbS5oIGIvVkVYL3ByaXYvczM5MF9kaXNhc20uaAppbmRleCAxNTIyNDQ1Li4yMzM0ZjAxIDEwMDY0NAotLS0gYS9WRVgvcHJpdi9zMzkwX2Rpc2FzbS5oCisrKyBiL1ZFWC9wcml2L3MzOTBfZGlzYXNtLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTMKKyAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDE1CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9WRVgvcHViL2xpYnZleC5oIGIvVkVYL3B1Yi9saWJ2ZXguaAppbmRleCAzNTQzZGU5Li4wMTFmZDUzIDEwMDY0NAotLS0gYS9WRVgvcHViL2xpYnZleC5oCisrKyBiL1ZFWC9wdWIvbGlidmV4LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMjQsMTEgKzMyNCwxMyBAQAogICAgZ3Vlc3RfYW1kNjRfYXNzdW1lX2ZzX2lzX2NvbnN0CiAgICAgICBndWVzdCBpcyBhbWQ2NC1saW51eCAgICAgICAgICAgICAgICA9PT4gVHJ1ZQogICAgICAgZ3Vlc3QgaXMgYW1kNjQtZGFyd2luICAgICAgICAgICAgICAgPT0+IEZhbHNlCisgICAgICBndWVzdCBpcyBhbWQ2NC1zb2xhcmlzICAgICAgICAgICAgICA9PT4gVHJ1ZQogICAgICAgZ3Vlc3QgaXMgb3RoZXIgICAgICAgICAgICAgICAgICAgICAgPT0+IGluYXBwbGljYWJsZQogCiAgICBndWVzdF9hbWQ2NF9hc3N1bWVfZ3NfaXNfY29uc3QKICAgICAgIGd1ZXN0IGlzIGFtZDY0LWRhcndpbiAgICAgICAgICAgICAgID09PiBUcnVlCiAgICAgICBndWVzdCBpcyBhbWQ2NC1saW51eCAgICAgICAgICAgICAgICA9PT4gVHJ1ZQorICAgICAgZ3Vlc3QgaXMgYW1kNjQtc29sYXJpcyAgICAgICAgICAgICAgPT0+IEZhbHNlCiAgICAgICBndWVzdCBpcyBvdGhlciAgICAgICAgICAgICAgICAgICAgICA9PT4gaW5hcHBsaWNhYmxlCiAKICAgIGd1ZXN0X3BwY196YXBfUlpfYXRfYmxyCkBAIC0zNTUsNyArMzU3LDcgQEAKIAogICAgICAgLyogQU1ENjQgR1VFU1RTIG9ubHk6IHNob3VsZCB3ZSB0cmFuc2xhdGUgJWZzLXByZWZpeGVkCiAgICAgICAgICBpbnN0cnVjdGlvbnMgdXNpbmcgdGhlIGFzc3VtcHRpb24gdGhhdCAlZnMgYWx3YXlzIGNvbnRhaW5zCi0gICAgICAgICB0aGUgc2FtZSB2YWx1ZT8gKHR5cGljYWxseSB6ZXJvIG9uIGxpbnV4KSAqLworICAgICAgICAgdGhlIHNhbWUgdmFsdWU/ICh0eXBpY2FsbHkgemVybyBvbiBsaW51eCBhbmQgc29sYXJpcykgKi8KICAgICAgIEJvb2wgZ3Vlc3RfYW1kNjRfYXNzdW1lX2ZzX2lzX2NvbnN0OwogCiAgICAgICAvKiBBTUQ2NCBHVUVTVFMgb25seTogc2hvdWxkIHdlIHRyYW5zbGF0ZSAlZ3MtcHJlZml4ZWQKZGlmZiAtLWdpdCBhL1ZFWC9wdWIvbGlidmV4X2Jhc2ljdHlwZXMuaCBiL1ZFWC9wdWIvbGlidmV4X2Jhc2ljdHlwZXMuaAppbmRleCA1OTg1OWQwLi5iMWQwZjZjIDEwMDY0NAotLS0gYS9WRVgvcHViL2xpYnZleF9iYXNpY3R5cGVzLmgKKysrIGIvVkVYL3B1Yi9saWJ2ZXhfYmFzaWN0eXBlcy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3B1Yi9saWJ2ZXhfZW1ub3RlLmggYi9WRVgvcHViL2xpYnZleF9lbW5vdGUuaAppbmRleCA1ZTZhOWQ4Li45NDM1MTMwIDEwMDY0NAotLS0gYS9WRVgvcHViL2xpYnZleF9lbW5vdGUuaAorKysgYi9WRVgvcHViL2xpYnZleF9lbW5vdGUuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X2FtZDY0LmggYi9WRVgvcHViL2xpYnZleF9ndWVzdF9hbWQ2NC5oCmluZGV4IDEwNDNiMjAuLmZkMTA0YWIgMTAwNjQ0Ci0tLSBhL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X2FtZDY0LmgKKysrIGIvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfYW1kNjQuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM3LDYgKzM3LDcgQEAKICNkZWZpbmUgX19MSUJWRVhfUFVCX0dVRVNUX0FNRDY0X0gKIAogI2luY2x1ZGUgImxpYnZleF9iYXNpY3R5cGVzLmgiCisjaW5jbHVkZSAibGlidmV4X2Vtbm90ZS5oIgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTkwLDggKzkxLDggQEAKICAgICAgICAgIGFsbCB0aGUgb2xkIHg4NyBGUFUgZ3VuawogICAgICAgICAgc2VnbWVudCByZWdpc3RlcnMgKi8KIAotICAgICAgLyogSEFDSyB0byBlLmcuIG1ha2UgdGxzIG9uIGFtZDY0LWxpbnV4IHdvcmsuICAlZnMgb25seSBldmVyIHNlZW1zIHRvCi0gICAgICAgICBob2xkIGEgY29uc3RhbnQgdmFsdWUgKHplcm8gb24gbGludXggbWFpbiB0aHJlYWQsIDB4NjMgaW4gb3RoZXIKKyAgICAgIC8qIEhBQ0sgdG8gZS5nLiBtYWtlIHRscyBvbiBhbWQ2NC1saW51eC9zb2xhcmlzIHdvcmsuICAlZnMgb25seSBldmVyIHNlZW1zCisgICAgICAgICB0byBob2xkIGEgY29uc3RhbnQgdmFsdWUgKHplcm8gb24gbGludXggbWFpbiB0aHJlYWQsIDB4NjMgaW4gb3RoZXIKICAgICAgICAgIHRocmVhZHMpLCBhbmQgc28gZ3Vlc3RfRlNfQ09OU1QgaG9sZHMKICAgICAgICAgIHRoZSA2NC1iaXQgb2Zmc2V0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbnN0YW50ICVmcyB2YWx1ZS4gKi8KICAgICAgIC8qIDIwMCAqLyBVTG9uZyBndWVzdF9GU19DT05TVDsKQEAgLTE1OSw3ICsxNjAsNyBAQAogICAgICAgICAgJWdzIG9ubHkgZXZlciBzZWVtcyB0byBob2xkIGEgY29uc3RhbnQgdmFsdWUgKGUuZy4gMHg2MCBvbiBkYXJ3aW4sCiAgICAgICAgICAweDZiIG9uIGxpbnV4KSwgYW5kIHNvIGd1ZXN0X0dTX0NPTlNUIGhvbGRzIHRoZSA2NC1iaXQgb2Zmc2V0CiAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb25zdGFudCAlZ3MgdmFsdWUuICAoQSBkaXJlY3QgYW5hbG9ndWUKLSAgICAgICAgIG9mIHRoZSAlZnMtY29uc3QgaGFjayBmb3IgYW1kNjQtbGludXgpLiAqLworICAgICAgICAgb2YgdGhlICVmcy1jb25zdCBoYWNrIGZvciBhbWQ2NC1saW51eC9zb2xhcmlzKS4gKi8KICAgICAgIFVMb25nIGd1ZXN0X0dTX0NPTlNUOwogCiAgICAgICAvKiBOZWVkZWQgZm9yIERhcndpbiAoYnV0IG1hbmRhdGVkIGZvciBhbGwgZ3Vlc3QgYXJjaGl0ZWN0dXJlcyk6CkBAIC0xOTIsNiArMTkzLDExIEBACiBleHRlcm4gCiBVTG9uZyBMaWJWRVhfR3Vlc3RBTUQ2NF9nZXRfcmZsYWdzICggLypJTiovY29uc3QgVmV4R3Vlc3RBTUQ2NFN0YXRlKiB2ZXhfc3RhdGUgKTsKIAorLyogUHV0IHJmbGFncyBpbnRvIHRoZSBnaXZlbiBzdGF0ZS4gKi8KK2V4dGVybgordm9pZCBMaWJWRVhfR3Vlc3RBTUQ2NF9wdXRfcmZsYWdzICggVUxvbmcgcmZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1ZleEd1ZXN0QU1ENjRTdGF0ZSogdmV4X3N0YXRlICk7CisKIC8qIFNldCB0aGUgY2FycnkgZmxhZyBpbiB0aGUgZ2l2ZW4gc3RhdGUgdG8gJ25ld19jYXJyeV9mbGFnJywgd2hpY2gKICAgIHNob3VsZCBiZSB6ZXJvIG9yIG9uZS4gKi8KIGV4dGVybgpAQCAtMTk5LDYgKzIwNSwxOCBAQAogTGliVkVYX0d1ZXN0QU1ENjRfcHV0X3JmbGFnX2MgKCBVTG9uZyBuZXdfY2FycnlfZmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1ZleEd1ZXN0QU1ENjRTdGF0ZSogdmV4X3N0YXRlICk7CiAKKy8qIERvIEZYU0FWRSBmcm9tIHRoZSBzdXBwbGllZCBWZXhHdWVzdEFNRDY0dGF0ZSBzdHJ1Y3R1cmUgYW5kIHN0b3JlIHRoZQorICAgcmVzdWx0IGF0IHRoZSBnaXZlbiBhZGRyZXNzIHdoaWNoIHJlcHJlc2VudHMgYSBidWZmZXIgb2YgYXQgbGVhc3QgNDE2CisgICBieXRlcy4gKi8KK2V4dGVybgordm9pZCBMaWJWRVhfR3Vlc3RBTUQ2NF9meHNhdmUgKCAvKklOKi9WZXhHdWVzdEFNRDY0U3RhdGUqIGdzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL0hXb3JkIGZwX3N0YXRlICk7CisKKy8qIERvIEZYUlNUT1IgZnJvbSB0aGUgc3VwcGxpZWQgYWRkcmVzcyBhbmQgc3RvcmUgcmVhZCB2YWx1ZXMgdG8gdGhlIGdpdmVuCisgICBWZXhHdWVzdEFNRDY0U3RhdGUgc3RydWN0dXJlLiAqLworZXh0ZXJuCitWZXhFbU5vdGUgTGliVkVYX0d1ZXN0QU1ENjRfZnhyc3RvciAoIC8qSU4qL0hXb3JkIGZwX3N0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKk1PRCovVmV4R3Vlc3RBTUQ2NFN0YXRlKiBnc3QgKTsKIAogI2VuZGlmIC8qIG5kZWYgX19MSUJWRVhfUFVCX0dVRVNUX0FNRDY0X0ggKi8KIApkaWZmIC0tZ2l0IGEvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfYXJtLmggYi9WRVgvcHViL2xpYnZleF9ndWVzdF9hcm0uaAppbmRleCBhZTc3YjE3Li5mNDQ2MjYyIDEwMDY0NAotLS0gYS9WRVgvcHViL2xpYnZleF9ndWVzdF9hcm0uaAorKysgYi9WRVgvcHViL2xpYnZleF9ndWVzdF9hcm0uaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X2FybTY0LmggYi9WRVgvcHViL2xpYnZleF9ndWVzdF9hcm02NC5oCmluZGV4IGFjMjI0MzIuLmM0MzhjMWUgMTAwNjQ0Ci0tLSBhL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X2FybTY0LmgKKysrIGIvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfYXJtNjQuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxMyBPcGVuV29ya3MKKyAgIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IE9wZW5Xb3JrcwogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9WRVgvcHViL2xpYnZleF9ndWVzdF9taXBzMzIuaCBiL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X21pcHMzMi5oCmluZGV4IDk5YjlkYmIuLmZkNzAyYTMgMTAwNjQ0Ci0tLSBhL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X21pcHMzMi5oCisrKyBiL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X21pcHMzMi5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIFJULVJLCisgICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSBSVC1SSwogICAgICAgbWlwcy12YWxncmluZEBydC1yay5jb20KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfbWlwczY0LmggYi9WRVgvcHViL2xpYnZleF9ndWVzdF9taXBzNjQuaAppbmRleCA3MDA3M2I2Li5mZTI4YWNhIDEwMDY0NAotLS0gYS9WRVgvcHViL2xpYnZleF9ndWVzdF9taXBzNjQuaAorKysgYi9WRVgvcHViL2xpYnZleF9ndWVzdF9taXBzNjQuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X3BwYzMyLmggYi9WRVgvcHViL2xpYnZleF9ndWVzdF9wcGMzMi5oCmluZGV4IDNjMmZkOWUuLjViZWJlZjggMTAwNjQ0Ci0tLSBhL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X3BwYzMyLmgKKysrIGIvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfcHBjMzIuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI0MSwxMSArMjQxLDEyIEBACiAgICAgICAvKiAxMzYwICovIFVMb25nIGd1ZXN0X1RGSEFSOyAgICAgLy8gVHJhbnNhY3Rpb24gRmFpbHVyZSBIYW5kbGVyIEFkZHJlc3MgUmVnaXN0ZXIgCiAgICAgICAvKiAxMzY4ICovIFVMb25nIGd1ZXN0X1RFWEFTUjsgICAgLy8gVHJhbnNhY3Rpb24gRVhjZXB0aW9uIEFuZCBTdW1tYXJ5IFJlZ2lzdGVyCiAgICAgICAvKiAxMzc2ICovIFVMb25nIGd1ZXN0X1RGSUFSOyAgICAgLy8gVHJhbnNhY3Rpb24gRmFpbHVyZSBJbnN0cnVjdGlvbiBBZGRyZXNzIFJlZ2lzdGVyCi0gICAgICAvKiAxMzg0ICovIFVJbnQgIGd1ZXN0X1RFWEFTUlU7ICAgLy8gVHJhbnNhY3Rpb24gRVhjZXB0aW9uIEFuZCBTdW1tYXJ5IFJlZ2lzdGVyIFVwcGVyCi0KKyAgICAgIC8qIDEzODQgKi8gVUxvbmcgZ3Vlc3RfUFBSOyAgICAgICAvLyBQcm9ncmFtIFByaW9yaXR5IHJlZ2lzdGVyCisgICAgICAvKiAxMzkyICovIFVJbnQgIGd1ZXN0X1RFWEFTUlU7ICAgLy8gVHJhbnNhY3Rpb24gRVhjZXB0aW9uIEFuZCBTdW1tYXJ5IFJlZ2lzdGVyIFVwcGVyCisgICAgICAvKiAxMzk2ICovIFVJbnQgIGd1ZXN0X1BTUEI7ICAgICAgLy8gUHJvYmxlbSBTdGF0ZSBQcmlvcml0eSBCb29zdCByZWdpc3RlcgogICAgICAgLyogUGFkZGluZyB0byBtYWtlIGl0IGhhdmUgYW4gMTYtYWxpZ25lZCBzaXplICovCi0gICAgICAvKiAxMzg4ICovIFVJbnQgIHBhZGRpbmcyOwotCisgICAgICAvKiAxNDAwICovIFVJbnQgIHBhZGRpbmcyOworICAgICAgLyogMTQwNCAqLyBVSW50ICBwYWRkaW5nMzsKICAgIH0KICAgIFZleEd1ZXN0UFBDMzJTdGF0ZTsKIApkaWZmIC0tZ2l0IGEvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfcHBjNjQuaCBiL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X3BwYzY0LmgKaW5kZXggMTNhMzU0MC4uZjMzMTBjYiAxMDA2NDQKLS0tIGEvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfcHBjNjQuaAorKysgYi9WRVgvcHViL2xpYnZleF9ndWVzdF9wcGM2NC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjgyLDEyICsyODIsMTQgQEAKICAgICAgIC8qIDE2NTYgKi8gVUxvbmcgZ3Vlc3RfVEZIQVI7ICAgICAvLyBUcmFuc2FjdGlvbiBGYWlsdXJlIEhhbmRsZXIgQWRkcmVzcyBSZWdpc3RlciAKICAgICAgIC8qIDE2NjQgKi8gVUxvbmcgZ3Vlc3RfVEVYQVNSOyAgICAvLyBUcmFuc2FjdGlvbiBFWGNlcHRpb24gQW5kIFN1bW1hcnkgUmVnaXN0ZXIKICAgICAgIC8qIDE2NzIgKi8gVUxvbmcgZ3Vlc3RfVEZJQVI7ICAgICAvLyBUcmFuc2FjdGlvbiBGYWlsdXJlIEluc3RydWN0aW9uIEFkZHJlc3MgUmVnaXN0ZXIKLSAgICAgIC8qIDE2ODAgKi8gVUludCAgZ3Vlc3RfVEVYQVNSVTsgICAvLyBUcmFuc2FjdGlvbiBFWGNlcHRpb24gQW5kIFN1bW1hcnkgUmVnaXN0ZXIgVXBwZXIKKyAgICAgIC8qIDE2ODAgKi8gVUxvbmcgZ3Vlc3RfUFBSOyAgICAgICAvLyBQcm9ncmFtIFByaW9yaXR5IHJlZ2lzdGVyCisgICAgICAvKiAxNjg4ICovIFVJbnQgIGd1ZXN0X1RFWEFTUlU7ICAgLy8gVHJhbnNhY3Rpb24gRVhjZXB0aW9uIEFuZCBTdW1tYXJ5IFJlZ2lzdGVyIFVwcGVyCisgICAgICAvKiAxNjkyICovIFVJbnQgIGd1ZXN0X1BTUEI7ICAgICAgLy8gUHJvYmxlbSBTdGF0ZSBQcmlvcml0eSBCb29zdCByZWdpc3RlcgogCiAgICAgICAvKiBQYWRkaW5nIHRvIG1ha2UgaXQgaGF2ZSBhbiAxNi1hbGlnbmVkIHNpemUgKi8KLSAgICAgIC8qIDE2ODQgKi8gIFVJbnQgIHBhZGRpbmcxOwotICAgICAgLyogMTY4OCAqLyAgVUludCAgcGFkZGluZzI7Ci0gICAgICAvKiAxNjkyICovICBVSW50ICBwYWRkaW5nMzsKKyAgICAgIC8qIDE2OTYgICBVSW50ICBwYWRkaW5nMTsgIGN1cnJlbnRseSBub3QgbmVlZGVkICovCisgICAgICAvKiAxNzAwICAgVUludCAgcGFkZGluZzI7ICBjdXJyZW50bHkgbm90IG5lZWRlZCAqLworICAgICAgLyogMTcwOCAgIFVJbnQgIHBhZGRpbmczOyAgY3VycmVudGx5IG5vdCBuZWVkZWQgKi8KIAogICAgfQogICAgVmV4R3Vlc3RQUEM2NFN0YXRlOwpkaWZmIC0tZ2l0IGEvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfczM5MHguaCBiL1ZFWC9wdWIvbGlidmV4X2d1ZXN0X3MzOTB4LmgKaW5kZXggYTE2M2I3Zi4uOTlkNTk0NyAxMDA2NDQKLS0tIGEvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfczM5MHguaAorKysgYi9WRVgvcHViL2xpYnZleF9ndWVzdF9zMzkweC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDEzCisgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxNQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfdGlsZWd4LmggYi9WRVgvcHViL2xpYnZleF9ndWVzdF90aWxlZ3guaAppbmRleCA2MWE2MGUzLi5kM2M3MDYyIDEwMDY0NAotLS0gYS9WRVgvcHViL2xpYnZleF9ndWVzdF90aWxlZ3guaAorKysgYi9WRVgvcHViL2xpYnZleF9ndWVzdF90aWxlZ3guaApAQCAtNyw3ICs3LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBUaWxlcmEgQ29ycC4KKyAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgVGlsZXJhIENvcnAuCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvVkVYL3B1Yi9saWJ2ZXhfZ3Vlc3RfeDg2LmggYi9WRVgvcHViL2xpYnZleF9ndWVzdF94ODYuaAppbmRleCBhYzc4MGFjLi41Yzc3NTY5IDEwMDY0NAotLS0gYS9WRVgvcHViL2xpYnZleF9ndWVzdF94ODYuaAorKysgYi9WRVgvcHViL2xpYnZleF9ndWVzdF94ODYuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM3LDYgKzM3LDcgQEAKICNkZWZpbmUgX19MSUJWRVhfUFVCX0dVRVNUX1g4Nl9ICiAKICNpbmNsdWRlICJsaWJ2ZXhfYmFzaWN0eXBlcy5oIgorI2luY2x1ZGUgImxpYnZleF9lbW5vdGUuaCIKIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0yNzksNiArMjgwLDExIEBACiBleHRlcm4gCiBVSW50IExpYlZFWF9HdWVzdFg4Nl9nZXRfZWZsYWdzICggLypJTiovY29uc3QgVmV4R3Vlc3RYODZTdGF0ZSogdmV4X3N0YXRlICk7CiAKKy8qIFB1dCBlZmxhZ3MgaW50byB0aGUgZ2l2ZW4gc3RhdGUuICovCitleHRlcm4KK3ZvaWQgTGliVkVYX0d1ZXN0WDg2X3B1dF9lZmxhZ3MgKCBVSW50IGVmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKk1PRCovVmV4R3Vlc3RYODZTdGF0ZSogdmV4X3N0YXRlICk7CisKIC8qIFNldCB0aGUgY2FycnkgZmxhZyBpbiB0aGUgZ2l2ZW4gc3RhdGUgdG8gJ25ld19jYXJyeV9mbGFnJywgd2hpY2gKICAgIHNob3VsZCBiZSB6ZXJvIG9yIG9uZS4gKi8KIGV4dGVybgpAQCAtMjg2LDYgKzI5MiwyOSBAQAogTGliVkVYX0d1ZXN0WDg2X3B1dF9lZmxhZ19jICggVUludCBuZXdfY2FycnlfZmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qTU9EKi9WZXhHdWVzdFg4NlN0YXRlKiB2ZXhfc3RhdGUgKTsKIAorLyogRG8geDg3IHNhdmUgZnJvbSB0aGUgc3VwcGxpZWQgVmV4R3Vlc3RYODZTdGF0ZSBzdHJ1Y3R1cmUgYW5kIHN0b3JlIHRoZQorICAgcmVzdWx0IGF0IHRoZSBnaXZlbiBhZGRyZXNzIHdoaWNoIHJlcHJlc2VudHMgYSBidWZmZXIgb2YgYXQgbGVhc3QgMTA4CisgICBieXRlcy4gKi8KK2V4dGVybgordm9pZCBMaWJWRVhfR3Vlc3RYODZfZ2V0X3g4NyAoIC8qSU4qL1ZleEd1ZXN0WDg2U3RhdGUqIHZleF9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKk9VVCovVUNoYXIqIHg4N19zdGF0ZSApOworCisvKiBEbyB4ODcgcmVzdG9yZSBmcm9tIHRoZSBzdXBwbGllZCBhZGRyZXNzIGFuZCBzdG9yZSByZWFkIHZhbHVlcyB0byB0aGUgZ2l2ZW4KKyAgIFZleEd1ZXN0WDg2U3RhdGUgc3RydWN0dXJlLiAqLworZXh0ZXJuCitWZXhFbU5vdGUgTGliVkVYX0d1ZXN0WDg2X3B1dF94ODcgKCAvKklOKi9VQ2hhciogeDg3X3N0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1ZleEd1ZXN0WDg2U3RhdGUqIHZleF9zdGF0ZSk7CisKKy8qIFJldHVybiBteGNzciBmcm9tIHRoZSBzdXBwbGllZCBWZXhHdWVzdFg4NlN0YXRlIHN0cnVjdHVyZS4gKi8KK2V4dGVybgorVUludCBMaWJWRVhfR3Vlc3RYODZfZ2V0X214Y3NyICggLypJTiovVmV4R3Vlc3RYODZTdGF0ZSogdmV4X3N0YXRlICk7CisKKy8qIE1vZGlmeSB0aGUgZ2l2ZW4gVmV4R3Vlc3RYODZTdGF0ZSBzdHJ1Y3R1cmUgYWNjb3JkaW5nIHRvIHRoZSBwYXNzZWQgbXhjc3IKKyAgIHZhbHVlLiAqLworZXh0ZXJuCitWZXhFbU5vdGUgTGliVkVYX0d1ZXN0WDg2X3B1dF9teGNzciAoIC8qSU4qL1VJbnQgbXhjc3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qTU9EKi9WZXhHdWVzdFg4NlN0YXRlKiB2ZXhfc3RhdGUpOworCiAjZW5kaWYgLyogbmRlZiBfX0xJQlZFWF9QVUJfR1VFU1RfWDg2X0ggKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvVkVYL3B1Yi9saWJ2ZXhfaXIuaCBiL1ZFWC9wdWIvbGlidmV4X2lyLmgKaW5kZXggMTQ1Y2FhNC4uNGMwNTM5OSAxMDA2NDQKLS0tIGEvVkVYL3B1Yi9saWJ2ZXhfaXIuaAorKysgYi9WRVgvcHViL2xpYnZleF9pci5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzEzLDYgKzcxMyw4IEBACiAgICAgICBJb3BfQ29zRjY0LCAgICAvKiBGQ09TICovCiAgICAgICBJb3BfVGFuRjY0LCAgICAvKiBGVEFOICovCiAgICAgICBJb3BfMnhtMUY2NCwgICAvKiAoMl5hcmcgLSAxLjApICovCisgICAgICBJb3BfUm91bmRGMTI4dG9JbnQsIC8qIEYxMjggdmFsdWUgdG8gbmVhcmVzdCBpbnRlZ3JhbCB2YWx1ZSAoc3RpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgRjEyOCkgKi8KICAgICAgIElvcF9Sb3VuZEY2NHRvSW50LCAvKiBGNjQgdmFsdWUgdG8gbmVhcmVzdCBpbnRlZ3JhbCB2YWx1ZSAoc3RpbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBGNjQpICovCiAgICAgICBJb3BfUm91bmRGMzJ0b0ludCwgLyogRjMyIHZhbHVlIHRvIG5lYXJlc3QgaW50ZWdyYWwgdmFsdWUgKHN0aWxsCkBAIC0xODQ4LDYgKzE4NTAsMTAgQEAKIC8qIFByZXR0eS1wcmludCBhbiBvcC4gKi8KIGV4dGVybiB2b2lkIHBwSVJPcCAoIElST3AgKTsKIAorLyogRm9yIGEgZ2l2ZW4gb3BlcmFuZCByZXR1cm4gdGhlIHR5cGVzIG9mIGl0cyBhcmd1bWVudHMgYW5kIGl0cyByZXN1bHQuICovCitleHRlcm4gdm9pZCB0eXBlT2ZQcmltb3AgKCBJUk9wIG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVRzKi8gSVJUeXBlKiB0X2RzdCwgSVJUeXBlKiB0X2FyZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlR5cGUqIHRfYXJnMiwgSVJUeXBlKiB0X2FyZzMsIElSVHlwZSogdF9hcmc0ICk7CiAKIC8qIEVuY29kaW5nIG9mIElFRUU3NTQtc3BlY2lmaWVkIHJvdW5kaW5nIG1vZGVzLgogICAgTm90ZSwgdmFyaW91cyBmcm9udCBhbmQgYmFjayBlbmRzIHJlbHkgb24gdGhlIGFjdHVhbCBudW1lcmljYWwKQEAgLTIyODIsNiArMjI4OCw4IEBACiAgICAgICBJamtfU3lzX2ludDEyOCwgICAgIC8qIGFtZDY0L3g4NiAnaW50ICQweDgwJyAqLwogICAgICAgSWprX1N5c19pbnQxMjksICAgICAvKiBhbWQ2NC94ODYgJ2ludCAkMHg4MScgKi8KICAgICAgIElqa19TeXNfaW50MTMwLCAgICAgLyogYW1kNjQveDg2ICdpbnQgJDB4ODInICovCisgICAgICBJamtfU3lzX2ludDE0NSwgICAgIC8qIGFtZDY0L3g4NiAnaW50ICQweDkxJyAqLworICAgICAgSWprX1N5c19pbnQyMTAsICAgICAvKiBhbWQ2NC94ODYgJ2ludCAkMHhEMicgKi8KICAgICAgIElqa19TeXNfc3lzZW50ZXIgICAgLyogeDg2ICdzeXNlbnRlcicuICBndWVzdF9FSVAgYmVjb21lcyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZCBhdCB0aGUgcG9pbnQgdGhpcyBoYXBwZW5zLiAqLwogICAgfQpAQCAtMjU5MCw2ICsyNTk4LDcgQEAKIHR5cGVkZWYKICAgIGVudW0gewogICAgICAgSUxHb3BfSU5WQUxJRD0weDFEMDAsCisgICAgICBJTEdvcF9JZGVudFYxMjgsIC8qIDEyOCBiaXQgdmVjdG9yLCBubyBjb252ZXJzaW9uICovCiAgICAgICBJTEdvcF9JZGVudDY0LCAgIC8qIDY0IGJpdCwgbm8gY29udmVyc2lvbiAqLwogICAgICAgSUxHb3BfSWRlbnQzMiwgICAvKiAzMiBiaXQsIG5vIGNvbnZlcnNpb24gKi8KICAgICAgIElMR29wXzE2VXRvMzIsICAgLyogMTYgYml0IGxvYWQsIFotd2lkZW4gdG8gMzIgKi8KZGlmZiAtLWdpdCBhL1ZFWC9wdWIvbGlidmV4X3MzOTB4X2NvbW1vbi5oIGIvVkVYL3B1Yi9saWJ2ZXhfczM5MHhfY29tbW9uLmgKaW5kZXggYThjOGM1My4uZWNkYzExYiAxMDA2NDQKLS0tIGEvVkVYL3B1Yi9saWJ2ZXhfczM5MHhfY29tbW9uLmgKKysrIGIvVkVYL3B1Yi9saWJ2ZXhfczM5MHhfY29tbW9uLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTMKKyAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDE1CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9WRVgvcHViL2xpYnZleF90cmNfdmFsdWVzLmggYi9WRVgvcHViL2xpYnZleF90cmNfdmFsdWVzLmgKaW5kZXggODIwOTA0Mi4uMzhmZjJlMSAxMDA2NDQKLS0tIGEvVkVYL3B1Yi9saWJ2ZXhfdHJjX3ZhbHVlcy5oCisrKyBiL1ZFWC9wdWIvbGlidmV4X3RyY192YWx1ZXMuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTgzLDYgKzgzLDggQEAKICNkZWZpbmUgVkVYX1RSQ19KTVBfU1lTX0lOVDEyOCAgIDc3IC8qIGRvIHN5c2NhbGwgYmVmb3JlIGNvbnRpbnVpbmcgKi8KICNkZWZpbmUgVkVYX1RSQ19KTVBfU1lTX0lOVDEyOSAgIDg5IC8qIGRvIHN5c2NhbGwgYmVmb3JlIGNvbnRpbnVpbmcgKi8KICNkZWZpbmUgVkVYX1RSQ19KTVBfU1lTX0lOVDEzMCAgIDkxIC8qIGRvIHN5c2NhbGwgYmVmb3JlIGNvbnRpbnVpbmcgKi8KKyNkZWZpbmUgVkVYX1RSQ19KTVBfU1lTX0lOVDE0NSAgMTExIC8qIGRvIHN5c2NhbGwgYmVmb3JlIGNvbnRpbnVpbmcgKi8KKyNkZWZpbmUgVkVYX1RSQ19KTVBfU1lTX0lOVDIxMCAgMTEzIC8qIGRvIHN5c2NhbGwgYmVmb3JlIGNvbnRpbnVpbmcgKi8KIAogI2RlZmluZSBWRVhfVFJDX0pNUF9TWVNfU1lTRU5URVIgNzkgLyogZG8gc3lzY2FsbCBiZWZvcmUgY29udGludWluZyAqLwogCmRpZmYgLS1naXQgYS9WRVgvdXNlZnVsL3Rlc3RfbWFpbi5jIGIvVkVYL3VzZWZ1bC90ZXN0X21haW4uYwppbmRleCAyYjQ3NTkxLi41ZGI2ZWM2IDEwMDY0NAotLS0gYS9WRVgvdXNlZnVsL3Rlc3RfbWFpbi5jCisrKyBiL1ZFWC91c2VmdWwvdGVzdF9tYWluLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01MTYsNyArNTE2LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCiAgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNjcyLDkgKzY3Miw5IEBACiAgICBhcmUgaWRlbnRpY2FsbHkta2luZGVkLiAqLwogc3RhdGljIEJvb2wgc2FtZUtpbmRlZEF0b21zICggSVJBdG9tKiBhMSwgSVJBdG9tKiBhMiApCiB7Ci0gICBpZiAoYTEtPnRhZyA9PSBJZXhfUmRUbXAgJiYgYTEtPnRhZyA9PSBJZXhfUmRUbXApCisgICBpZiAoYTEtPnRhZyA9PSBJZXhfUmRUbXAgJiYgYTItPnRhZyA9PSBJZXhfUmRUbXApCiAgICAgICByZXR1cm4gVHJ1ZTsKLSAgIGlmIChhMS0+dGFnID09IElleF9Db25zdCAmJiBhMS0+dGFnID09IElleF9Db25zdCkKKyAgIGlmIChhMS0+dGFnID09IElleF9Db25zdCAmJiBhMi0+dGFnID09IElleF9Db25zdCkKICAgICAgIHJldHVybiBUcnVlOwogICAgcmV0dXJuIEZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvYXV4cHJvZ3MvTWFrZWZpbGUuYW0gYi9hdXhwcm9ncy9NYWtlZmlsZS5hbQppbmRleCA4OWNhODliLi5mNTY1NGMxIDEwMDY0NAotLS0gYS9hdXhwcm9ncy9NYWtlZmlsZS5hbQorKysgYi9hdXhwcm9ncy9NYWtlZmlsZS5hbQpAQCAtMzYsOSArMzYsMTYgQEAKIGlmIFZHQ09ORl9QTEFUVkFSSUFOVF9JU19BTkRST0lECiB2YWxncmluZF9saXN0ZW5lcl9DRkxBR1MgICAgKz0gLXN0YXRpYwogZW5kaWYKKyMgSWYgdGhlcmUgaXMgbm8gc2Vjb25kYXJ5IHBsYXRmb3JtLCBhbmQgdGhlIHBsYXRmb3JtcyBpbmNsdWRlIHg4Ni1kYXJ3aW4sCisjIHRoZW4gdGhlIHByaW1hcnkgcGxhdGZvcm0gbXVzdCBiZSB4ODYtZGFyd2luLiAgSGVuY2U6CitpZiAhIFZHQ09ORl9IQVZFX1BMQVRGT1JNX1NFQwogaWYgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1g4Nl9EQVJXSU4KIHZhbGdyaW5kX2xpc3RlbmVyX0xERkxBR1MgICArPSAtV2wsLXJlYWRfb25seV9yZWxvY3MgLVdsLHN1cHByZXNzCiBlbmRpZgorZW5kaWYKK2lmIFZHQ09ORl9PU19JU19TT0xBUklTCit2YWxncmluZF9saXN0ZW5lcl9MREFERCAgICAgID0gLWxzb2NrZXQgLWxuc2wKK2VuZGlmCiAKIHZhbGdyaW5kX2RpX3NlcnZlcl9TT1VSQ0VTICAgPSB2YWxncmluZC1kaS1zZXJ2ZXIuYwogdmFsZ3JpbmRfZGlfc2VydmVyX0NQUEZMQUdTICA9ICQoQU1fQ1BQRkxBR1NfUFJJKSAtSSQodG9wX3NyY2RpcikvY29yZWdyaW5kCkBAIC00OCw5ICs1NSwxNiBAQAogaWYgVkdDT05GX1BMQVRWQVJJQU5UX0lTX0FORFJPSUQKIHZhbGdyaW5kX2RpX3NlcnZlcl9DRkxBR1MgICAgKz0gLXN0YXRpYwogZW5kaWYKKyMgSWYgdGhlcmUgaXMgbm8gc2Vjb25kYXJ5IHBsYXRmb3JtLCBhbmQgdGhlIHBsYXRmb3JtcyBpbmNsdWRlIHg4Ni1kYXJ3aW4sCisjIHRoZW4gdGhlIHByaW1hcnkgcGxhdGZvcm0gbXVzdCBiZSB4ODYtZGFyd2luLiAgSGVuY2U6CitpZiAhIFZHQ09ORl9IQVZFX1BMQVRGT1JNX1NFQwogaWYgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1g4Nl9EQVJXSU4KIHZhbGdyaW5kX2RpX3NlcnZlcl9MREZMQUdTICAgKz0gLVdsLC1yZWFkX29ubHlfcmVsb2NzIC1XbCxzdXBwcmVzcwogZW5kaWYKK2VuZGlmCitpZiBWR0NPTkZfT1NfSVNfU09MQVJJUwordmFsZ3JpbmRfZGlfc2VydmVyX0xEQUREICAgICA9IC1sc29ja2V0IC1sbnNsCitlbmRpZgogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBnZXRvZmYtPHBsYXRmb3JtPgpkaWZmIC0tZ2l0IGEvYXV4cHJvZ3MvYnVpbGQtZ2NjIGIvYXV4cHJvZ3MvYnVpbGQtZ2NjCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmMDMzMmEKLS0tIC9kZXYvbnVsbAorKysgYi9hdXhwcm9ncy9idWlsZC1nY2MKQEAgLTAsMCArMSw1NSBAQAorIyEvYmluL3NoIC1lCisKKyMgU2ltcGxlIHNjcmlwdCB0byBidWlsZCBHQ0MgbmF0aXZlbHkgaW5jbHVkaW5nIGl0cyBwcmVyZXF1aXNpdGVzLgorIworIyBEZXBlbmRpbmcgb24geW91ciBuZWVkcyB5b3UgbWF5YmUgYWJsZSB0byBzcGVlZCB1cCB0aGUgR0NDIGJ1aWxkOgorIworIyAoYSkgRG8gbm90IGJ1aWxkIGEgYysrIGNvbXBpbGVyCisjICAgICBjKysgaXMgb25seSBuZWVkZWQgZm9yICJtYWtlIGNoZWNrIiBhbmQgcnVubmluZyByZWdyZXNzaW9uIHRlc3RzCisjICAgICAtLT4gY2hvb3NlICBMQU5HVUVHRVM9YyAgIGJlbG93CisjIChiKSBEbyBub3QgYnVpbGQgYSBjb21waWxlciB0aGF0IGNhbiBwcm9kdWNlIDMyLWJpdCBleGVjdXRhYmxlcworIyAgICAgb24gYSA2NC1iaXQgcGxhdGZvcm0KKyMgICAgIC0tPiBjaG9vc2UgIE1VTFRJTElCPS0tZGlzYWJsZS1tdWx0aWxpYiAgIGJlbG93CisjCisjIERlZmluZSB0aGUgZm9sbG93aW5nIDUgdmFyaWFibGVzOgorCitCVUlMRF9ESVI9L3RtcC9idWlsZC1nY2MKK0lOU1RBTExfRElSPS90bXAvaW5zdGFsbAorCitHQ0NfVkVSU0lPTj01LjEuMAorTEFOR1VBR0VTPWMsYysrCitNVUxUSUxJQj0KKyNMQU5HVUFHRVM9YworI01VTFRJTElCPS0tZGlzYWJsZS1tdWx0aWxpYgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTm8gY2hhbmdlcyBzaG91bGQgYmUgbmVlZGVkIGJlbG93IHRoaXMgbGluZQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgQ3JlYXRlIGJ1aWxkIGRpcmVjdG9yeQorZWNobyAiLi4uY3JlYXRpbmcgYnVpbGQgZGlyZWN0b3J5ICRCVUlMRF9ESVIiCitta2RpciAtcCAkQlVJTERfRElSCitjZCAkQlVJTERfRElSCisKKyMgRG93bmxvYWQgdGFyYmFsbHMKK2VjaG8gIi4uLmRvd25sb2FkaW5nIHRhcmJhbGwiCit3Z2V0IGZ0cDovL2Z0cC5nbnUub3JnL2dudS9nY2MvZ2NjLSRHQ0NfVkVSU0lPTi9nY2MtJEdDQ19WRVJTSU9OLnRhci5iejIKKworIyBCdWlsZCBHQ0MKK2VjaG8gIi4uLmJ1aWxkaW5nIEdDQyIKK3JtIC1yZiBnY2MtJEdDQ19WRVJTSU9OCit0YXIgeGYgZ2NjLSRHQ0NfVkVSU0lPTi50YXIuYnoyCitjZCBnY2MtJEdDQ19WRVJTSU9OCisuL2NvbnRyaWIvZG93bmxvYWRfcHJlcmVxdWlzaXRlcworY2QgLi4KK3JtIC1yZiBvYmpkaXIKK21rZGlyIG9iamRpcgorY2Qgb2JqZGlyCisuLi9nY2MtJEdDQ19WRVJTSU9OL2NvbmZpZ3VyZSAtLXByZWZpeD0kSU5TVEFMTF9ESVIgLS1kaXNhYmxlLWJvb3RzdHJhcCBcCisgICAgICAgJE1VTFRJTElCIC0tZW5hYmxlLWxhbmd1YWdlcz0kTEFOR1VBR0VTICAyPiYxID4gZ2NjLWNvbmZpZy5sb2cKK21ha2UgLXMgMj4mMSA+IGdjYy1tYWtlLmxvZworbWFrZSAtcyBpbnN0YWxsIDI+JjEgPiBnY2MtaW5zdGFsbC5sb2cKK212IGdjYy1jb25maWcubG9nIGdjYy1tYWtlLmxvZyBnY2MtaW5zdGFsbC5sb2cgLi4KKworIyBkb25lCitlY2hvICIuLi5kb25lIgpkaWZmIC0tZ2l0IGEvYXV4cHJvZ3MvY2hhbmdlLWNvcHlyaWdodC15ZWFyIGIvYXV4cHJvZ3MvY2hhbmdlLWNvcHlyaWdodC15ZWFyCmluZGV4IGU2Yjk4MDIuLmJkOGZkYzUgMTAwNzU1Ci0tLSBhL2F1eHByb2dzL2NoYW5nZS1jb3B5cmlnaHQteWVhcgorKysgYi9hdXhwcm9ncy9jaGFuZ2UtY29weXJpZ2h0LXllYXIKQEAgLTE5LDExICsxOSwxMSBAQAogZm9yIGkgaW4gYGZpbmQgLiAtbmFtZSAnKi5bY2hTXScgLW8gLW5hbWUgJyouaW4nIC10eXBlIGYgLW5vdCAtcGF0aCAnKi5zdm5cLyonYCA7IGRvCiAgICAgZWNobyAkaQogICAgIGlmIFsgLUwgJGkgXTsgdGhlbiBjb250aW51ZTsgZmkgICMgc2tpcCBzeW1ib2xpYyBsaW5rcwotICAgIHBlcmwgLXAgLWUgJ3MvQ29weXJpZ2h0IFwoQ1wpIDIwKFswLTFdKShbMC05XSktMjAxMy9Db3B5cmlnaHQgKEMpIDIwJDEkMi0yMDE0LycgPCAkaSA+IHRtcC4kJAorICAgIHBlcmwgLXAgLWUgJ3MvQ29weXJpZ2h0IFwoQ1wpIDIwKFswLTFdKShbMC05XSktMjAxMy9Db3B5cmlnaHQgKEMpIDIwJDEkMi0yMDE1LycgPCAkaSA+IHRtcC4kJAogICAgIG12IHRtcC4kJCAkaQogCiAjIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDExCiAKLSAgICBwZXJsIC1wIC1lICdzL0NvcHlyaWdodCBJQk0gQ29ycC4gMjAoWzAtMV0pKFswLTldKS0yMDEzL0NvcHlyaWdodCBJQk0gQ29ycC4gMjAkMSQyLTIwMTQvJyA8ICRpID4gdG1wLiQkCisgICAgcGVybCAtcCAtZSAncy9Db3B5cmlnaHQgSUJNIENvcnAuIDIwKFswLTFdKShbMC05XSktMjAxMy9Db3B5cmlnaHQgSUJNIENvcnAuIDIwJDEkMi0yMDE1LycgPCAkaSA+IHRtcC4kJAogICAgIG12IHRtcC4kJCAkaQogZG9uZQpkaWZmIC0tZ2l0IGEvYXV4cHJvZ3MvZ2V0b2ZmLmMgYi9hdXhwcm9ncy9nZXRvZmYuYwppbmRleCBmYTk1NTE1Li42ZTk0YjlhIDEwMDY0NAotLS0gYS9hdXhwcm9ncy9nZXRvZmYuYworKysgYi9hdXhwcm9ncy9nZXRvZmYuYwpAQCAtMiw3ICsyLDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNCBQaGlsaXBwZSBXYXJvcXVpZXJzCisgICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBQaGlsaXBwZSBXYXJvcXVpZXJzCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9hdXhwcm9ncy9nc2wxNnRlc3QgYi9hdXhwcm9ncy9nc2wxNnRlc3QKaW5kZXggYmQxMjdkNy4uMjJmN2NhYiAxMDA3NTUKLS0tIGEvYXV4cHJvZ3MvZ3NsMTZ0ZXN0CisrKyBiL2F1eHByb2dzL2dzbDE2dGVzdApAQCAtMSw0ICsxLDQgQEAKLSMhL2Jpbi9iYXNoCisjIS9iaW4vc2gKIAogIyBEbyBhbiBhdXRvbWF0ZWQgdGVzdCB3aGljaCBpbnZvbHZlcyBidWlsZGluZyBhbmQgcmVndGVzdGluZyB2ZXJzaW9uCiAjIDEuNiBvZiB0aGUgR05VIFNjaWVudGlmaWMgTGlicmFyeSAoZ3NsKS4gIFRoaXMgaGFzIHByb3ZlbiB0byBiZSBhIApAQCAtNDMsNyArNDMsNyBAQAogCiAgICAoZXZhbCAiJCoiKSA+PiBsb2cudmVyYm9zZSAyPiYxCiAKLSAgIGlmIFsgJD8gPT0gMCBdCisgICBpZiBbICQ/ID0gMCBdCiAgICB0aGVuCiAgICAgICBlY2hvICJkb25lIgogICAgICAgcmV0dXJuIDAKZGlmZiAtLWdpdCBhL2F1eHByb2dzL2dzbDE5dGVzdCBiL2F1eHByb2dzL2dzbDE5dGVzdAppbmRleCAzYzgxZTFkLi5iOTc3MzhmIDEwMDc1NQotLS0gYS9hdXhwcm9ncy9nc2wxOXRlc3QKKysrIGIvYXV4cHJvZ3MvZ3NsMTl0ZXN0CkBAIC0xLDQgKzEsNCBAQAotIyEvYmluL2Jhc2gKKyMhL2Jpbi9zaAogCiAjIERvIGFuIGF1dG9tYXRlZCB0ZXN0IHdoaWNoIGludm9sdmVzIGJ1aWxkaW5nIGFuZCByZWd0ZXN0aW5nIHZlcnNpb24KICMgMS45IG9mIHRoZSBHTlUgU2NpZW50aWZpYyBMaWJyYXJ5IChnc2wpLiAgVGhpcyBoYXMgcHJvdmVuIHRvIGJlIGEgCkBAIC00NSw3ICs0NSw3IEBACiAKICAgIChldmFsICIkKiIpID4+IGxvZy52ZXJib3NlIDI+JjEKIAotICAgaWYgWyAkPyA9PSAwIF0KKyAgIGlmIFsgJD8gPSAwIF0KICAgIHRoZW4KICAgICAgIGVjaG8gImRvbmUiCiAgICAgICByZXR1cm4gMApkaWZmIC0tZ2l0IGEvYXV4cHJvZ3MvdmFsZ3JpbmQtZGktc2VydmVyLmMgYi9hdXhwcm9ncy92YWxncmluZC1kaS1zZXJ2ZXIuYwppbmRleCBiZmNkZDE4Li4xNzE1YTU1IDEwMDY0NAotLS0gYS9hdXhwcm9ncy92YWxncmluZC1kaS1zZXJ2ZXIuYworKysgYi9hdXhwcm9ncy92YWxncmluZC1kaS1zZXJ2ZXIuYwpAQCAtMTcsNyArMTcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMy0yMDEzIE1vemlsbGEgRm91bmRhdGlvbgorICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgTW96aWxsYSBGb3VuZGF0aW9uCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC04OSw3ICs4OSw5IEBACiAjaW5jbHVkZSAicHViX2NvcmVfbGliY2ZpbGUuaCIgICAgICAvLyBGb3IgVkdfQ0xPX0RFRkFVTFRfTE9HUE9SVAogCiAvKiBOZWVkZWQgdG8gZ2V0IGEgZGVmaW5pdGlvbiBmb3IgcHJlYWQoKSBmcm9tIHVuaXN0ZC5oICovCi0jZGVmaW5lIF9YT1BFTl9TT1VSQ0UgNTAwCisjaWZuZGVmIF9YT1BFTl9TT1VSQ0UKKyNkZWZpbmUgX1hPUEVOX1NPVVJDRSA2MDAKKyNlbmRpZgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KZGlmZiAtLWdpdCBhL2F1eHByb2dzL3ZhbGdyaW5kLWxpc3RlbmVyLmMgYi9hdXhwcm9ncy92YWxncmluZC1saXN0ZW5lci5jCmluZGV4IDhkYTdhMjguLmQ1NmM3NGUgMTAwNjQ0Ci0tLSBhL2F1eHByb2dzL3ZhbGdyaW5kLWxpc3RlbmVyLmMKKysrIGIvYXV4cHJvZ3MvdmFsZ3JpbmQtbGlzdGVuZXIuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jYWNoZWdyaW5kL01ha2VmaWxlLmFtIGIvY2FjaGVncmluZC9NYWtlZmlsZS5hbQppbmRleCBhZjlmODA0Li5hNTg3ZDI0IDEwMDY0NAotLS0gYS9jYWNoZWdyaW5kL01ha2VmaWxlLmFtCisrKyBiL2NhY2hlZ3JpbmQvTWFrZWZpbGUuYW0KQEAgLTI4LDkgKzI4LDEzIEBACiBjZ19tZXJnZV9DRkxBR1MgICAgPSAkKEFNX0NGTEFHU19QUkkpCiBjZ19tZXJnZV9DQ0FTRkxBR1MgPSAkKEFNX0NDQVNGTEFHU19QUkkpCiBjZ19tZXJnZV9MREZMQUdTICAgPSAkKEFNX0NGTEFHU19QUkkpCisjIElmIHRoZXJlIGlzIG5vIHNlY29uZGFyeSBwbGF0Zm9ybSwgYW5kIHRoZSBwbGF0Zm9ybXMgaW5jbHVkZSB4ODYtZGFyd2luLAorIyB0aGVuIHRoZSBwcmltYXJ5IHBsYXRmb3JtIG11c3QgYmUgeDg2LWRhcndpbi4gIEhlbmNlOgoraWYgISBWR0NPTkZfSEFWRV9QTEFURk9STV9TRUMKIGlmIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9YODZfREFSV0lOCiBjZ19tZXJnZV9MREZMQUdTICAgKz0gLVdsLC1yZWFkX29ubHlfcmVsb2NzIC1XbCxzdXBwcmVzcwogZW5kaWYKK2VuZGlmCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIGNhY2hlZ3JpbmQtPHBsYXRmb3JtPgpkaWZmIC0tZ2l0IGEvY2FjaGVncmluZC9jZ19hbm5vdGF0ZS5pbiBiL2NhY2hlZ3JpbmQvY2dfYW5ub3RhdGUuaW4KaW5kZXggOWZiZWEyMC4uNjkzNjVlOCAxMDA2NDQKLS0tIGEvY2FjaGVncmluZC9jZ19hbm5vdGF0ZS5pbgorKysgYi9jYWNoZWdyaW5kL2NnX2Fubm90YXRlLmluCkBAIC03LDcgKzcsNyBAQAogIyAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2FjaGVncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBjYWNoZQogIyAgcHJvZmlsaW5nIHByb2dyYW1zLgogIwotIyAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorIyAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogIyAgICAgbmpuQHZhbGdyaW5kLm9yZwogIwogIyAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTU4LDcgKzE1OCw3IEBACiAgICAgLUk8ZD4gLS1pbmNsdWRlPTxkPiAgIGFkZCA8ZD4gdG8gbGlzdCBvZiBkaXJlY3RvcmllcyB0byBzZWFyY2ggZm9yIAogICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgZmlsZXMKIAotICBjZ19hbm5vdGF0ZSBpcyBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlLgorICBjZ19hbm5vdGF0ZSBpcyBDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlLgogICBhbmQgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIuCiAgIEJ1ZyByZXBvcnRzLCBmZWVkYmFjaywgYWRtaXJhdGlvbiwgYWJ1c2UsIGV0YywgdG86IG5qblxAdmFsZ3JpbmQub3JnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9jYWNoZWdyaW5kL2NnX2FyY2guYyBiL2NhY2hlZ3JpbmQvY2dfYXJjaC5jCmluZGV4IDM3NmQ3OWUuLjA4NTU4YmUgMTAwNjQ0Ci0tLSBhL2NhY2hlZ3JpbmQvY2dfYXJjaC5jCisrKyBiL2NhY2hlZ3JpbmQvY2dfYXJjaC5jCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2FjaGVncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBjYWNoZQogICAgcHJvZmlsaW5nIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM4Miw3ICszODIsNyBAQAogICAgICAgICAgfQogICAgICAgICAgVkdfKGRtc2cpKCJ3YXJuaW5nOiBQZW50aXVtIDQgd2l0aCAldSBLQiBtaWNyby1vcCBpbnN0cnVjdGlvbiB0cmFjZSBjYWNoZVxuIiwKICAgICAgICAgICAgICAgICAgICBpMS0+c2l6ZUIgLyAxMDI0KTsKLSAgICAgICAgIFZHXyhkbXNnKSgiICAgICAgICAgU2ltdWxhdGluZyBhICVkIEtCIEktY2FjaGUgd2l0aCAlZCBCIGxpbmVzXG4iLAorICAgICAgICAgVkdfKGRtc2cpKCIgICAgICAgICBTaW11bGF0aW5nIGEgJXUgS0IgSS1jYWNoZSB3aXRoICV1IEIgbGluZXNcbiIsCiAgICAgICAgICAgICAgICAgICAgYWRqdXN0ZWRfc2l6ZSAvIDEwMjQsIGd1ZXNzZWRfbGluZV9zaXplKTsKIAogICAgICAgICAgKkkxYyA9IChjYWNoZV90KSB7IGFkanVzdGVkX3NpemUsIGkxLT5hc3NvYywgZ3Vlc3NlZF9saW5lX3NpemUgfTsKZGlmZiAtLWdpdCBhL2NhY2hlZ3JpbmQvY2dfYXJjaC5oIGIvY2FjaGVncmluZC9jZ19hcmNoLmgKaW5kZXggN2Y5NDMwYi4uOTEwYTliMSAxMDA2NDQKLS0tIGEvY2FjaGVncmluZC9jZ19hcmNoLmgKKysrIGIvY2FjaGVncmluZC9jZ19hcmNoLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWNoZWdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhY2hlCiAgICBwcm9maWxpbmcgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY2FjaGVncmluZC9jZ19icmFuY2hwcmVkLmMgYi9jYWNoZWdyaW5kL2NnX2JyYW5jaHByZWQuYwppbmRleCAzOTZiZGUxLi5hMzQ3MzQ1IDEwMDY0NAotLS0gYS9jYWNoZWdyaW5kL2NnX2JyYW5jaHByZWQuYworKysgYi9jYWNoZWdyaW5kL2NnX2JyYW5jaHByZWQuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENhY2hlZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2FjaGUKICAgIHByb2ZpbGluZyBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jYWNoZWdyaW5kL2NnX2RpZmYuaW4gYi9jYWNoZWdyaW5kL2NnX2RpZmYuaW4KaW5kZXggOTZmNGIxNS4uMzk1NDYwYiAxMDA3NTUKLS0tIGEvY2FjaGVncmluZC9jZ19kaWZmLmluCisrKyBiL2NhY2hlZ3JpbmQvY2dfZGlmZi5pbgpAQCAtNyw3ICs3LDcgQEAKICMgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENhY2hlZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2FjaGUKICMgIHByb2ZpbGluZyBwcm9ncmFtcy4KICMKLSMgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyMgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICMgICAgIG5qbkB2YWxncmluZC5vcmcKICMKICMgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTUyLDcgKzUyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gZmlsZW5hbWVzLCBlZy4gLS1tb2QtZmlsZW5hbWU9J3MvcHJvZ1swLTldL3Byb2pOLycKICAgICAtLW1vZC1mdW5jbmFtZT08ZXhwcj4gbGlrZSAtLW1vZC1maWxlbmFtZSwgYnV0IGFwcGxpZWQgdG8gZnVuY3Rpb24gbmFtZXMKIAotICBjZ19kaWZmIGlzIENvcHlyaWdodCAoQykgMjAwMi0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUuCisgIGNnX2RpZmYgaXMgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZS4KICAgYW5kIGxpY2Vuc2VkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLgogICBCdWcgcmVwb3J0cywgZmVlZGJhY2ssIGFkbWlyYXRpb24sIGFidXNlLCBldGMsIHRvOiBuam5cQHZhbGdyaW5kLm9yZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvY2FjaGVncmluZC9jZ19tYWluLmMgYi9jYWNoZWdyaW5kL2NnX21haW4uYwppbmRleCBkY2M2MjIwLi5kZTBjMmE5IDEwMDY0NAotLS0gYS9jYWNoZWdyaW5kL2NnX21haW4uYworKysgYi9jYWNoZWdyaW5kL2NnX21haW4uYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENhY2hlZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2FjaGUKICAgIHByb2ZpbGluZyBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xNDU2LDcgKzE0NTYsNyBAQAogCiAgICAgICAvLyBQcmludCB0aGUgTGluZUNDCiAgICAgICBpZiAoY2xvX2NhY2hlX3NpbSAmJiBjbG9fYnJhbmNoX3NpbSkgewotICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAgIiV1ICVsbHUgJWxsdSAlbGx1IgorICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAgIiVkICVsbHUgJWxsdSAlbGx1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICVsbHUgJWxsdSAlbGx1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICVsbHUgJWxsdSAlbGx1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICVsbHUgJWxsdSAlbGx1ICVsbHVcbiIsCkBAIC0xNDY4LDcgKzE0NjgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDQy0+QmkuYiwgbGluZUNDLT5CaS5tcCk7CiAgICAgICB9CiAgICAgICBlbHNlIGlmIChjbG9fY2FjaGVfc2ltICYmICFjbG9fYnJhbmNoX3NpbSkgewotICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAgIiV1ICVsbHUgJWxsdSAlbGx1IgorICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAgIiVkICVsbHUgJWxsdSAlbGx1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICVsbHUgJWxsdSAlbGx1IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICVsbHUgJWxsdSAlbGx1XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDQy0+bG9jLmxpbmUsCkBAIC0xNDc3LDcgKzE0NzcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDQy0+RHcuYSwgbGluZUNDLT5Edy5tMSwgbGluZUNDLT5Edy5tTCk7CiAgICAgICB9CiAgICAgICBlbHNlIGlmICghY2xvX2NhY2hlX3NpbSAmJiBjbG9fYnJhbmNoX3NpbSkgewotICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAgIiV1ICVsbHUiCisgICAgICAgICBWR18oZnByaW50ZikoZnAsICAiJWQgJWxsdSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAlbGx1ICVsbHUgJWxsdSAlbGx1XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDQy0+bG9jLmxpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUNDLT5Jci5hLCAKQEAgLTE0ODUsNyArMTQ4NSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUNDLT5CaS5iLCBsaW5lQ0MtPkJpLm1wKTsKICAgICAgIH0KICAgICAgIGVsc2UgewotICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAgIiV1ICVsbHVcbiIsCisgICAgICAgICBWR18oZnByaW50ZikoZnAsICAiJWQgJWxsdVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQ0MtPmxvYy5saW5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDQy0+SXIuYSk7CiAgICAgICB9CkBAIC0xNjk4LDExICsxNjk4LDExIEBACiAgICAgICBWR18oZG1zZykoImNhY2hlZ3JpbmQ6IHdpdGggemVybyAgICAgIGluZm86JTYuMWYlJSAoJWQpXG4iLCAKICAgICAgICAgICAgICAgICBub19kZWJ1Z3MgKiAxMDAuMCAvIGRlYnVnX2xvb2t1cHMsIG5vX2RlYnVncyk7CiAKLSAgICAgIFZHXyhkbXNnKSgiY2FjaGVncmluZDogc3RyaW5nIHRhYmxlIHNpemU6ICVsdVxuIiwKKyAgICAgIFZHXyhkbXNnKSgiY2FjaGVncmluZDogc3RyaW5nIHRhYmxlIHNpemU6ICV1XG4iLAogICAgICAgICAgICAgICAgIFZHXyhPU2V0R2VuX1NpemUpKHN0cmluZ1RhYmxlKSk7Ci0gICAgICBWR18oZG1zZykoImNhY2hlZ3JpbmQ6IENDIHRhYmxlIHNpemU6ICVsdVxuIiwKKyAgICAgIFZHXyhkbXNnKSgiY2FjaGVncmluZDogQ0MgdGFibGUgc2l6ZTogJXVcbiIsCiAgICAgICAgICAgICAgICAgVkdfKE9TZXRHZW5fU2l6ZSkoQ0NfdGFibGUpKTsKLSAgICAgIFZHXyhkbXNnKSgiY2FjaGVncmluZDogSW5zdHJJbmZvIHRhYmxlIHNpemU6ICVsdVxuIiwKKyAgICAgIFZHXyhkbXNnKSgiY2FjaGVncmluZDogSW5zdHJJbmZvIHRhYmxlIHNpemU6ICV1XG4iLAogICAgICAgICAgICAgICAgIFZHXyhPU2V0R2VuX1NpemUpKGluc3RySW5mb1RhYmxlKSk7CiAgICB9CiB9CkBAIC0xNzgzLDcgKzE3ODMsNyBAQAogICAgVkdfKGRldGFpbHNfdmVyc2lvbikgICAgICAgICAoTlVMTCk7CiAgICBWR18oZGV0YWlsc19kZXNjcmlwdGlvbikgICAgICgiYSBjYWNoZSBhbmQgYnJhbmNoLXByZWRpY3Rpb24gcHJvZmlsZXIiKTsKICAgIFZHXyhkZXRhaWxzX2NvcHlyaWdodF9hdXRob3IpKAotICAgICAgIkNvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBhbmQgR05VIEdQTCdkLCBieSBOaWNob2xhcyBOZXRoZXJjb3RlIGV0IGFsLiIpOworICAgICAgIkNvcHlyaWdodCAoQykgMjAwMi0yMDE1LCBhbmQgR05VIEdQTCdkLCBieSBOaWNob2xhcyBOZXRoZXJjb3RlIGV0IGFsLiIpOwogICAgVkdfKGRldGFpbHNfYnVnX3JlcG9ydHNfdG8pICAoVkdfQlVHU19UTyk7CiAgICBWR18oZGV0YWlsc19hdmdfdHJhbnNsYXRpb25fc2l6ZUIpICggNTAwICk7CiAKZGlmZiAtLWdpdCBhL2NhY2hlZ3JpbmQvY2dfbWVyZ2UuYyBiL2NhY2hlZ3JpbmQvY2dfbWVyZ2UuYwppbmRleCA2Y2I3ZjVlLi5iMTdiMWVhIDEwMDY0NAotLS0gYS9jYWNoZWdyaW5kL2NnX21lcmdlLmMKKysrIGIvY2FjaGVncmluZC9jZ19tZXJnZS5jCkBAIC04LDcgKzgsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWNoZWdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhY2hlCiAgIHByb2ZpbGluZyBwcm9ncmFtcy4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgIEFWTCB0cmVlIGNvZGUgZGVyaXZlZCBmcm9tCmRpZmYgLS1naXQgYS9jYWNoZWdyaW5kL2NnX3NpbS5jIGIvY2FjaGVncmluZC9jZ19zaW0uYwppbmRleCAxYjMzZmNmLi43ZWRkMThlIDEwMDY0NAotLS0gYS9jYWNoZWdyaW5kL2NnX3NpbS5jCisrKyBiL2NhY2hlZ3JpbmQvY2dfc2ltLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWNoZWdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhY2hlCiAgICBwcm9maWxpbmcgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTU1LDcgKzE1NSw3IEBACiAgICAgICB9CiAgICAgICByZXR1cm4gY2FjaGVzaW1fc2V0cmVmX2lzX21pc3MoYywgc2V0MiwgdGFnMik7CiAgICB9Ci0gICBWR18ocHJpbnRmKSgiYWRkcjogJWx4ICBzaXplOiAldSAgYmxvY2tzOiAlbGQgJWxkIiwKKyAgIFZHXyhwcmludGYpKCJhZGRyOiAlbHggIHNpemU6ICV1ICBibG9ja3M6ICVsdSAlbHUiLAogICAgICAgICAgICAgICAgYSwgc2l6ZSwgYmxvY2sxLCBibG9jazIpOwogICAgVkdfKHRvb2xfcGFuaWMpKCJpdGVtIHN0cmFkZGxlcyBtb3JlIHRoYW4gdHdvIGNhY2hlIHNldHMiKTsKICAgIC8qIG5vdCByZWFjaGVkICovCmRpZmYgLS1naXQgYS9jYWxsZ3JpbmQvYmIuYyBiL2NhbGxncmluZC9iYi5jCmluZGV4IGI5YjM4MTIuLmNlZWE1YjkgMTAwNjQ0Ci0tLSBhL2NhbGxncmluZC9iYi5jCisrKyBiL2NhbGxncmluZC9iYi5jCkBAIC02LDcgKzYsNyBAQAogLyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENhbGxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBjYWxsIHRyYWNpbmcuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCisgICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSwgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTAxLDcgKzEwMSw3IEBACiAgICAgVkdfKGZyZWUpKGJicy50YWJsZSk7CiAKIAotICAgIENMR19ERUJVRygwLCAiUmVzaXplIEJCIEhhc2g6ICVkID0+ICVkIChlbnRyaWVzICVkLCBjb25mbGljdHMgJWQvJWQpXG4iLAorICAgIENMR19ERUJVRygwLCAiUmVzaXplIEJCIEhhc2g6ICV1ID0+ICVkIChlbnRyaWVzICV1LCBjb25mbGljdHMgJWQvJWQpXG4iLAogCSAgICAgYmJzLnNpemUsIG5ld19zaXplLAogCSAgICAgYmJzLmVudHJpZXMsIGNvbmZsaWN0czEsIGNvbmZsaWN0czIpOwogCkBAIC0xNTcsNyArMTU3LDcgQEAKIAogI2lmIENMR19FTkFCTEVfREVCVUcKICAgIENMR19ERUJVR0lGKDMpIHsKLSAgICAgVkdfKHByaW50ZikoIiAgbmV3X2JiIChpbnN0ciAlZCwgam1wcyAlZCwgaW52ICVzKSBbbm93ICVkXTogIiwKKyAgICAgVkdfKHByaW50ZikoIiAgbmV3X2JiIChpbnN0ciAldSwgam1wcyAldSwgaW52ICVzKSBbbm93ICVkXTogIiwKIAkJIGluc3RyX2NvdW50LCBjam1wX2NvdW50LAogCQkgY2ptcF9pbnZlcnRlZCA/ICJ5ZXMiOiJubyIsCiAJCSBDTEdfKHN0YXQpLmRpc3RpbmN0X2Jicyk7CkBAIC0xODgsNyArMTg4LDcgQEAKICAgICB9CiAKICAgICBDTEdfREVCVUcoNSwgIiAgbG9va3VwX2JiIChPYmogJXMsIG9mZiAlI2x4KTogJXBcbiIsCi0JICAgICBvYmotPm5hbWUsIG9mZnNldCwgYmIpOworICAgICAgICAgICAgICBvYmotPm5hbWUsIChVV29yZClvZmZzZXQsIGJiKTsKICAgICByZXR1cm4gYmI7CiB9CiAKQEAgLTIzNCw3ICsyMzQsNyBAQAogICogICBUaGlzIGludm9sdmVzIGEgcG9zc2libHkgZGlmZmVyZW50IGFkZHJlc3MsIGJ1dCBpcyBoYW5kbGVkIGJ5CiAgKiAgIGxvb2tpbmcgdXAgYSBCQiBrZXllZCBieSAob2JqX25vZGUsIGZpbGUgb2Zmc2V0KS4KICAqCi0gKiBiYkluPT0wIGlzIHBvc3NpYmxlIGZvciBhcnRpZmljYWwgQkIgd2l0aG91dCByZWFsIGNvZGUuCisgKiBiYkluPT0wIGlzIHBvc3NpYmxlIGZvciBhcnRpZmljaWFsIEJCIHdpdGhvdXQgcmVhbCBjb2RlLgogICogU3VjaCBhIEJCIGlzIGNyZWF0ZWQgd2hlbiByZXR1cm5pbmcgdG8gYW4gdW5rbm93biBmdW5jdGlvbi4KICAqLwogQkIqIENMR18oZ2V0X2JiKShBZGRyIGFkZHIsIElSU0IqIGJiSW4sIC8qT1VUKi8gQm9vbCAqc2Vlbl9iZWZvcmUpCkBAIC0yNjAsMTIgKzI2MCwxMiBAQAogCQkgICAiRVJST1I6IEJCIFJldHJhbnNsYXRpb24gTWlzbWF0Y2ggYXQgQkIgJSNseFxuIiwgYWRkcik7CiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCiAJCSAgICIgIG5ldzogT2JqICVzLCBPZmYgJSNseCwgQkJPZmYgJSNseCwgSW5zdHJzICV1XG4iLAotCQkgICBvYmotPm5hbWUsIG9iai0+b2Zmc2V0LAorCQkgICBvYmotPm5hbWUsIChVV29yZClvYmotPm9mZnNldCwKIAkJICAgYWRkciAtIG9iai0+b2Zmc2V0LCBuX2luc3Rycyk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCiAJCSAgICIgIG9sZDogT2JqICVzLCBPZmYgJSNseCwgQkJPZmYgJSNseCwgSW5zdHJzICV1XG4iLAotCQkgICBiYi0+b2JqLT5uYW1lLCBiYi0+b2JqLT5vZmZzZXQsCi0JCSAgIGJiLT5vZmZzZXQsIGJiLT5pbnN0cl9jb3VudCk7CisJCSAgIGJiLT5vYmotPm5hbWUsIChVV29yZCliYi0+b2JqLT5vZmZzZXQsCisJCSAgIChVV29yZCliYi0+b2Zmc2V0LCBiYi0+aW5zdHJfY291bnQpOwogICAgICAgQ0xHX0FTU0VSVChiYi0+aW5zdHJfY291bnQgPT0gbl9pbnN0cnMgKTsKICAgICB9CiAgICAgQ0xHX0FTU0VSVChiYi0+Y2ptcF9jb3VudCA9PSBuX2ptcHMgKTsKQEAgLTMwNiw3ICszMDYsNyBAQAogCiAgICAgaWYgKGJiID09IE5VTEwpIHsKIAlDTEdfREVCVUcoMywgIiAgZGVsZXRlX2JiIChPYmogJXMsIG9mZiAlI2x4KTogTk9UIEZPVU5EXG4iLAotCQkgIG9iai0+bmFtZSwgb2Zmc2V0KTsKKwkJICBvYmotPm5hbWUsIChVV29yZClvZmZzZXQpOwogCiAJLyogd2UgZGlkbid0IGZpbmQgaXQuCiAJICogdGhpcyBoYXBwZW5zIHdoZW4gY2FsbGdyaW5kcyBpbnN0cnVtZW50YXRpb24gbW9kZQpAQCAtMzI3LDcgKzMyNyw3IEBACiAgICAgfQogCiAgICAgQ0xHX0RFQlVHKDMsICIgIGRlbGV0ZV9iYiAoT2JqICVzLCBvZmYgJSNseCk6ICVwLCBCQkNDIGhlYWQ6ICVwXG4iLAotCSAgICAgIG9iai0+bmFtZSwgb2Zmc2V0LCBiYiwgYmItPmJiY2NfbGlzdCk7CisJICAgICAgb2JqLT5uYW1lLCAoVVdvcmQpb2Zmc2V0LCBiYiwgYmItPmJiY2NfbGlzdCk7CiAKICAgICBpZiAoYmItPmJiY2NfbGlzdCA9PSAwKSB7CiAJLyogY2FuIGJlIHNhZmVseSBkZWxldGVkICovCmRpZmYgLS1naXQgYS9jYWxsZ3JpbmQvYmJjYy5jIGIvY2FsbGdyaW5kL2JiY2MuYwppbmRleCAxNTgwYTQ3Li5lOTQyNmU1IDEwMDY0NAotLS0gYS9jYWxsZ3JpbmQvYmJjYy5jCisrKyBiL2NhbGxncmluZC9iYmNjLmMKQEAgLTYsNyArNiw3IEBACiAvKgogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2FsbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhbGwgdHJhY2luZy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1LCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC04Niw4ICs4Niw4IEBACiAgIGpDQyogamNjOwogCiAgIENMR19BU1NFUlQoYmJjYy0+Y3h0ICE9IDApOwotICBDTEdfREVCVUcoMSwgIiAgemVyb19iYmNjOiBCQiAlI2x4LCBDeHQgJWQgIgotCSAgICIoZm4gJyVzJywgcmVjICVkKVxuIiwgCisgIENMR19ERUJVRygxLCAiICB6ZXJvX2JiY2M6IEJCICUjbHgsIEN4dCAldSAiCisJICAgIihmbiAnJXMnLCByZWMgJXUpXG4iLCAKIAkgICBiYl9hZGRyKGJiY2MtPmJiKSwKIAkgICBiYmNjLT5jeHQtPmJhc2VfbnVtYmVyICsgYmJjYy0+cmVjX2luZGV4LAogCSAgIGJiY2MtPmN4dC0+Zm5bMF0tPm5hbWUsCkBAIC0xNzgsNyArMTc4LDcgQEAKICAgICAgICBiYmNjID0gYmJjYy0+bmV4dDsKICAgIH0KICAgIAotICAgQ0xHX0RFQlVHKDIsIiAgbG9va3VwX2JiY2MoQkIgJSNseCwgQ3h0ICVkLCBmbiAnJXMnKTogJXAgKHRpZCAlZClcbiIsCisgICBDTEdfREVCVUcoMiwiICBsb29rdXBfYmJjYyhCQiAlI2x4LCBDeHQgJXUsIGZuICclcycpOiAlcCAodGlkICV1KVxuIiwKIAkgICAgYmJfYWRkcihiYiksIGN4dC0+YmFzZV9udW1iZXIsIGN4dC0+Zm5bMF0tPm5hbWUsIAogCSAgICBiYmNjLCBiYmNjID8gYmJjYy0+dGlkIDogMCk7CiAKQEAgLTIzMCw3ICsyMzAsNyBAQAogICAgIFZHXyhmcmVlKShjdXJyZW50X2JiY2NzLnRhYmxlKTsKIAogCi0gICAgQ0xHX0RFQlVHKDAsIlJlc2l6ZSBCQkNDIEhhc2g6ICVkID0+ICVkIChlbnRyaWVzICVkLCBjb25mbGljdHMgJWQvJWQpXG4iLAorICAgIENMR19ERUJVRygwLCJSZXNpemUgQkJDQyBIYXNoOiAldSA9PiAlZCAoZW50cmllcyAldSwgY29uZmxpY3RzICVkLyVkKVxuIiwKIAkgICAgIGN1cnJlbnRfYmJjY3Muc2l6ZSwgbmV3X3NpemUsCiAJICAgICBjdXJyZW50X2JiY2NzLmVudHJpZXMsIGNvbmZsaWN0czEsIGNvbmZsaWN0czIpOwogCkBAIC0zMzIsNyArMzMyLDcgQEAKICAgICBiYmNjLT5uZXh0ID0gY3VycmVudF9iYmNjcy50YWJsZVtpZHhdOwogICAgIGN1cnJlbnRfYmJjY3MudGFibGVbaWR4XSA9IGJiY2M7CiAKLSAgICBDTEdfREVCVUcoMywiLSBpbnNlcnRfYmJjY19pbnRvX2hhc2g6ICVkIGVudHJpZXNcbiIsCisgICAgQ0xHX0RFQlVHKDMsIi0gaW5zZXJ0X2JiY2NfaW50b19oYXNoOiAldSBlbnRyaWVzXG4iLAogCSAgICAgY3VycmVudF9iYmNjcy5lbnRyaWVzKTsKIH0KIApAQCAtOTA2LDcgKzkwNiw3IEBACiAgICAgVkdfKHByaW50ZikoIlxuIik7CiAgIH0KICAgCi0gIENMR19ERUJVRygzLCItIHNldHVwX2JiY2MgKEJCICUjbHgpOiBDb3N0ICVwIChMZW4gJWQpLCBJbnN0cnMgJWQgKExlbiAlZClcbiIsCisgIENMR19ERUJVRygzLCItIHNldHVwX2JiY2MgKEJCICUjbHgpOiBDb3N0ICVwIChMZW4gJXUpLCBJbnN0cnMgJXUgKExlbiAldSlcbiIsCiAJICAgYmJfYWRkcihiYiksIGJiY2MtPmNvc3QsIGJiLT5jb3N0X2NvdW50LCAKIAkgICBiYi0+aW5zdHJfY291bnQsIGJiLT5pbnN0cl9sZW4pOwogICBDTEdfREVCVUdJRigzKQpkaWZmIC0tZ2l0IGEvY2FsbGdyaW5kL2NhbGxncmluZC5oIGIvY2FsbGdyaW5kL2NhbGxncmluZC5oCmluZGV4IDEwNzkwOTAuLjMzYjBlMjkgMTAwNjQ0Ci0tLSBhL2NhbGxncmluZC9jYWxsZ3JpbmQuaAorKysgYi9jYWxsZ3JpbmQvY2FsbGdyaW5kLmgKQEAgLTEzLDcgKzEzLDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGNhbGxncmluZCwgYSB2YWxncmluZCB0b29sIGZvciBjYWNoZSBzaW11bGF0aW9uCiAgICBhbmQgY2FsbCB0cmVlIHRyYWNpbmcuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMy0yMDEzIEpvc2VmIFdlaWRlbmRvcmZlci4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNSBKb3NlZiBXZWlkZW5kb3JmZXIuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvY2FsbGdyaW5kL2NhbGxncmluZF9hbm5vdGF0ZS5pbiBiL2NhbGxncmluZC9jYWxsZ3JpbmRfYW5ub3RhdGUuaW4KaW5kZXggNzViMWEwNy4uODJmNmYwNSAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2NhbGxncmluZF9hbm5vdGF0ZS5pbgorKysgYi9jYWxsZ3JpbmQvY2FsbGdyaW5kX2Fubm90YXRlLmluCkBAIC04LDExICs4LDExIEBACiAjICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWxsZ3JpbmQsIGEgY2FjaGUtc2ltdWxhdG9yIGFuZCBjYWxsIGdyYXBoCiAjICB0cmFjZXIgYnVpbHQgb24gVmFsZ3JpbmQuCiAjCi0jICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxMyBKb3NlZiBXZWlkZW5kb3JmZXIKKyMgIENvcHlyaWdodCAoQykgMjAwMy0yMDE1IEpvc2VmIFdlaWRlbmRvcmZlcgogIyAgICAgSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZQogIwogIyAgVGhpcyBmaWxlIGlzIGJhc2VkIGhlYXZpbHkgb24gY2dfYW5ub3RhdGUsIHBhcnQgb2YgVmFsZ3JpbmQuCi0jICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisjICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAjICAgICBuam5AdmFsZ3JpbmQub3JnCiAjCiAjICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jYWxsZ3JpbmQvY2FsbGdyaW5kX2NvbnRyb2wuaW4gYi9jYWxsZ3JpbmQvY2FsbGdyaW5kX2NvbnRyb2wuaW4KaW5kZXggYTM4ZWUxNi4uNzY2MDI1OSAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2NhbGxncmluZF9jb250cm9sLmluCisrKyBiL2NhbGxncmluZC9jYWxsZ3JpbmRfY29udHJvbC5pbgpAQCAtNyw3ICs3LDcgQEAKICMgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENhbGxncmluZCwgYSBjYWNoZS1zaW11bGF0b3IgYW5kIGNhbGwgZ3JhcGgKICMgIHRyYWNlciBidWlsdCBvbiBWYWxncmluZC4KICMKLSMgIENvcHlyaWdodCAoQykgMjAwMy0yMDEzIEpvc2VmIFdlaWRlbmRvcmZlciA8Sm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZT4KKyMgIENvcHlyaWdodCAoQykgMjAwMy0yMDE1IEpvc2VmIFdlaWRlbmRvcmZlciA8Sm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZT4KICMKICMgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICMgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9jYWxsZ3JpbmQvY2FsbHN0YWNrLmMgYi9jYWxsZ3JpbmQvY2FsbHN0YWNrLmMKaW5kZXggMTk4NDZhZi4uYWJlNTEyNiAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2NhbGxzdGFjay5jCisrKyBiL2NhbGxncmluZC9jYWxsc3RhY2suYwpAQCAtNiw3ICs2LDcgQEAKIC8qCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWxsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2FsbCB0cmFjaW5nLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTEwNyw3ICsxMDcsNyBAQAogICBDTEdfKHN0YXQpLmNhbGxfc3RhY2tfcmVzaXplcysrOwogIAogICBDTEdfREVCVUdJRigyKQotICAgIFZHXyhwcmludGYpKCIgICAgICAgIGNhbGwgc3RhY2sgZW5sYXJnZWQgdG8gJWQgZW50cmllc1xuIiwKKyAgICBWR18ocHJpbnRmKSgiICAgICAgICBjYWxsIHN0YWNrIGVubGFyZ2VkIHRvICV1IGVudHJpZXNcbiIsCiAJCUNMR18oY3VycmVudF9jYWxsX3N0YWNrKS5zaXplKTsKIH0KIApAQCAtMjgwLDcgKzI4MCw3IEBACiAJCQkJICAiLiAgIC4gICAuICAgLiAgIC4gICAuICAgLiAgIC4gICAuICAgLiAgICIgfTsKIAogCSAgICBpbnQgcyA9IENMR18oY3VycmVudF9jYWxsX3N0YWNrKS5zcDsKLQkgICAgSW50KiBwYXJzID0gKEludCopIHNwOworCSAgICBVSW50KiBwYXJzID0gKFVJbnQqKSBzcDsKIAogCSAgICBCQiogYmIgPSBqY2MtPnRvLT5iYjsKIAkgICAgaWYgKHM+NDApIHM9NDA7CkBAIC0yODgsNyArMjg4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnMgPyBwYXJzWzFdOjAsCiAJCQlwYXJzID8gcGFyc1syXTowLAogCQkJYmItPm9iai0+bmFtZSArIGJiLT5vYmotPmxhc3Rfc2xhc2hfcG9zLAotCQkJYmItPm9mZnNldCk7CisJCQkoVVdvcmQpYmItPm9mZnNldCk7CiAJICB9CiAJfQogCWVsc2UgaWYgKENMR18oY2xvKS52ZXJib3NlPDQpIHsKZGlmZiAtLWdpdCBhL2NhbGxncmluZC9jbG8uYyBiL2NhbGxncmluZC9jbG8uYwppbmRleCA1ZWU2MmU2Li5mYTc2ZjFlIDEwMDY0NAotLS0gYS9jYWxsZ3JpbmQvY2xvLmMKKysrIGIvY2FsbGdyaW5kL2Nsby5jCkBAIC0yLDEwICsyLDEwIEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWxsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2FsbCBncmFwaAogICAgcHJvZmlsaW5nIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKIAogICAgVGhpcyB0b29sIGlzIGRlcml2ZWQgZnJvbSBhbmQgY29udGFpbnMgbG90IG9mIGNvZGUgZnJvbSBDYWNoZWdyaW5kCi0gICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlIChuam5AdmFsZ3JpbmQub3JnKQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZSAobmpuQHZhbGdyaW5kLm9yZykKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NhbGxncmluZC9jb250ZXh0LmMgYi9jYWxsZ3JpbmQvY29udGV4dC5jCmluZGV4IDkyYjg1MjcuLjMzZjczODYgMTAwNjQ0Ci0tLSBhL2NhbGxncmluZC9jb250ZXh0LmMKKysrIGIvY2FsbGdyaW5kL2NvbnRleHQuYwpAQCAtNiw3ICs2LDcgQEAKIC8qCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWxsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2FsbCB0cmFjaW5nLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTEyMCw3ICsxMjAsNyBAQAogICAgIFZHXyhmcmVlKShjeHRzLnRhYmxlKTsKIAogCi0gICAgQ0xHX0RFQlVHKDAsICJSZXNpemUgQ29udGV4dCBIYXNoOiAlZCA9PiAlZCAoZW50cmllcyAlZCwgY29uZmxpY3RzICVkLyVkKVxuIiwKKyAgICBDTEdfREVCVUcoMCwgIlJlc2l6ZSBDb250ZXh0IEhhc2g6ICV1ID0+ICV1IChlbnRyaWVzICV1LCBjb25mbGljdHMgJXUvJXUpXG4iLAogICAgICAgICAgICAgIGN4dHMuc2l6ZSwgbmV3X3NpemUsCiAgICAgICAgICAgICAgY3h0cy5lbnRyaWVzLCBjb25mbGljdHMxLCBjb25mbGljdHMyKTsKIApAQCAtMjM2LDcgKzIzNiw3IEBACiAgICAgc2l6ZSA9ICgqZm4pLT5zZXBhcmF0ZV9jYWxsZXJzKzE7CiAgICAgaWYgKHNpemU8PTApIHsgc2l6ZSA9IC1zaXplKzE7IH0KIAotICAgIENMR19ERUJVRyg1LCAiKyBnZXRfY3h0KGZuICclcycpOiBzaXplICVkXG4iLAorICAgIENMR19ERUJVRyg1LCAiKyBnZXRfY3h0KGZuICclcycpOiBzaXplICV1XG4iLAogICAgICAgICAgICAgICAgICgqZm4pLT5uYW1lLCBzaXplKTsKIAogICAgIGhhc2ggPSBjeHRfaGFzaF92YWwoZm4sIHNpemUpOwpAQCAtMjc5LDcgKzI3OSw3IEBACiAgIENMR19ERUJVRyg1LCAiKyBwdXNoX2N4dChmbiAnJXMnKTogb2xkIGN0eCAlZFxuIiwgCiAJICAgIGZuID8gZm4tPm5hbWUgOiAiMHgwIiwKIAkgICAgQ0xHXyhjdXJyZW50X3N0YXRlKS5jeHQgPwotCSAgICBDTEdfKGN1cnJlbnRfc3RhdGUpLmN4dC0+YmFzZV9udW1iZXIgOiAtMSk7CisJICAgIChJbnQpQ0xHXyhjdXJyZW50X3N0YXRlKS5jeHQtPmJhc2VfbnVtYmVyIDogLTEpOwogCiAgIC8qIHNhdmUgb2xkIGNvbnRleHQgb24gc3RhY2sgKGV2ZW4gaWYgbm90IGNoYW5nZWQgYXQgYWxsISkgKi8KICAgQ0xHX0FTU0VSVChjcy0+c3AgPCBjcy0+c2l6ZSk7CkBAIC0yOTQsNyArMjk0LDcgQEAKICAgLyogcmVzaXppbmcgbmVlZGVkID8gKi8KICAgZm5fZW50cmllcyA9IENMR18oY3VycmVudF9mbl9zdGFjaykudG9wIC0gQ0xHXyhjdXJyZW50X2ZuX3N0YWNrKS5ib3R0b207CiAgIGlmIChmbl9lbnRyaWVzID09IENMR18oY3VycmVudF9mbl9zdGFjaykuc2l6ZS0xKSB7Ci0gICAgaW50IG5ld19zaXplID0gQ0xHXyhjdXJyZW50X2ZuX3N0YWNrKS5zaXplICoyOworICAgIFVJbnQgbmV3X3NpemUgPSBDTEdfKGN1cnJlbnRfZm5fc3RhY2spLnNpemUgKjI7CiAgICAgZm5fbm9kZSoqIG5ld19hcnJheSA9IChmbl9ub2RlKiopIENMR19NQUxMT0MoImNsLmNvbnRleHQucGMuMSIsCiAJCQkJCQkgbmV3X3NpemUgKiBzaXplb2YoZm5fbm9kZSopKTsKICAgICBpbnQgaTsKQEAgLTMwNCw3ICszMDQsNyBAQAogICAgIENMR18oY3VycmVudF9mbl9zdGFjaykudG9wID0gbmV3X2FycmF5ICsgZm5fZW50cmllczsKICAgICBDTEdfKGN1cnJlbnRfZm5fc3RhY2spLmJvdHRvbSA9IG5ld19hcnJheTsKIAotICAgIENMR19ERUJVRygwLCAiUmVzaXplIENvbnRleHQgU3RhY2s6ICVkID0+ICVkIChwdXNoaW5nICclcycpXG4iLCAKKyAgICBDTEdfREVCVUcoMCwgIlJlc2l6ZSBDb250ZXh0IFN0YWNrOiAldSA9PiAldSAocHVzaGluZyAnJXMnKVxuIiwgCiAJICAgICBDTEdfKGN1cnJlbnRfZm5fc3RhY2spLnNpemUsIG5ld19zaXplLAogCSAgICAgZm4gPyBmbi0+bmFtZSA6ICIweDAiKTsKIApAQCAtMzI2LDcgKzMyNiw3IEBACiAgIENMR19ERUJVRyg1LCAiLSBwdXNoX2N4dChmbiAnJXMnKTogbmV3IGN4dCAlZCwgZm5fc3AgJWxkXG4iLAogCSAgICBmbiA/IGZuLT5uYW1lIDogIjB4MCIsCiAJICAgIENMR18oY3VycmVudF9zdGF0ZSkuY3h0ID8KLQkgICAgICBDTEdfKGN1cnJlbnRfc3RhdGUpLmN4dC0+YmFzZV9udW1iZXIgOiAtMSwKKwkgICAgKEludClDTEdfKGN1cnJlbnRfc3RhdGUpLmN4dC0+YmFzZV9udW1iZXIgOiAtMSwKIAkgICAgQ0xHXyhjdXJyZW50X2ZuX3N0YWNrKS50b3AgLSBDTEdfKGN1cnJlbnRfZm5fc3RhY2spLmJvdHRvbSArIDBMKTsKIH0KIAkJCSAgICAgICAKZGlmZiAtLWdpdCBhL2NhbGxncmluZC9jb3N0cy5jIGIvY2FsbGdyaW5kL2Nvc3RzLmMKaW5kZXggNjMyNTZjNy4uNTA3MTE3MCAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2Nvc3RzLmMKKysrIGIvY2FsbGdyaW5kL2Nvc3RzLmMKQEAgLTYsNyArNiw3IEBACiAvKgogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2FsbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhbGwgdHJhY2luZy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1LCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9jYWxsZ3JpbmQvY29zdHMuaCBiL2NhbGxncmluZC9jb3N0cy5oCmluZGV4IDgzMzVmMGQuLjI1YWQ3YzMgMTAwNjQ0Ci0tLSBhL2NhbGxncmluZC9jb3N0cy5oCisrKyBiL2NhbGxncmluZC9jb3N0cy5oCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE0IEpvc2VmIFdlaWRlbmRvcmZlcgorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgSm9zZWYgV2VpZGVuZG9yZmVyCiAgICAgICBqb3NlZi53ZWlkZW5kb3JmZXJAZ214LmRlCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NhbGxncmluZC9kZWJ1Zy5jIGIvY2FsbGdyaW5kL2RlYnVnLmMKaW5kZXggMmVmMjFmZC4uNmU4MjE1YyAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2RlYnVnLmMKKysrIGIvY2FsbGdyaW5kL2RlYnVnLmMKQEAgLTIsMTAgKzIsMTAgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENhbGxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBjYWxsIGdyYXBoCiAgICBwcm9maWxpbmcgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCisgICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSwgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQogCiAgICBUaGlzIHRvb2wgaXMgZGVyaXZlZCBmcm9tIGFuZCBjb250YWlucyBsb3Qgb2YgY29kZSBmcm9tIENhY2hlZ3JpbmQKLSAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUgKG5qbkB2YWxncmluZC5vcmcpCisgICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlIChuam5AdmFsZ3JpbmQub3JnKQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtODMsOSArODMsOSBAQAogICAgIFVJbnQgKnBhY3RpdmUgPSBDTEdfKGdldF9mbl9lbnRyeSkoY3h0LT5mblswXS0+bnVtYmVyKTsKICAgICBDTEdfQVNTRVJUKHJlY19pbmRleCA8IGN4dC0+Zm5bMF0tPnNlcGFyYXRlX3JlY3Vyc2lvbnMpOwogICAgIAotICAgIFZHXyhwcmludGYpKCJDeHQgJWQiICxjeHQtPmJhc2VfbnVtYmVyICsgcmVjX2luZGV4KTsKKyAgICBWR18ocHJpbnRmKSgiQ3h0ICV1IiAsY3h0LT5iYXNlX251bWJlciArIHJlY19pbmRleCk7CiAgICAgaWYgKCpwYWN0aXZlPjApCi0gICAgICBWR18ocHJpbnRmKSgiIFthY3RpdmU9JWRdIiwgKnBhY3RpdmUpOworICAgICAgVkdfKHByaW50ZikoIiBbYWN0aXZlPSV1XSIsICpwYWN0aXZlKTsKICAgICBWR18ocHJpbnRmKSgiOiAiKTsJCiAgICAgcHJpbnRfbWFuZ2xlZF9jeHQoY3h0LCByZWNfaW5kZXgpOwogICAgIFZHXyhwcmludGYpKCJcbiIpOwpAQCAtMTMxLDcgKzEzMSw3IEBACiAKICAgVkdfKHByaW50ZikoIiVzICslI2x4PSUjbHgsICIsCiAJICAgICAgYmItPm9iai0+bmFtZSArIGJiLT5vYmotPmxhc3Rfc2xhc2hfcG9zLAotCSAgICAgIGJiLT5vZmZzZXQsIGJiX2FkZHIoYmIpKTsKKwkgICAgICAoVVdvcmQpYmItPm9mZnNldCwgYmJfYWRkcihiYikpOwogICBDTEdfKHByaW50X2N4dCkocys4LCBiYmNjLT5jeHQsIGJiY2MtPnJlY19pbmRleCk7CiB9CiAKQEAgLTE1MSw3ICsxNTEsNyBAQAogCXJldHVybjsKICAgICB9CiAKLSAgICBWR18ocHJpbnRmKSgiRXZlbnRTZXQgJWQgKCVkIGdyb3Vwcywgc2l6ZSAlZCk6IiwKKyAgICBWR18ocHJpbnRmKSgiRXZlbnRTZXQgJXUgKCVkIGdyb3Vwcywgc2l6ZSAlZCk6IiwKIAkJZXMtPm1hc2ssIGVzLT5jb3VudCwgZXMtPnNpemUpOwogCiAgICAgaWYgKGVzLT5jb3VudCA9PSAwKSB7CkBAIC0xODgsNyArMTg4LDcgQEAKICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKCFjKSB7Ci0gICAgICBWR18ocHJpbnRmKSgiQ29zdCAoTnVsbCwgRXZlbnRTZXQgJWQpXG4iLCBlcy0+bWFzayk7CisgICAgICBWR18ocHJpbnRmKSgiQ29zdCAoTnVsbCwgRXZlbnRTZXQgJXUpXG4iLCBlcy0+bWFzayk7CiAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yOTcsMTEgKzI5NywxMSBAQAogICAgIG9ial9ub2RlKiBvYmo7CiAKICAgICBpZiAoIWJiY2MpIHsKLQlWR18ocHJpbnRmKSgiJTA4eCIsIDApOworCVZHXyhwcmludGYpKCIlMDh4IiwgMHUpOwogCXJldHVybjsKICAgICB9CiAKLSAgICBWR18ocHJpbnRmKSgiJTA4bHgvJWMgICVkOiIsIGJiX2FkZHIoYmJjYy0+YmIpLCAKKyAgICBWR18ocHJpbnRmKSgiJTA4bHgvJWMgICV1OiIsIGJiX2FkZHIoYmJjYy0+YmIpLCAKIAkJKGJiY2MtPmJiLT5zZWN0X2tpbmQgPT0gVmdfU2VjdFRleHQpID8gJ1QnIDoKIAkJKGJiY2MtPmJiLT5zZWN0X2tpbmQgPT0gVmdfU2VjdERhdGEpID8gJ0QnIDoKIAkJKGJiY2MtPmJiLT5zZWN0X2tpbmQgPT0gVmdfU2VjdEJTUykgPyAnQicgOgpAQCAtMzE3LDcgKzMxNyw3IEBACiAgICAgaWYgKFZHXyhzdHJjbXApKGJiY2MtPmN4dC0+Zm5bMF0tPmZpbGUtPm5hbWUsICI/Pz8iKSAhPTApIHsKIAlWR18ocHJpbnRmKSgiICVzIiwgYmJjYy0+Y3h0LT5mblswXS0+ZmlsZS0+bmFtZSk7CiAJaWYgKChiYmNjLT5jeHQtPmZuWzBdID09IGJiY2MtPmJiLT5mbikgJiYgKGJiY2MtPmJiLT5saW5lPjApKQotCSAgICBWR18ocHJpbnRmKSgiOiVkIiwgYmJjYy0+YmItPmxpbmUpOworCSAgICBWR18ocHJpbnRmKSgiOiV1IiwgYmJjYy0+YmItPmxpbmUpOwogICAgIH0KIH0JCiAKQEAgLTM0Nyw3ICszNDcsNyBAQAogICBwcmludF9pbmRlbnQocysyKTsKICAgVkdfKHByaW50ZikoIkVDb3VudGVyOiBzdW0gJWxsdSAiLCBlY291bnRlcik7CiAgIGZvcihpPTA7IGk8YmItPmNqbXBfY291bnQ7IGkrKykgewotICAgICAgVkdfKHByaW50ZikoIlslZF09JWxsdSAiLAorICAgICAgVkdfKHByaW50ZikoIlsldV09JWxsdSAiLAogCQkgIGJiLT5qbXBbaV0uaW5zdHIsIGJiY2MtPmptcFtpXS5lY291bnRlcik7CiAgIH0KICAgVkdfKHByaW50ZikoIlxuIik7CkBAIC0zNTYsNyArMzU2LDcgQEAKICAgZm9yKGk9MDsgaTxiYi0+aW5zdHJfY291bnQ7IGkrKykgewogICAgICAgSW5zdHJJbmZvKiBpaSA9ICYoYmItPmluc3RyW2ldKTsKICAgICAgIHByaW50X2luZGVudChzKzIpOwotICAgICAgVkdfKHByaW50ZikoIlslMmRdIElPZmYgJTJkIGVjbnQgJTNsbHUgIiwKKyAgICAgIFZHXyhwcmludGYpKCJbJTJkXSBJT2ZmICUydSBlY250ICUzbGx1ICIsCiAJCSAgaSwgaWktPmluc3RyX29mZnNldCwgZWNvdW50ZXIpOwogICAgICAgQ0xHXyhwcmludF9jb3N0KShzKzUsIGlpLT5ldmVudHNldCwgYmJjYy0+Y29zdCArIGlpLT5jb3N0X29mZnNldCk7CiAKQEAgLTQzMCw3ICs0MzAsNyBAQAogewogICBCQkNDKiBiYmNjOwogCi0gIENMR19ERUJVRygwLCJJbiB0aWQgJWQgWyVkXSAiLAorICBDTEdfREVCVUcoMCwiSW4gdGlkICV1IFslZF0gIiwKIAkgICBDTEdfKGN1cnJlbnRfdGlkKSwgIENMR18oY3VycmVudF9jYWxsX3N0YWNrKS5zcCk7CiAgIGJiY2MgPSAgQ0xHXyhjdXJyZW50X3N0YXRlKS5iYmNjOwogICBwcmludF9tYW5nbGVkX2N4dChDTEdfKGN1cnJlbnRfc3RhdGUpLmN4dCwKZGlmZiAtLWdpdCBhL2NhbGxncmluZC9kb2NzL2NsLWZvcm1hdC54bWwgYi9jYWxsZ3JpbmQvZG9jcy9jbC1mb3JtYXQueG1sCmluZGV4IDQ0MjZiNmEuLjE4MmIxOTkgMTAwNjQ0Ci0tLSBhL2NhbGxncmluZC9kb2NzL2NsLWZvcm1hdC54bWwKKysrIGIvY2FsbGdyaW5kL2RvY3MvY2wtZm9ybWF0LnhtbApAQCAtMTAzLDcgKzEwMyw3IEBACiBwb3NpdGlvbiBzcGVjaWZpY2F0aW9ucywgYnV0IGNvbnNpc3Qgb2YgdHdvIGxpbmVzLiBGb3IgY2FsbHMsIHRoZSBmb3JtYXQKIGxvb2tzIGxpa2UKIDxzY3JlZW4+Ci0gY2FsbHM9KENhbGwgQ291bnQpIChEZXN0aW5hdGlvbiBwb3NpdGlvbikKKyBjYWxscz0oQ2FsbCBDb3VudCkgKFRhcmdldCBwb3NpdGlvbikKICAoU291cmNlIHBvc2l0aW9uKSAoSW5jbHVzaXZlIGNvc3Qgb2YgY2FsbCkKIDwvc2NyZWVuPjwvcGFyYT4KIApAQCAtMzI3LDcgKzMyNyw3IEBACiAKIDxwYXJhPgogPHNjcmVlbj5Qcm9maWxlRGF0YUZpbGUgOj0gRm9ybWF0VmVyc2lvbj8gQ3JlYXRvcj8gUGFydERhdGEqPC9zY3JlZW4+Ci08c2NyZWVuPkZvcm1hdFZlcnNpb24gOj0gInZlcnNpb246IiBTcGFjZSogTnVtYmVyICJcbiI8L3NjcmVlbj4KKzxzY3JlZW4+Rm9ybWF0VmVyc2lvbiA6PSAidmVyc2lvbjogMVxuIjwvc2NyZWVuPgogPHNjcmVlbj5DcmVhdG9yIDo9ICJjcmVhdG9yOiIgTm9OZXdMaW5lQ2hhciogIlxuIjwvc2NyZWVuPgogPHNjcmVlbj5QYXJ0RGF0YSA6PSAoSGVhZGVyTGluZSAiXG4iKSsgKEJvZHlMaW5lICJcbiIpKzwvc2NyZWVuPgogPHNjcmVlbj5IZWFkZXJMaW5lIDo9IChlbXB0eSBsaW5lKQpAQCAtMzUxLDIyICszNTEsMjMgQEAKIDxzY3JlZW4+Qm9keUxpbmUgOj0gKGVtcHR5IGxpbmUpCiAgIHwgKCcjJyBOb05ld0xpbmVDaGFyKikKICAgfCBDb3N0TGluZQotICB8IFBvc2l0aW9uU3BlY2lmaWNhdGlvbgotICB8IEFzc29jaWF0aW9uU3BlY2lmaWNhdGlvbjwvc2NyZWVuPgorICB8IFBvc2l0aW9uU3BlYworICB8IENhbGxTcGVjCisgIHwgVW5jb25kSnVtcFNwZWMKKyAgfCBDb25kSnVtcFNwZWM8L3NjcmVlbj4KIDxzY3JlZW4+Q29zdExpbmUgOj0gU3ViUG9zaXRpb25MaXN0IENvc3RzPzwvc2NyZWVuPgogPHNjcmVlbj5TdWJQb3NpdGlvbkxpc3QgOj0gKFN1YlBvc2l0aW9uKyBTcGFjZSspKzwvc2NyZWVuPgogPHNjcmVlbj5TdWJQb3NpdGlvbiA6PSBOdW1iZXIgfCAiKyIgTnVtYmVyIHwgIi0iIE51bWJlciB8ICIqIjwvc2NyZWVuPgogPHNjcmVlbj5Db3N0cyA6PSAoTnVtYmVyIFNwYWNlKykrPC9zY3JlZW4+Ci08c2NyZWVuPlBvc2l0aW9uU3BlY2lmaWNhdGlvbiA6PSBQb3NpdGlvbiAiPSIgU3BhY2UqIFBvc2l0aW9uTmFtZTwvc2NyZWVuPgorPHNjcmVlbj5Qb3NpdGlvblNwZWMgOj0gUG9zaXRpb24gIj0iIFNwYWNlKiBQb3NpdGlvbk5hbWU8L3NjcmVlbj4KIDxzY3JlZW4+UG9zaXRpb24gOj0gQ29zdFBvc2l0aW9uIHwgQ2FsbGVkUG9zaXRpb248L3NjcmVlbj4KIDxzY3JlZW4+Q29zdFBvc2l0aW9uIDo9ICJvYiIgfCAiZmwiIHwgImZpIiB8ICJmZSIgfCAiZm4iPC9zY3JlZW4+CiA8c2NyZWVuPkNhbGxlZFBvc2l0aW9uIDo9ICIgImNvYiIgfCAiY2ZpIiB8ICJjZmwiIHwgImNmbiI8L3NjcmVlbj4KIDxzY3JlZW4+UG9zaXRpb25OYW1lIDo9ICggIigiIE51bWJlciAiKSIgKT8gKFNwYWNlKiBOb05ld0xpbmVDaGFyKiApPzwvc2NyZWVuPgotPHNjcmVlbj5Bc3NvY2lhdGlvblNwZWNpZmljYXRpb24gOj0gQ2FsbFNwZWNpZmljYXRpb24KLSAgfCBKdW1wU3BlY2lmaWNhdGlvbjwvc2NyZWVuPgotPHNjcmVlbj5DYWxsU3BlY2lmaWNhdGlvbiA6PSBDYWxsTGluZSAiXG4iIENvc3RMaW5lPC9zY3JlZW4+Cis8c2NyZWVuPkNhbGxTcGVjIDo9IENhbGxMaW5lICJcbiIgQ29zdExpbmU8L3NjcmVlbj4KIDxzY3JlZW4+Q2FsbExpbmUgOj0gImNhbGxzPSIgU3BhY2UqIE51bWJlciBTcGFjZSsgU3ViUG9zaXRpb25MaXN0PC9zY3JlZW4+Ci08c2NyZWVuPkp1bXBTcGVjaWZpY2F0aW9uIDo9IC4uLjwvc2NyZWVuPgorPHNjcmVlbj5VbmNvbmRKdW1wU3BlYyA6PSAianVtcD0iIFNwYWNlKiBOdW1iZXIgU3BhY2UrIFN1YlBvc2l0aW9uTGlzdDwvc2NyZWVuPgorPHNjcmVlbj5Db25kSnVtcFNwZWMgOj0gImpjbmQ9IiBTcGFjZSogTnVtYmVyIFNwYWNlKyBOdW1iZXIgU3BhY2UrIFN1YlBvc2l0aW9uTGlzdDwvc2NyZWVuPgogPHNjcmVlbj5TcGFjZSA6PSAiICIgfCAiXHQiPC9zY3JlZW4+CiA8c2NyZWVuPk51bWJlciA6PSBIZXhOdW1iZXIgfCAoRGlnaXQpKzwvc2NyZWVuPgogPHNjcmVlbj5EaWdpdCA6PSAiMCIgfCAuLi4gfCAiOSI8L3NjcmVlbj4KQEAgLTM3NywxNiArMzc4LDIzIEBACiA8c2NyZWVuPk5vTmV3TGluZUNoYXIgOj0gYWxsIGNoYXJhY3RlcnMgd2l0aG91dCAiXG4iPC9zY3JlZW4+CiA8L3BhcmE+CiAKKzxwYXJhPkEgcHJvZmlsZSBkYXRhIGZpbGUgKCJQcm9maWxlRGF0YUZpbGUiKSBzdGFydHMgd2l0aCBiYXNpYyBpbmZvcm1hdGlvbgorICBzdWNoIGFzIHRoZSB2ZXJzaW9uIGFuZCBjcmVhdG9yIGluZm9ybWF0aW9uLCBhbmQgdGhlbiBoYXMgYSBsaXN0IG9mIHBhcnRzLCB3aGVyZQorICBlYWNoIHBhcnQgaGFzIGl0cyBvd24gaGVhZGVyIGFuZCBib2R5LiBQYXJ0cyB0eXBpY2FsbHkgYXJlIGRpZmZlcmVudCB0aHJlYWRzCisgIGFuZC9vciB0aW1lIHNwYW5zL3BoYXNlcyB3aXRoaW4gYSBwcm9maWxlZCBhcHBsaWNhdGlvbiBydW4uPC9wYXJhPgorCis8cGFyYT5Ob3RlIHRoYXQgY2FsbGdyaW5kX2Fubm90YXRlIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHByb2ZpbGUgZGF0YSBmaWxlcyB3aXRoCisgIG9uZSBwYXJ0LiBDYWxsZ3JpbmQgbWF5IHByb2R1Y2UgbXVsdGlwbGUgcGFydHMgZm9yIG9uZSBwcm9maWxlIHJ1biwgYnV0IGRlZmF1bHRzCisgIHRvIG9uZSBvdXRwdXQgZmlsZSBmb3IgZWFjaCBwYXJ0LjwvcGFyYT4KKwogPC9zZWN0Mj4KIAogPHNlY3QyIGlkPSJjbC1mb3JtYXQucmVmZXJlbmNlLmhlYWRlciIgeHJlZmxhYmVsPSJEZXNjcmlwdGlvbiBvZiBIZWFkZXIgTGluZXMiPgogPHRpdGxlPkRlc2NyaXB0aW9uIG9mIEhlYWRlciBMaW5lczwvdGl0bGU+CiAKLTxwYXJhPlRoZSBoZWFkZXIgaGFzIGFuIGFyYml0cmFyeSBudW1iZXIgb2YgbGluZXMgb2YgdGhlIGZvcm1hdCAKLSJrZXk6IHZhbHVlIi4gUG9zc2libGUgPGVtcGhhc2lzPmtleTwvZW1waGFzaXM+IHZhbHVlcyBmb3IgdGhlIGhlYWRlciBhcmU6PC9wYXJhPgorPHBhcmE+QmFzaWMgaW5mb3JtYXRpb24gaW4gdGhlIGZpcnN0IGxpbmVzIG9mIGEgcHJvZmlsZSBkYXRhIGZpbGU6PC9wYXJhPgogCiA8aXRlbWl6ZWRsaXN0PgotCiAgIDxsaXN0aXRlbT4KICAgICA8cGFyYT48Y29tcHV0ZXJvdXRwdXQ+dmVyc2lvbjogbnVtYmVyPC9jb21wdXRlcm91dHB1dD4gW0NhbGxncmluZF08L3BhcmE+CiAgICAgPHBhcmE+VGhpcyBpcyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGZ1dHVyZSBwcm9maWxlIGRhdGEgZm9ybWF0cy4gIEEgCkBAIC0zOTYsNiArNDA0LDE5IEBACiAgIDwvbGlzdGl0ZW0+CiAKICAgPGxpc3RpdGVtPgorICAgIDxwYXJhPjxjb21wdXRlcm91dHB1dD5jcmVhdG9yOiBzdHJpbmc8L2NvbXB1dGVyb3V0cHV0PiBbQ2FsbGdyaW5kXTwvcGFyYT4KKyAgICA8cGFyYT5UaGlzIGlzIGFuIGFyYml0cmFyeSBzdHJpbmcgdG8gZGVub3RlIHRoZSBjcmVhdG9yIG9mIHRoaXMgZmlsZS4KKyAgICAgIE9wdGlvbmFsLjwvcGFyYT4KKyAgPC9saXN0aXRlbT4KKworPC9pdGVtaXplZGxpc3Q+ICAgIAorCis8cGFyYT5UaGUgaGVhZGVyIGZvciBlYWNoIHBhcnQgaGFzIGFuIGFyYml0cmFyeSBudW1iZXIgb2YgbGluZXMgb2YgdGhlIGZvcm1hdCAKKyJrZXk6IHZhbHVlIi4gUG9zc2libGUgPGVtcGhhc2lzPmtleTwvZW1waGFzaXM+IHZhbHVlcyBmb3IgdGhlIGhlYWRlciBhcmU6PC9wYXJhPgorCis8aXRlbWl6ZWRsaXN0PgorCisgIDxsaXN0aXRlbT4KICAgICA8cGFyYT48Y29tcHV0ZXJvdXRwdXQ+cGlkOiBwcm9jZXNzIGlkPC9jb21wdXRlcm91dHB1dD4gW0NhbGxncmluZF08L3BhcmE+CiAgICAgPHBhcmE+T3B0aW9uYWwuIFRoaXMgc3BlY2lmaWVzIHRoZSBwcm9jZXNzIElEIG9mIHRoZSBzdXBlcnZpc2VkIGFwcGxpY2F0aW9uIAogICAgIGZvciB3aGljaCB0aGlzIHByb2ZpbGUgd2FzIGdlbmVyYXRlZC48L3BhcmE+CkBAIC00NDEsMzMgKzQ2MiwxOCBAQAogICAgIHJlc3BvbnNpYmxlIGZvciB0aGUgZXZlbnRzIHJhaXNlZC4gTm90ZSB0aGF0IHRoZSBtYXBwaW5nIG9mICJpbnN0ciIKICAgICBhbmQgImxpbmUiIHBvc2l0aW9ucyBhcmUgZ2l2ZW4gYnkgdGhlIGRlYnVnZ2luZyBsaW5lIGluZm9ybWF0aW9uCiAgICAgcHJvZHVjZWQgYnkgdGhlIGNvbXBpbGVyLjwvcGFyYT4KLSAgICA8cGFyYT5UaGlzIGZpZWxkIGlzIG9wdGlvbmFsLiBJZiBub3Qgc3BlY2lmaWVkLCAibGluZSIgaXMgc3VwcG9zZWQgCi0gICAgb25seS48L3BhcmE+CisgICAgPHBhcmE+VGhpcyBoZWFkZXIgbGluZSBpcyBvcHRpb25hbCwgZGVmYXVsdGluZyB0byAicG9zaXRpb25zOgorICAgIGxpbmUiIGlmIG5vdCBzcGVjaWZpZWQuPC9wYXJhPgogICA8L2xpc3RpdGVtPgogCiAgIDxsaXN0aXRlbT4KICAgICA8cGFyYT48Y29tcHV0ZXJvdXRwdXQ+ZXZlbnRzOiBldmVudCB0eXBlIGFiYnJldmlhdGlvbnM8L2NvbXB1dGVyb3V0cHV0PiBbQ2FjaGVncmluZF08L3BhcmE+Ci0gICAgPHBhcmE+QSBsaXN0IG9mIHNob3J0IG5hbWVzIG9mIHRoZSBldmVudCB0eXBlcyBsb2dnZWQgaW4gdGhpcyBmaWxlLiAKLSAgICBUaGUgb3JkZXIgaXMgdGhlIHNhbWUgYXMgaW4gY29zdCBsaW5lcy4gIFRoZSBmaXJzdCBldmVudCB0eXBlIGlzIHRoZQotICAgIHNlY29uZCBvciB0aGlyZCBudW1iZXIgaW4gYSBjb3N0IGxpbmUsIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgCi0gICAgInBvc2l0aW9ucyIuICBDYWxsZ3JpbmQgZG9lcyBub3QgYWRkIGFkZGl0aW9uYWwgY29zdCB0eXBlcy4gIFNwZWNpZnkKLSAgICBleGFjdGx5IG9uY2UuPC9wYXJhPgotICAgIDxwYXJhPkNvc3QgdHlwZXMgZnJvbSBvcmlnaW5hbCBDYWNoZWdyaW5kIGFyZToKLSAgICAgIDxpdGVtaXplZGxpc3Q+Ci0gICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICA8cGFyYT48Y29tbWFuZD5JcjwvY29tbWFuZD46IEluc3RydWN0aW9uIHJlYWQgYWNjZXNzPC9wYXJhPgotICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgPHBhcmE+PGNvbW1hbmQ+STFtcjwvY29tbWFuZD46IEluc3RydWN0aW9uIExldmVsIDEgcmVhZCBjYWNoZSBtaXNzPC9wYXJhPgotICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgPHBhcmE+PGNvbW1hbmQ+SUxtcjwvY29tbWFuZD46IEluc3RydWN0aW9uIGxhc3QtbGV2ZWwgcmVhZCBjYWNoZSBtaXNzPC9wYXJhPgotICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgPHBhcmE+Li4uPC9wYXJhPgotICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgPC9pdGVtaXplZGxpc3Q+Ci0gICAgPC9wYXJhPgorICAgIDxwYXJhPkEgbGlzdCBvZiBzaG9ydCBuYW1lcyBvZiB0aGUgZXZlbnQgdHlwZXMgbG9nZ2VkIGluIGNvc3QKKyAgICAgIGxpbmVzIGluIHRoaXMgcGFydCBvZiB0aGUgcHJvZmlsZSBkYXRhIGZpbGUuIEFyYml0cmFyeSBzaG9ydAorICAgICAgbmFtZXMgYXJlIGFsbG93ZWQuICBUaGUgb3JkZXIgZ2l2ZW4gc3BlY2lmaWVzIHRoZSByZXF1aXJlZCBvcmRlcgorICAgICAgaW4gY29zdCBsaW5lcy4gVGh1cywgdGhlIGZpcnN0IGV2ZW50IHR5cGUgaXMgdGhlIHNlY29uZCBvciB0aGlyZAorICAgICAgbnVtYmVyIGluIGEgY29zdCBsaW5lLCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mICJwb3NpdGlvbnMiLgorICAgICAgUmVxdWlyZWQgdG8gYXBwZWFyIGZvciBlYWNoIGhlYWRlciBwYXJ0IGV4YWN0bHkgb25jZS48L3BhcmE+CiAgIDwvbGlzdGl0ZW0+CiAKICAgPGxpc3RpdGVtPgpAQCAtNDkxLDkgKzQ5NywxOSBAQAogPHNlY3QyIGlkPSJjbC1mb3JtYXQucmVmZXJlbmNlLmJvZHkiIHhyZWZsYWJlbD0iRGVzY3JpcHRpb24gb2YgQm9keSBMaW5lcyI+CiA8dGl0bGU+RGVzY3JpcHRpb24gb2YgQm9keSBMaW5lczwvdGl0bGU+CiAKLTxwYXJhPlRoZXJlIGV4aXN0IGxpbmVzCi08Y29tcHV0ZXJvdXRwdXQ+c3BlYz1wb3NpdGlvbjwvY29tcHV0ZXJvdXRwdXQ+LiAgVGhlIHZhbHVlcyBmb3IgcG9zaXRpb24KLXNwZWNpZmljYXRpb25zIGFyZSBhcmJpdHJhcnkgc3RyaW5ncy4gIFdoZW4gc3RhcnRpbmcgd2l0aCAiKCIgYW5kIGEKKzxwYXJhPlRoZSByZWd1bGFyIGJvZHkgbGluZSBpcyBhIGNvc3QgbGluZSBjb25zaXN0aW5nIG9mIG9uZSBvciB0d28KK3Bvc2l0aW9uIG51bWJlcnMgKGRlcGVuZGluZyBvbiAicG9zaXRpb25zOiIgaGVhZGVyIGxpbmUsIHNlZSBhYm92ZSkKK2FuZCBhbiBhcnJheSBvZiBjb3N0IG51bWJlcnMuIEEgcG9zaXRpb24gbnVtYmVyIGVpdGhlciBpcyBhCitsaW5lIG51bWJlcnMgaW50byBhIHNvdXJjZSBmaWxlIG9yIGFuIGluc3RydWN0aW9uIGFkZHJlc3Mgd2l0aGluIGJpbmFyeQorY29kZSwgd2l0aCBzb3VyY2UvYmluYXJ5IGZpbGUgbmFtZXMgc3BlY2lmaWVkIGFzIHBvc2l0aW9uIG5hbWVzIChzZWUKK2JlbG93KS4gVGhlIGNvc3QgbnVtYmVycyBnZXQgbWFwcGVkIHRvIGV2ZW50IHR5cGVzIGluIHRoZSBzYW1lIG9yZGVyCithcyBzcGVjaWZpZWQgaW4gdGhlICJldmVudHM6IiBoZWFkZXIgbGluZS4gSWYgbGVzcyBudW1iZXJzIHRoYW4gZXZlbnQKK3R5cGVzIGFyZSBnaXZlbiwgdGhlIGNvc3RzIGRlZmF1bHQgdG8gemVybyBmb3IgdGhlIHJlbWFpbmluZyBldmVudAordHlwZXMuPC9wYXJhPgorCis8cGFyYT5GdXJ0aGVyLCB0aGVyZSBleGlzdCBsaW5lcworPGNvbXB1dGVyb3V0cHV0PnNwZWM9cG9zaXRpb24gbmFtZTwvY29tcHV0ZXJvdXRwdXQ+LiAgQSBwb3NpdGlvbiBuYW1lCitpcyBhbiBhcmJpdHJhcnkgc3RyaW5nLiBJZiBpdCBzdGFydHMgd2l0aCAiKCIgYW5kIGEKIGRpZ2l0LCBpdCdzIGEgc3RyaW5nIGluIGNvbXByZXNzZWQgZm9ybWF0LiAgT3RoZXJ3aXNlIGl0J3MgdGhlIHJlYWwKIHBvc2l0aW9uIHN0cmluZy4gIFRoaXMgYWxsb3dzIGZvciBmaWxlIGFuZCBzeW1ib2wgbmFtZXMgYXMgcG9zaXRpb24KIHN0cmluZ3MsIGFzIHRoZXNlIG5ldmVyIHN0YXJ0IHdpdGggIigiICsgPGVtcGhhc2lzPmRpZ2l0PC9lbXBoYXNpcz4uCkBAIC01NTgsMjYgKzU3NCwzMCBAQAogICAgIGxpbmVzLjwvcGFyYT4KICAgPC9saXN0aXRlbT4KIAorPC9pdGVtaXplZGxpc3Q+CisKKzxwYXJhPlRoZSBsYXN0IHR5cGUgb2YgYm9keSBsaW5lIHByb3ZpZGVzIHNwZWNpZmljIGNvc3RzIG5vdCBqdXN0CityZWxhdGVkIHRvIG9uZSBwb3NpdGlvbiBhcyByZWd1bGFyIGNvc3QgbGluZXMuIEl0IHN0YXJ0cyB3aXRoIHNwZWNpZmljCitzdHJpbmdzIHNpbWlsYXIgdG8gcG9zaXRpb24gbmFtZSBzcGVjaWZpY2F0aW9ucy48L3BhcmE+CisKKzxpdGVtaXplZGxpc3Q+CisKICAgPGxpc3RpdGVtPgotICAgIDxwYXJhPjxjb21wdXRlcm91dHB1dD5jYWxscz08L2NvbXB1dGVyb3V0cHV0PiBbQ2FsbGdyaW5kXTwvcGFyYT4KLSAgICA8cGFyYT5UaGUgbnVtYmVyIG9mIG5vbnJlY3Vyc2l2ZSBjYWxscyB3aGljaCBhcmUgcmVzcG9uc2libGUgZm9yIHRoZSAKLSAgICBjb3N0IHNwZWNpZmllZCBieSB0aGUgbmV4dCBjYWxsIGNvc3QgbGluZS4gVGhpcyBpcyB0aGUgY29zdCBzcGVudCAKLSAgICBpbnNpZGUgb2YgdGhlIGNhbGxlZCBmdW5jdGlvbi48L3BhcmE+Ci0gICAgPHBhcmE+QWZ0ZXIgImNhbGxzPSIgdGhlcmUgTVVTVCBiZSBhIGNvc3QgbGluZS4gVGhpcyBpcyB0aGUgY29zdAotICAgIHNwZW50IGluIHRoZSBjYWxsZWQgZnVuY3Rpb24uIFRoZSBmaXJzdCBudW1iZXIgaXMgdGhlIHNvdXJjZSBsaW5lIAotICAgIGZyb20gd2hlcmUgdGhlIGNhbGwgaGFwcGVuZWQuPC9wYXJhPgorICAgIDxwYXJhPjxjb21wdXRlcm91dHB1dD5jYWxscz1jb3VudCB0YXJnZXQtcG9zaXRpb248L2NvbXB1dGVyb3V0cHV0PiBbQ2FsbGdyaW5kXTwvcGFyYT4KKyAgICA8cGFyYT5DYWxsIGV4ZWN1dGVkICJjb3VudCIgdGltZXMgdG8gInRhcmdldC1wb3NpdGlvbiIuCisgICAgQWZ0ZXIgYSAiY2FsbHM9IiBsaW5lIHRoZXJlIE1VU1QgYmUgYSBjb3N0IGxpbmUuIFRoaXMgcHJvdmlkZXMgdGhlIHNvdXJjZSBwb3NpdGlvbgorICAgIG9mIHRoZSBjYWxsIGFuZCB0aGUgY29zdCBzcGVudCBpbiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGluIHRvdGFsLjwvcGFyYT4KICAgPC9saXN0aXRlbT4KIAogICA8bGlzdGl0ZW0+Ci0gICAgPHBhcmE+PGNvbXB1dGVyb3V0cHV0Pmp1bXA9Y291bnQgdGFyZ2V0IHBvc2l0aW9uPC9jb21wdXRlcm91dHB1dD4gW0NhbGxncmluZF08L3BhcmE+Ci0gICAgPHBhcmE+VW5jb25kaXRpb25hbCBqdW1wLCBleGVjdXRlZCBjb3VudCB0aW1lcywgdG8gdGhlIGdpdmVuIHRhcmdldAotICAgIHBvc2l0aW9uLjwvcGFyYT4KKyAgICA8cGFyYT48Y29tcHV0ZXJvdXRwdXQ+anVtcD1jb3VudCB0YXJnZXQtcG9zaXRpb248L2NvbXB1dGVyb3V0cHV0PiBbQ2FsbGdyaW5kXTwvcGFyYT4KKyAgICA8cGFyYT5VbmNvbmRpdGlvbmFsIGp1bXAsIGV4ZWN1dGVkICJjb3VudCIgdGltZXMsIHRvICJ0YXJnZXQtcG9zaXRpb24iLjwvcGFyYT4KICAgPC9saXN0aXRlbT4KIAogICA8bGlzdGl0ZW0+Ci0gICAgPHBhcmE+PGNvbXB1dGVyb3V0cHV0PmpjbmQ9ZXhlLmNvdW50IGp1bXBjb3VudCB0YXJnZXQgcG9zaXRpb248L2NvbXB1dGVyb3V0cHV0PiBbQ2FsbGdyaW5kXTwvcGFyYT4KLSAgICA8cGFyYT5Db25kaXRpb25hbCBqdW1wLCBleGVjdXRlZCBleGUuY291bnQgdGltZXMgd2l0aCBqdW1wY291bnQgCi0gICAganVtcHMgdG8gdGhlIGdpdmVuIHRhcmdldCBwb3NpdGlvbi48L3BhcmE+CisgICAgPHBhcmE+PGNvbXB1dGVyb3V0cHV0PmpjbmQ9ZXhlLWNvdW50IGp1bXAtY291bnQgdGFyZ2V0LXBvc2l0aW9uPC9jb21wdXRlcm91dHB1dD4gW0NhbGxncmluZF08L3BhcmE+CisgICAgPHBhcmE+Q29uZGl0aW9uYWwganVtcCwgZXhlY3V0ZWQgImV4ZS1jb3VudCIgdGltZXMgd2l0aCAianVtcC1jb3VudCIganVtcHMKKyAgICBoYXBwZW5pbmcgKHJlc3QgaXMgZmFsbC10aHJvdWdoKSB0byAidGFyZ2V0LXBvc2l0aW9uIi48L3BhcmE+CiAgIDwvbGlzdGl0ZW0+CiAKIDwvaXRlbWl6ZWRsaXN0PgpkaWZmIC0tZ2l0IGEvY2FsbGdyaW5kL2RvY3MvY2wtbWFudWFsLnhtbCBiL2NhbGxncmluZC9kb2NzL2NsLW1hbnVhbC54bWwKaW5kZXggMzY5MTgwYy4uNTA4MDk0ZSAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2RvY3MvY2wtbWFudWFsLnhtbAorKysgYi9jYWxsZ3JpbmQvZG9jcy9jbC1tYW51YWwueG1sCkBAIC0zMTAsNDkgKzMxMCw3OCBAQAogICAgICAgICAgeHJlZmxhYmVsPSJMaW1pdGluZyByYW5nZSBvZiBldmVudCBjb2xsZWN0aW9uIj4KICAgPHRpdGxlPkxpbWl0aW5nIHRoZSByYW5nZSBvZiBjb2xsZWN0ZWQgZXZlbnRzPC90aXRsZT4KIAotICA8cGFyYT5Gb3IgYWdncmVnYXRpbmcgZXZlbnRzIChmdW5jdGlvbiBlbnRlci9sZWF2ZSwKLSAgaW5zdHJ1Y3Rpb24gZXhlY3V0aW9uLCBtZW1vcnkgYWNjZXNzKSBpbnRvIGV2ZW50IG51bWJlcnMsCi0gIGZpcnN0LCB0aGUgZXZlbnRzIG11c3QgYmUgcmVjb2duaXphYmxlIGJ5IENhbGxncmluZCwgYW5kIHNlY29uZCwKLSAgdGhlIGNvbGxlY3Rpb24gc3RhdGUgbXVzdCBiZSBlbmFibGVkLjwvcGFyYT4KLQotICA8cGFyYT5FdmVudCBjb2xsZWN0aW9uIGlzIG9ubHkgcG9zc2libGUgaWYgPGVtcGhhc2lzPmluc3RydW1lbnRhdGlvbjwvZW1waGFzaXM+Ci0gIGZvciBwcm9ncmFtIGNvZGUgaXMgZW5hYmxlZC4gVGhpcyBpcyB0aGUgZGVmYXVsdCwgYnV0IGZvciBmYXN0ZXIKLSAgZXhlY3V0aW9uIChpZGVudGljYWwgdG8gPGNvbXB1dGVyb3V0cHV0PnZhbGdyaW5kIC0tdG9vbD1ub25lPC9jb21wdXRlcm91dHB1dD4pLAotICBpdCBjYW4gYmUgZGlzYWJsZWQgdW50aWwgdGhlIHByb2dyYW0gcmVhY2hlcyBhIHN0YXRlIGluIHdoaWNoCi0gIHlvdSB3YW50IHRvIHN0YXJ0IGNvbGxlY3RpbmcgcHJvZmlsaW5nIGRhdGEuICAKLSAgQ2FsbGdyaW5kIGNhbiBzdGFydCB3aXRob3V0IGluc3RydW1lbnRhdGlvbgotICBieSBzcGVjaWZ5aW5nIG9wdGlvbiA8b3B0aW9uPjx4cmVmIGxpbmtlbmQ9Im9wdC5pbnN0ci1hdHN0YXJ0Ii8+PW5vPC9vcHRpb24+LgotICBJbnN0cnVtZW50YXRpb24gY2FuIGJlIGVuYWJsZWQgaW50ZXJhY3RpdmVseQotICB3aXRoOiA8c2NyZWVuPmNhbGxncmluZF9jb250cm9sIC1pIG9uPC9zY3JlZW4+Ci0gIGFuZCBvZmYgYnkgc3BlY2lmeWluZyAib2ZmIiBpbnN0ZWFkIG9mICJvbiIuCi0gIEZ1cnRoZXJtb3JlLCBpbnN0cnVtZW50YXRpb24gc3RhdGUgY2FuIGJlIHByb2dyYW1hdGljYWxseSBjaGFuZ2VkIHdpdGgKLSAgdGhlIG1hY3JvcyA8Y29tcHV0ZXJvdXRwdXQ+PHhyZWYgbGlua2VuZD0iY3Iuc3RhcnQtaW5zdHIiLz47PC9jb21wdXRlcm91dHB1dD4KLSAgYW5kIDxjb21wdXRlcm91dHB1dD48eHJlZiBsaW5rZW5kPSJjci5zdG9wLWluc3RyIi8+OzwvY29tcHV0ZXJvdXRwdXQ+LgorICA8cGFyYT5CeSBkZWZhdWx0LCB3aGVuZXZlciBldmVudHMgYXJlIGhhcHBlbmluZyAoc3VjaCBhcyBhbgorICAgIGluc3RydWN0aW9uIGV4ZWN1dGlvbiBvciBjYWNoZSBoaXQvbWlzcyksIENhbGxncmluZCBpcyBhZ2dyZWdhdGluZworICAgIHRoZW0gaW50byBldmVudCBjb3VudGVycy4gSG93ZXZlciwgeW91IG1heSBiZSBpbnRlcmVzdGVkIG9ubHkgaW4KKyAgICB3aGF0IGlzIGhhcHBlbmluZyB3aXRoaW4gYSBnaXZlbiBmdW5jdGlvbiBvciBzdGFydGluZyBmcm9tIGEgZ2l2ZW4KKyAgICBwcm9ncmFtIHBoYXNlLiBUbyB0aGlzIGVuZCwgeW91IGNhbiBkaXNhYmxlIGV2ZW50IGFnZ3JlZ2F0aW9uIGZvcgorICAgIHVuaW50ZXJlc3RpbmcgcHJvZ3JhbSBwYXJ0cy4gV2hpbGUgYXR0cmlidXRpb24gb2YgZXZlbnRzIHRvCisgICAgZnVuY3Rpb25zIGFzIHdlbGwgYXMgcHJvZHVjaW5nIHNlcGVyYXRlIG91dHB1dCBwZXIgcHJvZ3JhbSBwaGFzZQorICAgIGNhbiBiZSBkb25lIGJ5IG90aGVyIG1lYW5zIChzZWUgcHJldmlvdXMgc2VjdGlvbiksIHRoZXJlIGFyZSB0d28KKyAgICBiZW5lZml0cyBieSBkaXNhYmxpbmcgYWdncmVnYXRpb24uIEZpcnN0LCB0aGlzIGlzIHZlcnkKKyAgICBmaW5lLWdyYW51bGFyIChlLmcuIGp1c3QgZm9yIGEgbG9vcCB3aXRoaW4gYSBmdW5jdGlvbikuICBTZWNvbmQsCisgICAgZGlzYWJsaW5nIGV2ZW50IGFnZ3JlZ2F0aW9uIGZvciBjb21wbGV0ZSBwcm9ncmFtIHBoYXNlcyBhbGxvd3MgdG8KKyAgICBzd2l0Y2ggb2ZmIHRpbWUtY29uc3VtaW5nIGNhY2hlIHNpbXVsYXRpb24gYW5kIGFsbG93cyBDYWxsZ3JpbmQgdG8KKyAgICBwcm9ncmVzcyBhdCBtdWNoIGhpZ2hlciBzcGVlZCB3aXRoIGFuIHNsb3dkb3duIG9mIGFyb3VuZCBmYWN0b3IgMgorICAgIChpZGVudGljYWwgdG8gPGNvbXB1dGVyb3V0cHV0PnZhbGdyaW5kCisgICAgLS10b29sPW5vbmU8L2NvbXB1dGVyb3V0cHV0PikuCiAgIDwvcGFyYT4KLSAgCi0gIDxwYXJhPkluIGFkZGl0aW9uIHRvIGVuYWJsaW5nIGluc3RydW1lbnRhdGlvbiwgeW91IG11c3QgYWxzbyBlbmFibGUKLSAgZXZlbnQgY29sbGVjdGlvbiBmb3IgdGhlIHBhcnRzIG9mIHlvdXIgcHJvZ3JhbSB5b3UgYXJlIGludGVyZXN0ZWQgaW4uCi0gIEJ5IGRlZmF1bHQsIGV2ZW50IGNvbGxlY3Rpb24gaXMgZW5hYmxlZCBldmVyeXdoZXJlLgotICBZb3UgY2FuIGxpbWl0IGNvbGxlY3Rpb24gdG8gYSBzcGVjaWZpYyBmdW5jdGlvbgotICBieSB1c2luZyAKLSAgPG9wdGlvbj48eHJlZiBsaW5rZW5kPSJvcHQudG9nZ2xlLWNvbGxlY3QiLz49ZnVuY3Rpb248L29wdGlvbj4uIAotICBUaGlzIHdpbGwgdG9nZ2xlIHRoZSBjb2xsZWN0aW9uIHN0YXRlIG9uIGVudGVyaW5nIGFuZCBsZWF2aW5nCi0gIHRoZSBzcGVjaWZpZWQgZnVuY3Rpb25zLgotICBXaGVuIHRoaXMgb3B0aW9uIGlzIGluIGVmZmVjdCwgdGhlIGRlZmF1bHQgY29sbGVjdGlvbiBzdGF0ZQotICBhdCBwcm9ncmFtIHN0YXJ0IGlzICJvZmYiLiAgT25seSBldmVudHMgaGFwcGVuaW5nIHdoaWxlIHJ1bm5pbmcKLSAgaW5zaWRlIG9mIHRoZSBnaXZlbiBmdW5jdGlvbiB3aWxsIGJlIGNvbGxlY3RlZC4gUmVjdXJzaXZlCi0gIGNhbGxzIG9mIHRoZSBnaXZlbiBmdW5jdGlvbiBkbyBub3QgdHJpZ2dlciBhbnkgYWN0aW9uLjwvcGFyYT4KIAotICA8cGFyYT5JdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHdpdGggaW5zdHJ1bWVudGF0aW9uIGRpc2FibGVkLCB0aGUKLSAgY2FjaGUgc2ltdWxhdG9yIGNhbm5vdCBzZWUgYW55IG1lbW9yeSBhY2Nlc3MgZXZlbnRzLCBhbmQgdGh1cywgYW55Ci0gIHNpbXVsYXRlZCBjYWNoZSBzdGF0ZSB3aWxsIGJlIGZyb3plbiBhbmQgd3Jvbmcgd2l0aG91dCBpbnN0cnVtZW50YXRpb24uCi0gIFRoZXJlZm9yZSwgdG8gZ2V0IHVzZWZ1bCBjYWNoZSBldmVudHMgKGhpdHMvbWlzc2VzKSBhZnRlciBzd2l0Y2hpbmcgb24KLSAgaW5zdHJ1bWVudGF0aW9uLCB0aGUgY2FjaGUgZmlyc3QgbXVzdCB3YXJtIHVwLAotICBwcm9iYWJseSBsZWFkaW5nIHRvIG1hbnkgPGVtcGhhc2lzPmNvbGQgbWlzc2VzPC9lbXBoYXNpcz4KLSAgd2hpY2ggd291bGQgbm90IGhhdmUgaGFwcGVuZWQgaW4gcmVhbGl0eS4gSWYgeW91IGRvIG5vdCB3YW50IHRvIHNlZSB0aGVzZSwKLSAgc3RhcnQgZXZlbnQgY29sbGVjdGlvbiBhIGZldyBtaWxsaW9uIGluc3RydWN0aW9ucyBhZnRlciB5b3UgaGF2ZSBlbmFibGVkCi0gIGluc3RydW1lbnRhdGlvbi48L3BhcmE+CisgIDxwYXJhPlRoZXJlIGFyZSB0d28gYXNwZWN0cyB3aGljaCBpbmZsdWVuY2Ugd2hldGhlciBDYWxsZ3JpbmQgaXMKKyAgICBhZ2dyZWdhdGluZyBldmVudHMgYXQgc29tZSBwb2ludCBpbiB0aW1lIG9mIHByb2dyYW0gZXhlY3V0aW9uLgorICAgIEZpcnN0LCB0aGVyZSBpcyB0aGUgPGVtcGhhc2lzPmNvbGxlY3Rpb24gc3RhdGU8L2VtcGhhc2lzPi4gSWYgdGhpcworICAgIGlzIG9mZiwgbm8gYWdncmVnYXRpb24gd2lsbCBiZSBkb25lLiAgQnkgY2hhbmdpbmcgdGhlIGNvbGxlY3Rpb24KKyAgICBzdGF0ZSwgeW91IGNhbiBjb250cm9sIGV2ZW50IGFnZ3JlZ2F0aW9uIGF0IGEgdmVyeSBmaW5lCisgICAgZ3JhbnVsYXJpdHkuICBIb3dldmVyLCB0aGVyZSBpcyBub3QgbXVjaCBkaWZmZXJlbmNlIGluIHJlZ2FyZCB0bworICAgIGV4ZWN1dGlvbiBzcGVlZCBvZiBDYWxsZ3JpbmQuICBCeSBkZWZhdWx0LCBjb2xsZWN0aW9uIGlzIHN3aXRjaGVkCisgICAgb24sIGJ1dCBjYW4gYmUgZGlzYWJsZWQgYnkgZGlmZmVyZW50IG1lYW5zIChzZWUgYmVsb3cpLiAgU2Vjb25kLAorICAgIHRoZXJlIGlzIHRoZSA8ZW1waGFzaXM+aW5zdHJ1bWVudGF0aW9uIG1vZGU8L2VtcGhhc2lzPiBpbiB3aGljaAorICAgIENhbGxncmluZCBpcyBydW5uaW5nLiBUaGlzIG1vZGUgZWl0aGVyIGNhbiBiZSBvbiBvciBvZmYuIElmCisgICAgaW5zdHJ1bWVudGF0aW9uIGlzIG9mZiwgbm8gb2JzZXJ2YXRpb24gb2YgYWN0aW9ucyBpbiB0aGUgcHJvZ3JhbQorICAgIHdpbGwgYmUgZG9uZSBhbmQgdGh1cywgbm8gYWN0aW9ucyB3aWxsIGJlIGZvcndhcmRlZCB0byB0aGUKKyAgICBzaW11bGF0b3Igd2hpY2ggY291bGQgdHJpZ2dlciBldmVudHMuIEluIHRoZSBlbmQsIG5vIGV2ZW50cyB3aWxsCisgICAgYmUgYWdncmVnYXRlZC4gIFRoZSBodWdlIGJlbmVmaXQgaXMgdGhlIG11Y2ggaGlnaGVyIHNwZWVkIHdpdGgKKyAgICBpbnN0cnVtZW50YXRpb24gc3dpdGNoZWQgb2ZmLiAgSG93ZXZlciwgdGhpcyBvbmx5IHNob3VsZCBiZSB1c2VkCisgICAgd2l0aCBjYXJlIGFuZCBpbiBhIGNvYXJzZSBmYXNoaW9uOiBldmVyeSBtb2RlIGNoYW5nZSByZXNldHMgdGhlCisgICAgc2ltdWxhdG9yIHN0YXRlIChpZS4gd2hldGhlciBhIG1lbW9yeSBibG9jayBpcyBjYWNoZWQgb3Igbm90KSBhbmQKKyAgICBmbHVzaGVzIFZhbGdyaW5kcyBpbnRlcm5hbCBjYWNoZSBvZiBpbnN0cnVtZW50ZWQgY29kZSBibG9ja3MsCisgICAgcmVzdWx0aW5nIGluIGxhdGVuY3kgcGVuYWx0eSBhdCBzd2l0Y2hpbmcgdGltZS4gQWxzbywgY2FjaGUKKyAgICBzaW11bGF0b3IgcmVzdWx0cyBkaXJlY3RseSBhZnRlciBzd2l0Y2hpbmcgb24gaW5zdHJ1bWVudGF0aW9uIHdpbGwKKyAgICBiZSBza2V3ZWQgZHVlIHRvIGlkZW50aWZpZWQgY2FjaGUgbWlzc2VzIHdoaWNoIHdvdWxkIG5vdCBoYXBwZW4gaW4KKyAgICByZWFsaXR5IChpZiB5b3UgY2FyZSBhYm91dCB0aGlzIHdhcm0tdXAgZWZmZWN0LCB5b3Ugc2hvdWxkIG1ha2UKKyAgICBzdXJlIHRvIHRlbXBvcmFybHkgaGF2ZSBjb2xsZWN0aW9uIHN0YXRlIHN3aXRjaGVkIG9mZiBkaXJlY3RseQorICAgIGFmdGVyIHR1cm5pbmcgaW5zdHJ1bWVudGF0aW9uIG1vZGUgb24pLiBIb3dldmVyLCBzd2l0Y2hpbmcKKyAgICBpbnN0cnVtZW50YXRpb24gc3RhdGUgaXMgdmVyeSB1c2VmdWwgdG8gc2tpcCBsYXJnZXIgcHJvZ3JhbSBwaGFzZXMKKyAgICBzdWNoIGFzIGFuIGluaXRpYWxpemF0aW9uIHBoYXNlLiBCeSBkZWZhdWx0LCBpbnN0cnVtZW50YXRpb24gaXMKKyAgICBzd2l0Y2hlZCBvbiwgYnV0IGFzIHdpdGggdGhlIGNvbGxlY3Rpb24gc3RhdGUsIGNhbiBiZSBjaGFuZ2VkIGJ5CisgICAgdmFyaW91cyBtZWFucy4KKyAgPC9wYXJhPgogCisgIDxwYXJhPkNhbGxncmluZCBjYW4gc3RhcnQgd2l0aCBpbnN0cnVtZW50YXRpb24gbW9kZSBzd2l0Y2hlZCBvZmYgYnkKKyAgICBzcGVjaWZ5aW5nCisgICAgb3B0aW9uIDxvcHRpb24+PHhyZWYgbGlua2VuZD0ib3B0Lmluc3RyLWF0c3RhcnQiLz49bm88L29wdGlvbj4uCisgICAgQWZ0ZXJ3YXJkcywgaW5zdHJ1bWVudGF0aW9uIGNhbiBiZSBjb250cm9sbGVkIGluIHR3byB3YXlzOiBmaXJzdCwKKyAgICBpbnRlcmFjdGl2ZWx5IHdpdGg6IDxzY3JlZW4+Y2FsbGdyaW5kX2NvbnRyb2wgLWkgb248L3NjcmVlbj4gKGFuZAorICAgIHN3aXRjaGluZyBvZmYgYWdhaW4gYnkgc3BlY2lmeWluZyAib2ZmIiBpbnN0ZWFkIG9mICJvbiIpLiAgU2Vjb25kLAorICAgIGluc3RydW1lbnRhdGlvbiBzdGF0ZSBjYW4gYmUgcHJvZ3JhbWF0aWNhbGx5IGNoYW5nZWQgd2l0aCB0aGUKKyAgICBtYWNyb3MgPGNvbXB1dGVyb3V0cHV0Pjx4cmVmIGxpbmtlbmQ9ImNyLnN0YXJ0LWluc3RyIi8+OzwvY29tcHV0ZXJvdXRwdXQ+CisgICAgYW5kIDxjb21wdXRlcm91dHB1dD48eHJlZiBsaW5rZW5kPSJjci5zdG9wLWluc3RyIi8+OzwvY29tcHV0ZXJvdXRwdXQ+LgorICA8L3BhcmE+CisKKyAgPHBhcmE+U2ltaWxhcmx5LCB0aGUgY29sbGVjdGlvbiBzdGF0ZSBhdCBwcm9ncmFtIHN0YXJ0IGNhbiBiZQorICAgIHN3aXRjaGVkIG9mZgorICAgIGJ5IDxvcHRpb24+PHhyZWYgbGlua2VuZD0ib3B0Lmluc3RyLWF0c3RhcnQiLz49bm88L29wdGlvbj4uIER1cmluZworICAgIGV4ZWN1dGlvbiwgaXQgY2FuIGJlIGNvbnRyb2xsZWQgcHJvZ3JhbWF0aWNhbGx5IHdpdGggdGhlCisgICAgbWFjcm8gPGNvbXB1dGVyb3V0cHV0PkNBTExHUklORF9UT0dHTEVfQ09MTEVDVDs8L2NvbXB1dGVyb3V0cHV0Pi4KKyAgICBGdXJ0aGVyLCB5b3UgY2FuIGxpbWl0IGV2ZW50IGNvbGxlY3Rpb24gdG8gYSBzcGVjaWZpYyBmdW5jdGlvbiBieQorICAgIHVzaW5nIDxvcHRpb24+PHhyZWYgbGlua2VuZD0ib3B0LnRvZ2dsZS1jb2xsZWN0Ii8+PWZ1bmN0aW9uPC9vcHRpb24+LgorICAgIFRoaXMgd2lsbCB0b2dnbGUgdGhlIGNvbGxlY3Rpb24gc3RhdGUgb24gZW50ZXJpbmcgYW5kIGxlYXZpbmcgdGhlCisgICAgc3BlY2lmaWVkIGZ1bmN0aW9uLiAgV2hlbiB0aGlzIG9wdGlvbiBpcyBpbiBlZmZlY3QsIHRoZSBkZWZhdWx0CisgICAgY29sbGVjdGlvbiBzdGF0ZSBhdCBwcm9ncmFtIHN0YXJ0IGlzICJvZmYiLiAgT25seSBldmVudHMgaGFwcGVuaW5nCisgICAgd2hpbGUgcnVubmluZyBpbnNpZGUgb2YgdGhlIGdpdmVuIGZ1bmN0aW9uIHdpbGwgYmUKKyAgICBjb2xsZWN0ZWQuIFJlY3Vyc2l2ZSBjYWxscyBvZiB0aGUgZ2l2ZW4gZnVuY3Rpb24gZG8gbm90IHRyaWdnZXIKKyAgICBhbnkgYWN0aW9uLiBUaGlzIG9wdGlvbiBjYW4gYmUgZ2l2ZW4gbXVsdGlwbGUgdGltZXMgdG8gc3BlY2lmeQorICAgIGRpZmZlcmVudCBmdW5jdGlvbnMgb2YgaW50ZXJlc3QuPC9wYXJhPgogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0iY2wtbWFudWFsLmJ1c2V2ZW50cyIgeHJlZmxhYmVsPSJDb3VudGluZyBnbG9iYWwgYnVzIGV2ZW50cyI+CmRpZmYgLS1naXQgYS9jYWxsZ3JpbmQvZHVtcC5jIGIvY2FsbGdyaW5kL2R1bXAuYwppbmRleCBjNmQ0ZGUxLi44OTA3OTk1IDEwMDY0NAotLS0gYS9jYWxsZ3JpbmQvZHVtcC5jCisrKyBiL2NhbGxncmluZC9kdW1wLmMKQEAgLTYsNyArNiw3IEBACiAvKgogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2FsbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhbGwgdHJhY2luZy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1LCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0xMjksOSArMTI5LDkgQEAKICAgICBpZiAoQ0xHXyhjbG8pLmNvbXByZXNzX3N0cmluZ3MpIHsKIAlDTEdfQVNTRVJUKG9ial9kdW1wZWQgIT0gMCk7CiAJaWYgKG9ial9kdW1wZWRbb2JqLT5udW1iZXJdKQotICAgICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAiJXMoJWQpXG4iLCBwcmVmaXgsIG9iai0+bnVtYmVyKTsKKyAgICAgICAgICAgIFZHXyhmcHJpbnRmKShmcCwgIiVzKCV1KVxuIiwgcHJlZml4LCBvYmotPm51bWJlcik7CiAJZWxzZSB7Ci0gICAgICAgICAgICBWR18oZnByaW50ZikoZnAsICIlcyglZCkgJXNcbiIsIHByZWZpeCwgb2JqLT5udW1iZXIsIG9iai0+bmFtZSk7CisgICAgICAgICAgICBWR18oZnByaW50ZikoZnAsICIlcygldSkgJXNcbiIsIHByZWZpeCwgb2JqLT5udW1iZXIsIG9iai0+bmFtZSk7CiAJfQogICAgIH0KICAgICBlbHNlCkBAIC0xNTUsOSArMTU1LDkgQEAKICAgICBpZiAoQ0xHXyhjbG8pLmNvbXByZXNzX3N0cmluZ3MpIHsKIAlDTEdfQVNTRVJUKGZpbGVfZHVtcGVkICE9IDApOwogCWlmIChmaWxlX2R1bXBlZFtmaWxlLT5udW1iZXJdKQotICAgICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAiJXMoJWQpXG4iLCBwcmVmaXgsIGZpbGUtPm51bWJlcik7CisgICAgICAgICAgICBWR18oZnByaW50ZikoZnAsICIlcygldSlcbiIsIHByZWZpeCwgZmlsZS0+bnVtYmVyKTsKIAllbHNlIHsKLSAgICAgICAgICAgIFZHXyhmcHJpbnRmKShmcCwgIiVzKCVkKSAlc1xuIiwgcHJlZml4LCBmaWxlLT5udW1iZXIsIGZpbGUtPm5hbWUpOworICAgICAgICAgICAgVkdfKGZwcmludGYpKGZwLCAiJXMoJXUpICVzXG4iLCBwcmVmaXgsIGZpbGUtPm51bWJlciwgZmlsZS0+bmFtZSk7CiAJICAgIGZpbGVfZHVtcGVkW2ZpbGUtPm51bWJlcl0gPSBUcnVlOwogCX0KICAgICB9CkBAIC0xNzQsOSArMTc0LDkgQEAKICAgICBpZiAoQ0xHXyhjbG8pLmNvbXByZXNzX3N0cmluZ3MpIHsKIAlDTEdfQVNTRVJUKGZuX2R1bXBlZCAhPSAwKTsKIAlpZiAoZm5fZHVtcGVkW2ZuLT5udW1iZXJdKQotCSAgICBWR18oZnByaW50ZikoZnAsICIoJWQpXG4iLCBmbi0+bnVtYmVyKTsKKwkgICAgVkdfKGZwcmludGYpKGZwLCAiKCV1KVxuIiwgZm4tPm51bWJlcik7CiAJZWxzZSB7Ci0JICAgIFZHXyhmcHJpbnRmKShmcCwgIiglZCkgJXNcbiIsIGZuLT5udW1iZXIsIGZuLT5uYW1lKTsKKwkgICAgVkdfKGZwcmludGYpKGZwLCAiKCV1KSAlc1xuIiwgZm4tPm51bWJlciwgZm4tPm5hbWUpOwogCSAgICBmbl9kdW1wZWRbZm4tPm51bWJlcl0gPSBUcnVlOwogCX0KICAgICB9CkBAIC0xOTYsNyArMTk2LDcgQEAKIAogCUNMR19BU1NFUlQoY3h0X2R1bXBlZCAhPSAwKTsKIAlpZiAoY3h0X2R1bXBlZFtjeHQtPmJhc2VfbnVtYmVyK3JlY19pbmRleF0pIHsKLSAgICAgICAgICAgIFZHXyhmcHJpbnRmKShmcCwgIiVzPSglZClcbiIsCisgICAgICAgICAgICBWR18oZnByaW50ZikoZnAsICIlcz0oJXUpXG4iLAogCQkJICAgICB0YWcsIGN4dC0+YmFzZV9udW1iZXIgKyByZWNfaW5kZXgpOwogCSAgICByZXR1cm47CiAJfQpAQCAtMjE2LDEzICsyMTYsMTMgQEAKIAkvKiBJZiB0aGUgbGFzdCBjb250ZXh0IHdhcyB0aGUgY29udGV4dCB0byBwcmludCwgd2UgYXJlIGZpbmlzaGVkICovCiAJaWYgKChsYXN0ID09IGN4dCkgJiYgKHJlY19pbmRleCA9PSAwKSkgcmV0dXJuOwogCi0JVkdfKGZwcmludGYpKGZwLCAiJXM9KCVkKSAoJWQpIiwgdGFnLAorCVZHXyhmcHJpbnRmKShmcCwgIiVzPSgldSkgKCV1KSIsIHRhZywKIAkJCSBjeHQtPmJhc2VfbnVtYmVyICsgcmVjX2luZGV4LAogCQkJIGN4dC0+Zm5bMF0tPnB1cmVfY3h0LT5iYXNlX251bWJlcik7CiAJaWYgKHJlY19pbmRleCA+MCkKIAkgICAgVkdfKGZwcmludGYpKGZwLCAiJyVkIiwgcmVjX2luZGV4ICsxKTsKIAlmb3IoaT0xO2k8Y3h0LT5zaXplO2krKykKLQkgICAgVkdfKGZwcmludGYpKGZwLCAiJyglZCkiLCAKKwkgICAgVkdfKGZwcmludGYpKGZwLCAiJygldSkiLCAKIAkJCSAgICAgIGN4dC0+Zm5baV0tPnB1cmVfY3h0LT5iYXNlX251bWJlcik7CiAJVkdfKGZwcmludGYpKGZwLCAiXG4iKTsKIApAQCAtMjM1LDExICsyMzUsMTEgQEAKICAgICBpZiAoQ0xHXyhjbG8pLmNvbXByZXNzX3N0cmluZ3MpIHsKIAlDTEdfQVNTRVJUKGN4dF9kdW1wZWQgIT0gMCk7CiAJaWYgKGN4dF9kdW1wZWRbY3h0LT5iYXNlX251bWJlcityZWNfaW5kZXhdKSB7Ci0JICAgIFZHXyhmcHJpbnRmKShmcCwgIiglZClcbiIsIGN4dC0+YmFzZV9udW1iZXIgKyByZWNfaW5kZXgpOworCSAgICBWR18oZnByaW50ZikoZnAsICIoJXUpXG4iLCBjeHQtPmJhc2VfbnVtYmVyICsgcmVjX2luZGV4KTsKIAkgICAgcmV0dXJuOwogCX0KIAllbHNlIHsKLQkgICAgVkdfKGZwcmludGYpKGZwLCAiKCVkKSAiLCBjeHQtPmJhc2VfbnVtYmVyICsgcmVjX2luZGV4KTsKKwkgICAgVkdfKGZwcmludGYpKGZwLCAiKCV1KSAiLCBjeHQtPmJhc2VfbnVtYmVyICsgcmVjX2luZGV4KTsKIAkgICAgY3h0X2R1bXBlZFtjeHQtPmJhc2VfbnVtYmVyK3JlY19pbmRleF0gPSBUcnVlOwogCX0KICAgICB9CkBAIC0yNzMsNyArMjczLDcgQEAKIAogICAgIGlmICghQ0xHXyhjbG8pLm1hbmdsZV9uYW1lcykgewogCWlmIChsYXN0LT5yZWNfaW5kZXggIT0gYmJjYy0+cmVjX2luZGV4KSB7Ci0JICAgIFZHXyhmcHJpbnRmKShmcCwgInJlYz0lZFxuXG4iLCBiYmNjLT5yZWNfaW5kZXgpOworCSAgICBWR18oZnByaW50ZikoZnAsICJyZWM9JXVcblxuIiwgYmJjYy0+cmVjX2luZGV4KTsKIAkgICAgbGFzdC0+cmVjX2luZGV4ID0gYmJjYy0+cmVjX2luZGV4OwogCSAgICBsYXN0LT5jeHQgPSAwOyAvKiByZXByaW50IGNvbnRleHQgKi8KIAkgICAgcmVzID0gVHJ1ZTsKQEAgLTQzNiw3ICs0MzYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9ub2RlKiBmdW5jX2ZpbGUpCiB7CiAgICAgQ0xHX0FTU0VSVChjdXJyLT5maWxlICE9IDApOwotICAgIENMR19ERUJVRygyLCAiICAgIHByaW50X2Fwb3MoZmlsZSAnJXMnLCBsaW5lICVkLCBiYiAlI2x4LCBhZGRyICUjbHgpIGZuRmlsZSAnJXMnXG4iLAorICAgIENMR19ERUJVRygyLCAiICAgIHByaW50X2Fwb3MoZmlsZSAnJXMnLCBsaW5lICV1LCBiYiAlI2x4LCBhZGRyICUjbHgpIGZuRmlsZSAnJXMnXG4iLAogCSAgICAgY3Vyci0+ZmlsZS0+bmFtZSwgY3Vyci0+bGluZSwgY3Vyci0+YmJfYWRkciwgY3Vyci0+YWRkciwKIAkgICAgIGZ1bmNfZmlsZS0+bmFtZSk7CiAKQEAgLTQ1MSw3ICs0NTEsNyBAQAogCiAgICAgaWYgKENMR18oY2xvKS5kdW1wX2JicykgewogCWlmIChjdXJyLT5saW5lICE9IGxhc3QtPmxpbmUpIHsKLQkgICAgVkdfKGZwcmludGYpKGZwLCAibG49JWRcbiIsIGN1cnItPmxpbmUpOworCSAgICBWR18oZnByaW50ZikoZnAsICJsbj0ldVxuIiwgY3Vyci0+bGluZSk7CiAJfQogICAgIH0KIH0KQEAgLTU0MSw3ICs1NDEsNyBAQAogc3RhdGljIHZvaWQgZnByaW50X2Zjb3N0KFZnRmlsZSAqZnAsIEFkZHJDb3N0KiBjLCBBZGRyUG9zKiBsYXN0KQogewogICBDTEdfREVCVUdJRigzKSB7Ci0gICAgQ0xHX0RFQlVHKDIsICIgICBwcmludF9mY29zdChmaWxlICclcycsIGxpbmUgJWQsIGJiICUjbHgsIGFkZHIgJSNseCk6XG4iLAorICAgIENMR19ERUJVRygyLCAiICAgcHJpbnRfZmNvc3QoZmlsZSAnJXMnLCBsaW5lICV1LCBiYiAlI2x4LCBhZGRyICUjbHgpOlxuIiwKIAkgICAgIGMtPnAuZmlsZS0+bmFtZSwgYy0+cC5saW5lLCBjLT5wLmJiX2FkZHIsIGMtPnAuYWRkcik7CiAgICAgQ0xHXyhwcmludF9jb3N0KSgtNSwgQ0xHXyhzZXRzKS5mdWxsLCBjLT5jb3N0KTsKICAgfQpAQCAtNTY2LDcgKzU2Niw3IEBACiAgICAgb2JqX25vZGUqICBvYmo7CiAKICAgICBDTEdfREVCVUdJRigyKSB7Ci0gICAgICBDTEdfREVCVUcoMiwgIiAgIGZwcmludF9qY2MgKGpraW5kICVkKVxuIiwgamNjLT5qbXBraW5kKTsKKyAgICAgIENMR19ERUJVRygyLCAiICAgZnByaW50X2pjYyAoamtpbmQgJWQpXG4iLCAoSW50KWpjYy0+am1wa2luZCk7CiAgICAgICBDTEdfKHByaW50X2pjYykoLTEwLCBqY2MpOwogICAgIH0KIApAQCAtNTg5LDcgKzU4OSw3IEBACiAgICAgICAgKi8KICAgICAgIENMR19BU1NFUlQoamNjLT5mcm9tLT5iYi0+b2JqID09IGpjYy0+dG8tPmJiLT5vYmopOwogCi0JLyogb25seSBwcmludCBpZiB0YXJnZXQgcG9zaXRpb24gaW5mbyBpcyB1c2VmdWxsICovCisJLyogb25seSBwcmludCBpZiB0YXJnZXQgcG9zaXRpb24gaW5mbyBpcyB1c2VmdWwgKi8KIAlpZiAoIUNMR18oY2xvKS5kdW1wX2luc3RyICYmICFDTEdfKGNsbykuZHVtcF9iYiAmJiB0YXJnZXQubGluZT09MCkgewogCSAgamNjLT5jYWxsX2NvdW50ZXIgPSAwOwogCSAgcmV0dXJuOwpAQCAtNjg5LDcgKzY4OSw3IEBACiAKICAgQ0xHX0FTU0VSVChiYmNjLT5jeHQgIT0gMCk7CiAgIENMR19ERUJVR0lGKDEpIHsKLSAgICBWR18ocHJpbnRmKSgiKyBmcHJpbnRfYmJjYyAoSW5zdHIgJWQpOiAiLCBiYi0+aW5zdHJfY291bnQpOworICAgIFZHXyhwcmludGYpKCIrIGZwcmludF9iYmNjIChJbnN0ciAldSk6ICIsIGJiLT5pbnN0cl9jb3VudCk7CiAgICAgQ0xHXyhwcmludF9iYmNjKSgxNSwgYmJjYyk7CiAgIH0KIApAQCAtODE3LDcgKzgxNyw3IEBACiAgICAgfQogICAgIGlmIChDTEdfKGNsbykuZHVtcF9iYnMpIFZHXyhmcHJpbnRmKShmcCwgIlxuIik7CiAgICAgCi0gICAgLyogd2hlbiBldmVyeSBjb3N0IHdhcyBpbW1lZGlhdGx5IHdyaXR0ZW4sIHdlIG11c3QgaGF2ZSBkb25lIHNvLAorICAgIC8qIHdoZW4gZXZlcnkgY29zdCB3YXMgaW1tZWRpYXRlbHkgd3JpdHRlbiwgd2UgbXVzdCBoYXZlIGRvbmUgc28sCiAgICAgICogYXMgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCB3aGVuIHRoZXJlJ3MgY29zdCBpbiBhIEJCQ0MKICAgICAgKi8KICAgICBDTEdfQVNTRVJUKHNvbWV0aGluZ193cml0dGVuKTsKQEAgLTkwNyw3ICs5MDcsNyBAQAogCiBzdGF0aWMgQkJDQyoqIHFzb3J0X3N0YXJ0ID0gMDsKIAotc3RhdGljIHZvaWQgcXNvcnQoQkJDQyAqKmEsIGludCBuLCBpbnQgKCpjbXApKEJCQ0MqKixCQkNDKiopKQorc3RhdGljIHZvaWQgQ0xHXyhxc29ydCkoQkJDQyAqKmEsIGludCBuLCBpbnQgKCpjbXApKEJCQ0MqKixCQkNDKiopKQogewogCUJCQ0MgKipwYSwgKipwYiwgKipwYywgKipwZCwgKipwbCwgKipwbSwgKipwbiwgKipwdjsKIAlpbnQgcywgcjsKQEAgLTEwMDUsOCArMTAwNSw4IEBACiAJICAgIH0KIAl9CiAKLQlpZiAoKHMgPSBwYisxLXBhKSA+IDEpIHFzb3J0KGEsICAgICBzLCBjbXApOwotCWlmICgocyA9IHBkKzEtcGMpID4gMSkgcXNvcnQoYStuLXMsIHMsIGNtcCk7CisJaWYgKChzID0gcGIrMS1wYSkgPiAxKSBDTEdfKHFzb3J0KShhLCAgICAgcywgY21wKTsKKwlpZiAoKHMgPSBwZCsxLXBjKSA+IDEpIENMR18ocXNvcnQpKGErbi1zLCBzLCBjbXApOwogfQogCiAKQEAgLTEwNDksNyArMTA0OSw3IEBACiAJCQkgICBlLT5lbnRlcl9jb3N0LCBDTEdfKGN1cnJlbnRfc3RhdGUpLmNvc3QpOwogICAgIGJiY2MgPSBlLT5qY2MtPmZyb207CiAKLSAgICBDTEdfREVCVUcoMSwgIiBbJTJkXSAodGlkICVkKSwgYWRkZWQgYWN0aXZlOiAlc1xuIiwKKyAgICBDTEdfREVCVUcoMSwgIiBbJTJkXSAodGlkICV1KSwgYWRkZWQgYWN0aXZlOiAlc1xuIiwKIAkgICAgIGksQ0xHXyhjdXJyZW50X3RpZCksYmJjYy0+Y3h0LT5mblswXS0+bmFtZSk7CiAgICAgCiAgICAgaWYgKGJiY2MtPmVjb3VudGVyX3N1bT4wIHx8IGJiY2MtPnJldF9jb3VudGVyPjApIHsKQEAgLTExMzEsNyArMTEzMSw3IEBACiAgICAgQ0xHX0RFQlVHKDAsIiAgICAgICAgICAgICBCQkNDcyBpbnNlcnRlZFxuIik7CiAKICAgICBxc29ydF9zdGFydCA9IGFycmF5OwotICAgIHFzb3J0KGFycmF5LCBwcmVwYXJlX2NvdW50LCBteV9jbXApOworICAgIENMR18ocXNvcnQpKGFycmF5LCBwcmVwYXJlX2NvdW50LCBteV9jbXApOwogCiAgICAgQ0xHX0RFQlVHKDAsIiAgICAgICAgICAgICBCQkNDcyBzb3J0ZWRcbiIpOwogCkBAIC0xMzcyLDExICsxMzcyLDExIEBACiAgIEZuUG9zIGxhc3RGblBvczsKICAgQWRkclBvcyBsYXN0QVBvczsKIAotICBDTEdfREVCVUcoMSwgIisgcHJpbnRfYmJjY3ModGlkICVkKVxuIiwgQ0xHXyhjdXJyZW50X3RpZCkpOworICBDTEdfREVCVUcoMSwgIisgcHJpbnRfYmJjY3ModGlkICV1KVxuIiwgQ0xHXyhjdXJyZW50X3RpZCkpOwogCiAgIFZnRmlsZSAqcHJpbnRfZnAgPSBuZXdfZHVtcGZpbGUoQ0xHXyhjdXJyZW50X3RpZCksIHByaW50X3RyaWdnZXIpOwogICBpZiAocHJpbnRfZnAgPT0gTlVMTCkgewotICAgIENMR19ERUJVRygxLCAiLSBwcmludF9iYmNjcyh0aWQgJWQpOiBObyBvdXRwdXQuLi5cbiIsIENMR18oY3VycmVudF90aWQpKTsKKyAgICBDTEdfREVCVUcoMSwgIi0gcHJpbnRfYmJjY3ModGlkICV1KTogTm8gb3V0cHV0Li4uXG4iLCBDTEdfKGN1cnJlbnRfdGlkKSk7CiAgICAgcmV0dXJuOwogICB9CiAKQEAgLTE0MTksMTQgKzE0MTksMTQgQEAKIAkvKiBGSVhNRTogU3BlY2lmeSBPYmplY3Qgb2YgQkIgaWYgZGlmZmVyZW50IHRvIG9iamVjdCBvZiBmbiAqLwogICAgICAgICBpbnQgaTsKIAlVTG9uZyBlY291bnRlciA9ICgqcCktPmVjb3VudGVyX3N1bTsKLSAgICAgICAgVkdfKGZwcmludGYpKHByaW50X2ZwLCAiYmI9JSNseCAiLCAoKnApLT5iYi0+b2Zmc2V0KTsKKyAgICAgICAgVkdfKGZwcmludGYpKHByaW50X2ZwLCAiYmI9JSNseCAiLCAoVVdvcmQpKCpwKS0+YmItPm9mZnNldCk7CiAJZm9yKGkgPSAwOyBpPCgqcCktPmJiLT5jam1wX2NvdW50O2krKykgewotCSAgICBWR18oZnByaW50ZikocHJpbnRfZnAsICIlZCAlbGx1ICIsIAorCSAgICBWR18oZnByaW50ZikocHJpbnRfZnAsICIldSAlbGx1ICIsIAogCQkJCSgqcCktPmJiLT5qbXBbaV0uaW5zdHIsCiAJCQkJZWNvdW50ZXIpOwogCSAgICBlY291bnRlciAtPSAoKnApLT5qbXBbaV0uZWNvdW50ZXI7CiAJfQotCVZHXyhmcHJpbnRmKShwcmludF9mcCwgIiVkICVsbHVcbiIsIAorCVZHXyhmcHJpbnRmKShwcmludF9mcCwgIiV1ICVsbHVcbiIsIAogCQkgICAgICgqcCktPmJiLT5pbnN0cl9jb3VudCwKIAkJICAgICBlY291bnRlcik7CiAgICAgfQpAQCAtMTQ0Myw3ICsxNDQzLDcgQEAKICAgQ0xHXyhjb3B5X2Nvc3QpKCBDTEdfKHNldHMpLmZ1bGwsIHRpLT5sYXN0ZHVtcF9jb3N0LAogCQkgIENMR18oY3VycmVudF9zdGF0ZSkuY29zdCApOwogCi0gIENMR19ERUJVRygxLCAiLSBwcmludF9iYmNjcyh0aWQgJWQpXG4iLCBDTEdfKGN1cnJlbnRfdGlkKSk7CisgIENMR19ERUJVRygxLCAiLSBwcmludF9iYmNjcyh0aWQgJXUpXG4iLCBDTEdfKGN1cnJlbnRfdGlkKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvY2FsbGdyaW5kL2V2ZW50cy5jIGIvY2FsbGdyaW5kL2V2ZW50cy5jCmluZGV4IDk1YmFiY2EuLmU3Y2E2OGUgMTAwNjQ0Ci0tLSBhL2NhbGxncmluZC9ldmVudHMuYworKysgYi9jYWxsZ3JpbmQvZXZlbnRzLmMKQEAgLTYsNyArNiw3IEBACiAvKgogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2FsbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhbGwgdHJhY2luZy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1LCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9jYWxsZ3JpbmQvZXZlbnRzLmggYi9jYWxsZ3JpbmQvZXZlbnRzLmgKaW5kZXggMDI5MzA0My4uYjM4YjNjMyAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2V2ZW50cy5oCisrKyBiL2NhbGxncmluZC9ldmVudHMuaApAQCAtNiw3ICs2LDcgQEAKIC8qCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWxsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2FsbCB0cmFjaW5nLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NhbGxncmluZC9mbi5jIGIvY2FsbGdyaW5kL2ZuLmMKaW5kZXggYzM0OGZkNy4uMjQzNDk0MSAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2ZuLmMKKysrIGIvY2FsbGdyaW5kL2ZuLmMKQEAgLTYsNyArNiw3IEBACiAvKgogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2FsbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhbGwgdHJhY2luZy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1LCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC01MDgsMTAgKzUwOCwxMCBAQAogICAgICAgICBzdGF0aWMgSENoYXIgYnVmWzMyXTsgIC8vIGZvciBzdXJlIGxhcmdlIGVub3VnaAogCS8qIFVzZSBhZGRyZXNzIGFzIGZvdW5kIGluIGxpYnJhcnkgKi8KIAlpZiAoc2l6ZW9mKEFkZHIpID09IDQpCi0JICAgIHAgPSBWR18oc3ByaW50ZikoYnVmLCAiJSMwOGx4IiwgYmItPm9mZnNldCk7CisgICAgICAgICAgcCA9IFZHXyhzcHJpbnRmKShidWYsICIlIzA4bHgiLCAoVVdvcmQpYmItPm9mZnNldCk7CiAJZWxzZSAJICAgIAogCSAgICAvLyA2NGJpdCBhZGRyZXNzCi0JICAgIHAgPSBWR18oc3ByaW50ZikoYnVmLCAiJSMwMTZseCIsIGJiLT5vZmZzZXQpOworICAgICAgICAgIHAgPSBWR18oc3ByaW50ZikoYnVmLCAiJSMwMTZseCIsIChVV29yZCliYi0+b2Zmc2V0KTsKIAogCVZHXyhzcHJpbnRmKShidWYgKyBwLCAiJXMiLCAKIAkJICAgICAoYmItPnNlY3Rfa2luZCA9PSBWZ19TZWN0RGF0YSkgPyAiIFtEYXRhXSIgOgpAQCAtNTcyLDcgKzU3Miw3IEBACiAJICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAiU3ltYm9sIG1hdGNoOiBmb3VuZCBydW50aW1lX3Jlc29sdmU6IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgJXMgKyUjbHg9JSNseFxuIiwKIAkJICAgICAgYmItPm9iai0+bmFtZSArIGJiLT5vYmotPmxhc3Rfc2xhc2hfcG9zLAotCQkgICAgICBiYi0+b2Zmc2V0LCBiYl9hZGRyKGJiKSk7CisgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKWJiLT5vZmZzZXQsIGJiX2FkZHIoYmIpKTsKICAgICAgIH0KIAogICAgICAgZm4tPmlzX21hbGxvYyAgPSAoVkdfKHN0cmNtcCkoZm4tPm5hbWUsICJtYWxsb2MiKT09MCk7CkBAIC02NjMsMTIgKzY2MywxMiBAQAogc3RhdGljIHZvaWQgcmVzaXplX2ZuX2FycmF5KHZvaWQpCiB7CiAgICAgVUludCogbmV3X2FycmF5OwotICAgIEludCBpLCBuZXdzaXplOworICAgIEludCBpOwogCi0gICAgbmV3c2l6ZSA9IGN1cnJlbnRfZm5fYWN0aXZlLnNpemU7CisgICAgVUludCBuZXdzaXplID0gY3VycmVudF9mbl9hY3RpdmUuc2l6ZTsKICAgICB3aGlsZSAobmV3c2l6ZSA8PSBDTEdfKHN0YXQpLmRpc3RpbmN0X2ZucykgbmV3c2l6ZSAqPTI7CiAKLSAgICBDTEdfREVCVUcoMCwgIlJlc2l6ZSBmbl9hY3RpdmVfYXJyYXk6ICVkID0+ICVkXG4iLAorICAgIENMR19ERUJVRygwLCAiUmVzaXplIGZuX2FjdGl2ZV9hcnJheTogJXUgPT4gJXVcbiIsCiAJICAgICBjdXJyZW50X2ZuX2FjdGl2ZS5zaXplLCBuZXdzaXplKTsKIAogICAgIG5ld19hcnJheSA9IChVSW50KikgQ0xHX01BTExPQygiY2wuZm4ucmZhLjEiLCBuZXdzaXplICogc2l6ZW9mKFVJbnQpKTsKZGlmZiAtLWdpdCBhL2NhbGxncmluZC9nbG9iYWwuaCBiL2NhbGxncmluZC9nbG9iYWwuaAppbmRleCA2ZjMzMDUwLi5iZjUxMWY3IDEwMDY0NAotLS0gYS9jYWxsZ3JpbmQvZ2xvYmFsLmgKKysrIGIvY2FsbGdyaW5kL2dsb2JhbC5oCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE0IEpvc2VmIFdlaWRlbmRvcmZlcgorICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgSm9zZWYgV2VpZGVuZG9yZmVyCiAgICAgICBqb3NlZi53ZWlkZW5kb3JmZXJAZ214LmRlCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NhbGxncmluZC9qdW1wcy5jIGIvY2FsbGdyaW5kL2p1bXBzLmMKaW5kZXggYWU3ODdiMi4uZGJkNDUzMyAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL2p1bXBzLmMKKysrIGIvY2FsbGdyaW5kL2p1bXBzLmMKQEAgLTYsNyArNiw3IEBACiAvKgogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2FsbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNhbGwgdHJhY2luZy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1LCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0xMTksNyArMTE5LDcgQEAKICAgICBWR18oZnJlZSkoY3VycmVudF9qY2NzLnRhYmxlKTsKIAogCi0gICAgQ0xHX0RFQlVHKDAsICJSZXNpemUgSkNDIEhhc2g6ICVkID0+ICVkIChlbnRyaWVzICVkLCBjb25mbGljdHMgJWQvJWQpXG4iLAorICAgIENMR19ERUJVRygwLCAiUmVzaXplIEpDQyBIYXNoOiAldSA9PiAlZCAoZW50cmllcyAldSwgY29uZmxpY3RzICVkLyVkKVxuIiwKIAkgICAgIGN1cnJlbnRfamNjcy5zaXplLCBuZXdfc2l6ZSwKIAkgICAgIGN1cnJlbnRfamNjcy5lbnRyaWVzLCBjb25mbGljdHMxLCBjb25mbGljdHMyKTsKIApAQCAtMTg4LDcgKzE4OCw3IEBACiAgICAgakNDKiBqY2M7CiAgICAgVUludCBpZHg7CiAKLSAgICBDTEdfREVCVUcoNSwgIisgZ2V0X2pjYyhiYmNjICVwLyVkID0+IGJiY2MgJXApXG4iLAorICAgIENMR19ERUJVRyg1LCAiKyBnZXRfamNjKGJiY2MgJXAvJXUgPT4gYmJjYyAlcClcbiIsCiAJCWZyb20sIGptcCwgdG8pOwogCiAgICAgLyogZmlyc3QgY2hlY2sgbGFzdCByZWNlbnRseSB1c2VkIEpDQyAqLwpkaWZmIC0tZ2l0IGEvY2FsbGdyaW5kL21haW4uYyBiL2NhbGxncmluZC9tYWluLmMKaW5kZXggNWU1MDFiYy4uMmE5ZDQ0ZSAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL21haW4uYworKysgYi9jYWxsZ3JpbmQvbWFpbi5jCkBAIC04LDEwICs4LDEwIEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBDYWxsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2FsbCBncmFwaAogICAgcHJvZmlsaW5nIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUsIEpvc2VmIFdlaWRlbmRvcmZlciAoSm9zZWYuV2VpZGVuZG9yZmVyQGdteC5kZSkKIAogICAgVGhpcyB0b29sIGlzIGRlcml2ZWQgZnJvbSBhbmQgY29udGFpbnMgY29kZSBmcm9tIENhY2hlZ3JpbmQKLSAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUgKG5qbkB2YWxncmluZC5vcmcpCisgICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlIChuam5AdmFsZ3JpbmQub3JnKQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTQwLDcgKzE0MCw3IEBACiAgICAgSW50IGZ1bGxPZmZzZXRfQmM7CiAgICAgVUxvbmcqIGNvc3RfQmM7CiAKLSAgICBDTEdfREVCVUcoNiwgImxvZ19jb25kX2JyYW5jaDogIElyICUjbHgsIHRha2VuICVsdVxuIiwKKyAgICBDTEdfREVCVUcoNiwgImxvZ19jb25kX2JyYW5jaDogIElyICUjbHgsIHRha2VuICVsZFxuIiwKICAgICAgICAgICAgICAgQ0xHXyhiYl9iYXNlKSArIGlpLT5pbnN0cl9vZmZzZXQsIHRha2VuKTsKIAogICAgIG1pc3MgPSAxICYgZG9fY29uZF9icmFuY2hfcHJlZGljdChDTEdfKGJiX2Jhc2UpICsgaWktPmluc3RyX29mZnNldCwgdGFrZW4pOwpAQCAtMzMxLDIzICszMzEsMjMgQEAKIHsKICAgIHN3aXRjaCAoZXYtPnRhZykgewogICAgICAgY2FzZSBFdl9JcjoKLQkgVkdfKHByaW50ZikoIklyIChJbnN0ckluZm8gJXApIGF0ICslZFxuIiwKKwkgVkdfKHByaW50ZikoIklyIChJbnN0ckluZm8gJXApIGF0ICsldVxuIiwKIAkJICAgICBldi0+aW5vZGUsIGV2LT5pbm9kZS0+aW5zdHJfb2Zmc2V0KTsKIAkgYnJlYWs7CiAgICAgICBjYXNlIEV2X0RyOgotCSBWR18ocHJpbnRmKSgiRHIgKEluc3RySW5mbyAlcCkgYXQgKyVkICVkIEVBPSIsCisJIFZHXyhwcmludGYpKCJEciAoSW5zdHJJbmZvICVwKSBhdCArJXUgJWQgRUE9IiwKIAkJICAgICBldi0+aW5vZGUsIGV2LT5pbm9kZS0+aW5zdHJfb2Zmc2V0LCBldi0+RXYuRHIuc3pCKTsKIAkgcHBJUkV4cHIoZXYtPkV2LkRyLmVhKTsKIAkgVkdfKHByaW50ZikoIlxuIik7CiAJIGJyZWFrOwogICAgICAgY2FzZSBFdl9EdzoKLQkgVkdfKHByaW50ZikoIkR3IChJbnN0ckluZm8gJXApIGF0ICslZCAlZCBFQT0iLAorCSBWR18ocHJpbnRmKSgiRHcgKEluc3RySW5mbyAlcCkgYXQgKyV1ICVkIEVBPSIsCiAJCSAgICAgZXYtPmlub2RlLCBldi0+aW5vZGUtPmluc3RyX29mZnNldCwgZXYtPkV2LkR3LnN6Qik7CiAJIHBwSVJFeHByKGV2LT5Fdi5Edy5lYSk7CiAJIFZHXyhwcmludGYpKCJcbiIpOwogCSBicmVhazsKICAgICAgIGNhc2UgRXZfRG06Ci0JIFZHXyhwcmludGYpKCJEbSAoSW5zdHJJbmZvICVwKSBhdCArJWQgJWQgRUE9IiwKKwkgVkdfKHByaW50ZikoIkRtIChJbnN0ckluZm8gJXApIGF0ICsldSAlZCBFQT0iLAogCQkgICAgIGV2LT5pbm9kZSwgZXYtPmlub2RlLT5pbnN0cl9vZmZzZXQsIGV2LT5Fdi5EbS5zekIpOwogCSBwcElSRXhwcihldi0+RXYuRG0uZWEpOwogCSBWR18ocHJpbnRmKSgiXG4iKTsKQEAgLTEzNTMsNyArMTM1Myw3IEBACiAgICBpZiAoY0p1bXBzPjApIHsKICAgICAgICBDTEdfREVCVUcoMywgIiAgICAgICAgICAgICAgICAgICAgIFsgIik7CiAgICAgICAgZm9yIChpPTA7aTxjSnVtcHM7aSsrKQotCSAgIENMR19ERUJVRygzLCAiJWQgIiwgY2xncy5iYi0+am1wW2ldLmluc3RyKTsKKwkgICBDTEdfREVCVUcoMywgIiV1ICIsIGNsZ3MuYmItPmptcFtpXS5pbnN0cik7CiAgICAgICAgQ0xHX0RFQlVHKDMsICJdLCBsYXN0IGludmVydGVkOiAlcyBcbiIsCiAJCSBjbGdzLmJiLT5jam1wX2ludmVydGVkID8gInllcyI6Im5vIik7CiAgICB9CkBAIC0xODIzLDcgKzE4MjMsNyBAQAogCQlDTEdfKHN0YXQpLmRpc3RpbmN0X2NvbnRleHRzKTsKICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIkRpc3RpbmN0IEJCczogICAgICVkXG4iLAogCQlDTEdfKHN0YXQpLmRpc3RpbmN0X2Jicyk7Ci0gICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJDb3N0IGVudHJpZXM6ICAgICAlZCAoQ2h1bmtzICVkKVxuIiwKKyAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIkNvc3QgZW50cmllczogICAgICV1IChDaHVua3MgJXUpXG4iLAogCQlDTEdfKGNvc3RhcnJheV9lbnRyaWVzKSwgQ0xHXyhjb3N0YXJyYXlfY2h1bmtzKSk7CiAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJEaXN0aW5jdCBCQkNDczogICAlZFxuIiwKIAkJQ0xHXyhzdGF0KS5kaXN0aW5jdF9iYmNjcyk7CkBAIC0yMDM4LDcgKzIwMzgsNyBAQAogICAgIFZHXyhkZXRhaWxzX25hbWUpICAgICAgICAgICAgKCJDYWxsZ3JpbmQiKTsKICAgICBWR18oZGV0YWlsc192ZXJzaW9uKSAgICAgICAgIChOVUxMKTsKICAgICBWR18oZGV0YWlsc19kZXNjcmlwdGlvbikgICAgICgiYSBjYWxsLWdyYXBoIGdlbmVyYXRpbmcgY2FjaGUgcHJvZmlsZXIiKTsKLSAgICBWR18oZGV0YWlsc19jb3B5cmlnaHRfYXV0aG9yKSgiQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMsIGFuZCBHTlUgR1BMJ2QsICIKKyAgICBWR18oZGV0YWlsc19jb3B5cmlnaHRfYXV0aG9yKSgiQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUsIGFuZCBHTlUgR1BMJ2QsICIKIAkJCQkgICJieSBKb3NlZiBXZWlkZW5kb3JmZXIgZXQgYWwuIik7CiAgICAgVkdfKGRldGFpbHNfYnVnX3JlcG9ydHNfdG8pICAoVkdfQlVHU19UTyk7CiAgICAgVkdfKGRldGFpbHNfYXZnX3RyYW5zbGF0aW9uX3NpemVCKSAoIDUwMCApOwpkaWZmIC0tZ2l0IGEvY2FsbGdyaW5kL3NpbS5jIGIvY2FsbGdyaW5kL3NpbS5jCmluZGV4IDc0NzhhMzIuLjhmZWRiZWEgMTAwNjQ0Ci0tLSBhL2NhbGxncmluZC9zaW0uYworKysgYi9jYWxsZ3JpbmQvc2ltLmMKQEAgLTcsMTAgKzcsMTAgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENhbGxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBjYWxsIGdyYXBoCiAgICBwcm9maWxpbmcgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMy0yMDEzLCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCisgICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNSwgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQogCiAgICBUaGlzIHRvb2wgaXMgZGVyaXZlZCBmcm9tIGFuZCBjb250YWlucyBjb2RlIGZyb20gQ2FjaGVncmluZAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZSAobmpuQHZhbGdyaW5kLm9yZykKKyAgIENvcHlyaWdodCAoQykgMjAwMi0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUgKG5qbkB2YWxncmluZC5vcmcpCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0zMDUsNyArMzA1LDcgQEAKIAlyZXR1cm4gKChyZXMxID09IE1pc3MpIHx8IChyZXMyID09IE1pc3MpKSA/IE1pc3MgOiBIaXQ7CiAKICAgIH0gZWxzZSB7Ci0gICAgICAgVkdfKHByaW50ZikoImFkZHI6ICVseCAgc2l6ZTogJXUgIGJsb2NrczogJWxkICVsZCIsCisgICAgICAgVkdfKHByaW50ZikoImFkZHI6ICVseCAgc2l6ZTogJXUgIGJsb2NrczogJWx1ICVsdSIsCiAJCSAgIGEsIHNpemUsIGJsb2NrMSwgYmxvY2syKTsKICAgICAgICBWR18odG9vbF9wYW5pYykoIml0ZW0gc3RyYWRkbGVzIG1vcmUgdGhhbiB0d28gY2FjaGUgc2V0cyIpOwogICAgfQpAQCAtNDEzLDcgKzQxMyw3IEBACiAJcmV0dXJuICgocmVzMSA9PSBNaXNzKSB8fCAocmVzMiA9PSBNaXNzKSkgPyBNaXNzIDogSGl0OwogCiAgICB9IGVsc2UgewotICAgICAgIFZHXyhwcmludGYpKCJhZGRyOiAlbHggIHNpemU6ICV1ICBzZXRzOiAlZCAlZCIsIGEsIHNpemUsIHNldDEsIHNldDIpOworICAgICAgIFZHXyhwcmludGYpKCJhZGRyOiAlbHggIHNpemU6ICV1ICBzZXRzOiAldSAldSIsIGEsIHNpemUsIHNldDEsIHNldDIpOwogICAgICAgIFZHXyh0b29sX3BhbmljKSgiaXRlbSBzdHJhZGRsZXMgbW9yZSB0aGFuIHR3byBjYWNoZSBzZXRzIik7CiAgICB9CiAgICByZXR1cm4gSGl0OwpAQCAtNjY2LDcgKzY2Niw3IEBACiAgICAgQ0xHX0RFQlVHKDYsICJDb25maWcgJXM6XG4iLCBjLT5kZXNjX2xpbmUpOwogICAgIGZvcihpPTA7aTxjLT5saW5lX3NpemU7aSsrKSB7CiAJQ0xHX0RFQlVHKDYsICIgWyUyZF06IHN0YXJ0IG1hc2sgJTh4LCBlbmQgbWFzayAlOHhcbiIsCi0JCSAgaSwgYy0+bGluZV9zdGFydF9tYXNrW2ldLCBjLT5saW5lX2VuZF9tYXNrW2ldKTsKKwkJICBpLCAoVUludCljLT5saW5lX3N0YXJ0X21hc2tbaV0sIChVSW50KWMtPmxpbmVfZW5kX21hc2tbaV0pOwogICAgIH0KICAgICAKICAgICAvKiBXZSB1c2UgbG93ZXIgdGFnIGJpdHMgYXMgb2Zmc2V0IHBvaW50ZXJzIHRvIGNhY2hlIHVzZSBpbmZvLgpAQCAtNjk0LDcgKzY5NCw3IEBACiAgICBVV29yZCAqc2V0LCB0bXBfdGFnOyAJCQkJCQkgICAgXAogICAgVUludCB1c2VfbWFzazsJCQkJCQkJICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBDTEdfREVCVUcoNiwiJXMuQWNjKEFkZHIgJSNseCwgc2l6ZSAlZCk6IFNldHMgWyVkLyVkXVxuIiwgICAgICAgICAgICAgICAgICBcCisgICBDTEdfREVCVUcoNiwiJXMuQWNjKEFkZHIgJSNseCwgc2l6ZSAlZCk6IFNldHMgWyV1LyV1XVxuIiwgICAgICAgICAgICAgICAgXAogCSAgICBMLm5hbWUsIGEsIHNpemUsIHNldDEsIHNldDIpOwkJCQkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIC8qIEZpcnN0IGNhc2U6IHdvcmQgZW50aXJlbHkgd2l0aGluIGxpbmUuICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC03MTEsNyArNzExLDcgQEAKICAgICAgICAgaWR4ID0gKHNldDEgKiBMLmFzc29jKSArIChzZXRbMF0gJiB+TC50YWdfbWFzayk7ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEwudXNlW2lkeF0uY291bnQgKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBMLnVzZVtpZHhdLm1hc2sgfD0gdXNlX21hc2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQlDTEdfREVCVUcoNiwiIEhpdDAgW2lkeCAlZF0gKGxpbmUgJSNseCBmcm9tICUjbHgpOiAleCA9PiAlMDh4LCBjb3VudCAlZFxuIixcCisJQ0xHX0RFQlVHKDYsIiBIaXQwIFtpZHggJWRdIChsaW5lICUjbHggZnJvbSAlI2x4KTogJXggPT4gJTA4eCwgY291bnQgJXVcbiIsXAogCQkgaWR4LCBMLmxvYWRlZFtpZHhdLm1lbWxpbmUsICBMLmxvYWRlZFtpZHhdLmlhZGRyLCAgICAgICAgICBcCiAJCSB1c2VfbWFzaywgTC51c2VbaWR4XS5tYXNrLCBMLnVzZVtpZHhdLmNvdW50KTsgICAgICAgICAgICAgIFwKIAlyZXR1cm4gTDFfSGl0OwkJCQkJCQkgICAgXApAQCAtNzI4LDcgKzcyOCw3IEBACiAgICAgICAgICAgICBpZHggPSAoc2V0MSAqIEwuYXNzb2MpICsgKHRtcF90YWcgJiB+TC50YWdfbWFzayk7ICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgTC51c2VbaWR4XS5jb3VudCArKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIEwudXNlW2lkeF0ubWFzayB8PSB1c2VfbWFzazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JQ0xHX0RFQlVHKDYsIiBIaXQlZCBbaWR4ICVkXSAobGluZSAlI2x4IGZyb20gJSNseCk6ICV4ID0+ICUwOHgsIGNvdW50ICVkXG4iLFwKKwlDTEdfREVCVUcoNiwiIEhpdCVkIFtpZHggJWRdIChsaW5lICUjbHggZnJvbSAlI2x4KTogJXggPT4gJTA4eCwgY291bnQgJXVcbiIsXAogCQkgaSwgaWR4LCBMLmxvYWRlZFtpZHhdLm1lbWxpbmUsICBMLmxvYWRlZFtpZHhdLmlhZGRyLCAgICAgICBcCiAJCSB1c2VfbWFzaywgTC51c2VbaWR4XS5tYXNrLCBMLnVzZVtpZHhdLmNvdW50KTsgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHJldHVybiBMMV9IaXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC03NTUsNyArNzU1LDcgQEAKICAgICAgICAgIGlkeCA9IChzZXQxICogTC5hc3NvYykgKyAoc2V0WzBdICYgfkwudGFnX21hc2spOyAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBMLnVzZVtpZHhdLmNvdW50ICsrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgTC51c2VbaWR4XS5tYXNrIHw9IHVzZV9tYXNrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQlDTEdfREVCVUcoNiwiIEhpdDAgW2lkeCAlZF0gKGxpbmUgJSNseCBmcm9tICUjbHgpOiAleCA9PiAlMDh4LCBjb3VudCAlZFxuIixcCisJQ0xHX0RFQlVHKDYsIiBIaXQwIFtpZHggJWRdIChsaW5lICUjbHggZnJvbSAlI2x4KTogJXggPT4gJTA4eCwgY291bnQgJXVcbiIsXAogCQkgaWR4LCBMLmxvYWRlZFtpZHhdLm1lbWxpbmUsICBMLmxvYWRlZFtpZHhdLmlhZGRyLCAgICAgICAgICBcCiAJCSB1c2VfbWFzaywgTC51c2VbaWR4XS5tYXNrLCBMLnVzZVtpZHhdLmNvdW50KTsgICAgICAgICAgICAgIFwKICAgICAgICAgIGdvdG8gYmxvY2syOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC03NzAsNyArNzcwLDcgQEAKICAgICAgICAgICAgIGlkeCA9IChzZXQxICogTC5hc3NvYykgKyAodG1wX3RhZyAmIH5MLnRhZ19tYXNrKTsgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBMLnVzZVtpZHhdLmNvdW50ICsrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgTC51c2VbaWR4XS5tYXNrIHw9IHVzZV9tYXNrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQlDTEdfREVCVUcoNiwiIEhpdCVkIFtpZHggJWRdIChsaW5lICUjbHggZnJvbSAlI2x4KTogJXggPT4gJTA4eCwgY291bnQgJWRcbiIsXAorCUNMR19ERUJVRyg2LCIgSGl0JWQgW2lkeCAlZF0gKGxpbmUgJSNseCBmcm9tICUjbHgpOiAleCA9PiAlMDh4LCBjb3VudCAldVxuIixcCiAJCSBpLCBpZHgsIEwubG9hZGVkW2lkeF0ubWVtbGluZSwgIEwubG9hZGVkW2lkeF0uaWFkZHIsICAgICAgIFwKIAkJIHVzZV9tYXNrLCBMLnVzZVtpZHhdLm1hc2ssIEwudXNlW2lkeF0uY291bnQpOyAgICAgICAgICAgICAgXAogICAgICAgICAgICAgZ290byBibG9jazI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTc5Miw3ICs3OTIsNyBAQAogICAgICAgICAgaWR4ID0gKHNldDIgKiBMLmFzc29jKSArIChzZXRbMF0gJiB+TC50YWdfbWFzayk7ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIEwudXNlW2lkeF0uY291bnQgKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBMLnVzZVtpZHhdLm1hc2sgfD0gdXNlX21hc2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCUNMR19ERUJVRyg2LCIgSGl0MCBbaWR4ICVkXSAobGluZSAlI2x4IGZyb20gJSNseCk6ICV4ID0+ICUwOHgsIGNvdW50ICVkXG4iLFwKKwlDTEdfREVCVUcoNiwiIEhpdDAgW2lkeCAlZF0gKGxpbmUgJSNseCBmcm9tICUjbHgpOiAleCA9PiAlMDh4LCBjb3VudCAldVxuIixcCiAJCSBpZHgsIEwubG9hZGVkW2lkeF0ubWVtbGluZSwgIEwubG9hZGVkW2lkeF0uaWFkZHIsICAgICAgICAgIFwKIAkJIHVzZV9tYXNrLCBMLnVzZVtpZHhdLm1hc2ssIEwudXNlW2lkeF0uY291bnQpOyAgICAgICAgICAgICAgXAogICAgICAgICAgcmV0dXJuIG1pc3MxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTgwNyw3ICs4MDcsNyBAQAogICAgICAgICAgICAgaWR4ID0gKHNldDIgKiBMLmFzc29jKSArICh0bXBfdGFnICYgfkwudGFnX21hc2spOyAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIEwudXNlW2lkeF0uY291bnQgKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBMLnVzZVtpZHhdLm1hc2sgfD0gdXNlX21hc2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCUNMR19ERUJVRyg2LCIgSGl0JWQgW2lkeCAlZF0gKGxpbmUgJSNseCBmcm9tICUjbHgpOiAleCA9PiAlMDh4LCBjb3VudCAlZFxuIixcCisJQ0xHX0RFQlVHKDYsIiBIaXQlZCBbaWR4ICVkXSAobGluZSAlI2x4IGZyb20gJSNseCk6ICV4ID0+ICUwOHgsIGNvdW50ICV1XG4iLFwKIAkJIGksIGlkeCwgTC5sb2FkZWRbaWR4XS5tZW1saW5lLCAgTC5sb2FkZWRbaWR4XS5pYWRkciwgICAgICAgXAogCQkgdXNlX21hc2ssIEwudXNlW2lkeF0ubWFzaywgTC51c2VbaWR4XS5jb3VudCk7ICAgICAgICAgICAgICBcCiAgICAgICAgICAgICByZXR1cm4gbWlzczE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtODI0LDcgKzgyNCw3IEBACiAgICAgICByZXR1cm4gKG1pc3MxPT1NZW1BY2Nlc3MgfHwgbWlzczI9PU1lbUFjY2VzcykgPyBNZW1BY2Nlc3M6TExfSGl0OyAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgVkdfKHByaW50ZikoImFkZHI6ICUjbHggIHNpemU6ICV1ICBzZXRzOiAlZCAlZCIsIGEsIHNpemUsIHNldDEsIHNldDIpOyBcCisgICAgICAgVkdfKHByaW50ZikoImFkZHI6ICUjbHggIHNpemU6ICV1ICBzZXRzOiAldSAldSIsIGEsIHNpemUsIHNldDEsIHNldDIpOyBcCiAgICAgICAgVkdfKHRvb2xfcGFuaWMpKCJpdGVtIHN0cmFkZGxlcyBtb3JlIHRoYW4gdHdvIGNhY2hlIHNldHMiKTsgICAgICAgICAgXAogICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC04NTgsNyArODU4LDcgQEAKICAgQ0xHX0RFQlVHKDIsICIgTEwubWlzcyBbJWRdOiBhdCAlI2x4IGFjY2Vzc2luZyBtZW1saW5lICUjbHhcbiIsCiAgICAgICAgICAgIGlkeCwgQ0xHXyhiYl9iYXNlKSArIGN1cnJlbnRfaWktPmluc3RyX29mZnNldCwgbWVtbGluZSk7CiAgIGlmICh1c2UtPmNvdW50PjApIHsKLSAgICBDTEdfREVCVUcoMiwgIiAgIG9sZDogdXNlZCAlZCwgbG9zcyBiaXRzICVkICglMDh4KSBbbGluZSAlI2x4IGZyb20gJSNseF1cbiIsCisgICAgQ0xHX0RFQlVHKDIsICIgICBvbGQ6IHVzZWQgJXUsIGxvc3MgYml0cyAlZCAoJTA4eCkgW2xpbmUgJSNseCBmcm9tICUjbHhdXG4iLAogCSAgICAgdXNlLT5jb3VudCwgaSwgdXNlLT5tYXNrLCBsb2FkZWQtPm1lbWxpbmUsIGxvYWRlZC0+aWFkZHIpOwogICAgIENMR19ERUJVRygyLCAiICAgY29sbGVjdDogJWQsIHVzZV9iYXNlICVwXG4iLAogCSAgICAgQ0xHXyhjdXJyZW50X3N0YXRlKS5jb2xsZWN0LCBsb2FkZWQtPnVzZV9iYXNlKTsKQEAgLTg4OSwxMyArODg5LDEzIEBACiAgICBpbnQgaSwgaiwgaWR4OwogICAgVVdvcmQgdG1wX3RhZzsKICAgIAotICAgQ0xHX0RFQlVHKDYsIkxMLkFjYyhNZW1saW5lICUjbHgpOiBTZXQgJWRcbiIsIG1lbWxpbmUsIHNldE5vKTsKKyAgIENMR19ERUJVRyg2LCJMTC5BY2MoTWVtbGluZSAlI2x4KTogU2V0ICV1XG4iLCBtZW1saW5lLCBzZXRObyk7CiAKICAgIGlmICh0YWcgPT0gKHNldFswXSAmIExMLnRhZ19tYXNrKSkgewogICAgICBpZHggPSAoc2V0Tm8gKiBMTC5hc3NvYykgKyAoc2V0WzBdICYgfkxMLnRhZ19tYXNrKTsKICAgICAgbDFfbG9hZGVkLT5kZXBfdXNlID0gJihMTC51c2VbaWR4XSk7CiAKLSAgICAgQ0xHX0RFQlVHKDYsIiBIaXQwIFtpZHggJWRdIChsaW5lICUjbHggZnJvbSAlI2x4KTogPT4gJTA4eCwgY291bnQgJWRcbiIsCisgICAgIENMR19ERUJVRyg2LCIgSGl0MCBbaWR4ICVkXSAobGluZSAlI2x4IGZyb20gJSNseCk6ID0+ICUwOHgsIGNvdW50ICV1XG4iLAogCQkgaWR4LCBMTC5sb2FkZWRbaWR4XS5tZW1saW5lLCAgTEwubG9hZGVkW2lkeF0uaWFkZHIsCiAJCSBMTC51c2VbaWR4XS5tYXNrLCBMTC51c2VbaWR4XS5jb3VudCk7CiAgICAgIHJldHVybiBMTF9IaXQ7CkBAIC05MTAsNyArOTEwLDcgQEAKICAgICAgICBpZHggPSAoc2V0Tm8gKiBMTC5hc3NvYykgKyAodG1wX3RhZyAmIH5MTC50YWdfbWFzayk7CiAgICAgICAgbDFfbG9hZGVkLT5kZXBfdXNlID0gJihMTC51c2VbaWR4XSk7CiAKLQlDTEdfREVCVUcoNiwiIEhpdCVkIFtpZHggJWRdIChsaW5lICUjbHggZnJvbSAlI2x4KTogPT4gJTA4eCwgY291bnQgJWRcbiIsCisJQ0xHX0RFQlVHKDYsIiBIaXQlZCBbaWR4ICVkXSAobGluZSAlI2x4IGZyb20gJSNseCk6ID0+ICUwOHgsIGNvdW50ICV1XG4iLAogCQkgaSwgaWR4LCBMTC5sb2FkZWRbaWR4XS5tZW1saW5lLCAgTEwubG9hZGVkW2lkeF0uaWFkZHIsCiAJCSBMTC51c2VbaWR4XS5tYXNrLCBMTC51c2VbaWR4XS5jb3VudCk7CiAJcmV0dXJuIExMX0hpdDsKQEAgLTk0Niw3ICs5NDYsNyBAQAogICBDTEdfREVCVUcoMiwgIiAlcy5taXNzIFslZF06IGF0ICUjbHggYWNjZXNzaW5nIG1lbWxpbmUgJSNseCAobWFzayAlMDh4KVxuIiwgXAogICAgICAgICAgICBjYWNoZS0+bmFtZSwgaWR4LCBDTEdfKGJiX2Jhc2UpICsgY3VycmVudF9paS0+aW5zdHJfb2Zmc2V0LCBtZW1saW5lLCBtYXNrKTsgXAogICBpZiAodXNlLT5jb3VudD4wKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIENMR19ERUJVRygyLCAiICAgb2xkOiB1c2VkICVkLCBsb3NzIGJpdHMgJWQgKCUwOHgpIFtsaW5lICUjbHggZnJvbSAlI2x4XVxuIixcCisgICAgQ0xHX0RFQlVHKDIsICIgICBvbGQ6IHVzZWQgJXUsIGxvc3MgYml0cyAlZCAoJTA4eCkgW2xpbmUgJSNseCBmcm9tICUjbHhdXG4iLFwKIAkgICAgIHVzZS0+Y291bnQsIGMsIHVzZS0+bWFzaywgbG9hZGVkLT5tZW1saW5lLCBsb2FkZWQtPmlhZGRyKTsJXAogICAgIENMR19ERUJVRygyLCAiICAgY29sbGVjdDogJWQsIHVzZV9iYXNlICVwXG4iLCBcCiAJICAgICBDTEdfKGN1cnJlbnRfc3RhdGUpLmNvbGxlY3QsIGxvYWRlZC0+dXNlX2Jhc2UpOwkgICAgIFwKQEAgLTExNjUsNyArMTE2NSw3IEBACiAgICAgSXJSZXMgPSAoKnNpbXVsYXRvci5JMV9SZWFkKShDTEdfKGJiX2Jhc2UpICsgaWktPmluc3RyX29mZnNldCwgaWktPmluc3RyX3NpemUpOwogICAgIERyUmVzID0gKCpzaW11bGF0b3IuRDFfUmVhZCkoZGF0YV9hZGRyLCBkYXRhX3NpemUpOwogCi0gICAgQ0xHX0RFQlVHKDYsICJsb2dfMUkxRHI6IElyICAlI2x4LyV1ID0+ICVzLCBEciAgJSNseC8lbHUgPT4gJXNcbiIsCisgICAgQ0xHX0RFQlVHKDYsICJsb2dfMUkxRHI6IElyICAlI2x4LyV1ID0+ICVzLCBEciAgJSNseC8lbGQgPT4gJXNcbiIsCiAgICAgICAgICAgICAgIENMR18oYmJfYmFzZSkgKyBpaS0+aW5zdHJfb2Zmc2V0LCBpaS0+aW5zdHJfc2l6ZSwgY2FjaGVSZXMoSXJSZXMpLAogCSAgICAgIGRhdGFfYWRkciwgZGF0YV9zaXplLCBjYWNoZVJlcyhEclJlcykpOwogCkBAIC0xMjAwLDcgKzEyMDAsNyBAQAogICAgIGN1cnJlbnRfaWkgPSBpaTsKICAgICBEclJlcyA9ICgqc2ltdWxhdG9yLkQxX1JlYWQpKGRhdGFfYWRkciwgZGF0YV9zaXplKTsKIAotICAgIENMR19ERUJVRyg2LCAibG9nXzBJMURyOiBEciAgJSNseC8lbHUgPT4gJXNcbiIsCisgICAgQ0xHX0RFQlVHKDYsICJsb2dfMEkxRHI6IERyICAlI2x4LyVsZCA9PiAlc1xuIiwKIAkgICAgICBkYXRhX2FkZHIsIGRhdGFfc2l6ZSwgY2FjaGVSZXMoRHJSZXMpKTsKIAogICAgIGlmIChDTEdfKGN1cnJlbnRfc3RhdGUpLmNvbGxlY3QpIHsKQEAgLTEyMjgsNyArMTIyOCw3IEBACiAgICAgSXJSZXMgPSAoKnNpbXVsYXRvci5JMV9SZWFkKShDTEdfKGJiX2Jhc2UpICsgaWktPmluc3RyX29mZnNldCwgaWktPmluc3RyX3NpemUpOwogICAgIER3UmVzID0gKCpzaW11bGF0b3IuRDFfV3JpdGUpKGRhdGFfYWRkciwgZGF0YV9zaXplKTsKIAotICAgIENMR19ERUJVRyg2LCAibG9nXzFJMUR3OiBJciAgJSNseC8ldSA9PiAlcywgRHcgICUjbHgvJWx1ID0+ICVzXG4iLAorICAgIENMR19ERUJVRyg2LCAibG9nXzFJMUR3OiBJciAgJSNseC8ldSA9PiAlcywgRHcgICUjbHgvJWxkID0+ICVzXG4iLAogICAgICAgICAgICAgICBDTEdfKGJiX2Jhc2UpICsgaWktPmluc3RyX29mZnNldCwgaWktPmluc3RyX3NpemUsIGNhY2hlUmVzKElyUmVzKSwKIAkgICAgICBkYXRhX2FkZHIsIGRhdGFfc2l6ZSwgY2FjaGVSZXMoRHdSZXMpKTsKIApAQCAtMTI2MCw3ICsxMjYwLDcgQEAKICAgICBjdXJyZW50X2lpID0gaWk7CiAgICAgRHdSZXMgPSAoKnNpbXVsYXRvci5EMV9Xcml0ZSkoZGF0YV9hZGRyLCBkYXRhX3NpemUpOwogCi0gICAgQ0xHX0RFQlVHKDYsICJsb2dfMEkxRHc6IER3ICAlI2x4LyVsdSA9PiAlc1xuIiwKKyAgICBDTEdfREVCVUcoNiwgImxvZ18wSTFEdzogRHcgICUjbHgvJWxkID0+ICVzXG4iLAogCSAgICAgIGRhdGFfYWRkciwgZGF0YV9zaXplLCBjYWNoZVJlcyhEd1JlcykpOwogCiAgICAgaWYgKENMR18oY3VycmVudF9zdGF0ZSkuY29sbGVjdCkgewpkaWZmIC0tZ2l0IGEvY2FsbGdyaW5kL3RocmVhZHMuYyBiL2NhbGxncmluZC90aHJlYWRzLmMKaW5kZXggN2RjYTc3MS4uMmEzOGZjMSAxMDA2NDQKLS0tIGEvY2FsbGdyaW5kL3RocmVhZHMuYworKysgYi9jYWxsZ3JpbmQvdGhyZWFkcy5jCkBAIC02LDcgKzYsNyBAQAogLyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENhbGxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBjYWxsIHRyYWNpbmcuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBKb3NlZiBXZWlkZW5kb3JmZXIgKEpvc2VmLldlaWRlbmRvcmZlckBnbXguZGUpCisgICBDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSwgSm9zZWYgV2VpZGVuZG9yZmVyIChKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlKQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTMxLDcgKzEzMSw3IEBACiB7CiAgIGlmICh0aWQgPT0gQ0xHXyhjdXJyZW50X3RpZCkpIHJldHVybjsKIAotICBDTEdfREVCVUcoMCwgIj4+IHRocmVhZCAlZCAod2FzICVkKVxuIiwgdGlkLCBDTEdfKGN1cnJlbnRfdGlkKSk7CisgIENMR19ERUJVRygwLCAiPj4gdGhyZWFkICV1ICh3YXMgJXUpXG4iLCB0aWQsIENMR18oY3VycmVudF90aWQpKTsKIAogICBpZiAoQ0xHXyhjdXJyZW50X3RpZCkgIT0gVkdfSU5WQUxJRF9USFJFQURJRCkgeyAgICAKICAgICAvKiBzYXZlIHRocmVhZCBzdGF0ZSAqLwpAQCAtMjAwLDcgKzIwMCw3IEBACiB7CiAgICAgZXhlY19zdGF0ZSAqZXM7CiAKLSAgICBDTEdfREVCVUcoMCwgIj4+IHByZV9zaWduYWwoVElEICVkLCBzaWcgJWQsIGFsdF9zdCAlcylcbiIsCisgICAgQ0xHX0RFQlVHKDAsICI+PiBwcmVfc2lnbmFsKFRJRCAldSwgc2lnICVkLCBhbHRfc3QgJXMpXG4iLAogCSAgICAgdGlkLCBzaWdOdW0sIGFsdF9zdGFjayA/ICJ5ZXMiOiJubyIpOwogCiAgICAgLyogc3dpdGNoIHRvIHRoZSB0aHJlYWQgdGhlIGhhbmRsZXIgcnVucyBpbiAqLwpAQCAtMjQxLDcgKzI0MSw3IEBACiAgICAgZXhlY19zdGF0ZSogZXM7CiAgICAgVUludCBmbl9udW1iZXIsICpwYWN0aXZlOwogCi0gICAgQ0xHX0RFQlVHKDAsICI+PiBwb3N0X3NpZ25hbChUSUQgJWQsIHNpZyAlZClcbiIsCisgICAgQ0xHX0RFQlVHKDAsICI+PiBwb3N0X3NpZ25hbChUSUQgJXUsIHNpZyAlZClcbiIsCiAJICAgICB0aWQsIHNpZ051bSk7CiAKICAgICAvKiB0aHJlYWQgc3dpdGNoaW5nIHBvdGVudGlhbGx5IG5lZWRlZCwgZWcuIHdpdGggaW5zdHJ1bWVudGF0aW9uIG9mZiAqLwpAQCAtMjYxLDcgKzI2MSw3IEBACiAgICAgICBmbl9udW1iZXIgPSBDTEdfKGN1cnJlbnRfc3RhdGUpLmN4dC0+Zm5bMF0tPm51bWJlcjsKICAgICAgIHBhY3RpdmUgPSBDTEdfKGdldF9mbl9lbnRyeSkoZm5fbnVtYmVyKTsKICAgICAgICgqcGFjdGl2ZSktLTsKLSAgICAgIENMR19ERUJVRygwLCAiICBzZXQgYWN0aXZlIGNvdW50IG9mICVzIGJhY2sgdG8gJWRcbiIsCisgICAgICBDTEdfREVCVUcoMCwgIiAgc2V0IGFjdGl2ZSBjb3VudCBvZiAlcyBiYWNrIHRvICV1XG4iLAogCSAgICAgICBDTEdfKGN1cnJlbnRfc3RhdGUpLmN4dC0+Zm5bMF0tPm5hbWUsICpwYWN0aXZlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA3ZmFlYWMyLi5lOTNjODgyIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC04LDcgKzgsNyBAQAogIyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jIwogCiAjIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b2NvbmYgdG8gcHJvZHVjZSBhIGNvbmZpZ3VyZSBzY3JpcHQuCi1BQ19JTklUKFtWYWxncmluZF0sWzMuMTEuMC5TVk5dLFt2YWxncmluZC11c2Vyc0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXRdKQorQUNfSU5JVChbVmFsZ3JpbmRdLFszLjEyLjAuU1ZOXSxbdmFsZ3JpbmQtdXNlcnNAbGlzdHMuc291cmNlZm9yZ2UubmV0XSkKIEFDX0NPTkZJR19TUkNESVIoY29yZWdyaW5kL21fbWFpbi5jKQogQUNfQ09ORklHX0hFQURFUlMoW2NvbmZpZy5oXSkKIEFNX0lOSVRfQVVUT01BS0UoW2ZvcmVpZ24gc3ViZGlyLW9iamVjdHNdKQpAQCAtMTU0LDcgKzE1NCw3IEBACiAjIE5vdGU6IG00IGFyZ3VtZW50cyBhcmUgcXVvdGVkIHdpdGggWyBhbmQgXSBzbyBzcXVhcmUgYnJhY2tldHMgaW4gc2hlbGwKICMgc3RhdGVtZW50cyBoYXZlIHRvIGJlIHF1b3RlZC4KIGNhc2UgIiR7aXNfY2xhbmd9LSR7Z2NjX3ZlcnNpb259IiBpbgotICAgICBhcHBsZWxsdm0tNS4xfGFwcGxlbGx2bS02LiopCisgICAgIGFwcGxlbGx2bS01LjF8YXBwbGVsbHZtLTYuKnxhcHBsZWxsdm0tNy4qKQogCUFDX01TR19SRVNVTFQoW29rIChBcHBsZSBMTFZNIHZlcnNpb24gJHtnY2NfdmVyc2lvbn0pXSkKIAk7OwogICAgICBpY2MtMVtbMy05XV0uKikKQEAgLTM1Miw2ICszNTIsNyBAQAogICAgICAgICBBQ19ERUZJTkUoW0RBUldJTl8xMF84XSwgMTAwODAwLCBbREFSV0lOX1ZFUlMgdmFsdWUgZm9yIE1hYyBPUyBYIDEwLjhdKQogICAgICAgICBBQ19ERUZJTkUoW0RBUldJTl8xMF85XSwgMTAwOTAwLCBbREFSV0lOX1ZFUlMgdmFsdWUgZm9yIE1hYyBPUyBYIDEwLjldKQogICAgICAgICBBQ19ERUZJTkUoW0RBUldJTl8xMF8xMF0sIDEwMTAwMCwgW0RBUldJTl9WRVJTIHZhbHVlIGZvciBNYWMgT1MgWCAxMC4xMF0pCisgICAgICAgIEFDX0RFRklORShbREFSV0lOXzEwXzExXSwgMTAxMTAwLCBbREFSV0lOX1ZFUlMgdmFsdWUgZm9yIE1hYyBPUyBYIDEwLjExXSkKIAogCUFDX01TR19DSEVDS0lORyhbZm9yIHRoZSBrZXJuZWwgdmVyc2lvbl0pCiAJa2VybmVsPWB1bmFtZSAtcmAKQEAgLTQwOSwxMyArNDEwLDMxIEBACiAJCSAgREVGQVVMVF9TVVBQPSJkYXJ3aW4xNC5zdXBwICR7REVGQVVMVF9TVVBQfSIKIAkJICBERUZBVUxUX1NVUFA9ImRhcndpbjEwLWRyZC5zdXBwICR7REVGQVVMVF9TVVBQfSIKIAkJICA7OworCSAgICAgMTUuKikKKwkJICBBQ19NU0dfUkVTVUxUKFtEYXJ3aW4gMTUueCAoJHtrZXJuZWx9KSAvIE1hYyBPUyBYIDEwLjExIEVsIENhcGl0YW5dKQorCQkgIEFDX0RFRklORShbREFSV0lOX1ZFUlNdLCBEQVJXSU5fMTBfMTEsIFtEYXJ3aW4gLyBNYWMgT1MgWCB2ZXJzaW9uXSkKKwkJICBERUZBVUxUX1NVUFA9ImRhcndpbjE1LnN1cHAgJHtERUZBVUxUX1NVUFB9IgorCQkgIERFRkFVTFRfU1VQUD0iZGFyd2luMTAtZHJkLnN1cHAgJHtERUZBVUxUX1NVUFB9IgorCQkgIDs7CiAgICAgICAgICAgICAgKikgCiAJCSAgQUNfTVNHX1JFU1VMVChbdW5zdXBwb3J0ZWQgKCR7a2VybmVsfSldKQotCQkgIEFDX01TR19FUlJPUihbVmFsZ3JpbmQgd29ya3Mgb24gRGFyd2luIDEwLngsIDExLngsIDEyLngsIDEzLnggYW5kIDE0LnggKE1hYyBPUyBYIDEwLjYvNy84LzkvMTApXSkKKwkJICBBQ19NU0dfRVJST1IoW1ZhbGdyaW5kIHdvcmtzIG9uIERhcndpbiAxMC54LCAxMS54LCAxMi54LCAxMy54LCAxNC54IGFuZCAxNS54IChNYWMgT1MgWCAxMC42LzcvOC85LzEwLzExKV0pCiAJCSAgOzsKIAllc2FjCiAgICAgICAgIDs7CiAKKyAgICAgc29sYXJpczIuMTEqKQorICAgICAgICBBQ19NU0dfUkVTVUxUKFtvayAoJHtob3N0X29zfSldKQorICAgICAgICBWR0NPTkZfT1M9InNvbGFyaXMiCisgICAgICAgIERFRkFVTFRfU1VQUD0ic29sYXJpczExLnN1cHAgJHtERUZBVUxUX1NVUFB9IgorICAgICAgICA7OworCisgICAgIHNvbGFyaXMyLjEyKikKKyAgICAgICAgQUNfTVNHX1JFU1VMVChbb2sgKCR7aG9zdF9vc30pXSkKKyAgICAgICAgVkdDT05GX09TPSJzb2xhcmlzIgorICAgICAgICBERUZBVUxUX1NVUFA9InNvbGFyaXMxMi5zdXBwICR7REVGQVVMVF9TVVBQfSIKKyAgICAgICAgOzsKKwogICAgICAqKSAKIAlBQ19NU0dfUkVTVUxUKFtubyAoJHtob3N0X29zfSldKQogCUFDX01TR19FUlJPUihbVmFsZ3JpbmQgaXMgb3BlcmF0aW5nIHN5c3RlbSBzcGVjaWZpYy4gU29ycnkuXSkKQEAgLTQyOSw3ICs0NDgsNyBAQAogIyBkb2VzIG5vdCBzdXBwb3J0IGJ1aWxkaW5nIDMyIGJpdCBwcm9ncmFtcwogCiBjYXNlICIkQVJDSF9NQVgtJFZHQ09ORl9PUyIgaW4KLSAgICAgYW1kNjQtbGludXh8cHBjNjRiZS1saW51eHxhcm02NC1saW51eCkKKyAgICAgYW1kNjQtbGludXh8cHBjNjRiZS1saW51eHxhcm02NC1saW51eHxhbWQ2NC1zb2xhcmlzKQogICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAzMiBiaXQgYnVpbGQgc3VwcG9ydF0pCiAgICAgICAgIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKICAgICAgICAgQ0ZMQUdTPSItbTMyIgpAQCAtNzA3LDYgKzcyNiw0NiBAQAogICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfaW5uZXI9IjB4VU5TRVQiCiAgICAgICAgIEFDX01TR19SRVNVTFQoW29rICgke0FSQ0hfTUFYfS0ke1ZHQ09ORl9PU30pXSkKICAgICAgICAgOzsKKyAgICAgeDg2LXNvbGFyaXMpCisgICAgICAgIFZHQ09ORl9BUkNIX1BSST0ieDg2IgorICAgICAgICBWR0NPTkZfQVJDSF9TRUM9IiIKKyAgICAgICAgVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTPSJYODZfU09MQVJJUyIKKyAgICAgICAgVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTPSIiCisgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3ByaV9ub3JtbD0iMHgzODAwMDAwMCIKKyAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJpX2lubmVyPSIweDI4MDAwMDAwIgorICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfbm9ybWw9IjB4VU5TRVQiCisgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3NlY19pbm5lcj0iMHhVTlNFVCIKKyAgICAgICAgQUNfTVNHX1JFU1VMVChbb2sgKCR7QVJDSF9NQVh9LSR7VkdDT05GX09TfSldKQorICAgICAgICA7OworICAgICBhbWQ2NC1zb2xhcmlzKQorICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfbm9ybWw9IjB4VU5TRVQiCisgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3NlY19pbm5lcj0iMHhVTlNFVCIKKyAgICAgICAgaWYgdGVzdCB4JHZnX2N2X29ubHk2NGJpdCA9IHh5ZXM7IHRoZW4KKyAgICAgICAgICAgVkdDT05GX0FSQ0hfUFJJPSJhbWQ2NCIKKyAgICAgICAgICAgVkdDT05GX0FSQ0hfU0VDPSIiCisgICAgICAgICAgIFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUz0iQU1ENjRfU09MQVJJUyIKKyAgICAgICAgICAgVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTPSIiCisgICAgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3ByaV9ub3JtbD0iMHgzODAwMDAwMCIKKyAgICAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJpX2lubmVyPSIweDI4MDAwMDAwIgorICAgICAgICBlbGlmIHRlc3QgeCR2Z19jdl9vbmx5MzJiaXQgPSB4eWVzOyB0aGVuCisgICAgICAgICAgIFZHQ09ORl9BUkNIX1BSST0ieDg2IgorICAgICAgICAgICBWR0NPTkZfQVJDSF9TRUM9IiIKKyAgICAgICAgICAgVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTPSJYODZfU09MQVJJUyIKKyAgICAgICAgICAgVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTPSIiCisgICAgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3ByaV9ub3JtbD0iMHgzODAwMDAwMCIKKyAgICAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJpX2lubmVyPSIweDI4MDAwMDAwIgorICAgICAgICBlbHNlCisgICAgICAgICAgIFZHQ09ORl9BUkNIX1BSST0iYW1kNjQiCisgICAgICAgICAgIFZHQ09ORl9BUkNIX1NFQz0ieDg2IgorICAgICAgICAgICBWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFM9IkFNRDY0X1NPTEFSSVMiCisgICAgICAgICAgIFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUz0iWDg2X1NPTEFSSVMiCisgICAgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3ByaV9ub3JtbD0iMHgzODAwMDAwMCIKKyAgICAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJpX2lubmVyPSIweDI4MDAwMDAwIgorICAgICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfbm9ybWw9IjB4MzgwMDAwMDAiCisgICAgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3NlY19pbm5lcj0iMHgyODAwMDAwMCIKKyAgICAgICAgZmkKKyAgICAgICAgQUNfTVNHX1JFU1VMVChbb2sgKCR7QVJDSF9NQVh9LSR7VkdDT05GX09TfSldKQorICAgICAgICA7OwogICAgICopCiAgICAgICAgIFZHQ09ORl9BUkNIX1BSST0idW5rbm93biIKICAgICAgICAgVkdDT05GX0FSQ0hfU0VDPSJ1bmtub3duIgpAQCAtNzI5LDEwICs3ODgsMTMgQEAKICAgICAgICAgICAgICAgIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4WDg2X0xJTlVYIFwKICAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFMgPSB4WDg2X0xJTlVYIFwKICAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4WDg2X0RBUldJTiBcCi0gICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTID0geFg4Nl9EQVJXSU4gKQorICAgICAgICAgICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUyA9IHhYODZfREFSV0lOIFwKKyAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4WDg2X1NPTEFSSVMgXAorICAgICAgICAgICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUyA9IHhYODZfU09MQVJJUyApCiBBTV9DT05ESVRJT05BTChWR0NPTkZfQVJDSFNfSU5DTFVERV9BTUQ2NCwgCiAgICAgICAgICAgICAgICB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geEFNRDY0X0xJTlVYIFwKLSAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4QU1ENjRfREFSV0lOICkKKyAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4QU1ENjRfREFSV0lOIFwKKyAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4QU1ENjRfU09MQVJJUyApCiBBTV9DT05ESVRJT05BTChWR0NPTkZfQVJDSFNfSU5DTFVERV9QUEMzMiwgCiAgICAgICAgICAgICAgICB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFBQQzMyX0xJTlVYIFwgCiAgICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTID0geFBQQzMyX0xJTlVYICkKQEAgLTc4Niw2ICs4NDgsMTEgQEAKICAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFMgPSB4WDg2X0RBUldJTikKIEFNX0NPTkRJVElPTkFMKFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9BTUQ2NF9EQVJXSU4sIAogICAgICAgICAgICAgICAgdGVzdCB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhBTUQ2NF9EQVJXSU4pCitBTV9DT05ESVRJT05BTChWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfWDg2X1NPTEFSSVMsCisgICAgICAgICAgICAgICB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFg4Nl9TT0xBUklTIFwKKyAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFMgPSB4WDg2X1NPTEFSSVMpCitBTV9DT05ESVRJT05BTChWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfQU1ENjRfU09MQVJJUywKKyAgICAgICAgICAgICAgIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4QU1ENjRfU09MQVJJUykKIAogCiAjIFNpbWlsYXJseSwgc2V0IHVwIFZHQ09ORl9PU19JU188b3M+LiAgRXhhY3RseSBvbmUgb2YgdGhlc2UgYmVjb21lcyBkZWZpbmVkLgpAQCAtODA2LDYgKzg3Myw5IEBACiBBTV9DT05ESVRJT05BTChWR0NPTkZfT1NfSVNfREFSV0lOLAogICAgICAgICAgICAgICAgdGVzdCB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhYODZfREFSV0lOIFwKICAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4QU1ENjRfREFSV0lOKQorQU1fQ09ORElUSU9OQUwoVkdDT05GX09TX0lTX1NPTEFSSVMsCisgICAgICAgICAgICAgICB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFg4Nl9TT0xBUklTIFwKKyAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4QU1ENjRfU09MQVJJUykKIAogCiAjIFNvbWV0aW1lcywgaW4gdGhlIE1ha2VmaWxlLmFtIGZpbGVzLCBpdCdzIHVzZWZ1bCB0byBrbm93IHdoZXRoZXIgb3Igbm90CkBAIC05MzMsNiArMTAwMywxMiBAQAogXSwKIEdMSUJDX1ZFUlNJT049ImJpb25pYyIpCiAKKyMgdGhlcmUgaXMgb25seSBvbmUgdmVyc2lvbiBvZiBsaWJjIG9uIFNvbGFyaXMKK2lmIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4WDg2X1NPTEFSSVMgXAorICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhBTUQ2NF9TT0xBUklTOyB0aGVuCisgICAgR0xJQkNfVkVSU0lPTj0ic29sYXJpcyIKK2ZpCisKIAogQUNfTVNHX0NIRUNLSU5HKFt0aGUgZ2xpYmMgdmVyc2lvbl0pCiAKQEAgLTk4MywyNSArMTA1OSwzMiBAQAogCUFDX0RFRklORShbQklPTklDX0xJQkNdLCAxLCBbRGVmaW5lIHRvIDEgaWYgeW91J3JlIHVzaW5nIEJpb25pY10pCiAJREVGQVVMVF9TVVBQPSJiaW9uaWMuc3VwcCAke0RFRkFVTFRfU1VQUH0iCiAJOzsKKyAgICAgc29sYXJpcykKKwlBQ19NU0dfUkVTVUxUKFNvbGFyaXMpCisJIyBERUZBVUxUX1NVUFAgc2V0IGluIGhvc3Rfb3Mgc3dpdGNoLWNhc2UgYWJvdmUuCisJIyBObyBvdGhlciBzdXBwcmVzc2lvbiBmaWxlIGlzIHVzZWQuCisJOzsKICAgICAgMi4wfDIuMXwqKQogCUFDX01TR19SRVNVTFQoW3Vuc3VwcG9ydGVkIHZlcnNpb24gJHtHTElCQ19WRVJTSU9OfV0pCi0JQUNfTVNHX0VSUk9SKFtWYWxncmluZCByZXF1aXJlcyBnbGliYyB2ZXJzaW9uIDIuMiBvciBsYXRlcl0pCi0JQUNfTVNHX0VSUk9SKFtvciBEYXJ3aW4gb3IgQmlvbmljIGxpYmNdKQorCUFDX01TR19FUlJPUihbVmFsZ3JpbmQgcmVxdWlyZXMgZ2xpYmMgdmVyc2lvbiAyLjIgb3IgbGF0ZXIsXSkKKwlBQ19NU0dfRVJST1IoW0RhcndpbiBsaWJjLCBCaW9uaWMgbGliYyBvciBTb2xhcmlzIGxpYmNdKQogCTs7CiBlc2FjCiAKIEFDX1NVQlNUKEdMSUJDX1ZFUlNJT04pCiAKIAotIyBBZGQgZGVmYXVsdCBzdXBwcmVzc2lvbnMgZm9yIHRoZSBYIGNsaWVudCBsaWJyYXJpZXMuICBNYWtlIG5vCi0jIGF0dGVtcHQgdG8gZGV0ZWN0IHdoZXRoZXIgc3VjaCBsaWJyYXJpZXMgYXJlIGluc3RhbGxlZCBvbiB0aGUKLSMgYnVpbGQgbWFjaGluZSAob3IgZXZlbiBpZiBhbnkgWCBmYWNpbGl0aWVzIGFyZSBwcmVzZW50KTsganVzdAotIyBhZGQgdGhlIHN1cHByZXNzaW9ucyBhbnRpZGlzaXJyZWdhcmRsZXNzLgotREVGQVVMVF9TVVBQPSJ4ZnJlZS00LnN1cHAgJHtERUZBVUxUX1NVUFB9IgotREVGQVVMVF9TVVBQPSJ4ZnJlZS0zLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoraWYgdGVzdCAiJFZHQ09ORl9PUyIgIT0gInNvbGFyaXMiOyB0aGVuCisgICAgIyBBZGQgZGVmYXVsdCBzdXBwcmVzc2lvbnMgZm9yIHRoZSBYIGNsaWVudCBsaWJyYXJpZXMuICBNYWtlIG5vCisgICAgIyBhdHRlbXB0IHRvIGRldGVjdCB3aGV0aGVyIHN1Y2ggbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQgb24gdGhlCisgICAgIyBidWlsZCBtYWNoaW5lIChvciBldmVuIGlmIGFueSBYIGZhY2lsaXRpZXMgYXJlIHByZXNlbnQpOyBqdXN0CisgICAgIyBhZGQgdGhlIHN1cHByZXNzaW9ucyBhbnRpZGlzaXJyZWdhcmRsZXNzLgorICAgIERFRkFVTFRfU1VQUD0ieGZyZWUtNC5zdXBwICR7REVGQVVMVF9TVVBQfSIKKyAgICBERUZBVUxUX1NVUFA9InhmcmVlLTMuc3VwcCAke0RFRkFVTFRfU1VQUH0iCiAKLSMgQWRkIGdsaWJjIGFuZCBYMTEgc3VwcHJlc3Npb25zIGZvciBleHAtc2djaGVjawotREVGQVVMVF9TVVBQPSJleHAtc2djaGVjay5zdXBwICR7REVGQVVMVF9TVVBQfSIKKyAgICAjIEFkZCBnbGliYyBhbmQgWDExIHN1cHByZXNzaW9ucyBmb3IgZXhwLXNnY2hlY2sKKyAgICBERUZBVUxUX1NVUFA9ImV4cC1zZ2NoZWNrLnN1cHAgJHtERUZBVUxUX1NVUFB9IgorZmkKIAogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI1NywxNSArMTM0MCw1OSBAQAogCQlbXSwKIAkJWyNpbmNsdWRlIDxwdGhyZWFkLmg+XSkKIAorIyBDb252ZW5pZW5jZSBmdW5jdGlvbi4gIFNldCBmbGFncyBiYXNlZCBvbiB0aGUgZXhpc3RpbmcgSFdDQVAgZW50cmllcy4KKyMgVGhlIEFUX0hXQ0FQIGVudHJpZXMgYXJlIGdlbmVyYXRlZCBieSBnbGliYywgYW5kIGFyZSBiYXNlZCBvbgorIyBmdW5jdGlvbnMgc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZS9zeXN0ZW0vbGliYy4KKyMgU3Vic2VxdWVudCBzdXBwb3J0IGZvciB3aGV0aGVyIHRoZSBjYXBhYmlsaXR5IHdpbGwgYWN0dWFsbHkgYmUgdXRpbGl6ZWQKKyMgd2lsbCBhbHNvIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgY29tcGlsZXIgY2FwYWJpbGl0aWVzLgorIyBjYWxsZWQgYXMKKyMgICAgICBBQ19IV0NBUF9DT05UQUlOU19GTEFHW2h3Y2FwX3N0cmluZ190b19tYXRjaF0sW1ZBUklBQkxFX1RPX1NFVF0KK0FDX0RFRlVOKFtBQ19IV0NBUF9DT05UQUlOU19GTEFHXSxbCisgIEFVWFZfQ0hFQ0tfRk9SPSQxCisgIEFDX01TR19DSEVDS0lORyhbaWYgQVRfSFdDQVAgY29udGFpbnMgdGhlICRBVVhWX0NIRUNLX0ZPUiBpbmRpY2F0b3JdKQorICBpZiBMRF9TSE9XX0FVWFY9MSBgd2hpY2ggdHJ1ZWAgfCBncmVwIF5BVF9IV0NBUCB8IGdyZXAgLXEgLXcgJHtBVVhWX0NIRUNLX0ZPUn0KKyAgdGhlbgorICAgIEFDX01TR19SRVNVTFQoW3llc10pCisgICAgQUNfU1VCU1QoWyQyXSxbeWVzXSkKKyAgZWxzZQorICAgIEFDX01TR19SRVNVTFQoW25vXSkKKyAgICBBQ19TVUJTVChbJDJdLFtdKQorICBmaQorXSkKIAorIyBnYXRoZXIgaGFyZHdhcmUgY2FwYWJpbGl0aWVzLiAoaGFyZHdhcmUva2VybmVsL2xpYmMpCitBQ19IV0NBUF9DT05UQUlOU19GTEFHKFthbHRpdmVjXSxbSFdDQVBfSEFTX0FMVElWRUNdKQorQUNfSFdDQVBfQ09OVEFJTlNfRkxBRyhbdnN4XSxbSFdDQVBfSEFTX1ZTWF0pCitBQ19IV0NBUF9DT05UQUlOU19GTEFHKFtkZnBdLFtIV0NBUF9IQVNfREZQXSkKK0FDX0hXQ0FQX0NPTlRBSU5TX0ZMQUcoW2FyY2hfMl8wNV0sW0hXQ0FQX0hBU19JU0FfMl8wNV0pCitBQ19IV0NBUF9DT05UQUlOU19GTEFHKFthcmNoXzJfMDZdLFtIV0NBUF9IQVNfSVNBXzJfMDZdKQorQUNfSFdDQVBfQ09OVEFJTlNfRkxBRyhbYXJjaF8yXzA3XSxbSFdDQVBfSEFTX0lTQV8yXzA3XSkKK0FDX0hXQ0FQX0NPTlRBSU5TX0ZMQUcoW2h0bV0sW0hXQ0FQX0hBU19IVE1dKQorCisjIElTQSBMZXZlbHMKK0FNX0NPTkRJVElPTkFMKEhBU19JU0FfMl8wNSwgW3Rlc3QgeCRIV0NBUF9IQVNfSVNBXzJfMDUgPSB4eWVzXSkKK0FNX0NPTkRJVElPTkFMKEhBU19JU0FfMl8wNiwgW3Rlc3QgeCRIV0NBUF9IQVNfSVNBXzJfMDYgPSB4eWVzXSkKKyMgY29tcGlsZXIgc3VwcG9ydCBmb3IgaXNhIDIuMDcgbGV2ZWwgaW5zdHJ1Y3Rpb25zCitBQ19NU0dfQ0hFQ0tJTkcoW3RoYXQgYXNzZW1ibGVyIGtub3dzIElTQSAyLjA3IGluc3RydWN0aW9ucyBdKQorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworXV0sIFtbCisgIF9fYXNtX18gX192b2xhdGlsZV9fKCJtdHZzcmQgMSwyICIpOworXV0pXSwgWworYWNfYXNtX2hhdmVfaXNhXzJfMDc9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorXSwgWworYWNfYXNtX2hhdmVfaXNhXzJfMDc9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChIQVNfSVNBXzJfMDcsIFt0ZXN0IHgkYWNfYXNtX2hhdmVfaXNhXzJfMDcgPSB4eWVzIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtYSB4JEhXQ0FQX0hBU19JU0FfMl8wNyA9IHh5ZXNdKQorCisjIGFsdGl2ZWMgKHZzeCkgc3VwcG9ydC4KICMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLW1hbHRpdmVjIGFuZCBkb2VzIGl0IGhhdmUgdGhlIGluY2x1ZGUgZmlsZQogIyA8YWx0aXZlYy5oPiA/Ci0KLUFDX01TR19DSEVDS0lORyhbZm9yIEFsdGl2ZWNdKQotCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBBbHRpdmVjIHN1cHBvcnQgaW4gdGhlIGNvbXBpbGVyIF0pCiBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi1DRkxBR1M9Ii1tYWx0aXZlYyIKLQorQ0ZMQUdTPSItbWFsdGl2ZWMgLVdlcnJvciIKIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKICNpbmNsdWRlIDxhbHRpdmVjLmg+CiBdXSwgW1sKQEAgLTEyODAsNDIgKzE0MDcsNDggQEAKIEFDX01TR19SRVNVTFQoW25vXSkKIF0pCiBDRkxBR1M9JHNhZmVfQ0ZMQUdTCi0KLUFNX0NPTkRJVElPTkFMKFtIQVNfQUxUSVZFQ10sIFt0ZXN0IHgkYWNfaGF2ZV9hbHRpdmVjID0geHllc10pCi0KK0FNX0NPTkRJVElPTkFMKFtIQVNfQUxUSVZFQ10sIFt0ZXN0IHgkYWNfaGF2ZV9hbHRpdmVjID0geHllcyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtYSB4JEhXQ0FQX0hBU19BTFRJVkVDID0geHllc10pCiAKICMgQ2hlY2sgdGhhdCBib3RoOiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgLW12c3ggYW5kIHRoYXQgdGhlIGFzc2VtYmxlcgogIyB1bmRlcnN0YW5kcyBWU1ggaW5zdHJ1Y3Rpb25zLiAgSWYgZWl0aGVyIG9mIHRob3NlIGRvZXNuJ3Qgd29yaywKLSMgY29uY2x1ZGUgdGhhdCB3ZSBjYW4ndCBkbyBWU1guICBOT1RFOiBiYXNpY2FsbHkgdGhpcyBpcyBhIGtsdWRnZQotIyBpbiB0aGF0IGl0IGNvbmZsYXRlcyB0d28gdGhpbmdzIHRoYXQgc2hvdWxkIGJlIHNlcGFyYXRlIC0tIHdoZXRoZXIKLSMgdGhlIGNvbXBpbGVyIHVuZGVyc3RhbmRzIHRoZSBmbGFnIHZzIHdoZXRoZXIgdGhlIGFzc2VtYmxlciAKLSMgdW5kZXJzdGFuZHMgdGhlIG9wY29kZXMuICBUaGlzIHJlYWxseSBvdWdodCB0byBiZSBjbGVhbmVkIHVwCi0jIGFuZCBkb25lIHByb3Blcmx5LCBsaWtlIGl0IGlzIGZvciB4ODYveDg2XzY0LgotCi1BQ19NU0dfQ0hFQ0tJTkcoW2ZvciBWU1hdKQotCisjIGNvbmNsdWRlIHRoYXQgd2UgY2FuJ3QgZG8gVlNYLgorQUNfTVNHX0NIRUNLSU5HKFtmb3IgVlNYIGNvbXBpbGVyIGZsYWcgc3VwcG9ydF0pCiBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi1DRkxBR1M9Ii1tdnN4IgorQ0ZMQUdTPSItbXZzeCAtV2Vycm9yIgorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworXV0sIFtbCitdXSldLCBbCithY19jb21waWxlcl9zdXBwb3J0c192c3hfZmxhZz15ZXMKK0FDX01TR19SRVNVTFQoW3llc10pCitdLCBbCithY19jb21waWxlcl9zdXBwb3J0c192c3hfZmxhZz1ubworQUNfTVNHX1JFU1VMVChbbm9dKQorXSkKK0NGTEFHUz0kc2FmZV9DRkxBR1MKIAorQUNfTVNHX0NIRUNLSU5HKFtmb3IgVlNYIHN1cHBvcnQgaW4gdGhlIGFzc2VtYmxlciBdKQorc2FmZV9DRkxBR1M9JENGTEFHUworQ0ZMQUdTPSItbXZzeCAtV2Vycm9yIgogQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWwogI2luY2x1ZGUgPGFsdGl2ZWMuaD4KIF1dLCBbWwogICB2ZWN0b3IgdW5zaWduZWQgaW50IHY7CiAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ4c21hZGRhZHAgMzIsIDMyLCAzMyIgOjo6ICJtZW1vcnkiLCJjYyIpOwogXV0pXSwgWwotYWNfaGF2ZV92c3g9eWVzCithY19jb21waWxlcl9zdXBwb3J0c192c3g9eWVzCiBBQ19NU0dfUkVTVUxUKFt5ZXNdKQogXSwgWwotYWNfaGF2ZV92c3g9bm8KK2FjX2NvbXBpbGVyX3N1cHBvcnRzX3ZzeD1ubwogQUNfTVNHX1JFU1VMVChbbm9dKQogXSkKIENGTEFHUz0kc2FmZV9DRkxBR1MKK0FNX0NPTkRJVElPTkFMKFtIQVNfVlNYXSwgW3Rlc3QgeCRhY19jb21waWxlcl9zdXBwb3J0c192c3hfZmxhZyA9IHh5ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtYSB4JGFjX2NvbXBpbGVyX3N1cHBvcnRzX3ZzeCA9IHh5ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtYSB4JEhXQ0FQX0hBU19WU1ggPSB4eWVzIF0pCiAKLUFNX0NPTkRJVElPTkFMKEhBU19WU1gsIHRlc3QgeCRhY19oYXZlX3ZzeCA9IHh5ZXMpCi0KLQorIyBERlAgKERlY2ltYWwgRmxvYXQpCiBBQ19NU0dfQ0hFQ0tJTkcoW3RoYXQgYXNzZW1ibGVyIGtub3dzIERGUF0pCi0KIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKIF1dLCBbWwogICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiZGFkZCAxLCAyLCAzIik7CkBAIC0xMzI3LDYzICsxNDYwLDgxIEBACiBhY19hc21faGF2ZV9kZnA9bm8KIEFDX01TR19SRVNVTFQoW25vXSkKIF0pCi0KLQogQUNfTVNHX0NIRUNLSU5HKFt0aGF0IGNvbXBpbGVyIGtub3dzIC1taGFyZC1kZnAgc3dpdGNoXSkKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iLW1oYXJkLWRmcCIKK0NGTEFHUz0iLW1oYXJkLWRmcCAtV2Vycm9yIgogQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWwogXV0sIFtbCiAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJkYWRkIDEsIDIsIDMiKTsKICAgX19hc21fXyBfX3ZvbGF0aWxlX18oImRjZmZpeCAxLCAyIik7CiBdXSldLCBbCi1hY19nY2NfaGF2ZV9kZnA9eWVzCithY19jb21waWxlcl9oYXZlX2RmcD15ZXMKIEFDX01TR19SRVNVTFQoW3llc10pCiBdLCBbCi1hY19nY2NfaGF2ZV9kZnA9bm8KK2FjX2NvbXBpbGVyX2hhdmVfZGZwPW5vCiBBQ19NU0dfUkVTVUxUKFtub10pCiBdKQotCiBDRkxBR1M9JHNhZmVfQ0ZMQUdTCi0KLUFNX0NPTkRJVElPTkFMKEhBU19ERlAsIHRlc3QgeCRhY19hc21faGF2ZV9kZnAgPSB4eWVzIC1hIHgkYWNfZ2NjX2hhdmVfZGZwID0geHllcykKLQorQU1fQ09ORElUSU9OQUwoSEFTX0RGUCwgdGVzdCB4JGFjX2FzbV9oYXZlX2RmcCA9IHh5ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAtYSB4JGFjX2NvbXBpbGVyX2hhdmVfZGZwID0geHllcyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIC1hIHgkSFdDQVBfSEFTX0RGUCA9IHh5ZXMgKQogCiBBQ19NU0dfQ0hFQ0tJTkcoW3RoYXQgY29tcGlsZXIga25vd3MgREZQIGRhdGF0eXBlc10pCiBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCiBdXSwgW1sKICAgX0RlY2ltYWw2NCB4ID0gMC4wREQ7CiBdXSldLCBbCi1hY19nY2NfaGF2ZV9kZnBfdHlwZT15ZXMKK2FjX2NvbXBpbGVyX2hhdmVfZGZwX3R5cGU9eWVzCiBBQ19NU0dfUkVTVUxUKFt5ZXNdKQogXSwgWwotYWNfZ2NjX2hhdmVfZGZwX3R5cGU9bm8KK2FjX2NvbXBpbGVyX2hhdmVfZGZwX3R5cGU9bm8KIEFDX01TR19SRVNVTFQoW25vXSkKIF0pCitBTV9DT05ESVRJT05BTChCVUlMRF9ERlBfVEVTVFMsIHRlc3QgeCRhY19jb21waWxlcl9oYXZlX2RmcF90eXBlID0geHllcyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWEgeEhXQ0FQXyRIQVNfREZQID0geHllcyApCiAKLUFNX0NPTkRJVElPTkFMKEJVSUxEX0RGUF9URVNUUywgdGVzdCB4JGFjX2djY19oYXZlX2RmcF90eXBlID0geHllcykKIAotIyBpc2EgMi4wNyBjaGVja2luZwotQUNfTVNHX0NIRUNLSU5HKFt0aGF0IGFzc2VtYmxlciBrbm93cyBJU0EgMi4wNyBdKQotCisjIEhUTSAoSGFyZHdhcmUgVHJhbnNhY3Rpb25hbCBNZW1vcnkpCitBQ19NU0dfQ0hFQ0tJTkcoW2lmIGNvbXBpbGVyIGFjY2VwdHMgdGhlIC1taHRtIGZsYWddKQorc2FmZV9DRkxBR1M9JENGTEFHUworQ0ZMQUdTPSItbWh0bSAtV2Vycm9yIgogQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWwogXV0sIFtbCi0gIF9fYXNtX18gX192b2xhdGlsZV9fKCJtdHZzcmQgMSwyICIpOworICByZXR1cm4gMDsKIF1dKV0sIFsKLWFjX2FzbV9oYXZlX2lzYV8yXzA3PXllcwogQUNfTVNHX1JFU1VMVChbeWVzXSkKK2FjX2NvbXBpbGVyX3N1cHBvcnRzX2h0bT15ZXMKIF0sIFsKLWFjX2FzbV9oYXZlX2lzYV8yXzA3PW5vCiBBQ19NU0dfUkVTVUxUKFtub10pCithY19jb21waWxlcl9zdXBwb3J0c19odG09bm8KIF0pCitDRkxBR1M9JHNhZmVfQ0ZMQUdTCiAKLUFNX0NPTkRJVElPTkFMKEhBU19JU0FfMl8wNywgdGVzdCB4JGFjX2FzbV9oYXZlX2lzYV8yXzA3ID0geHllcykKK0FDX01TR19DSEVDS0lORyhbaWYgY29tcGlsZXIgY2FuIGZpbmQgdGhlIGh0bSBidWlsdGluc10pCitzYWZlX0NGTEFHUz0kQ0ZMQUdTCitDRkxBR1M9Ii1taHRtIC1XZXJyb3IiCisgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworIF1dLCBbWworICAgaWYgKF9fYnVpbHRpbl90YmVnaW4gKDApKQorICAgICAgX19idWlsdGluX3RlbmQgKDApOworIF1dKV0sIFsKKyBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorYWNfY29tcGlsZXJfc2Vlc19odG1fYnVpbHRpbnM9eWVzCisgXSwgWworIEFDX01TR19SRVNVTFQoW25vXSkKK2FjX2NvbXBpbGVyX3NlZXNfaHRtX2J1aWx0aW5zPW5vCisgXSkKK0NGTEFHUz0kc2FmZV9DRkxBR1MKKworQU1fQ09ORElUSU9OQUwoU1VQUE9SVFNfSFRNLCB0ZXN0IHgkYWNfY29tcGlsZXJfc3VwcG9ydHNfaHRtID0geHllcyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWEgeCRhY19jb21waWxlcl9zZWVzX2h0bV9idWlsdGlucyA9IHh5ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1hIHgkSFdDQVBfSEFTX0hUTSA9IHh5ZXMgKQogCiAjIENoZWNrIGZvciBwdGhyZWFkX2NyZWF0ZUBHTElCQzIuMAogQUNfTVNHX0NIRUNLSU5HKFtmb3IgcHRocmVhZF9jcmVhdGVAR0xJQkMyLjAoKV0pCiAKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iLWxwdGhyZWFkIgorQ0ZMQUdTPSItbHB0aHJlYWQgLVdlcnJvciIKIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKIGV4dGVybiBpbnQgcHRocmVhZF9jcmVhdGVfZ2xpYmNfMl8wKHZvaWQqLCBjb25zdCB2b2lkKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKigqKSh2b2lkKiksIHZvaWQqKTsKQEAgLTE1MTUsNyArMTY2Niw3IEBACiBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGdjYyBhY2NlcHRzIC1tMzJdKQogCiBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi1DRkxBR1M9Ii1tMzIiCitDRkxBR1M9Ii1tMzIgLVdlcnJvciIKIAogQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLCBbWwogICByZXR1cm4gMDsKQEAgLTE1MzUsNyArMTY4Niw3IEBACiBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGdjYyBhY2NlcHRzIC1tNjRdKQogCiBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi1DRkxBR1M9Ii1tNjQiCitDRkxBR1M9Ii1tNjQgLVdlcnJvciIKIAogQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLCBbWwogICByZXR1cm4gMDsKQEAgLTE1NTUsNyArMTcwNiw3IEBACiBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGdjYyBhY2NlcHRzIC1tYXJjaD1taXBzMzJdKQogCiBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi1DRkxBR1M9IiRDRkxBR1MgLW1hcmNoPW1pcHMzMiIKK0NGTEFHUz0iJENGTEFHUyAtbWFyY2g9bWlwczMyIC1XZXJyb3IiCiAKIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1sKICAgcmV0dXJuIDA7CkBAIC0xNTc1LDcgKzE3MjYsNyBAQAogQUNfTVNHX0NIRUNLSU5HKFtpZiBnY2MgYWNjZXB0cyAtbWFyY2g9bWlwczY0XSkKIAogc2FmZV9DRkxBR1M9JENGTEFHUwotQ0ZMQUdTPSIkQ0ZMQUdTIC1tYXJjaD1taXBzNjQiCitDRkxBR1M9IiRDRkxBR1MgLW1hcmNoPW1pcHM2NCAtV2Vycm9yIgogCiBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbXV0sIFtbCiAgIHJldHVybiAwOwpAQCAtMTU5NSw3ICsxNzQ2LDcgQEAKIEFDX01TR19DSEVDS0lORyhbaWYgZ2NjIGFjY2VwdHMgLW1hcmNoPW9jdGVvbl0pCiAKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iJENGTEFHUyAtbWFyY2g9b2N0ZW9uIgorQ0ZMQUdTPSIkQ0ZMQUdTIC1tYXJjaD1vY3Rlb24gLVdlcnJvciIKIAogQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLCBbWwogICByZXR1cm4gMDsKQEAgLTE2MTUsNyArMTc2Niw3IEBACiBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGdjYyBhY2NlcHRzIC1tYXJjaD1vY3Rlb24yXSkKIAogc2FmZV9DRkxBR1M9JENGTEFHUwotQ0ZMQUdTPSIkQ0ZMQUdTIC1tYXJjaD1vY3Rlb24yIgorQ0ZMQUdTPSIkQ0ZMQUdTIC1tYXJjaD1vY3Rlb24yIC1XZXJyb3IiCiAKIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1sKICAgcmV0dXJuIDA7CkBAIC0xNjM1LDcgKzE3ODYsNyBAQAogQUNfTVNHX0NIRUNLSU5HKFtpZiBnY2MgYWNjZXB0cyAtbW1teF0pCiAKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iLW1tbXgiCitDRkxBR1M9Ii1tbW14IC1XZXJyb3IiCiAKIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1sKICAgcmV0dXJuIDA7CkBAIC0xNjU1LDcgKzE4MDYsNyBAQAogQUNfTVNHX0NIRUNLSU5HKFtpZiBnY2MgYWNjZXB0cyAtbXNzZV0pCiAKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iLW1zc2UiCitDRkxBR1M9Ii1tc3NlIC1XZXJyb3IiCiAKIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1sKICAgcmV0dXJuIDA7CkBAIC0xNjgwLDcgKzE4MzEsNyBAQAogQUNfTVNHX0NIRUNLSU5HKFtpZiBnY2MgYWNjZXB0cyAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0yIC1tMzJdKQogCiBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi1DRkxBR1M9Ii1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5PTIgLW0zMiIKK0NGTEFHUz0iLW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9MiAtbTMyIC1XZXJyb3IiCiAKIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1sKICAgcmV0dXJuIDA7CkBAIC0xNjk2LDI4ICsxODQ3LDI3IEBACiBBQ19TVUJTVChQUkVGRVJSRURfU1RBQ0tfQk9VTkRBUllfMikKIAogCi0jIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRoZXIgR0NDIHN1cHBvcnRzIGEgcGFydGljdWxhcgotIyB3YXJuaW5nIG9wdGlvbi4gVGFrZXMgdHdvIGFyZ3VtZW50cywgZmlyc3QgdGhlIHdhcm5pbmcgZmxhZyBuYW1lCi0jIHRvIGNoZWNrICh3aXRob3V0IC1XKSwgdGhlbiB0aGUgY29uZGl0aW9uYWwgbmFtZSB0byBzZXQgaWYgdGhhdAotIyB3YXJuaW5nIGZsYWcgaXMgc3VwcG9ydGVkLgotQUNfREVGVU4oW0FDX0dDQ19XQVJOSU5HX0NPTkRdLFsKLSAgQUNfTVNHX0NIRUNLSU5HKFtpZiBnY2MgYWNjZXB0cyAtVyQxXSkKLSAgc2FmZV9DRkxBR1M9JENGTEFHUwotICBDRkxBR1M9Ii1XJDEiCi0gIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1s7XV0pXSwgWwotICBoYXNfd2FybmluZ19mbGFnPXllcwotICBBQ19NU0dfUkVTVUxUKFt5ZXNdKV0sIFsKLSAgaGFzX3dhcm5pbmdfZmxhZz1ubwotICBBQ19NU0dfUkVTVUxUKFtub10pXSkKLSAgQ0ZMQUdTPSRzYWZlX0NGTEFHUwotICBBTV9DT05ESVRJT05BTChbJDJdLCB0ZXN0IHgkaGFzX3dhcm5pbmdfZmxhZyA9IHh5ZXMpCisjIGRvZXMgdGhpcyBjb21waWxlciBzdXBwb3J0IC1tbG9uZy1kb3VibGUtMTI4ID8KK0FDX01TR19DSEVDS0lORyhbaWYgZ2NjIGFjY2VwdHMgLW1sb25nLWRvdWJsZS0xMjhdKQorc2FmZV9DRkxBR1M9JENGTEFHUworQ0ZMQUdTPSItbWxvbmctZG91YmxlLTEyOCAtV2Vycm9yIgorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLCBbWworICByZXR1cm4gMDsKK11dKV0sIFsKK2FjX2NvbXBpbGVyX3N1cHBvcnRzX21sb25nX2RvdWJsZV8xMjg9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorXSwgWworYWNfY29tcGlsZXJfc3VwcG9ydHNfbWxvbmdfZG91YmxlXzEyOD1ubworQUNfTVNHX1JFU1VMVChbbm9dKQogXSkKK0NGTEFHUz0kc2FmZV9DRkxBR1MKK0FNX0NPTkRJVElPTkFMKEhBU19NTE9OR19ET1VCTEVfMTI4LCB0ZXN0IHgkYWNfY29tcGlsZXJfc3VwcG9ydHNfbWxvbmdfZG91YmxlXzEyOCA9IHh5ZXMpCitGTEFHX01MT05HX0RPVUJMRV8xMjg9Ii1tbG9uZy1kb3VibGUtMTI4IgorQUNfU1VCU1QoRkxBR19NTE9OR19ET1VCTEVfMTI4KQogCi1BQ19HQ0NfV0FSTklOR19DT05EKFtwb2ludGVyLXNpZ25dLCBbSEFTX1BPSU5URVJfU0lHTl9XQVJOSU5HXSkKIAogIyBDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjaGVjayB3aGV0aGVyIEdDQyBzdXBwb3J0cyBhIHBhcnRpY3VsYXIKLSMgd2FybmluZyBvcHRpb24uIFNpbWlsYXIgdG8gQUNfR0NDX1dBUk5JTkdfQ09ORCwgYnV0IGRvZXMgYQotIyBzdWJzdGl0dXRpb24gaW5zdGVhZCBvZiBzZXR0aW5nIGFuIGNvbmRpdGlvbmFsLiBUYWtlcyB0d28gYXJndW1lbnRzLAorIyB3YXJuaW5nIG9wdGlvbi4gVGFrZXMgdHdvIGFyZ3VtZW50cywKICMgZmlyc3QgdGhlIHdhcm5pbmcgZmxhZyBuYW1lIHRvIGNoZWNrICh3aXRob3V0IC1XKSwgdGhlbiB0aGUKICMgc3Vic3RpdHV0aW9uIG5hbWUgdG8gc2V0IHdpdGggLVduby13YXJuaW5nLWZsYWcgaWYgdGhlIGZsYWcgZXhpc3RzLAogIyBvciB0aGUgZW1wdHkgc3RyaW5nIGlmIHRoZSBjb21waWxlciBkb2Vzbid0IGFjY2VwdCB0aGUgZmxhZy4gTm90ZQpAQCAtMTcyNiw3ICsxODc2LDcgQEAKIEFDX0RFRlVOKFtBQ19HQ0NfV0FSTklOR19TVUJTVF9OT10sWwogICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGdjYyBhY2NlcHRzIC1XJDFdKQogICBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi0gIENGTEFHUz0iLVckMSIKKyAgQ0ZMQUdTPSItVyQxIC1XZXJyb3IiCiAgIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1s7XV0pXSwgWwogICBBQ19TVUJTVChbJDJdLCBbLVduby0kMV0pCiAgIEFDX01TR19SRVNVTFQoW3llc10pXSwgWwpAQCAtMTc0MCw3ICsxODkwLDcgQEAKIEFDX0RFRlVOKFtBQ19HQ0NfV0FSTklOR19TVUJTVF0sWwogICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGdjYyBhY2NlcHRzIC1XJDFdKQogICBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi0gIENGTEFHUz0iLVckMSIKKyAgQ0ZMQUdTPSItVyQxIC1XZXJyb3IiCiAgIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1s7XV0pXSwgWwogICBBQ19TVUJTVChbJDJdLCBbLVckMV0pCiAgIEFDX01TR19SRVNVTFQoW3llc10pXSwgWwpAQCAtMTc0OSwyNyArMTg5OSw1NCBAQAogICBDRkxBR1M9JHNhZmVfQ0ZMQUdTCiBdKQogCi1BQ19HQ0NfV0FSTklOR19TVUJTVF9OTyhbZW1wdHktYm9keV0sIFtGTEFHX1dfTk9fRU1QVFlfQk9EWV0pCi1BQ19HQ0NfV0FSTklOR19TVUJTVF9OTyhbZm9ybWF0LXplcm8tbGVuZ3RoXSwgW0ZMQUdfV19OT19GT1JNQVRfWkVST19MRU5HVEhdKQorQUNfR0NDX1dBUk5JTkdfU1VCU1RfTk8oW21lbXNldC10cmFuc3Bvc2VkLWFyZ3NdLCBbRkxBR19XX05PX01FTVNFVF9UUkFOU1BPU0VEX0FSR1NdKQogQUNfR0NDX1dBUk5JTkdfU1VCU1RfTk8oW25vbm51bGxdLCBbRkxBR19XX05PX05PTk5VTExdKQogQUNfR0NDX1dBUk5JTkdfU1VCU1RfTk8oW292ZXJmbG93XSwgW0ZMQUdfV19OT19PVkVSRkxPV10pCitBQ19HQ0NfV0FSTklOR19TVUJTVF9OTyhbcG9pbnRlci1zaWduXSwgW0ZMQUdfV19OT19QT0lOVEVSX1NJR05dKQogQUNfR0NDX1dBUk5JTkdfU1VCU1RfTk8oW3VuaW5pdGlhbGl6ZWRdLCBbRkxBR19XX05PX1VOSU5JVElBTElaRURdKQogQUNfR0NDX1dBUk5JTkdfU1VCU1RfTk8oW3VudXNlZC1mdW5jdGlvbl0sIFtGTEFHX1dfTk9fVU5VU0VEX0ZVTkNUSU9OXSkKIEFDX0dDQ19XQVJOSU5HX1NVQlNUX05PKFtzdGF0aWMtbG9jYWwtaW4taW5saW5lXSwgW0ZMQUdfV19OT19TVEFUSUNfTE9DQUxfSU5fSU5MSU5FXSkKK0FDX0dDQ19XQVJOSU5HX1NVQlNUX05PKFttaXNtYXRjaGVkLW5ldy1kZWxldGVdLCBbRkxBR19XX05PX01JU01BVENIRURfTkVXX0RFTEVURV0pCitBQ19HQ0NfV0FSTklOR19TVUJTVF9OTyhbaW5maW5pdGUtcmVjdXJzaW9uXSwgW0ZMQUdfV19OT19JTkZJTklURV9SRUNVUlNJT05dKQogQUNfR0NDX1dBUk5JTkdfU1VCU1QoW3dyaXRlLXN0cmluZ3NdLCBbRkxBR19XX1dSSVRFX1NUUklOR1NdKQorQUNfR0NDX1dBUk5JTkdfU1VCU1QoW2VtcHR5LWJvZHldLCBbRkxBR19XX0VNUFRZX0JPRFldKQogQUNfR0NDX1dBUk5JTkdfU1VCU1QoW2Zvcm1hdF0sIFtGTEFHX1dfRk9STUFUXSkKLUFDX0dDQ19XQVJOSU5HX1NVQlNUKFtmb3JtYXQtc2VjdXJpdHldLCBbRkxBR19XX0ZPUk1BVF9TRUNVUklUWV0pCisjIERpc2FibGVkIGZvciBub3cgdW50aWwgYWxsIHBsYXRmb3JtcyBhcmUgY2xlYW4KK2Zvcm1hdF9jaGVja2luZ19lbmFibGVkPW5vCisjZm9ybWF0X2NoZWNraW5nX2VuYWJsZWQ9eWVzCitpZiB0ZXN0ICIkZm9ybWF0X2NoZWNraW5nX2VuYWJsZWQiID0gInllcyI7IHRoZW4KKyAgIEFDX0dDQ19XQVJOSU5HX1NVQlNUKFtmb3JtYXQtc2lnbmVkbmVzc10sIFtGTEFHX1dfRk9STUFUX1NJR05FRE5FU1NdKQorZWxzZQorICAgZHVteV9hc3NpZ25tZW50X3RvX2F2b2lkX3N5bnRheF9lcnJvcnM9MQorICAgQUNfU1VCU1QoW0ZMQUdfV19GT1JNQVRfU0lHTkVETkVTU10sIFtdKQorZmkKIEFDX0dDQ19XQVJOSU5HX1NVQlNUKFtjYXN0LXF1YWxdLCBbRkxBR19XX0NBU1RfUVVBTF0pCiBBQ19HQ0NfV0FSTklOR19TVUJTVChbb2xkLXN0eWxlLWRlY2xhcmF0aW9uXSwgW0ZMQUdfV19PTERfU1RZTEVfREVDTEFSQVRJT05dKQogQUNfR0NDX1dBUk5JTkdfU1VCU1QoW2lnbm9yZWQtcXVhbGlmaWVyc10sIFtGTEFHX1dfSUdOT1JFRF9RVUFMSUZJRVJTXSkKIEFDX0dDQ19XQVJOSU5HX1NVQlNUKFttaXNzaW5nLXBhcmFtZXRlci10eXBlXSwgW0ZMQUdfV19NSVNTSU5HX1BBUkFNRVRFUl9UWVBFXSkKIAorIyBEb2VzIHRoaXMgY29tcGlsZXIgc3VwcG9ydCAtV2Zvcm1hdC1zZWN1cml0eSA/CisjIFNwZWNpYWwgaGFuZGxpbmcgaXMgbmVlZGVkLCBiZWNhdXNlIGNlcnRhaW4gR0NDIHZlcnNpb25zIHJlcXVpcmUgLVdmb3JtYXQKKyMgYmVpbmcgcHJlc2VudCBpZiAtV2Zvcm1hdC1zZWN1cml0eSBpcyBnaXZlbi4gT3RoZXJ3aXNlIGEgd2FybmluZyBpcyBpc3N1ZWQuCisjIEhvd2V2ZXIsIEFDX0dDQ19XQVJOSU5HX1NVQlNUIHdpbGwgc3RpY2sgaW4gLVdlcnJvciAoc2VlIHIxNTMyMyBmb3IgcmF0aW9uYWxlKS4KKyMgQW5kIHdpdGggdGhhdCB0aGUgd2FybmluZyB3aWxsIGJlIHR1cm5lZCBpbnRvIGFuIGVycm9yIHdpdGggdGhlIHJlc3VsdAorIyB0aGF0IC1XZm9ybWF0LXNlY3VyaXR5IGlzIGJlbGlldmVkIHRvIGJlIHVuc3VwcG9ydGVkIHdoZW4gaW4gZmFjdCBpdCBpcy4KK0FDX01TR19DSEVDS0lORyhbaWYgZ2NjIGFjY2VwdHMgLVdmb3JtYXQtc2VjdXJpdHldKQorc2FmZV9DRkxBR1M9JENGTEFHUworQ0ZMQUdTPSItV2Zvcm1hdCAtV2Zvcm1hdC1zZWN1cml0eSAtV2Vycm9yIgorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLCBbWztdXSldLCBbCitBQ19TVUJTVChbRkxBR19XX0ZPUk1BVF9TRUNVUklUWV0sIFstV2Zvcm1hdC1zZWN1cml0eV0pCitBQ19NU0dfUkVTVUxUKFt5ZXNdKV0sIFsKK0FDX1NVQlNUKFtGTEFHX1dfRk9STUFUX1NFQ1VSSVRZXSwgW10pCitBQ19NU0dfUkVTVUxUKFtub10pXSkKK0NGTEFHUz0kc2FmZV9DRkxBR1MKKwogIyBkb2VzIHRoaXMgY29tcGlsZXIgc3VwcG9ydCAtV2V4dHJhIG9yIHRoZSBvbGRlciAtVyA/CiAKIEFDX01TR19DSEVDS0lORyhbaWYgZ2NjIGFjY2VwdHMgLVdleHRyYSBvciAtV10pCiAKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iLVdleHRyYSIKK0NGTEFHUz0iLVdleHRyYSAtV2Vycm9yIgogCiBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbIF1dLCBbWwogICByZXR1cm4gMDsKQEAgLTE3NzcsNyArMTk1NCw3IEBACiBBQ19TVUJTVChbRkxBR19XX0VYVFJBXSwgWy1XZXh0cmFdKQogQUNfTVNHX1JFU1VMVChbLVdleHRyYV0pCiBdLCBbCi0gIENGTEFHUz0iLVciCisgIENGTEFHUz0iLVcgLVdlcnJvciIKICAgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWyBdXSwgW1sKICAgICByZXR1cm4gMDsKICAgXV0pXSwgWwpAQCAtMTc5MCwxMSArMTk2NywyMCBAQAogXSkKIENGTEFHUz0kc2FmZV9DRkxBR1MKIAorIyBPbiBBUk0gd2UgZG8gbm90IHdhbnQgdG8gcGFzcyAtV2Nhc3QtYWxpZ24gYXMgdGhhdCBwcm9kdWNlcyBsb2FkcworIyBvZiB3YXJuaW5ncy4gR0NDIGlzIGp1c3QgYmVpbmcgY29uc2VydmF0aXZlLiBTZWUgaGVyZToKKyMgaHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NjU0NTkjYzQKK2lmIHRlc3QgIlgkVkdDT05GX0FSQ0hfUFJJIiA9ICJYYXJtIjsgdGhlbgorICBBQ19TVUJTVChbRkxBR19XX0NBU1RfQUxJR05dLCBbIiJdKQorZWxzZQorICBBQ19TVUJTVChbRkxBR19XX0NBU1RfQUxJR05dLCBbLVdjYXN0LWFsaWduXSkKK2ZpCisKICMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLWZuby1zdGFjay1wcm90ZWN0b3IgPwogQUNfTVNHX0NIRUNLSU5HKFtpZiBnY2MgYWNjZXB0cyAtZm5vLXN0YWNrLXByb3RlY3Rvcl0pCiAKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iLWZuby1zdGFjay1wcm90ZWN0b3IiCitDRkxBR1M9Ii1mbm8tc3RhY2stcHJvdGVjdG9yIC1XZXJyb3IiCiAKIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1sKICAgcmV0dXJuIDA7CkBAIC0xODExLDEzICsxOTk3LDU1IEBACiAKIEFDX1NVQlNUKEZMQUdfRk5PX1NUQUNLX1BST1RFQ1RPUikKIAorIyBEb2VzIEdDQyBzdXBwb3J0IGRpc2FibGluZyBJZGVudGljYWwgQ29kZSBGb2xkaW5nPworIyBXZSB3YW50IHRvIGRpc2FibGVkIElkZW50aWNhbCBDb2RlIEZvbGRpbmcgZm9yIHRoZQorIyB0b29scyBwcmVsb2FkIHNoYXJlZCBvYmplY3RzIHRvIGdldCBiZXR0ZXIgYmFja3JhY2VzLgorIyBGb3IgR0NDIDUuMSsgLWZpcGEtaWNmIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBhdCAtTzIuCisjICJUaGUgb3B0aW1pemF0aW9uIHJlZHVjZXMgY29kZSBzaXplIGFuZCBtYXkgZGlzdHVyYgorIyAgdW53aW5kIHN0YWNrcyBieSByZXBsYWNpbmcgYSBmdW5jdGlvbiBieSBlcXVpdmFsZW50CisjICBvbmUgd2l0aCBhIGRpZmZlcmVudCBuYW1lLiIKK0FDX01TR19DSEVDS0lORyhbaWYgZ2NjIGFjY2VwdHMgLWZuby1pcGEtaWNmXSkKIAotIyBEb2VzIHRoaXMgY29tcGlsZXIgc3VwcG9ydCAtZnNhbml0aXplPXVuZGVmaW5lZD8KK3NhZmVfQ0ZMQUdTPSRDRkxBR1MKK0NGTEFHUz0iLWZuby1pcGEtaWNmIC1XZXJyb3IiCisKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1sKKyAgcmV0dXJuIDA7CitdXSldLCBbCitub19pcGFfaWNmPXllcworRkxBR19GTk9fSVBBX0lDRj0iLWZuby1pcGEtaWNmIgorQUNfTVNHX1JFU1VMVChbeWVzXSkKK10sIFsKK25vX2lwYV9pY2Y9bm8KK0ZMQUdfRk5PX0lQQV9JQ0Y9IiIKK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitDRkxBR1M9JHNhZmVfQ0ZMQUdTCisKK0FDX1NVQlNUKEZMQUdfRk5PX0lQQV9JQ0YpCisKKworIyBEb2VzIHRoaXMgY29tcGlsZXIgc3VwcG9ydCAtZnNhbml0aXplPXVuZGVmaW5lZC4gVGhpcyBpcyB0cnVlIGZvcgorIyBHQ0MgNC45IGFuZCBuZXdlci4gSG93ZXZlciwgdGhlIHVuZGVmaW5lZCBiZWhhdmlvdXIgc2FuaXRpc2VyIGluIEdDQyA1LjEKKyMgYWxzbyBjaGVja3MgZm9yIGFsaWdubWVudCB2aW9sYXRpb25zIG9uIG1lbW9yeSBhY2Nlc3NlcyB3aGljaCB0aGUgdmFsZ3JpbmQKKyMgY29kZSBiYXNlIGlzIHNwcmlua2xlZCAoaWYgbm90IGxpdHRlcmVkKSB3aXRoLiBBcyB0aG9zZSBhbGlnbm1lbnQgaXNzdWVzCisjIGRvbid0IHBvc2UgYSBwcm9ibGVtIHdlIHdhbnQgdG8gc3VwcHJlc3Mgd2FybmluZ3MgYWJvdXQgdGhlbS4KKyMgSW4gR0NDIDUuMSB0aGlzIGNhbiBiZSBkb25lIGJ5IHBhc3NpbmcgLWZuby1zYW5pdGl6ZT1hbGlnbm1lbnQuIEVhcmxpZXIKKyMgR0NDcyBkbyBub3Qgc3VwcG9ydCB0aGF0LgorIwogIyBPbmx5IGNoZWNrZWQgZm9yIGlmIC0tZW5hYmxlLXVic2FuIHdhcyBnaXZlbi4KIGlmIHRlc3QgIngke3ZnX2N2X3Vic2FufSIgPSAieHllcyI7IHRoZW4KLUFDX01TR19DSEVDS0lORyhbaWYgZ2NjIGFjY2VwdHMgLWZzYW5pdGl6ZT11bmRlZmluZWRdKQorQUNfTVNHX0NIRUNLSU5HKFtpZiBnY2MgYWNjZXB0cyAtZnNhbml0aXplPXVuZGVmaW5lZCAtZm5vLXNhbml0aXplPWFsaWdubWVudF0pCiBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi1DRkxBR1M9Ii1mc2FuaXRpemU9dW5kZWZpbmVkIgorQ0ZMQUdTPSItZnNhbml0aXplPXVuZGVmaW5lZCAtZm5vLXNhbml0aXplPWFsaWdubWVudCAtV2Vycm9yIgorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLCBbWworICByZXR1cm4gMDsKK11dKV0sIFsKK0ZMQUdfRlNBTklUSVpFPSItZnNhbml0aXplPXVuZGVmaW5lZCAtZm5vLXNhbml0aXplPWFsaWdubWVudCIKK0xJQl9VQlNBTj0iLXN0YXRpYy1saWJ1YnNhbiIKK0FDX01TR19SRVNVTFQoW3llc10pCitdLCBbCitDRkxBR1M9Ii1mc2FuaXRpemU9dW5kZWZpbmVkIC1XZXJyb3IiCiBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbXV0sIFtbCiAgIHJldHVybiAwOwogXV0pXSwgWwpAQCAtMTgyOSw2ICsyMDU3LDcgQEAKIExJQl9VQlNBTj0iIgogQUNfTVNHX1JFU1VMVChbbm9dKQogXSkKK10pCiBDRkxBR1M9JHNhZmVfQ0ZMQUdTCiBBQ19TVUJTVChGTEFHX0ZTQU5JVElaRSkKIEFDX1NVQlNUKExJQl9VQlNBTikKQEAgLTE4MzgsNyArMjA2Nyw3IEBACiBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGdjYyBhY2NlcHRzIC0tcGFyYW0gaW5saW5lLXVuaXQtZ3Jvd3RoXSkKIAogc2FmZV9DRkxBR1M9JENGTEFHUwotQ0ZMQUdTPSItLXBhcmFtIGlubGluZS11bml0LWdyb3d0aD05MDAiCitDRkxBR1M9Ii0tcGFyYW0gaW5saW5lLXVuaXQtZ3Jvd3RoPTkwMCAtV2Vycm9yIgogCiBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbIF1dLCBbWwogICByZXR1cm4gMDsKQEAgLTE4NTgsNyArMjA4Nyw3IEBACiBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGdjYyBhY2NlcHRzIC1nZHdhcmYtNCAtZmRlYnVnLXR5cGVzLXNlY3Rpb25dKQogCiBzYWZlX0NGTEFHUz0kQ0ZMQUdTCi1DRkxBR1M9Ii1nZHdhcmYtNCAtZmRlYnVnLXR5cGVzLXNlY3Rpb24iCitDRkxBR1M9Ii1nZHdhcmYtNCAtZmRlYnVnLXR5cGVzLXNlY3Rpb24gLVdlcnJvciIKIAogQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWyBdXSwgW1sKICAgcmV0dXJuIDA7CkBAIC0xOTI0LDcgKzIxNTMsNyBAQAogQUNfTVNHX0NIRUNLSU5HKFtpZiB0aGUgbGlua2VyIGFjY2VwdHMgLVdsLC1UdGV4dC1zZWdtZW50XSkKIAogc2FmZV9DRkxBR1M9JENGTEFHUwotQ0ZMQUdTPSItc3RhdGljIC1ub2RlZmF1bHRsaWJzIC1ub3N0YXJ0ZmlsZXMgLVdsLC1UdGV4dC1zZWdtZW50PSR2YWx0X2xvYWRfYWRkcmVzc19wcmlfbm9ybWwiCitDRkxBR1M9Ii1zdGF0aWMgLW5vZGVmYXVsdGxpYnMgLW5vc3RhcnRmaWxlcyAtV2wsLVR0ZXh0LXNlZ21lbnQ9JHZhbHRfbG9hZF9hZGRyZXNzX3ByaV9ub3JtbCAtV2Vycm9yIgogCiBBQ19MSU5LX0lGRUxTRSgKIFtBQ19MQU5HX1NPVVJDRShbaW50IF9zdGFydCAoKSB7IHJldHVybiAwOyB9XSldLApAQCAtMTk1Myw3ICsyMTgyLDcgQEAKICMgZGlyZWN0bHkuCiBBQ19NU0dfQ0hFQ0tJTkcoW2lmIHRoZSBsaW5rZXIgYWNjZXB0cyAtV2wsLS1idWlsZC1pZD1ub25lXSkKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iLVdsLC0tYnVpbGQtaWQ9bm9uZSIKK0NGTEFHUz0iLVdsLC0tYnVpbGQtaWQ9bm9uZSAtV2Vycm9yIgogCiBBQ19MSU5LX0lGRUxTRSgKIFtBQ19MQU5HX1BST0dSQU0oWyBdLCBbcmV0dXJuIDA7XSldLApAQCAtMjAxMSw2ICsyMjQwLDI0IEBACiBmaQogCiAKKyMgZG9lcyB0aGUgYW1kNjQgYXNzZW1ibGVyIHVuZGVyc3RhbmQgImZ4c2F2ZTY0IiBhbmQgImZ4cnN0b3I2NCI/CitBQ19NU0dfQ0hFQ0tJTkcoW2lmIGFtZDY0IGFzc2VtYmxlciBzdXBwb3J0cyBmeHNhdmU2NC9meHJzdG9yNjRdKQorCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbXV0sIFtbCit2b2lkKiBwOworYXNtIF9fdm9sYXRpbGVfXygiZnhzYXZlNjQgKCUwKSIgOiA6ICJyIiAocCkgOiAibWVtb3J5IiApOworYXNtIF9fdm9sYXRpbGVfXygiZnhyc3RvcjY0ICglMCkiIDogOiAiciIgKHApIDogIm1lbW9yeSIgKTsKK11dKV0sIFsKK2FjX2hhdmVfYXNfYW1kNjRfZnhzYXZlNjQ9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorXSwgWworYWNfaGF2ZV9hc19hbWQ2NF9meHNhdmU2ND1ubworQUNfTVNHX1JFU1VMVChbbm9dKQorXSkKK2lmIHRlc3QgeCRhY19oYXZlX2FzX2FtZDY0X2Z4c2F2ZTY0ID0geHllcyA7IHRoZW4KKyAgQUNfREVGSU5FKEhBVkVfQVNfQU1ENjRfRlhTQVZFNjQsIDEsIFtEZWZpbmUgdG8gMSBpZiBhcyBzdXBwb3J0cyBmeHNhdmU2NC9meHJzdG9yNjQuXSkKK2ZpCisKICMgZG9lcyB0aGUgeDg2L2FtZDY0IGFzc2VtYmxlciB1bmRlcnN0YW5kIFNTRTMgaW5zdHJ1Y3Rpb25zPwogIyBOb3RlLCB0aGlzIGRvZXNuJ3QgZ2VuZXJhdGUgYSBDLWxldmVsIHN5bWJvbC4gIEl0IGdlbmVyYXRlcyBhCiAjIGF1dG9tYWtlLWxldmVsIHN5bWJvbCAoQlVJTERfU1NFM19URVNUUyksIHVzZWQgaW4gdGVzdCBNYWtlZmlsZS5hbSdzCkBAIC0yMDM3LDcgKzIyODQsNyBAQAogQUNfTVNHX0NIRUNLSU5HKFtpZiB4ODYvYW1kNjQgYXNzZW1ibGVyIHNwZWFrcyBTU1NFM10pCiAKIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotQ0ZMQUdTPSIkQ0ZMQUdTIC1tc3NlIgorQ0ZMQUdTPSIkQ0ZMQUdTIC1tc3NlIC1XZXJyb3IiCiBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbXV0sIFtbCiAgIGRvIHsgbG9uZyBsb25nIGludCB4OyAKICAgIF9fYXNtX18gX192b2xhdGlsZV9fKApAQCAtMjMxNSw2ICsyNTYyLDEwIEBACiAgIGRvIHsKICAgICBhc20gKCJibmRtb3YgJWJuZDAsKCVyc3ApIik7CiAgICAgYXNtICgiYm5kbGR4IDMoJXJieCwlcmR4KSwgJWJuZDIiKTsKKyAgICBhc20gKCJibmQgY2FsbCBmb29cbiIKKyAgICAgICAgICBibmQgam1wICBlbmRcbiIKKyAgICAgICAgICBmb286IGJuZCByZXRcbiIKKyAgICAgICAgICBlbmQ6IG5vcCIpOwogICB9IHdoaWxlICgwKQogXV0pXSwgWwogYWNfaGF2ZV9hc19tcHg9eWVzCkBAIC0yNDAzLDEyICsyNjU0LDg0MSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2Z19jdl90bHM9bm9dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2Z19jdl90bHM9JHZnX2N2X2xpbmt0aW1lX3Rsc10pXSldKQogCi1pZiB0ZXN0ICIkdmdfY3ZfdGxzIiA9IHllczsgdGhlbgoraWYgdGVzdCAiJHZnX2N2X3RscyIgPSB5ZXMgLWEgJGlzX2NsYW5nICE9IGFwcGxlbGx2bTsgdGhlbgogQUNfREVGSU5FKFtIQVZFX1RMU10sIDEsIFtjYW4gdXNlIF9fdGhyZWFkIHRvIGRlZmluZSB0aHJlYWQtbG9jYWwgdmFyaWFibGVzXSkKIGZpCiAKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVja3MuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpZiB0ZXN0ICIkVkdDT05GX09TIiA9ICJzb2xhcmlzIiA7IHRoZW4KKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyBpZiB0aGUgU3VuIFN0dWRpbyBBc3NlbWJsZXIgaXMgdXNlZCB0bworIyBidWlsZCBWYWxncmluZC4gIFRoZSB0ZXN0IGNoZWNrcyBpZiB0aGUgeDg2L2FtZDY0IGFzc2VtYmxlciB1bmRlcnN0YW5kcyB0aGUKKyMgY21vdmwubCBpbnN0cnVjdGlvbiwgaWYgeWVzIHRoZW4gaXQncyBTdW4gQXNzZW1ibGVyLgorIworIyBDLWxldmVsIHN5bWJvbDogbm9uZQorIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfU1VOX1NUVURJT19BUworIworQUNfTVNHX0NIRUNLSU5HKFtpZiB4ODYvYW1kNjQgYXNzZW1ibGVyIHNwZWFrcyBjbW92bC5sIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCitdXSwgW1sKKyAgX19hc21fXyBfX3ZvbGF0aWxlX18oImNtb3ZsLmwgJWVkeCwgJWVheCIpOworXV0pXSwgWworc29sYXJpc19oYXZlX3N1bl9zdHVkaW9fYXM9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorXSwgWworc29sYXJpc19oYXZlX3N1bl9zdHVkaW9fYXM9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX1NVTl9TVFVESU9fQVMsIHRlc3QgeCRzb2xhcmlzX2hhdmVfc3VuX3N0dWRpb19hcyA9IHh5ZXMpCisKKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyBpZiBzeW1ib2xzIF9feHBnNCBhbmQgX194cGc2CisjIGFyZSBwcmVzZW50IGluIGxpbmtlZCBlbGZzIHdoZW4gZ2NjIGlzIGludm9rZWQgd2l0aCAtc3RkPWdudTk5LgorIyBTZWUgc29sYXJpcy92Z3ByZWxvYWQtc29sYXJpcy5tYXBmaWxlIGZvciBkZXRhaWxzLgorIyBnY2Mgb24gU29sYXJpcyBpbnN0cnVjdHMgbGlua2VyIHRvIGluY2x1ZGUgdGhlc2Ugc3ltYm9scywKKyMgZ2NjIG9uIGlsbHVtb3MgZG9lcyBub3QuCisjCisjIEMtbGV2ZWwgc3ltYm9sOiBub25lCisjIEF1dG9tYWtlLWxldmVsIHN5bWJvbDogU09MQVJJU19YUEdfU1lNQk9MU19QUkVTRU5UCisjCitzYXZlX0NGTEFHUz0iJENGTEFHUyIKK0NGTEFHUz0iJENGTEFHUyAtc3RkPWdudTk5IgorQUNfTVNHX0NIRUNLSU5HKFtpZiB4cGcgc3ltYm9scyBhcmUgcHJlc2VudCB3aXRoIC1zdGQ9Z251OTkgKFNvbGFyaXMtc3BlY2lmaWMpXSkKK0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkgeworICAgIGNoYXIgY29tbWFuZFtQQVRIX01BWCArIDUwXTsKKyAgICBzbnByaW50Zihjb21tYW5kLCBzaXplb2YoY29tbWFuZCksICJubSAlcyB8IGVncmVwICdfX3hwZ1s0LDZdJyIsIGFyZ3ZbMF0pOworCisgICAgRklMRSAqb3V0cHV0ID0gcG9wZW4oY29tbWFuZCwgInIiKTsKKyAgICBpZiAob3V0cHV0ID09IE5VTEwpIHJldHVybiAtMTsKKworICAgIGNoYXIgYnVmWzEwMF07CisgICAgaWYgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIG91dHB1dCkgIT0gTlVMTCkgeworICAgICAgICBwY2xvc2Uob3V0cHV0KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcGNsb3NlKG91dHB1dCk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KK30KK11dKV0sIFsKK3NvbGFyaXNfeHBnX3N5bWJvbHNfcHJlc2VudD15ZXMKK0FDX01TR19SRVNVTFQoW3llc10pCitdLCBbCitzb2xhcmlzX3hwZ19zeW1ib2xzX3ByZXNlbnQ9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX1hQR19TWU1CT0xTX1BSRVNFTlQsIHRlc3QgeCRzb2xhcmlzX3hwZ19zeW1ib2xzX3ByZXNlbnQgPSB4eWVzKQorQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIC9wcm9jL3NlbGYvY21kbGluZQorIyBvciAvcHJvYy88cGlkPi9jbWRsaW5lIGlzIHN1cHBvcnRlZC4KKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfUFJPQ19DTURMSU5FCisjIEF1dG9tYWtlLWxldmVsIHN5bWJvbDogU09MQVJJU19QUk9DX0NNRExJTkUKKyMKK0FDX0NIRUNLX0ZJTEUoWy9wcm9jL3NlbGYvY21kbGluZV0sCitbCitzb2xhcmlzX3Byb2NfY21kbGluZT15ZXMKK0FDX0RFRklORShbU09MQVJJU19QUk9DX0NNRExJTkVdLCAxLAorICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSAvcHJvYy9zZWxmL2NtZGxpbmUuXSkKK10sIFsKK3NvbGFyaXNfcHJvY19jbWRsaW5lPW5vCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19QUk9DX0NNRExJTkUsIHRlc3QgeCRzb2xhcmlzX3Byb2NfY21kbGluZSA9IHh5ZXMpCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGRlZmF1bHQgcGxhdGZvcm0gZm9yIHRoZSBWYWxncmluZCBsYXVuY2hlci4KKyMgVXNlZCBpbiBjYXNlIHRoZSBsYXVuY2hlciBjYW5ub3Qgc2VsZWN0IHBsYXRmb3JtIGJ5IGxvb2tpbmcgYXQgdGhlIGNsaWVudAorIyBpbWFnZSAoZm9yIGV4YW1wbGUgYmVjYXVzZSB0aGUgZXhlY3V0YWJsZSBpcyBhIHNoZWxsIHNjcmlwdCkuCisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX0xBVU5DSEVSX0RFRkFVTFRfUExBVEZPUk0KKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBub25lCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBkZWZhdWx0IHBsYXRmb3JtIG9mIFZhbGdyaW5kIGxhdW5jaGVyIChTb2xhcmlzLXNwZWNpZmljKV0pCisjIEdldCB0aGUgRUxGIGNsYXNzIG9mIC9iaW4vc2ggZmlyc3QuCitpZiAhIHRlc3QgLWYgL2Jpbi9zaDsgdGhlbgorICBBQ19NU0dfRVJST1IoW1NoZWxsIGludGVycHJldGVyIGAvYmluL3NoJyBub3QgZm91bmQuXSkKK2ZpCitlbGZfY2xhc3M9JCggL3Vzci9iaW4vZmlsZSAvYmluL3NoIHwgc2VkIC1uICdzLy4qRUxGIFwoLi5cKS1iaXQuKi9cMS9wJyApCitjYXNlICIkZWxmX2NsYXNzIiBpbgorICA2NCkKKyAgICBkZWZhdWx0X2FyY2g9IiRWR0NPTkZfQVJDSF9QUkkiOworICAgIDs7CisgIDMyKQorICAgIGlmIHRlc3QgIngkVkdDT05GX0FSQ0hfU0VDIiAhPSAieCI7IHRoZW4KKyAgICAgIGRlZmF1bHRfYXJjaD0iJFZHQ09ORl9BUkNIX1NFQyIKKyAgICBlbHNlCisgICAgICBkZWZhdWx0X2FyY2g9IiRWR0NPTkZfQVJDSF9QUkkiOworICAgIGZpCisgICAgOzsKKyAgKikKKyAgICBBQ19NU0dfRVJST1IoW0Nhbm5vdCBkZXRlcm1pbmUgRUxGIGNsYXNzIG9mIGAvYmluL3NoJy5dKQorICAgIDs7Citlc2FjCitkZWZhdWx0X3BsYXRmb3JtPSIkZGVmYXVsdF9hcmNoLSRWR0NPTkZfT1MiCitBQ19NU0dfUkVTVUxUKFskZGVmYXVsdF9wbGF0Zm9ybV0pCitBQ19ERUZJTkVfVU5RVU9URUQoW1NPTEFSSVNfTEFVTkNIRVJfREVGQVVMVF9QTEFURk9STV0sIFsiJGRlZmF1bHRfcGxhdGZvcm0iXSwKKyAgICAgICAgICAgICAgICAgICBbRGVmYXVsdCBwbGF0Zm9ybSBmb3IgVmFsZ3JpbmQgbGF1bmNoZXIuXSkKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgaWYgdGhlIG9sZCBzeXNjYWxscyBhcmUgYXZhaWxhYmxlLgorIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19PTERfU1lTQ0FMTFMKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX09MRF9TWVNDQUxMUworIworQUNfTVNHX0NIRUNLSU5HKFtmb3IgdGhlIG9sZCBTb2xhcmlzIHN5c2NhbGxzIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KK11dLCBbWworICByZXR1cm4gIVNZU19vcGVuOworXV0pXSwgWworc29sYXJpc19vbGRfc3lzY2FsbHM9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorQUNfREVGSU5FKFtTT0xBUklTX09MRF9TWVNDQUxMU10sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBvbGQgU29sYXJpcyBzeXNjYWxscy5dKQorXSwgWworc29sYXJpc19vbGRfc3lzY2FsbHM9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX09MRF9TWVNDQUxMUywgdGVzdCB4JHNvbGFyaXNfb2xkX3N5c2NhbGxzID0geHllcykKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgaWYgdGhlIG5ldyBhY2NlcHQoKSBzeXNjYWxsIGlzIGF2YWlsYWJsZS4KKyMKKyMgT2xkIHN5c2NhbGw6CisjIGludCBhY2NlcHQoaW50IHNvY2ssIHN0cnVjdCBzb2NrYWRkciAqbmFtZSwgc29ja2xlbl90ICpuYW1lbGVucCwKKyMgICAgICAgICAgICBpbnQgdmVyc2lvbik7CisjCisjIE5ldyBzeXNjYWxsIChhdmFpbGFibGUgb24gaWxsdW1vcyk6CisjIGludCBhY2NlcHQoaW50IHNvY2ssIHN0cnVjdCBzb2NrYWRkciAqbmFtZSwgc29ja2xlbl90ICpuYW1lbGVucCwKKyMgICAgICAgICAgICBpbnQgdmVyc2lvbiwgaW50IGZsYWdzKTsKKyMKKyMgSWYgdGhlIG9sZCBzeXNjYWxsIGlzIHByZXNlbnQgdGhlbiB0aGUgZm9sbG93aW5nIHN5c2NhbGwgd2lsbCBmYWlsIHdpdGgKKyMgRU5PVFNPQ0sgKGJlY2F1c2UgZmlsZSBkZXNjcmlwdG9yIDAgaXMgbm90IGEgc29ja2V0KSwgaWYgdGhlIG5ldyBzeXNjYWxsIGlzCisjIGF2YWlsYWJsZSB0aGVuIGl0IHdpbGwgZmFpbCB3aXRoIEVJTlZBTCAoYmVjYXVzZSB0aGUgZmxhZ3MgcGFyYW1ldGVyIGlzCisjIGludmFsaWQpLgorIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19ORVdfQUNDRVBUX1NZU0NBTEwKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBub25lCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgbmV3IGBhY2NlcHQnIHN5c2NhbGwgKFNvbGFyaXMtc3BlY2lmaWMpXSkKK0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KK11dLCBbWworICBlcnJubyA9IDA7CisgIHN5c2NhbGwoU1lTX2FjY2VwdCwgMCwgMCwgMCwgMCwgLTEpOworICByZXR1cm4gIShlcnJubyA9PSBFSU5WQUwpOworXV0pXSwgWworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19ORVdfQUNDRVBUX1NZU0NBTExdLCAxLAorICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgbmV3IGBhY2NlcHQnIHN5c2NhbGwuXSkKK10sIFsKK0FDX01TR19SRVNVTFQoW25vXSkKK10pCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIHRoZSBuZXcgaWxsdW1vcyBwaXBlKCkgc3lzY2FsbCBpcworIyBhdmFpbGFibGUuCisjCisjIE9sZCBzeXNjYWxsOgorIyBsb25nbG9uZ190IHBpcGUoKTsKKyMKKyMgTmV3IHN5c2NhbGwgKGF2YWlsYWJsZSBvbiBpbGx1bW9zKToKKyMgaW50IHBpcGUoaW50cHRyX3QgYXJnLCBpbnQgZmxhZ3MpOworIworIyBJZiB0aGUgb2xkIHN5c2NhbGwgaXMgcHJlc2VudCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FsbCB3aWxsIHN1Y2NlZWQsIGlmIHRoZQorIyBuZXcgc3lzY2FsbCBpcyBhdmFpbGFibGUgdGhlbiBpdCB3aWxsIGZhaWwgd2l0aCBFRkFVTFQgKGJlY2F1c2UgYWRkcmVzcyAwCisjIGNhbm5vdCBiZSBhY2Nlc3NlZCkuCisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX05FV19QSVBFX1NZU0NBTEwKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBub25lCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgbmV3IGBwaXBlJyBzeXNjYWxsIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CitdXSwgW1sKKyAgZXJybm8gPSAwOworICBzeXNjYWxsKFNZU19waXBlLCAwLCAwKTsKKyAgcmV0dXJuICEoZXJybm8gPT0gRUZBVUxUKTsKK11dKV0sIFsKK0FDX01TR19SRVNVTFQoW3llc10pCitBQ19ERUZJTkUoW1NPTEFSSVNfTkVXX1BJUEVfU1lTQ0FMTF0sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBuZXcgYHBpcGUnIHN5c2NhbGwuXSkKK10sIFsKK0FDX01TR19SRVNVTFQoW25vXSkKK10pCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIHRoZSBuZXcgbHdwX3NpZ3F1ZXVlKCkgc3lzY2FsbCBpcworIyBhdmFpbGFibGUuCisjCisjIE9sZCBzeXNjYWxsOgorIyBpbnQgbHdwX2tpbGwoaWRfdCBsd3BpZCwgaW50IHNpZyk7CisjCisjIE5ldyBzeXNjYWxsIChhdmFpbGFibGUgb24gU29sYXJpcyAxMSk6CisjIGludCBsd3Bfc2lncXVldWUoaWRfdCBsd3BpZCwgaW50IHNpZywgdm9pZCAqdmFsdWUsCisjICAgICAgICAgICAgICAgICAgaW50IHNpX2NvZGUsIHRpbWVzcGVjX3QgKnRpbWVvdXQpOworIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19MV1BfU0lHUVVFVUVfU1lTQ0FMTAorIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIHRoZSBuZXcgYGx3cF9zaWdxdWV1ZScgc3lzY2FsbCAoU29sYXJpcy1zcGVjaWZpYyldKQorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+IAorXV0sIFtbCisgIHJldHVybiAhU1lTX2x3cF9zaWdxdWV1ZTsKK11dKV0sIFsKK3NvbGFyaXNfbHdwX3NpZ3F1ZXVlX3N5c2NhbGw9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorQUNfREVGSU5FKFtTT0xBUklTX0xXUF9TSUdRVUVVRV9TWVNDQUxMXSwgMSwKKyAgICAgICAgICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIG5ldyBgbHdwX3NpZ3F1ZXVlJyBzeXNjYWxsLl0pCitdLCBbCitzb2xhcmlzX2x3cF9zaWdxdWV1ZV9zeXNjYWxsPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19MV1BfU0lHUVVFVUVfU1lTQ0FMTCwgdGVzdCB4JHNvbGFyaXNfbHdwX3NpZ3F1ZXVlX3N5c2NhbGwgPSB4eWVzKQorCisKKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyBpZiB0aGUgbHdwX3NpZ3F1ZXVlKCkgc3lzY2FsbAorIyB0YWtlcyBib3RoIHBpZCBhbmQgdGhyZWFkIGlkIGFyZ3VtZW50cyBvciBqdXN0IHRocmVhZCBpZC4KKyMKKyMgT2xkIHN5c2NhbGwgKGF2YWlsYWJsZSBvbiBTb2xhcmlzIDExLngpOgorIyBpbnQgbHdwX3NpZ3F1ZXVlKGlkX3QgbHdwaWQsIGludCBzaWcsIHZvaWQgKnZhbHVlLAorIyAgICAgICAgICAgICAgICAgIGludCBzaV9jb2RlLCB0aW1lc3BlY190ICp0aW1lb3V0KTsKKyMKKyMgTmV3IHN5c2NhbGwgKGF2YWlsYWJsZSBvbiBTb2xhcmlzIDEyKToKKyMgaW50IGx3cF9zaWdxdWV1ZShwaWRfdCBwaWQsIGlkX3QgbHdwaWQsIGludCBzaWcsIHZvaWQgKnZhbHVlLAorIyAgICAgICAgICAgICAgICAgIGludCBzaV9jb2RlLCB0aW1lc3BlY190ICp0aW1lb3V0KTsKKyMKKyMgSWYgdGhlIG9sZCBzeXNjYWxsIGlzIHByZXNlbnQgdGhlbiB0aGUgZm9sbG93aW5nIHN5c2NhbGwgd2lsbCBmYWlsIHdpdGgKKyMgRUlOVkFMIChiZWNhdXNlIHNpZ25hbCBpcyBvdXQgb2YgcmFuZ2UpOyBpZiB0aGUgbmV3IHN5c2NhbGwgaXMgYXZhaWxhYmxlCisjIHRoZW4gaXQgd2lsbCBmYWlsIHdpdGggRVNSQ0ggKGJlY2F1c2UgaXQgd291bGQgbm90IGZpbmQgc3VjaCB0aHJlYWQgaW4gdGhlCisjIGN1cnJlbnQgcHJvY2VzcykuCisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX0xXUF9TSUdRVUVVRV9TWVNDQUxMX1RBS0VTX1BJRAorIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTExfVEFLRVNfUElECisjCitBTV9DT05EX0lGKFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwsCitBQ19NU0dfQ0hFQ0tJTkcoW2lmIHRoZSBgbHdwX3NpZ3F1ZXVlJyBzeXNjYWxsIGFjY2VwdHMgcGlkIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CitdXSwgW1sKKyAgZXJybm8gPSAwOworICBzeXNjYWxsKFNZU19sd3Bfc2lncXVldWUsIDAsIDEwMSwgMCwgMCwgMCwgMCk7CisgIHJldHVybiAhKGVycm5vID09IEVTUkNIKTsKK11dKV0sIFsKK3NvbGFyaXNfbHdwX3NpZ3F1ZXVlX3N5c2NhbGxfdGFrZXNfcGlkPXllcworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19MV1BfU0lHUVVFVUVfU1lTQ0FMTF9UQUtFU19QSURdLCAxLAorICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgbmV3IGBsd3Bfc2lncXVldWUnIHN5c2NhbGwgd2hpY2ggYWNjZXB0cyBwaWQuXSkKK10sIFsKK3NvbGFyaXNfbHdwX3NpZ3F1ZXVlX3N5c2NhbGxfdGFrZXNfcGlkPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19MV1BfU0lHUVVFVUVfU1lTQ0FMTF9UQUtFU19QSUQsCisgICAgICAgICAgICAgICB0ZXN0IHgkc29sYXJpc19sd3Bfc2lncXVldWVfc3lzY2FsbF90YWtlc19waWQgPSB4eWVzKQorLAorQU1fQ09ORElUSU9OQUwoU09MQVJJU19MV1BfU0lHUVVFVUVfU1lTQ0FMTF9UQUtFU19QSUQsIHRlc3QgeCA9IHkpCispCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIHRoZSBuZXcgbHdwX25hbWUoKSBzeXNjYWxsIGlzCisjIGF2YWlsYWJsZS4KKyMKKyMgTmV3IHN5c2NhbGwgKGF2YWlsYWJsZSBvbiBTb2xhcmlzIDExKToKKyMgaW50IGx3cF9uYW1lKGludCBvcGNvZGUsIGlkX3QgbHdwaWQsIGNoYXIgKm5hbWUsIHNpemVfdCBsZW4pOworIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19MV1BfTkFNRV9TWVNDQUxMCisjIEF1dG9tYWtlLWxldmVsIHN5bWJvbDogU09MQVJJU19MV1BfTkFNRV9TWVNDQUxMCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgbmV3IGBsd3BfbmFtZScgc3lzY2FsbCAoU29sYXJpcy1zcGVjaWZpYyldKQorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CitdXSwgW1sKKyAgcmV0dXJuICFTWVNfbHdwX25hbWU7CitdXSldLCBbCitzb2xhcmlzX2x3cF9uYW1lX3N5c2NhbGw9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorQUNfREVGSU5FKFtTT0xBUklTX0xXUF9OQU1FX1NZU0NBTExdLCAxLAorICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgbmV3IGBsd3BfbmFtZScgc3lzY2FsbC5dKQorXSwgWworc29sYXJpc19sd3BfbmFtZV9zeXNjYWxsPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19MV1BfTkFNRV9TWVNDQUxMLCB0ZXN0IHgkc29sYXJpc19sd3BfbmFtZV9zeXNjYWxsID0geHllcykKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgaWYgdGhlIG5ldyB6b25lKCkgc3lzY2FsbCBzdWJjb2RlcworIyBaT05FX0xJU1RfREVGVU5DVCBhbmQgWk9ORV9HRVRBVFRSX0RFRlVOQ1QgYXJlIGF2YWlsYWJsZS4gIFRoZXNlIHN1YmNvZGVzCisjIHdlcmUgYWRkZWQgaW4gU29sYXJpcyAxMSBidXQgYXJlIG1pc3Npbmcgb24gaWxsdW1vcy4KKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfWk9ORV9ERUZVTkNUCisjIEF1dG9tYWtlLWxldmVsIHN5bWJvbDogU09MQVJJU19aT05FX0RFRlVOQ1QKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIFpPTkVfTElTVF9ERUZVTkNUIGFuZCBaT05FX0dFVEFUVFJfREVGVU5DVCAoU29sYXJpcy1zcGVjaWZpYyldKQorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy96b25lLmg+CitdXSwgW1sKKyAgcmV0dXJuICEoWk9ORV9MSVNUX0RFRlVOQ1QgJiYgWk9ORV9HRVRBVFRSX0RFRlVOQ1QpOworXV0pXSwgWworc29sYXJpc196b25lX2RlZnVuY3Q9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorQUNfREVGSU5FKFtTT0xBUklTX1pPTkVfREVGVU5DVF0sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgWk9ORV9MSVNUX0RFRlVOQ1QnIGFuZCBgWk9ORV9HRVRBVFRSX0RFRlVOQycgY29uc3RhbnRzLl0pCitdLCBbCitzb2xhcmlzX3pvbmVfZGVmdW5jdD1ubworQUNfTVNHX1JFU1VMVChbbm9dKQorXSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfWk9ORV9ERUZVTkNULCB0ZXN0IHgkc29sYXJpc196b25lX2RlZnVuY3QgPSB4eWVzKQorCisKKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyBpZiB0aGUgbmV3IHNobXN5cygpIHN5c2NhbGwgc3ViY29kZXMKKyMgSVBDX1hTVEFUNjQsIFNITUFEViwgU0hNX0FEVl9HRVQsIFNITV9BRFZfU0VUIGFuZCBTSE1HRVRfT1NNIGFyZSBhdmFpbGFibGUuCisjIFRoZXNlIHN1YmNvZGVzIHdlcmUgYWRkZWQgaW4gU29sYXJpcyAxMSBidXQgYXJlIG1pc3Npbmcgb24gaWxsdW1vcy4KKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfU0hNX05FVworIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfU0hNX05FVworIworQUNfTVNHX0NIRUNLSU5HKFtmb3IgU0hNQURWLCBTSE1fQURWX0dFVCwgU0hNX0FEVl9TRVQgYW5kIFNITUdFVF9PU00gKFNvbGFyaXMtc3BlY2lmaWMpXSkKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyNpbmNsdWRlIDxzeXMvaXBjX2ltcGwuaD4KKyNpbmNsdWRlIDxzeXMvc2htLmg+CisjaW5jbHVkZSA8c3lzL3NobV9pbXBsLmg+CitdXSwgW1sKKyAgcmV0dXJuICEoSVBDX1hTVEFUNjQgJiYgU0hNQURWICYmIFNITV9BRFZfR0VUICYmIFNITV9BRFZfU0VUICYmIFNITUdFVF9PU00pOworXV0pXSwgWworc29sYXJpc19zaG1fbmV3PXllcworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19TSE1fTkVXXSwgMSwKKyAgICAgICAgICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBJUENfWFNUQVQ2NCcsIGBTSE1BRFYnLCBgU0hNX0FEVl9HRVQnLCBgU0hNX0FEVl9TRVQnIGFuZCBgU0hNR0VUX09TTScgY29uc3RhbnRzLl0pCitdLCBbCitzb2xhcmlzX3NobV9uZXc9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX1NITV9ORVcsIHRlc3QgeCRzb2xhcmlzX3NobV9uZXcgPSB4eWVzKQorCisKKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyBpZiBwcnhyZWdzZXRfdCBpcyBhdmFpbGFibGUuICBJbGx1bW9zCisjIGN1cnJlbnRseSBkb2VzIG5vdCBkZWZpbmUgaXQgb24gdGhlIHg4NiBwbGF0Zm9ybS4KKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfUFJYUkVHU0VUX1QKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX1BSWFJFR1NFVF9UCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgYHByeHJlZ3NldF90JyB0eXBlIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8c3lzL3Byb2Nmc19pc2EuaD4KK11dLCBbWworICByZXR1cm4gIXNpemVvZihwcnhyZWdzZXRfdCk7CitdXSldLCBbCitzb2xhcmlzX3ByeHJlZ3NldF90PXllcworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19QUlhSRUdTRVRfVF0sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJ4cmVnc2V0X3QnIHR5cGUuXSkKK10sIFsKK3NvbGFyaXNfcHJ4cmVnc2V0X3Q9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX1BSWFJFR1NFVF9ULCB0ZXN0IHgkc29sYXJpc19wcnhyZWdzZXRfdCA9IHh5ZXMpCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIHRoZSBuZXcgZnJlYWxwYXRoYXQoKSBzeXNjYWxsIGlzCisjIGF2YWlsYWJsZS4KKyMKKyMgTmV3IHN5c2NhbGwgKGF2YWlsYWJsZSBvbiBTb2xhcmlzIDExLjEpOgorIyBpbnQgZnJlYWxwYXRoYXQoaW50IGZkLCBjaGFyICpwYXRoLCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4pOworIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19GUkVBTFBBVEhBVF9TWVNDQUxMCisjIEF1dG9tYWtlLWxldmVsIHN5bWJvbDogU09MQVJJU19GUkVBTFBBVEhBVF9TWVNDQUxMCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgbmV3IGBmcmVhbHBhdGhhdCcgc3lzY2FsbCAoU29sYXJpcy1zcGVjaWZpYyldKQorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CitdXSwgW1sKKyAgcmV0dXJuICFTWVNfZnJlYWxwYXRoYXQ7CitdXSldLCBbCitzb2xhcmlzX2ZyZWFscGF0aGF0X3N5c2NhbGw9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorQUNfREVGSU5FKFtTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTExdLCAxLAorICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgbmV3IGBmcmVhbHBhdGhhdCcgc3lzY2FsbC5dKQorXSwgWworc29sYXJpc19mcmVhbHBhdGhhdF9zeXNjYWxsPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19GUkVBTFBBVEhBVF9TWVNDQUxMLCB0ZXN0IHgkc29sYXJpc19mcmVhbHBhdGhhdF9zeXNjYWxsID0geHllcykKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgaWYgdGhlIG5ldyB1dWlkc3lzKCkgc3lzY2FsbCBpcworIyBhdmFpbGFibGUuCisjCisjIE5ldyBzeXNjYWxsIChhdmFpbGFibGUgb24gbmV3ZXIgU29sYXJpcyk6CisjIGludCB1dWlkc3lzKHN0cnVjdCB1dWlkICp1dWlkKTsKKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfVVVJRFNZU19TWVNDQUxMCisjIEF1dG9tYWtlLWxldmVsIHN5bWJvbDogU09MQVJJU19VVUlEU1lTX1NZU0NBTEwKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIHRoZSBuZXcgYHV1aWRzeXMnIHN5c2NhbGwgKFNvbGFyaXMtc3BlY2lmaWMpXSkKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorXV0sIFtbCisgIHJldHVybiAhU1lTX3V1aWRzeXM7CitdXSldLCBbCitzb2xhcmlzX3V1aWRzeXNfc3lzY2FsbD15ZXMKK0FDX01TR19SRVNVTFQoW3llc10pCitBQ19ERUZJTkUoW1NPTEFSSVNfVVVJRFNZU19TWVNDQUxMXSwgMSwKKyAgICAgICAgICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIG5ldyBgdXVpZHN5cycgc3lzY2FsbC5dKQorXSwgWworc29sYXJpc191dWlkc3lzX3N5c2NhbGw9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX1VVSURTWVNfU1lTQ0FMTCwgdGVzdCB4JHNvbGFyaXNfdXVpZHN5c19zeXNjYWxsID0geHllcykKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgaWYgdGhlIG5ldyBsYWJlbHN5cygpIHN5c2NhbGwgc3ViY29kZQorIyBUTkRCX0dFVF9UTklQIGlzIGF2YWlsYWJsZS4gIFRoaXMgc3ViY29kZSB3YXMgYWRkZWQgaW4gU29sYXJpcyAxMSBidXQgaXMKKyMgbWlzc2luZyBvbiBpbGx1bW9zLgorIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19UTkRCX0dFVF9UTklQCisjIEF1dG9tYWtlLWxldmVsIHN5bWJvbDogU09MQVJJU19UTkRCX0dFVF9UTklQCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBUTkRCX0dFVF9UTklQIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8c3lzL3Rzb2wvdG5kYi5oPgorXV0sIFtbCisgIHJldHVybiAhVE5EQl9HRVRfVE5JUDsKK11dKV0sIFsKK3NvbGFyaXNfdG5kYl9nZXRfdG5pcD15ZXMKK0FDX01TR19SRVNVTFQoW3llc10pCitBQ19ERUZJTkUoW1NPTEFSSVNfVE5EQl9HRVRfVE5JUF0sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgVE5EQl9HRVRfVE5JUCcgY29uc3RhbnQuXSkKK10sIFsKK3NvbGFyaXNfdG5kYl9nZXRfdG5pcD1ubworQUNfTVNHX1JFU1VMVChbbm9dKQorXSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfVE5EQl9HRVRfVE5JUCwgdGVzdCB4JHNvbGFyaXNfdG5kYl9nZXRfdG5pcCA9IHh5ZXMpCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIHRoZSBuZXcgbGFiZWxzeXMoKSBzeXNjYWxsIG9wY29kZXMKKyMgVFNPTF9HRVRDTEVBUkFOQ0UgYW5kIFRTT0xfU0VUQ0xFQVJBTkNFIGFyZSBhdmFpbGFibGUuIFRoZXNlIG9wY29kZXMgd2VyZQorIyBhZGRlZCBpbiBTb2xhcmlzIDExIGJ1dCBhcmUgbWlzc2luZyBvbiBpbGx1bW9zLgorIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19UU09MX0NMRUFSQU5DRQorIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfVFNPTF9DTEVBUkFOQ0UKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIFRTT0xfR0VUQ0xFQVJBTkNFIGFuZCBUU09MX1NFVENMRUFSQU5DRSAoU29sYXJpcy1zcGVjaWZpYyldKQorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy90c29sL3RzeXNjYWxsLmg+CitdXSwgW1sKKyAgcmV0dXJuICEoVFNPTF9HRVRDTEVBUkFOQ0UgJiYgVFNPTF9TRVRDTEVBUkFOQ0UpOworXV0pXSwgWworc29sYXJpc190c29sX2NsZWFyYW5jZT15ZXMKK0FDX01TR19SRVNVTFQoW3llc10pCitBQ19ERUZJTkUoW1NPTEFSSVNfVFNPTF9DTEVBUkFOQ0VdLCAxLAorICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYFRTT0xfR0VUQ0xFQVJBTkNFJyBhbmQgYFRTT0xfU0VUQ0xFQVJBTkNFJyBjb25zdGFudHMuXSkKK10sIFsKK3NvbGFyaXNfdHNvbF9jbGVhcmFuY2U9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX1RTT0xfQ0xFQVJBTkNFLCB0ZXN0IHgkc29sYXJpc190c29sX2NsZWFyYW5jZSA9IHh5ZXMpCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIHRoZSBuZXcgcHNldCgpIHN5c2NhbGwgc3ViY29kZQorIyBQU0VUX0dFVF9OQU1FIGlzIGF2YWlsYWJsZS4gVGhpcyBzdWJjb2RlIHdhcyBhZGRlZCBpbiBTb2xhcmlzIDEyIGJ1dAorIyBpcyBtaXNzaW5nIG9uIGlsbHVtb3MgYW5kIFNvbGFyaXMgMTEuCisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX1BTRVRfR0VUX05BTUUKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX1BTRVRfR0VUX05BTUUKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIFBTRVRfR0VUX05BTUUgKFNvbGFyaXMtc3BlY2lmaWMpXSkKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyNpbmNsdWRlIDxzeXMvcHNldC5oPgorXV0sIFtbCisgIHJldHVybiAhKFBTRVRfR0VUX05BTUUpOworXV0pXSwgWworc29sYXJpc19wc2V0X2dldF9uYW1lPXllcworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19QU0VUX0dFVF9OQU1FXSwgMSwKKyAgICAgICAgICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBQU0VUX0dFVF9OQU1FJyBjb25zdGFudHMuXSkKK10sIFsKK3NvbGFyaXNfcHNldF9nZXRfbmFtZT1ubworQUNfTVNHX1JFU1VMVChbbm9dKQorXSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfUFNFVF9HRVRfTkFNRSwgdGVzdCB4JHNvbGFyaXNfcHNldF9nZXRfbmFtZSA9IHh5ZXMpCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIHRoZSB1dGltZXN5cygpIHN5c2NhbGwgaXMKKyMgYXZhaWxhYmxlIChvbiBpbGx1bW9zIGFuZCBvbGRlciBTb2xhcmlzKS4KKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfVVRJTUVTWVNfU1lTQ0FMTAorIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfVVRJTUVTWVNfU1lTQ0FMTAorIworQUNfTVNHX0NIRUNLSU5HKFtmb3IgdGhlIGB1dGltZXN5cycgc3lzY2FsbCAoU29sYXJpcy1zcGVjaWZpYyldKQorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CitdXSwgW1sKKyAgcmV0dXJuICFTWVNfdXRpbWVzeXM7CitdXSldLCBbCitzb2xhcmlzX3V0aW1lc3lzX3N5c2NhbGw9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorQUNfREVGSU5FKFtTT0xBUklTX1VUSU1FU1lTX1NZU0NBTExdLCAxLAorICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHV0aW1lc3lzJyBzeXNjYWxsLl0pCitdLCBbCitzb2xhcmlzX3V0aW1lc3lzX3N5c2NhbGw9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX1VUSU1FU1lTX1NZU0NBTEwsIHRlc3QgeCRzb2xhcmlzX3V0aW1lc3lzX3N5c2NhbGwgPSB4eWVzKQorCisKKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyBpZiB0aGUgdXRpbWVuc2F0KCkgc3lzY2FsbCBpcworIyBhdmFpbGFibGUgKG9uIG5ld2VyIFNvbGFyaXMpLgorIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19VVElNRU5TQVRfU1lTQ0FMTAorIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfVVRJTUVOU0FUX1NZU0NBTEwKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIHRoZSBgdXRpbWVuc2F0JyBzeXNjYWxsIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KK11dLCBbWworICByZXR1cm4gIVNZU191dGltZW5zYXQ7CitdXSldLCBbCitzb2xhcmlzX3V0aW1lbnNhdF9zeXNjYWxsPXllcworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19VVElNRU5TQVRfU1lTQ0FMTF0sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdXRpbWVuc2F0JyBzeXNjYWxsLl0pCitdLCBbCitzb2xhcmlzX3V0aW1lbnNhdF9zeXNjYWxsPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19VVElNRU5TQVRfU1lTQ0FMTCwgdGVzdCB4JHNvbGFyaXNfdXRpbWVuc2F0X3N5c2NhbGwgPSB4eWVzKQorCisKKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyBpZiB0aGUgc3Bhd24oKSBzeXNjYWxsIGlzIGF2YWlsYWJsZQorIyAob24gbmV3ZXIgU29sYXJpcykuCisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX1NQQVdOX1NZU0NBTEwKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX1NQQVdOX1NZU0NBTEwKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIHRoZSBgc3Bhd24nIHN5c2NhbGwgKFNvbGFyaXMtc3BlY2lmaWMpXSkKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorXV0sIFtbCisgIHJldHVybiAhU1lTX3NwYXduOworXV0pXSwgWworc29sYXJpc19zcGF3bl9zeXNjYWxsPXllcworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19TUEFXTl9TWVNDQUxMXSwgMSwKKyAgICAgICAgICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzcGF3bicgc3lzY2FsbC5dKQorXSwgWworc29sYXJpc19zcGF3bl9zeXNjYWxsPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19TUEFXTl9TWVNDQUxMLCB0ZXN0IHgkc29sYXJpc19zcGF3bl9zeXNjYWxsID0geHllcykKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgd2hldGhlciBuc2NkIChuYW1lIHN3aXRjaCBjYWNoZSBkYWVtb24pCisjIGF0dGFjaGVzIGl0cyBkb29yIGF0IC9zeXN0ZW0vdm9sYXRpbGUvbmFtZV9zZXJ2aWNlX2Rvb3IgKFNvbGFyaXMpCisjIG9yIGF0IC92YXIvcnVuL25hbWVfc2VydmljZV9kb29yIChpbGx1bW9zKS4KKyMKKyMgTm90ZSB0aGF0IC92YXIvcnVuIGlzIGEgc3ltbGluayB0byAvc3lzdGVtL3ZvbGF0aWxlIG9uIFNvbGFyaXMKKyMgYnV0IG5vdCB2aWNlIHZlcnNhIG9uIGlsbHVtb3MuCisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX05TQ0RfRE9PUl9TWVNURU1fVk9MQVRJTEUKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX05TQ0RfRE9PUl9TWVNURU1fVk9MQVRJTEUKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIG5zY2QgZG9vciBsb2NhdGlvbiAoU29sYXJpcy1zcGVjaWZpYyldKQoraWYgdGVzdCAtZSAvc3lzdGVtL3ZvbGF0aWxlL25hbWVfc2VydmljZV9kb29yOyB0aGVuCisgICAgc29sYXJpc19uc2NkX2Rvb3Jfc3lzdGVtX3ZvbGF0aWxlPXllcworICAgIEFDX01TR19SRVNVTFQoWy9zeXN0ZW0vdm9sYXRpbGUvbmFtZV9zZXJ2aWNlX2Rvb3JdKQorICAgIEFDX0RFRklORShbU09MQVJJU19OU0NEX0RPT1JfU1lTVEVNX1ZPTEFUSUxFXSwgMSwKKyAgICAgICAgICAgICAgW0RlZmluZSB0byAxIGlmIG5zY2QgYXR0YWNoZXMgdG8gL3N5c3RlbS92b2xhdGlsZS9uYW1lX3NlcnZpY2VfZG9vci5dKQorZWxzZQorICAgIHNvbGFyaXNfbnNjZF9kb29yX3N5c3RlbV92b2xhdGlsZT1ubworICAgIEFDX01TR19SRVNVTFQoWy92YXIvcnVuL25hbWVfc2VydmljZV9kb29yXSkKK2ZpCitBTV9DT05ESVRJT05BTChTT0xBUklTX05TQ0RfRE9PUl9TWVNURU1fVk9MQVRJTEUsIHRlc3QgeCRzb2xhcmlzX25zY2RfZG9vcl9zeXN0ZW1fdm9sYXRpbGUgPSB4eWVzKQorCisKKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyBpZiB0aGUgbmV3IGdldGhydCgpIGZhc3R0cmFwIGlzIGF2YWlsYWJsZS4KKyMKKyMgTmV3IGZhc3R0cmFwIChhdmFpbGFibGUgb24gU29sYXJpcyAxMSk6CisjIGhydF90ICpnZXRocnQodm9pZCk7CisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX0dFVEhSVF9GQVNUVFJBUAorIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfR0VUSFJUX0ZBU1RUUkFQCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgbmV3IGBnZXRocnQnIGZhc3R0cmFwIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8c3lzL3RyYXAuaD4KK11dLCBbWworICByZXR1cm4gIVRfR0VUSFJUOworXV0pXSwgWworc29sYXJpc19nZXRocnRfZmFzdHRyYXA9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorQUNfREVGSU5FKFtTT0xBUklTX0dFVEhSVF9GQVNUVFJBUF0sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBuZXcgYGdldGhydCcgZmFzdHRyYXAuXSkKK10sIFsKK3NvbGFyaXNfZ2V0aHJ0X2Zhc3R0cmFwPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19HRVRIUlRfRkFTVFRSQVAsIHRlc3QgeCRzb2xhcmlzX2dldGhydF9mYXN0dHJhcCA9IHh5ZXMpCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmIHRoZSBuZXcgZ2V0X3pvbmVfb2Zmc2V0KCkgZmFzdHRyYXAKKyMgaXMgYXZhaWxhYmxlLgorIworIyBOZXcgZmFzdHRyYXAgKGF2YWlsYWJsZSBvbiBTb2xhcmlzIDExKToKKyMgem9uZWhydG9mZnNldF90ICpnZXRfem9uZV9vZmZzZXQodm9pZCk7CisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX0dFVFpPTkVPRkZTRVRfRkFTVFRSQVAKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX0dFVFpPTkVPRkZTRVRfRkFTVFRSQVAKKyMKK0FDX01TR19DSEVDS0lORyhbZm9yIHRoZSBuZXcgYGdldF96b25lX29mZnNldCcgZmFzdHRyYXAgKFNvbGFyaXMtc3BlY2lmaWMpXSkKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyNpbmNsdWRlIDxzeXMvdHJhcC5oPgorXV0sIFtbCisgIHJldHVybiAhVF9HRVRaT05FT0ZGU0VUOworXV0pXSwgWworc29sYXJpc19nZXR6b25lb2Zmc2V0X2Zhc3R0cmFwPXllcworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19HRVRaT05FT0ZGU0VUX0ZBU1RUUkFQXSwgMSwKKyAgICAgICAgICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIG5ldyBgZ2V0X3pvbmVfb2Zmc2V0JyBmYXN0dHJhcC5dKQorXSwgWworc29sYXJpc19nZXR6b25lb2Zmc2V0X2Zhc3R0cmFwPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19HRVRaT05FT0ZGU0VUX0ZBU1RUUkFQLCB0ZXN0IHgkc29sYXJpc19nZXR6b25lb2Zmc2V0X2Zhc3R0cmFwID0geHllcykKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgaWYgdGhlIGV4ZWN2ZSgpIHN5c2NhbGwKKyMgdGFrZXMgZm91cnRoIGFyZ3VtZW50IChmbGFncykgb3Igbm90LgorIworIyBPbGQgc3lzY2FsbCAoYXZhaWxhYmxlIG9uIGlsbHVtb3MpOgorIyBpbnQgZXhlY3ZlKGNvbnN0IGNoYXIgKmZuYW1lLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqKmVudnApOworIworIyBOZXcgc3lzY2FsbCAoYXZhaWxhYmxlIG9uIFNvbGFyaXMpOgorIyBpbnQgZXhlY3ZlKHVpbnRwdHJfdCBmaWxlLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqKmVudnAsIGludCBmbGFncyk7CisjCisjIElmIHRoZSBuZXcgc3lzY2FsbCBpcyBwcmVzZW50IHRoZW4gaXQgd2lsbCBmYWlsIHdpdGggRUlOVkFMIChiZWNhdXNlIGZsYWdzCisjIGFyZSBpbnZhbGlkKTsgaWYgdGhlIG9sZCBzeXNjYWxsIGlzIGF2YWlsYWJsZSB0aGVuIGl0IHdpbGwgZmFpbCB3aXRoIEVOT0VOVAorIyAoYmVjYXVzZSB0aGUgZmlsZSBjb3VsZCBub3QgYmUgZm91bmQpLgorIworIyBDLWxldmVsIHN5bWJvbDogU09MQVJJU19FWEVDVkVfU1lTQ0FMTF9UQUtFU19GTEFHUworIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfRVhFQ1ZFX1NZU0NBTExfVEFLRVNfRkxBR1MKKyMKK0FDX01TR19DSEVDS0lORyhbaWYgdGhlIGBleGVjdmUnIHN5c2NhbGwgYWNjZXB0cyBmbGFncyAoU29sYXJpcy1zcGVjaWZpYyldKQorQUNfUlVOX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorXV0sIFtbCisgIGVycm5vID0gMDsKKyAgc3lzY2FsbChTWVNfZXhlY3ZlLCAiL25vL2V4aXN0aW5nL3BhdGgiLCAwLCAwLCAweGRlYWRiZWVmLCAwLCAwKTsKKyAgcmV0dXJuICEoZXJybm8gPT0gRUlOVkFMKTsKK11dKV0sIFsKK3NvbGFyaXNfZXhlY3ZlX3N5c2NhbGxfdGFrZXNfZmxhZ3M9eWVzCitBQ19NU0dfUkVTVUxUKFt5ZXNdKQorQUNfREVGSU5FKFtTT0xBUklTX0VYRUNWRV9TWVNDQUxMX1RBS0VTX0ZMQUdTXSwgMSwKKyAgICAgICAgICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIG5ldyBgZXhlY3ZlJyBzeXNjYWxsIHdoaWNoIGFjY2VwdHMgZmxhZ3MuXSkKK10sIFsKK3NvbGFyaXNfZXhlY3ZlX3N5c2NhbGxfdGFrZXNfZmxhZ3M9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX0VYRUNWRV9TWVNDQUxMX1RBS0VTX0ZMQUdTLAorICAgICAgICAgICAgICAgdGVzdCB4JHNvbGFyaXNfZXhlY3ZlX3N5c2NhbGxfdGFrZXNfZmxhZ3MgPSB4eWVzKQorCisKKyMgU29sYXJpcy1zcGVjaWZpYyBjaGVjayBkZXRlcm1pbmluZyB2ZXJzaW9uIG9mIHRoZSByZXBvc2l0b3J5IGNhY2hlIHByb3RvY29sLgorIyBFdmVyeSBTb2xhcmlzIHZlcnNpb24gdXNlcyBhIGRpZmZlcmVudCBvbmUsIHJhbmdpbmcgZnJvbSAyMSB0byBjdXJyZW50IDI1LgorIyBUaGUgY2hlY2sgaXMgdmVyeSB1Z2x5LCB0aG91Z2guCisjCisjIEMtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX1JFUENBQ0hFX1BST1RPQ09MX1ZFUlNJT04gdnYKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBub25lCisjCitBQ19QQVRIX1BST0coRElTX1BBVEgsIGRpcywgZmFsc2UpCitpZiB0ZXN0ICJ4JERJU19QQVRIIiA9ICJ4ZmFsc2UiOyB0aGVuCisgIEFDX01TR19GQUlMVVJFKFtPYmplY3QgY29kZSBkaXNhc3NlbWJsZXIgKGBkaXMnKSBub3QgZm91bmQuXSkKK2ZpCitBQ19DSEVDS19MSUIoc2NmLCBzY2ZfaGFuZGxlX2JpbmQsIFtdLCBbCisgIEFDX01TR19XQVJOKFtGdW5jdGlvbiBgc2NmX2hhbmRsZV9iaW5kJyB3YXMgbm90IGZvdW5kIGluIGBsaWJzY2YnLl0pCisgIEFDX01TR19FUlJPUihbQ2Fubm90IGRldGVybWluZSB2ZXJzaW9uIG9mIHRoZSByZXBvc2l0b3J5IGNhY2hlIHByb3RvY29sLl0pCitdKQorCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB2ZXJzaW9uIG9mIHRoZSByZXBvc2l0b3J5IGNhY2hlIHByb3RvY29sIChTb2xhcmlzLXNwZWNpZmljKV0pCitpZiB0ZXN0ICJYJFZHQ09ORl9BUkNIX1BSSSIgPSAiWGFtZDY0IjsgdGhlbgorICBsaWJzY2Y9L3Vzci9saWIvNjQvbGlic2NmLnNvLjEKK2Vsc2UKKyAgbGlic2NmPS91c3IvbGliL2xpYnNjZi5zby4xCitmaQoraWYgISAkRElTX1BBVEggLUYgc2NmX2hhbmRsZV9iaW5kICRsaWJzY2YgIHwgZ3JlcCAtcSAweDUyNjU3MDsgdGhlbgorICBBQ19NU0dfV0FSTihbRnVuY3Rpb24gYHNjZl9oYW5kbGVfYmluZCcgZG9lcyBub3QgY29udGFpbiByZXBvc2l0b3J5IGNhY2hlIHByb3RvY29sIHZlcnNpb24uXSkKKyAgQUNfTVNHX0VSUk9SKFtDYW5ub3QgZGV0ZXJtaW5lIHZlcnNpb24gb2YgdGhlIHJlcG9zaXRvcnkgY2FjaGUgcHJvdG9jb2wuXSkKK2ZpCitoZXg9JCggJERJU19QQVRIIC1GIHNjZl9oYW5kbGVfYmluZCAkbGlic2NmICB8IHNlZCAtbiAncy8uKjB4NTI2NTcwXCguLlwpLiovXDEvcCcgKQoraWYgdGVzdCAteiAiJGhleCI7IHRoZW4KKyAgQUNfTVNHX1dBUk4oW1ZlcnNpb24gb2YgdGhlIHJlcG9zaXRvcnkgY2FjaGUgcHJvdG9jb2wgaXMgZW1wdHk/IV0pCisgIEFDX01TR19FUlJPUihbQ2Fubm90IGRldGVybWluZSB2ZXJzaW9uIG9mIHRoZSByZXBvc2l0b3J5IGNhY2hlIHByb3RvY29sLl0pCitmaQordmVyc2lvbj0kKCBwcmludGYgIiVkXG4iIDB4JGhleCApCitBQ19NU0dfUkVTVUxUKFskdmVyc2lvbl0pCitBQ19ERUZJTkVfVU5RVU9URUQoW1NPTEFSSVNfUkVQQ0FDSEVfUFJPVE9DT0xfVkVSU0lPTl0sIFskdmVyc2lvbl0sCisgICAgICAgICAgICAgICAgICAgW1ZlcnNpb24gbnVtYmVyIG9mIHRoZSByZXBvc2l0b3J5IGRvb3IgY2FjaGUgcHJvdG9jb2wuXSkKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgaWYgInN5c3N0YXQiIHNlZ21lbnQgcmVzZXJ2YXRpb24gdHlwZQorIyBpcyBhdmFpbGFibGUuCisjCisjIE5ldyAic3lzc3RhdCIgc2VnbWVudCByZXNlcnZhdGlvbiAoYXZhaWxhYmxlIG9uIFNvbGFyaXMgMTIpOgorIyAtIHByb2dyYW0gaGVhZGVyIHR5cGU6ICAgIFBUX1NVTldfU1lTU1RBVAorIyAtIGF1eGlsaWFyeSB2ZWN0b3IgZW50cnk6IEFUX1NVTl9TWVNTVEFUX0FERFIKKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfUkVTRVJWRV9TWVNTVEFUX0FERFIKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX1JFU0VSVkVfU1lTU1RBVF9BRERSCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgbmV3IGBzeXNzdGF0JyBzZWdtZW50IHJlc2VydmF0aW9uIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8c3lzL2F1eHYuaD4KK11dLCBbWworICByZXR1cm4gIUFUX1NVTl9TWVNTVEFUX0FERFI7CitdXSldLCBbCitzb2xhcmlzX3Jlc2VydmVfc3lzc3RhdF9hZGRyPXllcworQUNfTVNHX1JFU1VMVChbeWVzXSkKK0FDX0RFRklORShbU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfQUREUl0sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBuZXcgYHN5c3N0YXQnIHNlZ21lbnQgcmVzZXJ2YXRpb24uXSkKK10sIFsKK3NvbGFyaXNfcmVzZXJ2ZV9zeXNzdGF0X2FkZHI9bm8KK0FDX01TR19SRVNVTFQoW25vXSkKK10pCitBTV9DT05ESVRJT05BTChTT0xBUklTX1JFU0VSVkVfU1lTU1RBVF9BRERSLCB0ZXN0IHgkc29sYXJpc19yZXNlcnZlX3N5c3N0YXRfYWRkciA9IHh5ZXMpCisKKworIyBTb2xhcmlzLXNwZWNpZmljIGNoZWNrIGRldGVybWluaW5nIGlmICJzeXNzdGF0X3pvbmUiIHNlZ21lbnQgcmVzZXJ2YXRpb24gdHlwZQorIyBpcyBhdmFpbGFibGUuCisjCisjIE5ldyAic3lzc3RhdF96b25lIiBzZWdtZW50IHJlc2VydmF0aW9uIChhdmFpbGFibGUgb24gU29sYXJpcyAxMik6CisjIC0gcHJvZ3JhbSBoZWFkZXIgdHlwZTogICAgUFRfU1VOV19TWVNTVEFUX1pPTkUKKyMgLSBhdXhpbGlhcnkgdmVjdG9yIGVudHJ5OiBBVF9TVU5fU1lTU1RBVF9aT05FX0FERFIKKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfUkVTRVJWRV9TWVNTVEFUX1pPTkVfQUREUgorIyBBdXRvbWFrZS1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfUkVTRVJWRV9TWVNTVEFUX1pPTkVfQUREUgorIworQUNfTVNHX0NIRUNLSU5HKFtmb3IgdGhlIG5ldyBgc3lzc3RhdF96b25lJyBzZWdtZW50IHJlc2VydmF0aW9uIChTb2xhcmlzLXNwZWNpZmljKV0pCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCisjaW5jbHVkZSA8c3lzL2F1eHYuaD4KK11dLCBbWworICByZXR1cm4gIUFUX1NVTl9TWVNTVEFUX1pPTkVfQUREUjsKK11dKV0sIFsKK3NvbGFyaXNfcmVzZXJ2ZV9zeXNzdGF0X3pvbmVfYWRkcj15ZXMKK0FDX01TR19SRVNVTFQoW3llc10pCitBQ19ERUZJTkUoW1NPTEFSSVNfUkVTRVJWRV9TWVNTVEFUX1pPTkVfQUREUl0sIDEsCisgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBuZXcgYHN5c3N0YXRfem9uZScgc2VnbWVudCByZXNlcnZhdGlvbi5dKQorXSwgWworc29sYXJpc19yZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyPW5vCitBQ19NU0dfUkVTVUxUKFtub10pCitdKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfWk9ORV9BRERSLCB0ZXN0IHgkc29sYXJpc19yZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyID0geHllcykKKworCisjIFNvbGFyaXMtc3BlY2lmaWMgY2hlY2sgZGV0ZXJtaW5pbmcgaWYgdGhlIHN5c3RlbV9zdGF0cygpIHN5c2NhbGwgaXMgYXZhaWxhYmxlCisjIChvbiBuZXdlciBTb2xhcmlzKS4KKyMKKyMgQy1sZXZlbCBzeW1ib2w6IFNPTEFSSVNfU1lTVEVNX1NUQVRTX1NZU0NBTEwKKyMgQXV0b21ha2UtbGV2ZWwgc3ltYm9sOiBTT0xBUklTX1NZU1RFTV9TVEFUU19TWVNDQUxMCisjCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgYHN5c3RlbV9zdGF0cycgc3lzY2FsbCAoU29sYXJpcy1zcGVjaWZpYyldKQorQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CitdXSwgW1sKKyAgcmV0dXJuICFTWVNfc3lzdGVtX3N0YXRzOworXV0pXSwgWworc29sYXJpc19zeXN0ZW1fc3RhdHNfc3lzY2FsbD15ZXMKK0FDX01TR19SRVNVTFQoW3llc10pCitBQ19ERUZJTkUoW1NPTEFSSVNfU1lTVEVNX1NUQVRTX1NZU0NBTExdLCAxLAorICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5c3RlbV9zdGF0cycgc3lzY2FsbC5dKQorXSwgWworc29sYXJpc19zeXN0ZW1fc3RhdHNfc3lzY2FsbD1ubworQUNfTVNHX1JFU1VMVChbbm9dKQorXSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfU1lTVEVNX1NUQVRTX1NZU0NBTEwsIHRlc3QgeCRzb2xhcmlzX3N5c3RlbV9zdGF0c19zeXNjYWxsID0geHllcykKKworZWxzZQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19TVU5fU1RVRElPX0FTLCBmYWxzZSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfWFBHX1NZTUJPTFNfUFJFU0VOVCwgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX1BST0NfQ01ETElORSwgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX09MRF9TWVNDQUxMUywgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX0xXUF9TSUdRVUVVRV9TWVNDQUxMLCBmYWxzZSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTExfVEFLRVNfUElELCBmYWxzZSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfTFdQX05BTUVfU1lTQ0FMTCwgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX1pPTkVfREVGVU5DVCwgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX1NITV9ORVcsIGZhbHNlKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19QUlhSRUdTRVRfVCwgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTEwsIGZhbHNlKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19VVUlEU1lTX1NZU0NBTEwsIGZhbHNlKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19UTkRCX0dFVF9UTklQLCBmYWxzZSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfVFNPTF9DTEVBUkFOQ0UsIGZhbHNlKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19QU0VUX0dFVF9OQU1FLCBmYWxzZSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfVVRJTUVTWVNfU1lTQ0FMTCwgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX1VUSU1FTlNBVF9TWVNDQUxMLCBmYWxzZSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfU1BBV05fU1lTQ0FMTCwgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX05TQ0RfRE9PUl9TWVNURU1fVk9MQVRJTEUsIGZhbHNlKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19HRVRIUlRfRkFTVFRSQVAsIGZhbHNlKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19HRVRaT05FT0ZGU0VUX0ZBU1RUUkFQLCBmYWxzZSkKK0FNX0NPTkRJVElPTkFMKFNPTEFSSVNfRVhFQ1ZFX1NZU0NBTExfVEFLRVNfRkxBR1MsIGZhbHNlKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfQUREUiwgZmFsc2UpCitBTV9DT05ESVRJT05BTChTT0xBUklTX1JFU0VSVkVfU1lTU1RBVF9aT05FX0FERFIsIGZhbHNlKQorQU1fQ09ORElUSU9OQUwoU09MQVJJU19TWVNURU1fU1RBVFNfU1lTQ0FMTCwgZmFsc2UpCitmaSAjIHRlc3QgIiRWR0NPTkZfT1MiID0gInNvbGFyaXMiCisKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQ2hlY2tzIGZvciBDIGhlYWRlciBmaWxlcy4KICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTI0MjIsNiArMzUwMiw3IEBACiAgICAgICAgIHN5cy9ldmVudGZkLmggICAgXAogICAgICAgICBzeXMva2xvZy5oICAgICAgIFwKICAgICAgICAgc3lzL3BvbGwuaCAgICAgICBcCisgICAgICAgIHN5cy9wcmN0bC5oICAgICAgXAogICAgICAgICBzeXMvc2lnbmFsLmggICAgIFwKICAgICAgICAgc3lzL3NpZ25hbGZkLmggICBcCiAgICAgICAgIHN5cy9zeXNjYWxsLmggICAgXApAQCAtMjUzOCw3ICszNjE5LDggQEAKICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4UFBDMzJfTElOVVggXAogICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhBUk1fTElOVVggXAogICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhNSVBTMzJfTElOVVggXAotICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhNSVBTNjRfTElOVVggOyB0aGVuCisgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geE1JUFM2NF9MSU5VWCBcCisgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFg4Nl9TT0xBUklTIDsgdGhlbgogICBtZmxhZ19wcmltYXJ5PSRGTEFHX00zMgogZWxpZiB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geEFNRDY0X0xJTlVYIFwKICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhQUEM2NF9MSU5VWCBcCkBAIC0yNTUzLDcgKzM2MzUsOCBAQAogCiBtZmxhZ19zZWNvbmRhcnk9CiBpZiB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTID0geFg4Nl9MSU5VWCBcCi0gICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTID0geFBQQzMyX0xJTlVYIDsgdGhlbgorICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUyA9IHhQUEMzMl9MSU5VWCBcCisgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTID0geFg4Nl9TT0xBUklTIDsgdGhlbgogICBtZmxhZ19zZWNvbmRhcnk9JEZMQUdfTTMyCiBlbGlmIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFMgPSB4WDg2X0RBUldJTiA7IHRoZW4KICAgbWZsYWdfc2Vjb25kYXJ5PSIkRkxBR19NMzIgLWFyY2ggaTM4NiIKQEAgLTI1NzcsNiArMzY2MCw5IEBACiBBTV9DT05EX0lGKFtWR0NPTkZfT1NfSVNfREFSV0lOXSwKICAgICAgICAgICAgW0NGTEFHU19NUEk9Ii1nIC1PIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1XYWxsIC1keW5hbWljIgogICAgICAgICAgICAgTERGTEFHU19NUEk9Ii1keW5hbWljIC1keW5hbWljbGliIC1hbGxfbG9hZCJdKQorQU1fQ09ORF9JRihbVkdDT05GX09TX0lTX1NPTEFSSVNdLAorICAgICAgICAgICBbQ0ZMQUdTX01QST0iLWcgLU8gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLVdhbGwgLWZwaWMiCisgICAgICAgICAgICBMREZMQUdTX01QST0iLWZwaWMgLXNoYXJlZCJdKQogCiBBQ19TVUJTVChbQ0ZMQUdTX01QSV0pCiBBQ19TVUJTVChbTERGTEFHU19NUEldKQpAQCAtMjcxMyw3ICszNzk5LDcgQEAKIEFDX01TR19DSEVDS0lORyhbZm9yIE9wZW5NUF0pCiAKIHNhZmVfQ0ZMQUdTPSRDRkxBR1MKLUNGTEFHUz0iLWZvcGVubXAgJG1mbGFnX3ByaW1hcnkiCitDRkxBR1M9Ii1mb3Blbm1wICRtZmxhZ19wcmltYXJ5IC1XZXJyb3IiCiAKIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbCiAjaW5jbHVkZSA8b21wLmg+IApAQCAtMjk4Nyw2ICs0MDczLDcgQEAKICAgIHBlcmYvTWFrZWZpbGUgCiAgICBwZXJmL3ZnX3BlcmYKICAgIGdkYnNlcnZlcl90ZXN0cy9NYWtlZmlsZQorICAgZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvTWFrZWZpbGUKICAgIGluY2x1ZGUvTWFrZWZpbGUgCiAgICBhdXhwcm9ncy9NYWtlZmlsZQogICAgbXBpL01ha2VmaWxlCkBAIC0yOTk4LDggKzQwODUsMTEgQEAKICAgIG1lbWNoZWNrL3Rlc3RzL3g4Ni9NYWtlZmlsZQogICAgbWVtY2hlY2svdGVzdHMvbGludXgvTWFrZWZpbGUKICAgIG1lbWNoZWNrL3Rlc3RzL2Rhcndpbi9NYWtlZmlsZQorICAgbWVtY2hlY2svdGVzdHMvc29sYXJpcy9NYWtlZmlsZQogICAgbWVtY2hlY2svdGVzdHMvYW1kNjQtbGludXgvTWFrZWZpbGUKICAgIG1lbWNoZWNrL3Rlc3RzL3g4Ni1saW51eC9NYWtlZmlsZQorICAgbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9NYWtlZmlsZQorICAgbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvTWFrZWZpbGUKICAgIG1lbWNoZWNrL3Rlc3RzL3BwYzMyL01ha2VmaWxlCiAgICBtZW1jaGVjay90ZXN0cy9wcGM2NC9NYWtlZmlsZQogICAgbWVtY2hlY2svdGVzdHMvczM5MHgvTWFrZWZpbGUKQEAgLTMwMzUsOCArNDEyNSwxMyBAQAogICAgbm9uZS90ZXN0cy90aWxlZ3gvTWFrZWZpbGUKICAgIG5vbmUvdGVzdHMvbGludXgvTWFrZWZpbGUKICAgIG5vbmUvdGVzdHMvZGFyd2luL01ha2VmaWxlCisgICBub25lL3Rlc3RzL3NvbGFyaXMvTWFrZWZpbGUKICAgIG5vbmUvdGVzdHMvYW1kNjQtbGludXgvTWFrZWZpbGUKICAgIG5vbmUvdGVzdHMveDg2LWxpbnV4L01ha2VmaWxlCisgICBub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9NYWtlZmlsZQorICAgbm9uZS90ZXN0cy94ODYtZGFyd2luL01ha2VmaWxlCisgICBub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvTWFrZWZpbGUKKyAgIG5vbmUvdGVzdHMveDg2LXNvbGFyaXMvTWFrZWZpbGUKICAgIGV4cC1zZ2NoZWNrL01ha2VmaWxlCiAgICBleHAtc2djaGVjay90ZXN0cy9NYWtlZmlsZQogICAgZHJkL01ha2VmaWxlCkBAIC0zMDUyLDExICs0MTQ3LDE0IEBACiAgICBleHAtZGhhdC9NYWtlZmlsZQogICAgZXhwLWRoYXQvdGVzdHMvTWFrZWZpbGUKICAgIHNoYXJlZC9NYWtlZmlsZQorICAgc29sYXJpcy9NYWtlZmlsZQogXSkKIEFDX0NPTkZJR19GSUxFUyhbY29yZWdyaW5kL2xpbmtfdG9vbF9leGVfbGludXhdLAogICAgICAgICAgICAgICAgIFtjaG1vZCAreCBjb3JlZ3JpbmQvbGlua190b29sX2V4ZV9saW51eF0pCiBBQ19DT05GSUdfRklMRVMoW2NvcmVncmluZC9saW5rX3Rvb2xfZXhlX2Rhcndpbl0sCiAgICAgICAgICAgICAgICAgW2NobW9kICt4IGNvcmVncmluZC9saW5rX3Rvb2xfZXhlX2Rhcndpbl0pCitBQ19DT05GSUdfRklMRVMoW2NvcmVncmluZC9saW5rX3Rvb2xfZXhlX3NvbGFyaXNdLAorICAgICAgICAgICAgICAgIFtjaG1vZCAreCBjb3JlZ3JpbmQvbGlua190b29sX2V4ZV9zb2xhcmlzXSkKIEFDX09VVFBVVAogCiBjYXQ8PEVPRgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL01ha2VmaWxlLmFtIGIvY29yZWdyaW5kL01ha2VmaWxlLmFtCmluZGV4IGY0M2Q0YzkuLmQyOWY5NTQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9NYWtlZmlsZS5hbQorKysgYi9jb3JlZ3JpbmQvTWFrZWZpbGUuYW0KQEAgLTQ0LDE5ICs0NCwzMSBAQAogCWxhdW5jaGVyLWRhcndpbi5jIFwKIAltX2RlYnVnbG9nLmMKIGVuZGlmCitpZiBWR0NPTkZfT1NfSVNfU09MQVJJUwordmFsZ3JpbmRfU09VUkNFUyA9IFwKKwlsYXVuY2hlci1saW51eC5jIFwKKwltX2RlYnVnbG9nLmMKK2VuZGlmCiAKIHZhbGdyaW5kX0NQUEZMQUdTICA9ICQoQU1fQ1BQRkxBR1NfUFJJKQogdmFsZ3JpbmRfQ0ZMQUdTICAgID0gJChBTV9DRkxBR1NfUFJJKQogdmFsZ3JpbmRfQ0NBU0ZMQUdTID0gJChBTV9DQ0FTRkxBR1NfUFJJKQogdmFsZ3JpbmRfTERGTEFHUyAgID0gJChBTV9DRkxBR1NfUFJJKSBATElCX1VCU0FOQAorIyBJZiB0aGVyZSBpcyBubyBzZWNvbmRhcnkgcGxhdGZvcm0sIGFuZCB0aGUgcGxhdGZvcm1zIGluY2x1ZGUgeDg2LWRhcndpbiwKKyMgdGhlbiB0aGUgcHJpbWFyeSBwbGF0Zm9ybSBtdXN0IGJlIHg4Ni1kYXJ3aW4uICBIZW5jZToKK2lmICEgVkdDT05GX0hBVkVfUExBVEZPUk1fU0VDCiBpZiBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfWDg2X0RBUldJTgogdmFsZ3JpbmRfTERGTEFHUyAgICs9IC1XbCwtcmVhZF9vbmx5X3JlbG9jcyAtV2wsc3VwcHJlc3MKIGVuZGlmCitlbmRpZgogIyBPbiBBbmRyb2lkIHdlIG11c3QgYXNrIGZvciBub24tZXhlY3V0YWJsZSBzdGFjaywgbm90IHN1cmUgd2h5LgogaWYgVkdDT05GX1BMQVRWQVJJQU5UX0lTX0FORFJPSUQKIHZhbGdyaW5kX0NGTEFHUyArPSAtc3RhdGljCiB2YWxncmluZF9MREZMQUdTICAgKz0gLVdsLC16LG5vZXhlY3N0YWNrCiBlbmRpZgoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK3ZhbGdyaW5kX0xERkxBR1MgICArPSAtV2wsLU0sL3Vzci9saWIvbGQvbWFwLm5vZXhzdGsKK2VuZGlmCiAKIAogdmdkYl9TT1VSQ0VTID0gdmdkYi5jCkBAIC03Myw2ICs4NSw5IEBACiAjIGhhdmluZyBhY2Nlc3MgdG8gRGFyd2luLCAnbm9uZScgaW1wbGVtZW50YXRpb24gaXMgdXNlZC4KIHZnZGJfU09VUkNFUyArPSB2Z2RiLWludm9rZXItbm9uZS5jCiBlbmRpZgoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK3ZnZGJfU09VUkNFUyArPSB2Z2RiLWludm9rZXItc29sYXJpcy5jCitlbmRpZgogCiB2Z2RiX0NQUEZMQUdTICA9ICQoQU1fQ1BQRkxBR1NfUFJJKQogdmdkYl9DRkxBR1MgICAgPSAkKEFNX0NGTEFHU19QUkkpCkBAIC04MSwxMiArOTYsMjAgQEAKIGlmIFZHQ09ORl9QTEFUVkFSSUFOVF9JU19BTkRST0lECiB2Z2RiX0NGTEFHUyAgICArPSAtc3RhdGljCiBlbmRpZgoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK3ZnZGJfTERBREQgICAgID0gLWxzb2NrZXQKK2Vsc2UKIGlmICFWR0NPTkZfUExBVFZBUklBTlRfSVNfQU5EUk9JRAogdmdkYl9MREFERCAgICAgPSAtbHB0aHJlYWQKIGVuZGlmCitlbmRpZgorIyBJZiB0aGVyZSBpcyBubyBzZWNvbmRhcnkgcGxhdGZvcm0sIGFuZCB0aGUgcGxhdGZvcm1zIGluY2x1ZGUgeDg2LWRhcndpbiwKKyMgdGhlbiB0aGUgcHJpbWFyeSBwbGF0Zm9ybSBtdXN0IGJlIHg4Ni1kYXJ3aW4uICBIZW5jZToKK2lmICEgVkdDT05GX0hBVkVfUExBVEZPUk1fU0VDCiBpZiBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfWDg2X0RBUldJTgogdmdkYl9MREZMQUdTICAgKz0gLVdsLC1yZWFkX29ubHlfcmVsb2NzIC1XbCxzdXBwcmVzcwogZW5kaWYKK2VuZGlmCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIERhcndpbiBNYWNoIHN0dWZmCkBAIC0xNjIsNyArMTg1LDYgQEAKIAlwdWJfY29yZV9jcHVpZC5oCVwKIAlwdWJfY29yZV9kZWR1cHBvb2xhbGxvYy5oIFwKIAlwdWJfY29yZV9kZWJ1Z2luZm8uaAlcCi0JcHViX2NvcmVfZGVidWdnZXIuaAlcCiAJcHViX2NvcmVfZGVidWdsb2cuaAlcCiAJcHViX2NvcmVfZGVtYW5nbGUuaAlcCiAJcHViX2NvcmVfZGlzcGF0Y2guaAlcCkBAIC0xODYsOSArMjA4LDkgQEAKIAlwdWJfY29yZV9tYWxsb2NmcmVlLmgJXAogCXB1Yl9jb3JlX29wdGlvbnMuaAlcCiAJcHViX2NvcmVfb3NldC5oCQlcCisJcHViX2NvcmVfcG9vbGFsbG9jLmgJXAogCXB1Yl9jb3JlX3JhbmdlbWFwLmgJXAogCXB1Yl9jb3JlX3JlZGlyLmgJXAotCXB1Yl9jb3JlX3Bvb2xhbGxvYy5oCVwKIAlwdWJfY29yZV9yZXBsYWNlbWFsbG9jLmhcCiAJcHViX2NvcmVfc2Jwcm9maWxlLmgJXAogCXB1Yl9jb3JlX3NjaGVkdWxlci5oCVwKQEAgLTI0OSw2ICsyNzEsNyBAQAogCW1fc3lzd3JhcC9wcml2X3N5c3dyYXAtbGludXguaCBcCiAJbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1saW51eC12YXJpYW50cy5oIFwKIAltX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oIFwKKwltX3N5c3dyYXAvcHJpdl9zeXN3cmFwLXNvbGFyaXMuaCBcCiAJbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1tYWluLmggXAogCW1fc3lzd3JhcC9wcml2X3N5c3dyYXAteGVuLmggXAogCW1fdW1lL3ByaXZfdW1lLmggXApAQCAtMjc0LDExICsyOTcsOSBAQAogCW1fY2xpZW50c3RhdGUuYyBcCiAJbV9jcHVpZC5TIFwKIAltX2RlZHVwcG9vbGFsbG9jLmMgXAotCW1fZGVidWdnZXIuYyBcCiAJbV9kZWJ1Z2xvZy5jIFwKIAltX2Vycm9ybWdyLmMgXAogCW1fZXhlY29udGV4dC5jIFwKLQltX3Bvb2xhbGxvYy5jIFwKIAltX2hhc2h0YWJsZS5jIFwKIAltX2xpYmNiYXNlLmMgXAogCW1fbGliY2Fzc2VydC5jIFwKQEAgLTI5Miw2ICszMTMsNyBAQAogCW1fbWFsbG9jZnJlZS5jIFwKIAltX29wdGlvbnMuYyBcCiAJbV9vc2V0LmMgXAorCW1fcG9vbGFsbG9jLmMgXAogCW1fcmFuZ2VtYXAuYyBcCiAJbV9yZWRpci5jIFwKIAltX3NicHJvZmlsZS5jIFwKQEAgLTMxNiw5ICszMzgsMTIgQEAKIAltX2FzcGFjZW1nci9hc3BhY2VtZ3Itc2VnbmFtZXMuYyBcCiAJbV9jb3JlZHVtcC9jb3JlZHVtcC1lbGYuYyBcCiAJbV9jb3JlZHVtcC9jb3JlZHVtcC1tYWNoby5jIFwKKwltX2NvcmVkdW1wL2NvcmVkdW1wLXNvbGFyaXMuYyBcCiAJbV9kZWJ1Z2luZm8vbWlzYy5jIFwKIAltX2RlYnVnaW5mby9kM2Jhc2ljcy5jIFwKIAltX2RlYnVnaW5mby9kZWJ1Z2luZm8uYyBcCisJbV9kZWJ1Z2luZm8vaW1hZ2UuYyBcCisJbV9kZWJ1Z2luZm8vbWluaWx6by1pbmwuYyBcCiAJbV9kZWJ1Z2luZm8vcmVhZGR3YXJmLmMgXAogCW1fZGVidWdpbmZvL3JlYWRkd2FyZjMuYyBcCiAJbV9kZWJ1Z2luZm8vcmVhZGVsZi5jIFwKQEAgLTMyNyw4ICszNTIsNiBAQAogCW1fZGVidWdpbmZvL3JlYWRwZGIuYyBcCiAJbV9kZWJ1Z2luZm8vc3RvcmFnZS5jIFwKIAltX2RlYnVnaW5mby90eXR5cGVzLmMgXAotCW1fZGVidWdpbmZvL2ltYWdlLmMgXAotCW1fZGVidWdpbmZvL21pbmlsem8taW5sLmMgXAogCW1fZGVtYW5nbGUvY3AtZGVtYW5nbGUuYyBcCiAJbV9kZW1hbmdsZS9jcGx1cy1kZW0uYyBcCiAJbV9kZW1hbmdsZS9kZW1hbmdsZS5jIFwKQEAgLTM0Nyw2ICszNzAsOCBAQAogCW1fZGlzcGF0Y2gvZGlzcGF0Y2gtdGlsZWd4LWxpbnV4LlMgXAogCW1fZGlzcGF0Y2gvZGlzcGF0Y2gteDg2LWRhcndpbi5TIFwKIAltX2Rpc3BhdGNoL2Rpc3BhdGNoLWFtZDY0LWRhcndpbi5TIFwKKwltX2Rpc3BhdGNoL2Rpc3BhdGNoLXg4Ni1zb2xhcmlzLlMgXAorCW1fZGlzcGF0Y2gvZGlzcGF0Y2gtYW1kNjQtc29sYXJpcy5TIFwKIAltX2dkYnNlcnZlci9pbmZlcmlvcnMuYyBcCiAJbV9nZGJzZXJ2ZXIvbV9nZGJzZXJ2ZXIuYyBcCiAJbV9nZGJzZXJ2ZXIvcmVnY2FjaGUuYyBcCkBAIC0zNjgsMTYgKzM5MywxNyBAQAogCW1fZ2Ric2VydmVyL3ZlcnNpb24uYyBcCiAJbV9pbml0aW1nL2luaXRpbWctbGludXguYyBcCiAJbV9pbml0aW1nL2luaXRpbWctZGFyd2luLmMgXAorCW1faW5pdGltZy9pbml0aW1nLXNvbGFyaXMuYyBcCiAJbV9pbml0aW1nL2luaXRpbWctcGF0aHNjYW4uYyBcCiAJbV9tYWNoL21hY2hfYmFzaWNzLmMgXAogCW1fbWFjaC9tYWNoX21zZy5jIFwKIAltX21hY2gvbWFjaF90cmFwcy14ODYtZGFyd2luLlMgXAogCW1fbWFjaC9tYWNoX3RyYXBzLWFtZDY0LWRhcndpbi5TIFwKIAltX3JlcGxhY2VtYWxsb2MvcmVwbGFjZW1hbGxvY19jb3JlLmMgXAotCW1fc2NoZWR1bGVyL3NjaGVkdWxlci5jIFwKLQltX3NjaGVkdWxlci9zZW1hLmMgXAogCW1fc2NoZWR1bGVyL3NjaGVkLWxvY2suYyBcCiAJbV9zY2hlZHVsZXIvc2NoZWQtbG9jay1nZW5lcmljLmMgXAorCW1fc2NoZWR1bGVyL3NjaGVkdWxlci5jIFwKKwltX3NjaGVkdWxlci9zZW1hLmMgXAogCW1fc2lnZnJhbWUvc2lnZnJhbWUtY29tbW9uLmMgXAogCW1fc2lnZnJhbWUvc2lnZnJhbWUteDg2LWxpbnV4LmMgXAogCW1fc2lnZnJhbWUvc2lnZnJhbWUtYW1kNjQtbGludXguYyBcCkBAIC0zOTEsNiArNDE3LDcgQEAKIAltX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXRpbGVneC1saW51eC5jIFwKIAltX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXg4Ni1kYXJ3aW4uYyBcCiAJbV9zaWdmcmFtZS9zaWdmcmFtZS1hbWQ2NC1kYXJ3aW4uYyBcCisJbV9zaWdmcmFtZS9zaWdmcmFtZS1zb2xhcmlzLmMgXAogCW1fc3lzd3JhcC9zeXNjYWxsLXg4Ni1saW51eC5TIFwKIAltX3N5c3dyYXAvc3lzY2FsbC1hbWQ2NC1saW51eC5TIFwKIAltX3N5c3dyYXAvc3lzY2FsbC1wcGMzMi1saW51eC5TIFwKQEAgLTQwNCwxMSArNDMxLDE0IEBACiAJbV9zeXN3cmFwL3N5c2NhbGwtdGlsZWd4LWxpbnV4LlMgXAogCW1fc3lzd3JhcC9zeXNjYWxsLXg4Ni1kYXJ3aW4uUyBcCiAJbV9zeXN3cmFwL3N5c2NhbGwtYW1kNjQtZGFyd2luLlMgXAorCW1fc3lzd3JhcC9zeXNjYWxsLXg4Ni1zb2xhcmlzLlMgXAorCW1fc3lzd3JhcC9zeXNjYWxsLWFtZDY0LXNvbGFyaXMuUyBcCiAJbV9zeXN3cmFwL3N5c3dyYXAtbWFpbi5jIFwKIAltX3N5c3dyYXAvc3lzd3JhcC1nZW5lcmljLmMgXAogCW1fc3lzd3JhcC9zeXN3cmFwLWxpbnV4LmMgXAogCW1fc3lzd3JhcC9zeXN3cmFwLWxpbnV4LXZhcmlhbnRzLmMgXAogCW1fc3lzd3JhcC9zeXN3cmFwLWRhcndpbi5jIFwKKwltX3N5c3dyYXAvc3lzd3JhcC1zb2xhcmlzLmMgXAogCW1fc3lzd3JhcC9zeXN3cmFwLXg4Ni1saW51eC5jIFwKIAltX3N5c3dyYXAvc3lzd3JhcC1hbWQ2NC1saW51eC5jIFwKIAltX3N5c3dyYXAvc3lzd3JhcC1wcGMzMi1saW51eC5jIFwKQEAgLTQyMiw2ICs0NTIsOCBAQAogCW1fc3lzd3JhcC9zeXN3cmFwLXg4Ni1kYXJ3aW4uYyBcCiAJbV9zeXN3cmFwL3N5c3dyYXAtYW1kNjQtZGFyd2luLmMgXAogCW1fc3lzd3JhcC9zeXN3cmFwLXhlbi5jIFwKKwltX3N5c3dyYXAvc3lzd3JhcC14ODYtc29sYXJpcy5jIFwKKwltX3N5c3dyYXAvc3lzd3JhcC1hbWQ2NC1zb2xhcmlzLmMgXAogCW1fdW1lL2VsZi5jIFwKIAltX3VtZS9tYWNoby5jIFwKIAltX3VtZS9tYWluLmMgXApAQCAtNTE3LDYgKzU0OSwxNyBAQAogCSQoUFJFTE9BRF9MREZMQUdTX0BWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFNAKQogZW5kaWYKIAoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKKyMgR2l2ZSB0aGUgdmdwcmVsb2FkX2NvcmUgbGlicmFyeSBhIHByb3BlciBzb25hbWUgc28gaXQgY2FuIGJlIGVhc2lseQorIyByZWNvZ25pemVkIGR1cmluZyByZWFkaW5nIG9mIGRlYnVnIGluZm9ybWF0aW9uLgordmdwcmVsb2FkX2NvcmVfQFZHQ09ORl9BUkNIX1BSSUBfQFZHQ09ORl9PU0Bfc29fTERGTEFHUyArPSBcCisJLVdsLC1zb25hbWUgLVdsLHZncHJlbG9hZF9jb3JlLnNvLjAKK2lmIFZHQ09ORl9IQVZFX1BMQVRGT1JNX1NFQwordmdwcmVsb2FkX2NvcmVfQFZHQ09ORl9BUkNIX1NFQ0BfQFZHQ09ORl9PU0Bfc29fTERGTEFHUyArPSBcCisJLVdsLC1zb25hbWUgLVdsLHZncHJlbG9hZF9jb3JlLnNvLjAKK2VuZGlmCitlbmRpZgorCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBnZGJzZXJ2ZXIgeG1sIHRhcmdldCBkZXNjcmlwdGlvbnMKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvZml4dXBfbWFjaG9fbG9hZGNtZHMuYyBiL2NvcmVncmluZC9maXh1cF9tYWNob19sb2FkY21kcy5jCmluZGV4IGQ2NmFkMjAuLjlkYjZmNDYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9maXh1cF9tYWNob19sb2FkY21kcy5jCisrKyBiL2NvcmVncmluZC9maXh1cF9tYWNob19sb2FkY21kcy5jCkBAIC0xMjEsNyArMTIxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpZiBEQVJXSU5fVkVSUyAhPSBEQVJXSU5fMTBfNSAmJiBEQVJXSU5fVkVSUyAhPSBEQVJXSU5fMTBfNiBcCiAgICAgJiYgREFSV0lOX1ZFUlMgIT0gREFSV0lOXzEwXzcgJiYgREFSV0lOX1ZFUlMgIT0gREFSV0lOXzEwXzggXAotICAgICYmIERBUldJTl9WRVJTICE9IERBUldJTl8xMF85ICYmIERBUldJTl9WRVJTICE9IERBUldJTl8xMF8xMAorICAgICYmIERBUldJTl9WRVJTICE9IERBUldJTl8xMF85ICYmIERBUldJTl9WRVJTICE9IERBUldJTl8xMF8xMCBcCisgICAgJiYgREFSV0lOX1ZFUlMgIT0gREFSV0lOXzEwXzExCiAjICBlcnJvciAiVW5rbm93biBEQVJXSU5fVkVSUyB2YWx1ZS4gIFRoaXMgZmlsZSBvbmx5IGNvbXBpbGVzIG9uIERhcndpbi4iCiAjZW5kaWYKIApAQCAtNTU1LDcgKzU1Niw3IEBACiAKICAgbWF5YmVfbWFzaF9wYWdlemVybzoKICAgIC8qIERlYWwgd2l0aCBQcm9ibGVtICgyKSBhcyBkb2N1bWVudGVkIGFib3ZlLiAqLwotIyAgaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwCisjICBpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTAKICAgIGFzc2VydChzaXplID09IDY0KTsKICAgIGlmICghc2VnX19wYWdlemVybykgewogICAgICAgZmFpbCgiQ2FuJ3QgZmluZCBfX1BBR0VaRVJPIHRvIG1vZGlmeTsgY2FuJ3QgY29udGludWUuIik7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbGF1bmNoZXItZGFyd2luLmMgYi9jb3JlZ3JpbmQvbGF1bmNoZXItZGFyd2luLmMKaW5kZXggMmIxNDY5Ny4uOGQ0MjllMSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL2xhdW5jaGVyLWRhcndpbi5jCisrKyBiL2NvcmVncmluZC9sYXVuY2hlci1kYXJ3aW4uYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbGF1bmNoZXItbGludXguYyBiL2NvcmVncmluZC9sYXVuY2hlci1saW51eC5jCmluZGV4IGE1ZWJiMDIuLjRkMDE4ZjIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9sYXVuY2hlci1saW51eC5jCisrKyBiL2NvcmVncmluZC9sYXVuY2hlci1saW51eC5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIwMyw2ICsyMDMsMTQgQEAKICAgICAgICAgIGNvbnN0IEVsZjMyX0VoZHIgKmVoZHIgPSAoRWxmMzJfRWhkciAqKWhlYWRlcjsKIAogICAgICAgICAgaWYgKGhlYWRlcltFSV9EQVRBXSA9PSBFTEZEQVRBMkxTQikgeworIyAgICAgICAgICAgaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgICAgICAgIGlmIChlaGRyLT5lX21hY2hpbmUgPT0gRU1fMzg2ICYmCisgICAgICAgICAgICAgICAgKGVoZHItPmVfaWRlbnRbRUlfT1NBQkldID09IEVMRk9TQUJJX1NZU1YgfHwKKyAgICAgICAgICAgICAgICAgZWhkci0+ZV9pZGVudFtFSV9PU0FCSV0gPT0gRUxGT1NBQklfU09MQVJJUykpIHsKKyAgICAgICAgICAgICAgIHBsYXRmb3JtID0gIng4Ni1zb2xhcmlzIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyMgICAgICAgICAgIGVuZGlmCiAgICAgICAgICAgICBpZiAoZWhkci0+ZV9tYWNoaW5lID09IEVNXzM4NiAmJgogICAgICAgICAgICAgICAgIChlaGRyLT5lX2lkZW50W0VJX09TQUJJXSA9PSBFTEZPU0FCSV9TWVNWIHx8CiAgICAgICAgICAgICAgICAgIGVoZHItPmVfaWRlbnRbRUlfT1NBQkldID09IEVMRk9TQUJJX0xJTlVYKSkgewpAQCAtMjM5LDYgKzI0NywxNCBAQAogICAgICAgICAgY29uc3QgRWxmNjRfRWhkciAqZWhkciA9IChFbGY2NF9FaGRyICopaGVhZGVyOwogCiAgICAgICAgICBpZiAoaGVhZGVyW0VJX0RBVEFdID09IEVMRkRBVEEyTFNCKSB7CisjICAgICAgICAgICBpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgICAgICAgICAgaWYgKGVoZHItPmVfbWFjaGluZSA9PSBFTV9YODZfNjQgJiYKKyAgICAgICAgICAgICAgICAoZWhkci0+ZV9pZGVudFtFSV9PU0FCSV0gPT0gRUxGT1NBQklfU1lTViB8fAorICAgICAgICAgICAgICAgICBlaGRyLT5lX2lkZW50W0VJX09TQUJJXSA9PSBFTEZPU0FCSV9TT0xBUklTKSkgeworICAgICAgICAgICAgICAgcGxhdGZvcm0gPSAiYW1kNjQtc29sYXJpcyI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisjICAgICAgICAgICBlbmRpZgogICAgICAgICAgICAgaWYgKGVoZHItPmVfbWFjaGluZSA9PSBFTV9YODZfNjQgJiYKICAgICAgICAgICAgICAgICAoZWhkci0+ZV9pZGVudFtFSV9PU0FCSV0gPT0gRUxGT1NBQklfU1lTViB8fAogICAgICAgICAgICAgICAgICBlaGRyLT5lX2lkZW50W0VJX09TQUJJXSA9PSBFTEZPU0FCSV9MSU5VWCkpIHsKQEAgLTMwMiw2ICszMTgsNyBAQAogICAgY29uc3QgY2hhciAqcGxhdGZvcm07CiAgICBjb25zdCBjaGFyICpkZWZhdWx0X3BsYXRmb3JtOwogICAgY29uc3QgY2hhciAqY3A7CisgICBjb25zdCBjaGFyICpsaW5rbmFtZTsKICAgIGNoYXIgKnRvb2xmaWxlOwogICAgY29uc3QgY2hhciAqbGF1bmNoZXJfbmFtZTsKICAgIGNoYXIqIG5ld19saW5lOwpAQCAtMzQ2LDYgKzM2Myw3IEBACiAgICAgICB0eXBpY2FsbHkgaXQgaXMgdGhlIHByaW1hcnkgYnVpbGQgdGFyZ2V0LiBVbmxlc3MgdGhlIHByaW1hcnkgYnVpbGQKICAgICAgIHRhcmdldCBpcyBub3QgYnVpbHQgaXMgbm90IGJ1aWx0IGluIHdoaWNoIGNhc2UgVkdfUExBVEZPUk0gaXMgdGhlCiAgICAgICBzZWNvbmRhcnkgYnVpbGQgdGFyZ2V0LiAqLworIyAgaWYgZGVmaW5lZChWR09fbGludXgpCiAgICBpZiAoKDA9PXN0cmNtcChWR19QTEFURk9STSwieDg2LWxpbnV4IikpICAgIHx8CiAgICAgICAgKDA9PXN0cmNtcChWR19QTEFURk9STSwiYW1kNjQtbGludXgiKSkgIHx8CiAgICAgICAgKDA9PXN0cmNtcChWR19QTEFURk9STSwicHBjMzItbGludXgiKSkgIHx8CkBAIC0zNTgsNiArMzc2LDEzIEBACiAgICAgICAgKDA9PXN0cmNtcChWR19QTEFURk9STSwibWlwczMyLWxpbnV4IikpIHx8CiAgICAgICAgKDA9PXN0cmNtcChWR19QTEFURk9STSwibWlwczY0LWxpbnV4IikpKQogICAgICAgZGVmYXVsdF9wbGF0Zm9ybSA9IFZHX1BMQVRGT1JNOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgaWYgKCgwPT1zdHJjbXAoVkdfUExBVEZPUk0sIng4Ni1zb2xhcmlzIikpIHx8CisgICAgICAgKDA9PXN0cmNtcChWR19QTEFURk9STSwiYW1kNjQtc29sYXJpcyIpKSkKKyAgICAgIGRlZmF1bHRfcGxhdGZvcm0gPSBTT0xBUklTX0xBVU5DSEVSX0RFRkFVTFRfUExBVEZPUk07CisjICBlbHNlCisjICAgIGVycm9yIFVua25vd24gT1MKKyMgIGVuZGlmCiAgICBlbHNlCiAgICAgICBiYXJmKCJVbmtub3duIFZHX1BMQVRGT1JNICclcyciLCBWR19QTEFURk9STSk7CiAKQEAgLTM4MCw2ICs0MDUsMTMgQEAKICAgIC8qIEZpZ3VyZSBvdXQgdGhlIG5hbWUgb2YgdGhpcyBleGVjdXRhYmxlICh2aXosIHRoZSBsYXVuY2hlciksIHNvCiAgICAgICB3ZSBjYW4gdGVsbCBzdGFnZTIuICBzdGFnZTIgd2lsbCB1c2UgdGhlIG5hbWUgZm9yIHJlY3Vyc2l2ZQogICAgICAgaW52b2NhdGlvbnMgb2YgdmFsZ3JpbmQgb24gY2hpbGQgcHJvY2Vzc2VzLiAqLworIyAgaWYgZGVmaW5lZChWR09fbGludXgpCisgICBsaW5rbmFtZSA9ICIvcHJvYy9zZWxmL2V4ZSI7CisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBsaW5rbmFtZSA9ICIvcHJvYy9zZWxmL3BhdGgvYS5vdXQiOworIyAgZWxzZQorIyAgICBlcnJvciBVbmtub3duIE9TCisjICBlbmRpZgogICAgdW5zaWduZWQgYnVmc2l6ID0gMDsKICAgIGNoYXIgKmJ1ZiA9IE5VTEw7CiAKQEAgLTM4OCwxNCArNDIwLDE0IEBACiAgICAgICBidWYgPSByZWFsbG9jKGJ1ZiwgYnVmc2l6KTsKICAgICAgIGlmIChidWYgPT0gTlVMTCkKICAgICAgICAgIGJhcmYoInJlYWxsb2Mgb2YgYnVmIGZhaWxlZC4iKTsKLSAgICAgIHIgPSByZWFkbGluaygiL3Byb2Mvc2VsZi9leGUiLCBidWYsIGJ1ZnNpeik7CisgICAgICByID0gcmVhZGxpbmsobGlua25hbWUsIGJ1ZiwgYnVmc2l6KTsKICAgICAgIGlmIChyID09IC0xKSB7Ci0gICAgICAgIC8qIElmIC9wcm9jL3NlbGYvZXhlIGNhbid0IGJlIGZvbGxvd2VkLCBkb24ndCBnaXZlIHVwLiAgSW5zdGVhZAotICAgICAgICAgICBjb250aW51ZSB3aXRoIGFuIGVtcHR5IHN0cmluZyBmb3IgVkFMR1JJTkRfTEFVTkNIRVIuICBJbiB0aGUKLSAgICAgICAgICAgc3lzX2V4ZWN2ZSB3cmFwcGVyLCB0aGlzIGlzIHRlc3RlZCwgYW5kIGlmIGZvdW5kIHRvIGJlIGVtcHR5LAorICAgICAgICAvKiBJZiAvcHJvYy9zZWxmL2V4ZSAoL3Byb2Mvc2VsZi9wYXRoL2Eub3V0KSBjYW4ndCBiZSBmb2xsb3dlZCwgZG9uJ3QKKyAgICAgICAgICAgZ2l2ZSB1cC4gSW5zdGVhZCBjb250aW51ZSB3aXRoIGFuIGVtcHR5IHN0cmluZyBmb3IgVkFMR1JJTkRfTEFVTkNIRVIuCisgICAgICAgICAgIEluIHRoZSBzeXNfZXhlY3ZlIHdyYXBwZXIsIHRoaXMgaXMgdGVzdGVkLCBhbmQgaWYgZm91bmQgdG8gYmUgZW1wdHksCiAgICAgICAgICAgIGZhaWwgdGhlIGV4ZWN2ZS4gKi8KICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ2YWxncmluZDogd2FybmluZyAobm9uLWZhdGFsKTogIgotICAgICAgICAgICAgICAgICJyZWFkbGluayhcIi9wcm9jL3NlbGYvZXhlXCIpIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgICAgICJyZWFkbGluayhcIiVzXCIpIGZhaWxlZC5cbiIsIGxpbmtuYW1lKTsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ2YWxncmluZDogY29udGludWluZywgaG93ZXZlciAtLXRyYWNlLWNoaWxkcmVuPXllcyAiCiAgICAgICAgICAgICAgICAgIndpbGwgbm90IHdvcmsuXG4iKTsKICAgICAgICAgbGF1bmNoZXJfbmFtZSA9ICIiOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL2xpbmtfdG9vbF9leGVfc29sYXJpcy5pbiBiL2NvcmVncmluZC9saW5rX3Rvb2xfZXhlX3NvbGFyaXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk1MjIwZgotLS0gL2Rldi9udWxsCisrKyBiL2NvcmVncmluZC9saW5rX3Rvb2xfZXhlX3NvbGFyaXMuaW4KQEAgLTAsMCArMSw4NCBAQAorIyEgQFBFUkxACisKKyMgR2VuZXJpYyBpbmZvcm1hdGlvbiBhYm91dCBhIHB1cnBvc2Ugb2YgdGhpcyBzY3JpcHQgY2FuIGJlIGZvdW5kIGluCisjIGxpbmtfdG9vbF9leGVfbGludXguaW4uCisjCisjIFNvbGFyaXMgc3BlY2lmaWMgbm90ZXM6CisjCisjIC0gbG9hZCBhZGRyZXNzIGhhcyB0byBiZSBzcGVjaWZpZWQgaW4gdGhlIG1hcGZpbGUsIHRoZXJlIGlzIG5vIGNvbW1hbmQgbGluZQorIyAgIG9wdGlvbiB0byBhY2hpZXZlIHRoYXQKKyMKKyMgLSBtYXBmaWxlIHZlcnNpb24gMiBpcyB1c2VkCisjCisjIC0gaW5mb3JtYXRpb24gYWJvdXQgU29sYXJpcyBsaW5rZXIgY2FuIGJlIGZvdW5kIGluIGl0cyBtYW4gcGFnZQorIyAgIChodHRwOi8vZG93bmxvYWQub3JhY2xlLmNvbS9kb2NzL2NkL0UxOTI1My0wMS84MTYtNTE2NS9sZC0xL2luZGV4Lmh0bWwpCisjICAgYW5kIGluIE9yYWNsZSdzIExpbmtlciBhbmQgTGlicmFyaWVzIEd1aWRlCisjICAgKGh0dHA6Ly9kb3dubG9hZC5vcmFjbGUuY29tL2RvY3MvY2QvRTE5OTYzLTAxL2h0bWwvODE5LTA2OTAvaW5kZXguaHRtbCkKKyMKKwordXNlIHdhcm5pbmdzOwordXNlIHN0cmljdDsKK3VzZSBGaWxlOjpUZW1wIHF3L3RlbXBmaWxlIHVubGluazAvOwordXNlIEZjbnRsIHF3L0ZfU0VURkQvOworCisjIGV4cGVjdCBhdCBsZWFzdDogYWx0LWxvYWQtYWRkcmVzcyBnY2MgLW8gZm9vIGJhci5vCitkaWUgIk5vdCBlbm91Z2ggYXJndW1lbnRzIgorICAgIGlmICgoJCNBUkdWICsgMSkgPCA1KTsKKworbXkgJGFsYSA9ICRBUkdWWzBdOworCisjIGNoZWNrIGZvciBwbGF1c2libGUtaXNoIGFsdCBsb2FkIGFkZHJlc3MKK2RpZSAiQm9ndXMgYWx0LWxvYWQgYWRkcmVzcyIKKyAgICBpZiAobGVuZ3RoKCRhbGEpIDwgMyB8fCBpbmRleCgkYWxhLCAiMHgiKSAhPSAwKTsKKworIyB0aGUgY2MgaW52b2thdGlvbiB0byBkbyB0aGUgZmluYWwgbGluaworbXkgJGNjID0gJEFSR1ZbMV07CisKKyMgYW5kIHRoZSAncmVzdGFyZ3MnIGFyZSBhcmd2WzIgLi5dCisKKyMgY3JlYXRlIGEgdGVtcG9yYXJ5IG1hcGZpbGUKKyhteSAkZmgsIG15ICRwYXRoKSA9IHRlbXBmaWxlKCk7CisKKyMgcmVzZXQgRkRfQ0xPRVhFQyBmbGFnCitmY250bCgkZmgsIEZfU0VURkQsIDApCisgICAgb3IgZGllICJDYW4ndCBjbGVhciBjbG9zZS1vbi1leGVjIGZsYWcgb24gdGVtcCBmaDogJCEiOworCisjIHNhZmVseSB1bmxpbmsgdGhlIGZpbGUKK3VubGluazAoJGZoLCAkcGF0aCkKKyAgICBvciBkaWUgIkVycm9yIHVubGlua2luZyBmaWxlICRwYXRoIHNhZmVseSI7Cit1bmRlZiAkcGF0aDsKKworIyBmaWxsIGl0IHdpdGggZGF0YQorIworIyB0aGlzIGlzIGEgYml0IHRyaWNreSwgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbiBoYXMgdG8gYmUKKyMgdHJ1ZSBmb3IgYm90aCBQVF9MT0FEIHNlZ21lbnRzOgorIyAocGhkci0+cF92YWRkciAmIFBBR0VPRkZTRVQpID09IChwaGRyLT5wX29mZnNldCAmIFBBR0VPRkZTRVQpCisjIGlmIGl0IGRvZXNuJ3QgaG9sZCB0aGVuIHRoZSBrZXJuZWwgbWFwcyBhIHNlZ21lbnQgYXMgYW4gYW5vbiBtYXBwaW5nIGluc3RlYWQKKyMgb2YgYSBmaWxlIG1hcHBpbmcgKHdoaWNoLCBmb3IgZXhhbXBsZSwgYnJlYWtzIHJlYWRpbmcgZGVidWcgaW5mb3JtYXRpb24pCitwcmludCAkZmggPDwiRU5EIjsKK1wkbWFwZmlsZV92ZXJzaW9uIDIKK0xPQURfU0VHTUVOVCB0ZXh0IHsgVkFERFIgPSAkYWxhOyBST1VORCA9IDB4MTAwMCB9OworTE9BRF9TRUdNRU5UIGRhdGEgeyBST1VORCA9IDB4MTAwMCB9OworRU5ECisKKyMgYnVpbGQgdXAgdGhlIGNvbXBsZXRlIGNvbW1hbmQgaGVyZToKKyMgJ2NjJyAtV2wsLU10bXBmaWxlICdyZXN0YXJncycKKworbXkgJGNtZD0iJGNjIC1XbCwtTS9wcm9jLyQkL2ZkLyIgLiBmaWxlbm8oJGZoKTsKKworIyBhZGQgdGhlIHJlc3Qgb2YgdGhlIHBhcmFtZXRlcnMKK2ZvcmVhY2ggbXkgJG4gKDIgLi4gJCNBUkdWKSB7CisgICAgJGNtZCA9ICIkY21kICRBUkdWWyRuXSI7Cit9CisKKyNwcmludCAibGlua190b29sX2V4ZV9zb2xhcmlzOiAkY21kXG4iOworCisKKyMgZXhlY3V0ZSB0aGUgY29tbWFuZDoKK215ICRyID0gc3lzdGVtKCIkY21kIik7CisKK2lmICgkciA9PSAwKSB7CisgICAgZXhpdCAwOworfSBlbHNlIHsKKyAgICBleGl0IDE7Cit9CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9hZGRyaW5mby5jIGIvY29yZWdyaW5kL21fYWRkcmluZm8uYwppbmRleCBlNmY1OGVlLi44YzM5YjQ3IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9hZGRyaW5mby5jCisrKyBiL2NvcmVncmluZC9tX2FkZHJpbmZvLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTEwMCw3ICsxMDAsNyBAQAogCiAgICAodm9pZCkgVkdfKGdldF9kYXRhX2Rlc2NyaXB0aW9uKSggYWktPkFkZHIuVmFyaWFibGUuZGVzY3IxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFpLT5BZGRyLlZhcmlhYmxlLmRlc2NyMiwgYSApOwotICAgLyogSWYgdGhlcmUncyBub3RoaW5nIGluIGRlc2NyMS8yLCBmcmVlIHRoZW0uICBXaHkgaXMgaXQgc2FmZSB0byB0bworICAgLyogSWYgdGhlcmUncyBub3RoaW5nIGluIGRlc2NyMS8yLCBmcmVlIHRoZW0uICBXaHkgaXMgaXQgc2FmZSB0bwogICAgICAgVkdfKGluZGV4WEEpIGF0IHplcm8gaGVyZT8gIEJlY2F1c2UgVkdfKGdldF9kYXRhX2Rlc2NyaXB0aW9uKQogICAgICAgZ3VhcmFudGVlcyB0byB6ZXJvIHRlcm1pbmF0ZSBkZXNjcjEvMiByZWdhcmRsZXNzIG9mIHRoZSBvdXRjb21lCiAgICAgICBvZiB0aGUgY2FsbC4gIFNvIHRoZXJlJ3MgYWx3YXlzIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIGVhY2ggWEEKQEAgLTI2NSw3ICsyNjUsMTEgQEAKIAogICAgICAgLyogU3BlY2lhbCBjYXNlIHRvIGRldGVjdCB0aGUgYnJrIGRhdGEgc2VnbWVudC4gKi8KICAgICAgIGlmIChzZWcgIT0gTlVMTAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAgICAgJiYgKHNlZy0+a2luZCA9PSBTa0Fub25DIHx8IHNlZy0+a2luZCA9PSBTa0ZpbGVDKQorI2Vsc2UKICAgICAgICAgICAmJiBzZWctPmtpbmQgPT0gU2tBbm9uQworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAgICAgICAgICAgJiYgVkdfKGJya19saW1pdCkgPj0gc2VnLT5zdGFydAogICAgICAgICAgICYmIFZHXyhicmtfbGltaXQpIDw9IHNlZy0+ZW5kKzEpIHsKICAgICAgICAgIC8qIEFkZHJlc3MgYSBpcyBpbiBhIEFub24gQ2xpZW50IHNlZ21lbnQgd2hpY2ggY29udGFpbnMKQEAgLTQxNiwyMiArNDIwLDIxIEBACiAKICAgICAgIGNhc2UgQWRkcl9Vbmtub3duOgogICAgICAgICAgaWYgKG1heWJlX2djYykgewotICAgICAgICAgICAgVkdfKGVtaXQpKCAiJXNBZGRyZXNzIDB4JWxseCBpcyBqdXN0IGJlbG93IHRoZSBzdGFjayBwdHIuICAiCisgICAgICAgICAgICBWR18oZW1pdCkoICIlc0FkZHJlc3MgMHglbHggaXMganVzdCBiZWxvdyB0aGUgc3RhY2sgcHRyLiAgIgogICAgICAgICAgICAgICAgICAgICAgICAiVG8gc3VwcHJlc3MsIHVzZTogLS13b3JrYXJvdW5kLWdjYzI5Ni1idWdzPXllcyVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICB4cHJlLCAoVUxvbmcpYSwgeHBvc3QgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgeHByZSwgYSwgeHBvc3QgKTsKIAkgfSBlbHNlIHsKLSAgICAgICAgICAgIFZHXyhlbWl0KSggIiVzQWRkcmVzcyAweCVsbHggIgorICAgICAgICAgICAgVkdfKGVtaXQpKCAiJXNBZGRyZXNzIDB4JWx4ICIKICAgICAgICAgICAgICAgICAgICAgICAgImlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAlcyVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICB4cHJlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgKFVMb25nKWEsIAorICAgICAgICAgICAgICAgICAgICAgICB4cHJlLCBhLAogICAgICAgICAgICAgICAgICAgICAgICBtYyA/ICIocmVjZW50bHkpIGZyZWUnZCIgOiAib24gYSBmcmVlIGxpc3QiLAogICAgICAgICAgICAgICAgICAgICAgICB4cG9zdCApOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgQWRkcl9TdGFjazogCi0gICAgICAgICBWR18oZW1pdCkoICIlc0FkZHJlc3MgMHglbGx4IGlzIG9uIHRocmVhZCAlcyVkJ3Mgc3RhY2slc1xuIiwgCi0gICAgICAgICAgICAgICAgICAgIHhwcmUsIChVTG9uZylhLCAKKyAgICAgICAgIFZHXyhlbWl0KSggIiVzQWRkcmVzcyAweCVseCBpcyBvbiB0aHJlYWQgJXMldSdzIHN0YWNrJXNcbiIsIAorICAgICAgICAgICAgICAgICAgICB4cHJlLCBhLCAKICAgICAgICAgICAgICAgICAgICAgb3B0X3Rucl9wcmVmaXggKGFpLT5BZGRyLlN0YWNrLnRpbmZvKSwgCiAgICAgICAgICAgICAgICAgICAgIHRucl9lbHNlX3RpZCAoYWktPkFkZHIuU3RhY2sudGluZm8pLCAKICAgICAgICAgICAgICAgICAgICAgeHBvc3QgKTsKQEAgLTQ1NSw3ICs0NTgsNyBAQAogCiAgICAgICAgICAgICBIQ2hhciBzdHJsaW5lbnVtWzE2XSA9ICIiOyAgIC8vIGxhcmdlIGVub3VnaAogICAgICAgICAgICAgaWYgKGhhc2ZpbGUgJiYgaGFzbGluZW51bSkKLSAgICAgICAgICAgICAgIFZHXyhzcHJpbnRmKShzdHJsaW5lbnVtLCAiJWQiLCBsaW5lbnVtKTsKKyAgICAgICAgICAgICAgIFZHXyhzcHJpbnRmKShzdHJsaW5lbnVtLCAiJXUiLCBsaW5lbnVtKTsKIAogICAgICAgICAgICAgaGFzZm4gPSBWR18oZ2V0X2ZubmFtZSkoYWktPkFkZHIuU3RhY2suSVAsICZmbik7CiAKQEAgLTU1OSw3ICs1NjIsNyBAQAogICAgICAgICAgfQogICAgICAgICAgaWYgKGFpLT5BZGRyLkJsb2NrLmFsbG9jX3RpbmZvLnRuciB8fCBhaS0+QWRkci5CbG9jay5hbGxvY190aW5mby50aWQpCiAgICAgICAgICAgICBWR18oZW1pdCkoCi0gICAgICAgICAgICAgICAiJXNCbG9jayB3YXMgYWxsb2MnZCBieSB0aHJlYWQgJXMlZCVzXG4iLAorICAgICAgICAgICAgICAgIiVzQmxvY2sgd2FzIGFsbG9jJ2QgYnkgdGhyZWFkICVzJXUlc1xuIiwKICAgICAgICAgICAgICAgIHhwcmUsCiAgICAgICAgICAgICAgICBvcHRfdG5yX3ByZWZpeCAoYWktPkFkZHIuQmxvY2suYWxsb2NfdGluZm8pLAogICAgICAgICAgICAgICAgdG5yX2Vsc2VfdGlkIChhaS0+QWRkci5CbG9jay5hbGxvY190aW5mbyksCkBAIC01NjksMTAgKzU3Miw5IEBACiAgICAgICB9CiAKICAgICAgIGNhc2UgQWRkcl9EYXRhU3ltOgotICAgICAgICAgVkdfKGVtaXQpKCAiJXNBZGRyZXNzIDB4JWxseCBpcyAlbGx1IGJ5dGVzICIKKyAgICAgICAgIFZHXyhlbWl0KSggIiVzQWRkcmVzcyAweCVseCBpcyAlbGx1IGJ5dGVzICIKICAgICAgICAgICAgICAgICAgICAgImluc2lkZSBkYXRhIHN5bWJvbCBcIiVwU1wiJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgIHhwcmUsCi0gICAgICAgICAgICAgICAgICAgIChVTG9uZylhLAorICAgICAgICAgICAgICAgICAgICB4cHJlLCBhLAogICAgICAgICAgICAgICAgICAgICAoVUxvbmcpYWktPkFkZHIuRGF0YVN5bS5vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgIGFpLT5BZGRyLkRhdGFTeW0ubmFtZSwKICAgICAgICAgICAgICAgICAgICAgeHBvc3QgKTsKQEAgLTU5Myw5ICs1OTUsOCBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgQWRkcl9TZWN0S2luZDoKLSAgICAgICAgIFZHXyhlbWl0KSggIiVzQWRkcmVzcyAweCVsbHggaXMgaW4gdGhlICVwUyBzZWdtZW50IG9mICVwUyVzXG4iLAotICAgICAgICAgICAgICAgICAgICB4cHJlLAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpYSwKKyAgICAgICAgIFZHXyhlbWl0KSggIiVzQWRkcmVzcyAweCVseCBpcyBpbiB0aGUgJXBTIHNlZ21lbnQgb2YgJXBTJXNcbiIsCisgICAgICAgICAgICAgICAgICAgIHhwcmUsIGEsCiAgICAgICAgICAgICAgICAgICAgIFZHXyhwcF9TZWN0S2luZCkoYWktPkFkZHIuU2VjdEtpbmQua2luZCksCiAgICAgICAgICAgICAgICAgICAgIGFpLT5BZGRyLlNlY3RLaW5kLm9iam5hbWUsCiAgICAgICAgICAgICAgICAgICAgIHhwb3N0ICk7CkBAIC02MDgsMjkgKzYwOSwyNyBAQAogCiAgICAgICBjYXNlIEFkZHJfQnJrU2VnbWVudDoKICAgICAgICAgIGlmIChhIDwgYWktPkFkZHIuQnJrU2VnbWVudC5icmtfbGltaXQpCi0gICAgICAgICAgICBWR18oZW1pdCkoICIlc0FkZHJlc3MgMHglbGx4IGlzIGluIHRoZSBicmsgZGF0YSBzZWdtZW50IgotICAgICAgICAgICAgICAgICAgICAgICAiIDB4JWxseC0weCVsbHglc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgeHByZSwKLSAgICAgICAgICAgICAgICAgICAgICAgKFVMb25nKWEsCi0gICAgICAgICAgICAgICAgICAgICAgIChVTG9uZylWR18oYnJrX2Jhc2UpLAotICAgICAgICAgICAgICAgICAgICAgICAoVUxvbmcpYWktPkFkZHIuQnJrU2VnbWVudC5icmtfbGltaXQgLSAxLAorICAgICAgICAgICAgVkdfKGVtaXQpKCAiJXNBZGRyZXNzIDB4JWx4IGlzIGluIHRoZSBicmsgZGF0YSBzZWdtZW50IgorICAgICAgICAgICAgICAgICAgICAgICAiIDB4JWx4LTB4JWx4JXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIHhwcmUsIGEsCisgICAgICAgICAgICAgICAgICAgICAgIFZHXyhicmtfYmFzZSksCisgICAgICAgICAgICAgICAgICAgICAgIGFpLT5BZGRyLkJya1NlZ21lbnQuYnJrX2xpbWl0IC0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgeHBvc3QgKTsKICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFZHXyhlbWl0KSggIiVzQWRkcmVzcyAweCVsbHggaXMgJWx1IGJ5dGVzIGFmdGVyICIKKyAgICAgICAgICAgIFZHXyhlbWl0KSggIiVzQWRkcmVzcyAweCVseCBpcyAlbHUgYnl0ZXMgYWZ0ZXIgIgogICAgICAgICAgICAgICAgICAgICAgICAidGhlIGJyayBkYXRhIHNlZ21lbnQgbGltaXQiCi0gICAgICAgICAgICAgICAgICAgICAgICIgMHglbGx4JXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgIHhwcmUsCi0gICAgICAgICAgICAgICAgICAgICAgIChVTG9uZylhLAorICAgICAgICAgICAgICAgICAgICAgICAiIDB4JWx4JXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIHhwcmUsIGEsCiAgICAgICAgICAgICAgICAgICAgICAgIGEgLSBhaS0+QWRkci5CcmtTZWdtZW50LmJya19saW1pdCwKLSAgICAgICAgICAgICAgICAgICAgICAgKFVMb25nKWFpLT5BZGRyLkJya1NlZ21lbnQuYnJrX2xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICBhaS0+QWRkci5CcmtTZWdtZW50LmJya19saW1pdCwKICAgICAgICAgICAgICAgICAgICAgICAgeHBvc3QgKTsKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIEFkZHJfU2VnbWVudEtpbmQ6Ci0gICAgICAgICBWR18oZW1pdCkoICIlc0FkZHJlc3MgMHglbGx4IGlzIGluICIKKyAgICAgICAgIFZHXyhlbWl0KSggIiVzQWRkcmVzcyAweCVseCBpcyBpbiAiCiAgICAgICAgICAgICAgICAgICAgICJhICVzJXMlcyAlcyVzJXBTIHNlZ21lbnQlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgeHByZSwKLSAgICAgICAgICAgICAgICAgICAgKFVMb25nKWEsCisgICAgICAgICAgICAgICAgICAgIGEsCiAgICAgICAgICAgICAgICAgICAgIGFpLT5BZGRyLlNlZ21lbnRLaW5kLmhhc1IgPyAiciIgOiAiLSIsCiAgICAgICAgICAgICAgICAgICAgIGFpLT5BZGRyLlNlZ21lbnRLaW5kLmhhc1cgPyAidyIgOiAiLSIsCiAgICAgICAgICAgICAgICAgICAgIGFpLT5BZGRyLlNlZ21lbnRLaW5kLmhhc1ggPyAieCIgOiAiLSIsCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9hc3BhY2VobC5jIGIvY29yZWdyaW5kL21fYXNwYWNlaGwuYwppbmRleCAxN2VjY2NlLi5lYTY4YmRmIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9hc3BhY2VobC5jCisrKyBiL2NvcmVncmluZC9tX2FzcGFjZWhsLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2FzcGFjZW1nci9hc3BhY2VtZ3ItY29tbW9uLmMgYi9jb3JlZ3JpbmQvbV9hc3BhY2VtZ3IvYXNwYWNlbWdyLWNvbW1vbi5jCmluZGV4IGEyMzU4NzUuLjIwNWUwNTIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2FzcGFjZW1nci9hc3BhY2VtZ3ItY29tbW9uLmMKKysrIGIvY29yZWdyaW5kL21fYXNwYWNlbWdyL2FzcGFjZW1nci1jb21tb24uYwpAQCAtOSw3ICs5LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTc0LDYgKzE3NCwxOCBAQAogICAgfQogICAgcmVzID0gVkdfKGRvX3N5c2NhbGw2KShfX05SX21tYXAsIChVV29yZClzdGFydCwgbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90LCBmbGFncywgKFVJbnQpZmQsIG9mZnNldCk7CisjICBlbGlmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgLyogTUFQX0FOT04gd2l0aCBmZD09MCBpcyBFSU5WQUwuICovCisgICBpZiAoZmQgPT0gMCAmJiAoZmxhZ3MgJiBWS0lfTUFQX0FOT05ZTU9VUykpCisgICAgICBmZCA9IC0xOworICAgcmVzID0gVkdfKGRvX3N5c2NhbGw3KShfX05SX21tYXA2NCwgKFVXb3JkKXN0YXJ0LCBsZW5ndGgsIHByb3QsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoVUludClmZCwgb2Zmc2V0ICYgMHhmZmZmZmZmZiwgb2Zmc2V0ID4+IDMyKTsKKyMgIGVsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIC8qIE1BUF9BTk9OIHdpdGggZmQ9PTAgaXMgRUlOVkFMLiAqLworICAgaWYgKGZkID09IDAgJiYgKGZsYWdzICYgVktJX01BUF9BTk9OWU1PVVMpKQorICAgICAgZmQgPSAtMTsKKyAgIHJlcyA9IFZHXyhkb19zeXNjYWxsNikoX19OUl9tbWFwLCAoVVdvcmQpc3RhcnQsIGxlbmd0aCwgcHJvdCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChVSW50KWZkLCBvZmZzZXQpOwogIyAgZWxzZQogIyAgICBlcnJvciBVbmtub3duIHBsYXRmb3JtCiAjICBlbmRpZgpAQCAtMjQ5LDggKzI2MSwxMyBAQAogIyAgZWxpZiBkZWZpbmVkKFZHUF90aWxlZ3hfbGludXgpCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX29wZW5hdCwgVktJX0FUX0ZEQ1dELCAoVVdvcmQpcGF0aG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgbW9kZSk7Ci0jICBlbHNlCisjICBlbGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX29wZW4sIChVV29yZClwYXRobmFtZSwgZmxhZ3MsIG1vZGUpOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsNCkoX19OUl9vcGVuYXQsIFZLSV9BVF9GRENXRCwgKFVXb3JkKXBhdGhuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIG1vZGUpOworIyAgZWxzZQorIyAgICBlcnJvciBVbmtub3duIE9TCiAjICBlbmRpZgogICAgcmV0dXJuIHJlczsKIH0KQEAgLTI3NSwxNSArMjkyLDIwIEBACiAjICBlbGlmIGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkKICAgIHJlcyA9IFZHXyhkb19zeXNjYWxsNCkoX19OUl9yZWFkbGlua2F0LCBWS0lfQVRfRkRDV0QsIChVV29yZClwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpYnVmLCBidWZzaXopOwotIyAgZWxzZQorIyAgZWxpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQogICAgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX3JlYWRsaW5rLCAoVVdvcmQpcGF0aCwgKFVXb3JkKWJ1ZiwgYnVmc2l6KTsKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIHJlcyA9IFZHXyhkb19zeXNjYWxsNCkoX19OUl9yZWFkbGlua2F0LCBWS0lfQVRfRkRDV0QsIChVV29yZClwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpYnVmLCBidWZzaXopOworIyAgZWxzZQorIyAgICBlcnJvciBVbmtub3duIE9TCiAjICBlbmRpZgogICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/IC0xIDogc3JfUmVzKHJlcyk7CiB9CiAKIEludCBNTF8oYW1fZmNudGwpICggSW50IGZkLCBJbnQgY21kLCBBZGRyIGFyZyApCiB7Ci0jICBpZiBkZWZpbmVkKFZHT19saW51eCkKKyMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9mY250bCwgZmQsIGNtZCwgYXJnKTsKICMgIGVsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9mY250bF9ub2NhbmNlbCwgZmQsIGNtZCwgYXJnKTsKQEAgLTI5OSw2ICszMjEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL1VMb25nKiBkZXYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL1VMb25nKiBpbm8sIC8qT1VUKi9VSW50KiBtb2RlICkKIHsKKyMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICBTeXNSZXMgICAgICAgICAgcmVzOwogICAgc3RydWN0IHZraV9zdGF0IGJ1ZjsKICMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSAmJiBkZWZpbmVkKF9fTlJfZnN0YXQ2NCkKQEAgLTMyMiw2ICszNDUsMjYgQEAKICAgICAgIHJldHVybiBUcnVlOwogICAgfQogICAgcmV0dXJuIEZhbHNlOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIyAgaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBzdHJ1Y3QgdmtpX3N0YXQ2NCBidWY2NDsKKyAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfZnN0YXRhdDY0LCBmZCwgMCwgKFVXb3JkKSZidWY2NCwgMCk7CisjICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBzdHJ1Y3QgdmtpX3N0YXQgYnVmNjQ7CisgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX2ZzdGF0YXQsIGZkLCAwLCAoVVdvcmQpJmJ1ZjY0LCAwKTsKKyMgIGVsc2UKKyMgICAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjICBlbmRpZgorICAgaWYgKCFzcl9pc0Vycm9yKHJlcykpIHsKKyAgICAgICpkZXYgID0gKFVMb25nKWJ1ZjY0LnN0X2RldjsKKyAgICAgICppbm8gID0gKFVMb25nKWJ1ZjY0LnN0X2lubzsKKyAgICAgICptb2RlID0gKFVJbnQpIGJ1ZjY0LnN0X21vZGU7CisgICAgICByZXR1cm4gVHJ1ZTsKKyAgIH0KKyAgIHJldHVybiBGYWxzZTsKKyMgIGVsc2UKKyMgICAgZXJyb3IgVW5rbm93biBPUworIyAgZW5kaWYKIH0KIAogQm9vbCBNTF8oYW1fcmVzb2x2ZV9maWxlbmFtZSkgKCBJbnQgZmQsIC8qT1VUKi9IQ2hhciogYnVmLCBJbnQgbmJ1ZiApCkBAIC0zNDcsNiArMzkwLDE2IEBACiAgICB9CiAgICByZXR1cm4gRmFsc2U7CiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBJbnQgaTsKKyAgIEhDaGFyIHRtcFs2NF07CisgICBmb3IgKGkgPSAwOyBpIDwgbmJ1ZjsgaSsrKSBidWZbaV0gPSAwOworICAgTUxfKGFtX3NwcmludGYpKHRtcCwgIi9wcm9jL3NlbGYvcGF0aC8lZCIsIGZkKTsKKyAgIGlmIChNTF8oYW1fcmVhZGxpbmspKHRtcCwgYnVmLCBuYnVmKSA+IDAgJiYgYnVmWzBdID09ICcvJykKKyAgICAgIHJldHVybiBUcnVlOworICAgZWxzZQorICAgICAgcmV0dXJuIEZhbHNlOworCiAjICBlbHNlCiAjICAgICBlcnJvciBVbmtub3duIE9TCiAjICBlbmRpZgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fYXNwYWNlbWdyL2FzcGFjZW1nci1saW51eC5jIGIvY29yZWdyaW5kL21fYXNwYWNlbWdyL2FzcGFjZW1nci1saW51eC5jCmluZGV4IGFjZTI4ZDYuLjdjZTNjOTkgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2FzcGFjZW1nci9hc3BhY2VtZ3ItbGludXguYworKysgYi9jb3JlZ3JpbmQvbV9hc3BhY2VtZ3IvYXNwYWNlbWdyLWxpbnV4LmMKQEAgLTQsMTQgKzQsMTQgQEAKIC8qLS0tIFRoZSBhZGRyZXNzIHNwYWNlIG1hbmFnZXI6IHNlZ21lbnQgaW5pdGlhbGlzYXRpb24gYW5kICAgICAgICAtLS0qLwogLyotLS0gdHJhY2tpbmcsIHN0YWNrIG9wZXJhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCiAvKi0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KLS8qLS0tIEltcGxlbWVudGF0aW9uIGZvciBMaW51eCAoYW5kIERhcndpbiEpICAgbV9hc3BhY2VtZ3ItbGludXguYyAtLS0qLworLyotLS0gSW1wbGVtZW50YXRpb24gZm9yIExpbnV4IChhbmQgRGFyd2luISkgICAgIGFzcGFjZW1nci1saW51eC5jIC0tLSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogLyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMiw3ICszMiw3IEBACiAgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCi0jaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogCiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICBETyBOT1QgSU5DTFVERSBBTlkgT1RIRVIgRklMRVMgSEVSRS4KQEAgLTEwMCw2ICsxMDAsMTUgQEAKICAgICAgY2x1c3RlcmVkIHRvd2FyZHMgdGhlIHN0YXJ0IG9mIGF2YWlsYWJsZSBzcGFjZSwgYW5kIFZhbGdyaW5kIG9uZXMKICAgICAgaW4gdGhlIG1pZGRsZS4KIAorICAgICBPbiBTb2xhcmlzLCBzZWFyY2hlcyBmb3IgY2xpZW50IHNwYWNlIHN0YXJ0IGF0IChhc3BhY2VtX3ZTdGFydCAtIDEpCisgICAgIGFuZCBmb3IgVmFsZ3JpbmQgc3BhY2Ugc3RhcnQgYXQgKGFzcGFjZW1fbWF4QWRkciAtIDEpIGFuZCBnbyBiYWNrd2FyZHMuCisgICAgIFRoaXMgc2ltdWxhdGVzIHdoYXQga2VybmVsIGRvZXMgLSBicmsgbGltaXQgZ3Jvd3MgZnJvbSBib3R0b20gYW5kIG1tYXAnZWQKKyAgICAgb2JqZWN0cyBmcm9tIHRvcC4gSXQgaXMgaW4gY29udHJhcnkgd2l0aCBMaW51eCB3aGVyZSBkYXRhIHNlZ21lbnQKKyAgICAgYW5kIG1tYXAnZWQgb2JqZWN0cyBncm93IGZyb20gYm90dG9tIChsZWFkaW5nIHRvIGVhcmx5IGRhdGEgc2VnbWVudAorICAgICBleGhhdXN0aW9uIGZvciB0b29scyB3aGljaCBkbyBub3QgdXNlIG1fcmVwbGFjZW1hbGxvYykuIFdoaWxlIExpbnV4IGdsaWJjCisgICAgIGNhbiBjb3BlIHdpdGggdGhpcyBwcm9ibGVtIGJ5IGVtcGxveWluZyBtbWFwLCBTb2xhcmlzIGxpYmMgdHJlYXRzIGluYWJpbGl0eQorICAgICB0byBncm93IGJyayBsaW1pdCBhcyBhIGhhcmQgZmFpbHVyZS4KKwogICAgICBUaGUgYXZhaWxhYmxlIHNwYWNlIGlzIGRlbGltaXRlZCBieSBhc3BhY2VtX21pbkFkZHIgYW5kCiAgICAgIGFzcGFjZW1fbWF4QWRkci4gIGFzcGFjZW0gaXMgZmxleGlibGUgYW5kIGNhbiBvcGVyYXRlIHdpdGggdGhlc2UKICAgICAgYXQgYW55IChzYW5lKSBzZXR0aW5nLiAgRm9yIDMyLWJpdCBMaW51eCwgYXNwYWNlbV9taW5BZGRyIGlzIHNldApAQCAtMjk3LDE0ICszMDYsMTcgQEAKIAogCiBBZGRyIFZHXyhjbG9fYXNwYWNlbV9taW5BZGRyKQotI2lmIGRlZmluZWQoVkdPX2RhcndpbikKKyNpZiBkZWZpbmVkKFZHT19saW51eCkKKyAgID0gKEFkZHIpIDB4MDQwMDAwMDA7IC8vIDY0TQorI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIyBpZiBWR19XT1JEU0laRSA9PSA0CiAgICA9IChBZGRyKSAweDAwMDAxMDAwOwogIyBlbHNlCiAgICA9IChBZGRyKSAweDEwMDAwMDAwMDsgIC8vIDRHQiBwYWdlIHplcm8KICMgZW5kaWYKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICA9IChBZGRyKSAweDAwMTAwMDAwOyAvLyAxTUIKICNlbHNlCi0gICA9IChBZGRyKSAweDA0MDAwMDAwOyAvLyA2NE0KICNlbmRpZgogCiAKQEAgLTQzMCwxMCArNDQyLDEwIEBACiAKICAgIFZHXyhkZWJ1Z0xvZykoCiAgICAgICBsb2dMZXZlbCwgImFzcGFjZW0iLAotICAgICAgIiUzZDogJXMgJTAxMGxseC0lMDEwbGx4ICVzICVjJWMlYyVjJWMgJXMgIgotICAgICAgImQ9MHglMDNsbHggaT0lLTdsbGQgbz0lLTdsbGQgKCVkLCVkKSAlc1xuIiwKKyAgICAgICIlM2Q6ICVzICUwMTBseC0lMDEwbHggJXMgJWMlYyVjJWMlYyAlcyAiCisgICAgICAiZD0weCUwM2xseCBpPSUtN2xsdSBvPSUtN2xsZCAoJWQsJWQpICVzXG4iLAogICAgICAgc2VnTm8sIHNob3dfU2VnS2luZChzZWctPmtpbmQpLAotICAgICAgKFVMb25nKXNlZy0+c3RhcnQsIChVTG9uZylzZWctPmVuZCwgbGVuX2J1ZiwKKyAgICAgIHNlZy0+c3RhcnQsIHNlZy0+ZW5kLCBsZW5fYnVmLAogICAgICAgc2VnLT5oYXNSID8gJ3InIDogJy0nLCBzZWctPmhhc1cgPyAndycgOiAnLScsIAogICAgICAgc2VnLT5oYXNYID8gJ3gnIDogJy0nLCBzZWctPmhhc1QgPyAnVCcgOiAnLScsCiAgICAgICBzZWctPmlzQ0ggPyAnSCcgOiAnLScsCkBAIC00NTcsMTggKzQ2OSwxOCBAQAogICAgICAgY2FzZSBTa0ZyZWU6CiAgICAgICAgICBWR18oZGVidWdMb2cpKAogICAgICAgICAgICAgbG9nTGV2ZWwsICJhc3BhY2VtIiwKLSAgICAgICAgICAgICIlM2Q6ICVzICUwMTBsbHgtJTAxMGxseCAlc1xuIiwKKyAgICAgICAgICAgICIlM2Q6ICVzICUwMTBseC0lMDEwbHggJXNcbiIsCiAgICAgICAgICAgICBzZWdObywgc2hvd19TZWdLaW5kKHNlZy0+a2luZCksCi0gICAgICAgICAgICAoVUxvbmcpc2VnLT5zdGFydCwgKFVMb25nKXNlZy0+ZW5kLCBsZW5fYnVmCisgICAgICAgICAgICBzZWctPnN0YXJ0LCBzZWctPmVuZCwgbGVuX2J1ZgogICAgICAgICAgKTsKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIFNrQW5vbkM6IGNhc2UgU2tBbm9uVjogY2FzZSBTa1NobUM6CiAgICAgICAgICBWR18oZGVidWdMb2cpKAogICAgICAgICAgICAgbG9nTGV2ZWwsICJhc3BhY2VtIiwKLSAgICAgICAgICAgICIlM2Q6ICVzICUwMTBsbHgtJTAxMGxseCAlcyAlYyVjJWMlYyVjXG4iLAorICAgICAgICAgICAgIiUzZDogJXMgJTAxMGx4LSUwMTBseCAlcyAlYyVjJWMlYyVjXG4iLAogICAgICAgICAgICAgc2VnTm8sIHNob3dfU2VnS2luZChzZWctPmtpbmQpLAotICAgICAgICAgICAgKFVMb25nKXNlZy0+c3RhcnQsIChVTG9uZylzZWctPmVuZCwgbGVuX2J1ZiwKKyAgICAgICAgICAgIHNlZy0+c3RhcnQsIHNlZy0+ZW5kLCBsZW5fYnVmLAogICAgICAgICAgICAgc2VnLT5oYXNSID8gJ3InIDogJy0nLCBzZWctPmhhc1cgPyAndycgOiAnLScsIAogICAgICAgICAgICAgc2VnLT5oYXNYID8gJ3gnIDogJy0nLCBzZWctPmhhc1QgPyAnVCcgOiAnLScsCiAgICAgICAgICAgICBzZWctPmlzQ0ggPyAnSCcgOiAnLScKQEAgLTQ3OCwxMCArNDkwLDEwIEBACiAgICAgICBjYXNlIFNrRmlsZUM6IGNhc2UgU2tGaWxlVjoKICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoCiAgICAgICAgICAgICBsb2dMZXZlbCwgImFzcGFjZW0iLAotICAgICAgICAgICAgIiUzZDogJXMgJTAxMGxseC0lMDEwbGx4ICVzICVjJWMlYyVjJWMgZD0weCUwM2xseCAiCi0gICAgICAgICAgICAiaT0lLTdsbGQgbz0lLTdsbGQgKCVkLCVkKVxuIiwKKyAgICAgICAgICAgICIlM2Q6ICVzICUwMTBseC0lMDEwbHggJXMgJWMlYyVjJWMlYyBkPTB4JTAzbGx4ICIKKyAgICAgICAgICAgICJpPSUtN2xsdSBvPSUtN2xsZCAoJWQsJWQpXG4iLAogICAgICAgICAgICAgc2VnTm8sIHNob3dfU2VnS2luZChzZWctPmtpbmQpLAotICAgICAgICAgICAgKFVMb25nKXNlZy0+c3RhcnQsIChVTG9uZylzZWctPmVuZCwgbGVuX2J1ZiwKKyAgICAgICAgICAgIHNlZy0+c3RhcnQsIHNlZy0+ZW5kLCBsZW5fYnVmLAogICAgICAgICAgICAgc2VnLT5oYXNSID8gJ3InIDogJy0nLCBzZWctPmhhc1cgPyAndycgOiAnLScsIAogICAgICAgICAgICAgc2VnLT5oYXNYID8gJ3gnIDogJy0nLCBzZWctPmhhc1QgPyAnVCcgOiAnLScsIAogICAgICAgICAgICAgc2VnLT5pc0NIID8gJ0gnIDogJy0nLApAQCAtNDkzLDkgKzUwNSw5IEBACiAgICAgICBjYXNlIFNrUmVzdm46CiAgICAgICAgICBWR18oZGVidWdMb2cpKAogICAgICAgICAgICAgbG9nTGV2ZWwsICJhc3BhY2VtIiwKLSAgICAgICAgICAgICIlM2Q6ICVzICUwMTBsbHgtJTAxMGxseCAlcyAlYyVjJWMlYyVjICVzXG4iLAorICAgICAgICAgICAgIiUzZDogJXMgJTAxMGx4LSUwMTBseCAlcyAlYyVjJWMlYyVjICVzXG4iLAogICAgICAgICAgICAgc2VnTm8sIHNob3dfU2VnS2luZChzZWctPmtpbmQpLAotICAgICAgICAgICAgKFVMb25nKXNlZy0+c3RhcnQsIChVTG9uZylzZWctPmVuZCwgbGVuX2J1ZiwKKyAgICAgICAgICAgIHNlZy0+c3RhcnQsIHNlZy0+ZW5kLCBsZW5fYnVmLAogICAgICAgICAgICAgc2VnLT5oYXNSID8gJ3InIDogJy0nLCBzZWctPmhhc1cgPyAndycgOiAnLScsIAogICAgICAgICAgICAgc2VnLT5oYXNYID8gJ3gnIDogJy0nLCBzZWctPmhhc1QgPyAnVCcgOiAnLScsIAogICAgICAgICAgICAgc2VnLT5pc0NIID8gJ0gnIDogJy0nLApAQCAtOTAzLDkgKzkxNSw5IEBACiAgICAgICAgICAgICAgICJzZWdtZW50IG1pc21hdGNoOiBWJ3Mgc2VnIDFzdCwga2VybmVsJ3MgMm5kOlxuIik7CiAgICAgICAgICBzaG93X25zZWdtZW50X2Z1bGwoIDAsIGksICZuc2VnbWVudHNbaV0gKTsKICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMCwiYXNwYWNlbSIsIAotICAgICAgICAgICAgIi4uLjogLi4uLiAlMDEwbGx4LSUwMTBsbHggJXMgJWMlYyVjLi4gLi4uLi4uLiAiCi0gICAgICAgICAgICAiZD0weCUwM2xseCBpPSUtN2xsZCBvPSUtN2xsZCAoLikgbT0uICVzXG4iLAotICAgICAgICAgICAgKFVMb25nKXN0YXJ0LCAoVUxvbmcpZW5kLCBsZW5fYnVmLAorICAgICAgICAgICAgIi4uLjogLi4uLiAlMDEwbHgtJTAxMGx4ICVzICVjJWMlYy4uIC4uLi4uLi4gIgorICAgICAgICAgICAgImQ9MHglMDNsbHggaT0lLTdsbHUgbz0lLTdsbGQgKC4pIG09LiAlc1xuIiwKKyAgICAgICAgICAgIHN0YXJ0LCBlbmQsIGxlbl9idWYsCiAgICAgICAgICAgICBwcm90ICYgVktJX1BST1RfUkVBRCAgPyAncicgOiAnLScsCiAgICAgICAgICAgICBwcm90ICYgVktJX1BST1RfV1JJVEUgPyAndycgOiAnLScsCiAgICAgICAgICAgICBwcm90ICYgVktJX1BST1RfRVhFQyAgPyAneCcgOiAnLScsCkBAIC05NzAsOCArOTgyLDggQEAKICAgICAgICAgICAgICAgInNlZ21lbnQgbWlzbWF0Y2g6IFYncyBnYXAgMXN0LCBrZXJuZWwncyAybmQ6XG4iKTsKICAgICAgICAgIHNob3dfbnNlZ21lbnRfZnVsbCggMCwgaSwgJm5zZWdtZW50c1tpXSApOwogICAgICAgICAgVkdfKGRlYnVnTG9nKSgwLCJhc3BhY2VtIiwgCi0gICAgICAgICAgICAiICAgOiAuLi4uICUwMTBsbHgtJTAxMGxseCAlc1xuIiwKLSAgICAgICAgICAgIChVTG9uZylzdGFydCwgKFVMb25nKWVuZCwgbGVuX2J1Zik7CisgICAgICAgICAgICAiICAgOiAuLi4uICUwMTBseC0lMDEwbHggJXNcbiIsCisgICAgICAgICAgICBzdGFydCwgZW5kLCBsZW5fYnVmKTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KICAgIH0KQEAgLTExMjIsNiArMTEzNCwxOCBAQAogICAgICAgcmV0dXJuICZuc2VnbWVudHNbaV07CiB9CiAKKy8qIEZpbmRzIGFuIGFub255bW91cyBzZWdtZW50IGNvbnRhaW5pbmcgJ2EnLiBSZXR1cm5lZCBwb2ludGVyIGlzIHJlYWQgb25seS4gKi8KK05TZWdtZW50IGNvbnN0ICpWR18oYW1fZmluZF9hbm9uX3NlZ21lbnQpICggQWRkciBhICkKK3sKKyAgIEludCBpID0gZmluZF9uc2VnbWVudF9pZHgoYSk7CisgICBhc3BhY2VtX2Fzc2VydChpID49IDAgJiYgaSA8IG5zZWdtZW50c191c2VkKTsKKyAgIGFzcGFjZW1fYXNzZXJ0KG5zZWdtZW50c1tpXS5zdGFydCA8PSBhKTsKKyAgIGFzcGFjZW1fYXNzZXJ0KGEgPD0gbnNlZ21lbnRzW2ldLmVuZCk7CisgICBpZiAobnNlZ21lbnRzW2ldLmtpbmQgPT0gU2tBbm9uQyB8fCBuc2VnbWVudHNbaV0ua2luZCA9PSBTa0Fub25WKQorICAgICAgcmV0dXJuICZuc2VnbWVudHNbaV07CisgICBlbHNlCisgICAgICByZXR1cm4gTlVMTDsKK30KIAogLyogTWFwIHNlZ21lbnQgcG9pbnRlciB0byBzZWdtZW50IGluZGV4LiAqLwogc3RhdGljIEludCBzZWdBZGRyX3RvX2luZGV4ICggY29uc3QgTlNlZ21lbnQqIHNlZyApCkBAIC0xMjQxLDYgKzEyNjUsMTUgQEAKICAgIHJldHVybiBpc192YWxpZF9mb3Ioa2luZHMsIHN0YXJ0LCBsZW4sIHByb3QpOwogfQogCisvKiBDaGVja3MgaWYgYSBwaWVjZSBvZiBtZW1vcnkgY29uc2lzdHMgb2YgZWl0aGVyIGZyZWUgb3IgcmVzZXJ2YXRpb24KKyAgIHNlZ21lbnRzLiAqLworQm9vbCBWR18oYW1faXNfZnJlZV9vcl9yZXN2bikoIEFkZHIgc3RhcnQsIFNpemVUIGxlbiApCit7CisgICBjb25zdCBVSW50IGtpbmRzID0gU2tGcmVlIHwgU2tSZXN2bjsKKworICAgcmV0dXJuIGlzX3ZhbGlkX2ZvcihraW5kcywgc3RhcnQsIGxlbiwgMCk7Cit9CisKIAogQm9vbCBWR18oYW1faXNfdmFsaWRfZm9yX3ZhbGdyaW5kKSAoIEFkZHIgc3RhcnQsIFNpemVUIGxlbiwgVUludCBwcm90ICkKIHsKQEAgLTEyODgsNyArMTMyMSw3IEBACiAKICAgIGNhc2UgU2tSZXN2bjogewogICAgICAgaWYgKHNlZy0+c21vZGUgIT0gU21VcHBlcikgcmV0dXJuIEZhbHNlOwotICAgICAgLyogSWYgdGhlIHRoZSBhYnV0dGluZyBzZWdtZW50IHRvd2FyZHMgaGlnaGVyIGFkZHJlc3NlcyBpcyBhbiBTa0Fub25DCisgICAgICAvKiBJZiB0aGUgYWJ1dHRpbmcgc2VnbWVudCB0b3dhcmRzIGhpZ2hlciBhZGRyZXNzZXMgaXMgYW4gU2tBbm9uQwogICAgICAgICAgc2VnbWVudCwgdGhlbiBBRERSIGlzIGEgZnV0dXJlIHN0YWNrIHBvaW50ZXIuICovCiAgICAgICBjb25zdCBOU2VnbWVudCAqbmV4dCA9IFZHXyhhbV9uZXh0X25zZWdtZW50KShzZWcsIC8qZm9yd2FyZCovIFRydWUpOwogICAgICAgaWYgKG5leHQgPT0gTlVMTCB8fCBuZXh0LT5raW5kICE9IFNrQW5vbkMpIHJldHVybiBGYWxzZTsKQEAgLTE0ODYsMTIgKzE1MTksMTEgQEAKICAgIHNlZy5oYXNYICAgPSB0b0Jvb2wocHJvdCAmIFZLSV9QUk9UX0VYRUMpOwogICAgc2VnLmhhc1QgICA9IEZhbHNlOwogCi0gICAvKiBEb24ndCB1c2UgdGhlIHByZXNlbmNlIG9mIGEgZmlsZW5hbWUgdG8gZGVjaWRlIGlmIGEgc2VnbWVudCBpbgotICAgICAgdGhlIGluaXRpYWwgL3Byb2Mvc2VsZi9tYXBzIHRvIGRlY2lkZSBpZiB0aGUgc2VnbWVudCBpcyBhbiBBbm9uVgotICAgICAgb3IgRmlsZVYgc2VnbWVudCBhcyBzb21lIHN5c3RlbXMgZG9uJ3QgcmVwb3J0IHRoZSBmaWxlbmFtZS4gVXNlCi0gICAgICB0aGUgZGV2aWNlIGFuZCBpbm9kZSBudW1iZXJzIGluc3RlYWQuIEZpeGVzIGJ1ZyAjMTI0NTI4LiAqLworICAgLyogQSBzZWdtZW50IGluIHRoZSBpbml0aWFsIC9wcm9jL3NlbGYvbWFwcyBpcyBjb25zaWRlcmVkIGEgRmlsZVYKKyAgICAgIHNlZ21lbnQgaWYgZWl0aGVyIGl0IGhhcyBhIGZpbGUgbmFtZSBhc3NvY2lhdGVkIHdpdGggaXQgb3IgYm90aCBpdHMKKyAgICAgIGRldmljZSBhbmQgaW5vZGUgbnVtYmVycyBhcmUgIT0gMC4gU2VlIGJ1ZyAjMTI0NTI4LiAqLwogICAgc2VnLmtpbmQgPSBTa0Fub25WOwotICAgaWYgKGRldiAhPSAwICYmIGlubyAhPSAwKSAKKyAgIGlmIChmaWxlbmFtZSB8fCAoZGV2ICE9IDAgJiYgaW5vICE9IDApKSAKICAgICAgIHNlZy5raW5kID0gU2tGaWxlVjsKIAogIyAgaWYgZGVmaW5lZChWR09fZGFyd2luKQpAQCAtMTU5MywxNCArMTYyNSwxMDMgQEAKIAogICAgc3VnZ2VzdGVkX2Nsc3RhY2tfZW5kID0gLTE7IC8vIGlnbm9yZWQ7IE1hY2gtTyBzcGVjaWZpZXMgaXRzIHN0YWNrCiAKLSNlbHNlIC8qICFkZWZpbmVkKFZHT19kYXJ3aW4pICovCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIyAgaWYgVkdfV09SRFNJWkUgPT0gNAorICAgLyoKKyAgICAgIEludGVuZGVkIGFkZHJlc3Mgc3BhY2UgcGFydGl0aW9uaW5nOgorCisgICAgICAsLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0sIDB4MDAwMDAwMDAKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKKyAgICAgIHwgaW5pdGlhbCBzdGFjayBnaXZlbiB0byBWIGJ5IE9TIHwKKyAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgMHgwODAwMDAwMAorICAgICAgfCAgICAgICAgICBjbGllbnQgdGV4dCAgICAgICAgICAgfAorICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorICAgICAgfCAgICAgICAgICBjbGllbnQgc3RhY2sgICAgICAgICAgfAorICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCAweDM4MDAwMDAwCisgICAgICB8ICAgICAgICAgICAgVidzIHRleHQgICAgICAgICAgICB8CisgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CisgICAgICB8ICAgICBkeW5hbWljIHNoYXJlZCBvYmplY3RzICAgICB8CisgICAgICAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nIDB4ZmZmZmZmZmYKKworICAgICAgKi8KKworICAgLyogQW5vbnltb3VzIHBhZ2VzIG5lZWQgdG8gZml0IHVuZGVyIHVzZXIgbGltaXQgKFVTRVJMSU1JVDMyKQorICAgICAgd2hpY2ggaXMgNEtCICsgMTZNQiBiZWxvdyB0aGUgdG9wIG9mIHRoZSAzMi1iaXQgcmFuZ2UuICovCisjICAgIGlmZGVmIEVOQUJMRV9JTk5FUgorICAgICBhc3BhY2VtX21heEFkZHIgPSAoQWRkcikweDRmZmZmZmZmOyAvLyAxLjI1R0IKKyAgICAgYXNwYWNlbV92U3RhcnQgID0gKEFkZHIpMHg0MDAwMDAwMDsgLy8gMUdCCisjICAgIGVsc2UKKyAgICAgYXNwYWNlbV9tYXhBZGRyID0gKEFkZHIpMHhmZWZmZjAwMCAtIDE7IC8vIDRHQiAtIDE2TUIgLSA0S0IKKyAgICAgYXNwYWNlbV92U3RhcnQgID0gKEFkZHIpMHg1MDAwMDAwMDsgLy8gMS4yNUdCCisjICAgIGVuZGlmCisjICBlbGlmIFZHX1dPUkRTSVpFID09IDgKKyAgIC8qCisgICAgICBJbnRlbmRlZCBhZGRyZXNzIHNwYWNlIHBhcnRpdGlvbmluZzoKKworICAgICAgLC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLCAweDAwMDAwMDAwXzAwMDAwMDAwCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IDB4MDAwMDAwMDBfMDA0MDAwMDAKKyAgICAgIHwgICAgICAgICAgY2xpZW50IHRleHQgICAgICAgICAgIHwKKyAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKKyAgICAgIHwgICAgICAgICAgY2xpZW50IHN0YWNrICAgICAgICAgIHwKKyAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgMHgwMDAwMDAwMF8zODAwMDAwMAorICAgICAgfCAgICAgICAgICAgIFYncyB0ZXh0ICAgICAgICAgICAgfAorICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorICAgICAgfCAgICAgZHluYW1pYyBzaGFyZWQgb2JqZWN0cyAgICAgfAorICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCAweDAwMDAwMDBmX2ZmZmZmZmZmCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CisgICAgICB8IGluaXRpYWwgc3RhY2sgZ2l2ZW4gdG8gViBieSBPUyB8CisgICAgICAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nIDB4ZmZmZmZmZmZfZmZmZmZmZmYKKworICAgICAgKi8KKworICAgLyogS2VybmVsIGxpa2VzIHRvIHBsYWNlIG9iamVjdHMgYXQgdGhlIGVuZCBvZiB0aGUgYWRkcmVzcyBzcGFjZS4KKyAgICAgIEhvd2V2ZXIgYWNjZXNzaW5nIG1lbW9yeSBiZXlvbmQgNjRHQiBtYWtlcyBtZW1jaGVjayBzbG93CisgICAgICAoc2VlIG1lbWNoZWNrL21jX21haW4uYywgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24pLiBUaGVyZWZvcmU6CisgICAgICAtIG1tYXBvYmooKSBzeXNjYWxsIGlzIGVtdWxhdGVkIHNvIHRoYXQgbGlicmFyaWVzIGFyZSBzdWJqZWN0IHRvCisgICAgICAgIFZhbGdyaW5kJ3MgYXNwYWNlbWdyIGNvbnRyb2wKKyAgICAgIC0gS2VybmVsIHNoYXJlZCBwYWdlcyAoc3VjaCBhcyBzY2hlZGN0bCBhbmQgaHJ0KSBhcmUgbGVmdCBhcyB0aGV5IGFyZQorICAgICAgICBiZWNhdXNlIGtlcm5lbCBjYW5ub3QgYmUgdG9sZCB3aGVyZSB0aGV5IHNob3VsZCBiZSBwdXQgKi8KKyMgICAgaWZkZWYgRU5BQkxFX0lOTkVSCisgICAgIGFzcGFjZW1fbWF4QWRkciA9IChBZGRyKSAweDAwMDAwMDA3ZmZmZmZmZmY7IC8vIDMyR0IKKyAgICAgYXNwYWNlbV92U3RhcnQgID0gKEFkZHIpIDB4MDAwMDAwMDQwMDAwMDAwMDsgLy8gMTZHQgorIyAgICBlbHNlCisgICAgIGFzcGFjZW1fbWF4QWRkciA9IChBZGRyKSAweDAwMDAwMDBmZmZmZmZmZmY7IC8vIDY0R0IKKyAgICAgYXNwYWNlbV92U3RhcnQgID0gKEFkZHIpIDB4MDAwMDAwMDgwMDAwMDAwMDsgLy8gMzJHQgorIyAgICBlbmRpZgorIyAgZWxzZQorIyAgICBlcnJvciAiVW5rbm93biB3b3JkIHNpemUiCisjICBlbmRpZgorCisgICBhc3BhY2VtX2NTdGFydCA9IGFzcGFjZW1fbWluQWRkcjsKKyMgIGlmZGVmIEVOQUJMRV9JTk5FUgorICAgc3VnZ2VzdGVkX2Nsc3RhY2tfZW5kID0gKEFkZHIpIDB4MjdmZjAwMDAgLSAxOyAvLyA2NGtCIGJlbG93IFYncyB0ZXh0CisjICBlbHNlCisgICBzdWdnZXN0ZWRfY2xzdGFja19lbmQgPSAoQWRkcikgMHgzN2ZmMDAwMCAtIDE7IC8vIDY0a0IgYmVsb3cgVidzIHRleHQKKyMgIGVuZGlmCisKKyNlbHNlCiAKICAgIC8qIEVzdGFibGlzaCBhZGRyZXNzIGxpbWl0cyBhbmQgYmxvY2sgb3V0IHVudXNhYmxlIHBhcnRzCiAgICAgICBhY2NvcmRpbmdseS4gKi8KIAogICAgVkdfKGRlYnVnTG9nKSgyLCAiYXNwYWNlbSIsIAotICAgICAgICAgICAgICAgICAgICAiICAgICAgICBzcF9hdF9zdGFydHVwID0gMHglMDEwbGx4IChzdXBwbGllZClcbiIsIAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpc3BfYXRfc3RhcnR1cCApOworICAgICAgICAgICAgICAgICAgICAiICAgICAgICBzcF9hdF9zdGFydHVwID0gMHglMDEwbHggKHN1cHBsaWVkKVxuIiwgCisgICAgICAgICAgICAgICAgICAgIHNwX2F0X3N0YXJ0dXAgKTsKIAogIyAgaWYgVkdfV09SRFNJWkUgPT0gOAogICAgICBhc3BhY2VtX21heEFkZHIgPSAoQWRkcikweDEwMDAwMDAwMDBVTEwgLSAxOyAvLyA2NEcKQEAgLTE2MjQsNyArMTc0NSw3IEBACiAgICBzdWdnZXN0ZWRfY2xzdGFja19lbmQgPSBhc3BhY2VtX21heEFkZHIgLSAxNioxMDI0KjEwMjRVTEwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFZLSV9QQUdFX1NJWkU7CiAKLSNlbmRpZiAvKiAjZWxzZSBvZiAnZGVmaW5lZChWR09fZGFyd2luKScgKi8KKyNlbmRpZgogCiAgICBhc3BhY2VtX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQoYXNwYWNlbV9taW5BZGRyKSk7CiAgICBhc3BhY2VtX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQoYXNwYWNlbV9tYXhBZGRyICsgMSkpOwpAQCAtMTYzMywyMCArMTc1NCwyMCBAQAogICAgYXNwYWNlbV9hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKHN1Z2dlc3RlZF9jbHN0YWNrX2VuZCArIDEpKTsKIAogICAgVkdfKGRlYnVnTG9nKSgyLCAiYXNwYWNlbSIsIAotICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICBtaW5BZGRyID0gMHglMDEwbGx4IChjb21wdXRlZClcbiIsIAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpYXNwYWNlbV9taW5BZGRyKTsKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgbWluQWRkciA9IDB4JTAxMGx4IChjb21wdXRlZClcbiIsIAorICAgICAgICAgICAgICAgICAgICBhc3BhY2VtX21pbkFkZHIpOwogICAgVkdfKGRlYnVnTG9nKSgyLCAiYXNwYWNlbSIsIAotICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICBtYXhBZGRyID0gMHglMDEwbGx4IChjb21wdXRlZClcbiIsIAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpYXNwYWNlbV9tYXhBZGRyKTsKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgbWF4QWRkciA9IDB4JTAxMGx4IChjb21wdXRlZClcbiIsIAorICAgICAgICAgICAgICAgICAgICBhc3BhY2VtX21heEFkZHIpOwogICAgVkdfKGRlYnVnTG9nKSgyLCAiYXNwYWNlbSIsIAotICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgY1N0YXJ0ID0gMHglMDEwbGx4IChjb21wdXRlZClcbiIsIAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpYXNwYWNlbV9jU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgY1N0YXJ0ID0gMHglMDEwbHggKGNvbXB1dGVkKVxuIiwgCisgICAgICAgICAgICAgICAgICAgIGFzcGFjZW1fY1N0YXJ0KTsKICAgIFZHXyhkZWJ1Z0xvZykoMiwgImFzcGFjZW0iLCAKLSAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgIHZTdGFydCA9IDB4JTAxMGxseCAoY29tcHV0ZWQpXG4iLCAKLSAgICAgICAgICAgICAgICAgICAgKFVMb25nKWFzcGFjZW1fdlN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgIHZTdGFydCA9IDB4JTAxMGx4IChjb21wdXRlZClcbiIsIAorICAgICAgICAgICAgICAgICAgICBhc3BhY2VtX3ZTdGFydCk7CiAgICBWR18oZGVidWdMb2cpKDIsICJhc3BhY2VtIiwgCi0gICAgICAgICAgICAgICAgICAgICJzdWdnZXN0ZWRfY2xzdGFja19lbmQgPSAweCUwMTBsbHggKGNvbXB1dGVkKVxuIiwgCi0gICAgICAgICAgICAgICAgICAgIChVTG9uZylzdWdnZXN0ZWRfY2xzdGFja19lbmQpOworICAgICAgICAgICAgICAgICAgICAic3VnZ2VzdGVkX2Nsc3RhY2tfZW5kID0gMHglMDEwbHggKGNvbXB1dGVkKVxuIiwgCisgICAgICAgICAgICAgICAgICAgIHN1Z2dlc3RlZF9jbHN0YWNrX2VuZCk7CiAKICAgIGlmIChhc3BhY2VtX2NTdGFydCA+IEFkZHJfTUlOKSB7CiAgICAgICBpbml0X3Jlc3ZuKCZzZWcsIEFkZHJfTUlOLCBhc3BhY2VtX2NTdGFydC0xKTsKQEAgLTE3NDksOSArMTg3MCwxMyBAQAogICAgQWRkciBob2xlU3RhcnQsIGhvbGVFbmQsIGhvbGVMZW47CiAgICBCb29sIGZpeGVkX25vdF9yZXF1aXJlZDsKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBBZGRyIHN0YXJ0UG9pbnQgPSBmb3JDbGllbnQgPyBhc3BhY2VtX3ZTdGFydCAtIDEgOiBhc3BhY2VtX21heEFkZHIgLSAxOworI2Vsc2UKICAgIEFkZHIgc3RhcnRQb2ludCA9IGZvckNsaWVudCA/IGFzcGFjZW1fY1N0YXJ0IDogYXNwYWNlbV92U3RhcnQ7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIAotICAgQWRkciByZXFTdGFydCA9IHJlcS0+cmtpbmQ9PU1BbnkgPyAwIDogcmVxLT5zdGFydDsKKyAgIEFkZHIgcmVxU3RhcnQgPSByZXEtPnJraW5kPT1NRml4ZWQgfHwgcmVxLT5ya2luZD09TUhpbnQgPyByZXEtPnN0YXJ0IDogMDsKICAgIEFkZHIgcmVxRW5kICAgPSByZXFTdGFydCArIHJlcS0+bGVuIC0gMTsKICAgIEFkZHIgcmVxTGVuICAgPSByZXEtPmxlbjsKIApAQCAtMTc2NCw4ICsxODg5LDggQEAKIAogICAgaWYgKDApIHsKICAgICAgIFZHXyhhbV9zaG93X25zZWdtZW50cykoMCwiZ2V0QWR2aXNvcnkiKTsKLSAgICAgIFZHXyhkZWJ1Z0xvZykoMCwiYXNwYWNlbSIsICJnZXRBZHZpc29yeSAweCVsbHggJWxsZFxuIiwgCi0gICAgICAgICAgICAgICAgICAgICAgKFVMb25nKXJlcS0+c3RhcnQsIChVTG9uZylyZXEtPmxlbik7CisgICAgICBWR18oZGVidWdMb2cpKDAsImFzcGFjZW0iLCAiZ2V0QWR2aXNvcnkgMHglbHggJWx1XG4iLAorICAgICAgICAgICAgICAgICAgICByZXEtPnN0YXJ0LCByZXEtPmxlbik7CiAgICB9CiAKICAgIC8qIFJlamVjdCB6ZXJvLWxlbmd0aCByZXF1ZXN0cyAqLwpAQCAtMTc3NSw4ICsxOTAwLDcgQEAKICAgIH0KIAogICAgLyogUmVqZWN0IHdyYXBhcm91bmRzICovCi0gICBpZiAoKHJlcS0+cmtpbmQ9PU1GaXhlZCB8fCByZXEtPnJraW5kPT1NSGludCkKLSAgICAgICAmJiByZXEtPnN0YXJ0ICsgcmVxLT5sZW4gPCByZXEtPnN0YXJ0KSB7CisgICBpZiAocmVxLT5zdGFydCArIHJlcS0+bGVuIDwgcmVxLT5zdGFydCkgewogICAgICAgKm9rID0gRmFsc2U7CiAgICAgICByZXR1cm4gMDsKICAgIH0KQEAgLTE4MzUsMTggKzE5NTksMzkgQEAKICAgIC8qIC0tLS0tLSBJbXBsZW1lbnQgdGhlIERlZmF1bHQgUG9saWN5IC0tLS0tLSAqLwogCiAgICAvKiBEb24ndCB3YXN0ZSB0aW1lIGxvb2tpbmcgZm9yIGEgZml4ZWQgbWF0Y2ggaWYgbm90IHJlcXVlc3RlZCB0by4gKi8KLSAgIGZpeGVkX25vdF9yZXF1aXJlZCA9IHJlcS0+cmtpbmQgPT0gTUFueTsKKyAgIGZpeGVkX25vdF9yZXF1aXJlZCA9IHJlcS0+cmtpbmQgPT0gTUFueSB8fCByZXEtPnJraW5kID09IE1BbGlnbjsKIAogICAgaSA9IGZpbmRfbnNlZ21lbnRfaWR4KHN0YXJ0UG9pbnQpOwogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyMgIGRlZmluZSBVUERBVEVfSU5ERVgoaW5kZXgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIChpbmRleCktLTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGlmICgoaW5kZXgpIDw9IDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIChpbmRleCkgPSBuc2VnbWVudHNfdXNlZCAtIDE7CisjICBkZWZpbmUgQURWSVNFX0FERFJFU1Moc2VnbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgVkdfUEdST1VOREROKChzZWdtZW50KS0+ZW5kICsgMSAtIHJlcUxlbikKKyMgIGRlZmluZSBBRFZJU0VfQUREUkVTU19BTElHTkVEKHNlZ21lbnQpICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgVkdfUk9VTkRETigoc2VnbWVudCktPmVuZCArIDEgLSByZXFMZW4sIHJlcS0+c3RhcnQpCisKKyNlbHNlCisKKyMgIGRlZmluZSBVUERBVEVfSU5ERVgoaW5kZXgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIChpbmRleCkrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGlmICgoaW5kZXgpID49IG5zZWdtZW50c191c2VkKSAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIChpbmRleCkgPSAwOworIyAgZGVmaW5lIEFEVklTRV9BRERSRVNTKHNlZ21lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKHNlZ21lbnQpLT5zdGFydAorIyAgZGVmaW5lIEFEVklTRV9BRERSRVNTX0FMSUdORUQoc2VnbWVudCkgICAgICAgICAgICAgICAgICAgXAorICAgICAgVkdfUk9VTkRVUCgoc2VnbWVudCktPnN0YXJ0LCByZXEtPnN0YXJ0KQorI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKICAgIC8qIEV4YW1pbmUgaG9sZXMgZnJvbSBpbmRleCBpIGJhY2sgcm91bmQgdG8gaS0xLiAgUmVjb3JkIHRoZQogICAgICAgaW5kZXggZmlyc3QgZml4ZWQgaG9sZSBhbmQgdGhlIGZpcnN0IGZsb2F0aW5nIGhvbGUgd2hpY2ggd291bGQKICAgICAgIHNhdGlzZnkgdGhlIHJlcXVlc3QuICovCiAgICBmb3IgKGogPSAwOyBqIDwgbnNlZ21lbnRzX3VzZWQ7IGorKykgewogCiAgICAgICBpZiAobnNlZ21lbnRzW2ldLmtpbmQgIT0gU2tGcmVlKSB7Ci0gICAgICAgICBpKys7Ci0gICAgICAgICBpZiAoaSA+PSBuc2VnbWVudHNfdXNlZCkgaSA9IDA7CisgICAgICAgICBVUERBVEVfSU5ERVgoaSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgIH0KIApAQCAtMTg1OCw2ICsyMDAzLDE1IEBACiAgICAgICBhc3BhY2VtX2Fzc2VydChhc3BhY2VtX21pbkFkZHIgPD0gaG9sZVN0YXJ0KTsKICAgICAgIGFzcGFjZW1fYXNzZXJ0KGhvbGVFbmQgPD0gYXNwYWNlbV9tYXhBZGRyKTsKIAorICAgICAgaWYgKHJlcS0+cmtpbmQgPT0gTUFsaWduKSB7CisgICAgICAgICBob2xlU3RhcnQgPSBWR19ST1VORFVQKGhvbGVTdGFydCwgcmVxLT5zdGFydCk7CisgICAgICAgICBpZiAoaG9sZVN0YXJ0ID49IGhvbGVFbmQpIHsKKyAgICAgICAgICAgIC8qIFRoaXMgaG9sZSBjYW4ndCBiZSB1c2VkLiAqLworICAgICAgICAgICAgVVBEQVRFX0lOREVYKGkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICB9CisgICAgICB9CisKICAgICAgIC8qIFNlZSBpZiBpdCdzIGFueSB1c2UgdG8gdXMuICovCiAgICAgICBob2xlTGVuID0gaG9sZUVuZCAtIGhvbGVTdGFydCArIDE7CiAKQEAgLTE4NzEsOCArMjAyNSw3IEBACiAgICAgICBpZiAoKGZpeGVkX25vdF9yZXF1aXJlZCB8fCBmaXhlZElkeCA+PSAwKSAmJiBmbG9hdElkeCA+PSAwKQogICAgICAgICAgYnJlYWs7CiAKLSAgICAgIGkrKzsKLSAgICAgIGlmIChpID49IG5zZWdtZW50c191c2VkKSBpID0gMDsKKyAgICAgIFVQREFURV9JTkRFWChpKTsKICAgIH0KIAogICAgYXNwYWNlbV9hc3NlcnQoZml4ZWRJZHggPj0gLTEgJiYgZml4ZWRJZHggPCBuc2VnbWVudHNfdXNlZCk7CkBAIC0xOTAzLDE0ICsyMDU2LDIxIEBACiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmxvYXRJZHggPj0gMCkgewogICAgICAgICAgICAgKm9rID0gVHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBuc2VnbWVudHNbZmxvYXRJZHhdLnN0YXJ0OworICAgICAgICAgICAgcmV0dXJuIEFEVklTRV9BRERSRVNTKCZuc2VnbWVudHNbZmxvYXRJZHhdKTsKICAgICAgICAgIH0KICAgICAgICAgICpvayA9IEZhbHNlOwogICAgICAgICAgcmV0dXJuIDA7CiAgICAgICBjYXNlIE1Bbnk6CiAgICAgICAgICBpZiAoZmxvYXRJZHggPj0gMCkgewogICAgICAgICAgICAgKm9rID0gVHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBuc2VnbWVudHNbZmxvYXRJZHhdLnN0YXJ0OworICAgICAgICAgICAgcmV0dXJuIEFEVklTRV9BRERSRVNTKCZuc2VnbWVudHNbZmxvYXRJZHhdKTsKKyAgICAgICAgIH0KKyAgICAgICAgICpvayA9IEZhbHNlOworICAgICAgICAgcmV0dXJuIDA7CisgICAgICBjYXNlIE1BbGlnbjoKKyAgICAgICAgIGlmIChmbG9hdElkeCA+PSAwKSB7CisgICAgICAgICAgICAqb2sgPSBUcnVlOworICAgICAgICAgICAgcmV0dXJuIEFEVklTRV9BRERSRVNTX0FMSUdORUQoJm5zZWdtZW50c1tmbG9hdElkeF0pOwogICAgICAgICAgfQogICAgICAgICAgKm9rID0gRmFsc2U7CiAgICAgICAgICByZXR1cm4gMDsKQEAgLTE5MjIsNiArMjA4MiwxMCBAQAogICAgTUxfKGFtX2JhcmYpKCJnZXRBZHZpc29yeTogdW5rbm93biByZXF1ZXN0IGtpbmQiKTsKICAgICpvayA9IEZhbHNlOwogICAgcmV0dXJuIDA7CisKKyN1bmRlZiBVUERBVEVfSU5ERVgKKyN1bmRlZiBBRFZJU0VfQUREUkVTUworI3VuZGVmIEFEVklTRV9BRERSRVNTX0FMSUdORUQKIH0KIAogLyogQ29udmVuaWVuY2Ugd3JhcHBlciBmb3IgVkdfKGFtX2dldF9hZHZpc29yeSkgZm9yIGNsaWVudCBmbG9hdGluZyBvcgpAQCAtMjE1OSwxMiArMjMyMywzMCBAQAogU3lzUmVzIFZHXyhhbV9tbWFwX2ZpbGVfZml4ZWRfY2xpZW50KQogICAgICAoIEFkZHIgc3RhcnQsIFNpemVUIGxlbmd0aCwgVUludCBwcm90LCBJbnQgZmQsIE9mZjY0VCBvZmZzZXQgKQogewotICAgcmV0dXJuIFZHXyhhbV9tbWFwX25hbWVkX2ZpbGVfZml4ZWRfY2xpZW50KShzdGFydCwgbGVuZ3RoLCBwcm90LCBmZCwgb2Zmc2V0LCBOVUxMKTsKKyAgIFVJbnQgZmxhZ3MgPSBWS0lfTUFQX0ZJWEVEIHwgVktJX01BUF9QUklWQVRFOworICAgcmV0dXJuIFZHXyhhbV9tbWFwX25hbWVkX2ZpbGVfZml4ZWRfY2xpZW50X2ZsYWdzKShzdGFydCwgbGVuZ3RoLCBwcm90LCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQsIG9mZnNldCwgTlVMTCk7Cit9CisKK1N5c1JlcyBWR18oYW1fbW1hcF9maWxlX2ZpeGVkX2NsaWVudF9mbGFncykKKyAgICAgKCBBZGRyIHN0YXJ0LCBTaXplVCBsZW5ndGgsIFVJbnQgcHJvdCwgVUludCBmbGFncywgSW50IGZkLCBPZmY2NFQgb2Zmc2V0ICkKK3sKKyAgIHJldHVybiBWR18oYW1fbW1hcF9uYW1lZF9maWxlX2ZpeGVkX2NsaWVudF9mbGFncykoc3RhcnQsIGxlbmd0aCwgcHJvdCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLCBvZmZzZXQsIE5VTEwpOwogfQogCiBTeXNSZXMgVkdfKGFtX21tYXBfbmFtZWRfZmlsZV9maXhlZF9jbGllbnQpCiAgICAgICggQWRkciBzdGFydCwgU2l6ZVQgbGVuZ3RoLCBVSW50IHByb3QsIEludCBmZCwgT2ZmNjRUIG9mZnNldCwgY29uc3QgSENoYXIgKm5hbWUgKQogeworICAgVUludCBmbGFncyA9IFZLSV9NQVBfRklYRUQgfCBWS0lfTUFQX1BSSVZBVEU7CisgICByZXR1cm4gVkdfKGFtX21tYXBfbmFtZWRfZmlsZV9maXhlZF9jbGllbnRfZmxhZ3MpKHN0YXJ0LCBsZW5ndGgsIHByb3QsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZCwgb2Zmc2V0LCBuYW1lKTsKK30KKworU3lzUmVzIFZHXyhhbV9tbWFwX25hbWVkX2ZpbGVfZml4ZWRfY2xpZW50X2ZsYWdzKQorICAgICAoIEFkZHIgc3RhcnQsIFNpemVUIGxlbmd0aCwgVUludCBwcm90LCBVSW50IGZsYWdzLAorICAgICAgIEludCBmZCwgT2ZmNjRUIG9mZnNldCwgY29uc3QgSENoYXIgKm5hbWUgKQorewogICAgU3lzUmVzICAgICBzcmVzOwogICAgTlNlZ21lbnQgICBzZWc7CiAgICBBZGRyICAgICAgIGFkdmlzZWQ7CkBAIC0yMTkzLDggKzIzNzUsNyBAQAogICAgICAgYW55IHJlc3VsdGluZyBmYWlsdXJlIGltbWVkaWF0ZWx5LiAqLwogICAgLy8gREREOiAjd2FybmluZyBHclAgZml4bWUgTUFQX0ZJWEVEIGNhbiBjbG9iYmVyIG1lbW9yeSEKICAgIHNyZXMgPSBWR18oYW1fZG9fbW1hcF9OT19OT1RJRlkpKCAKLSAgICAgICAgICAgICBzdGFydCwgbGVuZ3RoLCBwcm90LCAKLSAgICAgICAgICAgICBWS0lfTUFQX0ZJWEVEfFZLSV9NQVBfUFJJVkFURSwgCisgICAgICAgICAgICAgc3RhcnQsIGxlbmd0aCwgcHJvdCwgZmxhZ3MsCiAgICAgICAgICAgICAgZmQsIG9mZnNldCAKICAgICAgICAgICApOwogICAgaWYgKHNyX2lzRXJyb3Ioc3JlcykpCkBAIC0zNjA0LDcgKzM3ODUsMjc0IEBACiAKIC8qLS0tLS0tRU5ELXByb2NtYXBzLXBhcnNlci1mb3ItRGFyd2luLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisvKi0tLS0tLUJFR0lOLXByb2NtYXBzLXBhcnNlci1mb3ItU29sYXJpcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCisvKiBOb3RlOiAvcHJvYy9zZWxmL3htYXAgY29udGFpbnMgZXh0ZW5kZWQgaW5mb3JtYXRpb24gYWJvdXQgYWxyZWFkeQorICAgbWF0ZXJpYWxpemVkIG1hcHBpbmdzIHdoZXJlYXMgL3Byb2Mvc2VsZi9ybWFwIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0CisgICBhbGwgbWFwcGluZ3MgaW5jbHVkaW5nIHJlc2VydmVkIGJ1dCB5ZXQtdG8tbWF0ZXJpYWxpemUgbWFwcGluZ3MgKG1tYXAnZWQKKyAgIHdpdGggTUFQX05PUkVTRVJWRSBmbGFnLCBzdWNoIGFzIHRocmVhZCBzdGFja3MpLiBCdXQgL3Byb2Mvc2VsZi9ybWFwIGRvZXMKKyAgIG5vdCBjb250YWluIGV4dGVuZGVkIGluZm9ybWF0aW9uIGZvdW5kIGluIC9wcm9jL3NlbGYveG1hcC4gVGhlcmVmb3JlCisgICBpbmZvcm1hdGlvbiBmcm9tIGJvdGggc291cmNlcyBuZWVkIHRvIGJlIGNvbWJpbmVkLgorICovCisKK3R5cGVkZWYgc3RydWN0Cit7CisgICBBZGRyICAgYWRkcjsKKyAgIFNpemVUICBzaXplOworICAgVUludCAgIHByb3Q7CisgICBVTG9uZyAgZGV2OworICAgVUxvbmcgIGlubzsKKyAgIE9mZjY0VCBmb2Zmc2V0OworICAgSENoYXIgIGZpbGVuYW1lW1ZLSV9QQVRIX01BWF07Cit9IE1hcHBpbmc7CisKK3N0YXRpYyBTaXplVCByZWFkX3Byb2NfZmlsZShjb25zdCBIQ2hhciAqZmlsZW5hbWUsIEhDaGFyICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZVQgYnVmX3NpemUsIGNvbnN0IEhDaGFyICpidWZfc2l6ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemVUIGVudHJ5X3NpemUpCit7CisgICBTeXNSZXMgcmVzID0gTUxfKGFtX29wZW4pKGZpbGVuYW1lLCBWS0lfT19SRE9OTFksIDApOworICAgaWYgKHNyX2lzRXJyb3IocmVzKSkgeworICAgICAgSENoYXIgbWVzc2FnZVsxMDBdOworICAgICAgTUxfKGFtX3NwcmludGYpKG1lc3NhZ2UsICJDYW5ub3Qgb3BlbiAlcy4iLCBmaWxlbmFtZSk7CisgICAgICBNTF8oYW1fYmFyZikobWVzc2FnZSk7CisgICB9CisgICBJbnQgZmQgPSBzcl9SZXMocmVzKTsKKworICAgSW50IHIgPSBNTF8oYW1fcmVhZCkoZmQsIGJ1ZiwgYnVmX3NpemUpOworICAgTUxfKGFtX2Nsb3NlKShmZCk7CisgICBpZiAociA8IDApIHsKKyAgICAgIEhDaGFyIG1lc3NhZ2VbMTAwXTsKKyAgICAgIE1MXyhhbV9zcHJpbnRmKShtZXNzYWdlLCAiSS9PIGVycm9yIG9uICVzLiIsIGZpbGVuYW1lKTsKKyAgICAgIE1MXyhhbV9iYXJmKShtZXNzYWdlKTsKKyAgIH0KKworICAgaWYgKHIgPj0gYnVmX3NpemUpCisgICAgICBNTF8oYW1fYmFyZl90b29sb3cpKGJ1Zl9zaXplX25hbWUpOworCisgICBpZiAociAlIGVudHJ5X3NpemUgIT0gMCkgeworICAgICAgSENoYXIgbWVzc2FnZVsxMDBdOworICAgICAgTUxfKGFtX3NwcmludGYpKG1lc3NhZ2UsICJCb2d1cyB2YWx1ZXMgcmVhZCBmcm9tICVzLiIsIGZpbGVuYW1lKTsKKyAgICAgIE1MXyhhbV9iYXJmKShtZXNzYWdlKTsKKyAgIH0KKworICAgcmV0dXJuIHIgLyBlbnRyeV9zaXplOworfQorCitzdGF0aWMgTWFwcGluZyAqbmV4dF94bWFwKGNvbnN0IEhDaGFyICpidWZmZXIsIFNpemVUIGVudHJpZXMsIFNpemVUICppZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcHBpbmcgKm1hcHBpbmcpCit7CisgICBhc3BhY2VtX2Fzc2VydChpZHgpOworICAgYXNwYWNlbV9hc3NlcnQobWFwcGluZyk7CisKKyAgIGlmICgqaWR4ID49IGVudHJpZXMpCisgICAgICByZXR1cm4gTlVMTDsgLyogTm8gbW9yZSBlbnRyaWVzICovCisKKyAgIGNvbnN0IHZraV9wcnhtYXBfdCAqbWFwID0gKGNvbnN0IHZraV9wcnhtYXBfdCAqKWJ1ZmZlciArICppZHg7CisKKyAgIG1hcHBpbmctPmFkZHIgPSBtYXAtPnByX3ZhZGRyOworICAgbWFwcGluZy0+c2l6ZSA9IG1hcC0+cHJfc2l6ZTsKKworICAgbWFwcGluZy0+cHJvdCA9IDA7CisgICBpZiAobWFwLT5wcl9tZmxhZ3MgJiBWS0lfTUFfUkVBRCkKKyAgICAgIG1hcHBpbmctPnByb3QgfD0gVktJX1BST1RfUkVBRDsKKyAgIGlmIChtYXAtPnByX21mbGFncyAmIFZLSV9NQV9XUklURSkKKyAgICAgIG1hcHBpbmctPnByb3QgfD0gVktJX1BST1RfV1JJVEU7CisgICBpZiAobWFwLT5wcl9tZmxhZ3MgJiBWS0lfTUFfRVhFQykKKyAgICAgIG1hcHBpbmctPnByb3QgfD0gVktJX1BST1RfRVhFQzsKKworICAgaWYgKG1hcC0+cHJfZGV2ICE9IFZLSV9QUk5PREVWKSB7CisgICAgICBtYXBwaW5nLT5kZXYgPSBtYXAtPnByX2RldjsKKyAgICAgIG1hcHBpbmctPmlubyA9IG1hcC0+cHJfaW5vOworICAgICAgbWFwcGluZy0+Zm9mZnNldCA9IG1hcC0+cHJfb2Zmc2V0OworICAgfQorICAgZWxzZSB7CisgICAgICBtYXBwaW5nLT5kZXYgPSAwOworICAgICAgbWFwcGluZy0+aW5vID0gMDsKKyAgICAgIG1hcHBpbmctPmZvZmZzZXQgPSAwOworICAgfQorCisgICAvKiBUcnkgdG8gZ2V0IHRoZSBmaWxlbmFtZS4gKi8KKyAgIG1hcHBpbmctPmZpbGVuYW1lWzBdID0gJ1wwJzsKKyAgIGlmIChtYXAtPnByX21hcG5hbWVbMF0gIT0gJ1wwJykgeworICAgICAgTUxfKGFtX3NwcmludGYpKG1hcHBpbmctPmZpbGVuYW1lLCAiL3Byb2Mvc2VsZi9wYXRoLyVzIiwKKyAgICAgICAgICAgICAgICAgICAgICBtYXAtPnByX21hcG5hbWUpOworICAgICAgSW50IHIgPSBNTF8oYW1fcmVhZGxpbmspKG1hcHBpbmctPmZpbGVuYW1lLCBtYXBwaW5nLT5maWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobWFwcGluZy0+ZmlsZW5hbWUpIC0gMSk7CisgICAgICBpZiAociA9PSAtMSkgeworICAgICAgICAgLyogSWYgVmFsZ3JpbmQgaXMgZXhlY3V0ZWQgaW4gYSBub24tZ2xvYmFsIHpvbmUgYW5kIHRoZSBsaW5rIGluCisgICAgICAgICAgICAvcHJvYy9zZWxmL3BhdGgvIHJlcHJlc2VudHMgYSBmaWxlIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggbG9mcworICAgICAgICAgICAgZnJvbSBhIGdsb2JhbCB6b25lIHRoZW4gdGhlIGtlcm5lbCBtYXkgbm90IGJlIGFibGUgdG8gcmVzb2x2ZSB0aGUKKyAgICAgICAgICAgIGxpbmsuCisKKyAgICAgICAgICAgIEluIHN1Y2ggYSBjYXNlLCByZXR1cm4gYSBjb3JyZXNwb25kaW5nIC9wcm9jL3NlbGYvb2JqZWN0LyBmaWxlIHRvCisgICAgICAgICAgICBhbGxvdyBWYWxncmluZCB0byByZWFkIHRoZSBmaWxlIGlmIGl0IGlzIG5lY2Vzc2FyeS4KKworICAgICAgICAgICAgVGhpcyBjYW4gY3JlYXRlIHNvbWUgZGlzY3JlcGFuY3kgZm9yIHRoZSBzYW5pdHkgY2hlY2suIEZvcgorICAgICAgICAgICAgaW5zdGFuY2UsIGlmIGEgY2xpZW50IHByb2dyYW0gbW1hcHMgc29tZSBmaWxlIHRoZW4gdGhlIGFkZHJlc3MKKyAgICAgICAgICAgIHNwYWNlIG1hbmFnZXIgd2lsbCBoYXZlIGEgY29ycmVjdCB6b25lLWxvY2FsIG5hbWUgb2YgdGhhdCBmaWxlLAorICAgICAgICAgICAgYnV0IHRoZSBzYW5pdHkgY2hlY2sgd2lsbCByZWNlaXZlIGEgZGlmZmVyZW50IGZpbGUgbmFtZSBmcm9tIHRoaXMKKyAgICAgICAgICAgIGNvZGUuIFRoaXMgY3VycmVudGx5IGRvZXMgbm90IHJlcHJlc2VudCBhIHByb2JsZW0gYmVjYXVzZSB0aGUKKyAgICAgICAgICAgIHNhbml0eSBjaGVjayBpZ25vcmVzIHRoZSBmaWxlIG5hbWVzIChpdCB1c2VzIGRldmljZSBhbmQgaW5vZGUKKyAgICAgICAgICAgIG51bWJlcnMgZm9yIHRoZSBjb21wYXJpc29uKS4KKyAgICAgICAgICAqLworICAgICAgICAgTUxfKGFtX3NwcmludGYpKG1hcHBpbmctPmZpbGVuYW1lLCAiL3Byb2Mvc2VsZi9vYmplY3QvJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC0+cHJfbWFwbmFtZSk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgIGFzcGFjZW1fYXNzZXJ0KHIgPj0gMCk7CisgICAgICAgICBtYXBwaW5nLT5maWxlbmFtZVtyXSA9ICdcMCc7CisgICAgICB9CisgICB9CisKKyAgICppZHggKz0gMTsKKyAgIHJldHVybiBtYXBwaW5nOworfQorCitzdGF0aWMgTWFwcGluZyAqbmV4dF9ybWFwKGNvbnN0IEhDaGFyICpidWZmZXIsIFNpemVUIGVudHJpZXMsIFNpemVUICppZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcHBpbmcgKm1hcHBpbmcpCit7CisgICBhc3BhY2VtX2Fzc2VydChpZHgpOworICAgYXNwYWNlbV9hc3NlcnQobWFwcGluZyk7CisKKyAgIGlmICgqaWR4ID49IGVudHJpZXMpCisgICAgICByZXR1cm4gTlVMTDsgLyogTm8gbW9yZSBlbnRyaWVzICovCisKKyAgIGNvbnN0IHZraV9wcm1hcF90ICptYXAgPSAoY29uc3QgdmtpX3BybWFwX3QgKilidWZmZXIgKyAqaWR4OworCisgICBtYXBwaW5nLT5hZGRyID0gbWFwLT5wcl92YWRkcjsKKyAgIG1hcHBpbmctPnNpemUgPSBtYXAtPnByX3NpemU7CisKKyAgIG1hcHBpbmctPnByb3QgPSAwOworICAgaWYgKG1hcC0+cHJfbWZsYWdzICYgVktJX01BX1JFQUQpCisgICAgICBtYXBwaW5nLT5wcm90IHw9IFZLSV9QUk9UX1JFQUQ7CisgICBpZiAobWFwLT5wcl9tZmxhZ3MgJiBWS0lfTUFfV1JJVEUpCisgICAgICBtYXBwaW5nLT5wcm90IHw9IFZLSV9QUk9UX1dSSVRFOworICAgaWYgKG1hcC0+cHJfbWZsYWdzICYgVktJX01BX0VYRUMpCisgICAgICBtYXBwaW5nLT5wcm90IHw9IFZLSV9QUk9UX0VYRUM7CisKKyAgIG1hcHBpbmctPmRldiA9IDA7CisgICBtYXBwaW5nLT5pbm8gPSAwOworICAgbWFwcGluZy0+Zm9mZnNldCA9IDA7CisgICBtYXBwaW5nLT5maWxlbmFtZVswXSA9ICdcMCc7CisKKyAgICppZHggKz0gMTsKKyAgIHJldHVybiBtYXBwaW5nOworfQorCisvKiBVc2VkIGZvciB0d28gcHVycG9zZXM6CisgICAxLiBFc3RhYmxpc2ggaW5pdGlhbCBtYXBwaW5ncyB1cG9uIHRoZSBwcm9jZXNzIHN0YXJ0dXAKKyAgIDIuIENoZWNrIG1hcHBpbmdzIGR1cmluZyBhc3BhY2VtZ3Igc2FuaXR5IGNoZWNrCisgKi8KK3N0YXRpYyB2b2lkIHBhcnNlX3Byb2NzZWxmbWFwcyAoCisgICAgICB2b2lkICgqcmVjb3JkX21hcHBpbmcpKCBBZGRyIGFkZHIsIFNpemVUIGxlbiwgVUludCBwcm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvbmcgZGV2LCBVTG9uZyBpbm8sIE9mZjY0VCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIQ2hhciAqZmlsZW5hbWUgKSwKKyAgICAgIHZvaWQgKCpyZWNvcmRfZ2FwKSggQWRkciBhZGRyLCBTaXplVCBsZW4gKQorICAgKQoreworICAgQWRkciBzdGFydCA9IEFkZHJfTUlOOworICAgQWRkciBnYXBfc3RhcnQgPSBBZGRyX01JTjsKKworI2RlZmluZSBNX1hNQVBfQlVGIChWR19OX1NFR01FTlRTICogc2l6ZW9mKHZraV9wcnhtYXBfdCkpCisgICAvKiBTdGF0aWMgdG8ga2VlcCBpdCBvdXQgb2Ygc3RhY2sgZnJhbWUuLi4gKi8KKyAgIHN0YXRpYyBIQ2hhciB4bWFwX2J1ZltNX1hNQVBfQlVGXTsKKyAgIGNvbnN0IE1hcHBpbmcgKnhtYXAgPSBOVUxMOworICAgU2l6ZVQgeG1hcF9pbmRleCA9IDA7IC8qIEN1cnJlbnQgZW50cnkgKi8KKyAgIFNpemVUIHhtYXBfZW50cmllczsKKyAgIE1hcHBpbmcgeG1hcF9tYXBwaW5nOworICAgQm9vbCBhZHZhbmNlX3htYXA7CisKKyNkZWZpbmUgTV9STUFQX0JVRiAoVkdfTl9TRUdNRU5UUyAqIHNpemVvZih2a2lfcHJtYXBfdCkpCisgICBzdGF0aWMgSENoYXIgcm1hcF9idWZbTV9STUFQX0JVRl07CisgICBjb25zdCBNYXBwaW5nICpybWFwID0gTlVMTDsKKyAgIFNpemVUIHJtYXBfaW5kZXggPSAwOyAvKiBDdXJyZW50IGVudHJ5ICovCisgICBTaXplVCBybWFwX2VudHJpZXM7CisgICBNYXBwaW5nIHJtYXBfbWFwcGluZzsKKyAgIEJvb2wgYWR2YW5jZV9ybWFwOworCisgICAvKiBSZWFkIGZ1bGx5IC9wcm9jL3NlbGYveG1hcCBhbmQgL3Byb2Mvc2VsZi9ybWFwLiAqLworICAgeG1hcF9lbnRyaWVzID0gcmVhZF9wcm9jX2ZpbGUoIi9wcm9jL3NlbGYveG1hcCIsIHhtYXBfYnVmLCBNX1hNQVBfQlVGLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1fWE1BUF9CVUYiLCBzaXplb2YodmtpX3ByeG1hcF90KSk7CisKKyAgIHJtYXBfZW50cmllcyA9IHJlYWRfcHJvY19maWxlKCIvcHJvYy9zZWxmL3JtYXAiLCBybWFwX2J1ZiwgTV9STUFQX0JVRiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNX1JNQVBfQlVGIiwgc2l6ZW9mKHZraV9wcm1hcF90KSk7CisKKyAgIC8qIEdldCB0aGUgZmlyc3QgeG1hcCBhbmQgcm1hcC4gKi8KKyAgIGFkdmFuY2VfeG1hcCA9IFRydWU7CisgICBhZHZhbmNlX3JtYXAgPSBUcnVlOworCisgICB3aGlsZSAoMSkgeworICAgICAgLyogR2V0IG5leHQgeG1hcCBvciBybWFwIGlmIG5lY2Vzc2FyeS4gKi8KKyAgICAgIGlmIChhZHZhbmNlX3htYXApIHsKKyAgICAgICAgIHhtYXAgPSBuZXh0X3htYXAoeG1hcF9idWYsIHhtYXBfZW50cmllcywgJnhtYXBfaW5kZXgsICZ4bWFwX21hcHBpbmcpOworICAgICAgICAgYWR2YW5jZV94bWFwID0gRmFsc2U7CisgICAgICB9CisgICAgICBpZiAoYWR2YW5jZV9ybWFwKSB7CisgICAgICAgICBybWFwID0gbmV4dF9ybWFwKHJtYXBfYnVmLCBybWFwX2VudHJpZXMsICZybWFwX2luZGV4LCAmcm1hcF9tYXBwaW5nKTsKKyAgICAgICAgIGFkdmFuY2Vfcm1hcCA9IEZhbHNlOworICAgICAgfQorCisgICAgICAvKiBDaGVjayBpZiB0aGUgZW5kIGhhcyBiZWVuIHJlYWNoZWQuICovCisgICAgICBpZiAocm1hcCA9PSBOVUxMKQorICAgICAgICAgYnJlYWs7CisKKyAgICAgIC8qIEludmFyaWFudHMgKi8KKyAgICAgIGlmICh4bWFwICE9IE5VTEwpIHsKKyAgICAgICAgIGFzcGFjZW1fYXNzZXJ0KHN0YXJ0IDw9IHhtYXAtPmFkZHIpOworICAgICAgICAgYXNwYWNlbV9hc3NlcnQocm1hcC0+YWRkciA8PSB4bWFwLT5hZGRyKTsKKyAgICAgIH0KKworICAgICAgaWYgKHhtYXAgIT0gTlVMTCAmJiBzdGFydCA9PSB4bWFwLT5hZGRyKSB7CisgICAgICAgICAvKiB4bWFwIG1hcHBpbmcgcmVhY2hlZC4gKi8KKyAgICAgICAgIGFzcGFjZW1fYXNzZXJ0KHhtYXAtPmFkZHIgPj0gcm1hcC0+YWRkciAmJgorICAgICAgICAgICAgICAgICAgICAgICAgeG1hcC0+YWRkciArIHhtYXAtPnNpemUgPD0gcm1hcC0+YWRkciArIHJtYXAtPnNpemUpOworICAgICAgICAgYXNwYWNlbV9hc3NlcnQoeG1hcC0+cHJvdCA9PSBybWFwLT5wcm90KTsKKworICAgICAgICAgaWYgKHJlY29yZF9tYXBwaW5nICE9IE5VTEwpCisgICAgICAgICAgICAoKnJlY29yZF9tYXBwaW5nKSh4bWFwLT5hZGRyLCB4bWFwLT5zaXplLCB4bWFwLT5wcm90LCB4bWFwLT5kZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWFwLT5pbm8sIHhtYXAtPmZvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeG1hcC0+ZmlsZW5hbWVbMF0gIT0gJ1wwJykgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtYXAtPmZpbGVuYW1lIDogTlVMTCk7CisKKyAgICAgICAgIHN0YXJ0ID0geG1hcC0+YWRkciArIHhtYXAtPnNpemU7CisgICAgICAgICBhZHZhbmNlX3htYXAgPSBUcnVlOworICAgICAgfQorICAgICAgZWxzZSBpZiAoc3RhcnQgPj0gcm1hcC0+YWRkcikgeworICAgICAgICAgLyogUmVzZXJ2ZWQtb25seSBwYXJ0LiAqLworICAgICAgICAgLyogRmlyc3QgY2FsY3VsYXRlIHNpemUgdW50aWwgdGhlIGVuZCBvZiB0aGlzIHJlc2VydmVkIG1hcHBpbmcuLi4gKi8KKyAgICAgICAgIFNpemVUIHNpemUgPSBybWFwLT5hZGRyICsgcm1hcC0+c2l6ZSAtIHN0YXJ0OworICAgICAgICAgLyogLi4uIGJ1dCBzaHJpbmsgaXQgaWYgc29tZSB4bWFwIGlzIGluIGEgd2F5LiAqLworICAgICAgICAgaWYgKHhtYXAgIT0gTlVMTCAmJiBzaXplID4geG1hcC0+YWRkciAtIHN0YXJ0KQorICAgICAgICAgICAgc2l6ZSA9IHhtYXAtPmFkZHIgLSBzdGFydDsKKworICAgICAgICAgaWYgKHJlY29yZF9tYXBwaW5nICE9IE5VTEwpCisgICAgICAgICAgICAoKnJlY29yZF9tYXBwaW5nKShzdGFydCwgc2l6ZSwgcm1hcC0+cHJvdCwgMCwgMCwgMCwgTlVMTCk7CisgICAgICAgICBzdGFydCArPSBzaXplOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgICAvKiBHYXAuICovCisgICAgICAgICBpZiAocmVjb3JkX2dhcCAhPSBOVUxMICYmIGdhcF9zdGFydCA8IHN0YXJ0KQorICAgICAgICAgICAgKCpyZWNvcmRfZ2FwKShnYXBfc3RhcnQsIHN0YXJ0IC0gZ2FwX3N0YXJ0KTsKKyAgICAgICAgIHN0YXJ0ID0gcm1hcC0+YWRkcjsKKyAgICAgIH0KKworICAgICAgaWYgKHJtYXAtPmFkZHIgKyBybWFwLT5zaXplIDw9IHN0YXJ0KQorICAgICAgICAgYWR2YW5jZV9ybWFwID0gVHJ1ZTsKKworICAgICAgZ2FwX3N0YXJ0ID0gc3RhcnQ7CisgICB9CisKKyAgIGlmIChyZWNvcmRfZ2FwICE9IE5VTEwgJiYgZ2FwX3N0YXJ0IDwgQWRkcl9NQVgpCisgICAgICAoKnJlY29yZF9nYXApKGdhcF9zdGFydCwgQWRkcl9NQVggLSBnYXBfc3RhcnQgKyAxKTsKK30KKworI2VuZGlmIC8vIGRlZmluZWQoVkdPX3NvbGFyaXMpCisKKy8qLS0tLS0tRU5ELXByb2NtYXBzLXBhcnNlci1mb3ItU29sYXJpcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9hc3BhY2VtZ3IvYXNwYWNlbWdyLXNlZ25hbWVzLmMgYi9jb3JlZ3JpbmQvbV9hc3BhY2VtZ3IvYXNwYWNlbWdyLXNlZ25hbWVzLmMKaW5kZXggN2ZjYWNmNC4uNzYxNjA4ZCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fYXNwYWNlbWdyL2FzcGFjZW1nci1zZWduYW1lcy5jCisrKyBiL2NvcmVncmluZC9tX2FzcGFjZW1nci9hc3BhY2VtZ3Itc2VnbmFtZXMuYwpAQCAtOTIsNyArOTIsNyBAQAogCiAgICBGcmVlIHNsb3RzIGFyZSBjaGFpbmVkIHRvZ2V0aGVyIGluIGEgc2luZ2x5IGxpbmtlZCBsaXN0LiBBbiBpbmRleCBvZgogICAgemVybyBpbmRpY2F0ZXMgdGhlIGVuZCBvZiB0aGUgY2hhaW4uIE5vdGUgdGhhdCB6ZXJvIGNhbm5vdCBjb25mbGljdAotICAgd2l0aCBhbiBpbmRleCBpbnRvIHRoZSBzdHJpbmcgdGFibGUgYXMgdGhlIG1pbnVtdW0gaW5kZXggaXMgYXQgbGVhc3QKKyAgIHdpdGggYW4gaW5kZXggaW50byB0aGUgc3RyaW5nIHRhYmxlIGFzIHRoZSBtaW5pbXVtIGluZGV4IGlzIGF0IGxlYXN0CiAgICBmb3VyIChzZWUgYWJvdmUpLgogCiAgICBUaGUgdHlwaWNhbCB3YXkgdG8gdHJhdmVyc2UgdGhlIHNlZ21lbnQgbmFtZXMgaXM6CkBAIC0xMjUsMTAgKzEyNSwxMiBAQAogICAgbWF4X3JlZmNvdW50ICA9IDB4N2ZmZiwgICAgICAvLyAyIGJ5dGVzIC0gRi1iaXQKICAgIG1heF9zbG90c2l6ZSAgPSAweGZmZmYsICAgICAgLy8gMiBieXRlcwogICAgbWF4X3Nsb3RpbmRleCA9IDB4N2ZmZmZmZmYsICAvLyA0IGJ5dGVzIC0gRi1iaXQKLSAgIGZiaXRfbWFzayA9IDB4ODAsCisgICBmYml0X21hc2tfdmFsdWUgPSAweDgwLAogICAgZW5kX29mX2NoYWluID0gMAogfTsKIAorc3RhdGljIGNvbnN0IFVJbnQgZmJpdF9tYXNrID0gZmJpdF9tYXNrX3ZhbHVlOworCiAvKiBUaGUgb2xkIHNlZ25hbWUgaW1wbGVtZW50YXRpb24gYWxsb3dlZCBmb3IgMTAwMCBuYW1lcyBvbiBBbmRyb2lkIGFuZAogICAgNjAwMCBuYW1lcyBvbiBvdGhlciBwbGF0Zm9ybXMuIEVhY2ggbmFtZSB3YXMgYWxsb3dlZCB0byBiZSAxMDAwIGNoYXJhY3RlcnMKICAgIGxvbmcuIFRoYXQgd2FzIHZlcnkgd2FzdGVmdWwuICovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9hc3BhY2VtZ3IvcHJpdl9hc3BhY2VtZ3IuaCBiL2NvcmVncmluZC9tX2FzcGFjZW1nci9wcml2X2FzcGFjZW1nci5oCmluZGV4IDEzZDNkZmYuLmI1ZmQ5NTcgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2FzcGFjZW1nci9wcml2X2FzcGFjZW1nci5oCisrKyBiL2NvcmVncmluZC9tX2FzcGFjZW1nci9wcml2X2FzcGFjZW1nci5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9jYWNoZS5jIGIvY29yZWdyaW5kL21fY2FjaGUuYwppbmRleCA4MTFlYjkxLi42M2E1MTVmIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9jYWNoZS5jCisrKyBiL2NvcmVncmluZC9tX2NhY2hlLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9jbGllbnRzdGF0ZS5jIGIvY29yZWdyaW5kL21fY2xpZW50c3RhdGUuYwppbmRleCBlMWE2MDQwLi43Y2JjN2M3IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9jbGllbnRzdGF0ZS5jCisrKyBiL2NvcmVncmluZC9tX2NsaWVudHN0YXRlLmMKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTEsOSArNTEsMTMgQEAKIC8qIEluaXRpYWwgaGlnaGVzdCBhZGRyZXNzIG9mIHRoZSBzdGFjayBzZWdtZW50IG9mIHRoZSBtYWluIHRocmVhZC4gKi8KIEFkZHIgIFZHXyhjbHN0a19lbmQpICAgPSAwOwogVVdvcmQgVkdfKGNsc3RrX2lkKSAgICA9IDA7CisvKiBNYXhpbXVtIHNpemUgb2YgdGhlIG1haW4gdGhyZWFkJ3MgY2xpZW50IHN0YWNrLiAqLworU2l6ZVQgVkdfKGNsc3RrX21heF9zaXplKSA9IDA7CiAKLS8qIGxpbnV4IG9ubHk6IHdoZXJlIGlzIHRoZSBjbGllbnQgYXV4diA/ICovCi0vKiBUaGlzIGlzIHNldCB1cCBhcyBwYXJ0IG9mIHNldHVwX2NsaWVudF9zdGFjayBpbiBpbml0aW1nLWxpbnV4LmMuICovCisvKiBTb2xhcmlzIGFuZCBMaW51eCBvbmx5LCBzcGVjaWZpZXMgd2hlcmUgdGhlIGNsaWVudCBhdXh2IGlzLgorCisgICBUaGlzIGlzIHNldCB1cCBhcyBwYXJ0IG9mIHNldHVwX2NsaWVudF9zdGFjaygpIGluCisgICBpbml0aW1nLXtsaW51eCxzb2xhcmlzfS5jLiAqLwogVVdvcmQqIFZHXyhjbGllbnRfYXV4dikgPSBOVUxMOwogCiBBZGRyICBWR18oYnJrX2Jhc2UpICAgID0gMDsgICAgICAgLyogc3RhcnQgb2YgYnJrICovCkBAIC02OCw2ICs3MiwxMSBAQAogLyogQSBmZCB3aGljaCByZWZlcnMgdG8gdGhlIGZha2UgL3Byb2MvPHBpZD4vYXV4diBpbiAvdG1wLiAqLwogSW50IFZHXyhjbF9hdXh2X2ZkKSA9IC0xOwogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIEEgZmQgd2hpY2ggcmVmZXJzIHRvIHRoZSBmYWtlIC9wcm9jLzxwaWQ+L3BzaW5mbyBpbiAvdG1wLiAqLworSW50IFZHXyhjbF9wc2luZm9fZmQpID0gLTE7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKwogLy8gQ29tbWFuZCBsaW5lIHBpZWNlcywgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gZXh0cmFjdGVkIGZyb20gYXJndiBpbgogLy8gbV9tYWluLm1haW4oKS4gIFRoZSBwYXlsb2FkIHZlY3RvcnMgYXJlIGFsbG9jYXRlZCBpbiBWR19BUl9DT1JFCiAvLyAodGhlIGRlZmF1bHQgYXJlbmEpLiAgVGhleSBhcmUgbmV2ZXIgZnJlZWQuCkBAIC0xMTMsNiArMTIyLDEyIEBACiAgICBpbiBucHRsL2FsbG9jYXRlc3RhY2suYyAqLwogU2l6ZVQqIFZHXyhjbGllbnRfX3N0YWNrX2NhY2hlX2FjdHNpemVfX2FkZHIpID0gMDsKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBBZGRyZXNzIG9mIHZhcmlhYmxlIHZnX3Zmb3JrX2ZpbGRlcyBpbiB2Z3ByZWxvYWRfY29yZS5zby4wCisgICAodmdfcHJlbG9hZGVkLmMpLiAqLworSW50KiBWR18odmZvcmtfZmlsZGVzX2FkZHIpID0gMDsKKyNlbmRpZgorCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9jb21tYW5kbGluZS5jIGIvY29yZWdyaW5kL21fY29tbWFuZGxpbmUuYwppbmRleCA3YWM0OTY5Li42N2I5Mjc3IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9jb21tYW5kbGluZS5jCisrKyBiL2NvcmVncmluZC9tX2NvbW1hbmRsaW5lLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fY29tcGlsZXIuYyBiL2NvcmVncmluZC9tX2NvbXBpbGVyLmMKaW5kZXggZjM5YTkwZi4uYTZmNWEzMiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fY29tcGlsZXIuYworKysgYi9jb3JlZ3JpbmQvbV9jb21waWxlci5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxNC0yMDE0IEZsb3JpYW4gS3JvaG0KKyAgIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEZsb3JpYW4gS3JvaG0KICAgICAgIGZsb3JpYW5AZWljaC1rcm9obS5kZQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9jb3JlZHVtcC9jb3JlZHVtcC1lbGYuYyBiL2NvcmVncmluZC9tX2NvcmVkdW1wL2NvcmVkdW1wLWVsZi5jCmluZGV4IDIyMWJkN2QuLmE5MjU4YTEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2NvcmVkdW1wL2NvcmVkdW1wLWVsZi5jCisrKyBiL2NvcmVncmluZC9tX2NvcmVkdW1wL2NvcmVkdW1wLWVsZi5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE4Miw4ICsxODIsNiBAQAogc3RhdGljIHZvaWQgZmlsbF9wcnBzaW5mbyhjb25zdCBUaHJlYWRTdGF0ZSAqdHN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX2VsZl9wcnBzaW5mbyAqcHJwc2luZm8pCiB7Ci0gICBjb25zdCBIQ2hhciAqbmFtZTsKLQogICAgVkdfKG1lbXNldCkocHJwc2luZm8sIDAsIHNpemVvZigqcHJwc2luZm8pKTsKIAogICAgc3dpdGNoKHRzdC0+c3RhdHVzKSB7CkBAIC0yMDksMTYgKzIwNyw3IEBACiAgICBwcnBzaW5mby0+cHJfdWlkID0gMDsKICAgIHBycHNpbmZvLT5wcl9naWQgPSAwOwogICAgCi0gICBpZiAoVkdfKHJlc29sdmVfZmlsZW5hbWUpKFZHXyhjbF9leGVjX2ZkKSwgJm5hbWUpKSB7Ci0gICAgICBjb25zdCBIQ2hhciAqbiA9IG5hbWUgKyBWR18oc3RybGVuKShuYW1lKSAtIDE7Ci0KLSAgICAgIHdoaWxlIChuID4gbmFtZSAmJiAqbiAhPSAnLycpCi0JIG4tLTsKLSAgICAgIGlmIChuICE9IG5hbWUpCi0JIG4rKzsKLQotICAgICAgVkdfKHN0cm5jcHkpKHBycHNpbmZvLT5wcl9mbmFtZSwgbiwgc2l6ZW9mKHBycHNpbmZvLT5wcl9mbmFtZSkpOwotICAgfQorICAgVkdfKGNsaWVudF9mbmFtZSkocHJwc2luZm8tPnByX2ZuYW1lLCBzaXplb2YocHJwc2luZm8tPnByX2ZuYW1lKSwgRmFsc2UpOwogfQogCiBzdGF0aWMgdm9pZCBmaWxsX3Byc3RhdHVzKGNvbnN0IFRocmVhZFN0YXRlICp0c3QsIApkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fY29yZWR1bXAvY29yZWR1bXAtc29sYXJpcy5jIGIvY29yZWdyaW5kL21fY29yZWR1bXAvY29yZWR1bXAtc29sYXJpcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhMTJiNzgKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlZ3JpbmQvbV9jb3JlZHVtcC9jb3JlZHVtcC1zb2xhcmlzLmMKQEAgLTAsMCArMSwxMTEwIEBACisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gRHVtcGluZyBjb3JlIG9uIFNvbGFyaXMuICAgICAgICAgICAgICAgICAgY29yZWR1bXAtc29sYXJpcy5jIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAKKy8qCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KKyAgIGZyYW1ld29yay4KKworICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgSXZvIFJhaXNyCisgICAgICBpdm9zaEBpdm9zaC5uZXQKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKworI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljcy5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3ZraS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2FzcGFjZWhsLmgiCisjaW5jbHVkZSAicHViX2NvcmVfYXNwYWNlbWdyLmgiCisjaW5jbHVkZSAicHViX2NvcmVfY29yZWR1bXAuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9kZWJ1Z2xvZy5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNhc3NlcnQuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9saWJjYmFzZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNmaWxlLmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY3ByaW50LmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY3Byb2MuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9tYWNoaW5lLmgiCisjaW5jbHVkZSAicHViX2NvcmVfbWFsbG9jZnJlZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX29wdGlvbnMuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9zeXNjYWxsLmgiCisjaW5jbHVkZSAicHViX2NvcmVfdGhyZWFkc3RhdGUuaCIKKyNpbmNsdWRlICJwdWJfY29yZV94YXJyYXkuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9jbGllbnRzdGF0ZS5oIgorCit0eXBlZGVmIHN0cnVjdCBfX2F0dHJpYnV0ZV9fICgoX19wYWNrZWRfXykpIG5vdGUgeworICAgc3RydWN0IG5vdGUgKm5leHQ7CisgICBWS0lfRVNaKE5oZHIpIG5oZHI7CisgICBIQ2hhciBuYW1lWzhdOworICAgSENoYXIgZGF0YVswXTsKK30gbm90ZV90OworCitzdGF0aWMgdm9pZCBhZGRfbm90ZShub3RlX3QgKipsaXN0LCBVSW50IHR5cGUsIGNvbnN0IHZvaWQgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICBVSW50IGRhdGFzeik7CisKKy8qIElmIHRydWUsIHRoZW4gdGhpcyBTZWdtZW50IG1heSBiZSBtZW50aW9uZWQgaW4gdGhlIGNvcmUgKi8KK3N0YXRpYyBCb29sIG1heV9kdW1wKGNvbnN0IE5TZWdtZW50ICpzZWcpCit7CisgICBpZiAoKHNlZy0+a2luZCA9PSBTa0Fub25DKSB8fAorICAgICAgIChzZWctPmtpbmQgPT0gU2tTaG1DKSB8fAorICAgICAgICgoc2VnLT5raW5kID09IFNrRmlsZUMpICYmCisgICAgICAgICFWS0lfU19JU0NIUihzZWctPm1vZGUpICYmICFWS0lfU19JU0JMSyhzZWctPm1vZGUpKSkKKyAgICAgIHJldHVybiBUcnVlOworCisgICByZXR1cm4gRmFsc2U7Cit9CisKKy8qIElmIHRydWUsIHRoZW4gdGhpcyBTZWdtZW50J3MgY29udGVudHMgd2lsbCBiZSBpbiB0aGUgY29yZSAqLworc3RhdGljIEJvb2wgc2hvdWxkX2R1bXAoY29uc3QgTlNlZ21lbnQgKnNlZykKK3sKKyAgIHJldHVybiBtYXlfZHVtcChzZWcpOworfQorCisjaWYgZGVmaW5lZChTT0xBUklTX1BSWFJFR1NFVF9UKQorc3RhdGljIEJvb2wgc2hvdWxkX2R1bXBfeHJlZ3MoY29uc3QgVGhyZWFkU3RhdGUgKnRzdCkKK3sKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIHJldHVybiBGYWxzZTsKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBjb25zdCBUaHJlYWRBcmNoU3RhdGUgKmFyY2ggPSAoY29uc3QgVGhyZWFkQXJjaFN0YXRlICopICZ0c3QtPmFyY2g7CisKKyAgIC8qIER1bXAgMjU2LWJpdCB3aWRlICV5bW0gb25seSB3aGVuIHRoZWlyIHVwcGVyIGhhbGYgaXMgbm9uLXplcm8uICovCisgICAjZGVmaW5lIFlNTV9OT05fWkVSTyhyZWcpIFwKKyAgICAgICgocmVnWzRdICE9IDApIHx8IChyZWdbNV0gIT0gMCkgfHwgKHJlZ1s2XSAhPSAwKSB8fCAocmVnWzddICE9IDApKQorICAgaWYgKFlNTV9OT05fWkVSTyhhcmNoLT52ZXguZ3Vlc3RfWU1NMCkgfHwKKyAgICAgICBZTU1fTk9OX1pFUk8oYXJjaC0+dmV4Lmd1ZXN0X1lNTTEpIHx8CisgICAgICAgWU1NX05PTl9aRVJPKGFyY2gtPnZleC5ndWVzdF9ZTU0yKSB8fAorICAgICAgIFlNTV9OT05fWkVSTyhhcmNoLT52ZXguZ3Vlc3RfWU1NMykgfHwKKyAgICAgICBZTU1fTk9OX1pFUk8oYXJjaC0+dmV4Lmd1ZXN0X1lNTTQpIHx8CisgICAgICAgWU1NX05PTl9aRVJPKGFyY2gtPnZleC5ndWVzdF9ZTU01KSB8fAorICAgICAgIFlNTV9OT05fWkVSTyhhcmNoLT52ZXguZ3Vlc3RfWU1NNikgfHwKKyAgICAgICBZTU1fTk9OX1pFUk8oYXJjaC0+dmV4Lmd1ZXN0X1lNTTcpIHx8CisgICAgICAgWU1NX05PTl9aRVJPKGFyY2gtPnZleC5ndWVzdF9ZTU05KSB8fAorICAgICAgIFlNTV9OT05fWkVSTyhhcmNoLT52ZXguZ3Vlc3RfWU1NMCkgfHwKKyAgICAgICBZTU1fTk9OX1pFUk8oYXJjaC0+dmV4Lmd1ZXN0X1lNTTEwKSB8fAorICAgICAgIFlNTV9OT05fWkVSTyhhcmNoLT52ZXguZ3Vlc3RfWU1NMTEpIHx8CisgICAgICAgWU1NX05PTl9aRVJPKGFyY2gtPnZleC5ndWVzdF9ZTU0xMikgfHwKKyAgICAgICBZTU1fTk9OX1pFUk8oYXJjaC0+dmV4Lmd1ZXN0X1lNTTEzKSB8fAorICAgICAgIFlNTV9OT05fWkVSTyhhcmNoLT52ZXguZ3Vlc3RfWU1NMTQpIHx8CisgICAgICAgWU1NX05PTl9aRVJPKGFyY2gtPnZleC5ndWVzdF9ZTU0xNSkpCisgICAgICByZXR1cm4gVHJ1ZTsKKworICAgcmV0dXJuIEZhbHNlOworCisgICAjdW5kZWYgWU1NX05PTl9aRVJPCisjZWxzZQorIyAgZXJyb3IgVW5rbm93biBFTEYgcGxhdGZvcm0KKyNlbmRpZgorfQorI2VuZGlmIC8qIFNPTEFSSVNfUFJYUkVHU0VUX1QgKi8KKworc3RhdGljIHZvaWQgd3JpdGVfcGFydChJbnQgZmQsIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYnVmLCBTaXplVCBidWZfc2l6ZSwgY29uc3QgSENoYXIgKnBhcnQpCit7CisgICBJbnQgcmV0ID0gVkdfKHdyaXRlKShmZCwgYnVmLCBidWZfc2l6ZSk7CisgICBpZiAocmV0IDwgMCkgeworICAgICAgVkdfKHVtc2cpKCJGYWlsZWQgdG8gd3JpdGUgJXMgdG8gY29yZWR1bXAgZmlsZSAlcywgaXQgbWF5IGJlICIKKyAgICAgICAgICAgICAgICAiaW5jb21wbGV0ZS5cbiIsIHBhcnQsIGZpbGVuYW1lKTsKKyAgICAgIFZHXyhkZWJ1Z0xvZykoMSwgImNvcmVkdW1wLXNvbGFyaXMiLCAid3JpdGVfcGFydDogZmFpbGVkIHRvIHdyaXRlICIKKyAgICAgICAgICAgICAgICAgICAgIiVzIHRvIGZpbGUgJXMuIEJ1ZmZlciBhZGRyZXNzPSVwLCBsZW5ndGg9JWx1LiAiCisgICAgICAgICAgICAgICAgICAgICJFcnJvcj0lZC5cbiIsIHBhcnQsIGZpbGVuYW1lLCBidWYsIGJ1Zl9zaXplLCAtcmV0KTsKKyAgIH0KK30KKworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKj09PSBNaXNjZWxsYW5lb3VzIGdldHRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09Ki8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCitzdGF0aWMgSW50IGdldF91aWQodm9pZCkKK3sKKyAgIHJldHVybiBzcl9SZXMoVkdfKGRvX3N5c2NhbGwwKShTWVNfZ2V0dWlkKSk7Cit9CisKK3N0YXRpYyBJbnQgZ2V0X2dpZCh2b2lkKQoreworICAgcmV0dXJuIHNyX1JlcyhWR18oZG9fc3lzY2FsbDApKFNZU19nZXRnaWQpKTsKK30KKworc3RhdGljIEludCBnZXRfZG1vZGVsKHZvaWQpCit7CisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICByZXR1cm4gUFJfTU9ERUxfSUxQMzI7CisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgcmV0dXJuIFBSX01PREVMX0xQNjQ7CisjZWxzZQorIyAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjZW5kaWYKK30KKworc3RhdGljIHZraV96b25laWRfdCBnZXRfem9uZWlkKHZvaWQpCit7CisgICBTeXNSZXMgc3JlcyA9IFZHXyhkb19zeXNjYWxsMikoU1lTX3pvbmUsIFZLSV9aT05FX0xPT0tVUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpIE5VTEwpOworICAgaWYgKHNyX2lzRXJyb3Ioc3JlcykpCisgICAgICAgcmV0dXJuIDA7CisKKyAgIHJldHVybiBzcl9SZXMoc3Jlcyk7Cit9CisKK3N0YXRpYyBVSW50IGNvdW50X2F1eHYodm9pZCkKK3sKKyAgIFVJbnQgY291bnQgPSAxOworCisgICB2a2lfYXV4dl90ICphdXh2ID0gKHZraV9hdXh2X3QgKikgVkdfKGNsaWVudF9hdXh2KTsKKyAgIHdoaWxlIChhdXh2LT5hX3R5cGUgIT0gVktJX0FUX05VTEwpIHsKKyAgICAgIGNvdW50ICs9IDE7CisgICAgICBhdXh2Kys7CisgICB9CisKKyAgIHJldHVybiBjb3VudDsKK30KKworc3RhdGljIEFkZHIgY29tcHV0ZV9zdGtiYXNlKGNvbnN0IFRocmVhZFN0YXRlICp0c3QpCit7CisgICByZXR1cm4gdHN0LT5jbGllbnRfc3RhY2tfaGlnaGVzdF9ieXRlICsgMQorICAgICAgICAgIC0gdHN0LT5jbGllbnRfc3RhY2tfc3pCOworfQorCitzdGF0aWMgSW50IGdldF93c3RhdChjb25zdCB2a2lfc2lnaW5mb190ICpzaSkKK3sKKyAgIHJldHVybiAoc2ktPnNpX3NpZ25vICYgMHhmZikgfCBXQ09SRUZMRzsKK30KKworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKj09PSBVdGlsaXR5IGZpbGxlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09Ki8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCitzdGF0aWMgdm9pZCBmaWxsX3BsYXRmb3JtKEhDaGFyICpidWYsIFVJbnQgYnVmX3NpemUpCit7CisgICB2Z19hc3NlcnQoYnVmICE9IE5VTEwpOworICAgdmdfYXNzZXJ0KGJ1Zl9zaXplID49IDEpOworCisgICBidWZbMF0gPSAnXDAnOworCisgICBWR18oZG9fc3lzY2FsbDMpKFNZU19zeXN0ZW1pbmZvLCBWS0lfU0lfUExBVEZPUk0sCisgICAgICAgICAgICAgICAgICAgIChVV29yZCkgYnVmLCBidWZfc2l6ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGZpbGxfem9uZW5hbWUoSENoYXIgKmJ1ZiwgVUludCBidWZfc2l6ZSkKK3sKKyAgIHZnX2Fzc2VydChidWYgIT0gTlVMTCk7CisgICB2Z19hc3NlcnQoYnVmX3NpemUgPj0gMSk7CisKKyAgIGJ1ZlswXSA9ICdcMCc7CisKKyAgIFZHXyhkb19zeXNjYWxsNSkoU1lTX3pvbmUsIFZLSV9aT05FX0dFVEFUVFIsIGdldF96b25laWQoKSwKKyAgICAgICAgICAgICAgICAgICAgVktJX1pPTkVfQVRUUl9OQU1FLCAoVVdvcmQpIGJ1ZiwgYnVmX3NpemUpOworfQorCitzdGF0aWMgdm9pZCBmaWxsX3RocmVhZF9zdGF0ZShjb25zdCBUaHJlYWRTdGF0ZSAqdHN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSENoYXIgKnN0YXRlLCBIQ2hhciAqc25hbWUpCit7CisgICBzd2l0Y2ggKHRzdC0+c3RhdHVzKSB7CisgICBjYXNlIFZnVHNfUnVubmFibGU6CisgICBjYXNlIFZnVHNfWWllbGRpbmc6CisgICAgICAqc3RhdGUgPSBWS0lfU1JVTjsKKyAgICAgICpzbmFtZSA9ICdSJzsKKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZnVHNfV2FpdFN5czoKKyAgICAgICpzdGF0ZSA9IFZLSV9TU0xFRVA7CisgICAgICAqc25hbWUgPSAnUyc7CisgICAgICBicmVhazsKKworICAgY2FzZSBWZ1RzX1pvbWJpZToKKyAgICAgICpzdGF0ZSA9IFZLSV9TWk9NQjsKKyAgICAgICpzbmFtZSA9ICdaJzsKKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZnVHNfRW1wdHk6CisgICBjYXNlIFZnVHNfSW5pdDoKKyAgICAgICpzdGF0ZSA9IDA7CisgICAgICAqc25hbWUgPSAnPyc7CisgICAgICBicmVhazsKKyAgIH0KK30KKworc3RhdGljIHZvaWQgZmlsbF9zaWdpbmZvKGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpLCB2a2lfc2lnaW5mb190ICpkaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTaG9ydCAqc2lnbm8pCit7CisgICBkaS0+c2lfc2lnbm8gPSBzaS0+c2lfc2lnbm87CisgICBkaS0+c2lfY29kZSAgPSBzaS0+c2lfY29kZTsKKyAgIGRpLT5zaV9lcnJubyA9IDA7CisgICBkaS0+c2lfYWRkciA9IHNpLT5zaV9hZGRyOworICAgKnNpZ25vID0gc2ktPnNpX3NpZ25vOworfQorCitzdGF0aWMgdm9pZCBmaWxsX2FyZ3YoSW50ICphcmdjLCBBZGRyICphcmd2KQoreworICAgQWRkciAqcHRyID0gKEFkZHIgKikgVkdfKGdldF9pbml0aWFsX2NsaWVudF9TUCkoKTsKKyAgICphcmdjID0gKnB0cisrOworICAgKmFyZ3YgPSAoQWRkcikgcHRyOworfQorCitzdGF0aWMgdm9pZCBmaWxsX3NjaGVkdWxpbmdfY2xhc3MoSENoYXIgKmJ1ZiwgU2l6ZVQgYnVmX3NpemUpCit7CisgICB2Z19hc3NlcnQoYnVmICE9IE5VTEwpOworICAgdmdfYXNzZXJ0KGJ1Zl9zaXplID49IDEpOworCisgICAvKiBWYWxncmluZCBjdXJyZW50bHkgc2NoZWR1bGVzIG9uZSB0aHJlYWQgYXQgdGltZSB3aGljaAorICAgICAgcmVzZW1ibGVzIHRoZSBkZWZhdWx0IHRpbWVzaGFyZSBjbGFzcy4gKi8KKyAgIFZHXyhzdHJuY3B5KShidWYsICJUUyIsIGJ1Zl9zaXplKTsKK30KKworc3RhdGljIHZvaWQgZmlsbF9yZWdzZXQodmtpX3ByZ3JlZ3NldF90ICpyZWdzLCBjb25zdCBUaHJlYWRTdGF0ZSAqdHN0KQoreworICAgY29uc3QgVGhyZWFkQXJjaFN0YXRlICphcmNoID0gKGNvbnN0IFRocmVhZEFyY2hTdGF0ZSAqKSAmdHN0LT5hcmNoOworCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICAoKnJlZ3MpW1ZLSV9FSVBdICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FSVA7CisgICAoKnJlZ3MpW1ZLSV9FQVhdICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FQVg7CisgICAoKnJlZ3MpW1ZLSV9FQlhdICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FQlg7CisgICAoKnJlZ3MpW1ZLSV9FQ1hdICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FQ1g7CisgICAoKnJlZ3MpW1ZLSV9FRFhdICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FRFg7CisgICAoKnJlZ3MpW1ZLSV9FU0ldICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FU0k7CisgICAoKnJlZ3MpW1ZLSV9FREldICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FREk7CisgICAoKnJlZ3MpW1ZLSV9FQlBdICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FQlA7CisgICAoKnJlZ3MpW1ZLSV9VRVNQXSAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FU1A7CisgICAoKnJlZ3MpW1ZLSV9TU10gICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9TUzsKKyAgICgqcmVncylbVktJX0NTXSAgICAgICAgID0gYXJjaC0+dmV4Lmd1ZXN0X0NTOworICAgKCpyZWdzKVtWS0lfRFNdICAgICAgICAgPSBhcmNoLT52ZXguZ3Vlc3RfRFM7CisgICAoKnJlZ3MpW1ZLSV9FU10gICAgICAgICA9IGFyY2gtPnZleC5ndWVzdF9FUzsKKyAgICgqcmVncylbVktJX0ZTXSAgICAgICAgID0gYXJjaC0+dmV4Lmd1ZXN0X0ZTOworICAgKCpyZWdzKVtWS0lfR1NdICAgICAgICAgPSBhcmNoLT52ZXguZ3Vlc3RfR1M7CisgICAoKnJlZ3MpW1ZLSV9FRkxdICAgICAgICA9IExpYlZFWF9HdWVzdFg4Nl9nZXRfZWZsYWdzKCZhcmNoLT52ZXgpOworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgICgqcmVncylbVktJX1JFR19SSVBdICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1JJUDsKKyAgICgqcmVncylbVktJX1JFR19SQVhdICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1JBWDsKKyAgICgqcmVncylbVktJX1JFR19SQlhdICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1JCWDsKKyAgICgqcmVncylbVktJX1JFR19SQ1hdICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1JDWDsKKyAgICgqcmVncylbVktJX1JFR19SRFhdICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1JEWDsKKyAgICgqcmVncylbVktJX1JFR19SQlBdICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1JCUDsKKyAgICgqcmVncylbVktJX1JFR19SU0ldICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1JTSTsKKyAgICgqcmVncylbVktJX1JFR19SREldICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1JESTsKKyAgICgqcmVncylbVktJX1JFR19SOF0gICAgID0gYXJjaC0+dmV4Lmd1ZXN0X1I4OworICAgKCpyZWdzKVtWS0lfUkVHX1I5XSAgICAgPSBhcmNoLT52ZXguZ3Vlc3RfUjk7CisgICAoKnJlZ3MpW1ZLSV9SRUdfUjEwXSAgICA9IGFyY2gtPnZleC5ndWVzdF9SMTA7CisgICAoKnJlZ3MpW1ZLSV9SRUdfUjExXSAgICA9IGFyY2gtPnZleC5ndWVzdF9SMTE7CisgICAoKnJlZ3MpW1ZLSV9SRUdfUjEyXSAgICA9IGFyY2gtPnZleC5ndWVzdF9SMTI7CisgICAoKnJlZ3MpW1ZLSV9SRUdfUjEzXSAgICA9IGFyY2gtPnZleC5ndWVzdF9SMTM7CisgICAoKnJlZ3MpW1ZLSV9SRUdfUjE0XSAgICA9IGFyY2gtPnZleC5ndWVzdF9SMTQ7CisgICAoKnJlZ3MpW1ZLSV9SRUdfUjE1XSAgICA9IGFyY2gtPnZleC5ndWVzdF9SMTU7CisgICAoKnJlZ3MpW1ZLSV9SRUdfUlNQXSAgICA9IGFyY2gtPnZleC5ndWVzdF9SU1A7CisgICAoKnJlZ3MpW1ZLSV9SRUdfQ1NdICAgICA9IFZLSV9VQ1NfU0VMOworICAgKCpyZWdzKVtWS0lfUkVHX0RTXSAgICAgPSAwOworICAgKCpyZWdzKVtWS0lfUkVHX0VTXSAgICAgPSAwOworICAgKCpyZWdzKVtWS0lfUkVHX0ZTXSAgICAgPSAwOworICAgKCpyZWdzKVtWS0lfUkVHX0dTXSAgICAgPSAwOworICAgKCpyZWdzKVtWS0lfUkVHX1NTXSAgICAgPSBWS0lfVURTX1NFTDsKKyAgICgqcmVncylbVktJX1JFR19GU0JBU0VdID0gYXJjaC0+dmV4Lmd1ZXN0X0ZTX0NPTlNUOworICAgKCpyZWdzKVtWS0lfUkVHX0dTQkFTRV0gPSAwOworICAgKCpyZWdzKVtWS0lfUkVHX1JGTF0gICAgPSBMaWJWRVhfR3Vlc3RBTUQ2NF9nZXRfcmZsYWdzKCZhcmNoLT52ZXgpOworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIGZpbGxfZnByZWdzZXQodmtpX2ZwcmVnc2V0X3QgKmZwdSwgY29uc3QgVGhyZWFkU3RhdGUgKnRzdCkKK3sKKyAgIGNvbnN0IFRocmVhZEFyY2hTdGF0ZSAqYXJjaCA9IChjb25zdCBUaHJlYWRBcmNoU3RhdGUgKikgJnRzdC0+YXJjaDsKKworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgVkdfKG1lbXNldCkoZnB1LCAwLCBzaXplb2YoKmZwdSkpOworCisgICBzdHJ1Y3QgdmtpX2ZwY2hpcF9zdGF0ZSAqZnMgPSAmZnB1LT5mcF9yZWdfc2V0LmZwY2hpcF9zdGF0ZTsKKyAgIHZnX2Fzc2VydChzaXplb2YoZnMtPnN0YXRlKSA9PSAxMDgpOworCisgICBMaWJWRVhfR3Vlc3RYODZfZ2V0X3g4NyhDT05TVF9DQVNUKFZleEd1ZXN0WDg2U3RhdGUgKiwgJmFyY2gtPnZleCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoVUNoYXIgKikgJmZzLT5zdGF0ZSk7CisKKyAgIC8qIFNTRSAqLworICAgVUludCBteGNzciA9IExpYlZFWF9HdWVzdFg4Nl9nZXRfbXhjc3IoQ09OU1RfQ0FTVChWZXhHdWVzdFg4NlN0YXRlICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmNoLT52ZXgpKTsKKyAgIGZzLT5teGNzciA9IG14Y3NyOworCisgICAvKiBYTU0gcmVnaXN0ZXJzICovCisgICAjZGVmaW5lIENPUFlfT1VUX1hNTShkZXN0LCBzcmMpIFwKKyAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgZGVzdC5fbFswXSA9IHNyY1swXTsgICBcCisgICAgICAgICBkZXN0Ll9sWzFdID0gc3JjWzFdOyAgIFwKKyAgICAgICAgIGRlc3QuX2xbMl0gPSBzcmNbMl07ICAgXAorICAgICAgICAgZGVzdC5fbFszXSA9IHNyY1szXTsgICBcCisgICAgICB9IHdoaWxlICgwKTsKKyAgIENPUFlfT1VUX1hNTShmcy0+eG1tWzBdLCBhcmNoLT52ZXguZ3Vlc3RfWE1NMCk7CisgICBDT1BZX09VVF9YTU0oZnMtPnhtbVsxXSwgYXJjaC0+dmV4Lmd1ZXN0X1hNTTEpOworICAgQ09QWV9PVVRfWE1NKGZzLT54bW1bMl0sIGFyY2gtPnZleC5ndWVzdF9YTU0yKTsKKyAgIENPUFlfT1VUX1hNTShmcy0+eG1tWzNdLCBhcmNoLT52ZXguZ3Vlc3RfWE1NMyk7CisgICBDT1BZX09VVF9YTU0oZnMtPnhtbVs0XSwgYXJjaC0+dmV4Lmd1ZXN0X1hNTTQpOworICAgQ09QWV9PVVRfWE1NKGZzLT54bW1bNV0sIGFyY2gtPnZleC5ndWVzdF9YTU01KTsKKyAgIENPUFlfT1VUX1hNTShmcy0+eG1tWzZdLCBhcmNoLT52ZXguZ3Vlc3RfWE1NNik7CisgICBDT1BZX09VVF9YTU0oZnMtPnhtbVs3XSwgYXJjaC0+dmV4Lmd1ZXN0X1hNTTcpOworICAgI3VuZGVmIENPUFlfT1VUX1hNTQorI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIFZHXyhtZW1zZXQpKGZwdSwgMCwgc2l6ZW9mKCpmcHUpKTsKKyAgIHN0cnVjdCB2a2lfZnBjaGlwX3N0YXRlICpmcyA9ICZmcHUtPmZwX3JlZ19zZXQuZnBjaGlwX3N0YXRlOworCisgICAvKiBMaWJWRVhfR3Vlc3RBTUQ2NF9meHNhdmUoKSByZXF1aXJlcyBhdCBsZWFzdCA0MTYgYnl0ZXMuICovCisgICB2Z19hc3NlcnQoc2l6ZW9mKCpmcykgPj0gNDE2KTsKKyAgIExpYlZFWF9HdWVzdEFNRDY0X2Z4c2F2ZShDT05TVF9DQVNUKFZleEd1ZXN0QU1ENjRTdGF0ZSAqLCAmYXJjaC0+dmV4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgZnMpOworI2Vsc2UKKyMgIGVycm9yIFVua25vd24gcGxhdGZvcm0KKyNlbmRpZgorfQorCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qPT09IEhlYWRlciBmaWxsZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PT0qLworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisKK3N0YXRpYyB2b2lkIGZpbGxfZWhkcihWS0lfRVNaKEVoZHIpICplaGRyLCBJbnQgbnVtX3BoZHJzKQoreworICAgVkdfKG1lbXNldCkoZWhkciwgMCwgc2l6ZW9mKCplaGRyKSk7CisKKyAgIFZHXyhtZW1jcHkpKGVoZHItPmVfaWRlbnQsIFZLSV9FTEZNQUcsIFZLSV9TRUxGTUFHKTsKKyAgIGVoZHItPmVfaWRlbnRbVktJX0VJX0NMQVNTXSAgID0gVkdfRUxGX0NMQVNTOworICAgZWhkci0+ZV9pZGVudFtWS0lfRUlfREFUQV0gICAgPSBWR19FTEZfREFUQTJYWFg7CisgICBlaGRyLT5lX2lkZW50W1ZLSV9FSV9WRVJTSU9OXSA9IFZLSV9FVl9DVVJSRU5UOworCisgICBlaGRyLT5lX3R5cGUgPSBWS0lfRVRfQ09SRTsKKyAgIGVoZHItPmVfbWFjaGluZSA9IFZHX0VMRl9NQUNISU5FOworICAgZWhkci0+ZV92ZXJzaW9uID0gVktJX0VWX0NVUlJFTlQ7CisgICBlaGRyLT5lX2VudHJ5ID0gMDsKKyAgIGVoZHItPmVfZmxhZ3MgPSAwOworICAgZWhkci0+ZV9laHNpemUgPSBzaXplb2YoVktJX0VTWihFaGRyKSk7CisKKyAgIGVoZHItPmVfcGhvZmYgPSBzaXplb2YoVktJX0VTWihFaGRyKSk7CisgICBlaGRyLT5lX3BoZW50c2l6ZSA9IHNpemVvZihWS0lfRVNaKFBoZHIpKTsKKworICAgLyogSWYgdGhlIGNvdW50IG9mIHByb2dyYW0gaGVhZGVycyBjYW4ndCBmaXQgaW4gdGhlIG1lcmUgMTYgYml0cworICAgICogc2hvcnRzaWdodGVkbHkgYWxsb3R0ZWQgdG8gdGhlbSBpbiB0aGUgRUxGIGhlYWRlciwgd2UgdXNlIHRoZQorICAgICogZXh0ZW5kZWQgZm9ybWF0cyBhbmQgcHV0IHRoZSByZWFsIHZhbHVlcyBpbiB0aGUgc2VjdGlvbiBoZWFkZXIKKyAgICAqIGF0IGluZGV4IDAuCisgICAgKi8KKyAgIGlmIChudW1fcGhkcnMgPj0gVktJX1BOX1hOVU0pIHsKKyAgICAgIGVoZHItPmVfcGhudW0gPSBWS0lfUE5fWE5VTTsKKyAgICAgIGVoZHItPmVfc2hudW0gPSAxOworICAgICAgZWhkci0+ZV9zaG9mZiA9IGVoZHItPmVfcGhvZmYgKyBlaGRyLT5lX3BoZW50c2l6ZSAqIG51bV9waGRyczsKKyAgICAgIGVoZHItPmVfc2hlbnRzaXplID0gc2l6ZW9mKFZLSV9FU1ooU2hkcikpOworICAgfSBlbHNlIHsKKyAgICAgIGVoZHItPmVfcGhudW0gPSBudW1fcGhkcnM7CisgICAgICBlaGRyLT5lX3NobnVtID0gMDsKKyAgICAgIGVoZHItPmVfc2hvZmYgPSAwOworICAgICAgZWhkci0+ZV9zaGVudHNpemUgPSAwOworICAgfQorCisgICBlaGRyLT5lX3Noc3RybmR4ID0gMDsKK30KKworc3RhdGljIHZvaWQgZmlsbF9waGRyKFZLSV9FU1ooUGhkcikgKnBoZHIsIGNvbnN0IE5TZWdtZW50ICpzZWcsIFVJbnQgb2ZmLAorICAgICAgICAgICAgICAgICAgICAgIEJvb2wgcmVhbGx5X3dyaXRlKQoreworICAgU2l6ZVQgbGVuID0gc2VnLT5lbmQgLSBzZWctPnN0YXJ0ICsgMTsKKworICAgcmVhbGx5X3dyaXRlID0gcmVhbGx5X3dyaXRlICYmIHNob3VsZF9kdW1wKHNlZyk7CisKKyAgIFZHXyhtZW1zZXQpKHBoZHIsIDAsIHNpemVvZigqcGhkcikpOworCisgICBwaGRyLT5wX3R5cGUgPSBQVF9MT0FEOworICAgcGhkci0+cF9vZmZzZXQgPSBvZmY7CisgICBwaGRyLT5wX3ZhZGRyID0gc2VnLT5zdGFydDsKKyAgIHBoZHItPnBfcGFkZHIgPSAwOworICAgcGhkci0+cF9maWxlc3ogPSByZWFsbHlfd3JpdGUgPyBsZW4gOiAwOworICAgcGhkci0+cF9tZW1zeiA9IGxlbjsKKyAgIHBoZHItPnBfZmxhZ3MgPSAwOworCisgICBpZiAoc2VnLT5oYXNSKQorICAgICAgcGhkci0+cF9mbGFncyB8PSBQRl9SOworICAgaWYgKHNlZy0+aGFzVykKKyAgICAgIHBoZHItPnBfZmxhZ3MgfD0gUEZfVzsKKyAgIGlmIChzZWctPmhhc1gpCisgICAgICBwaGRyLT5wX2ZsYWdzIHw9IFBGX1g7CisKKyAgIHBoZHItPnBfYWxpZ24gPSBWS0lfUEFHRV9TSVpFOworfQorCisvKiBGaWxscyB0aGUgc2VjdGlvbiBoZWFkZXIgYXQgaW5kZXggemVybyB3aGVuIG51bV9waGRycyA+PSBQTl9YTlVNLiAqLworc3RhdGljIHZvaWQgZmlsbF96ZXJvX3NoZHIoVktJX0VTWihTaGRyKSAqc2hkciwgVUludCBudW1fcGhkcnMpCit7CisgICB2Z19hc3NlcnQobnVtX3BoZHJzID49IFZLSV9QTl9YTlVNKTsKKworICAgVkdfKG1lbXNldCkoc2hkciwgMCwgc2l6ZW9mKCpzaGRyKSk7CisKKyAgIHNoZHItPnNoX25hbWUgPSAwOyAvLyBTVFJfTk9ORQorICAgc2hkci0+c2hfaW5mbyA9IG51bV9waGRyczsKK30KKworc3RhdGljIHZvaWQgZmlsbF9wcnBzaW5mbyh2a2lfZWxmX3BycHNpbmZvX3QgKnBycHNpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJlYWRTdGF0ZSAqdHN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnaW5mb190ICpzaSkKK3sKKyAgIFZHXyhtZW1zZXQpKHBycHNpbmZvLCAwLCBzaXplb2YoKnBycHNpbmZvKSk7CisKKyAgIGZpbGxfdGhyZWFkX3N0YXRlKHRzdCwgJnBycHNpbmZvLT5wcl9zdGF0ZSwgJnBycHNpbmZvLT5wcl9zbmFtZSk7CisgICBwcnBzaW5mby0+cHJfdWlkID0gZ2V0X3VpZCgpOworICAgcHJwc2luZm8tPnByX2dpZCA9IGdldF9naWQoKTsKKyAgIHBycHNpbmZvLT5wcl9waWQgPSBWR18oZ2V0cGlkKSgpOworICAgcHJwc2luZm8tPnByX3BwaWQgPSBWR18oZ2V0cHBpZCkoKTsKKyAgIHBycHNpbmZvLT5wcl9wZ3JwID0gVkdfKGdldHBncnApKCk7CisgICBwcnBzaW5mby0+cHJfc2lkID0gVkdfKGdldHBncnApKCk7CisgICBmaWxsX3NjaGVkdWxpbmdfY2xhc3MocHJwc2luZm8tPnByX2NsbmFtZSwgc2l6ZW9mKHBycHNpbmZvLT5wcl9jbG5hbWUpKTsKKyAgIFZHXyhjbGllbnRfZm5hbWUpKHBycHNpbmZvLT5wcl9mbmFtZSwgc2l6ZW9mKHBycHNpbmZvLT5wcl9mbmFtZSksIFRydWUpOworICAgVkdfKGNsaWVudF9jbWRfYW5kX2FyZ3MpKHBycHNpbmZvLT5wcl9wc2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHBycHNpbmZvLT5wcl9wc2FyZ3MpKTsKKyAgIGZpbGxfYXJndigmcHJwc2luZm8tPnByX2FyZ2MsIChBZGRyICopICZwcnBzaW5mby0+cHJfYXJndik7CisgICBwcnBzaW5mby0+cHJfZW52cCA9IChjaGFyICoqKSBWR18oY2xpZW50X2VudnApOworICAgcHJwc2luZm8tPnByX3dzdGF0ID0gZ2V0X3dzdGF0KHNpKTsKKyAgIHBycHNpbmZvLT5wcl9ldWlkID0gVkdfKGdldGV1aWQpKCk7CisgICBwcnBzaW5mby0+cHJfZWdpZCA9IFZHXyhnZXRlZ2lkKSgpOworICAgcHJwc2luZm8tPnByX2Rtb2RlbCA9IGdldF9kbW9kZWwoKTsKK30KKworc3RhdGljIHZvaWQgZmlsbF9wcnN0YXR1cyh2a2lfZWxmX3Byc3RhdHVzX3QgKnBycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFkU3RhdGUgKnRzdCwKKwkJCSAgY29uc3QgdmtpX3NpZ2luZm9fdCAqc2kpCit7CisgICBWR18obWVtc2V0KShwcnMsIDAsIHNpemVvZigqcHJzKSk7CisKKyAgIHBycy0+cHJfZmxhZ3MgPSBWS0lfRUxGX09MRF9QUl9QQ0lOVkFMOworICAgZmlsbF9zaWdpbmZvKHNpLCAmcHJzLT5wcl9pbmZvLCAmcHJzLT5wcl9jdXJzaWcpOworICAgcHJzLT5wcl9ubHdwID0gVkdfKGNvdW50X2xpdmluZ190aHJlYWRzKSgpOworICAgcHJzLT5wcl9zaWdob2xkID0gdHN0LT5zaWdfbWFzazsKKyAgIHBycy0+cHJfcGlkID0gVkdfKGdldHBpZCkoKTsKKyAgIHBycy0+cHJfcHBpZCA9IFZHXyhnZXRwcGlkKSgpOworICAgcHJzLT5wcl9wZ3JwID0gVkdfKGdldHBncnApKCk7CisgICBwcnMtPnByX3NpZCA9IFZHXyhnZXRwZ3JwKSgpOworICAgZmlsbF9zY2hlZHVsaW5nX2NsYXNzKHBycy0+cHJfY2xuYW1lLCBzaXplb2YocHJzLT5wcl9jbG5hbWUpKTsKKyAgIHBycy0+cHJfd2hvID0gdHN0LT5vc19zdGF0ZS5sd3BpZDsgCisgICBwcnMtPnByX2Jya2Jhc2UgPSAodmtpX2NhZGRyX3QpIFZHXyhicmtfYmFzZSk7CisgICBwcnMtPnByX2Jya3NpemUgPSBWR18oYnJrX2xpbWl0KSAtIFZHXyhicmtfYmFzZSk7CisgICBwcnMtPnByX3N0a2Jhc2UgPSAodmtpX2NhZGRyX3QpIGNvbXB1dGVfc3RrYmFzZSh0c3QpOworICAgcHJzLT5wcl9zdGtzaXplID0gdHN0LT5jbGllbnRfc3RhY2tfc3pCOworICAgZmlsbF9yZWdzZXQoJnBycy0+cHJfcmVnLCB0c3QpOworfQorCitzdGF0aWMgdm9pZCBmaWxsX3BzaW5mbyh2a2lfcHNpbmZvX3QgKnBzaW5mbywgY29uc3QgVGhyZWFkU3RhdGUgKnRzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpKQoreworICAgVkdfKG1lbXNldCkocHNpbmZvLCAwLCBzaXplb2YoKnBzaW5mbykpOworCisgICBwc2luZm8tPnByX25sd3AgPSBWR18oY291bnRfbGl2aW5nX3RocmVhZHMpKCk7CisgICBwc2luZm8tPnByX3VpZCA9IGdldF91aWQoKTsKKyAgIHBzaW5mby0+cHJfZ2lkID0gZ2V0X2dpZCgpOworICAgcHNpbmZvLT5wcl9waWQgPSBWR18oZ2V0cGlkKSgpOworICAgcHNpbmZvLT5wcl9wcGlkID0gVkdfKGdldHBwaWQpKCk7CisgICBwc2luZm8tPnByX3BnaWQgPSBWR18oZ2V0cGdycCkoKTsKKyAgIHBzaW5mby0+cHJfc2lkID0gVkdfKGdldHBncnApKCk7CisgICBwc2luZm8tPnByX2V1aWQgPSBWR18oZ2V0ZXVpZCkoKTsKKyAgIHBzaW5mby0+cHJfZWdpZCA9IFZHXyhnZXRlZ2lkKSgpOworICAgVkdfKGNsaWVudF9mbmFtZSkocHNpbmZvLT5wcl9mbmFtZSwgc2l6ZW9mKHBzaW5mby0+cHJfZm5hbWUpLCBUcnVlKTsKKyAgIHBzaW5mby0+cHJfd3N0YXQgPSBnZXRfd3N0YXQoc2kpOworICAgVkdfKGNsaWVudF9jbWRfYW5kX2FyZ3MpKHBzaW5mby0+cHJfcHNhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihwc2luZm8tPnByX3BzYXJncykpOworICAgZmlsbF9hcmd2KCZwc2luZm8tPnByX2FyZ2MsIChBZGRyICopICZwc2luZm8tPnByX2FyZ3YpOworICAgcHNpbmZvLT5wcl9lbnZwID0gKHVpbnRwdHJfdCkgVkdfKGNsaWVudF9lbnZwKTsKKyAgIHBzaW5mby0+cHJfZG1vZGVsID0gZ2V0X2Rtb2RlbCgpOworICAgcHNpbmZvLT5wcl96b25laWQgPSBnZXRfem9uZWlkKCk7CisKKyAgIHBzaW5mby0+cHJfbHdwLnByX2x3cGlkID0gdHN0LT5vc19zdGF0ZS5sd3BpZDsKKyAgIGZpbGxfdGhyZWFkX3N0YXRlKHRzdCwgJnBzaW5mby0+cHJfbHdwLnByX3N0YXRlLAorICAgICAgICAgICAgICAgICAgICAgJnBzaW5mby0+cHJfbHdwLnByX3NuYW1lKTsKKyAgIGZpbGxfc2NoZWR1bGluZ19jbGFzcyhwc2luZm8tPnByX2x3cC5wcl9jbG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHBzaW5mby0+cHJfbHdwLnByX2NsbmFtZSkpOworfQorCitzdGF0aWMgdm9pZCBmaWxsX3BzdGF0dXModmtpX3BzdGF0dXNfdCAqcHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJlYWRTdGF0ZSAqdHN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpKQoreworICAgVkdfKG1lbXNldCkocHN0YXR1cywgMCwgc2l6ZW9mKCpwc3RhdHVzKSk7CisKKyAgIHBzdGF0dXMtPnByX2ZsYWdzID0gVktJX1BSX1BDSU5WQUw7CisgICBwc3RhdHVzLT5wcl9ubHdwID0gVkdfKGNvdW50X2xpdmluZ190aHJlYWRzKSgpOworICAgcHN0YXR1cy0+cHJfcGlkID0gVkdfKGdldHBpZCkoKTsKKyAgIHBzdGF0dXMtPnByX3BwaWQgPSBWR18oZ2V0cHBpZCkoKTsKKyAgIHBzdGF0dXMtPnByX3BnaWQgPSBWR18oZ2V0cGdycCkoKTsKKyAgIHBzdGF0dXMtPnByX3NpZCA9IFZHXyhnZXRwZ3JwKSgpOworICAgcHN0YXR1cy0+cHJfYnJrYmFzZSA9ICh1aW50cHRyX3QpIFZHXyhicmtfYmFzZSk7CisgICBwc3RhdHVzLT5wcl9icmtzaXplID0gVkdfKGJya19saW1pdCkgLSBWR18oYnJrX2Jhc2UpOworICAgcHN0YXR1cy0+cHJfc3RrYmFzZSA9ICh1aW50cHRyX3QpIGNvbXB1dGVfc3RrYmFzZSh0c3QpOworICAgcHN0YXR1cy0+cHJfc3Rrc2l6ZSA9IHRzdC0+Y2xpZW50X3N0YWNrX3N6QjsKKyAgIHBzdGF0dXMtPnByX2Rtb2RlbCA9IGdldF9kbW9kZWwoKTsKKyAgIHBzdGF0dXMtPnByX3pvbmVpZCA9IGdldF96b25laWQoKTsKKworICAgcHN0YXR1cy0+cHJfbHdwLnByX2ZsYWdzID0gVktJX1BSX1BDSU5WQUw7CisgICBwc3RhdHVzLT5wcl9sd3AucHJfbHdwaWQgPSB0c3QtPm9zX3N0YXRlLmx3cGlkOworICAgZmlsbF9zaWdpbmZvKHNpLCAmcHN0YXR1cy0+cHJfbHdwLnByX2luZm8sCisgICAgICAgICAgICAgICAgJnBzdGF0dXMtPnByX2x3cC5wcl9jdXJzaWcpOworICAgcHN0YXR1cy0+cHJfbHdwLnByX2x3cGhvbGQgPSB0c3QtPnNpZ19tYXNrOworICAgZmlsbF9zY2hlZHVsaW5nX2NsYXNzKHBzdGF0dXMtPnByX2x3cC5wcl9jbG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHBzdGF0dXMtPnByX2x3cC5wcl9jbG5hbWUpKTsKKyAgIGZpbGxfcmVnc2V0KCZwc3RhdHVzLT5wcl9sd3AucHJfcmVnLCB0c3QpOworICAgZmlsbF9mcHJlZ3NldCgmcHN0YXR1cy0+cHJfbHdwLnByX2ZwcmVnLCB0c3QpOworfQorCisjaWYgZGVmaW5lZChTT0xBUklTX1BSWFJFR1NFVF9UKQorc3RhdGljIHZvaWQgZmlsbF94cmVncyh2a2lfcHJ4cmVnc2V0X3QgKnhyZWdzLCBjb25zdCBUaHJlYWRTdGF0ZSAqdHN0KQoreworICAgY29uc3QgVGhyZWFkQXJjaFN0YXRlICphcmNoID0gKGNvbnN0IFRocmVhZEFyY2hTdGF0ZSAqKSAmdHN0LT5hcmNoOworCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBWR18obWVtc2V0KSh4cmVncywgMCwgc2l6ZW9mKCp4cmVncykpOworICAgeHJlZ3MtPnByX3hzaXplID0gc2l6ZW9mKHhyZWdzLT5wcl91bi5wcl94c2F2ZSk7CisKKyAgIC8qIFNTRSAqLworICAgVUludCBteGNzciA9IExpYlZFWF9HdWVzdFg4Nl9nZXRfbXhjc3IoQ09OU1RfQ0FTVChWZXhHdWVzdFg4NlN0YXRlICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmNoLT52ZXgpKTsKKyAgIHhyZWdzLT5wcl91bi5wcl94c2F2ZS5wcl9teGNzciA9IG14Y3NyOworCisgICAvKiBYTU0gcmVnaXN0ZXJzICovCisgICAjZGVmaW5lIENPUFlfT1VUX1hNTShkZXN0LCBzcmMpIFwKKyAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgZGVzdC5fbFswXSA9IHNyY1swXTsgICBcCisgICAgICAgICBkZXN0Ll9sWzFdID0gc3JjWzFdOyAgIFwKKyAgICAgICAgIGRlc3QuX2xbMl0gPSBzcmNbMl07ICAgXAorICAgICAgICAgZGVzdC5fbFszXSA9IHNyY1szXTsgICBcCisgICAgICB9IHdoaWxlICgwKTsKKyAgIENPUFlfT1VUX1hNTSh4cmVncy0+cHJfdW4ucHJfeHNhdmUucHJfeG1tWzBdLCBhcmNoLT52ZXguZ3Vlc3RfWE1NMCk7CisgICBDT1BZX09VVF9YTU0oeHJlZ3MtPnByX3VuLnByX3hzYXZlLnByX3htbVsxXSwgYXJjaC0+dmV4Lmd1ZXN0X1hNTTEpOworICAgQ09QWV9PVVRfWE1NKHhyZWdzLT5wcl91bi5wcl94c2F2ZS5wcl94bW1bMl0sIGFyY2gtPnZleC5ndWVzdF9YTU0yKTsKKyAgIENPUFlfT1VUX1hNTSh4cmVncy0+cHJfdW4ucHJfeHNhdmUucHJfeG1tWzNdLCBhcmNoLT52ZXguZ3Vlc3RfWE1NMyk7CisgICBDT1BZX09VVF9YTU0oeHJlZ3MtPnByX3VuLnByX3hzYXZlLnByX3htbVs0XSwgYXJjaC0+dmV4Lmd1ZXN0X1hNTTQpOworICAgQ09QWV9PVVRfWE1NKHhyZWdzLT5wcl91bi5wcl94c2F2ZS5wcl94bW1bNV0sIGFyY2gtPnZleC5ndWVzdF9YTU01KTsKKyAgIENPUFlfT1VUX1hNTSh4cmVncy0+cHJfdW4ucHJfeHNhdmUucHJfeG1tWzZdLCBhcmNoLT52ZXguZ3Vlc3RfWE1NNik7CisgICBDT1BZX09VVF9YTU0oeHJlZ3MtPnByX3VuLnByX3hzYXZlLnByX3htbVs3XSwgYXJjaC0+dmV4Lmd1ZXN0X1hNTTcpOworICAgI3VuZGVmIENPUFlfT1VUX1hNTQorCisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgVkdfKG1lbXNldCkoeHJlZ3MsIDAsIHNpemVvZigqeHJlZ3MpKTsKKyAgIHhyZWdzLT5wcl94c2l6ZSA9IHNpemVvZih4cmVncy0+cHJfdW4ucHJfeHNhdmUpOworCisgICAvKiBMaWJWRVhfR3Vlc3RBTUQ2NF9meHNhdmUoKSByZXF1aXJlcyBhdCBsZWFzdCA0MTYgYnl0ZXMuICovCisgICB2Z19hc3NlcnQoc2l6ZW9mKHhyZWdzLT5wcl91bi5wcl94c2F2ZSkgPj0gNDE2KTsKKyAgIExpYlZFWF9HdWVzdEFNRDY0X2Z4c2F2ZShDT05TVF9DQVNUKFZleEd1ZXN0QU1ENjRTdGF0ZSAqLCAmYXJjaC0+dmV4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgJnhyZWdzLT5wcl91bi5wcl94c2F2ZSk7CisjZWxzZQorIyAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjZW5kaWYKK30KKyNlbmRpZiAvKiBTT0xBUklTX1BSWFJFR1NFVF9UICovCisKK3N0YXRpYyB2b2lkIGZpbGxfdXRzbmFtZShzdHJ1Y3QgdmtpX3V0c25hbWUgKnV0cykKK3sKKyAgIFZHXyhtZW1zZXQpKHV0cywgMCwgc2l6ZW9mKCp1dHMpKTsKKworICAgVkdfKGRvX3N5c2NhbGwzKShTWVNfc3lzdGVtaW5mbywgVktJX1NJX1NZU05BTUUsCisgICAgICAgICAgICAgICAgICAgIChVV29yZCkgJnV0cy0+c3lzbmFtZSwgc2l6ZW9mKHV0cy0+c3lzbmFtZSkpOworICAgVkdfKGRvX3N5c2NhbGwzKShTWVNfc3lzdGVtaW5mbywgVktJX1NJX0hPU1ROQU1FLAorICAgICAgICAgICAgICAgICAgICAoVVdvcmQpICZ1dHMtPm5vZGVuYW1lLCBzaXplb2YodXRzLT5ub2RlbmFtZSkpOworICAgVkdfKGRvX3N5c2NhbGwzKShTWVNfc3lzdGVtaW5mbywgVktJX1NJX1JFTEVBU0UsCisgICAgICAgICAgICAgICAgICAgIChVV29yZCkgJnV0cy0+cmVsZWFzZSwgc2l6ZW9mKHV0cy0+cmVsZWFzZSkpOworICAgVkdfKGRvX3N5c2NhbGwzKShTWVNfc3lzdGVtaW5mbywgVktJX1NJX1ZFUlNJT04sCisgICAgICAgICAgICAgICAgICAgIChVV29yZCkgJnV0cy0+dmVyc2lvbiwgc2l6ZW9mKHV0cy0+dmVyc2lvbikpOworICAgVkdfKGRvX3N5c2NhbGwzKShTWVNfc3lzdGVtaW5mbywgVktJX1NJX01BQ0hJTkUsCisgICAgICAgICAgICAgICAgICAgIChVV29yZCkgJnV0cy0+bWFjaGluZSwgc2l6ZW9mKHV0cy0+bWFjaGluZSkpOworfQorCitzdGF0aWMgdmtpX3ByY3JlZF90ICpjcmVhdGVfcHJjcmVkKFNpemVUICpzaXplKQoreworICAgVUludCBncm91cF9saXN0W1ZLSV9OR1JPVVBTX01BWF07CisgICBJbnQgbmdyb3VwcyA9IFZHXyhnZXRncm91cHMpKFZLSV9OR1JPVVBTX01BWCwgZ3JvdXBfbGlzdCk7CisgICBpZiAobmdyb3VwcyA9PSAtMSkKKyAgICAgIG5ncm91cHMgPSAwOworCisgICAqc2l6ZSA9IHNpemVvZih2a2lfcHJjcmVkX3QpICsgKG5ncm91cHMgLSAxKSAqIHNpemVvZihnaWRfdCk7CisgICB2a2lfcHJjcmVkX3QgKnByY3JlZCA9IFZHXyhtYWxsb2MpKCJjb3JlZHVtcC1lbGYuY3AuMSIsICpzaXplKTsKKyAgIFZHXyhtZW1zZXQpKHByY3JlZCwgMCwgKnNpemUpOworCisgICBwcmNyZWQtPnByX2V1aWQgPSBWR18oZ2V0ZXVpZCkoKTsKKyAgIHByY3JlZC0+cHJfcnVpZCA9IGdldF91aWQoKTsKKyAgIHByY3JlZC0+cHJfc3VpZCA9IHByY3JlZC0+cHJfZXVpZDsKKyAgIHByY3JlZC0+cHJfZWdpZCA9IFZHXyhnZXRlZ2lkKSgpOworICAgcHJjcmVkLT5wcl9yZ2lkID0gZ2V0X2dpZCgpOworICAgcHJjcmVkLT5wcl9zZ2lkID0gcHJjcmVkLT5wcl9lZ2lkOworICAgcHJjcmVkLT5wcl9uZ3JvdXBzID0gbmdyb3VwczsKKworICAgVUludCBpOworICAgZm9yIChpID0gMDsgaSA8IG5ncm91cHM7IGkrKykKKyAgICAgIHByY3JlZC0+cHJfZ3JvdXBzW2ldID0gZ3JvdXBfbGlzdFtpXTsKKworICAgcmV0dXJuIHByY3JlZDsKK30KKworc3RhdGljIHZvaWQgZmlsbF9jb3JlX2NvbnRlbnQodmtpX2NvcmVfY29udGVudF90ICpjb250ZW50KQoreworICAgKmNvbnRlbnQgPSBWS0lfQ0NfQ09OVEVOVF9TVEFDSyB8IFZLSV9DQ19DT05URU5UX0hFQVAKKyAgICAgICAgICAgICAgfCBWS0lfQ0NfQ09OVEVOVF9TSEFOT04gfCBWS0lfQ0NfQ09OVEVOVF9URVhUCisgICAgICAgICAgICAgIHwgVktJX0NDX0NPTlRFTlRfREFUQSB8IFZLSV9DQ19DT05URU5UX1JPREFUQQorICAgICAgICAgICAgICB8IFZLSV9DQ19DT05URU5UX0FOT04gfCBWS0lfQ0NfQ09OVEVOVF9TSE0KKyAgICAgICAgICAgICAgfCBWS0lfQ0NfQ09OVEVOVF9JU00gfCBWS0lfQ0NfQ09OVEVOVF9ESVNNOworfQorCitzdGF0aWMgdmtpX3BycHJpdl90ICpjcmVhdGVfcHJwcml2KFNpemVUICpzaXplKQoreworICAgSW50IGZkID0gVkdfKGZkX29wZW4pKCIvcHJvYy9zZWxmL3ByaXYiLCBPX1JET05MWSwgMCk7CisgICBpZiAoZmQgPCAwKQorICAgICAgcmV0dXJuIE5VTEw7CisKKyAgIHN0cnVjdCB2Z19zdGF0IHN0YXRzOworICAgaWYgKFZHXyhmc3RhdCkoZmQsICZzdGF0cykgIT0gMCkgeworICAgICAgVkdfKGNsb3NlKShmZCk7CisgICAgICByZXR1cm4gTlVMTDsKKyAgIH0KKworICAgdmtpX3BycHJpdl90ICpwcnByaXYgPSBWR18obWFsbG9jKSgiY29yZWR1bXAtZWxmLmNwLjEiLCBzdGF0cy5zaXplKTsKKworICAgaWYgKFZHXyhyZWFkKShmZCwgcHJwcml2LCBzdGF0cy5zaXplKSAhPSBzdGF0cy5zaXplKSB7CisgICAgICBWR18oZnJlZSkocHJwcml2KTsKKyAgICAgIFZHXyhjbG9zZSkoZmQpOworICAgICAgcmV0dXJuIE5VTEw7CisgICB9CisKKyAgIFZHXyhjbG9zZSkoZmQpOworICAgKnNpemUgPSBzdGF0cy5zaXplOworICAgcmV0dXJuIHBycHJpdjsKK30KKworc3RhdGljIHZraV9wcml2X2ltcGxfaW5mb190ICpjcmVhdGVfcHJpdl9pbmZvKFNpemVUICpzaXplKQoreworICAgLyogU2l6ZSBvZiB0aGUgcmV0dXJuZWQgcHJpdl9pbXBsX2luZm9fdCBpcyBhcHJpb3JpIHVua293bi4gKi8KKyAgIHZraV9wcml2X2ltcGxfaW5mb190IGZpcnN0X2N1dFsxMDBdOworICAgU3lzUmVzIHNyZXMgPSBWR18oZG9fc3lzY2FsbDUpKFNZU19wcml2c3lzLCBWS0lfUFJJVlNZU19HRVRJTVBMSU5GTywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAoVVdvcmQpIGZpcnN0X2N1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZmlyc3RfY3V0KSk7CisgICBpZiAoc3JfaXNFcnJvcihzcmVzKSkKKyAgICAgICByZXR1cm4gTlVMTDsKKworICAgU2l6ZVQgcmVhbF9zaXplID0gZmlyc3RfY3V0WzBdLnByaXZfaGVhZGVyc2l6ZQorICAgICAgICAgICAgICAgICAgICAgKyBmaXJzdF9jdXRbMF0ucHJpdl9nbG9iYWxpbmZvc2l6ZTsKKyAgIHZraV9wcml2X2ltcGxfaW5mb190ICpwcml2X2luZm8gPSBWR18obWFsbG9jKSgiY29yZWR1bXAtZWxmLmNwaS4xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFsX3NpemUpOworCisgICBpZiAocmVhbF9zaXplIDw9IHNpemVvZihmaXJzdF9jdXQpKSB7CisgICAgICAvKiBpZiB0aGUgZmlyc3RfY3V0IHdhcyBsYXJnZSBlbm91Z2ggKi8KKyAgICAgIFZHXyhtZW1jcHkpKHByaXZfaW5mbywgZmlyc3RfY3V0LCByZWFsX3NpemUpOworICAgfSBlbHNlIHsKKyAgICAgIC8qIG90aGVyd2lzZSByZXBlYXQgdGhlIHN5c2NhbGwgd2l0aCBidWZmZXIgbGFyZ2UgZW5vdWdoICovCisgICAgICBzcmVzID0gVkdfKGRvX3N5c2NhbGw1KShTWVNfcHJpdnN5cywgVktJX1BSSVZTWVNfR0VUSU1QTElORk8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAoVVdvcmQpIHByaXZfaW5mbywgcmVhbF9zaXplKTsKKyAgICAgIGlmIChzcl9pc0Vycm9yKHNyZXMpKSB7CisgICAgICAgICAgVkdfKGZyZWUpKHByaXZfaW5mbyk7CisgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICB9CisgICB9CisKKyAgICpzaXplID0gcmVhbF9zaXplOworICAgcmV0dXJuIHByaXZfaW5mbzsKK30KKworc3RhdGljIHZvaWQgZmlsbF9sd3BzaW5mbyh2a2lfbHdwc2luZm9fdCAqbHdwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJlYWRTdGF0ZSAqdHN0KQoreworICAgVkdfKG1lbXNldCkobHdwLCAwLCBzaXplb2YoKmx3cCkpOworCisgICBsd3AtPnByX2x3cGlkID0gdHN0LT5vc19zdGF0ZS5sd3BpZDsKKyAgIGZpbGxfdGhyZWFkX3N0YXRlKHRzdCwgJmx3cC0+cHJfc3RhdGUsICZsd3AtPnByX3NuYW1lKTsKKyAgIGZpbGxfc2NoZWR1bGluZ19jbGFzcyhsd3AtPnByX2NsbmFtZSwgc2l6ZW9mKGx3cC0+cHJfY2xuYW1lKSk7Cit9CisKK3N0YXRpYyB2b2lkIGZpbGxfbHdwc3RhdHVzKHZraV9sd3BzdGF0dXNfdCAqbHdwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFkU3RhdGUgKnRzdCwKKwkJCSAgIGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpKQoreworICAgVkdfKG1lbXNldCkobHdwLCAwLCBzaXplb2YoKmx3cCkpOworCisgICBsd3AtPnByX2ZsYWdzID0gVktJX1BSX1BDSU5WQUw7CisgICBsd3AtPnByX2x3cGlkID0gdHN0LT5vc19zdGF0ZS5sd3BpZDsKKyAgIGZpbGxfc2lnaW5mbyhzaSwgJmx3cC0+cHJfaW5mbywgJmx3cC0+cHJfY3Vyc2lnKTsKKyAgIGZpbGxfc2NoZWR1bGluZ19jbGFzcyhsd3AtPnByX2NsbmFtZSwgc2l6ZW9mKGx3cC0+cHJfY2xuYW1lKSk7CisgICBmaWxsX3JlZ3NldCgmbHdwLT5wcl9yZWcsIHRzdCk7CisgICBmaWxsX2ZwcmVnc2V0KCZsd3AtPnByX2ZwcmVnLCB0c3QpOworfQorCitzdGF0aWMgdm9pZCBmaWxsX29sZF9ub3RlX2Zvcl90aHJlYWQobm90ZV90ICoqbm90ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFkU3RhdGUgKnRzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnaW5mb190ICpzaSkKK3sKKyAgIHZraV9lbGZfcHJzdGF0dXNfdCBwcnN0YXR1czsKKyAgIGZpbGxfcHJzdGF0dXMoJnByc3RhdHVzLCB0c3QsIHNpKTsKKyAgIGFkZF9ub3RlKG5vdGVzLCBWS0lfTlRfUFJTVEFUVVMsICZwcnN0YXR1cywgc2l6ZW9mKHZraV9lbGZfcHJzdGF0dXNfdCkpOworCisgICB2a2lfZnByZWdzZXRfdCBmcHU7CisgICBmaWxsX2ZwcmVnc2V0KCZmcHUsIHRzdCk7CisgICBhZGRfbm90ZShub3RlcywgVktJX05UX1BSRlBSRUcsICZmcHUsIHNpemVvZih2a2lfZnByZWdzZXRfdCkpOworCisjaWYgZGVmaW5lZChTT0xBUklTX1BSWFJFR1NFVF9UKQorICAgaWYgKHNob3VsZF9kdW1wX3hyZWdzKHRzdCkpIHsKKyAgICAgIHZraV9wcnhyZWdzZXRfdCB4cmVnczsKKyAgICAgIGZpbGxfeHJlZ3MoJnhyZWdzLCB0c3QpOworICAgICAgYWRkX25vdGUobm90ZXMsIFZLSV9OVF9QUlhSRUcsICZ4cmVncywgc2l6ZW9mKHZraV9wcnhyZWdzZXRfdCkpOworICAgfQorI2VuZGlmIC8qIFNPTEFSSVNfUFJYUkVHU0VUX1QgKi8KK30KKworc3RhdGljIHZvaWQgZmlsbF9uZXdfbm90ZV9mb3JfdGhyZWFkKG5vdGVfdCAqKm5vdGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRocmVhZFN0YXRlICp0c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmtpX3NpZ2luZm9fdCAqc2kpCit7CisgICB2a2lfbHdwc2luZm9fdCBsd3BzaW5mbzsKKyAgIGZpbGxfbHdwc2luZm8oJmx3cHNpbmZvLCB0c3QpOworICAgYWRkX25vdGUobm90ZXMsIFZLSV9OVF9MV1BTSU5GTywgJmx3cHNpbmZvLCBzaXplb2YodmtpX2x3cHNpbmZvX3QpKTsKKworICAgdmtpX2x3cHN0YXR1c190IGx3cHN0YXR1czsKKyAgIGZpbGxfbHdwc3RhdHVzKCZsd3BzdGF0dXMsIHRzdCwgc2kpOworICAgYWRkX25vdGUobm90ZXMsIFZLSV9OVF9MV1BTVEFUVVMsICZsd3BzdGF0dXMsIHNpemVvZih2a2lfbHdwc3RhdHVzX3QpKTsKKworI2lmIGRlZmluZWQoU09MQVJJU19QUlhSRUdTRVRfVCkKKyAgIGlmIChzaG91bGRfZHVtcF94cmVncyh0c3QpKSB7CisgICAgICB2a2lfcHJ4cmVnc2V0X3QgeHJlZ3M7CisgICAgICBmaWxsX3hyZWdzKCZ4cmVncywgdHN0KTsKKyAgICAgIGFkZF9ub3RlKG5vdGVzLCBWS0lfTlRfUFJYUkVHLCAmeHJlZ3MsIHNpemVvZih2a2lfcHJ4cmVnc2V0X3QpKTsKKyAgIH0KKyNlbmRpZiAvKiBTT0xBUklTX1BSWFJFR1NFVF9UICovCit9CisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyo9PT0gTm90ZSB1dGlsaXR5IGZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09PSovCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKworc3RhdGljIHZvaWQgYWRkX25vdGUobm90ZV90ICoqbGlzdCwgVUludCB0eXBlLCBjb25zdCB2b2lkICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgVUludCBkYXRhc3opCit7CisgICBVSW50IG5vdGVfc2l6ZSA9IHNpemVvZihub3RlX3QpICsgVkdfUk9VTkRVUChkYXRhc3osIDQpOworCisgICBub3RlX3QgKm4gPSBWR18obWFsbG9jKSgiY29yZWR1bXAtZWxmLmFuLjEiLCBub3RlX3NpemUpOworCisgICBWR18obWVtc2V0KShuLCAwLCBub3RlX3NpemUpOworICAgbi0+bmhkci5uX3R5cGUgPSB0eXBlOworICAgbi0+bmhkci5uX25hbWVzeiA9IDU7CisgICBuLT5uaGRyLm5fZGVzY3N6ID0gVkdfUk9VTkRVUChkYXRhc3osIDQpOworICAgVkdfKG1lbWNweSkobi0+bmFtZSwgIkNPUkUiLCA0KTsKKyAgIFZHXyhtZW1jcHkpKG4tPmRhdGEsIGRhdGEsIGRhdGFzeik7CisKKyAgIGlmICgqbGlzdCA9PSBOVUxMKSB7CisgICAgICAqbGlzdCA9IG47CisgICAgICByZXR1cm47CisgICB9CisKKyAgIG5vdGVfdCAqdGFpbCA9ICpsaXN0OworICAgd2hpbGUgKHRhaWwtPm5leHQgIT0gTlVMTCkKKyAgICAgIHRhaWwgPSB0YWlsLT5uZXh0OworICAgdGFpbC0+bmV4dCA9IG47Cit9CisKK3N0YXRpYyBVSW50IG5vdGVfc2l6ZShjb25zdCBub3RlX3QgKm5vdGUpCit7CisgICByZXR1cm4gc2l6ZW9mKG5vdGVfdCkgLSBzaXplb2Yobm90ZV90ICopICsgbm90ZS0+bmhkci5uX2Rlc2NzejsKK30KKworc3RhdGljIFVJbnQgbm90ZXNfc2l6ZShjb25zdCBub3RlX3QgKmxpc3QpCit7CisgICBVSW50IHNpemUgPSAwOworICAgY29uc3Qgbm90ZV90ICpub3RlOworCisgICBmb3IgKG5vdGUgPSBsaXN0OyBub3RlICE9IE5VTEw7IG5vdGUgPSBub3RlLT5uZXh0KQorICAgICAgc2l6ZSArPSBub3RlX3NpemUobm90ZSk7CisKKyAgIHJldHVybiBzaXplOworfQorCitzdGF0aWMgdm9pZCBmaWxsX25vdGVzX3BoZHIoVktJX0VTWihQaGRyKSAqcGhkciwgVUludCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUludCBzaXplX29mX25vdGVzKQoreworICAgcGhkci0+cF90eXBlID0gUFRfTk9URTsKKyAgIHBoZHItPnBfb2Zmc2V0ID0gb2Zmc2V0OworICAgcGhkci0+cF92YWRkciA9IDA7CisgICBwaGRyLT5wX3BhZGRyID0gMDsKKyAgIHBoZHItPnBfZmlsZXN6ID0gc2l6ZV9vZl9ub3RlczsKKyAgIHBoZHItPnBfbWVtc3ogPSAwOworICAgcGhkci0+cF9mbGFncyA9IFBGX1I7CisgICBwaGRyLT5wX2FsaWduID0gMDsKK30KKworc3RhdGljIHZvaWQgd3JpdGVfbm90ZXMoSW50IGZkLCBjb25zdCBIQ2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub3RlX3QgKmxpc3QpCit7CisgICBjb25zdCBub3RlX3QgKm5vdGU7CisKKyAgIGZvciAobm90ZSA9IGxpc3Q7IG5vdGUgIT0gTlVMTDsgbm90ZSA9IG5vdGUtPm5leHQpCisgICAgICB3cml0ZV9wYXJ0KGZkLCBmaWxlbmFtZSwgQ09OU1RfQ0FTVCh2b2lkICosICZub3RlLT5uaGRyKSwKKyAgICAgICAgICAgICAgICAgbm90ZV9zaXplKG5vdGUpLCAibm90ZXMiKTsKK30KKworc3RhdGljIHZvaWQgZnJlZV9ub3Rlcyhub3RlX3QgKmxpc3QpCit7CisgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7CisgICAgICBub3RlX3QgKm5leHQgPSBsaXN0LT5uZXh0OworICAgICAgVkdfKGZyZWUpKGxpc3QpOworICAgICAgbGlzdCA9IG5leHQ7CisgICB9Cit9CisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyo9PT0gTWFpbiBjb3JlZHVtcCBmdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09PSovCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKwordm9pZCBWR18obWFrZV9jb3JlZHVtcCkoVGhyZWFkSWQgdGlkLCBjb25zdCB2a2lfc2lnaW5mb190ICpzaSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFVMb25nIG1heF9zaXplKQoreworICAgY29uc3QgSENoYXIgKmJhc2VuYW1lID0gInZnY29yZSI7CisgICBjb25zdCBIQ2hhciAqY29yZWV4dCA9ICIiOworICAgSW50IGNvcmVfZmQ7CisKKyAgIGlmIChWR18oY2xvX2xvZ19mbmFtZV9leHBhbmRlZCkgIT0gTlVMTCkgeworICAgICAgY29yZWV4dCA9ICIuY29yZSI7CisgICAgICBiYXNlbmFtZSA9IFZHXyhleHBhbmRfZmlsZV9uYW1lKSgiLS1sb2ctZmlsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWR18oY2xvX2xvZ19mbmFtZV9leHBhbmRlZCkpOworICAgfQorCisgICB2Z19hc3NlcnQoY29yZWV4dCAhPSBOVUxMKTsKKyAgIHZnX2Fzc2VydChiYXNlbmFtZSAhPSBOVUxMKTsKKworICAgVUludCBmaWxlbmFtZV9zaXplID0gVkdfKHN0cmxlbikoY29yZWV4dCkgKyBWR18oc3RybGVuKShiYXNlbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgMTAwOyAvKiBmb3IgdGhlIHR3byAlZCdzICovCisgICBIQ2hhciAqZmlsZW5hbWUgPSBWR18obWFsbG9jKSgiY29yZWR1bXAtZWxmLm1jLjEiLCBmaWxlbmFtZV9zaXplKTsKKworICAgLyogVHJ5IHRvIGNvbWUgd2l0aCBhIG5vbi1leGlzdGVudCBjb3JlZHVtcCBmaWxlbmFtZS4gKi8KKyAgIFVJbnQgc2VxID0gMDsKKyAgIGZvciAoOzspIHsKKyAgICAgIEludCBvZmxhZ3MgPSBWS0lfT19DUkVBVHxWS0lfT19XUk9OTFl8VktJX09fRVhDTHxWS0lfT19UUlVOQzsKKworICAgICAgaWYgKHNlcSA9PSAwKQorCSBWR18oc25wcmludGYpKGZpbGVuYW1lLCBmaWxlbmFtZV9zaXplLCAiJXMlcy4lZCIsCisJCSAgICAgIGJhc2VuYW1lLCBjb3JlZXh0LCBWR18oZ2V0cGlkKSgpKTsKKyAgICAgIGVsc2UKKwkgVkdfKHNucHJpbnRmKShmaWxlbmFtZSwgZmlsZW5hbWVfc2l6ZSwgIiVzJXMuJWQuJWQiLAorCQkgICAgICBiYXNlbmFtZSwgY29yZWV4dCwgVkdfKGdldHBpZCkoKSwgc2VxKTsKKyAgICAgIHNlcSsrOworCisjaWZkZWYgVktJX09fTEFSR0VGSUxFCisgICAgICBvZmxhZ3MgfD0gVktJX09fTEFSR0VGSUxFOworI2VuZGlmCisKKyAgICAgIFN5c1JlcyBzcmVzID0gVkdfKG9wZW4pKGZpbGVuYW1lLCBvZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS0lfU19JUlVTUnxWS0lfU19JV1VTUik7CisgICAgICBpZiAoIXNyX2lzRXJyb3Ioc3JlcykpIHsKKyAgICAgICAgIGNvcmVfZmQgPSBzcl9SZXMoc3Jlcyk7CisJIGJyZWFrOworICAgICAgfQorCisgICAgICBpZiAoc3JfaXNFcnJvcihzcmVzKSAmJiBzcl9FcnIoc3JlcykgIT0gVktJX0VFWElTVCkgeworICAgICAgICAgVkdfKHVtc2cpKCJDYW5ub3QgY3JlYXRlIGNvcmVkdW1wIGZpbGUgJXMgKCVsdSlcbiIsCisgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIHNyX0VycihzcmVzKSk7CisgICAgICAgICBWR18oZnJlZSkoZmlsZW5hbWUpOworCSByZXR1cm47CisgICAgICB9CisgICB9CisKKyAgIC8qIEdldCB0aGUgY2xpZW50IHNlZ21lbnRzLiBGcmVlIHNlZ19zdGFydHMgYWZ0ZXIgdXNlLiAqLworICAgSW50IG5fc2VnX3N0YXJ0czsKKyAgIEFkZHIgKnNlZ19zdGFydHMgPSBWR18oZ2V0X3NlZ21lbnRfc3RhcnRzKShTa0ZpbGVDIHwgU2tBbm9uQyB8IFNrU2htQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9zZWdfc3RhcnRzKTsKKworICAgLyogQ291bnQgaG93IG1hbnkgbWVtb3J5IHNlZ21lbnRzIHRvIGR1bXAuICovCisgICBJbnQgaTsKKyAgIFVJbnQgbnVtX3BoZHJzID0gMjsJCS8qIHR3byBDT1JFIG5vdGUgc2VjdGlvbnMgKi8KKyAgIGZvciAoaSA9IDA7IGkgPCBuX3NlZ19zdGFydHM7IGkrKykgeworICAgICAgaWYgKCFtYXlfZHVtcChWR18oYW1fZmluZF9uc2VnbWVudChzZWdfc3RhcnRzW2ldKSkpKQorCSBjb250aW51ZTsKKworICAgICAgbnVtX3BoZHJzKys7CisgICB9CisKKyAgIFZLSV9FU1ooRWhkcikgZWhkcjsKKyAgIGZpbGxfZWhkcigmZWhkciwgbnVtX3BoZHJzKTsKKworICAgVktJX0VTWihTaGRyKSBzaGRyOworICAgaWYgKGVoZHIuZV9zaG51bSA+IDApCisgICAgICBmaWxsX3plcm9fc2hkcigmc2hkciwgbnVtX3BoZHJzKTsKKyAgIFVJbnQgcGhkcnNfc2l6ZSA9IG51bV9waGRycyAqIGVoZHIuZV9waGVudHNpemU7CisKKyAgIC8qIENvbnN0cnVjdCB0aGUgb2xkLXN0eWxlIG5vdGVzLiAqLworICAgbm90ZV90ICpvbGRfbm90ZXMgPSBOVUxMOworCisgICB2a2lfZWxmX3BycHNpbmZvX3QgcHJwc2luZm87CisgICBmaWxsX3BycHNpbmZvKCZwcnBzaW5mbywgJlZHXyh0aHJlYWRzKVt0aWRdLCBzaSk7CisgICBhZGRfbm90ZSgmb2xkX25vdGVzLCBWS0lfTlRfUFJQU0lORk8sICZwcnBzaW5mbywKKyAgICAgICAgICAgIHNpemVvZih2a2lfZWxmX3BycHNpbmZvX3QpKTsKKworICAgSENoYXIgcGxhdGZvcm1bMjU2ICsgMV07CisgICBmaWxsX3BsYXRmb3JtKHBsYXRmb3JtLCBzaXplb2YocGxhdGZvcm0pKTsKKyAgIGFkZF9ub3RlKCZvbGRfbm90ZXMsIFZLSV9OVF9QTEFURk9STSwgcGxhdGZvcm0sCisgICAgICAgICAgICBWR18oc3RybGVuKShwbGF0Zm9ybSkgKyAxKTsKKworICAgYWRkX25vdGUoJm9sZF9ub3RlcywgVktJX05UX0FVWFYsIFZHXyhjbGllbnRfYXV4diksCisgICAgICAgICAgICBjb3VudF9hdXh2KCkgKiBzaXplb2YoYXV4dl90KSk7CisKKyAgIC8qIEFkZCBkZXRhaWwgYWJvdXQgdGhlIGZhdWx0aW5nIHRocmVhZCBhcyB0aGUgZmlyc3Qgbm90ZS4KKyAgICAgIFRoaXMgaXMgaG93IGdkYiBkZXRlcm1pbmVzIHdoaWNoIHRocmVhZCBmYXVsdGVkLiBOb3RlIHRoYXQKKyAgICAgIG1kYiBkb2VzIG5vdCBuZWVkIHN1Y2ggYWlkLiAqLworICAgZmlsbF9vbGRfbm90ZV9mb3JfdGhyZWFkKCZvbGRfbm90ZXMsICZWR18odGhyZWFkcylbdGlkXSwgc2kpOworCisgICAvKiBOb3cgYWRkIGRldGFpbHMgZm9yIGFsbCB0aHJlYWRzIGV4Y2VwdCB0aGUgb25lIHRoYXQgZmF1bHRlZC4gKi8KKyAgIFRocmVhZElkIHRfaWR4OworICAgZm9yICh0X2lkeCA9IDE7IHRfaWR4IDwgVkdfTl9USFJFQURTOyB0X2lkeCsrKQorICAgICAgaWYgKChWR18odGhyZWFkcylbdF9pZHhdLnN0YXR1cyAhPSBWZ1RzX0VtcHR5KSAmJgorICAgICAgICAgICAgKFZHXyh0aHJlYWRzKVt0X2lkeF0uc3RhdHVzICE9IFZnVHNfWm9tYmllKSkgeworICAgICAgICAgaWYgKHRfaWR4ID09IHRpZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICBmaWxsX29sZF9ub3RlX2Zvcl90aHJlYWQoJm9sZF9ub3RlcywgJlZHXyh0aHJlYWRzKVt0X2lkeF0sIHNpKTsKKyAgIH0KKworICAgLyogQ29uc3RydWN0IHRoZSBuZXctc3R5bGUgbm90ZXMuICovCisgICBub3RlX3QgKm5ld19ub3RlcyA9IE5VTEw7CisgICB2a2lfcHNpbmZvX3QgcHNpbmZvOworICAgZmlsbF9wc2luZm8oJnBzaW5mbywgJlZHXyh0aHJlYWRzKVt0aWRdLCBzaSk7CisgICBhZGRfbm90ZSgmbmV3X25vdGVzLCBWS0lfTlRfUFNJTkZPLCAmcHNpbmZvLCBzaXplb2YodmtpX3BzaW5mb190KSk7CisKKyAgIHZraV9wc3RhdHVzX3QgcHN0YXR1czsKKyAgIGZpbGxfcHN0YXR1cygmcHN0YXR1cywgJlZHXyh0aHJlYWRzKVt0aWRdLCBzaSk7CisgICBhZGRfbm90ZSgmbmV3X25vdGVzLCBWS0lfTlRfUFNUQVRVUywgJnBzdGF0dXMsIHNpemVvZih2a2lfcHN0YXR1c190KSk7CisKKyAgIGFkZF9ub3RlKCZuZXdfbm90ZXMsIFZLSV9OVF9QTEFURk9STSwgcGxhdGZvcm0sCisgICAgICAgICAgICBWR18oc3RybGVuKShwbGF0Zm9ybSkgKyAxKTsKKworICAgYWRkX25vdGUoJm5ld19ub3RlcywgVktJX05UX0FVWFYsIFZHXyhjbGllbnRfYXV4diksCisgICAgICAgICAgICBjb3VudF9hdXh2KCkgKiBzaXplb2YoYXV4dl90KSk7CisKKyAgIHN0cnVjdCB2a2lfdXRzbmFtZSB1dHM7CisgICBmaWxsX3V0c25hbWUoJnV0cyk7CisgICBhZGRfbm90ZSgmbmV3X25vdGVzLCBWS0lfTlRfVVRTTkFNRSwgJnV0cywKKyAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmtpX3V0c25hbWUpKTsKKworICAgU2l6ZVQgcHJjcmVkX3NpemU7CisgICB2a2lfcHJjcmVkX3QgKnByY3JlZCA9IGNyZWF0ZV9wcmNyZWQoJnByY3JlZF9zaXplKTsKKyAgIGlmIChwcmNyZWQgIT0gTlVMTCkgeworICAgICAgYWRkX25vdGUoJm5ld19ub3RlcywgVktJX05UX1BSQ1JFRCwgcHJjcmVkLCBwcmNyZWRfc2l6ZSk7CisgICAgICBWR18oZnJlZSkocHJjcmVkKTsKKyAgIH0KKworICAgdmtpX2NvcmVfY29udGVudF90IGNvcmVfY29udGVudDsKKyAgIGZpbGxfY29yZV9jb250ZW50KCZjb3JlX2NvbnRlbnQpOworICAgYWRkX25vdGUoJm5ld19ub3RlcywgVktJX05UX0NPTlRFTlQsICZjb3JlX2NvbnRlbnQsCisgICAgICAgICAgICBzaXplb2YodmtpX2NvcmVfY29udGVudF90KSk7CisKKyAgIFNpemVUIHByaXZfc2l6ZTsKKyAgIHZraV9wcnByaXZfdCAqcHJwcml2ID0gY3JlYXRlX3BycHJpdigmcHJpdl9zaXplKTsKKyAgIGlmIChwcnByaXYgIT0gTlVMTCkgeworICAgICAgYWRkX25vdGUoJm5ld19ub3RlcywgVktJX05UX1BSUFJJViwgcHJwcml2LCBwcml2X3NpemUpOworICAgICAgVkdfKGZyZWUpKHBycHJpdik7CisgICB9CisKKyAgIHZraV9wcml2X2ltcGxfaW5mb190ICpwcml2X2luZm8gPSBjcmVhdGVfcHJpdl9pbmZvKCZwcml2X3NpemUpOworICAgaWYgKHByaXZfaW5mbyAhPSBOVUxMKSB7CisgICAgICBhZGRfbm90ZSgmbmV3X25vdGVzLCBWS0lfTlRfUFJQUklWSU5GTywgcHJpdl9pbmZvLCBwcml2X3NpemUpOworICAgICAgVkdfKGZyZWUpKHByaXZfaW5mbyk7CisgICB9CisKKyAgIEhDaGFyIHpvbmVuYW1lW1ZLSV9aT05FTkFNRV9NQVggKyAxXTsKKyAgIGZpbGxfem9uZW5hbWUoem9uZW5hbWUsIHNpemVvZih6b25lbmFtZSkpOworICAgYWRkX25vdGUoJm5ld19ub3RlcywgVktJX05UX1pPTkVOQU1FLCB6b25lbmFtZSwKKyAgICAgICAgICAgIFZHXyhzdHJsZW4pKHpvbmVuYW1lKSArIDEpOworCisgICAvKiBBZGQgZGV0YWlsIGFib3V0IHRoZSBmYXVsdGluZyB0aHJlYWQgYXMgdGhlIGZpcnN0IG5vdGUuCisgICAgICBUaGlzIGlzIGhvdyBnZGIgZGV0ZXJtaW5lcyB3aGljaCB0aHJlYWQgZmF1bHRlZC4gTm90ZSB0aGF0CisgICAgICBtZGIgZG9lcyBub3QgbmVlZCBzdWNoIGFpZC4gKi8KKyAgIGZpbGxfbmV3X25vdGVfZm9yX3RocmVhZCgmbmV3X25vdGVzLCAmVkdfKHRocmVhZHMpW3RpZF0sIHNpKTsKKworICAgLyogTm93IGFkZCBkZXRhaWxzIGZvciBhbGwgdGhyZWFkcyBleGNlcHQgdGhlIG9uZSB0aGF0IGZhdWx0ZWQuICovCisgICBmb3IgKHRfaWR4ID0gMTsgdF9pZHggPCBWR19OX1RIUkVBRFM7IHRfaWR4KyspIHsKKyAgICAgIGlmICgoVkdfKHRocmVhZHMpW3RfaWR4XS5zdGF0dXMgIT0gVmdUc19FbXB0eSkgJiYKKyAgICAgICAgICAgIChWR18odGhyZWFkcylbdF9pZHhdLnN0YXR1cyAhPSBWZ1RzX1pvbWJpZSkpIHsKKyAgICAgICAgIGlmICh0X2lkeCA9PSB0aWQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgZmlsbF9uZXdfbm90ZV9mb3JfdGhyZWFkKCZuZXdfbm90ZXMsICZWR18odGhyZWFkcylbdF9pZHhdLCBzaSk7CisgICAgICB9CisgICB9CisKKyAgIFZLSV9FU1ooUGhkcikgKnBoZHJzID0gVkdfKG1hbGxvYykoImNvcmVkdW1wLWVsZi5tYy4yIiwgcGhkcnNfc2l6ZSk7CisKKyAgIFVJbnQgc2l6ZV9vZl9ub3RlcyA9IG5vdGVzX3NpemUob2xkX25vdGVzKTsKKyAgIFVJbnQgb2Zmc2V0ID0gZWhkci5lX2Voc2l6ZSArIHBoZHJzX3NpemUgKworICAgICAgICAgICAgICAgICAoZWhkci5lX3NobnVtICogZWhkci5lX3NoZW50c2l6ZSk7CisKKyAgIC8qIGZpbGwgcHJvZ3JhbSBoZWFkZXIgZm9yIG9sZCBub3RlcyAqLworICAgZmlsbF9ub3Rlc19waGRyKCZwaGRyc1swXSwgb2Zmc2V0LCBzaXplX29mX25vdGVzKTsKKyAgIG9mZnNldCArPSBzaXplX29mX25vdGVzOworCisgICBzaXplX29mX25vdGVzID0gbm90ZXNfc2l6ZShuZXdfbm90ZXMpOworICAgLyogZmlsbCBwcm9ncmFtIGhlYWRlciBmb3IgbmV3IG5vdGVzICovCisgICBmaWxsX25vdGVzX3BoZHIoJnBoZHJzWzFdLCBvZmZzZXQsIHNpemVfb2Zfbm90ZXMpOworICAgb2Zmc2V0ICs9IHNpemVfb2Zfbm90ZXM7CisKKyAgIC8qIGZpbGwgcHJvZ3JhbSBoZWFkZXJzIGZvciBzZWdtZW50cyAqLworICAgVUludCBpZHg7CisgICBmb3IgKGkgPSAwLCBpZHggPSAyOyBpIDwgbl9zZWdfc3RhcnRzOyBpKyspIHsKKyAgICAgIE5TZWdtZW50IGNvbnN0ICpzZWcgPSBWR18oYW1fZmluZF9uc2VnbWVudChzZWdfc3RhcnRzW2ldKSk7CisKKyAgICAgIGlmICghbWF5X2R1bXAoc2VnKSkKKwkgY29udGludWU7CisKKyAgICAgIGZpbGxfcGhkcigmcGhkcnNbaWR4XSwgc2VnLCBvZmZzZXQsCisgICAgICAgICAgICAgICAgKHNlZy0+ZW5kIC0gc2VnLT5zdGFydCArIDEgKyBvZmZzZXQpIDwgbWF4X3NpemUpOworICAgICAgCisgICAgICBvZmZzZXQgKz0gcGhkcnNbaWR4XS5wX2ZpbGVzejsKKworICAgICAgaWR4Kys7CisgICB9CisKKyAgIC8qIHdyaXRlIGV2ZXJ5dGhpbmcgb3V0ICovCisgICB3cml0ZV9wYXJ0KGNvcmVfZmQsIGZpbGVuYW1lLCAmZWhkciwgc2l6ZW9mKGVoZHIpLAorICAgICAgICAgICAgICJlbGYgaGVhZGVycyIpOworICAgd3JpdGVfcGFydChjb3JlX2ZkLCBmaWxlbmFtZSwgcGhkcnMsIHBoZHJzX3NpemUsCisgICAgICAgICAgICAgICJwcm9ncmFtIGhlYWRlcnMiKTsKKyAgIGlmIChlaGRyLmVfc2hudW0gPiAwKQorICAgICAgd3JpdGVfcGFydChjb3JlX2ZkLCBmaWxlbmFtZSwgJnNoZHIsIHNpemVvZihzaGRyKSwKKyAgICAgICAgICAgICAgICAgInNlY3Rpb24gaGVhZGVycyIpOworICAgd3JpdGVfbm90ZXMoY29yZV9mZCwgZmlsZW5hbWUsIG9sZF9ub3Rlcyk7CisgICB3cml0ZV9ub3Rlcyhjb3JlX2ZkLCBmaWxlbmFtZSwgbmV3X25vdGVzKTsKKworICAgVkdfKGxzZWVrKShjb3JlX2ZkLCBwaGRyc1syXS5wX29mZnNldCwgVktJX1NFRUtfU0VUKTsKKworICAgZm9yIChpID0gMCwgaWR4ID0gMjsgaSA8IG5fc2VnX3N0YXJ0czsgaSsrKSB7CisgICAgICBOU2VnbWVudCBjb25zdCAqc2VnID0gVkdfKGFtX2ZpbmRfbnNlZ21lbnQoc2VnX3N0YXJ0c1tpXSkpOworCisgICAgICBpZiAoIXNob3VsZF9kdW1wKHNlZykpCisJIGNvbnRpbnVlOworCisgICAgICBpZiAocGhkcnNbaWR4XS5wX2ZpbGVzeiA+IDApIHsKKyAgICAgICAgIE9mZjY0VCBvZmYgPSBWR18obHNlZWspKGNvcmVfZmQsIHBoZHJzW2lkeF0ucF9vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS0lfU0VFS19TRVQpOworICAgICAgICAgdmdfYXNzZXJ0KG9mZiA9PSBwaGRyc1tpZHhdLnBfb2Zmc2V0KTsKKyAgICAgICAgIHZnX2Fzc2VydChzZWctPmVuZCAtIHNlZy0+c3RhcnQgKyAxID49IHBoZHJzW2lkeF0ucF9maWxlc3opOworCisgICAgICAgICB3cml0ZV9wYXJ0KGNvcmVfZmQsIGZpbGVuYW1lLCAodm9pZCAqKSBzZWctPnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICBwaGRyc1tpZHhdLnBfZmlsZXN6LCAicHJvZ3JhbSBzZWdtZW50Iik7CisgICAgICB9CisgICAgICBpZHgrKzsKKyAgIH0KKworICAgVkdfKGNsb3NlKShjb3JlX2ZkKTsKKyAgIFZHXyhmcmVlKShmaWxlbmFtZSk7CisgICBWR18oZnJlZSkocGhkcnMpOworICAgZnJlZV9ub3RlcyhvbGRfbm90ZXMpOworICAgZnJlZV9ub3RlcyhuZXdfbm90ZXMpOworICAgVkdfKGZyZWUpKHNlZ19zdGFydHMpOworfQorCisjZW5kaWYKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fY3B1aWQuUyBiL2NvcmVncmluZC9tX2NwdWlkLlMKaW5kZXggMTQ3M2NhZC4uOWJhNzVlYyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fY3B1aWQuUworKysgYi9jb3JlZ3JpbmQvbV9jcHVpZC5TCkBAIC03LDcgKzcsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE1MSwxMCArMTUxLDggQEAKICAgICAgICAgcmV0CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpCiAvKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLwotLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotI2VuZGlmCitNQVJLX1NUQUNLX05PX0VYRUMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2RlYnVnZ2VyLmMgYi9jb3JlZ3JpbmQvbV9kZWJ1Z2dlci5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTgyZGIwLi4wMDAwMDAwCi0tLSBhL2NvcmVncmluZC9tX2RlYnVnZ2VyLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1NTkgKzAsMCBAQAotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLS8qLS0tIEF0dGFjaGluZyBhIGRlYnVnZ2VyLiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGVidWdnZXIuYyAtLS0qLwotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLS8qCi0gICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KLSAgIGZyYW1ld29yay4KLQotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKLSAgICAgIGpzZXdhcmRAYWNtLm9yZwotCi0gICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCi0gICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0gICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCi0gICAwMjExMS0xMzA3LCBVU0EuCi0KLSAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KLSovCi0KLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIKLSNpbmNsdWRlICJwdWJfY29yZV92a2kuaCIKLSNpbmNsdWRlICJwdWJfY29yZV90aHJlYWRzdGF0ZS5oIgotI2luY2x1ZGUgInB1Yl9jb3JlX3hhcnJheS5oIgotI2luY2x1ZGUgInB1Yl9jb3JlX2NsaWVudHN0YXRlLmgiCi0jaW5jbHVkZSAicHViX2NvcmVfZGVidWdnZXIuaCIKLSNpbmNsdWRlICJwdWJfY29yZV9nZGJzZXJ2ZXIuaCIKLSNpbmNsdWRlICJwdWJfY29yZV9saWJjYmFzZS5oIgotI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNwcmludC5oIgotI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNwcm9jLmgiCi0jaW5jbHVkZSAicHViX2NvcmVfbGliY3NpZ25hbC5oIgotI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNhc3NlcnQuaCIKLSNpbmNsdWRlICJwdWJfY29yZV9vcHRpb25zLmgiCi0KLQotI2RlZmluZSBXSUZTVE9QUEVEKHN0YXR1cykgKCgoc3RhdHVzKSAmIDB4ZmYpID09IDB4N2YpCi0jZGVmaW5lIFdTVE9QU0lHKHN0YXR1cykgKCgoc3RhdHVzKSAmIDB4ZmYwMCkgPj4gOCkKLQotc3RhdGljIEludCBwdHJhY2Vfc2V0cmVncyhJbnQgcGlkLCBjb25zdCBWZXhHdWVzdEFyY2hTdGF0ZSogdmV4KQotewotI2lmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkKLSAgIHN0cnVjdCB2a2lfdXNlcl9yZWdzX3N0cnVjdCByZWdzOwotICAgVkdfKG1lbXNldCkoJnJlZ3MsIDAsIHNpemVvZihyZWdzKSk7Ci0gICByZWdzLmNzICAgICA9IHZleC0+Z3Vlc3RfQ1M7Ci0gICByZWdzLnNzICAgICA9IHZleC0+Z3Vlc3RfU1M7Ci0gICByZWdzLmRzICAgICA9IHZleC0+Z3Vlc3RfRFM7Ci0gICByZWdzLmVzICAgICA9IHZleC0+Z3Vlc3RfRVM7Ci0gICByZWdzLmZzICAgICA9IHZleC0+Z3Vlc3RfRlM7Ci0gICByZWdzLmdzICAgICA9IHZleC0+Z3Vlc3RfR1M7Ci0gICByZWdzLmVheCAgICA9IHZleC0+Z3Vlc3RfRUFYOwotICAgcmVncy5lYnggICAgPSB2ZXgtPmd1ZXN0X0VCWDsKLSAgIHJlZ3MuZWN4ICAgID0gdmV4LT5ndWVzdF9FQ1g7Ci0gICByZWdzLmVkeCAgICA9IHZleC0+Z3Vlc3RfRURYOwotICAgcmVncy5lc2kgICAgPSB2ZXgtPmd1ZXN0X0VTSTsKLSAgIHJlZ3MuZWRpICAgID0gdmV4LT5ndWVzdF9FREk7Ci0gICByZWdzLmVicCAgICA9IHZleC0+Z3Vlc3RfRUJQOwotICAgcmVncy5lc3AgICAgPSB2ZXgtPmd1ZXN0X0VTUDsKLSAgIHJlZ3MuZWZsYWdzID0gTGliVkVYX0d1ZXN0WDg2X2dldF9lZmxhZ3ModmV4KTsKLSAgIHJlZ3MuZWlwICAgID0gdmV4LT5ndWVzdF9FSVA7Ci0gICByZXR1cm4gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9TRVRSRUdTLCBwaWQsIE5VTEwsICZyZWdzKTsKLQotI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpCi0gICBzdHJ1Y3QgdmtpX3VzZXJfcmVnc19zdHJ1Y3QgcmVnczsKLSAgIFZHXyhtZW1zZXQpKCZyZWdzLCAwLCBzaXplb2YocmVncykpOwotICAgcmVncy5yYXggICAgPSB2ZXgtPmd1ZXN0X1JBWDsKLSAgIHJlZ3MucmJ4ICAgID0gdmV4LT5ndWVzdF9SQlg7Ci0gICByZWdzLnJjeCAgICA9IHZleC0+Z3Vlc3RfUkNYOwotICAgcmVncy5yZHggICAgPSB2ZXgtPmd1ZXN0X1JEWDsKLSAgIHJlZ3MucnNpICAgID0gdmV4LT5ndWVzdF9SU0k7Ci0gICByZWdzLnJkaSAgICA9IHZleC0+Z3Vlc3RfUkRJOwotICAgcmVncy5yYnAgICAgPSB2ZXgtPmd1ZXN0X1JCUDsKLSAgIHJlZ3MucnNwICAgID0gdmV4LT5ndWVzdF9SU1A7Ci0gICByZWdzLnI4ICAgICA9IHZleC0+Z3Vlc3RfUjg7Ci0gICByZWdzLnI5ICAgICA9IHZleC0+Z3Vlc3RfUjk7Ci0gICByZWdzLnIxMCAgICA9IHZleC0+Z3Vlc3RfUjEwOwotICAgcmVncy5yMTEgICAgPSB2ZXgtPmd1ZXN0X1IxMTsKLSAgIHJlZ3MucjEyICAgID0gdmV4LT5ndWVzdF9SMTI7Ci0gICByZWdzLnIxMyAgICA9IHZleC0+Z3Vlc3RfUjEzOwotICAgcmVncy5yMTQgICAgPSB2ZXgtPmd1ZXN0X1IxNDsKLSAgIHJlZ3MucjE1ICAgID0gdmV4LT5ndWVzdF9SMTU7Ci0gICByZWdzLmVmbGFncyA9IExpYlZFWF9HdWVzdEFNRDY0X2dldF9yZmxhZ3ModmV4KTsKLSAgIHJlZ3MucmlwICAgID0gdmV4LT5ndWVzdF9SSVA7Ci0gICAvKiBTZXQgJXtjLGQsZSxmLHMsZ31zIGFuZCAle2ZzLGdzfV9iYXNlICh3aGF0ZXZlciB0aG9zZSBhcmUpIHRvCi0gICAgICB2YWx1ZXMgd2hpY2ggZG9uJ3QgZmFpbCB0aGUga2VybmVsJ3Mgc2FuaXR5IGNoZWNrcy4gIEkgaGF2ZSBubwotICAgICAgaWRlYSB3aGF0IHRoZXNlIHNob3VsZCByZWFsbHkgYmUgc2V0IHRvLiAgQW55d2F5LCBtb3N0bHkgaXQKLSAgICAgIHNlZW1zIHRoYXQgemVybyBpcyBhbiBhbGxvd2FibGUgdmFsdWUsIGV4Y2VwdCBmb3IgJWNzIGFuZCAlc3MKLSAgICAgIHdoaWNoIGhhdmUgdG8gaGF2ZSB0aGVpciBsb3dlc3QgMiBiaXRzIGJlIDExLiAgU2VlIHB1dHJlZygpIGluCi0gICAgICBsaW51eC0yLjYuMjMvYXJjaC94ODZfNjQva2VybmVsL3B0cmFjZS5jIGZvciB0aGUgYXBwYXJlbnRseQotICAgICAgcmVsZXZhbnQgc2FuaXR5IGNoZWNrcy4gIFRoaXMgZml4ZXMgIzE0NTYyMi4gKi8KLSAgIHJlZ3MuY3MgICAgICA9IDM7Ci0gICByZWdzLmRzICAgICAgPSAwOwotICAgcmVncy5lcyAgICAgID0gMDsKLSAgIHJlZ3MuZnMgICAgICA9IDA7Ci0gICByZWdzLnNzICAgICAgPSAzOwotICAgcmVncy5ncyAgICAgID0gMDsKLSAgIHJlZ3MuZnNfYmFzZSA9IDA7Ci0gICByZWdzLmdzX2Jhc2UgPSAwOwotICAgcmV0dXJuIFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfU0VUUkVHUywgcGlkLCBOVUxMLCAmcmVncyk7Ci0KLSNlbGlmIGRlZmluZWQoVkdQX3BwYzMyX2xpbnV4KQotICAgSW50IHJjID0gMDsKLSAgIC8qIGFwcGFyZW50bHkgdGhlIGNhc3RpbmcgdG8gdm9pZCogaXMgdGhlIFJpZ2h0IFRoaW5nIFRvIERvICovCi0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjAgICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjApOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxICAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxKTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMiAgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMik7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjMgICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjMpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1I0ICAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFI0KTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SNSAgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSNSk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjYgICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjYpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1I3ICAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFI3KTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SOCAgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSOCk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjkgICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjkpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxMCAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxMCk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjExICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjExKTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMTIgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMTIpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxMyAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxMyk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjE0ICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjE0KTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMTUgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMTUpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxNiAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxNik7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjE3ICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjE3KTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMTggKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMTgpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxOSAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxOSk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjIwICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjIwKTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMjEgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMjEpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyMiAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyMik7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjIzICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjIzKTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMjQgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMjQpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyNSAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyNSk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjI2ICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjI2KTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMjcgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMjcpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyOCAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyOCk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjI5ICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjI5KTsKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMzAgKiA0KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMzApOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IzMSAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIzMSk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfTklQICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0NJQSk7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfQ0NSICogNCksCi0gICAgICAgICAgICAgICAgICAgICAodm9pZCopTGliVkVYX0d1ZXN0UFBDMzJfZ2V0X0NSKHZleCkpOwotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX0xOSyAqIDQpLCAodm9pZCopdmV4LT5ndWVzdF9MUik7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfQ1RSICogNCksICh2b2lkKil2ZXgtPmd1ZXN0X0NUUik7Ci0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfWEVSICogNCksCi0gICAgICAgICAgICAgICAgICAgICAodm9pZCopTGliVkVYX0d1ZXN0UFBDMzJfZ2V0X1hFUih2ZXgpKTsKLSAgIHJldHVybiByYzsKLQotI2VsaWYgZGVmaW5lZChWR1BfcHBjNjRiZV9saW51eCkgfHwgZGVmaW5lZChWR1BfcHBjNjRsZV9saW51eCkKLSAgIEludCByYyA9IDA7IAotICAgLyogRlJKOiBjb3BpZWQgbmVhcmx5IHZlcmJhdGltIGZyb20gdGhlIHBwYzMyIGNhc2UuIEkgY29tcGFyZWQgdGhlIAotICAgICAgdmtpLXBwYzY0LWxpbnV4Lmggd2l0aCBpdHMgcHBjMzIgY291bnRlcnBhcnQgYW5kIHNhdyBubyAKLSAgICAgIGFwcHJlY2lhYmxlIGRpZmZlcmVuY2VzLCBvdGhlciB0aGFuIHRoZSByZWdpc3RlcnMgYmVpbmcgOCBieXRlcyAKLSAgICAgIGluc3RlYWQgb2YgNC4gTm8gaWRlYSB3aHkgd2UgZG9uJ3Qgc2V0IGFsbCBvZiB0aGUgZW50cmllcyAKLSAgICAgIGRlY2xhcmVkIGluIHZraV9wdF9yZWdzLCBidXQgcHBjMzIgZG9lc24ndCBzbyB0aGVyZSBtdXN0IGJlIGEgCi0gICAgICByZWFzb24uIAotIAotICAgICAgRmluYWxseSwgbm90ZSB0aGF0IENSIGFuZCBYRVIgYXJlIDMyIGJpdHMgZXZlbiBmb3IgcHBjNjQgKHNlZSAKLSAgICAgIGxpYnZleF9ndWVzdF9wcGM2NC5oKSwgYnV0IHRoZSB2a2lfcHRfcmVncyBzdHJ1Y3Qgc3RpbGwgZ2l2ZXMgCi0gICAgICB0aGVtIDY0IGJpdHMuIAotICAgKi8gCi0gICAvKiBhcHBhcmVudGx5IHRoZSBjYXN0aW5nIHRvIHZvaWQqIGlzIHRoZSBSaWdodCBUaGluZyBUbyBEbyAqLyAKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMCAgKiA4KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMCk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxICAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxKTsgCi0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjIgICogOCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjIpOyAKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SMyAgKiA4KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSMyk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1I0ICAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFI0KTsgCi0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjUgICogOCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjUpOyAKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SNiAgKiA4KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSNik7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1I3ICAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFI3KTsgCi0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfUjggICogOCksICh2b2lkKil2ZXgtPmd1ZXN0X0dQUjgpOyAKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9SOSAgKiA4KSwgKHZvaWQqKXZleC0+Z3Vlc3RfR1BSOSk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxMCAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxMCk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxMSAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxMSk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxMiAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxMik7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxMyAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxMyk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxNCAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxNCk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxNSAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxNSk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxNiAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxNik7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxNyAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxNyk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxOCAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxOCk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IxOSAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIxOSk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyMCAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyMCk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyMSAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyMSk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyMiAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyMik7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyMyAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyMyk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyNCAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyNCk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyNSAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyNSk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyNiAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyNik7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyNyAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyNyk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyOCAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyOCk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IyOSAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIyOSk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IzMCAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIzMCk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1IzMSAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9HUFIzMSk7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX05JUCAqIDgpLCAodm9pZCopdmV4LT5ndWVzdF9DSUEpOyAKLSAgIHJjIHw9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfUE9LRVVTUiwgcGlkLCAodm9pZCopKFZLSV9QVF9DQ1IgKiA4KSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKShsb25nKUxpYlZFWF9HdWVzdFBQQzY0X2dldF9DUih2ZXgpKTsgCi0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfTE5LICogOCksICh2b2lkKil2ZXgtPmd1ZXN0X0xSKTsgCi0gICByYyB8PSBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1IsIHBpZCwgKHZvaWQqKShWS0lfUFRfQ1RSICogOCksICh2b2lkKil2ZXgtPmd1ZXN0X0NUUik7IAotICAgcmMgfD0gVkdfKHB0cmFjZSkoVktJX1BUUkFDRV9QT0tFVVNSLCBwaWQsICh2b2lkKikoVktJX1BUX1hFUiAqIDgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopKGxvbmcpTGliVkVYX0d1ZXN0UFBDNjRfZ2V0X1hFUih2ZXgpKTsgCi0gICByZXR1cm4gcmM7IAotCi0jZWxpZiBkZWZpbmVkKFZHUF9hcm1fbGludXgpCi0gICBzdHJ1Y3QgdmtpX3VzZXJfcmVnc19zdHJ1Y3QgdXJlZ3M7Ci0gICBWR18obWVtc2V0KSgmdXJlZ3MsIDAsIHNpemVvZih1cmVncykpOwotICAgdXJlZ3MuQVJNX3IwICAgPSB2ZXgtPmd1ZXN0X1IwOyAKLSAgIHVyZWdzLkFSTV9yMSAgID0gdmV4LT5ndWVzdF9SMTsgCi0gICB1cmVncy5BUk1fcjIgICA9IHZleC0+Z3Vlc3RfUjI7IAotICAgdXJlZ3MuQVJNX3IzICAgPSB2ZXgtPmd1ZXN0X1IzOyAKLSAgIHVyZWdzLkFSTV9yNCAgID0gdmV4LT5ndWVzdF9SNDsgCi0gICB1cmVncy5BUk1fcjUgICA9IHZleC0+Z3Vlc3RfUjU7IAotICAgdXJlZ3MuQVJNX3I2ICAgPSB2ZXgtPmd1ZXN0X1I2OyAKLSAgIHVyZWdzLkFSTV9yNyAgID0gdmV4LT5ndWVzdF9SNzsgCi0gICB1cmVncy5BUk1fcjggICA9IHZleC0+Z3Vlc3RfUjg7IAotICAgdXJlZ3MuQVJNX3I5ICAgPSB2ZXgtPmd1ZXN0X1I5OyAKLSAgIHVyZWdzLkFSTV9yMTAgID0gdmV4LT5ndWVzdF9SMTA7IAotICAgdXJlZ3MuQVJNX2ZwICAgPSB2ZXgtPmd1ZXN0X1IxMTsgCi0gICB1cmVncy5BUk1faXAgICA9IHZleC0+Z3Vlc3RfUjEyOyAKLSAgIHVyZWdzLkFSTV9zcCAgID0gdmV4LT5ndWVzdF9SMTM7IAotICAgdXJlZ3MuQVJNX2xyICAgPSB2ZXgtPmd1ZXN0X1IxNDsgCi0gICAvLyBSZW1vdmUgdGhlIFQgYml0IGZyb20gdGhlIGJvdHRvbSBvZiBSMTVULiAgSXQgd2lsbCBnZXQgc2hpcHBlZAotICAgLy8gb3ZlciBpbiBDUFNSLlQgaW5zdGVhZCwgc2luY2UgTGliVkVYX0d1ZXN0QVJNX2dldF9jcHNyIGNvcGllcwotICAgLy8gaXQgZnJvbSBSMTVUWzBdLgotICAgdXJlZ3MuQVJNX3BjICAgPSB2ZXgtPmd1ZXN0X1IxNVQgJiAweEZGRkZGRkZFOwotICAgdXJlZ3MuQVJNX2Nwc3IgPSBMaWJWRVhfR3Vlc3RBUk1fZ2V0X2Nwc3IodmV4KTsKLSAgIHJldHVybiBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1NFVFJFR1MsIHBpZCwgTlVMTCwgJnVyZWdzKTsKLQotI2VsaWYgZGVmaW5lZChWR1BfYXJtNjRfbGludXgpCi0gICBJX2RpZV9oZXJlOwotICAgLy9BVEMKLSAgIHN0cnVjdCB2a2lfdXNlcl9wdF9yZWdzIHVyZWdzOwotICAgVkdfKG1lbXNldCkoJnVyZWdzLCAwLCBzaXplb2YodXJlZ3MpKTsKLSAgIHVyZWdzLnJlZ3NbMF0gID0gdmV4LT5ndWVzdF9YMDsKLSAgIHVyZWdzLnJlZ3NbMV0gID0gdmV4LT5ndWVzdF9YMTsKLSAgIHVyZWdzLnJlZ3NbMl0gID0gdmV4LT5ndWVzdF9YMjsKLSAgIHVyZWdzLnJlZ3NbM10gID0gdmV4LT5ndWVzdF9YMzsKLSAgIHVyZWdzLnJlZ3NbNF0gID0gdmV4LT5ndWVzdF9YNDsKLSAgIHVyZWdzLnJlZ3NbNV0gID0gdmV4LT5ndWVzdF9YNTsKLSAgIHVyZWdzLnJlZ3NbNl0gID0gdmV4LT5ndWVzdF9YNjsKLSAgIHVyZWdzLnJlZ3NbN10gID0gdmV4LT5ndWVzdF9YNzsKLSAgIHVyZWdzLnJlZ3NbOF0gID0gdmV4LT5ndWVzdF9YODsKLSAgIHVyZWdzLnJlZ3NbOV0gID0gdmV4LT5ndWVzdF9YOTsKLSAgIHVyZWdzLnJlZ3NbMTBdID0gdmV4LT5ndWVzdF9YMTA7Ci0gICB1cmVncy5yZWdzWzExXSA9IHZleC0+Z3Vlc3RfWDExOwotICAgdXJlZ3MucmVnc1sxMl0gPSB2ZXgtPmd1ZXN0X1gxMjsKLSAgIHVyZWdzLnJlZ3NbMTNdID0gdmV4LT5ndWVzdF9YMTM7Ci0gICB1cmVncy5yZWdzWzE0XSA9IHZleC0+Z3Vlc3RfWDE0OwotICAgdXJlZ3MucmVnc1sxNV0gPSB2ZXgtPmd1ZXN0X1gxNTsKLSAgIHVyZWdzLnJlZ3NbMTZdID0gdmV4LT5ndWVzdF9YMTY7Ci0gICB1cmVncy5yZWdzWzE3XSA9IHZleC0+Z3Vlc3RfWDE3OwotICAgdXJlZ3MucmVnc1sxOF0gPSB2ZXgtPmd1ZXN0X1gxODsKLSAgIHVyZWdzLnJlZ3NbMTldID0gdmV4LT5ndWVzdF9YMTk7Ci0gICB1cmVncy5yZWdzWzIwXSA9IHZleC0+Z3Vlc3RfWDIwOwotICAgdXJlZ3MucmVnc1syMV0gPSB2ZXgtPmd1ZXN0X1gyMTsKLSAgIHVyZWdzLnJlZ3NbMjJdID0gdmV4LT5ndWVzdF9YMjI7Ci0gICB1cmVncy5yZWdzWzIzXSA9IHZleC0+Z3Vlc3RfWDIzOwotICAgdXJlZ3MucmVnc1syNF0gPSB2ZXgtPmd1ZXN0X1gyNDsKLSAgIHVyZWdzLnJlZ3NbMjVdID0gdmV4LT5ndWVzdF9YMjU7Ci0gICB1cmVncy5yZWdzWzI2XSA9IHZleC0+Z3Vlc3RfWDI2OwotICAgdXJlZ3MucmVnc1syN10gPSB2ZXgtPmd1ZXN0X1gyNzsKLSAgIHVyZWdzLnJlZ3NbMjhdID0gdmV4LT5ndWVzdF9YMjg7Ci0gICB1cmVncy5yZWdzWzI5XSA9IHZleC0+Z3Vlc3RfWDI5OwotICAgdXJlZ3MucmVnc1szMF0gPSB2ZXgtPmd1ZXN0X1gzMDsKLSAgIHVyZWdzLnNwICAgICAgID0gdmV4LT5ndWVzdF9YU1A7Ci0gICB1cmVncy5wYyAgICAgICA9IHZleC0+Z3Vlc3RfUEM7Ci0gICB1cmVncy5wc3RhdGUgICA9IExpYlZFWF9HdWVzdEFSTTY0X2dldF9uemN2KHZleCk7IC8qIGlzIHRoaXMgY29ycmVjdD8gKi8KLSAgIHJldHVybiBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1NFVFJFR1MsIHBpZCwgTlVMTCwgJnVyZWdzKTsKLQotI2VsaWYgZGVmaW5lZChWR1BfeDg2X2RhcndpbikKLSAgIElfZGllX2hlcmU7Ci0KLSNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikKLSAgIElfZGllX2hlcmU7Ci0KLSNlbGlmIGRlZmluZWQoVkdQX3MzOTB4X2xpbnV4KQotICAgc3RydWN0IHZraV91c2VyX3JlZ3Nfc3RydWN0IHJlZ3M7Ci0gICB2a2lfcHRyYWNlX2FyZWEgcGE7Ci0KLSAgIC8qIFdlIGRvbid0IHNldCB0aGUgcHN3IG1hc2sgYW5kIHN0YXJ0IGF0IG9mZnNldCA4ICovCi0gICBwYS52a2lfbGVuID0gKHVuc2lnbmVkIGxvbmcpICZyZWdzLnBlcl9pbmZvIC0gKHVuc2lnbmVkIGxvbmcpICZyZWdzLnBzdy5hZGRyOwotICAgcGEudmtpX3Byb2Nlc3NfYWRkciA9ICh1bnNpZ25lZCBsb25nKSAmcmVncy5wc3cuYWRkcjsKLSAgIHBhLnZraV9rZXJuZWxfYWRkciA9IDg7Ci0KLSAgIFZHXyhtZW1zZXQpKCZyZWdzLCAwLCBzaXplb2YocmVncykpOwotICAgcmVncy5wc3cuYWRkciA9IHZleC0+Z3Vlc3RfSUE7Ci0KLSAgIC8qIFdlIGRvbid0IHNldCB0aGUgbWFzayAqLwotICAgcmVncy5ncHJzWzBdID0gdmV4LT5ndWVzdF9yMDsKLSAgIHJlZ3MuZ3Byc1sxXSA9IHZleC0+Z3Vlc3RfcjE7Ci0gICByZWdzLmdwcnNbMl0gPSB2ZXgtPmd1ZXN0X3IyOwotICAgcmVncy5ncHJzWzNdID0gdmV4LT5ndWVzdF9yMzsKLSAgIHJlZ3MuZ3Byc1s0XSA9IHZleC0+Z3Vlc3RfcjQ7Ci0gICByZWdzLmdwcnNbNV0gPSB2ZXgtPmd1ZXN0X3I1OwotICAgcmVncy5ncHJzWzZdID0gdmV4LT5ndWVzdF9yNjsKLSAgIHJlZ3MuZ3Byc1s3XSA9IHZleC0+Z3Vlc3Rfcjc7Ci0gICByZWdzLmdwcnNbOF0gPSB2ZXgtPmd1ZXN0X3I4OwotICAgcmVncy5ncHJzWzldID0gdmV4LT5ndWVzdF9yOTsKLSAgIHJlZ3MuZ3Byc1sxMF0gPSB2ZXgtPmd1ZXN0X3IxMDsKLSAgIHJlZ3MuZ3Byc1sxMV0gPSB2ZXgtPmd1ZXN0X3IxMTsKLSAgIHJlZ3MuZ3Byc1sxMl0gPSB2ZXgtPmd1ZXN0X3IxMjsKLSAgIHJlZ3MuZ3Byc1sxM10gPSB2ZXgtPmd1ZXN0X3IxMzsKLSAgIHJlZ3MuZ3Byc1sxNF0gPSB2ZXgtPmd1ZXN0X3IxNDsKLSAgIHJlZ3MuZ3Byc1sxNV0gPSB2ZXgtPmd1ZXN0X3IxNTsKLQotICAgcmVncy5hY3JzWzBdID0gdmV4LT5ndWVzdF9hMDsKLSAgIHJlZ3MuYWNyc1sxXSA9IHZleC0+Z3Vlc3RfYTE7Ci0gICByZWdzLmFjcnNbMl0gPSB2ZXgtPmd1ZXN0X2EyOwotICAgcmVncy5hY3JzWzNdID0gdmV4LT5ndWVzdF9hMzsKLSAgIHJlZ3MuYWNyc1s0XSA9IHZleC0+Z3Vlc3RfYTQ7Ci0gICByZWdzLmFjcnNbNV0gPSB2ZXgtPmd1ZXN0X2E1OwotICAgcmVncy5hY3JzWzZdID0gdmV4LT5ndWVzdF9hNjsKLSAgIHJlZ3MuYWNyc1s3XSA9IHZleC0+Z3Vlc3RfYTc7Ci0gICByZWdzLmFjcnNbOF0gPSB2ZXgtPmd1ZXN0X2E4OwotICAgcmVncy5hY3JzWzldID0gdmV4LT5ndWVzdF9hOTsKLSAgIHJlZ3MuYWNyc1sxMF0gPSB2ZXgtPmd1ZXN0X2ExMDsKLSAgIHJlZ3MuYWNyc1sxMV0gPSB2ZXgtPmd1ZXN0X2ExMTsKLSAgIHJlZ3MuYWNyc1sxMl0gPSB2ZXgtPmd1ZXN0X2ExMjsKLSAgIHJlZ3MuYWNyc1sxM10gPSB2ZXgtPmd1ZXN0X2ExMzsKLSAgIHJlZ3MuYWNyc1sxNF0gPSB2ZXgtPmd1ZXN0X2ExNDsKLSAgIHJlZ3MuYWNyc1sxNV0gPSB2ZXgtPmd1ZXN0X2ExNTsKLQotICAgLyogb25seSB1c2VkIGZvciBzeXN0ZW0gY2FsbCByZXN0YXJ0IGFuZCBmcmllbmRzLCBqdXN0IHVzZSByMiAqLwotICAgcmVncy5vcmlnX2dwcjIgPSB2ZXgtPmd1ZXN0X3IyOwotCi0gICByZWdzLmZwX3JlZ3MuZnByc1swXS51aSA9IHZleC0+Z3Vlc3RfZjA7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1sxXS51aSA9IHZleC0+Z3Vlc3RfZjE7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1syXS51aSA9IHZleC0+Z3Vlc3RfZjI7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1szXS51aSA9IHZleC0+Z3Vlc3RfZjM7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1s0XS51aSA9IHZleC0+Z3Vlc3RfZjQ7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1s1XS51aSA9IHZleC0+Z3Vlc3RfZjU7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1s2XS51aSA9IHZleC0+Z3Vlc3RfZjY7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1s3XS51aSA9IHZleC0+Z3Vlc3RfZjc7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1s4XS51aSA9IHZleC0+Z3Vlc3RfZjg7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1s5XS51aSA9IHZleC0+Z3Vlc3RfZjk7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1sxMF0udWkgPSB2ZXgtPmd1ZXN0X2YxMDsKLSAgIHJlZ3MuZnBfcmVncy5mcHJzWzExXS51aSA9IHZleC0+Z3Vlc3RfZjExOwotICAgcmVncy5mcF9yZWdzLmZwcnNbMTJdLnVpID0gdmV4LT5ndWVzdF9mMTI7Ci0gICByZWdzLmZwX3JlZ3MuZnByc1sxM10udWkgPSB2ZXgtPmd1ZXN0X2YxMzsKLSAgIHJlZ3MuZnBfcmVncy5mcHJzWzE0XS51aSA9IHZleC0+Z3Vlc3RfZjE0OwotICAgcmVncy5mcF9yZWdzLmZwcnNbMTVdLnVpID0gdmV4LT5ndWVzdF9mMTU7Ci0gICByZWdzLmZwX3JlZ3MuZnBjID0gdmV4LT5ndWVzdF9mcGM7Ci0KLSAgIHJldHVybiBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1BPS0VVU1JfQVJFQSwgcGlkLCAgJnBhLCBOVUxMKTsKLQotI2VsaWYgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9taXBzNjRfbGludXgpCi0gICBzdHJ1Y3QgdmtpX3VzZXJfcmVnc19zdHJ1Y3QgcmVnczsKLSAgIFZHXyhtZW1zZXQpKCZyZWdzLCAwLCBzaXplb2YocmVncykpOwotICAgcmVncy5NSVBTX3IwICAgICA9IHZleC0+Z3Vlc3RfcjA7Ci0gICByZWdzLk1JUFNfcjEgICAgID0gdmV4LT5ndWVzdF9yMTsKLSAgIHJlZ3MuTUlQU19yMiAgICAgPSB2ZXgtPmd1ZXN0X3IyOwotICAgcmVncy5NSVBTX3IzICAgICA9IHZleC0+Z3Vlc3RfcjM7Ci0gICByZWdzLk1JUFNfcjQgICAgID0gdmV4LT5ndWVzdF9yNDsKLSAgIHJlZ3MuTUlQU19yNSAgICAgPSB2ZXgtPmd1ZXN0X3I1OwotICAgcmVncy5NSVBTX3I2ICAgICA9IHZleC0+Z3Vlc3RfcjY7Ci0gICByZWdzLk1JUFNfcjcgICAgID0gdmV4LT5ndWVzdF9yNzsKLSAgIHJlZ3MuTUlQU19yOCAgICAgPSB2ZXgtPmd1ZXN0X3I4OwotICAgcmVncy5NSVBTX3I5ICAgICA9IHZleC0+Z3Vlc3Rfcjk7Ci0gICByZWdzLk1JUFNfcjEwICAgICA9IHZleC0+Z3Vlc3RfcjEwOwotICAgcmVncy5NSVBTX3IxMSAgICAgPSB2ZXgtPmd1ZXN0X3IxMTsKLSAgIHJlZ3MuTUlQU19yMTIgICAgID0gdmV4LT5ndWVzdF9yMTI7Ci0gICByZWdzLk1JUFNfcjEzICAgICA9IHZleC0+Z3Vlc3RfcjEzOwotICAgcmVncy5NSVBTX3IxNCAgICAgPSB2ZXgtPmd1ZXN0X3IxNDsKLSAgIHJlZ3MuTUlQU19yMTUgICAgID0gdmV4LT5ndWVzdF9yMTU7Ci0gICByZWdzLk1JUFNfcjE2ICAgICA9IHZleC0+Z3Vlc3RfcjE2OwotICAgcmVncy5NSVBTX3IxNyAgICAgPSB2ZXgtPmd1ZXN0X3IxNzsKLSAgIHJlZ3MuTUlQU19yMTggICAgID0gdmV4LT5ndWVzdF9yMTg7Ci0gICByZWdzLk1JUFNfcjE5ICAgICA9IHZleC0+Z3Vlc3RfcjE5OwotICAgcmVncy5NSVBTX3IyMCAgICAgPSB2ZXgtPmd1ZXN0X3IyMDsKLSAgIHJlZ3MuTUlQU19yMjEgICAgID0gdmV4LT5ndWVzdF9yMjE7Ci0gICByZWdzLk1JUFNfcjIyICAgICA9IHZleC0+Z3Vlc3RfcjIyOwotICAgcmVncy5NSVBTX3IyMyAgICAgPSB2ZXgtPmd1ZXN0X3IyMzsKLSAgIHJlZ3MuTUlQU19yMjQgICAgID0gdmV4LT5ndWVzdF9yMjQ7Ci0gICByZWdzLk1JUFNfcjI1ICAgICA9IHZleC0+Z3Vlc3RfcjI1OwotICAgcmVncy5NSVBTX3IyNiAgICAgPSB2ZXgtPmd1ZXN0X3IyNjsKLSAgIHJlZ3MuTUlQU19yMjcgICAgID0gdmV4LT5ndWVzdF9yMjc7Ci0gICByZWdzLk1JUFNfcjI4ICAgICA9IHZleC0+Z3Vlc3RfcjI4OwotICAgcmVncy5NSVBTX3IyOSAgICAgPSB2ZXgtPmd1ZXN0X3IyOTsKLSAgIHJlZ3MuTUlQU19yMzAgICAgID0gdmV4LT5ndWVzdF9yMzA7Ci0gICByZWdzLk1JUFNfcjMxICAgICA9IHZleC0+Z3Vlc3RfcjMxOwotICAgcmV0dXJuIFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfU0VUUkVHUywgcGlkLCBOVUxMLCAmcmVncyk7Ci0KLSNlbGlmIGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkKLSAgIHN0cnVjdCB2a2lfdXNlcl9yZWdzX3N0cnVjdCByZWdzOwotICAgVkdfKG1lbXNldCkoJnJlZ3MsIDAsIHNpemVvZihyZWdzKSk7Ci0gICByZWdzLlRJTEVHWF9yMCAgICAgPSB2ZXgtPmd1ZXN0X3IwOwotICAgcmVncy5USUxFR1hfcjEgICAgID0gdmV4LT5ndWVzdF9yMTsKLSAgIHJlZ3MuVElMRUdYX3IyICAgICA9IHZleC0+Z3Vlc3RfcjI7Ci0gICByZWdzLlRJTEVHWF9yMyAgICAgPSB2ZXgtPmd1ZXN0X3IzOwotICAgcmVncy5USUxFR1hfcjQgICAgID0gdmV4LT5ndWVzdF9yNDsKLSAgIHJlZ3MuVElMRUdYX3I1ICAgICA9IHZleC0+Z3Vlc3RfcjU7Ci0gICByZWdzLlRJTEVHWF9yNiAgICAgPSB2ZXgtPmd1ZXN0X3I2OwotICAgcmVncy5USUxFR1hfcjcgICAgID0gdmV4LT5ndWVzdF9yNzsKLSAgIHJlZ3MuVElMRUdYX3I4ICAgICA9IHZleC0+Z3Vlc3Rfcjg7Ci0gICByZWdzLlRJTEVHWF9yOSAgICAgPSB2ZXgtPmd1ZXN0X3I5OwotICAgcmVncy5USUxFR1hfcjEwICAgICA9IHZleC0+Z3Vlc3RfcjEwOwotICAgcmVncy5USUxFR1hfcjExICAgICA9IHZleC0+Z3Vlc3RfcjExOwotICAgcmVncy5USUxFR1hfcjEyICAgICA9IHZleC0+Z3Vlc3RfcjEyOwotICAgcmVncy5USUxFR1hfcjEzICAgICA9IHZleC0+Z3Vlc3RfcjEzOwotICAgcmVncy5USUxFR1hfcjE0ICAgICA9IHZleC0+Z3Vlc3RfcjE0OwotICAgcmVncy5USUxFR1hfcjE1ICAgICA9IHZleC0+Z3Vlc3RfcjE1OwotICAgcmVncy5USUxFR1hfcjE2ICAgICA9IHZleC0+Z3Vlc3RfcjE2OwotICAgcmVncy5USUxFR1hfcjE3ICAgICA9IHZleC0+Z3Vlc3RfcjE3OwotICAgcmVncy5USUxFR1hfcjE4ICAgICA9IHZleC0+Z3Vlc3RfcjE4OwotICAgcmVncy5USUxFR1hfcjE5ICAgICA9IHZleC0+Z3Vlc3RfcjE5OwotICAgcmVncy5USUxFR1hfcjIwICAgICA9IHZleC0+Z3Vlc3RfcjIwOwotICAgcmVncy5USUxFR1hfcjIxICAgICA9IHZleC0+Z3Vlc3RfcjIxOwotICAgcmVncy5USUxFR1hfcjIyICAgICA9IHZleC0+Z3Vlc3RfcjIyOwotICAgcmVncy5USUxFR1hfcjIzICAgICA9IHZleC0+Z3Vlc3RfcjIzOwotICAgcmVncy5USUxFR1hfcjI0ICAgICA9IHZleC0+Z3Vlc3RfcjI0OwotICAgcmVncy5USUxFR1hfcjI1ICAgICA9IHZleC0+Z3Vlc3RfcjI1OwotICAgcmVncy5USUxFR1hfcjI2ICAgICA9IHZleC0+Z3Vlc3RfcjI2OwotICAgcmVncy5USUxFR1hfcjI3ICAgICA9IHZleC0+Z3Vlc3RfcjI3OwotICAgcmVncy5USUxFR1hfcjI4ICAgICA9IHZleC0+Z3Vlc3RfcjI4OwotICAgcmVncy5USUxFR1hfcjI5ICAgICA9IHZleC0+Z3Vlc3RfcjI5OwotICAgcmVncy5USUxFR1hfcjMwICAgICA9IHZleC0+Z3Vlc3RfcjMwOwotICAgcmVncy5USUxFR1hfcjMxICAgICA9IHZleC0+Z3Vlc3RfcjMxOwotICAgcmVncy5USUxFR1hfcjMyICAgICA9IHZleC0+Z3Vlc3RfcjMyOwotICAgcmVncy5USUxFR1hfcjMzICAgICA9IHZleC0+Z3Vlc3RfcjMzOwotICAgcmVncy5USUxFR1hfcjM0ICAgICA9IHZleC0+Z3Vlc3RfcjM0OwotICAgcmVncy5USUxFR1hfcjM1ICAgICA9IHZleC0+Z3Vlc3RfcjM1OwotICAgcmVncy5USUxFR1hfcjM2ICAgICA9IHZleC0+Z3Vlc3RfcjM2OwotICAgcmVncy5USUxFR1hfcjM3ICAgICA9IHZleC0+Z3Vlc3RfcjM3OwotICAgcmVncy5USUxFR1hfcjM4ICAgICA9IHZleC0+Z3Vlc3RfcjM4OwotICAgcmVncy5USUxFR1hfcjM5ICAgICA9IHZleC0+Z3Vlc3RfcjM5OwotICAgcmVncy5USUxFR1hfcjQwICAgICA9IHZleC0+Z3Vlc3RfcjQwOwotICAgcmVncy5USUxFR1hfcjQxICAgICA9IHZleC0+Z3Vlc3RfcjQxOwotICAgcmVncy5USUxFR1hfcjQyICAgICA9IHZleC0+Z3Vlc3RfcjQyOwotICAgcmVncy5USUxFR1hfcjQzICAgICA9IHZleC0+Z3Vlc3RfcjQzOwotICAgcmVncy5USUxFR1hfcjQ0ICAgICA9IHZleC0+Z3Vlc3RfcjQ0OwotICAgcmVncy5USUxFR1hfcjQ1ICAgICA9IHZleC0+Z3Vlc3RfcjQ1OwotICAgcmVncy5USUxFR1hfcjQ2ICAgICA9IHZleC0+Z3Vlc3RfcjQ2OwotICAgcmVncy5USUxFR1hfcjQ3ICAgICA9IHZleC0+Z3Vlc3RfcjQ3OwotICAgcmVncy5USUxFR1hfcjQ4ICAgICA9IHZleC0+Z3Vlc3RfcjQ4OwotICAgcmVncy5USUxFR1hfcjQ5ICAgICA9IHZleC0+Z3Vlc3RfcjQ5OwotICAgcmVncy5USUxFR1hfcjUwICAgICA9IHZleC0+Z3Vlc3RfcjUwOwotICAgcmVncy5USUxFR1hfcjUxICAgICA9IHZleC0+Z3Vlc3RfcjUxOwotICAgcmVncy5USUxFR1hfcjUyICAgICA9IHZleC0+Z3Vlc3RfcjUyOwotICAgcmVncy5USUxFR1hfcjUzICAgICA9IHZleC0+Z3Vlc3RfcjUzOwotICAgcmVncy5USUxFR1hfcjU0ICAgICA9IHZleC0+Z3Vlc3RfcjU0OwotICAgcmVncy5USUxFR1hfcjU1ICAgICA9IHZleC0+Z3Vlc3RfcjU1OwotICAgcmVncy5USUxFR1hfcGMgICAgID0gIHZleC0+Z3Vlc3RfcGM7Ci0KLSAgIHJldHVybiBWR18ocHRyYWNlKShWS0lfUFRSQUNFX1NFVFJFR1MsIHBpZCwgTlVMTCwgJnJlZ3MpOwotCi0jZWxzZQotIyAgZXJyb3IgVW5rbm93biBhcmNoCi0jZW5kaWYKLX0KLQotLyogU3RhcnQgZGVidWdnZXIgYW5kIGdldCBpdCB0byBhdHRhY2ggdG8gdGhpcyBwcm9jZXNzLiAgQ2FsbGVkIGlmIHRoZQotICAgdXNlciByZXF1ZXN0cyB0aGlzIHNlcnZpY2UgYWZ0ZXIgYW4gZXJyb3IgaGFzIGJlZW4gc2hvd24sIHNvIHNoZSBjYW4KLSAgIHBva2UgYXJvdW5kIGFuZCBsb29rIGF0IHBhcmFtZXRlcnMsIG1lbW9yeSwgZXRjLiAgWW91IGNhbid0Ci0gICBtZWFuaW5nZnVsbHkgZ2V0IHRoZSBkZWJ1Z2dlciB0byBjb250aW51ZSB0aGUgcHJvZ3JhbSwgdGhvdWdoOyB0bwotICAgY29udGludWUsIHF1aXQgdGhlIGRlYnVnZ2VyLiAgKi8KLXZvaWQgVkdfKHN0YXJ0X2RlYnVnZ2VyKSAoIFRocmVhZElkIHRpZCApCi17Ci0jICBkZWZpbmUgTl9CVUYgNDA5NgotICAgSW50IHBpZCwgcmM7Ci0KLSAgIHBpZCA9IFZHXyhmb3JrKSgpOwotCi0gICBpZiAocGlkID09IDApIHsKLSAgICAgIC8qIGNoaWxkICovCi0gICAgICBWR18oc2V0X3B0cmFjZXIpKCk7Ci0gICAgICByYyA9IFZHXyhwdHJhY2UpKFZLSV9QVFJBQ0VfVFJBQ0VNRSwgMCwgTlVMTCwgTlVMTCk7Ci0gICAgICB2Z19hc3NlcnQocmMgPT0gMCk7Ci0gICAgICByYyA9IFZHXyhraWxsKShWR18oZ2V0cGlkKSgpLCBWS0lfU0lHU1RPUCk7Ci0gICAgICB2Z19hc3NlcnQocmMgPT0gMCk7Ci0KLSAgIH0gZWxzZSBpZiAocGlkID4gMCkgewotICAgICAgLyogcGFyZW50ICovCi0gICAgICBJbnQgc3RhdHVzOwotICAgICAgSW50IHJlczsKLQotICAgICAgaWYgKChyZXMgPSBWR18od2FpdHBpZCkocGlkLCAmc3RhdHVzLCAwKSkgPT0gcGlkICYmCi0gICAgICAgICAgV0lGU1RPUFBFRChzdGF0dXMpICYmIFdTVE9QU0lHKHN0YXR1cykgPT0gVktJX1NJR1NUT1AgJiYKLSAgICAgICAgICBwdHJhY2Vfc2V0cmVncyhwaWQsICYoVkdfKHRocmVhZHMpW3RpZF0uYXJjaC52ZXgpKSA9PSAwICYmCi0gICAgICAgICAgVkdfKGtpbGwpKHBpZCwgVktJX1NJR1NUT1ApID09IDAgJiYKLSAgICAgICAgICBWR18ocHRyYWNlKShWS0lfUFRSQUNFX0RFVEFDSCwgcGlkLCBOVUxMLCAwKSA9PSAwKQotICAgICAgewotICAgICAgICAgSENoYXIgcGlkYnVmWzE1XTsKLSAgICAgICAgIEhDaGFyIGZpbGVbNTBdOwotICAgICAgICAgSENoYXIgYnVmW05fQlVGXTsKLSAgICAgICAgIEhDaGFyICpidWZwdHI7Ci0gICAgICAgICBjb25zdCBIQ2hhciAqY21kcHRyOwotICAgICAgICAgCi0gICAgICAgICBWR18oc3ByaW50ZikocGlkYnVmLCAiJWQiLCBwaWQpOwotICAgICAgICAgVkdfKHNwcmludGYpKGZpbGUsICIvcHJvYy8lZC9mZC8lZCIsIHBpZCwgVkdfKGNsX2V4ZWNfZmQpKTsKLSAKLSAgICAgICAgIGJ1ZnB0ciA9IGJ1ZjsKLSAgICAgICAgIGNtZHB0ciA9IFZHXyhjbG9fZGJfY29tbWFuZCk7Ci0gICAgICAgICAKLSAgICAgICAgIHdoaWxlICgqY21kcHRyKSB7Ci0gICAgICAgICAgICAvKiBlYWNoIGl0ZXJhdGlvbiBjYW4gYWR2YW5jZSBidWZwdHIgYnkgYXQgbW9zdCB0aGUgbGVuZ3RoCi0gICAgICAgICAgICAgICBvZiBmaWxlW10sIHNvIHRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9uIGlzIGdlbmVyb3VzbHkKLSAgICAgICAgICAgICAgIG92ZXItcGFyYW5vaWQuICovCi0gICAgICAgICAgICB2Z19hc3NlcnQoYnVmcHRyIC0gYnVmIDwgTl9CVUYtMTUtNTAtMTAvKnBhcmFub2lhKi8pOwotICAgICAgICAgICAgc3dpdGNoICgqY21kcHRyKSB7Ci0gICAgICAgICAgICAgICBjYXNlICclJzoKLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAoKisrY21kcHRyKSB7Ci0gICAgICAgICAgICAgICAgICAgICBjYXNlICdmJzoKLSAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhtZW1jcHkpKGJ1ZnB0ciwgZmlsZSwgVkdfKHN0cmxlbikoZmlsZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnVmcHRyICs9IFZHXyhzdHJsZW4pKGZpbGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgY21kcHRyKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3AnOgotICAgICAgICAgICAgICAgICAgICAgICAgVkdfKG1lbWNweSkoYnVmcHRyLCBwaWRidWYsIFZHXyhzdHJsZW4pKHBpZGJ1ZikpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnVmcHRyICs9IFZHXyhzdHJsZW4pKHBpZGJ1Zik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjbWRwdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICpidWZwdHIrKyA9ICpjbWRwdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgKmJ1ZnB0cisrID0gKmNtZHB0cisrOwotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2Z19hc3NlcnQoYnVmcHRyIC0gYnVmIDwgTl9CVUYtMTUtNTAtMTAvKnBhcmFub2lhKi8pOwotICAgICAgICAgfQotICAgICAgICAgCi0gICAgICAgICAqYnVmcHRyKysgPSAnXDAnOwotICAKLSAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAic3RhcnRpbmcgZGVidWdnZXIgd2l0aCBjbWQ6ICVzXG4iLCBidWYpOwotICAgICAgICAgcmVzID0gVkdfKHN5c3RlbSkoYnVmKTsKLSAgICAgICAgIGlmIChyZXMgPT0gMCkgeyAgICAgIAotICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJcbiIpOwotICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csIAotICAgICAgICAgICAgICAgICAgICAgICAgICJEZWJ1Z2dlciBoYXMgZGV0YWNoZWQuICBWYWxncmluZCByZWdhaW5zIGNvbnRyb2wuIgotICAgICAgICAgICAgICAgICAgICAgICAgICIgIFdlIGNvbnRpbnVlLlxuIik7Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csIAotICAgICAgICAgICAgICAgICAgICAgICAgICJXYXJuaW5nOiBEZWJ1Z2dlciBhdHRhY2ggZmFpbGVkISAoc3lzX3N5c3RlbSlcbiIpOwotICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJcbiIpOwotICAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAKLSAgICAgICAgICAgICAgICAgICAgICAiV2FybmluZzogRGVidWdnZXIgYXR0YWNoIGZhaWxlZCEgKHB0cmFjZSBwcm9ibGVtPylcbiIpOwotICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJcbiIpOwotICAgICAgfQotCi0gICAgICBWR18oa2lsbCkocGlkLCBWS0lfU0lHS0lMTCk7Ci0gICAgICBWR18od2FpdHBpZCkocGlkLCAmc3RhdHVzLCAwKTsKLSAgIH0KLSMgIHVuZGVmIE5fQlVGCi19Ci0KLQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLS8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vZDNiYXNpY3MuYyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9kM2Jhc2ljcy5jCmluZGV4IDA5ZDFiMTIuLjE5MGFkYTEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9kM2Jhc2ljcy5jCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9kM2Jhc2ljcy5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00MDAsMTAgKzQwMCwxMiBAQAogc3RhdGljIEJvb2wgZ2V0X0R3YXJmX1JlZyggLypPVVQqL0FkZHIqIGEsIFdvcmQgcmVnbm8sIGNvbnN0IFJlZ1N1bW1hcnkqIHJlZ3MgKQogewogICAgdmdfYXNzZXJ0KHJlZ3MpOwotIyAgaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF94ODZfZGFyd2luKQorIyAgaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF94ODZfZGFyd2luKSBcCisgICAgICB8fCBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKICAgIGlmIChyZWdubyA9PSA1LypFQlAqLykgeyAqYSA9IHJlZ3MtPmZwOyByZXR1cm4gVHJ1ZTsgfQogICAgaWYgKHJlZ25vID09IDQvKkVTUCovKSB7ICphID0gcmVncy0+c3A7IHJldHVybiBUcnVlOyB9Ci0jICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCisjICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pIFwKKyAgICAgICAgfHwgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKICAgIGlmIChyZWdubyA9PSA2LypSQlAqLykgeyAqYSA9IHJlZ3MtPmZwOyByZXR1cm4gVHJ1ZTsgfQogICAgaWYgKHJlZ25vID09IDcvKlJTUCovKSB7ICphID0gcmVncy0+c3A7IHJldHVybiBUcnVlOyB9CiAjICBlbGlmIGRlZmluZWQoVkdQX3BwYzMyX2xpbnV4KQpAQCAtOTcyLDggKzk3NCw4IEBACiAgICAgICBhTWF4ICAgPSBNTF8ocmVhZF9BZGRyKShwKTsgICBwICs9IHNpemVvZihBZGRyKTsKICAgICAgIG5ieXRlcyA9IE1MXyhyZWFkX1VTaG9ydCkocCk7IHAgKz0gc2l6ZW9mKFVTaG9ydCk7CiAgICAgICBuR3VhcmRzKys7Ci0gICAgICBpZiAoMCkgVkdfKHByaW50ZikoIiAgICAgICAgICAgZ3VhcmQgJWQ6ICUjbHggJSNseFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoSW50KW5HdWFyZHMsIGFNaW4sYU1heCk7CisgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIiAgICAgICAgICAgZ3VhcmQgJWx1OiAlI2x4ICUjbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgbkd1YXJkcywgYU1pbixhTWF4KTsKICAgICAgIGlmIChyZWdzID09IE5VTEwpIHsKICAgICAgICAgIHZnX2Fzc2VydChhTWluID09IChBZGRyKTApOwogICAgICAgICAgdmdfYXNzZXJ0KGFNYXggPT0gfihBZGRyKTApOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGVidWdpbmZvL2RlYnVnaW5mby5jIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL2RlYnVnaW5mby5jCmluZGV4IDMxZmQzNjkuLjZmMTFjZDIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9kZWJ1Z2luZm8uYworKysgYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vZGVidWdpbmZvLmMKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTYsNyArNTYsNyBAQAogI2luY2x1ZGUgInByaXZfdHl0eXBlcy5oIgogI2luY2x1ZGUgInByaXZfc3RvcmFnZS5oIgogI2luY2x1ZGUgInByaXZfcmVhZGR3YXJmLmgiCi0jaWYgZGVmaW5lZChWR09fbGludXgpCisjaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAjIGluY2x1ZGUgInByaXZfcmVhZGVsZi5oIgogIyBpbmNsdWRlICJwcml2X3JlYWRkd2FyZjMuaCIKICMgaW5jbHVkZSAicHJpdl9yZWFkcGRiLmgiCkBAIC0xMDUsNyArMTA1LDcgQEAKIC8qLS0tIGZ3ZHNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotc3RhdGljIFVJbnQgQ0ZfaW5mb19nZW5lcmF0aW9uID0gMDsKK3N0YXRpYyBVSW50IGRlYnVnaW5mb19nZW5lcmF0aW9uID0gMDsKIHN0YXRpYyB2b2lkIGNmc2lfbV9jYWNoZV9faW52YWxpZGF0ZSAoIHZvaWQgKTsKIAogCkBAIC0xMTgsNyArMTE4LDcgQEAKIHN0YXRpYyBEZWJ1Z0luZm8qIGRlYnVnSW5mb19saXN0ID0gTlVMTDsKIAogCi0vKiBGaW5kICdkaScgaW4gdGhlIGRlYnVnSW5mb19saXN0IGFuZCBtb3ZlIGl0IG9uZSBzdGVwIGNsb3NlciB0aGUgdGhlCisvKiBGaW5kICdkaScgaW4gdGhlIGRlYnVnSW5mb19saXN0IGFuZCBtb3ZlIGl0IG9uZSBzdGVwIGNsb3NlciB0byB0aGUKICAgIGZyb250IG9mIHRoZSBsaXN0LCBzbyBhcyB0byBtYWtlIHN1YnNlcXVlbnQgc2VhcmNoZXMgZm9yIGl0CiAgICBjaGVhcGVyLiAgV2hlbiB1c2VkIGluIGEgY29udHJvbGxlZCB3YXksIG1ha2VzIGEgbWFqb3IgaW1wcm92ZW1lbnQKICAgIGluIHNvbWUgRGVidWdJbmZvLXNlYXJjaC1pbnRlbnNpdmUgc2l0dWF0aW9ucywgbW9zdCBub3RhYmx5IHN0YWNrCkBAIC01OTcsNyArNTk3LDcgQEAKIC8qLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkgIHx8ICBkZWZpbmVkKFZHT19kYXJ3aW4pCisjaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIAogLyogSGVscGVyIChpbmRpcmVjdCkgZm9yIGRpX25vdGlmeV9BQ0hJRVZFX0FDQ0VQVF9TVEFURSAqLwogc3RhdGljIEJvb2wgb3ZlcmxhcHNfRGVidWdJbmZvTWFwcGluZ3MgKCBjb25zdCBEZWJ1Z0luZm9NYXBwaW5nKiBtYXAxLApAQCAtNjIxLDkgKzYyMSw5IEBACiAgICBuID0gVkdfKHNpemVYQSkobWFwcyk7CiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICBjb25zdCBEZWJ1Z0luZm9NYXBwaW5nKiBtYXAgPSBWR18oaW5kZXhYQSkobWFwcywgaSk7Ci0gICAgICBUUkFDRV9TWU1UQUIoIiAgWyVsZF0gICAgYXZtYSAweCUtMTZsbHggICAgc2l6ZSAlLThsdSAgICAiCisgICAgICBUUkFDRV9TWU1UQUIoIiAgWyVsZF0gICAgYXZtYSAweCUtMTZseCAgICBzaXplICUtOGx1ICAgICIKICAgICAgICAgICAgICAgICAgICAiZm9mZiAlLThsbGQgICAgJXMgJXMgJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgaSwgKFVMb25nKW1hcC0+YXZtYSwgbWFwLT5zaXplLCAoTG9uZyltYXAtPmZvZmYsCisgICAgICAgICAgICAgICAgICAgaSwgbWFwLT5hdm1hLCBtYXAtPnNpemUsIChMb25nKW1hcC0+Zm9mZiwKICAgICAgICAgICAgICAgICAgICBtYXAtPnJ4ID8gInJ4IiA6ICItLSIsCiAgICAgICAgICAgICAgICAgICAgbWFwLT5ydyA/ICJydyIgOiAiLS0iLAogICAgICAgICAgICAgICAgICAgIG1hcC0+cm8gPyAicm8iIDogIi0tIik7CkBAIC03NDUsNyArNzQ1LDcgQEAKICAgIHRydW5jYXRlX0RlYnVnSW5mb01hcHBpbmdfb3ZlcmxhcHMoIGRpLCBkaS0+ZnNtLm1hcHMgKTsKIAogICAgLyogQW5kIGFjcXVpcmUgbmV3IGluZm8uICovCi0jICBpZiBkZWZpbmVkKFZHT19saW51eCkKKyMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgb2sgPSBNTF8ocmVhZF9lbGZfZGVidWdfaW5mbykoIGRpICk7CiAjICBlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIG9rID0gTUxfKHJlYWRfbWFjaG9fZGVidWdfaW5mbykoIGRpICk7CkBAIC05NjUsNiArOTY1LDExIEBACiAgICBpc19yb19tYXAgPSBzZWctPmhhc1IgJiYgIXNlZy0+aGFzVyAmJiAhc2VnLT5oYXNYOwogIyAgZW5kaWYKIAorIyAgaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIGlzX3J4X21hcCA9IHNlZy0+aGFzUiAmJiBzZWctPmhhc1ggJiYgIXNlZy0+aGFzVzsKKyAgIGlzX3J3X21hcCA9IHNlZy0+aGFzUiAmJiBzZWctPmhhc1c7CisjICBlbmRpZgorCiAgICBpZiAoZGVidWcpCiAgICAgICBWR18ocHJpbnRmKSgiZGlfbm90aWZ5X21tYXAtMzogIgogICAgICAgICAgICAgICAgICAgImlzX3J4X21hcCAlZCwgaXNfcndfbWFwICVkLCBpc19yb19tYXAgJWRcbiIsCkBAIC0xMDE3LDcgKzEwMjIsNyBAQAogICAgdmdfYXNzZXJ0KHNyX1JlcyhwcmVhZHJlcykgPiAwICYmIHNyX1JlcyhwcmVhZHJlcykgPD0gc2l6ZW9mKGJ1ZjFrKSApOwogCiAgICAvKiBXZSdyZSBvbmx5IGludGVyZXN0ZWQgaW4gbWFwcGluZ3Mgb2Ygb2JqZWN0IGZpbGVzLiAqLwotIyAgaWYgZGVmaW5lZChWR09fbGludXgpCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKICAgIGlmICghTUxfKGlzX2VsZl9vYmplY3RfZmlsZSkoIGJ1ZjFrLCAoU2l6ZVQpc3JfUmVzKHByZWFkcmVzKSwgRmFsc2UgKSkKICAgICAgIHJldHVybiAwOwogIyAgZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCkBAIC0xMDM4LDcgKzEwNDMsNyBAQAogCiAgICAvKiBOb3RlIHRoZSBkZXRhaWxzIGFib3V0IHRoZSBtYXBwaW5nLiAqLwogICAgRGVidWdJbmZvTWFwcGluZyBtYXA7Ci0gICBtYXAuYXZtYSA9IGE7CisgICBtYXAuYXZtYSA9IHNlZy0+c3RhcnQ7CiAgICBtYXAuc2l6ZSA9IHNlZy0+ZW5kICsgMSAtIHNlZy0+c3RhcnQ7CiAgICBtYXAuZm9mZiA9IHNlZy0+b2Zmc2V0OwogICAgbWFwLnJ4ICAgPSBpc19yeF9tYXA7CkBAIC0xMjE3LDcgKzEyMjIsNyBAQAogICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csCiAgICAgICAgICAiTE9BRF9QREJfREVCVUdJTkZPOiBjbHJlcTogICBmZD0lZCwgYXZtYT0lI2x4LCB0b3RhbF9zaXplPSVsdSwgIgogICAgICAgICAgImJpYXM9JSNseFxuIiwgCi0gICAgICAgICBmZF9vYmosIGF2bWFfb2JqLCB0b3RhbF9zaXplLCBiaWFzX29iagorICAgICAgICAgZmRfb2JqLCBhdm1hX29iaiwgdG90YWxfc2l6ZSwgKFVXb3JkKWJpYXNfb2JqCiAgICAgICApOwogICAgfQogCkBAIC0xNDIyLDcgKzE0MjcsNyBAQAogICAgaWYgKHBkYm5hbWUpIE1MXyhkaW5mb19mcmVlKShwZGJuYW1lKTsKIH0KIAotI2VuZGlmIC8qIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pICovCisjZW5kaWYgLyogZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikgfHwgZGVmaW5lZChWR09fc29sYXJpcykgKi8KIAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xOTM5LDYgKzE5NDQsOCBAQAogIyAgICAgIGVsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgICAgIC8vIFNlZSByZWFkbWFjaG8uYyBmb3IgYW4gZXhwbGFuYXRpb24gb2YgdGhpcy4KICAgICAgICBWR19TVFJFUSgic3RhcnRfYWNjb3JkaW5nX3RvX3ZhbGdyaW5kIiwgbmFtZSkgfHwgIC8vIERhcndpbiwgZGFybGluZworIyAgICAgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgICBWR19TVFJFUSgiX3N0YXJ0IiwgbmFtZSkgfHwgLy8gbWFpbigpIGlzIGNhbGxlZCBkaXJlY3RseSBmcm9tIF9zdGFydAogIyAgICAgIGVsc2UKICMgICAgICAgIGVycm9yICJVbmtub3duIE9TIgogIyAgICAgIGVuZGlmCkBAIC0yMjk1LDcgKzIzMDIsNyBAQAogICAgICAgLyogUHJpbnQgaW4gWE1MIGZvcm1hdCwgZHVtcGluZyBpbiBhcyBtdWNoIGluZm8gYXMgd2Uga25vdy4KICAgICAgICAgIEVuc3VyZSBhbGwgdGFncyBhcmUgYmFsYW5jZWQuICovCiAgICAgICBBUFBFTkQoIjxmcmFtZT4iKTsKLSAgICAgIFZHXyhzcHJpbnRmKShpYnVmLCI8aXA+MHglbGxYPC9pcD4iLCAoVUxvbmcpZWlwKTsKKyAgICAgIFZHXyhzcHJpbnRmKShpYnVmLCI8aXA+MHglbFg8L2lwPiIsIGVpcCk7CiAgICAgICBBUFBFTkQobWF5YmVfbmV3bGluZSk7CiAgICAgICBBUFBFTkQoaWJ1Zik7CiAgICAgICBpZiAoa25vd19vYmpuYW1lKSB7CkBAIC0yMzIzLDcgKzIzMzAsNyBAQAogICAgICAgICAgQVBQRU5EKCI8L2ZpbGU+Iik7CiAgICAgICAgICBBUFBFTkQobWF5YmVfbmV3bGluZSk7CiAgICAgICAgICBBUFBFTkQoIjxsaW5lPiIpOwotICAgICAgICAgVkdfKHNwcmludGYpKGlidWYsIiVkIixsaW5lbm8pOworICAgICAgICAgVkdfKHNwcmludGYpKGlidWYsIiV1IixsaW5lbm8pOwogICAgICAgICAgQVBQRU5EKGlidWYpOwogICAgICAgICAgQVBQRU5EKCI8L2xpbmU+Iik7CiAgICAgICB9CkBAIC0yMzQzLDcgKzIzNTAsNyBAQAogICAgICAgLy8gICAweDgwNDgzQkY6ID8/PyAoYS5jOjIwKQogICAgICAgLy8gICAweDgwNDgzQkY6ID8/PwogICAgICAgLy8KLSAgICAgIFZHXyhzcHJpbnRmKShpYnVmLCIweCVsbFg6ICIsIChVTG9uZyllaXApOworICAgICAgVkdfKHNwcmludGYpKGlidWYsIjB4JWxYOiAiLCBlaXApOwogICAgICAgQVBQRU5EKGlidWYpOwogICAgICAgaWYgKGtub3dfZm5uYW1lKSB7CiAgICAgICAgICBBUFBFTkQoYnVmX2ZuKTsKQEAgLTIzODEsNyArMjM4OCw3IEBACiAgICAgICAgICB9CiAgICAgICAgICBBUFBFTkQoYnVmX3NyY2xvYyk7CiAgICAgICAgICBBUFBFTkQoIjoiKTsKLSAgICAgICAgIFZHXyhzcHJpbnRmKShpYnVmLCIlZCIsbGluZW5vKTsKKyAgICAgICAgIFZHXyhzcHJpbnRmKShpYnVmLCIldSIsbGluZW5vKTsKICAgICAgICAgIEFQUEVORChpYnVmKTsKICAgICAgICAgIEFQUEVORCgiKSIpOwogICAgICAgfSBlbHNlIGlmIChrbm93X29iam5hbWUpIHsKQEAgLTI2NDUsMTIgKzI2NTIsMTIgQEAKIAogc3RhdGljIHZvaWQgY2ZzaV9tX2NhY2hlX19pbnZhbGlkYXRlICggdm9pZCApIHsKICAgIFZHXyhtZW1zZXQpKCZjZnNpX21fY2FjaGUsIDAsIHNpemVvZihjZnNpX21fY2FjaGUpKTsKLSAgIENGX2luZm9fZ2VuZXJhdGlvbisrOworICAgZGVidWdpbmZvX2dlbmVyYXRpb24rKzsKIH0KIAotVUludCBWR18oQ0ZfaW5mb19nZW5lcmF0aW9uKSAodm9pZCkKK1VJbnQgVkdfKGRlYnVnaW5mb19nZW5lcmF0aW9uKSAodm9pZCkKIHsKLSAgIHJldHVybiBDRl9pbmZvX2dlbmVyYXRpb247CisgICByZXR1cm4gZGVidWdpbmZvX2dlbmVyYXRpb247CiB9CiAKIHN0YXRpYyBpbmxpbmUgQ0ZTSV9tX0NhY2hlRW50KiBjZnNpX21fY2FjaGVfX2ZpbmQgKCBBZGRyIGlwICkKQEAgLTI4MjgsNiArMjgzNSwzNyBAQAogIyAgZW5kaWYKIH0KIAordm9pZCBWR18ocHBVbndpbmRJbmZvKSAoQWRkciBmcm9tLCBBZGRyIHRvKQoreworICAgRGVidWdJbmZvKiAgICAgICAgIGRpOworICAgQ0ZTSV9tX0NhY2hlRW50KiAgIGNlOworICAgQWRkciBjZV9mcm9tOworICAgQ0ZTSV9tX0NhY2hlRW50KiAgIG5leHRfY2U7CisKKworICAgY2UgPSBjZnNpX21fY2FjaGVfX2ZpbmQoZnJvbSk7CisgICBjZV9mcm9tID0gZnJvbTsKKyAgIHdoaWxlIChmcm9tIDw9IHRvKSB7CisgICAgICBmcm9tKys7CisgICAgICBuZXh0X2NlID0gY2ZzaV9tX2NhY2hlX19maW5kKGZyb20pOworICAgICAgaWYgKChjZSA9PSBOVUxMICYmIG5leHRfY2UgIT0gTlVMTCkKKyAgICAgICAgICB8fCAoY2UgIT0gTlVMTCAmJiBuZXh0X2NlID09IE5VTEwpCisgICAgICAgICAgfHwgKGNlICE9IE5VTEwgJiYgbmV4dF9jZSAhPSBOVUxMICYmIGNlLT5jZnNpX20gIT0gbmV4dF9jZS0+Y2ZzaV9tKQorICAgICAgICAgIHx8IGZyb20gPiB0bykgeworICAgICAgICAgaWYgKGNlID09IE5VTEwpIHsKKyAgICAgICAgICAgIFZHXyhwcmludGYpKCJbJSNseCAuLiAlI2x4XTogbm8gQ0ZJIGluZm9cbiIsIGNlX2Zyb20sIGZyb20tMSk7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGkgPSBjZS0+ZGk7CisgICAgICAgICAgICBNTF8ocHBEaUNmU0kpKGRpLT5jZnNpX2V4cHJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjZV9mcm9tLCBmcm9tIC0gY2VfZnJvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2UtPmNmc2lfbSk7CisgICAgICAgICB9CisgICAgICAgICBjZSA9IG5leHRfY2U7CisgICAgICAgICBjZV9mcm9tID0gZnJvbTsKKyAgICAgIH0KKyAgIH0KK30KKwogCiAvKiBUaGUgbWFpbiBmdW5jdGlvbiBmb3IgRFdBUkYyLzMgQ0ZJLWJhc2VkIHN0YWNrIHVud2luZGluZy4gIEdpdmVuIGEKICAgIHNldCBvZiByZWdpc3RlcnMgaW4gVVJFR1MsIG1vZGlmeSBpdCB0byBob2xkIHRoZSByZWdpc3RlciB2YWx1ZXMKQEAgLTMwMDQsMTAgKzMwNDIsMTAgQEAKICAgICAgICAgIFdvcmQgajsKICAgICAgICAgIGlmICgwKSB7CiAgICAgICAgICAgICAvKiBkZWJ1ZyBwcmludGluZyBvbmx5ICovCi0gICAgICAgICAgICBWR18ocHJpbnRmKSgibG9vayBmb3IgJSNseCAgc2l6ZSAlbGQgaSAlbGRcbiIsCisgICAgICAgICAgICBWR18ocHJpbnRmKSgibG9vayBmb3IgJSNseCAgc2l6ZSAlbHUgaSAlbGRcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAqaXBQLCBkaS0+ZnBvX3NpemUsIGkpOwogICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGRpLT5mcG9fc2l6ZTsgaisrKQotICAgICAgICAgICAgICAgVkdfKHByaW50ZikoIlslMDJsZF0gJSN4ICVkXG4iLCAKKyAgICAgICAgICAgICAgIFZHXyhwcmludGYpKCJbJTAybGRdICUjeCAldVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqLCBkaS0+ZnBvW2pdLnVsT2ZmU3RhcnQsIGRpLT5mcG9bal0uY2JQcm9jU2l6ZSk7CiAgICAgICAgICB9CiAgICAgICAgICB2Z19hc3NlcnQoaSA+PSAwICYmIGkgPCBkaS0+ZnBvX3NpemUpOwpAQCAtMzA4Niw2ICszMTI0LDE2IEBACiAgICByZXR1cm4gVHJ1ZTsKIH0KIAorQm9vbCBWR18oRlBPX2luZm9fcHJlc2VudCkodm9pZCkKK3sKKyAgIGNvbnN0IERlYnVnSW5mbyogZGk7CisgICBmb3IgKGRpID0gZGVidWdJbmZvX2xpc3Q7IGRpICE9IE5VTEw7IGRpID0gZGktPm5leHQpIHsKKyAgICAgIGlmIChkaS0+ZnBvICE9IE5VTEwpCisgICAgICAgICByZXR1cm4gVHJ1ZTsKKyAgIH0KKyAgIHJldHVybiBGYWxzZTsKK30KKwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwpAQCAtMzI0OCwxOSArMzI5NiwxOSBAQAogICAgICAgaWYgKHhtbCkgewogICAgICAgICAgVEFHTCggZG4xICk7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgbG9jYWwgdmFyIFwiJXBTXCIsIiwKKyAgICAgICAgICAgICAgICJMb2NhdGlvbiAweCVseCBpcyAlbGQgYnl0ZSVzIGluc2lkZSBsb2NhbCB2YXIgXCIlcFNcIiwiLAogICAgICAgICAgICAgICAgZGF0YV9hZGRyLCB2YXJfb2Zmc2V0LCB2b19wbHVyYWwsIHZhci0+bmFtZSApOwogICAgICAgICAgVEFHUiggZG4xICk7CiAgICAgICAgICBUQUdMKCBkbjIgKTsKICAgICAgICAgIHAyWEEoIGRuMiwKLSAgICAgICAgICAgICAgICJpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICVkIiwgZnJhbWVObywgKEludCl0aWQgKTsKKyAgICAgICAgICAgICAgICJpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICV1IiwgZnJhbWVObywgdGlkICk7CiAgICAgICAgICBUQUdSKCBkbjIgKTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgbG9jYWwgdmFyIFwiJXNcIiwiLAorICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsZCBieXRlJXMgaW5zaWRlIGxvY2FsIHZhciBcIiVzXCIsIiwKICAgICAgICAgICAgICAgIGRhdGFfYWRkciwgdmFyX29mZnNldCwgdm9fcGx1cmFsLCB2YXItPm5hbWUgKTsKICAgICAgICAgIHAyWEEoIGRuMiwKLSAgICAgICAgICAgICAgICJpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICVkIiwgZnJhbWVObywgKEludCl0aWQgKTsKKyAgICAgICAgICAgICAgICJpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICV1IiwgZnJhbWVObywgdGlkICk7CiAgICAgICB9CiAgICB9IAogICAgZWxzZQpAQCAtMzI3MiwxNCArMzMyMCwxNCBAQAogICAgICAgaWYgKHhtbCkgewogICAgICAgICAgVEFHTCggZG4xICk7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgbG9jYWwgdmFyIFwiJXBTXCIiLAorICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsZCBieXRlJXMgaW5zaWRlIGxvY2FsIHZhciBcIiVwU1wiIiwKICAgICAgICAgICAgICAgIGRhdGFfYWRkciwgdmFyX29mZnNldCwgdm9fcGx1cmFsLCB2YXItPm5hbWUgKTsKICAgICAgICAgIFRBR1IoIGRuMSApOwogICAgICAgICAgWEFHTCggZG4yICk7CiAgICAgICAgICBUWFRMKCBkbjIgKTsKICAgICAgICAgIHAyWEEoIGRuMiwKLSAgICAgICAgICAgICAgICJkZWNsYXJlZCBhdCAlcFM6JWQsIGluIGZyYW1lICMlZCBvZiB0aHJlYWQgJWQiLAotICAgICAgICAgICAgICAgZmlsZU5hbWUsIHZhci0+bGluZU5vLCBmcmFtZU5vLCAoSW50KXRpZCApOworICAgICAgICAgICAgICAgImRlY2xhcmVkIGF0ICVwUzolZCwgaW4gZnJhbWUgIyVkIG9mIHRocmVhZCAldSIsCisgICAgICAgICAgICAgICBmaWxlTmFtZSwgdmFyLT5saW5lTm8sIGZyYW1lTm8sIHRpZCApOwogICAgICAgICAgVFhUUiggZG4yICk7CiAgICAgICAgICAvLyBGSVhNRTogYWxzbyBkbyA8ZGlyPgogICAgICAgICAgcDJYQSggZG4yLApAQCAtMzI4OCwxMSArMzMzNiwxMSBAQAogICAgICAgICAgWEFHUiggZG4yICk7CiAgICAgICB9IGVsc2UgewogICAgICAgICAgcDJYQSggZG4xLAotICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsdSBieXRlJXMgaW5zaWRlIGxvY2FsIHZhciBcIiVzXCIiLAorICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsZCBieXRlJXMgaW5zaWRlIGxvY2FsIHZhciBcIiVzXCIiLAogICAgICAgICAgICAgICAgZGF0YV9hZGRyLCB2YXJfb2Zmc2V0LCB2b19wbHVyYWwsIHZhci0+bmFtZSApOwogICAgICAgICAgcDJYQSggZG4yLAotICAgICAgICAgICAgICAgImRlY2xhcmVkIGF0ICVzOiVkLCBpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICVkIiwKLSAgICAgICAgICAgICAgIGZpbGVOYW1lLCB2YXItPmxpbmVObywgZnJhbWVObywgKEludCl0aWQgKTsKKyAgICAgICAgICAgICAgICJkZWNsYXJlZCBhdCAlczolZCwgaW4gZnJhbWUgIyVkIG9mIHRocmVhZCAldSIsCisgICAgICAgICAgICAgICBmaWxlTmFtZSwgdmFyLT5saW5lTm8sIGZyYW1lTm8sIHRpZCApOwogICAgICAgfQogICAgfQogICAgZWxzZQpAQCAtMzMwNCwyMSArMzM1MiwyMSBAQAogICAgICAgaWYgKHhtbCkgewogICAgICAgICAgVEFHTCggZG4xICk7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgJXBTJXBTIiwKKyAgICAgICAgICAgICAgICJMb2NhdGlvbiAweCVseCBpcyAlbGQgYnl0ZSVzIGluc2lkZSAlcFMlcFMiLAogICAgICAgICAgICAgICAgZGF0YV9hZGRyLCByZXNpZHVhbF9vZmZzZXQsIHJvX3BsdXJhbCwgdmFyLT5uYW1lLAogICAgICAgICAgICAgICAgKEhDaGFyKikoVkdfKGluZGV4WEEpKGRlc2NyaWJlZCwwKSkgKTsKICAgICAgICAgIFRBR1IoIGRuMSApOwogICAgICAgICAgVEFHTCggZG4yICk7CiAgICAgICAgICBwMlhBKCBkbjIsCi0gICAgICAgICAgICAgICAiaW4gZnJhbWUgIyVkIG9mIHRocmVhZCAlZCIsIGZyYW1lTm8sIChJbnQpdGlkICk7CisgICAgICAgICAgICAgICAiaW4gZnJhbWUgIyVkIG9mIHRocmVhZCAldSIsIGZyYW1lTm8sIHRpZCApOwogICAgICAgICAgVEFHUiggZG4yICk7CiAgICAgICB9IGVsc2UgewogICAgICAgICAgcDJYQSggZG4xLAotICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsdSBieXRlJXMgaW5zaWRlICVzJXMiLAorICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsZCBieXRlJXMgaW5zaWRlICVzJXMiLAogICAgICAgICAgICAgICAgZGF0YV9hZGRyLCByZXNpZHVhbF9vZmZzZXQsIHJvX3BsdXJhbCwgdmFyLT5uYW1lLAogICAgICAgICAgICAgICAgKEhDaGFyKikoVkdfKGluZGV4WEEpKGRlc2NyaWJlZCwwKSkgKTsKICAgICAgICAgIHAyWEEoIGRuMiwKLSAgICAgICAgICAgICAgICJpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICVkIiwgZnJhbWVObywgKEludCl0aWQgKTsKKyAgICAgICAgICAgICAgICJpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICV1IiwgZnJhbWVObywgdGlkICk7CiAgICAgICB9CiAgICB9IAogICAgZWxzZQpAQCAtMzMyOCwxNSArMzM3NiwxNSBAQAogICAgICAgaWYgKHhtbCkgewogICAgICAgICAgVEFHTCggZG4xICk7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgJXBTJXBTLCIsCisgICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWxkIGJ5dGUlcyBpbnNpZGUgJXBTJXBTLCIsCiAgICAgICAgICAgICAgICBkYXRhX2FkZHIsIHJlc2lkdWFsX29mZnNldCwgcm9fcGx1cmFsLCB2YXItPm5hbWUsCiAgICAgICAgICAgICAgICAoSENoYXIqKShWR18oaW5kZXhYQSkoZGVzY3JpYmVkLDApKSApOwogICAgICAgICAgVEFHUiggZG4xICk7CiAgICAgICAgICBYQUdMKCBkbjIgKTsKICAgICAgICAgIFRYVEwoIGRuMiApOwogICAgICAgICAgcDJYQSggZG4yLAotICAgICAgICAgICAgICAgImRlY2xhcmVkIGF0ICVwUzolZCwgaW4gZnJhbWUgIyVkIG9mIHRocmVhZCAlZCIsCi0gICAgICAgICAgICAgICBmaWxlTmFtZSwgdmFyLT5saW5lTm8sIGZyYW1lTm8sIChJbnQpdGlkICk7CisgICAgICAgICAgICAgICAiZGVjbGFyZWQgYXQgJXBTOiVkLCBpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICV1IiwKKyAgICAgICAgICAgICAgIGZpbGVOYW1lLCB2YXItPmxpbmVObywgZnJhbWVObywgdGlkICk7CiAgICAgICAgICBUWFRSKCBkbjIgKTsKICAgICAgICAgIC8vIEZJWE1FOiBhbHNvIGRvIDxkaXI+CiAgICAgICAgICBwMlhBKCBkbjIsCkBAIC0zMzQ1LDEyICszMzkzLDEyIEBACiAgICAgICAgICBYQUdSKCBkbjIgKTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgJXMlcywiLAorICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsZCBieXRlJXMgaW5zaWRlICVzJXMsIiwKICAgICAgICAgICAgICAgIGRhdGFfYWRkciwgcmVzaWR1YWxfb2Zmc2V0LCByb19wbHVyYWwsIHZhci0+bmFtZSwKICAgICAgICAgICAgICAgIChIQ2hhciopKFZHXyhpbmRleFhBKShkZXNjcmliZWQsMCkpICk7CiAgICAgICAgICBwMlhBKCBkbjIsCi0gICAgICAgICAgICAgICAiZGVjbGFyZWQgYXQgJXM6JWQsIGluIGZyYW1lICMlZCBvZiB0aHJlYWQgJWQiLAotICAgICAgICAgICAgICAgZmlsZU5hbWUsIHZhci0+bGluZU5vLCBmcmFtZU5vLCAoSW50KXRpZCApOworICAgICAgICAgICAgICAgImRlY2xhcmVkIGF0ICVzOiVkLCBpbiBmcmFtZSAjJWQgb2YgdGhyZWFkICV1IiwKKyAgICAgICAgICAgICAgIGZpbGVOYW1lLCB2YXItPmxpbmVObywgZnJhbWVObywgdGlkICk7CiAgICAgICB9CiAgICB9CiAgICBlbHNlCkBAIC0zMzYyLDEyICszNDEwLDEyIEBACiAgICAgICBpZiAoeG1sKSB7CiAgICAgICAgICBUQUdMKCBkbjEgKTsKICAgICAgICAgIHAyWEEoIGRuMSwKLSAgICAgICAgICAgICAgICJMb2NhdGlvbiAweCVseCBpcyAlbHUgYnl0ZSVzIGluc2lkZSBnbG9iYWwgdmFyIFwiJXBTXCIiLAorICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsZCBieXRlJXMgaW5zaWRlIGdsb2JhbCB2YXIgXCIlcFNcIiIsCiAgICAgICAgICAgICAgICBkYXRhX2FkZHIsIHZhcl9vZmZzZXQsIHZvX3BsdXJhbCwgdmFyLT5uYW1lICk7CiAgICAgICAgICBUQUdSKCBkbjEgKTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgZ2xvYmFsIHZhciBcIiVzXCIiLAorICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsZCBieXRlJXMgaW5zaWRlIGdsb2JhbCB2YXIgXCIlc1wiIiwKICAgICAgICAgICAgICAgIGRhdGFfYWRkciwgdmFyX29mZnNldCwgdm9fcGx1cmFsLCB2YXItPm5hbWUgKTsKICAgICAgIH0KICAgIH0gCkBAIC0zMzgwLDcgKzM0MjgsNyBAQAogICAgICAgaWYgKHhtbCkgewogICAgICAgICAgVEFHTCggZG4xICk7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgZ2xvYmFsIHZhciBcIiVwU1wiIiwKKyAgICAgICAgICAgICAgICJMb2NhdGlvbiAweCVseCBpcyAlbGQgYnl0ZSVzIGluc2lkZSBnbG9iYWwgdmFyIFwiJXBTXCIiLAogICAgICAgICAgICAgICAgZGF0YV9hZGRyLCB2YXJfb2Zmc2V0LCB2b19wbHVyYWwsIHZhci0+bmFtZSApOwogICAgICAgICAgVEFHUiggZG4xICk7CiAgICAgICAgICBYQUdMKCBkbjIgKTsKQEAgLTMzOTYsNyArMzQ0NCw3IEBACiAgICAgICAgICBYQUdSKCBkbjIgKTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgZ2xvYmFsIHZhciBcIiVzXCIiLAorICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsZCBieXRlJXMgaW5zaWRlIGdsb2JhbCB2YXIgXCIlc1wiIiwKICAgICAgICAgICAgICAgIGRhdGFfYWRkciwgdmFyX29mZnNldCwgdm9fcGx1cmFsLCB2YXItPm5hbWUgKTsKICAgICAgICAgIHAyWEEoIGRuMiwKICAgICAgICAgICAgICAgICJkZWNsYXJlZCBhdCAlczolZCIsCkBAIC0zNDEyLDcgKzM0NjAsNyBAQAogICAgICAgaWYgKHhtbCkgewogICAgICAgICAgVEFHTCggZG4xICk7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgJXBTJXBTLCIsCisgICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWxkIGJ5dGUlcyBpbnNpZGUgJXBTJXBTLCIsCiAgICAgICAgICAgICAgICBkYXRhX2FkZHIsIHJlc2lkdWFsX29mZnNldCwgcm9fcGx1cmFsLCB2YXItPm5hbWUsCiAgICAgICAgICAgICAgICAoSENoYXIqKShWR18oaW5kZXhYQSkoZGVzY3JpYmVkLDApKSApOwogICAgICAgICAgVEFHUiggZG4xICk7CkBAIC0zNDIyLDkgKzM0NzAsOSBAQAogICAgICAgICAgVEFHUiggZG4yICk7CiAgICAgICB9IGVsc2UgewogICAgICAgICAgcDJYQSggZG4xLAotICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsdSBieXRlJXMgaW5zaWRlICVzJXMsIiwKKyAgICAgICAgICAgICAgICJMb2NhdGlvbiAweCVseCBpcyAlbGQgYnl0ZSVzIGluc2lkZSAlcyVzLCIsCiAgICAgICAgICAgICAgICBkYXRhX2FkZHIsIHJlc2lkdWFsX29mZnNldCwgcm9fcGx1cmFsLCB2YXItPm5hbWUsCi0gICAgICAgICAgICAgICAoY2hhciopKFZHXyhpbmRleFhBKShkZXNjcmliZWQsMCkpICk7CisgICAgICAgICAgICAgICAoSENoYXIqKShWR18oaW5kZXhYQSkoZGVzY3JpYmVkLDApKSApOwogICAgICAgICAgcDJYQSggZG4yLAogICAgICAgICAgICAgICAgImEgZ2xvYmFsIHZhcmlhYmxlIik7CiAgICAgICB9CkBAIC0zNDM2LDcgKzM0ODQsNyBAQAogICAgICAgaWYgKHhtbCkgewogICAgICAgICAgVEFHTCggZG4xICk7CiAgICAgICAgICBwMlhBKCBkbjEsCi0gICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWx1IGJ5dGUlcyBpbnNpZGUgJXBTJXBTLCIsCisgICAgICAgICAgICAgICAiTG9jYXRpb24gMHglbHggaXMgJWxkIGJ5dGUlcyBpbnNpZGUgJXBTJXBTLCIsCiAgICAgICAgICAgICAgICBkYXRhX2FkZHIsIHJlc2lkdWFsX29mZnNldCwgcm9fcGx1cmFsLCB2YXItPm5hbWUsCiAgICAgICAgICAgICAgICAoSENoYXIqKShWR18oaW5kZXhYQSkoZGVzY3JpYmVkLDApKSApOwogICAgICAgICAgVEFHUiggZG4xICk7CkBAIC0zNDUzLDcgKzM1MDEsNyBAQAogICAgICAgICAgWEFHUiggZG4yICk7CiAgICAgICB9IGVsc2UgewogICAgICAgICAgcDJYQSggZG4xLAotICAgICAgICAgICAgICAgIkxvY2F0aW9uIDB4JWx4IGlzICVsdSBieXRlJXMgaW5zaWRlICVzJXMsIiwKKyAgICAgICAgICAgICAgICJMb2NhdGlvbiAweCVseCBpcyAlbGQgYnl0ZSVzIGluc2lkZSAlcyVzLCIsCiAgICAgICAgICAgICAgICBkYXRhX2FkZHIsIHJlc2lkdWFsX29mZnNldCwgcm9fcGx1cmFsLCB2YXItPm5hbWUsCiAgICAgICAgICAgICAgICAoSENoYXIqKShWR18oaW5kZXhYQSkoZGVzY3JpYmVkLDApKSApOwogICAgICAgICAgcDJYQSggZG4yLApAQCAtMzYxOCw4ICszNjY2LDggQEAKICAgIFhBcnJheSBpdHNlbGYuCiAqLwogQm9vbCBWR18oZ2V0X2RhdGFfZGVzY3JpcHRpb24pKCAKLSAgICAgICAgLypNT0QqLyB2b2lkKiAvKiByZWFsbHksIFhBcnJheSogb2YgSENoYXIgKi8gZG5hbWUxdiwKLSAgICAgICAgLypNT0QqLyB2b2lkKiAvKiByZWFsbHksIFhBcnJheSogb2YgSENoYXIgKi8gZG5hbWUydiwKKyAgICAgICAgLypNT0QqLyBYQXJyYXkqIC8qIG9mIEhDaGFyICovIGRuYW1lMSwKKyAgICAgICAgLypNT0QqLyBYQXJyYXkqIC8qIG9mIEhDaGFyICovIGRuYW1lMiwKICAgICAgICAgQWRkciBkYXRhX2FkZHIKICAgICAgKQogewpAQCAtMzYzMyw5ICszNjgxLDYgQEAKICAgIERlYnVnSW5mbyogZGk7CiAgICBXb3JkICAgICAgIGo7CiAKLSAgIFhBcnJheSogICAgZG5hbWUxID0gKFhBcnJheSopZG5hbWUxdjsKLSAgIFhBcnJheSogICAgZG5hbWUyID0gKFhBcnJheSopZG5hbWUydjsKLQogICAgaWYgKDApIFZHXyhwcmludGYpKCJnZXRfZGF0YV9kZXNjcmlwdGlvbjogZGF0YWFkZHIgJSNseFxuIiwgZGF0YV9hZGRyKTsKICAgIC8qIEZpcnN0LCBzZWUgaWYgZGF0YV9hZGRyIGlzIChvciBpcyBwYXJ0IG9mKSBhIGdsb2JhbCB2YXJpYWJsZS4KICAgICAgIExvb3Agb3ZlciB0aGUgRGVidWdJbmZvcyB3ZSBoYXZlLiAgQ2hlY2sgZGF0YV9hZGRyIGFnYWluc3QgdGhlCkBAIC0zODg3LDggKzM5MzIsOCBAQAogICAgICAgICAgcmVzID0gTUxfKGV2YWx1YXRlX0dYKSggdmFyLT5nZXhwciwgdmFyLT5mYkdYLCAmcmVncywgZGkgKTsKICAgICAgICAgIHZnX2Fzc2VydChyZXMua2luZCA9PSBHWFJfQWRkcik7CiAgICAgICAgICBpZiAoZGVidWcpCi0gICAgICAgICBWR18ocHJpbnRmKSgiICAgJTVsZCAuLiAlNWxkIChzcCkgJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICByZXMud29yZCwgcmVzLndvcmQgKyAoKFVXb3JkKW11bC51bCkgLSAxLCB2YXItPm5hbWUpOworICAgICAgICAgVkdfKHByaW50ZikoIiAgICU1bHUgLi4gJTVsbHUgKHNwKSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIHJlcy53b3JkLCByZXMud29yZCArIG11bC51bCAtIDEsIHZhci0+bmFtZSk7CiAgICAgICAgICBibG9jay5iYXNlICA9IHJlcy53b3JkOwogICAgICAgICAgYmxvY2suc3pCICAgPSAoU2l6ZVQpbXVsLnVsOwogICAgICAgICAgYmxvY2suc3BSZWwgPSBUcnVlOwpAQCAtMzkwNiw4ICszOTUxLDggQEAKICAgICAgICAgIHJlcyA9IE1MXyhldmFsdWF0ZV9HWCkoIHZhci0+Z2V4cHIsIHZhci0+ZmJHWCwgJnJlZ3MsIGRpICk7CiAgICAgICAgICB2Z19hc3NlcnQocmVzLmtpbmQgPT0gR1hSX0FkZHIpOwogICAgICAgICAgaWYgKGRlYnVnKQotICAgICAgICAgVkdfKHByaW50ZikoIiAgICU1bGQgLi4gJTVsZCAoRlApICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgcmVzLndvcmQsIHJlcy53b3JkICsgKChVV29yZCltdWwudWwpIC0gMSwgdmFyLT5uYW1lKTsKKyAgICAgICAgIFZHXyhwcmludGYpKCIgICAlNWx1IC4uICU1bGx1IChGUCkgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICByZXMud29yZCwgcmVzLndvcmQgKyBtdWwudWwgLSAxLCB2YXItPm5hbWUpOwogICAgICAgICAgYmxvY2suYmFzZSAgPSByZXMud29yZDsKICAgICAgICAgIGJsb2NrLnN6QiAgID0gKFNpemVUKW11bC51bDsKICAgICAgICAgIGJsb2NrLnNwUmVsID0gRmFsc2U7CkBAIC0zOTMwLDggKzM5NzUsOCBAQAogICAgcG9pbnQuICBJZiAnYXJyYXlzX29ubHknIGlzIFRydWUsIG9ubHkgYXJyYXktdHlwZWQgYmxvY2tzIGFyZQogICAgcmV0dXJuZWQ7IG90aGVyd2lzZSBibG9ja3Mgb2YgYWxsIHR5cGVzIGFyZSByZXR1cm5lZC4gKi8KIAotdm9pZCogLyogcmVhbGx5LCBYQXJyYXkqIG9mIFN0YWNrQmxvY2sgKi8KLSAgICAgIFZHXyhkaV9nZXRfc3RhY2tfYmxvY2tzX2F0X2lwKSggQWRkciBpcCwgQm9vbCBhcnJheXNfb25seSApCitYQXJyYXkqIC8qIG9mIFN0YWNrQmxvY2sgKi8KK1ZHXyhkaV9nZXRfc3RhY2tfYmxvY2tzX2F0X2lwKSggQWRkciBpcCwgQm9vbCBhcnJheXNfb25seSApCiB7CiAgICAvKiBUaGlzIGlzIGEgZGVyaXZhdGlvbiBvZiBjb25zaWRlcl92YXJzX2luX2ZyYW1lKCkgYWJvdmUuICovCiAgICBXb3JkICAgICAgIGk7CkBAIC00MDQ0LDkgKzQwODksOCBAQAogICAgYXJyYXktdHlwZWQgYmxvY2tzIGFyZSByZXR1cm5lZDsgb3RoZXJ3aXNlIGJsb2NrcyBvZiBhbGwgdHlwZXMgYXJlCiAgICByZXR1cm5lZC4gKi8KIAotdm9pZCogLyogcmVhbGx5LCBYQXJyYXkqIG9mIEdsb2JhbEJsb2NrICovCi0gICAgICBWR18oZGlfZ2V0X2dsb2JhbF9ibG9ja3NfZnJvbV9kaWhhbmRsZSkgKCBVTG9uZyBkaV9oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb29sICBhcnJheXNfb25seSApCitYQXJyYXkqIC8qIG9mIEdsb2JhbEJsb2NrICovCitWR18oZGlfZ2V0X2dsb2JhbF9ibG9ja3NfZnJvbV9kaWhhbmRsZSkgKCBVTG9uZyBkaV9oYW5kbGUsIEJvb2wgIGFycmF5c19vbmx5ICkKIHsKICAgIC8qIFRoaXMgaXMgYSBkZXJpdmF0aW9uIG9mIGNvbnNpZGVyX3ZhcnNfaW5fZnJhbWUoKSBhYm92ZS4gKi8KIApAQCAtNDMwOSw4ICs0MzUzLDggQEAKIAogICAgICAgaWYgKDApCiAgICAgICAgICBWR18ocHJpbnRmKSgKLSAgICAgICAgICAgICJhZGRyPSUjbHggZGk9JXAgJXMgZ290PSUjbHgsJWxkIHBsdD0lI2x4LCVsZCAiCi0gICAgICAgICAgICAiZGF0YT0lI2x4LCVsZCBic3M9JSNseCwlbGRcbiIsCisgICAgICAgICAgICAiYWRkcj0lI2x4IGRpPSVwICVzIGdvdD0lI2x4LCVsdSBwbHQ9JSNseCwlbHUgIgorICAgICAgICAgICAgImRhdGE9JSNseCwlbHUgYnNzPSUjbHgsJWx1XG4iLAogICAgICAgICAgICAgYSwgZGksIGRpLT5mc20uZmlsZW5hbWUsCiAgICAgICAgICAgICBkaS0+Z290X2F2bWEsICBkaS0+Z290X3NpemUsCiAgICAgICAgICAgICBkaS0+cGx0X2F2bWEsICBkaS0+cGx0X3NpemUsCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vaW1hZ2UuYyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9pbWFnZS5jCmluZGV4IDgxOWE3NzAuLjE3MzVjZTYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9pbWFnZS5jCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9pbWFnZS5jCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMy0yMDEzIE1vemlsbGEgRm91bmRhdGlvbgorICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgTW96aWxsYSBGb3VuZGF0aW9uCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC00NzQsNyArNDc0LDcgQEAKICAgICAgIFVJbnQgZGVsYXkgPSBub3cgLSB0X2xhc3Q7CiAgICAgICB0X2xhc3QgPSBub3c7CiAgICAgICBucmVhZCArPSBsZW47Ci0gICAgICBWR18ocHJpbnRmKSgiWFhYWFhYWFggKHRvdCAlJ2xsZCkgIHJlYWQgJSdsZCAgb2Zmc2V0ICUnbGxkICBkZWxheSAlJ3VcbiIsIAorICAgICAgVkdfKHByaW50ZikoIlhYWFhYWFhYICh0b3QgJSdsbHUpICByZWFkICUnbHUgIG9mZnNldCAlJ2xsdSAgZGVsYXkgJSd1XG4iLCAKICAgICAgICAgICAgICAgICAgIG5yZWFkLCBsZW4sIG9mZiwgZGVsYXkpOwogICAgfQogCkBAIC03OTgsNiArNzk4LDIwIEBACiAgICByZXR1cm4gaW1nLT5zaXplID4gMCAmJiBvZmZzZXQgKyBzaXplIDw9IChEaU9mZlQpaW1nLT5zaXplOwogfQogCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBlbnN1cmVfdmFsaWRfZmFpbGVkIChjb25zdCBEaUltYWdlKiBpbWcsIERpT2ZmVCBvZmZzZXQsIFNpemVUIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIQ2hhciogY2FsbGVyKQoreworICAgVkdfKHVtc2cpKCJWYWxncmluZDogZGVidWdpbmZvIHJlYWRlcjogZW5zdXJlX3ZhbGlkIGZhaWxlZDpcbiIpOworICAgVkdfKHVtc2cpKCJWYWxncmluZDogICBkdXJpbmcgY2FsbCB0byAlc1xuIiwgY2FsbGVyKTsKKyAgIFZHXyh1bXNnKSgiVmFsZ3JpbmQ6ICAgcmVxdWVzdCBmb3IgcmFuZ2UgWyVsbHUsICslbHUpIGV4Y2VlZHNcbiIsCisgICAgICAgICAgICAgb2Zmc2V0LCBzaXplKTsKKyAgIFZHXyh1bXNnKSgiVmFsZ3JpbmQ6ICAgdmFsaWQgaW1hZ2Ugc2l6ZSBvZiAlbHUgZm9yIGltYWdlOlxuIiwKKyAgICAgICAgICAgICBpbWctPnNpemUpOworICAgVkdfKHVtc2cpKCJWYWxncmluZDogICBcIiVzXCJcbiIsIGltZy0+c291cmNlLm5hbWUpOworICAgZ2l2ZV91cF9faW1hZ2Vfb3ZlcnJ1bigpOworfQorCiAvKiBDaGVjayB0aGUgZ2l2ZW4gcmFuZ2UgaXMgdmFsaWQsIGFuZCBpZiBub3QsIHNodXQgZG93biB0aGUgc3lzdGVtLgogICAgQW4gaW52YWxpZCByYW5nZSB3b3VsZCBpbXBseSB0aGF0IHdlJ3JlIHRyeWluZyB0byByZWFkIG91dHNpZGUgdGhlCiAgICBpbWFnZSwgd2hpY2ggbm9ybWFsbHkgbWVhbnMgdGhlIGltYWdlIGlzIGNvcnJ1cHRlZCBzb21laG93LCBvciB0aGUKQEAgLTgwOCwxNCArODIyLDggQEAKIHsKICAgIGlmIChMSUtFTFkoTUxfKGltZ192YWxpZCkoaW1nLCBvZmZzZXQsIHNpemUpKSkKICAgICAgIHJldHVybjsKLSAgIFZHXyh1bXNnKSgiVmFsZ3JpbmQ6IGRlYnVnaW5mbyByZWFkZXI6IGVuc3VyZV92YWxpZCBmYWlsZWQ6XG4iKTsKLSAgIFZHXyh1bXNnKSgiVmFsZ3JpbmQ6ICAgZHVyaW5nIGNhbGwgdG8gJXNcbiIsIGNhbGxlcik7Ci0gICBWR18odW1zZykoIlZhbGdyaW5kOiAgIHJlcXVlc3QgZm9yIHJhbmdlIFslbGx1LCArJWxsdSkgZXhjZWVkc1xuIiwKLSAgICAgICAgICAgICAoVUxvbmcpb2Zmc2V0LCAoVUxvbmcpc2l6ZSk7Ci0gICBWR18odW1zZykoIlZhbGdyaW5kOiAgIHZhbGlkIGltYWdlIHNpemUgb2YgJWxsdSBmb3IgaW1hZ2U6XG4iLAotICAgICAgICAgICAgIChVTG9uZylpbWctPnNpemUpOwotICAgVkdfKHVtc2cpKCJWYWxncmluZDogICBcIiVzXCJcbiIsIGltZy0+c291cmNlLm5hbWUpOwotICAgZ2l2ZV91cF9faW1hZ2Vfb3ZlcnJ1bigpOworICAgZWxzZQorICAgICAgZW5zdXJlX3ZhbGlkX2ZhaWxlZChpbWcsIG9mZnNldCwgc2l6ZSwgY2FsbGVyKTsKIH0KIAogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vbWlzYy5jIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL21pc2MuYwppbmRleCAxNGQzOTQ5Li4wM2NiZjAzIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vbWlzYy5jCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9taXNjLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X2QzYmFzaWNzLmggYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9kM2Jhc2ljcy5oCmluZGV4IDRjMDY5NjYuLmI3ZWVjNmYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X2QzYmFzaWNzLmgKKysrIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL3ByaXZfZDNiYXNpY3MuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBPcGVuV29ya3MgTExQIGFuZCBvdGhlcnM7IHNlZSBiZWxvdworICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgT3BlbldvcmtzIExMUCBhbmQgb3RoZXJzOyBzZWUgYmVsb3cKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9pbWFnZS5oIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL3ByaXZfaW1hZ2UuaAppbmRleCAwODNlZDc4Li45NTIzZjQ4IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9pbWFnZS5oCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X2ltYWdlLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgTW96aWxsYSBGb3VuZGF0aW9uCisgICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBNb3ppbGxhIEZvdW5kYXRpb24KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X21pc2MuaCBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X21pc2MuaAppbmRleCA0MGEwZTQ4Li5kM2FkYjdkIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9taXNjLmgKKysrIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL3ByaXZfbWlzYy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9yZWFkZHdhcmYuaCBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRkd2FyZi5oCmluZGV4IGZiMmUxOTMuLjZjZGYyNmUgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRkd2FyZi5oCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRkd2FyZi5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRkd2FyZjMuaCBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRkd2FyZjMuaAppbmRleCA2MzYxNTMxLi4zY2NjYzY4IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9yZWFkZHdhcmYzLmgKKysrIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL3ByaXZfcmVhZGR3YXJmMy5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9yZWFkZWxmLmggYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9yZWFkZWxmLmgKaW5kZXggMjJjNThlOS4uMTdkMzc2MSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3ByaXZfcmVhZGVsZi5oCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRlbGYuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9yZWFkZXhpZHguaCBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRleGlkeC5oCmluZGV4IDhiMjFmZmIuLjQ5YzFkMWEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRleGlkeC5oCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRleGlkeC5oCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxNC0yMDE0IE1vemlsbGEgRm91bmRhdGlvbgorICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgTW96aWxsYSBGb3VuZGF0aW9uCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9yZWFkcGRiLmggYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl9yZWFkcGRiLmgKaW5kZXggMTE3YThjNS4uYTQyMzc5OSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3ByaXZfcmVhZHBkYi5oCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3JlYWRwZGIuaApAQCAtMTEsNyArMTEsNyBAQAogICAgICAgZGVyaXZlZCBmcm9tIHJlYWRlbGYuYyBhbmQgdmFsZ3JpbmQtMjAwMzEwMTItd2luZS92Z19zeW10YWIyLmMKICAgICAgIGRlcml2ZWQgZnJvbSB3aW5lLTEuMC90b29scy93aW5lZHVtcC9wZGIuYyBhbmQgbXNjLmMKIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMyLDcgKzMyLDcgQEAKICAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKICNpZm5kZWYgX19QUklWX1JFQURQREJfSAogI2RlZmluZSBfX1BSSVZfUkVBRFBEQl9ICkBAIC01OSw3ICs1OSw3IEBACiAKICNlbmRpZiAvKiBuZGVmIF9fUFJJVl9SRUFEUERCX0ggKi8KIAotI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisjZW5kaWYgLy8gZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3N0b3JhZ2UuaCBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3N0b3JhZ2UuaAppbmRleCBjNzI3OGUyZS4uYWExZDlmOSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3ByaXZfc3RvcmFnZS5oCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3N0b3JhZ2UuaApAQCAtOSw3ICs5LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl90eXR5cGVzLmggYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcHJpdl90eXR5cGVzLmgKaW5kZXggODJmZDkwNS4uZWFlMzcwMSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3ByaXZfdHl0eXBlcy5oCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9wcml2X3R5dHlwZXMuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRkd2FyZi5jIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRkd2FyZi5jCmluZGV4IDRhMGY3NTAuLjg4ZDQ5ZTkgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9yZWFkZHdhcmYuYworKysgYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZGR3YXJmLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI5LDcgKzI5LDcgQEAKICAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKICNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIKICNpbmNsdWRlICJwdWJfY29yZV9kZWJ1Z2luZm8uaCIKQEAgLTI2OSw3ICsyNjksOCBAQAogICAgc3dpdGNoIChvcF9jb2RlKSB7CiAgICAgICBjYXNlIERXX0xORV9lbmRfc2VxdWVuY2U6CiAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIjEwMDE6IHNpLT5vICUjbHgsIHNtci5hICUjbHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGktPnRleHRfZGVidWdfYmlhcywgc3RhdGVfbWFjaGluZV9yZWdzLmFkZHJlc3MgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpZGktPnRleHRfZGVidWdfYmlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZV9tYWNoaW5lX3JlZ3MuYWRkcmVzcyApOwogICAgICAgICAgLyogSlJTOiBhZGRlZCBmb3IgY29tcGxpYW5jZSB3aXRoIHNwZWM7IGlzIHBvaW50bGVzcyBkdWUgdG8KICAgICAgICAgICAgIHJlc2V0X3N0YXRlX21hY2hpbmUgYmVsb3cgKi8KICAgICAgICAgIHN0YXRlX21hY2hpbmVfcmVncy5lbmRfc2VxdWVuY2UgPSAxOyAKQEAgLTQ1NCw5ICs0NTUsOSBAQAogCiAgICAgICBJdCBzZWVtcyB0byBtZSB0aGF0IHRoZSBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyIGdlbmVyYXRlcyBiYWQKICAgICAgIERXQVJGMiBsaW5lIGluZm8gY29kZTogSXQgc2V0cyAiaXNfc3RtdCIgb2YgdGhlIHN0YXRlIG1hY2hpbmUgaW4KLSAgICAgIHRoZSB0aGUgbGluZSBpbmZvIHJlYWRlciB0byBiZSBhbHdheXMgZmFsc2UuIFRodXMsIHRoZXJlIGlzCi0gICAgICBuZXZlciBhIHN0YXRlbWVudCBib3VuZGFyeSBnZW5lcmF0ZWQgYW5kIHRoZXJlZm9yZSBuZXZlciBhCi0gICAgICBpbnN0cnVjdGlvbiByYW5nZS9saW5lIG51bWJlciBtYXBwaW5nIGdlbmVyYXRlZCBmb3IgdmFsZ3JpbmQuCisgICAgICB0aGUgbGluZSBpbmZvIHJlYWRlciB0byBiZSBhbHdheXMgZmFsc2UuIFRodXMsIHRoZXJlIGlzIG5ldmVyCisgICAgICBhIHN0YXRlbWVudCBib3VuZGFyeSBnZW5lcmF0ZWQgYW5kIHRoZXJlZm9yZSBuZXZlciBhbiBpbnN0cnVjdGlvbgorICAgICAgcmFuZ2UvbGluZSBudW1iZXIgbWFwcGluZyBnZW5lcmF0ZWQgZm9yIHZhbGdyaW5kLgogCiAgICAgICBQbGVhc2UgaGF2ZSBhIGxvb2sgYXQgdGhlIERXQVJGMiBzcGVjaWZpY2F0aW9uLCBDaC4gNi4yCiAgICAgICAoeDg2LmRkai5jb20vZnRwL21hbnVhbHMvdG9vbHMvZHdhcmYucGRmKS4gIFBlcmhhcHMgSSB1bmRlcnN0YW5kCkBAIC00NjQsNyArNDY1LDcgQEAKIAogICAgICAgSSBqdXN0IGhhZCBhIGxvb2sgYXQgdGhlIEdEQiBEV0FSRjIgcmVhZGVyLi4uICBUaGV5IGNvbXBsZXRlbHkKICAgICAgIGlnbm9yZSAiaXNfc3RtdCIgd2hlbiByZWNvcmRpbmcgbGluZSBpbmZvIDstKSBUaGF0J3MgdGhlIHJlYXNvbgotICAgICAgIm9iamR1bXAgLVMiIHdvcmtzIG9uIGZpbGVzIGZyb20gdGhlIHRoZSBpbnRlbCBmb3J0cmFuIGNvbXBpbGVyLgorICAgICAgIm9iamR1bXAgLVMiIHdvcmtzIG9uIGZpbGVzIGZyb20gdGhlIGludGVsIGZvcnRyYW4gY29tcGlsZXIuCiAKICAgICAgIFRoZXJlZm9yZTogKi8KICAgIGluZm8ubGlfZGVmYXVsdF9pc19zdG10ID0gVHJ1ZTsgCkBAIC02MTgsMTAgKzYxOSwxMSBAQAogICAgICAgICAgSW50IGFkdkFkZHIgPSBhZHY7CiAgICAgICAgICBzdGF0ZV9tYWNoaW5lX3JlZ3MuYWRkcmVzcyArPSBhZHY7CiAKLSAgICAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgic21yLmEgKz0gJSNseFxuIiwgYWR2ICk7CisgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoInNtci5hICs9ICUjbHhcbiIsIChVV29yZClhZHYgKTsKICAgICAgICAgIGFkdiA9IChvcF9jb2RlICUgaW5mby5saV9saW5lX3JhbmdlKSArIGluZm8ubGlfbGluZV9iYXNlOwogICAgICAgICAgaWYgKDApIFZHXyhwcmludGYpKCIxMDAyOiBkaS0+byAlI2x4LCBzbXIuYSAlI2x4XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT50ZXh0X2RlYnVnX2JpYXMsIHN0YXRlX21hY2hpbmVfcmVncy5hZGRyZXNzICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKWRpLT50ZXh0X2RlYnVnX2JpYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVfbWFjaGluZV9yZWdzLmFkZHJlc3MgKTsKICAgICAgICAgIHN0YXRlX21hY2hpbmVfcmVncy5saW5lICs9IGFkdjsKIAogICAgICAgICAgaWYgKGRpLT5kZHVtcF9saW5lKQpAQCAtNjYwLDcgKzY2Miw4IEBACiAKICAgICAgICAgIGNhc2UgRFdfTE5TX2NvcHk6CiAgICAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIjEwMDI6IGRpLT5vICUjbHgsIHNtci5hICUjbHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGktPnRleHRfZGVidWdfYmlhcywgc3RhdGVfbWFjaGluZV9yZWdzLmFkZHJlc3MgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpZGktPnRleHRfZGVidWdfYmlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZV9tYWNoaW5lX3JlZ3MuYWRkcmVzcyApOwogICAgICAgICAgICAgaWYgKHN0YXRlX21hY2hpbmVfcmVncy5pc19zdG10KSB7CiAgICAgICAgICAgICAgICAvKiBvbmx5IGFkZCBhIHN0YXRlbWVudCBpZiB0aGVyZSB3YXMgYSBwcmV2aW91cyBib3VuZGFyeSAqLwogICAgICAgICAgICAgICAgaWYgKHN0YXRlX21hY2hpbmVfcmVncy5sYXN0X2FkZHJlc3MpIHsKQEAgLTY4NCwxMSArNjg3LDExIEBACiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgY2FzZSBEV19MTlNfYWR2YW5jZV9wYzogewotICAgICAgICAgICAgV29yZCBhZHYgPSBpbmZvLmxpX21pbl9pbnNuX2xlbmd0aCAqIHN0ZXBfbGViMTI4VSgmZGF0YSk7CisgICAgICAgICAgICBVV29yZCBhZHYgPSBpbmZvLmxpX21pbl9pbnNuX2xlbmd0aCAqIHN0ZXBfbGViMTI4VSgmZGF0YSk7CiAgICAgICAgICAgICBzdGF0ZV9tYWNoaW5lX3JlZ3MuYWRkcmVzcyArPSBhZHY7CiAgICAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoInNtci5hICs9ICUjbHhcbiIsIGFkdiApOwogICAgICAgICAgICAgaWYgKGRpLT5kZHVtcF9saW5lKQotICAgICAgICAgICAgICAgVkdfKHByaW50ZikoIiAgQWR2YW5jZSBQQyBieSAlbGQgdG8gMHglbHhcbiIsIAorICAgICAgICAgICAgICAgVkdfKHByaW50ZikoIiAgQWR2YW5jZSBQQyBieSAlbHUgdG8gMHglbHhcbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2LCBzdGF0ZV9tYWNoaW5lX3JlZ3MuYWRkcmVzcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KQEAgLTczMyw3ICs3MzYsNyBAQAogICAgICAgICAgICAgV29yZCBhZHYgPSAoKCgyNTUgLSBpbmZvLmxpX29wY29kZV9iYXNlKSAvIGluZm8ubGlfbGluZV9yYW5nZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpbmZvLmxpX21pbl9pbnNuX2xlbmd0aCk7CiAgICAgICAgICAgICBzdGF0ZV9tYWNoaW5lX3JlZ3MuYWRkcmVzcyArPSBhZHY7Ci0gICAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoInNtci5hICs9ICUjbHhcbiIsIGFkdiApOworICAgICAgICAgICAgaWYgKDApIFZHXyhwcmludGYpKCJzbXIuYSArPSAlI2x4XG4iLCAoVVdvcmQpYWR2ICk7CiAgICAgICAgICAgICBpZiAoZGktPmRkdW1wX2xpbmUpCiAgICAgICAgICAgICAgICBWR18ocHJpbnRmKSgiICBBZHZhbmNlIFBDIGJ5IGNvbnN0YW50ICVsZCB0byAweCVseFxuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHYsIChBZGRyKXN0YXRlX21hY2hpbmVfcmVncy5hZGRyZXNzKTsKQEAgLTc0MSw3ICs3NDQsNyBAQAogICAgICAgICAgfQogICAgICAgICAgY2FzZSBEV19MTlNfZml4ZWRfYWR2YW5jZV9wYzogewogICAgICAgICAgICAgLyogWFhYOiBOZWVkIHNvbWV0aGluZyB0byBnZXQgMiBieXRlcyAqLwotICAgICAgICAgICAgV29yZCBhZHYgPSBNTF8oY3VyX3N0ZXBfVVNob3J0KSgmZGF0YSk7CisgICAgICAgICAgICBVV29yZCBhZHYgPSBNTF8oY3VyX3N0ZXBfVVNob3J0KSgmZGF0YSk7CiAgICAgICAgICAgICBzdGF0ZV9tYWNoaW5lX3JlZ3MuYWRkcmVzcyArPSBhZHY7CiAgICAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoInNtci5hICs9ICUjbHhcbiIsIGFkdiApOwogICAgICAgICAgICAgaWYgKGRpLT5kZHVtcF9saW5lKQpAQCAtMTEzMSw3ICsxMTM0LDcgQEAKICAgICAgIAogICAgICAgaWYgKDApIHsKICAgICAgICAgIEhDaGFyKiBzdHJfbmFtZSA9IE1MXyhjdXJfcmVhZF9zdHJkdXApKHVpLm5hbWUsICJkaS5yZGQzLjMiKTsKLSAgICAgICAgIFZHXyhwcmludGYpKCJkZWJ1Z19saW5lX3N6ICVsbGQsIHVpLnN0bXRfbGlzdCAlbGxkICAlc1xuIiwKKyAgICAgICAgIFZHXyhwcmludGYpKCJkZWJ1Z19saW5lX3N6ICVsbHUsIHVpLnN0bXRfbGlzdCAlbGx1ICAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgIGVzY25fZGVidWdfbGluZS5zekIsIHVpLnN0bXRfbGlzdCwgc3RyX25hbWUgKTsKICAgICAgICAgIE1MXyhkaW5mb19mcmVlKShzdHJfbmFtZSk7CiAgICAgICB9CkBAIC0xNDM3LDcgKzE0NDAsNyBAQAogCSB9ICAgICAgICAKICAgICAgIH0gIAogCi0gICAgICAvKiBNb3ZlIG9uIHRoZSB0aGUgbmV4dCBESUUuICovCisgICAgICAvKiBNb3ZlIG9uIHRoZSBuZXh0IERJRS4gKi8KICAgICAgIGRpZV9vZmZzZXQgKz0gZGllX3N6YjsKIAogICAgfSAvKiBMb29waW5nIG92ZXIgRElFcyAqLwpAQCAtMTcxOSwxMSArMTcyMiwxMSBAQAogCiAvKiAtLS0tLS0tLS0tLS0tLS0gRGVjbHMgLS0tLS0tLS0tLS0tLS0tICovCiAKLSNpZiBkZWZpbmVkKFZHUF94ODZfbGludXgpCisjaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKICMgIGRlZmluZSBGUF9SRUcgICAgICAgICA1CiAjICBkZWZpbmUgU1BfUkVHICAgICAgICAgNAogIyAgZGVmaW5lIFJBX1JFR19ERUZBVUxUIDgKLSNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X2xpbnV4KQorI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpIHx8IGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCiAjICBkZWZpbmUgRlBfUkVHICAgICAgICAgNgogIyAgZGVmaW5lIFNQX1JFRyAgICAgICAgIDcKICMgIGRlZmluZSBSQV9SRUdfREVGQVVMVCAxNgpAQCAtMTgyNSw2ICsxODI4LDcgQEAKICAgICBEV19DRkFfR05VX3dpbmRvd19zYXZlICAgID0gMHgyZCwgLyogR05VIGV4dGVuc2lvbiAqLwogICAgIERXX0NGQV9HTlVfYXJnc19zaXplICAgICAgPSAweDJlLCAvKiBHTlUgZXh0ZW5zaW9uICovCiAgICAgRFdfQ0ZBX0dOVV9uZWdhdGl2ZV9vZmZzZXRfZXh0ZW5kZWQgPSAweDJmLCAvKiBHTlUgZXh0ZW5zaW9uICovCisgICAgRFdfQ0ZBX09SQ0xfYXJnX2xvYyAgICAgICA9IDB4MzAsIC8qIE9yYWNsZSBleHRlbnNpb24gKi8KICAgICBEV19DRkFfaGlfdXNlciAgICAgICAgICAgID0gMHgzZgogICB9OwogCkBAIC0yMDIzLDYgKzIwMjcsNyBAQAogICAgICAgRGlDdXJzb3IgZWhmcmFtZV9pbWFnZTsKICAgICAgIEFkZHIgICAgIGVoZnJhbWVfYXZtYTsKICAgICAgIEFkZHIgICAgIHRleHRfYmlhczsKKyAgICAgIEFkZHIgICAgIGdvdF9hdm1hOwogICAgfQogICAgQWRkcmVzc0RlY29kaW5nSW5mbzsKIApAQCAtMjY1MCw2ICsyNjU1LDcgQEAKICAgIFVDaGFyICAgIGVuY29kaW5nICAgICAgPSBhZGktPmVuY29kaW5nOwogICAgRGlDdXJzb3IgZWhmcmFtZV9pbWFnZSA9IGFkaS0+ZWhmcmFtZV9pbWFnZTsKICAgIEFkZHIgICAgIGVoZnJhbWVfYXZtYSAgPSBhZGktPmVoZnJhbWVfYXZtYTsKKyAgIEFkZHIgICAgIGdvdF9hdm1hICAgICAgPSBhZGktPmdvdF9hdm1hOwogCiAgICB2Z19hc3NlcnQoKGVuY29kaW5nICYgRFdfRUhfUEVfaW5kaXJlY3QpID09IDApOwogCkBAIC0yNjYxLDggKzI2NjcsNyBAQAogICAgICAgICAgYmFzZSA9IGVoZnJhbWVfYXZtYSArIE1MXyhjdXJfbWludXMpKCpkYXRhLCBlaGZyYW1lX2ltYWdlKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSBEV19FSF9QRV9kYXRhcmVsOgotICAgICAgICAgdmdfYXNzZXJ0KDApOwotICAgICAgICAgYmFzZSA9IC8qIGRhdGEgYmFzZSBhZGRyZXNzICovIDA7CisgICAgICAgICBiYXNlID0gZ290X2F2bWE7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgRFdfRUhfUEVfdGV4dHJlbDoKICAgICAgICAgIHZnX2Fzc2VydCgwKTsKQEAgLTMzNjEsNiArMzM2NiwxMSBAQAogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAKKyAgICAgIGNhc2UgRFdfQ0ZBX09SQ0xfYXJnX2xvYzoKKyAgICAgICAgIGlmIChkaS0+ZGR1bXBfZnJhbWVzKQorICAgICAgICAgICAgVkdfKHByaW50ZikoIiAgRFdfQ0ZBX09SQ0xfYXJnX2xvY1xuIik7CisgICAgICAgICBicmVhazsKKwogICAgICAgZGVmYXVsdDogCiAgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJEV0FSRjIgQ0ZJIHJlYWRlcjogdW5oYW5kbGVkIENGSSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnN0cnVjdGlvbiAwOiVkXG4iLCAoSW50KWxvNik7IApAQCAtMzQzOSwzMCArMzQ0OSwzMCBAQAogCiAgICAgICBjYXNlIERXX0NGQV9hZHZhbmNlX2xvYzE6CiAgICAgICAgICBkZWx0YSA9IChVSW50KU1MXyhjdXJfc3RlcF9VQ2hhcikoJmluc3RyKTsKLSAgICAgICAgIFZHXyhwcmludGYpKCIgIHNjaTpEV19DRkFfYWR2YW5jZV9sb2MxKCVkKVxuIiwgZGVsdGEpOyAKKyAgICAgICAgIFZHXyhwcmludGYpKCIgIHNjaTpEV19DRkFfYWR2YW5jZV9sb2MxKCV1KVxuIiwgZGVsdGEpOyAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIERXX0NGQV9hZHZhbmNlX2xvYzI6CiAgICAgICAgICBkZWx0YSA9IChVSW50KU1MXyhjdXJfc3RlcF9VU2hvcnQpKCZpbnN0cik7Ci0gICAgICAgICBWR18ocHJpbnRmKSgiICBzY2k6RFdfQ0ZBX2FkdmFuY2VfbG9jMiglZClcbiIsIGRlbHRhKTsgCisgICAgICAgICBWR18ocHJpbnRmKSgiICBzY2k6RFdfQ0ZBX2FkdmFuY2VfbG9jMigldSlcbiIsIGRlbHRhKTsgCiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSBEV19DRkFfYWR2YW5jZV9sb2M0OgogICAgICAgICAgZGVsdGEgPSAoVUludClNTF8oY3VyX3N0ZXBfVUludCkoJmluc3RyKTsKLSAgICAgICAgIFZHXyhwcmludGYpKCIgIERXX0NGQV9hZHZhbmNlX2xvYzQoJWQpXG4iLCBkZWx0YSk7IAorICAgICAgICAgVkdfKHByaW50ZikoIiAgRFdfQ0ZBX2FkdmFuY2VfbG9jNCgldSlcbiIsIGRlbHRhKTsgCiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSBEV19DRkFfZGVmX2NmYToKICAgICAgICAgIHJlZyA9IHN0ZXBfbGViMTI4KCAmaW5zdHIsIDAgKTsKICAgICAgICAgIG9mZiA9IHN0ZXBfbGViMTI4KCAmaW5zdHIsIDAgKTsKLSAgICAgICAgIFZHXyhwcmludGYpKCIgIERXX0NGQV9kZWZfY2ZhOiByJWQgb2ZzICVkXG4iLCAoSW50KXJlZywgKEludClvZmYpOyAKKyAgICAgICAgIFZHXyhwcmludGYpKCIgIERXX0NGQV9kZWZfY2ZhOiByJWQgb2ZzICVkXG4iLCByZWcsIG9mZik7IAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgRFdfQ0ZBX2RlZl9jZmFfc2Y6CiAgICAgICAgICByZWcgPSBzdGVwX2xlYjEyOCggJmluc3RyLCAwICk7CiAgICAgICAgICBvZmYgPSBzdGVwX2xlYjEyOCggJmluc3RyLCAxICk7CiAgICAgICAgICBWR18ocHJpbnRmKSgiICBEV19DRkFfZGVmX2NmYV9zZjogciVkIG9mcyAlZFxuIiwgCi0gICAgICAgICAgICAgICAgICAgICAoSW50KXJlZywgKEludCkob2ZmICogZGF0YV9hX2YpKTsKKyAgICAgICAgICAgICAgICAgICAgIHJlZywgb2ZmICogZGF0YV9hX2YpOwogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgRFdfQ0ZBX3JlZ2lzdGVyOgpAQCAtMzU3NCw2ICszNTg0LDExIEBACiAgICAgICAgICBWR18ocHJpbnRmKSgiICBzY2k6RFdfQ0ZBX0dOVV93aW5kb3dfc2F2ZVxuIik7CiAgICAgICAgICBicmVhazsKIAorICAgICAgY2FzZSBEV19DRkFfT1JDTF9hcmdfbG9jOgorICAgICAgICAgLyogOlRPRE86IFByaW50IGFsbCBhcmd1bWVudHMgd2hlbiBpbXBsZW1lbnRlZCBpbiBsaWJkd2FyZi4gKi8KKyAgICAgICAgIFZHXyhwcmludGYpKCIgIHNjaTpEV19DRkFfT1JDTF9hcmdfbG9jXG4iKTsKKyAgICAgICAgIGJyZWFrOworCiAgICAgICBkZWZhdWx0OiAKICAgICAgICAgIFZHXyhwcmludGYpKCIgIHNjaTowOiVkXG4iLCAoSW50KWxvNik7IAogICAgICAgICAgYnJlYWs7CkBAIC0zNzI4LDcgKzM3NDMsNyBAQAogCiAgICBpZiAoZGktPnRyYWNlX2NmaSkgewogICAgICAgVkdfKHByaW50ZikoIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwotICAgICAgVkdfKHByaW50ZikoIkNGSSBpbmZvOiBzekIgJWxsZCwgX2F2bWEgJSNseFxuIiwKKyAgICAgIFZHXyhwcmludGYpKCJDRkkgaW5mbzogc3pCICVsbHUsIF9hdm1hICUjbHhcbiIsCiAgICAgICAgICAgICAgICAgICBlc2NuX2ZyYW1lLnN6QiwgZnJhbWVfYXZtYSApOwogICAgICAgVkdfKHByaW50ZikoIkNGSSBpbmZvOiBuYW1lICVzXG4iLCBkaS0+ZnNtLmZpbGVuYW1lICk7CiAgICB9CkBAIC0zNzc2LDExICszNzkxLDExIEBACiAgICAgICBjaWVmZGVfc3RhcnQgPSBkYXRhOwogICAgICAgaWYgKGRpLT50cmFjZV9jZmkpIAogICAgICAgICAgVkdfKHByaW50ZikoIlxuY2llL2ZkZS5zdGFydCAgID0gKGZyYW1lX2ltYWdlICsgMHglbGx4KVxuIiwgCi0gICAgICAgICAgICAgICAgICAgICBNTF8oY3VyX21pbnVzKShjaWVmZGVfc3RhcnQsIGZyYW1lX2ltYWdlKSk7CisgICAgICAgICAgICAgICAgICAgICAoVUxvbmcpTUxfKGN1cl9taW51cykoY2llZmRlX3N0YXJ0LCBmcmFtZV9pbWFnZSkpOwogCiAgICAgICBjaWVmZGVfbGVuID0gKFVMb25nKU1MXyhjdXJfc3RlcF9VSW50KSgmZGF0YSk7CiAgICAgICBpZiAoZGktPnRyYWNlX2NmaSkgCi0gICAgICAgICBWR18ocHJpbnRmKSgiY2llL2ZkZS5sZW5ndGggID0gJWxsZFxuIiwgY2llZmRlX2xlbik7CisgICAgICAgICBWR18ocHJpbnRmKSgiY2llL2ZkZS5sZW5ndGggID0gJWxsdVxuIiwgY2llZmRlX2xlbik7CiAKICAgICAgIC8qIEFwcGFyZW50bHksIGlmIHRoZSAubGVuZ3RoIGZpZWxkIGlzIHplcm8sIHdlIGFyZSBhdCB0aGUgZW5kCiAgICAgICAgICBvZiB0aGUgc2VxdWVuY2UuICBUaGlzIGlzIHN0YXRlZCBpbiB0aGUgR2VuZXJpYyBFbGYKQEAgLTM3ODksNyArMzgwNCw3IEBACiAgICAgICBpZiAoY2llZmRlX2xlbiA9PSAwKSB7CiAgICAgICAgICBpZiAoZGktPmRkdW1wX2ZyYW1lcykKICAgICAgICAgICAgIFZHXyhwcmludGYpKCIlMDhsbHggWkVSTyB0ZXJtaW5hdG9yXG5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBNTF8oY3VyX21pbnVzKShjaWVmZGVfc3RhcnQsIGZyYW1lX2ltYWdlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAoVUxvbmcpTUxfKGN1cl9taW51cykoY2llZmRlX3N0YXJ0LCBmcmFtZV9pbWFnZSkpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgfQogCkBAIC0zODEzLDcgKzM4MjgsNyBAQAogICAgICAgfQogCiAgICAgICBpZiAoZGktPnRyYWNlX2NmaSkgCi0gICAgICAgICBWR18ocHJpbnRmKSgiY2llLnBvaW50ZXIgICAgID0gJWxsZFxuIiwgY2llX3BvaW50ZXIpOworICAgICAgICAgVkdfKHByaW50ZikoImNpZS5wb2ludGVyICAgICA9ICVsbHVcbiIsIGNpZV9wb2ludGVyKTsKIAogICAgICAgLyogSWYgY2llX3BvaW50ZXIgaXMgemVybyBmb3IgLmVoX2ZyYW1lIG9yIGFsbCBvbmVzIGZvciAuZGVidWdfZnJhbWUsCiAgICAgICAgICB3ZSd2ZSBnb3QgYSBDSUU7IGVsc2UgaXQncyBhbiBGREUuICovCkBAIC00MDA4LDYgKzQwMjMsNyBAQAogICAgICAgICAgICAgYWRpLmVoZnJhbWVfaW1hZ2UgPSBmcmFtZV9pbWFnZTsKICAgICAgICAgICAgIGFkaS5laGZyYW1lX2F2bWEgID0gZnJhbWVfYXZtYTsKICAgICAgICAgICAgIGFkaS50ZXh0X2JpYXMgICAgID0gZGktPnRleHRfZGVidWdfYmlhczsKKyAgICAgICAgICAgIGFkaS5nb3RfYXZtYSAgICAgID0gZGktPmdvdF9hdm1hOwogICAgICAgICAgICAgc2hvd19DRl9pbnN0cnVjdGlvbnMoIHRoZV9DSUVzW3RoaXNfQ0lFXS5pbnN0cnMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZV9DSUVzW3RoaXNfQ0lFXS5pbGVuLCAmYWRpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZV9DSUVzW3RoaXNfQ0lFXS5jb2RlX2FfZiwKQEAgLTQwNDMsNyArNDA1OSw3IEBACiAgICAgICAgICAgICBsb29rX2ZvciA9IGNpZV9wb2ludGVyOwogCiAgICAgICAgICBmb3IgKGNpZSA9IDA7IGNpZSA8IG5fQ0lFczsgY2llKyspIHsKLSAgICAgICAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgibG9vayBmb3IgJWxsZCAgICVsbGRcbiIsCisgICAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoImxvb2sgZm9yICVsbHUgICAlbGx1XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2tfZm9yLCB0aGVfQ0lFc1tjaWVdLm9mZnNldCApOwogICAgICAgICAgICAgaWYgKHRoZV9DSUVzW2NpZV0ub2Zmc2V0ID09IGxvb2tfZm9yKQogICAgICAgICAgICAgICAgYnJlYWs7CkBAIC00MDU4LDYgKzQwNzQsNyBAQAogICAgICAgICAgYWRpLmVoZnJhbWVfaW1hZ2UgPSBmcmFtZV9pbWFnZTsKICAgICAgICAgIGFkaS5laGZyYW1lX2F2bWEgID0gZnJhbWVfYXZtYTsKICAgICAgICAgIGFkaS50ZXh0X2JpYXMgICAgID0gZGktPnRleHRfZGVidWdfYmlhczsKKyAgICAgICAgIGFkaS5nb3RfYXZtYSAgICAgID0gZGktPmdvdF9hdm1hOwogICAgICAgICAgZmRlX2luaXRsb2MgPSBzdGVwX2VuY29kZWRfQWRkcigmYWRpLCAmZGF0YSk7CiAgICAgICAgICBpZiAoZGktPnRyYWNlX2NmaSkgCiAgICAgICAgICAgICBWR18ocHJpbnRmKSgiZmRlLmluaXRsb2MgICAgID0gJSNseFxuIiwgZmRlX2luaXRsb2MpOwpAQCAtNDA2Niw2ICs0MDgzLDcgQEAKICAgICAgICAgIGFkaS5laGZyYW1lX2ltYWdlID0gZnJhbWVfaW1hZ2U7CiAgICAgICAgICBhZGkuZWhmcmFtZV9hdm1hICA9IGZyYW1lX2F2bWE7CiAgICAgICAgICBhZGkudGV4dF9iaWFzICAgICA9IGRpLT50ZXh0X2RlYnVnX2JpYXM7CisgICAgICAgICBhZGkuZ290X2F2bWEgICAgICA9IGRpLT5nb3RfYXZtYTsKIAogICAgICAgICAgLyogV0FTIChpbmNvcnJlY3RseSk6CiAgICAgICAgICAgICBmZGVfYXJhbmdlID0gcmVhZF9lbmNvZGVkX0FkZHIoJm5ieXRlcywgJmFkaSwgZGF0YSk7CkBAIC00MTU4LDYgKzQxNzYsNyBAQAogICAgICAgICAgYWRpLmVoZnJhbWVfaW1hZ2UgPSBmcmFtZV9pbWFnZTsKICAgICAgICAgIGFkaS5laGZyYW1lX2F2bWEgID0gZnJhbWVfYXZtYTsKICAgICAgICAgIGFkaS50ZXh0X2JpYXMgICAgID0gZGktPnRleHRfZGVidWdfYmlhczsKKyAgICAgICAgIGFkaS5nb3RfYXZtYSAgICAgID0gZGktPmdvdF9hdm1hOwogCiAgICAgICAgICBpZiAoZGktPnRyYWNlX2NmaSkKICAgICAgICAgICAgIHNob3dfQ0ZfaW5zdHJ1Y3Rpb25zKCBmZGVfaW5zdHJzLCBmZGVfaWxlbiwgJmFkaSwKQEAgLTQyMTQsNyArNDIzMyw3IEBACiAgICAgcmV0dXJuOwogfQogCi0jZW5kaWYgLy8gZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikKKyNlbmRpZiAvLyBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRkd2FyZjMuYyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9yZWFkZHdhcmYzLmMKaW5kZXggODlmMjQ3YS4uY2ZjOWU1OSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRkd2FyZjMuYworKysgYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZGR3YXJmMy5jCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zNSw3ICszNSw3IEBACiAgICB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICovCiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKIC8qIFJFRkVSRU5DRSAod2l0aG91dCB3aGljaCB0aGlzIGNvZGUgd2lsbCBub3QgbWFrZSBtdWNoIHNlbnNlKToKIApAQCAtNjcxLDcgKzY3MSw3IEBACiAgICBzZXRfcG9zaXRpb25fb2ZfQ3Vyc29yKCAmbG9jLCBkZWJ1Z19sb2Nfb2Zmc2V0ICk7CiAKICAgIFRSQUNFX0QzKCJtYWtlX2dlbmVyYWxfR1ggKC5kZWJ1Z19sb2Nfb2Zmc2V0ID0gJWxsdSwgaW9mZiA9ICVsbHUpIHtcbiIsCi0gICAgICAgICAgICBkZWJ1Z19sb2Nfb2Zmc2V0LCAoVUxvbmcpZ2V0X0RpQ3Vyc29yX2Zyb21fQ3Vyc29yKCZsb2MpLmlvZmYgKTsKKyAgICAgICAgICAgIGRlYnVnX2xvY19vZmZzZXQsIGdldF9EaUN1cnNvcl9mcm9tX0N1cnNvcigmbG9jKS5pb2ZmICk7CiAKICAgIC8qIFdobyBmcmVlcyB0aGlzIHhhPyAgSXQgaXMgZnJlZWQgYmVmb3JlIHRoaXMgZm4gZXhpdHMuICovCiAgICB4YSA9IFZHXyhuZXdYQSkoIE1MXyhkaW5mb196YWxsb2MpLCAiZGkucmVhZGR3YXJmMy5tZ0dYLjEiLCAKQEAgLTk2NSw4ICs5NjUsOCBAQAogICAgICAgVkdfKG1lbWNweSkgKGh0X3RhLCB0YSwgU1pfR19BQkJWKHRhX25mX24pKTsKICAgICAgIFZHXyhIVF9hZGRfbm9kZSkgKCBjYy0+aHRfYWJidnMsIGh0X3RhICk7CiAgICAgICBpZiAoVEQzKSB7Ci0gICAgICAgICBUUkFDRV9EMygiICBBZGRpbmcgYWJidl9jb2RlICVsbHUgVEFHICAlcyBbJXNdIG5mICVkICIsCi0gICAgICAgICAgICAgICAgICAoVUxvbmcpIGh0X3RhLT5hYmJ2X2NvZGUsIE1MXyhwcF9EV19UQUcpKGh0X3RhLT5hdGFnKSwKKyAgICAgICAgIFRSQUNFX0QzKCIgIEFkZGluZyBhYmJ2X2NvZGUgJWx1IFRBRyAgJXMgWyVzXSBuZiAldSAiLAorICAgICAgICAgICAgICAgICAgaHRfdGEtPmFiYnZfY29kZSwgTUxfKHBwX0RXX1RBRykoaHRfdGEtPmF0YWcpLAogICAgICAgICAgICAgICAgICAgTUxfKHBwX0RXX2NoaWxkcmVuKShodF90YS0+aGFzX2NoaWxkcmVuKSwKICAgICAgICAgICAgICAgICAgIHRhX25mX24pOwogICAgICAgICAgVFJBQ0VfRDMoIiAgIik7CkBAIC0xMDE5LDcgKzEwMTksNyBAQAogICAgICAgPSBnZXRfSW5pdGlhbF9MZW5ndGgoICZjYy0+aXNfZHc2NCwgYywgCiAgICAgICAgICAgICJwYXJzZV9DVV9IZWFkZXI6IGludmFsaWQgaW5pdGlhbC1sZW5ndGggZmllbGQiICk7CiAKLSAgIFRSQUNFX0QzKCIgICBMZW5ndGg6ICAgICAgICAlbGxkXG4iLCBjYy0+dW5pdF9sZW5ndGggKTsKKyAgIFRSQUNFX0QzKCIgICBMZW5ndGg6ICAgICAgICAlbGx1XG4iLCBjYy0+dW5pdF9sZW5ndGggKTsKIAogICAgLyogdmVyc2lvbiAqLwogICAgY2MtPnZlcnNpb24gPSBnZXRfVVNob3J0KCBjICk7CkBAIC0xMDMxLDcgKzEwMzEsNyBAQAogICAgZGVidWdfYWJicmV2X29mZnNldCA9IGdldF9Ed2FyZmlzaF9VV29yZCggYywgY2MtPmlzX2R3NjQgKTsKICAgIGlmIChkZWJ1Z19hYmJyZXZfb2Zmc2V0ID49IGVzY25fZGVidWdfYWJidi5zekIpCiAgICAgICBjYy0+YmFyZiggInBhcnNlX0NVX0hlYWRlcjogaW52YWxpZCBkZWJ1Z19hYmJyZXZfb2Zmc2V0IiApOwotICAgVFJBQ0VfRDMoIiAgIEFiYnJldiBPZmZzZXQ6ICVsbGRcbiIsIGRlYnVnX2FiYnJldl9vZmZzZXQgKTsKKyAgIFRSQUNFX0QzKCIgICBBYmJyZXYgT2Zmc2V0OiAlbGx1XG4iLCBkZWJ1Z19hYmJyZXZfb2Zmc2V0ICk7CiAKICAgIC8qIGFkZHJlc3Mgc2l6ZS4gIElmIHRoaXMgaXNuJ3QgZXF1YWwgdG8gdGhlIGhvc3Qgd29yZCBzaXplLCBqdXN0CiAgICAgICBnaXZlIHVwLiAgVGhpcyBtYWtlcyBpdCBzYWZlIHRvIGFzc3VtZSBlbHNld2hlcmUgdGhhdApAQCAtMTE2NywxMiArMTE2NywxMiBAQAogICAgICAgY2FzZSBEV19GT1JNX3NkYXRhOgogICAgICAgICAgY3RzLT51LnZhbCA9IChVTG9uZykoTG9uZylnZXRfU0xFQjEyOChjKTsKICAgICAgICAgIGN0cy0+c3pCICAgPSA4OwotICAgICAgICAgVFJBQ0VfRDMoIiVsbGQiLCAoTG9uZyljdHMtPnUudmFsKTsKKyAgICAgICAgIFRSQUNFX0QzKCIlbGx1IiwgY3RzLT51LnZhbCk7CiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgRFdfRk9STV91ZGF0YToKICAgICAgICAgIGN0cy0+dS52YWwgPSAoVUxvbmcpKExvbmcpZ2V0X1VMRUIxMjgoYyk7CiAgICAgICAgICBjdHMtPnN6QiAgID0gODsKLSAgICAgICAgIFRSQUNFX0QzKCIlbGx1IiwgKExvbmcpY3RzLT51LnZhbCk7CisgICAgICAgICBUUkFDRV9EMygiJWxsdSIsIGN0cy0+dS52YWwpOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIERXX0ZPUk1fYWRkcjoKICAgICAgICAgIC8qIG5vdGUsIHRoaXMgaXMgYSBoYWNrLiAgRFdfRk9STV9hZGRyIGlzIGRlZmluZWQgYXMgZ2V0dGluZwpAQCAtMTQ0NCw3ICsxNDQ0LDcgQEAKIAogICAgICAgZGVmYXVsdDoKICAgICAgICAgIFZHXyhwcmludGYpKAotICAgICAgICAgICAgImdldF9Gb3JtX2NvbnRlbnRzOiB1bmhhbmRsZWQgJWQgKCVzKSBhdCA8JWxseD5cbiIsCisgICAgICAgICAgICAiZ2V0X0Zvcm1fY29udGVudHM6IHVuaGFuZGxlZCAldSAoJXMpIGF0IDwlbGx4PlxuIiwKICAgICAgICAgICAgIGZvcm0sIE1MXyhwcF9EV19GT1JNKShmb3JtKSwgZ2V0X3Bvc2l0aW9uX29mX0N1cnNvcihjKSk7CiAgICAgICAgICBjLT5iYXJmKCJnZXRfRm9ybV9jb250ZW50czogdW5oYW5kbGVkIERXX0ZPUk0iKTsKICAgIH0KQEAgLTE1MjYsNyArMTUyNiw3IEBACiAgICAgICAgICByZXR1cm4gc2l6ZW9mX0R3YXJmaXNoX1VXb3JkKGNjLT5pc19kdzY0KTsKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBWR18ocHJpbnRmKSgKLSAgICAgICAgICAgICJnZXRfRm9ybV9zekI6IHVuaGFuZGxlZCAlZCAoJXMpXG4iLAorICAgICAgICAgICAgImdldF9Gb3JtX3N6QjogdW5oYW5kbGVkICV1ICglcylcbiIsCiAgICAgICAgICAgICBmb3JtLCBNTF8ocHBfRFdfRk9STSkoZm9ybSkpOwogICAgICAgICAgY2MtPmJhcmYoImdldF9Gb3JtX2NvbnRlbnRzOiB1bmhhbmRsZWQgRFdfRk9STSIpOwogICAgfQpAQCAtMTYxNCw3ICsxNjE0LDcgQEAKICAgICAgICAgIChEV19BVF9zdWJwcm9ncmFtKSwgYW5kIGZvciB0aG9zZSwgd2UgYWxzbyBub3RlIHRoZSBHRXhwcgogICAgICAgICAgZGVyaXZlZCBmcm9tIGl0cyBEV19BVF9mcmFtZV9iYXNlIGF0dHJpYnV0ZSwgaWYgYW55LgogICAgICAgICAgQ29uc2VxdWVudGx5IGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBmaW5kLCBmb3IgYW55Ci0gICAgICAgICB2YXJpYWJsZSdzIERJRSwgdGhlIEdFeHByIGZvciB0aGUgdGhlIGNvbnRhaW5pbmcgZnVuY3Rpb24ncworICAgICAgICAgdmFyaWFibGUncyBESUUsIHRoZSBHRXhwciBmb3IgdGhlIGNvbnRhaW5pbmcgZnVuY3Rpb24ncwogICAgICAgICAgRFdfQVRfZnJhbWVfYmFzZSBieSBzY2FubmluZyBiYWNrIHRocm91Z2ggdGhlIHN0YWNrIHRvIGZpbmQKICAgICAgICAgIHRoZSBuZWFyZXN0IGVudHJ5IGFzc29jaWF0ZWQgd2l0aCBhIGZ1bmN0aW9uLiAgVGhpcyBzb21ld2hhdAogICAgICAgICAgZWxhYm9yYXRlIHNjaGVtZSBpcyBwcm92aWRlZCBzbyBhcyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvCkBAIC0xOTIzLDcgKzE5MjMsNyBAQAogICAgICAgZWxzZQogICAgICAgICAgZGlybmFtZSA9IE5VTEw7CiAgICAgICBmbmRuX2l4ID0gTUxfKGFkZEZuRG4pKCBjYy0+ZGksIHN0ciwgZGlybmFtZSk7Ci0gICAgICBUUkFDRV9EMygiICByZWFkX2ZpbGVuYW1lX3RhYmxlOiAlbGQgZm5kbl9peCAlZCAlcyAlc1xuIiwKKyAgICAgIFRSQUNFX0QzKCIgIHJlYWRfZmlsZW5hbWVfdGFibGU6ICVsZCBmbmRuX2l4ICV1ICVzICVzXG4iLAogICAgICAgICAgICAgICAgVkdfKHNpemVYQSkoZm5kbl9peF9UYWJsZSksIGZuZG5faXgsIAogICAgICAgICAgICAgICAgZGlybmFtZSwgc3RyKTsKICAgICAgIFZHXyhhZGRUb1hBKSggZm5kbl9peF9UYWJsZSwgJmZuZG5faXggKTsKQEAgLTIzMTgsNyArMjMxOCw3IEBACiAgICAgICAgICAgICAgICAgJiYgZnRhYkl4IDwgVkdfKHNpemVYQSkoIHBhcnNlci0+Zm5kbl9peF9UYWJsZSApKSB7CiAgICAgICAgICAgICAgICBmbmRuX2l4ID0gKihVSW50KilWR18oaW5kZXhYQSkoIHBhcnNlci0+Zm5kbl9peF9UYWJsZSwgZnRhYkl4ICk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIlhYWCBmaWxlbmFtZSBmbmRuX2l4ID0gJWQgJXNcbiIsIGZuZG5faXgsCisgICAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIlhYWCBmaWxlbmFtZSBmbmRuX2l4ID0gJXUgJXNcbiIsIGZuZG5faXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUxfKGZuZG5faXgyZmlsZW5hbWUpIChjYy0+ZGksIGZuZG5faXgpKTsKICAgICAgICAgIH0KICAgICAgIH0KQEAgLTI3NTgsNyArMjc1OCw3IEBACiAgICAgICAgICAgICAgICBjYWxsZXJfZm5kbl9peCA9ICooVUludCopCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhpbmRleFhBKSggcGFyc2VyLT5mbmRuX2l4X1RhYmxlLCBmdGFiSXggKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgiWFhYIGNhbGxlcl9mbmRuX2l4ID0gJWQgJXNcbiIsIGNhbGxlcl9mbmRuX2l4LAorICAgICAgICAgICAgaWYgKDApIFZHXyhwcmludGYpKCJYWFggY2FsbGVyX2ZuZG5faXggPSAldSAlc1xuIiwgY2FsbGVyX2ZuZG5faXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUxfKGZuZG5faXgyZmlsZW5hbWUpIChjYy0+ZGksIGNhbGxlcl9mbmRuX2l4KSk7CiAgICAgICAgICB9ICAKICAgICAgICAgIGlmIChhdHRyID09IERXX0FUX2NhbGxfbGluZSAmJiBjdHMuc3pCID4gMCkgewpAQCAtMzQxMSw3ICszNDExLDcgQEAKICAgICAgIGlmIChpc19kZWNsICYmICghaXNfc3BlYykpIHsKICAgICAgICAgIC8qIEl0J3MgYSBEV19BVF9kZWNsYXJhdGlvbi4gIFdlIHJlcXVpcmUgdGhlIG5hbWUgYnV0CiAgICAgICAgICAgICBub3RoaW5nIGVsc2UuICovCi0gICAgICAgICAvKiBKUlMgMjAxMi0wNi0yODogZm9sbG93aW5nIGRpc2N1c3Npb24gdy8gdHJvbWV5LCBpZiB0aGUgdGhlCisgICAgICAgICAvKiBKUlMgMjAxMi0wNi0yODogZm9sbG93aW5nIGRpc2N1c3Npb24gdy8gdHJvbWV5LCBpZiB0aGUKICAgICAgICAgICAgIHR5cGUgZG9lc24ndCBoYXZlIG5hbWUsIGp1c3QgbWFrZSBvbmUgdXAsIGFuZCBhY2NlcHQgaXQuCiAgICAgICAgICAgICBJdCBtaWdodCBiZSByZWZlcnJlZCB0byBieSBvdGhlciBESUVzLCBzbyBpZ25vcmluZyBpdAogICAgICAgICAgICAgZG9lc24ndCBzZWVtIGxpa2UgYSBzYWZlIG9wdGlvbi4gKi8KQEAgLTQ1OTAsOCArNDU5MCw5IEBACiAgICAgICAgICBjdV9vZmZzZXRfbm93ID0gKGN1X3N0YXJ0X29mZnNldCArIGNjLnVuaXRfbGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGNjLmlzX2R3NjQgPyAxMiA6IDQpKTsKIAorICAgICAgICAgY2xlYXJfQ1VDb25zdCAoICZjYyk7CisKICAgICAgICAgIGlmIChjdV9vZmZzZXRfbm93ID49IGVzY25fZGVidWdfdHlwZXMuc3pCKSB7Ci0gICAgICAgICAgICBjbGVhcl9DVUNvbnN0ICggJmNjKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogCkBAIC00NzY5LDcgKzQ3NzAsNyBAQAogICAgICAgICAgLyogLi4gdnMgaG93IGJpZyB3ZSBoYXZlIGZvdW5kIGl0IHRvIGJlICovCiAgICAgICAgICBjdV9hbW91bnRfdXNlZCA9IGN1X29mZnNldF9ub3cgLSBjYy5jdV9zdGFydF9vZmZzZXQ7CiAKLSAgICAgICAgIGlmICgxKSBUUkFDRV9EMygib2Zmc2V0IG5vdyAlbGxkLCBkLWktc2l6ZSAlbGxkXG4iLAorICAgICAgICAgaWYgKDEpIFRSQUNFX0QzKCJvZmZzZXQgbm93ICVsbHUsIGQtaS1zaXplICVsbHVcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vfb2Zmc2V0X25vdywgc2VjdGlvbl9zaXplKTsKICAgICAgICAgIGlmIChjdV9vZmZzZXRfbm93ID4gc2VjdGlvbl9zaXplKQogICAgICAgICAgICAgYmFyZigidG9wbGV2ZWwgRElFcyBiZXlvbmQgZW5kIG9mIENVIik7CkBAIC00OTYyLDcgKzQ5NjMsNyBAQAogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIFZHXyhwcmludGYpKCIgIEZyQj1ub25lXG4iKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFZHXyhwcmludGYpKCIgIGRlY2xhcmVkIGF0OiAlZCAlczolZFxuIiwKKyAgICAgICAgICAgIFZHXyhwcmludGYpKCIgIGRlY2xhcmVkIGF0OiAldSAlczolZFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnAtPmZuZG5faXgsCiAgICAgICAgICAgICAgICAgICAgICAgICBNTF8oZm5kbl9peDJmaWxlbmFtZSkgKGRpLCB2YXJwLT5mbmRuX2l4KSwKICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnAtPmZMaW5lICk7CkBAIC01MjY4LDcgKzUyNjksNyBAQAogICAgVFJBQ0VfU1lNVEFCKCJcbiIpOwogI2VuZGlmCiAKLSNlbmRpZiAvLyBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZGVsZi5jIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRlbGYuYwppbmRleCBmZGE0MTYxLi45ZTIzOWIwIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZGVsZi5jCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9yZWFkZWxmLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjksNyArMjksNyBAQAogICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgogKi8KIAotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogCiAjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdmtpLmgiCkBAIC01NCw2ICs1NCw5IEBACiAKIC8qIC0tLSAhISEgLS0tIEVYVEVSTkFMIEhFQURFUlMgc3RhcnQgLS0tICEhISAtLS0gKi8KICNpbmNsdWRlIDxlbGYuaD4KKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorI2luY2x1ZGUgPHN5cy9saW5rLmg+ICAgICAgICAgICAgICAvKiBFbGZYWF9EeW4sIERUXyogKi8KKyNlbmRpZgogLyogLS0tICEhISAtLS0gRVhURVJOQUwgSEVBREVSUyBlbmQgLS0tICEhISAtLS0gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtNzU0LDcgKzc1Nyw3IEBACiAgICAgICByZXR1cm47CiAgICB9CiAKLSAgIFRSQUNFX1NZTVRBQigiXG4tLS0gUmVhZGluZyAoRUxGLCBzdGFuZGFyZCkgJXMgKCVsbGQgZW50cmllcykgLS0tXG4iLAorICAgVFJBQ0VfU1lNVEFCKCJcbi0tLSBSZWFkaW5nIChFTEYsIHN0YW5kYXJkKSAlcyAoJWxsdSBlbnRyaWVzKSAtLS1cbiIsCiAgICAgICAgICAgICAgICAgdGFiX25hbWUsIGVzY25fc3ltdGFiLT5zekIvc2l6ZW9mKEVsZlhYX1N5bSkgKTsKIAogICAgLyogUGVyaGFwcyBzaG91bGQgc3RhcnQgYXQgaSA9IDE7IEVMRiBkb2NzIHN1Z2dlc3QgdGhhdCBlbnRyeQpAQCAtODg0LDcgKzg4Nyw3IEBACiAgICAgICByZXR1cm47CiAgICB9CiAKLSAgIFRSQUNFX1NZTVRBQigiXG4tLS0gUmVhZGluZyAoRUxGLCBwcGM2NGJlLWxpbnV4KSAlcyAoJWxsZCBlbnRyaWVzKSAtLS1cbiIsCisgICBUUkFDRV9TWU1UQUIoIlxuLS0tIFJlYWRpbmcgKEVMRiwgcHBjNjRiZS1saW51eCkgJXMgKCVsbHUgZW50cmllcykgLS0tXG4iLAogICAgICAgICAgICAgICAgIHRhYl9uYW1lLCBlc2NuX3N5bXRhYi0+c3pCL3NpemVvZihFbGZYWF9TeW0pICk7CiAKICAgIG9zZXQgPSBWR18oT1NldEdlbl9DcmVhdGUpKCBvZmZzZXRvZihUZW1wU3ltLGtleSksIApAQCAtOTY1LDIxICs5NjgsMjEgQEAKIAogICAgICAgICAgICAgaWYgKG1vZGlmeV9zaXplICYmIGRpLT50cmFjZV9zeW10YWIpIHsKICAgICAgICAgICAgICAgIFZHXyhwcmludGYpKCIgICAgbW9kaWZ5IChvbGQgc3ogJTRkKSAgICAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiIHZhbCAlIzAxMGx4LCB0b2MgJSMwMTBseCwgc3ogJTRkICAlbGxkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB2YWwgJSMwMTBseCwgdG9jICUjMDEwbHgsIHN6ICU0ZCAgJWxsdVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldi0+a2V5LmFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2LT50b2NwdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoSW50KSAgcHJldi0+c2l6ZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoVUxvbmcpcHJldi0+a2V5Lm5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXYtPnNpemUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldi0+a2V5Lm5hbWUKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobW9kaWZ5X3RvY3B0ciAmJiBkaS0+dHJhY2Vfc3ltdGFiKSB7CiAgICAgICAgICAgICAgICBWR18ocHJpbnRmKSgiICAgIG1vZGlmeSAodXBkIHRvY3B0cikgICAgICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICIgdmFsICUjMDEwbHgsIHRvYyAlIzAxMGx4LCBzeiAlNGQgICVsbGRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHZhbCAlIzAxMGx4LCB0b2MgJSMwMTBseCwgc3ogJTRkICAlbGx1XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldi0+a2V5LmFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2LT50b2NwdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoSW50KSAgcHJldi0+c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChVTG9uZylwcmV2LT5rZXkubmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldi0+c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXYtPmtleS5uYW1lCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgfQogCkBAIC0xNTk0LDIwICsxNTk3LDIwIEBACiAgICBUUkFDRV9TWU1UQUIoIi0tLS0tLSBCYXNpYyBmYWN0cyBhYm91dCB0aGUgb2JqZWN0IC0tLS0tLVxuIik7CiAgICBUUkFDRV9TWU1UQUIoIm9iamVjdDogIG5fb2ltYWdlICVsbHVcbiIsCiAgICAgICAgICAgICAgICAgKFVMb25nKU1MXyhpbWdfc2l6ZSkobWltZykpOwotICAgVFJBQ0VfU1lNVEFCKCJwaGRyOiAgICBpb2ZmICVsbHUgbmVudCAlbGQgZW50X3N6QiAlbGRcbiIsCisgICBUUkFDRV9TWU1UQUIoInBoZHI6ICAgIGlvZmYgJWxsdSBuZW50ICVsdSBlbnRfc3pCICVsdVxuIiwKICAgICAgICAgICAgICAgIHBoZHJfbWlvZmYsIHBoZHJfbW5lbnQsIHBoZHJfbWVudF9zekIpOwotICAgVFJBQ0VfU1lNVEFCKCJzaGRyOiAgICBpb2ZmICVsbHUgbmVudCAlbGQgZW50X3N6QiAlbGRcbiIsCisgICBUUkFDRV9TWU1UQUIoInNoZHI6ICAgIGlvZmYgJWxsdSBuZW50ICVsdSBlbnRfc3pCICVsdVxuIiwKICAgICAgICAgICAgICAgIHNoZHJfbWlvZmYsIHNoZHJfbW5lbnQsIHNoZHJfbWVudF9zekIpOwogICAgZm9yIChpID0gMDsgaSA8IFZHXyhzaXplWEEpKGRpLT5mc20ubWFwcyk7IGkrKykgewogICAgICAgY29uc3QgRGVidWdJbmZvTWFwcGluZyogbWFwID0gVkdfKGluZGV4WEEpKGRpLT5mc20ubWFwcywgaSk7CiAgICAgICBpZiAobWFwLT5yeCkKLSAgICAgICAgIFRSQUNFX1NZTVRBQigicnhfbWFwOiAgYXZtYSAlI2x4ICAgc2l6ZSAlbHUgIGZvZmYgJWx1XG4iLAorICAgICAgICAgVFJBQ0VfU1lNVEFCKCJyeF9tYXA6ICBhdm1hICUjbHggICBzaXplICVsdSAgZm9mZiAlbGRcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgbWFwLT5hdm1hLCBtYXAtPnNpemUsIG1hcC0+Zm9mZik7CiAgICB9CiAgICBmb3IgKGkgPSAwOyBpIDwgVkdfKHNpemVYQSkoZGktPmZzbS5tYXBzKTsgaSsrKSB7CiAgICAgICBjb25zdCBEZWJ1Z0luZm9NYXBwaW5nKiBtYXAgPSBWR18oaW5kZXhYQSkoZGktPmZzbS5tYXBzLCBpKTsKICAgICAgIGlmIChtYXAtPnJ3KQotICAgICAgICAgVFJBQ0VfU1lNVEFCKCJyd19tYXA6ICBhdm1hICUjbHggICBzaXplICVsdSAgZm9mZiAlbHVcbiIsCisgICAgICAgICBUUkFDRV9TWU1UQUIoInJ3X21hcDogIGF2bWEgJSNseCAgIHNpemUgJWx1ICBmb2ZmICVsZFxuIiwKICAgICAgICAgICAgICAgICAgICAgICBtYXAtPmF2bWEsIG1hcC0+c2l6ZSwgbWFwLT5mb2ZmKTsKICAgIH0KIApAQCAtMTcwOCw3ICsxNzExLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhhZGRUb1hBKShzdm1hX3JhbmdlcywgJml0ZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBUX0xPQURbJWxkXTogICBhY3F1aXJlZCBhcyBydywgYmlhcyAweCVseFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIGl0ZW0uYmlhcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCAoVVdvcmQpaXRlbS5iaWFzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZCA9IFRydWU7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwLT5yeApAQCAtMTcxOCw3ICsxNzIxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhhZGRUb1hBKShzdm1hX3JhbmdlcywgJml0ZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBUX0xPQURbJWxkXTogICBhY3F1aXJlZCBhcyByeCwgYmlhcyAweCVseFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIGl0ZW0uYmlhcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCAoVVdvcmQpaXRlbS5iaWFzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZCA9IFRydWU7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICB9CkBAIC0xODA4LDcgKzE4MTEsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IFZHXyhzaXplWEEpKGRpLT5mc20ubWFwcyk7IGkrKykgewogICAgICAgY29uc3QgRGVidWdJbmZvTWFwcGluZyogbWFwID0gVkdfKGluZGV4WEEpKGRpLT5mc20ubWFwcywgaSk7CiAgICAgICBpZiAobWFwLT5yeCkKLSAgICAgICAgIFRSQUNFX1NZTVRBQigicng6IGF0ICUjbHggYXJlIG1hcHBlZCBmb2Zmc2V0cyAlbGQgLi4gJWxkXG4iLAorICAgICAgICAgVFJBQ0VfU1lNVEFCKCJyeDogYXQgJSNseCBhcmUgbWFwcGVkIGZvZmZzZXRzICVsZCAuLiAlbHVcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgbWFwLT5hdm1hLCBtYXAtPmZvZmYsIG1hcC0+Zm9mZiArIG1hcC0+c2l6ZSAtIDEgKTsKICAgIH0KICAgIFRSQUNFX1NZTVRBQigicng6IGNvbnRhaW5zIHRoZXNlIHN2bWEgcmVnaW9uczpcbiIpOwpAQCAtMTgxNiwxMiArMTgxOSwxMiBAQAogICAgICAgY29uc3QgUmFuZ2VBbmRCaWFzKiByZWcgPSBWR18oaW5kZXhYQSkoc3ZtYV9yYW5nZXMsIGkpOwogICAgICAgaWYgKHJlZy0+ZXhlYykKICAgICAgICAgIFRSQUNFX1NZTVRBQigiICBzdm1hcyAlI2x4IC4uICUjbHggd2l0aCBiaWFzICUjbHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgcmVnLT5zdm1hX2Jhc2UsIHJlZy0+c3ZtYV9saW1pdCAtIDEsIHJlZy0+YmlhcyApOworICAgICAgICAgICAgICAgICAgICAgIHJlZy0+c3ZtYV9iYXNlLCByZWctPnN2bWFfbGltaXQgLSAxLCAoVVdvcmQpcmVnLT5iaWFzICk7CiAgICB9CiAgICBmb3IgKGkgPSAwOyBpIDwgVkdfKHNpemVYQSkoZGktPmZzbS5tYXBzKTsgaSsrKSB7CiAgICAgICBjb25zdCBEZWJ1Z0luZm9NYXBwaW5nKiBtYXAgPSBWR18oaW5kZXhYQSkoZGktPmZzbS5tYXBzLCBpKTsKICAgICAgIGlmIChtYXAtPnJ3KQotICAgICAgICAgVFJBQ0VfU1lNVEFCKCJydzogYXQgJSNseCBhcmUgbWFwcGVkIGZvZmZzZXRzICVsZCAuLiAlbGRcbiIsCisgICAgICAgICBUUkFDRV9TWU1UQUIoInJ3OiBhdCAlI2x4IGFyZSBtYXBwZWQgZm9mZnNldHMgJWxkIC4uICVsdVxuIiwKICAgICAgICAgICAgICAgICAgICAgICBtYXAtPmF2bWEsIG1hcC0+Zm9mZiwgbWFwLT5mb2ZmICsgbWFwLT5zaXplIC0gMSApOwogICAgfQogICAgVFJBQ0VfU1lNVEFCKCJydzogY29udGFpbnMgdGhlc2Ugc3ZtYSByZWdpb25zOlxuIik7CkBAIC0xODI5LDcgKzE4MzIsNyBAQAogICAgICAgY29uc3QgUmFuZ2VBbmRCaWFzKiByZWcgPSBWR18oaW5kZXhYQSkoc3ZtYV9yYW5nZXMsIGkpOwogICAgICAgaWYgKCFyZWctPmV4ZWMpCiAgICAgICAgICBUUkFDRV9TWU1UQUIoIiAgc3ZtYXMgJSNseCAuLiAlI2x4IHdpdGggYmlhcyAlI2x4XG4iLAotICAgICAgICAgICAgICAgICAgICAgIHJlZy0+c3ZtYV9iYXNlLCByZWctPnN2bWFfbGltaXQgLSAxLCByZWctPmJpYXMgKTsKKyAgICAgICAgICAgICAgICAgICAgICByZWctPnN2bWFfYmFzZSwgcmVnLT5zdm1hX2xpbWl0IC0gMSwgKFVXb3JkKXJlZy0+YmlhcyApOwogICAgfQogCiAgICAvKiBUT1BMRVZFTCAqLwpAQCAtMTg0NCw3ICsxODQ3LDcgQEAKICAgICAgIE9mZlQgICBmb2ZmID0gYV9zaGRyLnNoX29mZnNldDsKICAgICAgIFVXb3JkICBzaXplID0gYV9zaGRyLnNoX3NpemU7IC8qIERvIG5vdCBjaGFuZ2UgdGhpcyB0byBiZSBzaWduZWQuICovCiAgICAgICBVSW50ICAgYWx5biA9IGFfc2hkci5zaF9hZGRyYWxpZ247Ci0gICAgICBCb29sICAgYml0cyA9ICEoYV9zaGRyLnNoX3R5cGUgPT0gU0hUX05PQklUUyk7CisgICAgICBCb29sICAgbm9iaXRzID0gYV9zaGRyLnNoX3R5cGUgPT0gU0hUX05PQklUUzsKICAgICAgIC8qIExvb2sgdGhyb3VnaCBvdXIgY29sbGVjdGlvbiBvZiBpbmZvIG9idGFpbmVkIGZyb20gdGhlIFBUX0xPQUQKICAgICAgICAgIGhlYWRlcnMsIGFuZCBtYWtlICdpbnJ4JyBhbmQgJ2lucncnIHBvaW50IHRvIHRoZSBmaXJzdCBlbnRyeQogICAgICAgICAgaW4gZWFjaCB0aGF0IGludGVyc2VjdHMgJ2F2bWEnLiAgSWYgaW4gZWFjaCBjYXNlIG5vbmUgaXMgZm91bmQsCkBAIC0xODY0LDE1ICsxODY3LDE1IEBACiAgICAgICAgICB9CiAgICAgICB9CiAKLSAgICAgIFRSQUNFX1NZTVRBQigiIFtzZWMgJTJsZF0gICVzICVzICBhbCUydSAgZm9mZiAlNmxkIC4uICU2bGQgICIKKyAgICAgIFRSQUNFX1NZTVRBQigiIFtzZWMgJTJsZF0gICVzICVzICBhbCUydSAgZm9mZiAlNmxkIC4uICU2bHUgICIKICAgICAgICAgICAgICAgICAgICAiICBzdm1hICVwICBuYW1lIFwiJXNcIlxuIiwgCiAgICAgICAgICAgICAgICAgICAgaSwgaW5yeCA/ICJyeCIgOiAiICAiLCBpbnJ3ID8gInJ3IiA6ICIgICIsIGFseW4sCiAgICAgICAgICAgICAgICAgICAgZm9mZiwgZm9mZitzaXplLTEsICh2b2lkKilzdm1hLCBuYW1lKTsKIAogICAgICAgLyogQ2hlY2sgZm9yIHNhbmUtc2l6ZWQgc2VnbWVudHMuICBTSFRfTk9CSVRTIHNlY3Rpb25zIGhhdmUgemVybwotICAgICAgICAgc2l6ZSBpbiB0aGUgZmlsZS4gKi8KLSAgICAgIGlmICgoZm9mZiA+PSBNTF8oaW1nX3NpemUpKG1pbWcpKSAKLSAgICAgICAgICB8fCAoZm9mZiArIChiaXRzID8gc2l6ZSA6IDApID4gTUxfKGltZ19zaXplKShtaW1nKSkpIHsKKyAgICAgICAgIHNpemUgaW4gdGhlIGZpbGUgYW5kIHRoZWlyIG9mZnNldHMgYXJlIGp1c3QgY29uY2VwdHVhbC4gKi8KKyAgICAgIGlmICghbm9iaXRzICYmCisgICAgICAgICAgKGZvZmYgPj0gTUxfKGltZ19zaXplKShtaW1nKSB8fCBmb2ZmICsgc2l6ZSA+IE1MXyhpbWdfc2l6ZSkobWltZykpKSB7CiAgICAgICAgICBNTF8oc3ltZXJyKShkaSwgVHJ1ZSwgIkVMRiBTZWN0aW9uIGV4dGVuZHMgYmV5b25kIGltYWdlIGVuZCIpOwogICAgICAgICAgZ290byBvdXQ7CiAgICAgICB9CkBAIC0xOTIxLDcgKzE5MjQsNyBAQAogICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLnRleHQgYXZtYSA9ICUjbHggLi4gJSNseFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+dGV4dF9hdm1hLCAKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+dGV4dF9hdm1hICsgZGktPnRleHRfc2l6ZSAtIDEpOwotICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLnRleHQgYmlhcyA9ICUjbHhcbiIsIGRpLT50ZXh0X2JpYXMpOworICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLnRleHQgYmlhcyA9ICUjbHhcbiIsIChVV29yZClkaS0+dGV4dF9iaWFzKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBCQUQoIi50ZXh0Iik7CiAgICAgICAgICB9CkBAIC0xOTQzLDcgKzE5NDYsNyBAQAogICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLmRhdGEgYXZtYSA9ICUjbHggLi4gJSNseFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+ZGF0YV9hdm1hLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT5kYXRhX2F2bWEgKyBkaS0+ZGF0YV9zaXplIC0gMSk7Ci0gICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuZGF0YSBiaWFzID0gJSNseFxuIiwgZGktPmRhdGFfYmlhcyk7CisgICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuZGF0YSBiaWFzID0gJSNseFxuIiwgKFVXb3JkKWRpLT5kYXRhX2JpYXMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEJBRCgiLmRhdGEiKTsKICAgICAgICAgIH0KQEAgLTE5NjUsNyArMTk2OCw4IEBACiAgICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuc2RhdGEgYXZtYSA9ICUjbHggLi4gJSNseFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+c2RhdGFfYXZtYSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+c2RhdGFfYXZtYSArIGRpLT5zZGF0YV9zaXplIC0gMSk7Ci0gICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuc2RhdGEgYmlhcyA9ICUjbHhcbiIsIGRpLT5zZGF0YV9iaWFzKTsKKyAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5zZGF0YSBiaWFzID0gJSNseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpZGktPnNkYXRhX2JpYXMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEJBRCgiLnNkYXRhIik7CiAgICAgICAgICB9CkBAIC0xOTg4LDcgKzE5OTIsOCBAQAogICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLnJvZGF0YSBhdm1hID0gJSNseCAuLiAlI2x4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT5yb2RhdGFfYXZtYSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+cm9kYXRhX2F2bWEgKyBkaS0+cm9kYXRhX3NpemUgLSAxKTsKLSAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5yb2RhdGEgYmlhcyA9ICUjbHhcbiIsIGRpLT5yb2RhdGFfYmlhcyk7CisgICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAucm9kYXRhIGJpYXMgPSAlI2x4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZClkaS0+cm9kYXRhX2JpYXMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEJBRCgiLnJvZGF0YSIpOwogICAgICAgICAgfQpAQCAtMjAxMCw3ICsyMDE1LDggQEAKICAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5keW5ic3MgYXZtYSA9ICUjbHggLi4gJSNseFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+YnNzX2F2bWEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGktPmJzc19hdm1hICsgZGktPmJzc19zaXplIC0gMSk7Ci0gICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuZHluYnNzIGJpYXMgPSAlI2x4XG4iLCBkaS0+YnNzX2JpYXMpOworICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLmR5bmJzcyBiaWFzID0gJSNseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpZGktPmJzc19iaWFzKTsKICAgICAgICAgIH0KICAgICAgIH0KIApAQCAtMjAyNSw3ICsyMDMxLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBzdm1hLCBzdm1hICsgc2l6ZSAtIDEpOwogICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLmJzcyBhdm1hID0gJSNseCAuLiAlI2x4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN2bWEgKyBpbnJ3LT5iaWFzLCBzdm1hICsgaW5ydy0+YmlhcyArIHNpemUgLSAxKTsKLSAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5ic3MgYmlhcyA9ICUjbHhcbiIsIGRpLT5ic3NfYmlhcyk7CisgICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuYnNzIGJpYXMgPSAlI2x4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZClkaS0+YnNzX2JpYXMpOwogICAgICAgICAgfSBlbHNlCiAKICAgICAgICAgIGlmIChpbnJ3ICYmICFkaS0+YnNzX3ByZXNlbnQpIHsKQEAgLTIwNDIsNyArMjA0OSw4IEBACiAgICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuYnNzIGF2bWEgPSAlI2x4IC4uICUjbHhcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGktPmJzc19hdm1hLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT5ic3NfYXZtYSArIGRpLT5ic3Nfc2l6ZSAtIDEpOwotICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLmJzcyBiaWFzID0gJSNseFxuIiwgZGktPmJzc19iaWFzKTsKKyAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5ic3MgYmlhcyA9ICUjbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKWRpLT5ic3NfYmlhcyk7CiAgICAgICAgICB9IGVsc2UKIAogICAgICAgICAgLyogTm93IG9uZSBmcm9tIHRoZSB3dGY/ISBkZXBhcnRtZW50IC4uLiAqLwpAQCAtMjA5NSw3ICsyMTAzLDggQEAKICAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5zZHluYnNzIGF2bWEgPSAlI2x4IC4uICUjbHhcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGktPnNic3NfYXZtYSwKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+c2Jzc19hdm1hICsgZGktPnNic3Nfc2l6ZSAtIDEpOwotICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLnNkeW5ic3MgYmlhcyA9ICUjbHhcbiIsIGRpLT5zYnNzX2JpYXMpOworICAgICAgICAgICAgVFJBQ0VfU1lNVEFCKCJhY3F1aXJpbmcgLnNkeW5ic3MgYmlhcyA9ICUjbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKWRpLT5zYnNzX2JpYXMpOwogICAgICAgICAgfQogICAgICAgfQogCkBAIC0yMTEwLDcgKzIxMTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIHN2bWEsIHN2bWEgKyBzaXplIC0gMSk7CiAgICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuc2JzcyBhdm1hID0gJSNseCAuLiAlI2x4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN2bWEgKyBpbnJ3LT5iaWFzLCBzdm1hICsgaW5ydy0+YmlhcyArIHNpemUgLSAxKTsKLSAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5zYnNzIGJpYXMgPSAlI2x4XG4iLCBkaS0+c2Jzc19iaWFzKTsKKyAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5zYnNzIGJpYXMgPSAlI2x4XG4iLCAoVVdvcmQpZGktPnNic3NfYmlhcyk7CiAgICAgICAgICB9IGVsc2UKIAogICAgICAgICAgaWYgKGlucncgJiYgIWRpLT5zYnNzX3ByZXNlbnQpIHsKQEAgLTIxMjcsNyArMjEzNiw3IEBACiAgICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuc2JzcyBhdm1hID0gJSNseCAuLiAlI2x4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT5zYnNzX2F2bWEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGktPnNic3NfYXZtYSArIGRpLT5zYnNzX3NpemUgLSAxKTsKLSAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5zYnNzIGJpYXMgPSAlI2x4XG4iLCBkaS0+c2Jzc19iaWFzKTsKKyAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5zYnNzIGJpYXMgPSAlI2x4XG4iLCAoVVdvcmQpZGktPnNic3NfYmlhcyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQkFEKCIuc2JzcyIpOwogICAgICAgICAgfQpAQCAtMjE2MSw3ICsyMTcwLDggQEAKICMgICAgIGlmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpIFwKICAgICAgICAgIHx8IGRlZmluZWQoVkdQX2FybV9saW51eCkgfHwgZGVmaW5lZCAoVkdQX3MzOTB4X2xpbnV4KSBcCiAgICAgICAgICB8fCBkZWZpbmVkKFZHUF9taXBzMzJfbGludXgpIHx8IGRlZmluZWQoVkdQX21pcHM2NF9saW51eCkgXAotICAgICAgICAgfHwgZGVmaW5lZChWR1BfYXJtNjRfbGludXgpIHx8IGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkKKyAgICAgICAgIHx8IGRlZmluZWQoVkdQX2FybTY0X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF90aWxlZ3hfbGludXgpIFwKKyAgICAgICAgIHx8IGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKSB8fCBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQogICAgICAgLyogQWNjZXB0IC5wbHQgd2hlcmUgbWFwcGVkIGFzIHJ4IChjb2RlKSAqLwogICAgICAgaWYgKDAgPT0gVkdfKHN0cmNtcCkobmFtZSwgIi5wbHQiKSkgewogICAgICAgICAgaWYgKGlucnggJiYgIWRpLT5wbHRfcHJlc2VudCkgewpAQCAtMjI2MCw3ICsyMjcwLDggQEAKICAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5leGlkeCBhdm1hID0gJSNseCAuLiAlI2x4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT5leGlkeF9hdm1hLCAKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+ZXhpZHhfYXZtYSArIGRpLT5leGlkeF9zaXplIC0gMSk7Ci0gICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuZXhpZHggYmlhcyA9ICUjbHhcbiIsIGRpLT5leGlkeF9iaWFzKTsKKyAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5leGlkeCBiaWFzID0gJSNseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpZGktPmV4aWR4X2JpYXMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEJBRCgiLkFSTS5leGlkeCIpOwogICAgICAgICAgfQpAQCAtMjI4Miw3ICsyMjkzLDggQEAKICAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5leHRhYiBhdm1hID0gJSNseCAuLiAlI2x4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT5leHRhYl9hdm1hLCAKICAgICAgICAgICAgICAgICAgICAgICAgICBkaS0+ZXh0YWJfYXZtYSArIGRpLT5leHRhYl9zaXplIC0gMSk7Ci0gICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuZXh0YWIgYmlhcyA9ICUjbHhcbiIsIGRpLT5leHRhYl9iaWFzKTsKKyAgICAgICAgICAgIFRSQUNFX1NZTVRBQigiYWNxdWlyaW5nIC5leHRhYiBiaWFzID0gJSNseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpZGktPmV4dGFiX2JpYXMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEJBRCgiLkFSTS5leHRhYiIpOwogICAgICAgICAgfQpAQCAtMjI5NSw4ICsyMzA3LDggQEAKICAgIH0gLyogaXRlcmF0ZSBvdmVyIHRoZSBzZWN0aW9uIGhlYWRlcnMgKi8KIAogICAgLyogVE9QTEVWRUwgKi8KLSAgIGlmICgwKSBWR18ocHJpbnRmKSgiWVlZWSB0ZXh0XzogYXZtYSAlI2x4ICBzaXplICVsZCAgYmlhcyAlI2x4XG4iLAotICAgICAgICAgICAgICAgICAgICAgIGRpLT50ZXh0X2F2bWEsIGRpLT50ZXh0X3NpemUsIGRpLT50ZXh0X2JpYXMpOworICAgaWYgKDApIFZHXyhwcmludGYpKCJZWVlZIHRleHRfOiBhdm1hICUjbHggIHNpemUgJWx1ICBiaWFzICUjbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgZGktPnRleHRfYXZtYSwgZGktPnRleHRfc2l6ZSwgKFVXb3JkKWRpLT50ZXh0X2JpYXMpOwogCiAgICBpZiAoVkdfKGNsb192ZXJib3NpdHkpID4gMiB8fCBWR18oY2xvX3RyYWNlX3JlZGlyKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIiAgIHN2bWEgJSMwMTBseCwgYXZtYSAlIzAxMGx4XG4iLApAQCAtMjMyMyw2ICsyMzM1LDkgQEAKICAgICAgIERpU2xpY2Ugc3ltdGFiX2VzY24gICAgICAgICA9IERpU2xpY2VfSU5WQUxJRDsgLy8gLnN5bXRhYgogICAgICAgRGlTbGljZSBkeW5zdHJfZXNjbiAgICAgICAgID0gRGlTbGljZV9JTlZBTElEOyAvLyAuZHluc3RyCiAgICAgICBEaVNsaWNlIGR5bnN5bV9lc2NuICAgICAgICAgPSBEaVNsaWNlX0lOVkFMSUQ7IC8vIC5keW5zeW0KKyMgICAgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICBEaVNsaWNlIGxkeW5zeW1fZXNjbiAgICAgICAgPSBEaVNsaWNlX0lOVkFMSUQ7IC8vIC5TVU5XX2xkeW5zeW0KKyMgICAgIGVuZGlmCiAgICAgICBEaVNsaWNlIGRlYnVnbGlua19lc2NuICAgICAgPSBEaVNsaWNlX0lOVkFMSUQ7IC8vIC5nbnVfZGVidWdsaW5rCiAgICAgICBEaVNsaWNlIGRlYnVnYWx0bGlua19lc2NuICAgPSBEaVNsaWNlX0lOVkFMSUQ7IC8vIC5nbnVfZGVidWdhbHRsaW5rCiAgICAgICBEaVNsaWNlIGRlYnVnX2xpbmVfZXNjbiAgICAgPSBEaVNsaWNlX0lOVkFMSUQ7IC8vIC5kZWJ1Z19saW5lICAgKGR3YXJmMikKQEAgLTIzODUsOCArMjQwMCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWNfbmFtZSwgKFVMb25nKV9zZWNfZXNjbi5pb2ZmLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoVUxvbmcpX3NlY19lc2NuLmlvZmYpICsgX3NlY19lc2NuLnN6QiAtIDEpOyBcCiAgICAgICAgICAgICAgICAvKiBTSFRfTk9CSVRTIHNlY3Rpb25zIGhhdmUgemVybyBzaXplIGluIHRoZSBmaWxlLiAqLyBcCi0gICAgICAgICAgICAgICBpZiAoIGFfc2hkci5zaF9vZmZzZXQgXAotICAgICAgICAgICAgICAgICAgICArIChub2JpdHMgPyAwIDogX3NlY19lc2NuLnN6QikgPiBNTF8oaW1nX3NpemUpKG1pbWcpICkgeyBcCisgICAgICAgICAgICAgICBpZiAoIW5vYml0cyAmJiBcCisgICAgICAgICAgICAgICAgICAgYV9zaGRyLnNoX29mZnNldCArIF9zZWNfZXNjbi5zekIgPiBNTF8oaW1nX3NpemUpKG1pbWcpICkgeyBcCiAgICAgICAgICAgICAgICAgICBNTF8oc3ltZXJyKShkaSwgVHJ1ZSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgIHNlY3Rpb24gYmV5b25kIGltYWdlIGVuZD8hIik7IFwKICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0OyBcCkBAIC0yNDA0LDYgKzI0MTksOSBAQAogICAgICAgICAgRklORCgiLmR5bnN0ciIsICAgICAgICAgICAgZHluc3RyX2VzY24pCiAgICAgICAgICBGSU5EKCIuc3ltdGFiIiwgICAgICAgICAgICBzeW10YWJfZXNjbikKICAgICAgICAgIEZJTkQoIi5zdHJ0YWIiLCAgICAgICAgICAgIHN0cnRhYl9lc2NuKQorIyAgICAgICAgaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgICAgIEZJTkQoIi5TVU5XX2xkeW5zeW0iLCAgICAgIGxkeW5zeW1fZXNjbikKKyMgICAgICAgIGVuZGlmCiAKICAgICAgICAgIEZJTkQoIi5nbnVfZGVidWdsaW5rIiwgICAgIGRlYnVnbGlua19lc2NuKQogICAgICAgICAgRklORCgiLmdudV9kZWJ1Z2FsdGxpbmsiLCAgZGVidWdhbHRsaW5rX2VzY24pCkBAIC0yNjM2LDcgKzI2NTQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT5fc2VjIyNfZGVidWdfc3ZtYSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpLT5fc2VjIyNfZGVidWdfc3ZtYSArIGRpLT5fc2VjIyNfc2l6ZSAtIDEpOyBcCiAgICAgICAgICAgICAgICAgICBUUkFDRV9TWU1UQUIoImFjcXVpcmluZyAuIiAjX3NlYyAiIGRlYnVnIGJpYXMgPSAlI2x4XG4iLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGktPl9zZWMjI19kZWJ1Z19iaWFzKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZClkaS0+X3NlYyMjX2RlYnVnX2JpYXMpOyAgICAgICAgICAgXAogICAgICAgICAgICAgICAgfSBcCiAgICAgICAgICAgICB9IHdoaWxlICgwKTsKIApAQCAtMjY4MCw4ICsyNjk4LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVMb25nKV9zZWNfZXNjbi5pb2ZmLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoVUxvbmcpX3NlY19lc2NuLmlvZmYpICsgX3NlY19lc2NuLnN6QiAtIDEpOyBcCiAgICAgICAgICAgICAgICAgICAvKiBTSFRfTk9CSVRTIHNlY3Rpb25zIGhhdmUgemVybyBzaXplIGluIHRoZSBmaWxlLiAqLyBcCi0gICAgICAgICAgICAgICAgICBpZiAoYV9zaGRyLnNoX29mZnNldCBcCi0gICAgICAgICAgICAgICAgICAgICAgKyAobm9iaXRzID8gMCA6IF9zZWNfZXNjbi5zekIpID4gTUxfKGltZ19zaXplKShkaW1nKSkgeyBcCisgICAgICAgICAgICAgICAgICBpZiAoIW5vYml0cyAmJiBhX3NoZHIuc2hfb2Zmc2V0IFwKKyAgICAgICAgICAgICAgICAgICAgICArIF9zZWNfZXNjbi5zekIgPiBNTF8oaW1nX3NpemUpKGRpbWcpKSB7IFwKICAgICAgICAgICAgICAgICAgICAgIE1MXyhzeW1lcnIpKGRpLCBUcnVlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgc2VjdGlvbiBiZXlvbmQgaW1hZ2UgZW5kPyEiKTsgXAogICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7IFwKQEAgLTI4NDAsNiArMjg1OCw5IEBACiAgICAgICAvKiBDaGVjayBzb21lIHNpemVzICovCiAgICAgICB2Z19hc3NlcnQoKGR5bnN5bV9lc2NuLnN6QiAlIHNpemVvZihFbGZYWF9TeW0pKSA9PSAwKTsKICAgICAgIHZnX2Fzc2VydCgoc3ltdGFiX2VzY24uc3pCICUgc2l6ZW9mKEVsZlhYX1N5bSkpID09IDApOworIyAgICAgaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgIHZnX2Fzc2VydCgobGR5bnN5bV9lc2NuLnN6QiAlIHNpemVvZihFbGZYWF9TeW0pKSA9PSAwKTsKKyMgICAgIGVuZGlmCiAKICAgICAgIC8qIFRPUExFVkVMICovCiAgICAgICAvKiBSZWFkIHN5bWJvbHMgKi8KQEAgLTI4NTksNiArMjg4MCwxMSBAQAogICAgICAgICAgcmVhZF9lbGZfc3ltdGFiKGRpLCAiZHluYW1pYyBzeW1ib2wgdGFibGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICZkeW5zeW1fZXNjbiwgJmR5bnN0cl9lc2NuLCAmb3BkX2VzY24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpOworIyAgICAgICAgaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgICAgIHJlYWRfZWxmX3N5bXRhYihkaSwgImxvY2FsIGR5bmFtaWMgc3ltYm9sIHRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmbGR5bnN5bV9lc2NuLCAmZHluc3RyX2VzY24sICZvcGRfZXNjbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSk7CisjICAgICAgICBlbmRpZgogICAgICAgfQogCiAgICAgICAvKiBUT1BMRVZFTCAqLwpAQCAtMjk5MCw3ICszMDE2LDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgIH0KLSAgICAgIFZHXyh1bXNnKSgiVkFSSU5GTzogJTdsdSB2YXJzICAgJTdsZCB0ZXh0X3NpemUgICAlc1xuIiwKKyAgICAgIFZHXyh1bXNnKSgiVkFSSU5GTzogJTdsdSB2YXJzICAgJTdsdSB0ZXh0X3NpemUgICAlc1xuIiwKICAgICAgICAgICAgICAgICBuVmFycywgZGktPnRleHRfc2l6ZSwgZGktPmZzbS5maWxlbmFtZSk7CiAgICB9CiAgICAvKiBUT1BMRVZFTCAqLwpAQCAtMzAxMCw3ICszMDM2LDcgQEAKICAgIC8qIE5PVFJFQUNIRUQgKi8KIH0KIAotI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KQorI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRleGlkeC5jIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRleGlkeC5jCmluZGV4IDcyN2RlYjMuLjA2YTlhNWYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2RlYnVnaW5mby9yZWFkZXhpZHguYworKysgYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZGV4aWR4LmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTQgTW96aWxsYSBGb3VuZGF0aW9uCisgICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBNb3ppbGxhIEZvdW5kYXRpb24KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTIwNSw3ICsyMDUsNyBAQAogCiAKIC8qIEhlbHBlciBmdW5jdGlvbiBmb3IgZmlzaGluZyBiaXRzIG91dCBvZiB0aGUgRVhJRFggcmVwcmVzZW50YXRpb24uICovCi1zdGF0aWMgdm9pZCogUHJlbDMxVG9BZGRyKGNvbnN0IHZvaWQqIGFkZHIpCitzdGF0aWMgY29uc3Qgdm9pZCogUHJlbDMxVG9BZGRyKGNvbnN0IHZvaWQqIGFkZHIpCiB7CiAgICBVSW50IG9mZnNldDMyID0gKihjb25zdCBVSW50KilhZGRyOwogICAgLy8gc2lnbiBleHRlbmQgb2Zmc2V0MzJbMzA6MF0gdG8gNjQgYml0cyAtLSBjb3B5IGJpdCAzMCB0byBwb3NpdGlvbnMKQEAgLTIxNSw3ICsyMTUsNyBAQAogICAgICAgb2Zmc2V0NjQgfD0gMHhGRkZGRkZGRjgwMDAwMDAwVUxMOwogICAgZWxzZQogICAgICAgb2Zmc2V0NjQgJj0gMHgwMDAwMDAwMDdGRkZGRkZGVUxMOwotICAgcmV0dXJuICgoVUNoYXIqKWFkZHIpICsgKFVXb3JkKW9mZnNldDY0OworICAgcmV0dXJuICgoY29uc3QgVUNoYXIqKWFkZHIpICsgKFVXb3JkKW9mZnNldDY0OwogfQogCiAKQEAgLTI0Miw5ICsyNDIsOSBAQAogICAgICAgICAgICBidWZbKCpidWZfdXNlZCkrK10gPSAoX2J5dGUpOyB9IHdoaWxlICgwKQogCiAjICBkZWZpbmUgR0VUX0VYX1UzMihfbHZhbCwgX2FkZHIsIF9tcikgXAotICAgICAgZG8geyBpZiAoIU1lbW9yeVJhbmdlX19jb3ZlcnMoKF9tciksICh2b2lkKikoX2FkZHIpLCA0KSkgXAorICAgICAgZG8geyBpZiAoIU1lbW9yeVJhbmdlX19jb3ZlcnMoKF9tciksIChjb25zdCB2b2lkKikoX2FkZHIpLCA0KSkgXAogICAgICAgICAgICAgICByZXR1cm4gRXhJbkJ1Zk92ZXJmbG93OyBcCi0gICAgICAgICAgIChfbHZhbCkgPSAqKFVJbnQqKShfYWRkcik7IH0gd2hpbGUgKDApCisgICAgICAgICAgIChfbHZhbCkgPSAqKGNvbnN0IFVJbnQqKShfYWRkcik7IH0gd2hpbGUgKDApCiAKICMgIGRlZmluZSBHRVRfRVhJRFhfVTMyKF9sdmFsLCBfYWRkcikgXAogICAgICAgR0VUX0VYX1UzMihfbHZhbCwgX2FkZHIsIG1yX2V4aWR4KQpAQCAtMjYzLDcgKzI2Myw3IEBACiAgICBVSW50ICBwZXJzOyAgICAgICAgICAvLyBwZXJzb25hbGl0eSBudW1iZXIKICAgIFVJbnQgIGV4dHJhOyAgICAgICAgIC8vIG51bWJlciBvZiBleHRyYSBkYXRhIHdvcmRzIHJlcXVpcmVkCiAgICBVSW50ICBleHRyYV9hbGxvd2VkOyAvLyBudW1iZXIgb2YgZXh0cmEgZGF0YSB3b3JkcyBhbGxvd2VkCi0gICBVSW50KiBleHRibF9kYXRhOyAgICAvLyB0aGUgaGFuZGxlciBlbnRyeSwgaWYgbm90IGlubGluZWQKKyAgIGNvbnN0IFVJbnQqIGV4dGJsX2RhdGE7ICAgIC8vIHRoZSBoYW5kbGVyIGVudHJ5LCBpZiBub3QgaW5saW5lZAogCiAgICBpZiAoZGF0YSAmIEFSTV9FWElEWF9DT01QQUNUKSB7CiAgICAgICAvLyBUaGUgaGFuZGxlciB0YWJsZSBlbnRyeSBoYXMgYmVlbiBpbmxpbmVkIGludG8gdGhlIGluZGV4IHRhYmxlIGVudHJ5LgpAQCAtMjgzLDExICsyODMsMTEgQEAKICAgICAgIC8vIFRoZSBpbmRleCB0YWJsZSBlbnRyeSBpcyBhIHBvaW50ZXIgdG8gdGhlIGhhbmRsZXIgZW50cnkuICBOb3RlCiAgICAgICAvLyB0aGF0IFByZWwzMVRvQWRkciB3aWxsIHJlYWQgdGhlIGdpdmVuIGFkZHJlc3MsIGJ1dCB3ZSBhbHJlYWR5CiAgICAgICAvLyByYW5nZS1jaGVja2VkIGFib3ZlLgotICAgICAgZXh0YmxfZGF0YSA9IChVSW50KikoUHJlbDMxVG9BZGRyKCZlbnRyeS0+ZGF0YSkpOworICAgICAgZXh0YmxfZGF0YSA9IFByZWwzMVRvQWRkcigmZW50cnktPmRhdGEpOwogICAgICAgR0VUX0VYVEFCX1UzMihkYXRhLCBleHRibF9kYXRhKTsKICAgICAgIGlmICghKGRhdGEgJiBBUk1fRVhJRFhfQ09NUEFDVCkpIHsKICAgICAgICAgIC8vIFRoaXMgZGVub3RlcyBhICJnZW5lcmljIG1vZGVsIiBoYW5kbGVyLiAgVGhhdCB3aWxsIGludm9sdmUKLSAgICAgICAgIC8vIGV4ZWN1dGluZyBhcmJpdGFyeSBtYWNoaW5lIGNvZGUsIHdoaWNoIGlzIHNvbWV0aGluZyB3ZQorICAgICAgICAgLy8gZXhlY3V0aW5nIGFyYml0cmFyeSBtYWNoaW5lIGNvZGUsIHdoaWNoIGlzIHNvbWV0aGluZyB3ZQogICAgICAgICAgLy8gY2FuJ3QgcmVwcmVzZW50IGhlcmU7IGhlbmNlIHJlamVjdCBpdC4KICAgICAgICAgIHJldHVybiBFeENhbnRSZXByZXNlbnQ7CiAgICAgICB9CkBAIC0yOTksOSArMjk5LDkgQEAKICAgICAgIGV4dGJsX2RhdGErKzsKICAgIH0KIAotICAgLy8gTm93IGxvb2sgYXQgdGhlIHRoZSBoYW5kbGVyIHRhYmxlIGVudHJ5LiAgVGhlIGZpcnN0IHdvcmQgaXMKLSAgIC8vIHxkYXRhfCBhbmQgc3Vic2VxdWVudCB3b3JkcyBzdGFydCBhdCB8KmV4dGJsX2RhdGF8LiAgVGhlIG51bWJlcgotICAgLy8gb2YgZXh0cmEgd29yZHMgdG8gdXNlIGlzIHxleHRyYXwsIHByb3ZpZGVkIHRoYXQgdGhlIHBlcnNvbmFsaXR5CisgICAvLyBOb3cgbG9vayBhdCB0aGUgaGFuZGxlciB0YWJsZSBlbnRyeS4gIFRoZSBmaXJzdCB3b3JkIGlzIHxkYXRhfAorICAgLy8gYW5kIHN1YnNlcXVlbnQgd29yZHMgc3RhcnQgYXQgfCpleHRibF9kYXRhfC4gIFRoZSBudW1iZXIgb2YKKyAgIC8vIGV4dHJhIHdvcmRzIHRvIHVzZSBpcyB8ZXh0cmF8LCBwcm92aWRlZCB0aGF0IHRoZSBwZXJzb25hbGl0eQogICAgLy8gYWxsb3dzIGV4dHJhIHdvcmRzLiAgRXZlbiBpZiBpdCBkb2VzLCBub25lIG1heSBiZSBhdmFpbGFibGUgLS0KICAgIC8vIGV4dHJhX2FsbG93ZWQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGV4dHJhIHdvcmRzIGFsbG93ZWQuICovCiAgICBpZiAocGVycyA9PSAwKSB7CkBAIC01NTQsNyArNTU0LDcgQEAKIAogICAgICAgaWYgKDApCiAgICAgICAgICBWR18ocHJpbnRmKSgiICBlZGF0YTogIGNtZCAlMDh4ICBkYXRhICUwOHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAoVUludCllZGF0YS5jbWQsIChVSW50KWVkYXRhLmRhdGEpOworICAgICAgICAgICAgICAgICAgICAgKFVJbnQpZWRhdGEuY21kLCBlZGF0YS5kYXRhKTsKIAogICAgICAgSW50IHJldCA9IFRyYW5zbGF0ZUNtZCAoIHN0YXRlLCAmZWRhdGEgKTsKICAgICAgIGlmIChyZXQgPCAwKSByZXR1cm4gcmV0OwpAQCAtNjczLDcgKzY3Myw3IEBACiAgICAgICBkZWZhdWx0OgogICAgICAgICAgYnJlYWs7CiAgICB9Ci0gICBWR18ocHJpbnRmKSgic2V0Q0ZBZnJvbUNGSVI6IEZBSUw6IGhvdyAlZCBvZmYgJWRcbiIsIChJbnQpaG93LCAoSW50KW9mZik7CisgICBWR18ocHJpbnRmKSgic2V0Q0ZBZnJvbUNGSVI6IEZBSUw6IGhvdyAlZCBvZmYgJWRcbiIsIGhvdywgb2ZmKTsKICAgIHZnX2Fzc2VydCgwKTsKICAgIHJldHVybiBGYWxzZTsKIH0KQEAgLTk0MSw3ICs5NDEsNyBAQAogICAgICAgVkdfKHByaW50ZikoIkJFR0lOIE1MXyhyZWFkX2V4aWR4KSBleGlkeF9pbWc9WyVwLCArJWx1KSAiCiAgICAgICAgICAgICAgICAgICAiZXh0YWJfaW1nPVslcCwgKyVsdSkgdGV4dF9sYXN0X3N2bWE9JWx4IHRleHRfYmlhcz0lbHhcbiIsCiAgICAgICAgICAgICAgICAgICBleGlkeF9pbWcsIGV4aWR4X3NpemUsIGV4dGFiX2ltZywgZXh0YWJfc2l6ZSwKLSAgICAgICAgICAgICAgICAgIHRleHRfbGFzdF9zdm1hLCB0ZXh0X2JpYXMpOworICAgICAgICAgICAgICAgICAgdGV4dF9sYXN0X3N2bWEsIChVV29yZCl0ZXh0X2JpYXMpOwogICAgQm9vbCBvazsKICAgIE1lbW9yeVJhbmdlIG1yX2V4aWR4LCBtcl9leHRhYjsKICAgIG9rID0gICAgICAgTWVtb3J5UmFuZ2VfX2luaXQoJm1yX2V4aWR4LCBleGlkeF9pbWcsIGV4aWR4X3NpemUpOwpAQCAtOTcwLDggKzk3MCw4IEBACiAgICAgICAvLyBhc3NvY2lhdGVkIHdpdGguCiAgICAgICBBZGRyIGF2bWEgPSAoQWRkcilQcmVsMzFUb0FkZHIoJmVudHJ5X2ltZy0+YWRkcik7CiAgICAgICBpZiAoZGktPnRyYWNlX2NmaSkKLSAgICAgICAgIFZHXyhwcmludGYpKCJYWFgxIGVudHJ5OiBlbnRyeS0+YWRkciAweCVseCwgYXZtYSAweCVseFxuIiwKLSAgICAgICAgICAgICAgICAgICAgIChVV29yZCllbnRyeV9pbWctPmFkZHIsIGF2bWEpOworICAgICAgICAgVkdfKHByaW50ZikoIlhYWDEgZW50cnk6IGVudHJ5LT5hZGRyIDB4JXgsIGF2bWEgMHglbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICBlbnRyeV9pbWctPmFkZHIsIGF2bWEpOwogCiAgICAgICBBZGRyIG5leHRfYXZtYTsKICAgICAgIGlmIChlbnRyeV9pbWcgPCBlbmRfaW1nIC0gMSkgewpAQCAtMTAwNiw4ICsxMDA2LDggQEAKICAgICAgICAgIGlmICghcGxhdXNpYmxlICYmIGF2bWEgIT0gdGV4dF9sYXN0X2F2bWEgKyAxKSB7CiAgICAgICAgICAgICBIQ2hhciBidWZbMTAwXTsKICAgICAgICAgICAgIFZHXyhzbnByaW50ZikoYnVmLCBzaXplb2YoYnVmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIkltcGxhdXNpYmxlIEVYSURYIGxhc3QgZW50cnkgc2l6ZSAldSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgdXNpbmcgMSBpbnN0ZWFkLiIsIChVSW50KSh0ZXh0X2xhc3RfYXZtYSAtIGF2bWEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkltcGxhdXNpYmxlIEVYSURYIGxhc3QgZW50cnkgc2l6ZSAlbHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICI7IHVzaW5nIDEgaW5zdGVhZC4iLCB0ZXh0X2xhc3RfYXZtYSAtIGF2bWEpOwogICAgICAgICAgICAgYnVmW3NpemVvZihidWYpLTFdID0gMDsKICAgICAgICAgICAgIGNvbXBsYWluKGJ1Zik7CiAgICAgICAgICB9CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZG1hY2hvLmMgYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZG1hY2hvLmMKaW5kZXggZjM1OWQ1Ny4uOThhYjA0OCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRtYWNoby5jCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9yZWFkbWFjaG8uYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBBcHBsZSBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBBcHBsZSBJbmMuCiAgICAgICBHcmVnIFBhcmtlciBncGFya2VyQGFwcGxlLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zOTIsOCArMzkyLDggQEAKICAgIHRoZSBwcmltYXJ5IG5hbWUgYXMgYSBzZWNvbmRhcnkgc29ydCBrZXkuICovCiBzdGF0aWMgSW50IGNtcF9EaVN5bV9ieV9zdGFydF90aGVuX25hbWUgKCBjb25zdCB2b2lkKiB2MSwgY29uc3Qgdm9pZCogdjIgKQogewotICAgY29uc3QgRGlTeW0qIHMxID0gKERpU3ltKil2MTsKLSAgIGNvbnN0IERpU3ltKiBzMiA9IChEaVN5bSopdjI7CisgICBjb25zdCBEaVN5bSogczEgPSAoY29uc3QgRGlTeW0qKXYxOworICAgY29uc3QgRGlTeW0qIHMyID0gKGNvbnN0IERpU3ltKil2MjsKICAgIGlmIChzMS0+YXZtYXMubWFpbiA8IHMyLT5hdm1hcy5tYWluKSByZXR1cm4gLTE7CiAgICBpZiAoczEtPmF2bWFzLm1haW4gPiBzMi0+YXZtYXMubWFpbikgcmV0dXJuIDE7CiAgICByZXR1cm4gVkdfKHN0cmNtcCkoczEtPnByaV9uYW1lLCBzMi0+cHJpX25hbWUpOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRwZGIuYyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9yZWFkcGRiLmMKaW5kZXggM2EwZDQyMi4uOGI2M2U5NSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRwZGIuYworKysgYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZHBkYi5jCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgICBkZXJpdmVkIGZyb20gcmVhZGVsZi5jIGFuZCB2YWxncmluZC0yMDAzMTAxMi13aW5lL3ZnX3N5bXRhYjIuYwogICAgICAgZGVyaXZlZCBmcm9tIHdpbmUtMS4wL3Rvb2xzL3dpbmVkdW1wL3BkYi5jIGFuZCBtc2MuYwogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKICAgIENvcHlyaWdodCAyMDA2IEVyaWMgUG91ZWNoICh3aW5lZHVtcC9wZGIuYyBhbmQgbXNjLmMpCiAgICAgICBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEgb3IgbGF0ZXIgYXBwbGllcy4KQEAgLTM1LDcgKzM1LDcgQEAKICAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKICNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIKICNpbmNsdWRlICJwdWJfY29yZV9kZWJ1Z2luZm8uaCIKQEAgLTExMTMsNyArMTExMyw3IEBACiBzdGF0aWMgCiB2b2lkIHBkYl9jaGVja19yb290X3ZlcnNpb25fYW5kX3RpbWVzdGFtcCggY29uc3QgSENoYXIqIHBkYm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvbmcgIHBkYm10aW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkICB2ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJbnQgIHZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUludCBUaW1lRGF0ZVN0YW1wICkKIHsKICAgIHN3aXRjaCAoIHZlcnNpb24gKSB7CkBAIC0xMTI2LDcgKzExMjYsNyBAQAogICAgICAgZGVmYXVsdDoKICAgICAgICAgIGlmIChWR18oY2xvX3ZlcmJvc2l0eSkgPiAxKQogICAgICAgICAgICAgVkdfKHVtc2cpKCJMT0FEX1BEQl9ERUJVR0lORk86ICIKLSAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biAucGRiIHJvb3QgYmxvY2sgdmVyc2lvbiAlZFxuIiwgdmVyc2lvbiApOworICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIC5wZGIgcm9vdCBibG9jayB2ZXJzaW9uICV1XG4iLCB2ZXJzaW9uICk7CiAgICB9CiAgICBpZiAoIFRpbWVEYXRlU3RhbXAgIT0gcGRibXRpbWUgKSB7CiAgICAgICBpZiAoVkdfKGNsb192ZXJib3NpdHkpID4gMSkKQEAgLTEyMzgsOSArMTIzOCw5IEBACiAKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBpZiAoMCkgewotICAgICAgICAgICAgY29uc3QgaW50ICppc3ltID0gKGNvbnN0IGludCAqKXN5bTsKKyAgICAgICAgICAgIGNvbnN0IFVJbnQgKmlzeW0gPSAoY29uc3QgVUludCAqKXN5bTsKICAgICAgICAgICAgIFZHXyhwcmludGYpKCJ1bmtub3duIGlkIDB4JXggbGVuPTB4JXggYXQgJXBcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBzeW0tPmdlbmVyaWMuaWQsIHN5bS0+Z2VuZXJpYy5sZW4sIHN5bSk7CisgICAgICAgICAgICAgICAgICAgICAgICAoVUludClzeW0tPmdlbmVyaWMuaWQsIChVSW50KXN5bS0+Z2VuZXJpYy5sZW4sIHN5bSk7CiAgICAgICAgICAgICBWR18ocHJpbnRmKSgiICAlOHggICU4eCAgJTh4ICAlOHhcbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgaXN5bVsxXSwgaXN5bVsyXSwgaXN5bVszXSwgaXN5bVs0XSk7CiAgICAgICAgICAgICBWR18ocHJpbnRmKSgiICAlOHggICU4eCAgJTh4ICAlOHhcbiIsCkBAIC0xMzY2LDcgKzEzNjYsNyBAQAogICAgICAgICAgdnN5bS5pc1RleHQgICAgPSBUcnVlOwogICAgICAgICAgdnN5bS5pc0lGdW5jICAgPSBGYWxzZTsKICAgICAgICAgIGlmIChkZWJ1ZykKLSAgICAgICAgICAgIFZHXyh1bXNnKSgiICBBZGRpbmcgZnVuY3Rpb24gJXMgYWRkcj0lI2x4IGxlbmd0aD0lZFxuIiwKKyAgICAgICAgICAgIFZHXyh1bXNnKSgiICBBZGRpbmcgZnVuY3Rpb24gJXMgYWRkcj0lI2x4IGxlbmd0aD0ldVxuIiwKICAgICAgICAgICAgICAgICAgICAgICBzeW1uYW1lLCB2c3ltLmF2bWFzLm1haW4sIHZzeW0uc2l6ZSApOwogICAgICAgICAgTUxfKGFkZFN5bSkoIGRpLCAmdnN5bSApOwogICAgICAgICAgbl9zeW1zX3JlYWQrKzsKQEAgLTEzODcsNyArMTM4Nyw3IEBACiAgICAgICAgICB2c3ltLmlzVGV4dCAgICA9IFRydWU7CiAgICAgICAgICB2c3ltLmlzSUZ1bmMgICA9IEZhbHNlOwogICAgICAgICAgaWYgKGRlYnVnKQotICAgICAgICAgICAgVkdfKHVtc2cpKCIgIEFkZGluZyBmdW5jdGlvbiAlcyBhZGRyPSUjbHggbGVuZ3RoPSVkXG4iLAorICAgICAgICAgICAgVkdfKHVtc2cpKCIgIEFkZGluZyBmdW5jdGlvbiAlcyBhZGRyPSUjbHggbGVuZ3RoPSV1XG4iLAogICAgICAgICAgICAgICAgICAgICAgIHN5bW5hbWUsIHZzeW0uYXZtYXMubWFpbiwgdnN5bS5zaXplICk7CiAgICAgICAgICBNTF8oYWRkU3ltKSggZGksICZ2c3ltICk7CiAgICAgICAgICBuX3N5bXNfcmVhZCsrOwpAQCAtMTc1Niw3ICsxNzU2LDcgQEAKIAogICAgICAgZm9yIChpID0gMDsgaSA8IGxiaC0+bmxpbmVzOyBpKyspIHsKICAgICAgICAgIGlmIChkZWJ1ZykKLSAgICAgICAgICAgIFZHXyhwcmludGYpKCIlcyAgb2Zmc2V0PSUwOHggbGluZT0lZFxuIiwKKyAgICAgICAgICAgIFZHXyhwcmludGYpKCIlcyAgb2Zmc2V0PSUwOHggbGluZT0ldVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHBmeCwgbGJoLT5sW2ldLm9mZnNldCwgbGJoLT5sW2ldLmxpbmVubyBeIDB4ODAwMDAwMDApOwogICAgICAgfQogCkBAIC0xNzY3LDcgKzE3NjcsNyBAQAogICAgICAgICAgICAgc3ZtYV9lID0gc2VjdHBbbGJoLT5zZWcgLSAxXS5WaXJ0dWFsQWRkcmVzcyArIGxiaC0+c3RhcnQKICAgICAgICAgICAgICAgICAgICAgICsgbGJoLT5sW2krMV0ub2Zmc2V0LTE7CiAgICAgICAgICAgICBpZiAoZGVidWcpCi0gICAgICAgICAgICAgICBWR18ocHJpbnRmKSgiJXMgIGxpbmUgJWQ6ICUwOGx4IHRvICUwOGx4XG4iLAorICAgICAgICAgICAgICAgVkdfKHByaW50ZikoIiVzICBsaW5lICV1OiAlMDhseCB0byAlMDhseFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBmeCwgbGJoLT5sW2ldLmxpbmVubyBeIDB4ODAwMDAwMDAsIHN2bWFfcywgc3ZtYV9lKTsKICAgICAgICAgICAgIE1MXyhhZGRMaW5lSW5mbykoIGRpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVkaXJuYW1lX2l4LApAQCAtMTc4MSw3ICsxNzgxLDcgQEAKICAgICAgICAgIHN2bWFfZSA9IHNlY3RwW2xiaC0+c2VnIC0gMV0uVmlydHVhbEFkZHJlc3MgKyBsYmgtPnN0YXJ0CiAgICAgICAgICAgICAgICAgICArIGxiaC0+c2l6ZSAtIDE7CiAgICAgICAgICBpZiAoZGVidWcpCi0gICAgICAgICAgICBWR18ocHJpbnRmKSgiJXMgIGxpbmUgJWQ6ICUwOGx4IHRvICUwOGx4XG4iLAorICAgICAgICAgICAgVkdfKHByaW50ZikoIiVzICBsaW5lICV1OiAlMDhseCB0byAlMDhseFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHBmeCwgbGJoLT5sWyBsYmgtPm5saW5lcy0xICBdLmxpbmVubyBeIDB4ODAwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICBzdm1hX3MsIHN2bWFfZSk7CiAgICAgICAgICAgTUxfKGFkZExpbmVJbmZvKSggZGksIApAQCAtMjA5OSw3ICsyMDk5LDcgQEAKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBpZiAoVkdfKGNsb192ZXJib3NpdHkpID4gMSkKICAgICAgICAgICAgIFZHXyh1bXNnKSgiTE9BRF9QREJfREVCVUdJTkZPOiAiCi0gICAgICAgICAgICAgICAgICAgICAgIlVua25vd24gLnBkYiB0eXBlIGluZm8gdmVyc2lvbiAlbGRcbiIsIHR5cGVzLnZlcnNpb24gKTsKKyAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biAucGRiIHR5cGUgaW5mbyB2ZXJzaW9uICVsdVxuIiwgdHlwZXMudmVyc2lvbiApOwogICAgfQogCiAgICBoZWFkZXJfc2l6ZSA9IDA7CkBAIC0yMTEzLDcgKzIxMTMsNyBAQAogICAgICAgZGVmYXVsdDoKICAgICAgICAgIGlmIChWR18oY2xvX3ZlcmJvc2l0eSkgPiAxKQogICAgICAgICAgICAgVkdfKHVtc2cpKCJMT0FEX1BEQl9ERUJVR0lORk86ICIKLSAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biAucGRiIHN5bWJvbCBpbmZvIHZlcnNpb24gJWxkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIC5wZGIgc3ltYm9sIGluZm8gdmVyc2lvbiAlbHVcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9scy52ZXJzaW9uICk7CiAgICB9CiAKQEAgLTIzODQsMjEgKzIzODQsMjEgQEAKICAgICAgICAgIGNvbnN0IERlYnVnSW5mb01hcHBpbmcqIG1hcCA9IFZHXyhpbmRleFhBKShkaS0+ZnNtLm1hcHMsIGkpOwogICAgICAgICAgaWYgKG1hcC0+cngpCiAgICAgICAgICAgICBWR18oZG1zZykoIkxPQURfUERCX0RFQlVHSU5GTzogIgotICAgICAgICAgICAgICAgICAgICAgICJyeF9tYXA6IGF2bWEgJSNseCBzaXplICU3bHUgZm9mZiAlbGx1XG4iLAotICAgICAgICAgICAgICAgICAgICAgIG1hcC0+YXZtYSwgbWFwLT5zaXplLCAoT2ZmNjRUKW1hcC0+Zm9mZik7CisgICAgICAgICAgICAgICAgICAgICAgInJ4X21hcDogYXZtYSAlI2x4IHNpemUgJTdsdSBmb2ZmICVsbGRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgbWFwLT5hdm1hLCBtYXAtPnNpemUsIChMb25nKW1hcC0+Zm9mZik7CiAgICAgICB9CiAgICAgICBmb3IgKGkgPSAwOyBpIDwgVkdfKHNpemVYQSkoZGktPmZzbS5tYXBzKTsgaSsrKSB7CiAgICAgICAgICBjb25zdCBEZWJ1Z0luZm9NYXBwaW5nKiBtYXAgPSBWR18oaW5kZXhYQSkoZGktPmZzbS5tYXBzLCBpKTsKICAgICAgICAgIGlmIChtYXAtPnJ3KQogICAgICAgICAgICAgVkdfKGRtc2cpKCJMT0FEX1BEQl9ERUJVR0lORk86ICIKLSAgICAgICAgICAgICAgICAgICAgICAicndfbWFwOiBhdm1hICUjbHggc2l6ZSAlN2x1IGZvZmYgJWxsdVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICBtYXAtPmF2bWEsIG1hcC0+c2l6ZSwgKE9mZjY0VCltYXAtPmZvZmYpOworICAgICAgICAgICAgICAgICAgICAgICJyd19tYXA6IGF2bWEgJSNseCBzaXplICU3bHUgZm9mZiAlbGxkXG4iLAorICAgICAgICAgICAgICAgICAgICAgIG1hcC0+YXZtYSwgbWFwLT5zaXplLCAoTG9uZyltYXAtPmZvZmYpOwogICAgICAgfQogCiAgICAgICBWR18oZG1zZykoIkxPQURfUERCX0RFQlVHSU5GTzogIgogICAgICAgICAgICAgICAgICIgIHRleHQ6IGF2bWEgJSNseCBzdm1hICUjbHggc2l6ZSAlN2x1IGJpYXMgJSNseFxuIiwKICAgICAgICAgICAgICAgICBkaS0+dGV4dF9hdm1hLCBkaS0+dGV4dF9zdm1hLAotICAgICAgICAgICAgICAgIGRpLT50ZXh0X3NpemUsIGRpLT50ZXh0X2JpYXMpOworICAgICAgICAgICAgICAgIGRpLT50ZXh0X3NpemUsIChVV29yZClkaS0+dGV4dF9iaWFzKTsKICAgIH0KIAogICAgLyoKQEAgLTI1MDMsOCArMjUwMyw4IEBACiAgICAgICBzaCAtYyAic3RyaW5ncyAocGVuYW1lKSB8IGVncmVwICdcLnBkYiR8XC5QREIkJyA+ICh0bXBuYW1lKSIKICAgICovCiAgICBjb25zdCBIQ2hhciogc2ggICAgICA9ICIvYmluL3NoIjsKLSAgIGNvbnN0IEhDaGFyKiBzdHJpbmdzID0gIi91c3IvYmluL3N0cmluZ3MiOwotICAgY29uc3QgSENoYXIqIGVncmVwICAgPSAiL3Vzci9iaW4vZWdyZXAiOworICAgY29uc3QgSENoYXIqIHN0cmluZ3MgPSAic3RyaW5ncyI7CisgICBjb25zdCBIQ2hhciogZWdyZXAgICA9ICJncmVwIC1FIjsKIAogICAgLyogKHNoKSAtYyAiKHN0cmluZ3MpIChwZW5hbWUpIHwgKGVncmVwKSAncGRiJyA+ICh0bXBuYW1lKSAqLwogICAgSW50IGNtZGxlbiA9IFZHXyhzdHJsZW4pKHN0cmluZ3MpICsgVkdfKHN0cmxlbikocGVuYW1lKQpAQCAtMjU4NCw3ICsyNTg0LDcgQEAKICAgIHJldHVybiByZXM7CiB9CiAKLSNlbmRpZiAvLyBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vc3RvcmFnZS5jIGIvY29yZWdyaW5kL21fZGVidWdpbmZvL3N0b3JhZ2UuYwppbmRleCA5MjZhMTNmLi40NWJjMTM1IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vc3RvcmFnZS5jCisrKyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby9zdG9yYWdlLmMKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzIsNyArMzIsNyBAQAogCiAvKiBUaGlzIGZpbGUgbWFuYWdlcyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGJ1aWx0IGJ5IHRoZSBkZWJ1Z2luZm8KICAgIHN5c3RlbS4gIFRoZXNlIGFyZTogdGhlIHRvcCBsZXZlbCBTZWdJbmZvIGxpc3QuICBGb3IgZWFjaCBTZWdJbmZvLAotICAgdGhlcmUgYXJlIHRhYmxlcyBmb3IgZm9yIGFkZHJlc3MtdG8tc3ltYm9sIG1hcHBpbmdzLAorICAgdGhlcmUgYXJlIHRhYmxlcyBmb3IgYWRkcmVzcy10by1zeW1ib2wgbWFwcGluZ3MsCiAgICBhZGRyZXNzLXRvLXNyYy1maWxlL2xpbmUgbWFwcGluZ3MsIGFuZCBhZGRyZXNzLXRvLUNGSS1pbmZvCiAgICBtYXBwaW5ncy4KICovCkBAIC05OCw3ICs5OCw3IEBACiAgICB2Z19hc3NlcnQoc3ltLT5wcmlfbmFtZSk7CiAgICBpZiAoc2VjX25hbWVzKQogICAgICAgdmdfYXNzZXJ0KHNlY19uYW1lcyk7Ci0gICBWR18ocHJpbnRmKSggIiU1ZDogICVjJWMgJSM4bHggLi4gJSM4bHggKCVkKSAgICAgICVzJXMiLAorICAgVkdfKHByaW50ZikoICIlNWQ6ICAlYyVjICUjOGx4IC4uICUjOGx4ICgldSkgICAgICAlcyVzIiwKICAgICAgICAgICAgICAgICBpZHgsCiAgICAgICAgICAgICAgICAgc3ltLT5pc1RleHQgPyAnVCcgOiAnLScsCiAgICAgICAgICAgICAgICAgc3ltLT5pc0lGdW5jID8gJ0knIDogJy0nLApAQCAtMTQyLDggKzE0MiwxMSBAQAogICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgIH0gd2hpbGUgKDApCiAKLSAgIFZHXyhwcmludGYpKCJbJSNseCAuLiAlI2x4XTogIiwgYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZSArIChVV29yZClsZW4gLSAxKTsKKyAgIGlmIChiYXNlICE9IDAgfHwgbGVuICE9IDApCisgICAgICBWR18ocHJpbnRmKSgiWyUjbHggLi4gJSNseF06ICIsIGJhc2UsIGJhc2UgKyBsZW4gLSAxKTsKKyAgIGVsc2UKKyAgICAgIFZHXyhwcmludGYpKCJbXTogIik7CisKICAgIHN3aXRjaCAoc2lfbS0+Y2ZhX2hvdykgewogICAgICAgY2FzZSBDRklDX0lBX1NQUkVMOiAKICAgICAgICAgIFZHXyhwcmludGYpKCJsZXQgY2ZhPW9sZFNQKyVkIiwgc2lfbS0+Y2ZhX29mZik7IApAQCAtNTM0LDcgKzUzNywxOCBAQAogICAgICAgIHJldHVybjsKICAgIH0KIAotICAgdmdfYXNzZXJ0KGxpbmVubyA+PSAwKTsKKyAgIGlmIChsaW5lbm8gPCAwKSB7CisgICAgICBzdGF0aWMgQm9vbCBjb21wbGFpbmVkID0gRmFsc2U7CisgICAgICBpZiAoIWNvbXBsYWluZWQpIHsKKyAgICAgICAgIGNvbXBsYWluZWQgPSBUcnVlOworICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csIAorICAgICAgICAgICAgICAgICAgICAgICJ3YXJuaW5nOiBpZ25vcmluZyBsaW5lIGluZm8gZW50cnkgd2l0aCAiCisgICAgICAgICAgICAgICAgICAgICAgIm5lZ2F0aXZlIGxpbmUgbnVtYmVyICglZClcbiIsIGxpbmVubyk7CisgICAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywgCisgICAgICAgICAgICAgICAgICAgICAgIihOYjogdGhpcyBtZXNzYWdlIGlzIG9ubHkgc2hvd24gb25jZSlcbiIpOworICAgICAgfQorICAgICAgcmV0dXJuOworICAgfQogICAgaWYgKGxpbmVubyA+IE1BWF9MSU5FTk8pIHsKICAgICAgIHN0YXRpYyBCb29sIGNvbXBsYWluZWQgPSBGYWxzZTsKICAgICAgIGlmICghY29tcGxhaW5lZCkgewpAQCAtNjU0LDcgKzY2OCw3IEBACiAgICBpZiAoMCkgVkdfKG1lc3NhZ2UpCiAgICAgICAgICAgICAgKFZnX0RlYnVnTXNnLCAKICAgICAgICAgICAgICAgImFkZElubEluZm86IGZuICVzIGlubGluZWQgYXMgYWRkcl9sbyAlI2x4LGFkZHJfaGkgJSNseCwiCi0gICAgICAgICAgICAgICJjYWxsZXIgZm5kbl9peCAlZCAlczolZFxuIiwKKyAgICAgICAgICAgICAgImNhbGxlciBmbmRuX2l4ICV1ICVzOiVkXG4iLAogICAgICAgICAgICAgICBpbmxpbmVkZm4sIGFkZHJfbG8sIGFkZHJfaGksIGZuZG5faXgsCiAgICAgICAgICAgICAgIE1MXyhmbmRuX2l4MmZpbGVuYW1lKSAoZGksIGZuZG5faXgpLCBsaW5lbm8pOwogCkBAIC0xMDAwLDcgKzEwMTQsNyBAQAogICAgd2hpbGUgKFRydWUpIHsKICAgICAgIHJhbmdlID0gVkdfKE9TZXRHZW5fTmV4dCkoIHNjb3BlICk7CiAgICAgICBpZiAoIXJhbmdlKSBicmVhazsKLSAgICAgIFZHXyhwcmludGYpKCIgICAlI2x4IC4uICUjbHg6ICVsdSB2YXJzXG4iLCByYW5nZS0+YU1pbiwgcmFuZ2UtPmFNYXgsCisgICAgICBWR18ocHJpbnRmKSgiICAgJSNseCAuLiAlI2x4OiAlbGQgdmFyc1xuIiwgcmFuZ2UtPmFNaW4sIHJhbmdlLT5hTWF4LAogICAgICAgICAgICAgICAgICAgcmFuZ2UtPnZhcnMgPyBWR18oc2l6ZVhBKShyYW5nZS0+dmFycykgOiAwKTsKICAgIH0KICAgIFZHXyhwcmludGYpKCJ9XG4iKTsKQEAgLTE0NTMsNyArMTQ2Nyw3IEBACiAgICB2bGVuYSA9IFZHXyhzdHJsZW4pKGFfbmFtZSk7CiAgICB2bGVuYiA9IFZHXyhzdHJsZW4pKGJfbmFtZSk7CiAKLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAjICAgIGRlZmluZSBWRVJTSU9OX0NIQVIgJ0AnCiAjICBlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICMgICAgZGVmaW5lIFZFUlNJT05fQ0hBUiAnJCcKQEAgLTIwMTUsNyArMjAyOSw3IEBACiAgICAvKiBFbnN1cmUgcmVsZXZhbnQgcG9zdGNvbmRpdGlvbnMgaG9sZC4gKi8KICAgIGZvciAoaSA9IDA7IGkgPCAoKFdvcmQpZGktPmxvY3RhYl91c2VkKS0xOyBpKyspIHsKICAgICAgIGlmICgwKQotICAgICAgICAgVkdfKHByaW50ZikoIiVsdSAgMHglcCAgbG5vOiVkIHN6OiVkIGZuZG5faXg6JWQgIGkrMSAweCVwXG4iLCAKKyAgICAgICAgIFZHXyhwcmludGYpKCIlbGQgIDB4JXAgIGxubzolZCBzejolZCBmbmRuX2l4OiV1ICBpKzEgMHglcFxuIiwgCiAgICAgICAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKWRpLT5sb2N0YWJbaV0uYWRkciwKICAgICAgICAgICAgICAgICAgICAgIGRpLT5sb2N0YWJbaV0ubGluZW5vLCAKQEAgLTIxNDcsOSArMjE2MSw5IEBACiAgICB9CiAKICAgIGlmIChkaS0+dHJhY2VfY2ZpKQotICAgICAgVkdfKHByaW50ZikoImNhbm9uaWNhbGlzZUNmaVNJOiAlbGQgZW50cmllcywgJSNseCAuLiAlI2x4XG4iLAorICAgICAgVkdfKHByaW50ZikoImNhbm9uaWNhbGlzZUNmaVNJOiAlbHUgZW50cmllcywgJSNseCAuLiAlI2x4XG4iLAogICAgICAgICAgICAgICAgICAgZGktPmNmc2lfdXNlZCwKLQkgICAgICAgICAgZGktPmNmc2lfbWluYXZtYSwgZGktPmNmc2lfbWF4YXZtYSk7CisgICAgICAgICAgICAgICAgICBkaS0+Y2ZzaV9taW5hdm1hLCBkaS0+Y2ZzaV9tYXhhdm1hKTsKIAogICAgLyogU29ydCB0aGUgY2ZzaV9yZCBhcnJheSBieSBiYXNlIGFkZHJlc3MuICovCiAgICBWR18oc3NvcnQpKGRpLT5jZnNpX3JkLCBkaS0+Y2ZzaV91c2VkLCBzaXplb2YoKmRpLT5jZnNpX3JkKSwgY29tcGFyZV9EaUNmU0kpOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3R5dHlwZXMuYyBiL2NvcmVncmluZC9tX2RlYnVnaW5mby90eXR5cGVzLmMKaW5kZXggMWVlNjJmOS4uODM5ZTU0NiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVidWdpbmZvL3R5dHlwZXMuYworKysgYi9jb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vdHl0eXBlcy5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMDQsNyArMTA0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHRlLT5UZS5GaWVsZC50eXBlUiwgdGUtPlRlLkZpZWxkLnBvcy5vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZS0+VGUuRmllbGQubmFtZSA/IHRlLT5UZS5GaWVsZC5uYW1lIDogIiIpOwogICAgICAgICAgZWxzZQotICAgICAgICAgICAgVkdfKHByaW50ZikoIlRlX0ZpZWxkKHR5PTB4JTA1bHgsbkxvYz0lbHUscG9zLmxvYz0lcCxcIiVzXCIpIiwKKyAgICAgICAgICAgIFZHXyhwcmludGYpKCJUZV9GaWVsZCh0eT0weCUwNWx4LG5Mb2M9JWxkLHBvcy5sb2M9JXAsXCIlc1wiKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZS0+VGUuRmllbGQudHlwZVIsIHRlLT5UZS5GaWVsZC5uTG9jLAogICAgICAgICAgICAgICAgICAgICAgICAgdGUtPlRlLkZpZWxkLnBvcy5sb2MsCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZS0+VGUuRmllbGQubmFtZSA/IHRlLT5UZS5GaWVsZC5uYW1lIDogIiIpOwpAQCAtMTUyLDcgKzE1Miw3IEBACiAgICAgICAgICBicmVhazsKICAgICAgIGNhc2UgVGVfVHlTdE9yVW46CiAgICAgICAgICBpZiAodGUtPlRlLlR5U3RPclVuLmNvbXBsZXRlKSB7Ci0gICAgICAgICAgICBWR18ocHJpbnRmKSgiVGVfVHlTdE9yVW4oJWxkLCVjLCVwLFwiJXNcIikiLAorICAgICAgICAgICAgVkdfKHByaW50ZikoIlRlX1R5U3RPclVuKCVsdSwlYywlcCxcIiVzXCIpIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHRlLT5UZS5UeVN0T3JVbi5zekIsIAogICAgICAgICAgICAgICAgICAgICAgICAgdGUtPlRlLlR5U3RPclVuLmlzU3RydWN0ID8gJ1MnIDogJ1UnLAogICAgICAgICAgICAgICAgICAgICAgICAgdGUtPlRlLlR5U3RPclVuLmZpZWxkUnMsCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWJ1Z2xvZy5jIGIvY29yZWdyaW5kL21fZGVidWdsb2cuYwppbmRleCA0NjljNjk0Li5kYzZlMjZkIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZWJ1Z2xvZy5jCisrKyBiL2NvcmVncmluZC9tX2RlYnVnbG9nLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTYsNiArNTYsOSBAQAogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtcy5oIiAgLyogZm9yIHN5c2NhbGwgbnVtYmVycyAqLwogI2luY2x1ZGUgInB1Yl9jb3JlX2RlYnVnbG9nLmgiICAgLyogb3VyIG93biBpZmFjZSAqLwogI2luY2x1ZGUgInB1Yl9jb3JlX2NscmVxLmgiICAgICAgLyogZm9yIFJVTk5JTkdfT05fVkFMR1JJTkQgKi8KKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorI2luY2x1ZGUgInB1Yl9jb3JlX3ZraS5oIiAgICAgICAgLyogZm9yIEVJTlRSIGFuZCBFUkVTVEFSVCAqLworI2VuZGlmCiAKIHN0YXRpYyBCb29sIGNsb194bWw7CiAKQEAgLTU1Niw2ICs1NTksOTcgQEAKICAgcmV0dXJuIF9fcmVzOwogfQogCisjZWxpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKK3N0YXRpYyBVSW50IGxvY2FsX3N5c193cml0ZV9zdGRlcnIgKCBjb25zdCBIQ2hhciogYnVmLCBJbnQgbiApCit7CisgICBVSW50IHJlcywgZXJyOworICAgQm9vbCByZXN0YXJ0OworCisgICBkbyB7CisgICAgICAvKiBUaGUgU29sYXJpcyBrZXJuZWwgZG9lcyBub3QgcmVzdGFydCBzeXNjYWxscyBhdXRvbWF0aWNhbGx5IHNvIGl0IGlzCisgICAgICAgICBkb25lIGhlcmUuICovCisgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisgICAgICAgICAibW92bCAgJVtuXSwgJSVlYXhcbiIgICAgICAgICAgLyogcHVzaCBuICovCisgICAgICAgICAicHVzaGwgJSVlYXhcbiIKKyAgICAgICAgICJtb3ZsICAlW2J1Zl0sICUlZWF4XG4iICAgICAgICAvKiBwdXNoIGJ1ZiAqLworICAgICAgICAgInB1c2hsICUlZWF4XG4iCisgICAgICAgICAibW92bCAgJDIsICUlZWF4XG4iICAgICAgICAgICAgLyogcHVzaCBzdGRlcnIgKi8KKyAgICAgICAgICJwdXNobCAlJWVheFxuIgorICAgICAgICAgIm1vdmwgICQiVkdfU1RSSU5HSUZZKF9fTlJfd3JpdGUpIiwgJSVlYXhcbiIKKyAgICAgICAgICJwdXNobCAlJWVheFxuIiAgICAgICAgICAgICAgICAvKiBwdXNoIGZha2UgcmV0dXJuIGFkZHJlc3MgKi8KKyAgICAgICAgICJpbnQgICAkMHg5MVxuIiAgICAgICAgICAgICAgICAvKiB3cml0ZShzdGRlcnIsIGJ1ZiwgbikgKi8KKyAgICAgICAgICJtb3ZsICAkMCwgJSVlZHhcbiIgICAgICAgICAgICAvKiBhc3N1bWUgbm8gZXJyb3IgKi8KKyAgICAgICAgICJqbmMgICAxZlxuIiAgICAgICAgICAgICAgICAgICAvKiBqdW1wIGlmIG5vIGVycm9yICovCisgICAgICAgICAibW92bCAgJDEsICUlZWR4XG4iICAgICAgICAgICAgLyogc2V0IGVycm9yIGZsYWcgKi8KKyAgICAgICAgICIxOiAiCisgICAgICAgICAiYWRkbCAgJDE2LCAlJWVzcFxuIiAgICAgICAgICAgLyogcG9wIHg0ICovCisgICAgICAgICA6ICI9JmEiIChyZXMpLCAiPWQiIChlcnIpCisgICAgICAgICA6IFtidWZdICJnIiAoYnVmKSwgW25dICJnIiAobikKKyAgICAgICAgIDogImNjIik7CisgICAgICByZXN0YXJ0ID0gZXJyICYmIChyZXMgPT0gVktJX0VJTlRSIHx8IHJlcyA9PSBWS0lfRVJFU1RBUlQpOworICAgfSB3aGlsZSAocmVzdGFydCk7CisKKyAgIHJldHVybiByZXM7Cit9CisKK3N0YXRpYyBVSW50IGxvY2FsX3N5c19nZXRwaWQgKCB2b2lkICkKK3sKKyAgIFVJbnQgcmVzOworCisgICAvKiBUaGUgZ2V0cGlkKCkgc3lzY2FsbCBuZXZlciByZXR1cm5zIEVJTlRSIG9yIEVSRVNUQVJUIHNvIHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgIGZvciByZXN0YXJ0aW5nIGl0LiAqLworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgIm1vdmwgJCJWR19TVFJJTkdJRlkoX19OUl9nZXRwaWQpIiwgJSVlYXhcbiIKKyAgICAgICJpbnQgICQweDkxXG4iICAgICAgICAgICAgICAgICAgICAvKiBnZXRwaWQoKSAqLworICAgICAgOiAiPWEiIChyZXMpCisgICAgICA6CisgICAgICA6ICJlZHgiLCAiY2MiKTsKKworICAgcmV0dXJuIHJlczsKK30KKworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKK3N0YXRpYyBVSW50IGxvY2FsX3N5c193cml0ZV9zdGRlcnIgKCBjb25zdCBIQ2hhciogYnVmLCBJbnQgbiApCit7CisgICBVTG9uZyByZXMsIGVycjsKKyAgIEJvb2wgcmVzdGFydDsKKworICAgZG8geworICAgICAgLyogVGhlIFNvbGFyaXMga2VybmVsIGRvZXMgbm90IHJlc3RhcnQgc3lzY2FsbHMgYXV0b21hdGljYWxseSBzbyBpdCBpcworICAgICAgICAgZG9uZSBoZXJlLiAqLworICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgICAgIm1vdnEgICQyLCAlJXJkaVxuIiAgICAgICAgICAgIC8qIHB1c2ggc3RkZXJyICovCisgICAgICAgICAibW92cSAgJCJWR19TVFJJTkdJRlkoX19OUl93cml0ZSkiLCAlJXJheFxuIgorICAgICAgICAgInN5c2NhbGxcbiIgICAgICAgICAgICAgICAgICAgIC8qIHdyaXRlKHN0ZGVyciwgYnVmLCBuKSAqLworICAgICAgICAgIm1vdnEgICQwLCAlJXJkeFxuIiAgICAgICAgICAgIC8qIGFzc3VtZSBubyBlcnJvciAqLworICAgICAgICAgImpuYyAgIDFmXG4iICAgICAgICAgICAgICAgICAgIC8qIGp1bXAgaWYgbm8gZXJyb3IgKi8KKyAgICAgICAgICJtb3ZxICAkMSwgJSVyZHhcbiIgICAgICAgICAgICAvKiBzZXQgZXJyb3IgZmxhZyAqLworICAgICAgICAgIjE6ICIKKyAgICAgICAgIDogIj1hIiAocmVzKSwgIj1kIiAoZXJyKQorICAgICAgICAgOiAiUyIgKGJ1ZiksICJkIiAobikKKyAgICAgICAgIDogImNjIik7CisgICAgICByZXN0YXJ0ID0gZXJyICYmIChyZXMgPT0gVktJX0VJTlRSIHx8IHJlcyA9PSBWS0lfRVJFU1RBUlQpOworICAgfSB3aGlsZSAocmVzdGFydCk7CisKKyAgIHJldHVybiByZXM7Cit9CisKK3N0YXRpYyBVSW50IGxvY2FsX3N5c19nZXRwaWQgKCB2b2lkICkKK3sKKyAgIFVJbnQgcmVzOworCisgICAvKiBUaGUgZ2V0cGlkKCkgc3lzY2FsbCBuZXZlciByZXR1cm5zIEVJTlRSIG9yIEVSRVNUQVJUIHNvIHRoZXJlIGlzIG5vIG5lZWQKKyAgICAgIGZvciByZXN0YXJ0aW5nIGl0LiAqLworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgIm1vdnEgJCJWR19TVFJJTkdJRlkoX19OUl9nZXRwaWQpIiwgJSVyYXhcbiIKKyAgICAgICJzeXNjYWxsXG4iICAgICAgICAgICAgICAgICAgICAgICAvKiBnZXRwaWQoKSAqLworICAgICAgOiAiPWEiIChyZXMpCisgICAgICA6CisgICAgICA6ICJlZHgiLCAiY2MiKTsKKworICAgcmV0dXJuIHJlczsKK30KKwogI2Vsc2UKICMgZXJyb3IgVW5rbm93biBwbGF0Zm9ybQogI2VuZGlmCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kZWR1cHBvb2xhbGxvYy5jIGIvY29yZWdyaW5kL21fZGVkdXBwb29sYWxsb2MuYwppbmRleCA1MWE1OGNiLi45MjAxNmQ4IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZWR1cHBvb2xhbGxvYy5jCisrKyBiL2NvcmVncmluZC9tX2RlZHVwcG9vbGFsbG9jLmMKQEAgLTYsNyArNiw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTQgUGhpbGlwcGUgV2Fyb3F1aWVycyBwaGlsaXBwZS53YXJvcXVpZXJzQHNreW5ldC5iZQorICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgUGhpbGlwcGUgV2Fyb3F1aWVycyBwaGlsaXBwZS53YXJvcXVpZXJzQHNreW5ldC5iZQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjAxLDcgKzIwMSw3IEBACiBzdGF0aWMgdm9pZCBwcmludF9zdGF0cyAoRGVkdXBQb29sQWxsb2MgKmRkcGEpCiB7CiAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgImRlZHVwUEE6JXMgJWxkIGFsbG9jcyAoJWQgdW5pcSkiCisgICAgICAgICAgICAgICAgImRlZHVwUEE6JXMgJWxkIGFsbG9jcyAoJXUgdW5pcSkiCiAgICAgICAgICAgICAgICAgIiAlbGQgcG9vbHMgKCVsZCBieXRlcyBmcmVlIGluIGxhc3QgcG9vbClcbiIsCiAgICAgICAgICAgICAgICAgZGRwYS0+Y2MsCiAgICAgICAgICAgICAgICAgKGxvbmcgaW50KSBkZHBhLT5ucl9hbGxvY19jYWxscywKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2RlbWFuZ2xlL2NwbHVzLWRlbS5jIGIvY29yZWdyaW5kL21fZGVtYW5nbGUvY3BsdXMtZGVtLmMKaW5kZXggN2ZjMjcyMi4uNDZjYzNiNSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVtYW5nbGUvY3BsdXMtZGVtLmMKKysrIGIvY29yZWdyaW5kL21fZGVtYW5nbGUvY3BsdXMtZGVtLmMKQEAgLTI2NjYsNyArMjY2Niw3IEBACiAgIC8qIEl0ZXJhdGUgb3ZlciBvY2N1cnJlbmNlcyBvZiBfXywgYWxsb3dpbmcgbmFtZXMgYW5kIHR5cGVzIHRvIGhhdmUgYQogICAgICAiX18iIHNlcXVlbmNlIGluIHRoZW0uICBXZSBtdXN0IHN0YXJ0IHdpdGggdGhlIGZpcnN0IChub3QgdGhlIGxhc3QpCiAgICAgIG9jY3VycmVuY2UsIHNpbmNlICJfXyIgbW9zdCBvZnRlbiBvY2N1ciBiZXR3ZWVuIGluZGVwZW5kZW50IG1hbmdsZWQKLSAgICAgcGFydHMsIGhlbmNlIHN0YXJ0aW5nIGF0IHRoZSBsYXN0IG9jY3VyZW5jZSBpbnNpZGUgYSBzaWduYXR1cmUKKyAgICAgcGFydHMsIGhlbmNlIHN0YXJ0aW5nIGF0IHRoZSBsYXN0IG9jY3VycmVuY2UgaW5zaWRlIGEgc2lnbmF0dXJlCiAgICAgIG1pZ2h0IGdldCB1cyBhICJzdWNjZXNzZnVsIiBkZW1hbmdsaW5nIG9mIHRoZSBzaWduYXR1cmUuICAqLwogCiAgIHdoaWxlIChzY2FuWzJdKQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGVtYW5nbGUvZGVtYW5nbGUuYyBiL2NvcmVncmluZC9tX2RlbWFuZ2xlL2RlbWFuZ2xlLmMKaW5kZXggMTA1NGMxNC4uNzhkYjA3MyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGVtYW5nbGUvZGVtYW5nbGUuYworKysgYi9jb3JlZ3JpbmQvbV9kZW1hbmdsZS9kZW1hbmdsZS5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI4Miw2ICsyODIsNyBAQAogICAgICAgICAgY2FzZSAnRCc6IEVNSVRTTygnJCcpOyBicmVhazsKICAgICAgICAgIGNhc2UgJ0wnOiBFTUlUU08oJygnKTsgYnJlYWs7CiAgICAgICAgICBjYXNlICdSJzogRU1JVFNPKCcpJyk7IGJyZWFrOworICAgICAgICAgY2FzZSAnUyc6IEVNSVRTTygnLycpOyBicmVhazsKICAgICAgICAgIGNhc2UgJ1onOiBFTUlUU08oJ1onKTsgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OiBlcnJvciA9IFRydWU7IGdvdG8gb3V0OwogICAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGVtYW5nbGUvdmdfbGliY2lmYWNlLmggYi9jb3JlZ3JpbmQvbV9kZW1hbmdsZS92Z19saWJjaWZhY2UuaAppbmRleCA1MjQxY2JlLi44ODMyNTAwIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kZW1hbmdsZS92Z19saWJjaWZhY2UuaAorKysgYi9jb3JlZ3JpbmQvbV9kZW1hbmdsZS92Z19saWJjaWZhY2UuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1hbWQ2NC1kYXJ3aW4uUyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLWFtZDY0LWRhcndpbi5TCmluZGV4IDAyYTg2MDAuLmRkN2YxMTcgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLWFtZDY0LWRhcndpbi5TCisrKyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLWFtZDY0LWRhcndpbi5TCkBAIC04LDcgKzgsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI5LDkgKzI5LDEwIEBACiAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKICNpZiBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCiAKLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdHJhbnN0YWJfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIJLyogZm9yIE9GRlNFVF9hbWQ2NF9SSVAgKi8KQEAgLTI1MCw2ICsyNTEsOSBAQAogCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKQogCisvKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLworTUFSS19TVEFDS19OT19FWEVDCisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLWFtZDY0LWxpbnV4LlMgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1hbWQ2NC1saW51eC5TCmluZGV4IDI0NWY2OTMuLmJiN2EwMzcgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLWFtZDY0LWxpbnV4LlMKKysrIGIvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtYW1kNjQtbGludXguUwpAQCAtOCw3ICs4LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOSw5ICsyOSwxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpCiAKLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdHJhbnN0YWJfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIJLyogZm9yIE9GRlNFVF9hbWQ2NF9SSVAgKi8KQEAgLTI0OSwxMSArMjUwLDExIEBACiAKIC5zaXplIFZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpLCAuLVZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpCiAKLS8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCi0uc2VjdGlvbiAubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi0KICNlbmRpZiAvLyBkZWZpbmVkKFZHUF9hbWQ2NF9saW51eCkKIAorLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1hbWQ2NC1zb2xhcmlzLlMgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1hbWQ2NC1zb2xhcmlzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc1MDY5MwotLS0gL2Rldi9udWxsCisrKyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLWFtZDY0LXNvbGFyaXMuUwpAQCAtMCwwICsxLDI2MCBAQAorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFRoZSBjb3JlIGRpc3BhdGNoIGxvb3AsIGZvciBqdW1waW5nIHRvIGEgY29kZSBhZGRyZXNzLiAgICAgICAtLS0qLworLyotLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gtYW1kNjQtc29sYXJpcy5TIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgIGZyYW1ld29yay4KKworICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAorICAgICBqc2V3YXJkQGFjbS5vcmcKKworICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgMDIxMTEtMTMwNywgVVNBLgorCisgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKKyNpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorCisjaW5jbHVkZSAicHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgiCisjaW5jbHVkZSAicHViX2NvcmVfdHJhbnN0YWJfYXNtLmgiCisjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIJLyogZm9yIE9GRlNFVF9hbWQ2NF9SSVAgKi8KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLSBUaGUgZGlzcGF0Y2ggbG9vcC4gIFZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpIGlzICAgIC0tLSovCisvKi0tLSB1c2VkIHRvIHJ1biBhbGwgdHJhbnNsYXRpb25zLCAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLSBpbmNsdWRpbmcgbm8tcmVkaXIgb25lcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBFbnRyeSBhbmQgcHJlYW1ibGUgKHNldCBldmVyeXRoaW5nIHVwKSAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogc2lnbmF0dXJlOgordm9pZCBWR18oZGlzcF9ydW5fdHJhbnNsYXRpb25zKSggVVdvcmQqIHR3b193b3JkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqICBndWVzdF9zdGF0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyICAgaG9zdF9hZGRyICk7CisqLworLnRleHQKKy5nbG9ibCBWR18oZGlzcF9ydW5fdHJhbnNsYXRpb25zKQorLnR5cGUgIFZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpLCBAZnVuY3Rpb24KK1ZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpOgorICAgICAgICAvKiAlcmRpIGhvbGRzIHR3b193b3JkcyAgICAqLworCS8qICVyc2kgaG9sZHMgZ3Vlc3Rfc3RhdGUgICovCisJLyogJXJkeCBob2xkcyBob3N0X2FkZHIgICAgKi8KKworICAgICAgICAvKiBUaGUgcHJlYW1ibGUgKi8KKworICAgICAgICAvKiBTYXZlIGludGVnZXIgcmVnaXN0ZXJzLCBzaW5jZSB0aGlzIGlzIGEgcHNldWRvLWZ1bmN0aW9uLiAqLworICAgICAgICBwdXNocSAgICVyYXgKKwlwdXNocQklcmJ4CisJcHVzaHEJJXJjeAorICAgICAgICBwdXNocSAgICVyZHgKKwlwdXNocQklcnNpCisJcHVzaHEJJXJicAorCXB1c2hxCSVyOAorCXB1c2hxCSVyOQorCXB1c2hxCSVyMTAKKwlwdXNocQklcjExCisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorICAgICAgICAvKiAlcmRpIG11c3QgYmUgc2F2ZWQgbGFzdCAqLworCXB1c2hxCSVyZGkKKworICAgICAgICAvKiBHZXQgdGhlIGhvc3QgQ1BVIGluIHRoZSBzdGF0ZSBleHBlY3RlZCBieSBnZW5lcmF0ZWQgY29kZS4gKi8KKworCS8qIHNldCBob3N0IEZQVSBjb250cm9sIHdvcmQgdG8gdGhlIGRlZmF1bHQgbW9kZSBleHBlY3RlZCAKKyAgICAgICAgICAgYnkgVkVYLWdlbmVyYXRlZCBjb2RlLiAgU2VlIGNvbW1lbnRzIGluIGxpYnZleC5oIGZvcgorICAgICAgICAgICBtb3JlIGluZm8uICovCisJZmluaXQKKwlwdXNocQkkMHgwMjdGCisJZmxkY3cJKCVyc3ApCisJYWRkcQkkOCwgJXJzcAorCQorCS8qIHNldCBob3N0IFNTRSBjb250cm9sIHdvcmQgdG8gdGhlIGRlZmF1bHQgbW9kZSBleHBlY3RlZCAKKwkgICBieSBWRVgtZ2VuZXJhdGVkIGNvZGUuICovCisJcHVzaHEJJDB4MUY4MAorCWxkbXhjc3IJKCVyc3ApCisJYWRkcQkkOCwgJXJzcAorCisJLyogc2V0IGRpciBmbGFnIHRvIGtub3duIHZhbHVlICovCisJY2xkCisKKwkvKiBTZXQgdXAgdGhlIGd1ZXN0IHN0YXRlIHBvaW50ZXIgKi8KKwltb3ZxCSVyc2ksICVyYnAKKworICAgICAgICAvKiBhbmQganVtcCBpbnRvIHRoZSBjb2RlIGNhY2hlLiAgQ2hhaW5lZCB0cmFuc2xhdGlvbnMgaW4KKyAgICAgICAgICAgdGhlIGNvZGUgY2FjaGUgcnVuLCB1bnRpbCBmb3Igd2hhdGV2ZXIgcmVhc29uLCB0aGV5IGNhbid0CisgICAgICAgICAgIGNvbnRpbnVlLiAgV2hlbiB0aGF0IGhhcHBlbnMsIHRoZSB0cmFuc2xhdGlvbiBpbiBxdWVzdGlvbgorICAgICAgICAgICB3aWxsIGp1bXAgKG9yIGNhbGwpIHRvIG9uZSBvZiB0aGUgY29udGludWF0aW9uIHBvaW50cworICAgICAgICAgICBWR18oY3BfLi4uKSBiZWxvdy4gKi8KKyAgICAgICAgam1wcSAgICAqJXJkeAorICAgICAgIAkvKk5PVFJFQUNIRUQqLwkKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFBvc3RhbWJsZSBhbmQgZXhpdC4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitwb3N0YW1ibGU6CisgICAgICAgIC8qIEF0IHRoaXMgcG9pbnQsICVyYXggYW5kICVyZHggY29udGFpbiB0d28KKyAgICAgICAgICAgd29yZHMgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIGNhbGxlci4gICVyYXgKKyAgICAgICAgICAgaG9sZHMgYSBUUkMgdmFsdWUsIGFuZCAlcmR4IG9wdGlvbmFsbHkgbWF5CisgICAgICAgICAgIGhvbGQgYW5vdGhlciB3b3JkIChmb3IgQ0hBSU5fTUUgZXhpdHMsIHRoZQorICAgICAgICAgICBhZGRyZXNzIG9mIHRoZSBwbGFjZSB0byBwYXRjaC4pICovCisgICAgICAgIAorCS8qIFdlJ3JlIGxlYXZpbmcuICBDaGVjayB0aGF0IG5vYm9keSBtZXNzZWQgd2l0aCAlbXhjc3IKKyAgICAgICAgICAgb3IgJWZwdWN3LiAgV2UgY2FuJ3QgbWVzcyB3aXRoICVyYXggb3IgJXJkeCBoZXJlIGFzIHRoZXkKKyAgICAgICAgICAgaG9sZCB0aGUgdGVudGF0aXZlIHJldHVybiB2YWx1ZXMsIGJ1dCBhbnkgb3RoZXJzIGFyZSBPSy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5ORVIpCisgICAgICAgIC8qIFRoaXMgY2hlY2sgZmFpbHMgZm9yIHNlbGYtaG9zdGluZywgc28gc2tpcCBpbiB0aGF0IGNhc2UgKi8KKwlwdXNocQkkMAorCWZzdGN3CSglcnNwKQorCWNtcGwJJDB4MDI3RiwgKCVyc3ApCisJcG9wcQklcjE1IC8qIGdldCByaWQgb2YgdGhlIHdvcmQgd2l0aG91dCB0cmFzaGluZyAlcmZsYWdzICovCisJam56CWludmFyaWFudF92aW9sYXRpb24KKyNlbmRpZgorCXB1c2hxCSQwCisJc3RteGNzcgkoJXJzcCkKKwlhbmRsCSQweEZGRkZGRkMwLCAoJXJzcCkgIC8qIG1hc2sgb3V0IHN0YXR1cyBmbGFncyAqLworCWNtcGwJJDB4MUY4MCwgKCVyc3ApCisJcG9wcQklcjE1CisJam56CWludmFyaWFudF92aW9sYXRpb24KKwkvKiBvdGhlcndpc2Ugd2UncmUgT0sgKi8KKwlqbXAJcmVtb3ZlX2ZyYW1lCitpbnZhcmlhbnRfdmlvbGF0aW9uOgorCW1vdnEJJFZHX1RSQ19JTlZBUklBTlRfRkFJTEVELCAlcmF4CisgICAgICAgIG1vdnEgICAgJDAsICVyZHgKKworcmVtb3ZlX2ZyYW1lOgorICAgICAgICAvKiBQb3AgJXJkaSwgc3Rhc2ggcmV0dXJuIHZhbHVlcyAqLworCXBvcHEJJXJkaQorICAgICAgICBtb3ZxICAgICVyYXgsIDAoJXJkaSkKKyAgICAgICAgbW92cSAgICAlcmR4LCA4KCVyZGkpCisgICAgICAgIC8qIE5vdyBwb3AgZXZlcnl0aGluZyBlbHNlICovCisJcG9wcQklcjE1CisJcG9wcQklcjE0CisJcG9wcQklcjEzCisJcG9wcQklcjEyCisJcG9wcQklcjExCisJcG9wcQklcjEwCisJcG9wcQklcjkKKwlwb3BxCSVyOAorCXBvcHEJJXJicAorCXBvcHEJJXJzaQorCXBvcHEJJXJkeAorCXBvcHEJJXJjeAorCXBvcHEJJXJieAorCXBvcHEJJXJheAorCXJldAkKKyAgICAgICAgCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gQ29udGludWF0aW9uIHBvaW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIC0tLS0tLSBDaGFpbiBtZSB0byBzbG93IGVudHJ5IHBvaW50IC0tLS0tLSAqLworLmdsb2JhbCBWR18oZGlzcF9jcF9jaGFpbl9tZV90b19zbG93RVApCitWR18oZGlzcF9jcF9jaGFpbl9tZV90b19zbG93RVApOgorICAgICAgICAvKiBXZSBnb3QgY2FsbGVkLiAgVGhlIHJldHVybiBhZGRyZXNzIGluZGljYXRlcworICAgICAgICAgICB3aGVyZSB0aGUgcGF0Y2hpbmcgbmVlZHMgdG8gaGFwcGVuLiAgQ29sbGVjdAorICAgICAgICAgICB0aGUgcmV0dXJuIGFkZHJlc3MgYW5kLCBleGl0IGJhY2sgdG8gQyBsYW5kLAorICAgICAgICAgICBoYW5kaW5nIHRoZSBjYWxsZXIgdGhlIHBhaXIgKENoYWluX21lX1MsIFJBKSAqLworICAgICAgICBtb3ZxICAgICRWR19UUkNfQ0hBSU5fTUVfVE9fU0xPV19FUCwgJXJheAorICAgICAgICBwb3BxICAgICVyZHgKKyAgICAgICAgLyogMTAgPSBtb3ZhYnNxICRWR18oZGlzcF9jaGFpbl9tZV90b19zbG93RVApLCAlcjExOworICAgICAgICAgICAzICA9IGNhbGwgKiVyMTEgKi8KKyAgICAgICAgc3VicSAgICAkMTArMywgJXJkeAorICAgICAgICBqbXAgICAgIHBvc3RhbWJsZQorCisvKiAtLS0tLS0gQ2hhaW4gbWUgdG8gZmFzdCBlbnRyeSBwb2ludCAtLS0tLS0gKi8KKy5nbG9iYWwgVkdfKGRpc3BfY3BfY2hhaW5fbWVfdG9fZmFzdEVQKQorVkdfKGRpc3BfY3BfY2hhaW5fbWVfdG9fZmFzdEVQKToKKyAgICAgICAgLyogV2UgZ290IGNhbGxlZC4gIFRoZSByZXR1cm4gYWRkcmVzcyBpbmRpY2F0ZXMKKyAgICAgICAgICAgd2hlcmUgdGhlIHBhdGNoaW5nIG5lZWRzIHRvIGhhcHBlbi4gIENvbGxlY3QKKyAgICAgICAgICAgdGhlIHJldHVybiBhZGRyZXNzIGFuZCwgZXhpdCBiYWNrIHRvIEMgbGFuZCwKKyAgICAgICAgICAgaGFuZGluZyB0aGUgY2FsbGVyIHRoZSBwYWlyIChDaGFpbl9tZV9GLCBSQSkgKi8KKyAgICAgICAgbW92cSAgICAkVkdfVFJDX0NIQUlOX01FX1RPX0ZBU1RfRVAsICVyYXgKKyAgICAgICAgcG9wcSAgICAlcmR4CisgICAgICAgIC8qIDEwID0gbW92YWJzcSAkVkdfKGRpc3BfY2hhaW5fbWVfdG9fZmFzdEVQKSwgJXIxMTsKKyAgICAgICAgICAgMyAgPSBjYWxsIColcjExICovCisgICAgICAgIHN1YnEgICAgJDEwKzMsICVyZHgKKyAgICAgICAgam1wICAgICBwb3N0YW1ibGUKKworLyogLS0tLS0tIEluZGlyZWN0IGJ1dCBib3JpbmcganVtcCAtLS0tLS0gKi8KKy5nbG9iYWwgVkdfKGRpc3BfY3BfeGluZGlyKQorVkdfKGRpc3BfY3BfeGluZGlyKToKKwkvKiBXaGVyZSBhcmUgd2UgZ29pbmc/ICovCisJbW92cQlPRkZTRVRfYW1kNjRfUklQKCVyYnApLCAlcmF4CisKKyAgICAgICAgLyogc3RhdHMgb25seSAqLworICAgICAgICBhZGRsICAgICQxLCBWR18oc3RhdHNfX25feGluZGlyc18zMikKKyAgICAgICAgCisJLyogdHJ5IGEgZmFzdCBsb29rdXAgaW4gdGhlIHRyYW5zbGF0aW9uIGNhY2hlICovCisJbW92YWJzcSAkVkdfKHR0X2Zhc3QpLCAlcmN4CisJbW92cQklcmF4LCAlcmJ4CQkvKiBuZXh0IGd1ZXN0IGFkZHIgKi8KKwlhbmRxCSRWR19UVF9GQVNUX01BU0ssICVyYngJLyogZW50cnkjICovCisJc2hscQkkNCwgJXJieAkJLyogZW50cnkjICogc2l6ZW9mKEZhc3RDYWNoZUVudHJ5KSAqLworCW1vdnEJMCglcmN4LCVyYngsMSksICVyMTAJLyogLmd1ZXN0ICovCisJbW92cQk4KCVyY3gsJXJieCwxKSwgJXIxMQkvKiAuaG9zdCAqLworCWNtcHEJJXJheCwgJXIxMAorCWpueglmYXN0X2xvb2t1cF9mYWlsZWQKKworICAgICAgICAvKiBGb3VuZCBhIG1hdGNoLiAgSnVtcCB0byAuaG9zdC4gKi8KKwlqbXAgCSolcjExCisJdWQyCS8qIHBlcnN1YWRlIGluc24gZGVjb2RlcnMgbm90IHRvIHNwZWN1bGF0ZSBwYXN0IGhlcmUgKi8KKworZmFzdF9sb29rdXBfZmFpbGVkOgorICAgICAgICAvKiBzdGF0cyBvbmx5ICovCisgICAgICAgIGFkZGwgICAgJDEsIFZHXyhzdGF0c19fbl94aW5kaXJfbWlzc2VzXzMyKQorCisJbW92cQkkVkdfVFJDX0lOTkVSX0ZBU1RNSVNTLCAlcmF4CisgICAgICAgIG1vdnEgICAgJDAsICVyZHgKKwlqbXAJcG9zdGFtYmxlCisKKy8qIC0tLS0tLSBBc3Npc3RlZCBqdW1wIC0tLS0tLSAqLworLmdsb2JhbCBWR18oZGlzcF9jcF94YXNzaXN0ZWQpCitWR18oZGlzcF9jcF94YXNzaXN0ZWQpOgorICAgICAgICAvKiAlcmJwIGNvbnRhaW5zIHRoZSBUUkMgKi8KKyAgICAgICAgbW92cSAgICAlcmJwLCAlcmF4CisgICAgICAgIG1vdnEgICAgJDAsICVyZHgKKyAgICAgICAgam1wICAgICBwb3N0YW1ibGUKKworLyogLS0tLS0tIEV2ZW50IGNoZWNrIGZhaWxlZCAtLS0tLS0gKi8KKy5nbG9iYWwgVkdfKGRpc3BfY3BfZXZjaGVja19mYWlsKQorVkdfKGRpc3BfY3BfZXZjaGVja19mYWlsKToKKyAgICAgICAJbW92cQkkVkdfVFJDX0lOTkVSX0NPVU5URVJaRVJPLCAlcmF4CisgICAgICAgIG1vdnEgICAgJDAsICVyZHgKKwlqbXAJcG9zdGFtYmxlCisKKworLnNpemUgVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucyksIC4tVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucykKKworI2VuZGlmIC8vIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtYXJtLWxpbnV4LlMgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1hcm0tbGludXguUwppbmRleCA5ZDViMWZjLi5jMjFlNWU0IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1hcm0tbGludXguUworKysgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1hcm0tbGludXguUwpAQCAtOCw3ICs4LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBFdmFuIEdlbGxlcgorICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBFdmFuIEdlbGxlcgogICAgICBnYXplQGJlYS5tcwogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI5LDEwICsyOSwxMSBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfYXJtX2xpbnV4KQogCS5mcHUgdmZwCiAKLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdHJhbnN0YWJfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIJLyogZm9yIE9GRlNFVF9hcm1fUiogKi8KQEAgLTIwNiwxMSArMjA3LDExIEBACiAKIC5zaXplIFZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpLCAuLVZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpCiAKLS8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCi0uc2VjdGlvbiAubm90ZS5HTlUtc3RhY2ssIiIsJXByb2diaXRzCi0KICNlbmRpZiAvLyBkZWZpbmVkKFZHUF9hcm1fbGludXgpCiAKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gtYXJtLWxpbnV4LlMgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtYXJtNjQtbGludXguUyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLWFybTY0LWxpbnV4LlMKaW5kZXggOTUzMTI3NS4uMmU4ZTBjZCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtYXJtNjQtbGludXguUworKysgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1hcm02NC1saW51eC5TCkBAIC04LDcgKzgsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAxMy0yMDEzIE9wZW5Xb3JrcworICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBPcGVuV29ya3MKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOSw5ICsyOSwxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfYXJtNjRfbGludXgpCiAKLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdHJhbnN0YWJfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIJLyogZm9yIE9GRlNFVF9hcm1fUiogKi8KQEAgLTIzMSwxMSArMjMyLDExIEBACiAKIC5zaXplIFZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpLCAuLVZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpCiAKLS8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCi0uc2VjdGlvbiAubm90ZS5HTlUtc3RhY2ssIiIsJXByb2diaXRzCi0KICNlbmRpZiAvLyBkZWZpbmVkKFZHUF9hcm02NF9saW51eCkKIAorLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gtYXJtNjQtbGludXguUyAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1taXBzMzItbGludXguUyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLW1pcHMzMi1saW51eC5TCmluZGV4IGEzYTE1OGMuLjIyYjZiMzggMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLW1pcHMzMi1saW51eC5TCisrKyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLW1pcHMzMi1saW51eC5TCkBAIC04LDcgKzgsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIFJULVJLCisgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IFJULVJLCiAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tIAogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI5LDEwICsyOSwxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogCiAjaWYgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2Rpc3BhdGNoX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3RyYW5zdGFiX2FzbS5oIgogI2luY2x1ZGUgImxpYnZleF9ndWVzdF9vZmZzZXRzLmgiCS8qIGZvciBPRkZTRVRfbWlwc19QQyAqLwpAQCAtMjM1LDExICsyMzUsMTEgQEAKIAogLnNpemUgVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucyksIC4tVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucykKIAotCi0vKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvIG5vdCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLS5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLQogI2VuZGlmIC8vIGRlZmluZWQoVkdQX21pcHMzMl9saW51eCkKKworLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1taXBzNjQtbGludXguUyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLW1pcHM2NC1saW51eC5TCmluZGV4IGMyZmM2OWQuLjVlNWFmZWUgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLW1pcHM2NC1saW51eC5TCisrKyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLW1pcHM2NC1saW51eC5TCkBAIC04LDcgKzgsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIFJULVJLCisgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IFJULVJLCiAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tIAogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI5LDEwICsyOSwxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogCiAjaWYgZGVmaW5lZChWR1BfbWlwczY0X2xpbnV4KQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2Rpc3BhdGNoX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3RyYW5zdGFiX2FzbS5oIgogI2luY2x1ZGUgImxpYnZleF9ndWVzdF9vZmZzZXRzLmgiCS8qIGZvciBPRkZTRVRfbWlwc19QQyAqLwpAQCAtMjM1LDExICsyMzUsMTEgQEAKIAogLnNpemUgVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucyksIC4tVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucykKIAotCi0vKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvIG5vdCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLS5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLQogI2VuZGlmIC8vIGRlZmluZWQoVkdQX21pcHM2NF9saW51eCkKKworLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1wcGMzMi1saW51eC5TIGIvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtcHBjMzItbGludXguUwppbmRleCA3NzBhMDU4Li4yMzA0Yjg1IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1wcGMzMi1saW51eC5TCisrKyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLXBwYzMyLWxpbnV4LlMKQEAgLTgsNyArOCw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgQ2VyaW9uIEFybW91ci1Ccm93biA8Y2VyaW9uQG9wZW4td29ya3MuY28udWs+CisgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IENlcmlvbiBBcm1vdXItQnJvd24gPGNlcmlvbkBvcGVuLXdvcmtzLmNvLnVrPgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTI4LDEwICsyOCwxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfcHBjMzJfbGludXgpCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdHJhbnN0YWJfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIJLyogZm9yIE9GRlNFVF9wcGMzMl9DSUEgKi8KQEAgLTE1OCw3ICsxNTgsNyBAQAogICAgICAgICBsaSAgICAgIDYsMTI4CiAgICAgICAgIHN0dnggICAgMjUsNiwxCiAgICAgICAgIGxpICAgICAgNiwxMTIKLSAgICAgICAgc3R2eCAgICAyNSw2LDEKKyAgICAgICAgc3R2eCAgICAyNCw2LDEKICAgICAgICAgbGkgICAgICA2LDk2CiAgICAgICAgIHN0dnggICAgMjMsNiwxCiAgICAgICAgIGxpICAgICAgNiw4MApAQCAtNDk1LDExICs0OTUsMTEgQEAKICAgICAgICAgCiAuc2l6ZSBWR18oZGlzcF9ydW5fdHJhbnNsYXRpb25zKSwgLi1WR18oZGlzcF9ydW5fdHJhbnNsYXRpb25zKQogCi0vKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLwotLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfcHBjMzJfbGludXgpCiAKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtcHBjNjRiZS1saW51eC5TIGIvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtcHBjNjRiZS1saW51eC5TCmluZGV4IDk0NWZhMjkuLjY0ZTE5MmEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLXBwYzY0YmUtbGludXguUworKysgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1wcGM2NGJlLWxpbnV4LlMKQEAgLTgsNyArOCw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgQ2VyaW9uIEFybW91ci1Ccm93biA8Y2VyaW9uQG9wZW4td29ya3MuY28udWs+CisgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IENlcmlvbiBBcm1vdXItQnJvd24gPGNlcmlvbkBvcGVuLXdvcmtzLmNvLnVrPgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTI4LDkgKzI4LDEwIEBACiAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKICNpZiBkZWZpbmVkKFZHUF9wcGM2NGJlX2xpbnV4KQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2Rpc3BhdGNoX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3RyYW5zdGFiX2FzbS5oIgogI2luY2x1ZGUgImxpYnZleF9ndWVzdF9vZmZzZXRzLmgiCS8qIGZvciBPRkZTRVRfcHBjNjRfQ0lBICovCkBAIC01MjcsMTEgKzUyOCwxMSBAQAogICAgICAgICAKIC5zaXplIC5WR18oZGlzcF9ydW5fdHJhbnNsYXRpb25zKSwgLi0uVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucykKIAotLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLS5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLQogI2VuZGlmIC8vIGRlZmluZWQoVkdQX3BwYzY0YmVfbGludXgpCiAKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtcHBjNjRsZS1saW51eC5TIGIvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtcHBjNjRsZS1saW51eC5TCmluZGV4IDdlNWJjMGQuLjE3NzIyODMgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLXBwYzY0bGUtbGludXguUworKysgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1wcGM2NGxlLWxpbnV4LlMKQEAgLTgsNyArOCw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgQ2VyaW9uIEFybW91ci1Ccm93biA8Y2VyaW9uQG9wZW4td29ya3MuY28udWs+CisgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IENlcmlvbiBBcm1vdXItQnJvd24gPGNlcmlvbkBvcGVuLXdvcmtzLmNvLnVrPgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTI4LDkgKzI4LDEwIEBACiAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKICNpZiAgZGVmaW5lZChWR1BfcHBjNjRsZV9saW51eCkKIAotI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKICNpbmNsdWRlICJwdWJfY29yZV9kaXNwYXRjaF9hc20uaCIKICNpbmNsdWRlICJwdWJfY29yZV90cmFuc3RhYl9hc20uaCIKICNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgkvKiBmb3IgT0ZGU0VUX3BwYzY0X0NJQSAqLwpAQCAtNjIwLDExICs2MjEsMTEgQEAKIAogLnNpemUgLlZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpLCAuLS5WR18oZGlzcF9ydW5fdHJhbnNsYXRpb25zKQogCi0vKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLwotLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfcHBjNjRiZV9saW51eCkgfHwgZGVmaW5lZChWR1BfcHBjNjRsZV9saW51eCkKIAorLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1zMzkweC1saW51eC5TIGIvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtczM5MHgtbGludXguUwppbmRleCBkN2QwNWFiLi5hZWM2NWJhIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC1zMzkweC1saW51eC5TCisrKyBiL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLXMzOTB4LWxpbnV4LlMKQEAgLTgsOCArOCw4IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTMKLSAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTMsIEZsb3JpYW4gS3JvaG0gKGJyaXR6ZWxAYWNtLm9yZykKKyAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTUKKyAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTUsIEZsb3JpYW4gS3JvaG0gKGJyaXR6ZWxAYWNtLm9yZykKICAgICAgICAgCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTI2NywxMSArMjY3LDExIEBACiAKICAgICAgICAgLnNpemUgVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucyksIC4tVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucykKIAotLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLSAgICAgICAgLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotCiAjZW5kaWYgLyogVkdBX3MzOTB4ICovCiAKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLXMzOTB4LWxpbnV4LlMgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gtdGlsZWd4LWxpbnV4LlMgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC10aWxlZ3gtbGludXguUwppbmRleCAzNDUxZmU1Li5iMzExNGVmIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC10aWxlZ3gtbGludXguUworKysgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC10aWxlZ3gtbGludXguUwpAQCAtNyw3ICs3LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyAgVGlsZXJhIENvcnAuCisgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1ICBUaWxlcmEgQ29ycC4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0yOSw4ICsyOSw5IEBACiAKIC8qIENvbnRyaWJ1dGVkIGJ5IFpoaS1HYW5nIExpdSA8emxpdSBhdCB0aWxlcmEgZG90IGNvbT4gKi8KIAotI2lmIGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkKICNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKKyNpZiBkZWZpbmVkKFZHUF90aWxlZ3hfbGludXgpCiAjaW5jbHVkZSAicHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdHJhbnN0YWJfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIgICAgICAgLyogZm9yIE9GRlNFVF90aWxlZ3hfUEMgKi8KQEAgLTI5NywxMSArMjk4LDExIEBACiAKICAgICAgICAgLnNpemUgVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucyksIC4tVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucykKIAotCi0gICAgICAgIC8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG8gbm90IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLwotICAgICAgICAuc2VjdGlvbiAubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi0KICNlbmRpZiAvKiBkZWZpbmVkKFZHUF90aWxlZ3hfbGludXgpICovCisKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gteDg2LWRhcndpbi5TIGIvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gteDg2LWRhcndpbi5TCmluZGV4IGI2NjQ3Y2UuLmQ1ZWRiYWIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2Rpc3BhdGNoL2Rpc3BhdGNoLXg4Ni1kYXJ3aW4uUworKysgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC14ODYtZGFyd2luLlMKQEAgLTgsNyArOCw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAganNld2FyZEBhY20ub3JnCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjksOSArMjksMTAgQEAKICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgogKi8KIAorI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKKwogI2lmIGRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pCiAKLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdHJhbnN0YWJfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIJLyogZm9yIE9GRlNFVF94ODZfRUlQICovCkBAIC0yMzksNiArMjQwLDkgQEAKIAogI2VuZGlmIC8vIGRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pCiAKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gteDg2LWxpbnV4LlMgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC14ODYtbGludXguUwppbmRleCAyMDUxN2RhLi42ODQ1OTExIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC14ODYtbGludXguUworKysgYi9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC14ODYtbGludXguUwpAQCAtOCw3ICs4LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOSw5ICsyOSwxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2Rpc3BhdGNoX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3RyYW5zdGFiX2FzbS5oIgogI2luY2x1ZGUgImxpYnZleF9ndWVzdF9vZmZzZXRzLmgiCS8qIGZvciBPRkZTRVRfeDg2X0VJUCAqLwpAQCAtMjQwLDExICsyNDEsMTEgQEAKIAogLnNpemUgVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucyksIC4tVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucykKIAotLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLS5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLQogI2VuZGlmIC8vIGRlZmluZWQoVkdQX3g4Nl9saW51eCkKIAorLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9kaXNwYXRjaC9kaXNwYXRjaC14ODYtc29sYXJpcy5TIGIvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gteDg2LXNvbGFyaXMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGY3OTZjCi0tLSAvZGV2L251bGwKKysrIGIvY29yZWdyaW5kL21fZGlzcGF0Y2gvZGlzcGF0Y2gteDg2LXNvbGFyaXMuUwpAQCAtMCwwICsxLDI1MSBAQAorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFRoZSBjb3JlIGRpc3BhdGNoIGxvb3AsIGZvciBqdW1waW5nIHRvIGEgY29kZSBhZGRyZXNzLiAgICAgICAtLS0qLworLyotLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC14ODYtc29sYXJpcy5TIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgIGZyYW1ld29yay4KKworICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMiBKdWxpYW4gU2V3YXJkIAorICAgICBqc2V3YXJkQGFjbS5vcmcKKworICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgMDIxMTEtMTMwNywgVVNBLgorCisgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKworI2luY2x1ZGUgInB1Yl9jb3JlX2Rpc3BhdGNoX2FzbS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3RyYW5zdGFiX2FzbS5oIgorI2luY2x1ZGUgImxpYnZleF9ndWVzdF9vZmZzZXRzLmgiCS8qIGZvciBPRkZTRVRfeDg2X0VJUCAqLworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tIFRoZSBkaXNwYXRjaCBsb29wLiAgVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucykgaXMgICAgLS0tKi8KKy8qLS0tIHVzZWQgdG8gcnVuIGFsbCB0cmFuc2xhdGlvbnMsICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tIGluY2x1ZGluZyBuby1yZWRpciBvbmVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIEVudHJ5IGFuZCBwcmVhbWJsZSAoc2V0IGV2ZXJ5dGhpbmcgdXApICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBzaWduYXR1cmU6Cit2b2lkIFZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpKCBVV29yZCogdHdvX3dvcmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogIGd1ZXN0X3N0YXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgICBob3N0X2FkZHIgKTsKKyovCisudGV4dAorLmdsb2JsIFZHXyhkaXNwX3J1bl90cmFuc2xhdGlvbnMpCisudHlwZSAgVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucyksIEBmdW5jdGlvbgorVkdfKGRpc3BfcnVuX3RyYW5zbGF0aW9ucyk6CisgICAgICAgIC8qIDAoJWVzcCkgaG9sZHMgb3VyIHJldHVybiBhZGRyZXNzLiAqLworCS8qIDQoJWVzcCkgaG9sZHMgdHdvX3dvcmRzICovCisJLyogOCglZXNwKSBob2xkcyBndWVzdF9zdGF0ZSAqLworCS8qIDEyKCVlc3ApIGhvbGRzIGhvc3RfYWRkciAqLworCisgICAgICAgIC8qIFRoZSBwcmVhbWJsZSAqLworCisgICAgICAgIC8qIFNhdmUgaW50ZWdlciByZWdpc3RlcnMsIHNpbmNlIHRoaXMgaXMgYSBwc2V1ZG8tZnVuY3Rpb24uICovCisgICAgICAgIHB1c2hsICAgJWVheAorCXB1c2hsCSVlYngKKwlwdXNobAklZWN4CisJcHVzaGwJJWVkeAorCXB1c2hsCSVlc2kKKwlwdXNobAklZWRpCisJcHVzaGwJJWVicAorCQorCS8qIDI4KzQoJWVzcCkgaG9sZHMgdHdvX3dvcmRzICovCisJLyogMjgrOCglZXNwKSBob2xkcyBndWVzdF9zdGF0ZSAqLworCS8qIDI4KzEyKCVlc3ApIGhvbGRzIGhvc3RfYWRkciAqLworCisgICAgICAgIC8qIEdldCB0aGUgaG9zdCBDUFUgaW4gdGhlIHN0YXRlIGV4cGVjdGVkIGJ5IGdlbmVyYXRlZCBjb2RlLiAqLworCisJLyogc2V0IGhvc3QgRlBVIGNvbnRyb2wgd29yZCB0byB0aGUgZGVmYXVsdCBtb2RlIGV4cGVjdGVkIAorICAgICAgICAgICBieSBWRVgtZ2VuZXJhdGVkIGNvZGUuICBTZWUgY29tbWVudHMgaW4gbGlidmV4LmggZm9yCisgICAgICAgICAgIG1vcmUgaW5mby4gKi8KKwlmaW5pdAorCXB1c2hsCSQweDAyN0YKKwlmbGRjdwkoJWVzcCkKKwlhZGRsCSQ0LCAlZXNwCisJCisJLyogc2V0IGhvc3QgU1NFIGNvbnRyb2wgd29yZCB0byB0aGUgZGVmYXVsdCBtb2RlIGV4cGVjdGVkIAorCSAgIGJ5IFZFWC1nZW5lcmF0ZWQgY29kZS4gKi8KKwljbXBsCSQwLCBWR18obWFjaGluZV94ODZfaGF2ZV9teGNzcikKKwlqeglMMQorCXB1c2hsCSQweDFGODAKKwlsZG14Y3NyCSglZXNwKQorCWFkZGwJJDQsICVlc3AKK0wxOgorCS8qIHNldCBkaXIgZmxhZyB0byBrbm93biB2YWx1ZSAqLworCWNsZAorCisJLyogU2V0IHVwIHRoZSBndWVzdCBzdGF0ZSBwb2ludGVyICovCisJbW92bAkyOCs4KCVlc3ApLCAlZWJwCisKKyAgICAgICAgLyogYW5kIGp1bXAgaW50byB0aGUgY29kZSBjYWNoZS4gIENoYWluZWQgdHJhbnNsYXRpb25zIGluCisgICAgICAgICAgIHRoZSBjb2RlIGNhY2hlIHJ1biwgdW50aWwgZm9yIHdoYXRldmVyIHJlYXNvbiwgdGhleSBjYW4ndAorICAgICAgICAgICBjb250aW51ZS4gIFdoZW4gdGhhdCBoYXBwZW5zLCB0aGUgdHJhbnNsYXRpb24gaW4gcXVlc3Rpb24KKyAgICAgICAgICAgd2lsbCBqdW1wIChvciBjYWxsKSB0byBvbmUgb2YgdGhlIGNvbnRpbnVhdGlvbiBwb2ludHMKKyAgICAgICAgICAgVkdfKGNwXy4uLikgYmVsb3cuICovCisgICAgICAgIGptcGwgICAgKjI4KzEyKCVlc3ApCisJLypOT1RSRUFDSEVEKi8KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFBvc3RhbWJsZSBhbmQgZXhpdC4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitwb3N0YW1ibGU6CisgICAgICAgIC8qIEF0IHRoaXMgcG9pbnQsICVlYXggYW5kICVlZHggY29udGFpbiB0d28KKyAgICAgICAgICAgd29yZHMgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIGNhbGxlci4gICVlYXgKKyAgICAgICAgICAgaG9sZHMgYSBUUkMgdmFsdWUsIGFuZCAlZWR4IG9wdGlvbmFsbHkgbWF5CisgICAgICAgICAgIGhvbGQgYW5vdGhlciB3b3JkIChmb3IgQ0hBSU5fTUUgZXhpdHMsIHRoZQorICAgICAgICAgICBhZGRyZXNzIG9mIHRoZSBwbGFjZSB0byBwYXRjaC4pICovCisKKwkvKiBXZSdyZSBsZWF2aW5nLiAgQ2hlY2sgdGhhdCBub2JvZHkgbWVzc2VkIHdpdGggJW14Y3NyCisgICAgICAgICAgIG9yICVmcHVjdy4gIFdlIGNhbid0IG1lc3Mgd2l0aCAlZWF4IG9yICVlZHggaGVyZSBhcyB0aGV5CisJICAgaG9sZHMgdGhlIHRlbnRhdGl2ZSByZXR1cm4gdmFsdWUsIGJ1dCBhbnkgb3RoZXJzIGFyZSBPSy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5ORVIpCisgICAgICAgIC8qIFRoaXMgY2hlY2sgZmFpbHMgZm9yIHNlbGYtaG9zdGluZywgc28gc2tpcCBpbiB0aGF0IGNhc2UgKi8KKwlwdXNobAkkMAorCWZzdGN3CSglZXNwKQorCWNtcGwJJDB4MDI3RiwgKCVlc3ApCisJcG9wbAklZXNpIC8qIGdldCByaWQgb2YgdGhlIHdvcmQgd2l0aG91dCB0cmFzaGluZyAlZWZsYWdzICovCisJam56CWludmFyaWFudF92aW9sYXRpb24KKyNlbmRpZgorIwljbXBsCSQwLCBWR18obWFjaGluZV94ODZfaGF2ZV9teGNzcikKKwlqeglMMgorCXB1c2hsCSQwCisJc3RteGNzcgkoJWVzcCkKKwlhbmRsCSQweEZGRkZGRkMwLCAoJWVzcCkgIC8qIG1hc2sgb3V0IHN0YXR1cyBmbGFncyAqLworCWNtcGwJJDB4MUY4MCwgKCVlc3ApCisJcG9wbAklZXNpCisJam56CWludmFyaWFudF92aW9sYXRpb24KK0wyOgkvKiBvdGhlcndpc2Ugd2UncmUgT0sgKi8KKwlqbXAJcmVtb3ZlX2ZyYW1lCitpbnZhcmlhbnRfdmlvbGF0aW9uOgorCW1vdmwJJFZHX1RSQ19JTlZBUklBTlRfRkFJTEVELCAlZWF4CisgICAgICAgIG1vdmwgICAgJDAsICVlZHgKKworcmVtb3ZlX2ZyYW1lOgorICAgICAgICAvKiBTdGFzaCByZXR1cm4gdmFsdWVzICovCisgICAgICAgIG1vdmwgICAgMjgrNCglZXNwKSwgJWVkaSAgICAgICAgLyogdHdvX3dvcmRzICovCisgICAgICAgIG1vdmwgICAgJWVheCwgMCglZWRpKQorICAgICAgICBtb3ZsICAgICVlZHgsIDQoJWVkaSkKKyAgICAgICAgLyogUmVzdG9yZSBpbnQgcmVncyBhbmQgcmV0dXJuLiAqLworCXBvcGwJJWVicAorCXBvcGwJJWVkaQorCXBvcGwJJWVzaQorCXBvcGwJJWVkeAorCXBvcGwJJWVjeAorCXBvcGwJJWVieAorCXBvcGwJJWVheAorCXJldAkKKyAgICAgICAgCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gQ29udGludWF0aW9uIHBvaW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIC0tLS0tLSBDaGFpbiBtZSB0byBzbG93IGVudHJ5IHBvaW50IC0tLS0tLSAqLworLmdsb2JhbCBWR18oZGlzcF9jcF9jaGFpbl9tZV90b19zbG93RVApCitWR18oZGlzcF9jcF9jaGFpbl9tZV90b19zbG93RVApOgorICAgICAgICAvKiBXZSBnb3QgY2FsbGVkLiAgVGhlIHJldHVybiBhZGRyZXNzIGluZGljYXRlcworICAgICAgICAgICB3aGVyZSB0aGUgcGF0Y2hpbmcgbmVlZHMgdG8gaGFwcGVuLiAgQ29sbGVjdAorICAgICAgICAgICB0aGUgcmV0dXJuIGFkZHJlc3MgYW5kLCBleGl0IGJhY2sgdG8gQyBsYW5kLAorICAgICAgICAgICBoYW5kaW5nIHRoZSBjYWxsZXIgdGhlIHBhaXIgKENoYWluX21lX1MsIFJBKSAqLworICAgICAgICBtb3ZsICAgICRWR19UUkNfQ0hBSU5fTUVfVE9fU0xPV19FUCwgJWVheAorICAgICAgICBwb3BsICAgICVlZHgKKyAgICAgICAgLyogNSA9IG1vdmwgJFZHXyhkaXNwX2NoYWluX21lX3RvX3Nsb3dFUCksICVlZHg7CisgICAgICAgICAgIDIgPSBjYWxsIColZWR4ICovCisgICAgICAgIHN1YmwgICAgJDUrMiwgJWVkeAorICAgICAgICBqbXAgICAgIHBvc3RhbWJsZQorCisvKiAtLS0tLS0gQ2hhaW4gbWUgdG8gZmFzdCBlbnRyeSBwb2ludCAtLS0tLS0gKi8KKy5nbG9iYWwgVkdfKGRpc3BfY3BfY2hhaW5fbWVfdG9fZmFzdEVQKQorVkdfKGRpc3BfY3BfY2hhaW5fbWVfdG9fZmFzdEVQKToKKyAgICAgICAgLyogV2UgZ290IGNhbGxlZC4gIFRoZSByZXR1cm4gYWRkcmVzcyBpbmRpY2F0ZXMKKyAgICAgICAgICAgd2hlcmUgdGhlIHBhdGNoaW5nIG5lZWRzIHRvIGhhcHBlbi4gIENvbGxlY3QKKyAgICAgICAgICAgdGhlIHJldHVybiBhZGRyZXNzIGFuZCwgZXhpdCBiYWNrIHRvIEMgbGFuZCwKKyAgICAgICAgICAgaGFuZGluZyB0aGUgY2FsbGVyIHRoZSBwYWlyIChDaGFpbl9tZV9GLCBSQSkgKi8KKyAgICAgICAgbW92bCAgICAkVkdfVFJDX0NIQUlOX01FX1RPX0ZBU1RfRVAsICVlYXgKKyAgICAgICAgcG9wbCAgICAlZWR4CisgICAgICAgIC8qIDUgPSBtb3ZsICRWR18oZGlzcF9jaGFpbl9tZV90b19mYXN0RVApLCAlZWR4OworICAgICAgICAgICAyID0gY2FsbCAqJWVkeCAqLworICAgICAgICBzdWJsICAgICQ1KzIsICVlZHgKKyAgICAgICAgam1wICAgICBwb3N0YW1ibGUKKworLyogLS0tLS0tIEluZGlyZWN0IGJ1dCBib3JpbmcganVtcCAtLS0tLS0gKi8KKy5nbG9iYWwgVkdfKGRpc3BfY3BfeGluZGlyKQorVkdfKGRpc3BfY3BfeGluZGlyKToKKwkvKiBXaGVyZSBhcmUgd2UgZ29pbmc/ICovCisJbW92bAlPRkZTRVRfeDg2X0VJUCglZWJwKSwgJWVheAorCisgICAgICAgIC8qIHN0YXRzIG9ubHkgKi8KKyAgICAgICAgYWRkbCAgICAkMSwgVkdfKHN0YXRzX19uX3hpbmRpcnNfMzIpCisgICAgICAgIAorICAgICAgICAvKiB0cnkgYSBmYXN0IGxvb2t1cCBpbiB0aGUgdHJhbnNsYXRpb24gY2FjaGUgKi8KKyAgICAgICAgbW92bCAgICAlZWF4LCAlZWJ4ICAgICAgICAgICAgICAgICAgICAgIC8qIG5leHQgZ3Vlc3QgYWRkciAqLworICAgICAgICBhbmRsICAgICRWR19UVF9GQVNUX01BU0ssICVlYnggICAgICAgICAgLyogZW50cnkjICovCisgICAgICAgIG1vdmwgICAgMCtWR18odHRfZmFzdCkoLCVlYngsOCksICVlc2kgICAvKiAuZ3Vlc3QgKi8KKyAgICAgICAgbW92bCAgICA0K1ZHXyh0dF9mYXN0KSgsJWVieCw4KSwgJWVkaSAgIC8qIC5ob3N0ICovCisgICAgICAgIGNtcGwgICAgJWVheCwgJWVzaQorICAgICAgICBqbnogICAgIGZhc3RfbG9va3VwX2ZhaWxlZAorCisgICAgICAgIC8qIEZvdW5kIGEgbWF0Y2guICBKdW1wIHRvIC5ob3N0LiAqLworCWptcCAJKiVlZGkKKwl1ZDIJLyogcGVyc3VhZGUgaW5zbiBkZWNvZGVycyBub3QgdG8gc3BlY3VsYXRlIHBhc3QgaGVyZSAqLworCitmYXN0X2xvb2t1cF9mYWlsZWQ6CisgICAgICAgIC8qIHN0YXRzIG9ubHkgKi8KKyAgICAgICAgYWRkbCAgICAkMSwgVkdfKHN0YXRzX19uX3hpbmRpcl9taXNzZXNfMzIpCisKKwltb3ZsCSRWR19UUkNfSU5ORVJfRkFTVE1JU1MsICVlYXgKKyAgICAgICAgbW92bCAgICAkMCwgJWVkeAorCWptcAlwb3N0YW1ibGUKKworLyogLS0tLS0tIEFzc2lzdGVkIGp1bXAgLS0tLS0tICovCisuZ2xvYmFsIFZHXyhkaXNwX2NwX3hhc3Npc3RlZCkKK1ZHXyhkaXNwX2NwX3hhc3Npc3RlZCk6CisgICAgICAgIC8qICVlYnAgY29udGFpbnMgdGhlIFRSQyAqLworICAgICAgICBtb3ZsICAgICVlYnAsICVlYXgKKyAgICAgICAgbW92bCAgICAkMCwgJWVkeAorICAgICAgICBqbXAgICAgIHBvc3RhbWJsZQorCisvKiAtLS0tLS0gRXZlbnQgY2hlY2sgZmFpbGVkIC0tLS0tLSAqLworLmdsb2JhbCBWR18oZGlzcF9jcF9ldmNoZWNrX2ZhaWwpCitWR18oZGlzcF9jcF9ldmNoZWNrX2ZhaWwpOgorICAgICAgIAltb3ZsCSRWR19UUkNfSU5ORVJfQ09VTlRFUlpFUk8sICVlYXgKKyAgICAgICAgbW92bCAgICAkMCwgJWVkeAorCWptcAlwb3N0YW1ibGUKKworCisuc2l6ZSBWR18oZGlzcF9ydW5fdHJhbnNsYXRpb25zKSwgLi1WR18oZGlzcF9ydW5fdHJhbnNsYXRpb25zKQorCisjZW5kaWYgLy8gZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZXJyb3JtZ3IuYyBiL2NvcmVncmluZC9tX2Vycm9ybWdyLmMKaW5kZXggMmVhNjM3MC4uYTQ2YzZjMyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZXJyb3JtZ3IuYworKysgYi9jb3JlZ3JpbmQvbV9lcnJvcm1nci5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIKICNpbmNsdWRlICJwdWJfY29yZV92a2kuaCIKICNpbmNsdWRlICJwdWJfY29yZV90aHJlYWRzdGF0ZS5oIiAgICAgIC8vIEZvciBWR19OX1RIUkVBRFMKLSNpbmNsdWRlICJwdWJfY29yZV9kZWJ1Z2dlci5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2RlYnVnaW5mby5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2RlYnVnbG9nLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfZXJyb3JtZ3IuaCIKQEAgLTMwOCw3ICszMDcsNyBAQAogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIFZHXyhwcmludGYpKCJcblVuaGFuZGxlZCBlcnJvciB0eXBlOiAldS4gVkdfKG5lZWRzKS50b29sX2Vycm9yc1xuIgogICAgICAgICAgICAgICAgICAgICAgICAgInByb2JhYmx5IG5lZWRzIHRvIGJlIHNldC5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBlMS0+ZWtpbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgKFVJbnQpZTEtPmVraW5kKTsKICAgICAgICAgICAgIFZHXyhjb3JlX3BhbmljKSgidW5oYW5kbGVkIGVycm9yIHR5cGUiKTsKICAgICAgICAgIH0KICAgIH0KQEAgLTUxNSw3ICs1MTQsNyBAQAogCiAvKiBEbyB0ZXh0LW1vZGUgYWN0aW9ucyBvbiBlcnJvciwgdGhhdCBpcywgaW1tZWRpYXRlbHkgYWZ0ZXIgYW4gZXJyb3IKICAgIGlzIHByaW50ZWQuICBUaGVzZSBhcmU6Ci0gICAqIHBvc3NpYmx5LCBhdHRhY2ggdG8gYSBkZWJ1Z2dlcgorICAgKiBwb3NzaWJseSwgY2FsbCB0aGUgR0RCIHNlcnZlcgogICAgKiBwb3NzaWJseSwgZ2VuZXJhdGUgYSBzdXBwcmVzc2lvbi4KICAgIE5vdGUgdGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBYTUwgbW9kZSEgCiAqLwpAQCAtNTMzLDE1ICs1MzIsNiBAQAogICAgICAgVkdfKHVtc2cpKCJDb250aW51aW5nIC4uLlxuIik7CiAgICB9CiAKLSAgIC8qIFBlcmhhcHMgd2Ugd2FudCBhIGRlYnVnZ2VyIGF0dGFjaCBhdCB0aGlzIHBvaW50PyAqLwotICAgLyogR0RCVEQgPz8/IG1heWJlIHdlIHNob3VsZC9jb3VsZCByZW1vdmUgdGhlIGJlbG93IGFzc3VtaW5nIHRoZQotICAgICAgZ2Ric2VydmVyIGludGVyZmFjZSBpcyBiZXR0ZXIgPz8/ICovCi0gICBpZiAoYWxsb3dfZGJfYXR0YWNoICYmCi0gICAgICAgVkdfKGlzX2FjdGlvbl9yZXF1ZXN0ZWQpKCAiQXR0YWNoIHRvIGRlYnVnZ2VyIiwgJiBWR18oY2xvX2RiX2F0dGFjaCkgKSkKLSAgIHsgICAKLSAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgic3RhcnRpbmcgZGVidWdnZXJcbiIpOwotICAgICAgVkdfKHN0YXJ0X2RlYnVnZ2VyKSggZXJyLT50aWQgKTsKLSAgIH0gIAogICAgLyogT3IgbWF5YmUgd2Ugd2FudCB0byBnZW5lcmF0ZSB0aGUgZXJyb3IncyBzdXBwcmVzc2lvbj8gKi8KICAgIGlmIChWR18oY2xvX2dlbl9zdXBwcmVzc2lvbnMpID09IDIKICAgICAgICB8fCAoVkdfKGNsb19nZW5fc3VwcHJlc3Npb25zKSA9PSAxCkBAIC02MDEsNyArNTkxLDcgQEAKICAgICAgIC8qIHN0YW5kYXJkIHByZWFtYmxlICovCiAgICAgICBWR18ocHJpbnRmX3htbCkoIjxlcnJvcj5cbiIpOwogICAgICAgVkdfKHByaW50Zl94bWwpKCIgIDx1bmlxdWU+MHgleDwvdW5pcXVlPlxuIiwgZXJyLT51bmlxdWUpOwotICAgICAgVkdfKHByaW50Zl94bWwpKCIgIDx0aWQ+JWQ8L3RpZD5cbiIsIGVyci0+dGlkKTsKKyAgICAgIFZHXyhwcmludGZfeG1sKSgiICA8dGlkPiV1PC90aWQ+XG4iLCBlcnItPnRpZCk7CiAgICAgICBUaHJlYWRTdGF0ZSogdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkoZXJyLT50aWQpOwogICAgICAgaWYgKHRzdC0+dGhyZWFkX25hbWUpIHsKICAgICAgICAgIFZHXyhwcmludGZfeG1sKSgiICA8dGhyZWFkbmFtZT4lczwvdGhyZWFkbmFtZT5cbiIsIHRzdC0+dGhyZWFkX25hbWUpOwpAQCAtNjI3LDkgKzYxNyw5IEBACiAgICAgICAgICAgJiYgZXJyLT50aWQgPiAwICYmIGVyci0+dGlkICE9IGxhc3RfdGlkX3ByaW50ZWQpIHsKICAgICAgICAgIFRocmVhZFN0YXRlKiB0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKShlcnItPnRpZCk7CiAgICAgICAgICBpZiAodHN0LT50aHJlYWRfbmFtZSkgewotICAgICAgICAgICAgVkdfKHVtc2cpKCJUaHJlYWQgJWQgJXM6XG4iLCBlcnItPnRpZCwgdHN0LT50aHJlYWRfbmFtZSApOworICAgICAgICAgICAgVkdfKHVtc2cpKCJUaHJlYWQgJXUgJXM6XG4iLCBlcnItPnRpZCwgdHN0LT50aHJlYWRfbmFtZSApOwogICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFZHXyh1bXNnKSgiVGhyZWFkICVkOlxuIiwgZXJyLT50aWQgKTsKKyAgICAgICAgICAgIFZHXyh1bXNnKSgiVGhyZWFkICV1OlxuIiwgZXJyLT50aWQgKTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RfdGlkX3ByaW50ZWQgPSBlcnItPnRpZDsKICAgICAgIH0KQEAgLTk5MSw3ICs5ODEsNyBAQAogCiAgICAvKiBXZSBvbmx5IGdldCBoZXJlIGlmIG5vdCBwcmludGluZyBYTUwuICovCiAgICBWR18odW1zZykoIkVSUk9SIFNVTU1BUlk6ICIKLSAgICAgICAgICAgICAiJWQgZXJyb3JzIGZyb20gJWQgY29udGV4dHMgKHN1cHByZXNzZWQ6ICVkIGZyb20gJWQpXG4iLAorICAgICAgICAgICAgICIldSBlcnJvcnMgZnJvbSAldSBjb250ZXh0cyAoc3VwcHJlc3NlZDogJXUgZnJvbSAldSlcbiIsCiAgICAgICAgICAgICAgbl9lcnJzX2ZvdW5kLCBuX2Vycl9jb250ZXh0cywgCiAgICAgICAgICAgICAgbl9lcnJzX3N1cHByZXNzZWQsIG5fc3VwcF9jb250ZXh0cyApOwogCkBAIC0xMDE5LDcgKzEwMDksNyBAQAogICAgICAgaWYgKHBfbWluID09IE5VTEwpIGNvbnRpbnVlOyAvL1ZHXyhjb3JlX3BhbmljKSgic2hvd19hbGxfZXJyb3JzKCkiKTsKIAogICAgICAgVkdfKHVtc2cpKCJcbiIpOwotICAgICAgVkdfKHVtc2cpKCIlZCBlcnJvcnMgaW4gY29udGV4dCAlZCBvZiAlZDpcbiIsCisgICAgICBWR18odW1zZykoIiVkIGVycm9ycyBpbiBjb250ZXh0ICVkIG9mICV1OlxuIiwKICAgICAgICAgICAgICAgICBwX21pbi0+Y291bnQsIGkrMSwgbl9lcnJfY29udGV4dHMpOwogICAgICAgcHBfRXJyb3IoIHBfbWluLCBGYWxzZS8qYWxsb3dfZGJfYXR0YWNoKi8sIEZhbHNlIC8qIHhtbCAqLyApOwogCkBAIC0xMDUxLDcgKzEwNDEsNyBAQAogICAgLy8gcmVwcmludCB0aGlzLCBzbyB1c2VycyBkb24ndCBoYXZlIHRvIHNjcm9sbCB3YXkgdXAgdG8gZmluZAogICAgLy8gdGhlIGZpcnN0IHByaW50aW5nCiAgICBWR18odW1zZykoIkVSUk9SIFNVTU1BUlk6ICIKLSAgICAgICAgICAgICAiJWQgZXJyb3JzIGZyb20gJWQgY29udGV4dHMgKHN1cHByZXNzZWQ6ICVkIGZyb20gJWQpXG4iLAorICAgICAgICAgICAgICIldSBlcnJvcnMgZnJvbSAldSBjb250ZXh0cyAoc3VwcHJlc3NlZDogJXUgZnJvbSAldSlcbiIsCiAgICAgICAgICAgICAgbl9lcnJzX2ZvdW5kLCBuX2Vycl9jb250ZXh0cywgbl9lcnJzX3N1cHByZXNzZWQsCiAgICAgICAgICAgICAgbl9zdXBwX2NvbnRleHRzICk7CiB9CkBAIC0xOTAxLDcgKzE4OTEsNyBAQAogICAgICAgICAgICAgVkdfKHByaW50ZikoCiAgICAgICAgICAgICAgICAiXG5VbmhhbmRsZWQgc3VwcHJlc3Npb24gdHlwZTogJXUuICBWR18obmVlZHMpLnRvb2xfZXJyb3JzXG4iCiAgICAgICAgICAgICAgICAicHJvYmFibHkgbmVlZHMgdG8gYmUgc2V0LlxuIiwKLSAgICAgICAgICAgICAgIGVyci0+ZWtpbmQpOworICAgICAgICAgICAgICAgKFVJbnQpZXJyLT5la2luZCk7CiAgICAgICAgICAgICBWR18oY29yZV9wYW5pYykoInVuaGFuZGxlZCBzdXBwcmVzc2lvbiB0eXBlIik7CiAgICAgICAgICB9CiAgICB9CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9leGVjb250ZXh0LmMgYi9jb3JlZ3JpbmQvbV9leGVjb250ZXh0LmMKaW5kZXggZjczODI3OS4uYzA3NGY2MSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZXhlY29udGV4dC5jCisrKyBiL2NvcmVncmluZC9tX2V4ZWNvbnRleHQuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvbV9nZGJzZXJ2ZXIuYyBiL2NvcmVncmluZC9tX2dkYnNlcnZlci9tX2dkYnNlcnZlci5jCmluZGV4IDg4ODM0MGEuLmQ1Y2M4ZWEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2dkYnNlcnZlci9tX2dkYnNlcnZlci5jCisrKyBiL2NvcmVncmluZC9tX2dkYnNlcnZlci9tX2dkYnNlcnZlci5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMS0yMDEzIFBoaWxpcHBlIFdhcm9xdWllcnMKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBoaWxpcHBlIFdhcm9xdWllcnMKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTQyNSw3ICs0MjUsNyBAQAogICAgdmdfYXNzZXJ0IChraW5kID09IGFjY2Vzc193YXRjaHBvaW50IAogICAgICAgICAgICAgICB8fCBraW5kID09IHJlYWRfd2F0Y2hwb2ludCAKICAgICAgICAgICAgICAgfHwga2luZCA9PSB3cml0ZV93YXRjaHBvaW50KTsKLSAgIGRsb2coMSwgInRpZCAlZCBWR18oaXNfd2F0Y2hlZCkgJXMgYWRkciAlcCBzekIgJWRcbiIsCisgICBkbG9nKDEsICJ0aWQgJXUgVkdfKGlzX3dhdGNoZWQpICVzIGFkZHIgJXAgc3pCICVkXG4iLAogICAgICAgICB0aWQsIFZHXyhwcFBvaW50S2luZCkgKGtpbmQpLCBDMnYoYWRkciksIHN6Qik7CiAKICAgIGZvciAoaSA9IDA7IGkgPCBuX2VsZW1zOyBpKyspIHsKQEAgLTU0Miw3ICs1NDIsNyBAQAogICAgaW50IGk7CiAKICAgIGRsb2coMSwKLSAgICAgICAgImNsZWFyX2dkYnNlcnZlZF9hZGRyZXNzZXM6IHNjYW5uaW5nIGhhc2ggdGFibGUgbm9kZXMgJWRcbiIsIAorICAgICAgICAiY2xlYXJfZ2Ric2VydmVkX2FkZHJlc3Nlczogc2Nhbm5pbmcgaGFzaCB0YWJsZSBub2RlcyAldVxuIiwgCiAgICAgICAgIFZHXyhIVF9jb3VudF9ub2RlcykgKGdzX2FkZHJlc3NlcykpOwogICAgYWcgPSAoR1NfQWRkcmVzcyoqKSBWR18oSFRfdG9fYXJyYXkpIChnc19hZGRyZXNzZXMsICZuX2VsZW1zKTsKICAgIGZvciAoaSA9IDA7IGkgPCBuX2VsZW1zOyBpKyspCkBAIC02MjIsNyArNjIyLDcgQEAKICAgIGRhdGEgZnJvbSBpdHMgcGFyZW50ICovCiBzdGF0aWMgdm9pZCBnZGJzZXJ2ZXJfY2xlYW51cF9pbl9jaGlsZF9hZnRlcl9mb3JrKFRocmVhZElkIG1lKQogewotICAgZGxvZygxLCAidGhyZWFkICVkIGdkYnNlcnZlcl9jbGVhbnVwX2luX2NoaWxkX2FmdGVyX2ZvcmsgcGlkICVkXG4iLAorICAgZGxvZygxLCAidGhyZWFkICV1IGdkYnNlcnZlcl9jbGVhbnVwX2luX2NoaWxkX2FmdGVyX2ZvcmsgcGlkICVkXG4iLAogICAgICAgICBtZSwgVkdfKGdldHBpZCkgKCkpOwogCiAgICAvKiBmaW5pc2ggY29ubmVjdGlvbiBpbmhlcml0YXRlZCBmcm9tIHBhcmVudCAqLwpAQCAtNjYzLDcgKzY2Myw3IEBACiAgICBBZGRyIHNhdmVkX3BjOwogCiAgICBkbG9nKDEsIAotICAgICAgICAiZW50ZXJpbmcgY2FsbF9nZGJzZXJ2ZXIgJXMgLi4uIHBpZCAlZCB0aWQgJWQgc3RhdHVzICVzICIKKyAgICAgICAgImVudGVyaW5nIGNhbGxfZ2Ric2VydmVyICVzIC4uLiBwaWQgJWQgdGlkICV1IHN0YXR1cyAlcyAiCiAgICAgICAgICJzY2hlZF9qbXBidWZfdmFsaWQgJWRcbiIsCiAgICAgICAgIHBwQ2FsbFJlYXNvbiAocmVhc29uKSwKICAgICAgICAgVkdfKGdldHBpZCkgKCksIHRpZCwgVkdfKG5hbWVfb2ZfVGhyZWFkU3RhdHVzKSh0c3QtPnN0YXR1cyksCkBAIC03NTQsNyArNzU0LDcgQEAKICAgICAgIE90aGVyd2lzZSB3ZSBqdXN0IHJldHVybiB0byBjb250aW51ZSBleGVjdXRpbmcgdGhlCiAgICAgICBjdXJyZW50IGJsb2NrLiAqLwogICAgaWYgKFZHXyhnZXRfSVApICh0aWQpICE9IHNhdmVkX3BjKSB7Ci0gICAgICBkbG9nKDEsICJ0aWQgJWQgJXMgUEMgY2hhbmdlZCBmcm9tICVzIHRvICVzXG4iLAorICAgICAgZGxvZygxLCAidGlkICV1ICVzIFBDIGNoYW5nZWQgZnJvbSAlcyB0byAlc1xuIiwKICAgICAgICAgICAgdGlkLCBWR18obmFtZV9vZl9UaHJlYWRTdGF0dXMpICh0c3QtPnN0YXR1cyksCiAgICAgICAgICAgIHN5bShzYXZlZF9wYywgLyogaXNfY29kZSAqLyBUcnVlKSwKICAgICAgICAgICAgc3ltKFZHXyhnZXRfSVApICh0aWQpLCAvKiBpc19jb2RlICovIFRydWUpKTsKQEAgLTc3Myw3ICs3NzMsNyBAQAogfQogCiAvKiBidXN5ID4gMCB3aGVuIGdkYnNlcnZlciBpcyBjdXJyZW50bHkgYmVpbmcgY2FsbGVkLgotICAgYnVzeSBpcyB1c2VkIHRvIHRvIGF2b2lkIHZnZGIgaW52b2tpbmcgZ2Ric2VydmVyCisgICBidXN5IGlzIHVzZWQgdG8gYXZvaWQgdmdkYiBpbnZva2luZyBnZGJzZXJ2ZXIKICAgIHdoaWxlIGdkYnNlcnZlciBieSBWYWxncmluZC4gKi8KIHN0YXRpYyB2b2xhdGlsZSBpbnQgYnVzeSA9IDA7CiAKQEAgLTc5MCw3ICs3OTAsNyBAQAogICAgICAgaWYgKGdkYnNlcnZlcl9jYWxsZWQgPT0gMCkgewogICAgICAgICAgZGxvZygxLCAiVkdfKGdkYnNlcnZlcikgY2FsbGVkIHRvIHRlcm1pbmF0ZSwgbm90aGluZyB0byB0ZXJtaW5hdGVcbiIpOwogICAgICAgfSBlbHNlIGlmIChnZGJzZXJ2ZXJfZXhpdGVkKSB7Ci0gICAgICAgICBkbG9nKDAsICJWR18oZ2Ric2VydmVyKSBjYWxsZWQgdG8gdGVybWluYXRlIGFnYWluICVkXG4iLAorICAgICAgICAgZGxvZygxLCAiVkdfKGdkYnNlcnZlcikgY2FsbGVkIHRvIHRlcm1pbmF0ZSBhZ2FpbiAlZFxuIiwKICAgICAgICAgICAgICAgZ2Ric2VydmVyX2V4aXRlZCk7CiAgICAgICB9IGVsc2UgewogICAgICAgICAgZ2Ric2VydmVyX3Rlcm1pbmF0ZSgpOwpAQCAtODI4LDYgKzgyOCw3IEBACiAKIHN0YXRpYyB2b2lkIGdpdmVfY29udHJvbF9iYWNrX3RvX3ZnZGIodm9pZCkKIHsKKyNpZiAhZGVmaW5lZChWR09fc29sYXJpcykKICAgIC8qIGNhdXNlIGEgU0lHU1RPUCB0byBiZSBzZW50IHRvIG91cnNlbGYsIHNvIHRoYXQgdmdkYiB0YWtlcyBjb250cm9sLgogICAgICAgdmdkYiB3aWxsIHRoZW4gcmVzdG9yZSB0aGUgc3RhY2sgc28gYXMgdG8gcmVzdW1lIHRoZSBhY3Rpdml0eQogICAgICAgYmVmb3JlIHRoZSBwdHJhY2UgKHR5cGljYWxseSBkb19zeXNjYWxsX1dSSykuICovCkBAIC04NDAsOCArODQxLDE3IEBACiAgICAgICBwdHJhY2UgaGFuZGxpbmcuICovCiAgICB2Z19hc3NlcnQyKDAsIAogICAgICAgICAgICAgICAidmdkYiBkaWQgbm90IHRvb2sgY29udHJvbC4gRGlkIHlvdSBraWxsIHZnZGIgP1xuIgotICAgICAgICAgICAgICAiYnVzeSAlZCB2Z2RiX2ludGVycnVwdGVkX3RpZCAlZFxuIiwKKyAgICAgICAgICAgICAgImJ1c3kgJWQgdmdkYl9pbnRlcnJ1cHRlZF90aWQgJXVcbiIsCiAgICAgICAgICAgICAgIGJ1c3ksIHZnZGJfaW50ZXJydXB0ZWRfdGlkKTsKKyNlbHNlIC8qIGRlZmluZWQoVkdPX3NvbGFyaXMpICovCisgICAvKiBPbiBTb2xhcmlzLCB0aGlzIGNvZGUgaXMgcnVuIHdpdGhpbiB0aGUgY29udGV4dCBvZiBhbiBhZ2VudCB0aHJlYWQKKyAgICAgIChzZWUgdmdkYi1pbnZva2VyLXNvbGFyaXMuYyBhbmQgIlBDQUdFTlQiIGNvbnRyb2wgbWVzc2FnZSBpbgorICAgICAgcHJvYyg0KSkuIEV4aXQgdGhlIGFnZW50IHRocmVhZCBub3cuCisgICAgKi8KKyAgIFN5c1JlcyBzcmVzID0gVkdfKGRvX3N5c2NhbGwwKShTWVNfbHdwX2V4aXQpOworICAgaWYgKHNyX2lzRXJyb3Ioc3JlcykpCisgICAgICB2Z19hc3NlcnQyKDAsICJUaGUgYWdlbnQgdGhyZWFkIGNvdWxkIG5vdCBiZSBleGl0ZWRcbiIpOworI2VuZGlmIC8qICFkZWZpbmVkKFZHT19zb2xhcmlzKSAqLwogfQogCiAvKiBVc2luZyBwdHJhY2UgY2FsbHMsIHZnZGIgd2lsbCBmb3JjZSBhbiBpbnZvY2F0aW9uIG9mIGdkYnNlcnZlci4KQEAgLTkwMiwxMiArOTEyLDEyIEBACiAgICAgICBGcm9tIGhlcmUgb253YXJkcywgZnVuY3Rpb24gY2FsbHMgYXJlIG9rOiBpdCBpcwogICAgICAgc2FmZSB0byBjYWxsIHZhbGdyaW5kIGNvcmUgZnVuY3Rpb25zOiBhbGwgdGhyZWFkcyBhcmUgYmxvY2tlZCBpbgogICAgICAgYSBzeXN0ZW0gY2FsbCBvciBhcmUgeWllbGRpbmcgb3IgLi4uICovCi0gICBkbG9nKDEsICJpbnZva2VfZ2Ric2VydmVyIHJ1bm5pbmdfdGlkICVkIHZnZGJfaW50ZXJydXB0ZWRfdGlkICVkXG4iLAorICAgZGxvZygxLCAiaW52b2tlX2dkYnNlcnZlciBydW5uaW5nX3RpZCAldSB2Z2RiX2ludGVycnVwdGVkX3RpZCAldVxuIiwKICAgICAgICAgVkdfKHJ1bm5pbmdfdGlkKSwgdmdkYl9pbnRlcnJ1cHRlZF90aWQpOwogICAgY2FsbF9nZGJzZXJ2ZXIgKHZnZGJfaW50ZXJydXB0ZWRfdGlkLCB2Z2RiX3JlYXNvbik7CiAgICB2Z2RiX2ludGVycnVwdGVkX3RpZCA9IDA7CiAgICBkbG9nKDEsCi0gICAgICAgICJleGl0IGludm9rZV9nZGJzZXJ2ZXIgcnVubmluZ190aWQgJWRcbiIsIFZHXyhydW5uaW5nX3RpZCkpOworICAgICAgICAiZXhpdCBpbnZva2VfZ2Ric2VydmVyIHJ1bm5pbmdfdGlkICV1XG4iLCBWR18ocnVubmluZ190aWQpKTsKICAgIGdpdmVfY29udHJvbF9iYWNrX3RvX3ZnZGIoKTsKIAogICAgdmdfYXNzZXJ0MigwLCAiZW5kIG9mIGludm9rZV9nZGJzZXJ2ZXIgcmVhY2hlZCIpOwpAQCAtOTM4LDcgKzk0OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkSWQgdGlkKQogewogICAgZGxvZygxLCAiVkcgY29yZSBjYWxsaW5nICVzICIKLSAgICAgICAgInZraV9uciAlZCAlcyBnZGJfbnIgJWQgJXMgdGlkICVkXG4iLCAKKyAgICAgICAgInZraV9uciAlZCAlcyBnZGJfbnIgJXUgJXMgdGlkICV1XG4iLCAKICAgICAgICAgd2hvLAogICAgICAgICBpbmZvLT5zaV9zaWdubywgVkdfKHNpZ25hbWUpKGluZm8tPnNpX3NpZ25vKSwKICAgICAgICAgdGFyZ2V0X3NpZ25hbF9mcm9tX2hvc3QgKGluZm8tPnNpX3NpZ25vKSwKQEAgLTEwMDQsNyArMTAxNCw3IEBACiAKIHZvaWQgVkdfKGdkYnNlcnZlcl9leGl0KSAoVGhyZWFkSWQgdGlkLCBWZ1NjaGVkUmV0dXJuQ29kZSB0aWRzX3NjaGVkcmV0Y29kZSkKIHsKLSAgIGRsb2coMSwgIlZHIGNvcmUgY2FsbGluZyBWR18oZ2Ric2VydmVyX2V4aXQpIHRpZCAlZCB3aWxsIGV4aXRcbiIsIHRpZCk7CisgICBkbG9nKDEsICJWRyBjb3JlIGNhbGxpbmcgVkdfKGdkYnNlcnZlcl9leGl0KSB0aWQgJXUgd2lsbCBleGl0XG4iLCB0aWQpOwogICAgaWYgKHJlbW90ZV9jb25uZWN0ZWQoKSkgewogICAgICAgLyogTWFrZSBzdXJlIHZnZGIga25vd3Mgd2UgYXJlIGFib3V0IHRvIGRpZSBhbmQgd2h5LiAqLwogICAgICAgc3dpdGNoKHRpZHNfc2NoZWRyZXRjb2RlKSB7CkBAIC0xNDk1LDcgKzE1MDUsNyBAQAogICAgVkdfKHVtc2cpCiAgICAgICAoIm5yIG9mIGNhbGxzIHRvIGdkYnNlcnZlcjogJWRcbiIKICAgICAgICAic2luZ2xlIHN0ZXBwaW5nICVkXG4iCi0gICAgICAgImludGVycnVwdHMgaW50cl90aWQgJWQgZ3Nfbm9uX2J1c3kgJWQgZ3NfYnVzeSAlZCB0aWRfbm9uX2ludHIgJWRcbiIKKyAgICAgICAiaW50ZXJydXB0cyBpbnRyX3RpZCAldSBnc19ub25fYnVzeSAlZCBnc19idXN5ICVkIHRpZF9ub25faW50ciAlZFxuIgogICAgICAgICJnZGJzZXJ2ZWQgYWRkcmVzc2VzICVkICgtMSA9IG5vdCBpbml0aWFsaXplZClcbiIKICAgICAgICAid2F0Y2hwb2ludHMgJWQgKC0xID0gbm90IGluaXRpYWxpemVkKVxuIgogICAgICAgICJ2Z2RiLWVycm9yICVkXG4iCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvcmVtb3RlLXV0aWxzLmMgYi9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvcmVtb3RlLXV0aWxzLmMKaW5kZXggOTc4ZTA3Yy4uZjZmM2QwYiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fZ2Ric2VydmVyL3JlbW90ZS11dGlscy5jCisrKyBiL2NvcmVncmluZC9tX2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwpAQCAtNTMsNyArNTMsNyBAQAogICAgICAgVkdfKGRtc2cpKCJjdXJyZW50IHNpZ21hc2sgdmFsdWUgeyAiKTsKICAgICAgIGZvciAoaSA9IDE7IGkgPD0gX1ZLSV9OU0lHOyBpKyspIHsKICAgICAgICAgIGlmIChWR18oc2lnaXNtZW1iZXIpKCZjdXJzaWdzZXQsIGkpKQotICAgICAgICAgICAgVkdfKGRtc2cpKCIldSAiLCBpKTsKKyAgICAgICAgICAgIFZHXyhkbXNnKSgiJWQgIiwgaSk7CiAgICAgICB9CiAgICAgICBWR18oZG1zZykoIn1cbiIpOwogICAgfQpAQCAtMzEwLDE3ICszMTAsMjAgQEAKIHsKICAgIGNvbnN0IEhDaGFyICp1c2VyLCAqaG9zdDsKICAgIGludCBsZW47Ci0gICBWZ2RiU2hhcmVkIHZnZGJpbml0ID0gCisgICBWZ2RiU2hhcmVkIHZnZGJpbml0OworICAgY29uc3QgaW50IHBpZCA9IFZHXyhnZXRwaWQpKCk7CisgICBBZGRyIGFkZHJfc2hhcmVkOworICAgU3lzUmVzIG87CisgICBpbnQgc2hhcmVkX21lbV9mZCA9IElOVkFMSURfREVTQ1JJUFRPUjsKKworICAgVkdfKG1lbXNldCkgKCZ2Z2RiaW5pdCwgMCwgc2l6ZW9mIChWZ2RiU2hhcmVkKSk7CisgICB2Z2RiaW5pdCA9IChWZ2RiU2hhcmVkKSAKICAgICAgIHswLCAwLCAoQWRkcikgVkdfKGludm9rZV9nZGJzZXJ2ZXIpLAogICAgICAgIChBZGRyKSBWR18odGhyZWFkcyksIFZHX05fVEhSRUFEUywgc2l6ZW9mKFRocmVhZFN0YXRlKSwgCiAgICAgICAgb2Zmc2V0b2YoVGhyZWFkU3RhdGUsIHN0YXR1cyksCiAgICAgICAgb2Zmc2V0b2YoVGhyZWFkU3RhdGUsIG9zX3N0YXRlKSArIG9mZnNldG9mKFRocmVhZE9Tc3RhdGUsIGx3cGlkKSwKICAgICAgICAwfTsKLSAgIGNvbnN0IGludCBwaWQgPSBWR18oZ2V0cGlkKSgpOwotICAgQWRkciBhZGRyX3NoYXJlZDsKLSAgIFN5c1JlcyBvOwotICAgaW50IHNoYXJlZF9tZW1fZmQgPSBJTlZBTElEX0RFU0NSSVBUT1I7Ci0gICAKKwogICAgdXNlciA9IFZHXyhnZXRlbnYpKCJMT0dOQU1FIik7CiAgICBpZiAodXNlciA9PSBOVUxMKSB1c2VyID0gVkdfKGdldGVudikoIlVTRVIiKTsKICAgIGlmICh1c2VyID09IE5VTEwpIHVzZXIgPSAiPz8/IjsKQEAgLTU5OCw3ICs2MDEsNyBAQAogICAgZWxzZSBpZiAoYSA+PSAnYScgJiYgYSA8PSAnZicpCiAgICAgICByZXR1cm4gYSAtICdhJyArIDEwOwogICAgZWxzZQotICAgICAgZXJyb3IgKCJSZXBseSBjb250YWlucyBpbnZhbGlkIGhleCBkaWdpdCAweCV4XG4iLCBhKTsKKyAgICAgZXJyb3IgKCJSZXBseSBjb250YWlucyBpbnZhbGlkIGhleCBkaWdpdCAweCV4XG4iLCAodW5zaWduZWQpYSk7CiAgICByZXR1cm4gMDsKIH0KIApAQCAtODc4LDcgKzg4MSw3IEBACiAKICAgICAgIGNjID0gcmVhZGNoYXIgKDEpOwogICAgICAgaWYgKGNjID4gMCkKLSAgICAgICAgIGRsb2coMywgIltyZWNlaXZlZCAnJWMnICgweCV4KV1cbiIsIGNjLCBjYyk7CisgICAgICAgICBkbG9nKDMsICJbcmVjZWl2ZWQgJyVjJyAoMHgleCldXG4iLCBjYywgKHVuc2lnbmVkKWNjKTsKIAogICAgICAgaWYgKGNjIDw9IDApIHsKICAgICAgICAgIGlmIChjYyA9PSAwKQpAQCAtMTAzOCw3ICsxMDQxLDcgQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBkbG9nICgwLCAiQmFkIGNoZWNrc3VtLCBzZW50c3VtPTB4JXgsIGNzdW09MHgleCwgYnVmPSVzXG4iLAotICAgICAgICAgICAgKGMxIDw8IDQpICsgYzIsIGNzdW0sIGJ1Zik7CisgICAgICAgICAgICAodW5zaWduZWQpKGMxIDw8IDQpICsgYzIsICh1bnNpZ25lZCljc3VtLCBidWYpOwogICAgICAgaWYgKCFlbnN1cmVfd3JpdGVfcmVtb3RlX2Rlc2MoKSkgewogICAgICAgICAgZGxvZygxLCAiZ2V0cGt0KHdyaXRlIG5hY2spIG5vIHdyaXRlX3JlbW90ZV9kZXNjIik7CiAgICAgICB9CkBAIC0xMTY0LDcgKzExNjcsNyBAQAogICAgICAgICAgICAgKChzdHJ1Y3QgaW5mZXJpb3JfbGlzdF9lbnRyeSAqKWN1cnJlbnRfaW5mZXJpb3IpLT5pZDsKICAgICAgICAgIGdkYl9pZF9mcm9tX3dhaXQgPSB0aHJlYWRfdG9fZ2RiX2lkIChjdXJyZW50X2luZmVyaW9yKTsKICAgICAgICAgIAotICAgICAgICAgZGxvZygxLCAiV3JpdGluZyByZXN1bWUgcmVwbHkgZm9yICVsZFxuIiwgdGhyZWFkX2Zyb21fd2FpdCk7CisgICAgICAgICBkbG9nKDEsICJXcml0aW5nIHJlc3VtZSByZXBseSBmb3IgJWx1XG4iLCB0aHJlYWRfZnJvbV93YWl0KTsKICAgICAgICAgIC8qIFRoaXMgaWYgKDEpIG91Z2h0IHRvIGJlIHVubmVjZXNzYXJ5LiAgQnV0IHJlbW90ZV93YWl0IGluIEdEQgogICAgICAgICAgICAgd2lsbCBjbGFpbSB0aGlzIGV2ZW50IGJlbG9uZ3MgdG8gaW5mZXJpb3JfcHRpZCBpZiB3ZSBkbyBub3QKICAgICAgICAgICAgIHNwZWNpZnkgYSB0aHJlYWQsIGFuZCB0aGVyZSdzIG5vIHdheSBmb3IgZ2Ric2VydmVyIHRvIGtub3cKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2dkYnNlcnZlci9zZXJ2ZXIuYyBiL2NvcmVncmluZC9tX2dkYnNlcnZlci9zZXJ2ZXIuYwppbmRleCA2MzYxYzVhLi4yM2E0M2UwIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvc2VydmVyLmMKKysrIGIvY29yZWdyaW5kL21fZ2Ric2VydmVyL3NlcnZlci5jCkBAIC0yNDQsMTAgKzI0NCwxMSBAQAogIiAgdi5kbyAgIGV4cGVuc2l2ZV9zYW5pdHlfY2hlY2tfZ2VuZXJhbCA6IGRvIGFuIGV4cGVuc2l2ZSBzYW5pdHkgY2hlY2sgbm93XG4iCiAiICB2LmluZm8gZ2Ric2VydmVyX3N0YXR1cyA6IHNob3cgZ2Ric2VydmVyIHN0YXR1c1xuIgogIiAgdi5pbmZvIG1lbW9yeSBbYXNwYWNlbWdyXSA6IHNob3cgdmFsZ3JpbmQgaGVhcCBtZW1vcnkgc3RhdHNcbiIKLSIgICAgICh3aXRoIGFzcGFjZW1nciBhcmcsIGFsc28gc2hvd3MgdmFsZ3JpbmQgc2VnbWVudHMgb24gbG9nIG91cHV0KVxuIgorIiAgICAgKHdpdGggYXNwYWNlbWdyIGFyZywgYWxzbyBzaG93cyB2YWxncmluZCBzZWdtZW50cyBvbiBsb2cgb3V0cHV0KVxuIgogIiAgdi5pbmZvIGV4ZWN0eHQgICAgICAgICAgOiBzaG93IHN0YWNrdHJhY2VzIGFuZCBzdGF0cyBvZiBhbGwgZXhlY29udGV4dHNcbiIKICIgIHYuaW5mbyBzY2hlZHVsZXIgICAgICAgIDogc2hvdyB2YWxncmluZCB0aHJlYWQgc3RhdGUgYW5kIHN0YWNrdHJhY2VcbiIKICIgIHYuaW5mbyBzdGF0cyAgICAgICAgICAgIDogc2hvdyB2YXJpb3VzIHZhbGdyaW5kIGFuZCB0b29sIHN0YXRzXG4iCisiICB2LmluZm8gdW53aW5kIDxhZGRyPiBbPGxlbj5dIDogc2hvdyB1bndpbmQgZGVidWcgaW5mbyBmb3IgPGFkZHI+IC4uIDxhZGRyK2xlbj5cbiIKICIgIHYuc2V0IGRlYnVnbG9nIDxsZXZlbD4gIDogc2V0IHZhbGdyaW5kIGRlYnVnIGxvZyBsZXZlbCB0byA8bGV2ZWw+XG4iCiAiICB2LnNldCBob3N0dmlzaWJpbGl0eSBbeWVzKnxub10gOiAoZW4vZGlzKWFibGVzIGFjY2VzcyBieSBnZGIvZ2Ric2VydmVyIHRvXG4iCiAiICAgIFZhbGdyaW5kIGludGVybmFsIGhvc3Qgc3RhdHVzL21lbW9yeVxuIgpAQCAtMzY0LDcgKzM2NSw3IEBACiAgICAgICB3Y21kID0gc3RydG9rX3IgKE5VTEwsICIgIiwgJnNzYXZlcHRyKTsKICAgICAgIHN3aXRjaCAoa3dkaWQgPSBWR18oa2V5d29yZF9pZCkgCiAgICAgICAgICAgICAgICgiYWxsX2Vycm9ycyBuX2VycnNfZm91bmQgbGFzdF9lcnJvciBnZGJzZXJ2ZXJfc3RhdHVzIG1lbW9yeSIKLSAgICAgICAgICAgICAgICIgc2NoZWR1bGVyIHN0YXRzIG9wZW5fZmRzIGV4ZWN0eHQgbG9jYXRpb24iLAorICAgICAgICAgICAgICAgIiBzY2hlZHVsZXIgc3RhdHMgb3Blbl9mZHMgZXhlY3R4dCBsb2NhdGlvbiB1bndpbmQiLAogICAgICAgICAgICAgICAgd2NtZCwga3dkX3JlcG9ydF9hbGwpKSB7CiAgICAgICBjYXNlIC0yOgogICAgICAgY2FzZSAtMTogCkBAIC0zNzQsNyArMzc1LDcgQEAKICAgICAgICAgIFZHXyhzaG93X2FsbF9lcnJvcnMpKC8qIHZlcmJvc2l0eSAqLyAyLCAvKiB4bWwgKi8gRmFsc2UpOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlICAxOiAvLyBuX2VycnNfZm91bmQKLSAgICAgICAgIFZHXyhwcmludGYpICgibl9lcnJzX2ZvdW5kICVkIG5fZXJyc19zaG93biAlZCAodmdkYi1lcnJvciAlZCkgJXNcbiIsCisgICAgICAgICBWR18ocHJpbnRmKSAoIm5fZXJyc19mb3VuZCAldSBuX2VycnNfc2hvd24gJXUgKHZnZGItZXJyb3IgJWQpICVzXG4iLAogICAgICAgICAgICAgICAgICAgICAgIFZHXyhnZXRfbl9lcnJzX2ZvdW5kKSAoKSwKICAgICAgICAgICAgICAgICAgICAgICBWR18oZ2V0X25fZXJyc19zaG93bikgKCksCiAgICAgICAgICAgICAgICAgICAgICAgVkdfKGR5bl92Z2RiX2Vycm9yKSwKQEAgLTQ1Niw2ICs0NTcsMTcgQEAKICAgICAgICAgIHJldCA9IDE7CiAgICAgICAgICBicmVhazsKICAgICAgIH0KKyAgICAgIGNhc2UgMTA6IHsgLyogdW53aW5kICovCisgICAgICAgICBBZGRyIGFkZHJlc3M7CisgICAgICAgICBTaXplVCBzeiA9IDE7CisgICAgICAgICBpZiAoVkdfKHN0cnRva19nZXRfYWRkcmVzc19hbmRfc2l6ZSkgKCZhZGRyZXNzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN6LCAmc3NhdmVwdHIpKSB7CisgICAgICAgICAgICBWR18ocHBVbndpbmRJbmZvKSAoYWRkcmVzcywgYWRkcmVzcyArIHN6IC0gMSk7CisgICAgICAgICB9CisgICAgICAgICByZXQgPSAxOworICAgICAgICAgYnJlYWs7CisgICAgICB9CisKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB2Z19hc3NlcnQoMCk7CiAgICAgICB9CkBAIC03NTEsMTIgKzc2MywxMiBAQAogICAgICAgICAgICAgbGVuID0gKFBCVUZTSVogKyBQT1ZFUkhTSVopIC8gMjsKICAgICAgICAgIGNoYXIgc3RhdHVzW2xlbl07CiAgICAgICAgICBpZiAodHN0LT50aHJlYWRfbmFtZSkgewotICAgICAgICAgICAgVkdfKHNucHJpbnRmKSAoc3RhdHVzLCBzaXplb2Yoc3RhdHVzKSwgInRpZCAlZCAlcyAlcyIsCisgICAgICAgICAgICBWR18oc25wcmludGYpIChzdGF0dXMsIHNpemVvZihzdGF0dXMpLCAidGlkICV1ICVzICVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzdC0+dGlkLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhuYW1lX29mX1RocmVhZFN0YXR1cykodHN0LT5zdGF0dXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHN0LT50aHJlYWRfbmFtZSk7CiAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgVkdfKHNucHJpbnRmKSAoc3RhdHVzLCBzaXplb2Yoc3RhdHVzKSwgInRpZCAlZCAlcyIsCisgICAgICAgICAgICBWR18oc25wcmludGYpIChzdGF0dXMsIHNpemVvZihzdGF0dXMpLCAidGlkICV1ICVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzdC0+dGlkLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhuYW1lX29mX1RocmVhZFN0YXR1cykodHN0LT5zdGF0dXMpKTsKICAgICAgICAgIH0KQEAgLTg4OCw3ICs5MDAsNyBAQAogICAgICAgICAgVVdvcmQgKmNsaWVudF9hdXh2ID0gVkdfKGNsaWVudF9hdXh2KTsKICAgICAgICAgIHVuc2lnbmVkIGludCBjbGllbnRfYXV4dl9sZW4gPSAwOwogICAgICAgICAgd2hpbGUgKCpjbGllbnRfYXV4diAhPSAwKSB7Ci0gICAgICAgICAgICBkbG9nKDQsICJhdXh2ICVsbGQgJWxseFxuIiwKKyAgICAgICAgICAgIGRsb2coNCwgImF1eHYgJWxsdSAlbGx4XG4iLAogICAgICAgICAgICAgICAgICAoVUxvbmcpKmNsaWVudF9hdXh2LAogICAgICAgICAgICAgICAgICAoVUxvbmcpKihjbGllbnRfYXV4disxKSk7CiAgICAgICAgICAgICBjbGllbnRfYXV4disrOwpAQCAtODk2LDcgKzkwOCw3IEBACiAgICAgICAgICAgICBjbGllbnRfYXV4dl9sZW4gKz0gMiAqIHNpemVvZihVV29yZCk7CiAgICAgICAgICB9CiAgICAgICAgICBjbGllbnRfYXV4dl9sZW4gKz0gMiAqIHNpemVvZihVV29yZCk7Ci0gICAgICAgICBkbG9nKDQsICJhdXh2IGxlbiAlZFxuIiwgY2xpZW50X2F1eHZfbGVuKTsKKyAgICAgICAgIGRsb2coNCwgImF1eHYgbGVuICV1XG4iLCBjbGllbnRfYXV4dl9sZW4pOwogCiAgICAgICAgICBpZiAob2ZzID49IGNsaWVudF9hdXh2X2xlbikKICAgICAgICAgICAgIG4gPSAtMTsKQEAgLTEwMTgsNyArMTAzMCw3IEBACiAgICAvKiBQcm90b2NvbCBmZWF0dXJlcyBxdWVyeS4gICovCiAgICBpZiAoc3RybmNtcCAoInFTdXBwb3J0ZWQiLCBhcmdfb3duX2J1ZiwgMTApID09IDAKICAgICAgICAmJiAoYXJnX293bl9idWZbMTBdID09ICc6JyB8fCBhcmdfb3duX2J1ZlsxMF0gPT0gJ1wwJykpIHsKLSAgICAgIFZHXyhzcHJpbnRmKSAoYXJnX293bl9idWYsICJQYWNrZXRTaXplPSV4IiwgUEJVRlNJWiAtIDEpOworICAgICAgVkdfKHNwcmludGYpIChhcmdfb3duX2J1ZiwgIlBhY2tldFNpemU9JXgiLCAoVUludClQQlVGU0laIC0gMSk7CiAgICAgICAvKiBOb3RlOiBtYXggcGFja2V0IHNpemUgaW5jbHVkaW5nIGZyYW1lIGFuZCBjaGVja3N1bSwgYnV0IHdpdGhvdXQKICAgICAgICAgIHRyYWlsaW5nIG51bGwgYnl0ZSwgd2hpY2ggaXMgbm90IHNlbnQvcmVjZWl2ZWQuICovCiAKQEAgLTE0MDIsNyArMTQxNCw3IEBACiAgICAgICAgICBWR18odW1zZykgKCJcbkNoaWxkIGV4aXRlZCB3aXRoIHN0YXR1cyAlZFxuIiwgemlnbmFsKTsKICAgICAgIGlmIChzdGF0dXMgPT0gJ1gnKQogICAgICAgICAgVkdfKHVtc2cpICgiXG5DaGlsZCB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsID0gMHgleCAoJXMpXG4iLAotICAgICAgICAgICAgICAgICAgICB0YXJnZXRfc2lnbmFsX3RvX2hvc3QgKHppZ25hbCksCisgICAgICAgICAgICAgICAgICAgIChVSW50KXRhcmdldF9zaWduYWxfdG9faG9zdCAoemlnbmFsKSwKICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3NpZ25hbF90b19uYW1lICh6aWduYWwpKTsKICAgICAgIGlmIChzdGF0dXMgPT0gJ1cnIHx8IHN0YXR1cyA9PSAnWCcpIHsKICAgICAgICAgIFZHXyh1bXNnKSAoIlByb2Nlc3MgZXhpdGluZ1xuIik7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvc2lnbmFscy5jIGIvY29yZWdyaW5kL21fZ2Ric2VydmVyL3NpZ25hbHMuYwppbmRleCA2OWFhOWIxLi5hOTEyOGE2IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvc2lnbmFscy5jCisrKyBiL2NvcmVncmluZC9tX2dkYnNlcnZlci9zaWduYWxzLmMKQEAgLTc0MSw3ICs3NDEsNyBAQAogICAgICAgfQogI2VuZGlmCiAgICAgICBlcnJvciAoIlZhbGdyaW5kIEdEQlNFUlZFUiBidWc6IChkb190YXJnZXRfc2lnbmFsX3RvX2hvc3QpOiIKLSAgICAgICAgICAgICAiIHVucmVjb2duaXplZCB0YXJnZXQgc2lnbmFsICVkXG4iLCBvdXJzaWcpOworICAgICAgICAgICAgICIgdW5yZWNvZ25pemVkIHRhcmdldCBzaWduYWwgJXVcbiIsIG91cnNpZyk7CiAgICAgICAqb3Vyc2lnX29rID0gMDsKICAgICAgIHJldHVybiAwOwogICAgfQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fZ2Ric2VydmVyL3RhcmdldC5jIGIvY29yZWdyaW5kL21fZ2Ric2VydmVyL3RhcmdldC5jCmluZGV4IDY0Y2U1YTMuLjNkNTRiNzUgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2dkYnNlcnZlci90YXJnZXQuYworKysgYi9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvdGFyZ2V0LmMKQEAgLTQ0LDcgKzQ0LDcgQEAKIGNoYXIgKmltYWdlX3B0aWQodW5zaWduZWQgbG9uZyBwdGlkKQogewogICBzdGF0aWMgY2hhciByZXN1bHRbNTBdOyAgICAvLyBsYXJnZSBlbm91Z2gKLSAgVkdfKHNwcmludGYpIChyZXN1bHQsICJpZCAlbGQiLCBwdGlkKTsKKyAgVkdfKHNwcmludGYpIChyZXN1bHQsICJpZCAlbHUiLCBwdGlkKTsKICAgcmV0dXJuIHJlc3VsdDsKIH0KICNkZWZpbmUgZ2V0X3RocmVhZChpbmYpICgoc3RydWN0IHRocmVhZF9pbmZvICopKGluZikpCkBAIC03NCw3ICs3NCw3IEBACiAgIC8qIGNhbGwgYWRkX3RocmVhZCBmb3IgYWxsIHZhbGdyaW5kIHRocmVhZHMgbm90IGtub3duIGluIGdkYiBhbGxfdGhyZWFkcyAqLwogICBmb3IgKHRpZCA9IDE7IHRpZCA8IFZHX05fVEhSRUFEUzsgdGlkKyspIHsKIAotI2RlZmluZSBMT0NBTF9USFJFQURfVFJBQ0UgIiB0aSogJXAgdmd0aWQgJWQgc3RhdHVzICVzIGFzIGdkYiBwdGlkICVzIGx3cGlkICVkXG4iLCBcCisjZGVmaW5lIExPQ0FMX1RIUkVBRF9UUkFDRSAiIHRpKiAlcCB2Z3RpZCAldSBzdGF0dXMgJXMgYXMgZ2RiIHB0aWQgJXMgbHdwaWQgJWRcbiIsIFwKICAgICAgICAgdGksIHRpZCwgVkdfKG5hbWVfb2ZfVGhyZWFkU3RhdHVzKSAodHMtPnN0YXR1cyksIFwKICAgICAgICAgaW1hZ2VfcHRpZCAocHRpZCksIHRzLT5vc19zdGF0ZS5sd3BpZAogCkBAIC0yOTMsNyArMjkzLDcgQEAKICAgICAgIGlmICgqb3Vyc3RhdHVzID09ICdYJykgewogICAgICAgICAgc2lnID0gdGFyZ2V0X3NpZ25hbF9mcm9tX2hvc3QoZXhpdF9jb2RlX3RvX3JlcG9ydCk7CiAgICAgICAgICBleGl0X2NvZGVfdG9fcmVwb3J0ID0gMDsKLSAgICAgICAgIGRsb2coMSwgImV4aXQgdmFsZ3JpbmRfd2FpdCBzdGF0dXMgWCBzaWduYWwgJWRcbiIsIHNpZyk7CisgICAgICAgICBkbG9nKDEsICJleGl0IHZhbGdyaW5kX3dhaXQgc3RhdHVzIFggc2lnbmFsICV1XG4iLCBzaWcpOwogICAgICAgICAgcmV0dXJuIHNpZzsKICAgICAgIH0KICAgIH0KQEAgLTMyMCw3ICszMjAsNyBAQAogICAgc3RvcF9wYyA9ICgqdGhlX2xvd190YXJnZXQuZ2V0X3BjKSAoKTsKICAgIAogICAgZGxvZygxLAotICAgICAgICAiZXhpdCB2YWxncmluZF93YWl0IHN0YXR1cyBUIHB0aWQgJXMgc3RvcF9wYyAlcyBzaWduYWwgJWRcbiIsIAorICAgICAgICAiZXhpdCB2YWxncmluZF93YWl0IHN0YXR1cyBUIHB0aWQgJXMgc3RvcF9wYyAlcyBzaWduYWwgJXVcbiIsIAogICAgICAgICBpbWFnZV9wdGlkICh3cHRpZCksIHN5bSAoc3RvcF9wYyksIHNpZyk7CiAgICByZXR1cm4gc2lnOwogfQpAQCAtMzUxLDcgKzM1MSw3IEBACiAgICAgICBpZiAobW9kICYmIFZHXyhkZWJ1Z0xvZ19nZXRMZXZlbCkoKSA+IDEpIHsKICAgICAgICAgIGNoYXIgYnVmaW1hZ2UgWzIqc2l6ZSArIDFdOwogICAgICAgICAgaGV4aW1hZ2UgKGJ1ZmltYWdlLCBidWYsIHNpemUpOwotICAgICAgICAgZGxvZygzLCAiZmV0Y2hlZCByZWdpc3RlciAlZCBzaXplICVkIG5hbWUgJXMgdmFsdWUgJXMgdGlkICVkIHN0YXR1cyAlc1xuIiwgCisgICAgICAgICBkbG9nKDMsICJmZXRjaGVkIHJlZ2lzdGVyICVkIHNpemUgJWQgbmFtZSAlcyB2YWx1ZSAlcyB0aWQgJXUgc3RhdHVzICVzXG4iLCAKICAgICAgICAgICAgICAgcmVnbm8sIHNpemUsIHRoZV9sb3dfdGFyZ2V0LnJlZ19kZWZzW3JlZ25vXS5uYW1lLCBidWZpbWFnZSwgCiAgICAgICAgICAgICAgIHRpZCwgVkdfKG5hbWVfb2ZfVGhyZWFkU3RhdHVzKSAodHN0LT5zdGF0dXMpKTsKICAgICAgIH0KQEAgLTQxOSw3ICs0MTksNyBAQAogICAgICAgICAgICAgaGV4aW1hZ2UgKGJ1ZmltYWdlLCBidWYsIHNpemUpOwogICAgICAgICAgICAgZGxvZygyLCAKICAgICAgICAgICAgICAgICAgInN0b3JlZCByZWdpc3RlciAlZCBzaXplICVkIG5hbWUgJXMgdmFsdWUgJXMgIgotICAgICAgICAgICAgICAgICAidGlkICVkIHN0YXR1cyAlc1xuIiwgCisgICAgICAgICAgICAgICAgICJ0aWQgJXUgc3RhdHVzICVzXG4iLCAKICAgICAgICAgICAgICAgICAgcmVnbm8sIHNpemUsIHRoZV9sb3dfdGFyZ2V0LnJlZ19kZWZzW3JlZ25vXS5uYW1lLCBidWZpbWFnZSwgCiAgICAgICAgICAgICAgICAgIHRpZCwgVkdfKG5hbWVfb2ZfVGhyZWFkU3RhdHVzKSAodHN0LT5zdGF0dXMpKTsKICAgICAgICAgIH0KQEAgLTY4MSw3ICs2ODEsNyBAQAogCiAgICAvLyBDaGVjayB3ZSBjYW4gcmVhZCBhdCBsZWFzdCAyIGFkZHJlc3MgYXQgdGhlIGJlZ2lubmluZyBvZiBkdHYuCiAgICBDSEVDS19ERVJFRihkdHYsIDIqc2l6ZW9mKENPUkVfQUREUiksICJkdHYgMiBmaXJzdCBlbnRyaWVzIik7Ci0gICBkbG9nICgyLCAidGlkICVkIGR0diAlcFxuIiwgdHN0LT50aWQsICh2b2lkKilkdHYpOworICAgZGxvZyAoMiwgInRpZCAldSBkdHYgJXBcbiIsIHRzdC0+dGlkLCAodm9pZCopZHR2KTsKIAogICAgLy8gQ2hlY2sgd2UgY2FuIHJlYWQgdGhlIG1vZGlkCiAgICBDSEVDS19ERVJFRihsbStsbV9tb2RpZF9vZmZzZXQsIHNpemVvZih1bnNpZ25lZCBsb25nIGludCksICJsaW5rX21hcCBtb2RpZCIpOwpAQCAtNzY2LDcgKzc2Niw3IEBACiAgIHsKICAgICAgVGhyZWFkU3RhdGUgKnRzdCA9IChUaHJlYWRTdGF0ZSAqKSBpbmZlcmlvcl90YXJnZXRfZGF0YSAoY3VycmVudF9pbmZlcmlvcik7CiAgICAgIFRocmVhZElkIHRpZCA9IHRzdC0+dGlkOwotICAgICBkbG9nKDEsICJzZXRfZGVzaXJlZF9pbmZlcmlvciB1c2VfZ2VuZXJhbCAlZCBmb3VuZCAlcCB0aWQgJWQgbHdwaWQgJWRcbiIsCisgICAgIGRsb2coMSwgInNldF9kZXNpcmVkX2luZmVyaW9yIHVzZV9nZW5lcmFsICVkIGZvdW5kICVwIHRpZCAldSBsd3BpZCAlZFxuIiwKICAgICAgICAgICB1c2VfZ2VuZXJhbCwgZm91bmQsIHRpZCwgdHN0LT5vc19zdGF0ZS5sd3BpZCk7CiAgIH0KIH0KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2dkYnNlcnZlci90YXJnZXQuaCBiL2NvcmVncmluZC9tX2dkYnNlcnZlci90YXJnZXQuaAppbmRleCAxY2FjYzFlLi4yZWE4ZGU5IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvdGFyZ2V0LmgKKysrIGIvY29yZWdyaW5kL21fZ2Ric2VydmVyL3RhcmdldC5oCkBAIC0yMTEsNyArMjExLDcgQEAKICAgIFJldHVybnMgVHJ1ZSBpZiB0aGUgYWRkcmVzcyBvZiB0aGUgdmFyaWFibGUgY291bGQgYmUgZm91bmQuCiAgICAgICAqdGxzX2FkZHIgaXMgdGhlbiBzZXQgdG8gdGhpcyBhZGRyZXNzLgogICAgUmV0dXJucyBGYWxzZSBpZiB0bHMgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGFyY2gsIG9yCi0gICBpZiBhbiBlcnJvciBvY2N1cmVkLiAqdGxzX2FkZHIgaXMgc2V0IHRvIE5VTEwuICovCisgICBpZiBhbiBlcnJvciBvY2N1cnJlZC4gKnRsc19hZGRyIGlzIHNldCB0byBOVUxMLiAqLwogZXh0ZXJuIEJvb2wgdmFsZ3JpbmRfZ2V0X3Rsc19hZGRyIChUaHJlYWRTdGF0ZSAqdHN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT1JFX0FERFIgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT1JFX0FERFIgbG0sCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvdXRpbHMuYyBiL2NvcmVncmluZC9tX2dkYnNlcnZlci91dGlscy5jCmluZGV4IDUxMWIxZTYuLjgzMjk1YTEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2dkYnNlcnZlci91dGlscy5jCisrKyBiL2NvcmVncmluZC9tX2dkYnNlcnZlci91dGlscy5jCkBAIC0zMCw3ICszMCw3IEBACiB7CiAgICB2YV9saXN0IGFyZ3M7CiAgICBpZiAoc3JfaXNFcnJvciAoc3IpKQotICAgICAgVkdfKHVtc2cpICgiZXJyb3IgJWxkICVzXG4iLCBzcl9FcnIoc3IpLCBWR18oc3RyZXJyb3IpIChzcl9FcnIoc3IpKSk7CisgICAgICBWR18odW1zZykgKCJlcnJvciAlbHUgJXNcbiIsIHNyX0VycihzciksIFZHXyhzdHJlcnJvcikgKHNyX0VycihzcikpKTsKICAgIGVsc2UKICAgICAgIFZHXyh1bXNnKSAoInNyX3BlcnJvciBjYWxsZWQgd2l0aCBubyBlcnJvciEhIVxuIik7CiAgICB2YV9zdGFydCAoYXJncywgc3RyaW5nKTsKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2dkYnNlcnZlci92YWxncmluZC1sb3ctdGlsZWd4LmMgYi9jb3JlZ3JpbmQvbV9nZGJzZXJ2ZXIvdmFsZ3JpbmQtbG93LXRpbGVneC5jCmluZGV4IDgxY2NhZmUuLjVkNTg4NTAgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2dkYnNlcnZlci92YWxncmluZC1sb3ctdGlsZWd4LmMKKysrIGIvY29yZWdyaW5kL21fZ2Ric2VydmVyL3ZhbGdyaW5kLWxvdy10aWxlZ3guYwpAQCAtMjI1LDExICsyMjUsMTMgQEAKIHN0YXRpYwogY29uc3QgY2hhciogdGFyZ2V0X3htbCAoIEJvb2wgc2hhZG93X21vZGUgKQogewotICBpZiAoc2hhZG93X21vZGUpIHsKKyAgcmV0dXJuIE5VTEw7CisjaWYgMAorICBpZiAoc2hhZG93X21vZGUpCiAgICAgcmV0dXJuICJ0aWxlZ3gtbGludXgtdmFsZ3JpbmQueG1sIjsKLSAgfSBlbHNlIHsKKyAgZWxzZQogICAgIHJldHVybiAidGlsZWd4LWxpbnV4LnhtbCI7Ci0gIH0KKyNlbmRpZgogfQogCiBzdGF0aWMgQ09SRV9BRERSKiogdGFyZ2V0X2dldF9kdHYgKFRocmVhZFN0YXRlICp0c3QpCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9oYXNodGFibGUuYyBiL2NvcmVncmluZC9tX2hhc2h0YWJsZS5jCmluZGV4IGJlYmNhYWIuLmZkNmJiNDIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2hhc2h0YWJsZS5jCisrKyBiL2NvcmVncmluZC9tX2hhc2h0YWJsZS5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtODIsNyArODIsNyBAQAogICAgcmV0dXJuIHRhYmxlOwogfQogCi1JbnQgVkdfKEhUX2NvdW50X25vZGVzKSAoIGNvbnN0IFZnSGFzaFRhYmxlICp0YWJsZSApCitVSW50IFZHXyhIVF9jb3VudF9ub2RlcykgKCBjb25zdCBWZ0hhc2hUYWJsZSAqdGFibGUgKQogewogICAgcmV0dXJuIHRhYmxlLT5uX2VsZW1lbnRzOwogfQpAQCAtMzA4LDcgKzMwOCw3IEBACiAgICAgICAgICAgfHwga2V5X29jY3VyZW5jZXNbaV0gPiAwIAogICAgICAgICAgIHx8IGNub19vY2N1cmVuY2VzW2ldID4gMCkKICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAgICAiJXM9JTJkIDogbnIgY2hhaW4gJTZkLCBuciBrZXlzICU2ZCwgbnIgZWx0cyAlNmRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIiVzPSUydSA6IG5yIGNoYWluICU2dSwgbnIga2V5cyAlNnUsIG5yIGVsdHMgJTZ1XG4iLAogICAgICAgICAgICAgICAgICAgICAgIGkgPT0gTUFYT0NDVVIgPyAiPiIgOiAiTiIsIGksCiAgICAgICAgICAgICAgICAgICAgICAgY25vX29jY3VyZW5jZXNbaV0sIGtleV9vY2N1cmVuY2VzW2ldLCBlbHRfb2NjdXJlbmNlc1tpXSk7CiAgICAgICBua2V5ICs9IGtleV9vY2N1cmVuY2VzW2ldOwpAQCAtMzE2LDcgKzMxNiw3IEBACiAgICAgICBuY25vICs9IGNub19vY2N1cmVuY2VzW2ldOwogICAgfQogICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAKLSAgICAgICAgICAgICAgICAidG90YWwgbnIgb2YgdW5pcXVlICAgc2xvdHM6ICU2ZCwga2V5cyAlNmQsIGVsdHMgJTZkLiIKKyAgICAgICAgICAgICAgICAidG90YWwgbnIgb2YgdW5pcXVlICAgc2xvdHM6ICU2dSwga2V5cyAlNnUsIGVsdHMgJTZ1LiIKICAgICAgICAgICAgICAgICAiIEF2ZyBjaGFpbiBsZW4gJTMuMWZcbiIsCiAgICAgICAgICAgICAgICAgbmNubywgbmtleSwgbmVsdCwKICAgICAgICAgICAgICAgICAoRG91YmxlKW5lbHQvKERvdWJsZSkobmNubyA9PSBjbm9fb2NjdXJlbmNlc1swXSA/CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9pbml0aW1nL2luaXRpbWctZGFyd2luLmMgYi9jb3JlZ3JpbmQvbV9pbml0aW1nL2luaXRpbWctZGFyd2luLmMKaW5kZXggY2Q2ZTJmZi4uNWJlYzZkYiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21faW5pdGltZy9pbml0aW1nLWRhcndpbi5jCisrKyBiL2NvcmVncmluZC9tX2luaXRpbWcvaW5pdGltZy1kYXJ3aW4uYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21faW5pdGltZy9pbml0aW1nLWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9pbml0aW1nL2luaXRpbWctbGludXguYwppbmRleCAxNDBlYjc4Li4xOTExZTJiIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9pbml0aW1nL2luaXRpbWctbGludXguYworKysgYi9jb3JlZ3JpbmQvbV9pbml0aW1nL2luaXRpbWctbGludXguYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDc4LDcgKzQ3OCw3IEBACiAgICAgICBhdXhzaXplICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXV4diAqLwogICAgICAgVkdfUk9VTkRVUChzdHJpbmdzaXplLCBzaXplb2YoV29yZCkpOyAgIC8qIHN0cmluZ3MgKGFsaWduZWQpICovCiAKLSAgIGlmICgwKSBWR18ocHJpbnRmKSgic3RhY2tzaXplID0gJWRcbiIsIHN0YWNrc2l6ZSk7CisgICBpZiAoMCkgVkdfKHByaW50ZikoInN0YWNrc2l6ZSA9ICV1XG4iLCBzdGFja3NpemUpOwogCiAgICAvKiBjbGllbnRfU1AgaXMgdGhlIGNsaWVudCdzIHN0YWNrIHBvaW50ZXIgKi8KICAgIGNsaWVudF9TUCA9IGNsc3RhY2tfZW5kIC0gc3RhY2tzaXplOwpAQCAtNDk0LDEwICs0OTQsMTAgQEAKICAgIGNsc3RhY2tfbWF4X3NpemUgPSBWR19QR1JPVU5EVVAoY2xzdGFja19tYXhfc2l6ZSk7CiAKICAgIGlmICgwKQotICAgICAgVkdfKHByaW50ZikoInN0cmluZ3NpemU9JWQgYXV4c2l6ZT0lZCBzdGFja3NpemU9JWQgbWF4c2l6ZT0weCV4XG4iCisgICAgICBWR18ocHJpbnRmKSgic3RyaW5nc2l6ZT0ldSBhdXhzaXplPSV1IHN0YWNrc2l6ZT0ldSBtYXhzaXplPTB4JWx4XG4iCiAgICAgICAgICAgICAgICAgICAiY2xzdGFja19zdGFydCAlcFxuIgogICAgICAgICAgICAgICAgICAgImNsc3RhY2tfZW5kICAgJXBcbiIsCi0JICAgICAgICAgIHN0cmluZ3NpemUsIGF1eHNpemUsIHN0YWNrc2l6ZSwgKEludCljbHN0YWNrX21heF9zaXplLAorICAgICAgICAgICAgICAgICAgc3RyaW5nc2l6ZSwgYXV4c2l6ZSwgc3RhY2tzaXplLCBjbHN0YWNrX21heF9zaXplLAogICAgICAgICAgICAgICAgICAgKHZvaWQqKWNsc3RhY2tfc3RhcnQsICh2b2lkKiljbHN0YWNrX2VuZCk7CiAKICAgIC8qID09PT09PT09PT09PT09PT09PT09IGFsbG9jYXRlIHNwYWNlID09PT09PT09PT09PT09PT09PT09ICovCkBAIC02OTgsNiArNjk4LDEyIEBACiAgICAgICAgICAgICAgICAgIGluIHN5c3dyYXAtYXJtLWxpbnV4LmMgcmF0aGVyIHRoYW4gdG8gYmFzZSB0aGlzIG9uCiAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiAqLwogICAgICAgICAgICAgfQorIyAgICAgICAgICAgZWxpZiBkZWZpbmVkKFZHUF9zMzkweF9saW51eCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgIC8qIEFkdmVydGlzZSBoYXJkd2FyZSBmZWF0dXJlcyAiYmVsb3ciIFRFIG9ubHkuICBURSBhbmQgVlhSUworICAgICAgICAgICAgICAgICAgKGFuZCBhbnl0aGluZyBhYm92ZSkgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgVmFsZ3JpbmQuICovCisgICAgICAgICAgICAgICBhdXh2LT51LmFfdmFsICY9IFZLSV9IV0NBUF9TMzkwX1RFIC0gMTsKKyAgICAgICAgICAgIH0KICMgICAgICAgICAgIGVuZGlmCiAgICAgICAgICAgICBicmVhazsKICMgICAgICAgIGlmIGRlZmluZWQoVkdQX3BwYzY0YmVfbGludXgpIHx8IGRlZmluZWQoVkdQX3BwYzY0bGVfbGludXgpCkBAIC04MTIsNyArODE4LDcgQEAKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAvKiBzdG9tcCBvdXQgYW55dGhpbmcgd2UgZG9uJ3Qga25vdyBhYm91dCAqLwogICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgyLCAiaW5pdGltZyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdG9tcGluZyBhdXh2IGVudHJ5ICVsbGRcbiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RvbXBpbmcgYXV4diBlbnRyeSAlbGx1XG4iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVMb25nKWF1eHYtPmFfdHlwZSk7CiAgICAgICAgICAgICBhdXh2LT5hX3R5cGUgPSBBVF9JR05PUkU7CiAgICAgICAgICAgICBicmVhazsKQEAgLTk1Nyw3ICs5NjMsNyBAQAogICAgICAgaWYgKHN6QiA8IG0xKSBzekIgPSBtMTsKICAgICAgIHN6QiA9IFZHX1BHUk9VTkRVUChzekIpOwogICAgICAgVkdfKGRlYnVnTG9nKSgxLCAiaW5pdGltZyIsCi0gICAgICAgICAgICAgICAgICAgICAgICJTZXR1cCBjbGllbnQgc3RhY2s6IHNpemUgd2lsbCBiZSAlbGRcbiIsIHN6Qik7CisgICAgICAgICAgICAgICAgICAgICAgICJTZXR1cCBjbGllbnQgc3RhY2s6IHNpemUgd2lsbCBiZSAlbHVcbiIsIHN6Qik7CiAKICAgICAgIGlpZmlpLmNsc3RhY2tfbWF4X3NpemUgPSBzekI7CiAKQEAgLTk3Nyw5ICs5ODMsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopVkdfKGJya19iYXNlKSApOwogICAgICAgVkdfKGRlYnVnTG9nKSgyLCAiaW5pdGltZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJDbGllbnQgaW5mbzogIgotICAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbF9TUD0lcCBtYXhfc3RhY2tfc2l6ZT0lbGRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICJpbml0aWFsX1NQPSVwIG1heF9zdGFja19zaXplPSVsdVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKShpaWZpaS5pbml0aWFsX2NsaWVudF9TUCksCi0gICAgICAgICAgICAgICAgICAgICAgIChTaXplVClpaWZpaS5jbHN0YWNrX21heF9zaXplICk7CisgICAgICAgICAgICAgICAgICAgICAgIGlpZmlpLmNsc3RhY2tfbWF4X3NpemUgKTsKICAgIH0KIAogICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21faW5pdGltZy9pbml0aW1nLXBhdGhzY2FuLmMgYi9jb3JlZ3JpbmQvbV9pbml0aW1nL2luaXRpbWctcGF0aHNjYW4uYwppbmRleCAxN2RhOThjLi41YjIxOGZiIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9pbml0aW1nL2luaXRpbWctcGF0aHNjYW4uYworKysgYi9jb3JlZ3JpbmQvbV9pbml0aW1nL2luaXRpbWctcGF0aHNjYW4uYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21faW5pdGltZy9pbml0aW1nLXNvbGFyaXMuYyBiL2NvcmVncmluZC9tX2luaXRpbWcvaW5pdGltZy1zb2xhcmlzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU0ZjE1NQotLS0gL2Rldi9udWxsCisrKyBiL2NvcmVncmluZC9tX2luaXRpbWcvaW5pdGltZy1zb2xhcmlzLmMKQEAgLTAsMCArMSwxMDM4IEBACisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gU3RhcnR1cDogY3JlYXRlIGluaXRpYWwgcHJvY2VzcyBpbWFnZSBvbiBTb2xhcmlzICAgICAgICAgICAgIC0tLSovCisvKi0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGltZy1zb2xhcmlzLmMgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBldHIgUGF2bHUKKyAgICAgIHNldHVwQGRhZ29iYWguY3oKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisvKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBJdm8gUmFpc3IgPGl2b3NoQGl2b3NoLm5ldD4uICovCisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCisvKiBOb3RlOiBUaGlzIGZpbGUgaXMgYmFzZWQgb24gaW5pdGltZy1saW51eC5jLiAqLworCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzLmgiCisjaW5jbHVkZSAicHViX2NvcmVfdmtpLmgiCisjaW5jbHVkZSAicHViX2NvcmVfZGVidWdsb2cuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9saWJjYmFzZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNhc3NlcnQuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9saWJjZmlsZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNwcm9jLmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY3ByaW50LmgiCisjaW5jbHVkZSAicHViX2NvcmVfeGFycmF5LmgiCisjaW5jbHVkZSAicHViX2NvcmVfY2xpZW50c3RhdGUuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9hc3BhY2VtZ3IuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9tYWxsb2NmcmVlLmgiCisjaW5jbHVkZSAicHViX2NvcmVfbWFjaGluZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3VtZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX29wdGlvbnMuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9zeXN3cmFwLmgiCisjaW5jbHVkZSAicHViX2NvcmVfdG9vbGlmYWNlLmgiICAgICAgIC8qIFZHX1RSQUNLICovCisjaW5jbHVkZSAicHViX2NvcmVfdGhyZWFkc3RhdGUuaCIgICAgIC8qIFRocmVhZEFyY2hTdGF0ZSAqLworI2luY2x1ZGUgInByaXZfaW5pdGltZ19wYXRoc2Nhbi5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2luaXRpbWcuaCIgICAgICAgICAvKiBzZWxmICovCisKKworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKj09PSBMb2FkaW5nIHRoZSBjbGllbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09Ki8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCisvKiBMb2FkIHRoZSBjbGllbnQgd2hvc2UgbmFtZSBpcyBWR18oYXJndl90aGVfZXhlbmFtZSkuICovCitzdGF0aWMgdm9pZCBsb2FkX2NsaWVudCgvKk9VVCovRXhlSW5mbyAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qT1VUKi9IQ2hhciAqb3V0X2V4ZV9uYW1lLCBTaXplVCBvdXRfZXhlX25hbWVfc2l6ZSkKK3sKKyAgIGNvbnN0IEhDaGFyICpleGVfbmFtZTsKKyAgIEludCByZXQ7CisgICBTeXNSZXMgcmVzOworCisgICB2Z19hc3NlcnQoVkdfKGFyZ3NfdGhlX2V4ZW5hbWUpKTsKKyAgIGV4ZV9uYW1lID0gTUxfKGZpbmRfZXhlY3V0YWJsZSkoVkdfKGFyZ3NfdGhlX2V4ZW5hbWUpKTsKKworICAgaWYgKCFleGVfbmFtZSkgeworICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiAlczogY29tbWFuZCBub3QgZm91bmRcbiIsIFZHXyhhcmdzX3RoZV9leGVuYW1lKSk7CisgICAgICAvKiBSZXR1cm4gUE9TSVgncyBOT1RGT1VORC4gKi8KKyAgICAgIFZHXyhleGl0KSgxMjcpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgIH0KKworICAgVkdfKG1lbXNldCkoaW5mbywgMCwgc2l6ZW9mKCppbmZvKSk7CisgICByZXQgPSBWR18oZG9fZXhlYykoZXhlX25hbWUsIGluZm8pOworICAgaWYgKHJldCA8IDApIHsKKyAgICAgIFZHXyhwcmludGYpKCJ2YWxncmluZDogY291bGQgbm90IGV4ZWN1dGUgJyVzJ1xuIiwgZXhlX25hbWUpOworICAgICAgVkdfKGV4aXQpKDEpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgIH0KKworICAgLyogVGhlIGNsaWVudCB3YXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZCEgIENvbnRpbnVlLiAqLworCisgICAvKiBTYXZlIHJlc29sdmVkIGV4ZW5hbWUuICovCisgICBpZiAoVkdfKHN0cmxlbikoZXhlX25hbWUpICsgMSA+IG91dF9leGVfbmFtZV9zaXplKSB7CisgICAgICAvKiBUaGlzIHNob3VsZCBub3QgcmVhbGx5IGhhcHBlbi4gKi8KKyAgICAgIFZHXyhwcmludGYpKCJ2YWxncmluZDogZXhlY25hbWUgJXMgaXMgdG9vIGxvbmdcbiIsIGV4ZV9uYW1lKTsKKyAgICAgIFZHXyhleGl0KSgxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICB9CisgICBWR18oc3RyY3B5KShvdXRfZXhlX25hbWUsIGV4ZV9uYW1lKTsKKworICAgLyogR2V0IGhvbGQgb2YgYSBmaWxlIGRlc2NyaXB0b3Igd2hpY2ggcmVmZXJzIHRvIHRoZSBjbGllbnQgZXhlY3V0YWJsZS4KKyAgICAgIFRoaXMgaXMgbmVlZGVkIGZvciBhdHRhY2hpbmcgdG8gR0RCLiAqLworICAgcmVzID0gVkdfKG9wZW4pKGV4ZV9uYW1lLCBWS0lfT19SRE9OTFksIFZLSV9TX0lSVVNSKTsKKyAgIGlmICghc3JfaXNFcnJvcihyZXMpKQorICAgICAgVkdfKGNsX2V4ZWNfZmQpID0gc3JfUmVzKHJlcyk7CisKKyAgIC8qIFNldCBpbml0aWFsIGJyayB2YWx1ZXMuICovCisgICBpZiAoaW5mby0+bGRzb2V4ZWMpIHsKKyAgICAgIFZHXyhicmtfYmFzZSkgPSBWR18oYnJrX2xpbWl0KSA9IC0xOworICAgfSBlbHNlIHsKKyAgICAgIFZHXyhicmtfYmFzZSkgPSBWR18oYnJrX2xpbWl0KSA9IGluZm8tPmJya2Jhc2U7CisgICB9Cit9CisKKworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKj09PSBTZXR0aW5nIHVwIHRoZSBjbGllbnQncyBlbnZpcm9ubWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgPT09Ki8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCisvKiBQcmVwYXJlIHRoZSBjbGllbnQncyBlbnZpcm9ubWVudC4gIFRoaXMgaXMgYmFzaWNhbGx5IGEgY29weSBvZiBvdXIKKyAgIGVudmlyb25tZW50LCBleGNlcHQ6CisKKyAgICAgTERfUFJFTE9BRD0kVkFMR1JJTkRfTElCL3ZncHJlbG9hZF9jb3JlLVBMQVRGT1JNLnNvOgorICAgICAgICAgICAgICAgICgkVkFMR1JJTkRfTElCL3ZncHJlbG9hZF9UT09MLVBMQVRGT1JNLnNvOik/CisgICAgICAgICAgICAgICAgJExEX1BSRUxPQUQKKworICAgSWYgdGhpcyBpcyBtaXNzaW5nLCB0aGVuIGl0IGlzIGFkZGVkLgorCisgICBBbHNvLCByZW1vdmUgYW55IGJpbmRpbmcgZm9yIFZBTEdSSU5EX0xBVU5DSEVSPS4gIFRoZSBjbGllbnQgc2hvdWxkIG5vdCBiZQorICAgYWJsZSB0byBzZWUgdGhpcy4KKworICAgSWYgdGhpcyBuZWVkcyB0byBoYW5kbGUgYW55IG1vcmUgdmFyaWFibGVzIGl0IHNob3VsZCBiZSBoYWNrZWQgaW50bworICAgc29tZXRoaW5nIHRhYmxlIGRyaXZlbi4gIFRoZSBjb3B5IGlzIFZHXyhtYWxsb2MpJ2Qgc3BhY2UuCisqLworc3RhdGljIEhDaGFyICoqc2V0dXBfY2xpZW50X2VudihIQ2hhciAqKm9yaWdlbnYsIGNvbnN0IEhDaGFyICp0b29sbmFtZSkKK3sKKyAgIGNvbnN0IEhDaGFyICpsZF9wcmVsb2FkID0gIkxEX1BSRUxPQUQ9IjsKKyAgIFNpemVUIGxkX3ByZWxvYWRfbGVuID0gVkdfKHN0cmxlbikobGRfcHJlbG9hZCk7CisgICBCb29sIGxkX3ByZWxvYWRfZG9uZSA9IEZhbHNlOworICAgU2l6ZVQgdmdsaWJfbGVuID0gVkdfKHN0cmxlbikoVkdfKGxpYmRpcikpOworCisgICBIQ2hhciAqKmNwcDsKKyAgIEhDaGFyICoqcmV0OworICAgSENoYXIgKnByZWxvYWRfdG9vbF9wYXRoOworICAgU2l6ZVQgZW52YywgaTsKKworICAgLyogQWxsb2Mgc3BhY2UgZm9yIHRoZQorICAgICAgICA8cGF0aD4vdmdwcmVsb2FkX2NvcmUtPHBsYXRmb3JtPi5zbyBhbmQKKyAgICAgICAgPHBhdGg+L3ZncHJlbG9hZF88dG9vbD4tPHBsYXRmb3JtPi5zbworICAgICAgcGF0aHMuICBXZSBtaWdodCBub3QgbmVlZCB0aGUgc3BhY2UgZm9yIHRoZSB0b29sIHBhdGgsIGJ1dCBpdCBkb2Vzbid0CisgICAgICBodXJ0IHRvIG92ZXItYWxsb2NhdGUgYnJpZWZseS4gICovCisgICBTaXplVCBwcmVsb2FkX2NvcmVfcGF0aF9zaXplID0gdmdsaWJfbGVuICsgc2l6ZW9mKCIvdmdwcmVsb2FkX2NvcmUtIikgLSAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2l6ZW9mKFZHX1BMQVRGT1JNKSAtIDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzaXplb2YoIi5zbyIpOworICAgU2l6ZVQgcHJlbG9hZF90b29sX3BhdGhfc2l6ZSA9IHZnbGliX2xlbiArIHNpemVvZigiL3ZncHJlbG9hZF8iKSAtIDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBWR18oc3RybGVuKSh0b29sbmFtZSkgKyAxIC8qLSovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2l6ZW9mKFZHX1BMQVRGT1JNKSAtIDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzaXplb2YoIi5zbyIpOworICAgU2l6ZVQgcHJlbG9hZF9zdHJpbmdfc2l6ZSA9IHByZWxvYWRfY29yZV9wYXRoX3NpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHByZWxvYWRfdG9vbF9wYXRoX3NpemU7CisgICBIQ2hhciAqcHJlbG9hZF9zdHJpbmcgPSBWR18obWFsbG9jKSgiaW5pdGltZy1zb2xhcmlzLnNjZS4xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWxvYWRfc3RyaW5nX3NpemUpOworCisgICAvKiBDaGVjayB0aGF0IHRoZSBwYXJhbWV0ZXJzIGFyZSBzYW5lLiAqLworICAgdmdfYXNzZXJ0KG9yaWdlbnYpOworICAgdmdfYXNzZXJ0KHRvb2xuYW1lKTsKKworICAgLyogRGV0ZXJtaW5lIGlmIHRoZXJlJ3MgYSB2Z3ByZWxvYWRfPHRvb2w+LTxwbGF0Zm9ybT4uc28gZmlsZSwgYW5kIHNldHVwCisgICAgICBwcmVsb2FkX3N0cmluZy4gKi8KKyAgIHByZWxvYWRfdG9vbF9wYXRoID0gVkdfKG1hbGxvYykoImluaXRpbWctc29sYXJpcy5zY2UuMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWxvYWRfdG9vbF9wYXRoX3NpemUpOworICAgVkdfKHNwcmludGYpKHByZWxvYWRfdG9vbF9wYXRoLCAiJXMvdmdwcmVsb2FkXyVzLSVzLnNvIiwgVkdfKGxpYmRpciksCisgICAgICAgICAgICAgICAgdG9vbG5hbWUsIFZHX1BMQVRGT1JNKTsKKyAgIGlmICghVkdfKGFjY2VzcykocHJlbG9hZF90b29sX3BhdGgsIFRydWUvKnIqLywgRmFsc2UvKncqLywgRmFsc2UvKngqLykpIHsKKyAgICAgIC8qIFRoZSB0b29sJ3MgLnNvIGV4aXN0cywgcHV0IGl0IGludG8gTERfUFJFTE9BRCB3aXRoIHRoZSBjb3JlJ3Mgc28uICovCisgICAgICBWR18oc3ByaW50ZikocHJlbG9hZF9zdHJpbmcsICIlcy92Z3ByZWxvYWRfY29yZS0lcy5zbzolcyIsIFZHXyhsaWJkaXIpLAorICAgICAgICAgICAgICAgICAgIFZHX1BMQVRGT1JNLCBwcmVsb2FkX3Rvb2xfcGF0aCk7CisgICB9CisgICBlbHNlIHsKKyAgICAgIC8qIFRoZSB0b29sJ3MgLnNvIGRvZXNuJ3QgZXhpc3QsIHB1dCBvbmx5IHRoZSBjb3JlJ3MgLnNvIGludG8KKyAgICAgICAgIExEX1BSRUxPQUQuICovCisgICAgICBWR18oc3ByaW50ZikocHJlbG9hZF9zdHJpbmcsICIlcy92Z3ByZWxvYWRfY29yZS0lcy5zbyIsIFZHXyhsaWJkaXIpLAorICAgICAgICAgICAgICAgICAgIFZHX1BMQVRGT1JNKTsKKyAgIH0KKyAgIFZHXyhmcmVlKShwcmVsb2FkX3Rvb2xfcGF0aCk7CisKKyAgIFZHXyhkZWJ1Z0xvZykoMiwgImluaXRpbWciLCAicHJlbG9hZF9zdHJpbmc6XG4iKTsKKyAgIFZHXyhkZWJ1Z0xvZykoMiwgImluaXRpbWciLCAiICBcIiVzXCJcbiIsIHByZWxvYWRfc3RyaW5nKTsKKworICAgLyogQ291bnQgdGhlIG9yaWdpbmFsIHNpemUgb2YgdGhlIGVudi4gKi8KKyAgIGVudmMgPSAwOworICAgZm9yIChjcHAgPSBvcmlnZW52OyAqY3BwOyBjcHArKykKKyAgICAgIGVudmMrKzsKKworICAgLyogQWxsb2NhdGUgYSBuZXcgc3BhY2UsIGVudmMgKyAxIG5ldyBlbnRyeSArIE5VTEwuICovCisgICByZXQgPSBWR18obWFsbG9jKSgiaW5pdGltZy1zb2xhcmlzLnNjZS4zIiwgc2l6ZW9mKEhDaGFyKikgKiAoZW52YyArIDEgKyAxKSk7CisKKyAgIC8qIENvcHkgaXQgb3Zlci4gKi8KKyAgIGZvciAoY3BwID0gcmV0OyAqb3JpZ2VudjsgKQorICAgICAgKmNwcCsrID0gKm9yaWdlbnYrKzsKKyAgICpjcHAgPSBOVUxMOworCisgICB2Z19hc3NlcnQoZW52YyA9PSBjcHAgLSByZXQpOworCisgICAvKiBXYWxrIG92ZXIgdGhlIG5ldyBlbnZpcm9ubWVudCwgbWFzaGluZyBhcyB3ZSBnby4gKi8KKyAgIGZvciAoY3BwID0gcmV0OyAqY3BwOyBjcHArKykgeworICAgICAgaWYgKFZHXyhtZW1jbXApKCpjcHAsIGxkX3ByZWxvYWQsIGxkX3ByZWxvYWRfbGVuKSkKKyAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAvKiBMRF9QUkVMT0FEIGVudHJ5IGZvdW5kLCBzbWFzaCBpdC4gKi8KKyAgICAgIFNpemVUIHNpemUgPSBWR18oc3RybGVuKSgqY3BwKSArIDEgLyo6Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHByZWxvYWRfc3RyaW5nX3NpemU7CisgICAgICBIQ2hhciAqY3AgPSBWR18obWFsbG9jKSgiaW5pdGltZy1zb2xhcmlzLnNjZS40Iiwgc2l6ZSk7CisKKyAgICAgIFZHXyhzcHJpbnRmKShjcCwgIiVzJXM6JXMiLCBsZF9wcmVsb2FkLCBwcmVsb2FkX3N0cmluZywKKyAgICAgICAgICAgICAgICAgICAoKmNwcCkgKyBsZF9wcmVsb2FkX2xlbik7CisgICAgICAqY3BwID0gY3A7CisKKyAgICAgIGxkX3ByZWxvYWRfZG9uZSA9IFRydWU7CisgICB9CisKKyAgIC8qIEFkZCB0aGUgbWlzc2luZyBiaXRzLiAqLworICAgaWYgKCFsZF9wcmVsb2FkX2RvbmUpIHsKKyAgICAgIFNpemVUIHNpemUgPSBsZF9wcmVsb2FkX2xlbiArIHByZWxvYWRfc3RyaW5nX3NpemU7CisgICAgICBIQ2hhciAqY3AgPSBWR18obWFsbG9jKSgiaW5pdGltZy1zb2xhcmlzLnNjZS41Iiwgc2l6ZSk7CisKKyAgICAgIFZHXyhzcHJpbnRmKShjcCwgIiVzJXMiLCBsZF9wcmVsb2FkLCBwcmVsb2FkX3N0cmluZyk7CisgICAgICByZXRbZW52YysrXSA9IGNwOworICAgfQorCisgICAvKiBXZSd2ZSBnb3QgcmV0WzAgLi4gZW52Yy0xXSBsaXZlIG5vdy4gKi8KKworICAgLyogRmluZCBhbmQgcmVtb3ZlIGEgYmluZGluZyBmb3IgVkFMR1JJTkRfTEFVTkNIRVIuICovCisgICB7CisgICAgICBjb25zdCBIQ2hhciAqdl9sYXVuY2hlciA9IFZBTEdSSU5EX0xBVU5DSEVSICI9IjsKKyAgICAgIFNpemVUIHZfbGF1bmNoZXJfbGVuID0gVkdfKHN0cmxlbikodl9sYXVuY2hlcik7CisKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBlbnZjOyBpKyspCisgICAgICAgICBpZiAoIVZHXyhtZW1jbXAocmV0W2ldLCB2X2xhdW5jaGVyLCB2X2xhdW5jaGVyX2xlbikpKSB7CisgICAgICAgICAgICAvKiBWQUxHUklORF9MQVVOQ0hFUiB3YXMgZm91bmQuICovCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KKworICAgICAgaWYgKGkgPCBlbnZjKSB7CisgICAgICAgICAvKiBWQUxHUklORF9MQVVOQ0hFUiB3YXMgZm91bmQsIHJlbW92ZSBpdC4gKi8KKyAgICAgICAgIGZvciAoOyBpIDwgZW52YyAtIDE7IGkrKykKKyAgICAgICAgICAgIHJldFtpXSA9IHJldFtpICsgMV07CisgICAgICAgICBlbnZjLS07CisgICAgICB9CisgICB9CisKKyAgIFZHXyhmcmVlKShwcmVsb2FkX3N0cmluZyk7CisgICByZXRbZW52Y10gPSBOVUxMOworCisgICByZXR1cm4gcmV0OworfQorCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyo9PT0gU2V0dGluZyB1cCB0aGUgY2xpZW50J3Mgc3RhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09PSovCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyogQWRkIGEgc3RyaW5nIG9udG8gdGhlIHN0cmluZyB0YWJsZSwgYW5kIHJldHVybiBpdHMgYWRkcmVzcy4gKi8KK3N0YXRpYyBIQ2hhciAqY29weV9zdHIoSENoYXIgKip0YWIsIGNvbnN0IEhDaGFyICpzdHIpCit7CisgICBIQ2hhciAqY3AgPSAqdGFiOworICAgSENoYXIgKm9yaWcgPSBjcDsKKworICAgd2hpbGUgKCpzdHIpCisgICAgICAqY3ArKyA9ICpzdHIrKzsKKyAgICpjcCsrID0gJ1wwJzsKKworICAgKnRhYiA9IGNwOworCisgICByZXR1cm4gb3JpZzsKK30KKworI2lmIGRlZmluZWQoU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfQUREUikgfHwgXAorICAgIGRlZmluZWQoU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfWk9ORV9BRERSKQorI2RlZmluZSBPUklHX0FVWFZfUFJFU0VOVCAxCisjZW5kaWYKKworI2lmIGRlZmluZWQoT1JJR19BVVhWX1BSRVNFTlQpCisvKiBUaGUgYXV4aWxpYXJ5IHZlY3RvciBtaWdodCBub3QgYmUgcHJlc2VudC4gU28gd2UgY3Jvc3MtY2hlY2sgcG9pbnRlcnMgZnJvbQorICAgYXJndiBhbmQgZW52cCBwb2ludGluZyB0byB0aGUgc3RyaW5nIHRhYmxlLiAqLyAKK3N0YXRpYyB2a2lfYXV4dl90ICpmaW5kX29yaWdpbmFsX2F1eHYoQWRkciBpbml0X3NwKQoreworICAgSENoYXIgKipzcCA9IChIQ2hhciAqKikgaW5pdF9zcDsKKyAgIEhDaGFyICpsb3dlc3Rfc3RyX3B0ciA9IChIQ2hhciAqKSBVSU5UUFRSX01BWDsgLy8gbG93ZXN0IHB0ciB0byBzdHJpbmcgdGFibGUKKworICAgc3ArKzsgLy8gc2tpcCBhcmdjCisKKyAgIHdoaWxlICgqc3AgIT0gTlVMTCkgeyAvLyBza2lwIGFyZ3YKKyAgICAgIGlmICgqc3AgPCBsb3dlc3Rfc3RyX3B0cikKKyAgICAgICAgIGxvd2VzdF9zdHJfcHRyID0gKnNwOworICAgICAgc3ArKzsKKyAgIH0KKyAgIHNwKys7CisKKyAgIHdoaWxlICgqc3AgIT0gMCkgeyAvLyBza2lwIGVudgorICAgICAgaWYgKCpzcCA8IGxvd2VzdF9zdHJfcHRyKQorICAgICAgICAgbG93ZXN0X3N0cl9wdHIgPSAqc3A7CisgICAgICBzcCsrOworICAgfQorICAgc3ArKzsKKworICAgaWYgKChBZGRyKSBzcCA8IChBZGRyKSBsb3dlc3Rfc3RyX3B0cikgeworICAgICAgcmV0dXJuICh2a2lfYXV4dl90ICopIHNwOworICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBOVUxMOworICAgfQorfQorCitzdGF0aWMgdm9pZCBjb3B5X2F1eHZfZW50cnkoY29uc3QgdmtpX2F1eHZfdCAqb3JpZ19hdXh2LCBJbnQgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIQ2hhciAqdHlwZV9uYW1lLCB2a2lfYXV4dl90ICphdXh2KQoreworICAgdmdfYXNzZXJ0KGF1eHYgIT0gTlVMTCk7CisKKyAgIGlmIChvcmlnX2F1eHYgPT0gTlVMTCkgeworICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiBDYW5ub3QgbG9jYXRlIGF1eGlsaWFyeSB2ZWN0b3IuXG4iKTsKKyAgICAgIFZHXyhwcmludGYpKCJ2YWxncmluZDogQ2Fubm90IGNvbnRpbnVlLiBTb3JyeS5cblxuIik7CisgICAgICBWR18oZXhpdCkoMSk7CisgICB9CisKKyAgIGZvciAoIDsgb3JpZ19hdXh2LT5hX3R5cGUgIT0gVktJX0FUX05VTEw7IG9yaWdfYXV4disrKSB7CisgICAgICBpZiAob3JpZ19hdXh2LT5hX3R5cGUgPT0gdHlwZSkgeworICAgICAgICAgYXV4di0+YV90eXBlID0gdHlwZTsKKyAgICAgICAgIGF1eHYtPmFfdW4uYV92YWwgPSBvcmlnX2F1eHYtPmFfdW4uYV92YWw7CisgICAgICAgICByZXR1cm47CisgICAgICB9CisgICB9CisKKyAgIFZHXyhwcmludGYpKCJ2YWxncmluZDogQ2Fubm90IGxvY2F0ZSAlcyBpbiB0aGUgYXV4XG4iLCB0eXBlX25hbWUpOworICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiB2ZWN0b3IuIENhbm5vdCBjb250aW51ZS4gU29ycnkuXG5cbiIpOworICAgVkdfKGV4aXQpKDEpOworfQorI2VuZGlmIC8qIE9SSUdfQVVYVl9QUkVTRU5UICovCisKKy8qIFRoaXMgc2V0cyB1cCB0aGUgY2xpZW50J3MgaW5pdGlhbCBzdGFjaywgY29udGFpbmluZyB0aGUgYXJncywKKyAgIGVudmlyb25tZW50IGFuZCBhdXggdmVjdG9yLgorCisgICBUaGUgZm9ybWF0IG9mIHRoZSBzdGFjayBpczoKKworICAgaGlnaGVyIGFkZHJlc3MgKy0tLS0tLS0tLS0tLS0tLS0tKyA8LSBjbHN0YWNrX2VuZAorICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgOiBzdHJpbmcgdGFibGUgICAgOgorICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgfCBBVF9OVUxMICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgLQorICAgICAgICAgICAgICAgICAgfCBhdXh2ICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgfCBOVUxMICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgLQorICAgICAgICAgICAgICAgICAgfCBlbnZwICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgfCBOVUxMICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgLQorICAgICAgICAgICAgICAgICAgfCBhcmd2ICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgfCBhcmdjICAgICAgICAgICAgfAorICAgbG93ZXIgYWRkcmVzcyAgKy0tLS0tLS0tLS0tLS0tLS0tKyA8LSBzcAorICAgICAgICAgICAgICAgICAgfCB1bmRlZmluZWQgICAgICAgfAorICAgICAgICAgICAgICAgICAgOiAgICAgICAgICAgICAgICAgOgorCisgICBBbGxvY2F0ZSBhbmQgY3JlYXRlIHRoZSBpbml0aWFsIGNsaWVudCBzdGFjay4gIEl0IGlzIGFsbG9jYXRlZCBkb3duIGZyb20KKyAgIGNsc3RhY2tfZW5kLCB3aGljaCB3YXMgcHJldmlvdXNseSBkZXRlcm1pbmVkIGJ5IHRoZSBhZGRyZXNzIHNwYWNlIG1hbmFnZXIuCisgICBUaGUgcmV0dXJuZWQgdmFsdWUgaXMgdGhlIFNQIHZhbHVlIGZvciB0aGUgY2xpZW50LgorCisgICBOb3RlIHRoYXQgYXV4aWxpYXJ5IHZlY3RvciBpcyAqbm90KiBjcmVhdGVkIGJ5IGtlcm5lbCBvbiBpbGx1bW9zIGFuZAorICAgU29sYXJpcyAxMSBpZiB0aGUgcHJvZ3JhbSBpcyBzdGF0aWNhbGx5IGxpbmtlZCAod2hpY2ggaXMgb3VyIGNhc2UpLgorICAgQWx0aG91Z2ggd2Ugbm93IHRhdWdodCBTb2xhcmlzIDEyIHRvIGNyZWF0ZSB0aGUgYXV4aWxpYXJ5IHZlY3Rvciwgd2Ugc3RpbGwKKyAgIGhhdmUgdG8gYnVpbGQgYXV4diBmcm9tIHNjcmF0Y2gsIHRvIG1ha2UgdGhlIGNvZGUgY29uc2lzdGVudC4gKi8KKworc3RhdGljIEFkZHIgc2V0dXBfY2xpZW50X3N0YWNrKEFkZHIgaW5pdF9zcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQ2hhciAqKm9yaWdfZW52cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFeGVJbmZvICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgY2xzdGFja19lbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZVQgY2xzdGFja19tYXhfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIQ2hhciAqcmVzb2x2ZWRfZXhlX25hbWUpCit7CisgICBTeXNSZXMgcmVzOworICAgSENoYXIgKipjcHA7CisgICBIQ2hhciAqc3RydGFiOyAgICAgICAvKiBzdHJpbmcgdGFibGUgKi8KKyAgIEhDaGFyICpzdHJpbmdiYXNlOworICAgQWRkciAqcHRyOworICAgdmtpX2F1eHZfdCAqYXV4djsKKyAgIFNpemVUIHN0cmluZ3NpemU7ICAgIC8qIHRvdGFsIHNpemUgb2Ygc3RyaW5ncyBpbiBieXRlcyAqLworICAgU2l6ZVQgYXV4c2l6ZTsgICAgICAgLyogdG90YWwgc2l6ZSBvZiBhdXh2IGluIGJ5dGVzICovCisgICBJbnQgYXJnYzsgICAgICAgICAgICAvKiB0b3RhbCBhcmdjICovCisgICBJbnQgZW52YzsgICAgICAgICAgICAvKiB0b3RhbCBudW1iZXIgb2YgZW52IHZhcnMgKi8KKyAgIFNpemVUIHN0YWNrc2l6ZTsgICAgIC8qIHRvdGFsIGNsaWVudCBzdGFjayBzaXplICovCisgICBBZGRyIGNsaWVudF9TUDsgICAgICAvKiBjbGllbnQgc3RhY2sgYmFzZSAoaW5pdGlhbCBTUCkgKi8KKyAgIEFkZHIgY2xzdGFja19zdGFydDsKKyAgIEludCBpOworCisgICB2Z19hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKGNsc3RhY2tfZW5kICsgMSkpOworICAgdmdfYXNzZXJ0KFZHXyhhcmdzX3RoZV9leGVuYW1lKSk7CisgICB2Z19hc3NlcnQoVkdfKGFyZ3NfZm9yX2NsaWVudCkpOworCisjICBpZiBkZWZpbmVkKE9SSUdfQVVYVl9QUkVTRU5UKQorICAgLyogR2V0IHRoZSBvcmlnaW5hbCBhdXh2IChpZiBhbnkpLiAqLworICAgdmtpX2F1eHZfdCAqb3JpZ19hdXh2ID0gZmluZF9vcmlnaW5hbF9hdXh2KGluaXRfc3ApOworIyAgZW5kaWYgLyogT1JJR19BVVhWX1BSRVNFTlQgKi8KKworICAgLyogPT09PT09PT09PT09PT09PT09PT0gY29tcHV0ZSBzaXplcyA9PT09PT09PT09PT09PT09PT09PSAqLworCisgICAvKiBGaXJzdCBvZiBhbGwsIHdvcmsgb3V0IGhvdyBiaWcgdGhlIGNsaWVudCBzdGFjayB3aWxsIGJlLiAqLworICAgc3RyaW5nc2l6ZSA9IDA7CisKKyAgIC8qIFBhc3RlIG9uIHRoZSBleHRyYSBhcmdzIGlmIHRoZSBsb2FkZXIgbmVlZHMgdGhlbSAoaS5lLiB0aGUgIyEKKyAgICAgIGludGVycHJldGVyIGFuZCBpdHMgYXJndW1lbnQpLiAqLworICAgYXJnYyA9IDA7CisgICBpZiAoaW5mby0+aW50ZXJwX25hbWUpIHsKKyAgICAgIGFyZ2MrKzsKKyAgICAgIHN0cmluZ3NpemUgKz0gVkdfKHN0cmxlbikoaW5mby0+aW50ZXJwX25hbWUpICsgMTsKKyAgIH0KKyAgIGlmIChpbmZvLT5pbnRlcnBfYXJncykgeworICAgICAgYXJnYysrOworICAgICAgc3RyaW5nc2l6ZSArPSBWR18oc3RybGVuKShpbmZvLT5pbnRlcnBfYXJncykgKyAxOworICAgfQorCisgICAvKiBOb3cgc2NhbiB0aGUgYXJncyB3ZSdyZSBnaXZlbi4uLiAqLworICAgYXJnYysrOworICAgc3RyaW5nc2l6ZSArPSBWR18oc3RybGVuKShWR18oYXJnc190aGVfZXhlbmFtZSkpICsgMTsKKyAgIGZvciAoaSA9IDA7IGkgPCBWR18oc2l6ZVhBKShWR18oYXJnc19mb3JfY2xpZW50KSk7IGkrKykgeworICAgICAgYXJnYysrOworICAgICAgc3RyaW5nc2l6ZSArPSBWR18oc3RybGVuKSgqKEhDaGFyKiopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfKGluZGV4WEEpKFZHXyhhcmdzX2Zvcl9jbGllbnQpLCBpKSkgKyAxOworICAgfQorCisgICAvKiAuLi5hbmQgdGhlIGVudmlyb25tZW50LiAqLworICAgZW52YyA9IDA7CisgICBmb3IgKGNwcCA9IG9yaWdfZW52cDsgKmNwcDsgY3BwKyspIHsKKyAgICAgIGVudmMrKzsKKyAgICAgIHN0cmluZ3NpemUgKz0gVkdfKHN0cmxlbikoKmNwcCkgKyAxOworICAgfQorCisgICAvKiBOb3csIGhvdyBiaWcgaXMgdGhlIGF1eHY/CisKKyAgICAgIEFUX1NVTl9QTEFURk9STQorICAgICAgQVRfU1VOX0VYRUNOQU1FCisgICAgICBBVF9QSERSICAgICAgICAgICAgKG5vdCBmb3IgZWxmcyB3aXRoIG5vIFBUX1BIRFIsIHN1Y2ggYXMgbGQuc28uMSkKKyAgICAgIEFUX0JBU0UKKyAgICAgIEFUX0ZMQUdTCisgICAgICBBVF9QQUdFU1oKKyAgICAgIEFUX1NVTl9BVVhGTEFGR1MKKyAgICAgIEFUX1NVTl9IV0NBUAorICAgICAgQVRfU1VOX1NZU1NUQVRfQUREUiAgICAgIChpZiBzdXBwb3J0ZWQpCisgICAgICBBVF9TVU5fU1lTU1RBVF9aT05FX0FERFIgKGlmIHN1cHBvcnRlZCkKKyAgICAgIEFUX05VTEwKKworICAgICAgSXQgd291bGQgYmUgcG9zc2libGUgdG8gYWxzbyBhZGQgQVRfUEhFTlQsIEFUX1BITlVNLCBBVF9FTlRSWSwKKyAgICAgIEFUX1NVTl9MRERBVEEsIGJ1dCB0aGV5IGRvbid0IHNlZW0gdG8gYmUgc28gaW1wb3J0YW50LiAqLworICAgYXV4c2l6ZSA9IDkgKiBzaXplb2YoKmF1eHYpOworIyAgaWYgZGVmaW5lZChTT0xBUklTX1JFU0VSVkVfU1lTU1RBVF9BRERSKQorICAgYXV4c2l6ZSArPSBzaXplb2YoKmF1eHYpOworIyAgZW5kaWYKKyMgIGlmIGRlZmluZWQoU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfWk9ORV9BRERSKQorICAgYXV4c2l6ZSArPSBzaXplb2YoKmF1eHYpOworIyAgZW5kaWYKKworIyAgaWYgZGVmaW5lZChWR0FfeDg2KSB8fCBkZWZpbmVkKFZHQV9hbWQ2NCkKKyAgIC8qIEFUX1NVTl9QTEFURk9STSBzdHJpbmcuICovCisgICBzdHJpbmdzaXplICs9IFZHXyhzdHJsZW4pKCJpODZwYyIpICsgMTsKKyMgIGVsc2UKKyMgICAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlIgorIyAgZW5kaWYKKyAgIC8qIEFUX1NVTl9FWEVDTkFNRSBzdHJpbmcuICovCisgICBzdHJpbmdzaXplICs9IFZHXyhzdHJsZW4pKHJlc29sdmVkX2V4ZV9uYW1lKSArIDE7CisKKyAgIC8qIENhbGN1bGF0ZSBob3cgYmlnIHRoZSBjbGllbnQgc3RhY2sgaXMuICovCisgICBzdGFja3NpemUgPQorICAgICAgc2l6ZW9mKFdvcmQpICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXJnYyAqLworICAgICAgc2l6ZW9mKEhDaGFyKiopICsgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXJnY1swXSA9PSBleGVuYW1lICovCisgICAgICBzaXplb2YoSENoYXIqKikgKiBhcmdjICsgICAgICAgICAgICAgICAgICAvKiBhcmd2ICovCisgICAgICBzaXplb2YoSENoYXIqKikgKyAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0ZXJtaW5hbCBOVUxMICovCisgICAgICBzaXplb2YoSENoYXIqKikgKiBlbnZjICsgICAgICAgICAgICAgICAgICAvKiBlbnZwICovCisgICAgICBzaXplb2YoSENoYXIqKikgKyAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0ZXJtaW5hbCBOVUxMICovCisgICAgICBhdXhzaXplICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhdXh2ICovCisgICAgICBWR19ST1VORFVQKHN0cmluZ3NpemUsIHNpemVvZihXb3JkKSk7ICAgICAvKiBzdHJpbmdzIChhbGlnbmVkKSAqLworCisgICAvKiBUaGUgdmFyaWFibGUgY2xpZW50X1NQIGlzIHRoZSBjbGllbnQncyBzdGFjayBwb2ludGVyLiAqLworICAgY2xpZW50X1NQID0gY2xzdGFja19lbmQgLSBzdGFja3NpemU7CisgICBjbGllbnRfU1AgPSBWR19ST1VOREROKGNsaWVudF9TUCwgMTYpOyAvKiBNYWtlIHN0YWNrIDE2IGJ5dGUgYWxpZ25lZC4gKi8KKworICAgLyogQ2FsY3VsYXRlIGJhc2Ugb2YgdGhlIHN0cmluZyB0YWJsZSAoYWxpZ25lZCkuICovCisgICBzdHJpbmdiYXNlID0gKEhDaGFyKiljbHN0YWNrX2VuZCAtIFZHX1JPVU5EVVAoc3RyaW5nc2l6ZSwgc2l6ZW9mKEludCkpOworICAgc3RydGFiID0gc3RyaW5nYmFzZTsKKworICAgY2xzdGFja19zdGFydCA9IFZHX1BHUk9VTkRETihjbGllbnRfU1ApOworCisgICAvKiBDYWxjdWxhdGUgdGhlIG1heCBzdGFjayBzaXplLiAqLworICAgY2xzdGFja19tYXhfc2l6ZSA9IFZHX1BHUk9VTkRVUChjbHN0YWNrX21heF9zaXplKTsKKworICAgLyogUmVjb3JkIHN0YWNrIGV4dGVudCAtLSBuZWVkZWQgZm9yIHN0YWNrLWNoYW5nZSBjb2RlLiAqLworICAgVkdfKGNsc3RrX3N0YXJ0X2Jhc2UpID0gY2xzdGFja19zdGFydDsKKyAgIFZHXyhjbHN0a19lbmQpID0gY2xzdGFja19lbmQ7CisgICBWR18oY2xzdGtfbWF4X3NpemUpID0gY2xzdGFja19tYXhfc2l6ZTsKKworICAgaWYgKDApCisgICAgICBWR18ocHJpbnRmKSgic3RyaW5nc2l6ZT0lbHUsIGF1eHNpemU9JWx1LCBzdGFja3NpemU9JWx1LCBtYXhzaXplPSUjbHhcbiIKKyAgICAgICAgICAgICAgICAgICJjbHN0YWNrX3N0YXJ0ICUjbHhcbiIKKyAgICAgICAgICAgICAgICAgICJjbHN0YWNrX2VuZCAgICUjbHhcbiIsCisgICAgICAgICAgICAgICAgICBzdHJpbmdzaXplLCBhdXhzaXplLCBzdGFja3NpemUsIGNsc3RhY2tfbWF4X3NpemUsCisgICAgICAgICAgICAgICAgICBjbHN0YWNrX3N0YXJ0LCBjbHN0YWNrX2VuZCk7CisKKyAgIC8qID09PT09PT09PT09PT09PT09PT09IGFsbG9jYXRlIHNwYWNlID09PT09PT09PT09PT09PT09PT09ICovCisKKyAgIHsKKyAgICAgIFNpemVUIGFub25fc2l6ZSA9IGNsc3RhY2tfZW5kIC0gY2xzdGFja19zdGFydCArIDE7CisgICAgICBTaXplVCByZXN2bl9zaXplID0gY2xzdGFja19tYXhfc2l6ZSAtIGFub25fc2l6ZTsKKyAgICAgIEFkZHIgYW5vbl9zdGFydCA9IGNsc3RhY2tfc3RhcnQ7CisgICAgICBBZGRyIHJlc3ZuX3N0YXJ0ID0gYW5vbl9zdGFydCAtIHJlc3ZuX3NpemU7CisgICAgICBTaXplVCBpbm5lcl9IQUNLID0gMDsKKyAgICAgIEJvb2wgb2s7CisKKyAgICAgIC8qIFNvIGZhciB3ZSd2ZSBvbmx5IGFjY291bnRlZCBmb3Igc3BhY2UgcmVxdWlyZW1lbnRzIGRvd24gdG8gdGhlIHN0YWNrCisgICAgICAgICBwb2ludGVyLiAgSWYgdGhpcyB0YXJnZXQncyBBQkkgcmVxdWlyZXMgYSByZWR6b25lIGJlbG93IHRoZSBzdGFjaworICAgICAgICAgcG9pbnRlciwgd2UgbmVlZCB0byBhbGxvY2F0ZSBhbiBleHRyYSBwYWdlLCB0byBoYW5kbGUgdGhlIHdvcnN0IGNhc2UKKyAgICAgICAgIGluIHdoaWNoIHRoZSBzdGFjayBwb2ludGVyIGlzIGFsbW9zdCBhdCB0aGUgYm90dG9tIG9mIGEgcGFnZSwgYW5kIHNvCisgICAgICAgICB0aGVyZSBpcyBpbnN1ZmZpY2llbnQgcm9vbSBsZWZ0IG92ZXIgdG8gcHV0IHRoZSByZWR6b25lIGluLiAgSW4gdGhpcworICAgICAgICAgY2FzZSB0aGUgc2ltcGxlIHRoaW5nIHRvIGRvIGlzIGFsbG9jYXRlIGFuIGV4dHJhIHBhZ2UsIGJ5IHNocmlua2luZworICAgICAgICAgdGhlIHJlc2VydmF0aW9uIGJ5IG9uZSBwYWdlIGFuZCBncm93aW5nIHRoZSBhbm9ueW1vdXMgYXJlYSBieSBhCisgICAgICAgICBjb3JyZXNwb25kaW5nIHBhZ2UuICovCisgICAgICB2Z19hc3NlcnQoVkdfU1RBQ0tfUkVEWk9ORV9TWkIgPj0gMCk7CisgICAgICB2Z19hc3NlcnQoVkdfU1RBQ0tfUkVEWk9ORV9TWkIgPCBWS0lfUEFHRV9TSVpFKTsKKyAgICAgIGlmIChWR19TVEFDS19SRURaT05FX1NaQiA+IDApIHsKKyAgICAgICAgIHZnX2Fzc2VydChyZXN2bl9zaXplID4gVktJX1BBR0VfU0laRSk7CisgICAgICAgICByZXN2bl9zaXplIC09IFZLSV9QQUdFX1NJWkU7CisgICAgICAgICBhbm9uX3N0YXJ0IC09IFZLSV9QQUdFX1NJWkU7CisgICAgICAgICBhbm9uX3NpemUgKz0gVktJX1BBR0VfU0laRTsKKyAgICAgIH0KKworICAgICAgdmdfYXNzZXJ0KFZHX0lTX1BBR0VfQUxJR05FRChhbm9uX3NpemUpKTsKKyAgICAgIHZnX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQocmVzdm5fc2l6ZSkpOworICAgICAgdmdfYXNzZXJ0KFZHX0lTX1BBR0VfQUxJR05FRChhbm9uX3N0YXJ0KSk7CisgICAgICB2Z19hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKHJlc3ZuX3N0YXJ0KSk7CisgICAgICB2Z19hc3NlcnQocmVzdm5fc3RhcnQgPT0gY2xzdGFja19lbmQgKyAxIC0gY2xzdGFja19tYXhfc2l6ZSk7CisKKyMgICAgIGlmZGVmIEVOQUJMRV9JTk5FUgorICAgICAgLyogQ3JlYXRlIDFNIG5vbi1mYXVsdC1leHRlbmRpbmcgc3RhY2suICovCisgICAgICBpbm5lcl9IQUNLID0gMTAyNCAqIDEwMjQ7CisjICAgICBlbmRpZgorCisgICAgICBpZiAoMCkKKyAgICAgICAgIFZHXyhwcmludGYpKCJyZXN2bl9zdGFydD0lI2x4LCByZXN2bl9zaXplPSUjbHhcbiIKKyAgICAgICAgICAgICAgICAgICAgICJhbm9uX3N0YXJ0PSUjbHgsIGFub25fc2l6ZT0lI2x4XG4iLAorICAgICAgICAgICAgICAgICAgICAgcmVzdm5fc3RhcnQsIHJlc3ZuX3NpemUsIGFub25fc3RhcnQsIGFub25fc2l6ZSk7CisKKyAgICAgIC8qIENyZWF0ZSBhIHNocmlua2FibGUgcmVzZXJ2YXRpb24gZm9sbG93ZWQgYnkgYW4gYW5vbnltb3VzIHNlZ21lbnQuCisgICAgICAgICBUb2dldGhlciB0aGVzZSBjb25zdGl0dXRlIGEgZ3Jvd2Rvd24gc3RhY2suICovCisgICAgICBvayA9IFZHXyhhbV9jcmVhdGVfcmVzZXJ2YXRpb24pKHJlc3ZuX3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN2bl9zaXplIC0gaW5uZXJfSEFDSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU21VcHBlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbl9zaXplICsgaW5uZXJfSEFDSyk7CisgICAgICBpZiAob2spIHsKKyAgICAgICAgIC8qIEFsbG9jYXRlIGEgc3RhY2sgLSBtbWFwIGVub3VnaCBzcGFjZSBmb3IgdGhlIHN0YWNrLiAqLworICAgICAgICAgcmVzID0gVkdfKGFtX21tYXBfYW5vbl9maXhlZF9jbGllbnQpKGFub25fc3RhcnQgLSBpbm5lcl9IQUNLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub25fc2l6ZSArIGlubmVyX0hBQ0ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+c3RhY2tfcHJvdCk7CisgICAgICB9CisgICAgICBpZiAoIW9rIHx8IHNyX2lzRXJyb3IocmVzKSkgeworICAgICAgICAgLyogQWxsb2NhdGlvbiBvZiB0aGUgc3RhY2sgZmFpbGVkLiAgV2UgaGF2ZSB0byBzdG9wLiAqLworICAgICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiAiCisgICAgICAgICAgICAgICAgICAgICAiSSBmYWlsZWQgdG8gYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBhcHBsaWNhdGlvbidzIHN0YWNrLlxuIik7CisgICAgICAgICBWR18ocHJpbnRmKSgidmFsZ3JpbmQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICJUaGlzIG1heSBiZSB0aGUgcmVzdWx0IG9mIGEgdmVyeSBsYXJnZSAtLW1haW4tc3RhY2tzaXplPVxuIik7CisgICAgICAgICBWR18ocHJpbnRmKSgidmFsZ3JpbmQ6IHNldHRpbmcuICBDYW5ub3QgY29udGludWUuICBTb3JyeS5cblxuIik7CisgICAgICAgICBWR18oZXhpdCkoMSk7CisgICAgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgfQorICAgfQorCisgICAvKiA9PT09PT09PT09PT09PT09PT09PSBjcmVhdGUgY2xpZW50IHN0YWNrID09PT09PT09PT09PT09PT09PT09ICovCisKKyAgIHB0ciA9IChBZGRyKiljbGllbnRfU1A7CisKKyAgIC8qIENvcHktb3V0IGNsaWVudCBhcmdjLiAqLworICAgKnB0cisrID0gYXJnYzsKKworICAgLyogQ29weS1vdXQgY2xpZW50IGFyZ3YuICovCisgICBpZiAoaW5mby0+aW50ZXJwX25hbWUpIHsKKyAgICAgICpwdHIrKyA9IChBZGRyKWNvcHlfc3RyKCZzdHJ0YWIsIGluZm8tPmludGVycF9uYW1lKTsKKyAgICAgIFZHXyhmcmVlKShpbmZvLT5pbnRlcnBfbmFtZSk7CisgICB9CisgICBpZiAoaW5mby0+aW50ZXJwX2FyZ3MpIHsKKyAgICAgICpwdHIrKyA9IChBZGRyKWNvcHlfc3RyKCZzdHJ0YWIsIGluZm8tPmludGVycF9hcmdzKTsKKyAgICAgIFZHXyhmcmVlKShpbmZvLT5pbnRlcnBfYXJncyk7CisgICB9CisKKyAgICpwdHIrKyA9IChBZGRyKWNvcHlfc3RyKCZzdHJ0YWIsIFZHXyhhcmdzX3RoZV9leGVuYW1lKSk7CisgICBmb3IgKGkgPSAwOyBpIDwgVkdfKHNpemVYQSkoVkdfKGFyZ3NfZm9yX2NsaWVudCkpOyBpKyspCisgICAgICAqcHRyKysgPSAoQWRkciljb3B5X3N0cigKKyAgICAgICAgICAgICAgICAgICZzdHJ0YWIsICooSENoYXIqKikgVkdfKGluZGV4WEEpKFZHXyhhcmdzX2Zvcl9jbGllbnQpLCBpKSk7CisgICAqcHRyKysgPSAwOworCisgICAvKiBDb3B5LW91dCBlbnZwLiAqLworICAgVkdfKGNsaWVudF9lbnZwKSA9IChIQ2hhcioqKXB0cjsKKyAgIGZvciAoY3BwID0gb3JpZ19lbnZwOyAqY3BwOyBwdHIrKywgY3BwKyspCisgICAgICAqcHRyID0gKEFkZHIpY29weV9zdHIoJnN0cnRhYiwgKmNwcCk7CisgICAqcHRyKysgPSAwOworCisgICAvKiBDcmVhdGUgYXV4IHZlY3Rvci4gKi8KKyAgIGF1eHYgPSAoYXV4dl90KilwdHI7CisgICBWR18oY2xpZW50X2F1eHYpID0gKFVXb3JkKilwdHI7CisKKyAgIC8qIEFUX1NVTl9QTEFURk9STSAqLworICAgYXV4di0+YV90eXBlID0gVktJX0FUX1NVTl9QTEFURk9STTsKKyMgIGlmIGRlZmluZWQoVkdBX3g4NikgfHwgZGVmaW5lZChWR0FfYW1kNjQpCisgICBhdXh2LT5hX3VuLmFfcHRyID0gY29weV9zdHIoJnN0cnRhYiwgImk4NnBjIik7CisjICBlbHNlCisjICAgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSIKKyMgIGVuZGlmCisgICBhdXh2Kys7CisKKyAgIC8qIEFUX1NVTl9FWEVDTkFNRSAqLworICAgYXV4di0+YV90eXBlID0gVktJX0FUX1NVTl9FWEVDTkFNRTsKKyAgIGF1eHYtPmFfdW4uYV9wdHIgPSBjb3B5X3N0cigmc3RydGFiLCByZXNvbHZlZF9leGVfbmFtZSk7CisgICBhdXh2Kys7CisKKyAgIC8qIEFUX1BIRFIgKi8KKyAgIGlmICgoaW5mby0+cmVhbF9waGRyX3ByZXNlbnQpICYmIChpbmZvLT5waGRyICE9IDApKSB7CisgICAgICBhdXh2LT5hX3R5cGUgPSBWS0lfQVRfUEhEUjsKKyAgICAgIGF1eHYtPmFfdW4uYV92YWwgPSBpbmZvLT5waGRyOworICAgICAgYXV4disrOworICAgfQorCisgICAvKiBBVF9CQVNFICovCisgICBhdXh2LT5hX3R5cGUgPSBWS0lfQVRfQkFTRTsKKyAgIGF1eHYtPmFfdW4uYV92YWwgPSBpbmZvLT5pbnRlcnBfb2Zmc2V0OworICAgYXV4disrOworCisgICAvKiBBVF9GTEFHUyAqLworICAgYXV4di0+YV90eXBlID0gVktJX0FUX0ZMQUdTOworIyAgaWYgZGVmaW5lZChWR0FfeDg2KSB8fCBkZWZpbmVkKFZHQV9hbWQ2NCkKKyAgIGF1eHYtPmFfdW4uYV92YWwgPSAwOyAvKiAwIG9uIGk4NnBjICovCisjICBlbHNlCisjICAgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSIKKyMgIGVuZGlmCisgICBhdXh2Kys7CisKKyAgIC8qIEFUX1BBR0VTWiAqLworICAgYXV4di0+YV90eXBlID0gVktJX0FUX1BBR0VTWjsKKyAgIGF1eHYtPmFfdW4uYV92YWwgPSBWS0lfUEFHRV9TSVpFOworICAgYXV4disrOworCisgICAvKiBBVF9TVU5fQVVYRkxBRkdTICovCisgICBhdXh2LT5hX3R5cGUgPSBWS0lfQVRfU1VOX0FVWEZMQUdTOworICAgLyogWFhYIEhhbmRsZSBBRl9TVU5fU0VUVUdJRD8gKi8KKyAgIGF1eHYtPmFfdW4uYV92YWwgPSBWS0lfQUZfU1VOX0hXQ0FQVkVSSUZZOworICAgYXV4disrOworCisgICAvKiBBVF9TVU5fSFdDQVAgKi8KKyAgIHsKKyAgICAgIFZleEFyY2ggdmV4X2FyY2g7CisgICAgICBWZXhBcmNoSW5mbyB2ZXhfYXJjaGluZm87CisgICAgICBVSW50IGh3Y2FwczsKKworICAgICAgVkdfKG1hY2hpbmVfZ2V0X1ZleEFyY2hJbmZvKSgmdmV4X2FyY2gsICZ2ZXhfYXJjaGluZm8pOworCisjICAgICBpZiBkZWZpbmVkKFZHQV94ODYpCisgICAgICB2Z19hc3NlcnQodmV4X2FyY2ggPT0gVmV4QXJjaFg4Nik7CisKKyAgICAgIC8qIFNldCBkZWZhdWx0IGh3Y2Fwcy4gKi8KKyAgICAgIGh3Y2FwcyA9CisgICAgICAgICAgIFZLSV9BVl8zODZfRlBVICAgICAgIC8qIHg4Ny1zdHlsZSBmbG9hdGluZyBwb2ludCAqLworICAgICAgICAgfCBWS0lfQVZfMzg2X1RTQyAgICAgICAvKiByZHRzYyBpbnNuICovCisgICAgICAgICB8IFZLSV9BVl8zODZfQ1g4ICAgICAgIC8qIGNtcHhjaGc4YiBpbnNuICovCisgICAgICAgICB8IFZLSV9BVl8zODZfU0VQICAgICAgIC8qIHN5c2VudGVyIGFuZCBzeXNleGl0ICovCisgICAgICAgICB8IFZLSV9BVl8zODZfQU1EX1NZU0MgIC8qIEFNRCdzIHN5c2NhbGwgYW5kIHN5c3JldCAqLworICAgICAgICAgfCBWS0lfQVZfMzg2X0NNT1YgICAgICAvKiBjb25kaXRpb25hbCBtb3ZlIGluc25zICovCisgICAgICAgICB8IFZLSV9BVl8zODZfTU1YICAgICAgIC8qIE1NWCBpbnNuICovCisgICAgICAgICB8IFZLSV9BVl8zODZfQUhGOyAgICAgIC8qIGxhaGYvc2FoZiBpbnNucyAqLworCisgICAgICAvKiBIYW5kbGUgYWRkaXRpb25hbCBod2NhcHMuICovCisgICAgICBpZiAodmV4X2FyY2hpbmZvLmh3Y2FwcyAmIFZFWF9IV0NBUFNfWDg2X1NTRTEpCisgICAgICAgICBod2NhcHMgfD0KKyAgICAgICAgICAgICAgVktJX0FWXzM4Nl9GWFNSICAgLyogZnhzYXZlIGFuZCBmeHJzdG9yICovCisgICAgICAgICAgICB8IFZLSV9BVl8zODZfU1NFOyAgIC8qIFNTRSBpbnNucyBhbmQgcmVncyAgKi8KKyAgICAgIGlmICh2ZXhfYXJjaGluZm8uaHdjYXBzICYgVkVYX0hXQ0FQU19YODZfU1NFMikgeworICAgICAgICAgdmdfYXNzZXJ0KHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX1g4Nl9TU0UxKTsKKyAgICAgICAgIGh3Y2FwcyB8PQorICAgICAgICAgICAgICBWS0lfQVZfMzg2X1NTRTI7ICAvKiBTU0UyIGluc25zIGFuZCByZWdzICovCisgICAgICB9CisgICAgICBpZiAodmV4X2FyY2hpbmZvLmh3Y2FwcyAmIFZFWF9IV0NBUFNfWDg2X1NTRTMpIHsKKyAgICAgICAgIHZnX2Fzc2VydCh2ZXhfYXJjaGluZm8uaHdjYXBzICYgVkVYX0hXQ0FQU19YODZfU1NFMik7CisgICAgICAgICBod2NhcHMgfD0KKyAgICAgICAgICAgICAgVktJX0FWXzM4Nl9TU0UzICAgLyogU1NFMyBpbnNucyBhbmQgcmVncyAqLworICAgICAgICAgICAgfCBWS0lfQVZfMzg2X1NTU0UzOyAvKiBJbnRlbCBTU1NFMyBpbnNucyAqLworICAgICAgfQorICAgICAgaWYgKHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX1g4Nl9MWkNOVCkKKyAgICAgICAgIGh3Y2FwcyB8PQorICAgICAgICAgICAgICBWS0lfQVZfMzg2X0FNRF9MWkNOVDsgLyogQU1EJ3MgTFpDTlQgaW5zbiAqLworCisgICAgICAvKiBObyBzdXBwb3J0IGZvcjoKKyAgICAgICAgIEFWXzM4Nl9BTURfTU1YICAgICAgICAgQU1EJ3MgTU1YIGluc25zCisgICAgICAgICBBVl8zODZfQU1EXzNETm93ICAgICAgIEFNRCdzIDNEbm93ISBpbnNucworICAgICAgICAgQVZfMzg2X0FNRF8zRE5vd3ggICAgICBBTUQncyAzRG5vdyEgZXh0ZW5kZWQgaW5zbnMKKyAgICAgICAgIEFWXzM4Nl9DWDE2ICAgICAgICAgICAgY21weGNoZzE2YiBpbnNuCisgICAgICAgICBBVl8zODZfVFNDUCAgICAgICAgICAgIHJkdHNjcCBpbnN0cnVjdGlvbgorICAgICAgICAgQVZfMzg2X0FNRF9TU0U0QSAgICAgICBBTUQncyBTU0U0QSBpbnNucworICAgICAgICAgQVZfMzg2X1BPUENOVCAgICAgICAgICBQT1BDTlQgaW5zbgorICAgICAgICAgQVZfMzg2X1NTRTRfMSAgICAgICAgICBJbnRlbCBTU0U0LjEgaW5zbnMKKyAgICAgICAgIEFWXzM4Nl9TU0U0XzIgICAgICAgICAgSW50ZWwgU1NFNC4yIGluc25zCisgICAgICAgICBBVl8zODZfTU9WQkUgICAgICAgICAgIEludGVsIE1PVkJFIGluc25zCisgICAgICAgICBBVl8zODZfQUVTICAgICAgICAgICAgIEludGVsIEFFUyBpbnNucworICAgICAgICAgQVZfMzg2X1BDTE1VTFFEUSAgICAgICBJbnRlbCBQQ0xNVUxRRFEgaW5zbgorICAgICAgICAgQVZfMzg2X1hTQVZFICAgICAgICAgICBJbnRlbCBYU0FWRS9YUlNUT1IgaW5zbnMKKyAgICAgICAgIEFWXzM4Nl9BVlggICAgICAgICAgICAgSW50ZWwgQVZYIGluc25zCisgICAgICAgICBpbGx1bW9zIG9ubHk6CisgICAgICAgICAgICBBVl8zODZfVk1YICAgICAgICAgIEludGVsIFZNWCBzdXBwb3J0CisgICAgICAgICAgICBBVl8zODZfQU1EX1NWTSAgICAgIEFNRCBTVk0gc3VwcG9ydAorICAgICAgICAgc29sYXJpcyBvbmx5OgorICAgICAgICAgICAgQVZfMzg2X0FNRF9YT1AgICAgICBBTUQgWE9QIGluc25zCisgICAgICAgICAgICBBVl8zODZfQU1EX0ZNQTQgICAgIEFNRCBGTUE0IGluc25zICovCisKKyMgICAgIGVsaWYgZGVmaW5lZChWR0FfYW1kNjQpCisgICAgICB2Z19hc3NlcnQodmV4X2FyY2ggPT0gVmV4QXJjaEFNRDY0KTsKKworICAgICAgLyogU2V0IGRlZmF1bHQgaHdjYXBzLiAqLworICAgICAgaHdjYXBzID0KKyAgICAgICAgICAgVktJX0FWXzM4Nl9GUFUgICAgICAgLyogeDg3LXN0eWxlIGZsb2F0aW5nIHBvaW50ICovCisgICAgICAgICB8IFZLSV9BVl8zODZfVFNDICAgICAgIC8qIHJkdHNjIGluc24gKi8KKyAgICAgICAgIHwgVktJX0FWXzM4Nl9DWDggICAgICAgLyogY21weGNoZzhiIGluc24gKi8KKyAgICAgICAgIHwgVktJX0FWXzM4Nl9BTURfU1lTQyAgLyogQU1EJ3Mgc3lzY2FsbCBhbmQgc3lzcmV0ICovCisgICAgICAgICB8IFZLSV9BVl8zODZfQ01PViAgICAgIC8qIGNvbmRpdGlvbmFsIG1vdmUgaW5zbnMgKi8KKyAgICAgICAgIHwgVktJX0FWXzM4Nl9NTVggICAgICAgLyogTU1YIGluc24gKi8KKyAgICAgICAgIHwgVktJX0FWXzM4Nl9BSEYgICAgICAgLyogbGFoZi9zYWhmIGluc25zICovCisgICAgICAgICB8IFZLSV9BVl8zODZfRlhTUiAgICAgIC8qIGZ4c2F2ZSBhbmQgZnhyc3RvciAqLworICAgICAgICAgfCBWS0lfQVZfMzg2X1NTRSAgICAgICAvKiBTU0UgaW5zbnMgYW5kIHJlZ3MgICovCisgICAgICAgICB8IFZLSV9BVl8zODZfU1NFMjsgICAgIC8qIFNTRTIgaW5zbnMgYW5kIHJlZ3MgKi8KKworICAgICAgLyogSGFuZGxlIGFkZGl0aW9uYWwgaHdjYXBzLiAqLworICAgICAgaWYgKHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X1NTRTMpCisgICAgICAgICBod2NhcHMgfD0KKyAgICAgICAgICAgICAgVktJX0FWXzM4Nl9TU0UzICAgLyogU1NFMyBpbnNucyBhbmQgcmVncyAqLworICAgICAgICAgICAgfCBWS0lfQVZfMzg2X1NTU0UzOyAvKiBJbnRlbCBTU1NFMyBpbnNucyAqLworICAgICAgaWYgKHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X0NYMTYpCisgICAgICAgICBod2NhcHMgfD0KKyAgICAgICAgICAgICAgVktJX0FWXzM4Nl9DWDE2OyAgLyogY21weGNoZzE2YiBpbnNuICovCisgICAgICBpZiAodmV4X2FyY2hpbmZvLmh3Y2FwcyAmIFZFWF9IV0NBUFNfQU1ENjRfTFpDTlQpCisgICAgICAgICBod2NhcHMgfD0KKyAgICAgICAgICAgICAgVktJX0FWXzM4Nl9BTURfTFpDTlQ7IC8qIEFNRCdzIExaQ05UIGluc24gKi8KKyAgICAgIGlmICh2ZXhfYXJjaGluZm8uaHdjYXBzICYgVkVYX0hXQ0FQU19BTUQ2NF9SRFRTQ1ApCisgICAgICAgICBod2NhcHMgfD0KKyAgICAgICAgICAgICAgVktJX0FWXzM4Nl9UU0NQOyAgLyogcmR0c2NwIGluc3RydWN0aW9uICovCisgICAgICBpZiAoKHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X1NTRTMpICYmCisgICAgICAgICAgKHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X0NYMTYpKSB7CisgICAgICAgICAvKiBUaGUgQ1BVSUQgc2ltdWxhdGlvbiBwcm92aWRlZCBieSBWRVggY2xhaW1zIHRvIGhhdmUgUE9QQ05ULCBBRVMKKyAgICAgICAgICAgIGFuZCBTU0U0IChTU0U0LjEvU1NFNC4yKSBpbiB0aGUgU1NFMytDWDE2IGNvbmZpZ3VyYXRpb24uICovCisgICAgICAgICBod2NhcHMgfD0KKyAgICAgICAgICAgICAgVktJX0FWXzM4Nl9QT1BDTlQgLyogUE9QQ05UIGluc24gKi8KKyAgICAgICAgICAgIHwgVktJX0FWXzM4Nl9BRVMgICAgLyogSW50ZWwgQUVTIGluc25zICovCisgICAgICAgICAgICB8IFZLSV9BVl8zODZfU1NFNF8xIC8qIEludGVsIFNTRTQuMSBpbnNucyAqLworICAgICAgICAgICAgfCBWS0lfQVZfMzg2X1NTRTRfMjsgLyogSW50ZWwgU1NFNC4yIGluc25zICovCisgICAgICB9CisgICAgICBpZiAoKHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X1NTRTMpICYmCisgICAgICAgICAgKHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X0NYMTYpICYmCisgICAgICAgICAgKHZleF9hcmNoaW5mby5od2NhcHMgJiBWRVhfSFdDQVBTX0FNRDY0X0FWWCkpIHsKKyAgICAgICAgIC8qIFRoZSBDUFVJRCBzaW11bGF0aW9uIHByb3ZpZGVkIGJ5IFZFWCBjbGFpbXMgdG8gaGF2ZSBQQ0xNVUxRRFEgYW5kCisgICAgICAgICAgICBYU0FWRSBpbiB0aGUgU1NFMytDWDE2K0FWWCBjb25maWd1cmF0aW9uLiAqLworICAgICAgICAgaHdjYXBzIHw9CisgICAgICAgICAgICAgIFZLSV9BVl8zODZfUENMTVVMUURRIC8qIEludGVsIFBDTE1VTFFEUSBpbnNuICovCisgICAgICAgICAgICB8IFZLSV9BVl8zODZfWFNBVkU7IC8qIEludGVsIFhTQVZFL1hSU1RPUiBpbnNucyAqLworICAgICAgfQorICAgICAgLyogTm8gc3VwcG9ydCBmb3I6CisgICAgICAgICBBVl8zODZfU0VQICAgICAgICAgICAgIHN5c2VudGVyIGFuZCBzeXNleGl0CisgICAgICAgICBBVl8zODZfQU1EX01NWCAgICAgICAgIEFNRCdzIE1NWCBpbnNucworICAgICAgICAgQVZfMzg2X0FNRF8zRE5vdyAgICAgICBBTUQncyAzRG5vdyEgaW5zbnMKKyAgICAgICAgIEFWXzM4Nl9BTURfM0ROb3d4ICAgICAgQU1EJ3MgM0Rub3chIGV4dGVuZGVkIGluc25zCisgICAgICAgICBBVl8zODZfQU1EX1NTRTRBICAgICAgIEFNRCdzIFNTRTRBIGluc25zCisgICAgICAgICBBVl8zODZfTU9WQkUgICAgICAgICAgIEludGVsIE1PVkJFIGluc25zCisgICAgICAgICBBVl8zODZfQVZYICAgICAgICAgICAgIEludGVsIEFWWCBpbnNucworICAgICAgICAgaWxsdW1vcyBvbmx5OgorICAgICAgICAgICAgQVZfMzg2X1ZNWCAgICAgICAgICBJbnRlbCBWTVggc3VwcG9ydAorICAgICAgICAgICAgQVZfMzg2X0FNRF9TVk0gICAgICBBTUQgU1ZNIHN1cHBvcnQKKyAgICAgICAgIHNvbGFyaXMgb25seToKKyAgICAgICAgICAgIEFWXzM4Nl9BTURfWE9QICAgICAgQU1EIFhPUCBpbnNucworICAgICAgICAgICAgQVZfMzg2X0FNRF9GTUE0ICAgICBBTUQgRk1BNCBpbnNucworCisgICAgICAgICBUT0RPIFZFWCBzdXBwb3J0cyBBVlgsIEJNSSBhbmQgQVZYMi4gSW52ZXN0aWdhdGUgaWYgdGhleSBjYW4gYmUKKyAgICAgICAgIGVuYWJsZWQgb24gU29sYXJpcy9pbGx1bW9zLgorICAgICAgICovCisKKyMgICAgIGVsc2UKKyMgICAgICAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlIgorIyAgICAgZW5kaWYKKworICAgICAgYXV4di0+YV90eXBlID0gVktJX0FUX1NVTl9IV0NBUDsKKyAgICAgIGF1eHYtPmFfdW4uYV92YWwgPSBod2NhcHM7CisgICAgICBhdXh2Kys7CisgICB9CisKKyAgIC8qIEFUX1NVTl9IV0NBUDIgKi8KKyAgIHsKKyAgICAgIC8qIE5vIHN1cHBvcnQgZm9yOgorICAgICAgICAgaWxsdW1vcyBvbmx5OgorICAgICAgICAgICAgQVZfMzg2XzJfRjE2QyAgICAgICBGMTZDIGhhbGYgcGVyY2lzaW9uIGV4dGVuc2lvbnMKKyAgICAgICAgICAgIEFWXzM4Nl8yX1JEUkFORCAgICAgUkRSQU5EIGluc24KKyAgICAgICAgIHNvbGFyaXMgb25seToKKyAgICAgICAgICAgIEFWMl8zODZfUkRSQU5EICAgICAgSW50ZWwgUkRSQU5EIGluc25zCisgICAgICAgICAgICBBVjJfMzg2X0ZNQSAgICAgICAgIEludGVsIEZNQSBpbnNuCisgICAgICAgICAgICBBVjJfMzg2X0YxNkMgICAgICAgIElFRUUgaGFsZiBwcmVjbihmbG9hdCkgaW5zbgorICAgICAgICAgICAgQVYyXzM4Nl9BTURfVEJNICAgICBBTUQgVEJNIGluc24KKyAgICAgICAgICAgIEFWMl8zODZfQk1JMSAgICAgICAgSW50ZWwgQk1JMSBpbnNuCisgICAgICAgICAgICBBVjJfMzg2X0ZTR1NCQVNFICAgIEludGVsIFJEL1dSIEZTL0dTQkFTRSBpbnNuCisgICAgICAgICAgICBBVjJfMzg2X0FWWDIgICAgICAgIEludGVsIEFWWDIgaW5zbnMKKyAgICAgICAgICAgIEFWMl8zODZfQk1JMiAgICAgICAgSW50ZWwgQk1JMiBpbnNucworICAgICAgICAgICAgQVYyXzM4Nl9ITEUgICAgICAgICBJbnRlbCBITEUgaW5zbnMKKyAgICAgICAgICAgIEFWMl8zODZfUlRNICAgICAgICAgSW50ZWwgUlRNIGluc25zCisgICAgICAgICAgICBBVjJfMzg2X0VGUyAgICAgICAgIEludGVsIEVuaGFuY2VkIEZhc3QgU3RyaW5nCisgICAgICAgICAgICBBVjJfMzg2X1JEU0VFRCAgICAgIEludGVsIFJEU0VFRCBpbnNuCisgICAgICAgICAgICBBVjJfMzg2X0FEWCAgICAgICAgIEludGVsIEFEWCBpbnNucworICAgICAgICAgICAgQVYyXzM4Nl9QUkZDSFcgICAgICBJbnRlbCBQUkVGRVRDSFcgaGludAorICAgICAgICovCisgICB9CisKKyMgIGlmIGRlZmluZWQoU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfQUREUikKKyAgIC8qIEFUX1NVTl9TWVNTVEFUX0FERFIgKi8KKyAgIGNvcHlfYXV4dl9lbnRyeShvcmlnX2F1eHYsIFZLSV9BVF9TVU5fU1lTU1RBVF9BRERSLAorICAgICAgICAgICAgICAgICAgICJBVF9TVU5fU1lTU1RBVF9BRERSIiwgYXV4dik7CisgICBWR18oY2hhbmdlX21hcHBpbmdfb3duZXJzaGlwKShhdXh2LT5hX3VuLmFfdmFsLCBUcnVlKTsKKyAgIGF1eHYrKzsKKyMgIGVuZGlmCisKKyMgIGlmIGRlZmluZWQoU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfWk9ORV9BRERSKQorICAgLyogQVRfU1VOX1NZU1NUQVRfWk9ORV9BRERSICovCisgICBjb3B5X2F1eHZfZW50cnkob3JpZ19hdXh2LCBWS0lfQVRfU1VOX1NZU1NUQVRfWk9ORV9BRERSLAorICAgICAgICAgICAgICAgICAgICJBVF9TVU5fU1lTU1RBVF9aT05FX0FERFIiLCBhdXh2KTsKKyAgIFZHXyhjaGFuZ2VfbWFwcGluZ19vd25lcnNoaXApKGF1eHYtPmFfdW4uYV92YWwsIFRydWUpOworICAgYXV4disrOworIyAgZW5kaWYKKworICAgLyogQVRfTlVMTCAqLworICAgYXV4di0+YV90eXBlID0gVktJX0FUX05VTEw7CisgICBhdXh2LT5hX3VuLmFfdmFsID0gMDsKKworICAgdmdfYXNzZXJ0KHN0cnRhYiAtIHN0cmluZ2Jhc2UgPT0gc3RyaW5nc2l6ZSk7CisKKyAgIC8qIFRoZSB2YXJpYWJsZSBjbGllbnRfU1AgaXMgbm93IHBvaW50aW5nIGF0IGNsaWVudCdzIGFyZ2MvYXJndi4gKi8KKworICAgaWYgKDApCisgICAgICBWR18ocHJpbnRmKSgic3RhcnR1cCBTUCA9ICUjbHhcbiIsIGNsaWVudF9TUCk7CisgICByZXR1cm4gY2xpZW50X1NQOworfQorCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qPT09IFRPUC1MRVZFTDogVkdfKHNldHVwX2NsaWVudF9pbml0aWFsX2ltYWdlKSAgICAgICAgICAgICAgICAgICA9PT0qLworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisKKy8qIENyZWF0ZSB0aGUgY2xpZW50J3MgaW5pdGlhbCBtZW1vcnkgaW1hZ2UuICovCitJSUZpbmFsaXNlSW1hZ2VJbmZvIFZHXyhpaV9jcmVhdGVfaW1hZ2UpKElJQ3JlYXRlSW1hZ2VJbmZvIGlpY2lpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZXhBcmNoSW5mbyAqdmV4X2FyY2hpbmZvKQoreworICAgRXhlSW5mbyBpbmZvOworICAgSENoYXIgKiplbnYgPSBOVUxMOworICAgSENoYXIgcmVzb2x2ZWRfZXhlX25hbWVbVktJX1BBVEhfTUFYXTsKKworICAgSUlGaW5hbGlzZUltYWdlSW5mbyBpaWZpaTsKKyAgIFZHXyhtZW1zZXQpKCZpaWZpaSwgMCwgc2l6ZW9mKGlpZmlpKSk7CisKKyAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC8vIExvYWQgY2xpZW50IGV4ZWN1dGFibGUsIGZpbmRpbmcgaW4gJFBBVEggaWYgbmVjZXNzYXJ5CisgICAvLyAgIHA6IGVhcmx5X3Byb2Nlc3NfY21kX2xpbmVfb3B0aW9ucygpICBbZm9yICdleGVjJywgJ25lZWRfaGVscCddCisgICAvLyAgIHA6IGxheW91dF9yZW1haW5pbmdfc3BhY2UgICAgICAgICAgICBbc28gdGhlcmUncyBzcGFjZV0KKyAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFZHXyhkZWJ1Z0xvZykoMSwgImluaXRpbWciLCAiTG9hZGluZyBjbGllbnRcbiIpOworCisgICBpZiAoIVZHXyhhcmdzX3RoZV9leGVuYW1lKSkgeworICAgICAgVkdfKGVycl9taXNzaW5nX3Byb2cpKCk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgfQorCisgICBsb2FkX2NsaWVudCgmaW5mbywgcmVzb2x2ZWRfZXhlX25hbWUsIHNpemVvZihyZXNvbHZlZF9leGVfbmFtZSkpOworICAgaWlmaWkuaW5pdGlhbF9jbGllbnRfSVAgPSBpbmZvLmluaXRfaXA7CisgICAvKiBOb3RlOiBUT0MgaXNuJ3QgYXZhaWxhYmxlIG9uIFNvbGFyaXMuICovCisgICBpaWZpaS5pbml0aWFsX2NsaWVudF9UT0MgPSBpbmZvLmluaXRfdG9jOworICAgaWlmaWkuaW5pdGlhbF9jbGllbnRfVFAgPSBpbmZvLmluaXRfdGhycHRyOworICAgLyogTm90ZSB0aGF0IGlpZmlpLmNsaWVudF9hdXh2IGlzIG5ldmVyIHNldCBvbiBTb2xhcmlzLCBiZWNhdXNlIGl0IGlzbid0CisgICAgICBuZWNlc3NhcnkgdG8gaGF2ZSB0aGlzIHZhbHVlIGluIFZHXyhpaV9maW5hbGlzZV9pbWFnZSkuICovCisKKyAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC8vIFNldCB1cCBjbGllbnQncyBlbnZpcm9ubWVudAorICAgLy8gICBwOiBzZXQtbGliZGlyICAgICAgICAgICAgICAgICAgICAgICBbZm9yIFZHXyhsaWJkaXIpXQorICAgLy8gICBwOiBlYXJseV9wcm9jZXNzX2NtZF9saW5lX29wdGlvbnMoKSBbZm9yIHRvb2xuYW1lXQorICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgVkdfKGRlYnVnTG9nKSgxLCAiaW5pdGltZyIsICJTZXR1cCBjbGllbnQgZW52XG4iKTsKKyAgIGVudiA9IHNldHVwX2NsaWVudF9lbnYoaWljaWkuZW52cCwgaWljaWkudG9vbG5hbWUpOworCisgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAvLyBTZXR1cCBjbGllbnQgc3RhY2sgYW5kIEVJUAorICAgLy8gICBwOiBsb2FkX2NsaWVudCgpICAgICBbZm9yICdpbmZvJ10KKyAgIC8vICAgcDogZml4X2Vudmlyb25tZW50KCkgW2ZvciAnZW52J10KKyAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIHsKKyAgICAgIC8qIFdoZW4gYWxsb2NhdGluZyBzcGFjZSBmb3IgdGhlIGNsaWVudCBzdGFjaywgdGFrZSBub3RpY2Ugb2YgdGhlCisgICAgICAgICAtLW1haW4tc3RhY2tzaXplIHZhbHVlLiAgVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBydW4gcHJvZ3JhbXMgd2l0aAorICAgICAgICAgdmVyeSBsYXJnZSAocHJpbWFyeSkgc3RhY2sgcmVxdWlyZW1lbnRzIHNpbXBseSBieSBzcGVjaWZ5aW5nCisgICAgICAgICAtLW1haW4tc3RhY2tzaXplLiAqLworICAgICAgLyogTG9naWMgaXMgYXMgZm9sbG93czoKKyAgICAgICAgIC0gQnkgZGVmYXVsdCwgdXNlIHRoZSBjbGllbnQncyBjdXJyZW50IHN0YWNrIHJsaW1pdC4KKyAgICAgICAgIC0gSWYgdGhhdCBleGNlZWRzIDE2TSwgY2xhbXAgdG8gMTZNLgorICAgICAgICAgLSBJZiBhIGxhcmdlciAtLW1haW4tc3RhY2tzaXplIHZhbHVlIGlzIHNwZWNpZmllZCwgdXNlIHRoYXQgaW5zdGVhZC4KKyAgICAgICAgIC0gSW4gYWxsIHNpdHVhdGlvbnMsIHRoZSBtaW5pbXVtIGFsbG93ZWQgc3RhY2sgc2l6ZSBpcyAxTS4KKyAgICAgICovCisgICAgICBBZGRyIGluaXRfc3AgPSAoQWRkcikgKGlpY2lpLmFyZ3YgLSAxKTsKKyAgICAgIFNpemVUIG0xICA9IDEwMjQgKiAxMDI0OworICAgICAgU2l6ZVQgbTE2ID0gMTYgKiBtMTsKKyAgICAgIFNpemVUIHN6QiA9IChTaXplVClWR18oY2xpZW50X3JsaW1pdF9zdGFjaykucmxpbV9jdXI7CisgICAgICBpZiAoc3pCIDwgbTEpCisgICAgICAgICBzekIgPSBtMTsKKyAgICAgIGlmIChzekIgPiBtMTYpCisgICAgICAgICBzekIgPSBtMTY7CisKKyAgICAgIGlmIChWR18oY2xvX21haW5fc3RhY2tzaXplKSA+IDApCisgICAgICAgICBzekIgPSBWR18oY2xvX21haW5fc3RhY2tzaXplKTsKKyAgICAgIGlmIChzekIgPCBtMSkKKyAgICAgICAgIHN6QiA9IG0xOworCisgICAgICBzekIgPSBWR19QR1JPVU5EVVAoc3pCKTsKKyAgICAgIFZHXyhkZWJ1Z0xvZykoMSwgImluaXRpbWciLAorICAgICAgICAgICAgICAgICAgICAgICAiU2V0dXAgY2xpZW50IHN0YWNrOiBzaXplIHdpbGwgYmUgJWxkXG4iLCBzekIpOworCisgICAgICBpaWZpaS5jbHN0YWNrX21heF9zaXplID0gc3pCOworICAgICAgaWlmaWkuaW5pdGlhbF9jbGllbnRfU1AgPSBzZXR1cF9jbGllbnRfc3RhY2soaW5pdF9zcCwgZW52LCAmaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlpY2lpLmNsc3RhY2tfZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWlmaWkuY2xzdGFja19tYXhfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkX2V4ZV9uYW1lKTsKKyAgICAgIFZHXyhmcmVlKShlbnYpOworCisgICAgICBWR18oZGVidWdMb2cpKDIsICJpbml0aW1nIiwgIkNsaWVudCBpbmZvOiAiCisgICAgICAgICAgICAgICAgICAgICAgICJpbml0aWFsX0lQPSUjbHgsIGluaXRpYWxfVE9DPSUjbHgsIGJya19iYXNlPSUjbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGlpZmlpLmluaXRpYWxfY2xpZW50X0lQLCBpaWZpaS5pbml0aWFsX2NsaWVudF9UT0MsCisgICAgICAgICAgICAgICAgICAgICAgIFZHXyhicmtfYmFzZSkpOworICAgICAgVkdfKGRlYnVnTG9nKSgyLCAiaW5pdGltZyIsICJDbGllbnQgaW5mbzogIgorICAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbF9TUD0lI2x4LCBtYXhfc3RhY2tfc2l6ZT0lbHVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGlpZmlpLmluaXRpYWxfY2xpZW50X1NQLAorICAgICAgICAgICAgICAgICAgICAgICBpaWZpaS5jbHN0YWNrX21heF9zaXplKTsKKyAgIH0KKworICAgaWYgKGluZm8ubGRzb2V4ZWMpIHsKKyAgICAgIC8qIFdlIGFyZSBleGVjdXRpbmcgdGhlIHJ1bnRpbWUgbGlua2VyIGl0c2VsZi4KKyAgICAgICAgIEluaXRpYWwgZGF0YSAoYnJrKSBzZWdtZW50IGlzIHNldHVwIG9uIGRlbWFuZCwgYWZ0ZXIgdGhlIHRhcmdldCBkeW5hbWljCisgICAgICAgICBleGVjdXRhYmxlIGhhcyBiZWVuIGxvYWRlZCBvciB3aGVuIGEgZmlyc3QgYnJrKCkgc3lzY2FsbCBpcyBtYWRlLgorICAgICAgICAgSXQgY2Fubm90IGJlIGVzdGFibGlzaGVkIG5vdyBiZWNhdXNlIGl0IHdvdWxkIGNvbmZsaWN0IHdpdGggYSB0ZW1wb3JhcnkKKyAgICAgICAgIHN0YWNrIHdoaWNoIGxkLnNvLjEgKHdoZW4gZXhlY3V0ZWQgZGlyZWN0bHkpIHVzZXMgZm9yIGxvYWRpbmcgdGhlCisgICAgICAgICB0YXJnZXQgZHluYW1pYyBleGVjdXRhYmxlLiBTZWUgUFJFKHN5c19icmspIGluIHN5c3dyYXAtc29sYXJpcy5jLiAqLworICAgfSBlbHNlIHsKKyAgICAgIGlmICghVkdfKHNldHVwX2NsaWVudF9kYXRhc2VnKSgpKSB7CisgICAgICAgICBWR18ocHJpbnRmKSgidmFsZ3JpbmQ6IGNhbm5vdCBpbml0aWFsaXplIGRhdGEgc2VnbWVudCAoYnJrKS5cbiIpOworICAgICAgICAgVkdfKGV4aXQpKDEpOworICAgICAgfQorICAgfQorCisgICByZXR1cm4gaWlmaWk7Cit9CisKKworLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKj09PSBUT1AtTEVWRUw6IFZHXyhmaW5hbGlzZV9pbWFnZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09Ki8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCisvKiBKdXN0IGJlZm9yZSBzdGFydGluZyB0aGUgY2xpZW50LCB3ZSBtYXkgbmVlZCB0byBtYWtlIGZpbmFsIGFkanVzdG1lbnRzIHRvCisgICBpdHMgaW5pdGlhbCBpbWFnZS4gIEFsc28gd2UgbmVlZCB0byBzZXQgdXAgdGhlIFZFWCBndWVzdCBzdGF0ZSBmb3IgdGhyZWFkIDEKKyAgICh0aGUgcm9vdCB0aHJlYWQpIGFuZCBjb3B5IGluIGVzc2VudGlhbCBzdGFydGluZyB2YWx1ZXMuICBUaGlzIGlzIGhhbmRlZAorICAgdGhlIElJRmluYWxpc2VJbWFnZUluZm8gY3JlYXRlZCBieSBWR18oaWlfY3JlYXRlX2ltYWdlKS4KKyovCit2b2lkIFZHXyhpaV9maW5hbGlzZV9pbWFnZSkoSUlGaW5hbGlzZUltYWdlSW5mbyBpaWZpaSkKK3sKKyAgIFRocmVhZEFyY2hTdGF0ZSAqYXJjaCA9ICZWR18odGhyZWFkcylbMV0uYXJjaDsKKworIyAgaWYgZGVmaW5lZChWR0FfeDg2KQorICAgdmdfYXNzZXJ0KDAgPT0gc2l6ZW9mKFZleEd1ZXN0WDg2U3RhdGUpICUgTGliVkVYX0dVRVNUX1NUQVRFX0FMSUdOKTsKKworICAgLyogWmVybyBvdXQgdGhlIGluaXRpYWwgc3RhdGUsIGFuZCBzZXQgdXAgdGhlIHNpbXVsYXRlZCBGUFUgaW4gYSBzYW5lCisgICAgICB3YXkuICovCisgICBMaWJWRVhfR3Vlc3RYODZfaW5pdGlhbGlzZSgmYXJjaC0+dmV4KTsKKworICAgLyogWmVybyBvdXQgdGhlIHNoYWRvdyBhcmVhcy4gKi8KKyAgIFZHXyhtZW1zZXQpKCZhcmNoLT52ZXhfc2hhZG93MSwgMCwgc2l6ZW9mKFZleEd1ZXN0WDg2U3RhdGUpKTsKKyAgIFZHXyhtZW1zZXQpKCZhcmNoLT52ZXhfc2hhZG93MiwgMCwgc2l6ZW9mKFZleEd1ZXN0WDg2U3RhdGUpKTsKKworICAgLyogUHV0IGVzc2VudGlhbCBzdHVmZiBpbnRvIHRoZSBuZXcgc3RhdGUuICovCisgICBhcmNoLT52ZXguZ3Vlc3RfRVNQID0gaWlmaWkuaW5pdGlhbF9jbGllbnRfU1A7CisgICBhcmNoLT52ZXguZ3Vlc3RfRUlQID0gaWlmaWkuaW5pdGlhbF9jbGllbnRfSVA7CisgICBMaWJWRVhfR3Vlc3RYODZfcHV0X2VmbGFncyhWS0lfUFNMX1VTRVIsICZhcmNoLT52ZXgpOworCisgICAvKiBTZXQgJWNzLCAlZHMsICVzcyBhbmQgJWVzIHRvIGRlZmF1bHQgdmFsdWVzLiAqLworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3Z3ICUlY3MsICVbY3NdIiA6IFtjc10gIj1tIiAoYXJjaC0+dmV4Lmd1ZXN0X0NTKSk7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1vdncgJSVkcywgJVtkc10iIDogW2RzXSAiPW0iIChhcmNoLT52ZXguZ3Vlc3RfRFMpKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibW92dyAlJXNzLCAlW3NzXSIgOiBbc3NdICI9bSIgKGFyY2gtPnZleC5ndWVzdF9TUykpOworICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3Z3ICUlZXMsICVbZXNdIiA6IFtlc10gIj1tIiAoYXJjaC0+dmV4Lmd1ZXN0X0VTKSk7CisKKyAgIHsKKyAgICAgIC8qIEluaXRpYWwgdGhyZWFkIHBvaW50ZXIgdmFsdWUgd2lsbCBiZSBzYXZlZCBpbiBHRFQgd2hlbiB0aGUgdGhyZWFkIGlzCisgICAgICAgICBzdGFydGVkIGluIHRoZSBzeXN3cmFwIG1vZHVsZSBhbmQgYSB0aHJlYWQncyBHRFQgaXMgYWxsb2NhdGVkLiAqLworICAgICAgVGhyZWFkT1NzdGF0ZSAqb3MgPSAmVkdfKHRocmVhZHMpWzFdLm9zX3N0YXRlOworICAgICAgb3MtPnRocnB0ciA9IGlpZmlpLmluaXRpYWxfY2xpZW50X1RQOworICAgfQorCisjICBlbGlmIGRlZmluZWQoVkdBX2FtZDY0KQorICAgdmdfYXNzZXJ0KDAgPT0gc2l6ZW9mKFZleEd1ZXN0QU1ENjRTdGF0ZSkgJSBMaWJWRVhfR1VFU1RfU1RBVEVfQUxJR04pOworCisgICAvKiBaZXJvIG91dCB0aGUgaW5pdGlhbCBzdGF0ZSwgYW5kIHNldCB1cCB0aGUgc2ltdWxhdGVkIEZQVSBpbiBhIHNhbmUKKyAgICAgIHdheS4gKi8KKyAgIExpYlZFWF9HdWVzdEFNRDY0X2luaXRpYWxpc2UoJmFyY2gtPnZleCk7CisKKyAgIC8qIFplcm8gb3V0IHRoZSBzaGFkb3cgYXJlYXMuICovCisgICBWR18obWVtc2V0KSgmYXJjaC0+dmV4X3NoYWRvdzEsIDAsIHNpemVvZihWZXhHdWVzdEFNRDY0U3RhdGUpKTsKKyAgIFZHXyhtZW1zZXQpKCZhcmNoLT52ZXhfc2hhZG93MiwgMCwgc2l6ZW9mKFZleEd1ZXN0QU1ENjRTdGF0ZSkpOworCisgICAvKiBQdXQgZXNzZW50aWFsIHN0dWZmIGludG8gdGhlIG5ldyBzdGF0ZS4gKi8KKyAgIGFyY2gtPnZleC5ndWVzdF9SU1AgPSBpaWZpaS5pbml0aWFsX2NsaWVudF9TUDsKKyAgIGFyY2gtPnZleC5ndWVzdF9SSVAgPSBpaWZpaS5pbml0aWFsX2NsaWVudF9JUDsKKyAgIGFyY2gtPnZleC5ndWVzdF9GU19DT05TVCA9IGlpZmlpLmluaXRpYWxfY2xpZW50X1RQOworICAgTGliVkVYX0d1ZXN0QU1ENjRfcHV0X3JmbGFncyhWS0lfUFNMX1VTRVIsICZhcmNoLT52ZXgpOworCisjICBlbHNlCisjICAgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorIyAgZW5kaWYKKworICAgLyogVGVsbCB0aGUgdG9vbCB0aGF0IHdlIGp1c3Qgd3JvdGUgdG8gdGhlIHJlZ2lzdGVycy4gKi8KKyAgIFZHX1RSQUNLKHBvc3RfcmVnX3dyaXRlLCBWZ19Db3JlU3RhcnR1cCwgMS8qdGlkKi8sIDAvKm9mZnNldCovLAorICAgICAgICAgICAgc2l6ZW9mKFZleEd1ZXN0QXJjaFN0YXRlKSk7CisKKyAgIGlmIChWR18oYnJrX2Jhc2UpICE9IC0xICkgeworICAgICAgLyogTWFrZSBpbmFjY2Vzc2libGUvdW5hZGRyZXNzYWJsZSB0aGUgZW5kIG9mIHRoZSBjbGllbnQgZGF0YSBzZWdtZW50LgorICAgICAgICAgU2VlIFBSRShzeXNfYnJrKSBpbiBzeXN3cmFwLXNvbGFyaXMuYyBmb3IgZGV0YWlscy4gKi8KKyAgICAgIFZHXyh0cmFja19jbGllbnRfZGF0YXNlZykoMSAvKiB0aWQgKi8pOworICAgfQorfQorCisjZW5kaWYgLy8gZGVmaW5lZChWR09fc29sYXJpcykKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21faW5pdGltZy9wcml2X2luaXRpbWdfcGF0aHNjYW4uaCBiL2NvcmVncmluZC9tX2luaXRpbWcvcHJpdl9pbml0aW1nX3BhdGhzY2FuLmgKaW5kZXggOWI0ZDJiOS4uZTc0MzgzNiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21faW5pdGltZy9wcml2X2luaXRpbWdfcGF0aHNjYW4uaAorKysgYi9jb3JlZ3JpbmQvbV9pbml0aW1nL3ByaXZfaW5pdGltZ19wYXRoc2Nhbi5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9saWJjYXNzZXJ0LmMgYi9jb3JlZ3JpbmQvbV9saWJjYXNzZXJ0LmMKaW5kZXggNTY2ZGQ4NC4uYzM5M2Q3YiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fbGliY2Fzc2VydC5jCisrKyBiL2NvcmVncmluZC9tX2xpYmNhc3NlcnQuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00OSw3ICs0OSw4IEBACiAgICBBc3NlcnRlcnkuCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2lmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfeDg2X2RhcndpbikKKyNpZiBkZWZpbmVkKFZHUF94ODZfbGludXgpIHx8IGRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pIFwKKyAgICB8fCBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKICMgIGRlZmluZSBHRVRfU1RBUlRSRUdTKHNyUCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICB7IFVJbnQgZWlwLCBlc3AsIGVicDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTY1LDcgKzY2LDggQEAKICAgICAgICAgKHNyUCktPnJfc3AgPSAoVUxvbmcpZXNwOyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIChzclApLT5taXNjLlg4Ni5yX2VicCA9IGVicDsgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgfQotI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpIHx8IGRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pIFwKKyAgICAgIHx8IGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCiAjICBkZWZpbmUgR0VUX1NUQVJUUkVHUyhzclApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgeyBVTG9uZyByaXAsIHJzcCwgcmJwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC04NSw4ICs4Nyw4IEBACiAgICAgICB7IFVJbnQgY2lhLCByMSwgbHI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIm1mbHIgMDsiICAgICAgICAgICAgICAgICAgIC8qIHIwID0gbHIgKi8gICAgICBcCi0gICAgICAgICAgICJibCBtX2xpYmNhc3NlcnRfZ2V0X2lwOyIgICAvKiBsciA9IHBjICovICAgICAgXAotICAgICAgICAgICAibV9saWJjYXNzZXJ0X2dldF9pcDpcbiIgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgImJsIDBmOyIgICAgICAgICAgICAgICAgICAgIC8qIGxyID0gcGMgKi8gICAgICBcCisgICAgICAgICAgICIwOlxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAibWZsciAlMDsiICAgICAgICAgICAgICAgICAgLyogJTAgPSBwYyAqLyAgICAgIFwKICAgICAgICAgICAgIm10bHIgMDsiICAgICAgICAgICAgICAgICAgIC8qIHJlc3RvcmUgbHIgKi8gICBcCiAgICAgICAgICAgICJtciAlMSwxOyIgICAgICAgICAgICAgICAgICAvKiAlMSA9IHIxICovICAgICAgXApAQCAtMTA0LDggKzEwNiw4IEBACiAgICAgICB7IFVMb25nIGNpYSwgcjEsIGxyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIm1mbHIgMDsiICAgICAgICAgICAgICAgICAgIC8qIHIwID0gbHIgKi8gICAgICBcCi0gICAgICAgICAgICJibCAubV9saWJjYXNzZXJ0X2dldF9pcDsiICAvKiBsciA9IHBjICovICAgICAgXAotICAgICAgICAgICAiLm1fbGliY2Fzc2VydF9nZXRfaXA6XG4iICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgImJsIDBmOyIgICAgICAgICAgICAgICAgICAgIC8qIGxyID0gcGMgKi8gICAgICBcCisgICAgICAgICAgICIwOlxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAibWZsciAlMDsiICAgICAgICAgICAgICAgICAgLyogJTAgPSBwYyAqLyAgICAgIFwKICAgICAgICAgICAgIm10bHIgMDsiICAgICAgICAgICAgICAgICAgIC8qIHJlc3RvcmUgbHIgKi8gICBcCiAgICAgICAgICAgICJtciAlMSwxOyIgICAgICAgICAgICAgICAgICAvKiAlMSA9IHIxICovICAgICAgXApAQCAtMTc4LDggKzE4MCw4IEBACiAjICBkZWZpbmUgR0VUX1NUQVJUUkVHUyhzclApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgeyBVSW50IHBjLCBzcCwgZnAsIHJhLCBncDsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgIGFzbSgibW92ZSAkOCwgJDMxOyIgICAgICAgICAgICAgLyogdDAgPSByYSAqLyAgICAgICBcCi0gICAgICAgICAgImJhbCBtX2xpYmNhc3NlcnRfZ2V0X2lwOyIgIC8qIHJhID0gcGMgKi8gICAgICAgXAotICAgICAgICAgICJtX2xpYmNhc3NlcnRfZ2V0X2lwOlxuIiAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAiYmFsIDBmOyIgICAgICAgICAgICAgICAgICAgLyogcmEgPSBwYyAqLyAgICAgICBcCisgICAgICAgICAgIjA6XG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICJtb3ZlICUwLCAkMzE7IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAibW92ZSAkMzEsICQ4OyIgICAgICAgICAgICAgLyogcmVzdG9yZSBsciAqLyAgICBcCiAgICAgICAgICAgIm1vdmUgJTEsICQyOTsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjAxLDEwICsyMDMsMTAgQEAKICAgICAgIH0KICNlbGlmIGRlZmluZWQoVkdQX21pcHM2NF9saW51eCkKICMgIGRlZmluZSBHRVRfU1RBUlRSRUdTKHNyUCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB7IFVMb25nIHBjLCBzcCwgZnAsIHJhLCBncDsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgVUxvbmcgcGMsIHNwLCBmcCwgcmEsIGdwOyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICBhc20oIm1vdmUgJDgsICQzMTsiICAgICAgICAgICAgIC8qIHQwID0gcmEgKi8gICAgICAgXAotICAgICAgICAgICJiYWwgbV9saWJjYXNzZXJ0X2dldF9pcDsiICAvKiByYSA9IHBjICovICAgICAgIFwKLSAgICAgICAgICAibV9saWJjYXNzZXJ0X2dldF9pcDpcbiIgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgImJhbCAwZjsiICAgICAgICAgICAgICAgICAgIC8qIHJhID0gcGMgKi8gICAgICAgXAorICAgICAgICAgICIwOlxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAibW92ZSAlMCwgJDMxOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgIm1vdmUgJDMxLCAkODsiICAgICAgICAgICAgIC8qIHJlc3RvcmUgbHIgKi8gICAgXAogICAgICAgICAgICJtb3ZlICUxLCAkMjk7IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTI5MSw3ICsyOTMsNyBAQAogewogI2lmIGRlZmluZWQoVkdPX2xpbnV4KQogICAgKHZvaWQpVkdfKGRvX3N5c2NhbGwxKShfX05SX2V4aXRfZ3JvdXAsIHN0YXR1cyApOwotI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQorI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgKHZvaWQpVkdfKGRvX3N5c2NhbGwxKShfX05SX2V4aXQsIHN0YXR1cyApOwogI2Vsc2UKICMgIGVycm9yIFVua25vd24gT1MKQEAgLTM2MCw3ICszNjIsNyBAQAogICAgfQogCiAgICBWR18ocHJpbnRmKSgiXG5zY2hlZCBzdGF0dXM6XG4iKTsgCi0gICBWR18ocHJpbnRmKSgiICBydW5uaW5nX3RpZD0lZFxuIiwgVkdfKGdldF9ydW5uaW5nX3RpZCkoKSk7CisgICBWR18ocHJpbnRmKSgiICBydW5uaW5nX3RpZD0ldVxuIiwgVkdfKGdldF9ydW5uaW5nX3RpZCkoKSk7CiAgICBmb3IgKGkgPSAxOyBpIDwgVkdfTl9USFJFQURTOyBpKyspIHsKICAgICAgIFZnU3RhY2sqIHN0YWNrIAogICAgICAgICAgPSAoVmdTdGFjayopVkdfKHRocmVhZHMpW2ldLm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2Jhc2U7CkBAIC0zODcsNyArMzg5LDcgQEAKICAgICAgICAgICAgIFZHXyhwcmludGYpKCJjbGllbnQgc3RhY2sgcmFuZ2U6ID8/Pz8/Pz9cbiIpOwogICAgICAgfQogICAgICAgaWYgKHN0YWNrX3VzYWdlICYmIHN0YWNrICE9IDApCi0gICAgICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kIHN0YWNrIHRvcCB1c2FnZTogJWxkIG9mICVsZFxuIiwKKyAgICAgICAgICBWR18ocHJpbnRmKSgidmFsZ3JpbmQgc3RhY2sgdG9wIHVzYWdlOiAlbHUgb2YgJWx1XG4iLAogICAgICAgICAgICAgICAgICAgICAgIFZHXyhjbG9fdmFsZ3JpbmRfc3RhY2tzaXplKQogICAgICAgICAgICAgICAgICAgICAgICAgLSBWR18oYW1fZ2V0X1ZnU3RhY2tfdW51c2VkX3N6QikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhY2ssIFZHXyhjbG9fdmFsZ3JpbmRfc3RhY2tzaXplKSksCkBAIC01MDUsOCArNTA3LDE1IEBACiB9CiAKIC8qIFByaW50IHNvbWUgaGVscGZ1bC1pc2ggdGV4dCBhYm91dCB1bmltcGxlbWVudGVkIHRoaW5ncywgYW5kIGdpdmUgdXAuICovCi12b2lkIFZHXyh1bmltcGxlbWVudGVkKSAoIGNvbnN0IEhDaGFyKiBtc2cgKQordm9pZCBWR18odW5pbXBsZW1lbnRlZCkgKCBjb25zdCBIQ2hhciogZm9ybWF0LCAuLi4gKQogeworICAgdmFfbGlzdCB2YXJnczsKKyAgIEhDaGFyIG1zZ1syNTZdOworCisgICB2YV9zdGFydCh2YXJncywgZm9ybWF0KTsKKyAgIFZHXyh2c25wcmludGYpKG1zZywgc2l6ZW9mKG1zZyksIGZvcm1hdCwgdmFyZ3MpOworICAgdmFfZW5kKHZhcmdzKTsKKwogICAgaWYgKFZHXyhjbG9feG1sKSkKICAgICAgIFZHXyhwcmludGZfeG1sKSgiPC92YWxncmluZG91dHB1dD5cbiIpOwogICAgVkdfKHVtc2cpKCJcbiIpOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fbGliY2Jhc2UuYyBiL2NvcmVncmluZC9tX2xpYmNiYXNlLmMKaW5kZXggNjBjYWQzNi4uMGQ3MTVmYSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fbGliY2Jhc2UuYworKysgYi9jb3JlZ3JpbmQvbV9saWJjYmFzZS5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTY1Myw3ICs2NTMsNyBAQAogICAgfQogCiAgICAvKiBJZiB3ZSdyZSB1bmx1Y2t5LCB0aGUgYWxpZ25tZW50IGNvbnN0cmFpbnRzIGZvciB0aGUgZmFzdCBjYXNlCi0gICAgICBhYm92ZSB3b24ndCBhcHBseSwgYW5kIHdlJ2xsIGhhdmUgdG8gdG8gaXQgYWxsIGhlcmUuICBIZW5jZSB0aGUKKyAgICAgIGFib3ZlIHdvbid0IGFwcGx5LCBhbmQgd2UnbGwgaGF2ZSB0byBkbyBpdCBhbGwgaGVyZS4gIEhlbmNlIHRoZQogICAgICAgdW5yb2xsaW5nLiAqLwogICAgd2hpbGUgKHN6ID49IDQpIHsKICAgICAgIGRbMF0gPSBzWzBdOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fbGliY2ZpbGUuYyBiL2NvcmVncmluZC9tX2xpYmNmaWxlLmMKaW5kZXggY2U0NDJlYy4uNjhmYzQzNCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fbGliY2ZpbGUuYworKysgYi9jb3JlZ3JpbmQvbV9saWJjZmlsZS5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTc4LDcgKzc4LDcgQEAKICAgIGNhbm5vdCBiZSBkZWR1Y2VkLiAqLwogQm9vbCBWR18ocmVzb2x2ZV9maWxlbmFtZSkgKCBJbnQgZmQsIGNvbnN0IEhDaGFyKiogcmVzdWx0ICkKIHsKLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICBzdGF0aWMgSENoYXIgKmJ1ZiA9IE5VTEw7CiAgICBzdGF0aWMgU2l6ZVQgIGJ1ZnNpeiA9IDA7CiAKQEAgLTg4LDcgKzg4LDEzIEBACiAgICB9CiAKICAgIEhDaGFyIHRtcFs2NF07ICAgLy8gbGFyZ2UgZW5vdWdoCi0gICBWR18oc3ByaW50ZikodG1wLCAiL3Byb2Mvc2VsZi9mZC8lZCIsIGZkKTsKKyAgIHsKKyMgICAgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorICAgICAgVkdfKHNwcmludGYpKHRtcCwgIi9wcm9jL3NlbGYvZmQvJWQiLCBmZCk7CisjICAgICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICBWR18oc3ByaW50ZikodG1wLCAiL3Byb2Mvc2VsZi9wYXRoLyVkIiwgZmQpOworIyAgICAgZW5kaWYKKyAgIH0KIAogICAgd2hpbGUgKDQyKSB7CiAgICAgICBTU2l6ZVQgcmVzID0gVkdfKHJlYWRsaW5rKSh0bXAsIGJ1ZiwgYnVmc2l6KTsKQEAgLTEzOSw2ICsxNDUsOSBAQAogIyAgZWxpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQogICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9ta25vZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZClwYXRobmFtZSwgbW9kZSwgZGV2KTsKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfbWtub2RhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLSV9BVF9GRENXRCwgKFVXb3JkKXBhdGhuYW1lLCBtb2RlLCBkZXYpOwogIyAgZWxzZQogIyAgICBlcnJvciBVbmtub3duIE9TCiAjICBlbmRpZgpAQCAtMTU3LDYgKzE2Niw5IEBACiAjICBlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfb3Blbl9ub2NhbmNlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZClwYXRobmFtZSwgZmxhZ3MsIG1vZGUpOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsNCkoX19OUl9vcGVuYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS0lfQVRfRkRDV0QsIChVV29yZClwYXRobmFtZSwgZmxhZ3MsIG1vZGUpOwogIyAgZWxzZQogIyAgICBlcnJvciBVbmtub3duIE9TCiAjICBlbmRpZgpAQCAtMTc2LDcgKzE4OCw3IEBACiB2b2lkIFZHXyhjbG9zZSkgKCBJbnQgZmQgKQogewogICAgLyogSG1tLiAgUmV0dXJuIHZhbHVlIGlzIG5vdCBjaGVja2VkLiAgVGhhdCdzIHVuY29vbC4gKi8KLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICAodm9pZClWR18oZG9fc3lzY2FsbDEpKF9fTlJfY2xvc2UsIGZkKTsKICMgIGVsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgKHZvaWQpVkdfKGRvX3N5c2NhbGwxKShfX05SX2Nsb3NlX25vY2FuY2VsLCBmZCk7CkBAIC0xODgsNyArMjAwLDcgQEAKIEludCBWR18ocmVhZCkgKCBJbnQgZmQsIHZvaWQqIGJ1ZiwgSW50IGNvdW50KQogewogICAgSW50ICAgIHJldDsKLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX3JlYWQsIGZkLCAoVVdvcmQpYnVmLCBjb3VudCk7CiAjICBlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfcmVhZF9ub2NhbmNlbCwgZmQsIChVV29yZClidWYsIGNvdW50KTsKQEAgLTIwOCw3ICsyMjAsNyBAQAogSW50IFZHXyh3cml0ZSkgKCBJbnQgZmQsIGNvbnN0IHZvaWQqIGJ1ZiwgSW50IGNvdW50KQogewogICAgSW50ICAgIHJldDsKLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX3dyaXRlLCBmZCwgKFVXb3JkKWJ1ZiwgY291bnQpOwogIyAgZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX3dyaXRlX25vY2FuY2VsLCBmZCwgKFVXb3JkKWJ1ZiwgY291bnQpOwpAQCAtMjUyLDYgKzI2NCwxOCBAQAogICAgICAgZmRbMV0gPSAoSW50KXNyX1Jlc0hJKHJlcyk7CiAgICB9CiAgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gLTEgOiAwOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIyAgaWYgZGVmaW5lZChTT0xBUklTX05FV19QSVBFX1NZU0NBTEwpCisgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwyKShfX05SX3BpcGUsIChVV29yZClmZCwgMCk7CisgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gLTEgOiAwOworIyAgZWxzZQorICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMCkoX19OUl9waXBlKTsKKyAgIGlmICghc3JfaXNFcnJvcihyZXMpKSB7CisgICAgICBmZFswXSA9IChJbnQpc3JfUmVzKHJlcyk7CisgICAgICBmZFsxXSA9IChJbnQpc3JfUmVzSEkocmVzKTsKKyAgIH0KKyAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IDA7CisjICBlbmRpZgogIyAgZWxzZQogIyAgICBlcnJvciAiVW5rbm93biBPUyIKICMgIGVuZGlmCkBAIC0yNzUsNiArMjk5LDE0IEBACiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX2xzZWVrLCBmZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgJiAweGZmZmZmZmZmLCBvZmZzZXQgPj4gMzIsIHdoZW5jZSk7CiAgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gKC0xKSA6IHNyX1JlcyhyZXMpOworIyAgZWxpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfbGxzZWVrLCBmZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAmIDB4ZmZmZmZmZmYsIG9mZnNldCA+PiAzMiwgd2hlbmNlKTsKKyAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAoLTEpIDogKChVTG9uZylzcl9SZXNISShyZXMpIDw8IDMyIHwgc3JfUmVzKHJlcykpOworIyAgZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9sc2VlaywgZmQsIG9mZnNldCwgd2hlbmNlKTsKKyAgIHZnX2Fzc2VydChzaXplb2YoT2ZmNjRUKSA9PSBzaXplb2YoV29yZCkpOworICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/ICgtMSkgOiBzcl9SZXMocmVzKTsKICMgIGVsc2UKICMgICAgZXJyb3IgIlVua25vd24gcGxhdCIKICMgIGVuZGlmCkBAIC0zMzgsNyArMzcwLDIzIEBACiAgICAgICAgIFRSQU5TTEFURV9UT192Z19zdGF0KHZnYnVmLCAmYnVmKTsKICAgICAgcmV0dXJuIHJlczsKICAgIH0KLQorIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgeworIyAgICAgaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICAgICBzdHJ1Y3QgdmtpX3N0YXQ2NCBidWY2NDsKKyAgICAgIHJlcyA9IFZHXyhkb19zeXNjYWxsNCkoX19OUl9mc3RhdGF0NjQsIFZLSV9BVF9GRENXRCwgKFVXb3JkKWZpbGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKSZidWY2NCwgMCk7CisjICAgICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICAgICBzdHJ1Y3QgdmtpX3N0YXQgYnVmNjQ7CisgICAgICByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfZnN0YXRhdCwgVktJX0FUX0ZEQ1dELCAoVVdvcmQpZmlsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpJmJ1ZjY0LCAwKTsKKyMgICAgIGVsc2UKKyMgICAgICAgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorIyAgICAgZW5kaWYKKyAgICAgIGlmICghc3JfaXNFcnJvcihyZXMpKQorICAgICAgICAgVFJBTlNMQVRFX1RPX3ZnX3N0YXQodmdidWYsICZidWY2NCk7CisgICAgICByZXR1cm4gcmVzOworICAgfQogIyAgZWxzZQogIyAgICBlcnJvciBVbmtub3duIE9TCiAjICBlbmRpZgpAQCAtMzQ5LDcgKzM5Nyw3IEBACiAgICBTeXNSZXMgcmVzOwogICAgVkdfKG1lbXNldCkodmdidWYsIDAsIHNpemVvZigqdmdidWYpKTsKIAotIyAgaWYgZGVmaW5lZChWR09fbGludXgpICB8fCAgZGVmaW5lZChWR09fZGFyd2luKQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikKICAgIC8qIEZpcnN0IHRyeSB3aXRoIGZzdGF0NjQuICBJZiB0aGF0IGRvZXNuJ3Qgd29yayBvdXQsIGZhbGwgYmFjayB0bwogICAgICAgdGhlIHZhbmlsbGEgdmVyc2lvbi4gKi8KICMgIGlmIGRlZmluZWQoX19OUl9mc3RhdDY0KQpAQCAtMzY5LDcgKzQxNywyMSBAQAogICAgICAgICBUUkFOU0xBVEVfVE9fdmdfc3RhdCh2Z2J1ZiwgJmJ1Zik7CiAgICAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAoLTEpIDogMDsKICAgIH0KLQorIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgeyAKKyMgICAgIGlmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgICAgc3RydWN0IHZraV9zdGF0NjQgYnVmNjQ7CisgICAgICByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfZnN0YXRhdDY0LCAoVVdvcmQpZmQsIDAsIChVV29yZCkmYnVmNjQsIDApOworIyAgICAgZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgICAgc3RydWN0IHZraV9zdGF0IGJ1ZjY0OworICAgICAgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX2ZzdGF0YXQsIChVV29yZClmZCwgMCwgKFVXb3JkKSZidWY2NCwgMCk7CisjICAgICBlbHNlCisjICAgICAgICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyMgICAgIGVuZGlmCisgICAgICBpZiAoIXNyX2lzRXJyb3IocmVzKSkKKyAgICAgICAgIFRSQU5TTEFURV9UT192Z19zdGF0KHZnYnVmLCAmYnVmNjQpOworICAgICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/ICgtMSkgOiAwOworICAgfQogIyAgZWxzZQogIyAgICBlcnJvciBVbmtub3duIE9TCiAjICBlbmRpZgpAQCAtNDA3LDEzICs0NjksMjEgQEAKIAogU3lzUmVzIFZHXyhkdXApICggSW50IG9sZGZkICkKIHsKKyMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICByZXR1cm4gVkdfKGRvX3N5c2NhbGwxKShfX05SX2R1cCwgb2xkZmQpOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgcmV0dXJuIFZHXyhkb19zeXNjYWxsMykoX19OUl9mY250bCwgb2xkZmQsIEZfRFVQRkQsIDApOworIyAgZWxzZQorIyAgICBlcnJvciBVbmtub3duIE9TCisjICBlbmRpZgogfQogCiBTeXNSZXMgVkdfKGR1cDIpICggSW50IG9sZGZkLCBJbnQgbmV3ZmQgKQogewogIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikKICAgIHJldHVybiBWR18oZG9fc3lzY2FsbDIpKF9fTlJfZHVwMiwgb2xkZmQsIG5ld2ZkKTsKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIHJldHVybiBWR18oZG9fc3lzY2FsbDMpKF9fTlJfZmNudGwsIG9sZGZkLCBGX0RVUDJGRCwgbmV3ZmQpOwogIyAgZWxzZQogIyAgICBlcnJvciBVbmtub3duIE9TCiAjICBlbmRpZgpAQCAtNDIyLDcgKzQ5Miw3IEBACiAvKiBSZXR1cm5zIC0xIG9uIGVycm9yLiAqLwogSW50IFZHXyhmY250bCkgKCBJbnQgZmQsIEludCBjbWQsIEFkZHIgYXJnICkKIHsKLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX2ZjbnRsLCBmZCwgY21kLCBhcmcpOwogIyAgZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX2ZjbnRsX25vY2FuY2VsLCBmZCwgY21kLCBhcmcpOwpAQCAtNDM3LDggKzUwNywxMyBAQAogIyAgaWYgZGVmaW5lZChWR1BfdGlsZWd4X2xpbnV4KQogICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9yZW5hbWVhdCwgVktJX0FUX0ZEQ1dELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKW9sZF9uYW1lLCAoVVdvcmQpbmV3X25hbWUpOwotIyAgZWxzZQorIyAgZWxpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQogICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMikoX19OUl9yZW5hbWUsIChVV29yZClvbGRfbmFtZSwgKFVXb3JkKW5ld19uYW1lKTsKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfcmVuYW1lYXQsIFZLSV9BVF9GRENXRCwgKFVXb3JkKW9sZF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktJX0FUX0ZEQ1dELCAoVVdvcmQpbmV3X25hbWUpOworIyAgZWxzZQorIyAgICBlcnJvciAiVW5rbm93biBPUyIKICMgIGVuZGlmCiAgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gKC0xKSA6IDA7CiB9CkBAIC00NDgsOCArNTIzLDEzIEBACiAjICBpZiBkZWZpbmVkKFZHUF9hcm02NF9saW51eCkgfHwgZGVmaW5lZChWR1BfdGlsZWd4X2xpbnV4KQogICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMikoX19OUl91bmxpbmthdCwgVktJX0FUX0ZEQ1dELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKWZpbGVfbmFtZSk7Ci0jICBlbHNlCisjICBlbGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwxKShfX05SX3VubGluaywgKFVXb3JkKWZpbGVfbmFtZSk7CisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX3VubGlua2F0LCBWS0lfQVRfRkRDV0QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpZmlsZV9uYW1lLCAwKTsKKyMgIGVsc2UKKyMgICAgZXJyb3IgIlVua25vd24gT1MiCiAjICBlbmRpZgogICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/ICgtMSkgOiAwOwogfQpAQCAtNDY5LDggKzU0OSw3IEBACiBCb29sIFZHXyhyZWNvcmRfc3RhcnR1cF93ZCkgKCB2b2lkICkKIHsKICAgIHZnX2Fzc2VydCghc3RhcnR1cF93ZF9hY3F1aXJlZCk7Ci0KLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICAvKiBTaW1wbGU6IGp1c3QgYXNrIHRoZSBrZXJuZWwgKi8KICAgIFN5c1JlcyByZXM7CiAgICBTaXplVCBzekIgPSAwOwpAQCAtNTM1LDYgKzYxNCwxOSBAQAogICAgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX3BvbGwsIChVV29yZClmZHMsIG5mZHMsIHRpbWVvdXQpOwogIyAgZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfcG9sbF9ub2NhbmNlbCwgKFVXb3JkKWZkcywgbmZkcywgdGltZW91dCk7CisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBzdHJ1Y3QgdmtpX3RpbWVzcGVjIHRzOworICAgc3RydWN0IHZraV90aW1lc3BlYyAqdHNwOworCisgICBpZiAodGltZW91dCA8IDApCisgICAgICB0c3AgPSBOVUxMOworICAgZWxzZSB7ICAKKyAgICAgIHRzLnR2X3NlYyA9IHRpbWVvdXQgLyAxMDAwOworICAgICAgdHMudHZfbnNlYyA9ICh0aW1lb3V0ICUgMTAwMCkgKiAxMDAwMDAwOworICAgICAgdHNwID0gJnRzOworICAgfQorCisgICByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfcG9sbHN5cywgKFVXb3JkKWZkcywgbmZkcywgKFVXb3JkKXRzcCwgMCk7CiAjICBlbHNlCiAjICAgIGVycm9yICJVbmtub3duIE9TIgogIyAgZW5kaWYKQEAgLTU1MywxOCArNjQ1LDI5IEBACiAjICBpZiBkZWZpbmVkKFZHUF9hcm02NF9saW51eCkgfHwgZGVmaW5lZChWR1BfdGlsZWd4X2xpbnV4KQogICAgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX3JlYWRsaW5rYXQsIFZLSV9BVF9GRENXRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpcGF0aCwgKFVXb3JkKWJ1ZiwgYnVmc2l6KTsKLSMgIGVsc2UKKyMgIGVsaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikKICAgIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9yZWFkbGluaywgKFVXb3JkKXBhdGgsIChVV29yZClidWYsIGJ1ZnNpeik7CisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfcmVhZGxpbmthdCwgVktJX0FUX0ZEQ1dELCAoVVdvcmQpcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKWJ1ZiwgYnVmc2l6KTsKKyMgIGVsc2UKKyMgICAgZXJyb3IgIlVua25vd24gT1MiCiAjICBlbmRpZgogICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/IC0xIDogc3JfUmVzKHJlcyk7CiB9CiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIEludCBWR18oZ2V0ZGVudHM2NCkgKEludCBmZCwgc3RydWN0IHZraV9kaXJlbnQ2NCAqZGlycCwgVUludCBjb3VudCkKIHsKICAgIFN5c1JlcyByZXM7CiAgICAvKiByZXMgPSBnZXRkZW50cyggZmQsIGRpcnAsIGNvdW50ICk7ICovCisjICBpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgLyogVGhpcyBzaWxlbnRseSBhc3N1bWVzIHRoYXQgZGlyZW50NjQgYW5kIGRpcmVudCBvbiBhbWQ2NCBhcmUgc2FtZSwgd2hpY2gKKyAgICAgIHRoZXkgc2hvdWxkIGFsd2F5cyBiZS4gKi8KKyAgIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9nZXRkZW50cywgZmQsIChVV29yZClkaXJwLCBjb3VudCk7CisjICBlbHNlCiAgICByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfZ2V0ZGVudHM2NCwgZmQsIChVV29yZClkaXJwLCBjb3VudCk7CisjICBlbmRpZgogICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/IC0xIDogc3JfUmVzKHJlcyk7CiB9CiAjZW5kaWYKQEAgLTU4OCw4ICs2OTEsMTMgQEAKICAgICAgICAgICAgICB8IChpeHVzciA/IFZLSV9YX09LIDogMCk7CiAjICBpZiBkZWZpbmVkKFZHUF9hcm02NF9saW51eCkgfHwgZGVmaW5lZChWR1BfdGlsZWd4X2xpbnV4KQogICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9mYWNjZXNzYXQsIFZLSV9BVF9GRENXRCwgKFVXb3JkKXBhdGgsIHcpOwotIyAgZWxzZQorIyAgZWxpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQogICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMikoX19OUl9hY2Nlc3MsIChVV29yZClwYXRoLCB3KTsKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfZmFjY2Vzc2F0LCBWS0lfQVRfRkRDV0QsIChVV29yZClwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywgMCk7CisjICBlbHNlCisjICAgIGVycm9yICJVbmtub3duIE9TIgogIyAgZW5kaWYKICAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAxIDogMDsgICAKIApAQCAtNzM4LDYgKzg0NiwxNCBAQAogICAgcmVzID0gVkdfKGRvX3N5c2NhbGw1KShfX05SX3ByZWFkX25vY2FuY2VsLCBmZCwgKFVXb3JkKWJ1ZiwgY291bnQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgJiAweGZmZmZmZmZmLCBvZmZzZXQgPj4gMzIpOwogICAgcmV0dXJuIHJlczsKKyMgIGVsaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICB2Z19hc3NlcnQoc2l6ZW9mKE9mZlQpID09IDQpOworICAgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX3ByZWFkLCBmZCwgKFVXb3JkKWJ1ZiwgY291bnQsIG9mZnNldCk7CisgICByZXR1cm4gcmVzOworIyAgZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgdmdfYXNzZXJ0KHNpemVvZihPZmZUKSA9PSA4KTsKKyAgIHJlcyA9IFZHXyhkb19zeXNjYWxsNCkoX19OUl9wcmVhZCwgZmQsIChVV29yZClidWYsIGNvdW50LCBvZmZzZXQpOworICAgcmV0dXJuIHJlczsKICMgIGVsc2UKICMgICAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCiAjICBlbmRpZgpAQCAtODcyLDcgKzk4OCw3IEBACiAqLwogSW50IFZHXyhjb25uZWN0X3ZpYV9zb2NrZXQpKCBjb25zdCBIQ2hhciogc3RyICkKIHsKLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgSW50IHNkLCByZXM7CiAgICBzdHJ1Y3QgdmtpX3NvY2thZGRyX2luIHNlcnZBZGRyOwogICAgVUludCAgIGlwICAgPSAwOwpAQCAtOTkyLDYgKzExMDgsMjAgQEAKICAgIH0KICAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IHNyX1JlcyhyZXMpOwogCisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAvKiBYWFggVGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGFuIGVhc3kgd2F5IHRvIGNvbnZpbmNlIHRoZSBzZW5kIHN5c2NhbGwgdG8KKyAgICAgIG9ubHkgcmV0dXJuIEVQSVBFIGluc3RlYWQgb2YgcmFpc2luZyBTSUdQSVBFLiBFUElQRSBpcyBvbmx5IHJldHVybmVkIGlmCisgICAgICBTTV9LRVJORUwgaXMgc2V0IG9uIHRoZSBzb2NrZXQuIFdpdGhvdXQgc2VyaW91cyBoYWNrZXJ5IGl0IGxvb2tzIHdlCisgICAgICBjYW4ndCBzZXQgdGhpcyBmbGFnLgorCisgICAgICBTaG91bGQgd2Ugd3JhcCB0aGUgc2VuZCBzeXNjYWxsIGJlbG93IGludG8gc2lncHJvY21hc2sgY2FsbHMgdG8gYmxvY2sKKyAgICAgIFNJR1BJUEU/CisgICAgKi8KKyAgIFN5c1JlcyByZXM7CisgICByZXMgPSBWR18oZG9fc3lzY2FsbDUpKF9fTlJfc29fc29ja2V0LCBkb21haW4sIHR5cGUsIHByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qZGV2cGF0aCovLCBWS0lfU09WX0RFRkFVTFQgLyp2ZXJzaW9uKi8pOworICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/IC0xIDogc3JfUmVzKHJlcyk7CisKICMgIGVsc2UKICMgICAgZXJyb3IgIlVua25vd24gYXJjaCIKICMgIGVuZGlmCkBAIC0xMDI1LDYgKzExNTUsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2ZkLCAoVVdvcmQpc2Vydl9hZGRyLCBhZGRybGVuKTsKICAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IHNyX1JlcyhyZXMpOwogCisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBTeXNSZXMgcmVzOworICAgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX2Nvbm5lY3QsIHNvY2tmZCwgKFVXb3JkKXNlcnZfYWRkciwgYWRkcmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVktJX1NPVl9ERUZBVUxUIC8qdmVyc2lvbiovKTsKKyAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IHNyX1JlcyhyZXMpOworCiAjICBlbHNlCiAjICAgIGVycm9yICJVbmtub3duIGFyY2giCiAjICBlbmRpZgpAQCAtMTA2Niw2ICsxMjAyLDExIEBACiAgICByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfd3JpdGVfbm9jYW5jZWwsIHNkLCAoVVdvcmQpbXNnLCBjb3VudCk7CiAgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gLTEgOiBzcl9SZXMocmVzKTsKIAorIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgU3lzUmVzIHJlczsKKyAgIHJlcyA9IFZHXyhkb19zeXNjYWxsNCkoX19OUl9zZW5kLCBzZCwgKFVXb3JkKW1zZywgY291bnQsIDAgLypmbGFncyovKTsKKyAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IHNyX1JlcyhyZXMpOworCiAjICBlbHNlCiAjICAgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgogIyAgZW5kaWYKQEAgLTEwOTksNiArMTI0MCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKXNkLCAoVVdvcmQpbmFtZSwgKFVXb3JkKW5hbWVsZW4gKTsKICAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IHNyX1JlcyhyZXMpOwogCisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBTeXNSZXMgcmVzOworICAgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX2dldHNvY2tuYW1lLCBzZCwgKFVXb3JkKW5hbWUsIChVV29yZCluYW1lbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBWS0lfU09WX0RFRkFVTFQgLyp2ZXJzaW9uKi8pOworICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/IC0xIDogc3JfUmVzKHJlcyk7CisKICMgIGVsc2UKICMgICAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCiAjICBlbmRpZgpAQCAtMTEzMiw2ICsxMjc5LDEyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpc2QsIChVV29yZCluYW1lLCAoVVdvcmQpbmFtZWxlbiApOwogICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/IC0xIDogc3JfUmVzKHJlcyk7CiAKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFN5c1JlcyByZXM7CisgICByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfZ2V0cGVlcm5hbWUsIHNkLCAoVVdvcmQpbmFtZSwgKFVXb3JkKW5hbWVsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFZLSV9TT1ZfREVGQVVMVCAvKnZlcnNpb24qLyk7CisgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gLTEgOiBzcl9SZXMocmVzKTsKKwogIyAgZWxzZQogIyAgICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKICMgIGVuZGlmCkBAIC0xMTY5LDYgKzEzMjIsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZClvcHR2YWwsIChVV29yZClvcHRsZW4gKTsKICAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IHNyX1JlcyhyZXMpOwogCisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBTeXNSZXMgcmVzOworICAgcmVzID0gVkdfKGRvX3N5c2NhbGw2KShfX05SX2dldHNvY2tvcHQsIHNkLCBsZXZlbCwgb3B0bmFtZSwgKFVXb3JkKW9wdHZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKW9wdGxlbiwgVktJX1NPVl9ERUZBVUxUIC8qdmVyc2lvbiovKTsKKyAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IHNyX1JlcyhyZXMpOworCiAjICBlbHNlCiAjICAgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgogIyAgZW5kaWYKQEAgLTEyMDcsNiArMTM2NiwxNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKW9wdHZhbCwgKFVXb3JkKW9wdGxlbiApOwogICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/IC0xIDogc3JfUmVzKHJlcyk7CiAKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFN5c1JlcyByZXM7CisgICByZXMgPSBWR18oZG9fc3lzY2FsbDYpKCBfX05SX3NldHNvY2tvcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpc2QsIChVV29yZClsZXZlbCwgKFVXb3JkKW9wdG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpb3B0dmFsLCAoVVdvcmQpb3B0bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVktJX1NPVl9ERUZBVUxUIC8qdmVyc2lvbiovICk7CisgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gLTEgOiBzcl9SZXMocmVzKTsKKwogIyAgZWxzZQogIyAgICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKICMgIGVuZGlmCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9saWJjcHJpbnQuYyBiL2NvcmVncmluZC9tX2xpYmNwcmludC5jCmluZGV4IDExNDQ2N2YuLjEyODNkZTUgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX2xpYmNwcmludC5jCisrKyBiL2NvcmVncmluZC9tX2xpYmNwcmludC5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTY2MCw3ICs2NjAsNyBAQAogICAgcmV0dXJuIGJ1ZjsKIH0KIAotI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQorI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKSB8fCAoVkdPX3NvbGFyaXMpCiAKIGNvbnN0IEhDaGFyICpWR18oc3JfYXNfc3RyaW5nKSAoIFN5c1JlcyBzciApCiB7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9saWJjcHJvYy5jIGIvY29yZWdyaW5kL21fbGliY3Byb2MuYwppbmRleCBmMjUzMjBhLi5mMzE0YjU1IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9saWJjcHJvYy5jCisrKyBiL2NvcmVncmluZC9tX2xpYmNwcm9jLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtcy5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNiYXNlLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfbGliY2Fzc2VydC5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNmaWxlLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfbGliY3ByaW50LmgiCiAjaW5jbHVkZSAicHViX2NvcmVfbGliY3Byb2MuaCIKICNpbmNsdWRlICJwdWJfY29yZV9saWJjc2lnbmFsLmgiCkBAIC02Niw3ICs2Nyw3IEBACiBjb25zdCBIQ2hhciAqVkdfKGxpYmRpcikgPSBWR19MSUJESVI7CiAKIGNvbnN0IEhDaGFyICpWR18oTERfUFJFTE9BRF92YXJfbmFtZSkgPQotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgIkxEX1BSRUxPQUQiOwogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgIkRZTERfSU5TRVJUX0xJQlJBUklFUyI7CkBAIC05MCw3ICs5MSw5IEBACiAgICByZXR1cm4gTlVMTDsKIH0KIAotdm9pZCAgVkdfKGVudl91bnNldGVudikgKCBIQ2hhciAqKmVudiwgY29uc3QgSENoYXIgKnZhcm5hbWUgKQorLyogSWYgZnJlZV9mbiBpcyBub3QgTlVMTCwgaXQgaXMgY2FsbGVkIG9uICJ1bnNldCIgZW52aXJvbm1lbnQgdmFyaWFibGUuICovCit2b2lkICBWR18oZW52X3Vuc2V0ZW52KSAoIEhDaGFyICoqZW52LCBjb25zdCBIQ2hhciAqdmFybmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKmZyZWVfZm4pICh2b2lkICopICkKIHsKICAgIEhDaGFyICoqZnJvbSwgKip0bzsKICAgIHZnX2Fzc2VydChlbnYpOwpAQCAtMTAyLDYgKzEwNSw4IEBACiAgICAgICBpZiAoIShWR18oc3RybmNtcCkodmFybmFtZSwgKmZyb20sIGxlbikgPT0gMCAmJiAoKmZyb20pW2xlbl0gPT0gJz0nKSkgewogCSAqdG8gPSAqZnJvbTsKIAkgdG8rKzsKKyAgICAgIH0gZWxzZSBpZiAoZnJlZV9mbiAhPSBOVUxMKSB7CisgICAgICAgICBmcmVlX2ZuKCpmcm9tKTsKICAgICAgIH0KICAgIH0KICAgICp0byA9ICpmcm9tOwpAQCAtMjE2LDE4ICsyMjEsMTUgQEAKIH0KIAogCi0vLyBSZW1vdmVzIGFsbCB0aGUgVmFsZ3JpbmQtYWRkZWQgc3R1ZmYgZnJvbSB0aGUgcGFzc2VkIGVudmlyb25tZW50LiAgVXNlZAotLy8gd2hlbiBzdGFydGluZyBjaGlsZCBwcm9jZXNzZXMsIHNvIHRoZXkgZG9uJ3Qgc2VlIHRoYXQgYWRkZWQgc3R1ZmYuCi12b2lkIFZHXyhlbnZfcmVtb3ZlX3ZhbGdyaW5kX2Vudl9zdHVmZikoSENoYXIqKiBlbnZwKQorLyogUmVtb3ZlcyBhbGwgdGhlIFZhbGdyaW5kLWFkZGVkIHN0dWZmIGZyb20gdGhlIHBhc3NlZCBlbnZpcm9ubWVudC4gIFVzZWQKKyAgIHdoZW4gc3RhcnRpbmcgY2hpbGQgcHJvY2Vzc2VzLCBzbyB0aGV5IGRvbid0IHNlZSB0aGF0IGFkZGVkIHN0dWZmLgorICAgSWYgdGhlIHJvX3N0cmluZ3Mgb3B0aW9uIGlzIHNldCB0byBUcnVlIHRoZW4gYWxsIHN0cmluZ3MgcmVmZXJlbmNlZCBieSBlbnZwCisgICBhcmUgY29uc2lkZXJlZCByZWFkLW9ubHksIHdoaWNoIG1lYW5zIHRoZXkgd2lsbCBiZSBkdXBsaWNhdGVkIGJlZm9yZSB0aGV5CisgICBhcmUgbW9kaWZpZWQuCisgICBJZiBmcmVlX2ZuIGlzIG5vdCBOVUxMLCBpdCBpcyBjYWxsZWQgb24gInVuc2V0IiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICovCit2b2lkIFZHXyhlbnZfcmVtb3ZlX3ZhbGdyaW5kX2Vudl9zdHVmZikoSENoYXIqKiBlbnZwLCBCb29sIHJvX3N0cmluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKmZyZWVfZm4pICh2b2lkICopICkKIHsKLQotI2lmIGRlZmluZWQoVkdPX2RhcndpbikKLQotICAgLy8gRW52aXJvbm1lbnQgY2xlYW51cCBpcyBhbHNvIGhhbmRsZWQgZHVyaW5nIHBhcmVudCBsYXVuY2ggCi0gICAvLyBpbiB2Z19wcmVsb2FkZWQuYzp2Z19jbGVhbnVwX2VudigpLgotCi0jZW5kaWYKLQogICAgSW50IGk7CiAgICBIQ2hhciogbGRfcHJlbG9hZF9zdHIgPSBOVUxMOwogICAgSENoYXIqIGxkX2xpYnJhcnlfcGF0aF9zdHIgPSBOVUxMOwpAQCAtMjQxLDE1ICsyNDMsMTggQEAKICAgIC8vIC0gRFlMRF9JTlNFUlRfTElCUkFSSUVTIGFuZCBEWUxEX1NIQVJFRF9SRUdJT04gYXJlIERhcndpbi1vbmx5CiAgICBmb3IgKGkgPSAwOyBlbnZwW2ldICE9IE5VTEw7IGkrKykgewogICAgICAgaWYgKFZHXyhzdHJuY21wKShlbnZwW2ldLCAiTERfUFJFTE9BRD0iLCAxMSkgPT0gMCkgewotICAgICAgICAgZW52cFtpXSA9IFZHXyhzdHJkdXApKCJsaWJjcHJvYy5lcnZlcy4xIiwgZW52cFtpXSk7CisgICAgICAgICBpZiAocm9fc3RyaW5ncykKKyAgICAgICAgICAgIGVudnBbaV0gPSBWR18oc3RyZHVwKSgibGliY3Byb2MuZXJ2ZXMuMSIsIGVudnBbaV0pOwogICAgICAgICAgbGRfcHJlbG9hZF9zdHIgPSAmZW52cFtpXVsxMV07CiAgICAgICB9CiAgICAgICBpZiAoVkdfKHN0cm5jbXApKGVudnBbaV0sICJMRF9MSUJSQVJZX1BBVEg9IiwgMTYpID09IDApIHsKLSAgICAgICAgIGVudnBbaV0gPSBWR18oc3RyZHVwKSgibGliY3Byb2MuZXJ2ZXMuMiIsIGVudnBbaV0pOworICAgICAgICAgaWYgKHJvX3N0cmluZ3MpCisgICAgICAgICAgICBlbnZwW2ldID0gVkdfKHN0cmR1cCkoImxpYmNwcm9jLmVydmVzLjIiLCBlbnZwW2ldKTsKICAgICAgICAgIGxkX2xpYnJhcnlfcGF0aF9zdHIgPSAmZW52cFtpXVsxNl07CiAgICAgICB9CiAgICAgICBpZiAoVkdfKHN0cm5jbXApKGVudnBbaV0sICJEWUxEX0lOU0VSVF9MSUJSQVJJRVM9IiwgMjIpID09IDApIHsKLSAgICAgICAgIGVudnBbaV0gPSBWR18oc3RyZHVwKSgibGliY3Byb2MuZXJ2ZXMuMyIsIGVudnBbaV0pOworICAgICAgICAgaWYgKHJvX3N0cmluZ3MpCisgICAgICAgICAgICBlbnZwW2ldID0gVkdfKHN0cmR1cCkoImxpYmNwcm9jLmVydmVzLjMiLCBlbnZwW2ldKTsKICAgICAgICAgIGR5bGRfaW5zZXJ0X2xpYnJhcmllc19zdHIgPSAmZW52cFtpXVsyMl07CiAgICAgICB9CiAgICB9CkBAIC0yNjQsMTYgKzI2OSw3OSBAQAogICAgbWFzaF9jb2xvbl9lbnYobGRfbGlicmFyeV9wYXRoX3N0ciwgYnVmKTsKIAogICAgLy8gUmVtb3ZlIFZBTEdSSU5EX0xBVU5DSEVSIHZhcmlhYmxlLgotICAgVkdfKGVudl91bnNldGVudikoZW52cCwgVkFMR1JJTkRfTEFVTkNIRVIpOworICAgVkdfKGVudl91bnNldGVudikoZW52cCwgVkFMR1JJTkRfTEFVTkNIRVIsIGZyZWVfZm4pOwogCiAgICAvLyBSZW1vdmUgRFlMRF9TSEFSRURfUkVHSU9OIHZhcmlhYmxlLgotICAgVkdfKGVudl91bnNldGVudikoZW52cCwgIkRZTERfU0hBUkVEX1JFR0lPTiIpOworICAgVkdfKGVudl91bnNldGVudikoZW52cCwgIkRZTERfU0hBUkVEX1JFR0lPTiIsIGZyZWVfZm4pOwogCiAgICAvLyBYWFggaWYgdmFyaWFibGUgYmVjb21lcyBlbXB0eSwgcmVtb3ZlIGl0IGNvbXBsZXRlbHk/CiAKICAgIFZHXyhmcmVlKShidWYpOwogfQogCisvKiBSZXNvbHZlcyBmaWxlbmFtZSBvZiBWR18oY2xfZXhlY19mZCkgYW5kIGNvcGllcyBpdCB0byB0aGUgYnVmZmVyLgorICAgQnVmZmVyIG11c3Qgbm90IGJlIE5VTEwgYW5kIGJ1Zl9zaXplIG11c3QgYmUgYXQgbGVhc3QgMS4KKyAgIElmIGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoIGl0IGlzIHRlcm1pbmF0ZWQgd2l0aCAnXDAnIG9ubHkKKyAgIHdoZW4gJ3Rlcm1pbmF0ZV93aXRoX05VTCA9PSBUcnVlJy4gKi8KK3ZvaWQgVkdfKGNsaWVudF9mbmFtZSkoSENoYXIgKmJ1ZmZlciwgU2l6ZVQgYnVmX3NpemUsIEJvb2wgdGVybWluYXRlX3dpdGhfTlVMKQoreworICAgdmdfYXNzZXJ0KGJ1ZmZlciAhPSBOVUxMKTsKKyAgIHZnX2Fzc2VydChidWZfc2l6ZSA+PSAxKTsKKworICAgY29uc3QgSENoYXIgKm5hbWU7CisgICBpZiAoVkdfKHJlc29sdmVfZmlsZW5hbWUpKFZHXyhjbF9leGVjX2ZkKSwgJm5hbWUpKSB7CisgICAgICBjb25zdCBIQ2hhciAqbiA9IG5hbWUgKyBWR18oc3RybGVuKShuYW1lKSAtIDE7CisKKyAgICAgIHdoaWxlIChuID4gbmFtZSAmJiAqbiAhPSAnLycpCisgICAgICAgICBuLS07CisgICAgICBpZiAobiAhPSBuYW1lKQorICAgICAgICAgbisrOworCisgICAgICBWR18oc3RybmNweSkoYnVmZmVyLCBuLCBidWZfc2l6ZSk7CisgICAgICBpZiAodGVybWluYXRlX3dpdGhfTlVMKQorICAgICAgICAgYnVmZmVyW2J1Zl9zaXplIC0gMV0gPSAnXDAnOworICAgfSBlbHNlIHsKKyAgICAgIGJ1ZmZlclswXSA9ICdcMCc7CisgICB9Cit9CisKK3N0YXRpYyBCb29sIGFkZF9zdHJpbmcoSENoYXIgKmJ1ZmZlciwgU2l6ZVQgKmJ1Zl9zaXplLCBjb25zdCBIQ2hhciAqc3RyaW5nKQoreworICAgU2l6ZVQgbGVuID0gVkdfKHN0cmxlbikoc3RyaW5nKTsKKyAgIFZHXyhzdHJuY2F0KShidWZmZXIsIHN0cmluZywgKmJ1Zl9zaXplKTsKKyAgIGlmIChsZW4gPj0gKmJ1Zl9zaXplIC0gMSkgeworICAgICAgKmJ1Zl9zaXplID0gMDsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0gZWxzZSB7CisgICAgICAqYnVmX3NpemUgLT0gbGVuOworICAgICAgcmV0dXJuIFRydWU7CisgICB9Cit9CisKKy8qIENvbmNhdGVuYXRlcyBjbGllbnQgZXhlbmFtZSBhbmQgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBpbnRvCisgICB0aGUgYnVmZmVyLiBCdWZmZXIgbXVzdCBub3QgYmUgTlVMTCBhbmQgYnVmX3NpemUgbXVzdCBiZQorICAgYXQgbGVhc3QgMS4gQnVmZmVyIGlzIGFsd2F5cyB0ZXJtaW5hdGVkIHdpdGggJ1wwJy4gKi8KK3ZvaWQgVkdfKGNsaWVudF9jbWRfYW5kX2FyZ3MpKEhDaGFyICpidWZmZXIsIFNpemVUIGJ1Zl9zaXplKQoreworICAgdmdfYXNzZXJ0KGJ1ZmZlciAhPSBOVUxMKTsKKyAgIHZnX2Fzc2VydChidWZfc2l6ZSA+PSAxKTsKKworICAgYnVmZmVyWzBdID0gJ1wwJzsKKworICAgaWYgKGFkZF9zdHJpbmcoYnVmZmVyLCAmYnVmX3NpemUsIFZHXyhhcmdzX3RoZV9leGVuYW1lKSkgPT0gRmFsc2UpCisgICAgICByZXR1cm47CisKKyAgIEludCBpOworICAgZm9yIChpID0gMDsgaSA8IFZHXyhzaXplWEEpKFZHXyhhcmdzX2Zvcl9jbGllbnQpKTsgaSsrKSB7CisgICAgICBpZiAoYWRkX3N0cmluZyhidWZmZXIsICZidWZfc2l6ZSwgIiAiKSA9PSBGYWxzZSkKKyAgICAgICAgIHJldHVybjsKKworICAgICAgSENoYXIgKmFyZyA9ICooSENoYXIgKiopIFZHXyhpbmRleFhBKShWR18oYXJnc19mb3JfY2xpZW50KSwgaSk7CisgICAgICBpZiAoYWRkX3N0cmluZyhidWZmZXIsICZidWZfc2l6ZSwgYXJnKSA9PSBGYWxzZSkKKyAgICAgICAgIHJldHVybjsKKyAgIH0KK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBWYXJpb3VzIGltcG9ydGFudCBzeXNjYWxsIHdyYXBwZXJzCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTI4OCw2ICszNTYsNjMgQEAKICAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfd2FpdDRfbm9jYW5jZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWQsIChVV29yZClzdGF0dXMsIG9wdGlvbnMsIDApOwogICAgcmV0dXJuIHNyX2lzRXJyb3IocmVzKSA/IC0xIDogc3JfUmVzKHJlcyk7CisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBTeXNSZXMgcmVzOworICAgdmtpX2lkdHlwZV90IGlkdHlwZTsKKyAgIHZraV9pZF90IGlkOworICAgdmtpX3NpZ2luZm9fdCBpbmZvOworCisgICAvKiBXZSBuZWVkIHRvIGRvIGEgbG90IG9mIHdvcmsgaGVyZS4gKi8KKworICAgaWYgKHBpZCA+IDApIHsKKyAgICAgIGlkdHlwZSA9IFZLSV9QX1BJRDsKKyAgICAgIGlkID0gcGlkOworICAgfQorICAgZWxzZSBpZiAocGlkIDwgLTEpIHsKKyAgICAgIGlkdHlwZSA9IFZLSV9QX1BHSUQ7CisgICAgICBpZCA9IC1waWQ7CisgICB9CisgICBlbHNlIGlmIChwaWQgPT0gLTEpIHsKKyAgICAgIGlkdHlwZSA9IFZLSV9QX0FMTDsKKyAgICAgIGlkID0gMDsKKyAgIH0KKyAgIGVsc2UgeworICAgICAgaWR0eXBlID0gVktJX1BfUEdJRDsKKyAgICAgIHJlcyA9IFZHXyhkb19zeXNjYWxsMCkoX19OUl9nZXRwaWQpOworICAgICAgaWQgPSBzcl9SZXNISShyZXMpOworICAgfQorCisgICBvcHRpb25zIHw9IFZLSV9XRVhJVEVEIHwgVktJX1dUUkFQUEVEOworCisgICByZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfd2FpdHN5cywgaWR0eXBlLCBpZCwgKFVXb3JkKSZpbmZvLCBvcHRpb25zKTsKKyAgIGlmIChzcl9pc0Vycm9yKHJlcykpCisgICAgICByZXR1cm4gLTE7CisKKyAgIGlmIChzdGF0dXMpIHsKKyAgICAgIEludCBzID0gaW5mby5zaV9zdGF0dXMgJiAweGZmOworCisgICAgICBzd2l0Y2ggKGluZm8uc2lfY29kZSkgeworICAgICAgICAgY2FzZSBWS0lfQ0xEX0VYSVRFRDoKKyAgICAgICAgICAgIHMgPDw9IDg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX0NMRF9EVU1QRUQ6CisgICAgICAgICAgICBzIHw9IFZLSV9XQ09SRUZMRzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQ0xEX0tJTExFRDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQ0xEX1RSQVBQRUQ6CisgICAgICAgICBjYXNlIFZLSV9DTERfU1RPUFBFRDoKKyAgICAgICAgICAgIHMgPDw9IDg7CisgICAgICAgICAgICBzIHw9IFZLSV9XU1RPUEZMRzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQ0xEX0NPTlRJTlVFRDoKKyAgICAgICAgICAgIHMgPSBWS0lfV0NPTlRGTEc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgICpzdGF0dXMgPSBzOworICAgfQorCisgICByZXR1cm4gaW5mby5zaV9waWQ7CiAjICBlbHNlCiAjICAgIGVycm9yIFVua25vd24gT1MKICMgIGVuZGlmCkBAIC0zMjAsNyArNDQ1LDcgQEAKICAgIHJldHVybiBuZXdlbnY7CiB9CiAKLXZvaWQgVkdfKGV4ZWN2KSAoIGNvbnN0IEhDaGFyKiBmaWxlbmFtZSwgSENoYXIqKiBhcmd2ICkKK3ZvaWQgVkdfKGV4ZWN2KSAoIGNvbnN0IEhDaGFyKiBmaWxlbmFtZSwgY29uc3QgSENoYXIqKiBhcmd2ICkKIHsKICAgIEhDaGFyKiogZW52cDsKICAgIFN5c1JlcyByZXM7CkBAIC0zMjksNyArNDU0LDcgQEAKICAgIFZHXyhzZXRybGltaXQpKFZLSV9STElNSVRfREFUQSwgJlZHXyhjbGllbnRfcmxpbWl0X2RhdGEpKTsKIAogICAgZW52cCA9IFZHXyhlbnZfY2xvbmUpKFZHXyhjbGllbnRfZW52cCkpOwotICAgVkdfKGVudl9yZW1vdmVfdmFsZ3JpbmRfZW52X3N0dWZmKSggZW52cCApOworICAgVkdfKGVudl9yZW1vdmVfdmFsZ3JpbmRfZW52X3N0dWZmKSggZW52cCwgVHJ1ZSAvKnJvX3N0cmluZ3MqLywgTlVMTCApOwogCiAgICByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfZXhlY3ZlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpZmlsZW5hbWUsIChVV29yZClhcmd2LCAoVVdvcmQpZW52cCk7CkBAIC0zMzcsNiArNDYyLDkzIEBACiAgICBWR18ocHJpbnRmKSgiRVhFQyBmYWlsZWQsIGVycm5vID0gJWxsZFxuIiwgKExvbmcpc3JfRXJyKHJlcykpOwogfQogCisvKiBTcGF3bnMgYSBuZXcgY2hpbGQuIFVzZXMgZWl0aGVyIHNwYXduIHN5c2NhbGwgb3IgZm9yaytleGVjdiBjb21iby4gKi8KK0ludCBWR18oc3Bhd24pICggY29uc3QgSENoYXIgKmZpbGVuYW1lLCBjb25zdCBIQ2hhciAqKmFyZ3YgKQoreworICAgdmdfYXNzZXJ0KGZpbGVuYW1lICE9IE5VTEwpOworICAgdmdfYXNzZXJ0KGFyZ3YgIT0gTlVMTCk7CisKKyMgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpICYmIGRlZmluZWQoU09MQVJJU19TUEFXTl9TWVNDQUxMKQorICAgSENoYXIgKiplbnZwID0gVkdfKGVudl9jbG9uZSkoVkdfKGNsaWVudF9lbnZwKSk7CisgICBmb3IgKEhDaGFyICoqcCA9IGVudnA7ICpwICE9IE5VTEw7IHArKykgeworICAgICAgKnAgPSBWR18oc3RyZHVwKSgibGliY3Byb2Mucy4xIiwgKnApOworICAgfQorICAgVkdfKGVudl9yZW1vdmVfdmFsZ3JpbmRfZW52X3N0dWZmKShlbnZwLCAvKiByb19zdHJpbmdzICovIEZhbHNlLCBWR18oZnJlZSkpOworCisgICAvKiBOb3cgY29tYmluZSBhcmd2IGFuZCBhcmdwIGludG8gYXJnZW52LiAqLworICAgU2l6ZVQgYXJnZW52X3NpemUgPSAxICsgMTsKKyAgIGZvciAoY29uc3QgSENoYXIgKipwID0gYXJndjsgKnAgIT0gTlVMTDsgcCsrKSB7CisgICAgICBhcmdlbnZfc2l6ZSArPSBWR18oc3RybGVuKSgqcCkgKyAyOworICAgfQorICAgZm9yIChIQ2hhciAqKnAgPSBlbnZwOyAqcCAhPSBOVUxMOyBwKyspIHsKKyAgICAgIGFyZ2Vudl9zaXplICs9IFZHXyhzdHJsZW4pKCpwKSArIDI7CisgICB9CisKKyAgIEhDaGFyICphcmdlbnYgPSBWR18obWFsbG9jKSgibGliY3Byb2Mucy4yIiwgYXJnZW52X3NpemUpOworICAgSENoYXIgKmN1cnJlbnQgPSBhcmdlbnY7CisjICBkZWZpbmUgQ09QWV9DSEFSX1RPX0FSR0VOVihkc3QsIGNoYXJhY3RlcikgIFwKKyAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgKihkc3QpID0gY2hhcmFjdGVyOyAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAoZHN0KSArPSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIH0gd2hpbGUgKDApCisjICBkZWZpbmUgQ09QWV9TVFJJTkdfVE9fQVJHRU5WKGRzdCwgc3JjKSAgICAgICAgXAorICAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIENPUFlfQ0hBUl9UT19BUkdFTlYoZHN0LCAnXDEnKTsgICAgICAgICBcCisgICAgICAgICBTaXplVCBzcmNfbGVuID0gVkdfKHN0cmxlbikoKHNyYykpICsgMTsgXAorICAgICAgICAgVkdfKG1lbWNweSkoKGRzdCksIChzcmMpLCBzcmNfbGVuKTsgICAgIFwKKyAgICAgICAgIChkc3QpICs9IHNyY19sZW47ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9IHdoaWxlICgwKQorCisgICBmb3IgKGNvbnN0IEhDaGFyICoqcCA9IGFyZ3Y7ICpwICE9IE5VTEw7IHArKykgeworICAgICAgQ09QWV9TVFJJTkdfVE9fQVJHRU5WKGN1cnJlbnQsICpwKTsKKyAgIH0KKyAgIENPUFlfQ0hBUl9UT19BUkdFTlYoY3VycmVudCwgJ1wwJyk7CisgICBmb3IgKEhDaGFyICoqcCA9IGVudnA7ICpwICE9IE5VTEw7IHArKykgeworICAgICAgQ09QWV9TVFJJTkdfVE9fQVJHRU5WKGN1cnJlbnQsICpwKTsKKyAgIH0KKyAgIENPUFlfQ0hBUl9UT19BUkdFTlYoY3VycmVudCwgJ1wwJyk7CisgICB2Z19hc3NlcnQoY3VycmVudCA9PSBhcmdlbnYgKyBhcmdlbnZfc2l6ZSk7CisjICB1bmRlZiBDT1BZX0NIQVJfVE9fQVJHRU5WCisjICB1bmRlZiBDT1BZX1NUUklOR19UT0FSR0VOVgorCisgICAvKiBIQUNLOiBUZW1wb3JhcmlseSByZXN0b3JlIHRoZSBEQVRBIHJsaW1pdCBmb3Igc3Bhd25lZCBjaGlsZC4gKi8KKyAgIFZHXyhzZXRybGltaXQpKFZLSV9STElNSVRfREFUQSwgJlZHXyhjbGllbnRfcmxpbWl0X2RhdGEpKTsKKworICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsNSkoX19OUl9zcGF3biwgKFVXb3JkKSBmaWxlbmFtZSwgKFVXb3JkKSBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKSBhcmdlbnYsIGFyZ2Vudl9zaXplKTsKKworICAgLyogUmVzdG9yZSBEQVRBIHJsaW1pdCBiYWNrIHRvIGl0cyBwcmV2aW91cyB2YWx1ZSBzZXQgaW4gbV9tYWluLmMuICovCisgICBzdHJ1Y3QgdmtpX3JsaW1pdCB6ZXJvID0geyAwLCAwIH07CisgICB6ZXJvLnJsaW1fbWF4ID0gVkdfKGNsaWVudF9ybGltaXRfZGF0YSkucmxpbV9tYXg7CisgICBWR18oc2V0cmxpbWl0KShWS0lfUkxJTUlUX0RBVEEsICZ6ZXJvKTsKKworICAgVkdfKGZyZWUpKGFyZ2Vudik7CisgICBmb3IgKEhDaGFyICoqcCA9IGVudnA7ICpwICE9IE5VTEw7IHArKykgeworICAgICAgVkdfKGZyZWUpKCpwKTsKKyAgIH0KKyAgIFZHXyhmcmVlKShlbnZwKTsKKworICAgaWYgKHNyX2lzRXJyb3IocmVzKSkKKyAgICAgIHJldHVybiAtMTsKKyAgIHJldHVybiBzcl9SZXMocmVzKTsKKworIyAgZWxzZQorCisgICBJbnQgcGlkID0gVkdfKGZvcmspKCk7CisgICBpZiAocGlkIDwgMCkKKyAgICAgIHJldHVybiAtMTsKKyAgIGlmIChwaWQgPT0gMCkgeworICAgICAgLyogY2hpbGQgKi8KKyAgICAgIFZHXyhleGVjdikoYXJndlswXSwgYXJndik7CisKKyAgICAgIC8qIElmIHdlJ3JlIHN0aWxsIGFsaXZlIGhlcmUsIGV4ZWN2IGZhaWxlZC4gKi8KKyAgICAgIFZHXyhleGl0KSgxKTsKKyAgIH0gZWxzZSB7CisgICAgICByZXR1cm4gcGlkOworICAgfQorIyAgZW5kaWYgLyogVkdPX3NvbGFyaXMgJiYgU09MQVJJU19TUEFXTl9TWVNDQUxMICovCit9CisKIC8qIFJldHVybiAtMSBpZiBlcnJvciwgZWxzZSAwLiAgTk9URSBkb2VzIG5vdCBpbmRpY2F0ZSByZXR1cm4gY29kZSBvZgogICAgY2hpbGQhICovCiBJbnQgVkdfKHN5c3RlbSkgKCBjb25zdCBIQ2hhciogY21kICkKQEAgLTM0NCw0NyArNTU2LDQyIEBACiAgICBJbnQgcGlkOwogICAgaWYgKGNtZCA9PSBOVUxMKQogICAgICAgcmV0dXJuIDE7Ci0gICBwaWQgPSBWR18oZm9yaykoKTsKKworICAgY29uc3QgSENoYXIgKmFyZ3ZbNF0gPSB7ICIvYmluL3NoIiwgIi1jIiwgY21kLCAwIH07CisgICBwaWQgPSBWR18oc3Bhd24pKGFyZ3ZbMF0sIGFyZ3YpOwogICAgaWYgKHBpZCA8IDApCiAgICAgICByZXR1cm4gLTE7Ci0gICBpZiAocGlkID09IDApIHsKLSAgICAgIC8qIGNoaWxkICovCi0gICAgICBjb25zdCBIQ2hhciogYXJndls0XSA9IHsgIi9iaW4vc2giLCAiLWMiLCBjbWQsIDAgfTsKLSAgICAgIFZHXyhleGVjdikoYXJndlswXSwgQ09OU1RfQ0FTVChIQ2hhciAqKixhcmd2KSk7CiAKLSAgICAgIC8qIElmIHdlJ3JlIHN0aWxsIGFsaXZlIGhlcmUsIGV4ZWN2IGZhaWxlZC4gKi8KLSAgICAgIFZHXyhleGl0KSgxKTsKLSAgIH0gZWxzZSB7Ci0gICAgICAvKiBwYXJlbnQgKi8KLSAgICAgIC8qIFdlIGhhdmUgdG8gc2V0IFNJR0NITEQgdG8gaXRzIGRlZmF1bHQgYmVoYXZpb3VyIGluIG9yZGVyIHRoYXQKLSAgICAgICAgIFZHXyh3YWl0cGlkKSB3b3JrcyAoYXQgbGVhc3Qgb24gQUlYKS4gIEFjY29yZGluZyB0byB0aGUgTGludXgKLSAgICAgICAgIG1hbiBwYWdlIGZvciB3YWl0cGlkOgorICAgdmdfYXNzZXJ0KHBpZCA+IDApOworICAgLyogcGFyZW50ICovCisgICAvKiBXZSBoYXZlIHRvIHNldCBTSUdDSExEIHRvIGl0cyBkZWZhdWx0IGJlaGF2aW91ciBpbiBvcmRlciB0aGF0CisgICAgICBWR18od2FpdHBpZCkgd29ya3MgKGF0IGxlYXN0IG9uIEFJWCkuICBBY2NvcmRpbmcgdG8gdGhlIExpbnV4CisgICAgICBtYW4gcGFnZSBmb3Igd2FpdHBpZDoKIAotICAgICAgICAgUE9TSVguMS0yMDAxIHNwZWNpZmllcyB0aGF0IGlmIHRoZSBkaXNwb3NpdGlvbiBvZiBTSUdDSExEIGlzCi0gICAgICAgICBzZXQgdG8gU0lHX0lHTiBvciB0aGUgU0FfTk9DTERXQUlUIGZsYWcgaXMgc2V0IGZvciBTSUdDSExECi0gICAgICAgICAoc2VlIHNpZ2FjdGlvbigyKSksIHRoZW4gY2hpbGRyZW4gdGhhdCB0ZXJtaW5hdGUgZG8gbm90Ci0gICAgICAgICBiZWNvbWUgem9tYmllcyBhbmQgYSBjYWxsIHRvIHdhaXQoKSBvciB3YWl0cGlkKCkgd2lsbCBibG9jawotICAgICAgICAgdW50aWwgYWxsIGNoaWxkcmVuIGhhdmUgdGVybWluYXRlZCwgYW5kIHRoZW4gZmFpbCB3aXRoIGVycm5vCi0gICAgICAgICBzZXQgdG8gRUNISUxELiAgKFRoZSBvcmlnaW5hbCBQT1NJWCBzdGFuZGFyZCBsZWZ0IHRoZQotICAgICAgICAgYmVoYXZpb3VyIG9mIHNldHRpbmcgU0lHQ0hMRCB0byBTSUdfSUdOIHVuc3BlY2lmaWVkLikKLSAgICAgICovCi0gICAgICBJbnQgaXIsIHp6ejsKLSAgICAgIHZraV9zaWdhY3Rpb25fdG9LX3Qgc2EsIHNhMjsKLSAgICAgIHZraV9zaWdhY3Rpb25fZnJvbUtfdCBzYXZlZF9zYTsKLSAgICAgIFZHXyhtZW1zZXQpKCAmc2EsIDAsIHNpemVvZihzYSkgKTsKLSAgICAgIFZHXyhzaWdlbXB0eXNldCkoJnNhLnNhX21hc2spOwotICAgICAgc2Eua3NhX2hhbmRsZXIgPSBWS0lfU0lHX0RGTDsKLSAgICAgIHNhLnNhX2ZsYWdzICAgID0gMDsKLSAgICAgIGlyID0gVkdfKHNpZ2FjdGlvbikoVktJX1NJR0NITEQsICZzYSwgJnNhdmVkX3NhKTsKLSAgICAgIHZnX2Fzc2VydChpciA9PSAwKTsKKyAgICAgIFBPU0lYLjEtMjAwMSBzcGVjaWZpZXMgdGhhdCBpZiB0aGUgZGlzcG9zaXRpb24gb2YgU0lHQ0hMRCBpcworICAgICAgc2V0IHRvIFNJR19JR04gb3IgdGhlIFNBX05PQ0xEV0FJVCBmbGFnIGlzIHNldCBmb3IgU0lHQ0hMRAorICAgICAgKHNlZSBzaWdhY3Rpb24oMikpLCB0aGVuIGNoaWxkcmVuIHRoYXQgdGVybWluYXRlIGRvIG5vdAorICAgICAgYmVjb21lIHpvbWJpZXMgYW5kIGEgY2FsbCB0byB3YWl0KCkgb3Igd2FpdHBpZCgpIHdpbGwgYmxvY2sKKyAgICAgIHVudGlsIGFsbCBjaGlsZHJlbiBoYXZlIHRlcm1pbmF0ZWQsIGFuZCB0aGVuIGZhaWwgd2l0aCBlcnJubworICAgICAgc2V0IHRvIEVDSElMRC4gIChUaGUgb3JpZ2luYWwgUE9TSVggc3RhbmRhcmQgbGVmdCB0aGUKKyAgICAgIGJlaGF2aW91ciBvZiBzZXR0aW5nIFNJR0NITEQgdG8gU0lHX0lHTiB1bnNwZWNpZmllZC4pCisgICAqLworICAgSW50IGlyLCB6eno7CisgICB2a2lfc2lnYWN0aW9uX3RvS190IHNhLCBzYTI7CisgICB2a2lfc2lnYWN0aW9uX2Zyb21LX3Qgc2F2ZWRfc2E7CisgICBWR18obWVtc2V0KSggJnNhLCAwLCBzaXplb2Yoc2EpICk7CisgICBWR18oc2lnZW1wdHlzZXQpKCZzYS5zYV9tYXNrKTsKKyAgIHNhLmtzYV9oYW5kbGVyID0gVktJX1NJR19ERkw7CisgICBzYS5zYV9mbGFncyAgICA9IDA7CisgICBpciA9IFZHXyhzaWdhY3Rpb24pKFZLSV9TSUdDSExELCAmc2EsICZzYXZlZF9zYSk7CisgICB2Z19hc3NlcnQoaXIgPT0gMCk7CiAKLSAgICAgIHp6eiA9IFZHXyh3YWl0cGlkKShwaWQsIE5VTEwsIDApOworICAgenp6ID0gVkdfKHdhaXRwaWQpKHBpZCwgTlVMTCwgMCk7CiAKLSAgICAgIFZHXyhjb252ZXJ0X3NpZ2FjdGlvbl9mcm9tS190b190b0spKCAmc2F2ZWRfc2EsICZzYTIgKTsKLSAgICAgIGlyID0gVkdfKHNpZ2FjdGlvbikoVktJX1NJR0NITEQsICZzYTIsIE5VTEwpOwotICAgICAgdmdfYXNzZXJ0KGlyID09IDApOwotICAgICAgcmV0dXJuIHp6eiA9PSAtMSA/IC0xIDogMDsKLSAgIH0KKyAgIFZHXyhjb252ZXJ0X3NpZ2FjdGlvbl9mcm9tS190b190b0spKCAmc2F2ZWRfc2EsICZzYTIgKTsKKyAgIGlyID0gVkdfKHNpZ2FjdGlvbikoVktJX1NJR0NITEQsICZzYTIsIE5VTEwpOworICAgdmdfYXNzZXJ0KGlyID09IDApOworICAgcmV0dXJuIHp6eiA9PSAtMSA/IC0xIDogMDsKIH0KIAogSW50IFZHXyhzeXNjdGwpKEludCAqbmFtZSwgVUludCBuYW1lbGVuLCB2b2lkICpvbGRwLCBTaXplVCAqb2xkbGVucCwgdm9pZCAqbmV3cCwgU2l6ZVQgbmV3bGVuKQpAQCAtMzkyLDcgKzU5OSw3IEBACiAgICBTeXNSZXMgcmVzOwogIyAgaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgcmVzID0gVkdfKGRvX3N5c2NhbGw2KShfX05SX19fc3lzY3RsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgbmFtZWxlbiwgb2xkcCwgb2xkbGVucCwgbmV3cCwgbmV3bGVuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZCluYW1lLCBuYW1lbGVuLCAoVVdvcmQpb2xkcCwgKFVXb3JkKW9sZGxlbnAsIChVV29yZCluZXdwLCBuZXdsZW4pOwogIyAgZWxzZQogICAgcmVzID0gVkdfKG1rX1N5c1Jlc19FcnJvcikoVktJX0VOT1NZUyk7CiAjICBlbmRpZgpAQCAtNDkzLDYgKzcwMCwxMCBAQAogICAgLy8gVXNlIE1hY2ggdGhyZWFkIHBvcnRzIGZvciBsd3BpZCBpbnN0ZWFkLgogICAgcmV0dXJuIG1hY2hfdGhyZWFkX3NlbGYoKTsKIAorIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsMCkoX19OUl9sd3Bfc2VsZik7CisgICByZXR1cm4gc3JfUmVzKHJlcyk7CisKICMgIGVsc2UKICMgICAgZXJyb3IgIlVua25vd24gT1MiCiAjICBlbmRpZgpAQCAtNTA4LDM2ICs3MTksNjkgQEAKIEludCBWR18oZ2V0cGdycCkgKCB2b2lkICkKIHsKICAgIC8qIEFTU1VNRVMgU1lTQ0FMTCBBTFdBWVMgU1VDQ0VFRFMgKi8KKyMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICByZXR1cm4gc3JfUmVzKCBWR18oZG9fc3lzY2FsbDApKF9fTlJfZ2V0cGdycCkgKTsKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIC8qIFVzZXMgdGhlIHNoYXJlZCBwZ3Jwc3lzIHN5c2NhbGwsIDAgZm9yIHRoZSBnZXRwZ3JwIHZhcmlhbnQuICovCisgICByZXR1cm4gc3JfUmVzKCBWR18oZG9fc3lzY2FsbDEpKF9fTlJfcGdycHN5cywgMCkgKTsKKyMgIGVsc2UKKyMgICAgZXJyb3IgVW5rbm93biBPUworIyAgZW5kaWYKIH0KIAogSW50IFZHXyhnZXRwcGlkKSAoIHZvaWQgKQogewogICAgLyogQVNTVU1FUyBTWVNDQUxMIEFMV0FZUyBTVUNDRUVEUyAqLworIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikKICAgIHJldHVybiBzcl9SZXMoIFZHXyhkb19zeXNjYWxsMCkoX19OUl9nZXRwcGlkKSApOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgLyogVXNlcyB0aGUgc2hhcmVkIGdldHBpZC9nZXRwcGlkIHN5c2NhbGwsIHZhbDIgY29udGFpbnMgYSBwYXJlbnQgcGlkLiAqLworICAgcmV0dXJuIHNyX1Jlc0hJKCBWR18oZG9fc3lzY2FsbDApKF9fTlJfZ2V0cGlkKSApOworIyAgZWxzZQorIyAgICBlcnJvciBVbmtub3duIE9TCisjICBlbmRpZgogfQogCiBJbnQgVkdfKGdldGV1aWQpICggdm9pZCApCiB7CiAgICAvKiBBU1NVTUVTIFNZU0NBTEwgQUxXQVlTIFNVQ0NFRURTICovCi0jICBpZiBkZWZpbmVkKF9fTlJfZ2V0ZXVpZDMyKQotICAgLy8gV2UgdXNlIHRoZSAzMi1iaXQgdmVyc2lvbiBpZiBpdCdzIHN1cHBvcnRlZC4gIE90aGVyd2lzZSwgSURzIGdyZWF0ZXIKLSAgIC8vIHRoYW4gNjU1MzYgY2F1c2UgcHJvYmxlbXMsIGFzIGJ1ZyAjMTUxMjA5IHNob3dlZC4KLSAgIHJldHVybiBzcl9SZXMoIFZHXyhkb19zeXNjYWxsMCkoX19OUl9nZXRldWlkMzIpICk7CisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorICAgeworIyAgICAgaWYgZGVmaW5lZChfX05SX2dldGV1aWQzMikKKyAgICAgIC8vIFdlIHVzZSB0aGUgMzItYml0IHZlcnNpb24gaWYgaXQncyBzdXBwb3J0ZWQuICBPdGhlcndpc2UsIElEcyBncmVhdGVyCisgICAgICAvLyB0aGFuIDY1NTM2IGNhdXNlIHByb2JsZW1zLCBhcyBidWcgIzE1MTIwOSBzaG93ZWQuCisgICAgICByZXR1cm4gc3JfUmVzKCBWR18oZG9fc3lzY2FsbDApKF9fTlJfZ2V0ZXVpZDMyKSApOworIyAgICAgZWxzZQorICAgICAgcmV0dXJuIHNyX1JlcyggVkdfKGRvX3N5c2NhbGwwKShfX05SX2dldGV1aWQpICk7CisjICAgICBlbmRpZgorICAgfQorIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgLyogVXNlcyB0aGUgc2hhcmVkIGdldHVpZC9nZXRldWlkIHN5c2NhbGwsIHZhbDIgY29udGFpbnMgdGhlIGVmZmVjdGl2ZQorICAgICAgdWlkLiAqLworICAgcmV0dXJuIHNyX1Jlc0hJKCBWR18oZG9fc3lzY2FsbDApKF9fTlJfZ2V0dWlkKSApOwogIyAgZWxzZQotICAgcmV0dXJuIHNyX1JlcyggVkdfKGRvX3N5c2NhbGwwKShfX05SX2dldGV1aWQpICk7CisjICAgIGVycm9yIFVua25vd24gT1MKICMgIGVuZGlmCiB9CiAKIEludCBWR18oZ2V0ZWdpZCkgKCB2b2lkICkKIHsKKyMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICAvKiBBU1NVTUVTIFNZU0NBTEwgQUxXQVlTIFNVQ0NFRURTICovCi0jICBpZiBkZWZpbmVkKF9fTlJfZ2V0ZWdpZDMyKQorIyAgICBpZiBkZWZpbmVkKF9fTlJfZ2V0ZWdpZDMyKQogICAgLy8gV2UgdXNlIHRoZSAzMi1iaXQgdmVyc2lvbiBpZiBpdCdzIHN1cHBvcnRlZC4gIE90aGVyd2lzZSwgSURzIGdyZWF0ZXIKICAgIC8vIHRoYW4gNjU1MzYgY2F1c2UgcHJvYmxlbXMsIGFzIGJ1ZyAjMTUxMjA5IHNob3dlZC4KICAgIHJldHVybiBzcl9SZXMoIFZHXyhkb19zeXNjYWxsMCkoX19OUl9nZXRlZ2lkMzIpICk7Ci0jICBlbHNlCisjICAgIGVsc2UKICAgIHJldHVybiBzcl9SZXMoIFZHXyhkb19zeXNjYWxsMCkoX19OUl9nZXRlZ2lkKSApOworIyAgICBlbmRpZgorCisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAvKiBVc2VzIHRoZSBzaGFyZWQgZ2V0Z2lkL2dldGVnaWQgc3lzY2FsbCwgdmFsMiBjb250YWlucyB0aGUgZWZmZWN0aXZlCisgICAgICBnaWQuICovCisgICByZXR1cm4gc3JfUmVzSEkoIFZHXyhkb19zeXNjYWxsMCkoX19OUl9nZXRnaWQpICk7CisjICBlbHNlCisjICAgIGVycm9yIFVua25vd24gT1MKICMgIGVuZGlmCiB9CiAKQEAgLTU2OCw3ICs4MTIsOCBAQAogIyAgZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9saW51eCkgfHwgZGVmaW5lZChWR1BfYXJtX2xpbnV4KSBcCiAgICAgICAgIHx8IGRlZmluZWQoVkdQX3BwYzY0YmVfbGludXgpIHx8IGRlZmluZWQoVkdQX3BwYzY0bGVfbGludXgpICBcCiAgICAgICAgIHx8IGRlZmluZWQoVkdPX2RhcndpbikgfHwgZGVmaW5lZChWR1BfczM5MHhfbGludXgpICAgIFwKLSAgICAgICAgfHwgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hcm02NF9saW51eCkKKyAgICAgICAgfHwgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hcm02NF9saW51eCkgXAorICAgICAgICB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgU3lzUmVzIHNyZXM7CiAgICBzcmVzID0gVkdfKGRvX3N5c2NhbGwyKShfX05SX2dldGdyb3Vwcywgc2l6ZSwgKEFkZHIpbGlzdCk7CiAgICBpZiAoc3JfaXNFcnJvcihzcmVzKSkKQEAgLTU4Nyw3ICs4MzIsMTcgQEAKIEludCBWR18ocHRyYWNlKSAoIEludCByZXF1ZXN0LCBJbnQgcGlkLCB2b2lkICphZGRyLCB2b2lkICpkYXRhICkKIHsKICAgIFN5c1JlcyByZXM7CisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQogICAgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX3B0cmFjZSwgcmVxdWVzdCwgcGlkLCAoVVdvcmQpYWRkciwgKFVXb3JkKWRhdGEpOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgLyogVGhlcmUgaXMgbm8gcHRyYWNlIHN5c2NhbGwgb24gU29sYXJpcy4gIFN1Y2ggcmVxdWVzdHMgaGFzIHRvIGJlCisgICAgICBpbXBsZW1lbnRlZCB1c2luZyB0aGUgL3Byb2MgaW50ZXJmYWNlLiAgQ2FsbGVycyBvZiBWR18ocHRyYWNlKSBzaG91bGQKKyAgICAgIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgbm90IHJlYWNoZWQgb24gU29sYXJpcywgaS5lLiB0aGV5IG11c3QKKyAgICAgIHByb3ZpZGUgYSBzcGVjaWFsIGNvZGUgZm9yIFNvbGFyaXMgZm9yIHdoYXRldmVyIGZlYXR1cmUgdGhleSBwcm92aWRlLiAqLworICAgSV9kaWVfaGVyZTsKKyMgIGVsc2UKKyMgICAgZXJyb3IgVW5rbm93biBPUworIyAgZW5kaWYKICAgIGlmIChzcl9pc0Vycm9yKHJlcykpCiAgICAgICByZXR1cm4gLTE7CiAgICByZXR1cm4gc3JfUmVzKHJlcyk7CkBAIC02MjUsNiArODgwLDI0IEBACiAgICB9CiAgICByZXR1cm4gc3JfUmVzKHJlcyk7CiAKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIC8qIFVzaW5nIGZvcmsoKSBvbiBTb2xhcmlzIGlzIG5vdCByZWFsbHkgdGhlIGJlc3QgdGhpbmcgdG8gZG8uIFNvbGFyaXMKKyAgICAgIGRvZXMgbm90IGRvIG1lbW9yeSBvdmVyY29tbWl0bWVudCBzbyBmb3JrKCkgY2FuIGZhaWwgaWYgdGhlcmUgaXMgbm90CisgICAgICBlbm91Z2ggbWVtb3J5IHRvIGNvcHkgdGhlIGN1cnJlbnQgcHJvY2VzcyBpbnRvIGEgbmV3IG9uZS4KKyAgICAgIFByZWZlciB0byB1c2UgVkdfKHNwYXduKSgpIG92ZXIgVkdfKGZvcmspKCkgKyBWR18oZXhlY3YpKCkuICovCisgICBTeXNSZXMgcmVzOworICAgcmVzID0gVkdfKGRvX3N5c2NhbGwyKShfX05SX2ZvcmtzeXMsIDAgLypzdWJjb2RlIChmb3JrKSovLCAwIC8qZmxhZ3MqLyk7CisgICBpZiAoc3JfaXNFcnJvcihyZXMpKQorICAgICAgcmV0dXJuIC0xOworICAgLyogT24gc3VjY2VzczoKKyAgICAgICAgdmFsID0gYSBwaWQgb2YgdGhlIGNoaWxkIGluIHRoZSBwYXJlbnQsIGEgcGlkIG9mIHRoZSBwYXJlbnQgaW4gdGhlCisgICAgICAgICAgICAgIGNoaWxkLAorICAgICAgICB2YWwyID0gMCBpbiB0aGUgcGFyZW50IHByb2Nlc3MsIDEgaW4gdGhlIGNoaWxkIHByb2Nlc3MuICovCisgICBpZiAoc3JfUmVzSEkocmVzKSAhPSAwKSB7CisgICAgICByZXR1cm4gMDsKKyAgIH0KKyAgIHJldHVybiBzcl9SZXMocmVzKTsKKwogIyAgZWxzZQogIyAgICBlcnJvciAiVW5rbm93biBPUyIKICMgIGVuZGlmCkBAIC02NDAsNyArOTEzLDcgQEAKICAgIHN0YXRpYyBVTG9uZyBiYXNlID0gMDsKICAgIFVMb25nICBub3c7CiAKLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICB7IFN5c1JlcyByZXM7CiAgICAgIHN0cnVjdCB2a2lfdGltZXNwZWMgdHNfbm93OwogICAgICByZXMgPSBWR18oZG9fc3lzY2FsbDIpKF9fTlJfY2xvY2tfZ2V0dGltZSwgVktJX0NMT0NLX01PTk9UT05JQywKQEAgLTY0OSw2ICs5MjIsOCBAQAogICAgICAgICBub3cgPSB0c19ub3cudHZfc2VjICogMTAwMDAwMFVMTCArIHRzX25vdy50dl9uc2VjIC8gMTAwMDsKICAgICAgfSBlbHNlIHsKICAgICAgICBzdHJ1Y3QgdmtpX3RpbWV2YWwgdHZfbm93OworICAgICAgIC8qIE5vdGU6IE9uIFNvbGFyaXMsIHRoaXMgc3lzY2FsbCB0YWtlcyBvbmx5IG9uZSBwYXJhbWV0ZXIgYnV0IHRoZQorICAgICAgICAgIGV4dHJhIGR1bW15IG9uZSBkb2VzIG5vdCBjYXVzZSBhbnkgaGFybS4gKi8KICAgICAgICByZXMgPSBWR18oZG9fc3lzY2FsbDIpKF9fTlJfZ2V0dGltZW9mZGF5LCAoVVdvcmQpJnR2X25vdywgKFVXb3JkKU5VTEwpOwogICAgICAgIHZnX2Fzc2VydCghIHNyX2lzRXJyb3IocmVzKSk7CiAgICAgICAgbm93ID0gdHZfbm93LnR2X3NlYyAqIDEwMDAwMDBVTEwgKyB0dl9ub3cudHZfdXNlYzsKQEAgLTkxOCw3ICsxMTkzLDcgQEAKICMgIGVsaWYgZGVmaW5lZChWR0FfbWlwczMyKSB8fCBkZWZpbmVkKFZHQV9taXBzNjQpCiAgICBTeXNSZXMgc3JlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9jYWNoZWZsdXNoLCAoVVdvcmQpIHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZCkgbmJ5dGVzLCAoVVdvcmQpIDMpOwotICAgdmdfYXNzZXJ0KCBzcmVzLl9pc0Vycm9yID09IDAgKTsKKyAgIHZnX2Fzc2VydCggIXNyX2lzRXJyb3Ioc3JlcykgKTsKIAogIyAgZWxpZiBkZWZpbmVkKFZHQV90aWxlZ3gpCiAgICBjb25zdCBIQ2hhciAqc3RhcnQsICplbmQ7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9saWJjc2V0am1wLmMgYi9jb3JlZ3JpbmQvbV9saWJjc2V0am1wLmMKaW5kZXggZGY1NmUzYi4uODFhMWE1MyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fbGliY3NldGptcC5jCisrKyBiL2NvcmVncmluZC9tX2xpYmNzZXRqbXAuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBNb3ppbGxhIEluYworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgTW96aWxsYSBJbmMKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX2xpYmNzaWduYWwuYyBiL2NvcmVncmluZC9tX2xpYmNzaWduYWwuYwppbmRleCBhMzgwZjA1Li41NTdlMjE5IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9saWJjc2lnbmFsLmMKKysrIGIvY29yZWdyaW5kL21fbGliY3NpZ25hbC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM3LDYgKzM3LDExIEBACiAjaW5jbHVkZSAicHViX2NvcmVfc3lzY2FsbC5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNzaWduYWwuaCIgICAgLyogc2VsZiAqLwogCisjaWYgIWRlZmluZWQoVkdPX3NvbGFyaXMpCisjICAgZGVmaW5lIF9WS0lfTUFYU0lHIChfVktJX05TSUcgLSAxKQorI2VuZGlmCitTVEFUSUNfQVNTRVJUKChfVktJX01BWFNJRyAlIF9WS0lfTlNJR19CUFcpICE9IDApOworCiAvKiBJTVBPUlRBTlQ6IG9uIERhcndpbiBpdCBpcyBlc3NlbnRpYWwgdG8gdXNlIHRoZSBfbm9jYW5jZWwgdmVyc2lvbnMKICAgIG9mIHN5c2NhbGxzIHJhdGhlciB0aGFuIHRoZSB2YW5pbGxhIHZlcnNpb24sIGlmIGEgX25vY2FuY2VsIHZlcnNpb24KICAgIGlzIGF2YWlsYWJsZS4gIFNlZSBkb2NzL2ludGVybmFscy9EYXJ3aW4tbm90ZXMudHh0IGZvciB0aGUgcmVhc29uCkBAIC00OSw2ICs1NCwxMyBAQAogICAgNjQtYml0cy4gIEFuZCB3aGljaCB0aGV5IGFyZSBpdCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGZvbGxvdyBmcm9tIHRoZQogICAgaG9zdCB3b3JkIHNpemUuICovCiAKKy8qIEZ1bmN0aW9ucyBWR18oaXNlbXB0eXNpZ3NldCkgYW5kIFZHXyhpc2Z1bGxzaWdzZXQpIGNoZWNrIG9ubHkgYml0cyB0aGF0CisgICByZXByZXNlbnQgdmFsaWQgc2lnbmFscyAoaS5lLiBzaWduYWxzIDw9IF9WS0lfTUFYU0lHKS4gIFRoZSBzYW1lIGFwcGxpZXMKKyAgIGZvciB0aGUgY29tcGFyaXNvbiBpbiBWR18oaXNlcXNpZ3NldCkuICBUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIHdoZW4KKyAgIGEgc2lnbmFsIHNldCBpcyByZWNlaXZlZCBmcm9tIGFuIG9wZXJhdGluZyBzeXN0ZW0gdGhlbiBiaXRzIHdoaWNoIHJlcHJlc2VudAorICAgc2lnbmFscyA+IF9WS0lfTUFYU0lHIGNhbiBoYXZlIHVuZXhwZWN0ZWQgdmFsdWVzIGZvciBWYWxncmluZC4gVGhpcyBpcworICAgbWFpbmx5IHNwZWNpZmljIHRvIHRoZSBTb2xhcmlzIGtlcm5lbCB3aGljaCBjbGVhcnMgdGhlc2UgYml0cy4gKi8KKwogSW50IFZHXyhzaWdmaWxsc2V0KSggdmtpX3NpZ3NldF90KiBzZXQgKQogewogICAgSW50IGk7CkBAIC03Myw4ICs4NSwxOCBAQAogewogICAgSW50IGk7CiAgICB2Z19hc3NlcnQoc2V0ICE9IE5VTEwpOwotICAgZm9yIChpID0gMDsgaSA8IF9WS0lfTlNJR19XT1JEUzsgaSsrKQotICAgICAgaWYgKHNldC0+c2lnW2ldICE9IDApIHJldHVybiBGYWxzZTsKKyAgIGZvciAoaSA9IDA7IGkgPCBfVktJX05TSUdfV09SRFM7IGkrKykgeworICAgICAgaWYgKF9WS0lfTlNJR19CUFcgKiAoaSArIDEpIDw9IChfVktJX01BWFNJRyArIDEpKSB7CisgICAgICAgICAvKiBGdWxsIHdvcmQgY2hlY2suICovCisgICAgICAgICBpZiAoc2V0LT5zaWdbaV0gIT0gMCkgcmV0dXJuIEZhbHNlOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgICAvKiBQYXJ0aWFsIHdvcmQgY2hlY2suICovCisgICAgICAgICBVTG9uZyBtYXNrID0gKDFVTCA8PCAoX1ZLSV9NQVhTSUcgJSBfVktJX05TSUdfQlBXKSkgLSAxOworICAgICAgICAgaWYgKChzZXQtPnNpZ1tpXSAmIG1hc2spICE9IDApIHJldHVybiBGYWxzZTsKKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgfQogICAgcmV0dXJuIFRydWU7CiB9CiAKQEAgLTgyLDggKzEwNCwxOCBAQAogewogICAgSW50IGk7CiAgICB2Z19hc3NlcnQoc2V0ICE9IE5VTEwpOwotICAgZm9yIChpID0gMDsgaSA8IF9WS0lfTlNJR19XT1JEUzsgaSsrKQotICAgICAgaWYgKHNldC0+c2lnW2ldICE9IH4wKSByZXR1cm4gRmFsc2U7CisgICBmb3IgKGkgPSAwOyBpIDwgX1ZLSV9OU0lHX1dPUkRTOyBpKyspIHsKKyAgICAgIGlmIChfVktJX05TSUdfQlBXICogKGkgKyAxKSA8PSAoX1ZLSV9NQVhTSUcgKyAxKSkgeworICAgICAgICAgLyogRnVsbCB3b3JkIGNoZWNrLiAqLworICAgICAgICAgaWYgKHNldC0+c2lnW2ldICE9IH4wKSByZXR1cm4gRmFsc2U7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgIC8qIFBhcnRpYWwgd29yZCBjaGVjay4gKi8KKyAgICAgICAgIFVMb25nIG1hc2sgPSAoMVVMIDw8IChfVktJX01BWFNJRyAlIF9WS0lfTlNJR19CUFcpKSAtIDE7CisgICAgICAgICBpZiAoKHNldC0+c2lnW2ldICYgbWFzaykgIT0gbWFzaykgcmV0dXJuIEZhbHNlOworICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICB9CiAgICByZXR1cm4gVHJ1ZTsKIH0KIApAQCAtOTEsOCArMTIzLDE4IEBACiB7CiAgICBJbnQgaTsKICAgIHZnX2Fzc2VydChzZXQxICE9IE5VTEwgJiYgc2V0MiAhPSBOVUxMKTsKLSAgIGZvciAoaSA9IDA7IGkgPCBfVktJX05TSUdfV09SRFM7IGkrKykKLSAgICAgIGlmIChzZXQxLT5zaWdbaV0gIT0gc2V0Mi0+c2lnW2ldKSByZXR1cm4gRmFsc2U7CisgICBmb3IgKGkgPSAwOyBpIDwgX1ZLSV9OU0lHX1dPUkRTOyBpKyspIHsKKyAgICAgIGlmIChfVktJX05TSUdfQlBXICogKGkgKyAxKSA8PSAoX1ZLSV9NQVhTSUcgKyAxKSkgeworICAgICAgICAgLyogRnVsbCB3b3JkIGNvbXBhcmlzb24uICovCisgICAgICAgICBpZiAoc2V0MS0+c2lnW2ldICE9IHNldDItPnNpZ1tpXSkgcmV0dXJuIEZhbHNlOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgICAvKiBQYXJ0aWFsIHdvcmQgY29tcGFyaXNvbi4gKi8KKyAgICAgICAgIFVMb25nIG1hc2sgPSAoMVVMIDw8IChfVktJX01BWFNJRyAlIF9WS0lfTlNJR19CUFcpKSAtIDE7CisgICAgICAgICBpZiAoKHNldDEtPnNpZ1tpXSAmIG1hc2spICE9IChzZXQyLT5zaWdbaV0gJiBtYXNrKSkgcmV0dXJuIEZhbHNlOworICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICB9CiAgICByZXR1cm4gVHJ1ZTsKIH0KIApAQCAtMTc0LDcgKzIxNiw3IEBACiAqLwogSW50IFZHXyhzaWdwcm9jbWFzaykoIEludCBob3csIGNvbnN0IHZraV9zaWdzZXRfdCogc2V0LCB2a2lfc2lnc2V0X3QqIG9sZHNldCkKIHsKLSMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAjICBpZiBkZWZpbmVkKF9fTlJfcnRfc2lncHJvY21hc2spCiAgICBTeXNSZXMgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX3J0X3NpZ3Byb2NtYXNrLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdywgKFVXb3JkKXNldCwgKFVXb3JkKW9sZHNldCwgCkBAIC0yNzIsNiArMzE0LDEyIEBACiAgICB9CiAgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gLTEgOiAwOwogCisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAvKiB2a2lfc2lnYWN0aW9uX3RvS190IGFuZCB2a2lfc2lnYWN0aW9uX2Zyb21LX3QgYXJlIGlkZW50aWNhbCB0eXBlcy4gKi8KKyAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfc2lnYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbnVtLCAoVVdvcmQpYWN0LCAoVVdvcmQpb2xkYWN0KTsKKyAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IDA7CisKICMgIGVsc2UKICMgICAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogIyAgZW5kaWYKQEAgLTI4Myw3ICszMzEsNyBAQAogVkdfKGNvbnZlcnRfc2lnYWN0aW9uX2Zyb21LX3RvX3RvSykoIGNvbnN0IHZraV9zaWdhY3Rpb25fZnJvbUtfdCogZnJvbUssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL3ZraV9zaWdhY3Rpb25fdG9LX3QqIHRvSyApCiB7Ci0jICBpZiBkZWZpbmVkKFZHT19saW51eCkKKyMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgKnRvSyA9ICpmcm9tSzsKICMgIGVsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgdG9LLT5rc2FfaGFuZGxlciA9IGZyb21LLT5rc2FfaGFuZGxlcjsKQEAgLTI5OCw3ICszNDYsNyBAQAogCiBJbnQgVkdfKGtpbGwpKCBJbnQgcGlkLCBJbnQgc2lnbm8gKQogewotIyAgaWYgZGVmaW5lZChWR09fbGludXgpCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKICAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDIpKF9fTlJfa2lsbCwgcGlkLCBzaWdubyk7CiAjICBlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfa2lsbCwKQEAgLTMyNCw2ICszNzIsMjEgQEAKICAgIHJlcyA9IFZHXyhkb19zeXNjYWxsMikoX19OUl9fX3B0aHJlYWRfa2lsbCwgbHdwaWQsIHNpZ25vKTsKICAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IDA7CiAKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFN5c1JlcyByZXM7CisjICAgICBpZiBkZWZpbmVkKFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwpCisjICAgICAgICBpZiBkZWZpbmVkKFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTExfVEFLRVNfUElEKQorICAgICAgICAgICAgcmVzID0gVkdfKGRvX3N5c2NhbGw2KShfX05SX2x3cF9zaWdxdWV1ZSwgMCwgbHdwaWQsIHNpZ25vLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBWS0lfU0lfTFdQLCAwKTsKKyMgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlcyA9IFZHXyhkb19zeXNjYWxsNSkoX19OUl9sd3Bfc2lncXVldWUsIGx3cGlkLCBzaWdubywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgVktJX1NJX0xXUCwgMCk7CisjICAgICAgICBlbmRpZgorIyAgICAgZWxzZQorICAgICAgICAgcmVzID0gVkdfKGRvX3N5c2NhbGwyKShfX05SX2x3cF9raWxsLCBsd3BpZCwgc2lnbm8pOworIyAgICAgZW5kaWYKKyAgIHJldHVybiBzcl9pc0Vycm9yKHJlcykgPyAtMSA6IDA7CisKICMgIGVsc2UKICMgICAgZXJyb3IgIlVuc3VwcG9ydGVkIHBsYXQiCiAjICBlbmRpZgpAQCAtNDE1LDcgKzQ3OCw3IEBACiAKICAgLyogZG9uJ3QgdHJ5IGZvciBzaWduYWxzIG5vdCBpbiAnc2V0JyAqLwogICAvKiBwZW5kaW5nID0gcGVuZGluZyBgaW50ZXJzZWN0YCBzZXQgKi8KLSAgVkdfKHNpZ2ludGVyc2VjdHNldCkoJnBlbmRpbmcsICh2a2lfc2lnc2V0X3QqKXNldCk7CisgIFZHXyhzaWdpbnRlcnNlY3RzZXQpKCZwZW5kaW5nLCAoY29uc3QgdmtpX3NpZ3NldF90KilzZXQpOwogCiAgIC8qIGRvbid0IHRyeSBmb3Igc2lnbmFscyBub3QgYmxvY2tlZCBhdCB0aGUgbW9tZW50ICovCiAgIGlyID0gVkdfKHNpZ3Byb2NtYXNrKShWS0lfU0lHX1NFVE1BU0ssIE5VTEwsICZibG9ja2VkKTsKQEAgLTQ3Nyw2ICs1NDAsMTYgQEAKICAgcmV0dXJuIGk7CiB9CiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitJbnQgVkdfKHNpZ3RpbWVkd2FpdF96ZXJvKSggY29uc3QgdmtpX3NpZ3NldF90ICpzZXQsIHZraV9zaWdpbmZvX3QgKmluZm8gKQoreworICAgLyogVHJpdmlhbCBhcyBvbiBMaW51eC4gKi8KKyAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdmtpX3RpbWVzcGVjIHplcm8gPSB7IDAsIDAgfTsKKyAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfc2lndGltZWR3YWl0LCAoVVdvcmQpc2V0LCAoVVdvcmQpaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZCkmemVybyk7CisgICByZXR1cm4gc3JfaXNFcnJvcihyZXMpID8gLTEgOiBzcl9SZXMocmVzKTsKK30KKwogI2Vsc2UKICMgIGVycm9yICJVbmtub3duIE9TIgogI2VuZGlmCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9tYWNoL21hY2hfYmFzaWNzLmMgYi9jb3JlZ3JpbmQvbV9tYWNoL21hY2hfYmFzaWNzLmMKaW5kZXggMzNmYWI5MC4uMDM0NTExYyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fbWFjaC9tYWNoX2Jhc2ljcy5jCisrKyBiL2NvcmVncmluZC9tX21hY2gvbWFjaF9iYXNpY3MuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBBcHBsZSBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBBcHBsZSBJbmMuCiAgICAgICBHcmVnIFBhcmtlciAgZ3BhcmtlckBhcHBsZS5jb20KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fbWFjaC9tYWNoX3RyYXBzLWFtZDY0LWRhcndpbi5TIGIvY29yZWdyaW5kL21fbWFjaC9tYWNoX3RyYXBzLWFtZDY0LWRhcndpbi5TCmluZGV4IGJlMTg5YTAuLmU1YjM5M2MgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX21hY2gvbWFjaF90cmFwcy1hbWQ2NC1kYXJ3aW4uUworKysgYi9jb3JlZ3JpbmQvbV9tYWNoL21hY2hfdHJhcHMtYW1kNjQtZGFyd2luLlMKQEAgLTYsNyArNiw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgQXBwbGUgSW5jLgorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgQXBwbGUgSW5jLgogICAgICAgR3JlZyBQYXJrZXIgIGdwYXJrZXJAYXBwbGUuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI3LDYgKzI3LDggQEAKICAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKICNpZiBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCiAKICNpbmNsdWRlICJ2a2kvdmtpLXNjbnVtcy1kYXJ3aW4uaCIKQEAgLTEzNCw2ICsxMzYsOSBAQAogCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKQogCisvKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLworTUFSS19TVEFDS19OT19FWEVDCisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX21hY2gvbWFjaF90cmFwcy14ODYtZGFyd2luLlMgYi9jb3JlZ3JpbmQvbV9tYWNoL21hY2hfdHJhcHMteDg2LWRhcndpbi5TCmluZGV4IGI5YmY5OWIuLjU1NjQwNjAgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX21hY2gvbWFjaF90cmFwcy14ODYtZGFyd2luLlMKKysrIGIvY29yZWdyaW5kL21fbWFjaC9tYWNoX3RyYXBzLXg4Ni1kYXJ3aW4uUwpAQCAtNiw3ICs2LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBBcHBsZSBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBBcHBsZSBJbmMuCiAgICAgICBHcmVnIFBhcmtlciAgZ3BhcmtlckBhcHBsZS5jb20KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjcsNiArMjcsOCBAQAogICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgogKi8KIAorI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKKwogI2lmIGRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pCiAKIC8vIERERDogc2hvdWxkIHVzZSBfX05SXyBjb25zdGFudHMgaW4gaGVyZSBpbnN0ZWFkIG9mIHRoZSB0cmFwIG51bWJlcnMKQEAgLTEyNCw2ICsxMjYsOSBAQAogCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfeDg2X2RhcndpbikKIAorLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9tYWNoaW5lLmMgYi9jb3JlZ3JpbmQvbV9tYWNoaW5lLmMKaW5kZXggOTlhZmI3ZC4uNjExMGM5MyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fbWFjaGluZS5jCisrKyBiL2NvcmVncmluZC9tX21hY2hpbmUuYwpAQCAtNiw3ICs2LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xOTEsNyArMTkxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSENoYXIqLCBBZGRyKSkKIHsKICAgIFZleEd1ZXN0QXJjaFN0YXRlKiB2ZXggPSAmKFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCktPmFyY2gudmV4KTsKLSAgIFZHXyhkZWJ1Z0xvZykoMiwgIm1hY2hpbmUiLCAiYXBwbHlfdG9fR1BzX29mX3RpZCAlZFxuIiwgdGlkKTsKKyAgIFZHXyhkZWJ1Z0xvZykoMiwgIm1hY2hpbmUiLCAiYXBwbHlfdG9fR1BzX29mX3RpZCAldVxuIiwgdGlkKTsKICNpZiBkZWZpbmVkKFZHQV94ODYpCiAgICAoKmYpKHRpZCwgIkVBWCIsIHZleC0+Z3Vlc3RfRUFYKTsKICAgICgqZikodGlkLCAiRUNYIiwgdmV4LT5ndWVzdF9FQ1gpOwpAQCAtNTI2LDcgKzUyNiw3IEBACiAKIAogLyogSGVscGVyIGZ1bmN0aW9uIGZvciBWR18obWFjaGluZV9nZXRfaHdjYXBzKSwgYXNzdW1lcyB0aGUgU0lHSUxML2V0YwotICogaGFuZGxlcnMgYXJlIGluc3RhbGxlZC4gIERldGVybWluZXMgdGhlIHRoZSBzaXplcyBhZmZlY3RlZCBieSBkY2J6CisgKiBoYW5kbGVycyBhcmUgaW5zdGFsbGVkLiAgRGV0ZXJtaW5lcyB0aGUgc2l6ZXMgYWZmZWN0ZWQgYnkgZGNiegogICogYW5kIGRjYnpsIGluc3RydWN0aW9ucyBhbmQgdXBkYXRlcyB0aGUgZ2l2ZW4gVmV4QXJjaEluZm8gc3RydWN0dXJlCiAgKiBhY2NvcmRpbmdseS4KICAqCkBAIC04NzgsNiArODc4LDcgQEAKICAgICAgQm9vbCBoYXZlX2x6Y250LCBoYXZlX2F2eCwgaGF2ZV9ibWksIGhhdmVfYXZ4MjsKICAgICAgQm9vbCBoYXZlX3JkdHNjcDsKICAgICAgVUludCBlYXgsIGVieCwgZWN4LCBlZHgsIG1heF9iYXNpYywgbWF4X2V4dGVuZGVkOworICAgICBVTG9uZyB4Z2V0YnZfMCA9IDA7CiAgICAgIEhDaGFyIHZzdHJbMTNdOwogICAgICB2c3RyWzBdID0gMDsKIApAQCAtOTEwLDI2ICs5MTEsNDEgQEAKICAgICAgLy8gc3NlNDEgICBpcyBlY3g6MTkKICAgICAgLy8gc3NlNDIgICBpcyBlY3g6MjAKIAorICAgICAvLyB4c2F2ZSAgIGlzIGVjeDoyNgogICAgICAvLyBvc3hzYXZlIGlzIGVjeDoyNwogICAgICAvLyBhdnggICAgIGlzIGVjeDoyOAogICAgICAvLyBmbWEgICAgIGlzIGVjeDoxMgogICAgICBoYXZlX2F2eCA9IEZhbHNlOwogICAgICAvKiBoYXZlX2ZtYSA9IEZhbHNlOyAqLwotICAgICBpZiAoIChlY3ggJiAoKDE8PDI3KXwoMTw8MjgpKSkgPT0gKCgxPDwyNyl8KDE8PDI4KSkgKSB7Ci0gICAgICAgIC8qIHByb2Nlc3NvciBzdXBwb3J0cyBBVlggaW5zdHJ1Y3Rpb25zIGFuZCBYR0VUQlYgaXMgZW5hYmxlZAotICAgICAgICAgICBieSBPUyAqLworICAgICBpZiAoIChlY3ggJiAoKDE8PDI4KXwoMTw8MjcpfCgxPDwyNikpKSA9PSAoKDE8PDI4KXwoMTw8MjcpfCgxPDwyNikpICkgeworICAgICAgICAvKiBQcm9jZXNzb3Igc3VwcG9ydHMgQVZYIGluc3RydWN0aW9ucyBhbmQgWEdFVEJWIGlzIGVuYWJsZWQKKyAgICAgICAgICAgYnkgT1MgYW5kIEFWWCBpbnN0cnVjdGlvbnMgYXJlIGVuYWJsZWQgYnkgdGhlIE9TLiAqLwogICAgICAgICBVTG9uZyB3OwogICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92cSAkMCwlJXJjeCA7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi5ieXRlIDB4MEYsMHgwMSwweEQwIDsgIiAvKiB4Z2V0YnYgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdnEgJSVyYXgsJTAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDovKk9VVCovIj1yIih3KSA6LypJTiovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDovKlRSQVNIKi8icmR4IiwicmN4Iik7Ci0gICAgICAgIGlmICgodyAmIDYpID09IDYpIHsKLSAgICAgICAgICAgLyogT1MgaGFzIGVuYWJsZWQgYm90aCBYTU0gYW5kIFlNTSBzdGF0ZSBzdXBwb3J0ICovCi0gICAgICAgICAgIGhhdmVfYXZ4ID0gVHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOi8qVFJBU0gqLyJyZHgiLCJyY3giLCJyYXgiKTsKKyAgICAgICAgeGdldGJ2XzAgPSB3OworICAgICAgICBpZiAoKHhnZXRidl8wICYgNykgPT0gNykgeworICAgICAgICAgICAvKiBPbmx5IHNheSB3ZSBoYXZlIEFWWCBpZiB0aGUgWFNBVkUtYWxsb3dhYmxlCisgICAgICAgICAgICAgIGJpdGZpZWxkLW1hc2sgYWxsb3dzIHg4NywgU1NFIGFuZCBBVlggc3RhdGUuICBXZSBjb3VsZAorICAgICAgICAgICAgICBhY3R1YWxseSBydW4gd2l0aCBhIG1vcmUgcmVzdHJpY3RpdmUgWEdFVEJWKDApIHZhbHVlLAorICAgICAgICAgICAgICBidXQgVkVYJ3MgaW1wbGVtZW50YXRpb24gb2YgWFNBVkUgYW5kIFhSU1RPUiBhc3N1bWVzCisgICAgICAgICAgICAgIHRoYXQgYWxsIDMgYml0cyBhcmUgZW5hYmxlZC4KKworICAgICAgICAgICAgICBBbHNvLCB0aGUgVkVYIGltcGxlbWVudGF0aW9uIG9mIFhTQVZFL1hSU1RPUiBhc3N1bWVzIHRoYXQKKyAgICAgICAgICAgICAgc3RhdGUgY29tcG9uZW50IFsyXSAodGhlIFlNTSBoaWdoIGhhbHZlcykgYXJlIGxvY2F0ZWQgaW4KKyAgICAgICAgICAgICAgdGhlIFhTQVZFIGltYWdlIGF0IG9mZnNldHMgNTc2IC4uIDgzMS4gIFNvIHdlIGhhdmUgdG8KKyAgICAgICAgICAgICAgY2hlY2sgdGhhdCBoZXJlIGJlZm9yZSBkZWNsYXJpbmcgQVZYIHRvIGJlIHN1cHBvcnRlZC4gKi8KKyAgICAgICAgICAgVUludCBlYXgyLCBlYngyLCBlY3gyLCBlZHgyOworICAgICAgICAgICBWR18oY3B1aWQpKDB4RCwgMiwgJmVheDIsICZlYngyLCAmZWN4MiwgJmVkeDIpOworICAgICAgICAgICBpZiAoZWJ4MiA9PSA1NzYgJiYgZWF4MiA9PSAyNTYpIHsKKyAgICAgICAgICAgICAgaGF2ZV9hdnggPSBUcnVlOworICAgICAgICAgICB9CiAgICAgICAgICAgIC8qIGhhdmVfZm1hID0gKGVjeCAmICgxPDwxMikpICE9IDA7ICovCiAgICAgICAgICAgIC8qIGhhdmVfZm1hOiBQcm9iYWJseSBjb3JyZWN0LCBidXQgZ2NjIGNvbXBsYWlucyBkdWUgdG8KLSAgICAgICAgICAgICAgdW51c2VkbmVzcy4gJiovCisgICAgICAgICAgICAgIHVudXNlZG5lc3MuICovCiAgICAgICAgIH0KICAgICAgfQogCkBAIC05NTcsMTIgKzk3MywxMiBAQAogICAgICAgICBoYXZlX3JkdHNjcCA9IChlZHggJiAoMTw8MjcpKSAhPSAwOyAvKiBUcnVlID0+IGhhdmUgUkRUU1ZDUCAqLwogICAgICB9CiAKLSAgICAgLyogQ2hlY2sgZm9yIEJNSTEgYW5kIEFWWDIuIElmIHdlIGhhdmUgQVZYMSAocGx1cyBPUyBzdXBwb3J0KS4gKi8KLSAgICAgaGF2ZV9ibWkgPSBGYWxzZTsKKyAgICAgLyogQ2hlY2sgZm9yIEJNSTEgYW5kIEFWWDIuICBJZiB3ZSBoYXZlIEFWWDEgKHBsdXMgT1Mgc3VwcG9ydCkuICovCisgICAgIGhhdmVfYm1pICA9IEZhbHNlOwogICAgICBoYXZlX2F2eDIgPSBGYWxzZTsKICAgICAgaWYgKGhhdmVfYXZ4ICYmIG1heF9iYXNpYyA+PSA3KSB7CiAgICAgICAgIFZHXyhjcHVpZCkoNywgMCwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7Ci0gICAgICAgIGhhdmVfYm1pID0gKGVieCAmICgxPDwzKSkgIT0gMDsgLyogVHJ1ZSA9PiBoYXZlIEJNSTEgKi8KKyAgICAgICAgaGF2ZV9ibWkgID0gKGVieCAmICgxPDwzKSkgIT0gMDsgLyogVHJ1ZSA9PiBoYXZlIEJNSTEgKi8KICAgICAgICAgaGF2ZV9hdngyID0gKGVieCAmICgxPDw1KSkgIT0gMDsgLyogVHJ1ZSA9PiBoYXZlIEFWWDIgKi8KICAgICAgfQogCkBAIC0xNDExLDcgKzE0MjcsNyBAQAogICAgICBIQ2hhciAqcCA9IGZhY19zdHI7CiAgICAgIHAgKz0gVkdfKHNwcmludGYpKHAsICJtYWNoaW5lICU0ZCAgIiwgbW9kZWwpOwogICAgICBmb3IgKGk9MDsgaSA8IHNpemVvZiBmYWNfaHdjYXBzIC8gc2l6ZW9mIGZhY19od2NhcHNbMF07ICsraSkgewotICAgICAgICBwICs9IFZHXyhzcHJpbnRmKShwLCAiICVzICUxZCIsIGZhY19od2NhcHNbaV0ubmFtZSwKKyAgICAgICAgcCArPSBWR18oc3ByaW50ZikocCwgIiAlcyAlMXUiLCBmYWNfaHdjYXBzW2ldLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY19od2NhcHNbaV0uaW5zdGFsbGVkKTsKICAgICAgfQogICAgICAqcCsrID0gJ1wwJzsKQEAgLTE4NDAsNyArMTg1Niw4IEBACiAgICAgICB8fCBkZWZpbmVkKFZHUF9wcGMzMl9saW51eCkgfHwgZGVmaW5lZChWR1BfcHBjNjRsZV9saW51eCkgXAogICAgICAgfHwgZGVmaW5lZChWR1BfczM5MHhfbGludXgpIHx8IGRlZmluZWQoVkdQX21pcHMzMl9saW51eCkgXAogICAgICAgfHwgZGVmaW5lZChWR1BfbWlwczY0X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hcm02NF9saW51eCkgXAotICAgICAgfHwgZGVmaW5lZChWR1BfdGlsZWd4X2xpbnV4KQorICAgICAgfHwgZGVmaW5lZChWR1BfdGlsZWd4X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykgXAorICAgICAgfHwgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKICAgIHJldHVybiBmOwogIyAgZWxpZiBkZWZpbmVkKFZHUF9wcGM2NGJlX2xpbnV4KQogICAgLyogcHBjNjQtbGludXggdXNlcyB0aGUgQUlYIHNjaGVtZSwgaW4gd2hpY2ggZiBpcyBhIHBvaW50ZXIgdG8gYQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fbWFpbi5jIGIvY29yZWdyaW5kL21fbWFpbi5jCmluZGV4IDlmOThlMTEuLjE4MjFjOTQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX21haW4uYworKysgYi9jb3JlZ3JpbmQvbV9tYWluLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTMzLDExICsxMzMsOCBAQAogIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQgZGVmYXVsdCBzdXBwcmVzc2lvbnMgW3llc11cbiIKICIgICAgLS1zdXBwcmVzc2lvbnM9PGZpbGVuYW1lPiBzdXBwcmVzcyBlcnJvcnMgZGVzY3JpYmVkIGluIDxmaWxlbmFtZT5cbiIKICIgICAgLS1nZW4tc3VwcHJlc3Npb25zPW5vfHllc3xhbGwgICAgcHJpbnQgc3VwcHJlc3Npb25zIGZvciBlcnJvcnM/IFtub11cbiIKLSIgICAgLS1kYi1hdHRhY2g9bm98eWVzICAgICAgICBzdGFydCBkZWJ1Z2dlciB3aGVuIGVycm9ycyBkZXRlY3RlZD8gW25vXVxuIgotIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGU6IGRlcHJlY2F0ZWQgZmVhdHVyZVxuIgotIiAgICAtLWRiLWNvbW1hbmQ9PGNvbW1hbmQ+ICAgIGNvbW1hbmQgdG8gc3RhcnQgZGVidWdnZXIgWyVzIC1udyAlJWYgJSVwXVxuIgogIiAgICAtLWlucHV0LWZkPTxudW1iZXI+ICAgICAgIGZpbGUgZGVzY3JpcHRvciBmb3IgaW5wdXQgWzA9c3RkaW5dXG4iCi0iICAgIC0tZHN5bXV0aWw9bm98eWVzICAgICAgICAgcnVuIGRzeW11dGlsIG9uIE1hYyBPUyBYIHdoZW4gaGVscGZ1bD8gW25vXVxuIgorIiAgICAtLWRzeW11dGlsPW5vfHllcyAgICAgICAgIHJ1biBkc3ltdXRpbCBvbiBNYWMgT1MgWCB3aGVuIGhlbHBmdWw/IFt5ZXNdXG4iCiAiICAgIC0tbWF4LXN0YWNrZnJhbWU9PG51bWJlcj4gYXNzdW1lIHN0YWNrIHN3aXRjaCBmb3IgU1AgY2hhbmdlcyBsYXJnZXJcbiIKICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGFuIDxudW1iZXI+IGJ5dGVzIFsyMDAwMDAwXVxuIgogIiAgICAtLW1haW4tc3RhY2tzaXplPTxudW1iZXI+IHNldCBzaXplIG9mIG1haW4gdGhyZWFkJ3Mgc3RhY2sgKGluIGJ5dGVzKVxuIgpAQCAtMTYzLDEzICsxNjAsMTMgQEAKICIgICAgLS1hbGxvdy1taXNtYXRjaGVkLWRlYnVnaW5mbz1ub3x5ZXMgIFtub11cbiIKICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIGFib3ZlIHR3byBmbGFncyBvbmx5LCBhY2NlcHQgZGVidWdpbmZvXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0cyB0aGF0IGRvbid0IFwibWF0Y2hcIiB0aGUgbWFpbiBvYmplY3RcbiIKLSIgICAgLS1zbWMtY2hlY2s9bm9uZXxzdGFja3xhbGx8YWxsLW5vbi1maWxlIFtzdGFja11cbiIKKyIgICAgLS1zbWMtY2hlY2s9bm9uZXxzdGFja3xhbGx8YWxsLW5vbi1maWxlIFthbGwtbm9uLWZpbGVdXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tzIGZvciBzZWxmLW1vZGlmeWluZyBjb2RlOiBub25lLCBvbmx5IGZvclxuIgogIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgZm91bmQgaW4gc3RhY2tzLCBmb3IgYWxsIGNvZGUsIG9yIGZvciBhbGxcbiIKICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlIGV4Y2VwdCB0aGF0IGZyb20gZmlsZS1iYWNrZWQgbWFwcGluZ3NcbiIKICIgICAgLS1yZWFkLWlubGluZS1pbmZvPXllc3xubyByZWFkIGRlYnVnIGluZm8gYWJvdXQgaW5saW5lZCBmdW5jdGlvbiBjYWxsc1xuIgogIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB1c2UgaXQgdG8gZG8gYmV0dGVyIHN0YWNrIHRyYWNlcy4gIFt5ZXNdXG4iCi0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gTGludXgvQW5kcm9pZCBmb3IgTWVtY2hlY2svSGVsZ3JpbmQvRFJEXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gTGludXgvQW5kcm9pZC9Tb2xhcmlzIGZvciBNZW1jaGVjay9IZWxncmluZC9EUkRcbiIKICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5LiAgW25vXSBmb3IgYWxsIG90aGVyIHRvb2xzIGFuZCBwbGF0Zm9ybXMuXG4iCiAiICAgIC0tcmVhZC12YXItaW5mbz15ZXN8bm8gICAgcmVhZCBkZWJ1ZyBpbmZvIG9uIHN0YWNrIGFuZCBnbG9iYWwgdmFyaWFibGVzXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHVzZSBpdCB0byBwcmludCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgaW5cbiIKQEAgLTE4MSw3ICsxNzgsNyBAQAogIiAgICAtLXJ1bi1saWJjLWZyZWVyZXM9bm98eWVzIGZyZWUgdXAgZ2xpYmMgbWVtb3J5IGF0IGV4aXQgb24gTGludXg/IFt5ZXNdXG4iCiAiICAgIC0tc2ltLWhpbnRzPWhpbnQxLGhpbnQyLC4uLiAgYWN0aXZhdGUgdW51c3VhbCBzaW0gYmVoYXZpb3VycyBbbm9uZV0gXG4iCiAiICAgICAgICAgd2hlcmUgaGludCBpcyBvbmUgb2Y6XG4iCi0iICAgICAgICAgICBsYXgtaW9jdGxzIGZ1c2UtY29tcGF0aWJsZSBlbmFibGUtb3V0ZXJcbiIKKyIgICAgICAgICAgIGxheC1pb2N0bHMgbGF4LWRvb3JzIGZ1c2UtY29tcGF0aWJsZSBlbmFibGUtb3V0ZXJcbiIKICIgICAgICAgICAgIG5vLWlubmVyLXByZWZpeCBuby1ucHRsLXB0aHJlYWQtc3RhY2tjYWNoZSBub25lXG4iCiAiICAgIC0tZmFpci1zY2hlZD1ub3x5ZXN8dHJ5ICAgc2NoZWR1bGUgdGhyZWFkcyBmYWlybHkgb24gbXVsdGljb3JlIHN5c3RlbXMgW25vXVxuIgogIiAgICAtLWtlcm5lbC12YXJpYW50PXZhcmlhbnQxLHZhcmlhbnQyLC4uLlxuIgpAQCAtMjk1LDEzICsyOTIsMTIgQEAKICIgIEV4dHJhIG9wdGlvbnMgcmVhZCBmcm9tIH4vLnZhbGdyaW5kcmMsICRWQUxHUklORF9PUFRTLCAuLy52YWxncmluZHJjXG4iCiAiXG4iCiAiICAlcyBpcyAlc1xuIgotIiAgVmFsZ3JpbmQgaXMgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMsIGFuZCBHTlUgR1BMJ2QsIGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuXG4iCi0iICBMaWJWRVggaXMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMsIGFuZCBHTlUgR1BMJ2QsIGJ5IE9wZW5Xb3JrcyBMTFAgZXQgYWwuXG4iCisiICBWYWxncmluZCBpcyBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC5cbiIKKyIgIExpYlZFWCBpcyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgT3BlbldvcmtzIExMUCBldCBhbC5cbiIKICJcbiIKICIgIEJ1ZyByZXBvcnRzLCBmZWVkYmFjaywgYWRtaXJhdGlvbiwgYWJ1c2UsIGV0YywgdG86ICVzLlxuIgogIlxuIjsKIAotICAgY29uc3QgSENoYXIqIGdkYl9wYXRoID0gR0RCX1BBVEg7CiAgICBIQ2hhciBkZWZhdWx0X2FsaWdubWVudFszMF07ICAgICAgLy8gbGFyZ2UgZW5vdWdoCiAgICBIQ2hhciBkZWZhdWx0X3JlZHpvbmVfc2l6ZVszMF07ICAgLy8gbGFyZ2UgZW5vdWdoCiAKQEAgLTMxOSw3ICszMTUsNiBAQAogICAgLyogJ3VzYWdlMScgYSB0eXBlIGFzIGRlc2NyaWJlZCBhZnRlciBlYWNoIGFyZy4gKi8KICAgIFZHXyhwcmludGYpKHVzYWdlMSwgCiAgICAgICAgICAgICAgICBWR18oY2xvX3ZnZGJfZXJyb3IpICAgICAgICAvKiBpbnQgKi8sCi0gICAgICAgICAgICAgICBnZGJfcGF0aCAgICAgICAgICAgICAgICAgICAvKiBjaGFyKiAqLywKICAgICAgICAgICAgICAgIGRlZmF1bHRfYWxpZ25tZW50ICAgICAgICAgIC8qIGNoYXIqICovLAogICAgICAgICAgICAgICAgZGVmYXVsdF9yZWR6b25lX3NpemUgICAgICAgLyogY2hhciogKi8sCiAgICAgICAgICAgICAgICBWR18oY2xvX3ZnZGJfcG9sbCkgICAgICAgICAvKiBpbnQgKi8sCkBAIC00MTAsNyArNDA1LDcgQEAKICAgICAgIC8vIHJ1bm5pbmcgaW4gYW4gb3V0ZXIsIHRvIGhhdmUgIm5vLWlubmVyLXByZWZpeCIgZW5hYmxlZAogICAgICAgLy8gYXMgZWFybHkgYXMgcG9zc2libGUuCiAgICAgICBlbHNlIGlmIFZHX1VTRVRYX0NMTyAoc3RyLCAiLS1zaW0taGludHMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsYXgtaW9jdGxzLGZ1c2UtY29tcGF0aWJsZSwiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxheC1pb2N0bHMsbGF4LWRvb3JzLGZ1c2UtY29tcGF0aWJsZSwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuYWJsZS1vdXRlcixuby1pbm5lci1wcmVmaXgsIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuby1ucHRsLXB0aHJlYWQtc3RhY2tjYWNoZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfKGNsb19zaW1faGludHMpKSB7fQpAQCAtNjE3LDcgKzYxMiw2IEBACiAgICAgICB9CiAgICAgICBlbHNlIGlmIFZHX0JPT0xfQ0xPKGFyZywgIi0tdmdkYi1zaGFkb3ctcmVnaXN0ZXJzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWR18oY2xvX3ZnZGJfc2hhZG93X3JlZ2lzdGVycykpIHt9Ci0gICAgICBlbHNlIGlmIFZHX0JPT0xfQ0xPKGFyZywgIi0tZGItYXR0YWNoIiwgICAgICBWR18oY2xvX2RiX2F0dGFjaCkpIHt9CiAgICAgICBlbHNlIGlmIFZHX0JPT0xfQ0xPKGFyZywgIi0tZGVtYW5nbGUiLCAgICAgICBWR18oY2xvX2RlbWFuZ2xlKSkge30KICAgICAgIGVsc2UgaWYgVkdfU1RSX0NMTyAoYXJnLCAiLS1zb25hbWUtc3lub255bXMiLFZHXyhjbG9fc29uYW1lX3N5bm9ueW1zKSkge30KICAgICAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS1lcnJvci1saW1pdCIsICAgIFZHXyhjbG9fZXJyb3JfbGltaXQpKSB7fQpAQCAtNjgyLDcgKzY3Niw2IEBACiAKICAgICAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS10cmFjZS1zeXNjYWxscyIsICAgVkdfKGNsb190cmFjZV9zeXNjYWxscykpIHt9CiAgICAgICBlbHNlIGlmIFZHX0JPT0xfQ0xPKGFyZywgIi0td2FpdC1mb3ItZ2RiIiwgICAgIFZHXyhjbG9fd2FpdF9mb3JfZ2RiKSkge30KLSAgICAgIGVsc2UgaWYgVkdfU1RSX0NMTyAoYXJnLCAiLS1kYi1jb21tYW5kIiwgICAgICAgVkdfKGNsb19kYl9jb21tYW5kKSkge30KICAgICAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS1zeW0tb2Zmc2V0cyIsICAgICAgVkdfKGNsb19zeW1fb2Zmc2V0cykpIHt9CiAgICAgICBlbHNlIGlmIFZHX0JPT0xfQ0xPKGFyZywgIi0tcmVhZC1pbmxpbmUtaW5mbyIsIFZHXyhjbG9fcmVhZF9pbmxpbmVfaW5mbykpIHt9CiAgICAgICBlbHNlIGlmIFZHX0JPT0xfQ0xPKGFyZywgIi0tcmVhZC12YXItaW5mbyIsICAgIFZHXyhjbG9fcmVhZF92YXJfaW5mbykpIHt9CkBAIC05MDIsMTEgKzg5NSw3IEBACiAKICAgIC8qIEVORCBjb21tYW5kLWxpbmUgcHJvY2Vzc2luZyBsb29wICovCiAKLSAgIC8qIE5vdGlmeSBhYm91dCBkZXByZWNhdGVkIGZlYXR1cmVzICovCi0gICBpZiAoVkdfKGNsb19kYl9hdHRhY2gpKQotICAgICAgVkdfKHVtc2cpCi0gICAgICAgICAoIlxuV2FybmluZzogLS1kYi1hdHRhY2ggaXMgYSBkZXByZWNhdGVkIGZlYXR1cmUgd2hpY2ggd2lsbCBiZVxuIgotICAgICAgICAgICIgICByZW1vdmVkIGluIHRoZSBuZXh0IHJlbGVhc2UuIFVzZSAtLXZnZGItZXJyb3I9MSBpbnN0ZWFkXG5cbiIpOworICAgLyogTm90aWZ5IGFib3V0IGRlcHJlY2F0ZWQgZmVhdHVyZXMgaGVyZS4gKi8KIAogICAgLyogRGV0ZXJtaW5lIHRoZSBwYXRoIHByZWZpeCBmb3IgdmdkYiAqLwogICAgaWYgKFZHXyhjbG9fdmdkYl9wcmVmaXgpID09IE5VTEwpCkBAIC05OTgsMTYgKzk4Nyw2IEBACiAgICAgICAgICAgICAiLS1nZW4tc3VwcHJlc3Npb25zPXllcy5cbiIpOwogICAgICAgfQogCi0gICAgICAvKiBXZSBjYW4ndCBhbGxvdyBEQiBhdHRhY2hpbmcgKG9yIHdlIG1heWJlIGNvdWxkLCBidXQgcmVzdWx0cwotICAgICAgICAgY291bGQgYmUgY2hhb3RpYyAuLikgc2luY2UgaXQgcmVxdWlyZXMgdXNlciBpbnB1dC4gIEhlbmNlCi0gICAgICAgICBkaXNhbGxvdy4gKi8KLSAgICAgIGlmIChWR18oY2xvX2RiX2F0dGFjaCkpIHsKLSAgICAgICAgIFZHXyhmbXNnX2JhZF9vcHRpb24pKAotICAgICAgICAgICAgIi0teG1sPXllcyB0b2dldGhlciB3aXRoIC0tZGItYXR0YWNoPXllcyIsCi0gICAgICAgICAgICAiLS1kYi1hdHRhY2g9eWVzIGlzIG5vdCBhbGxvd2VkIHdpdGggLS14bWw9eWVzXG4iCi0gICAgICAgICAgICAiYmVjYXVzZSBpdCB3b3VsZCByZXF1aXJlIHVzZXIgaW5wdXQuXG4iKTsKLSAgICAgIH0KLQogICAgICAgLyogRGlzYWxsb3cgZHVtcF9lcnJvciBpbiBYTUwgbW9kZTsgc291bmRzIGxpa2UgYSByZWNpcGUgZm9yCiAgICAgICAgICBjaGFvcy4gIE5vIGJpZyBkZWFsOyBkdW1wX2Vycm9yIGlzIGEgZmxhZyBmb3IgZGVidWdnaW5nIFYKICAgICAgICAgIGl0c2VsZi4gKi8KQEAgLTE0NDMsNyArMTQyMiw3IEBACiAgICAgICBWR18odW1zZykoIlxuIik7CiAKICAgIGlmIChWR18oY2xvX3ZlcmJvc2l0eSkgPiAxKSB7Ci0jIGlmICFkZWZpbmVkKFZHT19kYXJ3aW4pCisjIGlmIGRlZmluZWQoVkdPX2xpbnV4KQogICAgICAgU3lzUmVzIGZkOwogIyBlbmRpZgogICAgICAgVmV4QXJjaCB2ZXhfYXJjaDsKQEAgLTE0NTcsNyArMTQzNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAqIChIQ2hhcioqKSBWR18oaW5kZXhYQSkoIFZHXyhhcmdzX2Zvcl92YWxncmluZCksIGkgKSk7CiAgICAgICB9CiAKLSMgaWYgIWRlZmluZWQoVkdPX2RhcndpbikKKyMgaWYgZGVmaW5lZChWR09fbGludXgpCiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJDb250ZW50cyBvZiAvcHJvYy92ZXJzaW9uOlxuIik7CiAgICAgICBmZCA9IFZHXyhvcGVuKSAoICIvcHJvYy92ZXJzaW9uIiwgVktJX09fUkRPTkxZLCAwICk7CiAgICAgICBpZiAoc3JfaXNFcnJvcihmZCkpIHsKQEAgLTE0NzksNyArMTQ1OCw3IEBACiAgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJcbiIpOwogICAgICAgICAgVkdfKGNsb3NlKShmZG5vKTsKICAgICAgIH0KLSMgZWxzZQorIyBlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIk91dHB1dCBmcm9tIHN5c2N0bCh7Q1RMX0tFUk4sS0VSTl9WRVJTSU9OfSk6XG4iKTsKICAgICAgIC8qIE5vdGU6IHByZWZlcmFibGUgdG8gdXNlIHN5c2N0bGJ5bmFtZSgia2Vybi52ZXJzaW9uIiwga2VybmVsVmVyc2lvbiwgJmxlbiwgTlVMTCwgMCkKICAgICAgICAgIGhvd2V2ZXIgdGhhdCBzeXNjYWxsIGlzIE9TIFggMTAuMTArIG9ubHkuICovCkBAIC0xNDkwLDYgKzE0NjksMjAgQEAKICAgICAgIFZHXyhzeXNjdGwpKG1pYiwgc2l6ZW9mKG1pYikvc2l6ZW9mKEludCksIGtlcm5lbFZlcnNpb24sICZsZW4sIE5VTEwsIDApOwogICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAiICAlc1xuIiwga2VybmVsVmVyc2lvbik7CiAgICAgICBWR18oZnJlZSkoIGtlcm5lbFZlcnNpb24gKTsKKyMgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgICAgLyogVGhlcmUgaXMgbm8gL3Byb2MvdmVyc2lvbiBmaWxlIG9uIFNvbGFyaXMgc28gd2UgdHJ5IHRvIGdldCBzb21lCisgICAgICAgICBzeXN0ZW0gaW5mb3JtYXRpb24gdXNpbmcgdGhlIHVuYW1lKDIpIHN5c2NhbGwuICovCisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX3V0c25hbWUgdXRzOworCisgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJTeXN0ZW0gaW5mb3JtYXRpb246XG4iKTsKKyAgICAgICAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDEpKF9fTlJfdW5hbWUsIChVV29yZCkmdXRzKTsKKyAgICAgICAgIGlmIChzcl9pc0Vycm9yKHJlcykpCisgICAgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICIgIHVuYW1lKCkgZmFpbGVkXG4iKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIiAgJXMgJXMgJXMgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgdXRzLnN5c25hbWUsIHV0cy5yZWxlYXNlLCB1dHMudmVyc2lvbiwgdXRzLm1hY2hpbmUpOworICAgICAgfQogIyBlbmRpZgogCiAgICAgICBWR18obWFjaGluZV9nZXRfVmV4QXJjaEluZm8pKCAmdmV4X2FyY2gsICZ2ZXhfYXJjaGluZm8gKTsKQEAgLTE1MzksOCArMTUzMiw4IEBACiAjICBlbmRpZgogCiAgICBpZiAoc2hvdykKLSAgICAgIFZHXyhwcmludGYpKCJmZCBsaW1pdHM6IGhvc3QsIGJlZm9yZTogY3VyICVsdSBtYXggJWx1XG4iLCAKLSAgICAgICAgICAgICAgICAgIChVV29yZClybC5ybGltX2N1ciwgKFVXb3JkKXJsLnJsaW1fbWF4KTsKKyAgICAgIFZHXyhwcmludGYpKCJmZCBsaW1pdHM6IGhvc3QsIGJlZm9yZTogY3VyICVsbHUgbWF4ICVsbHVcbiIsIAorICAgICAgICAgICAgICAgICAgKFVMb25nKXJsLnJsaW1fY3VyLCAoVUxvbmcpcmwucmxpbV9tYXgpOwogCiAgICAvKiBXb3JrIG91dCB3aGVyZSB0byBtb3ZlIHRoZSBzb2Z0IGxpbWl0IHRvLiAqLwogICAgaWYgKHJsLnJsaW1fY3VyICsgTl9SRVNFUlZFRF9GRFMgPD0gcmwucmxpbV9tYXgpIHsKQEAgLTE1NTksNyArMTU1Miw3IEBACiAgICBpZiAoc2hvdykgewogICAgICAgVkdfKHByaW50ZikoImZkIGxpbWl0czogaG9zdCwgIGFmdGVyOiBjdXIgJWx1IG1heCAlbHVcbiIsCiAgICAgICAgICAgICAgICAgICAoVVdvcmQpcmwucmxpbV9jdXIsIChVV29yZClybC5ybGltX21heCk7Ci0gICAgICBWR18ocHJpbnRmKSgiZmQgbGltaXRzOiBndWVzdCAgICAgICA6IGN1ciAldSBtYXggJXVcbiIsCisgICAgICBWR18ocHJpbnRmKSgiZmQgbGltaXRzOiBndWVzdCAgICAgICA6IGN1ciAlZCBtYXggJWRcbiIsCiAgICAgICAgICAgICAgICAgICBWR18oZmRfc29mdF9saW1pdCksIFZHXyhmZF9oYXJkX2xpbWl0KSk7CiAgICB9CiAKQEAgLTE5NDUsNyArMTkzOCw3IEBACiAgICBpZiAoIW5lZWRfaGVscCkgewogICAgICAgVkdfKGRlYnVnTG9nKSgxLCAibWFpbiIsICJDcmVhdGUgaW5pdGlhbCBpbWFnZVxuIik7CiAKLSMgICAgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisjICAgICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgICAgdGhlX2lpY2lpLmFyZ3YgICAgICAgICAgICAgID0gYXJndjsKICAgICAgIHRoZV9paWNpaS5lbnZwICAgICAgICAgICAgICA9IGVudnA7CiAgICAgICB0aGVfaWljaWkudG9vbG5hbWUgICAgICAgICAgPSB0b29sbmFtZTsKQEAgLTE5NzgsMTYgKzE5NzEsMjEgQEAKICAgIC8vICAgcDogc2V0dXAgZmlsZSBkZXNjcmlwdG9ycwogICAgLy8gICBwOiBpaV9jcmVhdGVfaW1hZ2UgZm9yIFZHXyhjbGllbnRfYXV4dikgc2V0dXAuCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jaWYgIWRlZmluZWQoVkdPX2xpbnV4KQotICAgLy8gY2xpZW50IHNob3VsZG4ndCBiZSB1c2luZyAvcHJvYyEKICAgIFZHXyhjbF9jbWRsaW5lX2ZkKSA9IC0xOwogICAgVkdfKGNsX2F1eHZfZmQpID0gLTE7Ci0jZWxzZQorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBWR18oY2xfcHNpbmZvX2ZkKSA9IC0xOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKICAgIGlmICghbmVlZF9oZWxwKSB7CiAgICAgICBIQ2hhciAgYnVmWzUwXTsgICAvLyBsYXJnZSBlbm91Z2gKICAgICAgIEhDaGFyICBidWYyW1ZHXyhta3N0ZW1wX2Z1bGxuYW1lX2J1ZnN6KShzaXplb2YgYnVmIC0gMSldOwotICAgICAgSENoYXIgIG51bFsxXTsKICAgICAgIEludCAgICBmZCwgcjsKKworI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFNPTEFSSVNfUFJPQ19DTURMSU5FKQorICAgICAgLyogRmFrZSAvcHJvYy88cGlkPi9jbWRsaW5lIG9ubHkgb24gTGludXggYW5kIFNvbGFyaXMgaWYgc3VwcG9ydGVkLiAqLworICAgICAgSENoYXIgIG51bFsxXTsKICAgICAgIGNvbnN0IEhDaGFyKiBleGVuYW1lOwogCiAgICAgICBWR18oZGVidWdMb2cpKDEsICJtYWluIiwgIkNyZWF0ZSBmYWtlIC9wcm9jLzxwaWQ+L2NtZGxpbmVcbiIpOwpAQCAtMjAwOSw4ICsyMDA3LDggQEAKICAgICAgIH0KIAogICAgICAgLyogRG9uJ3QgYm90aGVyIHRvIHNlZWsgdGhlIGZpbGUgYmFjayB0byB0aGUgc3RhcnQ7IGluc3RlYWQgZG8KLQkgaXQgZXZlcnkgdGltZSBhIGNvcHkgb2YgaXQgaXMgZ2l2ZW4gb3V0IChieSBQUkUoc3lzX29wZW4pKS4gCi0JIFRoYXQgaXMgcHJvYmFibHkgbW9yZSByb2J1c3QgYWNyb3NzIGZvcmsoKSBldGMuICovCisJIGl0IGV2ZXJ5IHRpbWUgYSBjb3B5IG9mIGl0IGlzIGdpdmVuIG91dCAoYnkgUFJFKHN5c19vcGVuKSBvcgorCSBQUkUoc3lzX29wZW5hdCkpLiBUaGF0IGlzIHByb2JhYmx5IG1vcmUgcm9idXN0IGFjcm9zcyBmb3JrKCkgZXRjLiAqLwogCiAgICAgICAvKiBOb3cgZGVsZXRlIGl0LCBidXQgaGFuZyBvbiB0byB0aGUgZmQuICovCiAgICAgICByID0gVkdfKHVubGluaykoIGJ1ZjIgKTsKQEAgLTIwMTgsNyArMjAxNiw5IEBACiAgICAgICAgICBWR18oZXJyX2NvbmZpZ19lcnJvcikoIkNhbid0IGRlbGV0ZSBjbGllbnQgY21kbGluZSBmaWxlIGluICVzXG4iLCBidWYyKTsKIAogICAgICAgVkdfKGNsX2NtZGxpbmVfZmQpID0gZmQ7CisjZW5kaWYgLy8gZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoU09MQVJJU19QUk9DX0NNRExJTkUpCiAKKyAgICAgIC8qIEZha2UgL3Byb2MvPHBpZD4vYXV4diBvbiBib3RoIExpbnV4IGFuZCBTb2xhcmlzLiAqLwogICAgICAgVkdfKGRlYnVnTG9nKSgxLCAibWFpbiIsICJDcmVhdGUgZmFrZSAvcHJvYy88cGlkPi9hdXh2XG4iKTsKIAogICAgICAgVkdfKHNwcmludGYpKGJ1ZiwgInByb2NfJWRfYXV4diIsIFZHXyhnZXRwaWQpKCkpOwpAQCAtMjA0Nyw2ICsyMDQ3LDI0IEBACiAgICAgICAgICBWR18oZXJyX2NvbmZpZ19lcnJvcikoIkNhbid0IGRlbGV0ZSBjbGllbnQgYXV4diBmaWxlIGluICVzXG4iLCBidWYyKTsKIAogICAgICAgVkdfKGNsX2F1eHZfZmQpID0gZmQ7CisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgICAgLyogRmFrZSAvcHJvYy88cGlkPi9wc2luZm8gb24gU29sYXJpcy4KKyAgICAgICAqIENvbnRlbnRzIHdpbGwgYmUgZmV0Y2hlZCBhbmQgcGFydGlhbGx5IGZha2VkIGxhdGVyIG9uIHRoZSBmbHkuICovCisgICAgICBWR18oZGVidWdMb2cpKDEsICJtYWluIiwgIkNyZWF0ZSBmYWtlIC9wcm9jLzxwaWQ+L3BzaW5mb1xuIik7CisKKyAgICAgIFZHXyhzcHJpbnRmKShidWYsICJwcm9jXyVkX3BzaW5mbyIsIFZHXyhnZXRwaWQpKCkpOworICAgICAgZmQgPSBWR18obWtzdGVtcCkoIGJ1ZiwgYnVmMiApOworICAgICAgaWYgKGZkID09IC0xKQorICAgICAgICAgVkdfKGVycl9jb25maWdfZXJyb3IpKCJDYW4ndCBjcmVhdGUgY2xpZW50IHBzaW5mbyBmaWxlIGluICVzXG4iLCBidWYyKTsKKworICAgICAgLyogTm93IGRlbGV0ZSBpdCwgYnV0IGhhbmcgb24gdG8gdGhlIGZkLiAqLworICAgICAgciA9IFZHXyh1bmxpbmspKCBidWYyICk7CisgICAgICBpZiAocikKKyAgICAgICAgIFZHXyhlcnJfY29uZmlnX2Vycm9yKSgiQ2FuJ3QgZGVsZXRlIGNsaWVudCBwc2luZm8gZmlsZSBpbiAlc1xuIiwgYnVmMik7CisKKyAgICAgIFZHXyhjbF9wc2luZm9fZmQpID0gZmQ7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KICAgIH0KICNlbmRpZgogCkBAIC0yMTY1LDYgKzIxODMsOCBAQAogICAgICAgaXRlcnMgPSAxMDsKICMgICAgIGVsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgICAgaXRlcnMgPSAzOworIyAgICAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgICAgaXRlcnMgPSAxMDsKICMgICAgIGVsc2UKICMgICAgICAgZXJyb3IgIlVua25vd24gcGxhdCIKICMgICAgIGVuZGlmCkBAIC0yMTgzLDYgKzIyMDMsMTAgQEAKICAgICAgIFZHXyhpbml0X3ByZW9wZW5lZF9mZHMpKCk7CiAgICB9CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgVkdfKHN5c3dyYXBfaW5pdCkoKTsKKyNlbmRpZgorCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAvLyBMb2FkIGRlYnVnIGluZm8gZm9yIHRoZSBleGlzdGluZyBzZWdtZW50cy4KICAgIC8vICAgcDogc2V0dXBfY29kZV9yZWRpcmVjdF90YWJsZSBbc28gdGhhdCByZWRpcnMgY2FuIGJlIHJlY29yZGVkXQpAQCAtMjIwNyw3ICsyMjMxLDcgQEAKICAgIGFkZHIyZGloYW5kbGUgPSBWR18obmV3WEEpKCBWR18obWFsbG9jKSwgIm1haW4udm0uMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfKGZyZWUpLCBzaXplb2YoQWRkcl9uX1VMb25nKSApOwogCi0jICBpZiBkZWZpbmVkKFZHT19saW51eCkKKyMgIGlmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgeyBBZGRyKiBzZWdfc3RhcnRzOwogICAgICBJbnQgICBuX3NlZ19zdGFydHM7CiAgICAgIEFkZHJfbl9VTG9uZyBhbnU7CkBAIC0yNDQ1LDcgKzI0NjksMTkgQEAKICAgIC8vICAgICAgVkdfKGlpX2NyZWF0ZV9pbWFnZSkgICBbZm9yICd0aGVfaWljaWknIGluaXRpYWwgaW5mb10KICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFZHXyhkZWJ1Z0xvZykoMSwgIm1haW4iLCAiRmluYWxpc2UgaW5pdGlhbCBpbWFnZVxuIik7Ci0gICBWR18oaWlfZmluYWxpc2VfaW1hZ2UpKCB0aGVfaWlmaWkgKTsKKyAgIHsgLyogTWFyayB0aGUgbWFpbiB0aHJlYWQgYXMgcnVubmluZyB3aGlsZSB3ZSB0ZWxsIHRoZSB0b29sIGFib3V0CisgICAgICAgIHRoZSBjbGllbnQgbWVtb3J5IHdoaWNoIGNvdWxkIGJlIHRyYWNrZWQgZHVyaW5nIGluaXRpYWwgaW1hZ2UKKyAgICAgICAgZmluYWxpc2F0aW9uLiBTbyB0aGUgdG9vbCBjYW4gYXNzb2NpYXRlIHRoYXQgbWVtb3J5IHdpdGggdGhlCisgICAgICAgIG1haW4gdGhyZWFkLiAqLworICAgICB2Z19hc3NlcnQoVkdfKHJ1bm5pbmdfdGlkKSA9PSBWR19JTlZBTElEX1RIUkVBRElEKTsKKyAgICAgVkdfKHJ1bm5pbmdfdGlkKSA9IHRpZF9tYWluOworCisgICAgIFZHXyhpaV9maW5hbGlzZV9pbWFnZSkoIHRoZV9paWZpaSApOworCisgICAgIC8qIENsZWFyIHRoZSBydW5uaW5nIHRocmVhZCBpbmRpY2F0b3IgKi8KKyAgICAgVkdfKHJ1bm5pbmdfdGlkKSA9IFZHX0lOVkFMSURfVEhSRUFESUQ7CisgICAgIHZnX2Fzc2VydChWR18ocnVubmluZ190aWQpID09IFZHX0lOVkFMSURfVEhSRUFESUQpOworICAgfQogCiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAvLyBJbml0aWFsaXNlIHRoZSBzaWduYWwgaGFuZGxpbmcgc3Vic3lzdGVtCkBAIC0yNjYyLDEwICsyNjk4LDEwIEBACiAgICAgICBzeXNfZXhpdCwgZG8gbGlrZXdpc2U7IGlmIHRoZSAobGFzdCkgdGhyZWFkIHN0b3BwZWQgZHVlIHRvIGEgZmF0YWwKICAgICAgIHNpZ25hbCwgdGVybWluYXRlIHRoZSBlbnRpcmUgc3lzdGVtIHdpdGggdGhhdCBzYW1lIGZhdGFsIHNpZ25hbC4gKi8KICAgIFZHXyhkZWJ1Z0xvZykoMSwgImNvcmVfb3MiLCAKLSAgICAgICAgICAgICAgICAgICAgIlZHXyh0ZXJtaW5hdGVfTk9SRVRVUk4pKHRpZD0lbGxkKVxuIiwgKFVMb25nKXRpZCk7CisgICAgICAgICAgICAgICAgICAgICJWR18odGVybWluYXRlX05PUkVUVVJOKSh0aWQ9JXUpXG4iLCB0aWQpOwogCiAgICBzd2l0Y2ggKHRpZHNfc2NoZWRyZXRjb2RlKSB7Ci0gICBjYXNlIFZnU3JjX0V4aXRUaHJlYWQ6ICAvKiB0aGUgbm9ybWFsIHdheSBvdXQgKExpbnV4KSAqLworICAgY2FzZSBWZ1NyY19FeGl0VGhyZWFkOiAgLyogdGhlIG5vcm1hbCB3YXkgb3V0IChMaW51eCwgU29sYXJpcykgKi8KICAgIGNhc2UgVmdTcmNfRXhpdFByb2Nlc3M6IC8qIHRoZSBub3JtYWwgd2F5IG91dCAoRGFyd2luKSAqLwogICAgICAgLyogQ2hhbmdlIHRoZSBhcHBsaWNhdGlvbiByZXR1cm4gY29kZSB0byB1c2VyJ3MgcmV0dXJuIGNvZGUsCiAgICAgICAgICBpZiBhbiBlcnJvciB3YXMgZm91bmQgKi8KQEAgLTM0MzEsMTMgKzM0NjcsOTIgQEAKICAgIFZHXyhleGl0KShyKTsKIH0KIAorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKj09PSBHZXR0aW5nIHRvIG1haW4oKSBhbGl2ZTogU29sYXJpcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09Ki8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKy8qIFRoZSBrZXJuZWwgaGFuZHMgY29udHJvbCB0byBfc3RhcnQsIHdoaWNoIGV4dHJhY3RzIHRoZSBpbml0aWFsIHN0YWNrCisgICBwb2ludGVyIGFuZCBjYWxscyBvbndhcmRzIHRvIF9zdGFydF9pbl9DX3NvbGFyaXMuICBUaGlzIGFsc28gc3dpdGNoZXMgdG8KKyAgIHRoZSBuZXcgc3RhY2suICovCithc20oIlxuIgorICAgICJcdC50ZXh0XG4iCisgICAgIlx0Lmdsb2JsIF9zdGFydFxuIgorICAgICJcdC50eXBlIF9zdGFydCwgQGZ1bmN0aW9uXG4iCisgICAgIl9zdGFydDpcbiIKKyAgICAvKiBTZXQgdXAgdGhlIG5ldyBzdGFjayBpbiAlZWF4LiAqLworICAgICJcdG1vdmwgICR2Z1BsYWluX2ludGVyaW1fc3RhY2ssICVlYXhcbiIKKyAgICAiXHRhZGRsICAkIlZHX1NUUklOR0lGWShWR19TVEFDS19HVUFSRF9TWkIpIiwgJWVheFxuIgorICAgICJcdGFkZGwgICQiVkdfU1RSSU5HSUZZKFZHX0RFRkFVTFRfU1RBQ0tfQUNUSVZFX1NaQikiLCAlZWF4XG4iCisgICAgIlx0YW5kbCAgJH4xNSwgJWVheFxuIgorICAgIC8qIEluc3RhbGwgaXQsIGFuZCBjb2xsZWN0IHRoZSBvcmlnaW5hbCBvbmUuICovCisgICAgIlx0eGNoZ2wgJWVheCwgJWVzcFxuIgorICAgICJcdHN1YmwgICQxMiwgJWVzcFxuIiAgLyogS2VlcCBzdGFjayAxNi1ieXRlIGFsaWduZWQuICovCisgICAgLyogQ2FsbCBfc3RhcnRfaW5fQ19zb2xhcmlzLCBwYXNzaW5nIGl0IHRoZSBzdGFydHVwICVlc3AuICovCisgICAgIlx0cHVzaGwgJWVheFxuIgorICAgICJcdGNhbGwgIF9zdGFydF9pbl9DX3NvbGFyaXNcbiIKKyAgICAvKiBOT1RSRUFDSEVEICovCisgICAgIlx0aGx0XG4iCisgICAgIlx0LnByZXZpb3VzXG4iCispOworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKK2FzbSgiXG4iCisgICAgIi50ZXh0XG4iCisgICAgIlx0Lmdsb2JsIF9zdGFydFxuIgorICAgICJcdC50eXBlIF9zdGFydCwgQGZ1bmN0aW9uXG4iCisgICAgIl9zdGFydDpcbiIKKyAgICAvKiBTZXQgdXAgdGhlIG5ldyBzdGFjayBpbiAlcmRpLiAqLworICAgICJcdG1vdnEgICR2Z1BsYWluX2ludGVyaW1fc3RhY2ssICVyZGlcbiIKKyAgICAiXHRhZGRxICAkIlZHX1NUUklOR0lGWShWR19TVEFDS19HVUFSRF9TWkIpIiwgJXJkaVxuIgorICAgICJcdGFkZHEgICQiVkdfU1RSSU5HSUZZKFZHX0RFRkFVTFRfU1RBQ0tfQUNUSVZFX1NaQikiLCAlcmRpXG4iCisgICAgIlx0YW5kcSAgJH4xNSwgJXJkaVxuIgorICAgIC8qIEluc3RhbGwgaXQsIGFuZCBjb2xsZWN0IHRoZSBvcmlnaW5hbCBvbmUuICovCisgICAgIlx0eGNoZ3EgJXJkaSwgJXJzcFxuIgorICAgIC8qIENhbGwgX3N0YXJ0X2luX0Nfc29sYXJpcywgcGFzc2luZyBpdCB0aGUgc3RhcnR1cCAlcnNwLiAqLworICAgICJcdGNhbGwgIF9zdGFydF9pbl9DX3NvbGFyaXNcbiIKKyAgICAvKiBOT1RSRUFDSEVEICovCisgICAgIlx0aGx0XG4iCisgICAgIi5wcmV2aW91c1xuIgorKTsKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBTb2xhcmlzIHBsYXRmb3JtIgorI2VuZGlmCisKK3ZvaWQgKm1lbWNweSh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBuKTsKK3ZvaWQgKm1lbWNweSh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBuKSB7CisgICByZXR1cm4gVkdfKG1lbWNweSkoZGVzdCwgc3JjLCBuKTsKK30KKworX19hdHRyaWJ1dGVfXyAoKHVzZWQpKQordm9pZCBfc3RhcnRfaW5fQ19zb2xhcmlzICggVVdvcmQqIHBBcmdjICk7CitfX2F0dHJpYnV0ZV9fICgodXNlZCkpCit2b2lkIF9zdGFydF9pbl9DX3NvbGFyaXMgKCBVV29yZCogcEFyZ2MgKQoreworICAgSW50ICAgICByOworICAgV29yZCAgICBhcmdjID0gcEFyZ2NbMF07CisgICBIQ2hhcioqIGFyZ3YgPSAoSENoYXIqKikmcEFyZ2NbMV07CisgICBIQ2hhcioqIGVudnAgPSAoSENoYXIqKikmcEFyZ2NbMSArIGFyZ2MgKyAxXTsKKworICAgVkdfKG1lbXNldCkoICZ0aGVfaWljaWksIDAsIHNpemVvZih0aGVfaWljaWkpICk7CisgICBWR18obWVtc2V0KSggJnRoZV9paWZpaSwgMCwgc2l6ZW9mKHRoZV9paWZpaSkgKTsKKworICAgdGhlX2lpY2lpLnNwX2F0X3N0YXJ0dXAgPSAoQWRkcilwQXJnYzsKKworICAgciA9IHZhbGdyaW5kX21haW4oKEludClhcmdjLCBhcmd2LCBlbnZwKTsKKyAgIC8qIE5PVFJFQUNIRUQgKi8KKyAgIFZHXyhleGl0KShyKTsKK30KIAogI2Vsc2UKLQogIyAgZXJyb3IgIlVua25vd24gT1MiCiAjZW5kaWYKIAogCitBZGRyIFZHXyhnZXRfaW5pdGlhbF9jbGllbnRfU1ApKCB2b2lkICkKK3sKKyAgIHJldHVybiB0aGVfaWlmaWkuaW5pdGlhbF9jbGllbnRfU1A7Cit9CisKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyo9PT0ge3UsfXtkaXYsbW9kfWRpMyByZXBsYWNlbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09PSovCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTM4NjQsOSArMzk3OSw5IEBACiAvKj09PSBEdW1teSBfdm91Y2hlcl9tYWNoX21zZ19zZXQgZm9yIE9TWCAxMC4xMCAgICAgICAgICAgICAgICAgICAgPT09Ki8KIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi0jaWYgZGVmaW5lZChWR09fZGFyd2luKSAmJiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfMTAKKyNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pICYmIERBUldJTl9WRVJTID49IERBUldJTl8xMF8xMAogCi0vKiBCdWlsZHMgb24gTWFjT1NYIDEwLjEwIHNlZW0gdG8gbmVlZCB0aGlzIGZvciBzb21lIHJlYXNvbi4gKi8KKy8qIEJ1aWxkcyBvbiBNYWNPU1ggMTAuMTArIHNlZW0gdG8gbmVlZCB0aGlzIGZvciBzb21lIHJlYXNvbi4gKi8KIC8qIGV4dGVybiBib29sZWFuX3Qgdm91Y2hlcl9tYWNoX21zZ19zZXQobWFjaF9tc2dfaGVhZGVyX3QgKm1zZykgCiAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKHdlYWtfaW1wb3J0KSk7CiAgICBJIGhhdmVuJ3QgYSBjbHVlIHdoYXQgdGhlIHJldHVybiB2YWx1ZSBtZWFucywgc28ganVzdCByZXR1cm4gMC4KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX21hbGxvY2ZyZWUuYyBiL2NvcmVncmluZC9tX21hbGxvY2ZyZWUuYwppbmRleCAxYzRhYzUwLi5lNTIyNzU0IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9tYWxsb2NmcmVlLmMKKysrIGIvY29yZWdyaW5kL21fbWFsbG9jZnJlZS5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTg3Nyw3ICs4NzcsNyBAQAogICAgaWYgKGEtPnN0YXRzX19ieXRlc19tbWFwZWQgPiBhLT5zdGF0c19fYnl0ZXNfbW1hcGVkX21heCkKICAgICAgIGEtPnN0YXRzX19ieXRlc19tbWFwZWRfbWF4ID0gYS0+c3RhdHNfX2J5dGVzX21tYXBlZDsKICAgIFZHXyhkZWJ1Z0xvZykoMSwgIm1hbGxvY2ZyZWUiLAotICAgICAgICAgICAgICAgICAgICAibmV3U3VwZXJibG9jayBhdCAlcCAocHN6QiAlN2xkKSAlcyBvd25lciAlcy8lc1xuIiwgCisgICAgICAgICAgICAgICAgICAgICJuZXdTdXBlcmJsb2NrIGF0ICVwIChwc3pCICU3bHUpICVzIG93bmVyICVzLyVzXG4iLCAKICAgICAgICAgICAgICAgICAgICAgc2IsIHNiLT5uX3BheWxvYWRfYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICh1bnNwbGl0dGFibGUgPyAidW5zcGxpdHRhYmxlIiA6ICIiKSwKICAgICAgICAgICAgICAgICAgICAgYS0+Y2xpZW50bWVtID8gIkNMSUVOVCIgOiAiVkFMR1JJTkQiLCBhLT5uYW1lICk7CkBAIC04OTUsNyArODk1LDcgQEAKICAgIFVJbnQgICBpLCBqOwogCiAgICBWR18oZGVidWdMb2cpKDEsICJtYWxsb2NmcmVlIiwKLSAgICAgICAgICAgICAgICAgICAgInJlY2xhaW1TdXBlcmJsb2NrIGF0ICVwIChwc3pCICU3bGQpICVzIG93bmVyICVzLyVzXG4iLCAKKyAgICAgICAgICAgICAgICAgICAgInJlY2xhaW1TdXBlcmJsb2NrIGF0ICVwIChwc3pCICU3bHUpICVzIG93bmVyICVzLyVzXG4iLCAKICAgICAgICAgICAgICAgICAgICAgc2IsIHNiLT5uX3BheWxvYWRfYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgIChzYi0+dW5zcGxpdHRhYmxlID8gInVuc3BsaXR0YWJsZSIgOiAiIiksCiAgICAgICAgICAgICAgICAgICAgIGEtPmNsaWVudG1lbSA/ICJDTElFTlQiIDogIlZBTEdSSU5EIiwgYS0+bmFtZSApOwpAQCAtMTIyMCwxMyArMTIyMCwxMyBAQAogICAgICAgU3VwZXJibG9jayAqIHNiID0gYS0+c2Jsb2Nrc1tqXTsKIAogICAgICAgVkdfKHByaW50ZikoICJcbiIgKTsKLSAgICAgIFZHXyhwcmludGYpKCAic3VwZXJibG9jayAlZCBhdCAlcCAlcywgc2ItPm5fcGxfYnMgPSAlbHVcbiIsCisgICAgICBWR18ocHJpbnRmKSggInN1cGVyYmxvY2sgJXUgYXQgJXAgJXMsIHNiLT5uX3BsX2JzID0gJWx1XG4iLAogICAgICAgICAgICAgICAgICAgIGJsb2Nrbm8rKywgc2IsIChzYi0+dW5zcGxpdHRhYmxlID8gInVuc3BsaXR0YWJsZSIgOiAiIiksCiAgICAgICAgICAgICAgICAgICAgc2ItPm5fcGF5bG9hZF9ieXRlcyk7CiAgICAgICBmb3IgKGkgPSAwOyBpIDwgc2ItPm5fcGF5bG9hZF9ieXRlczsgaSArPSBiX2JzekIpIHsKICAgICAgICAgIEJsb2NrKiBiID0gKEJsb2NrKikmc2ItPnBheWxvYWRfYnl0ZXNbaV07CiAgICAgICAgICBiX2JzekIgICA9IGdldF9ic3pCKGIpOwotICAgICAgICAgVkdfKHByaW50ZikoICIgICBibG9jayBhdCAlZCwgYnN6QiAlbHU6ICIsIGksIGJfYnN6QiApOworICAgICAgICAgVkdfKHByaW50ZikoICIgICBibG9jayBhdCAldSwgYnN6QiAlbHU6ICIsIGksIGJfYnN6QiApOwogICAgICAgICAgVkdfKHByaW50ZikoICIlcywgIiwgaXNfaW51c2VfYmxvY2soYikgPyAiaW51c2UiIDogImZyZWUiKTsKICAgICAgICAgIFZHXyhwcmludGYpKCAiJXNcbiIsIGJsb2NrU2FuZShhLCBiKSA/ICJvayIgOiAiQkFEIiApOwogICAgICAgfQpAQCAtMTI3NiwxMyArMTI3NiwxMyBAQAogICAgICAgICAgYiAgICAgPSAoQmxvY2sqKSZzYi0+cGF5bG9hZF9ieXRlc1tpXTsKICAgICAgICAgIGJfYnN6QiA9IGdldF9ic3pCX2FzX2lzKGIpOwogICAgICAgICAgaWYgKCFibG9ja1NhbmUoYSwgYikpIHsKLSAgICAgICAgICAgIFZHXyhwcmludGYpKCJzYW5pdHlfY2hlY2tfbWFsbG9jX2FyZW5hOiBzYiAlcCwgYmxvY2sgJWQgIgorICAgICAgICAgICAgVkdfKHByaW50ZikoInNhbml0eV9jaGVja19tYWxsb2NfYXJlbmE6IHNiICVwLCBibG9jayAldSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiKGJzekIgJWx1KTogIEJBRFxuIiwgc2IsIGksIGJfYnN6QiApOwogICAgICAgICAgICAgQk9NQjsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXNGcmVlID0gIWlzX2ludXNlX2Jsb2NrKGIpOwogICAgICAgICAgaWYgKHRoaXNGcmVlICYmIGxhc3RXYXNGcmVlKSB7Ci0gICAgICAgICAgICBWR18ocHJpbnRmKSgic2FuaXR5X2NoZWNrX21hbGxvY19hcmVuYTogc2IgJXAsIGJsb2NrICVkICIKKyAgICAgICAgICAgIFZHXyhwcmludGYpKCJzYW5pdHlfY2hlY2tfbWFsbG9jX2FyZW5hOiBzYiAlcCwgYmxvY2sgJXUgIgogICAgICAgICAgICAgICAgICAgICAgICAgIihic3pCICVsdSk6IFVOTUVSR0VEIEZSRUVTXG4iLCBzYiwgaSwgYl9ic3pCICk7CiAgICAgICAgICAgICBCT01COwogICAgICAgICAgfQpAQCAtMTMyMyw3ICsxMzIzLDcgQEAKICAgICAgICAgIGJfcHJldiA9IGI7CiAgICAgICAgICBiID0gZ2V0X25leHRfYihiKTsKICAgICAgICAgIGlmIChnZXRfcHJldl9iKGIpICE9IGJfcHJldikgewotICAgICAgICAgICAgVkdfKHByaW50ZikoICJzYW5pdHlfY2hlY2tfbWFsbG9jX2FyZW5hOiBsaXN0ICVkIGF0ICVwOiAiCisgICAgICAgICAgICBWR18ocHJpbnRmKSggInNhbml0eV9jaGVja19tYWxsb2NfYXJlbmE6IGxpc3QgJXUgYXQgJXA6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAiQkFEIExJTktBR0VcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdG5vLCBiICk7CiAgICAgICAgICAgICBCT01COwpAQCAtMTMzMSw3ICsxMzMxLDcgQEAKICAgICAgICAgIGJfcHN6QiA9IGdldF9wc3pCKGEsIGIpOwogICAgICAgICAgaWYgKGJfcHN6QiA8IGxpc3RfbWluX3BzekIgfHwgYl9wc3pCID4gbGlzdF9tYXhfcHN6QikgewogICAgICAgICAgICAgVkdfKHByaW50ZikoCi0gICAgICAgICAgICAgICAic2FuaXR5X2NoZWNrX21hbGxvY19hcmVuYTogbGlzdCAlZCBhdCAlcDogIgorICAgICAgICAgICAgICAgInNhbml0eV9jaGVja19tYWxsb2NfYXJlbmE6IGxpc3QgJXUgYXQgJXA6ICIKICAgICAgICAgICAgICAgICJXUk9ORyBDSEFJTiBTSVpFICVsdUIgKCVsdUIsICVsdUIpXG4iLAogICAgICAgICAgICAgICAgbGlzdG5vLCBiLCBiX3BzekIsIGxpc3RfbWluX3BzekIsIGxpc3RfbWF4X3BzekIgKTsKICAgICAgICAgICAgIEJPTUI7CkBAIC0xMzUzLDggKzEzNTMsOCBAQAogCiAgICBpZiAoVkdfKGNsb192ZXJib3NpdHkpID4gMikgCiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgICAgIiUtOHM6ICUyZCBzYnMsICU1ZCBicywgJTJkLyUtMmQgZnJlZSBicywgIgotICAgICAgICAgICAgICAgICAgICIlN2xkIG1tYXAsICU3bGQgbG9hblxuIiwKKyAgICAgICAgICAgICAgICAgICAiJS04czogJTJ1IHNicywgJTV1IGJzLCAlMnUvJS0ydSBmcmVlIGJzLCAiCisgICAgICAgICAgICAgICAgICAgIiU3bHUgbW1hcCwgJTdsdSBsb2FuXG4iLAogICAgICAgICAgICAgICAgICAgIGEtPm5hbWUsCiAgICAgICAgICAgICAgICAgICAgc3VwZXJibG9ja2N0ciwKICAgICAgICAgICAgICAgICAgICBibG9ja2N0cl9zYiwgYmxvY2tjdHJfc2JfZnJlZSwgYmxvY2tjdHJfbGksIApAQCAtMTc2NCw3ICsxNzY0LDcgQEAKICAgICAgIGEtPnNibG9ja3Nfc2l6ZSAqPSAyOwogICAgICAgYS0+c2Jsb2NrcyA9IGFycmF5OwogICAgICAgVkdfKGRlYnVnTG9nKSgxLCAibWFsbG9jZnJlZSIsIAotICAgICAgICAgICAgICAgICAgICAgICAic2Jsb2NrIGFycmF5IGZvciBhcmVuYSBgJXMnIHJlc2l6ZWQgdG8gJWxkXG4iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgInNibG9jayBhcnJheSBmb3IgYXJlbmEgYCVzJyByZXNpemVkIHRvICVsdVxuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgIGEtPm5hbWUsIGEtPnNibG9ja3Nfc2l6ZSk7CiAgICB9CiAKQEAgLTE4OTIsNyArMTg5Miw3IEBACiAgICAgICAgICAgICAgICAgICAgIGEtPmNsaWVudG1lbSA/ICJDTElFTlQiIDogIlZBTEdSSU5EIiwgYS0+bmFtZSApOwogICAgfSBlbHNlCiAgICAgICBWR18oZGVidWdMb2cpKDEsICJtYWxsb2NmcmVlIiwKLSAgICAgICAgICAgICAgICAgICAgImRlZmVycmVkX3JlY2xhaW1TdXBlcmJsb2NrIGF0ICVwIChwc3pCICU3bGQpICVzICIKKyAgICAgICAgICAgICAgICAgICAgImRlZmVycmVkX3JlY2xhaW1TdXBlcmJsb2NrIGF0ICVwIChwc3pCICU3bHUpICVzICIKICAgICAgICAgICAgICAgICAgICAgIihwcmV2ICVwKSBvd25lciAlcy8lc1xuIiwKICAgICAgICAgICAgICAgICAgICAgc2IsIHNiLT5uX3BheWxvYWRfYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgIChzYi0+dW5zcGxpdHRhYmxlID8gInVuc3BsaXR0YWJsZSIgOiAiIiksCkBAIC0yMTEzLDggKzIxMTMsOCBAQAogCiAvKgogICAgVGhlIGlkZWEgZm9yIG1hbGxvY19hbGlnbmVkKCkgaXMgdG8gYWxsb2NhdGUgYSBiaWcgYmxvY2ssIGJhc2UsIGFuZAotICAgdGhlbiBzcGxpdCBpdCBpbnRvIHR3byBwYXJ0czogZnJhZywgd2hpY2ggaXMgcmV0dXJuZWQgdG8gdGhlIHRoZQotICAgZnJlZSBwb29sLCBhbmQgYWxpZ24sIHdoaWNoIGlzIHRoZSBiaXQgd2UncmUgcmVhbGx5IGFmdGVyLiAgSGVyZSdzCisgICB0aGVuIHNwbGl0IGl0IGludG8gdHdvIHBhcnRzOiBmcmFnLCB3aGljaCBpcyByZXR1cm5lZCB0byB0aGUgZnJlZQorICAgcG9vbCwgYW5kIGFsaWduLCB3aGljaCBpcyB0aGUgYml0IHdlJ3JlIHJlYWxseSBhZnRlci4gIEhlcmUncwogICAgYSBwaWN0dXJlLiAgTCBhbmQgSCBkZW5vdGUgdGhlIGJsb2NrIGxvd2VyIGFuZCB1cHBlciBvdmVyaGVhZHMsIGluCiAgICBieXRlcy4gIFRoZSBkZXRhaWxzIGFyZSBncnVlc29tZS4gIE5vdGUgaXQgaXMgc2xpZ2h0bHkgY29tcGxpY2F0ZWQKICAgIGJlY2F1c2UgdGhlIGluaXRpYWwgcmVxdWVzdCB0byBnZW5lcmF0ZSBiYXNlIG1heSByZXR1cm4gYSBiaWdnZXIKQEAgLTI0NTcsOCArMjQ1Nyw4IEBACiAKICAgICAgICAgIHNiLT5uX3BheWxvYWRfYnl0ZXMgLT0gZnJhZ19ic3pCOwogICAgICAgICAgVkdfKGRlYnVnTG9nKSgxLCAibWFsbG9jZnJlZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICJzaHJpbmsgc3VwZXJibG9jayAlcCB0byAocHN6QiAlN2xkKSAiCi0gICAgICAgICAgICAgICAgICAgICAgICJvd25lciAlcy8lcyAobXVubWFwLWluZyAlcCAlN2xkKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgInNocmluayBzdXBlcmJsb2NrICVwIHRvIChwc3pCICU3bHUpICIKKyAgICAgICAgICAgICAgICAgICAgICAgIm93bmVyICVzLyVzIChtdW5tYXAtaW5nICVwICU3bHUpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICBzYiwgc2ItPm5fcGF5bG9hZF9ieXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgYS0+Y2xpZW50bWVtID8gIkNMSUVOVCIgOiAiVkFMR1JJTkQiLCBhLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopIGZyYWcsIGZyYWdfYnN6Qik7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9vcHRpb25zLmMgYi9jb3JlZ3JpbmQvbV9vcHRpb25zLmMKaW5kZXggMjQ5MzhhYS4uN2U5MjBlMCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fb3B0aW9ucy5jCisrKyBiL2NvcmVncmluZC9tX29wdGlvbnMuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTY3LDggKzY3LDYgQEAKIGNvbnN0IEhDaGFyICpWR18oYXJnX3ZnZGJfcHJlZml4KSAgICA9IE5VTEw7CiBCb29sICAgVkdfKGNsb192Z2RiX3NoYWRvd19yZWdpc3RlcnMpID0gRmFsc2U7CiAKLUJvb2wgICBWR18oY2xvX2RiX2F0dGFjaCkgICAgICA9IEZhbHNlOwotY29uc3QgSENoYXIqICBWR18oY2xvX2RiX2NvbW1hbmQpICAgICA9IEdEQl9QQVRIICIgLW53ICVmICVwIjsKIEludCAgICBWR18oY2xvX2dlbl9zdXBwcmVzc2lvbnMpID0gMDsKIEludCAgICBWR18oY2xvX3Nhbml0eV9sZXZlbCkgICA9IDE7CiBJbnQgICAgVkdfKGNsb192ZXJib3NpdHkpICAgICAgPSAxOwpAQCAtMTMxLDEzICsxMjksMjYgQEAKIFdvcmQgICBWR18oY2xvX21haW5fc3RhY2tzaXplKSA9IDA7IC8qIHVzZSBjbGllbnQncyBybGltaXQuc3RhY2sgKi8KIFdvcmQgICBWR18oY2xvX3ZhbGdyaW5kX3N0YWNrc2l6ZSkgPSBWR19ERUZBVUxUX1NUQUNLX0FDVElWRV9TWkI7CiBCb29sICAgVkdfKGNsb193YWl0X2Zvcl9nZGIpICAgPSBGYWxzZTsKLVZnU21jICBWR18oY2xvX3NtY19jaGVjaykgICAgICA9IFZnX1NtY1N0YWNrOwogVUludCAgIFZHXyhjbG9fa2VybmVsX3ZhcmlhbnQpID0gMDsKLUJvb2wgICBWR18oY2xvX2RzeW11dGlsKSAgICAgICA9IEZhbHNlOworQm9vbCAgIFZHXyhjbG9fZHN5bXV0aWwpICAgICAgID0gVHJ1ZTsKIEJvb2wgICBWR18oY2xvX3NpZ2lsbF9kaWFnKSAgICA9IFRydWU7CiBVSW50ICAgVkdfKGNsb191bndfc3RhY2tfc2Nhbl90aHJlc2gpID0gMDsgLyogZGlzYWJsZWQgYnkgZGVmYXVsdCAqLwogVUludCAgIFZHXyhjbG9fdW53X3N0YWNrX3NjYW5fZnJhbWVzKSA9IDU7CiAKKy8vIFNldCBjbG9fc21jX2NoZWNrIHNvIHRoYXQgaXQgcHJvdmlkZXMgdHJhbnNwYXJlbnQgc2VsZiBtb2RpZnlpbmcKKy8vIGNvZGUgc3VwcG9ydCBmb3IgImNvcnJlY3QiIHByb2dyYW1zIGF0IHRoZSBzbWFsbGVzdCBhY2hpZXZhYmxlCisvLyBleHBlbnNlIGZvciB0aGlzIGFyY2guCisjaWYgZGVmaW5lZChWR0FfeDg2KSB8fCBkZWZpbmVkKFZHQV9hbWQ2NCkgfHwgZGVmaW5lZChWR0FfczM5MHgpCitWZ1NtYyBWR18oY2xvX3NtY19jaGVjaykgPSBWZ19TbWNBbGxOb25GaWxlOworI2VsaWYgZGVmaW5lZChWR0FfcHBjMzIpIHx8IGRlZmluZWQoVkdBX3BwYzY0YmUpIHx8IGRlZmluZWQoVkdBX3BwYzY0bGUpIFwKKyAgICAgIHx8IGRlZmluZWQoVkdBX2FybSkgfHwgZGVmaW5lZChWR0FfYXJtNjQpIFwKKyAgICAgIHx8IGRlZmluZWQoVkdBX21pcHMzMikgfHwgZGVmaW5lZChWR0FfbWlwczY0KSBcCisgICAgICB8fCBkZWZpbmVkKFZHQV90aWxlZ3gpCitWZ1NtYyBWR18oY2xvX3NtY19jaGVjaykgPSBWZ19TbWNTdGFjazsKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBhcmNoIgorI2VuZGlmCisKICNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiBVSW50IFZHXyhjbG9fcmVzeW5jX2ZpbHRlcikgPSAxOyAvKiBlbmFibGVkLCBidXQgcXVpZXQgKi8KICNlbHNlCkBAIC0zMDAsNyArMzExLDcgQEAKICAgIHJldHVybiBjOwogfQogCi0vKiBTaG91bGQgd2UgdHJhY2UgaW50byB0aGlzIGNoaWxkIGV4ZWN1dGFibGUgKGFjcm9zcyBleGVjdmUgZXRjKSA/CisvKiBTaG91bGQgd2UgdHJhY2UgaW50byB0aGlzIGNoaWxkIGV4ZWN1dGFibGUgKGFjcm9zcyBleGVjdmUsIHNwYXduIGV0YykgPwogICAgVGhpcyBpbnZvbHZlcyBjb25zaWRlcmluZyAtLXRyYWNlLWNoaWxkcmVuPSwKICAgIC0tdHJhY2UtY2hpbGRyZW4tc2tpcD0sIC0tdHJhY2UtY2hpbGRyZW4tc2tpcC1ieS1hcmc9LCBhbmQgdGhlIG5hbWUKICAgIG9mIHRoZSBleGVjdXRhYmxlLiAgJ2NoaWxkX2FyZ3YnIG11c3Qgbm90IGluY2x1ZGUgdGhlIG5hbWUgb2YgdGhlCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9vc2V0LmMgYi9jb3JlZ3JpbmQvbV9vc2V0LmMKaW5kZXggZDFiMTcyOS4uM2ZkMjE0ZiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fb3NldC5jCisrKyBiL2NvcmVncmluZC9tX29zZXQuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTExNyw3ICsxMTcsNyBAQAogICAgT1NldEZyZWVfdCAgZnJlZV9mbjsgICAgLy8gZGVhbGxvY2F0b3IKICAgIFBvb2xBbGxvYyogIG5vZGVfcGE7ICAgIC8vIChvcHRpb25hbCkgcG9vbCBhbGxvY2F0b3IgZm9yIG5vZGVzLgogICAgU2l6ZVQgICAgICAgbWF4RWx0U2l6ZTsgLy8gZm9yIG5vZGVfcGEsIG11c3QgYmUgPiAwLiBPdGhlcndpc2UgdW51c2VkLgotICAgV29yZCAgICAgICAgbkVsZW1zOyAgICAgLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSB0cmVlCisgICBVSW50ICAgICAgICBuRWxlbXM7ICAgICAvLyBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHRyZWUKICAgIEF2bE5vZGUqICAgIHJvb3Q7ICAgICAgIC8vIHJvb3Qgbm9kZQogCiAgICBBdmxOb2RlKiAgICBub2RlU3RhY2tbU1RBQ0tfTUFYXTsgICAvLyBJdGVyYXRvciBub2RlIHN0YWNrCkBAIC0zODMsNyArMzgzLDcgQEAKICAgIGlmICghaGFzX25vZGVfcGEgfHwgVkdfKHJlbGVhc2VQQSkodC0+bm9kZV9wYSkgPiAwKSB7CiAgICAgICBBdmxOb2RlKiBuID0gTlVMTDsKICAgICAgIEludCBpID0gMDsKLSAgICAgIFdvcmQgc3ogPSAwOworICAgICAgVVdvcmQgc3ogPSAwOwogICAgCiAgICAgICBzdGFja0NsZWFyKHQpOwogICAgICAgaWYgKHQtPnJvb3QpCkBAIC05MTIsNyArOTEyLDcgQEAKIC8qLS0tIE1pc2NlbGxhbmVvdXMgb3BlcmF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLVdvcmQgVkdfKE9TZXRHZW5fU2l6ZSkoY29uc3QgQXZsVHJlZSogdCkKK1VJbnQgVkdfKE9TZXRHZW5fU2l6ZSkoY29uc3QgQXZsVHJlZSogdCkKIHsKICAgIHZnX2Fzc2VydCh0KTsKICAgIHJldHVybiB0LT5uRWxlbXM7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9wb29sYWxsb2MuYyBiL2NvcmVncmluZC9tX3Bvb2xhbGxvYy5jCmluZGV4IGVmMmYyMTQuLmVkMjAzY2UgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3Bvb2xhbGxvYy5jCisrKyBiL2NvcmVncmluZC9tX3Bvb2xhbGxvYy5jCkBAIC01LDcgKzUsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMS0yMDEzIE9wZW5Xb3JrcyBMTFAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrLAorICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTUgT3BlbldvcmtzIExMUCBpbmZvQG9wZW4td29ya3MuY28udWssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaGlsaXBwZSBXYXJvcXVpZXJzIHBoaWxpcHBlLndhcm9xdWllcnNAc2t5bmV0LmJlCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3JhbmdlbWFwLmMgYi9jb3JlZ3JpbmQvbV9yYW5nZW1hcC5jCmluZGV4IGRhZWQwMDEuLmIwODVkMjkgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3JhbmdlbWFwLmMKKysrIGIvY29yZWdyaW5kL21fcmFuZ2VtYXAuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNCBNb3ppbGxhIEZvdW5kYXRpb24KKyAgIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IE1vemlsbGEgRm91bmRhdGlvbgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTIzLDEwICsxMjMsMTIgQEAKICAgICp2YWwgICAgID0gcm5nLT52YWw7CiB9CiAKLVdvcmQgVkdfKHNpemVSYW5nZU1hcCkgKCBjb25zdCBSYW5nZU1hcCogcm0gKQorVUludCBWR18oc2l6ZVJhbmdlTWFwKSAoIGNvbnN0IFJhbmdlTWFwKiBybSApCiB7CiAgICB2Z19hc3NlcnQocm0gJiYgcm0tPnJhbmdlcyk7Ci0gICByZXR1cm4gVkdfKHNpemVYQSkocm0tPnJhbmdlcyk7CisgICBXb3JkIHNpemUgPSBWR18oc2l6ZVhBKShybS0+cmFuZ2VzKTsKKyAgIHZnX2Fzc2VydChzaXplID49IDApOworICAgcmV0dXJuIHNpemU7CiB9CiAKIHZvaWQgVkdfKGluZGV4UmFuZ2VNYXApICggLypPVVQqL1VXb3JkKiBrZXlfbWluLCAvKk9VVCovVVdvcmQqIGtleV9tYXgsCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9yZWRpci5jIGIvY29yZWdyaW5kL21fcmVkaXIuYwppbmRleCAwOWU2YTlmLi43ZTRkZjhkIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9yZWRpci5jCisrKyBiL2NvcmVncmluZC9tX3JlZGlyLmMKQEAgLTcsOSArNyw5IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwMy0yMDEzIEplcmVteSBGaXR6aGFyZGluZ2UKKyAgIENvcHlyaWdodCAoQykgMjAwMy0yMDE1IEplcmVteSBGaXR6aGFyZGluZ2UKICAgICAgIGplcmVteUBnb29wLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00MDYsNiArNDA2LDExIEBACiAgICBjb25zdCBIQ2hhciogY29uc3QgcHRocmVhZF9zb25hbWUgPSAibGlicHRocmVhZC5zby4wIjsKICAgIGNvbnN0IEhDaGFyKiBjb25zdCBwdGhyZWFkX3N0YWNrX2NhY2hlX2FjdHNpemVfdmFybmFtZQogICAgICAgPSAic3RhY2tfY2FjaGVfYWN0c2l6ZSI7CisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIEJvb2wgICAgICAgICB2Z192Zm9ya19maWxkZXNfdmFyX3NlYXJjaCA9IEZhbHNlOworICAgY29uc3QgSENoYXIqIGNvbnN0IHZnX3ByZWxvYWRfY29yZV9zb25hbWUgPSAidmdwcmVsb2FkX2NvcmUuc28uMCI7CisgICBjb25zdCBIQ2hhciogY29uc3QgdmdfdmZvcmtfZmlsZGVzX3Zhcm5hbWUgPSAidmdfdmZvcmtfZmlsZGVzIjsKKyNlbmRpZgogCiAjICBpZiBkZWZpbmVkKFZHX1BMQVRfVVNFU19QUENUT0MpCiAgICBjaGVja19wcGNUT0NzID0gVHJ1ZTsKQEAgLTUwNCw2ICs1MDksMTEgQEAKICAgICAgIFNpbUhpbnRpUyhTaW1IaW50X25vX25wdGxfcHRocmVhZF9zdGFja2NhY2hlLCBWR18oY2xvX3NpbV9oaW50cykpCiAgICAgICAmJiAwID09IFZHXyhzdHJjbXApKG5ld2RpX3NvbmFtZSwgcHRocmVhZF9zb25hbWUpOwogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIHZnX3Zmb3JrX2ZpbGRlc192YXJfc2VhcmNoID0KKyAgICAgIDAgPT0gVkdfKHN0cmNtcCkobmV3ZGlfc29uYW1lLCB2Z19wcmVsb2FkX2NvcmVfc29uYW1lKTsKKyNlbmRpZgorCiAgICBuc3ltcyA9IFZHXyhEZWJ1Z0luZm9fc3ltc19ob3dtYW55KSggbmV3ZGkgKTsKICAgIGZvciAoaSA9IDA7IGkgPCBuc3ltczsgaSsrKSB7CiAgICAgICBWR18oRGVidWdJbmZvX3N5bXNfZ2V0aWR4KSggbmV3ZGksIGksICZzeW1fYXZtYXMsCkBAIC01MzQsNiArNTQ0LDE4IEBACiAgICAgICAgICAgICAgICBWR18oY2xpZW50X19zdGFja19jYWNoZV9hY3RzaXplX19hZGRyKSA9IChTaXplVCopIHN5bV9hdm1hcy5tYWluOwogICAgICAgICAgICAgICAgZGVoYWNrdGl2YXRlX3B0aHJlYWRfc3RhY2tfY2FjaGVfdmFyX3NlYXJjaCA9IEZhbHNlOwogICAgICAgICAgICAgfQorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAgICAgICBpZiAodmdfdmZvcmtfZmlsZGVzX3Zhcl9zZWFyY2gKKyAgICAgICAgICAgICAgICAmJiAwID09IFZHXyhzdHJjbXApKCpuYW1lcywgdmdfdmZvcmtfZmlsZGVzX3Zhcm5hbWUpKSB7CisgICAgICAgICAgICAgICBpZiAoIFZHXyhjbG9fdmVyYm9zaXR5KSA+IDEgKSB7CisgICAgICAgICAgICAgICAgICBWR18obWVzc2FnZSkoIFZnX0RlYnVnTXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmZvcmsga2x1ZGdlOiBmb3VuZCBzeW1ib2wgJXMgYXQgYWRkciAlcFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5hbWVzLCAodm9pZCopIHN5bV9hdm1hcy5tYWluKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIFZHXyh2Zm9ya19maWxkZXNfYWRkcikgPSAoSW50Kikgc3ltX2F2bWFzLm1haW47CisgICAgICAgICAgICAgICB2Z192Zm9ya19maWxkZXNfdmFyX3NlYXJjaCA9IEZhbHNlOworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghb2spIHsKQEAgLTYxNyw2ICs2MzksMTUgQEAKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKICAgICAgICAgICAgICAgICAgICAiPT4gcHRocmVhZCBzdGFjayBjYWNoZSBjYW5ub3QgYmUgZGlzYWJsZWQhXG4iKTsKICAgIH0KKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgaWYgKHZnX3Zmb3JrX2ZpbGRlc192YXJfc2VhcmNoKSB7CisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCisgICAgICAgICAgICAgICAgICAgIldBUk5JTkc6IGNvdWxkIG5vdCBmaW5kIHN5bWJvbCBmb3IgdmFyICVzIGluICVzXG4iLAorICAgICAgICAgICAgICAgICAgIHZnX3Zmb3JrX2ZpbGRlc192YXJuYW1lLCB2Z19wcmVsb2FkX2NvcmVfc29uYW1lKTsKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKKyAgICAgICAgICAgICAgICAgICAiPT4gcG9zaXhfc3Bhd24oKSB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseSFcbiIpOworICAgfQorI2VuZGlmCiAKICAgIGlmIChjaGVja19wcGNUT0NzKSB7CiAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnN5bXM7IGkrKykgewpAQCAtMTUwMCw2ICsxNTMxLDQwIEBACiAgICAgICApOwogICAgfQogCisjICBlbGlmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgLyogSWYgd2UncmUgdXNpbmcgbWVtY2hlY2ssIHVzZSB0aGVzZSBpbnRlcmNlcHRzIHJpZ2h0IGZyb20KKyAgICAgIHRoZSBzdGFydCwgb3RoZXJ3aXNlIGxkLnNvIG1ha2VzIGEgbG90IG9mIG5vaXNlLiAqLworICAgaWYgKDA9PVZHXyhzdHJjbXApKCJNZW1jaGVjayIsIFZHXyhkZXRhaWxzKS5uYW1lKSkgeworICAgICAgYWRkX2hhcmR3aXJlZF9zcGVjKCIvbGliL2xkLnNvLjEiLCAic3RyY21wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikmVkdfKHg4Nl9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjbXApLCBOVUxMKTsKKyAgIH0KKyAgIGlmICgwPT1WR18oc3RyY21wKSgiTWVtY2hlY2siLCBWR18oZGV0YWlscykubmFtZSkpIHsKKyAgICAgIGFkZF9oYXJkd2lyZWRfc3BlYygiL2xpYi9sZC5zby4xIiwgInN0cmxlbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJlZHXyh4ODZfc29sYXJpc19SRURJUl9GT1Jfc3RybGVuKSwgTlVMTCk7CisgICB9CisKKyMgIGVsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIGlmICgwPT1WR18oc3RyY21wKSgiTWVtY2hlY2siLCBWR18oZGV0YWlscykubmFtZSkpIHsKKyAgICAgIGFkZF9oYXJkd2lyZWRfc3BlYygiL2xpYi9hbWQ2NC9sZC5zby4xIiwgInN0cmNweSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJlZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjcHkpLCBOVUxMKTsKKyAgIH0KKyAgIGlmICgwPT1WR18oc3RyY21wKSgiTWVtY2hlY2siLCBWR18oZGV0YWlscykubmFtZSkpIHsKKyAgICAgIGFkZF9oYXJkd2lyZWRfc3BlYygiL2xpYi9hbWQ2NC9sZC5zby4xIiwgInN0cm5jcHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSZWR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RybmNweSksIE5VTEwpOworICAgfQorICAgaWYgKDA9PVZHXyhzdHJjbXApKCJNZW1jaGVjayIsIFZHXyhkZXRhaWxzKS5uYW1lKSkgeworICAgICAgYWRkX2hhcmR3aXJlZF9zcGVjKCIvbGliL2FtZDY0L2xkLnNvLjEiLCAic3RyY21wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikmVkdfKGFtZDY0X3NvbGFyaXNfUkVESVJfRk9SX3N0cmNtcCksIE5VTEwpOworICAgfQorICAgaWYgKDA9PVZHXyhzdHJjbXApKCJNZW1jaGVjayIsIFZHXyhkZXRhaWxzKS5uYW1lKSkgeworICAgICAgYWRkX2hhcmR3aXJlZF9zcGVjKCIvbGliL2FtZDY0L2xkLnNvLjEiLCAic3RyY2F0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikmVkdfKGFtZDY0X3NvbGFyaXNfUkVESVJfRk9SX3N0cmNhdCksIE5VTEwpOworICAgfQorICAgaWYgKDA9PVZHXyhzdHJjbXApKCJNZW1jaGVjayIsIFZHXyhkZXRhaWxzKS5uYW1lKSkgeworICAgICAgYWRkX2hhcmR3aXJlZF9zcGVjKCIvbGliL2FtZDY0L2xkLnNvLjEiLCAic3RybGVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikmVkdfKGFtZDY0X3NvbGFyaXNfUkVESVJfRk9SX3N0cmxlbiksIE5VTEwpOworICAgfQorCiAjICBlbHNlCiAjICAgIGVycm9yIFVua25vd24gcGxhdGZvcm0KICMgIGVuZGlmCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9yZXBsYWNlbWFsbG9jL3JlcGxhY2VtYWxsb2NfY29yZS5jIGIvY29yZWdyaW5kL21fcmVwbGFjZW1hbGxvYy9yZXBsYWNlbWFsbG9jX2NvcmUuYwppbmRleCA5YmY0MGRiLi5jMzFhZGQwIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9yZXBsYWNlbWFsbG9jL3JlcGxhY2VtYWxsb2NfY29yZS5jCisrKyBiL2NvcmVncmluZC9tX3JlcGxhY2VtYWxsb2MvcmVwbGFjZW1hbGxvY19jb3JlLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fcmVwbGFjZW1hbGxvYy92Z19yZXBsYWNlX21hbGxvYy5jIGIvY29yZWdyaW5kL21fcmVwbGFjZW1hbGxvYy92Z19yZXBsYWNlX21hbGxvYy5jCmluZGV4IDA2MGNiMTUuLmNjYWMxMzAgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3JlcGxhY2VtYWxsb2MvdmdfcmVwbGFjZV9tYWxsb2MuYworKysgYi9jb3JlZ3JpbmQvbV9yZXBsYWNlbWFsbG9jL3ZnX3JlcGxhY2VfbWFsbG9jLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzA1LDYgKzMwNSwxMiBAQAogIFpPTkVBTExPQ19vcl9OVUxMKFZHX1pfTElCQ19TT05BTUUsICBtYWxsb2Nfem9uZV9tYWxsb2MsIG1hbGxvYyk7CiAgWk9ORUFMTE9DX29yX05VTEwoU09fU1lOX01BTExPQywgICAgIG1hbGxvY196b25lX21hbGxvYywgbWFsbG9jKTsKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBBTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgbWFsbG9jLCAgICAgIG1hbGxvYyk7CisgQUxMT0Nfb3JfTlVMTChWR19aX0xJQkNfU09OQU1FLCAgICAgIG1hbGxvYywgICAgICBtYWxsb2MpOworIEFMTE9DX29yX05VTEwoVkdfWl9MSUJVTUVNX1NPXzEsICAgICBtYWxsb2MsICAgICAgbWFsbG9jKTsKKyBBTExPQ19vcl9OVUxMKFNPX1NZTl9NQUxMT0MsICAgICAgICAgbWFsbG9jLCAgICAgIG1hbGxvYyk7CisKICNlbmRpZgogCiAKQEAgLTM0MSw2ICszNDcsMTggQEAKICAgLy9BTExPQ19vcl9CT01CKFZHX1pfTElCQ19TT05BTUUsICAgICAgX1pud20sICAgICAgICAgIF9fYnVpbHRpbl9uZXcpOwogICNlbmRpZgogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBpbnQpLCBHTlUgbWFuZ2xpbmcKKyAjaWYgVkdfV09SRFNJWkUgPT0gNAorICBBTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1pud2osICAgICAgICAgIF9fYnVpbHRpbl9uZXcpOworICBBTExPQ19vcl9CT01CKFNPX1NZTl9NQUxMT0MsICAgICAgICAgX1pud2osICAgICAgICAgIF9fYnVpbHRpbl9uZXcpOworICNlbmRpZgorIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBsb25nKSwgR05VIG1hbmdsaW5nCisgI2lmIFZHX1dPUkRTSVpFID09IDgKKyAgQUxMT0Nfb3JfQk9NQihWR19aX0xJQlNURENYWF9TT05BTUUsIF9abndtLCAgICAgICAgICBfX2J1aWx0aW5fbmV3KTsKKyAgQUxMT0Nfb3JfQk9NQihTT19TWU5fTUFMTE9DLCAgICAgICAgIF9abndtLCAgICAgICAgICBfX2J1aWx0aW5fbmV3KTsKKyAjZW5kaWYKKwogI2VuZGlmCiAKIApAQCAtMzcyLDYgKzM5MCwxOCBAQAogICAvL0FMTE9DX29yX05VTEwoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWm53bVJLU3Q5bm90aHJvd190LCAgX19idWlsdGluX25ldyk7CiAgI2VuZGlmCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgLy8gb3BlcmF0b3IgbmV3KHVuc2lnbmVkLCBzdGQ6Om5vdGhyb3dfdCBjb25zdCYpLCBHTlUgbWFuZ2xpbmcKKyAjaWYgVkdfV09SRFNJWkUgPT0gNAorICBBTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1pud2pSS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9uZXcpOworICBBTExPQ19vcl9OVUxMKFNPX1NZTl9NQUxMT0MsICAgICAgICAgX1pud2pSS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9uZXcpOworICNlbmRpZgorIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBsb25nLCBzdGQ6Om5vdGhyb3dfdCBjb25zdCYpLCBHTlUgbWFuZ2xpbmcKKyAjaWYgVkdfV09SRFNJWkUgPT0gOAorICBBTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1pud21SS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9uZXcpOworICBBTExPQ19vcl9OVUxMKFNPX1NZTl9NQUxMT0MsICAgICAgICAgX1pud21SS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9uZXcpOworICNlbmRpZgorCiAjZW5kaWYKIAogCkBAIC00MDYsNiArNDM2LDE4IEBACiAgIC8vQUxMT0Nfb3JfQk9NQihWR19aX0xJQkNfU09OQU1FLCAgICAgIF9abmFtLCAgICAgICAgICAgICBfX2J1aWx0aW5fdmVjX25ldyApOwogICNlbmRpZgogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIC8vIG9wZXJhdG9yIG5ld1tdKHVuc2lnbmVkIGludCksIEdOVSBtYW5nbGluZworICNpZiBWR19XT1JEU0laRSA9PSA0CisgIEFMTE9DX29yX0JPTUIoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm5haiwgICAgICAgICAgICAgX19idWlsdGluX3ZlY19uZXcgKTsKKyAgQUxMT0Nfb3JfQk9NQihTT19TWU5fTUFMTE9DLCAgICAgICAgIF9abmFqLCAgICAgICAgICAgICBfX2J1aWx0aW5fdmVjX25ldyApOworICNlbmRpZgorIC8vIG9wZXJhdG9yIG5ld1tdKHVuc2lnbmVkIGxvbmcpLCBHTlUgbWFuZ2xpbmcKKyAjaWYgVkdfV09SRFNJWkUgPT0gOAorICBBTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1puYW0sICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfbmV3ICk7CisgIEFMTE9DX29yX0JPTUIoU09fU1lOX01BTExPQywgICAgICAgICBfWm5hbSwgICAgICAgICAgICAgX19idWlsdGluX3ZlY19uZXcgKTsKKyAjZW5kaWYKKwogI2VuZGlmCiAKIApAQCAtNDM3LDYgKzQ3OSwxOCBAQAogICAvL0FMTE9DX29yX05VTEwoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWm5hbVJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX25ldyApOwogICNlbmRpZgogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIC8vIG9wZXJhdG9yIG5ld1tdKHVuc2lnbmVkLCBzdGQ6Om5vdGhyb3dfdCBjb25zdCYpLCBHTlUgbWFuZ2xpbmcKKyAjaWYgVkdfV09SRFNJWkUgPT0gNAorICBBTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1puYWpSS1N0OW5vdGhyb3dfdCwgX19idWlsdGluX3ZlY19uZXcgKTsKKyAgQUxMT0Nfb3JfTlVMTChTT19TWU5fTUFMTE9DLCAgICAgICAgIF9abmFqUktTdDlub3Rocm93X3QsIF9fYnVpbHRpbl92ZWNfbmV3ICk7CisgI2VuZGlmCisgLy8gb3BlcmF0b3IgbmV3W10odW5zaWduZWQgbG9uZywgc3RkOjpub3Rocm93X3QgY29uc3QmKSwgR05VIG1hbmdsaW5nCisgI2lmIFZHX1dPUkRTSVpFID09IDgKKyAgQUxMT0Nfb3JfTlVMTChWR19aX0xJQlNURENYWF9TT05BTUUsIF9abmFtUktTdDlub3Rocm93X3QsIF9fYnVpbHRpbl92ZWNfbmV3ICk7CisgIEFMTE9DX29yX05VTEwoU09fU1lOX01BTExPQywgICAgICAgICBfWm5hbVJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX25ldyApOworICNlbmRpZgorCiAjZW5kaWYKIAogCkBAIC00ODIsNiArNTM2LDExIEBACiAgWk9ORUZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICBtYWxsb2Nfem9uZV9mcmVlLCAgICAgZnJlZSApOwogIFpPTkVGUkVFKFNPX1NZTl9NQUxMT0MsICAgICAgbWFsbG9jX3pvbmVfZnJlZSwgICAgIGZyZWUgKTsKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBGUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAgIGZyZWUsICAgICAgICAgICAgICAgICBmcmVlICk7CisgRlJFRShWR19aX0xJQlVNRU1fU09fMSwgICAgICBmcmVlLCAgICAgICAgICAgICAgICAgZnJlZSApOworIEZSRUUoU09fU1lOX01BTExPQywgICAgICAgICAgZnJlZSwgICAgICAgICAgICAgICAgIGZyZWUgKTsKKwogI2VuZGlmCiAKIApAQCAtNDk3LDYgKzU1NiwxMiBAQAogIC8vRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICBjZnJlZSwgICAgICAgICAgICAgICAgZnJlZSApOwogIC8vRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICBjZnJlZSwgICAgICAgICAgICAgICAgZnJlZSApOwogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIEZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgY2ZyZWUsICAgICAgICAgICAgICAgIGZyZWUgKTsKKyAvKiBsaWJ1bWVtIGRvZXMgbm90IGltcGxlbWVudCBjZnJlZSgpLiAqLworIC8vRlJFRShWR19aX0xJQlVNRU1fU09fMSwgICAgICBjZnJlZSwgICAgICAgICAgICAgICAgZnJlZSApOworIEZSRUUoU09fU1lOX01BTExPQywgICAgICAgICAgY2ZyZWUsICAgICAgICAgICAgICAgIGZyZWUgKTsKKwogI2VuZGlmCiAKIApAQCAtNTE2LDYgKzU4MSwxMSBAQAogIC8vRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICBfWmRsUHYsICAgICAgICAgICAgICAgX19idWlsdGluX2RlbGV0ZSApOwogIC8vRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICBfWmRsUHYsICAgICAgICAgICAgICAgX19idWlsdGluX2RlbGV0ZSApOwogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIC8vIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiksIEdOVSBtYW5nbGluZworIEZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCAgX1pkbFB2LCAgICAgICAgICAgICAgIF9fYnVpbHRpbl9kZWxldGUgKTsKKyBGUkVFKFNPX1NZTl9NQUxMT0MsICAgICAgICAgIF9aZGxQdiwgICAgICAgICAgICAgICBfX2J1aWx0aW5fZGVsZXRlICk7CisKICNlbmRpZgogCiAKQEAgLTUzMiw2ICs2MDIsMTEgQEAKICAvL0ZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWmRsUHZSS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9kZWxldGUgKTsKICAvL0ZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWmRsUHZSS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9kZWxldGUgKTsKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAvLyBvcGVyYXRvciBkZWxldGUodm9pZCosIHN0ZDo6bm90aHJvd190IGNvbnN0JiksIEdOVSBtYW5nbGluZworIEZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWmRsUHZSS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9kZWxldGUgKTsKKyBGUkVFKFNPX1NZTl9NQUxMT0MsICAgICAgICAgX1pkbFB2UktTdDlub3Rocm93X3QsICBfX2J1aWx0aW5fZGVsZXRlICk7CisKICNlbmRpZgogCiAKQEAgLTU1NCw2ICs2MjksMTEgQEAKICAvL0ZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCAgX1pkYVB2LCAgICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfZGVsZXRlICk7CiAgLy9GUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAgIF9aZGFQdiwgICAgICAgICAgICAgICBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOwogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIC8vIG9wZXJhdG9yIGRlbGV0ZVtdKHZvaWQqKSwgR05VIG1hbmdsaW5nCisgRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICBfWmRhUHYsICAgICAgICAgICAgICAgX19idWlsdGluX3ZlY19kZWxldGUgKTsKKyBGUkVFKFNPX1NZTl9NQUxMT0MsICAgICAgICAgIF9aZGFQdiwgICAgICAgICAgICAgICBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOworCiAjZW5kaWYKIAogCkBAIC01NzAsNiArNjUwLDExIEBACiAgLy9GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIF9aZGFQdlJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOwogIC8vRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICBfWmRhUHZSS1N0OW5vdGhyb3dfdCwgX19idWlsdGluX3ZlY19kZWxldGUgKTsKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAvLyBvcGVyYXRvciBkZWxldGVbXSh2b2lkKiwgc3RkOjpub3Rocm93X3QgY29uc3QmKSwgR05VIG1hbmdsaW5nCisgRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICBfWmRhUHZSS1N0OW5vdGhyb3dfdCwgX19idWlsdGluX3ZlY19kZWxldGUgKTsKKyBGUkVFKFNPX1NZTl9NQUxMT0MsICAgICAgICAgIF9aZGFQdlJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOworCiAjZW5kaWYKIAogCkBAIC02MzIsNiArNzE3LDExIEBACiAgWk9ORUNBTExPQyhWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV9jYWxsb2MpOwogIFpPTkVDQUxMT0MoU09fU1lOX01BTExPQywgICAgbWFsbG9jX3pvbmVfY2FsbG9jKTsKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBDQUxMT0MoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBjYWxsb2MpOworIENBTExPQyhWR19aX0xJQlVNRU1fU09fMSwgICAgIGNhbGxvYyk7CisgQ0FMTE9DKFNPX1NZTl9NQUxMT0MsICAgICAgICAgY2FsbG9jKTsKKwogI2VuZGlmCiAKIApAQCAtNzAxLDYgKzc5MSwxMSBAQAogIFpPTkVSRUFMTE9DKFZHX1pfTElCQ19TT05BTUUsIG1hbGxvY196b25lX3JlYWxsb2MpOwogIFpPTkVSRUFMTE9DKFNPX1NZTl9NQUxMT0MsICAgIG1hbGxvY196b25lX3JlYWxsb2MpOwogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIFJFQUxMT0MoVkdfWl9MSUJDX1NPTkFNRSwgICAgICByZWFsbG9jKTsKKyBSRUFMTE9DKFZHX1pfTElCVU1FTV9TT18xLCAgICAgcmVhbGxvYyk7CisgUkVBTExPQyhTT19TWU5fTUFMTE9DLCAgICAgICAgIHJlYWxsb2MpOworCiAjZW5kaWYKIAogCkBAIC03NjksNiArODY0LDExIEBACiAgWk9ORU1FTUFMSUdOKFZHX1pfTElCQ19TT05BTUUsIG1hbGxvY196b25lX21lbWFsaWduKTsKICBaT05FTUVNQUxJR04oU09fU1lOX01BTExPQywgICAgbWFsbG9jX3pvbmVfbWVtYWxpZ24pOwogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIE1FTUFMSUdOKFZHX1pfTElCQ19TT05BTUUsICAgICAgbWVtYWxpZ24pOworIE1FTUFMSUdOKFZHX1pfTElCVU1FTV9TT18xLCAgICAgbWVtYWxpZ24pOworIE1FTUFMSUdOKFNPX1NZTl9NQUxMT0MsICAgICAgICAgbWVtYWxpZ24pOworCiAjZW5kaWYKIAogCkBAIC04MTEsNiArOTExLDExIEBACiAgWk9ORVZBTExPQyhWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV92YWxsb2MpOwogIFpPTkVWQUxMT0MoU09fU1lOX01BTExPQywgICAgbWFsbG9jX3pvbmVfdmFsbG9jKTsKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBWQUxMT0MoVkdfWl9MSUJDX1NPTkFNRSwgICAgICB2YWxsb2MpOworIFZBTExPQyhWR19aX0xJQlVNRU1fU09fMSwgICAgIHZhbGxvYyk7CisgVkFMTE9DKFNPX1NZTl9NQUxMT0MsICAgICAgICAgdmFsbG9jKTsKKwogI2VuZGlmCiAKIApAQCAtOTE5LDYgKzEwMjQsMTAgQEAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAvL1BPU0lYX01FTUFMSUdOKFZHX1pfTElCQ19TT05BTUUsIHBvc2l4X21lbWFsaWduKTsKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBQT1NJWF9NRU1BTElHTihWR19aX0xJQkNfU09OQU1FLCBwb3NpeF9tZW1hbGlnbik7CisgUE9TSVhfTUVNQUxJR04oU09fU1lOX01BTExPQywgICAgcG9zaXhfbWVtYWxpZ24pOworCiAjZW5kaWYKIAogCkBAIC05NjUsMTEgKzEwNzQsMTEgQEAKIAogLyogQm9tYiBvdXQgaWYgd2UgZ2V0IGFueSBvZiB0aGVzZS4gKi8KIAorc3RhdGljIHZvaWQgcGFuaWMoY29uc3QgY2hhciAqc3RyKSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKTsKIHN0YXRpYyB2b2lkIHBhbmljKGNvbnN0IGNoYXIgKnN0cikKIHsKICAgIFZBTEdSSU5EX1BSSU5URl9CQUNLVFJBQ0UoIlByb2dyYW0gYWJvcnRpbmcgYmVjYXVzZSBvZiBjYWxsIHRvICVzXG4iLCBzdHIpOwotICAgbXlfZXhpdCg5OSk7Ci0gICAqKHZvbGF0aWxlIGludCAqKTAgPSAneCc7CisgICBteV9leGl0KDEpOwogfQogCiAjZGVmaW5lIFBBTklDKHNvbmFtZSwgZm5uYW1lKSBcCkBAIC0xMDU1LDcgKzExNjQsNyBAQAogfQogCiAvKiBOb3RlIHRoYXQgdGhlICh2b2lkKikgY2FzdHMgYmVsb3cgYXJlIGEga2x1ZGdlIHdoaWNoIHN0b3BzCi0gICBjb21waWxlcnMgY29tcGxhaW5pbmcgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGUgdGhlIHJlcGxhY2VtZW50CisgICBjb21waWxlcnMgY29tcGxhaW5pbmcgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGUgcmVwbGFjZW1lbnQKICAgIGZ1bmN0aW9ucyBhcmVuJ3QgcmVhbGx5IG9mIHRoZSByaWdodCB0eXBlLiAqLwogc3RhdGljIHZraV9tYWxsb2Nfem9uZV90IHZnX2RlZmF1bHRfem9uZSA9IHsKICAgICBOVUxMLCAvLyByZXNlcnZlZDEKQEAgLTEwNzIsNyArMTE4MSw3IEBACiAgICAgTlVMTCwgLy8gYmF0Y2hfZnJlZQogICAgIE5VTEwsIC8vIEdyUCBmaXhtZTogaW50cm9zcGVjdAogICAgIDIsICAvLyB2ZXJzaW9uIChHclAgZml4bWUgMz8pCi0gICAgTlVMTCwgLyogbWVtYWxpZ24gKi8gICAvLyBEREQ6IHRoaXMgZmllbGQgZXhpc3RzIGluIE1hYyBPUyAxMC42LCBidXQgbm90IDEwLjUuCisgICAgKHZvaWQqKVZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMTAwLFZHX1pfTElCQ19TT05BTUUsbWFsbG9jX3pvbmVfbWVtYWxpZ24pLCAvLyBEREQ6IHRoaXMgZmllbGQgZXhpc3RzIGluIE1hYyBPUyAxMC42KwogICAgIE5VTEwsIC8qIGZyZWVfZGVmaW5pdGVfc2l6ZSAqLwogICAgIE5VTEwsIC8qIHByZXNzdXJlX3JlbGllZiAqLwogfTsKQEAgLTExNjcsMTUgKzEyNzYsMTUgQEAKIAogI2RlZmluZSBaT05FX0dFVF9OQU1FKHNvbmFtZSwgZm5uYW1lKSBcCiAgICBcCi0gICBjaGFyKiBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDI4MCxzb25hbWUsZm5uYW1lKSh2b2lkKiB6b25lKTsgXAotICAgY2hhciogVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAyODAsc29uYW1lLGZubmFtZSkodm9pZCogem9uZSkgIFwKKyAgIGNvbnN0IGNoYXIqIFZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMjgwLHNvbmFtZSxmbm5hbWUpKHZvaWQqIHpvbmUpOyBcCisgICBjb25zdCBjaGFyKiBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDI4MCxzb25hbWUsZm5uYW1lKSh2b2lkKiB6b25lKSAgXAogICAgeyBcCiAgICAgICBUUklHR0VSX01FTUNIRUNLX0VSUk9SX0lGX1VOREVGSU5FRCh6b25lKTsgXAogICAgICAgcmV0dXJuIHZnX2RlZmF1bHRfem9uZS56b25lX25hbWU7IFwKICAgIH0KIAotWk9ORV9TRVRfTkFNRShWR19aX0xJQkNfU09OQU1FLCBtYWxsb2NfZ2V0X3pvbmVfbmFtZSk7Ci1aT05FX1NFVF9OQU1FKFNPX1NZTl9NQUxMT0MsICAgIG1hbGxvY19nZXRfem9uZV9uYW1lKTsKK1pPTkVfR0VUX05BTUUoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX2dldF96b25lX25hbWUpOworWk9ORV9HRVRfTkFNRShTT19TWU5fTUFMTE9DLCAgICBtYWxsb2NfZ2V0X3pvbmVfbmFtZSk7CiAKICNlbmRpZiAvKiBkZWZpbmVkKFZHT19kYXJ3aW4pICovCiAKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NicHJvZmlsZS5jIGIvY29yZWdyaW5kL21fc2Jwcm9maWxlLmMKaW5kZXggZjY0MjYwZi4uMjU2ODNmNiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc2Jwcm9maWxlLmMKKysrIGIvY29yZWdyaW5kL21fc2Jwcm9maWxlLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTW96aWxsYSBGb3VuZGF0aW9uCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBNb3ppbGxhIEZvdW5kYXRpb24KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTcyLDcgKzcyLDcgQEAKICAgIFZHXyhwcmludGYpKCI8PDxcbiIpOwogICAgVkdfKHByaW50ZikoIlxuIik7CiAKLSAgIFZHXyhwcmludGYpKCJUb3RhbCBzY29yZSA9ICUnbGxkXG5cbiIsIHNjb3JlX3RvdGFsKTsKKyAgIFZHXyhwcmludGYpKCJUb3RhbCBzY29yZSA9ICUnbGx1XG5cbiIsIHNjb3JlX3RvdGFsKTsKIAogICAgLyogUHJpbnQgYW4gaW5pdGlhbCBwZXItYmxvY2sgc3VtbWFyeS4gKi8KICAgIFZHXyhwcmludGYpKCJyYW5rICAtLS1jdW11bGF0aXZlLS0tICAgICAgLS0tLS1zZWxmLS0tLS1cbiIpOwpAQCAtOTYsNyArOTYsNyBAQAogICAgICAgRG91YmxlIHBlcmNlbnRfaGVyZSA9CiAgICAgICAgICBzY29yZV90b3RhbCA9PSAwID8gMTAwLjAgOiBzY29yZV9oZXJlICogMTAwLjAgLyBzY29yZV90b3RhbDsKICAgICAgICAgCi0gICAgICBWR18ocHJpbnRmKSgiJTNkOiAoJTlsbGQgJTUuMmYlJSkgICAlOWxsZCAlNS4yZiUlICAgICAgMHglbHggJXNcbiIsCisgICAgICBWR18ocHJpbnRmKSgiJTNkOiAoJTlsbHUgJTUuMmYlJSkgICAlOWxsdSAlNS4yZiUlICAgICAgMHglbHggJXNcbiIsCiAgICAgICAgICAgICAgICAgICByLAogICAgICAgICAgICAgICAgICAgc2NvcmVfY3VtdWwsIHBlcmNlbnRfY3VtdWwsCiAgICAgICAgICAgICAgICAgICBzY29yZV9oZXJlLCAgcGVyY2VudF9oZXJlLCB0b3BzW3JdLmFkZHIsIG5hbWUpOwpAQCAtMTM4LDcgKzEzOCw3IEBACiAgICAgICAgICBWR18ocHJpbnRmKSgiXG4iKTsKICAgICAgICAgIFZHXyhwcmludGYpKCI9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0gYmVnaW4gU0IgcmFuayAlZCAiCiAgICAgICAgICAgICAgICAgICAgICAiPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09XG5cbiIsIHIpOwotICAgICAgICAgVkdfKHByaW50ZikoIiUzZDogKCU5bGxkICU1LjJmJSUpICAgJTlsbGQgJTUuMmYlJSAgICAgIDB4JWx4ICVzXG4iLAorICAgICAgICAgVkdfKHByaW50ZikoIiUzZDogKCU5bGx1ICU1LjJmJSUpICAgJTlsbHUgJTUuMmYlJSAgICAgIDB4JWx4ICVzXG4iLAogICAgICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgICAgIHNjb3JlX2N1bXVsLCBwZXJjZW50X2N1bXVsLAogICAgICAgICAgICAgICAgICAgICAgc2NvcmVfaGVyZSwgIHBlcmNlbnRfaGVyZSwgdG9wc1tyXS5hZGRyLCBuYW1lICk7CkBAIC0xNzAsNyArMTcwLDcgQEAKICAgICAgICAgIERvdWJsZSBwZXJjZW50X2hlcmUgPQogICAgICAgICAgICBzY29yZV90b3RhbCA9PSAwID8gMTAwLjAgOiBzY29yZV9oZXJlICogMTAwLjAgLyBzY29yZV90b3RhbDsKIAotICAgICAgICAgVkdfKHByaW50ZikoIiUzZDogKCU5bGxkICU1LjJmJSUpICAgJTlsbGQgJTUuMmYlJSAgICAgIDB4JWx4ICVzXG4iLAorICAgICAgICAgVkdfKHByaW50ZikoIiUzZDogKCU5bGx1ICU1LjJmJSUpICAgJTlsbHUgJTUuMmYlJSAgICAgIDB4JWx4ICVzXG4iLAogICAgICAgICAgICAgICAgICAgICAgciwKICAgICAgICAgICAgICAgICAgICAgIHNjb3JlX2N1bXVsLCBwZXJjZW50X2N1bXVsLAogICAgICAgICAgICAgICAgICAgICAgc2NvcmVfaGVyZSwgIHBlcmNlbnRfaGVyZSwgdG9wc1tyXS5hZGRyLCBuYW1lICk7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvcHJpdl9zY2hlZC1sb2NrLWltcGwuaCBiL2NvcmVncmluZC9tX3NjaGVkdWxlci9wcml2X3NjaGVkLWxvY2staW1wbC5oCmluZGV4IDU4ZTJlYTMuLmFlMjkxYjEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NjaGVkdWxlci9wcml2X3NjaGVkLWxvY2staW1wbC5oCisrKyBiL2NvcmVncmluZC9tX3NjaGVkdWxlci9wcml2X3NjaGVkLWxvY2staW1wbC5oCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMS0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NjaGVkdWxlci9wcml2X3NjaGVkLWxvY2suaCBiL2NvcmVncmluZC9tX3NjaGVkdWxlci9wcml2X3NjaGVkLWxvY2suaAppbmRleCA5YTk1MWNhLi5hYTJiNzhjIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvcHJpdl9zY2hlZC1sb2NrLmgKKysrIGIvY29yZWdyaW5kL21fc2NoZWR1bGVyL3ByaXZfc2NoZWQtbG9jay5oCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMS0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NjaGVkdWxlci9wcml2X3NlbWEuaCBiL2NvcmVncmluZC9tX3NjaGVkdWxlci9wcml2X3NlbWEuaAppbmRleCBiZWY3YjRmLi40OWVhODEzIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvcHJpdl9zZW1hLmgKKysrIGIvY29yZWdyaW5kL21fc2NoZWR1bGVyL3ByaXZfc2VtYS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvc2NoZWQtbG9jay1nZW5lcmljLmMgYi9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvc2NoZWQtbG9jay1nZW5lcmljLmMKaW5kZXggOTM5YmM0Zi4uZTlkZTZmOSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc2NoZWR1bGVyL3NjaGVkLWxvY2stZ2VuZXJpYy5jCisrKyBiL2NvcmVncmluZC9tX3NjaGVkdWxlci9zY2hlZC1sb2NrLWdlbmVyaWMuYwpAQCAtMTEsNyArMTEsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMS0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NjaGVkdWxlci9zY2hlZC1sb2NrLmMgYi9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvc2NoZWQtbG9jay5jCmluZGV4IGRkMjUzMjEuLjBhZmRhZTAgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NjaGVkdWxlci9zY2hlZC1sb2NrLmMKKysrIGIvY29yZWdyaW5kL21fc2NoZWR1bGVyL3NjaGVkLWxvY2suYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgICBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvc2NoZWR1bGVyLmMgYi9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvc2NoZWR1bGVyLmMKaW5kZXggODBmZGY2YS4uMTIzNGQ1NiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc2NoZWR1bGVyL3NjaGVkdWxlci5jCisrKyBiL2NvcmVncmluZC9tX3NjaGVkdWxlci9zY2hlZHVsZXIuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xNTgsNyArMTU4LDcgQEAKICAgICAgICJzY2hlZHVsZXI6ICUnbGx1LyUnbGx1IG1ham9yL21pbm9yIHNjaGVkIGV2ZW50cy5cbiIsCiAgICAgICBuX3NjaGVkdWxpbmdfZXZlbnRzX01BSk9SLCBuX3NjaGVkdWxpbmdfZXZlbnRzX01JTk9SKTsKICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgCi0gICAgICAgICAgICAgICAgIiAgIHNhbml0eTogJWQgY2hlYXAsICVkIGV4cGVuc2l2ZSBjaGVja3MuXG4iLAorICAgICAgICAgICAgICAgICIgICBzYW5pdHk6ICV1IGNoZWFwLCAldSBleHBlbnNpdmUgY2hlY2tzLlxuIiwKICAgICAgICAgICAgICAgICBzYW5pdHlfZmFzdF9jb3VudCwgc2FuaXR5X3Nsb3dfY291bnQgKTsKIH0KIApAQCAtMTc1LDcgKzE3NSw3IEBACiBzdGF0aWMKIHZvaWQgcHJpbnRfc2NoZWRfZXZlbnQgKCBUaHJlYWRJZCB0aWQsIGNvbnN0IEhDaGFyKiB3aGF0ICkKIHsKLSAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIiAgU0NIRURbJWRdOiAlc1xuIiwgdGlkLCB3aGF0ICk7CisgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICIgIFNDSEVEWyV1XTogJXNcbiIsIHRpZCwgd2hhdCApOwogfQogCiAvKiBGb3Igc2hvd2luZyBTQiBwcm9maWxlcywgaWYgdGhlIHVzZXIgYXNrcyB0byBzZWUgdGhlbS4gKi8KQEAgLTIxOCw2ICsyMTgsOCBAQAogICAgICAgY2FzZSBWRVhfVFJDX0pNUF9TWVNfSU5UMTI4OiAgICAgcmV0dXJuICJJTlQxMjgiOwogICAgICAgY2FzZSBWRVhfVFJDX0pNUF9TWVNfSU5UMTI5OiAgICAgcmV0dXJuICJJTlQxMjkiOwogICAgICAgY2FzZSBWRVhfVFJDX0pNUF9TWVNfSU5UMTMwOiAgICAgcmV0dXJuICJJTlQxMzAiOworICAgICAgY2FzZSBWRVhfVFJDX0pNUF9TWVNfSU5UMTQ1OiAgICAgcmV0dXJuICJJTlQxNDUiOworICAgICAgY2FzZSBWRVhfVFJDX0pNUF9TWVNfSU5UMjEwOiAgICAgcmV0dXJuICJJTlQyMTAiOwogICAgICAgY2FzZSBWRVhfVFJDX0pNUF9TWVNfU1lTRU5URVI6ICAgcmV0dXJuICJTWVNFTlRFUiI7CiAgICAgICBjYXNlIFZFWF9UUkNfSk1QX0JPUklORzogICAgICAgICByZXR1cm4gIlZFWF9CT1JJTkciOwogCkBAIC0yODQsNyArMjg2LDcgQEAKICAgIHRzdC0+c3RhdHVzID0gVmdUc19SdW5uYWJsZTsKIAogICAgaWYgKFZHXyhydW5uaW5nX3RpZCkgIT0gVkdfSU5WQUxJRF9USFJFQURJRCkKLSAgICAgIFZHXyhwcmludGYpKCJ0aWQgJWQgZm91bmQgJWQgcnVubmluZ1xuIiwgdGlkLCBWR18ocnVubmluZ190aWQpKTsKKyAgICAgIFZHXyhwcmludGYpKCJ0aWQgJXUgZm91bmQgJXUgcnVubmluZ1xuIiwgdGlkLCBWR18ocnVubmluZ190aWQpKTsKICAgIHZnX2Fzc2VydChWR18ocnVubmluZ190aWQpID09IFZHX0lOVkFMSURfVEhSRUFESUQpOwogICAgVkdfKHJ1bm5pbmdfdGlkKSA9IHRpZDsKIApAQCAtMzk5LDcgKzQwMSw3IEBACiAgICBpZiAoVkdfKHRocmVhZHMpW3RpZF0uc3RhdHVzID09IFZnVHNfV2FpdFN5cykgewogICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpIHsKIAkgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAKLSAgICAgICAgICAgICAgICAgICAgICAiZ2V0X3RocmVhZF9vdXRfb2Zfc3lzY2FsbCB6YXBzIHRpZCAlZCBsd3AgJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgImdldF90aHJlYWRfb3V0X29mX3N5c2NhbGwgemFwcyB0aWQgJXUgbHdwICVkXG4iLAogCQkgICAgICB0aWQsIFZHXyh0aHJlYWRzKVt0aWRdLm9zX3N0YXRlLmx3cGlkKTsKICAgICAgIH0KICMgICAgIGlmIGRlZmluZWQoVkdPX2RhcndpbikKQEAgLTQ0OCw3ICs0NTAsMTMgQEAKICAgIC8qIAogICAgICAgVGVsbCB0aGUga2VybmVsIHdlJ3JlIHlpZWxkaW5nLgogICAgICovCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQogICAgVkdfKGRvX3N5c2NhbGwwKShfX05SX3NjaGVkX3lpZWxkKTsKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFZHXyhkb19zeXNjYWxsMCkoX19OUl95aWVsZCk7CisjICBlbHNlCisjICAgIGVycm9yIFVua25vd24gT1MKKyMgIGVuZGlmCiAKICAgIFZHXyhhY3F1aXJlX0JpZ0xvY2spKHRpZCwgIlZHXyh2Z195aWVsZCkiKTsKIH0KQEAgLTQ5Miw2ICs1MDAsMTcgQEAKICAgIHRzdC0+b3Nfc3RhdGUucmVtb3RlX3BvcnQgICAgICAgPSAwOwogICAgdHN0LT5vc19zdGF0ZS5tc2doX2lkICAgICAgICAgICA9IDA7CiAgICBWR18obWVtc2V0KSgmdHN0LT5vc19zdGF0ZS5tYWNoX2FyZ3MsIDAsIHNpemVvZih0c3QtPm9zX3N0YXRlLm1hY2hfYXJncykpOworIyAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIyAgaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICB0c3QtPm9zX3N0YXRlLnRocnB0ciA9IDA7CisjICBlbmRpZgorICAgdHN0LT5vc19zdGF0ZS5zdGtfaWQgPSAoVVdvcmQpLTE7CisgICB0c3QtPm9zX3N0YXRlLnVzdGFjayA9IE5VTEw7CisgICB0c3QtPm9zX3N0YXRlLmluX2Rvb3JfcmV0dXJuID0gRmFsc2U7CisgICB0c3QtPm9zX3N0YXRlLmRvb3JfcmV0dXJuX3Byb2NlZHVyZSA9IDA7CisgICB0c3QtPm9zX3N0YXRlLm9sZGNvbnRleHQgPSBOVUxMOworICAgdHN0LT5vc19zdGF0ZS5zY2hlZGN0bF9kYXRhID0gMDsKKyAgIHRzdC0+b3Nfc3RhdGUuZGFlbW9uX3RocmVhZCA9IEZhbHNlOwogIyAgZWxzZQogIyAgICBlcnJvciAiVW5rbm93biBPUyIKICMgIGVuZGlmCkBAIC02NDUsOCArNjY0LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyICAgICBjbHN0YWNrX2VuZCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZVQgICAgY2xzdGFja19zaXplICkKIHsKLSAgIFZHXyhkZWJ1Z0xvZykoMSwic2NoZWQiLCJzY2hlZF9pbml0X3BoYXNlMjogdGlkX21haW49JWQsICIKLSAgICAgICAgICAgICAgICAgICAiY2xzX2VuZD0weCVseCwgY2xzX3N6PSVsZFxuIiwKKyAgIFZHXyhkZWJ1Z0xvZykoMSwic2NoZWQiLCJzY2hlZF9pbml0X3BoYXNlMjogdGlkX21haW49JXUsICIKKyAgICAgICAgICAgICAgICAgICAiY2xzX2VuZD0weCVseCwgY2xzX3N6PSVsdVxuIiwKICAgICAgICAgICAgICAgICAgICB0aWRfbWFpbiwgY2xzdGFja19lbmQsIGNsc3RhY2tfc2l6ZSk7CiAKICAgIHZnX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQoY2xzdGFja19lbmQrMSkpOwpAQCAtNjc4LDcgKzY5Nyw3IEBACiAJIF9xcV90c3QtPnNjaGVkX2ptcGJ1Zl92YWxpZCA9IFRydWU7CQkJCVwKIAkgc3RtdDsJCQkJCQkJCVwKICAgICAgIH0JZWxzZSBpZiAoVkdfKGNsb190cmFjZV9zY2hlZCkpCQkJCQlcCi0JIFZHXyhwcmludGYpKCJTQ0hFRFNFVEpNUChsaW5lICVkKSB0aWQgJWQsIGp1bXBlZD0lbGRcbiIsICAgICAgIFwKKwkgVkdfKHByaW50ZikoIlNDSEVEU0VUSk1QKGxpbmUgJWQpIHRpZCAldSwganVtcGVkPSVsdVxuIiwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18sIHRpZCwganVtcGVkKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgdmdfYXNzZXJ0KF9xcV90c3QtPnNjaGVkX2ptcGJ1Zl92YWxpZCk7CQkJCVwKICAgICAgIF9xcV90c3QtPnNjaGVkX2ptcGJ1Zl92YWxpZCA9IEZhbHNlOwkJCQlcCkBAIC03MDQsOCArNzIzLDggQEAKICAgIFVJbnQgc3pfc3BpbGwgID0gKFVJbnQpIHNpemVvZiB0c3QtPmFyY2gudmV4X3NwaWxsOwogCiAgICBpZiAoMCkKLSAgIFZHXyhwcmludGYpKCJnc3QgJXAgJWQsIHNoMSAlcCAlZCwgIgotICAgICAgICAgICAgICAgInNoMiAlcCAlZCwgc3BpbGwgJXAgJWRcbiIsCisgICBWR18ocHJpbnRmKSgiZ3N0ICVwICV1LCBzaDEgJXAgJXUsICIKKyAgICAgICAgICAgICAgICJzaDIgJXAgJXUsIHNwaWxsICVwICV1XG4iLAogICAgICAgICAgICAgICAgKHZvaWQqKWFfdmV4LCBzel92ZXgsCiAgICAgICAgICAgICAgICAodm9pZCopYV92ZXhzaDEsIHN6X3ZleHNoMSwKICAgICAgICAgICAgICAgICh2b2lkKilhX3ZleHNoMiwgc3pfdmV4c2gyLApAQCAtOTEwLDcgKzkyOSw3IEBACiAgICAgICB2a2lfc2lnc2V0X3QgbTsKICAgICAgIEludCBpLCBlcnIgPSBWR18oc2lncHJvY21hc2spKFZLSV9TSUdfU0VUTUFTSywgTlVMTCwgJm0pOwogICAgICAgdmdfYXNzZXJ0KGVyciA9PSAwKTsKLSAgICAgIFZHXyhwcmludGYpKCJ0aWQgJWQ6IGVudGVyaW5nIGNvZGUgd2l0aCB1bmJsb2NrZWQgc2lnbmFsczogIiwgdGlkKTsKKyAgICAgIFZHXyhwcmludGYpKCJ0aWQgJXU6IGVudGVyaW5nIGNvZGUgd2l0aCB1bmJsb2NrZWQgc2lnbmFsczogIiwgdGlkKTsKICAgICAgIGZvciAoaSA9IDE7IGkgPD0gX1ZLSV9OU0lHOyBpKyspCiAgICAgICAgICBpZiAoIVZHXyhzaWdpc21lbWJlcikoJm0sIGkpKQogICAgICAgICAgICAgVkdfKHByaW50ZikoIiVkICIsIGkpOwpAQCAtMTA5MSw3ICsxMTEwLDcgQEAKIAogICAgaWYgKFZHXyhjbG9fc2FuaXR5X2xldmVsKSA+PSAzKSB7CiAgICAgICBIQ2hhciBidWZbNTBdOyAgICAvLyBsYXJnZSBlbm91Z2gKLSAgICAgIFZHXyhzcHJpbnRmKShidWYsICIoQkVGT1JFIFNZU0NBTEwsIHRpZCAlZCkiLCB0aWQpOworICAgICAgVkdfKHNwcmludGYpKGJ1ZiwgIihCRUZPUkUgU1lTQ0FMTCwgdGlkICV1KSIsIHRpZCk7CiAgICAgICBCb29sIG9rID0gVkdfKGFtX2RvX3N5bmNfY2hlY2spKGJ1ZiwgX19GSUxFX18sIF9fTElORV9fKTsKICAgICAgIHZnX2Fzc2VydChvayk7CiAgICB9CkBAIC0xMTAwLDEzICsxMTE5LDEzIEBACiAKICAgIGlmIChWR18oY2xvX3Nhbml0eV9sZXZlbCkgPj0gMykgewogICAgICAgSENoYXIgYnVmWzUwXTsgICAgLy8gbGFyZ2UgZW5vdWdoCi0gICAgICBWR18oc3ByaW50ZikoYnVmLCAiKEFGVEVSIFNZU0NBTEwsIHRpZCAlZCkiLCB0aWQpOworICAgICAgVkdfKHNwcmludGYpKGJ1ZiwgIihBRlRFUiBTWVNDQUxMLCB0aWQgJXUpIiwgdGlkKTsKICAgICAgIEJvb2wgb2sgPSBWR18oYW1fZG9fc3luY19jaGVjaykoYnVmLCBfX0ZJTEVfXywgX19MSU5FX18pOwogICAgICAgdmdfYXNzZXJ0KG9rKTsKICAgIH0KIAogICAgaWYgKCFWR18oaXNfcnVubmluZ190aHJlYWQpKHRpZCkpCi0gICAgICBWR18ocHJpbnRmKSgidGlkICVkIG5vdCBydW5uaW5nOyBWR18ocnVubmluZ190aWQpPSVkLCB0aWQgJWQgc3RhdHVzICVkXG4iLAorICAgICAgVkdfKHByaW50ZikoInRpZCAldSBub3QgcnVubmluZzsgVkdfKHJ1bm5pbmdfdGlkKT0ldSwgdGlkICV1IHN0YXR1cyAldVxuIiwKIAkJICB0aWQsIFZHXyhydW5uaW5nX3RpZCksIHRpZCwgdHN0LT5zdGF0dXMpOwogICAgdmdfYXNzZXJ0KFZHXyhpc19ydW5uaW5nX3RocmVhZCkodGlkKSk7CiAgICAKQEAgLTEzMTAsNyArMTMyOSw3IEBACiAgICAgICBuX3NjaGVkdWxpbmdfZXZlbnRzX01JTk9SKys7CiAKICAgICAgIGlmICgwKQotICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAidGhyZWFkICVkOiBydW5uaW5nIGZvciAlZCBiYnNcbiIsIAorICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAidGhyZWFkICV1OiBydW5uaW5nIGZvciAlZCBiYnNcbiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQsIGRpc3BhdGNoX2N0ciAtIDEgKTsKIAogICAgICAgSFdvcmQgdHJjWzJdOyAvKiAidHdvX3dvcmRzIiAqLwpAQCAtMTQwOSw3ICsxNDI4LDEwIEBACiAgICAgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19JTlQxMjg6ICAvKiB4ODYtbGludXggKi8KICAgICAgIGNhc2UgVkVYX1RSQ19KTVBfU1lTX0lOVDEyOTogIC8qIHg4Ni1kYXJ3aW4gKi8KICAgICAgIGNhc2UgVkVYX1RSQ19KTVBfU1lTX0lOVDEzMDogIC8qIHg4Ni1kYXJ3aW4gKi8KLSAgICAgIGNhc2UgVkVYX1RSQ19KTVBfU1lTX1NZU0NBTEw6IC8qIGFtZDY0LWxpbnV4LCBwcGMzMi1saW51eCwgYW1kNjQtZGFyd2luICovCisgICAgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19JTlQxNDU6ICAvKiB4ODYtc29sYXJpcyAqLworICAgICAgY2FzZSBWRVhfVFJDX0pNUF9TWVNfSU5UMjEwOiAgLyogeDg2LXNvbGFyaXMgKi8KKyAgICAgIC8qIGFtZDY0LWxpbnV4LCBwcGMzMi1saW51eCwgYW1kNjQtZGFyd2luLCBhbWQ2NC1zb2xhcmlzICovCisgICAgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19TWVNDQUxMOgogCSBoYW5kbGVfc3lzY2FsbCh0aWQsIHRyY1swXSk7CiAJIGlmIChWR18oY2xvX3Nhbml0eV9sZXZlbCkgPiAyKQogCSAgICBWR18oc2FuaXR5X2NoZWNrX2dlbmVyYWwpKFRydWUpOyAvKiBzYW5pdHktY2hlY2sgZXZlcnkgc3lzY2FsbCAqLwpAQCAtMTU5OSw3ICsxNjIxLDcgQEAKICMgICAgICAgIGlmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkKICAgICAgICAgIHZnX2Fzc2VydDIoMCwgIlZHXyhzY2hlZHVsZXIpLCBwaGFzZSAzOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICJzeXNlbnRlcl94ODYgb24geDg2LWxpbnV4IGlzIG5vdCBzdXBwb3J0ZWQiKTsKLSMgICAgICAgIGVsaWYgZGVmaW5lZChWR1BfeDg2X2RhcndpbikKKyMgICAgICAgIGVsaWYgZGVmaW5lZChWR1BfeDg2X2RhcndpbikgfHwgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCiAgICAgICAgICAvKiByZXR1cm4gYWRkcmVzcyBpbiBjbGllbnQgZWR4ICovCiAgICAgICAgICBWR18odGhyZWFkcylbdGlkXS5hcmNoLnZleC5ndWVzdF9FSVAKICAgICAgICAgICAgID0gVkdfKHRocmVhZHMpW3RpZF0uYXJjaC52ZXguZ3Vlc3RfRURYOwpAQCAtMTY0OCw3ICsxNjcwLDcgQEAKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgaWYgKDApCiAgICAgICAgICBWR18ocHJpbnRmKSgKLSAgICAgICAgICAgICJWR18obnVrZV9hbGxfdGhyZWFkc19leGNlcHQpOiBudWtpbmcgdGlkICVkXG4iLCB0aWQpOworICAgICAgICAgICAgIlZHXyhudWtlX2FsbF90aHJlYWRzX2V4Y2VwdCk6IG51a2luZyB0aWQgJXVcbiIsIHRpZCk7CiAKICAgICAgIFZHXyh0aHJlYWRzKVt0aWRdLmV4aXRyZWFzb24gPSBzcmM7CiAgICAgICBpZiAoc3JjID09IFZnU3JjX0ZhdGFsU2lnKQpAQCAtMTc5MSw3ICsxODEzLDEwIEBACiAgICAgICAqcSA9ICdcMCc7CiAKICAgICAgIFZHXyhwcmludGZfeG1sKSggIjxjbGllbnRtc2c+XG4iICk7Ci0gICAgICBWR18ocHJpbnRmX3htbCkoICIgIDx0aWQ+JWQ8L3RpZD5cbiIsIHRpZCApOworICAgICAgVkdfKHByaW50Zl94bWwpKCAiICA8dGlkPiV1PC90aWQ+XG4iLCB0aWQgKTsKKyAgICAgIGNvbnN0IFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgICAgaWYgKHRzdC0+dGhyZWFkX25hbWUpCisgICAgICAgICBWR18ocHJpbnRmX3htbCkoIiAgPHRocmVhZG5hbWU+JXM8L3RocmVhZG5hbWU+XG4iLCB0c3QtPnRocmVhZF9uYW1lKTsKICAgICAgIFZHXyhwcmludGZfeG1sKSggIiAgPHRleHQ+IiApOwogICAgICAgY291bnQgPSBWR18odnByaW50Zl94bWwpKCB4bWxfZm9ybWF0LCAqdmFyZ3NwICk7CiAgICAgICBWR18ocHJpbnRmX3htbCkoICIgIDwvdGV4dD5cbiIgKTsKQEAgLTE4MjEsNyArMTg0Niw3IEBACiAgICBVV29yZCByZXFfbm8gPSBhcmdbMF07CiAKICAgIGlmICgwKQotICAgICAgVkdfKHByaW50ZikoInJlcSBubyA9IDB4JWxseCwgYXJnID0gJXBcbiIsIChVTG9uZylyZXFfbm8sIGFyZyk7CisgICAgICBWR18ocHJpbnRmKSgicmVxIG5vID0gMHglbHgsIGFyZyA9ICVwXG4iLCByZXFfbm8sIGFyZyk7CiAgICBzd2l0Y2ggKHJlcV9ubykgewogCiAgICAgICBjYXNlIFZHX1VTRVJSRVFfX0NMSUVOVF9DQUxMMDogewpAQCAtMjEzNiwyMiArMjE2MSwyMiBAQAogCiAgICBpZiAoIVZHXyhpc19ydW5uaW5nX3RocmVhZCkodGlkKSkgewogICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAotCQkgICAiVGhyZWFkICVkIGlzIHN1cHBvc2VkIHRvIGJlIHJ1bm5pbmcsICIKLSAgICAgICAgICAgICAgICAgICAiYnV0IGRvZXNuJ3Qgb3duIHRoZV9CaWdMb2NrIChvd25lZCBieSAlZClcbiIsIAorCQkgICAiVGhyZWFkICV1IGlzIHN1cHBvc2VkIHRvIGJlIHJ1bm5pbmcsICIKKyAgICAgICAgICAgICAgICAgICAiYnV0IGRvZXNuJ3Qgb3duIHRoZV9CaWdMb2NrIChvd25lZCBieSAldSlcbiIsIAogCQkgICB0aWQsIFZHXyhydW5uaW5nX3RpZCkpOwogICAgICAgYmFkID0gVHJ1ZTsKICAgIH0KIAogICAgaWYgKGx3cGlkICE9IFZHXyh0aHJlYWRzKVt0aWRdLm9zX3N0YXRlLmx3cGlkKSB7CiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgICAgIlRocmVhZCAlZCBzdXBwb3NlZCB0byBiZSBpbiBMV1AgJWQsIGJ1dCB3ZSdyZSBhY3R1YWxseSAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAiVGhyZWFkICV1IHN1cHBvc2VkIHRvIGJlIGluIExXUCAlZCwgYnV0IHdlJ3JlIGFjdHVhbGx5ICVkXG4iLAogICAgICAgICAgICAgICAgICAgIHRpZCwgVkdfKHRocmVhZHMpW3RpZF0ub3Nfc3RhdGUubHdwaWQsIFZHXyhnZXR0aWQpKCkpOwogICAgICAgYmFkID0gVHJ1ZTsKICAgIH0KIAogICAgaWYgKGx3cGlkICE9IE1MXyhnZXRfc2NoZWRfbG9ja19vd25lcikodGhlX0JpZ0xvY2spKSB7CiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgICAgIlRocmVhZCAoTFdQSUQpICVkIGRvZXNuJ3Qgb3duIHRoZV9CaWdMb2NrXG4iLAorICAgICAgICAgICAgICAgICAgICJUaHJlYWQgKExXUElEKSAldSBkb2Vzbid0IG93biB0aGVfQmlnTG9ja1xuIiwKICAgICAgICAgICAgICAgICAgICB0aWQpOwogICAgICAgYmFkID0gVHJ1ZTsKICAgIH0KQEAgLTIyMDksNyArMjIzNCw3IEBACiAgICAgICAgIHx8IChWR18oY2xvX3Nhbml0eV9sZXZlbCkgPT0gMSAKICAgICAgICAgICAgICYmIHNhbml0eV9mYXN0X2NvdW50ID09IG5leHRfc2xvd19jaGVja19hdCkpIHsKIAotICAgICAgaWYgKDApIFZHXyhwcmludGYpKCJTTE9XIGF0ICVkXG4iLCBzYW5pdHlfZmFzdF9jb3VudC0xKTsKKyAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgiU0xPVyBhdCAldVxuIiwgc2FuaXR5X2Zhc3RfY291bnQtMSk7CiAKICAgICAgIG5leHRfc2xvd19jaGVja19hdCA9IHNhbml0eV9mYXN0X2NvdW50IC0gMSArIHNsb3dfY2hlY2tfaW50ZXJ2YWw7CiAgICAgICBzbG93X2NoZWNrX2ludGVydmFsKys7CkBAIC0yMjM3LDcgKzIyNjIsNyBAQAogICAgICAgICAgICAgPSBWR18oYW1fZ2V0X1ZnU3RhY2tfdW51c2VkX3N6Qikoc3RhY2ssIGxpbWl0KTsKIAkgaWYgKHJlbWFpbnMgPCBsaW1pdCkKIAkgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAiV0FSTklORzogVGhyZWFkICVkIGlzIHdpdGhpbiAlbGQgYnl0ZXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJXQVJOSU5HOiBUaHJlYWQgJXUgaXMgd2l0aGluICVsdSBieXRlcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mIHJ1bm5pbmcgb3V0IG9mIHZhbGdyaW5kIHN0YWNrIVxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICJWYWxncmluZCBzdGFjayBzaXplIGNhbiBiZSBpbmNyZWFzZWQgIgogICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2luZyAtLXZhbGdyaW5kLXN0YWNrc2l6ZT0uLi4uXG4iLApkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc2NoZWR1bGVyL3NlbWEuYyBiL2NvcmVncmluZC9tX3NjaGVkdWxlci9zZW1hLmMKaW5kZXggNDRmMjdmMi4uYjU2Mzc2OCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc2NoZWR1bGVyL3NlbWEuYworKysgYi9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvc2VtYS5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zY2hlZHVsZXIvdGlja2V0LWxvY2stbGludXguYyBiL2NvcmVncmluZC9tX3NjaGVkdWxlci90aWNrZXQtbG9jay1saW51eC5jCmluZGV4IGU5NGE2ZDQuLjQ1OTA0ODEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NjaGVkdWxlci90aWNrZXQtbG9jay1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3NjaGVkdWxlci90aWNrZXQtbG9jay1saW51eC5jCkBAIC0xNCw3ICsxNCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTIwLDcgKzEyMCw3IEBACiAgICB0aWNrZXQgPSBfX3N5bmNfZmV0Y2hfYW5kX2FkZCgmcC0+dGFpbCwgMSk7CiAgICBmdXRleCA9ICZwLT5mdXRleFt0aWNrZXQgJiBUTF9GVVRFWF9NQVNLXTsKICAgIGlmIChzX2RlYnVnKQotICAgICAgVkdfKHByaW50ZikoIlslZC8lZF0gYWNxdWlyZTogdGlja2V0ICVkXG4iLCBWR18oZ2V0cGlkKSgpLAorICAgICAgVkdfKHByaW50ZikoIlslZC8lZF0gYWNxdWlyZTogdGlja2V0ICV1XG4iLCBWR18oZ2V0cGlkKSgpLAogICAgICAgICAgICAgICAgICAgVkdfKGdldHRpZCkoKSwgdGlja2V0KTsKICAgIGZvciAoOzspIHsKICAgICAgIGZ1dGV4X3ZhbHVlID0gKmZ1dGV4OwpAQCAtMTI4LDE1ICsxMjgsMTUgQEAKICAgICAgIGlmICh0aWNrZXQgPT0gcC0+aGVhZCkKICAgICAgICAgIGJyZWFrOwogICAgICAgaWYgKHNfZGVidWcpCi0gICAgICAgICBWR18ocHJpbnRmKSgiWyVkLyVkXSBhY3F1aXJlOiB0aWNrZXQgJWQgLSB3YWl0aW5nIHVudGlsIgotICAgICAgICAgICAgICAgICAgICAgIiBmdXRleFslbGRdICE9ICVkXG4iLCBWR18oZ2V0cGlkKSgpLAorICAgICAgICAgVkdfKHByaW50ZikoIlslZC8lZF0gYWNxdWlyZTogdGlja2V0ICV1IC0gd2FpdGluZyB1bnRpbCIKKyAgICAgICAgICAgICAgICAgICAgICIgZnV0ZXhbJWxkXSAhPSAldVxuIiwgVkdfKGdldHBpZCkoKSwKICAgICAgICAgICAgICAgICAgICAgIFZHXyhnZXR0aWQpKCksIHRpY2tldCwgKGxvbmcpKGZ1dGV4IC0gcC0+ZnV0ZXgpLAogICAgICAgICAgICAgICAgICAgICAgZnV0ZXhfdmFsdWUpOwogICAgICAgc3JlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9mdXRleCwgKFVXb3JkKWZ1dGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktJX0ZVVEVYX1dBSVQgfCBWS0lfRlVURVhfUFJJVkFURV9GTEFHLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnV0ZXhfdmFsdWUpOwotICAgICAgaWYgKHNyX2lzRXJyb3Ioc3JlcykgJiYgc3Jlcy5fdmFsICE9IFZLSV9FQUdBSU4pIHsKLSAgICAgICAgIFZHXyhwcmludGYpKCJmdXRleF93YWl0KCkgcmV0dXJuZWQgZXJyb3IgY29kZSAlbGRcbiIsIHNyZXMuX3ZhbCk7CisgICAgICBpZiAoc3JfaXNFcnJvcihzcmVzKSAmJiBzcl9FcnIoc3JlcykgIT0gVktJX0VBR0FJTikgeworICAgICAgICAgVkdfKHByaW50ZikoImZ1dGV4X3dhaXQoKSByZXR1cm5lZCBlcnJvciBjb2RlICVsdVxuIiwgc3JfRXJyKHNyZXMpKTsKICAgICAgICAgIHZnX2Fzc2VydChGYWxzZSk7CiAgICAgICB9CiAgICB9CkBAIC0xNjksNyArMTY5LDcgQEAKICAgICAgIGZ1dGV4ID0gJnAtPmZ1dGV4W3dha2V1cF90aWNrZXQgJiBUTF9GVVRFWF9NQVNLXTsKICAgICAgIGZ1dGV4X3ZhbHVlID0gX19zeW5jX2ZldGNoX2FuZF9hZGQoZnV0ZXgsIDEpOwogICAgICAgaWYgKHNfZGVidWcpCi0gICAgICAgICBWR18ocHJpbnRmKSgiWyVkLyVkXSByZWxlYXNlOiB3YWtpbmcgdXAgdGlja2V0ICVkIChmdXRleFslbGRdID0gJWQpIgorICAgICAgICAgVkdfKHByaW50ZikoIlslZC8lZF0gcmVsZWFzZTogd2FraW5nIHVwIHRpY2tldCAldSAoZnV0ZXhbJWxkXSA9ICV1KSIKICAgICAgICAgICAgICAgICAgICAgICJcbiIsIFZHXyhnZXRwaWQpKCksIFZHXyhnZXR0aWQpKCksIHdha2V1cF90aWNrZXQsCiAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZnV0ZXggLSBwLT5mdXRleCksIGZ1dGV4X3ZhbHVlKTsKICAgICAgIHNyZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfZnV0ZXgsIChVV29yZClmdXRleCwKQEAgLTE3OCw3ICsxNzgsNyBAQAogICAgICAgdmdfYXNzZXJ0KCFzcl9pc0Vycm9yKHNyZXMpKTsKICAgIH0gZWxzZSB7CiAgICAgICBpZiAoc19kZWJ1ZykKLSAgICAgICAgIFZHXyhwcmludGYpKCJbJWQvJWRdIHJlbGVhc2U6IG5vIHRocmVhZCBpcyB3YWl0aW5nIGZvciB0aWNrZXQgJWRcbiIsCisgICAgICAgICBWR18ocHJpbnRmKSgiWyVkLyVkXSByZWxlYXNlOiBubyB0aHJlYWQgaXMgd2FpdGluZyBmb3IgdGlja2V0ICV1XG4iLAogICAgICAgICAgICAgICAgICAgICAgVkdfKGdldHBpZCkoKSwgVkdfKGdldHRpZCkoKSwgd2FrZXVwX3RpY2tldCk7CiAgICB9CiB9CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zZXFtYXRjaC5jIGIvY29yZWdyaW5kL21fc2VxbWF0Y2guYwppbmRleCA1N2NhM2IwLi42NjhlOTk5IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zZXFtYXRjaC5jCisrKyBiL2NvcmVncmluZC9tX3NlcW1hdGNoLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWFtZDY0LWRhcndpbi5jIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtYW1kNjQtZGFyd2luLmMKaW5kZXggMjA0MDJiZi4uMjgxZDcxOSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtYW1kNjQtZGFyd2luLmMKKysrIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtYW1kNjQtZGFyd2luLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQ1LDE5ICs0NSwxNSBAQAogI2luY2x1ZGUgInB1Yl9jb3JlX3Rvb2xpZmFjZS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3RyYW1wb2xpbmUuaCIKICNpbmNsdWRlICJwdWJfY29yZV9zaWdmcmFtZS5oIiAgICAgIC8qIHNlbGYgKi8KKyNpbmNsdWRlICJwcml2X3NpZ2ZyYW1lLmgiCiAKIAotLyogQ2hlYXAtYXNzIGhhY2sgY29waWVkIGZyb20gcHBjMzItYWl4NSBjb2RlLCBqdXN0IHRvIGdldCBzdGFydGVkLgotICAgUHJvZHVjZSBhIGZyYW1lIHdpdGggbGF5b3V0IGVudGlyZWx5IG9mIG91ciBvd24gY2hvb3NpbmcuICovCisvKiBPcmlnaW5hbGx5IGNvcGllZCBmcm9tIHBwYzMyLWFpeDUgY29kZS4KKyAgIFByb2R1Y2UgYSBmcmFtZSB3aXRoIGxheW91dCBlbnRpcmVseSBvZiBvdXIgb3duIGNob29zaW5nLgogCi0vKiBUaGlzIG1vZHVsZSBjcmVhdGVzIGFuZCByZW1vdmVzIHNpZ25hbCBmcmFtZXMgZm9yIHNpZ25hbCBkZWxpdmVyaWVzCi0gICBvbiBhbWQ2NC1kYXJ3aW4uICBLbHVkZ2V5OyB0aGUgbWFjaGluZSBzdGF0ZSBvdWdodCB0byBiZSBzYXZlZCBpbiBhCi0gICB1Y29udGV4dCBhbmQgcmV0cmlldmVkIGZyb20gaXQgbGF0ZXIsIHNvIHRoZSBoYW5kbGVyIGNhbiBtb2RpZnkgaXQKLSAgIGFuZCByZXR1cm4uICBIb3dldmVyIC4uIGZvciBub3cgLi4ganVzdCBzdGljayB0aGUgdmV4IGd1ZXN0IHN0YXRlCi0gICBpbiB0aGUgZnJhbWUgYW5kIHNuYXJmIGl0IGFnYWluIGxhdGVyLgotCi0gICBBbHNvLCBkb24ndCBib3RoZXIgd2l0aCBjcmVhdGluZyBzaWdpbmZvIGFuZCB1Y29udGV4dCBpbiB0aGUKLSAgIGhhbmRsZXIsIGFsdGhvdWdoIGRvIHBvaW50IHRoZW0gc29tZXdoZXJlIG5vbi1mYXVsdGluZy4KKyAgIFRoaXMgbW9kdWxlIGNyZWF0ZXMgYW5kIHJlbW92ZXMgc2lnbmFsIGZyYW1lcyBmb3Igc2lnbmFsIGRlbGl2ZXJpZXMKKyAgIG9uIGFtZDY0LWRhcndpbi4gIFRoZSBtYWNoaW5lIHN0YXRlIGlzIHNhdmVkIGluIGEgdWNvbnRleHQgYW5kIHJldHJpZXZlZAorICAgZnJvbSBpdCBsYXRlciwgc28gdGhlIGhhbmRsZXIgY2FuIG1vZGlmeSBpdCBhbmQgcmV0dXJuLgogCiAgICBGcmFtZSBzaG91bGQgaGF2ZSBhIDE2LWFsaWduZWQgc2l6ZSwganVzdCBpbiBjYXNlIHRoYXQgdHVybnMgb3V0IHRvCiAgICBiZSBpbXBvcnRhbnQgZm9yIERhcndpbi4gIChiZSBjb25zZXJ2YXRpdmUpCkBAIC02NiwyMCArNjIsODIgQEAKICAgIC8qIGZpcnN0IHdvcmQgbG9va3MgbGlrZSBhIGNhbGwgdG8gYSAzLWFyZyBhbWQ2NC1FTEYgZnVuY3Rpb24gKi8KICAgIFVMb25nICAgICAgICAgICAgICAgcmV0dXJuQWRkcjsKICAgIFVDaGFyICAgICAgICAgICAgICAgbG93ZXJfZ3VhcmR6b25lWzUxMl07ICAvLyBwdXQgbm90aGluZyBoZXJlCi0gICBWZXhHdWVzdEFNRDY0U3RhdGUgIGdzdDsKLSAgIFZleEd1ZXN0QU1ENjRTdGF0ZSAgZ3NoYWRvdzE7Ci0gICBWZXhHdWVzdEFNRDY0U3RhdGUgIGdzaGFkb3cyOworICAgVmV4R3Vlc3RBTUQ2NFN0YXRlICB2ZXg7CisgICBWZXhHdWVzdEFNRDY0U3RhdGUgIHZleF9zaGFkb3cxOworICAgVmV4R3Vlc3RBTUQ2NFN0YXRlICB2ZXhfc2hhZG93MjsKICAgIHZraV9zaWdpbmZvX3QgICAgICAgZmFrZV9zaWdpbmZvOwogICAgc3RydWN0IHZraV91Y29udGV4dCBmYWtlX3Vjb250ZXh0OwogICAgVUludCAgICAgICAgICAgICAgICBtYWdpY1BJOwogICAgVUludCAgICAgICAgICAgICAgICBzaWdOb19wcml2YXRlOwogICAgdmtpX3NpZ3NldF90ICAgICAgICBtYXNrOyAvLyBzYXZlZCBzaWdtYXNrOyByZXN0b3JlIHdoZW4gaGRsciByZXR1cm5zCi0gICBVSW50ICAgICAgICAgICAgICAgIF9fcGFkWzJdOwogICAgVUNoYXIgICAgICAgICAgICAgICB1cHBlcl9ndWFyZHpvbmVbNTEyXTsgLy8gcHV0IG5vdGhpbmcgaGVyZQogICAgLy8gYW5kIGRvbid0IHplcm8gaXQsIHNpbmNlIHRoYXQgbWlnaHQgb3ZlcndyaXRlIHRoZSBjbGllbnQncwogICAgLy8gc3RhY2sgcmVkem9uZSwgYXQgbGVhc3Qgb24gYXJjaHMgd2hpY2ggaGF2ZSBvbmUKIH07CiAKKy8qIENyZWF0ZSBhIHBsYXVzaWJsZS1sb29raW5nIHNpZ2NvbnRleHQgZnJvbSB0aGUgdGhyZWFkJ3MKKyAgIFZleCBndWVzdCBzdGF0ZS4gIE5PVEU6IGRvZXMgbm90IGZpbGwgaW4gdGhlIEZQIG9yIFNTRQorICAgYml0cyBvZiBzaWdjb250ZXh0IGF0IHRoZSBtb21lbnQuCisgKi8KK3N0YXRpYyB2b2lkIHN5bnRoZXNpemVfdWNvbnRleHQoVGhyZWFkU3RhdGUgKnRzdCwKKwkJCQlzdHJ1Y3QgdmtpX3Vjb250ZXh0ICp1YywKKwkJCQljb25zdCBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICpzaWd1YykKK3sKKyAgIFZHXyhtZW1zZXQpKHVjLCAwLCBzaXplb2YoKnVjKSk7CisKKyAgIGlmIChzaWd1YykgdWMtPnVjX3NpZ21hc2sgPSBzaWd1Yy0+dWNfc2lnbWFzazsKKyAgIHVjLT51Y19zdGFjayA9IHRzdC0+YWx0c3RhY2s7CisgICB1Yy0+dWNfbWNvbnRleHQgPSAmdWMtPl9fbWNvbnRleHRfZGF0YTsKKworIyAgZGVmaW5lIFNDMihyZWcsUkVHKSAgdWMtPl9fbWNvbnRleHRfZGF0YS5fX3NzLnJlZyA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfIyNSRUcKKyAgIFNDMihfX3I4LFI4KTsKKyAgIFNDMihfX3I5LFI5KTsKKyAgIFNDMihfX3IxMCxSMTApOworICAgU0MyKF9fcjExLFIxMSk7CisgICBTQzIoX19yMTIsUjEyKTsKKyAgIFNDMihfX3IxMyxSMTMpOworICAgU0MyKF9fcjE0LFIxNCk7CisgICBTQzIoX19yMTUsUjE1KTsKKyAgIFNDMihfX3JkaSxSREkpOworICAgU0MyKF9fcnNpLFJTSSk7CisgICBTQzIoX19yYnAsUkJQKTsKKyAgIFNDMihfX3JieCxSQlgpOworICAgU0MyKF9fcmR4LFJEWCk7CisgICBTQzIoX19yYXgsUkFYKTsKKyAgIFNDMihfX3JjeCxSQ1gpOworICAgU0MyKF9fcnNwLFJTUCk7CisgICBTQzIoX19yaXAsUklQKTsKKyAgIHVjLT5fX21jb250ZXh0X2RhdGEuX19zcy5fX3JmbGFncyA9IExpYlZFWF9HdWVzdEFNRDY0X2dldF9yZmxhZ3MoJnRzdC0+YXJjaC52ZXgpOworCisgICBpZiAoc2lndWMpCisgICAgICB1Yy0+X19tY29udGV4dF9kYXRhLl9fZXMgPSBzaWd1Yy0+X19tY29udGV4dF9kYXRhLl9fZXM7CisjICB1bmRlZiBTQzIKK30KKworc3RhdGljIHZvaWQgcmVzdG9yZV9mcm9tX3Vjb250ZXh0KFRocmVhZFN0YXRlICp0c3QsCisJCQkJICBjb25zdCBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICp1YykKK3sKKyMgIGRlZmluZSBTQzIoUkVHLHJlZykgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfIyNSRUcgPSB1Yy0+X19tY29udGV4dF9kYXRhLl9fc3MucmVnCisgICBTQzIoUjgsX19yOCk7CisgICBTQzIoUjksX19yOSk7CisgICBTQzIoUjEwLF9fcjEwKTsKKyAgIFNDMihSMTEsX19yMTEpOworICAgU0MyKFIxMixfX3IxMik7CisgICBTQzIoUjEzLF9fcjEzKTsKKyAgIFNDMihSMTQsX19yMTQpOworICAgU0MyKFIxNSxfX3IxNSk7CisgICBTQzIoUkRJLF9fcmRpKTsKKyAgIFNDMihSU0ksX19yc2kpOworICAgU0MyKFJCUCxfX3JicCk7CisgICBTQzIoUkJYLF9fcmJ4KTsKKyAgIFNDMihSRFgsX19yZHgpOworICAgU0MyKFJBWCxfX3JheCk7CisgICBTQzIoUkNYLF9fcmN4KTsKKyAgIFNDMihSU1AsX19yc3ApOworICAgU0MyKFJJUCxfX3JpcCk7CisgICAvKiBUaGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYW4gZWFzeSB3YXkgdG8gcmVzdG9yZSByZmxhZ3MgKi8KKyMgIHVuZGVmIFNDMgorfQogCiAvKiBDcmVhdGUgYSBzaWduYWwgZnJhbWUgZm9yIHRocmVhZCAndGlkJy4gIE1ha2UgYSAzLWFyZyBmcmFtZQogICAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBjbGllbnQgb3JpZ2luYWxseSByZXF1ZXN0ZWQgYSAxLWFyZwpAQCAtODcsNiArMTQ1LDcgQEAKICAgIGZvcm1lciBjYXNlLCB0aGUgYW1kNjQgY2FsbGluZyBjb252ZW50aW9ucyB3aWxsIHNpbXBseSBjYXVzZSB0aGUKICAgIGV4dHJhIDIgYXJncyB0byBiZSBpZ25vcmVkIChpbnNpZGUgdGhlIGhhbmRsZXIpLiAgKFdlIGhvcGUhKSAqLwogdm9pZCBWR18oc2lnZnJhbWVfY3JlYXRlKSAoIFRocmVhZElkIHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb29sIG9uX2FsdHN0YWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgc3BfdG9wX29mX2ZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZraV91Y29udGV4dCAqc2lndWMsCkBAIC0xMTUsMjYgKzE3NCwyNSBAQAogCiAgICBmcmFtZSA9IChzdHJ1Y3QgaGFja3lfc2lnZnJhbWUgKikgcnNwOwogCi0gICAvKiBjbGVhciBpdCAodmVyeSBjb25zZXJ2YXRpdmVseSkgKHdoeSBzbyBjb25zZXJ2YXRpdmVseT8/KSAqLworICAgLyogY2xlYXIgaXQgKHZlcnkgY29uc2VydmF0aXZlbHkpICovCiAgICBWR18obWVtc2V0KSgmZnJhbWUtPmxvd2VyX2d1YXJkem9uZSwgMCwgc2l6ZW9mIGZyYW1lLT5sb3dlcl9ndWFyZHpvbmUpOwotICAgVkdfKG1lbXNldCkoJmZyYW1lLT5nc3QsICAgICAgMCwgc2l6ZW9mKFZleEd1ZXN0QU1ENjRTdGF0ZSkpOwotICAgVkdfKG1lbXNldCkoJmZyYW1lLT5nc2hhZG93MSwgMCwgc2l6ZW9mKFZleEd1ZXN0QU1ENjRTdGF0ZSkpOwotICAgVkdfKG1lbXNldCkoJmZyYW1lLT5nc2hhZG93MiwgMCwgc2l6ZW9mKFZleEd1ZXN0QU1ENjRTdGF0ZSkpOworICAgVkdfKG1lbXNldCkoJmZyYW1lLT52ZXgsICAgICAgMCwgc2l6ZW9mKFZleEd1ZXN0QU1ENjRTdGF0ZSkpOworICAgVkdfKG1lbXNldCkoJmZyYW1lLT52ZXhfc2hhZG93MSwgMCwgc2l6ZW9mKFZleEd1ZXN0QU1ENjRTdGF0ZSkpOworICAgVkdfKG1lbXNldCkoJmZyYW1lLT52ZXhfc2hhZG93MiwgMCwgc2l6ZW9mKFZleEd1ZXN0QU1ENjRTdGF0ZSkpOwogICAgVkdfKG1lbXNldCkoJmZyYW1lLT5mYWtlX3NpZ2luZm8sICAwLCBzaXplb2YoZnJhbWUtPmZha2Vfc2lnaW5mbykpOwogICAgVkdfKG1lbXNldCkoJmZyYW1lLT5mYWtlX3Vjb250ZXh0LCAwLCBzaXplb2YoZnJhbWUtPmZha2VfdWNvbnRleHQpKTsKIAogICAgLyogc2F2ZSBzdHVmZiBpbiBmcmFtZSAqLwotICAgZnJhbWUtPmdzdCAgICAgICAgICAgPSB0c3QtPmFyY2gudmV4OwotICAgZnJhbWUtPmdzaGFkb3cxICAgICAgPSB0c3QtPmFyY2gudmV4X3NoYWRvdzE7Ci0gICBmcmFtZS0+Z3NoYWRvdzIgICAgICA9IHRzdC0+YXJjaC52ZXhfc2hhZG93MjsKKyAgIGZyYW1lLT52ZXggICAgICAgICAgID0gdHN0LT5hcmNoLnZleDsKKyAgIGZyYW1lLT52ZXhfc2hhZG93MSAgID0gdHN0LT5hcmNoLnZleF9zaGFkb3cxOworICAgZnJhbWUtPnZleF9zaGFkb3cyICAgPSB0c3QtPmFyY2gudmV4X3NoYWRvdzI7CiAgICBmcmFtZS0+c2lnTm9fcHJpdmF0ZSA9IHNpZ05vOwogICAgZnJhbWUtPm1hc2sgICAgICAgICAgPSB0c3QtPnNpZ19tYXNrOwogICAgZnJhbWUtPm1hZ2ljUEkgICAgICAgPSAweDMxNDE1OTI3OwogCi0gICAvKiBNaW5pbWFsbHkgZmlsbCBpbiB0aGUgc2lnaW5mbyBhbmQgdWNvbnRleHQuICBOb3RlLCB1dHRlcgotICAgICAgbGFtZW5lc3MgcHJldmFpbHMuICBCZSB1bmRlcndoZWxtZWQsIGJlIHZlcnkgdW5kZXJ3aGVsbWVkLiAqLwotICAgZnJhbWUtPmZha2Vfc2lnaW5mby5zaV9zaWdubyA9IHNpZ05vOwotICAgZnJhbWUtPmZha2Vfc2lnaW5mby5zaV9jb2RlICA9IHNpZ2luZm8tPnNpX2NvZGU7CisgICAvKiBGaWxsIGluIHRoZSBzaWdpbmZvIGFuZCB1Y29udGV4dC4gICovCisgICBzeW50aGVzaXplX3Vjb250ZXh0KHRzdCwgJmZyYW1lLT5mYWtlX3Vjb250ZXh0LCBzaWd1Yyk7CisgICBmcmFtZS0+ZmFrZV9zaWdpbmZvID0gKnNpZ2luZm87CiAKICAgIC8qIFNldCB1cCBzdGFjayBwb2ludGVyICovCiAgICB2Z19hc3NlcnQocnNwID09IChBZGRyKSZmcmFtZS0+cmV0dXJuQWRkcik7CkBAIC0xNTIsOCArMjEwLDggQEAKIAogICAgLyogWFhYIHNob3VsZCB0ZWxsIHRoZSB0b29sIHRoYXQgdGhlc2UgcmVncyBnb3Qgd3JpdHRlbiAqLwogICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SREkgPSAoVUxvbmcpIHNpZ05vOwotICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SU0kgPSAoQWRkcikgICZmcmFtZS0+ZmFrZV9zaWdpbmZvOy8qIG9oIHdlbGwgKi8KLSAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUkRYID0gKEFkZHIpICAmZnJhbWUtPmZha2VfdWNvbnRleHQ7IC8qIG9oIHdlbGwgKi8KKyAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUlNJID0gKEFkZHIpICAmZnJhbWUtPmZha2Vfc2lnaW5mbzsKKyAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUkRYID0gKEFkZHIpICAmZnJhbWUtPmZha2VfdWNvbnRleHQ7CiAKICAgIFZHX1RSQUNLKCBwb3N0X21lbV93cml0ZSwgVmdfQ29yZVNpZ25hbCwgdGlkLAogICAgICAgICAgICAgIChBZGRyKWZyYW1lLCAxKnNpemVvZihVTG9uZykgKTsKQEAgLTE2NCw4ICsyMjIsOCBAQAogCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAic2lnZnJhbWVfY3JlYXRlICh0aHJlYWQgJWQpOiAiCi0gICAgICAgICAgICAgICAgICAgIm5leHQgRUlQPSUjbHgsIG5leHQgRVNQPSUjbHhcbiIsCisgICAgICAgICAgICAgICAgICAgInNpZ2ZyYW1lX2NyZWF0ZSAodGhyZWFkICV1KTogIgorICAgICAgICAgICAgICAgICAgICJuZXh0IFJJUD0lI2x4LCBuZXh0IFJTUD0lI2x4XG4iLAogICAgICAgICAgICAgICAgICAgIHRpZCwgKEFkZHIpaGFuZGxlciwgKEFkZHIpZnJhbWUgKTsKIH0KIApAQCAtMTk1LDE1ICsyNTMsMTUgQEAKICAgICAgIGluIFZHXyhzaWdmcmFtZV9jcmVhdGUpIGp1c3QgYWJvdmUuICovCiAgICB2Z19hc3NlcnQoVkdfSVNfMTZfQUxJR05FRCgoQWRkcilmcmFtZSArIDgpKTsKIAotICAgLyogcmVzdG9yZSB0aGUgZW50aXJlIGd1ZXN0IHN0YXRlLCBhbmQgc2hhZG93cywgZnJvbSB0aGUKLSAgICAgIGZyYW1lLiAgTm90ZSwgYXMgcGVyIGNvbW1lbnRzIGFib3ZlLCB0aGlzIGlzIGEga2x1ZGdlIC0gc2hvdWxkCi0gICAgICByZXN0b3JlIGl0IGZyb20gc2F2ZWQgdWNvbnRleHQuICBPaCB3ZWxsLiAqLwotICAgdHN0LT5hcmNoLnZleCA9IGZyYW1lLT5nc3Q7Ci0gICB0c3QtPmFyY2gudmV4X3NoYWRvdzEgPSBmcmFtZS0+Z3NoYWRvdzE7Ci0gICB0c3QtPmFyY2gudmV4X3NoYWRvdzIgPSBmcmFtZS0+Z3NoYWRvdzI7Ci0gICB0c3QtPnNpZ19tYXNrID0gZnJhbWUtPm1hc2s7Ci0gICB0c3QtPnRtcF9zaWdfbWFzayA9IGZyYW1lLT5tYXNrOwotICAgc2lnTm8gPSBmcmFtZS0+c2lnTm9fcHJpdmF0ZTsKKyAgIC8qIHJlc3RvcmUgdGhlIGVudGlyZSBndWVzdCBzdGF0ZSwgYW5kIHNoYWRvd3MsIGZyb20gdGhlIGZyYW1lLiAqLworICAgdHN0LT5hcmNoLnZleCAgICAgICAgICAgID0gZnJhbWUtPnZleDsKKyAgIHRzdC0+YXJjaC52ZXhfc2hhZG93MSAgICA9IGZyYW1lLT52ZXhfc2hhZG93MTsKKyAgIHRzdC0+YXJjaC52ZXhfc2hhZG93MiAgICA9IGZyYW1lLT52ZXhfc2hhZG93MjsKKyAgIHJlc3RvcmVfZnJvbV91Y29udGV4dCh0c3QsICZmcmFtZS0+ZmFrZV91Y29udGV4dCk7CisKKyAgIHRzdC0+c2lnX21hc2sgICAgICAgICAgICA9IGZyYW1lLT5tYXNrOworICAgdHN0LT50bXBfc2lnX21hc2sgICAgICAgID0gZnJhbWUtPm1hc2s7CisgICBzaWdObyAgICAgICAgICAgICAgICAgICAgPSBmcmFtZS0+c2lnTm9fcHJpdmF0ZTsKIAogICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1hbWQ2NC1saW51eC5jIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtYW1kNjQtbGludXguYwppbmRleCAwYzFjN2I0Li5mYTM0NjI0IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1hbWQ2NC1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWFtZDY0LWxpbnV4LmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00NTEsNiArNDUxLDcgQEAKIAogCiB2b2lkIFZHXyhzaWdmcmFtZV9jcmVhdGUpKCBUaHJlYWRJZCB0aWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgb25fYWx0c3RhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkciByc3BfdG9wX29mX2ZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZraV91Y29udGV4dCAqc2lndWMsCkBAIC00OTMsNyArNDk0LDcgQEAKICAgIGlmICgwKQogICAgICAgVkdfKHByaW50ZikoInB1c2hlZCBzaWduYWwgZnJhbWU7ICUlUlNQIG5vdyA9ICUjbHgsICIKICAgICAgICAgICAgICAgICAgICJuZXh0ICUlUklQID0gJSNsbHgsIHN0YXR1cz0lZFxuIiwKLQkJICByc3AsIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUklQLCB0c3QtPnN0YXR1cyk7CisJCSAgcnNwLCB0c3QtPmFyY2gudmV4Lmd1ZXN0X1JJUCwgKEludCl0c3QtPnN0YXR1cyk7CiB9CiAKIApAQCAtNTA5LDcgKzUxMCw3IEBACiB7CiAgICBpZiAoZnJhbWUtPm1hZ2ljUEkgIT0gMHgzMTQxNTkyNyB8fAogICAgICAgIGZyYW1lLT5tYWdpY0UgICE9IDB4MjcxODI4MTgpIHsKLSAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiVGhyZWFkICVkIHJldHVybiBzaWduYWwgZnJhbWUgIgorICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJUaHJlYWQgJXUgcmV0dXJuIHNpZ25hbCBmcmFtZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvcnJ1cHRlZC4gIEtpbGxpbmcgcHJvY2Vzcy5cbiIsCiAJCSAgIHRzdC0+dGlkKTsKICAgICAgIFZHXyhzZXRfZGVmYXVsdF9oYW5kbGVyKShWS0lfU0lHU0VHVik7CkBAIC01OTMsNyArNTk0LDcgQEAKICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQogICAgICAgVkdfKG1lc3NhZ2UpKAogICAgICAgICAgVmdfRGVidWdNc2csIAotICAgICAgICAgIlZHXyhzaWduYWxfcmV0dXJuKSAodGhyZWFkICVkKTogaXNSVD0lZCB2YWxpZCBtYWdpYzsgUklQPSUjbGx4XG4iLAorICAgICAgICAgIlZHXyhzaWduYWxfcmV0dXJuKSAodGhyZWFkICV1KTogaXNSVD0lZCB2YWxpZCBtYWdpYzsgUklQPSUjbGx4XG4iLAogICAgICAgICAgdGlkLCBpc1JULCB0c3QtPmFyY2gudmV4Lmd1ZXN0X1JJUCk7CiAKICAgIC8qIHRlbGwgdGhlIHRvb2xzICovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1hcm0tbGludXguYyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWFybS1saW51eC5jCmluZGV4IGIzNzQyNTcuLjE4NTM2N2MgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWFybS1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWFybS1saW51eC5jCkBAIC04LDExICs4LDExIEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwotICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTMgUGF1bCBNYWNrZXJyYXMKKyAgIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IFBhdWwgTWFja2VycmFzCiAgICAgICBwYXVsdXNAc2FtYmEub3JnCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBFdmFuIEdlbGxlcgorICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgRXZhbiBHZWxsZXIKICAgICAgIGdhemVAYmVhLm1zCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE2MSw2ICsxNjEsNyBAQAogCiAvKiBFWFBPUlRFRCAqLwogdm9pZCBWR18oc2lnZnJhbWVfY3JlYXRlKSggVGhyZWFkSWQgdGlkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgb25fYWx0c3RhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyIHNwX3RvcF9vZl9mcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICpzaWd1YywKQEAgLTIzMSw3ICsyMzIsNyBAQAogCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAiVkdfKHNpZ2ZyYW1lX2NyZWF0ZSk6IGNvbnRpbnVpbmcgaW4gaGFuZGxlciB3aXRoIFBDPSUjeFxuIiwKKyAgICAgICAgICAgICAgICAgICAiVkdfKHNpZ2ZyYW1lX2NyZWF0ZSk6IGNvbnRpbnVpbmcgaW4gaGFuZGxlciB3aXRoIFBDPSUjbHhcbiIsCiAgICAgICAgICAgICAgICAgICAgKEFkZHIpaGFuZGxlcik7CiB9CiAKQEAgLTI0Nyw3ICsyNDgsNiBAQAogICAgc3RydWN0IHZnX3NpZ19wcml2YXRlICpwcml2OwogICAgQWRkciBzcDsKICAgIFVJbnQgZnJhbWVfc2l6ZTsKLSAgIHN0cnVjdCB2a2lfc2lnY29udGV4dCAqbWM7CiAgICBJbnQgc2lnTm87CiAgICBCb29sIGhhc19zaWdpbmZvID0gaXNSVDsKIApAQCAtMjU4LDE0ICsyNTgsMTIgQEAKICAgIGlmIChoYXNfc2lnaW5mbykgewogICAgICAgc3RydWN0IHJ0X3NpZ2ZyYW1lICpmcmFtZSA9IChzdHJ1Y3QgcnRfc2lnZnJhbWUgKilzcDsKICAgICAgIGZyYW1lX3NpemUgPSBzaXplb2YoKmZyYW1lKTsKLSAgICAgIG1jID0gJmZyYW1lLT5zaWcudWMudWNfbWNvbnRleHQ7CiAgICAgICBwcml2ID0gJmZyYW1lLT5zaWcudnA7CiAgICAgICB2Z19hc3NlcnQocHJpdi0+bWFnaWNQSSA9PSAweDMxNDE1OTI3KTsKICAgICAgIHRzdC0+c2lnX21hc2sgPSBmcmFtZS0+c2lnLnVjLnVjX3NpZ21hc2s7CiAgICB9IGVsc2UgewogICAgICAgc3RydWN0IHNpZ2ZyYW1lICpmcmFtZSA9IChzdHJ1Y3Qgc2lnZnJhbWUgKilzcDsKICAgICAgIGZyYW1lX3NpemUgPSBzaXplb2YoKmZyYW1lKTsKLSAgICAgIG1jID0gJmZyYW1lLT51Yy51Y19tY29udGV4dDsKICAgICAgIHByaXYgPSAmZnJhbWUtPnZwOwogICAgICAgdmdfYXNzZXJ0KHByaXYtPm1hZ2ljUEkgPT0gMHgzMTQxNTkyNyk7CiAgICAgICB0c3QtPnNpZ19tYXNrID0gZnJhbWUtPnVjLnVjX3NpZ21hc2s7CkBAIC0yNzgsMjUgKzI3NiwyNSBAQAogCiAgICBzaWdObyA9IHByaXYtPnNpZ05vX3ByaXZhdGU7CiAKLSAgICAvL1hYWDogcmVzdG9yZSByZWdzCi0jICBkZWZpbmUgUkVTVChyZWcsUkVHKSAgdHN0LT5hcmNoLnZleC5ndWVzdF8jI1JFRyA9IG1jLT5hcm1fIyNyZWc7Ci0gICBSRVNUKHIwLFIwKTsKLSAgIFJFU1QocjEsUjEpOwotICAgUkVTVChyMixSMik7Ci0gICBSRVNUKHIzLFIzKTsKLSAgIFJFU1QocjQsUjQpOwotICAgUkVTVChyNSxSNSk7Ci0gICBSRVNUKHI2LFI2KTsKLSAgIFJFU1QocjcsUjcpOwotICAgUkVTVChyOCxSOCk7Ci0gICBSRVNUKHI5LFI5KTsKLSAgIFJFU1QocjEwLFIxMCk7Ci0gICBSRVNUKGZwLFIxMSk7Ci0gICBSRVNUKGlwLFIxMik7Ci0gICBSRVNUKHNwLFIxMyk7Ci0gICBSRVNUKGxyLFIxNCk7Ci0gICBSRVNUKHBjLFIxNVQpOwotIyAgdW5kZWYgUkVTVAorLy9aWiAgICAgLy9YWFg6IHJlc3RvcmUgcmVncworLy9aWiAjICBkZWZpbmUgUkVTVChyZWcsUkVHKSAgdHN0LT5hcmNoLnZleC5ndWVzdF8jI1JFRyA9IG1jLT5hcm1fIyNyZWc7CisvL1paICAgIFJFU1QocjAsUjApOworLy9aWiAgICBSRVNUKHIxLFIxKTsKKy8vWlogICAgUkVTVChyMixSMik7CisvL1paICAgIFJFU1QocjMsUjMpOworLy9aWiAgICBSRVNUKHI0LFI0KTsKKy8vWlogICAgUkVTVChyNSxSNSk7CisvL1paICAgIFJFU1QocjYsUjYpOworLy9aWiAgICBSRVNUKHI3LFI3KTsKKy8vWlogICAgUkVTVChyOCxSOCk7CisvL1paICAgIFJFU1QocjksUjkpOworLy9aWiAgICBSRVNUKHIxMCxSMTApOworLy9aWiAgICBSRVNUKGZwLFIxMSk7CisvL1paICAgIFJFU1QoaXAsUjEyKTsKKy8vWlogICAgUkVTVChzcCxSMTMpOworLy9aWiAgICBSRVNUKGxyLFIxNCk7CisvL1paICAgIFJFU1QocGMsUjE1VCk7CisvL1paICMgIHVuZGVmIFJFU1QKIAogICAgLyogVWgsIHRoZSBuZXh0IGxpbmUgbWFrZXMgYWxsIHRoZSBSRVNUKCkgYWJvdmUgcG9pbnRsZXNzLiAqLwogICAgdHN0LT5hcmNoLnZleCAgICAgICAgID0gcHJpdi0+dmV4OwpAQCAtMzA5LDcgKzMwNyw3IEBACiAgICAgICAgICAgICAgCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAidmdfcG9wX3NpZ25hbF9mcmFtZSAodGhyZWFkICVkKTogIgorICAgICAgICAgICAgICAgICAgICJ2Z19wb3Bfc2lnbmFsX2ZyYW1lICh0aHJlYWQgJXUpOiAiCiAgICAgICAgICAgICAgICAgICAgImlzUlQ9JWQgdmFsaWQgbWFnaWM7IFBDPSUjeFxuIiwKICAgICAgICAgICAgICAgICAgICB0aWQsIGhhc19zaWdpbmZvLCB0c3QtPmFyY2gudmV4Lmd1ZXN0X1IxNVQpOwogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1hcm02NC1saW51eC5jIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtYXJtNjQtbGludXguYwppbmRleCA2ZTgwNjU5Li5hMDEzNGU0IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1hcm02NC1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWFybTY0LWxpbnV4LmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgT3BlbldvcmtzCisgICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBPcGVuV29ya3MKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTUyLDYgKzE1Miw3IEBACiAKIC8qIEVYUE9SVEVEICovCiB2b2lkIFZHXyhzaWdmcmFtZV9jcmVhdGUpKCBUaHJlYWRJZCB0aWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vbCBvbl9hbHRzdGFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgc3BfdG9wX29mX2ZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmtpX3NpZ2luZm9fdCAqc2lnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2a2lfdWNvbnRleHQgKnNpZ3VjLApAQCAtMjgyLDcgKzI4Myw3IEBACiAgICAgICAgICAgICAgCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAidmdfcG9wX3NpZ25hbF9mcmFtZSAodGhyZWFkICVkKTogIgorICAgICAgICAgICAgICAgICAgICJ2Z19wb3Bfc2lnbmFsX2ZyYW1lICh0aHJlYWQgJXUpOiAiCiAgICAgICAgICAgICAgICAgICAgImlzUlQ9JWQgdmFsaWQgbWFnaWM7IFBDPSUjbGx4XG4iLAogICAgICAgICAgICAgICAgICAgIHRpZCwgaGFzX3NpZ2luZm8sIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUEMpOwogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1jb21tb24uYyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWNvbW1vbi5jCmluZGV4IDQ4YmQyNDcuLjhjNTEzZmYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWNvbW1vbi5jCisrKyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLWNvbW1vbi5jCkBAIC0xMCw5ICsxMCw5IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwotICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgIFZHX1RSQUNLKCBuZXdfbWVtX3N0YWNrX3NpZ25hbCwgYWRkciAtIFZHX1NUQUNLX1JFRFpPTkVfU1pCLCBzaXplLCB0aWQgKTsKIH0KIAotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogCiAvKiBFeHRlbmQgdGhlIHN0YWNrIHNlZ21lbnQgZG93bndhcmRzIGlmIG5lZWRlZCBzbyBhcyB0byBlbnN1cmUgdGhlCiAgICBuZXcgc2lnbmFsIGZyYW1lcyBhcmUgbWFwcGVkIHRvIHNvbWV0aGluZy4gIFJldHVybiBhIEJvb2wKQEAgLTgzLDcgKzgzLDcgQEAKIAogICAgaWYgKHN0YWNrc2VnID09IE5VTEwgfHwgIXN0YWNrc2VnLT5oYXNSIHx8ICFzdGFja3NlZy0+aGFzVykgewogICAgICAgVkdfKHVtc2cpKCJDYW4ndCBleHRlbmQgc3RhY2sgdG8gJSNseCBkdXJpbmcgc2lnbmFsIGRlbGl2ZXJ5IGZvciAiCi0gICAgICAgICAgICAgICAgInRocmVhZCAlZDpcbiIsIGFkZHIsIHRpZCk7CisgICAgICAgICAgICAgICAgInRocmVhZCAldTpcbiIsIGFkZHIsIHRpZCk7CiAgICAgICBpZiAoc3RhY2tzZWcgPT0gTlVMTCkKICAgICAgICAgIFZHXyh1bXNnKSgiICBubyBzdGFjayBzZWdtZW50XG4iKTsKICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLW1pcHMzMi1saW51eC5jIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtbWlwczMyLWxpbnV4LmMKaW5kZXggNGIyM2RjNy4uYTk1YTY2MSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtbWlwczMyLWxpbnV4LmMKKysrIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtbWlwczMyLWxpbnV4LmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgUlQtUksKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFJULVJLCiAgICAgICBtaXBzLXZhbGdyaW5kQHJ0LXJrLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMjEsNiArMTIxLDcgQEAKIAogLyogRVhQT1JURUQgKi8KIHZvaWQgVkdfKHNpZ2ZyYW1lX2NyZWF0ZSkoIFRocmVhZElkIHRpZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBCb29sIG9uX2FsdHN0YWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkciBzcF90b3Bfb2ZfZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnaW5mb190ICpzaWdpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZraV91Y29udGV4dCAqc2lndWMsCkBAIC0zMzgsNyArMzM5LDcgQEAKICAgVkdfVFJBQ0soZGllX21lbV9zdGFja19zaWduYWwsIHNwLCBmcmFtZV9zaXplKTsKICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCiAgICAgVkdfKG1lc3NhZ2UpKCBWZ19EZWJ1Z01zZywgCi0gICAgICAgICAiVkdfKHNpZ25hbF9yZXR1cm4pICh0aHJlYWQgJWQpOiBpc1JUPSVkIHZhbGlkIG1hZ2ljOyBFSVA9JSN4XG4iLAorICAgICAgICAgIlZHXyhzaWduYWxfcmV0dXJuKSAodGhyZWFkICV1KTogaXNSVD0lZCB2YWxpZCBtYWdpYzsgRUlQPSUjeFxuIiwKICAgICAgICAgIHRpZCwgaXNSVCwgdHN0LT5hcmNoLnZleC5ndWVzdF9QQyk7CiAgIC8qIHRlbGwgdGhlIHRvb2xzICovCiAgIFZHX1RSQUNLKCBwb3N0X2RlbGl2ZXJfc2lnbmFsLCB0aWQsIHNpZ05vICk7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1taXBzNjQtbGludXguYyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLW1pcHM2NC1saW51eC5jCmluZGV4IDVlMGY0NGEuLmYyMWUyYzcgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLW1pcHM2NC1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLW1pcHM2NC1saW51eC5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIFJULVJLIAorICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksgCiAgICAgICBtaXBzLXZhbGdyaW5kQHJ0LXJrLmNvbSAKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTE2LDYgKzExNiw3IEBACiAKIC8qIEVYUE9SVEVEICovCiB2b2lkIFZHXyhzaWdmcmFtZV9jcmVhdGUpICggVGhyZWFkSWQgdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgb25fYWx0c3RhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkciBzcF90b3Bfb2ZfZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmtpX3NpZ2luZm9fdCAqc2lnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICpzaWd1YywKQEAgLTI2NSw3ICsyNjYsNyBAQAogICAgVkdfVFJBQ0soZGllX21lbV9zdGFja19zaWduYWwsIHNwLCBmcmFtZV9zaXplKTsKICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQogICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAotICAgICAgICAgIlZHXyhzaWduYWxfcmV0dXJuKSAodGhyZWFkICVkKTogaXNSVD0lZCB2YWxpZCBtYWdpYzsgRUlQPSUjbGx4XG4iLAorICAgICAgICAgIlZHXyhzaWduYWxfcmV0dXJuKSAodGhyZWFkICV1KTogaXNSVD0lZCB2YWxpZCBtYWdpYzsgRUlQPSUjbGx4XG4iLAogICAgICAgICAgdGlkLCBpc1JULCB0c3QtPmFyY2gudmV4Lmd1ZXN0X1BDKTsKICAgIC8qIHRlbGwgdGhlIHRvb2xzICovCiAgICBWR19UUkFDSyggcG9zdF9kZWxpdmVyX3NpZ25hbCwgdGlkLCBzaWdObyApOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtcHBjMzItbGludXguYyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXBwYzMyLWxpbnV4LmMKaW5kZXggODA0N2YyNy4uMmE0OTZmZSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtcHBjMzItbGludXguYworKysgYi9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1wcGMzMi1saW51eC5jCkBAIC04LDkgKzgsOSBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNC0yMDEzIFBhdWwgTWFja2VycmFzCisgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBQYXVsIE1hY2tlcnJhcwogICAgICAgcGF1bHVzQHNhbWJhLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MjQsNiArNjI0LDcgQEAKIAogLyogRVhQT1JURUQgKi8KIHZvaWQgVkdfKHNpZ2ZyYW1lX2NyZWF0ZSkoIFRocmVhZElkIHRpZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBCb29sIG9uX2FsdHN0YWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkciBzcF90b3Bfb2ZfZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnaW5mb190ICpzaWdpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZraV91Y29udGV4dCAqc2lndWMsCkBAIC03NTEsNyArNzUyLDcgQEAKICAgIGlmICgwKQogICAgICAgVkdfKHByaW50ZikoInB1c2hlZCBzaWduYWwgZnJhbWU7ICUlUjEgbm93ID0gJSNseCwgIgogICAgICAgICAgICAgICAgICAgIm5leHQgJSVDSUEgPSAlI3gsIHN0YXR1cz0lZFxuIiwKLQkJICBzcCwgdHN0LT5hcmNoLnZleC5ndWVzdF9DSUEsIHRzdC0+c3RhdHVzKTsKKwkJICBzcCwgdHN0LT5hcmNoLnZleC5ndWVzdF9DSUEsIChJbnQpdHN0LT5zdGF0dXMpOwogfQogCiAKQEAgLTkwMCw3ICs5MDEsNyBAQAogCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAidmdfcG9wX3NpZ25hbF9mcmFtZSAodGhyZWFkICVkKTogIgorICAgICAgICAgICAgICAgICAgICJ2Z19wb3Bfc2lnbmFsX2ZyYW1lICh0aHJlYWQgJXUpOiAiCiAgICAgICAgICAgICAgICAgICAgImlzUlQ9JWQgdmFsaWQgbWFnaWM7IEVJUD0lI3hcbiIsCiAgICAgICAgICAgICAgICAgICAgdGlkLCBoYXNfc2lnaW5mbywgdHN0LT5hcmNoLnZleC5ndWVzdF9DSUEpOwogCkBAIC05MjcsNyArOTI4LDcgQEAKIC8vLi4gICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCiAvLy4uICAgICAgIFZHXyhtZXNzYWdlKSgKIC8vLi4gICAgICAgICAgVmdfRGVidWdNc2csIAotLy8uLiAgICAgICAgICAiVkdfKHNpZ25hbF9yZXR1cm4pICh0aHJlYWQgJWQpOiBpc1JUPSVkIHZhbGlkIG1hZ2ljOyBFSVA9JXAiLCAKKy8vLi4gICAgICAgICAgIlZHXyhzaWduYWxfcmV0dXJuKSAodGhyZWFkICV1KTogaXNSVD0lZCB2YWxpZCBtYWdpYzsgRUlQPSVwIiwgCiAvLy4uICAgICAgICAgIHRpZCwgaXNSVCwgdHN0LT5hcmNoLnZleC5ndWVzdF9FSVApOwogLy8uLiAKIC8vLi4gICAgLyogdGVsbCB0aGUgdG9vbHMgKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXBwYzY0LWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1wcGM2NC1saW51eC5jCmluZGV4IGVjNGQ4ODMuLmM1ZjUzMDEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXBwYzY0LWxpbnV4LmMKKysrIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtcHBjNjQtbGludXguYwpAQCAtOCw5ICs4LDkgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCi0gICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMyBQYXVsIE1hY2tlcnJhcworICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgUGF1bCBNYWNrZXJyYXMKICAgICAgIHBhdWx1c0BzYW1iYS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTM0LDYgKzEzNCw3IEBACiAKIC8qIEVYUE9SVEVEICovCiB2b2lkIFZHXyhzaWdmcmFtZV9jcmVhdGUpKCBUaHJlYWRJZCB0aWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vbCBvbl9hbHRzdGFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgc3BfdG9wX29mX2ZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmtpX3NpZ2luZm9fdCAqc2lnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2a2lfdWNvbnRleHQgKnNpZ3VjLApAQCAtMjc4LDcgKzI3OSw3IEBACiAgICBpZiAoMCkKICAgICAgIFZHXyhwcmludGYpKCJwdXNoZWQgc2lnbmFsIGZyYW1lOyAlJVIxIG5vdyA9ICUjbHgsICIKICAgICAgICAgICAgICAgICAgICJuZXh0ICUlQ0lBID0gJSNsbHgsIHN0YXR1cz0lZFxuIiwKLQkJICBzcCwgdHN0LT5hcmNoLnZleC5ndWVzdF9DSUEsIHRzdC0+c3RhdHVzKTsKKwkJICBzcCwgdHN0LT5hcmNoLnZleC5ndWVzdF9DSUEsIChJbnQpdHN0LT5zdGF0dXMpOwogfQogCiAKQEAgLTM0NCw3ICszNDUsNyBAQAogCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAidmdfcG9wX3NpZ25hbF9mcmFtZSAodGhyZWFkICVkKTogaXNSVD0lZCAiCisgICAgICAgICAgICAgICAgICAgInZnX3BvcF9zaWduYWxfZnJhbWUgKHRocmVhZCAldSk6IGlzUlQ9JWQgIgogICAgICAgICAgICAgICAgICAgICJ2YWxpZCBtYWdpYzsgRUlQPSUjbGx4XG4iLAogICAgICAgICAgICAgICAgICAgIHRpZCwgaGFzX3NpZ2luZm8sIHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0lBKTsKIApkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtczM5MHgtbGludXguYyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXMzOTB4LWxpbnV4LmMKaW5kZXggZmI3MGM3Ni4uM2YxMDZmOSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtczM5MHgtbGludXguYworKysgYi9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS1zMzkweC1saW51eC5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDEzCisgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxNQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtNDAzLDYgKzQwMyw3IEBACiAKIC8qIEVYUE9SVEVEICovCiB2b2lkIFZHXyhzaWdmcmFtZV9jcmVhdGUpKCBUaHJlYWRJZCB0aWQsCisJCQkgICBCb29sIG9uX2FsdHN0YWNrLAogCQkJICAgQWRkciBzcF90b3Bfb2ZfZnJhbWUsCiAJCQkgICBjb25zdCB2a2lfc2lnaW5mb190ICpzaWdpbmZvLAogCQkJICAgY29uc3Qgc3RydWN0IHZraV91Y29udGV4dCAqc2lndWMsCkBAIC00NDgsNyArNDQ5LDcgQEAKIHsKICAgIGlmIChmcmFtZS0+bWFnaWNQSSAhPSAweDMxNDE1OTI3IHx8CiAgICAgICAgZnJhbWUtPm1hZ2ljRSAgIT0gMHgyNzE4MjgxOCkgewotICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJUaHJlYWQgJWQgcmV0dXJuIHNpZ25hbCBmcmFtZSAiCisgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywgIlRocmVhZCAldSByZXR1cm4gc2lnbmFsIGZyYW1lICIKIAkJCSAgICAgICAiY29ycnVwdGVkLiAgS2lsbGluZyBwcm9jZXNzLlxuIiwKIAkJICAgdHN0LT50aWQpOwogICAgICAgVkdfKHNldF9kZWZhdWx0X2hhbmRsZXIpKFZLSV9TSUdTRUdWKTsKQEAgLTQ5NCw3ICs0OTUsNyBAQAogICAgQWRkciAgICAgICAgICBzcDsKICAgIFRocmVhZFN0YXRlKiAgdHN0OwogICAgU2l6ZVQgICAgICAgICBzaXplOwotICAgSW50ICAgICAgICAgICAgc2lnTm87CisgICBJbnQgICAgICAgICAgIHNpZ05vOwogCiAgICB0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOwogCkBAIC01MTQsNyArNTE1LDcgQEAKICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQogICAgICAgVkdfKG1lc3NhZ2UpKAogICAgICAgICAgVmdfRGVidWdNc2csCi0gICAgICAgICAiVkdfKHNpZ2ZyYW1lX2Rlc3Ryb3kpICh0aHJlYWQgJWQpOiBpc1JUPSVkIHZhbGlkIG1hZ2ljOyBJUD0lI2xseFxuIiwKKyAgICAgICAgICJWR18oc2lnZnJhbWVfZGVzdHJveSkgKHRocmVhZCAldSk6IGlzUlQ9JWQgdmFsaWQgbWFnaWM7IElQPSUjbGx4XG4iLAogICAgICAgICAgdGlkLCBpc1JULCB0c3QtPmFyY2gudmV4Lmd1ZXN0X0lBKTsKIAogICAgLyogdGVsbCB0aGUgdG9vbHMgKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXNvbGFyaXMuYyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXNvbGFyaXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTlmYjFmCi0tLSAvZGV2L251bGwKKysrIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtc29sYXJpcy5jCkBAIC0wLDAgKzEsMjcwIEBACisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gQ3JlYXRlL2Rlc3Ryb3kgc2lnbmFsIGRlbGl2ZXJ5IGZyYW1lcy4gICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWdmcmFtZS1zb2xhcmlzLmMgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBldHIgUGF2bHUKKyAgICAgIHNldHVwQGRhZ29iYWguY3oKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpIHx8IGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIKKyNpbmNsdWRlICJwdWJfY29yZV92a2kuaCIKKyNpbmNsdWRlICJwdWJfY29yZV90aHJlYWRzdGF0ZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2FzcGFjZW1nci5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNhc3NlcnQuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9saWJjYmFzZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNwcmludC5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX21hY2hpbmUuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9vcHRpb25zLmgiCisjaW5jbHVkZSAicHViX2NvcmVfc2lnbmFscy5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3Rvb2xpZmFjZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3NpZ2ZyYW1lLmgiICAgICAgLyogU2VsZiAqLworI2luY2x1ZGUgInB1Yl9jb3JlX3N5c3dyYXAuaCIKKyNpbmNsdWRlICJwcml2X3NpZ2ZyYW1lLmgiCisKKy8qIFRoaXMgbW9kdWxlIGNyZWF0ZXMgYW5kIHJlbW92ZXMgc2lnbmFsIGZyYW1lcyBmb3Igc2lnbmFsIGRlbGl2ZXJpZXMKKyAgIG9uIHg4Ni9hbWQ2NC1zb2xhcmlzLiAqLworCisvKiBDcmVhdGUgYSBzaWduYWwgZnJhbWUgZm9yIHRocmVhZCAndGlkJy4gIE1ha2UgYSAzLWFyZyBmcmFtZSByZWdhcmRsZXNzIG9mCisgICB3aGV0aGVyIHRoZSBjbGllbnQgb3JpZ2luYWxseSByZXF1ZXN0ZWQgYSAxLWFyZyB2ZXJzaW9uIChubyBTQV9TSUdJTkZPKSBvcgorICAgYSAzLWFyZyBvbmUgKFNBX1NJR0lORk8pIHNpbmNlIGluIHRoZSBmb3JtZXIgY2FzZSwgdGhlIHg4Ni9hbWQ2NCBjYWxsaW5nCisgICBjb252ZW50aW9ucyB3aWxsIHNpbXBseSBjYXVzZSB0aGUgZXh0cmEgMiBhcmdzIHRvIGJlIGlnbm9yZWQgKGluc2lkZSB0aGUKKyAgIGhhbmRsZXIpLiAqLwordm9pZCBWR18oc2lnZnJhbWVfY3JlYXRlKShUaHJlYWRJZCB0aWQsIEJvb2wgb25fYWx0c3RhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgc3BfdG9wX29mX2ZyYW1lLCBjb25zdCB2a2lfc2lnaW5mb190ICpzaWdpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICpzaWd1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqaGFuZGxlciwgVUludCBmbGFncywgY29uc3QgdmtpX3NpZ3NldF90ICptYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpyZXN0b3JlcikKK3sKKyAgIFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgQWRkciBlc3A7CisgICB2a2lfc2lnZnJhbWVfdCAqZnJhbWU7CisgICBJbnQgc2lnbm8gPSBzaWdpbmZvLT5zaV9zaWdubzsKKworICAgLyogQ2FsY3VsYXRlIG5ldyBzdGFjayBwb2ludGVyLiAqLworICAgZXNwID0gc3BfdG9wX29mX2ZyYW1lIC0gc2l6ZW9mKHZraV9zaWdmcmFtZV90KTsKKyAgIGVzcCA9IFZHX1JPVU5ERE4oZXNwLCAxNikgLSBzaXplb2YoVVdvcmQpOworCisgICBpZiAoIU1MXyhzZl9tYXliZV9leHRlbmRfc3RhY2spKHRzdCwgZXNwLCBzcF90b3Bfb2ZfZnJhbWUgLSBlc3AsIGZsYWdzKSkKKyAgICAgIHJldHVybjsKKworICAgLyogRmlsbCBpbiB0aGUgZnJhbWUuICovCisgICBmcmFtZSA9ICh2a2lfc2lnZnJhbWVfdCopZXNwOworCisgICAvKiBTZXQgYSBib2d1cyByZXR1cm4gYWRkcmVzcy4gIFRoaXMgcmV0dXJuIGFkZHJlc3Mgc2hvdWxkIGJlIG5ldmVyIHVzZWQKKyAgICAgIGJlY2F1c2UgdG8gcmV0dXJuIGZyb20gYSBzaWduYWwgaGFuZGxlciBhIHByb2dyYW0gaGFzIHRvIGNhbGwKKyAgICAgIHNldGNvbnRleHQoKSBleHBsaWNpdGx5LiAqLworICAgZnJhbWUtPnJldHVybl9hZGRyID0gKHZvaWQqKX4wVUw7CisKKyAgIC8qIFNhdmUgY3VycmVudCBjb250ZXh0LiAgKFRoaXMgaGFzIHRvIGJlIGRvbmUgYmVmb3JlIHRoZSB0aHJlYWQgc3RhdGUgaXMKKyAgICAgIG1vZGlmaWVkIGluIGFueSB3YXkuKSAqLworICAgVkdfKHNhdmVfY29udGV4dCkodGlkLCAmZnJhbWUtPnVjb250ZXh0LCBWZ19Db3JlU2lnbmFsKTsKKworICAgLyogRmlsbCBpbiB0aGUgc2lnaW5mby4gKi8KKyAgIGZyYW1lLT5zaWdpbmZvID0gKnNpZ2luZm87CisgICAvKiBTZXQgZXhwZWN0ZWQgc2lfYWRkciB2YWx1ZS4KKworICAgICAgTWFudWFsIHBhZ2Ugc2lnaW5mby5oKDNIRUFEKSBkZXNjcmliZXMgdGhhdCBzb21lIHNpZ25hbHMgZGVmaW5lIHNpX2FkZHIKKyAgICAgIHRvIGJlIGFuIGFkZHJlc3Mgb2YgdGhlIGZhdWx0aW5nIGluc3RydWN0aW9uIChTSUdJTEwpLiBUaGVuIGl0IGlzIG5lZWRlZAorICAgICAgdG8gY2hhbmdlIHRoZSByZWFsIENQVSBhZGRyZXNzIHRvIHRoZSBWQ1BVIGFkZHJlc3MuIFNvbWUgc2lnbmFscyBkZWZpbmUKKyAgICAgIHNpX2FkZHIgdG8gYmUgYW4gYWRkcmVzcyBvZiB0aGUgZmF1bHRpbmcgbWVtb3J5IHJlZmVyZW5jZSAoU0lHU0VHViwKKyAgICAgIFNJR0JVUykuIFRoZW4gdGhlIGFkZHJlc3Mgc2hvdWxkIGJlIHBhc3NlZCB1bm1vZGlmaWVkLgorCisgICAgICBIb3dldmVyIGRvY3VtZW50YXRpb24gY29udGFpbmVkIGluIHRoZSBtYW5wYWdlIGRvZXMgbm90IHJlZmxlY3QgdGhlCisgICAgICByZWFsaXR5IGZvdW5kIGluIHRoZSBTb2xhcmlzIGtlcm5lbCAtIHV0cy88YXJjaD4vb3MvdHJhcC5jLiBIZXJlIG9uZSBjYW4KKyAgICAgIG9ic2VydmUgdGhhdCBpbiBzb21lIGNhc2VzIHNpX2FkZHIgaXMgc2V0IHRvIGFkZHJlc3MgcHJvdmlkZWQgYnkgdGhlCisgICAgICB1bmRlcmx5aW5nIHN1YnN5c3RlbS4gSW4gc29tZSBjYXNlcyBzaV9hZGRyIGlzIHNldCB0byB0aGUgY3VycmVudAorICAgICAgcHJvZ3JhbSBjb3VudGVyLiBPdGhlciBzaWduYWxzIGFyZSBtaXNzaW5nIGRvY3VtZW50YXRpb24gYWx0b2dldGhlci4KKyAgICAgIEl0IGlzIGFsbW9zdCBpbXBvc3NpYmxlIHRvIGRldGVybWluZSB3aGF0IHZhbHVlIGlzIHN0b3JlZCBpbiBzaV9hZGRyCisgICAgICBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24gcHJvdmlkZWQgYnkga2VybmVsIHRvIHRoZSBzaWduYWwgaGFuZGxlci4KKworICAgICAgUE9TSVguMS0yMDA4IHNheXMgYWJvdXQgc2lfYWRkcjoKKyAgICAgIFNJR0lMTCwgU0lHRlBFIC4uLiBBZGRyZXNzIG9mIGZhdWx0aW5nIGluc3RydWN0aW9uLgorICAgICAgU0lHU0VHViwgU0lHQlVTIC4uLiBBZGRyZXNzIG9mIGZhdWx0aW5nIG1lbW9yeSByZWZlcmVuY2UuCisgICAgICBGb3Igc29tZSBpbXBsZW1lbnRhdGlvbnMsIHRoZSB2YWx1ZSBvZiBzaV9hZGRyIG1heSBiZSBpbmFjY3VyYXRlLgorCisgICAgICBTZWUgdGVzdHMgbm9uZS90ZXN0cy9mYXVsdHN0YXR1cyBhbmQgbm9uZS90ZXN0cy94ODYvYmFkc2VnIGZvciBleGFtcGxlcy4KKyAgICAgIFRoZSBjb2RlIGJlbG93IHNpbXBseSBmb2xsb3dzIHRoZSBQT1NJWCBzdGFuZGFyZCwgYnV0IHByb3BhZ2F0ZXMgYW55CisgICAgICBwb3NzaWJseSBpbmNvcnJlY3QgdmFsdWVzIGZyb20gdGhlIGtlcm5lbCB0byB0aGUgdXNlci4KKyAgICAqLworICAgc3dpdGNoIChzaWdubykgeworICAgY2FzZSBWS0lfU0lHU0VHVjoKKyAgICAgIHN3aXRjaCAoc2lnaW5mby0+c2lfY29kZSkgeworICAgICAgY2FzZSBWS0lfU0VHVl9BQ0NFUlI6CisgICAgICBjYXNlIFZLSV9TRUdWX01BUEVSUjoKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX1NFR1ZfTUFERV9VUF9HUEY6CisgICAgICAgICAvKiBUcmFuc2xhdGUgc2lfY29kZSBzeW50aGVzaXplZCBieSBWYWxncmluZCB0byBTRUdWX01BUFBFUi4gKi8KKyAgICAgICAgIGZyYW1lLT5zaWdpbmZvLnNpX2NvZGUgPSBWS0lfU0VHVl9NQVBFUlI7CisgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfU0lHQlVTOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSUdGUEU6CisgICBjYXNlIFZLSV9TSUdJTEw6CisgICBjYXNlIFZLSV9TSUdUUkFQOgorICAgICAgZnJhbWUtPnNpZ2luZm8uc2lfYWRkciA9ICh2b2lkKilWR18oZ2V0X0lQKSh0aWQpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSUdQUk9GOgorICAgICAgZnJhbWUtPnNpZ2luZm8uc2lfZmFkZHIgPSAodm9pZCopVkdfKGdldF9JUCkodGlkKTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIGJyZWFrOworICAgfQorICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIFZnX0NvcmVTaWduYWwsIHRpZCwgKEFkZHIpJmZyYW1lLT5zaWdpbmZvLAorICAgICAgICAgICAgc2l6ZW9mKGZyYW1lLT5zaWdpbmZvKSk7CisKKyAgIC8qIFNhdmUgdGhlIHNpZ25hbCBudW1iZXIgaW4gYW4gdW51c2VkIHNsb3QuICBMYXRlciwgd2hlbiBhIHJldHVybiBmcm9tIHRoZQorICAgICAgc2lnbmFsIGlzIG1hZGUsIHRoaXMgdmFsdWUgaXMgdXNlZCB0byBpbmZvcm0gdGhlIHRvb2wgdGhhdCB0aGUKKyAgICAgIHByb2Nlc3NpbmcgZm9yIHRoZSBnaXZlbiBzaWduYWwgaGFzIGVuZGVkLiAqLworICAgVktJX1VDX1NJR05PKCZmcmFtZS0+dWNvbnRleHQpID0gc2lnbm8gfCAoKH4oVVdvcmQpc2lnbm8gJiAweEZGRkYpIDw8IDE2KTsKKyAgIC8qIE9sZCBjb250ZXh0IGhhcyB0byBwb2ludCB0byB0aGUgc2F2ZWQgdWNvbnRleHQuICovCisgICB0c3QtPm9zX3N0YXRlLm9sZGNvbnRleHQgPSAmZnJhbWUtPnVjb250ZXh0OworICAgLyogU2F2ZSBFUlIgYW5kIFRSQVBOTyBpZiBzaWd1YyBpcyBwcmVzZW50LiAqLworICAgaWYgKHNpZ3VjKSB7CisgICAgICBmcmFtZS0+dWNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19FUlJdCisgICAgICAgICA9IHNpZ3VjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX0VSUl07CisgICAgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgVmdfQ29yZVNpZ25hbCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJmZyYW1lLT51Y29udGV4dC51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX0VSUl0sCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIGZyYW1lLT51Y29udGV4dC51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1RSQVBOT10KKyAgICAgICAgID0gc2lndWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfVFJBUE5PXTsKKyAgICAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBWZ19Db3JlU2lnbmFsLCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmZnJhbWUtPnVjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfVFJBUE5PXSwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgfQorCisgICAvKiBQcmVwYXJlIHBhcmFtZXRlcnMgZm9yIGEgc2lnbmFsIGhhbmRsZXIuICovCisgICBmcmFtZS0+YTFfc2lnbm8gPSBzaWdubzsKKyAgIC8qIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaGFzIHRvIGJlIDE2LWJ5dGUgYWxpZ25lZCwgcmVzZW1ibGluZyBmdW5jdGlvbgorICAgICAgY2FsbHMuICovCisgICB7CisgICAgICAvKiBVc2luZworICAgICAgICAgdmdfYXNzZXJ0KFZHX0lTXzE2X0FMSUdORUQoJmZyYW1lLT5hMV9zaWdubykpOworICAgICAgICAgc2VlbXMgdG8gZ2V0IG1pc2NvbXBpbGVkIG9uIGFtZDY0IHdpdGggR0NDIDQuNy4yLiAqLworICAgICAgQWRkciBzaWdub19hZGRyID0gKEFkZHIpJmZyYW1lLT5hMV9zaWdubzsKKyAgICAgIHZnX2Fzc2VydChWR19JU18xNl9BTElHTkVEKHNpZ25vX2FkZHIpKTsKKyAgIH0KKyAgIGZyYW1lLT5hMl9zaWdpbmZvID0gJmZyYW1lLT5zaWdpbmZvOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIFZnX0NvcmVTaWduYWwsIHRpZCwgKEFkZHIpJmZyYW1lLT5hMV9zaWdubywKKyAgICAgICAgICAgIHNpemVvZihmcmFtZS0+YTFfc2lnbm8pICsgc2l6ZW9mKGZyYW1lLT5hMl9zaWdpbmZvKSk7CisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBmcmFtZS0+YTNfdWNvbnRleHQgPSAmZnJhbWUtPnVjb250ZXh0OworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIFZnX0NvcmVTaWduYWwsIHRpZCwgKEFkZHIpJmZyYW1lLT5hM191Y29udGV4dCwKKyAgICAgICAgICAgIHNpemVvZihmcmFtZS0+YTNfdWNvbnRleHQpKTsKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X1JESSA9IHNpZ25vOworICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIFZnX0NvcmVTaWduYWwsIHRpZCwgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLAorICAgICAgICAgICAgZ3Vlc3RfUkRJKSwgc2l6ZW9mKFVMb25nKSk7CisgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X1JTSSA9IChBZGRyKSZmcmFtZS0+c2lnaW5mbzsKKyAgIFZHX1RSQUNLKHBvc3RfcmVnX3dyaXRlLCBWZ19Db3JlU2lnbmFsLCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwKKyAgICAgICAgICAgIGd1ZXN0X1JTSSksIHNpemVvZihVTG9uZykpOworICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SRFggPSAoQWRkcikmZnJhbWUtPnVjb250ZXh0OworICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIFZnX0NvcmVTaWduYWwsIHRpZCwgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLAorICAgICAgICAgICAgZ3Vlc3RfUkRYKSwgc2l6ZW9mKFVMb25nKSk7CisjZW5kaWYKKworICAgLyogU2V0IHVwIHRoZSBzdGFjayBwb2ludGVyLiAqLworICAgdmdfYXNzZXJ0KGVzcCA9PSAoQWRkcikmZnJhbWUtPnJldHVybl9hZGRyKTsKKyAgIFZHXyhzZXRfU1ApKHRpZCwgZXNwKTsKKyAgIFZHX1RSQUNLKHBvc3RfcmVnX3dyaXRlLCBWZ19Db3JlU2lnbmFsLCB0aWQsIFZHX09fU1RBQ0tfUFRSLCBzaXplb2YoQWRkcikpOworCisgICAvKiBTZXQgdXAgdGhlIHByb2dyYW0gY291bnRlci4gTm90ZSB0aGF0IHdlIGRvbid0IGluZm9ybSBhIHRvb2wgYWJvdXQgSVAKKyAgICAgIHdyaXRlIGJlY2F1c2UgSVAgaXMgYWx3YXlzIGRlZmluZWQuICovCisgICBWR18oc2V0X0lQKSh0aWQsIChBZGRyKWhhbmRsZXIpOworCisgICAvKiBJZiB0aGUgc2lnbmFsIGlzIGRlbGl2ZXJlZCBvbiB0aGUgYWx0ZXJuYXRlIHN0YWNrLCBjb3B5IGl0IG91dCB0bworICAgICAgdXN0YWNrLiAgVGhpcyBoYXMgdG8gYmUgZG9uZSBhZnRlciBzZXR0aW5nIGEgbmV3IElQIHNvIHRoZSBTU19PTlNUQUNLCisgICAgICBmbGFnIGlzIHNldCBieSBWR18oZG9fc3lzX3NpZ2FsdHN0YWNrKSgpLiAqLworICAgaWYgKG9uX2FsdHN0YWNrICYmIHRzdC0+b3Nfc3RhdGUudXN0YWNrCisgICAgICAgJiYgVkdfKGFtX2lzX3ZhbGlkX2Zvcl9jbGllbnQpKChBZGRyKXRzdC0+b3Nfc3RhdGUudXN0YWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKnRzdC0+b3Nfc3RhdGUudXN0YWNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktJX1BST1RfV1JJVEUpKSB7CisgICAgICBTeXNSZXMgcmVzOworICAgICAgdmtpX3N0YWNrX3QgYWx0c3RhY2s7CisKKyAgICAgIC8qIEdldCBpbmZvcm1hdGlvbiBhYm91dCBhbHRlcm5hdGUgc3RhY2suICovCisgICAgICByZXMgPSBWR18oZG9fc3lzX3NpZ2FsdHN0YWNrKSh0aWQsIE5VTEwsICZhbHRzdGFjayk7CisgICAgICB2Z19hc3NlcnQoIXNyX2lzRXJyb3IocmVzKSk7CisKKyAgICAgIC8qIENvcHkgaXQgdG8gdXN0YWNrLiAqLworICAgICAgKnRzdC0+b3Nfc3RhdGUudXN0YWNrID0gYWx0c3RhY2s7CisgICAgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgVmdfQ29yZVNpZ25hbCwgdGlkLCAoQWRkcil0c3QtPm9zX3N0YXRlLnVzdGFjaywKKyAgICAgICAgICAgICAgIHNpemVvZigqdHN0LT5vc19zdGF0ZS51c3RhY2spKTsKKyAgIH0KKworICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCisgICAgICAgICAgICAgICAgICAgInNpZ2ZyYW1lX2NyZWF0ZSAodGhyZWFkICV1KTogbmV4dCBJUD0lI2x4LCAiCisgICAgICAgICAgICAgICAgICAgIm5leHQgU1A9JSNseFxuIiwKKyAgICAgICAgICAgICAgICAgICB0aWQsIChBZGRyKWhhbmRsZXIsIChBZGRyKWZyYW1lKTsKK30KKwordm9pZCBWR18oc2lnZnJhbWVfZGVzdHJveSkoVGhyZWFkSWQgdGlkLCBCb29sIGlzUlQpCit7CisgICAvKiBOb3QgdXNlZCBvbiBTb2xhcmlzLiAqLworICAgdmdfYXNzZXJ0KDApOworfQorCit2b2lkIFZHXyhzaWdmcmFtZV9yZXR1cm4pKFRocmVhZElkIHRpZCwgY29uc3QgdmtpX3Vjb250ZXh0X3QgKnVjKQoreworICAgSW50IHNpZ25vOworCisgICAvKiBDaGVjayBpZiBhIHNpZ25hbCBudW1iZXIgd2FzIHNhdmVkIGluIHRoZSByZXN0b3JlZCBjb250ZXh0LiAqLworICAgc2lnbm8gPSBWS0lfVUNfU0lHTk9fQ09OU1QodWMpICYgMHhGRkZGOworICAgaWYgKCFzaWdubyB8fCBzaWdubyAhPSAoKH5WS0lfVUNfU0lHTk9fQ09OU1QodWMpID4+IDE2KSAmIDB4RkZGRikpCisgICAgICByZXR1cm47CisKKyAgIC8qIE5vdGU6IFRoZSBhY3RpdmUgdG9vbCBzaG91bGQgYmUgaW5mb3JtZWQgaGVyZSBhYm91dCB0aGUgZGVhZCBzdGFjayBhcmVhLgorICAgICAgSG93ZXZlciwgdGhpcyB3YXMgYWxyZWFkeSBkb25lIHdoZW4gdGhlIG9yaWdpbmFsIGNvbnRleHQgd2FzIHJlc3RvcmVkIChpbgorICAgICAgVkdfKHJlc3RvcmVfY29udGV4dCkoKSkgc28gaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBkbyBpdCBoZXJlIGFnYWluLgorCisgICAgICBUaGVyZSBpcyBhIHNtYWxsIG51YW5jZSB0aG91Z2gsIFZHXyhyZXN0b3JlX2NvbnRleHQpKCkgdHJpZ2dlcnMgdGhlCisgICAgICBkaWVfbWVtX3N0YWNrIGV2ZW50IHdoaWxlIGluIHRoaXMgY2FzZSwgaXQgc2hvdWxkIHJlYWxseSB0cmlnZ2VyIHRoZQorICAgICAgZGllX21lbV9zdGFja19zaWduYWwgZXZlbnQuICBUaGlzIGlzIG5vdCBjdXJyZW50bHkgYSBwcm9ibGVtIGJlY2F1c2UgYWxsCisgICAgICBvZmZpY2lhbCB0b29scyBoYW5kbGUgdGhlc2UgdHdvIGV2ZW50cyBpbiB0aGUgc2FtZSB3YXkuCisKKyAgICAgIElmIGEgcmV0dXJuIGZyb20gYW4gYWx0ZXJuYXRlIHN0YWNrIGlzIG1hZGUgdGhlbiBubyBkaWVfbWVtX3N0YWNrIGV2ZW50CisgICAgICBpcyBjdXJyZW50bHkgdHJpZ2dlcmVkLiAqLworCisgICAvKiBSZXR1cm5pbmcgZnJvbSBhIHNpZ25hbCBoYW5kbGVyLiAqLworICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCisgICAgICAgICAgICAgICAgICAgInNpZ2ZyYW1lX3JldHVybiAodGhyZWFkICV1KTogSVA9JSNseFxuIiwKKyAgICAgICAgICAgICAgICAgICB0aWQsIFZHXyhnZXRfSVApKHRpZCkpOworCisgICAvKiBUZWxsIHRoZSB0b29sLiAqLworICAgVkdfVFJBQ0socG9zdF9kZWxpdmVyX3NpZ25hbCwgdGlkLCBzaWdubyk7Cit9CisKKyNlbmRpZiAvLyBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykgfHwgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUtdGlsZWd4LWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS10aWxlZ3gtbGludXguYwppbmRleCAzNDQ4ZmY4Li41MmNiZjRiIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS10aWxlZ3gtbGludXguYworKysgYi9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS10aWxlZ3gtbGludXguYwpAQCAtOCw3ICs4LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBUaWxlcmEgQ29ycC4KKyAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgVGlsZXJhIENvcnAuCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjM5LDcgKzIzOSw3IEBACiAgIGlmICgwKQogICAgIFZHXyhwcmludGYpKCJwdXNoZWQgc2lnbmFsIGZyYW1lOyBzcCBub3cgPSAlbHgsICIKICAgICAgICAgICAgICAgICAibmV4dCAlcGMgPSAlbHgsIHN0YXR1cz0lZFxuIiwKLSAgICAgICAgICAgICAgICAoQWRkcilmcmFtZSwgdHN0LT5hcmNoLnZleC5ndWVzdF9wYywgdHN0LT5zdGF0dXMpOworICAgICAgICAgICAgICAgIChBZGRyKWZyYW1lLCB0c3QtPmFyY2gudmV4Lmd1ZXN0X3BjLCAoSW50KXRzdC0+c3RhdHVzKTsKIH0KIAogLyogRVhQT1JURUQgKi8KQEAgLTI2Miw5ICsyNjIsOSBAQAogICAgIHN0cnVjdCB2a2lfdWNvbnRleHQgKnVjcCA9ICZmcmFtZS0+cnNfdWM7CiAKICAgICBpZiAoMCkKLSAgICAgIFZHXyhwcmludGYpKCJkZXN0b3J5IHNpZ25hbCBmcmFtZTsgc3AgPSAlbHgsICIKKyAgICAgIFZHXyhwcmludGYpKCJkZXN0cm95IHNpZ25hbCBmcmFtZTsgc3AgPSAlbHgsICIKICAgICAgICAgICAgICAgICAgICIgJXBjID0gJWx4LCBzdGF0dXM9JWRcbiIsCi0gICAgICAgICAgICAgICAgICAoQWRkcilmcmFtZSwgdHN0LT5hcmNoLnZleC5ndWVzdF9wYywgdHN0LT5zdGF0dXMpOworICAgICAgICAgICAgICAgICAgKEFkZHIpZnJhbWUsIHRzdC0+YXJjaC52ZXguZ3Vlc3RfcGMsIChJbnQpdHN0LT5zdGF0dXMpOwogCiAgICAgZnJhbWVfc2l6ZSA9IHNpemVvZigqZnJhbWUpOwogICAgIG1jID0gJnVjcC0+dWNfbWNvbnRleHQ7CkBAIC0zMzksNyArMzM5LDcgQEAKICAgVkdfVFJBQ0soZGllX21lbV9zdGFja19zaWduYWwsIHNwLCBmcmFtZV9zaXplKTsKICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCiAgICAgVkdfKG1lc3NhZ2UpKCBWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICJWR18oc2lnbmFsX3JldHVybikgKHRocmVhZCAlZCk6IGlzUlQ9JWQgdmFsaWQgbWFnaWM7IEVJUD0lI3hcbiIsCisgICAgICAgICAgICAgICAgICAiVkdfKHNpZ25hbF9yZXR1cm4pICh0aHJlYWQgJXUpOiBpc1JUPSVkIHZhbGlkIG1hZ2ljOyBFSVA9JSN4XG4iLAogICAgICAgICAgICAgICAgICAgdGlkLCBpc1JULCB0c3QtPmFyY2gudmV4Lmd1ZXN0X3BjKTsKICAgLyogdGVsbCB0aGUgdG9vbHMgKi8KICAgVkdfVFJBQ0soIHBvc3RfZGVsaXZlcl9zaWduYWwsIHRpZCwgc2lnTm8gKTsKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXg4Ni1kYXJ3aW4uYyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXg4Ni1kYXJ3aW4uYwppbmRleCAwMWY4N2RhLi4yZTY0OTJmIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS14ODYtZGFyd2luLmMKKysrIGIvY29yZWdyaW5kL21fc2lnZnJhbWUvc2lnZnJhbWUteDg2LWRhcndpbi5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00NSwxOSArNDUsMTUgQEAKICNpbmNsdWRlICJwdWJfY29yZV90b29saWZhY2UuaCIKICNpbmNsdWRlICJwdWJfY29yZV90cmFtcG9saW5lLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfc2lnZnJhbWUuaCIgICAgICAvKiBzZWxmICovCisjaW5jbHVkZSAicHJpdl9zaWdmcmFtZS5oIgogCiAKLS8qIENoZWFwLWFzcyBoYWNrIGNvcGllZCBmcm9tIHBwYzMyLWFpeDUgY29kZSwganVzdCB0byBnZXQgc3RhcnRlZC4KLSAgIFByb2R1Y2UgYSBmcmFtZSB3aXRoIGxheW91dCBlbnRpcmVseSBvZiBvdXIgb3duIGNob29zaW5nLiAqLworLyogT3JpZ2luYWxseSBjb3BpZWQgZnJvbSBwcGMzMi1haXg1IGNvZGUuCisgICBQcm9kdWNlIGEgZnJhbWUgd2l0aCBsYXlvdXQgZW50aXJlbHkgb2Ygb3VyIG93biBjaG9vc2luZy4KIAotLyogVGhpcyBtb2R1bGUgY3JlYXRlcyBhbmQgcmVtb3ZlcyBzaWduYWwgZnJhbWVzIGZvciBzaWduYWwgZGVsaXZlcmllcwotICAgb24geDg2LWRhcndpbi4gIEtsdWRnZXk7IHRoZSBtYWNoaW5lIHN0YXRlIG91Z2h0IHRvIGJlIHNhdmVkIGluIGEKLSAgIHVjb250ZXh0IGFuZCByZXRyaWV2ZWQgZnJvbSBpdCBsYXRlciwgc28gdGhlIGhhbmRsZXIgY2FuIG1vZGlmeSBpdAotICAgYW5kIHJldHVybi4gIEhvd2V2ZXIgLi4gZm9yIG5vdyAuLiBqdXN0IHN0aWNrIHRoZSB2ZXggZ3Vlc3Qgc3RhdGUKLSAgIGluIHRoZSBmcmFtZSBhbmQgc25hcmYgaXQgYWdhaW4gbGF0ZXIuCi0KLSAgIEFsc28sIGRvbid0IGJvdGhlciB3aXRoIGNyZWF0aW5nIHNpZ2luZm8gYW5kIHVjb250ZXh0IGluIHRoZQotICAgaGFuZGxlciwgYWx0aG91Z2ggZG8gcG9pbnQgdGhlbSBzb21ld2hlcmUgbm9uLWZhdWx0aW5nLgorICAgVGhpcyBtb2R1bGUgY3JlYXRlcyBhbmQgcmVtb3ZlcyBzaWduYWwgZnJhbWVzIGZvciBzaWduYWwgZGVsaXZlcmllcworICAgb24geDg2LWRhcndpbi4gIFRoZSBtYWNoaW5lIHN0YXRlIGlzIHNhdmVkIGluIGEgdWNvbnRleHQgYW5kIHJldHJpZXZlZAorICAgZnJvbSBpdCBsYXRlciwgc28gdGhlIGhhbmRsZXIgY2FuIG1vZGlmeSBpdCBhbmQgcmV0dXJuLgogCiAgICBGcmFtZSBzaG91bGQgaGF2ZSBhIDE2LWFsaWduZWQgc2l6ZSwganVzdCBpbiBjYXNlIHRoYXQgdHVybnMgb3V0IHRvCiAgICBiZSBpbXBvcnRhbnQgZm9yIERhcndpbi4gIChiZSBjb25zZXJ2YXRpdmUpCkBAIC02OSwyMCArNjUsNjcgQEAKICAgIFVJbnQgICAgICAgICAgICAgYTJfc2lnaW5mbzsKICAgIFVJbnQgICAgICAgICAgICAgYTNfdWNvbnRleHQ7CiAgICBVQ2hhciAgICAgICAgICAgIGxvd2VyX2d1YXJkem9uZVs1MTJdOyAgLy8gcHV0IG5vdGhpbmcgaGVyZQotICAgVmV4R3Vlc3RYODZTdGF0ZSBnc3Q7Ci0gICBWZXhHdWVzdFg4NlN0YXRlIGdzaGFkb3cxOwotICAgVmV4R3Vlc3RYODZTdGF0ZSBnc2hhZG93MjsKKyAgIFZleEd1ZXN0WDg2U3RhdGUgdmV4OworICAgVmV4R3Vlc3RYODZTdGF0ZSB2ZXhfc2hhZG93MTsKKyAgIFZleEd1ZXN0WDg2U3RhdGUgdmV4X3NoYWRvdzI7CiAgICB2a2lfc2lnaW5mb190ICAgIGZha2Vfc2lnaW5mbzsKICAgIHN0cnVjdCB2a2lfdWNvbnRleHQgZmFrZV91Y29udGV4dDsKICAgIFVJbnQgICAgICAgICAgICAgbWFnaWNQSTsKICAgIFVJbnQgICAgICAgICAgICAgc2lnTm9fcHJpdmF0ZTsKICAgIHZraV9zaWdzZXRfdCAgICAgbWFzazsgLy8gc2F2ZWQgc2lnbWFzazsgcmVzdG9yZSB3aGVuIGhkbHIgcmV0dXJucwotICAgVUludCAgICAgICAgICAgICBfX3BhZFsxXTsKKyAgIFVJbnQgICAgICAgICAgICAgX19wYWRbM107CiAgICBVQ2hhciAgICAgICAgICAgIHVwcGVyX2d1YXJkem9uZVs1MTJdOyAvLyBwdXQgbm90aGluZyBoZXJlCiAgICAvLyBhbmQgZG9uJ3QgemVybyBpdCwgc2luY2UgdGhhdCBtaWdodCBvdmVyd3JpdGUgdGhlIGNsaWVudCdzCiAgICAvLyBzdGFjayByZWR6b25lLCBhdCBsZWFzdCBvbiBhcmNocyB3aGljaCBoYXZlIG9uZQogfTsKIAorLyogQ3JlYXRlIGEgcGxhdXNpYmxlLWxvb2tpbmcgc2lnY29udGV4dCBmcm9tIHRoZSB0aHJlYWQncworICAgVmV4IGd1ZXN0IHN0YXRlLiAgTk9URTogZG9lcyBub3QgZmlsbCBpbiB0aGUgRlAgb3IgU1NFCisgICBiaXRzIG9mIHNpZ2NvbnRleHQgYXQgdGhlIG1vbWVudC4KKyAqLworc3RhdGljIHZvaWQgc3ludGhlc2l6ZV91Y29udGV4dChUaHJlYWRTdGF0ZSAqdHN0LAorCQkJCXN0cnVjdCB2a2lfdWNvbnRleHQgKnVjLAorCQkJCWNvbnN0IHN0cnVjdCB2a2lfdWNvbnRleHQgKnNpZ3VjKQoreworICAgVkdfKG1lbXNldCkodWMsIDAsIHNpemVvZigqdWMpKTsKKworICAgaWYgKHNpZ3VjKSB1Yy0+dWNfc2lnbWFzayA9IHNpZ3VjLT51Y19zaWdtYXNrOworICAgdWMtPnVjX3N0YWNrID0gdHN0LT5hbHRzdGFjazsKKyAgIHVjLT51Y19tY29udGV4dCA9ICZ1Yy0+X19tY29udGV4dF9kYXRhOworCisjICBkZWZpbmUgU0MyKHJlZyxSRUcpICB1Yy0+X19tY29udGV4dF9kYXRhLl9fc3MucmVnID0gdHN0LT5hcmNoLnZleC5ndWVzdF8jI1JFRworICAgU0MyKF9fZWRpLEVESSk7CisgICBTQzIoX19lc2ksRVNJKTsKKyAgIFNDMihfX2VicCxFQlApOworICAgU0MyKF9fZWJ4LEVCWCk7CisgICBTQzIoX19lZHgsRURYKTsKKyAgIFNDMihfX2VheCxFQVgpOworICAgU0MyKF9fZWN4LEVDWCk7CisgICBTQzIoX19lc3AsRVNQKTsKKyAgIFNDMihfX2VpcCxFSVApOworICAgdWMtPl9fbWNvbnRleHRfZGF0YS5fX3NzLl9fZWZsYWdzID0gTGliVkVYX0d1ZXN0WDg2X2dldF9lZmxhZ3MoJnRzdC0+YXJjaC52ZXgpOworCisgICBpZiAoc2lndWMpCisgICAgICB1Yy0+X19tY29udGV4dF9kYXRhLl9fZXMgPSBzaWd1Yy0+X19tY29udGV4dF9kYXRhLl9fZXM7CisjICB1bmRlZiBTQzIKK30KKworc3RhdGljIHZvaWQgcmVzdG9yZV9mcm9tX3Vjb250ZXh0KFRocmVhZFN0YXRlICp0c3QsCisJCQkJICBjb25zdCBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICp1YykKK3sKKyMgIGRlZmluZSBTQzIoUkVHLHJlZykgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfIyNSRUcgPSB1Yy0+X19tY29udGV4dF9kYXRhLl9fc3MucmVnCisgICBTQzIoRURJLF9fZWRpKTsKKyAgIFNDMihFU0ksX19lc2kpOworICAgU0MyKEVCUCxfX2VicCk7CisgICBTQzIoRUJYLF9fZWJ4KTsKKyAgIFNDMihFRFgsX19lZHgpOworICAgU0MyKEVBWCxfX2VheCk7CisgICBTQzIoRUNYLF9fZWN4KTsKKyAgIFNDMihFU1AsX19lc3ApOworICAgU0MyKEVJUCxfX2VpcCk7CisgICAvKiBUaGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYW4gZWFzeSB3YXkgdG8gcmVzdG9yZSBlZmxhZ3MgKi8KKyMgIHVuZGVmIFNDMgorfQogCiAvKiBDcmVhdGUgYSBzaWduYWwgZnJhbWUgZm9yIHRocmVhZCAndGlkJy4gIE1ha2UgYSAzLWFyZyBmcmFtZQogICAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBjbGllbnQgb3JpZ2luYWxseSByZXF1ZXN0ZWQgYSAxLWFyZwpAQCAtOTAsNiArMTMzLDcgQEAKICAgIGZvcm1lciBjYXNlLCB0aGUgeDg2IGNhbGxpbmcgY29udmVudGlvbnMgd2lsbCBzaW1wbHkgY2F1c2UgdGhlCiAgICBleHRyYSAyIGFyZ3MgdG8gYmUgaWdub3JlZCAoaW5zaWRlIHRoZSBoYW5kbGVyKS4gKi8KIHZvaWQgVkdfKHNpZ2ZyYW1lX2NyZWF0ZSkgKCBUaHJlYWRJZCB0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vbCBvbl9hbHRzdGFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyIHNwX3RvcF9vZl9mcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnaW5mb190ICpzaWdpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2a2lfdWNvbnRleHQgKnNpZ3VjLApAQCAtMTE4LDI2ICsxNjIsMjUgQEAKIAogICAgZnJhbWUgPSAoc3RydWN0IGhhY2t5X3NpZ2ZyYW1lICopIGVzcDsKIAotICAgLyogY2xlYXIgaXQgKHZlcnkgY29uc2VydmF0aXZlbHkpICh3aHkgc28gY29uc2VydmF0aXZlbHk/PykgKi8KKyAgIC8qIGNsZWFyIGl0ICh2ZXJ5IGNvbnNlcnZhdGl2ZWx5KSAqLwogICAgVkdfKG1lbXNldCkoJmZyYW1lLT5sb3dlcl9ndWFyZHpvbmUsIDAsIHNpemVvZiBmcmFtZS0+bG93ZXJfZ3VhcmR6b25lKTsKLSAgIFZHXyhtZW1zZXQpKCZmcmFtZS0+Z3N0LCAgICAgIDAsIHNpemVvZihWZXhHdWVzdFg4NlN0YXRlKSk7Ci0gICBWR18obWVtc2V0KSgmZnJhbWUtPmdzaGFkb3cxLCAwLCBzaXplb2YoVmV4R3Vlc3RYODZTdGF0ZSkpOwotICAgVkdfKG1lbXNldCkoJmZyYW1lLT5nc2hhZG93MiwgMCwgc2l6ZW9mKFZleEd1ZXN0WDg2U3RhdGUpKTsKKyAgIFZHXyhtZW1zZXQpKCZmcmFtZS0+dmV4LCAgICAgIDAsIHNpemVvZihWZXhHdWVzdFg4NlN0YXRlKSk7CisgICBWR18obWVtc2V0KSgmZnJhbWUtPnZleF9zaGFkb3cxLCAwLCBzaXplb2YoVmV4R3Vlc3RYODZTdGF0ZSkpOworICAgVkdfKG1lbXNldCkoJmZyYW1lLT52ZXhfc2hhZG93MiwgMCwgc2l6ZW9mKFZleEd1ZXN0WDg2U3RhdGUpKTsKICAgIFZHXyhtZW1zZXQpKCZmcmFtZS0+ZmFrZV9zaWdpbmZvLCAgMCwgc2l6ZW9mKGZyYW1lLT5mYWtlX3NpZ2luZm8pKTsKICAgIFZHXyhtZW1zZXQpKCZmcmFtZS0+ZmFrZV91Y29udGV4dCwgMCwgc2l6ZW9mKGZyYW1lLT5mYWtlX3Vjb250ZXh0KSk7CiAKICAgIC8qIHNhdmUgc3R1ZmYgaW4gZnJhbWUgKi8KLSAgIGZyYW1lLT5nc3QgICAgICAgICAgID0gdHN0LT5hcmNoLnZleDsKLSAgIGZyYW1lLT5nc2hhZG93MSAgICAgID0gdHN0LT5hcmNoLnZleF9zaGFkb3cxOwotICAgZnJhbWUtPmdzaGFkb3cyICAgICAgPSB0c3QtPmFyY2gudmV4X3NoYWRvdzI7CisgICBmcmFtZS0+dmV4ICAgICAgICAgICA9IHRzdC0+YXJjaC52ZXg7CisgICBmcmFtZS0+dmV4X3NoYWRvdzEgICA9IHRzdC0+YXJjaC52ZXhfc2hhZG93MTsKKyAgIGZyYW1lLT52ZXhfc2hhZG93MiAgID0gdHN0LT5hcmNoLnZleF9zaGFkb3cyOwogICAgZnJhbWUtPnNpZ05vX3ByaXZhdGUgPSBzaWdObzsKICAgIGZyYW1lLT5tYXNrICAgICAgICAgID0gdHN0LT5zaWdfbWFzazsKICAgIGZyYW1lLT5tYWdpY1BJICAgICAgID0gMHgzMTQxNTkyNzsKIAotICAgLyogTWluaW1hbGx5IGZpbGwgaW4gdGhlIHNpZ2luZm8gYW5kIHVjb250ZXh0LiAgTm90ZSwgdXR0ZXIKLSAgICAgIGxhbWVuZXNzIHByZXZhaWxzLiAgQmUgdW5kZXJ3aGVsbWVkLCBiZSB2ZXJ5IHVuZGVyd2hlbG1lZC4gKi8KLSAgIGZyYW1lLT5mYWtlX3NpZ2luZm8uc2lfc2lnbm8gPSBzaWdObzsKLSAgIGZyYW1lLT5mYWtlX3NpZ2luZm8uc2lfY29kZSAgPSBzaWdpbmZvLT5zaV9jb2RlOworICAgLyogRmlsbCBpbiB0aGUgc2lnaW5mbyBhbmQgdWNvbnRleHQuICAqLworICAgc3ludGhlc2l6ZV91Y29udGV4dCh0c3QsICZmcmFtZS0+ZmFrZV91Y29udGV4dCwgc2lndWMpOworICAgZnJhbWUtPmZha2Vfc2lnaW5mbyA9ICpzaWdpbmZvOwogCiAgICAvKiBTZXQgdXAgc3RhY2sgcG9pbnRlciAqLwogICAgdmdfYXNzZXJ0KGVzcCA9PSAoQWRkcikmZnJhbWUtPnJldHVybkFkZHIpOwpAQCAtMTUyLDkgKzE5NSwxMSBAQAogICAgVkdfVFJBQ0soIHByZV9tZW1fd3JpdGUsIFZnX0NvcmVTaWduYWwsIHRpZCwgInNpZ25hbCBoYW5kbGVyIGZyYW1lIiwKICAgICAgICAgICAgICAoQWRkcilmcmFtZSwgNCpzaXplb2YoVUludCkgKTsKICAgIGZyYW1lLT5yZXR1cm5BZGRyICA9IChVSW50KSZWR18oeDg2X2Rhcndpbl9TVUJTVF9GT1Jfc2lncmV0dXJuKTsKLSAgIGZyYW1lLT5hMV9zaWdubyAgICA9IHNpZ05vOwotICAgZnJhbWUtPmEyX3NpZ2luZm8gID0gKFVJbnQpJmZyYW1lLT5mYWtlX3NpZ2luZm87ICAvKiBvaCB3ZWxsICovCi0gICBmcmFtZS0+YTNfdWNvbnRleHQgPSAoVUludCkmZnJhbWUtPmZha2VfdWNvbnRleHQ7IC8qIG9oIHdlbGwgKi8KKworICAgZnJhbWUtPmExX3NpZ25vICAgID0gICAgICAgICBzaWdObzsKKyAgIGZyYW1lLT5hMl9zaWdpbmZvICA9IChVSW50KSAgJmZyYW1lLT5mYWtlX3NpZ2luZm87CisgICBmcmFtZS0+YTNfdWNvbnRleHQgPSAoVUludCkgICZmcmFtZS0+ZmFrZV91Y29udGV4dDsKKwogICAgVkdfVFJBQ0soIHBvc3RfbWVtX3dyaXRlLCBWZ19Db3JlU2lnbmFsLCB0aWQsCiAgICAgICAgICAgICAgKEFkZHIpZnJhbWUsIDQqc2l6ZW9mKFVJbnQpICk7CiAgICBWR19UUkFDSyggcG9zdF9tZW1fd3JpdGUsIFZnX0NvcmVTaWduYWwsIHRpZCwKQEAgLTE2NCw3ICsyMDksNyBAQAogCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAic2lnZnJhbWVfY3JlYXRlICh0aHJlYWQgJWQpOiAiCisgICAgICAgICAgICAgICAgICAgInNpZ2ZyYW1lX2NyZWF0ZSAodGhyZWFkICV1KTogIgogICAgICAgICAgICAgICAgICAgICJuZXh0IEVJUD0lI2x4LCBuZXh0IEVTUD0lI2x4XG4iLAogICAgICAgICAgICAgICAgICAgIHRpZCwgKEFkZHIpaGFuZGxlciwgKEFkZHIpZnJhbWUgKTsKIH0KQEAgLTE5MSwyMyArMjM2LDIzIEBACiAgICBmcmFtZSA9IChzdHJ1Y3QgaGFja3lfc2lnZnJhbWUqKShlc3AgLSA0KTsKICAgIHZnX2Fzc2VydChmcmFtZS0+bWFnaWNQSSA9PSAweDMxNDE1OTI3KTsKIAotICAgLyogVGhpcyArOCBpcyBiZWNhdXNlIG9mIHRoZSAtNCByZWZlcnJlZCB0byBpbiB0aGUgRUxGIEFCSSBjb21tZW50CisgICAvKiBUaGlzICs0IGlzIGJlY2F1c2Ugb2YgdGhlIC00IHJlZmVycmVkIHRvIGluIHRoZSBFTEYgQUJJIGNvbW1lbnQKICAgICAgIGluIFZHXyhzaWdmcmFtZV9jcmVhdGUpIGp1c3QgYWJvdmUuICovCiAgICB2Z19hc3NlcnQoVkdfSVNfMTZfQUxJR05FRCgoQWRkcilmcmFtZSArIDQpKTsKIAotICAgLyogcmVzdG9yZSB0aGUgZW50aXJlIGd1ZXN0IHN0YXRlLCBhbmQgc2hhZG93cywgZnJvbSB0aGUKLSAgICAgIGZyYW1lLiAgTm90ZSwgYXMgcGVyIGNvbW1lbnRzIGFib3ZlLCB0aGlzIGlzIGEga2x1ZGdlIC0gc2hvdWxkCi0gICAgICByZXN0b3JlIGl0IGZyb20gc2F2ZWQgdWNvbnRleHQuICBPaCB3ZWxsLiAqLwotICAgdHN0LT5hcmNoLnZleCA9IGZyYW1lLT5nc3Q7Ci0gICB0c3QtPmFyY2gudmV4X3NoYWRvdzEgPSBmcmFtZS0+Z3NoYWRvdzE7Ci0gICB0c3QtPmFyY2gudmV4X3NoYWRvdzIgPSBmcmFtZS0+Z3NoYWRvdzI7Ci0gICB0c3QtPnNpZ19tYXNrID0gZnJhbWUtPm1hc2s7Ci0gICB0c3QtPnRtcF9zaWdfbWFzayA9IGZyYW1lLT5tYXNrOwotICAgc2lnTm8gPSBmcmFtZS0+c2lnTm9fcHJpdmF0ZTsKKyAgIC8qIHJlc3RvcmUgdGhlIGVudGlyZSBndWVzdCBzdGF0ZSwgYW5kIHNoYWRvd3MsIGZyb20gdGhlIGZyYW1lLiAqLworICAgdHN0LT5hcmNoLnZleCAgICAgICAgICAgID0gZnJhbWUtPnZleDsKKyAgIHRzdC0+YXJjaC52ZXhfc2hhZG93MSAgICA9IGZyYW1lLT52ZXhfc2hhZG93MTsKKyAgIHRzdC0+YXJjaC52ZXhfc2hhZG93MiAgICA9IGZyYW1lLT52ZXhfc2hhZG93MjsKKyAgIHJlc3RvcmVfZnJvbV91Y29udGV4dCh0c3QsICZmcmFtZS0+ZmFrZV91Y29udGV4dCk7CisKKyAgIHRzdC0+c2lnX21hc2sgICAgICAgICAgICA9IGZyYW1lLT5tYXNrOworICAgdHN0LT50bXBfc2lnX21hc2sgICAgICAgID0gZnJhbWUtPm1hc2s7CisgICBzaWdObyAgICAgICAgICAgICAgICAgICAgPSBmcmFtZS0+c2lnTm9fcHJpdmF0ZTsKIAogICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgICAgInNpZ2ZyYW1lX2Rlc3Ryb3kgKHRocmVhZCAlZCk6ICIKKyAgICAgICAgICAgICAgICAgICAic2lnZnJhbWVfZGVzdHJveSAodGhyZWFkICV1KTogIgogICAgICAgICAgICAgICAgICAgICJ2YWxpZCBtYWdpYzsgbmV4dCBFSVA9JSN4XG4iLAogICAgICAgICAgICAgICAgICAgIHRpZCwgdHN0LT5hcmNoLnZleC5ndWVzdF9FSVApOwogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zaWdmcmFtZS9zaWdmcmFtZS14ODYtbGludXguYyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXg4Ni1saW51eC5jCmluZGV4IDNkYjIyNTEuLjNhNDZiZmQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXg4Ni1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3NpZ2ZyYW1lL3NpZ2ZyYW1lLXg4Ni1saW51eC5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTM1LDYgKzUzNSw3IEBACiAKIC8qIEVYUE9SVEVEICovCiB2b2lkIFZHXyhzaWdmcmFtZV9jcmVhdGUpKCBUaHJlYWRJZCB0aWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vbCBvbl9hbHRzdGFjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgZXNwX3RvcF9vZl9mcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICpzaWd1YywKQEAgLTU2Niw3ICs1NjcsNyBAQAogICAgaWYgKDApCiAgICAgICBWR18ocHJpbnRmKSgicHVzaGVkIHNpZ25hbCBmcmFtZTsgJSVFU1Agbm93ID0gJSNseCwgIgogICAgICAgICAgICAgICAgICAgIm5leHQgJSVFSVAgPSAlI3gsIHN0YXR1cz0lZFxuIiwKLQkJICBlc3AsIHRzdC0+YXJjaC52ZXguZ3Vlc3RfRUlQLCB0c3QtPnN0YXR1cyk7CisJCSAgZXNwLCB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VJUCwgKEludCl0c3QtPnN0YXR1cyk7CiB9CiAKIApAQCAtNTgyLDcgKzU4Myw3IEBACiB7CiAgICBpZiAoZnJhbWUtPm1hZ2ljUEkgIT0gMHgzMTQxNTkyNyB8fAogICAgICAgIGZyYW1lLT5tYWdpY0UgICE9IDB4MjcxODI4MTgpIHsKLSAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiVGhyZWFkICVkIHJldHVybiBzaWduYWwgZnJhbWUgIgorICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJUaHJlYWQgJXUgcmV0dXJuIHNpZ25hbCBmcmFtZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvcnJ1cHRlZC4gIEtpbGxpbmcgcHJvY2Vzcy5cbiIsCiAJCSAgIHRzdC0+dGlkKTsKICAgICAgIFZHXyhzZXRfZGVmYXVsdF9oYW5kbGVyKShWS0lfU0lHU0VHVik7CkBAIC02NzIsNyArNjczLDcgQEAKICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQogICAgICAgVkdfKG1lc3NhZ2UpKAogICAgICAgICAgVmdfRGVidWdNc2csIAotICAgICAgICAgIlZHXyhzaWduYWxfcmV0dXJuKSAodGhyZWFkICVkKTogaXNSVD0lZCB2YWxpZCBtYWdpYzsgRUlQPSUjeFxuIiwKKyAgICAgICAgICJWR18oc2lnbmFsX3JldHVybikgKHRocmVhZCAldSk6IGlzUlQ9JWQgdmFsaWQgbWFnaWM7IEVJUD0lI3hcbiIsCiAgICAgICAgICB0aWQsIGlzUlQsIHRzdC0+YXJjaC52ZXguZ3Vlc3RfRUlQKTsKIAogICAgLyogdGVsbCB0aGUgdG9vbHMgKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3NpZ25hbHMuYyBiL2NvcmVncmluZC9tX3NpZ25hbHMuYwppbmRleCA3OGUyYTZkLi5kYjc1NmNiIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zaWduYWxzLmMKKysrIGIvY29yZWdyaW5kL21fc2lnbmFscy5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE2MCw3ICsxNjAsNyBAQAogICAgU28gd2hhdCB3ZSBoYXZlIHRvIGRvLCB3aGVuIGRvaW5nIGFueSBzeXNjYWxsIHdoaWNoIFNmTWF5QmxvY2ssIGlzIHRvCiAgICBxdWlja2x5IHN3aXRjaCBpbiB0aGUgU0NTUy1zcGVjaWZpZWQgc2lnbmFsIG1hc2sganVzdCBiZWZvcmUgdGhlCiAgICBzeXNjYWxsLCBhbmQgc3dpdGNoIGl0IGJhY2sganVzdCBhZnRlcndhcmRzLCBhbmQgaG9wZSB0aGF0IHdlIGRvbid0Ci0gICBnZXQgY2F1Z2h0IHVwIGluIHNvbWUgd2llcmQgcmFjZSBjb25kaXRpb24uICBUaGlzIGlzIHRoZSBwcmltYXJ5CisgICBnZXQgY2F1Z2h0IHVwIGluIHNvbWUgd2VpcmQgcmFjZSBjb25kaXRpb24uICBUaGlzIGlzIHRoZSBwcmltYXJ5CiAgICBwdXJwb3NlIG9mIHRoZSB1bHRyYS1tYWdpY2FsIHBpZWNlcyBvZiBhc3NlbWJseSBjb2RlIGluCiAgICBjb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtPHBsYXQ+LlMKIApAQCAtMjA3LDcgKzIwNyw2IEBACiAjaW5jbHVkZSAicHViX2NvcmVfeGFycmF5LmgiCiAjaW5jbHVkZSAicHViX2NvcmVfY2xpZW50c3RhdGUuaCIKICNpbmNsdWRlICJwdWJfY29yZV9hc3BhY2VtZ3IuaCIKLSNpbmNsdWRlICJwdWJfY29yZV9kZWJ1Z2dlci5oIiAgICAgIC8vIEZvciBWR18oc3RhcnRfZGVidWdnZXIpCiAjaW5jbHVkZSAicHViX2NvcmVfZXJyb3JtZ3IuaCIKICNpbmNsdWRlICJwdWJfY29yZV9nZGJzZXJ2ZXIuaCIKICNpbmNsdWRlICJwdWJfY29yZV9saWJjYmFzZS5oIgpAQCAtNTY2LDYgKzU2NSw3IEBACiAgICAgICAgIChzclApLT5taXNjLk1JUFM2NC5yMzEgPSAodWMpLT51Y19tY29udGV4dC5zY19yZWdzWzMxXTsgXAogICAgICAgICAoc3JQKS0+bWlzYy5NSVBTNjQucjI4ID0gKHVjKS0+dWNfbWNvbnRleHQuc2NfcmVnc1syOF07IFwKICAgICAgIH0KKwogI2VsaWYgZGVmaW5lZChWR1BfdGlsZWd4X2xpbnV4KQogIyAgZGVmaW5lIFZHX1VDT05URVhUX0lOU1RSX1BUUih1YykgICAgICAgKCh1YyktPnVjX21jb250ZXh0LnBjKQogIyAgZGVmaW5lIFZHX1VDT05URVhUX1NUQUNLX1BUUih1YykgICAgICAgKCh1YyktPnVjX21jb250ZXh0LnNwKQpAQCAtNTgwLDYgKzU4MCwzNCBAQAogICAgICAgICAoc3JQKS0+bWlzYy5USUxFR1gucjUyID0gKHVjKS0+dWNfbWNvbnRleHQuZ3JlZ3NbNTJdOyAgXAogICAgICAgICAoc3JQKS0+bWlzYy5USUxFR1gucjU1ID0gKHVjKS0+dWNfbWNvbnRleHQubHI7ICAgICAgICAgXAogICAgICAgfQorCisjZWxpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyMgIGRlZmluZSBWR19VQ09OVEVYVF9JTlNUUl9QVFIodWMpICAgICAgICgoQWRkcikodWMpLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUlQXSkKKyMgIGRlZmluZSBWR19VQ09OVEVYVF9TVEFDS19QVFIodWMpICAgICAgICgoQWRkcikodWMpLT51Y19tY29udGV4dC5ncmVnc1tWS0lfVUVTUF0pCisjICBkZWZpbmUgVkdfVUNPTlRFWFRfU1lTQ0FMTF9TWVNSRVModWMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIFZHXyhta19TeXNSZXNfeDg2X3NvbGFyaXMpKCh1YyktPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FRkxdICYgMSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVjKS0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VBWF0sICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWMpLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUZMXSAmIDEgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMCA6ICh1YyktPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FRFhdKQorIyAgZGVmaW5lIFZHX1VDT05URVhUX1RPX1Vud2luZFN0YXJ0UmVncyhzclAsIHVjKSAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB7IChzclApLT5yX3BjID0gKFVMb25nKSh1YyktPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FSVBdOyAgICAgICAgIFwKKyAgICAgICAgKHNyUCktPnJfc3AgPSAoVUxvbmcpKHVjKS0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1VFU1BdOyAgICAgICAgXAorICAgICAgICAoc3JQKS0+bWlzYy5YODYucl9lYnAgPSAodWMpLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUJQXTsgICAgICBcCisgICAgICB9CisKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisjICBkZWZpbmUgVkdfVUNPTlRFWFRfSU5TVFJfUFRSKHVjKSAgICAgICAoKEFkZHIpKHVjKS0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SSVBdKQorIyAgZGVmaW5lIFZHX1VDT05URVhUX1NUQUNLX1BUUih1YykgICAgICAgKChBZGRyKSh1YyktPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUlNQXSkKKyMgIGRlZmluZSBWR19VQ09OVEVYVF9TWVNDQUxMX1NZU1JFUyh1YykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgVkdfKG1rX1N5c1Jlc19hbWQ2NF9zb2xhcmlzKSgodWMpLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JGTF0gJiAxLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1YyktPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkFYXSwgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVjKS0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SRkxdICYgMSAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDAgOiAodWMpLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JEWF0pCisjICBkZWZpbmUgVkdfVUNPTlRFWFRfVE9fVW53aW5kU3RhcnRSZWdzKHNyUCwgdWMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHsgKHNyUCktPnJfcGMgPSAodWMpLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JJUF07ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoc3JQKS0+cl9zcCA9ICh1YyktPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUlNQXTsgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChzclApLT5taXNjLkFNRDY0LnJfcmJwID0gKHVjKS0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SQlBdOyAgICAgIFwKKyAgICAgIH0KICNlbHNlCiAjICBlcnJvciBVbmtub3duIHBsYXRmb3JtCiAjZW5kaWYKQEAgLTU5Miw3ICs2MjAsNyBAQAogI2lmIGRlZmluZWQoVkdPX2xpbnV4KQogIyAgZGVmaW5lIFZLSV9TSUdJTkZPX3NpX2FkZHIgIF9zaWZpZWxkcy5fc2lnZmF1bHQuX2FkZHIKICMgIGRlZmluZSBWS0lfU0lHSU5GT19zaV9waWQgICBfc2lmaWVsZHMuX2tpbGwuX3BpZAotI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQorI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogIyAgZGVmaW5lIFZLSV9TSUdJTkZPX3NpX2FkZHIgIHNpX2FkZHIKICMgIGRlZmluZSBWS0lfU0lHSU5GT19zaV9waWQgICBzaV9waWQKICNlbHNlCkBAIC02NjcsNiArNjk1LDcgQEAKICAgICAgU0FfTk9DTERTVE9QIC0tIHBhc3NlZCB0byBrZXJuZWwKICAgICAgU0FfT05FU0hPVCBvciBTQV9SRVNFVEhBTkQgLS0gcGFzcyB0aHJvdWdoCiAgICAgIFNBX1JFU1RBUlQgLS0gd2Ugb2JzZXJ2ZSB0aGlzIGJ1dCBzZXQgb3VyIGhhbmRsZXJzIHRvIGFsd2F5cyByZXN0YXJ0CisgICAgICAgICAgICAgICAgICAgKHRoaXMgZG9lc24ndCBhcHBseSB0byB0aGUgU29sYXJpcyBwb3J0KQogICAgICBTQV9OT01BU0sgb3IgU0FfTk9ERUZFUiAtLSB3ZSBvYnNlcnZlIHRoaXMsIGJ1dCBvdXIgaGFuZGxlcnMgYmxvY2sgZXZlcnl0aGluZwogICAgICBTQV9PTlNUQUNLIC0tIHBhc3MgdGhyb3VnaAogICAgICBTQV9OT0NMRFdBSVQgLS0gcGFzcyB0aHJvdWdoCkBAIC03OTYsMTIgKzgyNSwyMCBAQAogCiAgICAgICAvKiBTQV9PTkVTSE9UOiBpZ25vcmUgY2xpZW50IHNldHRpbmcgKi8KICAgICAgIAorIyAgICAgaWYgIWRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICAgICAvKiBTQV9SRVNUQVJUOiBpZ25vcmUgY2xpZW50IHNldHRpbmcgYW5kIGFsd2F5cyBzZXQgaXQgZm9yIHVzLgogCSBUaG91Z2ggd2UgbmV2ZXIgcmVseSBvbiB0aGUga2VybmVsIHRvIHJlc3RhcnQgYQogCSBzeXNjYWxsLCB3ZSBvYnNlcnZlIHdoZXRoZXIgaXQgd2FudGVkIHRvIHJlc3RhcnQgdGhlIHN5c2NhbGwKIAkgb3Igbm90LCB3aGljaCBpcyBuZWVkZWQgYnkgCiAgICAgICAgICBWR18oZml4dXBfZ3Vlc3Rfc3RhdGVfYWZ0ZXJfc3lzY2FsbF9pbnRlcnJ1cHRlZCkgKi8KICAgICAgIHNrc3NfZmxhZ3MgfD0gVktJX1NBX1JFU1RBUlQ7CisjZWxzZQorICAgICAgLyogVGhlIGFib3ZlIGRvZXMgbm90IGFwcGx5IHRvIHRoZSBTb2xhcmlzIHBvcnQsIHdoZXJlIHRoZSBrZXJuZWwgZG9lcworICAgICAgICAgbm90IGRpcmVjdGx5IHJlc3RhcnQgc3lzY2FsbHMsIGJ1dCBpbnN0ZWFkIGl0IGNoZWNrcyBTQV9SRVNUQVJUIGZsYWcKKyAgICAgICAgIGFuZCBpZiBpdCBpcyBzZXQgdGhlbiBpdCByZXR1cm5zIEVSRVNUQVJUIHRvIGxpYmMgYW5kIHRoZSBsaWJyYXJ5CisgICAgICAgICBhY3R1YWxseSByZXN0YXJ0cyB0aGUgc3lzY2FsbC4gKi8KKyAgICAgIHNrc3NfZmxhZ3MgfD0gc2Nzc19mbGFncyAmIFZLSV9TQV9SRVNUQVJUOworIyAgICAgZW5kaWYKIAogICAgICAgLyogU0FfTk9NQVNLOiBpZ25vcmUgaXQgKi8KIApAQCAtOTIyLDE2ICs5NTksMTYgQEAKICAgICIudGV4dFxuIiBcCiAgICAiLmdsb2JsIG15X3NpZ3JldHVyblxuIiBcCiAgICAibXlfc2lncmV0dXJuOlxuIiBcCi0gICAibW92bCAkIiBWR19TVFJJTkdJRlkoX19OUl9EQVJXSU5fRkFLRV9TSUdSRVRVUk4pICIsJWVheFxuIiBcCi0gICAiaW50ICQweDgwIgorICAgIiAgICBtb3ZsICQiIFZHX1NUUklOR0lGWShfX05SX0RBUldJTl9GQUtFX1NJR1JFVFVSTikgIiwlZWF4XG4iIFwKKyAgICIgICAgaW50ICQweDgwXG4iCiAKICNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikKLSAgIC8vIERERDogdG9kbwogIyAgZGVmaW5lIF9NWV9TSUdSRVRVUk4obmFtZSkgXAogICAgIi50ZXh0XG4iIFwKICAgICIuZ2xvYmwgbXlfc2lncmV0dXJuXG4iIFwKICAgICJteV9zaWdyZXR1cm46XG4iIFwKLSAgICJ1ZDJcbiIKKyAgICIgICAgbW92cSAkIiBWR19TVFJJTkdJRlkoX19OUl9EQVJXSU5fRkFLRV9TSUdSRVRVUk4pICIsJXJheFxuIiBcCisgICAiICAgIHN5c2NhbGxcbiIKIAogI2VsaWYgZGVmaW5lZChWR1BfczM5MHhfbGludXgpCiAjICBkZWZpbmUgX01ZX1NJR1JFVFVSTihuYW1lKSBcCkBAIC05NjUsNiArMTAwMiwxNSBAQAogICAgIiBzd2ludDFcbiIgXAogICAgIi5wcmV2aW91c1xuIgogCisjZWxpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykgfHwgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKy8qIE5vdCB1c2VkIG9uIFNvbGFyaXMuICovCisjICBkZWZpbmUgX01ZX1NJR1JFVFVSTihuYW1lKSBcCisgICAiLnRleHRcbiIgXAorICAgIi5nbG9ibCBteV9zaWdyZXR1cm5cbiIgXAorICAgIm15X3NpZ3JldHVybjpcbiIgXAorICAgInVkMlxuIiBcCisgICAiLnByZXZpb3VzXG4iCisKICNlbHNlCiAjICBlcnJvciBVbmtub3duIHBsYXRmb3JtCiAjZW5kaWYKQEAgLTEwMDgsNyArMTA1NCw3IEBACiAgICAgICBrc2Euc2FfZmxhZ3MgICAgPSBza3NzLnNrc3NfcGVyX3NpZ1tzaWddLnNrc3NfZmxhZ3M7CiAjICAgICBpZiAhZGVmaW5lZChWR1BfcHBjMzJfbGludXgpICYmIFwKICAgICAgICAgICFkZWZpbmVkKFZHUF94ODZfZGFyd2luKSAmJiAhZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKSAmJiBcCi0gICAgICAgICAhZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KQorICAgICAgICAgIWRlZmluZWQoVkdQX21pcHMzMl9saW51eCkgJiYgIWRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICAgICBrc2Euc2FfcmVzdG9yZXIgPSBteV9zaWdyZXR1cm47CiAjICAgICBlbmRpZgogICAgICAgLyogUmUgYWJvdmUgaWZkZWYgKGFsc28gdGhlIGFzc2VydGlvbiBiZWxvdyksIFBhdWxNIHNheXM6CkBAIC0xMDM4LDExICsxMDg0LDI0IEBACiAgICAgICBpZiAoIWZvcmNlX3VwZGF0ZSkgewogICAgICAgICAgdmdfYXNzZXJ0KGtzYV9vbGQua3NhX2hhbmRsZXIgCiAgICAgICAgICAgICAgICAgICAgPT0gc2tzc19vbGQuc2tzc19wZXJfc2lnW3NpZ10uc2tzc19oYW5kbGVyKTsKKyMgICAgICAgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAgICBpZiAoa3NhX29sZC5rc2FfaGFuZGxlciA9PSBWS0lfU0lHX0RGTAorICAgICAgICAgICAgICAgfHwga3NhX29sZC5rc2FfaGFuZGxlciA9PSBWS0lfU0lHX0lHTikgeworICAgICAgICAgICAgLyogVGhlIFNvbGFyaXMga2VybmVsIGlnbm9yZXMgc2lnbmFsIGZsYWdzIChleGNlcHQgU0FfTk9DTERXQUlUCisgICAgICAgICAgICAgICBhbmQgU0FfTk9DTERTVE9QKSBhbmQgYSBzaWduYWwgbWFzayBpZiBhIGhhbmRsZXIgaXMgc2V0IHRvCisgICAgICAgICAgICAgICBTSUdfREZMIG9yIFNJR19JR04uICovCisgICAgICAgICAgICBza3NzX29sZC5za3NzX3Blcl9zaWdbc2lnXS5za3NzX2ZsYWdzCisgICAgICAgICAgICAgICAmPSAoVktJX1NBX05PQ0xEV0FJVCB8IFZLSV9TQV9OT0NMRFNUT1ApOworICAgICAgICAgICAgdmdfYXNzZXJ0KFZHXyhpc2VtcHR5c2lnc2V0KSggJmtzYV9vbGQuc2FfbWFzayApKTsKKyAgICAgICAgICAgIFZHXyhzaWdmaWxsc2V0KSggJmtzYV9vbGQuc2FfbWFzayApOworICAgICAgICAgfQorIyAgICAgICAgZW5kaWYKICAgICAgICAgIHZnX2Fzc2VydChrc2Ffb2xkLnNhX2ZsYWdzIAogICAgICAgICAgICAgICAgICAgID09IHNrc3Nfb2xkLnNrc3NfcGVyX3NpZ1tzaWddLnNrc3NfZmxhZ3MpOwogIyAgICAgICAgaWYgIWRlZmluZWQoVkdQX3BwYzMyX2xpbnV4KSAmJiBcCiAgICAgICAgICAgICAhZGVmaW5lZChWR1BfeDg2X2RhcndpbikgJiYgIWRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikgJiYgXAotICAgICAgICAgICAgIWRlZmluZWQoVkdQX21pcHMzMl9saW51eCkgJiYgIWRlZmluZWQoVkdQX21pcHM2NF9saW51eCkKKyAgICAgICAgICAgICFkZWZpbmVkKFZHUF9taXBzMzJfbGludXgpICYmICFkZWZpbmVkKFZHUF9taXBzNjRfbGludXgpICYmIFwKKyAgICAgICAgICAgICFkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgICAgICAgdmdfYXNzZXJ0KGtzYV9vbGQuc2FfcmVzdG9yZXIgPT0gbXlfc2lncmV0dXJuKTsKICMgICAgICAgIGVuZGlmCiAgICAgICAgICBWR18oc2lnYWRkc2V0KSggJmtzYV9vbGQuc2FfbWFzaywgVktJX1NJR0tJTEwgKTsKQEAgLTEwODYsNyArMTE0NSw3IEBACiAgICBtX1NQICA9IFZHXyhnZXRfU1ApKHRpZCk7CiAKICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQotICAgICAgVkdfKGRtc2cpKCJzeXNfc2lnYWx0c3RhY2s6IHRpZCAlZCwgIgorICAgICAgVkdfKGRtc2cpKCJzeXNfc2lnYWx0c3RhY2s6IHRpZCAldSwgIgogICAgICAgICAgICAgICAgICJzcyAlcHslcCxzej0lbGx1LGZsYWdzPTB4JWxseH0sIG9zcyAlcCAoY3VycmVudCBTUCAlcClcbiIsCiAgICAgICAgICAgICAgICAgdGlkLCAodm9pZCopc3MsIAogICAgICAgICAgICAgICAgIHNzID8gc3MtPnNzX3NwIDogMCwKQEAgLTExNjIsNyArMTIyMSw4IEBACiAgICAgICBvbGRfYWN0LT5rc2FfaGFuZGxlciA9IHNjc3Muc2Nzc19wZXJfc2lnW3NpZ25vXS5zY3NzX2hhbmRsZXI7CiAgICAgICBvbGRfYWN0LT5zYV9mbGFncyAgICA9IHNjc3Muc2Nzc19wZXJfc2lnW3NpZ25vXS5zY3NzX2ZsYWdzOwogICAgICAgb2xkX2FjdC0+c2FfbWFzayAgICAgPSBzY3NzLnNjc3NfcGVyX3NpZ1tzaWdub10uc2Nzc19tYXNrOwotIyAgICAgaWYgIWRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pICYmICFkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCisjICAgICBpZiAhZGVmaW5lZChWR1BfeDg2X2RhcndpbikgJiYgIWRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikgJiYgXAorICAgICAgICAgIWRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICAgICBvbGRfYWN0LT5zYV9yZXN0b3JlciA9IHNjc3Muc2Nzc19wZXJfc2lnW3NpZ25vXS5zY3NzX3Jlc3RvcmVyOwogIyAgICAgZW5kaWYKICAgIH0KQEAgLTExNzQsNyArMTIzNCw4IEBACiAgICAgICBzY3NzLnNjc3NfcGVyX3NpZ1tzaWdub10uc2Nzc19tYXNrICAgICA9IG5ld19hY3QtPnNhX21hc2s7CiAKICAgICAgIHNjc3Muc2Nzc19wZXJfc2lnW3NpZ25vXS5zY3NzX3Jlc3RvcmVyID0gTlVMTDsKLSMgICAgIGlmICFkZWZpbmVkKFZHUF94ODZfZGFyd2luKSAmJiAhZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKQorIyAgICAgaWYgIWRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pICYmICFkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pICYmIFwKKyAgICAgICAgICFkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgICAgc2Nzcy5zY3NzX3Blcl9zaWdbc2lnbm9dLnNjc3NfcmVzdG9yZXIgPSBuZXdfYWN0LT5zYV9yZXN0b3JlcjsKICMgICAgIGVuZGlmCiAKQEAgLTEyNzgsNyArMTMzOSw3IEBACiAJCSAgdmtpX3NpZ3NldF90KiBvbGRzZXQgKQogewogICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCi0gICAgICBWR18oZG1zZykoImRvX3NldG1hc2s6IHRpZCA9ICVkIGhvdyA9ICVkICglcyksIG5ld3NldCA9ICVwICglcylcbiIsIAorICAgICAgVkdfKGRtc2cpKCJkb19zZXRtYXNrOiB0aWQgPSAldSBob3cgPSAlZCAoJXMpLCBuZXdzZXQgPSAlcCAoJXMpXG4iLCAKICAgICAgICAgICAgICAgICB0aWQsIGhvdywKICAgICAgICAgICAgICAgICBob3c9PVZLSV9TSUdfQkxPQ0sgPyAiU0lHX0JMT0NLIiA6ICgKICAgICAgICAgICAgICAgICAgICBob3c9PVZLSV9TSUdfVU5CTE9DSyA/ICJTSUdfVU5CTE9DSyIgOiAoCkBAIC0xMzY5LDYgKzE0MzAsNyBAQAogdm9pZCBwdXNoX3NpZ25hbF9mcmFtZSAoIFRocmVhZElkIHRpZCwgY29uc3QgdmtpX3NpZ2luZm9fdCAqc2lnaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2a2lfdWNvbnRleHQgKnVjICkKIHsKKyAgIEJvb2wgICAgICAgICBvbl9hbHRzdGFjazsKICAgIEFkZHIgICAgICAgICBlc3BfdG9wX29mX2ZyYW1lOwogICAgVGhyZWFkU3RhdGUqIHRzdDsKICAgIEludAkJc2lnTm8gPSBzaWdpbmZvLT5zaV9zaWdubzsKQEAgLTEzNzgsNyArMTQ0MCw3IEBACiAgICB0c3QgPSAmIFZHXyh0aHJlYWRzKVt0aWRdOwogCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkgewotICAgICAgVkdfKGRtc2cpKCJwdXNoX3NpZ25hbF9mcmFtZSAodGhyZWFkICVkKTogc2lnbmFsICVkXG4iLCB0aWQsIHNpZ05vKTsKKyAgICAgIFZHXyhkbXNnKSgicHVzaF9zaWduYWxfZnJhbWUgKHRocmVhZCAldSk6IHNpZ25hbCAlZFxuIiwgdGlkLCBzaWdObyk7CiAgICAgICBWR18oZ2V0X2FuZF9wcF9TdGFja1RyYWNlKSh0aWQsIDEwKTsKICAgIH0KIApAQCAtMTM4OSwzMiArMTQ1MSwzMCBAQAogICAgICAgICAgICAgIGFyY2gvaTM4Ni9rZXJuZWwvc2lnbmFsLmMuICovCiAgICAgICAgICAgc2FzX3NzX2ZsYWdzKHRpZCwgVkdfKGdldF9TUCkodGlkKSkgPT0gMAogICAgICAgKSB7CisgICAgICBvbl9hbHRzdGFjayA9IFRydWU7CiAgICAgICBlc3BfdG9wX29mX2ZyYW1lIAogICAgICAgICAgPSAoQWRkcikodHN0LT5hbHRzdGFjay5zc19zcCkgKyB0c3QtPmFsdHN0YWNrLnNzX3NpemU7CiAgICAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKLSAgICAgICAgIFZHXyhkbXNnKSgiZGVsaXZlcmluZyBzaWduYWwgJWQgKCVzKSB0byB0aHJlYWQgJWQ6ICIKKyAgICAgICAgIFZHXyhkbXNnKSgiZGVsaXZlcmluZyBzaWduYWwgJWQgKCVzKSB0byB0aHJlYWQgJXU6ICIKICAgICAgICAgICAgICAgICAgICAib24gQUxUIFNUQUNLICglcC0lcDsgJWxkIGJ5dGVzKVxuIiwKICAgICAgICAgICAgICAgICAgICBzaWdObywgVkdfKHNpZ25hbWUpKHNpZ05vKSwgdGlkLCB0c3QtPmFsdHN0YWNrLnNzX3NwLAogICAgICAgICAgICAgICAgICAgIChVQ2hhciAqKXRzdC0+YWx0c3RhY2suc3Nfc3AgKyB0c3QtPmFsdHN0YWNrLnNzX3NpemUsCiAgICAgICAgICAgICAgICAgICAgKFdvcmQpdHN0LT5hbHRzdGFjay5zc19zaXplICk7Ci0KLSAgICAgIC8qIFNpZ25hbCBkZWxpdmVyeSB0byB0b29scyAqLwotICAgICAgVkdfVFJBQ0soIHByZV9kZWxpdmVyX3NpZ25hbCwgdGlkLCBzaWdObywgLyphbHRfc3RhY2sqL1RydWUgKTsKLSAgICAgIAogICAgfSBlbHNlIHsKKyAgICAgIG9uX2FsdHN0YWNrID0gRmFsc2U7CiAgICAgICBlc3BfdG9wX29mX2ZyYW1lID0gVkdfKGdldF9TUCkodGlkKSAtIFZHX1NUQUNLX1JFRFpPTkVfU1pCOwotCi0gICAgICAvKiBTaWduYWwgZGVsaXZlcnkgdG8gdG9vbHMgKi8KLSAgICAgIFZHX1RSQUNLKCBwcmVfZGVsaXZlcl9zaWduYWwsIHRpZCwgc2lnTm8sIC8qYWx0X3N0YWNrKi9GYWxzZSApOwogICAgfQogCisgICAvKiBTaWduYWwgZGVsaXZlcnkgdG8gdG9vbHMgKi8KKyAgIFZHX1RSQUNLKCBwcmVfZGVsaXZlcl9zaWduYWwsIHRpZCwgc2lnTm8sIG9uX2FsdHN0YWNrICk7CisKICAgIHZnX2Fzc2VydChzY3NzLnNjc3NfcGVyX3NpZ1tzaWdOb10uc2Nzc19oYW5kbGVyICE9IFZLSV9TSUdfSUdOKTsKICAgIHZnX2Fzc2VydChzY3NzLnNjc3NfcGVyX3NpZ1tzaWdOb10uc2Nzc19oYW5kbGVyICE9IFZLSV9TSUdfREZMKTsKIAogICAgLyogVGhpcyBtYXkgZmFpbCBpZiB0aGUgY2xpZW50IHN0YWNrIGlzIGJ1c3RlZDsgaWYgdGhhdCBoYXBwZW5zLAogICAgICAgdGhlIHdob2xlIHByb2Nlc3Mgd2lsbCBleGl0IHJhdGhlciB0aGFuIHNpbXBseSBjYWxsaW5nIHRoZQogICAgICAgc2lnbmFsIGhhbmRsZXIuICovCi0gICBWR18oc2lnZnJhbWVfY3JlYXRlKSAodGlkLCBlc3BfdG9wX29mX2ZyYW1lLCBzaWdpbmZvLCB1YywKKyAgIFZHXyhzaWdmcmFtZV9jcmVhdGUpICh0aWQsIG9uX2FsdHN0YWNrLCBlc3BfdG9wX29mX2ZyYW1lLCBzaWdpbmZvLCB1YywKICAgICAgICAgICAgICAgICAgICAgICAgICBzY3NzLnNjc3NfcGVyX3NpZ1tzaWdOb10uc2Nzc19oYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNjc3Muc2Nzc19wZXJfc2lnW3NpZ05vXS5zY3NzX2ZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICZ0c3QtPnNpZ19tYXNrLApAQCAtMTQzOSw2ICsxNDk5LDcgQEAKICAgICAgIGNhc2UgVktJX1NJR1VTUjE6ICAgcmV0dXJuICJTSUdVU1IxIjsKICAgICAgIGNhc2UgVktJX1NJR1VTUjI6ICAgcmV0dXJuICJTSUdVU1IyIjsKICAgICAgIGNhc2UgVktJX1NJR1NFR1Y6ICAgcmV0dXJuICJTSUdTRUdWIjsKKyAgICAgIGNhc2UgVktJX1NJR1NZUzogICAgcmV0dXJuICJTSUdTWVMiOwogICAgICAgY2FzZSBWS0lfU0lHUElQRTogICByZXR1cm4gIlNJR1BJUEUiOwogICAgICAgY2FzZSBWS0lfU0lHQUxSTTogICByZXR1cm4gIlNJR0FMUk0iOwogICAgICAgY2FzZSBWS0lfU0lHVEVSTTogICByZXR1cm4gIlNJR1RFUk0iOwpAQCAtMTQ2MSwxMCArMTUyMiw0MiBAQAogIyAgICAgaWYgZGVmaW5lZChWS0lfU0lHUFdSKQogICAgICAgY2FzZSBWS0lfU0lHUFdSOiAgICByZXR1cm4gIlNJR1BXUiI7CiAjICAgICBlbmRpZgotIyAgICAgaWYgZGVmaW5lZChWS0lfU0lHVU5VU0VEKQorIyAgICAgaWYgZGVmaW5lZChWS0lfU0lHVU5VU0VEKSAmJiAoVktJX1NJR1VOVVNFRCAhPSBWS0lfU0lHU1lTKQogICAgICAgY2FzZSBWS0lfU0lHVU5VU0VEOiByZXR1cm4gIlNJR1VOVVNFRCI7CiAjICAgICBlbmRpZgogCisgICAgICAvKiBTb2xhcmlzLXNwZWNpZmljIHNpZ25hbHMuICovCisjICAgICBpZiBkZWZpbmVkKFZLSV9TSUdFTVQpCisgICAgICBjYXNlIFZLSV9TSUdFTVQ6ICAgIHJldHVybiAiU0lHRU1UIjsKKyMgICAgIGVuZGlmCisjICAgICBpZiBkZWZpbmVkKFZLSV9TSUdXQUlUSU5HKQorICAgICAgY2FzZSBWS0lfU0lHV0FJVElORzogcmV0dXJuICJTSUdXQUlUSU5HIjsKKyMgICAgIGVuZGlmCisjICAgICBpZiBkZWZpbmVkKFZLSV9TSUdMV1ApCisgICAgICBjYXNlIFZLSV9TSUdMV1A6ICAgIHJldHVybiAiU0lHTFdQIjsKKyMgICAgIGVuZGlmCisjICAgICBpZiBkZWZpbmVkKFZLSV9TSUdGUkVFWkUpCisgICAgICBjYXNlIFZLSV9TSUdGUkVFWkU6IHJldHVybiAiU0lHRlJFRVpFIjsKKyMgICAgIGVuZGlmCisjICAgICBpZiBkZWZpbmVkKFZLSV9TSUdUSEFXKQorICAgICAgY2FzZSBWS0lfU0lHVEhBVzogICByZXR1cm4gIlNJR1RIQVciOworIyAgICAgZW5kaWYKKyMgICAgIGlmIGRlZmluZWQoVktJX1NJR0NBTkNFTCkKKyAgICAgIGNhc2UgVktJX1NJR0NBTkNFTDogcmV0dXJuICJTSUdDQU5DRUwiOworIyAgICAgZW5kaWYKKyMgICAgIGlmIGRlZmluZWQoVktJX1NJR0xPU1QpCisgICAgICBjYXNlIFZLSV9TSUdMT1NUOiAgIHJldHVybiAiU0lHTE9TVCI7CisjICAgICBlbmRpZgorIyAgICAgaWYgZGVmaW5lZChWS0lfU0lHWFJFUykKKyAgICAgIGNhc2UgVktJX1NJR1hSRVM6ICAgcmV0dXJuICJTSUdYUkVTIjsKKyMgICAgIGVuZGlmCisjICAgICBpZiBkZWZpbmVkKFZLSV9TSUdKVk0xKQorICAgICAgY2FzZSBWS0lfU0lHSlZNMTogICByZXR1cm4gIlNJR0pWTTEiOworIyAgICAgZW5kaWYKKyMgICAgIGlmIGRlZmluZWQoVktJX1NJR0pWTTIpCisgICAgICBjYXNlIFZLSV9TSUdKVk0yOiAgIHJldHVybiAiU0lHSlZNMiI7CisjICAgICBlbmRpZgorCiAjICBpZiBkZWZpbmVkKFZLSV9TSUdSVE1JTikgJiYgZGVmaW5lZChWS0lfU0lHUlRNQVgpCiAgICBjYXNlIFZLSV9TSUdSVE1JTiAuLi4gVktJX1NJR1JUTUFYOgogICAgICAgVkdfKHNwcmludGYpKGJ1ZiwgIlNJR1JUJWQiLCBzaWdOby1WS0lfU0lHUlRNSU4pOwpAQCAtMTQ4Nyw3ICsxNTgwLDggQEAKIAogICAgc2Eua3NhX2hhbmRsZXIgPSBWS0lfU0lHX0RGTDsKICAgIHNhLnNhX2ZsYWdzID0gMDsKLSMgIGlmICFkZWZpbmVkKFZHUF94ODZfZGFyd2luKSAmJiAhZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKQorIyAgaWYgIWRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pICYmICFkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pICYmIFwKKyAgICAgICFkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgc2Euc2FfcmVzdG9yZXIgPSAwOwogIyAgZW5kaWYKICAgIFZHXyhzaWdlbXB0eXNldCkoJnNhLnNhX21hc2spOwpAQCAtMTQ5OSw3ICsxNTkzLDcgQEAKICAgIFZHXyhzaWdwcm9jbWFzaykoVktJX1NJR19VTkJMT0NLLCAmbWFzaywgJm9yaWdtYXNrKTsKIAogICAgciA9IFZHXyhraWxsKShWR18oZ2V0cGlkKSgpLCBzaWdObyk7Ci0jICBpZiBkZWZpbmVkKFZHT19saW51eCkKKyMgIGlmICFkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICAvKiBUaGlzIHNvbWV0aW1lcyBmYWlscyB3aXRoIEVQRVJNIG9uIERhcndpbi4gIEkgZG9uJ3Qga25vdyB3aHkuICovCiAgICB2Z19hc3NlcnQociA9PSAwKTsKICMgIGVuZGlmCkBAIC0xNTE3LDcgKzE2MTEsNyBAQAogLy8gcGFzcyBpbiBzb21lIG90aGVyIGRldGFpbHMgdGhhdCBjYW4gaGVscCB3aGVuIHNpX2NvZGUgaXMgdW5yZWxpYWJsZS4KIHN0YXRpYyBCb29sIGlzX3NpZ25hbF9mcm9tX2tlcm5lbChUaHJlYWRJZCB0aWQsIGludCBzaWdudW0sIGludCBzaV9jb2RlKQogewotIyAgaWYgZGVmaW5lZChWR09fbGludXgpCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKICAgIC8vIE9uIExpbnV4LCBTSV9VU0VSIGlzIHplcm8sIG5lZ2F0aXZlIHZhbHVlcyBhcmUgZnJvbSB0aGUgdXNlciwgcG9zaXRpdmUKICAgIC8vIHZhbHVlcyBhcmUgZnJvbSB0aGUga2VybmVsLiAgVGhlcmUgYXJlIFNJX0ZST01VU0VSIGFuZCBTSV9GUk9NS0VSTkVMCiAgICAvLyBtYWNyb3MgYnV0IHdlIGRvbid0IHVzZSB0aGVtIGhlcmUgYmVjYXVzZSBvdGhlciBwbGF0Zm9ybXMgZG9uJ3QgaGF2ZQpAQCAtMTU1OCwxMSArMTY1Miw2IEBACiAjICBlbmRpZgogfQogCi0vLyBUaGlzIGlzIGFuIGFyYml0cmFyeSBzaV9jb2RlIHRoYXQgd2Ugb25seSB1c2UgaW50ZXJuYWxseS4gIEl0IGNvcnJlc3BvbmRzCi0vLyB0byB0aGUgdmFsdWUgU0lfS0VSTkVMIG9uIExpbnV4LCBidXQgdGhhdCdzIG5vdCByZWFsbHkgb2YgYW55IHNpZ25pZmljYW5jZQotLy8gYXMgZmFyIGFzIEkgY2FuIGRldGVybWluZS4KLSNkZWZpbmUgVktJX1NFR1ZfTUFERV9VUF9HUEYgICAgMHg4MAotCiAvKiAKICAgIFBlcmZvcm0gdGhlIGRlZmF1bHQgYWN0aW9uIG9mIGEgc2lnbmFsLiAgSWYgdGhlIHNpZ25hbCBpcyBmYXRhbCwgaXQKICAgIG1hcmtzIGFsbCB0aHJlYWRzIGFzIG5lZWRpbmcgdG8gZXhpdCwgYnV0IGl0IGRvZXNuJ3QgYWN0dWFsbHkga2lsbApAQCAtMTU4OSw4ICsxNjc4LDE1IEBACiAgICAgICBjYXNlIFZLSV9TSUdTRUdWOgkvKiBjb3JlICovCiAgICAgICBjYXNlIFZLSV9TSUdCVVM6CS8qIGNvcmUgKi8KICAgICAgIGNhc2UgVktJX1NJR1RSQVA6CS8qIGNvcmUgKi8KKyAgICAgIGNhc2UgVktJX1NJR1NZUzoJLyogY29yZSAqLwogICAgICAgY2FzZSBWS0lfU0lHWENQVToJLyogY29yZSAqLwogICAgICAgY2FzZSBWS0lfU0lHWEZTWjoJLyogY29yZSAqLworCisgICAgICAvKiBTb2xhcmlzLXNwZWNpZmljIHNpZ25hbHMuICovCisjICAgICBpZiBkZWZpbmVkKFZLSV9TSUdFTVQpCisgICAgICBjYXNlIFZLSV9TSUdFTVQ6CS8qIGNvcmUgKi8KKyMgICAgIGVuZGlmCisKICAgICAgICAgIHRlcm1pbmF0ZSA9IFRydWU7CiAgICAgICAgICBjb3JlID0gVHJ1ZTsKICAgICAgICAgIGJyZWFrOwpAQCAtMTYwNywxMiArMTcwMywxNyBAQAogIyAgICAgaWYgZGVmaW5lZChWS0lfU0lHUFdSKQogICAgICAgY2FzZSBWS0lfU0lHUFdSOgkvKiB0ZXJtICovCiAjICAgICBlbmRpZgotICAgICAgY2FzZSBWS0lfU0lHU1lTOgkvKiB0ZXJtICovCiAgICAgICBjYXNlIFZLSV9TSUdQUk9GOgkvKiB0ZXJtICovCiAgICAgICBjYXNlIFZLSV9TSUdWVEFMUk06CS8qIHRlcm0gKi8KICMgICAgIGlmIGRlZmluZWQoVktJX1NJR1JUTUlOKSAmJiBkZWZpbmVkKFZLSV9TSUdSVE1BWCkKICAgICAgIGNhc2UgVktJX1NJR1JUTUlOIC4uLiBWS0lfU0lHUlRNQVg6IC8qIHRlcm0gKi8KICMgICAgIGVuZGlmCisKKyAgICAgIC8qIFNvbGFyaXMtc3BlY2lmaWMgc2lnbmFscy4gKi8KKyMgICAgIGlmIGRlZmluZWQoVktJX1NJR0xPU1QpCisgICAgICBjYXNlIFZLSV9TSUdMT1NUOgkvKiB0ZXJtICovCisjICAgICBlbmRpZgorCiAgICAgICAgICB0ZXJtaW5hdGUgPSBUcnVlOwogICAgICAgICAgYnJlYWs7CiAgICB9CkBAIC0xNzAyLDYgKzE4MDMsMTEgQEAKIAkgICAgY2FzZSBWS0lfRlBFX0ZMVFJFUzogZXZlbnQgPSAiRlAgaW5leGFjdCI7IGJyZWFrOwogCSAgICBjYXNlIFZLSV9GUEVfRkxUSU5WOiBldmVudCA9ICJGUCBpbnZhbGlkIG9wZXJhdGlvbiI7IGJyZWFrOwogCSAgICBjYXNlIFZLSV9GUEVfRkxUU1VCOiBldmVudCA9ICJGUCBzdWJzY3JpcHQgb3V0IG9mIHJhbmdlIjsgYnJlYWs7CisKKyAgICAgICAgICAgIC8qIFNvbGFyaXMtc3BlY2lmaWMgY29kZXMuICovCisjICAgICAgICAgICBpZiBkZWZpbmVkKFZLSV9GUEVfRkxUREVOKQorCSAgICBjYXNlIFZLSV9GUEVfRkxUREVOOiBldmVudCA9ICJGUCBkZW5vcm1hbGl6ZSI7IGJyZWFrOworIyAgICAgICAgICAgZW5kaWYKIAkgICAgfQogCSAgICBicmVhazsKIApAQCAtMTcyNyw3ICsxODMzLDcgQEAKICAgICAgICAgIGxpa2VseSBjYXVzZSBhIHNlZ2ZhdWx0LiAqLwogICAgICAgaWYgKFZHXyhpc192YWxpZF90aWQpKHRpZCkpIHsKICAgICAgICAgIFdvcmQgZmlyc3RfaXBfZGVsdGEgPSAwOwotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgICAgICAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIGFkZHJlc3Mgc3RvcmVkIGluIHRoZSBzdGFjayBwb2ludGVyIGlzIAogICAgICAgICAgICAgbG9jYXRlZCBpbiBhIG1hcHBlZCBwYWdlLiBUaGF0IGlzIG5vdCBuZWNlc3NhcmlseSBzby4gRS5nLgogICAgICAgICAgICAgY29uc2lkZXIgdGhlIHNjZW5hcmlvIHdoZXJlIHRoZSBzdGFjayBwb2ludGVyIHdhcyBkZWNyZWFzZWQKQEAgLTE3OTIsMTAgKzE4OTgsNiBAQAogICAgICAgVkdfKGdkYnNlcnZlcl9yZXBvcnRfZmF0YWxfc2lnbmFsKSAoaW5mbywgdGlkKTsKICAgIH0KIAotICAgaWYgKFZHXyhpc19hY3Rpb25fcmVxdWVzdGVkKSggIkF0dGFjaCB0byBkZWJ1Z2dlciIsICYgVkdfKGNsb19kYl9hdHRhY2gpICkpIHsKLSAgICAgIFZHXyhzdGFydF9kZWJ1Z2dlcikoIHRpZCApOwotICAgfQotCiAgICBpZiAoY29yZSkgewogICAgICAgc3RhdGljIGNvbnN0IHN0cnVjdCB2a2lfcmxpbWl0IHplcm8gPSB7IDAsIDAgfTsKIApAQCAtMTgzMyw3ICsxOTM1LDcgQEAKICAgIFRocmVhZFN0YXRlCQkqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKIAogICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCi0gICAgICBWR18oZG1zZykoImRlbGl2ZXJpbmcgc2lnbmFsICVkICglcyk6JWQgdG8gdGhyZWFkICVkXG4iLCAKKyAgICAgIFZHXyhkbXNnKSgiZGVsaXZlcmluZyBzaWduYWwgJWQgKCVzKTolZCB0byB0aHJlYWQgJXVcbiIsIAogICAgICAgICAgICAgICAgIHNpZ05vLCBWR18oc2lnbmFtZSkoc2lnTm8pLCBpbmZvLT5zaV9jb2RlLCB0aWQgKTsKIAogICAgaWYgKHNpZ05vID09IFZHX1NJR1ZHS0lMTCkgewpAQCAtMjAyNyw2ICsyMTI5LDkgQEAKICAgIHVjLnVjX21jb250ZXh0ID0gJm1jOwogICAgdWMudWNfbWNvbnRleHQtPl9fZXMuX190cmFwbm8gPSAzOwogICAgdWMudWNfbWNvbnRleHQtPl9fZXMuX19lcnIgPSAwOworIyAgZWxpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIHVjLnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FUlJdID0gMDsKKyAgIHVjLnVjX21jb250ZXh0LmdyZWdzW1ZLSV9UUkFQTk9dID0gVktJX1RfQlBURkxUOwogIyAgZW5kaWYKIAogICAgLyogZml4czM5MDogZG8gd2UgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlIGZvciBzMzkwID8gKi8KQEAgLTIwOTAsNyArMjE5NSw3IEBACiAgICBzcSA9IHRzdC0+c2lnX3F1ZXVlOwogCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKLSAgICAgIFZHXyhkbXNnKSgiUXVldWVpbmcgc2lnbmFsICVkIChpZHggJWQpIHRvIHRocmVhZCAlZFxuIiwKKyAgICAgIFZHXyhkbXNnKSgiUXVldWVpbmcgc2lnbmFsICVkIChpZHggJWQpIHRvIHRocmVhZCAldVxuIiwKICAgICAgICAgICAgICAgICBzaS0+c2lfc2lnbm8sIHNxLT5uZXh0LCB0aWQpOwogCiAgICAvKiBBZGQgc2lnbmFsIHRvIHRoZSBxdWV1ZS4gIElmIHRoZSBxdWV1ZSBnZXRzIG92ZXJydW4sIHRoZW4gb2xkCkBAIC0yMTAwLDcgKzIyMDUsNyBAQAogICAgICAgbGVhc3QgYSBub24tc2lnaW5mbyBzaWduYWwgZ2V0cyBkZWxpdmllcmVkLgogICAgKi8KICAgIGlmIChzcS0+c2lnc1tzcS0+bmV4dF0uc2lfc2lnbm8gIT0gMCkKLSAgICAgIFZHXyh1bXNnKSgiU2lnbmFsICVkIGJlaW5nIGRyb3BwZWQgZnJvbSB0aHJlYWQgJWQncyBxdWV1ZVxuIiwKKyAgICAgIFZHXyh1bXNnKSgiU2lnbmFsICVkIGJlaW5nIGRyb3BwZWQgZnJvbSB0aHJlYWQgJXUncyBxdWV1ZVxuIiwKICAgICAgICAgICAgICAgICBzcS0+c2lnc1tzcS0+bmV4dF0uc2lfc2lnbm8sIHRpZCk7CiAKICAgIHNxLT5zaWdzW3NxLT5uZXh0XSA9ICpzaTsKQEAgLTIxMzgsNyArMjI0Myw3IEBACiAgICAgICBpZiAoc3EtPnNpZ3NbaWR4XS5zaV9zaWdubyAhPSAwIAogICAgICAgICAgICYmIFZHXyhzaWdpc21lbWJlcikoc2V0LCBzcS0+c2lnc1tpZHhdLnNpX3NpZ25vKSkgewogCSBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKLSAgICAgICAgICAgIFZHXyhkbXNnKSgiUmV0dXJuaW5nIHF1ZXVlZCBzaWduYWwgJWQgKGlkeCAlZCkgZm9yIHRocmVhZCAlZFxuIiwKKyAgICAgICAgICAgIFZHXyhkbXNnKSgiUmV0dXJuaW5nIHF1ZXVlZCBzaWduYWwgJWQgKGlkeCAlZCkgZm9yIHRocmVhZCAldVxuIiwKICAgICAgICAgICAgICAgICAgICAgICBzcS0+c2lnc1tpZHhdLnNpX3NpZ25vLCBpZHgsIHRpZCk7CiAJIHJldCA9ICZzcS0+c2lnc1tpZHhdOwogCSBnb3RvIG91dDsKQEAgLTIxNjIsMTMgKzIyNjcsMTE3IEBACiAgICAgICBtYXNrIHRoZW0gb2ZmKSBzaWduIGV4dGVuZHMgdGhlbSB3aGVuIGV4cG9ydGluZyB0byB1c2VyIHNwYWNlIHNvCiAgICAgICB3ZSBkbyB0aGUgc2FtZSB0aGluZyBoZXJlLiAqLwogICAgcmV0dXJuIChTaG9ydClzaV9jb2RlOwotI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQorI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgcmV0dXJuIHNpX2NvZGU7CiAjZWxzZQogIyAgZXJyb3IgVW5rbm93biBPUwogI2VuZGlmCiB9CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogRm9sbG93aW5nIGZ1bmN0aW9uIGlzIHVzZWQgdG8gc3dpdGNoIFZhbGdyaW5kIGZyb20gYSBjbGllbnQgc3RhY2sgYmFjayBvbnRvCisgICBhIFZhbGdyaW5kIHN0YWNrLiAgSXQgaXMgdXNlZCBvbmx5IHdoZW4gdGhlIGRvb3JfcmV0dXJuIGNhbGwgd2FzIGludm9rZWQgYnkKKyAgIHRoZSBjbGllbnQgYmVjYXVzZSB0aGlzIGlzIHRoZSBvbmx5IHN5c2NhbGwgd2hpY2ggaXMgZXhlY3V0ZWQgZGlyZWN0bHkgb24KKyAgIHRoZSBjbGllbnQgc3RhY2sgKHNlZSBzeXNjYWxsLXt4ODYsYW1kNjR9LXNvbGFyaXMuUykuICBUaGUgc3dpdGNoIG9udG8gdGhlCisgICBWYWxncmluZCBzdGFjayBoYXMgdG8gYmUgbWFkZSBhcyBzb29uIGFzIHBvc3NpYmxlIGJlY2F1c2UgdGhlcmUgaXMgbm8KKyAgIGd1YXJhbnRlZSB0aGF0IHRoZXJlIGlzIGVub3VnaCBzcGFjZSBvbiB0aGUgY2xpZW50IHN0YWNrIHRvIHJ1biB0aGUKKyAgIGNvbXBsZXRlIHNpZ25hbCBtYWNoaW5lcnkuICBBbHNvLCBWYWxncmluZCBoYXMgdG8gYmUgc3dpdGNoZWQgYmFjayBvbnRvIGl0cworICAgc3RhY2sgYmVmb3JlIGEgc2ltdWxhdGVkIHNpZ25hbCBmcmFtZSBpcyBjcmVhdGVkIGJlY2F1c2UgdGhhdCB3aWxsCisgICBvdmVyd3JpdGUgdGhlIHJlYWwgc2lnZnJhbWUgYnVpbHQgYnkgdGhlIGtlcm5lbC4gKi8KK3N0YXRpYyB2b2lkIGFzeW5jX3NpZ25hbGhhbmRsZXJfc29sYXJpc19wcmVwcm9jZXNzKFRocmVhZElkIHRpZCwgSW50ICpzaWdubywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZraV9zaWdpbmZvX3QgKmluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICp1YykKK3sKKyMgIGRlZmluZSBSRUNVUlNJT05fQklUIDB4MTAwMAorICAgQWRkciBzcDsKKyAgIHZraV9zaWdmcmFtZV90ICpmcmFtZTsKKyAgIFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgSW50IHJlY19zaWdubzsKKworICAgLyogSWYgbm90IGRvaW5nIGRvb3JfcmV0dXJuIHRoZW4gcmV0dXJuIGluc3RhbnRseS4gKi8KKyAgIGlmICghdHN0LT5vc19zdGF0ZS5pbl9kb29yX3JldHVybikKKyAgICAgIHJldHVybjsKKworICAgLyogQ2hlY2sgZm9yIHRoZSByZWN1cnNpb246CisgICAgICB2IC4uLgorICAgICAgfCBhc3luY19zaWduYWxoYW5kbGVyIC0gZXhlY3V0ZWQgb24gdGhlIGNsaWVudCBzdGFjaworICAgICAgdiBhc3luY19zaWduYWxoYW5kbGVyX3NvbGFyaXNfcHJlcHJvY2VzcyAtIGZpcnN0IGNhbGwgc3dpdGNoZXMgdGhlCisgICAgICB8ICAgc3RhY2tzIGFuZCBzZXRzIHRoZSBSRUNVUlNJT05fQklUIGZsYWcKKyAgICAgIHYgYXN5bmNfc2lnbmFsaGFuZGxlciAtIGV4ZWN1dGVkIG9uIHRoZSBWYWxncmluZCBzdGFjaworICAgICAgfCBhc3luY19zaWduYWxoYW5kbGVyX3NvbGFyaXNfcHJlcHJvY2VzcyAtIHRoZSBSRUNVUlNJT05fQklUIGZsYWcgaXMKKyAgICAgIHYgICBzZXQsIGNsZWFyIGl0IGFuZCByZXR1cm4KKyAgICAqLworICAgaWYgKCpzaWdubyAmIFJFQ1VSU0lPTl9CSVQpIHsKKyAgICAgICpzaWdubyAmPSB+UkVDVVJTSU9OX0JJVDsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgcmVjX3NpZ25vID0gKnNpZ25vIHwgUkVDVVJTSU9OX0JJVDsKKworIyAgaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICAvKiBSZWdpc3RlciAlZWJ4LyVyYnggcG9pbnRzIHRvIHRoZSB0b3Agb2YgdGhlIG9yaWdpbmFsIFYgc3RhY2suICovCisgICBzcCA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUJYXTsKKyMgIGVsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIHNwID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkJYXTsKKyMgIGVsc2UKKyMgICAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjICBlbmRpZgorCisgICAvKiBCdWlsZCBhIGZha2Ugc2lnbmFsIGZyYW1lLCBzaW1pbGFybHkgYXMgaW4gc2lnZnJhbWUtc29sYXJpcy5jLiAqLworICAgLyogQ2FsY3VsYXRlIGEgbmV3IHN0YWNrIHBvaW50ZXIuICovCisgICBzcCAtPSBzaXplb2YodmtpX3NpZ2ZyYW1lX3QpOworICAgc3AgPSBWR19ST1VOREROKHNwLCAxNikgLSBzaXplb2YoVVdvcmQpOworCisgICAvKiBGaWxsIGluIHRoZSBmcmFtZS4gKi8KKyAgIGZyYW1lID0gKHZraV9zaWdmcmFtZV90KilzcDsKKyAgIC8qIFNldCBhIGJvZ3VzIHJldHVybiBhZGRyZXNzLiAqLworICAgZnJhbWUtPnJldHVybl9hZGRyID0gKHZvaWQqKX4wVUw7CisgICBmcmFtZS0+YTFfc2lnbm8gPSByZWNfc2lnbm87CisgICAvKiBUaGUgZmlyc3QgcGFyYW1ldGVyIGhhcyB0byBiZSAxNi1ieXRlIGFsaWduZWQsIHJlc2VtYmxpbmcgYSBmdW5jdGlvbgorICAgICAgY2FsbC4gKi8KKyAgIHsKKyAgICAgIC8qIFVzaW5nCisgICAgICAgICB2Z19hc3NlcnQoVkdfSVNfMTZfQUxJR05FRCgmZnJhbWUtPmExX3NpZ25vKSk7CisgICAgICAgICBzZWVtcyB0byBnZXQgbWlzY29tcGlsZWQgb24gYW1kNjQgd2l0aCBHQ0MgNC43LjIuICovCisgICAgICBBZGRyIHNpZ25vX2FkZHIgPSAoQWRkcikmZnJhbWUtPmExX3NpZ25vOworICAgICAgdmdfYXNzZXJ0KFZHX0lTXzE2X0FMSUdORUQoc2lnbm9fYWRkcikpOworICAgfQorICAgZnJhbWUtPmEyX3NpZ2luZm8gPSAmZnJhbWUtPnNpZ2luZm87CisgICBmcmFtZS0+c2lnaW5mbyA9ICppbmZvOworICAgZnJhbWUtPnVjb250ZXh0ID0gKnVjOworCisjICBpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIGZyYW1lLT5hM191Y29udGV4dCA9ICZmcmFtZS0+dWNvbnRleHQ7CisKKyAgIC8qIFN3aXRjaCBvbnRvIHRoZSBWIHN0YWNrIGFuZCByZXN0YXJ0IHRoZSBzaWduYWwgcHJvY2Vzc2luZy4gKi8KKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgInhvcmwgJSVlYnAsICUlZWJwXG4iCisgICAgICAibW92bCAlW3NwXSwgJSVlc3BcbiIKKyAgICAgICJqbXAgYXN5bmNfc2lnbmFsaGFuZGxlclxuIgorICAgICAgOgorICAgICAgOiBbc3BdICJhIiAoc3ApCisgICAgICA6IC8qImVicCIqLyk7CisKKyMgIGVsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgInhvcnEgJSVyYnAsICUlcmJwXG4iCisgICAgICAibW92cSAlW3NwXSwgJSVyc3BcbiIKKyAgICAgICJqbXAgYXN5bmNfc2lnbmFsaGFuZGxlclxuIgorICAgICAgOgorICAgICAgOiBbc3BdICJhIiAoc3ApLCAiRCIgKHJlY19zaWdubyksICJTIiAoJmZyYW1lLT5zaWdpbmZvKSwKKyAgICAgICAgImQiICgmZnJhbWUtPnVjb250ZXh0KQorICAgICAgOiAvKiJyYnAiKi8pOworIyAgZWxzZQorIyAgICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyMgIGVuZGlmCisKKyAgIC8qIFdlIHNob3VsZCBuZXZlciBnZXQgaGVyZS4gKi8KKyAgIHZnX2Fzc2VydCgwKTsKKworIyAgdW5kZWYgUkVDVVJTSU9OX0JJVAorfQorI2VuZGlmCisKIC8qIAogICAgUmVjZWl2ZSBhbiBhc3luYyBzaWduYWwgZnJvbSB0aGUga2VybmVsLgogCkBAIC0yMTgzLDE0ICsyMzkyLDE5IEBACiAgICBUaHJlYWRTdGF0ZSogdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKICAgIFN5c1JlcyAgICAgICBzcmVzOwogCi0gICAvKiBUaGUgdGhyZWFkIGlzbid0IGN1cnJlbnRseSBydW5uaW5nLCBtYWtlIGl0IHNvIGJlZm9yZSBnb2luZyBvbiAqLwogICAgdmdfYXNzZXJ0KHRzdC0+c3RhdHVzID09IFZnVHNfV2FpdFN5cyk7CisKKyMgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBhc3luY19zaWduYWxoYW5kbGVyX3NvbGFyaXNfcHJlcHJvY2Vzcyh0aWQsICZzaWdObywgaW5mbywgdWMpOworIyAgZW5kaWYKKworICAgLyogVGhlIHRocmVhZCBpc24ndCBjdXJyZW50bHkgcnVubmluZywgbWFrZSBpdCBzbyBiZWZvcmUgZ29pbmcgb24gKi8KICAgIFZHXyhhY3F1aXJlX0JpZ0xvY2spKHRpZCwgImFzeW5jX3NpZ25hbGhhbmRsZXIiKTsKIAogICAgaW5mby0+c2lfY29kZSA9IHNhbml0aXplX3NpX2NvZGUoaW5mby0+c2lfY29kZSk7CiAKICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQotICAgICAgVkdfKGRtc2cpKCJhc3luYyBzaWduYWwgaGFuZGxlcjogc2lnbmFsPSVkLCB0aWQ9JWQsIHNpX2NvZGU9JWRcbiIsCisgICAgICBWR18oZG1zZykoImFzeW5jIHNpZ25hbCBoYW5kbGVyOiBzaWduYWw9JWQsIHRpZD0ldSwgc2lfY29kZT0lZFxuIiwKICAgICAgICAgICAgICAgICBzaWdObywgdGlkLCBpbmZvLT5zaV9jb2RlKTsKIAogICAgLyogVXBkYXRlIHRocmVhZCBzdGF0ZSBwcm9wZXJseS4gIFRoZSBzaWduYWwgY2FuIG9ubHkgaGF2ZSBiZWVuCkBAIC0yMjM0LDcgKzI0NDgsOCBAQAogICAgICAgdGlkLCAKICAgICAgIFZHX1VDT05URVhUX0lOU1RSX1BUUih1YyksIAogICAgICAgc3JlcywgIAotICAgICAgISEoc2Nzcy5zY3NzX3Blcl9zaWdbc2lnTm9dLnNjc3NfZmxhZ3MgJiBWS0lfU0FfUkVTVEFSVCkKKyAgICAgICEhKHNjc3Muc2Nzc19wZXJfc2lnW3NpZ05vXS5zY3NzX2ZsYWdzICYgVktJX1NBX1JFU1RBUlQpLAorICAgICAgdWMKICAgICk7CiAKICAgIC8qICgyKSAqLwpAQCAtMjI5OCwxNyArMjUxMywxNyBAQAogICAgdWRlbHRhID0gVkdfUEdST1VORFVQKHNlZ19uZXh0LT5zdGFydCAtIGFkZHIpOwogCiAgICBWR18oZGVidWdMb2cpKDEsICJzaWduYWxzIiwgCi0gICAgICAgICAgICAgICAgICAgICJleHRlbmRpbmcgYSBzdGFjayBiYXNlIDB4JWxseCBkb3duIGJ5ICVsbGRcbiIsCi0gICAgICAgICAgICAgICAgICAgIChVTG9uZylzZWdfbmV4dC0+c3RhcnQsIChVTG9uZyl1ZGVsdGEpOworICAgICAgICAgICAgICAgICAgICAiZXh0ZW5kaW5nIGEgc3RhY2sgYmFzZSAweCVseCBkb3duIGJ5ICVsdVxuIiwKKyAgICAgICAgICAgICAgICAgICAgc2VnX25leHQtPnN0YXJ0LCB1ZGVsdGEpOwogICAgQm9vbCBvdmVyZmxvdzsKICAgIGlmICghIFZHXyhhbV9leHRlbmRfaW50b19hZGphY2VudF9yZXNlcnZhdGlvbl9jbGllbnQpCiAgICAgICAgKCBzZWdfbmV4dC0+c3RhcnQsIC0oU1NpemVUKXVkZWx0YSwgJm92ZXJmbG93ICkpIHsKICAgICAgIEFkZHIgbmV3X3N0YWNrX2Jhc2UgPSBzZWdfbmV4dC0+c3RhcnQgLSB1ZGVsdGE7CiAgICAgICBpZiAob3ZlcmZsb3cpCi0gICAgICAgICBWR18odW1zZykoIlN0YWNrIG92ZXJmbG93IGluIHRocmVhZCAjJWQ6IGNhbid0IGdyb3cgc3RhY2sgdG8gJSNseFxuIiwKKyAgICAgICAgIFZHXyh1bXNnKSgiU3RhY2sgb3ZlcmZsb3cgaW4gdGhyZWFkICMldTogY2FuJ3QgZ3JvdyBzdGFjayB0byAlI2x4XG4iLAogICAgICAgICAgICAgICAgICAgIHRpZCwgbmV3X3N0YWNrX2Jhc2UpOwogICAgICAgZWxzZQotICAgICAgICAgVkdfKHVtc2cpKCJDYW5ub3QgbWFwIG1lbW9yeSB0byBncm93IHRoZSBzdGFjayBmb3IgdGhyZWFkICMlZCAiCisgICAgICAgICBWR18odW1zZykoIkNhbm5vdCBtYXAgbWVtb3J5IHRvIGdyb3cgdGhlIHN0YWNrIGZvciB0aHJlYWQgIyV1ICIKICAgICAgICAgICAgICAgICAgICAidG8gJSNseFxuIiwgdGlkLCBuZXdfc3RhY2tfYmFzZSk7CiAgICAgICByZXR1cm4gRmFsc2U7CiAgICB9CkBAIC0yMzIzLDE2ICsyNTM4LDEzIEBACiAgICByZXR1cm4gVHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgKCpmYXVsdF9jYXRjaGVyKShJbnQgc2lnLCBBZGRyIGFkZHIpID0gTlVMTDsKK3N0YXRpYyBmYXVsdF9jYXRjaGVyX3QgZmF1bHRfY2F0Y2hlciA9IE5VTEw7CiAKLXZvaWQgVkdfKHNldF9mYXVsdF9jYXRjaGVyKSh2b2lkICgqY2F0Y2hlcikoSW50LCBBZGRyKSkKK2ZhdWx0X2NhdGNoZXJfdCBWR18oc2V0X2ZhdWx0X2NhdGNoZXIpKGZhdWx0X2NhdGNoZXJfdCBjYXRjaGVyKQogewotICAgaWYgKDApCi0gICAgICBWR18oZGVidWdMb2cpKDAsICJzaWduYWxzIiwgInNldCBmYXVsdCBjYXRjaGVyIHRvICVwXG4iLCBjYXRjaGVyKTsKLSAgIHZnX2Fzc2VydDIoTlVMTCA9PSBjYXRjaGVyIHx8IE5VTEwgPT0gZmF1bHRfY2F0Y2hlciwKLSAgICAgICAgICAgICAgIkZhdWx0IGNhdGNoZXIgaXMgYWxyZWFkeSByZWdpc3RlcmVkIik7Ci0KKyAgIGZhdWx0X2NhdGNoZXJfdCBwcmV2X2NhdGNoZXIgPSBmYXVsdF9jYXRjaGVyOwogICAgZmF1bHRfY2F0Y2hlciA9IGNhdGNoZXI7CisgICByZXR1cm4gcHJldl9jYXRjaGVyOwogfQogCiBzdGF0aWMKQEAgLTIzNDUsNyArMjU1NywxMyBAQAogICAgICAgb2YgYSBmYXVsdGluZyBpbnN0cnVjdGlvbiksIHRoZW4gaG93IHdlIHRyZWF0IGl0IGRlcGVuZHMgb24gd2hlbiBpdAogICAgICAgYXJyaXZlcy4uLiAqLwogCi0gICBpZiAoVkdfKHRocmVhZHMpW3RpZF0uc3RhdHVzID09IFZnVHNfV2FpdFN5cykgeworICAgaWYgKFZHXyh0aHJlYWRzKVt0aWRdLnN0YXR1cyA9PSBWZ1RzX1dhaXRTeXMKKyMgICAgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAvKiBDaGVjayBpZiB0aGUgc2lnbmFsIHdhcyByZWFsbHkgcmVjZWl2ZWQgd2hpbGUgZG9pbmcgYSBibG9ja2luZworICAgICAgICAgc3lzY2FsbC4gIE9ubHkgdGhlbiB0aGUgYXN5bmNfc2lnbmFsaGFuZGxlcigpIHBhdGggY2FuIGJlIHVzZWQuICovCisgICAgICAgJiYgVkdfKGlzX2lwX2luX2Jsb2NraW5nX3N5c2NhbGwpKHRpZCwgVkdfVUNPTlRFWFRfSU5TVFJfUFRSKHVjKSkKKyMgICAgIGVuZGlmCisgICAgICAgICApIHsKICAgICAgIC8qIFNpZ25hbCBhcnJpdmVkIHdoaWxlIHdlJ3JlIGJsb2NrZWQgaW4gYSBzeXNjYWxsLiAgVGhpcyBtZWFucyB0aGF0CiAgICAgICAgICB0aGUgY2xpZW50J3Mgc2lnbmFsIG1hc2sgd2FzIGFwcGxpZWQuICBJbiBvdGhlciB3b3Jkcywgc28gd2UgY2FuJ3QKICAgICAgICAgIGdldCBoZXJlIHVubGVzcyB0aGUgY2xpZW50IHdhbnRzIHRoaXMgc2lnbmFsIHJpZ2h0IG5vdy4gIFRoaXMgbWVhbnMKQEAgLTI0NDMsMTEgKzI2NjEsMTEgQEAKIAogICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpIHsKICAgICAgIGlmIChzZWcgPT0gTlVMTCkKLSAgICAgICAgIFZHXyhkbXNnKSgiU0lHU0VHVjogc2lfY29kZT0lZCBmYXVsdGFkZHI9JSNseCB0aWQ9JWQgRVNQPSUjbHggIgorICAgICAgICAgVkdfKGRtc2cpKCJTSUdTRUdWOiBzaV9jb2RlPSVkIGZhdWx0YWRkcj0lI2x4IHRpZD0ldSBFU1A9JSNseCAiCiAgICAgICAgICAgICAgICAgICAgInNlZz1OVUxMXG4iLAogICAgICAgICAgICAgICAgICAgIGluZm8tPnNpX2NvZGUsIGZhdWx0LCB0aWQsIGVzcCk7CiAgICAgICBlbHNlCi0gICAgICAgICBWR18oZG1zZykoIlNJR1NFR1Y6IHNpX2NvZGU9JWQgZmF1bHRhZGRyPSUjbHggdGlkPSVkIEVTUD0lI2x4ICIKKyAgICAgICAgIFZHXyhkbXNnKSgiU0lHU0VHVjogc2lfY29kZT0lZCBmYXVsdGFkZHI9JSNseCB0aWQ9JXUgRVNQPSUjbHggIgogICAgICAgICAgICAgICAgICAgICJzZWc9JSNseC0lI2x4XG4iLAogICAgICAgICAgICAgICAgICAgIGluZm8tPnNpX2NvZGUsIGZhdWx0LCB0aWQsIGVzcCwgc2VnLT5zdGFydCwgc2VnLT5lbmQpOwogICAgfQpAQCAtMjUzMSw3ICsyNzQ5LDcgQEAKICAgICAgICAgICAgICAgICAiYSBzaWduYWwgJWQgKCVzKSAtIGV4aXRpbmdcbiIsCiAgICAgICAgICAgICAgICAgc2lnTm8sIFZHXyhzaWduYW1lKShzaWdObykpOwogCi0gICAgICBWR18oZG1zZykoInNpX2NvZGU9JXg7ICBGYXVsdGluZyBhZGRyZXNzOiAlcDsgIHNwOiAlI2x4XG4iLAorICAgICAgVkdfKGRtc2cpKCJzaV9jb2RlPSVkOyAgRmF1bHRpbmcgYWRkcmVzczogJXA7ICBzcDogJSNseFxuIiwKICAgICAgICAgICAgICAgICBpbmZvLT5zaV9jb2RlLCBpbmZvLT5WS0lfU0lHSU5GT19zaV9hZGRyLAogICAgICAgICAgICAgICAgIFZHX1VDT05URVhUX1NUQUNLX1BUUih1YykpOwogCkBAIC0yNjA1LDYgKzI4MjMsMTEgQEAKICAgIH0gZWxzZSB7CiAgICAgICBzeW5jX3NpZ25hbGhhbmRsZXJfZnJvbV9rZXJuZWwodGlkLCBzaWdObywgaW5mbywgdWMpOwogICAgfQorCisjICBpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgLyogT24gU29sYXJpcyB3ZSBoYXZlIHRvIHJldHVybiBmcm9tIHNpZ25hbCBoYW5kbGVyIG1hbnVhbGx5LiAqLworICAgVkdfKGRvX3N5c2NhbGwyKShfX05SX2NvbnRleHQsIFZLSV9TRVRDT05URVhULCAoVVdvcmQpdWMpOworIyAgZW5kaWYKIH0KIAogCkBAIC0yNjIwLDcgKzI4NDMsNyBAQAogICAgVGhyZWFkU3RhdHVzIGF0X3NpZ25hbCA9IFZHXyh0aHJlYWRzKVt0aWRdLnN0YXR1czsKIAogICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCi0gICAgICBWR18oZG1zZykoInNpZ3Zna2lsbCBmb3IgbHdwICVkIHRpZCAlZFxuIiwgVkdfKGdldHRpZCkoKSwgdGlkKTsKKyAgICAgIFZHXyhkbXNnKSgic2lndmdraWxsIGZvciBsd3AgJWQgdGlkICV1XG4iLCBWR18oZ2V0dGlkKSgpLCB0aWQpOwogCiAgICBWR18oYWNxdWlyZV9CaWdMb2NrKSh0aWQsICJzaWd2Z2tpbGxfaGFuZGxlciIpOwogCkBAIC0yNjUzLDcgKzI4NzYsOCBAQAogICAgVkdfKHByaW50ZikoInBwX2tzaWdhY3Rpb246IGhhbmRsZXIgJXAsIGZsYWdzIDB4JXgsIHJlc3RvcmVyICVwXG4iLCAKICAgICAgICAgICAgICAgIHNhLT5rc2FfaGFuZGxlciwgCiAgICAgICAgICAgICAgICAoVUludClzYS0+c2FfZmxhZ3MsIAotIyAgICAgICAgICAgICAgaWYgIWRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pICYmICFkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCisjICAgICAgICAgICAgICBpZiAhZGVmaW5lZChWR1BfeDg2X2RhcndpbikgJiYgIWRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikgJiYgXAorICAgICAgICAgICAgICAgICAgIWRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICAgICAgICAgICAgICAgICBzYS0+c2FfcmVzdG9yZXIKICMgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICh2b2lkKikwCkBAIC0yNjc1LDcgKzI4OTksOCBAQAogCiAgICBzYS5rc2FfaGFuZGxlciA9IFZLSV9TSUdfREZMOwogICAgc2Euc2FfZmxhZ3MgPSAwOwotIyAgaWYgIWRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pICYmICFkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCisjICBpZiAhZGVmaW5lZChWR1BfeDg2X2RhcndpbikgJiYgIWRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikgJiYgXAorICAgICAgIWRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICBzYS5zYV9yZXN0b3JlciA9IDA7CiAjICBlbmRpZgogICAgVkdfKHNpZ2VtcHR5c2V0KSgmc2Euc2FfbWFzayk7CkBAIC0yNzA4LDcgKzI5MzMsNyBAQAogICAgLyogSWYgdGhlcmUgd2FzIG5vdGhpbmcgcXVldWVkLCBhc2sgdGhlIGtlcm5lbCBmb3IgYSBwZW5kaW5nIHNpZ25hbCAqLwogICAgaWYgKHNpcCA9PSBOVUxMICYmIFZHXyhzaWd0aW1lZHdhaXRfemVybykoJnBvbGxzZXQsICZzaSkgPiAwKSB7CiAgICAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKLSAgICAgICAgIFZHXyhkbXNnKSgicG9sbF9zaWduYWxzOiBnb3Qgc2lnbmFsICVkIGZvciB0aHJlYWQgJWRcbiIsCisgICAgICAgICBWR18oZG1zZykoInBvbGxfc2lnbmFsczogZ290IHNpZ25hbCAlZCBmb3IgdGhyZWFkICV1XG4iLAogICAgICAgICAgICAgICAgICAgIHNpLnNpX3NpZ25vLCB0aWQpOwogICAgICAgc2lwID0gJnNpOwogICAgfQpAQCAtMjcxNiw3ICsyOTQxLDcgQEAKICAgIGlmIChzaXAgIT0gTlVMTCkgewogICAgICAgLyogT0ssIHNvbWV0aGluZyB0byBkbzsgZGVsaXZlciBpdCAqLwogICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCi0gICAgICAgICBWR18oZG1zZykoIlBvbGxpbmcgZm91bmQgc2lnbmFsICVkIGZvciB0aWQgJWRcbiIsIHNpcC0+c2lfc2lnbm8sIHRpZCk7CisgICAgICAgICBWR18oZG1zZykoIlBvbGxpbmcgZm91bmQgc2lnbmFsICVkIGZvciB0aWQgJXVcbiIsIHNpcC0+c2lfc2lnbm8sIHRpZCk7CiAgICAgICBpZiAoIWlzX3NpZ19pZ24oc2lwLCB0aWQpKQogCSBkZWxpdmVyX3NpZ25hbCh0aWQsIHNpcCwgTlVMTCk7CiAgICAgICBlbHNlIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQpAQCAtMjc3Nyw3ICszMDAyLDggQEAKIAogCSB0c2Eua3NhX2hhbmRsZXIgPSAodm9pZCAqKXN5bmNfc2lnbmFsaGFuZGxlcjsKIAkgdHNhLnNhX2ZsYWdzID0gVktJX1NBX1NJR0lORk87Ci0jICAgICAgICBpZiAhZGVmaW5lZChWR1BfeDg2X2RhcndpbikgJiYgIWRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikKKyMgICAgICAgIGlmICFkZWZpbmVkKFZHUF94ODZfZGFyd2luKSAmJiAhZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKSAmJiBcCisgICAgICAgICAgICAhZGVmaW5lZChWR09fc29sYXJpcykKIAkgdHNhLnNhX3Jlc3RvcmVyID0gMDsKICMgICAgICAgIGVuZGlmCiAJIFZHXyhzaWdmaWxsc2V0KSgmdHNhLnNhX21hc2spOwpAQCAtMjgwNCw3ICszMDMwLDggQEAKICAgICAgIHNjc3Muc2Nzc19wZXJfc2lnW2ldLnNjc3NfbWFzayAgICAgPSBzYS5zYV9tYXNrOwogCiAgICAgICBzY3NzLnNjc3NfcGVyX3NpZ1tpXS5zY3NzX3Jlc3RvcmVyID0gTlVMTDsKLSMgICAgIGlmICFkZWZpbmVkKFZHUF94ODZfZGFyd2luKSAmJiAhZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKQorIyAgICAgaWYgIWRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pICYmICFkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pICYmIFwKKyAgICAgICAgICFkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgICAgc2Nzcy5zY3NzX3Blcl9zaWdbaV0uc2Nzc19yZXN0b3JlciA9IHNhLnNhX3Jlc3RvcmVyOwogIyAgICAgZW5kaWYKIApkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3BhcnNld2EuYyBiL2NvcmVncmluZC9tX3NwYXJzZXdhLmMKaW5kZXggM2YxMTFjNC4uYThhODQ1ZCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3BhcnNld2EuYworKysgYi9jb3JlZ3JpbmQvbV9zcGFyc2V3YS5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zdGFja3MuYyBiL2NvcmVncmluZC9tX3N0YWNrcy5jCmluZGV4IDNhMmUzZDAuLmFhYzVlYmYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N0YWNrcy5jCisrKyBiL2NvcmVncmluZC9tX3N0YWNrcy5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTEwMyw3ICsxMDMsNyBAQAogICovCiBzdGF0aWMgU3RhY2sgKmN1cnJlbnRfc3RhY2s7CiAKLS8qIEZpbmQgJ3N0JyBpbiB0aGUgc3RhY2tzX2xpc3QgYW5kIG1vdmUgaXQgb25lIHN0ZXAgY2xvc2VyIHRoZSB0aGUKKy8qIEZpbmQgJ3N0JyBpbiB0aGUgc3RhY2tzX2xpc3QgYW5kIG1vdmUgaXQgb25lIHN0ZXAgY2xvc2VyIHRvIHRoZQogICAgZnJvbnQgb2YgdGhlIGxpc3QsIHNvIGFzIHRvIG1ha2Ugc3Vic2VxdWVudCBzZWFyY2hlcyBmb3IgaXQKICAgIGNoZWFwZXIuICovCiBzdGF0aWMgdm9pZCBtb3ZlX1N0YWNrX29uZV9zdGVwX2ZvcndhcmQgKCBTdGFjayogc3QgKQpAQCAtNDExLDggKzQxMSw5IEBACiAgICAgICAgICAgICAgICAgKHZvaWQgKikgY3VycmVudF9zdGFjay0+ZW5kLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgY3VycmVudF9zdGFjay0+aWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBFREVCVUcoIm5ldyBjdXJyZW50X3N0YWNrIG5vdCBmb3VuZFxuIik7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9CiAKICNkZWZpbmUgSUZfQklHX0RFTFRBX2NvbXBsYWludHNfQU5EX1JFVFVSTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N0YWNrdHJhY2UuYyBiL2NvcmVncmluZC9tX3N0YWNrdHJhY2UuYwppbmRleCBiMmQxODg2Li44YzFlOWE0IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zdGFja3RyYWNlLmMKKysrIGIvY29yZWdyaW5kL21fc3RhY2t0cmFjZS5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJwdWJfY29yZV9vcHRpb25zLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfc3RhY2tzLmgiICAgICAgICAvLyBWR18oc3RhY2tfbGltaXRzKQogI2luY2x1ZGUgInB1Yl9jb3JlX3N0YWNrdHJhY2UuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9zeXN3cmFwLmgiICAgICAgIC8vIFZHXyhpc19pbl9zeXNjYWxsKQogI2luY2x1ZGUgInB1Yl9jb3JlX3hhcnJheS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX2NsaWVudHN0YXRlLmgiICAgLy8gVkdfKGNsaWVudF9fZGxfc3lzaW5mb19pbnQ4MCkKICNpbmNsdWRlICJwdWJfY29yZV90cmFtcG9saW5lLmgiCkBAIC02NSwyMCArNjYsMzUgQEAKICAgIG9mIHVwIHRvIF9uZnJhbWVzLiAgVGhlIG1lcmdlIGlzIGRvbmUgZHVyaW5nIHN0YWNrIHVud2luZGluZwogICAgKGkuZS4gaW4gcGxhdGZvcm0gc3BlY2lmaWMgdW53aW5kZXJzKSB0byBjb2xsZWN0IGFzIG1hbnkKICAgICJpbnRlcmVzdGluZyIgc3RhY2sgdHJhY2VzIGFzIHBvc3NpYmxlLiAqLwotI2RlZmluZSBSRUNVUlNJVkVfTUVSR0UoX25mcmFtZXMsX2lwcyxfaSl7ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIEludCBkaXN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBmb3IgKGRpc3QgPSAxOyBkaXN0IDw9IF9uZnJhbWVzICYmIGRpc3QgPCAoSW50KV9pOyBkaXN0KyspIHsgXAotICAgICAgaWYgKF9pcHNbX2ktMV0gPT0gX2lwc1tfaS0xLWRpc3RdKSB7ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgIF9pID0gX2kgLSBkaXN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi19CisjZGVmaW5lIFJFQ1VSU0lWRV9NRVJHRShfbmZyYW1lcyxfaXBzLF9pKSBpZiAoVU5MSUtFTFkoX25mcmFtZXMgPiAwKSkgXAorZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIEludCBkaXN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBmb3IgKGRpc3QgPSAxOyBkaXN0IDw9IF9uZnJhbWVzICYmIGRpc3QgPCAoSW50KV9pOyBkaXN0KyspIHsgICAgICAgXAorICAgICAgaWYgKF9pcHNbX2ktMV0gPT0gX2lwc1tfaS0xLWRpc3RdKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIF9pID0gX2kgLSBkaXN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgwKQogCi0KKy8qIE5vdGUgYWJvdXQgY2FsY3VsYXRpb24gb2YgZnBfbWluIDogZnBfbWluIGlzIHRoZSBsb3dlc3QgYWRkcmVzcworICAgd2hpY2ggY2FuIGJlIGFjY2Vzc2VkIGR1cmluZyB1bndpbmRpbmcuIFRoaXMgaXMgU1AgLSBWR19TVEFDS19SRURaT05FX1NaQi4KKyAgIE9uIG1vc3QgcGxhdGZvcm1zLCB0aGlzIHdpbGwgYmUgZXF1YWwgdG8gU1AgKGFzIFZHX1NUQUNLX1JFRFpPTkVfU1pCCisgICBpcyAwKS4gSG93ZXZlciwgb24gc29tZSBwbGF0Zm9ybXMgKGUuZy4gYW1kNjQpLCB0aGVyZSBpcyBhbiBhY2Nlc3NpYmxlCisgICByZWR6b25lIGJlbG93IHRoZSBTUC4gU29tZSBDRkkgdW53aW5kIGluZm8gYXJlIGdlbmVyYXRlZCwgdGFraW5nIHRoaXMKKyAgIGludG8gYWNjb3VudC4gQXMgYW4gZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBpcyBhIENGSSB1bndpbmQgaW5mbyBvbgorICAgYW1kNjQgZm91bmQgZm9yIGEgJ3JldHEnIGluc3RydWN0aW9uOgorWzB4NDAwZjdlIC4uIDB4NDAwZjdlXTogbGV0IGNmYT1vbGRTUCs4IGluIFJBPSooY2ZhKy04KSBTUD1jZmErMCBCUD0qKGNmYSstMTYpCisgIDB4NDAwZjdlOiByZXRxCisgIEFzIHlvdSBjYW4gc2VlLCB0aGUgcHJldmlvdXMgQlAgaXMgZm91bmQgMTYgYnl0ZXMgYmVsb3cgdGhlIGNmYSwgd2hpY2gKKyAgaXMgdGhlIG9sZFNQKzguIFNvLCBlZmZlY3RpdmVseSwgdGhlIEJQIGlzIGZvdW5kIDggYnl0ZXMgYmVsb3cgdGhlIFNQLgorICBUaGUgZnBfbWluIG11c3QgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgb3RoZXJ3aXNlLCBWR18odXNlX0NGX2luZm8pIHdpbGwKKyAgbm90IHVud2luZCB0aGUgQlAuICovCisgICAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB4ODYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCi0jaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF94ODZfZGFyd2luKQorI2lmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfeDg2X2RhcndpbikgXAorICAgIHx8IGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQogCiAjZGVmaW5lIE5fRlBfQ0ZfVkVSSUYgMTAyMQogLy8gcHJpbWUgbnVtYmVyIHNvIHRoYXQgc2l6ZSBvZiBmcF9DRl92ZXJpZiBpcyBqdXN0IGJlbG93IDRLIG9yIDhLCkBAIC0xMjksMTEgKzE0NSwxNiBAQAogICAgdGhlbiB0aGV5IHdpbGwgbm90IGxhbmQgaW4gdGhlIHNhbWUgY2FjaGUgYnVja2V0LgogKi8KIAorLyogY2FjaGVkIHJlc3VsdCBvZiBWR18oRlBPX2luZm9fcHJlc2VudCkoKS4gUmVmcmVzaGVkIGVhY2ggdGltZQorICAgdGhlIGZwX0NGX3ZlcmlmX2dlbmVyYXRpb24gaXMgZGlmZmVyZW50IG9mIHRoZSBjdXJyZW50IGRlYnVnaW5mbworICAgZ2VuZXJhdGlvbi4gKi8KK3N0YXRpYyBCb29sIEZQT19pbmZvX3ByZXNlbnQgPSBGYWxzZTsKKwogc3RhdGljIFVJbnQgZnBfQ0ZfdmVyaWZfZ2VuZXJhdGlvbiA9IDA7CiAvLyBPdXIgY2FjaGUgaGFzIHRvIGJlIG1haW50YWluZWQgaW4gc3luYyB3aXRoIHRoZSBDRkkgY2FjaGUuCi0vLyBFYWNoIHRpbWUgdGhlIENGSSBjYWNoZSBpcyBjaGFuZ2VkLCBpdHMgZ2VuZXJhdGlvbiB3aWxsIGJlIGluY3JlbWVudGVkLgorLy8gRWFjaCB0aW1lIHRoZSBkZWJ1Z2luZm8gaXMgY2hhbmdlZCwgaXRzIGdlbmVyYXRpb24gd2lsbCBiZSBpbmNyZW1lbnRlZC4KIC8vIFdlIHdpbGwgY2xlYXIgb3VyIGNhY2hlIHdoZW4gb3VyIHNhdmVkIGdlbmVyYXRpb24gZGlmZmVycyBmcm9tCi0vLyB0aGUgQ0ZJIGNhY2hlIGdlbmVyYXRpb24uCisvLyB0aGUgZGVidWdpbmZvIGdlbmVyYXRpb24uCiAKIFVJbnQgVkdfKGdldF9TdGFja1RyYWNlX3dyaykgKCBUaHJlYWRJZCB0aWRfaWZfa25vd24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL0FkZHIqIGlwcywgVUludCBtYXhfbl9pcHMsCkBAIC0xOTEsNyArMjEyLDcgQEAKICAgIHVyZWdzLnhpcCA9IChBZGRyKXN0YXJ0UmVncy0+cl9wYzsKICAgIHVyZWdzLnhzcCA9IChBZGRyKXN0YXJ0UmVncy0+cl9zcDsKICAgIHVyZWdzLnhicCA9IHN0YXJ0UmVncy0+bWlzYy5YODYucl9lYnA7Ci0gICBBZGRyIGZwX21pbiA9IHVyZWdzLnhzcDsKKyAgIEFkZHIgZnBfbWluID0gdXJlZ3MueHNwIC0gVkdfU1RBQ0tfUkVEWk9ORV9TWkI7CiAKICAgIC8qIFNuYWZmbGUgSVBzIGZyb20gdGhlIGNsaWVudCdzIHN0YWNrIGludG8gaXBzWzAgLi4gbWF4X25faXBzLTFdLAogICAgICAgc3RvcHBpbmcgd2hlbiB0aGUgdHJhaWwgZ29lcyBjb2xkLCB3aGljaCB3ZSBndWVzcyB0byBiZQpAQCAtMjA1LDcgKzIyNiw3IEBACiAgICAgICBmcF9tYXggLT0gc2l6ZW9mKEFkZHIpOwogCiAgICBpZiAoZGVidWcpCi0gICAgICBWR18ocHJpbnRmKSgibWF4X25faXBzPSVkIGZwX21pbj0weCUwOGx4IGZwX21heF9vcmlnPTB4MDglbHgsICIKKyAgICAgIFZHXyhwcmludGYpKCJtYXhfbl9pcHM9JXUgZnBfbWluPTB4JTA4bHggZnBfbWF4X29yaWc9MHgwOCVseCwgIgogICAgICAgICAgICAgICAgICAgImZwX21heD0weCUwOGx4IGlwPTB4JTA4bHggZnA9MHglMDhseFxuIiwKICAgICAgICAgICAgICAgICAgIG1heF9uX2lwcywgZnBfbWluLCBmcF9tYXhfb3JpZywgZnBfbWF4LAogICAgICAgICAgICAgICAgICAgdXJlZ3MueGlwLCB1cmVncy54YnApOwpAQCAtMjE1LDEwICsyMzYsMTggQEAKICAgIC8qIHZnX2Fzc2VydChmcF9taW4gPD0gZnBfbWF4KTsqLwogICAgLy8gT24gRGFyd2luLCB0aGlzIGtpY2tzIGluIGZvciBwdGhyZWFkLXJlbGF0ZWQgc3RhY2sgdHJhY2VzLCBzbyB0aGV5J3JlCiAgICAvLyBvbmx5IDEgZW50cnkgbG9uZyB3aGljaCBpcyB3cm9uZy4KLSMgIGlmICFkZWZpbmVkKFZHT19kYXJ3aW4pCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkKICAgIGlmIChmcF9taW4gKyA1MTIgPj0gZnBfbWF4KSB7CiAgICAgICAvKiBJZiB0aGUgc3RhY2sgbGltaXRzIGxvb2sgYm9ndXMsIGRvbid0IHBva2UgYXJvdW5kIC4uLiBidXQKICAgICAgICAgIGRvbid0IGJvbWIgb3V0IGVpdGhlci4gKi8KKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIGlmIChmcF9tYXggPT0gMCkgeworICAgICAgLyogVkdfKGdldF9TdGFja1RyYWNlKSgpIGNhbiBiZSBjYWxsZWQgYnkgdG9vbHMgdmVyeSBlYXJseSB3aGVuCisgICAgICAgICB2YXJpb3VzIHRyYWNpbmcgb3B0aW9ucyBhcmUgZW5hYmxlZC4gRG9uJ3QgcHJvY2VlZCBmdXJ0aGVyCisgICAgICAgICBpZiB0aGUgc3RhY2sgbGltaXRzIGxvb2sgYm9ndXMuCisgICAgICAgKi8KKyMgIGVuZGlmCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKICAgICAgIGlmIChzcHMpIHNwc1swXSA9IHVyZWdzLnhzcDsKICAgICAgIGlmIChmcHMpIGZwc1swXSA9IHVyZWdzLnhicDsKICAgICAgIGlwc1swXSA9IHVyZWdzLnhpcDsKQEAgLTIyNiw5ICsyNTUsMTAgQEAKICAgIH0gCiAjICBlbmRpZgogCi0gICBpZiAoVU5MSUtFTFkgKGZwX0NGX3ZlcmlmX2dlbmVyYXRpb24gIT0gVkdfKENGX2luZm9fZ2VuZXJhdGlvbikoKSkpIHsKLSAgICAgIGZwX0NGX3ZlcmlmX2dlbmVyYXRpb24gPSBWR18oQ0ZfaW5mb19nZW5lcmF0aW9uKSgpOworICAgaWYgKFVOTElLRUxZIChmcF9DRl92ZXJpZl9nZW5lcmF0aW9uICE9IFZHXyhkZWJ1Z2luZm9fZ2VuZXJhdGlvbikoKSkpIHsKKyAgICAgIGZwX0NGX3ZlcmlmX2dlbmVyYXRpb24gPSBWR18oZGVidWdpbmZvX2dlbmVyYXRpb24pKCk7CiAgICAgICBWR18obWVtc2V0KSgmZnBfQ0ZfdmVyaWZfY2FjaGUsIDAsIHNpemVvZihmcF9DRl92ZXJpZl9jYWNoZSkpOworICAgICAgRlBPX2luZm9fcHJlc2VudCA9IFZHXyhGUE9faW5mb19wcmVzZW50KSgpOwogICAgfQogCiAKQEAgLTMxNyw3ICszNDcsOCBAQAogICAgICAgLyogVGhpcyBkZWFscyB3aXRoIGZyYW1lcyByZXN1bHRpbmcgZnJvbSBmdW5jdGlvbnMgd2hpY2ggYmVnaW4gInB1c2hsJQogICAgICAgICAgZWJwIDsgbW92bCAlZXNwLCAlZWJwIiB3aGljaCBpcyB0aGUgQUJJLW1hbmRhdGVkIHByZWFtYmxlLiAqLwogICAgICAgaWYgKGZwX21pbiA8PSB1cmVncy54YnAgJiYKLSAgICAgICAgICB1cmVncy54YnAgPD0gZnBfbWF4IC0gMSAqIHNpemVvZihVV29yZCkvKnNlZSBjb21tZW50IGJlbG93Ki8pCisgICAgICAgICAgdXJlZ3MueGJwIDw9IGZwX21heCAtIDEgKiBzaXplb2YoVVdvcmQpLypzZWUgY29tbWVudCBiZWxvdyovICYmCisgICAgICAgICAgVkdfSVNfNF9BTElHTkVEKHVyZWdzLnhicCkpCiAgICAgICB7CiAgICAgICAgICAvKiBmcCBsb29rcyBzYW5lLCBzbyB1c2UgaXQuICovCiAgICAgICAgICB1cmVncy54aXAgPSAoKChVV29yZCopdXJlZ3MueGJwKVsxXSk7CkBAIC0zOTgsOCArNDI5LDkgQEAKICAgICAgIH0KIAogICAgICAgLyogQW5kLCBzaW1pbGFybHksIHRyeSBmb3IgTVNWQyBGUE8gdW53aW5kIGluZm8uICovCi0gICAgICBpZiAoIFZHXyh1c2VfRlBPX2luZm8pKCAmdXJlZ3MueGlwLCAmdXJlZ3MueHNwLCAmdXJlZ3MueGJwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnBfbWluLCBmcF9tYXggKSApIHsKKyAgICAgIGlmIChGUE9faW5mb19wcmVzZW50CisgICAgICAgICAgJiYgVkdfKHVzZV9GUE9faW5mbykoICZ1cmVncy54aXAsICZ1cmVncy54c3AsICZ1cmVncy54YnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwX21pbiwgZnBfbWF4ICkgKSB7CiAgICAgICAgICBpZiAoZGVidWcpIHVud2luZF9jYXNlID0gIk1TIjsKICAgICAgICAgIGlmIChkb19zdGF0cykgc3RhdHMuTVMrKzsKICAgICAgICAgIGdvdG8gdW53aW5kX2RvbmU7CkBAIC00MjAsNyArNDUyLDcgQEAKICAgICAgICAgIFZHXyhwcmludGYpKCIgICAgIGlwcyVzWyVkXT0weCUwOGx4XG4iLCB1bndpbmRfY2FzZSwgaS0xLCBpcHNbaS0xXSk7CiAgICAgICB1cmVncy54aXAgPSB1cmVncy54aXAgLSAxOwogICAgICAgLyogYXMgcGVyIGNvbW1lbnQgYXQgdGhlIGhlYWQgb2YgdGhpcyBsb29wICovCi0gICAgICBpZiAoVU5MSUtFTFkoY21yZiA+IDApKSB7UkVDVVJTSVZFX01FUkdFKGNtcmYsaXBzLGkpO307CisgICAgICBSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7CiAgICB9CiAKICAgIGlmIChkb19zdGF0cykgc3RhdHMubmYgKz0gaTsKQEAgLTQ1MSw3ICs0ODMsOCBAQAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBhbWQ2NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2lmIGRlZmluZWQoVkdQX2FtZDY0X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCisjaWYgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpIHx8IGRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikgXAorICAgIHx8IGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCiAKIFVJbnQgVkdfKGdldF9TdGFja1RyYWNlX3dyaykgKCBUaHJlYWRJZCB0aWRfaWZfa25vd24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL0FkZHIqIGlwcywgVUludCBtYXhfbl9pcHMsCkBAIC00NTksNyArNDkyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVbndpbmRTdGFydFJlZ3MqIHN0YXJ0UmVncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyIGZwX21heF9vcmlnICkKIHsKLSAgIEJvb2wgIGRlYnVnID0gRmFsc2U7CisgICBjb25zdCBCb29sICBkZWJ1ZyA9IEZhbHNlOwogICAgSW50ICAgaTsKICAgIEFkZHIgIGZwX21heDsKICAgIFVJbnQgIG5fZm91bmQgPSAwOwpAQCAtNDcyLDcgKzUwNSw3IEBACiAgICB1cmVncy54aXAgPSBzdGFydFJlZ3MtPnJfcGM7CiAgICB1cmVncy54c3AgPSBzdGFydFJlZ3MtPnJfc3A7CiAgICB1cmVncy54YnAgPSBzdGFydFJlZ3MtPm1pc2MuQU1ENjQucl9yYnA7Ci0gICBBZGRyIGZwX21pbiA9IHVyZWdzLnhzcDsKKyAgIEFkZHIgZnBfbWluID0gdXJlZ3MueHNwIC0gVkdfU1RBQ0tfUkVEWk9ORV9TWkI7CiAKICAgIC8qIFNuYWZmbGUgSVBzIGZyb20gdGhlIGNsaWVudCdzIHN0YWNrIGludG8gaXBzWzAgLi4gbWF4X25faXBzLTFdLAogICAgICAgc3RvcHBpbmcgd2hlbiB0aGUgdHJhaWwgZ29lcyBjb2xkLCB3aGljaCB3ZSBndWVzcyB0byBiZQpAQCAtNDg2LDcgKzUxOSw3IEBACiAgICAgICBmcF9tYXggLT0gc2l6ZW9mKEFkZHIpOwogCiAgICBpZiAoZGVidWcpCi0gICAgICBWR18ocHJpbnRmKSgibWF4X25faXBzPSVkIGZwX21pbj0weCVseCBmcF9tYXhfb3JpZz0weCVseCwgIgorICAgICAgVkdfKHByaW50ZikoIm1heF9uX2lwcz0ldSBmcF9taW49MHglbHggZnBfbWF4X29yaWc9MHglbHgsICIKICAgICAgICAgICAgICAgICAgICJmcF9tYXg9MHglbHggaXA9MHglbHggZnA9MHglbHhcbiIsCiAgICAgICAgICAgICAgICAgICBtYXhfbl9pcHMsIGZwX21pbiwgZnBfbWF4X29yaWcsIGZwX21heCwKICAgICAgICAgICAgICAgICAgIHVyZWdzLnhpcCwgdXJlZ3MueGJwKTsKQEAgLTQ5NiwxMCArNTI5LDE5IEBACiAgICAvKiB2Z19hc3NlcnQoZnBfbWluIDw9IGZwX21heCk7Ki8KICAgIC8vIE9uIERhcndpbiwgdGhpcyBraWNrcyBpbiBmb3IgcHRocmVhZC1yZWxhdGVkIHN0YWNrIHRyYWNlcywgc28gdGhleSdyZQogICAgLy8gb25seSAxIGVudHJ5IGxvbmcgd2hpY2ggaXMgd3JvbmcuCi0jICBpZiAhZGVmaW5lZChWR09fZGFyd2luKQorIyAgaWYgZGVmaW5lZChWR09fbGludXgpCiAgICBpZiAoZnBfbWluICsgMjU2ID49IGZwX21heCkgewogICAgICAgLyogSWYgdGhlIHN0YWNrIGxpbWl0cyBsb29rIGJvZ3VzLCBkb24ndCBwb2tlIGFyb3VuZCAuLi4gYnV0CiAgICAgICAgICBkb24ndCBib21iIG91dCBlaXRoZXIuICovCisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBpZiAoZnBfbWF4ID09IDApIHsKKyAgICAgIC8qIFZHXyhnZXRfU3RhY2tUcmFjZSkoKSBjYW4gYmUgY2FsbGVkIGJ5IHRvb2xzIHZlcnkgZWFybHkgd2hlbgorICAgICAgICAgdmFyaW91cyB0cmFjaW5nIG9wdGlvbnMgYXJlIGVuYWJsZWQuIERvbid0IHByb2NlZWQgZnVydGhlcgorICAgICAgICAgaWYgdGhlIHN0YWNrIGxpbWl0cyBsb29rIGJvZ3VzLgorICAgICAgICovCisjICBlbmRpZgorIyAgaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCisKICAgICAgIGlmIChzcHMpIHNwc1swXSA9IHVyZWdzLnhzcDsKICAgICAgIGlmIChmcHMpIGZwc1swXSA9IHVyZWdzLnhicDsKICAgICAgIGlwc1swXSA9IHVyZWdzLnhpcDsKQEAgLTUxMyw2ICs1NTUsOSBAQAogICAgaWYgKHNwcykgc3BzWzBdID0gdXJlZ3MueHNwOwogICAgaWYgKGZwcykgZnBzWzBdID0gdXJlZ3MueGJwOwogICAgaSA9IDE7CisgICBpZiAoZGVidWcpCisgICAgICBWR18ocHJpbnRmKSgiICAgICBpcHNTWyVkXT0lIzA4bHggcmJwICUjMDhseCByc3AgJSMwOGx4XG4iLAorICAgICAgICAgICAgICAgICAgaS0xLCBpcHNbaS0xXSwgdXJlZ3MueGJwLCB1cmVncy54c3ApOwogCiAjICBpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICBpZiAoVkdfKGlzX3ZhbGlkX3RpZCkodGlkX2lmX2tub3duKSAmJgpAQCAtNTYxLDkgKzYwNiwxMCBAQAogICAgICAgICAgaWYgKGZwcykgZnBzW2ldID0gdXJlZ3MueGJwOwogICAgICAgICAgaXBzW2krK10gPSB1cmVncy54aXAgLSAxOyAvKiAtMTogcmVmZXIgdG8gY2FsbGluZyBpbnNuLCBub3QgdGhlIFJBICovCiAgICAgICAgICBpZiAoZGVidWcpCi0gICAgICAgICAgICBWR18ocHJpbnRmKSgiICAgICBpcHNDWyVkXT0lIzA4bHhcbiIsIGktMSwgaXBzW2ktMV0pOworICAgICAgICAgICAgVkdfKHByaW50ZikoIiAgICAgaXBzQ1slZF09JSMwOGx4IHJicCAlIzA4bHggcnNwICUjMDhseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGktMSwgaXBzW2ktMV0sIHVyZWdzLnhicCwgdXJlZ3MueHNwKTsKICAgICAgICAgIHVyZWdzLnhpcCA9IHVyZWdzLnhpcCAtIDE7IC8qIGFzIHBlciBjb21tZW50IGF0IHRoZSBoZWFkIG9mIHRoaXMgbG9vcCAqLwotICAgICAgICAgaWYgKFVOTElLRUxZKGNtcmYgPiAwKSkge1JFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTt9OworICAgICAgICAgUkVDVVJTSVZFX01FUkdFKGNtcmYsaXBzLGkpOwogICAgICAgICAgY29udGludWU7CiAgICAgICB9CiAKQEAgLTU5MCw5ICs2MzYsMTAgQEAKICAgICAgICAgIGlmIChmcHMpIGZwc1tpXSA9IHVyZWdzLnhicDsKICAgICAgICAgIGlwc1tpKytdID0gdXJlZ3MueGlwIC0gMTsgLyogLTE6IHJlZmVyIHRvIGNhbGxpbmcgaW5zbiwgbm90IHRoZSBSQSAqLwogICAgICAgICAgaWYgKGRlYnVnKQotICAgICAgICAgICAgVkdfKHByaW50ZikoIiAgICAgaXBzRlslZF09JSMwOGx4XG4iLCBpLTEsIGlwc1tpLTFdKTsKKyAgICAgICAgICAgIFZHXyhwcmludGYpKCIgICAgIGlwc0ZbJWRdPSUjMDhseCByYnAgJSMwOGx4IHJzcCAlIzA4bHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBpLTEsIGlwc1tpLTFdLCB1cmVncy54YnAsIHVyZWdzLnhzcCk7CiAgICAgICAgICB1cmVncy54aXAgPSB1cmVncy54aXAgLSAxOyAvKiBhcyBwZXIgY29tbWVudCBhdCB0aGUgaGVhZCBvZiB0aGlzIGxvb3AgKi8KLSAgICAgICAgIGlmIChVTkxJS0VMWShjbXJmID4gMCkpIHtSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7fTsKKyAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQogCkBAIC02MjIsNyArNjY5LDcgQEAKICAgICAgICAgICAgIFZHXyhwcmludGYpKCIgICAgIGlwc0hbJWRdPSUjMDhseFxuIiwgaS0xLCBpcHNbaS0xXSk7CiAgICAgICAgICB1cmVncy54aXAgPSB1cmVncy54aXAgLSAxOyAvKiBhcyBwZXIgY29tbWVudCBhdCB0aGUgaGVhZCBvZiB0aGlzIGxvb3AgKi8KICAgICAgICAgIHVyZWdzLnhzcCArPSA4OwotICAgICAgICAgaWYgKFVOTElLRUxZKGNtcmYgPiAwKSkge1JFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTt9OworICAgICAgICAgUkVDVVJTSVZFX01FUkdFKGNtcmYsaXBzLGkpOwogICAgICAgICAgY29udGludWU7CiAgICAgICB9CiAKQEAgLTY3MCw3ICs3MTcsNyBAQAogIyAgZWxpZiBkZWZpbmVkKFZHUF9wcGM2NGJlX2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9wcGM2NGxlX2xpbnV4KQogICAgQWRkciBsciA9IHN0YXJ0UmVncy0+bWlzYy5QUEM2NC5yX2xyOwogIyAgZW5kaWYKLSAgIEFkZHIgZnBfbWluID0gc3A7CisgICBBZGRyIGZwX21pbiA9IHNwIC0gVkdfU1RBQ0tfUkVEWk9ORV9TWkI7CiAKICAgIC8qIFNuYWZmbGUgSVBzIGZyb20gdGhlIGNsaWVudCdzIHN0YWNrIGludG8gaXBzWzAgLi4gbWF4X25faXBzLTFdLAogICAgICAgc3RvcHBpbmcgd2hlbiB0aGUgdHJhaWwgZ29lcyBjb2xkLCB3aGljaCB3ZSBndWVzcyB0byBiZQpAQCAtNjg0LDcgKzczMSw3IEBACiAgICAgICBmcF9tYXggLT0gc2l6ZW9mKEFkZHIpOwogCiAgICBpZiAoZGVidWcpCi0gICAgICBWR18ocHJpbnRmKSgibWF4X25faXBzPSVkIGZwX21pbj0weCVseCBmcF9tYXhfb3JpZz0weCVseCwgIgorICAgICAgVkdfKHByaW50ZikoIm1heF9uX2lwcz0ldSBmcF9taW49MHglbHggZnBfbWF4X29yaWc9MHglbHgsICIKICAgICAgICAgICAgICAgICAgICJmcF9tYXg9MHglbHggaXA9MHglbHggZnA9MHglbHhcbiIsCiAJCSAgbWF4X25faXBzLCBmcF9taW4sIGZwX21heF9vcmlnLCBmcF9tYXgsIGlwLCBmcCk7CiAKQEAgLTgxMiw3ICs4NTksNyBAQAogICAgICAgICAgICAgaXAgPSBpcCAtIDE7IC8qIGlwIGlzIHByb2JhYmx5IGRlYWQgYXQgdGhpcyBwb2ludCwgYnV0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheSBzYWZlLCBhIGxhIHg4Ni9hbWQ2NCBhYm92ZS4gIFNlZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2l2ZSBjb21tZW50cyBhYm92ZS4gKi8KLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShjbXJmID4gMCkpIHtSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7fTsKKyAgICAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogCkBAIC05MzUsNyArOTgyLDcgQEAKICAgIHVyZWdzLnIxMiA9IHN0YXJ0UmVncy0+bWlzYy5BUk0ucjEyOwogICAgdXJlZ3MucjExID0gc3RhcnRSZWdzLT5taXNjLkFSTS5yMTE7CiAgICB1cmVncy5yNyAgPSBzdGFydFJlZ3MtPm1pc2MuQVJNLnI3OwotICAgQWRkciBmcF9taW4gPSB1cmVncy5yMTM7CisgICBBZGRyIGZwX21pbiA9IHVyZWdzLnIxMyAtIFZHX1NUQUNLX1JFRFpPTkVfU1pCOwogCiAgICAvKiBTbmFmZmxlIElQcyBmcm9tIHRoZSBjbGllbnQncyBzdGFjayBpbnRvIGlwc1swIC4uIG1heF9uX2lwcy0xXSwKICAgICAgIHN0b3BwaW5nIHdoZW4gdGhlIHRyYWlsIGdvZXMgY29sZCwgd2hpY2ggd2UgZ3Vlc3MgdG8gYmUKQEAgLTk0OSw3ICs5OTYsNyBAQAogICAgICAgZnBfbWF4IC09IHNpemVvZihBZGRyKTsKIAogICAgaWYgKGRlYnVnKQotICAgICAgVkdfKHByaW50ZikoIlxubWF4X25faXBzPSVkIGZwX21pbj0weCVseCBmcF9tYXhfb3JpZz0weCVseCwgIgorICAgICAgVkdfKHByaW50ZikoIlxubWF4X25faXBzPSV1IGZwX21pbj0weCVseCBmcF9tYXhfb3JpZz0weCVseCwgIgogICAgICAgICAgICAgICAgICAgImZwX21heD0weCVseCByMTU9MHglbHggcjEzPTB4JWx4XG4iLAogICAgICAgICAgICAgICAgICAgbWF4X25faXBzLCBmcF9taW4sIGZwX21heF9vcmlnLCBmcF9tYXgsCiAgICAgICAgICAgICAgICAgICB1cmVncy5yMTUsIHVyZWdzLnIxMyk7CkBAIC05OTYsNyArMTA0Myw3IEBACiAgICAgICAgICAgICBWR18ocHJpbnRmKSgiVVNJTkcgQ0ZJOiByMTU6IDB4JWx4LCByMTM6IDB4JWx4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgdXJlZ3MucjE1LCB1cmVncy5yMTMpOwogICAgICAgICAgdXJlZ3MucjE1ID0gKHVyZWdzLnIxNSAmIDB4RkZGRkZGRkUpIC0gMTsKLSAgICAgICAgIGlmIChVTkxJS0VMWShjbXJmID4gMCkpIHtSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7fTsKKyAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQogCkBAIC0xMDI0LDcgKzEwNzEsNyBAQAogICAgICAgICAgICAgaWYgKHNwcykgc3BzW2ldID0gMDsKICAgICAgICAgICAgIGlmIChmcHMpIGZwc1tpXSA9IDA7CiAgICAgICAgICAgICBpcHNbaSsrXSA9IGNhbmQ7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoY21yZiA+IDApKSB7UkVDVVJTSVZFX01FUkdFKGNtcmYsaXBzLGkpO307CisgICAgICAgICAgICBSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7CiAgICAgICAgICAgICBuQnlTdGFja1NjYW4rKzsKICAgICAgICAgIH0KICAgICAgIH0KQEAgLTEwNDEsNyArMTA4OCw3IEBACiAgICAgICAgICAgICAgICBpZiAoc3BzKSBzcHNbaV0gPSAwOwogICAgICAgICAgICAgICAgaWYgKGZwcykgZnBzW2ldID0gMDsKICAgICAgICAgICAgICAgIGlwc1tpKytdID0gY2FuZDsKLSAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWShjbXJmID4gMCkpIHtSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7fTsKKyAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgICAgICAgIGlmICgrK25CeVN0YWNrU2NhbiA+PSBWR18oY2xvX3Vud19zdGFja19zY2FuX2ZyYW1lcykpIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgfQpAQCAtMTA3OSw3ICsxMTI2LDcgQEAKICAgIHVyZWdzLnNwID0gc3RhcnRSZWdzLT5yX3NwOwogICAgdXJlZ3MueDMwID0gc3RhcnRSZWdzLT5taXNjLkFSTTY0LngzMDsKICAgIHVyZWdzLngyOSA9IHN0YXJ0UmVncy0+bWlzYy5BUk02NC54Mjk7Ci0gICBBZGRyIGZwX21pbiA9IHVyZWdzLnNwOworICAgQWRkciBmcF9taW4gPSB1cmVncy5zcCAtIFZHX1NUQUNLX1JFRFpPTkVfU1pCOwogCiAgICAvKiBTbmFmZmxlIElQcyBmcm9tIHRoZSBjbGllbnQncyBzdGFjayBpbnRvIGlwc1swIC4uIG1heF9uX2lwcy0xXSwKICAgICAgIHN0b3BwaW5nIHdoZW4gdGhlIHRyYWlsIGdvZXMgY29sZCwgd2hpY2ggd2UgZ3Vlc3MgdG8gYmUKQEAgLTEwOTMsNyArMTE0MCw3IEBACiAgICAgICBmcF9tYXggLT0gc2l6ZW9mKEFkZHIpOwogCiAgICBpZiAoZGVidWcpCi0gICAgICBWR18ocHJpbnRmKSgiXG5tYXhfbl9pcHM9JWQgZnBfbWluPTB4JWx4IGZwX21heF9vcmlnPTB4JWx4LCAiCisgICAgICBWR18ocHJpbnRmKSgiXG5tYXhfbl9pcHM9JXUgZnBfbWluPTB4JWx4IGZwX21heF9vcmlnPTB4JWx4LCAiCiAgICAgICAgICAgICAgICAgICAiZnBfbWF4PTB4JWx4IFBDPTB4JWx4IFNQPTB4JWx4XG4iLAogICAgICAgICAgICAgICAgICAgbWF4X25faXBzLCBmcF9taW4sIGZwX21heF9vcmlnLCBmcF9tYXgsCiAgICAgICAgICAgICAgICAgICB1cmVncy5wYywgdXJlZ3Muc3ApOwpAQCAtMTEzNyw3ICsxMTg0LDcgQEAKICAgICAgICAgICAgIFZHXyhwcmludGYpKCJVU0lORyBDRkk6IHBjOiAweCVseCwgc3A6IDB4JWx4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgdXJlZ3MucGMsIHVyZWdzLnNwKTsKICAgICAgICAgIHVyZWdzLnBjID0gdXJlZ3MucGMgLSAxOwotICAgICAgICAgaWYgKFVOTElLRUxZKGNtcmYgPiAwKSkge1JFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTt9OworICAgICAgICAgUkVDVVJTSVZFX01FUkdFKGNtcmYsaXBzLGkpOwogICAgICAgICAgY29udGludWU7CiAgICAgICB9CiAKQEAgLTExNzMsNyArMTIyMCw3IEBACiAgICBEM1Vud2luZFJlZ3MgdXJlZ3M7CiAgICB1cmVncy5pYSA9IHN0YXJ0UmVncy0+cl9wYzsKICAgIHVyZWdzLnNwID0gc3RhcnRSZWdzLT5yX3NwOwotICAgQWRkciBmcF9taW4gPSB1cmVncy5zcDsKKyAgIEFkZHIgZnBfbWluID0gdXJlZ3Muc3AgLSBWR19TVEFDS19SRURaT05FX1NaQjsKICAgIHVyZWdzLmZwID0gc3RhcnRSZWdzLT5taXNjLlMzOTBYLnJfZnA7CiAgICB1cmVncy5sciA9IHN0YXJ0UmVncy0+bWlzYy5TMzkwWC5yX2xyOwogCkBAIC0xMTgyLDcgKzEyMjksNyBAQAogICAgICAgZnBfbWF4IC09IHNpemVvZihBZGRyKTsKIAogICAgaWYgKGRlYnVnKQotICAgICAgVkdfKHByaW50ZikoIm1heF9uX2lwcz0lZCBmcF9taW49MHglbHggZnBfbWF4X29yaWc9MHglbHgsICIKKyAgICAgIFZHXyhwcmludGYpKCJtYXhfbl9pcHM9JXUgZnBfbWluPTB4JWx4IGZwX21heF9vcmlnPTB4JWx4LCAiCiAgICAgICAgICAgICAgICAgICAiZnBfbWF4PTB4JWx4IElBPTB4JWx4IFNQPTB4JWx4IEZQPTB4JWx4XG4iLAogICAgICAgICAgICAgICAgICAgbWF4X25faXBzLCBmcF9taW4sIGZwX21heF9vcmlnLCBmcF9tYXgsCiAgICAgICAgICAgICAgICAgICB1cmVncy5pYSwgdXJlZ3Muc3AsdXJlZ3MuZnApOwpAQCAtMTIwNSw3ICsxMjUyLDcgQEAKICAgICAgICAgIGlmIChmcHMpIGZwc1tpXSA9IHVyZWdzLmZwOwogICAgICAgICAgaXBzW2krK10gPSB1cmVncy5pYSAtIDE7CiAgICAgICAgICB1cmVncy5pYSA9IHVyZWdzLmlhIC0gMTsKLSAgICAgICAgIGlmIChVTkxJS0VMWShjbXJmID4gMCkpIHtSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7fTsKKyAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQogICAgICAgLyogQSBwcm9ibGVtIG9uIHRoZSBmaXJzdCBmcmFtZT8gTGV0cyBhc3N1bWUgaXQgd2FzIGEgYmFkIGp1bXAuCkBAIC0xMjIyLDcgKzEyNjksNyBAQAogICAgICAgICAgfQogICAgICAgICAgdXJlZ3MuaWEgPSB1cmVncy5sciAtIDE7CiAgICAgICAgICBpcHNbaSsrXSA9IHVyZWdzLmxyIC0gMTsKLSAgICAgICAgIGlmIChVTkxJS0VMWShjbXJmID4gMCkpIHtSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7fTsKKyAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQogCkBAIC0xMjU2LDcgKzEzMDMsNyBAQAogICAgRDNVbndpbmRSZWdzIHVyZWdzOwogICAgdXJlZ3MucGMgPSBzdGFydFJlZ3MtPnJfcGM7CiAgICB1cmVncy5zcCA9IHN0YXJ0UmVncy0+cl9zcDsKLSAgIEFkZHIgZnBfbWluID0gdXJlZ3Muc3A7CisgICBBZGRyIGZwX21pbiA9IHVyZWdzLnNwIC0gVkdfU1RBQ0tfUkVEWk9ORV9TWkI7CiAKICNpZiBkZWZpbmVkKFZHUF9taXBzMzJfbGludXgpCiAgICB1cmVncy5mcCA9IHN0YXJ0UmVncy0+bWlzYy5NSVBTMzIucjMwOwpAQCAtMTI3NSw3ICsxMzIyLDcgQEAKICAgICAgIGZwX21heCAtPSBzaXplb2YoQWRkcik7CiAKICAgIGlmIChkZWJ1ZykKLSAgICAgIFZHXyhwcmludGYpKCJtYXhfbl9pcHM9JWQgZnBfbWluPTB4JWx4IGZwX21heF9vcmlnPTB4JWx4LCAiCisgICAgICBWR18ocHJpbnRmKSgibWF4X25faXBzPSV1IGZwX21pbj0weCVseCBmcF9tYXhfb3JpZz0weCVseCwgIgogICAgICAgICAgICAgICAgICAgImZwX21heD0weCVseCBwYz0weCVseCBzcD0weCVseCBmcD0weCVseFxuIiwKICAgICAgICAgICAgICAgICAgIG1heF9uX2lwcywgZnBfbWluLCBmcF9tYXhfb3JpZywgZnBfbWF4LAogICAgICAgICAgICAgICAgICAgdXJlZ3MucGMsIHVyZWdzLnNwLCB1cmVncy5mcCk7CkBAIC0xMzA1LDcgKzEzNTIsNyBAQAogICAgICAgICAgICAgaWYgKGZwcykgZnBzW2ldID0gdXJlZ3MuZnA7CiAgICAgICAgICAgICBpcHNbaSsrXSA9IHVyZWdzLnBjIC0gNDsKICAgICAgICAgICAgIHVyZWdzLnBjID0gdXJlZ3MucGMgLSA0OwotICAgICAgICAgICAgaWYgKFVOTElLRUxZKGNtcmYgPiAwKSkge1JFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTt9OworICAgICAgICAgICAgUkVDVVJTSVZFX01FUkdFKGNtcmYsaXBzLGkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHVyZWdzID0gdXJlZ3NfY29weTsKQEAgLTEzNjIsNyArMTQwOSw3IEBACiAgICAgICAgICBpZiAoMCA9PSB1cmVncy5yYSB8fCAxID09IHVyZWdzLnJhKSBicmVhazsKICAgICAgICAgIHVyZWdzLnBjID0gdXJlZ3MucmEgLSA4OwogICAgICAgICAgaXBzW2krK10gPSB1cmVncy5yYSAtIDg7Ci0gICAgICAgICBpZiAoVU5MSUtFTFkoY21yZiA+IDApKSB7UkVDVVJTSVZFX01FUkdFKGNtcmYsaXBzLGkpO307CisgICAgICAgICBSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgIH0KIApAQCAtMTM3OCw3ICsxNDI1LDcgQEAKICAgICAgICAgIGlmICgwID09IHVyZWdzLnJhIHx8IDEgPT0gdXJlZ3MucmEpIGJyZWFrOwogICAgICAgICAgdXJlZ3MucGMgPSB1cmVncy5yYSAtIDg7CiAgICAgICAgICBpcHNbaSsrXSA9IHVyZWdzLnJhIC0gODsKLSAgICAgICAgIGlmIChVTkxJS0VMWShjbXJmID4gMCkpIHtSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7fTsKKyAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQogICAgICAgLyogTm8gbHVjay4gIFdlIGhhdmUgdG8gZ2l2ZSB1cC4gKi8KQEAgLTE0MTEsNyArMTQ1OCw3IEBACiAgICBEM1Vud2luZFJlZ3MgdXJlZ3M7CiAgICB1cmVncy5wYyA9IHN0YXJ0UmVncy0+cl9wYzsKICAgIHVyZWdzLnNwID0gc3RhcnRSZWdzLT5yX3NwOwotICAgQWRkciBmcF9taW4gPSB1cmVncy5zcDsKKyAgIEFkZHIgZnBfbWluID0gdXJlZ3Muc3AgLSBWR19TVEFDS19SRURaT05FX1NaQjsKIAogICAgdXJlZ3MuZnAgPSBzdGFydFJlZ3MtPm1pc2MuVElMRUdYLnI1MjsKICAgIHVyZWdzLmxyID0gc3RhcnRSZWdzLT5taXNjLlRJTEVHWC5yNTU7CkBAIC0xNDIxLDcgKzE0NjgsNyBAQAogICAgICAgZnBfbWF4IC09IHNpemVvZihBZGRyKTsKIAogICAgaWYgKGRlYnVnKQotICAgICAgVkdfKHByaW50ZikoIm1heF9uX2lwcz0lZCBmcF9taW49MHglbHggZnBfbWF4X29yaWc9MHglbHgsICIKKyAgICAgIFZHXyhwcmludGYpKCJtYXhfbl9pcHM9JXUgZnBfbWluPTB4JWx4IGZwX21heF9vcmlnPTB4JWx4LCAiCiAgICAgICAgICAgICAgICAgICAiZnBfbWF4PTB4JWx4IHBjPTB4JWx4IHNwPTB4JWx4IGZwPTB4JWx4XG4iLAogICAgICAgICAgICAgICAgICAgbWF4X25faXBzLCBmcF9taW4sIGZwX21heF9vcmlnLCBmcF9tYXgsCiAgICAgICAgICAgICAgICAgICB1cmVncy5wYywgdXJlZ3Muc3AsIHVyZWdzLmZwKTsKQEAgLTE0NTIsNyArMTQ5OSw3IEBACiAgICAgICAgICAgIGlmICh1cmVncy5wYyAhPSB1cmVnc19jb3B5LnBjICYmIHVyZWdzLnNwICE9IHVyZWdzX2NvcHkuc3ApCiAgICAgICAgICAgICAgIGlwc1tpKytdID0gdXJlZ3MucGMgLSA4OwogICAgICAgICAgICB1cmVncy5wYyA9IHVyZWdzLnBjIC0gODsKLSAgICAgICAgICAgaWYgKFVOTElLRUxZKGNtcmYgPiAwKSkgeyBSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7IH07CisgICAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICB1cmVncyA9IHVyZWdzX2NvcHk7CkBAIC0xNTUyLDcgKzE1OTksNyBAQAogCiAgICAgICAgICAgIGlwc1tpKytdID0gdXJlZ3MucGM7CiAKLSAgICAgICAgICAgaWYgKFVOTElLRUxZKGNtcmYgPiAwKSkgeyBSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7IH07CisgICAgICAgICAgIFJFQ1VSU0lWRV9NRVJHRShjbXJmLGlwcyxpKTsKICAgICAgICAgfQogICAgICAgICBjb250aW51ZTsKICAgICAgfQpAQCAtMTU3NCw3ICsxNjIxLDcgQEAKIAogICAgICAgICB1cmVncy5wYyA9IHVyZWdzLmxyIC0gODsKICAgICAgICAgaXBzW2krK10gPSB1cmVncy5sciAtIDg7Ci0gICAgICAgIGlmIChVTkxJS0VMWShjbXJmID4gMCkpIHsgUkVDVVJTSVZFX01FUkdFKGNtcmYsaXBzLGkpOyB9OworICAgICAgICBSRUNVUlNJVkVfTUVSR0UoY21yZixpcHMsaSk7CiAgICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIC8qIE5vIGx1Y2suICBXZSBoYXZlIHRvIGdpdmUgdXAuICovCkBAIC0xNjU5LDkgKzE3MDYsOSBAQAogICAgc3RhcnRSZWdzLnJfcGMgKz0gKExvbmcpKFdvcmQpZmlyc3RfaXBfZGVsdGE7CiAKICAgIGlmICgwKQotICAgICAgVkdfKHByaW50ZikoInRpZCAlZDogc3RhY2tfaGlnaGVzdD0weCUwOGx4IGlwPTB4JTAxMGxseCAiCisgICAgICBWR18ocHJpbnRmKSgidGlkICV1OiBzdGFja19oaWdoZXN0PTB4JTA4bHggaXA9MHglMDEwbGx4ICIKICAgICAgICAgICAgICAgICAgICJzcD0weCUwMTBsbHhcbiIsCi0JCSAgdGlkLCBzdGFja19oaWdoZXN0X2J5dGUsCisgICAgICAgICAgICAgICAgICB0aWQsIHN0YWNrX2hpZ2hlc3RfYnl0ZSwKICAgICAgICAgICAgICAgICAgIHN0YXJ0UmVncy5yX3BjLCBzdGFydFJlZ3Mucl9zcCk7CiAKICAgIHJldHVybiBWR18oZ2V0X1N0YWNrVHJhY2Vfd3JrKSh0aWQsIGlwcywgbWF4X25faXBzLCAKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c2NhbGwuYyBiL2NvcmVncmluZC9tX3N5c2NhbGwuYwppbmRleCBmMTUyYjcyLi4zMDhmY2ZlIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXNjYWxsLmMKKysrIGIvY29yZWdyaW5kL21fc3lzY2FsbC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM4LDExICszOCw1OSBAQAogICAgQnVpbGRpbmcgc3lzY2FsbCByZXR1cm4gdmFsdWVzLgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKLQogLyogTWFrZSBhIFN5c1JlcyB2YWx1ZSBmcm9tIGEgc3lzY2FsbCByZXR1cm4gdmFsdWUuICBUaGlzIGlzCi0gICBMaW51eC1zcGVjaWZpYy4KKyAgIHBsYXRmb3JtIHNwZWNpZmljLiAqLwogCisjaWYgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9taXBzNjRfbGludXgpCisKK1N5c1JlcyBWR18obWtfU3lzUmVzX21pcHMzMl9saW51eCkgKCBVV29yZCB2MCwgVVdvcmQgdjEsIFVXb3JkIGEzICkgeworICAgLyogTUlQUyB1c2VzIGEzICE9IDAgdG8gZmxhZyBhbiBlcnJvciAqLworICAgU3lzUmVzIHJlczsKKyAgIHJlcy5faXNFcnJvciA9IChhMyAhPSAoVVdvcmQpMCk7CisgICByZXMuX3ZhbCAgICAgPSB2MDsKKyAgIHJlcy5fdmFsRXggICA9IHYxOworICAgcmV0dXJuIHJlczsKK30KKworU3lzUmVzIFZHXyhta19TeXNSZXNfbWlwczY0X2xpbnV4KSAoIFVMb25nIHYwLCBVTG9uZyB2MSwgVUxvbmcgYTMgKSB7CisgICAvKiBNSVBTIHVzZXMgYTMgIT0gMCB0byBmbGFnIGFuIGVycm9yICovCisgICBTeXNSZXMgcmVzOworICAgcmVzLl9pc0Vycm9yID0gKGEzICE9IChVTG9uZykwKTsKKyAgIHJlcy5fdmFsICAgICA9IHYwOworICAgcmVzLl92YWxFeCAgID0gdjE7CisgICByZXR1cm4gcmVzOworfQorCisvKiBHZW5lcmljIGNvbnN0cnVjdG9ycy4gKi8KK1N5c1JlcyBWR18obWtfU3lzUmVzX0Vycm9yKSAoIFVXb3JkIGVyciApIHsKKyAgIFN5c1JlcyByOworICAgci5faXNFcnJvciA9IFRydWU7CisgICByLl92YWwgICAgID0gZXJyOworICAgci5fdmFsRXggICA9IDA7CisgICByZXR1cm4gcjsKK30KKworU3lzUmVzIFZHXyhta19TeXNSZXNfU3VjY2VzcykgKCBVV29yZCByZXMgKSB7CisgICBTeXNSZXMgcjsKKyAgIHIuX2lzRXJyb3IgPSBGYWxzZTsKKyAgIHIuX3ZhbCAgICAgPSByZXM7CisgICByLl92YWxFeCAgID0gMDsKKyAgIHJldHVybiByOworfQorCitTeXNSZXMgVkdfKG1rX1N5c1Jlc19TdWNjZXNzRXgpICggVVdvcmQgcmVzLCBVV29yZCByZXNFeCApIHsKKyAgIFN5c1JlcyByOworICAgci5faXNFcnJvciA9IEZhbHNlOworICAgci5fdmFsICAgICA9IHJlczsKKyAgIHIuX3ZhbEV4ICAgPSByZXNFeDsKKyAgIHJldHVybiByOworfQorCisKKyNlbGlmIGRlZmluZWQoVkdPX2xpbnV4KSBcCisgICAgICAmJiAhZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSAmJiAhZGVmaW5lZChWR1BfbWlwczY0X2xpbnV4KQorCisvKgogICAgRnJvbToKICAgIGh0dHA6Ly9zb3VyY2VzLnJlZGhhdC5jb20vY2dpLWJpbi9jdnN3ZWIuY2dpL2xpYmMvc3lzZGVwcy91bml4L3N5c3YvCiAgICBsaW51eC9pMzg2L3N5c2RlcC5oPwpAQCAtMTQ0LDMyICsxOTIsOSBAQAogICAgcmV0dXJuIHJlczsKIH0KIAotI2lmIGRlZmluZWQoVkdBX21pcHM2NCkgfHwgZGVmaW5lZChWR0FfbWlwczMyKQotLyogTUlQUyB1c2VzIGEzICE9IDAgdG8gZmxhZyBhbiBlcnJvciAqLwotU3lzUmVzIFZHXyhta19TeXNSZXNfbWlwczMyX2xpbnV4KSAoIFVXb3JkIHYwLCBVV29yZCB2MSwgVVdvcmQgYTMgKSB7Ci0gICBTeXNSZXMgcmVzOwotICAgcmVzLl9pc0Vycm9yID0gKGEzICE9IChVV29yZCkwKTsKLSAgIHJlcy5fdmFsICAgICA9IHYwOwotICAgcmVzLl92YWxFeCAgID0gdjE7Ci0gICByZXR1cm4gcmVzOwotfQotCi0vKiBNSVBTIHVzZXMgYTMgIT0gMCB0byBmbGFnIGFuIGVycm9yICovCi1TeXNSZXMgVkdfKG1rX1N5c1Jlc19taXBzNjRfbGludXgpICggVUxvbmcgdjAsIFVMb25nIHYxLCBVTG9uZyBhMyApIHsKLSAgIFN5c1JlcyByZXM7Ci0gICByZXMuX2lzRXJyb3IgPSAoYTMgIT0gKFVMb25nKTApOwotICAgcmVzLl92YWwgICAgID0gdjA7Ci0gICByZXMuX3ZhbEV4ICAgPSB2MTsKLSAgIHJldHVybiByZXM7Ci19Ci0jZW5kaWYKLQogLyogR2VuZXJpYyBjb25zdHJ1Y3RvcnMuICovCiBTeXNSZXMgVkdfKG1rX1N5c1Jlc19FcnJvcikgKCBVV29yZCBlcnIgKSB7CiAgICBTeXNSZXMgcjsKLSNpZiBkZWZpbmVkKFZHQV9taXBzNjQpIHx8IGRlZmluZWQoVkdBX21pcHMzMikKLSAgIHIuX3ZhbEV4ICAgPSAwOwotI2VuZGlmCiAgICByLl9pc0Vycm9yID0gVHJ1ZTsKICAgIHIuX3ZhbCAgICAgPSBlcnI7CiAgICByZXR1cm4gcjsKQEAgLTE3Nyw5ICsyMDIsNiBAQAogCiBTeXNSZXMgVkdfKG1rX1N5c1Jlc19TdWNjZXNzKSAoIFVXb3JkIHJlcyApIHsKICAgIFN5c1JlcyByOwotI2lmIGRlZmluZWQoVkdBX21pcHM2NCkgfHwgZGVmaW5lZChWR0FfbWlwczMyKQotICAgci5fdmFsRXggICA9IDA7Ci0jZW5kaWYKICAgIHIuX2lzRXJyb3IgPSBGYWxzZTsKICAgIHIuX3ZhbCAgICAgPSByZXM7CiAgICByZXR1cm4gcjsKQEAgLTI3NSw2ICsyOTcsNTEgQEAKIH0KIAogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCisvKiBHZW5lcmljIGNvbnN0cnVjdG9ycy4gKi8KK1N5c1JlcyBWR18obWtfU3lzUmVzX0Vycm9yKSAoIFVXb3JkIGVyciApIHsKKyAgIFN5c1JlcyByOworICAgci5fdmFsICAgICA9IGVycjsKKyAgIHIuX3ZhbDIgICAgPSAwOworICAgci5faXNFcnJvciA9IFRydWU7CisgICByZXR1cm4gcjsKK30KKworU3lzUmVzIFZHXyhta19TeXNSZXNfU3VjY2VzcykgKCBVV29yZCByZXMgKSB7CisgICBTeXNSZXMgcjsKKyAgIHIuX3ZhbCAgICAgPSByZXM7CisgICByLl92YWwyICAgID0gMDsKKyAgIHIuX2lzRXJyb3IgPSBGYWxzZTsKKyAgIHJldHVybiByOworfQorCitTeXNSZXMgVkdfKG1rX1N5c1Jlc194ODZfc29sYXJpcykgKCBCb29sIGlzRXJyLCBVSW50IHZhbCwgVUludCB2YWwyICkKK3sKKyAgIFN5c1JlcyByZXM7CisKKyAgIC8vIHN0YXkgc2FuZQorICAgdmdfYXNzZXJ0KGlzRXJyID09IFRydWUgfHwgaXNFcnIgPT0gRmFsc2UpOworCisgICByZXMuX3ZhbCAgPSB2YWw7CisgICByZXMuX3ZhbDIgPSB2YWwyOworICAgcmVzLl9pc0Vycm9yID0gaXNFcnI7CisgICByZXR1cm4gcmVzOworfQorCitTeXNSZXMgVkdfKG1rX1N5c1Jlc19hbWQ2NF9zb2xhcmlzKSAoIEJvb2wgaXNFcnIsIFVMb25nIHZhbCwgVUxvbmcgdmFsMiApCit7CisgICBTeXNSZXMgcmVzOworCisgICAvLyBzdGF5IHNhbmUKKyAgIHZnX2Fzc2VydChpc0VyciA9PSBUcnVlIHx8IGlzRXJyID09IEZhbHNlKTsKKworICAgcmVzLl92YWwgID0gdmFsOworICAgcmVzLl92YWwyID0gdmFsMjsKKyAgIHJlcy5faXNFcnJvciA9IGlzRXJyOworICAgcmV0dXJuIHJlczsKK30KKwogI2Vsc2UKICMgIGVycm9yICJVbmtub3duIE9TIgogI2VuZGlmCkBAIC03ODIsNiArODQ5LDkzIEBACiAgICAgIi5wcmV2aW91c1xuIgogICAgICk7CiAKKyNlbGlmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorCitleHRlcm4gVUxvbmcKK2RvX3N5c2NhbGxfV1JLKFVXb3JkIGExLCBVV29yZCBhMiwgVVdvcmQgYTMsICAgIC8qIDQoZXNwKS4uMTIoZXNwKSAqLworICAgICAgICAgICAgICAgVVdvcmQgYTQsIFVXb3JkIGE1LCBVV29yZCBhNiwgICAgLyogMTYoZXNwKS4uMjQoZXNwKSAqLworICAgICAgICAgICAgICAgVVdvcmQgYTcsIFVXb3JkIGE4LCAgICAgICAgICAgICAgLyogMjgoZXNwKS4uMzIoZXNwKSAqLworICAgICAgICAgICAgICAgVVdvcmQgc3lzY2FsbF9ubywgICAgICAgICAgICAgICAgLyogMzYoZXNwKSAqLworICAgICAgICAgICAgICAgLypPVVQqL1VJbnQgKmVycmZsYWcpOyAgICAgICAgICAgLyogNDAoZXNwKSAqLworLyogQ2xhc3NpYyB1bml4IHN5c2NhbGwuLiBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFjaywgYW4gdW51c2VkIChieSB0aGUga2VybmVsKQorICAgcmV0dXJuIGFkZHJlc3MgYXQgMChlc3ApLCBhIHN5c25vIGluIGVheCwgYSByZXN1bHQgaW4gZWR4OmVheCwgdGhlIGNhcnJ5CisgICBmbGFnIHNldCBvbiBlcnJvci4gKi8KK19fYXNtX18gKAorIi50ZXh0XG4iCisiLmdsb2JsIGRvX3N5c2NhbGxfV1JLXG4iCisiZG9fc3lzY2FsbF9XUks6XG4iCisiICAgICAgIG1vdmwgICAgNDAoJWVzcCksICVlY3hcbiIgICAgICAgLyogYXNzdW1lIHN5c2NhbGwgc3VjY2VzcyAqLworIiAgICAgICBtb3ZsICAgICQwLCAoJWVjeClcbiIKKyIgICAgICAgbW92bCAgICAzNiglZXNwKSwgJWVheFxuIgorIiAgICAgICBpbnQgICAgICQweDkxXG4iCisiICAgICAgIGpuYyAgICAgMWZcbiIgICAgICAgICAgICAgICAgICAgLyoganVtcCBpZiBzdWNjZXNzICovCisiICAgICAgIG1vdmwgICAgNDAoJWVzcCksICVlY3hcbiIgICAgICAgLyogc3lzY2FsbCBmYWlsZWQgLSBzZXQgKmVycmZsYWcgKi8KKyIgICAgICAgbW92bCAgICAkMSwgKCVlY3gpXG4iCisiMTogICAgIHJldFxuIgorIi5wcmV2aW91c1xuIgorKTsKKworZXh0ZXJuIFVMb25nCitkb19zeXNjYWxsX2Zhc3RfV1JLKFVXb3JkIHN5c2NhbGxfbm8pOyAgICAgICAgICAvKiA0KGVzcCkgKi8KKy8qIEZhc3R0cmFwIHN5c2NhbGwuLiBubyBwYXJhbWV0ZXJzLCBhIHN5c25vIGluIGVheCwgYSByZXN1bHQgaW4gZWR4OmVheCwKKyAgIG5ldmVyIGZhaWxzIChpZiB0aGUgc3lzbm8gaXMgdmFsaWQpLiAqLworX19hc21fXyAoCisiLnRleHRcbiIKKyIuZ2xvYmwgZG9fc3lzY2FsbF9mYXN0X1dSS1xuIgorImRvX3N5c2NhbGxfZmFzdF9XUks6XG4iCisiICAgICAgIG1vdmwgICAgNCglZXNwKSwgJWVheFxuIgorIiAgICAgICBpbnQgICAgICQweEQyXG4iCisiICAgICAgIHJldFxuIgorIi5wcmV2aW91c1xuIgorKTsKKworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKworZXh0ZXJuIFVMb25nCitkb19zeXNjYWxsX1dSSyhVV29yZCBhMSwgVVdvcmQgYTIsIFVXb3JkIGEzLCAgICAvKiByZGksIHJzaSwgcmR4ICovCisgICAgICAgICAgICAgICBVV29yZCBhNCwgVVdvcmQgYTUsIFVXb3JkIGE2LCAgICAvKiByY3gsIHI4LCByOSAqLworICAgICAgICAgICAgICAgVVdvcmQgYTcsIFVXb3JkIGE4LCAgICAgICAgICAgICAgLyogOChyc3ApLCAxNihyc3ApICovCisgICAgICAgICAgICAgICBVV29yZCBzeXNjYWxsX25vLCAgICAgICAgICAgICAgICAvKiAyNChyc3ApICovCisgICAgICAgICAgICAgICAvKk9VVCovVUxvbmcgKmVycmZsYWcsICAgICAgICAgICAvKiAzMihyc3ApICovCisgICAgICAgICAgICAgICAvKk9VVCovVUxvbmcgKnJlczIpOyAgICAgICAgICAgICAvKiA0MChyc3ApICovCisvKiBGaXJzdCA2IHBhcmFtZXRlcnMgaW4gcmVnaXN0ZXJzIHJkaSwgcnNpLCByZHgsIHIxMCwgcjgsIHI5LCBuZXh0CisgICAyIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLCBhbiB1bnVzZWQgKGJ5IHRoZSBrZXJuZWwpIHJldHVybiBhZGRyZXNzIGF0CisgICAwKHJzcCksIGEgc3lzbm8gaW4gcmF4LCBhIHJlc3VsdCBpbiByZHg6cmF4LCB0aGUgY2FycnkgZmxhZyBzZXQgb24KKyAgIGVycm9yLiAqLworX19hc21fXyAoCisiLnRleHRcbiIKKyIuZ2xvYmwgZG9fc3lzY2FsbF9XUktcbiIKKyJkb19zeXNjYWxsX1dSSzpcbiIKKyIgICAgICAgbW92cSAgICAlcmN4LCAlcjEwXG4iICAgICAgICAgICAvKiBwYXNzIHJjeCBpbiByMTAgaW5zdGVhZCAqLworIiAgICAgICBtb3ZxICAgIDMyKCVyc3ApLCAlcmN4XG4iICAgICAgIC8qIGFzc3VtZSBzeXNjYWxsIHN1Y2Nlc3MgKi8KKyIgICAgICAgbW92cSAgICAkMCwgKCVyY3gpXG4iCisiICAgICAgIG1vdnEgICAgMjQoJXJzcCksICVyYXhcbiIKKyIgICAgICAgc3lzY2FsbFxuIgorIiAgICAgICBqbmMgICAgIDFmXG4iICAgICAgICAgICAgICAgICAgIC8qIGp1bXAgaWYgc3VjY2VzcyAqLworIiAgICAgICBtb3ZxICAgIDMyKCVyc3ApLCAlcmN4XG4iICAgICAgIC8qIHN5c2NhbGwgZmFpbGVkIC0gc2V0ICplcnJmbGFnICovCisiICAgICAgIG1vdnEgICAgJDEsICglcmN4KVxuIgorIjE6ICAgICBtb3ZxICAgIDQwKCVyc3ApLCAlcmN4XG4iICAgICAgIC8qIHNhdmUgMm5kIHJlc3VsdCB3b3JkICovCisiICAgICAgIG1vdnEgICAgJXJkeCwgKCVyY3gpXG4iCisiICAgICAgIHJldFxuIgorIi5wcmV2aW91c1xuIgorKTsKKworZXh0ZXJuIFVMb25nCitkb19zeXNjYWxsX2Zhc3RfV1JLKFVXb3JkIHN5c2NhbGxfbm8sICAgICAgICAgICAvKiByZGkgKi8KKyAgICAgICAgICAgICAgICAgICAgLypPVVQqL1VMb25nICpyZXMyKTsgICAgICAgIC8qIHJzaSAqLworLyogRmFzdHRyYXAgc3lzY2FsbC4uIG5vIHBhcmFtZXRlcnMsIGEgc3lzbm8gaW4gcmF4LCBhIHJlc3VsdCBpbiByZHg6cmF4LAorICAgbmV2ZXIgZmFpbHMgKGlmIHRoZSBzeXNubyBpcyB2YWxpZCkuICovCitfX2FzbV9fICgKKyIudGV4dFxuIgorIi5nbG9ibCBkb19zeXNjYWxsX2Zhc3RfV1JLXG4iCisiZG9fc3lzY2FsbF9mYXN0X1dSSzpcbiIKKyIgICAgICAgbW92cSAgICAlcmRpLCAlcmF4XG4iCisiICAgICAgIGludCAgICAgJDB4RDJcbiIKKyIgICAgICAgbW92cSAgICAlcmR4LCAoJXJzaSlcbiIgICAgICAgICAvKiBzYXZlIDJuZCByZXN1bHQgd29yZCAqLworIiAgICAgICByZXRcbiIKKyIucHJldmlvdXNcbiIKKyk7CisKICNlbHNlCiAjICBlcnJvciBVbmtub3duIHBsYXRmb3JtCiAjZW5kaWYKQEAgLTkxNSw2ICsxMDY5LDYyIEBACiAKICAgIHJldHVybiBWR18obWtfU3lzUmVzX3RpbGVneF9saW51eCkoIHZhbCApOwogCisjICBlbGlmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgVUludCB2YWwsIHZhbDIsIGVyciA9IEZhbHNlOworICAgQm9vbCByZXN0YXJ0OworICAgVUxvbmcgdTY0OworICAgVUNoYXIgc3NjbGFzcyA9IFZHX1NPTEFSSVNfU1lTTk9fQ0xBU1Moc3lzbm8pOworCisgICBzd2l0Y2ggKHNzY2xhc3MpIHsKKyAgICAgIGNhc2UgVkdfU09MQVJJU19TWVNDQUxMX0NMQVNTX0NMQVNTSUM6CisgICAgICAgICAvKiBUaGUgU29sYXJpcyBrZXJuZWwgZG9lcyBub3QgcmVzdGFydCBzeXNjYWxscyBhdXRvbWF0aWNhbGx5IHNvIGl0CisgICAgICAgICAgICBpcyBkb25lIGhlcmUuICovCisgICAgICAgICBkbyB7CisgICAgICAgICAgICB1NjQgPSBkb19zeXNjYWxsX1dSSyhhMSxhMixhMyxhNCxhNSxhNixhNyxhOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHX1NPTEFSSVNfU1lTTk9fSU5ERVgoc3lzbm8pLCAmZXJyKTsKKyAgICAgICAgICAgIHZhbCA9IChVSW50KXU2NDsKKyAgICAgICAgICAgIHJlc3RhcnQgPSBlcnIgJiYgKHZhbCA9PSBWS0lfRUlOVFIgfHwgdmFsID09IFZLSV9FUkVTVEFSVCk7CisgICAgICAgICB9IHdoaWxlIChyZXN0YXJ0KTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWR19TT0xBUklTX1NZU0NBTExfQ0xBU1NfRkFTVFRSQVA6CisgICAgICAgICB1NjQgPSBkb19zeXNjYWxsX2Zhc3RfV1JLKFZHX1NPTEFSSVNfU1lTTk9fSU5ERVgoc3lzbm8pKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgICAgIGJyZWFrOworICAgfQorCisgICB2YWwgPSAoVUludCl1NjQ7CisgICB2YWwyID0gKFVJbnQpKHU2NCA+PiAzMik7CisgICByZXR1cm4gVkdfKG1rX1N5c1Jlc194ODZfc29sYXJpcykoZXJyID8gVHJ1ZSA6IEZhbHNlLCB2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyID8gMCA6IHZhbDIpOworCisjICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBVTG9uZyB2YWwsIHZhbDIsIGVyciA9IEZhbHNlOworICAgQm9vbCByZXN0YXJ0OworICAgVUNoYXIgc3NjbGFzcyA9IFZHX1NPTEFSSVNfU1lTTk9fQ0xBU1Moc3lzbm8pOworCisgICBzd2l0Y2ggKHNzY2xhc3MpIHsKKyAgICAgIGNhc2UgVkdfU09MQVJJU19TWVNDQUxMX0NMQVNTX0NMQVNTSUM6CisgICAgICAgICAvKiBUaGUgU29sYXJpcyBrZXJuZWwgZG9lcyBub3QgcmVzdGFydCBzeXNjYWxscyBhdXRvbWF0aWNhbGx5IHNvIGl0CisgICAgICAgICAgICBpcyBkb25lIGhlcmUuICovCisgICAgICAgICBkbyB7CisgICAgICAgICAgICB2YWwgPSBkb19zeXNjYWxsX1dSSyhhMSxhMixhMyxhNCxhNSxhNixhNyxhOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHX1NPTEFSSVNfU1lTTk9fSU5ERVgoc3lzbm8pLCAmZXJyLCAmdmFsMik7CisgICAgICAgICAgICByZXN0YXJ0ID0gZXJyICYmICh2YWwgPT0gVktJX0VJTlRSIHx8IHZhbCA9PSBWS0lfRVJFU1RBUlQpOworICAgICAgICAgfSB3aGlsZSAocmVzdGFydCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVkdfU09MQVJJU19TWVNDQUxMX0NMQVNTX0ZBU1RUUkFQOgorICAgICAgICAgdmFsID0gZG9fc3lzY2FsbF9mYXN0X1dSSyhWR19TT0xBUklTX1NZU05PX0lOREVYKHN5c25vKSwgJnZhbDIpOworICAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICAgdmdfYXNzZXJ0KDApOworICAgICAgICAgYnJlYWs7CisgICB9CisKKyAgIHJldHVybiBWR18obWtfU3lzUmVzX2FtZDY0X3NvbGFyaXMpKGVyciA/IFRydWUgOiBGYWxzZSwgdmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyID8gMCA6IHZhbDIpOworCiAjZWxzZQogIyAgZXJyb3IgVW5rbm93biBwbGF0Zm9ybQogI2VuZGlmCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1kYXJ3aW4uaCBiL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCmluZGV4IGI2OGFmNDIuLjYyNzg0ZTkgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIEFwcGxlIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IEFwcGxlIEluYy4KICAgICAgIEdyZWcgUGFya2VyICBncGFya2VyQGFwcGxlLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMzUsNyArMzM1LDcgQEAKIAogI2lmIERBUldJTl9WRVJTIDwgREFSV0lOXzEwXzEwCiAvLyBOWUkgc2VtX2dldHZhbHVlIDI3NAotI2VsaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwCisjZWxpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTAKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBzeXNjdGxieW5hbWUpOyAgICAgICAgICAgIC8vIDI3NAogI2VuZGlmCiAKQEAgLTM1MCw3ICszNTAsNyBAQAogREVDTF9URU1QTEFURShkYXJ3aW4sIGZjaG1vZF9leHRlbmRlZCk7ICAgICAgICAgLy8gMjgzCiBERUNMX1RFTVBMQVRFKGRhcndpbiwgYWNjZXNzX2V4dGVuZGVkKTsgICAgICAgICAvLyAyODQKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBzZXR0aWQpOyAgICAgICAgICAgICAgICAgIC8vIDI4NQotI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF83CisjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzYKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBnZXR0aWQpOyAgICAgICAgICAgICAgICAgIC8vIDI4NgogI2VuZGlmCiAvLyBOWUkgc2V0c2dyb3VwcyAyODcKQEAgLTM2MiwyMyArMzYyLDQ0IEBACiAvLyBOWUkgaWRlbnRpdHlzdmMgMjkzCiAvLyBOWUkgc2hhcmVkX3JlZ2lvbl9jaGVja19ucCAyOTQKIC8vIE5ZSSBzaGFyZWRfcmVnaW9uX21hcF9ucCAyOTUKKyNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfNgorLy8gTllJIHZtX3ByZXNzdXJlX21vbml0b3IgMjk2CisvLyBOWUkgcHN5bmNoX3J3X2xvbmdyZGxvY2sgMjk3CisvLyBOWUkgcHN5bmNoX3J3X3lpZWxkd3Jsb2NrIDI5OAorLy8gTllJIHBzeW5jaF9yd19kb3duZ3JhZGUgMjk5CisvLyBOWUkgcHN5bmNoX3J3X3VwZ3JhZGUgMzAwCitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5bmNoX211dGV4d2FpdCk7ICAgICAgIC8vIDMwMQorREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9tdXRleGRyb3ApOyAgICAgICAvLyAzMDIKK0RFQ0xfVEVNUExBVEUoZGFyd2luLCBwc3luY2hfY3Zicm9hZCk7ICAgICAgICAgLy8gMzAzCitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5bmNoX2N2c2lnbmFsKTsgICAgICAgIC8vIDMwNAorREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9jdndhaXQpOyAgICAgICAgICAvLyAzMDUKK0RFQ0xfVEVNUExBVEUoZGFyd2luLCBwc3luY2hfcndfcmRsb2NrKTsgICAgICAgLy8gMzA2CitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5bmNoX3J3X3dybG9jayk7ICAgICAgIC8vIDMwNworREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9yd191bmxvY2spOyAgICAgICAvLyAzMDgKKy8vIE5ZSSBwc3luY2hfcndfdW5sb2NrMiAzMDkKKyNlbHNlCiAvLyBvbGQgbG9hZF9zaGFyZWRfZmlsZQogLy8gb2xkIHJlc2V0X3NoYXJlZF9maWxlCiAvLyBvbGQgbmV3X3N5c3RlbV9zaGFyZWRfcmVnaW9ucwogLy8gb2xkIHNoYXJlZF9yZWdpb25fbWFwX2ZpbGVfbnAKIC8vIG9sZCBzaGFyZWRfcmVnaW9uX21ha2VfcHJpdmF0ZV9ucAotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9tdXRleHdhaXQpOyAgICAgICAvLyAzMDEgLy8gbmV3IGluIDEwLjcgPwotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9tdXRleGRyb3ApOyAgICAgICAvLyAzMDIgLy8gbmV3IGluIDEwLjcgPwotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9jdmJyb2FkKTsgICAgICAgICAvLyAzMDMgLy8gbmV3IGluIDEwLjcgPwotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9jdnNpZ25hbCk7ICAgICAgICAvLyAzMDQgLy8gbmV3IGluIDEwLjcgPwotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9jdndhaXQpOyAgICAgICAgICAvLyAzMDUgLy8gbmV3IGluIDEwLjcgPwotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9yd19yZGxvY2spOyAgICAgICAvLyAzMDYgLy8gbmV3IGluIDEwLjcgPwotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9yd193cmxvY2spOyAgICAgICAvLyAzMDcgLy8gbmV3IGluIDEwLjcgPwotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9yd191bmxvY2spOyAgICAgICAvLyAzMDggLy8gbmV3IGluIDEwLjcgPworLy8gTllJIF9fcHRocmVhZF9tdXRleF9kZXN0cm95IDMwMQorLy8gTllJIF9fcHRocmVhZF9tdXRleF9pbml0IDMwMgorLy8gTllJIF9fcHRocmVhZF9tdXRleF9sb2NrIDMwMworLy8gTllJIF9fcHRocmVhZF9tdXRleF90cnlsb2NrIDMwNAorLy8gTllJIF9fcHRocmVhZF9tdXRleF91bmxvY2sgMzA1CisvLyBOWUkgX19wdGhyZWFkX2NvbmRfaW5pdCAzMDYKKy8vIE5ZSSBfX3B0aHJlYWRfY29uZF9kZXN0cm95IDMwNworLy8gTllJIF9fcHRocmVhZF9jb25kX2Jyb2FkY2FzdCAzMDgKIC8vIE5ZSSBfX3B0aHJlYWRfY29uZF9zaWduYWwgMzA5CisjZW5kaWYKIC8vIE5ZSSBnZXRzaWQgMzEwCiAvLyBOWUkgc2V0dGlkX3dpdGhfcGlkIDMxMQotREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9jdmNscnByZXBvc3QpOyAgICAvLyAzMTIgLy8gbmV3IGluIDEwLjcgPworI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF83CitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5bmNoX2N2Y2xycHJlcG9zdCk7ICAgIC8vIDMxMgorI2Vsc2UKKy8vIE5ZSSBfX3B0aHJlYWRfY29uZF90aW1lZHdhaXQgMzEyCisjZW5kaWYKIC8vIE5ZSSBhaW9fZnN5bmMgMzEzCiBERUNMX1RFTVBMQVRFKGRhcndpbiwgYWlvX3JldHVybik7ICAgICAgICAgICAgIC8vIDMxNAogREVDTF9URU1QTEFURShkYXJ3aW4sIGFpb19zdXNwZW5kKTsgICAgICAgICAgICAvLyAzMTUKQEAgLTQwMiw5ICs0MjMsNyBAQAogREVDTF9URU1QTEFURShkYXJ3aW4sIF9fcHRocmVhZF9jYW5jZWxlZCk7ICAgICAgLy8gMzMzCiBERUNMX1RFTVBMQVRFKGRhcndpbiwgX19zZW13YWl0X3NpZ25hbCk7ICAgICAgICAvLyAzMzQKIC8vIG9sZCB1dHJhY2UKLSNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfNgogREVDTF9URU1QTEFURShkYXJ3aW4sIHByb2NfaW5mbyk7ICAgICAgICAgICAgICAgLy8gMzM2Ci0jZW5kaWYKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBzZW5kZmlsZSk7ICAgICAgICAgICAgICAgIC8vIDMzNwogREVDTF9URU1QTEFURShkYXJ3aW4sIHN0YXQ2NCk7ICAgICAgICAgICAgICAgICAgLy8gMzM4CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgZnN0YXQ2NCk7ICAgICAgICAgICAgICAgICAvLyAzMzkKQEAgLTQyNSw5ICs0NDQsNyBAQAogLy8gTllJIHNldGF1aWQgMzU0CiAvLyBOWUkgZ2V0YXVkaXQgMzU1CiAvLyBOWUkgc2V0YXVkaXQgMzU2Ci0jaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzcKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBnZXRhdWRpdF9hZGRyKSAgICAgICAgICAgIC8vIDM1NwotI2VuZGlmCiAvLyBOWUkgc2V0YXVkaXRfYWRkciAzNTgKIC8vIE5ZSSBhdWRpdGN0bCAzNTkKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBic2R0aHJlYWRfY3JlYXRlKTsgICAgICAgIC8vIDM2MApAQCAtNDQyLDcgKzQ1OSw5IEBACiBERUNMX1RFTVBMQVRFKGRhcndpbiwga2V2ZW50NjQpOyAgICAgICAgICAgICAgICAvLyAzNjkKIC8vIDM3MAogLy8gMzcxCisjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzYKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBfX3RocmVhZF9zZWxmaWQpOyAgICAgICAgIC8vIDM3MgorI2VuZGlmCiAvLyAzNzMKIC8vIDM3NAogLy8gMzc1CkBAIC01MDYsMTAgKzUyNSwxMCBAQAogLy8gTllJIGF1ZGl0X3Nlc3Npb25fcG9ydCA0MzIKIC8vIE5ZSSBwaWRfc3VzcGVuZCA0MzMKIC8vIE5ZSSBwaWRfcmVzdW1lIDQzNAotI2lmIERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAorI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF8xMAogLy8gTllJIHBpZF9oaWJlcm5hdGUgNDM1CiAvLyBOWUkgcGlkX3NodXRkb3duX3NvY2tldHMgNDM2Ci0jZW5kaWYgLyogREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwICovCisjZW5kaWYgLyogREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEwICovCiAvLyBvbGQgb2xkIHNoYXJlZF9yZWdpb25fc2xpZGVfbnAgNDM3CiAvLyBOWUkgc2hhcmVkX3JlZ2lvbl9tYXBfYW5kX3NsaWRlX25wICAgICAgICAgICAgLy8gNDM4CiAvLyBOWUkga2FzX2luZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDM5CkBAIC01MjksNyArNTQ4LDcgQEAKIC8vIE5ZSSBtZW1vcnlzdGF0dXNfZ2V0X2xldmVsIC8vIDQ1MwogLy8gTllJIHN5c3RlbV9vdmVycmlkZSAvLyA0NTQKIC8vIE5ZSSB2ZnNfcHVyZ2UgLy8gNDU1Ci0jaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwCisjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEwCiAvLyBOWUkgc2ZpX2N0bCAgICAgICAgIC8vIDQ1NgogLy8gTllJIHNmaV9waWRjdGwgICAgICAvLyA0NTcKIC8vIE5ZSSBjb2FsaXRpb24gICAgICAgLy8gNDU4CkBAIC01NjQsNyArNTgzLDcgQEAKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBndWFyZGVkX3dyaXRldl9ucCk7ICAgICAgICAgICAvLyA0ODcKIC8vIE5ZSSByZW5hbWVfZXh0ICAgICAgLy8gNDg4CiAvLyBOWUkgbXJlbWFwX2VuY3J5cHRlZCAgLy8gNDg5Ci0jZW5kaWYgLyogREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwICovCisjZW5kaWYgLyogREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEwICovCiAKIC8vIE1hY2ggbWVzc2FnZSBoZWxwZXJzCiBERUNMX1RFTVBMQVRFKGRhcndpbiwgbWFjaF9wb3J0X3NldF9jb250ZXh0KTsKQEAgLTU3Myw2ICs1OTIsOCBAQAogREVDTF9URU1QTEFURShkYXJ3aW4sIGhvc3RfZ2V0X2lvX21hc3Rlcik7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgaG9zdF9nZXRfY2xvY2tfc2VydmljZSk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgaG9zdF9yZXF1ZXN0X25vdGlmaWNhdGlvbik7CitERUNMX1RFTVBMQVRFKGRhcndpbiwgaG9zdF9jcmVhdGVfbWFjaF92b3VjaGVyKTsKK0RFQ0xfVEVNUExBVEUoZGFyd2luLCBob3N0X2dldF9zcGVjaWFsX3BvcnQpOwogREVDTF9URU1QTEFURShkYXJ3aW4sIG1hY2hfcG9ydF90eXBlKTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBtYWNoX3BvcnRfZXh0cmFjdF9tZW1iZXIpOwogREVDTF9URU1QTEFURShkYXJ3aW4sIG1hY2hfcG9ydF9hbGxvY2F0ZSk7CkBAIC01ODksNiArNjEwLDcgQEAKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBtYWNoX3BvcnRfc2V0X2F0dHJpYnV0ZXMpOwogREVDTF9URU1QTEFURShkYXJ3aW4sIG1hY2hfcG9ydF9pbnNlcnRfbWVtYmVyKTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCB0YXNrX2dldF9zcGVjaWFsX3BvcnQpOworREVDTF9URU1QTEFURShkYXJ3aW4sIHRhc2tfc2V0X3NwZWNpYWxfcG9ydCk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgdGFza19nZXRfZXhjZXB0aW9uX3BvcnRzKTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBzZW1hcGhvcmVfY3JlYXRlKTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBzZW1hcGhvcmVfZGVzdHJveSk7CkBAIC01OTYsNiArNjE4LDcgQEAKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBtYWNoX3BvcnRzX3JlZ2lzdGVyKTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBtYWNoX3BvcnRzX2xvb2t1cCk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgdGFza19pbmZvKTsKK0RFQ0xfVEVNUExBVEUoZGFyd2luLCB0YXNrX3NldF9pbmZvKTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCB0YXNrX3RocmVhZHMpOwogREVDTF9URU1QTEFURShkYXJ3aW4sIHRhc2tfc3VzcGVuZCk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgdGFza19yZXN1bWUpOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtZ2VuZXJpYy5oIGIvY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtZ2VuZXJpYy5oCmluZGV4IGYwMTQ5MTQuLjAyOTI2MGYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWdlbmVyaWMuaAorKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1nZW5lcmljLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTUxLDcgKzUxLDcgQEAKIC8qIEhhbmR5IHNtYWxsIGZ1bmN0aW9uIHRvIGhlbHAgc3RvcCB3cmFwcGVycyBmcm9tIHNlZ2ZhdWx0aW5nIHdoZW4KICAgIHByZXNlbnRlZCB3aXRoIGJvZ3VzIGNsaWVudCBhZGRyZXNzZXMuICBJcyBub3QgdXNlZCBmb3IgZ2VuZXJhdGluZwogICAgdXNlci12aXNpYmxlIGVycm9ycy4gKi8KLWV4dGVybiBCb29sIE1MXyhzYWZlX3RvX2RlcmVmKSAoIHZvaWQqIHN0YXJ0LCBTaXplVCBzaXplICk7CitleHRlcm4gQm9vbCBNTF8oc2FmZV90b19kZXJlZikgKCBjb25zdCB2b2lkICpzdGFydCwgU2l6ZVQgc2l6ZSApOwogCiAvLyBSZXR1cm5zIFRydWUgaWYgdGhlIHNpZ25hbCBpcyBPSyBmb3IgdGhlIGNsaWVudCB0byB1c2UuCiBleHRlcm4gQm9vbCBNTF8oY2xpZW50X3NpZ25hbF9PSykoSW50IHNpZ05vKTsKQEAgLTYxLDExICs2MSwxOCBAQAogQm9vbCBNTF8oZmRfYWxsb3dlZCkoSW50IGZkLCBjb25zdCBIQ2hhciAqc3lzY2FsbG5hbWUsIFRocmVhZElkIHRpZCwKICAgICAgICAgICAgICAgICAgICAgIEJvb2wgaXNOZXdGRCk7CiAKK2V4dGVybiB2b2lkIE1MXyhyZWNvcmRfZmRfY2xvc2UpICAgICAgICAgICAgICAgKEludCBmZCk7CiBleHRlcm4gdm9pZCBNTF8ocmVjb3JkX2ZkX29wZW5fbmFtZWQpICAgICAgICAgIChUaHJlYWRJZCB0aWQsIEludCBmZCk7CiBleHRlcm4gdm9pZCBNTF8ocmVjb3JkX2ZkX29wZW5fbmFtZWxlc3MpICAgICAgIChUaHJlYWRJZCB0aWQsIEludCBmZCk7CiBleHRlcm4gdm9pZCBNTF8ocmVjb3JkX2ZkX29wZW5fd2l0aF9naXZlbl9uYW1lKShUaHJlYWRJZCB0aWQsIEludCBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpwYXRobmFtZSk7CiAKKy8vIFJldHVybiB0cnVlIGlmIGEgZ2l2ZW4gZmlsZSBkZXNjcmlwdG9yIGlzIGFscmVhZHkgcmVjb3JkZWQuCitleHRlcm4gQm9vbCBNTF8oZmRfcmVjb3JkZWQpKEludCBmZCk7CisvLyBSZXR1cm5zIGEgcGF0aG5hbWUgcmVwcmVzZW50aW5nIGEgcmVjb3JkZWQgZmQuCisvLyBSZXR1cm5lZCBzdHJpbmcgbXVzdCBub3QgYmUgbW9kaWZpZWQgbm9yIGZyZWUnZC4KK2V4dGVybiBjb25zdCBIQ2hhciAqTUxfKGZpbmRfZmRfcmVjb3JkZWRfYnlfZmQpKEludCBmZCk7CisKIC8vIFVzZWQgd2hlbiBraWxsaW5nIHRocmVhZHMgLS0gd2UgbXVzdCBub3Qga2lsbCBhIHRocmVhZCBpZiBpdCdzIHRoZSB0aHJlYWQKIC8vIHRoYXQgd291bGQgZG8gVmFsZ3JpbmQncyBmaW5hbCBjbGVhbnVwIGFuZCBvdXRwdXQuCiBleHRlcm4KQEAgLTk0LDYgKzEwMSwxMiBAQAogZXh0ZXJuIAogdm9pZCBNTF8oUE9TVF91bmtub3duX2lvY3RsKShUaHJlYWRJZCB0aWQsIFVJbnQgcmVzLCBVV29yZCByZXF1ZXN0LCBVV29yZCBhcmcpOwogCitleHRlcm4KK3ZvaWQgTUxfKHByZV9hcmd2X2VudnApKEFkZHIgYSwgVGhyZWFkSWQgdGlkLCBjb25zdCBIQ2hhciAqczEsIGNvbnN0IEhDaGFyICpzMik7CisKK2V4dGVybiBCb29sCitNTF8oaGFuZGxlX2F1eHZfb3BlbikoU3lzY2FsbFN0YXR1cyAqc3RhdHVzLCBjb25zdCBIQ2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgaW50IGZsYWdzKTsKIAogREVDTF9URU1QTEFURShnZW5lcmljLCBzeXNfbmlfc3lzY2FsbCk7ICAgICAgICAgICAgLy8gKiBQIC0tIHVuaW1wbGVtZW50ZWQKIERFQ0xfVEVNUExBVEUoZ2VuZXJpYywgc3lzX2V4aXQpOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtbGludXgtdmFyaWFudHMuaCBiL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWxpbnV4LXZhcmlhbnRzLmgKaW5kZXggMDdiNzQ1Zi4uNjZjZGFhNiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtbGludXgtdmFyaWFudHMuaAorKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1saW51eC12YXJpYW50cy5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1saW51eC5oIGIvY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtbGludXguaAppbmRleCA2NTUyZGNhLi4wM2ZjZDExIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1saW51eC5oCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWxpbnV4LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1tYWluLmggYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC1tYWluLmgKaW5kZXggNDEwNWY5Ni4uY2FiYWQ3YyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtbWFpbi5oCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLW1haW4uaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLXNvbGFyaXMuaCBiL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLXNvbGFyaXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzMwZTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtc29sYXJpcy5oCkBAIC0wLDAgKzEsOTIgQEAKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBTb2xhcmlzLXNwZWNpZmljIHN5c2NhbGxzIHN0dWZmLiAgICAgIHByaXZfc3lzd3JhcC1zb2xhcmlzLmggLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBldHIgUGF2bHUKKyAgICAgIHNldHVwQGRhZ29iYWguY3oKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisjaWZuZGVmIF9fUFJJVl9TWVNXUkFQX1NPTEFSSVNfSAorI2RlZmluZSBfX1BSSVZfU1lTV1JBUF9TT0xBUklTX0gKKworI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljcy5oIiAgICAgICAgLy8gVkdfIG1hY3JvCisjaW5jbHVkZSAicHJpdl90eXBlc19uX21hY3Jvcy5oIiAgICAvLyBERUNMX1RFTVBMQVRFCisjaW5jbHVkZSAicHViX2NvcmVfdG9vbGlmYWNlLmgiICAgICAvLyBDb3JlUGFydAorCisvKiBNYWNybyB0byBqb2luIGEgc3lzY2FsbCBuYW1lIHdpdGggYSBzeXNjYWxsIHZhcmlhbnQuICovCisjZGVmaW5lIFNDMihuYW1lLCBzdWJuYW1lKSBcCisgICBuYW1lICJfIiBzdWJuYW1lCisKKy8qIE1hY3JvIHRvIGpvaW4gYSBzeXNjYWxsIG5hbWUgd2l0aCBpdHMgdmFyaWFudCBhbmQgc3ViLXZhcmlhbnQuICovCisjZGVmaW5lIFNDMyhuYW1lLCBzdWJuYW1lLCBzdWJzdWJuYW1lKSBcCisgICBuYW1lICJfIiBzdWJuYW1lICJfIiBzdWJzdWJuYW1lCisKK2V4dGVybiB2b2lkIE1MXyhjYWxsX29uX25ld19zdGFja18wXzEpKEFkZHIgc3RhY2ssIEFkZHIgcmV0YWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpmKShXb3JkKSwgV29yZCBhcmcxKTsKK2V4dGVybiBXb3JkIE1MXyhzdGFydF90aHJlYWRfTk9SRVRVUk4pKHZvaWQgKmFyZyk7CitleHRlcm4gQWRkciBNTF8oYWxsb2NzdGFjaykgICAgICAgICAgIChUaHJlYWRJZCB0aWQpOworZXh0ZXJuIHZvaWQgTUxfKHNldHVwX3N0YXJ0X3RocmVhZF9jb250ZXh0KShUaHJlYWRJZCB0aWQsIHZraV91Y29udGV4dF90ICp1Yyk7CisKK2V4dGVybiBVSW50IE1MXyhmbGV0Y2hlcjMyKShVU2hvcnQgKmJ1ZiwgU2l6ZVQgYmxvY2tzKTsKK2V4dGVybiBVTG9uZyBNTF8oZmxldGNoZXI2NCkoVUludCAqYnVmLCBTaXplVCBibG9ja3MpOworZXh0ZXJuIHZvaWQgTUxfKHNhdmVfbWFjaGluZV9jb250ZXh0KShUaHJlYWRJZCB0aWQsIHZraV91Y29udGV4dF90ICp1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZVBhcnQgcGFydCk7CitleHRlcm4gdm9pZCBNTF8ocmVzdG9yZV9tYWNoaW5lX2NvbnRleHQpKFRocmVhZElkIHRpZCwgdmtpX3Vjb250ZXh0X3QgKnVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JlUGFydCBwYXJ0LCBCb29sIGVzcF9pc190aHJwdHIpOworCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisKK2V4dGVybiB2b2lkIE1MXyhzZXR1cF9nZHQpKFZleEd1ZXN0WDg2U3RhdGUgKnZleCk7CitleHRlcm4gdm9pZCBNTF8oY2xlYW51cF9nZHQpKFZleEd1ZXN0WDg2U3RhdGUgKnZleCk7CitleHRlcm4gdm9pZCBNTF8odXBkYXRlX2dkdF9sd3BncykoVGhyZWFkSWQgdGlkKTsKKworLyogcHJvdG90eXBlcyAqLworREVDTF9URU1QTEFURSh4ODZfc29sYXJpcywgc3lzX2ZzdGF0YXQ2NCk7CitERUNMX1RFTVBMQVRFKHg4Nl9zb2xhcmlzLCBzeXNfb3BlbmF0NjQpOworREVDTF9URU1QTEFURSh4ODZfc29sYXJpcywgc3lzX2xsc2VlazMyKTsKK0RFQ0xfVEVNUExBVEUoeDg2X3NvbGFyaXMsIHN5c19tbWFwNjQpOworREVDTF9URU1QTEFURSh4ODZfc29sYXJpcywgc3lzX3N0YXQ2NCk7CitERUNMX1RFTVBMQVRFKHg4Nl9zb2xhcmlzLCBzeXNfbHN0YXQ2NCk7CitERUNMX1RFTVBMQVRFKHg4Nl9zb2xhcmlzLCBzeXNfZnN0YXQ2NCk7CitERUNMX1RFTVBMQVRFKHg4Nl9zb2xhcmlzLCBzeXNfc3RhdHZmczY0KTsKK0RFQ0xfVEVNUExBVEUoeDg2X3NvbGFyaXMsIHN5c19mc3RhdHZmczY0KTsKK0RFQ0xfVEVNUExBVEUoeDg2X3NvbGFyaXMsIHN5c19zZXRybGltaXQ2NCk7CitERUNMX1RFTVBMQVRFKHg4Nl9zb2xhcmlzLCBzeXNfZ2V0cmxpbWl0NjQpOworREVDTF9URU1QTEFURSh4ODZfc29sYXJpcywgc3lzX3ByZWFkNjQpOworREVDTF9URU1QTEFURSh4ODZfc29sYXJpcywgc3lzX3B3cml0ZTY0KTsKK0RFQ0xfVEVNUExBVEUoeDg2X3NvbGFyaXMsIHN5c19vcGVuNjQpOworCisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorLyogTm90aGluZyB5ZXQuICovCisKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyNlbmRpZgorCisjZW5kaWYgICAvLyBfX1BSSVZfU1lTV1JBUF9TT0xBUklTX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAteGVuLmggYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC14ZW4uaAppbmRleCBhZTZiZjYwLi42OTZkZGE1IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC14ZW4uaAorKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfc3lzd3JhcC14ZW4uaApAQCAtNiw3ICs2LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTIgQ2l0cml4IFN5c3RlbXMKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IENpdHJpeCBTeXN0ZW1zCiAgICAgICBpYW4uY2FtcGJlbGxAY2l0cml4LmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3ByaXZfdHlwZXNfbl9tYWNyb3MuaCBiL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl90eXBlc19uX21hY3Jvcy5oCmluZGV4IDI2YTgyZjcuLjBlYWNmYzcgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl90eXBlc19uX21hY3Jvcy5oCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvcHJpdl90eXBlc19uX21hY3Jvcy5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMTIsNyArMTEyLDcgQEAKICAgICAgIEludCBzX2FyZzY7CiAgICAgICBJbnQgdXVfYXJnNzsKICAgICAgIEludCB1dV9hcmc4OwotIyAgICAgZWxpZiBkZWZpbmVkKFZHUF94ODZfZGFyd2luKQorIyAgICAgZWxpZiBkZWZpbmVkKFZHUF94ODZfZGFyd2luKSB8fCBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKICAgICAgIEludCBzX2FyZzE7CiAgICAgICBJbnQgc19hcmcyOwogICAgICAgSW50IHNfYXJnMzsKQEAgLTEyMSw3ICsxMjEsNyBAQAogICAgICAgSW50IHNfYXJnNjsKICAgICAgIEludCBzX2FyZzc7CiAgICAgICBJbnQgc19hcmc4OwotIyAgICAgZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCisjICAgICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikgfHwgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKICAgICAgIEludCBvX2FyZzE7CiAgICAgICBJbnQgb19hcmcyOwogICAgICAgSW50IG9fYXJnMzsKQEAgLTIwMyw2ICsyMDMsMTAgQEAKIGV4dGVybiBjb25zdCBTeXNjYWxsVGFibGVFbnRyeSBNTF8oc3lzY2FsbF90YWJsZSlbXTsKIGV4dGVybiBjb25zdCBVSW50IE1MXyhzeXNjYWxsX3RhYmxlX3NpemUpOwogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorZXh0ZXJuCitTeXNjYWxsVGFibGVFbnRyeSogTUxfKGdldF9zb2xhcmlzX3N5c2NhbGxfZW50cnkpKCBVSW50IHN5c25vICk7CisKICNlbHNlCiAjICBlcnJvciBVbmtub3duIE9TCiAjZW5kaWYgICAKQEAgLTI4MSw3ICsyODUsNyBAQAogICAgIHZnU3lzV3JhcF8jI2F1eHN0ciMjXyMjbmFtZSMjX2FmdGVyCiAKIC8qIEFkZCBhIGdlbmVyaWMgd3JhcHBlciB0byBhIHN5c2NhbGwgdGFibGUuICovCi0jaWYgZGVmaW5lZChWR09fbGludXgpCisjaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAjICBkZWZpbmUgR0VOWF8oc3lzbm8sIG5hbWUpICBXUkFQUEVSX0VOVFJZX1hfKGdlbmVyaWMsIHN5c25vLCBuYW1lKQogIyAgZGVmaW5lIEdFTlhZKHN5c25vLCBuYW1lKSAgV1JBUFBFUl9FTlRSWV9YWShnZW5lcmljLCBzeXNubywgbmFtZSkKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKQEAgLTMxNiw2ICszMjAsMTYgQEAKICNkZWZpbmUgQVJHNyAgIChhcnJnaHMtPmFyZzcpCiAjZGVmaW5lIEFSRzggICAoYXJyZ2hzLT5hcmc4KQogCisvKiBQcm92aWRlIHNpZ25lZCB2ZXJzaW9ucyBvZiB0aGUgYXJndW1lbnQgdmFsdWVzICovCisjZGVmaW5lIFNBUkcxICAoKFdvcmQpQVJHMSkKKyNkZWZpbmUgU0FSRzIgICgoV29yZClBUkcyKQorI2RlZmluZSBTQVJHMyAgKChXb3JkKUFSRzMpCisjZGVmaW5lIFNBUkc0ICAoKFdvcmQpQVJHNCkKKyNkZWZpbmUgU0FSRzUgICgoV29yZClBUkc1KQorI2RlZmluZSBTQVJHNiAgKChXb3JkKUFSRzYpCisjZGVmaW5lIFNBUkc3ICAoKFdvcmQpQVJHNykKKyNkZWZpbmUgU0FSRzggICgoV29yZClBUkc4KQorCiAvKiBSZWZlcmVuY2UgdG8gdGhlIHN5c2NhbGwncyBjdXJyZW50IHJlc3VsdCBzdGF0dXMvdmFsdWUuICBHZW5lcmFsCiAgICBwYXJhbm9pYSBhbGwgcm91bmQuICovCiAjZGVmaW5lIFNVQ0NFU1MgICAgICAgKHN0YXR1cy0+d2hhdCA9PSBTc0NvbXBsZXRlICYmICFzcl9pc0Vycm9yKHN0YXR1cy0+c3JlcykpCkBAIC0zMzEsNyArMzQ1LDcgQEAKICAgIHJldHVybiBzcl9SZXMoc3QtPnNyZXMpOwogfQogCi0jaWYgZGVmaW5lZChWR09fZGFyd2luKQorI2lmIGRlZmluZWQoVkdPX2RhcndpbikgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIHN0YXRpYyBpbmxpbmUgVVdvcmQgZ2V0UkVTSEkgKCBTeXNjYWxsU3RhdHVzKiBzdCApIHsKICAgIHZnX2Fzc2VydChzdC0+d2hhdCA9PSBTc0NvbXBsZXRlKTsKICAgIHZnX2Fzc2VydCghc3JfaXNFcnJvcihzdC0+c3JlcykpOwpAQCAtNDAzLDcgKzQxNyw3IEBACiAjICBkZWZpbmUgUFJBNShzLHQsYSkgUFJSQW4oNSxzLHQsYSkKICMgIGRlZmluZSBQUkE2KHMsdCxhKSBQUlJBbig2LHMsdCxhKQogCi0jZWxpZiBkZWZpbmVkKFZHUF94ODZfZGFyd2luKQorI2VsaWYgZGVmaW5lZChWR1BfeDg2X2RhcndpbikgfHwgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCiAgICAvKiBVcCB0byA4IHBhcmFtZXRlcnMsIGFsbCBvbiB0aGUgc3RhY2suICovCiAjICBkZWZpbmUgUFJBMShzLHQsYSkgUFNSQW4oMSxzLHQsYSkKICMgIGRlZmluZSBQUkEyKHMsdCxhKSBQU1JBbigyLHMsdCxhKQpAQCAtNDE0LDcgKzQyOCw3IEBACiAjICBkZWZpbmUgUFJBNyhzLHQsYSkgUFNSQW4oNyxzLHQsYSkKICMgIGRlZmluZSBQUkE4KHMsdCxhKSBQU1JBbig4LHMsdCxhKQogCi0jZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pIHx8IGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCiAgICAvKiBVcCB0byA4IHBhcmFtZXRlcnMsIDYgaW4gcmVnaXN0ZXJzLCAyIG9uIHRoZSBzdGFjay4gKi8KICMgIGRlZmluZSBQUkExKHMsdCxhKSBQUlJBbigxLHMsdCxhKQogIyAgZGVmaW5lIFBSQTIocyx0LGEpIFBSUkFuKDIscyx0LGEpCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtYW1kNjQtZGFyd2luLlMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtYW1kNjQtZGFyd2luLlMKaW5kZXggYzU5MzczMC4uNmYxNjUyYiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLWFtZDY0LWRhcndpbi5TCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1hbWQ2NC1kYXJ3aW4uUwpAQCAtNyw3ICs3LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOCw5ICsyOCwxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtc19hc20uaCIKICNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgogCkBAIC0yNTEsNiArMjUyLDkgQEAKIAogI2VuZGlmIC8vIGRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikKIAorLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtYW1kNjQtbGludXguUyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1hbWQ2NC1saW51eC5TCmluZGV4IGE2ZDc0NjkuLjgwY2M3NWMgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1hbWQ2NC1saW51eC5TCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1hbWQ2NC1saW51eC5TCkBAIC03LDcgKzcsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI4LDkgKzI4LDEwIEBACiAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKICNpZiBkZWZpbmVkKFZHUF9hbWQ2NF9saW51eCkKIAotI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKICNpbmNsdWRlICJwdWJfY29yZV92a2lzY251bXNfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIKIApAQCAtMjQ0LDExICsyNDUsMTEgQEAKIE1MXyhibGtzeXNfZmluaXNoZWQpOgkucXVhZCA1YgogLnByZXZpb3VzCiAKLS8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCi0uc2VjdGlvbiAubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi0KICNlbmRpZiAvLyBkZWZpbmVkKFZHUF9hbWQ2NF9saW51eCkKIAorLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtYW1kNjQtc29sYXJpcy5TIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLWFtZDY0LXNvbGFyaXMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDQ1MDNlCi0tLSAvZGV2L251bGwKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLWFtZDY0LXNvbGFyaXMuUwpAQCAtMCwwICsxLDI4MiBAQAorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFN1cHBvcnQgZm9yIGRvaW5nIHN5c3RlbSBjYWxscy4gICAgICBzeXNjYWxsLWFtZDY0LXNvbGFyaXMuUyAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICBmcmFtZXdvcmsuCisKKyAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgUGV0ciBQYXZsdQorICAgICBzZXR1cEBkYWdvYmFoLmN6CisKKyAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgIDAyMTExLTEzMDcsIFVTQS4KKworICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCisjaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKworI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtc19hc20uaCIKKyNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgorCisvKiBGcm9tIHZraS1zb2xhcmlzLmgsIGNoZWNrZWQgYXQgc3RhcnR1cCBieSBtX3ZraS5jLiAqLworI2RlZmluZSBWS0lfU0lHX1NFVE1BU0sgMworCisvKiBQcm90b3R5cGU6CisgICBJbnQgTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9XUkspKAorICAgICAgSW50IHN5c2NhbGxubywJCQkvLyAlcmRpID0gJXJicC00OAorICAgICAgdm9pZCAqZ3Vlc3Rfc3RhdGUsCQkvLyAlcnNpID0gJXJicC00MAorICAgICAgY29uc3QgdmtpX3NpZ3NldF90ICpzeXNtYXNrLAkvLyAlcmR4ID0gJXJicC0zMgorICAgICAgY29uc3QgdmtpX3NpZ3NldF90ICpwb3N0bWFzaywJLy8gJXJjeCA9ICVyYnAtMjQKKyAgICAgIFVDaGFyICpjZmxhZykJCQkvLyAlcjggPSAlcmJwLTE2CisqLworCisubWFjcm8gRVNUQUJMSVNIX1NUQUNLRlJBTUUKKwkvKiBFc3RhYmxpc2ggc3RhY2sgZnJhbWUuICovCisJcHVzaHEJJXJicAorCW1vdnEJJXJzcCwgJXJicAorCXB1c2hxCSVyYngJCQkJLyogc2F2ZSAlcmJ4ICovCisKKwkvKiBXZSdsbCB1c2UgJXJieCBpbnN0ZWFkIG9mICVyYnAgdG8gYWRkcmVzcyB0aGUgc3RhY2sgZnJhbWUgYWZ0ZXIgdGhlCisJICAgZG9vciBzeXNjYWxsIGlzIGZpbmlzaGVkIGJlY2F1c2UgJXJicCBpcyBjbGVhcmVkIGJ5IHRoZSBzeXNjYWxsLiAqLworCW1vdnEJJXJzcCwgJXJieAkJCS8qICVyYnggPSAlcmJwIC0gOCAqLworCisJLyogUHVzaCB0aGUgcGFyYW1ldGVycyBvbiB0aGUgc3RhY2suICovCisJcHVzaHEJJXI4CQkJCS8qIHN0b3JlICVyOCBhdCAlcmJwLTE2ICovCisJcHVzaHEJJXJjeAkJCQkvKiBzdG9yZSAlcmN4IGF0ICVyYnAtMjQgKi8KKwlwdXNocQklcmR4CQkJCS8qIHN0b3JlICVyZHggYXQgJXJicC0zMiAqLworCXB1c2hxCSVyc2kJCQkJLyogc3RvcmUgJXJzaSBhdCAlcmJwLTQwICovCisJcHVzaHEJJXJkaQkJCQkvKiBzdG9yZSAlcmRpIGF0ICVyYnAtNDggKi8KKy5lbmRtCisKKy5tYWNybyBVTkJMT0NLX1NJR05BTFMKKwkvKiBTZXQgdGhlIHNpZ25hbCBtYXNrIHdoaWNoIHNob3VsZCBiZSBjdXJyZW50IGR1cmluZyB0aGUgc3lzY2FsbC4gKi8KKwkvKiBTZXQgdXAgZm9yIHNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCBzeXNtYXNrLCBwb3N0bWFzaykuICovCisJbW92cQktMjQoJXJicCksICVyZHgKKwltb3ZxCS0zMiglcmJwKSwgJXJzaQorCW1vdnEJJFZLSV9TSUdfU0VUTUFTSywgJXJkaQorCW1vdnEJJF9fTlJfc2lncHJvY21hc2ssICVyYXgKKwlzeXNjYWxsCisJamMJc2lncHJvY21hc2tfZmFpbGVkCQkvKiBzaWdwcm9jbWFzayBmYWlsZWQgKi8KKy5lbmRtCisKKy5tYWNybyBSRUJMT0NLX1NJR05BTFMKKwkvKiBTZXQgdXAgZm9yIHNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCBwb3N0bWFzaywgTlVMTCkuICovCisJbW92cQkkMCwgJXJkeAorCW1vdnEJLTI0KCVyYnApLCAlcnNpCisJbW92cQkkVktJX1NJR19TRVRNQVNLLCAlcmRpCisJbW92cQkkX19OUl9zaWdwcm9jbWFzaywgJXJheAorCXN5c2NhbGwKKwkvKiBUaGUgc3lzY2FsbCBhYm92ZSBjaGFuZ2VzIHRoZSBjYXJyeSBmbGFnLiAgVGhpcyBtZWFucyB0aGF0IGlmIHRoZQorCSAgIHN5c2NhbGwgZmFpbHMgYW5kIHdlIHJlY2VpdmUgYW4gaW50ZXJydXB0IGFmdGVyIGl0IHRoZW4gd2UndmUgZ290CisJICAgYW4gaW52YWxpZCBjYXJyeSBmbGFnIHZhbHVlIGluIHRoZSBmaXh1cCBjb2RlLiAgV2UgZG9uJ3QgY2FyZSBhYm91dAorCSAgIGl0IGJlY2F1c2UgdGhpcyBzeXNjYWxsIHNob3VsZCBuZXZlciBmYWlsIGFuZCBpZiBpdCBkb2VzIHRoZW4gd2UncmUKKwkgICBnb2luZyB0byBzdG9wIFZhbGdyaW5kIGFueXdheS4gKi8KKwlqYwlzaWdwcm9jbWFza19mYWlsZWQJCS8qIHNpZ3Byb2NtYXNrIGZhaWxlZCAqLworLmVuZG0KKworLm1hY3JvIFNJTVBMRV9SRVRVUk4KKwl4b3JxCSVyYXgsICVyYXgJCQkvKiBTVUNDRVNTICovCisJbW92cQktOCglcmJwKSwgJXJieAkJCS8qIHJlc3RvcmUgJXJieCAqLworCW1vdnEJJXJicCwgJXJzcAorCXBvcHEJJXJicAorCXJldAorLmVuZG0KKworc2lncHJvY21hc2tfZmFpbGVkOgorCS8qIEZhaWx1cmU6IHJldHVybiAweDgwMDAgfCBlcnJvciBjb2RlLiAqLworCWFuZHEJJDB4N0ZGRiwgJXJheAorCW9ycQkkMHg4MDAwLCAlcmF4CisJbW92cQktOCglcmJwKSwgJXJieAkJCS8qIHJlc3RvcmUgJXJieCAqLworCW1vdnEJJXJicCwgJXJzcAorCXBvcHEJJXJicAorCXJldAorCisuZ2xvYmwgTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9XUkspCitNTF8oZG9fc3lzY2FsbF9mb3JfY2xpZW50X1dSSyk6CisJRVNUQUJMSVNIX1NUQUNLRlJBTUUKKworMToJLyogRXZlbiB0aG91Z2ggd2UgY2FuJ3QgdGFrZSBhIHNpZ25hbCB1bnRpbCB0aGUgc2lncHJvY21hc2sgY29tcGxldGVzLAorCSAgIHN0YXJ0IHRoZSByYW5nZSBlYXJseS4gIElmICVyaXAgaXMgaW4gdGhlIHJhbmdlIFsxLCAyKSwgdGhlIHN5c2NhbGwKKwkgICBoYXNuJ3QgYmVlbiBzdGFydGVkIHlldC4gKi8KKwlVTkJMT0NLX1NJR05BTFMKKworCS8qIENvcHkgc3lzY2FsbCBwYXJhbWV0ZXJzLiAqLworCS8qIGRvX3N5c2NhbGw4ICovCisJLyogNiByZWdpc3RlciBwYXJhbWV0ZXJzLiAqLworCW1vdnEJLTQwKCVyYnApLCAlcmF4CisJbW92cQlPRkZTRVRfYW1kNjRfUkRJKCVyYXgpLCAlcmRpCisJbW92cQlPRkZTRVRfYW1kNjRfUlNJKCVyYXgpLCAlcnNpCisJbW92cQlPRkZTRVRfYW1kNjRfUkRYKCVyYXgpLCAlcmR4CisJbW92cQlPRkZTRVRfYW1kNjRfUjEwKCVyYXgpLCAlcjEwCisJbW92cQlPRkZTRVRfYW1kNjRfUjgoJXJheCksICVyOAorCW1vdnEJT0ZGU0VUX2FtZDY0X1I5KCVyYXgpLCAlcjkKKwkvKiAyIHN0YWNrIHBhcmFtZXRlcnMuICovCisJbW92cQlPRkZTRVRfYW1kNjRfUlNQKCVyYXgpLCAlcmF4CisJbW92cQkxNiglcmF4KSwgJXIxMQorCXB1c2hxCSVyMTEKKwltb3ZxCTgoJXJheCksICVyMTEKKwlwdXNocQklcjExCisJLyogUmV0dXJuIGFkZHJlc3MuICovCisJbW92cQkwKCVyYXgpLCAlcjExCisJcHVzaHEJJXIxMQorCisJLyogUHV0IHN5c2NhbGwgbnVtYmVyIGluICVyYXguICovCisJbW92cQktNDgoJXJicCksICVyYXgKKworCS8qIERvIHRoZSBzeXNjYWxsLiAgTm90ZSB0aGF0IHRoZSBTb2xhcmlzIGtlcm5lbCBkb2Vzbid0IGRpcmVjdGx5CisJICAgcmVzdGFydCBzeXNjYWxscyEgKi8KKwlzeXNjYWxsCisKKzI6CS8qIEluIHRoZSByYW5nZSBbMiwgMyksIHRoZSBzeXNjYWxsIHJlc3VsdCBpcyBpbiAlcmF4IGFuZCAlcmR4IGFuZCBDLAorCSAgIGJ1dCBoYXNuJ3QgYmVlbiBjb21taXR0ZWQgdG8gdGhlIHRocmVhZCBzdGF0ZS4gIElmIHdlIGdldAorCSAgIGludGVycnVwdGVkIGluIHRoaXMgc2VjdGlvbiB0aGVuIHdlJ2xsIGp1c3QgdXNlIHZhbHVlcyBzYXZlZCBpbiB0aGUKKwkgICB1Y29udGV4dCBzdHJ1Y3R1cmUuCisKKwkgICBJbXBvcnRhbnQgbm90ZSBmb3IgdGhpcyBhbmQgdGhlIGZvbGxvd2luZyBzZWN0aW9uOiBEb24ndCBhZGQgaGVyZQorCSAgIGFueSBjb2RlIHRoYXQgYWx0ZXJzIHRoZSBjYXJyeSBmbGFnIG9yIHdvcnNlLCBjYWxsIGFueSBmdW5jdGlvbi4KKwkgICBUaGF0IHdvdWxkIGNvbXBsZXRlbHkgYnJlYWsgdGhlIGZpeHVwIGFmdGVyIGFuIGludGVycnVwdC4gKi8KKwltb3ZxCS00MCglcmJwKSwgJXJjeAorCW1vdnEJJXJheCwgT0ZGU0VUX2FtZDY0X1JBWCglcmN4KQkvKiBzYXZlICVyYXggdG8gVkVYICovCisJbW92cQklcmR4LCBPRkZTRVRfYW1kNjRfUkRYKCVyY3gpCS8qIHNhdmUgJXJkeCB0byBWRVggKi8KKwltb3ZxCS0xNiglcmJwKSwgJXJjeAorCXNldGMJMCglcmN4KQkJCQkvKiBzYXZlIHJldHVybmVkIGNhcnJ5IGZsYWcgKi8KKworMzoJLyogUmUtYmxvY2sgc2lnbmFscy4gSWYgJXJpcCBpcyBpbiBbMywgNCksIHRoZW4gdGhlIHN5c2NhbGwgaXMKKwkgICBjb21wbGV0ZSBhbmQgd2UgZG8gbm90IG5lZWQgdG8gd29ycnkgYWJvdXQgaXQuICBXZSBoYXZlIHRvIG9ubHkKKwkgICBjb3JyZWN0bHkgc2F2ZSB0aGUgY2FycnkgZmxhZy4gIElmIHdlIGdldCBpbnRlcnJ1cHRlZCBpbiB0aGlzCisJICAgc2VjdGlvbiB0aGVuIHdlIGp1c3QgaGF2ZSB0byBwcm9wYWdhdGUgdGhlIGNhcnJ5IGZsYWcgZnJvbSB0aGUKKwkgICB1Y29udGV4dCBzdHJ1Y3R1cmUgdG8gdGhlIHRocmVhZCBzdGF0ZSwgJXJheCBhbmQgJXJkeCB2YWx1ZXMgYXJlCisJICAgYWxyZWFkeSBzYXZlZC4gKi8KKwlSRUJMT0NLX1NJR05BTFMKKworNDoJLyogTm93IHNhZmUgZnJvbSBzaWduYWxzLiAqLworCVNJTVBMRV9SRVRVUk4KKworLnNlY3Rpb24gLnJvZGF0YQorLyogRXhwb3J0IHRoZSByYW5nZXMgc28gdGhhdAorICAgVkdfKGZpeHVwX2d1ZXN0X3N0YXRlX2FmdGVyX3N5c2NhbGxfaW50ZXJydXB0ZWQpIGNhbiBkbyB0aGUgcmlnaHQgdGhpbmcuICovCisKKy5nbG9ibCBNTF8oYmxrc3lzX3NldHVwKQorLmdsb2JsIE1MXyhibGtzeXNfY29tcGxldGUpCisuZ2xvYmwgTUxfKGJsa3N5c19jb21taXR0ZWQpCisuZ2xvYmwgTUxfKGJsa3N5c19maW5pc2hlZCkKK01MXyhibGtzeXNfc2V0dXApOgkucXVhZCAxYgorTUxfKGJsa3N5c19jb21wbGV0ZSk6CS5xdWFkIDJiCitNTF8oYmxrc3lzX2NvbW1pdHRlZCk6CS5xdWFkIDNiCitNTF8oYmxrc3lzX2ZpbmlzaGVkKToJLnF1YWQgNGIKKy5wcmV2aW91cworCisvKiBQcm90b3R5cGU6CisgICBJbnQgTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9kcmV0X1dSSykoCisgICAgICBJbnQgc3lzY2FsbG5vLAkJCS8vICVyZGkgPSAlcmJwLTQ4ID0gJXJieC00OCs4CisgICAgICB2b2lkICpndWVzdF9zdGF0ZSwJCS8vICVyc2kgPSAlcmJwLTQwID0gJXJieC00MCs4CisgICAgICBjb25zdCB2a2lfc2lnc2V0X3QgKnN5c21hc2ssCS8vICVyZHggPSAlcmJwLTMyID0gJXJieC0zMis4CisgICAgICBjb25zdCB2a2lfc2lnc2V0X3QgKnBvc3RtYXNrLAkvLyAlcmN4ID0gJXJicC0yNCA9ICVyYngtMjQrOAorICAgICAgVUNoYXIgKmNmbGFnKQkJCS8vICVyOCA9ICVyYnAtMTYgPSAlcmJ4LTE2KzgKKyovCisKKy8qIERvb3JfcmV0dXJuIGlzIGEgdmVyeSBzcGVjaWFsIGNhbGwgYmVjYXVzZSB0aGUgZGF0YSBhcmUgc3RvcmVkIGJ5IHRoZQorICAga2VybmVsIGRpcmVjdGx5IG9uIHRoZSBzdGFjayBhbmQgdGhlIHN0YWNrIHBvaW50ZXIgaXMgYXBwcm9wcmlhdGVseQorICAgbW9kaWZpZWQgYnkgdGhlIGtlcm5lbC4gIFRoZXJlZm9yZSB3ZSBzd2l0Y2ggdG8gdGhlIGNsaWVudCBzdGFjayBiZWZvcmUKKyAgIGRvaW5nIHRoZSBzeXNjYWxsLCB0aGlzIGlzIHJlbGF0aXZlbHkgdHJpdmlhbCBidXQgYW4gZXh0cmEgY2FyZSBoYXMgdG8gYmUKKyAgIHRha2VuIHdoZW4gd2UgZ2V0IGludGVycnVwdGVkIGF0IHNvbWUgcG9pbnQuICovCisKKy5nbG9ibCBNTF8oZG9fc3lzY2FsbF9mb3JfY2xpZW50X2RyZXRfV1JLKQorTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9kcmV0X1dSSyk6CisJRVNUQUJMSVNIX1NUQUNLRlJBTUUKKworMToJLyogRXZlbiB0aG91Z2ggd2UgY2FuJ3QgdGFrZSBhIHNpZ25hbCB1bnRpbCB0aGUgc2lncHJvY21hc2sgY29tcGxldGVzLAorCSAgIHN0YXJ0IHRoZSByYW5nZSBlYXJseS4gIElmICVyaXAgaXMgaW4gdGhlIHJhbmdlIFsxLCAyKSwgdGhlIHN5c2NhbGwKKwkgICBoYXNuJ3QgYmVlbiBzdGFydGVkIHlldC4gKi8KKwlVTkJMT0NLX1NJR05BTFMKKworCS8qIFByZXBhcmUgNiByZWdpc3RlciBwYXJhbWV0ZXJzLiAqLworCW1vdnEJLTQwKCVyYnApLCAlcmF4CisJbW92cQlPRkZTRVRfYW1kNjRfUkRJKCVyYXgpLCAlcmRpCisJbW92cQlPRkZTRVRfYW1kNjRfUlNJKCVyYXgpLCAlcnNpCisJbW92cQlPRkZTRVRfYW1kNjRfUkRYKCVyYXgpLCAlcmR4CisJbW92cQlPRkZTRVRfYW1kNjRfUjEwKCVyYXgpLCAlcjEwCisJbW92cQlPRkZTRVRfYW1kNjRfUjgoJXJheCksICVyOAorCW1vdnEJT0ZGU0VUX2FtZDY0X1I5KCVyYXgpLCAlcjkKKworCS8qIFN3aXRjaCB0byB0aGUgY2xpZW50IHN0YWNrLiAqLworCW1vdnEJT0ZGU0VUX2FtZDY0X1JTUCglcmF4KSwgJXJzcAkvKiAlcnNwID0gc2ltdWxhdGVkIFJTUCAqLworCS8qIENoYW5nZSAlcmJwIHRvIGEgY2xpZW50IHZhbHVlLiBJdCB3aWxsIGFsd2F5cyBnZXQgY29tbWl0dGVkIGJ5CisJICAgdGhlIGZpeHVwIGNvZGUgZm9yIHJhbmdlIFsyLCAzKSBzbyBpdCBuZWVkcyB0byBiZSBzZXQgdG8gd2hhdCB0aGUKKwkgICBjbGllbnQgZXhwZWN0cy4gKi8KKwltb3ZxCU9GRlNFVF9hbWQ2NF9SQlAoJXJheCksICVyYnAJLyogJXJicCA9IHNpbXVsYXRlZCBSQlAgKi8KKworCS8qIFB1dCBzeXNjYWxsIG51bWJlciBpbiAlcmF4LiAqLworCW1vdnEJLTQ4KzgoJXJieCksICVyYXgKKworCS8qIERvIHRoZSBzeXNjYWxsLiAgTm90ZSB0aGF0IHRoZSBTb2xhcmlzIGtlcm5lbCBkb2Vzbid0IGRpcmVjdGx5CisJICAgcmVzdGFydCBzeXNjYWxscyEgKi8KKwlzeXNjYWxsCisKKzI6CS8qIEluIHRoZSByYW5nZSBbMiwgMyksIHRoZSBzeXNjYWxsIHJlc3VsdCBpcyBpbiAlcmF4LCAlcmR4LCAlcnNwIGFuZAorCSAgICVyYnAgYW5kIEMsIGJ1dCBoYXNuJ3QgYmVlbiBjb21taXR0ZWQgdG8gdGhlIHRocmVhZCBzdGF0ZS4gIElmIHdlCisJICAgZ2V0IGludGVycnVwdGVkIGluIHRoaXMgc2VjdGlvbiB0aGVuIHdlJ2xsIGp1c3QgdXNlIHZhbHVlcyBzYXZlZCBpbgorCSAgIHRoZSB1Y29udGV4dCBzdHJ1Y3R1cmUuCisKKwkgICBJbXBvcnRhbnQgbm90ZSBmb3IgdGhpcyBhbmQgdGhlIGZvbGxvd2luZyBzZWN0aW9uOiBEb24ndCBhZGQgaGVyZQorCSAgIGFueSBjb2RlIHRoYXQgYWx0ZXJzIHRoZSBjYXJyeSBmbGFnIG9yIHdvcnNlLCBjYWxsIGFueSBmdW5jdGlvbi4KKwkgICBUaGF0IHdvdWxkIGNvbXBsZXRlbHkgYnJlYWsgdGhlIGZpeHVwIGFmdGVyIGFuIGludGVycnVwdC4gKi8KKwltb3ZxCS00MCs4KCVyYngpLCAlcmN4CisJbW92cQklcmF4LCBPRkZTRVRfYW1kNjRfUkFYKCVyY3gpCS8qIHNhdmUgJXJheCB0byBWRVggKi8KKwltb3ZxCSVyZHgsIE9GRlNFVF9hbWQ2NF9SRFgoJXJjeCkJLyogc2F2ZSAlcmR4IHRvIFZFWCAqLworCW1vdnEJJXJzcCwgT0ZGU0VUX2FtZDY0X1JTUCglcmN4KQkvKiBzYXZlICVyc3AgdG8gVkVYICovCisJbW92cQklcmJwLCBPRkZTRVRfYW1kNjRfUkJQKCVyY3gpCS8qIHNhdmUgJXJicCB0byBWRVggKi8KKwltb3ZxCS0xNis4KCVyYngpLCAlcmN4CisJc2V0YwkwKCVyY3gpCQkJCS8qIHNhdmUgcmV0dXJuZWQgY2FycnkgZmxhZyAqLworCisJbW92cQklcmJ4LCAlcnNwCQkJLyogc3dpdGNoIHRvIFYgc3RhY2sgKi8KKworMzoJLyogUmUtYmxvY2sgc2lnbmFscy4gSWYgJXJpcCBpcyBpbiBbMywgNCksIHRoZW4gdGhlIHN5c2NhbGwgaXMKKwkgICBjb21wbGV0ZSBhbmQgd2UgZG8gbm90IG5lZWQgd29ycnkgYWJvdXQgaXQuICBXZSBoYXZlIHRvIG9ubHkKKwkgICBjb3JyZWN0bHkgc2F2ZSB0aGUgY2FycnkgZmxhZy4gIElmIHdlIGdldCBpbnRlcnJ1cHRlZCBpbiB0aGlzCisJICAgc2VjdGlvbiB0aGVuIHdlIGp1c3QgaGF2ZSB0byBwcm9wYWdhdGUgdGhlIGNhcnJ5IGZsYWcgZnJvbSB0aGUKKwkgICB1Y29udGV4dCBzdHJ1Y3R1cmUgdG8gdGhlIHRocmVhZCBzdGF0ZSwgJXJheCwgJXJkeCwgJXJzcCBhbmQgJXJicAorCSAgIHZhbHVlcyBhcmUgYWxyZWFkeSBzYXZlZC4gKi8KKwltb3ZxCSVyYngsICVyYnAKKwlhZGRxCSQ4LCAlcmJwCisJUkVCTE9DS19TSUdOQUxTCisKKzQ6CS8qIE5vdyBzYWZlIGZyb20gc2lnbmFscy4gKi8KKwlTSU1QTEVfUkVUVVJOCisKKy5zZWN0aW9uIC5yb2RhdGEKKy5nbG9ibCBNTF8oYmxrc3lzX3NldHVwX0RSRVQpCisuZ2xvYmwgTUxfKGJsa3N5c19jb21wbGV0ZV9EUkVUKQorLmdsb2JsIE1MXyhibGtzeXNfY29tbWl0dGVkX0RSRVQpCisuZ2xvYmwgTUxfKGJsa3N5c19maW5pc2hlZF9EUkVUKQorTUxfKGJsa3N5c19zZXR1cF9EUkVUKToJCS5xdWFkIDFiCitNTF8oYmxrc3lzX2NvbXBsZXRlX0RSRVQpOgkucXVhZCAyYgorTUxfKGJsa3N5c19jb21taXR0ZWRfRFJFVCk6CS5xdWFkIDNiCitNTF8oYmxrc3lzX2ZpbmlzaGVkX0RSRVQpOgkucXVhZCA0YgorLnByZXZpb3VzCisKKyNlbmRpZiAvLyBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorCisvKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLworTUFSS19TVEFDS19OT19FWEVDCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1hcm0tbGludXguUyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1hcm0tbGludXguUwppbmRleCAzODM5Mjk5Li45ZTAyMGY5IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtYXJtLWxpbnV4LlMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLWFybS1saW51eC5TCkBAIC03LDcgKzcsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIEV2YW4gR2VsbGVyIChnYXplQGJlYS5tcykKKyAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgRXZhbiBHZWxsZXIgKGdhemVAYmVhLm1zKQogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTI3LDkgKzI3LDEwIEBACiAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKICNpZiBkZWZpbmVkKFZHUF9hcm1fbGludXgpCiAKLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdmtpc2NudW1zX2FzbS5oIgogI2luY2x1ZGUgImxpYnZleF9ndWVzdF9vZmZzZXRzLmgiCiAgICAgICAKQEAgLTE0MSwxMiArMTQyLDEwIEBACiBNTF8oYmxrc3lzX2NvbW1pdHRlZCk6ICAubG9uZyA0YgogTUxfKGJsa3N5c19maW5pc2hlZCk6ICAgLmxvbmcgNWIKIAotLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLS5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIiwlcHJvZ2JpdHMKLQotLnByZXZpb3VzCi0KICNlbmRpZiAvLyBkZWZpbmVkKFZHUF9hcm1fbGludXgpCisKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKICAgIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1hcm02NC1saW51eC5TIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLWFybTY0LWxpbnV4LlMKaW5kZXggOGIwZTRiMy4uMjMwNmFkZSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLWFybTY0LWxpbnV4LlMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLWFybTY0LWxpbnV4LlMKQEAgLTcsNyArNyw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgT3BlbldvcmtzCisgIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IE9wZW5Xb3JrcwogICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjgsOSArMjgsMTAgQEAKICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgogKi8KIAorI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKKwogI2lmIGRlZmluZWQoVkdQX2FybTY0X2xpbnV4KQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtc19hc20uaCIKICNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgogICAgICAgCkBAIC0xNjksMTIgKzE3MCwxMCBAQAogTUxfKGJsa3N5c19jb21taXR0ZWQpOiAgLnF1YWQgNGIKIE1MXyhibGtzeXNfZmluaXNoZWQpOiAgIC5xdWFkIDViCiAKLS8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCi0uc2VjdGlvbiAubm90ZS5HTlUtc3RhY2ssIiIsJXByb2diaXRzCi0KLS5wcmV2aW91cwotCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfYXJtX2xpbnV4KQorCisvKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLworTUFSS19TVEFDS19OT19FWEVDCiAgICAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtbWlwczMyLWxpbnV4LlMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtbWlwczMyLWxpbnV4LlMKaW5kZXggNGE3NjRhMi4uODU0NTk3NiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLW1pcHMzMi1saW51eC5TCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1taXBzMzItbGludXguUwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI4LDkgKzI4LDEwIEBACiAgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtc19hc20uaCIKICNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgogCkBAIC0yMDIsMTQgKzIwMywxMiBAQAogTUxfKGJsa3N5c19jb21wbGV0ZSk6ICAgLmxvbmcgM2IKIE1MXyhibGtzeXNfY29tbWl0dGVkKTogIC5sb25nIDRiCiBNTF8oYmxrc3lzX2ZpbmlzaGVkKTogICAubG9uZyA1YgotLnByZXZpb3VzCi0vKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLwotLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLCVwcm9nYml0cwotCi0KIAogI2VuZGlmIC8vIGRlZmluZWQoVkdQX21pcHMzMl9saW51eCkKLSAgIAorCisvKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLworTUFSS19TVEFDS19OT19FWEVDCisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1taXBzNjQtbGludXguUyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1taXBzNjQtbGludXguUwppbmRleCAzMzBhYjFkLi42NjAwODc4IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtbWlwczY0LWxpbnV4LlMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLW1pcHM2NC1saW51eC5TCkBAIC03LDcgKzcsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI4LDkgKzI4LDEwIEBACiAgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfbWlwczY0X2xpbnV4KQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtc19hc20uaCIKICNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgogCkBAIC0xNDQsMTIgKzE0NSwxMiBAQAogTUxfKGJsa3N5c19jb21wbGV0ZSk6ICAgLnF1YWQgM2IKIE1MXyhibGtzeXNfY29tbWl0dGVkKTogIC5xdWFkIDRiCiBNTF8oYmxrc3lzX2ZpbmlzaGVkKTogICAucXVhZCA1YgotLnByZXZpb3VzCi0vKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLwotLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLCVwcm9nYml0cwogCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfbWlwczY0X2xpbnV4KQogCisvKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLworTUFSS19TVEFDS19OT19FWEVDCisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1wcGMzMi1saW51eC5TIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXBwYzMyLWxpbnV4LlMKaW5kZXggOWNkMmFhYS4uNjIxMzkyMiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXBwYzMyLWxpbnV4LlMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXBwYzMyLWxpbnV4LlMKQEAgLTcsNyArNyw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICBmcmFtZXdvcmsuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgUGF1bCBNYWNrZXJyYXMgKHBhdWx1c0BzYW1iYS5vcmcpCisgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IFBhdWwgTWFja2VycmFzIChwYXVsdXNAc2FtYmEub3JnKQogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTI3LDkgKzI3LDEwIEBACiAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKICNpZiBkZWZpbmVkKFZHUF9wcGMzMl9saW51eCkKIAotI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKICNpbmNsdWRlICJwdWJfY29yZV92a2lzY251bXNfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIKIAkJCkBAIC0xNTMsMTMgKzE1NCwxMSBAQAogTUxfKGJsa3N5c19jb21taXR0ZWQpOiAubG9uZyA0YgogTUxfKGJsa3N5c19maW5pc2hlZCk6ICAubG9uZyA1YgogCi0ucHJldmlvdXMKLQkJCi0vKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLwotLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfcHBjMzJfbGludXgpCiAKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXBwYzY0YmUtbGludXguUyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1wcGM2NGJlLWxpbnV4LlMKaW5kZXggYTMwMTYxMi4uOWM0MmYzZSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXBwYzY0YmUtbGludXguUworKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtcHBjNjRiZS1saW51eC5TCkBAIC03LDcgKzcsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIFBhdWwgTWFja2VycmFzIDxwYXVsdXNAc2FtYmEub3JnPgorICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBQYXVsIE1hY2tlcnJhcyA8cGF1bHVzQHNhbWJhLm9yZz4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0yNyw5ICsyNywxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfcHBjNjRiZV9saW51eCkKIAotI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKICNpbmNsdWRlICJwdWJfY29yZV92a2lzY251bXNfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIKIAkJCkBAIC0xNjEsMTEgKzE2MiwxMCBAQAogTUxfKGJsa3N5c19jb21taXR0ZWQpOiAucXVhZCA0YgogTUxfKGJsa3N5c19maW5pc2hlZCk6ICAucXVhZCA1YgogCisjZW5kaWYgLy8gZGVmaW5lZChWR1BfcHBjNjRiZV9saW51eCkKIAogLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLS5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLQotI2VuZGlmIC8vIGRlZmluZWQoVkdQX3BwYzY0YmVfbGludXgpCitNQVJLX1NUQUNLX05PX0VYRUMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1wcGM2NGxlLWxpbnV4LlMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtcHBjNjRsZS1saW51eC5TCmluZGV4IDRlYTFmOGYuLmI0NjljYzQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1wcGM2NGxlLWxpbnV4LlMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXBwYzY0bGUtbGludXguUwpAQCAtNyw3ICs3LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBQYXVsIE1hY2tlcnJhcyA8cGF1bHVzQHNhbWJhLm9yZz4KKyAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgUGF1bCBNYWNrZXJyYXMgPHBhdWx1c0BzYW1iYS5vcmc+CiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjcsOSArMjcsMTAgQEAKICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgogKi8KIAorI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKKwogI2lmIGRlZmluZWQoVkdQX3BwYzY0bGVfbGludXgpCiAKLSNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCiAjaW5jbHVkZSAicHViX2NvcmVfdmtpc2NudW1zX2FzbS5oIgogI2luY2x1ZGUgImxpYnZleF9ndWVzdF9vZmZzZXRzLmgiCiAJCQpAQCAtMTc4LDExICsxNzksMTAgQEAKIE1MXyhibGtzeXNfY29tbWl0dGVkKTogLnF1YWQgNGIKIE1MXyhibGtzeXNfZmluaXNoZWQpOiAgLnF1YWQgNWIKIAorI2VuZGlmIC8vIGRlZmluZWQoVkdQX3BwYzY0bGVfbGludXgpCiAKIC8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCi0uc2VjdGlvbiAubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi0KLSNlbmRpZiAvLyBkZWZpbmVkKFZHUF9wcGM2NGxlX2xpbnV4KQorTUFSS19TVEFDS19OT19FWEVDCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtczM5MHgtbGludXguUyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1zMzkweC1saW51eC5TCmluZGV4IDZiMjFlYWMuLmI4YTkzODEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1zMzkweC1saW51eC5TCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC1zMzkweC1saW51eC5TCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDEzCisgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxNQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTYyLDExICsxNjIsMTEgQEAKIE1MXyhibGtzeXNfZmluaXNoZWQpOiAgLnF1YWQgNWIKIC5wcmV2aW91cwogCi0vKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjayAqLwotLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotCiAjZW5kaWYgLyogVkdBX3MzOTB4ICovCiAKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXRpbGVneC1saW51eC5TIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXRpbGVneC1saW51eC5TCmluZGV4IDBiZDM3NTYuLjdiZTJmNmEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC10aWxlZ3gtbGludXguUworKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwtdGlsZWd4LWxpbnV4LlMKQEAgLTI4LDkgKzI4LDEwIEBACiAKIC8qIENvbnRyaWJ1dGVkIGJ5IFpoaS1HYW5nIExpdSA8emxpdSBhdCB0aWxlcmEgZG90IGNvbT4gKi8KIAorI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKKwogI2lmIGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkKIAotI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljc19hc20uaCIKICNpbmNsdWRlICJwdWJfY29yZV92a2lzY251bXNfYXNtLmgiCiAjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIKIApAQCAtMTgwLDExICsxODEsMTIgQEAKICAgICBNTF8oYmxrc3lzX2NvbW1pdHRlZCk6ICAucXVhZCA0YgogICAgIE1MXyhibGtzeXNfZmluaXNoZWQpOiAgIC5xdWFkIDViCiAgICAgLnByZXZpb3VzCi0gICAgLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLSAgICAuc2VjdGlvbiAubm90ZS5HTlUtc3RhY2ssIiIsJXByb2diaXRzCiAKICNlbmRpZiAvKiBkZWZpbmVkKFZHUF90aWxlZ3hfbGludXgpICovCiAKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXg4Ni1kYXJ3aW4uUyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC14ODYtZGFyd2luLlMKaW5kZXggMjg4NTIwZC4uODIzYzliNCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXg4Ni1kYXJ3aW4uUworKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwteDg2LWRhcndpbi5TCkBAIC03LDcgKzcsNyBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI4LDkgKzI4LDEwIEBACiAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3NfYXNtLmgiCisKICNpZiBkZWZpbmVkKFZHUF94ODZfZGFyd2luKQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtc19hc20uaCIKICNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgogCQkKQEAgLTg5LDkgKzkwLDkgQEAKIAkKIExfJDBfMToJLyogRXZlbiB0aG91Z2ggd2UgY2FuJ3QgdGFrZSBhIHNpZ25hbCB1bnRpbCB0aGUKICAgICAgICAgICAgX19wdGhyZWFkX3NpZ21hc2sgY29tcGxldGVzLCBzdGFydCB0aGUgcmFuZ2UgZWFybHkuCi0JICAgSWYgZWlwIGlzIGluIHRoZSByYW5nZSBbMSwyKSwgdGhlIHN5c2NhbGwgaGFzbid0IGJlZW4gc3RhcnRlZCB5ZXQgKi8KKyAgICAgICAgICAgSWYgZWlwIGlzIGluIHRoZSByYW5nZSBbMSwyKSwgdGhlIHN5c2NhbGwgaGFzbid0IGJlZW4gc3RhcnRlZCB5ZXQgKi8KIAotCS8qIFNldCB0aGUgc2lnbmFsIG1hc2sgd2hpY2ggc2hvdWxkIGJlIGN1cnJlbnQgZHVyaW5nIHRoZSBzeXNjYWxsLiAqLworICAgICAgICAvKiBTZXQgdGhlIHNpZ25hbCBtYXNrIHdoaWNoIHNob3VsZCBiZSBjdXJyZW50IGR1cmluZyB0aGUgc3lzY2FsbC4gKi8KICAgICAgICAgLyogU2V0IHVwIGZvciBfX3B0aHJlYWRfc2lnbWFzayhTSUdfU0VUTUFTSywgc3lzbWFzaywgcG9zdG1hc2spICovCiAgICAgICAgIHB1c2hsICAgMjAoJWVicCkKICAgICAgICAgcHVzaGwgICAxNiglZWJwKQpAQCAtMjQ4LDcgKzI0OSwxMCBAQAogTUxfKGJsa3N5c19maW5pc2hlZF9VTklYKToJLmxvbmcgTUtfTF9TQ0NMQVNTX04oVU5JWCw1KQogCiAjZW5kaWYgLy8gZGVmaW5lZChWR1BfeDg2X2RhcndpbikKLSAKKworLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwteDg2LWxpbnV4LlMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwteDg2LWxpbnV4LlMKaW5kZXggZDMyZDUzNy4uZTRjNmEwYSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXNjYWxsLXg4Ni1saW51eC5TCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC14ODYtbGludXguUwpAQCAtNyw3ICs3LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOCw5ICsyOCwxMCBAQAogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCiAjaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KQogCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraXNjbnVtc19hc20uaCIKICNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgogCQkKQEAgLTE4MywxMiArMTg0LDEyIEBACiBNTF8oYmxrc3lzX2NvbW1pdHRlZCk6CS5sb25nIDRiCiBNTF8oYmxrc3lzX2ZpbmlzaGVkKToJLmxvbmcgNWIKIC5wcmV2aW91cwotCQotLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLS5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKIAogI2VuZGlmIC8vIGRlZmluZWQoVkdQX3g4Nl9saW51eCkKIAorLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwteDg2LXNvbGFyaXMuUyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzY2FsbC14ODYtc29sYXJpcy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwZGYzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c2NhbGwteDg2LXNvbGFyaXMuUwpAQCAtMCwwICsxLDI3OSBAQAorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFN1cHBvcnQgZm9yIGRvaW5nIHN5c3RlbSBjYWxscy4gICAgICAgIHN5c2NhbGwteDg2LXNvbGFyaXMuUyAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICBmcmFtZXdvcmsuCisKKyAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTUgUGV0ciBQYXZsdQorICAgICBzZXR1cEBkYWdvYmFoLmN6CisKKyAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgIDAyMTExLTEzMDcsIFVTQS4KKworICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzX2FzbS5oIgorCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisKKyNpbmNsdWRlICJwdWJfY29yZV92a2lzY251bXNfYXNtLmgiCisjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIKKworLyogRnJvbSB2a2ktc29sYXJpcy5oLCBjaGVja2VkIGF0IHN0YXJ0dXAgYnkgbV92a2kuYy4gKi8KKyNkZWZpbmUgVktJX1NJR19TRVRNQVNLIDMKKworLyogUHJvdG90eXBlOgorICAgSW50IE1MXyhkb19zeXNjYWxsX2Zvcl9jbGllbnRfV1JLKSgKKyAgICAgIEludCBzeXNjYWxsbm8sCQkJLy8gJWVicCs4CisgICAgICB2b2lkICpndWVzdF9zdGF0ZSwJCS8vICVlYnArMTIKKyAgICAgIGNvbnN0IHZraV9zaWdzZXRfdCAqc3lzbWFzaywJLy8gJWVicCsxNgorICAgICAgY29uc3QgdmtpX3NpZ3NldF90ICpwb3N0bWFzaywJLy8gJWVicCsyMAorICAgICAgVUNoYXIgKmNmbGFnKQkJCS8vICVlYnArMjQKKyovCisKKy5tYWNybyBFU1RBQkxJU0hfU1RBQ0tGUkFNRQorCS8qIEVzdGFibGlzaCBzdGFjayBmcmFtZS4gKi8KKwlwdXNobAklZWJwCisJbW92bAklZXNwLCAlZWJwCisJcHVzaGwJJWVieAkJCQkvKiBzYXZlICVlYnggKi8KKworCS8qIFdlJ2xsIHVzZSAlZWJ4IGluc3RlYWQgb2YgJWVicCB0byBhZGRyZXNzIHRoZSBzdGFjayBmcmFtZSBhZnRlciB0aGUKKwkgICBkb29yIHN5c2NhbGwgaXMgZmluaXNoZWQgYmVjYXVzZSAlZWJwIGlzIGNsZWFyZWQgYnkgdGhlIHN5c2NhbGwuICovCisJbW92bAklZXNwLCAlZWJ4CQkJLyogJWVieCA9ICVlYnAgLSA0ICovCisuZW5kbQorCisubWFjcm8gVU5CTE9DS19TSUdOQUxTCisJLyogU2V0IHRoZSBzaWduYWwgbWFzayB3aGljaCBzaG91bGQgYmUgY3VycmVudCBkdXJpbmcgdGhlIHN5c2NhbGwuICovCisJLyogU2V0IHVwIGZvciBzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgc3lzbWFzaywgcG9zdG1hc2spLiAqLworCXB1c2hsCTIwKCVlYnApCisJcHVzaGwJMTYoJWVicCkKKwlwdXNobAkkVktJX1NJR19TRVRNQVNLCisJcHVzaGwJJDB4Y2FmZWJhYmUJCQkvKiB0b3RhbGx5IGZha2UgcmV0dXJuIGFkZHJlc3MgKi8KKwltb3ZsCSRfX05SX3NpZ3Byb2NtYXNrLCAlZWF4CisJaW50CSQweDkxCisJamMJc2lncHJvY21hc2tfZmFpbGVkCQkvKiBzaWdwcm9jbWFzayBmYWlsZWQgKi8KKwlhZGRsCSQxNiwgJWVzcAorLmVuZG0KKworLm1hY3JvIFJFQkxPQ0tfU0lHTkFMUworCS8qIFNldCB1cCBmb3Igc2lncHJvY21hc2soU0lHX1NFVE1BU0ssIHBvc3RtYXNrLCBOVUxMKS4gKi8KKwlwdXNobAkkMAorCXB1c2hsCTIwKCVlYnApCisJcHVzaGwJJFZLSV9TSUdfU0VUTUFTSworCXB1c2hsCSQweGNhZmVmMDBkCQkJLyogdG90YWxseSBmYWtlIHJldHVybiBhZGRyZXNzICovCisJbW92bAkkX19OUl9zaWdwcm9jbWFzaywgJWVheAorCWludAkkMHg5MQorCS8qIFRoZSBzeXNjYWxsIGFib3ZlIGNoYW5nZXMgdGhlIGNhcnJ5IGZsYWcuICBUaGlzIG1lYW5zIHRoYXQgaWYgdGhlCisJICAgc3lzY2FsbCBmYWlscyBhbmQgd2UgcmVjZWl2ZSBhbiBpbnRlcnJ1cHQgYWZ0ZXIgaXQgdGhlbiB3ZSd2ZSBnb3QKKwkgICBhbiBpbnZhbGlkIGNhcnJ5IGZsYWcgdmFsdWUgaW4gdGhlIGZpeHVwIGNvZGUuICBXZSBkb24ndCBjYXJlIGFib3V0CisJICAgaXQgYmVjYXVzZSB0aGlzIHN5c2NhbGwgc2hvdWxkIG5ldmVyIGZhaWwgYW5kIGlmIGl0IGRvZXMgdGhlbiB3ZSdyZQorCSAgIGdvaW5nIHRvIHN0b3AgVmFsZ3JpbmQgYW55d2F5LiAqLworCWpjCXNpZ3Byb2NtYXNrX2ZhaWxlZAkJLyogc2lncHJvY21hc2sgZmFpbGVkICovCisJYWRkbAkkMTYsICVlc3AKKy5lbmRtCisKKy5tYWNybyBTSU1QTEVfUkVUVVJOCisJeG9ybAklZWF4LCAlZWF4CQkJLyogU1VDQ0VTUyAqLworCW1vdmwJLTQoJWVicCksICVlYngJCQkvKiByZXN0b3JlICVlYnggKi8KKwltb3ZsCSVlYnAsICVlc3AKKwlwb3BsCSVlYnAKKwlyZXQKKy5lbmRtCisKK3NpZ3Byb2NtYXNrX2ZhaWxlZDoKKwkvKiBGYWlsdXJlOiByZXR1cm4gMHg4MDAwIHwgZXJyb3IgY29kZS4gKi8KKwkvKiBOb3RlIHRoYXQgd2UgZW50ZXIgaGVyZSB3aXRoICVlc3AgYmVpbmcgMTYgdG9vIGxvdyAoNCBleHRyYSB3b3JkcworCSAgIG9uIHRoZSBzdGFjaykuICBCdXQgYmVjYXVzZSB3ZSdyZSBudWtpbmcgdGhlIHN0YWNrIGZyYW1lIG5vdywgdGhhdAorCSAgIGRvZXNuJ3QgbWF0dGVyLiAqLworCWFuZGwJJDB4N0ZGRiwgJWVheAorCW9ybAkkMHg4MDAwLCAlZWF4CisJbW92bAktNCglZWJwKSwgJWVieAkJCS8qIHJlc3RvcmUgJWVieCAqLworCW1vdmwJJWVicCwgJWVzcAorCXBvcGwJJWVicAorCXJldAorCisuZ2xvYmwgTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9XUkspCitNTF8oZG9fc3lzY2FsbF9mb3JfY2xpZW50X1dSSyk6CisJRVNUQUJMSVNIX1NUQUNLRlJBTUUKKworMToJLyogRXZlbiB0aG91Z2ggd2UgY2FuJ3QgdGFrZSBhIHNpZ25hbCB1bnRpbCB0aGUgc2lncHJvY21hc2sgY29tcGxldGVzLAorCSAgIHN0YXJ0IHRoZSByYW5nZSBlYXJseS4gIElmICVlaXAgaXMgaW4gdGhlIHJhbmdlIFsxLCAyKSwgdGhlIHN5c2NhbGwKKwkgICBoYXNuJ3QgYmVlbiBzdGFydGVkIHlldC4gKi8KKwlVTkJMT0NLX1NJR05BTFMKKworCS8qIENvcHkgc3lzY2FsbCBwYXJhbWV0ZXJzIHRvIHRoZSBzdGFjayAtIGFzc3VtZSBubyBtb3JlIHRoYW4gOCBwbHVzCisJICAgdGhlIHJldHVybiBhZGRyZXNzLiAqLworCS8qIGRvX3N5c2NhbGw4ICovCisJbW92bAkxMiglZWJwKSwgJWVkeAorCW1vdmwJT0ZGU0VUX3g4Nl9FU1AoJWVkeCksICVlZHgJLyogJWVkeCA9IHNpbXVsYXRlZCBFU1AgKi8KKwltb3ZsCTI4KzQoJWVkeCksICVlYXgKKwlwdXNobAklZWF4CisJbW92bAkyNCs0KCVlZHgpLCAlZWF4CisJcHVzaGwJJWVheAorCW1vdmwJMjArNCglZWR4KSwgJWVheAorCXB1c2hsCSVlYXgKKwltb3ZsCTE2KzQoJWVkeCksICVlYXgKKwlwdXNobAklZWF4CisJbW92bAkxMis0KCVlZHgpLCAlZWF4CisJcHVzaGwJJWVheAorCW1vdmwJOCs0KCVlZHgpLCAlZWF4CisJcHVzaGwJJWVheAorCW1vdmwJNCs0KCVlZHgpLCAlZWF4CisJcHVzaGwJJWVheAorCW1vdmwJMCs0KCVlZHgpLCAlZWF4CisJcHVzaGwJJWVheAorCS8qIFJldHVybiBhZGRyZXNzLiAqLworCW1vdmwJMCglZWR4KSwgJWVheAorCXB1c2hsCSVlYXgKKworCS8qIFB1dCBzeXNjYWxsIG51bWJlciBpbiAlZWF4LiAqLworCW1vdmwJOCglZWJwKSwgJWVheAorCisJLyogRG8gdGhlIHN5c2NhbGwuICBOb3RlIHRoYXQgdGhlIFNvbGFyaXMga2VybmVsIGRvZXNuJ3QgZGlyZWN0bHkKKwkgICByZXN0YXJ0IHN5c2NhbGxzISAqLworCWludAkkMHg5MQorCisyOgkvKiBJbiB0aGUgcmFuZ2UgWzIsIDMpLCB0aGUgc3lzY2FsbCByZXN1bHQgaXMgaW4gJWVheCBhbmQgJWVkeCBhbmQgQywKKwkgICBidXQgaGFzbid0IGJlZW4gY29tbWl0dGVkIHRvIHRoZSB0aHJlYWQgc3RhdGUuICBJZiB3ZSBnZXQKKwkgICBpbnRlcnJ1cHRlZCBpbiB0aGlzIHNlY3Rpb24gdGhlbiB3ZSdsbCBqdXN0IHVzZSB2YWx1ZXMgc2F2ZWQgaW4gdGhlCisJICAgdWNvbnRleHQgc3RydWN0dXJlLgorCisJICAgSW1wb3J0YW50IG5vdGUgZm9yIHRoaXMgYW5kIHRoZSBmb2xsb3dpbmcgc2VjdGlvbjogRG9uJ3QgYWRkIGhlcmUKKwkgICBhbnkgY29kZSB0aGF0IGFsdGVycyB0aGUgY2FycnkgZmxhZyBvciB3b3JzZSwgY2FsbCBhbnkgZnVuY3Rpb24uCisJICAgVGhhdCB3b3VsZCBjb21wbGV0ZWx5IGJyZWFrIHRoZSBmaXh1cCBhZnRlciBhbiBpbnRlcnJ1cHQuICovCisJbW92bAkxMiglZWJwKSwgJWVjeAorCW1vdmwJJWVheCwgT0ZGU0VUX3g4Nl9FQVgoJWVjeCkJLyogc2F2ZSAlZWF4IHRvIFZFWCAqLworCW1vdmwJJWVkeCwgT0ZGU0VUX3g4Nl9FRFgoJWVjeCkJLyogc2F2ZSAlZWR4IHRvIFZFWCAqLworCW1vdmwJMjQoJWVicCksICVlY3gKKwlzZXRjCTAoJWVjeCkJCQkJLyogc2F2ZSByZXR1cm5lZCBjYXJyeSBmbGFnICovCisKKzM6CS8qIFJlLWJsb2NrIHNpZ25hbHMuIElmICVlaXAgaXMgaW4gWzMsIDQpLCB0aGVuIHRoZSBzeXNjYWxsIGlzCisJICAgY29tcGxldGUgYW5kIHdlIGRvIG5vdCBuZWVkIHRvIHdvcnJ5IGFib3V0IGl0LiAgV2UgaGF2ZSB0byBvbmx5CisJICAgY29ycmVjdGx5IHNhdmUgdGhlIGNhcnJ5IGZsYWcuICBJZiB3ZSBnZXQgaW50ZXJydXB0ZWQgaW4gdGhpcworCSAgIHNlY3Rpb24gdGhlbiB3ZSBqdXN0IGhhdmUgdG8gcHJvcGFnYXRlIHRoZSBjYXJyeSBmbGFnIGZyb20gdGhlCisJICAgdWNvbnRleHQgc3RydWN0dXJlIHRvIHRoZSB0aHJlYWQgc3RhdGUsICVlYXggYW5kICVlZHggdmFsdWVzIGFyZQorCSAgIGFscmVhZHkgc2F2ZWQuICovCisJUkVCTE9DS19TSUdOQUxTCisKKzQ6CS8qIE5vdyBzYWZlIGZyb20gc2lnbmFscy4gKi8KKwlTSU1QTEVfUkVUVVJOCisKKy5zZWN0aW9uIC5yb2RhdGEKKy8qIEV4cG9ydCB0aGUgcmFuZ2VzIHNvIHRoYXQKKyAgIFZHXyhmaXh1cF9ndWVzdF9zdGF0ZV9hZnRlcl9zeXNjYWxsX2ludGVycnVwdGVkKSBjYW4gZG8gdGhlIHJpZ2h0IHRoaW5nLiAqLworCisuZ2xvYmwgTUxfKGJsa3N5c19zZXR1cCkKKy5nbG9ibCBNTF8oYmxrc3lzX2NvbXBsZXRlKQorLmdsb2JsIE1MXyhibGtzeXNfY29tbWl0dGVkKQorLmdsb2JsIE1MXyhibGtzeXNfZmluaXNoZWQpCitNTF8oYmxrc3lzX3NldHVwKToJLmxvbmcgMWIKK01MXyhibGtzeXNfY29tcGxldGUpOgkubG9uZyAyYgorTUxfKGJsa3N5c19jb21taXR0ZWQpOgkubG9uZyAzYgorTUxfKGJsa3N5c19maW5pc2hlZCk6CS5sb25nIDRiCisucHJldmlvdXMKKworLyogUHJvdG90eXBlOgorICAgSW50IE1MXyhkb19zeXNjYWxsX2Zvcl9jbGllbnRfZHJldF9XUkspKAorICAgICAgSW50IHN5c2NhbGxubywJCQkvLyAlZWJwKzggPSAlZWJ4KzgrNAorICAgICAgdm9pZCAqZ3Vlc3Rfc3RhdGUsCQkvLyAlZWJwKzEyID0gJWVieCsxMis0CisgICAgICBjb25zdCB2a2lfc2lnc2V0X3QgKnN5c21hc2ssCS8vICVlYnArMTYgPSAlZWJ4KzE2KzQKKyAgICAgIGNvbnN0IHZraV9zaWdzZXRfdCAqcG9zdG1hc2ssCS8vICVlYnArMjAgPSAlZWJ4KzIwKzQKKyAgICAgIFVDaGFyICpjZmxhZykJCQkvLyAlZWJwKzI0ID0gJWVieCsyNCs0CisqLworCisvKiBEb29yX3JldHVybiBpcyBhIHZlcnkgc3BlY2lhbCBjYWxsIGJlY2F1c2UgdGhlIGRhdGEgYXJlIHN0b3JlZCBieSB0aGUKKyAgIGtlcm5lbCBkaXJlY3RseSBvbiB0aGUgc3RhY2sgYW5kIHRoZSBzdGFjayBwb2ludGVyIGlzIGFwcHJvcHJpYXRlbHkKKyAgIG1vZGlmaWVkIGJ5IHRoZSBrZXJuZWwuICBUaGVyZWZvcmUgd2Ugc3dpdGNoIHRvIHRoZSBjbGllbnQgc3RhY2sgYmVmb3JlCisgICBkb2luZyB0aGUgc3lzY2FsbCwgdGhpcyBpcyByZWxhdGl2ZWx5IHRyaXZpYWwgYnV0IGFuIGV4dHJhIGNhcmUgaGFzIHRvIGJlCisgICB0YWtlbiB3aGVuIHdlIGdldCBpbnRlcnJ1cHRlZCBhdCBzb21lIHBvaW50LiAqLworCisuZ2xvYmwgTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9kcmV0X1dSSykKK01MXyhkb19zeXNjYWxsX2Zvcl9jbGllbnRfZHJldF9XUkspOgorCUVTVEFCTElTSF9TVEFDS0ZSQU1FCisKKzE6CS8qIEV2ZW4gdGhvdWdoIHdlIGNhbid0IHRha2UgYSBzaWduYWwgdW50aWwgdGhlIHNpZ3Byb2NtYXNrIGNvbXBsZXRlcywKKwkgICBzdGFydCB0aGUgcmFuZ2UgZWFybHkuICBJZiAlZWlwIGlzIGluIHRoZSByYW5nZSBbMSwgMiksIHRoZSBzeXNjYWxsCisJICAgaGFzbid0IGJlZW4gc3RhcnRlZCB5ZXQuICovCisJVU5CTE9DS19TSUdOQUxTCisKKwkvKiBTd2l0Y2ggdG8gdGhlIGNsaWVudCBzdGFjay4gKi8KKwltb3ZsCTEyKCVlYnApLCAlZWR4CisJbW92bAlPRkZTRVRfeDg2X0VTUCglZWR4KSwgJWVzcAkvKiAlZXNwID0gc2ltdWxhdGVkIEVTUCAqLworCS8qIENoYW5nZSAlZWJwIHRvIGEgY2xpZW50IHZhbHVlLiBJdCB3aWxsIGFsd2F5cyBnZXQgY29tbWl0dGVkIGJ5CisJICAgdGhlIGZpeHVwIGNvZGUgZm9yIHJhbmdlIFsyLCAzKSBzbyBpdCBuZWVkcyB0byBiZSBzZXQgdG8gd2hhdCB0aGUKKwkgICBjbGllbnQgZXhwZWN0cy4gKi8KKwltb3ZsCU9GRlNFVF94ODZfRUJQKCVlZHgpLCAlZWJwCS8qICVlYnAgPSBzaW11bGF0ZWQgRUJQICovCisKKwkvKiBQdXQgc3lzY2FsbCBudW1iZXIgaW4gJWVheC4gKi8KKwltb3ZsCTgrNCglZWJ4KSwgJWVheAorCisJLyogRG8gdGhlIHN5c2NhbGwuICBOb3RlIHRoYXQgdGhlIFNvbGFyaXMga2VybmVsIGRvZXNuJ3QgZGlyZWN0bHkKKwkgICByZXN0YXJ0IHN5c2NhbGxzISAqLworCWludAkkMHg5MQorCisyOgkvKiBJbiB0aGUgcmFuZ2UgWzIsIDMpLCB0aGUgc3lzY2FsbCByZXN1bHQgaXMgaW4gJWVheCwgJWVkeCwgJWVzcCBhbmQKKwkgICAlZWJwIGFuZCBDLCBidXQgaGFzbid0IGJlZW4gY29tbWl0dGVkIHRvIHRoZSB0aHJlYWQgc3RhdGUuICBJZiB3ZQorCSAgIGdldCBpbnRlcnJ1cHRlZCBpbiB0aGlzIHNlY3Rpb24gdGhlbiB3ZSdsbCBqdXN0IHVzZSB2YWx1ZXMgc2F2ZWQgaW4KKwkgICB0aGUgdWNvbnRleHQgc3RydWN0dXJlLgorCisJICAgSW1wb3J0YW50IG5vdGUgZm9yIHRoaXMgYW5kIHRoZSBmb2xsb3dpbmcgc2VjdGlvbjogRG9uJ3QgYWRkIGhlcmUKKwkgICBhbnkgY29kZSB0aGF0IGFsdGVycyB0aGUgY2FycnkgZmxhZyBvciB3b3JzZSwgY2FsbCBhbnkgZnVuY3Rpb24uCisJICAgVGhhdCB3b3VsZCBjb21wbGV0ZWx5IGJyZWFrIHRoZSBmaXh1cCBhZnRlciBhbiBpbnRlcnJ1cHQuICovCisJbW92bAkxMis0KCVlYngpLCAlZWN4CisJbW92bAklZWF4LCBPRkZTRVRfeDg2X0VBWCglZWN4KQkvKiBzYXZlICVlYXggdG8gVkVYICovCisJbW92bAklZWR4LCBPRkZTRVRfeDg2X0VEWCglZWN4KQkvKiBzYXZlICVlZHggdG8gVkVYICovCisJbW92bAklZXNwLCBPRkZTRVRfeDg2X0VTUCglZWN4KQkvKiBzYXZlICVlc3AgdG8gVkVYICovCisJbW92bAklZWJwLCBPRkZTRVRfeDg2X0VCUCglZWN4KQkvKiBzYXZlICVlYnAgdG8gVkVYICovCisJbW92bAkyNCs0KCVlYngpLCAlZWN4CisJc2V0YwkwKCVlY3gpCQkJCS8qIHNhdmUgcmV0dXJuZWQgY2FycnkgZmxhZyAqLworCisJbW92bAklZWJ4LCAlZXNwCQkJLyogc3dpdGNoIHRvIFYgc3RhY2sgKi8KKworMzoJLyogUmUtYmxvY2sgc2lnbmFscy4gSWYgJWVpcCBpcyBpbiBbMywgNCksIHRoZW4gdGhlIHN5c2NhbGwgaXMKKwkgICBjb21wbGV0ZSBhbmQgd2UgZG8gbm90IG5lZWQgd29ycnkgYWJvdXQgaXQuICBXZSBoYXZlIHRvIG9ubHkKKwkgICBjb3JyZWN0bHkgc2F2ZSB0aGUgY2FycnkgZmxhZy4gIElmIHdlIGdldCBpbnRlcnJ1cHRlZCBpbiB0aGlzCisJICAgc2VjdGlvbiB0aGVuIHdlIGp1c3QgaGF2ZSB0byBwcm9wYWdhdGUgdGhlIGNhcnJ5IGZsYWcgZnJvbSB0aGUKKwkgICB1Y29udGV4dCBzdHJ1Y3R1cmUgdG8gdGhlIHRocmVhZCBzdGF0ZSwgJWVheCwgJWVkeCwgJWVzcCBhbmQgJWVicAorCSAgIHZhbHVlcyBhcmUgYWxyZWFkeSBzYXZlZC4gKi8KKwltb3ZsCSVlYngsICVlYnAKKwlhZGRsCSQ0LCAlZWJwCisJUkVCTE9DS19TSUdOQUxTCisKKzQ6CS8qIE5vdyBzYWZlIGZyb20gc2lnbmFscy4gKi8KKwlTSU1QTEVfUkVUVVJOCisKKy5zZWN0aW9uIC5yb2RhdGEKKy5nbG9ibCBNTF8oYmxrc3lzX3NldHVwX0RSRVQpCisuZ2xvYmwgTUxfKGJsa3N5c19jb21wbGV0ZV9EUkVUKQorLmdsb2JsIE1MXyhibGtzeXNfY29tbWl0dGVkX0RSRVQpCisuZ2xvYmwgTUxfKGJsa3N5c19maW5pc2hlZF9EUkVUKQorTUxfKGJsa3N5c19zZXR1cF9EUkVUKToJCS5sb25nIDFiCitNTF8oYmxrc3lzX2NvbXBsZXRlX0RSRVQpOgkubG9uZyAyYgorTUxfKGJsa3N5c19jb21taXR0ZWRfRFJFVCk6CS5sb25nIDNiCitNTF8oYmxrc3lzX2ZpbmlzaGVkX0RSRVQpOgkubG9uZyA0YgorLnByZXZpb3VzCisKKyNlbmRpZiAvLyBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKworLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KK01BUktfU1RBQ0tfTk9fRVhFQworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtYW1kNjQtZGFyd2luLmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtYW1kNjQtZGFyd2luLmMKaW5kZXggOTc5ZmUzNi4uOGYxM2U3MSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFtZDY0LWRhcndpbi5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1hbWQ2NC1kYXJ3aW4uYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBBcHBsZSBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBBcHBsZSBJbmMuCiAgICAgICBHcmVnIFBhcmtlciAgZ3BhcmtlckBhcHBsZS5jb20KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDUxLDcgKzQ1MSw3IEBACiAgICBpZiAoMCkgVkdfKHByaW50ZikoCiAgICAgICAgICAgICAgIndxdGhyZWFkX2hpamFjazogc2VsZiAlI2x4LCBrcG9ydCAlI2x4LCAiCiAJICAgICAic3RhY2thZGRyICUjbHgsIHdvcmtpdGVtICUjbHgsIHJldXNlL2ZsYWdzICV4LCBzcCAlI2x4XG4iLCAKLQkgICAgIHNlbGYsIGtwb3J0LCBzdGFja2FkZHIsIHdvcmtpdGVtLCByZXVzZSwgc3ApOworCSAgICAgc2VsZiwga3BvcnQsIHN0YWNrYWRkciwgd29ya2l0ZW0sIChVSW50KXJldXNlLCBzcCk7CiAKICAgIC8qIFN0YXJ0IHRoZSB0aHJlYWQgd2l0aCBhbGwgc2lnbmFscyBibG9ja2VkLiAgVkdfKHNjaGVkdWxlcikgd2lsbAogICAgICAgc2V0IHRoZSBtYXNrIGNvcnJlY3RseSB3aGVuIHdlIGZpbmFsbHkgZ2V0IHRoZXJlLiAqLwpAQCAtNDY0LDcgKzQ2NCw3IEBACiAgICAgICBvdXQganVzdCB0aGUgcmVsZXZhbnQgcGFydHMuICBIZW5jZTogKi8KICMgIGlmIERBUldJTl9WRVJTIDw9IERBUldJTl8xMF83CiAgICBCb29sIGlzX3JldXNlID0gcmV1c2UgIT0gMDsKLSMgIGVsaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzggfHwgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzkgfHwgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwCisjICBlbGlmIERBUldJTl9WRVJTID4gREFSV0lOXzEwXzcKICAgIEJvb2wgaXNfcmV1c2UgPSAocmV1c2UgJiAweDIwMDAwIC8qID09IFdRX0ZMQUdfVEhSRUFEX1JFVVNFICovKSAhPSAwOwogIyAgZWxzZQogIyAgICBlcnJvciAiVW5zdXBwb3J0ZWQgRGFyd2luIHZlcnNpb24iCkBAIC00ODEsNiArNDgxLDggQEAKICAgICAgICBVV29yZCBtYWdpY19kZWx0YSA9IDB4NjA7CiAjICAgICAgZWxpZiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfOSB8fCBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfMTAKICAgICAgICBVV29yZCBtYWdpY19kZWx0YSA9IDB4RTA7CisjICAgICAgZWxpZiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfMTEKKyAgICAgICBVV29yZCBtYWdpY19kZWx0YSA9IDB4MTAwOwogIyAgICAgIGVsc2UKICMgICAgICAgIGVycm9yICJtYWdpY19kZWx0YTogdG8gYmUgY29tcHV0ZWQgb24gbmV3IE9TIHZlcnNpb24iCiAgICAgICAgICAvLyBtYWdpY19kZWx0YSA9IHRzdC0+b3Nfc3RhdGUucHRocmVhZCAtIHNlbGYKQEAgLTQ5NiwxMCArNDk4LDEwIEBACiAKICAgICAgICB0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOwogCi0gICAgICAgaWYgKDApIFZHXyhwcmludGYpKCJ3cXRocmVhZF9oaWphY2sgcmV1c2UgJXM6IHRpZCAlZCwgdHN0ICVwLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJ0c3QtPm9zX3N0YXRlLnB0aHJlYWQgJSNseFxuIiwKKyAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIndxdGhyZWFkX2hpamFjayByZXVzZSAlczogdGlkICV1LCB0c3QgJXAsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRzdC0+b3Nfc3RhdGUucHRocmVhZCAlI2x4LCBzZWxmICUjbHhcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzdC0+b3Nfc3RhdGUucHRocmVhZCA9PSBzZWxmID8gIlNBTUUiIDogIkRJRkYiLAotICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQsIHRzdCwgdHN0LT5vc19zdGF0ZS5wdGhyZWFkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkLCAodm9pZCAqKXRzdCwgdHN0LT5vc19zdGF0ZS5wdGhyZWFkLCBzZWxmKTsKIAogICAgICAgIHZleCA9ICZ0c3QtPmFyY2gudmV4OwogICAgICAgIHZnX2Fzc2VydCh0c3QtPm9zX3N0YXRlLnB0aHJlYWQgLSBtYWdpY19kZWx0YSA9PSBzZWxmKTsKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1hbWQ2NC1saW51eC5jIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFtZDY0LWxpbnV4LmMKaW5kZXggZGUzMjg4ZS4uN2M4OGJjMiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFtZDY0LWxpbnV4LmMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFtZDY0LWxpbnV4LmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xODgsNyArMTg4LDcgQEAKIAogLyogCiAgICBXaGVuIGEgY2xpZW50IGNsb25lcywgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBuZXcgdGhyZWFkLiAgVGhpcyBtZWFuczoKLSAgIDEuIGFsbG9jYXRlIGEgVGhyZWFkSWQrVGhyZWFkU3RhdGUrc3RhY2sgZm9yIHRoZSB0aGUgdGhyZWFkCisgICAxLiBhbGxvY2F0ZSBhIFRocmVhZElkK1RocmVhZFN0YXRlK3N0YWNrIGZvciB0aGUgdGhyZWFkCiAKICAgIDIuIGluaXRpYWxpemUgdGhlIHRocmVhZCdzIG5ldyBWQ1BVIHN0YXRlCiAKQEAgLTQ4OSw3ICs0ODksNyBAQAogUFJFKHN5c19hcmNoX3ByY3RsKQogewogICAgVGhyZWFkU3RhdGUqIHRzdDsKLSAgIFBSSU5UKCAiYXJjaF9wcmN0bCAoICVsZCwgJWx4ICkiLCBBUkcxLCBBUkcyICk7CisgICBQUklOVCggImFyY2hfcHJjdGwgKCAlbGQsICVseCApIiwgU0FSRzEsIEFSRzIgKTsKIAogICAgdmdfYXNzZXJ0KFZHXyhpc192YWxpZF90aWQpKHRpZCkpOwogICAgdmdfYXNzZXJ0KHRpZCA+PSAxICYmIHRpZCA8IFZHX05fVEhSRUFEUyk7CkBAIC01NDAsNyArNTQwLDcgQEAKIC8vIHNwYWNlLCBhbmQgd2Ugc2hvdWxkIHRoZXJlZm9yZSBub3QgY2hlY2sgYW55dGhpbmcgaXQgcG9pbnRzIHRvLgogUFJFKHN5c19wdHJhY2UpCiB7Ci0gICBQUklOVCgic3lzX3B0cmFjZSAoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcHRyYWNlICggJWxkLCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgInB0cmFjZSIsIAogICAgICAgICAgICAgICAgICBsb25nLCByZXF1ZXN0LCBsb25nLCBwaWQsIGxvbmcsIGFkZHIsIGxvbmcsIGRhdGEpOwogICAgc3dpdGNoIChBUkcxKSB7CkBAIC02MTksNyArNjE5LDcgQEAKIAogUFJFKHN5c19mYWR2aXNlNjQpCiB7Ci0gICBQUklOVCgic3lzX2ZhZHZpc2U2NCAoICVsZCwgJWxkLCAlbHUsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX2ZhZHZpc2U2NCAoICVsZCwgJWxkLCAlbHUsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBBUkczLCBTQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJmYWR2aXNlNjQiLAogICAgICAgICAgICAgICAgICBpbnQsIGZkLCB2a2lfbG9mZl90LCBvZmZzZXQsIHZraV9zaXplX3QsIGxlbiwgaW50LCBhZHZpY2UpOwogfQpAQCAtNjI4LDEyICs2MjgsMTEgQEAKIHsKICAgIFN5c1JlcyByOwogCi0gICBQUklOVCgic3lzX21tYXAgKCAlI2x4LCAlbGx1LCAlbGQsICVsZCwgJWQsICVsZCApIiwKLSAgICAgICAgIEFSRzEsIChVTG9uZylBUkcyLCBBUkczLCBBUkc0LCAoSW50KUFSRzUsIEFSRzYgKTsKKyAgIFBSSU5UKCJzeXNfbW1hcCAoICUjbHgsICVsdSwgJWxkLCAlbGQsICVsZCwgJWxkICkiLAorICAgICAgICAgQVJHMSwgQVJHMiwgU0FSRzMsIFNBUkc0LCBTQVJHNSwgU0FSRzYgKTsKICAgIFBSRV9SRUdfUkVBRDYobG9uZywgIm1tYXAiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBzdGFydCwgdW5zaWduZWQgbG9uZywgbGVuZ3RoLAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBwcm90LCAgdW5zaWduZWQgbG9uZywgZmxhZ3MsCi0gICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIGZkLCAgICB1bnNpZ25lZCBsb25nLCBvZmZzZXQpOworICAgICAgICAgICAgICAgICBpbnQsIHByb3QsIGludCwgZmxhZ3MsIGludCwgZmQsIHZraV9vZmZfdCwgb2Zmc2V0KTsKIAogICAgciA9IE1MXyhnZW5lcmljX1BSRV9zeXNfbW1hcCkoIHRpZCwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNiApOwogICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhyKTsKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1hbWQ2NC1zb2xhcmlzLmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtYW1kNjQtc29sYXJpcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmZDc4ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtYW1kNjQtc29sYXJpcy5jCkBAIC0wLDAgKzEsNTY0IEBACisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gUGxhdGZvcm0tc3BlY2lmaWMgc3lzY2FsbHMgc3R1ZmYuICAgIHN5c3dyYXAtYW1kNjQtc29sYXJpcy5jIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBQZXRyIFBhdmx1CisgICAgICBzZXR1cEBkYWdvYmFoLmN6CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKworI2lmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisKKyNpbmNsdWRlICJsaWJ2ZXhfZ3Vlc3Rfb2Zmc2V0cy5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljcy5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2RlYnVnbG9nLmgiCisjaW5jbHVkZSAicHViX2NvcmVfdmtpLmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY2Fzc2VydC5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNiYXNlLmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY3ByaW50LmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY3NpZ25hbC5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3Rvb2xpZmFjZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3N5c3dyYXAuaCIKKworI2luY2x1ZGUgInByaXZfdHlwZXNfbl9tYWNyb3MuaCIKKyNpbmNsdWRlICJwcml2X3N5c3dyYXAtZ2VuZXJpYy5oIgorI2luY2x1ZGUgInByaXZfc3lzd3JhcC1zb2xhcmlzLmgiCisKKworLyogQ2FsbCBmKGFyZzEpLCBidXQgZmlyc3Qgc3dpdGNoIHN0YWNrcywgdXNpbmcgJ3N0YWNrJyBhcyB0aGUgbmV3IHN0YWNrLCBhbmQKKyAgIHVzZSAncmV0YWRkcicgYXMgZidzIHJldHVybi10byBhZGRyZXNzLiAgQWxzbywgY2xlYXIgYWxsIHRoZSBpbnRlZ2VyCisgICByZWdpc3RlcnMgYmVmb3JlIGVudGVyaW5nIGYuICovCitfX2F0dHJpYnV0ZV9fKChub3JldHVybikpCit2b2lkIE1MXyhjYWxsX29uX25ld19zdGFja18wXzEpKEFkZHIgc3RhY2ssICAgICAgICAgICAgIC8qICVyZGkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkciByZXRhZGRyLCAgICAgICAgICAgLyogJXJzaSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqZikoV29yZCksICAgICAgICAvKiAlcmR4ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmQgYXJnMSk7ICAgICAgICAgICAgIC8qICVyY3ggKi8KK19fYXNtX18gKAorIi50ZXh0XG4iCisiLmdsb2JsIHZnTW9kdWxlTG9jYWxfY2FsbF9vbl9uZXdfc3RhY2tfMF8xXG4iCisidmdNb2R1bGVMb2NhbF9jYWxsX29uX25ld19zdGFja18wXzE6XG4iCisiICAgbW92cSAgJXJkaSwgJXJzcFxuIiAgICAgICAgIC8qIHNldCBzdGFjayAqLworIiAgIG1vdnEgICVyY3gsICVyZGlcbiIgICAgICAgICAvKiBzZXQgYXJnMSAqLworIiAgIHB1c2hxICVyc2lcbiIgICAgICAgICAgICAgICAvKiByZXRhZGRyIHRvIHN0YWNrICovCisiICAgcHVzaHEgJXJkeFxuIiAgICAgICAgICAgICAgIC8qIGYgdG8gc3RhY2sgKi8KKyIgICBtb3ZxICAkMCwgJXJheFxuIiAgICAgICAgICAgLyogemVybyBhbGwgR1AgcmVncyAoZXhjZXB0ICVyZGkpICovCisiICAgbW92cSAgJDAsICVyYnhcbiIKKyIgICBtb3ZxICAkMCwgJXJjeFxuIgorIiAgIG1vdnEgICQwLCAlcmR4XG4iCisiICAgbW92cSAgJDAsICVyc2lcbiIKKyIgICBtb3ZxICAkMCwgJXJicFxuIgorIiAgIG1vdnEgICQwLCAlcjhcbiIKKyIgICBtb3ZxICAkMCwgJXI5XG4iCisiICAgbW92cSAgJDAsICVyMTBcbiIKKyIgICBtb3ZxICAkMCwgJXIxMVxuIgorIiAgIG1vdnEgICQwLCAlcjEyXG4iCisiICAgbW92cSAgJDAsICVyMTNcbiIKKyIgICBtb3ZxICAkMCwgJXIxNFxuIgorIiAgIG1vdnEgICQwLCAlcjE1XG4iCisiICAgcmV0XG4iICAgICAgICAgICAgICAgICAgICAgIC8qIGp1bXAgdG8gZiAqLworIiAgIHVkMlxuIiAgICAgICAgICAgICAgICAgICAgICAvKiBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUgKi8KKyIucHJldmlvdXNcbiIKKyk7CisKKy8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHNldHVwIGEgY29udGV4dCBvZiBhIG5ldyBWYWxncmluZCB0aHJlYWQgKHdoaWNoCisgICB3aWxsIHJ1biB0aGUgY2xpZW50IGNvZGUpLiAqLwordm9pZCBNTF8oc2V0dXBfc3RhcnRfdGhyZWFkX2NvbnRleHQpKFRocmVhZElkIHRpZCwgdmtpX3Vjb250ZXh0X3QgKnVjKQoreworICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisgICBVV29yZCAqc3RhY2sgPSAoVVdvcmQqKXRzdC0+b3Nfc3RhdGUudmFsZ3JpbmRfc3RhY2tfaW5pdF9TUDsKKworICAgVkdfKG1lbXNldCkodWMsIDAsIHNpemVvZigqdWMpKTsKKyAgIHVjLT51Y19mbGFncyA9IFZLSV9VQ19DUFUgfCBWS0lfVUNfU0lHTUFTSzsKKworICAgLyogU3RhcnQgdGhlIHRocmVhZCB3aXRoIGV2ZXJ5dGhpbmcgYmxvY2tlZC4gKi8KKyAgIFZHXyhzaWdmaWxsc2V0KSgmdWMtPnVjX3NpZ21hc2spOworCisgICAvKiBTZXQgdXAgdGhlIHN0YWNrLCBpdCBzaG91bGQgYmUgYWx3YXlzIDE2LWJ5dGUgYWxpZ25lZCBiZWZvcmUgZG9pbmcKKyAgICAgIGEgZnVuY3Rpb24gY2FsbCwgaS5lLiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIGFsc28gMTYtYnl0ZSBhbGlnbmVkLiAqLworICAgdmdfYXNzZXJ0KFZHX0lTXzE2X0FMSUdORUQoc3RhY2spKTsKKyAgIHN0YWNrIC09IDE7CisgICBzdGFja1swXSA9IDA7IC8qIGJvZ3VzIHJldHVybiB2YWx1ZSAqLworCisgICAvKiBTZXQgdXAgdGhlIHJlZ2lzdGVycy4gKi8KKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JESV0gPSAoVVdvcmQpdHN0OyAvKiB0aGUgcGFyYW1ldGVyICovCisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SSVBdID0gKFVXb3JkKU1MXyhzdGFydF90aHJlYWRfTk9SRVRVUk4pOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUlNQXSA9IChVV29yZClzdGFjazsKK30KKworLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIHBhcnQgb2YgVkdfKHNhdmVfY29udGV4dCkuICovCit2b2lkIE1MXyhzYXZlX21hY2hpbmVfY29udGV4dCkoVGhyZWFkSWQgdGlkLCB2a2lfdWNvbnRleHRfdCAqdWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZVBhcnQgcGFydCkKK3sKKyAgIFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgc3RydWN0IHZraV9mcGNoaXBfc3RhdGUgKmZzCisgICAgICA9ICZ1Yy0+dWNfbWNvbnRleHQuZnByZWdzLmZwX3JlZ19zZXQuZnBjaGlwX3N0YXRlOworICAgU2l6ZVQgaTsKKworICAgLyogQ1BVICovCisgICAvKiBDb21tb24gcmVnaXN0ZXJzICovCisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SSVBdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9SSVA7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX2FtZDY0X1JJUCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SSVBdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JBWF0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X1JBWDsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfYW1kNjRfUkFYLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JBWF0sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkJYXSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfUkJYOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIE9GRlNFVF9hbWQ2NF9SQlgsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkJYXSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SQ1hdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9SQ1g7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX2FtZDY0X1JDWCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SQ1hdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JEWF0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X1JEWDsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfYW1kNjRfUkRYLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JEWF0sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkJQXSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfUkJQOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIE9GRlNFVF9hbWQ2NF9SQlAsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkJQXSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SU0ldID0gdHN0LT5hcmNoLnZleC5ndWVzdF9SU0k7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX2FtZDY0X1JTSSwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SU0ldLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JESV0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X1JESTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfYW1kNjRfUkRJLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JESV0sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjhdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9SODsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfYW1kNjRfUjgsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjhdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1I5XSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjk7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX2FtZDY0X1I5LAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1I5XSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SMTBdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9SMTA7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX2FtZDY0X1IxMCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SMTBdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxMV0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X1IxMTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfYW1kNjRfUjExLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxMV0sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjEyXSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjEyOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIE9GRlNFVF9hbWQ2NF9SMTIsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjEyXSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SMTNdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9SMTM7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX2FtZDY0X1IxMywKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SMTNdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxNF0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X1IxNDsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfYW1kNjRfUjE0LAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxNF0sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjE1XSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjE1OworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIE9GRlNFVF9hbWQ2NF9SMTUsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjE1XSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SU1BdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9SU1A7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX2FtZDY0X1JTUCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SU1BdLCBzaXplb2YoVVdvcmQpKTsKKworICAgLyogRVJSIGFuZCBUUkFQTk8gKi8KKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX0VSUl0gPSAwOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19FUlJdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1RSQVBOT10gPSAwOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19UUkFQTk9dLCBzaXplb2YoVVdvcmQpKTsKKworICAgLyogU2VnbWVudCByZWdpc3RlcnMgKi8KKyAgIC8qIFZhbGdyaW5kIGRvZXMgbm90IHN1cHBvcnQgbW92ZXMgZnJvbS90byBzZWdtZW50IHJlZ2lzdGVycyBvbiBBTUQ2NC4gIFRoZQorICAgICAgdmFsdWVzIHJldHVybmVkIGJlbG93IGFyZSB0aGUgb25lcyB0aGF0IGFyZSBzZXQgYnkgdGhlIGtlcm5lbCB3aGVuCisgICAgICBhIHByb2dyYW0gaXMgc3RhcnRlZC4gKi8KKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX0NTXSA9IFZLSV9VQ1NfU0VMOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19DU10sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfRFNdID0gMDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfRFNdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1NTXSA9IFZLSV9VRFNfU0VMOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19TU10sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfRVNdID0gMDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfRVNdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX0ZTXSA9IDA7CisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX0ZTXSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19HU10gPSAwOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19HU10sIHNpemVvZihVV29yZCkpOworCisgICAvKiBTZWdtZW50IGJhc2VzICovCisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19GU0JBU0VdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9GU19DT05TVDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfRlNCQVNFXSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19HU0JBU0VdID0gMDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfR1NCQVNFXSwgc2l6ZW9mKFVXb3JkKSk7CisKKyAgIC8qIEhhbmRsZSByZmxhZ3MuICBSZWZlciB0byB0aGUgeDg2LXNvbGFyaXMgdmFyaWFudCBvZiB0aGlzIGNvZGUgZm9yCisgICAgICBhIGRldGFpbGVkIGRlc2NyaXB0aW9uLiAqLworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkZMXSA9CisgICAgICBMaWJWRVhfR3Vlc3RBTUQ2NF9nZXRfcmZsYWdzKCZ0c3QtPmFyY2gudmV4KTsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsCisgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkZMXSwgc2l6ZW9mKFVXb3JkKSk7CisgICBWS0lfVUNfR1VFU1RfQ0NfT1AodWMpID0gdHN0LT5hcmNoLnZleC5ndWVzdF9DQ19PUDsKKyAgIFZLSV9VQ19HVUVTVF9DQ19OREVQKHVjKSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfTkRFUDsKKyAgIFZLSV9VQ19HVUVTVF9DQ19ERVAxKHVjKSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfREVQMTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLAorICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLCBndWVzdF9DQ19ERVAxKSwKKyAgICAgICAgICAgIChBZGRyKSZWS0lfVUNfR1VFU1RfQ0NfREVQMSh1YyksIHNpemVvZihVV29yZCkpOworICAgVktJX1VDX0dVRVNUX0NDX0RFUDIodWMpID0gdHN0LT5hcmNoLnZleC5ndWVzdF9DQ19ERVAyOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICBvZmZzZXRvZihWZXhHdWVzdEFNRDY0U3RhdGUsIGd1ZXN0X0NDX0RFUDIpLAorICAgICAgICAgICAgKEFkZHIpJlZLSV9VQ19HVUVTVF9DQ19ERVAyKHVjKSwgc2l6ZW9mKFVXb3JkKSk7CisgICBWS0lfVUNfR1VFU1RfUkZMQUdTX05FRyh1YykgPSB+dWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkZMXTsKKyAgIC8qIENhbGN1bGF0ZSBhIGNoZWNrc3VtLiAqLworICAgeworICAgICAgVUxvbmcgYnVmWzVdOworICAgICAgVUxvbmcgY2hlY2tzdW07CisKKyAgICAgIGJ1ZlswXSA9IFZLSV9VQ19HVUVTVF9DQ19PUCh1Yyk7CisgICAgICBidWZbMV0gPSBWS0lfVUNfR1VFU1RfQ0NfTkRFUCh1Yyk7CisgICAgICBidWZbMl0gPSBWS0lfVUNfR1VFU1RfQ0NfREVQMSh1Yyk7CisgICAgICBidWZbM10gPSBWS0lfVUNfR1VFU1RfQ0NfREVQMih1Yyk7CisgICAgICBidWZbNF0gPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SRkxdOworICAgICAgY2hlY2tzdW0gPSBNTF8oZmxldGNoZXI2NCkoKFVJbnQqKSZidWYsIHNpemVvZihidWYpIC8gc2l6ZW9mKFVJbnQpKTsKKyAgICAgIFZLSV9VQ19HVUVTVF9SRkxBR1NfQ0hFQ0tTVU0odWMpID0gY2hlY2tzdW07CisgICB9CisKKyAgIC8qIEZQVSAqLworICAgLyogVGhlIGZwcmVnc2V0X3Qgc3RydWN0dXJlIG9uIGFtZDY0IGZvbGxvd3MgdGhlIGxheW91dCB0aGF0IGlzIHVzZWQgYnkgdGhlCisgICAgICBGWFNBVkUgaW5zdHJ1Y3Rpb24sIHRoZXJlZm9yZSBpdCBpcyBvbmx5IG5lY2Vzc2FyeSB0byBjYWxsIGEgVkVYCisgICAgICBmdW5jdGlvbiB0aGF0IHNpbXVsYXRlcyB0aGlzIGluc3RydWN0aW9uLiAqLworICAgTGliVkVYX0d1ZXN0QU1ENjRfZnhzYXZlKCZ0c3QtPmFyY2gudmV4LCAoSFdvcmQpZnMpOworCisgICAvKiBDb250cm9sIHdvcmQgKi8KKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+Y3csIHNpemVvZihmcy0+Y3cpKTsKKyAgIC8qIFN0YXR1cyB3b3JkICovCisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmZnMtPnN3LCBzaXplb2YoZnMtPnN3KSk7CisgICAvKiBDb21wcmVzc2VkIHRhZyB3b3JkICovCisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmZnMtPmZjdHcsIHNpemVvZihmcy0+ZmN0dykpOworICAgLyogVW51c2VkICovCisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmZnMtPl9fZnhfcnN2ZCwKKyAgICAgICAgICAgIHNpemVvZihmcy0+X19meF9yc3ZkKSk7CisgICB2Z19hc3NlcnQoZnMtPl9fZnhfcnN2ZCA9PSAwKTsKKyAgIC8qIExhc3QgeDg3IG9wY29kZSAqLworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwgKEFkZHIpJmZzLT5mb3AsIHNpemVvZihmcy0+Zm9wKSk7CisgICB2Z19hc3NlcnQoZnMtPmZvcCA9PSAwKTsKKyAgIC8qIExhc3QgeDg3IGluc3RydWN0aW9uIHBvaW50ZXIgKi8KKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+cmlwLCBzaXplb2YoZnMtPnJpcCkpOworICAgdmdfYXNzZXJ0KGZzLT5yaXAgPT0gMCk7CisgICAvKiBMYXN0IHg4NyBkYXRhIHBvaW50ZXIgKi8KKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+cmRwLCBzaXplb2YoZnMtPnJkcCkpOworICAgdmdfYXNzZXJ0KGZzLT5yZHAgPT0gMCk7CisgICAvKiBNZWRpYS1pbnN0cnVjdGlvbiBjb250cm9sIGFuZCBzdGF0dXMgcmVnaXN0ZXIgKi8KKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+bXhjc3IsIHNpemVvZihmcy0+bXhjc3IpKTsKKyAgIC8qIFN1cHBvcnRlZCBmZWF0dXJlcyBpbiBNWENTUiAqLworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwgKEFkZHIpJmZzLT5teGNzcl9tYXNrLAorICAgICAgICAgICAgc2l6ZW9mKGZzLT5teGNzcl9tYXNrKSk7CisKKyAgIC8qIFNUIHJlZ2lzdGVycyAqLworICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgQWRkciBhZGRyID0gKEFkZHIpJmZzLT5zdFtpXTsKKyAgICAgIC8qIHg4NyB1c2VzIDgwYiBGUCByZWdpc3RlcnMgYnV0IFZFWCB1c2VzIG9ubHkgNjRiIHJlZ2lzdGVycywgdGh1cyB3ZQorICAgICAgICAgaGF2ZSB0byBsaWUgaGVyZS4gOjwgKi8KKyAgICAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdEFNRDY0U3RhdGUsCisgICAgICAgICAgICAgICBndWVzdF9GUFJFR1tpXSksIGFkZHIsIHNpemVvZihVTG9uZykpOworICAgICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwKKyAgICAgICAgICAgICAgIGd1ZXN0X0ZQUkVHW2ldKSwgYWRkciArIDgsIHNpemVvZihVU2hvcnQpKTsKKyAgIH0KKworICAgLyogWE1NIHJlZ2lzdGVycyAqLworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwKKyAgICAgICAgICAgIGd1ZXN0X1lNTTApLCAoQWRkcikmZnMtPnhtbVswXSwgc2l6ZW9mKFUxMjgpKTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdEFNRDY0U3RhdGUsCisgICAgICAgICAgICBndWVzdF9ZTU0xKSwgKEFkZHIpJmZzLT54bW1bMV0sIHNpemVvZihVMTI4KSk7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLAorICAgICAgICAgICAgZ3Vlc3RfWU1NMiksIChBZGRyKSZmcy0+eG1tWzJdLCBzaXplb2YoVTEyOCkpOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwKKyAgICAgICAgICAgIGd1ZXN0X1lNTTMpLCAoQWRkcikmZnMtPnhtbVszXSwgc2l6ZW9mKFUxMjgpKTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdEFNRDY0U3RhdGUsCisgICAgICAgICAgICBndWVzdF9ZTU00KSwgKEFkZHIpJmZzLT54bW1bNF0sIHNpemVvZihVMTI4KSk7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLAorICAgICAgICAgICAgZ3Vlc3RfWU1NNSksIChBZGRyKSZmcy0+eG1tWzVdLCBzaXplb2YoVTEyOCkpOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwKKyAgICAgICAgICAgIGd1ZXN0X1lNTTYpLCAoQWRkcikmZnMtPnhtbVs2XSwgc2l6ZW9mKFUxMjgpKTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdEFNRDY0U3RhdGUsCisgICAgICAgICAgICBndWVzdF9ZTU03KSwgKEFkZHIpJmZzLT54bW1bN10sIHNpemVvZihVMTI4KSk7CisKKyAgIC8qIFN0YXR1cyB3b3JkIChzdykgYXQgZXhjZXB0aW9uICovCisgICBmcy0+c3RhdHVzID0gMDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+c3RhdHVzLCBzaXplb2YoZnMtPnN0YXR1cykpOworCisgICAvKiBNWENTUiBhdCBleGNlcHRpb24gKi8KKyAgIGZzLT54c3RhdHVzID0gMDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+eHN0YXR1cywKKyAgICAgICAgICAgIHNpemVvZihmcy0+eHN0YXR1cykpOworfQorCisvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgcGFydCBvZiBWR18ocmVzdG9yZV9jb250ZXh0KS4gKi8KK3ZvaWQgTUxfKHJlc3RvcmVfbWFjaGluZV9jb250ZXh0KShUaHJlYWRJZCB0aWQsIHZraV91Y29udGV4dF90ICp1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JlUGFydCBwYXJ0LCBCb29sIGVzcF9pc190aHJwdHIpCit7CisgICBUaHJlYWRTdGF0ZSAqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAgIHN0cnVjdCB2a2lfZnBjaGlwX3N0YXRlICpmcworICAgICAgPSAmdWMtPnVjX21jb250ZXh0LmZwcmVncy5mcF9yZWdfc2V0LmZwY2hpcF9zdGF0ZTsKKworICAgLyogQ1BVICovCisgICBpZiAodWMtPnVjX2ZsYWdzICYgVktJX1VDX0NQVSkgeworICAgICAgLyogQ29tbW9uIHJlZ2lzdGVycyAqLworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SSVAgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SSVBdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUklQXSwgT0ZGU0VUX2FtZDY0X1JJUCwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SQVggPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SQVhdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkFYXSwgT0ZGU0VUX2FtZDY0X1JBWCwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SQlggPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SQlhdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkJYXSwgT0ZGU0VUX2FtZDY0X1JCWCwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SQ1ggPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SQ1hdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkNYXSwgT0ZGU0VUX2FtZDY0X1JDWCwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SRFggPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SRFhdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkRYXSwgT0ZGU0VUX2FtZDY0X1JEWCwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SQlAgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SQlBdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkJQXSwgT0ZGU0VUX2FtZDY0X1JCUCwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SU0kgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SU0ldOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUlNJXSwgT0ZGU0VUX2FtZDY0X1JTSSwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SREkgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SREldOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkRJXSwgT0ZGU0VUX2FtZDY0X1JESSwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9SOCA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1I4XTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1I4XSwgT0ZGU0VUX2FtZDY0X1I4LAorICAgICAgICAgICAgICAgc2l6ZW9mKFVXb3JkKSk7CisgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X1I5ID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjldOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjldLCBPRkZTRVRfYW1kNjRfUjksCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjEwID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjEwXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxMF0sIE9GRlNFVF9hbWQ2NF9SMTAsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjExID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjExXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxMV0sIE9GRlNFVF9hbWQ2NF9SMTEsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjEyID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjEyXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxMl0sIE9GRlNFVF9hbWQ2NF9SMTIsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjEzID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjEzXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxM10sIE9GRlNFVF9hbWQ2NF9SMTMsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjE0ID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjE0XTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxNF0sIE9GRlNFVF9hbWQ2NF9SMTQsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUjE1ID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUjE1XTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1IxNV0sIE9GRlNFVF9hbWQ2NF9SMTUsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUlNQID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUlNQXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfUkVHX1JTUF0sIE9GRlNFVF9hbWQ2NF9SU1AsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKworICAgICAgLyogSWdub3JlIEVSUiBhbmQgVFJBUE5PLiAqLworCisgICAgICAvKiBJZ25vcmUgc2VnbWVudCByZWdpc3RlcnMuICovCisKKyAgICAgIC8qIFNlZ21lbnQgYmFzZXMgKi8KKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfRlNfQ09OU1QgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19GU0JBU0VdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfRlNCQVNFXSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwgZ3Vlc3RfRlNfQ09OU1QpLCBzaXplb2YoVVdvcmQpKTsKKworICAgICAgLyogUmZsYWdzLiAgUmVmZXIgdG8gdGhlIHg4Ni1zb2xhcmlzIHZhcmlhbnQgb2YgdGhpcyBjb2RlIGZvciBhIGRldGFpbGVkCisgICAgICAgICBkZXNjcmlwdGlvbi4gKi8KKyAgICAgIHsKKyAgICAgICAgIFVMb25nIHJmbGFnczsKKyAgICAgICAgIFVMb25nIG9yaWdfcmZsYWdzOworICAgICAgICAgVUxvbmcgbmV3X3JmbGFnczsKKyAgICAgICAgIEJvb2wgb2tfcmVzdG9yZSA9IEZhbHNlOworCisgICAgICAgICBWR19UUkFDSyhwcmVfbWVtX3JlYWQsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICAgICJyZXN0b3JlX21hY2hpbmVfY29udGV4dCh1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SRkxdKSIsCisgICAgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkZMXSwgc2l6ZW9mKFVXb3JkKSk7CisgICAgICAgICByZmxhZ3MgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1JFR19SRkxdOworICAgICAgICAgb3JpZ19yZmxhZ3MgPSBMaWJWRVhfR3Vlc3RBTUQ2NF9nZXRfcmZsYWdzKCZ0c3QtPmFyY2gudmV4KTsKKyAgICAgICAgIG5ld19yZmxhZ3MgPSByZmxhZ3M7CisgICAgICAgICAvKiBUaGUga2VybmVsIGRpc2FsbG93cyB0aGUgSUQgZmxhZyB0byBiZSBjaGFuZ2VkIHZpYSB0aGUgc2V0Y29udGV4dAorICAgICAgICAgICAgY2FsbCwgdGh1cyBkbyB0aGUgc2FtZS4gKi8KKyAgICAgICAgIGlmIChvcmlnX3JmbGFncyAmIFZLSV9SRkxBR1NfSURfQklUKQorICAgICAgICAgICAgbmV3X3JmbGFncyB8PSBWS0lfUkZMQUdTX0lEX0JJVDsKKyAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5ld19yZmxhZ3MgJj0gflZLSV9SRkxBR1NfSURfQklUOworICAgICAgICAgTGliVkVYX0d1ZXN0QU1ENjRfcHV0X3JmbGFncyhuZXdfcmZsYWdzLCAmdHN0LT5hcmNoLnZleCk7CisgICAgICAgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLCBndWVzdF9DQ19ERVAxKSwgc2l6ZW9mKFVXb3JkKSk7CisgICAgICAgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLCBndWVzdF9DQ19ERVAyKSwgc2l6ZW9mKFVXb3JkKSk7CisKKyAgICAgICAgIGlmIChyZmxhZ3MgIT0gflZLSV9VQ19HVUVTVF9SRkxBR1NfTkVHKHVjKSkgeworICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1zb2xhcmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSByZmxhZ3MgdmFsdWUgd2FzIHJlc3RvcmVkIGZyb20gYW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gdGhyZWFkICV1LlxuIiwgdGlkKTsKKyAgICAgICAgICAgIG9rX3Jlc3RvcmUgPSBUcnVlOworICAgICAgICAgfQorICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVTG9uZyBidWZbNV07CisgICAgICAgICAgICBVTG9uZyBjaGVja3N1bTsKKworICAgICAgICAgICAgYnVmWzBdID0gVktJX1VDX0dVRVNUX0NDX09QKHVjKTsKKyAgICAgICAgICAgIGJ1ZlsxXSA9IFZLSV9VQ19HVUVTVF9DQ19OREVQKHVjKTsKKyAgICAgICAgICAgIGJ1ZlsyXSA9IFZLSV9VQ19HVUVTVF9DQ19ERVAxKHVjKTsKKyAgICAgICAgICAgIGJ1ZlszXSA9IFZLSV9VQ19HVUVTVF9DQ19ERVAyKHVjKTsKKyAgICAgICAgICAgIGJ1Zls0XSA9IHJmbGFnczsKKyAgICAgICAgICAgIGNoZWNrc3VtID0gTUxfKGZsZXRjaGVyNjQpKChVSW50KikmYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGJ1ZikgLyBzaXplb2YoVUludCkpOworICAgICAgICAgICAgaWYgKGNoZWNrc3VtID09IFZLSV9VQ19HVUVTVF9SRkxBR1NfQ0hFQ0tTVU0odWMpKSB7CisgICAgICAgICAgICAgICAvKiBDaGVjayBvaywgdGhlIGZ1bGwgcmVzdG9yYXRpb24gaXMgcG9zc2libGUuICovCisgICAgICAgICAgICAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLXNvbGFyaXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIENDXyogZ3Vlc3Qgc3RhdGUgdmFsdWVzIHdlcmUgZnVsbHkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzdG9yZWQgaW4gdGhyZWFkICV1LlxuIiwgdGlkKTsKKyAgICAgICAgICAgICAgIG9rX3Jlc3RvcmUgPSBUcnVlOworCisgICAgICAgICAgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0NDX09QID0gVktJX1VDX0dVRVNUX0NDX09QKHVjKTsKKyAgICAgICAgICAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfTkRFUCA9IFZLSV9VQ19HVUVTVF9DQ19OREVQKHVjKTsKKyAgICAgICAgICAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfREVQMSA9IFZLSV9VQ19HVUVTVF9DQ19ERVAxKHVjKTsKKyAgICAgICAgICAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJlZLSV9VQ19HVUVTVF9DQ19ERVAxKHVjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwgZ3Vlc3RfQ0NfREVQMSksCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgICAgICAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfREVQMiA9IFZLSV9VQ19HVUVTVF9DQ19ERVAyKHVjKTsKKyAgICAgICAgICAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJlZLSV9VQ19HVUVTVF9DQ19ERVAyKHVjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwgZ3Vlc3RfQ0NfREVQMiksCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKworICAgICAgICAgaWYgKCFva19yZXN0b3JlKQorICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1zb2xhcmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBmdWxseSByZXN0b3JlIHRoZSBDQ18qIGd1ZXN0IHN0YXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlcywgdXNpbmcgYXBwcm94aW1hdGUgcmZsYWdzIGluIHRocmVhZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIldS5cbiIsIHRpZCk7CisgICAgICB9CisgICB9CisKKyAgIGlmICh1Yy0+dWNfZmxhZ3MgJiBWS0lfVUNfRlBVKSB7CisgICAgICAvKiBGUFUgKi8KKyAgICAgIFZleEVtTm90ZSBub3RlOworICAgICAgU2l6ZVQgaTsKKworICAgICAgLyogeDg3ICovCisgICAgICAvKiBDb250cm9sIHdvcmQgKi8KKyAgICAgIFZHX1RSQUNLKHByZV9tZW1fcmVhZCwgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgInJlc3RvcmVfbWFjaGluZV9jb250ZXh0KHVjLT51Y19tY29udGV4dC5mcHJlZ3MuLmN3KSIsCisgICAgICAgICAgICAgICAoQWRkcikmZnMtPmN3LCBzaXplb2YoZnMtPmN3KSk7CisgICAgICAvKiBTdGF0dXMgd29yZCAqLworICAgICAgVkdfVFJBQ0socHJlX21lbV9yZWFkLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAicmVzdG9yZV9tYWNoaW5lX2NvbnRleHQodWMtPnVjX21jb250ZXh0LmZwcmVncy4uc3cpIiwKKyAgICAgICAgICAgICAgIChBZGRyKSZmcy0+c3csIHNpemVvZihmcy0+c3cpKTsKKyAgICAgIC8qIENvbXByZXNzZWQgdGFnIHdvcmQgKi8KKyAgICAgIFZHX1RSQUNLKHByZV9tZW1fcmVhZCwgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgInJlc3RvcmVfbWFjaGluZV9jb250ZXh0KHVjLT51Y19tY29udGV4dC5mcHJlZ3MuLmZjdHcpIiwKKyAgICAgICAgICAgICAgIChBZGRyKSZmcy0+ZmN0dywgc2l6ZW9mKGZzLT5mY3R3KSk7CisgICAgICAvKiBMYXN0IHg4NyBvcGNvZGUgKi8KKyAgICAgIFZHX1RSQUNLKHByZV9tZW1fcmVhZCwgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgInJlc3RvcmVfbWFjaGluZV9jb250ZXh0KHVjLT51Y19tY29udGV4dC5mcHJlZ3MuLmZvcCkiLAorICAgICAgICAgICAgICAgKEFkZHIpJmZzLT5mb3AsIHNpemVvZihmcy0+Zm9wKSk7CisgICAgICAvKiBMYXN0IHg4NyBpbnN0cnVjdGlvbiBwb2ludGVyICovCisgICAgICBWR19UUkFDSyhwcmVfbWVtX3JlYWQsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICJyZXN0b3JlX21hY2hpbmVfY29udGV4dCh1Yy0+dWNfbWNvbnRleHQuZnByZWdzLi5yaXApIiwKKyAgICAgICAgICAgICAgIChBZGRyKSZmcy0+cmlwLCBzaXplb2YoZnMtPnJpcCkpOworICAgICAgLyogTGFzdCB4ODcgZGF0YSBwb2ludGVyICovCisgICAgICBWR19UUkFDSyhwcmVfbWVtX3JlYWQsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICJyZXN0b3JlX21hY2hpbmVfY29udGV4dCh1Yy0+dWNfbWNvbnRleHQuZnByZWdzLi5yZHApIiwKKyAgICAgICAgICAgICAgIChBZGRyKSZmcy0+cmRwLCBzaXplb2YoZnMtPnJkcCkpOworICAgICAgLyogTWVkaWEtaW5zdHJ1Y3Rpb24gY29udHJvbCBhbmQgc3RhdHVzIHJlZ2lzdGVyICovCisgICAgICBWR19UUkFDSyhwcmVfbWVtX3JlYWQsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICJyZXN0b3JlX21hY2hpbmVfY29udGV4dCh1Yy0+dWNfbWNvbnRleHQuZnByZWdzLi5teGNzcikiLAorICAgICAgICAgICAgICAgKEFkZHIpJmZzLT5teGNzciwgc2l6ZW9mKGZzLT5teGNzcikpOworICAgICAgLyogU3VwcG9ydGVkIGZlYXR1cmVzIGluIE1YQ1NSICovCisgICAgICBWR19UUkFDSyhwcmVfbWVtX3JlYWQsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICJyZXN0b3JlX21hY2hpbmVfY29udGV4dCh1Yy0+dWNfbWNvbnRleHQuZnByZWdzLi5teGNzcl9tYXNrKSIsCisgICAgICAgICAgICAgICAoQWRkcikmZnMtPm14Y3NyX21hc2ssIHNpemVvZihmcy0+bXhjc3JfbWFzaykpOworCisgICAgICAvKiBTVCByZWdpc3RlcnMgKi8KKyAgICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgICAgIEFkZHIgYWRkciA9IChBZGRyKSZmcy0+c3RbaV07CisgICAgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwgYWRkciwKKyAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwgZ3Vlc3RfRlBSRUdbaV0pLCBzaXplb2YoVUxvbmcpKTsKKyAgICAgIH0KKworICAgICAgLyogWE1NIHJlZ2lzdGVycyAqLworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+eG1tWzBdLAorICAgICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLCBndWVzdF9ZTU0wKSwgc2l6ZW9mKFUxMjgpKTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVsxXSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwgZ3Vlc3RfWU1NMSksIHNpemVvZihVMTI4KSk7CisgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwgKEFkZHIpJmZzLT54bW1bMl0sCisgICAgICAgICAgICAgICBvZmZzZXRvZihWZXhHdWVzdEFNRDY0U3RhdGUsIGd1ZXN0X1lNTTIpLCBzaXplb2YoVTEyOCkpOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+eG1tWzNdLAorICAgICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLCBndWVzdF9ZTU0zKSwgc2l6ZW9mKFUxMjgpKTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVs0XSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwgZ3Vlc3RfWU1NNCksIHNpemVvZihVMTI4KSk7CisgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwgKEFkZHIpJmZzLT54bW1bNV0sCisgICAgICAgICAgICAgICBvZmZzZXRvZihWZXhHdWVzdEFNRDY0U3RhdGUsIGd1ZXN0X1lNTTUpLCBzaXplb2YoVTEyOCkpOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+eG1tWzZdLAorICAgICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLCBndWVzdF9ZTU02KSwgc2l6ZW9mKFUxMjgpKTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVs3XSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0QU1ENjRTdGF0ZSwgZ3Vlc3RfWU1NNyksIHNpemVvZihVMTI4KSk7CisKKyAgICAgIG5vdGUgPSBMaWJWRVhfR3Vlc3RBTUQ2NF9meHJzdG9yKChIV29yZClmcywgJnRzdC0+YXJjaC52ZXgpOworICAgICAgaWYgKG5vdGUgIT0gRW1Ob3RlX05PTkUpCisgICAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKKyAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgcmVzdG9yaW5nIEZQIHN0YXRlIGluIHRocmVhZCAldTogJXMuXG4iLAorICAgICAgICAgICAgICAgICAgICAgIHRpZCwgTGliVkVYX0VtTm90ZV9zdHJpbmcobm90ZSkpOworICAgfQorfQorCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUFJFL1BPU1Qgd3JhcHBlcnMgZm9yIEFNRDY0L1NvbGFyaXMtc3BlY2lmaWMgc3lzY2FsbHMKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIFBSRShuYW1lKSAgICAgICBERUZOX1BSRV9URU1QTEFURShhbWQ2NF9zb2xhcmlzLCBuYW1lKQorI2RlZmluZSBQT1NUKG5hbWUpICAgICAgREVGTl9QT1NUX1RFTVBMQVRFKGFtZDY0X3NvbGFyaXMsIG5hbWUpCisKKy8qIGltcGxlbWVudGF0aW9uICovCisKKyN1bmRlZiBQUkUKKyN1bmRlZiBQT1NUCisKKyNlbmRpZiAvLyBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtYXJtLWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtYXJtLWxpbnV4LmMKaW5kZXggZjhmNTZmNS4uM2NjYWQxMiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFybS1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1hcm0tbGludXguYwpAQCAtNyw5ICs3LDkgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBFdmFuIEdlbGxlcgorICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgRXZhbiBHZWxsZXIKICAgICAgIGdhemVAYmVhLm1zCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE1NCw3ICsxNTQsNyBAQAogICAgICAgICAgICAgCiAvKiAKICAgIFdoZW4gYSBjbGllbnQgY2xvbmVzLCB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIG5ldyB0aHJlYWQuICBUaGlzIG1lYW5zOgotICAgMS4gYWxsb2NhdGUgYSBUaHJlYWRJZCtUaHJlYWRTdGF0ZStzdGFjayBmb3IgdGhlIHRoZSB0aHJlYWQKKyAgIDEuIGFsbG9jYXRlIGEgVGhyZWFkSWQrVGhyZWFkU3RhdGUrc3RhY2sgZm9yIHRoZSB0aHJlYWQKIAogICAgMi4gaW5pdGlhbGl6ZSB0aGUgdGhyZWFkJ3MgbmV3IFZDUFUgc3RhdGUKIApAQCAtMzUyLDggKzM1Miw4IEBACiAgICAvLyBwYWdlc2l6ZSBvciA0Sy1zaXplIHVuaXRzIGluIG9mZnNldD8gIEZvciBwcGMzMi82NC1saW51eCwgdGhpcyBpcwogICAgLy8gNEstc2l6ZWQuICBBc3NlcnQgdGhhdCB0aGUgcGFnZSBzaXplIGlzIDRLIGhlcmUgZm9yIHNhZmV0eS4KICAgIHZnX2Fzc2VydChWS0lfUEFHRV9TSVpFID09IDQwOTYpOwotICAgUFJJTlQoInN5c19tbWFwMiAoICUjbHgsICVsbHUsICVsZCwgJWxkLCAlbGQsICVsZCApIiwKLSAgICAgICAgIEFSRzEsIChVTG9uZylBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2ICk7CisgICBQUklOVCgic3lzX21tYXAyICggJSNseCwgJWx1LCAlbHUsICVsdSwgJWx1LCAlbHUgKSIsCisgICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2ICk7CiAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJtbWFwMiIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIHN0YXJ0LCB1bnNpZ25lZCBsb25nLCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIHByb3QsICB1bnNpZ25lZCBsb25nLCBmbGFncywKQEAgLTM3MCw3ICszNzAsNyBAQAogLy8gdGhpbmdzLCBldmVudHVhbGx5LCBJIHRoaW5rLiAgLS1uam4KIFBSRShzeXNfbHN0YXQ2NCkKIHsKLSAgIFBSSU5UKCJzeXNfbHN0YXQ2NCAoICUjbHgoJXMpLCAlI2x4ICkiLEFSRzEsKGNoYXIqKUFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX2xzdGF0NjQgKCAlI2x4KCVzKSwgJSNseCApIiwgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImxzdGF0NjQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICAgUFJFX01FTV9SQVNDSUlaKCAibHN0YXQ2NChmaWxlX25hbWUpIiwgQVJHMSApOwogICAgUFJFX01FTV9XUklURSggImxzdGF0NjQoYnVmKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQ2NCkgKTsKQEAgLTM4Niw3ICszODYsNyBAQAogCiBQUkUoc3lzX3N0YXQ2NCkKIHsKLSAgIFBSSU5UKCJzeXNfc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsQVJHMSwoY2hhciopQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsIEFSRzEsIChIQ2hhciopQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzdGF0NjQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICAgUFJFX01FTV9SQVNDSUlaKCAic3RhdDY0KGZpbGVfbmFtZSkiLCBBUkcxICk7CiAgICBQUkVfTUVNX1dSSVRFKCAic3RhdDY0KGJ1ZikiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0NjQpICk7CkBAIC0zOTksNyArMzk5LDggQEAKIAogUFJFKHN5c19mc3RhdGF0NjQpCiB7Ci0gICBQUklOVCgic3lzX2ZzdGF0YXQ2NCAoICVsZCwgJSNseCglcyksICUjbHggKSIsQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19mc3RhdGF0NjQgKCAlbGQsICUjbHgoJXMpLCAlI2x4ICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmc3RhdGF0NjQiLAogICAgICAgICAgICAgICAgICBpbnQsIGRmZCwgY2hhciAqLCBmaWxlX25hbWUsIHN0cnVjdCBzdGF0NjQgKiwgYnVmKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggImZzdGF0YXQ2NChmaWxlX25hbWUpIiwgQVJHMiApOwpAQCAtNDEzLDcgKzQxNCw3IEBACiAKIFBSRShzeXNfZnN0YXQ2NCkKIHsKLSAgIFBSSU5UKCJzeXNfZnN0YXQ2NCAoICVsZCwgJSNseCApIixBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19mc3RhdDY0ICggJWx1LCAlI2x4ICkiLCBBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZzdGF0NjQiLCB1bnNpZ25lZCBsb25nLCBmZCwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICAgUFJFX01FTV9XUklURSggImZzdGF0NjQoYnVmKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQ2NCkgKTsKIH0KQEAgLTU3Nyw3ICs1NzgsNyBAQAogICAgICAgdGhhdCB0YWtlcyBhIHBvaW50ZXIgdG8gdGhlIHNpZ25hbCBtYXNrIHNvIHN1cHBvcnRzIG1vcmUgc2lnbmFscy4KICAgICAqLwogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3NpZ3N1c3BlbmQgKCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLEFSRzIsQVJHMyApOworICAgUFJJTlQoInN5c19zaWdzdXNwZW5kICggJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMyApOwogICAgUFJFX1JFR19SRUFEMyhpbnQsICJzaWdzdXNwZW5kIiwKICAgICAgICAgICAgICAgICAgaW50LCBoaXN0b3J5MCwgaW50LCBoaXN0b3J5MSwKICAgICAgICAgICAgICAgICAgdmtpX29sZF9zaWdzZXRfdCwgbWFzayk7CkBAIC02MDksNyArNjEwLDcgQEAKIC8vIHNwYWNlLCBhbmQgd2Ugc2hvdWxkIHRoZXJlZm9yZSBub3QgY2hlY2sgYW55dGhpbmcgaXQgcG9pbnRzIHRvLgogUFJFKHN5c19wdHJhY2UpCiB7Ci0gICBQUklOVCgic3lzX3B0cmFjZSAoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcHRyYWNlICggJWxkLCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgInB0cmFjZSIsIAogICAgICAgICAgICAgICAgICBsb25nLCByZXF1ZXN0LCBsb25nLCBwaWQsIGxvbmcsIGFkZHIsIGxvbmcsIGRhdGEpOwogICAgc3dpdGNoIChBUkcxKSB7CkBAIC0xMjE0LDYgKzEyMTUsMTAgQEAKICAgIExJTlhZKF9fTlJfY2xvY2tfYWRqdGltZSwgICAgIHN5c19jbG9ja19hZGp0aW1lKSwgICAgLy8gMzcyCiAgICBMSU5YXyhfX05SX3N5bmNmcywgICAgICAgICAgICBzeXNfc3luY2ZzKSwgICAgICAgICAgIC8vIDM3MwogICAgTElOWFkoX19OUl9zZW5kbW1zZywgICAgICAgICAgc3lzX3NlbmRtbXNnKSwgICAgICAgICAvLyAzNzQKKworICAgTElOWFkoX19OUl9wcm9jZXNzX3ZtX3JlYWR2LCAgc3lzX3Byb2Nlc3Nfdm1fcmVhZHYpLCAvLyAzNzYKKyAgIExJTlhfKF9fTlJfcHJvY2Vzc192bV93cml0ZXYsIHN5c19wcm9jZXNzX3ZtX3dyaXRldiksLy8gMzc3CisKICAgIExJTlhZKF9fTlJfZ2V0cmFuZG9tLCAgICAgICAgIHN5c19nZXRyYW5kb20pLCAgICAgICAgLy8gMzg0CiAgICBMSU5YWShfX05SX21lbWZkX2NyZWF0ZSwgICAgICBzeXNfbWVtZmRfY3JlYXRlKSAgICAgIC8vIDM4NQogfTsKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1hcm02NC1saW51eC5jIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFybTY0LWxpbnV4LmMKaW5kZXggNzU1MWU4YS4uOGQzMDI3ZCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFybTY0LWxpbnV4LmMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFybTY0LWxpbnV4LmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgT3BlbldvcmtzCisgICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBPcGVuV29ya3MKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTk4LDcgKzE5OCw3IEBACiAgICAgICAgICAgICAKIC8qIAogICAgV2hlbiBhIGNsaWVudCBjbG9uZXMsIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgbmV3IHRocmVhZC4gIFRoaXMgbWVhbnM6Ci0gICAxLiBhbGxvY2F0ZSBhIFRocmVhZElkK1RocmVhZFN0YXRlK3N0YWNrIGZvciB0aGUgdGhlIHRocmVhZAorICAgMS4gYWxsb2NhdGUgYSBUaHJlYWRJZCtUaHJlYWRTdGF0ZStzdGFjayBmb3IgdGhlIHRocmVhZAogCiAgICAyLiBpbml0aWFsaXplIHRoZSB0aHJlYWQncyBuZXcgVkNQVSBzdGF0ZQogCkBAIC00MzEsNyArNDMxLDcgQEAKIC8vIEFSTTY0IEZJWE1FIGlzIHRoaXMgY29ycmVjdD8KIFBSRShzeXNfZmFkdmlzZTY0KQogewotICAgUFJJTlQoInN5c19mYWR2aXNlNjQgKCAlbGQsICVsZCwgJWx1LCAlbGQgKSIsIEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgUFJJTlQoInN5c19mYWR2aXNlNjQgKCAlbGQsICVsZCwgJWx1LCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgU0FSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAiZmFkdmlzZTY0IiwKICAgICAgICAgICAgICAgICAgaW50LCBmZCwgdmtpX2xvZmZfdCwgb2Zmc2V0LCB2a2lfc2l6ZV90LCBsZW4sIGludCwgYWR2aWNlKTsKIH0KQEAgLTQ0MSw4ICs0NDEsOCBAQAogewogICAgU3lzUmVzIHI7CiAKLSAgIFBSSU5UKCJzeXNfbW1hcCAoICUjbHgsICVsbHUsICVsZCwgJWxkLCAlZCwgJWxkICkiLAotICAgICAgICAgQVJHMSwgKFVMb25nKUFSRzIsIEFSRzMsIEFSRzQsIChJbnQpQVJHNSwgQVJHNiApOworICAgUFJJTlQoInN5c19tbWFwICggJSNseCwgJWx1LCAlbHUsICUjbHgsICVsdSwgJWx1ICkiLAorICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNiApOwogICAgUFJFX1JFR19SRUFENihsb25nLCAibW1hcCIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIHN0YXJ0LCB1bnNpZ25lZCBsb25nLCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIHByb3QsICB1bnNpZ25lZCBsb25nLCBmbGFncywKQEAgLTg1NSw4ICs4NTUsMTggQEAKIC8vICh1bmtub3duKS4KIAogc3RhdGljIFN5c2NhbGxUYWJsZUVudHJ5IHN5c2NhbGxfbWFpbl90YWJsZVtdID0geworICAgTElOWF8oX19OUl9zZXR4YXR0ciwgICAgICAgICAgc3lzX3NldHhhdHRyKSwgICAgICAgICAgLy8gNQorICAgTElOWF8oX19OUl9sc2V0eGF0dHIsICAgICAgICAgc3lzX2xzZXR4YXR0ciksICAgICAgICAgLy8gNgorICAgTElOWF8oX19OUl9mc2V0eGF0dHIsICAgICAgICAgc3lzX2ZzZXR4YXR0ciksICAgICAgICAgLy8gNwogICAgTElOWFkoX19OUl9nZXR4YXR0ciwgICAgICAgICAgc3lzX2dldHhhdHRyKSwgICAgICAgICAgLy8gOAogICAgTElOWFkoX19OUl9sZ2V0eGF0dHIsICAgICAgICAgc3lzX2xnZXR4YXR0ciksICAgICAgICAgLy8gOQorICAgTElOWFkoX19OUl9mZ2V0eGF0dHIsICAgICAgICAgc3lzX2ZnZXR4YXR0ciksICAgICAgICAgLy8gMTAKKyAgIExJTlhZKF9fTlJfbGlzdHhhdHRyLCAgICAgICAgIHN5c19saXN0eGF0dHIpLCAgICAgICAgIC8vIDExCisgICBMSU5YWShfX05SX2xsaXN0eGF0dHIsICAgICAgICBzeXNfbGxpc3R4YXR0ciksICAgICAgICAvLyAxMgorICAgTElOWFkoX19OUl9mbGlzdHhhdHRyLCAgICAgICAgc3lzX2ZsaXN0eGF0dHIpLCAgICAgICAgLy8gMTMKKyAgIExJTlhfKF9fTlJfcmVtb3ZleGF0dHIsICAgICAgIHN5c19yZW1vdmV4YXR0ciksICAgICAgIC8vIDE0CisgICBMSU5YXyhfX05SX2xyZW1vdmV4YXR0ciwgICAgICBzeXNfbHJlbW92ZXhhdHRyKSwgICAgICAvLyAxNQorICAgTElOWF8oX19OUl9mcmVtb3ZleGF0dHIsICAgICAgc3lzX2ZyZW1vdmV4YXR0ciksICAgICAgLy8gMTYKICAgIEdFTlhZKF9fTlJfZ2V0Y3dkLCAgICAgICAgICAgIHN5c19nZXRjd2QpLCAgICAgICAgICAgIC8vIDE3CiAgICBMSU5YWShfX05SX2V2ZW50ZmQyLCAgICAgICAgICBzeXNfZXZlbnRmZDIpLCAgICAgICAgICAvLyAxOQogICAgTElOWFkoX19OUl9lcG9sbF9jcmVhdGUxLCAgICAgc3lzX2Vwb2xsX2NyZWF0ZTEpLCAgICAgLy8gMjAKQEAgLTk0OSw2ICs5NTksNyBAQAogICAgTElOWF8oX19OUl9ydF9zaWdzdXNwZW5kLCAgICAgc3lzX3J0X3NpZ3N1c3BlbmQpLCAgICAgLy8gMTMzCiAgICBMSU5YWShfX05SX3J0X3NpZ2FjdGlvbiwgICAgICBzeXNfcnRfc2lnYWN0aW9uKSwgICAgICAvLyAxMzQKICAgIExJTlhZKF9fTlJfcnRfc2lncHJvY21hc2ssICAgIHN5c19ydF9zaWdwcm9jbWFzayksICAgIC8vIDEzNQorICAgTElOWFkoX19OUl9ydF9zaWdwZW5kaW5nLCAgICAgc3lzX3J0X3NpZ3BlbmRpbmcpLCAgICAgLy8gMTM2CiAgICBMSU5YWShfX05SX3J0X3NpZ3RpbWVkd2FpdCwgICBzeXNfcnRfc2lndGltZWR3YWl0KSwgICAvLyAxMzcKICAgIExJTlhZKF9fTlJfcnRfc2lncXVldWVpbmZvLCAgIHN5c19ydF9zaWdxdWV1ZWluZm8pLCAgIC8vIDEzOAogICAgUExBWF8oX19OUl9ydF9zaWdyZXR1cm4sICAgICAgc3lzX3J0X3NpZ3JldHVybiksICAgICAgLy8gMTM5CkBAIC05NTcsOCArOTY4LDEwIEBACiAgICBHRU5YXyhfX05SX3NldHJlZ2lkLCAgICAgICAgICBzeXNfc2V0cmVnaWQpLCAgICAgICAgICAvLyAxNDMKICAgIEdFTlhfKF9fTlJfc2V0Z2lkLCAgICAgICAgICAgIHN5c19zZXRnaWQpLCAgICAgICAgICAgIC8vIDE0NAogICAgR0VOWF8oX19OUl9zZXRyZXVpZCwgICAgICAgICAgc3lzX3NldHJldWlkKSwgICAgICAgICAgLy8gMTQ1CisgICBHRU5YXyhfX05SX3NldHVpZCwgICAgICAgICAgICBzeXNfc2V0dWlkKSwgICAgICAgICAgICAvLyAxNDYKICAgIExJTlhfKF9fTlJfc2V0cmVzdWlkLCAgICAgICAgIHN5c19zZXRyZXN1aWQpLCAgICAgICAgIC8vIDE0NwogICAgTElOWFkoX19OUl9nZXRyZXN1aWQsICAgICAgICAgc3lzX2dldHJlc3VpZCksICAgICAgICAgLy8gMTQ4CisgICBMSU5YXyhfX05SX3NldHJlc2dpZCwgICAgICAgICBzeXNfc2V0cmVzZ2lkKSwgICAgICAgICAvLyAxNDkKICAgIExJTlhZKF9fTlJfZ2V0cmVzZ2lkLCAgICAgICAgIHN5c19nZXRyZXNnaWQpLCAgICAgICAgIC8vIDE1MAogICAgR0VOWFkoX19OUl90aW1lcywgICAgICAgICAgICAgc3lzX3RpbWVzKSwgICAgICAgICAgICAgLy8gMTUzCiAgICBHRU5YXyhfX05SX3NldHBnaWQsICAgICAgICAgICBzeXNfc2V0cGdpZCksICAgICAgICAgICAvLyAxNTQKQEAgLTEyMTksNyArMTIzMiw2IEBACiAvL1paICAgIExJTlhZKF9fTlJfcHJjdGwsICAgICAgICAgICAgIHN5c19wcmN0bCksICAgICAgICAgIC8vIDE3MgogLy9aWiAgICBMSU5YWShfX05SX3J0X3NpZ2FjdGlvbiwgICAgICBzeXNfcnRfc2lnYWN0aW9uKSwgICAvLyAxNzQKIC8vWlogCi0vL1paICAgIExJTlhZKF9fTlJfcnRfc2lncGVuZGluZywgICAgIHN5c19ydF9zaWdwZW5kaW5nKSwgIC8vIDE3NgogLy9aWiAgICBMSU5YWShfX05SX3J0X3NpZ3RpbWVkd2FpdCwgICBzeXNfcnRfc2lndGltZWR3YWl0KSwvLyAxNzcKIC8vWlogCiAvL1paICAgIExJTlhfKF9fTlJfY2hvd24sICAgICAgICAgICAgIHN5c19jaG93bjE2KSwgICAgICAgIC8vIDE4MgpAQCAtMTI2NSwxOCArMTI3Nyw2IEBACiAvL1paIC8vICAgR0VOWF8oMjIyLCAgICAgICAgICAgICAgICAgICAgc3lzX25pX3N5c2NhbGwpLCAgICAgLy8gMjIyCiAvL1paIC8vICAgUExBWFkoMjIzLCAgICAgICAgICAgICAgICAgICAgc3lzX3N5c2NhbGwyMjMpLCAgICAgLy8gMjIzIC8vIHN5c19icHJvYz8KIC8vWlogCi0vL1paICAgIExJTlhfKF9fTlJfc2V0eGF0dHIsICAgICAgICAgIHN5c19zZXR4YXR0ciksICAgICAgIC8vIDIyNgotLy9aWiAgICBMSU5YXyhfX05SX2xzZXR4YXR0ciwgICAgICAgICBzeXNfbHNldHhhdHRyKSwgICAgICAvLyAyMjcKLS8vWlogICAgTElOWF8oX19OUl9mc2V0eGF0dHIsICAgICAgICAgc3lzX2ZzZXR4YXR0ciksICAgICAgLy8gMjI4Ci0vL1paIAotLy9aWiAgICBMSU5YWShfX05SX2ZnZXR4YXR0ciwgICAgICAgICBzeXNfZmdldHhhdHRyKSwgICAgICAvLyAyMzEKLS8vWlogICAgTElOWFkoX19OUl9saXN0eGF0dHIsICAgICAgICAgc3lzX2xpc3R4YXR0ciksICAgICAgLy8gMjMyCi0vL1paICAgIExJTlhZKF9fTlJfbGxpc3R4YXR0ciwgICAgICAgIHN5c19sbGlzdHhhdHRyKSwgICAgIC8vIDIzMwotLy9aWiAgICBMSU5YWShfX05SX2ZsaXN0eGF0dHIsICAgICAgICBzeXNfZmxpc3R4YXR0ciksICAgICAvLyAyMzQKLS8vWlogCi0vL1paICAgIExJTlhfKF9fTlJfcmVtb3ZleGF0dHIsICAgICAgIHN5c19yZW1vdmV4YXR0ciksICAgIC8vIDIzNQotLy9aWiAgICBMSU5YXyhfX05SX2xyZW1vdmV4YXR0ciwgICAgICBzeXNfbHJlbW92ZXhhdHRyKSwgICAvLyAyMzYKLS8vWlogICAgTElOWF8oX19OUl9mcmVtb3ZleGF0dHIsICAgICAgc3lzX2ZyZW1vdmV4YXR0ciksICAgLy8gMjM3CiAvL1paICAgIExJTlhZKF9fTlJfdGtpbGwsICAgICAgICAgICAgIHN5c190a2lsbCksICAgICAgICAgIC8vIDIzOCAqL0xpbnV4CiAvL1paICAgIExJTlhZKF9fTlJfc2VuZGZpbGU2NCwgICAgICAgIHN5c19zZW5kZmlsZTY0KSwgICAgIC8vIDIzOQogLy9aWiAKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYwppbmRleCAwYmIyNzZlLi4yMDZkNTdmIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtZGFyd2luLmMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWRhcndpbi5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIEFwcGxlIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IEFwcGxlIEluYy4KICAgICAgIEdyZWcgUGFya2VyICBncGFya2VyQGFwcGxlLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC05MSw4ICs5MSw4IEBACiAgICBUaHJlYWRTdGF0ZSogdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKIAogICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1kYXJ3aW4iLCAKLSAgICAgICAgICAgICAgICAgICAgInRocmVhZF93cmFwcGVyKHRpZD0lbGxkKTogZW50cnlcbiIsIAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpdGlkVyk7CisgICAgICAgICAgICAgICAgICAgICJ0aHJlYWRfd3JhcHBlcih0aWQ9JXUpOiBlbnRyeVxuIiwgCisgICAgICAgICAgICAgICAgICAgIHRpZCk7CiAKICAgIHZnX2Fzc2VydCh0c3QtPnN0YXR1cyA9PSBWZ1RzX0luaXQpOwogCkBAIC0xMDAsOCArMTAwLDggQEAKICAgIFZHXyhhY3F1aXJlX0JpZ0xvY2spKHRpZCwgInRocmVhZF93cmFwcGVyIik7CiAKICAgIGlmICgwKQotICAgICAgVkdfKHByaW50ZikoInRocmVhZCB0aWQgJWQgc3RhcnRlZDogc3RhY2sgPSAlcFxuIiwKLSAgICAgICAgICAgICAgICAgIHRpZCwgJnRpZCk7CisgICAgICBWR18ocHJpbnRmKSgidGhyZWFkIHRpZCAldSBzdGFydGVkOiBzdGFjayA9ICVwXG4iLAorICAgICAgICAgICAgICAgICAgdGlkLCAodm9pZCAqKSZ0aWQpOwogCiAgICAvKiBNYWtlIHN1cmUgZXJyb3IgcmVwb3J0aW5nIGlzIGVuYWJsZWQgaW4gdGhlIG5ldyB0aHJlYWQuICovCiAgICB0c3QtPmVycl9kaXNhYmxlbWVudF9sZXZlbCA9IDA7CkBAIC0xMjIsOCArMTIyLDggQEAKICAgIHZnX2Fzc2VydChWR18oaXNfcnVubmluZ190aHJlYWQpKHRpZCkpOwogCiAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLWRhcndpbiIsIAotICAgICAgICAgICAgICAgICAgICAidGhyZWFkX3dyYXBwZXIodGlkPSVsbGQpOiBkb25lXG4iLCAKLSAgICAgICAgICAgICAgICAgICAgKFVMb25nKXRpZFcpOworICAgICAgICAgICAgICAgICAgICAidGhyZWFkX3dyYXBwZXIodGlkPSV1KTogZG9uZVxuIiwgCisgICAgICAgICAgICAgICAgICAgIHRpZCk7CiAKICAgIC8qIFJldHVybiB0byBjYWxsZXIsIHN0aWxsIGhvbGRpbmcgdGhlIGxvY2suICovCiAgICByZXR1cm4gcmV0OwpAQCAtMTYxLDcgKzE2MSw3IEBACiAgICAgICB9CiAgICB9CiAKLSAgIFZHXyhkZWJ1Z0xvZykoIDIsICJzeXN3cmFwLWRhcndpbiIsICJzdGFjayBmb3IgdGlkICVkIGF0ICVwOyBpbml0X1NQPSVwXG4iLAorICAgVkdfKGRlYnVnTG9nKSggMiwgInN5c3dyYXAtZGFyd2luIiwgInN0YWNrIGZvciB0aWQgJXUgYXQgJXA7IGluaXRfU1A9JXBcbiIsCiAgICAgICAgICAgICAgICAgICAgdGlkLCAKICAgICAgICAgICAgICAgICAgICAodm9pZCopdHN0LT5vc19zdGF0ZS52YWxncmluZF9zdGFja19iYXNlLCAKICAgICAgICAgICAgICAgICAgICAodm9pZCopdHN0LT5vc19zdGF0ZS52YWxncmluZF9zdGFja19pbml0X1NQICk7CkBAIC0xODksOCArMTg5LDggQEAKICAgIFRocmVhZFN0YXRlKiAgICAgIHRzdDsKIAogICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1kYXJ3aW4iLCAKLSAgICAgICAgICAgICAgICAgICAgInJ1bl9hX3RocmVhZF9OT1JFVFVSTih0aWQ9JWxsZCk6IHByZS10aHJlYWRfd3JhcHBlclxuIiwKLSAgICAgICAgICAgICAgICAgICAgKFVMb25nKXRpZFcpOworICAgICAgICAgICAgICAgICAgICAicnVuX2FfdGhyZWFkX05PUkVUVVJOKHRpZD0ldSk6IHByZS10aHJlYWRfd3JhcHBlclxuIiwKKyAgICAgICAgICAgICAgICAgICAgdGlkKTsKIAogICAgdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKICAgIHZnX2Fzc2VydCh0c3QpOwpAQCAtMTk5LDggKzE5OSw4IEBACiAgICBzcmMgPSB0aHJlYWRfd3JhcHBlcih0aWQpOyAgCiAKICAgIFZHXyhkZWJ1Z0xvZykoMSwgInN5c3dyYXAtZGFyd2luIiwgCi0gICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSVsbGQpOiBwb3N0LXRocmVhZF93cmFwcGVyXG4iLAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpdGlkVyk7CisgICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSV1KTogcG9zdC10aHJlYWRfd3JhcHBlclxuIiwKKyAgICAgICAgICAgICAgICAgICAgdGlkKTsKIAogICAgYyA9IFZHXyhjb3VudF9saXZpbmdfdGhyZWFkcykoKTsKICAgIHZnX2Fzc2VydChjID49IDEpOyAvKiBzdGF5IHNhbmUgKi8KQEAgLTIyMiw5ICsyMjIsOSBAQAogICAgICAgKTsKICAgICAgIFZHXyhkZWJ1Z0xvZykoCiAgICAgICAgICAxLCAic3lzd3JhcC1saW51eCIsIAotICAgICAgICAgICAgInJ1bl9hX3RocmVhZF9OT1JFVFVSTih0aWQ9JWxsZCk6ICIKKyAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSV1KTogIgogICAgICAgICAgICAgIldBUk5JTkc6IGV4aXRpbmcgdGhyZWFkIGhhcyBlcnJfZGlzYWJsZW1lbnRfbGV2ZWwgPSAldVxuIiwKLSAgICAgICAgICAgIChVTG9uZyl0aWRXLCB0c3QtPmVycl9kaXNhYmxlbWVudF9sZXZlbAorICAgICAgICAgICAgdGlkLCB0c3QtPmVycl9kaXNhYmxlbWVudF9sZXZlbAogICAgICAgKTsKICAgIH0KICAgIHRzdC0+ZXJyX2Rpc2FibGVtZW50X2xldmVsID0gMDsKQEAgLTIzMiw5ICsyMzIsOSBAQAogICAgaWYgKGMgPT0gMSkgewogCiAgICAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLWRhcndpbiIsIAotICAgICAgICAgICAgICAgICAgICAgICAicnVuX2FfdGhyZWFkX05PUkVUVVJOKHRpZD0lbGxkKTogIgorICAgICAgICAgICAgICAgICAgICAgICAicnVuX2FfdGhyZWFkX05PUkVUVVJOKHRpZD0ldSk6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhc3Qgb25lIHN0YW5kaW5nXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAoVUxvbmcpdGlkVyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZCk7CiAKICAgICAgIC8qIFdlIGFyZSB0aGUgbGFzdCBvbmUgc3RhbmRpbmcuICBLZWVwIGhvbGQgb2YgdGhlIGxvY2sgYW5kCiAgICAgICAgICBjYXJyeSBvbiB0byBzaG93IGZpbmFsIHRvb2wgcmVzdWx0cywgdGhlbiBleGl0IHRoZSBlbnRpcmUgc3lzdGVtLiAKQEAgLTI0Niw5ICsyNDYsOSBAQAogICAgICAgbWFjaF9tc2dfaGVhZGVyX3QgbXNnOwogCiAgICAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLWRhcndpbiIsIAotICAgICAgICAgICAgICAgICAgICAgICAicnVuX2FfdGhyZWFkX05PUkVUVVJOKHRpZD0lbGxkKTogIgorICAgICAgICAgICAgICAgICAgICAgICAicnVuX2FfdGhyZWFkX05PUkVUVVJOKHRpZD0ldSk6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vdCBsYXN0IG9uZSBzdGFuZGluZ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKFVMb25nKXRpZFcpOworICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQpOwogCiAgICAgICAvKiBPSywgdGhyZWFkIGlzIGRlYWQsIGJ1dCBvdGhlcnMgc3RpbGwgZXhpc3QuICBKdXN0IGV4aXQuICovCiAKQEAgLTk5Nyw4ICs5OTcsOCBAQAogCiAgICBpZiAoMCB8fCBWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkgewogICAgICAgIFZHXyhkZWJ1Z0xvZykoMCwgInN5c3dyYXAtZGFyd2luIiwKLSAgICAgICAgICAgICAgICAgICAgICJzeW5jX21hcHBpbmdzICglcykgKFwiJXNcIiwgXCIlc1wiLCAweCVsbHgpXG4iLCAKLSAgICAgICAgICAgICAgICAgICAgIHNob3dfQ2hlY2tIb3dPZnRlbihjaGVjayksIHdoZW4sIHdoZXJlLCAoVUxvbmcpbnVtKTsKKyAgICAgICAgICAgICAgICAgICAgICJzeW5jX21hcHBpbmdzICglcykgKFwiJXNcIiwgXCIlc1wiLCAweCVseClcbiIsIAorICAgICAgICAgICAgICAgICAgICAgc2hvd19DaGVja0hvd09mdGVuKGNoZWNrKSwgd2hlbiwgd2hlcmUsIG51bSk7CiAgICB9CiAKICAgIC8vIDE2IGlzIGVub3VnaCBmb3IgbW9zdCBjYXNlcywgYnV0IHNtYWxsIGVub3VnaCB0aGF0IG92ZXJmbG93IGhhcHBlbnMKQEAgLTExMDYsMTIgKzExMDYsMTQgQEAKICAgIGNhc2UgVktJX1RJT0NQVFlHUkFOVDoKICAgIGNhc2UgVktJX1RJT0NQVFlVTkxLOgogICAgY2FzZSBWS0lfRFRSQUNFSElPQ19SRU1PVkU6IAotICAgICAgUFJJTlQoImlvY3RsICggJWxkLCAweCVseCApIixBUkcxLEFSRzIpOworICAgY2FzZSBWS0lfQklPQ0ZMVVNIOgorICAgY2FzZSBWS0lfQklPQ1BST01JU0M6CisgICAgICBQUklOVCgiaW9jdGwgKCAlbHUsIDB4JWx4ICkiLCBBUkcxLCBBUkcyKTsKICAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImlvY3RsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCByZXF1ZXN0KTsKICAgICAgIHJldHVybjsKICAgIGRlZmF1bHQ6Ci0gICAgICBQUklOVCgiaW9jdGwgKCAlbGQsIDB4JWx4LCAlI2x4ICkiLEFSRzEsQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJpb2N0bCAoICVsdSwgMHglbHgsICUjbHggKSIsIEFSRzEsIEFSRzIsIEFSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiaW9jdGwiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIHJlcXVlc3QsIHVuc2lnbmVkIGxvbmcsIGFyZyk7CiAgICB9CkBAIC0xMjkxLDYgKzEyOTMsNzEgQEAKICAgIGNhc2UgVktJX0ZJT05DTEVYOgogICAgICAgIGJyZWFrOwogCisgICAgICAgLy8gbmV0L2JwZi5oCisgICBjYXNlIFZLSV9CSU9DU0VURjogICAgICAgICAgICAvKiBzZXQgQlBGIGZpbHRlciAgICAgICAgICAgICAgICovCisgICAgICAvKgorICAgICAgICogc3RydWN0IGJwZl9wcm9ncmFtIGhhcyBhIDMyLWJpdCBjb3VudCBvZiBpbnN0cnVjdGlvbnMsCisgICAgICAgKiBmb2xsb3dlZCBieSBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgdGhvc2UgaW5zdHJ1Y3Rpb25zLgorICAgICAgICogSW4gNjQtYml0IG1vZGUsIHRoZXJlJ3MgcGFkZGluZyBiZXR3ZWVuIHRob3NlIHR3byBlbGVtZW50cy4KKyAgICAgICAqCisgICAgICAgKiBTbyB0aGF0IHdlIGRvbid0IGJvZ3VzbHkgY29tcGxhaW4gYWJvdXQgdGhlIHBhZGRpbmcgYnl0ZXMsCisgICAgICAgKiB3ZSBqdXN0IHJlcG9ydCB0aGF0IHdlIHJlYWQgYmZfbGVuIGFuZCBhbmQgYmZfaW5zbnMuCisgICAgICAgKgorICAgICAgICogV2UgdGhlbiBtYWtlIHN1cmUgdGhhdCB3aGF0IGJmX2luc25zIHBvaW50cyB0byBpcyB2YWxpZC4KKyAgICAgICAqLworICAgICAgUFJFX01FTV9SRUFEKCAiaW9jdGwoQklPQ1NFVEYpIiwKKyAgICAgICAgICAgICAgICAgICAgIChBZGRyKSYoKHN0cnVjdCB2a2lfYnBmX3Byb2dyYW0gKilBUkczKS0+dmtpX2JmX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfYnBmX3Byb2dyYW0gKilBUkczKS0+dmtpX2JmX2xlbikgKTsKKyAgICAgIFBSRV9NRU1fUkVBRCggImlvY3RsKEJJT0NTRVRGKSIsCisgICAgICAgICAgICAgICAgICAgICAoQWRkcikmKChzdHJ1Y3QgdmtpX2JwZl9wcm9ncmFtICopQVJHMyktPnZraV9iZl9pbnNucywKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfYnBmX3Byb2dyYW0gKilBUkczKS0+dmtpX2JmX2luc25zKSApOworICAgICAgaWYgKCBBUkczICkgeworICAgICAgICAgLyogYmZfbGVuICogc2l6ZW9mICgqYmZfaW5zbnMpICovCisgICAgICAgICBzdHJ1Y3QgdmtpX2JwZl9wcm9ncmFtICpicCA9IChzdHJ1Y3QgdmtpX2JwZl9wcm9ncmFtICopQVJHMzsKKyAgICAgICAgIGlmICggYnAtPmJmX2luc25zICE9IE5VTEwgKQorICAgICAgICAgICBQUkVfTUVNX1JFQUQoICJpb2N0bChCSU9DU0VURikgcG9pbnRzIHRvIGEgc3RydWN0IGJwZl9wcm9ncmFtIHdob3NlIGJmX2luc25zIG1lbWJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKShicC0+dmtpX2JmX2luc25zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnAtPnZraV9iZl9sZW4gKiBzaXplb2YoKmJwLT52a2lfYmZfaW5zbnMpICk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0JJT0NTRVRJRjogICAgICAgICAgIC8qIHNldCBCUEYgaW50ZXJmYWNlICAgICAgICAgICAgKi8KKyAgICAgIFBSRV9NRU1fUkFTQ0lJWiggImlvY3RsKEJJT0NTRVRJRikiLAorICAgICAgICAgICAgICAgICAgICAgKEFkZHIpKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfbmFtZSApOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CSU9DU1JUSU1FT1VUOiAgICAgICAvKiBzZXQgQlBGIHRpbWVvdXQgICAgICAgICAgICAgICovCisgICAgICAvKgorICAgICAgICogNjQtYml0IHN0cnVjdCB0aW1ldmFsIHN0YXJ0cyB3aXRoIGEgNjQtYml0ICJzZWNvbmRzIHNpbmNlIHRoZQorICAgICAgICogRXBvY2giIHZhbHVlLCBmb2xsb3dlZCBieSBhIDMyLWJpdCBtaWNyb3NlY29uZHMgdmFsdWUuICBUaGUKKyAgICAgICAqIHJlc3VsdGluZyBzdHJ1Y3R1cmUgaXMgcGFkZGVkIHRvIGEgbXVsdGlwbGUgb2YgOCBieXRlcywgc28KKyAgICAgICAqIHRoZXJlIGFyZSA0IHBhZGRpbmcgYnl0ZXMgYXQgdGhlIGVuZC4KKyAgICAgICAqCisgICAgICAgKiBTbyB0aGF0IHdlIGRvbid0IGJvZ3VzbHkgY29tcGxhaW4gYWJvdXQgdGhlIHBhZGRpbmcgYnl0ZXMsCisgICAgICAgKiB3ZSBqdXN0IHJlcG9ydCB0aGF0IHdlIHJlYWQgdHZfc2VjIGFuZCB0dl91c2VjLgorICAgICAgICovCisgICAgICBQUkVfTUVNX1JFQUQoICJpb2N0bChCSU9DU1JUSU1FT1VUKSIsCisgICAgICAgICAgICAgICAgICAgICAoQWRkcikmKChzdHJ1Y3QgdmtpX3RpbWV2YWwgKilBUkczKS0+dmtpX3R2X3NlYywKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfdGltZXZhbCAqKUFSRzMpLT52a2lfdHZfc2VjKSApOworICAgICAgUFJFX01FTV9SRUFEKCAiaW9jdGwoQklPQ1NSVElNRU9VVCkiLAorICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJigoc3RydWN0IHZraV90aW1ldmFsICopQVJHMyktPnZraV90dl91c2VjLAorICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCgoc3RydWN0IHZraV90aW1ldmFsICopQVJHMyktPnZraV90dl91c2VjKSApOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CSU9DR0RMVExJU1Q6ICAgICAgICAvKiBnZXQgbGlzdCBvZiBCUEYgRExUcyAgICAgICAgICovCisgICAgICBQUkVfTUVNX1JFQUQoICJpb2N0bChCSU9DR0RMVExJU1QpLmJmbF9sZW4iLAorICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJigoc3RydWN0IHZraV9icGZfZGx0bGlzdCAqKUFSRzMpLT52a2lfYmZsX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKChzdHJ1Y3QgdmtpX2JwZl9kbHRsaXN0ICopQVJHMyktPnZraV9iZmxfbGlzdCkgKTsKKyAgICAgIGlmICggQVJHMyApIHsKKyAgICAgICAgIC8qIGJmbF9sZW4gKiBzaXplb2YgKCpiZmxfbGlzdCkgKi8KKyAgICAgICAgIHN0cnVjdCB2a2lfYnBmX2RsdGxpc3QgKmJkbCA9IChzdHJ1Y3QgdmtpX2JwZl9kbHRsaXN0ICopQVJHMzsKKyAgICAgICAgIGlmICggYmRsLT5iZmxfbGlzdCAhPSBOVUxMICkKKyAgICAgICAgICAgUFJFX01FTV9SRUFEKCAiaW9jdGwoQklPQ0dETFRMSVNUKS5iZmxfbGVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJigoc3RydWN0IHZraV9icGZfZGx0bGlzdCAqKUFSRzMpLT52a2lfYmZsX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCgoc3RydWN0IHZraV9icGZfZGx0bGlzdCAqKUFSRzMpLT52a2lfYmZsX2xlbikgKTsKKyAgICAgICAgICAgUFJFX01FTV9XUklURSggImlvY3RsKEJJT0NHRExUTElTVCkgcG9pbnRzIHRvIGEgc3RydWN0IGJwZl9kbHRsaXN0IHdob3NlIGJmbF9saXN0IG1lbWJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKShiZGwtPnZraV9iZmxfbGlzdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJkbC0+YmZsX2xlbiAqIHNpemVvZigqYmRsLT52a2lfYmZsX2xpc3QpICk7CisgICAgICB9CisgICAgICBicmVhazsKKwogICAgZGVmYXVsdDogCiAgICAgICBNTF8oUFJFX3Vua25vd25faW9jdGwpKHRpZCwgQVJHMiwgQVJHMyk7CiAgICAgICBicmVhazsKQEAgLTE0MTcsNyArMTQ4NCwxOSBAQAogICAgY2FzZSBWS0lfVElPQ1BUWVVOTEs6CiAgICAgICAgYnJlYWs7CiAKKyAgICAgICAvLyBicGYuaAorICAgY2FzZSBWS0lfQklPQ0dETFRMSVNUOiAgICAgICAgLyogZ2V0IGxpc3Qgb2YgQlBGIERMVHMgICAgICAgICAqLworICAgICAgaWYgKFJFUyA9PSAwICYmIEFSRzMgKSB7CisgICAgICAgICAvKiBiZmxfbGVuICogc2l6ZW9mICgqYmZsX2xpc3QpICovCisgICAgICAgICBzdHJ1Y3QgdmtpX2JwZl9kbHRsaXN0ICpiZGwgPSAoc3RydWN0IHZraV9icGZfZGx0bGlzdCAqKUFSRzM7CisgICAgICAgICBpZiAoIGJkbC0+dmtpX2JmbF9saXN0ICE9IE5VTEwgKQorICAgICAgICAgICBQT1NUX01FTV9XUklURSggKEFkZHIpKGJkbC0+dmtpX2JmbF9saXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJkbC0+YmZsX2xlbiAqIHNpemVvZigqYmRsLT52a2lfYmZsX2xpc3QpICk7CisgICAgICB9CisgICAgICBicmVhazsKKwogICAgZGVmYXVsdDoKKyAgICAgIE1MXyhQT1NUX3Vua25vd25faW9jdGwpKHRpZCwgUkVTLCBBUkcyLCBBUkczKTsKICAgICAgIGJyZWFrOwogICAgfQogfQpAQCAtMTQ1MCw2ICsxNTI5LDExIEBACiAjICAgICBpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfOQogICAgICAgRihGX0FEREZJTEVTSUdTKTsKICMgICAgIGVuZGlmCisjICAgICBpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTEKKyAgICAgIEYoRl9BRERGSUxFU0lHU19GT1JfRFlMRF9TSU0pOworICAgICAgRihGX0JBUlJJRVJGU1lOQyk7CisgICAgICBGKEZfQURERklMRVNJR1NfUkVUVVJOKTsKKyMgICAgIGVuZGlmCiAgICBkZWZhdWx0OgogICAgICAgcmV0dXJuICJVTktOT1dOIjsKICAgIH0KQEAgLTE0NjMsNyArMTU0Nyw3IEBACiAgICBjYXNlIFZLSV9GX0dFVEZEOgogICAgY2FzZSBWS0lfRl9HRVRGTDoKICAgIGNhc2UgVktJX0ZfR0VUT1dOOgotICAgICAgUFJJTlQoImZjbnRsICggJWxkLCAlbGQgKSIsIEFSRzEsQVJHMik7CisgICAgICBQUklOVCgiZmNudGwgKCAlbHUsICVsdSApIiwgQVJHMSxBUkcyKTsKICAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZjbnRsIiwgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQpOwogICAgICAgYnJlYWs7CiAKQEAgLTE0NzIsNyArMTU1Niw3IEBACiAgICBjYXNlIFZLSV9GX1NFVEZEOgogICAgY2FzZSBWS0lfRl9TRVRGTDoKICAgIGNhc2UgVktJX0ZfU0VUT1dOOgotICAgICAgUFJJTlQoImZjbnRsW0FSRzM9PSdhcmcnXSAoICVsZCwgJWxkLCAlbGQgKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJmY250bFtBUkczPT0nYXJnJ10gKCAlbHUsICVsdSwgJWx1ICkiLCBBUkcxLEFSRzIsQVJHMyk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmY250bCIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHVuc2lnbmVkIGludCwgY21kLCB1bnNpZ25lZCBsb25nLCBhcmcpOwogICAgICAgYnJlYWs7CkBAIC0xNDgxLDcgKzE1NjUsNyBAQAogICAgY2FzZSBWS0lfRl9HRVRMSzoKICAgIGNhc2UgVktJX0ZfU0VUTEs6CiAgICBjYXNlIFZLSV9GX1NFVExLVzoKLSAgICAgIFBSSU5UKCJmY250bFtBUkczPT0nbG9jayddICggJWxkLCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJmY250bFtBUkczPT0nbG9jayddICggJWx1LCAlbHUsICUjbHggKSIsIEFSRzEsQVJHMixBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQsCiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmbG9jazY0ICosIGxvY2spOwpAQCAtMTQ5MSw3ICsxNTc1LDcgQEAKICAgICAgIGJyZWFrOwogIyAgaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEwCiAgICBjYXNlIFZLSV9GX1NFVExLV1RJTUVPVVQ6Ci0gICAgICBQUklOVCgiZmNudGxbQVJHMz09J2xvY2t0aW1lb3V0J10gKCAlbGQsICVsZCwgJSNseCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgICAgUFJJTlQoImZjbnRsW0FSRzM9PSdsb2NrdGltZW91dCddICggJWx1LCAlbHUsICUjbHggKSIsIEFSRzEsQVJHMixBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQsCiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmbG9ja3RpbWVvdXQgKiwgbG9jayk7CkBAIC0xNTA3LDEzICsxNTkxLDEzIEBACiAgICBjYXNlIFZLSV9GX0ZSRUVaRV9GUzoKICAgIGNhc2UgVktJX0ZfVEhBV19GUzoKICAgIGNhc2UgVktJX0ZfR0xPQkFMX05PQ0FDSEU6Ci0gICAgICBQUklOVCgiZmNudGwgKCAlbGQsICVzICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcxKSk7CisgICAgICBQUklOVCgiZmNudGwgKCAlbHUsICVzLCAlbHUgKSIsIEFSRzEsIG5hbWVfZm9yX2ZjbnRsKEFSRzEpLCBBUkcyKTsKICAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZjbnRsIiwgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQpOwogICAgICAgYnJlYWs7CiAKICAgICAgICAvLyBzdHJ1Y3QgZnN0b3JlCiAgICBjYXNlIFZLSV9GX1BSRUFMTE9DQVRFOgotICAgICAgUFJJTlQoImZjbnRsICggJWxkLCAlcywgJSNseCApIiwgQVJHMSwgbmFtZV9mb3JfZmNudGwoQVJHMiksIEFSRzMpOworICAgICAgUFJJTlQoImZjbnRsICggJWx1LCAlcywgJSNseCApIiwgQVJHMSwgbmFtZV9mb3JfZmNudGwoQVJHMiksIEFSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNudGwiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIGNtZCwKICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZzdG9yZSAqLCBmc3RvcmUpOwpAQCAtMTUzNCw3ICsxNjE4LDcgQEAKIAogICAgICAgIC8vIG9mZl90CiAgICBjYXNlIFZLSV9GX1NFVFNJWkU6Ci0gICAgICBQUklOVCgiZmNudGwgKCAlbGQsICVzLCAlI2x4ICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcyKSwgQVJHMyk7CisgICAgICBQUklOVCgiZmNudGwgKCAlbHUsICVzLCAlI2x4ICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcyKSwgQVJHMyk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmY250bCIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHVuc2lnbmVkIGludCwgY21kLAogICAgICAgICAgICAgICAgICAgICB2a2lfb2ZmX3QgKiwgb2Zmc2V0KTsKQEAgLTE1NDIsNyArMTYyNiw3IEBACiAKICAgICAgICAvLyBzdHJ1Y3QgcmFkdmlzb3J5CiAgICBjYXNlIFZLSV9GX1JEQURWSVNFOgotICAgICAgUFJJTlQoImZjbnRsICggJWxkLCAlcywgJSNseCApIiwgQVJHMSwgbmFtZV9mb3JfZmNudGwoQVJHMiksIEFSRzMpOworICAgICAgUFJJTlQoImZjbnRsICggJWx1LCAlcywgJSNseCApIiwgQVJHMSwgbmFtZV9mb3JfZmNudGwoQVJHMiksIEFSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNudGwiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIGNtZCwKICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9yYWR2aXNvcnkgKiwgcmFkdmlzb3J5KTsKQEAgLTE1NTksNyArMTY0Myw3IEBACiAgICAgICAgLy8gc3RydWN0IGZib290c3RyYXB0cmFuc2ZlcgogICAgY2FzZSBWS0lfRl9SRUFEQk9PVFNUUkFQOgogICAgY2FzZSBWS0lfRl9XUklURUJPT1RTVFJBUDoKLSAgICAgIFBSSU5UKCJmY250bCAoICVsZCwgJXMsICUjbHggKSIsIEFSRzEsIG5hbWVfZm9yX2ZjbnRsKEFSRzIpLCBBUkczKTsKKyAgICAgIFBSSU5UKCJmY250bCAoICVsdSwgJXMsICUjbHggKSIsIEFSRzEsIG5hbWVfZm9yX2ZjbnRsKEFSRzIpLCBBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQsCiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmYm9vdHN0cmFwdHJhbnNmZXIgKiwgYm9vdHN0cmFwKTsKQEAgLTE1NzAsNyArMTY1NCw3IEBACiAKICAgICAgICAvLyBzdHJ1Y3QgbG9nMnBoeXMgKG91dCkKICAgIGNhc2UgVktJX0ZfTE9HMlBIWVM6Ci0gICAgICBQUklOVCgiZmNudGwgKCAlbGQsICVzLCAlI2x4ICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcyKSwgQVJHMyk7CisgICAgICBQUklOVCgiZmNudGwgKCAlbHUsICVzLCAlI2x4ICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcyKSwgQVJHMyk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmY250bCIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHVuc2lnbmVkIGludCwgY21kLAogICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbG9nMnBoeXMgKiwgbDJwKTsKQEAgLTE1ODAsNyArMTY2NCw3IEBACiAKICAgICAgICAvLyBjaGFyW21heHBhdGhsZW5dIChvdXQpCiAgICBjYXNlIFZLSV9GX0dFVFBBVEg6Ci0gICAgICBQUklOVCgiZmNudGwgKCAlbGQsICVzLCAlI2x4ICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcyKSwgQVJHMyk7CisgICAgICBQUklOVCgiZmNudGwgKCAlbHUsICVzLCAlI2x4ICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcyKSwgQVJHMyk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmY250bCIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHVuc2lnbmVkIGludCwgY21kLAogICAgICAgICAgICAgICAgICAgICBjaGFyICosIHBhdGhidWYpOwpAQCAtMTU5MCw4ICsxNjc0LDggQEAKIAogICAgICAgIC8vIGNoYXJbbWF4cGF0aGxlbl0gKGluKQogICAgY2FzZSBWS0lfRl9QQVRIUEtHX0NIRUNLOgotICAgICAgUFJJTlQoImZjbnRsICggJWxkLCAlcywgJSNseCAnJXMnKSIsIEFSRzEsIG5hbWVfZm9yX2ZjbnRsKEFSRzIpLCBBUkczLAotICAgICAgICAgIChjaGFyICopQVJHMyk7CisgICAgICBQUklOVCgiZmNudGwgKCAlbHUsICVzLCAlI2x4ICclcycpIiwgQVJHMSwgbmFtZV9mb3JfZmNudGwoQVJHMiksIEFSRzMsCisgICAgICAgICAgICAoSENoYXIgKilBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQsCiAgICAgICAgICAgICAgICAgICAgIGNoYXIgKiwgcGF0aGJ1Zik7CkBAIC0xNTk5LDcgKzE2ODMsNyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgVktJX0ZfQUREU0lHUzogLyogQWRkIGRldGFjaGVkIHNpZ25hdHVyZXMgKGZvciBjb2RlIHNpZ25pbmcpICovCi0gICAgICBQUklOVCgiZmNudGwgKCAlbGQsICVzICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcyKSk7CisgICAgICBQUklOVCgiZmNudGwgKCAlbHUsICVzICkiLCBBUkcxLCBuYW1lX2Zvcl9mY250bChBUkcyKSk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmY250bCIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHVuc2lnbmVkIGludCwgY21kLAogICAgICAgICAgICAgICAgICAgICB2a2lfZnNpZ25hdHVyZXNfdCAqLCBzaWdzKTsKQEAgLTE2MTgsNyArMTcwMiw3IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSBWS0lfRl9BRERGSUxFU0lHUzogLyogQWRkIHNpZ25hdHVyZSBmcm9tIHNhbWUgZmlsZSAodXNlZCBieSBkeWxkIGZvciBzaGFyZWQgbGlicykgKi8KLSAgICAgIFBSSU5UKCJmY250bCAoICVsZCwgJXMgKSIsIEFSRzEsIG5hbWVfZm9yX2ZjbnRsKEFSRzIpKTsKKyAgICAgIFBSSU5UKCJmY250bCAoICVsdSwgJXMsICUjbHggKSIsIEFSRzEsIG5hbWVfZm9yX2ZjbnRsKEFSRzIpLCBBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQsCiAgICAgICAgICAgICAgICAgICAgIHZraV9mc2lnbmF0dXJlc190ICosIHNpZ3MpOwpAQCAtMTYzMiw5ICsxNzE2LDI1IEBACiAgICAgICB9CiAgICAgICBicmVhazsKIAorIyAgaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzExCisgICBjYXNlIFZLSV9GX0FEREZJTEVTSUdTX0ZPUl9EWUxEX1NJTTogLyogQWRkIHNpZ25hdHVyZSBmcm9tIHNhbWUgZmlsZSwgb25seSBpZiBpdCBpcyBzaWduZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSBBcHBsZSB1c2VkIGJ5IGR5bGQgZm9yIHNpbXVsYXRvciAqLworICAgICAgLy8gRklYTUU6IFJLCisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfRl9CQVJSSUVSRlNZTkM6IC8qIGZzeW5jICsgaXNzdWUgYmFycmllciB0byBkcml2ZSAqLworICAgICAgLy8gRklYTUU6IFJLCisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfRl9BRERGSUxFU0lHU19SRVRVUk46IC8qIEFkZCBzaWduYXR1cmUgZnJvbSBzYW1lIGZpbGUsIHJldHVybiBlbmQgb2Zmc2V0IGluIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZSBvbiBzdWNjZXNzICovCisgICAgICAvLyBGSVhNRTogUksKKyAgICAgIGJyZWFrOworIyAgZW5kaWYKKwogICAgZGVmYXVsdDoKLSAgICAgIFBSSU5UKCJmY250bCAoICVsZCwgJWxkIFs/P10gKSIsIEFSRzEsIEFSRzIpOwotICAgICAgbG9nX2RlY2F5aW5nKCJVTktOT1dOIGZjbnRsICVsZCEiLCBBUkcyKTsKKyAgICAgIFBSSU5UKCJmY250bCAoICVsdSwgJWx1IFs/P10gKSIsIEFSRzEsIEFSRzIpOworICAgICAgbG9nX2RlY2F5aW5nKCJVTktOT1dOIGZjbnRsICVsdSEiLCBBUkcyKTsKICAgICAgIGJyZWFrOwogICAgfQogfQpAQCAtMTY5NSw3ICsxNzk1LDcgQEAKIAogUFJFKGZ1dGltZXMpCiB7Ci0gICBQUklOVCgiZnV0aW1lcyAoICVsZCwgJSNseCApIiwgQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJmdXRpbWVzICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJmdXRpbWVzIiwgaW50LCBmZCwgc3RydWN0IHRpbWV2YWwgKiwgdHZwKTsKICAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJmdXRpbWVzIiwgdGlkLCBGYWxzZSkpIHsKICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZSggVktJX0VCQURGICk7CkBAIC0xNzA3LDE0ICsxODA3LDE0IEBACiAKIFBSRShzZW1nZXQpCiB7Ci0gICBQUklOVCgic2VtZ2V0ICggJWxkLCAlbGQsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic2VtZ2V0ICggJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzZW1nZXQiLCB2a2lfa2V5X3QsIGtleSwgaW50LCBuc2VtcywgaW50LCBzZW1mbGcpOwogfQogCiBQUkUoc2Vtb3ApCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzZW1vcCAoICVsZCwgJSNseCwgJWx1ICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzZW1vcCAoICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzZW1vcCIsCiAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIHN0cnVjdCBzZW1idWYgKiwgc29wcywgdmtpX3NpemVfdCwgbnNvb3BzKTsKICAgIE1MXyhnZW5lcmljX1BSRV9zeXNfc2Vtb3ApKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtMTcyNSwyMyArMTgyNSwyMyBAQAogICAgc3dpdGNoIChBUkczKSB7CiAgICBjYXNlIFZLSV9JUENfU1RBVDoKICAgIGNhc2UgVktJX0lQQ19TRVQ6Ci0gICAgICBQUklOVCgic2VtY3RsICggJWxkLCAlbGQsICVsZCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgICAgIFBSSU5UKCJzZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNlbWN0bCIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIGludCwgc2VtbnVtLCBpbnQsIGNtZCwgc3RydWN0IHNlbWlkX2RzICosIGFyZyk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0dFVEFMTDoKICAgIGNhc2UgVktJX1NFVEFMTDoKLSAgICAgIFBSSU5UKCJzZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgICAgUFJJTlQoInNlbWN0bCAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQpOwogICAgICAgUFJFX1JFR19SRUFENChsb25nLCAic2VtY3RsIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kLCB1bnNpZ25lZCBzaG9ydCAqLCBhcmcpOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9TRVRWQUw6Ci0gICAgICBQUklOVCgic2VtY3RsICggJWxkLCAlbGQsICVsZCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgICAgIFBSSU5UKCJzZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNlbWN0bCIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIGludCwgc2VtbnVtLCBpbnQsIGNtZCwgaW50LCBhcmcpOwogICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgotICAgICAgUFJJTlQoInNlbWN0bCAoICVsZCwgJWxkLCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMpOworICAgICAgUFJJTlQoInNlbWN0bCAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAic2VtY3RsIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kKTsKICAgICAgIGJyZWFrOwpAQCAtMTc1NywxNCArMTg1NywxNCBAQAogewogICAgaWYgKEFSRzIgJiBWS0lfT19DUkVBVCkgewogICAgICAgLy8gNC1hcmcgdmVyc2lvbgotICAgICAgUFJJTlQoInNlbV9vcGVuICggJSNseCglcyksICVsZCwgJWxkLCAlbGQgKSIsCi0gICAgICAgICAgICBBUkcxLChjaGFyKilBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgICAgIFBSSU5UKCJzZW1fb3BlbiAoICUjbHgoJXMpLCAlbGQsICVsdSwgJWx1ICkiLAorICAgICAgICAgICAgQVJHMSwgKEhDaGFyKilBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICAgICBQUkVfUkVHX1JFQUQ0KHZraV9zZW1fdCAqLCAic2VtX29wZW4iLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIG5hbWUsIGludCwgb2ZsYWcsIHZraV9tb2RlX3QsIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgdmFsdWUpOwogICAgfSBlbHNlIHsKICAgICAgIC8vIDItYXJnIHZlcnNpb24KLSAgICAgIFBSSU5UKCJzZW1fb3BlbiAoICUjbHgoJXMpLCAlbGQgKSIsQVJHMSwoY2hhciopQVJHMSxBUkcyKTsKKyAgICAgIFBSSU5UKCJzZW1fb3BlbiAoICUjbHgoJXMpLCAlbGQgKSIsIEFSRzEsIChIQ2hhciopQVJHMSwgU0FSRzIpOwogICAgICAgUFJFX1JFR19SRUFEMih2a2lfc2VtX3QgKiwgInNlbV9vcGVuIiwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBuYW1lLCBpbnQsIG9mbGFnKTsKICAgIH0KQEAgLTE3ODIsNyArMTg4Miw3IEBACiAKIFBSRShzZW1fdW5saW5rKQogewotICAgUFJJTlQoInNlbV91bmxpbmsoICAlI2x4KCVzKSApIiwgQVJHMSwoY2hhciopQVJHMSk7CisgICBQUklOVCgic2VtX3VubGluayggICUjbHgoJXMpICkiLCBBUkcxLCAoSENoYXIqKUFSRzEpOwogICAgUFJFX1JFR19SRUFEMShpbnQsICJzZW1fdW5saW5rIiwgY29uc3QgY2hhciAqLCBuYW1lKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggInNlbV91bmxpbmsobmFtZSkiLCBBUkcxICk7CiB9CkBAIC0xODAzLDcgKzE5MDMsNyBAQAogCiBQUkUoc2VtX2luaXQpCiB7Ci0gIFBSSU5UKCJzZW1faW5pdCggJSNseCwgJWxkLCAlbGQgKSIsIEFSRzEsIEFSRzIsIEFSRzMpOworICBQUklOVCgic2VtX2luaXQoICUjbHgsICVsZCwgJWx1ICkiLCBBUkcxLCBTQVJHMiwgQVJHMyk7CiAgIFBSRV9SRUdfUkVBRDMoaW50LCAic2VtX2luaXQiLCB2a2lfc2VtX3QgKiwgc2VtLAogICAgICAgICAgICAgICAgIGludCwgcHNoYXJlZCwgdW5zaWduZWQgaW50LCB2YWx1ZSk7CiAgIFBSRV9NRU1fV1JJVEUoInNlbV9pbml0KHNlbSkiLCBBUkcxLCBzaXplb2YodmtpX3NlbV90KSk7CkBAIC0xOTAzLDcgKzIwMDMsNyBAQAogUFJFKGtldmVudCkKIHsKICAgIFBSSU5UKCJrZXZlbnQoICVsZCwgJSNseCwgJWxkLCAlI2x4LCAlbGQsICUjbHggKSIsIAotICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNik7CisgICAgICAgICBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNik7CiAgICBQUkVfUkVHX1JFQUQ2KGludCwia2V2ZW50IiwgaW50LGtxLCAKICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZraV9rZXZlbnQgKixjaGFuZ2VsaXN0LCBpbnQsbmNoYW5nZXMsIAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX2tldmVudCAqLGV2ZW50bGlzdCwgaW50LG5ldmVudHMsIApAQCAtMTkyOSw3ICsyMDI5LDcgQEAKIFBSRShrZXZlbnQ2NCkKIHsKICAgIFBSSU5UKCJrZXZlbnQ2NCggJWxkLCAlI2x4LCAlbGQsICUjbHgsICVsZCwgJSNseCApIiwKLSAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIEFSRzYpOworICAgICAgICAgU0FSRzEsIEFSRzIsIFNBUkczLCBBUkc0LCBTQVJHNSwgQVJHNik7CiAgICBQUkVfUkVHX1JFQUQ2KGludCwia2V2ZW50NjQiLCBpbnQsa3EsCiAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2a2lfa2V2ZW50NjQgKixjaGFuZ2VsaXN0LCBpbnQsbmNoYW5nZXMsCiAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfa2V2ZW50NjQgKixldmVudGxpc3QsIGludCxuZXZlbnRzLApAQCAtMTk5Nyw4ICsyMDk3LDggQEAKIAogUFJFKHdvcmtxX29wcykKIHsKLSAgIFBSSU5UKCJ3b3JrcV9vcHMoICVsZCglcyksICUjbHgsICVsZCApIiwgQVJHMSwgd29ya3FvcF9uYW1lKEFSRzEpLCBBUkcyLAotICAgICAgQVJHMyk7CisgICBQUklOVCgid29ya3Ffb3BzKCAlbGQoJXMpLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCB3b3JrcW9wX25hbWUoQVJHMSksIEFSRzIsCisgICAgICAgICBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGludCwid29ya3Ffb3BzIiwgaW50LCJvcHRpb25zIiwgdm9pZCAqLCJpdGVtIiwgCiAgICAgICAgICAgICAgICAgIGludCwicHJpb3JpdHkiKTsKIApAQCAtMjA1OCw3ICsyMTU4LDcgQEAKIFBSRShfX21hY19zeXNjYWxsKQogewogICAgUFJJTlQoIl9fbWFjX3N5c2NhbGwoICUjbHgoJXMpLCAlbGQsICUjbHggKSIsCi0gICAgICAgICBBUkcxLCAoSENoYXIqKUFSRzEsIEFSRzIsIEFSRzMpOworICAgICAgICAgQVJHMSwgKEhDaGFyKilBUkcxLCBTQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGludCwiX19tYWNfc3lzY2FsbCIsIGNoYXIgKiwicG9saWN5IiwgCiAgICAgICAgICAgICAgICAgIGludCwiY2FsbCIsIHZvaWQgKiwiYXJnIik7CiAKQEAgLTIwNzQsNyArMjE3NCw3IEBACiAgICBUaHJlYWRJZCAgICAgdDsKICAgIFRocmVhZFN0YXRlKiB0c3Q7CiAKLSAgIFBSSU5UKCJkYXJ3aW4gZXhpdCggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJkYXJ3aW4gZXhpdCggJWxkICkiLCBTQVJHMSk7CiAgICBQUkVfUkVHX1JFQUQxKHZvaWQsICJleGl0IiwgaW50LCBzdGF0dXMpOwogCiAgICB0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOwpAQCAtMjEwMiw3ICsyMjAyLDcgQEAKIAogUFJFKHNpZ2FjdGlvbikKIHsKLSAgIFBSSU5UKCJzaWdhY3Rpb24gKCAlbGQsICUjbHgsICUjbHggKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzaWdhY3Rpb24gKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNpZ2FjdGlvbiIsCiAgICAgICAgICAgICAgICAgIGludCwgc2lnbnVtLCB2a2lfc2lnYWN0aW9uX3RvS190ICosIGFjdCwKICAgICAgICAgICAgICAgICAgdmtpX3NpZ2FjdGlvbl9mcm9tS190ICosIG9sZGFjdCk7CkBAIC0yMTM1LDE4ICsyMjM1LDUyIEBACiAKIFBSRShfX3B0aHJlYWRfa2lsbCkKIHsKLSAgIFBSSU5UKCJfX3B0aHJlYWRfa2lsbCAoICVsZCwgJWxkICkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSSU5UKCJfX3B0aHJlYWRfa2lsbCAoICUjbHgsICVsZCApIiwgQVJHMSwgU0FSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiX19wdGhyZWFkX2tpbGwiLCB2a2lfcHRocmVhZF90KiwgdGhyZWFkLCBpbnQsIHNpZyk7CiB9CiAKIAogUFJFKF9fcHRocmVhZF9zaWdtYXNrKQogewotICAgLy8gR3JQIGZpeG1lCi0gICAvLyBKUlM6IGFyZ3VtZW50cyBhcmUgaWRlbnRpY2FsIHRvIHNpZ3Byb2NtYXNrIAotICAgLy8gKGhvdywgc2lnc2V0X3QqLCBzaWdzZXRfdCopLiAgUGVyaGFwcyBiZWhhdmUgaWRlbnRpY2FsbHk/Ci0gICBsb2dfZGVjYXlpbmcoIlVOS05PV04gX19wdGhyZWFkX3NpZ21hc2sgaXMgdW5zdXBwb3J0ZWQuIik7Ci0gICBTRVRfU1RBVFVTX1N1Y2Nlc3MoIDAgKTsKKyAgICAvLyBhcmd1bWVudHMgYXJlIGlkZW50aWNhbCB0byBzaWdwcm9jbWFzayAoaG93LCBzaWdzZXRfdCosIHNpZ3NldF90KikuCisgICAgVVdvcmQgYXJnMTsKKyAgICBQUklOVCgiX19wdGhyZWFkX3NpZ21hc2sgKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKKyAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJfX3B0aHJlYWRfc2lnbWFzayIsCisgICAgICAgICAgICAgICAgICBpbnQsIGhvdywgdmtpX3NpZ3NldF90ICosIHNldCwgdmtpX3NpZ3NldF90ICosIG9sZHNldCk7CisgICAgaWYgKEFSRzIgIT0gMCkKKyAgICAgICAgUFJFX01FTV9SRUFEKCAiX19wdGhyZWFkX3NpZ21hc2soc2V0KSIsIEFSRzIsIHNpemVvZih2a2lfc2lnc2V0X3QpKTsKKyAgICBpZiAoQVJHMyAhPSAwKQorICAgICAgICBQUkVfTUVNX1dSSVRFKCAiX19wdGhyZWFkX3NpZ21hc2sob2xkc2V0KSIsIEFSRzMsIHNpemVvZih2a2lfc2lnc2V0X3QpKTsKKyAgICAKKyAgICAvKiBNYXNzYWdlIEFSRzEgKCdob3cnKS4gIElmIEFSRzIgKHRoZSBuZXcgbWFzaykgaXMgTlVMTCB0aGVuIHRoZQorICAgICB2YWx1ZSBvZiAnaG93JyBpcyBpcnJlbGV2YW50LCBhbmQgaXQgYXBwZWFycyB0aGF0IERhcndpbidzIGxpYmMKKyAgICAgcGFzc2VzIHplcm8sIHdoaWNoIGlzIG5vdCBlcXVhbCB0byBhbnkgb2YKKyAgICAgU0lHX3tCTE9DSyxVTkJMT0NLLFNFVE1BU0t9LiAgVGhpcyBjYXVzZXMKKyAgICAgVkdfKGRvX3N5c19zaWdwcm9jbWFzaykgdG8gY29tcGxhaW4sIHNpbmNlIGl0IGNoZWNrcyB0aGUgJ2hvdycKKyAgICAgdmFsdWUgaW5kZXBlbmRlbnRseSBvZiB0aGUgb3RoZXIgYXJncy4gIFNvbHV0aW9uOiBpbiB0aGlzIGNhc2UsCisgICAgIHNpbXBseSBwYXNzIGEgdmFsaWQgKGJ1dCBpcnJlbGV2YW50KSB2YWx1ZSBmb3IgJ2hvdycuICovCisgICAgLyogQWxzbywgaW4gdGhpcyBjYXNlIHRoZSBuZXcgc2V0IGlzIHBhc3NlZCB0byB0aGUga2VybmVsIGJ5CisgICAgIHJlZmVyZW5jZSwgbm90IHZhbHVlLCBhcyBpbiBzb21lIG90aGVyIHNpZ21hc2sgcmVsYXRlZCBEYXJ3aW4KKyAgICAgc3lzY2FsbHMuICovCisgICAgYXJnMSA9IEFSRzE7CisgICAgaWYgKEFSRzIgPT0gMCAgLyogdGhlIG5ldy1zZXQgaXMgTlVMTCAqLworICAgICAgICAmJiBBUkcxICE9IFZLSV9TSUdfQkxPQ0sKKyAgICAgICAgJiYgQVJHMSAhPSBWS0lfU0lHX1VOQkxPQ0sgJiYgQVJHMSAhPSBWS0lfU0lHX1NFVE1BU0spIHsKKyAgICAgICAgYXJnMSA9IFZLSV9TSUdfU0VUTUFTSzsKKyAgICB9CisgICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhkb19zeXNfc2lncHJvY21hc2spICggdGlkLCBhcmcxLCAodmtpX3NpZ3NldF90KilBUkcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2a2lfc2lnc2V0X3QqKUFSRzMgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAKKyAgICBpZiAoU1VDQ0VTUykKKyAgICAgICAgKmZsYWdzIHw9IFNmUG9sbEFmdGVyOworfQorUE9TVChfX3B0aHJlYWRfc2lnbWFzaykKK3sKKyAgICB2Z19hc3NlcnQoU1VDQ0VTUyk7CisgICAgaWYgKFJFUyA9PSAwICYmIEFSRzMgIT0gMCkKKyAgICAgICAgUE9TVF9NRU1fV1JJVEUoIEFSRzMsIHNpemVvZih2a2lfc2lnc2V0X3QpKTsKIH0KIAogCkBAIC0yMTU1LDcgKzIyODksNyBAQAogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7IC8qIG1pZ2h0IGtpbGwgdGhpcyB0aHJlYWQ/Pz8gKi8KICAgIC8qIEkgZG9uJ3QgdGhpbmsgc28gLS0gSSB0aGluayBpdCBqdXN0IGNoYW5nZXMgdGhlIGNhbmNlbGxhdGlvbgogICAgICAgc3RhdGUuICBCdXQgdGFraW5nIG5vIGNoYW5jZXMuICovCi0gICBQUklOVCgiX19wdGhyZWFkX2NhbmNlbGVkICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJfX3B0aHJlYWRfY2FuY2VsZWQgKCAlI2x4ICkiLCBBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEobG9uZywgIl9fcHRocmVhZF9jYW5jZWxlZCIsIHZvaWQqLCBhcmcxKTsKIH0KIApAQCAtMjE3Miw3ICsyMzA2LDcgQEAKIFBSRShfX2Rpc2FibGVfdGhyZWFkc2lnbmFsKQogewogICAgdmtpX3NpZ3NldF90IHNldDsKLSAgIFBSSU5UKCJfX2Rpc2FibGVfdGhyZWFkc2lnbmFsKCVsZCwgJWxkLCAlbGQpIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgiX19kaXNhYmxlX3RocmVhZHNpZ25hbCglbGQsICVsZCwgJWxkKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOwogICAgLyogSSBkb24ndCB0aGluayB0aGlzIHJlYWxseSBsb29rcyBhdCBpdHMgYXJndW1lbnRzLiAgU28gZG9uJ3QKICAgICAgIGJvdGhlciB0byBjaGVjayB0aGVtLiAqLwogCkBAIC0yMTkxLDcgKzIzMjUsNyBAQAogCiBQUkUoX19wdGhyZWFkX2NoZGlyKQogewotICAgIFBSSU5UKCJfX3B0aHJlYWRfY2hkaXIgKCAlI2x4KCVzKSApIiwgQVJHMSwgKGNoYXIqKUFSRzEpOworICAgIFBSSU5UKCJfX3B0aHJlYWRfY2hkaXIgKCAlI2x4KCVzKSApIiwgQVJHMSwgKEhDaGFyKilBUkcxKTsKICAgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJfX3B0aHJlYWRfY2hkaXIiLCBjb25zdCBjaGFyICosIHBhdGgpOwogICAgIFBSRV9NRU1fUkFTQ0lJWiggIl9fcHRocmVhZF9jaGRpcihwYXRoKSIsIEFSRzEgKTsKIH0KQEAgLTIyMDAsNyArMjMzNCw3IEBACiAKIFBSRShfX3B0aHJlYWRfZmNoZGlyKQogewotICAgIFBSSU5UKCJfX3B0aHJlYWRfZmNoZGlyICggJWxkICkiLCBBUkcxKTsKKyAgICBQUklOVCgiX19wdGhyZWFkX2ZjaGRpciAoICVsdSApIiwgQVJHMSk7CiAgICAgUFJFX1JFR19SRUFEMShsb25nLCAiX19wdGhyZWFkX2ZjaGRpciIsIHVuc2lnbmVkIGludCwgZmQpOwogfQogCkBAIC0yMjA4LDcgKzIzNDIsNyBAQAogUFJFKGtkZWJ1Z190cmFjZSkKIHsKICAgIFBSSU5UKCJrZGVidWdfdHJhY2UoJWxkLCAlbGQsICVsZCwgJWxkLCAlbGQsICVsZCkiLCAKLSAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIEFSRzYpOworICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgU0FSRzQsIFNBUkc1LCBTQVJHNik7CiAgICAvKgogICAgICBEb24ndCBjaGVjayBhbnl0aGluZyAtIHNvbWUgY2xpZW50cyBwYXNzIGZld2VyIGFyZ3VtZW50cy4KICAgIFBSRV9SRUdfUkVBRDYobG9uZywgImtkZWJ1Z190cmFjZSIsIApAQCAtMjIyMCwyMCArMjM1NCwyMCBAQAogCiBQUkUoc2V0ZXVpZCkKIHsKLSAgICBQUklOVCgic2V0ZXVpZCglbGQpIiwgQVJHMSk7CisgICAgUFJJTlQoInNldGV1aWQoJWx1KSIsIEFSRzEpOwogICAgIFBSRV9SRUdfUkVBRDEobG9uZywgInNldGV1aWQiLCB2a2lfdWlkX3QsICJ1aWQiKTsKIH0KIAogCiBQUkUoc2V0ZWdpZCkKIHsKLSAgICBQUklOVCgic2V0ZWdpZCglbGQpIiwgQVJHMSk7CisgICAgUFJJTlQoInNldGVnaWQoJWx1KSIsIEFSRzEpOwogICAgIFBSRV9SRUdfUkVBRDEobG9uZywgInNldGVnaWQiLCB2a2lfdWlkX3QsICJ1aWQiKTsKIH0KIAogUFJFKHNldHRpZCkKIHsKLSAgICBQUklOVCgic2V0dGlkKCVsZCwgJWxkKSIsIEFSRzEsIEFSRzIpOworICAgIFBSSU5UKCJzZXR0aWQoJWx1LCAlbHUpIiwgQVJHMSwgQVJHMik7CiAgICAgUFJFX1JFR19SRUFEMihsb25nLCAic2V0dGlkIiwgdmtpX3VpZF90LCAidWlkIiwgdmtpX2dpZF90LCAiZ2lkIik7CiB9CiAKQEAgLTIyOTEsNyArMjQyNSw3IEBACiBQUkUoZ2V0eGF0dHIpCiB7CiAgICBQUklOVCgiZ2V0eGF0dHIoJSNseCglcyksICUjbHgoJXMpLCAlI2x4LCAlbHUsICVsdSwgJWxkKSIsCi0gICAgICAgICBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIsIChjaGFyICopQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNik7CisgICAgICAgICBBUkcxLCAoSENoYXIgKilBUkcxLCBBUkcyLCAoSENoYXIgKilBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBTQVJHNik7CiAKICAgIFBSRV9SRUdfUkVBRDYodmtpX3NzaXplX3QsICJnZXR4YXR0ciIsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBwYXRoLCBjaGFyICosIG5hbWUsIHZvaWQgKiwgdmFsdWUsCkBAIC0yMzEyLDcgKzI0NDYsNyBAQAogUFJFKGZnZXR4YXR0cikKIHsKICAgIFBSSU5UKCJmZ2V0eGF0dHIoJWxkLCAlI2x4KCVzKSwgJSNseCwgJWx1LCAlbHUsICVsZCkiLAotICAgICAgQVJHMSwgQVJHMiwgKGNoYXIgKilBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKKyAgICAgICAgIFNBUkcxLCBBUkcyLCAoSENoYXIgKilBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBTQVJHNik7CiAKICAgIFBSRV9SRUdfUkVBRDYodmtpX3NzaXplX3QsICJmZ2V0eGF0dHIiLAogICAgICAgICAgICAgICAgICBpbnQsIGZkLCBjaGFyICosIG5hbWUsIHZvaWQgKiwgdmFsdWUsCkBAIC0yMzMwLDcgKzI0NjQsNyBAQAogUFJFKHNldHhhdHRyKQogewogICAgUFJJTlQoInNldHhhdHRyICggJSNseCglcyksICUjbHgoJXMpLCAlI2x4LCAlbHUsICVsdSwgJWxkICkiLCAKLSAgICAgICAgIEFSRzEsIChjaGFyICopQVJHMSwgQVJHMiwgKGNoYXIqKUFSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIEFSRzYgKTsKKyAgICAgICAgIEFSRzEsIChIQ2hhciAqKUFSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgU0FSRzYgKTsKICAgIFBSRV9SRUdfUkVBRDYoaW50LCAic2V0eGF0dHIiLCAKICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCJwYXRoIiwgY2hhciAqLCJuYW1lIiwgdm9pZCAqLCJ2YWx1ZSIsIAogICAgICAgICAgICAgICAgICB2a2lfc2l6ZV90LCJzaXplIiwgdWludDMyX3QsInBvc2l0aW9uIiwgaW50LCJvcHRpb25zIiApOwpAQCAtMjM0NCw3ICsyNDc4LDcgQEAKIFBSRShmc2V0eGF0dHIpCiB7CiAgICBQUklOVCggImZzZXR4YXR0ciAoICVsZCwgJSNseCglcyksICUjbHgsICVsdSwgJWx1LCAlbGQgKSIsIAotICAgICAgICAgIEFSRzEsIEFSRzIsIChjaGFyKilBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2ICk7CisgICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgU0FSRzYgKTsKICAgIFBSRV9SRUdfUkVBRDYoaW50LCAiZnNldHhhdHRyIiwgCiAgICAgICAgICAgICAgICAgIGludCwiZmQiLCBjaGFyICosIm5hbWUiLCB2b2lkICosInZhbHVlIiwgCiAgICAgICAgICAgICAgICAgIHZraV9zaXplX3QsInNpemUiLCB1aW50MzJfdCwicG9zaXRpb24iLCBpbnQsIm9wdGlvbnMiICk7CkBAIC0yMzU3LDcgKzI0OTEsNyBAQAogUFJFKHJlbW92ZXhhdHRyKQogewogICAgUFJJTlQoICJyZW1vdmV4YXR0ciAoICUjbHgoJXMpLCAlI2x4KCVzKSwgJWxkICkiLAotICAgICAgICAgIEFSRzEsIChIQ2hhciopQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBBUkczICk7CisgICAgICAgICAgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIFNBUkczICk7CiAgICBQUkVfUkVHX1JFQUQzKGludCwgInJlbW92ZXhhdHRyIiwKICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciosICJwYXRoIiwgY2hhciosICJhdHRybmFtZSIsIGludCwgIm9wdGlvbnMiKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggInJlbW92ZXhhdHRyKHBhdGgpIiwgQVJHMSApOwpAQCAtMjM2OCw3ICsyNTAyLDcgQEAKIFBSRShmcmVtb3ZleGF0dHIpCiB7CiAgICBQUklOVCggImZyZW1vdmV4YXR0ciAoICVsZCwgJSNseCglcyksICVsZCApIiwKLSAgICAgICAgICBBUkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIEFSRzMgKTsKKyAgICAgICAgICBTQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBTQVJHMyApOwogICAgUFJFX1JFR19SRUFEMyhpbnQsICJmcmVtb3ZleGF0dHIiLAogICAgICAgICAgICAgICAgICBpbnQsICJmZCIsIGNoYXIqLCAiYXR0cm5hbWUiLCBpbnQsICJvcHRpb25zIik7CiAgICBQUkVfTUVNX1JBU0NJSVooICJyZW1vdmV4YXR0cihhdHRybmFtZSkiLCBBUkcyICk7CkBAIC0yMzc4LDcgKzI1MTIsNyBAQAogUFJFKGxpc3R4YXR0cikKIHsKICAgIFBSSU5UKCAibGlzdHhhdHRyICggJSNseCglcyksICUjbHgsICVsdSwgJWxkICkiLCAKLSAgICAgICAgICBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIsIEFSRzMsIEFSRzQgKTsKKyAgICAgICAgICBBUkcxLCAoSENoYXIgKilBUkcxLCBBUkcyLCBBUkczLCBTQVJHNCApOwogICAgUFJFX1JFR19SRUFENCAobG9uZywgImxpc3R4YXR0ciIsIAogICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosInBhdGgiLCBjaGFyICosIm5hbWVidWYiLCAKICAgICAgICAgICAgICAgICAgdmtpX3NpemVfdCwic2l6ZSIsIGludCwib3B0aW9ucyIgKTsKQEAgLTIzOTgsNyArMjUzMiw3IEBACiBQUkUoZmxpc3R4YXR0cikKIHsKICAgIFBSSU5UKCAiZmxpc3R4YXR0ciAoICVsZCwgJSNseCwgJWx1LCAlbGQgKSIsIAotICAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQgKTsKKyAgICAgICAgICBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQgKTsKICAgIFBSRV9SRUdfUkVBRDQgKGxvbmcsICJmbGlzdHhhdHRyIiwgCiAgICAgICAgICAgICAgICAgICBpbnQsICJmZCIsIGNoYXIgKiwibmFtZWJ1ZiIsIAogICAgICAgICAgICAgICAgICB2a2lfc2l6ZV90LCJzaXplIiwgaW50LCJvcHRpb25zIiApOwpAQCAtMjQxNiw3ICsyNTUwLDcgQEAKIFBSRShzaG1hdCkKIHsKICAgIFVXb3JkIGFyZzJ0bXA7Ci0gICBQUklOVCgic2htYXQgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic2htYXQgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNobWF0IiwKICAgICAgICAgICAgICAgICAgaW50LCBzaG1pZCwgY29uc3Qgdm9pZCAqLCBzaG1hZGRyLCBpbnQsIHNobWZsZyk7CiAgICBhcmcydG1wID0gTUxfKGdlbmVyaWNfUFJFX3N5c19zaG1hdCkodGlkLCBBUkcxLEFSRzIsQVJHMyk7CkBAIC0yNDMyLDcgKzI1NjYsNyBAQAogCiBQUkUoc2htY3RsKQogewotICAgUFJJTlQoInNobWN0bCAoICVsZCwgJWxkLCAlI2x4ICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzaG1jdGwgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNobWN0bCIsCiAgICAgICAgICAgICAgICAgIGludCwgc2htaWQsIGludCwgY21kLCBzdHJ1Y3QgdmtpX3NobWlkX2RzICosIGJ1Zik7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3NobWN0bCkodGlkLCBBUkcxLEFSRzIsQVJHMyk7CkBAIC0yNDU2LDEzICsyNTkwLDEzIEBACiAKIFBSRShzaG1nZXQpCiB7Ci0gICBQUklOVCgic2htZ2V0ICggJWxkLCAlbGQsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic2htZ2V0ICggJWxkLCAlbHUsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNobWdldCIsIHZraV9rZXlfdCwga2V5LCB2a2lfc2l6ZV90LCBzaXplLCBpbnQsIHNobWZsZyk7CiB9CiAKIFBSRShzaG1fb3BlbikKIHsKLSAgIFBSSU5UKCJzaG1fb3BlbiglI2x4KCVzKSwgJWxkLCAlbGQpIiwgQVJHMSwgKGNoYXIgKilBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSSU5UKCJzaG1fb3BlbiglI2x4KCVzKSwgJWxkLCAlbHUpIiwgQVJHMSwgKEhDaGFyICopQVJHMSwgU0FSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAic2htX29wZW4iLAogICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIm5hbWUiLCBpbnQsImZsYWdzIiwgdmtpX21vZGVfdCwibW9kZSIpOwogCkBAIC0yNDc4LDE0ICsyNjEyLDE0IEBACiAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoIFZLSV9FTUZJTEUgKTsKICAgIH0gZWxzZSB7CiAgICAgICBpZiAoVkdfKGNsb190cmFja19mZHMpKQotICAgICAgICAgTUxfKHJlY29yZF9mZF9vcGVuX3dpdGhfZ2l2ZW5fbmFtZSkodGlkLCBSRVMsIChjaGFyKilBUkcxKTsKKyAgICAgICAgIE1MXyhyZWNvcmRfZmRfb3Blbl93aXRoX2dpdmVuX25hbWUpKHRpZCwgUkVTLCAoSENoYXIqKUFSRzEpOwogICAgfQogfQogCiBQUkUoc2htX3VubGluaykKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInNobV91bmxpbmsgKCAlI2x4KCVzKSApIiwgQVJHMSwoY2hhciopQVJHMSk7CisgICBQUklOVCgic2htX3VubGluayAoICUjbHgoJXMpICkiLCBBUkcxLCAoSENoYXIqKUFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2htX3VubGluayIsIGNvbnN0IGNoYXIgKiwgcGF0aG5hbWUpOwogICAgUFJFX01FTV9SQVNDSUlaKCAic2htX3VubGluayhwYXRobmFtZSkiLCBBUkcxICk7CiB9CkBAIC0yNTAxLDcgKzI2MzUsNyBAQAogUFJFKHN0YXRfZXh0ZW5kZWQpCiB7CiAgICBQUklOVCgic3RhdF9leHRlbmRlZCggJSNseCglcyksICUjbHgsICUjbHgsICUjbHggKSIsCi0gICAgICBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgICAgICAgQVJHMSwgKEhDaGFyICopQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgInN0YXRfZXh0ZW5kZWQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQgKiwgYnVmLCAKICAgICAgICAgICAgICAgICAgdm9pZCAqLCBmc2FjbCwgdmtpX3NpemVfdCAqLCBmc2FjbF9zaXplKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggInN0YXRfZXh0ZW5kZWQoZmlsZV9uYW1lKSIsICBBUkcxICk7CkBAIC0yNTIyLDcgKzI2NTYsNyBAQAogUFJFKGxzdGF0X2V4dGVuZGVkKQogewogICAgUFJJTlQoImxzdGF0X2V4dGVuZGVkKCAlI2x4KCVzKSwgJSNseCwgJSNseCwgJSNseCApIiwKLSAgICAgIEFSRzEsIChjaGFyICopQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICAgICAgICBBUkcxLCAoSENoYXIgKilBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQoaW50LCAibHN0YXRfZXh0ZW5kZWQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQgKiwgYnVmLCAKICAgICAgICAgICAgICAgICAgdm9pZCAqLCBmc2FjbCwgdmtpX3NpemVfdCAqLCBmc2FjbF9zaXplKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggImxzdGF0X2V4dGVuZGVkKGZpbGVfbmFtZSkiLCAgQVJHMSApOwpAQCAtMjU0Myw3ICsyNjc3LDcgQEAKIFBSRShmc3RhdF9leHRlbmRlZCkKIHsKICAgIFBSSU5UKCJmc3RhdF9leHRlbmRlZCggJWxkLCAlI2x4LCAlI2x4LCAlI2x4ICkiLAotICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICAgICAgICBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgImZzdGF0X2V4dGVuZGVkIiwgaW50LCBmZCwgc3RydWN0IHN0YXQgKiwgYnVmLCAKICAgICAgICAgICAgICAgICAgdm9pZCAqLCBmc2FjbCwgdmtpX3NpemVfdCAqLCBmc2FjbF9zaXplKTsKICAgIFBSRV9NRU1fV1JJVEUoICAgImZzdGF0X2V4dGVuZGVkKGJ1ZikiLCAgICAgICAgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdCkgKTsKQEAgLTI1NjMsNyArMjY5Nyw3IEBACiBQUkUoc3RhdDY0X2V4dGVuZGVkKQogewogICAgUFJJTlQoInN0YXQ2NF9leHRlbmRlZCggJSNseCglcyksICUjbHgsICUjbHgsICUjbHggKSIsCi0gICAgICBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgICAgICAgQVJHMSwgKEhDaGFyICopQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgInN0YXQ2NF9leHRlbmRlZCIsIGNoYXIgKiwgZmlsZV9uYW1lLCBzdHJ1Y3Qgc3RhdDY0ICosIGJ1ZiwgCiAgICAgICAgICAgICAgICAgIHZvaWQgKiwgZnNhY2wsIHZraV9zaXplX3QgKiwgZnNhY2xfc2l6ZSk7CiAgICBQUkVfTUVNX1JBU0NJSVooICJzdGF0NjRfZXh0ZW5kZWQoZmlsZV9uYW1lKSIsICBBUkcxICk7CkBAIC0yNTg0LDcgKzI3MTgsNyBAQAogUFJFKGxzdGF0NjRfZXh0ZW5kZWQpCiB7CiAgICBQUklOVCgibHN0YXQ2NF9leHRlbmRlZCggJSNseCglcyksICUjbHgsICUjbHgsICUjbHggKSIsCi0gICAgICBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgICAgICAgQVJHMSwgKEhDaGFyICopQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgImxzdGF0NjRfZXh0ZW5kZWQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQ2NCAqLCBidWYsIAogICAgICAgICAgICAgICAgICB2b2lkICosIGZzYWNsLCB2a2lfc2l6ZV90ICosIGZzYWNsX3NpemUpOwogICAgUFJFX01FTV9SQVNDSUlaKCAibHN0YXQ2NF9leHRlbmRlZChmaWxlX25hbWUpIiwgIEFSRzEgKTsKQEAgLTI2MDUsNyArMjczOSw3IEBACiBQUkUoZnN0YXQ2NF9leHRlbmRlZCkKIHsKICAgIFBSSU5UKCJmc3RhdDY0X2V4dGVuZGVkKCAlbGQsICUjbHgsICUjbHgsICUjbHggKSIsCi0gICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQoaW50LCAiZnN0YXQ2NF9leHRlbmRlZCIsIGludCwgZmQsIHN0cnVjdCBzdGF0NjQgKiwgYnVmLCAKICAgICAgICAgICAgICAgICAgdm9pZCAqLCBmc2FjbCwgdmtpX3NpemVfdCAqLCBmc2FjbF9zaXplKTsKICAgIFBSRV9NRU1fV1JJVEUoICAgImZzdGF0NjRfZXh0ZW5kZWQoYnVmKSIsICAgICAgICBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0NjQpICk7CkBAIC0yNjI2LDcgKzI3NjAsNyBAQAogewogICAgLyogREREOiBOb3RlOiB0aGlzIGlzIG5vdCByZWFsbHkgY29ycmVjdC4gIEhhbmRsaW5nIG9mCiAgICAgICBjaG1vZF9leHRlbmRlZCBpcyBicm9rZW4gaW4gdGhlIHNhbWUgd2F5LiAqLwotICAgUFJJTlQoImZjaG1vZF9leHRlbmRlZCAoICVsZCwgJWxkLCAlbGQsICVsZCwgJSNseCApIiwKKyAgIFBSSU5UKCJmY2htb2RfZXh0ZW5kZWQgKCAlbHUsICVsdSwgJWx1LCAlbHUsICUjbHggKSIsCiAgICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUobG9uZywgImZjaG1vZF9leHRlbmRlZCIsIAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZpbGRlcywgCkBAIC0yNjY5LDkgKzI4MDMsOSBAQAogewogICAgLyogREREOiBOb3RlOiB0aGlzIGlzIG5vdCByZWFsbHkgY29ycmVjdC4gIEhhbmRsaW5nIG9mCiAgICAgICB7LGZ9Y2htb2RfZXh0ZW5kZWQgaXMgYnJva2VuIGluIHRoZSBzYW1lIHdheS4gKi8KLSAgIFBSSU5UKCJvcGVuX2V4dGVuZGVkICggJSNseCglcyksIDB4JWx4LCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLAorICAgUFJJTlQoIm9wZW5fZXh0ZW5kZWQgKCAlI2x4KCVzKSwgJWxkLCAlbHUsICVsdSwgJWx1LCAlI2x4ICkiLAogICAgICAgICAgQVJHMSwgQVJHMSA/IChIQ2hhciopQVJHMSA6ICIobnVsbCkiLAotCSBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKKwkgU0FSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIEFSRzYpOwogICAgUFJFX1JFR19SRUFENihsb25nLCAib3Blbl9leHRlbmRlZCIsIAogICAgICAgICAgICAgICAgICBjaGFyKiwgcGF0aCwKICAgICAgICAgICAgICAgICAgaW50LCAgIGZsYWdzLApAQCAtMjcxNCw3ICsyODQ4LDcgQEAKIFBSRShhY2Nlc3NfZXh0ZW5kZWQpCiB7CiAgICBQUklOVCgiYWNjZXNzX2V4dGVuZGVkKCAlI2x4KCVzKSwgJWx1LCAlI2x4LCAlbHUgKSIsCi0gICAgICBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgICAgICAgQVJHMSwgKEhDaGFyICopQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICAvLyBYWFg6IHRoZSBhY2Nlc3N4X2Rlc2NyaXB0b3Igc3RydWN0IGNvbnRhaW5zIHBhZGRpbmcsIHNvIHRoaXMgY2FuIGNhdXNlCiAgICAvLyB1bm5lY2Vzc2FyeSB1bmRlZmluZWQgdmFsdWUgZXJyb3JzLiAgQnV0IHlvdSBhcmd1YWJseSBzaG91bGRuJ3QgYmUKICAgIC8vIHBhc3NpbmcgdW5kZWZpbmVkIHZhbHVlcyB0byB0aGUga2VybmVsIGFueXdheS4uLgpAQCAtMjc3NCw3ICsyOTA4LDcgQEAKIAogUFJFKGNoZmxhZ3MpCiB7Ci0gICBQUklOVCgiY2hmbGFncyAoICUjbHgoJXMpLCAlbHUgKSIsIEFSRzEsIChjaGFyICopQVJHMSwgQVJHMik7CisgICBQUklOVCgiY2hmbGFncyAoICUjbHgoJXMpLCAlbHUgKSIsIEFSRzEsIChIQ2hhciAqKUFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihpbnQsICJjaGZsYWdzIiwgY29uc3QgY2hhciAqLHBhdGgsIHVuc2lnbmVkIGludCxmbGFncyk7CiAgICBQUkVfTUVNX1JBU0NJSVooImNoZmxhZ3MocGF0aCkiLCBBUkcxKTsKIApAQCAtMjc4Myw3ICsyOTE3LDcgQEAKIAogUFJFKGZjaGZsYWdzKQogewotICAgUFJJTlQoImZjaGZsYWdzICggJWxkLCAlbHUgKSIsIEFSRzEsIEFSRzIpOworICAgUFJJTlQoImZjaGZsYWdzICggJWxkLCAlbHUgKSIsIFNBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIoaW50LCAiZmNoZmxhZ3MiLCBpbnQsZmQsIHVuc2lnbmVkIGludCxmbGFncyk7CiAKICAgIC8vIEdyUCBmaXhtZSBzYW5pdHktY2hlY2sgZmxhZ3MgdmFsdWU/CkBAIC0yNzkxLDcgKzI5MjUsNyBAQAogCiBQUkUoc3RhdDY0KQogewotICAgUFJJTlQoInN0YXQ2NCAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIpOworICAgUFJJTlQoInN0YXQ2NCAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoSENoYXIgKilBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgInN0YXQiLCBjb25zdCBjaGFyICoscGF0aCwgc3RydWN0IHN0YXQ2NCAqLGJ1Zik7CiAgICBQUkVfTUVNX1JBU0NJSVooInN0YXQ2NChwYXRoKSIsIEFSRzEpOwogICAgUFJFX01FTV9XUklURSggInN0YXQ2NChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSApOwpAQCAtMjgwMyw3ICsyOTM3LDcgQEAKIAogUFJFKGxzdGF0NjQpCiB7Ci0gICBQUklOVCgibHN0YXQ2NCAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIpOworICAgUFJJTlQoImxzdGF0NjQgKCAlI2x4KCVzKSwgJSNseCApIiwgQVJHMSwgKEhDaGFyICopQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzdGF0IiwgY29uc3QgY2hhciAqLHBhdGgsIHN0cnVjdCBzdGF0NjQgKixidWYpOwogICAgUFJFX01FTV9SQVNDSUlaKCJsc3RhdDY0KHBhdGgpIiwgQVJHMSk7CiAgICBQUkVfTUVNX1dSSVRFKCAibHN0YXQ2NChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSApOwpAQCAtMjgxNSw3ICsyOTQ5LDcgQEAKIAogUFJFKGZzdGF0NjQpCiB7Ci0gICBQUklOVCgiZnN0YXQ2NCAoICVsZCwgJSNseCApIiwgQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJmc3RhdDY0ICggJWx1LCAlI2x4ICkiLCBBUkcxLEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiZnN0YXQiLCB1bnNpZ25lZCBpbnQsIGZkLCBzdHJ1Y3Qgc3RhdDY0ICosIGJ1Zik7CiAgICBQUkVfTUVNX1dSSVRFKCAiZnN0YXQ2NChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSApOwogfQpAQCAtMjgyNiw3ICsyOTYwLDcgQEAKIAogUFJFKGdldGZzc3RhdCkKIHsKLSAgIFBSSU5UKCJnZXRmc3N0YXQoJSNseCwgJWxkLCAlbGQpIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgiZ2V0ZnNzdGF0KCUjbHgsICVsZCwgJWxkKSIsIEFSRzEsIFNBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGludCwgImdldGZzc3RhdCIsCiAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfc3RhdGZzICosIGJ1ZiwgaW50LCBidWZzaXplLCBpbnQsIGZsYWdzKTsKICAgIGlmIChBUkcxKSB7CkBAIC0yODQ0LDcgKzI5NzgsNyBAQAogCiBQUkUoZ2V0ZnNzdGF0NjQpCiB7Ci0gICBQUklOVCgiZ2V0ZnNzdGF0NjQoJSNseCwgJWxkLCAlbGQpIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgiZ2V0ZnNzdGF0NjQoJSNseCwgJWxkLCAlbGQpIiwgQVJHMSwgU0FSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMoaW50LCAiZ2V0ZnNzdGF0NjQiLAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3N0YXRmczY0ICosIGJ1ZiwgaW50LCBidWZzaXplLCBpbnQsIGZsYWdzKTsKICAgIGlmIChBUkcxKSB7CkBAIC0yODY3LDcgKzMwMDEsNyBAQAogICAgLy8gYnkgJ2RhdGEnLgogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CiAgICBQUklOVCgic3lzX21vdW50KCAlI2x4KCVzKSwgJSNseCglcyksICUjbHgsICUjbHggKSIsCi0gICAgICAgICBBUkcxLChjaGFyKilBUkcxLCBBUkcyLChjaGFyKilBUkcyLCBBUkczLCBBUkc0KTsKKyAgICAgICAgIEFSRzEsIChIQ2hhciopQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgIm1vdW50IiwKICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCB0eXBlLCBjb25zdCBjaGFyICosIGRpciwKICAgICAgICAgICAgICAgICAgaW50LCBmbGFncywgdm9pZCAqLCBkYXRhKTsKQEAgLTMwNTcsNyArMzE5MSw3IEBACiBQUkUoZ2V0YXR0cmxpc3QpCiB7CiAgICBQUklOVCgiZ2V0YXR0cmxpc3QoJSNseCglcyksICUjbHgsICUjbHgsICVsdSwgJWx1KSIsIAotICAgICAgICAgQVJHMSwgKGNoYXIgKilBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKKyAgICAgICAgIEFSRzEsIChIQ2hhciAqKUFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUpOwogICAgUFJFX1JFR19SRUFENShpbnQsICJnZXRhdHRybGlzdCIsIAogICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoscGF0aCwgc3RydWN0IHZraV9hdHRybGlzdCAqLGF0dHJMaXN0LCAKICAgICAgICAgICAgICAgICAgdm9pZCAqLGF0dHJCdWYsIHZraV9zaXplX3QsYXR0ckJ1ZlNpemUsIHVuc2lnbmVkIGludCxvcHRpb25zKTsKQEAgLTMwODUsNyArMzIxOSw3IEBACiBQUkUoc2V0YXR0cmxpc3QpCiB7CiAgICBQUklOVCgic2V0YXR0cmxpc3QoJSNseCglcyksICUjbHgsICUjbHgsICVsdSwgJWx1KSIsIAotICAgICAgICAgQVJHMSwgKGNoYXIgKilBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKKyAgICAgICAgIEFSRzEsIChIQ2hhciAqKUFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUpOwogICAgUFJFX1JFR19SRUFENShpbnQsICJzZXRhdHRybGlzdCIsIAogICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoscGF0aCwgc3RydWN0IHZraV9hdHRybGlzdCAqLGF0dHJMaXN0LCAKICAgICAgICAgICAgICAgICAgdm9pZCAqLGF0dHJCdWYsIHZraV9zaXplX3QsYXR0ckJ1ZlNpemUsIHVuc2lnbmVkIGludCxvcHRpb25zKTsKQEAgLTMwOTcsOCArMzIzMSw4IEBACiAKIFBSRShnZXRkaXJlbnRyaWVzYXR0cikKIHsKLSAgIFBSSU5UKCJnZXRkaXJlbnRyaWVzYXR0ciglbGQsICUjbHgsICUjbHgsICVsZCwgJSNseCwgJSNseCwgJSNseCwgJWxkKSIsIAotICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNiwgQVJHNywgQVJHOCk7CisgICBQUklOVCgiZ2V0ZGlyZW50cmllc2F0dHIoJWxkLCAlI2x4LCAlI2x4LCAlbHUsICUjbHgsICUjbHgsICUjbHgsICVsdSkiLCAKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2LCBBUkc3LCBBUkc4KTsKICAgIFBSRV9SRUdfUkVBRDgoaW50LCAiZ2V0ZGlyZW50cmllc2F0dHIiLCAKICAgICAgICAgICAgICAgICAgaW50LGZkLCBzdHJ1Y3QgdmtpX2F0dHJsaXN0ICosYXR0ckxpc3QsIAogICAgICAgICAgICAgICAgICB2b2lkICosYXR0ckJ1Ziwgc2l6ZV90LGF0dHJCdWZTaXplLCAKQEAgLTMxMzcsNTEgKzMyNzEsMTAgQEAKICAgICAgICAgIGNvdW50LCAoQWRkcilwLShBZGRyKUFSRzMsIEFSRzQpOwogfQogCi0KLVBSRShmc2dldHBhdGgpCi17Ci0jaWYgVkdfV09SRFNJWkUgPT0gNAotICAgUFJJTlQoImZzZ2V0cGF0aCglI2x4LCAlbGQsICUjbHggeyV1LCV1fSwgJWxsdSkiLCAKLSAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsCi0gICAgICAgICAoKHVuc2lnbmVkIGludCAqKUFSRzMpWzBdLCAoKHVuc2lnbmVkIGludCAqKUFSRzMpWzFdLAotICAgICAgICAgTE9ISTY0KEFSRzQsIEFSRzUpKTsKLSAgIFBSRV9SRUdfUkVBRDUoc3NpemVfdCwgImZzZ2V0cGF0aCIsIAotICAgICAgICAgICAgICAgICB2b2lkKiwiYnVmIiwgc2l6ZV90LCJidWZzaXplIiwgCi0gICAgICAgICAgICAgICAgIGZzaWRfdCAqLCJmc2lkIiwKLSAgICAgICAgICAgICAgICAgdmtpX3VpbnQzMl90LCAib2JqaWRfbG93MzIiLCB2a2lfdWludDMyX3QsICJvYmppZF9oaWdoMzIiKTsKLSNlbHNlCi0gICBQUklOVCgiZnNnZXRwYXRoKCUjbHgsICVsZCwgJSNseCB7JXUsJXV9LCAlbHUpIiwgCi0gICAgICAgICBBUkcxLCBBUkcyLCBBUkczLAotICAgICAgICAgKCh1bnNpZ25lZCBpbnQgKilBUkczKVswXSwKLSAgICAgICAgICgodW5zaWduZWQgaW50ICopQVJHMylbMV0sIEFSRzQpOwotICAgUFJFX1JFR19SRUFENChzc2l6ZV90LCAiZnNnZXRwYXRoIiwgCi0gICAgICAgICAgICAgICAgIHZvaWQqLCJidWYiLCBzaXplX3QsImJ1ZnNpemUiLCAKLSAgICAgICAgICAgICAgICAgZnNpZF90ICosImZzaWQiLCB1aW50NjRfdCwib2JqaWQiKTsKLSNlbmRpZgotICAgUFJFX01FTV9SRUFEKCJmc2dldHBhdGgoZnNpZCkiLCBBUkczLCBzaXplb2YoZnNpZF90KSk7Ci0gICBQUkVfTUVNX1dSSVRFKCJmc2dldHBhdGgoYnVmKSIsIEFSRzEsIEFSRzIpOwotfQotCi1QT1NUKGZzZ2V0cGF0aCkKLXsKLSAgIFBPU1RfTUVNX1dSSVRFKEFSRzEsIFJFUyk7Ci19Ci0KLVBSRShhdWRpdF9zZXNzaW9uX3NlbGYpCi17Ci0gIFBSSU5UKCJhdWRpdF9zZXNzaW9uX3NlbGYoKSIpOwotfQotCi1QT1NUKGF1ZGl0X3Nlc3Npb25fc2VsZikKLXsKLSAgcmVjb3JkX25hbWVkX3BvcnQodGlkLCBSRVMsIE1BQ0hfUE9SVF9SSUdIVF9TRU5ELCAiYXVkaXQtc2Vzc2lvbi0lcCIpOwotICBQUklOVCgiYXVkaXQtc2Vzc2lvbiAlI2x4IiwgUkVTKTsKLX0KLQogUFJFKGV4Y2hhbmdlZGF0YSkKIHsKICAgIFBSSU5UKCJleGNoYW5nZWRhdGEoJSNseCglcyksICUjbHgoJXMpLCAlbHUpIiwKLSAgICAgICAgIEFSRzEsIChjaGFyKilBUkcxLCBBUkcyLCAoY2hhciopQVJHMiwgQVJHMyk7CisgICAgICAgICBBUkcxLCAoSENoYXIqKUFSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGludCwgImV4Y2hhbmdlZGF0YSIsIAogICAgICAgICAgICAgICAgICBjaGFyICosIHBhdGgxLCBjaGFyICosIHBhdGgyLCB1bnNpZ25lZCBsb25nLCBvcHRpb25zKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggImV4Y2hhbmdlZGF0YShwYXRoMSkiLCBBUkcxICk7CkBAIC0zMTkwLDggKzMyODMsOCBAQAogCiBQUkUoZnNjdGwpCiB7Ci0gICBQUklOVCgiZnNjdGwgKCAlI2x4KCVzKSwgJWxkLCAlI2x4LCAlbGQgKSIsCi0gICAgICBBUkcxLCAoY2hhciAqKUFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgUFJJTlQoImZzY3RsICggJSNseCglcyksICVsdSwgJSNseCwgJWx1ICkiLAorICAgICAgICAgQVJHMSwgKEhDaGFyICopQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KCBsb25nLCAiZnNjdGwiLCAKICAgICAgICAgICAgICAgICAgIGNoYXIgKiwicGF0aCIsIHVuc2lnbmVkIGludCwicmVxdWVzdCIsIAogICAgICAgICAgICAgICAgICAgdm9pZCAqLCJkYXRhIiwgdW5zaWduZWQgaW50LCJvcHRpb25zIik7CkBAIC0zMjQ5LDcgKzMzNDIsNyBAQAogCiBQUkUoaW5pdGdyb3VwcykKIHsKLSAgICBQUklOVCgiaW5pdGdyb3VwcyglcywgJSNseCwgJWx1KSIsIChjaGFyICopQVJHMSwgQVJHMiwgQVJHMyk7CisgICAgUFJJTlQoImluaXRncm91cHMoJXMsICUjbHgsICVsdSkiLCAoSENoYXIgKilBUkcxLCBBUkcyLCBBUkczKTsKICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJpbml0Z3JvdXBzIiwKICAgICAgICAgaW50LCBzZXRsZW4sIHZraV9naWRfdCAqLCBnaWRzZXQsIHZraV91aWRfdCwgZ211aWQpOwogICAgIFBSRV9NRU1fUkVBRCgiZ2lkc2V0IiwgQVJHMiwgQVJHMSAqIHNpemVvZih2a2lfZ2lkX3QpKTsKQEAgLTM0MTcsNyArMzUxMCw3IEBACiAgICB9IGVsc2UgewogICAgICAgZW52cCA9IFZHXyhlbnZfY2xvbmUpKCAoSENoYXIqKilBUkc1ICk7CiAgICAgICB2Z19hc3NlcnQoZW52cCk7Ci0gICAgICBWR18oZW52X3JlbW92ZV92YWxncmluZF9lbnZfc3R1ZmYpKCBlbnZwICk7CisgICAgICBWR18oZW52X3JlbW92ZV92YWxncmluZF9lbnZfc3R1ZmYpKCBlbnZwLCAvKiByb19zdHJpbmdzICovIEZhbHNlLCBOVUxMKTsKICAgIH0KIAogICAgaWYgKHRyYWNlX3RoaXNfY2hpbGQpIHsKQEAgLTM1MDcsNyArMzYwMCw3IEBACiAKIFBSRShzb2NrZXQpCiB7Ci0gICBQUklOVCgic29ja2V0ICggJWxkLCAlbGQsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic29ja2V0ICggJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzb2NrZXQiLCBpbnQsIGRvbWFpbiwgaW50LCB0eXBlLCBpbnQsIHByb3RvY29sKTsKIH0KIApAQCAtMzUyMyw3ICszNjE2LDcgQEAKIFBSRShzZXRzb2Nrb3B0KQogewogICAgUFJJTlQoInNldHNvY2tvcHQgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbGQgKSIsCi0gICAgICBBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUpOworICAgICAgICAgIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQsIFNBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUobG9uZywgInNldHNvY2tvcHQiLAogICAgICAgICAgICAgICAgICBpbnQsIHMsIGludCwgbGV2ZWwsIGludCwgb3B0bmFtZSwKICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqLCBvcHR2YWwsIHZraV9zb2NrbGVuX3QsIG9wdGxlbik7CkBAIC0zNTM2LDcgKzM2MjksNyBAQAogICAgQWRkciBvcHR2YWxfcCA9IEFSRzQ7CiAgICBBZGRyIG9wdGxlbl9wID0gQVJHNTsKICAgIFBSSU5UKCJnZXRzb2Nrb3B0ICggJWxkLCAlbGQsICVsZCwgJSNseCwgJSNseCApIiwKLSAgICAgIEFSRzEsQVJHMixBUkczLEFSRzQsQVJHNSk7CisgICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgQVJHNCwgQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJnZXRzb2Nrb3B0IiwKICAgICAgICAgICAgICAgICAgaW50LCBzLCBpbnQsIGxldmVsLCBpbnQsIG9wdG5hbWUsCiAgICAgICAgICAgICAgICAgIHZvaWQgKiwgb3B0dmFsLCB2a2lfc29ja2xlbl90ICosIG9wdGxlbik7CkBAIC0zNTY5LDcgKzM2NjIsNyBAQAogUFJFKGNvbm5lY3QpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJjb25uZWN0ICggJWxkLCAlI2x4LCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoImNvbm5lY3QgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImNvbm5lY3QiLAogICAgICAgICAgICAgICAgICBpbnQsIHNvY2tmZCwgc3RydWN0IHNvY2thZGRyICosIHNlcnZfYWRkciwgaW50LCBhZGRybGVuKTsKICAgIE1MXyhnZW5lcmljX1BSRV9zeXNfY29ubmVjdCkodGlkLCBBUkcxLEFSRzIsQVJHMyk7CkBAIC0zNTc5LDkgKzM2NzIsOSBAQAogUFJFKGFjY2VwdCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoImFjY2VwdCAoICVsZCwgJSNseCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJhY2NlcHQgKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJhY2NlcHQiLAotICAgICAgICAgICAgICAgICBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBhZGRyLCBpbnQsICphZGRybGVuKTsKKyAgICAgICAgICAgICAgICAgaW50LCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgYWRkciwgaW50ICosIGFkZHJsZW4pOwogICAgTUxfKGdlbmVyaWNfUFJFX3N5c19hY2NlcHQpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwogfQogCkBAIC0zNTk3LDcgKzM2OTAsNyBAQAogUFJFKG1rZmlmbykKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoIm1rZmlmbyAoICUjbHgoJXMpLCAlbGxkICkiLEFSRzEsKGNoYXIgKilBUkcxLChVTG9uZylBUkcyKTsKKyAgIFBSSU5UKCJta2ZpZm8gKCAlI2x4KCVzKSwgJWx4ICkiLCBBUkcxLCAoSENoYXIgKilBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgIm1rZmlmbyIsIGNvbnN0IGNoYXIgKiwgcGF0aCwgdmtpX21vZGVfdCwgbW9kZSk7CiAgICBQUkVfTUVNX1JBU0NJSVooICJta2ZpZm8ocGF0aCkiLCBBUkcxICk7CiB9CkBAIC0zNjE4LDcgKzM3MTEsNyBAQAogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CiAgICBQUklOVCgic2VuZHRvICggJWxkLCAlcywgJWxkLCAlbHUsICUjbHgsICVsZCApIiwKLSAgICAgIEFSRzEsKGNoYXIgKilBUkcyLEFSRzMsQVJHNCxBUkc1LEFSRzYpOworICAgICAgICAgU0FSRzEsIChIQ2hhciAqKUFSRzIsIFNBUkczLCBBUkc0LCBBUkc1LCBTQVJHNik7CiAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJzZW5kdG8iLAogICAgICAgICAgICAgICAgICBpbnQsIHMsIGNvbnN0IHZvaWQgKiwgbXNnLCBpbnQsIGxlbiwgCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmxhZ3MsIApAQCAtMzYzMCw3ICszNzIzLDcgQEAKIHsKICNpZiBWR19XT1JEU0laRSA9PSA0CiAgICBQUklOVCgic2VuZGZpbGUoJWxkLCAlbGQsICVsbHUsICUjbHgsICUjbHgsICVsZCkiLAotICAgICAgICAgQVJHMSwgQVJHMiwgTE9ISTY0KEFSRzMsIEFSRzQpLCBBUkc1LCBBUkc2LCBBUkc3KTsKKyAgICAgICAgIFNBUkcxLCBTQVJHMiwgTE9ISTY0KEFSRzMsIEFSRzQpLCBBUkc1LCBBUkc2LCBTQVJHNyk7CiAKICAgIFBSRV9SRUdfUkVBRDcobG9uZywgInNlbmRmaWxlIiwKICAgICAgIGludCwgZnJvbWZkLCBpbnQsIHRvZmQsCkBAIC0zNjM5LDggKzM3MzIsOCBAQAogICAgUFJFX01FTV9XUklURSgic2VuZGZpbGUobndyaXR0ZW4pIiwgQVJHNSwgc2l6ZW9mKHZraV91aW50NjRfdCkpOwogICAgaWYgKEFSRzYpIFBSRV9NRU1fV1JJVEUoInNlbmRmaWxlKHNmX2hlYWRlcikiLCBBUkc2LCBzaXplb2Yoc3RydWN0IHNmX2hkdHIpKTsKICNlbHNlCi0gICBQUklOVCgic2VuZGZpbGUoJWxkLCAlbGQsICVsZCwgJSNseCwgJSNseCwgJWxkKSIsCi0gICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKKyAgIFBSSU5UKCJzZW5kZmlsZSglbGQsICVsZCwgJWx1LCAlI2x4LCAlI2x4LCAlbGQpIiwKKyAgICAgICAgIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgU0FSRzYpOwogCiAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJzZW5kZmlsZSIsCiAgICAgICBpbnQsIGZyb21mZCwgaW50LCB0b2ZkLApAQCAtMzY2Nyw3ICszNzYwLDcgQEAKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwogICAgUFJJTlQoInJlY3Zmcm9tICggJWxkLCAlI2x4LCAlbGQsICVsdSwgJSNseCwgJSNseCApIiwKLSAgICAgIEFSRzEsQVJHMixBUkczLEFSRzQsQVJHNSxBUkc2KTsKKyAgICAgICAgICBTQVJHMSwgQVJHMiwgU0FSRzMsIEFSRzQsIEFSRzUsIEFSRzYpOwogICAgUFJFX1JFR19SRUFENihsb25nLCAicmVjdmZyb20iLAogICAgICAgICAgICAgICAgICBpbnQsIHMsIHZvaWQgKiwgYnVmLCBpbnQsIGxlbiwgdW5zaWduZWQgaW50LCBmbGFncywKICAgICAgICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyICosIGZyb20sIGludCAqLCBmcm9tbGVuKTsKQEAgLTM2ODUsNyArMzc3OCw3IEBACiBQUkUoc2VuZG1zZykKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInNlbmRtc2cgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic2VuZG1zZyAoICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAic2VuZG1zZyIsCiAgICAgICAgICAgICAgICAgIGludCwgcywgY29uc3Qgc3RydWN0IG1zZ2hkciAqLCBtc2csIGludCwgZmxhZ3MpOwogICAgTUxfKGdlbmVyaWNfUFJFX3N5c19zZW5kbXNnKSh0aWQsICJtc2ciLCAoc3RydWN0IHZraV9tc2doZHIgKilBUkcyKTsKQEAgLTM2OTUsNyArMzc4OCw3IEBACiBQUkUocmVjdm1zZykKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInJlY3Ztc2cgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgicmVjdm1zZyAoICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAicmVjdm1zZyIsIGludCwgcywgc3RydWN0IG1zZ2hkciAqLCBtc2csIGludCwgZmxhZ3MpOwogICAgTUxfKGdlbmVyaWNfUFJFX3N5c19yZWN2bXNnKSh0aWQsICJtc2ciLCAoc3RydWN0IHZraV9tc2doZHIgKilBUkcyKTsKIH0KQEAgLTM3MDksMTQgKzM4MDIsMTQgQEAKIFBSRShzaHV0ZG93bikKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInNodXRkb3duICggJWxkLCAlbGQgKSIsQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzaHV0ZG93biAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOwogICAgUFJFX1JFR19SRUFEMihpbnQsICJzaHV0ZG93biIsIGludCwgcywgaW50LCBob3cpOwogfQogCiAKIFBSRShiaW5kKQogewotICAgUFJJTlQoImJpbmQgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgiYmluZCAoICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiYmluZCIsCiAgICAgICAgICAgICAgICAgIGludCwgc29ja2ZkLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgbXlfYWRkciwgaW50LCBhZGRybGVuKTsKICAgIE1MXyhnZW5lcmljX1BSRV9zeXNfYmluZCkodGlkLCBBUkcxLEFSRzIsQVJHMyk7CkBAIC0zNzI1LDE0ICszODE4LDE0IEBACiAKIFBSRShsaXN0ZW4pCiB7Ci0gICBQUklOVCgibGlzdGVuICggJWxkLCAlbGQgKSIsQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJsaXN0ZW4gKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImxpc3RlbiIsIGludCwgcywgaW50LCBiYWNrbG9nKTsKIH0KIAogCiBQUkUoZ2V0c29ja25hbWUpCiB7Ci0gICBQUklOVCgiZ2V0c29ja25hbWUgKCAlbGQsICUjbHgsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoImdldHNvY2tuYW1lICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJnZXRzb2NrbmFtZSIsCiAgICAgICAgICAgICAgICAgIGludCwgcywgc3RydWN0IHNvY2thZGRyICosIG5hbWUsIGludCAqLCBuYW1lbGVuKTsKICAgIE1MXyhnZW5lcmljX1BSRV9zeXNfZ2V0c29ja25hbWUpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtMzc0OCw3ICszODQxLDcgQEAKIAogUFJFKGdldHBlZXJuYW1lKQogewotICAgUFJJTlQoImdldHBlZXJuYW1lICggJWxkLCAlI2x4LCAlI2x4ICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJnZXRwZWVybmFtZSAoICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZ2V0cGVlcm5hbWUiLAogICAgICAgICAgICAgICAgICBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBuYW1lLCBpbnQgKiwgbmFtZWxlbik7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX2dldHBlZXJuYW1lKSh0aWQsIEFSRzEsQVJHMixBUkczKTsKQEAgLTM3NjQsNyArMzg1Nyw3IEBACiAKIFBSRShzb2NrZXRwYWlyKQogewotICAgUFJJTlQoInNvY2tldHBhaXIgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgUFJJTlQoInNvY2tldHBhaXIgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNvY2tldHBhaXIiLAogICAgICAgICAgICAgICAgICBpbnQsIGQsIGludCwgdHlwZSwgaW50LCBwcm90b2NvbCwgaW50ICosIHN2KTsKICAgIE1MXyhnZW5lcmljX1BSRV9zeXNfc29ja2V0cGFpcikodGlkLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKQEAgLTM4MjcsNyArMzkyMCw3IEBACiAKIFBSRShnZXRsb2dpbikKIHsKLSAgIFBSSU5UKCJnZXRsb2dpbiAoICUjbHgsICVsZCApIiwgQVJHMSwgQVJHMik7CisgICBQUklOVCgiZ2V0bG9naW4gKCAlI2x4LCAlbHUgKSIsIEFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiZ2V0bG9naW4iLCAKICAgICAgICAgICAgICAgICAgY2hhciAqLCJuYW1lYnVmIiwgdW5zaWduZWQgaW50LCJuYW1lbGVuIik7CiAKQEAgLTM4NDIsNyArMzkzNSw3IEBACiAKIFBSRShwdHJhY2UpCiB7Ci0gICBQUklOVCgicHRyYWNlICggJWxkLCAlbGQsICUjbHgsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICBQUklOVCgicHRyYWNlICggJWxkLCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBBUkczLCBTQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJwdHJhY2UiLCAKICAgICAgICAgICAgICAgICAgaW50LCJyZXF1ZXN0IiwgdmtpX3BpZF90LCJwaWQiLCAKICAgICAgICAgICAgICAgICAgdmtpX2NhZGRyX3QsImFkZHIiLCBpbnQsImRhdGEiKTsKQEAgLTM4NzQsNyArMzk2Nyw3IEBACiAKIFBSRShsc2VlaykKIHsKLSAgIFBSSU5UKCJsc2VlayAoICVsZCwgJWxkLCAlbGQgKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJsc2VlayAoICVsdSwgJWxkLCAlbGQgKSIsIEFSRzEsIFNBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQ0KHZraV9vZmZfdCwgImxzZWVrIiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LGZkLCBpbnQsb2Zmc2V0X2hpLCBpbnQsb2Zmc2V0X2xvLCAKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LHdoZW5jZSk7CkBAIC0zODgzLDcgKzM5NzYsNyBAQAogCiBQUkUocGF0aGNvbmYpCiB7Ci0gICBQUklOVCgicGF0aGNvbmYoJSNseCglcyksICVsZCkiLCBBUkcxLChjaGFyICopQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJwYXRoY29uZiglI2x4KCVzKSwgJWxkKSIsIEFSRzEsIChIQ2hhciAqKUFSRzEsIFNBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywicGF0aGNvbmYiLCBjb25zdCBjaGFyICosInBhdGgiLCBpbnQsIm5hbWUiKTsKICAgIFBSRV9NRU1fUkFTQ0lJWigicGF0aGNvbmYocGF0aCkiLCBBUkcxKTsKIH0KQEAgLTM4OTEsNyArMzk4NCw3IEBACiAKIFBSRShmcGF0aGNvbmYpCiB7Ci0gICBQUklOVCgiZnBhdGhjb25mKCVsZCwgJWxkKSIsIEFSRzEsQVJHMik7CisgICBQUklOVCgiZnBhdGhjb25mKCVsZCwgJWxkKSIsICBTQVJHMSwgU0FSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCJmcGF0aGNvbmYiLCBpbnQsImZkIiwgaW50LCJuYW1lIik7CiAKICAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJmcGF0aGNvbmYiLCB0aWQsIEZhbHNlKSkKQEAgLTM5MDEsNyArMzk5NCw3IEBACiAKIFBSRShnZXRkaXJlbnRyaWVzKQogewotICAgUFJJTlQoImdldGRpcmVudHJpZXMoJWxkLCAlI2x4LCAlbGQsICUjbHgpIiwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICBQUklOVCgiZ2V0ZGlyZW50cmllcyglbGQsICUjbHgsICVsZCwgJSNseCkiLCBTQVJHMSwgQVJHMiwgU0FSRzMsIEFSRzQpOwogICAgUFJFX1JFR19SRUFENChpbnQsICJnZXRkaXJlbnRyaWVzIiwgCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIGNoYXIgKiwgYnVmLCBpbnQsIG5ieXRlcywgbG9uZyAqLCBiYXNlcCk7CiAgICBQUkVfTUVNX1dSSVRFKCJnZXRkaXJlbnRyaWVzKGJhc2VwKSIsIEFSRzQsIHNpemVvZihsb25nKSk7CkBAIC0zOTE4LDcgKzQwMTEsNyBAQAogCiBQUkUoZ2V0ZGlyZW50cmllczY0KQogewotICAgUFJJTlQoImdldGRpcmVudHJpZXM2NCglbGQsICUjbHgsICVsdSwgJSNseCkiLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKKyAgIFBSSU5UKCJnZXRkaXJlbnRyaWVzNjQoJWxkLCAlI2x4LCAlbHUsICUjbHgpIiwgU0FSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOwogICAgUFJFX1JFR19SRUFENCh2a2lfc3NpemVfdCwgImdldGRpcmVudHJpZXMiLCAKICAgICAgICAgICAgICAgICAgaW50LGZkLCBjaGFyICosYnVmLCB2a2lfc2l6ZV90LG5ieXRlcywgdmtpX29mZl90ICosYmFzZXApOwogICAgLyogSlJTIDE4LU5vdi0yMDE0OiBpdCBhcHBlYXJzIHRoYXQgc29tZXRpbWVzIHxiYXNlcHwgZG9lc24ndCBwb2ludApAQCAtMzk0Myw3ICs0MDM2LDcgQEAKIAogUFJFKHN0YXRmczY0KQogewotICAgUFJJTlQoInN0YXRmczY0ICggJSNseCglcyksICUjbHggKSIsQVJHMSwoY2hhciAqKUFSRzEsQVJHMik7CisgICBQUklOVCgic3RhdGZzNjQgKCAlI2x4KCVzKSwgJSNseCApIiwgQVJHMSwgKEhDaGFyICopQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzdGF0ZnM2NCIsIGNvbnN0IGNoYXIgKiwgcGF0aCwgc3RydWN0IHN0YXRmczY0ICosIGJ1Zik7CiAgICBQUkVfTUVNX1JBU0NJSVooICJzdGF0ZnM2NChwYXRoKSIsIEFSRzEgKTsKICAgIFBSRV9NRU1fV1JJVEUoICJzdGF0ZnM2NChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdGZzNjQpICk7CkBAIC0zOTU2LDcgKzQwNDksNyBAQAogCiBQUkUoZnN0YXRmczY0KQogewotICAgUFJJTlQoImZzdGF0ZnM2NCAoICVsZCwgJSNseCApIixBUkcxLEFSRzIpOworICAgUFJJTlQoImZzdGF0ZnM2NCAoICVsdSwgJSNseCApIiwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJmc3RhdGZzNjQiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCBzdHJ1Y3Qgc3RhdGZzICosIGJ1Zik7CiAgICBQUkVfTUVNX1dSSVRFKCAiZnN0YXRmczY0KGJ1ZikiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0ZnM2NCkgKTsKQEAgLTM5NjgsNyArNDA2MSw3IEBACiAKIFBSRShjc29wcykKIHsKLSAgIFBSSU5UKCJjc29wcyAoICVsZCwgJSNseCwgJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKKyAgIFBSSU5UKCJjc29wcyAoICVsZCwgJSNseCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgImNzb3BzIiwKICAgICAgICAgICAgICAgICAgdmtpX3BpZF90LCBwaWQsIHVpbnQzMl90LCBvcHMsCiAgICAgICAgICAgICAgICAgIHZvaWQgKiwgdXNlcmFkZHIsIHZraV9zaXplX3QsIHVzZXJzaXplKTsKQEAgLTM5OTMsNyArNDA4Niw3IEBACiAKIFBSRShhdWRpdG9uKQogewotICAgUFJJTlQoImF1ZGl0b24gKCAlbGQsICUjbHgsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgiYXVkaXRvbiAoICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGludCwiYXVkaXRvbiIsIAogICAgICAgICAgICAgICAgICBpbnQsImNtZCIsIHZvaWQqLCJkYXRhIiwgdW5zaWduZWQgaW50LCJsZW5ndGgiKTsKIApAQCAtNDEwNyw2ICs0MjAwLDE3IEBACiAgICB9ICAgIAogfQogCitQUkUoZ2V0YXVkaXRfYWRkcikKK3sKKyAgIFBSSU5UKCJnZXRhdWRpdF9hZGRyKCUjbHgsICVsZCkiLCBBUkcxLCBTQVJHMik7CisgICBQUkVfUkVHX1JFQUQxKHZvaWQqLCAiYXVkaXRpbmZvX2FkZHIiLCBpbnQsICJsZW5ndGgiKTsKKyAgIFBSRV9NRU1fV1JJVEUoImdldGF1ZGl0X2FkZHIoYXVkaXRpbmZvX2FkZHIpIiwgQVJHMSwgQVJHMik7Cit9CitQT1NUKGdldGF1ZGl0X2FkZHIpCit7CisgICBQT1NUX01FTV9XUklURShBUkcxLCBBUkcyKTsKK30KKwogCiBQUkUobW1hcCkKIHsKQEAgLTQxMTQsOCArNDIxOCw4IEBACiAgICBpZiAoMCkgVkdfKGFtX2RvX3N5bmNfY2hlY2spKCIoUFJFX01NQVApIixfX0ZJTEVfXyxfX0xJTkVfXyk7CiAKICNpZiBWR19XT1JEU0laRSA9PSA0Ci0gICBQUklOVCgibW1hcCAoICUjbHgsICVsdSwgJWxkLCAlbGQsICVsZCwgJWxsZCApIiwKLSAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIExPSEk2NChBUkc2LCBBUkc3KSApOworICAgUFJJTlQoIm1tYXAgKCAlI2x4LCAlbHUsICVsZCwgJWxkLCAlbGQsICVsbHUgKSIsCisgICAgICAgICBBUkcxLCBBUkcyLCBTQVJHMywgU0FSRzQsIFNBUkc1LCBMT0hJNjQoQVJHNiwgQVJHNykgKTsKICAgIFBSRV9SRUdfUkVBRDcoQWRkciwgIm1tYXAiLAogICAgICAgICAgICAgICAgICBBZGRyLHN0YXJ0LCB2a2lfc2l6ZV90LGxlbmd0aCwgaW50LHByb3QsIGludCxmbGFncywgaW50LGZkLCAKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyxvZmZzZXRfaGksIHVuc2lnbmVkIGxvbmcsb2Zmc2V0X2xvKTsKQEAgLTQxMjUsNyArNDIyOSw3IEBACiAgICAvLyAoT2ZmNjRUKUxPSEk2NChBUkc2LCBBUkc3KSApOwogI2Vsc2UKICAgIFBSSU5UKCJtbWFwICggJSNseCwgJWx1LCAlbGQsICVsZCwgJWxkLCAlbGQgKSIsCi0gICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2ICk7CisgICAgICAgICBBUkcxLCBBUkcyLCBTQVJHMywgU0FSRzQsIFNBUkc1LCBTQVJHNiApOwogICAgUFJFX1JFR19SRUFENihsb25nLCAibW1hcCIsCiAgICAgICAgICAgICAgICAgIEFkZHIsc3RhcnQsIHZraV9zaXplX3QsbGVuZ3RoLCBpbnQscHJvdCwgaW50LGZsYWdzLCBpbnQsZmQsIAogICAgICAgICAgICAgICAgICBPZmY2NFQsb2Zmc2V0KTsKQEAgLTQyMjIsNyArNDMyNiw3IEBACiAgICBVV29yZCBuZXdwICAgID0gQVJHNTsKICAgIFVXb3JkIG5ld2xlbiAgPSBBUkc2OwogCi0gICBQUklOVCggIl9fc3lzY3RsICggJSNseCwgJWxkLCAlI2x4LCAlI2x4LCAlI2x4LCAlbGQgKSIsIAorICAgUFJJTlQoICJfX3N5c2N0bCAoICUjbHgsICVsdSwgJSNseCwgJSNseCwgJSNseCwgJSNseCApIiwgCiAgICAgICAgICAgbmFtZSwgbmFtZWxlbiwgb2xkcCwgb2xkbGVucCwgbmV3cCwgbmV3bGVuICk7CiAKICAgIFBSRV9SRUdfUkVBRDYoaW50LCAiX19zeXNjdGwiLCBpbnQqLCBuYW1lLCB1bnNpZ25lZCBpbnQsIG5hbWVsZW4sIApAQCAtNDI4NCw3ICs0Mzg4LDcgQEAKIFBSRShzaWdwcm9jbWFzaykKIHsKICAgIFVXb3JkIGFyZzE7Ci0gICBQUklOVCgic2lncHJvY21hc2sgKCAlbGQsICUjbHgsICUjbHggKSIsIEFSRzEsIEFSRzIsIEFSRzMpOworICAgUFJJTlQoInNpZ3Byb2NtYXNrICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzaWdwcm9jbWFzayIsCiAgICAgICAgICAgICAgICAgIGludCwgaG93LCB2a2lfc2lnc2V0X3QgKiwgc2V0LCB2a2lfc2lnc2V0X3QgKiwgb2xkc2V0KTsKICAgIGlmIChBUkcyICE9IDApCkBAIC00MzUyLDcgKzQ0NTYsNiBAQAogICAgICAgICAgICAgICAgICB1aW50MzJfdCBmbGF2b3IsIHVpbnQ2NF90IGFyZywKICAgICAgICAgICAgICAgICAgdXNlcl9hZGRyX3QgYnVmZmVyLCBpbnQzMl90IGJ1ZmZlcnNpemUpCiAqLwotI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF82CiBQUkUocHJvY19pbmZvKQogewogI2lmIFZHX1dPUkRTSVpFID09IDQKQEAgLTQ0MTgsNyArNDUyMSw2IEBACiAjZW5kaWYKIH0KIAotI2VuZGlmIC8qIERBUldJTl9WRVJTID49IERBUldJTl8xMF82ICovCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgYWlvXyoKQEAgLTQ4NDEsNyArNDk0Myw3IEBACiAgICBSZXBseSAqcmVwbHkgPSAoUmVwbHkgKilBUkcxOwogCiAgICBpZiAoIXJlcGx5LT5SZXRDb2RlKSB7Ci0gICAgIFBSSU5UKCJwYWdlIHNpemUgJWxsdSIsIChVTG9uZylyZXBseS0+b3V0X3BhZ2Vfc2l6ZSk7CisgICAgICBQUklOVCgicGFnZSBzaXplICVsbHUiLCAoVUxvbmcpcmVwbHktPm91dF9wYWdlX3NpemUpOwogICAgfSBlbHNlIHsKICAgICAgIFBSSU5UKCJtaWcgcmV0dXJuICVkIiwgcmVwbHktPlJldENvZGUpOwogICAgfQpAQCAtNDk2Myw2ICs1MDY1LDE1NCBAQAogfQogCiAKK1BSRShob3N0X2NyZWF0ZV9tYWNoX3ZvdWNoZXIpCit7CisjcHJhZ21hIHBhY2soNCkKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIG1hY2hfbXNnX2hlYWRlcl90IEhlYWQ7CisgICAgICAgIE5EUl9yZWNvcmRfdCBORFI7CisgICAgICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgcmVjaXBlc0NudDsKKyAgICAgICAgdWludDhfdCByZWNpcGVzWzUxMjBdOworICAgIH0gUmVxdWVzdDsKKyNwcmFnbWEgcGFjaygpCisgICAgCisgICAgUmVxdWVzdCAqcmVxID0gKFJlcXVlc3QgKilBUkcxOworCisgICAgUFJJTlQoImhvc3RfY3JlYXRlX21hY2hfdm91Y2hlcihjb3VudCAldSkiLAorICAgICAgICAgIHJlcS0+cmVjaXBlc0NudCk7CisgICAgCisgICAgQUZURVIgPSBQT1NUX0ZOKGhvc3RfY3JlYXRlX21hY2hfdm91Y2hlcik7Cit9CisKKworUE9TVChob3N0X2NyZWF0ZV9tYWNoX3ZvdWNoZXIpCit7CisjcHJhZ21hIHBhY2soNCkKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIG1hY2hfbXNnX2hlYWRlcl90IEhlYWQ7CisgICAgICAgIC8qIHN0YXJ0IG9mIHRoZSBrZXJuZWwgcHJvY2Vzc2VkIGRhdGEgKi8KKyAgICAgICAgbWFjaF9tc2dfYm9keV90IG1zZ2hfYm9keTsKKyAgICAgICAgbWFjaF9tc2dfcG9ydF9kZXNjcmlwdG9yX3Qgdm91Y2hlcjsKKyAgICAgICAgLyogZW5kIG9mIHRoZSBrZXJuZWwgcHJvY2Vzc2VkIGRhdGEgKi8KKyAgICB9IFJlcGx5OworI3ByYWdtYSBwYWNrKCkKKyAgICAKKyAgICBSZXBseSAqcmVwbHkgPSAoUmVwbHkgKilBUkcxOworCisgICAgLy8gUksgZml4bWUgcHJvcGVybHkgcGFyc2UgdGhpcyByZXR1cm4gdHlwZQorICAgIFBSSU5UKCJnb3Qgdm91Y2hlciAlI3ggIiwgcmVwbHktPnZvdWNoZXIubmFtZSk7Cit9CisKKworUFJFKGhvc3RfZ2V0X3NwZWNpYWxfcG9ydCkKK3sKKyNwcmFnbWEgcGFjayg0KQorICAgIHR5cGVkZWYgc3RydWN0IHsKKyAgICAgICAgbWFjaF9tc2dfaGVhZGVyX3QgSGVhZDsKKyAgICAgICAgTkRSX3JlY29yZF90IE5EUjsKKyAgICAgICAgaW50IG5vZGU7CisgICAgICAgIGludCB3aGljaDsKKyAgICB9IFJlcXVlc3Q7CisjcHJhZ21hIHBhY2soKQorICAgIAorICAgIFJlcXVlc3QgKnJlcSA9IChSZXF1ZXN0ICopQVJHMTsKKworICAgIFBSSU5UKCJob3N0X2dldF9zcGVjaWFsX3BvcnQobm9kZSAlZCkiLCByZXEtPm5vZGUpOworICAgIAorICAgIHN3aXRjaCAocmVxLT53aGljaCkgeworICAgICAgICBjYXNlIEhPU1RfUE9SVDoKKyAgICAgICAgICAgIFBSSU5UKCJob3N0X2dldF9zcGVjaWFsX3BvcnQoJXMsIEhPU1RfUE9SVCkiLAorICAgICAgICAgICAgICAgICAgbmFtZV9mb3JfcG9ydChNQUNIX1JFTU9URSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSE9TVF9QUklWX1BPUlQ6CisgICAgICAgICAgICBQUklOVCgiaG9zdF9nZXRfc3BlY2lhbF9wb3J0KCVzLCBIT1NUX1BSSVZfUE9SVCkiLAorICAgICAgICAgICAgICAgICAgbmFtZV9mb3JfcG9ydChNQUNIX1JFTU9URSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSE9TVF9JT19NQVNURVJfUE9SVDoKKyAgICAgICAgICAgIFBSSU5UKCJob3N0X2dldF9zcGVjaWFsX3BvcnQoJXMsIEhPU1RfSU9fTUFTVEVSX1BPUlQpIiwKKyAgICAgICAgICAgICAgICAgIG5hbWVfZm9yX3BvcnQoTUFDSF9SRU1PVEUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyBOb3QgcHJvdmlkZWQgYnkga2VybmVsCisgICAgICAgIGNhc2UgSE9TVF9EWU5BTUlDX1BBR0VSX1BPUlQ6CisgICAgICAgICAgICBQUklOVCgiaG9zdF9nZXRfc3BlY2lhbF9wb3J0KCVzLCBIT1NUX0RZTkFNSUNfUEFHRVJfUE9SVCkiLAorICAgICAgICAgICAgICAgICAgbmFtZV9mb3JfcG9ydChNQUNIX1JFTU9URSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSE9TVF9BVURJVF9DT05UUk9MX1BPUlQ6CisgICAgICAgICAgICBQUklOVCgiaG9zdF9nZXRfc3BlY2lhbF9wb3J0KCVzLCBIT1NUX0FVRElUX0NPTlRST0xfUE9SVCkiLAorICAgICAgICAgICAgICAgICAgbmFtZV9mb3JfcG9ydChNQUNIX1JFTU9URSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSE9TVF9VU0VSX05PVElGSUNBVElPTl9QT1JUOgorICAgICAgICAgICAgUFJJTlQoImhvc3RfZ2V0X3NwZWNpYWxfcG9ydCglcywgSE9TVF9VU0VSX05PVElGSUNBVElPTl9QT1JUKSIsCisgICAgICAgICAgICAgICAgICBuYW1lX2Zvcl9wb3J0KE1BQ0hfUkVNT1RFKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gLi4uCisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFBSSU5UKCJob3N0X2dldF9zcGVjaWFsX3BvcnQoJXMsICVkKSIsCisgICAgICAgICAgICAgICAgICBuYW1lX2Zvcl9wb3J0KE1BQ0hfUkVNT1RFKSwgcmVxLT53aGljaCk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgCisgICAgTUFDSF9BUkcoaG9zdF9nZXRfc3BlY2lhbF9wb3J0LndoaWNoKSA9IHJlcS0+d2hpY2g7CisgICAgCisgICAgQUZURVIgPSBQT1NUX0ZOKGhvc3RfZ2V0X3NwZWNpYWxfcG9ydCk7Cit9CisKKworUE9TVChob3N0X2dldF9zcGVjaWFsX3BvcnQpCit7CisjcHJhZ21hIHBhY2soNCkKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIG1hY2hfbXNnX2hlYWRlcl90IEhlYWQ7CisgICAgICAgIC8qIHN0YXJ0IG9mIHRoZSBrZXJuZWwgcHJvY2Vzc2VkIGRhdGEgKi8KKyAgICAgICAgbWFjaF9tc2dfYm9keV90IG1zZ2hfYm9keTsKKyAgICAgICAgbWFjaF9tc2dfcG9ydF9kZXNjcmlwdG9yX3QgcG9ydDsKKyAgICAgICAgLyogZW5kIG9mIHRoZSBrZXJuZWwgcHJvY2Vzc2VkIGRhdGEgKi8KKyAgICB9IFJlcGx5OworI3ByYWdtYSBwYWNrKCkKKyAgICAKKyAgICBSZXBseSAqcmVwbHkgPSAoUmVwbHkgKilBUkcxOworICAgIAorICAgIFBSSU5UKCJnb3QgcG9ydCAlI3ggIiwgcmVwbHktPnBvcnQubmFtZSk7CisKKyAgICAvKiBUaGUgcmVxdWlyZWQgZW50cnkgaW4gdGhlIGFsbG9jYXRlZF9wb3J0cyBsaXN0IChtYXBwaW5nKSBtaWdodAorICAgICBub3QgZXhpc3QsIGR1ZSBwZXJoYXBzIHRvIGJyb2tlbiBzeXNjYWxsIHdyYXBwZXJzIChtYWNoX19OIGV0YykuCisgICAgIENyZWF0ZSBhIG1pbmltYWwgZW50cnkgc28gdGhhdCBhc3NpZ25fcG9ydF9uYW1lIGJlbG93IGRvZXNuJ3QKKyAgICAgY2F1c2UgYW4gYXNzZXJ0aW9uLiAqLworICAgIGlmICghcG9ydF9leGlzdHMocmVwbHktPnBvcnQubmFtZSkpIHsKKyAgICAgICAgcG9ydF9jcmVhdGVfdmFuaWxsYShyZXBseS0+cG9ydC5uYW1lKTsKKyAgICB9CisgICAgCisgICAgc3dpdGNoIChNQUNIX0FSRyhob3N0X2dldF9zcGVjaWFsX3BvcnQud2hpY2gpKSB7CisgICAgICAgIGNhc2UgSE9TVF9QT1JUOgorICAgICAgICAgICAgYXNzaWduX3BvcnRfbmFtZShyZXBseS0+cG9ydC5uYW1lLCAicG9ydC0lcCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSE9TVF9QUklWX1BPUlQ6CisgICAgICAgICAgICBhc3NpZ25fcG9ydF9uYW1lKHJlcGx5LT5wb3J0Lm5hbWUsICJwcml2LSVwIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBIT1NUX0lPX01BU1RFUl9QT1JUOgorICAgICAgICAgICAgYXNzaWduX3BvcnRfbmFtZShyZXBseS0+cG9ydC5uYW1lLCAiaW8tbWFzdGVyLSVwIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gTm90IHByb3ZpZGVkIGJ5IGtlcm5lbAorICAgICAgICBjYXNlIEhPU1RfRFlOQU1JQ19QQUdFUl9QT1JUOgorICAgICAgICAgICAgYXNzaWduX3BvcnRfbmFtZShyZXBseS0+cG9ydC5uYW1lLCAiZHluYW1pYy1wYWdlci0lcCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSE9TVF9BVURJVF9DT05UUk9MX1BPUlQ6CisgICAgICAgICAgICBhc3NpZ25fcG9ydF9uYW1lKHJlcGx5LT5wb3J0Lm5hbWUsICJhdWRpdC1jb250cm9sLSVwIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBIT1NUX1VTRVJfTk9USUZJQ0FUSU9OX1BPUlQ6CisgICAgICAgICAgICBhc3NpZ25fcG9ydF9uYW1lKHJlcGx5LT5wb3J0Lm5hbWUsICJ1c2VyLW5vdGlmaWNhdGlvbi0lcCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIC4uLgorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBhc3NpZ25fcG9ydF9uYW1lKHJlcGx5LT5wb3J0Lm5hbWUsICJzcGVjaWFsLSVwIik7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgCisgICAgUFJJTlQoIiVzIiwgbmFtZV9mb3JfcG9ydChyZXBseS0+cG9ydC5uYW1lKSk7Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgbWFjaF9tc2c6IG1lc3NhZ2VzIHRvIGEgdGFzawogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC01NzAzLDYgKzU5NTMsNDggQEAKIH0KIAogCitQUkUodGFza19zZXRfc3BlY2lhbF9wb3J0KQoreworI3ByYWdtYSBwYWNrKDQpCisgICAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBtYWNoX21zZ19oZWFkZXJfdCBIZWFkOworICAgICAgICAvKiBzdGFydCBvZiB0aGUga2VybmVsIHByb2Nlc3NlZCBkYXRhICovCisgICAgICAgIG1hY2hfbXNnX2JvZHlfdCBtc2doX2JvZHk7CisgICAgICAgIG1hY2hfbXNnX3BvcnRfZGVzY3JpcHRvcl90IHNwZWNpYWxfcG9ydDsKKyAgICAgICAgLyogZW5kIG9mIHRoZSBrZXJuZWwgcHJvY2Vzc2VkIGRhdGEgKi8KKyAgICAgICAgTkRSX3JlY29yZF90IE5EUjsKKyAgICAgICAgaW50IHdoaWNoX3BvcnQ7CisgICAgfSBSZXF1ZXN0OworI3ByYWdtYSBwYWNrKCkKKyAgICAKKyAgICBSZXF1ZXN0ICpyZXEgPSAoUmVxdWVzdCAqKUFSRzE7CisKKyAgICBQUklOVCgiZ290IHBvcnQgJSN4ICIsIHJlcS0+c3BlY2lhbF9wb3J0Lm5hbWUpOworICAgIAorICAgIC8vIE1BQ0hfQVJHKHRhc2tfc2V0X3NwZWNpYWxfcG9ydC53aGljaF9wb3J0KSA9IHJlcS0+d2hpY2hfcG9ydDsKKyAgICBQUklOVCgiJXMiLCBuYW1lX2Zvcl9wb3J0KHJlcS0+c3BlY2lhbF9wb3J0Lm5hbWUpKTsKKyAgICAKKyAgICBBRlRFUiA9IFBPU1RfRk4odGFza19zZXRfc3BlY2lhbF9wb3J0KTsKK30KKworUE9TVCh0YXNrX3NldF9zcGVjaWFsX3BvcnQpCit7CisjcHJhZ21hIHBhY2soNCkKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIG1hY2hfbXNnX2hlYWRlcl90IEhlYWQ7CisgICAgICAgIE5EUl9yZWNvcmRfdCBORFI7CisgICAgICAgIGtlcm5fcmV0dXJuX3QgUmV0Q29kZTsKKyAgICB9IFJlcGx5OworI3ByYWdtYSBwYWNrKCkKKyAgICAKKyAgICBSZXBseSAqcmVwbHkgPSAoUmVwbHkgKilBUkcxOworICAgIGlmICghcmVwbHktPlJldENvZGUpIHsKKyAgICB9IGVsc2UgeworICAgICAgICBQUklOVCgibWlnIHJldHVybiAlZCIsIHJlcGx5LT5SZXRDb2RlKTsKKyAgICB9Cit9CisKKwogUFJFKHNlbWFwaG9yZV9jcmVhdGUpCiB7CiAjcHJhZ21hIHBhY2soNCkKQEAgLTU5MzAsNiArNjIyMiw0MiBAQAogfQogCiAKK1BSRSh0YXNrX3NldF9pbmZvKQoreworI3ByYWdtYSBwYWNrKDQpCisgICAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBtYWNoX21zZ19oZWFkZXJfdCBIZWFkOworICAgICAgICBORFJfcmVjb3JkX3QgTkRSOworICAgICAgICB0YXNrX2ZsYXZvcl90IGZsYXZvcjsKKyAgICAgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCB0YXNrX2luZm9faW5DbnQ7CisgICAgICAgIGludGVnZXJfdCB0YXNrX2luZm9faW5bNTJdOworICAgIH0gUmVxdWVzdDsKKyNwcmFnbWEgcGFjaygpCisgICAgCisgICAgUmVxdWVzdCAqcmVxID0gKFJlcXVlc3QgKilBUkcxOworICAgIAorICAgIFBSSU5UKCJ0YXNrX3NldF9pbmZvKCVzKSBmbGF2b3I6JWQiLCBuYW1lX2Zvcl9wb3J0KE1BQ0hfUkVNT1RFKSwgcmVxLT5mbGF2b3IpOworICAgIAorICAgIEFGVEVSID0gUE9TVF9GTih0YXNrX3NldF9pbmZvKTsKK30KKworUE9TVCh0YXNrX3NldF9pbmZvKQoreworI3ByYWdtYSBwYWNrKDQpCisgICAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBtYWNoX21zZ19oZWFkZXJfdCBIZWFkOworICAgICAgICBORFJfcmVjb3JkX3QgTkRSOworICAgICAgICBrZXJuX3JldHVybl90IFJldENvZGU7CisgICAgfSBSZXBseTsKKyNwcmFnbWEgcGFjaygpCisgICAgCisgICAgUmVwbHkgKnJlcGx5ID0gKFJlcGx5ICopQVJHMTsKKyAgICBpZiAoIXJlcGx5LT5SZXRDb2RlKSB7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUFJJTlQoIm1pZyByZXR1cm4gJWQiLCByZXBseS0+UmV0Q29kZSk7CisgICAgfQorfQorCiBQUkUodGFza190aHJlYWRzKQogewogI3ByYWdtYSBwYWNrKDQpCkBAIC02MDIyLDcgKzYzNTAsNyBAQAogCiAgICBSZXF1ZXN0ICpyZXEgPSAoUmVxdWVzdCAqKUFSRzE7CiAKLSAgIFBSSU5UKCJ2bV9hbGxvY2F0ZSAoJXMsIGF0ICUjbGx4LCBzaXplICVsbGQsIGZsYWdzICUjeCkiLCAKKyAgIFBSSU5UKCJ2bV9hbGxvY2F0ZSAoJXMsIGF0ICUjbGx4LCBzaXplICVsbHUsIGZsYWdzICUjeCkiLCAKICAgICAgICAgIG5hbWVfZm9yX3BvcnQoTUFDSF9SRU1PVEUpLCAKICAgICAgICAgIChVTG9uZylyZXEtPmFkZHJlc3MsIChVTG9uZylyZXEtPnNpemUsIHJlcS0+ZmxhZ3MpOwogCkBAIC02MDc5LDcgKzY0MDcsNyBAQAogICAgCiAgICBSZXF1ZXN0ICpyZXEgPSAoUmVxdWVzdCAqKUFSRzE7CiAgICAKLSAgIFBSSU5UKCJ2bV9kZWFsbG9jYXRlKCVzLCBhdCAlI2xseCwgc2l6ZSAlbGxkKSIsIAorICAgUFJJTlQoInZtX2RlYWxsb2NhdGUoJXMsIGF0ICUjbGx4LCBzaXplICVsbHUpIiwgCiAgICAgICAgICBuYW1lX2Zvcl9wb3J0KE1BQ0hfUkVNT1RFKSwgCiAgICAgICAgICAoVUxvbmcpcmVxLT5hZGRyZXNzLCAoVUxvbmcpcmVxLT5zaXplKTsKICAgIApAQCAtNjEzNyw3ICs2NDY1LDcgQEAKICAgIAogICAgUmVxdWVzdCAqcmVxID0gKFJlcXVlc3QgKilBUkcxOwogICAgCi0gICBQUklOVCgidm1fcHJvdGVjdCglcywgYXQgJSNsbHgsIHNpemUgJWxsZCwgc2V0X21heCAlZCwgcHJvdCAlZCkiLCAKKyAgIFBSSU5UKCJ2bV9wcm90ZWN0KCVzLCBhdCAlI2xseCwgc2l6ZSAlbGx1LCBzZXRfbWF4ICVkLCBwcm90ICVkKSIsIAogICAgICAgICAgbmFtZV9mb3JfcG9ydChNQUNIX1JFTU9URSksCiAgICAgICAgICAoVUxvbmcpcmVxLT5hZGRyZXNzLCAoVUxvbmcpcmVxLT5zaXplLCAKICAgICAgICAgIHJlcS0+c2V0X21heGltdW0sIHJlcS0+bmV3X3Byb3RlY3Rpb24pOwpAQCAtNjE5OCw3ICs2NTI2LDcgQEAKICAgIAogICAgUmVxdWVzdCAqcmVxID0gKFJlcXVlc3QgKilBUkcxOwogICAgCi0gICBQUklOVCgidm1faW5oZXJpdCglcywgYXQgJSNsbHgsIHNpemUgJWxsZCwgdmFsdWUgJWQpIiwgCisgICBQUklOVCgidm1faW5oZXJpdCglcywgYXQgJSNsbHgsIHNpemUgJWxsdSwgdmFsdWUgJWQpIiwgCiAgICAgICAgICBuYW1lX2Zvcl9wb3J0KE1BQ0hfUkVNT1RFKSwgCiAgICAgICAgICAoVUxvbmcpcmVxLT5hZGRyZXNzLCAoVUxvbmcpcmVxLT5zaXplLCAKICAgICAgICAgIHJlcS0+bmV3X2luaGVyaXRhbmNlKTsKQEAgLTY0NTIsNyArNjc4MCw3IEBACiAgICBSZXF1ZXN0ICpyZXEgPSAoUmVxdWVzdCAqKUFSRzE7CiAKICAgIC8vIEdyUCBmaXhtZSBjaGVjayB0aGVzZQotICAgUFJJTlQoInZtX21hcChpbiAlcywgYXQgJSNsbHgsIHNpemUgJWxsZCwgZnJvbSAlcyAuLi4pIiwgCisgICBQUklOVCgidm1fbWFwKGluICVzLCBhdCAlI2xseCwgc2l6ZSAlbGx1LCBmcm9tICVzIC4uLikiLCAKICAgICAgICAgIG5hbWVfZm9yX3BvcnQoTUFDSF9SRU1PVEUpLCAKICAgICAgICAgIChVTG9uZylyZXEtPmFkZHJlc3MsIChVTG9uZylyZXEtPnNpemUsIAogICAgICAgICAgbmFtZV9mb3JfcG9ydChyZXEtPm9iamVjdC5uYW1lKSk7CkBAIC02NTIwLDEyICs2ODQ4LDEyIEBACiAgICAgICBtYWNoX3BvcnRfbmFtZV90IHNvdXJjZV90YXNrID0gcmVxLT5zcmNfdGFzay5uYW1lOwogICAgICAgaWYgKHNvdXJjZV90YXNrID09IG1hY2hfdGFza19zZWxmKCkpIHsKICAgICAgICAgIFBSSU5UKCJ2bV9yZW1hcChtYWNoX3Rhc2tfc2VsZigpLCAiCi0gICAgICAgICAgICAgICAidG8gJSNsbHggc2l6ZSAlbGxkLCBmcm9tIG1hY2hfdGFza19zZWxmKCkgYXQgJSNsbHgsIC4uLikiLAorICAgICAgICAgICAgICAgInRvICUjbGx4IHNpemUgJWxsdSwgZnJvbSBtYWNoX3Rhc2tfc2VsZigpIGF0ICUjbGx4LCAuLi4pIiwKICAgICAgICAgICAgICAgIChVTG9uZylyZXEtPnRhcmdldF9hZGRyZXNzLAogICAgICAgICAgICAgICAgKFVMb25nKXJlcS0+c2l6ZSwgKFVMb25nKXJlcS0+c3JjX2FkZHJlc3MpOwogICAgICAgfSBlbHNlIHsKICAgICAgICAgIFBSSU5UKCJ2bV9yZW1hcChtYWNoX3Rhc2tfc2VsZigpLCAiCi0gICAgICAgICAgICAgICAidG8gJSNsbHggc2l6ZSAlbGxkLCBmcm9tIHRhc2sgJXUgYXQgJSNsbHgsIC4uLikiLAorICAgICAgICAgICAgICAgInRvICUjbGx4IHNpemUgJWxsdSwgZnJvbSB0YXNrICV1IGF0ICUjbGx4LCAuLi4pIiwKICAgICAgICAgICAgICAgIChVTG9uZylyZXEtPnRhcmdldF9hZGRyZXNzLCAoVUxvbmcpcmVxLT5zaXplLCAKICAgICAgICAgICAgICAgIHNvdXJjZV90YXNrLCAoVUxvbmcpcmVxLT5zcmNfYWRkcmVzcyk7CiAgICAgICB9CkBAIC02Njc2LDcgKzcwMDQsNyBAQAogCiAgICBQUklOVCgibWFjaF92bV9wdXJnYWJsZV9jb250cm9sKCVzLCAweCVsbHgsICVkLCAlZCkiLCAKICAgICAgICAgIG5hbWVfZm9yX3BvcnQoTUFDSF9SRU1PVEUpLCAKLSAgICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpcmVxLT5hZGRyZXNzLCByZXEtPmNvbnRyb2wsIHJlcS0+c3RhdGUpOworICAgICAgICAgKFVMb25nKXJlcS0+YWRkcmVzcywgcmVxLT5jb250cm9sLCByZXEtPnN0YXRlKTsKIAogICAgLy8gR3JQIGZpeG1lIHZlcmlmeSBhZGRyZXNzPwogCkBAIC02NzE3LDcgKzcwNDUsNyBAQAogCiAgICBSZXF1ZXN0ICpyZXEgPSAoUmVxdWVzdCAqKUFSRzE7CiAKLSAgIFBSSU5UKCJtYWNoX3ZtX2FsbG9jYXRlICglcywgYXQgMHglbGx4LCBzaXplICVsbGQsIGZsYWdzIDB4JXgpIiwgCisgICBQUklOVCgibWFjaF92bV9hbGxvY2F0ZSAoJXMsIGF0IDB4JWxseCwgc2l6ZSAlbGx1LCBmbGFncyAweCV4KSIsIAogICAgICAgICAgbmFtZV9mb3JfcG9ydChNQUNIX1JFTU9URSksIAogICAgICAgICAgcmVxLT5hZGRyZXNzLCByZXEtPnNpemUsIHJlcS0+ZmxhZ3MpOwogCkBAIC02NzczLDcgKzcxMDEsNyBAQAogICAgCiAgICBSZXF1ZXN0ICpyZXEgPSAoUmVxdWVzdCAqKUFSRzE7CiAgICAKLSAgIFBSSU5UKCJtYWNoX3ZtX2RlYWxsb2NhdGUoJXMsIGF0IDB4JWxseCwgc2l6ZSAlbGxkKSIsIAorICAgUFJJTlQoIm1hY2hfdm1fZGVhbGxvY2F0ZSglcywgYXQgMHglbGx4LCBzaXplICVsbHUpIiwgCiAgICAgICAgICBuYW1lX2Zvcl9wb3J0KE1BQ0hfUkVNT1RFKSwgCiAgICAgICAgICByZXEtPmFkZHJlc3MsIHJlcS0+c2l6ZSk7CiAgICAKQEAgLTY4MzEsNyArNzE1OSw3IEBACiAgICAKICAgIFJlcXVlc3QgKnJlcSA9IChSZXF1ZXN0ICopQVJHMTsKICAgIAotICAgUFJJTlQoIm1hY2hfdm1fcHJvdGVjdCglcywgYXQgMHglbGx4LCBzaXplICVsbGQsIHNldF9tYXggJWQsIHByb3QgJWQpIiwgCisgICBQUklOVCgibWFjaF92bV9wcm90ZWN0KCVzLCBhdCAweCVsbHgsIHNpemUgJWxsdSwgc2V0X21heCAlZCwgcHJvdCAlZCkiLCAKICAgICAgICAgIG5hbWVfZm9yX3BvcnQoTUFDSF9SRU1PVEUpLCByZXEtPmFkZHJlc3MsIHJlcS0+c2l6ZSwgCiAgICAgICAgICByZXEtPnNldF9tYXhpbXVtLCByZXEtPm5ld19wcm90ZWN0aW9uKTsKICAgIApAQCAtNzIyNywxMiArNzU1NSwyMyBAQAogICAgICAgLy8gYW5kIFNFVF9TVEFUVVNfU3VjY2VzcyBjcmVhdGVzIGEgVU5JWC1jbGFzcyBzeXNjYWxsIHJlc3VsdC4KICAgICAgIC8vIEhlbmNlIHdlIGhhdmUgdG8gbGFib3Jpb3VzbHkgY29uc3RydWN0IHRoZSBmdWxsIFN5c1JlcyAiYnkgaGFuZCIKICAgICAgIC8vIGFuZCB1c2UgdGhhdCB0byBzZXQgdGhlIHN5c2NhbGwgcmV0dXJuIHN0YXR1cy4KKyNpZiBkZWZpbmVkKFZHQV94ODYpCiAgICAgICBTRVRfU1RBVFVTX2Zyb21fU3lzUmVzKAogICAgICAgICAgVkdfKG1rX1N5c1Jlc194ODZfZGFyd2luKSgKICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NMQVNTX01BQ0gsCiAgICAgICAgICAgICBGYWxzZS8qc3VjY2VzcyovLCAwLCAwCiAgICAgICAgICApCiAgICAgICApOworI2VsaWYgZGVmaW5lZChWR0FfYW1kNjQpCisgICAgICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcygKKyAgICAgICAgIFZHXyhta19TeXNSZXNfYW1kNjRfZGFyd2luKSgKKyAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NMQVNTX01BQ0gsCisgICAgICAgICAgICBGYWxzZS8qc3VjY2VzcyovLCAwLCAwCisgICAgICAgICApCisgICAgICApOworI2Vsc2UKKyNlcnJvciB1bmtub3duIGFyY2hpdGVjdHVyZQorI2VuZGlmCiAgICAgICAqZmxhZ3MgJj0gflNmTWF5QmxvY2s7ICAvLyBjbGVhciBmbGFnIHNldCBieSBQUkUobWFjaF9tc2cpCiAgICB9IGVsc2UgewogICAgICAgLy8gVGVybWluYXRpbmcgc29tZSBvdGhlciB0aHJlYWQuCkBAIC03NzM5LDYgKzgwNzgsMTMgQEAKICAgIGNhc2UgMjE3OgogICAgICAgQ0FMTF9QUkUoaG9zdF9yZXF1ZXN0X25vdGlmaWNhdGlvbik7CiAgICAgICByZXR1cm47CisgICBjYXNlIDIyMjoKKyAgICAgIENBTExfUFJFKGhvc3RfY3JlYXRlX21hY2hfdm91Y2hlcik7CisgICAgICByZXR1cm47CisgICAgICAgICAgIAorICAgY2FzZSA0MTI6CisgICAgICBDQUxMX1BSRShob3N0X2dldF9zcGVjaWFsX3BvcnQpOworICAgICAgcmV0dXJuOwogCiAgICBkZWZhdWx0OgogICAgICAgLy8gdW5rbm93biBtZXNzYWdlIHRvIGhvc3Qgc2VsZgpAQCAtNzgxOCwyMSArODE2NCwyNCBAQAogICAgY2FzZSAzNDA0OgogICAgICAgQ0FMTF9QUkUobWFjaF9wb3J0c19sb29rdXApOwogICAgICAgcmV0dXJuOwotCiAgICBjYXNlIDM0MDU6CiAgICAgICBDQUxMX1BSRSh0YXNrX2luZm8pOwogICAgICAgcmV0dXJuOwotCisgICBjYXNlIDM0MDY6CisgICAgICBDQUxMX1BSRSh0YXNrX3NldF9pbmZvKTsKKyAgICAgIHJldHVybjsKICAgIGNhc2UgMzQwNzoKICAgICAgIENBTExfUFJFKHRhc2tfc3VzcGVuZCk7CiAgICAgICByZXR1cm47CiAgICBjYXNlIDM0MDg6CiAgICAgICBDQUxMX1BSRSh0YXNrX3Jlc3VtZSk7CiAgICAgICByZXR1cm47Ci0gICAgICAKICAgIGNhc2UgMzQwOToKICAgICAgIENBTExfUFJFKHRhc2tfZ2V0X3NwZWNpYWxfcG9ydCk7CiAgICAgICByZXR1cm47CisgICBjYXNlIDM0MTA6CisgICAgICBDQUxMX1BSRSh0YXNrX3NldF9zcGVjaWFsX3BvcnQpOworICAgICAgcmV0dXJuOwogICAgY2FzZSAzNDExOgogICAgICAgQ0FMTF9QUkUodGhyZWFkX2NyZWF0ZSk7CiAgICAgICByZXR1cm47CkBAIC04MDM3LDcgKzgzODYsNyBAQAogICAgICAgLy8gR3JQIGZpeG1lIGhhbmRsZSBzZW5kZXItc3BlY2lmaWVkIG1lc3NhZ2UgdHJhaWxlcgogICAgICAgLy8gKGJ1dCBpcyB0aGlzIG9ubHkgZm9yIHRvby1zZWN1cmUgcHJvY2Vzc2VzPykKICAgICAgIC8vIEpSUyAxMSBOb3YgMjAxNDogdGhpcyBhc3NlcnRpb24gaXMgT0sgZm9yIDw9IDEwLjkgYnV0IGZhaWxzIG9uIDEwLjEwCi0jICAgICBpZiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfMTAKKyMgICAgIGlmIERBUldJTl9WRVJTID49IERBUldJTl8xMF8xMAogICAgICAgaWYgKG1oLT5tc2doX2JpdHMgJiBNQUNIX1NFTkRfVFJBSUxFUikgewogICAgICAgICAgbG9nX2RlY2F5aW5nKCJVTktOT1dOIG1hY2hfbXNnIHVuaGFuZGxlZCBNQUNIX1NFTkRfVFJBSUxFUiBvcHRpb24iKTsKICAgICAgIH0KQEAgLTgzMjIsNyArODY3MSw3IEBACiBQUkUoc3lzY2FsbF90aHJlYWRfc3dpdGNoKQogewogICAgUFJJTlQoInN5c2NhbGxfdGhyZWFkX3N3aXRjaCglcywgJWxkLCAlbGQpIiwKLSAgICAgIG5hbWVfZm9yX3BvcnQoQVJHMSksIEFSRzIsIEFSRzMpOworICAgICAgbmFtZV9mb3JfcG9ydChBUkcxKSwgU0FSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInN5c2NhbGxfdGhyZWFkX3N3aXRjaCIsIAogICAgICAgICAgICAgICAgICBtYWNoX3BvcnRfdCwidGhyZWFkIiwgaW50LCJvcHRpb24iLCBuYXR1cmFsX3QsInRpbWVvdXQiKTsKIApAQCAtODQwNyw3ICs4NzU2LDcgQEAKICAgICAgICAgICAgICAgICAgaW50IHRpbWVvdXQsIGludCByZWxhdGl2ZSwKICAgICAgICAgICAgICAgICAgdGltZV90IHR2X3NlYywgdGltZV90IHR2X25zZWMgKi8KICAgIFBSSU5UKCJfX3NlbXdhaXRfc2lnbmFsKHdhaXQgJXMsIHNpZ25hbCAlcywgJWxkLCAlbGQsICVsZHM6JWxkbnMpIiwgCi0gICAgICAgICBuYW1lX2Zvcl9wb3J0KEFSRzEpLCBuYW1lX2Zvcl9wb3J0KEFSRzIpLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKKyAgICAgICAgIG5hbWVfZm9yX3BvcnQoQVJHMSksIG5hbWVfZm9yX3BvcnQoQVJHMiksIFNBUkczLCBTQVJHNCwgU0FSRzUsIFNBUkc2KTsKICAgIFBSRV9SRUdfUkVBRDYobG9uZywgIl9fc2Vtd2FpdF9zaWduYWwiLCAKICAgICAgICAgICAgICAgICAgaW50LCJjb25kX3NlbSIsIGludCwibXV0ZXhfc2VtIiwKICAgICAgICAgICAgICAgICAgaW50LCJ0aW1lb3V0IiwgaW50LCJyZWxhdGl2ZSIsIApAQCAtODQxOCwzNCArODc2NywyOCBAQAogLy8gR3JQIHByb3ZpZGVkIHRoaXMgYWx0ZXJuYXRpdmUgdmVyc2lvbiBmb3IgMTAuNiwgYnV0IE5qTgogLy8gcmVja29ucyB0aGUgMTAuNSBpcyBpcyBzdGlsbCBjb3JyZWN0IGZvciAxMC42LiAgU28sIHJldGFpbmluZwogLy8gR3JlZydzIHZlcnNpb24gYXMgYSBjb21tZW50IGp1c3QgaW4gY2FzZSB3ZSBuZWVkIGl0IGxhdGVyLgotLy9QUkUoX19zZW13YWl0X3NpZ25hbCkKKy8vUFJFKF9fb2xkX3NlbXdhaXRfc2lnbmFsKQogLy97CiAvLyAgIC8qIDEwLjUgYXJnczogaW50IGNvbmRfc2VtLCBpbnQgbXV0ZXhfc2VtLAogLy8gICAgICAgICAgICAgICAgIGludCB0aW1lb3V0LCBpbnQgcmVsYXRpdmUsCiAvLyAgICAgICAgICAgICAgICAgY29uc3QgdGltZXNwZWMgKnRzICovCi0vLyAgIFBSSU5UKCJfX3NlbXdhaXRfc2lnbmFsKHdhaXQgJXMsIHNpZ25hbCAlcywgJWxkLCAlbGQsICUjbHgpIiwgCisvLyAgIFBSSU5UKCJfX29sZF9zZW13YWl0X3NpZ25hbCh3YWl0ICVzLCBzaWduYWwgJXMsICVsZCwgJWxkLCAlI2x4KSIsCiAvLyAgICAgICAgIG5hbWVfZm9yX3BvcnQoQVJHMSksIG5hbWVfZm9yX3BvcnQoQVJHMiksIEFSRzMsIEFSRzQsIEFSRzUpOwotLy8gICBQUkVfUkVHX1JFQUQ1KGludCwgIl9fc2Vtd2FpdF9zaWduYWwiLCAKKy8vICAgUFJFX1JFR19SRUFENShpbnQsICJfX29sZF9zZW13YWl0X3NpZ25hbCIsIAogLy8gICAgICAgICAgICAgICAgIGludCxjb25kX3NlbSwgaW50LG11dGV4X3NlbSwKIC8vICAgICAgICAgICAgICAgICBpbnQsdGltZW91dCwgaW50LHJlbGF0aXZlLCAKIC8vICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmtpX3RpbWVzcGVjICosdHMpOwogLy8gICAKLS8vICAgaWYgKEFSRzUpIFBSRV9NRU1fUkVBRCAoIl9fc2Vtd2FpdF9zaWduYWwodHMpIiwgCisvLyAgIGlmIChBUkc1KSBQUkVfTUVNX1JFQUQgKCJfX29sZF9zZW13YWl0X3NpZ25hbCh0cykiLAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBBUkc1LCBzaXplb2Yoc3RydWN0IHZraV90aW1lc3BlYykpOwogLy8gICAKIC8vICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CiAvL30KIAogCi1QUkUoX190aHJlYWRfc2VsZmlkKQotewotICAgUFJJTlQoIl9fdGhyZWFkX3NlbGZpZCAoKSIpOwotICAgUFJFX1JFR19SRUFEMCh2a2lfdWludDY0X3QsICJfX3RocmVhZF9zZWxmaWQiKTsKLX0KLQogUFJFKHRhc2tfZm9yX3BpZCkKIHsKLSAgIFBSSU5UKCJ0YXNrX2Zvcl9waWQoJXMsICVsZCwgJSNseCkiLCBuYW1lX2Zvcl9wb3J0KEFSRzEpLCBBUkcyLCBBUkczKTsKKyAgIFBSSU5UKCJ0YXNrX2Zvcl9waWQoJXMsICVsZCwgJSNseCkiLCBuYW1lX2Zvcl9wb3J0KEFSRzEpLCBTQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJ0YXNrX2Zvcl9waWQiLCAKICAgICAgICAgICAgICAgICAgbWFjaF9wb3J0X3QsInRhcmdldCIsIAogICAgICAgICAgICAgICAgICB2a2lfcGlkX3QsICJwaWQiLCBtYWNoX3BvcnRfdCAqLCJ0YXNrIik7CkBAIC04NjAxLDcgKzg5NDQsNyBAQAogCiBQUkUoc3d0Y2hfcHJpKQogewotICAgUFJJTlQoInN3dGNoX3ByaSAoICVsZCApIiwgQVJHMSk7CisgICBQUklOVCgic3d0Y2hfcHJpICggJWxkICkiLCBTQVJHMSk7CiAgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJzd3RjaF9wcmkiLCBpbnQsInByaSIpOwogCiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKQEAgLTg3OTEsMjEgKzkxMzQsMTAgQEAKIAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgIEFkZGVkIGZvciBPU1ggMTAuNyAoTGlvbikKKyAgIEFkZGVkIGZvciBPU1ggMTAuNiAoU25vdyBMZW9wYXJkKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLSNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfNwotCi1QUkUoZ2V0YXVkaXRfYWRkcikKLXsKLSAgIFBSSU5UKCJnZXRhdWRpdF9hZGRyKCUjbHgsICVsdSkiLCBBUkcxLCBBUkcyKTsKLSAgIFBSRV9SRUdfUkVBRDEodm9pZCosICJhdWRpdGluZm9fYWRkciIsIGludCwgImxlbmd0aCIpOwotICAgUFJFX01FTV9XUklURSgiZ2V0YXVkaXRfYWRkcihhdWRpdGluZm9fYWRkcikiLCBBUkcxLCBBUkcyKTsKLX0KLVBPU1QoZ2V0YXVkaXRfYWRkcikKLXsKLSAgIFBPU1RfTUVNX1dSSVRFKEFSRzEsIEFSRzIpOwotfQorI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF82CiAKIFBSRShwc3luY2hfbXV0ZXh3YWl0KQogewpAQCAtODg3Niw2ICs5MjA4LDYwIEBACiB7CiB9CiAKK1BSRShfX3RocmVhZF9zZWxmaWQpCit7CisgICBQUklOVCgiX190aHJlYWRfc2VsZmlkICgpIik7CisgICBQUkVfUkVHX1JFQUQwKHZraV91aW50NjRfdCwgIl9fdGhyZWFkX3NlbGZpZCIpOworfQorCitQUkUoZnNnZXRwYXRoKQoreworI2lmIFZHX1dPUkRTSVpFID09IDQKKyAgIFBSSU5UKCJmc2dldHBhdGgoJSNseCwgJWxkLCAlI2x4IHsldSwldX0sICVsbHUpIiwgCisgICAgICAgICBBUkcxLCBBUkcyLCBBUkczLAorICAgICAgICAgKCh1bnNpZ25lZCBpbnQgKilBUkczKVswXSwgKCh1bnNpZ25lZCBpbnQgKilBUkczKVsxXSwKKyAgICAgICAgIExPSEk2NChBUkc0LCBBUkc1KSk7CisgICBQUkVfUkVHX1JFQUQ1KHNzaXplX3QsICJmc2dldHBhdGgiLCAKKyAgICAgICAgICAgICAgICAgdm9pZCosImJ1ZiIsIHNpemVfdCwiYnVmc2l6ZSIsIAorICAgICAgICAgICAgICAgICBmc2lkX3QgKiwiZnNpZCIsCisgICAgICAgICAgICAgICAgIHZraV91aW50MzJfdCwgIm9iamlkX2xvdzMyIiwgdmtpX3VpbnQzMl90LCAib2JqaWRfaGlnaDMyIik7CisjZWxzZQorICAgUFJJTlQoImZzZ2V0cGF0aCglI2x4LCAlbGQsICUjbHggeyV1LCV1fSwgJWx1KSIsIAorICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywKKyAgICAgICAgICgodW5zaWduZWQgaW50ICopQVJHMylbMF0sCisgICAgICAgICAoKHVuc2lnbmVkIGludCAqKUFSRzMpWzFdLCBBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQoc3NpemVfdCwgImZzZ2V0cGF0aCIsIAorICAgICAgICAgICAgICAgICB2b2lkKiwiYnVmIiwgc2l6ZV90LCJidWZzaXplIiwgCisgICAgICAgICAgICAgICAgIGZzaWRfdCAqLCJmc2lkIiwgdWludDY0X3QsIm9iamlkIik7CisjZW5kaWYKKyAgIFBSRV9NRU1fUkVBRCgiZnNnZXRwYXRoKGZzaWQpIiwgQVJHMywgc2l6ZW9mKGZzaWRfdCkpOworICAgUFJFX01FTV9XUklURSgiZnNnZXRwYXRoKGJ1ZikiLCBBUkcxLCBBUkcyKTsKK30KKworUE9TVChmc2dldHBhdGgpCit7CisgICBQT1NUX01FTV9XUklURShBUkcxLCBSRVMpOworfQorCitQUkUoYXVkaXRfc2Vzc2lvbl9zZWxmKQoreworICBQUklOVCgiYXVkaXRfc2Vzc2lvbl9zZWxmKCkiKTsKK30KK1BPU1QoYXVkaXRfc2Vzc2lvbl9zZWxmKQoreworICByZWNvcmRfbmFtZWRfcG9ydCh0aWQsIFJFUywgTUFDSF9QT1JUX1JJR0hUX1NFTkQsICJhdWRpdC1zZXNzaW9uLSVwIik7CisgIFBSSU5UKCJhdWRpdC1zZXNzaW9uICUjbHgiLCBSRVMpOworfQorCisjZW5kaWYgLyogREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzYgKi8KKworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIEFkZGVkIGZvciBPU1ggMTAuNyAoTGlvbikKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzcKKwogUFJFKHBzeW5jaF9jdmNscnByZXBvc3QpCiB7CiAgICBQUklOVCgicHN5bmNoX2N2Y2xycHJlcG9zdChCT0dVUykiKTsKQEAgLTkyMjEsNyArOTYwNyw3IEBACiB7CiAgICAvLyBpbnQgbmVjcF9tYXRjaF9wb2xpY3kodWludDhfdCAqcGFyYW1ldGVycywgc2l6ZV90IHBhcmFtZXRlcnNfc2l6ZSwKICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbmVjcF9hZ2dyZWdhdGVfcmVzdWx0ICpyZXR1cm5lZF9yZXN1bHQpCi0gICBQUklOVCgibmVjcF9tYXRjaF9wb2xpY3koRklYTUUpKCVseCwlbGQsICVseCkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSSU5UKCJuZWNwX21hdGNoX3BvbGljeShGSVhNRSkoJWx4LCVsdSwgJWx4KSIsIEFSRzEsIEFSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhpbnQsICJuZWNwX21hdGNoX3BvbGljeSIsIHVpbnQ4X3QqLCBwYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgICBzaXplX3QsIHBhcmFtZXRlcnNfc2l6ZSwgc3RydWN0IG5lY3BfYWdncmVnYXRlX3Jlc3VsdCosCiAgICAgICAgICAgICAgICAgIHJldHVybmVkX3Jlc3VsdCk7CkBAIC05MjM5LDE0ICs5NjI1LDE0IEBACiAgICBVV29yZCBvbGRwICAgID0gQVJHMzsKICAgIFVXb3JkIG9sZGxlbnAgPSBBUkc0OwogICAgVVdvcmQgbmV3cCAgICA9IEFSRzU7Ci0gICBVV29yZCBuZXdsZW4gID0gQVJHNjsKKyAgIFVXb3JkIG5ld2xlbiAgPSBBUkc2OyAgLy8gRklYTUU6IG9yIG5ld2xlbnAgPz8KIAotICAgUFJJTlQoICJzeXNjdGxieW5hbWUgKCAlI2x4LCVsZCwgJSNseCwlI2x4LCAlI2x4LCVsZCApIiwgCisgICBQUklOVCggInN5c2N0bGJ5bmFtZSAoICUjbHgsJWx1LCAlI2x4LCUjbHgsICUjbHgsJWx1ICkiLCAKICAgICAgICAgICBuYW1lLCBuYW1lbGVuLCBvbGRwLCBvbGRsZW5wLCBuZXdwLCBuZXdsZW4gKTsKIAogICAgUFJFX1JFR19SRUFENihpbnQsICJzeXNjdGxieW5hbWUiLCBjaGFyKiwgbmFtZSwgc2l6ZV90LCBuYW1lbGVuLAogICAgICAgICAgICAgICAgICB2b2lkKiwgb2xkcCwgdmtpX3NpemVfdCAqLCBvbGRsZW5wLCAKLSAgICAgICAgICAgICAgICAgdm9pZCosIG5ld3AsIHZraV9zaXplX3QgKiwgbmV3bGVucCk7CisgICAgICAgICAgICAgICAgIHZvaWQqLCBuZXdwLCB2a2lfc2l6ZV90ICosIG5ld2xlbnApOyAgLy8gIDwtLS08PAogCiAgICAvLyByZWFkcyBuYW1lWzAuLm5hbWVsZW4tMV0KICAgIFBSRV9NRU1fUkVBRCgic3lzY3RsYnluYW1lKG5hbWUpIiwgbmFtZSwgbmFtZWxlbik7CkBAIC05MjkwLDcgKzk2NzYsNyBAQAogICAgLy8gICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBvcHRpb25zKTsKICAgIC8vIFByZXN1bWFibHkgdGhlIGxhc3QgYXJnIGlzIHZhbHVlLXBhaXIgaW4gdGhlIDMyIGJpdCBjYXNlLgogICAgUFJJTlQoImdldGF0dHJsaXN0YnVsayhGSVhNRSkoJWxkLCAlbHgsICVseCwlbHUsICVsdSkiLAotICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSk7CisgICAgICAgICBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGludCwgImdldGF0dHJsaXN0YnVsayIsIGludCwgZGlyZmQsIHZvaWQqLCBsaXN0LAogICAgICAgICAgICAgICAgICB2b2lkKiwgYXR0cmlidXRlQnVmZmVyLCBzaXplX3QsIGJ1ZmZlclNpemUsCiAgICAgICAgICAgICAgICAgIHVpbnQzMl90LCBvcHRpb25zX2xvMzIpOwpAQCAtOTMxMiw3ICs5Njk4LDggQEAKIHsKICAgICBXb3JkICBzYXZlZCA9IFNZU05POwogICAgIAotICAgIFBSSU5UKCJyZWFkbGlua2F0ICggJWxkLCAlI2x4KCVzKSwgJSNseCwgJWxsdSApIiwgQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMsKFVMb25nKUFSRzQpOworICAgIFBSSU5UKCJyZWFkbGlua2F0ICggJWxkLCAlI2x4KCVzKSwgJSNseCwgJWxkICkiLAorICAgICAgICAgIFNBUkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIEFSRzMsIFNBUkc0KTsKICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJyZWFkbGlua2F0IiwKICAgICAgICAgICAgICAgICAgIGludCwgZGZkLCBjb25zdCBjaGFyICosIHBhdGgsIGNoYXIgKiwgYnVmLCBpbnQsIGJ1ZnNpeik7CiAgICAgUFJFX01FTV9SQVNDSUlaKCAicmVhZGxpbmthdChwYXRoKSIsIEFSRzIgKTsKQEAgLTkzNDQsNyArOTczMSw3IEBACiAgICAgUFJJTlQoImd1YXJkZWRfb3Blbl9kcHJvdGVjdGVkX25wKCIKICAgICAgICAgInBhdGg6JSNseCglcyksIGd1YXJkOiUjbHgsIGd1YXJkZmxhZ3M6JSNseCwgZmxhZ3M6JSNseCwgIgogICAgICAgICAiZHBjbGFzczolI2x4LCBkcGZsYWdzOiAlI2x4KSBGSVhNRSIsCi0gICAgICAgIEFSRzEsIChjaGFyKilBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKKyAgICAgICAgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKIH0KIAogUFJFKGd1YXJkZWRfd3JpdGVfbnApCkBAIC05NzE1LDEzICsxMDEwMiwxMCBAQAogLy8gX19fX18oX19OUl9zaGFyZWRfcmVnaW9uX21hcF9ucCksIAogI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF82CiAvLyBfX19fXyhfX05SX3ZtX3ByZXNzdXJlX21vbml0b3IpLCAKLSNlbHNlCi0gICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgyOTYpKSwgICAvLyBvbGQgbG9hZF9zaGFyZWRfZmlsZSAKLSNlbmRpZgotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMjk3KSksICAgLy8gb2xkIHJlc2V0X3NoYXJlZF9maWxlIAotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMjk4KSksICAgLy8gb2xkIG5ld19zeXN0ZW1fc2hhcmVkX3JlZ2lvbnMgCi0gICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgyOTkpKSwgICAvLyBvbGQgc2hhcmVkX3JlZ2lvbl9tYXBfZmlsZV9ucCAKLSAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMCkpLCAgIC8vIG9sZCBzaGFyZWRfcmVnaW9uX21ha2VfcHJpdmF0ZV9ucAorLy8gX19fX18oX19OUl9wc3luY2hfcndfbG9uZ3JkbG9jayksIAorLy8gX19fX18oX19OUl9wc3luY2hfcndfeWllbGR3cmxvY2spLCAKKy8vIF9fX19fKF9fTlJfcHN5bmNoX3J3X2Rvd25ncmFkZSksIAorLy8gX19fX18oX19OUl9wc3luY2hfcndfdXBncmFkZSksIAogICAgTUFDWFkoX19OUl9wc3luY2hfbXV0ZXh3YWl0LCBwc3luY2hfbXV0ZXh3YWl0KSwgLy8gMzAxCiAgICBNQUNYWShfX05SX3BzeW5jaF9tdXRleGRyb3AsIHBzeW5jaF9tdXRleGRyb3ApLCAvLyAzMDIKICAgIE1BQ1hZKF9fTlJfcHN5bmNoX2N2YnJvYWQsICAgcHN5bmNoX2N2YnJvYWQpLCAgIC8vIDMwMwpAQCAtOTczMCwxMCArMTAxMTQsMzAgQEAKICAgIE1BQ1hZKF9fTlJfcHN5bmNoX3J3X3JkbG9jaywgcHN5bmNoX3J3X3JkbG9jayksIC8vIDMwNgogICAgTUFDWFkoX19OUl9wc3luY2hfcndfd3Jsb2NrLCBwc3luY2hfcndfd3Jsb2NrKSwgLy8gMzA3CiAgICBNQUNYWShfX05SX3BzeW5jaF9yd191bmxvY2ssIHBzeW5jaF9yd191bmxvY2spLCAvLyAzMDgKLSAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwOSkpLCAgIC8vID8/PworLy8gX19fX18oX19OUl9wc3luY2hfcndfdW5sb2NrMiksIAorI2Vsc2UKKyAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDI5NikpLCAgIC8vIG9sZCBsb2FkX3NoYXJlZF9maWxlIAorICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMjk3KSksICAgLy8gb2xkIHJlc2V0X3NoYXJlZF9maWxlIAorICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMjk4KSksICAgLy8gb2xkIG5ld19zeXN0ZW1fc2hhcmVkX3JlZ2lvbnMgCisgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgyOTkpKSwgICAvLyBvbGQgc2hhcmVkX3JlZ2lvbl9tYXBfZmlsZV9ucCAKKyAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMCkpLCAgIC8vIG9sZCBzaGFyZWRfcmVnaW9uX21ha2VfcHJpdmF0ZV9ucAorLy8gX19fX18oX19OUl9fX3B0aHJlYWRfbXV0ZXhfZGVzdHJveSksIAorLy8gX19fX18oX19OUl9fX3B0aHJlYWRfbXV0ZXhfaW5pdCksIAorLy8gX19fX18oX19OUl9fX3B0aHJlYWRfbXV0ZXhfbG9jayksIAorLy8gX19fX18oX19OUl9fX3B0aHJlYWRfbXV0ZXhfdHJ5bG9jayksIAorLy8gX19fX18oX19OUl9fX3B0aHJlYWRfbXV0ZXhfdW5sb2NrKSwgCisvLyBfX19fXyhfX05SX19fcHRocmVhZF9jb25kX2luaXQpLCAKKy8vIF9fX19fKF9fTlJfX19wdGhyZWFkX2NvbmRfZGVzdHJveSksIAorLy8gX19fX18oX19OUl9fX3B0aHJlYWRfY29uZF9icm9hZGNhc3QpLCAKKy8vIF9fX19fKF9fTlJfX19wdGhyZWFkX2NvbmRfc2lnbmFsKSwgCisjZW5kaWYKIC8vIF9fX19fKF9fTlJfZ2V0c2lkKSwgCiAvLyBfX19fXyhfX05SX3NldHRpZF93aXRoX3BpZCksIAorI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF83CiAgICBNQUNYWShfX05SX3BzeW5jaF9jdmNscnByZXBvc3QsIHBzeW5jaF9jdmNscnByZXBvc3QpLCAvLyAzMTIKKyNlbHNlCisgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMDgpKSwgICAvLyBvbGQgX19wdGhyZWFkX2NvbmRfdGltZWR3YWl0CisjZW5kaWYKIC8vIF9fX19fKF9fTlJfYWlvX2ZzeW5jKSwgCiAgICBNQUNYWShfX05SX2Fpb19yZXR1cm4sICAgICBhaW9fcmV0dXJuKSwgCiAgICBNQUNYXyhfX05SX2Fpb19zdXNwZW5kLCAgICBhaW9fc3VzcGVuZCksIApAQCAtOTc2Myw5ICsxMDE2Nyw3IEBACiAgICBNQUNYXyhfX05SX19fcHRocmVhZF9jYW5jZWxlZCwgICAgICBfX3B0aHJlYWRfY2FuY2VsZWQpLAogICAgTUFDWF8oX19OUl9fX3NlbXdhaXRfc2lnbmFsLCAgICAgICAgX19zZW13YWl0X3NpZ25hbCksIAogICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzM1KSksICAgLy8gb2xkIHV0cmFjZQotI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF82CiAgICBNQUNYWShfX05SX3Byb2NfaW5mbywgICAgICAgICAgICAgICBwcm9jX2luZm8pLCAgLy8gMzM2Ci0jZW5kaWYKICAgIE1BQ1hZKF9fTlJfc2VuZGZpbGUsICAgIHNlbmRmaWxlKSwgCiAgICBNQUNYWShfX05SX3N0YXQ2NCwgICAgICBzdGF0NjQpLCAKICAgIE1BQ1hZKF9fTlJfZnN0YXQ2NCwgICAgIGZzdGF0NjQpLCAKQEAgLTk3ODYsOSArMTAxODgsNyBAQAogLy8gX19fX18oX19OUl9zZXRhdWlkKSwgCiAvLyBfX19fXyhfX05SX2dldGF1ZGl0KSwgCiAvLyBfX19fXyhfX05SX3NldGF1ZGl0KSwgCi0jaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzcKICAgIE1BQ1hZKF9fTlJfZ2V0YXVkaXRfYWRkciwgZ2V0YXVkaXRfYWRkciksCi0jZW5kaWYKIC8vIF9fX19fKF9fTlJfc2V0YXVkaXRfYWRkciksIAogLy8gX19fX18oX19OUl9hdWRpdGN0bCksIAogICAgTUFDWFkoX19OUl9ic2R0aHJlYWRfY3JlYXRlLCAgICAgYnNkdGhyZWFkX2NyZWF0ZSksICAgLy8gMzYwCkBAIC05ODA1LDggKzEwMjA1LDggQEAKICNlbHNlCiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzNjkpKSwgICAvLyA/Pz8KICNlbmRpZgotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzcwKSksICAgLy8gPz8/Ci0gICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzNzEpKSwgICAvLyA/Pz8KKyAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDM3MCkpLCAgIC8vIG9sZCBzZW13YWl0X3NpZ25hbAorICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzcxKSksICAgLy8gb2xkIHNlbXdhaXRfc2lnbmFsX25vY2FuY2VsCiAjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzYKICAgIE1BQ1hfKF9fTlJfX190aHJlYWRfc2VsZmlkLCBfX3RocmVhZF9zZWxmaWQpLCAKICNlbHNlCkBAIC05ODg3LDEwICsxMDI4NywxMiBAQAogICAgTUFDWFkoX19OUl9nZXRhdHRybGlzdGJ1bGssICAgICBnZXRhdHRybGlzdGJ1bGspLCAgICAvLyA0NjEKICAgIE1BQ1hfKF9fTlJfcmVhZGxpbmthdCwgICAgICAgICAgcmVhZGxpbmthdCksICAgICAgICAgLy8gNDczCiAgICBNQUNYXyhfX05SX2JzZHRocmVhZF9jdGwsICAgICAgIGJzZHRocmVhZF9jdGwpLCAgICAgIC8vIDQ3OAotICAgTUFDWF8oX19OUl9ndWFyZGVkX29wZW5fZHByb3RlY3RlZF9ucCwgZ3VhcmRlZF9vcGVuX2Rwcm90ZWN0ZWRfbnApLAotICAgTUFDWF8oX19OUl9ndWFyZGVkX3dyaXRlX25wLCBndWFyZGVkX3dyaXRlX25wKSwKLSAgIE1BQ1hfKF9fTlJfZ3VhcmRlZF9wd3JpdGVfbnAsIGd1YXJkZWRfcHdyaXRlX25wKSwKLSAgIE1BQ1hfKF9fTlJfZ3VhcmRlZF93cml0ZXZfbnAsIGd1YXJkZWRfd3JpdGV2X25wKSwKKyAgIE1BQ1hfKF9fTlJfZ3VhcmRlZF9vcGVuX2Rwcm90ZWN0ZWRfbnAsIGd1YXJkZWRfb3Blbl9kcHJvdGVjdGVkX25wKSwgIC8vIDQ4NAorICAgTUFDWF8oX19OUl9ndWFyZGVkX3dyaXRlX25wLCBndWFyZGVkX3dyaXRlX25wKSwgICAgICAvLyA0ODUKKyAgIE1BQ1hfKF9fTlJfZ3VhcmRlZF9wd3JpdGVfbnAsIGd1YXJkZWRfcHdyaXRlX25wKSwgICAgLy8gNDg2CisgICBNQUNYXyhfX05SX2d1YXJkZWRfd3JpdGV2X25wLCBndWFyZGVkX3dyaXRldl9ucCksICAgIC8vIDQ4NworLy8gX19fX18oX19OUl9fX3JlbmFtZV9leHQpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA0ODgKKy8vIF9fX19fKF9fTlJfX19tcmVtYXBfZW5jcnlwdGVkKSwgICAgICAgICAgICAgICAgICAgICAgLy8gNDg5CiAjZW5kaWYKIC8vIF9fX19fKF9fTlJfTUFYU1lTQ0FMTCkKICAgIE1BQ1hfKF9fTlJfREFSV0lOX0ZBS0VfU0lHUkVUVVJOLCBGQUtFX1NJR1JFVFVSTikKQEAgLTk5ODYsMTcgKzEwMzg4LDI3IEBACiAgICBNQUNYXyhfX05SX3NlbWFwaG9yZV90aW1lZHdhaXRfc2lnbmFsX3RyYXAsIHNlbWFwaG9yZV90aW1lZHdhaXRfc2lnbmFsKSwgCiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFDSCg0MCkpLCAgICAvLyAtNDAKIAotI2lmIGRlZmluZWQoVkdBX3g4NikKLS8vIF9fX19fKF9fTlJfaW5pdF9wcm9jZXNzKSwgCi0gICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFDSCg0MikpLCAKLS8vIF9fX19fKF9fTlJfbWFwX2ZkKSwgCi0jZWxzZQogIyAgaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzkKICAgIE1BQ1hfKF9fTlJfa2VybmVscnBjX21hY2hfcG9ydF9ndWFyZF90cmFwLCBrZXJuZWxycGNfbWFjaF9wb3J0X2d1YXJkX3RyYXApLAogICAgTUFDWF8oX19OUl9rZXJuZWxycGNfbWFjaF9wb3J0X3VuZ3VhcmRfdHJhcCwga2VybmVscnBjX21hY2hfcG9ydF91bmd1YXJkX3RyYXApLAorIyAgZWxzZQorICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX01BQ0goNDEpKSwKKyAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDQyKSksCiAjICBlbmRpZgotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX01BQ0goNDMpKSwgCi0jZW5kaWYKKworIyAgaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEwCisgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFDSCg0MykpLAorIyAgZWxzZQorIyAgICBpZiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfOQorLy8gX19fX18oX19OUl9tYXBfZmQpLAorIyAgICBlbHNlCisjICAgICAgaWYgZGVmaW5lZChWR0FfeDg2KQorLy8gX19fX18oX19OUl9tYXBfZmQpLCAKKyMgICAgICBlbHNlCisgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfTUFDSCg0MykpLAorIyAgICAgIGVuZGlmCisjICAgIGVuZGlmCisjICBlbmRpZgogCiAvLyBfX19fXyhfX05SX3Rhc2tfbmFtZV9mb3JfcGlkKSwgCiAgICBNQUNYWShfX05SX3Rhc2tfZm9yX3BpZCwgdGFza19mb3JfcGlkKSwgCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtZ2VuZXJpYy5jIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWdlbmVyaWMuYwppbmRleCBmY2Y1Njg3Li5hYTYwZDY3IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtZ2VuZXJpYy5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1nZW5lcmljLmMKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzAsNyArMzAsNyBAQAogICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgogKi8KIAotI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisjaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIAogI2luY2x1ZGUgInB1Yl9jb3JlX2Jhc2ljcy5oIgogI2luY2x1ZGUgInB1Yl9jb3JlX3ZraS5oIgpAQCAtODcsMTEgKzg3LDExIEBACiAgICAgICBWR18ocmVnaXN0ZXJfc3RhY2spKHNlZy0+c3RhcnQsIHRzdC0+Y2xpZW50X3N0YWNrX2hpZ2hlc3RfYnl0ZSk7CiAKICAgICAgIGlmIChkZWJ1ZykKLQkgVkdfKHByaW50ZikoInRpZCAlZDogZ3Vlc3NlZCBjbGllbnQgc3RhY2sgcmFuZ2UgWyUjbHgtJSNseF1cbiIsCisJIFZHXyhwcmludGYpKCJ0aWQgJXU6IGd1ZXNzZWQgY2xpZW50IHN0YWNrIHJhbmdlIFslI2x4LSUjbHhdXG4iLAogCQkgICAgIHRzdC0+dGlkLCBzZWctPnN0YXJ0LCB0c3QtPmNsaWVudF9zdGFja19oaWdoZXN0X2J5dGUpOwogICAgfSBlbHNlIHsKICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLAotICAgICAgICAgICAgICAgICAgICIhPyBOZXcgdGhyZWFkICVkIHN0YXJ0cyB3aXRoIFNQKCUjbHgpIHVubWFwcGVkXG4iLAorICAgICAgICAgICAgICAgICAgICIhPyBOZXcgdGhyZWFkICV1IHN0YXJ0cyB3aXRoIFNQKCUjbHgpIHVubWFwcGVkXG4iLAogCQkgICB0c3QtPnRpZCwgc3ApOwogICAgICAgdHN0LT5jbGllbnRfc3RhY2tfaGlnaGVzdF9ieXRlID0gMDsKICAgICAgIHRzdC0+Y2xpZW50X3N0YWNrX3N6QiAgPSAwOwpAQCAtMTQ1LDcgKzE0NSw3IEBACiAgICBwcmVzZW50ZWQgd2l0aCBib2d1cyBjbGllbnQgYWRkcmVzc2VzLiAgSXMgbm90IHVzZWQgZm9yIGdlbmVyYXRpbmcKICAgIHVzZXItdmlzaWJsZSBlcnJvcnMuICovCiAKLUJvb2wgTUxfKHNhZmVfdG9fZGVyZWYpICggdm9pZCogc3RhcnQsIFNpemVUIHNpemUgKQorQm9vbCBNTF8oc2FmZV90b19kZXJlZikgKCBjb25zdCB2b2lkICpzdGFydCwgU2l6ZVQgc2l6ZSApCiB7CiAgICByZXR1cm4gVkdfKGFtX2lzX3ZhbGlkX2Zvcl9jbGllbnQpKCAoQWRkcilzdGFydCwgc2l6ZSwgVktJX1BST1RfUkVBRCApOwogfQpAQCAtMjg1LDcgKzI4NSw3IEBACiAgICBCb29sICAgICAgZl9tYXltb3ZlID0gdG9Cb29sKGZsYWdzICYgVktJX01SRU1BUF9NQVlNT1ZFKTsKIAogICAgaWYgKDApCi0gICAgICBWR18ocHJpbnRmKSgiZG9fcmVtYXAgKG9sZCAlI2x4ICVsZCkgKG5ldyAlI2x4ICVsZCkgJXMgJXNcbiIsCisgICAgICBWR18ocHJpbnRmKSgiZG9fcmVtYXAgKG9sZCAlI2x4ICVsdSkgKG5ldyAlI2x4ICVsdSkgJXMgJXNcbiIsCiAgICAgICAgICAgICAgICAgICBvbGRfYWRkcixvbGRfbGVuLG5ld19hZGRyLG5ld19sZW4sIAogICAgICAgICAgICAgICAgICAgZmxhZ3MgJiBWS0lfTVJFTUFQX01BWU1PVkUgPyAiTUFZTU9WRSIgOiAiIiwKICAgICAgICAgICAgICAgICAgIGZsYWdzICYgVktJX01SRU1BUF9GSVhFRCA/ICJGSVhFRCIgOiAiIik7CkBAIC01NDksOCArNTQ5LDcgQEAKIAogCiAvKiBOb3RlIHRoZSBmYWN0IHRoYXQgYSBmaWxlIGRlc2NyaXB0b3Igd2FzIGp1c3QgY2xvc2VkLiAqLwotc3RhdGljCi12b2lkIHJlY29yZF9mZF9jbG9zZShJbnQgZmQpCit2b2lkIE1MXyhyZWNvcmRfZmRfY2xvc2UpKEludCBmZCkKIHsKICAgIE9wZW5GZCAqaSA9IGFsbG9jYXRlZF9mZHM7CiAKQEAgLTYzNCw2ICs2MzMsMzIgQEAKICAgIE1MXyhyZWNvcmRfZmRfb3Blbl93aXRoX2dpdmVuX25hbWUpKHRpZCwgZmQsIE5VTEwpOwogfQogCisvLyBSZXR1cm4gaWYgYSBnaXZlbiBmaWxlIGRlc2NyaXB0b3IgaXMgYWxyZWFkeSByZWNvcmRlZC4KK0Jvb2wgTUxfKGZkX3JlY29yZGVkKShJbnQgZmQpCit7CisgICBPcGVuRmQgKmkgPSBhbGxvY2F0ZWRfZmRzOworICAgd2hpbGUgKGkpIHsKKyAgICAgIGlmIChpLT5mZCA9PSBmZCkKKyAgICAgICAgIHJldHVybiBUcnVlOworICAgICAgaSA9IGktPm5leHQ7CisgICB9CisgICByZXR1cm4gRmFsc2U7Cit9CisKKy8qIFJldHVybmVkIHN0cmluZyBtdXN0IG5vdCBiZSBtb2RpZmllZCBub3IgZnJlZSdkLiAqLworY29uc3QgSENoYXIgKk1MXyhmaW5kX2ZkX3JlY29yZGVkX2J5X2ZkKShJbnQgZmQpCit7CisgICBPcGVuRmQgKmkgPSBhbGxvY2F0ZWRfZmRzOworCisgICB3aGlsZSAoaSkgeworICAgICAgaWYgKGktPmZkID09IGZkKQorICAgICAgICAgcmV0dXJuIGktPnBhdGhuYW1lOworICAgICAgaSA9IGktPm5leHQ7CisgICB9CisKKyAgIHJldHVybiBOVUxMOworfQorCiBzdGF0aWMKIEhDaGFyICp1bml4X3RvX25hbWUoc3RydWN0IHZraV9zb2NrYWRkcl91biAqc2EsIFVJbnQgbGVuLCBIQ2hhciAqbmFtZSkKIHsKQEAgLTkwMSw2ICs5MjYsNDQgQEAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIGluaXRfcHJlb3BlbmVkX2Zkc193aXRob3V0X3Byb2Nfc2VsZl9mZCgpOwogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgSW50IHJldDsKKyAgIENoYXIgYnVmW1ZLSV9NQVhHRVRERU5UU19TSVpFXTsKKyAgIFN5c1JlcyBmOworCisgICBmID0gVkdfKG9wZW4pKCIvcHJvYy9zZWxmL2ZkIiwgVktJX09fUkRPTkxZLCAwKTsKKyAgIGlmIChzcl9pc0Vycm9yKGYpKSB7CisgICAgICBpbml0X3ByZW9wZW5lZF9mZHNfd2l0aG91dF9wcm9jX3NlbGZfZmQoKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgd2hpbGUgKChyZXQgPSBWR18oZ2V0ZGVudHM2NCkoc3JfUmVzKGYpLCAoc3RydWN0IHZraV9kaXJlbnQ2NCAqKSBidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoYnVmKSkpID4gMCkgeworICAgICAgSW50IGkgPSAwOworICAgICAgd2hpbGUgKGkgPCByZXQpIHsKKyAgICAgICAgIC8qIFByb2NlZWQgb25lIGVudHJ5LiAqLworICAgICAgICAgc3RydWN0IHZraV9kaXJlbnQ2NCAqZCA9IChzdHJ1Y3QgdmtpX2RpcmVudDY0ICopIChidWYgKyBpKTsKKyAgICAgICAgIGlmIChWR18oc3RyY21wKShkLT5kX25hbWUsICIuIikgJiYgVkdfKHN0cmNtcCkoZC0+ZF9uYW1lLCAiLi4iKSkgeworICAgICAgICAgICAgSENoYXIgKnM7CisgICAgICAgICAgICBJbnQgZm5vID0gVkdfKHN0cnRvbGwxMCkoZC0+ZF9uYW1lLCAmcyk7CisgICAgICAgICAgICBpZiAoKnMgPT0gJ1wwJykgeworICAgICAgICAgICAgICAgaWYgKGZubyAhPSBzcl9SZXMoZikpCisgICAgICAgICAgICAgICAgICBpZiAoVkdfKGNsb190cmFja19mZHMpKQorICAgICAgICAgICAgICAgICAgICAgTUxfKHJlY29yZF9mZF9vcGVuX25hbWVkKSgtMSwgZm5vKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCisgICAgICAgICAgICAgICAgICAgICAiV2FybmluZzogaW52YWxpZCBmaWxlIG5hbWUgaW4gL3Byb2Mvc2VsZi9mZDogJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICBkLT5kX25hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgfQorCisgICAgICAgICAvKiBNb3ZlIG9uIHRoZSBuZXh0IGVudHJ5LiAqLworICAgICAgICAgaSArPSBkLT5kX3JlY2xlbjsKKyAgICAgIH0KKyAgIH0KKworICAgVkdfKGNsb3NlKShzcl9SZXMoZikpOworCiAjZWxzZQogIyAgZXJyb3IgVW5rbm93biBPUwogI2VuZGlmCkBAIC0xMDQ2LDcgKzExMDksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3NvY2thZGRyICpzYSwgVUludCBzYWxlbiApCiB7CiAgICBIQ2hhciAqb3V0bXNnOwotICAgc3RydWN0IHZraV9zb2NrYWRkcl91biogIHN1biAgPSAoc3RydWN0IHZraV9zb2NrYWRkcl91biAqKXNhOworICAgc3RydWN0IHZraV9zb2NrYWRkcl91biogIHNhdW4gPSAoc3RydWN0IHZraV9zb2NrYWRkcl91biAqKXNhOwogICAgc3RydWN0IHZraV9zb2NrYWRkcl9pbiogIHNpbiAgPSAoc3RydWN0IHZraV9zb2NrYWRkcl9pbiAqKXNhOwogICAgc3RydWN0IHZraV9zb2NrYWRkcl9pbjYqIHNpbjYgPSAoc3RydWN0IHZraV9zb2NrYWRkcl9pbjYgKilzYTsKICMgIGlmZGVmIFZLSV9BRl9CTFVFVE9PVEgKQEAgLTEwNjksNyArMTEzMiw3IEBACiAgICAgICAgICAgICAgICAgICAKICAgICAgIGNhc2UgVktJX0FGX1VOSVg6CiAgICAgICAgICBWR18oc3ByaW50ZikgKCBvdXRtc2csIGRlc2NyaXB0aW9uLCAic3VuX3BhdGgiICk7Ci0gICAgICAgICBQUkVfTUVNX1JBU0NJSVooIG91dG1zZywgKEFkZHIpIHN1bi0+c3VuX3BhdGggKTsKKyAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWiggb3V0bXNnLCAoQWRkcikgc2F1bi0+c3VuX3BhdGggKTsKICAgICAgICAgIC8vIEdyUCBmaXhtZSBtYXggb2Ygc3VuX2xlbi0yPyB3aGF0IGFib3V0IG51bCBjaGFyPwogICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAKQEAgLTEyNTYsMTAgKzEzMTksMTAgQEAKICAgIGlmICghIFZHXyhhbV9leHRlbmRfaW50b19hZGphY2VudF9yZXNlcnZhdGlvbl9jbGllbnQpKCBhc2VnLT5zdGFydCwgZGVsdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm92ZXJmbG93KSkgewogICAgICAgaWYgKG92ZXJmbG93KQotICAgICAgICAgVkdfKHVtc2cpKCJicmsgc2VnbWVudCBvdmVyZmxvdyBpbiB0aHJlYWQgIyVkOiBjYW4ndCBncm93IHRvICUjbHhcbiIsCisgICAgICAgICBWR18odW1zZykoImJyayBzZWdtZW50IG92ZXJmbG93IGluIHRocmVhZCAjJXU6IGNhbid0IGdyb3cgdG8gJSNseFxuIiwKICAgICAgICAgICAgICAgICAgICB0aWQsIG5ld2Jya1ApOwogICAgICAgZWxzZQotICAgICAgICAgVkdfKHVtc2cpKCJDYW5ub3QgbWFwIG1lbW9yeSB0byBncm93IGJyayBzZWdtZW50IGluIHRocmVhZCAjJWQgIgorICAgICAgICAgVkdfKHVtc2cpKCJDYW5ub3QgbWFwIG1lbW9yeSB0byBncm93IGJyayBzZWdtZW50IGluIHRocmVhZCAjJXUgIgogICAgICAgICAgICAgICAgICAgICJ0byAlI2x4XG4iLCB0aWQsIG5ld2Jya1ApOwogICAgICAgZ290byBiYWQ7CiAgICB9CkBAIC0xNzE3LDggKzE3ODAsMTEgQEAKIAogICAgYXJnLmJ1ZiA9ICZidWY7CiAKLSMgIGlmZGVmIF9fTlJfc2VtY3RsCisjICBpZiBkZWZpbmVkKF9fTlJfc2VtY3RsKQogICAgcmVzID0gVkdfKGRvX3N5c2NhbGw0KShfX05SX3NlbWN0bCwgc2VtaWQsIDAsIFZLSV9JUENfU1RBVCwgKihVV29yZCAqKSZhcmcpOworIyAgZWxpZiBkZWZpbmVkKF9fTlJfc2Vtc3lzKSAvKiBTb2xhcmlzICovCisgICByZXMgPSBWR18oZG9fc3lzY2FsbDUpKF9fTlJfc2Vtc3lzLCBWS0lfU0VNQ1RMLCBzZW1pZCwgMCwgVktJX0lQQ19TVEFULAorICAgICAgICAgICAgICAgICAgICAgICAgICAqKFVXb3JkICopJmFyZyk7CiAjICBlbHNlCiAgICByZXMgPSBWR18oZG9fc3lzY2FsbDUpKF9fTlJfaXBjLCAzIC8qIElQQ09QX3NlbWN0bCAqLywgc2VtaWQsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLSV9JUENfU1RBVCwgKFVXb3JkKSZhcmcpOwpAQCAtMTc2MSw2ICsxODI3LDExIEBACiAjaWYgZGVmaW5lZChWS0lfU0VNX1NUQVQpCiAgICBjYXNlIFZLSV9TRU1fU1RBVHxWS0lfSVBDXzY0OgogI2VuZGlmCisjZW5kaWYKKyNpZiBkZWZpbmVkKFZLSV9JUENfU1RBVDY0KQorICAgY2FzZSBWS0lfSVBDX1NUQVQ2NDoKKyNlbmRpZgorI2lmIGRlZmluZWQoVktJX0lQQ182NCkgfHwgZGVmaW5lZChWS0lfSVBDX1NUQVQ2NCkKICAgICAgIFBSRV9NRU1fV1JJVEUoICJzZW1jdGwoSVBDX1NUQVQsIGFyZy5idWYpIiwKICAgICAgICAgICAgICAgICAgICAgIChBZGRyKWFyZy5idWYsIHNpemVvZihzdHJ1Y3QgdmtpX3NlbWlkNjRfZHMpICk7CiAgICAgICBicmVhazsKQEAgLTE3NzMsNiArMTg0NCwxMSBAQAogCiAjaWYgZGVmaW5lZChWS0lfSVBDXzY0KQogICAgY2FzZSBWS0lfSVBDX1NFVHxWS0lfSVBDXzY0OgorI2VuZGlmCisjaWYgZGVmaW5lZChWS0lfSVBDX1NFVDY0KQorICAgY2FzZSBWS0lfSVBDX1NFVDY0OgorI2VuZGlmCisjaWYgZGVmaW5lZChWS0lfSVBDNjQpIHx8IGRlZmluZWQoVktJX0lQQ19TRVQ2NCkKICAgICAgIFBSRV9NRU1fUkVBRCggInNlbWN0bChJUENfU0VULCBhcmcuYnVmKSIsCiAgICAgICAgICAgICAgICAgICAgIChBZGRyKWFyZy5idWYsIHNpemVvZihzdHJ1Y3QgdmtpX3NlbWlkNjRfZHMpICk7CiAgICAgICBicmVhazsKQEAgLTE4MjYsNiArMTkwMiwxMSBAQAogI2lmIGRlZmluZWQoVktJX0lQQ182NCkKICAgIGNhc2UgVktJX0lQQ19TVEFUfFZLSV9JUENfNjQ6CiAgICBjYXNlIFZLSV9TRU1fU1RBVHxWS0lfSVBDXzY0OgorI2VuZGlmCisjaWYgZGVmaW5lZChWS0lfSVBDX1NUQVQ2NCkKKyAgIGNhc2UgVktJX0lQQ19TVEFUNjQ6CisjZW5kaWYKKyNpZiBkZWZpbmVkKFZLSV9JUENfNjQpIHx8IGRlZmluZWQoVktJX0lQQ19TVEFUNjQpCiAgICAgICBQT1NUX01FTV9XUklURSggKEFkZHIpYXJnLmJ1Ziwgc2l6ZW9mKHN0cnVjdCB2a2lfc2VtaWQ2NF9kcykgKTsKICAgICAgIGJyZWFrOwogI2VuZGlmCkBAIC0xODQ3LDcgKzE5MjgsNyBAQAogc3RhdGljCiBTaXplVCBnZXRfc2htX3NpemUgKCBJbnQgc2htaWQgKQogewotI2lmZGVmIF9fTlJfc2htY3RsCisjaWYgZGVmaW5lZChfX05SX3NobWN0bCkKICMgIGlmZGVmIFZLSV9JUENfNjQKICAgIHN0cnVjdCB2a2lfc2htaWQ2NF9kcyBidWY7CiAjICAgIGlmIGRlZmluZWQoVkdQX2FtZDY0X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hcm02NF9saW51eCkKQEAgLTE4NjIsNiArMTk0MywxMCBAQAogICAgc3RydWN0IHZraV9zaG1pZF9kcyBidWY7CiAgICBTeXNSZXMgX19yZXMgPSBWR18oZG9fc3lzY2FsbDMpKF9fTlJfc2htY3RsLCBzaG1pZCwgVktJX0lQQ19TVEFULCAoVVdvcmQpJmJ1Zik7CiAjICBlbmRpZiAvKiBkZWYgVktJX0lQQ182NCAqLworI2VsaWYgZGVmaW5lZChfX05SX3NobXN5cykgLyogU29sYXJpcyAqLworICAgc3RydWN0IHZraV9zaG1pZF9kcyBidWY7CisgICBTeXNSZXMgX19yZXMgPSBWR18oZG9fc3lzY2FsbDQpKF9fTlJfc2htc3lzLCBWS0lfU0hNQ1RMLCBzaG1pZCwgVktJX0lQQ19TVEFULAorICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZCkmYnVmKTsKICNlbHNlCiAgICBzdHJ1Y3QgdmtpX3NobWlkX2RzIGJ1ZjsKICAgIFN5c1JlcyBfX3JlcyA9IFZHXyhkb19zeXNjYWxsNSkoX19OUl9pcGMsIDI0IC8qIElQQ09QX3NobWN0bCAqLywgc2htaWQsCkBAIC0yMTUwLDE1ICsyMjM1LDYgQEAKICAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKSggVktJX0VJTlZBTCApOwogICAgfQogCi0jICBpZiBkZWZpbmVkKFZLSV9NQVBfMzJCSVQpCi0gICAvKiBXZSBjYW4ndCBzdXBwb3J0IE1BUF8zMkJJVCAoYXQgbGVhc3QsIG5vdCB3aXRob3V0IHNpZ25pZmljYW50Ci0gICAgICBjb21wbGljYXRpb24pLCBhbmQgaXQncyByb3lhbGx5IHVucG9ydGFibGUsIHNvIGlmIHRoZSBjbGllbnQKLSAgICAgIGFza3MgZm9yIGl0LCBqdXN0IGZhaWwgaXQuICovCi0gICBpZiAoYXJnNCAmIFZLSV9NQVBfMzJCSVQpIHsKLSAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKSggVktJX0VOT01FTSApOwotICAgfQotIyAgZW5kaWYKLQogICAgLyogRmlndXJlIG91dCB3aGF0IGtpbmQgb2YgYWxsb2NhdGlvbiBjb25zdHJhaW50cyB0aGVyZSBhcmUKICAgICAgIChmaXhlZC9oaW50L2FueSksIGFuZCBhc2sgYXNwYWNlbSB3aGF0IHdlIHNob3VsZCBkby4gKi8KICAgIG1yZXEuc3RhcnQgPSBhcmcxOwpAQCAtMjE2Niw2ICsyMjQyLDE2IEBACiAgICBpZiAoYXJnNCAmIFZLSV9NQVBfRklYRUQpIHsKICAgICAgIG1yZXEucmtpbmQgPSBNRml4ZWQ7CiAgICB9IGVsc2UKKyNpZiBkZWZpbmVkKFZLSV9NQVBfQUxJR04pIC8qIFNvbGFyaXMgc3BlY2lmaWMgKi8KKyAgIGlmIChhcmc0ICYgVktJX01BUF9BTElHTikgeworICAgICAgbXJlcS5ya2luZCA9IE1BbGlnbjsKKyAgICAgIGlmIChtcmVxLnN0YXJ0ID09IDApIHsKKyAgICAgICAgIG1yZXEuc3RhcnQgPSBWS0lfUEFHRV9TSVpFOworICAgICAgfQorICAgICAgLyogVktJX01BUF9GSVhFRCBhbmQgVktJX01BUF9BTElHTiBkb24ndCBsaWtlIGVhY2ggb3RoZXIuICovCisgICAgICBhcmc0ICY9IH5WS0lfTUFQX0FMSUdOOworICAgfSBlbHNlCisjZW5kaWYKICAgIGlmIChhcmcxICE9IDApIHsKICAgICAgIG1yZXEucmtpbmQgPSBNSGludDsKICAgIH0gZWxzZSB7CkBAIC0yMTc5LDEyICsyMjY1LDM3IEBACiAgICAgICByZXR1cm4gVkdfKG1rX1N5c1Jlc19FcnJvcikoIFZLSV9FSU5WQUwgKTsKICAgIH0KIAorIyAgaWYgZGVmaW5lZChWS0lfTUFQXzMyQklUKQorICAgLyogTUFQXzMyQklUIGlzIHJveWFsbHkgdW5wb3J0YWJsZSwgc28gaWYgdGhlIGNsaWVudCBhc2tzIGZvciBpdCwgdHJ5IG91cgorICAgICAgYmVzdCB0byBtYWtlIGl0IHdvcmsgKGJ1dCB3aXRob3V0IGNvbXBsZXhpZnlpbmcgYXNwYWNlbWdyKS4KKyAgICAgIElmIHRoZSB1c2VyIHJlcXVlc3RlZCBNQVBfMzJCSVQsIHRoZSBtbWFwLWVkIHNwYWNlIG11c3QgYmUgaW4gdGhlCisgICAgICBmaXJzdCAyR0Igb2YgdGhlIGFkZHJlc3Mgc3BhY2UuIFNvLCByZXR1cm4gRU5PTUVNIGlmIGFzcGFjZW1ncgorICAgICAgYWR2aXNvcnkgaXMgYWJvdmUgdGhlIGZpcnN0IDJHQi4gSWYgTUFQX0ZJWEVEIGlzIGFsc28gcmVxdWVzdGVkLAorICAgICAgTUFQXzMyQklUIGhhcyB0byBiZSBpZ25vcmVkLgorICAgICAgQXNzdW1wdGlvbiBhYm91dCBhc3BhY2VtZ3IgYmVoYXZpb3VyOiBhc3BhY2VtZ3Igc2NhbnMgdGhlIGFkZHJlc3Mgc3BhY2UKKyAgICAgIGZyb20gbG93IGFkZHJlc3NlcyB0byBmaW5kIGEgZnJlZSBzZWdtZW50LiBObyBzcGVjaWFsIGVmZm9ydCBpcyBkb25lCisgICAgICB0byBrZWVwIHRoZSBmaXJzdCAyR0IgJ2ZyZWUnIGZvciB0aGlzIE1BUF8zMkJJVC4gU28sIHRoaXMgd2lsbCBvZnRlbgorICAgICAgZmFpbCBvbmNlIHRoZSBwcm9ncmFtIGhhcyBhbHJlYWR5IGFsbG9jYXRlZCBzaWduaWZpY2FudCBtZW1vcnkuICovCisgICBpZiAoKGFyZzQgJiBWS0lfTUFQXzMyQklUKSAmJiAhKGFyZzQgJiBWS0lfTUFQX0ZJWEVEKSkgeworICAgICAgaWYgKGFkdmlzZWQgKyBhcmcyID49IDB4ODAwMDAwMDApCisgICAgICAgICByZXR1cm4gVkdfKG1rX1N5c1Jlc19FcnJvcikoIFZLSV9FTk9NRU0gKTsKKyAgIH0KKyMgIGVuZGlmCisKICAgIC8qIE90aGVyd2lzZSB3ZSdyZSBPSyAoc28gZmFyKS4gIEluc3RhbGwgYXNwYWNlbSdzIGNob2ljZSBvZgogICAgICAgYWRkcmVzcywgYW5kIGxldCB0aGUgbW1hcCBnbyB0aHJvdWdoLiAgKi8KICAgIHNyZXMgPSBWR18oYW1fZG9fbW1hcF9OT19OT1RJRlkpKGFkdmlzZWQsIGFyZzIsIGFyZzMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc0IHwgVktJX01BUF9GSVhFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzUsIGFyZzYpOwogCisjICBpZiBkZWZpbmVkKFZLSV9NQVBfMzJCSVQpCisgICAvKiBObyByZWNvdmVyeSB0cmlhbCBpZiB0aGUgYWR2aXNvcnkgd2FzIG5vdCBhY2NlcHRlZC4gKi8KKyAgIGlmICgoYXJnNCAmIFZLSV9NQVBfMzJCSVQpICYmICEoYXJnNCAmIFZLSV9NQVBfRklYRUQpCisgICAgICAgJiYgc3JfaXNFcnJvcihzcmVzKSkgeworICAgICAgcmV0dXJuIFZHXyhta19TeXNSZXNfRXJyb3IpKCBWS0lfRU5PTUVNICk7CisgICB9CisjICBlbmRpZgorCiAgICAvKiBBIHJlZmluZW1lbnQ6IGl0IG1heSBiZSB0aGF0IHRoZSBrZXJuZWwgcmVmdXNlZCBhc3BhY2VtJ3MgY2hvaWNlCiAgICAgICBvZiBhZGRyZXNzLiAgSWYgd2Ugd2VyZSBvcmlnaW5hbGx5IGFza2VkIGZvciBhIGhpbnRlZCBtYXBwaW5nLAogICAgICAgdGhlcmUgaXMgc3RpbGwgYSBsYXN0IGNoYW5jZTogdHJ5IGFnYWluIGF0IGFueSBhZGRyZXNzLgpAQCAtMjIxMiw5ICsyMzIzLDkgQEAKICAgICAgIHRvIHVuZGVyc3RhbmQgc3BlY2lhbCBmaWxlIHN5c3RlbSBtb3VudCBvcHRpb25zKS4KICAgICAgIFNvLCBsZXQncyBqdXN0IHJlZG8gYW4gbW1hcCwgd2l0aG91dCBnaXZpbmcgYW55IGNvbnN0cmFpbnQgdG8KICAgICAgIHRoZSBrZXJuZWwuIElmIHRoYXQgc3VjY2VlZHMsIGNoZWNrIHdpdGggYXNwYWNlbSB0aGF0IHRoZSByZXR1cm5lZAotICAgICAgYWRkcmVzcyBpcyBhY2NlcHRhYmxlIChpLmUuIGlzIGZyZWUpLgorICAgICAgYWRkcmVzcyBpcyBhY2NlcHRhYmxlLgogICAgICAgVGhpcyB3aWxsIGdpdmUgYSBzaW1pbGFyIGVmZmVjdCBhcyBpZiB0aGUgdXNlciB3b3VsZCBoYXZlCi0gICAgICBzcGVjaWZpZWQgYSBNQVBfRklYRUQgYXQgdGhhdCBhZGRyZXNzLgorICAgICAgaGludGVkIHRoYXQgYWRkcmVzcy4KICAgICAgIFRoZSBhc3BhY2VtIHN0YXRlIHdpbGwgYmUgY29ycmVjdGx5IHVwZGF0ZWQgYWZ0ZXJ3YXJkcy4KICAgICAgIFdlIGhvd2V2ZXIgY2Fubm90IGRvIHRoaXMgbGFzdCByZWZpbmVtZW50IHdoZW4gdGhlIHVzZXIgYXNrZWQKICAgICAgIGZvciBhIGZpeGVkIG1hcHBpbmcsIGFzIHRoZSB1c2VyIGFza2VkIGEgc3BlY2lmaWMgYWRkcmVzcy4gKi8KQEAgLTIyMjYsOCArMjMzNywxOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzUsIGFyZzYpOwogICAgICAgaWYgKCFzcl9pc0Vycm9yKHNyZXMpKSB7Ci0gICAgICAgICB2Z19hc3NlcnQoVkdfKGFtX2NvdmVyZWRfYnlfc2luZ2xlX2ZyZWVfc2VnbWVudCkoKEFkZHIpc3JfUmVzKHNyZXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcyKSk7CisgICAgICAgICAvKiBUaGUga2VybmVsIGlzIHN1cHBvc2VkIHRvIGtub3cgd2hhdCBpdCBpcyBkb2luZywgYnV0IGxldCdzCisgICAgICAgICAgICBkbyBhIGxhc3Qgc2FuaXR5IGNoZWNrIGFueXdheSwgYXMgaWYgdGhlIGNob3NlbiBhZGRyZXNzIGhhZAorICAgICAgICAgICAgYmVlbiBpbml0aWFsbHkgaGludGVkIGJ5IHRoZSBjbGllbnQuIFRoZSB3aG9sZSBwb2ludCBvZiB0aGlzCisgICAgICAgICAgICBsYXN0IHRyeSB3YXMgdG8gYWxsb3cgbW1hcCBvZiBodWdlIHBhZ2VzIHRvIHN1Y2NlZWQgd2l0aG91dAorICAgICAgICAgICAgbWFraW5nIGFzcGFjZW0gdW5kZXJzdGFuZCB0aGVtLCBvbiB0aGUgb3RoZXIgaGFuZCB0aGUga2VybmVsCisgICAgICAgICAgICBkb2VzIG5vdCBrbm93IGFib3V0IHZhbGdyaW5kIHJlc2VydmF0aW9ucywgc28gdGhpcyBtYXBwaW5nCisgICAgICAgICAgICBjYW4gZW5kIHVwIGluIGZyZWUgc3BhY2UgYW5kIHJlc2VydmF0aW9ucy4gKi8KKyAgICAgICAgIG1yZXEuc3RhcnQgPSAoQWRkcilzcl9SZXMoc3Jlcyk7CisgICAgICAgICBtcmVxLmxlbiAgID0gYXJnMjsKKyAgICAgICAgIG1yZXEucmtpbmQgPSBNSGludDsKKyAgICAgICAgIGFkdmlzZWQgPSBWR18oYW1fZ2V0X2Fkdmlzb3J5KSggJm1yZXEsIFRydWUvKmNsaWVudCovLCAmbXJlcV9vayApOworICAgICAgICAgdmdfYXNzZXJ0KG1yZXFfb2sgJiYgYWR2aXNlZCA9PSBtcmVxLnN0YXJ0KTsKICAgICAgIH0KICAgIH0KIApAQCAtMjMxNyw3ICsyNDM4LDcgQEAKIHsKICAgIFRocmVhZFN0YXRlKiB0c3Q7CiAgICAvKiBzaW1wbGU7IGp1c3QgbWFrZSB0aGlzIHRocmVhZCBleGl0ICovCi0gICBQUklOVCgiZXhpdCggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJleGl0KCAlbGQgKSIsIFNBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEodm9pZCwgImV4aXQiLCBpbnQsIHN0YXR1cyk7CiAgICB0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOwogICAgLyogU2V0IHRoZSB0aHJlYWQncyBzdGF0dXMgdG8gYmUgZXhpdGluZywgdGhlbiBjbGFpbSB0aGF0IHRoZQpAQCAtMjMzNywyOCArMjQ1OCwyOCBAQAogCiBQUkUoc3lzX2lvcGwpCiB7Ci0gICBQUklOVCgic3lzX2lvcGwgKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInN5c19pb3BsICggJWx1ICkiLCBBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEobG9uZywgImlvcGwiLCB1bnNpZ25lZCBsb25nLCBsZXZlbCk7CiB9CiAKIFBSRShzeXNfZnN5bmMpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfZnN5bmMgKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInN5c19mc3luYyAoICVsdSApIiwgQVJHMSk7CiAgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJmc3luYyIsIHVuc2lnbmVkIGludCwgZmQpOwogfQogCiBQUkUoc3lzX2ZkYXRhc3luYykKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19mZGF0YXN5bmMgKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInN5c19mZGF0YXN5bmMgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAiZmRhdGFzeW5jIiwgdW5zaWduZWQgaW50LCBmZCk7CiB9CiAKIFBSRShzeXNfbXN5bmMpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfbXN5bmMgKCAlI2x4LCAlbGx1LCAlbGQgKSIsIEFSRzEsKFVMb25nKUFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX21zeW5jICggJSNseCwgJWx1LCAlI2x4ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgIm1zeW5jIiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgc3RhcnQsIHZraV9zaXplX3QsIGxlbmd0aCwgaW50LCBmbGFncyk7CiAgICBQUkVfTUVNX1JFQUQoICJtc3luYyhzdGFydCkiLCBBUkcxLCBBUkcyICk7CkBAIC0yMzc5LDcgKzI1MDAsOCBAQAogICAgc3RydWN0IHZraV9wbXNnX3N0cmJ1ZiAqY3RybDsKICAgIHN0cnVjdCB2a2lfcG1zZ19zdHJidWYgKmRhdGE7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfZ2V0cG1zZyAoICVsZCwgJSNseCwgJSNseCwgJSNseCwgJSNseCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgIFBSSU5UKCJzeXNfZ2V0cG1zZyAoICVsZCwgJSNseCwgJSNseCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsCisgICAgICAgICBBUkc0LCBBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUoaW50LCAiZ2V0cG1zZyIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIHN0cnVjdCBzdHJidWYgKiwgY3RybCwgc3RydWN0IHN0cmJ1ZiAqLCBkYXRhLCAKICAgICAgICAgICAgICAgICAgaW50ICosIGJhbmRwLCBpbnQgKiwgZmxhZ3NwKTsKQEAgLTI0MTUsNyArMjUzNyw4IEBACiAgICBzdHJ1Y3QgdmtpX3Btc2dfc3RyYnVmICpjdHJsOwogICAgc3RydWN0IHZraV9wbXNnX3N0cmJ1ZiAqZGF0YTsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19wdXRwbXNnICggJWxkLCAlI2x4LCAlI2x4LCAlbGQsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgIFBSSU5UKCJzeXNfcHV0cG1zZyAoICVsZCwgJSNseCwgJSNseCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBBUkczLAorICAgICAgICAgU0FSRzQsIFNBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUoaW50LCAicHV0cG1zZyIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIHN0cnVjdCBzdHJidWYgKiwgY3RybCwgc3RydWN0IHN0cmJ1ZiAqLCBkYXRhLCAKICAgICAgICAgICAgICAgICAgaW50LCBiYW5kLCBpbnQsIGZsYWdzKTsKQEAgLTI0MzAsNyArMjU1Myw3IEBACiBQUkUoc3lzX2dldGl0aW1lcikKIHsKICAgIHN0cnVjdCB2a2lfaXRpbWVydmFsICp2YWx1ZSA9IChzdHJ1Y3QgdmtpX2l0aW1lcnZhbCopQVJHMjsKLSAgIFBSSU5UKCJzeXNfZ2V0aXRpbWVyICggJWxkLCAlI2x4ICkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSSU5UKCJzeXNfZ2V0aXRpbWVyICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJnZXRpdGltZXIiLCBpbnQsIHdoaWNoLCBzdHJ1Y3QgaXRpbWVydmFsICosIHZhbHVlKTsKIAogICAgUFJFX3RpbWV2YWxfV1JJVEUoICJnZXRpdGltZXIoJnZhbHVlLT5pdF9pbnRlcnZhbCkiLCAmKHZhbHVlLT5pdF9pbnRlcnZhbCkpOwpAQCAtMjQ0OCw3ICsyNTcxLDcgQEAKIAogUFJFKHN5c19zZXRpdGltZXIpCiB7Ci0gICBQUklOVCgic3lzX3NldGl0aW1lciAoICVsZCwgJSNseCwgJSNseCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19zZXRpdGltZXIgKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNldGl0aW1lciIsIAogICAgICAgICAgICAgICAgICBpbnQsIHdoaWNoLAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXRpbWVydmFsICosIHZhbHVlLCBzdHJ1Y3QgaXRpbWVydmFsICosIG92YWx1ZSk7CkBAIC0yNDg3LDcgKzI2MTAsNyBAQAogUFJFKHN5c19tYWR2aXNlKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX21hZHZpc2UgKCAlI2x4LCAlbGx1LCAlbGQgKSIsIEFSRzEsKFVMb25nKUFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX21hZHZpc2UgKCAlI2x4LCAlbHUsICVsZCApIiwgQVJHMSwgQVJHMiwgU0FSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAibWFkdmlzZSIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIHN0YXJ0LCB2a2lfc2l6ZV90LCBsZW5ndGgsIGludCwgYWR2aWNlKTsKIH0KQEAgLTI0OTgsMTUgKzI2MjEsMTUgQEAKICAgIC8vIE5iOiB0aGlzIGlzIGRpZmZlcmVudCB0byB0aGUgZ2xpYmMgdmVyc2lvbiBkZXNjcmliZWQgaW4gdGhlIG1hbiBwYWdlcywKICAgIC8vIHdoaWNoIGxhY2tzIHRoZSBmaWZ0aCAnbmV3X2FkZHJlc3MnIGFyZ3VtZW50LgogICAgaWYgKEFSRzQgJiBWS0lfTVJFTUFQX0ZJWEVEKSB7Ci0gICAgICBQUklOVCgic3lzX21yZW1hcCAoICUjbHgsICVsbHUsICVsZCwgMHglbHgsICUjbHggKSIsCi0gICAgICAgICAgICBBUkcxLCAoVUxvbmcpQVJHMiwgQVJHMywgQVJHNCwgQVJHNSk7CisgICAgICBQUklOVCgic3lzX21yZW1hcCAoICUjbHgsICVsdSwgJWx1LCAlI2x4LCAlI2x4ICkiLAorICAgICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSk7CiAgICAgICBQUkVfUkVHX1JFQUQ1KHVuc2lnbmVkIGxvbmcsICJtcmVtYXAiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBvbGRfYWRkciwgdW5zaWduZWQgbG9uZywgb2xkX3NpemUsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIG5ld19zaXplLCB1bnNpZ25lZCBsb25nLCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgbmV3X2FkZHIpOwogICAgfSBlbHNlIHsKLSAgICAgIFBSSU5UKCJzeXNfbXJlbWFwICggJSNseCwgJWxsdSwgJWxkLCAweCVseCApIiwKLSAgICAgICAgICAgIEFSRzEsIChVTG9uZylBUkcyLCBBUkczLCBBUkc0KTsKKyAgICAgIFBSSU5UKCJzeXNfbXJlbWFwICggJSNseCwgJWx1LCAlbHUsIDB4JWx4ICkiLAorICAgICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICAgICBQUkVfUkVHX1JFQUQ0KHVuc2lnbmVkIGxvbmcsICJtcmVtYXAiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBvbGRfYWRkciwgdW5zaWduZWQgbG9uZywgb2xkX3NpemUsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIG5ld19zaXplLCB1bnNpZ25lZCBsb25nLCBmbGFncyk7CkBAIC0yNTE5LDIxICsyNjQyLDIxIEBACiAKIFBSRShzeXNfbmljZSkKIHsKLSAgIFBSSU5UKCJzeXNfbmljZSAoICVsZCApIiwgQVJHMSk7CisgICBQUklOVCgic3lzX25pY2UgKCAlbGQgKSIsIFNBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEobG9uZywgIm5pY2UiLCBpbnQsIGluYyk7CiB9CiAKIFBSRShzeXNfbWxvY2spCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfbWxvY2sgKCAlI2x4LCAlbGx1ICkiLCBBUkcxLCAoVUxvbmcpQVJHMik7CisgICBQUklOVCgic3lzX21sb2NrICggJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgIm1sb2NrIiwgdW5zaWduZWQgbG9uZywgYWRkciwgdmtpX3NpemVfdCwgbGVuKTsKIH0KIAogUFJFKHN5c19tdW5sb2NrKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX211bmxvY2sgKCAlI2x4LCAlbGx1ICkiLCBBUkcxLCAoVUxvbmcpQVJHMik7CisgICBQUklOVCgic3lzX211bmxvY2sgKCAlI2x4LCAlbHUgKSIsIEFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAibXVubG9jayIsIHVuc2lnbmVkIGxvbmcsIGFkZHIsIHZraV9zaXplX3QsIGxlbik7CiB9CiAKQEAgLTI1NDYsMTMgKzI2NjksMTMgQEAKIAogUFJFKHN5c19zZXRwcmlvcml0eSkKIHsKLSAgIFBSSU5UKCJzeXNfc2V0cHJpb3JpdHkgKCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSSU5UKCJzeXNfc2V0cHJpb3JpdHkgKCAlbGQsICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNldHByaW9yaXR5IiwgaW50LCB3aGljaCwgaW50LCB3aG8sIGludCwgcHJpbyk7CiB9CiAKIFBSRShzeXNfZ2V0cHJpb3JpdHkpCiB7Ci0gICBQUklOVCgic3lzX2dldHByaW9yaXR5ICggJWxkLCAlbGQgKSIsIEFSRzEsIEFSRzIpOworICAgUFJJTlQoInN5c19nZXRwcmlvcml0eSAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiZ2V0cHJpb3JpdHkiLCBpbnQsIHdoaWNoLCBpbnQsIHdobyk7CiB9CiAKQEAgLTI1NjAsMTQgKzI2ODMsMTQgQEAKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwogI2lmIFZHX1dPUkRTSVpFID09IDQKLSAgIFBSSU5UKCJzeXNfcHdyaXRlNjQgKCAlbGQsICUjbHgsICVsbHUsICVsbGQgKSIsCi0gICAgICAgICBBUkcxLCBBUkcyLCAoVUxvbmcpQVJHMywgTUVSR0U2NChBUkc0LEFSRzUpKTsKKyAgIFBSSU5UKCJzeXNfcHdyaXRlNjQgKCAlbHUsICUjbHgsICVsdSwgJWxsZCApIiwKKyAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIChMb25nKU1FUkdFNjQoQVJHNCxBUkc1KSk7CiAgICBQUkVfUkVHX1JFQUQ1KHNzaXplX3QsICJwd3JpdGU2NCIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIGNvbnN0IGNoYXIgKiwgYnVmLCB2a2lfc2l6ZV90LCBjb3VudCwKICAgICAgICAgICAgICAgICAgdmtpX3UzMiwgTUVSR0U2NF9GSVJTVChvZmZzZXQpLCB2a2lfdTMyLCBNRVJHRTY0X1NFQ09ORChvZmZzZXQpKTsKICNlbGlmIFZHX1dPUkRTSVpFID09IDgKLSAgIFBSSU5UKCJzeXNfcHdyaXRlNjQgKCAlbGQsICUjbHgsICVsbHUsICVsbGQgKSIsCi0gICAgICAgICBBUkcxLCBBUkcyLCAoVUxvbmcpQVJHMywgKExvbmcpQVJHNCk7CisgICBQUklOVCgic3lzX3B3cml0ZTY0ICggJWx1LCAlI2x4LCAlbHUsICVsZCApIiwKKyAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQoc3NpemVfdCwgInB3cml0ZTY0IiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgY29uc3QgY2hhciAqLCBidWYsIHZraV9zaXplX3QsIGNvdW50LAogICAgICAgICAgICAgICAgICBXb3JkLCBvZmZzZXQpOwpAQCAtMjU4Nyw3ICsyNzEwLDcgQEAKIFBSRShzeXNfZnN0YXRmcykKIHsKICAgIEZVU0VfQ09NUEFUSUJMRV9NQVlfQkxPQ0soKTsKLSAgIFBSSU5UKCJzeXNfZnN0YXRmcyAoICVsZCwgJSNseCApIixBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19mc3RhdGZzICggJWx1LCAlI2x4ICkiLCBBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZzdGF0ZnMiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCBzdHJ1Y3Qgc3RhdGZzICosIGJ1Zik7CiAgICBQUkVfTUVNX1dSSVRFKCAiZnN0YXRmcyhidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdGZzKSApOwpAQCAtMjYwMSw3ICsyNzI0LDcgQEAKIFBSRShzeXNfZnN0YXRmczY0KQogewogICAgRlVTRV9DT01QQVRJQkxFX01BWV9CTE9DSygpOwotICAgUFJJTlQoInN5c19mc3RhdGZzNjQgKCAlbGQsICVsbHUsICUjbHggKSIsQVJHMSwoVUxvbmcpQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfZnN0YXRmczY0ICggJWx1LCAlbHUsICUjbHggKSIsIEFSRzEsIEFSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZnN0YXRmczY0IiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdmtpX3NpemVfdCwgc2l6ZSwgc3RydWN0IHN0YXRmczY0ICosIGJ1Zik7CiAgICBQUkVfTUVNX1dSSVRFKCAiZnN0YXRmczY0KGJ1ZikiLCBBUkczLCBBUkcyICk7CkBAIC0yNjEzLDcgKzI3MzYsNyBAQAogCiBQUkUoc3lzX2dldHNpZCkKIHsKLSAgIFBSSU5UKCJzeXNfZ2V0c2lkICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfZ2V0c2lkICggJWxkICkiLCBTQVJHMSk7CiAgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJnZXRzaWQiLCB2a2lfcGlkX3QsIHBpZCk7CiB9CiAKQEAgLTI2MjEsMTQgKzI3NDQsMTQgQEAKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwogI2lmIFZHX1dPUkRTSVpFID09IDQKLSAgIFBSSU5UKCJzeXNfcHJlYWQ2NCAoICVsZCwgJSNseCwgJWxsdSwgJWxsZCApIiwKLSAgICAgICAgIEFSRzEsIEFSRzIsIChVTG9uZylBUkczLCBNRVJHRTY0KEFSRzQsQVJHNSkpOworICAgUFJJTlQoInN5c19wcmVhZDY0ICggJWx1LCAlI2x4LCAlbHUsICVsbGQgKSIsCisgICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCAoTG9uZylNRVJHRTY0KEFSRzQsQVJHNSkpOwogICAgUFJFX1JFR19SRUFENShzc2l6ZV90LCAicHJlYWQ2NCIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIGNoYXIgKiwgYnVmLCB2a2lfc2l6ZV90LCBjb3VudCwKICAgICAgICAgICAgICAgICAgdmtpX3UzMiwgTUVSR0U2NF9GSVJTVChvZmZzZXQpLCB2a2lfdTMyLCBNRVJHRTY0X1NFQ09ORChvZmZzZXQpKTsKICNlbGlmIFZHX1dPUkRTSVpFID09IDgKLSAgIFBSSU5UKCJzeXNfcHJlYWQ2NCAoICVsZCwgJSNseCwgJWxsdSwgJWxsZCApIiwKLSAgICAgICAgIEFSRzEsIEFSRzIsIChVTG9uZylBUkczLCAoTG9uZylBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcHJlYWQ2NCAoICVsdSwgJSNseCwgJWx1LCAlbGQgKSIsCisgICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBTQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KHNzaXplX3QsICJwcmVhZDY0IiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgY2hhciAqLCBidWYsIHZraV9zaXplX3QsIGNvdW50LAogICAgICAgICAgICAgICAgICBXb3JkLCBvZmZzZXQpOwpAQCAtMjY0OCw3ICsyNzcxLDcgQEAKIFBSRShzeXNfbWtub2QpCiB7CiAgICBGVVNFX0NPTVBBVElCTEVfTUFZX0JMT0NLKCk7Ci0gICBQUklOVCgic3lzX21rbm9kICggJSNseCglcyksIDB4JWx4LCAweCVseCApIiwgQVJHMSwgKGNoYXIqKUFSRzEsIEFSRzIsIEFSRzMgKTsKKyAgIFBSSU5UKCJzeXNfbWtub2QgKCAlI2x4KCVzKSwgJSNseCwgJSNseCApIiwgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyLCBBUkczICk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJta25vZCIsCiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgcGF0aG5hbWUsIGludCwgbW9kZSwgdW5zaWduZWQsIGRldik7CiAgICBQUkVfTUVNX1JBU0NJSVooICJta25vZChwYXRobmFtZSkiLCBBUkcxICk7CkBAIC0yNjU3LDEyICsyNzgwLDEyIEBACiBQUkUoc3lzX2Zsb2NrKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX2Zsb2NrICggJWxkLCAlbGQgKSIsIEFSRzEsIEFSRzIgKTsKKyAgIFBSSU5UKCJzeXNfZmxvY2sgKCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMiApOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiZmxvY2siLCB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIG9wZXJhdGlvbik7CiB9CiAKIC8vIFByZV9yZWFkIGEgY2hhcioqIGFyZ3VtZW50Lgotc3RhdGljIHZvaWQgcHJlX2FyZ3ZfZW52cChBZGRyIGEsIFRocmVhZElkIHRpZCwgY29uc3QgSENoYXIqIHMxLCBjb25zdCBIQ2hhciogczIpCit2b2lkIE1MXyhwcmVfYXJndl9lbnZwKShBZGRyIGEsIFRocmVhZElkIHRpZCwgY29uc3QgSENoYXIgKnMxLCBjb25zdCBIQ2hhciAqczIpCiB7CiAgICB3aGlsZSAoVHJ1ZSkgewogICAgICAgQWRkciBhX2RlcmVmOwpAQCAtMjcxMyw5ICsyODM2LDkgQEAKICAgICAgICAgICAgICAgICAgY2hhciAqLCBmaWxlbmFtZSwgY2hhciAqKiwgYXJndiwgY2hhciAqKiwgZW52cCk7CiAgICBQUkVfTUVNX1JBU0NJSVooICJleGVjdmUoZmlsZW5hbWUpIiwgQVJHMSApOwogICAgaWYgKEFSRzIgIT0gMCkKLSAgICAgIHByZV9hcmd2X2VudnAoIEFSRzIsIHRpZCwgImV4ZWN2ZShhcmd2KSIsICJleGVjdmUoYXJndltpXSkiICk7CisgICAgICBNTF8ocHJlX2FyZ3ZfZW52cCkoIEFSRzIsIHRpZCwgImV4ZWN2ZShhcmd2KSIsICJleGVjdmUoYXJndltpXSkiICk7CiAgICBpZiAoQVJHMyAhPSAwKQotICAgICAgcHJlX2FyZ3ZfZW52cCggQVJHMywgdGlkLCAiZXhlY3ZlKGVudnApIiwgImV4ZWN2ZShlbnZwW2ldKSIgKTsKKyAgICAgIE1MXyhwcmVfYXJndl9lbnZwKSggQVJHMywgdGlkLCAiZXhlY3ZlKGVudnApIiwgImV4ZWN2ZShlbnZwW2ldKSIgKTsKIAogICAgdmdfYXNzZXJ0KFZHXyhpc192YWxpZF90aWQpKHRpZCkpOwogICAgdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKQEAgLTI4MzQsNyArMjk1Nyw3IEBACiAgICB9IGVsc2UgewogICAgICAgZW52cCA9IFZHXyhlbnZfY2xvbmUpKCAoSENoYXIqKilBUkczICk7CiAgICAgICBpZiAoZW52cCA9PSBOVUxMKSBnb3RvIGhvc2VkOwotICAgICAgVkdfKGVudl9yZW1vdmVfdmFsZ3JpbmRfZW52X3N0dWZmKSggZW52cCApOworICAgICAgVkdfKGVudl9yZW1vdmVfdmFsZ3JpbmRfZW52X3N0dWZmKSggZW52cCwgVHJ1ZSAvKnJvX3N0cmluZ3MqLywgTlVMTCApOwogICAgfQogCiAgICBpZiAodHJhY2VfdGhpc19jaGlsZCkgewpAQCAtMjk1Nyw4ICszMDgwLDggQEAKICAgICAgIHRvbyBtdWNoIG9mIGEgbWVzcyB0byBjb250aW51ZSwgc28gd2UgaGF2ZSB0byBhYm9ydC4gKi8KICAgaG9zZWQ6CiAgICB2Z19hc3NlcnQoRkFJTFVSRSk7Ci0gICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywgImV4ZWN2ZSglI2x4KCVzKSwgJSNseCwgJSNseCkgZmFpbGVkLCBlcnJubyAlbGRcbiIsCi0gICAgICAgICAgICAgICAgQVJHMSwgKGNoYXIqKUFSRzEsIEFSRzIsIEFSRzMsIEVSUik7CisgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywgImV4ZWN2ZSglI2x4KCVzKSwgJSNseCwgJSNseCkgZmFpbGVkLCBlcnJubyAlbHVcbiIsCisgICAgICAgICAgICAgICAgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyLCBBUkczLCBFUlIpOwogICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJFWEVDIEZBSUxFRDogSSBjYW4ndCByZWNvdmVyIGZyb20gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGVjdmUoKSBmYWlsaW5nLCBzbyBJJ20gZHlpbmcuXG4iKTsKICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiQWRkIG1vcmUgc3RyaW5nZW50IHRlc3RzIGluIFBSRShzeXNfZXhlY3ZlKSwgIgpAQCAtMjk2OCwxNCArMzA5MSwxNCBAQAogCiBQUkUoc3lzX2FjY2VzcykKIHsKLSAgIFBSSU5UKCJzeXNfYWNjZXNzICggJSNseCglcyksICVsZCApIiwgQVJHMSwoY2hhciopQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfYWNjZXNzICggJSNseCglcyksICVsZCApIiwgQVJHMSwgKEhDaGFyKilBUkcxLCBTQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJhY2Nlc3MiLCBjb25zdCBjaGFyICosIHBhdGhuYW1lLCBpbnQsIG1vZGUpOwogICAgUFJFX01FTV9SQVNDSUlaKCAiYWNjZXNzKHBhdGhuYW1lKSIsIEFSRzEgKTsKIH0KIAogUFJFKHN5c19hbGFybSkKIHsKLSAgIFBSSU5UKCJzeXNfYWxhcm0gKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInN5c19hbGFybSAoICVsdSApIiwgQVJHMSk7CiAgICBQUkVfUkVHX1JFQUQxKHVuc2lnbmVkIGxvbmcsICJhbGFybSIsIHVuc2lnbmVkIGludCwgc2Vjb25kcyk7CiB9CiAKQEAgLTMwMzQsNyArMzE1Nyw3IEBACiBQUkUoc3lzX2NobW9kKQogewogICAgRlVTRV9DT01QQVRJQkxFX01BWV9CTE9DSygpOwotICAgUFJJTlQoInN5c19jaG1vZCAoICUjbHgoJXMpLCAlbGQgKSIsIEFSRzEsKGNoYXIqKUFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX2NobW9kICggJSNseCglcyksICVsdSApIiwgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImNobW9kIiwgY29uc3QgY2hhciAqLCBwYXRoLCB2a2lfbW9kZV90LCBtb2RlKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggImNobW9kKHBhdGgpIiwgQVJHMSApOwogfQpAQCAtMzA2MCw3ICszMTgzLDcgQEAKIFBSRShzeXNfY2xvc2UpCiB7CiAgICBGVVNFX0NPTVBBVElCTEVfTUFZX0JMT0NLKCk7Ci0gICBQUklOVCgic3lzX2Nsb3NlICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfY2xvc2UgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAiY2xvc2UiLCB1bnNpZ25lZCBpbnQsIGZkKTsKIAogICAgLyogRGV0ZWN0IGFuZCBuZWdhdGUgYXR0ZW1wdHMgYnkgdGhlIGNsaWVudCB0byBjbG9zZSBWYWxncmluZCdzIGxvZyBmZCAqLwpAQCAtMzA3MywxMiArMzE5NiwxMiBAQAogCiBQT1NUKHN5c19jbG9zZSkKIHsKLSAgIGlmIChWR18oY2xvX3RyYWNrX2ZkcykpIHJlY29yZF9mZF9jbG9zZShBUkcxKTsKKyAgIGlmIChWR18oY2xvX3RyYWNrX2ZkcykpIE1MXyhyZWNvcmRfZmRfY2xvc2UpKEFSRzEpOwogfQogCiBQUkUoc3lzX2R1cCkKIHsKLSAgIFBSSU5UKCJzeXNfZHVwICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfZHVwICggJWx1ICkiLCBBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEobG9uZywgImR1cCIsIHVuc2lnbmVkIGludCwgb2xkZmQpOwogfQogCkBAIC0zMDk2LDcgKzMyMTksNyBAQAogCiBQUkUoc3lzX2R1cDIpCiB7Ci0gICBQUklOVCgic3lzX2R1cDIgKCAlbGQsICVsZCApIiwgQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfZHVwMiAoICVsdSwgJWx1ICkiLCBBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImR1cDIiLCB1bnNpZ25lZCBpbnQsIG9sZGZkLCB1bnNpZ25lZCBpbnQsIG5ld2ZkKTsKICAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzIsICJkdXAyIiwgdGlkLCBUcnVlKSkKICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZSggVktJX0VCQURGICk7CkBAIC0zMTEyLDE0ICszMjM1LDE0IEBACiBQUkUoc3lzX2ZjaGRpcikKIHsKICAgIEZVU0VfQ09NUEFUSUJMRV9NQVlfQkxPQ0soKTsKLSAgIFBSSU5UKCJzeXNfZmNoZGlyICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfZmNoZGlyICggJWx1ICkiLCBBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEobG9uZywgImZjaGRpciIsIHVuc2lnbmVkIGludCwgZmQpOwogfQogCiBQUkUoc3lzX2ZjaG93bikKIHsKICAgIEZVU0VfQ09NUEFUSUJMRV9NQVlfQkxPQ0soKTsKLSAgIFBSSU5UKCJzeXNfZmNob3duICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19mY2hvd24gKCAlbHUsICVsdSwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjaG93biIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHZraV91aWRfdCwgb3duZXIsIHZraV9naWRfdCwgZ3JvdXApOwogfQpAQCAtMzEyNywxNCArMzI1MCwxNCBAQAogUFJFKHN5c19mY2htb2QpCiB7CiAgICBGVVNFX0NPTVBBVElCTEVfTUFZX0JMT0NLKCk7Ci0gICBQUklOVCgic3lzX2ZjaG1vZCAoICVsZCwgJWxkICkiLCBBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19mY2htb2QgKCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJmY2htb2QiLCB1bnNpZ25lZCBpbnQsIGZpbGRlcywgdmtpX21vZGVfdCwgbW9kZSk7CiB9CiAKIFBSRShzeXNfbmV3ZnN0YXQpCiB7CiAgICBGVVNFX0NPTVBBVElCTEVfTUFZX0JMT0NLKCk7Ci0gICBQUklOVCgic3lzX25ld2ZzdGF0ICggJWxkLCAlI2x4ICkiLCBBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19uZXdmc3RhdCAoICVsdSwgJSNseCApIiwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJmc3RhdCIsIHVuc2lnbmVkIGludCwgZmQsIHN0cnVjdCBzdGF0ICosIGJ1Zik7CiAgICBQUkVfTUVNX1dSSVRFKCAiZnN0YXQoYnVmKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQpICk7CiB9CkBAIC0zMTQ0LDYgKzMyNjcsNyBAQAogICAgUE9TVF9NRU1fV1JJVEUoIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQpICk7CiB9CiAKKyNpZiAhZGVmaW5lZChWR09fc29sYXJpcykKIHN0YXRpYyB2a2lfc2lnc2V0X3QgZm9ya19zYXZlZF9tYXNrOwogCiAvLyBJbiBMaW51eCwgdGhlIHN5c19mb3JrKCkgZnVuY3Rpb24gdmFyaWVzIGFjcm9zcyBhcmNoaXRlY3R1cmVzLCBidXQgd2UKQEAgLTMxNjIsNiArMzI4Niw4IEBACiAgICBWR18oc2lnZmlsbHNldCkoJm1hc2spOwogICAgVkdfKHNpZ3Byb2NtYXNrKShWS0lfU0lHX1NFVE1BU0ssICZtYXNrLCAmZm9ya19zYXZlZF9tYXNrKTsKIAorICAgVkdfKGRvX2F0Zm9ya19wcmUpKHRpZCk7CisKICAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMoIFZHXyhkb19zeXNjYWxsMCkoX19OUl9mb3JrKSApOwogCiAgICBpZiAoIVNVQ0NFU1MpIHJldHVybjsKQEAgLTMxNzgsOCArMzMwNCw2IEBACiAjICBlcnJvciBVbmtub3duIE9TCiAjZW5kaWYKIAotICAgVkdfKGRvX2F0Zm9ya19wcmUpKHRpZCk7Ci0KICAgIGlmIChpc19jaGlsZCkgewogICAgICAgVkdfKGRvX2F0Zm9ya19jaGlsZCkodGlkKTsKIApAQCAtMzIwNiwxOCArMzMzMCwxOSBAQAogICAgICAgVkdfKHNpZ3Byb2NtYXNrKShWS0lfU0lHX1NFVE1BU0ssICZmb3JrX3NhdmVkX21hc2ssIE5VTEwpOwogICAgfQogfQorI2VuZGlmIC8vICFkZWZpbmVkKFZHT19zb2xhcmlzKQogCiBQUkUoc3lzX2Z0cnVuY2F0ZSkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19mdHJ1bmNhdGUgKCAlbGQsICVsZCApIiwgQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfZnRydW5jYXRlICggJWx1LCAlbHUgKSIsIEFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiZnRydW5jYXRlIiwgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgbG9uZywgbGVuZ3RoKTsKIH0KIAogUFJFKHN5c190cnVuY2F0ZSkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c190cnVuY2F0ZSAoICUjbHgoJXMpLCAlbGQgKSIsIEFSRzEsKGNoYXIqKUFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX3RydW5jYXRlICggJSNseCglcyksICVsdSApIiwgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgInRydW5jYXRlIiwgCiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgcGF0aCwgdW5zaWduZWQgbG9uZywgbGVuZ3RoKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggInRydW5jYXRlKHBhdGgpIiwgQVJHMSApOwpAQCAtMzIyNywxMiArMzM1MiwxMiBAQAogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CiAjaWYgVkdfV09SRFNJWkUgPT0gNAotICAgUFJJTlQoInN5c19mdHJ1bmNhdGU2NCAoICVsZCwgJWxsZCApIiwgQVJHMSwgTUVSR0U2NChBUkcyLEFSRzMpKTsKKyAgIFBSSU5UKCJzeXNfZnRydW5jYXRlNjQgKCAlbHUsICVsbHUgKSIsIEFSRzEsIE1FUkdFNjQoQVJHMixBUkczKSk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmdHJ1bmNhdGU2NCIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsCiAgICAgICAgICAgICAgICAgIFVXb3JkLCBNRVJHRTY0X0ZJUlNUKGxlbmd0aCksIFVXb3JkLCBNRVJHRTY0X1NFQ09ORChsZW5ndGgpKTsKICNlbHNlCi0gICBQUklOVCgic3lzX2Z0cnVuY2F0ZTY0ICggJWxkLCAlbGxkICkiLCBBUkcxLCAoTG9uZylBUkcyKTsKKyAgIFBSSU5UKCJzeXNfZnRydW5jYXRlNjQgKCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJmdHJ1bmNhdGU2NCIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCxmZCwgVVdvcmQsbGVuZ3RoKTsKICNlbmRpZgpAQCAtMzI1Nyw3ICszMzgyLDcgQEAKIFBSRShzeXNfZ2V0ZGVudHMpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfZ2V0ZGVudHMgKCAlbGQsICUjbHgsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19nZXRkZW50cyAoICVsdSwgJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImdldGRlbnRzIiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgc3RydWN0IHZraV9kaXJlbnQgKiwgZGlycCwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBjb3VudCk7CkBAIC0zMjc0LDcgKzMzOTksNyBAQAogUFJFKHN5c19nZXRkZW50czY0KQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX2dldGRlbnRzNjQgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX2dldGRlbnRzNjQgKCAlbHUsICUjbHgsICVsdSApIixBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImdldGRlbnRzNjQiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCBzdHJ1Y3QgdmtpX2RpcmVudDY0ICosIGRpcnAsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgY291bnQpOwpAQCAtMzI5MCw3ICszNDE1LDcgQEAKIAogUFJFKHN5c19nZXRncm91cHMpCiB7Ci0gICBQUklOVCgic3lzX2dldGdyb3VwcyAoICVsZCwgJSNseCApIiwgQVJHMSwgQVJHMik7CisgICBQUklOVCgic3lzX2dldGdyb3VwcyAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiZ2V0Z3JvdXBzIiwgaW50LCBzaXplLCB2a2lfZ2lkX3QgKiwgbGlzdCk7CiAgICBpZiAoQVJHMSA+IDApCiAgICAgICBQUkVfTUVNX1dSSVRFKCAiZ2V0Z3JvdXBzKGxpc3QpIiwgQVJHMiwgQVJHMSAqIHNpemVvZih2a2lfZ2lkX3QpICk7CkBAIC0zMzQ5LDcgKzM0NzQsNyBAQAogCiBQUkUoc3lzX2dldHBnaWQpCiB7Ci0gICBQUklOVCgic3lzX2dldHBnaWQgKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInN5c19nZXRwZ2lkICggJWxkICkiLCBTQVJHMSk7CiAgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJnZXRwZ2lkIiwgdmtpX3BpZF90LCBwaWQpOwogfQogCkBAIC0zMzkzLDcgKzM1MTgsNyBAQAogCiBQUkUoc3lzX29sZF9nZXRybGltaXQpCiB7Ci0gICBQUklOVCgic3lzX29sZF9nZXRybGltaXQgKCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX29sZF9nZXRybGltaXQgKCAlbHUsICUjbHggKSIsIEFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAib2xkX2dldHJsaW1pdCIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQgKiwgcmxpbSk7CiAgICBQUkVfTUVNX1dSSVRFKCAib2xkX2dldHJsaW1pdChybGltKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3JsaW1pdCkgKTsKQEAgLTM0MDYsNyArMzUzMSw3IEBACiAKIFBSRShzeXNfZ2V0cmxpbWl0KQogewotICAgUFJJTlQoInN5c19nZXRybGltaXQgKCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX2dldHJsaW1pdCAoICVsdSwgJSNseCApIiwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJnZXRybGltaXQiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICosIHJsaW0pOwogICAgUFJFX01FTV9XUklURSggImdldHJsaW1pdChybGltKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3JsaW1pdCkgKTsKQEAgLTM0MTksNyArMzU0NCw3IEBACiAKIFBSRShzeXNfZ2V0cnVzYWdlKQogewotICAgUFJJTlQoInN5c19nZXRydXNhZ2UgKCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX2dldHJ1c2FnZSAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiZ2V0cnVzYWdlIiwgaW50LCB3aG8sIHN0cnVjdCBydXNhZ2UgKiwgdXNhZ2UpOwogICAgUFJFX01FTV9XUklURSggImdldHJ1c2FnZSh1c2FnZSkiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9ydXNhZ2UpICk7CiB9CkBAIC0zNDgzLDkgKzM2MDgsMTUgQEAKICAgICAgIEFjY29yZGluZyB0byBTaW1vbiBIYXVzbWFubiwgX0lPQ19SRUFEIG1lYW5zIHRoZSBrZXJuZWwKICAgICAgIHdyaXRlcyBhIHZhbHVlIHRvIHRoZSBpb2N0bCB2YWx1ZSBwYXNzZWQgZnJvbSB0aGUgdXNlcgogICAgICAgc3BhY2UgYW5kIHRoZSBvdGhlciB3YXkgYXJvdW5kIHdpdGggX0lPQ19XUklURS4gKi8KLSAgIAorCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIC8qIE1ham9yaXR5IG9mIFNvbGFyaXMgaW9jdGwgcmVxdWVzdHMgZG9lcyBub3QgaG9ub3VyIGRpcmVjdGlvbiBoaW50cy4gKi8KKyAgIFVJbnQgZGlyICA9IF9WS0lfSU9DX05PTkU7CisjZWxzZSAgIAogICAgVUludCBkaXIgID0gX1ZLSV9JT0NfRElSKHJlcXVlc3QpOworI2VuZGlmCiAgICBVSW50IHNpemUgPSBfVktJX0lPQ19TSVpFKHJlcXVlc3QpOworCiAgICBpZiAoU2ltSGludGlTKFNpbUhpbnRfbGF4X2lvY3RscywgVkdfKGNsb19zaW1faGludHMpKSkgewogICAgICAgLyogCiAgICAgICAgKiBCZSB2ZXJ5IGxheCBhYm91dCBpb2N0bCBoYW5kbGluZzsgdGhlIG9ubHkKQEAgLTM1ODgsNyArMzcxOSw3IEBACiAgICBpZiAoIVZHXyhpc19leGl0aW5nKSh0aWQpKSB7CiAgICAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKIAkgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAotICAgICAgICAgICAgICAgICAgICAgICJUaHJlYWQgJWQgYmVpbmcga2lsbGVkIHdpdGggU0lHS0lMTFxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgIlRocmVhZCAldSBiZWluZyBraWxsZWQgd2l0aCBTSUdLSUxMXG4iLCAKICAgICAgICAgICAgICAgICAgICAgICB0c3QtPnRpZCk7CiAgICAgICAKICAgICAgIHRzdC0+ZXhpdHJlYXNvbiA9IFZnU3JjX0ZhdGFsU2lnOwpAQCAtMzYwMyw4ICszNzM0LDggQEAKIAogUFJFKHN5c19raWxsKQogewotICAgUFJJTlQoInN5c19raWxsICggJWxkLCAlbGQgKSIsIEFSRzEsQVJHMik7Ci0gICBQUkVfUkVHX1JFQUQyKGxvbmcsICJraWxsIiwgaW50LCBwaWQsIGludCwgc2lnKTsKKyAgIFBSSU5UKCJzeXNfa2lsbCAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAia2lsbCIsIGludCwgcGlkLCBpbnQsIHNpZ25hbCk7CiAgICBpZiAoIU1MXyhjbGllbnRfc2lnbmFsX09LKShBUkcyKSkgewogICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKCBWS0lfRUlOVkFMICk7CiAgICAgICByZXR1cm47CkBAIC0zNjIzLDcgKzM3NTQsNyBAQAogCiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgImtpbGw6IHNlbnQgc2lnbmFsICVsZCB0byBwaWQgJWxkXG4iLAotCQkgICBBUkcyLCBBUkcxKTsKKwkJICAgU0FSRzIsIFNBUkcxKTsKIAogICAgLyogVGhpcyBraWxsIG1pZ2h0IGhhdmUgZ2l2ZW4gdXMgYSBwZW5kaW5nIHNpZ25hbC4gIEFzayBmb3IgYSBjaGVjayBvbmNlIAogICAgICAgdGhlIHN5c2NhbGwgaXMgZG9uZS4gKi8KQEAgLTM2NTYsMTQgKzM3ODcsMTQgQEAKIFBSRShzeXNfbWtkaXIpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfbWtkaXIgKCAlI2x4KCVzKSwgJWxkICkiLCBBUkcxLChjaGFyKilBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19ta2RpciAoICUjbHgoJXMpLCAlbGQgKSIsIEFSRzEsIChIQ2hhciopQVJHMSwgU0FSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAibWtkaXIiLCBjb25zdCBjaGFyICosIHBhdGhuYW1lLCBpbnQsIG1vZGUpOwogICAgUFJFX01FTV9SQVNDSUlaKCAibWtkaXIocGF0aG5hbWUpIiwgQVJHMSApOwogfQogCiBQUkUoc3lzX21wcm90ZWN0KQogewotICAgUFJJTlQoInN5c19tcHJvdGVjdCAoICUjbHgsICVsbHUsICVsZCApIiwgQVJHMSwoVUxvbmcpQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfbXByb3RlY3QgKCAlI2x4LCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJtcHJvdGVjdCIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIGFkZHIsIHZraV9zaXplX3QsIGxlbiwgdW5zaWduZWQgbG9uZywgcHJvdCk7CiAKQEAgLTM3ODMsMTYgKzM5MTQsNTkgQEAKICAgICAgIFBPU1RfTUVNX1dSSVRFKCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV90aW1lc3BlYykgKTsKIH0KIAorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogSGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB0aGUgb3BlbiBpcyBvZiAvcHJvYy9zZWxmL2F1eHYgb3IKKyAgIC9wcm9jLzxwaWQ+L2F1eHYsIGFuZCBqdXN0IGdpdmVzIG91dCBhIGNvcHkgb2YgdGhlIGZkIGZvciB0aGUKKyAgIGZha2UgZmlsZSB3ZSBjb29rZWQgdXAgYXQgc3RhcnR1cCAoaW4gbV9tYWluKS4gIEFsc28sIHNlZWtzIHRoZQorICAgY2xvbmVkIGZkIGJhY2sgdG8gdGhlIHN0YXJ0LgorICAgUmV0dXJucyBUcnVlIGlmIGF1eHYgb3BlbiB3YXMgaGFuZGxlZCAoc3RhdHVzIGlzIHNldCkuICovCitCb29sIE1MXyhoYW5kbGVfYXV4dl9vcGVuKShTeXNjYWxsU3RhdHVzICpzdGF0dXMsIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFncykKK3sKKyAgIEhDaGFyICBuYW1lWzMwXTsgICAvLyBsYXJnZSBlbm91Z2gKKworICAgaWYgKCFNTF8oc2FmZV90b19kZXJlZikoKGNvbnN0IHZvaWQgKikgZmlsZW5hbWUsIDEpKQorICAgICAgcmV0dXJuIEZhbHNlOworCisgICAvKiBPcGVuaW5nIC9wcm9jLzxwaWQ+L2F1eHYgb3IgL3Byb2Mvc2VsZi9hdXh2PyAqLworICAgVkdfKHNwcmludGYpKG5hbWUsICIvcHJvYy8lZC9hdXh2IiwgVkdfKGdldHBpZCkoKSk7CisgICBpZiAoIVZHX1NUUkVRKGZpbGVuYW1lLCBuYW1lKSAmJiAhVkdfU1RSRVEoZmlsZW5hbWUsICIvcHJvYy9zZWxmL2F1eHYiKSkKKyAgICAgIHJldHVybiBGYWxzZTsKKworICAgLyogQWxsb3cgdG8gb3BlbiB0aGUgZmlsZSBvbmx5IGZvciByZWFkaW5nLiAqLworICAgaWYgKGZsYWdzICYgKFZLSV9PX1dST05MWSB8IFZLSV9PX1JEV1IpKSB7CisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VBQ0NFUyk7CisgICAgICByZXR1cm4gVHJ1ZTsKKyAgIH0KKworIyAgaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFZHXyhzcHJpbnRmKShuYW1lLCAiL3Byb2Mvc2VsZi9mZC8lZCIsIFZHXyhjbF9hdXh2X2ZkKSk7CisgICBTeXNSZXMgc3JlcyA9IFZHXyhvcGVuKShuYW1lLCBmbGFncywgMCk7CisgICBTRVRfU1RBVFVTX2Zyb21fU3lzUmVzKHNyZXMpOworIyAgZWxzZQorICAgU3lzUmVzIHNyZXMgPSBWR18oZHVwKShWR18oY2xfYXV4dl9mZCkpOworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhzcmVzKTsKKyAgIGlmICghc3JfaXNFcnJvcihzcmVzKSkgeworICAgICAgT2ZmVCBvZmYgPSBWR18obHNlZWspKHNyX1JlcyhzcmVzKSwgMCwgVktJX1NFRUtfU0VUKTsKKyAgICAgIGlmIChvZmYgPCAwKQorICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTUZJTEUpOworICAgfQorIyAgZW5kaWYKKworICAgcmV0dXJuIFRydWU7Cit9CisjZW5kaWYgLy8gZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCisKIFBSRShzeXNfb3BlbikKIHsKICAgIGlmIChBUkcyICYgVktJX09fQ1JFQVQpIHsKICAgICAgIC8vIDMtYXJnIHZlcnNpb24KLSAgICAgIFBSSU5UKCJzeXNfb3BlbiAoICUjbHgoJXMpLCAlbGQsICVsZCApIixBUkcxLChjaGFyKilBUkcxLEFSRzIsQVJHMyk7CisgICAgICBQUklOVCgic3lzX29wZW4gKCAlI2x4KCVzKSwgJWxkLCAlbGQgKSIsQVJHMSwgKEhDaGFyKilBUkcxLCBTQVJHMiwgU0FSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAib3BlbiIsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgZmlsZW5hbWUsIGludCwgZmxhZ3MsIGludCwgbW9kZSk7CiAgICB9IGVsc2UgewogICAgICAgLy8gMi1hcmcgdmVyc2lvbgotICAgICAgUFJJTlQoInN5c19vcGVuICggJSNseCglcyksICVsZCApIixBUkcxLChjaGFyKilBUkcxLEFSRzIpOworICAgICAgUFJJTlQoInN5c19vcGVuICggJSNseCglcyksICVsZCApIixBUkcxLCAoSENoYXIqKUFSRzEsIFNBUkcyKTsKICAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgIm9wZW4iLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIGZpbGVuYW1lLCBpbnQsIGZsYWdzKTsKICAgIH0KQEAgLTM4MjQsMzAgKzM5OTgsOSBAQAogICAgICAgfQogICAgfQogCi0gICAvKiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIG9wZW4gaXMgb2YgL3Byb2Mvc2VsZi9hdXh2IG9yCi0gICAgICAvcHJvYy88cGlkPi9hdXh2LCBhbmQganVzdCBnaXZlIGl0IGEgY29weSBvZiB0aGUgZmQgZm9yIHRoZQotICAgICAgZmFrZSBmaWxlIHdlIGNvb2tlZCB1cCBhdCBzdGFydHVwIChpbiBtX21haW4pLiAgQWxzbywgc2VlayB0aGUKLSAgICAgIGNsb25lZCBmZCBiYWNrIHRvIHRoZSBzdGFydC4gKi8KLSAgIHsKLSAgICAgIEhDaGFyICBuYW1lWzMwXTsgICAvLyBsYXJnZSBlbm91Z2gKLSAgICAgIEhDaGFyKiBhcmcxcyA9IChIQ2hhciopIEFSRzE7Ci0gICAgICBTeXNSZXMgc3JlczsKLQotICAgICAgVkdfKHNwcmludGYpKG5hbWUsICIvcHJvYy8lZC9hdXh2IiwgVkdfKGdldHBpZCkoKSk7Ci0gICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKCBhcmcxcywgMSApICYmCi0gICAgICAgICAgKFZHX1NUUkVRKGFyZzFzLCBuYW1lKSB8fCBWR19TVFJFUShhcmcxcywgIi9wcm9jL3NlbGYvYXV4diIpKQotICAgICAgICAgKQotICAgICAgewotICAgICAgICAgc3JlcyA9IFZHXyhkdXApKCBWR18oY2xfYXV4dl9mZCkgKTsKLSAgICAgICAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMoIHNyZXMgKTsKLSAgICAgICAgIGlmICghc3JfaXNFcnJvcihzcmVzKSkgewotICAgICAgICAgICAgT2ZmVCBvZmYgPSBWR18obHNlZWspKCBzcl9SZXMoc3JlcyksIDAsIFZLSV9TRUVLX1NFVCApOwotICAgICAgICAgICAgaWYgKG9mZiA8IDApCi0gICAgICAgICAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoIFZLSV9FTUZJTEUgKTsKLSAgICAgICAgIH0KLSAgICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgIH0KKyAgIC8qIEhhbmRsZSBhbHNvIHRoZSBjYXNlIG9mIC9wcm9jL3NlbGYvYXV4diBvciAvcHJvYy88cGlkPi9hdXh2LiAqLworICAgaWYgKE1MXyhoYW5kbGVfYXV4dl9vcGVuKShzdGF0dXMsIChjb25zdCBIQ2hhciAqKUFSRzEsIEFSRzIpKQorICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KQogCiAgICAvKiBPdGhlcndpc2UgaGFuZGxlIG5vcm1hbGx5ICovCkBAIC0zODY5LDcgKzQwMjIsNyBAQAogUFJFKHN5c19yZWFkKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3JlYWQgKCAlbGQsICUjbHgsICVsbHUgKSIsIEFSRzEsIEFSRzIsIChVTG9uZylBUkczKTsKKyAgIFBSSU5UKCJzeXNfcmVhZCAoICVsdSwgJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMoc3NpemVfdCwgInJlYWQiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCBjaGFyICosIGJ1ZiwgdmtpX3NpemVfdCwgY291bnQpOwogCkBAIC0zODg5LDcgKzQwNDIsNyBAQAogewogICAgQm9vbCBvazsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c193cml0ZSAoICVsZCwgJSNseCwgJWxsdSApIiwgQVJHMSwgQVJHMiwgKFVMb25nKUFSRzMpOworICAgUFJJTlQoInN5c193cml0ZSAoICVsdSwgJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMoc3NpemVfdCwgIndyaXRlIiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgY29uc3QgY2hhciAqLCBidWYsIHZraV9zaXplX3QsIGNvdW50KTsKICAgIC8qIGNoZWNrIHRvIHNlZSBpZiBpdCBpcyBhbGxvd2VkLiAgSWYgbm90LCB0cnkgZm9yIGFuIGV4ZW1wdGlvbiBmcm9tCkBAIC0zODk4LDYgKzQwNTEsMTEgQEAKICAgIGlmICghb2sgJiYgQVJHMSA9PSAyLypzdGRlcnIqLyAKICAgICAgICAgICAgJiYgU2ltSGludGlTKFNpbUhpbnRfZW5hYmxlX291dGVyLCBWR18oY2xvX3NpbV9oaW50cykpKQogICAgICAgb2sgPSBUcnVlOworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBpZiAoIW9rICYmIFZHXyh2Zm9ya19maWxkZXNfYWRkcikgIT0gTlVMTCAmJgorICAgICAgICpWR18odmZvcmtfZmlsZGVzX2FkZHIpID49IDAgJiYgKlZHXyh2Zm9ya19maWxkZXNfYWRkcikgPT0gQVJHMSkKKyAgICAgIG9rID0gVHJ1ZTsKKyNlbmRpZgogICAgaWYgKCFvaykKICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZSggVktJX0VCQURGICk7CiAgICBlbHNlCkBAIC0zOTA3LDcgKzQwNjUsNyBAQAogUFJFKHN5c19jcmVhdCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19jcmVhdCAoICUjbHgoJXMpLCAlbGQgKSIsIEFSRzEsKGNoYXIqKUFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX2NyZWF0ICggJSNseCglcyksICVsZCApIiwgQVJHMSwgKEhDaGFyKilBUkcxLCBTQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJjcmVhdCIsIGNvbnN0IGNoYXIgKiwgcGF0aG5hbWUsIGludCwgbW9kZSk7CiAgICBQUkVfTUVNX1JBU0NJSVooICJjcmVhdChwYXRobmFtZSkiLCBBUkcxICk7CiB9CkBAIC0zOTM2LDcgKzQwOTQsNyBAQAogICAgVUludCBpOwogICAgc3RydWN0IHZraV9wb2xsZmQqIHVmZHMgPSAoc3RydWN0IHZraV9wb2xsZmQgKilBUkcxOwogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3BvbGwgKCAlI2x4LCAlbGQsICVsZCApXG4iLCBBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX3BvbGwgKCAlI2x4LCAlbHUsICVsZCApXG4iLCBBUkcxLCBBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJwb2xsIiwKICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9wb2xsZmQgKiwgdWZkcywgdW5zaWduZWQgaW50LCBuZmRzLCBsb25nLCB0aW1lb3V0KTsKIApAQCAtMzk4OCw3ICs0MTQ2LDIxIEBACiAgICAgICAgICBTRVRfU1RBVFVTX2Zyb21fU3lzUmVzKCBWR18oZG9fc3lzY2FsbDMpKHNhdmVkLCAoVVdvcmQpbmFtZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUkcyLCBBUkczKSk7CiAgICAgICB9IGVsc2UKLSNlbmRpZiAvLyBkZWZpbmVkKFZHT19saW51eCkKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAvKiBTYW1lIGZvciBTb2xhcmlzLCBidXQgL3Byb2Mvc2VsZi9wYXRoL2Eub3V0IGFuZAorICAgICAgICAgL3Byb2MvPHBpZD4vcGF0aC9hLm91dC4gKi8KKyAgICAgIEhDaGFyICBuYW1lWzMwXTsgICAvLyBsYXJnZSBlbm91Z2gKKyAgICAgIEhDaGFyKiBhcmcxcyA9IChIQ2hhciopIEFSRzE7CisgICAgICBWR18oc3ByaW50ZikobmFtZSwgIi9wcm9jLyVkL3BhdGgvYS5vdXQiLCBWR18oZ2V0cGlkKSgpKTsKKyAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoYXJnMXMsIDEpICYmCisgICAgICAgICAgKFZHX1NUUkVRKGFyZzFzLCBuYW1lKSB8fCBWR19TVFJFUShhcmcxcywgIi9wcm9jL3NlbGYvcGF0aC9hLm91dCIpKQorICAgICAgICAgKQorICAgICAgeworICAgICAgICAgVkdfKHNwcmludGYpKG5hbWUsICIvcHJvYy9zZWxmL3BhdGgvJWQiLCBWR18oY2xfZXhlY19mZCkpOworICAgICAgICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyggVkdfKGRvX3N5c2NhbGwzKShzYXZlZCwgKFVXb3JkKW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUkcyLCBBUkczKSk7CisgICAgICB9IGVsc2UKKyNlbmRpZgogICAgICAgewogICAgICAgICAgLyogTm9ybWFsIGNhc2UgKi8KICAgICAgICAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMoIFZHXyhkb19zeXNjYWxsMykoc2F2ZWQsIEFSRzEsIEFSRzIsIEFSRzMpKTsKQEAgLTQwMDQsNyArNDE3Niw3IEBACiAgICBJbnQgaTsKICAgIHN0cnVjdCB2a2lfaW92ZWMgKiB2ZWM7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfcmVhZHYgKCAlbGQsICUjbHgsICVsbHUgKSIsQVJHMSxBUkcyLChVTG9uZylBUkczKTsKKyAgIFBSSU5UKCJzeXNfcmVhZHYgKCAlbHUsICUjbHgsICVsdSApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKHNzaXplX3QsICJyZWFkdiIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIGZkLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgdmVjdG9yLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBjb3VudCk7CkBAIC00MDYzLDcgKzQyMzUsOCBAQAogUFJFKHN5c19zZWxlY3QpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc2VsZWN0ICggJWxkLCAlI2x4LCAlI2x4LCAlI2x4LCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUpOworICAgUFJJTlQoInN5c19zZWxlY3QgKCAlbGQsICUjbHgsICUjbHgsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczLAorICAgICAgICAgQVJHNCwgQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJzZWxlY3QiLAogICAgICAgICAgICAgICAgICBpbnQsIG4sIHZraV9mZF9zZXQgKiwgcmVhZGZkcywgdmtpX2ZkX3NldCAqLCB3cml0ZWZkcywKICAgICAgICAgICAgICAgICAgdmtpX2ZkX3NldCAqLCBleGNlcHRmZHMsIHN0cnVjdCB2a2lfdGltZXZhbCAqLCB0aW1lb3V0KTsKQEAgLTQwODMsNyArNDI1Niw3IEBACiAKIFBSRShzeXNfc2V0Z2lkKQogewotICAgUFJJTlQoInN5c19zZXRnaWQgKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInN5c19zZXRnaWQgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2V0Z2lkIiwgdmtpX2dpZF90LCBnaWQpOwogfQogCkBAIC00MTAzLDEzICs0Mjc2LDEzIEBACiAKIFBSRShzeXNfc2V0cGdpZCkKIHsKLSAgIFBSSU5UKCJzZXRwZ2lkICggJWxkLCAlbGQgKSIsIEFSRzEsIEFSRzIpOworICAgUFJJTlQoInNldHBnaWQgKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgInNldHBnaWQiLCB2a2lfcGlkX3QsIHBpZCwgdmtpX3BpZF90LCBwZ2lkKTsKIH0KIAogUFJFKHN5c19zZXRyZWdpZCkKIHsKLSAgIFBSSU5UKCJzeXNfc2V0cmVnaWQgKCAlbGQsICVsZCApIiwgQVJHMSwgQVJHMik7CisgICBQUklOVCgic3lzX3NldHJlZ2lkICggJWx1LCAlbHUgKSIsIEFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAic2V0cmVnaWQiLCB2a2lfZ2lkX3QsIHJnaWQsIHZraV9naWRfdCwgZWdpZCk7CiB9CiAKQEAgLTQxMjIsNyArNDI5NSw3IEBACiBQUkUoc3lzX3NldHJsaW1pdCkKIHsKICAgIFVXb3JkIGFyZzEgPSBBUkcxOwotICAgUFJJTlQoInN5c19zZXRybGltaXQgKCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX3NldHJsaW1pdCAoICVsdSwgJSNseCApIiwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzZXRybGltaXQiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICosIHJsaW0pOwogICAgUFJFX01FTV9SRUFEKCAic2V0cmxpbWl0KHJsaW0pIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfcmxpbWl0KSApOwpAQCAtNDE2Nyw3ICs0MzQwLDE1IEBACiAgICAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoIFZLSV9FUEVSTSApOwogICAgICAgfQogICAgICAgZWxzZSB7Ci0gICAgICAgICBWR18odGhyZWFkcylbdGlkXS5jbGllbnRfc3RhY2tfc3pCID0gKChzdHJ1Y3QgdmtpX3JsaW1pdCAqKUFSRzIpLT5ybGltX2N1cjsKKyAgICAgICAgIC8qIENoYW5nZSB0aGUgdmFsdWUgb2YgY2xpZW50X3N0YWNrX3N6QiB0byB0aGUgcmxpbV9jdXIgdmFsdWUgYnV0CisgICAgICAgICAgICBvbmx5IGlmIGl0IGlzIHNtYWxsZXIgdGhhbiB0aGUgc2l6ZSBvZiB0aGUgYWxsb2NhdGVkIHN0YWNrIGZvciB0aGUKKyAgICAgICAgICAgIGNsaWVudC4KKyAgICAgICAgICAgIFRPRE86IEFsbCBwbGF0Zm9ybXMgc2hvdWxkIHNldCBWR18oY2xzdGtfbWF4X3NpemUpIGFzIHBhcnQgb2YgdGhlaXIKKyAgICAgICAgICAgICAgICAgIHNldHVwX2NsaWVudF9zdGFjaygpLiAqLworICAgICAgICAgaWYgKChWR18oY2xzdGtfbWF4X3NpemUpID09IDApCisgICAgICAgICAgICAgfHwgKCgoc3RydWN0IHZraV9ybGltaXQgKikgQVJHMiktPnJsaW1fY3VyIDw9IFZHXyhjbHN0a19tYXhfc2l6ZSkpKQorICAgICAgICAgICAgVkdfKHRocmVhZHMpW3RpZF0uY2xpZW50X3N0YWNrX3N6QiA9ICgoc3RydWN0IHZraV9ybGltaXQgKilBUkcyKS0+cmxpbV9jdXI7CisKICAgICAgICAgIFZHXyhjbGllbnRfcmxpbWl0X3N0YWNrKSA9ICooc3RydWN0IHZraV9ybGltaXQgKilBUkcyOwogICAgICAgICAgU0VUX1NUQVRVU19TdWNjZXNzKCAwICk7CiAgICAgICB9CkBAIC00MTc2LDcgKzQzNTcsNyBAQAogCiBQUkUoc3lzX3NldHVpZCkKIHsKLSAgIFBSSU5UKCJzeXNfc2V0dWlkICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfc2V0dWlkICggJWx1ICkiLCBBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEobG9uZywgInNldHVpZCIsIHZraV91aWRfdCwgdWlkKTsKIH0KIApAQCAtNDI2NCw3ICs0NDQ1LDcgQEAKIAogUFJFKHN5c191bWFzaykKIHsKLSAgIFBSSU5UKCJzeXNfdW1hc2sgKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInN5c191bWFzayAoICVsZCApIiwgU0FSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAidW1hc2siLCBpbnQsIG1hc2spOwogfQogCkBAIC00MjkzLDcgKzQ0NzQsNyBAQAogUFJFKHN5c193YWl0cGlkKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3dhaXRwaWQgKCAlbGQsICUjbHgsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c193YWl0cGlkICggJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJ3YWl0cGlkIiwgCiAgICAgICAgICAgICAgICAgIHZraV9waWRfdCwgcGlkLCB1bnNpZ25lZCBpbnQgKiwgc3RhdHVzLCBpbnQsIG9wdGlvbnMpOwogCkBAIC00MzEwLDcgKzQ0OTEsNyBAQAogUFJFKHN5c193YWl0NCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c193YWl0NCAoICVsZCwgJSNseCwgJWxkLCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfd2FpdDQgKCAlbGQsICUjbHgsICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIFNBUkczLCBBUkc0KTsKIAogICAgUFJFX1JFR19SRUFENChsb25nLCAid2FpdDQiLCAKICAgICAgICAgICAgICAgICAgdmtpX3BpZF90LCBwaWQsIHVuc2lnbmVkIGludCAqLCBzdGF0dXMsIGludCwgb3B0aW9ucywKQEAgLTQzMzQsNyArNDUxNSw3IEBACiAgICBJbnQgaTsKICAgIHN0cnVjdCB2a2lfaW92ZWMgKiB2ZWM7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfd3JpdGV2ICggJWxkLCAlI2x4LCAlbGx1ICkiLEFSRzEsQVJHMiwoVUxvbmcpQVJHMyk7CisgICBQUklOVCgic3lzX3dyaXRldiAoICVsdSwgJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMoc3NpemVfdCwgIndyaXRldiIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIGZkLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgdmVjdG9yLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBjb3VudCk7CkBAIC00Mzk1LDYgKzQ1NzYsMTYgQEAKICAgICAgIFBSRV9NRU1fV1JJVEUoICJzaWdhbHRzdGFjayhvc3MpIiwgQVJHMiwgc2l6ZW9mKHZraV9zdGFja190KSApOwogICAgfQogCisgICAvKiBCZSBzYWZlLiAqLworICAgaWYgKEFSRzEgJiYgIU1MXyhzYWZlX3RvX2RlcmVmKCh2b2lkKilBUkcxLCBzaXplb2YodmtpX3N0YWNrX3QpKSkpIHsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUZBVUxUKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKyAgIGlmIChBUkcyICYmICFNTF8oc2FmZV90b19kZXJlZigodm9pZCopQVJHMiwgc2l6ZW9mKHZraV9zdGFja190KSkpKSB7CisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VGQVVMVCk7CisgICAgICByZXR1cm47CisgICB9CisKICAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMoIAogICAgICAgVkdfKGRvX3N5c19zaWdhbHRzdGFjaykgKHRpZCwgKHZraV9zdGFja190KilBUkcxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2a2lfc3RhY2tfdCopQVJHMikKQEAgLTQ0MDksNyArNDYwMCw3IEBACiAKIFBSRShzeXNfc2V0aG9zdG5hbWUpCiB7Ci0gICBQUklOVCgic3lzX3NldGhvc3RuYW1lICggJSNseCwgJWxkICkiLCBBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19zZXRob3N0bmFtZSAoICUjbHgsICVsZCApIiwgQVJHMSwgU0FSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAic2V0aG9zdG5hbWUiLCBjaGFyICosIG5hbWUsIGludCwgbGVuKTsKICAgIFBSRV9NRU1fUkVBRCggInNldGhvc3RuYW1lKG5hbWUpIiwgQVJHMSwgQVJHMiApOwogfQpAQCAtNDQxNyw3ICs0NjA4LDcgQEAKICN1bmRlZiBQUkUKICN1bmRlZiBQT1NUCiAKLSNlbmRpZiAvLyBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbGludXgtdmFyaWFudHMuYyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1saW51eC12YXJpYW50cy5jCmluZGV4IGZlNzgwMjguLmNkMjcwOTEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1saW51eC12YXJpYW50cy5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1saW51eC12YXJpYW50cy5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbGludXguYyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1saW51eC5jCmluZGV4IDkzNWQxOTAuLmY3OTY5NjkgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1saW51eC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzMsOCArNzMsOCBAQAogICAgVGhyZWFkU3RhdGUqIHRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CiAKICAgIFZHXyhkZWJ1Z0xvZykoMSwgInN5c3dyYXAtbGludXgiLCAKLSAgICAgICAgICAgICAgICAgICAgInRocmVhZF93cmFwcGVyKHRpZD0lbGxkKTogZW50cnlcbiIsIAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpdGlkVyk7CisgICAgICAgICAgICAgICAgICAgICJ0aHJlYWRfd3JhcHBlcih0aWQ9JXUpOiBlbnRyeVxuIiwgCisgICAgICAgICAgICAgICAgICAgIHRpZCk7CiAKICAgIHZnX2Fzc2VydCh0c3QtPnN0YXR1cyA9PSBWZ1RzX0luaXQpOwogCkBAIC04Miw4ICs4Miw4IEBACiAgICBWR18oYWNxdWlyZV9CaWdMb2NrKSh0aWQsICJ0aHJlYWRfd3JhcHBlcihzdGFydGluZyBuZXcgdGhyZWFkKSIpOwogCiAgICBpZiAoMCkKLSAgICAgIFZHXyhwcmludGYpKCJ0aHJlYWQgdGlkICVkIHN0YXJ0ZWQ6IHN0YWNrID0gJXBcbiIsCi0JCSAgdGlkLCAmdGlkKTsKKyAgICAgIFZHXyhwcmludGYpKCJ0aHJlYWQgdGlkICV1IHN0YXJ0ZWQ6IHN0YWNrID0gJXBcbiIsCisJCSAgdGlkLCAodm9pZCAqKSZ0aWQpOwogCiAgICAvKiBNYWtlIHN1cmUgZXJyb3IgcmVwb3J0aW5nIGlzIGVuYWJsZWQgaW4gdGhlIG5ldyB0aHJlYWQuICovCiAgICB0c3QtPmVycl9kaXNhYmxlbWVudF9sZXZlbCA9IDA7CkBAIC0xMDcsOCArMTA3LDggQEAKICAgIHZnX2Fzc2VydChWR18oaXNfcnVubmluZ190aHJlYWQpKHRpZCkpOwogCiAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLWxpbnV4IiwgCi0gICAgICAgICAgICAgICAgICAgICJ0aHJlYWRfd3JhcHBlcih0aWQ9JWxsZCk6IGV4aXQsIHNjaGVkcmV0dXJuY29kZSAlc1xuIiwgCi0gICAgICAgICAgICAgICAgICAgIChVTG9uZyl0aWRXLCBWR18obmFtZV9vZl9WZ1NjaGVkUmV0dXJuQ29kZSkocmV0KSk7CisgICAgICAgICAgICAgICAgICAgICJ0aHJlYWRfd3JhcHBlcih0aWQ9JXUpOiBleGl0LCBzY2hlZHJldHVybmNvZGUgJXNcbiIsIAorICAgICAgICAgICAgICAgICAgICB0aWQsIFZHXyhuYW1lX29mX1ZnU2NoZWRSZXR1cm5Db2RlKShyZXQpKTsKIAogICAgLyogUmV0dXJuIHRvIGNhbGxlciwgc3RpbGwgaG9sZGluZyB0aGUgbG9jay4gKi8KICAgIHJldHVybiByZXQ7CkBAIC0xMzIsOCArMTMyLDggQEAKICNlbmRpZgogCiAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLWxpbnV4IiwgCi0gICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSVsbGQpOiBwcmUtdGhyZWFkX3dyYXBwZXJcbiIsCi0gICAgICAgICAgICAgICAgICAgIChVTG9uZyl0aWRXKTsKKyAgICAgICAgICAgICAgICAgICAgInJ1bl9hX3RocmVhZF9OT1JFVFVSTih0aWQ9JXUpOiBwcmUtdGhyZWFkX3dyYXBwZXJcbiIsCisgICAgICAgICAgICAgICAgICAgIHRpZCk7CiAKICAgIHRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CiAgICB2Z19hc3NlcnQodHN0KTsKQEAgLTE1NSw4ICsxNTUsOCBAQAogICAgc3JjID0gdGhyZWFkX3dyYXBwZXIodGlkKTsgIAogCiAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLWxpbnV4IiwgCi0gICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSVsbGQpOiBwb3N0LXRocmVhZF93cmFwcGVyXG4iLAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpdGlkVyk7CisgICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSV1KTogcG9zdC10aHJlYWRfd3JhcHBlclxuIiwKKyAgICAgICAgICAgICAgICAgICAgdGlkKTsKIAogICAgYyA9IFZHXyhjb3VudF9saXZpbmdfdGhyZWFkcykoKTsKICAgIHZnX2Fzc2VydChjID49IDEpOyAvKiBzdGF5IHNhbmUgKi8KQEAgLTE3OCw5ICsxNzgsOSBAQAogICAgICAgKTsKICAgICAgIFZHXyhkZWJ1Z0xvZykoCiAgICAgICAgICAxLCAic3lzd3JhcC1saW51eCIsIAotICAgICAgICAgICAgInJ1bl9hX3RocmVhZF9OT1JFVFVSTih0aWQ9JWxsZCk6ICIKKyAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSV1KTogIgogICAgICAgICAgICAgIldBUk5JTkc6IGV4aXRpbmcgdGhyZWFkIGhhcyBlcnJfZGlzYWJsZW1lbnRfbGV2ZWwgPSAldVxuIiwKLSAgICAgICAgICAgIChVTG9uZyl0aWRXLCB0c3QtPmVycl9kaXNhYmxlbWVudF9sZXZlbAorICAgICAgICAgICAgdGlkLCB0c3QtPmVycl9kaXNhYmxlbWVudF9sZXZlbAogICAgICAgKTsKICAgIH0KICAgIHRzdC0+ZXJyX2Rpc2FibGVtZW50X2xldmVsID0gMDsKQEAgLTE4OCw5ICsxODgsOSBAQAogICAgaWYgKGMgPT0gMSkgewogCiAgICAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLWxpbnV4IiwgCi0gICAgICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSVsbGQpOiAiCisgICAgICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSV1KTogIgogICAgICAgICAgICAgICAgICAgICAgICAgICAibGFzdCBvbmUgc3RhbmRpbmdcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChVTG9uZyl0aWRXKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkKTsKIAogICAgICAgLyogV2UgYXJlIHRoZSBsYXN0IG9uZSBzdGFuZGluZy4gIEtlZXAgaG9sZCBvZiB0aGUgbG9jayBhbmQKICAgICAgICAgIGNhcnJ5IG9uIHRvIHNob3cgZmluYWwgdG9vbCByZXN1bHRzLCB0aGVuIGV4aXQgdGhlIGVudGlyZSBzeXN0ZW0uIApAQCAtMTk5LDkgKzE5OSw5IEBACiAgICB9IGVsc2UgewogCiAgICAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLWxpbnV4IiwgCi0gICAgICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSVsbGQpOiAiCisgICAgICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSV1KTogIgogICAgICAgICAgICAgICAgICAgICAgICAgICAibm90IGxhc3Qgb25lIHN0YW5kaW5nXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAoVUxvbmcpdGlkVyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZCk7CiAKICAgICAgIC8qIE9LLCB0aHJlYWQgaXMgZGVhZCwgYnV0IG90aGVycyBzdGlsbCBleGlzdC4gIEp1c3QgZXhpdC4gKi8KIApAQCAtMzU2LDcgKzM1Niw3IEBACiAgICB9CiAKICAgIGlmICgwKQotICAgICAgVkdfKHByaW50ZikoICJzdGFjayBmb3IgdGlkICVkIGF0ICVwOyBpbml0X1NQPSVwXG4iLAorICAgICAgVkdfKHByaW50ZikoICJzdGFjayBmb3IgdGlkICV1IGF0ICVwOyBpbml0X1NQPSVwXG4iLAogICAgICAgICAgICAgICAgICAgIHRpZCwgCiAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXRzdC0+b3Nfc3RhdGUudmFsZ3JpbmRfc3RhY2tfYmFzZSwgCiAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXRzdC0+b3Nfc3RhdGUudmFsZ3JpbmRfc3RhY2tfaW5pdF9TUCApOwpAQCAtNDkyLDcgKzQ5Miw3IEBACiAgICAgICBWR18oZG9fYXRmb3JrX3BhcmVudCkodGlkKTsKIAogICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQotCSAgVkdfKHByaW50ZikoIiAgIGNsb25lKGZvcmspOiBwcm9jZXNzICVkIGNyZWF0ZWQgY2hpbGQgJWxkXG4iLAorCSAgVkdfKHByaW50ZikoIiAgIGNsb25lKGZvcmspOiBwcm9jZXNzICVkIGNyZWF0ZWQgY2hpbGQgJWx1XG4iLAogICAgICAgICAgICAgICAgICAgICAgIFZHXyhnZXRwaWQpKCksIHNyX1JlcyhyZXMpKTsKIAogICAgICAgLyogcmVzdG9yZSBzaWduYWwgbWFzayAqLwpAQCAtNTU3LDcgKzU1Nyw3IEBACiAKIFBSRShzeXNfdW1vdW50KQogewotICAgUFJJTlQoInN5c191bW91bnQoICUjbHgsICVsZCApIiwgQVJHMSwgQVJHMik7CisgICBQUklOVCgic3lzX3Vtb3VudCggJSNseCwgJWxkICkiLCBBUkcxLCBTQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJ1bW91bnQyIiwgY2hhciAqLCBwYXRoLCBpbnQsIGZsYWdzKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggInVtb3VudDIocGF0aCkiLCBBUkcxKTsKIH0KQEAgLTU4MCwzOCArNTgwLDM4IEBACiAKIFBSRShzeXNfc2V0ZnN1aWQxNikKIHsKLSAgIFBSSU5UKCJzeXNfc2V0ZnN1aWQxNiAoICVsZCApIiwgQVJHMSk7CisgICBQUklOVCgic3lzX3NldGZzdWlkMTYgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2V0ZnN1aWQxNiIsIHZraV9vbGRfdWlkX3QsIHVpZCk7CiB9CiAKIFBSRShzeXNfc2V0ZnN1aWQpCiB7Ci0gICBQUklOVCgic3lzX3NldGZzdWlkICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfc2V0ZnN1aWQgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2V0ZnN1aWQiLCB2a2lfdWlkX3QsIHVpZCk7CiB9CiAKIFBSRShzeXNfc2V0ZnNnaWQxNikKIHsKLSAgIFBSSU5UKCJzeXNfc2V0ZnNnaWQxNiAoICVsZCApIiwgQVJHMSk7CisgICBQUklOVCgic3lzX3NldGZzZ2lkMTYgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2V0ZnNnaWQxNiIsIHZraV9vbGRfZ2lkX3QsIGdpZCk7CiB9CiAKIFBSRShzeXNfc2V0ZnNnaWQpCiB7Ci0gICBQUklOVCgic3lzX3NldGZzZ2lkICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfc2V0ZnNnaWQgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2V0ZnNnaWQiLCB2a2lfZ2lkX3QsIGdpZCk7CiB9CiAKIFBSRShzeXNfc2V0cmVzdWlkMTYpCiB7Ci0gICBQUklOVCgic3lzX3NldHJlc3VpZDE2ICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgic3lzX3NldHJlc3VpZDE2ICggJWx1LCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzZXRyZXN1aWQxNiIsCiAgICAgICAgICAgICAgICAgIHZraV9vbGRfdWlkX3QsIHJ1aWQsIHZraV9vbGRfdWlkX3QsIGV1aWQsIHZraV9vbGRfdWlkX3QsIHN1aWQpOwogfQogCiBQUkUoc3lzX3NldHJlc3VpZCkKIHsKLSAgIFBSSU5UKCJzeXNfc2V0cmVzdWlkICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgic3lzX3NldHJlc3VpZCAoICVsdSwgJWx1LCAlbHUgKSIsIEFSRzEsIEFSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAic2V0cmVzdWlkIiwKICAgICAgICAgICAgICAgICAgdmtpX3VpZF90LCBydWlkLCB2a2lfdWlkX3QsIGV1aWQsIHZraV91aWRfdCwgc3VpZCk7CiB9CkBAIC02NTcsNyArNjU3LDcgQEAKIAogUFJFKHN5c19zZXRyZXNnaWQxNikKIHsKLSAgIFBSSU5UKCJzeXNfc2V0cmVzZ2lkMTYgKCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSSU5UKCJzeXNfc2V0cmVzZ2lkMTYgKCAlbHUsICVsdSwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNldHJlc2dpZDE2IiwKICAgICAgICAgICAgICAgICAgdmtpX29sZF9naWRfdCwgcmdpZCwgCiAgICAgICAgICAgICAgICAgIHZraV9vbGRfZ2lkX3QsIGVnaWQsIHZraV9vbGRfZ2lkX3QsIHNnaWQpOwpAQCAtNjY1LDcgKzY2NSw3IEBACiAKIFBSRShzeXNfc2V0cmVzZ2lkKQogewotICAgUFJJTlQoInN5c19zZXRyZXNnaWQgKCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSSU5UKCJzeXNfc2V0cmVzZ2lkICggJWx1LCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzZXRyZXNnaWQiLAogICAgICAgICAgICAgICAgICB2a2lfZ2lkX3QsIHJnaWQsIHZraV9naWRfdCwgZWdpZCwgdmtpX2dpZF90LCBzZ2lkKTsKIH0KQEAgLTcxOCw3ICs3MTgsNyBAQAogICAgVGhyZWFkSWQgICAgIHQ7CiAgICBUaHJlYWRTdGF0ZSogdHN0OwogCi0gICBQUklOVCgiZXhpdF9ncm91cCggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJleGl0X2dyb3VwKCAlbGQgKSIsIFNBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEodm9pZCwgImV4aXRfZ3JvdXAiLCBpbnQsIHN0YXR1cyk7CiAKICAgIHRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CkBAIC03ODUsNyArNzg1LDcgQEAKIAogUFJFKHN5c19sbHNlZWspCiB7Ci0gICBQUklOVCgic3lzX2xsc2VlayAoICVsZCwgMHglbHgsIDB4JWx4LCAlI2x4LCAlbGQgKSIsIEFSRzEsQVJHMixBUkczLEFSRzQsQVJHNSk7CisgICBQUklOVCgic3lzX2xsc2VlayAoICVsdSwgMHglbHgsIDB4JWx4LCAlI2x4LCAlbHUgKSIsIEFSRzEsQVJHMixBUkczLEFSRzQsQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJsbHNlZWsiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBsb25nLCBvZmZzZXRfaGlnaCwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgb2Zmc2V0X2xvdywgdmtpX2xvZmZfdCAqLCByZXN1bHQsCkBAIC04MzksNyArODM5LDcgQEAKIFBSRShzeXNfY2xvY2tfYWRqdGltZSkKIHsKICAgIHN0cnVjdCB2a2lfdGltZXggKnR4ID0gKHN0cnVjdCB2a2lfdGltZXggKilBUkcyOwotICAgUFJJTlQoInN5c19jbG9ja19hZGp0aW1lICggJWxkLCAlI2x4ICkiLCBBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19jbG9ja19hZGp0aW1lICggJWxkLCAlI2x4ICkiLCBTQVJHMSxBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImNsb2NrX2FkanRpbWUiLCB2a2lfY2xvY2tpZF90LCBpZCwgc3RydWN0IHRpbWV4ICosIGJ1Zik7CiAgICBQUkVfTUVNX1JFQUQoICJjbG9ja19hZGp0aW1lKHRpbWV4LT5tb2RlcykiLCBBUkcyLCBzaXplb2YodHgtPm1vZGVzKSk7CiAKQEAgLTg3Miw3ICs4NzIsNyBAQAogCiBQUkUoc3lzX2lvcGVybSkKIHsKLSAgIFBSSU5UKCJzeXNfaW9wZXJtICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMyApOworICAgUFJJTlQoInN5c19pb3Blcm0gKCAlbHUsICVsdSwgJWxkICkiLCBBUkcxLCBBUkcyLCBTQVJHMyApOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiaW9wZXJtIiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgZnJvbSwgdW5zaWduZWQgbG9uZywgbnVtLCBpbnQsIHR1cm5fb24pOwogfQpAQCAtODgwLDcgKzg4MCw3IEBACiBQUkUoc3lzX3N5c2xvZykKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19zeXNsb2cgKCVsZCwgJSNseCwgJWxkKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfc3lzbG9nICglbGQsICUjbHgsICVsZCkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAic3lzbG9nIiwgaW50LCB0eXBlLCBjaGFyICosIGJ1ZnAsIGludCwgbGVuKTsKICAgIHN3aXRjaCAoQVJHMSkgewogICAgLy8gVGhlIGtlcm5lbCB1c2VzIG1hZ2ljIG51bWJlcnMgaGVyZSwgcmF0aGVyIHRoYW4gbmFtZWQgY29uc3RhbnRzLApAQCAtOTYwLDcgKzk2MCw3IEBACiBQUkUoc3lzX3ByY3RsKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCggInN5c19wcmN0bCAoICVsZCwgJWxkLCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1ICk7CisgICBQUklOVCggInN5c19wcmN0bCAoICVsZCwgJWxkLCAlbGQsICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBTQVJHNCwgU0FSRzUgKTsKICAgIHN3aXRjaCAoQVJHMSkgewogICAgY2FzZSBWS0lfUFJfU0VUX1BERUFUSFNJRzoKICAgICAgIFBSRV9SRUdfUkVBRDIoaW50LCAicHJjdGwiLCBpbnQsIG9wdGlvbiwgaW50LCBzaWduYWwpOwpAQCAtMTA4OSw3ICsxMDg5LDcgQEAKIFBSRShzeXNfc2VuZGZpbGUpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc2VuZGZpbGUgKCAlbGQsICVsZCwgJSNseCwgJWx1ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfc2VuZGZpbGUgKCAlbGQsICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMSxTQVJHMixBUkczLEFSRzQpOwogICAgUFJFX1JFR19SRUFENChzc2l6ZV90LCAic2VuZGZpbGUiLAogICAgICAgICAgICAgICAgICBpbnQsIG91dF9mZCwgaW50LCBpbl9mZCwgdmtpX29mZl90ICosIG9mZnNldCwKICAgICAgICAgICAgICAgICAgdmtpX3NpemVfdCwgY291bnQpOwpAQCAtMTEwNiw3ICsxMTA2LDcgQEAKIFBSRShzeXNfc2VuZGZpbGU2NCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInNlbmRmaWxlNjQgKCAlbGQsICVsZCwgJSNseCwgJWx1ICkiLEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgUFJJTlQoInNlbmRmaWxlNjQgKCAlbGQsICVsZCwgJSNseCwgJWx1ICkiLFNBUkcxLFNBUkcyLEFSRzMsQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KHNzaXplX3QsICJzZW5kZmlsZTY0IiwKICAgICAgICAgICAgICAgICAgaW50LCBvdXRfZmQsIGludCwgaW5fZmQsIHZraV9sb2ZmX3QgKiwgb2Zmc2V0LAogICAgICAgICAgICAgICAgICB2a2lfc2l6ZV90LCBjb3VudCk7CkBAIC0xMTMyLDcgKzExMzIsNyBAQAogICAgICAgQVJHNSAtIHUzMiAqdWFkZHIyCQkJUkVRVUVVRSxDTVBfUkVRVUVVRQogICAgICAgQVJHNiAtIGludCB2YWwzCQkJCUNNUF9SRVFVRVVFCiAgICAgKi8KLSAgIFBSSU5UKCJzeXNfZnV0ZXggKCAlI2x4LCAlbGQsICVsZCwgJSNseCwgJSNseCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgIFBSSU5UKCJzeXNfZnV0ZXggKCAlI2x4LCAlbGQsICVsZCwgJSNseCwgJSNseCApIiwgQVJHMSxTQVJHMixTQVJHMyxBUkc0LEFSRzUpOwogICAgc3dpdGNoKEFSRzIgJiB+KFZLSV9GVVRFWF9QUklWQVRFX0ZMQUd8VktJX0ZVVEVYX0NMT0NLX1JFQUxUSU1FKSkgewogICAgY2FzZSBWS0lfRlVURVhfQ01QX1JFUVVFVUU6CiAgICBjYXNlIFZLSV9GVVRFWF9XQUtFX09QOgpAQCAtMTIzOSw3ICsxMjM5LDcgQEAKIAogUFJFKHN5c19zZXRfcm9idXN0X2xpc3QpCiB7Ci0gICBQUklOVCgic3lzX3NldF9yb2J1c3RfbGlzdCAoICUjbHgsICVsZCApIiwgQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfc2V0X3JvYnVzdF9saXN0ICggJSNseCwgJWx1ICkiLCBBUkcxLEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAic2V0X3JvYnVzdF9saXN0IiwgCiAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfcm9idXN0X2xpc3RfaGVhZCAqLCBoZWFkLCB2a2lfc2l6ZV90LCBsZW4pOwogCkBAIC0xMjUyLDcgKzEyNTIsNyBAQAogCiBQUkUoc3lzX2dldF9yb2J1c3RfbGlzdCkKIHsKLSAgIFBSSU5UKCJzeXNfZ2V0X3JvYnVzdF9saXN0ICggJWxkLCAlI2x4LCAlbGQgKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfZ2V0X3JvYnVzdF9saXN0ICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSxBUkcyLEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZ2V0X3JvYnVzdF9saXN0IiwKICAgICAgICAgICAgICAgICAgaW50LCBwaWQsCiAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfcm9idXN0X2xpc3RfaGVhZCAqKiwgaGVhZF9wdHIsCkBAIC0xMjcxLDcgKzEyNzEsOCBAQAogUFJFKHN5c19wc2VsZWN0NikKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19wc2VsZWN0NiAoICVsZCwgJSNseCwgJSNseCwgJSNseCwgJSNseCwgJSNseCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1LEFSRzYpOworICAgUFJJTlQoInN5c19wc2VsZWN0NiAoICVsZCwgJSNseCwgJSNseCwgJSNseCwgJSNseCwgJSNseCApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKICAgIFBSRV9SRUdfUkVBRDYobG9uZywgInBzZWxlY3Q2IiwKICAgICAgICAgICAgICAgICAgaW50LCBuLCB2a2lfZmRfc2V0ICosIHJlYWRmZHMsIHZraV9mZF9zZXQgKiwgd3JpdGVmZHMsCiAgICAgICAgICAgICAgICAgIHZraV9mZF9zZXQgKiwgZXhjZXB0ZmRzLCBzdHJ1Y3QgdmtpX3RpbWV2YWwgKiwgdGltZW91dCwKQEAgLTEyOTcsNyArMTI5OCw3IEBACiAgICBVSW50IGk7CiAgICBzdHJ1Y3QgdmtpX3BvbGxmZCogdWZkcyA9IChzdHJ1Y3QgdmtpX3BvbGxmZCAqKUFSRzE7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfcHBvbGwgKCAlI2x4LCAlbGQsICUjbHgsICUjbHgsICVsbHUgKVxuIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCwoVUxvbmcpQVJHNSk7CisgICBQUklOVCgic3lzX3Bwb2xsICggJSNseCwgJWx1LCAlI2x4LCAlI2x4LCAlbHUgKVxuIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUobG9uZywgInBwb2xsIiwKICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9wb2xsZmQgKiwgdWZkcywgdW5zaWduZWQgaW50LCBuZmRzLAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3RpbWVzcGVjICosIHRzcCwgdmtpX3NpZ3NldF90ICosIHNpZ21hc2ssCkBAIC0xMzM1LDcgKzEzMzYsNyBAQAogCiBQUkUoc3lzX2Vwb2xsX2NyZWF0ZSkKIHsKLSAgIFBSSU5UKCJzeXNfZXBvbGxfY3JlYXRlICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfZXBvbGxfY3JlYXRlICggJWxkICkiLCBTQVJHMSk7CiAgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJlcG9sbF9jcmVhdGUiLCBpbnQsIHNpemUpOwogfQogUE9TVChzeXNfZXBvbGxfY3JlYXRlKQpAQCAtMTM1Miw3ICsxMzUzLDcgQEAKIAogUFJFKHN5c19lcG9sbF9jcmVhdGUxKQogewotICAgUFJJTlQoInN5c19lcG9sbF9jcmVhdGUxICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfZXBvbGxfY3JlYXRlMSAoICVsZCApIiwgU0FSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAiZXBvbGxfY3JlYXRlMSIsIGludCwgZmxhZ3MpOwogfQogUE9TVChzeXNfZXBvbGxfY3JlYXRlMSkKQEAgLTEzNzUsNyArMTM3Niw3IEBACiAgICAgICAiRVBPTExfQ1RMX01PRCIKICAgIH07CiAgICBQUklOVCgic3lzX2Vwb2xsX2N0bCAoICVsZCwgJXMsICVsZCwgJSNseCApIiwKLSAgICAgICAgIEFSRzEsICggQVJHMjwzID8gZXBvbGxfY3RsX3NbQVJHMl0gOiAiPyIgKSwgQVJHMywgQVJHNCk7CisgICAgICAgICBTQVJHMSwgKCBBUkcyPDMgPyBlcG9sbF9jdGxfc1tBUkcyXSA6ICI/IiApLCBTQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJlcG9sbF9jdGwiLAogICAgICAgICAgICAgICAgICBpbnQsIGVwZmQsIGludCwgb3AsIGludCwgZmQsIHN0cnVjdCB2a2lfZXBvbGxfZXZlbnQgKiwgZXZlbnQpOwogICAgaWYgKEFSRzIgIT0gVktJX0VQT0xMX0NUTF9ERUwpCkBAIC0xMzg1LDcgKzEzODYsNyBAQAogUFJFKHN5c19lcG9sbF93YWl0KQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX2Vwb2xsX3dhaXQgKCAlbGQsICUjbHgsICVsZCwgJWxkICkiLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKKyAgIFBSSU5UKCJzeXNfZXBvbGxfd2FpdCAoICVsZCwgJSNseCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMywgU0FSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAiZXBvbGxfd2FpdCIsCiAgICAgICAgICAgICAgICAgIGludCwgZXBmZCwgc3RydWN0IHZraV9lcG9sbF9ldmVudCAqLCBldmVudHMsCiAgICAgICAgICAgICAgICAgIGludCwgbWF4ZXZlbnRzLCBpbnQsIHRpbWVvdXQpOwpAQCAtMTQwMSw3ICsxNDAyLDggQEAKIFBSRShzeXNfZXBvbGxfcHdhaXQpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfZXBvbGxfcHdhaXQgKCAlbGQsICUjbHgsICVsZCwgJWxkLCAlI2x4LCAlbGx1ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUsKFVMb25nKUFSRzYpOworICAgUFJJTlQoInN5c19lcG9sbF9wd2FpdCAoICVsZCwgJSNseCwgJWxkLCAlbGQsICUjbHgsICVsdSApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBTQVJHMywgU0FSRzQsIEFSRzUsIEFSRzYpOwogICAgUFJFX1JFR19SRUFENihsb25nLCAiZXBvbGxfcHdhaXQiLAogICAgICAgICAgICAgICAgICBpbnQsIGVwZmQsIHN0cnVjdCB2a2lfZXBvbGxfZXZlbnQgKiwgZXZlbnRzLAogICAgICAgICAgICAgICAgICBpbnQsIG1heGV2ZW50cywgaW50LCB0aW1lb3V0LCB2a2lfc2lnc2V0X3QgKiwgc2lnbWFzaywKQEAgLTE0MzUsNyArMTQzNyw3IEBACiAKIFBSRShzeXNfZXZlbnRmZDIpCiB7Ci0gICBQUklOVCgic3lzX2V2ZW50ZmQyICggJWx1LCAlbGQgKSIsIEFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX2V2ZW50ZmQyICggJWx1LCAlbGQgKSIsIEFSRzEsIFNBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgInN5c19ldmVudGZkMiIsIHVuc2lnbmVkIGludCwgY291bnQsIGludCwgZmxhZ3MpOwogfQogUE9TVChzeXNfZXZlbnRmZDIpCkBAIC0xNDU0LDE0ICsxNDU2LDE0IEBACiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKICNpZiBWR19XT1JEU0laRSA9PSA0CiAgICBQUklOVCgic3lzX2ZhbGxvY2F0ZSAoICVsZCwgJWxkLCAlbGxkLCAlbGxkICkiLAotICAgICAgICAgQVJHMSwgQVJHMiwgTUVSR0U2NChBUkczLEFSRzQpLCBNRVJHRTY0KEFSRzUsQVJHNikpOworICAgICAgICAgU0FSRzEsIFNBUkcyLCAoTG9uZylNRVJHRTY0KEFSRzMsQVJHNCksIChMb25nKU1FUkdFNjQoQVJHNSxBUkc2KSk7CiAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJmYWxsb2NhdGUiLAogICAgICAgICAgICAgICAgICBpbnQsIGZkLCBpbnQsIG1vZGUsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkLCBNRVJHRTY0X0ZJUlNUKG9mZnNldCksIHVuc2lnbmVkLCBNRVJHRTY0X1NFQ09ORChvZmZzZXQpLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCwgTUVSR0U2NF9GSVJTVChsZW4pLCB1bnNpZ25lZCwgTUVSR0U2NF9TRUNPTkQobGVuKSk7CiAjZWxpZiBWR19XT1JEU0laRSA9PSA4Ci0gICBQUklOVCgic3lzX2ZhbGxvY2F0ZSAoICVsZCwgJWxkLCAlbGxkLCAlbGxkICkiLAotICAgICAgICAgQVJHMSwgQVJHMiwgKExvbmcpQVJHMywgKExvbmcpQVJHNCk7CisgICBQUklOVCgic3lzX2ZhbGxvY2F0ZSAoICVsZCwgJWxkLCAlbGQsICVsZCApIiwKKyAgICAgICAgIFNBUkcxLCBTQVJHMiwgU0FSRzMsIFNBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgImZhbGxvY2F0ZSIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIGludCwgbW9kZSwgdmtpX2xvZmZfdCwgb2Zmc2V0LCB2a2lfbG9mZl90LCBsZW4pOwogI2Vsc2UKQEAgLTE0NzMsNyArMTQ3NSw3IEBACiAKIFBSRShzeXNfcHJsaW1pdDY0KQogewotICAgUFJJTlQoInN5c19wcmxpbWl0NjQgKCAlbGQsICVsZCwgJSNseCwgJSNseCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX3BybGltaXQ2NCAoICVsZCwgJWx1LCAlI2x4LCAlI2x4ICkiLCBTQVJHMSxBUkcyLEFSRzMsQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJwcmxpbWl0NjQiLAogICAgICAgICAgICAgICAgICB2a2lfcGlkX3QsIHBpZCwgdW5zaWduZWQgaW50LCByZXNvdXJjZSwKICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJsaW1pdDY0ICosIG5ld19ybGltLApAQCAtMTU3MCw3ICsxNTcyLDcgQEAKIAogUFJFKHN5c190a2lsbCkKIHsKLSAgIFBSSU5UKCJzeXNfdGdraWxsICggJWxkLCAlbGQgKSIsIEFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX3Rna2lsbCAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAidGtpbGwiLCBpbnQsIHRpZCwgaW50LCBzaWcpOwogICAgaWYgKCFNTF8oY2xpZW50X3NpZ25hbF9PSykoQVJHMikpIHsKICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZSggVktJX0VJTlZBTCApOwpAQCAtMTU4Miw3ICsxNTg0LDcgQEAKIAogICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJ0a2lsbDogc2VuZGluZyBzaWduYWwgJWxkIHRvIHBpZCAlbGRcbiIsCi0JCSAgIEFSRzIsIEFSRzEpOworCQkgICBTQVJHMiwgU0FSRzEpOwogCiAgICAvKiBJZiB3ZSdyZSBzZW5kaW5nIFNJR0tJTEwsIGNoZWNrIHRvIHNlZSBpZiB0aGUgdGFyZ2V0IGlzIG9uZSBvZgogICAgICAgb3VyIHRocmVhZHMgYW5kIGhhbmRsZSBpdCBzcGVjaWFsbHkuICovCkBAIC0xNjA2LDEyICsxNjA4LDEyIEBACiB7CiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgInRraWxsOiBzZW50IHNpZ25hbCAlbGQgdG8gcGlkICVsZFxuIiwKLSAgICAgICAgICAgICAgICAgICBBUkcyLCBBUkcxKTsKKyAgICAgICAgICAgICAgICAgICBTQVJHMiwgU0FSRzEpOwogfQogCiBQUkUoc3lzX3Rna2lsbCkKIHsKLSAgIFBSSU5UKCJzeXNfdGdraWxsICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c190Z2tpbGwgKCAlbGQsICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInRna2lsbCIsIGludCwgdGdpZCwgaW50LCB0aWQsIGludCwgc2lnKTsKICAgIGlmICghTUxfKGNsaWVudF9zaWduYWxfT0spKEFSRzMpKSB7CiAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoIFZLSV9FSU5WQUwgKTsKQEAgLTE2MjQsNyArMTYyNiw3IEBACiAgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKICAgICAgICAgICAgICAgICAgICAidGdraWxsOiBzZW5kaW5nIHNpZ25hbCAlbGQgdG8gcGlkICVsZC8lbGRcbiIsCi0JCSAgIEFSRzMsIEFSRzEsIEFSRzIpOworCQkgICBTQVJHMywgU0FSRzEsIFNBUkcyKTsKIAogICAgLyogSWYgd2UncmUgc2VuZGluZyBTSUdLSUxMLCBjaGVjayB0byBzZWUgaWYgdGhlIHRhcmdldCBpcyBvbmUgb2YKICAgICAgIG91ciB0aHJlYWRzIGFuZCBoYW5kbGUgaXQgc3BlY2lhbGx5LiAqLwpAQCAtMTY0OSw3ICsxNjUxLDcgQEAKICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQogICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAogICAgICAgICAgICAgICAgICAgICJ0Z2tpbGw6IHNlbnQgc2lnbmFsICVsZCB0byBwaWQgJWxkLyVsZFxuIiwKLSAgICAgICAgICAgICAgICAgICBBUkczLCBBUkcxLCBBUkcyKTsKKyAgICAgICAgICAgICAgICAgICBTQVJHMywgU0FSRzEsIFNBUkcyKTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjU4LDggKzE2NjAsOCBAQAogCiBQUkUoc3lzX2ZhZHZpc2U2NCkKIHsKLSAgIFBSSU5UKCJzeXNfZmFkdmlzZTY0ICggJWxkLCAlbGxkLCAlbHUsICVsZCApIiwKLSAgICAgICAgIEFSRzEsIE1FUkdFNjQoQVJHMixBUkczKSwgQVJHNCwgQVJHNSk7CisgICBQUklOVCgic3lzX2ZhZHZpc2U2NCAoICVsZCwgJWxsdSwgJWx1LCAlbGQgKSIsCisgICAgICAgICBTQVJHMSwgTUVSR0U2NChBUkcyLEFSRzMpLCBBUkc0LCBTQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJmYWR2aXNlNjQiLAogICAgICAgICAgICAgICAgICBpbnQsIGZkLCB2a2lfdTMyLCBNRVJHRTY0X0ZJUlNUKG9mZnNldCksIHZraV91MzIsIE1FUkdFNjRfU0VDT05EKG9mZnNldCksCiAgICAgICAgICAgICAgICAgIHZraV9zaXplX3QsIGxlbiwgaW50LCBhZHZpY2UpOwpAQCAtMTY2Nyw4ICsxNjY5LDggQEAKIAogUFJFKHN5c19mYWR2aXNlNjRfNjQpCiB7Ci0gICBQUklOVCgic3lzX2ZhZHZpc2U2NF82NCAoICVsZCwgJWxsZCwgJWxsZCwgJWxkICkiLAotICAgICAgICAgQVJHMSwgTUVSR0U2NChBUkcyLEFSRzMpLCBNRVJHRTY0KEFSRzQsQVJHNSksIEFSRzYpOworICAgUFJJTlQoInN5c19mYWR2aXNlNjRfNjQgKCAlbGQsICVsbHUsICVsbHUsICVsZCApIiwKKyAgICAgICAgIFNBUkcxLCBNRVJHRTY0KEFSRzIsQVJHMyksIE1FUkdFNjQoQVJHNCxBUkc1KSwgU0FSRzYpOwogICAgUFJFX1JFR19SRUFENihsb25nLCAiZmFkdmlzZTY0XzY0IiwKICAgICAgICAgICAgICAgICAgaW50LCBmZCwgdmtpX3UzMiwgTUVSR0U2NF9GSVJTVChvZmZzZXQpLCB2a2lfdTMyLCBNRVJHRTY0X1NFQ09ORChvZmZzZXQpLAogICAgICAgICAgICAgICAgICB2a2lfdTMyLCBNRVJHRTY0X0ZJUlNUKGxlbiksIHZraV91MzIsIE1FUkdFNjRfU0VDT05EKGxlbiksIGludCwgYWR2aWNlKTsKQEAgLTE4MTUsNyArMTgxNyw3IEBACiB7CiAgICBJbnQgaSwgajsKIAotICAgUFJJTlQoInN5c19pb19zdWJtaXQgKCAlbGx1LCAlbGQsICUjbHggKSIsIChVTG9uZylBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX2lvX3N1Ym1pdCAoICVsdSwgJWxkLCAlI2x4ICkiLCBBUkcxLCBTQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJpb19zdWJtaXQiLAogICAgICAgICAgICAgICAgICB2a2lfYWlvX2NvbnRleHRfdCwgY3R4X2lkLCBsb25nLCBuciwKICAgICAgICAgICAgICAgICAgc3RydWN0IGlvY2IgKiosIGlvY2JwcCk7CkBAIC0xODg0LDcgKzE4ODYsNyBAQAogCiBQUkUoc3lzX21iaW5kKQogewotICAgUFJJTlQoInN5c19tYmluZCAoICUjbHgsICVsdSwgJWxkLCAlI2x4LCAlbHUsICVsdSApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1LEFSRzYpOworICAgUFJJTlQoInN5c19tYmluZCAoICUjbHgsICVsdSwgJWx1LCAlI2x4LCAlbHUsICVsdSApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1LEFSRzYpOwogICAgUFJFX1JFR19SRUFENihsb25nLCAibWJpbmQiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBzdGFydCwgdW5zaWduZWQgbG9uZywgbGVuLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBwb2xpY3ksIHVuc2lnbmVkIGxvbmcgKiwgbm9kZW1hc2ssCkBAIC0xODk2LDcgKzE4OTgsNyBAQAogCiBQUkUoc3lzX3NldF9tZW1wb2xpY3kpCiB7Ci0gICBQUklOVCgic3lzX3NldF9tZW1wb2xpY3kgKCAlbGQsICUjbHgsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19zZXRfbWVtcG9saWN5ICggJWxkLCAlI2x4LCAlbHUgKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNldF9tZW1wb2xpY3kiLAogICAgICAgICAgICAgICAgICBpbnQsIHBvbGljeSwgdW5zaWduZWQgbG9uZyAqLCBub2RlbWFzaywKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgbWF4bm9kZSk7CkBAIC0xOTA2LDcgKzE5MDgsNyBAQAogCiBQUkUoc3lzX2dldF9tZW1wb2xpY3kpCiB7Ci0gICBQUklOVCgic3lzX2dldF9tZW1wb2xpY3kgKCAlI2x4LCAlI2x4LCAlbGQsICUjbHgsICVseCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgIFBSSU5UKCJzeXNfZ2V0X21lbXBvbGljeSAoICUjbHgsICUjbHgsICVsdSwgJSNseCwgJWx4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUpOwogICAgUFJFX1JFR19SRUFENShsb25nLCAiZ2V0X21lbXBvbGljeSIsCiAgICAgICAgICAgICAgICAgIGludCAqLCBwb2xpY3ksIHVuc2lnbmVkIGxvbmcgKiwgbm9kZW1hc2ssCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIG1heG5vZGUsIHVuc2lnbmVkIGxvbmcsIGFkZHIsCkBAIC0xOTUyLDcgKzE5NTQsNyBAQAogewogI2lmIFZHX1dPUkRTSVpFID09IDQKICAgIFBSSU5UKCAic3lzX2Zhbm90aWZ5X21hcmsgKCAlbGQsICVsdSwgJWxsdSwgJWxkLCAlI2x4KCVzKSkiLCAKLSAgICAgICAgICBBUkcxLEFSRzIsTUVSR0U2NChBUkczLEFSRzQpLEFSRzUsQVJHNiwoY2hhciAqKUFSRzYpOworICAgICAgICAgIFNBUkcxLCBBUkcyLCBNRVJHRTY0KEFSRzMsQVJHNCksIFNBUkc1LCBBUkc2LCAoSENoYXIgKilBUkc2KTsKICAgIFBSRV9SRUdfUkVBRDYobG9uZywgInN5c19mYW5vdGlmeV9tYXJrIiwgCiAgICAgICAgICAgICAgICAgIGludCwgZmFub3RpZnlfZmQsIHVuc2lnbmVkIGludCwgZmxhZ3MsCiAgICAgICAgICAgICAgICAgIF9fdmtpX3UzMiwgbWFzazAsIF9fdmtpX3UzMiwgbWFzazEsCkBAIC0xOTYwLDggKzE5NjIsOCBAQAogICAgaWYgKEFSRzYpCiAgICAgICBQUkVfTUVNX1JBU0NJSVooICJmYW5vdGlmeV9tYXJrKHBhdGgpIiwgQVJHNik7CiAjZWxpZiBWR19XT1JEU0laRSA9PSA4Ci0gICBQUklOVCggInN5c19mYW5vdGlmeV9tYXJrICggJWxkLCAlbHUsICVsbHUsICVsZCwgJSNseCglcykpIiwgCi0gICAgICAgICAgIEFSRzEsQVJHMiwoVUxvbmcpQVJHMyxBUkc0LEFSRzUsKGNoYXIgKilBUkc1KTsKKyAgIFBSSU5UKCAic3lzX2Zhbm90aWZ5X21hcmsgKCAlbGQsICVsdSwgJWx1LCAlbGQsICUjbHgoJXMpKSIsIAorICAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBTQVJHNCwgQVJHNSwgKEhDaGFyICopQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJzeXNfZmFub3RpZnlfbWFyayIsIAogICAgICAgICAgICAgICAgICBpbnQsIGZhbm90aWZ5X2ZkLCB1bnNpZ25lZCBpbnQsIGZsYWdzLAogICAgICAgICAgICAgICAgICBfX3ZraV91NjQsIG1hc2ssCkBAIC0xOTk2LDcgKzE5OTgsNyBAQAogCiBQUkUoc3lzX2lub3RpZnlfaW5pdDEpCiB7Ci0gICBQUklOVCgic3lzX2lub3RpZnlfaW5pdCAoICVsZCApIiwgQVJHMSk7CisgICBQUklOVCgic3lzX2lub3RpZnlfaW5pdCAoICVsZCApIiwgU0FSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAiaW5vdGlmeV9pbml0IiwgaW50LCBmbGFnKTsKIH0KIApAQCAtMjAxNCwxNCArMjAxNiwxNCBAQAogCiBQUkUoc3lzX2lub3RpZnlfYWRkX3dhdGNoKQogewotICAgUFJJTlQoICJzeXNfaW5vdGlmeV9hZGRfd2F0Y2ggKCAlbGQsICUjbHgsICVseCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoICJzeXNfaW5vdGlmeV9hZGRfd2F0Y2ggKCAlbGQsICUjbHgsICVseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiaW5vdGlmeV9hZGRfd2F0Y2giLCBpbnQsIGZkLCBjaGFyICosIHBhdGgsIGludCwgbWFzayk7CiAgICBQUkVfTUVNX1JBU0NJSVooICJpbm90aWZ5X2FkZF93YXRjaChwYXRoKSIsIEFSRzIgKTsKIH0KIAogUFJFKHN5c19pbm90aWZ5X3JtX3dhdGNoKQogewotICAgUFJJTlQoICJzeXNfaW5vdGlmeV9ybV93YXRjaCAoICVsZCwgJWx4ICkiLCBBUkcxLEFSRzIpOworICAgUFJJTlQoICJzeXNfaW5vdGlmeV9ybV93YXRjaCAoICVsZCwgJWx4ICkiLCBTQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJpbm90aWZ5X3JtX3dhdGNoIiwgaW50LCBmZCwgaW50LCB3ZCk7CiB9CiAKQEAgLTIwMzEsOCArMjAzMyw4IEBACiAKIFBSRShzeXNfbXFfb3BlbikKIHsKLSAgIFBSSU5UKCJzeXNfbXFfb3BlbiggJSNseCglcyksICVsZCwgJWxsZCwgJSNseCApIiwKLSAgICAgICAgIEFSRzEsKGNoYXIqKUFSRzEsQVJHMiwoVUxvbmcpQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfbXFfb3BlbiggJSNseCglcyksICVsZCwgJWx1LCAlI2x4ICkiLAorICAgICAgICAgQVJHMSwgKEhDaGFyKilBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJtcV9vcGVuIiwKICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBuYW1lLCBpbnQsIG9mbGFnLCB2a2lfbW9kZV90LCBtb2RlLAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXFfYXR0ciAqLCBhdHRyKTsKQEAgLTIwNjcsOCArMjA2OSw4IEBACiBQUkUoc3lzX21xX3RpbWVkc2VuZCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19tcV90aW1lZHNlbmQgKCAlbGQsICUjbHgsICVsbHUsICVsZCwgJSNseCApIiwKLSAgICAgICAgIEFSRzEsQVJHMiwoVUxvbmcpQVJHMyxBUkc0LEFSRzUpOworICAgUFJJTlQoInN5c19tcV90aW1lZHNlbmQgKCAlbGQsICUjbHgsICVsdSwgJWx1LCAlI2x4ICkiLAorICAgICAgICAgU0FSRzEsQVJHMixBUkczLEFSRzQsQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJtcV90aW1lZHNlbmQiLAogICAgICAgICAgICAgICAgICB2a2lfbXFkX3QsIG1xZGVzLCBjb25zdCBjaGFyICosIG1zZ19wdHIsIHZraV9zaXplX3QsIG1zZ19sZW4sCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgbXNnX3ByaW8sIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqLCBhYnNfdGltZW91dCk7CkBAIC0yMDg1LDggKzIwODcsOCBAQAogUFJFKHN5c19tcV90aW1lZHJlY2VpdmUpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfbXFfdGltZWRyZWNlaXZlKCAlbGQsICUjbHgsICVsbHUsICUjbHgsICUjbHggKSIsCi0gICAgICAgICBBUkcxLEFSRzIsKFVMb25nKUFSRzMsQVJHNCxBUkc1KTsKKyAgIFBSSU5UKCJzeXNfbXFfdGltZWRyZWNlaXZlKCAlbGQsICUjbHgsICVsdSwgJSNseCwgJSNseCApIiwKKyAgICAgICAgIFNBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUpOwogICAgUFJFX1JFR19SRUFENShzc2l6ZV90LCAibXFfdGltZWRyZWNlaXZlIiwKICAgICAgICAgICAgICAgICAgdmtpX21xZF90LCBtcWRlcywgY2hhciAqLCBtc2dfcHRyLCB2a2lfc2l6ZV90LCBtc2dfbGVuLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKiwgbXNnX3ByaW8sCkBAIC0yMTEyLDcgKzIxMTQsNyBAQAogCiBQUkUoc3lzX21xX25vdGlmeSkKIHsKLSAgIFBSSU5UKCJzeXNfbXFfbm90aWZ5KCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMiApOworICAgUFJJTlQoInN5c19tcV9ub3RpZnkoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIgKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgIm1xX25vdGlmeSIsCiAgICAgICAgICAgICAgICAgIHZraV9tcWRfdCwgbXFkZXMsIGNvbnN0IHN0cnVjdCBzaWdldmVudCAqLCBub3RpZmljYXRpb24pOwogICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgIm1xX25vdGlmeSIsIHRpZCwgRmFsc2UpKQpAQCAtMjEyNCw3ICsyMTI2LDcgQEAKIAogUFJFKHN5c19tcV9nZXRzZXRhdHRyKQogewotICAgUFJJTlQoInN5c19tcV9nZXRzZXRhdHRyKCAlbGQsICUjbHgsICUjbHggKSIsIEFSRzEsQVJHMixBUkczICk7CisgICBQUklOVCgic3lzX21xX2dldHNldGF0dHIoICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsQVJHMixBUkczICk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJtcV9nZXRzZXRhdHRyIiwKICAgICAgICAgICAgICAgICAgdmtpX21xZF90LCBtcWRlcywgY29uc3Qgc3RydWN0IG1xX2F0dHIgKiwgbXFzdGF0LAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXFfYXR0ciAqLCBvbXFzdGF0KTsKQEAgLTIxNTMsNyArMjE1NSw3IEBACiAKIFBSRShzeXNfY2xvY2tfc2V0dGltZSkKIHsKLSAgIFBSSU5UKCJzeXNfY2xvY2tfc2V0dGltZSggJWxkLCAlI2x4ICkiLCBBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19jbG9ja19zZXR0aW1lKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImNsb2NrX3NldHRpbWUiLCAKICAgICAgICAgICAgICAgICAgdmtpX2Nsb2NraWRfdCwgY2xrX2lkLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKiwgdHApOwogICAgUFJFX01FTV9SRUFEKCAiY2xvY2tfc2V0dGltZSh0cCkiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV90aW1lc3BlYykgKTsKQEAgLTIxNjEsNyArMjE2Myw3IEBACiAKIFBSRShzeXNfY2xvY2tfZ2V0dGltZSkKIHsKLSAgIFBSSU5UKCJzeXNfY2xvY2tfZ2V0dGltZSggJWxkLCAlI2x4ICkiICwgQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfY2xvY2tfZ2V0dGltZSggJWxkLCAlI2x4ICkiICwgU0FSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiY2xvY2tfZ2V0dGltZSIsIAogICAgICAgICAgICAgICAgICB2a2lfY2xvY2tpZF90LCBjbGtfaWQsIHN0cnVjdCB0aW1lc3BlYyAqLCB0cCk7CiAgICBQUkVfTUVNX1dSSVRFKCAiY2xvY2tfZ2V0dGltZSh0cCkiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV90aW1lc3BlYykgKTsKQEAgLTIxNzMsNyArMjE3NSw3IEBACiAKIFBSRShzeXNfY2xvY2tfZ2V0cmVzKQogewotICAgUFJJTlQoInN5c19jbG9ja19nZXRyZXMoICVsZCwgJSNseCApIiAsIEFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX2Nsb2NrX2dldHJlcyggJWxkLCAlI2x4ICkiICwgU0FSRzEsIEFSRzIpOwogICAgLy8gTmI6IHdlIGNhbid0IHVzZSAiUkVTIiBhcyB0aGUgcGFyYW0gbmFtZSBiZWNhdXNlIHRoYXQncyBhIG1hY3JvCiAgICAvLyBkZWZpbmVkIGFib3ZlIQogICAgUFJFX1JFR19SRUFEMihsb25nLCAiY2xvY2tfZ2V0cmVzIiwgCkBAIC0yMTkwLDcgKzIxOTIsOCBAQAogUFJFKHN5c19jbG9ja19uYW5vc2xlZXApCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9ja3xTZlBvc3RPbkZhaWw7Ci0gICBQUklOVCgic3lzX2Nsb2NrX25hbm9zbGVlcCggJWxkLCAlbGQsICUjbHgsICUjbHggKSIsIEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgUFJJTlQoInN5c19jbG9ja19uYW5vc2xlZXAoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLAorICAgICAgICAgU0FSRzEsIFNBUkcyLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQoaW50MzJfdCwgImNsb2NrX25hbm9zbGVlcCIsCiAgICAgICAgICAgICAgICAgIHZraV9jbG9ja2lkX3QsIGNsa2lkLCBpbnQsIGZsYWdzLAogICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKiwgcnF0cCwgc3RydWN0IHRpbWVzcGVjICosIHJtdHApOwpAQCAtMjIxMCw3ICsyMjEzLDcgQEAKIAogUFJFKHN5c190aW1lcl9jcmVhdGUpCiB7Ci0gICBQUklOVCgic3lzX3RpbWVyX2NyZWF0ZSggJWxkLCAlI2x4LCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX3RpbWVyX2NyZWF0ZSggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJ0aW1lcl9jcmVhdGUiLAogICAgICAgICAgICAgICAgICB2a2lfY2xvY2tpZF90LCBjbG9ja2lkLCBzdHJ1Y3Qgc2lnZXZlbnQgKiwgZXZwLAogICAgICAgICAgICAgICAgICB2a2lfdGltZXJfdCAqLCB0aW1lcmlkKTsKQEAgLTIyMzYsNyArMjIzOSw3IEBACiAKIFBSRShzeXNfdGltZXJfc2V0dGltZSkKIHsKLSAgIFBSSU5UKCJzeXNfdGltZXJfc2V0dGltZSggJWxsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCAoVUxvbmcpQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX3RpbWVyX3NldHRpbWUoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSxTQVJHMixBUkczLEFSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAidGltZXJfc2V0dGltZSIsIAogICAgICAgICAgICAgICAgICB2a2lfdGltZXJfdCwgdGltZXJpZCwgaW50LCBmbGFncywKICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGl0aW1lcnNwZWMgKiwgdmFsdWUsCkBAIC0yMjU1LDcgKzIyNTgsNyBAQAogCiBQUkUoc3lzX3RpbWVyX2dldHRpbWUpCiB7Ci0gICBQUklOVCgic3lzX3RpbWVyX2dldHRpbWUoICVsbGQsICUjbHggKSIsIChVTG9uZylBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c190aW1lcl9nZXR0aW1lKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgInRpbWVyX2dldHRpbWUiLCAKICAgICAgICAgICAgICAgICAgdmtpX3RpbWVyX3QsIHRpbWVyaWQsIHN0cnVjdCBpdGltZXJzcGVjICosIHZhbHVlKTsKICAgIFBSRV9NRU1fV1JJVEUoICJ0aW1lcl9nZXR0aW1lKHZhbHVlKSIsIEFSRzIsCkBAIC0yMzE1LDcgKzIzMTgsNyBAQAogewogICAgaWYgKGxpbnV4X2tlcm5lbF8yXzZfMjIoKSkgewogICAgICAgLyogMi42LjIyIGtlcm5lbDogdGltZXJmZCBzeXN0ZW0gY2FsbC4gKi8KLSAgICAgIFBSSU5UKCJzeXNfdGltZXJmZCAoICVsZCwgJWxkLCAlI2x4ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgICAgIFBSSU5UKCJzeXNfdGltZXJmZCAoICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAic3lzX3RpbWVyZmQiLAogICAgICAgICAgICAgICAgICAgICBpbnQsIGZkLCBpbnQsIGNsb2NraWQsIGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjICosIHRtcik7CiAgICAgICBQUkVfTUVNX1JFQUQoInRpbWVyZmQodG1yKSIsIEFSRzMsCkBAIC0yMzI0LDcgKzIzMjcsNyBAQAogICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKCBWS0lfRUJBREYgKTsKICAgIH0gZWxzZSB7CiAgICAgICAvKiAyLjYuMjQgYW5kIGxhdGVyIGtlcm5lbHM6IHRpbWVyZmRfY3JlYXRlIHN5c3RlbSBjYWxsLiAqLwotICAgICAgUFJJTlQoInN5c190aW1lcmZkX2NyZWF0ZSAoJWxkLCAlbGQgKSIsIEFSRzEsIEFSRzIpOworICAgICAgUFJJTlQoInN5c190aW1lcmZkX2NyZWF0ZSAoJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CiAgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJ0aW1lcmZkX2NyZWF0ZSIsIGludCwgY2xvY2tpZCwgaW50LCBmbGFncyk7CiAgICB9CiB9CkBAIC0yMzU2LDcgKzIzNTksNyBAQAogCiBQUkUoc3lzX3RpbWVyZmRfZ2V0dGltZSkKIHsKLSAgIFBSSU5UKCJzeXNfdGltZXJmZF9nZXR0aW1lICggJWxkLCAlI2x4ICkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSSU5UKCJzeXNfdGltZXJmZF9nZXR0aW1lICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJ0aW1lcmZkX2dldHRpbWUiLAogICAgICAgICAgICAgICAgICBpbnQsIHVmZCwKICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9pdGltZXJzcGVjKiwgb3Rtcik7CkBAIC0yMzc0LDcgKzIzNzcsOCBAQAogCiBQUkUoc3lzX3RpbWVyZmRfc2V0dGltZSkKIHsKLSAgIFBSSU5UKCJzeXNfdGltZXJmZF9zZXR0aW1lICggJWxkLCAlbGQsICUjbHgsICUjbHggKSIsIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgUFJJTlQoInN5c190aW1lcmZkX3NldHRpbWUgKCAlbGQsICVsZCwgJSNseCwgJSNseCApIiwKKyAgICAgICAgIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJ0aW1lcmZkX3NldHRpbWUiLAogICAgICAgICAgICAgICAgICBpbnQsIHVmZCwKICAgICAgICAgICAgICAgICAgaW50LCBmbGFncywKQEAgLTI0NDQsNyArMjQ0OCw3IEBACiAKIFBSRShzeXNfc2V0dWlkMTYpCiB7Ci0gICBQUklOVCgic3lzX3NldHVpZDE2ICggJWxkICkiLCBBUkcxKTsKKyAgIFBSSU5UKCJzeXNfc2V0dWlkMTYgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2V0dWlkMTYiLCB2a2lfb2xkX3VpZF90LCB1aWQpOwogfQogCkBAIC0yNDU2LDcgKzI0NjAsNyBAQAogCiBQUkUoc3lzX3NldGdpZDE2KQogewotICAgUFJJTlQoInN5c19zZXRnaWQxNiAoICVsZCApIiwgQVJHMSk7CisgICBQUklOVCgic3lzX3NldGdpZDE2ICggJWx1ICkiLCBBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEobG9uZywgInNldGdpZDE2IiwgdmtpX29sZF9naWRfdCwgZ2lkKTsKIH0KIApAQCAtMjQ4MCwxMyArMjQ4NCwxMyBAQAogCiBQUkUoc3lzX3NldHJlZ2lkMTYpCiB7Ci0gICBQUklOVCgic3lzX3NldHJlZ2lkMTYgKCAlbGQsICVsZCApIiwgQVJHMSwgQVJHMik7CisgICBQUklOVCgic3lzX3NldHJlZ2lkMTYgKCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzZXRyZWdpZDE2IiwgdmtpX29sZF9naWRfdCwgcmdpZCwgdmtpX29sZF9naWRfdCwgZWdpZCk7CiB9CiAKIFBSRShzeXNfZ2V0Z3JvdXBzMTYpCiB7Ci0gICBQUklOVCgic3lzX2dldGdyb3VwczE2ICggJWxkLCAlI2x4ICkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSSU5UKCJzeXNfZ2V0Z3JvdXBzMTYgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImdldGdyb3VwczE2IiwgaW50LCBzaXplLCB2a2lfb2xkX2dpZF90ICosIGxpc3QpOwogICAgaWYgKEFSRzEgPiAwKQogICAgICAgUFJFX01FTV9XUklURSggImdldGdyb3VwczE2KGxpc3QpIiwgQVJHMiwgQVJHMSAqIHNpemVvZih2a2lfb2xkX2dpZF90KSApOwpAQCAtMjUyMSw3ICsyNTI1LDcgQEAKIAogUFJFKHN5c19mY2hvd24xNikKIHsKLSAgIFBSSU5UKCJzeXNfZmNob3duMTYgKCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX2ZjaG93bjE2ICggJWx1LCAlbHUsICVsdSApIiwgQVJHMSxBUkcyLEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNob3duMTYiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB2a2lfb2xkX3VpZF90LCBvd25lciwgdmtpX29sZF9naWRfdCwgZ3JvdXApOwogfQpAQCAtMjUzMyw4ICsyNTM3LDggQEAKIFBSRShzeXNfc2V0eGF0dHIpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc2V0eGF0dHIgKCAlI2x4LCAlI2x4LCAlI2x4LCAlbGx1LCAlbGQgKSIsCi0gICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCAoVUxvbmcpQVJHNCwgQVJHNSk7CisgICBQUklOVCgic3lzX3NldHhhdHRyICggJSNseCwgJSNseCwgJSNseCwgJWx1LCAlbGQgKSIsCisgICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBTQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJzZXR4YXR0ciIsCiAgICAgICAgICAgICAgICAgIGNoYXIgKiwgcGF0aCwgY2hhciAqLCBuYW1lLAogICAgICAgICAgICAgICAgICB2b2lkICosIHZhbHVlLCB2a2lfc2l6ZV90LCBzaXplLCBpbnQsIGZsYWdzKTsKQEAgLTI1NDYsOCArMjU1MCw4IEBACiBQUkUoc3lzX2xzZXR4YXR0cikKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19sc2V0eGF0dHIgKCAlI2x4LCAlI2x4LCAlI2x4LCAlbGx1LCAlbGQgKSIsCi0gICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCAoVUxvbmcpQVJHNCwgQVJHNSk7CisgICBQUklOVCgic3lzX2xzZXR4YXR0ciAoICUjbHgsICUjbHgsICUjbHgsICVsdSwgJWxkICkiLAorICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgU0FSRzUpOwogICAgUFJFX1JFR19SRUFENShsb25nLCAibHNldHhhdHRyIiwKICAgICAgICAgICAgICAgICAgY2hhciAqLCBwYXRoLCBjaGFyICosIG5hbWUsCiAgICAgICAgICAgICAgICAgIHZvaWQgKiwgdmFsdWUsIHZraV9zaXplX3QsIHNpemUsIGludCwgZmxhZ3MpOwpAQCAtMjU1OSw4ICsyNTYzLDggQEAKIFBSRShzeXNfZnNldHhhdHRyKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX2ZzZXR4YXR0ciAoICVsZCwgJSNseCwgJSNseCwgJWxsdSwgJWxkICkiLAotICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgKFVMb25nKUFSRzQsIEFSRzUpOworICAgUFJJTlQoInN5c19mc2V0eGF0dHIgKCAlbGQsICUjbHgsICUjbHgsICVsdSwgJWxkICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIFNBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUobG9uZywgImZzZXR4YXR0ciIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIGNoYXIgKiwgbmFtZSwgdm9pZCAqLCB2YWx1ZSwKICAgICAgICAgICAgICAgICAgdmtpX3NpemVfdCwgc2l6ZSwgaW50LCBmbGFncyk7CkBAIC0yNjA3LDcgKzI2MTEsNyBAQAogUFJFKHN5c19mZ2V0eGF0dHIpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfZmdldHhhdHRyICggJWxkLCAlI2x4LCAlI2x4LCAlbGx1ICkiLCBBUkcxLCBBUkcyLCBBUkczLCAoVUxvbmcpQVJHNCk7CisgICBQUklOVCgic3lzX2ZnZXR4YXR0ciAoICVsZCwgJSNseCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KHNzaXplX3QsICJmZ2V0eGF0dHIiLAogICAgICAgICAgICAgICAgICBpbnQsIGZkLCBjaGFyICosIG5hbWUsIHZvaWQgKiwgdmFsdWUsIHZraV9zaXplX3QsIHNpemUpOwogICAgUFJFX01FTV9SQVNDSUlaKCAiZmdldHhhdHRyKG5hbWUpIiwgQVJHMiApOwpAQCAtMjY1Miw3ICsyNjU2LDcgQEAKIFBSRShzeXNfZmxpc3R4YXR0cikKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19mbGlzdHhhdHRyICggJWxkLCAlI2x4LCAlbGx1ICkiLCBBUkcxLCBBUkcyLCAoVUxvbmcpQVJHMyk7CisgICBQUklOVCgic3lzX2ZsaXN0eGF0dHIgKCAlbGQsICUjbHgsICVsdSApIiwgU0FSRzEsIEFSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhzc2l6ZV90LCAiZmxpc3R4YXR0ciIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIGNoYXIgKiwgbGlzdCwgdmtpX3NpemVfdCwgc2l6ZSk7CiAgICBQUkVfTUVNX1dSSVRFKCAiZmxpc3R4YXR0cihsaXN0KSIsIEFSRzIsIEFSRzMgKTsKQEAgLTI2ODQsNyArMjY4OCw3IEBACiBQUkUoc3lzX2ZyZW1vdmV4YXR0cikKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19mcmVtb3ZleGF0dHIgKCAlbGQsICUjbHggKSIsIEFSRzEsIEFSRzIpOworICAgUFJJTlQoInN5c19mcmVtb3ZleGF0dHIgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZyZW1vdmV4YXR0ciIsIGludCwgZmQsIGNoYXIgKiwgbmFtZSk7CiAgICBQUkVfTUVNX1JBU0NJSVooICJmcmVtb3ZleGF0dHIobmFtZSkiLCBBUkcyICk7CiB9CkBAIC0yNjk1LDcgKzI2OTksNyBAQAogCiBQUkUoc3lzX3NjaGVkX3NldHBhcmFtKQogewotICAgUFJJTlQoInNjaGVkX3NldHBhcmFtICggJWxkLCAlI2x4ICkiLCBBUkcxLCBBUkcyICk7CisgICBQUklOVCgic2NoZWRfc2V0cGFyYW0gKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyICk7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzY2hlZF9zZXRwYXJhbSIsIAogICAgICAgICAgICAgICAgICB2a2lfcGlkX3QsIHBpZCwgc3RydWN0IHNjaGVkX3BhcmFtICosIHApOwogICAgUFJFX01FTV9SRUFEKCAic2NoZWRfc2V0cGFyYW0ocCkiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zY2hlZF9wYXJhbSkgKTsKQEAgLTI3MDcsNyArMjcxMSw3IEBACiAKIFBSRShzeXNfc2NoZWRfZ2V0cGFyYW0pCiB7Ci0gICBQUklOVCgic2NoZWRfZ2V0cGFyYW0gKCAlbGQsICUjbHggKSIsIEFSRzEsIEFSRzIgKTsKKyAgIFBSSU5UKCJzY2hlZF9nZXRwYXJhbSAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIgKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgInNjaGVkX2dldHBhcmFtIiwgCiAgICAgICAgICAgICAgICAgIHZraV9waWRfdCwgcGlkLCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKiwgcCk7CiAgICBQUkVfTUVNX1dSSVRFKCAic2NoZWRfZ2V0cGFyYW0ocCkiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zY2hlZF9wYXJhbSkgKTsKQEAgLTI3MTksMTMgKzI3MjMsMTMgQEAKIAogUFJFKHN5c19zY2hlZF9nZXRzY2hlZHVsZXIpCiB7Ci0gICBQUklOVCgic3lzX3NjaGVkX2dldHNjaGVkdWxlciAoICVsZCApIiwgQVJHMSk7CisgICBQUklOVCgic3lzX3NjaGVkX2dldHNjaGVkdWxlciAoICVsZCApIiwgU0FSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2NoZWRfZ2V0c2NoZWR1bGVyIiwgdmtpX3BpZF90LCBwaWQpOwogfQogCiBQUkUoc3lzX3NjaGVkX3NldHNjaGVkdWxlcikKIHsKLSAgIFBSSU5UKCJzeXNfc2NoZWRfc2V0c2NoZWR1bGVyICggJWxkLCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfc2NoZWRfc2V0c2NoZWR1bGVyICggJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzY2hlZF9zZXRzY2hlZHVsZXIiLCAKICAgICAgICAgICAgICAgICAgdmtpX3BpZF90LCBwaWQsIGludCwgcG9saWN5LCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKiwgcCk7CiAgICBpZiAoQVJHMyAhPSAwKQpAQCAtMjc0MiwxOSArMjc0NiwxOSBAQAogCiBQUkUoc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgpCiB7Ci0gICBQUklOVCgic2NoZWRfZ2V0X3ByaW9yaXR5X21heCAoICVsZCApIiwgQVJHMSk7CisgICBQUklOVCgic2NoZWRfZ2V0X3ByaW9yaXR5X21heCAoICVsZCApIiwgU0FSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic2NoZWRfZ2V0X3ByaW9yaXR5X21heCIsIGludCwgcG9saWN5KTsKIH0KIAogUFJFKHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKQogewotICAgUFJJTlQoInNjaGVkX2dldF9wcmlvcml0eV9taW4gKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInNjaGVkX2dldF9wcmlvcml0eV9taW4gKCAlbGQgKSIsIFNBUkcxKTsKICAgIFBSRV9SRUdfUkVBRDEobG9uZywgInNjaGVkX2dldF9wcmlvcml0eV9taW4iLCBpbnQsIHBvbGljeSk7CiB9CiAKIFBSRShzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsKQogewotICAgUFJJTlQoInN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgKCAlbGQsICUjbHggKSIsIEFSRzEsIEFSRzIpOworICAgUFJJTlQoInN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIoaW50LCAic2NoZWRfcnJfZ2V0X2ludGVydmFsIiwKICAgICAgICAgICAgICAgICAgdmtpX3BpZF90LCBwaWQsCiAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfdGltZXNwZWMgKiwgdHApOwpAQCAtMjc2OSw3ICsyNzczLDcgQEAKIAogUFJFKHN5c19zY2hlZF9zZXRhZmZpbml0eSkKIHsKLSAgIFBSSU5UKCJzY2hlZF9zZXRhZmZpbml0eSAoICVsZCwgJWxkLCAlI2x4ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSSU5UKCJzY2hlZF9zZXRhZmZpbml0eSAoICVsZCwgJWx1LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzY2hlZF9zZXRhZmZpbml0eSIsIAogICAgICAgICAgICAgICAgICB2a2lfcGlkX3QsIHBpZCwgdW5zaWduZWQgaW50LCBsZW4sIHVuc2lnbmVkIGxvbmcgKiwgbWFzayk7CiAgICBQUkVfTUVNX1JFQUQoICJzY2hlZF9zZXRhZmZpbml0eShtYXNrKSIsIEFSRzMsIEFSRzIpOwpAQCAtMjc3Nyw3ICsyNzgxLDcgQEAKIAogUFJFKHN5c19zY2hlZF9nZXRhZmZpbml0eSkKIHsKLSAgIFBSSU5UKCJzY2hlZF9nZXRhZmZpbml0eSAoICVsZCwgJWxkLCAlI2x4ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSSU5UKCJzY2hlZF9nZXRhZmZpbml0eSAoICVsZCwgJWx1LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzY2hlZF9nZXRhZmZpbml0eSIsIAogICAgICAgICAgICAgICAgICB2a2lfcGlkX3QsIHBpZCwgdW5zaWduZWQgaW50LCBsZW4sIHVuc2lnbmVkIGxvbmcgKiwgbWFzayk7CiAgICBQUkVfTUVNX1dSSVRFKCAic2NoZWRfZ2V0YWZmaW5pdHkobWFzaykiLCBBUkczLCBBUkcyKTsKQEAgLTI3ODksOCArMjc5Myw4IEBACiAKIFBSRShzeXNfdW5zaGFyZSkKIHsKLSAgIFBSSU5UKCJzeXNfdW5zaGFyZSAoICVsZCApIiwgQVJHMSk7Ci0gICBQUkVfUkVHX1JFQUQxKGludCwgInVuc2hhcmUiLCBpbnQsIGZsYWdzKTsKKyAgIFBSSU5UKCJzeXNfdW5zaGFyZSAoICUjbHggKSIsIEFSRzEpOworICAgUFJFX1JFR19SRUFEMShpbnQsICJ1bnNoYXJlIiwgdW5zaWduZWQgbG9uZywgZmxhZ3MpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI4NjgsNyArMjg3Miw3IEBACiAKIFBSRShzeXNfZHVwMykKIHsKLSAgIFBSSU5UKCJzeXNfZHVwMyAoICVsZCwgJWxkLCAlbGQgKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfZHVwMyAoICVsdSwgJWx1LCAlI2x4ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImR1cDMiLCB1bnNpZ25lZCBpbnQsIG9sZGZkLCB1bnNpZ25lZCBpbnQsIG5ld2ZkLCBpbnQsIGZsYWdzKTsKICAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzIsICJkdXAzIiwgdGlkLCBUcnVlKSkKICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZSggVktJX0VCQURGICk7CkBAIC0yODkzLDcgKzI4OTcsOCBAQAogUFJFKHN5c193YWl0aWQpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfd2FpdGlkKCAlbGQsICVsZCwgJSNseCwgJWxkLCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUpOworICAgUFJJTlQoInN5c193YWl0aWQoICVsZCwgJWxkLCAlI2x4LCAlbGQsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgU0FSRzIsIEFSRzMsIFNBUkc0LCBBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUoaW50MzJfdCwgInN5c193YWl0aWQiLAogICAgICAgICAgICAgICAgICBpbnQsIHdoaWNoLCB2a2lfcGlkX3QsIHBpZCwgc3RydWN0IHZraV9zaWdpbmZvICosIGluZm9wLAogICAgICAgICAgICAgICAgICBpbnQsIG9wdGlvbnMsIHN0cnVjdCB2a2lfcnVzYWdlICosIHJ1KTsKQEAgLTI5MTIsMTYgKzI5MTcsMTYgQEAKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwogI2lmIFZHX1dPUkRTSVpFID09IDQKLSAgIFBSSU5UKCJzeXNfc3luY19maWxlX3JhbmdlICggJWxkLCAlbGxkLCAlbGxkLCAlbGQgKSIsCi0gICAgICAgICBBUkcxLE1FUkdFNjQoQVJHMixBUkczKSxNRVJHRTY0KEFSRzQsQVJHNSksQVJHNik7CisgICBQUklOVCgic3lzX3N5bmNfZmlsZV9yYW5nZSAoICVsZCwgJWxsZCwgJWxsZCwgJSNseCApIiwKKyAgICAgICAgIFNBUkcxLCAoTG9uZylNRVJHRTY0KEFSRzIsQVJHMyksIChMb25nKU1FUkdFNjQoQVJHNCxBUkc1KSxBUkc2KTsKICAgIFBSRV9SRUdfUkVBRDYobG9uZywgInN5bmNfZmlsZV9yYW5nZSIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkLCBNRVJHRTY0X0ZJUlNUKG9mZnNldCksIHVuc2lnbmVkLCBNRVJHRTY0X1NFQ09ORChvZmZzZXQpLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCwgTUVSR0U2NF9GSVJTVChuYnl0ZXMpLCB1bnNpZ25lZCwgTUVSR0U2NF9TRUNPTkQobmJ5dGVzKSwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmbGFncyk7CiAjZWxpZiBWR19XT1JEU0laRSA9PSA4Ci0gICBQUklOVCgic3lzX3N5bmNfZmlsZV9yYW5nZSAoICVsZCwgJWxsZCwgJWxsZCwgJWxkICkiLAotICAgICAgICAgQVJHMSwoTG9uZylBUkcyLChMb25nKUFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX3N5bmNfZmlsZV9yYW5nZSAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInN5bmNfZmlsZV9yYW5nZSIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIHZraV9sb2ZmX3QsIG9mZnNldCwgdmtpX2xvZmZfdCwgbmJ5dGVzLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZsYWdzKTsKQEAgLTI5MzYsMTUgKzI5NDEsMTUgQEAKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwogI2lmIFZHX1dPUkRTSVpFID09IDQKLSAgIFBSSU5UKCJzeXNfc3luY19maWxlX3JhbmdlMiAoICVsZCwgJWxkLCAlbGxkLCAlbGxkICkiLAotICAgICAgICAgQVJHMSxBUkcyLE1FUkdFNjQoQVJHMyxBUkc0KSxNRVJHRTY0KEFSRzUsQVJHNikpOworICAgUFJJTlQoInN5c19zeW5jX2ZpbGVfcmFuZ2UyICggJWxkLCAlbHUsICVsbGQsICVsbGQgKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgKExvbmcpTUVSR0U2NChBUkczLEFSRzQpLCAoTG9uZylNRVJHRTY0KEFSRzUsQVJHNikpOwogICAgUFJFX1JFR19SRUFENihsb25nLCAic3luY19maWxlX3JhbmdlMiIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIHVuc2lnbmVkIGludCwgZmxhZ3MsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkLCBNRVJHRTY0X0ZJUlNUKG9mZnNldCksIHVuc2lnbmVkLCBNRVJHRTY0X1NFQ09ORChvZmZzZXQpLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCwgTUVSR0U2NF9GSVJTVChuYnl0ZXMpLCB1bnNpZ25lZCwgTUVSR0U2NF9TRUNPTkQobmJ5dGVzKSk7CiAjZWxpZiBWR19XT1JEU0laRSA9PSA4Ci0gICBQUklOVCgic3lzX3N5bmNfZmlsZV9yYW5nZTIgKCAlbGQsICVsZCwgJWxsZCwgJWxsZCApIiwKLSAgICAgICAgIEFSRzEsQVJHMiwoTG9uZylBUkczLChMb25nKUFSRzQpOworICAgUFJJTlQoInN5c19zeW5jX2ZpbGVfcmFuZ2UyICggJWxkLCAlbHUsICVsZCwgJWxkICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIFNBUkczLCBTQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJzeW5jX2ZpbGVfcmFuZ2UyIiwKICAgICAgICAgICAgICAgICAgaW50LCBmZCwgdW5zaWduZWQgaW50LCBmbGFncywKICAgICAgICAgICAgICAgICAgdmtpX2xvZmZfdCwgb2Zmc2V0LCB2a2lfbG9mZl90LCBuYnl0ZXMpOwpAQCAtMjk2NSw4ICsyOTcwLDggQEAKIFBSRShzeXNfcGVyZl9ldmVudF9vcGVuKQogewogICAgc3RydWN0IHZraV9wZXJmX2V2ZW50X2F0dHIgKmF0dHI7Ci0gICBQUklOVCgic3lzX3BlcmZfZXZlbnRfb3BlbiAoICUjbHgsICVsZCwgJWxkLCAlbGQsICVsZCApIiwKLSAgICAgICAgIEFSRzEsQVJHMixBUkczLEFSRzQsQVJHNSk7CisgICBQUklOVCgic3lzX3BlcmZfZXZlbnRfb3BlbiAoICUjbHgsICVsZCwgJWxkLCAlbGQsICUjbHggKSIsCisgICAgICAgICBBUkcxLCBTQVJHMiwgU0FSRzMsIFNBUkc0LCBBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUobG9uZywgInBlcmZfZXZlbnRfb3BlbiIsCiAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfcGVyZl9ldmVudF9hdHRyICosIGF0dHIsCiAgICAgICAgICAgICAgICAgIHZraV9waWRfdCwgcGlkLCBpbnQsIGNwdSwgaW50LCBncm91cF9mZCwKQEAgLTMwMTUsOCArMzAyMCw4IEBACiAKIFBSRShzeXNfbW92ZV9wYWdlcykKIHsKLSAgIFBSSU5UKCJzeXNfbW92ZV9wYWdlcyAoICVsZCwgJWxkLCAlI2x4LCAlI2x4LCAlI2x4LCAlbHggKSIsCi0gICAgICAgICBBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUsQVJHNik7CisgICBQUklOVCgic3lzX21vdmVfcGFnZXMgKCAlbGQsICVsdSwgJSNseCwgJSNseCwgJSNseCwgJSNseCApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKICAgIFBSRV9SRUdfUkVBRDYoaW50LCAibW92ZV9wYWdlcyIsCiAgICAgICAgICAgICAgICAgIHZraV9waWRfdCwgcGlkLCB1bnNpZ25lZCBsb25nLCBucl9wYWdlcywgY29uc3Qgdm9pZCAqKiwgcGFnZXMsCiAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqLCBub2RlcywgaW50ICosIHN0YXR1cywgaW50LCBmbGFncyk7CkBAIC0zMDMzLDcgKzMwMzgsNyBAQAogCiBQUkUoc3lzX2dldHJhbmRvbSkKIHsKLSAgIFBSSU5UKCJzeXNfZ2V0cmFuZG9tICggJSNseCwgJWxkLCAlbGQgKSIgLCBBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX2dldHJhbmRvbSAoICUjbHgsICVsdSwgJWx1ICkiICwgQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGludCwgImdldHJhbmRvbSIsCiAgICAgICAgICAgICAgICAgIGNoYXIgKiwgYnVmLCB2a2lfc2l6ZV90LCBjb3VudCwgdW5zaWduZWQgaW50LCBmbGFncyk7CiAgICBQUkVfTUVNX1dSSVRFKCAiZ2V0cmFuZG9tKGNwdSkiLCBBUkcxLCBBUkcyICk7CkBAIC0zMDQ2LDcgKzMwNTEsNyBAQAogCiBQUkUoc3lzX21lbWZkX2NyZWF0ZSkKIHsKLSAgIFBSSU5UKCJzeXNfbWVtZmRfY3JlYXRlICggJSNseCwgJWxkICkiICwgQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfbWVtZmRfY3JlYXRlICggJSNseCwgJWx1ICkiICwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGludCwgIm1lbWZkX2NyZWF0ZSIsCiAgICAgICAgICAgICAgICAgIGNoYXIgKiwgdW5hbWUsIHVuc2lnbmVkIGludCwgZmxhZ3MpOwogICAgUFJFX01FTV9SQVNDSUlaKCAibWVtZmRfY3JlYXRlKHVuYW1lKSIsIEFSRzEgKTsKQEAgLTMwNjcsNyArMzA3Miw3IEBACiBQUkUoc3lzX3N5bmNmcykKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19zeW5jZnMgKCAlbGQgKSIsIEFSRzEpOworICAgUFJJTlQoInN5c19zeW5jZnMgKCAlbHUgKSIsIEFSRzEpOwogICAgUFJFX1JFR19SRUFEMShsb25nLCAic3luY2ZzIiwgdW5zaWduZWQgaW50LCBmZCk7CiB9CiAKQEAgLTMwOTEsNyArMzA5Niw3IEBACiAKIFBSRShzeXNfbHNlZWspCiB7Ci0gICBQUklOVCgic3lzX2xzZWVrICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19sc2VlayAoICVsdSwgJWxkLCAlbHUgKSIsIEFSRzEsIFNBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDModmtpX29mZl90LCAibHNlZWsiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB2a2lfb2ZmX3QsIG9mZnNldCwgdW5zaWduZWQgaW50LCB3aGVuY2UpOwogfQpAQCAtMzEwNCwxMiArMzEwOSwxMyBAQAogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CiAjaWYgVkdfV09SRFNJWkUgPT0gNAotICAgUFJJTlQoInN5c19yZWFkYWhlYWQgKCAlbGQsICVsbGQsICVsZCApIiwgQVJHMSwgTUVSR0U2NChBUkcyLEFSRzMpLCBBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcmVhZGFoZWFkICggJWxkLCAlbGxkLCAlbHUgKSIsCisgICAgICAgICBTQVJHMSwgKExvbmcpTUVSR0U2NChBUkcyLEFSRzMpLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQodmtpX29mZl90LCAicmVhZGFoZWFkIiwKICAgICAgICAgICAgICAgICAgaW50LCBmZCwgdW5zaWduZWQsIE1FUkdFNjRfRklSU1Qob2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQsIE1FUkdFNjRfU0VDT05EKG9mZnNldCksIHZraV9zaXplX3QsIGNvdW50KTsKICNlbGlmIFZHX1dPUkRTSVpFID09IDgKLSAgIFBSSU5UKCJzeXNfcmVhZGFoZWFkICggJWxkLCAlbGxkLCAlbGQgKSIsIEFSRzEsIChMb25nKUFSRzIsIEFSRzMpOworICAgUFJJTlQoInN5c19yZWFkYWhlYWQgKCAlbGQsICVsZCwgJWx1ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyh2a2lfb2ZmX3QsICJyZWFkYWhlYWQiLAogICAgICAgICAgICAgICAgICBpbnQsIGZkLCB2a2lfbG9mZl90LCBvZmZzZXQsIHZraV9zaXplX3QsIGNvdW50KTsKICNlbHNlCkBAIC0zMTQ4LDcgKzMxNTQsNyBAQAogICAgdmtpX3NpZ3NldF90IGJpZ2dlcl9zZXQ7CiAgICB2a2lfc2lnc2V0X3QgYmlnZ2VyX29sZHNldDsKIAotICAgUFJJTlQoInN5c19zaWdwcm9jbWFzayAoICVsZCwgJSNseCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX3NpZ3Byb2NtYXNrICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzaWdwcm9jbWFzayIsIAogICAgICAgICAgICAgICAgICBpbnQsIGhvdywgdmtpX29sZF9zaWdzZXRfdCAqLCBzZXQsIHZraV9vbGRfc2lnc2V0X3QgKiwgb2xkc2V0KTsKICAgIGlmIChBUkcyICE9IDApCkBAIC0zMTk3LDcgKzMyMDMsNyBAQAogICAgdmtpX3NpZ2FjdGlvbl90b0tfdCAgIG5ldywgKm5ld3A7CiAgICB2a2lfc2lnYWN0aW9uX2Zyb21LX3Qgb2xkLCAqb2xkcDsKIAotICAgUFJJTlQoInN5c19zaWdhY3Rpb24gKCAlbGQsICUjbHgsICUjbHggKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfc2lnYWN0aW9uICggJWxkLCAlI2x4LCAlI2x4ICkiLCAgU0FSRzEsIEFSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhpbnQsICJzaWdhY3Rpb24iLAogICAgICAgICAgICAgICAgICBpbnQsIHNpZ251bSwgY29uc3Qgc3RydWN0IG9sZF9zaWdhY3Rpb24gKiwgYWN0LAogICAgICAgICAgICAgICAgICBzdHJ1Y3Qgb2xkX3NpZ2FjdGlvbiAqLCBvbGRhY3QpOwpAQCAtMzI3MCw3ICszMjc2LDcgQEAKIAogUFJFKHN5c19zaWduYWxmZDQpCiB7Ci0gICBQUklOVCgic3lzX3NpZ25hbGZkNCAoICVkLCAlI2x4LCAlbGx1LCAlbGQgKSIsIChJbnQpQVJHMSxBUkcyLChVTG9uZylBUkczLEFSRzQpOworICAgUFJJTlQoInN5c19zaWduYWxmZDQgKCAlbGQsICUjbHgsICVsdSwgJWxkICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAic3lzX3NpZ25hbGZkNCIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIHZraV9zaWdzZXRfdCAqLCBzaWdtYXNrLCB2a2lfc2l6ZV90LCBzaWdzZXRzaXplLCBpbnQsIGZsYWdzKTsKICAgIFBSRV9NRU1fUkVBRCggInNpZ25hbGZkKHNpZ21hc2spIiwgQVJHMiwgc2l6ZW9mKHZraV9zaWdzZXRfdCkgKTsKQEAgLTMyOTUsNyArMzMwMSw3IEBACiAKIFBSRShzeXNfcnRfc2lnYWN0aW9uKQogewotICAgUFJJTlQoInN5c19ydF9zaWdhY3Rpb24gKCAlbGQsICUjbHgsICUjbHgsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX3J0X3NpZ2FjdGlvbiAoICVsZCwgJSNseCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJydF9zaWdhY3Rpb24iLAogICAgICAgICAgICAgICAgICBpbnQsIHNpZ251bSwgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqLCBhY3QsCiAgICAgICAgICAgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24gKiwgb2xkYWN0LCB2a2lfc2l6ZV90LCBzaWdzZXRzaXplKTsKQEAgLTMzMjksNyArMzMzNSw4IEBACiAKIFBSRShzeXNfcnRfc2lncHJvY21hc2spCiB7Ci0gICBQUklOVCgic3lzX3J0X3NpZ3Byb2NtYXNrICggJWxkLCAlI2x4LCAlI2x4LCAlbGx1ICkiLEFSRzEsQVJHMixBUkczLChVTG9uZylBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcnRfc2lncHJvY21hc2sgKCAlbGQsICUjbHgsICUjbHgsICVsdSApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInJ0X3NpZ3Byb2NtYXNrIiwgCiAgICAgICAgICAgICAgICAgIGludCwgaG93LCB2a2lfc2lnc2V0X3QgKiwgc2V0LCB2a2lfc2lnc2V0X3QgKiwgb2xkc2V0LAogICAgICAgICAgICAgICAgICB2a2lfc2l6ZV90LCBzaWdzZXRzaXplKTsKQEAgLTMzNzQsOCArMzM4MSw4IEBACiBQUkUoc3lzX3J0X3NpZ3RpbWVkd2FpdCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19ydF9zaWd0aW1lZHdhaXQgKCAlI2x4LCAlI2x4LCAlI2x4LCAlbGxkICkiLAotICAgICAgICAgQVJHMSxBUkcyLEFSRzMsKFVMb25nKUFSRzQpOworICAgUFJJTlQoInN5c19ydF9zaWd0aW1lZHdhaXQgKCAlI2x4LCAlI2x4LCAlI2x4LCAlbHUgKSIsCisgICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInJ0X3NpZ3RpbWVkd2FpdCIsIAogICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnc2V0X3QgKiwgc2V0LCB2a2lfc2lnaW5mb190ICosIGluZm8sCiAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqLCB0aW1lb3V0LCB2a2lfc2l6ZV90LCBzaWdzZXRzaXplKTsKQEAgLTMzOTUsNyArMzQwMiw3IEBACiAKIFBSRShzeXNfcnRfc2lncXVldWVpbmZvKQogewotICAgUFJJTlQoInN5c19ydF9zaWdxdWV1ZWluZm8oJWxkLCAlbGQsICUjbHgpIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgic3lzX3J0X3NpZ3F1ZXVlaW5mbyglbGQsICVsZCwgJSNseCkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAicnRfc2lncXVldWVpbmZvIiwgCiAgICAgICAgICAgICAgICAgIGludCwgcGlkLCBpbnQsIHNpZywgdmtpX3NpZ2luZm9fdCAqLCB1aW5mbyk7CiAgICBpZiAoQVJHMiAhPSAwKQpAQCAtMzQwOSw3ICszNDE2LDggQEAKIAogUFJFKHN5c19ydF90Z3NpZ3F1ZXVlaW5mbykKIHsKLSAgIFBSSU5UKCJzeXNfcnRfdGdzaWdxdWV1ZWluZm8oJWxkLCAlbGQsICVsZCwgJSNseCkiLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcnRfdGdzaWdxdWV1ZWluZm8oJWxkLCAlbGQsICVsZCwgJSNseCkiLAorICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJydF90Z3NpZ3F1ZXVlaW5mbyIsCiAgICAgICAgICAgICAgICAgIGludCwgdGdpZCwgaW50LCBwaWQsIGludCwgc2lnLCB2a2lfc2lnaW5mb190ICosIHVpbmZvKTsKICAgIGlmIChBUkczICE9IDApCkBAIC0zNDMzLDcgKzM0NDEsNyBAQAogICAgICAgcmV0dXJuIEVJTlZBTCBpZiBpdCBpc24ndC4KICAgICAqLwogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3J0X3NpZ3N1c3BlbmQgKCAlI2x4LCAlbGQgKSIsIEFSRzEsQVJHMiApOworICAgUFJJTlQoInN5c19ydF9zaWdzdXNwZW5kICggJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyICk7CiAgICBQUkVfUkVHX1JFQUQyKGludCwgInJ0X3NpZ3N1c3BlbmQiLCB2a2lfc2lnc2V0X3QgKiwgbWFzaywgdmtpX3NpemVfdCwgc2l6ZSkKICAgIGlmIChBUkcxICE9IChBZGRyKU5VTEwpIHsKICAgICAgIFBSRV9NRU1fUkVBRCggInJ0X3NpZ3N1c3BlbmQobWFzaykiLCBBUkcxLCBzaXplb2YodmtpX3NpZ3NldF90KSApOwpAQCAtMzU2NCw4ICszNTcyLDggQEAKIAogUFJFKHN5c19pcGMpCiB7Ci0gICBQUklOVCgic3lzX2lwYyAoICVsZCwgJWxkLCAlbGQsICVsZCwgJSNseCwgJWxkICkiLAotICAgICAgICAgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1LEFSRzYpOworICAgUFJJTlQoInN5c19pcGMgKCAlbHUsICVsZCwgJWxkLCAlbGQsICUjbHgsICVsZCApIiwKKyAgICAgICAgIEFSRzEsIFNBUkcyLCBTQVJHMywgU0FSRzQsIEFSRzUsIFNBUkc2KTsKIAogICAgc3dpdGNoIChBUkcxIC8qIGNhbGwgKi8pIHsKICAgIGNhc2UgVktJX1NFTU9QOgpAQCAtMzY3Nyw3ICszNjg1LDcgQEAKICAgICAgIE1MXyhnZW5lcmljX1BSRV9zeXNfc2htY3RsKSggdGlkLCBBUkcyLCBBUkczLCBBUkc1ICk7CiAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6Ci0gICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJGQVRBTDogdW5oYW5kbGVkIHN5c2NhbGwoaXBjKSAlbGRcbiIsIEFSRzEgKTsKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIkZBVEFMOiB1bmhhbmRsZWQgc3lzY2FsbChpcGMpICVsdVxuIiwgQVJHMSApOwogICAgICAgVkdfKGNvcmVfcGFuaWMpKCIuLi4gYnllIVxuIik7CiAgICAgICBicmVhazsgLypOT1RSRUFDSEVEKi8KICAgIH0KQEAgLTM3NDYsNyArMzc1NCw3IEBACiAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0JCSAgICJGQVRBTDogdW5oYW5kbGVkIHN5c2NhbGwoaXBjKSAlbGRcbiIsCisJCSAgICJGQVRBTDogdW5oYW5kbGVkIHN5c2NhbGwoaXBjKSAlbHVcbiIsCiAJCSAgIEFSRzEgKTsKICAgICAgIFZHXyhjb3JlX3BhbmljKSgiLi4uIGJ5ZSFcbiIpOwogICAgICAgYnJlYWs7IC8qTk9UUkVBQ0hFRCovCkBAIC0zNzU2LDE0ICszNzY0LDE0IEBACiAKIFBSRShzeXNfc2VtZ2V0KQogewotICAgUFJJTlQoInN5c19zZW1nZXQgKCAlbGQsICVsZCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfc2VtZ2V0ICggJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzZW1nZXQiLCB2a2lfa2V5X3QsIGtleSwgaW50LCBuc2VtcywgaW50LCBzZW1mbGcpOwogfQogCiBQUkUoc3lzX3NlbW9wKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3NlbW9wICggJWxkLCAlI2x4LCAlbHUgKSIsQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19zZW1vcCAoICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzZW1vcCIsCiAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIHN0cnVjdCBzZW1idWYgKiwgc29wcywgdW5zaWduZWQsIG5zb29wcyk7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3NlbW9wKSh0aWQsIEFSRzEsQVJHMixBUkczKTsKQEAgLTM3NzQsMjUgKzM3ODIsMjUgQEAKICAgIHN3aXRjaCAoQVJHMyAmIH5WS0lfSVBDXzY0KSB7CiAgICBjYXNlIFZLSV9JUENfSU5GTzoKICAgIGNhc2UgVktJX1NFTV9JTkZPOgotICAgICAgUFJJTlQoInN5c19zZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgICAgUFJJTlQoInN5c19zZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNlbWN0bCIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIGludCwgc2VtbnVtLCBpbnQsIGNtZCwgc3RydWN0IHNlbWluZm8gKiwgYXJnKTsKICAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfSVBDX1NUQVQ6CiAgICBjYXNlIFZLSV9TRU1fU1RBVDoKICAgIGNhc2UgVktJX0lQQ19TRVQ6Ci0gICAgICBQUklOVCgic3lzX3NlbWN0bCAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICAgICBQUklOVCgic3lzX3NlbWN0bCAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQpOwogICAgICAgUFJFX1JFR19SRUFENChsb25nLCAic2VtY3RsIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kLCBzdHJ1Y3Qgc2VtaWRfZHMgKiwgYXJnKTsKICAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfR0VUQUxMOgogICAgY2FzZSBWS0lfU0VUQUxMOgotICAgICAgUFJJTlQoInN5c19zZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgICAgUFJJTlQoInN5c19zZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNlbWN0bCIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIGludCwgc2VtbnVtLCBpbnQsIGNtZCwgdW5zaWduZWQgc2hvcnQgKiwgYXJnKTsKICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKLSAgICAgIFBSSU5UKCJzeXNfc2VtY3RsICggJWxkLCAlbGQsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICAgICBQUklOVCgic3lzX3NlbWN0bCAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAic2VtY3RsIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kKTsKICAgICAgIGJyZWFrOwpAQCAtMzgxNiw3ICszODI0LDcgQEAKIFBSRShzeXNfc2VtdGltZWRvcCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19zZW10aW1lZG9wICggJWxkLCAlI2x4LCAlbHUsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX3NlbXRpbWVkb3AgKCAlbGQsICUjbHgsICVsdSwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAic2VtdGltZWRvcCIsCiAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIHN0cnVjdCBzZW1idWYgKiwgc29wcywgdW5zaWduZWQsIG5zb29wcywKICAgICAgICAgICAgICAgICAgc3RydWN0IHRpbWVzcGVjICosIHRpbWVvdXQpOwpAQCAtMzgyNSwxMyArMzgzMywxMyBAQAogCiBQUkUoc3lzX21zZ2dldCkKIHsKLSAgIFBSSU5UKCJzeXNfbXNnZ2V0ICggJWxkLCAlbGQgKSIsQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfbXNnZ2V0ICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJtc2dnZXQiLCB2a2lfa2V5X3QsIGtleSwgaW50LCBtc2dmbGcpOwogfQogCiBQUkUoc3lzX21zZ3NuZCkKIHsKLSAgIFBSSU5UKCJzeXNfbXNnc25kICggJWxkLCAlI2x4LCAlbGQsICVsZCApIixBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfbXNnc25kICggJWxkLCAlI2x4LCAlbHUsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgIm1zZ3NuZCIsCiAgICAgICAgICAgICAgICAgIGludCwgbXNxaWQsIHN0cnVjdCBtc2didWYgKiwgbXNncCwgdmtpX3NpemVfdCwgbXNnc3osIGludCwgbXNnZmxnKTsKICAgIE1MXyhsaW51eF9QUkVfc3lzX21zZ3NuZCkodGlkLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKQEAgLTM4NDEsNyArMzg0OSw4IEBACiAKIFBSRShzeXNfbXNncmN2KQogewotICAgUFJJTlQoInN5c19tc2dyY3YgKCAlbGQsICUjbHgsICVsZCwgJWxkLCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgIFBSSU5UKCJzeXNfbXNncmN2ICggJWxkLCAlI2x4LCAlbHUsICVsZCwgJWxkICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0LCBTQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJtc2dyY3YiLAogICAgICAgICAgICAgICAgICBpbnQsIG1zcWlkLCBzdHJ1Y3QgbXNnYnVmICosIG1zZ3AsIHZraV9zaXplX3QsIG1zZ3N6LAogICAgICAgICAgICAgICAgICBsb25nLCBtc2d5dHAsIGludCwgbXNnZmxnKTsKQEAgLTM4NTYsNyArMzg2NSw3IEBACiAKIFBSRShzeXNfbXNnY3RsKQogewotICAgUFJJTlQoInN5c19tc2djdGwgKCAlbGQsICVsZCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX21zZ2N0bCAoICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAibXNnY3RsIiwKICAgICAgICAgICAgICAgICAgaW50LCBtc3FpZCwgaW50LCBjbWQsIHN0cnVjdCBtc3FpZF9kcyAqLCBidWYpOwogICAgTUxfKGxpbnV4X1BSRV9zeXNfbXNnY3RsKSh0aWQsIEFSRzEsQVJHMixBUkczKTsKQEAgLTM4NjksNyArMzg3OCw3IEBACiAKIFBSRShzeXNfc2htZ2V0KQogewotICAgUFJJTlQoInN5c19zaG1nZXQgKCAlbGQsICVsZCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfc2htZ2V0ICggJWxkLCAlbHUsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNobWdldCIsIHZraV9rZXlfdCwga2V5LCB2a2lfc2l6ZV90LCBzaXplLCBpbnQsIHNobWZsZyk7CiAgICBpZiAoQVJHMyAmIFZLSV9TSE1fSFVHRVRMQikgewogICAgICAgc3RhdGljIEJvb2wgd2FybmluZ19naXZlbiA9IEZhbHNlOwpAQCAtMzg4NSw3ICszODk0LDcgQEAKIFBSRSh3cmFwX3N5c19zaG1hdCkKIHsKICAgIFVXb3JkIGFyZzJ0bXA7Ci0gICBQUklOVCgid3JhcF9zeXNfc2htYXQgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgid3JhcF9zeXNfc2htYXQgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNobWF0IiwKICAgICAgICAgICAgICAgICAgaW50LCBzaG1pZCwgY29uc3Qgdm9pZCAqLCBzaG1hZGRyLCBpbnQsIHNobWZsZyk7CiAjaWYgZGVmaW5lZChWR1BfYXJtX2xpbnV4KQpAQCAtMzkyMyw3ICszOTMyLDcgQEAKIAogUFJFKHN5c19zaG1jdGwpCiB7Ci0gICBQUklOVCgic3lzX3NobWN0bCAoICVsZCwgJWxkLCAlI2x4ICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfc2htY3RsICggJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzaG1jdGwiLAogICAgICAgICAgICAgICAgICBpbnQsIHNobWlkLCBpbnQsIGNtZCwgc3RydWN0IHNobWlkX2RzICosIGJ1Zik7CiAjaWZkZWYgVkdQX2FtZDY0X2xpbnV4CkBAIC0zOTcwLDcgKzM5NzksNyBAQAogICAgfQogCiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc29ja2V0Y2FsbCAoICVsZCwgJSNseCApIixBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19zb2NrZXRjYWxsICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzb2NrZXRjYWxsIiwgaW50LCBjYWxsLCB1bnNpZ25lZCBsb25nICosIGFyZ3MpOwogCiAgICBzd2l0Y2ggKEFSRzEgLyogcmVxdWVzdCAqLykgewpAQCAtNDI0MCw3ICs0MjQ5LDcgQEAKIAogUFJFKHN5c19zb2NrZXQpCiB7Ci0gICBQUklOVCgic3lzX3NvY2tldCAoICVsZCwgJWxkLCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19zb2NrZXQgKCAlbGQsICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNvY2tldCIsIGludCwgZG9tYWluLCBpbnQsIHR5cGUsIGludCwgcHJvdG9jb2wpOwogfQogUE9TVChzeXNfc29ja2V0KQpAQCAtNDI1MywxNiArNDI2MiwxOCBAQAogCiBQUkUoc3lzX3NldHNvY2tvcHQpCiB7Ci0gICBQUklOVCgic3lzX3NldHNvY2tvcHQgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgIFBSSU5UKCJzeXNfc2V0c29ja29wdCAoICVsZCwgJWxkLCAlbGQsICUjbHgsICVsdSApIiwKKyAgICAgICAgIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQsIEFSRzUpOwogICAgUFJFX1JFR19SRUFENShsb25nLCAic2V0c29ja29wdCIsCiAgICAgICAgICAgICAgICAgIGludCwgcywgaW50LCBsZXZlbCwgaW50LCBvcHRuYW1lLAotICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICosIG9wdHZhbCwgaW50LCBvcHRsZW4pOworICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICosIG9wdHZhbCwgdW5zaWduZWQsIG9wdGxlbik7IC8vIHNvY2tsZW5fdAogICAgTUxfKGxpbnV4X1BSRV9zeXNfc2V0c29ja29wdCkodGlkLCBBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUpOwogfQogCiBQUkUoc3lzX2dldHNvY2tvcHQpCiB7Ci0gICBQUklOVCgic3lzX2dldHNvY2tvcHQgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLEFSRzEsQVJHMixBUkczLEFSRzQsQVJHNSk7CisgICBQUklOVCgic3lzX2dldHNvY2tvcHQgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbGQgKSIsCisgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0LCBTQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJnZXRzb2Nrb3B0IiwKICAgICAgICAgICAgICAgICAgaW50LCBzLCBpbnQsIGxldmVsLCBpbnQsIG9wdG5hbWUsCiAgICAgICAgICAgICAgICAgIHZvaWQgKiwgb3B0dmFsLCBpbnQsICpvcHRsZW4pOwpAQCAtNDI3OCw3ICs0Mjg5LDcgQEAKIFBSRShzeXNfY29ubmVjdCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19jb25uZWN0ICggJWxkLCAlI2x4LCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19jb25uZWN0ICggJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJjb25uZWN0IiwKICAgICAgICAgICAgICAgICAgaW50LCBzb2NrZmQsIHN0cnVjdCBzb2NrYWRkciAqLCBzZXJ2X2FkZHIsIGludCwgYWRkcmxlbik7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX2Nvbm5lY3QpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtNDI4Nyw5ICs0Mjk4LDkgQEAKIFBSRShzeXNfYWNjZXB0KQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX2FjY2VwdCAoICVsZCwgJSNseCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfYWNjZXB0ICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJhY2NlcHQiLAotICAgICAgICAgICAgICAgICBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBhZGRyLCBpbnQsICphZGRybGVuKTsKKyAgICAgICAgICAgICAgICAgaW50LCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgYWRkciwgaW50ICosIGFkZHJsZW4pOwogICAgTUxfKGdlbmVyaWNfUFJFX3N5c19hY2NlcHQpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwogfQogUE9TVChzeXNfYWNjZXB0KQpAQCAtNDMwNCw5ICs0MzE1LDkgQEAKIFBSRShzeXNfYWNjZXB0NCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19hY2NlcHQ0ICggJWxkLCAlI2x4LCAlbGQsICVsZCApIixBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfYWNjZXB0NCAoICVsZCwgJSNseCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAiYWNjZXB0NCIsCi0gICAgICAgICAgICAgICAgIGludCwgcywgc3RydWN0IHNvY2thZGRyICosIGFkZHIsIGludCwgKmFkZHJsZW4sIGludCwgZmxhZ3MpOworICAgICAgICAgICAgICAgICBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBhZGRyLCBpbnQgKiwgYWRkcmxlbiwgaW50LCBmbGFncyk7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX2FjY2VwdCkodGlkLCBBUkcxLEFSRzIsQVJHMyk7CiB9CiBQT1NUKHN5c19hY2NlcHQ0KQpAQCAtNDMyMSwxMCArNDMzMiwxMCBAQAogUFJFKHN5c19zZW5kKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3NlbmQgKCAlbGQsICUjbHgsICVsZCwgJWx1ICkiLEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgUFJJTlQoInN5c19zZW5kICggJWxkLCAlI2x4LCAlbHUsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNlbmQiLAotICAgICAgICAgICAgICAgICBpbnQsIHMsIGNvbnN0IHZvaWQgKiwgbXNnLCBpbnQsIGxlbiwgCi0gICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmxhZ3MpOworICAgICAgICAgICAgICAgICBpbnQsIHMsIGNvbnN0IHZvaWQgKiwgbXNnLCB2a2lfc2l6ZV90LCBsZW4sIAorICAgICAgICAgICAgICAgICBpbnQsIGZsYWdzKTsKIAogICAgTUxfKGdlbmVyaWNfUFJFX3N5c19zZW5kKSggdGlkLCBBUkcxLCBBUkcyLCBBUkczICk7CiB9CkBAIC00MzMyLDkgKzQzNDMsMTAgQEAKIFBSRShzeXNfc2VuZHRvKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3NlbmR0byAoICVsZCwgJSNseCwgJWxkLCAlbHUsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUsQVJHNik7CisgICBQUklOVCgic3lzX3NlbmR0byAoICVsZCwgJSNseCwgJWx1LCAlbHUsICUjbHgsICVsZCApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBTQVJHNik7CiAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJzZW5kdG8iLAotICAgICAgICAgICAgICAgICBpbnQsIHMsIGNvbnN0IHZvaWQgKiwgbXNnLCBpbnQsIGxlbiwgCisgICAgICAgICAgICAgICAgIGludCwgcywgY29uc3Qgdm9pZCAqLCBtc2csIHZraV9zaXplX3QsIGxlbiwgCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmxhZ3MsIAogICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiwgdG8sIGludCwgdG9sZW4pOwogICAgTUxfKGdlbmVyaWNfUFJFX3N5c19zZW5kdG8pKHRpZCwgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1LEFSRzYpOwpAQCAtNDM0Myw4ICs0MzU1LDggQEAKIFBSRSAoc3lzX3JlY3YpIAogewogICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgUFJJTlQgKCJzeXNfcmVjdiAoICVsZCwgJSNseCwgJWxkLCAlbHUgKSIsIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOwotICBQUkVfUkVHX1JFQUQ0IChsb25nLCAicmVjdiIsIGludCwgcywgdm9pZCAqLCBidWYsIGludCwgbGVuLAorICBQUklOVCAoInN5c19yZWN2ICggJWxkLCAlI2x4LCAlbHUsICVsdSApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICBQUkVfUkVHX1JFQUQ0IChsb25nLCAicmVjdiIsIGludCwgcywgdm9pZCAqLCBidWYsIHZraV9zaXplX3QsIGxlbiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmbGFncyk7CiAgIE1MXyAoZ2VuZXJpY19QUkVfc3lzX3JlY3YpICh0aWQsIEFSRzEsIEFSRzIsIEFSRzMpOwogfSAKQEAgLTQzNTcsOSArNDM2OSwxMCBAQAogUFJFKHN5c19yZWN2ZnJvbSkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19yZWN2ZnJvbSAoICVsZCwgJSNseCwgJWxkLCAlbHUsICUjbHgsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1LEFSRzYpOworICAgUFJJTlQoInN5c19yZWN2ZnJvbSAoICVsZCwgJSNseCwgJWx1LCAlbHUsICUjbHgsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNik7CiAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJyZWN2ZnJvbSIsCi0gICAgICAgICAgICAgICAgIGludCwgcywgdm9pZCAqLCBidWYsIGludCwgbGVuLCB1bnNpZ25lZCBpbnQsIGZsYWdzLAorICAgICAgICAgICAgICAgICBpbnQsIHMsIHZvaWQgKiwgYnVmLCB2a2lfc2l6ZV90LCBsZW4sIHVuc2lnbmVkIGludCwgZmxhZ3MsCiAgICAgICAgICAgICAgICAgIHN0cnVjdCBzb2NrYWRkciAqLCBmcm9tLCBpbnQgKiwgZnJvbWxlbik7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3JlY3Zmcm9tKSh0aWQsIEFSRzEsQVJHMixBUkczLEFSRzQsQVJHNSxBUkc2KTsKIH0KQEAgLTQzNzMsMTcgKzQzODYsMTggQEAKIFBSRShzeXNfc2VuZG1zZykKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19zZW5kbXNnICggJWxkLCAlI2x4LCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19zZW5kbXNnICggJWxkLCAlI2x4LCAlbHUgKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNlbmRtc2ciLAotICAgICAgICAgICAgICAgICBpbnQsIHMsIGNvbnN0IHN0cnVjdCBtc2doZHIgKiwgbXNnLCBpbnQsIGZsYWdzKTsKKyAgICAgICAgICAgICAgICAgaW50LCBzLCBjb25zdCBzdHJ1Y3QgbXNnaGRyICosIG1zZywgdW5zaWduZWQgaW50LCBmbGFncyk7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3NlbmRtc2cpKHRpZCwgIm1zZyIsIChzdHJ1Y3QgdmtpX21zZ2hkciAqKUFSRzIpOwogfQogCiBQUkUoc3lzX3JlY3Ztc2cpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfcmVjdm1zZyAoICVsZCwgJSNseCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKLSAgIFBSRV9SRUdfUkVBRDMobG9uZywgInJlY3Ztc2ciLCBpbnQsIHMsIHN0cnVjdCBtc2doZHIgKiwgbXNnLCBpbnQsIGZsYWdzKTsKKyAgIFBSSU5UKCJzeXNfcmVjdm1zZyAoICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJyZWN2bXNnIiwgaW50LCBzLCBzdHJ1Y3QgbXNnaGRyICosIG1zZywKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmbGFncyk7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3JlY3Ztc2cpKHRpZCwgIm1zZyIsIChzdHJ1Y3QgdmtpX21zZ2hkciAqKUFSRzIpOwogfQogUE9TVChzeXNfcmVjdm1zZykKQEAgLTQzOTQsMTMgKzQ0MDgsMTMgQEAKIFBSRShzeXNfc2h1dGRvd24pCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc2h1dGRvd24gKCAlbGQsICVsZCApIixBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19zaHV0ZG93biAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOwogICAgUFJFX1JFR19SRUFEMihpbnQsICJzaHV0ZG93biIsIGludCwgcywgaW50LCBob3cpOwogfQogCiBQUkUoc3lzX2JpbmQpCiB7Ci0gICBQUklOVCgic3lzX2JpbmQgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX2JpbmQgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImJpbmQiLAogICAgICAgICAgICAgICAgICBpbnQsIHNvY2tmZCwgc3RydWN0IHNvY2thZGRyICosIG15X2FkZHIsIGludCwgYWRkcmxlbik7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX2JpbmQpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtNDQwOCwxMyArNDQyMiwxMyBAQAogCiBQUkUoc3lzX2xpc3RlbikKIHsKLSAgIFBSSU5UKCJzeXNfbGlzdGVuICggJWxkLCAlbGQgKSIsQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfbGlzdGVuICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJsaXN0ZW4iLCBpbnQsIHMsIGludCwgYmFja2xvZyk7CiB9CiAKIFBSRShzeXNfZ2V0c29ja25hbWUpCiB7Ci0gICBQUklOVCgic3lzX2dldHNvY2tuYW1lICggJWxkLCAlI2x4LCAlI2x4ICkiLEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfZ2V0c29ja25hbWUgKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImdldHNvY2tuYW1lIiwKICAgICAgICAgICAgICAgICAgaW50LCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgbmFtZSwgaW50ICosIG5hbWVsZW4pOwogICAgTUxfKGdlbmVyaWNfUFJFX3N5c19nZXRzb2NrbmFtZSkodGlkLCBBUkcxLEFSRzIsQVJHMyk7CkBAIC00NDI4LDcgKzQ0NDIsNyBAQAogCiBQUkUoc3lzX2dldHBlZXJuYW1lKQogewotICAgUFJJTlQoInN5c19nZXRwZWVybmFtZSAoICVsZCwgJSNseCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX2dldHBlZXJuYW1lICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJnZXRwZWVybmFtZSIsCiAgICAgICAgICAgICAgICAgIGludCwgcywgc3RydWN0IHNvY2thZGRyICosIG5hbWUsIGludCAqLCBuYW1lbGVuKTsKICAgIE1MXyhnZW5lcmljX1BSRV9zeXNfZ2V0cGVlcm5hbWUpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtNDQ0Miw3ICs0NDU2LDcgQEAKIAogUFJFKHN5c19zb2NrZXRwYWlyKQogewotICAgUFJJTlQoInN5c19zb2NrZXRwYWlyICggJWxkLCAlbGQsICVsZCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfc29ja2V0cGFpciAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAic29ja2V0cGFpciIsCiAgICAgICAgICAgICAgICAgIGludCwgZCwgaW50LCB0eXBlLCBpbnQsIHByb3RvY29sLCBpbnQqLCBzdik7CiAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3NvY2tldHBhaXIpKHRpZCwgQVJHMSxBUkcyLEFSRzMsQVJHNCk7CkBAIC00NDY2LDEyICs0NDgwLDE0IEBACiAKICAgIGlmIChBUkczICYgVktJX09fQ1JFQVQpIHsKICAgICAgIC8vIDQtYXJnIHZlcnNpb24KLSAgICAgIFBSSU5UKCJzeXNfb3BlbmF0ICggJWxkLCAlI2x4KCVzKSwgJWxkLCAlbGQgKSIsQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMsQVJHNCk7CisgICAgICBQUklOVCgic3lzX29wZW5hdCAoICVsZCwgJSNseCglcyksICVsZCwgJWxkICkiLAorICAgICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgU0FSRzMsIFNBUkc0KTsKICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgIm9wZW5hdCIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgZGZkLCBjb25zdCBjaGFyICosIGZpbGVuYW1lLCBpbnQsIGZsYWdzLCBpbnQsIG1vZGUpOwogICAgfSBlbHNlIHsKICAgICAgIC8vIDMtYXJnIHZlcnNpb24KLSAgICAgIFBSSU5UKCJzeXNfb3BlbmF0ICggJWxkLCAlI2x4KCVzKSwgJWxkICkiLEFSRzEsQVJHMiwoY2hhciopQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJzeXNfb3BlbmF0ICggJWxkLCAlI2x4KCVzKSwgJWxkICkiLAorICAgICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgU0FSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAib3BlbmF0IiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNvbnN0IGNoYXIgKiwgZmlsZW5hbWUsIGludCwgZmxhZ3MpOwogICAgfQpAQCAtNDU0MSw3ICs0NTU3LDggQEAKIFBSRShzeXNfbWtkaXJhdCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19ta2RpcmF0ICggJWxkLCAlI2x4KCVzKSwgJWxkICkiLCBBUkcxLEFSRzIsKGNoYXIqKUFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX21rZGlyYXQgKCAlbGQsICUjbHgoJXMpLCAlbGQgKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJta2RpcmF0IiwKICAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNvbnN0IGNoYXIgKiwgcGF0aG5hbWUsIGludCwgbW9kZSk7CiAgICBQUkVfTUVNX1JBU0NJSVooICJta2RpcmF0KHBhdGhuYW1lKSIsIEFSRzIgKTsKQEAgLTQ1NDksNyArNDU2Niw4IEBACiAKIFBSRShzeXNfbWtub2RhdCkKIHsKLSAgUFJJTlQoInN5c19ta25vZGF0ICggJWxkLCAlI2x4KCVzKSwgMHglbHgsIDB4JWx4ICkiLCBBUkcxLEFSRzIsKGNoYXIqKUFSRzIsQVJHMyxBUkc0ICk7CisgICBQUklOVCgic3lzX21rbm9kYXQgKCAlbGQsICUjbHgoJXMpLCAweCVseCwgMHglbHggKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBBUkczLCBBUkc0ICk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJta25vZGF0IiwKICAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNvbnN0IGNoYXIgKiwgcGF0aG5hbWUsIGludCwgbW9kZSwgdW5zaWduZWQsIGRldik7CiAgICBQUkVfTUVNX1JBU0NJSVooICJta25vZGF0KHBhdGhuYW1lKSIsIEFSRzIgKTsKQEAgLTQ1NTcsNyArNDU3NSw4IEBACiAKIFBSRShzeXNfZmNob3duYXQpCiB7Ci0gICBQUklOVCgic3lzX2ZjaG93bmF0ICggJWxkLCAlI2x4KCVzKSwgMHglbHgsIDB4JWx4ICkiLCBBUkcxLEFSRzIsKGNoYXIqKUFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfZmNob3duYXQgKCAlbGQsICUjbHgoJXMpLCAweCVseCwgMHglbHggKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgImZjaG93bmF0IiwKICAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNvbnN0IGNoYXIgKiwgcGF0aCwKICAgICAgICAgICAgICAgICAgdmtpX3VpZF90LCBvd25lciwgdmtpX2dpZF90LCBncm91cCk7CkBAIC00NTY2LDcgKzQ1ODUsOCBAQAogCiBQUkUoc3lzX2Z1dGltZXNhdCkKIHsKLSAgIFBSSU5UKCJzeXNfZnV0aW1lc2F0ICggJWxkLCAlI2x4KCVzKSwgJSNseCApIiwgQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19mdXRpbWVzYXQgKCAlbGQsICUjbHgoJXMpLCAlI2x4ICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmdXRpbWVzYXQiLAogICAgICAgICAgICAgICAgICBpbnQsIGRmZCwgY2hhciAqLCBmaWxlbmFtZSwgc3RydWN0IHRpbWV2YWwgKiwgdHZwKTsKICAgIGlmIChBUkcyICE9IDApCkBAIC00NTc3LDcgKzQ1OTcsOCBAQAogCiBQUkUoc3lzX3V0aW1lbnNhdCkKIHsKLSAgIFBSSU5UKCJzeXNfdXRpbWVuc2F0ICggJWxkLCAlI2x4KCVzKSwgJSNseCwgMHglbHggKSIsIEFSRzEsQVJHMiwoY2hhciopQVJHMixBUkczLEFSRzQpOworICAgUFJJTlQoInN5c191dGltZW5zYXQgKCAlbGQsICUjbHgoJXMpLCAlI2x4LCAweCVseCApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIEFSRzMsIEFSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAidXRpbWVuc2F0IiwKICAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNoYXIgKiwgZmlsZW5hbWUsIHN0cnVjdCB0aW1lc3BlYyAqLCB1dGltZXMsIGludCwgZmxhZ3MpOwogICAgaWYgKEFSRzIgIT0gMCkKQEAgLTQ1ODksNyArNDYxMCw4IEBACiBQUkUoc3lzX25ld2ZzdGF0YXQpCiB7CiAgICBGVVNFX0NPTVBBVElCTEVfTUFZX0JMT0NLKCk7Ci0gICBQUklOVCgic3lzX25ld2ZzdGF0YXQgKCAlbGQsICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLEFSRzIsKGNoYXIqKUFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX25ld2ZzdGF0YXQgKCAlbGQsICUjbHgoJXMpLCAlI2x4ICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmc3RhdGF0IiwKICAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNoYXIgKiwgZmlsZV9uYW1lLCBzdHJ1Y3Qgc3RhdCAqLCBidWYpOwogICAgUFJFX01FTV9SQVNDSUlaKCAiZnN0YXRhdChmaWxlX25hbWUpIiwgQVJHMiApOwpAQCAtNDYwNCwxNCArNDYyNiwxNSBAQAogUFJFKHN5c191bmxpbmthdCkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c191bmxpbmthdCAoICVsZCwgJSNseCglcykgKSIsIEFSRzEsQVJHMiwoY2hhciopQVJHMik7CisgICBQUklOVCgic3lzX3VubGlua2F0ICggJWxkLCAlI2x4KCVzKSApIiwgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJ1bmxpbmthdCIsIGludCwgZGZkLCBjb25zdCBjaGFyICosIHBhdGhuYW1lKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggInVubGlua2F0KHBhdGhuYW1lKSIsIEFSRzIgKTsKIH0KIAogUFJFKHN5c19yZW5hbWVhdCkKIHsKLSAgIFBSSU5UKCJzeXNfcmVuYW1lYXQgKCAlbGQsICUjbHgoJXMpLCAlbGQsICUjbHgoJXMpICkiLCBBUkcxLEFSRzIsKGNoYXIqKUFSRzIsQVJHMyxBUkc0LChjaGFyKilBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcmVuYW1lYXQgKCAlbGQsICUjbHgoJXMpLCAlbGQsICUjbHgoJXMpICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgU0FSRzMsIEFSRzQsIChIQ2hhciopQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJyZW5hbWVhdCIsCiAgICAgICAgICAgICAgICAgIGludCwgb2xkZGZkLCBjb25zdCBjaGFyICosIG9sZHBhdGgsCiAgICAgICAgICAgICAgICAgIGludCwgbmV3ZGZkLCBjb25zdCBjaGFyICosIG5ld3BhdGgpOwpAQCAtNDYyMiw3ICs0NjQ1LDggQEAKIFBSRShzeXNfbGlua2F0KQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX2xpbmthdCAoICVsZCwgJSNseCglcyksICVsZCwgJSNseCglcyksICVsZCApIixBUkcxLEFSRzIsKGNoYXIqKUFSRzIsQVJHMyxBUkc0LChjaGFyKilBUkc0LEFSRzUpOworICAgUFJJTlQoInN5c19saW5rYXQgKCAlbGQsICUjbHgoJXMpLCAlbGQsICUjbHgoJXMpLCAlbGQgKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBTQVJHMywgQVJHNCwgKEhDaGFyKilBUkc0LCBTQVJHNSk7CiAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJsaW5rYXQiLAogICAgICAgICAgICAgICAgICBpbnQsIG9sZGRmZCwgY29uc3QgY2hhciAqLCBvbGRwYXRoLAogICAgICAgICAgICAgICAgICBpbnQsIG5ld2RmZCwgY29uc3QgY2hhciAqLCBuZXdwYXRoLApAQCAtNDYzNCw3ICs0NjU4LDggQEAKIFBSRShzeXNfc3ltbGlua2F0KQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3N5bWxpbmthdCAoICUjbHgoJXMpLCAlbGQsICUjbHgoJXMpICkiLEFSRzEsKGNoYXIqKUFSRzEsQVJHMixBUkczLChjaGFyKilBUkczKTsKKyAgIFBSSU5UKCJzeXNfc3ltbGlua2F0ICggJSNseCglcyksICVsZCwgJSNseCglcykgKSIsCisgICAgICAgICBBUkcxLCAoSENoYXIqKUFSRzEsIFNBUkcyLCBBUkczLCAoSENoYXIqKUFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAic3ltbGlua2F0IiwKICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBvbGRwYXRoLCBpbnQsIG5ld2RmZCwgY29uc3QgY2hhciAqLCBuZXdwYXRoKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggInN5bWxpbmthdChvbGRwYXRoKSIsIEFSRzEgKTsKQEAgLTQ2NDYsOSArNDY3MSwxMCBAQAogICAgSENoYXIgbmFtZVszMF07ICAgICAgIC8vIGxhcmdlIGVub3VnaAogICAgV29yZCAgc2F2ZWQgPSBTWVNOTzsKIAotICAgUFJJTlQoInN5c19yZWFkbGlua2F0ICggJWxkLCAlI2x4KCVzKSwgJSNseCwgJWxsdSApIiwgQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMsKFVMb25nKUFSRzQpOworICAgUFJJTlQoInN5c19yZWFkbGlua2F0ICggJWxkLCAlI2x4KCVzKSwgJSNseCwgJWx1ICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJyZWFkbGlua2F0IiwKLSAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNvbnN0IGNoYXIgKiwgcGF0aCwgY2hhciAqLCBidWYsIGludCwgYnVmc2l6KTsKKyAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNvbnN0IGNoYXIgKiwgcGF0aCwgY2hhciAqLCBidWYsIHZraV9zaXplX3QsIGJ1ZnNpeik7CiAgICBQUkVfTUVNX1JBU0NJSVooICJyZWFkbGlua2F0KHBhdGgpIiwgQVJHMiApOwogICAgUFJFX01FTV9XUklURSggInJlYWRsaW5rYXQoYnVmKSIsIEFSRzMsQVJHNCApOwogCkBAIC00Njc0LDcgKzQ3MDAsOCBAQAogCiBQUkUoc3lzX2ZjaG1vZGF0KQogewotICAgUFJJTlQoInN5c19mY2htb2RhdCAoICVsZCwgJSNseCglcyksICVsZCApIiwgQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19mY2htb2RhdCAoICVsZCwgJSNseCglcyksICVsdSApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIEFSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNobW9kYXQiLAogICAgICAgICAgICAgICAgICBpbnQsIGRmZCwgY29uc3QgY2hhciAqLCBwYXRoLCB2a2lfbW9kZV90LCBtb2RlKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggImZjaG1vZGF0KHBhdGgpIiwgQVJHMiApOwpAQCAtNDY4Miw3ICs0NzA5LDggQEAKIAogUFJFKHN5c19mYWNjZXNzYXQpCiB7Ci0gICBQUklOVCgic3lzX2ZhY2Nlc3NhdCAoICVsZCwgJSNseCglcyksICVsZCApIiwgQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19mYWNjZXNzYXQgKCAlbGQsICUjbHgoJXMpLCAlbGQgKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBTQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmYWNjZXNzYXQiLAogICAgICAgICAgICAgICAgICBpbnQsIGRmZCwgY29uc3QgY2hhciAqLCBwYXRobmFtZSwgaW50LCBtb2RlKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggImZhY2Nlc3NhdChwYXRobmFtZSkiLCBBUkcyICk7CkBAIC00NjkwLDcgKzQ3MTgsOCBAQAogCiBQUkUoc3lzX25hbWVfdG9faGFuZGxlX2F0KQogewotICAgUFJJTlQoInN5c19uYW1lX3RvX2hhbmRsZV9hdCAoICVsZCwgJSNseCglcyksICUjbHgsICUjbHgsICVsZCApIiwgQVJHMSwgQVJHMiwgKGNoYXIqKUFSRzIsIEFSRzMsIEFSRzQsIEFSRzUpOworICAgUFJJTlQoInN5c19uYW1lX3RvX2hhbmRsZV9hdCAoICVsZCwgJSNseCglcyksICUjbHgsICUjbHgsICVsZCApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIEFSRzMsIEFSRzQsIFNBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUoaW50LCAibmFtZV90b19oYW5kbGVfYXQiLAogICAgICAgICAgICAgICAgICBpbnQsIGRmZCwgY29uc3QgY2hhciAqLCBuYW1lLAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX2ZpbGVfaGFuZGxlICosIGhhbmRsZSwKQEAgLTQ3MTQsNyArNDc0Myw3IEBACiBQUkUoc3lzX29wZW5fYnlfaGFuZGxlX2F0KQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX29wZW5fYnlfaGFuZGxlX2F0ICggJWxkLCAlI2x4LCAlbGQgKSIsIEFSRzEsIEFSRzIsIEFSRzMpOworICAgUFJJTlQoInN5c19vcGVuX2J5X2hhbmRsZV9hdCAoICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOwogICAgUFJFX1JFR19SRUFEMyhpbnQsICJvcGVuX2J5X2hhbmRsZV9hdCIsCiAgICAgICAgICAgICAgICAgIGludCwgbW91bnRkaXJmZCwKICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9maWxlX2hhbmRsZSAqLCBoYW5kbGUsCkBAIC00NzQ2LDEzICs0Nzc1LDE0IEBACiAjaWYgVkdfV09SRFNJWkUgPT0gNAogICAgLyogTm90ZSB0aGF0IHRoZSBvZmZzZXQgYXJndW1lbnQgaGVyZSBpcyBpbiBsbytoaSBvcmRlciBvbiBib3RoCiAgICAgICBiaWcgYW5kIGxpdHRsZSBlbmRpYW4gcGxhdGZvcm1zLi4uICovCi0gICBQUklOVCgic3lzX3ByZWFkdiAoICVsZCwgJSNseCwgJWxsdSwgJWxsZCApIixBUkcxLEFSRzIsKFVMb25nKUFSRzMsTE9ISTY0KEFSRzQsQVJHNSkpOworICAgUFJJTlQoInN5c19wcmVhZHYgKCAlbHUsICUjbHgsICVsdSwgJWxsZCApIiwKKyAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIChMb25nKUxPSEk2NChBUkc0LEFSRzUpKTsKICAgIFBSRV9SRUdfUkVBRDUoc3NpemVfdCwgInByZWFkdiIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIGZkLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgdmVjdG9yLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBjb3VudCwgdmtpX3UzMiwgb2Zmc2V0X2xvdywKICAgICAgICAgICAgICAgICAgdmtpX3UzMiwgb2Zmc2V0X2hpZ2gpOwogI2VsaWYgVkdfV09SRFNJWkUgPT0gOAotICAgUFJJTlQoInN5c19wcmVhZHYgKCAlbGQsICUjbHgsICVsbHUsICVsbGQgKSIsQVJHMSxBUkcyLChVTG9uZylBUkczLChMb25nKUFSRzQpOworICAgUFJJTlQoInN5c19wcmVhZHYgKCAlbHUsICUjbHgsICVsdSwgJWxkICkiLCBBUkcxLCBBUkcyLCBBUkczLCBTQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KHNzaXplX3QsICJwcmVhZHYiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBmZCwgY29uc3Qgc3RydWN0IGlvdmVjICosIHZlY3RvciwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgY291bnQsIFdvcmQsIG9mZnNldCk7CkBAIC00ODAxLDEzICs0ODMxLDE0IEBACiAjaWYgVkdfV09SRFNJWkUgPT0gNAogICAgLyogTm90ZSB0aGF0IHRoZSBvZmZzZXQgYXJndW1lbnQgaGVyZSBpcyBpbiBsbytoaSBvcmRlciBvbiBib3RoCiAgICAgICBiaWcgYW5kIGxpdHRsZSBlbmRpYW4gcGxhdGZvcm1zLi4uICovCi0gICBQUklOVCgic3lzX3B3cml0ZXYgKCAlbGQsICUjbHgsICVsbHUsICVsbGQgKSIsQVJHMSxBUkcyLChVTG9uZylBUkczLExPSEk2NChBUkc0LEFSRzUpKTsKKyAgIFBSSU5UKCJzeXNfcHdyaXRldiAoICVsdSwgJSNseCwgJWx1LCAlbGxkICkiLAorICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgKExvbmcpTE9ISTY0KEFSRzQsQVJHNSkpOwogICAgUFJFX1JFR19SRUFENShzc2l6ZV90LCAicHdyaXRldiIsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIGZkLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgdmVjdG9yLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBjb3VudCwgdmtpX3UzMiwgb2Zmc2V0X2xvdywKICAgICAgICAgICAgICAgICAgdmtpX3UzMiwgb2Zmc2V0X2hpZ2gpOwogI2VsaWYgVkdfV09SRFNJWkUgPT0gOAotICAgUFJJTlQoInN5c19wd3JpdGV2ICggJWxkLCAlI2x4LCAlbGx1LCAlbGxkICkiLEFSRzEsQVJHMiwoVUxvbmcpQVJHMywoTG9uZylBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcHdyaXRldiAoICVsdSwgJSNseCwgJWx1LCAlbGQgKSIsIEFSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQoc3NpemVfdCwgInB3cml0ZXYiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBmZCwgY29uc3Qgc3RydWN0IGlvdmVjICosIHZlY3RvciwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgY291bnQsIFdvcmQsIG9mZnNldCk7CkBAIC00ODM1LDggKzQ4NjYsOCBAQAogCiBQUkUoc3lzX3Byb2Nlc3Nfdm1fcmVhZHYpCiB7Ci0gICBQUklOVCgic3lzX3Byb2Nlc3Nfdm1fcmVhZHYgKCAlbHUsICUjbHgsICVsdSwgJSNseCwgJWx1LCAlbHUgKSIsCi0gICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKKyAgIFBSSU5UKCJzeXNfcHJvY2Vzc192bV9yZWFkdiAoICVsZCwgJSNseCwgJWx1LCAlI2x4LCAlbHUsICVsdSApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKICAgIFBSRV9SRUdfUkVBRDYoc3NpemVfdCwgInByb2Nlc3Nfdm1fcmVhZHYiLAogICAgICAgICAgICAgICAgICB2a2lfcGlkX3QsIHBpZCwKICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGlvdmVjICosIGx2ZWMsCkBAIC00ODczLDggKzQ5MDQsOCBAQAogCiBQUkUoc3lzX3Byb2Nlc3Nfdm1fd3JpdGV2KQogewotICAgUFJJTlQoInN5c19wcm9jZXNzX3ZtX3dyaXRldiAoICVsdSwgJSNseCwgJWx1LCAlI2x4LCAlbHUsICVsdSApIiwKLSAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIEFSRzYpOworICAgUFJJTlQoInN5c19wcm9jZXNzX3ZtX3dyaXRldiAoICVsZCwgJSNseCwgJWx1LCAlI2x4LCAlbHUsICVsdSApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKICAgIFBSRV9SRUdfUkVBRDYoc3NpemVfdCwgInByb2Nlc3Nfdm1fd3JpdGV2IiwKICAgICAgICAgICAgICAgICAgdmtpX3BpZF90LCBwaWQsCiAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqLCBsdmVjLApAQCAtNDkwMyw3ICs0OTM0LDcgQEAKIFBSRShzeXNfc2VuZG1tc2cpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc2VuZG1tc2cgKCAlbGQsICUjbHgsICVsZCwgJWxkICkiLEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgUFJJTlQoInN5c19zZW5kbW1zZyAoICVsZCwgJSNseCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMywgU0FSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAic2VuZG1tc2ciLAogICAgICAgICAgICAgICAgICBpbnQsIHMsIGNvbnN0IHN0cnVjdCBtbXNnaGRyICosIG1tc2csIGludCwgdmxlbiwgaW50LCBmbGFncyk7CiAgICBNTF8obGludXhfUFJFX3N5c19zZW5kbW1zZykodGlkLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKQEAgLTQ5MTcsNyArNDk0OCw4IEBACiBQUkUoc3lzX3JlY3ZtbXNnKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX3JlY3ZtbXNnICggJWxkLCAlI2x4LCAlbGQsICVsZCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUpOworICAgUFJJTlQoInN5c19yZWN2bW1zZyAoICVsZCwgJSNseCwgJWxkLCAlbGQsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgU0FSRzMsIFNBUkc0LCBBUkc1KTsKICAgIFBSRV9SRUdfUkVBRDUobG9uZywgInJlY3ZtbXNnIiwKICAgICAgICAgICAgICAgICAgaW50LCBzLCBzdHJ1Y3QgbW1zZ2hkciAqLCBtbXNnLCBpbnQsIHZsZW4sCiAgICAgICAgICAgICAgICAgIGludCwgZmxhZ3MsIHN0cnVjdCB0aW1lc3BlYyAqLCB0aW1lb3V0KTsKQEAgLTQ5MzYsNyArNDk2OCw3IEBACiBQUkUoc3lzX3JlcXVlc3Rfa2V5KQogewogICAgUFJJTlQoInN5c19yZXF1ZXN0X2tleSAoICUjbHgoJXMpLCAlI2x4KCVzKSwgJSNseCglcyksICVsZCApIiwKLSAgICAgICAgIEFSRzEsKGNoYXIqKUFSRzEsQVJHMiwoY2hhciopQVJHMixBUkczLChjaGFyKilBUkczLEFSRzQpOworICAgICAgICAgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIEFSRzMsIChIQ2hhciopQVJHMywgU0FSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAicmVxdWVzdF9rZXkiLAogICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIHR5cGUsIGNvbnN0IGNoYXIgKiwgZGVzY3JpcHRpb24sIAogICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIGNhbGxvdXRfaW5mbywgdmtpX2tleV9zZXJpYWxfdCwga2V5cmluZyk7CkBAIC00OTQ4LDggKzQ5ODAsOCBAQAogCiBQUkUoc3lzX2FkZF9rZXkpCiB7Ci0gICBQUklOVCgic3lzX2FkZF9rZXkgKCAlI2x4KCVzKSwgJSNseCglcyksICUjbHgsICVsZCwgJWxkICkiLAotICAgICAgICAgQVJHMSwoY2hhciopQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgIFBSSU5UKCJzeXNfYWRkX2tleSAoICUjbHgoJXMpLCAlI2x4KCVzKSwgJSNseCwgJWx1LCAlbGQgKSIsCisgICAgICAgICBBUkcxLCAoSENoYXIqKUFSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwgQVJHMywgQVJHNCwgU0FSRzUpOwogICAgUFJFX1JFR19SRUFENShsb25nLCAiYWRkX2tleSIsCiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgdHlwZSwgY29uc3QgY2hhciAqLCBkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqLCBwYXlsb2FkLCB2a2lfc2l6ZV90LCBwbGVuLCAKQEAgLTQ5NjQsNyArNDk5Niw3IEBACiB7CiAgICBzd2l0Y2ggKEFSRzEgLyogb3B0aW9uICovKSB7CiAgICBjYXNlIFZLSV9LRVlDVExfR0VUX0tFWVJJTkdfSUQ6Ci0gICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9HRVRfS0VZUklOR19JRCwgJWxkLCAlbGQgKSIsIEFSRzIsQVJHMyk7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9HRVRfS0VZUklOR19JRCwgJWxkLCAlbGQgKSIsIFNBUkcyLCBTQVJHMyk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJrZXljdGwoS0VZQ1RMX0dFVF9LRVlSSU5HX0lEKSIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgb3B0aW9uLCB2a2lfa2V5X3NlcmlhbF90LCBpZCwgaW50LCBjcmVhdGUpOwogICAgICAgYnJlYWs7CkBAIC00OTc2LDcgKzUwMDgsNyBAQAogICAgICAgICAgUFJFX01FTV9SQVNDSUlaKCJrZXljdGwoS0VZQ1RMX0pPSU5fU0VTU0lPTl9LRVlSSU5HLCBuYW1lKSIsIEFSRzIpOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9LRVlDVExfVVBEQVRFOgotICAgICAgUFJJTlQoInN5c19rZXljdGwgKCBLRVlDVExfVVBEQVRFLCAlbGQsICUjbHgsICVsZCApIiwgQVJHMixBUkczLEFSRzQpOworICAgICAgUFJJTlQoInN5c19rZXljdGwgKCBLRVlDVExfVVBEQVRFLCAlbGQsICUjbHgsICVsdSApIiwgU0FSRzIsIEFSRzMsIEFSRzQpOwogICAgICAgUFJFX1JFR19SRUFENChsb25nLCAia2V5Y3RsKEtFWUNUTF9VUERBVEUpIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBvcHRpb24sIHZraV9rZXlfc2VyaWFsX3QsIGtleSwKICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqLCBwYXlsb2FkLCB2a2lfc2l6ZV90LCBwbGVuKTsKQEAgLTQ5ODQsMjMgKzUwMTYsMjMgQEAKICAgICAgICAgIFBSRV9NRU1fUkVBRCgia2V5Y3RsKEtFWUNUTF9VUERBVEUsIHBheWxvYWQpIiwgQVJHMywgQVJHNCk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0tFWUNUTF9SRVZPS0U6Ci0gICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9SRVZPS0UsICVsZCApIiwgQVJHMik7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9SRVZPS0UsICVsZCApIiwgU0FSRzIpOwogICAgICAgUFJFX1JFR19SRUFEMihsb25nLCAia2V5Y3RsKEtFWUNUTF9SRVZPS0UpIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBvcHRpb24sIHZraV9rZXlfc2VyaWFsX3QsIGlkKTsKICAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfS0VZQ1RMX0NIT1dOOgotICAgICAgUFJJTlQoInN5c19rZXljdGwgKCBLRVlDVExfQ0hPV04sICVsZCwgJWxkLCAlbGQgKSIsIEFSRzIsQVJHMyxBUkc0KTsKKyAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX0NIT1dOLCAlbGQsICVsdSwgJWx1ICkiLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJrZXljdGwoS0VZQ1RMX0NIT1dOKSIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgb3B0aW9uLCB2a2lfa2V5X3NlcmlhbF90LCBpZCwKICAgICAgICAgICAgICAgICAgICAgdmtpX3VpZF90LCB1aWQsIHZraV9naWRfdCwgZ2lkKTsKICAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfS0VZQ1RMX1NFVFBFUk06Ci0gICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9TRVRQRVJNLCAlbGQsICVsZCApIiwgQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX1NFVFBFUk0sICVsZCwgJWx1ICkiLCBTQVJHMiwgQVJHMyk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJrZXljdGwoS0VZQ1RMX1NFVFBFUk0pIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBvcHRpb24sIHZraV9rZXlfc2VyaWFsX3QsIGlkLCB2a2lfa2V5X3Blcm1fdCwgcGVybSk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0tFWUNUTF9ERVNDUklCRToKLSAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX0RFU0NSSUJFLCAlbGQsICUjbHgsICVsZCApIiwgQVJHMixBUkczLEFSRzQpOworICAgICAgUFJJTlQoInN5c19rZXljdGwgKCBLRVlDVExfREVTQ1JJQkUsICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJrZXljdGwoS0VZQ1RMX0RFU0NSSUJFKSIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgb3B0aW9uLCB2a2lfa2V5X3NlcmlhbF90LCBpZCwKICAgICAgICAgICAgICAgICAgICAgY2hhciAqLCBidWZmZXIsIHZraV9zaXplX3QsIGJ1Zmxlbik7CkBAIC01MDA4LDIzICs1MDQwLDIzIEBACiAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJrZXljdGwoS0VZQ1RMX0RFU0NSSUJFLCBidWZmZXIpIiwgQVJHMywgQVJHNCk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0tFWUNUTF9DTEVBUjoKLSAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX0NMRUFSLCAlbGQgKSIsIEFSRzIpOworICAgICAgUFJJTlQoInN5c19rZXljdGwgKCBLRVlDVExfQ0xFQVIsICVsZCApIiwgU0FSRzIpOwogICAgICAgUFJFX1JFR19SRUFEMihsb25nLCAia2V5Y3RsKEtFWUNUTF9DTEVBUikiLAogICAgICAgICAgICAgICAgICAgICBpbnQsIG9wdGlvbiwgdmtpX2tleV9zZXJpYWxfdCwga2V5cmluZyk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0tFWUNUTF9MSU5LOgotICAgICAgUFJJTlQoInN5c19rZXljdGwgKCBLRVlDVExfTElOSywgJWxkLCAlbGQgKSIsIEFSRzIsQVJHMyk7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9MSU5LLCAlbGQsICVsZCApIiwgU0FSRzIsIFNBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImtleWN0bChLRVlDVExfTElOSykiLCBpbnQsIG9wdGlvbiwKICAgICAgICAgICAgICAgICAgICAgdmtpX2tleV9zZXJpYWxfdCwga2V5cmluZywgdmtpX2tleV9zZXJpYWxfdCwga2V5KTsKICAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfS0VZQ1RMX1VOTElOSzoKLSAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX1VOTElOSywgJWxkLCAlbGQgKSIsIEFSRzIsQVJHMyk7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9VTkxJTkssICVsZCwgJWxkICkiLCBTQVJHMiwgU0FSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAia2V5Y3RsKEtFWUNUTF9VTkxJTkspIiwgaW50LCBvcHRpb24sCiAgICAgICAgICAgICAgICAgICAgIHZraV9rZXlfc2VyaWFsX3QsIGtleXJpbmcsIHZraV9rZXlfc2VyaWFsX3QsIGtleSk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0tFWUNUTF9TRUFSQ0g6CiAgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9TRUFSQ0gsICVsZCwgJSNseCglcyksICUjbHgoJXMpLCAlbGQgKSIsCi0gICAgICAgICAgICBBUkcyLEFSRzMsKGNoYXIqKUFSRzMsQVJHNCwoY2hhciopQVJHNCxBUkc1KTsKKyAgICAgICAgICAgIFNBUkcyLCBBUkczLCAoSENoYXIqKUFSRzMsIEFSRzQsIChIQ2hhciopQVJHNCwgU0FSRzUpOwogICAgICAgUFJFX1JFR19SRUFENShsb25nLCAia2V5Y3RsKEtFWUNUTF9TRUFSQ0gpIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBvcHRpb24sIHZraV9rZXlfc2VyaWFsX3QsIGtleXJpbmcsIAogICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIHR5cGUsIGNvbnN0IGNoYXIgKiwgZGVzY3JpcHRpb24sCkBAIC01MDMzLDcgKzUwNjUsNyBAQAogICAgICAgUFJFX01FTV9SQVNDSUlaKCJzeXNfa2V5Y3RsKEtFWUNUTF9TRUFSQ0gsIGRlc2NyaXB0aW9uKSIsIEFSRzQpOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9LRVlDVExfUkVBRDoKLSAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX1JFQUQsICVsZCwgJSNseCwgJWxkICkiLCBBUkcyLEFSRzMsQVJHNCk7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9SRUFELCAlbGQsICUjbHgsICVsdSApIiwgU0FSRzIsIEFSRzMsIEFSRzQpOwogICAgICAgUFJFX1JFR19SRUFENChsb25nLCAia2V5Y3RsKEtFWUNUTF9SRUFEKSIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgb3B0aW9uLCB2a2lfa2V5X3NlcmlhbF90LCBrZXlyaW5nLCAKICAgICAgICAgICAgICAgICAgICAgY2hhciAqLCBidWZmZXIsIHZraV9zaXplX3QsIGJ1Zmxlbik7CkBAIC01MDQxLDggKzUwNzMsOCBAQAogICAgICAgICAgUFJFX01FTV9XUklURSgia2V5Y3RsKEtFWUNUTF9SRUFELCBidWZmZXIpIiwgQVJHMywgQVJHNCk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0tFWUNUTF9JTlNUQU5USUFURToKLSAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX0lOU1RBTlRJQVRFLCAlbGQsICUjbHgsICVsZCwgJWxkICkiLAotICAgICAgICAgICAgQVJHMixBUkczLEFSRzQsQVJHNSk7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9JTlNUQU5USUFURSwgJWxkLCAlI2x4LCAlbHUsICVsZCApIiwKKyAgICAgICAgICAgIFNBUkcyLCBBUkczLCBBUkc0LCBTQVJHNSk7CiAgICAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJrZXljdGwoS0VZQ1RMX0lOU1RBTlRJQVRFKSIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgb3B0aW9uLCB2a2lfa2V5X3NlcmlhbF90LCBrZXksIAogICAgICAgICAgICAgICAgICAgICBjaGFyICosIHBheWxvYWQsIHZraV9zaXplX3QsIHBsZW4sCkBAIC01MDUxLDI4ICs1MDgzLDI4IEBACiAgICAgICAgICBQUkVfTUVNX1JFQUQoImtleWN0bChLRVlDVExfSU5TVEFOVElBVEUsIHBheWxvYWQpIiwgQVJHMywgQVJHNCk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0tFWUNUTF9ORUdBVEU6Ci0gICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9ORUdBVEUsICVsZCwgJWx1LCAlbGQgKSIsIEFSRzIsQVJHMyxBUkc0KTsKKyAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX05FR0FURSwgJWxkLCAlbHUsICVsZCApIiwgU0FSRzIsIEFSRzMsIFNBUkc0KTsKICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgImtleWN0bChLRVlDVExfTkVHQVRFKSIsCiAgICAgICAgICAgICAgICAgICAgIGludCwgb3B0aW9uLCB2a2lfa2V5X3NlcmlhbF90LCBrZXksIAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCwgdGltZW91dCwgdmtpX2tleV9zZXJpYWxfdCwga2V5cmluZyk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX0tFWUNUTF9TRVRfUkVRS0VZX0tFWVJJTkc6Ci0gICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9TRVRfUkVRS0VZX0tFWVJJTkcsICVsZCApIiwgQVJHMik7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9TRVRfUkVRS0VZX0tFWVJJTkcsICVsZCApIiwgU0FSRzIpOwogICAgICAgUFJFX1JFR19SRUFEMihsb25nLCAia2V5Y3RsKEtFWUNUTF9TRVRfUkVRS0VZX0tFWVJJTkcpIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBvcHRpb24sIGludCwgcmVxa2V5X2RlZmwpOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9LRVlDVExfU0VUX1RJTUVPVVQ6Ci0gICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9TRVRfVElNRU9VVCwgJWxkLCAlbGQgKSIsIEFSRzIsQVJHMyk7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9TRVRfVElNRU9VVCwgJWxkLCAlbHUgKSIsIFNBUkcyLCBBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImtleWN0bChLRVlDVExfU0VUX1RJTUVPVVQpIiwKICAgICAgICAgICAgICAgICAgICAgaW50LCBvcHRpb24sIHZraV9rZXlfc2VyaWFsX3QsIGtleSwgdW5zaWduZWQsIHRpbWVvdXQpOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9LRVlDVExfQVNTVU1FX0FVVEhPUklUWToKLSAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggS0VZQ1RMX0FTU1VNRV9BVVRIT1JJVFksICVsZCApIiwgQVJHMik7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoIEtFWUNUTF9BU1NVTUVfQVVUSE9SSVRZLCAlbGQgKSIsIFNBUkcyKTsKICAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImtleWN0bChLRVlDVExfQVNTVU1FX0FVVEhPUklUWSkiLAogICAgICAgICAgICAgICAgICAgICBpbnQsIG9wdGlvbiwgdmtpX2tleV9zZXJpYWxfdCwga2V5KTsKICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKLSAgICAgIFBSSU5UKCJzeXNfa2V5Y3RsICggJWxkICkgIiwgQVJHMSk7CisgICAgICBQUklOVCgic3lzX2tleWN0bCAoICVsZCApICIsIFNBUkcxKTsKICAgICAgIFBSRV9SRUdfUkVBRDEobG9uZywgImtleWN0bCIsIGludCwgb3B0aW9uKTsKICAgICAgIGJyZWFrOwogICAgfQpAQCAtNTEwMCwxMyArNTEzMiwxMyBAQAogCiBQUkUoc3lzX2lvcHJpb19zZXQpCiB7Ci0gICBQUklOVCgic3lzX2lvcHJpb19zZXQgKCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLEFSRzIsQVJHMyk7CisgICBQUklOVCgic3lzX2lvcHJpb19zZXQgKCAlbGQsICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMoaW50LCAiaW9wcmlvX3NldCIsIGludCwgd2hpY2gsIGludCwgd2hvLCBpbnQsIGlvcHJpbyk7CiB9CiAKIFBSRShzeXNfaW9wcmlvX2dldCkKIHsKLSAgIFBSSU5UKCJzeXNfaW9wcmlvX2dldCAoICVsZCwgJWxkICkiLCBBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19pb3ByaW9fZ2V0ICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGludCwgImlvcHJpb19nZXQiLCBpbnQsIHdoaWNoLCBpbnQsIHdobyk7CiB9CiAKQEAgLTUxMTcsOCArNTE0OSw4IEBACiBQUkUoc3lzX2luaXRfbW9kdWxlKQogewogICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gICBQUklOVCgic3lzX2luaXRfbW9kdWxlICggJSNseCwgJWxsdSwgJSNseChcIiVzXCIpICkiLAotICAgICAgICAgQVJHMSwgKFVMb25nKUFSRzIsIEFSRzMsIChjaGFyKilBUkczKTsKKyAgIFBSSU5UKCJzeXNfaW5pdF9tb2R1bGUgKCAlI2x4LCAlbHUsICUjbHgoXCIlc1wiKSApIiwKKyAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIChIQ2hhciopQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJpbml0X21vZHVsZSIsCiAgICAgICAgICAgICAgICAgIHZvaWQgKiwgdW1vZCwgdW5zaWduZWQgbG9uZywgbGVuLCBjb25zdCBjaGFyICosIHVhcmdzKTsKICAgIFBSRV9NRU1fUkVBRCggImluaXRfbW9kdWxlKHVtb2QpIiwgQVJHMSwgQVJHMiApOwpAQCAtNTEyOCw3ICs1MTYwLDcgQEAKIFBSRShzeXNfZGVsZXRlX21vZHVsZSkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c19kZWxldGVfbW9kdWxlICggJSNseChcIiVzXCIpLCAweCVseCApIiwgQVJHMSwoY2hhciopQVJHMSwgQVJHMik7CisgICBQUklOVCgic3lzX2RlbGV0ZV9tb2R1bGUgKCAlI2x4KFwiJXNcIiksIDB4JWx4ICkiLCBBUkcxLCAoSENoYXIqKUFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAiZGVsZXRlX21vZHVsZSIsCiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgbmFtZV91c2VyLCB1bnNpZ25lZCBpbnQsIGZsYWdzKTsKICAgIFBSRV9NRU1fUkFTQ0lJWigiZGVsZXRlX21vZHVsZShuYW1lX3VzZXIpIiwgQVJHMSk7CkBAIC01MTQxLDggKzUxNzMsOCBAQAogUFJFKHN5c19zcGxpY2UpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc3BsaWNlICggJWxkLCAlI2x4LCAlbGQsICUjbHgsICVsZCwgJWxkICkiLAotICAgICAgICAgQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1LEFSRzYpOworICAgUFJJTlQoInN5c19zcGxpY2UgKCAlbGQsICUjbHgsICVsZCwgJSNseCwgJWx1LCAlI2x4ICkiLAorICAgICAgICAgU0FSRzEsIEFSRzIsIFNBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKICAgIFBSRV9SRUdfUkVBRDYodmtpX3NzaXplX3QsICJzcGxpY2UiLAogICAgICAgICAgICAgICAgICBpbnQsIGZkX2luLCB2a2lfbG9mZl90ICosIG9mZl9pbiwKICAgICAgICAgICAgICAgICAgaW50LCBmZF9vdXQsIHZraV9sb2ZmX3QgKiwgb2ZmX291dCwKQEAgLTUxNjEsNyArNTE5Myw3IEBACiBQUkUoc3lzX3RlZSkKIHsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICAgUFJJTlQoInN5c190cmVlICggJWxkLCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfdHJlZSAoICVsZCwgJWxkLCAlbHUsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KHZraV9zc2l6ZV90LCAidGVlIiwKICAgICAgICAgICAgICAgICAgaW50LCBmZF9pbiwgaW50LCBmZF9vdXQsCiAgICAgICAgICAgICAgICAgIHZraV9zaXplX3QsIGxlbiwgdW5zaWduZWQgaW50LCBmbGFncyk7CkBAIC01MTc1LDggKzUyMDcsNyBAQAogewogICAgSW50IGZkZmw7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfdm1zcGxpY2UgKCAlbGQsICUjbHgsICVsZCwgJWxkICkiLAotICAgICAgICAgQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX3Ztc3BsaWNlICggJWxkLCAlI2x4LCAlbHUsICVsdSApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOwogICAgUFJFX1JFR19SRUFENCh2a2lfc3NpemVfdCwgInNwbGljZSIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIHN0cnVjdCB2a2lfaW92ZWMgKiwgaW92LAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBucl9zZWdzLCB1bnNpZ25lZCBpbnQsIGZsYWdzKTsKQEAgLTUyMjMsNyArNTI1NCw3IEBACiAjaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KQogUFJFKHN5c19sb29rdXBfZGNvb2tpZSkKIHsKLSAgIFBSSU5UKCJzeXNfbG9va3VwX2Rjb29raWUgKDB4JWxseCwgJSNseCwgJWxkKSIsCisgICBQUklOVCgic3lzX2xvb2t1cF9kY29va2llICgweCVsbHgsICUjbHgsICVsdSkiLAogICAgICAgICAgTUVSR0U2NChBUkcxLEFSRzIpLCBBUkczLCBBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgImxvb2t1cF9kY29va2llIiwKICAgICAgICAgICAgICAgICAgdmtpX3UzMiwgTUVSR0U2NF9GSVJTVChjb29raWUpLCB2a2lfdTMyLCBNRVJHRTY0X1NFQ09ORChjb29raWUpLApAQCAtNTI0Myw4ICs1Mjc0LDcgQEAKIFBSRShzeXNfbG9va3VwX2Rjb29raWUpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfbG9va3VwX2Rjb29raWUgKCAlbGx1LCAlI2x4LCAlbGx1ICkiLAotCSAoVUxvbmcpQVJHMSwgQVJHMiwgKFVMb25nKUFSRzMpOworICAgUFJJTlQoInN5c19sb29rdXBfZGNvb2tpZSAoICVsdSwgJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMoaW50LCAibG9va3VwX2Rjb29raWUiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcsIGNvb2tpZSwgY2hhciAqLCBidWYsIHZraV9zaXplX3QsIGxlbik7CiAKQEAgLTUyNzMsNyArNTMwMyw3IEBACiAgICBjYXNlIFZLSV9GX0dFVFNJRzoKICAgIGNhc2UgVktJX0ZfR0VUTEVBU0U6CiAgICBjYXNlIFZLSV9GX0dFVFBJUEVfU1o6Ci0gICAgICBQUklOVCgic3lzX2ZjbnRsICggJWxkLCAlbGQgKSIsIEFSRzEsQVJHMik7CisgICAgICBQUklOVCgic3lzX2ZjbnRsICggJWx1LCAlbHUgKSIsIEFSRzEsIEFSRzIpOwogICAgICAgUFJFX1JFR19SRUFEMihsb25nLCAiZmNudGwiLCB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIGNtZCk7CiAgICAgICBicmVhazsKIApAQCAtNTI4Nyw3ICs1MzE3LDcgQEAKICAgIGNhc2UgVktJX0ZfU0VUT1dOOgogICAgY2FzZSBWS0lfRl9TRVRTSUc6CiAgICBjYXNlIFZLSV9GX1NFVFBJUEVfU1o6Ci0gICAgICBQUklOVCgic3lzX2ZjbnRsW0FSRzM9PSdhcmcnXSAoICVsZCwgJWxkLCAlbGQgKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJzeXNfZmNudGxbQVJHMz09J2FyZyddICggJWx1LCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmY250bCIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHVuc2lnbmVkIGludCwgY21kLCB1bnNpZ25lZCBsb25nLCBhcmcpOwogICAgICAgYnJlYWs7CkBAIC01MzA0LDE0ICs1MzM0LDE0IEBACiAgICBjYXNlIFZLSV9GX09GRF9HRVRMSzoKICAgIGNhc2UgVktJX0ZfT0ZEX1NFVExLOgogICAgY2FzZSBWS0lfRl9PRkRfU0VUTEtXOgotICAgICAgUFJJTlQoInN5c19mY250bFtBUkczPT0nbG9jayddICggJWxkLCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJzeXNfZmNudGxbQVJHMz09J2xvY2snXSAoICVsdSwgJWx1LCAlI2x4ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQsCiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmbG9jazY0ICosIGxvY2spOwogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgVktJX0ZfU0VUT1dOX0VYOgotICAgICAgUFJJTlQoInN5c19mY250bFtGX1NFVE9XTl9FWF0gKCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLEFSRzIsQVJHMyk7CisgICAgICBQUklOVCgic3lzX2ZjbnRsW0ZfU0VUT1dOX0VYXSAoICVsdSwgJWx1LCAlbHUgKSIsIEFSRzEsIEFSRzIsIEFSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNudGwiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIGNtZCwKICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9mX293bmVyX2V4ICosIGFyZyk7CkBAIC01MzE5LDcgKzUzNDksNyBAQAogICAgICAgYnJlYWs7CiAKICAgIGNhc2UgVktJX0ZfR0VUT1dOX0VYOgotICAgICAgUFJJTlQoInN5c19mY250bFtGX0dFVE9XTl9FWF0gKCAlbGQsICVsZCwgJWxkICkiLCBBUkcxLEFSRzIsQVJHMyk7CisgICAgICBQUklOVCgic3lzX2ZjbnRsW0ZfR0VUT1dOX0VYXSAoICVsdSwgJWx1LCAlbHUgKSIsIEFSRzEsIEFSRzIsIEFSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNudGwiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIGNtZCwKICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9mX293bmVyX2V4ICosIGFyZyk7CkBAIC01MzI3LDcgKzUzNTcsNyBAQAogICAgICAgYnJlYWs7CiAKICAgIGRlZmF1bHQ6Ci0gICAgICBQUklOVCgic3lzX2ZjbnRsW1VOS05PV05dICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgICAgUFJJTlQoInN5c19mY250bFtVTktOT1dOXSAoICVsdSwgJWx1LCAlbHUgKSIsIEFSRzEsIEFSRzIsIEFSRzMpOwogICAgICAgSV9kaWVfaGVyZTsKICAgICAgIGJyZWFrOwogICAgfQpAQCAtNTM3Nyw3ICs1NDA3LDcgQEAKICAgIGNhc2UgVktJX0ZfR0VUU0lHOgogICAgY2FzZSBWS0lfRl9TRVRTSUc6CiAgICBjYXNlIFZLSV9GX0dFVExFQVNFOgotICAgICAgUFJJTlQoInN5c19mY250bDY0ICggJWxkLCAlbGQgKSIsIEFSRzEsQVJHMik7CisgICAgICBQUklOVCgic3lzX2ZjbnRsNjQgKCAlbHUsICVsdSApIiwgQVJHMSwgQVJHMik7CiAgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJmY250bDY0IiwgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQpOwogICAgICAgYnJlYWs7CiAKQEAgLTUzODgsNyArNTQxOCw3IEBACiAgICBjYXNlIFZLSV9GX1NFVEZMOgogICAgY2FzZSBWS0lfRl9TRVRMRUFTRToKICAgIGNhc2UgVktJX0ZfTk9USUZZOgotICAgICAgUFJJTlQoInN5c19mY250bDY0W0FSRzM9PSdhcmcnXSAoICVsZCwgJWxkLCAlbGQgKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJzeXNfZmNudGw2NFtBUkczPT0nYXJnJ10gKCAlbHUsICVsdSwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsNjQiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIGNtZCwgdW5zaWduZWQgbG9uZywgYXJnKTsKICAgICAgIGJyZWFrOwpAQCAtNTQwNSwxNCArNTQzNSwxNCBAQAogICAgY2FzZSBWS0lfRl9PRkRfR0VUTEs6CiAgICBjYXNlIFZLSV9GX09GRF9TRVRMSzoKICAgIGNhc2UgVktJX0ZfT0ZEX1NFVExLVzoKLSAgICAgIFBSSU5UKCJzeXNfZmNudGw2NFtBUkczPT0nbG9jayddICggJWxkLCAlbGQsICUjbHggKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJzeXNfZmNudGw2NFtBUkczPT0nbG9jayddICggJWx1LCAlbHUsICUjbHggKSIsIEFSRzEsIEFSRzIsIEFSRzMpOwogICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNudGw2NCIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHVuc2lnbmVkIGludCwgY21kLAogICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmxvY2s2NCAqLCBsb2NrKTsKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIFZLSV9GX1NFVE9XTl9FWDoKLSAgICAgIFBSSU5UKCJzeXNfZmNudGxbRl9TRVRPV05fRVhdICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgICAgUFJJTlQoInN5c19mY250bFtGX1NFVE9XTl9FWF0gKCAlbHUsICVsdSwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQsCiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfZl9vd25lcl9leCAqLCBhcmcpOwpAQCAtNTQyMCw3ICs1NDUwLDcgQEAKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIFZLSV9GX0dFVE9XTl9FWDoKLSAgICAgIFBSSU5UKCJzeXNfZmNudGxbRl9HRVRPV05fRVhdICggJWxkLCAlbGQsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMpOworICAgICAgUFJJTlQoInN5c19mY250bFtGX0dFVE9XTl9FWF0gKCAlbHUsICVsdSwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmZCwgdW5zaWduZWQgaW50LCBjbWQsCiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfZl9vd25lcl9leCAqLCBhcmcpOwpAQCAtNTUyMCwxNSArNTU1MCwyMiBAQAogICAgLyogSW5maW5pQmFuZCAqLwogICAgY2FzZSBWS0lfSUJfVVNFUl9NQURfRU5BQkxFX1BLRVk6CiAKKyAgIC8qIEx1c3RyZSAqLworICAgY2FzZSBWS0lfTExfSU9DX0dST1VQX0xPQ0s6CisgICBjYXNlIFZLSV9MTF9JT0NfR1JPVVBfVU5MT0NLOgorCiAgICAvKiBWNEwyICovCiAgICBjYXNlIFZLSV9WNEwyX0xPR19TVEFUVVM6Ci0gICAgICBQUklOVCgic3lzX2lvY3RsICggJWxkLCAweCVseCApIixBUkcxLEFSRzIpOworCisgICAvKiBEVkIgKi8KKyAgIGNhc2UgVktJX0RNWF9TVE9QOgorICAgICAgUFJJTlQoInN5c19pb2N0bCAoICVsdSwgMHglbHggKSIsIEFSRzEsIEFSRzIpOwogICAgICAgUFJFX1JFR19SRUFEMihsb25nLCAiaW9jdGwiLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsIGZkLCB1bnNpZ25lZCBpbnQsIHJlcXVlc3QpOwogICAgICAgcmV0dXJuOwogCiAgICBkZWZhdWx0OgotICAgICAgUFJJTlQoInN5c19pb2N0bCAoICVsZCwgMHglbHgsIDB4JWx4ICkiLEFSRzEsQVJHMixBUkczKTsKKyAgICAgIFBSSU5UKCJzeXNfaW9jdGwgKCAlbHUsIDB4JWx4LCAweCVseCApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CiAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJpb2N0bCIsCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgZmQsIHVuc2lnbmVkIGludCwgcmVxdWVzdCwgdW5zaWduZWQgbG9uZywgYXJnKTsKICAgICAgIGJyZWFrOwpAQCAtNTk1NSw4ICs1OTkyLDggQEAKICAgICAgIFBSRV9NRU1fUkFTQ0lJWiggImlvY3RsKFNJT0NTSUZNQVApIiwKICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSgoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT52a2lfaWZyX25hbWUgKTsKICAgICAgIFBSRV9NRU1fUkVBRCggImlvY3RsKFNJT0NTSUZNQVApIiwKLSAgICAgICAgICAgICAgICAgICAgIChBZGRyKSYoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX21hcCwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX21hcCkgKTsKKyAgICAgICAgICAgICAgICAgICAgIChBZGRyKSYoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+dmtpX2lmcl9tYXAsCisgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfbWFwKSApOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9TSU9DU0hXVFNUQU1QOiAgICAgICAvKiBTZXQgaGFyZHdhcmUgdGltZSBzdGFtcGluZyAgICovCiAgICAgICBQUkVfTUVNX1JBU0NJSVooICJpb2N0bChTSU9DU0hXVFNUQU1QKSIsCkBAIC01OTY5LDggKzYwMDYsOCBAQAogICAgICAgUFJFX01FTV9SQVNDSUlaKCAiaW9jdGwoU0lPQ1NJRlRYUUxFTikiLAogICAgICAgICAgICAgICAgICAgICAgKEFkZHIpKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfbmFtZSApOwogICAgICAgUFJFX01FTV9SRUFEKCAiaW9jdGwoU0lPQ1NJRlRYUUxFTikiLAotICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJigoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT5pZnJfcWxlbiwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX3FsZW4pICk7CisgICAgICAgICAgICAgICAgICAgICAoQWRkcikmKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfcWxlbiwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+dmtpX2lmcl9xbGVuKSApOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9TSU9DU0lGQUREUjogICAgICAgICAvKiBzZXQgUEEgYWRkcmVzcyAgICAgICAgICAgICAgICovCiAgICBjYXNlIFZLSV9TSU9DU0lGRFNUQUREUjogICAgICAvKiBzZXQgcmVtb3RlIFBBIGFkZHJlc3MgICAgICAgICovCkBAIC01OTc5LDggKzYwMTYsOCBAQAogICAgICAgUFJFX01FTV9SQVNDSUlaKCAiaW9jdGwoU0lPQ1NJRipBRERSKSIsCiAgICAgICAgICAgICAgICAgICAgICAoQWRkcikoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+dmtpX2lmcl9uYW1lICk7CiAgICAgICBQUkVfTUVNX1JFQUQoICJpb2N0bChTSU9DU0lGKkFERFIpIiwKLSAgICAgICAgICAgICAgICAgICAgIChBZGRyKSYoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX2FkZHIsCi0gICAgICAgICAgICAgICAgICAgICBzaXplb2YoKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPmlmcl9hZGRyKSApOworICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJigoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT52a2lfaWZyX2FkZHIsCisgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfYWRkcikgKTsKICAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfU0lPQ1NJRk1FVFJJQzogICAgICAgLyogc2V0IG1ldHJpYyAgICAgICAgICAgICAgICAgICAqLwogICAgICAgUFJFX01FTV9SQVNDSUlaKCAiaW9jdGwoU0lPQ1NJRk1FVFJJQykiLApAQCAtNjAwMCw4ICs2MDM3LDggQEAKICAgICAgIFBSRV9NRU1fUkFTQ0lJWiggImlvY3RsKFNJT0NTSUZIV0FERFIpIiwKICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSgoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT52a2lfaWZyX25hbWUgKTsKICAgICAgIFBSRV9NRU1fUkVBRCggImlvY3RsKFNJT0NTSUZIV0FERFIpIiwKLSAgICAgICAgICAgICAgICAgICAgIChBZGRyKSYoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX2h3YWRkciwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX2h3YWRkcikgKTsKKyAgICAgICAgICAgICAgICAgICAgIChBZGRyKSYoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+dmtpX2lmcl9od2FkZHIsCisgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfaHdhZGRyKSApOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9TSU9DU01JSVJFRzogICAgICAgICAvKiBzZXQgaGFyZHdhcmUgZW50cnkgcmVnaXN0ZXJzICovCiAgICAgICBQUkVfTUVNX1JBU0NJSVooICJpb2N0bChTSU9DU01JSVJFRykiLApAQCAtNjgyNSwxMSArNjg2MiwxMCBAQAogICAgICAgICAgICAgUFJFX01FTV9SRUFEKCJpb2N0bChWS0lfSTJDX1NNQlVTKS5pMmNfc21idXNfaW9jdGxfZGF0YS5jb21tYW5kIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikmdmtpcy0+Y29tbWFuZCwgc2l6ZW9mKHZraXMtPmNvbW1hbmQpKTsKICAgICAgICAgICAgIC8qIGkyY19zbWJ1c193cml0ZV9xdWljayBoaWRlcyBpdHMgdmFsdWUgaW4gcmVhZF93cml0ZSwgc28KLSAgICAgICAgICAgICAgIHRoaXMgdmFyaWFibGUgY2FuIGhhdmEgYSBkaWZmZXJlbnQgbWVhbmluZyAqLworICAgICAgICAgICAgICAgdGhpcyB2YXJpYWJsZSBjYW4gaGF2ZSBhIGRpZmZlcmVudCBtZWFuaW5nICovCiAgICAgICAgICAgICAvKiB0byBtYWtlIG1hdHRlcnMgd29yc2UgaTJjX3NtYnVzX3dyaXRlX2J5dGUgc3RvcmVzIGl0cwogICAgICAgICAgICAgICAgdmFsdWUgaW4gY29tbWFuZCAqLwotICAgICAgICAgICAgaWYgKCAhICgoKHZraXMtPnNpemUgPT0gVktJX0kyQ19TTUJVU19RVUlDSykgCi0gICAgICAgICAgICAgICAgICAgICAmJiAodmtpcy0+Y29tbWFuZCA9PSBWS0lfSTJDX1NNQlVTX1FVSUNLKSkgfHwKKyAgICAgICAgICAgIGlmICggISAoKHZraXMtPnNpemUgPT0gVktJX0kyQ19TTUJVU19RVUlDSykgfHwKICAgICAgICAgICAgICAgICAgKCh2a2lzLT5zaXplID09IFZLSV9JMkNfU01CVVNfQllURSkKICAgICAgICAgICAgICAgICAgICYmICh2a2lzLT5yZWFkX3dyaXRlID09IFZLSV9JMkNfU01CVVNfV1JJVEUpKSkpICB7CiAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSByZXN0IHVzZXMgdGhlIGJ5dGUgYXJyYXkgdG8gc3RvcmUgdGhlIGRhdGEsCkBAIC02ODQ3LDcgKzY4ODMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS0lfSTJDX1NNQlVTX0kyQ19CTE9DS19CUk9LRU46CiAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLSV9JMkNfU01CVVNfQkxPQ0tfUFJPQ19DQUxMOgogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS0lfSTJDX1NNQlVTX0kyQ19CTE9DS19EQVRBOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSB2a2lzLT5kYXRhLT5ibG9ja1swXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gMSArIHZraXMtPmRhdGEtPmJsb2NrWzBdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gMDsKQEAgLTcyMjAsNiArNzI1NiwyMSBAQAogICAgY2FzZSBWS0lfS1ZNX1JVTjoKICAgICAgIGJyZWFrOwogCisgICBjYXNlIFZLSV9LVk1fUzM5MF9NRU1fT1A6IHsKKyAgICAgIHN0cnVjdCB2a2lfa3ZtX3MzOTBfbWVtX29wICphcmdzID0KKyAgICAgICAgIChzdHJ1Y3QgdmtpX2t2bV9zMzkwX21lbV9vcCAqKShBUkczKTsKKyAgICAgIFBSRV9NRU1fUkVBRCgiaW9jdGwoS1ZNX1MzOTBfTUVNX09QKSIsIEFSRzMsCisgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCB2a2lfa3ZtX3MzOTBfbWVtX29wKSk7CisgICAgICBpZiAoYXJncy0+ZmxhZ3MgJiBWS0lfS1ZNX1MzOTBfTUVNT1BfRl9DSEVDS19PTkxZKQorICAgICAgICAgYnJlYWs7CisgICAgICBpZiAoYXJncy0+b3AgPT0gVktJX0tWTV9TMzkwX01FTU9QX0xPR0lDQUxfUkVBRCkKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoImlvY3RsKEtWTV9TMzkwX01FTV9PUCkuYnVmIiwgKEFkZHIpYXJncy0+YnVmLCBhcmdzLT5zaXplKTsKKyAgICAgIGlmIChhcmdzLT5vcCA9PSBWS0lfS1ZNX1MzOTBfTUVNT1BfTE9HSUNBTF9XUklURSkKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiaW9jdGwoS1ZNX1MzOTBfTUVNX09QKS5idWYiLCAoQWRkcilhcmdzLT5idWYsIGFyZ3MtPnNpemUpOworICAgICAgfQorICAgICAgYnJlYWs7CisKKwogI2lmZGVmIEVOQUJMRV9YRU4KICAgIGNhc2UgVktJX1hFTl9JT0NUTF9QUklWQ01EX0hZUEVSQ0FMTDogewogICAgICAgU3lzY2FsbEFyZ3MgaGFycmdoczsKQEAgLTgwMDMsNyArODA1NCw3IEBACiAgICB9CiAgICBjYXNlIFZLSV9WNEwyX0dfRU5DX0lOREVYOiB7CiAgICAgICBzdHJ1Y3QgdmtpX3Y0bDJfZW5jX2lkeCAqZGF0YSA9IChzdHJ1Y3QgdmtpX3Y0bDJfZW5jX2lkeCAqKUFSRzM7Ci0gICAgICBQUkVfTUVNX1JFQUQoImlvY3RsKFZLSV9WNEwyX0dfRU5DX0lOREVYKSIsIChBZGRyKWRhdGEsIHNpemVvZigqZGF0YSkpOworICAgICAgUFJFX01FTV9XUklURSgiaW9jdGwoVktJX1Y0TDJfR19FTkNfSU5ERVgpIiwgKEFkZHIpZGF0YSwgc2l6ZW9mKCpkYXRhKSk7CiAgICAgICBicmVhazsKICAgIH0KICAgIGNhc2UgVktJX1Y0TDJfRU5DT0RFUl9DTUQ6IHsKQEAgLTgyMjAsNiArODI3MSw3IEBACiAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoVktJX1Y0TDJfU1VCREVWX0VOVU1fTUJVU19DT0RFKS5pbmRleCIsIGRhdGEtPmluZGV4KTsKICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9NQlVTX0NPREUpLnBhZCIsIGRhdGEtPnBhZCk7CiAgICAgICBQUkVfRklFTERfV1JJVEUoImlvY3RsKFZLSV9WNEwyX1NVQkRFVl9FTlVNX01CVVNfQ09ERSkuY29kZSIsIGRhdGEtPmNvZGUpOworICAgICAgUFJFX0ZJRUxEX1JFQUQoImlvY3RsKFZLSV9WNEwyX1NVQkRFVl9FTlVNX01CVVNfQ09ERSkud2hpY2giLCBkYXRhLT53aGljaCk7CiAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoVktJX1Y0TDJfU1VCREVWX0VOVU1fTUJVU19DT0RFKS5yZXNlcnZlZCIsIGRhdGEtPnJlc2VydmVkKTsKICAgICAgIGJyZWFrOwogICAgfQpAQCAtODIyOCw2ICs4MjgwLDcgQEAKICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9GUkFNRV9TSVpFKS5pbmRleCIsIGRhdGEtPmluZGV4KTsKICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9GUkFNRV9TSVpFKS5wYWQiLCBkYXRhLT5wYWQpOwogICAgICAgUFJFX0ZJRUxEX1JFQUQoImlvY3RsKFZLSV9WNEwyX1NVQkRFVl9FTlVNX0ZSQU1FX1NJWkUpLmNvZGUiLCBkYXRhLT5jb2RlKTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9GUkFNRV9TSVpFKS53aGljaCIsIGRhdGEtPndoaWNoKTsKICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9GUkFNRV9TSVpFKS5yZXNlcnZlZCIsIGRhdGEtPnJlc2VydmVkKTsKICAgICAgIFBSRV9GSUVMRF9XUklURSgiaW9jdGwoVktJX1Y0TDJfU1VCREVWX0VOVU1fRlJBTUVfU0laRSkubWluX3dpZHRoIiwgZGF0YS0+bWluX3dpZHRoKTsKICAgICAgIFBSRV9GSUVMRF9XUklURSgiaW9jdGwoVktJX1Y0TDJfU1VCREVWX0VOVU1fRlJBTUVfU0laRSkubWluX2hlaWdodCIsIGRhdGEtPm1pbl9oZWlnaHQpOwpAQCAtODI0Miw2ICs4Mjk1LDcgQEAKICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9GUkFNRV9JTlRFUlZBTCkuY29kZSIsIGRhdGEtPmNvZGUpOwogICAgICAgUFJFX0ZJRUxEX1JFQUQoImlvY3RsKFZLSV9WNEwyX1NVQkRFVl9FTlVNX0ZSQU1FX0lOVEVSVkFMKS53aWR0aCIsIGRhdGEtPndpZHRoKTsKICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9GUkFNRV9JTlRFUlZBTCkuaGVpZ2h0IiwgZGF0YS0+aGVpZ2h0KTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9GUkFNRV9JTlRFUlZBTCkud2hpY2giLCBkYXRhLT53aGljaCk7CiAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoVktJX1Y0TDJfU1VCREVWX0VOVU1fRlJBTUVfSU5URVJWQUwpLnJlc2VydmVkIiwgZGF0YS0+cmVzZXJ2ZWQpOwogICAgICAgUFJFX0ZJRUxEX1dSSVRFKCJpb2N0bChWS0lfVjRMMl9TVUJERVZfRU5VTV9GUkFNRV9JTlRFUlZBTCkuaW50ZXJ2YWwiLCBkYXRhLT5pbnRlcnZhbCk7CiAgICAgICBicmVhazsKQEAgLTgyOTksNiArODM1MywxOCBAQAogICAgICAgYnJlYWs7CiAgICB9CiAKKyAgIC8qIFNlcmlhbCAqLworICAgY2FzZSBWS0lfVElPQ0dTRVJJQUw6IHsKKyAgICAgIHN0cnVjdCB2a2lfc2VyaWFsX3N0cnVjdCAqZGF0YSA9IChzdHJ1Y3QgdmtpX3NlcmlhbF9zdHJ1Y3QgKilBUkczOworICAgICAgUFJFX01FTV9XUklURSgiaW9jdGwoVktJX1RJT0NHU0VSSUFMKSIsIChBZGRyKWRhdGEsIHNpemVvZigqZGF0YSkpOworICAgICAgYnJlYWs7CisgICB9CisgICBjYXNlIFZLSV9USU9DU1NFUklBTDogeworICAgICAgc3RydWN0IHZraV9zZXJpYWxfc3RydWN0ICpkYXRhID0gKHN0cnVjdCB2a2lfc2VyaWFsX3N0cnVjdCAqKUFSRzM7CisgICAgICBQUkVfTUVNX1JFQUQoImlvY3RsKFZLSV9USU9DU1NFUklBTCkiLCAoQWRkcilkYXRhLCBzaXplb2YoKmRhdGEpKTsKKyAgICAgIGJyZWFrOworICAgfQorCiAgICBkZWZhdWx0OgogICAgICAgLyogRVZJT0MqIGFyZSB2YXJpYWJsZSBsZW5ndGggYW5kIHJldHVybiBzaXplIHdyaXR0ZW4gb24gc3VjY2VzcyAqLwogICAgICAgc3dpdGNoIChBUkcyICYgfihfVktJX0lPQ19TSVpFTUFTSyA8PCBfVktJX0lPQ19TSVpFU0hJRlQpKSB7CkBAIC04NTY5LDggKzg2MzUsOCBAQAogICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+dmtpX2lmcl9mbGFncykgKTsKICAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfU0lPQ0dJRkhXQUREUjogICAgICAgLyogR2V0IGhhcmR3YXJlIGFkZHJlc3MgICAgICAgICAqLwotICAgICAgUE9TVF9NRU1fV1JJVEUoIChBZGRyKSYoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX2h3YWRkciwKLSAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPmlmcl9od2FkZHIpICk7CisgICAgICBQT1NUX01FTV9XUklURSggKEFkZHIpJigoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT52a2lfaWZyX2h3YWRkciwKKyAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfaHdhZGRyKSApOwogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9TSU9DR0lGTVRVOiAgICAgICAgICAvKiBnZXQgTVRVIHNpemUgICAgICAgICAgICAgICAgICovCiAgICAgICBQT1NUX01FTV9XUklURSggKEFkZHIpJigoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT52a2lfaWZyX210dSwKQEAgLTg1ODEsOCArODY0Nyw4IEBACiAgICBjYXNlIFZLSV9TSU9DR0lGQlJEQUREUjogICAgICAvKiBnZXQgYnJvYWRjYXN0IFBBIGFkZHJlc3MgICAgICovCiAgICBjYXNlIFZLSV9TSU9DR0lGTkVUTUFTSzogICAgICAvKiBnZXQgbmV0d29yayBQQSBtYXNrICAgICAgICAgICovCiAgICAgICBQT1NUX01FTV9XUklURSgKLSAgICAgICAgICAgICAgICAoQWRkcikmKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPmlmcl9hZGRyLAotICAgICAgICAgICAgICAgIHNpemVvZigoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX2FkZHIpICk7CisgICAgICAgICAgICAgICAgKEFkZHIpJigoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT52a2lfaWZyX2FkZHIsCisgICAgICAgICAgICAgICAgc2l6ZW9mKCgoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT52a2lfaWZyX2FkZHIpICk7CiAgICAgICBicmVhazsKICAgIGNhc2UgVktJX1NJT0NHSUZNRVRSSUM6ICAgICAgIC8qIGdldCBtZXRyaWMgICAgICAgICAgICAgICAgICAgKi8KICAgICAgIFBPU1RfTUVNX1dSSVRFKApAQCAtODU5MSwxNCArODY1NywxNCBAQAogICAgICAgYnJlYWs7CiAgICBjYXNlIFZLSV9TSU9DR0lGTUFQOiAgICAgICAgICAvKiBHZXQgZGV2aWNlIHBhcmFtZXRlcnMgICAgICAgICovCiAgICAgICBQT1NUX01FTV9XUklURSgKLSAgICAgICAgICAgICAgICAoQWRkcikmKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPmlmcl9tYXAsCi0gICAgICAgICAgICAgICAgc2l6ZW9mKCgoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT5pZnJfbWFwKSApOworICAgICAgICAgICAgICAgIChBZGRyKSYoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+dmtpX2lmcl9tYXAsCisgICAgICAgICAgICAgICAgc2l6ZW9mKCgoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT52a2lfaWZyX21hcCkgKTsKICAgICAgIGJyZWFrOwogICAgICBicmVhazsKICAgIGNhc2UgVktJX1NJT0NHSUZUWFFMRU46ICAgICAgIC8qIEdldCB0aGUgdHggcXVldWUgbGVuZ3RoICAgICAgKi8KICAgICAgIFBPU1RfTUVNX1dSSVRFKAotICAgICAgICAgICAgICAgIChBZGRyKSYoKHN0cnVjdCB2a2lfaWZyZXEgKilBUkczKS0+aWZyX3FsZW4sCi0gICAgICAgICAgICAgICAgc2l6ZW9mKCgoc3RydWN0IHZraV9pZnJlcSAqKUFSRzMpLT5pZnJfcWxlbikgKTsKKyAgICAgICAgICAgICAgICAoQWRkcikmKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfcWxlbiwKKyAgICAgICAgICAgICAgICBzaXplb2YoKChzdHJ1Y3QgdmtpX2lmcmVxICopQVJHMyktPnZraV9pZnJfcWxlbikgKTsKICAgICAgIGJyZWFrOwogICAgY2FzZSBWS0lfU0lPQ0dJRk5BTUU6ICAgICAgICAgLyogZ2V0IGlmYWNlIG5hbWUgICAgICAgICAgICAgICAqLwogICAgICAgUE9TVF9NRU1fV1JJVEUoCkBAIC05MzIxLDE0ICs5Mzg3LDExIEBACiAgICAgICAgICAgICBzdHJ1Y3QgdmtpX2kyY19zbWJ1c19pb2N0bF9kYXRhICp2a2lzCiAgICAgICAgICAgICAgICA9IChzdHJ1Y3QgdmtpX2kyY19zbWJ1c19pb2N0bF9kYXRhICopIEFSRzM7CiAgICAgICAgICAgICAvKiBpMmNfc21idXNfd3JpdGVfcXVpY2sgaGlkZXMgaXRzIHZhbHVlIGluIHJlYWRfd3JpdGUsIHNvCi0gICAgICAgICAgICAgICB0aGlzIHZhcmlhYmxlIGNhbiBoYXZhIGEgZGlmZmVyZW50IG1lYW5pbmcgKi8KLSAgICAgICAgICAgIC8qIHRvIG1ha2UgbWF0dGVycyB3b3JzZSBpMmNfc21idXNfd3JpdGVfYnl0ZSBzdG9yZXMgaXRzCi0gICAgICAgICAgICAgICB2YWx1ZSBpbiBjb21tYW5kICovCisgICAgICAgICAgICAgICB0aGlzIHZhcmlhYmxlIGNhbiBoYXZlIGEgZGlmZmVyZW50IG1lYW5pbmcgKi8KICAgICAgICAgICAgIGlmICgodmtpcy0+cmVhZF93cml0ZSA9PSBWS0lfSTJDX1NNQlVTX1JFQUQpCiAgICAgICAgICAgICAgICAgfHwgKHZraXMtPnNpemUgPT0gVktJX0kyQ19TTUJVU19QUk9DX0NBTEwpCiAgICAgICAgICAgICAgICAgfHwgKHZraXMtPnNpemUgPT0gVktJX0kyQ19TTUJVU19CTE9DS19QUk9DX0NBTEwpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCAhICgodmtpcy0+c2l6ZSA9PSBWS0lfSTJDX1NNQlVTX1FVSUNLKSAKLSAgICAgICAgICAgICAgICAgICAgICAgICYmICh2a2lzLT5jb21tYW5kID09IFZLSV9JMkNfU01CVVNfUVVJQ0spKSkgeworICAgICAgICAgICAgICAgIGlmICggISAodmtpcy0+c2l6ZSA9PSBWS0lfSTJDX1NNQlVTX1FVSUNLKSkgewogICAgICAgICAgICAgICAgICAgICBVSW50IHNpemU7CiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCh2a2lzLT5zaXplKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLSV9JMkNfU01CVVNfQllURToKQEAgLTkzNDMsNyArOTQwNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLSV9JMkNfU01CVVNfSTJDX0JMT0NLX0JST0tFTjoKICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVktJX0kyQ19TTUJVU19CTE9DS19QUk9DX0NBTEw6CiAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLSV9JMkNfU01CVVNfSTJDX0JMT0NLX0RBVEE6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IHZraXMtPmRhdGEtPmJsb2NrWzBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSAxICsgdmtpcy0+ZGF0YS0+YmxvY2tbMF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSAwOwpAQCAtOTYxMSw2ICs5Njc0LDE2IEBACiAgICBjYXNlIFZLSV9LVk1fS1ZNQ0xPQ0tfQ1RSTDoKICAgICAgIGJyZWFrOwogCisgICBjYXNlIFZLSV9LVk1fUzM5MF9NRU1fT1A6IHsKKyAgICAgIHN0cnVjdCB2a2lfa3ZtX3MzOTBfbWVtX29wICphcmdzID0KKyAgICAgICAgIChzdHJ1Y3QgdmtpX2t2bV9zMzkwX21lbV9vcCAqKShBUkczKTsKKyAgICAgIGlmIChhcmdzLT5mbGFncyAmIFZLSV9LVk1fUzM5MF9NRU1PUF9GX0NIRUNLX09OTFkpCisgICAgICAgICBicmVhazsKKyAgICAgIGlmIChhcmdzLT5vcCA9PSBWS0lfS1ZNX1MzOTBfTUVNT1BfTE9HSUNBTF9SRUFEKQorICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpYXJncy0+YnVmLCBhcmdzLT5zaXplKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworCiAjaWZkZWYgRU5BQkxFX1hFTgogICAgY2FzZSBWS0lfWEVOX0lPQ1RMX1BSSVZDTURfSFlQRVJDQUxMOiB7CiAgICAgICAgU3lzY2FsbEFyZ3MgaGFycmdoczsKQEAgLTk2OTksNyArOTc3Miw2IEBACiAgICBjYXNlIFZLSV9WNEwyX1NfSlBFR0NPTVA6CiAgICBjYXNlIFZLSV9WNEwyX1NfQ1JPUDoKICAgIGNhc2UgVktJX1Y0TDJfU19QUklPUklUWToKLSAgIGNhc2UgVktJX1Y0TDJfR19FTkNfSU5ERVg6CiAgICBjYXNlIFZLSV9WNEwyX1NfSFdfRlJFUV9TRUVLOgogICAgY2FzZSBWS0lfVjRMMl9TX0RWX1RJTUlOR1M6CiAgICBjYXNlIFZLSV9WNEwyX1NVQlNDUklCRV9FVkVOVDoKQEAgLTEwMDE1LDYgKzEwMDg3LDExIEBACiAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKGRhdGEtPnN0ZXB3aXNlKTsKICAgICAgIGJyZWFrOwogICAgfQorICAgY2FzZSBWS0lfVjRMMl9HX0VOQ19JTkRFWDogeworICAgICAgc3RydWN0IHZraV92NGwyX2VuY19pZHggKmRhdGEgPSAoc3RydWN0IHZraV92NGwyX2VuY19pZHggKilBUkczOworICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpZGF0YSwgc2l6ZW9mKCpkYXRhKSk7CisgICAgICBicmVhazsKKyAgIH0KICAgIGNhc2UgVktJX1Y0TDJfRU5DT0RFUl9DTUQ6IHsKICAgICAgIHN0cnVjdCB2a2lfdjRsMl9lbmNvZGVyX2NtZCAqZGF0YSA9IChzdHJ1Y3QgdmtpX3Y0bDJfZW5jb2Rlcl9jbWQgKilBUkczOwogICAgICAgUE9TVF9GSUVMRF9XUklURShkYXRhLT5mbGFncyk7CkBAIC0xMDE3MCw2ICsxMDI0NywxNSBAQAogICAgY2FzZSBWS0lfTUVESUFfSU9DX1NFVFVQX0xJTks6CiAgICAgICBicmVhazsKIAorICAgLyogU2VyaWFsICovCisgICBjYXNlIFZLSV9USU9DR1NFUklBTDogeworICAgICAgc3RydWN0IHZraV9zZXJpYWxfc3RydWN0ICpkYXRhID0gKHN0cnVjdCB2a2lfc2VyaWFsX3N0cnVjdCAqKUFSRzM7CisgICAgICBQT1NUX01FTV9XUklURSgoQWRkcilkYXRhLCBzaXplb2YoKmRhdGEpKTsKKyAgICAgIGJyZWFrOworICAgfQorICAgY2FzZSBWS0lfVElPQ1NTRVJJQUw6CisgICAgICBicmVhazsKKwogICAgZGVmYXVsdDoKICAgICAgIC8qIEVWSU9DKiBhcmUgdmFyaWFibGUgbGVuZ3RoIGFuZCByZXR1cm4gc2l6ZSB3cml0dGVuIG9uIHN1Y2Nlc3MgKi8KICAgICAgIHN3aXRjaCAoQVJHMiAmIH4oX1ZLSV9JT0NfU0laRU1BU0sgPDwgX1ZLSV9JT0NfU0laRVNISUZUKSkgewpAQCAtMTA0MjgsNyArMTA1MTQsNyBAQAogCiBQUkUoc3lzX2tjbXApCiB7Ci0gICBQUklOVCgia2NtcCAoICVsZCwgJWxkLCAlbGQsICVsdSwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKKyAgIFBSSU5UKCJrY21wICggJWxkLCAlbGQsICVsZCwgJWx1LCAlbHUgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQsIEFSRzUpOwogICAgc3dpdGNoIChBUkczKSB7CiAgICAgICBjYXNlIFZLSV9LQ01QX1ZNOiBjYXNlIFZLSV9LQ01QX0ZJTEVTOiBjYXNlIFZLSV9LQ01QX0ZTOgogICAgICAgY2FzZSBWS0lfS0NNUF9TSUdIQU5EOiBjYXNlIFZLSV9LQ01QX0lPOiBjYXNlIFZLSV9LQ01QX1NZU1ZTRU06CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbWFpbi5jIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLW1haW4uYwppbmRleCA0ZDZkOWJhLi5mNGQxZmRkIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbWFpbi5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1tYWluLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtODksNiArODksMTQgQEAKICAgIGFtZDY0LWRhcndpbi4gIEFwcGFyZW50bHkgMCglZXNwKSBpcyBzb21lIGtpbmQgb2YgcmV0dXJuIGFkZHJlc3MKICAgIChwZXJoYXBzIGZvciBzeXNjYWxscyBkb25lIHdpdGggInN5c2VudGVyIj8pICBJIGRvbid0IHRoaW5rIGl0IGlzCiAgICByZWxldmFudCBmb3Igc3lzY2FsbHMgZG9uZSB3aXRoICJpbnQgJDB4ODAvMS8yIi4KKworICAgU09MQVJJUzoKKyAgIHg4NiAgICBlYXggKzQgICArOCAgICsxMiAgKzE2ICArMjAgICsyNCAgKzI4ICArMzIgIGVkeDplYXgsIGVmbGFncy5jCisgICBhbWQ2NCAgcmF4IHJkaSAgcnNpICByZHggIHIxMCAgcjggICByOSAgICs4ICAgKzE2ICByZHg6cmF4LCByZmxhZ3MuYworCisgICAiK04iIGRlbm90ZXMgImluIG1lbW9yeSBhdCBOKCVlc3ApIi4gU29sYXJpcyBhbHNvIHN1cHBvcnRzIGZhc3R0cmFwCisgICBzeXNjYWxscy4gRmFzdHRyYXBzIGRvIG5vdCB0YWtlIGFueSBwYXJhbWV0ZXJzIChleGNlcHQgb2YgdGhlIHN5c25vIGluIGVheCkKKyAgIGFuZCBuZXZlciBmYWlsIChpZiB0aGUgc3lzbm8gaXMgdmFsaWQpLgogKi8KIAogLyogVGhpcyBpcyB0aGUgdG9wIGxldmVsIG9mIHRoZSBzeXN0ZW0tY2FsbCBoYW5kbGVyIG1vZHVsZS4gIEFsbApAQCAtMTcyLDYgKzE4MCwxMSBAQAogICAgICBzMzkweDogIFN1Y2Nlc3MoTikgPT0+ICByMiA9IE4KICAgICAgICAgICAgICBGYWlsKE4pICAgID09PiAgcjIgPSAtTgogCisgICAgIFNvbGFyaXM6CisgICAgIHg4NjogICAgU3VjY2VzcyhOKSA9PT4gIGVkeDplYXggPSBOLCBjYyA9IDAKKyAgICAgICAgICAgICBGYWlsKE4pICAgID09PiAgICAgIGVheCA9IE4sIGNjID0gMQorICAgICBTYW1lIGFwcGxpZXMgZm9yIGZhc3R0cmFwcyBleGNlcHQgdGhleSBuZXZlciBmYWlsLgorCiAgICAqIFRoZSBwb3N0IHdyYXBwZXIgaXMgY2FsbGVkIGlmOgogCiAgICAgIC0gaXQgZXhpc3RzLCBhbmQKQEAgLTI5Nyw2ICszMTAsMTggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnc2V0X3QgKnN5c2NhbGxfbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnc2V0X3QgKnJlc3RvcmVfbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JkIHNpZ3NldFN6QiApOyAvKiB1bnVzZWQgKi8KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitleHRlcm4KK1VXb3JkIE1MXyhkb19zeXNjYWxsX2Zvcl9jbGllbnRfV1JLKSggV29yZCBzeXNjYWxsbm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGd1ZXN0X3N0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnc2V0X3QgKnN5c2NhbGxfbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmtpX3NpZ3NldF90ICpyZXN0b3JlX21hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyICpjZmxhZyk7CitVV29yZCBNTF8oZG9fc3lzY2FsbF9mb3JfY2xpZW50X2RyZXRfV1JLKSggV29yZCBzeXNjYWxsbm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogZ3Vlc3Rfc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmtpX3NpZ3NldF90ICpzeXNjYWxsX21hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmtpX3NpZ3NldF90ICpyZXN0b3JlX21hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXIgKmNmbGFnKTsKICNlbHNlCiAjICBlcnJvciAiVW5rbm93biBPUyIKICNlbmRpZgpAQCAtMzM5LDEzICszNjQsNDIgQEAKICAgICAgICAgIC8qTk9UUkVBQ0hFRCovCiAgICAgICAgICBicmVhazsKICAgIH0KKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFVDaGFyIGNmbGFnOworCisgICAvKiBGYXN0dHJhcHMgb3IgYW55dGhpbmcgZWxzZSBjYW5ub3QgZ28gdGhyb3VnaCB0aGlzIHBhdGguICovCisgICB2Z19hc3NlcnQoVkdfU09MQVJJU19TWVNOT19DTEFTUyhzeXNjYWxsbm8pCisgICAgICAgICAgICAgPT0gVkdfU09MQVJJU19TWVNDQUxMX0NMQVNTX0NMQVNTSUMpOworCisgICAvKiBJZiB0aGUgc3lzY2FsbCBpcyBhIGRvb3JfcmV0dXJuIGNhbGwgdGhlbiBpdCBoYXMgdG8gYmUgaGFuZGxlZCB2ZXJ5CisgICAgICBkaWZmZXJlbnRseS4gKi8KKyAgIGlmICh0c3QtPm9zX3N0YXRlLmluX2Rvb3JfcmV0dXJuKQorICAgICAgZXJyID0gTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9kcmV0X1dSSykoCisgICAgICAgICAgICAgICAgc3lzY2FsbG5vLCAmdHN0LT5hcmNoLnZleCwKKyAgICAgICAgICAgICAgICBzeXNjYWxsX21hc2ssICZzYXZlZCwgJmNmbGFnCisgICAgICAgICAgICApOworICAgZWxzZQorICAgICAgZXJyID0gTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9XUkspKAorICAgICAgICAgICAgICAgIHN5c2NhbGxubywgJnRzdC0+YXJjaC52ZXgsCisgICAgICAgICAgICAgICAgc3lzY2FsbF9tYXNrLCAmc2F2ZWQsICZjZmxhZworICAgICAgICAgICAgKTsKKworICAgLyogU2F2ZSB0aGUgY2FycnkgZmxhZy4gKi8KKyMgIGlmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgTGliVkVYX0d1ZXN0WDg2X3B1dF9lZmxhZ19jKGNmbGFnLCAmdHN0LT5hcmNoLnZleCk7CisjICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBMaWJWRVhfR3Vlc3RBTUQ2NF9wdXRfcmZsYWdfYyhjZmxhZywgJnRzdC0+YXJjaC52ZXgpOworIyAgZWxzZQorIyAgICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyMgIGVuZGlmCisKICMgIGVsc2UKICMgICAgZXJyb3IgIlVua25vd24gT1MiCiAjICBlbmRpZgogICAgdmdfYXNzZXJ0MigKICAgICAgIGVyciA9PSAwLAotICAgICAgIk1MXyhkb19zeXNjYWxsX2Zvcl9jbGllbnRfV1JLKTogc2lncHJvY21hc2sgZXJyb3IgJWQiLAotICAgICAgKEludCkoZXJyICYgMHhGRkYpCisgICAgICAiTUxfKGRvX3N5c2NhbGxfZm9yX2NsaWVudF9XUkspOiBzaWdwcm9jbWFzayBlcnJvciAlbHUiLAorICAgICAgZXJyICYgMHhGRkYKICAgICk7CiB9CiAKQEAgLTM2OSwxMCArNDIzLDEwIEBACiB9CiAKIHN0YXRpYwotQm9vbCBlcV9TeXNjYWxsU3RhdHVzICggU3lzY2FsbFN0YXR1cyogczEsIFN5c2NhbGxTdGF0dXMqIHMyICkKK0Jvb2wgZXFfU3lzY2FsbFN0YXR1cyAoIFVJbnQgc3lzbm8sIFN5c2NhbGxTdGF0dXMqIHMxLCBTeXNjYWxsU3RhdHVzKiBzMiApCiB7CiAgICAvKiB3YXM6IHJldHVybiBzMS0+d2hhdCA9PSBzMi0+d2hhdCAmJiBzcl9FUSggczEtPnNyZXMsIHMyLT5zcmVzICk7ICovCi0gICBpZiAoczEtPndoYXQgPT0gczItPndoYXQgJiYgc3JfRVEoIHMxLT5zcmVzLCBzMi0+c3JlcyApKQorICAgaWYgKHMxLT53aGF0ID09IHMyLT53aGF0ICYmIHNyX0VRKCBzeXNubywgczEtPnNyZXMsIHMyLT5zcmVzICkpCiAgICAgICByZXR1cm4gVHJ1ZTsKICMgIGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIC8qIERhcndpbi1zcGVjaWZpYyBkZWJ1Z2dpbmcgZ3VmZiAqLwpAQCAtNjYyLDYgKzcxNiw2OSBAQAogICAgY2Fub25pY2FsLT5hcmc3ICA9IDA7CiAgICBjYW5vbmljYWwtPmFyZzggID0gMDsKIAorI2VsaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBWZXhHdWVzdFg4NlN0YXRlKiBnc3QgPSAoVmV4R3Vlc3RYODZTdGF0ZSopZ3N0X3ZhbmlsbGE7CisgICBVV29yZCAqc3RhY2sgPSAoVVdvcmQgKilnc3QtPmd1ZXN0X0VTUDsKKyAgIGNhbm9uaWNhbC0+c3lzbm8gPSBnc3QtPmd1ZXN0X0VBWDsKKyAgIC8qIHN0YWNrWzBdIGlzIGEgcmV0dXJuIGFkZHJlc3MuICovCisgICBjYW5vbmljYWwtPmFyZzEgID0gc3RhY2tbMV07CisgICBjYW5vbmljYWwtPmFyZzIgID0gc3RhY2tbMl07CisgICBjYW5vbmljYWwtPmFyZzMgID0gc3RhY2tbM107CisgICBjYW5vbmljYWwtPmFyZzQgID0gc3RhY2tbNF07CisgICBjYW5vbmljYWwtPmFyZzUgID0gc3RhY2tbNV07CisgICBjYW5vbmljYWwtPmFyZzYgID0gc3RhY2tbNl07CisgICBjYW5vbmljYWwtPmFyZzcgID0gc3RhY2tbN107CisgICBjYW5vbmljYWwtPmFyZzggID0gc3RhY2tbOF07CisKKyAgIHN3aXRjaCAodHJjKSB7CisgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19JTlQxNDU6CisgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19TWVNFTlRFUjoKKyAgIGNhc2UgVkVYX1RSQ19KTVBfU1lTX1NZU0NBTEw6CisgICAvKiBUaGVzZSB0aHJlZSBhcmUgbm90IGFjdHVhbGx5IHZhbGlkIHN5c2NhbGwgaW5zdHJ1Y3Rpb25zIG9uIFNvbGFyaXMuCisgICAgICBQcmV0ZW5kIGZvciBub3cgdGhhdCB3ZSBoYW5kbGUgdGhlbSBhcyBub3JtYWwgc3lzY2FsbHMuICovCisgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19JTlQxMjg6CisgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19JTlQxMjk6CisgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19JTlQxMzA6CisgICAgICAvKiBpbnQgJDB4OTEsIHN5c2VudGVyLCBzeXNjYWxsID0gbm9ybWFsIHN5c2NhbGwgKi8KKyAgICAgIGJyZWFrOworICAgY2FzZSBWRVhfVFJDX0pNUF9TWVNfSU5UMjEwOgorICAgICAgLyogaW50ICQweEQyID0gZmFzdHRyYXAgKi8KKyAgICAgIGNhbm9uaWNhbC0+c3lzbm8KKyAgICAgICAgID0gVkdfU09MQVJJU19TWVNDQUxMX0NPTlNUUlVDVF9GQVNUVFJBUChjYW5vbmljYWwtPnN5c25vKTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorCisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgVmV4R3Vlc3RBTUQ2NFN0YXRlKiBnc3QgPSAoVmV4R3Vlc3RBTUQ2NFN0YXRlKilnc3RfdmFuaWxsYTsKKyAgIFVXb3JkICpzdGFjayA9IChVV29yZCAqKWdzdC0+Z3Vlc3RfUlNQOworICAgY2Fub25pY2FsLT5zeXNubyA9IGdzdC0+Z3Vlc3RfUkFYOworICAgLyogc3RhY2tbMF0gaXMgYSByZXR1cm4gYWRkcmVzcy4gKi8KKyAgIGNhbm9uaWNhbC0+YXJnMSA9IGdzdC0+Z3Vlc3RfUkRJOworICAgY2Fub25pY2FsLT5hcmcyID0gZ3N0LT5ndWVzdF9SU0k7CisgICBjYW5vbmljYWwtPmFyZzMgPSBnc3QtPmd1ZXN0X1JEWDsKKyAgIGNhbm9uaWNhbC0+YXJnNCA9IGdzdC0+Z3Vlc3RfUjEwOyAgLyogTm90IFJDWCB3aXRoIHN5c2NhbGwuICovCisgICBjYW5vbmljYWwtPmFyZzUgPSBnc3QtPmd1ZXN0X1I4OworICAgY2Fub25pY2FsLT5hcmc2ID0gZ3N0LT5ndWVzdF9SOTsKKyAgIGNhbm9uaWNhbC0+YXJnNyA9IHN0YWNrWzFdOworICAgY2Fub25pY2FsLT5hcmc4ID0gc3RhY2tbMl07CisKKyAgIHN3aXRjaCAodHJjKSB7CisgICBjYXNlIFZFWF9UUkNfSk1QX1NZU19TWVNDQUxMOgorICAgICAgLyogc3lzY2FsbCA9IG5vcm1hbCBzeXNjYWxsICovCisgICAgICBicmVhazsKKyAgIGNhc2UgVkVYX1RSQ19KTVBfU1lTX0lOVDIxMDoKKyAgICAgIC8qIGludCAkMHhEMiA9IGZhc3R0cmFwICovCisgICAgICBjYW5vbmljYWwtPnN5c25vCisgICAgICAgICA9IFZHX1NPTEFSSVNfU1lTQ0FMTF9DT05TVFJVQ1RfRkFTVFRSQVAoY2Fub25pY2FsLT5zeXNubyk7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICB2Z19hc3NlcnQoMCk7CisgICAgICBicmVhazsKKyAgIH0KKwogI2Vsc2UKICMgIGVycm9yICJnZXRTeXNjYWxsQXJnc0Zyb21HdWVzdFN0YXRlOiB1bmtub3duIGFyY2giCiAjZW5kaWYKQEAgLTgxNyw2ICs5MzQsNDIgQEAKICAgIGdzdC0+Z3Vlc3RfcjQgPSBjYW5vbmljYWwtPmFyZzU7CiAgICBnc3QtPmd1ZXN0X3I1ID0gY2Fub25pY2FsLT5hcmc2OwogCisjZWxpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIFZleEd1ZXN0WDg2U3RhdGUqIGdzdCA9IChWZXhHdWVzdFg4NlN0YXRlKilnc3RfdmFuaWxsYTsKKyAgIFVXb3JkICpzdGFjayA9IChVV29yZCAqKWdzdC0+Z3Vlc3RfRVNQOworCisgICAvKiBGYXN0dHJhcHMgb3IgYW55dGhpbmcgZWxzZSBjYW5ub3QgZ28gdGhyb3VnaCB0aGlzIHdheS4gKi8KKyAgIHZnX2Fzc2VydChWR19TT0xBUklTX1NZU05PX0NMQVNTKGNhbm9uaWNhbC0+c3lzbm8pCisgICAgICAgICAgICAgPT0gVkdfU09MQVJJU19TWVNDQUxMX0NMQVNTX0NMQVNTSUMpOworICAgZ3N0LT5ndWVzdF9FQVggPSBjYW5vbmljYWwtPnN5c25vOworICAgLyogc3RhY2tbMF0gaXMgYSByZXR1cm4gYWRkcmVzcy4gKi8KKyAgIHN0YWNrWzFdID0gY2Fub25pY2FsLT5hcmcxOworICAgc3RhY2tbMl0gPSBjYW5vbmljYWwtPmFyZzI7CisgICBzdGFja1szXSA9IGNhbm9uaWNhbC0+YXJnMzsKKyAgIHN0YWNrWzRdID0gY2Fub25pY2FsLT5hcmc0OworICAgc3RhY2tbNV0gPSBjYW5vbmljYWwtPmFyZzU7CisgICBzdGFja1s2XSA9IGNhbm9uaWNhbC0+YXJnNjsKKyAgIHN0YWNrWzddID0gY2Fub25pY2FsLT5hcmc3OworICAgc3RhY2tbOF0gPSBjYW5vbmljYWwtPmFyZzg7CisKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBWZXhHdWVzdEFNRDY0U3RhdGUqIGdzdCA9IChWZXhHdWVzdEFNRDY0U3RhdGUqKWdzdF92YW5pbGxhOworICAgVVdvcmQgKnN0YWNrID0gKFVXb3JkICopZ3N0LT5ndWVzdF9SU1A7CisKKyAgIC8qIEZhc3R0cmFwcyBvciBhbnl0aGluZyBlbHNlIGNhbm5vdCBnbyB0aHJvdWdoIHRoaXMgd2F5LiAqLworICAgdmdfYXNzZXJ0KFZHX1NPTEFSSVNfU1lTTk9fQ0xBU1MoY2Fub25pY2FsLT5zeXNubykKKyAgICAgICAgICAgICA9PSBWR19TT0xBUklTX1NZU0NBTExfQ0xBU1NfQ0xBU1NJQyk7CisgICBnc3QtPmd1ZXN0X1JBWCA9IGNhbm9uaWNhbC0+c3lzbm87CisgICAvKiBzdGFja1swXSBpcyBhIHJldHVybiBhZGRyZXNzLiAqLworICAgZ3N0LT5ndWVzdF9SREkgPSBjYW5vbmljYWwtPmFyZzE7CisgICBnc3QtPmd1ZXN0X1JTSSA9IGNhbm9uaWNhbC0+YXJnMjsKKyAgIGdzdC0+Z3Vlc3RfUkRYID0gY2Fub25pY2FsLT5hcmczOworICAgZ3N0LT5ndWVzdF9SMTAgPSBjYW5vbmljYWwtPmFyZzQ7CisgICBnc3QtPmd1ZXN0X1I4ICA9IGNhbm9uaWNhbC0+YXJnNTsKKyAgIGdzdC0+Z3Vlc3RfUjkgID0gY2Fub25pY2FsLT5hcmc2OworICAgc3RhY2tbMV0gPSBjYW5vbmljYWwtPmFyZzc7CisgICBzdGFja1syXSA9IGNhbm9uaWNhbC0+YXJnODsKKwogI2Vsc2UKICMgIGVycm9yICJwdXRTeXNjYWxsQXJnc0ludG9HdWVzdFN0YXRlOiB1bmtub3duIGFyY2giCiAjZW5kaWYKQEAgLTk1MCw2ICsxMTAzLDI0IEBACiAgICBjYW5vbmljYWwtPnNyZXMgPSBWR18obWtfU3lzUmVzX3RpbGVneF9saW51eCkoIGdzdC0+Z3Vlc3RfcjAgKTsKICAgIGNhbm9uaWNhbC0+d2hhdCA9IFNzQ29tcGxldGU7CiAKKyMgIGVsaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBWZXhHdWVzdFg4NlN0YXRlKiBnc3QgPSAoVmV4R3Vlc3RYODZTdGF0ZSopZ3N0X3ZhbmlsbGE7CisgICBVSW50IGNhcnJ5ID0gMSAmIExpYlZFWF9HdWVzdFg4Nl9nZXRfZWZsYWdzKGdzdCk7CisKKyAgIGNhbm9uaWNhbC0+c3JlcyA9IFZHXyhta19TeXNSZXNfeDg2X3NvbGFyaXMpKGNhcnJ5ID8gVHJ1ZSA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0LT5ndWVzdF9FQVgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJyeSA/IDAgOiBnc3QtPmd1ZXN0X0VEWCk7CisgICBjYW5vbmljYWwtPndoYXQgPSBTc0NvbXBsZXRlOworCisjICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBWZXhHdWVzdEFNRDY0U3RhdGUqIGdzdCA9IChWZXhHdWVzdEFNRDY0U3RhdGUqKWdzdF92YW5pbGxhOworICAgVUludCBjYXJyeSA9IDEgJiBMaWJWRVhfR3Vlc3RBTUQ2NF9nZXRfcmZsYWdzKGdzdCk7CisKKyAgIGNhbm9uaWNhbC0+c3JlcyA9IFZHXyhta19TeXNSZXNfYW1kNjRfc29sYXJpcykoY2FycnkgPyBUcnVlIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzdC0+Z3Vlc3RfUkFYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJyeSA/IDAgOiBnc3QtPmd1ZXN0X1JEWCk7CisgICBjYW5vbmljYWwtPndoYXQgPSBTc0NvbXBsZXRlOworCiAjICBlbHNlCiAjICAgIGVycm9yICJnZXRTeXNjYWxsU3RhdHVzRnJvbUd1ZXN0U3RhdGU6IHVua25vd24gYXJjaCIKICMgIGVuZGlmCkBAIC0xMTc1LDYgKzEzNDYsNjAgQEAKICAgICAgIGdzdC0+Z3Vlc3RfcjEgPSAwOwogICAgfQogCisjICBlbGlmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgVmV4R3Vlc3RYODZTdGF0ZSogZ3N0ID0gKFZleEd1ZXN0WDg2U3RhdGUqKWdzdF92YW5pbGxhOworICAgU3lzUmVzIHNyZXMgPSBjYW5vbmljYWwtPnNyZXM7CisgICB2Z19hc3NlcnQoY2Fub25pY2FsLT53aGF0ID09IFNzQ29tcGxldGUpOworCisgICBpZiAoc3JfaXNFcnJvcihzcmVzKSkgeworICAgICAgZ3N0LT5ndWVzdF9FQVggPSBzcl9FcnIoc3Jlcyk7CisgICAgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgVmdfQ29yZVN5c0NhbGwsIHRpZCwgT0ZGU0VUX3g4Nl9FQVgsCisgICAgICAgICAgICAgICBzaXplb2YoVUludCkpOworICAgICAgTGliVkVYX0d1ZXN0WDg2X3B1dF9lZmxhZ19jKDEsIGdzdCk7CisgICB9CisgICBlbHNlIHsKKyAgICAgIGdzdC0+Z3Vlc3RfRUFYID0gc3JfUmVzKHNyZXMpOworICAgICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIFZnX0NvcmVTeXNDYWxsLCB0aWQsIE9GRlNFVF94ODZfRUFYLAorICAgICAgICAgICAgICAgc2l6ZW9mKFVJbnQpKTsKKyAgICAgIGdzdC0+Z3Vlc3RfRURYID0gc3JfUmVzSEkoc3Jlcyk7CisgICAgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgVmdfQ29yZVN5c0NhbGwsIHRpZCwgT0ZGU0VUX3g4Nl9FRFgsCisgICAgICAgICAgICAgICBzaXplb2YoVUludCkpOworICAgICAgTGliVkVYX0d1ZXN0WDg2X3B1dF9lZmxhZ19jKDAsIGdzdCk7CisgICB9CisgICAvKiBNYWtlIENDX0RFUDEgYW5kIENDX0RFUDIgZGVmaW5lZC4gIFRoaXMgaXMgaW5hY2N1cmF0ZSBiZWNhdXNlIGl0IG1ha2VzCisgICAgICBvdGhlciBlZmxhZ3MgZGVmaW5lZCB0b28gKHNlZSBSRUFETUUuc29sYXJpcykuICovCisgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgVmdfQ29yZVN5c0NhbGwsIHRpZCwgb2Zmc2V0b2YoVmV4R3Vlc3RYODZTdGF0ZSwKKyAgICAgICAgICAgIGd1ZXN0X0NDX0RFUDEpLCBzaXplb2YoVUludCkpOworICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIFZnX0NvcmVTeXNDYWxsLCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsCisgICAgICAgICAgICBndWVzdF9DQ19ERVAyKSwgc2l6ZW9mKFVJbnQpKTsKKworIyAgZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgVmV4R3Vlc3RBTUQ2NFN0YXRlKiBnc3QgPSAoVmV4R3Vlc3RBTUQ2NFN0YXRlKilnc3RfdmFuaWxsYTsKKyAgIFN5c1JlcyBzcmVzID0gY2Fub25pY2FsLT5zcmVzOworICAgdmdfYXNzZXJ0KGNhbm9uaWNhbC0+d2hhdCA9PSBTc0NvbXBsZXRlKTsKKworICAgaWYgKHNyX2lzRXJyb3Ioc3JlcykpIHsKKyAgICAgIGdzdC0+Z3Vlc3RfUkFYID0gc3JfRXJyKHNyZXMpOworICAgICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIFZnX0NvcmVTeXNDYWxsLCB0aWQsIE9GRlNFVF9hbWQ2NF9SQVgsCisgICAgICAgICAgICAgICBzaXplb2YoVUxvbmcpKTsKKyAgICAgIExpYlZFWF9HdWVzdEFNRDY0X3B1dF9yZmxhZ19jKDEsIGdzdCk7CisgICB9CisgICBlbHNlIHsKKyAgICAgIGdzdC0+Z3Vlc3RfUkFYID0gc3JfUmVzKHNyZXMpOworICAgICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIFZnX0NvcmVTeXNDYWxsLCB0aWQsIE9GRlNFVF9hbWQ2NF9SQVgsCisgICAgICAgICAgICAgICBzaXplb2YoVUxvbmcpKTsKKyAgICAgIGdzdC0+Z3Vlc3RfUkRYID0gc3JfUmVzSEkoc3Jlcyk7CisgICAgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgVmdfQ29yZVN5c0NhbGwsIHRpZCwgT0ZGU0VUX2FtZDY0X1JEWCwKKyAgICAgICAgICAgICAgIHNpemVvZihVTG9uZykpOworICAgICAgTGliVkVYX0d1ZXN0QU1ENjRfcHV0X3JmbGFnX2MoMCwgZ3N0KTsKKyAgIH0KKyAgIC8qIE1ha2UgQ0NfREVQMSBhbmQgQ0NfREVQMiBkZWZpbmVkLiAgVGhpcyBpcyBpbmFjY3VyYXRlIGJlY2F1c2UgaXQgbWFrZXMKKyAgICAgIG90aGVyIGVmbGFncyBkZWZpbmVkIHRvbyAoc2VlIFJFQURNRS5zb2xhcmlzKS4gKi8KKyAgIFZHX1RSQUNLKHBvc3RfcmVnX3dyaXRlLCBWZ19Db3JlU3lzQ2FsbCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdEFNRDY0U3RhdGUsCisgICAgICAgICAgICBndWVzdF9DQ19ERVAxKSwgc2l6ZW9mKFVMb25nKSk7CisgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgVmdfQ29yZVN5c0NhbGwsIHRpZCwgb2Zmc2V0b2YoVmV4R3Vlc3RBTUQ2NFN0YXRlLAorICAgICAgICAgICAgZ3Vlc3RfQ0NfREVQMiksIHNpemVvZihVTG9uZykpOworCiAjICBlbHNlCiAjICAgIGVycm9yICJwdXRTeXNjYWxsU3RhdHVzSW50b0d1ZXN0U3RhdGU6IHVua25vd24gYXJjaCIKICMgIGVuZGlmCkBAIC0xMzExLDYgKzE1MzYsNyBAQAogICAgbGF5b3V0LT5vX2FyZzYgICA9IE9GRlNFVF9zMzkweF9yNzsKICAgIGxheW91dC0+dXVfYXJnNyAgPSAtMTsgLyogaW1wb3NzaWJsZSB2YWx1ZSAqLwogICAgbGF5b3V0LT51dV9hcmc4ICA9IC0xOyAvKiBpbXBvc3NpYmxlIHZhbHVlICovCisKICNlbGlmIGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkKICAgIGxheW91dC0+b19zeXNubyAgPSBPRkZTRVRfdGlsZWd4X3IoMTApOwogICAgbGF5b3V0LT5vX2FyZzEgICA9IE9GRlNFVF90aWxlZ3hfcigwKTsKQEAgLTEzMjIsNiArMTU0OCwyOSBAQAogICAgbGF5b3V0LT51dV9hcmc3ICA9IC0xOyAvKiBpbXBvc3NpYmxlIHZhbHVlICovCiAgICBsYXlvdXQtPnV1X2FyZzggID0gLTE7IC8qIGltcG9zc2libGUgdmFsdWUgKi8KIAorI2VsaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBsYXlvdXQtPm9fc3lzbm8gID0gT0ZGU0VUX3g4Nl9FQVg7CisgICAvKiBTeXNjYWxsIHBhcmFtZXRlcnMgYXJlIG9uIHRoZSBzdGFjay4gKi8KKyAgIGxheW91dC0+c19hcmcxICAgPSBzaXplb2YoVVdvcmQpICogMTsKKyAgIGxheW91dC0+c19hcmcyICAgPSBzaXplb2YoVVdvcmQpICogMjsKKyAgIGxheW91dC0+c19hcmczICAgPSBzaXplb2YoVVdvcmQpICogMzsKKyAgIGxheW91dC0+c19hcmc0ICAgPSBzaXplb2YoVVdvcmQpICogNDsKKyAgIGxheW91dC0+c19hcmc1ICAgPSBzaXplb2YoVVdvcmQpICogNTsKKyAgIGxheW91dC0+c19hcmc2ICAgPSBzaXplb2YoVVdvcmQpICogNjsKKyAgIGxheW91dC0+c19hcmc3ICAgPSBzaXplb2YoVVdvcmQpICogNzsKKyAgIGxheW91dC0+c19hcmc4ICAgPSBzaXplb2YoVVdvcmQpICogODsKKworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIGxheW91dC0+b19zeXNubyAgPSBPRkZTRVRfYW1kNjRfUkFYOworICAgbGF5b3V0LT5vX2FyZzEgICA9IE9GRlNFVF9hbWQ2NF9SREk7CisgICBsYXlvdXQtPm9fYXJnMiAgID0gT0ZGU0VUX2FtZDY0X1JTSTsKKyAgIGxheW91dC0+b19hcmczICAgPSBPRkZTRVRfYW1kNjRfUkRYOworICAgbGF5b3V0LT5vX2FyZzQgICA9IE9GRlNFVF9hbWQ2NF9SMTA7CisgICBsYXlvdXQtPm9fYXJnNSAgID0gT0ZGU0VUX2FtZDY0X1I4OworICAgbGF5b3V0LT5vX2FyZzYgICA9IE9GRlNFVF9hbWQ2NF9SOTsKKyAgIGxheW91dC0+c19hcmc3ICAgPSBzaXplb2YoVVdvcmQpICogMTsKKyAgIGxheW91dC0+c19hcmc4ICAgPSBzaXplb2YoVVdvcmQpICogMjsKKwogI2Vsc2UKICMgIGVycm9yICJnZXRTeXNjYWxsTGF5b3V0OiB1bmtub3duIGFyY2giCiAjZW5kaWYKQEAgLTEzNTMsNiArMTYwMiwxMCBAQAogICAgVkdfKGRtc2cpKCJpdCBhdCBodHRwOi8vdmFsZ3JpbmQub3JnL3N1cHBvcnQvYnVnX3JlcG9ydHMuaHRtbC5cbiIpOwogCiAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VOT1NZUyk7CisKKyMgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBWR18oZXhpdCkoMSk7CisjICBlbmRpZgogfQogCiBzdGF0aWMgU3lzY2FsbFRhYmxlRW50cnkgYmFkX3N5cyA9CkBAIC0xMzg5LDYgKzE2NDIsOSBAQAogICAgICAgYnJlYWs7CiAgICB9CiAKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIHN5cyA9IE1MXyhnZXRfc29sYXJpc19zeXNjYWxsX2VudHJ5KShzeXNjYWxsbm8pOworCiAjICBlbHNlCiAjICAgIGVycm9yIFVua25vd24gT1MKICMgIGVuZGlmCkBAIC0xNjI2LDcgKzE4ODIsNyBAQAogICAgICAgICBzY2ktPmZsYWdzICAgICAgICBpcyB6ZXJvLgogICAgKi8KIAotICAgUFJJTlQoIlNZU0NBTExbJWQsJWRdKCVzKSAiLAorICAgUFJJTlQoIlNZU0NBTExbJWQsJXVdKCVzKSAiLAogICAgICAgVkdfKGdldHBpZCkoKSwgdGlkLCBWR19TWVNOVU1fU1RSSU5HKHN5c25vKSk7CiAKICAgIC8qIERvIGFueSBwcmUtc3lzY2FsbCBhY3Rpb25zICovCkBAIC0xNzMxLDYgKzE5ODcsMTAgQEAKICAgICAgICAgICAgIGdvIHRocm91Z2ggYW55d2F5LCB3aXRoIFNmVG9CbG9jayBzZXQsIGhlbmNlIHdlIGVuZCB1cCBoZXJlLiAqLwogICAgICAgICAgcHV0U3lzY2FsbEFyZ3NJbnRvR3Vlc3RTdGF0ZSggJnNjaS0+YXJncywgJnRzdC0+YXJjaC52ZXggKTsKIAorICAgICAgICAgLyogU2ZOb1dyaXRlUmVzdWx0IGZsYWcgaXMgaW52YWxpZCBmb3IgYmxvY2tpbmcgc2lnbmFscyBiZWNhdXNlCisgICAgICAgICAgICBkb19zeXNjYWxsX2Zvcl9jbGllbnQoKSBkaXJlY3RseSBtb2RpZmllcyB0aGUgZ3Vlc3Qgc3RhdGUuICovCisgICAgICAgICB2Z19hc3NlcnQoIShzY2ktPmZsYWdzICYgU2ZOb1dyaXRlUmVzdWx0KSk7CisKICAgICAgICAgIC8qIERyb3AgdGhlIGJpZ0xvY2sgKi8KICAgICAgICAgIFZHXyhyZWxlYXNlX0JpZ0xvY2spKHRpZCwgVmdUc19XYWl0U3lzLCAiVkdfKGNsaWVudF9zeXNjYWxsKVthc3luY10iKTsKICAgICAgICAgIC8qIFVyci4gIFdlJ3JlIG5vdyBpbiBhIHJhY2UgYWdhaW5zdCBvdGhlciB0aHJlYWRzIHRyeWluZyB0bwpAQCAtMTc2Nyw3ICsyMDI3LDcgQEAKIAogICAgICAgICAgLyogQmUgZGVjb3JhdGl2ZSwgaWYgcmVxdWlyZWQuICovCiAgICAgICAgICBpZiAoVkdfKGNsb190cmFjZV9zeXNjYWxscykpIHsKLSAgICAgICAgICAgIFBSSU5UKCJTWVNDQUxMWyVkLCVkXSglcykgLi4uIFthc3luY10gLS0+ICVzIiwKKyAgICAgICAgICAgIFBSSU5UKCJTWVNDQUxMWyVkLCV1XSglcykgLi4uIFthc3luY10gLS0+ICVzIiwKICAgICAgICAgICAgICAgICAgIFZHXyhnZXRwaWQpKCksIHRpZCwgVkdfU1lTTlVNX1NUUklORyhzeXNubyksCiAgICAgICAgICAgICAgICAgICBWR18oc3JfYXNfc3RyaW5nKShzY2ktPnN0YXR1cy5zcmVzKSk7CiAgICAgICAgICB9CkBAIC0xODU4LDkgKzIxMTgsMTUgQEAKICAgICAgIHByZXZpb3VzbHkgd3JpdHRlbiB0aGUgcmVzdWx0IGludG8gdGhlIGd1ZXN0IHN0YXRlLiAqLwogICAgdmdfYXNzZXJ0KHNjaS0+c3RhdHVzLndoYXQgPT0gU3NDb21wbGV0ZSk7CiAKKyAgIC8qIEdldCB0aGUgc3lzdGVtIGNhbGwgbnVtYmVyLiAgQmVjYXVzZSB0aGUgcHJlLWhhbmRsZXIgaXNuJ3QKKyAgICAgIGFsbG93ZWQgdG8gbWVzcyB3aXRoIGl0LCBpdCBzaG91bGQgYmUgdGhlIHNhbWUgZm9yIGJvdGggdGhlCisgICAgICBvcmlnaW5hbCBhbmQgcG90ZW50aWFsbHktbW9kaWZpZWQgYXJncy4gKi8KKyAgIHZnX2Fzc2VydChzY2ktPmFyZ3Muc3lzbm8gPT0gc2NpLT5vcmlnX2FyZ3Muc3lzbm8pOworICAgc3lzbm8gPSBzY2ktPmFyZ3Muc3lzbm87CisKICAgIGdldFN5c2NhbGxTdGF0dXNGcm9tR3Vlc3RTdGF0ZSggJnRlc3Rfc3RhdHVzLCAmdHN0LT5hcmNoLnZleCApOwogICAgaWYgKCEoc2NpLT5mbGFncyAmIFNmTm9Xcml0ZVJlc3VsdCkpCi0gICAgICB2Z19hc3NlcnQoZXFfU3lzY2FsbFN0YXR1cyggJnNjaS0+c3RhdHVzLCAmdGVzdF9zdGF0dXMgKSk7CisgICAgICB2Z19hc3NlcnQoZXFfU3lzY2FsbFN0YXR1cyggc3lzbm8sICZzY2ktPnN0YXR1cywgJnRlc3Rfc3RhdHVzICkpOwogICAgLyogRmFpbHVyZSBvZiB0aGUgYWJvdmUgYXNzZXJ0aW9uIG9uIERhcndpbiBjYW4gaW5kaWNhdGUgYSBwcm9ibGVtCiAgICAgICBpbiB0aGUgc3lzY2FsbCB3cmFwcGVycyB0aGF0IHByZS1mYWlsIG9yIHByZS1zdWNjZWVkIHRoZQogICAgICAgc3lzY2FsbCwgYnkgY2FsbGluZyBTRVRfU1RBVFVTX1N1Y2Nlc3Mgb3IgU0VUX1NUQVRVU19GYWlsdXJlLApAQCAtMTg3MiwxOCArMjEzOCwxMiBAQAogICAgICAgY29tbWVudCBpcyBjb21wbGV0ZWx5IGlycmVsZXZhbnQuICovCiAgICAvKiBPaywgbG9va3Mgc2FuZSAqLwogCi0gICAvKiBHZXQgdGhlIHN5c3RlbSBjYWxsIG51bWJlci4gIEJlY2F1c2UgdGhlIHByZS1oYW5kbGVyIGlzbid0Ci0gICAgICBhbGxvd2VkIHRvIG1lc3Mgd2l0aCBpdCwgaXQgc2hvdWxkIGJlIHRoZSBzYW1lIGZvciBib3RoIHRoZQotICAgICAgb3JpZ2luYWwgYW5kIHBvdGVudGlhbGx5LW1vZGlmaWVkIGFyZ3MuICovCi0gICB2Z19hc3NlcnQoc2NpLT5hcmdzLnN5c25vID09IHNjaS0+b3JpZ19hcmdzLnN5c25vKTsKLSAgIHN5c25vID0gc2NpLT5hcmdzLnN5c25vOwotICAgZW50ID0gZ2V0X3N5c2NhbGxfZW50cnkoc3lzbm8pOwotCiAgICAvKiBwcmU6IHN0YXR1cyA9PSBDb21wbGV0ZSAoYXNzZXJ0ZWQgYWJvdmUpICovCiAgICAvKiBDb25zaWRlciBlaXRoZXIgc3VjY2VzcyBvciBmYWlsdXJlLiAgTm93IHJ1biB0aGUgcG9zdCBoYW5kbGVyIGlmOgogICAgICAgLSBpdCBleGlzdHMsIGFuZAogICAgICAgLSBTdWNjZXNzIG9yIChGYWlsdXJlIGFuZCBQb3N0T25GYWlsIGlzIHNldCkKICAgICovCisgICBlbnQgPSBnZXRfc3lzY2FsbF9lbnRyeShzeXNubyk7CiAgICBpZiAoZW50LT5hZnRlcgogICAgICAgICYmICgoIXNyX2lzRXJyb3Ioc2NpLT5zdGF0dXMuc3JlcykpCiAgICAgICAgICAgIHx8IChzcl9pc0Vycm9yKHNjaS0+c3RhdHVzLnNyZXMpCkBAIC0xOTg1LDYgKzIyNDUsMTUgQEAKICAgZXh0ZXJuIGNvbnN0IEFkZHIgTUxfKGJsa3N5c19jb21wbGV0ZV9VTklYKTsKICAgZXh0ZXJuIGNvbnN0IEFkZHIgTUxfKGJsa3N5c19jb21taXR0ZWRfVU5JWCk7CiAgIGV4dGVybiBjb25zdCBBZGRyIE1MXyhibGtzeXNfZmluaXNoZWRfVU5JWCk7CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICBleHRlcm4gY29uc3QgQWRkciBNTF8oYmxrc3lzX3NldHVwKTsKKyAgZXh0ZXJuIGNvbnN0IEFkZHIgTUxfKGJsa3N5c19jb21wbGV0ZSk7CisgIGV4dGVybiBjb25zdCBBZGRyIE1MXyhibGtzeXNfY29tbWl0dGVkKTsKKyAgZXh0ZXJuIGNvbnN0IEFkZHIgTUxfKGJsa3N5c19maW5pc2hlZCk7CisgIGV4dGVybiBjb25zdCBBZGRyIE1MXyhibGtzeXNfc2V0dXBfRFJFVCk7CisgIGV4dGVybiBjb25zdCBBZGRyIE1MXyhibGtzeXNfY29tcGxldGVfRFJFVCk7CisgIGV4dGVybiBjb25zdCBBZGRyIE1MXyhibGtzeXNfY29tbWl0dGVkX0RSRVQpOworICBleHRlcm4gY29uc3QgQWRkciBNTF8oYmxrc3lzX2ZpbmlzaGVkX0RSRVQpOwogI2Vsc2UKICMgZXJyb3IgIlVua25vd24gT1MiCiAjZW5kaWYKQEAgLTIwNDYsNyArMjMxNSw3IEBACiAgICAgICBpZiAocFswXSAhPSAweDQ0IHx8IHBbMV0gIT0gMHgwIHx8IHBbMl0gIT0gMHgwIHx8IHBbM10gIT0gMHgwMikKICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKICAgICAgICAgICAgICAgICAgICAgICAiPyEgcmVzdGFydGluZyBvdmVyIHN5c2NhbGwgYXQgJSNsbHggJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICBhcmNoLT52ZXguZ3Vlc3RfQ0lBICsgMFVMTCwgcFswXSwgcFsxXSwgcFsyXSwgcFszXSk7CisgICAgICAgICAgICAgICAgICAgICAgKFVMb25nKWFyY2gtPnZleC5ndWVzdF9DSUEsIHBbMF0sIHBbMV0sIHBbMl0sIHBbM10pOwogCiAgICAgICB2Z19hc3NlcnQocFswXSA9PSAweDQ0ICYmIHBbMV0gPT0gMHgwICYmIHBbMl0gPT0gMHgwICYmIHBbM10gPT0gMHgyKTsKICAgIH0KQEAgLTIwNjUsNyArMjMzNCw3IEBACiAgICAgICBpZiAocFszXSAhPSAweDQ0IHx8IHBbMl0gIT0gMHgwIHx8IHBbMV0gIT0gMHgwIHx8IHBbMF0gIT0gMHgwMikKICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKICAgICAgICAgICAgICAgICAgICAgICAiPyEgcmVzdGFydGluZyBvdmVyIHN5c2NhbGwgYXQgJSNsbHggJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICBhcmNoLT52ZXguZ3Vlc3RfQ0lBICsgMFVMTCwgcFszXSwgcFsyXSwgcFsxXSwgcFswXSk7CisgICAgICAgICAgICAgICAgICAgICAgYXJjaC0+dmV4Lmd1ZXN0X0NJQSwgcFszXSwgcFsyXSwgcFsxXSwgcFswXSk7CiAKICAgICAgIHZnX2Fzc2VydChwWzNdID09IDB4NDQgJiYgcFsyXSA9PSAweDAgJiYgcFsxXSA9PSAweDAgJiYgcFswXSA9PSAweDIpOwogICAgfQpAQCAtMjA4MSw4ICsyMzUwLDggQEAKICAgICAgIGlmICghdmFsaWQpIHsKICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKICAgICAgICAgICAgICAgICAgICAgICAiPyEgcmVzdGFydGluZyBvdmVyIChUaHVtYikgc3lzY2FsbCB0aGF0IGlzIG5vdCBzeXNjYWxsICIKLSAgICAgICAgICAgICAgICAgICAgICAiYXQgJSNsbHggJTAyeCAlMDJ4XG4iLAotICAgICAgICAgICAgICAgICAgICAgIGFyY2gtPnZleC5ndWVzdF9SMTVUIC0gMVVMTCwgcFswXSwgcFsxXSk7CisgICAgICAgICAgICAgICAgICAgICAgImF0ICUjeCAlMDJ4ICUwMnhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgYXJjaC0+dmV4Lmd1ZXN0X1IxNVQgLSAxLCBwWzBdLCBwWzFdKTsKICAgICAgIH0KICAgICAgIHZnX2Fzc2VydCh2YWxpZCk7CiAgICAgICAvLyBGSVhNRTogTk9URSwgdGhpcyByZWFsbHkgaXNuJ3QgcmlnaHQuICBXZSBuZWVkIHRvIGJhY2sgdXAKQEAgLTIxMDMsOCArMjM3Miw4IEBACiAgICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCiAgICAgICAgICAgICAgICAgICAgICAgIj8hIHJlc3RhcnRpbmcgb3ZlciAoQVJNKSBzeXNjYWxsIHRoYXQgaXMgbm90IHN5c2NhbGwgIgotICAgICAgICAgICAgICAgICAgICAgICJhdCAlI2xseCAlMDJ4ICUwMnggJTAyeCAlMDJ4XG4iLAotICAgICAgICAgICAgICAgICAgICAgIGFyY2gtPnZleC5ndWVzdF9SMTVUICsgMFVMTCwgcFswXSwgcFsxXSwgcFsyXSwgcFszXSk7CisgICAgICAgICAgICAgICAgICAgICAgImF0ICUjeCAlMDJ4ICUwMnggJTAyeCAlMDJ4XG4iLAorICAgICAgICAgICAgICAgICAgICAgIGFyY2gtPnZleC5ndWVzdF9SMTVULCBwWzBdLCBwWzFdLCBwWzJdLCBwWzNdKTsKICAgICAgIH0KICAgICAgIHZnX2Fzc2VydCh2YWxpZCk7CiAgICB9CkBAIC0yMTI0LDcgKzIzOTMsNyBAQAogICAgICAgICAgVkdfKG1lc3NhZ2UpKAogICAgICAgICAgICAgVmdfRGVidWdNc2csCiAgICAgICAgICAgICAiPyEgcmVzdGFydGluZyBvdmVyIHN5c2NhbGwgYXQgJSNsbHggJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwKLSAgICAgICAgICAgIGFyY2gtPnZleC5ndWVzdF9QQyArIDBVTEwsIHBbMF0sIHBbMV0sIHBbMl0sIHBbM10KKyAgICAgICAgICAgIGFyY2gtPnZleC5ndWVzdF9QQywgcFswXSwgcFsxXSwgcFsyXSwgcFszXQogICAgICAgICAgICk7CiAKICAgICAgIHZnX2Fzc2VydChwWzBdID09IDB4MDEgJiYgcFsxXSA9PSAweDAwICYmIHBbMl0gPT0gMHgwMCAmJiBwWzNdID09IDB4RDQpOwpAQCAtMjEzNiwxMCArMjQwNSwxMCBAQAogICAgLyogTWFrZSBzdXJlIG91ciBjYWxsZXIgaXMgYWN0dWFsbHkgc2FuZSwgYW5kIHdlJ3JlIHJlYWxseSBiYWNraW5nCiAgICAgICBiYWNrIG92ZXIgYSBzeXNjYWxsLgogCi0gICAgICBpbnQgJDB4ODAgPT0gQ0QgODAKLSAgICAgIGludCAkMHg4MSA9PSBDRCA4MQotICAgICAgaW50ICQweDgyID09IENEIDgyCi0gICAgICBzeXNlbnRlciAgPT0gMEYgMzQKKyAgICAgIGludCAkMHg4MCA9PSBDRCA4MCAgLy8gVXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIEJTRCBzeXNjYWxscworICAgICAgaW50ICQweDgxID09IENEIDgxICAvLyBVc2VkIHRvIGNvbW11bmljYXRlIHdpdGggTWFjaCB0cmFwcworICAgICAgaW50ICQweDgyID09IENEIDgyICAvLyBVc2VkIHRvIGNvbW11bmljYXRlIHdpdGggInRocmVhZCIgPworICAgICAgc3lzZW50ZXIgID09IDBGIDM0ICAvLyBVc2VkIHRvIGNvbW11bmljYXRlIHdpdGggVW5peCBzeXNjYWxscwogICAgKi8KICAgIHsKICAgICAgICBVQ2hhciAqcCA9IChVQ2hhciAqKWFyY2gtPnZleC5ndWVzdF9FSVA7CkBAIC0yMTU1LDggKzI0MjQsMjMgQEAKICAgIH0KICAgIAogI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKQotICAgLy8gREREOiAjd2FybmluZyBHclAgZml4bWUgYW1kNjQgcmVzdGFydCB1bmltcGxlbWVudGVkCi0gICB2Z19hc3NlcnQoMCk7CisgICBhcmNoLT52ZXguZ3Vlc3RfUklQID0gYXJjaC0+dmV4Lmd1ZXN0X0lQX0FUX1NZU0NBTEw7CisgICAgCisgICAvKiBNYWtlIHN1cmUgb3VyIGNhbGxlciBpcyBhY3R1YWxseSBzYW5lLCBhbmQgd2UncmUgcmVhbGx5IGJhY2tpbmcKKyAgICAgIGJhY2sgb3ZlciBhIHN5c2NhbGwuCisKKyAgICAgIHN5c2NhbGwgICA9PSAwRiAwNQorICAgKi8KKyAgIHsKKyAgICAgICBVQ2hhciAqcCA9IChVQ2hhciAqKWFyY2gtPnZleC5ndWVzdF9SSVA7CisgICAgICAgIAorICAgICAgIEJvb2wgIG9rID0gKHBbMF0gPT0gMHgwRiAmJiBwWzFdID09IDB4MDUpOworICAgICAgIGlmICghb2spCisgICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICI/ISByZXN0YXJ0aW5nIG92ZXIgc3lzY2FsbCBhdCAlI2xseCAlMDJ4ICUwMnhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBhcmNoLT52ZXguZ3Vlc3RfUklQLCBwWzBdLCBwWzFdKTsKKyAgICAgICB2Z19hc3NlcnQob2spOworICAgfQogICAgCiAjZWxpZiBkZWZpbmVkKFZHUF9zMzkweF9saW51eCkKICAgIGFyY2gtPnZleC5ndWVzdF9JQSAtPSAyOyAgICAgICAgICAgICAvLyBzaXplb2Yoc3lzY2FsbCkKQEAgLTIyMjMsNiArMjUwNyw1NyBAQAogICAgICAgdmdfYXNzZXJ0KHBbMF0gPT0gMHgyODZiMTgwMDUxNDg1MDAwVUxMKTsKICAgIH0KIAorI2VsaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBhcmNoLT52ZXguZ3Vlc3RfRUlQIC09IDI7ICAgLy8gc2l6ZW9mKGludCAkMHg5MSkgb3Igc2l6ZW9mKHN5c2NhbGwpCisKKyAgIC8qIE1ha2Ugc3VyZSBvdXIgY2FsbGVyIGlzIGFjdHVhbGx5IHNhbmUsIGFuZCB3ZSdyZSByZWFsbHkgYmFja2luZworICAgICAgYmFjayBvdmVyIGEgc3lzY2FsbC4KKworICAgICAgaW50ICQweDkxID09IENEIDkxCisgICAgICBzeXNjYWxsICAgPT0gMEYgMDUKKyAgICAgIHN5c2VudGVyICA9PSAwRiAzNAorCisgICAgICBIYW5kbGUgYWxzbyBvdGhlciBzeXNjYWxsIGluc3RydWN0aW9ucyBiZWNhdXNlIHdlIGFsc28gaGFuZGxlIHRoZW0gaW4KKyAgICAgIHRoZSBzY2hlZHVsZXIuCisgICAgICBpbnQgJDB4ODAgPT0gQ0QgODAKKyAgICAgIGludCAkMHg4MSA9PSBDRCA4MQorICAgICAgaW50ICQweDgyID09IENEIDgyCisgICAqLworICAgeworICAgICAgVUNoYXIgKnAgPSAoVUNoYXIgKilhcmNoLT52ZXguZ3Vlc3RfRUlQOworCisgICAgICBCb29sICBvayA9IChwWzBdID09IDB4Q0QgJiYgcFsxXSA9PSAweDkxKQorICAgICAgICAgICAgICAgICAgfHwgKHBbMF0gPT0gMHgwRiAmJiBwWzFdID09IDB4MDUpCisgICAgICAgICAgICAgICAgICB8fCAocFswXSA9PSAweDBGICYmIHBbMV0gPT0gMHgzNCkKKyAgICAgICAgICAgICAgICAgIHx8IChwWzBdID09IDB4Q0QgJiYgcFsxXSA9PSAweDgwKQorICAgICAgICAgICAgICAgICAgfHwgKHBbMF0gPT0gMHhDRCAmJiBwWzFdID09IDB4ODEpCisgICAgICAgICAgICAgICAgICB8fCAocFswXSA9PSAweENEICYmIHBbMV0gPT0gMHg4Mik7CisgICAgICBpZiAoIW9rKQorICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAorICAgICAgICAgICAgICAgICAgICAgICI/ISByZXN0YXJ0aW5nIG92ZXIgc3lzY2FsbCBhdCAlI3ggJTAyeCAlMDJ4XG4iLAorICAgICAgICAgICAgICAgICAgICAgIGFyY2gtPnZleC5ndWVzdF9FSVAsIHBbMF0sIHBbMV0pOworICAgICAgdmdfYXNzZXJ0KG9rKTsKKyAgIH0KKworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIGFyY2gtPnZleC5ndWVzdF9SSVAgLT0gMjsgICAvLyBzaXplb2Yoc3lzY2FsbCkKKworICAgLyogTWFrZSBzdXJlIG91ciBjYWxsZXIgaXMgYWN0dWFsbHkgc2FuZSwgYW5kIHdlJ3JlIHJlYWxseSBiYWNraW5nCisgICAgICBiYWNrIG92ZXIgYSBzeXNjYWxsLgorCisgICAgICBzeXNjYWxsICAgPT0gMEYgMDUKKyAgICovCisgICB7CisgICAgICBVQ2hhciAqcCA9IChVQ2hhciAqKWFyY2gtPnZleC5ndWVzdF9SSVA7CisKKyAgICAgIEJvb2wgIG9rID0gKHBbMF0gPT0gMHgwRiAmJiBwWzFdID09IDB4MDUpOworICAgICAgaWYgKCFvaykKKyAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKKyAgICAgICAgICAgICAgICAgICAgICAiPyEgcmVzdGFydGluZyBvdmVyIHN5c2NhbGwgYXQgJSNsbHggJTAyeCAlMDJ4XG4iLAorICAgICAgICAgICAgICAgICAgICAgIGFyY2gtPnZleC5ndWVzdF9SSVAsIHBbMF0sIHBbMV0pOworICAgICAgdmdfYXNzZXJ0KG9rKTsKKyAgIH0KKwogI2Vsc2UKICMgIGVycm9yICJNTF8oZml4dXBfZ3Vlc3Rfc3RhdGVfdG9fcmVzdGFydF9zeXNjYWxsKTogdW5rbm93biBwbGF0IgogI2VuZGlmCkBAIC0yMjYzLDcgKzI1OTgsOCBAQAogVkdfKGZpeHVwX2d1ZXN0X3N0YXRlX2FmdGVyX3N5c2NhbGxfaW50ZXJydXB0ZWQpKCBUaHJlYWRJZCB0aWQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyICAgICBpcCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c1JlcyAgIHNyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgICAgIHJlc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgICAgIHJlc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfdWNvbnRleHQgKnVjKQogewogICAgLyogTm90ZSB0aGF0IHdlIGRvbid0IGtub3cgdGhlIHN5c2NhbGwgbnVtYmVyIGhlcmUsIHNpbmNlICgxKSBpbgogICAgICAgZ2VuZXJhbCB0aGVyZSdzIG5vIHJlbGlhYmxlIHdheSB0byBnZXQgaG9sZCBvZiBpdCBzaG9ydCBvZgpAQCAtMjI4OCw2ICsyNjI0LDI0IEBACiAgICAgICAgIGluX2NvbXBsZXRlX3RvX2NvbW1pdHRlZCwgLy8gWzMsNCkgaW4gdGhlIC5TIGZpbGVzCiAgICAgICAgIGluX2NvbW1pdHRlZF90b19maW5pc2hlZDsgLy8gWzQsNSkgaW4gdGhlIC5TIGZpbGVzCiAKKyAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQorICAgICAgVkdfKG1lc3NhZ2UpKCBWZ19EZWJ1Z01zZywKKyAgICAgICAgICAgICAgICAgICAgImludGVycnVwdGVkX3N5c2NhbGw6IHRpZD0ldSwgaXA9JSNseCwgIgorICAgICAgICAgICAgICAgICAgICAicmVzdGFydD0lcywgc3Jlcy5pc0Vycj0lcywgc3Jlcy52YWw9JWx1XG4iLAorICAgICAgICAgICAgICAgICAgICB0aWQsCisgICAgICAgICAgICAgICAgICAgIGlwLAorICAgICAgICAgICAgICAgICAgICByZXN0YXJ0ID8gIlRydWUiIDogIkZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAgc3JfaXNFcnJvcihzcmVzKSA/ICJUcnVlIiA6ICJGYWxzZSIsCisgICAgICAgICAgICAgICAgICAgIHNyX2lzRXJyb3Ioc3JlcykgPyBzcl9FcnIoc3JlcykgOiBzcl9SZXMoc3JlcykpOworCisgICB2Z19hc3NlcnQoVkdfKGlzX3ZhbGlkX3RpZCkodGlkKSk7CisgICB2Z19hc3NlcnQodGlkID49IDEgJiYgdGlkIDwgVkdfTl9USFJFQURTKTsKKyAgIHZnX2Fzc2VydChWR18oaXNfcnVubmluZ190aHJlYWQpKHRpZCkpOworCisgICB0c3QgICAgID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAgIHRoX3JlZ3MgPSAmdHN0LT5hcmNoOworICAgc2NpICAgICA9ICYgc3lzY2FsbEluZm9bdGlkXTsKKwogIyAgaWYgZGVmaW5lZChWR09fbGludXgpCiAgICBvdXRzaWRlX3JhbmdlCiAgICAgICA9IGlwIDwgTUxfKGJsa3N5c19zZXR1cCkgfHwgaXAgPj0gTUxfKGJsa3N5c19maW5pc2hlZCk7CkBAIC0yMzIxLDI4ICsyNjc1LDM2IEBACiAgICAgICB8fCAoaXAgPj0gTUxfKGJsa3N5c19jb21taXR0ZWRfTURFUCkgJiYgaXAgPCBNTF8oYmxrc3lzX2ZpbmlzaGVkX01ERVApKQogICAgICAgfHwgKGlwID49IE1MXyhibGtzeXNfY29tbWl0dGVkX1VOSVgpICYmIGlwIDwgTUxfKGJsa3N5c19maW5pc2hlZF9VTklYKSk7CiAgICAvKiBXYXNuJ3QgdGhhdCBqdXN0IFNvIE11Y2ggRnVuPyAgRG9lcyB5b3VyIGhlYWQgaHVydCB5ZXQ/ICBNaW5lIGRvZXMuICovCisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAvKiBUaGUgc29sYXJpcyBwb3J0IGlzIG5ldmVyIG91dHNpZGUgdGhlIHJhbmdlLiAqLworICAgb3V0c2lkZV9yYW5nZSA9IEZhbHNlOworICAgLyogVGhlIFNvbGFyaXMga2VybmVsIG5ldmVyIHJlc3RhcnRzIHN5c2NhbGxzIGRpcmVjdGx5ISAqLworICAgYXRfcmVzdGFydCA9IEZhbHNlOworICAgaWYgKHRzdC0+b3Nfc3RhdGUuaW5fZG9vcl9yZXR1cm4pIHsKKyAgICAgIHZnX2Fzc2VydChpcCA+PSBNTF8oYmxrc3lzX3NldHVwX0RSRVQpCisgICAgICAgICAgICAgICAgJiYgaXAgPCBNTF8oYmxrc3lzX2ZpbmlzaGVkX0RSRVQpKTsKKworICAgICAgaW5fc2V0dXBfdG9fcmVzdGFydAorICAgICAgICAgPSBpcCA+PSBNTF8oYmxrc3lzX3NldHVwX0RSRVQpICYmIGlwIDwgTUxfKGJsa3N5c19jb21wbGV0ZV9EUkVUKTsKKyAgICAgIGluX2NvbXBsZXRlX3RvX2NvbW1pdHRlZAorICAgICAgICAgPSBpcCA+PSBNTF8oYmxrc3lzX2NvbXBsZXRlX0RSRVQpICYmIGlwIDwgTUxfKGJsa3N5c19jb21taXR0ZWRfRFJFVCk7CisgICAgICBpbl9jb21taXR0ZWRfdG9fZmluaXNoZWQKKyAgICAgICAgID0gaXAgPj0gTUxfKGJsa3N5c19jb21taXR0ZWRfRFJFVCkgJiYgaXAgPCBNTF8oYmxrc3lzX2ZpbmlzaGVkX0RSRVQpOworICAgfQorICAgZWxzZSB7CisgICAgICB2Z19hc3NlcnQoaXAgPj0gTUxfKGJsa3N5c19zZXR1cCkgJiYgaXAgPCBNTF8oYmxrc3lzX2ZpbmlzaGVkKSk7CisKKyAgICAgIGluX3NldHVwX3RvX3Jlc3RhcnQKKyAgICAgICAgID0gaXAgPj0gTUxfKGJsa3N5c19zZXR1cCkgJiYgaXAgPCBNTF8oYmxrc3lzX2NvbXBsZXRlKTsKKyAgICAgIGluX2NvbXBsZXRlX3RvX2NvbW1pdHRlZAorICAgICAgICAgPSBpcCA+PSBNTF8oYmxrc3lzX2NvbXBsZXRlKSAmJiBpcCA8IE1MXyhibGtzeXNfY29tbWl0dGVkKTsKKyAgICAgIGluX2NvbW1pdHRlZF90b19maW5pc2hlZAorICAgICAgICAgPSBpcCA+PSBNTF8oYmxrc3lzX2NvbW1pdHRlZCkgJiYgaXAgPCBNTF8oYmxrc3lzX2ZpbmlzaGVkKTsKKyAgIH0KICMgIGVsc2UKICMgICAgZXJyb3IgIlVua25vd24gT1MiCiAjICBlbmRpZgogCi0gICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKLSAgICAgIFZHXyhtZXNzYWdlKSggVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgICAgICJpbnRlcnJ1cHRlZF9zeXNjYWxsOiB0aWQ9JWQsIGlwPTB4JWxseCwgIgotICAgICAgICAgICAgICAgICAgICAicmVzdGFydD0lcywgc3Jlcy5pc0Vycj0lcywgc3Jlcy52YWw9JWxsZFxuIiwgCi0gICAgICAgICAgICAgICAgICAgIChJbnQpdGlkLAotICAgICAgICAgICAgICAgICAgICAoVUxvbmcpaXAsIAotICAgICAgICAgICAgICAgICAgICByZXN0YXJ0ID8gIlRydWUiIDogIkZhbHNlIiwgCi0gICAgICAgICAgICAgICAgICAgIHNyX2lzRXJyb3Ioc3JlcykgPyAiVHJ1ZSIgOiAiRmFsc2UiLAotICAgICAgICAgICAgICAgICAgICAoTG9uZykoc3JfaXNFcnJvcihzcmVzKSA/IHNyX0VycihzcmVzKSA6IHNyX1JlcyhzcmVzKSkgKTsKLQotICAgdmdfYXNzZXJ0KFZHXyhpc192YWxpZF90aWQpKHRpZCkpOwotICAgdmdfYXNzZXJ0KHRpZCA+PSAxICYmIHRpZCA8IFZHX05fVEhSRUFEUyk7Ci0gICB2Z19hc3NlcnQoVkdfKGlzX3J1bm5pbmdfdGhyZWFkKSh0aWQpKTsKLQotICAgdHN0ICAgICA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7Ci0gICB0aF9yZWdzID0gJnRzdC0+YXJjaDsKLSAgIHNjaSAgICAgPSAmIHN5c2NhbGxJbmZvW3RpZF07Ci0KICAgIC8qIEZpZ3VyZSBvdXQgd2hhdCB0aGUgc3RhdGUgb2YgdGhlIHN5c2NhbGwgd2FzIGJ5IGV4YW1pbmluZyB0aGUKICAgICAgIChyZWFsKSBJUCBhdCB0aGUgdGltZSBvZiB0aGUgc2lnbmFsLCBhbmQgYWN0IGFjY29yZGluZ2x5LiAqLwogICAgaWYgKG91dHNpZGVfcmFuZ2UpIHsKQEAgLTIzNzIsNiArMjczNCwxMSBAQAogCiAgICBlbHNlIAogICAgaWYgKGF0X3Jlc3RhcnQpIHsKKyMgICAgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAvKiBXZSBzaG91bGQgbmV2ZXIgaGl0IHRoaXMgYnJhbmNoIG9uIFNvbGFyaXMsIHNlZSB0aGUgY29tbWVudCBhYm92ZS4gKi8KKyAgICAgIHZnX2Fzc2VydCgwKTsKKyMgICAgIGVuZGlmCisKICAgICAgIC8qIFdlJ3JlIGVpdGhlciBhYm91dCB0byBydW4gdGhlIHN5c2NhbGwsIG9yIGl0IHdhcyBpbnRlcnJ1cHRlZAogICAgICAgICAgYW5kIHRoZSBrZXJuZWwgcmVzdGFydGVkIGl0LiAgUmVzdGFydCBpZiBhc2tlZCwgb3RoZXJ3aXNlCiAgICAgICAgICBFSU5UUiBpdC4gKi8KQEAgLTI0MDEsOCArMjc2OCwyMCBAQAogICAgICAgICAgVkdfKG1lc3NhZ2UpKCBWZ19EZWJ1Z01zZywKICAgICAgICAgICAgICAgICAgICAgICAgIiAgY29tcGxldGVkLCBidXQgdW5jb21taXR0ZWQ6IGNvbW1pdHRpbmdcbiIpOwogICAgICAgY2Fub25pY2FsID0gY29udmVydF9TeXNSZXNfdG9fU3lzY2FsbFN0YXR1cyggc3JlcyApOwotICAgICAgaWYgKCEoc2NpLT5mbGFncyAmIFNmTm9Xcml0ZVJlc3VsdCkpCi0gICAgICAgICBwdXRTeXNjYWxsU3RhdHVzSW50b0d1ZXN0U3RhdGUoIHRpZCwgJmNhbm9uaWNhbCwgJnRoX3JlZ3MtPnZleCApOworICAgICAgdmdfYXNzZXJ0KCEoc2NpLT5mbGFncyAmIFNmTm9Xcml0ZVJlc3VsdCkpOworICAgICAgcHV0U3lzY2FsbFN0YXR1c0ludG9HdWVzdFN0YXRlKCB0aWQsICZjYW5vbmljYWwsICZ0aF9yZWdzLT52ZXggKTsKKyMgICAgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICBpZiAodHN0LT5vc19zdGF0ZS5pbl9kb29yX3JldHVybikgeworIyAgICAgICAgaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICAgICAgICAvKiBSZWdpc3RlcnMgJWVzcCBhbmQgJWVicCB3ZXJlIGFsc28gbW9kaWZpZWQgYnkgdGhlIHN5c2NhbGwuICovCisgICAgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VTUCA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfVUVTUF07CisgICAgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VCUCA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUJQXTsKKyMgICAgICAgIGVsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgICAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUlNQID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUlNQXTsKKyAgICAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfUkJQID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9SRUdfUkJQXTsKKyMgICAgICAgIGVuZGlmCisgICAgICB9CisjICAgICBlbmRpZgogICAgICAgc2NpLT5zdGF0dXMgPSBjYW5vbmljYWw7CiAgICAgICBWR18ocG9zdF9zeXNjYWxsKSh0aWQpOwogICAgfSAKQEAgLTI0MTUsNiArMjc5NCwxMyBAQAogICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCiAgICAgICAgICBWR18obWVzc2FnZSkoIFZnX0RlYnVnTXNnLAogICAgICAgICAgICAgICAgICAgICAgICAiICBjb21wbGV0ZWQgYW5kIGNvbW1pdHRlZDogbm90aGluZyB0byBkb1xuIik7CisjICAgICBpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgICAgIC8qIFRoZSAlZWF4IGFuZCAlZWR4IHZhbHVlcyBhcmUgY29tbWl0dGVkIGJ1dCB0aGUgY2FycnkgZmxhZyBpcyBzdGlsbAorICAgICAgICAgdW5jb21taXR0ZWQuICBTYXZlIGl0IG5vdy4gKi8KKyAgICAgIExpYlZFWF9HdWVzdFg4Nl9wdXRfZWZsYWdfYyhzcl9pc0Vycm9yKHNyZXMpLCAmdGhfcmVncy0+dmV4KTsKKyMgICAgIGVsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgICAgIExpYlZFWF9HdWVzdEFNRDY0X3B1dF9yZmxhZ19jKHNyX2lzRXJyb3Ioc3JlcyksICZ0aF9yZWdzLT52ZXgpOworIyAgICAgZW5kaWYKICAgICAgIGdldFN5c2NhbGxTdGF0dXNGcm9tR3Vlc3RTdGF0ZSggJnNjaS0+c3RhdHVzLCAmdGhfcmVncy0+dmV4ICk7CiAgICAgICB2Z19hc3NlcnQoc2NpLT5zdGF0dXMud2hhdCA9PSBTc0NvbXBsZXRlKTsKICAgICAgIFZHXyhwb3N0X3N5c2NhbGwpKHRpZCk7CkBAIC0yNDMxLDYgKzI4MTcsMjEgQEAKIH0KIAogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIFJldHVybnMgVHJ1ZSBpZiBpcCBpcyBpbnNpZGUgYSBmaXhhYmxlIHN5c2NhbGwgY29kZSBpbiBzeXNjYWxsLSotKi5TLiAgVGhpcworICAgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBieSBhICdub24tcnVubmluZycgdGhyZWFkISAqLworQm9vbCBWR18oaXNfaXBfaW5fYmxvY2tpbmdfc3lzY2FsbCkoVGhyZWFkSWQgdGlkLCBBZGRyIGlwKQoreworICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisKKyAgIGlmICh0c3QtPm9zX3N0YXRlLmluX2Rvb3JfcmV0dXJuKQorICAgICAgcmV0dXJuIGlwID49IE1MXyhibGtzeXNfc2V0dXBfRFJFVCkgJiYgaXAgPCBNTF8oYmxrc3lzX2ZpbmlzaGVkX0RSRVQpOworICAgZWxzZQorICAgICAgcmV0dXJuIGlwID49IE1MXyhibGtzeXNfc2V0dXApICYmIGlwIDwgTUxfKGJsa3N5c19maW5pc2hlZCk7Cit9CisjZW5kaWYKKworCiAjaWYgZGVmaW5lZChWR09fZGFyd2luKQogLy8gQ2xlYW4gdXAgYWZ0ZXIgd29ya3Ffb3BzKFdRT1BTX1RIUkVBRF9SRVRVUk4pIGp1bXBlZCB0byB3cXRocmVhZF9oaWphY2suIAogLy8gVGhpcyBpcyBzaW1pbGFyIHRvIFZHXyhmaXh1cF9ndWVzdF9zdGF0ZV9hZnRlcl9zeXNjYWxsX2ludGVycnVwdGVkKS4KQEAgLTI0NDIsNyArMjg0Myw3IEBACiAKICAgIFZHXyhhY3F1aXJlX0JpZ0xvY2spKHRpZCwgIndxdGhyZWFkX2NvbnRpbnVlX05PUkVUVVJOIik7CiAKLSAgIFBSSU5UKCJTWVNDQUxMWyVkLCVkXSglcykgd29ya3Ffb3BzKCkgc3RhcnRpbmcgbmV3IHdvcmtxdWV1ZSBpdGVtXG4iLCAKKyAgIFBSSU5UKCJTWVNDQUxMWyVkLCV1XSglcykgd29ya3Ffb3BzKCkgc3RhcnRpbmcgbmV3IHdvcmtxdWV1ZSBpdGVtXG4iLCAKICAgICAgICAgIFZHXyhnZXRwaWQpKCksIHRpZCwgVkdfU1lTTlVNX1NUUklORyhfX05SX3dvcmtxX29wcykpOwogCiAgICB2Z19hc3NlcnQoVkdfKGlzX3ZhbGlkX3RpZCkodGlkKSk7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbWlwczMyLWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbWlwczMyLWxpbnV4LmMKaW5kZXggN2E3MTU3Ni4uN2E0YTg1NyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLW1pcHMzMi1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1taXBzMzItbGludXguYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIyNyw3ICsyMjcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVdvcmQgYXJnNCwgVVdvcmQgYXJnNSwgT2ZmNjRUIGFyZzYpOwogLyogCiAgICBXaGVuIGEgY2xpZW50IGNsb25lcywgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBuZXcgdGhyZWFkLiAgVGhpcyBtZWFuczoKLSAgIDEuIGFsbG9jYXRlIGEgVGhyZWFkSWQrVGhyZWFkU3RhdGUrc3RhY2sgZm9yIHRoZSB0aGUgdGhyZWFkCisgICAxLiBhbGxvY2F0ZSBhIFRocmVhZElkK1RocmVhZFN0YXRlK3N0YWNrIGZvciB0aGUgdGhyZWFkCiAgICAyLiBpbml0aWFsaXplIHRoZSB0aHJlYWQncyBuZXcgVkNQVSBzdGF0ZQogICAgMy4gY3JlYXRlIHRoZSB0aHJlYWQgdXNpbmcgdGhlIHNhbWUgYXJncyBhcyB0aGUgY2xpZW50IHJlcXVlc3RlZCwKICAgIGJ1dCB1c2luZyB0aGUgc2NoZWR1bGVyIGVudHJ5cG9pbnQgZm9yIElQLCBhbmQgYSBzZXBhcmF0ZSBzdGFjawpAQCAtNTMzLDggKzUzMyw4IEBACiAgICAgIHVuaXRzIHJhdGhlciB0aGFuIGJ5dGVzLCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGZvciBmaWxlcyBiaWdnZXIgdGhhbgogICAgICAyXjMyIGJ5dGVzLiAqLwogICBTeXNSZXMgcjsKLSAgUFJJTlQoInN5c19tbWFwMiAoICUjbHgsICVsbHUsICVsZCwgJWxkLCAlbGQsICVsZCApIiwgQVJHMSwgKFVMb25nKSBBUkcyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUkczLCBBUkc0LCBBUkc1LCBBUkc2KTsKKyAgUFJJTlQoInN5c19tbWFwMiAoICUjbHgsICVsdSwgJWx1LCAlbHUsICVsdSwgJWx1ICkiLAorICAgICAgICBBUkcxLCBBUkcyLCBTQVJHMywgU0FSRzQsIFNBUkc1LCBTQVJHNik7CiAgIFBSRV9SRUdfUkVBRDYobG9uZywgIm1tYXAyIiwgdW5zaWduZWQgbG9uZywgc3RhcnQsIHVuc2lnbmVkIGxvbmcsIGxlbmd0aCwKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBwcm90LCB1bnNpZ25lZCBsb25nLCBmbGFncywKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBmZCwgdW5zaWduZWQgbG9uZywgb2Zmc2V0KTsKQEAgLTU0Niw4ICs1NDYsOCBAQAogUFJFKHN5c19tbWFwKSAKIHsKICAgU3lzUmVzIHI7Ci0gIFBSSU5UKCJzeXNfbW1hcCAoICUjbHgsICVsbHUsICVsdSwgJWx1LCAlbHUsICVsZCApIiwgQVJHMSwgKFVMb25nKSBBUkcyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSRzMsIEFSRzQsIEFSRzUsIEFSRzYpOworICBQUklOVCgic3lzX21tYXAgKCAlI2x4LCAlbHUsICVsZCwgJWxkLCAlbGQsICVsdSApIiwKKyAgICAgICAgQVJHMSwgQVJHMiwgU0FSRzMsIFNBUkc0LCBTQVJHNSwgQVJHNik7CiAgIFBSRV9SRUdfUkVBRDYobG9uZywgIm1tYXAiLCB1bnNpZ25lZCBsb25nLCBzdGFydCwgdmtpX3NpemVfdCwgbGVuZ3RoLAogICAgICAgICAgICAgICAgIGludCwgcHJvdCwgaW50LCBmbGFncywgaW50LCBmZCwgdW5zaWduZWQgbG9uZywgb2Zmc2V0KTsKICAgciA9IG1pcHNfUFJFX3N5c19tbWFwKHRpZCwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgKE9mZjY0VCkgQVJHNik7CkBAIC01NjEsNyArNTYxLDcgQEAKICAKIFBSRSAoc3lzX2xzdGF0NjQpIAogewotICBQUklOVCAoInN5c19sc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsIEFSRzEsIChjaGFyICopIEFSRzEsIEFSRzIpOworICBQUklOVCAoInN5c19sc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsIEFSRzEsIChIQ2hhciAqKSBBUkcxLCBBUkcyKTsKICAgUFJFX1JFR19SRUFEMiAobG9uZywgImxzdGF0NjQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICBQUkVfTUVNX1JBU0NJSVogKCJsc3RhdDY0KGZpbGVfbmFtZSkiLCBBUkcxKTsKICAgUFJFX01FTV9XUklURSAoImxzdGF0NjQoYnVmKSIsIEFSRzIsIHNpemVvZiAoc3RydWN0IHZraV9zdGF0NjQpKTsKQEAgLTU3OCw3ICs1NzgsNyBAQAogCiBQUkUgKHN5c19zdGF0NjQpIAogewotICBQUklOVCAoInN5c19zdGF0NjQgKCAlI2x4KCVzKSwgJSNseCApIiwgQVJHMSwgKGNoYXIgKikgQVJHMSwgQVJHMik7CisgIFBSSU5UICgic3lzX3N0YXQ2NCAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoSENoYXIgKikgQVJHMSwgQVJHMik7CiAgIFBSRV9SRUdfUkVBRDIgKGxvbmcsICJzdGF0NjQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICBQUkVfTUVNX1JBU0NJSVogKCJzdGF0NjQoZmlsZV9uYW1lKSIsIEFSRzEpOwogICBQUkVfTUVNX1dSSVRFICgic3RhdDY0KGJ1ZikiLCBBUkcyLCBzaXplb2YgKHN0cnVjdCB2a2lfc3RhdDY0KSk7CkBAIC01OTEsMTAgKzU5MSwxMiBAQAogCiBQUkUgKHN5c19mc3RhdGF0NjQpCiB7Ci0gIFBSSU5UICgic3lzX2ZzdGF0YXQ2NCAoICVsZCwgJSNseCglcyksICUjbHggKSIsIEFSRzEsIEFSRzIsIChjaGFyICopIEFSRzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSRzMpOwotICBQUkVfUkVHX1JFQUQzIChsb25nLCAiZnN0YXRhdDY0IiwgaW50LCBkZmQsIGNoYXIgKiwgZmlsZV9uYW1lLAotICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3RhdDY0ICosIGJ1Zik7CisgIC8vIEFSRzQgPSAgaW50IGZsYWdzOyAgRmxhZ3MgYXJlIG9yJ2VkIHRvZ2V0aGVyLCB0aGVyZWZvcmUgd3JpdGluZyB0aGVtCisgIC8vIGFzIGEgaGV4IGNvbnN0YW50IGlzIG1vcmUgbWVhbmluZ2Z1bC4KKyAgUFJJTlQoInN5c19mc3RhdGF0NjQgKCAlbGQsICUjbHgoJXMpLCAlI2x4LCAlI2x4ICkiLAorICAgICAgICBTQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLCBBUkczLCBBUkc0KTsKKyAgUFJFX1JFR19SRUFENChsb25nLCAiZnN0YXRhdDY0IiwKKyAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNoYXIgKiwgZmlsZV9uYW1lLCBzdHJ1Y3Qgc3RhdDY0ICosIGJ1ZiwgaW50LCBmbGFncyk7CiAgIFBSRV9NRU1fUkFTQ0lJWiAoImZzdGF0YXQ2NChmaWxlX25hbWUpIiwgQVJHMik7CiAgIFBSRV9NRU1fV1JJVEUgKCJmc3RhdGF0NjQoYnVmKSIsIEFSRzMsIHNpemVvZiAoc3RydWN0IHZraV9zdGF0NjQpKTsKIH0KQEAgLTYwNiw3ICs2MDgsNyBAQAogCiBQUkUgKHN5c19mc3RhdDY0KQogewotICBQUklOVCAoInN5c19mc3RhdDY0ICggJWxkLCAlI2x4ICkiLCBBUkcxLCBBUkcyKTsKKyAgUFJJTlQgKCJzeXNfZnN0YXQ2NCAoICVsdSwgJSNseCApIiwgU0FSRzEsIEFSRzIpOwogICBQUkVfUkVHX1JFQUQyIChsb25nLCAiZnN0YXQ2NCIsIHVuc2lnbmVkIGxvbmcsIGZkLCBzdHJ1Y3Qgc3RhdDY0ICosIGJ1Zik7CiAgIFBSRV9NRU1fV1JJVEUgKCJmc3RhdDY0KGJ1ZikiLCBBUkcyLCBzaXplb2YgKHN0cnVjdCB2a2lfc3RhdDY0KSk7CiB9CkBAIC03NDcsNyArNzQ5LDcgQEAKIC8qIFZlcnkgbXVjaCBNSVBTIHNwZWNpZmljICovCiBQUkUgKHN5c19jYWNoZWZsdXNoKQogewotICBQUklOVCAoImNhY2hlZmx1c2ggKCVseCwgJWx4LCAlbHgpIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgIFBSSU5UICgiY2FjaGVmbHVzaCAoJWx4LCAlbGQsICVsZCkiLCBBUkcxLCBTQVJHMiwgU0FSRzMpOwogICBQUkVfUkVHX1JFQUQzKGxvbmcsICJjYWNoZWZsdXNoIiwgdW5zaWduZWQgbG9uZywgYWRkciwKICAgICAgICAgICAgICAgICBpbnQsIG5ieXRlcywgaW50LCBjYWNoZSk7CiAgIFZHXyAoZGlzY2FyZF90cmFuc2xhdGlvbnMpICgoQWRkcilBUkcxLCAoVUxvbmcpIEFSRzIsCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbWlwczY0LWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtbWlwczY0LWxpbnV4LmMKaW5kZXggM2E1ZTk3OS4uMTJkMTQ3ZCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLW1pcHM2NC1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1taXBzNjQtbGludXguYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE4NSw3ICsxODUsNyBAQAogc3RhdGljIFN5c1JlcyBzeXNfc2V0X3RscyAoIFRocmVhZElkIHRpZCwgQWRkciB0bHNwdHIpOwogCiAvKiBXaGVuIGEgY2xpZW50IGNsb25lcywgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBuZXcgdGhyZWFkLiBUaGlzIG1lYW5zOgotICAgMS4gYWxsb2NhdGUgYSBUaHJlYWRJZCtUaHJlYWRTdGF0ZStzdGFjayBmb3IgdGhlIHRoZSB0aHJlYWQKKyAgIDEuIGFsbG9jYXRlIGEgVGhyZWFkSWQrVGhyZWFkU3RhdGUrc3RhY2sgZm9yIHRoZSB0aHJlYWQKIAogICAgMi4gaW5pdGlhbGl6ZSB0aGUgdGhyZWFkJ3MgbmV3IFZDUFUgc3RhdGUKIApAQCAtMzIwLDE1ICszMjAsMTUgQEAKIAogUFJFKHN5c190ZWUpCiB7Ci0gICBQUklOVCgic3lzX3RlZSAoICVsZCwgJWxkLCAlbGQsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICBQUklOVCgic3lzX3RlZSAoICVsZCwgJWxkLCAlbHUsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJzeXNfdGVlIiwgaW50LCBmZGluLCBpbnQsIGZkb3V0LCB2a2lfc2l6ZV90LCBsZW4sCiAgICAgICAgICAgICAgICAgIGludCwgZmxhZ3MpOwogfQogCiBQUkUoc3lzX3NwbGljZSkKIHsKLSAgIFBSSU5UKCJzeXNfc3BsaWNlICggJWxkLCAlbGQsICVsZCwgJWxkLCAlbGQsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJHNCwgQVJHNSwgQVJHNik7CisgICBQUklOVCgic3lzX3NwbGljZSAoICVsZCwgJSNseCwgJWxkLCAlI2x4LCAlbHUsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgU0FSRzMsIEFSRzQsIEFSRzUsIEFSRzYpOwogCiAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJzeXNfc3BsaWNlIiwgaW50LCBmZGluLCB2a2lfbG9mZl90LCBzaXplaW4sIGludCwKICAgICAgICAgICAgICAgICAgZmRvdXQsIHZraV9sb2ZmX3QsIHNpemVvdXQsIHZraV9zaXplX3QsIGxlbiwgaW50LCBmbGFncyk7CkBAIC0zMzYsMzQgKzMzNiwzNCBAQAogCiBQUkUoc3lzX3Ztc3BsaWNlKQogewotICAgUFJJTlQoInN5c192bXNwbGljZSAoICVsZCwgJWxkLCAlbGQsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICBQUklOVCgic3lzX3Ztc3BsaWNlICggJWxkLCAlI2x4LCAlbHUsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInN5c192bXNwbGljZSIsIGludCwgZmRpbiwgc3RydWN0IHZraV9pb3ZlYyAqLCB2LAogICAgICAgICAgICAgICAgICB2a2lfc2l6ZV90LCBsZW4sIGludCwgZmxhZ3MpOwogfQogCiBQUkUoc3lzX3Vuc2hhcmUpCiB7Ci0gICBQUklOVCgic3lzX3Vuc2hhcmUgKCAlbGQgKSIsIEFSRzEpOwotICAgUFJFX1JFR19SRUFEMShsb25nLCAic3lzX3Vuc2hhcmUiLCBpbnQsIGZsYWdzKTsKKyAgIFBSSU5UKCJzeXNfdW5zaGFyZSAoICVsdSApIiwgQVJHMSk7CisgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJzeXNfdW5zaGFyZSIsIHVuc2lnbmVkIGxvbmcsIGZsYWdzKTsKIH0KIAogUFJFKHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwpCiB7Ci0gICBQUklOVCgic3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCAoICVsZCwgJSNseCkiLCBBUkcxLCBBUkcyKTsKLSAgIFBSRV9SRUdfUkVBRDIobG9uZywgInNjaGVkX3JyX2dldF9pbnRlcnZhbCIsIGludCwgZmxhZ3MsCisgICBQUklOVCgic3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCAoICVsZCwgJSNseCkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwiLCB2a2lfcGlkX3QsIHBpZCwKICAgICAgICAgICAgICAgICAgc3RydWN0IHRpbWVzcGVjICosIHRpbWVyKTsKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwogfQogCiBQUkUoc3lzX3VzdGF0KQogewotICAgUFJJTlQoInN5c191c3RhdCAoICVsZCwgJSNseCkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSSU5UKCJzeXNfdXN0YXQgKCAlI2x4LCAlI2x4KSIsIEFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAidXN0YXQiLCBpbnQsIGZsYWdzLCBjb25zdCB2b2lkICosIHBhdGgpOwogfQogCiBQUkUoc3lzX3N3YXBvbikKIHsKLSAgIFBSSU5UKCJzeXNfc3dhcG9uICggJSNseCwgJWxkICkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSSU5UKCJzeXNfc3dhcG9uICggJSNseCwgJSNseCApIiwgQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzd2Fwb24iLCBjb25zdCB2b2lkICosIHBhdGgsIGludCwgZmxhZ3MpOwogfQogCkBAIC0zNzUsNyArMzc1LDcgQEAKIAogUFJFKHN5c19zeXNmcykKIHsKLSAgIFBSSU5UKCJzeXNfc3lzZnMgKCAlbGQsICVsZCwgJSNseCApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgic3lzX3N5c2ZzICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzeXNmcyIsIGludCwgZmxhZ3MsIGludCwgZGVzYywgY29uc3Qgdm9pZCAqLCBwYXRoKTsKIH0KIApAQCAtMzg0LDcgKzM4NCw3IEBACiB7CiAgICBQUklOVCgiY2FjaGVmbHVzaCAoJWx4LCAlbHgsICVseCkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImNhY2hlZmx1c2giLCB1bnNpZ25lZCBsb25nLCBhZGRyLAotICAgICAgICAgICAgICAgICBpbnQsIG5ieXRlcywgaW50LCBjYWNoZSk7CisgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIG5ieXRlcywgdW5zaWduZWQgaW50LCBjYWNoZSk7CiAgICBWR18gKGRpc2NhcmRfdHJhbnNsYXRpb25zKSAoKEFkZHIpQVJHMSwgKFVMb25nKSBBUkcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQUkUoc3lzX2NhY2hlZmx1c2gpIik7CiAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CkBAIC0zOTIsMjggKzM5MiwzMyBAQAogCiBQUkUoc3lzX3JlYm9vdCkKIHsKLSAgIFBSSU5UKCJzeXNfcmVib290ICggJWxkICkiLCBBUkcxKTsKLSAgIFBSRV9SRUdfUkVBRDEoaW50LCAicmVib290IiwgaW50LCBmbGFncyk7CisgICBQUklOVCgic3lzX3JlYm9vdCAoICVsZCwgJWxkLCAlbHUsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKKyAgIC8vIEFuIGFwcHJveGltYXRpb24uIEFSRzQgaXMgb25seSByZWFkIGNvbmRpdGlvbmFsbHkgYnkgdGhlIGtlcm5lbAorICAgUFJFX1JFR19SRUFENChpbnQsICJyZWJvb3QiLAorICAgICAgICAgICAgICAgICBpbnQsIG1hZ2ljMSwgaW50LCBtYWdpYzIsIHVuc2lnbmVkIGludCwgY21kLAorICAgICAgICAgICAgICAgICB2b2lkICosIGFyZyk7CisgICAKICAgICpmbGFncyB8PSBTZk1heUJsb2NrOwogfQogCiBQUkUoc3lzX3NldGRvbWFpbm5hbWUpCiB7Ci0gICBQUklOVCAoInN5c19zZXRkb21haW5uYW1lICggJSNseCwgJWxkICkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSSU5UICgic3lzX3NldGRvbWFpbm5hbWUgKCAlI2x4LCAlbGQgKSIsIEFSRzEsIFNBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIgKGxvbmcsICJzZXRkb21haW5uYW1lIiwgY29uc3Qgdm9pZCAqLCBuYW1lLCBpbnQsIGxlbik7CiB9CiAKIFBSRShzeXNfc2V0aG9zdG5hbWUpCiB7Ci0gICBQUklOVCAoInN5c19zZXRob3N0bmFtZSAoICVsZCwgJWxkICkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSSU5UICgic3lzX3NldGhvc3RuYW1lICggJSNseCwgJWxkICkiLCBBUkcxLCBTQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyIChsb25nLCAic2V0aG9zdG5hbWUiLCBjb25zdCB2b2lkICosIG5hbWUsIGludCwgbGVuKTsKIH0KIAogUFJFKHN5c19wdHJhY2UpCiB7Ci0gICBQUklOVCgic3lzX3B0cmFjZSAoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKLSAgIFBSRV9SRUdfUkVBRDQoaW50LCAicHRyYWNlIiwgbG9uZywgcmVxdWVzdCwgbG9uZywgcGlkLCBsb25nLCBhZGRyLAotICAgICAgICAgICAgICAgICBsb25nLCBkYXRhKTsKKyAgIFBSSU5UKCJzeXNfcHRyYWNlICggJWxkLCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGludCwgInB0cmFjZSIsCisgICAgICAgICAgICAgICAgIGxvbmcsIHJlcXVlc3QsIGxvbmcsIHBpZCwgdW5zaWduZWQgbG9uZywgYWRkciwKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgZGF0YSk7CiAgICBzd2l0Y2ggKEFSRzEpIHsKICAgICAgIGNhc2UgVktJX1BUUkFDRV9QRUVLVEVYVDoKICAgICAgIGNhc2UgVktJX1BUUkFDRV9QRUVLREFUQToKQEAgLTQ2Miw4ICs0NjcsOCBAQAogUFJFIChzeXNfbW1hcCkKIHsKICAgIFN5c1JlcyByOwotICAgUFJJTlQoInN5c19tbWFwICggJSNseCwgJWxsdSwgJWx1LCAlbHUsICVsdSwgJWxkICkiLCBBUkcxLCAoVUxvbmcpQVJHMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJHMywgQVJHNCwgQVJHNSwgQVJHNik7CisgICBQUklOVCgic3lzX21tYXAgKCAlI2x4LCAlbHUsICVsZCwgJWxkLCAlbGQsICVsdSApIiwKKyAgICAgICAgIEFSRzEsIEFSRzIsIFNBUkczLCBTQVJHNCwgU0FSRzUsIEFSRzYpOwogICAgUFJFX1JFR19SRUFENihsb25nLCAibW1hcCIsIHVuc2lnbmVkIGxvbmcsIHN0YXJ0LCB2a2lfc2l6ZV90LCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgIGludCwgcHJvdCwgaW50LCBmbGFncywgaW50LCBmZCwgdW5zaWduZWQgbG9uZywgb2Zmc2V0KTsKICAgIHIgPSBNTF8oZ2VuZXJpY19QUkVfc3lzX21tYXApKHRpZCwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1wcGMzMi1saW51eC5jIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXBwYzMyLWxpbnV4LmMKaW5kZXggOWM5OTM3Yi4uOWNlYWExNSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXBwYzMyLWxpbnV4LmMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXBwYzMyLWxpbnV4LmMKQEAgLTcsOCArNyw4IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZSA8bmpuQHZhbGdyaW5kLm9yZz4KLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIENlcmlvbiBBcm1vdXItQnJvd24gPGNlcmlvbkBvcGVuLXdvcmtzLmNvLnVrPgorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZSA8bmpuQHZhbGdyaW5kLm9yZz4KKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IENlcmlvbiBBcm1vdXItQnJvd24gPGNlcmlvbkBvcGVuLXdvcmtzLmNvLnVrPgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjIxLDcgKzIyMSw3IEBACiAKIC8qIAogICAgV2hlbiBhIGNsaWVudCBjbG9uZXMsIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgbmV3IHRocmVhZC4gIFRoaXMgbWVhbnM6Ci0gICAxLiBhbGxvY2F0ZSBhIFRocmVhZElkK1RocmVhZFN0YXRlK3N0YWNrIGZvciB0aGUgdGhlIHRocmVhZAorICAgMS4gYWxsb2NhdGUgYSBUaHJlYWRJZCtUaHJlYWRTdGF0ZStzdGFjayBmb3IgdGhlIHRocmVhZAogCiAgICAyLiBpbml0aWFsaXplIHRoZSB0aHJlYWQncyBuZXcgVkNQVSBzdGF0ZQogCkBAIC00MDQsOCArNDA0LDggQEAKIHsKICAgIFN5c1JlcyByOwogCi0gICBQUklOVCgic3lzX21tYXAgKCAlI2x4LCAlbGx1LCAlbGQsICVsZCwgJWxkLCAlbGQgKSIsCi0gICAgICAgICBBUkcxLCAoVUxvbmcpQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNiApOworICAgUFJJTlQoInN5c19tbWFwICggJSNseCwgJWx1LCAlbHUsICVsdSwgJWx1LCAlbHUgKSIsCisgICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2ICk7CiAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJtbWFwIiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgc3RhcnQsIHVuc2lnbmVkIGxvbmcsIGxlbmd0aCwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgcHJvdCwgIHVuc2lnbmVkIGxvbmcsIGZsYWdzLApAQCAtNDIzLDggKzQyMyw4IEBACiAgICAvLyBFeGFjdGx5IGxpa2Ugb2xkX21tYXAoKSBleGNlcHQ6CiAgICAvLyAgLSB0aGUgZmlsZSBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIDRLIHVuaXRzIHJhdGhlciB0aGFuIGJ5dGVzLAogICAgLy8gICAgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBmb3IgZmlsZXMgYmlnZ2VyIHRoYW4gMl4zMiBieXRlcy4KLSAgIFBSSU5UKCJzeXNfbW1hcDIgKCAlI2x4LCAlbGx1LCAlbGQsICVsZCwgJWxkLCAlbGQgKSIsCi0gICAgICAgICBBUkcxLCAoVUxvbmcpQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNiApOworICAgUFJJTlQoInN5c19tbWFwMiAoICUjbHgsICVsdSwgJWx1LCAlbHUsICVsdSwgJWx1ICkiLAorICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNiApOwogICAgUFJFX1JFR19SRUFENihsb25nLCAibW1hcDIiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBzdGFydCwgdW5zaWduZWQgbG9uZywgbGVuZ3RoLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBwcm90LCAgdW5zaWduZWQgbG9uZywgZmxhZ3MsCkBAIC00NTQsNyArNDU0LDcgQEAKIAogUFJFKHN5c19sc3RhdDY0KQogewotICAgUFJJTlQoInN5c19sc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsQVJHMSwoY2hhciopQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfbHN0YXQ2NCAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoSENoYXIqKUFSRzEsIEFSRzIpOwogICAgUFJFX1JFR19SRUFEMihsb25nLCAibHN0YXQ2NCIsIGNoYXIgKiwgZmlsZV9uYW1lLCBzdHJ1Y3Qgc3RhdDY0ICosIGJ1Zik7CiAgICBQUkVfTUVNX1JBU0NJSVooICJsc3RhdDY0KGZpbGVfbmFtZSkiLCBBUkcxICk7CiAgICBQUkVfTUVNX1dSSVRFKCAibHN0YXQ2NChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSApOwpAQCAtNDcwLDcgKzQ3MCw4IEBACiAKIFBSRShzeXNfZnN0YXRhdDY0KQogewotICBQUklOVCgic3lzX2ZzdGF0YXQ2NCAoICVsZCwgJSNseCglcyksICUjbHggKSIsQVJHMSxBUkcyLChjaGFyKilBUkcyLEFSRzMpOworICAgUFJJTlQoInN5c19mc3RhdGF0NjQgKCAlbGQsICUjbHgoJXMpLCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgKEhDaGFyKilBUkcyLAorICAgICAgICAgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmc3RhdGF0NjQiLAogICAgICAgICAgICAgICAgICBpbnQsIGRmZCwgY2hhciAqLCBmaWxlX25hbWUsIHN0cnVjdCBzdGF0NjQgKiwgYnVmKTsKICAgIFBSRV9NRU1fUkFTQ0lJWiggImZzdGF0YXQ2NChmaWxlX25hbWUpIiwgQVJHMiApOwpAQCAtNDg0LDcgKzQ4NSw3IEBACiAKIFBSRShzeXNfZnN0YXQ2NCkKIHsKLSAgUFJJTlQoInN5c19mc3RhdDY0ICggJWxkLCAlI2x4ICkiLEFSRzEsQVJHMik7CisgIFBSSU5UKCJzeXNfZnN0YXQ2NCAoICVsdSwgJSNseCApIiwgQVJHMSwgQVJHMik7CiAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZzdGF0NjQiLCB1bnNpZ25lZCBsb25nLCBmZCwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICBQUkVfTUVNX1dSSVRFKCAiZnN0YXQ2NChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSApOwogfQpAQCAtODA4LDcgKzgwOSw3IEBACiAgICAgICB0aGF0IHRha2VzIGEgcG9pbnRlciB0byB0aGUgc2lnbmFsIG1hc2sgc28gc3VwcG9ydHMgbW9yZSBzaWduYWxzLgogICAgICovCiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc2lnc3VzcGVuZCAoICVsZCApIiwgQVJHMSApOworICAgUFJJTlQoInN5c19zaWdzdXNwZW5kICggJWx1ICkiLCBBUkcxICk7CiAgICBQUkVfUkVHX1JFQUQxKGludCwgInNpZ3N1c3BlbmQiLCB2a2lfb2xkX3NpZ3NldF90LCBtYXNrKTsKIH0KIApkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXBwYzY0LWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtcHBjNjQtbGludXguYwppbmRleCBlMjQzMmZkLi4xNWI4OTc5IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtcHBjNjQtbGludXguYworKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtcHBjNjQtbGludXguYwpAQCAtNyw4ICs3LDggQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlIDxuam5AdmFsZ3JpbmQub3JnPgotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgQ2VyaW9uIEFybW91ci1Ccm93biA8Y2VyaW9uQG9wZW4td29ya3MuY28udWs+CisgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlIDxuam5AdmFsZ3JpbmQub3JnPgorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgQ2VyaW9uIEFybW91ci1Ccm93biA8Y2VyaW9uQG9wZW4td29ya3MuY28udWs+CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0zNzEsNyArMzcxLDcgQEAKIAogLyogCiAgICBXaGVuIGEgY2xpZW50IGNsb25lcywgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBuZXcgdGhyZWFkLiAgVGhpcyBtZWFuczoKLSAgIDEuIGFsbG9jYXRlIGEgVGhyZWFkSWQrVGhyZWFkU3RhdGUrc3RhY2sgZm9yIHRoZSB0aGUgdGhyZWFkCisgICAxLiBhbGxvY2F0ZSBhIFRocmVhZElkK1RocmVhZFN0YXRlK3N0YWNrIGZvciB0aGUgdGhyZWFkCiAKICAgIDIuIGluaXRpYWxpemUgdGhlIHRocmVhZCdzIG5ldyBWQ1BVIHN0YXRlCiAKQEAgLTU1Myw4ICs1NTMsOCBAQAogewogICAgU3lzUmVzIHI7CiAKLSAgIFBSSU5UKCJzeXNfbW1hcCAoICUjbHgsICVsbHUsICVsZCwgJWxkLCAlbGQsICVsZCApIiwKLSAgICAgICAgIEFSRzEsIChVTG9uZylBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2ICk7CisgICBQUklOVCgic3lzX21tYXAgKCAlI2x4LCAlbHUsICVsdSwgJWx1LCAlbHUsICVsdSApIiwKKyAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIEFSRzYgKTsKICAgIFBSRV9SRUdfUkVBRDYobG9uZywgIm1tYXAiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBzdGFydCwgdW5zaWduZWQgbG9uZywgbGVuZ3RoLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBwcm90LCAgdW5zaWduZWQgbG9uZywgZmxhZ3MsCkBAIC03MTcsNyArNzE3LDcgQEAKIAogUFJFKHN5c19mYWR2aXNlNjQpCiB7Ci0gICBQUklOVCgic3lzX2ZhZHZpc2U2NCAoICVsZCwgJWxkLCAlbHUsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX2ZhZHZpc2U2NCAoICVsZCwgJWxkLCAlbHUsICVsZCApIiwgIFNBUkcxLCBTQVJHMiwgU0FSRzMsIFNBUkc0KTsKICAgIFBSRV9SRUdfUkVBRDQobG9uZywgImZhZHZpc2U2NCIsCiAgICAgICAgICAgICAgICAgIGludCwgZmQsIHZraV9sb2ZmX3QsIG9mZnNldCwgdmtpX3NpemVfdCwgbGVuLCBpbnQsIGFkdmljZSk7CiB9CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtczM5MHgtbGludXguYyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1zMzkweC1saW51eC5jCmluZGV4IGRiMzc0ZjQuLmU5MTliOGYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1zMzkweC1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1zMzkweC1saW51eC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDEzCisgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxNQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTk0LDcgKzE5NCw3IEBACiAKIC8qCiAgICBXaGVuIGEgY2xpZW50IGNsb25lcywgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBuZXcgdGhyZWFkLiAgVGhpcyBtZWFuczoKLSAgIDEuIGFsbG9jYXRlIGEgVGhyZWFkSWQrVGhyZWFkU3RhdGUrc3RhY2sgZm9yIHRoZSB0aGUgdGhyZWFkCisgICAxLiBhbGxvY2F0ZSBhIFRocmVhZElkK1RocmVhZFN0YXRlK3N0YWNrIGZvciB0aGUgdGhyZWFkCiAKICAgIDIuIGluaXRpYWxpemUgdGhlIHRocmVhZCdzIG5ldyBWQ1BVIHN0YXRlCiAKQEAgLTMzMSw5ICszMzEsMTAgQEAKIAogUFJFKHN5c19wdHJhY2UpCiB7Ci0gICBQUklOVCgic3lzX3B0cmFjZSAoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcHRyYWNlICggJWxkLCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgInB0cmFjZSIsCi0gICAgICAgICAgICAgICAgIGxvbmcsIHJlcXVlc3QsIGxvbmcsIHBpZCwgbG9uZywgYWRkciwgbG9uZywgZGF0YSk7CisgICAgICAgICAgICAgICAgIGxvbmcsIHJlcXVlc3QsIGxvbmcsIHBpZCwgdW5zaWduZWQgbG9uZywgYWRkciwKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgZGF0YSk7CiAgICBzd2l0Y2ggKEFSRzEpIHsKICAgIGNhc2UgVktJX1BUUkFDRV9QRUVLVEVYVDoKICAgIGNhc2UgVktJX1BUUkFDRV9QRUVLREFUQToKQEAgLTQ0NCw4ICs0NDUsOCBAQAogICAgYTQgPSBhcmdzWzRdOwogICAgYTUgPSBhcmdzWzVdOwogCi0gICBQUklOVCgic3lzX21tYXAgKCAlI2x4LCAlbGx1LCAlbGQsICVsZCwgJWxkLCAlbGQgKSIsCi0gICAgICAgICBhMCwgKFVMb25nKWExLCBhMiwgYTMsIGE0LCBhNSApOworICAgUFJJTlQoInN5c19tbWFwICggJSNseCwgJWx1LCAlbGQsICVsZCwgJWxkLCAlbGQgKSIsCisgICAgICAgICBhMCwgYTEsIChXb3JkKWEyLCAoV29yZClhMywgKFdvcmQpYTQsIChXb3JkKWE1ICk7CiAKICAgIHIgPSBNTF8oZ2VuZXJpY19QUkVfc3lzX21tYXApKCB0aWQsIGEwLCBhMSwgYTIsIGEzLCBhNCwgKE9mZjY0VClhNSApOwogICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhyKTsKQEAgLTYwNSw3ICs2MDYsNyBAQAogLyogd2UgY2FudCB1c2UgdGhlIExJTlhfIHZlcnNpb24gZm9yIDY0IGJpdCAqLwogUFJFKHN5c19mYWR2aXNlNjQpCiB7Ci0gICBQUklOVCgic3lzX2ZhZHZpc2U2NCAoICVsZCwgJWxkLCAlbGQsICVsZCApIiwgQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICBQUklOVCgic3lzX2ZhZHZpc2U2NCAoICVsZCwgJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMywgU0FSRzQpOwogICAgUFJFX1JFR19SRUFENChsb25nLCAiZmFkdmlzZTY0IiwKICAgICAgICAgICAgICAgICAgaW50LCBmZCwgdmtpX2xvZmZfdCwgb2Zmc2V0LCB2a2lfbG9mZl90LCBsZW4sIGludCwgYWR2aWNlKTsKIH0KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1zb2xhcmlzLmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtc29sYXJpcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNmU1M2MKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtc29sYXJpcy5jCkBAIC0wLDAgKzEsMTA1NDEgQEAKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBTb2xhcmlzLXNwZWNpZmljIHN5c2NhbGxzLCBldGMuICAgICAgICAgICAgc3lzd3JhcC1zb2xhcmlzLmMgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBldHIgUGF2bHUKKyAgICAgIHNldHVwQGRhZ29iYWguY3oKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisvKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBJdm8gUmFpc3IgPGl2b3NoQGl2b3NoLm5ldD4uICovCisKKy8qIENvcHlyaWdodCAyMDE1LTIwMTUsIFRvbWFzIEplZGxpY2thIDxqZWRsaWNrYXRAZ21haWwuY29tPi4gKi8KKworLyogQ29weXJpZ2h0IDIwMTMsIE9tbmlUSSBDb21wdXRlciBDb25zdWx0aW5nLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICovCisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCisjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIKKyNpbmNsdWRlICJwdWJfY29yZV92a2kuaCIKKyNpbmNsdWRlICJwdWJfY29yZV92a2lzY251bXMuaCIKKyNpbmNsdWRlICJwdWJfY29yZV90aHJlYWRzdGF0ZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2FzcGFjZW1nci5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2RlYnVnaW5mby5oIiAgICAgICAgIC8vIFZHXyhkaV9ub3RpZnlfKikKKyNpbmNsdWRlICJwdWJfY29yZV9kZWJ1Z2xvZy5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2NsaWVudHN0YXRlLmgiCisjaW5jbHVkZSAicHViX2NvcmVfZ2Ric2VydmVyLmgiCisjaW5jbHVkZSAicHViX2NvcmVfaW5uZXIuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9saWJjYXNzZXJ0LmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY2Jhc2UuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9saWJjZmlsZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNwcmludC5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNwcm9jLmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY3NpZ25hbC5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX21hY2hpbmUuaCIgICAgICAgICAgIC8vIFZHXyhnZXRfU1ApCisjaW5jbHVkZSAicHViX2NvcmVfbWFsbG9jZnJlZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX29wdGlvbnMuaCIKKyNpbmNsdWRlICJwdWJfY29yZV90b29saWZhY2UuaCIKKyNpbmNsdWRlICJwdWJfY29yZV90cmFuc3RhYi5oIiAgICAgICAgICAvLyBWR18oZGlzY2FyZF90cmFuc2xhdGlvbnMpCisjaW5jbHVkZSAicHViX2NvcmVfc2NoZWR1bGVyLmgiCisjaW5jbHVkZSAicHViX2NvcmVfc2lnZnJhbWUuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9zaWduYWxzLmgiCisjaW5jbHVkZSAicHViX2NvcmVfc3RhY2tzLmgiCisjaW5jbHVkZSAicHViX2NvcmVfc3lzY2FsbC5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3N5c3dyYXAuaCIKKyNpbmNsdWRlICJwdWJfY29yZV91bWUuaCIKKyNpZiBkZWZpbmVkKEVOQUJMRV9JTk5FUl9DTElFTlRfUkVRVUVTVCkKKyNpbmNsdWRlICJwdWJfY29yZV9jbHJlcS5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJwcml2X3R5cGVzX25fbWFjcm9zLmgiCisjaW5jbHVkZSAicHJpdl9zeXN3cmFwLWdlbmVyaWMuaCIKKyNpbmNsdWRlICJwcml2X3N5c3dyYXAtc29sYXJpcy5oIgorCisvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBub24tZGVhZCBhbmQgZGFlbW9uIHRocmVhZHMuCisgICBjb3VudF9kYWVtb24gPT0gVHJ1ZTogIGNvdW50IGRhZW1vbiB0aHJlYWRzCisgICBjb3VudF9kYWVtb24gPT0gRmFsc2U6IGNvdW50IG5vbi1kYWVtb24gdGhyZWFkcyAqLworc3RhdGljIFVJbnQgY291bnRfbGl2aW5nX2RhZW1vbl90aHJlYWRzKEJvb2wgY291bnRfZGFlbW9uKQoreworICAgVUludCBjb3VudCA9IDA7CisgICBmb3IgKFRocmVhZElkIHRpZCA9IDE7IHRpZCA8IFZHX05fVEhSRUFEUzsgdGlkKyspCisgICAgICBpZiAoVkdfKHRocmVhZHMpW3RpZF0uc3RhdHVzICE9IFZnVHNfRW1wdHkgJiYKKyAgICAgICAgIFZHXyh0aHJlYWRzKVt0aWRdLnN0YXR1cyAhPSBWZ1RzX1pvbWJpZSAmJgorICAgICAgICAgVkdfKHRocmVhZHMpW3RpZF0ub3Nfc3RhdGUuZGFlbW9uX3RocmVhZCA9PSBjb3VudF9kYWVtb24pCisgICAgICAgICBjb3VudCsrOworCisgICByZXR1cm4gY291bnQ7Cit9CisKKy8qIE5vdGU6IFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zICh0aHJlYWRfd3JhcHBlciwgcnVuX2FfdGhyZWFkX05PUkVUVVJOLAorICAgTUxfKHN0YXJ0X3RocmVhZF9OT1JFVFVSTiksIE1MXyhhbGxvY3N0YWNrKSBhbmQKKyAgIFZHXyhtYWluX3RocmVhZF93cmFwcGVyX05PUkVUVVJOKSkgYXJlIGJhc2VkIG9uIHRoZSBjb2RlIGluCisgICBzeXN3cmFwLWxpbnV4LmMuICBLZWVwIHRoZW0gc3luY2hyb25pemVkISAqLworCisvKiBSdW4gYSB0aHJlYWQgZnJvbSBiZWdpbm5pbmcgdG8gZW5kIGFuZCByZXR1cm4gdGhlIHRocmVhZCdzCisgICBzY2hlZHVsZXItcmV0dXJuLWNvZGUuICovCitzdGF0aWMgVmdTY2hlZFJldHVybkNvZGUgdGhyZWFkX3dyYXBwZXIoV29yZCAvKlRocmVhZElkKi8gdGlkVykKK3sKKyAgIFZnU2NoZWRSZXR1cm5Db2RlIHJldDsKKyAgIFRocmVhZElkIHRpZCA9IChUaHJlYWRJZCl0aWRXOworICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisKKyAgIFZHXyhkZWJ1Z0xvZykoMSwgInN5c3dyYXAtc29sYXJpcyIsCisgICAgICAgICAgICAgICAgICAgICJ0aHJlYWRfd3JhcHBlcih0aWQ9JXUpOiBlbnRyeVxuIiwKKyAgICAgICAgICAgICAgICAgICAgdGlkKTsKKworICAgdmdfYXNzZXJ0KHRzdC0+c3RhdHVzID09IFZnVHNfSW5pdCk7CisKKyAgIC8qIE1ha2Ugc3VyZSB3ZSBnZXQgdGhlIENQVSBsb2NrIGJlZm9yZSBkb2luZyBhbnl0aGluZyBzaWduaWZpY2FudC4gKi8KKyAgIFZHXyhhY3F1aXJlX0JpZ0xvY2spKHRpZCwgInRocmVhZF93cmFwcGVyKHN0YXJ0aW5nIG5ldyB0aHJlYWQpIik7CisKKyAgIGlmICgwKQorICAgICBWR18ocHJpbnRmKSgidGhyZWFkIHRpZCAldSBzdGFydGVkOiBzdGFjayA9ICVwXG4iLCB0aWQsICh2b2lkICopJnRpZCk7CisKKyAgIC8qIE1ha2Ugc3VyZSBlcnJvciByZXBvcnRpbmcgaXMgZW5hYmxlZCBpbiB0aGUgbmV3IHRocmVhZC4gKi8KKyAgIHRzdC0+ZXJyX2Rpc2FibGVtZW50X2xldmVsID0gMDsKKworICAgaWYgKHRpZCA9PSAxKQorICAgICAgVkdfVFJBQ0socHJlX3RocmVhZF9maXJzdF9pbnNuLCB0aWQpOworICAgZWxzZSB7CisgICAgICAvKiBGb3IgbmV3bHkgY3JlYXRlZCB0aHJlYWRzLCBWR19UUkFDSyhwcmVfdGhyZWFkX2ZpcnN0X2luc24sIHRpZCkgaXMKKyAgICAgICAgIGludm9rZWQgbGF0ZXIgZnJvbSBQUkUoc3lzX2dldHNldGNvbnRleHQpKCkgd2hlbiBzZXR1Y29udGV4dCgpCisgICAgICAgICBjYWxsZWQgZnJvbSBfdGhycF9zZXR1cCgpIGNvbmNsdWRlcyBuZXcgdGhyZWFkIHNldHVwLiBJbnZva2luZyBpdAorICAgICAgICAgaGVyZSB3b3VsZCBiZSB3YXkgdG9vIGVhcmx5IC0gbmV3IHRocmVhZCBoYXMgbm8gc3RhY2ssIHlldC4gKi8KKyAgIH0KKworICAgdHN0LT5vc19zdGF0ZS5sd3BpZCA9IFZHXyhnZXR0aWQpKCk7CisgICB0c3QtPm9zX3N0YXRlLnRocmVhZGdyb3VwID0gVkdfKGdldHBpZCkoKTsKKworICAgLyogVGhyZWFkIGNyZWF0ZWQgd2l0aCBhbGwgc2lnbmFscyBibG9ja2VkOyBzY2hlZHVsZXIgd2lsbCBzZXQgdGhlCisgICAgICBhcHByb3ByaWF0ZSBtYXNrLiAqLworCisgICByZXQgPSBWR18oc2NoZWR1bGVyKSh0aWQpOworCisgICB2Z19hc3NlcnQoVkdfKGlzX2V4aXRpbmcpKHRpZCkpOworCisgICB2Z19hc3NlcnQodHN0LT5zdGF0dXMgPT0gVmdUc19SdW5uYWJsZSk7CisgICB2Z19hc3NlcnQoVkdfKGlzX3J1bm5pbmdfdGhyZWFkKSh0aWQpKTsKKworICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1zb2xhcmlzIiwKKyAgICAgICAgICAgICAgICAgICAgInRocmVhZF93cmFwcGVyKHRpZD0ldSk6IGV4aXQsIHNjaGVkcmV0dXJuY29kZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgdGlkLCBWR18obmFtZV9vZl9WZ1NjaGVkUmV0dXJuQ29kZSkocmV0KSk7CisKKyAgIC8qIFJldHVybiB0byBjYWxsZXIsIHN0aWxsIGhvbGRpbmcgdGhlIGxvY2suICovCisgICByZXR1cm4gcmV0OworfQorCisvKiBSdW4gYSB0aHJlYWQgYWxsIHRoZSB3YXkgdG8gdGhlIGVuZCwgdGhlbiBkbyBhcHByb3ByaWF0ZSBleGl0IGFjdGlvbnMKKyAgICh0aGlzIGlzIHRoZSBsYXN0LW9uZS1vdXQtdHVybi1vZmYtdGhlLWxpZ2h0cyBiaXQpLiAqLworc3RhdGljIHZvaWQgcnVuX2FfdGhyZWFkX05PUkVUVVJOKFdvcmQgdGlkVykKK3sKKyAgIFRocmVhZElkIHRpZCA9IChUaHJlYWRJZCl0aWRXOworICAgVmdTY2hlZFJldHVybkNvZGUgc3JjOworICAgSW50IGM7CisgICBUaHJlYWRTdGF0ZSAqdHN0OworI2lmZGVmIEVOQUJMRV9JTk5FUl9DTElFTlRfUkVRVUVTVAorICAgSW50IHJlZ2lzdGVyZWRfdmdzdGFja19pZDsKKyNlbmRpZgorCisgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLXNvbGFyaXMiLAorICAgICAgICAgICAgICAgICAgICAicnVuX2FfdGhyZWFkX05PUkVUVVJOKHRpZD0ldSk6IHByZS10aHJlYWRfd3JhcHBlclxuIiwKKyAgICAgICAgICAgICAgICAgICAgdGlkKTsKKworICAgdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAgIHZnX2Fzc2VydCh0c3QpOworCisgICAvKiBBIHRocmVhZCBoYXMgdHdvIHN0YWNrczoKKyAgICAgICogdGhlIHNpbXVsYXRlZCBzdGFjayAodXNlZCBieSB0aGUgc3ludGhldGljIGNwdS4gR3Vlc3QgcHJvY2VzcworICAgICAgICBpcyB1c2luZyB0aGlzIHN0YWNrKS4KKyAgICAgICogdGhlIHZhbGdyaW5kIHN0YWNrICh1c2VkIGJ5IHRoZSByZWFsIGNwdS4gVmFsZ3JpbmQgY29kZSBpcyBydW5uaW5nCisgICAgICAgIG9uIHRoaXMgc3RhY2spLgorICAgICAgV2hlbiBWYWxncmluZCBydW5zIGFzIGFuIGlubmVyLCBpdCBtdXN0IHNpZ25hbCB0aGF0IGl0cyAocmVhbCkgc3RhY2sKKyAgICAgIGlzIHRoZSBzdGFjayB0byB1c2UgYnkgdGhlIG91dGVyIHRvIGUuZy4gZG8gc3RhY2t0cmFjZXMuCisgICAqLworICAgSU5ORVJfUkVRVUVTVAorICAgICAgKHJlZ2lzdGVyZWRfdmdzdGFja19pZAorICAgICAgID0gVkFMR1JJTkRfU1RBQ0tfUkVHSVNURVIodHN0LT5vc19zdGF0ZS52YWxncmluZF9zdGFja19iYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHN0LT5vc19zdGF0ZS52YWxncmluZF9zdGFja19pbml0X1NQKSk7CisKKyAgIC8qIFJ1biB0aGUgdGhyZWFkIGFsbCB0aGUgd2F5IHRocm91Z2guICovCisgICBzcmMgPSB0aHJlYWRfd3JhcHBlcih0aWQpOworCisgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLXNvbGFyaXMiLAorICAgICAgICAgICAgICAgICAgICAicnVuX2FfdGhyZWFkX05PUkVUVVJOKHRpZD0ldSk6IHBvc3QtdGhyZWFkX3dyYXBwZXJcbiIsCisgICAgICAgICAgICAgICAgICAgIHRpZCk7CisKKyAgIGMgPSBjb3VudF9saXZpbmdfZGFlbW9uX3RocmVhZHMoRmFsc2UpOworICAgdmdfYXNzZXJ0KGMgPj0gMSk7IC8qIFN0YXkgc2FuZS4gKi8KKworICAgLyogVGVsbCB0aGUgdG9vbCB0aGF0IHNjaGVkY3RsIGRhdGEgYmVsb25naW5nIHRvIHRoaXMgdGhyZWFkIGFyZSBnb25lLiAqLworICAgQWRkciBhID0gdHN0LT5vc19zdGF0ZS5zY2hlZGN0bF9kYXRhOworICAgaWYgKGEgIT0gMCkKKyAgICAgIFZHX1RSQUNLKGRpZV9tZW1fbXVubWFwLCBhLCBzaXplb2Yoc3RydWN0IHZraV9zY19zaGFyZWQpKTsKKworICAgLyogRGVyZWdpc3RlciB0aHJlYWQncyBzdGFjay4gKi8KKyAgIGlmICh0c3QtPm9zX3N0YXRlLnN0a19pZCAhPSAoVVdvcmQpLTEpCisgICAgICBWR18oZGVyZWdpc3Rlcl9zdGFjaykodHN0LT5vc19zdGF0ZS5zdGtfaWQpOworCisgICAvKiBUZWxsIHRoZSB0b29sIHRoaXMgdGhyZWFkIGlzIGV4aXRpbmcuICovCisgICBWR19UUkFDSyhwcmVfdGhyZWFkX2xsX2V4aXQsIHRpZCk7CisKKyAgIC8qIElmIHRoZSB0aHJlYWQgaXMgZXhpdGluZyB3aXRoIGVycm9ycyBkaXNhYmxlZCwgY29tcGxhaW4gbG91ZGx5OworICAgICAgZG9pbmcgc28gaXMgYmFkIChkb2VzIHRoZSB1c2VyIGtub3cgdGhpcyBoYXMgaGFwcGVuZWQ/KSAgQWxzbywgaW4gYWxsCisgICAgICBjYXNlcywgYmUgcGFyYW5vaWQgYW5kIGNsZWFyIHRoZSBmbGFnIGFueXdheSBzbyB0aGF0IHRoZSB0aHJlYWQgc2xvdCBpcworICAgICAgc2FmZSBpbiB0aGlzIHJlc3BlY3QgaWYgbGF0ZXIgcmVhbGxvY2F0ZWQuICBUaGlzIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQorICAgICAgc2luY2UgdGhlIGZsYWcgc2hvdWxkIGJlIGNsZWFyZWQgd2hlbiB0aGUgc2xvdCBpcyByZWFsbG9jYXRlZCwgaW4KKyAgICAgIHRocmVhZF93cmFwcGVyKCkuICovCisgICBpZiAodHN0LT5lcnJfZGlzYWJsZW1lbnRfbGV2ZWwgPiAwKSB7CisgICAgICBWR18odW1zZykoCisgICAgICAgICAiV0FSTklORzogZXhpdGluZyB0aHJlYWQgaGFzIGVycm9yIHJlcG9ydGluZyBkaXNhYmxlZC5cbiIKKyAgICAgICAgICJXQVJOSU5HOiBwb3NzaWJseSBhcyBhIHJlc3VsdCBvZiBzb21lIG1pc3Rha2UgaW4gdGhlIHVzZVxuIgorICAgICAgICAgIldBUk5JTkc6IG9mIHRoZSBWQUxHUklORF9ESVNBQkxFX0VSUk9SX1JFUE9SVElORyBtYWNyb3MuXG4iCisgICAgICApOworICAgICAgVkdfKGRlYnVnTG9nKSgKKyAgICAgICAgIDEsICJzeXN3cmFwLXNvbGFyaXMiLAorICAgICAgICAgICAgInJ1bl9hX3RocmVhZF9OT1JFVFVSTih0aWQ9JXUpOiAiCisgICAgICAgICAgICAiV0FSTklORzogZXhpdGluZyB0aHJlYWQgaGFzIGVycl9kaXNhYmxlbWVudF9sZXZlbCA9ICV1XG4iLAorICAgICAgICAgICAgdGlkLCB0c3QtPmVycl9kaXNhYmxlbWVudF9sZXZlbAorICAgICAgKTsKKyAgIH0KKyAgIHRzdC0+ZXJyX2Rpc2FibGVtZW50X2xldmVsID0gMDsKKworICAgaWYgKGMgPT0gMSkgeworICAgICAgVUludCBkYWVtb25fdGhyZWFkcyA9IGNvdW50X2xpdmluZ19kYWVtb25fdGhyZWFkcyhUcnVlKTsKKyAgICAgIGlmIChkYWVtb25fdGhyZWFkcyA9PSAwKQorICAgICAgICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1zb2xhcmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInJ1bl9hX3RocmVhZF9OT1JFVFVSTih0aWQ9JXUpOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJsYXN0IG9uZSBzdGFuZGluZ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkKTsKKyAgICAgIGVsc2UKKyAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMSwgInN5c3dyYXAtc29sYXJpcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJydW5fYV90aHJlYWRfTk9SRVRVUk4odGlkPSV1KTogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAibGFzdCBub24tZGFlbW9uIHRocmVhZCBzdGFuZGluZyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJbZGFlbW9uIHRocmVhZHM9JXVdXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQsIGRhZW1vbl90aHJlYWRzKTsKKworICAgICAgLyogV2UgYXJlIHRoZSBsYXN0IG5vbi1kYWVtb24gdGhyZWFkIHN0YW5kaW5nLiBLZWVwIGhvbGQgb2YgdGhlIGxvY2sgYW5kCisgICAgICAgICBjYXJyeSBvbiB0byBzaG93IGZpbmFsIHRvb2wgcmVzdWx0cywgdGhlbiBleGl0IHRoZSBlbnRpcmUgc3lzdGVtLgorICAgICAgICAgVXNlIHRoZSBjb250aW51YXRpb24gcG9pbnRlciBzZXQgYXQgc3RhcnR1cCBpbiBtX21haW4uICovCisgICAgICBpZiAoKHNyYyA9PSBWZ1NyY19FeGl0VGhyZWFkKSAmJiAoZGFlbW9uX3RocmVhZHMgPiAwKSkKKyAgICAgICAgIHNyYyA9IFZnU3JjX0V4aXRQcm9jZXNzOworICAgICAgKCpWR18oYWRkcmVzc19vZl9tX21haW5fc2h1dGRvd25fYWN0aW9uc19OT1JFVFVSTikpKHRpZCwgc3JjKTsKKyAgIH0KKyAgIGVsc2UgeworICAgICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1zb2xhcmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgInJ1bl9hX3RocmVhZF9OT1JFVFVSTih0aWQ9JXUpOiAiCisgICAgICAgICAgICAgICAgICAgICAgICJub3QgbGFzdCBvbmUgc3RhbmRpbmdcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIHRpZCk7CisKKyAgICAgIC8qIE9LLCB0aHJlYWQgaXMgZGVhZCwgYnV0IG90aGVycyBzdGlsbCBleGlzdC4gIEp1c3QgZXhpdC4gKi8KKworICAgICAgLyogVGhpcyByZWxlYXNlcyB0aGUgcnVuIGxvY2suICovCisgICAgICBWR18oZXhpdF90aHJlYWQpKHRpZCk7CisgICAgICB2Z19hc3NlcnQodHN0LT5zdGF0dXMgPT0gVmdUc19ab21iaWUpOworICAgICAgdmdfYXNzZXJ0KHNpemVvZih0c3QtPnN0YXR1cykgPT0gNCk7CisKKyAgICAgIElOTkVSX1JFUVVFU1QoVkFMR1JJTkRfU1RBQ0tfREVSRUdJU1RFUihyZWdpc3RlcmVkX3Znc3RhY2tfaWQpKTsKKworICAgICAgLyogV2UgaGF2ZSB0byB1c2UgdGhpcyBzZXF1ZW5jZSB0byB0ZXJtaW5hdGUgdGhlIHRocmVhZCB0bworICAgICAgICAgcHJldmVudCBhIHN1YnRsZSByYWNlLiAgSWYgVkdfKGV4aXRfdGhyZWFkKSgpIGhhZCBsZWZ0IHRoZQorICAgICAgICAgVGhyZWFkU3RhdGUgYXMgRW1wdHksIHRoZW4gaXQgY291bGQgaGF2ZSBiZWVuIHJlYWxsb2NhdGVkLCByZXVzaW5nCisgICAgICAgICB0aGUgc3RhY2sgd2hpbGUgd2UncmUgZG9pbmcgdGhlc2UgbGFzdCBjbGVhbnVwcy4gIEluc3RlYWQsCisgICAgICAgICBWR18oZXhpdF90aHJlYWQpIGxlYXZlcyBpdCBhcyBab21iaWUgdG8gcHJldmVudCByZWFsbG9jYXRpb24uICBXZQorICAgICAgICAgbmVlZCB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgdG91Y2ggdGhlIHN0YWNrIGJldHdlZW4gbWFya2luZyBpdCBFbXB0eQorICAgICAgICAgYW5kIGV4aXRpbmcuICBIZW5jZSB0aGUgYXNzZW1ibGVyLiAqLworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgICAgLyogTHVja2lseSBsd3BfZXhpdCBkb2Vzbid0IHRha2UgYW55IGFyZ3VtZW50cyBzbyB3ZSBkb24ndCBoYXZlIHRvIG1lc3MKKyAgICAgICAgIHdpdGggdGhlIHN0YWNrLiAqLworICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgICAgIm1vdmwgICVbRU1QVFldLCAlW3N0YXR1c11cbiIgIC8qIHNldCB0c3QtPnN0YXR1cyA9IFZnVHNfRW1wdHkgKi8KKyAgICAgICAgICJtb3ZsICAkIlZHX1NUUklOR0lGWShfX05SX2x3cF9leGl0KSIsICUlZWF4XG4iCisgICAgICAgICAiaW50ICAgJDB4OTFcbiIgICAgICAgICAgICAgICAgLyogbHdwX2V4aXQoKSAqLworICAgICAgICAgOiBbc3RhdHVzXSAiPW0iICh0c3QtPnN0YXR1cykKKyAgICAgICAgIDogW0VNUFRZXSAibiIgKFZnVHNfRW1wdHkpCisgICAgICAgICA6ICJlYXgiLCAiZWR4IiwgImNjIiwgIm1lbW9yeSIpOworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgICJtb3ZsICAlW0VNUFRZXSwgJVtzdGF0dXNdXG4iICAvKiBzZXQgdHN0LT5zdGF0dXMgPSBWZ1RzX0VtcHR5ICovCisgICAgICAgICAibW92cSAgJCJWR19TVFJJTkdJRlkoX19OUl9sd3BfZXhpdCkiLCAlJXJheFxuIgorICAgICAgICAgInN5c2NhbGxcbiIgICAgICAgICAgICAgICAgICAgIC8qIGx3cF9leGl0KCkgKi8KKyAgICAgICAgIDogW3N0YXR1c10gIj1tIiAodHN0LT5zdGF0dXMpCisgICAgICAgICA6IFtFTVBUWV0gIm4iIChWZ1RzX0VtcHR5KQorICAgICAgICAgOiAicmF4IiwgInJkeCIsICJjYyIsICJtZW1vcnkiKTsKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyNlbmRpZgorCisgICAgICBWR18oY29yZV9wYW5pYykoIlRocmVhZCBleGl0IGZhaWxlZD9cbiIpOworICAgfQorCisgICAvKk5PVFJFQUNIRUQqLworICAgdmdfYXNzZXJ0KDApOworfQorCitXb3JkIE1MXyhzdGFydF90aHJlYWRfTk9SRVRVUk4pKHZvaWQgKmFyZykKK3sKKyAgIFRocmVhZFN0YXRlICp0c3QgPSAoVGhyZWFkU3RhdGUqKWFyZzsKKyAgIFRocmVhZElkIHRpZCA9IHRzdC0+dGlkOworCisgICBydW5fYV90aHJlYWRfTk9SRVRVUk4oKFdvcmQpdGlkKTsKKyAgIC8qTk9UUkVBQ0hFRCovCisgICB2Z19hc3NlcnQoMCk7Cit9CisKKy8qIEFsbG9jYXRlIGEgc3RhY2sgZm9yIHRoaXMgdGhyZWFkLCBpZiBpdCBkb2Vzbid0IGFscmVhZHkgaGF2ZSBvbmUuCisgICBUaGV5J3JlIGFsbG9jYXRlZCBsYXppbHksIGFuZCBuZXZlciBmcmVlZC4gIFJldHVybnMgdGhlIGluaXRpYWwgc3RhY2sKKyAgIHBvaW50ZXIgdmFsdWUgdG8gdXNlLCBvciAwIGlmIGFsbG9jYXRpb24gZmFpbGVkLiAqLworQWRkciBNTF8oYWxsb2NzdGFjaykoVGhyZWFkSWQgdGlkKQoreworICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisgICBWZ1N0YWNrICpzdGFjazsKKyAgIEFkZHIgaW5pdGlhbF9TUDsKKworICAgLyogRWl0aGVyIHRoZSBzdGFja19iYXNlIGFuZCBzdGFja19pbml0X1NQIGFyZSBib3RoIHplcm8gKGluIHdoaWNoCisgICAgICBjYXNlIGEgc3RhY2sgaGFzbid0IGJlZW4gYWxsb2NhdGVkKSBvciB0aGV5IGFyZSBib3RoIG5vbi16ZXJvLAorICAgICAgaW4gd2hpY2ggY2FzZSBpdCBoYXMuICovCisKKyAgIGlmICh0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2Jhc2UgPT0gMCkKKyAgICAgIHZnX2Fzc2VydCh0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2luaXRfU1AgPT0gMCk7CisKKyAgIGlmICh0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2Jhc2UgIT0gMCkKKyAgICAgIHZnX2Fzc2VydCh0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2luaXRfU1AgIT0gMCk7CisKKyAgIC8qIElmIG5vIHN0YWNrIGlzIHByZXNlbnQsIGFsbG9jYXRlIG9uZS4gKi8KKworICAgaWYgKHRzdC0+b3Nfc3RhdGUudmFsZ3JpbmRfc3RhY2tfYmFzZSA9PSAwKSB7CisgICAgICBzdGFjayA9IFZHXyhhbV9hbGxvY19WZ1N0YWNrKSggJmluaXRpYWxfU1AgKTsKKyAgICAgIGlmIChzdGFjaykgeworICAgICAgICAgdHN0LT5vc19zdGF0ZS52YWxncmluZF9zdGFja19iYXNlID0gKEFkZHIpc3RhY2s7CisgICAgICAgICB0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2luaXRfU1AgPSBpbml0aWFsX1NQOworICAgICAgfQorICAgfQorCisgICBpZiAoMCkKKyAgICAgIFZHXyhwcmludGYpKCJzdGFjayBmb3IgdGlkICV1IGF0ICVwOyBpbml0X1NQPSVwXG4iLAorICAgICAgICAgICAgICAgICAgdGlkLAorICAgICAgICAgICAgICAgICAgKHZvaWQqKXRzdC0+b3Nfc3RhdGUudmFsZ3JpbmRfc3RhY2tfYmFzZSwKKyAgICAgICAgICAgICAgICAgICh2b2lkKil0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2luaXRfU1ApOworCisgICByZXR1cm4gdHN0LT5vc19zdGF0ZS52YWxncmluZF9zdGFja19pbml0X1NQOworfQorCisvKiBBbGxvY2F0ZSBhIHN0YWNrIGZvciB0aGUgbWFpbiB0aHJlYWQsIGFuZCBydW4gaXQgYWxsIHRoZSB3YXkgdG8gdGhlCisgICBlbmQuICBBbHRob3VnaCB3ZSBhbHJlYWR5IGhhdmUgYSB3b3JraW5nIFZnU3RhY2sgKFZHXyhpbnRlcmltX3N0YWNrKSkgaXQncworICAgYmV0dGVyIHRvIGFsbG9jYXRlIGEgbmV3IG9uZSwgc28gdGhhdCBvdmVyZmxvdyBkZXRlY3Rpb24gd29ya3MgdW5pZm9ybWx5CisgICBmb3IgYWxsIHRocmVhZHMuICBBbHNvIGluaXRpYWxpemUgdGhlIEdEVCAoZm9yIG5vcm1hbCB0aHJlYWRzLCB0aGlzIGlzIGRvbmUKKyAgIGluIHRoZSBQUkUgd3JhcHBlciBvZiBsd3BfY3JlYXRlKS4gKi8KK3ZvaWQgVkdfKG1haW5fdGhyZWFkX3dyYXBwZXJfTk9SRVRVUk4pKFRocmVhZElkIHRpZCkKK3sKKyAgIEFkZHIgc3A7CisKKyAgIFZHXyhkZWJ1Z0xvZykoMSwgInN5c3dyYXAtc29sYXJpcyIsCisgICAgICAgICAgICAgICAgICAgICJlbnRlcmluZyBWR18obWFpbl90aHJlYWRfd3JhcHBlcl9OT1JFVFVSTilcbiIpOworCisgICBzcCA9IE1MXyhhbGxvY3N0YWNrKSh0aWQpOworI2lmIGRlZmluZWQoRU5BQkxFX0lOTkVSX0NMSUVOVF9SRVFVRVNUKQorICAgeworICAgICAgLy8gd2UgbXVzdCByZWdpc3RlciB0aGUgbWFpbiB0aHJlYWQgc3RhY2sgYmVmb3JlIHRoZSBjYWxsCisgICAgICAvLyB0byBNTF8oY2FsbF9vbl9uZXdfc3RhY2tfMF8xKSwgb3RoZXJ3aXNlIHRoZSBvdXRlciB2YWxncmluZAorICAgICAgLy8gcmVwb3J0cyAnd3JpdGUgZXJyb3InIG9uIHRoZSBub24gcmVnaXN0ZXJlZCBzdGFjay4KKyAgICAgIFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgICAgSU5ORVJfUkVRVUVTVAorICAgICAgICAgKCh2b2lkKSAKKyAgICAgICAgICBWQUxHUklORF9TVEFDS19SRUdJU1RFUih0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHN0LT5vc19zdGF0ZS52YWxncmluZF9zdGFja19pbml0X1NQKSk7CisgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgeworICAgICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisgICAgICBNTF8oc2V0dXBfZ2R0KSgmdHN0LT5hcmNoLnZleCk7CisgICAgICBNTF8odXBkYXRlX2dkdF9sd3BncykodGlkKTsKKyAgIH0KKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICAvKiBOb3RoaW5nIHRvIGRvLiAqLworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisKKyAgIC8qIElmIHdlIGNhbid0IGV2ZW4gYWxsb2NhdGUgdGhlIGZpcnN0IHRocmVhZCdzIHN0YWNrLCB3ZSdyZSBob3NlZC4KKyAgICAgIEdpdmUgdXAuICovCisgICB2Z19hc3NlcnQyKHNwICE9IDAsICJDYW5ub3QgYWxsb2NhdGUgbWFpbiB0aHJlYWQncyBzdGFjay4iKTsKKworICAgLyogU2hvdWxkbid0IGJlIGFueSBvdGhlciB0aHJlYWRzIGFyb3VuZCB5ZXQuICovCisgICB2Z19hc3NlcnQoVkdfKGNvdW50X2xpdmluZ190aHJlYWRzKSgpID09IDEpOworCisgICBNTF8oY2FsbF9vbl9uZXdfc3RhY2tfMF8xKSgKKyAgICAgIChBZGRyKXNwLCAgICAgICAgICAgICAgIC8qIHN0YWNrICovCisgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKiBib2d1cyByZXR1cm4gYWRkcmVzcyAqLworICAgICAgcnVuX2FfdGhyZWFkX05PUkVUVVJOLCAgLyogZm4gdG8gY2FsbCAqLworICAgICAgKFdvcmQpdGlkICAgICAgICAgICAgICAgLyogYXJnIHRvIGdpdmUgaXQgKi8KKyAgICk7CisKKyAgIC8qTk9UUkVBQ0hFRCovCisgICB2Z19hc3NlcnQoMCk7Cit9CisKKy8qIERlYWxsb2NhdGUgdGhlIEdEVCBmb3IgYSB0aHJlYWQuICovCit2b2lkIFZHXyhjbGVhbnVwX3RocmVhZCkoVGhyZWFkQXJjaFN0YXRlICphcmNoKQoreworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgTUxfKGNsZWFudXBfZ2R0KSgmYXJjaC0+dmV4KTsKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICAvKiBOb3RoaW5nIHRvIGRvLiAqLworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCit9CisKKy8qCisgKiBOb3RpZnkgY29yZSBhYm91dCBzcHJpbmcgY2xlYW5pbmcgb2Ygc2NoZWRjdGwgZGF0YSBwYWdlcyBmb3IgYWxsIHRocmVhZHMKKyAqIGluIGNoaWxkIHBvc3QtZm9yayBoYW5kbGVyLiBMaWJjIHdpbGwgaXNzdWUgbmV3IHNjaGVkY3RsIHN5c2NhbGxzIGZvciB0aHJlYWRzCisgKiBpbiB0aGUgY2hpbGQgd2hlbiBuZWVkcyBhcmlzZS4KKyAqCisgKiBTZWUgYWxzbyBQT1NUKHNjaGVkY3RsKSBhbmQgcnVuX2FfdGhyZWFkX05PUkVUVVJOKCkgd2hlbiBhIHRocmVhZCBleGl0cy4KKyAqLworc3RhdGljIHZvaWQgY2xlYW5fc2NoZWRjdGxfZGF0YShUaHJlYWRJZCB0aWQpCit7CisgICBVSW50IGk7CisgICBmb3IgKGkgPSAwOyBpIDwgVkdfTl9USFJFQURTOyBpKyspIHsKKyAgICAgIFRocmVhZFN0YXRlICp0c3QgPSAmVkdfKHRocmVhZHMpW2ldOworICAgICAgaWYgKHRzdC0+c3RhdHVzICE9IFZnVHNfRW1wdHkpIHsKKyAgICAgICAgIEFkZHIgYSA9IHRzdC0+b3Nfc3RhdGUuc2NoZWRjdGxfZGF0YTsKKyAgICAgICAgIGlmIChhICE9IDApIHsKKyAgICAgICAgICAgIHRzdC0+b3Nfc3RhdGUuc2NoZWRjdGxfZGF0YSA9IDA7CisgICAgICAgICAgICBhID0gVkdfUEdST1VOREROKGEpOworICAgICAgICAgICAgaWYgKFZHXyhhbV9maW5kX2Fub25fc2VnbWVudChhKSkpCisgICAgICAgICAgICAgICBWR18oYW1fbm90aWZ5X211bm1hcCkoYSwgVktJX1BBR0VfU0laRSk7CisgICAgICAgICB9CisgICAgICB9CisgICB9Cit9CisKK3ZvaWQgVkdfKHN5c3dyYXBfaW5pdCkodm9pZCkKK3sKKyAgIFZHXyhhdGZvcmspKE5VTEwsIE5VTEwsIGNsZWFuX3NjaGVkY3RsX2RhdGEpOworfQorCisvKiBDaGFuZ2VzIG93bmVyc2hpcCBvZiBhIG1lbW9yeSBtYXBwaW5nIHNoYXJlZCBiZXR3ZWVuIGtlcm5lbCBhbmQgdGhlIGNsaWVudAorICAgcHJvY2Vzcy4gVGhpcyBtYXBwaW5nIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBwcmUtYXJyYW5nZWQgZHVyaW5nIHByb2Nlc3MKKyAgIGFkZHJlc3Mgc3BhY2UgaW5pdGlhbGl6YXRpb24gaGFwcGVuaW5nIGluIGtlcm5lbC4gVmFsZ3JpbmQgb24gc3RhcnR1cCBjcmVhdGVkCisgICBhIHNlZ21lbnQgZm9yIHRoaXMgbWFwcGluZyBjYXRlZ29yaXplZCBhcyBWYWxncmluZCdzIG93bmVkIGFub255bW91cy4KKyAgIFNpemUgb2YgdGhpcyBtYXBwaW5nIHR5cGljYWxseSB2YXJpZXMgYW1vbmcgU29sYXJpcyB2ZXJzaW9ucyBidXQgc2hvdWxkIGJlCisgICBwYWdlIGFsaWduZWQuCisgICBJZiAnb25jZV9vbmx5JyBpcyAnVHJ1ZScsIGl0IGlzIGV4cGVjdGVkIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9uY2Ugb25seQorICAgYW5kIHRoZSBtYXBwaW5nIG93bmVyc2hpcCBoYXMgbm90IGJlZW4gY2hhbmdlZCwgeWV0IFt1c2VmdWwgZHVyaW5nCisgICBpbml0aWFsaXphdGlvbl0uIElmICdGYWxzZScsIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtYW55IHRpbWVzIGJ1dCBkb2VzCisgICBjaGFuZ2Ugb3duZXJzaGlwIG9ubHkgdXBvbiB0aGUgZmlyc3QgaW52b2NhdGlvbiBbdXNlZnVsIGluIHN5c2NhbGwgd3JhcHBlcnNdLgorICovCit2b2lkIFZHXyhjaGFuZ2VfbWFwcGluZ19vd25lcnNoaXApKEFkZHIgYWRkciwgQm9vbCBvbmNlX29ubHkpCit7CisgICBjb25zdCBOU2VnbWVudCAqc2VnID0gVkdfKGFtX2ZpbmRfYW5vbl9zZWdtZW50KShhZGRyKTsKKyAgIHZnX2Fzc2VydChzZWcgIT0gTlVMTCk7CisgICB2Z19hc3NlcnQoc2VnLT5zdGFydCA9PSBhZGRyKTsKKyAgIHZnX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQoc2VnLT5zdGFydCkpOworICAgdmdfYXNzZXJ0KFZHX0lTX1BBR0VfQUxJR05FRChzZWctPmVuZCArIDEpKTsKKyAgIFNpemVUIHNpemUgPSBzZWctPmVuZCAtIHNlZy0+c3RhcnQgKyAxOworICAgdmdfYXNzZXJ0KHNpemUgPiAwKTsKKworICAgQm9vbCBkb19jaGFuZ2UgPSBGYWxzZTsKKyAgIGlmIChvbmNlX29ubHkpIHsKKyAgICAgIHZnX2Fzc2VydChWR18oYW1faXNfdmFsaWRfZm9yX3ZhbGdyaW5kKShhZGRyLCBzaXplLCBWS0lfUFJPVF9SRUFEKSk7CisgICAgICBkb19jaGFuZ2UgPSBUcnVlOworICAgfSBlbHNlIHsKKyAgICAgIGlmICghVkdfKGFtX2lzX3ZhbGlkX2Zvcl9jbGllbnQpKGFkZHIsIHNpemUsIFZLSV9QUk9UX1JFQUQpKQorICAgICAgICAgZG9fY2hhbmdlID0gVHJ1ZTsKKyAgIH0KKworICAgaWYgKGRvX2NoYW5nZSkgeworICAgICAgQm9vbCBjaGFuZ2Vfb3duZXJzaGlwX09LID0gVkdfKGFtX2NoYW5nZV9vd25lcnNoaXBfdl90b19jKShhZGRyLCBzaXplKTsKKyAgICAgIHZnX2Fzc2VydChjaGFuZ2Vfb3duZXJzaGlwX09LKTsKKworICAgICAgLyogVGVsbCB0aGUgdG9vbCBhYm91dCBqdXN0IGRpc2NvdmVyZWQgbWFwcGluZy4gKi8KKyAgICAgIFZHX1RSQUNLKG5ld19tZW1fc3RhcnR1cCwKKyAgICAgICAgICAgICAgIGFkZHIsIHNpemUsCisgICAgICAgICAgICAgICBUcnVlICAvKiByZWFkYWJsZT8gKi8sCisgICAgICAgICAgICAgICBGYWxzZSAvKiB3cml0YWJsZT8gKi8sCisgICAgICAgICAgICAgICBGYWxzZSAvKiBleGVjdXRhYmxlPyAqLywKKyAgICAgICAgICAgICAgIDAgICAgIC8qIGRpX2hhbmRsZSAqLyk7CisgICB9Cit9CisKKy8qIENhbGN1bGF0ZSB0aGUgRmxldGNoZXItMzIgY2hlY2tzdW0gb2YgYSBnaXZlbiBidWZmZXIuICovCitVSW50IE1MXyhmbGV0Y2hlcjMyKShVU2hvcnQgKmJ1ZiwgU2l6ZVQgYmxvY2tzKQoreworICAgVUludCBzdW0xID0gMDsKKyAgIFVJbnQgc3VtMiA9IDA7CisgICBTaXplVCBpOworCisgICBmb3IgKGkgPSAwOyBpIDwgYmxvY2tzOyBpKyspIHsKKyAgICAgIHN1bTEgPSAoc3VtMSArIGJ1ZltpXSkgJSAweGZmZmY7CisgICAgICBzdW0yID0gKHN1bTIgKyBzdW0xKSAlIDB4ZmZmZjsKKyAgIH0KKworICAgcmV0dXJuIChzdW0yIDw8IDE2KSB8IHN1bTE7Cit9CisKKy8qIENhbGN1bGF0ZSB0aGUgRmxldGNoZXItNjQgY2hlY2tzdW0gb2YgYSBnaXZlbiBidWZmZXIuICovCitVTG9uZyBNTF8oZmxldGNoZXI2NCkoVUludCAqYnVmLCBTaXplVCBibG9ja3MpCit7CisgICBVTG9uZyBzdW0xID0gMDsKKyAgIFVMb25nIHN1bTIgPSAwOworICAgU2l6ZVQgaTsKKworICAgZm9yIChpID0gMDsgaSA8IGJsb2NrczsgaSsrKSB7CisgICAgICBzdW0xID0gKHN1bTEgKyBidWZbaV0pICUgMHhmZmZmZmZmZjsKKyAgICAgIHN1bTIgPSAoc3VtMiArIHN1bTEpICUgMHhmZmZmZmZmZjsKKyAgIH0KKyAgIHJldHVybiAoc3VtMiA8PCAzMikgfCBzdW0xOworfQorCisvKiBTYXZlIGEgY29tcGxldGUgY29udGV4dCAoVkNQVSBzdGF0ZSwgc2lnbWFzaykgb2YgYSBnaXZlbiBjbGllbnQgdGhyZWFkCisgICBpbnRvIHRoZSB2a2lfdWNvbnRleHRfdCBzdHJ1Y3R1cmUuICBUaGlzIHN0cnVjdHVyZSBpcyBzdXBwb3NlZCB0byBiZQorICAgYWxsb2NhdGVkIGluIHRoZSBjbGllbnQgbWVtb3J5LCBhIGNhbGxlciBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZSBtZW1vcnkgY2FuCisgICBiZSBkZXJlZmVyZW5jZWQuICBUaGUgYWN0aXZlIHRvb2wgaXMgaW5mb3JtZWQgYWJvdXQgdGhlIHNhdmUuICovCit2b2lkIFZHXyhzYXZlX2NvbnRleHQpKFRocmVhZElkIHRpZCwgdmtpX3Vjb250ZXh0X3QgKnVjLCBDb3JlUGFydCBwYXJ0KQoreworICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisKKyAgIFZHX1RSQUNLKHByZV9tZW1fd3JpdGUsIHBhcnQsIHRpZCwgInNhdmVfY29udGV4dCh1YykiLCAoQWRkcil1YywKKyAgICAgICAgICAgIHNpemVvZigqdWMpKTsKKworICAgdWMtPnVjX2ZsYWdzID0gVktJX1VDX0FMTDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZ1Yy0+dWNfZmxhZ3MsCisgICAgICAgICAgICBzaXplb2YodWMtPnVjX2ZsYWdzKSk7CisKKyAgIC8qIE9sZCBjb250ZXh0ICovCisgICB1Yy0+dWNfbGluayA9IHRzdC0+b3Nfc3RhdGUub2xkY29udGV4dDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZ1Yy0+dWNfbGluaywKKyAgICAgICAgICAgIHNpemVvZih1Yy0+dWNfbGluaykpOworCisgICAvKiBDbGVhciB1Yy0+dmtpX3VjX3NpZ25vLiAgVGhpcyBzbG90IGlzIHVzZWQgYnkgdGhlIHNpZ25hbCBtYWNoaW5lcnkgdG8KKyAgICAgIHN0b3JlIGEgc2lnbmFsIG51bWJlci4gKi8KKyAgIFZLSV9VQ19TSUdOTyh1YykgPSAwOworCisgICAvKiBTaWdtYXNrICovCisgICB1Yy0+dWNfc2lnbWFzayA9IHRzdC0+c2lnX21hc2s7CisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmdWMtPnVjX3NpZ21hc2ssCisgICAgICAgICAgICBzaXplb2YodWMtPnVjX3NpZ21hc2spKTsKKworICAgLyogU3RhY2sgKi8KKyAgIHsKKyAgICAgIGlmICh0c3QtPm9zX3N0YXRlLnVzdGFjaworICAgICAgICAgICYmIE1MXyhzYWZlX3RvX2RlcmVmKSh0c3QtPm9zX3N0YXRlLnVzdGFjaywgc2l6ZW9mKHZraV9zdGFja190KSkKKyAgICAgICAgICAmJiB0c3QtPm9zX3N0YXRlLnVzdGFjay0+c3Nfc2l6ZSkgeworICAgICAgICAgLyogSWYgdXN0YWNrIHBvaW50cyB0byBhIHZhbGlkIHN0YWNrIGNvcHkgaXQgdG8gdWNvbnRleHQuICovCisgICAgICAgICB1Yy0+dWNfc3RhY2sgPSAqdHN0LT5vc19zdGF0ZS51c3RhY2s7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgIC8qIFVzdGFjayBpcyBub3QgdmFsaWQuICBBIGNvcnJlY3Qgc3RhY2sgaGFzIHRvIGJlIGZpZ3VyZWQgb3V0CisgICAgICAgICAgICBtYW51YWxseS4gKi8KKyAgICAgICAgIFN5c1JlcyByZXM7CisgICAgICAgICB2a2lfc3RhY2tfdCBhbHRzdGFjazsKKworICAgICAgICAgLyogR2V0IGluZm9ybWF0aW9uIGFib3V0IGFsdGVybmF0ZSBzdGFjay4gKi8KKyAgICAgICAgIHJlcyA9IFZHXyhkb19zeXNfc2lnYWx0c3RhY2spKHRpZCwgTlVMTCwgJmFsdHN0YWNrKTsKKyAgICAgICAgIHZnX2Fzc2VydCghc3JfaXNFcnJvcihyZXMpKTsKKworICAgICAgICAgaWYgKGFsdHN0YWNrLnNzX2ZsYWdzID09IFZLSV9TU19PTlNUQUNLKSB7CisgICAgICAgICAgICAvKiBJZiB0aGUgYWx0ZXJuYXRlIHN0YWNrIGlzIGFjdGl2ZSBjb3B5IGl0IHRvIHVjb250ZXh0LiAqLworICAgICAgICAgICAgdWMtPnVjX3N0YWNrID0gYWx0c3RhY2s7CisgICAgICAgICB9CisgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8qIE5vIGluZm9ybWF0aW9uIGFib3V0IHN0YWNrIGlzIHByZXNlbnQsIHNhdmUgaW5mb3JtYXRpb24gYWJvdXQKKyAgICAgICAgICAgICAgIGN1cnJlbnQgbWFpbiBzdGFjayB0byB1Y29udGV4dC4gIFRoaXMgYnJhbmNoIHNob3VsZCBiZSByZWFjaGVkCisgICAgICAgICAgICAgICBvbmx5IGJ5IHRoZSBtYWluIHRocmVhZC4gKi8KKyAgICAgICAgICAgIFRocmVhZFN0YXRlICp0c3QyID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkoMSk7CisgICAgICAgICAgICB1Yy0+dWNfc3RhY2suc3Nfc3AgPSAodm9pZCopKHRzdDItPmNsaWVudF9zdGFja19oaWdoZXN0X2J5dGUgKyAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdHN0Mi0+Y2xpZW50X3N0YWNrX3N6Qik7CisgICAgICAgICAgICB1Yy0+dWNfc3RhY2suc3Nfc2l6ZSA9IHRzdDItPmNsaWVudF9zdGFja19zekI7CisgICAgICAgICAgICB1Yy0+dWNfc3RhY2suc3NfZmxhZ3MgPSAwOworICAgICAgICAgfQorICAgICAgfQorCisgICAgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmdWMtPnVjX3N0YWNrLAorICAgICAgICAgICAgICAgc2l6ZW9mKHVjLT51Y19zdGFjaykpOworICAgfQorCisgICAvKiBTYXZlIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgcGFydCBvZiB0aGUgY29udGV4dC4gKi8KKyAgIE1MXyhzYXZlX21hY2hpbmVfY29udGV4dCkodGlkLCB1YywgcGFydCk7Cit9CisKKy8qIFNldCBhIGNvbXBsZXRlIGNvbnRleHQgKFZDUFUgc3RhdGUsIHNpZ21hc2spIG9mIGEgZ2l2ZW4gY2xpZW50IHRocmVhZAorICAgYWNjb3JkaW5nIHRvIHZhbHVlcyBwYXNzZWQgaW4gdGhlIHZraV91Y29udGV4dF90IHN0cnVjdHVyZS4gIFRoaXMgc3RydWN0dXJlCisgICBpcyBzdXBwb3NlZCB0byBiZSBhbGxvY2F0ZWQgaW4gdGhlIGNsaWVudCBtZW1vcnksIGEgY2FsbGVyIG11c3QgbWFrZSBzdXJlCisgICB0aGF0IHRoZSBtZW1vcnkgY2FuIGJlIGRlcmVmZXJlbmNlZC4gIFRoZSBhY3RpdmUgdG9vbCBpcyBpbmZvcm1lZCBhYm91dAorICAgd2hhdCBwYXJ0cyBvZiB0aGUgc3RydWN0dXJlIGFyZSByZWFkLgorCisgICBUaGlzIGZ1bmN0aW9uIGlzIGEgY291bnRlcnBhcnQgdG8gVkdfKHNhdmVfY29udGV4dCkoKS4gKi8KK3ZvaWQgVkdfKHJlc3RvcmVfY29udGV4dCkoVGhyZWFkSWQgdGlkLCB2a2lfdWNvbnRleHRfdCAqdWMsIENvcmVQYXJ0IHBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgZXNwX2lzX3RocnB0cikKK3sKKyAgIFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgQWRkciBvbGRfZXNwID0gVkdfKGdldF9TUCkodGlkKTsKKworICAgVkdfVFJBQ0socHJlX21lbV9yZWFkLCBwYXJ0LCB0aWQsICJyZXN0b3JlX2NvbnRleHQodWMtPnVjX2ZsYWdzKSIsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX2ZsYWdzLCBzaXplb2YodWMtPnVjX2ZsYWdzKSk7CisKKyAgIC8qIE9sZCBjb250ZXh0ICovCisgICBWR19UUkFDSyhwcmVfbWVtX3JlYWQsIHBhcnQsIHRpZCwgInJlc3RvcmVfY29udGV4dCh1Yy0+dWNfbGluaykiLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19saW5rLCBzaXplb2YodWMtPnVjX2xpbmspKTsKKyAgIHRzdC0+b3Nfc3RhdGUub2xkY29udGV4dCA9IHVjLT51Y19saW5rOworCisgICAvKiBTaWdtYXNrICovCisgICBpZiAodWMtPnVjX2ZsYWdzICYgVktJX1VDX1NJR01BU0spIHsKKyAgICAgIFN5c1JlcyByZXM7CisKKyAgICAgIFZHX1RSQUNLKHByZV9tZW1fcmVhZCwgcGFydCwgdGlkLCAicmVzdG9yZV9jb250ZXh0KHVjLT51Y19zaWdtYXNrKSIsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX3NpZ21hc2ssIHNpemVvZih1Yy0+dWNfc2lnbWFzaykpOworICAgICAgcmVzID0gVkdfKGRvX3N5c19zaWdwcm9jbWFzaykodGlkLCBWS0lfU0lHX1NFVE1BU0ssICZ1Yy0+dWNfc2lnbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgLyogU2V0dGluZyBzaWduYWwgbWFzayBzaG91bGQgbmV2ZXIgZmFpbC4gKi8KKyAgICAgIHZnX2Fzc2VydCghc3JfaXNFcnJvcihyZXMpKTsKKyAgIH0KKworICAgLyogU3RhY2sgKi8KKyAgIGlmICh1Yy0+dWNfZmxhZ3MgJiBWS0lfVUNfU1RBQ0spIHsKKyAgICAgIFZHX1RSQUNLKHByZV9tZW1fcmVhZCwgcGFydCwgdGlkLCAicmVzdG9yZV9jb250ZXh0KHVjLT51Y19zdGFjaykiLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19zdGFjaywgc2l6ZW9mKHVjLT51Y19zdGFjaykpOworCisgICAgICBpZiAodWMtPnVjX3N0YWNrLnNzX2ZsYWdzID09IFZLSV9TU19PTlNUQUNLKSB7CisgICAgICAgICAvKiBUaGlzIHNlZW1zIHRvIGJlIGEgbGl0dGxlIGJpdCBkYW5nZXJvdXMgYnV0IGl0IGlzIHdoYXQgdGhlIGtlcm5lbAorICAgICAgICAgICAgZG9lcy4gKi8KKyAgICAgICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQorICAgICAgICAgICAgVkdfKGRtc2cpKCJyZXN0b3JlX2NvbnRleHQsIHNpZ2FsdHN0YWNrOiB0aWQgJXUsICIKKyAgICAgICAgICAgICAgICAgICAgICAic3MgJXB7JXAsc3o9JWx1LGZsYWdzPSUjeH1cbiIsCisgICAgICAgICAgICAgICAgICAgICAgdGlkLCAmdWMtPnVjX3N0YWNrLCB1Yy0+dWNfc3RhY2suc3Nfc3AsCisgICAgICAgICAgICAgICAgICAgICAgKFNpemVUKXVjLT51Y19zdGFjay5zc19zaXplLCB1Yy0+dWNfc3RhY2suc3NfZmxhZ3MpOworCisgICAgICAgICB0c3QtPmFsdHN0YWNrLnNzX3NwID0gdWMtPnVjX3N0YWNrLnNzX3NwOworICAgICAgICAgdHN0LT5hbHRzdGFjay5zc19zaXplID0gdWMtPnVjX3N0YWNrLnNzX3NpemU7CisgICAgICAgICAvKiBEbyBub3QgY29weSBzc19mbGFncywgdGhleSBhcmUgY2FsY3VsYXRlZCBkeW5hbWljYWxseSBieQorICAgICAgICAgICAgVmFsZ3JpbmQuICovCisgICAgICB9CisKKyAgICAgIC8qIENvcHlvdXQgdGhlIG5ldyBzdGFjay4gKi8KKyAgICAgIGlmICh0c3QtPm9zX3N0YXRlLnVzdGFjaworICAgICAgICAgICYmIFZHXyhhbV9pc192YWxpZF9mb3JfY2xpZW50KSgoQWRkcil0c3QtPm9zX3N0YXRlLnVzdGFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCp0c3QtPm9zX3N0YXRlLnVzdGFjayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLSV9QUk9UX1dSSVRFKSkKKyAgICAgICAgICp0c3QtPm9zX3N0YXRlLnVzdGFjayA9IHVjLT51Y19zdGFjazsKKyAgICAgICAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZ0c3QtPm9zX3N0YXRlLnVzdGFjaywKKyAgICAgICAgICAgICAgICAgIHNpemVvZih0c3QtPm9zX3N0YXRlLnVzdGFjaykpOworICAgfQorCisgICAvKiBSZXN0b3JlIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgcGFydCBvZiB0aGUgY29udGV4dC4gKi8KKyAgIE1MXyhyZXN0b3JlX21hY2hpbmVfY29udGV4dCkodGlkLCB1YywgcGFydCwgZXNwX2lzX3RocnB0cik7CisKKyAgIC8qIElmIHRoZSB0aHJlYWQgc3RhY2sgaXMgYWxyZWFkeSBrbm93biwga2lsbCB0aGUgZGVhbGxvY2F0ZWQgc3RhY2sgYXJlYS4KKyAgICAgIFRoaXMgaXMgaW1wb3J0YW50IHdoZW4gcmV0dXJuaW5nIGZyb20gYSBzaWduYWwgaGFuZGxlci4gKi8KKyAgIGlmICh0c3QtPmNsaWVudF9zdGFja19oaWdoZXN0X2J5dGUgJiYgdHN0LT5jbGllbnRfc3RhY2tfc3pCKSB7CisgICAgICBBZGRyIGVuZCA9IHRzdC0+Y2xpZW50X3N0YWNrX2hpZ2hlc3RfYnl0ZTsKKyAgICAgIEFkZHIgc3RhcnQgPSBlbmQgKyAxIC0gdHN0LT5jbGllbnRfc3RhY2tfc3pCOworICAgICAgQWRkciBuZXdfZXNwID0gVkdfKGdldF9TUCkodGlkKTsKKworICAgICAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIG9sZCBhbmQgbmV3IHN0YWNrIHBvaW50ZXIgYXJlIG9uIHRoZSBzYW1lIChhY3RpdmUpCisgICAgICAgICBzdGFjay4gIEFsdGVybmF0ZSBzdGFjayBpcyBjdXJyZW50bHkgbmV2ZXIgYWZmZWN0ZWQgYnkgdGhpcyBjb2RlLiAqLworICAgICAgaWYgKHN0YXJ0IDw9IG9sZF9lc3AgJiYgb2xkX2VzcCA8PSBlbmQKKyAgICAgICAgICAmJiBzdGFydCA8PSBuZXdfZXNwICYmIG5ld19lc3AgPD0gZW5kCisgICAgICAgICAgJiYgbmV3X2VzcCA+IG9sZF9lc3ApCisgICAgICAgICBWR19UUkFDSyhkaWVfbWVtX3N0YWNrLCBvbGRfZXNwIC0gVkdfU1RBQ0tfUkVEWk9ORV9TWkIsCisgICAgICAgICAgICAgICAgICAobmV3X2VzcCAtIG9sZF9lc3ApICsgVkdfU1RBQ0tfUkVEWk9ORV9TWkIpOworICAgfQorfQorCisvKiBTZXQgYSBjbGllbnQgc3RhY2sgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gdGhyZWFkIGlkIGFjY29yZGluZyB0byB2YWx1ZXMKKyAgIHBhc3NlZCBpbiB0aGUgdmtpX3N0YWNrX3Qgc3RydWN0dXJlLiAqLworc3RhdGljIHZvaWQgc2V0X3N0YWNrKFRocmVhZElkIHRpZCwgdmtpX3N0YWNrX3QgKnN0KQoreworICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisgICBBZGRyIG5ld19zdGFydCwgbmV3X2VuZDsKKyAgIFNpemVUIG5ld19zaXplOworICAgQWRkciBjdXJfc3RhcnQ7CisgICBTaXplVCBjdXJfc2l6ZTsKKworICAgVkdfKGRlYnVnTG9nKSgyLCAic3lzd3JhcC1zb2xhcmlzIiwKKyAgICAgICAgICAgICAgICAgICAgInNldCBzdGFjazogc3A9JSNseCwgc2l6ZT0lI2x4LlxuIiwKKyAgICAgICAgICAgICAgICAgICAgKEFkZHIpc3QtPnNzX3NwLCAoU2l6ZVQpc3QtPnNzX3NpemUpOworCisgICAvKiBTdGF5IHNhbmUuICovCisgICB2Z19hc3NlcnQoc3QtPnNzX2ZsYWdzID09IDApOworCisgICBuZXdfc3RhcnQgPSAoQWRkcilzdC0+c3Nfc3A7CisgICBuZXdfZW5kID0gbmV3X3N0YXJ0ICsgc3QtPnNzX3NpemUgLSAxOworICAgbmV3X3NpemUgPSBzdC0+c3Nfc2l6ZTsKKyAgIGN1cl9zdGFydCA9IHRzdC0+Y2xpZW50X3N0YWNrX2hpZ2hlc3RfYnl0ZSArIDEKKyAgICAgICAgICAgICAgIC0gdHN0LT5jbGllbnRfc3RhY2tfc3pCOworICAgY3VyX3NpemUgPSB0c3QtPmNsaWVudF9zdGFja19zekI7CisKKyAgIGlmIChuZXdfc3RhcnQgPT0gY3VyX3N0YXJ0ICYmIG5ld19zaXplID09IGN1cl9zaXplKSB7CisgICAgICAvKiBObyBjaGFuZ2UgaXMgcmVxdWVzdGVkLCBiYWlsIG91dC4gKi8KKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgaWYgKHRpZCA9PSAxICYmIChuZXdfc2l6ZSA9PSAwIHx8IG5ld19zaXplID4gVkdfKGNsc3RrX21heF9zaXplKSkpIHsKKyAgICAgIC8qIFRoZSBtYWluIHRocmVhZCByZXF1ZXN0cyB0byB1c2UgYSBzdGFjayB3aXRob3V0IGFueSBzaXplIGNoZWNraW5nLCBvcgorICAgICAgICAgdG9vIGJpZyBzdGFjay4gIEZhbGxiYWNrIHRvIHRoZSBtYXhpbXVtIGFsbG9jYXRlZCBjbGllbnQgc3RhY2suICovCisKKyAgICAgIC8qIFRPRE8gSSB0aGluayBpdCBpcyBwb3NzaWJsZSB0byBnaXZlIHVwIG9uIHNldHRpbmcgbWFpbiBzdGFjayBhbnl3YXkuCisgICAgICAgICBWYWxncmluZCBrbm93cyB3aGVyZSBpdCBpcyBsb2NhdGVkIGFuZCBpdCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgYXMKKyAgICAgICAgIFZHXyhjbHN0a19pZCkuICovCisKKyAgICAgIG5ld19zaXplID0gVkdfKGNsc3RrX21heF9zaXplKTsKKyAgICAgIG5ld19lbmQgPSB0c3QtPmNsaWVudF9zdGFja19oaWdoZXN0X2J5dGU7CisgICAgICBuZXdfc3RhcnQgPSBuZXdfZW5kICsgMSAtIG5ld19zaXplOworICAgfQorCisgICBpZiAodHN0LT5vc19zdGF0ZS5zdGtfaWQgPT0gKFVXb3JkKS0xKSB7CisgICAgICAvKiBUaGlzIHRocmVhZCBkb2Vzbid0IGhhdmUgYSBzdGFjayBzZXQgeWV0LiAqLworICAgICAgVkdfKGRlYnVnTG9nKSgyLCAic3lzd3JhcC1zb2xhcmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlN0YWNrIHNldCB0byAlI2x4LSUjbHggKG5ldykgZm9yIHRocmVhZCAldS5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgIG5ld19zdGFydCwgbmV3X2VuZCwgdGlkKTsKKyAgICAgIHRzdC0+b3Nfc3RhdGUuc3RrX2lkID0gVkdfKHJlZ2lzdGVyX3N0YWNrKShuZXdfc3RhcnQsIG5ld19lbmQpOworICAgfQorICAgZWxzZSB7CisgICAgICAvKiBDaGFuZ2UgYSB0aHJlYWQgc3RhY2suICovCisgICAgICBWR18oZGVidWdMb2cpKDIsICJzeXN3cmFwLXNvbGFyaXMiLAorICAgICAgICAgICAgICAgICAgICAgICAiU3RhY2sgc2V0IHRvICUjbHgtJSNseCAoY2hhbmdlKSBmb3IgdGhyZWFkICV1LlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3X3N0YXJ0LCBuZXdfZW5kLCB0aWQpOworICAgICAgVkdfKGNoYW5nZV9zdGFjaykodHN0LT5vc19zdGF0ZS5zdGtfaWQsIG5ld19zdGFydCwgbmV3X2VuZCk7CisgICB9CisgICB0c3QtPmNsaWVudF9zdGFja19oaWdoZXN0X2J5dGUgPSBuZXdfZW5kOworICAgdHN0LT5jbGllbnRfc3RhY2tfc3pCID0gbmV3X3NpemU7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgRG9vciB0cmFja2luZy4gVXNlZCBtYWlubHkgZm9yIHNlcnZlciBzaWRlIHdoZXJlIGRvb3JfcmV0dXJuKCkKKyAgIHBhcmFtZXRlcnMgYWxvbmUgZG8gbm90IGNvbnRhaW4gc3VmZmljaWVudCBpbmZvcm1hdGlvbi4KKyAgIEFsc28gdXNlZCBvbiBjbGllbnQgc2lkZSB3aGVuIG5ldyBkb29yIGRlc2NyaXB0b3JzIGFyZSBwYXNzZWQgdmlhCisgICBkb29yX2NhbGwoKSBpbiBkZXNjX3B0ci4gTm90IHVzZWQgZm9yIHRyYWNraW5nIGRvb3IgZGVzY3JpcHRvcnMKKyAgIGV4cGxpY2l0bHkgb3BlbigpJ2VkIFtnZW5lcmljIGZkIHRyYWNraW5nIGlzIHVzZWQgaW4gdGhhdCBjYXNlXS4KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKiBPbmUgb2YgdGhlc2UgaXMgYWxsb2NhdGVkIGZvciBlYWNoIGNyZWF0ZWQgZG9vci4gKi8KK3R5cGVkZWYgc3RydWN0IE9wZW5Eb29yCit7CisgICBCb29sIHNlcnZlcjsgLyogVFJVRSA9IHNlcnZlciBkb29yLCBGQUxTRSA9IGNsaWVudCBkb29yICovCisgICBJbnQgZmQ7ICAgICAgLyogVGhlIGZpbGUgZGVzY3JpcHRvci4gKi8KKyAgIHVuaW9uIHsKKyAgICAgIC8qIFNlcnZlciBzaWRlLiAqLworICAgICAgc3RydWN0IHsKKyAgICAgICAgIEFkZHIgc2VydmVyX3Byb2NlZHVyZTsgIC8qIFRoZSBkb29yIHNlcnZlciBwcm9jZWR1cmUuICovCisgICAgICAgICBIQ2hhciAqcGF0aG5hbWU7ICAgICAgICAvKiBOVUxMIGlmIHVua25vd24uICovCisgICAgICB9OworICAgICAgLyogQ2xpZW50IHNpZGUuICovCisgICAgICBzdHJ1Y3QgeworICAgICAgICAgLyogSG9vayBjYWxsZWQgZHVyaW5nIFBSRSBkb29yX2NhbGwoKQorICAgICAgICAgICAgdG8gY2hlY2sgY29udGVudHMgb2YgcGFyYW1zLT5kYXRhX3B0ci4gKi8KKyAgICAgICAgIHZvaWQgKCpwcmVfbWVtX2hvb2spKFRocmVhZElkIHRpZCwgSW50IGZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YV9wdHIsIFNpemVUIGRhdGFfc2l6ZSk7CisgICAgICAgICAvKiBIb29rIGNhbGxlZCBkdXJpbmcgUE9TVCBkb29yX2NhbGwoKQorICAgICAgICAgICAgdG8gZGVmaW5lIGNvbnRlbnRzIG9mIHBhcmFtcy0+cmJ1Zi4gKi8KKyAgICAgICAgIHZvaWQgKCpwb3N0X21lbV9ob29rKShUaHJlYWRJZCB0aWQsIEludCBmZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpyYnVmLCBTaXplVCByc2l6ZSk7CisgICAgICB9OworICAgfTsKKyAgIHN0cnVjdCBPcGVuRG9vciAqbmV4dCwgKnByZXY7Cit9IE9wZW5Eb29yOworCisvKiBMaXN0IG9mIGFsbG9jYXRlZCBkb29yIGZkcy4gKi8KK3N0YXRpYyBPcGVuRG9vciAqZG9vcnNfcmVjb3JkZWQgPSBOVUxMOworc3RhdGljIFVJbnQgbnJfZG9vcnNfcmVjb3JkZWQgPSAwOworCitzdGF0aWMgT3BlbkRvb3IgKmRvb3JfcmVjb3JkX2NyZWF0ZSh2b2lkKQoreworICAgT3BlbkRvb3IgKmQgPSBWR18obWFsbG9jKSgic3lzd3JhcC5kb29yX3JlY29yZF9jcmVhdGUuMSIsIHNpemVvZihPcGVuRG9vcikpOworICAgZC0+cHJldiA9IE5VTEw7CisgICBkLT5uZXh0ID0gZG9vcnNfcmVjb3JkZWQ7CisgICBpZiAoZG9vcnNfcmVjb3JkZWQgIT0gTlVMTCkKKyAgICAgIGRvb3JzX3JlY29yZGVkLT5wcmV2ID0gZDsKKyAgIGRvb3JzX3JlY29yZGVkID0gZDsKKyAgIG5yX2Rvb3JzX3JlY29yZGVkICs9IDE7CisKKyAgIHJldHVybiBkOworfQorCisvKiBSZWNvcmRzIGEgc2VydmVyIGRvb3IuICovCitzdGF0aWMgdm9pZCBkb29yX3JlY29yZF9zZXJ2ZXIoVGhyZWFkSWQgdGlkLCBBZGRyIHNlcnZlcl9wcm9jZWR1cmUsIEludCBmZCkKK3sKKyAgIE9wZW5Eb29yICpkID0gZG9vcnNfcmVjb3JkZWQ7CisKKyAgIHdoaWxlIChkICE9IE5VTEwpIHsKKyAgICAgIGlmICgoZC0+c2VydmVyID09IFRSVUUpICYmIChkLT5zZXJ2ZXJfcHJvY2VkdXJlID09IHNlcnZlcl9wcm9jZWR1cmUpKSB7CisgICAgICAgICBpZiAoZC0+cGF0aG5hbWUpIHsKKyAgICAgICAgICAgIFZHXyhmcmVlKShkLT5wYXRobmFtZSk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIGQgPSBkLT5uZXh0OworICAgfQorCisgICBpZiAoZCA9PSBOVUxMKQorICAgICAgZCA9IGRvb3JfcmVjb3JkX2NyZWF0ZSgpOworICAgdmdfYXNzZXJ0KGQgIT0gTlVMTCk7CisKKyAgIGQtPnNlcnZlciA9IFRSVUU7CisgICBkLT5mZCA9IGZkOworICAgZC0+c2VydmVyX3Byb2NlZHVyZSA9IHNlcnZlcl9wcm9jZWR1cmU7CisgICBkLT5wYXRobmFtZSA9IE5VTEw7Cit9CisKKy8qIFJlY29yZHMgYSBjbGllbnQgZG9vci4gKi8KK3N0YXRpYyB2b2lkIGRvb3JfcmVjb3JkX2NsaWVudChUaHJlYWRJZCB0aWQsIEludCBmZCwKKyAgIHZvaWQgKCpwcmVfbWVtX2hvb2spKFRocmVhZElkIHRpZCwgSW50IGZkLCB2b2lkICpkYXRhX3B0ciwgU2l6ZVQgZGF0YV9zaXplKSwKKyAgIHZvaWQgKCpwb3N0X21lbV9ob29rKShUaHJlYWRJZCB0aWQsIEludCBmZCwgdm9pZCAqcmJ1ZiwgU2l6ZVQgcnNpemUpKQoreworICAgT3BlbkRvb3IgKmQgPSBkb29yc19yZWNvcmRlZDsKKworICAgd2hpbGUgKGQgIT0gTlVMTCkgeworICAgICAgaWYgKChkLT5zZXJ2ZXIgPT0gRkFMU0UpICYmIChkLT5mZCA9PSBmZCkpCisgICAgICAgICBicmVhazsKKyAgICAgIGQgPSBkLT5uZXh0OworICAgfQorCisgICBpZiAoZCA9PSBOVUxMKQorICAgICAgZCA9IGRvb3JfcmVjb3JkX2NyZWF0ZSgpOworICAgdmdfYXNzZXJ0KGQgIT0gTlVMTCk7CisKKyAgIGQtPnNlcnZlciA9IEZBTFNFOworICAgZC0+ZmQgPSBmZDsKKyAgIGQtPnByZV9tZW1faG9vayA9IHByZV9tZW1faG9vazsKKyAgIGQtPnBvc3RfbWVtX2hvb2sgPSBwb3N0X21lbV9ob29rOworfQorCisvKiBSZXZva2VzIGFuIG9wZW4gZG9vciwgYmUgaXQgc2VydmVyIHNpZGUgb3IgY2xpZW50IHNpZGUuICovCitzdGF0aWMgdm9pZCBkb29yX3Jldm9rZShUaHJlYWRJZCB0aWQsIEludCBmZCkKK3sKKyAgIE9wZW5Eb29yICpkID0gZG9vcnNfcmVjb3JkZWQ7CisKKyAgIHdoaWxlIChkICE9IE5VTEwpIHsKKyAgICAgIGlmIChkLT5mZCA9PSBmZCkgeworICAgICAgICAgaWYgKGQtPnByZXYgIT0gTlVMTCkKKyAgICAgICAgICAgIGQtPnByZXYtPm5leHQgPSBkLT5uZXh0OworICAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9vcnNfcmVjb3JkZWQgPSBkLT5uZXh0OworICAgICAgICAgaWYgKGQtPm5leHQgIT0gTlVMTCkKKyAgICAgICAgICAgIGQtPm5leHQtPnByZXYgPSBkLT5wcmV2OworCisgICAgICAgICBpZiAoKGQtPnNlcnZlciA9PSBUUlVFKSAmJiAoZC0+cGF0aG5hbWUgIT0gTlVMTCkpCisgICAgICAgICAgICBWR18oZnJlZSkoZC0+cGF0aG5hbWUpOworICAgICAgICAgVkdfKGZyZWUpKGQpOworICAgICAgICAgbnJfZG9vcnNfcmVjb3JkZWQgLT0gMTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIGQgPSBkLT5uZXh0OworICAgfQorfQorCisvKiBBdHRhY2hlcyBhIHNlcnZlciBkb29yIHRvIGEgZmlsZW5hbWUuICovCitzdGF0aWMgdm9pZCBkb29yX3NlcnZlcl9mYXR0YWNoKEludCBmZCwgSENoYXIgKnBhdGhuYW1lKQoreworICAgT3BlbkRvb3IgKmQgPSBkb29yc19yZWNvcmRlZDsKKworICAgd2hpbGUgKGQgIT0gTlVMTCkgeworICAgICAgaWYgKGQtPmZkID09IGZkKSB7CisgICAgICAgICB2Z19hc3NlcnQoZC0+c2VydmVyID09IFRSVUUpOworCisgICAgICAgICBpZiAoZC0+cGF0aG5hbWUgIT0gTlVMTCkKKyAgICAgICAgICAgIFZHXyhmcmVlKShkLT5wYXRobmFtZSk7CisgICAgICAgICBkLT5wYXRobmFtZSA9IFZHXyhzdHJkdXApKCJzeXN3cmFwLmRvb3Jfc2VydmVyX2ZhdHRhY2guMSIsIHBhdGhuYW1lKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIGQgPSBkLT5uZXh0OworICAgfQorfQorCisvKiBGaW5kcyBhIHNlcnZlciBkb29yIGJhc2VkIG9uIHNlcnZlciBwcm9jZWR1cmUuICovCitzdGF0aWMgY29uc3QgT3BlbkRvb3IgKmRvb3JfZmluZF9ieV9wcm9jKEFkZHIgc2VydmVyX3Byb2NlZHVyZSkKK3sKKyAgIE9wZW5Eb29yICpkID0gZG9vcnNfcmVjb3JkZWQ7CisKKyAgIHdoaWxlIChkICE9IE5VTEwpIHsKKyAgICAgIGlmICgoZC0+c2VydmVyKSAmJiAoZC0+c2VydmVyX3Byb2NlZHVyZSA9PSBzZXJ2ZXJfcHJvY2VkdXJlKSkKKyAgICAgICAgIHJldHVybiBkOworICAgICAgZCA9IGQtPm5leHQ7CisgICB9CisKKyAgIHJldHVybiBOVUxMOworfQorCisvKiBGaW5kcyBhIGNsaWVudCBkb29yIGJhc2VkIG9uIGZkLiAqLworc3RhdGljIGNvbnN0IE9wZW5Eb29yICpkb29yX2ZpbmRfYnlfZmQoSW50IGZkKQoreworICAgT3BlbkRvb3IgKmQgPSBkb29yc19yZWNvcmRlZDsKKworICAgd2hpbGUgKGQgIT0gTlVMTCkgeworICAgICAgaWYgKChkLT5zZXJ2ZXIgPT0gRkFMU0UpICYmIChkLT5mZCA9PSBmZCkpCisgICAgICAgICByZXR1cm4gZDsKKyAgICAgIGQgPSBkLT5uZXh0OworICAgfQorCisgICByZXR1cm4gTlVMTDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQUkUvUE9TVCB3cmFwcGVycyBmb3IgU29sYXJpcy1zcGVjaWZpYyBzeXNjYWxscworICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyNkZWZpbmUgUFJFKG5hbWUpICAgICAgIERFRk5fUFJFX1RFTVBMQVRFKHNvbGFyaXMsIG5hbWUpCisjZGVmaW5lIFBPU1QobmFtZSkgICAgICBERUZOX1BPU1RfVEVNUExBVEUoc29sYXJpcywgbmFtZSkKKworLyogcHJvdG90eXBlcyAqLworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfZXhpdCk7CisjaWYgZGVmaW5lZChTT0xBUklTX1NQQVdOX1NZU0NBTEwpCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zcGF3bik7CisjZW5kaWYgLyogU09MQVJJU19TUEFXTl9TWVNDQUxMICovCisjaWYgZGVmaW5lZChTT0xBUklTX09MRF9TWVNDQUxMUykKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX29wZW4pOworI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19jbG9zZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19saW5rYXQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc3ltbGlua2F0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3RpbWUpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfYnJrKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3N0YXQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbHNlZWspOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbW91bnQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfcmVhZGxpbmthdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zdGltZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19mc3RhdCk7CisjaWYgZGVmaW5lZChTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTEwpCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19mcmVhbHBhdGhhdCk7CisjZW5kaWYgLyogU09MQVJJU19GUkVBTFBBVEhBVF9TWVNDQUxMICovCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zdHR5KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2d0dHkpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfcGdycHN5cyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19waXBlKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2ZhY2Nlc3NhdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19ta25vZGF0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3N5c2k4Nik7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zaG1zeXMpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc2Vtc3lzKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2lvY3RsKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2ZjaG93bmF0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2Zkc3luYyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19leGVjdmUpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfZmNudGwpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfcmVuYW1lYXQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfdW5saW5rYXQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfZnN0YXRhdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19vcGVuYXQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfdGFza3N5cyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19nZXRwYWdlc2l6ZXMpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbHdwX3BhcmspOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc2VuZGZpbGV2KTsKKyNpZiBkZWZpbmVkKFNPTEFSSVNfTFdQX05BTUVfU1lTQ0FMTCkKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9uYW1lKTsKKyNlbmRpZiAvKiBTT0xBUklTX0xXUF9OQU1FX1NZU0NBTEwgKi8KK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3ByaXZzeXMpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfdWNyZWRzeXMpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfZ2V0bXNnKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3B1dG1zZyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19sc3RhdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zaWdwcm9jbWFzayk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zaWdhY3Rpb24pOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc2lncGVuZGluZyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19nZXRzZXRjb250ZXh0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2ZjaG1vZGF0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX21rZGlyYXQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc3RhdHZmcyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19mc3RhdHZmcyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19uZnNzeXMpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfd2FpdGlkKTsKKyNpZiBkZWZpbmVkKFNPTEFSSVNfVVRJTUVTWVNfU1lTQ0FMTCkKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3V0aW1lc3lzKTsKKyNlbmRpZiAvKiBTT0xBUklTX1VUSU1FU1lTX1NZU0NBTEwgKi8KKyNpZiBkZWZpbmVkKFNPTEFSSVNfVVRJTUVOU0FUX1NZU0NBTEwpCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c191dGltZW5zYXQpOworI2VuZGlmIC8qIFNPTEFSSVNfVVRJTUVOU0FUX1NZU0NBTEwgKi8KK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3NpZ3Jlc2VuZCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19wcmlvY250bHN5cyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19wYXRoY29uZik7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19tbWFwKTsKKyNpZiBkZWZpbmVkKFNPTEFSSVNfVVVJRFNZU19TWVNDQUxMKQorREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfdXVpZHN5cyk7CisjZW5kaWYgLyogU09MQVJJU19VVUlEU1lTX1NZU0NBTEwgKi8KK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX21tYXBvYmopOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbWVtY250bCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19nZXRwbXNnKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3B1dHBtc2cpOworI2lmIGRlZmluZWQoU09MQVJJU19PTERfU1lTQ0FMTFMpCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19yZW5hbWUpOworI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c191bmFtZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zZXRlZ2lkKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3N5c2NvbmZpZyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zeXN0ZW1pbmZvKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3NldGV1aWQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfZm9ya3N5cyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zaWd0aW1lZHdhaXQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfeWllbGQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbHdwX3NlbWFfcG9zdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19sd3Bfc2VtYV90cnl3YWl0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9kZXRhY2gpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfZmNocm9vdCk7CisjaWYgZGVmaW5lZChTT0xBUklTX1NZU1RFTV9TVEFUU19TWVNDQUxMKQorREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc3lzdGVtX3N0YXRzKTsKKyNlbmRpZiAvKiBTT0xBUklTX1NZU1RFTV9TVEFUU19TWVNDQUxMICovCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19nZXR0aW1lb2ZkYXkpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbHdwX2NyZWF0ZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19sd3BfZXhpdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19sd3Bfc3VzcGVuZCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19sd3BfY29udGludWUpOworI2lmIGRlZmluZWQoU09MQVJJU19MV1BfU0lHUVVFVUVfU1lTQ0FMTCkKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9zaWdxdWV1ZSk7CisjZWxzZQorREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbHdwX2tpbGwpOworI2VuZGlmIC8qIFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwgKi8KK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9zZWxmKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9zaWdtYXNrKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9wcml2YXRlKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF93YWl0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9tdXRleF93YWtldXApOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbHdwX2NvbmRfd2FpdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19sd3BfY29uZF9icm9hZGNhc3QpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfcHJlYWQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfcHdyaXRlKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3J1c2FnZXN5cyk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19wb3J0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3BvbGxzeXMpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbGFiZWxzeXMpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfYWNsKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2F1ZGl0c3lzKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3Bfb25saW5lKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3NpZ3F1ZXVlKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2Nsb2NrX2dldHRpbWUpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfY2xvY2tfc2V0dGltZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19jbG9ja19nZXRyZXMpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfdGltZXJfY3JlYXRlKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3RpbWVyX2RlbGV0ZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c190aW1lcl9zZXR0aW1lKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3RpbWVyX2dldHRpbWUpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfdGltZXJfZ2V0b3ZlcnJ1bik7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19mYWNsKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2Rvb3IpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc2NoZWRjdGwpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfcHNldCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19yZXNvbHZlcGF0aCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19sd3BfbXV0ZXhfdGltZWRsb2NrKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9yd2xvY2tfc3lzKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2x3cF9zZW1hX3RpbWVkd2FpdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c196b25lKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2dldGN3ZCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zb19zb2NrZXQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc29fc29ja2V0cGFpcik7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19iaW5kKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX2xpc3Rlbik7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19hY2NlcHQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfY29ubmVjdCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zaHV0ZG93bik7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19yZWN2KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3JlY3Zmcm9tKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3JlY3Ztc2cpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfc2VuZCk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19zZW5kbXNnKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3NlbmR0byk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19nZXRwZWVybmFtZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19nZXRzb2NrbmFtZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c19nZXRzb2Nrb3B0KTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3NldHNvY2tvcHQpOworREVDTF9URU1QTEFURShzb2xhcmlzLCBzeXNfbHdwX211dGV4X3JlZ2lzdGVyKTsKK0RFQ0xfVEVNUExBVEUoc29sYXJpcywgc3lzX3V1Y29weSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIHN5c191bW91bnQyKTsKKworREVDTF9URU1QTEFURShzb2xhcmlzLCBmYXN0X2dldGhydGltZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIGZhc3RfZ2V0aHJ2dGltZSk7CitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIGZhc3RfZ2V0aHJlc3RpbWUpOworI2lmIGRlZmluZWQoU09MQVJJU19HRVRIUlRfRkFTVFRSQVApCitERUNMX1RFTVBMQVRFKHNvbGFyaXMsIGZhc3RfZ2V0aHJ0KTsKKyNlbmRpZiAvKiBTT0xBUklTX0dFVEhSVF9GQVNUVFJBUCAqLworI2lmIGRlZmluZWQoU09MQVJJU19HRVRaT05FT0ZGU0VUX0ZBU1RUUkFQKQorREVDTF9URU1QTEFURShzb2xhcmlzLCBmYXN0X2dldHpvbmVvZmZzZXQpOworI2VuZGlmIC8qIFNPTEFSSVNfR0VUWk9ORU9GRlNFVF9GQVNUVFJBUCAqLworCisvKiBpbXBsZW1lbnRhdGlvbiAqLworUFJFKHN5c19leGl0KQoreworICAgLyogdm9pZCBleGl0KGludCBzdGF0dXMpOyAqLworICAgVGhyZWFkSWQgdDsKKworICAgUFJJTlQoInN5c19leGl0KCAlbGQgKSIsIFNBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEodm9pZCwgImV4aXQiLCBpbnQsIHN0YXR1cyk7CisKKyAgIGZvciAodCA9IDE7IHQgPCBWR19OX1RIUkVBRFM7IHQrKykgeworICAgICAgaWYgKFZHXyh0aHJlYWRzKVt0XS5zdGF0dXMgPT0gVmdUc19FbXB0eSkKKyAgICAgICAgIGNvbnRpbnVlOworCisgICAgICBWR18odGhyZWFkcylbdF0uZXhpdHJlYXNvbiA9IFZnU3JjX0V4aXRQcm9jZXNzOworICAgICAgVkdfKHRocmVhZHMpW3RdLm9zX3N0YXRlLmV4aXRjb2RlID0gQVJHMTsKKworICAgICAgLyogVW5ibG9jayBpdCwgaWYgYmxvY2tlZC4gKi8KKyAgICAgIGlmICh0ICE9IHRpZCkKKyAgICAgICAgIFZHXyhnZXRfdGhyZWFkX291dF9vZl9zeXNjYWxsKSh0KTsKKyAgIH0KKworICAgLyogV2UgaGF2ZSB0byBjbGFpbSB0aGUgc3lzY2FsbCBhbHJlYWR5IHN1Y2NlZWRlZC4gKi8KKyAgIFNFVF9TVEFUVVNfU3VjY2VzcygwKTsKK30KKworI2lmIGRlZmluZWQoU09MQVJJU19TUEFXTl9TWVNDQUxMKQorc3RhdGljIEJvb2wgc3Bhd25fcHJlX2NoZWNrX2tmYShUaHJlYWRJZCB0aWQsIFN5c2NhbGxTdGF0dXMgKnN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmtpX2tmaWxlX2F0dHJfdCAqa2ZhKQoreworICAgUFJFX0ZJRUxEX1JFQUQoInNwYXduKGF0dHJzLT5rZmFfc2l6ZSkiLCBrZmEtPmtmYV9zaXplKTsKKyAgIFBSRV9GSUVMRF9SRUFEKCJzcGF3bihhdHRycy0+a2ZhX3R5cGUpIiwga2ZhLT5rZmFfdHlwZSk7CisKKyAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoa2ZhLCBrZmEtPmtmYV9zaXplKSkgeworICAgICAgc3dpdGNoIChrZmEtPmtmYV90eXBlKSB7CisgICAgICBjYXNlIFZLSV9GQV9EVVAyOgorICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoInNwYXduKGF0dHJzLT5rZmFfZmlsZWRlcykiLCBrZmEtPmtmYV9maWxlZGVzKTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJzcGF3bihhdHRycy0+a2ZhX25ld2ZpbGVkZXMpIiwga2ZhLT5rZmFfbmV3ZmlsZWRlcyk7CisgICAgICAgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShrZmEtPmtmYV9maWxlZGVzLCAic3Bhd24oZHVwMikiLCB0aWQsIEZhbHNlKSB8fAorICAgICAgICAgICAgICFNTF8oZmRfYWxsb3dlZCkoa2ZhLT5rZmFfbmV3ZmlsZWRlcywgInNwYXduKGR1cDIpIiwgdGlkLCBGYWxzZSkpIHsKKyAgICAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgICAgICAgICAgcmV0dXJuIEZhbHNlOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9GQV9DTE9TRToKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJzcGF3bihhdHRycy0+a2ZhX2ZpbGVkZXMpIiwga2ZhLT5rZmFfZmlsZWRlcyk7CisgICAgICAgICAvKiBJZiBkb2luZyAtZCBzdHlsZSBsb2dnaW5nICh3aGljaCBpcyB0byBmZCA9IDIgPSBzdGRlcnIpLAorICAgICAgICAgICAgZG9uJ3QgYWxsb3cgdGhhdCBmaWxlZGVzIHRvIGJlIGNsb3NlZC4gU2VlIE1MXyhmZF9hbGxvd2VkKSgpLiAqLworICAgICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoa2ZhLT5rZmFfZmlsZWRlcywgInNwYXduKGNsb3NlKSIsIHRpZCwgRmFsc2UpIHx8CisgICAgICAgICAgICAgKGtmYS0+a2ZhX2ZpbGVkZXMgPT0gMiAmJiBWR18oZGVidWdMb2dfZ2V0TGV2ZWwpKCkgPiAwKSkgeworICAgICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICAgICAgICByZXR1cm4gRmFsc2U7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0ZBX0NMT1NFRlJPTToKKyAgICAgICAgIC8qIDpUT0RPOiBBbGwgZmlsZSBkZXNjcmlwdG9ycyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgICAgICAgIGtmYS0+a2ZhX2ZpbGVkZXMgd291bGQgaGF2ZSB0byBiZSBjaGVja2VkLiAqLworICAgICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTdXBwb3J0IGZvciBzcGF3bigpIHdpdGggZmlsZSBhdHRyaWJ1dGUgdHlwZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZBX0NMT1NFRlJPTS4iKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfRkFfT1BFTjoKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJzcGF3bihhdHRycy0+a2ZhX2ZpbGVkZXMpIiwga2ZhLT5rZmFfZmlsZWRlcyk7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgic3Bhd24oYXR0cnMtPmtmYV9vZmxhZykiLCBrZmEtPmtmYV9vZmxhZyk7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgic3Bhd24oYXR0cnMtPmtmYV9tb2RlKSIsIGtmYS0+a2ZhX21vZGUpOworICAgICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoa2ZhLT5rZmFfZmlsZWRlcywgInNwYXduKG9wZW4pIiwgdGlkLCBGYWxzZSkpIHsKKyAgICAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgICAgICAgICAgcmV0dXJuIEZhbHNlOworICAgICAgICAgfQorICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgIGNhc2UgVktJX0ZBX0NIRElSOgorICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoInNwYXduKGF0dHJzLT5rZmFfcGF0aHNpemUpIiwga2ZhLT5rZmFfcGF0aHNpemUpOworICAgICAgICAgaWYgKGtmYS0+a2ZhX3BhdGhzaXplICE9IDApIHsKKyAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigic3Bhd24oYXR0cnMtPmtmYV9kYXRhKSIsIChBZGRyKSBrZmEtPmtmYV9kYXRhKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3VwcG9ydCBmb3Igc3Bhd24oKSB3aXRoIGZpbGUgYXR0cmlidXRlIHR5cGUgJXUuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZmEtPmtmYV90eXBlKTsKKyAgICAgIH0KKyAgIH0KKworICAgcmV0dXJuIFRydWU7Cit9CisKK1BSRShzeXNfc3Bhd24pCit7CisgICAvKiBpbnQgc3Bhd24oY2hhciAqcGF0aCwgdm9pZCAqYXR0cnMsIHNpemVfdCBhdHRyc2l6ZSwKKyAgICAgICAgICAgICAgICBjaGFyICphcmdlbnYsIHNpemVfdCBhZXNpemUpOyAqLworICAgUFJJTlQoInN5c19zcGF3biAoICUjbHgoJXMpLCAlI2x4LCAlbHUsICUjbHgsICVsdSApIiwKKyAgICAgICAgIEFSRzEsIChIQ2hhciAqKSBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKKyAgIFBSRV9SRUdfUkVBRDUobG9uZywgInNwYXduIiwgY29uc3QgY2hhciAqLCBwYXRoLCB2b2lkICosIGF0dHJzLAorICAgICAgICAgICAgICAgICBzaXplX3QsIGF0dHJzaXplLCBjaGFyICosIGFyZ2Vudiwgc2l6ZV90LCBhZXNpemUpOworCisgICAvKiBGaXJzdCBjaGVjayBpbnB1dCBhcmd1bWVudHMuICovCisgICBQUkVfTUVNX1JBU0NJSVooInNwYXduKHBhdGgpIiwgQVJHMSk7CisgICBpZiAoQVJHMyA+IDApIHsKKyAgICAgIC8qICAtLS0gdmtpX2tzcGF3bl9hdHRyX3QgLS0KKyAgICAgICAgICB8IGtzYV92ZXJzaW9uICAgICAgICAgIHwKKyAgICAgICAgICB8IGtzYV9zaXplICAgICAgICAgICAgIHwKKyAgICAgICAgICB8IGtzYV9hdHRyX29mZiAgICAgICAgIHwgIC0tLS0tfCAob25seSBpZiAhPSAwKQorICAgICAgICAgIHwga3NhX2F0dHJfc2l6ZSAgICAgICAgfCAgICAgICB8CisgICAgICAgICAgfCBrc2FfcGF0aF9vZmYgICAgICAgICB8ICA9PT09PXw9PT09fCAob25seSBpZiAhPSAwKQorICAgICAgICAgIHwga3NhX3BhdGhfc2l6ZSAgICAgICAgfCAgICAgICB8ICAgIHwKKyAgICAgICAgICB8IGtzYV9zaGVsbF9vZmYgICAgICAgIHwgIC0tLS0tfC0tLS18LS0tLXwgKG9ubHkgaWYgIT0gMCkKKyAgICAgICAgICB8IGtzYV9zaGVsbF9zaXplICAgICAgIHwgICAgICAgfCAgICB8ICAgIHwKKyAgICAgICAgICB8IGtzYV9kYXRhWzBdICAgICAgICAgIHwgICAgICAgfCAgICB8ICAgIHwKKyAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgfCAgICB8ICAgIHwKKyAgICAgICAgICB8IHZraV9zcGF3bl9hdHRyX3QgICAgIHwgIDwtLS0tfCAgICB8ICAgIHwKKyAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICB8ICAgIHwKKyAgICAgICAgICB8IHBhdGggICAgICAgICAgICAgICAgIHwgIDwtLS0tLS0tLS18ICAgIHwKKyAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICB8IHNoZWxsICAgICAgICAgICAgICAgIHwgIDwtLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICB8IGZpbGUgYWN0aW9ucyAgICAgICAgIHwgIChub3QgaW5jbHVkZWQgaW4ga3NhX3NpemUsIG9ubHkgaW4gQVJHMykKKyAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAgIGtzYV9zaXplID0gc2l6ZW9mKHZraV9rc3Bhd25fYXR0cl90KSArIGtzYV9hdHRyX3NpemUgKyBrc2FfcGF0aF9zaXplICsKKyAgICAgICAgICAgICAgICAgICAgIGtzYV9zaGVsbF9zaXplCisgICAgICAgICAgYXR0cnNfc2l6ZSAoQVJHMykgPSBrc2Ffc2l6ZSArIGZpbGUgYWN0aW9ucyBzaXplICovCisKKyAgICAgIHZraV9rc3Bhd25fYXR0cl90ICphdHRycyA9ICh2a2lfa3NwYXduX2F0dHJfdCAqKSBBUkcyOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInNwYXduKGF0dHJzLT5rc2FfdmVyc2lvbikiLCBhdHRycy0+a3NhX3ZlcnNpb24pOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInNwYXduKGF0dHJzLT5rc2Ffc2l6ZSkiLCBhdHRycy0+a3NhX3NpemUpOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInNwYXduKGF0dHJzLT5rc2FfYXR0cl9vZmYpIiwgYXR0cnMtPmtzYV9hdHRyX29mZik7CisgICAgICBQUkVfRklFTERfUkVBRCgic3Bhd24oYXR0cnMtPmtzYV9wYXRoX29mZikiLCBhdHRycy0+a3NhX3BhdGhfb2ZmKTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJzcGF3bihhdHRycy0+a3NhX3NoZWxsX29mZikiLCBhdHRycy0+a3NhX3NoZWxsX29mZik7CisKKyAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoYXR0cnMsIHNpemVvZih2a2lfa3NwYXduX2F0dHJfdCkpKSB7CisgICAgICAgICBpZiAoYXR0cnMtPmtzYV92ZXJzaW9uICE9IFZLSV9TUEFXTl9WRVJTSU9OKSB7CisgICAgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN1cHBvcnQgZm9yIHNwYXduKCkgd2l0aCBhdHRyaWJ1dGVzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVyc2lvbiAldS4iLCBhdHRycy0+a3NhX3ZlcnNpb24pOworICAgICAgICAgfQorCisgICAgICAgICBpZiAoYXR0cnMtPmtzYV9hdHRyX29mZiAhPSAwKSB7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgic3Bhd24oYXR0cnMtPmtzYV9hdHRyX3NpemUpIiwgYXR0cnMtPmtzYV9hdHRyX3NpemUpOworICAgICAgICAgICAgdmtpX3NwYXduX2F0dHJfdCAqc2FwID0KKyAgICAgICAgICAgICAgICAodmtpX3NwYXduX2F0dHJfdCAqKSAoKEFkZHIpIGF0dHJzICsgYXR0cnMtPmtzYV9hdHRyX29mZik7CisgICAgICAgICAgICBQUkVfTUVNX1JFQUQoInNwYXduKGF0dHJzLT5rc2FfYXR0cikiLAorICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSBzYXAsIGF0dHJzLT5rc2FfYXR0cl9zaXplKTsKKyAgICAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoc2FwLCBzaXplb2YodmtpX3NwYXduX2F0dHJfdCkpKSB7CisgICAgICAgICAgICAgICBpZiAoc2FwLT5zYV9wc2ZsYWdzICYgVktJX1BPU0lYX1NQQVdOX1NFVFZBTUFTS19OUCkgeworICAgICAgICAgICAgICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTdXBwb3J0IGZvciBzcGF3bigpIHdpdGggYXR0cmlidXRlcyBmbGFnICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5jbHVkaW5nIFBPU0lYX1NQQVdOX1NFVFZBTUFTS19OUC4iKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIC8qIHBhcmFub2lhICovCisgICAgICAgICAgICAgICBJbnQgcmVtID0gc2FwLT5zYV9wc2ZsYWdzICYgfigKKyAgICAgICAgICAgICAgICAgIFZLSV9QT1NJWF9TUEFXTl9SRVNFVElEUyAgICAgIHwgVktJX1BPU0lYX1NQQVdOX1NFVFBHUk9VUCB8CisgICAgICAgICAgICAgICAgICBWS0lfUE9TSVhfU1BBV05fU0VUU0lHREVGICAgICB8IFZLSV9QT1NJWF9TUEFXTl9TRVRTSUdNQVNLIHwKKyAgICAgICAgICAgICAgICAgIFZLSV9QT1NJWF9TUEFXTl9TRVRTQ0hFRFBBUkFNIHwgVktJX1BPU0lYX1NQQVdOX1NFVFNDSEVEVUxFUiB8CisgICAgICAgICAgICAgICAgICBWS0lfUE9TSVhfU1BBV05fU0VUU0lEX05QICAgICB8IFZLSV9QT1NJWF9TUEFXTl9TRVRWQU1BU0tfTlAgfAorICAgICAgICAgICAgICAgICAgVktJX1BPU0lYX1NQQVdOX1NFVFNJR0lHTl9OUCAgfCBWS0lfUE9TSVhfU1BBV05fTk9TSUdDSExEX05QIHwKKyAgICAgICAgICAgICAgICAgIFZLSV9QT1NJWF9TUEFXTl9XQUlUUElEX05QICAgIHwgVktJX1BPU0lYX1NQQVdOX05PRVhFQ0VSUl9OUCk7CisgICAgICAgICAgICAgICBpZiAocmVtICE9IDApIHsKKyAgICAgICAgICAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3VwcG9ydCBmb3Igc3Bhd24oKSB3aXRoIGF0dHJpYnV0ZXMgZmxhZyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiUjeC4iLCBzYXAtPnNhX3BzZmxhZ3MpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorCisgICAgICAgICBpZiAoYXR0cnMtPmtzYV9wYXRoX29mZiAhPSAwKSB7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgic3Bhd24oYXR0cnMtPmtzYV9wYXRoX3NpemUpIiwgYXR0cnMtPmtzYV9wYXRoX3NpemUpOworICAgICAgICAgICAgUFJFX01FTV9SQVNDSUlaKCJzcGF3bihhdHRycy0+a3NhX3BhdGgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgYXR0cnMgKyBhdHRycy0+a3NhX3BhdGhfb2ZmKTsKKyAgICAgICAgIH0KKworICAgICAgICAgaWYgKGF0dHJzLT5rc2Ffc2hlbGxfb2ZmICE9IDApIHsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJzcGF3bihhdHRycy0+a3NhX3NoZWxsX3NpemUpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzLT5rc2Ffc2hlbGxfc2l6ZSk7CisgICAgICAgICAgICBQUkVfTUVNX1JBU0NJSVooInNwYXduKGF0dHJzLT5rc2Ffc2hlbGwpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgYXR0cnMgKyBhdHRycy0+a3NhX3NoZWxsX29mZik7CisgICAgICAgICB9CisKKyAgICAgICAgIHZraV9rZmlsZV9hdHRyX3QgKmtmYSA9ICh2a2lfa2ZpbGVfYXR0cl90ICopIChBUkcyICsgYXR0cnMtPmtzYV9zaXplKTsKKyAgICAgICAgIHdoaWxlICgoQWRkcikga2ZhIDwgQVJHMiArIEFSRzMpIHsKKyAgICAgICAgICAgIGlmIChzcGF3bl9wcmVfY2hlY2tfa2ZhKHRpZCwgc3RhdHVzLCBrZmEpID09IEZhbHNlKSB7CisgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBrZmEgPSAodmtpX2tmaWxlX2F0dHJfdCAqKSAoKEFkZHIpIGtmYSArIGtmYS0+a2ZhX3NpemUpOworICAgICAgICAgfQorICAgICAgfQorICAgfQorICAgUFJFX01FTV9SRUFEKCJzcGF3bihhcmdlbnYpIiwgQVJHNCwgQVJHNSk7CisKKyAgIC8qIENoZWNrIHRoYXQgdGhlIG5hbWUgYXQgbGVhc3QgYmVnaW5zIGluIGNsaWVudC1hY2Nlc3NpYmxlIHN0b3JhZ2UuICovCisgICBpZiAoKEFSRzEgPT0gMCkgfHwgIU1MXyhzYWZlX3RvX2RlcmVmKSgoSENoYXIgKikgQVJHMSwgMSkpIHsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUZBVUxUKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgLyogQ2hlY2sgdGhhdCBhdHRycyByZXNpZGUgaW4gY2xpZW50LWFjY2Vzc2libGUgc3RvcmFnZS4gKi8KKyAgIGlmIChBUkcyICE9IDApIHsKKyAgICAgIGlmICghVkdfKGFtX2lzX3ZhbGlkX2Zvcl9jbGllbnQpKEFSRzIsIEFSRzMsIFZLSV9QUk9UX1JFQUQpKSB7CisgICAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VGQVVMVCk7CisgICAgICAgICByZXR1cm47CisgICAgICB9CisgICB9CisKKyAgIC8qIENoZWNrIHRoYXQgdGhlIGFyZ2VudiByZXNpZGUgaW4gY2xpZW50LWFjY2Vzc2libGUgc3RvcmFnZS4KKyAgICAgIFNvbGFyaXMgZGlzYWxsb3dzIHRvIHBlcmZvcm0gc3Bhd24oKSB3aXRob3V0IGFueSBhcmd1bWVudHMgJiBlbnZpcm9ubWVudAorICAgICAgdmFyaWFibGVzIHNwZWNpZmllZC4gKi8KKyAgIGlmICgoQVJHNCA9PSAwKSAvKiBvYnZpb3VzbHkgYm9ndXMgKi8gfHwKKyAgICAgICAhVkdfKGFtX2lzX3ZhbGlkX2Zvcl9jbGllbnQpKEFSRzQsIEFSRzUsIFZLSV9QUk9UX1JFQUQpKSB7CisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VGQVVMVCk7CisgICAgICByZXR1cm47CisgICB9CisKKyAgIC8qIENvcHkgZXhpc3RpbmcgYXR0cnMgb3IgY3JlYXRlIGVtcHR5IG1pbmltYWwgb25lcy4gKi8KKyAgIHZraV9rc3Bhd25fYXR0cl90ICphdHRyczsKKyAgIFNpemVUIGF0dHJzX3NpemU7CisgICBpZiAoQVJHMiA9PSAwKSB7CisgICAgICAvKiBtaW5pbWFsaXN0aWMga3NwYXduX2F0dHJfdCArIHNwYXduX2F0dHJfdCAqLworICAgICAgYXR0cnNfc2l6ZSA9IHNpemVvZih2a2lfa3NwYXduX2F0dHJfdCkgKyBzaXplb2YodmtpX3NwYXduX2F0dHJfdCk7CisgICAgICBhdHRycyA9IFZHXyhjYWxsb2MpKCJzeXN3cmFwLnNwYXduLjEiLCAxLCBhdHRyc19zaXplKTsKKyAgICAgIGF0dHJzLT5rc2FfdmVyc2lvbiA9IFZLSV9TUEFXTl9WRVJTSU9OOworICAgICAgYXR0cnMtPmtzYV9zaXplID0gYXR0cnNfc2l6ZTsKKyAgICAgIGF0dHJzLT5rc2FfYXR0cl9vZmYgPSBzaXplb2YodmtpX2tzcGF3bl9hdHRyX3QpOworICAgICAgYXR0cnMtPmtzYV9hdHRyX3NpemUgPSBzaXplb2YodmtpX3NwYXduX2F0dHJfdCk7CisgICB9IGVsc2UgaWYgKCgodmtpX2tzcGF3bl9hdHRyX3QgKikgQVJHMiktPmtzYV9hdHRyX29mZiA9PSAwKSB7CisgICAgICAvKiBleGlzdGluZyBrc3Bhd25fYXR0cl90IGJ1dCBtaXNzaW5nIHNwYXduX2F0dHJfdCAqLworICAgICAgYXR0cnNfc2l6ZSA9IEFSRzMgKyBzaXplb2YodmtpX3NwYXduX2F0dHJfdCk7CisgICAgICBhdHRycyA9IFZHXyhjYWxsb2MpKCJzeXN3cmFwLnNwYXduLjIiLCAxLCBhdHRyc19zaXplKTsKKyAgICAgIFZHXyhtZW1jcHkpKGF0dHJzLCAodm9pZCAqKSBBUkcyLCBzaXplb2YodmtpX2tzcGF3bl9hdHRyX3QpKTsKKyAgICAgIFNpemVUIGZpbGVfYWN0aW9uc19zaXplID0gQVJHMyAtIGF0dHJzLT5rc2Ffc2l6ZTsKKyAgICAgIGF0dHJzLT5rc2Ffc2l6ZSArPSBzaXplb2YodmtpX3NwYXduX2F0dHJfdCk7CisgICAgICBhdHRycy0+a3NhX2F0dHJfb2ZmID0gc2l6ZW9mKHZraV9rc3Bhd25fYXR0cl90KTsKKyAgICAgIGF0dHJzLT5rc2FfYXR0cl9zaXplID0gc2l6ZW9mKHZraV9zcGF3bl9hdHRyX3QpOworICAgICAgaWYgKGF0dHJzLT5rc2FfcGF0aF9vZmYgIT0gMCkgeworICAgICAgICAgVkdfKG1lbWNweSkoKEhDaGFyICopIGF0dHJzICsgYXR0cnMtPmtzYV9wYXRoX29mZiArCisgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmtpX3NwYXduX2F0dHJfdCksIChIQ2hhciAqKSBBUkcyICsKKyAgICAgICAgICAgICAgICAgICAgIGF0dHJzLT5rc2FfcGF0aF9vZmYsIGF0dHJzLT5rc2FfcGF0aF9zaXplKTsKKyAgICAgICAgIGF0dHJzLT5rc2FfcGF0aF9vZmYgKz0gc2l6ZW9mKHZraV9zcGF3bl9hdHRyX3QpOworICAgICAgfQorICAgICAgaWYgKGF0dHJzLT5rc2Ffc2hlbGxfb2ZmICE9IDApIHsKKyAgICAgICAgIFZHXyhtZW1jcHkpKChIQ2hhciAqKSBhdHRycyArIGF0dHJzLT5rc2Ffc2hlbGxfb2ZmICsKKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2a2lfc3Bhd25fYXR0cl90KSwgKEhDaGFyICopIEFSRzIgKworICAgICAgICAgICAgICAgICAgICAgYXR0cnMtPmtzYV9zaGVsbF9vZmYsIGF0dHJzLT5rc2Ffc2hlbGxfc2l6ZSk7CisgICAgICAgICBhdHRycy0+a3NhX3NoZWxsX29mZiArPSBzaXplb2YodmtpX3NwYXduX2F0dHJfdCk7CisgICAgICB9CisgICAgICBpZiAoZmlsZV9hY3Rpb25zX3NpemUgPiAwKSB7CisgICAgICAgICBWR18obWVtY3B5KSgoSENoYXIgKikgYXR0cnMgKyBhdHRyc19zaXplIC0gZmlsZV9hY3Rpb25zX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAoSENoYXIgKikgQVJHMiArIEFSRzMgLSBmaWxlX2FjdGlvbnNfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVfYWN0aW9uc19zaXplKTsKKyAgICAgIH0KKyAgIH0gZWxzZSB7CisgICAgICAvKiBleGlzdGluZyBrc3Bhd25fYXR0cl90ICsgc3Bhd25fYXR0cl90ICovCisgICAgICBhdHRyc19zaXplID0gQVJHMzsKKyAgICAgIGF0dHJzID0gVkdfKG1hbGxvYykoInN5c3dyYXAuc3Bhd24uMyIsIGF0dHJzX3NpemUpOworICAgICAgVkdfKG1lbWNweSkoYXR0cnMsICh2b2lkICopIEFSRzIsIGF0dHJzX3NpemUpOworICAgfQorICAgdmtpX3NwYXduX2F0dHJfdCAqc3BhID0gKHZraV9zcGF3bl9hdHRyX3QgKikgKChIQ2hhciAqKSBhdHRycyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnMtPmtzYV9hdHRyX29mZik7CisKKyAgIC8qIENvbnZlcnQgYXJndiBhbmQgZW52cCBwYXJ0cyBvZiBhcmdlbnYgaW50byB0aGVpciBzZXBhcmF0ZSBYQXJyYXkncy4KKyAgICAgIER1cGxpY2F0ZSBzdHJpbmdzIGJlY2F1c2UgYXJndiBhbmQgZW52cCB3aWxsIGJlIHRoZW4gbW9kaWZpZWQuICovCisgICBYQXJyYXkgKmFyZ3YgPSBWR18obmV3WEEpKFZHXyhtYWxsb2MpLCAic3lzd3JhcC5zcGF3bi40IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfKGZyZWUpLCBzaXplb2YoSENoYXIgKikpOworICAgWEFycmF5ICplbnZwID0gVkdfKG5ld1hBKShWR18obWFsbG9jKSwgInN5c3dyYXAuc3Bhd24uNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhmcmVlKSwgc2l6ZW9mKEhDaGFyICopKTsKKworICAgSENoYXIgKmFyZ2VudiA9IChIQ2hhciAqKSBBUkc0OworICAgWEFycmF5ICpjdXJyZW50X3hhID0gYXJndjsKKyAgIHdoaWxlICgoQWRkcikgYXJnZW52IDwgQVJHNCArIEFSRzUpIHsKKyAgICAgIGlmICgqYXJnZW52ID09ICdcMCcpIHsKKyAgICAgICAgIGFyZ2VudiArPSAxOworICAgICAgICAgaWYgKGN1cnJlbnRfeGEgPT0gYXJndikgeworICAgICAgICAgICAgY3VycmVudF94YSA9IGVudnA7CisgICAgICAgICAgICBpZiAoKCphcmdlbnYgPT0gJ1wwJykgJiYgKChBZGRyKSBhcmdlbnYgPT0gQVJHNCArIEFSRzUgLSAxKSkgeworICAgICAgICAgICAgICAgLyogZW52cCBwYXJ0IGlzIGVtcHR5LCBpdCBjb250YWluZWQgb25seSB7TlVMTH0uICovCisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoKEFkZHIpIGFyZ2VudiAhPSBBUkc0ICsgQVJHNSkgeworICAgICAgICAgICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwgInNwYXduOiBib2d1cyBhcmdlbnZcbiIpOworICAgICAgICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGlmICgqYXJnZW52ICE9ICdcMScpIHsKKyAgICAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJzcGF3bjogYm9ndXMgYXJnZW52XG4iKTsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUlOVkFMKTsKKyAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgIH0KKyAgICAgIGFyZ2VudiArPSAxOworCisgICAgICBIQ2hhciAqZHVwbGljYXRlID0gVkdfKHN0cmR1cCkoInN5c3dyYXAuc3Bhd24uNiIsIGFyZ2Vudik7CisgICAgICBWR18oYWRkVG9YQSkoY3VycmVudF94YSwgJmR1cGxpY2F0ZSk7CisgICAgICBhcmdlbnYgKz0gVkdfKHN0cmxlbikoYXJnZW52KSArIDE7CisgICB9CisKKyAgIC8qIERlYnVnLW9ubHkgcHJpbnRpbmcuICovCisgICBpZiAoMCkgeworICAgICAgVkdfKHByaW50ZikoIlxuQVJHMSA9ICUjbHgoJXMpXG4iLCBBUkcxLCAoSENoYXIgKikgQVJHMSk7CisgICAgICBWR18ocHJpbnRmKSgiQVJHNCAoYXJndikgPSAiKTsKKyAgICAgIGZvciAoV29yZCBpID0gMDsgaSA8IFZHXyhzaXplWEEpKGFyZ3YpOyBpKyspIHsKKyAgICAgICAgIFZHXyhwcmludGYpKCIlcyAiLCAqKEhDaGFyICoqKSBWR18oaW5kZXhYQSkoYXJndiwgaSkpOworICAgICAgfQorCisgICAgICBWR18ocHJpbnRmKSgiXG5BUkc0IChlbnZwKSA9ICIpOworICAgICAgZm9yIChXb3JkIGkgPSAwOyBpIDwgVkdfKHNpemVYQSkoZW52cCk7IGkrKykgeworICAgICAgICAgVkdfKHByaW50ZikoIiVzICIsICooSENoYXIgKiopIFZHXyhpbmRleFhBKShlbnZwLCBpKSk7CisgICAgICB9CisgICAgICBWR18ocHJpbnRmKSgiXG4iKTsKKyAgIH0KKworICAgLyogRGVjaWRlIHdoZXRoZXIgb3Igbm90IHdlIHdhbnQgdG8gdHJhY2UgdGhlIHNwYXduZWQgY2hpbGQuCisgICAgICBPbWl0IHRoZSBleGVjdXRhYmxlIG5hbWUgaXRzZWxmIGZyb20gY2hpbGRfYXJndi4gKi8KKyAgIGNvbnN0IEhDaGFyICoqY2hpbGRfYXJndiA9IFZHXyhtYWxsb2MpKCJzeXN3cmFwLnNwYXduLjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWR18oc2l6ZVhBKShhcmd2KSAtIDEpICogc2l6ZW9mKEhDaGFyICopKTsKKyAgIGZvciAoV29yZCBpID0gMTsgaSA8IFZHXyhzaXplWEEpKGFyZ3YpOyBpKyspIHsKKyAgICAgIGNoaWxkX2FyZ3ZbaSAtIDFdID0gKihIQ2hhciAqKikgVkdfKGluZGV4WEEpKGFyZ3YsIGkpOworICAgfQorICAgQm9vbCB0cmFjZV90aGlzX2NoaWxkID0gVkdfKHNob3VsZF93ZV90cmFjZV90aGlzX2NoaWxkKSgoSENoYXIgKikgQVJHMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRfYXJndik7CisgICBWR18oZnJlZSkoY2hpbGRfYXJndik7CisKKyAgIC8qIElmIHdlJ3JlIHRyYWNpbmcgdGhlIGNoaWxkLCBhbmQgdGhlIGxhdW5jaGVyIG5hbWUgbG9va3MgYm9ndXMgKHBvc3NpYmx5CisgICAgICBiZWNhdXNlIGxhdW5jaGVyLmMgY291bGRuJ3QgZmlndXJlIGl0IG91dCwgc2VlIGNvbW1lbnRzIHRoZXJlaW4pIHRoZW4gd2UKKyAgICAgIGhhdmUgbm8gb3B0aW9uIGJ1dCB0byBmYWlsLiAqLworICAgaWYgKHRyYWNlX3RoaXNfY2hpbGQgJiYKKyAgICAgICAoIVZHXyhuYW1lX29mX2xhdW5jaGVyKSB8fCBWR18obmFtZV9vZl9sYXVuY2hlcilbMF0gIT0gJy8nKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQ0hJTEQpOyAvKiAiTm8gY2hpbGQgcHJvY2Vzc2VzLiIgKi8KKyAgICAgIGdvdG8gZXhpdDsKKyAgIH0KKworICAgLyogU2V0IHVwIHRoZSBjaGlsZCdzIGV4ZSBwYXRoLiAqLworICAgY29uc3QgSENoYXIgKnBhdGggPSAoY29uc3QgSENoYXIgKikgQVJHMTsKKyAgIGNvbnN0IEhDaGFyICpsYXVuY2hlcl9iYXNlbmFtZSA9IE5VTEw7CisgICBpZiAodHJhY2VfdGhpc19jaGlsZCkgeworICAgICAgLyogV2Ugd2FudCB0byBleGVjIHRoZSBsYXVuY2hlci4gKi8KKyAgICAgIHBhdGggPSBWR18obmFtZV9vZl9sYXVuY2hlcik7CisgICAgICB2Z19hc3NlcnQocGF0aCAhPSBOVUxMKTsKKworICAgICAgbGF1bmNoZXJfYmFzZW5hbWUgPSBWR18oc3RycmNocikocGF0aCwgJy8nKTsKKyAgICAgIGlmICgobGF1bmNoZXJfYmFzZW5hbWUgPT0gTlVMTCkgfHwgKGxhdW5jaGVyX2Jhc2VuYW1lWzFdID09ICdcMCcpKSB7CisgICAgICAgICBsYXVuY2hlcl9iYXNlbmFtZSA9IHBhdGg7ICAvKiBobW0sIHRyZXMgZHViaW91cyAqLworICAgICAgfSBlbHNlIHsKKyAgICAgICAgIGxhdW5jaGVyX2Jhc2VuYW1lKys7CisgICAgICB9CisgICB9CisKKyAgIC8qIFNldCB1cCB0aGUgY2hpbGQncyBlbnZpcm9ubWVudC4KKworICAgICAgUmVtb3ZlIHRoZSB2YWxncmluZC1zcGVjaWZpYyBzdHVmZiBmcm9tIHRoZSBlbnZpcm9ubWVudCBzbyB0aGUgY2hpbGQKKyAgICAgIGRvZXNuJ3QgZ2V0IHZncHJlbG9hZF9jb3JlLnNvLCB2Z3ByZWxvYWRfPHRvb2w+LnNvLCBldGMuIFRoaXMgaXMgZG9uZQorICAgICAgdW5jb25kaXRpb25hbGx5LCBzaW5jZSBpZiB3ZSBhcmUgdHJhY2luZyB0aGUgY2hpbGQsIHRoZSBjaGlsZCB2YWxncmluZAorICAgICAgd2lsbCBzZXQgdXAgdGhlIGFwcHJvcHJpYXRlIGNsaWVudCBlbnZpcm9ubWVudC4KKworICAgICAgVGhlbiwgaWYgdHJhY2luZyB0aGUgY2hpbGQsIHNldCBWQUxHUklORF9MSUIgZm9yIGl0LiAqLworICAgSENoYXIgKipjaGlsZF9lbnZwID0gVkdfKGNhbGxvYykoInN5c3dyYXAuc3Bhd24uOCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWR18oc2l6ZVhBKShlbnZwKSArIDEsIHNpemVvZihIQ2hhciAqKSk7CisgICBmb3IgKFdvcmQgaSA9IDA7IGkgPCBWR18oc2l6ZVhBKShlbnZwKTsgaSsrKSB7CisgICAgICBjaGlsZF9lbnZwW2ldID0gKihIQ2hhciAqKikgVkdfKGluZGV4WEEpKGVudnAsIGkpOworICAgfQorICAgVkdfKGVudl9yZW1vdmVfdmFsZ3JpbmRfZW52X3N0dWZmKShjaGlsZF9lbnZwLCAvKiByb19zdHJpbmdzICovIEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWR18oZnJlZSkpOworCisgICAvKiBTdHVmZiB3YXMgcmVtb3ZlZCBmcm9tIGNoaWxkX2VudnAsIHJlZmxlY3QgdGhhdCBpbiBlbnZwIFhBcnJheS4gKi8KKyAgIFZHXyhkcm9wVGFpbFhBKShlbnZwLCBWR18oc2l6ZVhBKShlbnZwKSk7CisgICBmb3IgKFVJbnQgaSA9IDA7IGNoaWxkX2VudnBbaV0gIT0gTlVMTDsgaSsrKSB7CisgICAgICBWR18oYWRkVG9YQSkoZW52cCwgJmNoaWxkX2VudnBbaV0pOworICAgfQorICAgVkdfKGZyZWUpKGNoaWxkX2VudnApOworCisgICBpZiAodHJhY2VfdGhpc19jaGlsZCkgeworICAgICAgLyogU2V0IFZBTEdSSU5EX0xJQiBpbiBlbnZwLiAqLworICAgICAgU2l6ZVQgbGVuID0gVkdfKHN0cmxlbikoVkFMR1JJTkRfTElCKSArIFZHXyhzdHJsZW4pKFZHXyhsaWJkaXIpKSArIDI7CisgICAgICBIQ2hhciAqdmFsc3RyID0gVkdfKG1hbGxvYykoInN5c3dyYXAuc3Bhd24uOSIsIGxlbik7CisgICAgICBWR18oc3ByaW50ZikodmFsc3RyLCAiJXM9JXMiLCBWQUxHUklORF9MSUIsIFZHXyhsaWJkaXIpKTsKKyAgICAgIFZHXyhhZGRUb1hBKShlbnZwLCAmdmFsc3RyKTsKKyAgIH0KKworICAgLyogU2V0IHVwIHRoZSBjaGlsZCdzIGFyZ3MuIElmIG5vdCB0cmFjaW5nIGl0LCB0aGV5IGFyZSBsZWZ0IHVudG91Y2hlZC4KKyAgICAgIE90aGVyd2lzZSwgdGhleSBhcmU6CisKKyAgICAgIFtsYXVuY2hlcl9iYXNlbmFtZV0gKysgVkdfKGFyZ3NfZm9yX3ZhbGdyaW5kKSArKyBbQVJHMV0gKysgQVJHNFsxLi5dLAorCisgICAgICBleGNlcHQgdGhhdCB0aGUgZmlyc3QgVkdfKGFyZ3NfZm9yX3ZhbGdyaW5kX25vZXhlY3Bhc3MpIGFyZ3MgYXJlCisgICAgICBvbWl0dGVkLiAqLworICAgaWYgKHRyYWNlX3RoaXNfY2hpbGQpIHsKKyAgICAgIHZnX2Fzc2VydChWR18oYXJnc19mb3JfdmFsZ3JpbmQpICE9IE5VTEwpOworICAgICAgdmdfYXNzZXJ0KFZHXyhhcmdzX2Zvcl92YWxncmluZF9ub2V4ZWNwYXNzKSA+PSAwKTsKKyAgICAgIHZnX2Fzc2VydChWR18oYXJnc19mb3JfdmFsZ3JpbmRfbm9leGVjcGFzcykKKyAgICAgICAgICAgICAgICAgICA8PSBWR18oc2l6ZVhBKShWR18oYXJnc19mb3JfdmFsZ3JpbmQpKSk7CisKKyAgICAgIC8qIFNvIHdoYXQgYXJncyB3aWxsIHRoZXJlIGJlPyBCZWFyIHdpdGggbWUuLi4gKi8KKyAgICAgIC8qIC4uLiBsYXVuY2hlciBiYXNlbmFtZSwgLi4uICovCisgICAgICBIQ2hhciAqZHVwbGljYXRlID0gVkdfKHN0cmR1cCkoInN5c3dyYXAuc3Bhd24uMTAiLCBsYXVuY2hlcl9iYXNlbmFtZSk7CisgICAgICBWR18oaW5zZXJ0SW5kZXhYQSkoYXJndiwgMCwgJmR1cGxpY2F0ZSk7CisKKyAgICAgIC8qIC4uLiBWYWxncmluZCdzIGFyZ3MsIC4uLiAqLworICAgICAgVUludCB2X2FyZ3MgPSBWR18oc2l6ZVhBKShWR18oYXJnc19mb3JfdmFsZ3JpbmQpKTsKKyAgICAgIHZfYXJncyAtPSBWR18oYXJnc19mb3JfdmFsZ3JpbmRfbm9leGVjcGFzcyk7CisgICAgICBmb3IgKFdvcmQgaSA9IFZHXyhhcmdzX2Zvcl92YWxncmluZF9ub2V4ZWNwYXNzKTsKKyAgICAgICAgICAgaSA8IFZHXyhzaXplWEEpKFZHXyhhcmdzX2Zvcl92YWxncmluZCkpOyBpKyspIHsKKyAgICAgICAgIGR1cGxpY2F0ZSA9IFZHXyhzdHJkdXApKCJzeXN3cmFwLnNwYXduLjExIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICooSENoYXIgKiopIFZHXyhpbmRleFhBKShWR18oYXJnc19mb3JfdmFsZ3JpbmQpLCBpKSk7CisgICAgICAgICBWR18oaW5zZXJ0SW5kZXhYQSkoYXJndiwgMSArIGksICZkdXBsaWNhdGUpOworICAgICAgfQorCisgICAgICAvKiAuLi4gbmFtZSBvZiBjbGllbnQgZXhlY3V0YWJsZSwgLi4uICovCisgICAgICBkdXBsaWNhdGUgPSBWR18oc3RyZHVwKSgic3lzd3JhcC5zcGF3bi4xMiIsIChIQ2hhciAqKSBBUkcxKTsKKyAgICAgIFZHXyhpbnNlcnRJbmRleFhBKShhcmd2LCAxICsgdl9hcmdzLCAmZHVwbGljYXRlKTsKKworICAgICAgLyogLi4uIGFuZCBhcmdzIGZvciBjbGllbnQgZXhlY3V0YWJsZSAod2l0aG91dCBbMF0pLiAqLworICAgICAgZHVwbGljYXRlID0gKihIQ2hhciAqKikgVkdfKGluZGV4WEEpKGFyZ3YsIDEgKyB2X2FyZ3MgKyAxKTsKKyAgICAgIFZHXyhmcmVlKShkdXBsaWNhdGUpOworICAgICAgVkdfKHJlbW92ZUluZGV4WEEpKGFyZ3YsIDEgKyB2X2FyZ3MgKyAxKTsKKyAgIH0KKworICAgLyogRGVidWctb25seSBwcmludGluZy4gKi8KKyAgIGlmICgwKSB7CisgICAgICBWR18ocHJpbnRmKSgiXG5wYXRoID0gJXNcbiIsIHBhdGgpOworICAgICAgVkdfKHByaW50ZikoImFyZ3YgPSAiKTsKKyAgICAgIGZvciAoV29yZCBpID0gMDsgaSA8IFZHXyhzaXplWEEpKGFyZ3YpOyBpKyspIHsKKyAgICAgICAgIFZHXyhwcmludGYpKCIlcyAiLCAqKEhDaGFyICoqKSBWR18oaW5kZXhYQSkoYXJndiwgaSkpOworICAgICAgfQorCisgICAgICBWR18ocHJpbnRmKSgiXG5lbnZwID0gIik7CisgICAgICBmb3IgKFdvcmQgaSA9IDA7IGkgPCBWR18oc2l6ZVhBKShlbnZwKTsgaSsrKSB7CisgICAgICAgICBWR18ocHJpbnRmKSgiJXMgIiwgKihIQ2hhciAqKikgVkdfKGluZGV4WEEpKGVudnAsIGkpKTsKKyAgICAgIH0KKyAgICAgIFZHXyhwcmludGYpKCJcbiIpOworICAgfQorCisgICAvKiBTZXQgdGhlIHNpZ25hbCBzdGF0ZSB1cCBmb3Igc3Bhd25lZCBjaGlsZC4KKworICAgICAgU2lnbmFscyBzZXQgdG8gYmUgY2F1Z2h0IGFyZSBlcXVpdmFsZW50IHRvIHNpZ25hbHMgc2V0IHRvIHRoZSBkZWZhdWx0CisgICAgICBhY3Rpb24sIGZyb20gdGhlIGNoaWxkJ3MgcGVyc3BlY3RpdmUuCisKKyAgICAgIFRoZXJlZm9yZSBxdWVyeSBTQ1NTIGFuZCBwcmVwYXJlIGRlZmF1bHQgKERGTCkgYW5kIGlnbm9yZSAoSUdOKSBzaWduYWwKKyAgICAgIHNldHMuIFRoZW4gY29tYmluZSB0aGVzZSBzZXRzIHdpdGggdGhvc2UgcGFzc2VkIGZyb20gY2xpZW50LCBpZiBmbGFncworICAgICAgUE9TSVhfU1BBV05fU0VUU0lHREVGLCBvciBQT1NJWF9TUEFXTl9TRVRTSUdJR05fTlAgaGF2ZSBiZWVuIHNwZWNpZmllZC4KKyAgICovCisgICB2a2lfc2lnc2V0X3Qgc2lnX2RlZmF1bHQ7CisgICB2a2lfc2lnc2V0X3Qgc2lnX2lnbm9yZTsKKyAgIFZHXyhzaWdlbXB0eXNldCkoJnNpZ19kZWZhdWx0KTsKKyAgIFZHXyhzaWdlbXB0eXNldCkoJnNpZ19pZ25vcmUpOworICAgZm9yIChJbnQgaSA9IDE7IGkgPCBWR18obWF4X3NpZ25hbCk7IGkrKykgeworICAgICAgdmtpX3NpZ2FjdGlvbl9mcm9tS190IHNhOworICAgICAgVkdfKGRvX3N5c19zaWdhY3Rpb24pKGksIE5VTEwsICZzYSk7IC8qIHF1ZXJ5IFNDU1MgKi8KKyAgICAgIGlmIChzYS5zYV9oYW5kbGVyID09IFZLSV9TSUdfSUdOKSB7CisgICAgICAgICBWR18oc2lnYWRkc2V0KSgmc2lnX2lnbm9yZSwgaSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgVkdfKHNpZ2FkZHNldCkoJnNpZ19kZWZhdWx0LCBpKTsKKyAgICAgIH0KKyAgIH0KKworICAgaWYgKHNwYS0+c2FfcHNmbGFncyAmIFZLSV9QT1NJWF9TUEFXTl9TRVRTSUdERUYpIHsKKyAgICAgIFZHXyhzaWdhZGRzZXRfZnJvbV9zZXQpKCZzcGEtPnNhX3NpZ2RlZmF1bHQsICZzaWdfZGVmYXVsdCk7CisgICB9IGVsc2UgeworICAgICAgc3BhLT5zYV9wc2ZsYWdzIHw9IFZLSV9QT1NJWF9TUEFXTl9TRVRTSUdERUY7CisgICAgICBzcGEtPnNhX3NpZ2RlZmF1bHQgPSBzaWdfZGVmYXVsdDsKKyAgIH0KKworICAgaWYgKHNwYS0+c2FfcHNmbGFncyAmIFZLSV9QT1NJWF9TUEFXTl9TRVRTSUdJR05fTlApIHsKKyAgICAgIFZHXyhzaWdhZGRzZXRfZnJvbV9zZXQpKCZzcGEtPnNhX3NpZ2lnbm9yZSwgJnNpZ19pZ25vcmUpOworICAgfSBlbHNlIHsKKyAgICAgIHNwYS0+c2FfcHNmbGFncyB8PSBWS0lfUE9TSVhfU1BBV05fU0VUU0lHSUdOX05QOworICAgICAgc3BhLT5zYV9zaWdpZ25vcmUgPSBzaWdfaWdub3JlOworICAgfQorCisgICAvKiBTZXQgdGhlIHNpZ25hbCBtYXNrIGZvciBzcGF3bmVkIGNoaWxkLgorCisgICAgICBBbmFsb2dvdXMgdG8gc2lnbmFsIGhhbmRsZXJzOiBxdWVyeSBTQ1NTIGZvciBibG9ja2VkIHNpZ25hbHMgbWFzaworICAgICAgYW5kIGNvbWJpbmUgdGhpcyBtYXNrIHdpdGggdGhhdCBwYXNzZWQgZnJvbSBjbGllbnQsIGlmIGZsYWcKKyAgICAgIFBPU0lYX1NQQVdOX1NFVFNJR01BU0sgaGFzIGJlZW4gc3BlY2lmaWVkLiAqLworICAgdmtpX3NpZ3NldF90ICpzaWdtYXNrID0gJlZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCktPnNpZ19tYXNrOworICAgaWYgKHNwYS0+c2FfcHNmbGFncyAmIFZLSV9QT1NJWF9TUEFXTl9TRVRTSUdNQVNLKSB7CisgICAgICBWR18oc2lnYWRkc2V0X2Zyb21fc2V0KSgmc3BhLT5zYV9zaWdtYXNrLCBzaWdtYXNrKTsKKyAgIH0gZWxzZSB7CisgICAgICBzcGEtPnNhX3BzZmxhZ3MgfD0gVktJX1BPU0lYX1NQQVdOX1NFVFNJR01BU0s7CisgICAgICBzcGEtPnNhX3NpZ21hc2sgPSAqc2lnbWFzazsKKyAgIH0KKworICAgLyogTGFzdGx5LCByZWNvbnN0cnVjdCBhcmdlbnYgZnJvbSBhcmd2ICsgZW52cC4gKi8KKyAgIFNpemVUIGFyZ2Vudl9zaXplID0gMSArIDE7CisgICBmb3IgKFdvcmQgaSA9IDA7IGkgPCBWR18oc2l6ZVhBKShhcmd2KTsgaSsrKSB7CisgICAgICBhcmdlbnZfc2l6ZSArPSBWR18oc3RybGVuKSgqKEhDaGFyICoqKSBWR18oaW5kZXhYQSkoYXJndiwgaSkpICsgMjsKKyAgIH0KKyAgIGZvciAoV29yZCBpID0gMDsgaSA8IFZHXyhzaXplWEEpKGVudnApOyBpKyspIHsKKyAgICAgIGFyZ2Vudl9zaXplICs9IFZHXyhzdHJsZW4pKCooSENoYXIgKiopIFZHXyhpbmRleFhBKShlbnZwLCBpKSkgKyAyOworICAgfQorCisgICBhcmdlbnYgPSBWR18obWFsbG9jKSgic3lzd3JhcC5zcGF3bi4xMyIsIGFyZ2Vudl9zaXplKTsKKyAgIEhDaGFyICpjdXJyZW50ID0gYXJnZW52OworI2RlZmluZSBDT1BZX0NIQVJfVE9fQVJHRU5WKGRzdCwgY2hhcmFjdGVyKSBcCisgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICooZHN0KSA9IGNoYXJhY3RlcjsgICAgICAgICAgICAgICAgICAgXAorICAgICAgKGRzdCkgKz0gMTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICB9IHdoaWxlICgwKQorI2RlZmluZSBDT1BZX1NUUklOR19UT19BUkdFTlYoZHN0LCBzcmMpICAgICAgIFwKKyAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBDT1BZX0NIQVJfVE9fQVJHRU5WKGRzdCwgJ1wxJyk7ICAgICAgICAgXAorICAgICAgU2l6ZVQgc3JjX2xlbiA9IFZHXyhzdHJsZW4pKChzcmMpKSArIDE7IFwKKyAgICAgIFZHXyhtZW1jcHkpKChkc3QpLCAoc3JjKSwgc3JjX2xlbik7ICAgICBcCisgICAgICAoZHN0KSArPSBzcmNfbGVuOyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgfSB3aGlsZSAoMCkKKworICAgZm9yIChXb3JkIGkgPSAwOyBpIDwgVkdfKHNpemVYQSkoYXJndik7IGkrKykgeworICAgICAgQ09QWV9TVFJJTkdfVE9fQVJHRU5WKGN1cnJlbnQsICooSENoYXIgKiopIFZHXyhpbmRleFhBKShhcmd2LCBpKSk7CisgICB9CisgICBDT1BZX0NIQVJfVE9fQVJHRU5WKGN1cnJlbnQsICdcMCcpOworICAgZm9yIChXb3JkIGkgPSAwOyBpIDwgVkdfKHNpemVYQSkoZW52cCk7IGkrKykgeworICAgICAgQ09QWV9TVFJJTkdfVE9fQVJHRU5WKGN1cnJlbnQsICooSENoYXIgKiopIFZHXyhpbmRleFhBKShlbnZwLCBpKSk7CisgICB9CisgICBDT1BZX0NIQVJfVE9fQVJHRU5WKGN1cnJlbnQsICdcMCcpOworICAgdmdfYXNzZXJ0KGN1cnJlbnQgPT0gYXJnZW52ICsgYXJnZW52X3NpemUpOworI3VuZGVmIENPUFlfQ0hBUl9UT19BUkdFTlYKKyN1bmRlZiBDT1BZX1NUUklOR19UT0FSR0VOVgorCisgICAvKiBIQUNLOiBUZW1wb3JhcmlseSByZXN0b3JlIHRoZSBEQVRBIHJsaW1pdCBmb3Igc3Bhd25lZCBjaGlsZC4KKyAgICAgIFRoaXMgaXMgYSB0ZXJyaWJsZSBoYWNrIHRvIHByb3ZpZGUgc2Vuc2libGUgYnJrIGxpbWl0IGZvciBjaGlsZC4gKi8KKyAgIFZHXyhzZXRybGltaXQpKFZLSV9STElNSVRfREFUQSwgJlZHXyhjbGllbnRfcmxpbWl0X2RhdGEpKTsKKworICAgLyogQWN0dWFsIHNwYXduKCkgc3lzY2FsbC4gKi8KKyAgIFN5c1JlcyByZXMgPSBWR18oZG9fc3lzY2FsbDUpKF9fTlJfc3Bhd24sIChVV29yZCkgcGF0aCwgKFVXb3JkKSBhdHRycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzX3NpemUsIChVV29yZCkgYXJnZW52LCBhcmdlbnZfc2l6ZSk7CisgICBTRVRfU1RBVFVTX2Zyb21fU3lzUmVzKHJlcyk7CisgICBWR18oZnJlZSkoYXJnZW52KTsKKworICAgLyogUmVzdG9yZSBEQVRBIHJsaW1pdCBiYWNrIHRvIGl0cyBwcmV2aW91cyB2YWx1ZSBzZXQgaW4gbV9tYWluLmMuICovCisgICBzdHJ1Y3QgdmtpX3JsaW1pdCB6ZXJvID0geyAwLCAwIH07CisgICB6ZXJvLnJsaW1fbWF4ID0gVkdfKGNsaWVudF9ybGltaXRfZGF0YSkucmxpbV9tYXg7CisgICBWR18oc2V0cmxpbWl0KShWS0lfUkxJTUlUX0RBVEEsICZ6ZXJvKTsKKworICAgaWYgKFNVQ0NFU1MpIHsKKyAgICAgIFBSSU5UKCIgICBzcGF3bjogcHJvY2VzcyAlZCBzcGF3bmVkIGNoaWxkICVsZFxuIiwgVkdfKGdldHBpZCkoKSwgUkVTKTsKKyAgIH0KKworZXhpdDoKKyAgIFZHXyhmcmVlKShhdHRycyk7CisgICBmb3IgKFdvcmQgaSA9IDA7IGkgPCBWR18oc2l6ZVhBKShhcmd2KTsgaSsrKSB7CisgICAgICBWR18oZnJlZSkoKihIQ2hhciAqKikgVkdfKGluZGV4WEEpKGFyZ3YsIGkpKTsKKyAgIH0KKyAgIGZvciAoV29yZCBpID0gMDsgaSA8IFZHXyhzaXplWEEpKGVudnApOyBpKyspIHsKKyAgICAgIFZHXyhmcmVlKSgqKEhDaGFyICoqKSBWR18oaW5kZXhYQSkoZW52cCwgaSkpOworICAgfQorICAgVkdfKGRlbGV0ZVhBKShhcmd2KTsKKyAgIFZHXyhkZWxldGVYQSkoZW52cCk7Cit9CisjZW5kaWYgLyogU09MQVJJU19TUEFXTl9TWVNDQUxMICovCisKKy8qIEhhbmRsZXMgdGhlIGNhc2Ugd2hlcmUgdGhlIG9wZW4gaXMgb2YgL3Byb2Mvc2VsZi9wc2luZm8gb3IKKyAgIC9wcm9jLzxwaWQ+L3BzaW5mby4gRmV0Y2ggZnJlc2ggY29udGVudHMgaW50byBwc2luZm9fdCwKKyAgIGZha2UgZm5hbWUsIHBzYXJncywgYXJnYyBhbmQgYXJndi4gV3JpdGUgdGhlIHN0cnVjdHVyZSB0byB0aGUgZmFrZQorICAgZmlsZSB3ZSBjb29rZWQgdXAgYXQgc3RhcnR1cCAoaW4gbV9tYWluKSBhbmQgZ2l2ZSBvdXQgYSBjb3B5IG9mIHRoaXMKKyAgIGZkLiBBbHNvIHNlZWsgdGhlIGNsb25lZCBmZCBiYWNrIHRvIHRoZSBzdGFydC4gKi8KK3N0YXRpYyBCb29sIGhhbmRsZV9wc2luZm9fb3BlbihTeXNjYWxsU3RhdHVzICpzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9vbCB1c2Vfb3BlbmF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQgYXJnMSwgVVdvcmQgYXJnMywgVVdvcmQgYXJnNCkKK3sKKyAgIGlmICghTUxfKHNhZmVfdG9fZGVyZWYpKChjb25zdCB2b2lkICopIGZpbGVuYW1lLCAxKSkKKyAgICAgIHJldHVybiBGYWxzZTsKKworICAgSENoYXIgbmFtZVtWS0lfUEFUSF9NQVhdOyAgICAvLyBsYXJnZSBlbm91Z2gKKyAgIFZHXyhzcHJpbnRmKShuYW1lLCAiL3Byb2MvJWQvcHNpbmZvIiwgVkdfKGdldHBpZCkoKSk7CisKKyAgIGlmICghVkdfU1RSRVEoZmlsZW5hbWUsIG5hbWUpICYmICFWR19TVFJFUShmaWxlbmFtZSwgIi9wcm9jL3NlbGYvcHNpbmZvIikpCisgICAgICByZXR1cm4gRmFsc2U7CisKKyAgIC8qIFVzZSBvcmlnaW5hbCBhcmd1bWVudHMgdG8gb3BlbigpIG9yIG9wZW5hdCgpLiAqLworICAgU3lzUmVzIHNyZXM7CisjaWYgZGVmaW5lZChTT0xBUklTX09MRF9TWVNDQUxMUykKKyAgIGlmICh1c2Vfb3BlbmF0KQorICAgICAgc3JlcyA9IFZHXyhkb19zeXNjYWxsNCkoU1lTX29wZW5hdCwgYXJnMSwgKFVXb3JkKSBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzMsIGFyZzQpOworICAgZWxzZQorICAgICAgc3JlcyA9IFZHXyhkb19zeXNjYWxsMykoU1lTX29wZW4sIChVV29yZCkgZmlsZW5hbWUsIGFyZzMsIGFyZzQpOworI2Vsc2UKKyAgIHZnX2Fzc2VydCh1c2Vfb3BlbmF0ID09IFRydWUpOworICAgc3JlcyA9IFZHXyhkb19zeXNjYWxsNCkoU1lTX29wZW5hdCwgYXJnMSwgKFVXb3JkKSBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzMsIGFyZzQpOworI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCisKKyAgIGlmIChzcl9pc0Vycm9yKHNyZXMpKSB7CisgICAgICBTRVRfU1RBVFVTX2Zyb21fU3lzUmVzKHNyZXMpOworICAgICAgcmV0dXJuIFRydWU7CisgICB9CisgICBJbnQgZmQgPSBzcl9SZXMoc3Jlcyk7CisKKyAgIHZraV9wc2luZm9fdCBwc2luZm87CisgICBzcmVzID0gVkdfKGRvX3N5c2NhbGwzKShTWVNfcmVhZCwgZmQsIChVV29yZCkgJnBzaW5mbywgc2l6ZW9mKHBzaW5mbykpOworICAgaWYgKHNyX2lzRXJyb3Ioc3JlcykpIHsKKyAgICAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMoc3Jlcyk7CisgICAgICBWR18oY2xvc2UpKGZkKTsKKyAgICAgIHJldHVybiBUcnVlOworICAgfQorICAgaWYgKHNyX1JlcyhzcmVzKSAhPSBzaXplb2YocHNpbmZvKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTk9EQVRBKTsKKyAgICAgIFZHXyhjbG9zZSkoZmQpOworICAgICAgcmV0dXJuIFRydWU7CisgICB9CisKKyAgIFZHXyhjbG9zZSkoZmQpOworCisgICBWR18oY2xpZW50X2ZuYW1lKShwc2luZm8ucHJfZm5hbWUsIHNpemVvZihwc2luZm8ucHJfZm5hbWUpLCBUcnVlKTsKKyAgIFZHXyhjbGllbnRfY21kX2FuZF9hcmdzKShwc2luZm8ucHJfcHNhcmdzLCBzaXplb2YocHNpbmZvLnByX3BzYXJncykpOworCisgICBBZGRyICpwdHIgPSAoQWRkciAqKSBWR18oZ2V0X2luaXRpYWxfY2xpZW50X1NQKSgpOworICAgcHNpbmZvLnByX2FyZ2MgPSAqcHRyKys7CisgICBwc2luZm8ucHJfYXJndiA9IChBZGRyKSBwdHI7CisKKyAgIHNyZXMgPSBWR18oZG9fc3lzY2FsbDQpKFNZU19wd3JpdGUsIFZHXyhjbF9wc2luZm9fZmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKSAmcHNpbmZvLCBzaXplb2YocHNpbmZvKSwgMCk7CisgICBpZiAoc3JfaXNFcnJvcihzcmVzKSkgeworICAgICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhzcmVzKTsKKyAgICAgIHJldHVybiBUcnVlOworICAgfQorCisgICBzcmVzID0gVkdfKGR1cCkoVkdfKGNsX3BzaW5mb19mZCkpOworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhzcmVzKTsKKyAgIGlmICghc3JfaXNFcnJvcihzcmVzKSkgeworICAgICAgT2ZmVCBvZmYgPSBWR18obHNlZWspKHNyX1JlcyhzcmVzKSwgMCwgVktJX1NFRUtfU0VUKTsKKyAgICAgIGlmIChvZmYgPCAwKQorICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTUZJTEUpOworICAgfQorCisgICByZXR1cm4gVHJ1ZTsKK30KKworI2lmIGRlZmluZWQoU09MQVJJU19QUk9DX0NNRExJTkUpCisvKiBIYW5kbGVzIHRoZSBjYXNlIHdoZXJlIHRoZSBvcGVuIGlzIG9mIC9wcm9jL3NlbGYvY21kbGluZSBvcgorICAgL3Byb2MvPHBpZD4vY21kbGluZS4gSnVzdCBnaXZlIGl0IGEgY29weSBvZiBWR18oY2xfY21kbGluZV9mZCkgZm9yIHRoZQorICAgZmFrZSBmaWxlIHdlIGNvb2tlZCB1cCBhdCBzdGFydHVwIChpbiBtX21haW4pLiAgQWxzbywgc2VlayB0aGUKKyAgIGNsb25lZCBmZCBiYWNrIHRvIHRoZSBzdGFydC4gKi8KK3N0YXRpYyBCb29sIGhhbmRsZV9jbWRsaW5lX29wZW4oU3lzY2FsbFN0YXR1cyAqc3RhdHVzLCBjb25zdCBIQ2hhciAqZmlsZW5hbWUpCit7CisgICBpZiAoIU1MXyhzYWZlX3RvX2RlcmVmKSgoY29uc3Qgdm9pZCAqKSBmaWxlbmFtZSwgMSkpCisgICAgICByZXR1cm4gRmFsc2U7CisKKyAgIEhDaGFyIG5hbWVbVktJX1BBVEhfTUFYXTsgICAgLy8gbGFyZ2UgZW5vdWdoCisgICBWR18oc3ByaW50ZikobmFtZSwgIi9wcm9jLyVkL2NtZGxpbmUiLCBWR18oZ2V0cGlkKSgpKTsKKworICAgaWYgKCFWR19TVFJFUShmaWxlbmFtZSwgbmFtZSkgJiYgIVZHX1NUUkVRKGZpbGVuYW1lLCAiL3Byb2Mvc2VsZi9jbWRsaW5lIikpCisgICAgICByZXR1cm4gRmFsc2U7CisKKyAgIFN5c1JlcyBzcmVzID0gVkdfKGR1cCkoVkdfKGNsX2NtZGxpbmVfZmQpKTsKKyAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMoc3Jlcyk7CisgICBpZiAoIXNyX2lzRXJyb3Ioc3JlcykpIHsKKyAgICAgIE9mZlQgb2ZmID0gVkdfKGxzZWVrKShzcl9SZXMoc3JlcyksIDAsIFZLSV9TRUVLX1NFVCk7CisgICAgICBpZiAob2ZmIDwgMCkKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRU1GSUxFKTsKKyAgIH0KKworICAgcmV0dXJuIFRydWU7Cit9CisjZW5kaWYgLyogU09MQVJJU19QUk9DX0NNRExJTkUgKi8KKworCisjaWYgZGVmaW5lZChTT0xBUklTX09MRF9TWVNDQUxMUykKK1BSRShzeXNfb3BlbikKK3sKKyAgIC8qIGludCBvcGVuKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3MpOworICAgICAgaW50IG9wZW4oY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmbGFncywgbW9kZV90IG1vZGUpOyAqLworCisgICBpZiAoQVJHMiAmIFZLSV9PX0NSRUFUKSB7CisgICAgICAvKiAzLWFyZyB2ZXJzaW9uICovCisgICAgICBQUklOVCgic3lzX29wZW4gKCAlI2x4KCVzKSwgJWxkLCAlbGQgKSIsIEFSRzEsIChIQ2hhciAqKSBBUkcxLAorICAgICAgICAgICAgU0FSRzIsIEFSRzMpOworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAib3BlbiIsIGNvbnN0IGNoYXIgKiwgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgIGludCwgZmxhZ3MsIHZraV9tb2RlX3QsIG1vZGUpOworICAgfSBlbHNlIHsKKyAgICAgIC8qIDItYXJnIHZlcnNpb24gKi8KKyAgICAgIFBSSU5UKCJzeXNfb3BlbiAoICUjbHgoJXMpLCAlbGQgKSIsIEFSRzEsIChIQ2hhciAqKSBBUkcxLCBTQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJvcGVuIiwgY29uc3QgY2hhciAqLCBmaWxlbmFtZSwgaW50LCBmbGFncyk7CisgICB9CisKKyAgIFBSRV9NRU1fUkFTQ0lJWigib3BlbihmaWxlbmFtZSkiLCBBUkcxKTsKKworICAgaWYgKE1MXyhoYW5kbGVfYXV4dl9vcGVuKShzdGF0dXMsIChjb25zdCBIQ2hhciopQVJHMSwgQVJHMikpCisgICAgICByZXR1cm47CisKKyAgIGlmIChoYW5kbGVfcHNpbmZvX29wZW4oc3RhdHVzLCBGYWxzZSAvKnVzZV9vcGVuYXQqLywgKGNvbnN0IEhDaGFyKilBUkcxLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBBUkcyLCBBUkczKSkKKyAgICAgIHJldHVybjsKKworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CisKK1BPU1Qoc3lzX29wZW4pCit7CisgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShSRVMsICJvcGVuIiwgdGlkLCBUcnVlKSkgeworICAgICAgVkdfKGNsb3NlKShSRVMpOworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTUZJTEUpOworICAgfSBlbHNlIGlmIChWR18oY2xvX3RyYWNrX2ZkcykpCisgICAgICBNTF8ocmVjb3JkX2ZkX29wZW5fd2l0aF9naXZlbl9uYW1lKSh0aWQsIFJFUywgKEhDaGFyICopIEFSRzEpOworfQorI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCisKK1BSRShzeXNfY2xvc2UpCit7CisgICBXUkFQUEVSX1BSRV9OQU1FKGdlbmVyaWMsIHN5c19jbG9zZSkodGlkLCBsYXlvdXQsIGFycmdocywgc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKTsKK30KKworUE9TVChzeXNfY2xvc2UpCit7CisgICBXUkFQUEVSX1BPU1RfTkFNRShnZW5lcmljLCBzeXNfY2xvc2UpKHRpZCwgYXJyZ2hzLCBzdGF0dXMpOworICAgZG9vcl9yZXZva2UodGlkLCBBUkcxKTsKKyAgIC8qIFBvc3NpYmx5IGFuIGV4cGxpY2l0bHkgb3BlbidlZCBjbGllbnQgZG9vciBmZCB3YXMganVzdCBjbG9zZWQuCisgICAgICBHZW5lcmljIHN5c19jbG9zZSB3cmFwcGVyIGNhbGxzIHRoaXMgb25seSBpZiBWR18oY2xvX3RyYWNrX2ZkcykgPSBUcnVlLiAqLworICAgaWYgKCFWR18oY2xvX3RyYWNrX2ZkcykpCisgICAgICBNTF8ocmVjb3JkX2ZkX2Nsb3NlKShBUkcxKTsKK30KKworUFJFKHN5c19saW5rYXQpCit7CisgICAvKiBpbnQgbGlua2F0KGludCBmZDEsIGNvbnN0IGNoYXIgKnBhdGgxLCBpbnQgZmQyLAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwYXRoMiwgaW50IGZsYWcpOworICAgICovCisKKyAgIC8qIEludGVycHJldCB0aGUgZmlyc3QgYW5kIHRoaXJkIGFyZ3VtZW50cyBhcyAzMi1iaXQgdmFsdWVzIGV2ZW4gb24gNjQtYml0CisgICAgICBhcmNoaXRlY3R1cmUuIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gTGludXgsIGZvciBleGFtcGxlLCB3aGVyZSBnbGliYworICAgICAgc2lnbi1leHRlbmRzIHRoZW0uICovCisgICBJbnQgZmQxID0gKEludCkgQVJHMTsKKyAgIEludCBmZDIgPSAoSW50KSBBUkczOworCisgICBQUklOVCgic3lzX2xpbmthdCAoICVkLCAlI2x4KCVzKSwgJWQsICUjbHgoJXMpLCAlbGQgKSIsCisgICAgICAgICBmZDEsIEFSRzIsIChIQ2hhciAqKSBBUkcyLCBmZDIsIEFSRzQsIChIQ2hhciAqKSBBUkc0LCBTQVJHNSk7CisgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJsaW5rYXQiLCBpbnQsIGZkMSwgY29uc3QgY2hhciAqLCBwYXRoMSwKKyAgICAgICAgICAgICAgICAgaW50LCBmZDIsIGNvbnN0IGNoYXIgKiwgcGF0aDIsIGludCwgZmxhZ3MpOworICAgUFJFX01FTV9SQVNDSUlaKCJsaW5rYXQocGF0aDEpIiwgQVJHMik7CisgICBQUkVfTUVNX1JBU0NJSVooImxpbmthdChwYXRoMikiLCBBUkc0KTsKKworICAgLyogQmUgc3RyaWN0IGJ1dCBpZ25vcmUgZmQxL2ZkMiBmb3IgYWJzb2x1dGUgcGF0aDEvcGF0aDIuICovCisgICBpZiAoZmQxICE9IFZLSV9BVF9GRENXRAorICAgICAgICYmIE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCAqKSBBUkcyLCAxKQorICAgICAgICYmICgoSENoYXIgKikgQVJHMilbMF0gIT0gJy8nCisgICAgICAgJiYgIU1MXyhmZF9hbGxvd2VkKShmZDEsICJsaW5rYXQiLCB0aWQsIEZhbHNlKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICB9CisgICBpZiAoZmQyICE9IFZLSV9BVF9GRENXRAorICAgICAgICYmIE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCAqKSBBUkc0LCAxKQorICAgICAgICYmICgoSENoYXIgKikgQVJHNClbMF0gIT0gJy8nCisgICAgICAgJiYgIU1MXyhmZF9hbGxvd2VkKShmZDIsICJsaW5rYXQiLCB0aWQsIEZhbHNlKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICB9CisKKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworfQorCitQUkUoc3lzX3N5bWxpbmthdCkKK3sKKyAgIC8qIGludCBzeW1saW5rYXQoY29uc3QgY2hhciAqcGF0aDEsIGludCBmZCwgY29uc3QgY2hhciAqcGF0aDIpOyAqLworCisgICAvKiBJbnRlcnByZXQgdGhlIHNlY29uZCBhcmd1bWVudCBhcyAzMi1iaXQgdmFsdWUgZXZlbiBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlLgorICAgICAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBMaW51eCwgZm9yIGV4YW1wbGUsIHdoZXJlIGdsaWJjIHNpZ24tZXh0ZW5kcyBpdC4gKi8KKyAgIEludCBmZCA9IChJbnQpIEFSRzI7CisKKyAgIFBSSU5UKCJzeXNfc3ltbGlua2F0ICggJSNseCglcyksICVkLCAlI2x4KCVzKSApIiwKKyAgICAgICAgIEFSRzEsIChIQ2hhciAqKSBBUkcxLCBmZCwgQVJHMywgKEhDaGFyICopIEFSRzMpOworICAgUFJFX1JFR19SRUFEMyhsb25nLCAic3ltbGlua2F0IiwgY29uc3QgY2hhciAqLCBwYXRoMSwgaW50LCBmZCwKKyAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBwYXRoMik7CisgICBQUkVfTUVNX1JBU0NJSVooInN5bWxpbmthdChwYXRoMSkiLCBBUkcxKTsKKyAgIFBSRV9NRU1fUkFTQ0lJWigic3ltbGlua2F0KHBhdGgyKSIsIEFSRzMpOworCisgICAvKiBCZSBzdHJpY3QgYnV0IGlnbm9yZSBmZCBmb3IgYWJzb2x1dGUgcGF0aDIuICovCisgICBpZiAoZmQgIT0gVktJX0FUX0ZEQ1dECisgICAgICAgJiYgTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkICopIEFSRzMsIDEpCisgICAgICAgJiYgKChIQ2hhciAqKSBBUkczKVswXSAhPSAnLycKKyAgICAgICAmJiAhTUxfKGZkX2FsbG93ZWQpKGZkLCAic3ltbGlua2F0IiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKKworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CisKK1BSRShzeXNfdGltZSkKK3sKKyAgIC8qIHRpbWVfdCB0aW1lKCk7ICovCisgICBQUklOVCgic3lzX3RpbWUgKCApIik7CisgICBQUkVfUkVHX1JFQUQwKGxvbmcsICJ0aW1lIik7Cit9CisKKy8qIERhdGEgc2VnbWVudCBmb3IgYnJrIChoZWFwKS4gSXQgaXMgYW4gZXhwYW5kYWJsZSBhbm9ueW1vdXMgbWFwcGluZworICAgYWJ1dHRpbmcgYSAxLXBhZ2UgcmVzZXJ2YXRpb24uIFRoZSBkYXRhIHNlZ21lbnQgc3RhcnRzIGF0IFZHXyhicmtfYmFzZSkKKyAgIGFuZCBydW5zIHVwIHRvIFZHXyhicmtfbGltaXQpLiBOb25lIG9mIHRoZXNlIHR3byB2YWx1ZXMgaGF2ZSB0byBiZQorICAgcGFnZS1hbGlnbmVkLgorICAgSW5pdGlhbCBkYXRhIHNlZ21lbnQgaXMgZXN0YWJsaXNoZWQgKHNlZSBpbml0aW1nLXNvbGFyaXMuYyBmb3IgcmF0aW9uYWxlKToKKyAgIC0gZGlyZWN0bHkgZHVyaW5nIGNsaWVudCBwcm9ncmFtIGltYWdlIGluaXRpYWxpemF0aW9uLAorICAgLSBvciBvbiBkZW1hbmQgd2hlbiB0aGUgZXhlY3V0ZWQgcHJvZ3JhbSBpcyB0aGUgcnVudGltZSBsaW5rZXIgaXRzZWxmLAorICAgICBhZnRlciBpdCBoYXMgbG9hZGVkIGl0cyB0YXJnZXQgZHluYW1pYyBleGVjdXRhYmxlIChzZWUgUFJFKHN5c19tbWFwb2JqKSksCisgICAgIG9yIHdoZW4gdGhlIGZpcnN0IGJyaygpIHN5c2NhbGwgaXMgbWFkZS4KKworICAgTm90YWJsZSBmYWN0czoKKyAgIC0gVkdfKGJya19iYXNlKSBpcyBub3QgcGFnZSBhbGlnbmVkOyBkb2VzIG5vdCBtb3ZlCisgICAtIFZHXyhicmtfbGltaXQpIG1vdmVzIGJldHdlZW4gW1ZHXyhicmtfYmFzZSksIGRhdGEgc2VnbWVudCBlbmRdCisgICAtIGRhdGEgc2VnbWVudCBlbmQgaXMgYWx3YXlzIHBhZ2UgYWxpZ25lZAorICAgLSByaWdodCBhZnRlciBkYXRhIHNlZ21lbnQgZW5kIGlzIDEtcGFnZSByZXNlcnZhdGlvbgorCisgICAgICAgICAgICB8ICAgICAgaGVhcCAgICAgICAgICAgfCAxIHBhZ2UKKyAgICAgKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKKyAgICAgfCBCU1MgIHwgYW5vbiB8ICAgYW5vbiAgICAgICB8IHJlc3ZuIHwKKyAgICAgKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKKworICAgICAgICAgICAgXiAgICAgIF4gICAgICAgIF4gICAgXgorICAgICAgICAgICAgfCAgICAgIHwgICAgICAgIHwgICAgfAorICAgICAgICAgICAgfCAgICAgIHwgICAgICAgIHwgICAgZGF0YSBzZWdtZW50IGVuZAorICAgICAgICAgICAgfCAgICAgIHwgICAgICAgIFZHXyhicmtfbGltaXQpIC0tIG5vIGFsaWdubWVudCBjb25zdHJhaW50CisgICAgICAgICAgICB8ICAgICAgYnJrX2Jhc2VfcGd1cCAtLSBwYWdlIGFsaWduZWQKKyAgICAgICAgICAgIFZHXyhicmtfYmFzZSkgLS0gbm90IHBhZ2UgYWxpZ25lZCAtLSBkb2VzIG5vdCBtb3ZlCisKKyAgIEJlY2F1c2UgVkdfKGJya19iYXNlKSBpcyBub3QgcGFnZS1hbGlnbmVkIGFuZCBpcyBpbml0aWFsbHkgbG9jYXRlZCB3aXRoaW4KKyAgIHByZS1lc3RhYmxpc2hlZCBCU1MgKGRhdGEpIHNlZ21lbnQsIHNwZWNpYWwgY2FyZSBoYXMgdG8gYmUgdGFrZW4gaW4gdGhlIGNvZGUKKyAgIGJlbG93IHRvIGhhbmRsZSB0aGlzIGZlYXR1cmUuCisKKyAgIFJlc2VydmF0aW9uIHNlZ21lbnQgaXMgdXNlZCB0byBwcm90ZWN0IHRoZSBkYXRhIHNlZ21lbnQgbWVyZ2luZyB3aXRoCisgICBhIHByZS1leGlzdGluZyBzZWdtZW50LiBUaGlzIHNob3VsZCBiZSBubyBwcm9ibGVtIGJlY2F1c2UgYWRkcmVzcyBzcGFjZQorICAgbWFuYWdlciBlbnN1cmVzIHRoYXQgcmVxdWVzdHMgZm9yIGNsaWVudCBhZGRyZXNzIHNwYWNlIGFyZSBzYXRpc2ZpZWQgZnJvbQorICAgdGhlIGhpZ2hlc3QgYXZhaWxhYmxlIGFkZHJlc3Nlcy4gSG93ZXZlciB3aGVuIG1lbW9yeSBpcyBsb3csIGRhdGEgc2VnbWVudAorICAgY2FuIG1lZXQgd2l0aCBtbWFwJ2VkIG9iamVjdHMgYW5kIHRoZSByZXNlcnZhdGlvbiBzZWdtZW50IHNlcGFyYXRlcyB0aGVzZS4KKyAgIFRoZSBwYWdlIHRoYXQgY29udGFpbnMgVkdfKGJya19iYXNlKSBpcyBhbHJlYWR5IGFsbG9jYXRlZCBieSB0aGUgcHJvZ3JhbSdzCisgICBsb2FkZWQgZGF0YSBzZWdtZW50LiBUaGUgYnJrIHN5c2NhbGwgd3JhcHBlciBoYW5kbGVzIHRoaXMgc3BlY2lhbCBjYXNlLiAqLworCitzdGF0aWMgQm9vbCBicmtfc2VnbWVudF9lc3RhYmxpc2hlZCA9IEZhbHNlOworCisvKiBFc3RhYmxpc2hlcyBpbml0aWFsIGRhdGEgc2VnbWVudCBmb3IgYnJrIChoZWFwKS4gKi8KK0Jvb2wgVkdfKHNldHVwX2NsaWVudF9kYXRhc2VnKSh2b2lkKQoreworICAgLyogU2VnbWVudCBzaXplIGlzIGluaXRpYWxseSBhdCBsZWFzdCAxIE1CIGFuZCBhdCBtb3N0IDggTUIuICovCisgICBTaXplVCBtMSA9IDEwMjQgKiAxMDI0OworICAgU2l6ZVQgbTggPSA4ICogbTE7CisgICBTaXplVCBpbml0aWFsX3NpemUgPSBWR18oY2xpZW50X3JsaW1pdF9kYXRhKS5ybGltX2N1cjsKKyAgIFZHXyhkZWJ1Z0xvZykoMSwgInN5c3dyYXAtc29sYXJpcyIsICJTZXR1cCBjbGllbnQgZGF0YSAoYnJrKSBzZWdtZW50ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdCAlI2x4XG4iLCBWR18oYnJrX2Jhc2UpKTsKKyAgIGlmIChpbml0aWFsX3NpemUgPCBtMSkKKyAgICAgIGluaXRpYWxfc2l6ZSA9IG0xOworICAgaWYgKGluaXRpYWxfc2l6ZSA+IG04KQorICAgICAgaW5pdGlhbF9zaXplID0gbTg7CisgICBpbml0aWFsX3NpemUgPSBWR19QR1JPVU5EVVAoaW5pdGlhbF9zaXplKTsKKworICAgQWRkciBhbm9uX3N0YXJ0ID0gVkdfUEdST1VORFVQKFZHXyhicmtfYmFzZSkpOworICAgU2l6ZVQgYW5vbl9zaXplID0gVkdfUEdST1VORFVQKGluaXRpYWxfc2l6ZSk7CisgICBBZGRyIHJlc3ZuX3N0YXJ0ID0gYW5vbl9zdGFydCArIGFub25fc2l6ZTsKKyAgIFNpemVUIHJlc3ZuX3NpemUgPSBWS0lfUEFHRV9TSVpFOworCisgICB2Z19hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKGFub25fc2l6ZSkpOworICAgdmdfYXNzZXJ0KFZHX0lTX1BBR0VfQUxJR05FRChyZXN2bl9zaXplKSk7CisgICB2Z19hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKGFub25fc3RhcnQpKTsKKyAgIHZnX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQocmVzdm5fc3RhcnQpKTsKKyAgIHZnX2Fzc2VydChWR18oYnJrX2Jhc2UpID09IFZHXyhicmtfbGltaXQpKTsKKworICAgLyogRmluZCB0aGUgbG9hZGVkIGRhdGEgc2VnbWVudCBhbmQgcmVtZW1iZXIgaXRzIHByb3RlY3Rpb24uICovCisgICBjb25zdCBOU2VnbWVudCAqc2VnID0gVkdfKGFtX2ZpbmRfbnNlZ21lbnQpKFZHXyhicmtfYmFzZSkgLSAxKTsKKyAgIHZnX2Fzc2VydChzZWcgIT0gTlVMTCk7CisgICBVSW50IHByb3QgPSAoc2VnLT5oYXNSID8gVktJX1BST1RfUkVBRCA6IDApCisgICAgICAgICAgICAgfCAoc2VnLT5oYXNXID8gVktJX1BST1RfV1JJVEUgOiAwKQorICAgICAgICAgICAgIHwgKHNlZy0+aGFzWCA/IFZLSV9QUk9UX0VYRUMgOiAwKTsKKworICAgLyogVHJ5IHRvIGNyZWF0ZSB0aGUgZGF0YSBzZWdtZW50IGFuZCBhc3NvY2lhdGVkIHJlc2VydmF0aW9uIHdoZXJlCisgICAgICBWR18oYnJrX2Jhc2UpIHNheXMuICovCisgICBCb29sIG9rID0gVkdfKGFtX2NyZWF0ZV9yZXNlcnZhdGlvbikocmVzdm5fc3RhcnQsIHJlc3ZuX3NpemUsIFNtTG93ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbl9zaXplKTsKKyAgIGlmICghb2spIHsKKyAgICAgIC8qIFRoYXQgZGlkbid0IHdvcmssIHdlJ3JlIGhvc2VkLiAqLworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICAvKiBNYXAgdGhlIGRhdGEgc2VnbWVudC4gKi8KKyAgIFN5c1JlcyBzcmVzID0gVkdfKGFtX21tYXBfYW5vbl9maXhlZF9jbGllbnQpKGFub25fc3RhcnQsIGFub25fc2l6ZSwgcHJvdCk7CisgICB2Z19hc3NlcnQoIXNyX2lzRXJyb3Ioc3JlcykpOworICAgdmdfYXNzZXJ0KHNyX1JlcyhzcmVzKSA9PSBhbm9uX3N0YXJ0KTsKKworICAgYnJrX3NlZ21lbnRfZXN0YWJsaXNoZWQgPSBUcnVlOworICAgcmV0dXJuIFRydWU7Cit9CisKKy8qIFRlbGwgdGhlIHRvb2wgYWJvdXQgdGhlIGNsaWVudCBkYXRhIHNlZ21lbnQgYW5kIHRoZW4ga2lsbCBpdCB3aGljaCB3aWxsCisgICBtYWtlIGl0IGluaXRpYWxseSBpbmFjY2Vzc2libGUvdW5hZGRyZXNzYWJsZS4gKi8KK3ZvaWQgVkdfKHRyYWNrX2NsaWVudF9kYXRhc2VnKShUaHJlYWRJZCB0aWQpCit7CisgICBjb25zdCBOU2VnbWVudCAqc2VnID0gVkdfKGFtX2ZpbmRfbnNlZ21lbnQpKFZHX1BHUk9VTkRVUChWR18oYnJrX2Jhc2UpKSk7CisgICB2Z19hc3NlcnQoc2VnICE9IE5VTEwpOworICAgdmdfYXNzZXJ0KHNlZy0+a2luZCA9PSBTa0Fub25DKTsKKworICAgVkdfVFJBQ0sobmV3X21lbV9icmssIFZHXyhicmtfYmFzZSksIHNlZy0+ZW5kICsgMSAtIFZHXyhicmtfYmFzZSksIHRpZCk7CisgICBWR19UUkFDSyhkaWVfbWVtX2JyaywgVkdfKGJya19iYXNlKSwgc2VnLT5lbmQgKyAxIC0gVkdfKGJya19iYXNlKSk7Cit9CisKK1BSRShzeXNfYnJrKQoreworICAgLyogdW5zaWduZWQgbG9uZyBicmsoY2FkZHJfdCBlbmRfZGF0YV9zZWdtZW50KTsgKi8KKyAgIC8qIFRoZSBTb2xhcmlzIGtlcm5lbCByZXR1cm5zIDAgb24gc3VjY2Vzcy4KKyAgICAgIEluIGFkZGl0aW9uIHRvIHRoaXMsIGJyaygwKSByZXR1cm5zIGN1cnJlbnQgZGF0YSBzZWdtZW50IGVuZC4gIFRoaXMgaXMKKyAgICAgIHZlcnkgZGlmZmVyZW50IGZyb20gdGhlIExpbnV4IGtlcm5lbCwgZm9yIGV4YW1wbGUuICovCisKKyAgIEFkZHIgb2xkX2Jya19saW1pdCA9IFZHXyhicmtfbGltaXQpOworICAgLyogSWYgVkdfKGJya19iYXNlKSBpcyBwYWdlLWFsaWduZWQgdGhlbiBvbGRfYnJrX2Jhc2VfcGd1cCBpcyBlcXVhbCB0bworICAgICAgVkdfKGJya19iYXNlKS4gKi8KKyAgIEFkZHIgb2xkX2Jya19iYXNlX3BndXAgPSBWR19QR1JPVU5EVVAoVkdfKGJya19iYXNlKSk7CisgICBBZGRyIG5ld19icmsgPSBBUkcxOworICAgY29uc3QgTlNlZ21lbnQgKnNlZywgKnNlZzI7CisKKyAgIFBSSU5UKCJzeXNfYnJrICggJSNseCApIiwgQVJHMSk7CisgICBQUkVfUkVHX1JFQUQxKHVuc2lnbmVkIGxvbmcsICJicmsiLCB2a2lfY2FkZHJfdCwgZW5kX2RhdGFfc2VnbWVudCk7CisKKyAgIGlmIChuZXdfYnJrID09IDApIHsKKyAgICAgIC8qIGJyaygwKSAtIHNwZWNpZmljIHRvIFNvbGFyaXMgMTEgb25seS4gKi8KKyAgICAgIFNFVF9TVEFUVVNfU3VjY2VzcyhvbGRfYnJrX2xpbWl0KTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgLyogSGFuZGxlIHNvbWUgdHJpdmlhbCBjYXNlcy4gKi8KKyAgIGlmIChuZXdfYnJrID09IG9sZF9icmtfbGltaXQpIHsKKyAgICAgIFNFVF9TVEFUVVNfU3VjY2VzcygwKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKyAgIGlmIChuZXdfYnJrIDwgVkdfKGJya19iYXNlKSkgeworICAgICAgLyogQ2xlYXJseSBpbXBvc3NpYmxlLiAqLworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTk9NRU0pOworICAgICAgcmV0dXJuOworICAgfQorICAgaWYgKG5ld19icmsgLSBWR18oYnJrX2Jhc2UpID4gVkdfKGNsaWVudF9ybGltaXRfZGF0YSkucmxpbV9jdXIpIHsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRU5PTUVNKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgLyogVGhlIGJyayBiYXNlIGFuZCBsaW1pdCBtdXN0IGhhdmUgYmVlbiBhbHJlYWR5IHNldC4gKi8KKyAgIHZnX2Fzc2VydChWR18oYnJrX2Jhc2UpICE9IC0xKTsKKyAgIHZnX2Fzc2VydChWR18oYnJrX2xpbWl0KSAhPSAtMSk7CisKKyAgIGlmICghYnJrX3NlZ21lbnRfZXN0YWJsaXNoZWQpIHsKKyAgICAgIC8qIFN0YXkgc2FuZSAoYmVjYXVzZSB0aGVyZSBzaG91bGQgaGF2ZSBiZWVuIG5vIGJyayBhY3Rpdml0eSB5ZXQpLiAqLworICAgICAgdmdfYXNzZXJ0KFZHXyhicmtfYmFzZSkgPT0gVkdfKGJya19saW1pdCkpOworCisgICAgICBpZiAoIVZHXyhzZXR1cF9jbGllbnRfZGF0YXNlZykoKSkgeworICAgICAgICAgVkdfKHVtc2cpKCJDYW5ub3QgbWFwIG1lbW9yeSB0byBpbml0aWFsaXplIGJyayBzZWdtZW50IGluIHRocmVhZCAjJWQgIgorICAgICAgICAgICAgICAgICAgICJhdCAlI2x4XG4iLCB0aWQsIFZHXyhicmtfYmFzZSkpOworICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTk9NRU0pOworICAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBWR18odHJhY2tfY2xpZW50X2RhdGFzZWcpKHRpZCk7CisgICB9CisKKyAgIGlmIChuZXdfYnJrIDwgb2xkX2Jya19saW1pdCkgeworICAgICAgLyogU2hyaW5raW5nIHRoZSBkYXRhIHNlZ21lbnQuICBCZSBsYXp5IGFuZCBkb24ndCBtdW5tYXAgdGhlIGV4Y2VzcworICAgICAgICAgYXJlYS4gKi8KKyAgICAgIGlmIChvbGRfYnJrX2xpbWl0ID4gb2xkX2Jya19iYXNlX3BndXApIHsKKyAgICAgICAgIC8qIENhbGN1bGF0ZSBuZXcgbG9jYWwgYnJrICg9TUFYKG5ld19icmssIG9sZF9icmtfYmFzZV9wZ3VwKSkuICovCisgICAgICAgICBBZGRyIG5ld19icmtfbG9jYWw7CisgICAgICAgICBpZiAobmV3X2JyayA8IG9sZF9icmtfYmFzZV9wZ3VwKQorICAgICAgICAgICAgbmV3X2Jya19sb2NhbCA9IG9sZF9icmtfYmFzZV9wZ3VwOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3X2Jya19sb2NhbCA9IG5ld19icms7CisKKyAgICAgICAgIC8qIEZpbmQgYSBzZWdtZW50IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGF0IHRoZSBlbmQgb2YgdGhlIHNocmlua2VkCisgICAgICAgICAgICByYW5nZS4gKi8KKyAgICAgICAgIHNlZyA9IFZHXyhhbV9maW5kX25zZWdtZW50KShuZXdfYnJrX2xvY2FsKTsKKyAgICAgICAgIHNlZzIgPSBWR18oYW1fZmluZF9uc2VnbWVudCkob2xkX2Jya19saW1pdCAtIDEpOworICAgICAgICAgdmdfYXNzZXJ0KHNlZyk7CisgICAgICAgICB2Z19hc3NlcnQoc2VnLT5raW5kID09IFNrQW5vbkMpOworICAgICAgICAgdmdfYXNzZXJ0KHNlZzIpOworICAgICAgICAgdmdfYXNzZXJ0KHNlZyA9PSBzZWcyKTsKKworICAgICAgICAgLyogRGlzY2FyZCBhbnkgdHJhbnNsYXRpb25zIGFuZCB6ZXJvLW91dCB0aGUgYXJlYS4gKi8KKyAgICAgICAgIGlmIChzZWctPmhhc1QpCisgICAgICAgICAgICBWR18oZGlzY2FyZF90cmFuc2xhdGlvbnMpKG5ld19icmtfbG9jYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9icmtfbGltaXQgLSBuZXdfYnJrX2xvY2FsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9fYnJrKHNocmluaykiKTsKKyAgICAgICAgLyogU2luY2Ugd2UncmUgYmVpbmcgbGF6eSBhbmQgbm90IHVubWFwcGluZyBwYWdlcywgd2UgaGF2ZSB0byB6ZXJvIG91dAorICAgICAgICAgICB0aGUgYXJlYSwgc28gdGhhdCBpZiB0aGUgYXJlYSBsYXRlciBjb21lcyBiYWNrIGludG8gY2lyY3VsYXRpb24sIGl0CisgICAgICAgICAgIHdpbGwgYmUgZmlsbGVkIHdpdGggemVyb2VzLCBhcyBpZiBpdCByZWFsbHkgaGFkIGJlZW4gdW5tYXBwZWQgYW5kCisgICAgICAgICAgIGxhdGVyIHJlbWFwcGVkLiAgQmUgYSBiaXQgcGFyYW5vaWQgYW5kIHRyeSBoYXJkIHRvIGVuc3VyZSB3ZSdyZSBub3QKKyAgICAgICAgICAgZ29pbmcgdG8gc2VnZmF1bHQgYnkgZG9pbmcgdGhlIHdyaXRlIC0gY2hlY2sgdGhhdCBzZWdtZW50IGlzCisgICAgICAgICAgIHdyaXRhYmxlLiAqLworICAgICAgICAgaWYgKHNlZy0+aGFzVykKKyAgICAgICAgICAgIFZHXyhtZW1zZXQpKCh2b2lkKiluZXdfYnJrX2xvY2FsLCAwLCBvbGRfYnJrX2xpbWl0IC0gbmV3X2Jya19sb2NhbCk7CisgICAgICB9CisKKyAgICAgIC8qIEZpeHVwIGNvZGUgaWYgdGhlIFZHXyhicmtfYmFzZSkgaXMgbm90IHBhZ2UtYWxpZ25lZC4gKi8KKyAgICAgIGlmIChuZXdfYnJrIDwgb2xkX2Jya19iYXNlX3BndXApIHsKKyAgICAgICAgIC8qIENhbGN1bGF0ZSBvbGQgbG9jYWwgYnJrICg9TUlOKG9sZF9icmtfbGltaXQsIG9sZF9icmtfYmFzZV91cCkpLiAqLworICAgICAgICAgQWRkciBvbGRfYnJrX2xvY2FsOworICAgICAgICAgaWYgKG9sZF9icmtfbGltaXQgPCBvbGRfYnJrX2Jhc2VfcGd1cCkKKyAgICAgICAgICAgIG9sZF9icmtfbG9jYWwgPSBvbGRfYnJrX2xpbWl0OworICAgICAgICAgZWxzZQorICAgICAgICAgICAgb2xkX2Jya19sb2NhbCA9IG9sZF9icmtfYmFzZV9wZ3VwOworCisgICAgICAgICAvKiBGaW5kIGEgc2VnbWVudCBhdCB0aGUgYmVnaW5uaW5nIGFuZCBhdCB0aGUgZW5kIG9mIHRoZSBzaHJpbmtlZAorICAgICAgICAgICAgcmFuZ2UuICovCisgICAgICAgICBzZWcgPSBWR18oYW1fZmluZF9uc2VnbWVudCkobmV3X2Jyayk7CisgICAgICAgICBzZWcyID0gVkdfKGFtX2ZpbmRfbnNlZ21lbnQpKG9sZF9icmtfbG9jYWwgLSAxKTsKKyAgICAgICAgIHZnX2Fzc2VydChzZWcpOworICAgICAgICAgdmdfYXNzZXJ0KHNlZzIpOworICAgICAgICAgdmdfYXNzZXJ0KHNlZyA9PSBzZWcyKTsKKworICAgICAgICAgLyogRGlzY2FyZCBhbnkgdHJhbnNsYXRpb25zIGFuZCB6ZXJvLW91dCB0aGUgYXJlYS4gKi8KKyAgICAgICAgIGlmIChzZWctPmhhc1QpCisgICAgICAgICAgICBWR18oZGlzY2FyZF90cmFuc2xhdGlvbnMpKG5ld19icmssIG9sZF9icmtfbG9jYWwgLSBuZXdfYnJrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9fYnJrKHNocmluaykiKTsKKyAgICAgICAgIGlmIChzZWctPmhhc1cpCisgICAgICAgICAgICBWR18obWVtc2V0KSgodm9pZCopbmV3X2JyaywgMCwgb2xkX2Jya19sb2NhbCAtIG5ld19icmspOworICAgICAgfQorCisgICAgICAvKiBXZSBhcmUgZG9uZSwgdXBkYXRlIFZHXyhicmtfbGltaXQpLCB0ZWxsIHRoZSB0b29sIGFib3V0IHRoZSBjaGFuZ2VzLAorICAgICAgICAgYW5kIGxlYXZlLiAqLworICAgICAgVkdfKGJya19saW1pdCkgPSBuZXdfYnJrOworICAgICAgVkdfVFJBQ0soZGllX21lbV9icmssIG5ld19icmssIG9sZF9icmtfbGltaXQgLSBuZXdfYnJrKTsKKyAgICAgIFNFVF9TVEFUVVNfU3VjY2VzcygwKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgLyogV2UgYXJlIGV4cGFuZGluZyB0aGUgYnJrIHNlZ21lbnQuICovCisKKyAgIC8qIEZpeHVwIGNvZGUgaWYgdGhlIFZHXyhicmtfYmFzZSkgaXMgbm90IHBhZ2UtYWxpZ25lZC4gKi8KKyAgIGlmIChvbGRfYnJrX2xpbWl0IDwgb2xkX2Jya19iYXNlX3BndXApIHsKKyAgICAgIC8qIENhbGN1bGF0ZSBuZXcgbG9jYWwgYnJrICg9TUlOKG5ld19icmssIG9sZF9icmtfYmFzZV9wZ3VwKSkuICovCisgICAgICBBZGRyIG5ld19icmtfbG9jYWw7CisgICAgICBpZiAobmV3X2JyayA8IG9sZF9icmtfYmFzZV9wZ3VwKQorICAgICAgICAgbmV3X2Jya19sb2NhbCA9IG5ld19icms7CisgICAgICBlbHNlCisgICAgICAgICBuZXdfYnJrX2xvY2FsID0gb2xkX2Jya19iYXNlX3BndXA7CisKKyAgICAgIC8qIEZpbmQgYSBzZWdtZW50IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGF0IHRoZSBlbmQgb2YgdGhlIGV4cGFuZGVkCisgICAgICAgICByYW5nZS4gKi8KKyAgICAgIHNlZyA9IFZHXyhhbV9maW5kX25zZWdtZW50KShvbGRfYnJrX2xpbWl0KTsKKyAgICAgIHNlZzIgPSBWR18oYW1fZmluZF9uc2VnbWVudCkobmV3X2Jya19sb2NhbCAtIDEpOworICAgICAgdmdfYXNzZXJ0KHNlZyk7CisgICAgICB2Z19hc3NlcnQoc2VnMik7CisgICAgICB2Z19hc3NlcnQoc2VnID09IHNlZzIpOworCisgICAgICAvKiBOb3RoaW5nIGVsc2UgdG8gZG8uICovCisgICB9CisKKyAgIGlmIChuZXdfYnJrID4gb2xkX2Jya19iYXNlX3BndXApIHsKKyAgICAgIC8qIENhbGN1bGF0ZSBvbGQgbG9jYWwgYnJrICg9TUFYKG9sZF9icmtfbGltaXQsIG9sZF9icmtfYmFzZV9wZ3VwKSkuICovCisgICAgICBBZGRyIG9sZF9icmtfbG9jYWw7CisgICAgICBpZiAob2xkX2Jya19saW1pdCA8IG9sZF9icmtfYmFzZV9wZ3VwKQorICAgICAgICAgb2xkX2Jya19sb2NhbCA9IG9sZF9icmtfYmFzZV9wZ3VwOworICAgICAgZWxzZQorICAgICAgICAgb2xkX2Jya19sb2NhbCA9IG9sZF9icmtfbGltaXQ7CisKKyAgICAgIC8qIEZpbmQgYSBzZWdtZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGV4cGFuZGVkIHJhbmdlLiAqLworICAgICAgaWYgKG9sZF9icmtfbG9jYWwgPiBvbGRfYnJrX2Jhc2VfcGd1cCkKKyAgICAgICAgIHNlZyA9IFZHXyhhbV9maW5kX25zZWdtZW50KShvbGRfYnJrX2xvY2FsIC0gMSk7CisgICAgICBlbHNlCisgICAgICAgICBzZWcgPSBWR18oYW1fZmluZF9uc2VnbWVudCkob2xkX2Jya19sb2NhbCk7CisgICAgICB2Z19hc3NlcnQoc2VnKTsKKyAgICAgIHZnX2Fzc2VydChzZWctPmtpbmQgPT0gU2tBbm9uQyk7CisKKyAgICAgIC8qIEZpbmQgdGhlIDEtcGFnZSByZXNlcnZhdGlvbiBzZWdtZW50LiAqLworICAgICAgc2VnMiA9IFZHXyhhbV9uZXh0X25zZWdtZW50KShzZWcsIFRydWUvKmZvcndhcmRzKi8pOworICAgICAgdmdfYXNzZXJ0KHNlZzIpOworICAgICAgdmdfYXNzZXJ0KHNlZzItPmtpbmQgPT0gU2tSZXN2bik7CisgICAgICB2Z19hc3NlcnQoc2VnLT5lbmQgKyAxID09IHNlZzItPnN0YXJ0KTsKKyAgICAgIHZnX2Fzc2VydChzZWcyLT5lbmQgLSBzZWcyLT5zdGFydCArIDEgPT0gVktJX1BBR0VfU0laRSk7CisKKyAgICAgIGlmIChuZXdfYnJrIDw9IHNlZzItPnN0YXJ0KSB7CisgICAgICAgICAvKiBTdGlsbCBmaXRzIHdpdGhpbiB0aGUgZXhpc3RpbmcgYW5vbiBzZWdtZW50LCBub3RoaW5nIHRvIGRvLiAqLworICAgICAgfSBlbHNlIHsKKyAgICAgICAgIC8qIERhdGEgc2VnbWVudCBsaW1pdCB3YXMgYWxyZWFkeSBjaGVja2VkLiAqLworICAgICAgICAgQWRkciBhbm9uX3N0YXJ0ID0gc2VnLT5lbmQgKyAxOworICAgICAgICAgQWRkciByZXN2bl9zdGFydCA9IFZHX1BHUk9VTkRVUChuZXdfYnJrKTsKKyAgICAgICAgIFNpemVUIGFub25fc2l6ZSA9IHJlc3ZuX3N0YXJ0IC0gYW5vbl9zdGFydDsKKyAgICAgICAgIFNpemVUIHJlc3ZuX3NpemUgPSBWS0lfUEFHRV9TSVpFOworICAgICAgICAgU3lzUmVzIHNyZXM7CisKKyAgICAgICAgIHZnX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQoYW5vbl9zaXplKSk7CisgICAgICAgICB2Z19hc3NlcnQoVkdfSVNfUEFHRV9BTElHTkVEKHJlc3ZuX3NpemUpKTsKKyAgICAgICAgIHZnX2Fzc2VydChWR19JU19QQUdFX0FMSUdORUQoYW5vbl9zdGFydCkpOworICAgICAgICAgdmdfYXNzZXJ0KFZHX0lTX1BBR0VfQUxJR05FRChyZXN2bl9zdGFydCkpOworICAgICAgICAgdmdfYXNzZXJ0KGFub25fc2l6ZSA+IDApOworCisgICAgICAgICAvKiBBZGRyZXNzIHNwYWNlIG1hbmFnZXIgY2hlY2tzIGZvciBmcmVlIGFkZHJlc3Mgc3BhY2UgZm9yIHVzOworICAgICAgICAgICAgcmVzZXJ2YXRpb24gd291bGQgbm90IGJlIG90aGVyd2lzZSBjcmVhdGVkLiAqLworICAgICAgICAgQm9vbCBvayA9IFZHXyhhbV9jcmVhdGVfcmVzZXJ2YXRpb24pKHJlc3ZuX3N0YXJ0LCByZXN2bl9zaXplLCBTbUxvd2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub25fc2l6ZSk7CisgICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICBWR18odW1zZykoImJyayBzZWdtZW50IG92ZXJmbG93IGluIHRocmVhZCAjJWQ6IGNhbid0IGdyb3cgIgorICAgICAgICAgICAgICAgICAgICAgICJ0byAlI2x4XG4iLCB0aWQsIG5ld19icmspOworICAgICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTk9NRU0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorCisgICAgICAgICAvKiBFc3RhYmxpc2ggcHJvdGVjdGlvbiBmcm9tIHRoZSBleGlzdGluZyBzZWdtZW50LiAqLworICAgICAgICAgVUludCBwcm90ID0gKHNlZy0+aGFzUiA/IFZLSV9QUk9UX1JFQUQgOiAwKQorICAgICAgICAgICAgICAgICAgICAgfCAoc2VnLT5oYXNXID8gVktJX1BST1RfV1JJVEUgOiAwKQorICAgICAgICAgICAgICAgICAgICAgfCAoc2VnLT5oYXNYID8gVktJX1BST1RfRVhFQyA6IDApOworCisgICAgICAgICAvKiBBZGRyZXNzIHNwYWNlIG1hbmFnZXIgd2lsbCBtZXJnZSBvbGQgYW5kIG5ldyBkYXRhIHNlZ21lbnRzLiAqLworICAgICAgICAgc3JlcyA9IFZHXyhhbV9tbWFwX2Fub25fZml4ZWRfY2xpZW50KShhbm9uX3N0YXJ0LCBhbm9uX3NpemUsIHByb3QpOworICAgICAgICAgaWYgKHNyX2lzRXJyb3Ioc3JlcykpIHsKKyAgICAgICAgICAgIFZHXyh1bXNnKSgiQ2Fubm90IG1hcCBtZW1vcnkgdG8gZ3JvdyBicmsgc2VnbWVudCBpbiB0aHJlYWQgIyVkICIKKyAgICAgICAgICAgICAgICAgICAgICAidG8gJSNseFxuIiwgdGlkLCBuZXdfYnJrKTsKKyAgICAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRU5PTUVNKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgIHZnX2Fzc2VydChzcl9SZXMoc3JlcykgPT0gYW5vbl9zdGFydCk7CisKKyAgICAgICAgIHNlZyA9IFZHXyhhbV9maW5kX25zZWdtZW50KShvbGRfYnJrX2Jhc2VfcGd1cCk7CisgICAgICAgICBzZWcyID0gVkdfKGFtX2ZpbmRfbnNlZ21lbnQpKFZHX1BHUk9VTkRVUChuZXdfYnJrKSAtIDEpOworICAgICAgICAgdmdfYXNzZXJ0KHNlZyk7CisgICAgICAgICB2Z19hc3NlcnQoc2VnMik7CisgICAgICAgICB2Z19hc3NlcnQoc2VnID09IHNlZzIpOworICAgICAgICAgdmdfYXNzZXJ0KG5ld19icmsgPD0gc2VnLT5lbmQgKyAxKTsKKyAgICAgIH0KKyAgIH0KKworICAgLyogV2UgYXJlIGRvbmUsIHVwZGF0ZSBWR18oYnJrX2xpbWl0KSwgdGVsbCB0aGUgdG9vbCBhYm91dCB0aGUgY2hhbmdlcywgYW5kCisgICAgICBsZWF2ZS4gKi8KKyAgIFZHXyhicmtfbGltaXQpID0gbmV3X2JyazsKKyAgIFZHX1RSQUNLKG5ld19tZW1fYnJrLCBvbGRfYnJrX2xpbWl0LCBuZXdfYnJrIC0gb2xkX2Jya19saW1pdCwgdGlkKTsKKyAgIFNFVF9TVEFUVVNfU3VjY2VzcygwKTsKK30KKworUFJFKHN5c19zdGF0KQoreworICAgLyogaW50IHN0YXQoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0YXQgKmJ1Zik7ICovCisgICAvKiBOb3RlOiBXZSBjb3VsZCB1c2UgaGVyZSB0aGUgc3lzX25ld3N0YXQgZ2VuZXJpYyB3cmFwcGVyLCBidXQgdGhlICduZXcnCisgICAgICBpbiBpdHMgbmFtZSBpcyByYXRoZXIgY29uZnVzaW5nIGluIHRoZSBTb2xhcmlzIGNvbnRleHQsIHRodXMgd2UgcHJvdmlkZQorICAgICAgb3VyIG93biB3cmFwcGVyLiAqLworICAgUFJJTlQoInN5c19zdGF0ICggJSNseCglcyksICUjbHggKSIsIEFSRzEsIChIQ2hhciAqKSBBUkcxLCBBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIobG9uZywgInN0YXQiLCBjb25zdCBjaGFyICosIHBhdGgsIHN0cnVjdCBzdGF0ICosIGJ1Zik7CisKKyAgIFBSRV9NRU1fUkFTQ0lJWigic3RhdChwYXRoKSIsIEFSRzEpOworICAgUFJFX01FTV9XUklURSgic3RhdChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdCkpOworfQorCitQT1NUKHN5c19zdGF0KQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdCkpOworfQorCitQUkUoc3lzX2xzZWVrKQoreworICAgLyogb2ZmX3QgbHNlZWsoaW50IGZpbGRlcywgb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsgKi8KKyAgIFBSSU5UKCJzeXNfbHNlZWsgKCAlbGQsICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczKTsKKyAgIFBSRV9SRUdfUkVBRDMobG9uZywgImxzZWVrIiwgaW50LCBmaWxkZXMsIHZraV9vZmZfdCwgb2Zmc2V0LCBpbnQsIHdoZW5jZSk7CisKKyAgIC8qIFN0YXkgc2FuZS4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJsc2VlayIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BSRShzeXNfbW91bnQpCit7CisgICAvKiBpbnQgbW91bnQoY29uc3QgY2hhciAqc3BlYywgY29uc3QgY2hhciAqZGlyLCBpbnQgbWZsYWcsIGNoYXIgKmZzdHlwZSwKKyAgICAgICAgICAgICAgICBjaGFyICpkYXRhcHRyLCBpbnQgZGF0YWxlbiwgY2hhciAqb3B0cHRyLCBpbnQgb3B0bGVuKTsgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgaWYgKEFSRzMgJiBWS0lfTVNfT1BUSU9OU1RSKSB7CisgICAgICAvKiA4LWFyZ3VtZW50IG1vdW50ICovCisgICAgICBQUklOVCgic3lzX21vdW50ICggJSNseCglcyksICUjbHgoJXMpLCAlbGQsICUjbHgoJXMpLCAlI2x4LCAlbGQsICIKKyAgICAgICAgICAgICIlI2x4KCVzKSwgJWxkICkiLCBBUkcxLCAoSENoYXIgKikgQVJHMSwgQVJHMiwgKEhDaGFyICopIEFSRzIsIFNBUkczLAorICAgICAgICAgICAgQVJHNCwgKEhDaGFyICopIEFSRzQsIEFSRzUsIEFSRzYsIEFSRzcsIChIQ2hhciAqKSBBUkc3LCBTQVJHOCk7CisgICAgICBQUkVfUkVHX1JFQUQ4KGxvbmcsICJtb3VudCIsIGNvbnN0IGNoYXIgKiwgc3BlYywgY29uc3QgY2hhciAqLCBkaXIsCisgICAgICAgICAgICAgICAgICAgIGludCwgbWZsYWcsIGNoYXIgKiwgZnN0eXBlLCBjaGFyICosIGRhdGFwdHIsIGludCwgZGF0YWxlbiwKKyAgICAgICAgICAgICAgICAgICAgY2hhciAqLCBvcHRwdHIsIGludCwgb3B0bGVuKTsKKyAgIH0KKyAgIGVsc2UgaWYgKEFSRzMgJiBWS0lfTVNfREFUQSkgeworICAgICAgLyogNi1hcmd1bWVudCBtb3VudCAqLworICAgICAgUFJJTlQoInN5c19tb3VudCAoICUjbHgoJXMpLCAlI2x4KCVzKSwgJWxkLCAlI2x4KCVzKSwgJSNseCwgJWxkICkiLAorICAgICAgICAgICAgQVJHMSwgKEhDaGFyICopIEFSRzEsIEFSRzIsIChIQ2hhciAqKSBBUkcyLCBTQVJHMywgQVJHNCwKKyAgICAgICAgICAgIChIQ2hhciAqKSBBUkc0LCBBUkc1LCBTQVJHNik7CisgICAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJtb3VudCIsIGNvbnN0IGNoYXIgKiwgc3BlYywgY29uc3QgY2hhciAqLCBkaXIsCisgICAgICAgICAgICAgICAgICAgIGludCwgbWZsYWcsIGNoYXIgKiwgZnN0eXBlLCBjaGFyICosIGRhdGFwdHIsCisgICAgICAgICAgICAgICAgICAgIGludCwgZGF0YWxlbik7CisgICB9CisgICBlbHNlIHsKKyAgICAgIC8qIDQtYXJndW1lbnQgbW91bnQgKi8KKyAgICAgIFBSSU5UKCJzeXNfbW91bnQgKCAlI2x4KCVzKSwgJSNseCglcyksICVsZCwgJSNseCglcykgKSIsIEFSRzEsCisgICAgICAgICAgICAoSENoYXIgKikgQVJHMSwgQVJHMiwgKEhDaGFyICopIEFSRzIsIFNBUkczLCBBUkc0LCAoSENoYXIgKikgQVJHNCk7CisgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJtb3VudCIsIGNvbnN0IGNoYXIgKiwgc3BlYywgY29uc3QgY2hhciAqLCBkaXIsCisgICAgICAgICAgICAgICAgICAgIGludCwgbWZsYWcsIGNoYXIgKiwgZnN0eXBlKTsKKyAgIH0KKyAgIGlmIChBUkcxKQorICAgICAgUFJFX01FTV9SQVNDSUlaKCJtb3VudChzcGVjKSIsIEFSRzEpOworICAgUFJFX01FTV9SQVNDSUlaKCJtb3VudChkaXIpIiwgQVJHMik7CisgICBpZiAoQVJHNCAmJiBBUkc0ID49IDI1NikgeworICAgICAgLyogSWYgQVJHNCA8IDI1NiwgdGhlbiBpdCdzIGFuIGluZGV4IHRvIGEgZnMgdGFibGUgaW4gdGhlIGtlcm5lbC4gKi8KKyAgICAgIFBSRV9NRU1fUkFTQ0lJWigibW91bnQoZnN0eXBlKSIsIEFSRzQpOworICAgfQorICAgaWYgKEFSRzMgJiAoVktJX01TX0RBVEEgfCBWS0lfTVNfT1BUSU9OU1RSKSkgeworICAgICAgaWYgKEFSRzUpCisgICAgICAgICBQUkVfTUVNX1JFQUQoIm1vdW50KGRhdGFwdHIpIiwgQVJHNSwgQVJHNik7CisgICAgICBpZiAoKEFSRzMgJiBWS0lfTVNfT1BUSU9OU1RSKSAmJiBBUkc3KSB7CisgICAgICAgICAvKiBpbi9vdXQgYnVmZmVyICovCisgICAgICAgICBQUkVfTUVNX1JBU0NJSVooIm1vdW50KG9wdHB0cikiLCBBUkc3KTsKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoIm1vdW50KG9wdHB0cikiLCBBUkc3LCBBUkc4KTsKKyAgICAgIH0KKyAgIH0KK30KKworUE9TVChzeXNfbW91bnQpCit7CisgICBpZiAoQVJHMyAmIFZLSV9NU19PUFRJT05TVFIpIHsKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzcsIFZHXyhzdHJsZW4pKChIQ2hhciopQVJHNykgKyAxKTsKKyAgIH0gZWxzZSBpZiAoQVJHMyAmIFZLSV9NU19EQVRBKSB7CisgICAgICBpZiAoKEFSRzIpICYmCisgICAgICAgICAgKEFSRzMgJiBNU19OT01OVFRBQikgJiYKKyAgICAgICAgICAoVkdfU1RSRVEoKEhDaGFyICopIEFSRzQsICJuYW1lZnMiKSkgJiYKKyAgICAgICAgICAoQVJHNiA9PSBzaXplb2Yoc3RydWN0IHZraV9uYW1lZmQpKSAmJgorICAgICAgICAgIE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCAqKSBBUkc1LCBBUkc2KSkgeworICAgICAgICAgLyogTW9zdCBsaWtlbHkgYW4gZmF0dGFjaCgpIGNhbGwgZm9yIGEgZG9vciBmaWxlIGRlc2NyaXB0b3IuICovCisgICAgICAgICBkb29yX3NlcnZlcl9mYXR0YWNoKCgoc3RydWN0IHZraV9uYW1lZmQgKikgQVJHNSktPmZkLCAoSENoYXIgKikgQVJHMik7CisgICAgICB9CisgICB9Cit9CisKK1BSRShzeXNfcmVhZGxpbmthdCkKK3sKKyAgIC8qIHNzaXplX3QgcmVhZGxpbmthdChpbnQgZGZkLCBjb25zdCBjaGFyICpwYXRoLCBjaGFyICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZnNpeik7ICovCisgICBIQ2hhciBuYW1lWzMwXTsgICAgLy8gbGFyZ2UgZW5vdWdoCisgICBXb3JkIHNhdmVkID0gU1lTTk87CisKKyAgIC8qIEludGVycHJldCB0aGUgZmlyc3QgYXJndW1lbnQgYXMgMzItYml0IHZhbHVlIGV2ZW4gb24gNjQtYml0IGFyY2hpdGVjdHVyZS4KKyAgICAgIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gTGludXgsIGZvciBleGFtcGxlLCB3aGVyZSBnbGliYyBzaWduLWV4dGVuZHMgaXQuICovCisgICBJbnQgZGZkID0gKEludCkgQVJHMTsKKworICAgUFJJTlQoInN5c19yZWFkbGlua2F0ICggJWQsICUjbHgoJXMpLCAlI2x4LCAlbGQgKSIsIGRmZCwgQVJHMiwKKyAgICAgICAgIChIQ2hhciAqKSBBUkcyLCBBUkczLCBTQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJyZWFkbGlua2F0IiwgaW50LCBkZmQsIGNvbnN0IGNoYXIgKiwgcGF0aCwKKyAgICAgICAgICAgICAgICAgY2hhciAqLCBidWYsIGludCwgYnVmc2l6KTsKKyAgIFBSRV9NRU1fUkFTQ0lJWigicmVhZGxpbmthdChwYXRoKSIsIEFSRzIpOworICAgUFJFX01FTV9XUklURSgicmVhZGxpbmthdChidWYpIiwgQVJHMywgQVJHNCk7CisKKyAgIC8qIEJlIHN0cmljdCBidXQgaWdub3JlIGRmZCBmb3IgYWJzb2x1dGUgcGF0aC4gKi8KKyAgIGlmIChkZmQgIT0gVktJX0FUX0ZEQ1dECisgICAgICAgJiYgTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkICopIEFSRzIsIDEpCisgICAgICAgJiYgKChIQ2hhciAqKSBBUkcyKVswXSAhPSAnLycKKyAgICAgICAmJiAhTUxfKGZkX2FsbG93ZWQpKGRmZCwgInJlYWRsaW5rYXQiLCB0aWQsIEZhbHNlKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICByZXR1cm47CisgICB9CisKKyAgIC8qIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSByZWFkbGlua2F0IGlzIGxvb2tpbmcgYXQgL3Byb2Mvc2VsZi9wYXRoL2Eub3V0IG9yCisgICAgICAvcHJvYy88cGlkPi9wYXRoL2Eub3V0LiAqLworICAgVkdfKHNwcmludGYpKG5hbWUsICIvcHJvYy8lZC9wYXRoL2Eub3V0IiwgVkdfKGdldHBpZCkoKSk7CisgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkKilBUkcyLCAxKSAmJgorICAgICAgICghVkdfKHN0cmNtcCkoKEhDaGFyKilBUkcyLCBuYW1lKSB8fAorICAgICAgICAhVkdfKHN0cmNtcCkoKEhDaGFyKilBUkcyLCAiL3Byb2Mvc2VsZi9wYXRoL2Eub3V0IikpKSB7CisgICAgICBWR18oc3ByaW50ZikobmFtZSwgIi9wcm9jL3NlbGYvcGF0aC8lZCIsIFZHXyhjbF9leGVjX2ZkKSk7CisgICAgICBTRVRfU1RBVFVTX2Zyb21fU3lzUmVzKFZHXyhkb19zeXNjYWxsNCkoc2F2ZWQsIGRmZCwgKFVXb3JkKW5hbWUsIEFSRzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJHNCkpOworICAgfQorfQorCitQT1NUKHN5c19yZWFkbGlua2F0KQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgUkVTKTsKK30KKworUFJFKHN5c19zdGltZSkKK3sKKyAgIC8qIEtlcm5lbDogaW50IHN0aW1lKHRpbWVfdCB0aW1lKTsgKi8KKyAgIFBSSU5UKCJzeXNfc3RpbWUgKCAlbGQgKSIsIEFSRzEpOworICAgUFJFX1JFR19SRUFEMShsb25nLCAic3RpbWUiLCB2a2lfdGltZV90LCB0aW1lKTsKK30KKworUFJFKHN5c19mc3RhdCkKK3sKKyAgIC8qIGludCBmc3RhdChpbnQgZmlsZGVzLCBzdHJ1Y3Qgc3RhdCAqYnVmKTsgKi8KKyAgIC8qIE5vdGU6IFdlIGNvdWxkIHVzZSBoZXJlIHRoZSBzeXNfbmV3ZnN0YXQgZ2VuZXJpYyB3cmFwcGVyLCBidXQgdGhlICduZXcnCisgICAgICBpbiBpdHMgbmFtZSBpcyByYXRoZXIgY29uZnVzaW5nIGluIHRoZSBTb2xhcmlzIGNvbnRleHQsIHRodXMgd2UgcHJvdmlkZQorICAgICAgb3VyIG93biB3cmFwcGVyLiAqLworICAgUFJJTlQoInN5c19mc3RhdCAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAiZnN0YXQiLCBpbnQsIGZpbGRlcywgc3RydWN0IHN0YXQgKiwgYnVmKTsKKyAgIFBSRV9NRU1fV1JJVEUoImZzdGF0KGJ1ZikiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0KSk7CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJmc3RhdCIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BPU1Qoc3lzX2ZzdGF0KQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdCkpOworfQorCisjaWYgZGVmaW5lZChTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTEwpCitQUkUoc3lzX2ZyZWFscGF0aGF0KQoreworICAgLyogaW50IGZyZWFscGF0aGF0KGludCBmZCwgY2hhciAqcGF0aCwgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKTsgKi8KKworICAgLyogSW50ZXJwcmV0IHRoZSBmaXJzdCBhcmd1bWVudCBhcyAzMi1iaXQgdmFsdWUgZXZlbiBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlLgorICAgICAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBMaW51eCwgZm9yIGV4YW1wbGUsIHdoZXJlIGdsaWJjIHNpZ24tZXh0ZW5kcyBpdC4gKi8KKyAgIEludCBmZCA9IChJbnQpIEFSRzE7CisKKyAgIFBSSU5UKCJzeXNfZnJlYWxwYXRoYXQgKCAlZCwgJSNseCglcyksICUjbHgsICVsdSApIiwKKyAgICAgICAgIGZkLCBBUkcyLCAoSENoYXIgKikgQVJHMiwgQVJHMywgQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJmcmVhbHBhdGhhdCIsIGludCwgZmQsIGNoYXIgKiwgcGF0aCwKKyAgICAgICAgICAgICAgICAgY2hhciAqLCBidWYsIHZraV9zaXplX3QsIGJ1Zmxlbik7CisgICBQUkVfTUVNX1JBU0NJSVooImZyZWFscGF0aGF0KHBhdGgpIiwgQVJHMik7CisgICBQUkVfTUVNX1dSSVRFKCJmcmVhbHBhdGhhdChidWYpIiwgQVJHMywgQVJHNCk7CisKKyAgIC8qIEJlIHN0cmljdCBidXQgaWdub3JlIGZkIGZvciBhYnNvbHV0ZSBwYXRoLiAqLworICAgaWYgKGZkICE9IFZLSV9BVF9GRENXRAorICAgICAgICYmIE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCAqKSBBUkcyLCAxKQorICAgICAgICYmICgoSENoYXIgKikgQVJHMilbMF0gIT0gJy8nCisgICAgICAgJiYgIU1MXyhmZF9hbGxvd2VkKShmZCwgImZyZWFscGF0aGF0IiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUE9TVChzeXNfZnJlYWxwYXRoYXQpCit7CisgICBQT1NUX01FTV9XUklURShBUkczLCBWR18oc3RybGVuKSgoSENoYXIgKikgQVJHMykgKyAxKTsKK30KKyNlbmRpZiAvKiBTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTEwgKi8KKworUFJFKHN5c19zdHR5KQoreworICAgLyogaW50IHN0dHkoaW50IGZkLCBjb25zdCBzdHJ1Y3Qgc2d0dHliICp0dHkpOyAqLworICAgUFJJTlQoInN5c19zdHR5ICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzdHR5IiwgaW50LCBmZCwKKyAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZraV9zZ3R0eWIgKiwgdHR5KTsKKyAgIFBSRV9NRU1fUkVBRCgic3R0eSh0dHkpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc2d0dHliKSk7CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJzdHR5IiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUFJFKHN5c19ndHR5KQoreworICAgLyogaW50IGd0dHkoaW50IGZkLCBzdHJ1Y3Qgc2d0dHliICp0dHkpOyAqLworICAgUFJJTlQoInN5c19ndHR5ICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJndHR5IiwgaW50LCBmZCwgc3RydWN0IHZraV9zZ3R0eWIgKiwgdHR5KTsKKyAgIFBSRV9NRU1fV1JJVEUoImd0dHkodHR5KSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3NndHR5YikpOworCisgICAvKiBCZSBzdHJpY3QuICovCisgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcxLCAiZ3R0eSIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BPU1Qoc3lzX2d0dHkpCit7CisgICBQT1NUX01FTV9XUklURShBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zZ3R0eWIpKTsKK30KKworUFJFKHN5c19wZ3Jwc3lzKQoreworICAgLyogS2VybmVsOiBpbnQgc2V0cGdycChpbnQgZmxhZywgaW50IHBpZCwgaW50IHBnaWQpOyAqLworICAgc3dpdGNoIChBUkcxIC8qZmxhZyovKSB7CisgICBjYXNlIDA6CisgICAgICAvKiBMaWJjOiBwaWRfdCBnZXRwZ3JwKHZvaWQpOyAqLworICAgICAgUFJJTlQoInN5c19wZ3Jwc3lzICggJWxkICkiLCBTQVJHMSk7CisgICAgICBQUkVfUkVHX1JFQUQxKGxvbmcsIFNDMigicGdycHN5cyIsICJnZXRwZ3JwIiksIGludCwgZmxhZyk7CisgICAgICBicmVhazsKKyAgIGNhc2UgMToKKyAgICAgIC8qIExpYmM6IHBpZF90IHNldHBncnAodm9pZCk7ICovCisgICAgICBQUklOVCgic3lzX3BncnBzeXMgKCAlbGQgKSIsIFNBUkcxKTsKKyAgICAgIFBSRV9SRUdfUkVBRDEobG9uZywgU0MyKCJwZ3Jwc3lzIiwgInNldHBncnAiKSwgaW50LCBmbGFnKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSAyOgorICAgICAgLyogTGliYzogcGlkX3QgZ2V0c2lkKHBpZF90IHBpZCk7ICovCisgICAgICBQUklOVCgic3lzX3BncnBzeXMgKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgU0MyKCJwZ3Jwc3lzIiwgImdldHNpZCIpLCBpbnQsIGZsYWcsCisgICAgICAgICAgICAgICAgICAgIHZraV9waWRfdCwgcGlkKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSAzOgorICAgICAgLyogTGliYzogcGlkX3Qgc2V0c2lkKHZvaWQpOyAqLworICAgICAgUFJJTlQoInN5c19wZ3Jwc3lzICggJWxkICkiLCBTQVJHMSk7CisgICAgICBQUkVfUkVHX1JFQUQxKGxvbmcsIFNDMigicGdycHN5cyIsICJzZXRzaWQiKSwgaW50LCBmbGFnKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSA0OgorICAgICAgLyogTGliYzogcGlkX3QgZ2V0cGdpZChwaWRfdCBwaWQpOyAqLworICAgICAgUFJJTlQoInN5c19wZ3Jwc3lzICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigicGdycHN5cyIsICJnZXRwZ2lkIiksIGludCwgZmxhZywKKyAgICAgICAgICAgICAgICAgICAgdmtpX3BpZF90LCBwaWQpOworICAgICAgYnJlYWs7CisgICBjYXNlIDU6CisgICAgICAvKiBMaWJjOiBpbnQgc2V0cGdpZChwaWRfdCBwaWQsIHBpZF90IHBnaWQpOyAqLworICAgICAgUFJJTlQoInN5c19wZ3Jwc3lzICggJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMyk7CisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMigicGdycHN5cyIsICJzZXRwZ2lkIiksIGludCwgZmxhZywKKyAgICAgICAgICAgICAgICAgICAgdmtpX3BpZF90LCBwaWQsIHZraV9waWRfdCwgcGdpZCk7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIHBncnBzeXMgY2FsbCB3aXRoIGZsYWcgJWxkLiIsIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19waXBlKQoreworI2lmIGRlZmluZWQoU09MQVJJU19ORVdfUElQRV9TWVNDQUxMKQorICAgLyogaW50IHBpcGUoaW50IGZpbGRlc1syXSwgaW50IGZsYWdzKTsgKi8KKyAgIFBSSU5UKCJzeXNfcGlwZSAoICUjbHgsICVsZCApIiwgQVJHMSwgU0FSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAicGlwZSIsIGludCAqLCBmaWxkZXMsIGludCwgZmxhZ3MpOworICAgUFJFX01FTV9XUklURSgicGlwZShmaWxkZXMpIiwgQVJHMSwgMiAqIHNpemVvZihpbnQpKTsKKyNlbHNlCisgICAvKiBsb25nbG9uZ190IHBpcGUoKTsgKi8KKyAgIFBSSU5UKCJzeXNfcGlwZSAoICkiKTsKKyAgIFBSRV9SRUdfUkVBRDAobG9uZywgInBpcGUiKTsKKyNlbmRpZiAvKiBTT0xBUklTX05FV19QSVBFX1NZU0NBTEwgKi8KK30KKworUE9TVChzeXNfcGlwZSkKK3sKKyAgIEludCBwMCwgcDE7CisKKyNpZiBkZWZpbmVkKFNPTEFSSVNfTkVXX1BJUEVfU1lTQ0FMTCkKKyAgIGludCAqZmRzID0gKGludCopQVJHMTsKKyAgIHAwID0gZmRzWzBdOworICAgcDEgPSBmZHNbMV07CisgICBQT1NUX01FTV9XUklURShBUkcxLCAyICogc2l6ZW9mKGludCkpOworI2Vsc2UKKyAgIHAwID0gUkVTOworICAgcDEgPSBSRVNISTsKKyNlbmRpZiAvKiBTT0xBUklTX05FV19QSVBFX1NZU0NBTEwgKi8KKworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkocDAsICJwaXBlIiwgdGlkLCBUcnVlKSB8fAorICAgICAgICFNTF8oZmRfYWxsb3dlZCkocDEsICJwaXBlIiwgdGlkLCBUcnVlKSkgeworICAgICAgVkdfKGNsb3NlKShwMCk7CisgICAgICBWR18oY2xvc2UpKHAxKTsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRU1GSUxFKTsKKyAgIH0KKyAgIGVsc2UgaWYgKFZHXyhjbG9fdHJhY2tfZmRzKSkgeworICAgICAgTUxfKHJlY29yZF9mZF9vcGVuX25hbWVsZXNzKSh0aWQsIHAwKTsKKyAgICAgIE1MXyhyZWNvcmRfZmRfb3Blbl9uYW1lbGVzcykodGlkLCBwMSk7CisgICB9Cit9CisKK1BSRShzeXNfZmFjY2Vzc2F0KQoreworICAgLyogaW50IGZhY2Nlc3NhdChpbnQgZmQsIGNvbnN0IGNoYXIgKnBhdGgsIGludCBhbW9kZSwgaW50IGZsYWcpOyAqLworCisgICAvKiBJbnRlcnByZXQgdGhlIGZpcnN0IGFyZ3VtZW50IGFzIDMyLWJpdCB2YWx1ZSBldmVuIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmUuCisgICAgICBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIExpbnV4LCBmb3IgZXhhbXBsZSwgd2hlcmUgZ2xpYmMgc2lnbi1leHRlbmRzIGl0LiAqLworICAgSW50IGZkID0gKEludCkgQVJHMTsKKworICAgUFJJTlQoInN5c19mYWNjZXNzYXQgKCAlZCwgJSNseCglcyksICVsZCwgJWxkICkiLCBmZCwgQVJHMiwKKyAgICAgICAgIChIQ2hhciAqKSBBUkcyLCBTQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAiZmFjY2Vzc2F0IiwgaW50LCBmZCwgY29uc3QgY2hhciAqLCBwYXRoLAorICAgICAgICAgICAgICAgICBpbnQsIGFtb2RlLCBpbnQsIGZsYWcpOworICAgUFJFX01FTV9SQVNDSUlaKCJmYWNjZXNzYXQocGF0aCkiLCBBUkcyKTsKKworICAgLyogQmUgc3RyaWN0IGJ1dCBpZ25vcmUgZmQgZm9yIGFic29sdXRlIHBhdGguICovCisgICBpZiAoZmQgIT0gVktJX0FUX0ZEQ1dECisgICAgICAgJiYgTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkICopIEFSRzIsIDEpCisgICAgICAgJiYgKChIQ2hhciAqKSBBUkcyKVswXSAhPSAnLycKKyAgICAgICAmJiAhTUxfKGZkX2FsbG93ZWQpKGZkLCAiZmFjY2Vzc2F0IiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUFJFKHN5c19ta25vZGF0KQoreworICAgLyogaW50IG1rbm9kYXQoaW50IGZkLCBjaGFyICpmbmFtZSwgbW9kZV90IGZtb2RlLCBkZXZfdCBkZXYpOyAqLworCisgICAvKiBJbnRlcnByZXQgdGhlIGZpcnN0IGFyZ3VtZW50IGFzIDMyLWJpdCB2YWx1ZSBldmVuIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmUuCisgICAgICBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIExpbnV4LCBmb3IgZXhhbXBsZSwgd2hlcmUgZ2xpYmMgc2lnbi1leHRlbmRzIGl0LiAqLworICAgSW50IGZkID0gKEludCkgQVJHMTsKKworICAgUFJJTlQoInN5c19ta25vZGF0ICggJWQsICUjbHgoJXMpLCAlbGQsICVsZCApIiwgZmQsIEFSRzIsCisgICAgICAgICAoSENoYXIgKikgQVJHMiwgU0FSRzMsIFNBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQobG9uZywgIm1rbm9kYXQiLCBpbnQsIGZkLCBjb25zdCBjaGFyICosIGZuYW1lLAorICAgICAgICAgICAgICAgICB2a2lfbW9kZV90LCBmbW9kZSwgdmtpX2Rldl90LCBkZXYpOworICAgUFJFX01FTV9SQVNDSUlaKCJta25vZGF0KGZuYW1lKSIsIEFSRzIpOworCisgICAvKiBCZSBzdHJpY3QgYnV0IGlnbm9yZSBmZCBmb3IgYWJzb2x1dGUgcGF0aC4gKi8KKyAgIGlmIChmZCAhPSBWS0lfQVRfRkRDV0QKKyAgICAgICAmJiBNTF8oc2FmZV90b19kZXJlZikoKHZvaWQgKikgQVJHMiwgMSkKKyAgICAgICAmJiAoKEhDaGFyICopIEFSRzIpWzBdICE9ICcvJworICAgICAgICYmICFNTF8oZmRfYWxsb3dlZCkoZmQsICJta25vZGF0IiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKKworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CisKK1BPU1Qoc3lzX21rbm9kYXQpCit7CisgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShSRVMsICJta25vZGF0IiwgdGlkLCBUcnVlKSkgeworICAgICAgVkdfKGNsb3NlKShSRVMpOworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTUZJTEUpOworICAgfSBlbHNlIGlmIChWR18oY2xvX3RyYWNrX2ZkcykpCisgICAgICBNTF8ocmVjb3JkX2ZkX29wZW5fd2l0aF9naXZlbl9uYW1lKSh0aWQsIFJFUywgKEhDaGFyICopIEFSRzIpOworfQorCitQUkUoc3lzX3N5c2k4NikKK3sKKyAgIC8qIGludCBzeXNpODYoaW50IGNtZCwgdWludHB0cl90IGFyZzEsIHVpbnRwdHJfdCBhcmcyLCB1aW50cHRyX3QgYXJnMyk7ICovCisgICBQUklOVCgic3lzX3N5c2k4NiAoICVsZCwgJSNseCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAic3lzaTg2IiwgaW50LCBjbWQsIHVpbnRwdHJfdCwgYXJnMSwgdWludHB0cl90LCBhcmcyLAorICAgICAgICAgICAgICAgICB1aW50cHRyX3QsIGFyZzMpOworCisgICBzd2l0Y2ggKEFSRzEgLypjbWQqLykgeworICAgY2FzZSBWS0lfU0k4NkZQU1RBUlQ6CisgICAgICBQUkVfTUVNX1dSSVRFKCJzeXNpODYoZnBfaHcpIiwgQVJHMiwgc2l6ZW9mKHZraV91aW50X3QpKTsKKyAgICAgIC8qIEFSRzMgaXMgYSBkZXNpcmVkIHg4NyBGQ1cgdmFsdWUsIEFSRzQgaXMgYSBkZXNpcmVkIFNTRSBNWENTUiB2YWx1ZS4KKyAgICAgICAgIFRoZXkgYXJlIHBhc3NlZCB0byB0aGUga2VybmVsIGJ1dCBWIHdpbGwgY2hhbmdlIHRoZW0gbGF0ZXIgYW55d2F5CisgICAgICAgICAodGhpcyBpcyBhIGdlbmVyYWwgVmFsZ3JpbmQgbGltaXRhdGlvbiBkZXNjcmliZWQgaW4gdGhlIG9mZmljaWFsCisgICAgICAgICBkb2N1bWVudGF0aW9uKS4gKi8KKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgc3lzaTg2IGNhbGwgd2l0aCBjbWQgJWxkLiIsIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KK30KKworUE9TVChzeXNfc3lzaTg2KQoreworICAgc3dpdGNoIChBUkcxIC8qY21kKi8pIHsKKyAgIGNhc2UgVktJX1NJODZGUFNUQVJUOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHZraV91aW50X3QpKTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX3NobXN5cykKK3sKKyAgIC8qIEtlcm5lbDogdWludHB0cl90IHNobXN5cyhpbnQgb3Bjb2RlLCB1aW50cHRyX3QgYTAsIHVpbnRwdHJfdCBhMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYTIsIHVpbnRwdHJfdCBhMyk7CisgICAgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworCisgICBzd2l0Y2ggKEFSRzEgLypvcGNvZGUqLykgeworICAgY2FzZSBWS0lfU0hNQVQ6CisgICAgICAvKiBMaWJjOiB2b2lkICpzaG1hdChpbnQgc2htaWQsIGNvbnN0IHZvaWQgKnNobWFkZHIsIGludCBzaG1mbGcpOyAqLworICAgICAgUFJJTlQoInN5c19zaG1zeXMgKCAlbGQsICVsZCwgJSNseCwgJWxkICkiLAorICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBBUkczLCBTQVJHNCk7CisgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMigic2htc3lzIiwgInNobWF0IiksIGludCwgb3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICBpbnQsIHNobWlkLCBjb25zdCB2b2lkICosIHNobWFkZHIsIGludCwgc2htZmxnKTsKKworICAgICAgVVdvcmQgYWRkciA9IE1MXyhnZW5lcmljX1BSRV9zeXNfc2htYXQpKHRpZCwgQVJHMiwgQVJHMywgQVJHNCk7CisgICAgICBpZiAoYWRkciA9PSAwKQorICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgICAgZWxzZQorICAgICAgICAgQVJHMyA9IGFkZHI7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfU0hNQ1RMOgorICAgICAgLyogTGliYzogaW50IHNobWN0bChpbnQgc2htaWQsIGludCBjbWQsIHN0cnVjdCBzaG1pZF9kcyAqYnVmKTsgKi8KKyAgICAgIHN3aXRjaCAoQVJHMyAvKiBjbWQgKi8pIHsKKyAgICAgIGNhc2UgVktJX1NITV9MT0NLOgorICAgICAgICAgUFJJTlQoInN5c19zaG1zeXMgKCAlbGQsICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczKTsKKyAgICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MzKCJzaG1zeXMiLCAic2htY3RsIiwgImxvY2siKSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50LCBvcGNvZGUsIGludCwgc2htaWQsIGludCwgY21kKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfU0hNX1VOTE9DSzoKKyAgICAgICAgIFBSSU5UKCJzeXNfc2htc3lzICggJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMyk7CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygic2htc3lzIiwgInNobWN0bCIsICJ1bmxvY2siKSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50LCBvcGNvZGUsIGludCwgc2htaWQsIGludCwgY21kKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfSVBDX1JNSUQ6CisgICAgICAgICBQUklOVCgic3lzX3NobXN5cyAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOworICAgICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzMoInNobXN5cyIsICJzaG1jdGwiLCAicm1pZCIpLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQsIG9wY29kZSwgaW50LCBzaG1pZCwgaW50LCBjbWQpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9JUENfU0VUOgorICAgICAgICAgUFJJTlQoInN5c19zaG1zeXMgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLAorICAgICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgQVJHNCk7CisgICAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMygic2htc3lzIiwgInNobWN0bCIsICJzZXQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50LCBvcGNvZGUsIGludCwgc2htaWQsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3NobWlkX2RzICosIGJ1Zik7CisKKyAgICAgICAgIHN0cnVjdCB2a2lfc2htaWRfZHMgKmJ1ZiA9IChzdHJ1Y3QgdmtpX3NobWlkX2RzICopIEFSRzQ7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgic2htc3lzKHNobWN0bCwgaXBjX3NldCwgYnVmLT5zaG1fcGVybS51aWQpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi0+c2htX3Blcm0udWlkKTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJzaG1zeXMoc2htY3RsLCBpcGNfc2V0LCBidWYtPnNobV9wZXJtLmdpZCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLT5zaG1fcGVybS5naWQpOworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoInNobXN5cyhzaG1jdGwsIGlwY19zZXQsIGJ1Zi0+c2htX3Blcm0ubW9kZSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLT5zaG1fcGVybS5tb2RlKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfSVBDX1NUQVQ6CisgICAgICAgICBQUklOVCgic3lzX3NobXN5cyAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsCisgICAgICAgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKKyAgICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MzKCJzaG1zeXMiLCAic2htY3RsIiwgInN0YXQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50LCBvcGNvZGUsIGludCwgc2htaWQsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3NobWlkX2RzICosIGJ1Zik7CisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJzaG1zeXMoc2htY3RsLCBpcGNfc3RhdCwgYnVmKSIsIEFSRzQsCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmtpX3NobWlkX2RzKSk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfSVBDX1NFVDY0OgorICAgICAgICAgUFJJTlQoInN5c19zaG1zeXMgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLAorICAgICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgQVJHNCk7CisgICAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMygic2htc3lzIiwgInNobWN0bCIsICJzZXQ2NCIpLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQsIG9wY29kZSwgaW50LCBzaG1pZCwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfc2htaWRfZHM2NCAqLCBidWYpOworCisgICAgICAgICBzdHJ1Y3QgdmtpX3NobWlkX2RzNjQgKmJ1ZjY0ID0gKHN0cnVjdCB2a2lfc2htaWRfZHM2NCAqKSBBUkc0OworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoInNobXN5cyhzaG1jdGwsIGlwY19zZXQ2NCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgImJ1Zi0+c2hteF9wZXJtLmlwY3hfdWlkKSIsCisgICAgICAgICAgICAgICAgICAgICAgICBidWY2NC0+c2hteF9wZXJtLmlwY3hfdWlkKTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJzaG1zeXMoc2htY3RsLCBpcGNfc2V0NjQsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJidWYtPnNobXhfcGVybS5pcGN4X2dpZCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmNjQtPnNobXhfcGVybS5pcGN4X2dpZCk7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgic2htc3lzKHNobWN0bCwgaXBjX3NldDY0LCAiCisgICAgICAgICAgICAgICAgICAgICAgICAiYnVmLT5zaG14X3Blcm0uaXBjeF9tb2RlKSIsCisgICAgICAgICAgICAgICAgICAgICAgICBidWY2NC0+c2hteF9wZXJtLmlwY3hfbW9kZSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0lQQ19TVEFUNjQ6CisgICAgICAgICBQUklOVCgic3lzX3NobXN5cyAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsCisgICAgICAgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKKyAgICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MzKCJzaG1zeXMiLCAic2htY3RsIiwgInN0YXQ2NCIpLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQsIG9wY29kZSwgaW50LCBzaG1pZCwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfc2htaWRfZHM2NCAqLCBidWYpOworICAgICAgICAgUFJFX01FTV9XUklURSgic2htc3lzKHNobWN0bCwgaXBjX3N0YXQ2NCwgYnVmKSIsIEFSRzQsCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmtpX3NobWlkX2RzNjQpKTsKKyAgICAgICAgIGJyZWFrOworI2lmIGRlZmluZWQoU09MQVJJU19TSE1fTkVXKQorICAgICAgY2FzZSBWS0lfSVBDX1hTVEFUNjQ6CisgICAgICAgICBQUklOVCgic3lzX3NobXN5cyAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsCisgICAgICAgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKKyAgICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MzKCJzaG1zeXMiLCAic2htY3RsIiwgInhzdGF0NjQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50LCBvcGNvZGUsIGludCwgc2htaWQsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3NobWlkX2RzNjQgKiwgYnVmKTsKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInNobXN5cyhzaG1jdGwsIGlwY194c3RhdDY0LCBidWYpIiwgQVJHNCwKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCB2a2lfc2htaWRfeGRzNjQpKTsKKyAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIFNPTEFSSVNfU0hNX05FVyAqLworICAgICAgZGVmYXVsdDoKKyAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgc2htc3lzKHNobWN0bCkgY2FsbCB3aXRoICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY21kICVsZC4iLCBTQVJHMyk7CisgICAgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfU0hNRFQ6CisgICAgICAvKiBMaWJjOiBpbnQgc2htZHQoY29uc3Qgdm9pZCAqc2htYWRkcik7ICovCisgICAgICBQUklOVCgic3lzX3NobXN5cyAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoInNobXN5cyIsICJzaG1kdCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqLCBzaG1hZGRyKTsKKworICAgICAgaWYgKCFNTF8oZ2VuZXJpY19QUkVfc3lzX3NobWR0KSh0aWQsIEFSRzIpKQorCSBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VJTlZBTCk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfU0hNR0VUOgorICAgICAgLyogTGliYzogaW50IHNobWdldChrZXlfdCBrZXksIHNpemVfdCBzaXplLCBpbnQgc2htZmxnKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfc2htc3lzICggJWxkLCAlbGQsICVsdSwgJWxkICkiLAorICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBBUkczLCBBUkc0KTsKKyAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MyKCJzaG1zeXMiLCAic2htZ2V0IiksIGludCwgb3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICB2a2lfa2V5X3QsIGtleSwgdmtpX3NpemVfdCwgc2l6ZSwgaW50LCBzaG1mbGcpOworICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX1NITUlEUzoKKyAgICAgIC8qIExpYmM6IGludCBzaG1pZHMoaW50ICpidWYsIHVpbnRfdCBuaWRzLCB1aW50X3QgKnBuaWRzKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfc2htc3lzICggJWxkLCAlI2x4LCAlbHUsICUjbHggKSIsCisgICAgICAgICAgICBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMigic2htc3lzIiwgInNobWlkcyIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgaW50ICosIGJ1ZiwgdmtpX3VpbnRfdCwgbmlkcywgdmtpX3VpbnRfdCAqLCBwbmlkcyk7CisKKyAgICAgIFBSRV9NRU1fV1JJVEUoInNobXN5cyhzaG1pZHMsIGJ1ZikiLCBBUkcyLCBBUkczICogc2l6ZW9mKGludCAqKSk7CisgICAgICBQUkVfTUVNX1dSSVRFKCJzaG1zeXMoc2htaWRzLCBwbmlkcykiLCBBUkc0LCBzaXplb2YodmtpX3VpbnRfdCkpOworICAgICAgYnJlYWs7CisKKyNpZiBkZWZpbmVkKFNPTEFSSVNfU0hNX05FVykKKyAgIGNhc2UgVktJX1NITUFEVjoKKyAgICAgIC8qIExpYmM6IGludCBzaG1hZHYoaW50IHNobWlkLCB1aW50X3QgY21kLCB1aW50X3QgKmFkdmljZSk7ICovCisgICAgICBQUklOVCgic3lzX3NobXN5cyAoICVsZCwgJWxkLCAlbHUsICVsZCApIiwKKyAgICAgICAgICAgIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CisgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMigic2htc3lzIiwgInNobWFkdiIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgaW50LCBzaG1pZCwgdmtpX3VpbnRfdCwgY21kLCB2a2lfdWludF90ICosIGFkdmljZSk7CisKKyAgICAgIHN3aXRjaCAoQVJHMyAvKmNtZCovKSB7CisgICAgICBjYXNlIFZLSV9TSE1fQURWX0dFVDoKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInNobXN5cyhzaG1hZHYsIGFkdmljZSkiLCBBUkc0LAorICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmtpX3VpbnRfdCkpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9TSE1fQURWX1NFVDoKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgic2htc3lzKHNobWFkdiwgYWR2aWNlKSIsIEFSRzQsCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2a2lfdWludF90KSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIHNobXN5cyhzaG1hZHYpIGNhbGwgd2l0aCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNtZCAlbHUuIiwgQVJHMyk7CisgICAgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfU0hNR0VUX09TTToKKyAgICAgIC8qIExpYmM6IGludCBzaG1nZXRfb3NtKGtleV90IGtleSwgc2l6ZV90IHNpemUsIGludCBzaG1mbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZ3JhbnVsZV9zeik7CisgICAgICAgKi8KKyAgICAgIFBSSU5UKCJzeXNfc2htc3lzICggJWxkLCAlbGQsICVsdSwgJWxkLCAlbHUgKSIsCisgICAgICAgICAgICBTQVJHMSwgU0FSRzIsIEFSRzMsIFNBUkc0LCBBUkc1KTsKKyAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MyKCJzaG1zeXMiLCAic2htZ2V0X29zbSIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX2tleV90LCBrZXksIHZraV9zaXplX3QsIHNpemUsIGludCwgc2htZmxnLAorICAgICAgICAgICAgICAgICAgICB2a2lfc2l6ZV90LCBncmFudWxlX3N6KTsKKyAgICAgIGJyZWFrOworI2VuZGlmIC8qIFNPTEFSSVNfU0hNX05FVyAqLworCisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBzaG1zeXMgY2FsbCB3aXRoIG9wY29kZSAlbGQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBTQVJHMSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BPU1Qoc3lzX3NobXN5cykKK3sKKyAgIHN3aXRjaCAoQVJHMSAvKm9wY29kZSovKSB7CisgICBjYXNlIFZLSV9TSE1BVDoKKyAgICAgIE1MXyhnZW5lcmljX1BPU1Rfc3lzX3NobWF0KSh0aWQsIFJFUywgQVJHMiwgQVJHMywgQVJHNCk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfU0hNQ1RMOgorICAgICAgc3dpdGNoIChBUkczIC8qY21kKi8pIHsKKyAgICAgIGNhc2UgVktJX1NITV9MT0NLOgorICAgICAgY2FzZSBWS0lfU0hNX1VOTE9DSzoKKyAgICAgIGNhc2UgVktJX0lQQ19STUlEOgorICAgICAgY2FzZSBWS0lfSVBDX1NFVDoKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfSVBDX1NUQVQ6CisgICAgICAgICBQT1NUX01FTV9XUklURShBUkc0LCBzaXplb2Yoc3RydWN0IHZraV9zaG1pZF9kcykpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9JUENfU0VUNjQ6CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0lQQ19TVEFUNjQ6CisgICAgICAgICBQT1NUX01FTV9XUklURShBUkc0LCBzaXplb2Yoc3RydWN0IHZraV9zaG1pZF9kczY0KSk7CisgICAgICAgICBicmVhazsKKyNpZiBkZWZpbmVkKFNPTEFSSVNfU0hNX05FVykKKyAgICAgIGNhc2UgVktJX0lQQ19YU1RBVDY0OgorICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHNCwgc2l6ZW9mKHN0cnVjdCB2a2lfc2htaWRfeGRzNjQpKTsKKyAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIFNPTEFSSVNfU0hNX05FVyAqLworICAgICAgZGVmYXVsdDoKKyAgICAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX1NITURUOgorICAgICAgTUxfKGdlbmVyaWNfUE9TVF9zeXNfc2htZHQpKHRpZCwgUkVTLCBBUkcyKTsKKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZLSV9TSE1HRVQ6CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfU0hNSURTOgorICAgICAgeworICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHNCwgc2l6ZW9mKHZraV91aW50X3QpKTsKKworICAgICAgICAgdWludF90ICpwbmlkcyA9ICh2a2lfdWludF90ICopIEFSRzQ7CisgICAgICAgICBpZiAoKnBuaWRzIDw9IEFSRzMpCisgICAgICAgICAgICBQT1NUX01FTV9XUklURShBUkcyLCAqcG5pZHMgKiBzaXplb2YoaW50ICopKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworCisjaWYgZGVmaW5lZChTT0xBUklTX1NITV9ORVcpCisgICBjYXNlIFZLSV9TSE1BRFY6CisgICAgICBzd2l0Y2ggKEFSRzMgLypjbWQqLykgeworICAgICAgY2FzZSBWS0lfU0hNX0FEVl9HRVQ6CisgICAgICAgICBQT1NUX01FTV9XUklURShBUkc0LCBzaXplb2YodmtpX3VpbnRfdCkpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9TSE1fQURWX1NFVDoKKyAgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX1NITUdFVF9PU006CisgICAgICBicmVhazsKKyNlbmRpZiAvKiBTT0xBUklTX1NITV9ORVcgKi8KKworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX3NlbXN5cykKK3sKKyAgIC8qIEtlcm5lbDogaW50IHNlbXN5cyhpbnQgb3Bjb2RlLCB1aW50cHRyX3QgYTEsIHVpbnRwdHJfdCBhMiwgdWludHB0cl90IGEzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBhNCk7CisgICAgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworCisgICBzd2l0Y2ggKEFSRzEgLypvcGNvZGUqLykgeworICAgY2FzZSBWS0lfU0VNQ1RMOgorICAgICAgLyogTGliYzogaW50IHNlbWN0bChpbnQgc2VtaWQsIGludCBzZW1udW0sIGludCBjbWQuLi4pOyAqLworICAgICAgc3dpdGNoIChBUkc0KSB7CisgICAgICAgICBjYXNlIFZLSV9JUENfU1RBVDoKKyAgICAgICAgICAgIFBSSU5UKCJzeXNfc2Vtc3lzICggJWxkLCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLAorICAgICAgICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgU0FSRzQsIEFSRzUpOworICAgICAgICAgICAgUFJFX1JFR19SRUFENShsb25nLCBTQzMoInNlbXN5cyIsICJzZW1jdGwiLCAic3RhdCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3NlbWlkX2RzICosIGFyZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX0lQQ19TRVQ6CisgICAgICAgICAgICBQUklOVCgic3lzX3NlbXN5cyAoICVsZCwgJWxkLCAlbGQsICVsZCwgJSNseCApIiwKKyAgICAgICAgICAgICAgICAgIFNBUkcxLCBTQVJHMiwgU0FSRzMsIFNBUkc0LCBBUkc1KTsKKyAgICAgICAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MzKCJzZW1zeXMiLCAic2VtY3RsIiwgInNldCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3NlbWlkX2RzICosIGFyZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX0lQQ19TVEFUNjQ6CisgICAgICAgICAgICBQUklOVCgic3lzX3NlbXN5cyAoICVsZCwgJWxkLCAlbGQsICVsZCwgJSNseCApIiwKKyAgICAgICAgICAgICAgICAgIFNBUkcxLCBTQVJHMiwgU0FSRzMsIFNBUkc0LCBBUkc1KTsKKyAgICAgICAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MzKCJzZW1zeXMiLCAic2VtY3RsIiwgInN0YXQ2NCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3NlbWlkNjRfZHMgKiwgYXJnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfSVBDX1NFVDY0OgorICAgICAgICAgICAgUFJJTlQoInN5c19zZW1zeXMgKCAlbGQsICVsZCwgJWxkLCAlbGQsICUjbHggKSIsCisgICAgICAgICAgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBTQVJHNCwgQVJHNSk7CisgICAgICAgICAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsIFNDMygic2Vtc3lzIiwgInNlbWN0bCIsICJzZXQ2NCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3NlbWlkNjRfZHMgKiwgYXJnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfSVBDX1JNSUQ6CisgICAgICAgICAgICBQUklOVCgic3lzX3NlbXN5cyAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMywgU0FSRzQpOworICAgICAgICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzMoInNlbXN5cyIsICJzZW1jdGwiLCAicm1pZCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBjbWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9HRVRBTEw6CisgICAgICAgICAgICBQUklOVCgic3lzX3NlbXN5cyAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsCisgICAgICAgICAgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkc0LCBBUkc1KTsKKyAgICAgICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MzKCJzZW1zeXMiLCAic2VtY3RsIiwgImdldGFsbCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBjbWQsIHVzaG9ydF90ICosIGFyZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX1NFVEFMTDoKKyAgICAgICAgICAgIFBSSU5UKCJzeXNfc2Vtc3lzICggJWxkLCAlbGQsICVsZCwgJSNseCApIiwKKyAgICAgICAgICAgICAgICAgIFNBUkcxLCBTQVJHMiwgU0FSRzQsIEFSRzUpOworICAgICAgICAgICAgUFJFX1JFR19SRUFENChsb25nLCBTQzMoInNlbXN5cyIsICJzZW1jdGwiLCAic2V0YWxsIiksIGludCwgb3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIHNlbWlkLCBpbnQsIGNtZCwgdXNob3J0X3QgKiwgYXJnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfR0VUVkFMOgorICAgICAgICAgICAgUFJJTlQoInN5c19zZW1zeXMgKCAlbGQsICVsZCwgJWxkLCAlbGQgKSIsCisgICAgICAgICAgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBTQVJHNCk7CisgICAgICAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMygic2Vtc3lzIiwgInNlbWN0bCIsICJnZXR2YWwiKSwgaW50LCBvcGNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIGludCwgc2VtbnVtLCBpbnQsIGNtZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX1NFVFZBTDoKKyAgICAgICAgICAgIFBSSU5UKCJzeXNfc2Vtc3lzICggJWxkLCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLAorICAgICAgICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgU0FSRzQsIEFSRzUpOworICAgICAgICAgICAgUFJFX1JFR19SRUFENShsb25nLCBTQzMoInNlbXN5cyIsICJzZW1jdGwiLCAic2V0dmFsIiksIGludCwgb3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIHNlbWlkLCBpbnQsIHNlbW51bSwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIHZraV9zZW11biAqLCBhcmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9HRVRQSUQ6CisgICAgICAgICAgICBQUklOVCgic3lzX3NlbXN5cyAoICVsZCwgJWxkLCAlbGQsICVsZCApIiwKKyAgICAgICAgICAgICAgICAgIFNBUkcxLCBTQVJHMiwgU0FSRzMsIFNBUkc0KTsKKyAgICAgICAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MzKCJzZW1zeXMiLCAic2VtY3RsIiwgImdldHBpZCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfR0VUTkNOVDoKKyAgICAgICAgICAgIFBSSU5UKCJzeXNfc2Vtc3lzICggJWxkLCAlbGQsICVsZCwgJWxkICkiLAorICAgICAgICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgU0FSRzQpOworICAgICAgICAgICAgUFJFX1JFR19SRUFENChsb25nLCBTQzMoInNlbXN5cyIsICJzZW1jdGwiLCAiZ2V0bmNudCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIG9wY29kZSwgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfR0VUWkNOVDoKKyAgICAgICAgICAgIFBSSU5UKCJzeXNfc2Vtc3lzICggJWxkLCAlbGQsICVsZCwgJWxkICkiLAorICAgICAgICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgU0FSRzQpOworICAgICAgICAgICAgUFJFX1JFR19SRUFENChsb25nLCBTQzMoInNlbXN5cyIsICJzZW1jdGwiLCAiZ2V0emNudCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIG9wY29kZSwgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgc2Vtc3lzKHNlbWN0bCkgY2FsbCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGggY21kICVsZC4iLCBTQVJHNCk7CisgICAgICAgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3NlbWN0bCkodGlkLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfU0VNR0VUOgorICAgICAgLyogTGliYzogaW50IHNlbWdldChrZXlfdCBrZXksIGludCBuc2VtcywgaW50IHNlbWZsZyk7ICovCisgICAgICBQUklOVCgic3lzX3NlbXN5cyAoICVsZCwgJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMywgU0FSRzQpOworICAgICAgUFJFX1JFR19SRUFENChsb25nLCBTQzIoInNlbXN5cyIsICJzZW1nZXQiKSwgaW50LCBvcGNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9rZXlfdCwga2V5LCBpbnQsIG5zZW1zLCBpbnQsIHNlbWZsZyk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NFTU9QOgorICAgICAgLyogTGliYzogaW50IHNlbW9wKGludCBzZW1pZCwgc3RydWN0IHNlbWJ1ZiAqc29wcywgc2l6ZV90IG5zb3BzKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfc2Vtc3lzICggJWxkLCAlbGQsICUjbHgsICVsdSApIiwgU0FSRzEsIFNBUkcyLCBBUkczLCBBUkc0KTsKKyAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MyKCJzZW1zeXMiLCAic2Vtb3AiKSwgaW50LCBvcGNvZGUsIGludCwgc2VtaWQsCisgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfc2VtYnVmICosIHNvcHMsIHZraV9zaXplX3QsIG5zb3BzKTsKKyAgICAgIE1MXyhnZW5lcmljX1BSRV9zeXNfc2Vtb3ApKHRpZCwgQVJHMiwgQVJHMywgQVJHNCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NFTUlEUzoKKyAgICAgIC8qIExpYmM6IGludCBzZW1pZHMoaW50ICpidWYsIHVpbnRfdCBuaWRzLCB1aW50X3QgKnBuaWRzKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfc2Vtc3lzICggJWxkLCAlI2x4LCAlbHUsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0KTsKKyAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MyKCJzZW1zeXMiLCAic2VtaWRzIiksIGludCwgb3Bjb2RlLCBpbnQgKiwgYnVmLAorICAgICAgICAgICAgICAgICAgIHZraV91aW50X3QsIG5pZHMsIHZraV91aW50X3QgKiwgcG5pZHMpOworCisgICAgICBQUkVfTUVNX1dSSVRFKCJzZW1zeXMoc2VtaWRzLCBidWYpIiwgQVJHMiwgQVJHMyAqIHNpemVvZihpbnQgKikpOworICAgICAgUFJFX01FTV9XUklURSgic2Vtc3lzKHNlbWlkcywgcG5pZHMpIiwgQVJHNCwgc2l6ZW9mKHZraV91aW50X3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfU0VNVElNRURPUDoKKyAgICAgIC8qIExpYmM6IGludCBzZW10aW1lZG9wKGludCBzZW1pZCwgc3RydWN0IHNlbWJ1ZiAqc29wcywgc2l6ZV90IG5zb3BzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICp0aW1lb3V0KTsKKyAgICAgICAqLworICAgICAgUFJJTlQoInN5c19zZW1zeXMgKCAlbGQsICVsZCwgJSNseCwgJWx1LCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMsCisgICAgICAgICAgICBBUkc0LCBBUkc1KTsKKyAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MyKCJzZW1zeXMiLCAic2VtdGltZWRvcCIpLCBpbnQsIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgc3RydWN0IHZraV9zZW1idWYgKiwgc29wcywgdmtpX3NpemVfdCwgbnNvcHMsCisgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfdGltZXNwZWMgKiwgdGltZW91dCk7CisgICAgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3NlbXRpbWVkb3ApKHRpZCwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSk7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIHNlbXN5cyBjYWxsIHdpdGggb3Bjb2RlICVsZC4iLCBTQVJHMSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BPU1Qoc3lzX3NlbXN5cykKK3sKKyAgIHN3aXRjaCAoQVJHMSAvKm9wY29kZSovKSB7CisgICBjYXNlIFZLSV9TRU1DVEw6CisgICAgICBNTF8oZ2VuZXJpY19QT1NUX3N5c19zZW1jdGwpKHRpZCwgUkVTLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfU0VNR0VUOgorICAgY2FzZSBWS0lfU0VNT1A6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NFTUlEUzoKKyAgICAgIHsKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIHNpemVvZih2a2lfdWludF90KSk7CisKKyAgICAgICAgIHVpbnRfdCAqcG5pZHMgPSAodWludF90ICopQVJHNDsKKyAgICAgICAgIGlmICgqcG5pZHMgPD0gQVJHMykKKyAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsICpwbmlkcyAqIHNpemVvZihpbnQgKikpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TRU1USU1FRE9QOgorICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgdmdfYXNzZXJ0KDApOworICAgICAgYnJlYWs7CisgICB9Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgaW9jdGwgd3JhcHBlcnMKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCitQUkUoc3lzX2lvY3RsKQoreworICAgLyogaW50IGlvY3RsKGludCBmaWxkZXMsIGludCByZXF1ZXN0LCAuLi4pOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisKKyAgIC8qIFByZXZlbnQgc2lnbiBleHRlbmRpbmcgdGhlIHN3aXRjaCBjYXNlIHZhbHVlcyB0byA2NC1iaXRzIG9uIDY0LWJpdHMKKyAgICAgIGFyY2hpdGVjdHVyZXMuICovCisgICBJbnQgY21kID0gKEludCkgQVJHMjsKKworICAgc3dpdGNoIChjbWQgLypyZXF1ZXN0Ki8pIHsKKyAgICAgIC8qIEhhbmRsZSAyLWFyZyBzcGVjaWFsbHkgaGVyZSAodGhleSBkbyBub3QgdXNlIEFSRzMgYXQgYWxsKS4gKi8KKyAgIGNhc2UgVktJX1RJT0NOT1RUWToKKyAgIGNhc2UgVktJX1RJT0NTQ1RUWToKKyAgICAgIFBSSU5UKCJzeXNfaW9jdGwgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImlvY3RsIiwgaW50LCBmZCwgaW50LCByZXF1ZXN0KTsKKyAgICAgIGJyZWFrOworICAgICAgLyogQW5kIG5vdyBjb21lIHRoZSAzLWFyZyBvbmVzLiAqLworICAgZGVmYXVsdDoKKyAgICAgIFBSSU5UKCJzeXNfaW9jdGwgKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImlvY3RsIiwgaW50LCBmZCwgaW50LCByZXF1ZXN0LCBpbnRwdHJfdCwgYXJnKTsKKyAgICAgIGJyZWFrOworICAgfQorCisgICBzd2l0Y2ggKGNtZCAvKnJlcXVlc3QqLykgeworICAgLyogcG9vbHMgKi8KKyAgIGNhc2UgVktJX1BPT0xfU1RBVFVTUToKKyAgICAgIFBSRV9NRU1fV1JJVEUoImlvY3RsKFBPT0xfU1RBVFVTUSkiLCBBUkczLCBzaXplb2YodmtpX3Bvb2xfc3RhdHVzX3QpKTsKKyAgICAgIGJyZWFrOworCisgICAvKiBtbnRpbyAqLworICAgY2FzZSBWS0lfTU5USU9DX0dFVE1OVEFOWToKKyAgICAgIHsKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiaW9jdGwoTU5USU9DX0dFVE1OVEFOWSkiLAorICAgICAgICAgICAgICAgICAgICAgIEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX21udGVudGJ1ZikpOworCisgICAgICAgICBzdHJ1Y3QgdmtpX21udGVudGJ1ZiAqZW1idWYgPSAoc3RydWN0IHZraV9tbnRlbnRidWYgKikgQVJHMzsKKyAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZihlbWJ1Ziwgc2l6ZW9mKCplbWJ1ZikpKSkgeworICAgICAgICAgICAgUFJFX01FTV9SRUFEKCJpb2N0bChNTlRJT0NfR0VUTU5UQU5ZLCBlbWJ1Zi0+bWJ1Zl9lbXApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgZW1idWYtPm1idWZfZW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmtpX21udHRhYikpOworICAgICAgICAgICAgUFJFX01FTV9XUklURSgiaW9jdGwoTU5USU9DX0dFVE1OVEFOWSwgZW1idWYtPm1idWZfYnVmKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSBlbWJ1Zi0+bWJ1Zl9idWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYnVmLT5tYnVmX2J1ZnNpemUpOworICAgICAgICAgICAgc3RydWN0IHZraV9tbnR0YWIgKm1udAorICAgICAgICAgICAgICAgPSAoc3RydWN0IHZraV9tbnR0YWIgKikgZW1idWYtPm1idWZfZW1wOworICAgICAgICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKG1udCwgc2l6ZW9mKHN0cnVjdCB2a2lfbW50dGFiKSkpKSB7CisgICAgICAgICAgICAgICBpZiAobW50LT5tbnRfc3BlY2lhbCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgUFJFX01FTV9SQVNDSUlaKCJpb2N0bChNTlRJT0NfR0VUTU5UQU5ZLCBtbnQtPm1udF9zcGVjaWFsKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIG1udC0+bW50X3NwZWNpYWwpOworICAgICAgICAgICAgICAgaWYgKG1udC0+bW50X21vdW50cCAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgUFJFX01FTV9SQVNDSUlaKCJpb2N0bChNTlRJT0NfR0VUTU5UQU5ZLCBtbnQtPm1udF9tb3VudHApIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgbW50LT5tbnRfbW91bnRwKTsKKyAgICAgICAgICAgICAgIGlmIChtbnQtPm1udF9mc3R5cGUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigiaW9jdGwoTU5USU9DX0dFVE1OVEFOWSwgbW50LT5tbnRfZnN0eXBlKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIG1udC0+bW50X2ZzdHlwZSk7CisgICAgICAgICAgICAgICBpZiAobW50LT5tbnRfbW50b3B0cyAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAgUFJFX01FTV9SQVNDSUlaKCJpb2N0bChNTlRJT0NfR0VUTU5UQU5ZLCBtbnQtPm1udF9tbnRvcHRzKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIG1udC0+bW50X21udG9wdHMpOworICAgICAgICAgICAgICAgaWYgKG1udC0+bW50X3RpbWUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigiaW9jdGwoTU5USU9DX0dFVE1OVEFOWSwgbW50LT5tbnRfdGltZSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSBtbnQtPm1udF90aW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworCisgICAvKiB0ZXJtaW8vdGVybWlvcyAqLworICAgY2FzZSBWS0lfVENHRVRBOgorICAgICAgUFJFX01FTV9XUklURSgiaW9jdGwoVENHRVRBKSIsIEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3Rlcm1pbykpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9UQ0dFVFM6CisgICAgICBQUkVfTUVNX1dSSVRFKCJpb2N0bChUQ0dFVFMpIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfdGVybWlvcykpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9UQ1NFVFM6CisgICAgICBQUkVfTUVNX1JFQUQoImlvY3RsKFRDU0VUUykiLCBBUkczLCBzaXplb2Yoc3RydWN0IHZraV90ZXJtaW9zKSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1RDU0VUU1c6CisgICAgICBQUkVfTUVNX1JFQUQoImlvY3RsKFRDU0VUU1cpIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfdGVybWlvcykpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9UQ1NFVFNGOgorICAgICAgUFJFX01FTV9SRUFEKCJpb2N0bChUQ1NFVFNGKSIsIEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3Rlcm1pb3MpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVElPQ0dXSU5TWjoKKyAgICAgIFBSRV9NRU1fV1JJVEUoImlvY3RsKFRJT0NHV0lOU1opIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfd2luc2l6ZSkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9USU9DU1dJTlNaOgorICAgICAgUFJFX01FTV9SRUFEKCJpb2N0bChUSU9DU1dJTlNaKSIsIEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3dpbnNpemUpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVElPQ0dQR1JQOgorICAgICAgUFJFX01FTV9XUklURSgiaW9jdGwoVElPQ0dQR1JQKSIsIEFSRzMsIHNpemVvZih2a2lfcGlkX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVElPQ1NQR1JQOgorICAgICAgUFJFX01FTV9SRUFEKCJpb2N0bChUSU9DU1BHUlApIiwgQVJHMywgc2l6ZW9mKHZraV9waWRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9USU9DR1NJRDoKKyAgICAgIFBSRV9NRU1fV1JJVEUoImlvY3RsKFRJT0NHU0lEKSIsIEFSRzMsIHNpemVvZih2a2lfcGlkX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVElPQ05PVFRZOgorICAgY2FzZSBWS0lfVElPQ1NDVFRZOgorICAgICAgYnJlYWs7CisKKyAgIC8qIFNUUkVBTVMgKi8KKyAgIGNhc2UgVktJX0lfUFVTSDoKKyAgICAgIFBSRV9NRU1fUkFTQ0lJWigiaW9jdGwoSV9QVVNIKSIsIEFSRzMpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9JX1NUUjoKKyAgICAgIHsKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiaW9jdGwoSV9TVFIpIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfc3RyaW9jdGwpKTsKKworICAgICAgICAgc3RydWN0IHZraV9zdHJpb2N0bCAqcCA9IChzdHJ1Y3QgdmtpX3N0cmlvY3RsICopIEFSRzM7CisgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYocCwgc2l6ZW9mKCpwKSkpKSB7CisgICAgICAgICAgICBpZiAoKHAtPmljX2RwICE9IE5VTEwpICYmIChwLT5pY19sZW4gPiAwKSkgeworICAgICAgICAgICAgICAgUFJFX01FTV9SRUFEKCJpb2N0bChJX1NUUiwgc3RyaW9jdGwtPmljX2RwKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIHAtPmljX2RwLCBwLT5pY19sZW4pOworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9JX1BFRUs6CisgICAgICB7CisgICAgICAgICAvKiBUcnkgaGFyZCBub3QgdG8gbWFyayBzdHJwZWVrLT4qYnVmLmxlbiBtZW1iZXJzIGFzIGJlaW5nIHJlYWQuICovCisgICAgICAgICBzdHJ1Y3QgdmtpX3N0cnBlZWsgKnAgPSAoc3RydWN0IHZraV9zdHJwZWVrKilBUkczOworCisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoSV9QRUVLLCBzdHJwZWVrLT5jdGxidWYubWF4bGVuKSIsCisgICAgICAgICAgICAgICAgICAgICAgICBwLT5jdGxidWYubWF4bGVuKTsKKyAgICAgICAgIFBSRV9GSUVMRF9XUklURSgiaW9jdGwoSV9QRUVLLCBzdHJwZWVrLT5jdGxidWYubGVuKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcC0+Y3RsYnVmLmxlbik7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoSV9QRUVLLCBzdHJwZWVrLT5jdGxidWYuYnVmKSIsCisgICAgICAgICAgICAgICAgICAgICAgICBwLT5jdGxidWYuYnVmKTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChJX1BFRUssIHN0cnBlZWstPmRhdGFidWYubWF4bGVuKSIsCisgICAgICAgICAgICAgICAgICAgICAgICBwLT5kYXRhYnVmLm1heGxlbik7CisgICAgICAgICBQUkVfRklFTERfV1JJVEUoImlvY3RsKElfUEVFSywgc3RycGVlay0+ZGF0YWJ1Zi5sZW4pIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwLT5kYXRhYnVmLmxlbik7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoSV9QRUVLLCBzdHJwZWVrLT5kYXRhYnVmLmJ1ZikiLAorICAgICAgICAgICAgICAgICAgICAgICAgcC0+ZGF0YWJ1Zi5idWYpOworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImlvY3RsKElfUEVFSywgc3RycGVlay0+ZmxhZ3MpIiwgcC0+ZmxhZ3MpOworICAgICAgICAgLypQUkVfRklFTERfV1JJVEUoImlvY3RsKElfUEVFSywgc3RycGVlay0+ZmxhZ3MpIiwgcC0+ZmxhZ3MpOyovCisKKyAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZihwLCBzaXplb2YoKnApKSkpIHsKKyAgICAgICAgICAgIGlmIChwLT5jdGxidWYuYnVmICYmIHAtPmN0bGJ1Zi5tYXhsZW4gPiAwKQorICAgICAgICAgICAgICAgUFJFX01FTV9XUklURSgiaW9jdGwoSV9QRUVLLCBzdHJwZWVrLT5jdGxidWYuYnVmKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKXAtPmN0bGJ1Zi5idWYsIHAtPmN0bGJ1Zi5tYXhsZW4pOworICAgICAgICAgICAgaWYgKHAtPmRhdGFidWYuYnVmICYmIHAtPmRhdGFidWYubWF4bGVuID4gMCkKKyAgICAgICAgICAgICAgIFBSRV9NRU1fV1JJVEUoImlvY3RsKElfUEVFSywgc3RycGVlay0+ZGF0YWJ1Zi5idWYpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpcC0+ZGF0YWJ1Zi5idWYsIHAtPmRhdGFidWYubWF4bGVuKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfSV9DQU5QVVQ6CisgICAgICBicmVhazsKKworICAgLyogc29ja2lvICovCisgICBjYXNlIFZLSV9TSU9DR0lGQ09ORjoKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfaWZjb25mICpwID0gKHN0cnVjdCB2a2lfaWZjb25mICopIEFSRzM7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoU0lPQ0dJRkNPTkYsIGlmY29uZi0+aWZjX2xlbikiLCBwLT5pZmNfbGVuKTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChTSU9DR0lGQ09ORiwgaWZjb25mLT5pZmNfYnVmKSIsIHAtPmlmY19idWYpOworICAgICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKShwLCBzaXplb2YoKnApKSkgeworICAgICAgICAgICAgaWYgKChwLT5pZmNfYnVmICE9IE5VTEwpICYmIChwLT5pZmNfbGVuID4gMCkpCisgICAgICAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJpb2N0bChTSU9DR0lGQ09ORiwgaWZjb25mLT5pZmNfYnVmKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSBwLT5pZmNfYnVmLCBwLT5pZmNfbGVuKTsKKyAgICAgICAgIH0KKyAgICAgICAgIC8qIGlmY19sZW4gZ2V0cyBhbHNvIHdyaXR0ZW4gdG8gZHVyaW5nIFNJT0NHSUZDT05GIGlvY3RsLiAqLworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0lGRkxBR1M6CisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX2lmcmVxICpwID0gKHN0cnVjdCB2a2lfaWZyZXEgKikgQVJHMzsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChTSU9DR0lGRkxBR1MsIGlmcmVxLT5pZnJfbmFtZSkiLCBwLT5pZnJfbmFtZSk7CisgICAgICAgICBQUkVfRklFTERfV1JJVEUoImlvY3RsKFNJT0NHSUZGTEFHUywgaWZyZXEtPmlmcl9mbGFncykiLCBwLT5pZnJfZmxhZ3MpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0lGTkVUTUFTSzoKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfaWZyZXEgKnAgPSAoc3RydWN0IHZraV9pZnJlcSAqKSBBUkczOworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImlvY3RsKFNJT0NHSUZGTEFHUywgaWZyZXEtPmlmcl9uYW1lKSIsIHAtPmlmcl9uYW1lKTsKKyAgICAgICAgIFBSRV9GSUVMRF9XUklURSgiaW9jdGwoU0lPQ0dJRkZMQUdTLCBpZnJlcS0+aWZyX2FkZHIpIiwgcC0+aWZyX2FkZHIpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0lGTlVNOgorICAgICAgUFJFX01FTV9XUklURSgiaW9jdGwoU0lPQ0dJRk5VTSkiLCBBUkczLCBzaXplb2YoaW50KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NJT0NHTElGQlJEQUREUjoKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfbGlmcmVxICpwID0gKHN0cnVjdCB2a2lfbGlmcmVxICopIEFSRzM7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoU0lPQ0dMSUZCUkRBRERSLCBsaWZyZXEtPmxpZnJfbmFtZSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgcC0+bGlmcl9uYW1lKTsKKyAgICAgICAgIFBSRV9GSUVMRF9XUklURSgiaW9jdGwoU0lPQ0dMSUZCUkRBRERSLCBsaWZyZXEtPmxpZnJfYWRkcikiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHAtPmxpZnJfYWRkcik7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NJT0NHTElGQ09ORjoKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfbGlmY29uZiAqcCA9IChzdHJ1Y3QgdmtpX2xpZmNvbmYgKikgQVJHMzsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChTSU9DR0xJRkNPTkYsIGxpZmNvbmYtPmxpZmNfbGVuKSIsIHAtPmxpZmNfbGVuKTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChTSU9DR0xJRkNPTkYsIGxpZmNvbmYtPmxpZmNfYnVmKSIsIHAtPmxpZmNfYnVmKTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChTSU9DR0xJRkNPTkYsIGxpZmNvbmYtPmxpZmNfZmFtaWx5KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBwLT5saWZjX2ZhbWlseSk7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoU0lPQ0dMSUZDT05GLCBsaWZjb25mLT5saWZjX2ZsYWdzKSIsCisgICAgICAgICAgICAgICAgICAgICAgICBwLT5saWZjX2ZsYWdzKTsKKyAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikocCwgc2l6ZW9mKCpwKSkpIHsKKyAgICAgICAgICAgIGlmICgocC0+bGlmY19idWYgIT0gTlVMTCkgJiYgKHAtPmxpZmNfbGVuID4gMCkpCisgICAgICAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJpb2N0bChTSU9DR0xJRkNPTkYsIGxpZmNvbmYtPmxpZmNfYnVmKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSBwLT5saWZjX2J1ZiwgcC0+bGlmY19sZW4pOworICAgICAgICAgfQorICAgICAgICAgLyogbGlmY19sZW4gZ2V0cyBhbHNvIHdyaXR0ZW4gdG8gZHVyaW5nIFNJT0NHTElGQ09ORiBpb2N0bC4gKi8KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfU0lPQ0dMSUZGTEFHUzoKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfbGlmcmVxICpwID0gKHN0cnVjdCB2a2lfbGlmcmVxICopIEFSRzM7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoU0lPQ0dMSUZGTEFHUywgbGlmcmVxLT5saWZyX25hbWUpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHAtPmxpZnJfbmFtZSk7CisgICAgICAgICBQUkVfRklFTERfV1JJVEUoImlvY3RsKFNJT0NHTElGRkxBR1MsIGxpZnJlcS0+bGlmcl9mbGFncykiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHAtPmxpZnJfZmxhZ3MpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0xJRk5FVE1BU0s6CisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX2xpZnJlcSAqcCA9IChzdHJ1Y3QgdmtpX2xpZnJlcSAqKSBBUkczOworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImlvY3RsKFNJT0NHTElGTkVUTUFTSywgbGlmcmVxLT5saWZyX25hbWUpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHAtPmxpZnJfbmFtZSk7CisgICAgICAgICBQUkVfRklFTERfV1JJVEUoImlvY3RsKFNJT0NHTElGTkVUTUFTSywgbGlmcmVxLT5saWZyX2FkZHIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwLT5saWZyX2FkZHIpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0xJRk5VTToKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfbGlmbnVtICpwID0gKHN0cnVjdCB2a2lfbGlmbnVtICopIEFSRzM7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoU0lPQ0dMSUZOVU0sIGxpZm4tPmxpZm5fZmFtaWx5KSIsCisgICAgICAgICAgICAgICAgICAgICAgICBwLT5saWZuX2ZhbWlseSk7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiaW9jdGwoU0lPQ0dMSUZOVU0sIGxpZm4tPmxpZm5fZmxhZ3MpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHAtPmxpZm5fZmxhZ3MpOworICAgICAgICAgUFJFX0ZJRUxEX1dSSVRFKCJpb2N0bChTSU9DR0xJRk5VTSwgbGlmbi0+bGlmbl9jb3VudCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHAtPmxpZm5fY291bnQpOworICAgICAgfQorICAgICAgYnJlYWs7CisKKyAgIC8qIGZpbGlvICovCisgICBjYXNlIFZLSV9GSU9TRVRPV046CisgICAgICBQUkVfTUVNX1JFQUQoImlvY3RsKEZJT1NFVE9XTikiLCBBUkczLCBzaXplb2YodmtpX3BpZF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0ZJT0dFVE9XTjoKKyAgICAgIFBSRV9NRU1fV1JJVEUoImlvY3RsKEZJT0dFVE9XTikiLCBBUkczLCBzaXplb2YodmtpX3BpZF90KSk7CisgICAgICBicmVhazsKKworICAgLyogQ1JZUFRPICovCisgICBjYXNlIFZLSV9DUllQVE9fR0VUX1BST1ZJREVSX0xJU1Q6CisgICAgICB7CisgICAgICAgICB2a2lfY3J5cHRvX2dldF9wcm92aWRlcl9saXN0X3QgKnBsID0KKyAgICAgICAgICAgICh2a2lfY3J5cHRvX2dldF9wcm92aWRlcl9saXN0X3QgKikgQVJHMzsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChDUllQVE9fR0VUX1BST1ZJREVSX0xJU1QsIHBsLT5wbF9jb3VudCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgcGwtPnBsX2NvdW50KTsKKworICAgICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKShwbCwgc2l6ZW9mKCpwbCkpKSB7CisgICAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJpb2N0bChDUllQVE9fR0VUX1BST1ZJREVSX0xJU1QpIiwgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYKDEsIHBsLT5wbF9jb3VudCkgKgorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmtpX2NyeXB0b19nZXRfcHJvdmlkZXJfbGlzdF90KSk7CisgICAgICAgICB9CisgICAgICAgICAvKiBTYXZlIHRoZSByZXF1ZXN0ZWQgY291bnQgdG8gdW51c2VkIEFSRzQgYmVsb3csCisgICAgICAgICAgICB3aGVuIHdlIGtub3cgcHJlLWhhbmRsZXIgc3VjY2VlZGVkLgorICAgICAgICAgICovCisgICAgICB9CisgICAgICBicmVhazsgCisKKyAgIC8qIGR0cmFjZSAqLworICAgY2FzZSBWS0lfRFRSQUNFSElPQ19SRU1PVkU6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0RUUkFDRUhJT0NfQURERE9GOgorICAgICAgeworICAgICAgICAgdmtpX2RvZl9oZWxwZXJfdCAqZGggPSAodmtpX2RvZl9oZWxwZXJfdCAqKSBBUkczOworICAgICAgICAgUFJFX01FTV9SQVNDSUlaKCJpb2N0bChEVFJBQ0VISU9DX0FERERPRiwgZGgtPmRvZmhwX21vZCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSBkaC0+ZG9maHBfbW9kKTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJpb2N0bChEVFJBQ0VISU9DX0FERERPRiwgZGgtPmRvZmhwX2FkZHIiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGgtPmRvZmhwX2FkZHIpOworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImlvY3RsKERUUkFDRUhJT0NfQURERE9GLCBkaC0+ZG9maHBfZG9mIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRoLT5kb2ZocF9kb2YpOworICAgICAgfQorICAgICAgYnJlYWs7CisKKyAgIGRlZmF1bHQ6CisgICAgICBNTF8oUFJFX3Vua25vd25faW9jdGwpKHRpZCwgQVJHMiwgQVJHMyk7CisgICAgICBicmVhazsKKyAgIH0KKworICAgLyogQmUgc3RyaWN0LiAqLworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgImlvY3RsIiwgdGlkLCBGYWxzZSkpIHsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgfSBlbHNlIGlmIChBUkcyID09IFZLSV9DUllQVE9fR0VUX1BST1ZJREVSX0xJU1QpIHsKKyAgICAgIC8qIFNhdmUgdGhlIHJlcXVlc3RlZCBjb3VudCB0byB1bnVzZWQgQVJHNCBub3cuICovCisgICAgICBBUkc0ID0gQVJHMzsKKyAgIH0KK30KKworUE9TVChzeXNfaW9jdGwpCit7CisgICAvKiBQcmV2ZW50IHNpZ24gZXh0ZW5kaW5nIHRoZSBzd2l0Y2ggY2FzZSB2YWx1ZXMgdG8gNjQtYml0cyBvbiA2NC1iaXRzCisgICAgICBhcmNoaXRlY3R1cmVzLiAqLworICAgSW50IGNtZCA9IChJbnQpIEFSRzI7CisKKyAgIHN3aXRjaCAoY21kIC8qcmVxdWVzdCovKSB7CisgICAvKiBwb29scyAqLworICAgY2FzZSBWS0lfUE9PTF9TVEFUVVNROgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHZraV9wb29sX3N0YXR1c190KSk7CisgICAgICBicmVhazsKKworICAgLyogbW50aW8gKi8KKyAgIGNhc2UgVktJX01OVElPQ19HRVRNTlRBTlk6CisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX21udGVudGJ1ZiAqZW1idWYgPSAoc3RydWN0IHZraV9tbnRlbnRidWYgKikgQVJHMzsKKyAgICAgICAgIHN0cnVjdCB2a2lfbW50dGFiICptbnQgPSAoc3RydWN0IHZraV9tbnR0YWIgKikgZW1idWYtPm1idWZfZW1wOworCisgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgbW50LCBzaXplb2Yoc3RydWN0IHZraV9tbnR0YWIpKTsKKyAgICAgICAgIGlmIChtbnQgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKG1udC0+bW50X3NwZWNpYWwgIT0gTlVMTCkKKyAgICAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSBtbnQtPm1udF9zcGVjaWFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfKHN0cmxlbikobW50LT5tbnRfc3BlY2lhbCkgKyAxKTsKKyAgICAgICAgICAgIGlmIChtbnQtPm1udF9tb3VudHAgIT0gTlVMTCkKKyAgICAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSBtbnQtPm1udF9tb3VudHAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWR18oc3RybGVuKShtbnQtPm1udF9tb3VudHApICsgMSk7CisgICAgICAgICAgICBpZiAobW50LT5tbnRfZnN0eXBlICE9IE5VTEwpCisgICAgICAgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgbW50LT5tbnRfZnN0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfKHN0cmxlbikobW50LT5tbnRfZnN0eXBlKSArIDEpOworICAgICAgICAgICAgaWYgKG1udC0+bW50X21udG9wdHMgIT0gTlVMTCkKKyAgICAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSBtbnQtPm1udF9tbnRvcHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfKHN0cmxlbikobW50LT5tbnRfbW50b3B0cykgKyAxKTsKKyAgICAgICAgICAgIGlmIChtbnQtPm1udF90aW1lICE9IE5VTEwpCisgICAgICAgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgbW50LT5tbnRfdGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhzdHJsZW4pKG1udC0+bW50X3RpbWUpICsgMSk7CisgICAgICAgICB9CisgICAgICB9CisgICAgICBicmVhazsKKworICAgLyogdGVybWlvL3Rlcm1pb3MgKi8KKyAgIGNhc2UgVktJX1RDR0VUQToKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3Rlcm1pbykpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9UQ0dFVFM6CisgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2Yoc3RydWN0IHZraV90ZXJtaW9zKSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1RDU0VUUzoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVENTRVRTVzoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVENTRVRTRjoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVElPQ0dXSU5TWjoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3dpbnNpemUpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVElPQ1NXSU5TWjoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfVElPQ0dQR1JQOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHZraV9waWRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9USU9DU1BHUlA6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1RJT0NHU0lEOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHZraV9waWRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9USU9DTk9UVFk6CisgICBjYXNlIFZLSV9USU9DU0NUVFk6CisgICAgICBicmVhazsKKworICAgLyogU1RSRUFNUyAqLworICAgY2FzZSBWS0lfSV9QVVNIOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9JX1NUUjoKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfc3RyaW9jdGwgKnAgPSAoc3RydWN0IHZraV9zdHJpb2N0bCAqKSBBUkczOworCisgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmljX2xlbik7CisgICAgICAgICBpZiAoKHAtPmljX2RwICE9IE5VTEwpICYmIChwLT5pY19sZW4gPiAwKSkKKyAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSBwLT5pY19kcCwgcC0+aWNfbGVuKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfSV9QRUVLOgorICAgICAgeworICAgICAgICAgc3RydWN0IHZraV9zdHJwZWVrICpwID0gKHN0cnVjdCB2a2lfc3RycGVlayopQVJHMzsKKworICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5jdGxidWYubGVuKTsKKyAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+ZGF0YWJ1Zi5sZW4pOworICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5mbGFncyk7CisKKyAgICAgICAgIGlmIChwLT5jdGxidWYuYnVmICYmIHAtPmN0bGJ1Zi5sZW4gPiAwKQorICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpcC0+Y3RsYnVmLmJ1ZiwgcC0+Y3RsYnVmLmxlbik7CisgICAgICAgICBpZiAocC0+ZGF0YWJ1Zi5idWYgJiYgcC0+ZGF0YWJ1Zi5sZW4gPiAwKQorICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpcC0+ZGF0YWJ1Zi5idWYsIHAtPmRhdGFidWYubGVuKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfSV9DQU5QVVQ6CisgICAgICBicmVhazsKKworICAgLyogc29ja2lvICovCisgICBjYXNlIFZLSV9TSU9DR0lGQ09ORjoKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfaWZjb25mICpwID0gKHN0cnVjdCB2a2lfaWZjb25mICopIEFSRzM7CisgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmlmY19sZW4pOworICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5pZmNfcmVxKTsKKyAgICAgICAgIGlmICgocC0+aWZjX3JlcSAhPSBOVUxMKSAmJiAocC0+aWZjX2xlbiA+IDApKQorICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpIHAtPmlmY19yZXEsIHAtPmlmY19sZW4pOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0lGRkxBR1M6CisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX2lmcmVxICpwID0gKHN0cnVjdCB2a2lfaWZyZXEgKikgQVJHMzsKKyAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+aWZyX2ZsYWdzKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfU0lPQ0dJRk5FVE1BU0s6CisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX2lmcmVxICpwID0gKHN0cnVjdCB2a2lfaWZyZXEgKikgQVJHMzsKKyAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+aWZyX2FkZHIpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0lGTlVNOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKGludCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0xJRkJSREFERFI6CisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX2xpZnJlcSAqcCA9IChzdHJ1Y3QgdmtpX2xpZnJlcSAqKSBBUkczOworICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5saWZyX2FkZHIpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0xJRkNPTkY6CisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX2xpZmNvbmYgKnAgPSAoc3RydWN0IHZraV9saWZjb25mICopIEFSRzM7CisgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmxpZmNfbGVuKTsKKyAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+bGlmY19yZXEpOworICAgICAgICAgaWYgKChwLT5saWZjX3JlcSAhPSBOVUxMKSAmJiAocC0+bGlmY19sZW4gPiAwKSkKKyAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSBwLT5saWZjX3JlcSwgcC0+bGlmY19sZW4pOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9TSU9DR0xJRkZMQUdTOgorICAgICAgeworICAgICAgICAgc3RydWN0IHZraV9saWZyZXEgKnAgPSAoc3RydWN0IHZraV9saWZyZXEgKikgQVJHMzsKKyAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+bGlmcl9mbGFncyk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NJT0NHTElGTkVUTUFTSzoKKyAgICAgIHsKKyAgICAgICAgIHN0cnVjdCB2a2lfbGlmcmVxICpwID0gKHN0cnVjdCB2a2lfbGlmcmVxICopIEFSRzM7CisgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmxpZnJfYWRkcik7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NJT0NHTElGTlVNOgorICAgICAgeworICAgICAgICAgc3RydWN0IHZraV9saWZudW0gKnAgPSAoc3RydWN0IHZraV9saWZudW0gKikgQVJHMzsKKyAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+bGlmbl9jb3VudCk7CisgICAgICB9CisgICAgICBicmVhazsgIAorCisgICAvKiBmaWxpbyAqLworICAgY2FzZSBWS0lfRklPU0VUT1dOOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9GSU9HRVRPV046CisgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX3BpZF90KSk7CisgICAgICBicmVhazsKKworICAgLyogQ1JZUFRPICovCisgICBjYXNlIFZLSV9DUllQVE9fR0VUX1BST1ZJREVSX0xJU1Q6CisgICAgICB7CisgICAgICAgICB2a2lfY3J5cHRvX2dldF9wcm92aWRlcl9saXN0X3QgKnBsID0KKyAgICAgICAgICAgICh2a2lfY3J5cHRvX2dldF9wcm92aWRlcl9saXN0X3QgKikgQVJHMzsKKworICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwbC0+cGxfY291bnQpOworICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwbC0+cGxfcmV0dXJuX3ZhbHVlKTsKKworICAgICAgICAgaWYgKChBUkc0ID4gMCkgJiYgKHBsLT5wbF9yZXR1cm5fdmFsdWUgPT0gVktJX0NSWVBUT19TVUNDRVNTKSkKKyAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSBwbC0+cGxfbGlzdCwgcGwtPnBsX2NvdW50ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2a2lfY3J5cHRvX3Byb3ZpZGVyX2VudHJ5X3QpKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworCisgICAvKiBkdHJhY2UgKi8KKyAgIGNhc2UgVktJX0RUUkFDRUhJT0NfUkVNT1ZFOgorICAgY2FzZSBWS0lfRFRSQUNFSElPQ19BRERET0Y6CisgICAgICBicmVhazsKKworICAgZGVmYXVsdDoKKyAgICAgIC8qIE5vdCByZWFsbHkgYW55dGhpbmcgdG8gZG8gc2luY2UgaW9jdGwgZGlyZWN0aW9uIGhpbnRzIGFyZSBoYXJkbHkgdXNlZAorICAgICAgICAgb24gU29sYXJpcy4gKi8KKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX2ZjaG93bmF0KQoreworICAgLyogaW50IGZjaG93bmF0KGludCBmZCwgY29uc3QgY2hhciAqcGF0aCwgdWlkX3Qgb3duZXIsIGdpZF90IGdyb3VwLAorICAgICAgICAgICAgICAgICAgIGludCBmbGFnKTsgKi8KKworICAgLyogSW50ZXJwcmV0IHRoZSBmaXJzdCBhcmd1bWVudCBhcyAzMi1iaXQgdmFsdWUgZXZlbiBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlLgorICAgICAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBMaW51eCwgZm9yIGV4YW1wbGUsIHdoZXJlIGdsaWJjIHNpZ24tZXh0ZW5kcyBpdC4gKi8KKyAgIEludCBmZCA9IChJbnQpIEFSRzE7CisKKyAgIFBSSU5UKCJzeXNfZmNob3duYXQgKCAlZCwgJSNseCglcyksICVsZCwgJWxkLCAlbGQgKSIsIGZkLAorICAgICAgICAgQVJHMiwgKEhDaGFyICopIEFSRzIsIFNBUkczLCBTQVJHNCwgQVJHNSk7CisgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJmY2hvd25hdCIsIGludCwgZmQsIGNvbnN0IGNoYXIgKiwgcGF0aCwKKyAgICAgICAgICAgICAgICAgdmtpX3VpZF90LCBvd25lciwgdmtpX2dpZF90LCBncm91cCwgaW50LCBmbGFnKTsKKworICAgaWYgKEFSRzIpCisgICAgICBQUkVfTUVNX1JBU0NJSVooImZjaG93bmF0KHBhdGgpIiwgQVJHMik7CisKKyAgIC8qIEJlIHN0cmljdCBidXQgaWdub3JlIGZkIGZvciBhYnNvbHV0ZSBwYXRoLiAqLworICAgaWYgKGZkICE9IFZLSV9BVF9GRENXRAorICAgICAgICYmIE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCAqKSBBUkcyLCAxKQorICAgICAgICYmICgoSENoYXIgKikgQVJHMilbMF0gIT0gJy8nCisgICAgICAgJiYgIU1MXyhmZF9hbGxvd2VkKShmZCwgImZjaG93bmF0IiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUFJFKHN5c19mZHN5bmMpCit7CisgICAvKiBpbnQgZmRzeW5jKGludCBmZCwgaW50IGZsYWcpOyAqLworICAgUFJJTlQoInN5c19mZHN5bmMgKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZkc3luYyIsIGludCwgZmQsIGludCwgZmxhZyk7CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJmZHN5bmMiLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorCitQUkUoc3lzX2V4ZWN2ZSkKK3sKKyAgIEludCBpLCBqOworICAgLyogVGhpcyBpcyBhIFNvbGFyaXMgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgZ2VuZXJpYyBwcmUtZXhlY3ZlIHdyYXBwZXIuICovCisKKyNpZiBkZWZpbmVkKFNPTEFSSVNfRVhFQ1ZFX1NZU0NBTExfVEFLRVNfRkxBR1MpCisgICAvKiBpbnQgZXhlY3ZlKHVpbnRwdHJfdCBmaWxlLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqKmVudnAsCisgICAgICAgICAgICAgICAgIGludCBmbGFncyk7ICovCisgICBQUklOVCgic3lzX2V4ZWN2ZSAoICUjbHgsICUjbHgsICUjbHgsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAiZXhlY3ZlIiwgdWludHB0cl90LCBmaWxlLCBjb25zdCBjaGFyICoqLCBhcmd2LAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqLCBlbnZwLCBpbnQsIGZsYWdzKTsKKworI2Vsc2UKKworICAgLyogaW50IGV4ZWN2ZShjb25zdCBjaGFyICpmbmFtZSwgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKiplbnZwKTsgKi8KKyAgIFBSSU5UKCJzeXNfZXhlY3ZlICggJSNseCglcyksICUjbHgsICUjbHggKSIsCisgICAgICAgICBBUkcxLCAoSENoYXIgKikgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJleGVjdmUiLCBjb25zdCBjaGFyICosIGZpbGUsIGNvbnN0IGNoYXIgKiosIGFyZ3YsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiosIGVudnApOworI2VuZGlmIC8qIFNPTEFSSVNfRVhFQ1ZFX1NZU0NBTExfVEFLRVNfRkxBR1MgKi8KKworICAgQm9vbCBBUkcxX2lzX2ZkID0gRmFsc2U7CisjaWYgZGVmaW5lZChTT0xBUklTX0VYRUNWRV9TWVNDQUxMX1RBS0VTX0ZMQUdTKQorICAgaWYgKEFSRzQgJiBWS0lfRVhFQ19ERVNDUklQVE9SKSB7CisgICAgICBBUkcxX2lzX2ZkID0gVHJ1ZTsKKyAgIH0KKyNlbmRpZiAvKiBTT0xBUklTX0VYRUNWRV9TWVNDQUxMX1RBS0VTX0ZMQUdTICovCisKKyAgIGlmIChBUkcxX2lzX2ZkID09IEZhbHNlKQorICAgICAgUFJFX01FTV9SQVNDSUlaKCJleGVjdmUoZmlsZW5hbWUpIiwgQVJHMSk7CisgICBpZiAoQVJHMikKKyAgICAgIE1MXyhwcmVfYXJndl9lbnZwKShBUkcyLCB0aWQsICJleGVjdmUoYXJndikiLCAiZXhlY3ZlKGFyZ3ZbaV0pIik7CisgICBpZiAoQVJHMykKKyAgICAgIE1MXyhwcmVfYXJndl9lbnZwKShBUkczLCB0aWQsICJleGVjdmUoZW52cCkiLCAiZXhlY3ZlKGVudnBbaV0pIik7CisKKyAgIC8qIEVyay4gIElmIHRoZSBleGVjIGZhaWxzLCB0aGVuIHRoZSBmb2xsb3dpbmcgd2lsbCBoYXZlIG1hZGUgYSBtZXNzIG9mCisgICAgICB0aGluZ3Mgd2hpY2ggbWFrZXMgaXQgaGFyZCBmb3IgdXMgdG8gY29udGludWUuICBUaGUgcmlnaHQgdGhpbmcgdG8gZG8gaXMKKyAgICAgIHBpZWNlIGV2ZXJ5dGhpbmcgdG9nZXRoZXIgYWdhaW4gaW4gUE9TVChleGVjdmUpLCBidXQgdGhhdCdzIGNsb3NlIHRvCisgICAgICBpbXBvc3NpYmxlLiAgSW5zdGVhZCwgd2UgbWFrZSBhbiBlZmZvcnQgdG8gY2hlY2sgdGhhdCB0aGUgZXhlY3ZlIHdpbGwKKyAgICAgIHdvcmsgYmVmb3JlIGFjdHVhbGx5IGRvaW5nIGl0LiAqLworCisgICBjb25zdCBIQ2hhciAqZm5hbWUgPSAoY29uc3QgSENoYXIgKikgQVJHMTsKKyAgIGlmIChBUkcxX2lzX2ZkKSB7CisgICAgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcxLCAiZXhlY3ZlIiwgdGlkLCBGYWxzZSkpIHsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBpZiAoVkdfKHJlc29sdmVfZmlsZW5hbWUpKEFSRzEsICZmbmFtZSkgPT0gRmFsc2UpIHsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBzdHJ1Y3Qgdmdfc3RhdCBzdGF0czsKKyAgICAgIGlmIChWR18oZnN0YXQpKEFSRzEsICZzdGF0cykgIT0gMCkgeworICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGlmIChzdGF0cy5ubGluayA+IDEpCisgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgZXhlY3ZlIHdoZXJlIGZkIHBvaW50cyB0byBhIGhhcmRsaW5rLiIpOworICAgfQorCisgICAvKiBDaGVjayB0aGF0IHRoZSBuYW1lIGF0IGxlYXN0IGJlZ2lucyBpbiBjbGllbnQtYWNjZXNzaWJsZSBzdG9yYWdlLiAqLworICAgaWYgKEFSRzFfaXNfZmQgPT0gRmFsc2UpIHsKKyAgICAgIGlmICgoZm5hbWUgPT0gTlVMTCkgfHwgIU1MXyhzYWZlX3RvX2RlcmVmKShmbmFtZSwgMSkpIHsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUZBVUxUKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgIH0KKworICAgLyogQ2hlY2sgdGhhdCB0aGUgYXJncyBhdCBsZWFzdCBiZWdpbiBpbiBjbGllbnQtYWNjZXNzaWJsZSBzdG9yYWdlLgorICAgICAgU29sYXJpcyBkaXNhbGxvd3MgdG8gcGVyZm9ybSB0aGUgZXhlYyB3aXRob3V0IGFueSBhcmd1bWVudHMgc3BlY2lmaWVkLgorICAgICovCisgICBpZiAoIUFSRzIgLyogb2J2aW91c2x5IGJvZ3VzICovIHx8CisgICAgICAgIVZHXyhhbV9pc192YWxpZF9mb3JfY2xpZW50KShBUkcyLCAxLCBWS0lfUFJPVF9SRUFEKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FRkFVTFQpOworICAgICAgcmV0dXJuOworICAgfQorCisgICAvKiBEZWJ1Zy1vbmx5IHByaW50aW5nLiAqLworICAgaWYgKDApIHsKKyAgICAgIFZHXyhwcmludGYpKCJBUkcxID0gJSNseCglcylcbiIsIEFSRzEsIGZuYW1lKTsKKyAgICAgIGlmIChBUkcyKSB7CisgICAgICAgICBJbnQgcTsKKyAgICAgICAgIEhDaGFyKiogdmVjID0gKEhDaGFyKiopQVJHMjsKKworICAgICAgICAgVkdfKHByaW50ZikoIkFSRzIgPSAiKTsKKyAgICAgICAgIGZvciAocSA9IDA7IHZlY1txXTsgcSsrKQorICAgICAgICAgICAgVkdfKHByaW50ZikoIiVwKCVzKSAiLCB2ZWNbcV0sIHZlY1txXSk7CisgICAgICAgICBWR18ocHJpbnRmKSgiXG4iKTsKKyAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAgIFZHXyhwcmludGYpKCJBUkcyID0gbnVsbFxuIik7CisgICB9CisKKyAgIC8qIERlY2lkZSB3aGV0aGVyIG9yIG5vdCB3ZSB3YW50IHRvIGZvbGxvdyBhbG9uZy4gKi8KKyAgIC8qIE1ha2UgJ2NoaWxkX2FyZ3YnIGJlIGEgcG9pbnRlciB0byB0aGUgY2hpbGQncyBhcmcgdmVjdG9yIChza2lwcGluZyB0aGUKKyAgICAgIGV4ZSBuYW1lKSAqLworICAgY29uc3QgSENoYXIgKipjaGlsZF9hcmd2ID0gKGNvbnN0IEhDaGFyICoqKSBBUkcyOworICAgaWYgKGNoaWxkX2FyZ3ZbMF0gPT0gTlVMTCkKKyAgICAgIGNoaWxkX2FyZ3YgPSBOVUxMOworICAgQm9vbCB0cmFjZV90aGlzX2NoaWxkID0gVkdfKHNob3VsZF93ZV90cmFjZV90aGlzX2NoaWxkKShmbmFtZSwgY2hpbGRfYXJndik7CisKKyAgIC8qIERvIHRoZSBpbXBvcnRhbnQgY2hlY2tzOiAgaXQgaXMgYSBmaWxlLCBpcyBleGVjdXRhYmxlLCBwZXJtaXNzaW9ucyBhcmUKKyAgICAgIG9rLCBldGMuICBXZSBhbGxvdyBzZXR1aWQgZXhlY3V0YWJsZXMgdG8gcnVuIG9ubHkgaW4gdGhlIGNhc2Ugd2hlbgorICAgICAgd2UgYXJlIG5vdCBzaW11bGF0aW5nIHRoZW0sIHRoYXQgaXMsIHRoZXkgdG8gYmUgcnVuIG5hdGl2ZWx5LiAqLworICAgQm9vbCBzZXR1aWRfYWxsb3dlZCA9IHRyYWNlX3RoaXNfY2hpbGQgPyBGYWxzZSA6IFRydWU7CisgICBTeXNSZXMgcmVzID0gVkdfKHByZV9leGVjX2NoZWNrKShmbmFtZSwgTlVMTCwgc2V0dWlkX2FsbG93ZWQpOworICAgaWYgKHNyX2lzRXJyb3IocmVzKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKHNyX0VycihyZXMpKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgLyogSWYgd2UncmUgdHJhY2luZyB0aGUgY2hpbGQsIGFuZCB0aGUgbGF1bmNoZXIgbmFtZSBsb29rcyBib2d1cyAocG9zc2libHkKKyAgICAgIGJlY2F1c2UgbGF1bmNoZXIuYyBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBzZWUgY29tbWVudHMgdGhlcmVpbikgdGhlbiB3ZQorICAgICAgaGF2ZSBubyBvcHRpb24gYnV0IHRvIGZhaWwuICovCisgICBpZiAodHJhY2VfdGhpc19jaGlsZCAmJgorICAgICAgICghVkdfKG5hbWVfb2ZfbGF1bmNoZXIpIHx8IFZHXyhuYW1lX29mX2xhdW5jaGVyKVswXSAhPSAnLycpKSB7CisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VDSElMRCk7IC8qICJObyBjaGlsZCBwcm9jZXNzZXMuIiAqLworICAgICAgcmV0dXJuOworICAgfQorCisgICAvKiBBZnRlciB0aGlzIHBvaW50LCB3ZSBjYW4ndCByZWNvdmVyIGlmIHRoZSBleGVjdmUgZmFpbHMuICovCisgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwIiwgIkV4ZWMgb2YgJXNcbiIsIGZuYW1lKTsKKworICAgLyogVGVybWluYXRlIGdkYnNlcnZlciBpZiBpdCBpcyBhY3RpdmUuICovCisgICBpZiAoVkdfKGNsb192Z2RiKSAhPSBWZ19WZ2RiTm8pIHsKKyAgICAgIC8qIElmIHRoZSBjaGlsZCB3aWxsIG5vdCBiZSB0cmFjZWQsIHdlIG5lZWQgdG8gdGVybWluYXRlIGdkYnNlcnZlciB0bworICAgICAgICAgY2xlYW51cCB0aGUgZ2Ric2VydmVyIHJlc291cmNlcyAoZS5nLiB0aGUgRklGTyBmaWxlcykuIElmIGNoaWxkIHdpbGwKKyAgICAgICAgIGJlIHRyYWNlZCwgd2UgYWxzbyB0ZXJtaW5hdGUgZ2Ric2VydmVyOiB0aGUgbmV3IFZhbGdyaW5kIHdpbGwgc3RhcnQgYQorICAgICAgICAgZnJlc2ggZ2Ric2VydmVyIGFmdGVyIGV4ZWMuICovCisgICAgICBWR18oZ2Ric2VydmVyKSgwKTsKKyAgIH0KKworICAgLyogUmVzaXN0YW5jZSBpcyBmdXRpbGUuICBOdWtlIGFsbCBvdGhlciB0aHJlYWRzLiAgUE9TSVggbWFuZGF0ZXMgdGhpcy4KKyAgICAgIChSZWFsbHksIG51a2UgdGhlbSBhbGwsIHNpbmNlIHRoZSBuZXcgcHJvY2VzcyB3aWxsIG1ha2UgaXRzIG93biBuZXcKKyAgICAgIHRocmVhZC4pICovCisgICBWR18obnVrZV9hbGxfdGhyZWFkc19leGNlcHQpKHRpZCwgVmdTcmNfRXhpdFRocmVhZCk7CisgICBWR18ocmVhcF90aHJlYWRzKSh0aWQpOworCisgICAvKiBTZXQgdXAgdGhlIGNoaWxkJ3MgZXhlIHBhdGguICovCisgICBjb25zdCBIQ2hhciAqcGF0aCA9IGZuYW1lOworICAgY29uc3QgSENoYXIgKmxhdW5jaGVyX2Jhc2VuYW1lID0gTlVMTDsKKyAgIGlmICh0cmFjZV90aGlzX2NoaWxkKSB7CisgICAgICAvKiBXZSB3YW50IHRvIGV4ZWMgdGhlIGxhdW5jaGVyLiAgR2V0IGl0cyBwcmUtcmVtZW1iZXJlZCBwYXRoLiAqLworICAgICAgcGF0aCA9IFZHXyhuYW1lX29mX2xhdW5jaGVyKTsKKyAgICAgIC8qIFZHXyhuYW1lX29mX2xhdW5jaGVyKSBzaG91bGQgaGF2ZSBiZWVuIGFjcXVpcmVkIGJ5IG1fbWFpbiBhdAorICAgICAgICAgc3RhcnR1cC4gKi8KKyAgICAgIHZnX2Fzc2VydChwYXRoKTsKKworICAgICAgbGF1bmNoZXJfYmFzZW5hbWUgPSBWR18oc3RycmNocikocGF0aCwgJy8nKTsKKyAgICAgIGlmICghbGF1bmNoZXJfYmFzZW5hbWUgfHwgbGF1bmNoZXJfYmFzZW5hbWVbMV0gPT0gJ1wwJykKKyAgICAgICAgIGxhdW5jaGVyX2Jhc2VuYW1lID0gcGF0aDsgIC8qIGhtbSwgdHJlcyBkdWJpb3VzICovCisgICAgICBlbHNlCisgICAgICAgICBsYXVuY2hlcl9iYXNlbmFtZSsrOworICAgfQorCisgICAvKiBTZXQgdXAgdGhlIGNoaWxkJ3MgZW52aXJvbm1lbnQuCisKKyAgICAgIFJlbW92ZSB0aGUgdmFsZ3JpbmQtc3BlY2lmaWMgc3R1ZmYgZnJvbSB0aGUgZW52aXJvbm1lbnQgc28gdGhlIGNoaWxkCisgICAgICBkb2Vzbid0IGdldCB2Z3ByZWxvYWRfY29yZS5zbywgdmdwcmVsb2FkXzx0b29sPi5zbywgZXRjLiAgVGhpcyBpcyBkb25lCisgICAgICB1bmNvbmRpdGlvbmFsbHksIHNpbmNlIGlmIHdlIGFyZSB0cmFjaW5nIHRoZSBjaGlsZCwgdGhlIGNoaWxkIHZhbGdyaW5kCisgICAgICB3aWxsIHNldCB1cCB0aGUgYXBwcm9wcmlhdGUgY2xpZW50IGVudmlyb25tZW50LiAgTmI6IHdlIG1ha2UgYSBjb3B5IG9mCisgICAgICB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIHRyeWluZyB0byBtYW5nbGUgaXQgYXMgaXQgbWlnaHQgYmUgaW4gcmVhZC1vbmx5CisgICAgICBtZW1vcnkgKGJ1ZyAjMTAxODgxKS4KKworICAgICAgVGhlbiwgaWYgdHJhY2luZyB0aGUgY2hpbGQsIHNldCBWQUxHUklORF9MSUIgZm9yIGl0LiAqLworICAgSENoYXIgKiplbnZwID0gTlVMTDsKKyAgIGlmIChBUkczICE9IDApIHsKKyAgICAgIGVudnAgPSBWR18oZW52X2Nsb25lKSgoSENoYXIqKilBUkczKTsKKyAgICAgIHZnX2Fzc2VydChlbnZwICE9IE5VTEwpOworICAgICAgVkdfKGVudl9yZW1vdmVfdmFsZ3JpbmRfZW52X3N0dWZmKShlbnZwLCBUcnVlIC8qcm9fc3RyaW5ncyovLCBOVUxMKTsKKyAgIH0KKworICAgaWYgKHRyYWNlX3RoaXNfY2hpbGQpIHsKKyAgICAgIC8qIFNldCBWQUxHUklORF9MSUIgaW4gQVJHMyAodGhlIGVudmlyb25tZW50KS4gKi8KKyAgICAgIFZHXyhlbnZfc2V0ZW52KSggJmVudnAsIFZBTEdSSU5EX0xJQiwgVkdfKGxpYmRpcikpOworICAgfQorCisgICAvKiBTZXQgdXAgdGhlIGNoaWxkJ3MgYXJncy4gIElmIG5vdCB0cmFjaW5nIGl0LCB0aGV5IGFyZSBzaW1wbHkgQVJHMi4KKyAgICAgIE90aGVyd2lzZSwgdGhleSBhcmU6CisKKyAgICAgIFtsYXVuY2hlcl9iYXNlbmFtZV0gKysgVkdfKGFyZ3NfZm9yX3ZhbGdyaW5kKSArKyBbQVJHMV0gKysgQVJHMlsxLi5dLAorCisgICAgICBleGNlcHQgdGhhdCB0aGUgZmlyc3QgVkdfKGFyZ3NfZm9yX3ZhbGdyaW5kX25vZXhlY3Bhc3MpIGFyZ3MgYXJlCisgICAgICBvbWl0dGVkLiAqLworICAgSENoYXIgKiphcmd2ID0gTlVMTDsKKyAgIGlmICghdHJhY2VfdGhpc19jaGlsZCkKKyAgICAgIGFyZ3YgPSAoSENoYXIgKiopIEFSRzI7CisgICBlbHNlIHsKKyAgICAgIEludCB0b3RfYXJnczsKKworICAgICAgdmdfYXNzZXJ0KFZHXyhhcmdzX2Zvcl92YWxncmluZCkpOworICAgICAgdmdfYXNzZXJ0KFZHXyhhcmdzX2Zvcl92YWxncmluZF9ub2V4ZWNwYXNzKSA+PSAwKTsKKyAgICAgIHZnX2Fzc2VydChWR18oYXJnc19mb3JfdmFsZ3JpbmRfbm9leGVjcGFzcykKKyAgICAgICAgICAgICAgICAgICA8PSBWR18oc2l6ZVhBKShWR18oYXJnc19mb3JfdmFsZ3JpbmQpKSk7CisKKyAgICAgIC8qIEhvdyBtYW55IGFyZ3MgaW4gdG90YWwgd2lsbCB0aGVyZSBiZT8gKi8KKyAgICAgIC8qIGxhdW5jaGVyIGJhc2VuYW1lICovCisgICAgICB0b3RfYXJncyA9IDE7CisgICAgICAvKiBWJ3MgYXJncyAqLworICAgICAgdG90X2FyZ3MgKz0gVkdfKHNpemVYQSkoVkdfKGFyZ3NfZm9yX3ZhbGdyaW5kKSk7CisgICAgICB0b3RfYXJncyAtPSBWR18oYXJnc19mb3JfdmFsZ3JpbmRfbm9leGVjcGFzcyk7CisgICAgICAvKiBuYW1lIG9mIGNsaWVudCBleGUgKi8KKyAgICAgIHRvdF9hcmdzKys7CisgICAgICAvKiBhcmdzIGZvciBjbGllbnQgZXhlLCBza2lwcGluZyBbMF0gKi8KKyAgICAgIEhDaGFyICoqYXJnMmNvcHkgPSAoSENoYXIgKiopIEFSRzI7CisgICAgICBpZiAoYXJnMmNvcHlbMF0gIT0gTlVMTCkKKyAgICAgICAgIGZvciAoaSA9IDE7IGFyZzJjb3B5W2ldOyBpKyspCisgICAgICAgICAgICB0b3RfYXJncysrOworICAgICAgLyogYWxsb2NhdGUgKi8KKyAgICAgIGFyZ3YgPSBWR18obWFsbG9jKSgic3lzd3JhcC5leGVjLjUiLCAodG90X2FyZ3MgKyAxKSAqIHNpemVvZihIQ2hhciopKTsKKyAgICAgIC8qIGNvcHkgKi8KKyAgICAgIGogPSAwOworICAgICAgYXJndltqKytdID0gQ09OU1RfQ0FTVChIQ2hhciAqLCBsYXVuY2hlcl9iYXNlbmFtZSk7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgVkdfKHNpemVYQSkoVkdfKGFyZ3NfZm9yX3ZhbGdyaW5kKSk7IGkrKykgeworICAgICAgICAgaWYgKGkgPCBWR18oYXJnc19mb3JfdmFsZ3JpbmRfbm9leGVjcGFzcykpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgIGFyZ3ZbaisrXSA9ICooSENoYXIqKilWR18oaW5kZXhYQSkoVkdfKGFyZ3NfZm9yX3ZhbGdyaW5kKSwgaSk7CisgICAgICB9CisgICAgICBhcmd2W2orK10gPSBDT05TVF9DQVNUKEhDaGFyICosIGZuYW1lKTsKKyAgICAgIGlmIChhcmcyY29weVswXSAhPSBOVUxMKQorICAgICAgICAgZm9yIChpID0gMTsgYXJnMmNvcHlbaV07IGkrKykKKyAgICAgICAgICAgIGFyZ3ZbaisrXSA9IGFyZzJjb3B5W2ldOworICAgICAgYXJndltqKytdID0gTlVMTDsKKyAgICAgIC8qIGNoZWNrICovCisgICAgICB2Z19hc3NlcnQoaiA9PSB0b3RfYXJncyArIDEpOworICAgfQorCisgICAvKiBTZXQgdGhlIHNpZ25hbCBzdGF0ZSB1cCBmb3IgZXhlYy4KKworICAgICAgV2UgbmVlZCB0byBzZXQgdGhlIHJlYWwgc2lnbmFsIHN0YXRlIHRvIG1ha2Ugc3VyZSB0aGUgZXhlYydkIHByb2Nlc3MKKyAgICAgIGdldHMgU0lHX0lHTiBwcm9wZXJseS4KKworICAgICAgQWxzbyBzZXQgb3VyIHJlYWwgc2lnbWFzayB0byBtYXRjaCB0aGUgY2xpZW50J3Mgc2lnbWFzayBzbyB0aGF0IHRoZQorICAgICAgZXhlYydkIGNoaWxkIHdpbGwgZ2V0IHRoZSByaWdodCBtYXNrLiAgRmlyc3Qgd2UgbmVlZCB0byBjbGVhciBvdXQgYW55CisgICAgICBwZW5kaW5nIHNpZ25hbHMgc28gdGhleSB0aGV5IGRvbid0IGdldCBkZWxpdmVyZWQsIHdoaWNoIHdvdWxkIGNvbmZ1c2UKKyAgICAgIHRoaW5ncy4KKworICAgICAgWFhYIFRoaXMgaXMgYSBidWcgLSB0aGUgc2lnbmFscyBzaG91bGQgcmVtYWluIHBlbmRpbmcsIGFuZCBiZSBkZWxpdmVyZWQKKyAgICAgIHRvIHRoZSBuZXcgcHJvY2VzcyBhZnRlciBleGVjLiAgVGhlcmUncyBhbHNvIGEgcmFjZS1jb25kaXRpb24sIHNpbmNlIGlmCisgICAgICBzb21lb25lIGRlbGl2ZXJzIHVzIGEgc2lnbmFsIGJldHdlZW4gdGhlIHNpZ3Byb2NtYXNrIGFuZCB0aGUgZXhlY3ZlLAorICAgICAgd2UnbGwgc3RpbGwgZ2V0IHRoZSBzaWduYWwuIE9oIHdlbGwuCisgICAqLworICAgeworICAgICAgdmtpX3NpZ3NldF90IGFsbHNpZ3M7CisgICAgICB2a2lfc2lnaW5mb190IGluZm87CisKKyAgICAgIC8qIFdoYXQgdGhpcyBsb29wIGRvZXM6IGl0IHF1ZXJpZXMgU0NTUyAodGhlIHNpZ25hbCBzdGF0ZSB0aGF0IHRoZQorICAgICAgICAgY2xpZW50IF90aGlua3NfIHRoZSBrZXJuZWwgaXMgaW4pIGJ5IGNhbGxpbmcgVkdfKGRvX3N5c19zaWdhY3Rpb24pLAorICAgICAgICAgYW5kIG1vZGlmaWVzIHRoZSByZWFsIGtlcm5lbCBzaWduYWwgc3RhdGUgYWNjb3JkaW5nbHkuICovCisgICAgICBmb3IgKGkgPSAxOyBpIDwgVkdfKG1heF9zaWduYWwpOyBpKyspIHsKKyAgICAgICAgIHZraV9zaWdhY3Rpb25fZnJvbUtfdCBzYV9mOworICAgICAgICAgdmtpX3NpZ2FjdGlvbl90b0tfdCAgIHNhX3Q7CisgICAgICAgICBWR18oZG9fc3lzX3NpZ2FjdGlvbikoaSwgTlVMTCwgJnNhX2YpOworICAgICAgICAgVkdfKGNvbnZlcnRfc2lnYWN0aW9uX2Zyb21LX3RvX3RvSykoJnNhX2YsICZzYV90KTsKKyAgICAgICAgIFZHXyhzaWdhY3Rpb24pKGksICZzYV90LCBOVUxMKTsKKyAgICAgIH0KKworICAgICAgVkdfKHNpZ2ZpbGxzZXQpKCZhbGxzaWdzKTsKKyAgICAgIHdoaWxlIChWR18oc2lndGltZWR3YWl0X3plcm8pKCZhbGxzaWdzLCAmaW5mbykgPiAwKQorICAgICAgICAgOworCisgICAgICBUaHJlYWRTdGF0ZSAqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAgICAgIFZHXyhzaWdwcm9jbWFzaykoVktJX1NJR19TRVRNQVNLLCAmdHN0LT5zaWdfbWFzaywgTlVMTCk7CisgICB9CisKKyAgIC8qIFJlc3RvcmUgdGhlIERBVEEgcmxpbWl0IGZvciB0aGUgY2hpbGQuICovCisgICBWR18oc2V0cmxpbWl0KShWS0lfUkxJTUlUX0RBVEEsICZWR18oY2xpZW50X3JsaW1pdF9kYXRhKSk7CisKKyAgIC8qIERlYnVnLW9ubHkgcHJpbnRpbmcuICovCisgICBpZiAoMCkgeworICAgICAgSENoYXIgKipjcHA7CisgICAgICBWR18ocHJpbnRmKSgiZXhlYzogJXNcbiIsIHBhdGgpOworICAgICAgZm9yIChjcHAgPSBhcmd2OyBjcHAgJiYgKmNwcDsgY3BwKyspCisgICAgICAgICBWR18ocHJpbnRmKSgiYXJndjogJXNcbiIsICpjcHApOworICAgICAgaWYgKDApCisgICAgICAgICBmb3IgKGNwcCA9IGVudnA7IGNwcCAmJiAqY3BwOyBjcHArKykKKyAgICAgICAgICAgIFZHXyhwcmludGYpKCJlbnY6ICVzXG4iLCAqY3BwKTsKKyAgIH0KKworI2lmIGRlZmluZWQoU09MQVJJU19FWEVDVkVfU1lTQ0FMTF9UQUtFU19GTEFHUykKKyAgIHJlcyA9IFZHXyhkb19zeXNjYWxsNCkoX19OUl9leGVjdmUsIChVV29yZCkgcGF0aCwgKFVXb3JkKSBhcmd2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpIGVudnAsIEFSRzQgJiB+VktJX0VYRUNfREVTQ1JJUFRPUik7CisjZWxzZQorICAgcmVzID0gVkdfKGRvX3N5c2NhbGwzKShfX05SX2V4ZWN2ZSwgKFVXb3JkKSBwYXRoLCAoVVdvcmQpIGFyZ3YsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZCkgZW52cCk7CisjZW5kaWYgLyogU09MQVJJU19FWEVDVkVfU1lTQ0FMTF9UQUtFU19GTEFHUyAqLworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhyZXMpOworCisgICAvKiBJZiB3ZSBnb3QgaGVyZSwgdGhlbiB0aGUgZXhlY3ZlIGZhaWxlZC4gIFdlJ3ZlIGFscmVhZHkgbWFkZSB3YXkgdG9vIG11Y2gKKyAgICAgIG9mIGEgbWVzcyB0byBjb250aW51ZSwgc28gd2UgaGF2ZSB0byBhYm9ydC4gKi8KKyAgIHZnX2Fzc2VydChGQUlMVVJFKTsKKyNpZiBkZWZpbmVkKFNPTEFSSVNfRVhFQ1ZFX1NZU0NBTExfVEFLRVNfRkxBR1MpCisgICBpZiAoQVJHMV9pc19mZCkKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiZXhlY3ZlKCVsZCwgJSNseCwgJSNseCwgJWx1KSBmYWlsZWQsICIKKyAgICAgICAgICAgICAgICAgICAiZXJybm8gJWxkXG4iLCBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgRVJSKTsKKyAgIGVsc2UKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiZXhlY3ZlKCUjbHgoJXMpLCAlI2x4LCAlI2x4LCAlbGQpIGZhaWxlZCwgZXJybm8iCisgICAgICAgICAgICAgICAgICAgIiAlbHVcbiIsIEFSRzEsIChIQ2hhciAqKSBBUkcxLCBBUkcyLCBBUkczLCBTQVJHNCwgRVJSKTsKKyNlbHNlCisgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywgImV4ZWN2ZSglI2x4KCVzKSwgJSNseCwgJSNseCkgZmFpbGVkLCBlcnJubyAlbHVcbiIsCisgICAgICAgICAgICAgICAgQVJHMSwgKEhDaGFyICopIEFSRzEsIEFSRzIsIEFSRzMsIEVSUik7CisjZW5kaWYgLyogU09MQVJJU19FWEVDVkVfU1lTQ0FMTF9UQUtFU19GTEFHUyAqLworICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJFWEVDIEZBSUxFRDogSSBjYW4ndCByZWNvdmVyIGZyb20gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGVjdmUoKSBmYWlsaW5nLCBzbyBJJ20gZHlpbmcuXG4iKTsKKyAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiQWRkIG1vcmUgc3RyaW5nZW50IHRlc3RzIGluIFBSRShzeXNfZXhlY3ZlKSwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvciB3b3JrIG91dCBob3cgdG8gcmVjb3Zlci5cbiIpOworICAgVkdfKGV4aXQpKDEwMSk7CisgICAvKk5PVFJFQUNIRUQqLworfQorCitzdGF0aWMgdm9pZCBwcmVfbWVtX3JlYWRfZmxvY2soVGhyZWFkSWQgdGlkLCBzdHJ1Y3QgdmtpX2Zsb2NrICpsb2NrKQoreworICAgUFJFX0ZJRUxEX1JFQUQoImZjbnRsKGxvY2stPmxfdHlwZSkiLCBsb2NrLT5sX3R5cGUpOworICAgUFJFX0ZJRUxEX1JFQUQoImZjbnRsKGxvY2stPmxfd2hlbmNlKSIsIGxvY2stPmxfd2hlbmNlKTsKKyAgIFBSRV9GSUVMRF9SRUFEKCJmY250bChsb2NrLT5sX3N0YXJ0KSIsIGxvY2stPmxfc3RhcnQpOworICAgUFJFX0ZJRUxEX1JFQUQoImZjbnRsKGxvY2stPmxfbGVuKSIsIGxvY2stPmxfbGVuKTsKK30KKworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorc3RhdGljIHZvaWQgcHJlX21lbV9yZWFkX2Zsb2NrNjQoVGhyZWFkSWQgdGlkLCBzdHJ1Y3QgdmtpX2Zsb2NrNjQgKmxvY2spCit7CisgICBQUkVfRklFTERfUkVBRCgiZmNudGwobG9jay0+bF90eXBlKSIsIGxvY2stPmxfdHlwZSk7CisgICBQUkVfRklFTERfUkVBRCgiZmNudGwobG9jay0+bF93aGVuY2UpIiwgbG9jay0+bF93aGVuY2UpOworICAgUFJFX0ZJRUxEX1JFQUQoImZjbnRsKGxvY2stPmxfc3RhcnQpIiwgbG9jay0+bF9zdGFydCk7CisgICBQUkVfRklFTERfUkVBRCgiZmNudGwobG9jay0+bF9sZW4pIiwgbG9jay0+bF9sZW4pOworfQorI2VuZGlmIC8qIFZHUF94ODZfc29sYXJpcyAqLworCitQUkUoc3lzX2ZjbnRsKQoreworICAgLyogaW50IGZjbnRsKGludCBmaWxkZXMsIGludCBjbWQsIC4uLik7ICovCisKKyAgIHN3aXRjaCAoQVJHMiAvKmNtZCovKSB7CisgICAvKiBUaGVzZSBvbmVzIGlnbm9yZSBBUkczLiAqLworICAgY2FzZSBWS0lfRl9HRVRGRDoKKyAgIGNhc2UgVktJX0ZfR0VURkw6CisgICBjYXNlIFZLSV9GX0dFVFhGTDoKKyAgICAgIFBSSU5UKCJzeXNfZmNudGwgKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZjbnRsIiwgaW50LCBmaWxkZXMsIGludCwgY21kKTsKKyAgICAgIGJyZWFrOworCisgICAvKiBUaGVzZSBvbmVzIHVzZSBBUkczIGFzICJhcmciLiAqLworICAgY2FzZSBWS0lfRl9EVVBGRDoKKyAgIGNhc2UgVktJX0ZfU0VURkQ6CisgICBjYXNlIFZLSV9GX1NFVEZMOgorICAgY2FzZSBWS0lfRl9EVVAyRkQ6CisgICBjYXNlIFZLSV9GX0JBREZEOgorICAgICAgUFJJTlQoInN5c19mY250bCAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNudGwiLCBpbnQsIGZpbGRlcywgaW50LCBjbWQsIGludCwgYXJnKTsKKyAgICAgIC8qIENoZWNrIGlmIGEgY2xpZW50IHByb2dyYW0gaXNuJ3QgZ29pbmcgdG8gcG9pc29uIGFueSBvZiBWJ3Mgb3V0cHV0CisgICAgICAgICBmZHMuICovCisgICAgICBpZiAoQVJHMiA9PSBWS0lfRl9EVVAyRkQgJiYKKyAgICAgICAgICAhTUxfKGZkX2FsbG93ZWQpKEFSRzMsICJmY250bChGX0RVUDJGRCkiLCB0aWQsIEZhbHNlKSkgeworICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICBicmVhazsKKworICAgLyogVGhlc2Ugb25lcyB1c2UgQVJHMyBhcyAibmF0aXZlIGxvY2siIChpbnB1dCBvbmx5KS4gKi8KKyAgIGNhc2UgVktJX0ZfU0VUTEs6CisgICBjYXNlIFZLSV9GX1NFVExLVzoKKyAgIGNhc2UgVktJX0ZfQUxMT0NTUDoKKyAgIGNhc2UgVktJX0ZfRlJFRVNQOgorICAgY2FzZSBWS0lfRl9TRVRMS19OQk1BTkQ6CisgICAgICBQUklOVCgic3lzX2ZjbnRsICggJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMyk7CisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJmY250bCIsIGludCwgZmlsZGVzLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZsb2NrICosIGxvY2spOworICAgICAgcHJlX21lbV9yZWFkX2Zsb2NrKHRpZCwgKHN0cnVjdCB2a2lfZmxvY2sqKUFSRzMpOworICAgICAgYnJlYWs7CisKKyAgIC8qIFRoaXMgb25lIHVzZXMgQVJHMyBhcyAibmF0aXZlIGxvY2siIChpbnB1dCZvdXRwdXQpLiAqLworICAgY2FzZSBWS0lfRl9HRVRMSzoKKyAgICAgIFBSSU5UKCJzeXNfZmNudGwgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwgaW50LCBmaWxkZXMsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmxvY2sgKiwgbG9jayk7CisgICAgICBwcmVfbWVtX3JlYWRfZmxvY2sodGlkLCAoc3RydWN0IHZraV9mbG9jayopQVJHMyk7CisgICAgICBQUkVfTUVNX1dSSVRFKCJmY250bChsb2NrKSIsIEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX2Zsb2NrKSk7CisgICAgICBicmVhazsKKworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgLyogVGhlc2Ugb25lcyB1c2UgQVJHMyBhcyAidHJhbnNpdGlvbmFsIDY0YiBsb2NrIiAoaW5wdXQgb25seSkuICovCisgICBjYXNlIFZLSV9GX1NFVExLNjQ6CisgICBjYXNlIFZLSV9GX1NFVExLVzY0OgorICAgY2FzZSBWS0lfRl9BTExPQ1NQNjQ6CisgICBjYXNlIFZLSV9GX0ZSRUVTUDY0OgorICAgY2FzZSBWS0lfRl9TRVRMSzY0X05CTUFORDoKKyAgICAgIFBSSU5UKCJzeXNfZmNudGwgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZjbnRsIiwgaW50LCBmaWxkZXMsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmxvY2s2NCAqLCBsb2NrKTsKKyAgICAgIHByZV9tZW1fcmVhZF9mbG9jazY0KHRpZCwgKHN0cnVjdCB2a2lfZmxvY2s2NCopQVJHMyk7CisgICAgICBicmVhazsKKworICAgLyogVGhpcyBvbmUgdXNlcyBBUkczIGFzICJ0cmFuc2l0aW9uYWwgNjRiIGxvY2siIChpbnB1dCZvdXRwdXQpLiAqLworICAgY2FzZSBWS0lfRl9HRVRMSzY0OgorICAgICAgUFJJTlQoInN5c19mY250bCAoICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNudGwiLCBpbnQsIGZpbGRlcywgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmbG9jazY0ICosIGxvY2spOworICAgICAgcHJlX21lbV9yZWFkX2Zsb2NrNjQodGlkLCAoc3RydWN0IHZraV9mbG9jazY0KilBUkczKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoImZjbnRsKGxvY2spIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfZmxvY2s2NCkpOworICAgICAgYnJlYWs7CisjZW5kaWYgLyogVkdQX3g4Nl9zb2xhcmlzICovCisKKyAgIC8qIFRoZXNlIG9uZXMgdXNlIEFSRzMgYXMgImZzaGFyZSIuICovCisgICBjYXNlIFZLSV9GX1NIQVJFOgorICAgY2FzZSBWS0lfRl9VTlNIQVJFOgorICAgY2FzZSBWS0lfRl9TSEFSRV9OQk1BTkQ6CisgICAgICBQUklOVCgic3lzX2ZjbnRsW0FSRzM9PSdmc2hhcmUnXSAoICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZmNudGwiLCBpbnQsIGZpbGRlcywgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmc2hhcmUgKiwgc2gpOworICAgICAgUFJFX01FTV9SRUFEKCJmY250bChmc2hhcmUpIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfZnNoYXJlKSk7CisgICAgICBicmVhazsKKworICAgZGVmYXVsdDoKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgZmNudGwgY2FsbCB3aXRoIGNtZCAlbGQuIiwgU0FSRzIpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgICAgIGJyZWFrOworICAgfQorCisgICBpZiAoQVJHMiA9PSBWS0lfRl9TRVRMS1cKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgICAgICB8fCBBUkcyID09IFZLSV9GX1NFVExLVzY0CisjZW5kaWYgLyogVkdQX3g4Nl9zb2xhcmlzICovCisgICAgICAgKQorICAgICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJmY250bCIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BPU1Qoc3lzX2ZjbnRsKQoreworICAgc3dpdGNoIChBUkcyIC8qY21kKi8pIHsKKyAgIGNhc2UgVktJX0ZfRFVQRkQ6CisgICAgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShSRVMsICJmY250bChGX0RVUEZEKSIsIHRpZCwgVHJ1ZSkpIHsKKyAgICAgICAgIFZHXyhjbG9zZSkoUkVTKTsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRU1GSUxFKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYgKFZHXyhjbG9fdHJhY2tfZmRzKSkKKyAgICAgICAgIE1MXyhyZWNvcmRfZmRfb3Blbl9uYW1lZCkodGlkLCBSRVMpOworICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX0ZfRFVQMkZEOgorICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoUkVTLCAiZmNudGwoRl9EVVAyRkQpIiwgdGlkLCBUcnVlKSkgeworICAgICAgICAgVkdfKGNsb3NlKShSRVMpOworICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTUZJTEUpOworICAgICAgfQorICAgICAgZWxzZSBpZiAoVkdfKGNsb190cmFja19mZHMpKQorICAgICAgICAgTUxfKHJlY29yZF9mZF9vcGVuX25hbWVkKSh0aWQsIFJFUyk7CisgICAgICBicmVhazsKKworICAgLyogVGhpcyBvbmUgdXNlcyBBUkczIGFzICJuYXRpdmUgbG9jayIgKGlucHV0Jm91dHB1dCkuICovCisgICBjYXNlIFZLSV9GX0dFVExLOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfZmxvY2spKTsKKyAgICAgIGJyZWFrOworCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICAvKiBUaGlzIG9uZSB1c2VzIEFSRzMgYXMgInRyYW5zaXRpb25hbCA2NGIgbG9jayIgKGlucHV0Jm91dHB1dCkuICovCisgICBjYXNlIFZLSV9GX0dFVExLNjQ6CisgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2Yoc3RydWN0IHZraV9mbG9jazY0KSk7CisgICAgICBicmVhazsKKyNlbmRpZiAvKiBWR1BfeDg2X3NvbGFyaXMgKi8KKworICAgZGVmYXVsdDoKKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX3JlbmFtZWF0KQoreworICAgLyogaW50IHJlbmFtZWF0KGludCBmcm9tZmQsIGNvbnN0IGNoYXIgKm9sZCwgaW50IHRvZmQsIGNvbnN0IGNoYXIgKm5ldyk7ICovCisKKyAgIC8qIEludGVycHJldCB0aGUgZmlyc3QgYW5kIHRoaXJkIGFyZ3VtZW50cyBhcyAzMi1iaXQgdmFsdWVzIGV2ZW4gb24gNjQtYml0CisgICAgICBhcmNoaXRlY3R1cmUuIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gTGludXgsIGZvciBleGFtcGxlLCB3aGVyZSBnbGliYworICAgICAgc2lnbi1leHRlbmRzIHRoZW0uICovCisgICBJbnQgZnJvbWZkID0gKEludCkgQVJHMTsKKyAgIEludCB0b2ZkID0gKEludCkgQVJHMzsKKworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3JlbmFtZWF0ICggJWQsICUjbHgoJXMpLCAlZCwgJSNseCglcykgKSIsIGZyb21mZCwKKyAgICAgICAgIEFSRzIsIChIQ2hhciAqKSBBUkcyLCB0b2ZkLCBBUkc0LCAoSENoYXIgKikgQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJyZW5hbWVhdCIsIGludCwgZnJvbWZkLCBjb25zdCBjaGFyICosIG9sZCwKKyAgICAgICAgICAgICAgICAgaW50LCB0b2ZkLCBjb25zdCBjaGFyICosIG5ldyk7CisKKyAgIFBSRV9NRU1fUkFTQ0lJWigicmVuYW1lYXQob2xkKSIsIEFSRzIpOworICAgUFJFX01FTV9SQVNDSUlaKCJyZW5hbWVhdChuZXcpIiwgQVJHNCk7CisKKyAgIC8qIEJlIHN0cmljdCBidXQgaWdub3JlIGZyb21mZC90b2ZkIGZvciBhYnNvbHV0ZSBvbGQvbmV3LiAqLworICAgaWYgKGZyb21mZCAhPSBWS0lfQVRfRkRDV0QKKyAgICAgICAmJiBNTF8oc2FmZV90b19kZXJlZikoKHZvaWQgKikgQVJHMiwgMSkKKyAgICAgICAmJiAoKEhDaGFyICopIEFSRzIpWzBdICE9ICcvJworICAgICAgICYmICFNTF8oZmRfYWxsb3dlZCkoZnJvbWZkLCAicmVuYW1lYXQiLCB0aWQsIEZhbHNlKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICB9CisgICBpZiAodG9mZCAhPSBWS0lfQVRfRkRDV0QKKyAgICAgICAmJiBNTF8oc2FmZV90b19kZXJlZikoKHZvaWQgKikgQVJHNCwgMSkKKyAgICAgICAmJiAoKEhDaGFyICopIEFSRzQpWzBdICE9ICcvJworICAgICAgICYmICFNTF8oZmRfYWxsb3dlZCkodG9mZCwgInJlbmFtZWF0IiwgdGlkLCBGYWxzZSkpIHsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgfQorfQorCitQUkUoc3lzX3VubGlua2F0KQoreworICAgLyogaW50IHVubGlua2F0KGludCBkaXJmZCwgY29uc3QgY2hhciAqcGF0aG5hbWUsIGludCBmbGFncyk7ICovCisKKyAgIC8qIEludGVycHJldCB0aGUgZmlyc3QgYXJndW1lbnQgYXMgMzItYml0IHZhbHVlIGV2ZW4gb24gNjQtYml0IGFyY2hpdGVjdHVyZS4KKyAgICAgIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gTGludXgsIGZvciBleGFtcGxlLCB3aGVyZSBnbGliYyBzaWduLWV4dGVuZHMgaXQuICovCisgICBJbnQgZGZkID0gKEludCkgQVJHMTsKKworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3VubGlua2F0ICggJWQsICUjbHgoJXMpLCAlbGQgKSIsIGRmZCwgQVJHMiwgKEhDaGFyICopIEFSRzIsCisgICAgICAgICBTQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJ1bmxpbmthdCIsIGludCwgZGlyZmQsIGNvbnN0IGNoYXIgKiwgcGF0aG5hbWUsCisgICAgICAgICAgICAgICAgIGludCwgZmxhZ3MpOworICAgUFJFX01FTV9SQVNDSUlaKCJ1bmxpbmthdChwYXRobmFtZSkiLCBBUkcyKTsKKworICAgLyogQmUgc3RyaWN0IGJ1dCBpZ25vcmUgZGZkIGZvciBhYnNvbHV0ZSBwYXRobmFtZS4gKi8KKyAgIGlmIChkZmQgIT0gVktJX0FUX0ZEQ1dECisgICAgICAgJiYgTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkICopIEFSRzIsIDEpCisgICAgICAgJiYgKChIQ2hhciAqKSBBUkcyKVswXSAhPSAnLycKKyAgICAgICAmJiAhTUxfKGZkX2FsbG93ZWQpKGRmZCwgInVubGlua2F0IiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUFJFKHN5c19mc3RhdGF0KQoreworICAgLyogaW50IGZzdGF0YXQoaW50IGZpbGRlcywgY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0YXQgKmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgaW50IGZsYWcpOyAqLworCisgICAvKiBJbnRlcnByZXQgdGhlIGZpcnN0IGFyZ3VtZW50IGFzIDMyLWJpdCB2YWx1ZSBldmVuIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmUuCisgICAgICBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIExpbnV4LCBmb3IgZXhhbXBsZSwgd2hlcmUgZ2xpYmMgc2lnbi1leHRlbmRzIGl0LiAqLworICAgSW50IGZkID0gKEludCkgQVJHMTsKKworICAgUFJJTlQoInN5c19mc3RhdGF0ICggJWQsICUjbHgoJXMpLCAlI2x4LCAlbGQgKSIsIGZkLCBBUkcyLAorICAgICAgICAgKEhDaGFyICopIEFSRzIsIEFSRzMsIFNBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQobG9uZywgImZzdGF0YXQiLCBpbnQsIGZpbGRlcywgY29uc3QgY2hhciAqLCBwYXRoLAorICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3RhdCAqLCBidWYsIGludCwgZmxhZyk7CisgICBpZiAoQVJHMikgeworICAgICAgLyogT25seSB0ZXN0IEFSRzIgaWYgaXQgaXNuJ3QgTlVMTC4gIFRoZSBrZXJuZWwgdHJlYXRzIHRoZSBOVUxMLWNhc2UgYXMKKyAgICAgICAgIGZzdGF0KGZpbGRlcywgYnVmKS4gKi8KKyAgICAgIFBSRV9NRU1fUkFTQ0lJWigiZnN0YXRhdChwYXRoKSIsIEFSRzIpOworICAgfQorICAgUFJFX01FTV9XUklURSgiZnN0YXRhdChidWYpIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdCkpOworCisgICAvKiBCZSBzdHJpY3QgYnV0IGlnbm9yZSBmaWxkZXMgZm9yIGFic29sdXRlIHBhdGguICovCisgICBpZiAoZmQgIT0gVktJX0FUX0ZEQ1dECisgICAgICAgJiYgTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkICopIEFSRzIsIDEpCisgICAgICAgJiYgKChIQ2hhciAqKSBBUkcyKVswXSAhPSAnLycKKyAgICAgICAmJiAhTUxfKGZkX2FsbG93ZWQpKGZkLCAiZnN0YXRhdCIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BPU1Qoc3lzX2ZzdGF0YXQpCit7CisgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0KSk7Cit9CisKK1BSRShzeXNfb3BlbmF0KQoreworICAgLyogaW50IG9wZW5hdChpbnQgZmlsZGVzLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGZsYWdzKTsKKyAgICAgIGludCBvcGVuYXQoaW50IGZpbGRlcywgY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmbGFncywgbW9kZV90IG1vZGUpOyAqLworCisgICAvKiBJbnRlcnByZXQgdGhlIGZpcnN0IGFyZ3VtZW50IGFzIDMyLWJpdCB2YWx1ZSBldmVuIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmUuCisgICAgICBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIExpbnV4LCBmb3IgZXhhbXBsZSwgd2hlcmUgZ2xpYmMgc2lnbi1leHRlbmRzIGl0LiAqLworICAgSW50IGZkID0gKEludCkgQVJHMTsKKworICAgaWYgKEFSRzMgJiBWS0lfT19DUkVBVCkgeworICAgICAgLyogNC1hcmcgdmVyc2lvbiAqLworICAgICAgUFJJTlQoInN5c19vcGVuYXQgKCAlZCwgJSNseCglcyksICVsZCwgJWxkICkiLCBmZCwgQVJHMiwgKEhDaGFyICopIEFSRzIsCisgICAgICAgICAgICBTQVJHMywgU0FSRzQpOworICAgICAgUFJFX1JFR19SRUFENChsb25nLCAib3BlbmF0IiwgaW50LCBmaWxkZXMsIGNvbnN0IGNoYXIgKiwgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgIGludCwgZmxhZ3MsIHZraV9tb2RlX3QsIG1vZGUpOworICAgfQorICAgZWxzZSB7CisgICAgICAvKiAzLWFyZyB2ZXJzaW9uICovCisgICAgICBQUklOVCgic3lzX29wZW5hdCAoICVkLCAlI2x4KCVzKSwgJWxkICkiLCBmZCwgQVJHMiwgKEhDaGFyICopIEFSRzIsCisgICAgICAgICAgICBTQVJHMyk7CisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJvcGVuYXQiLCBpbnQsIGZpbGRlcywgY29uc3QgY2hhciAqLCBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgaW50LCBmbGFncyk7CisgICB9CisKKyAgIFBSRV9NRU1fUkFTQ0lJWigib3BlbmF0KGZpbGVuYW1lKSIsIEFSRzIpOworCisgICAvKiBCZSBzdHJpY3QgYnV0IGlnbm9yZSBmaWxkZXMgZm9yIGFic29sdXRlIHBhdGhuYW1lLiAqLworICAgaWYgKGZkICE9IFZLSV9BVF9GRENXRAorICAgICAgICYmIE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCAqKSBBUkcyLCAxKQorICAgICAgICYmICgoSENoYXIgKikgQVJHMilbMF0gIT0gJy8nCisgICAgICAgJiYgIU1MXyhmZF9hbGxvd2VkKShmZCwgIm9wZW5hdCIsIHRpZCwgRmFsc2UpKSB7CisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgaWYgKE1MXyhoYW5kbGVfYXV4dl9vcGVuKShzdGF0dXMsIChjb25zdCBIQ2hhciAqKSBBUkcyLCBBUkczKSkKKyAgICAgIHJldHVybjsKKworICAgaWYgKGhhbmRsZV9wc2luZm9fb3BlbihzdGF0dXMsIFRydWUgLyp1c2Vfb3BlbmF0Ki8sIChjb25zdCBIQ2hhciAqKSBBUkcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBmZCwgQVJHMywgQVJHNCkpCisgICAgICByZXR1cm47CisKKyNpZiBkZWZpbmVkKFNPTEFSSVNfUFJPQ19DTURMSU5FKQorICAgaWYgKGhhbmRsZV9jbWRsaW5lX29wZW4oc3RhdHVzLCAoY29uc3QgSENoYXIgKikgQVJHMikpCisgICAgICByZXR1cm47CisjZW5kaWYgLyogU09MQVJJU19QUk9DX0NNRExJTkUgKi8KKworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CisKK1BPU1Qoc3lzX29wZW5hdCkKK3sKKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKFJFUywgIm9wZW5hdCIsIHRpZCwgVHJ1ZSkpIHsKKyAgICAgIFZHXyhjbG9zZSkoUkVTKTsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRU1GSUxFKTsKKyAgIH0KKyAgIGVsc2UgaWYgKFZHXyhjbG9fdHJhY2tfZmRzKSkKKyAgICAgIE1MXyhyZWNvcmRfZmRfb3Blbl93aXRoX2dpdmVuX25hbWUpKHRpZCwgUkVTLCAoSENoYXIqKUFSRzIpOworfQorCitQUkUoc3lzX3Rhc2tzeXMpCit7CisgICAvKiBLZXJuZWw6IGxvbmcgdGFza3N5cyhpbnQgY29kZSwgcHJvamlkX3QgcHJvamlkLCB1aW50X3QgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwcm9qaWRidWYsIHNpemVfdCBwYnVmc3opOworICAgICovCisgICBzd2l0Y2ggKEFSRzEgLypjb2RlKi8pIHsKKyAgIGNhc2UgMDoKKyAgICAgIC8qIExpYmM6IHRhc2tpZF90IHNldHRhc2tpZChwcm9qaWRfdCBwcm9qZWN0LCB1aW50X3QgZmxhZ3MpOyAqLworICAgICAgUFJJTlQoInN5c190YXNrc3lzICggJWxkLCAlbGQsICVsdSApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJ0YXNrc3lzIiwgInNldHRhc2tpZCIpLCBpbnQsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9wcm9qaWRfdCwgcHJvamlkLCB2a2lfdWludF90LCBmbGFncyk7CisgICAgICBicmVhazsKKyAgIGNhc2UgMToKKyAgICAgIC8qIExpYmM6IHRhc2tpZF90IGdldHRhc2tpZCh2b2lkKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfdGFza3N5cyAoICVsZCApIiwgU0FSRzEpOworICAgICAgUFJFX1JFR19SRUFEMShsb25nLCBTQzIoInRhc2tzeXMiLCAiZ2V0dGFza2lkIiksIGludCwgY29kZSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgMjoKKyAgICAgIC8qIExpYmM6IHByb2ppZF90IGdldHByb2ppZCh2b2lkKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfdGFza3N5cyAoICVsZCApIiwgU0FSRzEpOworICAgICAgUFJFX1JFR19SRUFEMShsb25nLCBTQzIoInRhc2tzeXMiLCAiZ2V0cHJvamlkIiksIGludCwgY29kZSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgMzoKKyAgICAgIC8qIExpYnByb2plY3Q6IHNpemVfdCBwcm9qbGlzdChpZF90ICppZGJ1Ziwgc2l6ZV90IGlkYnVmc3opOyAqLworICAgICAgUFJJTlQoInN5c190YXNrc3lzICggJWxkLCAlI2x4LCAlbHUgKSIsIFNBUkcxLCBBUkc0LCBBUkc1KTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJ0YXNrc3lzIiwgInByb2psaXN0IiksIGludCwgY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX2lkX3QgKiwgaWRidWYsIHZraV9zaXplX3QsIGlkYnVmc3opOworICAgICAgUFJFX01FTV9XUklURSgidGFza3N5cyhpZGJ1ZikiLCBBUkc0LCBBUkc1KTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgdGFza3N5cyBjYWxsIHdpdGggY29kZSAlbGQuIiwgU0FSRzEpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgICAgIGJyZWFrOworICAgfQorfQorCitQT1NUKHN5c190YXNrc3lzKQoreworICAgc3dpdGNoIChBUkcxIC8qY29kZSovKSB7CisgICBjYXNlIDA6CisgICBjYXNlIDE6CisgICBjYXNlIDI6CisgICAgICBicmVhazsKKyAgIGNhc2UgMzoKKyAgICAgIGlmICgoQVJHNCAhPSAwKSAmJiAoQVJHNSAhPSAwKSkKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIE1JTihSRVMsIEFSRzUpKTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX2x3cF9wYXJrKQoreworICAgLyogS2VybmVsOiBpbnQgbHdwX3BhcmsoaW50IHdoaWNoLCB1aW50cHRyX3QgYXJnMSwgdWludHB0cl90IGFyZzIpOworICAgICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIHN3aXRjaCAoQVJHMSAvKndoaWNoKi8pIHsKKyAgIGNhc2UgMDoKKyAgICAgIC8qIExpYmM6IGludCBsd3BfcGFyayh0aW1lc3BlY190ICp0aW1lb3V0LCBpZF90IGx3cGlkKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfbHdwX3BhcmsgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJsd3BfcGFyayIsICJsd3BfcGFyayIpLCBpbnQsIHdoaWNoLAorICAgICAgICAgICAgICAgICAgICB0aW1lc3BlY190ICosIHRpbWVvdXQsIHZraV9pZF90LCBsd3BpZCk7CisgICAgICBpZiAoQVJHMikgeworICAgICAgICAgUFJFX01FTV9SRUFEKCJsd3BfcGFyayh0aW1lb3V0KSIsIEFSRzIsIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworICAgICAgICAgLypQUkVfTUVNX1dSSVRFKCJsd3BfcGFyayh0aW1lb3V0KSIsIEFSRzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7Ki8KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSAxOgorICAgICAgLyogTGliYzogaW50IGx3cF91bnBhcmsoaWRfdCBsd3BpZCk7ICovCisgICAgICBQUklOVCgic3lzX2x3cF9wYXJrICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigibHdwX3BhcmsiLCAibHdwX3VucGFyayIpLCBpbnQsIHdoaWNoLAorICAgICAgICAgICAgICAgICAgICB2a2lfaWRfdCwgbHdwaWQpOworICAgICAgYnJlYWs7CisgICBjYXNlIDI6CisgICAgICAvKiBMaWJjOiBpbnQgbHdwX3VucGFya19hbGwoaWRfdCAqbHdwaWQsIGludCBuaWRzKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfbHdwX3BhcmsgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJsd3BfcGFyayIsICJsd3BfdW5wYXJrX2FsbCIpLCBpbnQsIHdoaWNoLAorICAgICAgICAgICAgICAgICAgICBpZF90ICosIGx3cGlkLCBpbnQsIG5pZHMpOworICAgICAgUFJFX01FTV9SRUFEKCJsd3BfcGFyayhsd3BpZCkiLCBBUkcyLCBBUkczICogc2l6ZW9mKHZraV9pZF90KSk7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIGx3cF9wYXJrIGNhbGwgd2l0aCB3aGljaCAlbGQuIiwgU0FSRzEpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgICAgIGJyZWFrOworICAgfQorfQorCitQT1NUKHN5c19sd3BfcGFyaykKK3sKKyAgIHN3aXRjaCAoQVJHMSAvKndoaWNoKi8pIHsKKyAgIGNhc2UgMDoKKyAgICAgIGlmIChBUkcyKQorICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgMToKKyAgIGNhc2UgMjoKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX3NlbmRmaWxldikKK3sKKyAgIC8qIEtlcm5lbDogc3NpemVfdCBzZW5kZmlsZXYoaW50IG9wY29kZSwgaW50IGZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc2VuZGZpbGV2ZWMgKnZlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNmdmNudCwgc2l6ZV90ICp4ZmVycmVkKTsKKyAgICAqLworICAgUFJJTlQoInN5c19zZW5kZmlsZXYgKCAlbGQsICVsZCwgJSNseCwgJWxkLCAlI2x4ICkiLAorICAgICAgICAgU0FSRzEsIFNBUkcyLCBBUkczLCBTQVJHNCwgQVJHNSk7CisKKyAgIHN3aXRjaCAoQVJHMSAvKm9wY29kZSovKSB7CisgICBjYXNlIFZLSV9TRU5ERklMRVY6CisgICAgICB7CisgICAgICAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJzZW5kZmlsZXYiLCBpbnQsIG9wY29kZSwgaW50LCBmZCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZraV9zZW5kZmlsZXZlYyAqLCB2ZWMsCisgICAgICAgICAgICAgICAgICAgICAgIGludCwgc2Z2Y250LCB2a2lfc2l6ZV90ICosIHhmZXJyZWQpOworCisgICAgICAgICBQUkVfTUVNX1JFQUQoInNlbmRmaWxldih2ZWMpIiwgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICBBUkc0ICogc2l6ZW9mKHN0cnVjdCB2a2lfc2VuZGZpbGV2ZWMpKTsKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInNlbmRmaWxldih4ZmVycmVkKSIsIEFSRzUsIHNpemVvZih2a2lfc2l6ZV90KSk7CisKKyAgICAgICAgIHN0cnVjdCB2a2lfc2VuZGZpbGV2ZWMgKnZlYyA9IChzdHJ1Y3QgdmtpX3NlbmRmaWxldmVjICopIEFSRzM7CisgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKHZlYywgQVJHNCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmtpX3NlbmRmaWxldmVjKSkpIHsKKyAgICAgICAgICAgIFVJbnQgaTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBBUkc0OyBpKyspIHsKKyAgICAgICAgICAgICAgIEhDaGFyIGRlc2NbMzVdOyAgICAvLyBsYXJnZSBlbm91Z2gKKyAgICAgICAgICAgICAgIGlmICh2ZWNbaV0uc2Z2X2ZkID09IFZLSV9TRlZfRkRfU0VMRikgeworICAgICAgICAgICAgICAgICAgVkdfKHNucHJpbnRmKShkZXNjLCBzaXplb2YoZGVzYyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZW5kZmlsZXYodmVjWyV1XS5zZnZfb2ZmIiwgaSk7CisgICAgICAgICAgICAgICAgICBQUkVfTUVNX1JFQUQoZGVzYywgdmVjW2ldLnNmdl9vZmYsIHZlY1tpXS5zZnZfbGVuKTsKKyAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICBWR18oc25wcmludGYpKGRlc2MsIHNpemVvZihkZXNjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbmRmaWxldih2ZWNbJXVdLnNmdl9mZCkiLCBpKTsKKyAgICAgICAgICAgICAgICAgIGlmICghTUxfKGZkX2FsbG93ZWQpKHZlY1tpXS5zZnZfZmQsIGRlc2MsIHRpZCwgRmFsc2UpKQorICAgICAgICAgICAgICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NFTkRGSUxFVjY0OgorICAgICAgeworICAgICAgICAgUFJFX1JFR19SRUFENShsb25nLCAic2VuZGZpbGV2IiwgaW50LCBvcGNvZGUsIGludCwgZmQsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2a2lfc2VuZGZpbGV2ZWM2NCAqLCB2ZWMsCisgICAgICAgICAgICAgICAgICAgICAgIGludCwgc2Z2Y250LCB2a2lfc2l6ZV90ICosIHhmZXJyZWQpOworCisgICAgICAgICBQUkVfTUVNX1JFQUQoInNlbmRmaWxldih2ZWMpIiwgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICBBUkc0ICogc2l6ZW9mKHN0cnVjdCB2a2lfc2VuZGZpbGV2ZWM2NCkpOworICAgICAgICAgUFJFX01FTV9XUklURSgic2VuZGZpbGV2KHhmZXJyZWQpIiwgQVJHNSwgc2l6ZW9mKHZraV9zaXplX3QpKTsKKworICAgICAgICAgc3RydWN0IHZraV9zZW5kZmlsZXZlYzY0ICp2ZWM2NCA9CisgICAgICAgICAgICAoc3RydWN0IHZraV9zZW5kZmlsZXZlYzY0ICopIEFSRzM7CisgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKHZlYzY0LCBBUkc0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCB2a2lfc2VuZGZpbGV2ZWM2NCkpKSB7CisgICAgICAgICAgICBVSW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgQVJHNDsgaSsrKSB7CisgICAgICAgICAgICAgICBIQ2hhciBkZXNjWzM1XTsgICAgLy8gbGFyZ2UgZW5vdWdoCisgICAgICAgICAgICAgICBpZiAodmVjNjRbaV0uc2Z2X2ZkID09IFZLSV9TRlZfRkRfU0VMRikgeworICAgICAgICAgICAgICAgICAgVkdfKHNucHJpbnRmKShkZXNjLCBzaXplb2YoZGVzYyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZW5kZmlsZXYodmVjWyV1XS5zZnZfb2ZmIiwgaSk7CisgICAgICAgICAgICAgICAgICBQUkVfTUVNX1JFQUQoZGVzYywgdmVjNjRbaV0uc2Z2X29mZiwgdmVjNjRbaV0uc2Z2X2xlbik7CisgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgVkdfKHNucHJpbnRmKShkZXNjLCBzaXplb2YoZGVzYyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZW5kZmlsZXYodmVjWyV1XS5zZnZfZmQpIiwgaSk7CisgICAgICAgICAgICAgICAgICBpZiAoIU1MXyhmZF9hbGxvd2VkKSh2ZWM2NFtpXS5zZnZfZmQsIGRlc2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQsIEZhbHNlKSkKKyAgICAgICAgICAgICAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBzZW5kZmlsZXYgY2FsbCB3aXRoICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAib3Bjb2RlICVsZC4iLCBTQVJHMSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzIsICJzZW5kZmlsZXYoZmQpIiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKKworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CisKK1BPU1Qoc3lzX3NlbmRmaWxldikKK3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzUsIHNpemVvZih2a2lfc2l6ZV90KSk7Cit9CisKKyNpZiBkZWZpbmVkKFNPTEFSSVNfTFdQX05BTUVfU1lTQ0FMTCkKK1BSRShzeXNfbHdwX25hbWUpCit7CisgICAvKiBpbnQgbHdwX25hbWUoaW50IG9wY29kZSwgaWRfdCBsd3BpZCwgY2hhciAqbmFtZSwgc2l6ZV90IGxlbik7ICovCisgICBQUklOVCgic3lzX2x3cF9uYW1lICggJWxkLCAlbGQsICUjbHgsICVsdSApIiwgU0FSRzEsIFNBUkcyLCBBUkczLCBBUkc0KTsKKworICAgc3dpdGNoIChBUkcxIC8qb3Bjb2RlKi8pIHsKKyAgIGNhc2UgMDoKKyAgICAgIC8qIGx3cF9zZXRuYW1lICovCisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJsd3BfbmFtZSIsIGludCwgb3Bjb2RlLCB2a2lfaWRfdCwgbHdwaWQsCisgICAgICAgICAgICAgICAgICAgIGNoYXIgKiwgbmFtZSk7CisgICAgICBQUkVfTUVNX1JBU0NJSVooImx3cF9uYW1lKG5hbWUpIiwgQVJHMyk7CisgICAgICBicmVhazsKKyAgIGNhc2UgMToKKyAgICAgIC8qIGx3cF9nZXRuYW1lICovCisgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJsd3BfbmFtZSIsIGludCwgb3Bjb2RlLCB2a2lfaWRfdCwgbHdwaWQsCisgICAgICAgICAgICAgICAgICAgIGNoYXIgKiwgbmFtZSwgdmtpX3NpemVfdCwgbGVuKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoImx3cF9uYW1lKG5hbWUpIiwgQVJHMywgQVJHNCk7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIGx3cF9uYW1lIGNhbGwgd2l0aCBvcGNvZGUgJWxkLiIsIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KK30KKworUE9TVChzeXNfbHdwX25hbWUpCit7CisgICBzd2l0Y2ggKEFSRzEgLypvcGNvZGUqLykgeworICAgY2FzZSAwOgorICAgICAgaWYgKEFSRzMpIHsgLy8gUGFyYW5vaWEKKyAgICAgICAgIGNvbnN0IEhDaGFyICpuZXdfbmFtZSA9IChjb25zdCBIQ2hhciAqKSBBUkczOworICAgICAgICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisgICAgICAgICBTaXplVCBuZXdfbGVuID0gVkdfKHN0cmxlbikobmV3X25hbWUpOworCisgICAgICAgICAvKiBEb24ndCBib3RoZXIgcmV1c2luZyB0aGUgbWVtb3J5LiBUaGlzIGlzIGEgcmFyZSBldmVudC4gKi8KKyAgICAgICAgIHRzdC0+dGhyZWFkX25hbWUgPSBWR18ocmVhbGxvYykoInN5c3dyYXAubHdwX25hbWUiLCB0c3QtPnRocmVhZF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfbGVuICsgMSk7CisgICAgICAgICBWR18oc3RyY3B5KSh0c3QtPnRocmVhZF9uYW1lLCBuZXdfbmFtZSk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgMToKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIFZHXyhzdHJsZW4pKChIQ2hhciAqKSBBUkczKSArIDEpOworICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgdmdfYXNzZXJ0KDApOworICAgICAgYnJlYWs7CisgICB9Cit9CisjZW5kaWYgLyogU09MQVJJU19MV1BfTkFNRV9TWVNDQUxMICovCisKK1BSRShzeXNfcHJpdnN5cykKK3sKKyAgIC8qIEtlcm5lbDogaW50IHByaXZzeXMoaW50IGNvZGUsIHByaXZfb3BfdCBvcCwgcHJpdl9wdHlwZV90IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ1ZnNpemUsIGludCBpdHlwZSk7CisgICAgKi8KKyAgIHN3aXRjaCAoQVJHMSAvKmNvZGUqLykgeworICAgY2FzZSBWS0lfUFJJVlNZU19TRVRQUFJJVjoKKyAgICAgIC8qIExpYmM6IGludCBzZXRwcHJpdihwcml2X29wX3Qgb3AsIHByaXZfcHR5cGVfdCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaXZfc2V0X3QgKnBzZXQpOworICAgICAgICovCisgICAgICBQUklOVCgic3lzX3ByaXZzeXMgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbHUgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsCisgICAgICAgICAgICBBUkc0LCBBUkc1KTsKKyAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MyKCJwcml2c3lzIiwgInNldHBwcml2IiksIGludCwgY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3ByaXZfb3BfdCwgb3AsIHZraV9wcml2X3B0eXBlX3QsIHR5cGUsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByaXZfc2V0X3QgKiwgcHNldCwgdmtpX3NpemVfdCwgYnVmc2l6ZSk7CisgICAgICBQUkVfTUVNX1JFQUQoInByaXZzeXMocHNldCkiLCBBUkc0LCBBUkc1KTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFJJVlNZU19HRVRQUFJJVjoKKyAgICAgIC8qIExpYmM6IGludCBnZXRwcHJpdihwcml2X3B0eXBlX3QgdHlwZSwgcHJpdl9zZXRfdCAqcHNldCk7CisgICAgICAgICAgICAgICBwcml2X3NldF90ICpwc2V0IC0+IHZvaWQgKmJ1ZgorICAgICAgICovCisgICAgICBQUklOVCgic3lzX3ByaXZzeXMgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbHUgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsCisgICAgICAgICAgICBBUkc0LCBBUkc1KTsKKyAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MyKCJwcml2c3lzIiwgImdldHBwcml2IiksIGludCwgY29kZSwKKyAgICAgICAgICAgIHZraV9wcml2X29wX3QsIG9wLCB2a2lfcHJpdl9wdHlwZV90LCB0eXBlLCBwcml2X3NldF90ICosIHBzZXQsCisgICAgICAgICAgICB2a2lfc2l6ZV90LCBidWZzaXplKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoInByaXZzeXMocHNldCkiLCBBUkc0LCBBUkc1KTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFJJVlNZU19HRVRJTVBMSU5GTzoKKyAgICAgIC8qIExpYmM6IGludCBnZXRwcml2aW5mbyhwcml2X2ltcGxfaW5mb190ICpidWYsIHNpemVfdCBidWZzaXplKTsKKyAgICAgICAgICAgICAgIHByaXZfaW1wbF9pbmZvX3QgKmJ1ZiAtPiB2b2lkICpidWYKKyAgICAgICAqLworICAgICAgUFJJTlQoInN5c19wcml2c3lzICggJWxkLCAlbGQsICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLAorICAgICAgICAgICAgQVJHNCwgQVJHNSk7CisgICAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsIFNDMigicHJpdnN5cyIsICJnZXRwcml2aW5mbyIpLCBpbnQsIGNvZGUsCisgICAgICAgICAgICB2a2lfcHJpdl9vcF90LCBvcCwgdmtpX3ByaXZfcHR5cGVfdCwgdHlwZSwKKyAgICAgICAgICAgIHByaXZfaW1wbF9pbmZvX3QgKiwgYnVmLCB2a2lfc2l6ZV90LCBidWZzaXplKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoInByaXZzeXMoYnVmKSIsIEFSRzQsIEFSRzUpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QUklWU1lTX1NFVFBGTEFHUzoKKyAgICAgIC8qIExpYmM6IGludCBzZXRwZmxhZ3ModWludF90IGZsYWcsIHVpbnRfdCB2YWwpOworICAgICAgICAgICAgICAgdWludF90IGZsYWcgLT4gcHJpdl9vcF90IG9wCisgICAgICAgICAgICAgICB1aW50X3QgdmFsIC0+IHByaXZfcHR5cGVfdCB0eXBlCisgICAgICAgKi8KKyAgICAgIFBSSU5UKCJzeXNfcHJpdnN5cyAoICVsZCwgJWx1LCAlbHUgKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJwcml2c3lzIiwgInNldHBmbGFncyIpLCBpbnQsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV91aW50X3QsIGZsYWcsIHZraV91aW50X3QsIHZhbCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BSSVZTWVNfR0VUUEZMQUdTOgorICAgICAgLyogTGliYzogdWludF90IGdldHBmbGFncyh1aW50X3QgZmxhZyk7CisgICAgICAgICAgICAgICB1aW50X3QgZmxhZyAtPiBwcml2X29wX3Qgb3AKKyAgICAgICAqLworICAgICAgUFJJTlQoInN5c19wcml2c3lzICggJWxkLCAlbHUgKSIsIFNBUkcxLCBBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgU0MyKCJwcml2c3lzIiwgInNldHBmbGFncyIpLCBpbnQsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV91aW50X3QsIGZsYWcpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QUklWU1lTX0lTU0VUVUdJRDoKKyAgICAgIC8qIExpYmM6IGludCBpc3NldHVnaWQodm9pZCk7ICovCisgICAgICBQUklOVCgic3lzX3ByaXZzeXMgKCAlbGQgKSIsIFNBUkcxKTsKKyAgICAgIFBSRV9SRUdfUkVBRDEobG9uZywgU0MyKCJwcml2c3lzIiwgImlzc2V0dWdpZCIpLCBpbnQsIGNvZGUpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QUklWU1lTX1BGRVhFQ19SRUc6CisgICAgICAvKiBMaWJjOiBpbnQgcmVnaXN0ZXJfcGZleGVjKGludCBkaWQpOworICAgICAgICAgICAgICAgaW50IGRpZCAtPiBwcml2X29wX3Qgb3AKKyAgICAgICAqLworICAgICAgUFJJTlQoInN5c19wcml2c3lzICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigicHJpdnN5cyIsICJyZWdpc3Rlcl9wZmV4ZWMiKSwgaW50LCBjb2RlLAorICAgICAgICAgICAgICAgICAgICBpbnQsIGRpZCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BSSVZTWVNfUEZFWEVDX1VOUkVHOgorICAgICAgLyogTGliYzogaW50IHVucmVnaXN0ZXJfcGZleGVjKGludCBkaWQpOyAqLworICAgICAgUFJJTlQoInN5c19wcml2c3lzICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigicHJpdnN5cyIsICJ1bnJlZ2lzdGVyX3BmZXhlYyIpLCBpbnQsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgIGludCwgZGlkKTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgcHJpdnN5cyBjYWxsIHdpdGggY29kZSAlbGQuIiwgU0FSRzEpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgICAgIGJyZWFrOworICAgfQorCisgICAvKiBCZSBzdHJpY3QuICovCisgICBpZiAoKEFSRzEgPT0gVktJX1BSSVZTWVNfUEZFWEVDX1JFRyB8fAorICAgICAgICBBUkcxID09IFZLSV9QUklWU1lTX1BGRVhFQ19VTlJFRykgJiYKKyAgICAgICAhTUxfKGZkX2FsbG93ZWQpKEFSRzIsICJwcml2c3lzIiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUE9TVChzeXNfcHJpdnN5cykKK3sKKyAgIHN3aXRjaCAoQVJHMSAvKmNvZGUqLykgeworICAgY2FzZSBWS0lfUFJJVlNZU19TRVRQUFJJVjoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFJJVlNZU19HRVRQUFJJVjoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIHNpemVvZih2a2lfcHJpdl9zZXRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QUklWU1lTX0dFVElNUExJTkZPOgorICAgICAgLyogVGhlIGtlcm5lbCBjb3B5IG91dHMgZGF0YSBvZiBzaXplIG1pbihidWZzaXplLCBwcml2aW5mb3NpemUpLgorICAgICAgICAgVW5mb3J0dW5hdGVseSwgaXQgZG9lcyBub3Qgc2VlbSB0byBiZSBwb3NzaWJsZSB0byBlYXNpbHkgb2J0YWluIHRoZQorICAgICAgICAgcHJpdmluZm9zaXplIHZhbHVlLiAgVGhlIGNvZGUgYmVsb3cgb3B0aW1pc3RpY2FsbHkgbWFya3MgYWxsIEFSRzUKKyAgICAgICAgIGJ5dGVzIChha2EgYnVmc2l6ZSkgYXMgd3JpdHRlbiBieSB0aGUga2VybmVsLiAqLworICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHNCwgQVJHNSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BSSVZTWVNfU0VUUEZMQUdTOgorICAgY2FzZSBWS0lfUFJJVlNZU19HRVRQRkxBR1M6CisgICBjYXNlIFZLSV9QUklWU1lTX0lTU0VUVUdJRDoKKyAgIGNhc2UgVktJX1BSSVZTWVNfUEZFWEVDX1JFRzoKKyAgIGNhc2UgVktJX1BSSVZTWVNfUEZFWEVDX1VOUkVHOgorICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgdmdfYXNzZXJ0KDApOworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BSRShzeXNfdWNyZWRzeXMpCit7CisgICAvKiBLZXJuZWw6IGludCB1Y3JlZHN5cyhpbnQgY29kZSwgaW50IG9iaiwgdm9pZCAqYnVmKTsgKi8KKyAgIFBSSU5UKCJzeXNfdWNyZWRzeXMgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKworICAgc3dpdGNoIChBUkcxIC8qY29kZSovKSB7CisgICBjYXNlIFZLSV9VQ1JFRFNZU19VQ1JFREdFVDoKKyAgICAgIC8qIExpYmM6IHVjcmVkX3QgKnVjcmVkX2dldChwaWRfdCBwaWQpOyAqLworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzIoInVjcmVkc3lzIiwgInVjcmVkZ2V0IiksIGludCwgY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3BpZF90LCBwaWQsIHZraV91Y3JlZF90ICosIGJ1Zik7CisgICAgICBQUkVfTUVNX1dSSVRFKCJ1Y3JlZHN5cyhidWYpIiwgQVJHMywgc2l6ZW9mKHZraV91Y3JlZF90KSk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfVUNSRURTWVNfR0VUUEVFUlVDUkVEOgorICAgICAgLyogTGliYzogaW50IGdldHBlZXJ1Y3JlZChpbnQgZmQsIHVjcmVkX3QgKip1Y3JlZCk7ICovCisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMigidWNyZWRzeXMiLCAiZ2V0cGVlcnVjcmVkIiksIGludCwgY29kZSwKKyAgICAgICAgICAgICAgICAgICAgaW50LCBmZCwgdmtpX3VjcmVkX3QgKiwgYnVmKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoInVjcmVkc3lzKGJ1ZikiLCBBUkczLCBzaXplb2YodmtpX3VjcmVkX3QpKTsKKworICAgICAgLyogQmUgc3RyaWN0LiAqLworICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMiwgInVjcmVkc3lzIiwgdGlkLCBGYWxzZSkpCisgICAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKKyAgICAgIGJyZWFrOworCisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSB1Y3JlZHN5cyBjYWxsIHdpdGggY29kZSAlbGQuIiwgU0FSRzEpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgICAgIGJyZWFrOworICAgfQorfQorCitQT1NUKHN5c191Y3JlZHN5cykKK3sKKyAgIHN3aXRjaCAoQVJHMSAvKmNvZGUqLykgeworICAgY2FzZSBWS0lfVUNSRURTWVNfVUNSRURHRVQ6CisgICBjYXNlIFZLSV9VQ1JFRFNZU19HRVRQRUVSVUNSRUQ6CisgICAgICB2Z19hc3NlcnQoQVJHMyAhPSAwKTsKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsICgodmtpX3VjcmVkX3QgKikgQVJHMyktPnVjX3NpemUpOworICAgICAgYnJlYWs7CisKKyAgIGRlZmF1bHQ6CisgICAgICB2Z19hc3NlcnQoMCk7CisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19nZXRtc2cpCit7CisgICAvKiBpbnQgZ2V0bXNnKGludCBmaWxkZXMsIHN0cnVjdCBzdHJidWYgKmN0bHB0ciwgc3RydWN0IHN0cmJ1ZiAqZGF0YXB0ciwKKyAgICAgICAgICAgICAgICAgaW50ICpmbGFnc3ApOyAqLworICAgc3RydWN0IHZraV9zdHJidWYgKmN0cmxwdHIgPSAoc3RydWN0IHZraV9zdHJidWYgKilBUkcyOworICAgc3RydWN0IHZraV9zdHJidWYgKmRhdGFwdHIgPSAoc3RydWN0IHZraV9zdHJidWYgKilBUkczOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX2dldG1zZyAoICVsZCwgJSNseCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIEFSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAiZ2V0bXNnIiwgaW50LCBmaWxkZXMsIHN0cnVjdCB2a2lfc3RyYnVmICosIGN0bHB0ciwKKyAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9zdHJidWYgKiwgZGF0YXB0ciwgaW50ICosIGZsYWdzcCk7CisgICBpZiAoY3RybHB0cikgeworICAgICAgUFJFX0ZJRUxEX1JFQUQoImdldG1zZyhjdHJscHRyLT5tYXhsZW4pIiwgY3RybHB0ci0+bWF4bGVuKTsKKyAgICAgIFBSRV9GSUVMRF9XUklURSgiZ2V0bXNnKGN0cmxwdHItPmxlbikiLCBjdHJscHRyLT5sZW4pOworICAgICAgUFJFX0ZJRUxEX1JFQUQoImdldG1zZyhjdHJscHRyLT5idWYpIiwgY3RybHB0ci0+YnVmKTsKKyAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoKHZvaWQqKUFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0cmJ1ZikpCisgICAgICAgICAgJiYgY3RybHB0ci0+bWF4bGVuID4gMCkKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoImdldG1zZyhjdHJscHRyLT5idWYpIiwgKEFkZHIpY3RybHB0ci0+YnVmLAorICAgICAgICAgICAgICAgICAgICAgICBjdHJscHRyLT5tYXhsZW4pOworICAgfQorICAgaWYgKGRhdGFwdHIpIHsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJnZXRtc2coZGF0YXB0ci0+bWF4bGVuKSIsIGRhdGFwdHItPm1heGxlbik7CisgICAgICBQUkVfRklFTERfV1JJVEUoImdldG1zZyhkYXRhcHRyLT5sZW4pIiwgZGF0YXB0ci0+bGVuKTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJnZXRtc2coZGF0YXB0ci0+YnVmKSIsIGRhdGFwdHItPmJ1Zik7CisgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkKilBUkczLCBzaXplb2Yoc3RydWN0IHZraV9zdHJidWYpKQorICAgICAgICAgICYmIGRhdGFwdHItPm1heGxlbiA+IDApCisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJnZXRtc2coZGF0YXB0ci0+YnVmKSIsIChBZGRyKWRhdGFwdHItPmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgZGF0YXB0ci0+bWF4bGVuKTsKKyAgIH0KKyAgIFBSRV9NRU1fUkVBRCgiZ2V0bXNnKGZsYWdzcCkiLCBBUkc0LCBzaXplb2YoaW50KSk7CisgICAvKlBSRV9NRU1fV1JJVEUoImdldG1zZyhmbGFnc3ApIiwgQVJHNCwgc2l6ZW9mKGludCkpOyovCisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJnZXRtc2ciLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorCitQT1NUKHN5c19nZXRtc2cpCit7CisgICBzdHJ1Y3QgdmtpX3N0cmJ1ZiAqY3RybHB0ciA9IChzdHJ1Y3QgdmtpX3N0cmJ1ZiAqKUFSRzI7CisgICBzdHJ1Y3QgdmtpX3N0cmJ1ZiAqZGF0YXB0ciA9IChzdHJ1Y3QgdmtpX3N0cmJ1ZiAqKUFSRzM7CisKKyAgIGlmIChjdHJscHRyICYmIGN0cmxwdHItPmxlbiA+IDApCisgICAgICBQT1NUX01FTV9XUklURSgoQWRkciljdHJscHRyLT5idWYsIGN0cmxwdHItPmxlbik7CisgICBpZiAoZGF0YXB0ciAmJiBkYXRhcHRyLT5sZW4gPiAwKQorICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpZGF0YXB0ci0+YnVmLCBkYXRhcHRyLT5sZW4pOworICAgUE9TVF9NRU1fV1JJVEUoQVJHNCwgc2l6ZW9mKGludCkpOworfQorCitQUkUoc3lzX3B1dG1zZykKK3sKKyAgIC8qIGludCBwdXRtc2coaW50IGZpbGRlcywgc3RydWN0IHN0cmJ1ZiAqY3RscHRyLCBzdHJ1Y3Qgc3RyYnVmICpkYXRhcHRyLAorICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MpOyAqLworICAgc3RydWN0IHZraV9zdHJidWYgKmN0cmxwdHIgPSAoc3RydWN0IHZraV9zdHJidWYgKilBUkcyOworICAgc3RydWN0IHZraV9zdHJidWYgKmRhdGFwdHIgPSAoc3RydWN0IHZraV9zdHJidWYgKilBUkczOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3B1dG1zZyAoICVsZCwgJSNseCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAicHV0bXNnIiwgaW50LCBmaWxkZXMsIHN0cnVjdCB2a2lfc3RyYnVmICosIGN0cmxwdHIsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfc3RyYnVmICosIGRhdGFwdHIsIGludCwgZmxhZ3MpOworICAgaWYgKGN0cmxwdHIpIHsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJwdXRtc2coY3RybHB0ci0+bGVuKSIsIGN0cmxwdHItPmxlbik7CisgICAgICBQUkVfRklFTERfUkVBRCgicHV0bXNnKGN0cmxwdHItPmJ1ZikiLCBjdHJscHRyLT5idWYpOworICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCopQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RyYnVmKSkKKyAgICAgICAgICAmJiBjdHJscHRyLT5sZW4gPiAwKQorICAgICAgICAgUFJFX01FTV9SRUFEKCJwdXRtc2coY3RybHB0ci0+YnVmKSIsIChBZGRyKWN0cmxwdHItPmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICBjdHJscHRyLT5sZW4pOworICAgfQorICAgaWYgKGRhdGFwdHIpIHsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJwdXRtc2coZGF0YXB0ci0+bGVuKSIsIGRhdGFwdHItPmxlbik7CisgICAgICBQUkVfRklFTERfUkVBRCgicHV0bXNnKGRhdGFwdHItPmJ1ZikiLCBkYXRhcHRyLT5idWYpOworICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCopQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfc3RyYnVmKSkKKyAgICAgICAgICAmJiBkYXRhcHRyLT5sZW4gPiAwKQorICAgICAgICAgUFJFX01FTV9SRUFEKCJwdXRtc2coZGF0YXB0ci0+YnVmKSIsIChBZGRyKWRhdGFwdHItPmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICBkYXRhcHRyLT5sZW4pOworICAgfQorCisgICAvKiBCZSBzdHJpY3QuICovCisgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcxLCAicHV0bXNnIiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUFJFKHN5c19sc3RhdCkKK3sKKyAgIC8qIGludCBsc3RhdChjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqYnVmKTsgKi8KKyAgIC8qIE5vdGU6IFdlIGNvdWxkIHVzZSBoZXJlIHRoZSBzeXNfbmV3bHN0YXQgZ2VuZXJpYyB3cmFwcGVyLCBidXQgdGhlICduZXcnCisgICAgICBpbiBpdHMgbmFtZSBpcyByYXRoZXIgY29uZnVzaW5nIGluIHRoZSBTb2xhcmlzIGNvbnRleHQsIHRodXMgd2UgcHJvdmlkZQorICAgICAgb3VyIG93biB3cmFwcGVyLiAqLworICAgUFJJTlQoInN5c19sc3RhdCAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoSENoYXIgKikgQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJsc3RhdCIsIGNvbnN0IGNoYXIgKiwgcGF0aCwgc3RydWN0IHN0YXQgKiwgYnVmKTsKKworICAgUFJFX01FTV9SQVNDSUlaKCJsc3RhdChwYXRoKSIsIEFSRzEpOworICAgUFJFX01FTV9XUklURSgibHN0YXQoYnVmKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQpKTsKK30KKworUE9TVChzeXNfbHN0YXQpCit7CisgICBQT1NUX01FTV9XUklURShBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0KSk7Cit9CisKK1BSRShzeXNfc2lncHJvY21hc2spCit7CisgICAvKiBpbnQgc2lncHJvY21hc2soaW50IGhvdywgY29uc3Qgc2lnc2V0X3QgKnNldCwgc2lnc2V0X3QgKm9zZXQpOyAqLworICAgUFJJTlQoInN5c19zaWdwcm9jbWFzayAoICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMpOworICAgUFJFX1JFR19SRUFEMyhsb25nLCAic2lncHJvY21hc2siLAorICAgICAgICAgICAgICAgICBpbnQsIGhvdywgdmtpX3NpZ3NldF90ICosIHNldCwgdmtpX3NpZ3NldF90ICosIG9zZXQpOworICAgaWYgKEFSRzIpCisgICAgICBQUkVfTUVNX1JFQUQoInNpZ3Byb2NtYXNrKHNldCkiLCBBUkcyLCBzaXplb2YodmtpX3NpZ3NldF90KSk7CisgICBpZiAoQVJHMykKKyAgICAgIFBSRV9NRU1fV1JJVEUoInNpZ3Byb2NtYXNrKG9zZXQpIiwgQVJHMywgc2l6ZW9mKHZraV9zaWdzZXRfdCkpOworCisgICAvKiBCZSBzYWZlLiAqLworICAgaWYgKEFSRzIgJiYgIU1MXyhzYWZlX3RvX2RlcmVmKCh2b2lkKilBUkcyLCBzaXplb2YodmtpX3NpZ3NldF90KSkpKSB7CisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VGQVVMVCk7CisgICB9CisgICBpZiAoQVJHMyAmJiAhTUxfKHNhZmVfdG9fZGVyZWYoKHZvaWQqKUFSRzMsIHNpemVvZih2a2lfc2lnc2V0X3QpKSkpIHsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUZBVUxUKTsKKyAgIH0KKworICAgaWYgKCFGQUlMVVJFKQorICAgICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcygKKyAgICAgICAgIFZHXyhkb19zeXNfc2lncHJvY21hc2spKHRpZCwgQVJHMSAvKmhvdyovLCAodmtpX3NpZ3NldF90KilBUkcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZraV9zaWdzZXRfdCopQVJHMykKKyAgICAgICk7CisKKyAgIGlmIChTVUNDRVNTKQorICAgICAgKmZsYWdzIHw9IFNmUG9sbEFmdGVyOworfQorCitQT1NUKHN5c19zaWdwcm9jbWFzaykKK3sKKyAgIGlmIChBUkczKQorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHZraV9zaWdzZXRfdCkpOworfQorCitQUkUoc3lzX3NpZ2FjdGlvbikKK3sKKyAgIC8qIGludCBzaWdhY3Rpb24oaW50IHNpZ25hbCwgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqYWN0LAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2lnYWN0aW9uICpvYWN0KTsgKi8KKyAgIFBSSU5UKCJzeXNfc2lnYWN0aW9uICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzaWdhY3Rpb24iLCBpbnQsIHNpZ25hbCwKKyAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqLCBhY3QsIHN0cnVjdCBzaWdhY3Rpb24gKiwgb2FjdCk7CisKKyAgIC8qIE5vdGUgdGhhdCBvbiBTb2xhcmlzLCB2a2lfc2lnYWN0aW9uX3RvS190IGFuZCB2a2lfc2lnYWN0aW9uX2Zyb21LX3QgYXJlCisgICAgICBib3RoIHR5cGVkZWZzIG9mICdzdHJ1Y3Qgc2lnYWN0aW9uJy4gKi8KKworICAgaWYgKEFSRzIpIHsKKyAgICAgIHZraV9zaWdhY3Rpb25fdG9LX3QgKnNhID0gKHZraV9zaWdhY3Rpb25fdG9LX3QqKUFSRzI7CisgICAgICBQUkVfRklFTERfUkVBRCgic2lnYWN0aW9uKGFjdC0+c2FfZmxhZ3MpIiwgc2EtPnNhX2ZsYWdzKTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJzaWdhY3Rpb24oYWN0LT5zYV9oYW5kbGVyKSIsIHNhLT5rc2FfaGFuZGxlcik7CisgICAgICBQUkVfRklFTERfUkVBRCgic2lnYWN0aW9uKGFjdC0+c2FfbWFzaykiLCBzYS0+c2FfbWFzayk7CisgICB9CisgICBpZiAoQVJHMykKKyAgICAgIFBSRV9NRU1fV1JJVEUoInNpZ2FjdGlvbihvYWN0KSIsIEFSRzMsIHNpemVvZih2a2lfc2lnYWN0aW9uX2Zyb21LX3QpKTsKKworICAgLyogQmUgc2FmZS4gKi8KKyAgIGlmIChBUkcyICYmICFNTF8oc2FmZV90b19kZXJlZigodm9pZCopQVJHMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmtpX3NpZ2FjdGlvbl90b0tfdCkpKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FRkFVTFQpOworICAgfQorICAgaWYgKEFSRzMgJiYgIU1MXyhzYWZlX3RvX2RlcmVmKCh2b2lkKilBUkczLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmtpX3NpZ2FjdGlvbl9mcm9tS190KSkpKSB7CisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VGQVVMVCk7CisgICB9CisKKyAgIGlmICghRkFJTFVSRSkKKyAgICAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMoCisgICAgICAgICBWR18oZG9fc3lzX3NpZ2FjdGlvbikoQVJHMSwgKGNvbnN0IHZraV9zaWdhY3Rpb25fdG9LX3QqKUFSRzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmtpX3NpZ2FjdGlvbl9mcm9tS190KilBUkczKSk7Cit9CisKK1BPU1Qoc3lzX3NpZ2FjdGlvbikKK3sKKyAgIGlmIChBUkczKQorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHZraV9zaWdhY3Rpb25fZnJvbUtfdCkpOworfQorCitQUkUoc3lzX3NpZ3BlbmRpbmcpCit7CisgICAvKiBpbnQgc2lncGVuZGluZyhpbnQgZmxhZywgc2lnc2V0X3QgKnNldHApOyAqLworICAgUFJJTlQoInN5c19zaWdwZW5kaW5nICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzaWdwZW5kaW5nIiwgaW50LCBmbGFnLCBzaWdzZXRfdCAqLCBzZXRwKTsKKyAgIFBSRV9NRU1fV1JJVEUoInNpZ3BlbmRpbmcoc2V0cCkiLCBBUkcyLCBzaXplb2YodmtpX3NpZ3NldF90KSk7Cit9CisKK1BPU1Qoc3lzX3NpZ3BlbmRpbmcpCit7CisgICBQT1NUX01FTV9XUklURShBUkcyLCBzaXplb2YodmtpX3NpZ3NldF90KSk7Cit9CisKK1BSRShzeXNfZ2V0c2V0Y29udGV4dCkKK3sKKyAgIC8qIEtlcm5lbDogaW50IGdldHNldGNvbnRleHQoaW50IGZsYWcsIHZvaWQgKmFyZykgKi8KKyAgIFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgUFJJTlQoInN5c19nZXRzZXRjb250ZXh0ICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBzd2l0Y2ggKEFSRzEgLypmbGFnKi8pIHsKKyAgIGNhc2UgVktJX0dFVENPTlRFWFQ6CisgICAgICAvKiBMaWJjOiBpbnQgZ2V0Y29udGV4dCh1Y29udGV4dF90ICp1Y3ApOyAqLworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoImdldHNldGNvbnRleHQiLCAiZ2V0Y29udGV4dCIpLCBpbnQsIGZsYWcsCisgICAgICAgICAgICAgICAgICAgIHVjb250ZXh0X3QgKiwgdWNwKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoImdldHNldGNvbnRleHQodWNwKSIsIEFSRzIsIHNpemVvZih2a2lfdWNvbnRleHRfdCkpOworCisgICAgICBpZiAoIU1MXyhzYWZlX3RvX2RlcmVmKCh2b2lkKilBUkcyLCBzaXplb2YodmtpX3Vjb250ZXh0X3QpKSkpIHsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUZBVUxUKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIFZHXyhzYXZlX2NvbnRleHQpKHRpZCwgKHZraV91Y29udGV4dF90KilBUkcyLCBWZ19Db3JlU3lzQ2FsbCk7CisgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1NFVENPTlRFWFQ6CisgICAgICAvKiBMaWJjOiBpbnQgc2V0Y29udGV4dChjb25zdCB1Y29udGV4dF90ICp1Y3ApOyAqLworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoImdldHNldGNvbnRleHQiLCAic2V0Y29udGV4dCIpLCBpbnQsIGZsYWcsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVjb250ZXh0X3QgKiwgdWNwKTsKKworICAgICAgaWYgKCFBUkcyKSB7CisgICAgICAgICAvKiBTZXR0aW5nIE5VTEwgY29udGV4dCBjYXVzZXMgdGhyZWFkIGV4aXQuICovCisgICAgICAgICB0c3QtPmV4aXRyZWFzb24gPSBWZ1NyY19FeGl0VGhyZWFkOworICAgICAgICAgdHN0LT5vc19zdGF0ZS5leGl0Y29kZSA9IDA7CisgICAgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CisgICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAgIGlmICghTUxfKHNhZmVfdG9fZGVyZWYoKHZvaWQqKUFSRzIsIHNpemVvZih2a2lfdWNvbnRleHRfdCkpKSkgeworICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FRkFVTFQpOworICAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICBWR18ocmVzdG9yZV9jb250ZXh0KSh0aWQsICh2a2lfdWNvbnRleHRfdCopQVJHMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZnX0NvcmVTeXNDYWxsLCBGYWxzZS8qZXNwX2lzX3RocnB0ciovKTsKKyAgICAgIC8qIFRlbGwgdGhlIGRyaXZlciBub3QgdG8gdXBkYXRlIHRoZSBndWVzdCBzdGF0ZSB3aXRoIHRoZSAicmVzdWx0Ii4gKi8KKyAgICAgICpmbGFncyB8PSBTZk5vV3JpdGVSZXN1bHQ7CisgICAgICAvKiBDaGVjayB0byBzZWUgaWYgYW55IHNpZ25hbHMgYXJvc2UgYXMgYSByZXN1bHQgb2YgdGhpcy4gKi8KKyAgICAgICpmbGFncyB8PSBTZlBvbGxBZnRlcjsKKworICAgICAgLyogQ2hlY2sgaWYgdGhpcyBpcyBhIHBvc3NpYmxlIHJldHVybiBmcm9tIGEgc2lnbmFsIGhhbmRsZXIuICovCisgICAgICBWR18oc2lnZnJhbWVfcmV0dXJuKSh0aWQsICh2a2lfdWNvbnRleHRfdCopQVJHMik7CisKKyAgICAgIFNFVF9TVEFUVVNfU3VjY2VzcygwKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfR0VUVVNUQUNLOgorICAgICAgLyogTGliYzogaW50IGdldHVzdGFjayhzdGFja190ICoqc3BwKTsgKi8KKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgU0MyKCJnZXRzZXRjb250ZXh0IiwgImdldHVzdGFjayIpLCBpbnQsIGZsYWcsCisgICAgICAgICAgICAgICAgICAgIHN0YWNrX3QgKiosIHNwcCk7CisgICAgICBQUkVfTUVNX1dSSVRFKCJnZXRzZXRjb250ZXh0KHNwcCkiLCBBUkcyLCBzaXplb2YodmtpX3N0YWNrX3QqKSk7CisKKyAgICAgIGlmICghTUxfKHNhZmVfdG9fZGVyZWYoKHZvaWQqKUFSRzIsIHNpemVvZih2a2lfc3RhY2tfdCopKSkpIHsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUZBVUxUKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKworICAgICAgKih2a2lfc3RhY2tfdCoqKUFSRzIgPSB0c3QtPm9zX3N0YXRlLnVzdGFjazsKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIHNpemVvZih2a2lfc3RhY2tfdCopKTsKKyAgICAgIFNFVF9TVEFUVVNfU3VjY2VzcygwKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfU0VUVVNUQUNLOgorICAgICAgeworICAgICAgICAgLyogTGliYzogaW50IHNldHVzdGFjayhzdGFja190ICpzcCk7ICovCisgICAgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigiZ2V0c2V0Y29udGV4dCIsICJzZXR1c3RhY2siKSwgaW50LCBmbGFnLAorICAgICAgICAgICAgICAgICAgICAgICBzdGFja190ICosIHNwKTsKKworICAgICAgICAgLyogVGhlIGtlcm5lbCBkb2VzIG5vdCByZWFkIHRoZSBzdGFjayBkYXRhIGluc3RhbnRseSBidXQgaXQgY2FuIHJlYWQKKyAgICAgICAgICAgIHRoZW0gbGF0ZXIgc28gaXQgaXMgYmV0dGVyIHRvIG1ha2Ugc3VyZSB0aGUgZGF0YSBhcmUgZGVmaW5lZC4gKi8KKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiZ2V0c2V0Y29udGV4dF9zZXR1c3RhY2soc3ApIiwgQVJHMiwgc2l6ZW9mKHZraV9zdGFja190KSk7CisKKyAgICAgICAgIGlmICghTUxfKHNhZmVfdG9fZGVyZWYoKHZvaWQqKUFSRzIsIHNpemVvZih2a2lfc3RhY2tfdCkpKSkgeworICAgICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FRkFVTFQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorCisgICAgICAgICB2a2lfc3RhY2tfdCAqb2xkX3N0YWNrID0gdHN0LT5vc19zdGF0ZS51c3RhY2s7CisgICAgICAgICB0c3QtPm9zX3N0YXRlLnVzdGFjayA9ICh2a2lfc3RhY2tfdCopQVJHMjsKKworICAgICAgICAgLyogVGhlIHRocmVhZCBpcyBzZXR0aW5nIHRoZSB1c3RhY2sgcG9pbnRlci4gIEl0IGlzIGEgZ29vZCB0aW1lIHRvIGdldAorICAgICAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgaXRzIHN0YWNrLiAqLworICAgICAgICAgaWYgKHRzdC0+b3Nfc3RhdGUudXN0YWNrLT5zc19mbGFncyA9PSAwKSB7CisgICAgICAgICAgICAvKiBJZiB0aGUgc2FuaXR5IGNoZWNrIG9mIHNzX2ZsYWdzIHBhc3NlZCBzZXQgdGhlIHN0YWNrLiAqLworICAgICAgICAgICAgc2V0X3N0YWNrKHRpZCwgdHN0LT5vc19zdGF0ZS51c3RhY2spOworCisgICAgICAgICAgICBpZiAoKG9sZF9zdGFjayA9PSBOVUxMKSAmJiAodGlkID4gMSkpIHsKKyAgICAgICAgICAgICAgIC8qIE5ldyB0aHJlYWQgY3JlYXRpb24gaXMgbm93IGNvbXBsZXRlZC4gSW5mb3JtIHRoZSB0b29sLiAqLworICAgICAgICAgICAgICAgVkdfVFJBQ0socHJlX3RocmVhZF9maXJzdF9pbnNuLCB0aWQpOworICAgICAgICAgICAgfQorICAgICAgICAgfQorCisgICAgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIGNvbnRleHQgY2FsbCB3aXRoIGZsYWcgJWxkLiIsIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19mY2htb2RhdCkKK3sKKyAgIC8qIGludCBmY2htb2RhdChpbnQgZmQsIGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlLCBpbnQgZmxhZyk7ICovCisKKyAgIC8qIEludGVycHJldCB0aGUgZmlyc3QgYXJndW1lbnQgYXMgMzItYml0IHZhbHVlIGV2ZW4gb24gNjQtYml0IGFyY2hpdGVjdHVyZS4KKyAgICAgIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gTGludXgsIGZvciBleGFtcGxlLCB3aGVyZSBnbGliYyBzaWduLWV4dGVuZHMgaXQuICovCisgICBJbnQgZmQgPSAoSW50KSBBUkcxOworCisgICBQUklOVCgic3lzX2ZjaG1vZGF0ICggJWQsICUjbHgoJXMpLCAlbGQsICVsZCApIiwKKyAgICAgICAgIGZkLCBBUkcyLCAoSENoYXIgKikgQVJHMiwgU0FSRzMsIFNBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQobG9uZywgImZjaG1vZGF0IiwKKyAgICAgICAgICAgICAgICAgaW50LCBmZCwgY29uc3QgY2hhciAqLCBwYXRoLCB2a2lfbW9kZV90LCBtb2RlLCBpbnQsIGZsYWcpOworCisgICBpZiAoQVJHMikKKyAgICAgIFBSRV9NRU1fUkFTQ0lJWigiZmNobW9kYXQocGF0aCkiLCBBUkcyKTsKKworICAgLyogQmUgc3RyaWN0IGJ1dCBpZ25vcmUgZmQgZm9yIGFic29sdXRlIHBhdGguICovCisgICBpZiAoZmQgIT0gVktJX0FUX0ZEQ1dECisgICAgICAgJiYgTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkICopIEFSRzIsIDEpCisgICAgICAgJiYgKChIQ2hhciAqKSBBUkcyKVswXSAhPSAnLycKKyAgICAgICAmJiAhTUxfKGZkX2FsbG93ZWQpKGZkLCAiZmNobW9kYXQiLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorCitQUkUoc3lzX21rZGlyYXQpCit7CisgICAvKiBpbnQgbWtkaXJhdChpbnQgZmQsIGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlKTsgKi8KKworICAgLyogSW50ZXJwcmV0IHRoZSBmaXJzdCBhcmd1bWVudCBhcyAzMi1iaXQgdmFsdWUgZXZlbiBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlLgorICAgICAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBMaW51eCwgZm9yIGV4YW1wbGUsIHdoZXJlIGdsaWJjIHNpZ24tZXh0ZW5kcyBpdC4gKi8KKyAgIEludCBmZCA9IChJbnQpIEFSRzE7CisKKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgUFJJTlQoInN5c19ta2RpcmF0ICggJWQsICUjbHgoJXMpLCAlbGQgKSIsIGZkLCBBUkcyLCAoSENoYXIgKikgQVJHMiwgU0FSRzMpOworICAgUFJFX1JFR19SRUFEMyhsb25nLCAibWtkaXJhdCIsIGludCwgZmQsIGNvbnN0IGNoYXIgKiwgcGF0aCwKKyAgICAgICAgICAgICAgICAgdmtpX21vZGVfdCwgbW9kZSk7CisgICBQUkVfTUVNX1JBU0NJSVooIm1rZGlyYXQocGF0aCkiLCBBUkcyKTsKKworICAgLyogQmUgc3RyaWN0IGJ1dCBpZ25vcmUgZmQgZm9yIGFic29sdXRlIHBhdGguICovCisgICBpZiAoZmQgIT0gVktJX0FUX0ZEQ1dECisgICAgICAgJiYgTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkICopIEFSRzIsIDEpCisgICAgICAgJiYgKChIQ2hhciAqKSBBUkcyKVswXSAhPSAnLycKKyAgICAgICAmJiAhTUxfKGZkX2FsbG93ZWQpKGZkLCAibWtkaXJhdCIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK3N0YXRpYyB2b2lkIGRvX3N0YXR2ZnNfcG9zdChzdHJ1Y3QgdmtpX3N0YXR2ZnMgKnN0YXRzLCBUaHJlYWRJZCB0aWQpCit7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHN0YXRzLT5mX2JzaXplKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfZnJzaXplKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfYmxvY2tzKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfYmZyZWUpOworICAgUE9TVF9GSUVMRF9XUklURShzdGF0cy0+Zl9iYXZhaWwpOworICAgUE9TVF9GSUVMRF9XUklURShzdGF0cy0+Zl9maWxlcyk7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHN0YXRzLT5mX2ZmcmVlKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfZmF2YWlsKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfZnNpZCk7CisgICBQT1NUX01FTV9XUklURSgoQWRkcikgc3RhdHMtPmZfYmFzZXR5cGUsIFZHXyhzdHJsZW4pKHN0YXRzLT5mX2Jhc2V0eXBlKSArIDEpOworICAgUE9TVF9GSUVMRF9XUklURShzdGF0cy0+Zl9mbGFnKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfbmFtZW1heCk7CisgICBQT1NUX01FTV9XUklURSgoQWRkcikgc3RhdHMtPmZfZnN0ciwgVkdfKHN0cmxlbikoc3RhdHMtPmZfZnN0cikgKyAxKTsKK30KKworUFJFKHN5c19zdGF0dmZzKQoreworICAgLyogaW50IHN0YXR2ZnMoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0YXR2ZnMgKmJ1Zik7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfc3RhdHZmcyAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoSENoYXIgKikgQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzdGF0dmZzIiwgY29uc3QgY2hhciAqLCBwYXRoLAorICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3N0YXR2ZnMgKiwgYnVmKTsKKyAgIFBSRV9NRU1fUkFTQ0lJWigic3RhdHZmcyhwYXRoKSIsIEFSRzEpOworICAgUFJFX01FTV9XUklURSgic3RhdHZmcyhidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdHZmcykpOworfQorCitQT1NUKHN5c19zdGF0dmZzKQoreworICAgZG9fc3RhdHZmc19wb3N0KChzdHJ1Y3QgdmtpX3N0YXR2ZnMgKikgQVJHMiwgdGlkKTsKK30KKworUFJFKHN5c19mc3RhdHZmcykKK3sKKyAgIC8qIGludCBmc3RhdHZmcyhpbnQgZmQsIHN0cnVjdCBzdGF0dmZzICpidWYpOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX2ZzdGF0dmZzICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJmc3RhdHZmcyIsIGludCwgZmQsIHN0cnVjdCB2a2lfc3RhdHZmcyAqLCBidWYpOworICAgUFJFX01FTV9XUklURSgiZnN0YXR2ZnMoYnVmKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXR2ZnMpKTsKKworICAgLyogQmUgc3RyaWN0LiAqLworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgImZzdGF0dmZzIiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUE9TVChzeXNfZnN0YXR2ZnMpCit7CisgICBkb19zdGF0dmZzX3Bvc3QoKHN0cnVjdCB2a2lfc3RhdHZmcyAqKSBBUkcyLCB0aWQpOworfQorCitQUkUoc3lzX25mc3N5cykKK3sKKyAgIC8qIGludCBuZnNzeXMoZW51bSBuZnNzeXNfb3Agb3Bjb2RlLCB2b2lkICphcmcpOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX25mc3N5cyAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworCisgICBzd2l0Y2ggKEFSRzEgLypvcGNvZGUqLykgeworICAgY2FzZSBWS0lfTkZTX1JFVkFVVEg6CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigibmZzc3lzIiwgIm5mc19yZXZhdXRoIiksIGludCwgb3Bjb2RlLAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX25mc19yZXZhdXRoX2FyZ3MgKiwgYXJncyk7CisgICAgICBQUkVfTUVNX1JFQUQoIm5mc3N5cyhhcmcpIiwgQVJHMiwKKyAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHZraV9uZnNfcmV2YXV0aF9hcmdzKSk7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIG5mc3N5cyBjYWxsIHdpdGggb3Bjb2RlICVsZC4iLCBTQVJHMSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BPU1Qoc3lzX25mc3N5cykKK3sKKyAgIHN3aXRjaCAoQVJHMSAvKm9wY29kZSovKSB7CisgICBjYXNlIFZLSV9ORlNfUkVWQVVUSDoKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX3dhaXRpZCkKK3sKKyAgIC8qIGludCB3YWl0aWQoaWR0eXBlX3QgaWR0eXBlLCBpZF90IGlkLCBzaWdpbmZvX3QgKmluZm9wLCBpbnQgb3B0aW9ucyk7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfd2FpdGlkKCAlbGQsICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMsIFNBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQobG9uZywgIndhaXRpZCIsIHZraV9pZHR5cGVfdCwgaWR0eXBlLCB2a2lfaWRfdCwgaWQsCisgICAgICAgICAgICAgICAgIHNpZ2luZm9fdCAqLCBpbmZvcCwgaW50LCBvcHRpb25zKTsKKyAgIFBSRV9NRU1fV1JJVEUoIndhaXRpZChpbmZvcCkiLCBBUkczLCBzaXplb2YodmtpX3NpZ2luZm9fdCkpOworfQorCitQT1NUKHN5c193YWl0aWQpCit7CisgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX3NpZ2luZm9fdCkpOworfQorCisjaWYgZGVmaW5lZChTT0xBUklTX1VUSU1FU1lTX1NZU0NBTEwpCitQUkUoc3lzX3V0aW1lc3lzKQoreworICAgLyogS2VybmVsOiBpbnQgdXRpbWVzeXMoaW50IGNvZGUsIHVpbnRwdHJfdCBhcmcxLCB1aW50cHRyX3QgYXJnMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBhcmczLCB1aW50cHRyX3QgYXJnNCk7CisgICAgKi8KKworICAgc3dpdGNoIChBUkcxIC8qY29kZSovKSB7CisgICBjYXNlIDA6CisgICAgICAvKiBMaWJjOiBpbnQgZnV0aW1lbnMoaW50IGZkLCBjb25zdCB0aW1lc3BlY190IHRpbWVzWzJdKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfdXRpbWVzeXMgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgInV0aW1lc3lzIiwgaW50LCBjb2RlLCBpbnQsIGZkLAorICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfdGltZXNwZWNfdCAqLCB0aW1lcyk7CisgICAgICBpZiAoQVJHMykKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgidXRpbWVzeXModGltZXMpIiwgQVJHMywgMiAqIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworCisgICAgICAvKiBCZSBzdHJpY3QuICovCisgICAgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcyLCAidXRpbWVzeXMiLCB0aWQsIEZhbHNlKSkKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgICAgYnJlYWs7CisgICBjYXNlIDE6CisgICAgICB7CisgICAgICAgICAvKiBMaWJjOiBpbnQgdXRpbWVuc2F0KGludCBmZCwgY29uc3QgY2hhciAqcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXNwZWNfdCB0aW1lc1syXSwgaW50IGZsYWcpOworICAgICAgICAgICovCisKKyAgICAgICAgIC8qIEludGVycHJldCB0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIDMyLWJpdCB2YWx1ZSBldmVuIG9uIDY0LWJpdAorICAgICAgICAgICAgYXJjaGl0ZWN0dXJlLiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIExpbnV4LCBmb3IgZXhhbXBsZSwgd2hlcmUgZ2xpYmMKKyAgICAgICAgICAgIHNpZ24tZXh0ZW5kcyBpdC4gKi8KKyAgICAgICAgIEludCBmZCA9IChJbnQpIEFSRzI7CisKKyAgICAgICAgIFBSSU5UKCJzeXNfdXRpbWVzeXMgKCAlbGQsICVkLCAlI2x4KCVzKSwgJSNseCwgJWxkICkiLAorICAgICAgICAgICAgICAgU0FSRzEsIGZkLCBBUkczLCAoSENoYXIgKikgQVJHMywgQVJHNCwgU0FSRzUpOworICAgICAgICAgUFJFX1JFR19SRUFENShsb25nLCAidXRpbWVzeXMiLCBpbnQsIGNvZGUsIGludCwgZmQsIGNvbnN0IGNoYXIgKiwgcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmtpX3RpbWVzcGVjX3QgKiwgdGltZXMsIGludCwgZmxhZyk7CisgICAgICAgICBpZiAoQVJHMykKKyAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigidXRpbWVzeXMocGF0aCkiLCBBUkczKTsKKyAgICAgICAgIGlmIChBUkc0KQorICAgICAgICAgICAgUFJFX01FTV9SRUFEKCJ1dGltZXN5cyh0aW1lcykiLCBBUkc0LCAyICogc2l6ZW9mKHZraV90aW1lc3BlY190KSk7CisKKyAgICAgICAgIC8qIEJlIHN0cmljdCBidXQgaWdub3JlIGZkIGZvciBhYnNvbHV0ZSBwYXRoLiAqLworICAgICAgICAgaWYgKGZkICE9IFZLSV9BVF9GRENXRAorICAgICAgICAgICAgICYmIE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCAqKSBBUkczLCAxKQorICAgICAgICAgICAgICYmICgoSENoYXIgKikgQVJHMylbMF0gIT0gJy8nCisgICAgICAgICAgICAgJiYgIU1MXyhmZF9hbGxvd2VkKShmZCwgInV0aW1lc3lzIiwgdGlkLCBGYWxzZSkpCisgICAgICAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgZGVmYXVsdDoKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgdXRpbWVzeXMgY2FsbCB3aXRoIGNvZGUgJWxkLiIsIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KK30KKyNlbmRpZiAvKiBTT0xBUklTX1VUSU1FU1lTX1NZU0NBTEwgKi8KKworI2lmIGRlZmluZWQoU09MQVJJU19VVElNRU5TQVRfU1lTQ0FMTCkKK1BSRShzeXNfdXRpbWVuc2F0KQoreworICAgLyogaW50IHV0aW1lbnNhdChpbnQgZmQsIGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHRpbWVzcGVjX3QgdGltZXNbMl0sCisgICAgICAgICAgICAgICAgICAgIGludCBmbGFnKTsKKyAgICAqLworCisgICAvKiBJbnRlcnByZXQgdGhlIGZpcnN0IGFyZ3VtZW50IGFzIDMyLWJpdCB2YWx1ZSBldmVuIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmUuCisgICAgICBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIExpbnV4LCBmb3IgZXhhbXBsZSwgd2hlcmUgZ2xpYmMgc2lnbi1leHRlbmRzIGl0LiAqLworICAgSW50IGZkID0gKEludCkgQVJHMTsKKworICAgUFJJTlQoInN5c191dGltZW5zYXQgKCAlZCwgJSNseCglcyksICUjbHgsICVsZCApIiwKKyAgICAgICAgIGZkLCBBUkcyLCAoSENoYXIgKikgQVJHMiwgQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAidXRpbWVuc2F0IiwgaW50LCBmZCwgY29uc3QgY2hhciAqLCBwYXRoLAorICAgICAgICAgICAgICAgICBjb25zdCB2a2lfdGltZXNwZWNfdCAqLCB0aW1lcywgaW50LCBmbGFnKTsKKyAgIGlmIChBUkcyKQorICAgICAgUFJFX01FTV9SQVNDSUlaKCJ1dGltZW5zYXQocGF0aCkiLCBBUkcyKTsKKyAgIGlmIChBUkczKQorICAgICAgUFJFX01FTV9SRUFEKCJ1dGltZW5zYXQodGltZXMpIiwgQVJHMywgMiAqIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworCisgICAvKiBCZSBzdHJpY3QgYnV0IGlnbm9yZSBmZCBmb3IgYWJzb2x1dGUgcGF0aC4gKi8KKyAgIGlmIChmZCAhPSBWS0lfQVRfRkRDV0QKKyAgICAgICAmJiBNTF8oc2FmZV90b19kZXJlZikoKHZvaWQgKikgQVJHMiwgMSkKKyAgICAgICAmJiAoKEhDaGFyICopIEFSRzIpWzBdICE9ICcvJworICAgICAgICYmICFNTF8oZmRfYWxsb3dlZCkoZmQsICJ1dGltZW5zYXQiLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorI2VuZGlmIC8qIFNPTEFSSVNfVVRJTUVOU0FUX1NZU0NBTEwgKi8KKworUFJFKHN5c19zaWdyZXNlbmQpCit7CisgICAvKiBpbnQgc2lncmVzZW5kKGludCBzaWduYWwsIHNpZ2luZm9fdCAqc2lnaW5mbywgc2lnc2V0X3QgKm1hc2spOyAqLworICAgLyogU2VuZHMgYSBzaWduYWwgdG8gdGhlIGNhbGxpbmcgdGhyZWFkLCB0aGUgbWFzayBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgbmV3CisgICAgICBzaWduYWwgbWFzay4gKi8KKworICAgLyogU3RhdGljIChjb25zdCkgbWFzayBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZSBvZiB0aGlzIGZ1bmN0aW9uLiAqLworICAgc3RhdGljIHZraV9zaWdzZXRfdCBibG9ja19hbGw7CisKKyAgIFBSSU5UKCJzeXNfc2lncmVzZW5kKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNpZ3Jlc2VuZCIsIGludCwgc2lnbmFsLCB2a2lfc2lnaW5mb190ICosIHNpZ2luZm8sCisgICAgICAgICAgICAgICAgIHZraV9zaWdzZXRfdCAqLCBtYXNrKTsKKworICAgaWYgKEFSRzIpCisgICAgICBQUkVfTUVNX1JFQUQoInNpZ3Jlc2VuZChzaWdpbmZvKSIsIEFSRzIsIHNpemVvZih2a2lfc2lnaW5mb190KSk7CisgICBQUkVfTUVNX1dSSVRFKCJzaWdyZXNlbmQobWFzaykiLCBBUkczLCBzaXplb2YodmtpX3NpZ3NldF90KSk7CisKKyAgIC8qIENoZWNrIHRoZSBzaWduYWwgYW5kIG1hc2suICovCisgICBpZiAoIU1MXyhjbGllbnRfc2lnbmFsX09LKShBUkcxKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgfQorICAgaWYgKCFNTF8oc2FmZV90b19kZXJlZikoKHZvaWQqKUFSRzMsIHNpemVvZih2a2lfc2lnc2V0X3QpKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FRkFVTFQpOworICAgfQorICAgCisgICAvKiBFeGl0IGVhcmx5IGlmIHRoZXJlIGFyZSBwcm9ibGVtcy4gKi8KKyAgIGlmIChGQUlMVVJFKQorICAgICAgcmV0dXJuOworCisgICAvKiBTYXZlIHRoZSByZXF1ZXN0ZWQgbWFzayB0byB1bnVzZWQgQVJHNC4gKi8KKyAgIEFSRzQgPSBBUkczOworCisgICAvKiBGYWtlIHRoZSByZXF1ZXN0ZWQgc2lnbWFzayB3aXRoIGEgYmxvY2stYWxsIG1hc2suICBJZiB0aGUgc3lzY2FsbAorICAgICAgc3VjZWVkcyB0aGVuIHdlIHdpbGwgYmxvY2sgImFsbCIgc2lnbmFscyBmb3IgYSBmZXcgaW5zdHJ1Y3Rpb25zIChpbgorICAgICAgc3lzY2FsbC14ODYtc29sYXJpcy5TKSBidXQgdGhlIGNvcnJlY3QgbWFzayB3aWxsIGJlIGFsbW9zdCBpbnN0YW50bHkgc2V0CisgICAgICBhZ2FpbiBieSBhIGNhbGwgdG8gc2lncHJvY21hc2sgKGFsc28gaW4gc3lzY2FsbC14ODYtc29sYXJpcy5TKS4gIElmIHRoZQorICAgICAgc3lzY2FsbCBmYWlscyB0aGVuIHRoZSBtYXNrIGlzIG5vdCBjaGFuZ2VkLCBzbyBldmVyeXRoaW5nIGlzIG9rIHRvby4gKi8KKyAgIFZHXyhzaWdmaWxsc2V0KSgmYmxvY2tfYWxsKTsKKyAgIEFSRzMgPSAoVVdvcmQpJmJsb2NrX2FsbDsKKworICAgLyogQ2hlY2sgdG8gc2VlIGlmIHRoaXMgZ2F2ZSB1cyBhIHBlbmRpbmcgc2lnbmFsLiAqLworICAgKmZsYWdzIHw9IFNmUG9sbEFmdGVyOworCisgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgInNpZ3Jlc2VuZDogcmVzZW5kaW5nIHNpZ25hbCAlbGRcbiIsIEFSRzEpOworCisgICAvKiBIYW5kbGUgU0lHS0lMTCBzcGVjaWFsbHkuICovCisgICBpZiAoQVJHMSA9PSBWS0lfU0lHS0lMTCAmJiBNTF8oZG9fc2lna2lsbCkodGlkLCAtMSkpIHsKKyAgICAgIFNFVF9TVEFUVVNfU3VjY2VzcygwKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgLyogQXNrIHRvIGhhbmRsZSB0aGlzIHN5c2NhbGwgdmlhIHRoZSBzbG93IHJvdXRlLCBzaW5jZSB0aGF0J3MgdGhlIG9ubHkgb25lCisgICAgICB0aGF0IHNldHMgdHN0LT5zdGF0dXMgdG8gVmdUc19XYWl0U3lzLiAgSWYgdGhlIHJlc3VsdCBvZiBkb2luZyB0aGUKKyAgICAgIHN5c2NhbGwgaXMgYW4gaW1tZWRpYXRlIHJ1biBvZiBhc3luY19zaWduYWxoYW5kbGVyKCkgaW4gbV9zaWduYWxzLmMsCisgICAgICB0aGVuIHdlIG5lZWQgdGhlIHRocmVhZCB0byBiZSBwcm9wZXJseSB0aWRpZWQgYXdheS4gKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworfQorCitQT1NUKHN5c19zaWdyZXNlbmQpCit7CisgICAvKiBUaGUgc3lzY2FsbCBzdWNjZWVkZWQsIHNldCB0aGUgcmVxdWVzdGVkIG1hc2suICovCisgICBWR18oZG9fc3lzX3NpZ3Byb2NtYXNrKSh0aWQsIFZLSV9TSUdfU0VUTUFTSywgKHZraV9zaWdzZXRfdCopQVJHNCwgTlVMTCk7CisKKyAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQorICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAic2lncmVzZW5kOiByZXNlbnQgc2lnbmFsICVsdVxuIiwgQVJHMSk7Cit9CisKK3N0YXRpYyB2b2lkIG1lbV9wcmlvY250bHN5c19wYXJtX29rKFRocmVhZElkIHRpZCwgQm9vbCBwcmUsIEJvb2wgcmVhZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2a2lfcGNfdmFwYXJtX3QgKnBhcm0pCit7CisgICBpZiAocmVhZGUpCisgICAgICByZXR1cm47CisKKyAgIGlmIChwcmUpCisgICAgICBQUkVfRklFTERfV1JJVEUoInByaW9jbnRsc3lzKHBhcm0pIiwgcGFybS0+cGNfcGFybSk7CisgICBlbHNlCisgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHBhcm0tPnBjX3Bhcm0pOworfQorCitzdGF0aWMgdm9pZCBtZW1fcHJpb2NudGxzeXNfcGFybShUaHJlYWRJZCB0aWQsIEJvb2wgcHJlLCBCb29sIHJlYWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSENoYXIgKmNsbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZraV9wY192YXBhcm1fdCAqcGFybSkKK3sKKyAgIC8qIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBoYW5kbGUgdGhlIFBDX1NFVFhQQVJNUyBhbmQgUENfR0VUWFBBUk1TCisgICAgICBwYXJhbWV0ZXJzLiAgSW4gdGhlIGNhc2Ugb2YgUENfU0VUWFBBUk1TLCB0aGUgY29kZSBiZWxvdyBtZXJlbHkgY2hlY2tzCisgICAgICBpZiBhbGwgcGFyYW1ldGVycyBhcmUgc2NhbGFyLCBQUkVfTUVNX1JFQUQoKSBmb3IgdGhlc2UgcGFyYW1ldGVycyBpcworICAgICAgYWxyZWFkeSBkb25lIGJ5IHRoZSBQQ19TRVRYUEFSTVMgaGFuZGxlciBpbiBQUkUoc3lzX3ByaW9jbnRsc3lzKS4KKworICAgICAgQSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgY2hlY2tpbmcgdGhhdCBjbG5hbWUgYW5kCisgICAgICAmcGFybS0+a2V5IGNhbiBiZSBkZXJlZmVyZW5jZWQuICovCisKKyAgIGlmIChWR19TVFJFUShjbG5hbWUsICJSVCIpKSB7CisgICAgICBzd2l0Y2ggKHBhcm0tPnBjX2tleSkgeworICAgICAgY2FzZSBWS0lfUlRfS1lfUFJJOgorICAgICAgY2FzZSBWS0lfUlRfS1lfVFFTRUNTOgorICAgICAgY2FzZSBWS0lfUlRfS1lfVFFOU0VDUzoKKyAgICAgIGNhc2UgVktJX1JUX0tZX1RRU0lHOgorICAgICAgICAgLyogU2NhbGFyIHZhbHVlcyB0aGF0IGFyZSBzdG9yZWQgZGlyZWN0bHkgaW4gcGNfcGFybS4gKi8KKyAgICAgICAgIG1lbV9wcmlvY250bHN5c19wYXJtX29rKHRpZCwgcHJlLCByZWFkZSwgcGFybSk7CisgICAgICAgICByZXR1cm47CisgICAgICB9CisgICB9CisgICBlbHNlIGlmIChWR19TVFJFUShjbG5hbWUsICJUUyIpKSB7CisgICAgICBzd2l0Y2ggKHBhcm0tPnBjX2tleSkgeworICAgICAgY2FzZSBWS0lfVFNfS1lfVVBSSUxJTToKKyAgICAgIGNhc2UgVktJX1RTX0tZX1VQUkk6CisgICAgICAgICAvKiBTY2FsYXIgdmFsdWVzIHRoYXQgYXJlIHN0b3JlZCBkaXJlY3RseSBpbiBwY19wYXJtLiAqLworICAgICAgICAgbWVtX3ByaW9jbnRsc3lzX3Bhcm1fb2sodGlkLCBwcmUsIHJlYWRlLCBwYXJtKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgIH0KKyAgIGVsc2UgaWYgKFZHX1NUUkVRKGNsbmFtZSwgIklBIikpIHsKKyAgICAgIHN3aXRjaCAocGFybS0+cGNfa2V5KSB7CisgICAgICBjYXNlIFZLSV9JQV9LWV9VUFJJTElNOgorICAgICAgY2FzZSBWS0lfSUFfS1lfVVBSSToKKyAgICAgIGNhc2UgVktJX0lBX0tZX01PREU6CisgICAgICAgICAvKiBTY2FsYXIgdmFsdWVzIHRoYXQgYXJlIHN0b3JlZCBkaXJlY3RseSBpbiBwY19wYXJtLiAqLworICAgICAgICAgbWVtX3ByaW9jbnRsc3lzX3Bhcm1fb2sodGlkLCBwcmUsIHJlYWRlLCBwYXJtKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgIH0KKyAgIGVsc2UgaWYgKFZHX1NUUkVRKGNsbmFtZSwgIkZTUyIpKSB7CisgICAgICBzd2l0Y2ggKHBhcm0tPnBjX2tleSkgeworICAgICAgY2FzZSBWS0lfRlNTX0tZX1VQUklMSU06CisgICAgICBjYXNlIFZLSV9GU1NfS1lfVVBSSToKKyAgICAgICAgIC8qIFNjYWxhciB2YWx1ZXMgdGhhdCBhcmUgc3RvcmVkIGRpcmVjdGx5IGluIHBjX3Bhcm0uICovCisgICAgICAgICBtZW1fcHJpb2NudGxzeXNfcGFybV9vayh0aWQsIHByZSwgcmVhZGUsIHBhcm0pOworICAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgfQorICAgZWxzZSBpZiAoVkdfU1RSRVEoY2xuYW1lLCAiRlgiKSkgeworICAgICAgc3dpdGNoIChwYXJtLT5wY19rZXkpIHsKKyAgICAgIGNhc2UgVktJX0ZYX0tZX1VQUklMSU06CisgICAgICBjYXNlIFZLSV9GWF9LWV9VUFJJOgorICAgICAgY2FzZSBWS0lfRlhfS1lfVFFTRUNTOgorICAgICAgY2FzZSBWS0lfRlhfS1lfVFFOU0VDUzoKKyAgICAgICAgIC8qIFNjYWxhciB2YWx1ZXMgdGhhdCBhcmUgc3RvcmVkIGRpcmVjdGx5IGluIHBjX3Bhcm0uICovCisgICAgICAgICBtZW1fcHJpb2NudGxzeXNfcGFybV9vayh0aWQsIHByZSwgcmVhZGUsIHBhcm0pOworICAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgfQorICAgZWxzZSB7CisgICAgICAvKiBVbmtub3duIGNsYXNzLiAqLworICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBwcmlvY250bHN5cyBjYWxsIHdoZXJlIGNsbmFtZT0lcy4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNsbmFtZSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgfQorCisgICAvKiBUaGUgY2xhc3MgaXMga25vd24gYnV0IHBjX2tleSBpcyB1bmtub3duLiAqLworICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBwcmlvY250bHN5cyBjYWxsIHdoZXJlIGNsbmFtZT0lcyAiCisgICAgICAgICAgICAgICAgICAgICAgImFuZCBwY19rZXk9JWQuIiwgY2xuYW1lLCBwYXJtLT5wY19rZXkpOworICAgLypOT1RSRUFDSEVEKi8KK30KKworUFJFKHN5c19wcmlvY250bHN5cykKK3sKKyAgIC8qIGxvbmcgcHJpb2NudGxzeXMoaW50IHBjX3ZlcnNpb24sIHByb2NzZXRfdCAqcHNwLCBpbnQgY21kLCBjYWRkcl90IGFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgY2FkZHJfdCBhcmcyKTsgKi8KKworICAgaWYgKEFSRzEgIT0gMSkgeworICAgICAgLyogT25seSB0aGUgZmlyc3QgdmVyc2lvbiBvZiBwcmlvY250bHN5cyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGNvZGUgYmVsb3cuCisgICAgICAgKi8KKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgcHJpb2NudGxzeXMgd2hlcmUgcGNfdmVyc2lvbj0lbHUuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICB9CisKKyAgIFBSSU5UKCJzeXNfcHJpb2NudGxzeXMgKCAlbGQsICUjbHgsICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIFNBUkczLAorICAgICAgICAgQVJHNCwgQVJHNSk7CisgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJwcmlvY250bHN5cyIsIGludCwgcGNfdmVyc2lvbiwgcHJvY3NldF90ICosIHBzcCwKKyAgICAgICAgICAgICAgICAgaW50LCBjbWQsIHZvaWQgKiwgYXJnLCB2b2lkICosIGFyZzIpOworCisgICBzd2l0Y2ggKEFSRzMgLypjbWQqLykgeworICAgY2FzZSBWS0lfUENfR0VUQ0lEOgorICAgICAgaWYgKEFSRzQpIHsKKyAgICAgICAgIHZraV9wY2luZm9fdCAqaW5mbyA9ICh2a2lfcGNpbmZvX3QqKUFSRzQ7CisgICAgICAgICBQUkVfTUVNX1JBU0NJSVooInByaW9jbnRsc3lzKGNsbmFtZSkiLCAoQWRkcilpbmZvLT5wY19jbG5hbWUpOworICAgICAgICAgLyogVGhlIG5leHQgbGluZSBzYXlzIHRoYXQgdGhlIGNvbXBsZXRlIHBjaW5mb190IHN0cnVjdHVyZSBjYW4gYmUKKyAgICAgICAgICAgIHdyaXR0ZW4sIGJ1dCB0aGlzIGFjdHVhbGx5IGlzbid0IHRydWUgZm9yIHBjX2NsbmFtZSB3aGljaCBpcworICAgICAgICAgICAgYWx3YXlzIG9ubHkgcmVhZC4gKi8KKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInByaW9jbnRsc3lzKHBjaW5mbykiLCBBUkc0LCBzaXplb2YodmtpX3BjaW5mb190KSk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BDX0dFVENMSU5GTzoKKyAgICAgIGlmIChBUkc0KSB7CisgICAgICAgICB2a2lfcGNpbmZvX3QgKmluZm8gPSAodmtpX3BjaW5mb190KilBUkc0OworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoInByaW9jbnRsc3lzKGNpZCkiLCBpbmZvLT5wY19jaWQpOworICAgICAgICAgLyogVGhlIG5leHQgbGluZSBzYXlzIHRoYXQgdGhlIGNvbXBsZXRlIHBjaW5mb190IHN0cnVjdHVyZSBjYW4gYmUKKyAgICAgICAgICAgIHdyaXR0ZW4sIGJ1dCB0aGlzIGFjdHVhbGx5IGlzbid0IHRydWUgZm9yIHBjX2NpZCB3aGljaCBpcworICAgICAgICAgICAgYWx3YXlzIG9ubHkgcmVhZC4gKi8KKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInByaW9jbnRsc3lzKHBjaW5mbykiLCBBUkc0LCBzaXplb2YodmtpX3BjaW5mb190KSk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BDX1NFVFBBUk1TOgorICAgICAgUFJFX01FTV9SRUFEKCJwcmlvY250bHN5cyhwc3ApIiwgQVJHMiwgc2l6ZW9mKHZraV9wcm9jc2V0X3QpKTsKKyAgICAgIC8qIFRoZSBuZXh0IGxpbmUgc2F5cyB0aGF0IHRoZSBjb21wbGV0ZSBwY3Bhcm1zX3Qgc3RydWN0dXJlIGlzIHJlYWQKKyAgICAgICAgIHdoaWNoIGlzIG5ldmVyIGFjdHVhbGx5IHRydWUgKHdlIGFyZSB0b28gcGVzc2ltaXN0aWMgaGVyZSkuCisgICAgICAgICBVbmZvcnR1bmF0ZWx5IHdlIGNhbid0IGRvIGJldHRlciBiZWNhdXNlIHdlIGRvbid0IGtub3cgd2hhdAorICAgICAgICAgcHJvY2VzcyBjbGFzcyBpcyBpbnZvbHZlZC4gKi8KKyAgICAgIFBSRV9NRU1fUkVBRCgicHJpb2NudGxzeXMocGFybXMpIiwgQVJHNCwgc2l6ZW9mKHZraV9wY3Bhcm1zX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfR0VUUEFSTVM6CisgICAgICBQUkVfTUVNX1JFQUQoInByaW9jbnRsc3lzKHBzcCkiLCBBUkcyLCBzaXplb2YodmtpX3Byb2NzZXRfdCkpOworICAgICAgUFJFX01FTV9XUklURSgicHJpb2NudGxzeXMocGFybXMpIiwgQVJHNCwgc2l6ZW9mKHZraV9wY3Bhcm1zX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfR0VUUFJJUkFOR0U6CisgICAgICB7CisgICAgICAgICB2a2lfcGNwcmlfdCAqcGNwcmkgPSAodmtpX3BjcHJpX3QqKUFSRzQ7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgicHJpb2NudGxzeXMoY2lkKSIsIHBjcHJpLT5wY19jaWQpOworICAgICAgfQorICAgICAgUFJFX01FTV9XUklURSgicHJpb2NudGxzeXMocHJpKSIsIEFSRzQsIHNpemVvZih2a2lfcGNwcmlfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QQ19ET05JQ0U6CisgICAgICBQUkVfTUVNX1JFQUQoInByaW9jbnRsc3lzKHBzcCkiLCBBUkcyLCBzaXplb2YodmtpX3Byb2NzZXRfdCkpOworICAgICAgeworICAgICAgICAgdmtpX3BjbmljZV90ICpuaWNlZSA9ICh2a2lfcGNuaWNlX3QqKUFSRzQ7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgicHJpb2NudGxzeXMob3ApIiwgbmljZWUtPnBjX29wKTsKKyAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoJm5pY2VlLT5wY19vcCwgc2l6ZW9mKG5pY2VlLT5wY19vcCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKG5pY2VlLT5wY19vcCkgeworICAgICAgICAgICAgY2FzZSBWS0lfUENfR0VUTklDRToKKyAgICAgICAgICAgICAgIFBSRV9GSUVMRF9XUklURSgicHJpb2NudGxzeXModmFsKSIsIG5pY2VlLT5wY192YWwpOworICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZLSV9QQ19TRVROSUNFOgorICAgICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoInByaW9jbnRsc3lzKHZhbCkiLCBuaWNlZS0+cGNfdmFsKTsKKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgcHJpb2NudGxzeXMgY2FsbCB3aGVyZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNtZD1QQ19ET05JQ0UgYW5kIHBjX29wPSVkIiwgbmljZWUtPnBjX29wKTsKKyAgICAgICAgICAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfU0VUWFBBUk1TOgorICAgICAgUFJFX01FTV9SRUFEKCJwcmlvY250bHN5cyhwc3ApIiwgQVJHMiwgc2l6ZW9mKHZraV9wcm9jc2V0X3QpKTsKKyAgICAgIFBSRV9NRU1fUkFTQ0lJWigicHJpb2NudGxzeXMoY2xuYW1lKSIsIEFSRzQpOworICAgICAgaWYgKEFSRzUpIHsKKyAgICAgICAgIHZraV9wY192YXBhcm1zX3QgKnBhcm1zID0gKHZraV9wY192YXBhcm1zX3QqKUFSRzU7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgicHJpb2NudGxzeXModmFwYXJtc2NudCkiLCBwYXJtcy0+cGNfdmFwYXJtc2NudCk7CisgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKCZwYXJtcy0+cGNfdmFwYXJtc2NudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHBhcm1zLT5wY192YXBhcm1zY250KSkpIHsKKyAgICAgICAgICAgIHZraV91aW50X3QgaTsKKyAgICAgICAgICAgIFBSRV9NRU1fUkVBRCgicHJpb2NudGxzeXMocGFybXMpIiwgKEFkZHIpcGFybXMtPnBjX3Bhcm1zLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBhcm1zLT5wY192YXBhcm1zY250ICogc2l6ZW9mKHBhcm1zLT5wY19wYXJtc1swXSkpOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcm1zLT5wY192YXBhcm1zY250OyBpKyspIHsKKyAgICAgICAgICAgICAgIHZraV9wY192YXBhcm1fdCAqcGFybSA9ICZwYXJtcy0+cGNfcGFybXNbaV07CisgICAgICAgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKHBhcm0sIHNpemVvZigqcGFybSkpICYmCisgICAgICAgICAgICAgICAgICAgTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkKilBUkc0LCAxKSkKKyAgICAgICAgICAgICAgICAgIG1lbV9wcmlvY250bHN5c19wYXJtKHRpZCwgVHJ1ZSAvKnByZSovLCBUcnVlIC8qcmVhZCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEhDaGFyKilBUkc0LCBwYXJtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfR0VUWFBBUk1TOgorICAgICAgUFJFX01FTV9SRUFEKCJwcmlvY250bHN5cyhwc3ApIiwgQVJHMiwgc2l6ZW9mKHZraV9wcm9jc2V0X3QpKTsKKyAgICAgIGlmIChBUkc0KQorICAgICAgICAgUFJFX01FTV9SQVNDSUlaKCJwcmlvY250bHN5cyhjbG5hbWUpIiwgQVJHNCk7CisgICAgICBpZiAoQVJHNSkgeworICAgICAgICAgdmtpX3BjX3ZhcGFybXNfdCAqcGFybXMgPSAodmtpX3BjX3ZhcGFybXNfdCopQVJHNTsKKyAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJwcmlvY250bHN5cyh2YXBhcm1zY250KSIsIHBhcm1zLT5wY192YXBhcm1zY250KTsKKyAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoJnBhcm1zLT5wY192YXBhcm1zY250LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocGFybXMtPnBjX3ZhcGFybXNjbnQpKSkgeworICAgICAgICAgICAgdmtpX3VpbnRfdCBpOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcm1zLT5wY192YXBhcm1zY250OyBpKyspIHsKKyAgICAgICAgICAgICAgIHZraV9wY192YXBhcm1fdCAqcGFybSA9ICZwYXJtcy0+cGNfcGFybXNbaV07CisgICAgICAgICAgICAgICBQUkVfTUVNX1JFQUQoInByaW9jbnRsc3lzKHBhcm1zKSIsIChBZGRyKSZwYXJtLT5wY19rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFybXMtPnBjX3ZhcGFybXNjbnQgKiBzaXplb2YocGFybS0+cGNfa2V5KSk7CisgICAgICAgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKCZwYXJtLT5wY19rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihwYXJtLT5wY19rZXkpKSkgeworICAgICAgICAgICAgICAgICAgLyogRmlyc3QgaGFuZGxlIFBDX0tZX0NMTkFNRSwgdGhlbiBjbGFzcyBzcGVjaWZpYyBrZXlzLgorICAgICAgICAgICAgICAgICAgICAgTm90ZSB0aGF0IFBDX0tZX0NMTkFNRSBjYW4gYmUgdXNlZCBvbmx5IHdpdGgKKyAgICAgICAgICAgICAgICAgICAgIEFSRzQ9PU5VTEwgJiYgcGFybXMtPnBjX3ZhcGFybXNjbnQ9PTEuICBXZSBhcmUgbm90IHNvCisgICAgICAgICAgICAgICAgICAgICBzdHJpY3QgaGVyZSBhbmQgaGFuZGxlIHRoaXMgc3BlY2lhbCBjYXNlIGFzIGEgcmVndWxhcgorICAgICAgICAgICAgICAgICAgICAgb25lIHdoaWNoIG1ha2VzIHRoZSBjb2RlIHNpbXBsZXIuICovCisgICAgICAgICAgICAgICAgICBpZiAocGFybS0+cGNfa2V5ID09IFZLSV9QQ19LWV9DTE5BTUUpCisgICAgICAgICAgICAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJwcmlvY250bHN5cyhjbG5hbWUpIiwgcGFybS0+cGNfcGFybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktJX1BDX0NMTk1TWik7CisgICAgICAgICAgICAgICAgICBlbHNlIGlmIChBUkc0ICYmIE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCopQVJHNCwgMSkpCisgICAgICAgICAgICAgICAgICAgICBtZW1fcHJpb2NudGxzeXNfcGFybSh0aWQsIFRydWUgLypwcmUqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlIC8qcmVhZCovLCAoSENoYXIqKUFSRzQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJtKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfU0VUREZMQ0w6CisgICAgICBQUkVfTUVNX1JBU0NJSVooInByaW9jbnRsc3lzKGNsbmFtZSkiLCBBUkc0KTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfR0VUREZMQ0w6CisgICAgICBpZiAoQVJHNCkgeworICAgICAgICAgLyogR0VUREZMQ0wgd3JpdGVzIHRvIHRoZSBBUkc0IGJ1ZmZlciBvbmx5IGlmIEFSRzQgaXNuJ3QgTlVMTC4gIEFsc28KKyAgICAgICAgICAgIG5vdGUgdGhhdCBpZiBBUkc0IGlzIE5VTEwgdGhlbiB0aGUgc3lzY2FsbCBzdWNjZWVkcy4gKi8KKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInByaW9jbnRsc3lzKGNsbmFtZSkiLCBBUkc0LCBWS0lfUENfQ0xOTVNaKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfRE9QUklPOgorICAgICAgUFJFX01FTV9SRUFEKCJwcmlvY250bHN5cyhwc3ApIiwgQVJHMiwgc2l6ZW9mKHZraV9wcm9jc2V0X3QpKTsKKyAgICAgIHsKKyAgICAgICAgIHZraV9wY3ByaW9fdCAqcHJpbyA9ICh2a2lfcGNwcmlvX3QqKUFSRzQ7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgicHJpb2NudGxzeXMob3ApIiwgcHJpby0+cGNfb3ApOworICAgICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKSgmcHJpby0+cGNfb3AsIHNpemVvZihwcmlvLT5wY19vcCkpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHByaW8tPnBjX29wKSB7CisgICAgICAgICAgICBjYXNlIFZLSV9QQ19HRVRQUklPOgorICAgICAgICAgICAgICAgUFJFX0ZJRUxEX1dSSVRFKCJwcmlvY250bHN5cyhjaWQpIiwgcHJpby0+cGNfY2lkKTsKKyAgICAgICAgICAgICAgIFBSRV9GSUVMRF9XUklURSgicHJpb2NudGxzeXModmFsKSIsIHByaW8tPnBjX3ZhbCk7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVktJX1BDX1NFVFBSSU86CisgICAgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgicHJpb2NudGxzeXMoY2lkKSIsIHByaW8tPnBjX2NpZCk7CisgICAgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgicHJpb2NudGxzeXModmFsKSIsIHByaW8tPnBjX3ZhbCk7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIHByaW9jbnRsc3lzIGNhbGwgd2hlcmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjbWQ9UENfRE9QUklPIGFuZCBwY19vcD0lZCIsIHByaW8tPnBjX29wKTsKKyAgICAgICAgICAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfQURNSU46CisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBwcmlvY250bHN5cyBjYWxsIHdpdGggY21kICVsZC4iLCBTQVJHMyk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK3N0YXRpYyB2b2lkIHBvc3RfbWVtX3dyaXRlX3ByaW9jbnRsc3lzX2NsaW5mbyhUaHJlYWRJZCB0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSENoYXIgKmNsbmFtZSwgQWRkciBjbGluZm8pCit7CisgICBpZiAoVkdfU1RSRVEoY2xuYW1lLCAiUlQiKSkKKyAgICAgIFBPU1RfTUVNX1dSSVRFKGNsaW5mbywgc2l6ZW9mKHZraV9ydGluZm9fdCkpOworICAgZWxzZSBpZiAoVkdfU1RSRVEoY2xuYW1lLCAiVFMiKSkKKyAgICAgIFBPU1RfTUVNX1dSSVRFKGNsaW5mbywgc2l6ZW9mKHZraV90c2luZm9fdCkpOworICAgZWxzZSBpZiAoVkdfU1RSRVEoY2xuYW1lLCAiSUEiKSkKKyAgICAgIFBPU1RfTUVNX1dSSVRFKGNsaW5mbywgc2l6ZW9mKHZraV9pYWluZm9fdCkpOworICAgZWxzZSBpZiAoVkdfU1RSRVEoY2xuYW1lLCAiRlNTIikpCisgICAgICBQT1NUX01FTV9XUklURShjbGluZm8sIHNpemVvZih2a2lfZnNzaW5mb190KSk7CisgICBlbHNlIGlmIChWR19TVFJFUShjbG5hbWUsICJGWCIpKQorICAgICAgUE9TVF9NRU1fV1JJVEUoY2xpbmZvLCBzaXplb2YodmtpX2Z4aW5mb190KSk7CisgICBlbHNlIGlmIChWR19TVFJFUShjbG5hbWUsICJTREMiKSkgeworICAgICAgLyogUmVsYXguICovCisgICB9CisgICBlbHNlIHsKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgcHJpb2NudGxzeXMgY2FsbCB3aGVyZSBjbG5hbWU9JXMuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbG5hbWUpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgIH0KK30KKworUE9TVChzeXNfcHJpb2NudGxzeXMpCit7CisgICBzd2l0Y2ggKEFSRzMgLypjbWQqLykgeworICAgY2FzZSBWS0lfUENfR0VUQ0lEOgorICAgICAgaWYgKEFSRzQpIHsKKyAgICAgICAgIHZraV9wY2luZm9fdCAqaW5mbyA9ICh2a2lfcGNpbmZvX3QqKUFSRzQ7CisgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKGluZm8tPnBjX2NpZCk7CisgICAgICAgICBwb3N0X21lbV93cml0ZV9wcmlvY250bHN5c19jbGluZm8odGlkLCBpbmZvLT5wY19jbG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJmluZm8tPnBjX2NsaW5mbyk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BDX0dFVENMSU5GTzoKKyAgICAgIGlmIChBUkc0KSB7CisgICAgICAgICB2a2lfcGNpbmZvX3QgKmluZm8gPSAodmtpX3BjaW5mb190KilBUkc0OworICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpaW5mby0+cGNfY2xuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgVkdfKHN0cmxlbikoKEhDaGFyKilpbmZvLT5wY19jbG5hbWUpICsgMSk7CisgICAgICAgICBwb3N0X21lbV93cml0ZV9wcmlvY250bHN5c19jbGluZm8odGlkLCBpbmZvLT5wY19jbG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJmluZm8tPnBjX2NsaW5mbyk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BDX1NFVFBBUk1TOgorICAgICAgLyogUmVsYXguICovCisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BDX0dFVFBBUk1TOgorICAgICAgLyogVGhlIG5leHQgbGluZSBzYXlzIHRoYXQgdGhlIGNvbXBsZXRlIHBjcGFybXNfdCBzdHJ1Y3R1cmUgaXMKKyAgICAgICAgIHdyaXR0ZW4gd2hpY2ggaXMgbmV2ZXIgYWN0dWFsbHkgdHJ1ZSAod2UgYXJlIHRvbyBvcHRpbWlzdGljIGhlcmUpLgorICAgICAgICAgVW5mb3J0dW5hdGVseSB3ZSBjYW4ndCBkbyBiZXR0ZXIgYmVjYXVzZSB3ZSBkb24ndCBrbm93IHdoYXQKKyAgICAgICAgIHByb2Nlc3MgY2xhc3MgaXMgaW52b2x2ZWQuICovCisgICAgICBQT1NUX01FTV9XUklURShBUkc0LCBzaXplb2YodmtpX3BjcGFybXNfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QQ19HRVRQUklSQU5HRToKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIHNpemVvZih2a2lfcGNwcmlfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QQ19ET05JQ0U6CisgICAgICB7CisgICAgICAgICB2a2lfcGNuaWNlX3QgKm5pY2VlID0gKHZraV9wY25pY2VfdCopQVJHNDsKKyAgICAgICAgIGlmIChuaWNlZS0+cGNfb3AgPT0gVktJX1BDX0dFVE5JQ0UpCisgICAgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKG5pY2VlLT5wY192YWwpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QQ19TRVRYUEFSTVM6CisgICAgICAvKiBSZWxheC4gKi8KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfR0VUWFBBUk1TOgorICAgICAgeworICAgICAgICAgdmtpX3BjX3ZhcGFybXNfdCAqcGFybXMgPSAodmtpX3BjX3ZhcGFybXNfdCopQVJHNTsKKyAgICAgICAgIHZraV91aW50X3QgaTsKKyAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBwYXJtcy0+cGNfdmFwYXJtc2NudDsgaSsrKSB7CisgICAgICAgICAgICB2a2lfcGNfdmFwYXJtX3QgKnBhcm0gPSAmcGFybXMtPnBjX3Bhcm1zW2ldOworICAgICAgICAgICAgaWYgKHBhcm0tPnBjX2tleSA9PSBWS0lfUENfS1lfQ0xOQU1FKQorICAgICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUocGFybS0+cGNfcGFybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHXyhzdHJsZW4pKChIQ2hhciopKEFkZHIpcGFybS0+cGNfcGFybSkgKyAxKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKEFSRzQpCisgICAgICAgICAgICAgICBtZW1fcHJpb2NudGxzeXNfcGFybSh0aWQsIEZhbHNlIC8qcHJlKi8sIEZhbHNlIC8qcmVhZCovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEhDaGFyKilBUkc0LCBwYXJtKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfU0VUREZMQ0w6CisgICAgICAvKiBSZWxheC4gKi8KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfR0VUREZMQ0w6CisgICAgICBpZiAoQVJHNCkKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIFZHXyhzdHJsZW4pKChIQ2hhciopQVJHNCkgKyAxKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUENfRE9QUklPOgorICAgICAgeworICAgICAgICAgdmtpX3BjcHJpb190ICpwcmlvID0gKHZraV9wY3ByaW9fdCopQVJHNDsKKyAgICAgICAgIGlmIChwcmlvLT5wY19vcCA9PSBWS0lfUENfR0VUUFJJTykgeworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwcmlvLT5wY19jaWQpOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwcmlvLT5wY192YWwpOworICAgICAgICAgfQorICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QQ19BRE1JTjoKKyAgIGRlZmF1bHQ6CisgICAgICB2Z19hc3NlcnQoMCk7CisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19wYXRoY29uZikKK3sKKyAgIC8qIGxvbmcgcGF0aGNvbmYoY29uc3QgY2hhciAqcGF0aCwgaW50IG5hbWUpOyAqLworICAgUFJJTlQoInN5c19wYXRoY29uZiAoICUjbHgoJXMpLCAlbGQgKSIsIEFSRzEsIChIQ2hhciAqKSBBUkcxLCBTQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJwYXRoY29uZiIsIGNvbnN0IGNoYXIgKiwgcGF0aCwgaW50LCBuYW1lKTsKKyAgIFBSRV9NRU1fUkFTQ0lJWigicGF0aGNvbmYocGF0aCkiLCBBUkcxKTsKK30KKworUFJFKHN5c19tbWFwKQoreworICAgLyogdm9pZCAqbW1hcCh2b2lkICphZGRyLCBzaXplX3QgbGVuLCBpbnQgcHJvdCwgaW50IGZsYWdzLAorICAgICAgICAgICAgICAgICBpbnQgZmlsZGVzLCBvZmZfdCBvZmYpOyAqLworICAgU3lzUmVzIHI7CisgICBPZmZUIG9mZnNldDsKKworICAgLyogU3RheSBzYW5lLiAqLworICAgdmdfYXNzZXJ0KFZLSV9QQUdFX1NJWkUgPT0gNDA5Nik7CisgICB2Z19hc3NlcnQoc2l6ZW9mKG9mZnNldCkgPT0gc2l6ZW9mKEFSRzYpKTsKKworICAgUFJJTlQoInN5c19tbWFwICggJSNseCwgJSNseCwgJSNseCwgJSNseCwgJWxkLCAlI2x4ICkiLAorICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgU0FSRzUsIEFSRzYpOworICAgUFJFX1JFR19SRUFENihsb25nLCAibW1hcCIsIHZvaWQgKiwgc3RhcnQsIHZraV9zaXplX3QsIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgaW50LCBwcm90LCBpbnQsIGZsYWdzLCBpbnQsIGZkLCB2a2lfb2ZmX3QsIG9mZnNldCk7CisKKyAgIC8qIE1ha2Ugc3VyZSB0aGF0IGlmIG9mZiA8IDAgdGhlbiBpdCdzIHBhc3NlZCBjb3JyZWN0bHkgdG8gdGhlIGdlbmVyaWMgbW1hcAorICAgICAgd3JhcGVyLiAqLworICAgb2Zmc2V0ID0gKihPZmZUKikmQVJHNjsKKworICAgciA9IE1MXyhnZW5lcmljX1BSRV9zeXNfbW1hcCkodGlkLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBvZmZzZXQpOworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhyKTsKK30KKworI2lmIGRlZmluZWQoU09MQVJJU19VVUlEU1lTX1NZU0NBTEwpCitQUkUoc3lzX3V1aWRzeXMpCit7CisgICAvKiBpbnQgdXVpZHN5cyhzdHJ1Y3QgdXVpZCAqdXVpZCk7ICovCisgICBQUklOVCgic3lzX3V1aWRzeXMgKCAlI2x4ICkiLCBBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEobG9uZywgInV1aWRzeXMiLCBzdHJ1Y3QgdmtpX3V1aWQgKiwgdXVpZCk7CisgICBQUkVfTUVNX1dSSVRFKCJ1dWlkc3lzKHV1aWQpIiwgQVJHMSwgc2l6ZW9mKHN0cnVjdCB2a2lfdXVpZCkpOworfQorCitQT1NUKHN5c191dWlkc3lzKQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMSwgc2l6ZW9mKHN0cnVjdCB2a2lfdXVpZCkpOworfQorI2VuZGlmIC8qIFNPTEFSSVNfVVVJRFNZU19TWVNDQUxMICovCisKKy8qIFN5c2NhbGwgbW1hcG9iaiBlbXVsYXRpb24uIFByb2Nlc3NlcyBFTEYgcHJvZ3JhbSBoZWFkZXJzCisgICBhbmQgbWFwcyB0aGVtIGludG8gY29ycmVjdCBwbGFjZSBpbiBtZW1vcnkuIE5vdCBhbiBlYXN5IHRhc2ssIHRob3VnaC4KKyAgIEVMRiBwcm9ncmFtIGhlYWRlciBvZiBQVF9MT0FEL1BUX1NVTldCU1MgdHlwZSBzcGVjaWZpZXM6CisgICBvIHBfdmFkZHIgIC0gYWN0dWFsbHkgYSBtZW1vcnkgb2Zmc2V0CisgICBvIHBfbWVtc3ogIC0gdG90YWwgc2VnbWVudCBzaXplLCBpbmNsdWRpbmcgdGV4dCwgZGF0YSBhbmQgQlNTCisgICBvIHBfZmlsZXN6IC0gZmlsZS1iYXNlZCBzZWdtZW50IHNpemUgbWFwcGluZyAoaW5jbHVkZXMgb25seSB0ZXh0IGFuZCBkYXRhKTsKKyAgICAgICAgICAgICAgICBwX21lbXN6IC0gcF9maWxlc3ogaXMgdGhlIHNpemUgb2YgQlNTCisgICBvIHBfb2Zmc2V0IC0gb2Zmc2V0IGludG8gdGhlIEVMRiBmaWxlIHdoZXJlIHRoZSBmaWxlLWJhc2VkIG1hcHBpbmcgc3RhcnRzCisgCisgICBTZXZlcmFsIHByb2JsZW1hdGljIGFyZWFzIHRvIGNvdmVyIGhlcmU6CisgICAxLiBwX29mZnNldCBjYW4gY29udGFpbiBhIHZhbHVlIHdoaWNoIGlzIG5vdCBwYWdlLWFsaWduZWQuIEluIHRoYXQgY2FzZQorICAgICAgd2UgbW1hcCBhIHBhcnQgb2YgdGhlIGZpbGUgcHJpb3IgdG8gcF9vZmZzZXQgdG8gbWFrZSB0aGUgc3RhcnQgYWRkcmVzcworICAgICAgcGFnZS1hbGlnbmVkLgorICAgMi4gUGFydGlhbGx5IHVudXNlZCBwYWdlIGFmdGVyIHRoZSBmaWxlLWJhc2VkIG1hcHBpbmcgbXVzdCBiZSB6ZXJvZWQuCisgICAzLiBUaGUgZmlyc3QgbWFwcGluZyBpcyBmbGFnZ2VkIHdpdGggTVJfSERSX0VMRiBhbmQgbmVlZHMgdG8gY29udGFpbgorICAgICAgdGhlIEVMRiBoZWFkZXIuIFRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZCBhbmQgdmVyaWZpZWQgYnkgdGhlIGR5bmFtaWMKKyAgICAgIGxpbmtlciAobGQuc28uMSkuICovCitzdGF0aWMgU3lzUmVzIG1tYXBvYmpfcHJvY2Vzc19waGRycyhUaHJlYWRJZCB0aWQsIEludCBmZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZraV9tbWFwb2JqX3Jlc3VsdF90ICpzdG9yYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmtpX3VpbnRfdCAqZWxlbWVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWS0lfRVNaKEVoZHIpICplaGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVktJX0VTWihQaGRyKSAqcGhkcnMpCit7CisjZGVmaW5lIEFEVkFOQ0VfUEhEUihlaGRyLCBwaGRyKSBcCisgICAoY29uc3QgVktJX0VTWihQaGRyKSAqKSAoKGNvbnN0IEhDaGFyICopIChwaGRyKSArIChlaGRyKS0+ZV9waGVudHNpemUpCisKKyAgIFN5c1JlcyByZXM7CisgICBJbnQgaTsKKyAgIEludCBmaXJzdF9zZWdtZW50X2lkeCA9IC0xOworICAgVUludCBpZHg7CisgICBVSW50IHNlZ21lbnRzID0gMDsgLyogbG9hZGFibGUgc2VnbWVudHMgKi8KKyAgIEFkZHIgc3RhcnRfYWRkciA9IDA7CisgICBBZGRyIGVuZF9hZGRyID0gMDsKKyAgIEFkZHIgZWxmYnJrID0gMDsKKyAgIFNpemVUIG1heF9hbGlnbiA9IFZLSV9QQUdFX1NJWkU7CisKKyAgIC8qIDEuIEZpcnN0IHBhc3Mgb3ZlciBwaGRycyAtIGRldGVybWluZSBudW1iZXIsIHNwYW4gYW5kIG1heCBhbGlnbm1lbnQuICovCisgICBjb25zdCBWS0lfRVNaKFBoZHIpICpwaGRyID0gcGhkcnM7CisgICBmb3IgKGlkeCA9IDA7IGlkeCA8IGVoZHItPmVfcGhudW07IGlkeCsrLCBwaGRyID0gQURWQU5DRV9QSERSKGVoZHIsIHBoZHIpKSB7CisgICAgICAvKiBTa2lwIHRoaXMgaGVhZGVyIGlmIG5vIG1lbW9yeSBpcyByZXF1ZXN0ZWQuICovCisgICAgICBpZiAocGhkci0+cF9tZW1zeiA9PSAwKQorICAgICAgICAgY29udGludWU7CisKKyAgICAgIGlmICgocGhkci0+cF90eXBlID09IFZLSV9QVF9MT0FEKSB8fCAocGhkci0+cF90eXBlID09IFZLSV9QVF9TVU5XQlNTKSkgeworICAgICAgICAgT2ZmNjRUIG9mZnNldCA9IDA7CisKKyAgICAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMiwgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX3Byb2Nlc3NfcGhkcnM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2dyYW0gaGVhZGVyICMldTogYWRkcj0lI2x4IHR5cGU9JSNseCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90PSUjbHggbWVtc3o9JSNseCBmaWxlc3o9JSNseCBmaWxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mZnNldD0lI2x4XG4iLCBpZHgsIHBoZHItPnBfdmFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZCkgcGhkci0+cF90eXBlLCAoVVdvcmQpIHBoZHItPnBfZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoZHItPnBfbWVtc3osIHBoZHItPnBfZmlsZXN6LCBwaGRyLT5wX29mZnNldCk7CisKKyAgICAgICAgIGlmIChzZWdtZW50cyA9PSAwKSB7CisgICAgICAgICAgICBmaXJzdF9zZWdtZW50X2lkeCA9IGlkeDsKKworICAgICAgICAgICAgaWYgKHBoZHItPnBfZmlsZXN6ID09IDApIHsKKyAgICAgICAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgbW1hcG9iaiBjYWxsIHdpdGggdGhlIGZpcnN0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9hZGFibGUgRUxGIHByb2dyYW0gaGVhZGVyIHNwZWNpZnlpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwX2ZpbGVzeiA9PSAwIik7CisgICAgICAgICAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICAgICAgICAgIHJldHVybiByZXM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIEFkZHJlc3Mgb2YgdGhlIGZpcnN0IHNlZ21lbnQgbXVzdCBiZSBlaXRoZXIgTlVMTCBvciB3aXRoaW4gdGhlCisgICAgICAgICAgICAgICBmaXJzdCBwYWdlLiAqLworICAgICAgICAgICAgaWYgKChlaGRyLT5lX3R5cGUgPT0gVktJX0VUX0RZTikgJiYKKyAgICAgICAgICAgICAgICAoKHBoZHItPnBfdmFkZHIgJiBWS0lfUEFHRU1BU0spICE9IDApKSB7CisgICAgICAgICAgICAgICBpZiAoVkdfKGNsb190cmFjZV9zeXNjYWxscykpCisgICAgICAgICAgICAgICAgICBWR18oZGVidWdMb2cpKDMsICJzeXN3cmFwLXNvbGFyaXMiLCAibW1hcG9ial9wcm9jZXNzX3BoZHJzOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFTEYgcHJvZ3JhbSBoZWFkZXIgIyV1IGRvZXMgbm90IGxhbmQgb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIGZpcnN0IHBhZ2UgKHZhZGRyPSUjbHgpXG4iLCBpZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoZHItPnBfdmFkZHIpOworICAgICAgICAgICAgICAgcmV0dXJuIFZHXyhta19TeXNSZXNfRXJyb3IpKFZLSV9FTk9UU1VQKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RhcnRfYWRkciA9IHBoZHItPnBfdmFkZHI7CisgICAgICAgICAgICAvKiBUaGUgZmlyc3Qgc2VnbWVudCBpcyBtYXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlICh0bworICAgICAgICAgICAgICAgaW5jbHVkZSBhbHNvIHRoZSBFTEYgaGVhZGVyKSwgc28gaW5jbHVkZSB0aGlzIG1lbW9yeSBhcyB3ZWxsLgorICAgICAgICAgICAgICAgTGF0ZXIgb24gd2UgZmxhZyB0aGlzIG1hcHBpbmcgd2l0aCBNUl9IRFJfRUxGLiAqLworICAgICAgICAgICAgb2Zmc2V0ID0gcGhkci0+cF9vZmZzZXQ7CisgICAgICAgICB9CisKKyAgICAgICAgIGlmIChwaGRyLT5wX2FsaWduID4gMSkgeworICAgICAgICAgICAgaWYgKChwaGRyLT5wX3ZhZGRyICUgcGhkci0+cF9hbGlnbikgIT0KKyAgICAgICAgICAgICAgICAocGhkci0+cF9vZmZzZXQgJSBwaGRyLT5wX2FsaWduKSkgeworICAgICAgICAgICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwgIm1tYXBvYmpfcHJvY2Vzc19waGRyczogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUxGIHByb2dyYW0gaGVhZGVyICMldSBkb2VzIG5vdCBoYXZlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbmdydWVudCBvZmZzZXQgYW5kIHZhZGRyICh2YWRkcj0lI2x4ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUgb2Zmc2V0PSUjbHggYWxpZ249JSNseClcbiIsIGlkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhkci0+cF92YWRkciwgcGhkci0+cF9vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoZHItPnBfYWxpZ24pOworICAgICAgICAgICAgICAgcmV0dXJuIFZHXyhta19TeXNSZXNfRXJyb3IpKFZLSV9FTk9UU1VQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKworICAgICAgICAgaWYgKHBoZHItPnBfdmFkZHIgPCBlbmRfYWRkcikgeworICAgICAgICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwgIm1tYXBvYmpfcHJvY2Vzc19waGRyczogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUxGIHByb2dyYW0gaGVhZGVyICMldSBzcGVjaWZpZXMgb3ZlcmxhcGluZyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRyZXNzICh2YWRkcj0lI2x4IGVuZF9hZGRyPSUjbHgpXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHgsIHBoZHItPnBfdmFkZHIsIGVuZF9hZGRyKTsKKyAgICAgICAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKShWS0lfRU5PVFNVUCk7CisgICAgICAgICB9CisKKyAgICAgICAgIGVuZF9hZGRyID0gZWxmYnJrID0gcGhkci0+cF92YWRkciArIHBoZHItPnBfbWVtc3ogKyBvZmZzZXQ7CisgICAgICAgICBlbmRfYWRkciA9IFZHX1BHUk9VTkRVUChlbmRfYWRkcik7CisgICAgICAgICBpZiAocGhkci0+cF9hbGlnbiA+IG1heF9hbGlnbikgeworICAgICAgICAgICAgbWF4X2FsaWduID0gcGhkci0+cF9hbGlnbjsKKyAgICAgICAgIH0KKworICAgICAgICAgc2VnbWVudHMgKz0gMTsKKyAgICAgIH0KKyAgIH0KKworICAgLyogQWxpZ25tZW50IGNoZWNrIC0gaXQgc2hvdWxkIGJlIHBvd2VyIG9mIHR3by4gKi8KKyAgIGlmICgobWF4X2FsaWduICYgKG1heF9hbGlnbiAtIDEpKSAhPSAwKSB7CisgICAgICBpZiAoVkdfKGNsb190cmFjZV9zeXNjYWxscykpCisgICAgICAgICBWR18oZGVidWdMb2cpKDMsICJzeXN3cmFwLXNvbGFyaXMiLCAibW1hcG9ial9wcm9jZXNzX3BoZHJzOiBhbGlnbm1lbnQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAiaXMgbm90IGEgcG93ZXIgb2YgMiAoJSNseClcbiIsIG1heF9hbGlnbik7CisgICAgICByZXR1cm4gVkdfKG1rX1N5c1Jlc19FcnJvcikoVktJX0VOT1RTVVApOworICAgfQorICAgdmdfYXNzZXJ0KG1heF9hbGlnbiA+PSBWS0lfUEFHRV9TSVpFKTsKKworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgaWYgKG1heF9hbGlnbiA+IFZLSV9VSU5UX01BWCkgeworICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwgIm1tYXBvYmpfcHJvY2Vzc19waGRyczogYWxpZ25tZW50ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciAzMi1iaXQgRUxGIGlzID4zMi1iaXRzICglI2x4KVxuIiwgbWF4X2FsaWduKTsKKyAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKShWS0lfRU5PVFNVUCk7CisgICB9CisjZW5kaWYgLyogVkdQX3g4Nl9zb2xhcmlzICovCisKKyAgIGlmIChzZWdtZW50cyA9PSAwKSB7CisgICAgICBpZiAoVkdfKGNsb190cmFjZV9zeXNjYWxscykpCisgICAgICAgICBWR18oZGVidWdMb2cpKDMsICJzeXN3cmFwLXNvbGFyaXMiLCAibW1hcG9ial9wcm9jZXNzX3BoZHJzOiBub3RoaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRvIG1hcCAoMCBsb2FkYWJsZSBzZWdtZW50cykiKTsKKyAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKShWS0lfRU5PVFNVUCk7CisgICB9CisKKyAgIHZnX2Fzc2VydChlbmRfYWRkciA+PSBzdGFydF9hZGRyKTsKKyAgIFNpemVUIHNwYW4gPSBlbmRfYWRkciAtIHN0YXJ0X2FkZHI7CisgICBpZiAoc3BhbiA9PSAwKSB7CisgICAgICBpZiAoVkdfKGNsb190cmFjZV9zeXNjYWxscykpCisgICAgICAgICBWR18oZGVidWdMb2cpKDMsICJzeXN3cmFwLXNvbGFyaXMiLCAibW1hcG9ial9wcm9jZXNzX3BoZHJzOiBub3RoaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRvIG1hcCAoJXUgbG9hZGFibGUgc2VnbWVudHMgc3Bhbm5pbmcgMCBieXRlcylcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzKTsKKyAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKShWS0lfRU5PVFNVUCk7CisgICB9CisgICB2Z19hc3NlcnQoZmlyc3Rfc2VnbWVudF9pZHggPj0gMCk7CisKKyAgIGlmIChzZWdtZW50cyA+ICplbGVtZW50cykgeworICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwgIm1tYXBvYmpfcHJvY2Vzc19waGRyczogdG9vIG1hbnkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAic2VnbWVudHMgKCV1KVxuIiwgc2VnbWVudHMpOworICAgICAgcmV0dXJuIFZHXyhta19TeXNSZXNfRXJyb3IpKFZLSV9FMkJJRyk7CisgICB9CisKKyAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgIFZHXyhkZWJ1Z0xvZykoMiwgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX3Byb2Nlc3NfcGhkcnM6IHRoZXJlICIKKyAgICAgICAgICAgICAgICAgICAgICAgImFyZSAldSBsb2FkYWJsZSBzZWdtZW50cyBzcGFubmluZyAlI2x4IGJ5dGVzOyBtYXggIgorICAgICAgICAgICAgICAgICAgICAgICAiYWxpZ24gaXMgJSNseFxuIiwgc2VnbWVudHMsIHNwYW4sIG1heF9hbGlnbik7CisKKyAgIC8qIE5vdyBnZXQgdGhlIGFzcGFjZW1nciBvcmFjdWx1bSBhZHZpc29yeS4KKyAgICAgIExhdGVyIG9uIHdlIG1tYXAgZmlsZS1iYXNlZCBhbmQgQlNTIG1hcHBpbmdzIGludG8gdGhpcyBhZGRyZXNzIHNwYWNlIGFyZWEKKyAgICAgIGFzIHJlcXVpcmVkIGFuZCBsZWF2ZSB0aGUgaG9sZXMgdW5tYXBwZWQuICovCisgICBpZiAoZWhkci0+ZV90eXBlID09IFZLSV9FVF9EWU4pIHsKKyAgICAgIE1hcFJlcXVlc3QgbXJlcSA9IHtNQWxpZ24sIG1heF9hbGlnbiwgc3Bhbn07CisgICAgICBCb29sIG9rOworICAgICAgc3RhcnRfYWRkciA9IFZHXyhhbV9nZXRfYWR2aXNvcnkpKCZtcmVxLCBUcnVlIC8qIGZvckNsaWVudCAqLywgJm9rKTsKKyAgICAgIGlmICghb2spIHsKKyAgICAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX3Byb2Nlc3NfcGhkcnM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZCB0byByZXNlcnZlIGFkZHJlc3Mgc3BhY2Ugb2YgJSNseCBieXRlcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoIGFsaWdubWVudCAlI2x4XG4iLCBzcGFuLCBtYXhfYWxpZ24pOworICAgICAgICAgcmV0dXJuIFZHXyhta19TeXNSZXNfRXJyb3IpKFZLSV9FTk9NRU0pOworICAgICAgfQorICAgICAgdmdfYXNzZXJ0KFZHX1JPVU5EVVAoc3RhcnRfYWRkciwgbWF4X2FsaWduKSA9PSBzdGFydF9hZGRyKTsKKworICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgVkdfKGRlYnVnTG9nKSgyLCAic3lzd3JhcC1zb2xhcmlzIiwgIlBSRShzeXNfbW1hcG9iaik6IGFkZHJlc3Mgc3BhY2UgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzZXJ2ZWQgYXQ6IHZhZGRyPSUjbHggc2l6ZT0lI2x4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9hZGRyLCBzcGFuKTsKKyAgIH0gZWxzZSB7CisgICAgICB2Z19hc3NlcnQoZWhkci0+ZV90eXBlID09IFZLSV9FVF9FWEVDKTsKKyAgICAgIC8qIEVUX0VYRUMgdXNlcyBmaXhlZCBtYXBwaW5ncy4gV2lsbCBiZSBjaGVja2VkIHdoZW4gcHJvY2Vzc2luZyBwaGRycy4gKi8KKyAgIH0KKworICAgLyogVGhpcyBpcyBhbiB1dHRlcmx5IHVnbHkgaGFjaywgdGhlIGFzcGFjZW1nciBhc3N1bWVzIHRoYXQgb25seSBvbmUKKyAgICAgIHNlZ21lbnQgaXMgYWRkZWQgYXQgdGhlIHRpbWUuIEhvd2V2ZXIgd2UgYWRkIGhlcmUgbXVsdGlwbGUgc2VnbWVudHMgc28KKyAgICAgIEFNX1NBTklUWV9DSEVDSyBpbnNpZGUgdGhlIGFzcGFjZW1nciBjYW4gZWFzaWx5IGZhaWwuIFdlIHdhbnQgdG8KKyAgICAgIHByZXZlbnQgdGhhdCB0aHVzIHdlIGRpc2FibGUgdGhlc2UgY2hlY2tzLiBUaGUgc2NoZWR1bGVyIHdpbGwgY2hlY2sgdGhlCisgICAgICBhc3BhY2VtZ3Igc2FuaXR5IGFmdGVyIHRoZSBzeXNjYWxsLiAqLworICAgVUludCBzYW5pdHlfbGV2ZWwgPSBWR18oY2xvX3Nhbml0eV9sZXZlbCk7CisgICBWR18oY2xvX3Nhbml0eV9sZXZlbCkgPSAxOworCisgICAvKiAyLiBTZWNvbmQgcGFzcyBvdmVyIHBoZHJzIC0gbWFwIHRoZSBwcm9ncmFtIGhlYWRlcnMgYW5kIGZpbGwgaW4KKyAgICAgICAgIHRoZSBtbWFwb2JqX3Jlc3VsdF90IGFycmF5LiAqLworICAgcGhkciA9IHBoZHJzOworICAgKmVsZW1lbnRzID0gMDsKKyAgIGZvciAoaWR4ID0gMDsgaWR4IDwgZWhkci0+ZV9waG51bTsgaWR4KyssIHBoZHIgPSBBRFZBTkNFX1BIRFIoZWhkciwgcGhkcikpIHsKKyAgICAgIC8qIFNraXAgdGhpcyBoZWFkZXIgaWYgbm8gbWVtb3J5IGlzIHJlcXVlc3RlZC4gKi8KKyAgICAgIGlmIChwaGRyLT5wX21lbXN6ID09IDApCisgICAgICAgICBjb250aW51ZTsKKworICAgICAgaWYgKChwaGRyLT5wX3R5cGUgPT0gVktJX1BUX0xPQUQpIHx8IChwaGRyLT5wX3R5cGUgPT0gVktJX1BUX1NVTldCU1MpKSB7CisgICAgICAgICBVSW50IHByb3QgPSAwOworICAgICAgICAgaWYgKHBoZHItPnBfZmxhZ3MgJiBWS0lfUEZfUikKKyAgICAgICAgICAgIHByb3QgfD0gVktJX1BST1RfUkVBRDsKKyAgICAgICAgIGlmIChwaGRyLT5wX2ZsYWdzICYgVktJX1BGX1cpCisgICAgICAgICAgICBwcm90IHw9IFZLSV9QUk9UX1dSSVRFOworICAgICAgICAgaWYgKHBoZHItPnBfZmxhZ3MgJiBWS0lfUEZfWCkKKyAgICAgICAgICAgIHByb3QgfD0gVktJX1BST1RfRVhFQzsKKworICAgICAgICAgdmtpX21tYXBvYmpfcmVzdWx0X3QgKm1ycCA9ICZzdG9yYWdlWyplbGVtZW50c107CisgICAgICAgICBtcnAtPm1yX21zaXplID0gcGhkci0+cF9tZW1zejsKKyAgICAgICAgIG1ycC0+bXJfZnNpemUgPSBwaGRyLT5wX2ZpbGVzejsKKyAgICAgICAgIG1ycC0+bXJfb2Zmc2V0ID0gMDsKKyAgICAgICAgIG1ycC0+bXJfcHJvdCA9IHByb3Q7CisgICAgICAgICBtcnAtPm1yX2ZsYWdzID0gMDsKKyAgICAgICAgIE9mZjY0VCBmaWxlX29mZnNldCA9IHBoZHItPnBfb2Zmc2V0OworICAgICAgICAgaWYgKGlkeCA9PSBmaXJzdF9zZWdtZW50X2lkeCkgeworICAgICAgICAgICAgbXJwLT5tcl9mbGFncyA9IFZLSV9NUl9IRFJfRUxGOworICAgICAgICAgICAgaWYgKGVoZHItPmVfdHlwZSA9PSBWS0lfRVRfRFlOKSB7CisgICAgICAgICAgICAgICBpZiAocGhkci0+cF9vZmZzZXQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAvKiBJbmNsdWRlIHRoZSBFTEYgaGVhZGVyIGludG8gdGhlIGZpcnN0IHNlZ21lbnQuCisgICAgICAgICAgICAgICAgICAgICBUaGlzIG1lYW5zIHdlIGlnbm9yZSBwX29mZnNldCBmcm9tIHRoZSBwcm9ncmFtIGhlYWRlcgorICAgICAgICAgICAgICAgICAgICAgYW5kIG1hcCBmcm9tIGZpbGUgb2Zmc2V0IDAuICovCisgICAgICAgICAgICAgICAgICBtcnAtPm1yX21zaXplICs9IHBoZHItPnBfb2Zmc2V0OworICAgICAgICAgICAgICAgICAgbXJwLT5tcl9mc2l6ZSArPSBwaGRyLT5wX29mZnNldDsKKyAgICAgICAgICAgICAgICAgIGZpbGVfb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICB2Z19hc3NlcnQoZWhkci0+ZV90eXBlID09IFZLSV9FVF9FWEVDKTsKKyAgICAgICAgICAgICAgIHN0YXJ0X2FkZHIgPSBwaGRyLT5wX3ZhZGRyOworICAgICAgICAgICAgfQorICAgICAgICAgfQorCisgICAgICAgICAvKiBwX3ZhZGRyIGlzIGFic29sdXRlIGZvciBFVF9FWEVDLCBhbmQgcmVsYXRpdmUgZm9yIEVUX0RZTi4gKi8KKyAgICAgICAgIG1ycC0+bXJfYWRkciA9ICh2a2lfY2FkZHJfdCkgcGhkci0+cF92YWRkcjsKKyAgICAgICAgIGlmIChlaGRyLT5lX3R5cGUgPT0gVktJX0VUX0RZTikgeworICAgICAgICAgICAgbXJwLT5tcl9hZGRyICs9IHN0YXJ0X2FkZHI7CisgICAgICAgICB9CisKKyAgICAgICAgIFNpemVUIHBhZ2Vfb2Zmc2V0ID0gKEFkZHIpIG1ycC0+bXJfYWRkciAmIFZLSV9QQUdFT0ZGU0VUOworICAgICAgICAgaWYgKHBhZ2Vfb2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgdmdfYXNzZXJ0KGZpbGVfb2Zmc2V0ID49IHBhZ2Vfb2Zmc2V0KTsKKyAgICAgICAgICAgIC8qIE1hcHBpbmcgYWRkcmVzcyBkb2VzIG5vdCBzdGFydCBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcGFnZS4KKyAgICAgICAgICAgICAgIFRoZXJlZm9yZSBpbmNsdWRlIHNvbWUgYnl0ZXMgYmVmb3JlIHRvIG1ha2UgaXQgcGFnZSBhbGlnbmVkLiAqLworICAgICAgICAgICAgbXJwLT5tcl9hZGRyIC09IHBhZ2Vfb2Zmc2V0OworICAgICAgICAgICAgbXJwLT5tcl9tc2l6ZSArPSBwYWdlX29mZnNldDsKKyAgICAgICAgICAgIG1ycC0+bXJfb2Zmc2V0ID0gcGFnZV9vZmZzZXQ7CisgICAgICAgICAgICBmaWxlX29mZnNldCAtPSBwYWdlX29mZnNldDsKKyAgICAgICAgIH0KKyAgICAgICAgIFNpemVUIGZpbGVfc2l6ZSA9IG1ycC0+bXJfZnNpemUgKyBtcnAtPm1yX29mZnNldDsKKyAgICAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMiwgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX3Byb2Nlc3NfcGhkcnM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1tYXBvYmogcmVzdWx0ICMldTogYWRkcj0lI2x4IG1zaXplPSUjbHggIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnNpemU9JSNseCBtcl9vZmZzZXQ9JSNseCBwcm90PSUjeCBmbGFncz0lI3hcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICplbGVtZW50cywgKEFkZHIpIG1ycC0+bXJfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVXb3JkKSBtcnAtPm1yX21zaXplLCAoVVdvcmQpIG1ycC0+bXJfZnNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVV29yZCkgbXJwLT5tcl9vZmZzZXQsIG1ycC0+bXJfcHJvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXJwLT5tcl9mbGFncyk7CisKKyAgICAgICAgIFVJbnQgZmxhZ3MgPSBWS0lfTUFQX1BSSVZBVEUgfCBWS0lfTUFQX0ZJWEVEOworICAgICAgICAgaWYgKChtcnAtPm1yX3Byb3QgJiAoVktJX1BST1RfV1JJVEUgfCBWS0lfUFJPVF9FWEVDKSkgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZLSV9QUk9UX0VYRUMpIHsKKyAgICAgICAgICAgIGZsYWdzIHw9IFZLSV9NQVBfVEVYVDsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmbGFncyB8PSBWS0lfTUFQX0lOSVREQVRBOworICAgICAgICAgfQorCisgICAgICAgICAvKiBEZXRlcm1pbmUgaWYgdGhlcmUgd2lsbCBiZSBwYXJ0aWFsbHkgdW51c2VkIHBhZ2UgYWZ0ZXIgZmlsZS1iYXNlZAorICAgICAgICAgICAgbWFwcGluZy4gSWYgc28sIHRoZW4gd2UgbmVlZCB0byB6ZXJvIGl0IGV4cGxpY2l0bHkgYWZ0ZXJ3YXJkcy4gKi8KKyAgICAgICAgIEFkZHIgbWFwcGluZ19lbmQgPSAoQWRkcikgbXJwLT5tcl9hZGRyICsgZmlsZV9zaXplOworICAgICAgICAgU2l6ZVQgemVyb2VkX3NpemUgPSBWR19QR1JPVU5EVVAobWFwcGluZ19lbmQpIC0gbWFwcGluZ19lbmQ7CisgICAgICAgICBCb29sIG1wcm90ZWN0X25lZWRlZCA9IEZhbHNlOworICAgICAgICAgaWYgKCh6ZXJvZWRfc2l6ZSA+IDApICYmICgocHJvdCAmIFZLSV9QUk9UX1dSSVRFKSA9PSAwKSkgeworICAgICAgICAgICAgcHJvdCB8PSBWS0lfUFJPVF9XUklURTsKKyAgICAgICAgICAgIG1wcm90ZWN0X25lZWRlZCA9IFRydWU7CisgICAgICAgICB9CisKKyAgICAgICAgIGlmIChlaGRyLT5lX3R5cGUgPT0gVktJX0VUX0VYRUMpIHsKKyAgICAgICAgICAgIC8qIE5vdyBjaGVjayBpZiB0aGUgcmVxdWVzdGVkIGFkZHJlc3Mgc3BhY2UgaXMgYXZhaWxhYmxlLiAqLworICAgICAgICAgICAgaWYgKCFWR18oYW1faXNfZnJlZV9vcl9yZXN2bikoKEFkZHIpIG1ycC0+bXJfYWRkciwgbXJwLT5tcl9tc2l6ZSkpIHsKKyAgICAgICAgICAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX3Byb2Nlc3NfcGhkcnM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVlc3RlZCBzZWdtZW50IGF0ICUjbHggd2l0aCBzaXplIG9mICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiUjbHggYnl0ZXMgaXMgbm90IGF2YWlsYWJsZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIG1ycC0+bXJfYWRkciwgKFVXb3JkKSBtcnAtPm1yX21zaXplKTsKKyAgICAgICAgICAgICAgIHJlcyA9IFZHXyhta19TeXNSZXNfRXJyb3IpKFZLSV9FQUREUklOVVNFKTsKKyAgICAgICAgICAgICAgIGdvdG8gbW1hcF9lcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKworICAgICAgICAgaWYgKGZpbGVfc2l6ZSA+IDApIHsKKyAgICAgICAgICAgIHJlcyA9IFZHXyhhbV9tbWFwX2ZpbGVfZml4ZWRfY2xpZW50X2ZsYWdzKSgoQWRkcikgbXJwLT5tcl9hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9zaXplLCBwcm90LCBmbGFncywgZmQsIGZpbGVfb2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChzcl9pc0Vycm9yKHJlcykpIHsKKyAgICAgICAgICAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX3Byb2Nlc3NfcGhkcnM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1tYXAgZmFpbGVkOiBhZGRyPSUjbHggc2l6ZT0lI2x4IHByb3Q9JSN4ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZsYWdzPSUjeCBmZD0lZCBmaWxlIG9mZnNldD0lI2xseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIG1ycC0+bXJfYWRkciwgZmlsZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90LCBmbGFncywgZmQsIGZpbGVfb2Zmc2V0KTsKKyAgICAgICAgICAgICAgIGdvdG8gbW1hcF9lcnJvcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1zb2xhcmlzIiwgIlBSRShzeXNfbW1hcG9iaik6IG5ldyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWdtZW50OiB2YWRkcj0lI2x4IHNpemU9JSNseCBwcm90PSUjeCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmbGFncz0lI3ggZmQ9JWQgZmlsZSBvZmZzZXQ9JSNsbHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSBtcnAtPm1yX2FkZHIsIGZpbGVfc2l6ZSwgbXJwLT5tcl9wcm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgZmQsIGZpbGVfb2Zmc2V0KTsKKyAgICAgICAgIH0KKworICAgICAgICAgaWYgKHplcm9lZF9zaXplID4gMCkgeworICAgICAgICAgICAgLyogTm93IHplcm8gb3V0IHRoZSBlbmQgb2YgcGFydGlhbGx5IHVzZWQgcGFnZS4gKi8KKyAgICAgICAgICAgIFZHXyhtZW1zZXQpKCh2b2lkICopIG1hcHBpbmdfZW5kLCAwLCB6ZXJvZWRfc2l6ZSk7CisgICAgICAgICAgICBpZiAobXByb3RlY3RfbmVlZGVkKSB7CisgICAgICAgICAgICAgICBwcm90ICY9IH5WS0lfUFJPVF9XUklURTsKKyAgICAgICAgICAgICAgIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoU1lTX21wcm90ZWN0LCAoQWRkcikgbXJwLT5tcl9hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3NpemUsIHByb3QpOworICAgICAgICAgICAgICAgaWYgKHNyX2lzRXJyb3IocmVzKSkgeworICAgICAgICAgICAgICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1tYXBvYmpfcHJvY2Vzc19waGRyczogbXByb3RlY3QgZmFpbGVkOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZGRyPSUjbHggc2l6ZT0lI2x4IHByb3Q9JSN4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIG1ycC0+bXJfYWRkciwgZmlsZV9zaXplLCBwcm90KTsKKyAgICAgICAgICAgICAgICAgIC8qIE1hcHBpbmcgZm9yIHRoaXMgc2VnbWVudCB3YXMgYWxyZWFkeSBlc3RhYmxpc2hlZC4gKi8KKyAgICAgICAgICAgICAgICAgIGlkeCArPSAxOworICAgICAgICAgICAgICAgICAgZ290byBtbWFwX2Vycm9yOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorCisgICAgICAgICBpZiAoZmlsZV9zaXplID4gMCkgeworICAgICAgICAgICAgTUxfKG5vdGlmeV9jb3JlX2FuZF90b29sX29mX21tYXApKChBZGRyKSBtcnAtPm1yX2FkZHIsIGZpbGVfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90LCBmbGFncywgZmQsIGZpbGVfb2Zmc2V0KTsKKyAgICAgICAgIH0KKworICAgICAgICAgLyogUGFnZShzKSBhZnRlciB0aGUgbWFwcGluZyBiYWNrZWQgdXAgYnkgdGhlIGZpbGUgYXJlIHBhcnQgb2YgQlNTLgorICAgICAgICAgICAgVGhleSBuZWVkIHRvIGJlIG1tYXAnZWQgb3ZlciB3aXRoIGNvcnJlY3QgZmxhZ3MgYW5kIHdpbGwgYmUKKyAgICAgICAgICAgIGltcGxpY2l0bHkgemVyb2VkLiAqLworICAgICAgICAgbWFwcGluZ19lbmQgPSBWR19QR1JPVU5EVVAobXJwLT5tcl9hZGRyICsgbXJwLT5tcl9tc2l6ZSk7CisgICAgICAgICBBZGRyIHBhZ2VfZW5kID0gVkdfUEdST1VORFVQKG1ycC0+bXJfYWRkciArIGZpbGVfc2l6ZSk7CisgICAgICAgICB2Z19hc3NlcnQobWFwcGluZ19lbmQgPj0gcGFnZV9lbmQpOworICAgICAgICAgemVyb2VkX3NpemUgPSBtYXBwaW5nX2VuZCAtIHBhZ2VfZW5kOworICAgICAgICAgaWYgKHplcm9lZF9zaXplID4gMCkgeworICAgICAgICAgICAgZmxhZ3MgPSBWS0lfTUFQX0ZJWEVEIHwgVktJX01BUF9QUklWQVRFIHwgVktJX01BUF9BTk9OWU1PVVM7CisgICAgICAgICAgICByZXMgPSBWR18oYW1fbW1hcF9hbm9uX2ZpeGVkX2NsaWVudCkocGFnZV9lbmQsIHplcm9lZF9zaXplLCBwcm90KTsKKyAgICAgICAgICAgIGlmIChzcl9pc0Vycm9yKHJlcykpIHsKKyAgICAgICAgICAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX3Byb2Nlc3NfcGhkcnM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1tYXBfYW5vbiBmYWlsZWQ6IGFkZHI9JSNseCBzaXplPSUjbHggIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvdD0lI3hcbiIsIHBhZ2VfZW5kLCB6ZXJvZWRfc2l6ZSwgcHJvdCk7CisgICAgICAgICAgICAgICBpZHggKz0gMTsgLyogbWFwcGluZyBmb3IgdGhpcyBzZWdtZW50IHdhcyBhbHJlYWR5IGVzdGFibGlzaGVkICovCisgICAgICAgICAgICAgICBnb3RvIG1tYXBfZXJyb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMSwgInN5c3dyYXAtc29sYXJpcyIsICJQUkUoc3lzX21tYXBvYmopOiBuZXcgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5vbnltb3VzIHNlZ21lbnQgKEJTUyk6IHZhZGRyPSUjbHggc2l6ZT0lI2x4ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3Q9JSN4XG4iLCBwYWdlX2VuZCwgemVyb2VkX3NpemUsIHByb3QpOworICAgICAgICAgICAgTUxfKG5vdGlmeV9jb3JlX2FuZF90b29sX29mX21tYXApKHBhZ2VfZW5kLCB6ZXJvZWRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90LCBmbGFncywgLTEsIDApOworICAgICAgICAgfQorCisgICAgICAgICBWR18oZGlfbm90aWZ5X21tYXApKChBZGRyKSBtcnAtPm1yX2FkZHIsIEZhbHNlIC8qYWxsb3dfU2tGaWxlViovLCBmZCk7CisKKyAgICAgICAgICplbGVtZW50cyArPSAxOworICAgICAgICAgdmdfYXNzZXJ0KCplbGVtZW50cyA8PSBzZWdtZW50cyk7CisgICAgICB9CisgICB9CisKKyAgIGlmICgoZWhkci0+ZV90eXBlID09IFZLSV9FVF9FWEVDKSAmJiAoIWJya19zZWdtZW50X2VzdGFibGlzaGVkKSkgeworICAgICAgdmdfYXNzZXJ0KFZHXyhicmtfYmFzZSkgPT0gVkdfKGJya19saW1pdCkpOworICAgICAgdmdfYXNzZXJ0KFZHXyhicmtfYmFzZSkgPT0gLTEpOworICAgICAgVkdfKGJya19iYXNlKSA9IFZHXyhicmtfbGltaXQpID0gZWxmYnJrOworCisgICAgICBpZiAoIVZHXyhzZXR1cF9jbGllbnRfZGF0YXNlZykoKSkgeworICAgICAgICAgVkdfKHVtc2cpKCJDYW5ub3QgbWFwIG1lbW9yeSB0byBpbml0aWFsaXplIGJyayBzZWdtZW50IGluIHRocmVhZCAjJWQgIgorICAgICAgICAgICAgICAgICAgICJhdCAlI2x4XG4iLCB0aWQsIFZHXyhicmtfYmFzZSkpOworICAgICAgICAgcmVzID0gVkdfKG1rX1N5c1Jlc19FcnJvcikoVktJX0VOT01FTSk7CisgICAgICAgICBnb3RvIG1tYXBfZXJyb3I7CisgICAgICB9CisKKyAgICAgIFZHXyh0cmFja19jbGllbnRfZGF0YXNlZykodGlkKTsKKyAgIH0KKworICAgLyogUmVzdG9yZSBWR18oY2xvX3Nhbml0eV9sZXZlbCkuIFRoZSBzY2hlZHVsZXIgd2lsbCBwZXJmb3JtIHRoZSBhc3BhY2VtZ3IKKyAgICAgIHNhbml0eSBjaGVjayBhZnRlciB0aGUgc3lzY2FsbC4gKi8KKyAgIFZHXyhjbG9fc2FuaXR5X2xldmVsKSA9IHNhbml0eV9sZXZlbDsKKworICAgcmV0dXJuIFZHXyhta19TeXNSZXNfU3VjY2VzcykoMCk7CisKK21tYXBfZXJyb3I6CisgICBmb3IgKGkgPSBpZHggLSAxOyBpID4gMDsgaS0tKSB7CisgICAgICBCb29sIGRpc2NhcmRfdHJhbnNsYXRpb25zOworICAgICAgQWRkciBhZGRyID0gKEFkZHIpIHN0b3JhZ2VbaV0ubXJfYWRkcjsKKworICAgICAgVkdfKGFtX211bm1hcF9jbGllbnQpKCZkaXNjYXJkX3RyYW5zbGF0aW9ucywgYWRkciwgc3RvcmFnZVtpXS5tcl9tc2l6ZSk7CisgICAgICBNTF8obm90aWZ5X2NvcmVfYW5kX3Rvb2xfb2ZfbXVubWFwKShhZGRyLCBzdG9yYWdlW2ldLm1yX21zaXplKTsKKyAgIH0KKyAgICplbGVtZW50cyA9IDA7CisgICByZXR1cm4gcmVzOworCisjdW5kZWYgQURWQU5DRV9QSERSCit9CisKK3N0YXRpYyBTeXNSZXMgbW1hcG9ial9pbnRlcnByZXQoVGhyZWFkSWQgdGlkLCBJbnQgZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZraV9tbWFwb2JqX3Jlc3VsdF90ICpzdG9yYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2a2lfdWludF90ICplbGVtZW50cykKK3sKKyAgIFN5c1JlcyByZXM7CisKKyAgIHN0cnVjdCB2Z19zdGF0IHN0YXRzOworICAgaWYgKFZHXyhmc3RhdCkoZmQsICZzdGF0cykgIT0gMCkgeworICAgICAgcmV0dXJuIFZHXyhta19TeXNSZXNfRXJyb3IpKFZLSV9FQkFERik7CisgICB9CisKKyAgIGlmIChzdGF0cy5zaXplIDwgc2l6ZW9mKFZLSV9FU1ooRWhkcikpKSB7CisgICAgICBpZiAoVkdfKGNsb190cmFjZV9zeXNjYWxscykpCisgICAgICAgICBWR18oZGVidWdMb2cpKDMsICJzeXN3cmFwLXNvbGFyaXMiLCAibW1hcG9ial9pbnRlcnByZXQ6IGluc3VmZmljaWVudCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlIHNpemUgKCVsbGQpXG4iLCBzdGF0cy5zaXplKTsKKyAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKShWS0lfRU5PVFNVUCk7CisgICB9CisKKyAgIC8qIEFsaWduIHRoZSBoZWFkZXIgYnVmZmVyIGFwcHJvcHJpYXRlbHkuICovCisgICB2a2lfdWxvbmdfdCBsaGVhZGVyW3NpemVvZihWS0lfRVNaKEVoZHIpKSAvIHNpemVvZih2a2lfdWxvbmdfdCkgKyAxXTsKKyAgIEhDaGFyICpoZWFkZXIgPSAoSENoYXIgKikgJmxoZWFkZXI7CisKKyAgIHJlcyA9IFZHXyhwcmVhZCkoZmQsIGhlYWRlciwgc2l6ZW9mKFZLSV9FU1ooRWhkcikpLCAwKTsKKyAgIGlmIChzcl9pc0Vycm9yKHJlcykpIHsKKyAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX2ludGVycHJldDogcmVhZCBvZiBFTEYgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVyIGZhaWxlZFxuIik7CisgICAgICByZXR1cm4gcmVzOworICAgfSBlbHNlIGlmIChzcl9SZXMocmVzKSAhPSBzaXplb2YoVktJX0VTWihFaGRyKSkpIHsKKyAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX2ludGVycHJldDogcmVhZCBvZiBFTEYgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVyIGZhaWxlZCAtIG9ubHkgJWx1IGJ5dGVzIG91dCBvZiAlbHVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNyX1JlcyhyZXMpLCAoVVdvcmQpIHNpemVvZihWS0lfRVNaKEVoZHIpKSk7CisgICAgICByZXR1cm4gVkdfKG1rX1N5c1Jlc19FcnJvcikoVktJX0VOT1RTVVApOworICAgfQorCisgICAvKiBWZXJpZnkgZmlsZSB0eXBlIGlzIEVMRi4gKi8KKyAgIGlmICgoaGVhZGVyW1ZLSV9FSV9NQUcwXSAhPSBWS0lfRUxGTUFHMCkgfHwKKyAgICAgICAoaGVhZGVyW1ZLSV9FSV9NQUcxXSAhPSBWS0lfRUxGTUFHMSkgfHwKKyAgICAgICAoaGVhZGVyW1ZLSV9FSV9NQUcyXSAhPSBWS0lfRUxGTUFHMikgfHwKKyAgICAgICAoaGVhZGVyW1ZLSV9FSV9NQUczXSAhPSBWS0lfRUxGTUFHMykpIHsKKyAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX2ludGVycHJldDogRUxGIGhlYWRlciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXNzaW5nIG1hZ2ljXG4iKTsKKyAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKShWS0lfRU5PVFNVUCk7CisgICB9CisKKyAgIGlmIChoZWFkZXJbVktJX0VJX0NMQVNTXSAhPSBWR19FTEZfQ0xBU1MpIHsKKyAgICAgIGlmIChWR18oY2xvX3RyYWNlX3N5c2NhbGxzKSkKKyAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMywgInN5c3dyYXAtc29sYXJpcyIsICJtbWFwb2JqX2ludGVycHJldDogRUxGIGNsYXNzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pc21hdGNoICgldSB2cyAldSlcbiIsIGhlYWRlcltWS0lfRUlfQ0xBU1NdLAorICAgICAgICAgICAgICAgICAgICAgICAgICBWR19FTEZfQ0xBU1MpOworICAgICAgcmV0dXJuIFZHXyhta19TeXNSZXNfRXJyb3IpKFZLSV9FTk9UU1VQKTsKKyAgIH0KKworICAgVktJX0VTWihFaGRyKSAqZWhkciA9IChWS0lfRVNaKEVoZHIpICopIGhlYWRlcjsKKyAgIGlmICgoZWhkci0+ZV90eXBlICE9IFZLSV9FVF9FWEVDKSAmJiAoZWhkci0+ZV90eXBlICE9IFZLSV9FVF9EWU4pKSB7CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIG1tYXBvYmogY2FsbCB3aXRoIEVMRiB0eXBlICV1LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZWhkci0+ZV90eXBlKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICByZXR1cm4gcmVzOworICAgfQorCisgICBpZiAoZWhkci0+ZV9waG51bSA9PSBWS0lfUE5fWE5VTSkgeworICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBtbWFwb2JqIGNhbGwgd2l0aCBudW1iZXIgb2YgRUxGICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAicHJvZ3JhbSBoZWFkZXJzID09IFBOX1hOVU0iKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICByZXR1cm4gcmVzOworICAgfQorCisgICAvKiBDaGVjayBhbGlnbm1lbnQuICovCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBpZiAoIVZHX0lTXzRfQUxJR05FRChlaGRyLT5lX3BoZW50c2l6ZSkpIHsKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBpZiAoIVZHX0lTXzhfQUxJR05FRChlaGRyLT5lX3BoZW50c2l6ZSkpIHsKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyNlbmRpZgorICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwgIm1tYXBvYmpfaW50ZXJwcmV0OiBFTEYgaGVhZGVyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInBoZW50c2l6ZSBub3QgYWxpZ25lZCBwcm9wZXJseSAoJXUpXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBlaGRyLT5lX3BoZW50c2l6ZSk7CisgICAgICByZXR1cm4gVkdfKG1rX1N5c1Jlc19FcnJvcikoVktJX0VOT1RTVVApOworICAgfQorCisgICBTaXplVCBwaGRyc19zaXplID0gZWhkci0+ZV9waG51bSAqIGVoZHItPmVfcGhlbnRzaXplOworICAgaWYgKHBoZHJzX3NpemUgPT0gMCkgeworICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwgIm1tYXBvYmpfaW50ZXJwcmV0OiBubyBFTEYgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvZ3JhbSBoZWFkZXJzXG4iKTsKKyAgICAgIHJldHVybiBWR18obWtfU3lzUmVzX0Vycm9yKShWS0lfRU5PVFNVUCk7CisgICB9CisKKyAgIFZLSV9FU1ooUGhkcikgKnBoZHJzID0gVkdfKG1hbGxvYykoInN5c3dyYXAubWkuMSIsIHBoZHJzX3NpemUpOworICAgcmVzID0gVkdfKHByZWFkKShmZCwgcGhkcnMsIHBoZHJzX3NpemUsIGVoZHItPmVfcGhvZmYpOworICAgaWYgKHNyX2lzRXJyb3IocmVzKSkgeworICAgICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgICAgVkdfKGRlYnVnTG9nKSgzLCAic3lzd3JhcC1zb2xhcmlzIiwgIm1tYXBvYmpfaW50ZXJwcmV0OiByZWFkIG9mIEVMRiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9ncmFtIGhlYWRlcnMgZmFpbGVkXG4iKTsKKyAgICAgIFZHXyhmcmVlKShwaGRycyk7CisgICAgICByZXR1cm4gVkdfKG1rX1N5c1Jlc19FcnJvcikoVktJX0VOT1RTVVApOworICAgfSBlbHNlIGlmIChzcl9SZXMocmVzKSAhPSBwaGRyc19zaXplKSB7CisgICAgICBpZiAoVkdfKGNsb190cmFjZV9zeXNjYWxscykpCisgICAgICAgICBWR18oZGVidWdMb2cpKDMsICJzeXN3cmFwLXNvbGFyaXMiLCAibW1hcG9ial9pbnRlcnByZXQ6IHJlYWQgb2YgRUxGICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2dyYW0gaGVhZGVycyBmYWlsZWQgLSBvbmx5ICVsdSBieXRlcyBvdXQgb2YgJWx1XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzcl9SZXMocmVzKSwgcGhkcnNfc2l6ZSk7CisgICAgICBWR18oZnJlZSkocGhkcnMpOworICAgICAgcmV0dXJuIFZHXyhta19TeXNSZXNfRXJyb3IpKFZLSV9FTk9UU1VQKTsKKyAgIH0KKworICAgaWYgKFZHXyhjbG9fdHJhY2Vfc3lzY2FsbHMpKQorICAgICAgVkdfKGRlYnVnTG9nKSgyLCAic3lzd3JhcC1zb2xhcmlzIiwgIm1tYXBvYmpfaW50ZXJwcmV0OiAldSBFTEYgIgorICAgICAgICAgICAgICAgICAgICAgICAicHJvZ3JhbSBoZWFkZXJzIHdpdGggdG90YWwgc2l6ZSBvZiAlbHUgYnl0ZXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGVoZHItPmVfcGhudW0sIHBoZHJzX3NpemUpOworCisgICAvKiBOb3cgcHJvY2VzcyB0aGUgcHJvZ3JhbSBoZWFkZXJzLiAqLworICAgcmVzID0gbW1hcG9ial9wcm9jZXNzX3BoZHJzKHRpZCwgZmQsIHN0b3JhZ2UsIGVsZW1lbnRzLCBlaGRyLCBwaGRycyk7CisgICBWR18oZnJlZSkocGhkcnMpOworICAgcmV0dXJuIHJlczsKK30KKworUFJFKHN5c19tbWFwb2JqKQoreworICAgLyogaW50IG1tYXBvYmooaW50IGZkLCB1aW50X3QgZmxhZ3MsIG1tYXBvYmpfcmVzdWx0X3QgKnN0b3JhZ2UsCisgICAgICAgICAgICAgICAgICB1aW50X3QgKmVsZW1lbnRzLCB2b2lkICphcmcpOyAqLworICAgUFJJTlQoInN5c19tbWFwb2JqICggJWxkLCAlI2x4LCAlI2x4LCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMywKKyAgICAgICAgIEFSRzQsIEFSRzUpOworICAgUFJFX1JFR19SRUFENShsb25nLCAibW1hcG9iaiIsIGludCwgZmQsIHZraV91aW50X3QsIGZsYWdzLAorICAgICAgICAgICAgICAgICBtbWFwb2JqX3Jlc3VsdF90ICosIHN0b3JhZ2UsIHVpbnRfdCAqLCBlbGVtZW50cywKKyAgICAgICAgICAgICAgICAgdm9pZCAqLCBhcmcpOworCisgICBQUkVfTUVNX1JFQUQoIm1tYXBvYmooZWxlbWVudHMpIiwgQVJHNCwgc2l6ZW9mKHZraV91aW50X3QpKTsKKyAgIC8qUFJFX01FTV9XUklURSgibW1hcG9iaihlbGVtZW50cykiLCBBUkc0LCBzaXplb2YodmtpX3VpbnRfdCkpOyovCisgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkKilBUkc0LCBzaXplb2YodmtpX3VpbnRfdCkpKSB7CisgICAgICB2a2lfdWludF90ICp1ID0gKHZraV91aW50X3QqKUFSRzQ7CisgICAgICBQUkVfTUVNX1dSSVRFKCJtbWFwb2JqKHN0b3JhZ2UpIiwgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgKnUgKiBzaXplb2YodmtpX21tYXBvYmpfcmVzdWx0X3QpKTsKKyAgIH0KKworICAgaWYgKEFSRzIgJiBWS0lfTU1PQkpfUEFERElORykKKyAgICAgIFBSRV9NRU1fUkVBRCgibW1hcG9iaihhcmcpIiwgQVJHNSwgc2l6ZW9mKHZraV9zaXplX3QpKTsKKworICAgLyogQmUgc3RyaWN0LiAqLworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgIm1tYXBvYmoiLCB0aWQsIEZhbHNlKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICByZXR1cm47CisgICB9CisKKyAgIC8qIFdlIGNhbm5vdCBhZHZpc2UgbW1hcG9iaiBhYm91dCBkZXNpcmVkIGFkZHJlc3MoZXMpLiBVbmZvcnR1bmF0ZWx5CisgICAgICBrZXJuZWwgcGxhY2VzIG1hcHBpbmdzIGZyb20gbW1hcG9iaiBhdCB0aGUgZW5kIG9mIHByb2Nlc3MgYWRkcmVzcworICAgICAgc3BhY2UsIGRlZmVhdGluZyBtZW1jaGVjaydzIG9wdGltaXplZCBmYXN0IDItbGV2ZWwgYXJyYXkgYWxnb3JpdGhtLgorICAgICAgU28gd2UgbmVlZCB0byBlbXVsYXRlIHdoYXQgbW1hcG9iaiBkb2VzIGluIHRoZSBrZXJuZWwuICovCisKKyAgIC8qIFNhbml0eSBjaGVjayBvbiBwYXJhbWV0ZXJzLiAqLworICAgaWYgKChBUkcyICYgflZLSV9NTU9CSl9BTExfRkxBR1MpICE9IDApIHsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUlOVkFMKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgaWYgKCFNTF8oc2FmZV90b19kZXJlZikoKHZvaWQgKikgQVJHNCwgc2l6ZW9mKHZraV91aW50X3QpKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FRkFVTFQpOworICAgICAgcmV0dXJuOworICAgfQorICAgdmtpX3VpbnRfdCAqZWxlbWVudHMgPSAodmtpX3VpbnRfdCAqKSBBUkc0OworCisgICBpZiAoKmVsZW1lbnRzID4gMCkgeworICAgICAgaWYgKCFNTF8oc2FmZV90b19kZXJlZikoKHZvaWQgKikgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICplbGVtZW50cyAqIHNpemVvZih2a2lfbW1hcG9ial9yZXN1bHRfdCkpKSB7CisgICAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VGQVVMVCk7CisgICAgICAgICByZXR1cm47CisgICAgICB9CisgICB9CisKKyAgIC8qIEZvciBub3csIHN1cHBvcnRlZCBpcyBvbmx5IE1NT0JKX0lOVEVSUFJFVCBhbmQgbm8gTU1PQkpfUEFERElORy4gKi8KKyAgIGlmIChBUkcyICE9IFZLSV9NTU9CSl9JTlRFUlBSRVQpIHsKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgbW1hcG9iaiBjYWxsIHdpdGggZmxhZ3MgJWx1LiIsIEFSRzIpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgU3lzUmVzIHJlcyA9IG1tYXBvYmpfaW50ZXJwcmV0KHRpZCwgKEludCkgQVJHMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmtpX21tYXBvYmpfcmVzdWx0X3QgKikgQVJHMywgZWxlbWVudHMpOworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhyZXMpOworCisgICBpZiAoIXNyX2lzRXJyb3IocmVzKSkgeworICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHNCwgc2l6ZW9mKHZraV91aW50X3QpKTsKKworICAgICAgVUludCBpZHg7CisgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8ICoodmtpX3VpbnRfdCAqKSBBUkc0OyBpZHgrKykgeworICAgICAgICAgdmtpX21tYXBvYmpfcmVzdWx0X3QgKm1ycCA9ICYoKHZraV9tbWFwb2JqX3Jlc3VsdF90ICopIEFSRzMpW2lkeF07CisgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKG1ycC0+bXJfYWRkcik7CisgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKG1ycC0+bXJfbXNpemUpOworICAgICAgICAgUE9TVF9GSUVMRF9XUklURShtcnAtPm1yX2ZzaXplKTsKKyAgICAgICAgIFBPU1RfRklFTERfV1JJVEUobXJwLT5tcl9wcm90KTsKKyAgICAgICAgIFBPU1RfRklFTERfV1JJVEUobXJwLT5tcl9mbGFncyk7CisgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKG1ycC0+bXJfb2Zmc2V0KTsKKyAgICAgIH0KKyAgIH0KK30KKworUFJFKHN5c19tZW1jbnRsKQoreworICAgLyogaW50IG1lbWNudGwoY2FkZHJfdCBhZGRyLCBzaXplX3QgbGVuLCBpbnQgY21kLCBjYWRkcl90IGFyZywKKyAgICAgICAgICAgICAgICAgIGludCBhdHRyLCBpbnQgbWFzayk7ICovCisgICBQUklOVCgic3lzX21lbWNudGwgKCAlI2x4LCAlI2x4LCAlbGQsICUjbHgsICUjbHgsICUjbHggKSIsIEFSRzEsIEFSRzIsCisgICAgICAgICBTQVJHMywgQVJHNCwgQVJHNSwgQVJHNik7CisgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJtZW1jbnRsIiwgdm9pZCAqLCBhZGRyLCB2a2lfc2l6ZV90LCBsZW4sIGludCwgY21kLAorICAgICAgICAgICAgICAgICB2b2lkICosIGFyZywgaW50LCBhdHRyLCBpbnQsIG1hc2spOworCisgICBpZiAoQVJHMyAhPSBWS0lfTUNfTE9DS0FTICYmIEFSRzMgIT0gVktJX01DX1VOTE9DS0FTICYmCisgICAgICAgIU1MXyh2YWxpZF9jbGllbnRfYWRkcikoQVJHMSwgQVJHMiwgdGlkLCAibWVtY250bCIpKSB7CisgICAgICAvKiBNQ19MT0NLQVMgYW5kIE1DX1VOTE9DS0FTIHdvcmsgb24gdGhlIGNvbXBsZXRlIGFkZHJlc3Mgc3BhY2UgdGh1cyB3ZQorICAgICAgICAgZG9uJ3QgY2hlY2sgdGhlIGFkZHJlc3MgcmFuZ2UgdmFsaWRpdHkgaWYgdGhlc2UgY29tbWFuZHMgYXJlCisgICAgICAgICByZXF1ZXN0ZWQuICovCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VOT01FTSk7CisgICAgICByZXR1cm47CisgICB9CisKKyAgIGlmIChBUkczID09IFZLSV9NQ19IQVRfQURWSVNFKQorICAgICAgUFJFX01FTV9SRUFEKCJtZW1jbnRsKGFyZykiLCBBUkc0LCBzaXplb2Yoc3RydWN0IHZraV9tZW1jbnRsX21oYSkpOworfQorCitQUkUoc3lzX2dldHBtc2cpCit7CisgICAvKiBpbnQgZ2V0cG1zZyhpbnQgZmlsZGVzLCBzdHJ1Y3Qgc3RyYnVmICpjdGxwdHIsIHN0cnVjdCBzdHJidWYgKmRhdGFwdHIsCisgICAgICAgICAgICAgICAgICBpbnQgKmJhbmRwLCBpbnQgKmZsYWdzcCk7ICovCisgICBzdHJ1Y3QgdmtpX3N0cmJ1ZiAqY3RybHB0ciA9IChzdHJ1Y3QgdmtpX3N0cmJ1ZiAqKUFSRzI7CisgICBzdHJ1Y3QgdmtpX3N0cmJ1ZiAqZGF0YXB0ciA9IChzdHJ1Y3QgdmtpX3N0cmJ1ZiAqKUFSRzM7CisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfZ2V0cG1zZyAoICVsZCwgJSNseCwgJSNseCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsCisgICAgICAgICBBUkc0LCBBUkc1KTsKKyAgIFBSRV9SRUdfUkVBRDUobG9uZywgImdldHBtc2ciLCBpbnQsIGZpbGRlcywgc3RydWN0IHZraV9zdHJidWYgKiwgY3RscHRyLAorICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3N0cmJ1ZiAqLCBkYXRhcHRyLCBpbnQgKiwgYmFuZHAsIGludCAqLCBmbGFnc3ApOworICAgaWYgKGN0cmxwdHIpIHsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJnZXRwbXNnKGN0cmxwdHItPm1heGxlbikiLCBjdHJscHRyLT5tYXhsZW4pOworICAgICAgUFJFX0ZJRUxEX1dSSVRFKCJnZXRwbXNnKGN0cmxwdHItPmxlbikiLCBjdHJscHRyLT5sZW4pOworICAgICAgUFJFX0ZJRUxEX1JFQUQoImdldHBtc2coY3RybHB0ci0+YnVmKSIsIGN0cmxwdHItPmJ1Zik7CisgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkKilBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdHJidWYpKQorICAgICAgICAgICYmIGN0cmxwdHItPm1heGxlbiA+IDApCisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJnZXRwbXNnKGN0cmxwdHItPmJ1ZikiLCAoQWRkciljdHJscHRyLT5idWYsCisgICAgICAgICAgICAgICAgICAgICAgIGN0cmxwdHItPm1heGxlbik7CisgICB9CisgICBpZiAoZGF0YXB0cikgeworICAgICAgUFJFX0ZJRUxEX1JFQUQoImdldHBtc2coZGF0YXB0ci0+bWF4bGVuKSIsIGRhdGFwdHItPm1heGxlbik7CisgICAgICBQUkVfRklFTERfV1JJVEUoImdldHBtc2coZGF0YXB0ci0+bGVuKSIsIGRhdGFwdHItPmxlbik7CisgICAgICBQUkVfRklFTERfUkVBRCgiZ2V0cG1zZyhkYXRhcHRyLT5idWYpIiwgZGF0YXB0ci0+YnVmKTsKKyAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoKHZvaWQqKUFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3N0cmJ1ZikpCisgICAgICAgICAgJiYgZGF0YXB0ci0+bWF4bGVuID4gMCkKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoImdldHBtc2coZGF0YXB0ci0+YnVmKSIsIChBZGRyKWRhdGFwdHItPmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgZGF0YXB0ci0+bWF4bGVuKTsKKyAgIH0KKyAgIFBSRV9NRU1fUkVBRCgiZ2V0cG1zZyhiYW5kcCkiLCBBUkc0LCBzaXplb2YoaW50KSk7CisgICAvKlBSRV9NRU1fV1JJVEUoImdldHBtc2coYmFuZHApIiwgQVJHNCwgc2l6ZW9mKGludCkpOyovCisgICBQUkVfTUVNX1JFQUQoImdldHBtc2coZmxhZ3NwKSIsIEFSRzUsIHNpemVvZihpbnQpKTsKKyAgIC8qUFJFX01FTV9XUklURSgiZ2V0cG1zZyhmbGFnc3ApIiwgQVJHNSwgc2l6ZW9mKGludCkpOyovCisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJnZXRwbXNnIiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUE9TVChzeXNfZ2V0cG1zZykKK3sKKyAgIHN0cnVjdCB2a2lfc3RyYnVmICpjdHJscHRyID0gKHN0cnVjdCB2a2lfc3RyYnVmICopQVJHMjsKKyAgIHN0cnVjdCB2a2lfc3RyYnVmICpkYXRhcHRyID0gKHN0cnVjdCB2a2lfc3RyYnVmICopQVJHMzsKKworICAgaWYgKGN0cmxwdHIgJiYgY3RybHB0ci0+bGVuID4gMCkKKyAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKWN0cmxwdHItPmJ1ZiwgY3RybHB0ci0+bGVuKTsKKyAgIGlmIChkYXRhcHRyICYmIGRhdGFwdHItPmxlbiA+IDApCisgICAgICBQT1NUX01FTV9XUklURSgoQWRkcilkYXRhcHRyLT5idWYsIGRhdGFwdHItPmxlbik7CisgICBQT1NUX01FTV9XUklURShBUkc0LCBzaXplb2YoaW50KSk7CisgICBQT1NUX01FTV9XUklURShBUkc1LCBzaXplb2YoaW50KSk7Cit9CisKK1BSRShzeXNfcHV0cG1zZykKK3sKKyAgIC8qIGludCBwdXRwbXNnKGludCBmaWxkZXMsIGNvbnN0IHN0cnVjdCBzdHJidWYgKmN0bHB0ciwKKyAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzdHJidWYgKmRhdGFwdHIsIGludCBiYW5kLCBpbnQgZmxhZ3MpOyAqLworICAgc3RydWN0IHZraV9zdHJidWYgKmN0cmxwdHIgPSAoc3RydWN0IHZraV9zdHJidWYgKilBUkcyOworICAgc3RydWN0IHZraV9zdHJidWYgKmRhdGFwdHIgPSAoc3RydWN0IHZraV9zdHJidWYgKilBUkczOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3B1dHBtc2cgKCAlbGQsICUjbHgsICUjbHgsICVsZCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQsCisgICAgICAgICBTQVJHNSk7CisgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJwdXRwbXNnIiwgaW50LCBmaWxkZXMsIHN0cnVjdCB2a2lfc3RyYnVmICosIGN0cmxwdHIsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfc3RyYnVmICosIGRhdGFwdHIsIGludCwgYmFuZCwgaW50LCBmbGFncyk7CisgICBpZiAoY3RybHB0cikgeworICAgICAgUFJFX0ZJRUxEX1JFQUQoInB1dHBtc2coY3RybHB0ci0+bGVuKSIsIGN0cmxwdHItPmxlbik7CisgICAgICBQUkVfRklFTERfUkVBRCgicHV0cG1zZyhjdHJscHRyLT5idWYpIiwgY3RybHB0ci0+YnVmKTsKKyAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoKHZvaWQqKUFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0cmJ1ZikpCisgICAgICAgICAgJiYgY3RybHB0ci0+bGVuID4gMCkKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgicHV0cG1zZyhjdHJscHRyLT5idWYpIiwgKEFkZHIpY3RybHB0ci0+YnVmLAorICAgICAgICAgICAgICAgICAgICAgIGN0cmxwdHItPmxlbik7CisgICB9CisgICBpZiAoZGF0YXB0cikgeworICAgICAgUFJFX0ZJRUxEX1JFQUQoInB1dHBtc2coZGF0YXB0ci0+bGVuKSIsIGRhdGFwdHItPmxlbik7CisgICAgICBQUkVfRklFTERfUkVBRCgicHV0cG1zZyhkYXRhcHRyLT5idWYpIiwgZGF0YXB0ci0+YnVmKTsKKyAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoKHZvaWQqKUFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3N0cmJ1ZikpCisgICAgICAgICAgJiYgZGF0YXB0ci0+bGVuID4gMCkKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgicHV0cG1zZyhkYXRhcHRyLT5idWYpIiwgKEFkZHIpZGF0YXB0ci0+YnVmLAorICAgICAgICAgICAgICAgICAgICAgIGRhdGFwdHItPmxlbik7CisgICB9CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJwdXRwbXNnIiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworI2lmIGRlZmluZWQoU09MQVJJU19PTERfU1lTQ0FMTFMpCitQUkUoc3lzX3JlbmFtZSkKK3sKKyAgIC8qIGludCByZW5hbWUoY29uc3QgY2hhciAqZnJvbSwgY29uc3QgY2hhciAqdG8pOyAqLworCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfcmVuYW1lICggJSNseCglcyksICUjbHgoJXMpICkiLAorICAgICAgICAgQVJHMSwgKEhDaGFyICopIEFSRzEsIEFSRzIsIChIQ2hhciAqKSBBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIobG9uZywgInJlbmFtZSIsIGNvbnN0IGNoYXIgKiwgZnJvbSwgY29uc3QgY2hhciAqLCB0byk7CisKKyAgIFBSRV9NRU1fUkFTQ0lJWigicmVuYW1lKGZyb20pIiwgQVJHMSk7CisgICBQUkVfTUVNX1JBU0NJSVooInJlbmFtZSh0bykiLCBBUkcyKTsKK30KKyNlbmRpZiAvKiBTT0xBUklTX09MRF9TWVNDQUxMUyAqLworCitQUkUoc3lzX3VuYW1lKQoreworICAgLyogaW50IHVuYW1lKHN0cnVjdCB1dHNuYW1lICpuYW1lKTsgKi8KKyAgIFBSSU5UKCJzeXNfdW5hbWUgKCAlI2x4ICkiLCBBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEobG9uZywgInVuYW1lIiwgc3RydWN0IHZraV91dHNuYW1lICosIG5hbWUpOworICAgUFJFX01FTV9XUklURSgidW5hbWUobmFtZSkiLCBBUkcxLCBzaXplb2Yoc3RydWN0IHZraV91dHNuYW1lKSk7Cit9CisKK1BPU1Qoc3lzX3VuYW1lKQoreworICAgc3RydWN0IHZraV91dHNuYW1lICpuYW1lID0gKHN0cnVjdCB2a2lfdXRzbmFtZSAqKSBBUkcxOworICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpIG5hbWUtPnN5c25hbWUsIFZHXyhzdHJsZW4pKG5hbWUtPnN5c25hbWUpICsgMSk7CisgICBQT1NUX01FTV9XUklURSgoQWRkcikgbmFtZS0+bm9kZW5hbWUsIFZHXyhzdHJsZW4pKG5hbWUtPm5vZGVuYW1lKSArIDEpOworICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpIG5hbWUtPnJlbGVhc2UsIFZHXyhzdHJsZW4pKG5hbWUtPnJlbGVhc2UpICsgMSk7CisgICBQT1NUX01FTV9XUklURSgoQWRkcikgbmFtZS0+dmVyc2lvbiwgVkdfKHN0cmxlbikobmFtZS0+dmVyc2lvbikgKyAxKTsKKyAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSBuYW1lLT5tYWNoaW5lLCBWR18oc3RybGVuKShuYW1lLT5tYWNoaW5lKSArIDEpOworfQorCitQUkUoc3lzX3NldGVnaWQpCit7CisgICAvKiBpbnQgc2V0ZWdpZChnaWRfdCBlZ2lkKTsgKi8KKyAgIFBSSU5UKCJzeXNfc2V0ZWdpZCAoICVsZCApIiwgU0FSRzEpOworICAgUFJFX1JFR19SRUFEMShsb25nLCAic2V0ZWdpZCIsIHZraV9naWRfdCwgZWdpZCk7Cit9CisKK1BSRShzeXNfc3lzY29uZmlnKQoreworICAgLyogbG9uZyBzeXNjb25mKGludCBuYW1lKTsgKi8KKyAgIFBSSU5UKCJzeXNfc3lzY29uZmlnICggJWxkICkiLCBTQVJHMSk7CisgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJzeXNjb25mIiwgaW50LCBuYW1lKTsKKworICAgaWYgKEFSRzEgPT0gVktJX0NPTkZJR19PUEVOX0ZJTEVTKQorICAgICAgU0VUX1NUQVRVU19TdWNjZXNzKFZHXyhmZF9zb2Z0X2xpbWl0KSk7Cit9CisKK1BSRShzeXNfc3lzdGVtaW5mbykKK3sKKyAgIC8qIGludCBzeXNpbmZvKGludCBjb21tYW5kLCBjaGFyICpidWYsIGxvbmcgY291bnQpOyAqLworICAgUFJJTlQoInN5c19zeXN0ZW1pbmZvICggJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzeXNpbmZvIiwgaW50LCBjb21tYW5kLCBjaGFyICosIGJ1ZiwgbG9uZywgY291bnQpOworCisgICBzd2l0Y2ggKEFSRzEgLypjb21tYW5kKi8pIHsKKyAgIGNhc2UgVktJX1NJX1NZU05BTUU6CisgICBjYXNlIFZLSV9TSV9IT1NUTkFNRToKKyAgIGNhc2UgVktJX1NJX1JFTEVBU0U6CisgICBjYXNlIFZLSV9TSV9WRVJTSU9OOgorICAgY2FzZSBWS0lfU0lfTUFDSElORToKKyAgIGNhc2UgVktJX1NJX0FSQ0hJVEVDVFVSRToKKyAgIGNhc2UgVktJX1NJX0hXX1NFUklBTDoKKyAgIGNhc2UgVktJX1NJX0hXX1BST1ZJREVSOgorICAgY2FzZSBWS0lfU0lfU1JQQ19ET01BSU46CisgICBjYXNlIFZLSV9TSV9QTEFURk9STToKKyAgIGNhc2UgVktJX1NJX0lTQUxJU1Q6CisgICBjYXNlIFZLSV9TSV9ESENQX0NBQ0hFOgorICAgY2FzZSBWS0lfU0lfQVJDSElURUNUVVJFXzMyOgorICAgY2FzZSBWS0lfU0lfQVJDSElURUNUVVJFXzY0OgorICAgY2FzZSBWS0lfU0lfQVJDSElURUNUVVJFX0s6CisgICBjYXNlIFZLSV9TSV9BUkNISVRFQ1RVUkVfTkFUSVZFOgorICAgICAgUFJFX01FTV9XUklURSgic3lzaW5mbyhidWYpIiwgQVJHMiwgQVJHMyk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfU0lfU0VUX0hPU1ROQU1FOgorICAgY2FzZSBWS0lfU0lfU0VUX1NSQ1BfRE9NQUlOOgorICAgICAgUFJFX01FTV9SQVNDSUlaKCJzeXNpbmZvKGJ1ZikiLCBBUkcyKTsKKyAgICAgIGJyZWFrOworCisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBzeXNpbmZvIGNhbGwgd2l0aCBjb21tYW5kICVsZC4iLCBTQVJHMSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BPU1Qoc3lzX3N5c3RlbWluZm8pCit7CisgICBpZiAoQVJHMSAhPSBWS0lfU0lfU0VUX0hPU1ROQU1FICYmIEFSRzEgIT0gVktJX1NJX1NFVF9TUkNQX0RPTUFJTikKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIE1JTihSRVMsIEFSRzMpKTsKK30KKworUFJFKHN5c19zZXRldWlkKQoreworICAgLyogaW50IHNldGV1aWQodWlkX3QgZXVpZCk7ICovCisgICBQUklOVCgic3lzX3NldGV1aWQgKCAlbGQgKSIsIFNBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEobG9uZywgInNldGV1aWQiLCB2a2lfdWlkX3QsIGV1aWQpOworfQorCitQUkUoc3lzX2ZvcmtzeXMpCit7CisgICAvKiBpbnQ2NF90IGZvcmtzeXMoaW50IHN1YmNvZGUsIGludCBmbGFncyk7ICovCisgICBJbnQgZmRzWzJdOworICAgSW50IHJlczsKKyAgIFBSSU5UKCJzeXNfZm9ya3N5cyAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAiZm9ya3N5cyIsIGludCwgc3ViY29kZSwgaW50LCBmbGFncyk7CisKKyAgIGlmIChBUkcxID09IDEpIHsKKyAgICAgIC8qIFN1cHBvcnQgZm9yIGZvcmthbGwoKSByZXF1aXJlcyBjaGFuZ2VzIHRvIHRoZSBiaWcgbG9jayBwcm9jZXNzaW5nCisgICAgICAgICB3aGljaCBhcmUgbm90IHlldCBpbXBsZW1lbnRlZC4gKi8KKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3VwcG9ydCBmb3IgZm9ya2FsbCgpLiIpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgaWYgKEFSRzEgIT0gMCAmJiBBUkcxICE9IDIpIHsKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgZm9ya3N5cyBjYWxsIHdoZXJlIHN1YmNvZGU9JWxkLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgU0FSRzEpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgIH0KKworICAgaWYgKEFSRzEgPT0gMikgeworICAgICAgLyogdmZvcmsoKSBpcyByZXF1ZXN0ZWQuIFRyYW5zbGF0ZSBpdCB0byBhIG5vcm1hbCBmb3JrKCkgYnV0IHdvcmsgYXJvdW5kCisgICAgICAgICBhIHByb2JsZW0gd2l0aCBwb3NpeF9zcGF3bigpIHdoaWNoIHJlbGllcyBvbiB0aGUgcmVhbCB2Zm9yaygpCisgICAgICAgICBiZWhhdmlvdXIuIFNlZSBhIGRlc2NyaXB0aW9uIGluIHZnX3ByZWxvYWRlZC5jIGZvciBkZXRhaWxzLiAqLworICAgICAgcmVzID0gVkdfKHBpcGUpKGZkcyk7CisgICAgICB2Z19hc3NlcnQocmVzID09IDApOworCisgICAgICB2Z19hc3NlcnQoZmRzWzBdICE9IGZkc1sxXSk7CisKKyAgICAgIC8qIE1vdmUgdG8gVmFsZ3JpbmQgZmRzIGFuZCBzZXQgY2xvc2Utb24tZXhlYyBmbGFnIG9uIGJvdGggb2YgdGhlbSAoZG9uZQorICAgICAgICAgYnkgVkdfKHNhZmVfZmQpLiAqLworICAgICAgZmRzWzBdID0gVkdfKHNhZmVfZmQpKGZkc1swXSk7CisgICAgICBmZHNbMV0gPSBWR18oc2FmZV9mZCkoZmRzWzFdKTsKKyAgICAgIHZnX2Fzc2VydChmZHNbMF0gIT0gZmRzWzFdKTsKKworICAgICAgdmdfYXNzZXJ0KFZHXyh2Zm9ya19maWxkZXNfYWRkcikgIT0gTlVMTCk7CisgICAgICB2Z19hc3NlcnQoKlZHXyh2Zm9ya19maWxkZXNfYWRkcikgPT0gLTEpOworICAgICAgKlZHXyh2Zm9ya19maWxkZXNfYWRkcikgPSBmZHNbMF07CisgICB9CisKKyAgIFZHXyhkb19hdGZvcmtfcHJlKSh0aWQpOworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhWR18oZG9fc3lzY2FsbDIpKF9fTlJfZm9ya3N5cywgMCwgQVJHMikpOworCisgICBpZiAoIVNVQ0NFU1MpIHsKKyAgICAgIC8qIHZmb3JrICovCisgICAgICBpZiAoQVJHMSA9PSAyKSB7CisgICAgICAgICBWR18oY2xvc2UpKGZkc1swXSk7CisgICAgICAgICBWR18oY2xvc2UpKGZkc1sxXSk7CisgICAgICB9CisKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgaWYgKFJFU0hJKSB7CisgICAgICBWR18oZG9fYXRmb3JrX2NoaWxkKSh0aWQpOworCisgICAgICAvKiBJZiAtLWNoaWxkLXNpbGVudC1hZnRlci1mb3JrPXllcyB3YXMgc3BlY2lmaWVkLCBzZXQgdGhlIG91dHB1dCBmaWxlCisgICAgICAgICBkZXNjcmlwdG9ycyB0byAnaW1wb3NzaWJsZScgdmFsdWVzLiAgVGhpcyBpcyBub3RpY2VkIGJ5CisgICAgICAgICBzZW5kX2J5dGVzX3RvX2xvZ2dpbmdfc2luaygpIGluIG1fbGliY3ByaW50LmMsIHdoaWNoIGR1bHkgc3RvcHMKKyAgICAgICAgIHdyaXRpbmcgYW55IGZ1cnRoZXIgb3V0cHV0LiAqLworICAgICAgaWYgKFZHXyhjbG9fY2hpbGRfc2lsZW50X2FmdGVyX2ZvcmspKSB7CisgICAgICAgICBpZiAoIVZHXyhsb2dfb3V0cHV0X3NpbmspLmlzX3NvY2tldCkKKyAgICAgICAgICAgIFZHXyhsb2dfb3V0cHV0X3NpbmspLmZkID0gLTE7CisgICAgICAgICBpZiAoIVZHXyh4bWxfb3V0cHV0X3NpbmspLmlzX3NvY2tldCkKKyAgICAgICAgICAgIFZHXyh4bWxfb3V0cHV0X3NpbmspLmZkID0gLTE7CisgICAgICB9CisKKyAgICAgIC8qIHZmb3JrICovCisgICAgICBpZiAoQVJHMSA9PSAyKQorICAgICAgICAgVkdfKGNsb3NlKShmZHNbMV0pOworICAgfQorICAgZWxzZSB7CisgICAgICBWR18oZG9fYXRmb3JrX3BhcmVudCkodGlkKTsKKworICAgICAgLyogUHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvcmsuICovCisgICAgICBQUklOVCgiICAgZm9yazogcHJvY2VzcyAlZCBjcmVhdGVkIGNoaWxkICVkXG4iLCBWR18oZ2V0cGlkKSgpLAorICAgICAgICAgICAgKEludClSRVMpOworCisgICAgICAvKiB2Zm9yayAqLworICAgICAgaWYgKEFSRzEgPT0gMikgeworICAgICAgICAgLyogV2FpdCBmb3IgdGhlIGNoaWxkIHRvIGZpbmlzaCAoZXhlYyBvciBleGl0KS4gKi8KKyAgICAgICAgIFVDaGFyIHc7CisKKyAgICAgICAgIFZHXyhjbG9zZSkoZmRzWzBdKTsKKworICAgICAgICAgcmVzID0gVkdfKHJlYWQpKGZkc1sxXSwgJncsIDEpOworICAgICAgICAgaWYgKHJlcyA9PSAxKQorICAgICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKHcpOworICAgICAgICAgVkdfKGNsb3NlKShmZHNbMV0pOworCisgICAgICAgICAqVkdfKHZmb3JrX2ZpbGRlc19hZGRyKSA9IC0xOworICAgICAgfQorICAgfQorfQorCitQUkUoc3lzX3NpZ3RpbWVkd2FpdCkKK3sKKyAgIC8qIGludCBzaWd0aW1lZHdhaXQoY29uc3Qgc2lnc2V0X3QgKnNldCwgc2lnaW5mb190ICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lc3BlY190ICp0aW1lb3V0KTsgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgUFJJTlQoInN5c19zaWd0aW1lZHdhaXQgKCAlI2x4LCAlI2x4LCAlI2x4ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNpZ3RpbWVkd2FpdCIsIHZraV9zaWdzZXRfdCAqLCBzZXQsCisgICAgICAgICAgICAgICAgIHZraV9zaWdpbmZvX3QgKiwgaW5mbywgdmtpX3RpbWVzcGVjX3QgKiwgdGltZW91dCk7CisgICBQUkVfTUVNX1JFQUQoInNpZ3RpbWV3YWl0KHNldCkiLCBBUkcxLCBzaXplb2YodmtpX3NpZ3NldF90KSk7CisgICBpZiAoQVJHMikKKyAgICAgIFBSRV9NRU1fV1JJVEUoInNpZ3RpbWVkd2FpdChpbmZvKSIsIEFSRzIsIHNpemVvZih2a2lfc2lnaW5mb190KSk7CisgICBpZiAoQVJHMykKKyAgICAgIFBSRV9NRU1fUkVBRCgic2lndGltZWR3YWl0KHRpbWVvdXQpIiwgQVJHMywgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7Cit9CisKK1BPU1Qoc3lzX3NpZ3RpbWVkd2FpdCkKK3sKKyAgIGlmIChBUkcyKQorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHZraV9zaWdpbmZvX3QpKTsKK30KKworUFJFKHN5c195aWVsZCkKK3sKKyAgIC8qIHZvaWQgeWllbGQodm9pZCk7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfeWllbGQgKCApIik7CisgICBQUkVfUkVHX1JFQUQwKGxvbmcsICJ5aWVsZCIpOworfQorCitQUkUoc3lzX2x3cF9zZW1hX3Bvc3QpCit7CisgICAvKiBpbnQgbHdwX3NlbWFfcG9zdChsd3Bfc2VtYV90ICpzZW1hKTsgKi8KKyAgIHZraV9sd3Bfc2VtYV90ICpzZW1hID0gKHZraV9sd3Bfc2VtYV90KilBUkcxOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX2x3cF9zZW1hX3Bvc3QgKCAlI2x4ICkiLCBBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEobG9uZywgImx3cF9zZW1hX3Bvc3QiLCBsd3Bfc2VtYV90ICosIHNlbWEpOworCisgICBQUkVfRklFTERfUkVBRCgibHdwX3NlbWFfcG9zdChzZW1hLT50eXBlKSIsIHNlbWEtPnZraV9zZW1hX3R5cGUpOworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9zZW1hX3Bvc3Qoc2VtYS0+Y291bnQpIiwgc2VtYS0+dmtpX3NlbWFfY291bnQpOworICAgLypQUkVfRklFTERfV1JJVEUoImx3cF9zZW1hX3Bvc3Qoc2VtYS0+Y291bnQpIiwgc2VtYS0+dmtpX3NlbWFfY291bnQpOyovCisgICBQUkVfRklFTERfUkVBRCgibHdwX3NlbWFfcG9zdChzZW1hLT53YWl0ZXJzKSIsIHNlbWEtPnZraV9zZW1hX3dhaXRlcnMpOworICAgLypQUkVfRklFTERfV1JJVEUoImx3cF9zZW1hX3Bvc3Qoc2VtYS0+d2FpdGVycykiLCBzZW1hLT52a2lfc2VtYV93YWl0ZXJzKTsqLworfQorCitQT1NUKHN5c19sd3Bfc2VtYV9wb3N0KQoreworICAgdmtpX2x3cF9zZW1hX3QgKnNlbWEgPSAodmtpX2x3cF9zZW1hX3QqKUFSRzE7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHNlbWEtPnZraV9zZW1hX2NvdW50KTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc2VtYS0+dmtpX3NlbWFfd2FpdGVycyk7Cit9CisKK1BSRShzeXNfbHdwX3NlbWFfdHJ5d2FpdCkKK3sKKyAgIC8qIGludCBsd3Bfc2VtYV90cnl3YWl0KGx3cF9zZW1hX3QgKnNlbWEpOyAqLworICAgdmtpX2x3cF9zZW1hX3QgKnNlbWEgPSAodmtpX2x3cF9zZW1hX3QqKUFSRzE7CisgICBQUklOVCgic3lzX2x3cF9zZW1hX3RyeXdhaXQgKCAlI2x4ICkiLCBBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEobG9uZywgImx3cF9zZW1hX3RyeXdhaXQiLCBsd3Bfc2VtYV90ICosIHNlbWEpOworCisgICBQUkVfRklFTERfUkVBRCgibHdwX3NlbWFfdHJ5d2FpdChzZW1hLT50eXBlKSIsIHNlbWEtPnZraV9zZW1hX3R5cGUpOworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9zZW1hX3RyeXdhaXQoc2VtYS0+Y291bnQpIiwgc2VtYS0+dmtpX3NlbWFfY291bnQpOworICAgLypQUkVfRklFTERfV1JJVEUoImx3cF9zZW1hX3RyeXdhaXQoc2VtYS0+Y291bnQpIiwgc2VtYS0+dmtpX3NlbWFfY291bnQpOyovCisgICBQUkVfRklFTERfUkVBRCgibHdwX3NlbWFfdHJ5d2FpdChzZW1hLT53YWl0ZXJzKSIsIHNlbWEtPnZraV9zZW1hX3dhaXRlcnMpOworICAgLypQUkVfRklFTERfV1JJVEUoImx3cF9zZW1hX3RyeXdhaXQoc2VtYS0+d2FpdGVycykiLAorICAgICBzZW1hLT52a2lfc2VtYV93YWl0ZXJzKTsqLworfQorCitQT1NUKHN5c19sd3Bfc2VtYV90cnl3YWl0KQoreworICAgdmtpX2x3cF9zZW1hX3QgKnNlbWEgPSAodmtpX2x3cF9zZW1hX3QqKUFSRzE7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHNlbWEtPnZraV9zZW1hX2NvdW50KTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc2VtYS0+dmtpX3NlbWFfd2FpdGVycyk7Cit9CisKK1BSRShzeXNfbHdwX2RldGFjaCkKK3sKKyAgIC8qIGludCBsd3BfZGV0YWNoKGlkX3QgbHdwaWQpOyAqLworICAgUFJJTlQoInN5c19sd3BfZGV0YWNoICggJWxkICkiLCBTQVJHMSk7CisgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJsd3BfZGV0YWNoIiwgdmtpX2lkX3QsIGx3cGlkKTsKK30KKworUFJFKHN5c19mY2hyb290KQoreworICAgLyogaW50IGZjaHJvb3QoaW50IGZkKTsgKi8KKyAgIFBSSU5UKCJzeXNfZmNocm9vdCAoICVsZCApIiwgU0FSRzEpOworICAgUFJFX1JFR19SRUFEMShsb25nLCAiZmNocm9vdCIsIGludCwgZmQpOworCisgICAvKiBCZSBzdHJpY3QuICovCisgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcxLCAiZmNocm9vdCIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKKyNpZiBkZWZpbmVkKFNPTEFSSVNfU1lTVEVNX1NUQVRTX1NZU0NBTEwpCitQUkUoc3lzX3N5c3RlbV9zdGF0cykKK3sKKyAgIC8qIHZvaWQgc3lzdGVtX3N0YXRzKGludCBmbGFnKTsgKi8KKyAgIFBSSU5UKCJzeXNfc3lzdGVtX3N0YXRzICggJWxkICkiLCBTQVJHMSk7CisgICBQUkVfUkVHX1JFQUQxKHZvaWQsICJzeXN0ZW1fc3RhdHMiLCBpbnQsIGZsYWcpOworfQorI2VuZGlmIC8qIFNPTEFSSVNfU1lTVEVNX1NUQVRTX1NZU0NBTEwgKi8KKworUFJFKHN5c19nZXR0aW1lb2ZkYXkpCit7CisgICAvKiBLZXJuZWw6IGludCBnZXR0aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnRwKTsgKi8KKyAgIFBSSU5UKCJzeXNfZ2V0dGltZW9mZGF5ICggJSNseCApIiwgQVJHMSk7CisgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJnZXR0aW1lb2ZkYXkiLCBzdHJ1Y3QgdGltZXZhbCAqLCB0cCk7CisgICBpZiAoQVJHMSkKKyAgICAgIFBSRV90aW1ldmFsX1dSSVRFKCJnZXR0aW1lb2ZkYXkodHApIiwgQVJHMSk7Cit9CisKK1BPU1Qoc3lzX2dldHRpbWVvZmRheSkKK3sKKyAgIGlmIChBUkcxKQorICAgICAgUE9TVF90aW1ldmFsX1dSSVRFKEFSRzEpOworfQorCitQUkUoc3lzX2x3cF9jcmVhdGUpCit7CisgICAvKiBpbnQgbHdwX2NyZWF0ZSh1Y29udGV4dF90ICp1Y3AsIGludCBmbGFncywgaWRfdCAqbmV3X2x3cCkgKi8KKworICAgVGhyZWFkSWQgY3RpZDsKKyAgIFRocmVhZFN0YXRlICpwdHN0OworICAgVGhyZWFkU3RhdGUgKmN0c3Q7CisgICBBZGRyIHN0YWNrOworICAgU3lzUmVzIHJlczsKKyAgIHZraV91Y29udGV4dF90IHVjOworICAgQm9vbCB0b29sX2luZm9ybWVkID0gRmFsc2U7CisKKyAgIFBSSU5UKCJzeXNfbHdwX2NyZWF0ZSAoICUjbHgsICVsZCwgJSNseCApIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJsd3BfY3JlYXRlIiwgdWNvbnRleHRfdCAqLCB1Y3AsIGludCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgIGlkX3QgKiwgbmV3X2x3cCk7CisKKyAgIGlmIChBUkczICE9IDApCisgICAgICBQUkVfTUVNX1dSSVRFKCJsd3BfY3JlYXRlKG5ld19sd3ApIiwgQVJHMywgc2l6ZW9mKHZraV9pZF90KSk7CisKKyAgIC8qIElmIHdlIGNhbid0IGRlcmVmIHVjb250ZXh0X3QgdGhlbiB3ZSBjYW4ndCBkbyBhbnl0aGluZy4gKi8KKyAgIGlmICghTUxfKHNhZmVfdG9fZGVyZWYpKCh2b2lkKilBUkcxLCBzaXplb2YodmtpX3Vjb250ZXh0X3QpKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgICAgcmV0dXJuOworICAgfQorCisgICBjdGlkID0gVkdfKGFsbG9jX1RocmVhZFN0YXRlKSgpOworICAgcHRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisgICBjdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkoY3RpZCk7CisKKyAgIC8qIFN0YXkgc2FuZS4gKi8KKyAgIHZnX2Fzc2VydChWR18oaXNfcnVubmluZ190aHJlYWQpKHRpZCkpOworICAgdmdfYXNzZXJ0KFZHXyhpc192YWxpZF90aWQpKGN0aWQpKTsKKworICAgc3RhY2sgPSBNTF8oYWxsb2NzdGFjaykoY3RpZCk7CisgICBpZiAoIXN0YWNrKSB7CisgICAgICByZXMgPSBWR18obWtfU3lzUmVzX0Vycm9yKShWS0lfRU5PTUVNKTsKKyAgICAgIGdvdG8gb3V0OworICAgfQorCisgICAvKiBGaXJzdCBpbmhlcml0IHBhcmVudCdzIGd1ZXN0IHN0YXRlICovCisgICBjdHN0LT5hcmNoLnZleCA9IHB0c3QtPmFyY2gudmV4OworICAgY3RzdC0+YXJjaC52ZXhfc2hhZG93MSA9IHB0c3QtPmFyY2gudmV4X3NoYWRvdzE7CisgICBjdHN0LT5hcmNoLnZleF9zaGFkb3cyID0gcHRzdC0+YXJjaC52ZXhfc2hhZG93MjsKKworICAgLyogU2V0IHVwIHNvbWUgdmFsdWVzLiAqLworICAgY3RzdC0+b3Nfc3RhdGUucGFyZW50ID0gdGlkOworICAgY3RzdC0+b3Nfc3RhdGUudGhyZWFkZ3JvdXAgPSBwdHN0LT5vc19zdGF0ZS50aHJlYWRncm91cDsKKyAgIGN0c3QtPnNpZ19tYXNrID0gcHRzdC0+c2lnX21hc2s7CisgICBjdHN0LT50bXBfc2lnX21hc2sgPSBwdHN0LT5zaWdfbWFzazsKKworICAgLyogTm8gc3RhY2sgZGVmaW5pdGlvbiBzaG91bGQgYmUgY3VycmVudGx5IHByZXNlbnQuICBUaGUgc3RhY2sgd2lsbCBiZSBzZXQKKyAgICAgIGxhdGVyIGJ5IGxpYmMgYnkgYSBzZXR1c3RhY2soKSBjYWxsICh0aGUgZ2V0c2V0Y29udGV4dCBzeXNjYWxsKS4gKi8KKyAgIGN0c3QtPmNsaWVudF9zdGFja19oaWdoZXN0X2J5dGUgPSAwOworICAgY3RzdC0+Y2xpZW50X3N0YWNrX3N6QiA9IDA7CisgICB2Z19hc3NlcnQoY3RzdC0+b3Nfc3RhdGUuc3RrX2lkID09IChVV29yZCkoLTEpKTsKKworICAgLyogSW5mb3JtIGEgdG9vbCB0aGF0IGEgbmV3IHRocmVhZCBpcyBjcmVhdGVkLiAgVGhpcyBoYXMgdG8gYmUgZG9uZSBiZWZvcmUKKyAgICAgIGFueSBvdGhlciBjb3JlLT50b29sIGV2ZW50IGlzIHNlbnQuICovCisgICB2Z19hc3NlcnQoVkdfKG93bnNfQmlnTG9ja19MTCkodGlkKSk7CisgICBWR19UUkFDSyhwcmVfdGhyZWFkX2xsX2NyZWF0ZSwgdGlkLCBjdGlkKTsKKyAgIHRvb2xfaW5mb3JtZWQgPSBUcnVlOworCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICAvKiBTZXQgdXAgR0RUICh0aGlzIGhhcyB0byBiZSBkb25lIGJlZm9yZSBjYWxsaW5nCisgICAgICBWR18ocmVzdG9yZV9jb250ZXh0KSgpLiAqLworICAgTUxfKHNldHVwX2dkdCkoJmN0c3QtPmFyY2gudmV4KTsKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICAvKiBOb3RoaW5nIHRvIGRvLiAqLworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisKKyAgIC8qIE5vdyBzZXQgdXAgdGhlIG5ldyB0aHJlYWQgYWNjb3JkaW5nIHRvIHVjb250ZXh0X3QuICovCisgICBWR18ocmVzdG9yZV9jb250ZXh0KShjdGlkLCAodmtpX3Vjb250ZXh0X3QqKUFSRzEsIFZnX0NvcmVTeXNDYWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZS8qZXNwX2lzX3RocnB0ciovKTsKKworICAgLyogU2V0IHVwIFYgdGhyZWFkICh0aGlzIGFsc28gdGVsbHMgdGhlIGtlcm5lbCB0byBibG9jayBhbGwgc2lnbmFscyBpbiB0aGUKKyAgICAgIHRocmVhZCkuICovCisgICBNTF8oc2V0dXBfc3RhcnRfdGhyZWFkX2NvbnRleHQpKGN0aWQsICZ1Yyk7CisKKyAgIC8qIEFjdHVhbGx5IGNyZWF0ZSB0aGUgbmV3IHRocmVhZC4gKi8KKyAgIHJlcyA9IFZHXyhkb19zeXNjYWxsMykoX19OUl9sd3BfY3JlYXRlLCAoVVdvcmQpJnVjLCBBUkcyLCBBUkczKTsKKworICAgaWYgKCFzcl9pc0Vycm9yKHJlcykpIHsKKyAgICAgIGlmIChBUkczICE9IDApCisgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX2lkX3QpKTsKKyAgICAgIGlmIChBUkcyICYgVktJX0xXUF9EQUVNT04pCisgICAgICAgICBjdHN0LT5vc19zdGF0ZS5kYWVtb25fdGhyZWFkID0gVHJ1ZTsKKyAgIH0KKworb3V0OgorICAgaWYgKHNyX2lzRXJyb3IocmVzKSkgeworICAgICAgaWYgKHRvb2xfaW5mb3JtZWQpIHsKKyAgICAgICAgIC8qIFRlbGwgYSB0b29sIHRoZSB0aHJlYWQgZXhpdGVkIGluIGEgaHVycnkuICovCisgICAgICAgICBWR19UUkFDSyhwcmVfdGhyZWFkX2xsX2V4aXQsIGN0aWQpOworICAgICAgfQorCisgICAgICAvKiBsd3BfY3JlYXRlIGZhaWxlZC4gKi8KKyAgICAgIFZHXyhjbGVhbnVwX3RocmVhZCkoJmN0c3QtPmFyY2gpOworICAgICAgY3RzdC0+c3RhdHVzID0gVmdUc19FbXB0eTsKKyAgIH0KKworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhyZXMpOworfQorCitQUkUoc3lzX2x3cF9leGl0KQoreworICAgLyogdm9pZCBzeXNsd3BfZXhpdCgpOyAqLworICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisgICBQUklOVCgic3lzX2x3cF9leGl0ICggKSIpOworICAgUFJFX1JFR19SRUFEMChsb25nLCAibHdwX2V4aXQiKTsKKworICAgLyogU2V0IHRoZSB0aHJlYWQncyBzdGF0dXMgdG8gYmUgZXhpdGluZywgdGhlbiBjbGFpbSB0aGF0IHRoZSBzeXNjYWxsCisgICAgICBzdWNjZWVkZWQuICovCisgICB0c3QtPmV4aXRyZWFzb24gPSBWZ1NyY19FeGl0VGhyZWFkOworICAgdHN0LT5vc19zdGF0ZS5leGl0Y29kZSA9IDA7CisgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7Cit9CisKK1BSRShzeXNfbHdwX3N1c3BlbmQpCit7CisgICAvKiBpbnQgbHdwX3N1c3BlbmQoaWRfdCBsd3BpZCk7ICovCisgICBUaHJlYWRTdGF0ZSAqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAgIFBSSU5UKCJzeXNfbHdwX3N1c3BlbmQgKCAlbGQgKSIsIFNBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEobG9uZywgImx3cF9zdXNwZW5kIiwgdmtpX2lkX3QsIGx3cGlkKTsKKworICAgaWYgKEFSRzEgPT0gdHN0LT5vc19zdGF0ZS5sd3BpZCkgeworICAgICAgLyogU2V0IHRoZSBTZk1heUJsb2NrIGZsYWcgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGhyZWFkIHNob3VsZAorICAgICAgICAgYmUgc3VzcGVuZGVkLiBJZiB0aGlzIGZsYWcgd2FzIHVzZWQgYWxzbyB3aGVuIHN1c3BlbmRpbmcgb3RoZXIKKyAgICAgICAgIHRocmVhZHMgdGhlbiBpdCBjb3VsZCBoYXBwZW4gdGhhdCBhIHRocmVhZCBob2xkaW5nIHRoZV9CaWdMb2NrIHdvdWxkCisgICAgICAgICBiZSBzdXNwZW5kZWQgYW5kIFZhbGdyaW5kIHdvdWxkIGhhbmcuICovCisgICAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIH0KK30KKworUFJFKHN5c19sd3BfY29udGludWUpCit7CisgICAvKiBpbnQgbHdwX2NvbnRpbnVlKGlkX3QgdGFyZ2V0X2x3cCk7ICovCisgICBQUklOVCgic3lzX2x3cF9jb250aW51ZSAoICVsZCApIiwgU0FSRzEpOworICAgUFJFX1JFR19SRUFEMShsb25nLCAibHdwX2NvbnRpbnVlIiwgdmtpX2lkX3QsIHRhcmdldF9sd3ApOworfQorCitzdGF0aWMgdm9pZAorZG9fbHdwX3NpZ3F1ZXVlKGNvbnN0IEhDaGFyICpzeXNjYWxsX25hbWUsIFVXb3JkIHRhcmdldF9sd3AsIFVXb3JkIHNpZ25vLAorICAgICAgICAgICAgICAgIFN5c2NhbGxTdGF0dXMgKnN0YXR1cywgVVdvcmQgKmZsYWdzKQoreworICAgaWYgKCFNTF8oY2xpZW50X3NpZ25hbF9PSykoc2lnbm8pKSB7CisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VJTlZBTCk7CisgICAgICByZXR1cm47CisgICB9CisKKyAgIC8qIENoZWNrIHRvIHNlZSBpZiB0aGlzIGdhdmUgdXMgYSBwZW5kaW5nIHNpZ25hbC4gKi8KKyAgICpmbGFncyB8PSBTZlBvbGxBZnRlcjsKKworICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICIlczogc2VuZGluZyBzaWduYWwgJWx1IHRvIHRocmVhZCAlbHVcbiIsCisgICAgICAgICAgICAgICAgICAgc3lzY2FsbF9uYW1lLCBzaWdubywgdGFyZ2V0X2x3cCk7CisKKyAgIC8qIElmIHdlJ3JlIHNlbmRpbmcgU0lHS0lMTCwgY2hlY2sgdG8gc2VlIGlmIHRoZSB0YXJnZXQgaXMgb25lIG9mIG91cgorICAgICAgdGhyZWFkcyBhbmQgaGFuZGxlIGl0IHNwZWNpYWxseS4gKi8KKyAgIGlmIChzaWdubyA9PSBWS0lfU0lHS0lMTCAmJiBNTF8oZG9fc2lna2lsbCkodGFyZ2V0X2x3cCwgLTEpKSB7CisgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CisgICAgICByZXR1cm47CisgICB9CisKKyAgIC8qIEFzayB0byBoYW5kbGUgdGhpcyBzeXNjYWxsIHZpYSB0aGUgc2xvdyByb3V0ZSwgc2luY2UgdGhhdCdzIHRoZSBvbmx5IG9uZQorICAgICAgdGhhdCBzZXRzIHRzdC0+c3RhdHVzIHRvIFZnVHNfV2FpdFN5cy4gIElmIHRoZSByZXN1bHQgb2YgZG9pbmcgdGhlCisgICAgICBzeXNjYWxsIGlzIGFuIGltbWVkaWF0ZSBydW4gb2YgYXN5bmNfc2lnbmFsaGFuZGxlcigpIGluIG1fc2lnbmFscy5jLAorICAgICAgdGhlbiB3ZSBuZWVkIHRoZSB0aHJlYWQgdG8gYmUgcHJvcGVybHkgdGlkaWVkIGF3YXkuICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKK30KKworI2lmIGRlZmluZWQoU09MQVJJU19MV1BfU0lHUVVFVUVfU1lTQ0FMTCkKKyNpZiBkZWZpbmVkKFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTExfVEFLRVNfUElEKQorUFJFKHN5c19sd3Bfc2lncXVldWUpCit7CisgICAvKiBpbnQgbHdwX3NpZ3F1ZXVlKHBpZF90IHRhcmdldF9waWQsIGlkX3QgdGFyZ2V0X2x3cCwgaW50IHNpZ25hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdmFsdWUsIGludCBzaV9jb2RlLCB0aW1lc3BlY190ICp0aW1lb3V0KTsKKyAgICAqLworICAgUFJJTlQoInN5c19sd3Bfc2lncXVldWUgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbGQsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0LCBTQVJHNSwgQVJHNik7CisgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJsd3Bfc2lncXVldWUiLCB2a2lfcGlkX3QsIHRhcmdldF9waWQsCisgICAgICAgICAgICAgICAgIHZraV9pZF90LCB0YXJnZXRfbHdwLCBpbnQsIHNpZ25hbCwgdm9pZCAqLCB2YWx1ZSwgaW50LCBzaV9jb2RlLAorICAgICAgICAgICAgICAgICB2a2lfdGltZXNwZWNfdCAqLCB0aW1lb3V0KTsKKworICAgaWYgKEFSRzYpCisgICAgICBQUkVfTUVNX1JFQUQoImx3cF9zaWdxdWV1ZSh0aW1lb3V0KSIsIEFSRzYsIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworCisgICBpZiAoKEFSRzEgPT0gMCkgfHwgKEFSRzEgPT0gVkdfKGdldHBpZCkoKSkpIHsKKyAgICAgIGRvX2x3cF9zaWdxdWV1ZSgibHdwX3NpZ3F1ZXVlIiwgQVJHMiwgQVJHMywgc3RhdHVzLCBmbGFncyk7CisgICB9IGVsc2UgeworICAgICAgLyogU2lnbmFsIGlzIHNlbnQgdG8gYSBkaWZmZXJlbnQgcHJvY2Vzcy4gKi8KKyAgICAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQorICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAibHdwX3NpZ3F1ZXVlOiBzZW5kaW5nIHNpZ25hbCAlbGQgdG8gIgorICAgICAgICAgICAgICAgICAgICAgICJwcm9jZXNzICVsZCwgdGhyZWFkICVsZFxuIiwgU0FSRzMsIFNBUkcxLCBTQVJHMik7CisgICAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgfQorfQorCitQT1NUKHN5c19sd3Bfc2lncXVldWUpCit7CisgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgImx3cF9zaWdxdWV1ZTogc2VudCBzaWduYWwgJWxkIHRvIHByb2Nlc3MgJWxkLCAiCisgICAgICAgICAgICAgICAgICAgInRocmVhZCAlbGRcbiIsIFNBUkczLCBTQVJHMSwgU0FSRzIpOworfQorCisjZWxzZQorCitQUkUoc3lzX2x3cF9zaWdxdWV1ZSkKK3sKKyAgIC8qIGludCBsd3Bfc2lncXVldWUoaWRfdCB0YXJnZXRfbHdwLCBpbnQgc2lnbmFsLCB2b2lkICp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpX2NvZGUsIHRpbWVzcGVjX3QgKnRpbWVvdXQpOworICAgICovCisgICBQUklOVCgic3lzX2x3cF9zaWdxdWV1ZSAoICVsZCwgJWxkLCAlI2x4LCAlbGQsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgU0FSRzIsIEFSRzMsIFNBUkc0LCBBUkc1KTsKKyAgIFBSRV9SRUdfUkVBRDUobG9uZywgImx3cF9zaWdxdWV1ZSIsIHZraV9pZF90LCB0YXJnZXRfbHdwLCBpbnQsIHNpZ25hbCwKKyAgICAgICAgICAgICAgICAgdm9pZCAqLCB2YWx1ZSwgaW50LCBzaV9jb2RlLCB2a2lfdGltZXNwZWNfdCAqLCB0aW1lb3V0KTsKKworICAgaWYgKEFSRzUpCisgICAgICBQUkVfTUVNX1JFQUQoImx3cF9zaWdxdWV1ZSh0aW1lb3V0KSIsIEFSRzUsIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworCisgICBkb19sd3Bfc2lncXVldWUoImx3cF9zaWdxdWV1ZSIsIEFSRzEsIEFSRzIsIHN0YXR1cywgZmxhZ3MpOworfQorCitQT1NUKHN5c19sd3Bfc2lncXVldWUpCit7CisgICBpZiAoVkdfKGNsb190cmFjZV9zaWduYWxzKSkKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgImx3cF9zaWdxdWV1ZTogc2VudCBzaWduYWwgJWx1IHRvIHRocmVhZCAlbHVcbiIsCisgICAgICAgICAgICAgICAgICAgQVJHMiwgQVJHMSk7Cit9CisKKworI2VuZGlmIC8qIFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTExfVEFLRVNfUElEICovCisKKyNlbHNlCisKK1BSRShzeXNfbHdwX2tpbGwpCit7CisgICAvKiBpbnQgbHdwX2tpbGwoaWRfdCB0YXJnZXRfbHdwLCBpbnQgc2lnbmFsKTsgKi8KKyAgIFBSSU5UKCJzeXNfbHdwX2tpbGwgKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIobG9uZywgImx3cF9raWxsIiwgdmtpX2lkX3QsIHRhcmdldF9sd3AsIGludCwgc2lnbmFsKTsKKworICAgZG9fbHdwX3NpZ3F1ZXVlKCJsd3Bfa2lsbCIsIEFSRzEsIEFSRzIsIHN0YXR1cywgZmxhZ3MpOworfQorCitQT1NUKHN5c19sd3Bfa2lsbCkKK3sKKyAgIGlmIChWR18oY2xvX3RyYWNlX3NpZ25hbHMpKQorICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAibHdwX2tpbGw6IHNlbnQgc2lnbmFsICVsdSB0byB0aHJlYWQgJWx1XG4iLAorICAgICAgICAgICAgICAgICAgIEFSRzIsIEFSRzEpOworfQorI2VuZGlmIC8qIFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwgKi8KKworUFJFKHN5c19sd3Bfc2VsZikKK3sKKyAgIC8qIGlkX3QgbHdwX3NlbGYodm9pZCk7ICovCisgICBQUklOVCgic3lzX2x3cF9zZWxmICggKSIpOworICAgUFJFX1JFR19SRUFEMChsb25nLCAibHdwX3NlbGYiKTsKK30KKworUFJFKHN5c19sd3Bfc2lnbWFzaykKK3sKKyAgIC8qIGludDY0X3QgbHdwX3NpZ21hc2soaW50IGhvdywgdWludF90IGJpdHMwLCB1aW50X3QgYml0czEsIHVpbnRfdCBiaXRzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludF90IGJpdHMzKTsgKi8KKyAgIHZraV9zaWdzZXRfdCBzaWdzZXQ7CisgICBQUklOVCgic3lzX2x3cF9zaWdtYXNrICggJWxkLCAlI2x4LCAlI2x4LCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMywKKyAgICAgICAgIEFSRzQsIEFSRzUpOworICAgUFJFX1JFR19SRUFENShsb25nLCAibHdwX3NpZ21hc2siLCBpbnQsIGhvdywgdmtpX3VpbnRfdCwgYml0czAsCisgICAgICAgICAgICAgICAgIHZraV91aW50X3QsIGJpdHMxLCB2a2lfdWludF90LCBiaXRzMiwgdmtpX3VpbnRfdCwgYml0czMpOworCisgICBzaWdzZXQuX19zaWdiaXRzWzBdID0gQVJHMjsKKyAgIHNpZ3NldC5fX3NpZ2JpdHNbMV0gPSBBUkczOworICAgc2lnc2V0Ll9fc2lnYml0c1syXSA9IEFSRzQ7CisgICBzaWdzZXQuX19zaWdiaXRzWzNdID0gQVJHNTsKKworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcygKKyAgICAgIFZHXyhkb19zeXNfc2lncHJvY21hc2spKHRpZCwgQVJHMSAvKmhvdyovLCAmc2lnc2V0LCBOVUxMKQorICAgKTsKKworICAgaWYgKFNVQ0NFU1MpCisgICAgICAqZmxhZ3MgfD0gU2ZQb2xsQWZ0ZXI7Cit9CisKK1BSRShzeXNfbHdwX3ByaXZhdGUpCit7CisgICAvKiBpbnQgbHdwX3ByaXZhdGUoaW50IGNtZCwgaW50IHdoaWNoLCB1aW50cHRyX3QgYmFzZSk7ICovCisgICBUaHJlYWRTdGF0ZSAqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAgIEludCBzdXBwb3J0ZWRfYmFzZSwgc3VwcG9ydGVkX3NlbDsKKyAgIFBSSU5UKCJzeXNfbHdwX3ByaXZhdGUgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgIFBSRV9SRUdfUkVBRDMobG9uZywgImx3cF9wcml2YXRlIiwgaW50LCBjbWQsIGludCwgd2hpY2gsCisgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCwgYmFzZSk7CisKKyAgIC8qIE5vdGU6IE9ubHkgdGhlICVncyBiYXNlIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgb24geDg2IGFuZCB0aGUgJWZzIGJhc2UKKyAgICAgIG9uIGFtZDY0LiAgU3VwcG9ydCBmb3IgdGhlICVmcyBiYXNlIG9uIHg4NiBhbmQgZm9yIHRoZSAlZ3MgYmFzZSBvbiBhbWQ2NAorICAgICAgc2hvdWxkIGJlIGFkZGVkLiAgQW55dGhpbmcgZWxzZSBpcyBwcm9iYWJseSBhIGNsaWVudCBwcm9ncmFtIGVycm9yLiAqLworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgc3VwcG9ydGVkX2Jhc2UgPSBWS0lfTFdQX0dTQkFTRTsKKyAgIHN1cHBvcnRlZF9zZWwgPSBWS0lfTFdQR1NfU0VMOworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIHN1cHBvcnRlZF9iYXNlID0gVktJX0xXUF9GU0JBU0U7CisgICBzdXBwb3J0ZWRfc2VsID0gMDsKKyNlbHNlCisjZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjZW5kaWYKKyAgIGlmIChBUkcyICE9IHN1cHBvcnRlZF9iYXNlKSB7CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIGx3cF9wcml2YXRlIGNhbGwgd2hlcmUgd2hpY2g9JWxkLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgU0FSRzIpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgIH0KKworICAgc3dpdGNoIChBUkcxIC8qY21kKi8pIHsKKyAgIGNhc2UgVktJX0xXUF9TRVRQUklWQVRFOgorI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgICAgdHN0LT5vc19zdGF0ZS50aHJwdHIgPSBBUkczOworICAgICAgTUxfKHVwZGF0ZV9nZHRfbHdwZ3MpKHRpZCk7CisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9GU19DT05TVCA9IEFSRzM7CisjZWxzZQorI2Vycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3Moc3VwcG9ydGVkX3NlbCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0xXUF9HRVRQUklWQVRFOgorICAgICAgeworICAgICAgICAgaW50IHRocnB0cjsKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgICAgICAgIHRocnB0ciA9IHRzdC0+b3Nfc3RhdGUudGhycHRyOworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgICAgICAgIHRocnB0ciA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfRlNfQ09OU1Q7CisjZWxzZQorI2Vycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisKKyAgICAgICAgIGlmICh0aHJwdHIgPT0gMCkgeworICAgICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICAgICAgICBpZiAodHN0LT5hcmNoLnZleC5ndWVzdF9HUyAhPSBzdXBwb3J0ZWRfc2VsKSB7CisgICAgICAgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VJTlZBTCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgICAgICAgLyogVmFsZ3JpbmQgb24gYW1kNjQgZG9lcyBub3QgYWxsb3cgdG8gY2hhbmdlIHRoZSBncyByZWdpc3RlciBzbworICAgICAgICAgICAgYSBjaGVjayB0aGF0IGd1ZXN0X0dTIGlzIGVxdWFsIHRvIHN1cHBvcnRlZF9zZWwgaXMgbm90IG5lZWRlZAorICAgICAgICAgICAgaGVyZS4gKi8KKyNlbHNlCisjZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjZW5kaWYKKworICAgICAgICAgUFJFX01FTV9XUklURSgibHdwX3ByaXZhdGUoYmFzZSkiLCBBUkczLCBzaXplb2YoQWRkcikpOworICAgICAgICAgaWYgKCFNTF8oc2FmZV90b19kZXJlZigodm9pZCopQVJHMywgc2l6ZW9mKEFkZHIpKSkpIHsKKyAgICAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUZBVUxUKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgICooQWRkciopQVJHMyA9IHRocnB0cjsKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKUFSRzMsIHNpemVvZihBZGRyKSk7CisgICAgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CisgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIGx3cF9wcml2YXRlIGNhbGwgd2hlcmUgY21kPSVsZC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19sd3Bfd2FpdCkKK3sKKyAgIC8qIGludCBsd3Bfd2FpdChpZF90IGx3cGlkLCBpZF90ICpkZXBhcnRlZCk7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfbHdwX3dhaXQgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIobG9uZywgImx3cF93YWl0IiwgdmtpX2lkX3QsIGx3cGlkLCB2a2lfaWRfdCAqLCBkZXBhcnRlZCk7CisgICBpZiAoQVJHMikKKyAgICAgIFBSRV9NRU1fV1JJVEUoImx3cF93YWl0KGRlcGFydGVkKSIsIEFSRzIsIHNpemVvZih2a2lfaWRfdCkpOworfQorCitQT1NUKHN5c19sd3Bfd2FpdCkKK3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIHNpemVvZih2a2lfaWRfdCkpOworfQorCitQUkUoc3lzX2x3cF9tdXRleF93YWtldXApCit7CisgICAvKiBpbnQgbHdwX211dGV4X3dha2V1cChsd3BfbXV0ZXhfdCAqbHAsIGludCByZWxlYXNlX2FsbCk7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfbHdwX211dGV4X3dha2V1cCAoICUjbHgsICVsZCApIiwgQVJHMSwgU0FSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAibHdwX211dGV4X3dha2V1cCIsIHZraV9sd3BfbXV0ZXhfdCAqLCBscCwKKyAgICAgICAgICAgICAgICAgaW50LCByZWxlYXNlX2FsbCk7CisgICB2a2lfbHdwX211dGV4X3QgKmxwID0gKHZraV9sd3BfbXV0ZXhfdCAqKSBBUkcxOworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9tdXRleF93YWtldXAobHAtPm11dGV4X3R5cGUpIiwgbHAtPnZraV9tdXRleF90eXBlKTsKKyAgIFBSRV9GSUVMRF9XUklURSgibHdwX211dGV4X3dha2V1cChscC0+bXV0ZXhfd2FpdGVycykiLAorICAgICAgICAgICAgICAgICAgIGxwLT52a2lfbXV0ZXhfd2FpdGVycyk7Cit9CisKK1BPU1Qoc3lzX2x3cF9tdXRleF93YWtldXApCit7CisgICB2a2lfbHdwX211dGV4X3QgKmxwID0gKHZraV9sd3BfbXV0ZXhfdCAqKSBBUkcxOworICAgUE9TVF9GSUVMRF9XUklURShscC0+dmtpX211dGV4X3dhaXRlcnMpOworfQorCitQUkUoc3lzX2x3cF9jb25kX3dhaXQpCit7CisgICAvKiBpbnQgbHdwX2NvbmRfd2FpdChsd3BfY29uZF90ICpjdnAsIGx3cF9tdXRleF90ICptcCwgdGltZXNwZWNfdCAqdHNwLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoZWNrX3BhcmspOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX2x3cF9jb25kX3dhaXQoICUjbHgsICUjbHgsICUjbHgsICVsZCApIiwgQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAibHdwX2NvbmRfd2FpdCIsIHZraV9sd3BfY29uZF90ICosIGN2cCwKKyAgICAgICAgICAgICAgICAgdmtpX2x3cF9tdXRleF90ICosIG1wLCB2a2lfdGltZXNwZWNfdCAqLCB0c3AsIGludCwgY2hlY2tfcGFydCk7CisKKyAgIHZraV9sd3BfY29uZF90ICpjdnAgPSAodmtpX2x3cF9jb25kX3QgKikgQVJHMTsKKyAgIHZraV9sd3BfbXV0ZXhfdCAqbXAgPSAodmtpX2x3cF9tdXRleF90ICopIEFSRzI7CisgICBQUkVfRklFTERfUkVBRCgibHdwX2NvbmRfd2FpdChjdnAtPnR5cGUpIiwgY3ZwLT52a2lfY29uZF90eXBlKTsKKyAgIFBSRV9GSUVMRF9SRUFEKCJsd3BfY29uZF93YWl0KGN2cC0+d2FpdGVyc19rZXJuZWwpIiwKKyAgICAgICAgICAgICAgICAgIGN2cC0+dmtpX2NvbmRfd2FpdGVyc19rZXJuZWwpOworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9jb25kX3dhaXQobXAtPm11dGV4X3R5cGUpIiwgbXAtPnZraV9tdXRleF90eXBlKTsKKyAgIFBSRV9GSUVMRF9XUklURSgibHdwX2NvbmRfd2FpdChtcC0+bXV0ZXhfd2FpdGVycykiLCBtcC0+dmtpX211dGV4X3dhaXRlcnMpOworICAgaWYgKEFSRzMgIT0gMCkKKyAgICAgIFBSRV9NRU1fUkVBRCgibHdwX2NvbmRfd2FpdCh0c3ApIiwgQVJHMywgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7Cit9CisKK1BPU1Qoc3lzX2x3cF9jb25kX3dhaXQpCit7CisgICB2a2lfbHdwX2NvbmRfdCAqY3ZwID0gKHZraV9sd3BfY29uZF90ICopIEFSRzE7CisgICB2a2lfbHdwX211dGV4X3QgKm1wID0gKHZraV9sd3BfbXV0ZXhfdCAqKSBBUkcyOworICAgUE9TVF9GSUVMRF9XUklURShjdnAtPnZraV9jb25kX3dhaXRlcnNfa2VybmVsKTsKKyAgIFBPU1RfRklFTERfV1JJVEUobXAtPnZraV9tdXRleF93YWl0ZXJzKTsKKyAgIGlmIChBUkczICE9IDApCisgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX3RpbWVzcGVjX3QpKTsKK30KKworUFJFKHN5c19sd3BfY29uZF9icm9hZGNhc3QpCit7CisgICAvKiBpbnQgbHdwX2NvbmRfYnJvYWRjYXN0KGx3cF9jb25kX3QgKmN2cCk7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfbHdwX2NvbmRfYnJvYWRjYXN0ICggJSNseCApIiwgQVJHMSk7CisgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJsd3BfY29uZF9icm9hZGNhc3QiLCB2a2lfbHdwX2NvbmRfdCAqLCBjdnApOworCisgICB2a2lfbHdwX2NvbmRfdCAqY3ZwID0gKHZraV9sd3BfY29uZF90ICopIEFSRzE7CisgICBQUkVfRklFTERfUkVBRCgibHdwX2NvbmRfYnJvYWRjYXN0KGN2cC0+dHlwZSkiLCBjdnAtPnZraV9jb25kX3R5cGUpOworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9jb25kX2Jyb2FkY2FzdChjdnAtPndhaXRlcnNfa2VybmVsKSIsCisgICAgICAgICAgICAgICAgICBjdnAtPnZraV9jb25kX3dhaXRlcnNfa2VybmVsKTsKKyAgIC8qUFJFX0ZJRUxEX1dSSVRFKCJsd3BfY29uZF9icm9hZGNhc3QoY3ZwLT53YWl0ZXJzX2tlcm5lbCkiLAorICAgICAgICAgICAgICAgICAgICAgY3ZwLT52a2lfY29uZF93YWl0ZXJzX2tlcm5lbCk7Ki8KK30KKworUE9TVChzeXNfbHdwX2NvbmRfYnJvYWRjYXN0KQoreworICAgdmtpX2x3cF9jb25kX3QgKmN2cCA9ICh2a2lfbHdwX2NvbmRfdCAqKSBBUkcxOworICAgUE9TVF9GSUVMRF9XUklURShjdnAtPnZraV9jb25kX3dhaXRlcnNfa2VybmVsKTsKK30KKworUFJFKHN5c19wcmVhZCkKK3sKKyAgIC8qIHNzaXplX3QgcHJlYWQoaW50IGZpbGRlcywgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUsIG9mZl90IG9mZnNldCk7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfcHJlYWQgKCAlbGQsICUjbHgsICVsdSwgJWxkICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAicHJlYWQiLCBpbnQsIGZpbGRlcywgdm9pZCAqLCBidWYsCisgICAgICAgICAgICAgICAgIHZraV9zaXplX3QsIG5ieXRlLCB2a2lfb2ZmX3QsIG9mZnNldCk7CisgICBQUkVfTUVNX1dSSVRFKCJwcmVhZChidWYpIiwgQVJHMiwgQVJHMyk7CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJwcmVhZCIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BPU1Qoc3lzX3ByZWFkKQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgUkVTKTsKK30KKworUFJFKHN5c19wd3JpdGUpCit7CisgICAvKiBzc2l6ZV90IHB3cml0ZShpbnQgZmlsZGVzLCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSwKKyAgICAgICAgICAgICAgICAgICAgIG9mZl90IG9mZnNldCk7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfcHdyaXRlICggJWxkLCAlI2x4LCAlbHUsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQobG9uZywgInB3cml0ZSIsIGludCwgZmlsZGVzLCBjb25zdCB2b2lkICosIGJ1ZiwKKyAgICAgICAgICAgICAgICAgdmtpX3NpemVfdCwgbmJ5dGUsIHZraV9vZmZfdCwgb2Zmc2V0KTsKKyAgIFBSRV9NRU1fUkVBRCgicHdyaXRlKGJ1ZikiLCBBUkcyLCBBUkczKTsKKworICAgLyogQmUgc3RyaWN0LiAqLworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgInB3cml0ZSIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BSRShzeXNfZ2V0cGFnZXNpemVzKQoreworICAgLyogaW50IGdldHBhZ2VzaXplcyhpbnQgbGVnYWN5LCBzaXplX3QgKmJ1ZiwgaW50IG5lbGVtKTsgKi8KKyAgIFBSSU5UKCJzeXNfZ2V0cGFnZXNpemVzICggJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJnZXRwYWdlc2l6ZXMiLCBpbnQsIGxlZ2FjeSwgc2l6ZV90ICosIGJ1ZiwKKyAgICAgICAgICAgICAgICAgaW50LCBuZWxlbSk7CisgICBpZiAoQVJHMikKKyAgICAgIFBSRV9NRU1fV1JJVEUoImdldHBhZ2VzaXplcyhidWYpIiwgQVJHMiwgQVJHMyAqIHNpemVvZih2a2lfc2l6ZV90KSk7Cit9CisKK1BPU1Qoc3lzX2dldHBhZ2VzaXplcykKK3sKKyAgIGlmIChBUkcyKQorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgUkVTICogc2l6ZW9mKHZraV9zaXplX3QpKTsKK30KKworUFJFKHN5c19ydXNhZ2VzeXMpCit7CisgICAvKiBLZXJuZWw6IGludCBydXNhZ2VzeXMoaW50IGNvZGUsIHZvaWQgKmFyZzEsIHZvaWQgKmFyZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYXJnMywgdm9pZCAqYXJnNCk7ICovCisgICBzd2l0Y2ggKEFSRzEgLypjb2RlKi8pIHsKKyAgIGNhc2UgVktJX19SVVNBR0VTWVNfR0VUUlVTQUdFOgorICAgY2FzZSBWS0lfX1JVU0FHRVNZU19HRVRSVVNBR0VfQ0hMRDoKKyAgIGNhc2UgVktJX19SVVNBR0VTWVNfR0VUUlVTQUdFX0xXUDoKKyAgICAgIC8qIExpYmM6IGludCBnZXRydXNhZ2UoaW50IHdobywgc3RydWN0IHJ1c2FnZSAqcl91c2FnZSk7ICovCisgICAgICBQUklOVCgic3lzX3J1c2FnZXN5cyAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoInJ1c2FnZXN5cyIsICJnZXRydXNhZ2UiKSwgaW50LCBjb2RlLAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3J1c2FnZSAqLCByX3VzYWdlKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoInJ1c2FnZXN5cyhyX3VzYWdlKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3J1c2FnZSkpOworICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX19SVVNBR0VTWVNfR0VUVk1VU0FHRToKKyAgICAgIC8qIExpYmM6IGludCBnZXR2bXVzYWdlKHVpbnRfdCBmbGFncywgdGltZV90IGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtdXNhZ2VfdCAqYnVmLCBzaXplX3QgKm5yZXMpOyAqLworICAgICAgUFJJTlQoInN5c19ydXNhZ2VzeXMgKCAlbGQsICVsdSwgJWxkLCAlI2x4LCAlI2x4ICkiLAorICAgICAgICAgICAgU0FSRzEsIEFSRzIsIFNBUkczLCBBUkc0LCBBUkc1KTsKKyAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MyKCJydXNhZ2VzeXMiLCAiZ2V0dm11c2FnZSIpLCBpbnQsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV91aW50X3QsIGZsYWdzLCB2a2lfdGltZV90LCBhZ2UsCisgICAgICAgICAgICAgICAgICAgIHZraV92bXVzYWdlX3QgKiwgYnVmLCB2a2lfc2l6ZV90ICosIG5yZXMpOworICAgICAgUFJFX01FTV9SRUFEKCJydXNhZ2VzeXMobnJlcykiLCBBUkc1LCBzaXplb2YodmtpX3NpemVfdCkpOworICAgICAgLyogUFJFX01FTV9XUklURSgicnVzYWdlc3lzKG5yZXMpIiwgQVJHNSwgc2l6ZW9mKHZraV9zaXplX3QpKTsgKi8KKworICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCAqKSBBUkc1LCBzaXplb2YodmtpX3NpemVfdCkpKSB7CisgICAgICAgICB2a2lfc2l6ZV90ICpucmVzID0gKHZraV9zaXplX3QgKikgQVJHNTsKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInJ1c2FnZXN5cyhidWYpIiwgQVJHNCwKKyAgICAgICAgICAgICAgICAgICAgICAgKm5yZXMgKiBzaXplb2YodmtpX3ZtdXNhZ2VfdCkpOworICAgICAgfQorICAgICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICAgICBicmVhazsKKworICAgZGVmYXVsdDoKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiB0aGUgcnVzYWdlc3lzIGNhbGwgd2l0aCBjb2RlICVsZC4iLCBTQVJHMSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BPU1Qoc3lzX3J1c2FnZXN5cykKK3sKKyAgIHN3aXRjaCAoQVJHMSAvKmNvZGUqLykgeworICAgY2FzZSBWS0lfX1JVU0FHRVNZU19HRVRSVVNBR0U6CisgICBjYXNlIFZLSV9fUlVTQUdFU1lTX0dFVFJVU0FHRV9DSExEOgorICAgY2FzZSBWS0lfX1JVU0FHRVNZU19HRVRSVVNBR0VfTFdQOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfcnVzYWdlKSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX19SVVNBR0VTWVNfR0VUVk1VU0FHRToKKyAgICAgIHsKKyAgICAgICAgIHZraV9zaXplX3QgKm5yZXMgPSAodmtpX3NpemVfdCAqKSBBUkc1OworICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHNSwgc2l6ZW9mKHZraV9zaXplX3QpKTsKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsICpucmVzICogc2l6ZW9mKHZraV92bXVzYWdlX3QpKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorCit9CisKK1BSRShzeXNfcG9ydCkKK3sKKyAgIC8qIEtlcm5lbDogaW50NjRfdCBwb3J0ZnMoaW50IG9wY29kZSwgdWludHB0cl90IGEwLCB1aW50cHRyX3QgYTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBhMiwgdWludHB0cl90IGEzLCB1aW50cHRyX3QgYTQpOyAqLworICAgSW50IG9wY29kZSA9IEFSRzEgJiBWS0lfUE9SVF9DT0RFX01BU0s7CisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIHN3aXRjaCAob3Bjb2RlKSB7CisgICBjYXNlIFZLSV9QT1JUX0NSRUFURToKKyAgICAgIFBSSU5UKCJzeXNfcG9ydCAoICVsZCApIiwgU0FSRzEpOworICAgICAgUFJFX1JFR19SRUFEMShsb25nLCBTQzIoInBvcnQiLCAiY3JlYXRlIiksIGludCwgb3Bjb2RlKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUE9SVF9BU1NPQ0lBVEU6CisgICBjYXNlIFZLSV9QT1JUX0RJU1NPQ0lBVEU6CisgICAgICBQUklOVCgic3lzX3BvcnQgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsCisgICAgICAgICAgICBBUkc0LCBTQVJHNSwgQVJHNik7CisgICAgICBpZiAob3Bjb2RlID09IFZLSV9QT1JUX0FTU09DSUFURSkgeworICAgICAgICAgUFJFX1JFR19SRUFENihsb25nLCBTQzIoInBvcnQiLCAiYXNzb2NpYXRlIiksIGludCwgb3Bjb2RlLCBpbnQsIGEwLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQsIGExLCB1aW50cHRyX3QsIGEyLCBpbnQsIGEzLCB2b2lkICosIGE0KTsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICAgUFJFX1JFR19SRUFENihsb25nLCBTQzIoInBvcnQiLCAiZGlzc29jaWF0ZSIpLCBpbnQsIG9wY29kZSwgaW50LCBhMCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50LCBhMSwgdWludHB0cl90LCBhMiwgaW50LCBhMywgdm9pZCAqLCBhNCk7CisgICAgICB9CisKKyAgICAgIHN3aXRjaCAoQVJHMyAvKnNvdXJjZSovKSB7CisgICAgICBjYXNlIFZLSV9QT1JUX1NPVVJDRV9GRDoKKyAgICAgICAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzQsICJwb3J0IiwgdGlkLCBGYWxzZSkpIHsKKyAgICAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9QT1JUX1NPVVJDRV9GSUxFOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9maWxlX29iaiAqZm8gPSAoc3RydWN0IHZraV9maWxlX29iaiAqKUFSRzQ7CisgICAgICAgICAgICBQUkVfTUVNX1JFQUQoInBvcnQoZmlsZV9vYmopIiwgQVJHNCwgc2l6ZW9mKHN0cnVjdCB2a2lfZmlsZV9vYmopKTsKKyAgICAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoJmZvLT5mb19uYW1lLCBzaXplb2YoZm8tPmZvX25hbWUpKSkKKyAgICAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigicG9ydChmaWxlX29iai0+Zm9fbmFtZSkiLCAoQWRkcilmby0+Zm9fbmFtZSk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIHBvcnRfYXNzb2NpYXRlL2Rpc3NvY2lhdGUgY2FsbCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUgJWxkLiIsIFNBUkczKTsKKyAgICAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUE9SVF9TRU5EOgorICAgICAgUFJJTlQoInN5c19wb3J0ICggJWxkLCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMywgQVJHNCk7CisgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMigicG9ydCIsICJzZW5kIiksIGludCwgb3Bjb2RlLCBpbnQsIGEwLCBpbnQsIGExLAorICAgICAgICAgICAgICAgICAgICB2b2lkICosIGEyKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUE9SVF9TRU5ETjoKKyAgICAgIFBSSU5UKCJzeXNfcG9ydCAoICVsZCwgJSNseCwgJSNseCwgJWx1LCAlbHgsICUjbHgpIiwgU0FSRzEsIEFSRzIsIEFSRzMsCisgICAgICAgICAgICBBUkc0LCBBUkc1LCBBUkc2KTsKKyAgICAgIFBSRV9SRUdfUkVBRDYobG9uZywgU0MyKCJwb3J0IiwgInNlbmRuIiksIGludCwgb3Bjb2RlLCBpbnQgKiwgYTAsCisgICAgICAgICAgICAgICAgICAgIGludCAqLCBhMSwgdmtpX3VpbnRfdCwgYTIsIGludCwgYTMsIHZvaWQgKiwgYTQpOworICAgICAgUFJFX01FTV9SRUFEKCJwb3J0KHBvcnRzKSIsIEFSRzIsIEFSRzQgKiBzaXplb2YoaW50KSk7CisgICAgICBQUkVfTUVNX1dSSVRFKCJwb3J0KGVycm9ycykiLCBBUkczLCBBUkc0ICogc2l6ZW9mKGludCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QT1JUX0dFVDoKKyAgICAgIFBSSU5UKCJzeXNfcG9ydCAoICVsZCwgJWxkLCAlI2x4LCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczLAorICAgICAgICAgICAgU0FSRzQsIFNBUkc1LCBBUkc2KTsKKyAgICAgIFBSRV9SRUdfUkVBRDYobG9uZywgU0MyKCJwb3J0IiwgImdldCIpLCBpbnQsIG9wY29kZSwgaW50LCBhMCwKKyAgICAgICAgICAgICAgICAgICAgcG9ydF9ldmVudF90ICosIGExLCB2a2lfdGltZV90LCBhMiwgbG9uZywgYTMsCisgICAgICAgICAgICAgICAgICAgIHRpbWVzcGVjX3QgKiwgYTQpOworICAgICAgUFJFX01FTV9XUklURSgicG9ydCh1ZXZwKSIsIEFSRzMsIHNpemVvZih2a2lfcG9ydF9ldmVudF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BPUlRfR0VUTjoKKyAgICAgIFBSSU5UKCJzeXNfcG9ydCAoICVsZCwgJWxkLCAlI2x4LCAlbHUsICVsdSwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczLAorICAgICAgICAgICAgQVJHNCwgQVJHNSwgQVJHNik7CisgICAgICBQUkVfUkVHX1JFQUQ2KGxvbmcsIFNDMigicG9ydCIsICJnZXRuIiksIGludCwgb3Bjb2RlLCBpbnQsIGEwLAorICAgICAgICAgICAgICAgICAgICBwb3J0X2V2ZW50X3QgKiwgYTEsIHZraV91aW50X3QsIGEyLCB2a2lfdWludF90LCBhMywKKyAgICAgICAgICAgICAgICAgICAgdGltZXNwZWNfdCAqLCBhNCk7CisgICAgICBpZiAoQVJHNikKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgicG9ydCh0aW1lb3V0KSIsIEFSRzYsIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworICAgICAgUFJFX01FTV9XUklURSgicG9ydCh1ZXZwKSIsIEFSRzMsIEFSRzQgKiBzaXplb2YodmtpX3BvcnRfZXZlbnRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QT1JUX0FMRVJUOgorICAgICAgUFJJTlQoInN5c19wb3J0ICggJWxkLCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBTQVJHNCwKKyAgICAgICAgICAgIEFSRzUpOworICAgICAgUFJFX1JFR19SRUFENShsb25nLCBTQzIoInBvcnQiLCAiYWxlcnQiKSwgaW50LCBvcGNvZGUsIGludCwgYTAsIGludCwgYTEsCisgICAgICAgICAgICAgICAgICAgIGludCwgYTIsIHZvaWQgKiwgYTMpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QT1JUX0RJU1BBVENIOgorICAgICAgLy8gRklYTUU6IGNoZWNrIG9yZGVyOiBTQVJHMiwgU0FSRzEgIG9yICAgU0FSRzEsIFNBUkcyICA/PworICAgICAgUFJJTlQoInN5c19wb3J0ICggJWxkLCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMiwgU0FSRzEsIFNBUkczLAorICAgICAgICAgICAgU0FSRzQsIEFSRzUsIEFSRzYpOworICAgICAgUFJFX1JFR19SRUFENihsb25nLCBTQzIoInBvcnQiLCAiZGlzcGF0Y2giKSwgaW50LCBvcGNvZGUsIGludCwgYTAsCisgICAgICAgICAgICAgICAgICAgIGludCwgYTEsIGludCwgYTIsIHVpbnRwdHJfdCwgYTMsIHZvaWQgKiwgYTQpOworICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBwb3J0IGNhbGwgd2l0aCBvcGNvZGUgJWxkLiIsIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KKworICAgLyogQmUgc3RyaWN0LiAqLworICAgaWYgKChvcGNvZGUgIT0gVktJX1BPUlRfQ1JFQVRFICYmIG9wY29kZSAhPSBWS0lfUE9SVF9TRU5ETikgJiYKKyAgICAgICAhTUxfKGZkX2FsbG93ZWQpKEFSRzIsICJwb3J0IiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUE9TVChzeXNfcG9ydCkKK3sKKyAgIEludCBvcGNvZGUgPSBBUkcxICYgVktJX1BPUlRfQ09ERV9NQVNLOworICAgc3dpdGNoIChvcGNvZGUpIHsKKyAgIGNhc2UgVktJX1BPUlRfQ1JFQVRFOgorICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoUkVTLCAicG9ydCIsIHRpZCwgVHJ1ZSkpIHsKKyAgICAgICAgIFZHXyhjbG9zZSkoUkVTKTsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRU1GSUxFKTsKKyAgICAgIH0KKyAgICAgIGVsc2UgaWYgKFZHXyhjbG9fdHJhY2tfZmRzKSkKKyAgICAgICAgIE1MXyhyZWNvcmRfZmRfb3Blbl9uYW1lZCkodGlkLCBSRVMpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QT1JUX0FTU09DSUFURToKKyAgIGNhc2UgVktJX1BPUlRfRElTU09DSUFURToKKyAgIGNhc2UgVktJX1BPUlRfU0VORDoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUE9SVF9TRU5ETjoKKyAgICAgIGlmIChSRVMgIT0gQVJHNCkgeworICAgICAgICAgLyogSWYgdGhlcmUgaXMgYW55IGVycm9yIHRoZW4gdGhlIHdob2xlIGVycm9ycyBhcmVhIGlzIHdyaXR0ZW4uICovCisgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBBUkc0ICogc2l6ZW9mKGludCkpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QT1JUX0dFVDoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZih2a2lfcG9ydF9ldmVudF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BPUlRfR0VUTjoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIFJFUyAqIHNpemVvZih2a2lfcG9ydF9ldmVudF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BPUlRfQUxFUlQ6CisgICBjYXNlIFZLSV9QT1JUX0RJU1BBVENIOgorICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBwb3J0IGNhbGwgd2l0aCBvcGNvZGUgJWx1LiIsIEFSRzEpOworICAgICAgLypOT1RSRUFDSEVEKi8KKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX3BvbGxzeXMpCit7CisgICAvKiBpbnQgcG9sbHN5cyhwb2xsZmRfdCAqZmRzLCBuZmRzX3QgbmZkcywgdGltZXNwZWNfdCAqdGltZW91dCwKKyAgICAgICAgICAgICAgICAgIHNpZ3NldF90ICpzZXQpOyAqLworICAgVVdvcmQgaTsKKyAgIHN0cnVjdCB2a2lfcG9sbGZkICp1ZmRzID0gKHN0cnVjdCB2a2lfcG9sbGZkICopQVJHMTsKKworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisKKyAgIFBSSU5UKCJzeXNfcG9sbHN5cyAoICUjbHgsICVsdSwgJSNseCwgJSNseCApIiwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJwb2xsIiwgcG9sbGZkX3QgKiwgZmRzLCB2a2lfbmZkc190LCBuZmRzLAorICAgICAgICAgICAgICAgICB0aW1lc3BlY190ICosIHRpbWVvdXQsIHNpZ3NldF90ICosIHNldCk7CisKKyAgIGZvciAoaSA9IDA7IGkgPCBBUkcyOyBpKyspIHsKKyAgICAgIHZraV9wb2xsZmRfdCAqdSA9ICZ1ZmRzW2ldOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInBvbGwodWZkcy5mZCkiLCB1LT5mZCk7CisgICAgICAvKiBYWFggQ2hlY2sgaWYgaXQncyB2YWxpZD8gKi8KKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJwb2xsKHVmZHMuZXZlbnRzKSIsIHUtPmV2ZW50cyk7CisgICAgICBQUkVfRklFTERfV1JJVEUoInBvbGwodWZkcy5yZXZlbnRzKSIsIHUtPnJldmVudHMpOworICAgfQorCisgICBpZiAoQVJHMykKKyAgICAgIFBSRV9NRU1fUkVBRCgicG9sbCh0aW1lb3V0KSIsIEFSRzMsIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworICAgaWYgKEFSRzQpCisgICAgICBQUkVfTUVNX1JFQUQoInBvbGwoc2V0KSIsIEFSRzQsIHNpemVvZih2a2lfc2lnc2V0X3QpKTsKK30KKworUE9TVChzeXNfcG9sbHN5cykKK3sKKyAgIGlmIChSRVMgPj0gMCkgeworICAgICAgVVdvcmQgaTsKKyAgICAgIHZraV9wb2xsZmRfdCAqdWZkcyA9ICh2a2lfcG9sbGZkX3QqKUFSRzE7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgQVJHMjsgaSsrKQorICAgICAgICAgUE9TVF9GSUVMRF9XUklURSh1ZmRzW2ldLnJldmVudHMpOworICAgfQorfQorCitQUkUoc3lzX2xhYmVsc3lzKQoreworICAgLyogS2VybmVsOiBpbnQgbGFiZWxzeXMoaW50IG9wLCB2b2lkICphMSwgdm9pZCAqYTIsIHZvaWQgKmEzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYTQsIHZvaWQgKmE1KTsgKi8KKworICAgc3dpdGNoIChBUkcxIC8qb3AqLykgeworICAgY2FzZSBWS0lfVFNPTF9TWVNMQUJFTElORzoKKyAgICAgIC8qIExpYmM6IGludCBpc19zeXN0ZW1fbGFiZWxlZCh2b2lkKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfbGFiZWxzeXMgKCAlbGQgKSIsIFNBUkcxKTsKKyAgICAgIFBSRV9SRUdfUkVBRDEobG9uZywgU0MyKCJsYWJlbHN5cyIsICJzeXNsYWJlbGluZyIpLCBpbnQsIG9wKTsKKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZLSV9UU09MX1ROUkg6CisgICAgICAvKiBMaWJ0c25ldDogaW50IHRucmgoaW50IGNtZCwgdHNvbF9yaGVudF90ICpidWYpOyAqLworICAgICAgUFJJTlQoInN5c19sYWJlbHN5cyAoICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzIoImxhYmVsc3lzIiwgInRucmgiKSwgaW50LCBvcCwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHZraV90c29sX3JoZW50X3QgKiwgYnVmKTsKKyAgICAgIGlmIChBUkcyICE9IFZLSV9UTkRCX0ZMVVNIKQorICAgICAgICAgUFJFX01FTV9SRUFEKCJsYWJlbHN5cyhidWYpIiwgQVJHMywgc2l6ZW9mKHZraV90c29sX3JoZW50X3QpKTsKKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZLSV9UU09MX1ROUkhUUDoKKyAgICAgIC8qIExpYnRzbmV0OiBpbnQgdG5yaHRwKGludCBjbWQsIHRzb2xfdHBlbnRfdCAqYnVmKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfbGFiZWxzeXMgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJsYWJlbHN5cyIsICJ0bnJodHAiKSwgaW50LCBvcCwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHZraV90c29sX3RwZW50X3QgKiwgYnVmKTsKKyAgICAgIGlmIChBUkcyICE9IFZLSV9UTkRCX0ZMVVNIKQorICAgICAgICAgUFJFX01FTV9SRUFEKCJsYWJlbHN5cyhidWYpIiwgQVJHMywgc2l6ZW9mKHZraV90c29sX3RwZW50X3QpKTsKKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZLSV9UU09MX1ROTUxQOgorICAgICAgLyogTGlidHNuZXQ6IGludCB0bm1scChpbnQgY21kLCB0c29sX21scGVudF90ICpidWYpOyAqLworICAgICAgUFJJTlQoInN5c19sYWJlbHN5cyAoICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzIoImxhYmVsc3lzIiwgInRubWxwIiksIGludCwgb3AsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICB2a2lfdHNvbF9tbHBlbnRfdCAqLCBidWYpOworICAgICAgUFJFX01FTV9SRUFEKCJsYWJlbHN5cyhidWYpIiwgQVJHMywgc2l6ZW9mKHZraV90c29sX21scGVudF90KSk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfVFNPTF9HRVRMQUJFTDoKKyAgICAgIC8qIExpYnRzb2w6IGludCBnZXRsYWJlbChjb25zdCBjaGFyICpwYXRoLCBic2xhYmVsX3QgKmxhYmVsKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfbGFiZWxzeXMgKCAlbGQsICUjbHgoJXMpLCAlI2x4ICkiLAorICAgICAgICAgICAgU0FSRzEsIEFSRzIsIChIQ2hhciAqKSBBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJsYWJlbHN5cyIsICJnZXRsYWJlbCIpLCBpbnQsIG9wLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIHBhdGgsIHZraV9ic2xhYmVsX3QgKiwgbGFiZWwpOworICAgICAgUFJFX01FTV9SQVNDSUlaKCJsYWJlbHN5cyhwYXRoKSIsIEFSRzIpOworICAgICAgUFJFX01FTV9XUklURSgibGFiZWxzeXMobGFiZWwpIiwgQVJHMywgc2l6ZW9mKHZraV9ic2xhYmVsX3QpKTsKKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZLSV9UU09MX0ZHRVRMQUJFTDoKKyAgICAgIC8qIExpYnRzb2w6IGludCBmZ2V0bGFiZWwoaW50IGZkLCBic2xhYmVsX3QgKmxhYmVsKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfbGFiZWxzeXMgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJsYWJlbHN5cyIsICJmZ2V0bGFiZWwiKSwgaW50LCBvcCwKKyAgICAgICAgICAgICAgICAgICAgaW50LCBmZCwgdmtpX2JzbGFiZWxfdCAqLCBsYWJlbCk7CisgICAgICAvKiBCZSBzdHJpY3QuICovCisgICAgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcyLCAibGFiZWxzeXMoZmdldGxhYmVsKSIsIHRpZCwgRmFsc2UpKQorICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICBQUkVfTUVNX1dSSVRFKCJsYWJlbHN5cyhsYWJlbCkiLCBBUkczLCBzaXplb2YodmtpX2JzbGFiZWxfdCkpOworICAgICAgYnJlYWs7CisKKyNpZiBkZWZpbmVkKFNPTEFSSVNfVFNPTF9DTEVBUkFOQ0UpCisgICBjYXNlIFZLSV9UU09MX0dFVENMRUFSQU5DRToKKyAgICAgIC8qIExpYnRzb2w6IGludCBnZXRjbGVhcmFuY2UoYnNsYWJlbF90ICpjbGVhcmFuY2UpOyAqLworICAgICAgUFJJTlQoInN5c19sYWJlbHN5cyAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoImxhYmVsc3lzIiwgImdldGNsZWFyYW5jZSIpLCBpbnQsIG9wLAorICAgICAgICAgICAgICAgICAgICB2a2lfYnNsYWJlbF90ICosIGNsZWFyYW5jZSk7CisgICAgICBQUkVfTUVNX1dSSVRFKCJsYWJlbHN5cyhjbGVhcmFuY2UpIiwgQVJHMiwgc2l6ZW9mKHZraV9ic2xhYmVsX3QpKTsKKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZLSV9UU09MX1NFVENMRUFSQU5DRToKKyAgICAgIC8qIExpYnRzb2w6IGludCBzZXRjbGVhcmFuY2UoYnNsYWJlbF90ICpjbGVhcmFuY2UpOyAqLworICAgICAgUFJJTlQoInN5c19sYWJlbHN5cyAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoImxhYmVsc3lzIiwgInNldGNsZWFyYW5jZSIpLCBpbnQsIG9wLAorICAgICAgICAgICAgICAgICAgICB2a2lfYnNsYWJlbF90ICosIGNsZWFyYW5jZSk7CisgICAgICBQUkVfTUVNX1JFQUQoImxhYmVsc3lzKGNsZWFyYW5jZSkiLCBBUkcyLCBzaXplb2YodmtpX2JzbGFiZWxfdCkpOworICAgICAgYnJlYWs7CisjZW5kaWYgLyogU09MQVJJU19UU09MX0NMRUFSQU5DRSAqLworCisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBsYWJlbHN5cyBjYWxsIHdpdGggb3AgJWxkLiIsIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KK30KKworUE9TVChzeXNfbGFiZWxzeXMpCit7CisgICBzd2l0Y2ggKEFSRzEgLypvcCovKSB7CisgICBjYXNlIFZLSV9UU09MX1NZU0xBQkVMSU5HOgorICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX1RTT0xfVE5SSDoKKyAgICAgIHN3aXRjaCAoQVJHMiAvKmNtZCovKSB7CisgICAgICBjYXNlIFZLSV9UTkRCX0xPQUQ6CisgICAgICBjYXNlIFZLSV9UTkRCX0RFTEVURToKKyAgICAgIGNhc2UgVktJX1ROREJfRkxVU0g6CisgICAgICAgICBicmVhazsKKyNpZiBkZWZpbmVkKFNPTEFSSVNfVE5EQl9HRVRfVE5JUCkKKyAgICAgIGNhc2UgVE5EQl9HRVRfVE5JUDoKKyNlbmRpZiAvKiBTT0xBUklTX1ROREJfR0VUX1ROSVAgKi8KKyAgICAgIGNhc2UgVktJX1ROREJfR0VUOgorICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHZraV90c29sX3JoZW50X3QpKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX1RTT0xfVE5SSFRQOgorICAgICAgc3dpdGNoIChBUkcyIC8qY21kKi8pIHsKKyAgICAgIGNhc2UgVktJX1ROREJfTE9BRDoKKyAgICAgIGNhc2UgVktJX1ROREJfREVMRVRFOgorICAgICAgY2FzZSBWS0lfVE5EQl9GTFVTSDoKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfVE5EQl9HRVQ6CisgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX3Rzb2xfdHBlbnRfdCkpOworICAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICAgdmdfYXNzZXJ0KDApOworICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfVFNPTF9UTk1MUDoKKyAgICAgIHN3aXRjaCAoQVJHMiAvKmNtZCovKSB7CisgICAgICBjYXNlIFZLSV9UTkRCX0xPQUQ6CisgICAgICBjYXNlIFZLSV9UTkRCX0RFTEVURToKKyAgICAgIGNhc2UgVktJX1ROREJfRkxVU0g6CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX1ROREJfR0VUOgorICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHZraV90c29sX21scGVudF90KSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgICB2Z19hc3NlcnQoMCk7CisgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworCisgICBjYXNlIFZLSV9UU09MX0dFVExBQkVMOgorICAgY2FzZSBWS0lfVFNPTF9GR0VUTEFCRUw6CisgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX2JzbGFiZWxfdCkpOworICAgICAgYnJlYWs7CisKKyNpZiBkZWZpbmVkKFNPTEFSSVNfVFNPTF9DTEVBUkFOQ0UpCisgICBjYXNlIFZLSV9UU09MX0dFVENMRUFSQU5DRToKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIHNpemVvZih2a2lfYnNsYWJlbF90KSk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfVFNPTF9TRVRDTEVBUkFOQ0U6CisgICAgICBicmVhazsKKyNlbmRpZiAvKiBTT0xBUklTX1RTT0xfQ0xFQVJBTkNFICovCisKKyAgIGRlZmF1bHQ6CisgICAgICB2Z19hc3NlcnQoMCk7CisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19hY2wpCit7CisgICAvKiBpbnQgYWNsKGNoYXIgKnBhdGhwLCBpbnQgY21kLCBpbnQgbmVudHJpZXMsIHZvaWQgKmFjbGJ1ZnApOyAqLworICAgUFJJTlQoInN5c19hY2wgKCAlI2x4KCVzKSwgJWxkLCAlbGQsICUjbHggKSIsIEFSRzEsIChIQ2hhciAqKSBBUkcxLCBTQVJHMiwKKyAgICAgICAgIFNBUkczLCBBUkc0KTsKKworICAgUFJFX1JFR19SRUFENChsb25nLCAiYWNsIiwgY2hhciAqLCBwYXRocCwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgIGludCwgbmVudHJpZXMsIHZvaWQgKiwgYWNsYnVmcCk7CisgICBQUkVfTUVNX1JBU0NJSVooImFjbChwYXRocCkiLCBBUkcxKTsKKworICAgc3dpdGNoIChBUkcyIC8qY21kKi8pIHsKKyAgIGNhc2UgVktJX1NFVEFDTDoKKyAgICAgIGlmIChBUkc0KQorICAgICAgICAgUFJFX01FTV9SRUFEKCJhY2woYWNsYnVmcCkiLCBBUkc0LCBBUkczICogc2l6ZW9mKHZraV9hY2xlbnRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9HRVRBQ0w6CisgICAgICBQUkVfTUVNX1dSSVRFKCJhY2woYWNsYnVmcCkiLCBBUkc0LCBBUkczICogc2l6ZW9mKHZraV9hY2xlbnRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9HRVRBQ0xDTlQ6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0FDRV9TRVRBQ0w6CisgICAgICBpZiAoQVJHNCkKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiYWNsKGFjbGJ1ZnApIiwgQVJHNCwgQVJHMyAqIHNpemVvZih2a2lfYWNlX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQUNFX0dFVEFDTDoKKyAgICAgIFBSRV9NRU1fV1JJVEUoImFjbChhY2xidWZwKSIsIEFSRzQsIEFSRzMgKiBzaXplb2YodmtpX2FjZV90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0FDRV9HRVRBQ0xDTlQ6CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIGFjbCBjYWxsIHdpdGggY21kICVsZC4iLCBTQVJHMik7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BPU1Qoc3lzX2FjbCkKK3sKKyAgIHN3aXRjaCAoQVJHMiAvKmNtZCovKSB7CisgICBjYXNlIFZLSV9TRVRBQ0w6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0dFVEFDTDoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIEFSRzMgKiBzaXplb2YodmtpX2FjbGVudF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0dFVEFDTENOVDoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQUNFX1NFVEFDTDoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQUNFX0dFVEFDTDoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIEFSRzMgKiBzaXplb2YodmtpX2FjZV90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0FDRV9HRVRBQ0xDTlQ6CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICB2Z19hc3NlcnQoMCk7CisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19hdWRpdHN5cykKK3sKKyAgIC8qIEtlcm5lbDogaW50IGF1ZGl0c3lzKGxvbmcgY29kZSwgbG9uZyBhMSwgbG9uZyBhMiwgbG9uZyBhMywgbG9uZyBhNCk7ICovCisgICBzd2l0Y2ggKEFSRzEgLypjb2RlKi8pIHsKKyAgIGNhc2UgVktJX0JTTV9HRVRBVUlEOgorICAgICAgLyogTGliYnNtOiBpbnQgZ2V0YXVpZChhdV9pZF90ICphdWlkKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfYXVkaXRzeXMgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgU0MyKCJhdWRpdHN5cyIsICJnZXRhdWlkIiksIGxvbmcsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9hdV9pZF90ICosIGF1aWQpOworICAgICAgUFJFX01FTV9XUklURSgiYXVkaXRzeXMoYXVpZCkiLCBBUkcyLCBzaXplb2YodmtpX2F1X2lkX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQlNNX1NFVEFVSUQ6CisgICAgICAvKiBMaWJic206IGludCBzZXRhdWlkKGF1X2lkX3QgKmF1aWQpOyAqLworICAgICAgUFJJTlQoInN5c19hdWRpdHN5cyAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoImF1ZGl0c3lzIiwgInNldGF1aWQiKSwgbG9uZywgY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX2F1X2lkX3QgKiwgYXVpZCk7CisgICAgICBQUkVfTUVNX1JFQUQoImF1ZGl0c3lzKGF1aWQpIiwgQVJHMiwgc2l6ZW9mKHZraV9hdV9pZF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0JTTV9HRVRBVURJVDoKKyAgICAgIC8qIExpYmJzbTogaW50IGdldGF1ZGl0KGF1ZGl0aW5mb190ICphaSk7ICovCisgICAgICBQUklOVCgic3lzX2F1ZGl0c3lzICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigiYXVkaXRzeXMiLCAiZ2V0YXVkaXQiKSwgbG9uZywgY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX2F1ZGl0aW5mb190ICosIGFpKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoImF1ZGl0c3lzKGFpKSIsIEFSRzIsIHNpemVvZih2a2lfYXVkaXRpbmZvX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQlNNX1NFVEFVRElUOgorICAgICAgLyogTGliYnNtOiBpbnQgc2V0YXVkaXQoYXVkaXRpbmZvX3QgKmFpKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfYXVkaXRzeXMgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgU0MyKCJhdWRpdHN5cyIsICJzZXRhdWRpdCIpLCBsb25nLCBjb2RlLAorICAgICAgICAgICAgICAgICAgICB2a2lfYXVkaXRpbmZvX3QgKiwgYWkpOworICAgICAgUFJFX01FTV9SRUFEKCJhdWRpdHN5cyhhaSkiLCBBUkcyLCBzaXplb2YodmtpX2F1ZGl0aW5mb190KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0JTTV9BVURJVDoKKyAgICAgIC8qIExpYmJzbTogaW50IGF1ZGl0KHZvaWQgKnJlY29yZCwgaW50IGxlbmd0aCk7ICovCisgICAgICBQUklOVCgic3lzX2F1ZGl0c3lzICggJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMigiYXVkaXRzeXMiLCAiYXVkaXQiKSwgbG9uZywgY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdm9pZCAqLCByZWNvcmQsIGludCwgbGVuZ3RoKTsKKyAgICAgIFBSRV9NRU1fUkVBRCgiYXVkaXRzeXMocmVjb3JkKSIsIEFSRzIsIEFSRzMpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CU01fQVVESVRDVEw6CisgICAgICAvKiBMaWJic206IGludCBhdWRpdG9uKGludCBjbWQsIGNhZGRyX3QgZGF0YSwgaW50IGxlbmd0aCk7ICovCisgICAgICBQUklOVCgic3lzX2F1ZGl0c3lzICggJWxkLCAlbGQsICUjbHgsICVsZCApIiwKKyAgICAgICAgICAgIFNBUkcxLCBTQVJHMiwgQVJHMywgU0FSRzQpOworCisgICAgICBzd2l0Y2ggKEFSRzIgLypjbWQqLykgeworICAgICAgY2FzZSBWS0lfQV9HRVRQT0xJQ1k6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAiZ2V0cG9saWN5IiksCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcsIGNvZGUsIGludCwgY21kLCB2a2lfdWludDMyX3QgKiwgcG9saWN5KTsKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoImF1ZGl0c3lzKHBvbGljeSkiLCBBUkczLCBzaXplb2YodmtpX3VpbnQzMl90KSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0FfU0VUUE9MSUNZOgorICAgICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzMoImF1ZGl0c3lzIiwgImF1ZGl0Y3RsIiwgInNldHBvbGljeSIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwgdmtpX3VpbnQzMl90ICosIHBvbGljeSk7CisgICAgICAgICBQUkVfTUVNX1JFQUQoImF1ZGl0c3lzKHBvbGljeSkiLCBBUkczLCBzaXplb2YodmtpX3VpbnQzMl90KSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0FfR0VUS01BU0s6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAiZ2V0a21hc2siKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbG9uZywgY29kZSwgaW50LCBjbWQsIHZraV9hdV9tYXNrX3QgKiwga21hc2spOworICAgICAgICAgUFJFX01FTV9XUklURSgiYXVkaXRzeXMoa21hc2spIiwgQVJHMywgc2l6ZW9mKHZraV9hdV9tYXNrX3QpKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQV9TRVRLTUFTSzoKKyAgICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MzKCJhdWRpdHN5cyIsICJhdWRpdGN0bCIsICJzZXRrbWFzayIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwgdmtpX2F1X21hc2tfdCAqLCBrbWFzayk7CisgICAgICAgICBQUkVfTUVNX1JFQUQoImF1ZGl0c3lzKGttYXNrKSIsIEFSRzMsIHNpemVvZih2a2lfYXVfbWFza190KSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0FfR0VUUUNUUkw6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAiZ2V0cWN0cmwiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbG9uZywgY29kZSwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfYXVfcWN0cmwgKiwgcWN0cmwpOworICAgICAgICAgUFJFX01FTV9XUklURSgiYXVkaXRzeXMocWN0cmwpIiwgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCB2a2lfYXVfcWN0cmwpKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQV9TRVRRQ1RSTDoKKyAgICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MzKCJhdWRpdHN5cyIsICJhdWRpdGN0bCIsICJzZXRxY3RybCIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9hdV9xY3RybCAqLCBxY3RybCk7CisgICAgICAgICBQUkVfTUVNX1JFQUQoImF1ZGl0c3lzKHFjdHJsKSIsIEFSRzMsCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCB2a2lfYXVfcWN0cmwpKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQV9HRVRDV0Q6CisgICAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAiZ2V0Y3dkIiksCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcsIGNvZGUsIGludCwgY21kLCBjaGFyICosIGRhdGEsIGludCwgbGVuZ3RoKTsKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoImF1ZGl0c3lzKGRhdGEpIiwgQVJHMywgQVJHNCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0FfR0VUQ0FSOgorICAgICAgICAgUFJFX1JFR19SRUFENChsb25nLCBTQzMoImF1ZGl0c3lzIiwgImF1ZGl0Y3RsIiwgImdldGNhciIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwgY2hhciAqLCBkYXRhLCBpbnQsIGxlbmd0aCk7CisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJhdWRpdHN5cyhkYXRhKSIsIEFSRzMsIEFSRzQpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9BX0dFVFNUQVQ6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAiZ2V0c3RhdCIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwgdmtpX2F1X3N0YXRfdCAqLCBzdGF0cyk7CisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJhdWRpdHN5cyhzdGF0cykiLCBBUkczLCBzaXplb2YodmtpX2F1X3N0YXRfdCkpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9BX1NFVFNUQVQ6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAic2V0c3RhdCIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwgdmtpX2F1X3N0YXRfdCAqLCBzdGF0cyk7CisgICAgICAgICBQUkVfTUVNX1JFQUQoImF1ZGl0c3lzKHN0YXRzKSIsIEFSRzMsIHNpemVvZih2a2lfYXVfc3RhdF90KSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0FfU0VUVU1BU0s6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAic2V0dW1hc2siKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbG9uZywgY29kZSwgaW50LCBjbWQsIHZraV9hdWRpdGluZm9fdCAqLCB1bWFzayk7CisgICAgICAgICBQUkVfTUVNX1JFQUQoImF1ZGl0c3lzKHVtYXNrKSIsIEFSRzMsIHNpemVvZih2a2lfYXVkaXRpbmZvX3QpKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQV9TRVRTTUFTSzoKKyAgICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MzKCJhdWRpdHN5cyIsICJhdWRpdGN0bCIsICJzZXRzbWFzayIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwgdmtpX2F1ZGl0aW5mb190ICosIHNtYXNrKTsKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiYXVkaXRzeXMoc21hc2spIiwgQVJHMywgc2l6ZW9mKHZraV9hdWRpdGluZm9fdCkpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9BX0dFVENPTkQ6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAiZ2V0Y29uZCIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwgaW50ICosIGNvbmQpOworICAgICAgICAgUFJFX01FTV9XUklURSgiYXVkaXRzeXMoY29uZCkiLCBBUkczLCBzaXplb2YoaW50KSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0FfU0VUQ09ORDoKKyAgICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MzKCJhdWRpdHN5cyIsICJhdWRpdGN0bCIsICJzZXRjb25kIiksCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcsIGNvZGUsIGludCwgY21kLCBpbnQgKiwgc3RhdGUpOworICAgICAgICAgUFJFX01FTV9SRUFEKCJhdWRpdHN5cyhjb25kKSIsIEFSRzMsIHNpemVvZihpbnQpKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQV9HRVRDTEFTUzoKKyAgICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MzKCJhdWRpdHN5cyIsICJhdWRpdGN0bCIsICJnZXRjbGFzcyIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgdmtpX2F1X2V2Y2xhc3NfbWFwX3QgKiwgY2xhc3NtYXApOworCisgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYoKHZvaWQgKikgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmtpX2F1X2V2Y2xhc3NfbWFwX3QpKSkpIHsKKyAgICAgICAgICAgIHZraV9hdV9ldmNsYXNzX21hcF90ICpjbGFzc21hcCA9CisgICAgICAgICAgICAgICAodmtpX2F1X2V2Y2xhc3NfbWFwX3QgKikgQVJHMzsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJhdWRpdHN5cyhjbGFzc21hcC5lY19udW1iZXIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzbWFwLT5lY19udW1iZXIpOworICAgICAgICAgICAgUFJFX01FTV9XUklURSgiYXVkaXRzeXMoY2xhc3NtYXApIiwgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZraV9hdV9ldmNsYXNzX21hcF90KSk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0FfU0VUQ0xBU1M6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAic2V0Y2xhc3MiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbG9uZywgY29kZSwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgICAgIHZraV9hdV9ldmNsYXNzX21hcF90ICosIGNsYXNzbWFwKTsKKworICAgICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKCh2b2lkICopIEFSRzMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2a2lfYXVfZXZjbGFzc19tYXBfdCkpKSkgeworICAgICAgICAgICAgdmtpX2F1X2V2Y2xhc3NfbWFwX3QgKmNsYXNzbWFwID0KKyAgICAgICAgICAgICAgICh2a2lfYXVfZXZjbGFzc19tYXBfdCAqKSBBUkczOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImF1ZGl0c3lzKGNsYXNzbWFwLmVjX251bWJlcikiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzbWFwLT5lY19udW1iZXIpOyAgCisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiYXVkaXRzeXMoY2xhc3NtYXAuZWNfY2xhc3MpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc21hcC0+ZWNfY2xhc3MpOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9BX0dFVFBJTkZPOgorICAgICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzMoImF1ZGl0c3lzIiwgImF1ZGl0Y3RsIiwgImdldHBpbmZvIiksCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcsIGNvZGUsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX2F1ZGl0cGluZm8gKiwgYXBpbmZvKTsKKworICAgICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKCh2b2lkICopIEFSRzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCB2a2lfYXVkaXRwaW5mbykpKSkgeworICAgICAgICAgICAgc3RydWN0IHZraV9hdWRpdHBpbmZvICphcGluZm8gPQorICAgICAgICAgICAgICAgKHN0cnVjdCB2a2lfYXVkaXRwaW5mbyAqKSBBUkczOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImF1ZGl0c3lzKGFwaW5mby5hcF9waWQpIiwgYXBpbmZvLT5hcF9waWQpOworICAgICAgICAgICAgUFJFX01FTV9XUklURSgiYXVkaXRzeXMoYXBpbmZvKSIsIEFSRzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmtpX2F1ZGl0cGluZm8pKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQV9TRVRQTUFTSzoKKyAgICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MzKCJhdWRpdHN5cyIsICJhdWRpdGN0bCIsICJzZXRwbWFzayIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9hdWRpdHBpbmZvICosIGFwaW5mbyk7CisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJhdWRpdHN5cyhhcGluZm8pIiwgQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCB2a2lfYXVkaXRwaW5mbykpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9BX0dFVFBJTkZPX0FERFI6CisgICAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAiZ2V0cGluZm9fYWRkciIpLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nLCBjb2RlLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZraV9hdWRpdHBpbmZvX2FkZHIgKiwgYXBpbmZvLCBpbnQsIGxlbmd0aCk7CisKKyAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZigodm9pZCAqKSBBUkczLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgdmtpX2F1ZGl0cGluZm9fYWRkcikpKSkgeworICAgICAgICAgICAgc3RydWN0IHZraV9hdWRpdHBpbmZvX2FkZHIgKmFwaW5mb19hZGRyID0KKyAgICAgICAgICAgICAgIChzdHJ1Y3QgdmtpX2F1ZGl0cGluZm9fYWRkciAqKSBBUkczOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImF1ZGl0c3lzKGFwaW5mb19hZGRyLmFwX3BpZCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpbmZvX2FkZHItPmFwX3BpZCk7CisgICAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJhdWRpdHN5cyhhcGluZm9fYWRkcikiLCBBUkczLCBBUkc0KTsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQV9HRVRLQVVESVQ6CisgICAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAiZ2V0a2F1ZGl0IiksCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcsIGNvZGUsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICB2a2lfYXVkaXRpbmZvX2FkZHJfdCAqLCBrYXVkaXQsIGludCwgbGVuZ3RoKTsKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoImF1ZGl0c3lzKGthdWRpdCkiLCBBUkczLCBBUkc0KTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQV9TRVRLQVVESVQ6CisgICAgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAic2V0a2F1ZGl0IiksCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcsIGNvZGUsIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICAgICB2a2lfYXVkaXRpbmZvX2FkZHJfdCAqLCBrYXVkaXQsIGludCwgbGVuZ3RoKTsKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiYXVkaXRzeXMoa2F1ZGl0KSIsIEFSRzMsIEFSRzQpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9BX0dFVEFNQVNLOgorICAgICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzMoImF1ZGl0c3lzIiwgImF1ZGl0Y3RsIiwgImdldGFtYXNrIiksCisgICAgICAgICAgICAgICAgICAgICAgIGxvbmcsIGNvZGUsIGludCwgY21kLCB2a2lfYXVfbWFza190ICosIGFtYXNrKTsKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoImF1ZGl0c3lzKGFtYXNrKSIsIEFSRzMsIHNpemVvZih2a2lfYXVfbWFza190KSk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX0FfU0VUQU1BU0s6CisgICAgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMygiYXVkaXRzeXMiLCAiYXVkaXRjdGwiLCAic2V0YW1hc2siKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbG9uZywgY29kZSwgaW50LCBjbWQsIHZraV9hdV9tYXNrX3QgKiwgYW1hc2spOworICAgICAgICAgUFJFX01FTV9SRUFEKCJhdWRpdHN5cyhhbWFzaykiLCBBUkczLCBzaXplb2YodmtpX2F1X21hc2tfdCkpOworICAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBhdWRpdHN5cyhhdWRpdGN0bCkgY2FsbCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGggY21kICVsdS4iLCBBUkcyKTsKKyAgICAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQlNNX0dFVEFVRElUX0FERFI6CisgICAgICAvKiBMaWJic206IGludCBnZXRhdWRpdF9hZGRyKGF1ZGl0aW5mb19hZGRyX3QgKmFpLCBpbnQgbGVuKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfYXVkaXRzeXMgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJhdWRpdHN5cyIsICJnZXRhdWRpdF9hZGRyIiksIGxvbmcsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9hdWRpdGluZm9fYWRkcl90ICosIGFpLCBpbnQsIGxlbik7CisgICAgICBQUkVfTUVNX1dSSVRFKCJhdWRpdHN5cyhhaSkiLCBBUkcyLCBBUkczKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQlNNX1NFVEFVRElUX0FERFI6CisgICAgICAvKiBMaWJic206IGludCBzZXRhdWRpdF9hZGRyKGF1ZGl0aW5mb19hZGRyX3QgKmFpLCBpbnQgbGVuKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfYXVkaXRzeXMgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJhdWRpdHN5cyIsICJzZXRhdWRpdF9hZGRyIiksIGxvbmcsIGNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9hdWRpdGluZm9fYWRkcl90ICosIGFpLCBpbnQsIGxlbik7CisgICAgICBQUkVfTUVNX1JFQUQoImF1ZGl0c3lzKGFpKSIsIEFSRzIsIEFSRzMpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CU01fQVVESVRET09SOgorICAgICAgLyogTGliYnNtOiBpbnQgYXVkaXRkb29yKGludCBmZCk7ICovCisgICAgICBQUklOVCgic3lzX2F1ZGl0c3lzICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigiYXVkaXRzeXMiLCAiZG9vciIpLCBsb25nLCBjb2RlLCBpbnQsIGZkKTsKKworICAgICAgLyogQmUgc3RyaWN0LiAqLworICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMiwgU0MyKCJhdWRpdHN5cyIsICJkb29yIikiKGZkKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQsIEZhbHNlKSkKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBhdWRpdHN5cyBjYWxsIHdpdGggY29kZSAlbHUuIiwgQVJHMSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BPU1Qoc3lzX2F1ZGl0c3lzKQoreworICAgc3dpdGNoIChBUkcxIC8qY29kZSovKSB7CisgICBjYXNlIFZLSV9CU01fR0VUQVVJRDoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIHNpemVvZih2a2lfYXVfaWRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CU01fU0VUQVVJRDoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQlNNX0dFVEFVRElUOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHZraV9hdWRpdGluZm9fdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CU01fU0VUQVVESVQ6CisgICBjYXNlIFZLSV9CU01fQVVESVQ6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0JTTV9BVURJVENUTDoKKyAgICAgIHN3aXRjaCAoQVJHMiAvKmNtZCovKSB7CisgICAgICAgICBjYXNlIFZLSV9BX0dFVFBPTElDWToKKyAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZih2a2lfdWludDMyX3QpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9TRVRQT0xJQ1k6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX0FfR0VUS01BU0s6CisgICAgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX2F1X21hc2tfdCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9BX1NFVEtNQVNLOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9BX0dFVFFDVFJMOgorICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfYXVfcWN0cmwpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9TRVRRQ1RSTDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9HRVRDV0Q6CisgICAgICAgICBjYXNlIFZLSV9BX0dFVENBUjoKKyAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIFZHXyhzdHJsZW4pKChIQ2hhciAqKSBBUkczKSArIDEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9BX0dFVFNUQVQ6CisgICAgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX2F1X3N0YXRfdCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9BX1NFVFNUQVQ6CisgICAgICAgICBjYXNlIFZLSV9BX1NFVFVNQVNLOgorICAgICAgICAgY2FzZSBWS0lfQV9TRVRTTUFTSzoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9HRVRDT05EOgorICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKGludCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9BX1NFVENPTkQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX0FfR0VUQ0xBU1M6CisgICAgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX2F1X2V2Y2xhc3NfbWFwX3QpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9TRVRDTEFTUzoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9HRVRQSU5GTzoKKyAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX2F1ZGl0cGluZm8pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9TRVRQTUFTSzoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9HRVRQSU5GT19BRERSOgorICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHN0cnVjdCBhdWRpdHBpbmZvX2FkZHIpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9HRVRLQVVESVQ6CisgICAgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX2F1ZGl0aW5mb19hZGRyX3QpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBWS0lfQV9TRVRLQVVESVQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX0FfR0VUQU1BU0s6CisgICAgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX2F1X21hc2tfdCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9BX1NFVEFNQVNLOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0JTTV9HRVRBVURJVF9BRERSOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHZraV9hdWRpdGluZm9fYWRkcl90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0JTTV9TRVRBVURJVF9BRERSOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9CU01fQVVESVRET09SOgorICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BSRShzeXNfcF9vbmxpbmUpCit7CisgICAvKiBpbnQgcF9vbmxpbmUocHJvY2Vzc29yaWRfdCBwcm9jZXNzb3JpZCwgaW50IGZsYWcpOyAqLworICAgUFJJTlQoInN5c19wX29ubGluZSAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAicF9vbmxpbmUiLCB2a2lfcHJvY2Vzc29yaWRfdCwgcHJvY2Vzc29yaWQsIGludCwgZmxhZyk7Cit9CisKK1BSRShzeXNfc2lncXVldWUpCit7CisgICAvKiBpbnQgc2lncXVldWUocGlkX3QgcGlkLCBpbnQgc2lnbm8sIHZvaWQgKnZhbHVlLAorICAgICAgICAgICAgICAgICAgIGludCBzaV9jb2RlLCB0aW1lc3BlY190ICp0aW1lb3V0KTsKKyAgICAqLworICAgUFJJTlQoInN5c19zaWdxdWV1ZSAoICVsZCwgJWxkLCAlI2x4LCAlbGQsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgU0FSRzIsIEFSRzMsIFNBUkc0LCBBUkc1KTsKKyAgIFBSRV9SRUdfUkVBRDUobG9uZywgInNpZ3F1ZXVlIiwgdmtpX3BpZF90LCBwaWQsIGludCwgc2lnbm8sCisgICAgICAgICAgICAgICAgIHZvaWQgKiwgdmFsdWUsIGludCwgc2lfY29kZSwKKyAgICAgICAgICAgICAgICAgdmtpX3RpbWVzcGVjX3QgKiwgdGltZW91dCk7CisKKyAgIGlmIChBUkc1KQorICAgICAgUFJFX01FTV9SRUFEKCJzaWdxdWV1ZSh0aW1lb3V0KSIsIEFSRzUsIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworCisgICBpZiAoIU1MXyhjbGllbnRfc2lnbmFsX09LKShBUkcyKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgICAgcmV0dXJuOworICAgfQorCisgICAvKiBJZiB3ZSdyZSBzZW5kaW5nIFNJR0tJTEwsIGNoZWNrIHRvIHNlZSBpZiB0aGUgdGFyZ2V0IGlzIG9uZSBvZgorICAgICAgb3VyIHRocmVhZHMgYW5kIGhhbmRsZSBpdCBzcGVjaWFsbHkuICovCisgICBpZiAoQVJHMiA9PSBWS0lfU0lHS0lMTCAmJiBNTF8oZG9fc2lna2lsbCkoQVJHMSwgLTEpKSB7CisgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CisgICB9IGVsc2UgeworICAgICAgU3lzUmVzIHJlcyA9IFZHXyhkb19zeXNjYWxsNSkoU1lTTk8sIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUkc1KTsKKyAgICAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMocmVzKTsKKyAgIH0KKworICAgaWYgKFZHXyhjbG9fdHJhY2Vfc2lnbmFscykpCisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCisgICAgICAgICAgICAgICAgICAgInNpZ3F1ZXVlOiBzaWduYWwgJWx1IHF1ZXVlZCBmb3IgcGlkICVsdVxuIiwKKyAgICAgICAgICAgICAgICAgICBBUkcyLCBBUkcxKTsKKworICAgLyogQ2hlY2sgdG8gc2VlIGlmIHRoaXMgZ2F2ZSB1cyBhIHBlbmRpbmcgc2lnbmFsLiAqLworICAgKmZsYWdzIHw9IFNmUG9sbEFmdGVyOworfQorCitQUkUoc3lzX2Nsb2NrX2dldHRpbWUpCit7CisgICAvKiBpbnQgY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QgY2xvY2tfaWQsIHN0cnVjdCB0aW1lc3BlYyAqdHApOyAqLworICAgUFJJTlQoInN5c19jbG9ja19nZXR0aW1lICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJjbG9ja19nZXR0aW1lIiwgdmtpX2Nsb2NraWRfdCwgY2xvY2tfaWQsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1lc3BlYyAqLCB0cCk7CisgICBQUkVfTUVNX1dSSVRFKCJjbG9ja19nZXR0aW1lKHRwKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3RpbWVzcGVjKSk7Cit9CisKK1BPU1Qoc3lzX2Nsb2NrX2dldHRpbWUpCit7CisgICBQT1NUX01FTV9XUklURShBUkcyLCBzaXplb2Yoc3RydWN0IHZraV90aW1lc3BlYykpOworfQorCitQUkUoc3lzX2Nsb2NrX3NldHRpbWUpCit7CisgICAvKiBpbnQgY2xvY2tfc2V0dGltZShjbG9ja2lkX3QgY2xvY2tfaWQsIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdHApOyAqLworICAgUFJJTlQoInN5c19jbG9ja19zZXR0aW1lICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJjbG9ja19zZXR0aW1lIiwgdmtpX2Nsb2NraWRfdCwgY2xvY2tfaWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqLCB0cCk7CisgICBQUkVfTUVNX1JFQUQoImNsb2NrX3NldHRpbWUodHApIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfdGltZXNwZWMpKTsKK30KKworUFJFKHN5c19jbG9ja19nZXRyZXMpCit7CisgICAvKiBpbnQgY2xvY2tfZ2V0cmVzKGNsb2NraWRfdCBjbG9ja19pZCwgc3RydWN0IHRpbWVzcGVjICpyZXMpOyAqLworICAgUFJJTlQoInN5c19jbG9ja19nZXRyZXMgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIobG9uZywgImNsb2NrX2dldHJlcyIsIHZraV9jbG9ja2lkX3QsIGNsb2NrX2lkLAorICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKiwgcmVzKTsKKworICAgaWYgKEFSRzIpCisgICAgICBQUkVfTUVNX1dSSVRFKCJjbG9ja19nZXRyZXMocmVzKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3RpbWVzcGVjKSk7Cit9CisKK1BPU1Qoc3lzX2Nsb2NrX2dldHJlcykKK3sKKyAgIGlmIChBUkcyKQorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfdGltZXNwZWMpKTsKK30KKworUFJFKHN5c190aW1lcl9jcmVhdGUpCit7CisgICAvKiBpbnQgdGltZXJfY3JlYXRlKGNsb2NraWRfdCBjbG9ja19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNpZ2V2ZW50ICpldnAsIHRpbWVyX3QgKnRpbWVyaWQpOworICAgICovCisgICBQUklOVCgic3lzX3RpbWVyX2NyZWF0ZSAoICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMpOworICAgUFJFX1JFR19SRUFEMyhsb25nLCAidGltZXJfY3JlYXRlIiwgdmtpX2Nsb2NraWRfdCwgY2xvY2tfaWQsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfc2lnZXZlbnQgKiwgZXZwLCB2a2lfdGltZXJfdCAqLCB0aW1lcmlkKTsKKworICAgaWYgKEFSRzIpIHsKKyAgICAgIHN0cnVjdCB2a2lfc2lnZXZlbnQgKmV2cCA9IChzdHJ1Y3QgdmtpX3NpZ2V2ZW50ICopIEFSRzI7CisgICAgICBQUkVfRklFTERfUkVBRCgidGltZXJfY3JlYXRlKGV2cC5zaWdldl9ub3RpZnkpIiwgZXZwLT5zaWdldl9ub3RpZnkpOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInRpbWVyX2NyZWF0ZShldnAuc2lnZXZfc2lnbm8pIiwgZXZwLT5zaWdldl9zaWdubyk7CisgICAgICBQUkVfRklFTERfUkVBRCgidGltZXJfY3JlYXRlKGV2cC5zaWdldl92YWx1ZS5zaXZhbF9pbnQpIiwKKyAgICAgICAgIGV2cC0+c2lnZXZfdmFsdWUuc2l2YWxfaW50KTsKKworICAgICAgLyogQmUgc2FmZS4gKi8KKyAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZihldnAsIHNpemVvZihzdHJ1Y3QgdmtpX3NpZ2V2ZW50KSkpKSB7CisgICAgICAgICBpZiAoKGV2cC0+c2lnZXZfbm90aWZ5ID09IFZLSV9TSUdFVl9QT1JUKSB8fAorICAgICAgICAgICAgIChldnAtPnNpZ2V2X25vdGlmeSA9PSBWS0lfU0lHRVZfVEhSRUFEKSkKKyAgICAgICAgICAgIFBSRV9NRU1fUkVBRCgidGltZXJfY3JlYXRlKGV2cC5zaWdldl92YWx1ZS5zaXZhbF9wdHIpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIGV2cC0+c2lnZXZfdmFsdWUuc2l2YWxfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2a2lfcG9ydF9ub3RpZnlfdCkpOworICAgICAgfQorICAgfQorCisgICBQUkVfTUVNX1dSSVRFKCJ0aW1lcl9jcmVhdGUodGltZXJpZCkiLCBBUkczLCBzaXplb2YodmtpX3RpbWVyX3QpKTsKK30KKworUE9TVChzeXNfdGltZXJfY3JlYXRlKQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgc2l6ZW9mKHZraV90aW1lcl90KSk7Cit9CisKK1BSRShzeXNfdGltZXJfZGVsZXRlKQoreworICAgLyogaW50IHRpbWVyX2RlbGV0ZSh0aW1lcl90IHRpbWVyaWQpOyAqLworICAgUFJJTlQoInN5c190aW1lcl9kZWxldGUgKCAlbGQgKSIsIFNBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEobG9uZywgInRpbWVyX2RlbGV0ZSIsIHZraV90aW1lcl90LCB0aW1lcmlkKTsKK30KKworUFJFKHN5c190aW1lcl9zZXR0aW1lKQoreworICAgLyogaW50IHRpbWVyX3NldHRpbWUodGltZXJfdCB0aW1lcmlkLCBpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyAqdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXRpbWVyc3BlYyAqb3ZhbHVlKTsKKyAgICAqLworICAgUFJJTlQoInN5c190aW1lcl9zZXR0aW1lICggJWxkLCAlbGQsICUjbHgsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgU0FSRzIsIEFSRzMsIEFSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAidGltZXJfc2V0dGltZSIsIHZraV90aW1lcl90LCB0aW1lcmlkLAorICAgICAgICAgICAgICAgICBpbnQsIGZsYWdzLCBjb25zdCBzdHJ1Y3QgdmtpX2l0aW1lcnNwZWMgKiwgdmFsdWUsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfaXRpbWVyc3BlYyAqLCBvdmFsdWUpOworICAgUFJFX01FTV9SRUFEKCJ0aW1lcl9zZXR0aW1lKHZhbHVlKSIsCisgICAgICAgICAgICAgICAgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfaXRpbWVyc3BlYykpOworICAgaWYgKEFSRzQpCisgICAgICBQUkVfTUVNX1dSSVRFKCJ0aW1lcl9zZXR0aW1lKG92YWx1ZSkiLAorICAgICAgICAgICAgICAgICAgICBBUkc0LCBzaXplb2Yoc3RydWN0IHZraV9pdGltZXJzcGVjKSk7Cit9CisKK1BPU1Qoc3lzX3RpbWVyX3NldHRpbWUpCit7CisgICBpZiAoQVJHNCkKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIHNpemVvZihzdHJ1Y3QgdmtpX2l0aW1lcnNwZWMpKTsKK30KKworUFJFKHN5c190aW1lcl9nZXR0aW1lKQoreworICAgLyogaW50IHRpbWVyX2dldHRpbWUodGltZXJfdCB0aW1lcmlkLCBzdHJ1Y3QgaXRpbWVyc3BlYyAqdmFsdWUpOyAqLworICAgUFJJTlQoInN5c190aW1lcl9nZXR0aW1lICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJ0aW1lcl9nZXR0aW1lIiwgdmtpX3RpbWVyX3QsIHRpbWVyaWQsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfaXRpbWVyc3BlYyAqLCB2YWx1ZSk7CisgICBQUkVfTUVNX1dSSVRFKCJ0aW1lcl9nZXR0aW1lKHZhbHVlKSIsCisgICAgICAgICAgICAgICAgIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX2l0aW1lcnNwZWMpKTsKK30KKworUE9TVChzeXNfdGltZXJfZ2V0dGltZSkKK3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX2l0aW1lcnNwZWMpKTsKK30KKworUFJFKHN5c190aW1lcl9nZXRvdmVycnVuKQoreworICAgLyogaW50IHRpbWVyX2dldG92ZXJydW4odGltZXJfdCB0aW1lcmlkKTsgKi8KKyAgIFBSSU5UKCJzeXNfdGltZXJfZ2V0b3ZlcnJ1biAoICVsZCApIiwgU0FSRzEpOworICAgUFJFX1JFR19SRUFEMShsb25nLCAidGltZXJfZ2V0b3ZlcnJ1biIsIHZraV90aW1lcl90LCB0aW1lcmlkKTsKK30KKworUFJFKHN5c19mYWNsKQoreworICAgLyogaW50IGZhY2woaW50IGZpbGRlcywgaW50IGNtZCwgaW50IG5lbnRyaWVzLCB2b2lkICphY2xidWZwKTsgKi8KKyAgIFBSSU5UKCJzeXNfZmFjbCAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQpOworCisgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJmYWNsIiwgaW50LCBmaWxkZXMsIGludCwgY21kLAorICAgICAgICAgICAgICAgICBpbnQsIG5lbnRyaWVzLCB2b2lkICosIGFjbGJ1ZnApOworCisgICBzd2l0Y2ggKEFSRzIgLypjbWQqLykgeworICAgY2FzZSBWS0lfU0VUQUNMOgorICAgICAgaWYgKEFSRzQpCisgICAgICAgICBQUkVfTUVNX1JFQUQoImZhY2woYWNsYnVmcCkiLCBBUkc0LCBzaXplb2YodmtpX2FjbGVudF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0dFVEFDTDoKKyAgICAgIFBSRV9NRU1fV1JJVEUoImZhY2woYWNsYnVmcCkiLCBBUkc0LCBBUkczICogc2l6ZW9mKHZraV9hY2xlbnRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9HRVRBQ0xDTlQ6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0FDRV9TRVRBQ0w6CisgICAgICBpZiAoQVJHNCkKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiZmFjbChhY2xidWZwKSIsIEFSRzQsIHNpemVvZih2a2lfYWNlX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQUNFX0dFVEFDTDoKKyAgICAgIFBSRV9NRU1fV1JJVEUoImZhY2woYWNsYnVmcCkiLCBBUkc0LCBBUkczICogc2l6ZW9mKHZraV9hY2VfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9BQ0VfR0VUQUNMQ05UOgorICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSBmYWNsIGNhbGwgd2l0aCBjbWQgJWxkLiIsIFNBUkcyKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KKworICAgLyogQmUgc3RyaWN0LiAqLworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgImZhY2wiLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorCitQT1NUKHN5c19mYWNsKQoreworICAgc3dpdGNoIChBUkcyIC8qY21kKi8pIHsKKyAgIGNhc2UgVktJX1NFVEFDTDoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfR0VUQUNMOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHNCwgQVJHMyAqIHNpemVvZih2a2lfYWNsZW50X3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfR0VUQUNMQ05UOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9BQ0VfU0VUQUNMOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9BQ0VfR0VUQUNMOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHNCwgQVJHMyAqIHNpemVvZih2a2lfYWNlX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfQUNFX0dFVEFDTENOVDoKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorfQorCitzdGF0aWMgSW50IHByZV9jaGVja19hbmRfY2xvc2VfZmRzKFRocmVhZElkIHRpZCwgY29uc3QgSENoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZraV9kb29yX2Rlc2NfdCAqZGVzY19wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZraV91aW50X3QgZGVzY19udW0pCit7CisgICB2a2lfdWludF90IGk7CisKKyAgIC8qIFZlcmlmeSBwYXNzZWQgZmlsZSBkZXNjcmlwdG9ycy4gKi8KKyAgIGZvciAoaSA9IDA7IGkgPCBkZXNjX251bTsgaSsrKSB7CisgICAgICB2a2lfZG9vcl9kZXNjX3QgKmRlc2MgPSAmZGVzY19wdHJbaV07CisgICAgICBpZiAoKGRlc2MtPmRfYXR0cmlidXRlcyAmIERPT1JfREVTQ1JJUFRPUikgJiYKKyAgICAgICAgICAoZGVzYy0+ZF9hdHRyaWJ1dGVzICYgRE9PUl9SRUxFQVNFKSkgeworICAgICAgICAgSW50IGZkID0gZGVzYy0+ZF9kYXRhLmRfZGVzYy5kX2Rlc2NyaXB0b3I7CisKKyAgICAgICAgIC8qIERldGVjdCBhbmQgbmVnYXRlIGF0dGVtcHRzIGJ5IHRoZSBjbGllbnQgdG8gY2xvc2UgVmFsZ3JpbmQncyBmZHMuCisgICAgICAgICAgICBBbHNvIGlmIGRvaW5nIC1kIHN0eWxlIGxvZ2dpbmcgKHdoaWNoIGlzIHRvIGZkID0gMiA9IHN0ZGVyciksCisgICAgICAgICAgICBkb24ndCBhbGxvdyB0aGF0IHRvIGJlIGNsb3NlZCBlaXRoZXIuICovCisgICAgICAgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShmZCwgbmFtZSwgdGlkLCBGYWxzZSkgfHwKKyAgICAgICAgICAgICAoZmQgPT0gMiAmJiBWR18oZGVidWdMb2dfZ2V0TGV2ZWwpKCkgPiAwKSkKKyAgICAgICAgICAgIHJldHVybiBWS0lfRUJBREY7CisgICAgICB9CisgICB9CisKKyAgIC8qIEFsbCBmZHMgYXJlIGFsbG93ZWQsIHJlY29yZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY2xvc2VkIG9uZXMuCisKKyAgICAgIE5vdGU6IFJlY29yZGluZyBpbmZvcm1hdGlvbiBhYm91dCBhbnkgY2xvc2VkIGZkcyBzaG91bGQgZ2VuZXJhbGx5IGhhcHBlbgorICAgICAgaW4gYSBwb3N0IHdyYXBwZXIgYnV0IGl0IGlzIG5vdCBwb3NzaWJsZSBpbiB0aGlzIGNhc2UgYmVjYXVzZSBkb29yIGNhbGxzCisgICAgICBhcmUgInZlcnkgYmxvY2tpbmciLCBpZiB0aGUgaW5mb3JtYXRpb24gd2FzIHJlY29yZGVkIGFmdGVyIHRoZSBzeXNjYWxsCisgICAgICBmaW5pc2hlcyB0aGVuIGl0IHdvdWxkIGJlIG91dC1vZi1kYXRlIGR1cmluZyB0aGUgY2FsbCwgaS5lLiB3aGlsZSB0aGUKKyAgICAgIHN5c2NhbGwgaXMgYmxvY2tlZCBpbiB0aGUga2VybmVsLiAgVGhlcmVmb3JlLCB3ZSByZWNvcmQgY2xvc2VkIGZkcyBmb3IKKyAgICAgIHRoaXMgc3BlY2lmaWMgc3lzY2FsbCBpbiB0aGUgUFJFIHdyYXBwZXIuICBVbmZvcnR1bmF0ZWx5LCB0aGlzIGNyZWF0ZXMKKyAgICAgIGEgcHJvYmxlbSB3aGVuIHRoZSBzeXNjYWxsIGZhaWxzLCBmb3IgZXhhbXBsZSwgZG9vcl9jYWxsKCkgY2FuIGZhaWwgd2l0aAorICAgICAgRUJBREYgb3IgRUZBVUxUIGFuZCB0aGVuIG5vIGZkcyBhcmUgcmVsZWFzZWQuICBJZiB0aGF0IGhhcHBlbnMgdGhlCisgICAgICBpbmZvcm1hdGlvbiBhYm91dCBvcGVuZWQgZmRzIGlzIGluY29ycmVjdC4gIFRoaXMgc2hvdWxkIGJlIHZlcnkgcmFyZSAoSQorICAgICAgaG9wZSkgYW5kIHN1Y2ggYSBjb25kaXRpb24gaXMgYWxzbyByZXBvcnRlZCBpbiB0aGUgcG9zdCB3cmFwcGVyLiAqLworICAgaWYgKFZHXyhjbG9fdHJhY2tfZmRzKSkgeworICAgICAgZm9yIChpID0gMDsgaSA8IGRlc2NfbnVtOyBpKyspIHsKKyAgICAgICAgIHZraV9kb29yX2Rlc2NfdCAqZGVzYyA9ICZkZXNjX3B0cltpXTsKKyAgICAgICAgIGlmICgoZGVzYy0+ZF9hdHRyaWJ1dGVzICYgRE9PUl9ERVNDUklQVE9SKSAmJgorICAgICAgICAgICAgIChkZXNjLT5kX2F0dHJpYnV0ZXMgJiBET09SX1JFTEVBU0UpKSB7CisgICAgICAgICAgICBJbnQgZmQgPSBkZXNjLT5kX2RhdGEuZF9kZXNjLmRfZGVzY3JpcHRvcjsKKyAgICAgICAgICAgIE1MXyhyZWNvcmRfZmRfY2xvc2UpKGZkKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0KKworICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHBvc3RfcmVjb3JkX2ZkcyhUaHJlYWRJZCB0aWQsIGNvbnN0IEhDaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZraV9kb29yX2Rlc2NfdCAqZGVzY19wdHIsIHZraV91aW50X3QgZGVzY19udW0pCit7CisgICB2a2lfdWludF90IGk7CisKKyAgIC8qIFJlY29yZCByZXR1cm5lZCBmaWxlIGRlc2NyaXB0b3JzLiAqLworICAgZm9yIChpID0gMDsgaSA8IGRlc2NfbnVtOyBpKyspIHsKKyAgICAgIHZraV9kb29yX2Rlc2NfdCAqZGVzYyA9ICZkZXNjX3B0cltpXTsKKyAgICAgIGlmIChkZXNjLT5kX2F0dHJpYnV0ZXMgJiBET09SX0RFU0NSSVBUT1IpIHsKKyAgICAgICAgIEludCBmZCA9IGRlc2MtPmRfZGF0YS5kX2Rlc2MuZF9kZXNjcmlwdG9yOworICAgICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoZmQsIG5hbWUsIHRpZCwgVHJ1ZSkpIHsKKyAgICAgICAgICAgIC8qIFVuZm9ydHVuYXRlbHksIHdlIGNhbm5vdCByZWNvdmVyIGF0IHRoaXMgcG9pbnQgYW5kIGhhdmUgdG8gZmFpbAorICAgICAgICAgICAgICAgaGFyZC4gKi8KKyAgICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiVGhlICVzIHN5c2NhbGwgcmV0dXJuZWQgYW4gdW5hbGxvd2VkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlIGRlc2NyaXB0b3IgJWQuXG4iLCBuYW1lLCBmZCk7CisgICAgICAgICAgICBWR18oZXhpdCkoMTAxKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UgaWYgKFZHXyhjbG9fdHJhY2tfZmRzKSkKKyAgICAgICAgICAgIE1MXyhyZWNvcmRfZmRfb3Blbl9uYW1lZCkodGlkLCBmZCk7CisgICAgICB9CisgICB9Cit9CisKKy8qIEhhbmRsZXMgcmVwb3NpdG9yeSBkb29yIHByb3RvY29sIHJlcXVlc3Qgb3ZlciBjbGllbnQgZG9vciBmZC4gKi8KK3N0YXRpYyB2b2lkIHJlcG9zaXRvcnlfZG9vcl9wcmVfbWVtX2Rvb3JfY2FsbF9ob29rKFRocmVhZElkIHRpZCwgSW50IGZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YV9wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXplVCBkYXRhX3NpemUpCit7CisgICB2a2lfcmVwX3Byb3RvY29sX3JlcXVlc3RfdCAqcCA9ICh2a2lfcmVwX3Byb3RvY29sX3JlcXVlc3RfdCAqKSBkYXRhX3B0cjsKKyAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICJyZXF1ZXN0LT5ycHJfcmVxdWVzdCkiLCBwLT5ycHJfcmVxdWVzdCk7CisKKyAgIGlmIChNTF8oc2FmZV90b19kZXJlZikocCwgc2l6ZW9mKHZraV9yZXBfcHJvdG9jb2xfcmVxdWVzdF90KSkpIHsKKyAgICAgIHN3aXRjaCAocC0+cnByX3JlcXVlc3QpIHsKKyAgICAgIGNhc2UgVktJX1JFUF9QUk9UT0NPTF9DTE9TRToKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9TRVRVUDoKKyAgICAgICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCB2a2lfcmVwX3Byb3RvY29sX2VudGl0eV9zZXR1cCAqciA9CisgICAgICAgICAgICAgICAoc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X3NldHVwICopIHA7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW50aXR5X3NldHVwLT5ycHJfZW50aXR5aWQpIiwgci0+cnByX2VudGl0eWlkKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbnRpdHlfc2V0dXAtPnJwcl9lbnRpdHl0eXBlKSIsIHItPnJwcl9lbnRpdHl0eXBlKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9OQU1FOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X25hbWUgKnIgPQorICAgICAgICAgICAgICAgKHN0cnVjdCB2a2lfcmVwX3Byb3RvY29sX2VudGl0eV9uYW1lICopIHA7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW50aXR5X25hbWUtPnJwcl9lbnRpdHlpZCkiLCByLT5ycHJfZW50aXR5aWQpOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudGl0eV9uYW1lLT5ycHJfYW5zd2VydHlwZSkiLCByLT5ycHJfYW5zd2VydHlwZSk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyNpZiAoU09MQVJJU19SRVBDQUNIRV9QUk9UT0NPTF9WRVJTSU9OID49IDI1KQorICAgICAgY2FzZSBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9HRVRfUk9PVDoKKyAgICAgICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCB2a2lfcmVwX3Byb3RvY29sX2VudGl0eV9yb290ICpyID0KKyAgICAgICAgICAgICAgIChzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9lbnRpdHlfcm9vdCAqKSBwOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudGl0eV9yb290LT5ycHJfZW50aXR5aWQpIiwgci0+cnByX2VudGl0eWlkKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbnRpdHlfcm9vdC0+cnByX291dGlkKSIsIHItPnJwcl9vdXRpZCk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBTT0xBUklTX1JFUENBQ0hFX1BST1RPQ09MX1ZFUlNJT04gPj0gMjUgKi8KKyAgICAgIGNhc2UgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VUOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X2dldCAqciA9CisgICAgICAgICAgICAgICAoc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X2dldCAqKSBwOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudGl0eV9nZXQtPnJwcl9lbnRpdHlpZCkiLCByLT5ycHJfZW50aXR5aWQpOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudGl0eV9nZXQtPnJwcl9vYmplY3QpIiwgci0+cnByX29iamVjdCk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VUX0NISUxEOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X2dldF9jaGlsZCAqciA9CisgICAgICAgICAgICAgICAoc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X2dldF9jaGlsZCAqKSBwOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudGl0eV9nZXRfY2hpbGQtPnJwcl9lbnRpdHlpZCkiLCByLT5ycHJfZW50aXR5aWQpOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudGl0eV9nZXRfY2hpbGQtPnJwcl9jaGlsZGlkKSIsIHItPnJwcl9jaGlsZGlkKTsKKyAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVudGl0eV9nZXRfY2hpbGQtPnJwcl9uYW1lKSIsIChBZGRyKSByLT5ycHJfbmFtZSk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VUX1BBUkVOVDoKKyAgICAgICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCB2a2lfcmVwX3Byb3RvY29sX2VudGl0eV9wYXJlbnQgKnIgPQorICAgICAgICAgICAgICAgKHN0cnVjdCB2a2lfcmVwX3Byb3RvY29sX2VudGl0eV9wYXJlbnQgKikgcDsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbnRpdHlfZ2V0X3BhcmVudC0+cnByX2VudGl0eWlkKSIsIHItPnJwcl9lbnRpdHlpZCk7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW50aXR5X2dldF9wYXJlbnQtPnJwcl9vdXRpZCkiLCByLT5ycHJfb3V0aWQpOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX1JFU0VUOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X3Jlc2V0ICpyID0KKyAgICAgICAgICAgICAgIChzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9lbnRpdHlfcmVzZXQgKikgcDsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbnRpdHlfcmVzZXQtPnJwcl9lbnRpdHlpZCkiLCByLT5ycHJfZW50aXR5aWQpOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX1RFQVJET1dOOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X3RlYXJkb3duICpyID0KKyAgICAgICAgICAgICAgIChzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9lbnRpdHlfdGVhcmRvd24gKikgcDsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbnRpdHlfdGVhcmRvd24tPnJwcl9lbnRpdHlpZCkiLCByLT5ycHJfZW50aXR5aWQpOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9SRUFEOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfaXRlcl9yZWFkICpyID0KKyAgICAgICAgICAgICAgIChzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9pdGVyX3JlYWQgKikgcDsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyX3JlYWQtPnJwcl9pdGVyaWQpIiwgci0+cnByX2l0ZXJpZCk7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlcl9yZWFkLT5ycHJfc2VxdWVuY2UpIiwgci0+cnByX3NlcXVlbmNlKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyX3JlYWQtPnJwcl9lbnRpdHlpZCkiLCByLT5ycHJfZW50aXR5aWQpOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9SRUFEX1ZBTFVFOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfaXRlcl9yZWFkX3ZhbHVlICpyID0KKyAgICAgICAgICAgICAgIChzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9pdGVyX3JlYWRfdmFsdWUgKikgcDsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyX3JlYWRfdmFsdWUtPnJwcl9pdGVyaWQpIiwgci0+cnByX2l0ZXJpZCk7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlcl9yZWFkX3ZhbHVlLT5ycHJfc2VxdWVuY2UpIiwgci0+cnByX3NlcXVlbmNlKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfUkVQX1BST1RPQ09MX0lURVJfUkVTRVQ6CisgICAgICBjYXNlIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TRVRVUDoKKyAgICAgIGNhc2UgVktJX1JFUF9QUk9UT0NPTF9JVEVSX1RFQVJET1dOOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfaXRlcl9yZXF1ZXN0ICpyID0KKyAgICAgICAgICAgICAgIChzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9pdGVyX3JlcXVlc3QgKikgcDsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyX3JlcXVlc3QtPnJwcl9pdGVyaWQpIiwgci0+cnByX2l0ZXJpZCk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX1JFUF9QUk9UT0NPTF9JVEVSX1NUQVJUOgorICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfaXRlcl9zdGFydCAqciA9CisgICAgICAgICAgICAgICAoc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfaXRlcl9zdGFydCAqKSBwOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIml0ZXJfc3RhcnQtPnJwcl9pdGVyaWQpIiwgci0+cnByX2l0ZXJpZCk7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlcl9zdGFydC0+cnByX2VudGl0eSkiLCByLT5ycHJfZW50aXR5KTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyX3N0YXJ0LT5ycHJfaXRlcnR5cGUpIiwgci0+cnByX2l0ZXJ0eXBlKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyX3N0YXJ0LT5ycHJfZmxhZ3MpIiwgci0+cnByX2ZsYWdzKTsKKyAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIml0ZXJfc3RhcnQtPnJwcl9wYXR0ZXJuKSIsIChBZGRyKSByLT5ycHJfcGF0dGVybik7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX1JFUF9QUk9UT0NPTF9QUk9QRVJUWV9HRVRfVFlQRToKKyAgICAgIGNhc2UgVktJX1JFUF9QUk9UT0NPTF9QUk9QRVJUWV9HRVRfVkFMVUU6CisgICAgICAgICB7CisgICAgICAgICAgICBzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9wcm9wZXJ0eV9yZXF1ZXN0ICpyID0KKyAgICAgICAgICAgICAgIChzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9wcm9wZXJ0eV9yZXF1ZXN0ICopIHA7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvcGVydHlfcmVxdWVzdC0+cnByX2VudGl0eWlkKSIsIHItPnJwcl9lbnRpdHlpZCk7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIkRvb3Igd3JhcHBlciBvZiAiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgd2hlcmUgcnByX3JlcXVlc3Q9JXUuIiwgcC0+cnByX3JlcXVlc3QpOworICAgICAgICAgLyogTk9UUkVBQ0hFRCAqLworICAgICAgICAgYnJlYWs7CisgICAgICB9ICAgICAgICAKKyAgIH0KK30KKworLyogSGFuZGxlcyByZXBvc2l0b3J5IGRvb3IgcHJvdG9jb2wgcmVzcG9uc2Ugb3ZlciBjbGllbnQgZG9vciBmZC4gKi8KK3N0YXRpYyB2b2lkIHJlcG9zaXRvcnlfZG9vcl9wb3N0X21lbV9kb29yX2NhbGxfaG9vayhUaHJlYWRJZCB0aWQsIEludCBmZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpyYnVmLCBTaXplVCByc2l6ZSkKK3sKKyAgIC8qIDpUT0RPOiBJZGVhbGx5IHdlIHdvdWxkIG5lZWQgdG8gbWF0Y2ggdGhlIHJlc3BvbnNlIHR5cGUgd2l0aCB0aGUKKyAgICAgIHByZXZpb3VzIHJlcXVlc3QgYmVjYXVzZSByZXNwb25zZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBhbnkKKyAgICAgIHR5cGUgaWRlbnRpZmljYXRpb24uCisgICAgICBGb3Igbm93IHNpbXBseSBtYWtlIGRlZmluZWQgd2hvbGUgcmVzcG9uc2UgYnVmZmVyLiAqLworICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpIHJidWYsIHJzaXplKTsKK30KKworLyogUHJlLXN5c2NhbGwgY2hlY2tzIGZvciBwYXJhbXMtPmRhdGFfcHRyIGNvbnRlbnRzIG9mIGEgZG9vcl9jYWxsKCkuICovCitzdGF0aWMgdm9pZCBkb29yX2NhbGxfcHJlX21lbV9wYXJhbXNfZGF0YShUaHJlYWRJZCB0aWQsIEludCBmZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGFfcHRyLCBTaXplVCBkYXRhX3NpemUpCit7CisgICBjb25zdCBIQ2hhciAqcGF0aG5hbWU7CisKKyAgIC8qIEdldCBwYXRobmFtZSBvZiB0aGUgZG9vciBmaWxlIGRlc2NyaXB0b3IsIGlmIG5vdCBhbHJlYWR5IGRvbmUuCisgICAgICBOZWVkZWQgdG8gZGlzc2VjdCBkb29yIHNlcnZpY2Ugb24gdGhlIHBhdGhuYW1lIGJlbG93LiAqLworICAgaWYgKCFWR18oY2xvX3RyYWNrX2ZkcykgJiYgIU1MXyhmZF9yZWNvcmRlZCkoZmQpKSB7CisgICAgICBNTF8ocmVjb3JkX2ZkX29wZW5fbmFtZWQpKHRpZCwgZmQpOworICAgfQorICAgcGF0aG5hbWUgPSBNTF8oZmluZF9mZF9yZWNvcmRlZF9ieV9mZCkoZmQpOworCisgICAvKiBEZWJ1Zy1vbmx5IHByaW50aW5nLiAqLworICAgaWYgKDApIHsKKyAgICAgIFZHXyhwcmludGYpKCJQUkUoZG9vcl9jYWxsKSB3aXRoIGZkPSVkIGFuZCBmaWxlbmFtZT0lc1xuIiwKKyAgICAgICAgICAgICAgICAgIGZkLCBwYXRobmFtZSk7CisgICB9CisKKyAgIGlmIChWR19TVFJFUShwYXRobmFtZSwgVktJX19QQVRIX0tDRkRfRE9PUikpIHsKKyAgICAgIHZraV9rY2ZfZG9vcl9hcmdfdCAqcCA9ICh2a2lfa2NmX2Rvb3JfYXJnX3QgKikgZGF0YV9wdHI7CisKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9fUEFUSF9LQ0ZEX0RPT1IgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAia2NmX2Rvb3JfYXJnX3QtPmRhX3ZlcnNpb24pIiwgcC0+ZGFfdmVyc2lvbik7CisgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfX1BBVEhfS0NGRF9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgImtjZl9kb29yX2FyZ190LT5kYV9pc2tlcm5lbCkiLCBwLT5kYV9pc2tlcm5lbCk7CisgICAgICBQUkVfTUVNX1JBU0NJSVooImRvb3JfY2FsbChcIiIgVktJX19QQVRIX0tDRkRfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAia2NmX2Rvb3JfYXJnX3QtPmRhX3UuZmlsZW5hbWUpIiwKKyAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgcC0+dmtpX2RhX3UuZmlsZW5hbWUpOworICAgfSBlbHNlIGlmIChWR19TVFJFUShwYXRobmFtZSwgVktJX05BTUVfU0VSVklDRV9ET09SKSkgeworICAgICAgdmtpX25zc19waGVhZGVyX3QgKnAgPSAodmtpX25zc19waGVhZGVyX3QgKikgZGF0YV9wdHI7CisKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+bnNjX2NhbGxudW1iZXIpIiwgcC0+bnNjX2NhbGxudW1iZXIpOworICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKShwLCBzaXplb2YodmtpX25zc19waGVhZGVyX3QpKSkgeworICAgICAgICAgaWYgKChwLT5uc2NfY2FsbG51bWJlciAmIFZLSV9OU0NEVjJDQVRNQVNLKSA9PSBWS0lfTlNDRF9DQUxMQ0FUX0FQUCkgeworICAgICAgICAgICAgLyogcmVxdWVzdCBmcm9tIGFuIGFwcGxpY2F0aW9uIHRvd2FyZHMgbnNjZCAqLworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5wX3ZlcnNpb24pIiwgcC0+cF92ZXJzaW9uKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+ZGJkX29mZikiLCBwLT5kYmRfb2ZmKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+ZGJkX2xlbikiLCBwLT5kYmRfbGVuKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+a2V5X29mZikiLCBwLT5rZXlfb2ZmKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+a2V5X2xlbikiLCBwLT5rZXlfbGVuKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+ZGF0YV9vZmYpIiwgcC0+ZGF0YV9vZmYpOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5kYXRhX2xlbikiLCBwLT5kYXRhX2xlbik7CisgICAgICAgICAgICAvKiBGaWVsZHMgZXh0X29mZiBhbmQgZXh0X2xlbiBhcmUgc2V0IG9ubHkgc3BvcmFkaWNhbGx5LiAqLworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5wYnVmc2l6KSIsIHAtPnBidWZzaXopOworICAgICAgICAgICAgUFJFX01FTV9XUklURSgiZG9vcl9jYWxsKFwiIiBWS0lfTkFNRV9TRVJWSUNFX0RPT1IgIlwiLCBwYnVmKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSBwLCBwLT5wYnVmc2l6KTsKKworICAgICAgICAgICAgaWYgKHAtPmRiZF9sZW4gPiAwKSB7CisgICAgICAgICAgICAgICB2a2lfbnNzX2RiZF90ICpkYmQKKyAgICAgICAgICAgICAgICAgID0gKHZraV9uc3NfZGJkX3QgKikgKChIQ2hhciAqKSBwICsgcC0+ZGJkX29mZik7CisKKyAgICAgICAgICAgICAgIFBSRV9NRU1fUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfTkFNRV9TRVJWSUNFX0RPT1IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIsIG5zc19kYmQpIiwgKEFkZHIpIGRiZCwgc2l6ZW9mKHZraV9uc3NfZGJkX3QpKTsKKyAgICAgICAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoZGJkLCBzaXplb2YodmtpX25zc19kYmRfdCkpKSB7CisgICAgICAgICAgICAgICAgICBpZiAoZGJkLT5vX25hbWUgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigiZG9vcl9jYWxsKFwiIiBWS0lfTkFNRV9TRVJWSUNFX0RPT1IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIsIG5zc19kYmQtPm9fbmFtZSkiLCAoQWRkcikgKChIQ2hhciAqKSBwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBwLT5kYmRfb2ZmICsgZGJkLT5vX25hbWUpKTsKKyAgICAgICAgICAgICAgICAgIGlmIChkYmQtPm9fY29uZmlnX25hbWUgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigiZG9vcl9jYWxsKFwiIiBWS0lfTkFNRV9TRVJWSUNFX0RPT1IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIsIG5zc19kYmQtPm9fY29uZmlnX25hbWUpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgKChIQ2hhciAqKSBwICsgcC0+ZGJkX29mZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGJkLT5vX2NvbmZpZ19uYW1lKSk7CisgICAgICAgICAgICAgICAgICBpZiAoZGJkLT5vX2RlZmF1bHRfY29uZmlnICE9IDApCisgICAgICAgICAgICAgICAgICAgICBQUkVfTUVNX1JBU0NJSVooImRvb3JfY2FsbChcIiIgVktJX05BTUVfU0VSVklDRV9ET09SCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiLCBuc3NfZGJkLT5vX2RlZmF1bHRfY29uZmlnKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpICgoSENoYXIgKikgcCArIHAtPmRiZF9vZmYgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiZC0+b19kZWZhdWx0X2NvbmZpZykpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKworICAgICAgICAgICBQUkVfTUVNX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgbnNzLT5rZXkpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSAoKEhDaGFyICopIHAgKyBwLT5rZXlfb2ZmKSwgcC0+a2V5X2xlbik7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogcmVxdWVzdCBmcm9tIGEgY2hpbGQgbnNjZCB0b3dhcmRzIHBhcmVudCBuc2NkICovCisgICAgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIkRvb3Igd3JhcHBlciBvZiBjaGlsZC9wYXJlbnQgbnNjZC4iKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0gZWxzZSBpZiAoVkdfU1RSRVEocGF0aG5hbWUsIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSkpIHsKKyAgICAgIHZraV9yZXBvc2l0b3J5X2Rvb3JfcmVxdWVzdF90ICpwID0JCisgICAgICAgICAodmtpX3JlcG9zaXRvcnlfZG9vcl9yZXF1ZXN0X3QgKikgZGF0YV9wdHI7CisKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX2NhbGwoXCIiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0LT5yZHJfdmVyc2lvbikiLCBwLT5yZHJfdmVyc2lvbik7CisgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKFwiIiBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAicmVxdWVzdC0+cmRyX3JlcXVlc3QpIiwgcC0+cmRyX3JlcXVlc3QpOworICAgICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKShwLCBzaXplb2YodmtpX3JlcG9zaXRvcnlfZG9vcl9yZXF1ZXN0X3QpKSkgeworICAgICAgICAgaWYgKHAtPnJkcl92ZXJzaW9uID09IFZLSV9SRVBPU0lUT1JZX0RPT1JfVkVSU0lPTikgeworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVlc3QtPnJkcl9mbGFncykiLCBwLT5yZHJfZmxhZ3MpOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChcIiIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVlc3QtPnJkcl9kZWJ1ZykiLCBwLT5yZHJfZGVidWcpOworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiRG9vciB3cmFwcGVyIG9mICIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB3aGVyZSB2ZXJzaW9uPSV1LiIsIHAtPnJkcl92ZXJzaW9uKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0gZWxzZSB7CisgICAgICBjb25zdCBPcGVuRG9vciAqb3Blbl9kb29yID0gZG9vcl9maW5kX2J5X2ZkKGZkKTsKKyAgICAgIGlmICgob3Blbl9kb29yICE9IE5VTEwpICYmIChvcGVuX2Rvb3ItPnByZV9tZW1faG9vayAhPSBOVUxMKSkgeworICAgICAgICAgb3Blbl9kb29yLT5wcmVfbWVtX2hvb2sodGlkLCBmZCwgZGF0YV9wdHIsIGRhdGFfc2l6ZSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgaWYgKFNpbUhpbnRpUyhTaW1IaW50X2xheF9kb29ycywgVkdfKGNsb19zaW1faGludHMpKSkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEJlIHZlcnkgbGF4IGFib3V0IGRvb3Igc3lzY2FsbCBoYW5kbGluZyBvdmVyIHVucmVjb2duaXplZAorICAgICAgICAgICAgICogZG9vciBmaWxlIGRlc2NyaXB0b3JzLiBEb2VzIG5vdCByZXF1aXJlIHRoYXQgZnVsbCBidWZmZXIKKyAgICAgICAgICAgICAqIGlzIGluaXRpYWxpemVkIHdoZW4gd3JpdGluZy4gV2l0aG91dCB0aGlzLCBwcm9ncmFtcyB1c2luZworICAgICAgICAgICAgICogbGliZG9vcigzTElCKSBmdW5jdGlvbmFsaXR5IHdpdGggY29tcGxldGVseSBwcm9wcmlldGFyeQorICAgICAgICAgICAgICogc2VtYW50aWNzIG1heSByZXBvcnQgbGFyZ2UgbnVtYmVyIG9mIGZhbHNlIHBvc2l0aXZlcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN0YXRpYyBJbnQgbW9hbnMgPSAzOworCisgICAgICAgICAgICAvKiBnZW5lcmljIGRlZmF1bHQgKi8KKyAgICAgICAgICAgIGlmIChtb2FucyA+IDAgJiYgIVZHXyhjbG9feG1sKSkgeworICAgICAgICAgICAgICAgbW9hbnMtLTsKKyAgICAgICAgICAgICAgIFZHXyh1bXNnKSgKKyJXYXJuaW5nOiBub3RlZCBhbmQgZ2VuZXJpY2FsbHkgaGFuZGxlZCBkb29yIGNhbGxcbiIKKyIgICBvbiBmaWxlIGRlc2NyaXB0b3IgJWQgKGZpbGVuYW1lOiAlcykuXG4iCisiICAgVGhpcyBjb3VsZCBjYXVzZSBzcHVyaW91cyB2YWx1ZSBlcnJvcnMgdG8gYXBwZWFyLlxuIgorIiAgIFNlZSBSRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMIGZvciBndWlkYW5jZSBvbiB3cml0aW5nIGEgcHJvcGVyIHdyYXBwZXIuXG4iCisiICAgQWx0ZXJuYXRpdmVseSB5b3UgbWF5IGZpbmQgJy0tc2ltLWhpbnRzPWxheC1kb29ycycgb3B0aW9uIHVzZWZ1bC5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZmQsIHBhdGhuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFBSRV9NRU1fUkVBRCgiZG9vcl9jYWxsKHBhcmFtcy0+ZGF0YV9wdHIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgZGF0YV9wdHIsIGRhdGFfc2l6ZSk7CisgICAgICAgICB9CisgICAgICB9CisgICB9Cit9CisKKy8qIFBvc3Qtc3lzY2FsbCBjaGVja3MgZm9yIHBhcmFtcy0+cmJ1ZiBjb250ZW50cyBvZiBhIGRvb3JfY2FsbCgpLiAqLworc3RhdGljIHZvaWQgZG9vcl9jYWxsX3Bvc3RfbWVtX3BhcmFtc19yYnVmKFRocmVhZElkIHRpZCwgSW50IGZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnJidWYsIFNpemVUIHJzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZraV9kb29yX2Rlc2NfdCAqZGVzY19wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmtpX3VpbnRfdCBkZXNjX251bSkKK3sKKyAgIGNvbnN0IEhDaGFyICpwYXRobmFtZSA9IE1MXyhmaW5kX2ZkX3JlY29yZGVkX2J5X2ZkKShmZCk7CisKKyAgIC8qIERlYnVnLW9ubHkgcHJpbnRpbmcuICovCisgICBpZiAoMCkgeworICAgICAgVkdfKHByaW50ZikoIlBPU1QoZG9vcl9jYWxsKSB3aXRoIGZkPSVkIGFuZCBmaWxlbmFtZT0lc1xuIiwKKyAgICAgICAgICAgICAgICAgIGZkLCBwYXRobmFtZSk7CisgICB9CisKKyAgIGlmIChWR19TVFJFUShwYXRobmFtZSwgVktJX19QQVRIX0tDRkRfRE9PUikpIHsKKyAgICAgIHZraV9rY2ZfZG9vcl9hcmdfdCAqcCA9ICh2a2lfa2NmX2Rvb3JfYXJnX3QgKikgcmJ1ZjsKKworICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5kYV92ZXJzaW9uKTsKKyAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+dmtpX2RhX3UucmVzdWx0LnN0YXR1cyk7CisgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgcC0+dmtpX2RhX3UucmVzdWx0LnNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgIHAtPnZraV9kYV91LnJlc3VsdC5zaWdsZW4pOworICAgfSBlbHNlIGlmIChWR19TVFJFUShwYXRobmFtZSwgVktJX05BTUVfU0VSVklDRV9ET09SKSkgeworICAgICAgdmtpX25zc19waGVhZGVyX3QgKnAgPSAodmtpX25zc19waGVhZGVyX3QgKikgcmJ1ZjsKKworICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5uc2NfY2FsbG51bWJlcik7CisgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKHAsIHNpemVvZih2a2lfbnNzX3BoZWFkZXJfdCkpKSB7CisgICAgICAgICBpZiAoKHAtPm5zY19jYWxsbnVtYmVyICYgVktJX05TQ0RWMkNBVE1BU0spID09IFZLSV9OU0NEX0NBTExDQVRfQVBQKSB7CisgICAgICAgICAgICAvKiByZXNwb25zZSBmcm9tIG5zY2QgdG8gYW4gYXBwbGljYXRpb24gKi8KKyAgICAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+cF9zdGF0dXMpOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5wX2Vycm5vKTsKKyAgICAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+cF9oZXJybm8pOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5kYmRfb2ZmKTsKKyAgICAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+ZGJkX2xlbik7CisgICAgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmtleV9vZmYpOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5rZXlfbGVuKTsKKyAgICAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+ZGF0YV9vZmYpOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5kYXRhX2xlbik7CisgICAgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmV4dF9vZmYpOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5leHRfbGVuKTsKKyAgICAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+cGJ1ZnNpeik7CisKKyAgICAgICAgICAgIGlmIChwLT5wYnVmc2l6IDw9IHJzaXplKSB7CisgICAgICAgICAgICAgICBpZiAocC0+ZGJkX29mZiA8IHAtPnBidWZzaXogLSBzaXplb2YodmtpX25zc19waGVhZGVyX3QpKSB7CisgICAgICAgICAgICAgICAgICBTaXplVCBsZW4gPSBNSU4ocC0+ZGJkX2xlbiwgcC0+cGJ1ZnNpeiAtIHAtPmRiZF9vZmYpOworICAgICAgICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpICgoSENoYXIgKikgcCArIHAtPmRiZF9vZmYpLCBsZW4pOworICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICBpZiAocC0+a2V5X29mZiA8IHAtPnBidWZzaXogLSBzaXplb2YodmtpX25zc19waGVhZGVyX3QpKSB7CisgICAgICAgICAgICAgICAgICBTaXplVCBsZW4gPSBNSU4ocC0+a2V5X2xlbiwgcC0+cGJ1ZnNpeiAtIHAtPmtleV9vZmYpOworICAgICAgICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpICgoSENoYXIgKikgcCArIHAtPmtleV9vZmYpLCBsZW4pOworICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICBpZiAocC0+ZGF0YV9vZmYgPCBwLT5wYnVmc2l6IC0gc2l6ZW9mKHZraV9uc3NfcGhlYWRlcl90KSkgeworICAgICAgICAgICAgICAgICAgU2l6ZVQgbGVuID0gTUlOKHAtPmRhdGFfbGVuLCBwLT5wYnVmc2l6IC0gcC0+ZGF0YV9vZmYpOworICAgICAgICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpICgoSENoYXIgKikgcCArIHAtPmRhdGFfb2ZmKSwgbGVuKTsKKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgaWYgKHAtPmV4dF9vZmYgPCBwLT5wYnVmc2l6IC0gc2l6ZW9mKHZraV9uc3NfcGhlYWRlcl90KSkgeworICAgICAgICAgICAgICAgICAgU2l6ZVQgbGVuID0gTUlOKHAtPmV4dF9sZW4sIHAtPnBidWZzaXogLSBwLT5leHRfb2ZmKTsKKyAgICAgICAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSAoKEhDaGFyICopIHAgKyBwLT5leHRfb2ZmKSwgbGVuKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiByZXNwb25zZSBmcm9tIHBhcmVudCBuc2NkIHRvIGEgY2hpbGQgbnNjZCAqLworICAgICAgICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJEb29yIHdyYXBwZXIgb2YgY2hpbGQvcGFyZW50IG5zY2QuIik7CisgICAgICAgICB9CisgICAgICB9CisgICB9IGVsc2UgaWYgKFZHX1NUUkVRKHBhdGhuYW1lLCBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUpKSB7CisgICAgICBQT1NUX0ZJRUxEX1dSSVRFKCgodmtpX3JlcG9zaXRvcnlfZG9vcl9yZXNwb25zZV90ICopIHJidWYpLT5yZHJfc3RhdHVzKTsKKyAgICAgIC8qIEEgbmV3IGNsaWVudCBkb29yIGZkIGlzIHBhc3NlZCBvdmVyIHRoZSBnbG9iYWwgcmVwb3NpdG9yeSBkb29yLiAqLworICAgICAgaWYgKChkZXNjX3B0ciAhPSBOVUxMKSAmJiAoZGVzY19udW0gPiAwKSkgeworICAgICAgICAgaWYgKGRlc2NfcHRyWzBdLmRfYXR0cmlidXRlcyAmIERPT1JfREVTQ1JJUFRPUikgeworICAgICAgICAgICAgZG9vcl9yZWNvcmRfY2xpZW50KHRpZCwgZGVzY19wdHJbMF0uZF9kYXRhLmRfZGVzYy5kX2Rlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9kb29yX3ByZV9tZW1fZG9vcl9jYWxsX2hvb2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9kb29yX3Bvc3RfbWVtX2Rvb3JfY2FsbF9ob29rKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0gZWxzZSB7CisgICAgICBjb25zdCBPcGVuRG9vciAqb3Blbl9kb29yID0gZG9vcl9maW5kX2J5X2ZkKGZkKTsKKyAgICAgIGlmICgob3Blbl9kb29yICE9IE5VTEwpICYmIChvcGVuX2Rvb3ItPnBvc3RfbWVtX2hvb2sgIT0gTlVMTCkpIHsKKyAgICAgICAgIG9wZW5fZG9vci0+cG9zdF9tZW1faG9vayh0aWQsIGZkLCByYnVmLCByc2l6ZSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgLyogZ2VuZXJpYyBkZWZhdWx0ICovCisgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgcmJ1ZiwgcnNpemUpOworICAgICAgfQorICAgfQorfQorCisvKiBQcmUtc3lzY2FsbCBjaGVja3MgZm9yIGRhdGFfcHRyIGNvbnRlbnRzIGluIGEgZG9vcl9yZXR1cm4oKS4gKi8KK3N0YXRpYyB2b2lkIGRvb3JfcmV0dXJuX3ByZV9tZW1fZGF0YShUaHJlYWRJZCB0aWQsIEFkZHIgc2VydmVyX3Byb2NlZHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhX3B0ciwgU2l6ZVQgZGF0YV9zaXplKQoreworICAgaWYgKChkYXRhX3NpemUgPT0gMCkgfHwgKHNlcnZlcl9wcm9jZWR1cmUgPT0gMCkpIHsKKyAgICAgIC8qIFRoZXJlIGlzIG5vdGhpbmcgdG8gY2hlY2suIFRoaXMgdXN1YWxseSBoYXBwZW5zIGR1cmluZyB0aHJlYWQncworICAgICAgICAgZmlyc3QgY2FsbCB0byBkb29yX3JldHVybigpLiAqLworICAgICAgcmV0dXJuOworICAgfQorCisgICAvKiBHZXQgcGF0aG5hbWUgb2YgdGhlIGRvb3IgZmlsZSBkZXNjcmlwdG9yIGJhc2VkIG9uIHRoZQorICAgICAgZG9vciBzZXJ2ZXIgcHJvY2VkdXJlICh0aGF0J3MgYWxsIHdlIGhhdmUpLgorICAgICAgTmVlZGVkIHRvIGRpc3NlY3QgZG9vciBzZXJ2aWNlIG9uIHRoZSBwYXRobmFtZSBiZWxvdy4gKi8KKyAgIGNvbnN0IE9wZW5Eb29yICpvcGVuX2Rvb3IgPSBkb29yX2ZpbmRfYnlfcHJvYyhzZXJ2ZXJfcHJvY2VkdXJlKTsKKyAgIGNvbnN0IEhDaGFyICpwYXRobmFtZSA9IChvcGVuX2Rvb3IgIT0gTlVMTCkgPyBvcGVuX2Rvb3ItPnBhdGhuYW1lIDogTlVMTDsKKyAgIEludCBmZCA9IChvcGVuX2Rvb3IgIT0gTlVMTCkgPyBvcGVuX2Rvb3ItPmZkIDogLTE7CisKKyAgIC8qIERlYnVnLW9ubHkgcHJpbnRpbmcuICovCisgICBpZiAoMCkgeworICAgICAgVkdfKHByaW50ZikoIlBSRShkb29yX3JldHVybikgd2l0aCBmZD0lZCBhbmQgZmlsZW5hbWU9JXMgIgorICAgICAgICAgICAgICAgICAgIihucl9kb29yc19yZWNvcmRlZD0ldSlcbiIsCisgICAgICAgICAgICAgICAgICBmZCwgcGF0aG5hbWUsIG5yX2Rvb3JzX3JlY29yZGVkKTsKKyAgIH0KKworICAgaWYgKFZHX1NUUkVRKHBhdGhuYW1lLCBWS0lfX1BBVEhfS0NGRF9ET09SKSkgeworICAgICAgdmtpX2tjZl9kb29yX2FyZ190ICpwID0gKHZraV9rY2ZfZG9vcl9hcmdfdCAqKSBkYXRhX3B0cjsKKworICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfcmV0dXJuKFwiIiBWS0lfX1BBVEhfS0NGRF9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgImtjZl9kb29yX2FyZ190LT5kYV92ZXJzaW9uKSIsIHAtPmRhX3ZlcnNpb24pOworICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfcmV0dXJuKFwiIiBWS0lfX1BBVEhfS0NGRF9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgImtjZl9kb29yX2FyZ190LT5kYV91LnJlc3VsdC5zdGF0dXMpIiwKKyAgICAgICAgICAgICAgICAgICAgIHAtPnZraV9kYV91LnJlc3VsdC5zdGF0dXMpOworICAgICAgUFJFX01FTV9SRUFEKCJkb29yX3JldHVybihcIiIgVktJX19QQVRIX0tDRkRfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAia2NmX2Rvb3JfYXJnX3QtPmRhX3UucmVzdWx0LnNpZ25hdHVyZSkiLAorICAgICAgICAgICAgICAgICAgIChBZGRyKSBwLT52a2lfZGFfdS5yZXN1bHQuc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgIHAtPnZraV9kYV91LnJlc3VsdC5zaWdsZW4pOworICAgfSBlbHNlIGlmIChWR19TVFJFUShwYXRobmFtZSwgVktJX05BTUVfU0VSVklDRV9ET09SKSkgeworICAgICAgdmtpX25zc19waGVhZGVyX3QgKnAgPSAodmtpX25zc19waGVhZGVyX3QgKikgZGF0YV9wdHI7CisKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX3JldHVybihcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5uc2NfY2FsbG51bWJlcikiLCBwLT5uc2NfY2FsbG51bWJlcik7CisgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKHAsIHNpemVvZih2a2lfbnNzX3BoZWFkZXJfdCkpKSB7CisgICAgICAgICBpZiAoKHAtPm5zY19jYWxsbnVtYmVyICYgVktJX05TQ0RWMkNBVE1BU0spID09IFZLSV9OU0NEX0NBTExDQVRfQVBQKSB7CisgICAgICAgICAgICAvKiByZXNwb25zZSBmcm9tIG5zY2QgdG8gYW4gYXBwbGljYXRpb24gKi8KKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX3JldHVybihcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5wX3N0YXR1cykiLCBwLT5wX3N0YXR1cyk7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9yZXR1cm4oXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+cF9lcnJubykiLCBwLT5wX2Vycm5vKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX3JldHVybihcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5wX2hlcnJubykiLCBwLT5wX2hlcnJubyk7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9yZXR1cm4oXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+ZGJkX29mZikiLCBwLT5kYmRfb2ZmKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX3JldHVybihcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5kYmRfbGVuKSIsIHAtPmRiZF9sZW4pOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfcmV0dXJuKFwiIiBWS0lfTkFNRV9TRVJWSUNFX0RPT1IgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAibnNzX3BoZWFkZXItPmRhdGFfb2ZmKSIsIHAtPmRhdGFfb2ZmKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX3JldHVybihcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5kYXRhX2xlbikiLCBwLT5kYXRhX2xlbik7CisgICAgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9yZXR1cm4oXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiXCIsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuc3NfcGhlYWRlci0+ZXh0X29mZikiLCBwLT5leHRfb2ZmKTsKKyAgICAgICAgICAgIFBSRV9GSUVMRF9SRUFEKCJkb29yX3JldHVybihcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zc19waGVhZGVyLT5leHRfbGVuKSIsIHAtPmV4dF9sZW4pOworICAgICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfcmV0dXJuKFwiIiBWS0lfTkFNRV9TRVJWSUNFX0RPT1IgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAibnNzX3BoZWFkZXItPnBidWZzaXopIiwgcC0+cGJ1ZnNpeik7CisgICAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJkb29yX3JldHVybihcIiIgVktJX05BTUVfU0VSVklDRV9ET09SICJcIiwgcGJ1ZikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgcCwgcC0+cGJ1ZnNpeik7CisgICAgICAgICAgICBQUkVfTUVNX1JFQUQoImRvb3JfcmV0dXJuKFwiIiBWS0lfTkFNRV9TRVJWSUNFX0RPT1IKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXCIsIG5zcy0+ZGF0YSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSAoKEhDaGFyICopIHAgKyBwLT5kYXRhX29mZiksIHAtPmRhdGFfbGVuKTsKKyAgICAgICAgICAgIFBSRV9NRU1fUkVBRCgiZG9vcl9yZXR1cm4oXCIiIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUgorICAgICAgICAgICAgICAgICAgICAgICAgICJcIiwgbnNzLT5leHQpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgKChIQ2hhciAqKSBwICsgcC0+ZXh0X29mZiksIHAtPmV4dF9sZW4pOworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIHJlc3BvbnNlIGZyb20gcGFyZW50IG5zY2QgdG8gYSBjaGlsZCBuc2NkICovCisgICAgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIkRvb3Igd3JhcHBlciBvZiBjaGlsZC9wYXJlbnQgbnNjZC4iKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0gZWxzZSBpZiAoVkdfU1RSRVEocGF0aG5hbWUsIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSkpIHsKKyAgICAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiRG9vciB3cmFwcGVyIG9mICIgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FKTsKKyAgIH0gZWxzZSB7CisgICAgICBpZiAoU2ltSGludGlTKFNpbUhpbnRfbGF4X2Rvb3JzLCBWR18oY2xvX3NpbV9oaW50cykpKSB7CisgICAgICAgICAvKgorICAgICAgICAgICogQmUgdmVyeSBsYXggYWJvdXQgZG9vciBzeXNjYWxsIGhhbmRsaW5nIG92ZXIgdW5yZWNvZ25pemVkCisgICAgICAgICAgKiBkb29yIGZpbGUgZGVzY3JpcHRvcnMuIERvZXMgbm90IHJlcXVpcmUgdGhhdCBmdWxsIGJ1ZmZlcgorICAgICAgICAgICogaXMgaW5pdGlhbGl6ZWQgd2hlbiB3cml0aW5nLiBXaXRob3V0IHRoaXMsIHByb2dyYW1zIHVzaW5nCisgICAgICAgICAgKiBsaWJkb29yKDNMSUIpIGZ1bmN0aW9uYWxpdHkgd2l0aCBjb21wbGV0ZWx5IHByb3ByaWV0YXJ5CisgICAgICAgICAgKiBzZW1hbnRpY3MgbWF5IHJlcG9ydCBsYXJnZSBudW1iZXIgb2YgZmFsc2UgcG9zaXRpdmVzLgorICAgICAgICAgICovCisgICAgICB9IGVsc2UgeworICAgICAgICAgc3RhdGljIEludCBtb2FucyA9IDM7CisKKyAgICAgICAgIC8qIGdlbmVyaWMgZGVmYXVsdCAqLworICAgICAgICAgaWYgKG1vYW5zID4gMCAmJiAhVkdfKGNsb194bWwpKSB7CisgICAgICAgICAgICBtb2Fucy0tOworICAgICAgICAgICAgVkdfKHVtc2cpKAorIldhcm5pbmc6IG5vdGVkIGFuZCBnZW5lcmljYWxseSBoYW5kbGVkIGRvb3IgcmV0dXJuXG4iCisiICAgb24gZmlsZSBkZXNjcmlwdG9yICVkIChmaWxlbmFtZTogJXMpLlxuIgorIiAgIFRoaXMgY291bGQgY2F1c2Ugc3B1cmlvdXMgdmFsdWUgZXJyb3JzIHRvIGFwcGVhci5cbiIKKyIgICBTZWUgUkVBRE1FX01JU1NJTkdfU1lTQ0FMTF9PUl9JT0NUTCBmb3IgZ3VpZGFuY2Ugb24gd3JpdGluZyBhIHByb3BlciB3cmFwcGVyLlxuIgorIiAgIEFsdGVybmF0aXZlbHkgeW91IG1heSBmaW5kICctLXNpbS1oaW50cz1sYXgtZG9vcnMnIG9wdGlvbiB1c2VmdWwuXG4iLAorICAgICAgICAgICAgICAgICAgIGZkLCBwYXRobmFtZSk7CisgICAgICAgICB9CisgICAgICAgICBQUkVfTUVNX1JFQUQoImRvb3JfcmV0dXJuKGRhdGFfcHRyKSIsCisgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpIGRhdGFfcHRyLCBkYXRhX3NpemUpOworICAgICAgfQorICAgfQorfQorCisvKiBQb3N0LXN5c2NhbGwgY2hlY2tzIGZvciBkYXRhX3B0ciBjb250ZW50cyBpbiBhIGRvb3JfcmV0dXJuKCkuICovCitzdGF0aWMgdm9pZCBkb29yX3JldHVybl9wb3N0X21lbV9kYXRhKFRocmVhZElkIHRpZCwgQWRkciBzZXJ2ZXJfcHJvY2VkdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhX3B0ciwgU2l6ZVQgZGF0YV9zaXplKQoreworICAgY29uc3QgT3BlbkRvb3IgKm9wZW5fZG9vciA9IGRvb3JfZmluZF9ieV9wcm9jKHNlcnZlcl9wcm9jZWR1cmUpOworICAgY29uc3QgSENoYXIgKnBhdGhuYW1lID0gKG9wZW5fZG9vciAhPSBOVUxMKSA/IG9wZW5fZG9vci0+cGF0aG5hbWUgOiBOVUxMOworCisgICAvKiBEZWJ1Zy1vbmx5IHByaW50aW5nLiAqLworICAgaWYgKDApIHsKKyAgICAgIEludCBmZCA9IChvcGVuX2Rvb3IgIT0gTlVMTCkgPyBvcGVuX2Rvb3ItPmZkIDogLTE7CisgICAgICBWR18ocHJpbnRmKSgiUE9TVChkb29yX3JldHVybikgd2l0aCBmZD0lZCBhbmQgZmlsZW5hbWU9JXMgIgorICAgICAgICAgICAgICAgICAgIihucl9kb29yc19yZWNvcmRlZD0ldSlcbiIsCisgICAgICAgICAgICAgICAgICBmZCwgcGF0aG5hbWUsIG5yX2Rvb3JzX3JlY29yZGVkKTsKKyAgIH0KKworICAgaWYgKFZHX1NUUkVRKHBhdGhuYW1lLCBWS0lfX1BBVEhfS0NGRF9ET09SKSkgeworICAgICAgdmtpX2tjZl9kb29yX2FyZ190ICpwID0gKHZraV9rY2ZfZG9vcl9hcmdfdCAqKSBkYXRhX3B0cjsKKworICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5kYV92ZXJzaW9uKTsKKyAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+ZGFfaXNrZXJuZWwpOworICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpIHAtPnZraV9kYV91LmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgVkdfKHN0cmxlbikocC0+dmtpX2RhX3UuZmlsZW5hbWUpICsgMSk7CisgICB9IGVsc2UgaWYgKFZHX1NUUkVRKHBhdGhuYW1lLCBWS0lfTkFNRV9TRVJWSUNFX0RPT1IpKSB7CisgICAgICB2a2lfbnNzX3BoZWFkZXJfdCAqcCA9ICh2a2lfbnNzX3BoZWFkZXJfdCAqKSBkYXRhX3B0cjsKKworICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5uc2NfY2FsbG51bWJlcik7CisgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKHAsIHNpemVvZih2a2lfbnNzX3BoZWFkZXJfdCkpKSB7CisgICAgICAgICBpZiAoKHAtPm5zY19jYWxsbnVtYmVyICYgVktJX05TQ0RWMkNBVE1BU0spID09IFZLSV9OU0NEX0NBTExDQVRfQVBQKSB7CisgICAgICAgICAgICAvKiByZXF1ZXN0IGZyb20gYW4gYXBwbGljYXRpb24gdG93YXJkcyBuc2NkICovCisgICAgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPnBfdmVyc2lvbik7CisgICAgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmRiZF9vZmYpOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5kYmRfbGVuKTsKKyAgICAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+a2V5X29mZik7CisgICAgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmtleV9sZW4pOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5kYXRhX29mZik7CisgICAgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmRhdGFfbGVuKTsKKyAgICAgICAgICAgIFBPU1RfRklFTERfV1JJVEUocC0+ZXh0X29mZik7CisgICAgICAgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHAtPmV4dF9sZW4pOworICAgICAgICAgICAgUE9TVF9GSUVMRF9XUklURShwLT5wYnVmc2l6KTsKKworICAgICAgICAgICAgaWYgKHAtPmRiZF9sZW4gPiAwKSB7CisgICAgICAgICAgICAgICB2a2lfbnNzX2RiZF90ICpkYmQKKyAgICAgICAgICAgICAgICAgID0gKHZraV9uc3NfZGJkX3QgKikgKChIQ2hhciAqKSBwICsgcC0+ZGJkX29mZik7CisKKyAgICAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKSBkYmQsIHNpemVvZih2a2lfbnNzX2RiZF90KSk7CisgICAgICAgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKGRiZCwgc2l6ZW9mKHZraV9uc3NfZGJkX3QpKSkgeworICAgICAgICAgICAgICAgICAgU2l6ZVQgaGVhZGVyc19zaXplID0gc2l6ZW9mKHZraV9uc3NfcGhlYWRlcl90KQorICAgICAgICAgICAgICAgICAgICAgKyBzaXplb2YodmtpX25zc19kYmRfdCk7CisKKyAgICAgICAgICAgICAgICAgIGlmIChkYmQtPm9fbmFtZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICBIQ2hhciAqbmFtZSA9IChIQ2hhciAqKSBwICsgcC0+ZGJkX29mZiArIGRiZC0+b19uYW1lOworICAgICAgICAgICAgICAgICAgICAgU2l6ZVQgbmFtZV9sZW4gPSBWR18oc3RybGVuKShuYW1lKSArIDE7CisgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZV9sZW4gPD0gZGF0YV9zaXplIC0gaGVhZGVyc19zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpIG5hbWUsIG5hbWVfbGVuKTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGlmIChkYmQtPm9fY29uZmlnX25hbWUgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgSENoYXIgKm5hbWUgPSAoSENoYXIgKikgcCArIHAtPmRiZF9vZmYgKyBkYmQtPm9fY29uZmlnX25hbWU7CisgICAgICAgICAgICAgICAgICAgICBTaXplVCBuYW1lX2xlbiA9IFZHXyhzdHJsZW4pKG5hbWUpICsgMTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lX2xlbiA8PSBkYXRhX3NpemUgLSBoZWFkZXJzX3NpemUpCisgICAgICAgICAgICAgICAgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgbmFtZSwgbmFtZV9sZW4pOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgaWYgKGRiZC0+b19kZWZhdWx0X2NvbmZpZyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICBIQ2hhciAqbmFtZSA9IChIQ2hhciAqKSBwICsgcC0+ZGJkX29mZgorICAgICAgICAgICAgICAgICAgICAgICAgKyBkYmQtPm9fZGVmYXVsdF9jb25maWc7CisgICAgICAgICAgICAgICAgICAgICBTaXplVCBuYW1lX2xlbiA9IFZHXyhzdHJsZW4pKG5hbWUpICsgMTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lX2xlbiA8PSBkYXRhX3NpemUgLSBoZWFkZXJzX3NpemUpCisgICAgICAgICAgICAgICAgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgbmFtZSwgbmFtZV9sZW4pOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKworICAgICAgICAgICBpZiAocC0+a2V5X2xlbiA8PSBkYXRhX3NpemUgLSBwLT5rZXlfb2ZmKQorICAgICAgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgKChIQ2hhciAqKSBwICsgcC0+a2V5X29mZiksIHAtPmtleV9sZW4pOworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIHJlcXVlc3QgZnJvbSBhIGNoaWxkIG5zY2QgdG93YXJkcyBwYXJlbnQgbnNjZCAqLworICAgICAgICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJEb29yIHdyYXBwZXIgb2YgY2hpbGQvcGFyZW50IG5zY2QuIik7CisgICAgICAgICB9CisgICAgICB9CisgICB9IGVsc2UgaWYgKFZHX1NUUkVRKHBhdGhuYW1lLCBWS0lfUkVQT1NJVE9SWV9ET09SX05BTUUpKSB7CisgICAgICAgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIkRvb3Igd3JhcHBlciBvZiAiIFZLSV9SRVBPU0lUT1JZX0RPT1JfTkFNRSk7CisgICB9IGVsc2UgeworICAgICAgLyogZ2VuZXJpYyBkZWZhdWx0ICovCisgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikgZGF0YV9wdHIsIGRhdGFfc2l6ZSk7CisgICB9Cit9CisKK1BSRShzeXNfZG9vcikKK3sKKyAgIC8qIGludCBkb29yZnMobG9uZyBhcmcxLCBsb25nIGFyZzIsIGxvbmcgYXJnMywgbG9uZyBhcmc0LCBsb25nIGFyZzUsCisgICAgICAgICAgICAgICAgIGxvbmcgc3ViY29kZSk7ICovCisgICBUaHJlYWRTdGF0ZSAqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAgICpmbGFncyB8PSBTZk1heUJsb2NrIHwgU2ZQb3N0T25GYWlsOworCisgICBQUklOVCgic3lzX2Rvb3IgKCAlI2x4LCAlI2x4LCAlI2x4LCAlI2x4LCAlI2x4LCAlbGQgKSIsIEFSRzEsIEFSRzIsIEFSRzMsCisgICAgICAgICBBUkc0LCBBUkc1LCBTQVJHNik7CisKKyAgIC8qIE1hY3JvIFBSRV9SRUdfUkVBRDYgY2Fubm90IGJlIHNpbXBseSB1c2VkIGJlY2F1c2Ugbm90IGFsbCBBUkdzIGFyZSB1c2VkCisgICAgICBpbiBkb29yKCkgc3lzY2FsbCB2YXJpYW50cy4gTm90ZSB0aGF0IEFSRzYgKHN1YmNvZGUpIGlzIHVzZWQgYWx3YXlzLiAqLworI2RlZmluZSBQUkVfUkVHX1JFQURfU0lYVEhfT05MWSAgICAgICAgIFwKKyAgIGlmIChWR18odGRpY3QpLnRyYWNrX3ByZV9yZWdfcmVhZCkgeyBcCisgICAgICBQUkE2KCJkb29yIiwgbG9uZywgc3ViY29kZSk7ICAgICAgXAorICAgfQorCisgICBzd2l0Y2ggKEFSRzYgLypzdWJjb2RlKi8pIHsKKyAgIGNhc2UgVktJX0RPT1JfQ1JFQVRFOgorICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZG9vciIsIGxvbmcsIGFyZzEsIGxvbmcsIGFyZzIsIGxvbmcsIGFyZzMpOworICAgICAgUFJFX1JFR19SRUFEX1NJWFRIX09OTFk7CisgICAgICAvKiBOb3RlOiB0aGUgZmlyc3QgYXJndW1lbnQgdG8gRE9PUl9DUkVBVEUgaXMgYSBzZXJ2ZXIgcHJvY2VkdXJlLgorICAgICAgICAgVGhpcyBjb3VsZCBsZWFkIHRvIGEgcHJvYmxlbSBpZiB0aGUga2VybmVsIHRyaWVzIHRvIGZvcmNlIHRoZQorICAgICAgICAgZXhlY3V0aW9uIG9mIHRoaXMgcHJvY2VkdXJlLCBzaW1pbGFybHkgdG8gaG93IHNpZ25hbCBoYW5kbGVycyBhcmUKKyAgICAgICAgIGV4ZWN1dGVkLiAgIEZvcnR1bmF0ZWx5LCB0aGUga2VybmVsIG5ldmVyIGRvZXMgdGhhdCAoZm9yIHVzZXItc3BhY2UKKyAgICAgICAgIHNlcnZlciBwcm9jZWR1cmVzKS4gIFRoZSBwcm9jZWR1cmUgaXMgYWx3YXlzIGV4ZWN1dGVkIGJ5IHRoZSBzdGFuZGFyZAorICAgICAgICAgbGlicmFyeS4gKi8KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9SRVZPS0U6CisgICAgICBQUkVfUkVHX1JFQUQxKGxvbmcsICJkb29yIiwgbG9uZywgYXJnMSk7CisgICAgICBQUkVfUkVHX1JFQURfU0lYVEhfT05MWTsKKyAgICAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJkb29yX3Jldm9rZSIsIHRpZCwgRmFsc2UpKQorICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0RPT1JfSU5GTzoKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImRvb3IiLCBsb25nLCBhcmcxLCBsb25nLCBhcmcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRF9TSVhUSF9PTkxZOworICAgICAgUFJFX01FTV9XUklURSgiZG9vcl9pbmZvKGluZm8pIiwgQVJHMiwgc2l6ZW9mKHZraV9kb29yX2luZm9fdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9ET09SX0NBTEw6CisgICAgICB7CisgICAgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJkb29yIiwgbG9uZywgYXJnMSwgbG9uZywgYXJnMik7CisgICAgICAgICBQUkVfUkVHX1JFQURfU0lYVEhfT05MWTsKKworICAgICAgICAgSW50IHJ2YWwgPSAwOworICAgICAgICAgdmtpX2Rvb3JfYXJnX3QgKnBhcmFtcyA9ICh2a2lfZG9vcl9hcmdfdCopQVJHMjsKKworICAgICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgImRvb3JfY2FsbCIsIHRpZCwgRmFsc2UpKQorICAgICAgICAgICAgcnZhbCA9IFZLSV9FQkFERjsKKworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChwYXJhbXMtPmRhdGFfcHRyKSIsIHBhcmFtcy0+ZGF0YV9wdHIpOworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChwYXJhbXMtPmRhdGFfc2l6ZSkiLCBwYXJhbXMtPmRhdGFfc2l6ZSk7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKHBhcmFtcy0+ZGVzY19wdHIpIiwgcGFyYW1zLT5kZXNjX3B0cik7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKHBhcmFtcy0+ZGVzY19udW0pIiwgcGFyYW1zLT5kZXNjX251bSk7CisgICAgICAgICBQUkVfRklFTERfUkVBRCgiZG9vcl9jYWxsKHBhcmFtcy0+cmJ1ZikiLCBwYXJhbXMtPnJidWYpOworICAgICAgICAgUFJFX0ZJRUxEX1JFQUQoImRvb3JfY2FsbChwYXJhbXMtPnJzaXplKSIsIHBhcmFtcy0+cnNpemUpOworCisgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYpKHBhcmFtcywgc2l6ZW9mKCpwYXJhbXMpKSkgeworICAgICAgICAgICAgaWYgKHBhcmFtcy0+ZGF0YV9wdHIpCisgICAgICAgICAgICAgICBkb29yX2NhbGxfcHJlX21lbV9wYXJhbXNfZGF0YSh0aWQsIEFSRzEsIHBhcmFtcy0+ZGF0YV9wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPmRhdGFfc2l6ZSk7CisKKyAgICAgICAgICAgIGlmIChwYXJhbXMtPmRlc2NfcHRyKSB7CisgICAgICAgICAgICAgICBTaXplVCBkZXNjX3NpemUgPSBwYXJhbXMtPmRlc2NfbnVtICogc2l6ZW9mKCpwYXJhbXMtPmRlc2NfcHRyKTsKKyAgICAgICAgICAgICAgIFBSRV9NRU1fUkVBRCgiZG9vcl9jYWxsKHBhcmFtcy0+ZGVzY19wdHIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWRkcilwYXJhbXMtPmRlc2NfcHRyLCBkZXNjX3NpemUpOworCisgICAgICAgICAgICAgICAvKiBEbyBub3QgcmVjb3JkIGluZm9ybWF0aW9uIGFib3V0IGNsb3NlZCBmZHMgaWYgd2UgYXJlIGdvaW5nCisgICAgICAgICAgICAgICAgICB0byBmYWlsIHRoZSBzeXNjYWxsIGFuZCBzbyBubyBmZHMgd2lsbCBiZSBjbG9zZWQuICovCisgICAgICAgICAgICAgICBpZiAoKHJ2YWwgPT0gMCkgJiYKKyAgICAgICAgICAgICAgICAgICAoTUxfKHNhZmVfdG9fZGVyZWYpKHBhcmFtcy0+ZGVzY19wdHIsIGRlc2Nfc2l6ZSkpKSB7CisgICAgICAgICAgICAgICAgICAgICBydmFsID0gcHJlX2NoZWNrX2FuZF9jbG9zZV9mZHModGlkLCAiZG9vcl9jYWxsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPmRlc2NfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy0+ZGVzY19udW0pOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocGFyYW1zLT5yYnVmKQorICAgICAgICAgICAgICAgUFJFX01FTV9XUklURSgiZG9vcl9jYWxsKHBhcmFtcy0+cmJ1ZikiLCAoQWRkcilwYXJhbXMtPnJidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy0+cnNpemUpOworICAgICAgICAgfQorCisgICAgICAgICBpZiAocnZhbCkKKyAgICAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShydmFsKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9CSU5EOgorICAgICAgUFJFX1JFR19SRUFEMShsb25nLCAiZG9vciIsIGxvbmcsIGFyZzEpOworICAgICAgUFJFX1JFR19SRUFEX1NJWFRIX09OTFk7CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIkRPT1JfQklORCIpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9ET09SX1VOQklORDoKKyAgICAgIFBSRV9SRUdfUkVBRDAobG9uZywgImRvb3IiKTsKKyAgICAgIFBSRV9SRUdfUkVBRF9TSVhUSF9PTkxZOworICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJET09SX1VOQklORCIpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9ET09SX1VOUkVGU1lTOgorICAgICAgUFJFX1JFR19SRUFEMChsb25nLCAiZG9vciIpOworICAgICAgUFJFX1JFR19SRUFEX1NJWFRIX09OTFk7CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIkRPT1JfVU5SRUZTWVMiKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9VQ1JFRDoKKyAgICAgIFBSRV9SRUdfUkVBRDEobG9uZywgImRvb3IiLCBsb25nLCBhcmcxKTsKKyAgICAgIFBSRV9SRUdfUkVBRF9TSVhUSF9PTkxZOworICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJET09SX1VDUkVEIik7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0RPT1JfUkVUVVJOOgorICAgICAgUFJFX1JFR19SRUFENihsb25nLCAiZG9vciIsIGxvbmcsIGFyZzEsIGxvbmcsIGFyZzIsIGxvbmcsIGFyZzMsCisgICAgICAgICAgICAgICAgICAgIGxvbmcsIGFyZzQsIGxvbmcsIGFyZzUsIGxvbmcsIHN1YmNvZGUpOworCisgICAgICAvKiBSZWdpc3RlciAlZXNwLyVyc3AgaXMgcmVhZCBhbmQgbW9kaWZpZWQgYnkgdGhlIHN5c2NhbGwuICovCisgICAgICBWR19UUkFDSyhwcmVfcmVnX3JlYWQsIFZnX0NvcmVTeXNDYWxsLCB0aWQsICJkb29yX3JldHVybihzcCkiLAorICAgICAgICAgICAgICAgVkdfT19TVEFDS19QVFIsIHNpemVvZihVV29yZCkpOworICAgICAgLyogUmVnaXN0ZXIgJWVicC8lcmJwIGlzIG5vdCByZWFsbHkgcmVhZCBieSB0aGUgc3lzY2FsbCwgaXQgaXMgb25seQorICAgICAgICAgd3JpdHRlbiBieSBpdCwgYnV0IGl0IGlzIGhhcmQgdG8gZGV0ZXJtaW5lIHdoZW4gaXQgaXMgd3JpdHRlbiBzbyB3ZQorICAgICAgICAgbWFrZSBzdXJlIGl0IGlzIGFsd2F5cyB2YWxpZCBwcmlvciB0byBtYWtpbmcgdGhlIHN5c2NhbGwuICovCisgICAgICBWR19UUkFDSyhwcmVfcmVnX3JlYWQsIFZnX0NvcmVTeXNDYWxsLCB0aWQsICJkb29yX3JldHVybihicCkiLAorICAgICAgICAgICAgICAgVkdfT19GUkFNRV9QVFIsIHNpemVvZihVV29yZCkpOworCisgICAgICBkb29yX3JldHVybl9wcmVfbWVtX2RhdGEodGlkLCB0c3QtPm9zX3N0YXRlLmRvb3JfcmV0dXJuX3Byb2NlZHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSBBUkcxLCBBUkcyKTsKKworICAgICAgLyogRG8gbm90IHRlbGwgdGhlIHRvb2wgd2hlcmUgdGhlIHN5c2NhbGwgaXMgZ29pbmcgdG8gd3JpdGUgdGhlCisgICAgICAgICByZXN1bHRpbmcgZGF0YS4gIEl0IGlzIG5lY2Vzc2FyeSB0byBza2lwIHRoaXMgY2hlY2sgYmVjYXVzZSB0aGUgZGF0YQorICAgICAgICAgYXJlYSBzdGFydGluZyBhdCBBUkc0LUFSRzUgKG9mIGxlbmd0aCBBUkc1KSBpcyB1c3VhbGx5IG9uIGEgY2xpZW50CisgICAgICAgICB0aHJlYWQgc3RhY2sgYmVsb3cgdGhlIHN0YWNrIHBvaW50ZXIgYW5kIHRoZXJlZm9yZSBpdCBjYW4gYmUgbWFya2VkCisgICAgICAgICBieSBhIHRvb2wgKGZvciBleGFtcGxlLCBNZW1jaGVjaykgYXMgaW5hY2Nlc3NpYmxlLiAgSXQgaXMgb2sgdG8gc2tpcAorICAgICAgICAgdGhpcyBjaGVjayBpbiB0aGlzIGNhc2UgYmVjYXVzZSBpZiB0aGVyZSBpcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCB0aGUKKyAgICAgICAgIGRhdGEgYXJlYSB0aGVuIHRoZSBzeXNjYWxsIHdpbGwgZmFpbCBvciB0aGUgZXJyb3Igd2lsbCBiZSBoYW5kbGVkIGJ5CisgICAgICAgICBQT1NUX01FTV9XUklURSgpIGluIHRoZSBwb3N0IHdyYXBwZXIuICovCisgICAgICAvKlBSRV9NRU1fV1JJVEUoImRvb3JfcmV0dXJuKHNwKSIsIEFSRzQgLSBBUkc1LCBBUkc1KTsqLworCisgICAgICBpZiAoQVJHMykgeworICAgICAgICAgdmtpX2Rvb3JfcmV0dXJuX2Rlc2NfdCAqZGVzY19lbnYgPSAodmtpX2Rvb3JfcmV0dXJuX2Rlc2NfdCopQVJHMzsKKworICAgICAgICAgUFJFX01FTV9SRUFEKCJkb29yX3JldHVybihkZXNjX2VudikiLCBBUkczLAorICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2a2lfZG9vcl9yZXR1cm5fZGVzY190KSk7CisKKyAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZikoZGVzY19lbnYsIHNpemVvZigqZGVzY19lbnYpKSAmJgorICAgICAgICAgICAgIGRlc2NfZW52LT5kZXNjX3B0cikgeworICAgICAgICAgICAgSW50IHJ2YWw7CisKKyAgICAgICAgICAgIFBSRV9NRU1fUkVBRCgiZG9vcl9yZXR1cm4oZGVzY19lbnYtPmRlc2NfcHRyKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpZGVzY19lbnYtPmRlc2NfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NfZW52LT5kZXNjX251bSAqIHNpemVvZigqZGVzY19lbnYtPmRlc2NfcHRyKSk7CisKKyAgICAgICAgICAgIHJ2YWwgPSBwcmVfY2hlY2tfYW5kX2Nsb3NlX2Zkcyh0aWQsICJkb29yX3JldHVybiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY19lbnYtPmRlc2NfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NfZW52LT5kZXNjX251bSk7CisgICAgICAgICAgICBpZiAocnZhbCkKKyAgICAgICAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShydmFsKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHRzdC0+b3Nfc3RhdGUuaW5fZG9vcl9yZXR1cm4gPSBUcnVlOworICAgICAgdHN0LT5vc19zdGF0ZS5kb29yX3JldHVybl9wcm9jZWR1cmUgPSAwOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9ET09SX0dFVFBBUkFNOgorICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCAiZG9vciIsIGxvbmcsIGFyZzEsIGxvbmcsIGFyZzIsIGxvbmcsIGFyZzMpOworICAgICAgUFJFX1JFR19SRUFEX1NJWFRIX09OTFk7CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIkRPT1JfR0VUUEFSQU0iKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9TRVRQQVJBTToKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgImRvb3IiLCBsb25nLCBhcmcxLCBsb25nLCBhcmcyLCBsb25nLCBhcmczKTsKKyAgICAgIFBSRV9SRUdfUkVBRF9TSVhUSF9PTkxZOworICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJET09SX1NFVFBBUkFNIik7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIGRvb3IgY2FsbCB3aXRoIHN1YmNvZGUgJWxkLiIsIFNBUkc2KTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KKworI3VuZGVmIFBSRV9SRUdfUkVBRF9TSVhUSF9PTkxZCit9CisKK1BPU1Qoc3lzX2Rvb3IpCit7CisgICBUaHJlYWRTdGF0ZSAqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKworICAgdmdfYXNzZXJ0KFNVQ0NFU1MgfHwgRkFJTFVSRSk7CisKKyAgIC8qIEFsdGVyIHRoZSB0c3QtPm9zX3N0YXRlLmluX2Rvb3JfcmV0dXJuIGZsYWcuICovCisgICBpZiAoQVJHNiA9PSBWS0lfRE9PUl9SRVRVUk4pIHsKKyAgICAgIHZnX2Fzc2VydCh0c3QtPm9zX3N0YXRlLmluX2Rvb3JfcmV0dXJuID09IFRydWUpOworICAgICAgdHN0LT5vc19zdGF0ZS5pbl9kb29yX3JldHVybiA9IEZhbHNlOworCisgICAgICAvKiBJbmZvcm0gdGhlIHRvb2wgdGhhdCAlZXNwLyVyc3AgYW5kICVlYnAvJXJicCB3ZXJlIChwb3RlbnRpYWxseSkKKyAgICAgICAgIG1vZGlmaWVkLiAqLworICAgICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIFZnX0NvcmVTeXNDYWxsLCB0aWQsIFZHX09fU1RBQ0tfUFRSLAorICAgICAgICAgICAgICAgc2l6ZW9mKFVXb3JkKSk7CisgICAgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgVmdfQ29yZVN5c0NhbGwsIHRpZCwgVkdfT19GUkFNRV9QVFIsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgIH0KKyAgIGVsc2UKKyAgICAgIHZnX2Fzc2VydCh0c3QtPm9zX3N0YXRlLmluX2Rvb3JfcmV0dXJuID09IEZhbHNlKTsKKworICAgaWYgKEZBSUxVUkUpIHsKKyAgICAgIGlmIChWR18oY2xvX3RyYWNrX2ZkcykpIHsKKyAgICAgICAgIC8qIFNlZSB0aGUgZGlzY3Vzc2lvbiBpbiBwcmVfY2hlY2tfYW5kX2Nsb3NlX2ZkcygpIHRvIHVuZGVyc3RhbmQgdGhpcworICAgICAgICAgICAgcGFydC4gKi8KKyAgICAgICAgIEJvb2wgbG9zcyA9IEZhbHNlOworICAgICAgICAgc3dpdGNoIChBUkc2IC8qc3ViY29kZSovKSB7CisgICAgICAgICBjYXNlIFZLSV9ET09SX0NBTEw6CisgICAgICAgICAgICBpZiAoRVJSID09IFZLSV9FRkFVTFQgfHwgRVJSID09IFZLSV9FQkFERikKKyAgICAgICAgICAgICAgIGxvc3MgPSBUcnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9ET09SX1JFVFVSTjoKKyAgICAgICAgICAgIGlmIChFUlIgPT0gVktJX0VGQVVMVCB8fCBFUlIgPT0gVktJX0VJTlZBTCkKKyAgICAgICAgICAgICAgIGxvc3MgPSBUcnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgICAgICAgICBpZiAobG9zcykKKyAgICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiVGhlIGRvb3IgY2FsbCBmYWlsZWQgd2l0aCBhbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuZXhwZWN0ZWQgZXJyb3IgYW5kIGluZm9ybWF0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJvdXQgb3BlbiBmaWxlIGRlc2NyaXB0b3JzIGNhbiBiZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vdyBpbXByZWNpc2UuXG4iKTsKKyAgICAgIH0KKworICAgICAgcmV0dXJuOworICAgfQorCisgICB2Z19hc3NlcnQoU1VDQ0VTUyk7CisKKyAgIHN3aXRjaCAoQVJHNiAvKnN1YmNvZGUqLykgeworICAgY2FzZSBWS0lfRE9PUl9DUkVBVEU6CisgICAgICBkb29yX3JlY29yZF9zZXJ2ZXIodGlkLCBBUkcxLCBSRVMpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9ET09SX1JFVk9LRToKKyAgICAgIGRvb3JfcmV2b2tlKHRpZCwgQVJHMSk7CisgICAgICBpZiAoVkdfKGNsb190cmFja19mZHMpKQorICAgICAgICAgTUxfKHJlY29yZF9mZF9jbG9zZSkoQVJHMSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX0RPT1JfSU5GTzoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIHNpemVvZih2a2lfZG9vcl9pbmZvX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9DQUxMOgorICAgICAgeworICAgICAgICAgLyogTm90ZSB0aGF0IGFsbCByZXR1cm5lZCB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgcmJ1ZiwgaS5lLgorICAgICAgICAgICAgZGF0YV9wdHIgYW5kIGRlc2NfcHRyIHBvaW50cyBpbnRvIHRoaXMgYnVmZmVyLiAqLworICAgICAgICAgdmtpX2Rvb3JfYXJnX3QgKnBhcmFtcyA9ICh2a2lfZG9vcl9hcmdfdCopQVJHMjsKKworICAgICAgICAgaWYgKHBhcmFtcy0+cmJ1ZikgeworICAgICAgICAgICAgQWRkciBhZGRyID0gKEFkZHIpcGFyYW1zLT5yYnVmOworICAgICAgICAgICAgaWYgKCFWR18oYW1fZmluZF9hbm9uX3NlZ21lbnQoYWRkcikpKSB7CisgICAgICAgICAgICAgICAvKiBUaGlzIHNlZ21lbnQgaXMgbmV3IGFuZCB3YXMgbWFwcGVkIGJ5IHRoZSBrZXJuZWwuICovCisgICAgICAgICAgICAgICBVSW50IHByb3QsIGZsYWdzOworICAgICAgICAgICAgICAgU2l6ZVQgc2l6ZTsKKworICAgICAgICAgICAgICAgcHJvdCA9IFZLSV9QUk9UX1JFQUQgfCBWS0lfUFJPVF9XUklURSB8IFZLSV9QUk9UX0VYRUM7CisgICAgICAgICAgICAgICBmbGFncyA9IFZLSV9NQVBfQU5PTllNT1VTOworICAgICAgICAgICAgICAgc2l6ZSA9IFZHX1BHUk9VTkRVUChwYXJhbXMtPnJzaXplKTsKKworICAgICAgICAgICAgICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1zb2xhcmlzIiwgIlBPU1Qoc3lzX2Rvb3IpLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZXcgc2VnbWVudDogdmFkZHI9JSNseCwgc2l6ZT0lI2x4LCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm90PSUjeCwgZmxhZ3M9JSN4LCBmZD0lbGQsIG9mZnNldD0lI2xseFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkciwgc2l6ZSwgcHJvdCwgZmxhZ3MsIChVV29yZCktMSwgKFVMb25nKTApOworCisgICAgICAgICAgICAgICBNTF8obm90aWZ5X2NvcmVfYW5kX3Rvb2xfb2ZfbW1hcCkoYWRkciwgc2l6ZSwgcHJvdCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIDApOworCisgICAgICAgICAgICAgICAvKiBOb3RlOiBXZSBkb24ndCBub3RpZnkgdGhlIGRlYnVnaW5mbyByZWFkZXIgYWJvdXQgdGhpcworICAgICAgICAgICAgICAgICAgbWFwcGluZyBiZWNhdXNlIHRoZXJlIGFyZSBubyBkZWJ1ZyBpbmZvcm1hdGlvbiBzdG9yZWQgaW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgc2VnbWVudC4gKi8KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZG9vcl9jYWxsX3Bvc3RfbWVtX3BhcmFtc19yYnVmKHRpZCwgQVJHMSwgKHZvaWQgKikgYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPnJzaXplLCBwYXJhbXMtPmRlc2NfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy0+ZGVzY19udW0pOworICAgICAgICAgfQorCisgICAgICAgICBpZiAocGFyYW1zLT5kZXNjX3B0cikgeworICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpcGFyYW1zLT5kZXNjX3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy0+ZGVzY19udW0gKiBzaXplb2YodmtpX2Rvb3JfZGVzY190KSk7CisgICAgICAgICAgICBwb3N0X3JlY29yZF9mZHModGlkLCAiZG9vcl9jYWxsIiwgcGFyYW1zLT5kZXNjX3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPmRlc2NfbnVtKTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9CSU5EOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9ET09SX1VOQklORDoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9VTlJFRlNZUzoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9VQ1JFRDoKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9SRVRVUk46CisgICAgICB7CisgICAgICAgICBzdHJ1Y3QgdmtpX2Rvb3JfcmVzdWx0cyAqcmVzdWx0cworICAgICAgICAgICAgPSAoc3RydWN0IHZraV9kb29yX3Jlc3VsdHMqKVZHXyhnZXRfU1ApKHRpZCk7CisKKyAgICAgICAgIHRzdC0+b3Nfc3RhdGUuZG9vcl9yZXR1cm5fcHJvY2VkdXJlID0gKEFkZHIpcmVzdWx0cy0+cGM7CisKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKXJlc3VsdHMsIHNpemVvZigqcmVzdWx0cykpOworICAgICAgICAgaWYgKHJlc3VsdHMtPmRhdGFfcHRyKQorICAgICAgICAgICAgZG9vcl9yZXR1cm5fcG9zdF9tZW1fZGF0YSh0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzdC0+b3Nfc3RhdGUuZG9vcl9yZXR1cm5fcHJvY2VkdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLT5kYXRhX3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy0+ZGF0YV9zaXplKTsKKyAgICAgICAgIGlmIChyZXN1bHRzLT5kZXNjX3B0cikgeworICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpcmVzdWx0cy0+ZGVzY19wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLT5kZXNjX251bSAqIHNpemVvZih2a2lfZG9vcl9kZXNjX3QpKTsKKyAgICAgICAgICAgIHBvc3RfcmVjb3JkX2Zkcyh0aWQsICJkb29yX3JldHVybiIsIHJlc3VsdHMtPmRlc2NfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMtPmRlc2NfbnVtKTsKKyAgICAgICAgIH0KKworICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpcmVzdWx0cy0+ZG9vcl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpyZXN1bHRzLT5kb29yX2luZm8pKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9HRVRQQVJBTToKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfRE9PUl9TRVRQQVJBTToKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX3NjaGVkY3RsKQoreworICAgLyogY2FkZHJfdCBzY2hlZGN0bCh2b2lkKTsgKi8KKyAgIC8qIFRoaXMgc3lzY2FsbCByZXR1cm5zIGFuIGFkZHJlc3MgdGhhdCBwb2ludHMgdG8gc3RydWN0IHNjX3NoYXJlZC4KKyAgICAgIFRoaXMgcGVyLXRocmVhZCBzdHJ1Y3R1cmUgaXMgdXNlZCBhcyBhbiBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgbGliYyBhbmQKKyAgICAgIHRoZSBrZXJuZWwuICovCisgICBQUklOVCgic3lzX3NjaGVkY3RsICggKSIpOworICAgUFJFX1JFR19SRUFEMChsb25nLCAic2NoZWRjdGwiKTsKK30KKworUE9TVChzeXNfc2NoZWRjdGwpCit7CisgICBBZGRyIGEgPSBSRVM7CisgICBUaHJlYWRTdGF0ZSAqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKworICAgLyogU3RheSBzYW5lLiAqLworICAgdmdfYXNzZXJ0KCh0c3QtPm9zX3N0YXRlLnNjaGVkY3RsX2RhdGEgPT0gMCkgfHwKKyAgICAgICAgICAgICAodHN0LT5vc19zdGF0ZS5zY2hlZGN0bF9kYXRhID09IGEpKTsKKyAgIHRzdC0+b3Nfc3RhdGUuc2NoZWRjdGxfZGF0YSA9IGE7CisKKyAgIC8qIFJldHVybmVkIGFkZHJlc3MgcG9pbnRzIHRvIGEgYmxvY2sgaW4gYSBtYXBwZWQgcGFnZS4gKi8KKyAgIGlmICghVkdfKGFtX2ZpbmRfYW5vbl9zZWdtZW50KGEpKSkgeworICAgICAgQWRkciBwYWdlID0gVkdfUEdST1VOREROKGEpOworICAgICAgVUludCBwcm90ID0gVktJX1BST1RfUkVBRCB8IFZLSV9QUk9UX1dSSVRFIHwgVktJX1BST1RfRVhFQzsKKyAgICAgIFVJbnQgZmxhZ3MgPSBWS0lfTUFQX0FOT05ZTU9VUzsKKyAgICAgIC8qIFRoZSBrZXJuZWwgYWx3YXlzIGFsbG9jYXRlcyBvbmUgcGFnZSBmb3IgdGhlIHNjX3NoYXJlZCBzdHJ1Y3QuICovCisgICAgICBTaXplVCBzaXplID0gVktJX1BBR0VfU0laRTsKKworICAgICAgVkdfKGRlYnVnTG9nKSgxLCAic3lzd3JhcC1zb2xhcmlzIiwgIlBPU1Qoc3lzX3NjaGVkY3RsKSwgbmV3IHNlZ21lbnQ6ICIKKyAgICAgICAgICAgICAgICAgICAgInZhZGRyPSUjbHgsIHNpemU9JSNseCwgcHJvdD0lI3gsIGZsYWdzPSUjeCwgZmQ9LTEsICIKKyAgICAgICAgICAgICAgICAgICAgIm9mZnNldD0wXG4iLCBwYWdlLCBzaXplLCBwcm90LCBmbGFncyk7CisKKyAgICAgIC8qIFRoZSBrZXJuZWwgYWx3YXlzIHBsYWNlcyByZWR6b25lIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGFsbG9jYXRlZCBwYWdlLgorICAgICAgICAgQ2hlY2sgdGhpcyBhc3NlcnRpb24gbm93OyB0aGUgdG9vbCBjYW4gbGF0ZXIgcmVxdWVzdCB0byBhbGxvY2F0ZQorICAgICAgICAgYSBWYWxncmluZCBzZWdtZW50IGFuZCBhc3BhY2VtZ3Igd2lsbCBwbGFjZSBpdCBhZGphY2VudC4gKi8KKyAgICAgIGNvbnN0IE5TZWdtZW50ICpzZWcgPSBWR18oYW1fZmluZF9uc2VnbWVudChwYWdlIC0gMSkpOworICAgICAgdmdfYXNzZXJ0KHNlZyA9PSBOVUxMIHx8IHNlZy0+a2luZCA9PSBTa1Jlc3ZuKTsKKyAgICAgIHNlZyA9IFZHXyhhbV9maW5kX25zZWdtZW50KHBhZ2UgKyBWS0lfUEFHRV9TSVpFKSk7CisgICAgICB2Z19hc3NlcnQoc2VnID09IE5VTEwgfHwgc2VnLT5raW5kID09IFNrUmVzdm4pOworCisgICAgICAvKiBUaGUgYWRkcmVzcyBzcGFjZSBtYW5hZ2VyIHdvcmtzIHdpdGggd2hvbGUgcGFnZXMuICovCisgICAgICBWR18oYW1fbm90aWZ5X2NsaWVudF9tbWFwKShwYWdlLCBzaXplLCBwcm90LCBmbGFncywgLTEsIDApOworCisgICAgICAvKiBOb3RlOiBJdCBpc24ndCBuZWVkZWQgdG8gbm90aWZ5IGRlYnVnaW5mbyBhYm91dCB0aGUgbmV3IG1hcHBpbmcKKyAgICAgICAgIGJlY2F1c2UgaXQncyBvbmx5IGFuIGFub255bW91cyBtYXBwaW5nLiAqLworICAgICAgLyogTm90ZTogc2NoZWRjdGwgZGF0YSBhcmUgY2xlYW5lZCBpbiB0d28gcGxhY2VzOgorICAgICAgICAgLSBmb3IgdGhlIHRvb2wgd2hlbiB0aGUgdGhyZWFkIGV4aXRzCisgICAgICAgICAtIGZvciB0aGUgY29yZSBpbiBjaGlsZCdzIHBvc3QtZm9yayBoYW5kbGVyIGNsZWFuX3NjaGVkY3RsX2RhdGEoKS4gKi8KKyAgIH0KKworICAgLyogVGhlIHRvb2wgbmVlZHMgcGVyLXRocmVhZCBncmFudWxhcml0eSwgbm90IHdob2xlIHBhZ2VzLiAqLworICAgVkdfVFJBQ0sobmV3X21lbV9tbWFwLCBhLCBzaXplb2Yoc3RydWN0IHZraV9zY19zaGFyZWQpLCBUcnVlLCBUcnVlLCBUcnVlLCAwKTsKKyAgIFBPU1RfTUVNX1dSSVRFKGEsIHNpemVvZihzdHJ1Y3QgdmtpX3NjX3NoYXJlZCkpOworfQorCitQUkUoc3lzX3BzZXQpCit7CisgICAvKiBLZXJuZWw6IGludCBwc2V0KGludCBzdWJjb2RlLCBsb25nIGFyZzEsIGxvbmcgYXJnMiwgbG9uZyBhcmczLAorICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzQpOyAqLworICAgc3dpdGNoIChBUkcxIC8qIHN1YmNvZGUgKi8pIHsKKyAgIGNhc2UgVktJX1BTRVRfQ1JFQVRFOgorICAgICAgLyogTGliYzogaW50IHBzZXRfY3JlYXRlKHBzZXRpZF90ICpuZXdwc2V0KTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfcHNldCAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoInBzZXQiLCAiY3JlYXRlIiksIGludCwgc3ViY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3BzZXRpZF90ICosIG5ld3BzZXQpOworICAgICAgUFJFX01FTV9XUklURSgicHNldChuZXdwc2V0KSIsIEFSRzIsIHNpemVvZih2a2lfcHNldGlkX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFNFVF9ERVNUUk9ZOgorICAgICAgLyogTGliYzogaW50IHBzZXRfZGVzdHJveShwc2V0aWRfdCBwc2V0KTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfcHNldCAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoInBzZXQiLCAiZGVzdHJveSIpLCBpbnQsIHN1YmNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9wc2V0aWRfdCwgcHNldCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BTRVRfQVNTSUdOOgorICAgICAgLyogTGliYzogaW50IHBzZXRfYXNzaWduKHBzZXRpZF90IHBzZXQsIHByb2Nlc3NvcmlkX3QgY3B1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzZXRpZF90ICpvcHNldCk7ICovCisgICAgICBQUklOVCgic3lzX3BzZXQgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKKyAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MyKCJwc2V0IiwgImFzc2lnbiIpLCBpbnQsIHN1YmNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9wc2V0aWRfdCwgcHNldCwgdmtpX3Byb2Nlc3NvcmlkX3QsIGNwdSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3BzZXRpZF90ICosIG9wc2V0KTsKKyAgICAgIGlmIChBUkc0ICE9IDApCisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJwc2V0KG9wc2V0KSIsIEFSRzQsIHNpemVvZih2a2lfcHNldGlkX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFNFVF9JTkZPOgorICAgICAgLyogTGliYzogaW50IHBzZXRfaW5mbyhwc2V0aWRfdCBwc2V0LCBpbnQgKnR5cGUsIHVpbnRfdCAqbnVtY3B1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yaWRfdCAqY3B1bGlzdCk7ICovCisgICAgICBQUklOVCgic3lzX3BzZXQgKCAlbGQsICVsZCwgJSNseCwgJSNseCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSRzQsIEFSRzUpOworICAgICAgUFJFX1JFR19SRUFENShsb25nLCBTQzIoInBzZXQiLCAiaW5mbyIpLCBpbnQsIHN1YmNvZGUsIHZraV9wc2V0aWRfdCwgcHNldCwKKyAgICAgICAgICAgICAgICAgICAgaW50ICosIHR5cGUsIHZraV91aW50X3QgKiwgbnVtY3B1cywKKyAgICAgICAgICAgICAgICAgICAgdmtpX3Byb2Nlc3NvcmlkX3QgKiwgY3B1bGlzdCk7CisgICAgICBpZiAoQVJHMyAhPSAwKQorICAgICAgICAgUFJFX01FTV9XUklURSgicHNldCh0eXBlKSIsIEFSRzMsIHNpemVvZihpbnQpKTsKKyAgICAgIGlmIChBUkc0ICE9IDApCisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJwc2V0KG51bWNwdXMpIiwgQVJHNCwgc2l6ZW9mKHZraV91aW50X3QpKTsKKyAgICAgIGlmICgoQVJHNCAhPSAwKSAmJiAoQVJHNSAhPSAwKSkgeworICAgICAgICAgdmtpX3VpbnRfdCAqbnVtY3B1cyA9ICh2a2lfdWludF90ICopIEFSRzQ7CisgICAgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYobnVtY3B1cywgc2l6ZW9mKHZraV91aW50X3QpKSkpIHsKKyAgICAgICAgICAgIFBSRV9NRU1fV1JJVEUoInBzZXQoY3B1bGlzdCkiLCBBUkc1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAqbnVtY3B1cyAqIHNpemVvZih2a2lfcHJvY2Vzc29yaWRfdCkpOworICAgICAgICAgICAgLyogSWYgY3B1bGlzdCBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgaXQgd2lsbCBob2xkIG9ubHkgYXMgbWFueQorICAgICAgICAgICAgICAgZW50cmllcyBhcyBmaXQgaW4gdGhlIGJ1ZmZlci4gSG93ZXZlciBudW1jcHVzIHdpbGwgY29udGFpbiB0aGUKKyAgICAgICAgICAgICAgIHJlYWwgbnVtYmVyIG9mIGNwdXMgd2hpY2ggd2lsbCBiZSBncmVhdGVyIHRoYW4gb3JpZ2luYWxseSBwYXNzZWQKKyAgICAgICAgICAgICAgIGluLiBTdGFzaCB0aGUgb3JpZ2luYWwgdmFsdWUgaW4gdW51c2VkIEFSRzYuICovCisgICAgICAgICAgICBBUkc2ID0gKm51bWNwdXM7CisgICAgICAgICB9CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BTRVRfQklORDoKKyAgICAgIC8qIExpYmM6IGludCBwc2V0X2JpbmQocHNldGlkX3QgcHNldCwgaWR0eXBlX3QgaWR0eXBlLCBpZF90IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V0aWRfdCAqb3BzZXQpOyAqLworICAgICAgUFJJTlQoInN5c19wc2V0ICggJWxkLCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQVJHNCwgQVJHNSk7CisgICAgICBQUkVfUkVHX1JFQUQ1KGxvbmcsIFNDMigicHNldCIsICJiaW5kIiksIGludCwgc3ViY29kZSwgdmtpX3BzZXRpZF90LCBwc2V0LAorICAgICAgICAgICAgICAgICAgICB2a2lfaWR0eXBlX3QsIGlkdHlwZSwgdmtpX2lkX3QsIGlkLCB2a2lfcHNldGlkX3QgKiwgb3BzZXQpOworICAgICAgaWYgKEFSRzUgIT0gMCkKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInBzZXQob3BzZXQpIiwgQVJHNSwgc2l6ZW9mKHZraV9wc2V0aWRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QU0VUX0JJTkRfTFdQOgorICAgICAgLyogTGliYzogaW50IHBzZXRfYmluZF9sd3AocHNldGlkX3QgcHNldCwgaWRfdCBpZCwgcGlkX3QgcGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNldGlkX3QgKm9wc2V0KTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfcHNldCAoICVsZCwgJWxkLCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0FSRzQsIEFSRzUpOworICAgICAgUFJFX1JFR19SRUFENShsb25nLCBTQzIoInBzZXQiLCAiYmluZF9sd3AiKSwgaW50LCBzdWJjb2RlLAorICAgICAgICAgICAgICAgICAgICB2a2lfcHNldGlkX3QsIHBzZXQsIHZraV9pZF90LCBpZCwgdmtpX3BpZF90LCBwaWQsCisgICAgICAgICAgICAgICAgICAgIHZraV9wc2V0aWRfdCAqLCBvcHNldCk7CisgICAgICBpZiAoQVJHNSAhPSAwKQorICAgICAgICAgUFJFX01FTV9XUklURSgicHNldChvcHNldCkiLCBBUkc1LCBzaXplb2YodmtpX3BzZXRpZF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BTRVRfR0VUTE9BREFWRzoKKyAgICAgIC8qIExpYmM6IGludCBwc2V0X2dldGxvYWRhdmcocHNldGlkX3QgcHNldCwgZG91YmxlIGxvYWRhdmdbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5lbGVtKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfcHNldCAoICVsZCwgJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgU0FSRzQpOworICAgICAgUFJFX1JFR19SRUFENChsb25nLCBTQzIoInBzZXQiLCAiZ2V0bG9hZGF2ZyIpLCBpbnQsIHN1YmNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9wc2V0aWRfdCwgcHNldCwgZG91YmxlLCBsb2FkYXZnW10sIGludCwgbmVsZW0pOworICAgICAgaWYgKEFSRzMgIT0gMCkKKyAgICAgICAgIFBSRV9NRU1fV1JJVEUoInBzZXQobG9hZGF2ZykiLCBBUkczLCBTQVJHNCAqIHNpemVvZihkb3VibGUpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFNFVF9MSVNUOgorICAgICAgLyogTGliYzogaW50IHBzZXRfbGlzdChwc2V0aWRfdCAqcHNldGxpc3QsIHVpbnRfdCAqbnVtcHNldHMpOyAqLworICAgICAgUFJJTlQoInN5c19wc2V0ICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMigicHNldCIsICJsaXN0IiksIGludCwgc3ViY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3BzZXRpZF90ICosIHBzZXRsaXN0LCB2a2lfdWludF90ICosIG51bXBzZXRzKTsKKyAgICAgIGlmIChBUkczICE9IDApCisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJwc2V0KG51bXBzZXRzKSIsIEFSRzMsIHNpemVvZih2a2lfdWludF90KSk7CisgICAgICBpZiAoKEFSRzIgIT0gMCkgJiYgKEFSRzMgIT0gMCkpIHsKKyAgICAgICAgIHZraV91aW50X3QgKm51bXBzZXRzID0gKHZraV91aW50X3QgKikgQVJHMzsKKyAgICAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZihudW1wc2V0cywgc2l6ZW9mKHZraV91aW50X3QpKSkpIHsKKyAgICAgICAgICAgIFBSRV9NRU1fV1JJVEUoInBzZXQocHNldGxpc3QpIiwgQVJHMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKm51bXBzZXRzICogc2l6ZW9mKHZraV9wc2V0aWRfdCkpOworICAgICAgICAgICAgLyogSWYgcHNldGxpc3QgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gsIGl0IHdpbGwgaG9sZCBvbmx5IGFzIG1hbnkKKyAgICAgICAgICAgICAgIGVudHJpZXMgYXMgZml0IGluIHRoZSBidWZmZXIuIEhvd2V2ZXIgbnVtcHNldHMgd2lsbCBjb250YWluIHRoZQorICAgICAgICAgICAgICAgcmVhbCBudW1iZXIgb2YgcHJvY2Vzc29yIHNldHMgd2hpY2ggd2lsbCBiZSBncmVhdGVyIHRoYW4KKyAgICAgICAgICAgICAgIG9yaWdpbmFsbHkgcGFzc2VkIGluLiBTdGFzaCB0aGUgb3JpZ2luYWwgdmFsdWUgaW4gdW51c2VkIEFSRzYuICovCisgICAgICAgICAgICBBUkc2ID0gKm51bXBzZXRzOworICAgICAgICAgfQorICAgICAgfQorICAgICAgYnJlYWs7CisjICBpZiBkZWZpbmVkKFNPTEFSSVNfUFNFVF9HRVRfTkFNRSkKKyAgIGNhc2UgVktJX1BTRVRfR0VUX05BTUU6CisgICAgICAvKiBMaWJjOiBpbnQgcHNldF9nZXRfbmFtZShwc2V0aWRfdCBwc2V0aWQsIGNoYXIgKmJ1ZiwgdWludF90IGxlbik7ICovCisgICAgICBQUklOVCgic3lzX3BzZXQgKCAlbGQsICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMsIFNBUkc0KTsKKyAgICAgIFBSRV9SRUdfUkVBRDQobG9uZywgU0MyKCJwc2V0IiwgImdldF9uYW1lIiksIGludCwgc3ViY29kZSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3BzZXRpZF90LCBwc2V0LCBjaGFyICosIGJ1ZiwgdmtpX3VpbnRfdCwgbGVuKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoInBzZXQoYnVmKSIsIEFSRzMsIEFSRzQpOworICAgICAgYnJlYWs7CisjICBlbmRpZiAvKiBTT0xBUklTX1BTRVRfR0VUX05BTUUgKi8KKyAgIGNhc2UgVktJX1BTRVRfU0VUQVRUUjoKKyAgICAgIC8qIExpYmM6IGludCBwc2V0X3NldGF0dHIocHNldGlkX3QgcHNldCwgdWludF90IGF0dHIpOyAqLworICAgICAgUFJJTlQoInN5c19wc2V0ICggJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJwc2V0IiwgInNldGF0dHIiKSwgaW50LCBzdWJjb2RlLAorICAgICAgICAgICAgICAgICAgICB2a2lfcHNldGlkX3QsIHBzZXQsIHZraV91aW50X3QsIGF0dHIpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QU0VUX0dFVEFUVFI6CisgICAgICAvKiBMaWJjOiBpbnQgcHNldF9nZXRhdHRyKHBzZXRpZF90IHBzZXQsIHVpbnRfdCAqYXR0cik7ICovCisgICAgICBQUklOVCgic3lzX3BzZXQgKCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJwc2V0IiwgImdldGF0dHIiKSwgaW50LCBzdWJjb2RlLAorICAgICAgICAgICAgICAgICAgICB2a2lfcHNldGlkX3QsIHBzZXQsIHZraV91aW50X3QgKiwgYXR0cik7CisgICAgICBQUkVfTUVNX1dSSVRFKCJwc2V0KGF0dHIpIiwgQVJHMywgc2l6ZW9mKHZraV91aW50X3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFNFVF9BU1NJR05fRk9SQ0VEOgorICAgICAgLyogTGliYzogaW50IHBzZXRfYXNzaWduX2ZvcmNlZChwc2V0aWRfdCBwc2V0LCBwcm9jZXNzb3JpZF90IGNwdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNldGlkX3QgKm9wc2V0KTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfcHNldCAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQpOworICAgICAgUFJFX1JFR19SRUFENChsb25nLCBTQzIoInBzZXQiLCAiYXNzaWduX2ZvcmNlZCIpLCBpbnQsIHN1YmNvZGUsCisgICAgICAgICAgICAgICAgICAgIHZraV9wc2V0aWRfdCwgcHNldCwgdmtpX3Byb2Nlc3NvcmlkX3QsIGNwdSwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3BzZXRpZF90ICosIG9wc2V0KTsKKyAgICAgIGlmIChBUkc0ICE9IDApCisgICAgICAgICBQUkVfTUVNX1dSSVRFKCJwc2V0KG9wc2V0KSIsIEFSRzQsIHNpemVvZih2a2lfcHNldGlkX3QpKTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3lzd3JhcCBvZiBwc2V0IHN5c2NhbGwgd2l0aCBzdWJjb2RlICVsZC4iLCBTQVJHMSk7CisgICAgICAvKk5PVFJFQUNIRUQqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BPU1Qoc3lzX3BzZXQpCit7CisgICBzd2l0Y2ggKEFSRzEgLypzdWJjb2RlKi8pIHsKKyAgIGNhc2UgVktJX1BTRVRfQ1JFQVRFOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHZraV9wc2V0aWRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QU0VUX0RFU1RST1k6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BTRVRfQVNTSUdOOgorICAgICAgaWYgKEFSRzQgIT0gMCkKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzQsIHNpemVvZih2a2lfcHNldGlkX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFNFVF9JTkZPOgorICAgICAgaWYgKEFSRzMgIT0gMCkKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZihpbnQpKTsKKyAgICAgIGlmIChBUkc0ICE9IDApCisgICAgICAgICBQT1NUX01FTV9XUklURShBUkc0LCBzaXplb2YodmtpX3VpbnRfdCkpOworICAgICAgaWYgKChBUkc0ICE9IDApICYmIChBUkc1ICE9IDApKSB7CisgICAgICAgICB2a2lfdWludF90ICpudW1jcHVzID0gKHZraV91aW50X3QgKikgQVJHNDsKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzUsIE1JTigqbnVtY3B1cywgQVJHNikgKiBzaXplb2YodmtpX3Byb2Nlc3NvcmlkX3QpKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFNFVF9CSU5EOgorICAgICAgaWYgKEFSRzUgIT0gMCkKKyAgICAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzUsIHNpemVvZih2a2lfcHNldGlkX3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfUFNFVF9CSU5EX0xXUDoKKyAgICAgIGlmIChBUkc1ICE9IDApCisgICAgICAgICBQT1NUX01FTV9XUklURShBUkc1LCBzaXplb2YodmtpX3BzZXRpZF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BTRVRfR0VUTE9BREFWRzoKKyAgICAgIGlmIChBUkczICE9IDApCisgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBNSU4oU0FSRzQsIFZLSV9MT0FEQVZHX05TVEFUUykgKiBzaXplb2YoZG91YmxlKSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1BTRVRfTElTVDoKKyAgICAgIGlmIChBUkczICE9IDApCisgICAgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX3VpbnRfdCkpOworICAgICAgaWYgKChBUkcyICE9IDApICYmIChBUkczICE9IDApKSB7CisgICAgICAgICB2a2lfdWludF90ICpudW1wc2V0cyA9ICh2a2lfdWludF90ICopIEFSRzM7CisgICAgICAgICBQT1NUX01FTV9XUklURShBUkcyLCBNSU4oKm51bXBzZXRzLCBBUkc2KSAqIHNpemVvZih2a2lfcHNldGlkX3QpKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworIyAgaWYgZGVmaW5lZChTT0xBUklTX1BTRVRfR0VUX05BTUUpCisgICBjYXNlIFZLSV9QU0VUX0dFVF9OQU1FOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMywgVkdfKHN0cmxlbikoKEhDaGFyICopIEFSRzMpICsgMSk7CisgICAgICBicmVhazsKKyMgIGVuZGlmIC8qIFNPTEFSSVNfUFNFVF9HRVRfTkFNRSAqLworICAgY2FzZSBWS0lfUFNFVF9TRVRBVFRSOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QU0VUX0dFVEFUVFI6CisgICAgICBQT1NUX01FTV9XUklURShBUkczLCBzaXplb2YodmtpX3VpbnRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9QU0VUX0FTU0lHTl9GT1JDRUQ6CisgICAgICBpZiAoQVJHNCAhPSAwKQorICAgICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHNCwgc2l6ZW9mKHZraV9wc2V0aWRfdCkpOworICAgICAgYnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgdmdfYXNzZXJ0KDApOworICAgICAgYnJlYWs7CisgICB9Cit9CisKK1BSRShzeXNfcmVzb2x2ZXBhdGgpCit7CisgICAvKiBpbnQgcmVzb2x2ZXBhdGgoY29uc3QgY2hhciAqcGF0aCwgY2hhciAqYnVmLCBzaXplX3QgYnVmc2l6KTsgKi8KKyAgIFBSSU5UKCJzeXNfcmVzb2x2ZXBhdGggKCAlI2x4KCVzKSwgJSNseCwgJWx1ICkiLCBBUkcxLCAoSENoYXIgKikgQVJHMSwgQVJHMiwKKyAgICAgICAgIEFSRzMpOworICAgUFJFX1JFR19SRUFEMyhsb25nLCAicmVzb2x2ZXBhdGgiLCBjb25zdCBjaGFyICosIHBhdGgsIGNoYXIgKiwgYnVmLAorICAgICAgICAgICAgICAgICB2a2lfc2l6ZV90LCBidWZzaXopOworCisgICBQUkVfTUVNX1JBU0NJSVooInJlc29sdmVwYXRoKHBhdGgpIiwgQVJHMSk7CisgICBQUkVfTUVNX1dSSVRFKCJyZXNvbHZlcGF0aChidWYpIiwgQVJHMiwgQVJHMyk7Cit9CisKK1BPU1Qoc3lzX3Jlc29sdmVwYXRoKQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgUkVTKTsKK30KKworUFJFKHN5c19sd3BfbXV0ZXhfdGltZWRsb2NrKQoreworICAgLyogaW50IGx3cF9tdXRleF90aW1lZGxvY2sobHdwX211dGV4X3QgKmxwLCB0aW1lc3BlY190ICp0c3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3Qgb3duZXIpOyAqLworICAgdmtpX2x3cF9tdXRleF90ICpscCA9ICh2a2lfbHdwX211dGV4X3QgKilBUkcxOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgibHdwX211dGV4X3RpbWVkbG9jayAoICUjbHgsICUjbHgsICUjbHggKSIsIEFSRzEsIEFSRzIsIEFSRzMpOworICAgUFJFX1JFR19SRUFEMyhsb25nLCAibHdwX211dGV4X3RpbWVkbG9jayIsIGx3cF9tdXRleF90ICosIGxwLAorICAgICAgICAgICAgICAgICB0aW1lc3BlY190ICosIHRzcCwgdWludHB0cl90LCBvd25lcik7CisKKyAgIFBSRV9GSUVMRF9SRUFEKCJsd3BfbXV0ZXhfdGltZWRsb2NrKGxwLT5tdXRleF9mbGFnKSIsIGxwLT52a2lfbXV0ZXhfZmxhZyk7CisgICBQUkVfRklFTERfUkVBRCgibHdwX211dGV4X3RpbWVkbG9jayhscC0+bXV0ZXhfdHlwZSkiLCBscC0+dmtpX211dGV4X3R5cGUpOworICAgUFJFX0ZJRUxEX1dSSVRFKCJsd3BfbXV0ZXhfdGltZWRsb2NrKGxwLT5tdXRleF9vd25lcikiLAorICAgICAgICAgICAgICAgICAgIGxwLT52a2lfbXV0ZXhfb3duZXIpOworICAgUFJFX0ZJRUxEX1dSSVRFKCJsd3BfbXV0ZXhfdGltZWRsb2NrKGxwLT5tdXRleF9vd25lcnBpZCkiLAorICAgICAgICAgICAgICAgICAgIGxwLT52a2lfbXV0ZXhfb3duZXJwaWQpOworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9tdXRleF90aW1lZGxvY2sobHAtPm11dGV4X2xvY2t3KSIsIGxwLT52a2lfbXV0ZXhfbG9ja3cpOworICAgLypQUkVfRklFTERfV1JJVEUoImx3cF9tdXRleF90aW1lZGxvY2sobHAtPm11dGV4X2xvY2t3KSIsCisgICAgICAgICAgICAgICAgICAgICBscC0+dmtpX211dGV4X2xvY2t3KTsqLworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9tdXRleF90aW1lZGxvY2sobHAtPm11dGV4X3dhaXRlcnMpIiwKKyAgICAgICAgICAgICAgICAgIGxwLT52a2lfbXV0ZXhfd2FpdGVycyk7CisgICAvKlBSRV9GSUVMRF9XUklURSgibHdwX211dGV4X3RpbWVkbG9jayhscC0+bXV0ZXhfd2FpdGVycykiLAorICAgICAgICAgICAgICAgICAgICAgbHAtPnZraV9tdXRleF93YWl0ZXJzKTsqLworICAgaWYgKEFSRzIpIHsKKyAgICAgIFBSRV9NRU1fUkVBRCgibHdwX211dGV4X3RpbWVkbG9jayh0c3ApIiwgQVJHMiwgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7CisgICAgICAvKlBSRV9NRU1fV1JJVEUoImx3cF9tdXRleF90aW1lZGxvY2sodHNwKSIsIEFSRzIsCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7Ki8KKyAgIH0KK30KKworUE9TVChzeXNfbHdwX211dGV4X3RpbWVkbG9jaykKK3sKKyAgIHZraV9sd3BfbXV0ZXhfdCAqbHAgPSAodmtpX2x3cF9tdXRleF90ICopQVJHMTsKKyAgIFBPU1RfRklFTERfV1JJVEUobHAtPnZraV9tdXRleF9vd25lcik7CisgICBQT1NUX0ZJRUxEX1dSSVRFKGxwLT52a2lfbXV0ZXhfb3duZXJwaWQpOworICAgUE9TVF9GSUVMRF9XUklURShscC0+dmtpX211dGV4X2xvY2t3KTsKKyAgIFBPU1RfRklFTERfV1JJVEUobHAtPnZraV9tdXRleF93YWl0ZXJzKTsKKyAgIGlmIChBUkcyKQorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7Cit9CisKK1BSRShzeXNfbHdwX3J3bG9ja19zeXMpCit7CisgICAvKiBpbnQgbHdwX3J3bG9ja19zeXMoaW50IHN1YmNvZGUsIGx3cF9yd2xvY2tfdCAqcndscCwgdGltZXNwZWNfdCAqdHNwKTsgKi8KKyAgIHZraV9sd3Bfcndsb2NrX3QgKnJ3bHAgPSAodmtpX2x3cF9yd2xvY2tfdCAqKUFSRzI7CisgICBzd2l0Y2ggKEFSRzEgLypzdWJjb2RlKi8pIHsKKyAgIGNhc2UgMDoKKyAgIGNhc2UgMToKKyAgIGNhc2UgMjoKKyAgIGNhc2UgMzoKKyAgICAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgICAgc3dpdGNoIChBUkcxIC8qc3ViY29kZSovKSB7CisgICAgICBjYXNlIDA6CisgICAgICAgICBQUklOVCgic3lzX2x3cF9yd2xvY2sgKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKKyAgICAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJsd3Bfcndsb2NrIiwgInJkbG9jayIpLCBpbnQsIHN1YmNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgIGx3cF9yd2xvY2tfdCAqLCByd2xwLCB0aW1lc3BlY190ICosIHRzcCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMToKKyAgICAgICAgIFBSSU5UKCJzeXNfbHdwX3J3bG9jayAoICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMpOworICAgICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzIoImx3cF9yd2xvY2siLCAid3Jsb2NrIiksIGludCwgc3ViY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgbHdwX3J3bG9ja190ICosIHJ3bHAsIHRpbWVzcGVjX3QgKiwgdHNwKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAyOgorICAgICAgICAgUFJJTlQoInN5c19sd3Bfcndsb2NrICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICAgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigibHdwX3J3bG9jayIsICJ0cnlyZGxvY2siKSwgaW50LCBzdWJjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICBsd3Bfcndsb2NrX3QgKiwgcndscCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMzoKKyAgICAgICAgIFBSSU5UKCJzeXNfbHdwX3J3bG9jayAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoImx3cF9yd2xvY2siLCAidHJ5d3Jsb2NrIiksIGludCwgc3ViY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgbHdwX3J3bG9ja190ICosIHJ3bHApOworICAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICAgdmdfYXNzZXJ0KDApOworICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJsd3Bfcndsb2NrKHJ3bHAtPnJ3bG9ja190eXBlKSIsIHJ3bHAtPnZraV9yd2xvY2tfdHlwZSk7CisgICAgICBQUkVfRklFTERfUkVBRCgibHdwX3J3bG9jayhyd2xwLT5yd2xvY2tfcmVhZGVycykiLAorICAgICAgICAgICAgICAgICAgICAgcndscC0+dmtpX3J3bG9ja19yZWFkZXJzKTsKKyAgICAgIC8qUFJFX0ZJRUxEX1dSSVRFKCJsd3Bfcndsb2NrKHJ3bHAtPnJ3bG9ja19yZWFkZXJzKSIsCisgICAgICAgICAgICAgICAgICAgICAgICByd2xwLT52a2lfcndsb2NrX3JlYWRlcnMpOyovCisKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJsd3Bfcndsb2NrKHJ3bHAtPm11dGV4Lm11dGV4X3R5cGUpIiwKKyAgICAgICAgICAgICAgICAgICAgIHJ3bHAtPm11dGV4LnZraV9tdXRleF90eXBlKTsKKyAgICAgIFBSRV9GSUVMRF9XUklURSgibHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF9vd25lcikiLAorICAgICAgICAgICAgICAgICAgICAgIHJ3bHAtPm11dGV4LnZraV9tdXRleF9vd25lcik7CisgICAgICBQUkVfRklFTERfV1JJVEUoImx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfb3duZXJwaWQpIiwKKyAgICAgICAgICAgICAgICAgICAgICByd2xwLT5tdXRleC52a2lfbXV0ZXhfb3duZXJwaWQpOworICAgICAgLyogVGhlIG11dGV4X2xvY2t3IG1lbWJlciBpcyBub3QgcmVhbGx5IHJlYWQgYnkgdGhlIGtlcm5lbCBmb3IgdGhpcworICAgICAgICAgc3lzY2FsbCBidXQgaXQgc2VlbXMgYmV0dGVyIHRvIG1hcmsgaXQgdGhhdCB3YXkgYmVjYXVzZSB3aGVuIGxvY2tpbmcKKyAgICAgICAgIGFuIHJ3bG9jayB0aGUgYXNzb2NpYXRlZCBtdXRleCBoYXMgdG8gYmUgbG9ja2VkLiAqLworICAgICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfbG9ja3cpIiwKKyAgICAgICAgICAgICAgICAgICAgIHJ3bHAtPm11dGV4LnZraV9tdXRleF9sb2Nrdyk7CisgICAgICAvKlBSRV9GSUVMRF9XUklURSgibHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF9sb2NrdykiLAorICAgICAgICAgICAgICAgICAgICAgICAgcndscC0+bXV0ZXgudmtpX211dGV4X2xvY2t3KTsqLworICAgICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfd2FpdGVycykiLAorICAgICAgICAgICAgICAgICAgICAgcndscC0+bXV0ZXgudmtpX211dGV4X3dhaXRlcnMpOworICAgICAgLypQUkVfRklFTERfV1JJVEUoImx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfd2FpdGVycykiLAorICAgICAgICAgICAgICAgICAgICAgICAgcndscC0+bXV0ZXgudmtpX211dGV4X3dhaXRlcnMpOyovCisKKyAgICAgIGlmICgoQVJHMSA9PSAwIHx8IEFSRzEgPT0gMSkgJiYgQVJHMykKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgibHdwX3J3bG9jayh0c3ApIiwgQVJHMywgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgNDoKKyAgICAgIFBSSU5UKCJzeXNfbHdwX3J3bG9jayggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigibHdwX3J3bG9jayIsICJ1bmxvY2siKSwgaW50LCBzdWJjb2RlLAorICAgICAgICAgICAgICAgICAgICBsd3Bfcndsb2NrX3QgKiwgcndscCk7CisgICAgICBQUkVfRklFTERfUkVBRCgibHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF90eXBlKSIsCisgICAgICAgICAgICAgICAgICAgICByd2xwLT5tdXRleC52a2lfbXV0ZXhfdHlwZSk7CisgICAgICBQUkVfRklFTERfUkVBRCgibHdwX3J3bG9jayhyd2xwLT5yd2xvY2tfcmVhZGVycykiLAorICAgICAgICAgICAgICAgICAgICAgcndscC0+dmtpX3J3bG9ja19yZWFkZXJzKTsKKyAgICAgIC8qUFJFX0ZJRUxEX1dSSVRFKCJsd3Bfcndsb2NrKHJ3bHAtPnJ3bG9ja19yZWFkZXJzKSIsCisgICAgICAgICAgICAgICAgICAgICAgICByd2xwLT52a2lfcndsb2NrX3JlYWRlcnMpOyovCisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBWR18odW5pbXBsZW1lbnRlZCkoIlN5c3dyYXAgb2YgdGhlIGx3cF9yd2xvY2tfc3lzIGNhbGwgd2l0aCBzdWJjb2RlICVsZC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KK30KKworUE9TVChzeXNfbHdwX3J3bG9ja19zeXMpCit7CisgICB2a2lfbHdwX3J3bG9ja190ICpyd2xwID0gKHZraV9sd3Bfcndsb2NrX3QgKilBUkcyOworICAgc3dpdGNoIChBUkcxIC8qc3ViY29kZSovKSB7CisgICBjYXNlIDA6CisgICBjYXNlIDE6CisgICBjYXNlIDI6CisgICBjYXNlIDM6CisgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHJ3bHAtPnZraV9yd2xvY2tfcmVhZGVycyk7CisgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHJ3bHAtPnZraV9yd2xvY2tfb3duZXIpOworICAgICAgUE9TVF9GSUVMRF9XUklURShyd2xwLT52a2lfcndsb2NrX293bmVycGlkKTsKKyAgICAgIFBPU1RfRklFTERfV1JJVEUocndscC0+bXV0ZXgudmtpX211dGV4X2xvY2t3KTsKKyAgICAgIFBPU1RfRklFTERfV1JJVEUocndscC0+bXV0ZXgudmtpX211dGV4X3dhaXRlcnMpOworICAgICAgYnJlYWs7CisgICBjYXNlIDQ6CisgICAgICBQT1NUX0ZJRUxEX1dSSVRFKHJ3bHAtPnZraV9yd2xvY2tfcmVhZGVycyk7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICB2Z19hc3NlcnQoMCk7CisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19sd3Bfc2VtYV90aW1lZHdhaXQpCit7CisgICAvKiBpbnQgbHdwX3NlbWFfdGltZWR3YWl0KGx3cF9zZW1hX3QgKnNlbWEsIHRpbWVzcGVjX3QgKnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGVja19wYXJrKTsgKi8KKyAgIHZraV9sd3Bfc2VtYV90ICpzZW1hID0gKHZraV9sd3Bfc2VtYV90KilBUkcxOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX2x3cF9zZW1hX3RpbWV3YWl0ICggJSNseCwgJSNseCwgJWxkICkiLCBBUkcxLCBBUkcyLCBTQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJsd3Bfc2VtYV90aW1lZHdhaXQiLCBsd3Bfc2VtYV90ICosIHNlbWEsCisgICAgICAgICAgICAgICAgIHRpbWVzcGVjX3QgKiwgdGltZW91dCwgaW50LCBjaGVja19wYXJrKTsKKworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9zZW1hX3RpbWVkd2FpdChzZW1hLT50eXBlKSIsIHNlbWEtPnZraV9zZW1hX3R5cGUpOworICAgUFJFX0ZJRUxEX1JFQUQoImx3cF9zZW1hX3RpbWVkd2FpdChzZW1hLT5jb3VudCkiLCBzZW1hLT52a2lfc2VtYV9jb3VudCk7CisgICAvKlBSRV9GSUVMRF9XUklURSgibHdwX3NlbWFfdGltZWR3YWl0KHNlbWEtPmNvdW50KSIsCisgICAgICAgICAgICAgICAgICAgICBzZW1hLT52a2lfc2VtYV9jb3VudCk7Ki8KKyAgIFBSRV9GSUVMRF9SRUFEKCJsd3Bfc2VtYV90aW1lZHdhaXQoc2VtYS0+d2FpdGVycykiLCBzZW1hLT52a2lfc2VtYV93YWl0ZXJzKTsKKyAgIC8qUFJFX0ZJRUxEX1dSSVRFKCJsd3Bfc2VtYV90aW1lZHdhaXQoc2VtYS0+d2FpdGVycykiLAorICAgICAgICAgICAgICAgICAgICAgc2VtYS0+dmtpX3NlbWFfd2FpdGVycyk7Ki8KKyAgIGlmIChBUkcyKSB7CisgICAgICBQUkVfTUVNX1JFQUQoImx3cF9zZW1hX3RpbWVkd2FpdCh0aW1lb3V0KSIsIEFSRzIsCisgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7CisgICAgICAvKlBSRV9NRU1fV1JJVEUoImx3cF9zZW1hX3RpbWVkd2FpdCh0aW1lb3V0KSIsIEFSRzIsCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZraV90aW1lc3BlY190KSk7Ki8KKyAgIH0KK30KKworUE9TVChzeXNfbHdwX3NlbWFfdGltZWR3YWl0KQoreworICAgdmtpX2x3cF9zZW1hX3QgKnNlbWEgPSAodmtpX2x3cF9zZW1hX3QqKUFSRzE7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHNlbWEtPnZraV9zZW1hX2NvdW50KTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc2VtYS0+dmtpX3NlbWFfd2FpdGVycyk7CisgICBpZiAoQVJHMikKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIHNpemVvZih2a2lfdGltZXNwZWNfdCkpOworfQorCitQUkUoc3lzX3pvbmUpCit7CisgICAvKiBLZXJuZWw6IGxvbmcgem9uZShpbnQgY21kLCB2b2lkICphcmcxLCB2b2lkICphcmcyLCB2b2lkICphcmczLAorICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYXJnNCk7CisgICAgKi8KKyAgIHN3aXRjaCAoQVJHMSAvKmNtZCovKSB7CisgICBjYXNlIFZLSV9aT05FX0NSRUFURToKKyAgICAgIC8qIExpYmM6IHpvbmVpZF90IHpvbmVfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnJvb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcHJpdl9zZXQgKnByaXZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmN0bHMsIHNpemVfdCByY3Rsc3osCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp6ZnMsIHNpemVfdCB6ZnNzeiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqZXh0ZW5kZWRfZXJyb3IsIGludCBtYXRjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkb2ksIGNvbnN0IGJzbGFiZWxfdCAqbGFiZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MpOworICAgICAgICBLZXJuZWw6IHpvbmVpZF90IHpvbmVfY3JlYXRlKHpvbmVfZGVmICp6ZCk7CisgICAgICAgKi8KKyAgICAgIFBSSU5UKCJzeXNfem9uZSAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoInpvbmUiLCAiY3JlYXRlIiksIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICB2a2lfem9uZV9kZWYgKiwgemQpOworCisgICAgICB2a2lfem9uZV9kZWYgKnpkID0gKHZraV96b25lX2RlZiAqKSBBUkcyOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInpvbmUoemQuem9uZV9uYW1lKSIsIHpkLT56b25lX25hbWUpOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInpvbmUoemQuem9uZV9yb290KSIsIHpkLT56b25lX3Jvb3QpOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInpvbmUoemQuem9uZV9wcml2cykiLCB6ZC0+em9uZV9wcml2cyk7CisgICAgICBQUkVfRklFTERfUkVBRCgiem9uZSh6ZC56b25lX3ByaXZzc3opIiwgemQtPnpvbmVfcHJpdnNzeik7CisgICAgICBQUkVfRklFTERfUkVBRCgiem9uZSh6ZC5yY3RsYnVmKSIsIHpkLT5yY3RsYnVmKTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJ6b25lKHpkLnJjdGxidWZzeikiLCB6ZC0+cmN0bGJ1ZnN6KTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJ6b25lKHpkLnpmc2J1ZikiLCB6ZC0+emZzYnVmKTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJ6b25lKHpkLnpmc2J1ZnN6KSIsIHpkLT56ZnNidWZzeik7CisgICAgICBQUkVfRklFTERfUkVBRCgiem9uZSh6ZC5leHRlbmRlZF9lcnJvcikiLCB6ZC0+ZXh0ZW5kZWRfZXJyb3IpOworICAgICAgUFJFX0ZJRUxEX1JFQUQoInpvbmUoemQubWF0Y2gpIiwgemQtPm1hdGNoKTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJ6b25lKHpkLmRvaSkiLCB6ZC0+ZG9pKTsKKyAgICAgIFBSRV9GSUVMRF9SRUFEKCJ6b25lKHpkLmxhYmVsKSIsIHpkLT5sYWJlbCk7CisgICAgICBQUkVfRklFTERfUkVBRCgiem9uZSh6ZC5mbGFncykiLCB6ZC0+ZmxhZ3MpOworCisgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYoKHZvaWQgKilBUkcyLCBzaXplb2YodmtpX3pvbmVfZGVmKSkpKSB7CisgICAgICAgICBpZiAoemQtPnpvbmVfbmFtZSkKKyAgICAgICAgICAgIFBSRV9NRU1fUkFTQ0lJWigiem9uZSh6ZC56b25lX25hbWUpIiwgKEFkZHIpIHpkLT56b25lX25hbWUpOworICAgICAgICAgaWYgKHpkLT56b25lX3Jvb3QpCisgICAgICAgICAgICBQUkVfTUVNX1JBU0NJSVooInpvbmUoemQuem9uZV9yb290KSIsIChBZGRyKSB6ZC0+em9uZV9yb290KTsKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiem9uZSh6ZC56b25lX3ByaXZzKSIsIChBZGRyKSB6ZC0+em9uZV9wcml2cywKKyAgICAgICAgICAgICAgICAgICAgICB6ZC0+em9uZV9wcml2c3N6KTsKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiem9uZSh6ZC5yY3RsYnVmKSIsIChBZGRyKSB6ZC0+cmN0bGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICB6ZC0+cmN0bGJ1ZnN6KTsKKyAgICAgICAgIFBSRV9NRU1fUkVBRCgiem9uZSh6ZC56ZnNidWYpIiwKKyAgICAgICAgICAgICAgICAgICAgICAoQWRkcikgemQtPnpmc2J1ZiwgemQtPnpmc2J1ZnN6KTsKKyAgICAgICAgIGlmICh6ZC0+bGFiZWwpCisgICAgICAgICAgICBQUkVfTUVNX1JFQUQoInpvbmUoemQubGFiZWwpIiwgKEFkZHIpIHpkLT5sYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodmtpX2JzbGFiZWxfdCkpOworICAgICAgfQorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9aT05FX0RFU1RST1k6CisgICAgICAvKiBMaWJjOiBpbnQgem9uZV9kZXN0cm95KHpvbmVpZF90IHpvbmVpZCk7ICovCisgICAgICBQUklOVCgic3lzX3pvbmUgKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgU0MyKCJ6b25lIiwgImRlc3Ryb3kiKSwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHZraV96b25laWRfdCwgem9uZWlkKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfWk9ORV9HRVRBVFRSOgorICAgICAgLyogTGliYzogc3NpemVfdCB6b25lX2dldGF0dHIoem9uZWlkX3Qgem9uZWlkLCBpbnQgYXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnZhbHAsIHNpemVfdCBzaXplKTsKKyAgICAgICAqLworICAgICAgUFJJTlQoInN5c196b25lICggJWxkLCAlbGQsICVsZCwgJSNseCwgJWxkICkiLAorICAgICAgICAgICAgU0FSRzEsIFNBUkcyLCBTQVJHMywgQVJHNCwgU0FSRzUpOworICAgICAgUFJFX1JFR19SRUFENShsb25nLCBTQzIoInpvbmUiLCAiZ2V0YXR0ciIpLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3pvbmVpZF90LCB6b25laWQsIGludCwgYXR0ciwgdm9pZCAqLCB2YWxwLAorICAgICAgICAgICAgICAgICAgICB2a2lfc2l6ZV90LCBzaXplKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoInpvbmUodmFscCkiLCBBUkc0LCBBUkc1KTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfWk9ORV9FTlRFUjoKKyAgICAgIC8qIExpYmM6IGludCB6b25lX2VudGVyKHpvbmVpZF90IHpvbmVpZCk7ICovCisgICAgICBQUklOVCgic3lzX3pvbmUgKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgU0MyKCJ6b25lIiwgImVudGVyIiksIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICB2a2lfem9uZWlkX3QsIHpvbmVpZCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1pPTkVfTElTVDoKKyAgICAgIC8qIExpYmM6IGludCB6b25lX2xpc3Qoem9uZWlkX3QgKnpvbmVsaXN0LCB1aW50X3QgKm51bXpvbmVzKTsgKi8KKyAgICAgIFBSSU5UKCJzeXNfem9uZSAoICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMpOworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzIoInpvbmUiLCAibGlzdCIpLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3pvbmVpZF90ICosIHpvbmVsaXN0LCB2a2lfdWludF90ICosIG51bXpvbmVzKTsKKworICAgICAgUFJFX01FTV9XUklURSgiem9uZShudW16b25lcykiLCBBUkczLCBzaXplb2YodmtpX3VpbnRfdCkpOworCisgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYoKHZvaWQgKikgQVJHMywgc2l6ZW9mKHZraV91aW50X3QpKSkpIHsKKyAgICAgICAgIGlmIChBUkcyKQorICAgICAgICAgICAgUFJFX01FTV9XUklURSgiem9uZSh6b25lbGlzdCkiLCBBUkcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAqKHZraV91aW50X3QgKikgQVJHMyAqIHNpemVvZih2a2lfem9uZWlkX3QpKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfWk9ORV9TSFVURE9XTjoKKyAgICAgIC8qIExpYmM6IGludCB6b25lX3NodXRkb3duKHpvbmVpZF90IHpvbmVpZCk7ICovCisgICAgICBQUklOVCgic3lzX3pvbmUgKCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyKTsKKyAgICAgIFBSRV9SRUdfUkVBRDIobG9uZywgU0MyKCJ6b25lIiwgInNodXRkb3duIiksIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICB2a2lfem9uZWlkX3QsIHpvbmVpZCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1pPTkVfTE9PS1VQOgorICAgICAgLyogTGliYzogem9uZWlkX3Qgem9uZV9sb29rdXAoY29uc3QgY2hhciAqbmFtZSk7ICovCisgICAgICBQUklOVCgic3lzX3pvbmUgKCAlbGQsICUjbHgoJXMpICkiLCBTQVJHMSwgQVJHMiwgKEhDaGFyICopIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCBTQzIoInpvbmUiLCAibG9va3VwIiksIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIG5hbWUpOworICAgICAgaWYgKEFSRzIpCisgICAgICAgICBQUkVfTUVNX1JBU0NJSVooInpvbmUobmFtZSkiLCBBUkcyKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfWk9ORV9CT09UOgorICAgICAgLyogTGliYzogaW50IHpvbmVfYm9vdCh6b25laWRfdCB6b25laWQpOyAqLworICAgICAgUFJJTlQoInN5c196b25lICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CisgICAgICBQUkVfUkVHX1JFQUQyKGxvbmcsIFNDMigiem9uZSIsICJib290IiksIGludCwgY21kLAorICAgICAgICAgICAgICAgICAgICB2a2lfem9uZWlkX3QsIHpvbmVpZCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1pPTkVfU0VUQVRUUjoKKyAgICAgIC8qIExpYmM6IGludCB6b25lX3NldGF0dHIoem9uZWlkX3Qgem9uZWlkLCBpbnQgYXR0ciwgdm9pZCAqdmFscCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpOworICAgICAgICovCisgICAgICBQUklOVCgic3lzX3pvbmUgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbHUgKSIsCisgICAgICAgICAgICBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0LCBBUkc1KTsKKyAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MyKCJ6b25lIiwgInNldGF0dHIiKSwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHZraV96b25laWRfdCwgem9uZWlkLCBpbnQsIGF0dHIsIHZvaWQgKiwgdmFscCwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3NpemVfdCwgc2l6ZSk7CisgICAgICBQUkVfTUVNX1JFQUQoInpvbmUodmFscCkiLCBBUkc0LCBBUkc1KTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfWk9ORV9BRERfREFUQUxJTks6CisgICAgICAvKiBMaWJjOiBpbnQgem9uZV9hZGRfZGF0YWxpbmsoem9uZWlkX3Qgem9uZWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaW5rX2lkX3QgbGlua2lkKTsKKyAgICAgICAqLworICAgICAgUFJJTlQoInN5c196b25lICggJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMyk7CisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMigiem9uZSIsICJhZGRfZGF0YWxpbmsiKSwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHZraV96b25laWRfdCwgem9uZWlkLCB2a2lfZGF0YWxpbmtfaWRfdCwgbGlua2lkKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfWk9ORV9ERUxfREFUQUxJTks6CisgICAgICAvKiBMaWJjOiBpbnQgem9uZV9yZW1vdmVfZGF0YWxpbmsoem9uZWlkX3Qgem9uZWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaW5rX2lkX3QgbGlua2lkKTsKKyAgICAgICAqLworICAgICAgUFJJTlQoInN5c196b25lICggJWxkLCAlbGQsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMyk7CisgICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsIFNDMigiem9uZSIsICJkZWxfZGF0YWxpbmsiKSwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHZraV96b25laWRfdCwgem9uZWlkLCB2a2lfZGF0YWxpbmtfaWRfdCwgbGlua2lkKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfWk9ORV9DSEVDS19EQVRBTElOSzoKKyAgICAgIC8qIExpYmM6IGludCB6b25lX2NoZWNrX2RhdGFsaW5rKHpvbmVpZF90ICp6b25laWRwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpbmtfaWRfdCBsaW5raWQpOworICAgICAgKi8KKyAgICAgIFBSSU5UKCJzeXNfem9uZSAoICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOworICAgICAgUFJFX1JFR19SRUFEMyhsb25nLCBTQzIoInpvbmUiLCAiY2hlY2tfZGF0YWxpbmsiKSwgaW50LCBjbWQsCisgICAgICAgICAgICAgICAgICAgIHZraV96b25laWRfdCAqLCB6b25laWRwLCB2a2lfZGF0YWxpbmtfaWRfdCwgbGlua2lkKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoInpvbmUoem9uZWlkcCkiLCBBUkcyLCBzaXplb2YodmtpX3pvbmVpZF90KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1pPTkVfTElTVF9EQVRBTElOSzoKKyAgICAgIC8qIExpYmM6IGludCB6b25lX2xpc3RfZGF0YWxpbmsoem9uZWlkX3Qgem9uZWlkLCBpbnQgKmRsbnVtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpbmtfaWRfdCAqbGlua2lkcyk7CisgICAgICAgKi8KKyAgICAgIFBSSU5UKCJzeXNfem9uZSAoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMsIEFSRzQpOworICAgICAgUFJFX1JFR19SRUFENChsb25nLCBTQzIoInpvbmUiLCAibGlzdF9kYXRhbGluayIpLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3pvbmVpZF90LCB6b25laWQsIGludCAqLCBkbG51bXAsCisgICAgICAgICAgICAgICAgICAgIHZraV9kYXRhbGlua19pZF90ICosIGxpbmtpZHMpOworCisgICAgICBQUkVfTUVNX1dSSVRFKCJ6b25lKGRsbnVtcCkiLCBBUkczLCBzaXplb2YoaW50KSk7CisgICAgICBpZiAoTUxfKHNhZmVfdG9fZGVyZWYoKHZvaWQgKikgQVJHMywgc2l6ZW9mKGludCkpKSkgeworICAgICAgICAgaWYgKEFSRzQpCisgICAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJ6b25lKGxpbmtpZHMpIiwgQVJHNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKihpbnQgKikgQVJHMyAqIHNpemVvZih2a2lfZGF0YWxpbmtfaWRfdCkpOworICAgICAgfQorICAgICAgYnJlYWs7CisjaWYgZGVmaW5lZChTT0xBUklTX1pPTkVfREVGVU5DVCkKKyAgIGNhc2UgVktJX1pPTkVfTElTVF9ERUZVTkNUOgorICAgICAgLyogTGliYzogaW50IHpvbmVfbGlzdF9kZWZ1bmN0KHVpbnQ2NF90ICp1bmlxaWRsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRfdCAqbnVtem9uZXMpOworICAgICAgICovCisgICAgICBQUklOVCgic3lzX3pvbmUgKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgU0MyKCJ6b25lIiwgImxpc3RfZGVmdW5jdCIpLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3VpbnQ2NF90ICosIHVuaXFpZGxpc3QsIHZraV91aW50X3QgKiwgbnVtem9uZXMpOworCisgICAgICBQUkVfTUVNX1dSSVRFKCJ6b25lKG51bXpvbmVzKSIsIEFSRzMsIHNpemVvZih2a2lfdWludF90KSk7CisKKyAgICAgIGlmIChNTF8oc2FmZV90b19kZXJlZigodm9pZCAqKSBBUkczLCBzaXplb2YodmtpX3VpbnRfdCkpKSkgeworICAgICAgICAgaWYgKEFSRzIpCisgICAgICAgICAgICBQUkVfTUVNX1dSSVRFKCJ6b25lKHVuaXFpZGxpc3QpIiwgQVJHMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKih2a2lfdWludF90ICopIEFSRzMgKiBzaXplb2YodmtpX3VpbnQ2NF90KSk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1pPTkVfR0VUQVRUUl9ERUZVTkNUOgorICAgICAgLyogTGliYzogc3NpemVfdCB6b25lX2dldGF0dHJfZGVmdW5jdCh1aW50NjRfdCB1bmlxaWQsIGludCBhdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp2YWxwLCBzaXplX3Qgc2l6ZSk7CisgICAgICAgICBLZXJuZWw6IHNzaXplX3Qgem9uZV9nZXRhdHRyX2RlZnVuY3QodWludDY0X3QgKnVuaXFpZCwgaW50IGF0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdmFscCwgc2l6ZV90IHNpemUpOworICAgICAgICovCisgICAgICBQUklOVCgic3lzX3pvbmUgKCAlbGQsICUjbHgsICVsZCwgJSNseCwgJWx1ICkiLAorICAgICAgICAgICAgU0FSRzEsIEFSRzIsIFNBUkczLCBBUkc0LCBBUkc1KTsKKyAgICAgIFBSRV9SRUdfUkVBRDUobG9uZywgU0MyKCJ6b25lIiwgImdldGF0dHJfZGVmdW5jdCIpLCBpbnQsIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgdmtpX3VpbnQ2NF90ICosIHVuaXFpZCwgaW50LCBhdHRyLAorICAgICAgICAgICAgICAgICAgICB2b2lkICosIHZhbHAsIHZraV9zaXplX3QsIHNpemUpOworCisgICAgICBQUkVfTUVNX1JFQUQoInpvbmUodW5pcWlkKSIsIEFSRzIsIHNpemVvZih2a2lfdWludDY0X3QpKTsKKyAgICAgIFBSRV9NRU1fV1JJVEUoInpvbmUodmFscCkiLCBBUkc0LCBBUkc1KTsKKyAgICAgIGJyZWFrOworI2VuZGlmIC8qIFNPTEFSSVNfWk9ORV9ERUZVTkNUICovCisgICBkZWZhdWx0OgorICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTeXN3cmFwIG9mIHRoZSB6b25lIGNhbGwgd2l0aCBjbWQgJWxkLiIsIFNBUkcxKTsKKyAgICAgIC8qTk9UUkVBQ0hFRCovCisgICAgICBicmVhazsKKyAgIH0KKworfQorCitQT1NUKHN5c196b25lKQoreworICAgc3dpdGNoIChBUkcxIC8qY21kKi8pIHsKKyAgIGNhc2UgVktJX1pPTkVfQ1JFQVRFOgorICAgY2FzZSBWS0lfWk9ORV9ERVNUUk9ZOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9aT05FX0dFVEFUVFI6CisgICAgICBQT1NUX01FTV9XUklURShBUkc0LCBNSU4oUkVTLCBBUkc1KSk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1pPTkVfRU5URVI6CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1pPTkVfTElTVDoKKyAgICAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsICoodmtpX3VpbnRfdCAqKSBBUkczICogc2l6ZW9mKHZraV96b25laWRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9aT05FX1NIVVRET1dOOgorICAgY2FzZSBWS0lfWk9ORV9MT09LVVA6CisgICBjYXNlIFZLSV9aT05FX0JPT1Q6CisgICBjYXNlIFZLSV9aT05FX1NFVEFUVFI6CisgICBjYXNlIFZLSV9aT05FX0FERF9EQVRBTElOSzoKKyAgIGNhc2UgVktJX1pPTkVfREVMX0RBVEFMSU5LOgorICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9aT05FX0NIRUNLX0RBVEFMSU5LOgorICAgICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHZraV96b25laWRfdCkpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9aT05FX0xJU1RfREFUQUxJTks6CisgICAgICBQT1NUX01FTV9XUklURShBUkc0LCAqKGludCAqKSBBUkczICogc2l6ZW9mKHZraV9kYXRhbGlua19pZF90KSk7CisgICAgICBicmVhazsKKyNpZiBkZWZpbmVkKFNPTEFSSVNfWk9ORV9ERUZVTkNUKQorICAgY2FzZSBWS0lfWk9ORV9MSVNUX0RFRlVOQ1Q6CisgICAgICBQT1NUX01FTV9XUklURShBUkcyLCAqKHZraV91aW50X3QgKikgQVJHMyAqIHNpemVvZih2a2lfdWludDY0X3QpKTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWS0lfWk9ORV9HRVRBVFRSX0RFRlVOQ1Q6CisgICAgICBQT1NUX01FTV9XUklURShBUkc0LCBNSU4oUkVTLCBBUkc1KSk7CisgICAgICBicmVhazsKKyNlbmRpZiAvKiBTT0xBUklTX1pPTkVfREVGVU5DVCAqLworICAgZGVmYXVsdDoKKyAgICAgIHZnX2Fzc2VydCgwKTsKKyAgICAgIGJyZWFrOworICAgfQorfQorCitQUkUoc3lzX2dldGN3ZCkKK3sKKyAgIC8qIGludCBnZXRjd2QoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSk7ICovCisgICAvKiBOb3RlOiBHZW5lcmljIGdldGN3ZCgpIHN5c3dyYXAgY2FuJ3QgYmUgdXNlZCBiZWNhdXNlIGl0IGV4cGVjdHMKKyAgICAgIGEgZGlmZmVyZW50IHJldHVybiB2YWx1ZS4gKi8KKyAgIFBSSU5UKCJzeXNfZ2V0Y3dkICggJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIobG9uZywgImdldGN3ZCIsIGNoYXIgKiwgYnVmLCB2a2lfc2l6ZV90LCBzaXplKTsKKyAgIFBSRV9NRU1fV1JJVEUoImdldGN3ZChidWYpIiwgQVJHMSwgQVJHMik7Cit9CisKK1BPU1Qoc3lzX2dldGN3ZCkKK3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzEsIFZHXyhzdHJsZW4pKChIQ2hhciopQVJHMSkgKyAxKTsKK30KKworUFJFKHN5c19zb19zb2NrZXQpCit7CisgICAvKiBpbnQgc29fc29ja2V0KGludCBmYW1pbHksIGludCB0eXBlLCBpbnQgcHJvdG9jb2wsIGNoYXIgKmRldnBhdGgsCisgICAgICAgICAgICAgICAgICAgIGludCB2ZXJzaW9uKTsgKi8KKyAgIFBSSU5UKCJzeXNfc29fc29ja2V0ICggJWxkLCAlbGQsICVsZCwgJSNseCglcyksICVsZCkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLAorICAgICAgICAgQVJHNCwgKEhDaGFyICopIEFSRzQsIFNBUkc1KTsKKyAgIFBSRV9SRUdfUkVBRDUobG9uZywgInNvY2tldCIsIGludCwgZmFtaWx5LCBpbnQsIHR5cGUsIGludCwgcHJvdG9jb2wsCisgICAgICAgICAgICAgICAgIGNoYXIgKiwgZGV2cGF0aCwgaW50LCB2ZXJzaW9uKTsKKyAgIGlmIChBUkc0KQorICAgICAgUFJFX01FTV9SQVNDSUlaKCJzb2NrZXQoZGV2cGF0aCkiLCBBUkc0KTsKK30KKworUE9TVChzeXNfc29fc29ja2V0KQoreworICAgU3lzUmVzIHI7CisgICByID0gTUxfKGdlbmVyaWNfUE9TVF9zeXNfc29ja2V0KSh0aWQsIFZHXyhta19TeXNSZXNfU3VjY2VzcykoUkVTKSk7CisgICBTRVRfU1RBVFVTX2Zyb21fU3lzUmVzKHIpOworfQorCitQUkUoc3lzX3NvX3NvY2tldHBhaXIpCit7CisgICAvKiBpbnQgc29fc29ja2V0cGFpcihpbnQgc3ZbMl0pOyAqLworICAgLyogVGhpcyBzeXNjYWxsIGlzIHVzZWQgdG8gY29ubmVjdCB0d28gYWxyZWFkeSBjcmVhdGVkIHNvY2tldHMgdG9nZXRoZXIuICovCisgICBQUklOVCgic3lzX3NvX3NvY2tldHBhaXIgKCAlI2x4ICkiLCBBUkcxKTsKKyAgIFBSRV9SRUdfUkVBRDEobG9uZywgInNvY2tldHBhaXIiLCBpbnQgKiwgc3YpOworICAgUFJFX01FTV9SRUFEKCJzb2NrZXRwYWlyKHN2KSIsIEFSRzEsIDIgKiBzaXplb2YoaW50KSk7CisgICAvKlBSRV9NRU1fV1JJVEUoInNvY2tldHBhaXIoc3YpIiwgQVJHMSwgMiAqIHNpemVvZihpbnQpKTsqLworICAgaWYgKE1MXyhzYWZlX3RvX2RlcmVmKSgodm9pZCopQVJHMSwgMiAqIHNpemVvZihpbnQpKSkgeworICAgICAgaW50ICpmZHMgPSAoaW50KilBUkcxOworICAgICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoZmRzWzBdLCAic29ja2V0cGFpciIsIHRpZCwgRmFsc2UpKQorICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7CisgICAgICBlbHNlIGlmICghTUxfKGZkX2FsbG93ZWQpKGZkc1sxXSwgInNvY2tldHBhaXIiLCB0aWQsIEZhbHNlKSkKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworICAgfQorfQorCitQT1NUKHN5c19zb19zb2NrZXRwYWlyKQoreworICAgLyogVGhlIGtlcm5lbCBjYW4gcmV0dXJuIG5ldyBmaWxlIGRlc2NyaXB0b3JzLCBpbiBzdWNoIGEgY2FzZSB3ZSBoYXZlIHRvCisgICAgICB2YWxpZGF0ZSB0aGVtLiAqLworICAgaW50ICpmZHMgPSAoaW50KilBUkcxOworICAgUE9TVF9NRU1fV1JJVEUoQVJHMSwgMiAqIHNpemVvZihpbnQpKTsKKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKGZkc1swXSwgInNvY2tldHBhaXIiLCB0aWQsIFRydWUpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTUZJTEUpOworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoZmRzWzFdLCAic29ja2V0cGFpciIsIHRpZCwgVHJ1ZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VNRklMRSk7CisgICBpZiAoRkFJTFVSRSkgeworICAgICAgLyogT25lIG9yIGJvdGggb2YgdGhlIGZpbGUgZGVzY3JpcHRvcnMgd2VyZW4ndCBhbGxvd2VkLCBjbG9zZSBuZXdseQorICAgICAgICAgY3JlYXRlZCBmaWxlIGRlc2NyaXB0b3JzIGJ1dCBkb24ndCBjbG9zZSB0aGUgYWxyZWFkeSByZWNvcmRlZAorICAgICAgICAgb25lcy4gKi8KKyAgICAgIGlmICghTUxfKGZkX3JlY29yZGVkKShmZHNbMF0pKQorICAgICAgICAgVkdfKGNsb3NlKShmZHNbMF0pOworICAgICAgaWYgKCFNTF8oZmRfcmVjb3JkZWQpKGZkc1sxXSkpCisgICAgICAgICBWR18oY2xvc2UpKGZkc1sxXSk7CisgICB9CisgICBlbHNlIGlmIChWR18oY2xvX3RyYWNrX2ZkcykpIHsKKyAgICAgIC8qIEV2ZXJ5dGhpbmcgd2VudCBiZXR0ZXIgdGhhbiBleHBlY3RlZCwgcmVjb3JkIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUKKyAgICAgICAgIGRlc2NyaXB0b3JzLiAgTm90ZTogSWYgdGhlIGtlcm5lbCBhY3R1YWxseSByZXR1cm5zIHRoZSBvcmlnaW5hbCBmaWxlCisgICAgICAgICBkZXNjcmlwdG9ycywgdGhlbiBNTF8ocmVjb3JkX2ZkX29wZW5fbmFtZWxlc3MpIG5vdGljZXMgdGhhdCB0aGVzZQorICAgICAgICAgZmlsZSBkZXNjcmlwdG9ycyBoYXZlIGJlZW4gYWxyZWFkeSByZWNvcmRlZC4gKi8KKyAgICAgIE1MXyhyZWNvcmRfZmRfb3Blbl9uYW1lbGVzcykodGlkLCBmZHNbMF0pOworICAgICAgTUxfKHJlY29yZF9mZF9vcGVuX25hbWVsZXNzKSh0aWQsIGZkc1sxXSk7CisgICB9Cit9CisKK1BSRShzeXNfYmluZCkKK3sKKyAgIC8qIGludCBiaW5kKGludCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKm5hbWUsIHNvY2tsZW5fdCBuYW1lbGVuLAorICAgICAgICAgICAgICAgaW50IHZlcnNpb24pOyAqLworICAgUFJJTlQoInN5c19iaW5kICggJWxkLCAlI2x4LCAlbHUsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQobG9uZywgImJpbmQiLCBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBuYW1lLAorICAgICAgICAgICAgICAgICB2a2lfc29ja2xlbl90LCBuYW1lbGVuLCBpbnQsIHZlcnNpb24pOworICAgTUxfKGdlbmVyaWNfUFJFX3N5c19iaW5kKSh0aWQsIEFSRzEsIEFSRzIsIEFSRzMpOworfQorCitQUkUoc3lzX2xpc3RlbikKK3sKKyAgIC8qIGludCBsaXN0ZW4oaW50IHMsIGludCBiYWNrbG9nLCBpbnQgdmVyc2lvbik7ICovCisgICBQUklOVCgic3lzX2xpc3RlbiAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOworICAgUFJFX1JFR19SRUFEMyhsb25nLCAibGlzdGVuIiwgaW50LCBzLCBpbnQsIGJhY2tsb2csIGludCwgdmVyc2lvbik7Cit9CisKK1BSRShzeXNfYWNjZXB0KQoreworI2lmIGRlZmluZWQoU09MQVJJU19ORVdfQUNDRVBUX1NZU0NBTEwpCisgICAvKiBpbnQgYWNjZXB0KGludCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIHNvY2tsZW5fdCAqYWRkcmxlbiwKKyAgICAgICAgICAgICAgICAgaW50IHZlcnNpb24sIGludCBmbGFncyk7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfYWNjZXB0ICggJWxkLCAlI2x4LCAlI2x4LCAlbGQsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0LAorICAgICAgICAgU0FSRzUpOworICAgUFJFX1JFR19SRUFENShsb25nLCAiYWNjZXB0IiwgaW50LCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgYWRkciwKKyAgICAgICAgICAgICAgICAgc29ja2xlbl90ICosIGFkZHJsZW4sIGludCwgdmVyc2lvbiwgaW50LCBmbGFncyk7CisjZWxzZQorICAgLyogaW50IGFjY2VwdChpbnQgcywgc3RydWN0IHNvY2thZGRyICphZGRyLCBzb2NrbGVuX3QgKmFkZHJsZW4sCisgICAgICAgICAgICAgICAgIGludCB2ZXJzaW9uKTsgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgUFJJTlQoInN5c19hY2NlcHQgKCAlbGQsICUjbHgsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQobG9uZywgImFjY2VwdCIsIGludCwgcywgc3RydWN0IHNvY2thZGRyICosIGFkZHIsCisgICAgICAgICAgICAgICAgIHNvY2tsZW5fdCAqLCBhZGRybGVuLCBpbnQsIHZlcnNpb24pOworI2VuZGlmIC8qIFNPTEFSSVNfTkVXX0FDQ0VQVF9TWVNDQUxMICovCisgICBNTF8oZ2VuZXJpY19QUkVfc3lzX2FjY2VwdCkodGlkLCBBUkcxLCBBUkcyLCBBUkczKTsKK30KKworUE9TVChzeXNfYWNjZXB0KQoreworICAgU3lzUmVzIHI7CisgICByID0gTUxfKGdlbmVyaWNfUE9TVF9zeXNfYWNjZXB0KSh0aWQsIFZHXyhta19TeXNSZXNfU3VjY2VzcykoUkVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMpOworICAgU0VUX1NUQVRVU19mcm9tX1N5c1JlcyhyKTsKK30KKworUFJFKHN5c19jb25uZWN0KQoreworICAgLyogaW50IGNvbm5lY3QoaW50IHMsIHN0cnVjdCBzb2NrYWRkciAqbmFtZSwgc29ja2xlbl90IG5hbWVsZW4sCisgICAgICAgICAgICAgICAgICBpbnQgdmVyc2lvbik7ICovCisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKKyAgIFBSSU5UKCJzeXNfY29ubmVjdCAoICVsZCwgJSNseCwgJWx1LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBBUkczLCBTQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJjb25uZWN0IiwgaW50LCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgbmFtZSwKKyAgICAgICAgICAgICAgICAgdmtpX3NvY2tsZW5fdCwgbmFtZWxlbiwgaW50LCB2ZXJzaW9uKTsKKyAgIE1MXyhnZW5lcmljX1BSRV9zeXNfY29ubmVjdCkodGlkLCBBUkcxLCBBUkcyLCBBUkczKTsKK30KKworUFJFKHN5c19zaHV0ZG93bikKK3sKKyAgIC8qIEtlcm5lbDogaW50IHNodXRkb3duKGludCBzb2NrLCBpbnQgaG93LCBpbnQgdmVyc2lvbik7CisgICAgICBMaWJjOiAgIGludCBzaHV0ZG93bihpbnQgc29jaywgaW50IGhvdyk7CisgICAgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgUFJJTlQoInN5c19zaHV0ZG93biAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOworICAgUFJFX1JFR19SRUFEMyhpbnQsICJzaHV0ZG93biIsIGludCwgc29jaywgaW50LCBob3csIGludCwgdmVyc2lvbik7CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJzaHV0ZG93biIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BSRShzeXNfcmVjdikKK3sKKyAgIC8qIHNzaXplX3QgcmVjdihpbnQgcywgdm9pZCAqYnVmLCBzaXplX3QgbGVuLCBpbnQgZmxhZ3MpOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3JlY3YgKCAlbGQsICUjbHgsICVsdSwgJWxkICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAicmVjdiIsIGludCwgcywgdm9pZCAqLCBidWYsIHZraV9zaXplX3QsIGxlbiwKKyAgICAgICAgICAgICAgICAgaW50LCBmbGFncyk7CisgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3JlY3YpKHRpZCwgQVJHMSwgQVJHMiwgQVJHMyk7Cit9CisKK1BPU1Qoc3lzX3JlY3YpCit7CisgICBNTF8oZ2VuZXJpY19QT1NUX3N5c19yZWN2KSh0aWQsIFJFUywgQVJHMSwgQVJHMiwgQVJHMyk7Cit9CisKK1BSRShzeXNfcmVjdmZyb20pCit7CisgICAvKiBzc2l6ZV90IHJlY3Zmcm9tKGludCBzLCB2b2lkICpidWYsIHNpemVfdCBsZW4sIGludCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyICpmcm9tLCBzb2NrbGVuX3QgKmZyb21sZW4pOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3JlY3Zmcm9tICggJWxkLCAlI2x4LCAlbHUsICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsCisgICAgICAgICBTQVJHNCwgQVJHNSwgQVJHNik7CisgICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJyZWN2ZnJvbSIsIGludCwgcywgdm9pZCAqLCBidWYsIHZraV9zaXplX3QsIGxlbiwKKyAgICAgICAgICAgICAgICAgaW50LCBmbGFncywgc3RydWN0IHNvY2thZGRyICosIGZyb20sIHNvY2tsZW5fdCAqLCBmcm9tbGVuKTsKKyAgIE1MXyhnZW5lcmljX1BSRV9zeXNfcmVjdmZyb20pKHRpZCwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNik7Cit9CisKK1BPU1Qoc3lzX3JlY3Zmcm9tKQoreworICAgTUxfKGdlbmVyaWNfUE9TVF9zeXNfcmVjdmZyb20pKHRpZCwgVkdfKG1rX1N5c1Jlc19TdWNjZXNzKShSRVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIEFSRzYpOworfQorCitQUkUoc3lzX3JlY3Ztc2cpCit7CisgICAvKiBzc2l6ZV90IHJlY3Ztc2coaW50IHMsIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IGZsYWdzKTsgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgUFJJTlQoInN5c19yZWN2bXNnICggJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CisgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJyZWN2bXNnIiwgaW50LCBzLCBzdHJ1Y3QgbXNnaGRyICosIG1zZywgaW50LCBmbGFncyk7CisgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3JlY3Ztc2cpKHRpZCwgIm1zZyIsIChzdHJ1Y3QgdmtpX21zZ2hkciopQVJHMik7Cit9CisKK1BPU1Qoc3lzX3JlY3Ztc2cpCit7CisgICBNTF8oZ2VuZXJpY19QT1NUX3N5c19yZWN2bXNnKSh0aWQsICJtc2ciLCAoc3RydWN0IHZraV9tc2doZHIqKUFSRzIsIFJFUyk7Cit9CisKK1BSRShzeXNfc2VuZCkKK3sKKyAgIC8qIHNzaXplX3Qgc2VuZChpbnQgcywgY29uc3Qgdm9pZCAqbXNnLCBzaXplX3QgbGVuLCBpbnQgZmxhZ3MpOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3NlbmQgKCAlbGQsICUjbHgsICVsdSwgJWxkICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAic2VuZCIsIGludCwgcywgY29uc3Qgdm9pZCAqLCBtc2csIHZraV9zaXplX3QsIGxlbiwKKyAgICAgICAgICAgICAgICAgaW50LCBmbGFncyk7CisgICBNTF8oZ2VuZXJpY19QUkVfc3lzX3NlbmQpKHRpZCwgQVJHMSwgQVJHMiwgQVJHMyk7Cit9CisKK1BSRShzeXNfc2VuZG1zZykKK3sKKyAgIC8qIHNzaXplX3Qgc2VuZG1zZyhpbnQgcywgY29uc3Qgc3RydWN0IG1zZ2hkciAqbXNnLCBpbnQgZmxhZ3MpOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3NlbmRtc2cgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKKyAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNlbmRtc2ciLCBpbnQsIHMsIGNvbnN0IHN0cnVjdCBtc2doZHIgKiwgbXNnLAorICAgICAgICAgICAgICAgICBpbnQsIGZsYWdzKTsKKyAgIE1MXyhnZW5lcmljX1BSRV9zeXNfc2VuZG1zZykodGlkLCAibXNnIiwgKHN0cnVjdCB2a2lfbXNnaGRyKilBUkcyKTsKK30KKworUFJFKHN5c19zZW5kdG8pCit7CisgICAvKiBzc2l6ZV90IHNlbmR0byhpbnQgcywgY29uc3Qgdm9pZCAqbXNnLCBzaXplX3QgbGVuLCBpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKnRvLCBpbnQgdG9sZW4pOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3NlbmR0byAoICVsZCwgJSNseCwgJWx1LCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsCisgICAgICAgICBTQVJHNCwgQVJHNSwgU0FSRzYpOworICAgUFJFX1JFR19SRUFENihsb25nLCAic2VuZHRvIiwgaW50LCBzLCBjb25zdCB2b2lkICosIG1zZywgdmtpX3NpemVfdCwgbGVuLAorICAgICAgICAgICAgICAgICBpbnQsIGZsYWdzLCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiwgdG8sIGludCwgdG9sZW4pOworICAgTUxfKGdlbmVyaWNfUFJFX3N5c19zZW5kdG8pKHRpZCwgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNik7Cit9CisKK1BSRShzeXNfZ2V0cGVlcm5hbWUpCit7CisgICAvKiBLZXJuZWw6IGludCBnZXRwZWVybmFtZShpbnQgcywgc3RydWN0IHNvY2thZGRyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2xlbl90ICpuYW1lbGVuLCBpbnQgdmVyc2lvbik7CisgICAgICBMaWJjOiAgIGludCBnZXRwZWVybmFtZShpbnQgcywgc3RydWN0IHNvY2thZGRyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2xlbl90ICpuYW1lbGVuKTsKKyAgICAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX2dldHBlZXJuYW1lICggJWxkLCAlI2x4LCAlI2x4LCAlbGQgKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgQVJHMywgU0FSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAiZ2V0cGVlcm5hbWUiLCBpbnQsIHMsIHN0cnVjdCB2a2lfc29ja2FkZHIgKiwgbmFtZSwKKyAgICAgICAgICAgICAgICAgdmtpX3NvY2tsZW5fdCAqLCBuYW1lbGVuLCBpbnQsIHZlcnNpb24pOworICAgTUxfKGJ1Zl9hbmRfbGVuX3ByZV9jaGVjaykodGlkLCBBUkcyLCBBUkczLCAiZ2V0cGVlcm5hbWUobmFtZSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdldHBlZXJuYW1lKG5hbWVsZW4pIik7CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKEFSRzEsICJnZXRwZWVybmFtZSIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BPU1Qoc3lzX2dldHBlZXJuYW1lKQoreworICAgTUxfKGJ1Zl9hbmRfbGVuX3Bvc3RfY2hlY2spKHRpZCwgVkdfKG1rX1N5c1Jlc19TdWNjZXNzKShSRVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSRzIsIEFSRzMsICJnZXRwZWVybmFtZShuYW1lbGVuKSIpOworfQorCitQUkUoc3lzX2dldHNvY2tuYW1lKQoreworICAgLyogaW50IGdldHNvY2tuYW1lKGludCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKm5hbWUsIHNvY2tsZW5fdCAqbmFtZWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgdmVyc2lvbik7ICovCisgICBQUklOVCgic3lzX2dldHNvY2tuYW1lICggJWxkLCAlI2x4LCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBBUkczLCBTQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJnZXRzb2NrbmFtZSIsIGludCwgcywgc3RydWN0IHNvY2thZGRyICosIG5hbWUsCisgICAgICAgICAgICAgICAgIHNvY2tsZW5fdCAqLCBuYW1lbGVuLCBpbnQsIHZlcnNpb24pOworICAgTUxfKGdlbmVyaWNfUFJFX3N5c19nZXRzb2NrbmFtZSkodGlkLCBBUkcxLCBBUkcyLCBBUkczKTsKK30KKworUE9TVChzeXNfZ2V0c29ja25hbWUpCit7CisgICBNTF8oZ2VuZXJpY19QT1NUX3N5c19nZXRzb2NrbmFtZSkodGlkLCBWR18obWtfU3lzUmVzX1N1Y2Nlc3MpKFJFUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMyk7Cit9CisKK1BSRShzeXNfZ2V0c29ja29wdCkKK3sKKyAgIC8qIGludCBnZXRzb2Nrb3B0KGludCBzLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLCB2b2lkICpvcHR2YWwsCisgICAgICAgICAgICAgICAgICAgICBzb2NrbGVuX3QgKm9wdGxlbiwgaW50IHZlcnNpb24pOyAqLworICAgUFJJTlQoInN5c19nZXRzb2Nrb3B0ICggJWxkLCAlbGQsICVsZCwgJSNseCwgJSNseCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsCisgICAgICAgICBTQVJHMywgQVJHNCwgQVJHNSwgU0FSRzYpOworICAgUFJFX1JFR19SRUFENihsb25nLCAiZ2V0c29ja29wdCIsIGludCwgcywgaW50LCBsZXZlbCwgaW50LCBvcHRuYW1lLAorICAgICAgICAgICAgICAgICB2b2lkICosIG9wdHZhbCwgc29ja2xlbl90ICosIG9wdGlvbiwgaW50LCB2ZXJzaW9uKTsKKyAgIGlmIChBUkc0KQorICAgICAgTUxfKGJ1Zl9hbmRfbGVuX3ByZV9jaGVjaykodGlkLCBBUkc0LCBBUkc1LCAiZ2V0c29ja29wdChvcHR2YWwpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXRzb2Nrb3B0KG9wdGxlbikiKTsKK30KKworUE9TVChzeXNfZ2V0c29ja29wdCkKK3sKKyAgIGlmIChBUkc0KQorICAgICAgTUxfKGJ1Zl9hbmRfbGVuX3Bvc3RfY2hlY2spKHRpZCwgVkdfKG1rX1N5c1Jlc19TdWNjZXNzKShSRVMpLCBBUkc0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSRzUsICJnZXRzb2Nrb3B0KG9wdGxlbl9vdXQpIik7Cit9CisKK1BSRShzeXNfc2V0c29ja29wdCkKK3sKKyAgIC8qIGludCBzZXRzb2Nrb3B0KGludCBzLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLCBjb25zdCB2b2lkICpvcHR2YWwsCisgICAgICAgICAgICAgICAgICAgICBzb2NrbGVuX3Qgb3B0bGVuLCBpbnQgdmVyc2lvbik7ICovCisgICBQUklOVCgic3lzX3NldHNvY2tvcHQgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbHUsICVsZCApIiwgU0FSRzEsIFNBUkcyLAorICAgICAgICAgU0FSRzMsIEFSRzQsIEFSRzUsIFNBUkc2KTsKKyAgIFBSRV9SRUdfUkVBRDYobG9uZywgInNldHNvY2tvcHQiLCBpbnQsIHMsIGludCwgbGV2ZWwsIGludCwgb3B0bmFtZSwKKyAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqLCBvcHR2YWwsIHZraV9zb2NrbGVuX3QsIG9wdGxlbiwgaW50LCB2ZXJzaW9uKTsKKyAgIE1MXyhnZW5lcmljX1BSRV9zeXNfc2V0c29ja29wdCkodGlkLCBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKK30KKworUFJFKHN5c19sd3BfbXV0ZXhfcmVnaXN0ZXIpCit7CisgICAvKiBpbnQgbHdwX211dGV4X3JlZ2lzdGVyKGx3cF9tdXRleF90ICptcCwgY2FkZHJfdCB1YWRkcik7ICovCisgICB2a2lfbHdwX211dGV4X3QgKm1wID0gKHZraV9sd3BfbXV0ZXhfdCopQVJHMTsKKyAgIFBSSU5UKCJzeXNfbHdwX211dGV4X3JlZ2lzdGVyICggJSNseCwgJSNseCApIiwgQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJsd3BfbXV0ZXhfcmVnaXN0ZXIiLCBsd3BfbXV0ZXhfdCAqLCBtcCwKKyAgICAgICAgICAgICAgICAgdm9pZCAqLCB1YWRkcik7CisgICBQUkVfRklFTERfUkVBRCgibHdwX211dGV4X3JlZ2lzdGVyKG1wLT5tdXRleF90eXBlKSIsIG1wLT52a2lfbXV0ZXhfdHlwZSk7Cit9CisKK1BSRShzeXNfdXVjb3B5KQoreworICAgLyogaW50IHV1Y29weShjb25zdCB2b2lkICpzMSwgdm9pZCAqczIsIHNpemVfdCBuKTsgKi8KKyAgIFBSSU5UKCJzeXNfdXVjb3B5ICggJSNseCwgJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKKyAgIFBSRV9SRUdfUkVBRDMobG9uZywgInV1Y29weSIsIGNvbnN0IHZvaWQgKiwgczEsIHZvaWQgKiwgczIsIHZraV9zaXplX3QsIG4pOworCisgICAvKiBTdGF5IGF3YXkgZnJvbSBWIHNlZ21lbnRzLiAqLworICAgaWYgKCFNTF8odmFsaWRfY2xpZW50X2FkZHIpKEFSRzEsIEFSRzMsIHRpZCwgInV1Y29weShzMSkiKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FRkFVTFQpOworICAgfQorICAgaWYgKCFNTF8odmFsaWRfY2xpZW50X2FkZHIpKEFSRzIsIEFSRzMsIHRpZCwgInV1Y29weShzMikiKSkgeworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FRkFVTFQpOworICAgfQorCisgICBpZiAoRkFJTFVSRSkKKyAgICAgIHJldHVybjsKKworICAgLyogWFhYIFRoaXMgaXMgYWN0dWFsbHkgaW5jb3JyZWN0LCB3ZSBzaG91bGQgYmUgYWJsZSB0byBjb3B5IHVuZGVmaW5lZAorICAgICAgdmFsdWVzIHRocm91Z2ggdG8gdGhlaXIgbmV3IGRlc3RpbmF0aW9uLiAqLworICAgUFJFX01FTV9SRUFEKCJ1dWNvcHkoczEpIiwgQVJHMSwgQVJHMyk7CisgICBQUkVfTUVNX1dSSVRFKCJ1dWNvcHkoczIpIiwgQVJHMiwgQVJHMyk7Cit9CisKK1BPU1Qoc3lzX3V1Y29weSkKK3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIEFSRzMpOworfQorCitQUkUoc3lzX3Vtb3VudDIpCit7CisgICAvKiBpbnQgdW1vdW50Mihjb25zdCBjaGFyICpmaWxlLCBpbnQgbWZsYWcpOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3Vtb3VudDIgKCAlI2x4KCVzKSwgJWxkICkiLCBBUkcxLCAoSENoYXIgKikgQVJHMSwgU0FSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAidW1vdW50MiIsIGNvbnN0IGNoYXIgKiwgZmlsZSwgaW50LCBtZmxhZyk7CisgICBQUkVfTUVNX1JBU0NJSVooInVtb3VudDIoZmlsZSkiLCBBUkcxKTsKK30KKworUFJFKGZhc3RfZ2V0aHJ0aW1lKQoreworICAgUFJJTlQoImZhc3RfZ2V0aHJ0aW1lICggKSIpOworICAgUFJFX1JFR19SRUFEMChsb25nLCAiZ2V0aHJ0aW1lIik7Cit9CisKK1BSRShmYXN0X2dldGhydnRpbWUpCit7CisgICBQUklOVCgiZmFzdF9nZXRocnZ0aW1lICggKSIpOworICAgUFJFX1JFR19SRUFEMChsb25nLCAiZ2V0aHJ2dGltZSIpOworfQorCitQUkUoZmFzdF9nZXRocmVzdGltZSkKK3sKKyAgIC8qIFVzZWQgYnkgZ2V0dGltZW9mZGF5KDNDKS4gKi8KKyAgIFBSSU5UKCJmYXN0X2dldGhyZXN0aW1lICggKSIpOworICAgUFJFX1JFR19SRUFEMChsb25nLCAiZ2V0aHJlc3RpbWUiKTsKK30KKworI2lmIGRlZmluZWQoU09MQVJJU19HRVRIUlRfRkFTVFRSQVApCitQUkUoZmFzdF9nZXRocnQpCit7CisgICAvKiBVc2VkIGJ5IGdldGhydGltZSgzQykgd2hlbiB0c3AgJiB0c2NwIEhXQ0FQcyBhcmUgcHJlc2VudC4gKi8KKyAgIFBSSU5UKCJmYXN0X2dldGhydCAoICkiKTsKKyAgIFBSRV9SRUdfUkVBRDAobG9uZywgImdldGhydCIpOworfQorCitQT1NUKGZhc3RfZ2V0aHJ0KQoreworICAgaWYgKFJFUyA9PSAwKQorICAgICAgcmV0dXJuOworCisgICBWR18oY2hhbmdlX21hcHBpbmdfb3duZXJzaGlwKShSRVMsIEZhbHNlKTsKK30KKyNlbmRpZiAvKiBTT0xBUklTX0dFVEhSVF9GQVNUVFJBUCAqLworCisjaWYgZGVmaW5lZChTT0xBUklTX0dFVFpPTkVPRkZTRVRfRkFTVFRSQVApCitQUkUoZmFzdF9nZXR6b25lb2Zmc2V0KQoreworICAgLyogUmV0dXJucyBrZXJuZWwncyB0aW1lIHpvbmUgb2Zmc2V0IGRhdGEuICovCisgICBQUklOVCgiZmFzdF9nZXR6b25lb2Zmc2V0ICggKSIpOworICAgUFJFX1JFR19SRUFEMChsb25nLCAiZ2V0X3pvbmVfb2Zmc2V0Iik7Cit9CisKK1BPU1QoZmFzdF9nZXR6b25lb2Zmc2V0KQoreworICAgaWYgKFJFUyA9PSAwKQorICAgICAgcmV0dXJuOworCisgICBWR18oY2hhbmdlX21hcHBpbmdfb3duZXJzaGlwKShSRVMsIEZhbHNlKTsKK30KKyNlbmRpZiAvKiBTT0xBUklTX0dFVFpPTkVPRkZTRVRfRkFTVFRSQVAgKi8KKworI3VuZGVmIFBSRQorI3VuZGVmIFBPU1QKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBUaGUgU29sYXJpcyBzeXNjYWxsIHRhYmxlCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyogQWRkIGEgU29sYXJpcy1zcGVjaWZpYywgYXJjaC1pbmRlcGVuZGVudCB3cmFwcGVyIHRvIGEgc3lzY2FsbCB0YWJsZS4gKi8KKyNkZWZpbmUgU09MWF8oc3lzbm8sIG5hbWUpIFwKKyAgIFdSQVBQRVJfRU5UUllfWF8oc29sYXJpcywgVkdfU09MQVJJU19TWVNOT19JTkRFWChzeXNubyksIG5hbWUpCisjZGVmaW5lIFNPTFhZKHN5c25vLCBuYW1lKSBcCisgICBXUkFQUEVSX0VOVFJZX1hZKHNvbGFyaXMsIFZHX1NPTEFSSVNfU1lTTk9fSU5ERVgoc3lzbm8pLCBuYW1lKQorCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisvKiBBZGQgYW4geDg2LXNvbGFyaXMgc3BlY2lmaWMgd3JhcHBlciB0byBhIHN5c2NhbGwgdGFibGUuICovCisjZGVmaW5lIFBMQVhfKHN5c25vLCBuYW1lKSBcCisgICBXUkFQUEVSX0VOVFJZX1hfKHg4Nl9zb2xhcmlzLCBWR19TT0xBUklTX1NZU05PX0lOREVYKHN5c25vKSwgbmFtZSkKKyNkZWZpbmUgUExBWFkoc3lzbm8sIG5hbWUpIFwKKyAgIFdSQVBQRVJfRU5UUllfWFkoeDg2X3NvbGFyaXMsIFZHX1NPTEFSSVNfU1lTTk9fSU5ERVgoc3lzbm8pLCBuYW1lKQorCisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorLyogQWRkIGFuIGFtZDY0LXNvbGFyaXMgc3BlY2lmaWMgd3JhcHBlciB0byBhIHN5c2NhbGwgdGFibGUuICovCisjZGVmaW5lIFBMQVhfKHN5c25vLCBuYW1lKSBcCisgICBXUkFQUEVSX0VOVFJZX1hfKGFtZDY0X3NvbGFyaXMsIFZHX1NPTEFSSVNfU1lTTk9fSU5ERVgoc3lzbm8pLCBuYW1lKQorI2RlZmluZSBQTEFYWShzeXNubywgbmFtZSkgXAorICAgV1JBUFBFUl9FTlRSWV9YWShhbWQ2NF9zb2xhcmlzLCBWR19TT0xBUklTX1NZU05PX0lOREVYKHN5c25vKSwgbmFtZSkKKworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisKKy8qCisgICBHRU4gICA6IGhhbmRsZXJzIGFyZSBpbiBzeXN3cmFwLWdlbmVyaWMuYworICAgU09MICAgOiBoYW5kbGVycyBhcmUgaW4gdGhpcyBmaWxlCisgICAgICBYXyA6IFBSRSBoYW5kbGVyIG9ubHkKKyAgICAgIFhZIDogUFJFIGFuZCBQT1NUIGhhbmRsZXJzCisqLworCitzdGF0aWMgU3lzY2FsbFRhYmxlRW50cnkgc3lzY2FsbF90YWJsZVtdID0geworICAgU09MWF8oX19OUl9leGl0LCAgICAgICAgICAgICAgICAgc3lzX2V4aXQpLCAgICAgICAgICAgICAgICAgIC8qICAgMSAqLworI2lmIGRlZmluZWQoU09MQVJJU19TUEFXTl9TWVNDQUxMKQorICAgU09MWF8oX19OUl9zcGF3biwgICAgICAgICAgICAgICAgc3lzX3NwYXduKSwgICAgICAgICAgICAgICAgIC8qICAgMiAqLworI2VuZGlmIC8qIFNPTEFSSVNfU1BBV05fU1lTQ0FMTCAqLworICAgR0VOWFkoX19OUl9yZWFkLCAgICAgICAgICAgICAgICAgc3lzX3JlYWQpLCAgICAgICAgICAgICAgICAgIC8qICAgMyAqLworICAgR0VOWF8oX19OUl93cml0ZSwgICAgICAgICAgICAgICAgc3lzX3dyaXRlKSwgICAgICAgICAgICAgICAgIC8qICAgNCAqLworI2lmIGRlZmluZWQoU09MQVJJU19PTERfU1lTQ0FMTFMpCisgICBTT0xYWShfX05SX29wZW4sICAgICAgICAgICAgICAgICBzeXNfb3BlbiksICAgICAgICAgICAgICAgICAgLyogICA1ICovCisjZW5kaWYgLyogU09MQVJJU19PTERfU1lTQ0FMTFMgKi8KKyAgIFNPTFhZKF9fTlJfY2xvc2UsICAgICAgICAgICAgICAgIHN5c19jbG9zZSksICAgICAgICAgICAgICAgICAvKiAgIDYgKi8KKyAgIFNPTFhfKF9fTlJfbGlua2F0LCAgICAgICAgICAgICAgIHN5c19saW5rYXQpLCAgICAgICAgICAgICAgICAvKiAgIDcgKi8KKyNpZiBkZWZpbmVkKFNPTEFSSVNfT0xEX1NZU0NBTExTKQorICAgR0VOWF8oX19OUl9saW5rLCAgICAgICAgICAgICAgICAgc3lzX2xpbmspLCAgICAgICAgICAgICAgICAgIC8qICAgOSAqLworICAgR0VOWF8oX19OUl91bmxpbmssICAgICAgICAgICAgICAgc3lzX3VubGluayksICAgICAgICAgICAgICAgIC8qICAxMCAqLworI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCisgICBTT0xYXyhfX05SX3N5bWxpbmthdCwgICAgICAgICAgICBzeXNfc3ltbGlua2F0KSwgICAgICAgICAgICAgLyogIDExICovCisgICBHRU5YXyhfX05SX2NoZGlyLCAgICAgICAgICAgICAgICBzeXNfY2hkaXIpLCAgICAgICAgICAgICAgICAgLyogIDEyICovCisgICBTT0xYXyhfX05SX3RpbWUsICAgICAgICAgICAgICAgICBzeXNfdGltZSksICAgICAgICAgICAgICAgICAgLyogIDEzICovCisjaWYgZGVmaW5lZChTT0xBUklTX09MRF9TWVNDQUxMUykKKyAgIEdFTlhfKF9fTlJfY2htb2QsICAgICAgICAgICAgICAgIHN5c19jaG1vZCksICAgICAgICAgICAgICAgICAvKiAgMTUgKi8KKyAgIEdFTlhfKF9fTlJfY2hvd24sICAgICAgICAgICAgICAgIHN5c19jaG93biksICAgICAgICAgICAgICAgICAvKiAgMTYgKi8KKyNlbmRpZiAvKiBTT0xBUklTX09MRF9TWVNDQUxMUyAqLworICAgU09MWF8oX19OUl9icmssICAgICAgICAgICAgICAgICAgc3lzX2JyayksICAgICAgICAgICAgICAgICAgIC8qICAxNyAqLworI2lmIGRlZmluZWQoU09MQVJJU19PTERfU1lTQ0FMTFMpCisgICBTT0xYWShfX05SX3N0YXQsICAgICAgICAgICAgICAgICBzeXNfc3RhdCksICAgICAgICAgICAgICAgICAgLyogIDE4ICovCisjZW5kaWYgLyogU09MQVJJU19PTERfU1lTQ0FMTFMgKi8KKyAgIFNPTFhfKF9fTlJfbHNlZWssICAgICAgICAgICAgICAgIHN5c19sc2VlayksICAgICAgICAgICAgICAgICAvKiAgMTkgKi8KKyAgIEdFTlhfKF9fTlJfZ2V0cGlkLCAgICAgICAgICAgICAgIHN5c19nZXRwaWQpLCAgICAgICAgICAgICAgICAvKiAgMjAgKi8KKyAgIFNPTFhZKF9fTlJfbW91bnQsICAgICAgICAgICAgICAgIHN5c19tb3VudCksICAgICAgICAgICAgICAgICAvKiAgMjEgKi8KKyAgIFNPTFhZKF9fTlJfcmVhZGxpbmthdCwgICAgICAgICAgIHN5c19yZWFkbGlua2F0KSwgICAgICAgICAgICAvKiAgMjIgKi8KKyAgIEdFTlhfKF9fTlJfc2V0dWlkLCAgICAgICAgICAgICAgIHN5c19zZXR1aWQpLCAgICAgICAgICAgICAgICAvKiAgMjMgKi8KKyAgIEdFTlhfKF9fTlJfZ2V0dWlkLCAgICAgICAgICAgICAgIHN5c19nZXR1aWQpLCAgICAgICAgICAgICAgICAvKiAgMjQgKi8KKyAgIFNPTFhfKF9fTlJfc3RpbWUsICAgICAgICAgICAgICAgIHN5c19zdGltZSksICAgICAgICAgICAgICAgICAvKiAgMjUgKi8KKyAgIEdFTlhfKF9fTlJfYWxhcm0sICAgICAgICAgICAgICAgIHN5c19hbGFybSksICAgICAgICAgICAgICAgICAvKiAgMjcgKi8KKyNpZiBkZWZpbmVkKFNPTEFSSVNfT0xEX1NZU0NBTExTKQorICAgU09MWFkoX19OUl9mc3RhdCwgICAgICAgICAgICAgICAgc3lzX2ZzdGF0KSwgICAgICAgICAgICAgICAgIC8qICAyOCAqLworI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCisgICBHRU5YXyhfX05SX3BhdXNlLCAgICAgICAgICAgICAgICBzeXNfcGF1c2UpLCAgICAgICAgICAgICAgICAgLyogIDI5ICovCisjaWYgZGVmaW5lZChTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTEwpCisgICBTT0xYWShfX05SX2ZyZWFscGF0aGF0LCAgICAgICAgICBzeXNfZnJlYWxwYXRoYXQpLCAgICAgICAgICAgLyogIDMwICovCisjZW5kaWYgLyogU09MQVJJU19GUkVBTFBBVEhBVF9TWVNDQUxMICovCisgICBTT0xYXyhfX05SX3N0dHksICAgICAgICAgICAgICAgICBzeXNfc3R0eSksICAgICAgICAgICAgICAgICAgLyogIDMxICovCisgICBTT0xYWShfX05SX2d0dHksICAgICAgICAgICAgICAgICBzeXNfZ3R0eSksICAgICAgICAgICAgICAgICAgLyogIDMyICovCisjaWYgZGVmaW5lZChTT0xBUklTX09MRF9TWVNDQUxMUykKKyAgIEdFTlhfKF9fTlJfYWNjZXNzLCAgICAgICAgICAgICAgIHN5c19hY2Nlc3MpLCAgICAgICAgICAgICAgICAvKiAgMzMgKi8KKyNlbmRpZiAvKiBTT0xBUklTX09MRF9TWVNDQUxMUyAqLworICAgR0VOWF8oX19OUl9raWxsLCAgICAgICAgICAgICAgICAgc3lzX2tpbGwpLCAgICAgICAgICAgICAgICAgIC8qICAzNyAqLworICAgU09MWF8oX19OUl9wZ3Jwc3lzLCAgICAgICAgICAgICAgc3lzX3BncnBzeXMpLCAgICAgICAgICAgICAgIC8qICAzOSAqLworICAgU09MWFkoX19OUl9waXBlLCAgICAgICAgICAgICAgICAgc3lzX3BpcGUpLCAgICAgICAgICAgICAgICAgIC8qICA0MiAqLworICAgR0VOWFkoX19OUl90aW1lcywgICAgICAgICAgICAgICAgc3lzX3RpbWVzKSwgICAgICAgICAgICAgICAgIC8qICA0MyAqLworICAgU09MWF8oX19OUl9mYWNjZXNzYXQsICAgICAgICAgICAgc3lzX2ZhY2Nlc3NhdCksICAgICAgICAgICAgIC8qICA0NSAqLworICAgR0VOWF8oX19OUl9zZXRnaWQsICAgICAgICAgICAgICAgc3lzX3NldGdpZCksICAgICAgICAgICAgICAgIC8qICA0NiAqLworICAgR0VOWF8oX19OUl9nZXRnaWQsICAgICAgICAgICAgICAgc3lzX2dldGdpZCksICAgICAgICAgICAgICAgIC8qICA0NyAqLworICAgU09MWFkoX19OUl9ta25vZGF0LCAgICAgICAgICAgICAgc3lzX21rbm9kYXQpLCAgICAgICAgICAgICAgIC8qICA0OCAqLworICAgU09MWFkoX19OUl9zeXNpODYsICAgICAgICAgICAgICAgc3lzX3N5c2k4NiksICAgICAgICAgICAgICAgIC8qICA1MCAqLworICAgU09MWFkoX19OUl9zaG1zeXMsICAgICAgICAgICAgICAgc3lzX3NobXN5cyksICAgICAgICAgICAgICAgIC8qICA1MiAqLworICAgU09MWFkoX19OUl9zZW1zeXMsICAgICAgICAgICAgICAgc3lzX3NlbXN5cyksICAgICAgICAgICAgICAgIC8qICA1MyAqLworICAgU09MWFkoX19OUl9pb2N0bCwgICAgICAgICAgICAgICAgc3lzX2lvY3RsKSwgICAgICAgICAgICAgICAgIC8qICA1NCAqLworICAgU09MWF8oX19OUl9mY2hvd25hdCwgICAgICAgICAgICAgc3lzX2ZjaG93bmF0KSwgICAgICAgICAgICAgIC8qICA1NiAqLworICAgU09MWF8oX19OUl9mZHN5bmMsICAgICAgICAgICAgICAgc3lzX2Zkc3luYyksICAgICAgICAgICAgICAgIC8qICA1OCAqLworICAgU09MWF8oX19OUl9leGVjdmUsICAgICAgICAgICAgICAgc3lzX2V4ZWN2ZSksICAgICAgICAgICAgICAgIC8qICA1OSAqLworICAgR0VOWF8oX19OUl91bWFzaywgICAgICAgICAgICAgICAgc3lzX3VtYXNrKSwgICAgICAgICAgICAgICAgIC8qICA2MCAqLworICAgR0VOWF8oX19OUl9jaHJvb3QsICAgICAgICAgICAgICAgc3lzX2Nocm9vdCksICAgICAgICAgICAgICAgIC8qICA2MSAqLworICAgU09MWFkoX19OUl9mY250bCwgICAgICAgICAgICAgICAgc3lzX2ZjbnRsKSwgICAgICAgICAgICAgICAgIC8qICA2MiAqLworICAgU09MWF8oX19OUl9yZW5hbWVhdCwgICAgICAgICAgICAgc3lzX3JlbmFtZWF0KSwgICAgICAgICAgICAgIC8qICA2NCAqLworICAgU09MWF8oX19OUl91bmxpbmthdCwgICAgICAgICAgICAgc3lzX3VubGlua2F0KSwgICAgICAgICAgICAgIC8qICA2NSAqLworICAgU09MWFkoX19OUl9mc3RhdGF0LCAgICAgICAgICAgICAgc3lzX2ZzdGF0YXQpLCAgICAgICAgICAgICAgIC8qICA2NiAqLworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgUExBWFkoX19OUl9mc3RhdGF0NjQsICAgICAgICAgICAgc3lzX2ZzdGF0YXQ2NCksICAgICAgICAgICAgIC8qICA2NyAqLworI2VuZGlmIC8qIFZHUF94ODZfc29sYXJpcyAqLworICAgU09MWFkoX19OUl9vcGVuYXQsICAgICAgICAgICAgICAgc3lzX29wZW5hdCksICAgICAgICAgICAgICAgIC8qICA2OCAqLworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgUExBWFkoX19OUl9vcGVuYXQ2NCwgICAgICAgICAgICAgc3lzX29wZW5hdDY0KSwgICAgICAgICAgICAgIC8qICA2OSAqLworI2VuZGlmIC8qIFZHUF94ODZfc29sYXJpcyAqLworICAgU09MWFkoX19OUl90YXNrc3lzLCAgICAgICAgICAgICAgc3lzX3Rhc2tzeXMpLCAgICAgICAgICAgICAgIC8qICA3MCAqLworICAgU09MWFkoX19OUl9nZXRwYWdlc2l6ZXMsICAgICAgICAgc3lzX2dldHBhZ2VzaXplcyksICAgICAgICAgIC8qICA3MyAqLworICAgU09MWFkoX19OUl9sd3BfcGFyaywgICAgICAgICAgICAgc3lzX2x3cF9wYXJrKSwgICAgICAgICAgICAgIC8qICA3NyAqLworICAgU09MWFkoX19OUl9zZW5kZmlsZXYsICAgICAgICAgICAgc3lzX3NlbmRmaWxldiksICAgICAgICAgICAgIC8qICA3OCAqLworI2lmIGRlZmluZWQoU09MQVJJU19MV1BfTkFNRV9TWVNDQUxMKQorICAgU09MWFkoX19OUl9sd3BfbmFtZSwgICAgICAgICAgICAgc3lzX2x3cF9uYW1lKSwgICAgICAgICAgICAgIC8qICA3OSAqLworI2VuZGlmIC8qIFNPTEFSSVNfTFdQX05BTUVfU1lTQ0FMTCAqLworI2lmIGRlZmluZWQoU09MQVJJU19PTERfU1lTQ0FMTFMpCisgICBHRU5YXyhfX05SX3JtZGlyLCAgICAgICAgICAgICAgICBzeXNfcm1kaXIpLCAgICAgICAgICAgICAgICAgLyogIDc5ICovCisgICBHRU5YXyhfX05SX21rZGlyLCAgICAgICAgICAgICAgICBzeXNfbWtkaXIpLCAgICAgICAgICAgICAgICAgLyogIDgwICovCisjZW5kaWYgLyogU09MQVJJU19PTERfU1lTQ0FMTFMgKi8KKyAgIEdFTlhZKF9fTlJfZ2V0ZGVudHMsICAgICAgICAgICAgIHN5c19nZXRkZW50cyksICAgICAgICAgICAgICAvKiAgODEgKi8KKyAgIFNPTFhZKF9fTlJfcHJpdnN5cywgICAgICAgICAgICAgIHN5c19wcml2c3lzKSwgICAgICAgICAgICAgICAvKiAgODIgKi8KKyAgIFNPTFhZKF9fTlJfdWNyZWRzeXMsICAgICAgICAgICAgIHN5c191Y3JlZHN5cyksICAgICAgICAgICAgICAvKiAgODMgKi8KKyAgIFNPTFhZKF9fTlJfZ2V0bXNnLCAgICAgICAgICAgICAgIHN5c19nZXRtc2cpLCAgICAgICAgICAgICAgICAvKiAgODUgKi8KKyAgIFNPTFhfKF9fTlJfcHV0bXNnLCAgICAgICAgICAgICAgIHN5c19wdXRtc2cpLCAgICAgICAgICAgICAgICAvKiAgODYgKi8KKyNpZiBkZWZpbmVkKFNPTEFSSVNfT0xEX1NZU0NBTExTKQorICAgU09MWFkoX19OUl9sc3RhdCwgICAgICAgICAgICAgICAgc3lzX2xzdGF0KSwgICAgICAgICAgICAgICAgIC8qICA4OCAqLworICAgR0VOWF8oX19OUl9zeW1saW5rLCAgICAgICAgICAgICAgc3lzX3N5bWxpbmspLCAgICAgICAgICAgICAgIC8qICA4OSAqLworICAgR0VOWF8oX19OUl9yZWFkbGluaywgICAgICAgICAgICAgc3lzX3JlYWRsaW5rKSwgICAgICAgICAgICAgIC8qICA5MCAqLworI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCisgICBHRU5YXyhfX05SX3NldGdyb3VwcywgICAgICAgICAgICBzeXNfc2V0Z3JvdXBzKSwgICAgICAgICAgICAgLyogIDkxICovCisgICBHRU5YWShfX05SX2dldGdyb3VwcywgICAgICAgICAgICBzeXNfZ2V0Z3JvdXBzKSwgICAgICAgICAgICAgLyogIDkyICovCisjaWYgZGVmaW5lZChTT0xBUklTX09MRF9TWVNDQUxMUykKKyAgIEdFTlhfKF9fTlJfZmNobW9kLCAgICAgICAgICAgICAgIHN5c19mY2htb2QpLCAgICAgICAgICAgICAgICAvKiAgOTMgKi8KKyAgIEdFTlhfKF9fTlJfZmNob3duLCAgICAgICAgICAgICAgIHN5c19mY2hvd24pLCAgICAgICAgICAgICAgICAvKiAgOTQgKi8KKyNlbmRpZiAvKiBTT0xBUklTX09MRF9TWVNDQUxMUyAqLworICAgU09MWFkoX19OUl9zaWdwcm9jbWFzaywgICAgICAgICAgc3lzX3NpZ3Byb2NtYXNrKSwgICAgICAgICAgIC8qICA5NSAqLworICAgR0VOWFkoX19OUl9zaWdhbHRzdGFjaywgICAgICAgICAgc3lzX3NpZ2FsdHN0YWNrKSwgICAgICAgICAgIC8qICA5NyAqLworICAgU09MWFkoX19OUl9zaWdhY3Rpb24sICAgICAgICAgICAgc3lzX3NpZ2FjdGlvbiksICAgICAgICAgICAgIC8qICA5OCAqLworICAgU09MWFkoX19OUl9zaWdwZW5kaW5nLCAgICAgICAgICAgc3lzX3NpZ3BlbmRpbmcpLCAgICAgICAgICAgIC8qICA5OSAqLworICAgU09MWF8oX19OUl9jb250ZXh0LCAgICAgICAgICAgICAgc3lzX2dldHNldGNvbnRleHQpLCAgICAgICAgIC8qIDEwMCAqLworICAgU09MWF8oX19OUl9mY2htb2RhdCwgICAgICAgICAgICAgc3lzX2ZjaG1vZGF0KSwgICAgICAgICAgICAgIC8qIDEwMSAqLworICAgU09MWF8oX19OUl9ta2RpcmF0LCAgICAgICAgICAgICAgc3lzX21rZGlyYXQpLCAgICAgICAgICAgICAgIC8qIDEwMiAqLworICAgU09MWFkoX19OUl9zdGF0dmZzLCAgICAgICAgICAgICAgc3lzX3N0YXR2ZnMpLCAgICAgICAgICAgICAgIC8qIDEwMyAqLworICAgU09MWFkoX19OUl9mc3RhdHZmcywgICAgICAgICAgICAgc3lzX2ZzdGF0dmZzKSwgICAgICAgICAgICAgIC8qIDEwNCAqLworICAgU09MWFkoX19OUl9uZnNzeXMsICAgICAgICAgICAgICAgc3lzX25mc3N5cyksICAgICAgICAgICAgICAgIC8qIDEwNiAqLworICAgU09MWFkoX19OUl93YWl0aWQsICAgICAgICAgICAgICAgc3lzX3dhaXRpZCksICAgICAgICAgICAgICAgIC8qIDEwNyAqLworI2lmIGRlZmluZWQoU09MQVJJU19VVElNRVNZU19TWVNDQUxMKQorICAgU09MWF8oX19OUl91dGltZXN5cywgICAgICAgICAgICAgc3lzX3V0aW1lc3lzKSwgICAgICAgICAgICAgIC8qIDExMCAqLworI2VuZGlmIC8qIFNPTEFSSVNfVVRJTUVTWVNfU1lTQ0FMTCAqLworI2lmIGRlZmluZWQoU09MQVJJU19VVElNRU5TQVRfU1lTQ0FMTCkKKyAgIFNPTFhfKF9fTlJfdXRpbWVuc2F0LCAgICAgICAgICAgIHN5c191dGltZW5zYXQpLCAgICAgICAgICAgICAvKiAxMTAgKi8KKyNlbmRpZiAvKiBTT0xBUklTX1VUSU1FTlNBVF9TWVNDQUxMICovCisgICBTT0xYWShfX05SX3NpZ3Jlc2VuZCwgICAgICAgICAgICBzeXNfc2lncmVzZW5kKSwgICAgICAgICAgICAgLyogMTExICovCisgICBTT0xYWShfX05SX3ByaW9jbnRsc3lzLCAgICAgICAgICBzeXNfcHJpb2NudGxzeXMpLCAgICAgICAgICAgLyogMTEyICovCisgICBTT0xYXyhfX05SX3BhdGhjb25mLCAgICAgICAgICAgICBzeXNfcGF0aGNvbmYpLCAgICAgICAgICAgICAgLyogMTEzICovCisgICBTT0xYXyhfX05SX21tYXAsICAgICAgICAgICAgICAgICBzeXNfbW1hcCksICAgICAgICAgICAgICAgICAgLyogMTE1ICovCisgICBHRU5YWShfX05SX21wcm90ZWN0LCAgICAgICAgICAgICBzeXNfbXByb3RlY3QpLCAgICAgICAgICAgICAgLyogMTE2ICovCisgICBHRU5YWShfX05SX211bm1hcCwgICAgICAgICAgICAgICBzeXNfbXVubWFwKSwgICAgICAgICAgICAgICAgLyogMTE3ICovCisgICBHRU5YXyhfX05SX2ZjaGRpciwgICAgICAgICAgICAgICBzeXNfZmNoZGlyKSwgICAgICAgICAgICAgICAgLyogMTIwICovCisgICBHRU5YWShfX05SX3JlYWR2LCAgICAgICAgICAgICAgICBzeXNfcmVhZHYpLCAgICAgICAgICAgICAgICAgLyogMTIxICovCisgICBHRU5YXyhfX05SX3dyaXRldiwgICAgICAgICAgICAgICBzeXNfd3JpdGV2KSwgICAgICAgICAgICAgICAgLyogMTIyICovCisjaWYgZGVmaW5lZChTT0xBUklTX1VVSURTWVNfU1lTQ0FMTCkKKyAgIFNPTFhZKF9fTlJfdXVpZHN5cywgICAgICAgICAgICAgIHN5c191dWlkc3lzKSwgICAgICAgICAgICAgICAvKiAxMjQgKi8KKyNlbmRpZiAvKiBTT0xBUklTX1VVSURTWVNfU1lTQ0FMTCAqLworICAgU09MWF8oX19OUl9tbWFwb2JqLCAgICAgICAgICAgICAgc3lzX21tYXBvYmopLCAgICAgICAgICAgICAgIC8qIDEyNyAqLworICAgR0VOWF8oX19OUl9zZXRybGltaXQsICAgICAgICAgICAgc3lzX3NldHJsaW1pdCksICAgICAgICAgICAgIC8qIDEyOCAqLworICAgR0VOWFkoX19OUl9nZXRybGltaXQsICAgICAgICAgICAgc3lzX2dldHJsaW1pdCksICAgICAgICAgICAgIC8qIDEyOSAqLworI2lmIGRlZmluZWQoU09MQVJJU19PTERfU1lTQ0FMTFMpCisgICBHRU5YXyhfX05SX2xjaG93biwgICAgICAgICAgICAgICBzeXNfbGNob3duKSwgICAgICAgICAgICAgICAgLyogMTMwICovCisjZW5kaWYgLyogU09MQVJJU19PTERfU1lTQ0FMTFMgKi8KKyAgIFNPTFhfKF9fTlJfbWVtY250bCwgICAgICAgICAgICAgIHN5c19tZW1jbnRsKSwgICAgICAgICAgICAgICAvKiAxMzEgKi8KKyAgIFNPTFhZKF9fTlJfZ2V0cG1zZywgICAgICAgICAgICAgIHN5c19nZXRwbXNnKSwgICAgICAgICAgICAgICAvKiAxMzIgKi8KKyAgIFNPTFhfKF9fTlJfcHV0cG1zZywgICAgICAgICAgICAgIHN5c19wdXRwbXNnKSwgICAgICAgICAgICAgICAvKiAxMzMgKi8KKyNpZiBkZWZpbmVkKFNPTEFSSVNfT0xEX1NZU0NBTExTKQorICAgU09MWF8oX19OUl9yZW5hbWUsICAgICAgICAgICAgICAgc3lzX3JlbmFtZSksICAgICAgICAgICAgICAgIC8qIDEzNCAqLworI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCisgICBTT0xYWShfX05SX3VuYW1lLCAgICAgICAgICAgICAgICBzeXNfdW5hbWUpLCAgICAgICAgICAgICAgICAgLyogMTM1ICovCisgICBTT0xYXyhfX05SX3NldGVnaWQsICAgICAgICAgICAgICBzeXNfc2V0ZWdpZCksICAgICAgICAgICAgICAgLyogMTM2ICovCisgICBTT0xYXyhfX05SX3N5c2NvbmZpZywgICAgICAgICAgICBzeXNfc3lzY29uZmlnKSwgICAgICAgICAgICAgLyogMTM3ICovCisgICBTT0xYWShfX05SX3N5c3RlbWluZm8sICAgICAgICAgICBzeXNfc3lzdGVtaW5mbyksICAgICAgICAgICAgLyogMTM5ICovCisgICBTT0xYXyhfX05SX3NldGV1aWQsICAgICAgICAgICAgICBzeXNfc2V0ZXVpZCksICAgICAgICAgICAgICAgLyogMTQxICovCisgICBTT0xYXyhfX05SX2ZvcmtzeXMsICAgICAgICAgICAgICBzeXNfZm9ya3N5cyksICAgICAgICAgICAgICAgLyogMTQyICovCisgICBTT0xYWShfX05SX3NpZ3RpbWVkd2FpdCwgICAgICAgICBzeXNfc2lndGltZWR3YWl0KSwgICAgICAgICAgLyogMTQ0ICovCisgICBTT0xYXyhfX05SX3lpZWxkLCAgICAgICAgICAgICAgICBzeXNfeWllbGQpLCAgICAgICAgICAgICAgICAgLyogMTQ2ICovCisgICBTT0xYWShfX05SX2x3cF9zZW1hX3Bvc3QsICAgICAgICBzeXNfbHdwX3NlbWFfcG9zdCksICAgICAgICAgLyogMTQ4ICovCisgICBTT0xYWShfX05SX2x3cF9zZW1hX3RyeXdhaXQsICAgICBzeXNfbHdwX3NlbWFfdHJ5d2FpdCksICAgICAgLyogMTQ5ICovCisgICBTT0xYXyhfX05SX2x3cF9kZXRhY2gsICAgICAgICAgICBzeXNfbHdwX2RldGFjaCksICAgICAgICAgICAgLyogMTUwICovCisgICBTT0xYXyhfX05SX2ZjaHJvb3QsICAgICAgICAgICAgICBzeXNfZmNocm9vdCksICAgICAgICAgICAgICAgLyogMTUzICovCisjaWYgZGVmaW5lZChTT0xBUklTX1NZU1RFTV9TVEFUU19TWVNDQUxMKQorICAgU09MWF8oX19OUl9zeXN0ZW1fc3RhdHMsICAgICAgICAgc3lzX3N5c3RlbV9zdGF0cyksICAgICAgICAgIC8qIDE1NCAqLworI2VuZGlmIC8qIFNPTEFSSVNfU1lTVEVNX1NUQVRTX1NZU0NBTEwgKi8KKyAgIFNPTFhZKF9fTlJfZ2V0dGltZW9mZGF5LCAgICAgICAgIHN5c19nZXR0aW1lb2ZkYXkpLCAgICAgICAgICAvKiAxNTYgKi8KKyAgIEdFTlhZKF9fTlJfZ2V0aXRpbWVyLCAgICAgICAgICAgIHN5c19nZXRpdGltZXIpLCAgICAgICAgICAgICAvKiAxNTcgKi8KKyAgIEdFTlhZKF9fTlJfc2V0aXRpbWVyLCAgICAgICAgICAgIHN5c19zZXRpdGltZXIpLCAgICAgICAgICAgICAvKiAxNTggKi8KKyAgIFNPTFhfKF9fTlJfbHdwX2NyZWF0ZSwgICAgICAgICAgIHN5c19sd3BfY3JlYXRlKSwgICAgICAgICAgICAvKiAxNTkgKi8KKyAgIFNPTFhfKF9fTlJfbHdwX2V4aXQsICAgICAgICAgICAgIHN5c19sd3BfZXhpdCksICAgICAgICAgICAgICAvKiAxNjAgKi8KKyAgIFNPTFhfKF9fTlJfbHdwX3N1c3BlbmQsICAgICAgICAgIHN5c19sd3Bfc3VzcGVuZCksICAgICAgICAgICAvKiAxNjEgKi8KKyAgIFNPTFhfKF9fTlJfbHdwX2NvbnRpbnVlLCAgICAgICAgIHN5c19sd3BfY29udGludWUpLCAgICAgICAgICAvKiAxNjIgKi8KKyNpZiBkZWZpbmVkKFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwpCisgICBTT0xYWShfX05SX2x3cF9zaWdxdWV1ZSwgICAgICAgICBzeXNfbHdwX3NpZ3F1ZXVlKSwgICAgICAgICAgLyogMTYzICovCisjZWxzZQorICAgU09MWFkoX19OUl9sd3Bfa2lsbCwgICAgICAgICAgICAgc3lzX2x3cF9raWxsKSwgICAgICAgICAgICAgIC8qIDE2MyAqLworI2VuZGlmIC8qIFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwgKi8KKyAgIFNPTFhfKF9fTlJfbHdwX3NlbGYsICAgICAgICAgICAgIHN5c19sd3Bfc2VsZiksICAgICAgICAgICAgICAvKiAxNjQgKi8KKyAgIFNPTFhfKF9fTlJfbHdwX3NpZ21hc2ssICAgICAgICAgIHN5c19sd3Bfc2lnbWFzayksICAgICAgICAgICAvKiAxNjUgKi8KKyAgIFNPTFhfKF9fTlJfbHdwX3ByaXZhdGUsICAgICAgICAgIHN5c19sd3BfcHJpdmF0ZSksICAgICAgICAgICAvKiAxNjYgKi8KKyAgIFNPTFhZKF9fTlJfbHdwX3dhaXQsICAgICAgICAgICAgIHN5c19sd3Bfd2FpdCksICAgICAgICAgICAgICAvKiAxNjcgKi8KKyAgIFNPTFhZKF9fTlJfbHdwX211dGV4X3dha2V1cCwgICAgIHN5c19sd3BfbXV0ZXhfd2FrZXVwKSwgICAgICAvKiAxNjggKi8KKyAgIFNPTFhZKF9fTlJfbHdwX2NvbmRfd2FpdCwgICAgICAgIHN5c19sd3BfY29uZF93YWl0KSwgICAgICAgICAvKiAxNzAgKi8KKyAgIFNPTFhfKF9fTlJfbHdwX2NvbmRfYnJvYWRjYXN0LCAgIHN5c19sd3BfY29uZF9icm9hZGNhc3QpLCAgICAvKiAxNzIgKi8KKyAgIFNPTFhZKF9fTlJfcHJlYWQsICAgICAgICAgICAgICAgIHN5c19wcmVhZCksICAgICAgICAgICAgICAgICAvKiAxNzMgKi8KKyAgIFNPTFhfKF9fTlJfcHdyaXRlLCAgICAgICAgICAgICAgIHN5c19wd3JpdGUpLCAgICAgICAgICAgICAgICAvKiAxNzQgKi8KKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIFBMQVhfKF9fTlJfbGxzZWVrLCAgICAgICAgICAgICAgIHN5c19sbHNlZWszMiksICAgICAgICAgICAgICAvKiAxNzUgKi8KKyNlbmRpZiAvKiBWR1BfeDg2X3NvbGFyaXMgKi8KKyAgIFNPTFhZKF9fTlJfcnVzYWdlc3lzLCAgICAgICAgICAgIHN5c19ydXNhZ2VzeXMpLCAgICAgICAgICAgICAvKiAxODEgKi8KKyAgIFNPTFhZKF9fTlJfcG9ydCwgICAgICAgICAgICAgICAgIHN5c19wb3J0KSwgICAgICAgICAgICAgICAgICAvKiAxODIgKi8KKyAgIFNPTFhZKF9fTlJfcG9sbHN5cywgICAgICAgICAgICAgIHN5c19wb2xsc3lzKSwgICAgICAgICAgICAgICAvKiAxODMgKi8KKyAgIFNPTFhZKF9fTlJfbGFiZWxzeXMsICAgICAgICAgICAgIHN5c19sYWJlbHN5cyksICAgICAgICAgICAgICAvKiAxODQgKi8KKyAgIFNPTFhZKF9fTlJfYWNsLCAgICAgICAgICAgICAgICAgIHN5c19hY2wpLCAgICAgICAgICAgICAgICAgICAvKiAxODUgKi8KKyAgIFNPTFhZKF9fTlJfYXVkaXRzeXMsICAgICAgICAgICAgIHN5c19hdWRpdHN5cyksICAgICAgICAgICAgICAvKiAxODYgKi8KKyAgIFNPTFhfKF9fTlJfcF9vbmxpbmUsICAgICAgICAgICAgIHN5c19wX29ubGluZSksICAgICAgICAgICAgICAvKiAxODkgKi8KKyAgIFNPTFhfKF9fTlJfc2lncXVldWUsICAgICAgICAgICAgIHN5c19zaWdxdWV1ZSksICAgICAgICAgICAgICAvKiAxOTAgKi8KKyAgIFNPTFhfKF9fTlJfY2xvY2tfZ2V0dGltZSwgICAgICAgIHN5c19jbG9ja19nZXR0aW1lKSwgICAgICAgICAvKiAxOTEgKi8KKyAgIFNPTFhfKF9fTlJfY2xvY2tfc2V0dGltZSwgICAgICAgIHN5c19jbG9ja19zZXR0aW1lKSwgICAgICAgICAvKiAxOTIgKi8KKyAgIFNPTFhZKF9fTlJfY2xvY2tfZ2V0cmVzLCAgICAgICAgIHN5c19jbG9ja19nZXRyZXMpLCAgICAgICAgICAvKiAxOTMgKi8KKyAgIFNPTFhZKF9fTlJfdGltZXJfY3JlYXRlLCAgICAgICAgIHN5c190aW1lcl9jcmVhdGUpLCAgICAgICAgICAvKiAxOTQgKi8KKyAgIFNPTFhfKF9fTlJfdGltZXJfZGVsZXRlLCAgICAgICAgIHN5c190aW1lcl9kZWxldGUpLCAgICAgICAgICAvKiAxOTUgKi8KKyAgIFNPTFhZKF9fTlJfdGltZXJfc2V0dGltZSwgICAgICAgIHN5c190aW1lcl9zZXR0aW1lKSwgICAgICAgICAvKiAxOTYgKi8KKyAgIFNPTFhZKF9fTlJfdGltZXJfZ2V0dGltZSwgICAgICAgIHN5c190aW1lcl9nZXR0aW1lKSwgICAgICAgICAvKiAxOTcgKi8KKyAgIFNPTFhfKF9fTlJfdGltZXJfZ2V0b3ZlcnJ1biwgICAgIHN5c190aW1lcl9nZXRvdmVycnVuKSwgICAgICAvKiAxOTggKi8KKyAgIEdFTlhZKF9fTlJfbmFub3NsZWVwLCAgICAgICAgICAgIHN5c19uYW5vc2xlZXApLCAgICAgICAgICAgICAvKiAxOTkgKi8KKyAgIFNPTFhZKF9fTlJfZmFjbCwgICAgICAgICAgICAgICAgIHN5c19mYWNsKSwgICAgICAgICAgICAgICAgICAvKiAyMDAgKi8KKyAgIFNPTFhZKF9fTlJfZG9vciwgICAgICAgICAgICAgICAgIHN5c19kb29yKSwgICAgICAgICAgICAgICAgICAvKiAyMDEgKi8KKyAgIEdFTlhfKF9fTlJfc2V0cmV1aWQsICAgICAgICAgICAgIHN5c19zZXRyZXVpZCksICAgICAgICAgICAgICAvKiAyMDIgKi8KKyAgIEdFTlhfKF9fTlJfc2V0cmVnaWQsICAgICAgICAgICAgIHN5c19zZXRyZWdpZCksICAgICAgICAgICAgICAvKiAyMDIgKi8KKyAgIFNPTFhZKF9fTlJfc2NoZWRjdGwsICAgICAgICAgICAgIHN5c19zY2hlZGN0bCksICAgICAgICAgICAgICAvKiAyMDYgKi8KKyAgIFNPTFhZKF9fTlJfcHNldCwgICAgICAgICAgICAgICAgIHN5c19wc2V0KSwgICAgICAgICAgICAgICAgICAvKiAyMDcgKi8KKyAgIFNPTFhZKF9fTlJfcmVzb2x2ZXBhdGgsICAgICAgICAgIHN5c19yZXNvbHZlcGF0aCksICAgICAgICAgICAvKiAyMDkgKi8KKyAgIFNPTFhZKF9fTlJfbHdwX211dGV4X3RpbWVkbG9jaywgIHN5c19sd3BfbXV0ZXhfdGltZWRsb2NrKSwgICAvKiAyMTAgKi8KKyAgIFNPTFhZKF9fTlJfbHdwX3NlbWFfdGltZWR3YWl0LCAgIHN5c19sd3Bfc2VtYV90aW1lZHdhaXQpLCAgICAvKiAyMTEgKi8KKyAgIFNPTFhZKF9fTlJfbHdwX3J3bG9ja19zeXMsICAgICAgIHN5c19sd3Bfcndsb2NrX3N5cyksICAgICAgICAvKiAyMTIgKi8KKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIEdFTlhZKF9fTlJfZ2V0ZGVudHM2NCwgICAgICAgICAgIHN5c19nZXRkZW50czY0KSwgICAgICAgICAgICAvKiAyMTMgKi8KKyAgIFBMQVhfKF9fTlJfbW1hcDY0LCAgICAgICAgICAgICAgIHN5c19tbWFwNjQpLCAgICAgICAgICAgICAgICAvKiAyMTQgKi8KKyNpZiBkZWZpbmVkKFNPTEFSSVNfT0xEX1NZU0NBTExTKQorICAgUExBWFkoX19OUl9zdGF0NjQsICAgICAgICAgICAgICAgc3lzX3N0YXQ2NCksICAgICAgICAgICAgICAgIC8qIDIxNSAqLworICAgUExBWFkoX19OUl9sc3RhdDY0LCAgICAgICAgICAgICAgc3lzX2xzdGF0NjQpLCAgICAgICAgICAgICAgIC8qIDIxNiAqLworICAgUExBWFkoX19OUl9mc3RhdDY0LCAgICAgICAgICAgICAgc3lzX2ZzdGF0NjQpLCAgICAgICAgICAgICAgIC8qIDIxNyAqLworI2VuZGlmIC8qIFNPTEFSSVNfT0xEX1NZU0NBTExTICovCisgICBQTEFYWShfX05SX3N0YXR2ZnM2NCwgICAgICAgICAgICBzeXNfc3RhdHZmczY0KSwgICAgICAgICAgICAgLyogMjE4ICovCisgICBQTEFYWShfX05SX2ZzdGF0dmZzNjQsICAgICAgICAgICBzeXNfZnN0YXR2ZnM2NCksICAgICAgICAgICAgLyogMjE5ICovCisjZW5kaWYgLyogVkdQX3g4Nl9zb2xhcmlzICovCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBQTEFYXyhfX05SX3NldHJsaW1pdDY0LCAgICAgICAgICBzeXNfc2V0cmxpbWl0NjQpLCAgICAgICAgICAgLyogMjIwICovCisgICBQTEFYWShfX05SX2dldHJsaW1pdDY0LCAgICAgICAgICBzeXNfZ2V0cmxpbWl0NjQpLCAgICAgICAgICAgLyogMjIxICovCisgICBQTEFYWShfX05SX3ByZWFkNjQsICAgICAgICAgICAgICBzeXNfcHJlYWQ2NCksICAgICAgICAgICAgICAgLyogMjIyICovCisgICBQTEFYXyhfX05SX3B3cml0ZTY0LCAgICAgICAgICAgICBzeXNfcHdyaXRlNjQpLCAgICAgICAgICAgICAgLyogMjIzICovCisjaWYgZGVmaW5lZChTT0xBUklTX09MRF9TWVNDQUxMUykKKyAgIFBMQVhZKF9fTlJfb3BlbjY0LCAgICAgICAgICAgICAgIHN5c19vcGVuNjQpLCAgICAgICAgICAgICAgICAvKiAyMjUgKi8KKyNlbmRpZiAvKiBTT0xBUklTX09MRF9TWVNDQUxMUyAqLworI2VuZGlmIC8qIFZHUF94ODZfc29sYXJpcyAqLworICAgU09MWFkoX19OUl96b25lLCAgICAgICAgICAgICAgICAgc3lzX3pvbmUpLCAgICAgICAgICAgICAgICAgIC8qIDIyNyAqLworICAgU09MWFkoX19OUl9nZXRjd2QsICAgICAgICAgICAgICAgc3lzX2dldGN3ZCksICAgICAgICAgICAgICAgIC8qIDIyOSAqLworICAgU09MWFkoX19OUl9zb19zb2NrZXQsICAgICAgICAgICAgc3lzX3NvX3NvY2tldCksICAgICAgICAgICAgIC8qIDIzMCAqLworICAgU09MWFkoX19OUl9zb19zb2NrZXRwYWlyLCAgICAgICAgc3lzX3NvX3NvY2tldHBhaXIpLCAgICAgICAgIC8qIDIzMSAqLworICAgU09MWF8oX19OUl9iaW5kLCAgICAgICAgICAgICAgICAgc3lzX2JpbmQpLCAgICAgICAgICAgICAgICAgIC8qIDIzMiAqLworICAgU09MWF8oX19OUl9saXN0ZW4sICAgICAgICAgICAgICAgc3lzX2xpc3RlbiksICAgICAgICAgICAgICAgIC8qIDIzMyAqLworICAgU09MWFkoX19OUl9hY2NlcHQsICAgICAgICAgICAgICAgc3lzX2FjY2VwdCksICAgICAgICAgICAgICAgIC8qIDIzNCAqLworICAgU09MWF8oX19OUl9jb25uZWN0LCAgICAgICAgICAgICAgc3lzX2Nvbm5lY3QpLCAgICAgICAgICAgICAgIC8qIDIzNSAqLworICAgU09MWF8oX19OUl9zaHV0ZG93biwgICAgICAgICAgICAgc3lzX3NodXRkb3duKSwgICAgICAgICAgICAgIC8qIDIzNiAqLworICAgU09MWFkoX19OUl9yZWN2LCAgICAgICAgICAgICAgICAgc3lzX3JlY3YpLCAgICAgICAgICAgICAgICAgIC8qIDIzNyAqLworICAgU09MWFkoX19OUl9yZWN2ZnJvbSwgICAgICAgICAgICAgc3lzX3JlY3Zmcm9tKSwgICAgICAgICAgICAgIC8qIDIzOCAqLworICAgU09MWFkoX19OUl9yZWN2bXNnLCAgICAgICAgICAgICAgc3lzX3JlY3Ztc2cpLCAgICAgICAgICAgICAgIC8qIDIzOSAqLworICAgU09MWF8oX19OUl9zZW5kLCAgICAgICAgICAgICAgICAgc3lzX3NlbmQpLCAgICAgICAgICAgICAgICAgIC8qIDI0MCAqLworICAgU09MWF8oX19OUl9zZW5kbXNnLCAgICAgICAgICAgICAgc3lzX3NlbmRtc2cpLCAgICAgICAgICAgICAgIC8qIDI0MSAqLworICAgU09MWF8oX19OUl9zZW5kdG8sICAgICAgICAgICAgICAgc3lzX3NlbmR0byksICAgICAgICAgICAgICAgIC8qIDI0MiAqLworICAgU09MWFkoX19OUl9nZXRwZWVybmFtZSwgICAgICAgICAgc3lzX2dldHBlZXJuYW1lKSwgICAgICAgICAgIC8qIDI0MyAqLworICAgU09MWFkoX19OUl9nZXRzb2NrbmFtZSwgICAgICAgICAgc3lzX2dldHNvY2tuYW1lKSwgICAgICAgICAgIC8qIDI0NCAqLworICAgU09MWFkoX19OUl9nZXRzb2Nrb3B0LCAgICAgICAgICAgc3lzX2dldHNvY2tvcHQpLCAgICAgICAgICAgIC8qIDI0NSAqLworICAgU09MWF8oX19OUl9zZXRzb2Nrb3B0LCAgICAgICAgICAgc3lzX3NldHNvY2tvcHQpLCAgICAgICAgICAgIC8qIDI0NiAqLworICAgU09MWF8oX19OUl9sd3BfbXV0ZXhfcmVnaXN0ZXIsICAgc3lzX2x3cF9tdXRleF9yZWdpc3RlciksICAgIC8qIDI1MiAqLworICAgU09MWFkoX19OUl91dWNvcHksICAgICAgICAgICAgICAgc3lzX3V1Y29weSksICAgICAgICAgICAgICAgIC8qIDI1NCAqLworICAgU09MWF8oX19OUl91bW91bnQyLCAgICAgICAgICAgICAgc3lzX3Vtb3VudDIpICAgICAgICAgICAgICAgIC8qIDI1NSAqLworfTsKKworc3RhdGljIFN5c2NhbGxUYWJsZUVudHJ5IGZhc3R0cmFwX3RhYmxlW10gPSB7CisgICBTT0xYXyhfX05SX2dldGhydGltZSwgICAgICAgICAgICBmYXN0X2dldGhydGltZSksICAgICAgICAgICAgLyogICAzICovCisgICBTT0xYXyhfX05SX2dldGhydnRpbWUsICAgICAgICAgICBmYXN0X2dldGhydnRpbWUpLCAgICAgICAgICAgLyogICA0ICovCisgICBTT0xYXyhfX05SX2dldGhyZXN0aW1lLCAgICAgICAgICBmYXN0X2dldGhyZXN0aW1lKSAgICAgICAgICAgLyogICA1ICovCisjaWYgZGVmaW5lZChTT0xBUklTX0dFVEhSVF9GQVNUVFJBUCkKKyAgICwKKyAgIFNPTFhZKF9fTlJfZ2V0aHJ0LCAgICAgICAgICAgICAgIGZhc3RfZ2V0aHJ0KSAgICAgICAgICAgICAgICAvKiAgIDcgKi8KKyNlbmRpZiAvKiBTT0xBUklTX0dFVEhSVF9GQVNUVFJBUCAqLworI2lmIGRlZmluZWQoU09MQVJJU19HRVRaT05FT0ZGU0VUX0ZBU1RUUkFQKQorICAgLAorICAgU09MWFkoX19OUl9nZXR6b25lb2Zmc2V0LCAgICAgICAgZmFzdF9nZXR6b25lb2Zmc2V0KSAgICAgICAgIC8qICAgOCAqLworI2VuZGlmIC8qIFNPTEFSSVNfR0VUWk9ORU9GRlNFVF9GQVNUVFJBUCAqLworCit9OworCitTeXNjYWxsVGFibGVFbnRyeSAqTUxfKGdldF9zb2xhcmlzX3N5c2NhbGxfZW50cnkpKFVJbnQgc3lzbm8pCit7CisgICBjb25zdCBVSW50IHN5c2NhbGxfdGFibGVfc2l6ZQorICAgICAgPSBzaXplb2Yoc3lzY2FsbF90YWJsZSkgLyBzaXplb2Yoc3lzY2FsbF90YWJsZVswXSk7CisgICBjb25zdCBVSW50IGZhc3R0cmFwX3RhYmxlX3NpemUKKyAgICAgID0gc2l6ZW9mKGZhc3R0cmFwX3RhYmxlKSAvIHNpemVvZihmYXN0dHJhcF90YWJsZVswXSk7CisKKyAgIFN5c2NhbGxUYWJsZUVudHJ5ICp0YWJsZTsKKyAgIEludCBzaXplOworCisgICBzd2l0Y2ggKFZHX1NPTEFSSVNfU1lTTk9fQ0xBU1Moc3lzbm8pKSB7CisgICBjYXNlIFZHX1NPTEFSSVNfU1lTQ0FMTF9DTEFTU19DTEFTU0lDOgorICAgICAgdGFibGUgPSBzeXNjYWxsX3RhYmxlOworICAgICAgc2l6ZSA9IHN5c2NhbGxfdGFibGVfc2l6ZTsKKyAgICAgIGJyZWFrOworICAgY2FzZSBWR19TT0xBUklTX1NZU0NBTExfQ0xBU1NfRkFTVFRSQVA6CisgICAgICB0YWJsZSA9IGZhc3R0cmFwX3RhYmxlOworICAgICAgc2l6ZSA9IGZhc3R0cmFwX3RhYmxlX3NpemU7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICB2Z19hc3NlcnQoMCk7CisgICAgICBicmVhazsKKyAgIH0KKyAgIHN5c25vID0gVkdfU09MQVJJU19TWVNOT19JTkRFWChzeXNubyk7CisgICBpZiAoc3lzbm8gPCBzaXplKSB7CisgICAgICBTeXNjYWxsVGFibGVFbnRyeSAqc3lzID0gJnRhYmxlW3N5c25vXTsKKyAgICAgIGlmICghc3lzLT5iZWZvcmUpCisgICAgICAgICByZXR1cm4gTlVMTDsgLyogbm8gZW50cnkgKi8KKyAgICAgIHJldHVybiBzeXM7CisgICB9CisKKyAgIC8qIENhbid0IGZpbmQgYSB3cmFwcGVyLiAqLworICAgcmV0dXJuIE5VTEw7Cit9CisKKyNlbmRpZiAvLyBkZWZpbmVkKFZHT19zb2xhcmlzKQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtdGlsZWd4LWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtdGlsZWd4LWxpbnV4LmMKaW5kZXggZmJkZjRiZi4uYWNlY2ViNCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXRpbGVneC1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC10aWxlZ3gtbGludXguYwpAQCAtNyw3ICs3LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBUaWxlcmEgQ29ycC4KKyAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgVGlsZXJhIENvcnAuCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMzE5LDcgKzMxOSw3IEBACiBzdGF0aWMgU3lzUmVzIHN5c19zZXRfdGxzICggVGhyZWFkSWQgdGlkLCBBZGRyIHRsc3B0ciApOwogIC8qCiAgICBXaGVuIGEgY2xpZW50IGNsb25lcywgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBuZXcgdGhyZWFkLiAgVGhpcyBtZWFuczoKLSAgIDEuIGFsbG9jYXRlIGEgVGhyZWFkSWQrVGhyZWFkU3RhdGUrc3RhY2sgZm9yIHRoZSB0aGUgdGhyZWFkCisgICAxLiBhbGxvY2F0ZSBhIFRocmVhZElkK1RocmVhZFN0YXRlK3N0YWNrIGZvciB0aGUgdGhyZWFkCiAgICAyLiBpbml0aWFsaXplIHRoZSB0aHJlYWQncyBuZXcgVkNQVSBzdGF0ZQogICAgMy4gY3JlYXRlIHRoZSB0aHJlYWQgdXNpbmcgdGhlIHNhbWUgYXJncyBhcyB0aGUgY2xpZW50IHJlcXVlc3RlZCwKICAgIGJ1dCB1c2luZyB0aGUgc2NoZWR1bGVyIGVudHJ5cG9pbnQgZm9yIElQLCBhbmQgYSBzZXBhcmF0ZSBzdGFjawpAQCAtMzkzLDcgKzM5Myw3IEBACiAKICAgLyogSGlnaCBoYWxmIHdvcmQ2NCBpcyBzeXNjYWxsIHJldHVybiB2YWx1ZS4gKi8KICAgaWYgKGRlYnVnKQotICAgIFZHXyhwcmludGYpKCJyZXQ6IDB4JWx4XG4iLCByZXQpOworICAgIFZHXyhwcmludGYpKCJyZXQ6IDB4JWxseFxuIiwgKFVMb25nKXJldCk7CiAKICAgcmVzID0gVkdfKG1rX1N5c1Jlc190aWxlZ3hfbGludXgpICgvKnZhbCAqLyByZXQpOwogCkBAIC02MjgsNyArNjI4LDcgQEAKIAogUFJFKHN5c19hcmNoX3ByY3RsKQogewotICBQUklOVCggImFyY2hfcHJjdGwgKCAlbGQsICVseCApIiwgQVJHMSwgQVJHMiApOworICBQUklOVCggImFyY2hfcHJjdGwgKCAlbGQsICVseCApIiwgU0FSRzEsIEFSRzIgKTsKIAogICB2Z19hc3NlcnQoVkdfKGlzX3ZhbGlkX3RpZCkodGlkKSk7CiAgIHZnX2Fzc2VydCh0aWQgPj0gMSAmJiB0aWQgPCBWR19OX1RIUkVBRFMpOwpAQCAtNjQ1LDkgKzY0NSw5IEBACiAvLyBzcGFjZSwgYW5kIHdlIHNob3VsZCB0aGVyZWZvcmUgbm90IGNoZWNrIGFueXRoaW5nIGl0IHBvaW50cyB0by4KIFBSRShzeXNfcHRyYWNlKQogewotICBQUklOVCgic3lzX3B0cmFjZSAoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgUFJJTlQoInN5c19wdHJhY2UgKCAlbGQsICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBBUkczLCBBUkc0KTsKICAgUFJFX1JFR19SRUFENChpbnQsICJwdHJhY2UiLAotICAgICAgICAgICAgICAgIGxvbmcsIHJlcXVlc3QsIGxvbmcsIHBpZCwgbG9uZywgYWRkciwgbG9uZywgZGF0YSk7CisgICAgICAgICAgICAgICAgbG9uZywgcmVxdWVzdCwgbG9uZywgcGlkLCB1bnNpZ25lZCBsb25nLCBhZGRyLCB1bnNpZ25lZCBsb25nLCBkYXRhKTsKICAgc3dpdGNoIChBUkcxKSB7CiAgIGNhc2UgVktJX1BUUkFDRV9QRUVLVEVYVDoKICAgY2FzZSBWS0lfUFRSQUNFX1BFRUtEQVRBOgpAQCAtNzIxLDcgKzcyMSw3IEBACiAKIFBSRShzeXNfc29ja2V0KQogewotICBQUklOVCgic3lzX3NvY2tldCAoICVsZCwgJWxkLCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMpOworICBQUklOVCgic3lzX3NvY2tldCAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOwogICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzb2NrZXQiLCBpbnQsIGRvbWFpbiwgaW50LCB0eXBlLCBpbnQsIHByb3RvY29sKTsKIH0KIFBPU1Qoc3lzX3NvY2tldCkKQEAgLTczNCw3ICs3MzQsOCBAQAogCiBQUkUoc3lzX3NldHNvY2tvcHQpCiB7Ci0gIFBSSU5UKCJzeXNfc2V0c29ja29wdCAoICVsZCwgJWxkLCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyxBUkc0LEFSRzUpOworICBQUklOVCgic3lzX3NldHNvY2tvcHQgKCAlbGQsICVsZCwgJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsCisgICAgICAgIEFSRzQsIFNBUkc1KTsKICAgUFJFX1JFR19SRUFENShsb25nLCAic2V0c29ja29wdCIsCiAgICAgICAgICAgICAgICAgaW50LCBzLCBpbnQsIGxldmVsLCBpbnQsIG9wdG5hbWUsCiAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqLCBvcHR2YWwsIGludCwgb3B0bGVuKTsKQEAgLTc0Myw3ICs3NDQsOCBAQAogCiBQUkUoc3lzX2dldHNvY2tvcHQpCiB7Ci0gIFBSSU5UKCJzeXNfZ2V0c29ja29wdCAoICVsZCwgJWxkLCAlbGQsICUjbHgsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgUFJJTlQoInN5c19nZXRzb2Nrb3B0ICggJWxkLCAlbGQsICVsZCwgJSNseCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMywKKyAgICAgICAgQVJHNCwgQVJHNSk7CiAgIFBSRV9SRUdfUkVBRDUobG9uZywgImdldHNvY2tvcHQiLAogICAgICAgICAgICAgICAgIGludCwgcywgaW50LCBsZXZlbCwgaW50LCBvcHRuYW1lLAogICAgICAgICAgICAgICAgIHZvaWQgKiwgb3B0dmFsLCBpbnQsICpvcHRsZW4pOwpAQCAtNzU5LDcgKzc2MSw3IEBACiBQUkUoc3lzX2Nvbm5lY3QpCiB7CiAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICBQUklOVCgic3lzX2Nvbm5lY3QgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgIFBSSU5UKCJzeXNfY29ubmVjdCAoICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOwogICBQUkVfUkVHX1JFQUQzKGxvbmcsICJjb25uZWN0IiwKICAgICAgICAgICAgICAgICBpbnQsIHNvY2tmZCwgc3RydWN0IHNvY2thZGRyICosIHNlcnZfYWRkciwgaW50LCBhZGRybGVuKTsKICAgTUxfKGdlbmVyaWNfUFJFX3N5c19jb25uZWN0KSh0aWQsIEFSRzEsQVJHMixBUkczKTsKQEAgLTc2OCw5ICs3NzAsOSBAQAogUFJFKHN5c19hY2NlcHQpCiB7CiAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICBQUklOVCgic3lzX2FjY2VwdCAoICVsZCwgJSNseCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKKyAgUFJJTlQoInN5c19hY2NlcHQgKCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBBUkcyLCBBUkczKTsKICAgUFJFX1JFR19SRUFEMyhsb25nLCAiYWNjZXB0IiwKLSAgICAgICAgICAgICAgICBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBhZGRyLCBpbnQsICphZGRybGVuKTsKKyAgICAgICAgICAgICAgICBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBhZGRyLCBpbnQgKiwgYWRkcmxlbik7CiAgIE1MXyhnZW5lcmljX1BSRV9zeXNfYWNjZXB0KSh0aWQsIEFSRzEsQVJHMixBUkczKTsKIH0KIFBPU1Qoc3lzX2FjY2VwdCkKQEAgLTc4NSw5ICs3ODcsOSBAQAogUFJFKHN5c19hY2NlcHQ0KQogewogICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgUFJJTlQoInN5c19hY2NlcHQ0ICggJWxkLCAlI2x4LCAlbGQsICVsZCApIixBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgUFJJTlQoInN5c19hY2NlcHQ0ICggJWxkLCAlI2x4LCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBBUkczLCBTQVJHNCk7CiAgIFBSRV9SRUdfUkVBRDQobG9uZywgImFjY2VwdDQiLAotICAgICAgICAgICAgICAgIGludCwgcywgc3RydWN0IHNvY2thZGRyICosIGFkZHIsIGludCwgKmFkZHJsZW4sIGludCwgZmxhZ3MpOworICAgICAgICAgICAgICAgIGludCwgcywgc3RydWN0IHNvY2thZGRyICosIGFkZHIsIGludCAqLCBhZGRybGVuLCBpbnQsIGZsYWdzKTsKICAgTUxfKGdlbmVyaWNfUFJFX3N5c19hY2NlcHQpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwogfQogUE9TVChzeXNfYWNjZXB0NCkKQEAgLTgwMiw4ICs4MDQsOCBAQAogUFJFKHN5c19zZW5kdG8pCiB7CiAgICpmbGFncyB8PSBTZk1heUJsb2NrOwotICBQUklOVCgic3lzX3NlbmR0byAoICVsZCwgJSNseCwgJWxkLCAlbHUsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMywKLSAgICAgICAgQVJHNCxBUkc1LEFSRzYpOworICBQUklOVCgic3lzX3NlbmR0byAoICVsZCwgJSNseCwgJWxkLCAlbHUsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczLAorICAgICAgICBBUkc0LCBBUkc1LCBTQVJHNik7CiAgIFBSRV9SRUdfUkVBRDYobG9uZywgInNlbmR0byIsCiAgICAgICAgICAgICAgICAgaW50LCBzLCBjb25zdCB2b2lkICosIG1zZywgaW50LCBsZW4sCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LCBmbGFncywKQEAgLTgxNCw4ICs4MTYsOCBAQAogUFJFKHN5c19yZWN2ZnJvbSkKIHsKICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gIFBSSU5UKCJzeXNfcmVjdmZyb20gKCAlbGQsICUjbHgsICVsZCwgJWx1LCAlI2x4LCAlI2x4ICkiLEFSRzEsQVJHMixBUkczLAotICAgICAgICBBUkc0LEFSRzUsQVJHNik7CisgIFBSSU5UKCJzeXNfcmVjdmZyb20gKCAlbGQsICUjbHgsICVsZCwgJWx1LCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMsCisgICAgICAgIEFSRzQsIEFSRzUsIEFSRzYpOwogICBQUkVfUkVHX1JFQUQ2KGxvbmcsICJyZWN2ZnJvbSIsCiAgICAgICAgICAgICAgICAgaW50LCBzLCB2b2lkICosIGJ1ZiwgaW50LCBsZW4sIHVuc2lnbmVkIGludCwgZmxhZ3MsCiAgICAgICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyICosIGZyb20sIGludCAqLCBmcm9tbGVuKTsKQEAgLTgzMSw3ICs4MzMsNyBAQAogUFJFKHN5c19zZW5kbXNnKQogewogICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgUFJJTlQoInN5c19zZW5kbXNnICggJWxkLCAlI2x4LCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMpOworICBQUklOVCgic3lzX3NlbmRtc2cgKCAlbGQsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIFNBUkczKTsKICAgUFJFX1JFR19SRUFEMyhsb25nLCAic2VuZG1zZyIsCiAgICAgICAgICAgICAgICAgaW50LCBzLCBjb25zdCBzdHJ1Y3QgbXNnaGRyICosIG1zZywgaW50LCBmbGFncyk7CiAgIE1MXyhnZW5lcmljX1BSRV9zeXNfc2VuZG1zZykodGlkLCAibXNnIiwgQVJHMik7CkBAIC04NDAsNyArODQyLDcgQEAKIFBSRShzeXNfcmVjdm1zZykKIHsKICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gIFBSSU5UKCJzeXNfcmVjdm1zZyAoICVsZCwgJSNseCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKKyAgUFJJTlQoInN5c19yZWN2bXNnICggJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CiAgIFBSRV9SRUdfUkVBRDMobG9uZywgInJlY3Ztc2ciLCBpbnQsIHMsIHN0cnVjdCBtc2doZHIgKiwgbXNnLCBpbnQsIGZsYWdzKTsKICAgTUxfKGdlbmVyaWNfUFJFX3N5c19yZWN2bXNnKSh0aWQsICJtc2ciLCAoc3RydWN0IHZraV9tc2doZHIgKikgQVJHMik7CiB9CkBAIC04NTMsMTMgKzg1NSwxMyBAQAogUFJFKHN5c19zaHV0ZG93bikKIHsKICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Ci0gIFBSSU5UKCJzeXNfc2h1dGRvd24gKCAlbGQsICVsZCApIixBUkcxLEFSRzIpOworICBQUklOVCgic3lzX3NodXRkb3duICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CiAgIFBSRV9SRUdfUkVBRDIoaW50LCAic2h1dGRvd24iLCBpbnQsIHMsIGludCwgaG93KTsKIH0KIAogUFJFKHN5c19iaW5kKQogewotICBQUklOVCgic3lzX2JpbmQgKCAlbGQsICUjbHgsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgIFBSSU5UKCJzeXNfYmluZCAoICVsZCwgJSNseCwgJWxkICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOwogICBQUkVfUkVHX1JFQUQzKGxvbmcsICJiaW5kIiwKICAgICAgICAgICAgICAgICBpbnQsIHNvY2tmZCwgc3RydWN0IHNvY2thZGRyICosIG15X2FkZHIsIGludCwgYWRkcmxlbik7CiAgIE1MXyhnZW5lcmljX1BSRV9zeXNfYmluZCkodGlkLCBBUkcxLEFSRzIsQVJHMyk7CkBAIC04NjcsMTMgKzg2OSwxMyBAQAogCiBQUkUoc3lzX2xpc3RlbikKIHsKLSAgUFJJTlQoInN5c19saXN0ZW4gKCAlbGQsICVsZCApIixBUkcxLEFSRzIpOworICBQUklOVCgic3lzX2xpc3RlbiAoICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIpOwogICBQUkVfUkVHX1JFQUQyKGxvbmcsICJsaXN0ZW4iLCBpbnQsIHMsIGludCwgYmFja2xvZyk7CiB9CiAKIFBSRShzeXNfZ2V0c29ja25hbWUpCiB7Ci0gIFBSSU5UKCJzeXNfZ2V0c29ja25hbWUgKCAlbGQsICUjbHgsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMpOworICBQUklOVCgic3lzX2dldHNvY2tuYW1lICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgIFBSRV9SRUdfUkVBRDMobG9uZywgImdldHNvY2tuYW1lIiwKICAgICAgICAgICAgICAgICBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBuYW1lLCBpbnQgKiwgbmFtZWxlbik7CiAgIE1MXyhnZW5lcmljX1BSRV9zeXNfZ2V0c29ja25hbWUpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtODg3LDcgKzg4OSw3IEBACiAKIFBSRShzeXNfZ2V0cGVlcm5hbWUpCiB7Ci0gIFBSSU5UKCJzeXNfZ2V0cGVlcm5hbWUgKCAlbGQsICUjbHgsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMpOworICBQUklOVCgic3lzX2dldHBlZXJuYW1lICggJWxkLCAlI2x4LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgIFBSRV9SRUdfUkVBRDMobG9uZywgImdldHBlZXJuYW1lIiwKICAgICAgICAgICAgICAgICBpbnQsIHMsIHN0cnVjdCBzb2NrYWRkciAqLCBuYW1lLCBpbnQgKiwgbmFtZWxlbik7CiAgIE1MXyhnZW5lcmljX1BSRV9zeXNfZ2V0cGVlcm5hbWUpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtOTAxLDcgKzkwMyw3IEBACiAKIFBSRShzeXNfc29ja2V0cGFpcikKIHsKLSAgUFJJTlQoInN5c19zb2NrZXRwYWlyICggJWxkLCAlbGQsICVsZCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgUFJJTlQoInN5c19zb2NrZXRwYWlyICggJWxkLCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMywgQVJHNCk7CiAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNvY2tldHBhaXIiLAogICAgICAgICAgICAgICAgIGludCwgZCwgaW50LCB0eXBlLCBpbnQsIHByb3RvY29sLCBpbnQqLCBzdik7CiAgIE1MXyhnZW5lcmljX1BSRV9zeXNfc29ja2V0cGFpcikodGlkLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKQEAgLTkxNSwxNCArOTE3LDE0IEBACiAKIFBSRShzeXNfc2VtZ2V0KQogewotICBQUklOVCgic3lzX3NlbWdldCAoICVsZCwgJWxkLCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMpOworICBQUklOVCgic3lzX3NlbWdldCAoICVsZCwgJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMpOwogICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzZW1nZXQiLCB2a2lfa2V5X3QsIGtleSwgaW50LCBuc2VtcywgaW50LCBzZW1mbGcpOwogfQogCiBQUkUoc3lzX3NlbW9wKQogewogICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgUFJJTlQoInN5c19zZW1vcCAoICVsZCwgJSNseCwgJWx1ICkiLEFSRzEsQVJHMixBUkczKTsKKyAgUFJJTlQoInN5c19zZW1vcCAoICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNlbW9wIiwKICAgICAgICAgICAgICAgICBpbnQsIHNlbWlkLCBzdHJ1Y3Qgc2VtYnVmICosIHNvcHMsIHVuc2lnbmVkLCBuc29vcHMpOwogICBNTF8oZ2VuZXJpY19QUkVfc3lzX3NlbW9wKSh0aWQsIEFSRzEsQVJHMixBUkczKTsKQEAgLTkzMSw3ICs5MzMsNyBAQAogUFJFKHN5c19zZW10aW1lZG9wKQogewogICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgUFJJTlQoInN5c19zZW10aW1lZG9wICggJWxkLCAlI2x4LCAlbHUsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgIFBSSU5UKCJzeXNfc2VtdGltZWRvcCAoICVsZCwgJSNseCwgJWx1LCAlI2x4ICkiLCBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCk7CiAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNlbXRpbWVkb3AiLAogICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIHN0cnVjdCBzZW1idWYgKiwgc29wcywgdW5zaWduZWQsIG5zb29wcywKICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKiwgdGltZW91dCk7CkBAIC05NDMsMjUgKzk0NSwyNSBAQAogICBzd2l0Y2ggKEFSRzMgJiB+VktJX0lQQ182NCkgewogICBjYXNlIFZLSV9JUENfSU5GTzoKICAgY2FzZSBWS0lfU0VNX0lORk86Ci0gICAgUFJJTlQoInN5c19zZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLEFSRzEsQVJHMixBUkczLEFSRzQpOworICAgIFBSSU5UKCJzeXNfc2VtY3RsICggJWxkLCAlbGQsICVsZCwgJSNseCApIiwgU0FSRzEsIFNBUkcyLCBTQVJHMywgQVJHNCk7CiAgICAgUFJFX1JFR19SRUFENChsb25nLCAic2VtY3RsIiwKICAgICAgICAgICAgICAgICAgIGludCwgc2VtaWQsIGludCwgc2VtbnVtLCBpbnQsIGNtZCwgc3RydWN0IHNlbWluZm8gKiwgYXJnKTsKICAgICBicmVhazsKICAgY2FzZSBWS0lfSVBDX1NUQVQ6CiAgIGNhc2UgVktJX1NFTV9TVEFUOgogICBjYXNlIFZLSV9JUENfU0VUOgotICAgIFBSSU5UKCJzeXNfc2VtY3RsICggJWxkLCAlbGQsICVsZCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgICBQUklOVCgic3lzX3NlbWN0bCAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgU0FSRzMsIEFSRzQpOwogICAgIFBSRV9SRUdfUkVBRDQobG9uZywgInNlbWN0bCIsCiAgICAgICAgICAgICAgICAgICBpbnQsIHNlbWlkLCBpbnQsIHNlbW51bSwgaW50LCBjbWQsIHN0cnVjdCBzZW1pZF9kcyAqLCBhcmcpOwogICAgIGJyZWFrOwogICBjYXNlIFZLSV9HRVRBTEw6CiAgIGNhc2UgVktJX1NFVEFMTDoKLSAgICBQUklOVCgic3lzX3NlbWN0bCAoICVsZCwgJWxkLCAlbGQsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgICAgUFJJTlQoInN5c19zZW1jdGwgKCAlbGQsICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczLCBBUkc0KTsKICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJzZW1jdGwiLAogICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kLCB1bnNpZ25lZCBzaG9ydCAqLCBhcmcpOwogICAgIGJyZWFrOwogICBkZWZhdWx0OgotICAgIFBSSU5UKCJzeXNfc2VtY3RsICggJWxkLCAlbGQsICVsZCApIixBUkcxLEFSRzIsQVJHMyk7CisgICAgUFJJTlQoInN5c19zZW1jdGwgKCAlbGQsICVsZCwgJWxkICkiLCBTQVJHMSwgU0FSRzIsIFNBUkczKTsKICAgICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzZW1jdGwiLAogICAgICAgICAgICAgICAgICAgaW50LCBzZW1pZCwgaW50LCBzZW1udW0sIGludCwgY21kKTsKICAgICBicmVhazsKQEAgLTk3NSwxMyArOTc3LDEzIEBACiAKIFBSRShzeXNfbXNnZ2V0KQogewotICBQUklOVCgic3lzX21zZ2dldCAoICVsZCwgJWxkICkiLEFSRzEsQVJHMik7CisgIFBSSU5UKCJzeXNfbXNnZ2V0ICggJWxkLCAlbGQgKSIsIFNBUkcxLCBTQVJHMik7CiAgIFBSRV9SRUdfUkVBRDIobG9uZywgIm1zZ2dldCIsIHZraV9rZXlfdCwga2V5LCBpbnQsIG1zZ2ZsZyk7CiB9CiAKIFBSRShzeXNfbXNnc25kKQogewotICBQUklOVCgic3lzX21zZ3NuZCAoICVsZCwgJSNseCwgJWxkLCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCk7CisgIFBSSU5UKCJzeXNfbXNnc25kICggJWxkLCAlI2x4LCAlbHUsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKICAgUFJFX1JFR19SRUFENChsb25nLCAibXNnc25kIiwKICAgICAgICAgICAgICAgICBpbnQsIG1zcWlkLCBzdHJ1Y3QgbXNnYnVmICosIG1zZ3AsIHZraV9zaXplX3QsIG1zZ3N6LAogICAgICAgICAgICAgICAgIGludCwgbXNnZmxnKTsKQEAgLTk5Miw3ICs5OTQsOCBAQAogCiBQUkUoc3lzX21zZ3JjdikKIHsKLSAgUFJJTlQoInN5c19tc2dyY3YgKCAlbGQsICUjbHgsICVsZCwgJWxkLCAlbGQgKSIsQVJHMSxBUkcyLEFSRzMsQVJHNCxBUkc1KTsKKyAgUFJJTlQoInN5c19tc2dyY3YgKCAlbGQsICUjbHgsICVsdSwgJWxkLCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBBUkczLAorICAgICAgICBTQVJHNCwgU0FSRzUpOwogICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJtc2dyY3YiLAogICAgICAgICAgICAgICAgIGludCwgbXNxaWQsIHN0cnVjdCBtc2didWYgKiwgbXNncCwgdmtpX3NpemVfdCwgbXNnc3osCiAgICAgICAgICAgICAgICAgbG9uZywgbXNneXRwLCBpbnQsIG1zZ2ZsZyk7CkBAIC0xMDA3LDcgKzEwMTAsNyBAQAogCiBQUkUoc3lzX21zZ2N0bCkKIHsKLSAgUFJJTlQoInN5c19tc2djdGwgKCAlbGQsICVsZCwgJSNseCApIixBUkcxLEFSRzIsQVJHMyk7CisgIFBSSU5UKCJzeXNfbXNnY3RsICggJWxkLCAlbGQsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMyk7CiAgIFBSRV9SRUdfUkVBRDMobG9uZywgIm1zZ2N0bCIsCiAgICAgICAgICAgICAgICAgaW50LCBtc3FpZCwgaW50LCBjbWQsIHN0cnVjdCBtc3FpZF9kcyAqLCBidWYpOwogICBNTF8obGludXhfUFJFX3N5c19tc2djdGwpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtMTAxOSwxNCArMTAyMiwxNCBAQAogCiBQUkUoc3lzX3NobWdldCkKIHsKLSAgUFJJTlQoInN5c19zaG1nZXQgKCAlbGQsICVsZCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKKyAgUFJJTlQoInN5c19zaG1nZXQgKCAlbGQsICVsdSwgJWxkICkiLCBTQVJHMSwgQVJHMiwgU0FSRzMpOwogICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzaG1nZXQiLCB2a2lfa2V5X3QsIGtleSwgdmtpX3NpemVfdCwgc2l6ZSwgaW50LCBzaG1mbGcpOwogfQogCiBQUkUod3JhcF9zeXNfc2htYXQpCiB7CiAgIFVXb3JkIGFyZzJ0bXA7Ci0gIFBSSU5UKCJ3cmFwX3N5c19zaG1hdCAoICVsZCwgJSNseCwgJWxkICkiLEFSRzEsQVJHMixBUkczKTsKKyAgUFJJTlQoIndyYXBfc3lzX3NobWF0ICggJWxkLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLCBTQVJHMyk7CiAgIFBSRV9SRUdfUkVBRDMobG9uZywgInNobWF0IiwKICAgICAgICAgICAgICAgICBpbnQsIHNobWlkLCBjb25zdCB2b2lkICosIHNobWFkZHIsIGludCwgc2htZmxnKTsKICAgYXJnMnRtcCA9IE1MXyhnZW5lcmljX1BSRV9zeXNfc2htYXQpKHRpZCwgQVJHMSxBUkcyLEFSRzMpOwpAQCAtMTA1NCw3ICsxMDU3LDcgQEAKIAogUFJFKHN5c19zaG1jdGwpCiB7Ci0gIFBSSU5UKCJzeXNfc2htY3RsICggJWxkLCAlbGQsICUjbHggKSIsQVJHMSxBUkcyLEFSRzMpOworICBQUklOVCgic3lzX3NobWN0bCAoICVsZCwgJWxkLCAlI2x4ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMpOwogICBQUkVfUkVHX1JFQUQzKGxvbmcsICJzaG1jdGwiLAogICAgICAgICAgICAgICAgIGludCwgc2htaWQsIGludCwgY21kLCBzdHJ1Y3Qgc2htaWRfZHMgKiwgYnVmKTsKICAgTUxfKGdlbmVyaWNfUFJFX3N5c19zaG1jdGwpKHRpZCwgQVJHMSxBUkcyfFZLSV9JUENfNjQsQVJHMyk7CkBAIC0xMDY2LDcgKzEwNjksNyBAQAogCiBQUkUoc3lzX2ZhZHZpc2U2NCkKIHsKLSAgUFJJTlQoInN5c19mYWR2aXNlNjQgKCAlbGQsICVsZCwgJWx1LCAlbGQgKSIsIEFSRzEsQVJHMixBUkczLEFSRzQpOworICBQUklOVCgic3lzX2ZhZHZpc2U2NCAoICVsZCwgJWxkLCAlbHUsICVsZCApIiwgU0FSRzEsIFNBUkcyLCBBUkczLCBTQVJHNCk7CiAgIFBSRV9SRUdfUkVBRDQobG9uZywgImZhZHZpc2U2NCIsCiAgICAgICAgICAgICAgICAgaW50LCBmZCwgdmtpX2xvZmZfdCwgb2Zmc2V0LCB2a2lfc2l6ZV90LCBsZW4sIGludCwgYWR2aWNlKTsKIH0KQEAgLTEwNzUsOCArMTA3OCw4IEBACiB7CiAgIFN5c1JlcyByOwogCi0gIFBSSU5UKCJzeXNfbW1hcCAoICUjbHgsICVsbHUsICVsZCwgJWxkLCAlZCwgJWxkICkiLAotICAgICAgICBBUkcxLCAoVUxvbmcpQVJHMiwgQVJHMywgQVJHNCwgKEludClBUkc1LCBBUkc2ICk7CisgIFBSSU5UKCJzeXNfbW1hcCAoICUjbHgsICVsdSwgJWx1LCAlbHUsICVsdSwgJWx1ICkiLAorICAgICAgICBBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1LCBBUkc2ICk7CiAgIFBSRV9SRUdfUkVBRDYobG9uZywgIm1tYXAiLAogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIHN0YXJ0LCB1bnNpZ25lZCBsb25nLCBsZW5ndGgsCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgcHJvdCwgIHVuc2lnbmVkIGxvbmcsIGZsYWdzLApAQCAtMTA5Miw3ICsxMDk1LDcgQEAKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogUFJFKHN5c19jYWNoZWZsdXNoKQogewotICAgUFJJTlQoImNhY2hlZmx1c2ggKCVseCwgJWx4LCAlbHgpIiwgQVJHMSwgQVJHMiwgQVJHMyk7CisgICBQUklOVCgiY2FjaGVmbHVzaCAoJWx4LCAlbGQsICVsZCkiLCBBUkcxLCBTQVJHMiwgU0FSRzMpOwogICAgUFJFX1JFR19SRUFEMyhsb25nLCAiY2FjaGVmbHVzaCIsIHVuc2lnbmVkIGxvbmcsIGFkZHIsCiAgICAgICAgICAgICAgICAgIGludCwgbmJ5dGVzLCBpbnQsIGNhY2hlKTsKICAgIFZHXyAoZGlzY2FyZF90cmFuc2xhdGlvbnMpICgoQWRkcilBUkcxLCAoVUxvbmcpIEFSRzIsCkBAIC0xMTAzLDcgKzExMDYsNyBAQAogUFJFKHN5c19zZXRfZGF0YXBsYW5lKQogewogICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgUFJJTlQoInN5c19zZXRfZGF0YXBsYW5lICggJWxkICkiLCBBUkcxKTsKKyAgUFJJTlQoInN5c19zZXRfZGF0YXBsYW5lICggJWx1ICkiLCBBUkcxKTsKICAgUFJFX1JFR19SRUFEMShsb25nLCAic2V0X2RhdGFwbGFuZSIsIHVuc2lnbmVkIGxvbmcsIGZsYWcpOwogfQogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAteDg2LWRhcndpbi5jIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXg4Ni1kYXJ3aW4uYwppbmRleCA0NWYwYWRmLi5hOTI4MmVlIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAteDg2LWRhcndpbi5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC14ODYtZGFyd2luLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgQXBwbGUgSW5jLgorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgQXBwbGUgSW5jLgogICAgICAgR3JlZyBQYXJrZXIgIGdwYXJrZXJAYXBwbGUuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQxMiw3ICs0MTIsNyBAQAogICAgICAgb3V0IGp1c3QgdGhlIHJlbGV2YW50IHBhcnRzLiAgSGVuY2U6ICovCiAjICBpZiBEQVJXSU5fVkVSUyA8PSBEQVJXSU5fMTBfNwogICAgQm9vbCBpc19yZXVzZSA9IHJldXNlICE9IDA7Ci0jICBlbGlmIERBUldJTl9WRVJTID09IERBUldJTl8xMF84IHx8IERBUldJTl9WRVJTID09IERBUldJTl8xMF85IHx8IERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAorIyAgZWxpZiBEQVJXSU5fVkVSUyA+IERBUldJTl8xMF83CiAgICBCb29sIGlzX3JldXNlID0gKHJldXNlICYgMHgyMDAwMCAvKiA9PSBXUV9GTEFHX1RIUkVBRF9SRVVTRSAqLykgIT0gMDsKICMgIGVsc2UKICMgICAgZXJyb3IgIlVuc3VwcG9ydGVkIERhcndpbiB2ZXJzaW9uIgpAQCAtNDI5LDYgKzQyOSw4IEBACiAgICAgICBVV29yZCBtYWdpY19kZWx0YSA9IDB4NDg7CiAjICAgICBlbGlmIERBUldJTl9WRVJTID09IERBUldJTl8xMF85IHx8IERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAogICAgICAgVVdvcmQgbWFnaWNfZGVsdGEgPSAweEIwOworIyAgICAgZWxpZiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfMTEKKyAgICAgIFVXb3JkIG1hZ2ljX2RlbHRhID0gMHgxMDA7CiAjICAgICBlbHNlCiAjICAgICAgIGVycm9yICJtYWdpY19kZWx0YTogdG8gYmUgY29tcHV0ZWQgb24gbmV3IE9TIHZlcnNpb24iCiAgICAgICAgIC8vIG1hZ2ljX2RlbHRhID0gdHN0LT5vc19zdGF0ZS5wdGhyZWFkIC0gc2VsZgpAQCAtNDQ0LDcgKzQ0Niw3IEBACiAKICAgICAgIHRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CiAKLSAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgid3F0aHJlYWRfaGlqYWNrIHJldXNlICVzOiB0aWQgJWQsIHRzdCAlcCwgIgorICAgICAgaWYgKDApIFZHXyhwcmludGYpKCJ3cXRocmVhZF9oaWphY2sgcmV1c2UgJXM6IHRpZCAldSwgdHN0ICVwLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgInRzdC0+b3Nfc3RhdGUucHRocmVhZCAlI2x4LCBzZWxmICUjbHhcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdHN0LT5vc19zdGF0ZS5wdGhyZWFkID09IHNlbGYgPyAiU0FNRSIgOiAiRElGRiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkLCB0c3QsIHRzdC0+b3Nfc3RhdGUucHRocmVhZCwgc2VsZik7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAteDg2LWxpbnV4LmMgYi9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAteDg2LWxpbnV4LmMKaW5kZXggZTA4YWY3Ni4uMjRkN2RjMSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXg4Ni1saW51eC5jCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC14ODYtbGludXguYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE5NSw3ICsxOTUsNyBAQAogCiAvKiAKICAgIFdoZW4gYSBjbGllbnQgY2xvbmVzLCB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIG5ldyB0aHJlYWQuICBUaGlzIG1lYW5zOgotICAgMS4gYWxsb2NhdGUgYSBUaHJlYWRJZCtUaHJlYWRTdGF0ZStzdGFjayBmb3IgdGhlIHRoZSB0aHJlYWQKKyAgIDEuIGFsbG9jYXRlIGEgVGhyZWFkSWQrVGhyZWFkU3RhdGUrc3RhY2sgZm9yIHRoZSB0aHJlYWQKIAogICAgMi4gaW5pdGlhbGl6ZSB0aGUgdGhyZWFkJ3MgbmV3IFZDUFUgc3RhdGUKIApAQCAtMjg2LDcgKzI4Niw3IEBACiAKICAgIGlmIChmbGFncyAmIFZLSV9DTE9ORV9TRVRUTFMpIHsKICAgICAgIGlmIChkZWJ1ZykKLQkgVkdfKHByaW50ZikoImNsb25lIGNoaWxkIGhhcyBTRVRUTFM6IHRscyBpbmZvIGF0ICVwOiBpZHg9JWQgIgorCSBWR18ocHJpbnRmKSgiY2xvbmUgY2hpbGQgaGFzIFNFVFRMUzogdGxzIGluZm8gYXQgJXA6IGlkeD0ldSAiCiAgICAgICAgICAgICAgICAgICAgICAiYmFzZT0lI2x4IGxpbWl0PSV4OyBlc3A9JSN4IGZzPSV4IGdzPSV4XG4iLAogCQkgICAgIHRsc2luZm8sIHRsc2luZm8tPmVudHJ5X251bWJlciwgCiAgICAgICAgICAgICAgICAgICAgICB0bHNpbmZvLT5iYXNlX2FkZHIsIHRsc2luZm8tPmxpbWl0LApAQCAtMzk2LDcgKzM5Niw3IEBACiAgICB2Z19hc3NlcnQoOCA9PSBzaXplb2YoVmV4R3Vlc3RYODZTZWdEZXNjcikpOwogCiAgICBpZiAoMCkKLSAgICAgIFZHXyhwcmludGYpKCJ0cmFuc2xhdGVfdG9faHdfZm9ybWF0OiBiYXNlICUjbHgsIGxpbWl0ICVkXG4iLAorICAgICAgVkdfKHByaW50ZikoInRyYW5zbGF0ZV90b19od19mb3JtYXQ6IGJhc2UgJSNseCwgbGltaXQgJXVcbiIsCiAgICAgICAgICAgICAgICAgICBpbm4tPmJhc2VfYWRkciwgaW5uLT5saW1pdCApOwogCiAgICAvKiBBbGxvdyBMRFRzIHRvIGJlIGNsZWFyZWQgYnkgdGhlIHVzZXIuICovCkBAIC01MjAsNyArNTIwLDcgQEAKICAgIFVDaGFyKiBsZHQ7CiAKICAgIGlmICgwKQotICAgICAgVkdfKHByaW50ZikoInJlYWRfbGR0OiB0aWQgPSAlZCwgcHRyID0gJXAsIGJ5dGVjb3VudCA9ICVkXG4iLAorICAgICAgVkdfKHByaW50ZikoInJlYWRfbGR0OiB0aWQgPSAldSwgcHRyID0gJXAsIGJ5dGVjb3VudCA9ICV1XG4iLAogICAgICAgICAgICAgICAgICAgdGlkLCBwdHIsIGJ5dGVjb3VudCApOwogCiAgICB2Z19hc3NlcnQoc2l6ZW9mKEhXb3JkKSA9PSBzaXplb2YoVmV4R3Vlc3RYODZTZWdEZXNjciopKTsKQEAgLTU1Myw4ICs1NTMsOCBAQAogICAgdmtpX21vZGlmeV9sZHRfdCogbGR0X2luZm87IAogCiAgICBpZiAoMCkKLSAgICAgIFZHXyhwcmludGYpKCJ3cml0ZV9sZHQ6IHRpZCA9ICVkLCBwdHIgPSAlcCwgIgotICAgICAgICAgICAgICAgICAgImJ5dGVjb3VudCA9ICVkLCBvbGRtb2RlID0gJWRcbiIsCisgICAgICBWR18ocHJpbnRmKSgid3JpdGVfbGR0OiB0aWQgPSAldSwgcHRyID0gJXAsICIKKyAgICAgICAgICAgICAgICAgICJieXRlY291bnQgPSAldSwgb2xkbW9kZSA9ICVkXG4iLAogICAgICAgICAgICAgICAgICAgdGlkLCBwdHIsIGJ5dGVjb3VudCwgb2xkbW9kZSApOwogCiAgICB2Z19hc3NlcnQoOCA9PSBzaXplb2YoVmV4R3Vlc3RYODZTZWdEZXNjcikpOwpAQCAtODA4LDcgKzgwOCw3IEBACiAgICAgICBhNCA9IGFyZ19zdHJ1Y3RbM107CiAgICAgICBhNSA9IGFyZ19zdHJ1Y3RbNF07CiAKLSAgICAgIFBSSU5UKCJvbGRfc2VsZWN0ICggJWQsICUjeCwgJSN4LCAlI3gsICUjeCApIiwgYTEsYTIsYTMsYTQsYTUpOworICAgICAgUFJJTlQoIm9sZF9zZWxlY3QgKCAlZCwgJSN4LCAlI3gsICUjeCwgJSN4ICkiLCAoSW50KWExLGEyLGEzLGE0LGE1KTsKICAgICAgIGlmIChhMiAhPSAoQWRkcilOVUxMKQogICAgICAgICAgUFJFX01FTV9SRUFEKCAib2xkX3NlbGVjdChyZWFkZmRzKSIsICAgYTIsIGExLzggLyogX19GRF9TRVRTSVpFLzggKi8gKTsKICAgICAgIGlmIChhMyAhPSAoQWRkcilOVUxMKQpAQCAtMTAyMSw3ICsxMDIxLDcgQEAKIAogUFJFKHN5c19tb2RpZnlfbGR0KQogewotICAgUFJJTlQoInN5c19tb2RpZnlfbGR0ICggJWxkLCAlI2x4LCAlbGQgKSIsIEFSRzEsQVJHMixBUkczKTsKKyAgIFBSSU5UKCJzeXNfbW9kaWZ5X2xkdCAoICVsZCwgJSNseCwgJWx1ICkiLCBTQVJHMSwgQVJHMiwgQVJHMyk7CiAgICBQUkVfUkVHX1JFQUQzKGludCwgIm1vZGlmeV9sZHQiLCBpbnQsIGZ1bmMsIHZvaWQgKiwgcHRyLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBieXRlY291bnQpOwogICAgCkBAIC0xMDczLDkgKzEwNzMsMTAgQEAKIC8vIHNwYWNlLCBhbmQgd2Ugc2hvdWxkIHRoZXJlZm9yZSBub3QgY2hlY2sgYW55dGhpbmcgaXQgcG9pbnRzIHRvLgogUFJFKHN5c19wdHJhY2UpCiB7Ci0gICBQUklOVCgic3lzX3B0cmFjZSAoICVsZCwgJWxkLCAlI2x4LCAlI2x4ICkiLCBBUkcxLEFSRzIsQVJHMyxBUkc0KTsKKyAgIFBSSU5UKCJzeXNfcHRyYWNlICggJWxkLCAlbGQsICUjbHgsICUjbHggKSIsIFNBUkcxLCBTQVJHMiwgQVJHMywgQVJHNCk7CiAgICBQUkVfUkVHX1JFQUQ0KGludCwgInB0cmFjZSIsIAotICAgICAgICAgICAgICAgICBsb25nLCByZXF1ZXN0LCBsb25nLCBwaWQsIGxvbmcsIGFkZHIsIGxvbmcsIGRhdGEpOworICAgICAgICAgICAgICAgICBsb25nLCByZXF1ZXN0LCBsb25nLCBwaWQsIHVuc2lnbmVkIGxvbmcsIGFkZHIsCisgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcsIGRhdGEpOwogICAgc3dpdGNoIChBUkcxKSB7CiAgICBjYXNlIFZLSV9QVFJBQ0VfUEVFS1RFWFQ6CiAgICBjYXNlIFZLSV9QVFJBQ0VfUEVFS0RBVEE6CkBAIC0xMTk2LDggKzExOTcsOCBAQAogICAgYTUgPSBhcmdzWzUtMV07CiAgICBhNiA9IGFyZ3NbNi0xXTsKIAotICAgUFJJTlQoIm9sZF9tbWFwICggJSNseCwgJWxsdSwgJWxkLCAlbGQsICVsZCwgJWxkICkiLAotICAgICAgICAgYTEsIChVTG9uZylhMiwgYTMsIGE0LCBhNSwgYTYgKTsKKyAgIFBSSU5UKCJvbGRfbW1hcCAoICUjbHgsICVsdSwgJWxkLCAlbGQsICVsZCwgJWxkICkiLAorICAgICAgICAgYTEsIGEyLCAoV29yZClhMywgKFdvcmQpYTQsIChXb3JkKWE1LCAoV29yZClhNiApOwogCiAgICByID0gTUxfKGdlbmVyaWNfUFJFX3N5c19tbWFwKSggdGlkLCBhMSwgYTIsIGEzLCBhNCwgYTUsIChPZmY2NFQpYTYgKTsKICAgIFNFVF9TVEFUVVNfZnJvbV9TeXNSZXMocik7CkBAIC0xMjE0LDggKzEyMTUsOCBAQAogICAgLy8gcGFnZXNpemUgb3IgNEstc2l6ZSB1bml0cyBpbiBvZmZzZXQ/ICBGb3IgcHBjMzIvNjQtbGludXgsIHRoaXMgaXMKICAgIC8vIDRLLXNpemVkLiAgQXNzZXJ0IHRoYXQgdGhlIHBhZ2Ugc2l6ZSBpcyA0SyBoZXJlIGZvciBzYWZldHkuCiAgICB2Z19hc3NlcnQoVktJX1BBR0VfU0laRSA9PSA0MDk2KTsKLSAgIFBSSU5UKCJzeXNfbW1hcDIgKCAlI2x4LCAlbGx1LCAlbGQsICVsZCwgJWxkLCAlbGQgKSIsCi0gICAgICAgICBBUkcxLCAoVUxvbmcpQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNiApOworICAgUFJJTlQoInN5c19tbWFwMiAoICUjbHgsICVsdSwgJWx1LCAlbHUsICVsdSwgJWx1ICkiLAorICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSwgQVJHNiApOwogICAgUFJFX1JFR19SRUFENihsb25nLCAibW1hcDIiLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBzdGFydCwgdW5zaWduZWQgbG9uZywgbGVuZ3RoLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nLCBwcm90LCAgdW5zaWduZWQgbG9uZywgZmxhZ3MsCkBAIC0xMjMyLDcgKzEyMzMsNyBAQAogLy8gdGhpbmdzLCBldmVudHVhbGx5LCBJIHRoaW5rLiAgLS1uam4KIFBSRShzeXNfbHN0YXQ2NCkKIHsKLSAgIFBSSU5UKCJzeXNfbHN0YXQ2NCAoICUjbHgoJXMpLCAlI2x4ICkiLEFSRzEsKGNoYXIqKUFSRzEsQVJHMik7CisgICBQUklOVCgic3lzX2xzdGF0NjQgKCAlI2x4KCVzKSwgJSNseCApIiwgQVJHMSwgKEhDaGFyKilBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImxzdGF0NjQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICAgUFJFX01FTV9SQVNDSUlaKCAibHN0YXQ2NChmaWxlX25hbWUpIiwgQVJHMSApOwogICAgUFJFX01FTV9XUklURSggImxzdGF0NjQoYnVmKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQ2NCkgKTsKQEAgLTEyNDksNyArMTI1MCw3IEBACiBQUkUoc3lzX3N0YXQ2NCkKIHsKICAgIEZVU0VfQ09NUEFUSUJMRV9NQVlfQkxPQ0soKTsKLSAgIFBSSU5UKCJzeXNfc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsQVJHMSwoY2hhciopQVJHMSxBUkcyKTsKKyAgIFBSSU5UKCJzeXNfc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsIEFSRzEsIChIQ2hhciopQVJHMSwgQVJHMik7CiAgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzdGF0NjQiLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICAgUFJFX01FTV9SQVNDSUlaKCAic3RhdDY0KGZpbGVfbmFtZSkiLCBBUkcxICk7CiAgICBQUkVfTUVNX1dSSVRFKCAic3RhdDY0KGJ1ZikiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0NjQpICk7CkBAIC0xMjYzLDkgKzEyNjQsMTIgQEAKIFBSRShzeXNfZnN0YXRhdDY0KQogewogICAgRlVTRV9DT01QQVRJQkxFX01BWV9CTE9DSygpOwotICAgUFJJTlQoInN5c19mc3RhdGF0NjQgKCAlbGQsICUjbHgoJXMpLCAlI2x4ICkiLEFSRzEsQVJHMiwoY2hhciopQVJHMixBUkczKTsKLSAgIFBSRV9SRUdfUkVBRDMobG9uZywgImZzdGF0YXQ2NCIsCi0gICAgICAgICAgICAgICAgIGludCwgZGZkLCBjaGFyICosIGZpbGVfbmFtZSwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOworICAgLy8gQVJHNCA9ICBpbnQgZmxhZ3M7ICBGbGFncyBhcmUgb3InZWQgdG9nZXRoZXIsIHRoZXJlZm9yZSB3cml0aW5nIHRoZW0KKyAgIC8vIGFzIGEgaGV4IGNvbnN0YW50IGlzIG1vcmUgbWVhbmluZ2Z1bC4KKyAgIFBSSU5UKCJzeXNfZnN0YXRhdDY0ICggJWxkLCAlI2x4KCVzKSwgJSNseCwgJSNseCApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCAoSENoYXIqKUFSRzIsIEFSRzMsIEFSRzQpOworICAgUFJFX1JFR19SRUFENChsb25nLCAiZnN0YXRhdDY0IiwKKyAgICAgICAgICAgICAgICAgaW50LCBkZmQsIGNoYXIgKiwgZmlsZV9uYW1lLCBzdHJ1Y3Qgc3RhdDY0ICosIGJ1ZiwgaW50LCBmbGFncyk7CiAgICBQUkVfTUVNX1JBU0NJSVooICJmc3RhdGF0NjQoZmlsZV9uYW1lKSIsIEFSRzIgKTsKICAgIFBSRV9NRU1fV1JJVEUoICJmc3RhdGF0NjQoYnVmKSIsIEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQ2NCkgKTsKIH0KQEAgLTEyNzcsNyArMTI4MSw3IEBACiAKIFBSRShzeXNfZnN0YXQ2NCkKIHsKLSAgIFBSSU5UKCJzeXNfZnN0YXQ2NCAoICVsZCwgJSNseCApIixBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c19mc3RhdDY0ICggJWx1LCAlI2x4ICkiLCBBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIobG9uZywgImZzdGF0NjQiLCB1bnNpZ25lZCBsb25nLCBmZCwgc3RydWN0IHN0YXQ2NCAqLCBidWYpOwogICAgUFJFX01FTV9XUklURSggImZzdGF0NjQoYnVmKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQ2NCkgKTsKIH0KQEAgLTEzMDEsNyArMTMwNSw3IEBACiAgICAgICB0aGF0IHRha2VzIGEgcG9pbnRlciB0byB0aGUgc2lnbmFsIG1hc2sgc28gc3VwcG9ydHMgbW9yZSBzaWduYWxzLgogICAgICovCiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKLSAgIFBSSU5UKCJzeXNfc2lnc3VzcGVuZCAoICVsZCwgJWxkLCAlbGQgKSIsIEFSRzEsQVJHMixBUkczICk7CisgICBQUklOVCgic3lzX3NpZ3N1c3BlbmQgKCAlbGQsICVsZCwgJWx1ICkiLCBTQVJHMSwgU0FSRzIsIEFSRzMgKTsKICAgIFBSRV9SRUdfUkVBRDMoaW50LCAic2lnc3VzcGVuZCIsCiAgICAgICAgICAgICAgICAgIGludCwgaGlzdG9yeTAsIGludCwgaGlzdG9yeTEsCiAgICAgICAgICAgICAgICAgIHZraV9vbGRfc2lnc2V0X3QsIG1hc2spOwpAQCAtMTMyMSw3ICsxMzI1LDcgQEAKIAogUFJFKHN5c192bTg2KQogewotICAgUFJJTlQoInN5c192bTg2ICggJWxkLCAlI2x4ICkiLCBBUkcxLEFSRzIpOworICAgUFJJTlQoInN5c192bTg2ICggJWx1LCAlI2x4ICkiLCBBUkcxLCBBUkcyKTsKICAgIFBSRV9SRUdfUkVBRDIoaW50LCAidm04NiIsIHVuc2lnbmVkIGxvbmcsIGZuLCBzdHJ1Y3Qgdm04NnBsdXNfc3RydWN0ICosIHY4Nik7CiAgICBpZiAoQVJHMSA9PSBWS0lfVk04Nl9FTlRFUiB8fCBBUkcxID09IFZLSV9WTTg2X0VOVEVSX05PX0JZUEFTUykKICAgICAgIFBSRV9NRU1fV1JJVEUoICJ2bTg2KHY4NikiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV92bTg2cGx1c19zdHJ1Y3QpKTsKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC14ODYtc29sYXJpcy5jIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXg4Ni1zb2xhcmlzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ1NzcyOQotLS0gL2Rldi9udWxsCisrKyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC14ODYtc29sYXJpcy5jCkBAIC0wLDAgKzEsOTkwIEBACisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gUGxhdGZvcm0tc3BlY2lmaWMgc3lzY2FsbHMgc3R1ZmYuICAgICAgc3lzd3JhcC14ODYtc29sYXJpcy5jIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNSBQZXRyIFBhdmx1CisgICAgICBzZXR1cEBkYWdvYmFoLmN6CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorCisjaW5jbHVkZSAibGlidmV4X2d1ZXN0X29mZnNldHMuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIKKyNpbmNsdWRlICJwdWJfY29yZV92a2kuaCIKKyNpbmNsdWRlICJwdWJfY29yZV90aHJlYWRzdGF0ZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2FzcGFjZW1nci5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3hhcnJheS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2NsaWVudHN0YXRlLmgiCisjaW5jbHVkZSAicHViX2NvcmVfZGVidWdsb2cuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9saWJjYXNzZXJ0LmgiCisjaW5jbHVkZSAicHViX2NvcmVfbGliY2Jhc2UuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9saWJjZmlsZS5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNwcmludC5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX2xpYmNzaWduYWwuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9tYWNoaW5lLmgiICAgICAgICAgICAvLyBWR18oZ2V0X1NQKQorI2luY2x1ZGUgInB1Yl9jb3JlX21hbGxvY2ZyZWUuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9vcHRpb25zLmgiCisjaW5jbHVkZSAicHViX2NvcmVfdG9vbGlmYWNlLmgiCisjaW5jbHVkZSAicHViX2NvcmVfc2lnbmFscy5oIgorI2luY2x1ZGUgInB1Yl9jb3JlX3N5c2NhbGwuaCIKKyNpbmNsdWRlICJwdWJfY29yZV9zeXN3cmFwLmgiCisKKyNpbmNsdWRlICJwcml2X3R5cGVzX25fbWFjcm9zLmgiCisjaW5jbHVkZSAicHJpdl9zeXN3cmFwLWdlbmVyaWMuaCIKKyNpbmNsdWRlICJwcml2X3N5c3dyYXAtc29sYXJpcy5oIgorCisvKiBDYWxsIGYoYXJnMSksIGJ1dCBmaXJzdCBzd2l0Y2ggc3RhY2tzLCB1c2luZyAnc3RhY2snIGFzIHRoZSBuZXcgc3RhY2ssIGFuZAorICAgdXNlICdyZXRhZGRyJyBhcyBmJ3MgcmV0dXJuLXRvIGFkZHJlc3MuICBBbHNvLCBjbGVhciBhbGwgdGhlIGludGVnZXIKKyAgIHJlZ2lzdGVycyBiZWZvcmUgZW50ZXJpbmcgZi4gKi8KK19fYXR0cmlidXRlX18oKG5vcmV0dXJuKSkKK3ZvaWQgTUxfKGNhbGxfb25fbmV3X3N0YWNrXzBfMSkoQWRkciBzdGFjaywgICAgICAgICAgICAgLyogNCglZXNwKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyIHJldGFkZHIsICAgICAgICAgICAvKiA4KCVlc3ApICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpmKShXb3JkKSwgICAgICAgIC8qIDEyKCVlc3ApICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmQgYXJnMSk7ICAgICAgICAgICAgIC8qIDE2KCVlc3ApICovCitfX2FzbV9fICgKKyIudGV4dFxuIgorIi5nbG9ibCB2Z01vZHVsZUxvY2FsX2NhbGxfb25fbmV3X3N0YWNrXzBfMVxuIgorInZnTW9kdWxlTG9jYWxfY2FsbF9vbl9uZXdfc3RhY2tfMF8xOlxuIgorIiAgIG1vdmwgICVlc3AsICVlc2lcbiIgICAgICAgICAvKiByZW1lbWJlciBvbGQgc3RhY2sgcG9pbnRlciAqLworIiAgIG1vdmwgIDQoJWVzaSksICVlc3BcbiIgICAgICAvKiBzZXQgc3RhY2sgKi8KKyIgICBwdXNobCAkMFxuIiAgICAgICAgICAgICAgICAgLyogYWxpZ24gc3RhY2sgKi8KKyIgICBwdXNobCAkMFxuIiAgICAgICAgICAgICAgICAgLyogYWxpZ24gc3RhY2sgKi8KKyIgICBwdXNobCAkMFxuIiAgICAgICAgICAgICAgICAgLyogYWxpZ24gc3RhY2sgKi8KKyIgICBwdXNobCAxNiglZXNpKVxuIiAgICAgICAgICAgLyogYXJnMSB0byBzdGFjayAqLworIiAgIHB1c2hsIDgoJWVzaSlcbiIgICAgICAgICAgICAvKiByZXRhZGRyIHRvIHN0YWNrICovCisiICAgcHVzaGwgMTIoJWVzaSlcbiIgICAgICAgICAgIC8qIGYgdG8gc3RhY2sgKi8KKyIgICBtb3ZsICAkMCwgJWVheFxuIiAgICAgICAgICAgLyogemVybyBhbGwgR1AgcmVncyAqLworIiAgIG1vdmwgICQwLCAlZWJ4XG4iCisiICAgbW92bCAgJDAsICVlY3hcbiIKKyIgICBtb3ZsICAkMCwgJWVkeFxuIgorIiAgIG1vdmwgICQwLCAlZXNpXG4iCisiICAgbW92bCAgJDAsICVlZGlcbiIKKyIgICBtb3ZsICAkMCwgJWVicFxuIgorIiAgIHJldFxuIiAgICAgICAgICAgICAgICAgICAgICAvKiBqdW1wIHRvIGYgKi8KKyIgICB1ZDJcbiIgICAgICAgICAgICAgICAgICAgICAgLyogc2hvdWxkIG5ldmVyIGdldCBoZXJlICovCisiLnByZXZpb3VzXG4iCispOworCisvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBzZXR1cCBhIGNvbnRleHQgb2YgYSBuZXcgVmFsZ3JpbmQgdGhyZWFkICh3aGljaAorICAgd2lsbCBydW4gdGhlIGNsaWVudCBjb2RlKS4gKi8KK3ZvaWQgTUxfKHNldHVwX3N0YXJ0X3RocmVhZF9jb250ZXh0KShUaHJlYWRJZCB0aWQsIHZraV91Y29udGV4dF90ICp1YykKK3sKKyAgIFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgVVdvcmQgKnN0YWNrID0gKFVXb3JkKil0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2luaXRfU1A7CisgICBVU2hvcnQgY3MsIGRzLCBzcywgZXMsIGZzLCBnczsKKworICAgVkdfKG1lbXNldCkodWMsIDAsIHNpemVvZigqdWMpKTsKKyAgIHVjLT51Y19mbGFncyA9IFZLSV9VQ19DUFUgfCBWS0lfVUNfU0lHTUFTSzsKKworICAgLyogU3RhcnQgdGhlIHRocmVhZCB3aXRoIGV2ZXJ5dGhpbmcgYmxvY2tlZC4gKi8KKyAgIFZHXyhzaWdmaWxsc2V0KSgmdWMtPnVjX3NpZ21hc2spOworCisgICAvKiBTZXQgdXAgdGhlIHN0YWNrLCBpdCBzaG91bGQgYmUgYWx3YXlzIDE2LWJ5dGUgYWxpZ25lZCBiZWZvcmUgZG9pbmcKKyAgICAgIGEgZnVuY3Rpb24gY2FsbCwgaS5lLiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIGFsc28gMTYtYnl0ZSBhbGlnbmVkLiAqLworICAgdmdfYXNzZXJ0KFZHX0lTXzE2X0FMSUdORUQoc3RhY2spKTsKKyAgIHN0YWNrIC09IDE7CisgICBzdGFja1swXSA9IDA7IC8qIGJvZ3VzIHJldHVybiB2YWx1ZSAqLworICAgc3RhY2tbMV0gPSAoVVdvcmQpdHN0OyAvKiB0aGUgcGFyYW1ldGVyICovCisKKyAgIC8qIFNldCB1cCB0aGUgcmVnaXN0ZXJzLiAqLworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FSVBdID0gKFVXb3JkKU1MXyhzdGFydF90aHJlYWRfTk9SRVRVUk4pOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9VRVNQXSA9IChVV29yZClzdGFjazsKKworICAgLyogQ29weSBzZWdtZW50IHJlZ2lzdGVycy4gKi8KKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgIm1vdncgJSVjcywgJVtjc11cbiIKKyAgICAgICJtb3Z3ICUlZHMsICVbZHNdXG4iCisgICAgICAibW92dyAlJXNzLCAlW3NzXVxuIgorICAgICAgIm1vdncgJSVlcywgJVtlc11cbiIKKyAgICAgICJtb3Z3ICUlZnMsICVbZnNdXG4iCisgICAgICAibW92dyAlJWdzLCAlW2dzXVxuIgorICAgICAgOiBbY3NdICI9bSIgKGNzKSwgW2RzXSAiPW0iIChkcyksIFtzc10gIj1tIiAoc3MpLCBbZXNdICI9bSIgKGVzKSwKKyAgICAgICAgW2ZzXSAiPW0iIChmcyksIFtnc10gIj1tIiAoZ3MpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfQ1NdID0gY3M7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0RTXSA9IGRzOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9TU10gPSBzczsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRVNdID0gZXM7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0ZTXSA9IGZzOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9HU10gPSBnczsKK30KKworLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIHBhcnQgb2YgVkdfKHNhdmVfY29udGV4dCkuICovCit2b2lkIE1MXyhzYXZlX21hY2hpbmVfY29udGV4dCkoVGhyZWFkSWQgdGlkLCB2a2lfdWNvbnRleHRfdCAqdWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZVBhcnQgcGFydCkKK3sKKyAgIFRocmVhZFN0YXRlICp0c3QgPSBWR18oZ2V0X1RocmVhZFN0YXRlKSh0aWQpOworICAgc3RydWN0IHZraV9mcGNoaXBfc3RhdGUgKmZzCisgICAgICA9ICZ1Yy0+dWNfbWNvbnRleHQuZnByZWdzLmZwX3JlZ19zZXQuZnBjaGlwX3N0YXRlOworICAgU2l6ZVQgaTsKKworICAgLyogQ1BVICovCisgICAvKiBDb21tb24gcmVnaXN0ZXJzICovCisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VJUF0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VJUDsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfeDg2X0VJUCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VJUF0sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FQVhdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9FQVg7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX3g4Nl9FQVgsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FQVhdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUJYXSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfRUJYOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIE9GRlNFVF94ODZfRUJYLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUJYXSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VDWF0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VDWDsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfeDg2X0VDWCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VDWF0sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FRFhdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9FRFg7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX3g4Nl9FRFgsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FRFhdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUJQXSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfRUJQOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIE9GRlNFVF94ODZfRUJQLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUJQXSwgc2l6ZW9mKFVXb3JkKSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VTSV0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VTSTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfeDg2X0VTSSwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VTSV0sIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FREldID0gdHN0LT5hcmNoLnZleC5ndWVzdF9FREk7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX3g4Nl9FREksCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FREldLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfVUVTUF0gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VTUDsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfeDg2X0VTUCwKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1VFU1BdLCBzaXplb2YoVVdvcmQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRVNQXSA9IDA7CisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FU1BdLAorICAgICAgICAgICAgc2l6ZW9mKFVXb3JkKSk7CisKKyAgIC8qIEVSUiBhbmQgVFJBUE5PICovCisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VSUl0gPSAwOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRVJSXSwKKyAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9UUkFQTk9dID0gMDsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1RSQVBOT10sCisgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKworICAgLyogU2VnbWVudCByZWdpc3RlcnMgKi8KKyAgIC8qIE5vdGUgdGhhdCBzZWdtZW50IHJlZ2lzdGVycyBhcmUgMTZiIGluIFZFWCwgYnV0IDMyYiBpbiBtY29udGV4dC4gIFRodXMKKyAgICAgIHdlIHRlbGwgYSB0b29sIHRoYXQgdGhlIGxvd2VyIDE2IGJpdHMgd2VyZSBjb3BpZWQgYW5kIHRoYXQgdGhlIGhpZ2hlciAxNgorICAgICAgYml0cyB3ZXJlIHNldCAodG8gemVybykuICAoVGhpcyBhc3N1bWVzIGEgbGl0dGxlLWVuZGlhbgorICAgICAgYXJjaGl0ZWN0dXJlLikgKi8KKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfQ1NdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9DUzsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfeDg2X0NTLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfQ1NdLCBzaXplb2YoVVNob3J0KSk7CisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLAorICAgICAgICAgICAgKEFkZHIpKCZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0NTXSkgKyAyLCBzaXplb2YoVVNob3J0KSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0RTXSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfRFM7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX3g4Nl9EUywKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0RTXSwgc2l6ZW9mKFVTaG9ydCkpOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgIChBZGRyKSgmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9EU10pICsgMiwgc2l6ZW9mKFVTaG9ydCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9TU10gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X1NTOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIE9GRlNFVF94ODZfU1MsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9TU10sIHNpemVvZihVU2hvcnQpKTsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAoQWRkcikoJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfU1NdKSArIDIsIHNpemVvZihVU2hvcnQpKTsKKyAgIHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRVNdID0gdHN0LT5hcmNoLnZleC5ndWVzdF9FUzsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBPRkZTRVRfeDg2X0VTLAorICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRVNdLCBzaXplb2YoVVNob3J0KSk7CisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLAorICAgICAgICAgICAgKEFkZHIpKCZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VTXSkgKyAyLCBzaXplb2YoVVNob3J0KSk7CisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0ZTXSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfRlM7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgT0ZGU0VUX3g4Nl9GUywKKyAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0ZTXSwgc2l6ZW9mKFVTaG9ydCkpOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgIChBZGRyKSgmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9GU10pICsgMiwgc2l6ZW9mKFVTaG9ydCkpOworICAgdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9HU10gPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X0dTOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIE9GRlNFVF94ODZfR1MsCisgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9HU10sIHNpemVvZihVU2hvcnQpKTsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAoQWRkcikoJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfR1NdKSArIDIsIHNpemVvZihVU2hvcnQpKTsKKworICAgLyogSGFuZGxlIGVmbGFncyAob3B0aW1pc3RpY2FsbHkgbWFrZSBhbGwgZmxhZ3MgZGVmaW5lZCkuICovCisgICB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VGTF0gPQorICAgICAgTGliVkVYX0d1ZXN0WDg2X2dldF9lZmxhZ3MoJnRzdC0+YXJjaC52ZXgpOworICAgVkdfVFJBQ0socG9zdF9tZW1fd3JpdGUsIHBhcnQsIHRpZCwgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUZMXSwKKyAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgLyogVGhlIExpYlZFWF9HdWVzdFg4Nl9nZXRfZWZsYWdzKCkgY2FsbCBjYWxjdWxhdGVzIGVmbGFncyB2YWx1ZSBmcm9tIHRoZQorICAgICAgQ0NfT1AsIENDX0RFUDEsIENDX0RFUDIsIENDX05ERVAsIERGTEFHLCBJREZMQUcgYW5kIEFDRkxBRyBndWVzdCBzdGF0ZQorICAgICAgdmFsdWVzLiAgVGhlICpGTEFHIHZhbHVlcyByZXByZXNlbnQgb25lLWJpdCBpbmZvcm1hdGlvbiBhbmQgYXJlIHNhdmVkCisgICAgICB3aXRob3V0IGxvc3Mgb2YgcHJlY2lzaW9uIGludG8gZWZsYWdzLiAgSG93ZXZlciB3aGVuIENDXyogdmFsdWVzIGFyZQorICAgICAgY29udmVydGVkIGludG8gZWZsYWdzIHRoZW4gcHJlY2lzaW9uIGlzIGxvc3QuICBXaGF0IHdlIGRvIGhlcmUgaXMgdG8KKyAgICAgIHNhdmUgdW5tb2RpZmllZCBDQ18qIHZhbHVlcyBpbnRvIHVudXNlZCB1Y29udGV4dCBtZW1iZXJzICh0aGUgJ2xvbmcKKyAgICAgIHVjX2ZpbGxlcls1XSBhbmQgJ2ludCBmcy0+X19wYWRbMl0nIGFycmF5cykgc28gd2UgY2FuIHRoZW4gcmVzdG9yZSB0aGUKKyAgICAgIGNvbnRleHQgaW4gTUxfKHJlc3RvcmVfbWFjaGluZV9jb250ZXh0KSgpIHdpdGhvdXQgdGhlIGxvc3Mgb2YgcHJlY2lzaW9uLgorICAgICAgVGhpcyBpbXBvc2VzIGEgcmVxdWlyZW1lbnQgb24gY2xpZW50IHByb2dyYW1zIHRvIG5vdCB1c2UgdGhlc2UgdHdvCisgICAgICBtZW1iZXJzLiBMdWNraWx5IHRoaXMgaXMgbmV2ZXIgYSBjYXNlIGluIFNvbGFyaXMtZ2F0ZSBwcm9ncmFtcyBhbmQKKyAgICAgIGxpYnJhcmllcy4gKi8KKyAgIC8qIENDX09QIGFuZCBDQ19OREVQIGFyZSBhbHdheXMgZGVmaW5lZCwgYnV0IHdlIGRvbid0IHdhbnQgdG8gdGVsbCBhIHRvb2wKKyAgICAgIHRoYXQgd2UganVzdCBkZWZpbmVkIHVjX2ZpbGxlclswLDFdLiAgVGhpcyBoZWxwcyBpZiBzb21lb25lIHVzZXMgYW4KKyAgICAgIHVuaW5pdGlhbGl6ZWQgdWNvbnRleHQgYW5kIHRyaWVzIHRvIHJlYWQgKHVzZSkgdWNfZmlsbGVyWzAsMV0uICBNZW1jaGVjaworICAgICAgaW4gc3VjaCBhIGNhc2Ugc2hvdWxkIGRldGVjdCB0aGlzIGVycm9yLiAqLworICAgVktJX1VDX0dVRVNUX0NDX09QKHVjKSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfT1A7CisgICBWS0lfVUNfR1VFU1RfQ0NfTkRFUCh1YykgPSB0c3QtPmFyY2gudmV4Lmd1ZXN0X0NDX05ERVA7CisgICAvKiBXZSB3YW50IHRvIGNvcHkgc2hhZG93IHZhbHVlcyBvZiBDQ19ERVAxIGFuZCBDQ19ERVAyIHNvIHdlIGhhdmUgdG8gdGVsbAorICAgICAgYSB0b29sIGFib3V0IHRoaXMgY29weS4gKi8KKyAgIFZLSV9VQ19HVUVTVF9DQ19ERVAxKHVjKSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfREVQMTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLAorICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RYODZTdGF0ZSwgZ3Vlc3RfQ0NfREVQMSksCisgICAgICAgICAgICAoQWRkcikmVktJX1VDX0dVRVNUX0NDX0RFUDEodWMpLCBzaXplb2YoVVdvcmQpKTsKKyAgIFZLSV9VQ19HVUVTVF9DQ19ERVAyKHVjKSA9IHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfREVQMjsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLAorICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RYODZTdGF0ZSwgZ3Vlc3RfQ0NfREVQMiksCisgICAgICAgICAgICAoQWRkcikmVktJX1VDX0dVRVNUX0NDX0RFUDIodWMpLCBzaXplb2YoVVdvcmQpKTsKKyAgIC8qIE1ha2UgYW5vdGhlciBjb3B5IG9mIGVmbGFncy4gKi8KKyAgIFZLSV9VQ19HVUVTVF9FRkxBR1NfTkVHKHVjKSA9IH51Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VGTF07CisgICAvKiBDYWxjdWxhdGUgYSBjaGVja3N1bS4gKi8KKyAgIHsKKyAgICAgIFVJbnQgYnVmWzVdOworICAgICAgVUludCBjaGVja3N1bTsKKworICAgICAgYnVmWzBdID0gVktJX1VDX0dVRVNUX0NDX09QKHVjKTsKKyAgICAgIGJ1ZlsxXSA9IFZLSV9VQ19HVUVTVF9DQ19OREVQKHVjKTsKKyAgICAgIGJ1ZlsyXSA9IFZLSV9VQ19HVUVTVF9DQ19ERVAxKHVjKTsKKyAgICAgIGJ1ZlszXSA9IFZLSV9VQ19HVUVTVF9DQ19ERVAyKHVjKTsKKyAgICAgIGJ1Zls0XSA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUZMXTsKKyAgICAgIGNoZWNrc3VtID0gTUxfKGZsZXRjaGVyMzIpKChVU2hvcnQqKSZidWYsIHNpemVvZihidWYpIC8gc2l6ZW9mKFVTaG9ydCkpOworICAgICAgLyogU3RvcmUgdGhlIGNoZWNrc3VtLiAqLworICAgICAgVktJX1VDX0dVRVNUX0VGTEFHU19DSEVDS1NVTSh1YykgPSBjaGVja3N1bTsKKyAgIH0KKworICAgLyogRlBVICovCisgICAvKiB4ODcgKi8KKyAgIHZnX2Fzc2VydChzaXplb2YoZnMtPnN0YXRlKSA9PSAxMDgpOworICAgTGliVkVYX0d1ZXN0WDg2X2dldF94ODcoJnRzdC0+YXJjaC52ZXgsIChVQ2hhciopJmZzLT5zdGF0ZSk7CisKKyAgIC8qIEZsYWdzIGFuZCBjb250cm9sIHdvcmRzICovCisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmZnMtPnN0YXRlLCAyOCk7CisgICAvKiBTVCByZWdpc3RlcnMgKi8KKyAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgIEFkZHIgYWRkciA9IChBZGRyKSZmcy0+c3RhdGUgKyAyOCArIGkgKiAxMDsKKyAgICAgIC8qIHg4NyB1c2VzIDgwYiBGUCByZWdpc3RlcnMgYnV0IFZFWCB1c2VzIG9ubHkgNjRiIHJlZ2lzdGVycywgdGh1cyB3ZQorICAgICAgICAgaGF2ZSB0byBsaWUgaGVyZS4gOjwgKi8KKyAgICAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdFg4NlN0YXRlLAorICAgICAgICAgICAgICAgZ3Vlc3RfRlBSRUdbaV0pLCBhZGRyLCBzaXplb2YoVUxvbmcpKTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdFg4NlN0YXRlLAorICAgICAgICAgICAgICAgZ3Vlc3RfRlBSRUdbaV0pLCBhZGRyICsgOCwgc2l6ZW9mKFVTaG9ydCkpOworICAgICAgfQorCisgICAvKiBTdGF0dXMgd29yZCAoc3cpIGF0IGV4Y2VwdGlvbiAqLworICAgZnMtPnN0YXR1cyA9IDA7CisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmZnMtPnN0YXR1cywgc2l6ZW9mKGZzLT5zdGF0dXMpKTsKKworICAgLyogU1NFICovCisgICBmcy0+bXhjc3IgPSBMaWJWRVhfR3Vlc3RYODZfZ2V0X214Y3NyKCZ0c3QtPmFyY2gudmV4KTsKKyAgIFZHX1RSQUNLKHBvc3RfbWVtX3dyaXRlLCBwYXJ0LCB0aWQsIChBZGRyKSZmcy0+bXhjc3IsIHNpemVvZihmcy0+bXhjc3IpKTsKKworICAgLyogTVhDU1IgYXQgZXhjZXB0aW9uICovCisgICBmcy0+eHN0YXR1cyA9IDA7CisgICBWR19UUkFDSyhwb3N0X21lbV93cml0ZSwgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhzdGF0dXMsCisgICAgICAgICAgICBzaXplb2YoZnMtPnhzdGF0dXMpKTsKKworICAgLyogWE1NIHJlZ2lzdGVycyAqLworI2RlZmluZSBDT1BZX09VVF9YTU0oZGVzdCwgc3JjKSBcCisgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGRlc3QuX2xbMF0gPSBzcmNbMF07ICAgICAgXAorICAgICAgZGVzdC5fbFsxXSA9IHNyY1sxXTsgICAgICBcCisgICAgICBkZXN0Ll9sWzJdID0gc3JjWzJdOyAgICAgIFwKKyAgICAgIGRlc3QuX2xbM10gPSBzcmNbM107ICAgICAgXAorICAgfSB3aGlsZSAoMCkKKyAgIENPUFlfT1VUX1hNTShmcy0+eG1tWzBdLCB0c3QtPmFyY2gudmV4Lmd1ZXN0X1hNTTApOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsCisgICAgICAgICAgICBndWVzdF9YTU0wKSwgKEFkZHIpJmZzLT54bW1bMF0sIHNpemVvZihVMTI4KSk7CisgICBDT1BZX09VVF9YTU0oZnMtPnhtbVsxXSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU0xKTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdFg4NlN0YXRlLAorICAgICAgICAgICAgZ3Vlc3RfWE1NMSksIChBZGRyKSZmcy0+eG1tWzFdLCBzaXplb2YoVTEyOCkpOworICAgQ09QWV9PVVRfWE1NKGZzLT54bW1bMl0sIHRzdC0+YXJjaC52ZXguZ3Vlc3RfWE1NMik7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgb2Zmc2V0b2YoVmV4R3Vlc3RYODZTdGF0ZSwKKyAgICAgICAgICAgIGd1ZXN0X1hNTTIpLCAoQWRkcikmZnMtPnhtbVsyXSwgc2l6ZW9mKFUxMjgpKTsKKyAgIENPUFlfT1VUX1hNTShmcy0+eG1tWzNdLCB0c3QtPmFyY2gudmV4Lmd1ZXN0X1hNTTMpOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsCisgICAgICAgICAgICBndWVzdF9YTU0zKSwgKEFkZHIpJmZzLT54bW1bM10sIHNpemVvZihVMTI4KSk7CisgICBDT1BZX09VVF9YTU0oZnMtPnhtbVs0XSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU00KTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdFg4NlN0YXRlLAorICAgICAgICAgICAgZ3Vlc3RfWE1NNCksIChBZGRyKSZmcy0+eG1tWzRdLCBzaXplb2YoVTEyOCkpOworICAgQ09QWV9PVVRfWE1NKGZzLT54bW1bNV0sIHRzdC0+YXJjaC52ZXguZ3Vlc3RfWE1NNSk7CisgICBWR19UUkFDSyhjb3B5X3JlZ190b19tZW0sIHBhcnQsIHRpZCwgb2Zmc2V0b2YoVmV4R3Vlc3RYODZTdGF0ZSwKKyAgICAgICAgICAgIGd1ZXN0X1hNTTUpLCAoQWRkcikmZnMtPnhtbVs1XSwgc2l6ZW9mKFUxMjgpKTsKKyAgIENPUFlfT1VUX1hNTShmcy0+eG1tWzZdLCB0c3QtPmFyY2gudmV4Lmd1ZXN0X1hNTTYpOworICAgVkdfVFJBQ0soY29weV9yZWdfdG9fbWVtLCBwYXJ0LCB0aWQsIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsCisgICAgICAgICAgICBndWVzdF9YTU02KSwgKEFkZHIpJmZzLT54bW1bNl0sIHNpemVvZihVMTI4KSk7CisgICBDT1BZX09VVF9YTU0oZnMtPnhtbVs3XSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU03KTsKKyAgIFZHX1RSQUNLKGNvcHlfcmVnX3RvX21lbSwgcGFydCwgdGlkLCBvZmZzZXRvZihWZXhHdWVzdFg4NlN0YXRlLAorICAgICAgICAgICAgZ3Vlc3RfWE1NNyksIChBZGRyKSZmcy0+eG1tWzddLCBzaXplb2YoVTEyOCkpOworI3VuZGVmIENPUFlfT1VUX1hNTQorfQorCisvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgcGFydCBvZiBWR18ocmVzdG9yZV9jb250ZXh0KS4gKi8KK3ZvaWQgTUxfKHJlc3RvcmVfbWFjaGluZV9jb250ZXh0KShUaHJlYWRJZCB0aWQsIHZraV91Y29udGV4dF90ICp1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JlUGFydCBwYXJ0LCBCb29sIGVzcF9pc190aHJwdHIpCit7CisgICBUaHJlYWRTdGF0ZSAqdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAgIHN0cnVjdCB2a2lfZnBjaGlwX3N0YXRlICpmcworICAgICAgPSAmdWMtPnVjX21jb250ZXh0LmZwcmVncy5mcF9yZWdfc2V0LmZwY2hpcF9zdGF0ZTsKKworICAgLyogQ1BVICovCisgICBpZiAodWMtPnVjX2ZsYWdzICYgVktJX1VDX0NQVSkgeworICAgICAgLyogQ29tbW9uIHJlZ2lzdGVycyAqLworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9FSVAgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VJUF07CisgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VJUF0sIE9GRlNFVF94ODZfRUlQLAorICAgICAgICAgICAgICAgc2l6ZW9mKFVXb3JkKSk7CisgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VBWCA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUFYXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUFYXSwgT0ZGU0VUX3g4Nl9FQVgsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfRUJYID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FQlhdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FQlhdLCBPRkZTRVRfeDg2X0VCWCwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9FQ1ggPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VDWF07CisgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VDWF0sIE9GRlNFVF94ODZfRUNYLAorICAgICAgICAgICAgICAgc2l6ZW9mKFVXb3JkKSk7CisgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VEWCA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRURYXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRURYXSwgT0ZGU0VUX3g4Nl9FRFgsCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfRUJQID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FQlBdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FQlBdLCBPRkZTRVRfeDg2X0VCUCwKKyAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9FU0kgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VTSV07CisgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VTSV0sIE9GRlNFVF94ODZfRVNJLAorICAgICAgICAgICAgICAgc2l6ZW9mKFVXb3JkKSk7CisgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0VESSA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRURJXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRURJXSwgT0ZGU0VUX3g4Nl9FREksCisgICAgICAgICAgICAgICBzaXplb2YoVVdvcmQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfRVNQID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9VRVNQXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfVUVTUF0sIE9GRlNFVF94ODZfRVNQLAorICAgICAgICAgICAgICAgc2l6ZW9mKFVXb3JkKSk7CisKKyAgICAgIGlmIChlc3BfaXNfdGhycHRyKSB7CisgICAgICAgICAvKiBUaGUgdGhycHRyIHZhbHVlIGlzIHBhc3NlZCBieSBsaWJjIHRvIHRoZSBrZXJuZWwgaW4gdGhlIG90aGVyd2lzZQorICAgICAgICAgICAgdW51c2VkIEVTUCBmaWVsZC4gIFRoaXMgaXMgdXNlZCB3aGVuIGEgbmV3IHRocmVhZCBpcyBjcmVhdGVkLiAqLworICAgICAgICAgVkdfVFJBQ0socHJlX21lbV9yZWFkLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAgICAicmVzdG9yZV9tYWNoaW5lX2NvbnRleHQodWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FU1BdKSIsCisgICAgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FU1BdLCBzaXplb2YoVVdvcmQpKTsKKyAgICAgICAgIGlmICh1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VTUF0pIHsKKyAgICAgICAgICAgIHRzdC0+b3Nfc3RhdGUudGhycHRyID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FU1BdOworICAgICAgICAgICAgTUxfKHVwZGF0ZV9nZHRfbHdwZ3MpKHRpZCk7CisgICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8qIElnbm9yZSBFUlIgYW5kIFRSQVBOTy4gKi8KKworICAgICAgLyogU2VnbWVudCByZWdpc3RlcnMgKi8KKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ1MgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0NTXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfQ1NdLCBPRkZTRVRfeDg2X0NTLAorICAgICAgICAgICAgICAgc2l6ZW9mKFVTaG9ydCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9EUyA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRFNdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9EU10sIE9GRlNFVF94ODZfRFMsCisgICAgICAgICAgICAgICBzaXplb2YoVVNob3J0KSk7CisgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X1NTID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9TU107CisgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX1NTXSwgT0ZGU0VUX3g4Nl9TUywKKyAgICAgICAgICAgICAgIHNpemVvZihVU2hvcnQpKTsKKyAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfRVMgPSB1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0VTXTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgKEFkZHIpJnVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRVNdLCBPRkZTRVRfeDg2X0VTLAorICAgICAgICAgICAgICAgc2l6ZW9mKFVTaG9ydCkpOworICAgICAgdHN0LT5hcmNoLnZleC5ndWVzdF9GUyA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRlNdOworICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9GU10sIE9GRlNFVF94ODZfRlMsCisgICAgICAgICAgICAgICBzaXplb2YoVVNob3J0KSk7CisgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0dTID0gdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9HU107CisgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgIChBZGRyKSZ1Yy0+dWNfbWNvbnRleHQuZ3JlZ3NbVktJX0dTXSwgT0ZGU0VUX3g4Nl9HUywKKyAgICAgICAgICAgICAgIHNpemVvZihVU2hvcnQpKTsKKworICAgICAgLyogRWZsYWdzICovCisgICAgICB7CisgICAgICAgICBVSW50IGVmbGFnczsKKyAgICAgICAgIFVJbnQgb3JpZ19lZmxhZ3M7CisgICAgICAgICBVSW50IG5ld19lZmxhZ3M7CisgICAgICAgICBCb29sIG9rX3Jlc3RvcmUgPSBGYWxzZTsKKworICAgICAgICAgVkdfVFJBQ0socHJlX21lbV9yZWFkLCBwYXJ0LCB0aWQsCisgICAgICAgICAgICAgICAgICAicmVzdG9yZV9tYWNoaW5lX2NvbnRleHQodWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FRkxdKSIsCisgICAgICAgICAgICAgICAgICAoQWRkcikmdWMtPnVjX21jb250ZXh0LmdyZWdzW1ZLSV9FRkxdLCBzaXplb2YoVVdvcmQpKTsKKyAgICAgICAgIGVmbGFncyA9IHVjLT51Y19tY29udGV4dC5ncmVnc1tWS0lfRUZMXTsKKyAgICAgICAgIG9yaWdfZWZsYWdzID0gTGliVkVYX0d1ZXN0WDg2X2dldF9lZmxhZ3MoJnRzdC0+YXJjaC52ZXgpOworICAgICAgICAgbmV3X2VmbGFncyA9IGVmbGFnczsKKyAgICAgICAgIC8qIFRoZSBrZXJuZWwgZGlzYWxsb3dzIHRoZSBJRCBmbGFnIHRvIGJlIGNoYW5nZWQgdmlhIHRoZSBzZXRjb250ZXh0CisgICAgICAgICAgICBjYWxsLCB0aHVzIGRvIHRoZSBzYW1lLiAqLworICAgICAgICAgaWYgKG9yaWdfZWZsYWdzICYgVktJX0VGTEFHU19JRF9CSVQpCisgICAgICAgICAgICBuZXdfZWZsYWdzIHw9IFZLSV9FRkxBR1NfSURfQklUOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3X2VmbGFncyAmPSB+VktJX0VGTEFHU19JRF9CSVQ7CisgICAgICAgICBMaWJWRVhfR3Vlc3RYODZfcHV0X2VmbGFncyhuZXdfZWZsYWdzLCAmdHN0LT5hcmNoLnZleCk7CisgICAgICAgICBWR19UUkFDSyhwb3N0X3JlZ193cml0ZSwgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVmV4R3Vlc3RYODZTdGF0ZSwgZ3Vlc3RfQ0NfREVQMSksIHNpemVvZihVV29yZCkpOworICAgICAgICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X0NDX0RFUDIpLCBzaXplb2YoVVdvcmQpKTsKKworICAgICAgICAgLyogQ2hlY2sgaWYgdGhpcyBjb250ZXh0IHdhcyBjcmVhdGVkIGJ5IHVzIGluIFZHXyhzYXZlX2NvbnRleHQpLiBJbgorICAgICAgICAgICAgdGhhdCBjYXNlLCB0cnkgdG8gcmVzdG9yZSB0aGUgQ0NfT1AsIENDX0RFUDEsIENDX0RFUDIgYW5kIENDX05ERVAKKyAgICAgICAgICAgIHZhbHVlcyB3aGljaCB3ZSBwcmV2aW91c2x5IHN0YXNoZWQgaW50byB1bnVzZWQgbWVtYmVycyBvZiB0aGUKKyAgICAgICAgICAgIGNvbnRleHQuICovCisgICAgICAgICBpZiAoZWZsYWdzICE9IH5WS0lfVUNfR1VFU1RfRUZMQUdTX05FRyh1YykpIHsKKyAgICAgICAgICAgIFZHXyhkZWJ1Z0xvZykoMSwgInN5c3dyYXAtc29sYXJpcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZWZsYWdzIHZhbHVlIHdhcyByZXN0b3JlZCBmcm9tIGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHRocmVhZCAldS5cbiIsIHRpZCk7CisgICAgICAgICAgICBva19yZXN0b3JlID0gVHJ1ZTsKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVUludCBidWZbNV07CisgICAgICAgICAgICBVSW50IGNoZWNrc3VtOworCisgICAgICAgICAgICBidWZbMF0gPSBWS0lfVUNfR1VFU1RfQ0NfT1AodWMpOworICAgICAgICAgICAgYnVmWzFdID0gVktJX1VDX0dVRVNUX0NDX05ERVAodWMpOworICAgICAgICAgICAgYnVmWzJdID0gVktJX1VDX0dVRVNUX0NDX0RFUDEodWMpOworICAgICAgICAgICAgYnVmWzNdID0gVktJX1VDX0dVRVNUX0NDX0RFUDIodWMpOworICAgICAgICAgICAgYnVmWzRdID0gZWZsYWdzOworICAgICAgICAgICAgY2hlY2tzdW0gPSBNTF8oZmxldGNoZXIzMikoKFVTaG9ydCopJmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihidWYpIC8gc2l6ZW9mKFVTaG9ydCkpOworICAgICAgICAgICAgaWYgKGNoZWNrc3VtID09IFZLSV9VQ19HVUVTVF9FRkxBR1NfQ0hFQ0tTVU0odWMpKSB7CisgICAgICAgICAgICAgICAvKiBDaGVjayBvaywgdGhlIGZ1bGwgcmVzdG9yYXRpb24gaXMgcG9zc2libGUuICovCisgICAgICAgICAgICAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLXNvbGFyaXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIENDXyogZ3Vlc3Qgc3RhdGUgdmFsdWVzIHdlcmUgZnVsbHkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzdG9yZWQgaW4gdGhyZWFkICV1LlxuIiwgdGlkKTsKKyAgICAgICAgICAgICAgIG9rX3Jlc3RvcmUgPSBUcnVlOworCisgICAgICAgICAgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0NDX09QID0gVktJX1VDX0dVRVNUX0NDX09QKHVjKTsKKyAgICAgICAgICAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfTkRFUCA9IFZLSV9VQ19HVUVTVF9DQ19OREVQKHVjKTsKKyAgICAgICAgICAgICAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfQ0NfREVQMSA9IFZLSV9VQ19HVUVTVF9DQ19ERVAxKHVjKTsKKyAgICAgICAgICAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgKEFkZHIpJlZLSV9VQ19HVUVTVF9DQ19ERVAxKHVjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X0NDX0RFUDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFVXb3JkKSk7CisgICAgICAgICAgICAgICB0c3QtPmFyY2gudmV4Lmd1ZXN0X0NDX0RFUDIgPSBWS0lfVUNfR1VFU1RfQ0NfREVQMih1Yyk7CisgICAgICAgICAgICAgICBWR19UUkFDSyhjb3B5X21lbV90b19yZWcsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIChBZGRyKSZWS0lfVUNfR1VFU1RfQ0NfREVQMih1YyksCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihWZXhHdWVzdFg4NlN0YXRlLCBndWVzdF9DQ19ERVAyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihVV29yZCkpOworICAgICAgICAgICAgfQorICAgICAgICAgfQorCisgICAgICAgICBpZiAoIW9rX3Jlc3RvcmUpCisgICAgICAgICAgICBWR18oZGVidWdMb2cpKDEsICJzeXN3cmFwLXNvbGFyaXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2Fubm90IGZ1bGx5IHJlc3RvcmUgdGhlIENDXyogZ3Vlc3Qgc3RhdGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWVzLCB1c2luZyBhcHByb3hpbWF0ZSBlZmxhZ3MgaW4gdGhyZWFkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiV1LlxuIiwgdGlkKTsKKyAgICAgIH0KKyAgIH0KKworICAgaWYgKHVjLT51Y19mbGFncyAmIFZLSV9VQ19GUFUpIHsKKyAgICAgIC8qIEZQVSAqLworICAgICAgVmV4RW1Ob3RlIG5vdGU7CisgICAgICBTaXplVCBpOworCisgICAgICAvKiB4ODcgKi8KKyAgICAgIC8qIEZsYWdzIGFuZCBjb250cm9sIHdvcmRzICovCisgICAgICBWR19UUkFDSyhwcmVfbWVtX3JlYWQsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICJyZXN0b3JlX21hY2hpbmVfY29udGV4dCh1Yy0+dWNfbWNvbnRleHQuZnByZWdzLi54ODdfc3RhdGUpIiwKKyAgICAgICAgICAgICAgIChBZGRyKSZmcy0+c3RhdGUsIDI4KTsKKyAgICAgIC8qIFNUIHJlZ2lzdGVycyAqLworICAgICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICAgQWRkciBhZGRyID0gKEFkZHIpJmZzLT5zdGF0ZSArIDI4ICsgaSAqIDEwOworICAgICAgICAgVkdfVFJBQ0soY29weV9tZW1fdG9fcmVnLCBwYXJ0LCB0aWQsIGFkZHIsCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihWZXhHdWVzdFg4NlN0YXRlLCBndWVzdF9GUFJFR1tpXSksIHNpemVvZihVTG9uZykpOworICAgICAgfQorICAgICAgbm90ZSA9IExpYlZFWF9HdWVzdFg4Nl9wdXRfeDg3KChVQ2hhciopJmZzLT5zdGF0ZSwgJnRzdC0+YXJjaC52ZXgpOworICAgICAgaWYgKG5vdGUgIT0gRW1Ob3RlX05PTkUpCisgICAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKKyAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgcmVzdG9yaW5nIHg4NyBzdGF0ZSBpbiB0aHJlYWQgJXU6ICVzLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICB0aWQsIExpYlZFWF9FbU5vdGVfc3RyaW5nKG5vdGUpKTsKKworICAgICAgLyogU1NFICovCisgICAgICBWR19UUkFDSyhwcmVfbWVtX3JlYWQsIHBhcnQsIHRpZCwKKyAgICAgICAgICAgICAgICJyZXN0b3JlX21hY2hpbmVfY29udGV4dCh1Yy0+dWNfbWNvbnRleHQuZnByZWdzLi5teGNzcikiLAorICAgICAgICAgICAgICAgKEFkZHIpJmZzLT5teGNzciwgc2l6ZW9mKGZzLT5teGNzcikpOworICAgICAgbm90ZSA9IExpYlZFWF9HdWVzdFg4Nl9wdXRfbXhjc3IoZnMtPm14Y3NyLCAmdHN0LT5hcmNoLnZleCk7CisgICAgICBpZiAobm90ZSAhPSBFbU5vdGVfTk9ORSkKKyAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLAorICAgICAgICAgICAgICAgICAgICAgICJFcnJvciByZXN0b3JpbmcgbXhjc3Igc3RhdGUgaW4gdGhyZWFkICV1OiAlcy5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgdGlkLCBMaWJWRVhfRW1Ob3RlX3N0cmluZyhub3RlKSk7CisgICAgICAvKiBYTU0gcmVnaXN0ZXJzICovCisjZGVmaW5lIENPUFlfSU5fWE1NKHNyYywgZGVzdCkgXAorICAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIGRlc3RbMF0gPSBzcmMuX2xbMF07ICBcCisgICAgICAgICBkZXN0WzFdID0gc3JjLl9sWzFdOyAgXAorICAgICAgICAgZGVzdFsyXSA9IHNyYy5fbFsyXTsgIFwKKyAgICAgICAgIGRlc3RbM10gPSBzcmMuX2xbM107ICBcCisgICAgICB9IHdoaWxlICgwKQorICAgICAgQ09QWV9JTl9YTU0oZnMtPnhtbVswXSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU0wKTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVswXSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X1hNTTApLCBzaXplb2YoVTEyOCkpOworICAgICAgQ09QWV9JTl9YTU0oZnMtPnhtbVsxXSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU0xKTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVsxXSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X1hNTTEpLCBzaXplb2YoVTEyOCkpOworICAgICAgQ09QWV9JTl9YTU0oZnMtPnhtbVsyXSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU0yKTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVsyXSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X1hNTTIpLCBzaXplb2YoVTEyOCkpOworICAgICAgQ09QWV9JTl9YTU0oZnMtPnhtbVszXSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU0zKTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVszXSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X1hNTTMpLCBzaXplb2YoVTEyOCkpOworICAgICAgQ09QWV9JTl9YTU0oZnMtPnhtbVs0XSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU00KTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVs0XSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X1hNTTQpLCBzaXplb2YoVTEyOCkpOworICAgICAgQ09QWV9JTl9YTU0oZnMtPnhtbVs1XSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU01KTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVs1XSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X1hNTTUpLCBzaXplb2YoVTEyOCkpOworICAgICAgQ09QWV9JTl9YTU0oZnMtPnhtbVs2XSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU02KTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVs2XSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X1hNTTYpLCBzaXplb2YoVTEyOCkpOworICAgICAgQ09QWV9JTl9YTU0oZnMtPnhtbVs3XSwgdHN0LT5hcmNoLnZleC5ndWVzdF9YTU03KTsKKyAgICAgIFZHX1RSQUNLKGNvcHlfbWVtX3RvX3JlZywgcGFydCwgdGlkLCAoQWRkcikmZnMtPnhtbVs3XSwKKyAgICAgICAgICAgICAgIG9mZnNldG9mKFZleEd1ZXN0WDg2U3RhdGUsIGd1ZXN0X1hNTTcpLCBzaXplb2YoVTEyOCkpOworI3VuZGVmIENPUFlfSU5fWE1NCisgICB9Cit9CisKKy8qIEFsbG9jYXRlIEdEVCBmb3IgYSBnaXZlbiB0aHJlYWQuICovCit2b2lkIE1MXyhzZXR1cF9nZHQpKFZleEd1ZXN0WDg2U3RhdGUgKnZleCkKK3sKKyAgIEFkZHIgZ2R0ID0gKEFkZHIpVkdfKGNhbGxvYykoInN5c3dyYXAtc29sYXJpcy14ODYuZ2R0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVYX0dVRVNUX1g4Nl9HRFRfTkVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFZleEd1ZXN0WDg2U2VnRGVzY3IpKTsKKyAgIHZleC0+Z3Vlc3RfR0RUID0gZ2R0OworfQorCisvKiBEZWFsbG9jYXRlIEdEVCBmb3IgYSBnaXZlbiB0aHJlYWQuICovCit2b2lkIE1MXyhjbGVhbnVwX2dkdCkoVmV4R3Vlc3RYODZTdGF0ZSAqdmV4KQoreworICAgaWYgKCF2ZXgtPmd1ZXN0X0dEVCkKKyAgICAgIHJldHVybjsKKyAgIFZHXyhmcmVlKSgodm9pZCopdmV4LT5ndWVzdF9HRFQpOworICAgdmV4LT5ndWVzdF9HRFQgPSAwOworfQorCisvKiBGb3IgYSBnaXZlbiB0aHJlYWQsIHVwZGF0ZSB0aGUgTFdQR1MgZGVzY3JpcHRvciBpbiB0aGUgdGhyZWFkJ3MgR0RUCisgICBhY2NvcmRpbmcgdG8gdGhlIHRocmVhZCBwb2ludGVyLiAqLwordm9pZCBNTF8odXBkYXRlX2dkdF9sd3BncykoVGhyZWFkSWQgdGlkKQoreworICAgVGhyZWFkU3RhdGUgKnRzdCA9IFZHXyhnZXRfVGhyZWFkU3RhdGUpKHRpZCk7CisgICBBZGRyIGJhc2UgPSB0c3QtPm9zX3N0YXRlLnRocnB0cjsKKyAgIFZleEd1ZXN0WDg2U2VnRGVzY3IgKmdkdCA9IChWZXhHdWVzdFg4NlNlZ0Rlc2NyKil0c3QtPmFyY2gudmV4Lmd1ZXN0X0dEVDsKKyAgIFZleEd1ZXN0WDg2U2VnRGVzY3IgZGVzYzsKKworICAgdmdfYXNzZXJ0KGdkdCk7CisKKyAgIFZHXyhtZW1zZXQpKCZkZXNjLCAwLCBzaXplb2YoZGVzYykpOworICAgaWYgKGJhc2UpIHsKKyAgICAgIGRlc2MuTGR0RW50LkJpdHMuTGltaXRMb3cgPSAtMTsKKyAgICAgIGRlc2MuTGR0RW50LkJpdHMuTGltaXRIaSA9IC0xOworICAgICAgZGVzYy5MZHRFbnQuQml0cy5CYXNlTG93ID0gYmFzZSAmIDB4ZmZmZjsKKyAgICAgIGRlc2MuTGR0RW50LkJpdHMuQmFzZU1pZCA9IChiYXNlID4+IDE2KSAmIDB4ZmY7CisgICAgICBkZXNjLkxkdEVudC5CaXRzLkJhc2VIaSA9IChiYXNlID4+IDI0KSAmIDB4ZmY7CisgICAgICBkZXNjLkxkdEVudC5CaXRzLlByZXMgPSAxOworICAgICAgZGVzYy5MZHRFbnQuQml0cy5EcGwgPSAzOyAvKiBTRUxfVVBMICovCisgICAgICBkZXNjLkxkdEVudC5CaXRzLlR5cGUgPSAxOTsgLyogU0RUX01FTVJXQSAqLworICAgICAgZGVzYy5MZHRFbnQuQml0cy5HcmFudWxhcml0eSA9IDE7IC8qIFNEUF9QQUdFUyAqLworICAgICAgZGVzYy5MZHRFbnQuQml0cy5EZWZhdWx0X0JpZyA9IDE7IC8qIFNEUF9PUDMyICovCisgICB9CisKKyAgIGdkdFtWS0lfR0RUX0xXUEdTXSA9IGRlc2M7CisKKyAgIC8qIFdyaXRlICVncy4gKi8KKyAgIHRzdC0+YXJjaC52ZXguZ3Vlc3RfR1MgPSBWS0lfTFdQR1NfU0VMOworICAgVkdfVFJBQ0socG9zdF9yZWdfd3JpdGUsIFZnX0NvcmVTeXNDYWxsLCB0aWQsIE9GRlNFVF94ODZfR1MsCisgICAgICAgICAgICBzaXplb2YoVVNob3J0KSk7Cit9CisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQUkUvUE9TVCB3cmFwcGVycyBmb3IgeDg2L1NvbGFyaXMtc3BlY2lmaWMgc3lzY2FsbHMKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjZGVmaW5lIFBSRShuYW1lKSAgICAgICBERUZOX1BSRV9URU1QTEFURSh4ODZfc29sYXJpcywgbmFtZSkKKyNkZWZpbmUgUE9TVChuYW1lKSAgICAgIERFRk5fUE9TVF9URU1QTEFURSh4ODZfc29sYXJpcywgbmFtZSkKKworLyogaW1wbGVtZW50YXRpb24gKi8KKworUFJFKHN5c19mc3RhdGF0NjQpCit7CisgICAvKiBpbnQgZnN0YXRhdDY0KGludCBmaWxkZXMsIGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBzdGF0NjQgKmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgaW50IGZsYWcpOyAqLworICAgUFJJTlQoInN5c19mc3RhdGF0NjQgKCAlbGQsICUjbHgoJXMpLCAlI2x4LCAlbGQgKSIsIFNBUkcxLCBBUkcyLAorICAgICAgICAgKEhDaGFyKilBUkcyLCBBUkczLCBTQVJHNCk7CisgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJmc3RhdGF0NjQiLCBpbnQsIGZpbGRlcywgY29uc3QgY2hhciAqLCBwYXRoLAorICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3RhdDY0ICosIGJ1ZiwgaW50LCBmbGFnKTsKKyAgIGlmIChBUkcyKQorICAgICAgUFJFX01FTV9SQVNDSUlaKCJmc3RhdGF0NjQocGF0aCkiLCBBUkcyKTsKKyAgIFBSRV9NRU1fV1JJVEUoImZzdGF0YXQ2NChidWYpIiwgQVJHMywgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSk7CisKKyAgIC8qIEJlIHN0cmljdC4gKi8KKyAgIGlmIChBUkcxICE9IFZLSV9BVF9GRENXRCAmJgorICAgICAgICFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgImZzdGF0YXQ2NCIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BPU1Qoc3lzX2ZzdGF0YXQ2NCkKK3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzMsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQ2NCkpOworfQorCitQUkUoc3lzX29wZW5hdDY0KQoreworICAgLyogaW50IG9wZW5hdDY0KGludCBmaWxkZXMsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3MpOworICAgICAgaW50IG9wZW5hdDY0KGludCBmaWxkZXMsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3MsIG1vZGVfdCBtb2RlKTsKKyAgICAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisKKyAgIGlmIChBUkczICYgVktJX09fQ1JFQVQpIHsKKyAgICAgIC8qIDQtYXJnIHZlcnNpb24gKi8KKyAgICAgIFBSSU5UKCJzeXNfb3BlbmF0NjQgKCAlbGQsICUjbHgoJXMpLCAlbGQsICVsZCApIiwgU0FSRzEsIEFSRzIsCisgICAgICAgICAgICAoSENoYXIqKUFSRzIsIFNBUkczLCBTQVJHNCk7CisgICAgICBQUkVfUkVHX1JFQUQ0KGxvbmcsICJvcGVuYXQ2NCIsIGludCwgZmlsZGVzLCBjb25zdCBjaGFyICosIGZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICBpbnQsIGZsYWdzLCB2a2lfbW9kZV90LCBtb2RlKTsKKyAgIH0KKyAgIGVsc2UgeworICAgICAgLyogMy1hcmcgdmVyc2lvbiAqLworICAgICAgUFJJTlQoInN5c19vcGVuYXQ2NCAoICVsZCwgJSNseCglcyksICVsZCApIiwgU0FSRzEsIEFSRzIsIChIQ2hhciopQVJHMiwKKyAgICAgICAgICAgIFNBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgIm9wZW5hdDY0IiwgaW50LCBmaWxkZXMsIGNvbnN0IGNoYXIgKiwgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgIGludCwgZmxhZ3MpOworICAgfQorCisgICBQUkVfTUVNX1JBU0NJSVooIm9wZW5hdDY0KGZpbGVuYW1lKSIsIEFSRzIpOworCisgICAvKiBCZSBzdHJpY3QuICovCisgICBpZiAoQVJHMSAhPSBWS0lfQVRfRkRDV0QgJiYgIU1MXyhmZF9hbGxvd2VkKShBUkcxLCAib3BlbmF0NjQiLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorCitQT1NUKHN5c19vcGVuYXQ2NCkKK3sKKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKFJFUywgIm9wZW5hdDY0IiwgdGlkLCBUcnVlKSkgeworICAgICAgVkdfKGNsb3NlKShSRVMpOworICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTUZJTEUpOworICAgfQorICAgZWxzZSBpZiAoVkdfKGNsb190cmFja19mZHMpKQorICAgICAgTUxfKHJlY29yZF9mZF9vcGVuX3dpdGhfZ2l2ZW5fbmFtZSkodGlkLCBSRVMsIChIQ2hhciopQVJHMik7Cit9CisKK1BSRShzeXNfbGxzZWVrMzIpCit7CisgICAvKiBvZmZzZXRfdCBsbHNlZWsoaW50IGZpbGRlcywgb2Zmc2V0X3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsgKi8KKyAgIFBSSU5UKCJzeXNfbGxzZWVrMzIgKCAlbGQsICUjbHgsICUjbHgsICVsZCApIiwgU0FSRzEsIEFSRzIsIEFSRzMsIFNBUkc0KTsKKyAgIFBSRV9SRUdfUkVBRDQobG9uZywgImxsc2VlayIsIGludCwgZmlsZGVzLCB2a2lfdTMyLCBvZmZzZXRfbG93LAorICAgICAgICAgICAgICAgICB2a2lfdTMyLCBvZmZzZXRfaGlnaCwgaW50LCB3aGVuY2UpOworCisgICAvKiBTdGF5IHNhbmUuICovCisgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcxLCAibGxzZWVrIiwgdGlkLCBGYWxzZSkpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VCQURGKTsKK30KKworUFJFKHN5c19tbWFwNjQpCit7CisgICAvKiB2b2lkICptbWFwNjQodm9pZCAqYWRkciwgc2l6ZV90IGxlbiwgaW50IHByb3QsIGludCBmbGFncywKKyAgICAgICAgICAgICAgICAgICBpbnQgZmlsZGVzLCB1aW50MzJfdCBvZmZsbywgdWludDMyX3Qgb2ZmaGkpOyAqLworICAgLyogTm90ZSB0aGlzIHdyYXBwZXIgYXNzdW1lcyBhIGxpdHRsZS1lbmRpYW4gYXJjaGl0ZWN0dXJlLCBvZmZsbyBhbmQgb2ZmaGkKKyAgICAgIGhhdmUgdG8gYmUgc3dhcHBlZCBpZiBhIGJpZy1lbmRpYW4gYXJjaGl0ZWN0dXJlIGlzIHByZXNlbnQuICovCisjaWYgIWRlZmluZWQoVkdfTElUVExFRU5ESUFOKQorI2Vycm9yICJVbmV4cGVjdGVkIGVuZGlhbm5lc3MuIgorI2VuZGlmIC8qICFWR19MSVRUTEVFTkRJQU4gKi8KKworICAgU3lzUmVzIHI7CisgICBVTG9uZyB1OworICAgT2ZmNjRUIG9mZnNldDsKKworICAgLyogU3RheSBzYW5lLiAqLworICAgdmdfYXNzZXJ0KFZLSV9QQUdFX1NJWkUgPT0gNDA5Nik7CisgICB2Z19hc3NlcnQoc2l6ZW9mKHUpID09IHNpemVvZihvZmZzZXQpKTsKKworICAgUFJJTlQoInN5c19tbWFwICggJSNseCwgJSNseCwgJSNseCwgJSNseCwgJWxkLCAlI2x4LCAlI2x4ICkiLAorICAgICAgICAgQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgU0FSRzUsIEFSRzYsIEFSRzcpOworICAgUFJFX1JFR19SRUFENyhsb25nLCAibW1hcCIsIHZvaWQgKiwgc3RhcnQsIHZraV9zaXplX3QsIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgaW50LCBwcm90LCBpbnQsIGZsYWdzLCBpbnQsIGZkLCB1aW50MzJfdCwgb2ZmbG8sCisgICAgICAgICAgICAgICAgIHVpbnQzMl90LCBvZmZoaSk7CisKKyAgIC8qIFRoZSBvZmZsbyBhbmQgb2ZmaGkgdmFsdWVzIGNhbiBhY3R1YWxseSByZXByZXNlbnQgYSBuZWdhdGl2ZSB2YWx1ZS4KKyAgICAgIE1ha2Ugc3VyZSBpdCdzIHBhc3NlZCBjb3JyZWN0bHkgdG8gdGhlIGdlbmVyaWMgbW1hcCB3cmFwcGVyLiAqLworICAgdSA9ICgoVUxvbmcpQVJHNyA8PCAzMikgKyBBUkc2OworICAgb2Zmc2V0ID0gKihPZmY2NFQqKSZ1OworCisgICByID0gTUxfKGdlbmVyaWNfUFJFX3N5c19tbWFwKSh0aWQsIEFSRzEsIEFSRzIsIEFSRzMsIEFSRzQsIEFSRzUsIG9mZnNldCk7CisgICBTRVRfU1RBVFVTX2Zyb21fU3lzUmVzKHIpOworfQorCitQUkUoc3lzX3N0YXQ2NCkKK3sKKyAgIC8qIGludCBzdGF0NjQoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0YXQ2NCAqYnVmKTsgKi8KKyAgIFBSSU5UKCJzeXNfc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsIEFSRzEsIChIQ2hhciopQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzdGF0NjQiLCBjb25zdCBjaGFyICosIHBhdGgsIHN0cnVjdCBzdGF0NjQgKiwgYnVmKTsKKworICAgUFJFX01FTV9SQVNDSUlaKCJzdGF0NjQocGF0aCkiLCBBUkcxKTsKKyAgIFBSRV9NRU1fV1JJVEUoInN0YXQ2NChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSk7Cit9CisKK1BPU1Qoc3lzX3N0YXQ2NCkKK3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXQ2NCkpOworfQorCitQUkUoc3lzX2xzdGF0NjQpCit7CisgICAvKiBpbnQgbHN0YXQ2NChjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdDY0ICpidWYpOyAqLworICAgUFJJTlQoInN5c19sc3RhdDY0ICggJSNseCglcyksICUjbHggKSIsIEFSRzEsIChIQ2hhciopQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJsc3RhdDY0IiwgY29uc3QgY2hhciAqLCBwYXRoLCBzdHJ1Y3Qgc3RhdDY0ICosIGJ1Zik7CisKKyAgIFBSRV9NRU1fUkFTQ0lJWigibHN0YXQ2NChwYXRoKSIsIEFSRzEpOworICAgUFJFX01FTV9XUklURSgibHN0YXQ2NChidWYpIiwgQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSk7Cit9CisKK1BPU1Qoc3lzX2xzdGF0NjQpCit7CisgICBQT1NUX01FTV9XUklURShBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0NjQpKTsKK30KKworUFJFKHN5c19mc3RhdDY0KQoreworICAgLyogaW50IGZzdGF0NjQoaW50IGZpbGRlcywgc3RydWN0IHN0YXQ2NCAqYnVmKTsgKi8KKyAgIFBSSU5UKCJzeXNfZnN0YXQ2NCAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAiZnN0YXQ2NCIsIGludCwgZmlsZGVzLCBzdHJ1Y3Qgc3RhdDY0ICosIGJ1Zik7CisgICBQUkVfTUVNX1dSSVRFKCJmc3RhdDY0KGJ1ZikiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0NjQpKTsKKworICAgLyogQmUgc3RyaWN0LiAqLworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgImZzdGF0NjQiLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorCitQT1NUKHN5c19mc3RhdDY0KQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfc3RhdDY0KSk7Cit9CisKK3N0YXRpYyB2b2lkIGRvX3N0YXR2ZnM2NF9wb3N0KHN0cnVjdCB2a2lfc3RhdHZmczY0ICpzdGF0cywgVGhyZWFkSWQgdGlkKQoreworICAgUE9TVF9GSUVMRF9XUklURShzdGF0cy0+Zl9ic2l6ZSk7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHN0YXRzLT5mX2Zyc2l6ZSk7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHN0YXRzLT5mX2Jsb2Nrcyk7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHN0YXRzLT5mX2JmcmVlKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfYmF2YWlsKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfZmlsZXMpOworICAgUE9TVF9GSUVMRF9XUklURShzdGF0cy0+Zl9mZnJlZSk7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHN0YXRzLT5mX2ZhdmFpbCk7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHN0YXRzLT5mX2ZzaWQpOworICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpIHN0YXRzLT5mX2Jhc2V0eXBlLCBWR18oc3RybGVuKShzdGF0cy0+Zl9iYXNldHlwZSkgKyAxKTsKKyAgIFBPU1RfRklFTERfV1JJVEUoc3RhdHMtPmZfZmxhZyk7CisgICBQT1NUX0ZJRUxEX1dSSVRFKHN0YXRzLT5mX25hbWVtYXgpOworICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpIHN0YXRzLT5mX2ZzdHIsIFZHXyhzdHJsZW4pKHN0YXRzLT5mX2ZzdHIpICsgMSk7Cit9CisKK1BSRShzeXNfc3RhdHZmczY0KQoreworICAgLyogaW50IHN0YXR2ZnM2NChjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdHZmczY0ICpidWYpOyAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3N0YXR2ZnM2NCAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoSENoYXIgKikgQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJzdGF0dmZzNjQiLCBjb25zdCBjaGFyICosIHBhdGgsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB2a2lfc3RhdHZmczY0ICosIGJ1Zik7CisgICBQUkVfTUVNX1JBU0NJSVooInN0YXR2ZnM2NChwYXRoKSIsIEFSRzEpOworICAgUFJFX01FTV9XUklURSgic3RhdHZmczY0KGJ1ZikiLCBBUkcyLCBzaXplb2Yoc3RydWN0IHZraV9zdGF0dmZzNjQpKTsKK30KKworUE9TVChzeXNfc3RhdHZmczY0KQoreworICAgZG9fc3RhdHZmczY0X3Bvc3QoKHN0cnVjdCB2a2lfc3RhdHZmczY0ICopIEFSRzIsIHRpZCk7Cit9CisKK1BSRShzeXNfZnN0YXR2ZnM2NCkKK3sKKyAgIC8qIGludCBmc3RhdHZmczY0KGludCBmZCwgc3RydWN0IHN0YXR2ZnM2NCAqYnVmKTsgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworICAgUFJJTlQoInN5c19mc3RhdHZmczY0ICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQyKGxvbmcsICJmc3RhdHZmczY0IiwgaW50LCBmZCwgc3RydWN0IHZraV9zdGF0dmZzNjQgKiwgYnVmKTsKKyAgIFBSRV9NRU1fV1JJVEUoImZzdGF0dmZzNjQoYnVmKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3N0YXR2ZnM2NCkpOworCisgICAvKiBCZSBzdHJpY3QuICovCisgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcxLCAiZnN0YXR2ZnM2NCIsIHRpZCwgRmFsc2UpKQorICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FQkFERik7Cit9CisKK1BPU1Qoc3lzX2ZzdGF0dmZzNjQpCit7CisgICBkb19zdGF0dmZzNjRfcG9zdCgoc3RydWN0IHZraV9zdGF0dmZzNjQgKikgQVJHMiwgdGlkKTsKK30KKworUFJFKHN5c19zZXRybGltaXQ2NCkKK3sKKyAgIC8qIGludCBzZXRybGltaXQ2NChpbnQgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQ2NCAqcmxpbSk7ICovCisgICBzdHJ1Y3QgdmtpX3JsaW1pdDY0ICpsaW1pdCA9IChzdHJ1Y3QgdmtpX3JsaW1pdDY0ICopQVJHMjsKKyAgIFBSSU5UKCJzeXNfc2V0cmxpbWl0NjQgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKKyAgIFBSRV9SRUdfUkVBRDIobG9uZywgInNldHJsaW1pdDY0IiwgaW50LCByZXNvdXJjZSwgc3RydWN0IHJsaW1pdDY0ICosIHJsaW0pOworICAgUFJFX01FTV9SRUFEKCJzZXRybGltaXQ2NChybGltKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3JsaW1pdDY0KSk7CisKKyAgIGlmIChsaW1pdCAmJiBsaW1pdC0+cmxpbV9jdXIgPiBsaW1pdC0+cmxpbV9tYXgpCisgICAgICBTRVRfU1RBVFVTX0ZhaWx1cmUoVktJX0VJTlZBTCk7CisgICBlbHNlIGlmIChBUkcxID09IFZLSV9STElNSVRfTk9GSUxFKSB7CisgICAgICBpZiAobGltaXQtPnJsaW1fY3VyID4gVkdfKGZkX2hhcmRfbGltaXQpIHx8CisgICAgICAgICAgbGltaXQtPnJsaW1fbWF4ICE9IFZHXyhmZF9oYXJkX2xpbWl0KSkgeworICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FUEVSTSk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgIFZHXyhmZF9zb2Z0X2xpbWl0KSA9IGxpbWl0LT5ybGltX2N1cjsKKyAgICAgICAgIFNFVF9TVEFUVVNfU3VjY2VzcygwKTsKKyAgICAgIH0KKyAgIH0KKyAgIGVsc2UgaWYgKEFSRzEgPT0gVktJX1JMSU1JVF9EQVRBKSB7CisgICAgICBpZiAobGltaXQtPnJsaW1fY3VyID4gVkdfKGNsaWVudF9ybGltaXRfZGF0YSkucmxpbV9tYXggfHwKKyAgICAgICAgICBsaW1pdC0+cmxpbV9tYXggPiBWR18oY2xpZW50X3JsaW1pdF9kYXRhKS5ybGltX21heCkgeworICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FUEVSTSk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgIFZHXyhjbGllbnRfcmxpbWl0X2RhdGEpLnJsaW1fbWF4ID0gbGltaXQtPnJsaW1fbWF4OworICAgICAgICAgVkdfKGNsaWVudF9ybGltaXRfZGF0YSkucmxpbV9jdXIgPSBsaW1pdC0+cmxpbV9jdXI7CisgICAgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CisgICAgICB9CisgICB9CisgICBlbHNlIGlmIChBUkcxID09IFZLSV9STElNSVRfU1RBQ0sgJiYgdGlkID09IDEpIHsKKyAgICAgIGlmIChsaW1pdC0+cmxpbV9jdXIgPiBWR18oY2xpZW50X3JsaW1pdF9zdGFjaykucmxpbV9tYXggfHwKKyAgICAgICAgICBsaW1pdC0+cmxpbV9tYXggPiBWR18oY2xpZW50X3JsaW1pdF9zdGFjaykucmxpbV9tYXgpIHsKKyAgICAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRVBFUk0pOworICAgICAgfQorICAgICAgZWxzZSB7CisgICAgICAgICAvKiBDaGFuZ2UgdGhlIHZhbHVlIG9mIGNsaWVudF9zdGFja19zekIgdG8gdGhlIHJsaW1fY3VyIHZhbHVlIGJ1dAorICAgICAgICAgICAgb25seSBpZiBpdCBpcyBzbWFsbGVyIHRoYW4gdGhlIHNpemUgb2YgdGhlIGFsbG9jYXRlZCBzdGFjayBmb3IgdGhlCisgICAgICAgICAgICBjbGllbnQuICovCisgICAgICAgICBpZiAobGltaXQtPnJsaW1fY3VyIDw9IFZHXyhjbHN0a19tYXhfc2l6ZSkpCisgICAgICAgICAgICBWR18odGhyZWFkcylbdGlkXS5jbGllbnRfc3RhY2tfc3pCID0gbGltaXQtPnJsaW1fY3VyOworCisgICAgICAgICBWR18oY2xpZW50X3JsaW1pdF9zdGFjaykucmxpbV9tYXggPSBsaW1pdC0+cmxpbV9tYXg7CisgICAgICAgICBWR18oY2xpZW50X3JsaW1pdF9zdGFjaykucmxpbV9jdXIgPSBsaW1pdC0+cmxpbV9jdXI7CisgICAgICAgICBTRVRfU1RBVFVTX1N1Y2Nlc3MoMCk7CisgICAgICB9CisgICB9Cit9CisKK1BSRShzeXNfZ2V0cmxpbWl0NjQpCit7CisgICAvKiBpbnQgZ2V0cmxpbWl0NjQoaW50IHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0NjQgKnJsaW0pOyAqLworICAgUFJJTlQoInN5c19nZXRybGltaXQ2NCAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOworICAgUFJFX1JFR19SRUFEMihsb25nLCAiZ2V0cmxpbWl0NjQiLAorICAgICAgICAgICAgICAgICBpbnQsIHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0NjQgKiwgcmxpbSk7CisgICBQUkVfTUVNX1dSSVRFKCJnZXRybGltaXQ2NChybGltKSIsIEFSRzIsIHNpemVvZihzdHJ1Y3QgdmtpX3JsaW1pdDY0KSk7Cit9CisKK1BPU1Qoc3lzX2dldHJsaW1pdDY0KQoreworICAgLyogQmFzZWQgb24gY29tbW9uX3Bvc3RfZ2V0cmxpbWl0KCkgZnJvbSBzeXN3cmFwLWdlbmVyaWMuYy4gKi8KKyAgIHN0cnVjdCB2a2lfcmxpbWl0NjQgKnJsaW0gPSAoc3RydWN0IHZraV9ybGltaXQ2NCopQVJHMjsKKworICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgc2l6ZW9mKHN0cnVjdCB2a2lfcmxpbWl0NjQpKTsKKworICAgc3dpdGNoIChBUkcxIC8qcmVzb3VyY2UqLykgeworICAgY2FzZSBWS0lfUkxJTUlUX05PRklMRToKKyAgICAgIHJsaW0tPnJsaW1fY3VyID0gVkdfKGZkX3NvZnRfbGltaXQpOworICAgICAgcmxpbS0+cmxpbV9tYXggPSBWR18oZmRfaGFyZF9saW1pdCk7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1JMSU1JVF9EQVRBOgorICAgICAgcmxpbS0+cmxpbV9jdXIgPSBWR18oY2xpZW50X3JsaW1pdF9kYXRhKS5ybGltX2N1cjsKKyAgICAgIHJsaW0tPnJsaW1fbWF4ID0gVkdfKGNsaWVudF9ybGltaXRfZGF0YSkucmxpbV9tYXg7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1JMSU1JVF9TVEFDSzoKKyAgICAgIHJsaW0tPnJsaW1fY3VyID0gVkdfKGNsaWVudF9ybGltaXRfc3RhY2spLnJsaW1fY3VyOworICAgICAgcmxpbS0+cmxpbV9tYXggPSBWR18oY2xpZW50X3JsaW1pdF9zdGFjaykucmxpbV9tYXg7CisgICAgICBicmVhazsKKyAgIH0KK30KKworUFJFKHN5c19wcmVhZDY0KQoreworICAgLyogc3NpemUzMl90IHByZWFkNjQoaW50IGZkLCB2b2lkICpidWYsIHNpemUzMl90IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb2Zmc2V0XzEsIHVpbnQzMl90IG9mZnNldF8yKTsKKyAgICAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3ByZWFkNjQgKCAlbGQsICUjbHgsICVsdSwgJSNseCwgJSNseCApIiwKKyAgICAgICAgIFNBUkcxLCBBUkcyLCBBUkczLCBBUkc0LCBBUkc1KTsKKyAgIFBSRV9SRUdfUkVBRDUobG9uZywgInByZWFkNjQiLCBpbnQsIGZkLCB2b2lkICosIGJ1ZiwgdmtpX3NpemUzMl90LCBjb3VudCwKKyAgICAgICAgICAgICAgICAgdmtpX3VpbnQzMl90LCBvZmZzZXRfMSwgdmtpX3VpbnQzMl90LCBvZmZzZXRfMik7CisgICBQUkVfTUVNX1dSSVRFKCJwcmVhZDY0KGJ1ZikiLCBBUkcyLCBBUkczKTsKKworICAgLyogQmUgc3RyaWN0LiAqLworICAgaWYgKCFNTF8oZmRfYWxsb3dlZCkoQVJHMSwgInByZWFkNjQiLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorCitQT1NUKHN5c19wcmVhZDY0KQoreworICAgUE9TVF9NRU1fV1JJVEUoQVJHMiwgUkVTKTsKK30KKworUFJFKHN5c19wd3JpdGU2NCkKK3sKKyAgIC8qIHNzaXplMzJfdCBwd3JpdGU2NChpbnQgZmQsIHZvaWQgKmJ1Ziwgc2l6ZTMyX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb2Zmc2V0XzEsIHVpbnQzMl90IG9mZnNldF8yKTsKKyAgICAqLworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7CisgICBQUklOVCgic3lzX3B3cml0ZTY0ICggJWxkLCAlI2x4LCAlbHUsICUjbHgsICUjbHggKSIsCisgICAgICAgICBTQVJHMSwgQVJHMiwgQVJHMywgQVJHNCwgQVJHNSk7CisgICBQUkVfUkVHX1JFQUQ1KGxvbmcsICJwd3JpdGU2NCIsIGludCwgZmQsIHZvaWQgKiwgYnVmLCB2a2lfc2l6ZTMyX3QsIGNvdW50LAorICAgICAgICAgICAgICAgICB2a2lfdWludDMyX3QsIG9mZnNldF8xLCB2a2lfdWludDMyX3QsIG9mZnNldF8yKTsKKyAgIFBSRV9NRU1fUkVBRCgicHdyaXRlNjQoYnVmKSIsIEFSRzIsIEFSRzMpOworCisgICAvKiBCZSBzdHJpY3QuICovCisgICBpZiAoIU1MXyhmZF9hbGxvd2VkKShBUkcxLCAicHdyaXRlNjQiLCB0aWQsIEZhbHNlKSkKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUJBREYpOworfQorCitQUkUoc3lzX29wZW42NCkKK3sKKyAgIC8qIGludCBvcGVuNjQoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmbGFncyk7CisgICAgICBpbnQgb3BlbjY0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZmxhZ3MsIG1vZGVfdCBtb2RlKTsgKi8KKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworCisgICBpZiAoQVJHMiAmIFZLSV9PX0NSRUFUKSB7CisgICAgICAvKiAzLWFyZyB2ZXJzaW9uICovCisgICAgICBQUklOVCgic3lzX29wZW42NCAoICUjbHgoJXMpLCAlI2x4LCAlbGQgKSIsIEFSRzEsIChIQ2hhciopQVJHMSwgQVJHMiwKKyAgICAgICAgICAgIFNBUkczKTsKKyAgICAgIFBSRV9SRUdfUkVBRDMobG9uZywgIm9wZW42NCIsIGNvbnN0IGNoYXIgKiwgZmlsZW5hbWUsIGludCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgIHZraV9tb2RlX3QsIG1vZGUpOworICAgfQorICAgZWxzZSB7CisgICAgICAvKiAyLWFyZyB2ZXJzaW9uICovCisgICAgICBQUklOVCgic3lzX29wZW42NCAoICUjbHgoJXMpLCAlI2x4ICkiLCBBUkcxLCAoSENoYXIqKUFSRzEsIEFSRzIpOworICAgICAgUFJFX1JFR19SRUFEMihsb25nLCAib3BlbjY0IiwgY29uc3QgY2hhciAqLCBmaWxlbmFtZSwgaW50LCBmbGFncyk7CisgICB9CisgICBQUkVfTUVNX1JBU0NJSVooIm9wZW4oZmlsZW5hbWUpIiwgQVJHMSk7Cit9CisKK1BPU1Qoc3lzX29wZW42NCkKK3sKKyAgIGlmICghTUxfKGZkX2FsbG93ZWQpKFJFUywgIm9wZW42NCIsIHRpZCwgVHJ1ZSkpIHsKKyAgICAgIFZHXyhjbG9zZSkoUkVTKTsKKyAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRU1GSUxFKTsKKyAgIH0KKyAgIGVsc2UgaWYgKFZHXyhjbG9fdHJhY2tfZmRzKSkKKyAgICAgIE1MXyhyZWNvcmRfZmRfb3Blbl93aXRoX2dpdmVuX25hbWUpKHRpZCwgUkVTLCAoSENoYXIqKUFSRzEpOworfQorCisjdW5kZWYgUFJFCisjdW5kZWYgUE9TVAorCisjZW5kaWYgLy8gZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC14ZW4uYyBiL2NvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC14ZW4uYwppbmRleCBhMWUxMWM5Li4yMDM0MWM0IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAteGVuLmMKKysrIGIvY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLXhlbi5jCkBAIC02NSwxNSArNjUsMzcgQEAKICNkZWZpbmUgUFJFKG5hbWUpIHN0YXRpYyBERUZOX1BSRV9URU1QTEFURSh4ZW4sIG5hbWUpCiAjZGVmaW5lIFBPU1QobmFtZSkgc3RhdGljIERFRk5fUE9TVF9URU1QTEFURSh4ZW4sIG5hbWUpCiAKK3N0YXRpYyB2b2lkIGJhZF9pbnRmX3ZlcnNpb24gKCBUaHJlYWRJZCAgICAgICAgICAgICAgdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c2NhbGxBcmdMYXlvdXQqICAgICBsYXlvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypNT0QqL1N5c2NhbGxBcmdzKiAgIGFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL1N5c2NhbGxTdGF0dXMqIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKk9VVCovVVdvcmQqICAgICAgICAgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSENoYXIqICAgICAgICAgIGh5cGVyY2FsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVV29yZCAgICAgICAgICAgICAgICAgdmVyc2lvbikKK3sKKyAgIFZHXyhkbXNnKSgiV0FSTklORzogJXMgdmVyc2lvbiAlI2x4IG5vdCBzdXBwb3J0ZWRcbiIsCisgICAgICAgICAgICAgaHlwZXJjYWxsLCB2ZXJzaW9uKTsKKyAgIGlmIChWR18oY2xvX3ZlcmJvc2l0eSkgPiAxKSB7CisgICAgICBWR18oZ2V0X2FuZF9wcF9TdGFja1RyYWNlKSh0aWQsIFZHXyhjbG9fYmFja3RyYWNlX3NpemUpKTsKKyAgIH0KKyAgIFZHXyhkbXNnKSgiWW91IG1heSBiZSBhYmxlIHRvIHdyaXRlIHlvdXIgb3duIGhhbmRsZXIuXG4iKTsKKyAgIFZHXyhkbXNnKSgiUmVhZCB0aGUgZmlsZSBSRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMLlxuIik7CisgICBWR18oZG1zZykoIk5ldmVydGhlbGVzcyB3ZSBjb25zaWRlciB0aGlzIGEgYnVnLiAgUGxlYXNlIHJlcG9ydFxuIik7CisgICBWR18oZG1zZykoIml0IGF0IGh0dHA6Ly92YWxncmluZC5vcmcvc3VwcG9ydC9idWdfcmVwb3J0cy5odG1sICZcbiIpOworICAgVkdfKGRtc2cpKCJodHRwOi8vd2lraS54ZW4ub3JnL3dpa2kvUmVwb3J0aW5nX0J1Z3NfYWdhaW5zdF9YZW4uXG4iKTsKKworICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FTk9TWVMpOworfQorCiBzdGF0aWMgdm9pZCBiYWRfc3Vib3AgKCBUaHJlYWRJZCAgICAgICAgICAgICAgdGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgU3lzY2FsbEFyZ0xheW91dCogICAgIGxheW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgIC8qTU9EKi9TeXNjYWxsQXJncyogICBhcmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL1N5c2NhbGxTdGF0dXMqIHN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgIC8qT1VUKi9VV29yZCogICAgICAgICBmbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyKiAgICAgICAgICAgaHlwZXJjYWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSENoYXIqICAgICAgICAgIGh5cGVyY2FsbCwKICAgICAgICAgICAgICAgICAgICAgICAgIFVXb3JkICAgICAgICAgICAgICAgICBzdWJvcCkKIHsKLSAgIFZHXyhkbXNnKSgiV0FSTklORzogdW5oYW5kbGVkICVzIHN1Ym9wOiAlbGRcbiIsCisgICBWR18oZG1zZykoIldBUk5JTkc6IHVuaGFuZGxlZCAlcyBzdWJvcDogJWx1XG4iLAogICAgICAgICAgICAgIGh5cGVyY2FsbCwgc3Vib3ApOwogICAgaWYgKFZHXyhjbG9fdmVyYm9zaXR5KSA+IDEpIHsKICAgICAgIFZHXyhnZXRfYW5kX3BwX1N0YWNrVHJhY2UpKHRpZCwgVkdfKGNsb19iYWNrdHJhY2Vfc2l6ZSkpOwpAQCAtODksNyArMTExLDcgQEAKIAogUFJFKG1lbW9yeV9vcCkKIHsKLSAgIFBSSU5UKCJfX0hZUEVSVklTT1JfbWVtb3J5X29wICggJWxkLCAlbHggKSIsIEFSRzEsIEFSRzIpOworICAgUFJJTlQoIl9fSFlQRVJWSVNPUl9tZW1vcnlfb3AgKCAlbHUsICUjbHggKSIsIEFSRzEsIEFSRzIpOwogCiAgICBzd2l0Y2ggKEFSRzEpIHsKIApAQCAtMTAyLDcgKzEyNCw4IEBACiAgICAgICAgICAgICAgICAgICAgIChBZGRyKUFSRzIsIHNpemVvZih2a2lfeGVuX2RvbWlkX3QpKTsKICAgICAgICBicmVhazsKIAotICAgY2FzZSBWS0lfWEVOTUVNX21hY2hwaHlzX21mbl9saXN0OiB7CisgICBjYXNlIFZLSV9YRU5NRU1fbWFjaHBoeXNfbWZuX2xpc3Q6CisgICBjYXNlIFZLSV9YRU5NRU1fbWFjaHBoeXNfY29tcGF0X21mbl9saXN0OiB7CiAgICAgICAgc3RydWN0IHZraV94ZW5fbWFjaHBoeXNfbWZuX2xpc3QgKmFyZyA9CiAgICAgICAgICAgIChzdHJ1Y3QgdmtpX3hlbl9tYWNocGh5c19tZm5fbGlzdCAqKUFSRzI7CiAgICAgICAgUFJFX01FTV9SRUFEKCJYRU5NRU1fbWFjaHBoeXNfbWZuX2xpc3QgbWF4X2V4dGVudHMiLApAQCAtMTIxLDYgKzE0NCwxNiBAQAogICAgICAgICAgICAgICAgICAgIChBZGRyKSZhcmctPm1hcCwgc2l6ZW9mKGFyZy0+bWFwKSk7CiAgICAgICBicmVhazsKICAgIH0KKworICAgY2FzZSBWS0lfWEVOTUVNX21lbW9yeV9tYXA6CisgICBjYXNlIFZLSV9YRU5NRU1fbWFjaGluZV9tZW1vcnlfbWFwOiB7CisgICAgICBzdHJ1Y3QgdmtpX3hlbl9tZW1vcnlfbWFwICphcmcgPQorCSAgICAgIChzdHJ1Y3QgdmtpX3hlbl9tZW1vcnlfbWFwICopQVJHMjsKKyAgICAgIFBSRV9NRU1fUkVBRCgiWEVOTUVNX21lbW9yeV9tYXAgbnJfZW50cmllcyIsCisgICAgICAgICAgICAgICAgICAgKEFkZHIpJmFyZy0+bnJfZW50cmllcywgc2l6ZW9mKGFyZy0+bnJfZW50cmllcykpOworICAgICAgYnJlYWs7CisgICB9CisKICAgIGNhc2UgVktJX1hFTk1FTV9pbmNyZWFzZV9yZXNlcnZhdGlvbjoKICAgIGNhc2UgVktJX1hFTk1FTV9kZWNyZWFzZV9yZXNlcnZhdGlvbjoKICAgIGNhc2UgVktJX1hFTk1FTV9wb3B1bGF0ZV9waHlzbWFwOgpAQCAtMjIxLDYgKzI1NCw5IEBACiAKIFBSRShtbXVleHRfb3ApCiB7CisgICBQUklOVCgiX19IWVBFUlZJU09SX21tdWV4dF9vcCAoICUjbHgsICVsZCwgJSNseCwgJWx1ICkiLAorICAgICAgICAgQVJHMSwgU0FSRzIsIEFSRzMsIEFSRzQpOworCiAgICBzdHJ1Y3QgdmtpX3hlbl9tbXVleHRfb3AgKm9wcyA9IChzdHJ1Y3QgdmtpX3hlbl9tbXVleHRfb3AgKilBUkcxOwogICAgdW5zaWduZWQgaW50IGksIG5yID0gQVJHMjsKIApAQCAtMzA2LDYgKzM0Miw4MCBAQAogICAgfQogfQogCitQUkUoeHNtX29wKQoreworICAgLyogWFhYIGFzc3VtaW5nIGZsYXNrLCBvbmx5IGFjdHVhbCBYU00gcmlnaHQgbm93ICovCisgICBzdHJ1Y3QgdmtpX3hlbl9mbGFza19vcCAqb3AgPSAoc3RydWN0IHZraV94ZW5fZmxhc2tfb3AgKilBUkcxOworCisgICBQUklOVCgiX19IWVBFUlZJU09SX3hzbV9vcCAoICV1ICkiLCBvcC0+Y21kKTsKKworICAgLyoKKyAgICAqIENvbW1vbiBwYXJ0IG9mIHhlbl9mbGFza19vcDoKKyAgICAqICAgIHZraV91aW50MzJfdCBjbWQ7CisgICAgKiAgICB2a2lfdWludDMyX3QgaW50ZXJmYWNlX3ZlcnNpb247CisgICAgKi8KKyAgIFBSRV9NRU1fUkVBRCgiX19IWVBFUlZJU09SX3hzbV9vcCIsIEFSRzEsCisgICAgICAgICAgICAgICAgc2l6ZW9mKHZraV91aW50MzJfdCkgKyBzaXplb2YodmtpX3VpbnQzMl90KSk7CisKKyAgIGlmICghb3ApCisgICAgICByZXR1cm47CisKKyAgIHN3aXRjaCAob3AtPmludGVyZmFjZV92ZXJzaW9uKSB7CisgICBjYXNlIDB4MDAwMDAwMDE6CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBiYWRfaW50Zl92ZXJzaW9uKHRpZCwgbGF5b3V0LCBhcnJnaHMsIHN0YXR1cywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICJfX0hZUEVSVklTT1JfeHNtX29wIiwgb3AtPmludGVyZmFjZV92ZXJzaW9uKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworI2RlZmluZSBQUkVfWEVOX1hTTV9PUF9SRUFEKF94c21fb3AsIF91bmlvbiwgX2ZpZWxkKSAgICAgICAgICAgIFwKKyAgIFBSRV9NRU1fUkVBRCgiRkxBU0tfIiAjX3hzbV9vcCAiIHUuIiAjX3VuaW9uICIuIiAjX2ZpZWxkLCAgICBcCisgICAgICAgICAgICAgICAgKEFkZHIpJm9wLT51Ll91bmlvbi5fZmllbGQsICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHNpemVvZihvcC0+dS5fdW5pb24uX2ZpZWxkKSkKKworICAgc3dpdGNoIChvcC0+Y21kKSB7CisgICBjYXNlIFZLSV9GTEFTS19TSURfVE9fQ09OVEVYVDoKKyAgICAgIFBSRV9YRU5fWFNNX09QX1JFQUQoU0lEX1RPX0NPTlRFWFQsIHNpZF9jb250ZXh0LCBzaWQpOworICAgICAgUFJFX1hFTl9YU01fT1BfUkVBRChTSURfVE9fQ09OVEVYVCwgc2lkX2NvbnRleHQsIHNpemUpOworICAgICAgUFJFX1hFTl9YU01fT1BfUkVBRChTSURfVE9fQ09OVEVYVCwgc2lkX2NvbnRleHQsIGNvbnRleHQucCk7CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICBiYWRfc3Vib3AodGlkLCBsYXlvdXQsIGFycmdocywgc3RhdHVzLCBmbGFncywKKyAgICAgICAgICAgICAgICAiX19IWVBFUlZJU09SX3hzbV9vcCIsIG9wLT5jbWQpOworICAgICAgYnJlYWs7CisgICB9CisjdW5kZWYgX19QUkVfWEVOX1hTTV9PUF9SRUFECisjdW5kZWYgUFJFX1hFTl9YU01fT1BfUkVBRAorfQorCitQUkUoc2NoZWRfb3ApCit7CisgICBQUklOVCgiX19IWVBFUlZJU09SX3NjaGVkX29wICggJWxkLCAlI2x4ICkiLCBTQVJHMSwgQVJHMik7CisgICB2b2lkICphcmcgPSAodm9pZCAqKSh1bnNpZ25lZCBsb25nKUFSRzI7CisKKyNkZWZpbmUgX19QUkVfWEVOX1NDSEVET1BfUkVBRChfc2NoZWRvcCwgX3R5cGUsIF9maWVsZCkgXAorICAgUFJFX01FTV9SRUFEKCJYRU5fU0NIRURPUF8iICMgX3NjaGVkb3AgIiAiICNfZmllbGQsICBcCisgICAgICAgICAgICAgICAgKEFkZHIpJigoX3R5cGUqKWFyZyktPl9maWVsZCwgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBzaXplb2YoKChfdHlwZSopYXJnKS0+X2ZpZWxkKSkKKyNkZWZpbmUgUFJFX1hFTl9TQ0hFRE9QX1JFQUQoX3NjaGVkb3AsIF9maWVsZCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIF9fUFJFX1hFTl9TQ0hFRE9QX1JFQUQoX3NjaGVkb3AsIHZraV94ZW5fICMjIF9zY2hlZG9wICMjIF90LCBfZmllbGQpCisKKyAgIHN3aXRjaCAoQVJHMSkgeworICAgY2FzZSBWS0lfWEVOX1NDSEVET1BfcmVtb3RlX3NodXRkb3duOgorICAgICAgUFJFX1hFTl9TQ0hFRE9QX1JFQUQocmVtb3RlX3NodXRkb3duLCBkb21haW5faWQpOworICAgICAgUFJFX1hFTl9TQ0hFRE9QX1JFQUQocmVtb3RlX3NodXRkb3duLCByZWFzb24pOworICAgICAgYnJlYWs7CisKKyAgIGRlZmF1bHQ6CisgICAgICBiYWRfc3Vib3AodGlkLCBsYXlvdXQsIGFycmdocywgc3RhdHVzLCBmbGFncywKKyAgICAgICAgICAgICAgICAiX19IWVBFUlZJU09SX3NjaGVkX29wIiwgQVJHMSk7CisgICAgICBicmVhazsKKyAgIH0KKyN1bmRlZiBfX1BSRV9YRU5fU0NIRURPUF9SRUFECisjdW5kZWYgUFJFX1hFTl9TQ0hFRE9QX1JFQUQKK30KKwogc3RhdGljIHZvaWQgcHJlX2V2dGNobl9vcChUaHJlYWRJZCB0aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c2NhbGxBcmdMYXlvdXQqICAgICBsYXlvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qTU9EKi9TeXNjYWxsQXJncyogICBhcnJnaHMsCkBAIC0zMTMsNyArNDIzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgLypPVVQqL1VXb3JkKiAgICAgICAgIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZraV91MzIgY21kLCB2b2lkICphcmcsIGludCBjb21wYXQpCiB7Ci0gICBQUklOVCgiX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AlcyAoICVkLCAlcCApIiwKKyAgIFBSSU5UKCJfX0hZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcCVzICggJXUsICVwICkiLAogICAgICAgICAgY29tcGF0ID8gIl9jb21wYXQiIDogIiIsIGNtZCwgYXJnKTsKIAogICAgc3dpdGNoIChjbWQpIHsKQEAgLTM1Myw5ICs0NjMsNjMgQEAKICAgICAgICAgICAgICAgICAgZXZ0Y2huLT5jbWQsICZldnRjaG4tPnUsIDEpOwogfQogCitQUkUocGh5c2Rldl9vcCkKK3sKKyAgIGludCBjbWQgPSBBUkcxOworCisgICBQUklOVCgiX19IWVBFUlZJU09SX3BoeXNkZXZfb3AgKCAlbGQsICUjbHggKSIsIFNBUkcxLCBBUkcyKTsKKworI2RlZmluZSBQUkVfWEVOX1BIWVNERVZPUF9SRUFEKF9vcCwgX2ZpZWxkKQkJXAorICAgUFJFX01FTV9SRUFEKCJYRU5fUEhZU0RFVk9QXyIgI19vcCAiIC4iICNfZmllbGQsCVwKKyAgICAgICAgICAgICAgICAoQWRkcikmYXJnLT5fZmllbGQsCQkJXAorICAgICAgICAgICAgICAgIHNpemVvZihhcmctPl9maWVsZCkpCisKKyAgIHN3aXRjaCAoY21kKSB7CisgICBjYXNlIFZLSV9YRU5fUEhZU0RFVk9QX21hcF9waXJxOiB7CisgICAgICBzdHJ1Y3QgdmtpX3hlbl9waHlzZGV2X21hcF9waXJxICphcmcgPQorICAgICAgICAgKHN0cnVjdCB2a2lfeGVuX3BoeXNkZXZfbWFwX3BpcnEgKilBUkcyOworCisgICAgICBQUkVfWEVOX1BIWVNERVZPUF9SRUFEKCJtYXBfcGlycSIsIGRvbWlkKTsKKyAgICAgIFBSRV9YRU5fUEhZU0RFVk9QX1JFQUQoIm1hcF9waXJxIiwgdHlwZSk7CisKKyAgICAgIFBSRV9YRU5fUEhZU0RFVk9QX1JFQUQoIm1hcF9waXJxIiwgYnVzKTsKKyAgICAgIFBSRV9YRU5fUEhZU0RFVk9QX1JFQUQoIm1hcF9waXJxIiwgZGV2Zm4pOworICAgICAgUFJFX1hFTl9QSFlTREVWT1BfUkVBRCgibWFwX3BpcnEiLCBlbnRyeV9ucik7CisgICAgICBQUkVfWEVOX1BIWVNERVZPUF9SRUFEKCJtYXBfcGlycSIsIHRhYmxlX2Jhc2UpOworCisgICAgICBzd2l0Y2goYXJnLT50eXBlKSB7CisgICAgICBjYXNlIFZLSV9YRU5fTUFQX1BJUlFfVFlQRV9NU0k6CisgICAgICAgICBQUkVfWEVOX1BIWVNERVZPUF9SRUFEKCJtYXBfcGlycSIsIGluZGV4KTsKKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfWEVOX01BUF9QSVJRX1RZUEVfR1NJOgorICAgICAgICAgUFJFX1hFTl9QSFlTREVWT1BfUkVBRCgibWFwX3BpcnEiLCBpbmRleCk7CisgICAgICAgICBQUkVfWEVOX1BIWVNERVZPUF9SRUFEKCJtYXBfcGlycSIsIHBpcnEpOworICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9YRU5fTUFQX1BJUlFfVFlQRV9NU0lfU0VHOgorICAgICAgICAgUFJFX1hFTl9QSFlTREVWT1BfUkVBRCgibWFwX3BpcnEiLCBpbmRleCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVktJX1hFTl9NQVBfUElSUV9UWVBFX01VTFRJX01TSToKKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgYnJlYWs7CisgICB9CisgICBjYXNlIFZLSV9YRU5fUEhZU0RFVk9QX3VubWFwX3BpcnE6IHsKKyAgICAgIHN0cnVjdCB2a2lfeGVuX3BoeXNkZXZfdW5tYXBfcGlycSAqYXJnID0KKyAgICAgICAgIChzdHJ1Y3QgdmtpX3hlbl9waHlzZGV2X3VubWFwX3BpcnEgKilBUkcyOworICAgICAgUFJFX1hFTl9QSFlTREVWT1BfUkVBRCgidW5tYXBfcGlycSIsIGRvbWlkKTsKKyAgICAgIFBSRV9YRU5fUEhZU0RFVk9QX1JFQUQoInVubWFwX3BpcnEiLCBwaXJxKTsKKyAgICAgIGJyZWFrOworICAgfQorICAgZGVmYXVsdDoKKyAgICAgIGJhZF9zdWJvcCh0aWQsIGxheW91dCwgYXJyZ2hzLCBzdGF0dXMsIGZsYWdzLAorICAgICAgICAgICAgICAgICJfX0hZUEVSVklTT1JfcGh5c2Rldl9vcCIsIGNtZCk7CisgICB9CisjdW5kZWYgUFJFX1hFTl9QSFlTREVWT1BfUkVBRAorfQorCiBQUkUoeGVuX3ZlcnNpb24pCiB7Ci0gICBQUklOVCgiX19IWVBFUlZJU09SX3hlbl92ZXJzaW9uICggJWxkLCAlbHggKSIsIEFSRzEsIEFSRzIpOworICAgUFJJTlQoIl9fSFlQRVJWSVNPUl94ZW5fdmVyc2lvbiAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOwogCiAgICBzd2l0Y2ggKEFSRzEpIHsKICAgIGNhc2UgVktJX1hFTlZFUl92ZXJzaW9uOgpAQCAtMzgwLDcgKzU0NCw3IEBACiAKIFBSRShncmFudF90YWJsZV9vcCkKIHsKLSAgIFBSSU5UKCJfX0hZUEVSVklTT1JfZ3JhbnRfdGFibGVfb3AgKCAlbGQsIDB4JWx4LCAlbGQgKSIsIEFSRzEsIEFSRzIsIEFSRzMpOworICAgUFJJTlQoIl9fSFlQRVJWSVNPUl9ncmFudF90YWJsZV9vcCAoICVsdSwgJSNseCwgJWx1ICkiLCBBUkcxLCBBUkcyLCBBUkczKTsKICAgIHN3aXRjaCAoQVJHMSkgewogICAgY2FzZSBWS0lfWEVOX0dOVFRBQk9QX3NldHVwX3RhYmxlOiB7CiAgICAgICBzdHJ1Y3QgdmtpX3hlbl9nbnR0YWJfc2V0dXBfdGFibGUgKmdzdCA9CkBAIC00MDEsNyArNTY1LDcgQEAKIFBSRShzeXNjdGwpIHsKICAgIHN0cnVjdCB2a2lfeGVuX3N5c2N0bCAqc3lzY3RsID0gKHN0cnVjdCB2a2lfeGVuX3N5c2N0bCAqKUFSRzE7CiAKLSAgIFBSSU5UKCJfX0hZUEVSVklTT1Jfc3lzY3RsICggJWQgKSIsIHN5c2N0bC0+Y21kKTsKKyAgIFBSSU5UKCJfX0hZUEVSVklTT1Jfc3lzY3RsICggJXUgKSIsIHN5c2N0bC0+Y21kKTsKIAogICAgLyoKICAgICAqIENvbW1vbiBwYXJ0IG9mIHhlbl9zeXNjdGw6CkBAIC00MTksMjAgKzU4MywxMSBAQAogICAgY2FzZSAweDAwMDAwMDA4OgogICAgY2FzZSAweDAwMDAwMDA5OgogICAgY2FzZSAweDAwMDAwMDBhOgorICAgY2FzZSAweDAwMDAwMDBiOgogCSAgIGJyZWFrOwogICAgZGVmYXVsdDoKLSAgICAgIFZHXyhkbXNnKSgiV0FSTklORzogc3lzY3RsIHZlcnNpb24gJSJQUkl4MzIiIG5vdCBzdXBwb3J0ZWRcbiIsCi0gICAgICAgICAgICAgICAgc3lzY3RsLT5pbnRlcmZhY2VfdmVyc2lvbik7Ci0gICAgICBpZiAoVkdfKGNsb192ZXJib3NpdHkpID4gMSkgewotICAgICAgICAgVkdfKGdldF9hbmRfcHBfU3RhY2tUcmFjZSkodGlkLCBWR18oY2xvX2JhY2t0cmFjZV9zaXplKSk7Ci0gICAgICB9Ci0gICAgICBWR18oZG1zZykoIllvdSBtYXkgYmUgYWJsZSB0byB3cml0ZSB5b3VyIG93biBoYW5kbGVyLlxuIik7Ci0gICAgICBWR18oZG1zZykoIlJlYWQgdGhlIGZpbGUgUkVBRE1FX01JU1NJTkdfU1lTQ0FMTF9PUl9JT0NUTC5cbiIpOwotICAgICAgVkdfKGRtc2cpKCJOZXZlcnRoZWxlc3Mgd2UgY29uc2lkZXIgdGhpcyBhIGJ1Zy4gIFBsZWFzZSByZXBvcnRcbiIpOwotICAgICAgVkdfKGRtc2cpKCJpdCBhdCBodHRwOi8vdmFsZ3JpbmQub3JnL3N1cHBvcnQvYnVnX3JlcG9ydHMuaHRtbCAmXG4iKTsKLSAgICAgIFZHXyhkbXNnKSgiaHR0cDovL3dpa2kueGVuLm9yZy93aWtpL1JlcG9ydGluZ19CdWdzX2FnYWluc3RfWGVuLlxuIik7Ci0KLSAgICAgIFNFVF9TVEFUVVNfRmFpbHVyZShWS0lfRUlOVkFMKTsKKyAgICAgIGJhZF9pbnRmX3ZlcnNpb24odGlkLCBsYXlvdXQsIGFycmdocywgc3RhdHVzLCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgIl9fSFlQRVJWSVNPUl9zeXNjdGwiLCBzeXNjdGwtPmludGVyZmFjZV92ZXJzaW9uKTsKICAgICAgIHJldHVybjsKICAgIH0KIApAQCAtNDcwLDYgKzYyNSw3IEBACiAJIFBSRV9YRU5fU1lTQ1RMX1JFQUQoZ2V0ZG9tYWluaW5mb2xpc3RfMDAwMDAwMDksIGJ1ZmZlcik7CiAJIGJyZWFrOwogICAgICAgY2FzZSAweDAwMDAwMDBhOgorICAgICAgY2FzZSAweDAwMDAwMDBiOgogCSBQUkVfWEVOX1NZU0NUTF9SRUFEKGdldGRvbWFpbmluZm9saXN0XzAwMDAwMDBhLCBmaXJzdF9kb21haW4pOwogCSBQUkVfWEVOX1NZU0NUTF9SRUFEKGdldGRvbWFpbmluZm9saXN0XzAwMDAwMDBhLCBtYXhfZG9tYWlucyk7CiAJIFBSRV9YRU5fU1lTQ1RMX1JFQUQoZ2V0ZG9tYWluaW5mb2xpc3RfMDAwMDAwMGEsIGJ1ZmZlcik7CkBAIC01NTEsNyArNzA3LDcgQEAKIHsKICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bCAqZG9tY3RsID0gKHN0cnVjdCB2a2lfeGVuX2RvbWN0bCAqKUFSRzE7CiAKLSAgIFBSSU5UKCJfX0hZUEVSVklTT1JfZG9tY3RsICggJWQgKSBvbiBkb20lZCIsIGRvbWN0bC0+Y21kLCBkb21jdGwtPmRvbWFpbik7CisgICBQUklOVCgiX19IWVBFUlZJU09SX2RvbWN0bCAoICV1ICkgb24gZG9tJWQiLCBkb21jdGwtPmNtZCwgZG9tY3RsLT5kb21haW4pOwogCiAgICAvKgogICAgICogQ29tbW9uIHBhcnQgb2YgeGVuX2RvbWN0bDoKQEAgLTU3MSwyMCArNzI3LDExIEBACiAgICBjYXNlIDB4MDAwMDAwMDc6CiAgICBjYXNlIDB4MDAwMDAwMDg6CiAgICBjYXNlIDB4MDAwMDAwMDk6CisgICBjYXNlIDB4MDAwMDAwMGE6CiAJICAgYnJlYWs7CiAgICBkZWZhdWx0OgotICAgICAgVkdfKGRtc2cpKCJXQVJOSU5HOiBkb21jdGwgdmVyc2lvbiAlIlBSSXgzMiIgbm90IHN1cHBvcnRlZFxuIiwKLSAgICAgICAgICAgICAgICBkb21jdGwtPmludGVyZmFjZV92ZXJzaW9uKTsKLSAgICAgIGlmIChWR18oY2xvX3ZlcmJvc2l0eSkgPiAxKSB7Ci0gICAgICAgICBWR18oZ2V0X2FuZF9wcF9TdGFja1RyYWNlKSh0aWQsIFZHXyhjbG9fYmFja3RyYWNlX3NpemUpKTsKLSAgICAgIH0KLSAgICAgIFZHXyhkbXNnKSgiWW91IG1heSBiZSBhYmxlIHRvIHdyaXRlIHlvdXIgb3duIGhhbmRsZXIuXG4iKTsKLSAgICAgIFZHXyhkbXNnKSgiUmVhZCB0aGUgZmlsZSBSRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMLlxuIik7Ci0gICAgICBWR18oZG1zZykoIk5ldmVydGhlbGVzcyB3ZSBjb25zaWRlciB0aGlzIGEgYnVnLiAgUGxlYXNlIHJlcG9ydFxuIik7Ci0gICAgICBWR18oZG1zZykoIml0IGF0IGh0dHA6Ly92YWxncmluZC5vcmcvc3VwcG9ydC9idWdfcmVwb3J0cy5odG1sICZcbiIpOwotICAgICAgVkdfKGRtc2cpKCJodHRwOi8vd2lraS54ZW4ub3JnL3dpa2kvUmVwb3J0aW5nX0J1Z3NfYWdhaW5zdF9YZW4uXG4iKTsKLQotICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgICAgYmFkX2ludGZfdmVyc2lvbih0aWQsIGxheW91dCwgYXJyZ2hzLCBzdGF0dXMsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAiX19IWVBFUlZJU09SX2RvbWN0bCIsIGRvbWN0bC0+aW50ZXJmYWNlX3ZlcnNpb24pOwogICAgICAgcmV0dXJuOwogICAgfQogCkBAIC02NTgsNiArODA1LDE2IEBACiAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0X2FkZHJlc3Nfc2l6ZSwgYWRkcmVzc19zaXplLCBzaXplKTsKICAgICAgIGJyZWFrOwogCisgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX3Rlc3RfYXNzaWduX2RldmljZToKKyAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRCh0ZXN0X2Fzc2lnbl9kZXZpY2UsIGFzc2lnbl9kZXZpY2UsIG1hY2hpbmVfc2JkZik7CisgICAgICBicmVhazsKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfYXNzaWduX2RldmljZToKKyAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChhc3NpZ25fZGV2aWNlLCBhc3NpZ25fZGV2aWNlLCBtYWNoaW5lX3NiZGYpOworICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZToKKyAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChkZWFzc2lnbl9kZXZpY2UsIGFzc2lnbl9kZXZpY2UsIG1hY2hpbmVfc2JkZik7CisgICAgICBicmVhazsKKwogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXR0c2NpbmZvOgogICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldHRzY2luZm8sIHRzY19pbmZvLCBpbmZvLnRzY19tb2RlKTsKICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXR0c2NpbmZvLCB0c2NfaW5mbywgaW5mby5ndHNjX2toeik7CkBAIC02NjUsNiArODIyLDE3IEBACiAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0dHNjaW5mbywgdHNjX2luZm8sIGluZm8uZWxhcHNlZF9uc2VjKTsKICAgICAgIGJyZWFrOwogCisgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uOgorICAgICAgUFJFX1hFTl9ET01DVExfUkVBRChpcnFfcGVybWlzc2lvbiwgcGlycSk7CisgICAgICBQUkVfWEVOX0RPTUNUTF9SRUFEKGlycV9wZXJtaXNzaW9uLCBhbGxvd19hY2Nlc3MpOworICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfaW9tZW1fcGVybWlzc2lvbjoKKyAgICAgIFBSRV9YRU5fRE9NQ1RMX1JFQUQoaW9tZW1fcGVybWlzc2lvbiwgZmlyc3RfbWZuKTsKKyAgICAgIFBSRV9YRU5fRE9NQ1RMX1JFQUQoaW9tZW1fcGVybWlzc2lvbiwgbnJfbWZucyk7CisgICAgICBQUkVfWEVOX0RPTUNUTF9SRUFEKGlvbWVtX3Blcm1pc3Npb24sIGFsbG93X2FjY2Vzcyk7CisgICAgICBicmVhazsKKwogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKICAgICAgIFBSRV9YRU5fRE9NQ1RMX1JFQUQoaW9wb3J0X3Blcm1pc3Npb24sIGZpcnN0X3BvcnQpOwogICAgICAgUFJFX1hFTl9ET01DVExfUkVBRChpb3BvcnRfcGVybWlzc2lvbiwgbnJfcG9ydHMpOwpAQCAtNzAyLDYgKzg3MCwxMCBAQAogICAgICAgICAgY2FzZSBWS0lfWEVOX1NDSEVEVUxFUl9DUkVESVQyOgogICAgICAgICAgICAgUFJFX1hFTl9ET01DVExfUkVBRChzY2hlZHVsZXJfb3AsIHUuY3JlZGl0Mi53ZWlnaHQpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFZLSV9YRU5fU0NIRURVTEVSX1JURFM6CisgICAgICAgICAgICBQUkVfWEVOX0RPTUNUTF9SRUFEKHNjaGVkdWxlcl9vcCwgdS5ydGRzLnBlcmlvZCk7CisgICAgICAgICAgICBQUkVfWEVOX0RPTUNUTF9SRUFEKHNjaGVkdWxlcl9vcCwgdS5ydGRzLmJ1ZGdldCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgVktJX1hFTl9TQ0hFRFVMRVJfQVJJTkM2NTM6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KQEAgLTcwOSwxNCArODgxLDU3IEBACiAgICAgICBicmVhazsKIAogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9nZXR2Y3B1YWZmaW5pdHk6Ci0gICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoZ2V0dmNwdWFmZmluaXR5LCB2Y3B1YWZmaW5pdHksIHZjcHUpOworICAgICAgc3dpdGNoIChkb21jdGwtPmludGVyZmFjZV92ZXJzaW9uKSB7CisgICAgICBjYXNlIDB4MDAwMDAwMDc6CisgICAgICBjYXNlIDB4MDAwMDAwMDg6CisgICAgICBjYXNlIDB4MDAwMDAwMDk6CisgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoZ2V0dmNwdWFmZmluaXR5LCB2Y3B1YWZmaW5pdHlfMDAwMDAwMDksIHZjcHUpOworICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKGdldHZjcHVhZmZpbml0eSwgdmNwdWFmZmluaXR5XzAwMDAwMDA5LCBjcHVtYXAubnJfYml0cyk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgwMDAwMDAwYToKKyAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChnZXR2Y3B1YWZmaW5pdHksIHZjcHVhZmZpbml0eV8wMDAwMDAwYSwgdmNwdSk7CisgICAgICAgICBpZiAoZG9tY3RsLT51LnZjcHVhZmZpbml0eV8wMDAwMDAwYS5mbGFncyAmIFZLSV9YRU5fVkNQVUFGRklOSVRZX0hBUkQpCisgICAgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoCisgICAgICAgICAgICAgICBzZXR2Y3B1YWZmaW5pdHksIHZjcHVhZmZpbml0eV8wMDAwMDAwYSwgY3B1bWFwX2hhcmQubnJfYml0cyk7CisgICAgICAgICBpZiAoZG9tY3RsLT51LnZjcHVhZmZpbml0eV8wMDAwMDAwYS5mbGFncyAmIFZLSV9YRU5fVkNQVUFGRklOSVRZX1NPRlQpCisgICAgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoCisgICAgICAgICAgICAgICBzZXR2Y3B1YWZmaW5pdHksIHZjcHVhZmZpbml0eV8wMDAwMDAwYSwgY3B1bWFwX3NvZnQubnJfYml0cyk7CisgICAgICAgICBicmVhazsKKyAgICAgIH0KICAgICAgIGJyZWFrOwogCiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX3NldHZjcHVhZmZpbml0eToKLSAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXR2Y3B1YWZmaW5pdHksIHZjcHVhZmZpbml0eSwgdmNwdSk7Ci0gICAgICBQUkVfTUVNX1JFQUQoIlhFTl9ET01DVExfc2V0dmNwdWFmZmluaXR5IHUudmNwdWFmZmluaXR5LmNwdW1hcC5iaXRtYXAiLAotICAgICAgICAgICAgICAgICAgIChBZGRyKWRvbWN0bC0+dS52Y3B1YWZmaW5pdHkuY3B1bWFwLmJpdG1hcC5wLAotICAgICAgICAgICAgICAgICAgIGRvbWN0bC0+dS52Y3B1YWZmaW5pdHkuY3B1bWFwLm5yX2JpdHMgLyA4KTsKKyAgICAgIHN3aXRjaCAoZG9tY3RsLT5pbnRlcmZhY2VfdmVyc2lvbikgeworICAgICAgY2FzZSAweDAwMDAwMDA3OgorICAgICAgY2FzZSAweDAwMDAwMDA4OgorICAgICAgY2FzZSAweDAwMDAwMDA5OgorICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldHZjcHVhZmZpbml0eSwgdmNwdWFmZmluaXR5XzAwMDAwMDA5LCB2Y3B1KTsKKyAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXR2Y3B1YWZmaW5pdHksIHZjcHVhZmZpbml0eV8wMDAwMDAwOSwgY3B1bWFwLm5yX2JpdHMpOworICAgICAgICAgUFJFX01FTV9SRUFEKCJYRU5fRE9NQ1RMX3NldHZjcHVhZmZpbml0eSB1LnZjcHVhZmZpbml0eS5jcHVtYXAuYml0bWFwIiwKKyAgICAgICAgICAgICAgICAgICAgICAoQWRkcilkb21jdGwtPnUudmNwdWFmZmluaXR5XzAwMDAwMDA5LmNwdW1hcC5iaXRtYXAucCwKKyAgICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUudmNwdWFmZmluaXR5XzAwMDAwMDA5LmNwdW1hcC5ucl9iaXRzIC8gOCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgwMDAwMDAwYToKKyAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXR2Y3B1YWZmaW5pdHksIHZjcHVhZmZpbml0eV8wMDAwMDAwYSwgdmNwdSk7CisgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0dmNwdWFmZmluaXR5LCB2Y3B1YWZmaW5pdHlfMDAwMDAwMGEsIGZsYWdzKTsKKyAgICAgICAgIGlmIChkb21jdGwtPnUudmNwdWFmZmluaXR5XzAwMDAwMDBhLmZsYWdzICYgVktJX1hFTl9WQ1BVQUZGSU5JVFlfSEFSRCkgeworICAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKAorICAgICAgICAgICAgICAgc2V0dmNwdWFmZmluaXR5LCB2Y3B1YWZmaW5pdHlfMDAwMDAwMGEsIGNwdW1hcF9oYXJkLm5yX2JpdHMpOworICAgICAgICAgICAgUFJFX01FTV9SRUFEKAorICAgICAgICAgICAgICAgIlhFTl9ET01DVExfc2V0dmNwdWFmZmluaXR5IHUudmNwdWFmZmluaXR5LmNwdW1hcF9oYXJkLmJpdG1hcCIsCisgICAgICAgICAgICAgICAoQWRkcilkb21jdGwtPnUudmNwdWFmZmluaXR5XzAwMDAwMDBhLmNwdW1hcF9oYXJkLmJpdG1hcC5wLAorICAgICAgICAgICAgICAgZG9tY3RsLT51LnZjcHVhZmZpbml0eV8wMDAwMDAwYS5jcHVtYXBfaGFyZC5ucl9iaXRzIC8gOCk7CisgICAgICAgICB9CisgICAgICAgICBpZiAoZG9tY3RsLT51LnZjcHVhZmZpbml0eV8wMDAwMDAwYS5mbGFncyAmIFZLSV9YRU5fVkNQVUFGRklOSVRZX1NPRlQpIHsKKyAgICAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRCgKKyAgICAgICAgICAgICAgIHNldHZjcHVhZmZpbml0eSwgdmNwdWFmZmluaXR5XzAwMDAwMDBhLCBjcHVtYXBfc29mdC5ucl9iaXRzKTsKKyAgICAgICAgICAgIFBSRV9NRU1fUkVBRCgKKyAgICAgICAgICAgICAgICJYRU5fRE9NQ1RMX3NldHZjcHVhZmZpbml0eSB1LnZjcHVhZmZpbml0eS5jcHVtYXBfc29mdC5iaXRtYXAiLAorICAgICAgICAgICAgICAgKEFkZHIpZG9tY3RsLT51LnZjcHVhZmZpbml0eV8wMDAwMDAwYS5jcHVtYXBfc29mdC5iaXRtYXAucCwKKyAgICAgICAgICAgICAgIGRvbWN0bC0+dS52Y3B1YWZmaW5pdHlfMDAwMDAwMGEuY3B1bWFwX3NvZnQubnJfYml0cyAvIDgpOworICAgICAgICAgfQorICAgICAgYnJlYWs7CisgICAgICB9CiAgICAgICBicmVhazsKIAogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9nZXRub2RlYWZmaW5pdHk6CkBAIC03MzgsNiArOTUzLDk4IEBACiAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0dmNwdWNvbnRleHQsIHZjcHVjb250ZXh0LCBjdHh0LnApOwogICAgICAgYnJlYWs7CiAKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfcGluX21lbV9jYWNoZWF0dHI6CisgICAgICBQUkVfWEVOX0RPTUNUTF9SRUFEKHBpbl9tZW1fY2FjaGVhdHRyLCBzdGFydCk7CisgICAgICBQUkVfWEVOX0RPTUNUTF9SRUFEKHBpbl9tZW1fY2FjaGVhdHRyLCBlbmQpOworICAgICAgUFJFX1hFTl9ET01DVExfUkVBRChwaW5fbWVtX2NhY2hlYXR0ciwgdHlwZSk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9nZXRfZXh0X3ZjcHVjb250ZXh0OgorICAgICAgc3dpdGNoIChkb21jdGwtPmludGVyZmFjZV92ZXJzaW9uKQorICAgICAgeworICAgICAgY2FzZSAweDAwMDAwMDA3OgorICAgICAgY2FzZSAweDAwMDAwMDA4OgorICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKGdldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOCwgdmNwdSk7CisgICAgICAgICBicmVhazsKKworICAgICAgY2FzZSAweDAwMDAwMDA5OgorICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKGdldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwgdmNwdSk7CisgICAgICAgICBicmVhazsKKworICAgICAgZGVmYXVsdDoKKyAgICAgICAgIFZHXyhkbXNnKSgiV0FSTklORzogVktJX1hFTl9ET01DVExfZ2V0X2V4dF92Y3B1Y29udGV4dCAgZG9tY3RsIHZlcnNpb24gJSMiCisgICAgICAgICAgICAgICAgICAgUFJJeDMyIiBub3QgaW1wbGVtZW50ZWRcbiIsIGRvbWN0bC0+aW50ZXJmYWNlX3ZlcnNpb24pOworICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXRfZXh0X3ZjcHVjb250ZXh0OgorICAgICAgIHN3aXRjaCAoZG9tY3RsLT5pbnRlcmZhY2VfdmVyc2lvbikKKyAgICAgICB7CisgICAgICAgY2FzZSAweDAwMDAwMDA3OgorICAgICAgIGNhc2UgMHgwMDAwMDAwODoKKyAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOCwgdmNwdSk7CisgICAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDgsIHNpemUpOworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2NhbGwzMl9jYWxsYmFja19laXApOworICAgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzZW50ZXJfY2FsbGJhY2tfZWlwKTsKKyAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2NhbGwzMl9jYWxsYmFja19jcyk7CisgICAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNlbnRlcl9jYWxsYmFja19jcyk7CisgICAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsMzJfZGlzYWJsZXNfZXZlbnRzKTsKKyAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2VudGVyX2Rpc2FibGVzX2V2ZW50cyk7CisKKyAgICAgICAgICAgaWYgKCBkb21jdGwtPnUuZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA4LnNpemUgPj0KKyAgICAgICAgICAgICAgICBvZmZzZXRvZihzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA4LCBtY2dfY2FwKSApCisgICAgICAgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1jZ19jYXApOworI2VuZGlmCisgICAgICAgICAgIGJyZWFrOworCisgICAgICAgY2FzZSAweDAwMDAwMDA5OgorICAgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5LCB2Y3B1KTsKKyAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwgc2l6ZSk7CisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzY2FsbDMyX2NhbGxiYWNrX2VpcCk7CisgICAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNlbnRlcl9jYWxsYmFja19laXApOworICAgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzY2FsbDMyX2NhbGxiYWNrX2NzKTsKKyAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2VudGVyX2NhbGxiYWNrX2NzKTsKKyAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHMpOworICAgICAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzZW50ZXJfZGlzYWJsZXNfZXZlbnRzKTsKKworICAgICAgICAgICBpZiAoIGRvbWN0bC0+dS5leHRfdmNwdWNvbnRleHRfMDAwMDAwMDkuc2l6ZSA+PQorICAgICAgICAgICAgICAgIG9mZnNldG9mKHN0cnVjdCB2a2lfeGVuX2RvbWN0bF9leHRfdmNwdWNvbnRleHRfMDAwMDAwMDksIGNhcHMpICkKKyAgICAgICAgICAgeworICAgICAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXBzKTsKKyAgICAgICAgICAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWNpX2N0bDJfYmFuazApOworICAgICAgICAgICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtY2lfY3RsMl9iYW5rMSk7CisgICAgICAgICAgIH0KKyNlbmRpZgorCSAgIGJyZWFrOworCisgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgVkdfKGRtc2cpKCJXQVJOSU5HOiBWS0lfWEVOX0RPTUNUTF9zZXRfZXh0X3ZjcHVjb250ZXh0ICBkb21jdGwgdmVyc2lvbiAlIyIKKyAgICAgICAgICAgICAgICAgICAgIFBSSXgzMiIgbm90IGltcGxlbWVudGVkXG4iLCBkb21jdGwtPmludGVyZmFjZV92ZXJzaW9uKTsKKyAgICAgICAgICAgU0VUX1NUQVRVU19GYWlsdXJlKFZLSV9FSU5WQUwpOworICAgICAgICAgICBicmVhazsKKyAgICAgICB9CisgICAgICAgYnJlYWs7CisKICAgIGNhc2UgVktJX1hFTl9ET01DVExfc2V0X2NwdWlkOgogICAgICAgUFJFX01FTV9SRUFEKCJYRU5fRE9NQ1RMX3NldF9jcHVpZCB1LmNwdWlkIiwKICAgICAgICAgICAgICAgICAgICAoQWRkcikmZG9tY3RsLT51LmNwdWlkLCBzaXplb2YoZG9tY3RsLT51LmNwdWlkKSk7CkBAIC03NTEsNiArMTA1OCwxNSBAQAogICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUuZ2V0cGFnZWZyYW1laW5mbzMubnVtICogc2l6ZW9mKHZraV94ZW5fcGZuX3QpKTsKICAgICAgICBicmVhazsKIAorICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXR2Y3B1ZXh0c3RhdGU6CisgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoc2V0dmNwdWV4dHN0YXRlLCB2Y3B1ZXh0c3RhdGUsIHZjcHUpOworICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldHZjcHVleHRzdGF0ZSwgdmNwdWV4dHN0YXRlLCBzaXplKTsKKyAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXR2Y3B1ZXh0c3RhdGUsIHZjcHVleHRzdGF0ZSwgYnVmZmVyKTsKKyAgICAgIFBSRV9NRU1fUkVBRCgiWEVOX0RPTUNUTF9zZXR2Y3B1ZXh0c3RhdGUgKnUudmNwdWV4dHN0YXRlLmJ1ZmZlci5wIiwKKyAgICAgICAgICAgICAgICAgICAoQWRkcilkb21jdGwtPnUudmNwdWV4dHN0YXRlLmJ1ZmZlci5wLAorICAgICAgICAgICAgICAgICAgIGRvbWN0bC0+dS52Y3B1ZXh0c3RhdGUuc2l6ZSk7CisgICAgICBicmVhazsKKwogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9nZXR2Y3B1ZXh0c3RhdGU6CiAgICAgICBfX1BSRV9YRU5fRE9NQ1RMX1JFQUQoZ2V0dmNwdWV4dHN0YXRlLCB2Y3B1ZXh0c3RhdGUsIHZjcHUpOwogICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKGdldHZjcHVleHRzdGF0ZSwgdmNwdWV4dHN0YXRlLCB4ZmVhdHVyZV9tYXNrKTsKQEAgLTc2NCw2ICsxMDgwLDcgQEAKICAgICAgICBzd2l0Y2goZG9tY3RsLT51LnNoYWRvd19vcC5vcCkKICAgICAgICB7CiAgICAgICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9TSEFET1dfT1BfT0ZGOgorICAgICAgIGNhc2UgVktJX1hFTl9ET01DVExfU0hBRE9XX09QX0dFVF9BTExPQ0FUSU9OOgogICAgICAgICAgICAvKiBObyBmdXJ0aGVyIGlucHV0cyAqLwogICAgICAgICAgICBicmVhazsKIApAQCAtNzkzLDYgKzExMTAsMTAgQEAKICAgICAgICAgICAgUFJFX1hFTl9ET01DVExfUkVBRChzaGFkb3dfb3AsIHBhZ2VzKTsKICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX1NIQURPV19PUF9TRVRfQUxMT0NBVElPTjoKKyAgICAgICAgICAgUFJFX1hFTl9ET01DVExfUkVBRChzaGFkb3dfb3AsIG1iKTsKKyAgICAgICAgICAgYnJlYWs7CisKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBiYWRfc3Vib3AodGlkLCBsYXlvdXQsIGFycmdocywgc3RhdHVzLCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICJfX0hZUEVSVklTT1JfZG9tY3RsIHNoYWRvdygxMCkiLApAQCAtODI0LDYgKzExNDUsMjIgQEAKICAgICAgIFBSRV9YRU5fRE9NQ1RMX1JFQUQoZGVidWdfb3AsIHZjcHUpOwogICAgICAgYnJlYWs7CiAKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfZ2V0X3ZjcHVfbXNyczoKKyAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChnZXRfdmNwdV9tc3JzLCB2Y3B1X21zcnMsIHZjcHUpOworICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKGdldF92Y3B1X21zcnMsIHZjcHVfbXNycywgbXNyX2NvdW50KTsKKyAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChnZXRfdmNwdV9tc3JzLCB2Y3B1X21zcnMsIG1zcnMpOworICAgICAgYnJlYWs7CisKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfc2V0X3ZjcHVfbXNyczoKKyAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXRfdmNwdV9tc3JzLCB2Y3B1X21zcnMsIHZjcHUpOworICAgICAgX19QUkVfWEVOX0RPTUNUTF9SRUFEKHNldF92Y3B1X21zcnMsIHZjcHVfbXNycywgbXNyX2NvdW50KTsKKyAgICAgIF9fUFJFX1hFTl9ET01DVExfUkVBRChzZXRfdmNwdV9tc3JzLCB2Y3B1X21zcnMsIG1zcnMpOworICAgICAgUFJFX01FTV9SRUFEKCJYRU5fRE9NQ1RMX3NldF92Y3B1X21zcnMgKnUudmNwdV9tc3JzLm1zcnMucCIsCisgICAgICAgICAgICAgICAgICAgKEFkZHIpZG9tY3RsLT51LnZjcHVfbXNycy5tc3JzLnAsCisgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZraV94ZW5fZG9tY3RsX3ZjcHVfbXNyX3QpICoKKyAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUudmNwdV9tc3JzLm1zcl9jb3VudCk7CisgICAgICBicmVhazsKKwogICAgZGVmYXVsdDoKICAgICAgIGJhZF9zdWJvcCh0aWQsIGxheW91dCwgYXJyZ2hzLCBzdGF0dXMsIGZsYWdzLAogICAgICAgICAgICAgICAgICJfX0hZUEVSVklTT1JfZG9tY3RsIiwgZG9tY3RsLT5jbWQpOwpAQCAtODM4LDcgKzExNzUsNyBAQAogICAgdW5zaWduZWQgbG9uZyBvcCA9IEFSRzE7CiAgICB2b2lkICphcmcgPSAodm9pZCAqKSh1bnNpZ25lZCBsb25nKUFSRzI7CiAKLSAgIFBSSU5UKCJfX0hZUEVSVklTT1JfaHZtX29wICggJWxkLCAlcCApIiwgb3AsIGFyZyk7CisgICBQUklOVCgiX19IWVBFUlZJU09SX2h2bV9vcCAoICVsZCwgJSNseCApIiwgU0FSRzEsIEFSRzIpOwogCiAjZGVmaW5lIF9fUFJFX1hFTl9IVk1PUF9SRUFEKF9odm1fb3AsIF90eXBlLCBfZmllbGQpICAgIFwKICAgIFBSRV9NRU1fUkVBRCgiWEVOX0hWTU9QXyIgIyBfaHZtX29wICIgIiAjX2ZpZWxkLCAgICAgXApAQCAtODU5LDUyICsxMTk2LDcyIEBACiAgICAgICBfX1BSRV9YRU5fSFZNT1BfUkVBRChnZXRfcGFyYW0sIHN0cnVjdCB2a2lfeGVuX2h2bV9wYXJhbSwgaW5kZXgpOwogICAgICAgYnJlYWs7CiAKKyAgIGNhc2UgVktJX1hFTl9IVk1PUF9zZXRfcGNpX2ludHhfbGV2ZWw6CisgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X3BjaV9pbnR4X2xldmVsLCBkb21pZCk7CisgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X3BjaV9pbnR4X2xldmVsLCBkb21haW4pOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9wY2lfaW50eF9sZXZlbCwgYnVzKTsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfcGNpX2ludHhfbGV2ZWwsIGRldmljZSk7CisgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X3BjaV9pbnR4X2xldmVsLCBsZXZlbCk7CisgICAgICBicmVhazsKKwogICAgY2FzZSBWS0lfWEVOX0hWTU9QX3NldF9pc2FfaXJxX2xldmVsOgotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfaXNhX2lycV9sZXZlbCwgZG9taWQpOwotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfaXNhX2lycV9sZXZlbCwgaXNhX2lycSk7Ci0gICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9pc2FfaXJxX2xldmVsLCBsZXZlbCk7Ci0gICAgICAgYnJlYWs7CisgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X2lzYV9pcnFfbGV2ZWwsIGRvbWlkKTsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfaXNhX2lycV9sZXZlbCwgaXNhX2lycSk7CisgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X2lzYV9pcnFfbGV2ZWwsIGxldmVsKTsKKyAgICAgIGJyZWFrOwogCiAgICBjYXNlIFZLSV9YRU5fSFZNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOgotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfcGNpX2xpbmtfcm91dGUsIGRvbWlkKTsKLSAgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X3BjaV9saW5rX3JvdXRlLCBsaW5rKTsKLSAgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X3BjaV9saW5rX3JvdXRlLCBpc2FfaXJxKTsKLSAgICAgICBicmVhazsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfcGNpX2xpbmtfcm91dGUsIGRvbWlkKTsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfcGNpX2xpbmtfcm91dGUsIGxpbmspOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9wY2lfbGlua19yb3V0ZSwgaXNhX2lycSk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfWEVOX0hWTU9QX3RyYWNrX2RpcnR5X3ZyYW06IHsKKyAgICAgIHZraV94ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW1fdCAqQXJnID0KKyAgICAgICAgICh2a2lfeGVuX2h2bV90cmFja19kaXJ0eV92cmFtX3QqKUFSRzI7CisgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQodHJhY2tfZGlydHlfdnJhbSwgZG9taWQpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHRyYWNrX2RpcnR5X3ZyYW0sIG5yKTsKKyAgICAgIGlmICggQXJnLT5uciApIHsKKyAgICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRCh0cmFja19kaXJ0eV92cmFtLCBmaXJzdF9wZm4pOworICAgICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHRyYWNrX2RpcnR5X3ZyYW0sIGRpcnR5X2JpdG1hcCk7CisgICAgICB9CisgICAgICBicmVhazsKKyAgIH0KIAogICAgY2FzZSBWS0lfWEVOX0hWTU9QX3NldF9tZW1fdHlwZToKLSAgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X21lbV90eXBlLCBkb21pZCk7Ci0gICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fdHlwZSwgaHZtbWVtX3R5cGUpOwotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfbWVtX3R5cGUsIG5yKTsKLSAgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X21lbV90eXBlLCBmaXJzdF9wZm4pOwotICAgICAgIGJyZWFrOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fdHlwZSwgZG9taWQpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fdHlwZSwgaHZtbWVtX3R5cGUpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fdHlwZSwgbnIpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fdHlwZSwgZmlyc3RfcGZuKTsKKyAgICAgIGJyZWFrOwogCiAgICBjYXNlIFZLSV9YRU5fSFZNT1Bfc2V0X21lbV9hY2Nlc3M6Ci0gICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fYWNjZXNzLCBkb21pZCk7Ci0gICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fYWNjZXNzLCBodm1tZW1fYWNjZXNzKTsKLSAgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X21lbV9hY2Nlc3MsIGZpcnN0X3Bmbik7Ci0gICAgICAgLyogaWYgZGVmYXVsdCBhY2Nlc3MgKi8KLSAgICAgICBpZiAoICgodmtpX3hlbl9odm1fc2V0X21lbV9hY2Nlc3NfdCopYXJnKS0+Zmlyc3RfcGZuICE9IH4wVUxMKQotICAgICAgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoc2V0X21lbV9hY2Nlc3MsIG5yKTsKLSAgICAgICBicmVhazsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfbWVtX2FjY2VzcywgZG9taWQpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fYWNjZXNzLCBodm1tZW1fYWNjZXNzKTsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChzZXRfbWVtX2FjY2VzcywgZmlyc3RfcGZuKTsKKyAgICAgIC8qIGlmIGRlZmF1bHQgYWNjZXNzICovCisgICAgICBpZiAoICgodmtpX3hlbl9odm1fc2V0X21lbV9hY2Nlc3NfdCopYXJnKS0+Zmlyc3RfcGZuICE9IH4wVUxMKQorICAgICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKHNldF9tZW1fYWNjZXNzLCBucik7CisgICAgICBicmVhazsKIAogICAgY2FzZSBWS0lfWEVOX0hWTU9QX2dldF9tZW1fYWNjZXNzOgotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChnZXRfbWVtX2FjY2VzcywgZG9taWQpOwotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChnZXRfbWVtX2FjY2VzcywgcGZuKTsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChnZXRfbWVtX2FjY2VzcywgZG9taWQpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKGdldF9tZW1fYWNjZXNzLCBwZm4pOwogCi0gICAgICAgUFJFX01FTV9XUklURSgiWEVOX0hWTU9QX2dldF9tZW1fYWNjZXNzICpodm1tZW1fYWNjZXNzIiwKLSAgICAgICAgICAgICAgICAgICAoQWRkcikmKCgodmtpX3hlbl9odm1fZ2V0X21lbV9hY2Nlc3NfdCopYXJnKS0+aHZtbWVtX2FjY2VzcyksCi0gICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZraV91aW50MTZfdCkpOwotICAgICAgIGJyZWFrOworICAgICAgUFJFX01FTV9XUklURSgiWEVOX0hWTU9QX2dldF9tZW1fYWNjZXNzICpodm1tZW1fYWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgKEFkZHIpJigoKHZraV94ZW5faHZtX2dldF9tZW1fYWNjZXNzX3QqKWFyZyktPmh2bW1lbV9hY2Nlc3MpLAorICAgICAgICAgICAgICAgICAgICBzaXplb2YodmtpX3VpbnQxNl90KSk7CisgICAgICBicmVhazsKIAogICAgY2FzZSBWS0lfWEVOX0hWTU9QX2luamVjdF90cmFwOgotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChpbmplY3RfdHJhcCwgZG9taWQpOwotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChpbmplY3RfdHJhcCwgdmNwdWlkKTsKLSAgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoaW5qZWN0X3RyYXAsIHZlY3Rvcik7Ci0gICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKGluamVjdF90cmFwLCB0eXBlKTsKLSAgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoaW5qZWN0X3RyYXAsIGVycm9yX2NvZGUpOwotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChpbmplY3RfdHJhcCwgaW5zbl9sZW4pOwotICAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChpbmplY3RfdHJhcCwgY3IyKTsKLSAgICAgICBicmVhazsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChpbmplY3RfdHJhcCwgZG9taWQpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKGluamVjdF90cmFwLCB2Y3B1aWQpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKGluamVjdF90cmFwLCB2ZWN0b3IpOworICAgICAgUFJFX1hFTl9IVk1PUF9SRUFEKGluamVjdF90cmFwLCB0eXBlKTsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChpbmplY3RfdHJhcCwgZXJyb3JfY29kZSk7CisgICAgICBQUkVfWEVOX0hWTU9QX1JFQUQoaW5qZWN0X3RyYXAsIGluc25fbGVuKTsKKyAgICAgIFBSRV9YRU5fSFZNT1BfUkVBRChpbmplY3RfdHJhcCwgY3IyKTsKKyAgICAgIGJyZWFrOwogCiAgICBkZWZhdWx0OgogICAgICAgYmFkX3N1Ym9wKHRpZCwgbGF5b3V0LCBhcnJnaHMsIHN0YXR1cywgZmxhZ3MsCkBAIC05MTksNyArMTI3Niw3IEBACiB7CiAgICAgc3RydWN0IHZraV94ZW5fdG1lbV9vcCAqdG1lbSA9IChzdHJ1Y3QgdmtpX3hlbl90bWVtX29wICopQVJHMTsKIAotICAgIFBSSU5UKCJfX0hZUEVSVklTT1JfdG1lbV9vcCAoICVkICkiLCB0bWVtLT5jbWQpOworICAgIFBSSU5UKCJfX0hZUEVSVklTT1JfdG1lbV9vcCAoICV1ICkiLCB0bWVtLT5jbWQpOwogCiAgICAgLyogQ29tbW9uIHBhcnQgZm9yIHhlbl90bWVtX29wOgogICAgICAqICAgIHZraV91aW50MzJfdCBjbWQ7CkBAIC05NDMsNyArMTMwMCw3IEBACiAgICAgICAgICAqICAgIHZraV91aW50MzJfdCBzdWJvcDsKICAgICAgICAgICovCiAgICAgICAgIFBSRV9NRU1fUkVBRCgiX19IWVBFUlZJU09SX3RtZW1fb3AgcG9vbF9pZCIsCi0gICAgICAgICAgICAgICAgICAgICAoQWRkcikmdG1lbS0+cG9vbF9pZCwgc2l6ZW9mKCZ0bWVtLT5wb29sX2lkKSk7CisgICAgICAgICAgICAgICAgICAgICAoQWRkcikmdG1lbS0+cG9vbF9pZCwgc2l6ZW9mKHRtZW0tPnBvb2xfaWQpKTsKICAgICAgICAgUFJFX1hFTl9UTUVNT1BfUkVBRChjdHJsLCBzdWJvcCk7CiAKICAgICAgICAgc3dpdGNoICh0bWVtLT51LmN0cmwuc3Vib3ApIHsKQEAgLTk5Miw3ICsxMzQ5LDggQEAKICAgICAgIGJyZWFrOwogICAgfQogCi0gICBjYXNlIFZLSV9YRU5NRU1fbWFjaHBoeXNfbWZuX2xpc3Q6IHsKKyAgIGNhc2UgVktJX1hFTk1FTV9tYWNocGh5c19tZm5fbGlzdDoKKyAgIGNhc2UgVktJX1hFTk1FTV9tYWNocGh5c19jb21wYXRfbWZuX2xpc3Q6IHsKICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9tYWNocGh5c19tZm5fbGlzdCAqYXJnID0KICAgICAgICAgICAgKHN0cnVjdCB2a2lfeGVuX21hY2hwaHlzX21mbl9saXN0ICopQVJHMjsKICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcikmYXJnLT5ucl9leHRlbnRzLCBzaXplb2YoYXJnLT5ucl9leHRlbnRzKSk7CkBAIC0xMDAxLDYgKzEzNTksMTYgQEAKICAgICAgICBicmVhazsKICAgIH0KIAorICAgY2FzZSBWS0lfWEVOTUVNX21lbW9yeV9tYXA6CisgICBjYXNlIFZLSV9YRU5NRU1fbWFjaGluZV9tZW1vcnlfbWFwOiB7CisgICAgICBzdHJ1Y3QgdmtpX3hlbl9tZW1vcnlfbWFwICphcmcgPQorICAgICAgICAgKHN0cnVjdCB2a2lfeGVuX21lbW9yeV9tYXAgKilBUkcyOworICAgICAgUE9TVF9NRU1fV1JJVEUoYXJnLT5ucl9lbnRyaWVzLCBzaXplb2YoYXJnLT5ucl9lbnRyaWVzKSk7CisgICAgICBQT1NUX01FTV9XUklURSgoQWRkcilhcmctPmJ1ZmZlci5wLAorICAgICAgICAgICAgICAgICAgICAgYXJnLT5ucl9lbnRyaWVzICogMjAgLyogc2l6ZSBvZiBhbiBlODIwIGVudHJ5ICovKTsKKyAgICAgIGJyZWFrOworICAgfQorCiAgICBjYXNlIFZLSV9YRU5NRU1fYWRkX3RvX3BoeXNtYXA6IHsKICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9hZGRfdG9fcGh5c21hcCAqYXJnID0KICAgICAgICAgICAgKHN0cnVjdCB2a2lfeGVuX2FkZF90b19waHlzbWFwICopQVJHMjsKQEAgLTEwMjIsNiArMTM5MCwzMCBAQAogICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpcGRvbmUsIHNpemVvZigqcGRvbmUpKTsKIH0KIAorUE9TVCh4c21fb3ApCit7CisgICAvKiBYWFggYXNzdW1pbmcgZmxhc2ssIG9ubHkgYWN0dWFsIFhTTSByaWdodCBub3cgKi8KKyAgIHN0cnVjdCB2a2lfeGVuX2ZsYXNrX29wICpvcCA9IChzdHJ1Y3QgdmtpX3hlbl9mbGFza19vcCAqKUFSRzE7CisKKyAgIHN3aXRjaCAob3AtPmludGVyZmFjZV92ZXJzaW9uKSB7CisgICBjYXNlIDB4MDAwMDAwMDE6CisgICAgICBicmVhazsKKyAgIGRlZmF1bHQ6CisgICAgICByZXR1cm47CisgICB9CisKKyNkZWZpbmUgUE9TVF9YRU5fWFNNX09QX1dSSVRFKF94c21fb3AsIF91bmlvbiwgX2ZpZWxkKSAgICAgICAgXAorICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpJm9wLT51Ll91bmlvbi5fZmllbGQsICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICBzaXplb2Yob3AtPnUuX3VuaW9uLl9maWVsZCkpCisKKyAgIHN3aXRjaCAob3AtPmNtZCkgeworICAgY2FzZSBWS0lfRkxBU0tfU0lEX1RPX0NPTlRFWFQ6CisgICAgICBQT1NUX1hFTl9YU01fT1BfV1JJVEUoU0lEX1RPX0NPTlRFWFQsIHNpZF9jb250ZXh0LCBzaXplKTsKKyAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKW9wLT51LnNpZF9jb250ZXh0LmNvbnRleHQucCwKKyAgICAgICAgICAgICAgICAgICAgIG9wLT51LnNpZF9jb250ZXh0LnNpemUpOworICAgfQorfQorCiBzdGF0aWMgdm9pZCBwb3N0X2V2dGNobl9vcChUaHJlYWRJZCB0aWQsIF9fdmtpX3UzMiBjbWQsIHZvaWQgKmFyZywgaW50IGNvbXBhdCkKIHsKICAgIHN3aXRjaCAoY21kKSB7CkBAIC0xMDMzLDYgKzE0MjUsMTUgQEAKICAgIH0KIH0KIAorUE9TVChzY2hlZF9vcCkKK3sKKyAgIHN3aXRjaCAoQVJHMSkgeworICAgY2FzZSBWS0lfWEVOX1NDSEVET1BfcmVtb3RlX3NodXRkb3duOgorICAgICAgLyogTm8gb3V0cHV0cyAqLworICAgICAgYnJlYWs7CisgICB9Cit9CisKIFBPU1QoZXZ0Y2huX29wKQogewogICAgcG9zdF9ldnRjaG5fb3AodGlkLCBBUkcxLCAodm9pZCAqKUFSRzIsIDApOwpAQCAtMTA0NCw2ICsxNDQ1LDMzIEBACiAgICBwb3N0X2V2dGNobl9vcCh0aWQsIGV2dGNobi0+Y21kLCAmZXZ0Y2huLT51LCAxKTsKIH0KIAorUE9TVChwaHlzZGV2X29wKQoreworICAgaW50IGNtZCA9IEFSRzE7CisKKyNkZWZpbmUgUE9TVF9YRU5fUEhZU0RFVk9QX1dSSVRFKF9vcCwgX2ZpZWxkKSAgICAgICAgICAgICAgICAgICBcCisgICBQT1NUX01FTV9XUklURSgoQWRkcikmYXJnLT5fZmllbGQsIHNpemVvZihhcmctPl9maWVsZCkpCisKKyAgIHN3aXRjaCAoY21kKSB7CisgICBjYXNlIFZLSV9YRU5fUEhZU0RFVk9QX3VubWFwX3BpcnE6CisgICAgICAvKiBObyBvdXRwdXRzICovCisgICAgICBicmVhazsKKworICAgY2FzZSBWS0lfWEVOX1BIWVNERVZPUF9tYXBfcGlycTogeworICAgICAgc3RydWN0IHZraV94ZW5fcGh5c2Rldl9tYXBfcGlycSAqYXJnID0KKyAgICAgICAgIChzdHJ1Y3QgdmtpX3hlbl9waHlzZGV2X21hcF9waXJxICopQVJHMjsKKyAgICAgIGlmIChhcmctPnR5cGUgPT0gVktJX1hFTl9NQVBfUElSUV9UWVBFX01VTFRJX01TSSkKKyAgICAgICAgIFBPU1RfWEVOX1BIWVNERVZPUF9XUklURSgibWFwX3BpcnEiLCBlbnRyeV9ucik7CisgICAgICBQT1NUX1hFTl9QSFlTREVWT1BfV1JJVEUoIm1hcF9waXJxIiwgcGlycSk7CisgICAgICBicmVhazsKKyAgIH0KKyN1bmRlZiBQT1NUX1hFTl9QSFlTREVWT1BfV1JJVEUKKworICAgZGVmYXVsdDoKKyAgICAgIGJyZWFrOworICAgfQorfQorCiBQT1NUKHhlbl92ZXJzaW9uKQogewogICAgc3dpdGNoIChBUkcxKSB7CkBAIC0xMTA1LDYgKzE1MzMsNyBAQAogICAgY2FzZSAweDAwMDAwMDA4OgogICAgY2FzZSAweDAwMDAwMDA5OgogICAgY2FzZSAweDAwMDAwMDBhOgorICAgY2FzZSAweDAwMDAwMDBiOgogCSAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgIHJldHVybjsKQEAgLTExMzgsNiArMTU2Nyw3IEBACiAJCQkqIHN5c2N0bC0+dS5nZXRkb21haW5pbmZvbGlzdF8wMDAwMDAwOS5udW1fZG9tYWlucyk7CiAJIGJyZWFrOwogICAgICAgY2FzZSAweDAwMDAwMDBhOgorICAgICAgY2FzZSAweDAwMDAwMDBiOgogCSBQT1NUX1hFTl9TWVNDVExfV1JJVEUoZ2V0ZG9tYWluaW5mb2xpc3RfMDAwMDAwMGEsIG51bV9kb21haW5zKTsKIAkgUE9TVF9NRU1fV1JJVEUoKEFkZHIpc3lzY3RsLT51LmdldGRvbWFpbmluZm9saXN0XzAwMDAwMDBhLmJ1ZmZlci5wLAogCQkJc2l6ZW9mKCpzeXNjdGwtPnUuZ2V0ZG9tYWluaW5mb2xpc3RfMDAwMDAwMGEuYnVmZmVyLnApCkBAIC0xMTgyLDYgKzE2MTIsNyBAQAogICAgICAgICAgUE9TVF9YRU5fU1lTQ1RMX1dSSVRFKHBoeXNpbmZvXzAwMDAwMDA4LCBjYXBhYmlsaXRpZXMpOwogICAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIDB4MDAwMDAwMGE6CisgICAgICBjYXNlIDB4MDAwMDAwMGI6CiAgICAgICAgICBQT1NUX1hFTl9TWVNDVExfV1JJVEUocGh5c2luZm9fMDAwMDAwMGEsIHRocmVhZHNfcGVyX2NvcmUpOwogICAgICAgICAgUE9TVF9YRU5fU1lTQ1RMX1dSSVRFKHBoeXNpbmZvXzAwMDAwMDBhLCBjb3Jlc19wZXJfc29ja2V0KTsKICAgICAgICAgIFBPU1RfWEVOX1NZU0NUTF9XUklURShwaHlzaW5mb18wMDAwMDAwYSwgbnJfY3B1cyk7CkBAIC0xMjM3LDYgKzE2NjgsNyBAQAogICAgY2FzZSAweDAwMDAwMDA3OgogICAgY2FzZSAweDAwMDAwMDA4OgogICAgY2FzZSAweDAwMDAwMDA5OgorICAgY2FzZSAweDAwMDAwMDBhOgogCSAgIGJyZWFrOwogICAgZGVmYXVsdDoKIAkgICByZXR1cm47CkBAIC0xMjUzLDEyICsxNjg1LDE5IEBACiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX2Rlc3Ryb3lkb21haW46CiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX3BhdXNlZG9tYWluOgogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9tYXhfbWVtOgorICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXR2Y3B1ZXh0c3RhdGU6CiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX3NldF9hZGRyZXNzX3NpemU6CisgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX3Rlc3RfYXNzaWduX2RldmljZToKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfYXNzaWduX2RldmljZToKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfZGVhc3NpZ25fZGV2aWNlOgogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXR0c2NpbmZvOgorICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbjoKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfaW9tZW1fcGVybWlzc2lvbjoKICAgIGNhc2UgVktJX1hFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Npb246CiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX2h5cGVyY2FsbF9pbml0OgotICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXR2Y3B1YWZmaW5pdHk6CiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX3NldHZjcHVjb250ZXh0OgorICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9waW5fbWVtX2NhY2hlYXR0cjoKKyAgIGNhc2UgVktJX1hFTl9ET01DVExfc2V0X2V4dF92Y3B1Y29udGV4dDoKICAgIGNhc2UgVktJX1hFTl9ET01DVExfc2V0bm9kZWFmZmluaXR5OgogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXRfY3B1aWQ6CiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX3VucGF1c2Vkb21haW46CkBAIC0xMjY3LDYgKzE3MDYsNyBAQAogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXRfbWF4X2V2dGNobjoKICAgIGNhc2UgVktJX1hFTl9ET01DVExfY2FjaGVmbHVzaDoKICAgIGNhc2UgVktJX1hFTl9ET01DVExfcmVzdW1lZG9tYWluOgorICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXRfdmNwdV9tc3JzOgogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXRfYWNjZXNzX3JlcXVpcmVkOgogICAgICAgLyogTm8gb3V0cHV0IGZpZWxkcyAqLwogICAgICAgYnJlYWs7CkBAIC0xMzMzLDEzICsxNzczLDMzIEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgVktJX1hFTl9TQ0hFRFVMRVJfQVJJTkM2NTM6CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVktJX1hFTl9TQ0hFRFVMRVJfUlREUzoKKyAgICAgICAgICAgIFBPU1RfWEVOX0RPTUNUTF9XUklURShzY2hlZHVsZXJfb3AsIHUucnRkcy5wZXJpb2QpOworICAgICAgICAgICAgUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKHNjaGVkdWxlcl9vcCwgdS5ydGRzLmJ1ZGdldCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgIH0KICAgICAgIGJyZWFrOwogCiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX2dldHZjcHVhZmZpbml0eToKLSAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKWRvbWN0bC0+dS52Y3B1YWZmaW5pdHkuY3B1bWFwLmJpdG1hcC5wLAotICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnZjcHVhZmZpbml0eS5jcHVtYXAubnJfYml0cyAvIDgpOworICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9zZXR2Y3B1YWZmaW5pdHk6IC8qIFdyaXRlcyBiYWNrIGFjdHVhbCByZXN1bHQgKi8KKyAgICAgIHN3aXRjaCAoZG9tY3RsLT5pbnRlcmZhY2VfdmVyc2lvbikgeworICAgICAgY2FzZSAweDAwMDAwMDA3OgorICAgICAgY2FzZSAweDAwMDAwMDA4OgorICAgICAgY2FzZSAweDAwMDAwMDA5OgorICAgICAgICAgUE9TVF9NRU1fV1JJVEUoKEFkZHIpZG9tY3RsLT51LnZjcHVhZmZpbml0eV8wMDAwMDAwOS5jcHVtYXAuYml0bWFwLnAsCisgICAgICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUudmNwdWFmZmluaXR5XzAwMDAwMDA5LmNwdW1hcC5ucl9iaXRzIC8gOCk7CisgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgMHgwMDAwMDAwYToKKyAgICAgICAgIGlmIChkb21jdGwtPnUudmNwdWFmZmluaXR5XzAwMDAwMDBhLmZsYWdzICYgVktJX1hFTl9WQ1BVQUZGSU5JVFlfSEFSRCkKKyAgICAgICAgICAgIFBPU1RfTUVNX1dSSVRFKAorICAgICAgICAgICAgICAgKEFkZHIpZG9tY3RsLT51LnZjcHVhZmZpbml0eV8wMDAwMDAwYS5jcHVtYXBfaGFyZC5iaXRtYXAucCwKKyAgICAgICAgICAgICAgIGRvbWN0bC0+dS52Y3B1YWZmaW5pdHlfMDAwMDAwMGEuY3B1bWFwX2hhcmQubnJfYml0cyAvIDgpOworICAgICAgICAgaWYgKGRvbWN0bC0+dS52Y3B1YWZmaW5pdHlfMDAwMDAwMGEuZmxhZ3MgJiBWS0lfWEVOX1ZDUFVBRkZJTklUWV9TT0ZUKQorICAgICAgICAgICAgUE9TVF9NRU1fV1JJVEUoCisgICAgICAgICAgICAgICAoQWRkcilkb21jdGwtPnUudmNwdWFmZmluaXR5XzAwMDAwMDBhLmNwdW1hcF9zb2Z0LmJpdG1hcC5wLAorICAgICAgICAgICAgICAgZG9tY3RsLT51LnZjcHVhZmZpbml0eV8wMDAwMDAwYS5jcHVtYXBfc29mdC5ucl9iaXRzIC8gOCk7CisgICAgICB9CiAgICAgICBicmVhazsKIAogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9nZXRub2RlYWZmaW5pdHk6CkBAIC0xMzc5LDYgKzE4MzksNyBAQAogCSBQT1NUX1hFTl9ET01DVExfV1JJVEUoZ2V0ZG9tYWluaW5mb18wMDAwMDAwOCwgY3B1cG9vbCk7CiAgICAgICBicmVhazsKICAgICAgIGNhc2UgMHgwMDAwMDAwOToKKyAgICAgIGNhc2UgMHgwMDAwMDAwYToKIAkgUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKGdldGRvbWFpbmluZm9fMDAwMDAwMDksIGRvbWFpbik7CiAJIFBPU1RfWEVOX0RPTUNUTF9XUklURShnZXRkb21haW5pbmZvXzAwMDAwMDA5LCBmbGFncyk7CiAJIFBPU1RfWEVOX0RPTUNUTF9XUklURShnZXRkb21haW5pbmZvXzAwMDAwMDA5LCB0b3RfcGFnZXMpOwpAQCAtMTQwNSwxOCArMTg2Niw3MCBAQAogICAgICAgICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5nZXRwYWdlZnJhbWVpbmZvMy5udW0gKiBzaXplb2YodmtpX3hlbl9wZm5fdCkpOwogICAgICAgIGJyZWFrOwogCisgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX2dldF9leHRfdmNwdWNvbnRleHQ6CisgICAgICAgc3dpdGNoIChkb21jdGwtPmludGVyZmFjZV92ZXJzaW9uKQorICAgICAgIHsKKyAgICAgICBjYXNlIDB4MDAwMDAwMDc6CisgICAgICAgY2FzZSAweDAwMDAwMDA4OgorICAgICAgICAgICBfX1BPU1RfWEVOX0RPTUNUTF9XUklURShnZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDgsIHNpemUpOworI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKKyAgICAgICAgICAgX19QT1NUX1hFTl9ET01DVExfV1JJVEUoZ2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsMzJfY2FsbGJhY2tfZWlwKTsKKyAgICAgICAgICAgX19QT1NUX1hFTl9ET01DVExfV1JJVEUoZ2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNlbnRlcl9jYWxsYmFja19laXApOworICAgICAgICAgICBfX1BPU1RfWEVOX0RPTUNUTF9XUklURShnZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2NhbGwzMl9jYWxsYmFja19jcyk7CisgICAgICAgICAgIF9fUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKGdldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzZW50ZXJfY2FsbGJhY2tfY3MpOworICAgICAgICAgICBfX1BPU1RfWEVOX0RPTUNUTF9XUklURShnZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHMpOworICAgICAgICAgICBfX1BPU1RfWEVOX0RPTUNUTF9XUklURShnZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2VudGVyX2Rpc2FibGVzX2V2ZW50cyk7CisKKyAgICAgICAgICAgX19QT1NUX1hFTl9ET01DVExfV1JJVEUoZ2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtY2dfY2FwKTsKKyNlbmRpZgorICAgICAgICAgICBicmVhazsKKworICAgICAgIGNhc2UgMHgwMDAwMDAwOToKKyAgICAgICAgICAgX19QT1NUX1hFTl9ET01DVExfV1JJVEUoZ2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5LCBzaXplKTsKKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisgICAgICAgICAgIF9fUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKGdldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzY2FsbDMyX2NhbGxiYWNrX2VpcCk7CisgICAgICAgICAgIF9fUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKGdldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzZW50ZXJfY2FsbGJhY2tfZWlwKTsKKyAgICAgICAgICAgX19QT1NUX1hFTl9ET01DVExfV1JJVEUoZ2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsMzJfY2FsbGJhY2tfY3MpOworICAgICAgICAgICBfX1BPU1RfWEVOX0RPTUNUTF9XUklURShnZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2VudGVyX2NhbGxiYWNrX2NzKTsKKyAgICAgICAgICAgX19QT1NUX1hFTl9ET01DVExfV1JJVEUoZ2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsMzJfZGlzYWJsZXNfZXZlbnRzKTsKKyAgICAgICAgICAgX19QT1NUX1hFTl9ET01DVExfV1JJVEUoZ2V0X2V4dF92Y3B1Y29udGV4dCwgZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNlbnRlcl9kaXNhYmxlc19ldmVudHMpOworCisgICAgICAgICAgIF9fUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKGdldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fwcyk7CisgICAgICAgICAgIF9fUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKGdldF9leHRfdmNwdWNvbnRleHQsIGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWNpX2N0bDJfYmFuazApOworICAgICAgICAgICBfX1BPU1RfWEVOX0RPTUNUTF9XUklURShnZXRfZXh0X3ZjcHVjb250ZXh0LCBleHRfdmNwdWNvbnRleHRfMDAwMDAwMDksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1jaV9jdGwyX2JhbmsxKTsKKyNlbmRpZgorCSAgIGJyZWFrOworICAgICAgIH0KKyAgICAgICBicmVhazsKKwogCiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX2dldHZjcHVleHRzdGF0ZToKLSAgICAgIF9fUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKGdldHZjcHVleHRzdGF0ZSwgdmNwdWV4dHN0YXRlLCB4ZmVhdHVyZV9tYXNrKTsKLSAgICAgIF9fUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKGdldHZjcHVleHRzdGF0ZSwgdmNwdWV4dHN0YXRlLCBzaXplKTsKLSAgICAgIFBPU1RfTUVNX1dSSVRFKChBZGRyKWRvbWN0bC0+dS52Y3B1ZXh0c3RhdGUuYnVmZmVyLnAsCi0gICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUudmNwdWV4dHN0YXRlLnNpemUpOworICAgICAgaWYgKGRvbWN0bC0+dS52Y3B1ZXh0c3RhdGUuYnVmZmVyLnApCisgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcilkb21jdGwtPnUudmNwdWV4dHN0YXRlLmJ1ZmZlci5wLAorICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnZjcHVleHRzdGF0ZS5zaXplKTsKICAgICAgIGJyZWFrOwogCiAgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX3NoYWRvd19vcDoKICAgICAgICBzd2l0Y2goZG9tY3RsLT51LnNoYWRvd19vcC5vcCkKICAgICAgICB7CiAgICAgICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9TSEFET1dfT1BfT0ZGOgorICAgICAgIGNhc2UgVktJX1hFTl9ET01DVExfU0hBRE9XX09QX1NFVF9BTExPQ0FUSU9OOgogICAgICAgICAgICAvKiBObyBvdXRwdXRzICovCiAgICAgICAgICAgIGJyZWFrOwogCkBAIC0xNDMwLDEwICsxOTQzLDIxIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUuc2hhZG93X29wLnBhZ2VzICogc2l6ZW9mKHZraV91aW50OF90KSk7CiAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9TSEFET1dfT1BfR0VUX0FMTE9DQVRJT046CisgICAgICAgICAgIFBPU1RfWEVOX0RPTUNUTF9XUklURShzaGFkb3dfb3AsIG1iKTsKKyAgICAgICAgICAgYnJlYWs7CisKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CisgICBjYXNlIFZLSV9YRU5fRE9NQ1RMX2dldF92Y3B1X21zcnM6CisgICAgICBpZiAoZG9tY3RsLT51LnZjcHVfbXNycy5tc3JzLnApCisgICAgICAgICBQT1NUX01FTV9XUklURSgoQWRkcilkb21jdGwtPnUudmNwdV9tc3JzLm1zcnMucCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih2a2lfeGVuX2RvbWN0bF92Y3B1X21zcl90KSAqCisgICAgICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUudmNwdV9tc3JzLm1zcl9jb3VudCk7CisgICAgICBicmVhazsKKwogICAgY2FzZSBWS0lfWEVOX0RPTUNUTF9tZW1fZXZlbnRfb3A6CiAgICAgICAgUE9TVF9YRU5fRE9NQ1RMX1dSSVRFKG1lbV9ldmVudF9vcCwgcG9ydCk7CiAKQEAgLTE0NTYsNiArMTk4MCw3IEBACiAKICAgIHN3aXRjaCAob3ApIHsKICAgIGNhc2UgVktJX1hFTl9IVk1PUF9zZXRfcGFyYW06CisgICBjYXNlIFZLSV9YRU5fSFZNT1Bfc2V0X3BjaV9pbnR4X2xldmVsOgogICAgY2FzZSBWS0lfWEVOX0hWTU9QX3NldF9pc2FfaXJxX2xldmVsOgogICAgY2FzZSBWS0lfWEVOX0hWTU9QX3NldF9wY2lfbGlua19yb3V0ZToKICAgIGNhc2UgVktJX1hFTl9IVk1PUF9zZXRfbWVtX3R5cGU6CkBAIC0xNTQxLDE0ICsyMDY2LDE0IEBACiAKICAgIC8vICAgIF9fVktJX1hFTl9zZXRfc2VnbWVudF9iYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAyNQogICAgSFlQWFkoX19WS0lfWEVOX21tdWV4dF9vcCwgICAgICAgICAgICAgICBtbXVleHRfb3AsICAgICAgICAgMiksIC8vIDI2Ci0gICAvLyAgICBfX1ZLSV9YRU5feHNtX29wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMjcKKyAgIEhZUFhZKF9fVktJX1hFTl94c21fb3AsICAgICAgICAgICAgICAgICAgeHNtX29wLCAgICAgICAgICAgIDEpLCAvLyAyNwogICAgLy8gICAgX19WS0lfWEVOX25taV9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDI4Ci0gICAvLyAgICBfX1ZLSV9YRU5fc2NoZWRfb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMjkKKyAgIEhZUFhZKF9fVktJX1hFTl9zY2hlZF9vcCwgICAgICAgICAgICAgICAgc2NoZWRfb3AsICAgICAgICAgIDIpLCAvLyAyOQogCiAgICAvLyAgICBfX1ZLSV9YRU5fY2FsbGJhY2tfb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMzAKICAgIC8vICAgIF9fVktJX1hFTl94ZW5vcHJvZl9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzMQogICAgSFlQWFkoX19WS0lfWEVOX2V2ZW50X2NoYW5uZWxfb3AsICAgICAgICBldnRjaG5fb3AsICAgICAgICAgMiksIC8vIDMyCi0gICAvLyAgICBfX1ZLSV9YRU5fcGh5c2Rldl9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMzMKKyAgIEhZUFhZKF9fVktJX1hFTl9waHlzZGV2X29wLCAgICAgICAgICAgICAgcGh5c2Rldl9vcCwgICAgICAgIDIpLCAvLyAzMwogICAgSFlQWFkoX19WS0lfWEVOX2h2bV9vcCwgICAgICAgICAgICAgICAgICBodm1fb3AsICAgICAgICAgICAgMiksIC8vIDM0CiAKICAgIEhZUFhZKF9fVktJX1hFTl9zeXNjdGwsICAgICAgICAgICAgICAgICAgc3lzY3RsLCAgICAgICAgICAgIDEpLCAvLyAzNQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fdGhyZWFkc3RhdGUuYyBiL2NvcmVncmluZC9tX3RocmVhZHN0YXRlLmMKaW5kZXggZTZiN2I3Yi4uNmNlYTI3MCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fdGhyZWFkc3RhdGUuYworKysgYi9jb3JlZ3JpbmQvbV90aHJlYWRzdGF0ZS5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU0LDE0ICs1NCwxMCBAQAogdm9pZCBWR18oaW5pdF9UaHJlYWRzKSh2b2lkKQogewogICAgVGhyZWFkSWQgdGlkOwotICAgVUNoYXIgKmFkZHIsICphbGlnbmVkX2FkZHI7CiAKLSAgIGFkZHIgPSBWR18obWFsbG9jKSgiaW5pdF9UaHJlYWRzIiwKLSAgICAgICAgICBWR19OX1RIUkVBRFMgKiBzaXplb2YgVkdfKHRocmVhZHMpWzBdICsgTGliVkVYX0dVRVNUX1NUQVRFX0FMSUdOIC0gMSk7Ci0KLSAgIC8vIEFsaWduCi0gICBhbGlnbmVkX2FkZHIgPSBhZGRyICsgKEFkZHIpYWRkciAlIExpYlZFWF9HVUVTVF9TVEFURV9BTElHTjsKLSAgIFZHXyh0aHJlYWRzKSA9IChUaHJlYWRTdGF0ZSAqKWFsaWduZWRfYWRkcjsKKyAgIFZHXyh0aHJlYWRzKSA9IFZHXyhhcmVuYV9tZW1hbGlnbikgKFZHX0FSX0NPUkUsICJpbml0X1RocmVhZHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGliVkVYX0dVRVNUX1NUQVRFX0FMSUdOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfTl9USFJFQURTICogc2l6ZW9mIFZHXyh0aHJlYWRzKVswXSk7CiAKICAgIGZvciAodGlkID0gMTsgdGlkIDwgVkdfTl9USFJFQURTOyB0aWQrKykgewogICAgICAgSU5ORVJfUkVRVUVTVCgKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3Rvb2xpZmFjZS5jIGIvY29yZWdyaW5kL21fdG9vbGlmYWNlLmMKaW5kZXggNDBkODMyNS4uNjk3MWE0NyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fdG9vbGlmYWNlLmMKKysrIGIvY29yZWdyaW5kL21fdG9vbGlmYWNlLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00NDEsNiArNDQxLDkgQEAKIERFRjAodHJhY2tfcHJlX3JlZ19yZWFkLCAgICAgICAgICBDb3JlUGFydCwgVGhyZWFkSWQsIGNvbnN0IEhDaGFyKiwgUHRyZGlmZlQsIFNpemVUKQogREVGMCh0cmFja19wb3N0X3JlZ193cml0ZSwgICAgICAgIENvcmVQYXJ0LCBUaHJlYWRJZCwgICAgICAgICAgICAgICBQdHJkaWZmVCwgU2l6ZVQpCiAKK0RFRjAodHJhY2tfY29weV9tZW1fdG9fcmVnLCAgICAgICBDb3JlUGFydCwgVGhyZWFkSWQsIEFkZHIsIFB0cmRpZmZULCBTaXplVCkKK0RFRjAodHJhY2tfY29weV9yZWdfdG9fbWVtLCAgICAgICBDb3JlUGFydCwgVGhyZWFkSWQsIFB0cmRpZmZULCBBZGRyLCBTaXplVCkKKwogREVGMCh0cmFja19wb3N0X3JlZ193cml0ZV9jbGllbnRjYWxsX3JldHVybiwgVGhyZWFkSWQsIFB0cmRpZmZULCBTaXplVCwgQWRkcikKIAogREVGMCh0cmFja19zdGFydF9jbGllbnRfY29kZSwgICAgIFRocmVhZElkLCBVTG9uZykKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3RyYW1wb2xpbmUuUyBiL2NvcmVncmluZC9tX3RyYW1wb2xpbmUuUwppbmRleCAwMjdmOWY2Li5jYWMyMjg4IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV90cmFtcG9saW5lLlMKKysrIGIvY29yZWdyaW5kL21fdHJhbXBvbGluZS5TCkBAIC03LDkgKzcsOSBAQAogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgZnJhbWV3b3JrLgogCi0gIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgIGpzZXdhcmRAYWNtLm9yZwotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBPcGVuV29ya3MgTExQCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAJCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTEzMjksNiArMTMyOSw3IEBACiAjCXVuZGVmIFVEMl8xMDI0CiAjCXVuZGVmIFVEMl9QQUdFCiAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB0aWxlZ3gtbGludXggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZWxzZQogI2lmIGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkKIApAQCAtMTM5OSw2ICsxNDAwLDE4NiBAQAogIwl1bmRlZiBVRDJfNEsKICMJdW5kZWYgVUQyXzE2SwogIwl1bmRlZiBVRDJfUEFHRQorCisvKi0tLS0tLS0tLS0tLS0tLS0geDg2LXNvbGFyaXMgLS0tLS0tLS0tLS0tLS0tLSovCisjZWxzZQorI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorCisuZ2xvYmFsIFZHXyh0cmFtcG9saW5lX3N0dWZmX3N0YXJ0KQorVkdfKHRyYW1wb2xpbmVfc3R1ZmZfc3RhcnQpOgorCisvKiBpbnQgc3RyY21wKGNvbnN0IGNoYXIgKnMxLCBjb25zdCBjaGFyICpzMik7ICovCisuZ2xvYmFsIFZHXyh4ODZfc29sYXJpc19SRURJUl9GT1Jfc3RyY21wKQorLnR5cGUgICBWR18oeDg2X3NvbGFyaXNfUkVESVJfRk9SX3N0cmNtcCksIEBmdW5jdGlvbgorVkdfKHg4Nl9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjbXApOgorICAgICAgICBwdXNobCAgICVlYnAgICAgICAgICAgICAgICAgICAgIC8qIGVzdGFibGlzaCBhIHN0YWNrIGZyYW1lICovCisgICAgICAgIG1vdmwgICAgJWVzcCwgJWVicAorICAgICAgICBtb3ZsICAgIDgoJWVicCksICVlZHggICAgICAgICAgIC8qIGdldCBzMSAqLworICAgICAgICBtb3ZsICAgIDEyKCVlc3ApLCAlZWN4ICAgICAgICAgIC8qIGdldCBzMiAqLworICAgICAgICBqbXAgICAgIDJmICAgICAgICAgICAgICAgICAgICAgIC8qIGdvIGNvbXBhcmUgdGhlIGZpcnN0IGNoYXJhY3RlcnMgKi8KKzE6CisgICAgICAgIGluY2wgICAgJWVkeCAgICAgICAgICAgICAgICAgICAgLyogc2tpcCB0byB0aGUgbmV4dCBzMSBjaGFyYWN0ZXIgKi8KKyAgICAgICAgaW5jbCAgICAlZWN4ICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRvIHRoZSBuZXh0IHMyIGNoYXJhY3RlciAqLworMjoKKyAgICAgICAgbW92emJsICAoJWVkeCksICVlYXggICAgICAgICAgICAvKiBsb2FkIGEgY2hhcmFjdGVyIGZyb20gczEgKi8KKyAgICAgICAgdGVzdGIgICAlYWwsICVhbCAgICAgICAgICAgICAgICAvKiBpcyBpdCBudWxsPyAqLworICAgICAgICBqeiAgICAgIDNmICAgICAgICAgICAgICAgICAgICAgIC8qIHllcywgZXhpdCAqLworICAgICAgICBjbXBiICAgICglZWN4KSwgJWFsICAgICAgICAgICAgIC8qIGFyZSB0aGUgY2hhcmFjdGVycyBlcXVhbD8gKi8KKyAgICAgICAgamUgICAgICAxYiAgICAgICAgICAgICAgICAgICAgICAvKiB5ZXMsIHByb2NlZWQgd2l0aCBuZXh0IGNoYXJhY3RlcnMgKi8KKzM6CisgICAgICAgIG1vdnpibCAgKCVlY3gpLCAlZWR4ICAgICAgICAgICAgLyogbG9hZCBhIGNoYXJhY3RlciBmcm9tIHMyICovCisgICAgICAgIHN1YmwgICAgJWVkeCwgJWVheCAgICAgICAgICAgICAgLyogY2FsY3VsYXRlIHRoZSByZXR1cm4gdmFsdWUgKi8KKyAgICAgICAgcG9wbCAgICAlZWJwICAgICAgICAgICAgICAgICAgICAvKiBkZXN0cm95IHRoZSBzdGFjayBmcmFtZSAqLworICAgICAgICByZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJldHVybiB0byB0aGUgY2FsbGVyICovCisuc2l6ZSBWR18oeDg2X3NvbGFyaXNfUkVESVJfRk9SX3N0cmNtcCksIC4tVkdfKHg4Nl9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjbXApCisKKy8qIHNpemVfdCBzdHJsZW4oY29uc3QgY2hhciAqcyk7ICovCisuZ2xvYmFsIFZHXyh4ODZfc29sYXJpc19SRURJUl9GT1Jfc3RybGVuKQorLnR5cGUgICBWR18oeDg2X3NvbGFyaXNfUkVESVJfRk9SX3N0cmxlbiksIEBmdW5jdGlvbgorVkdfKHg4Nl9zb2xhcmlzX1JFRElSX0ZPUl9zdHJsZW4pOgorICAgICAgICBwdXNobCAgICVlYnAgICAgICAgICAgICAgICAgICAgIC8qIGVzdGFibGlzaCBhIHN0YWNrIGZyYW1lICovCisgICAgICAgIG1vdmwgICAgJWVzcCwgJWVicAorICAgICAgICBtb3ZsICAgIDgoJWVicCksICVlZHggICAgICAgICAgIC8qIGdldCBzICovCisgICAgICAgIG1vdmwgICAgJWVkeCwgJWVheCAgICAgICAgICAgICAgLyogY29weSBzICovCisgICAgICAgIGptcCAgICAgMmYgICAgICAgICAgICAgICAgICAgICAgLyogZ28gaGFuZGxlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgKi8KKzE6CisgICAgICAgIGluY2wgICAgJWVheCAgICAgICAgICAgICAgICAgICAgLyogc2tpcCB0byB0aGUgbmV4dCBzIGNoYXJhY3RlciAqLworMjoKKyAgICAgICAgY21wYiAgICAkMCwgKCVlYXgpICAgICAgICAgICAgICAvKiBpcyB0aGUgcyBjaGFyYWN0ZXIgbnVsbD8gKi8KKyAgICAgICAgam5lICAgICAxYiAgICAgICAgICAgICAgICAgICAgICAvKiBubywgZ28gcHJvY2VzcyB0aGUgbmV4dCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgc3VibCAgICAlZWR4LCAlZWF4ICAgICAgICAgICAgICAvKiBjYWxjdWxhdGUgdGhlIHJldHVybiB2YWx1ZSAqLworICAgICAgICBwb3BsICAgICVlYnAgICAgICAgICAgICAgICAgICAgIC8qIGRlc3Ryb3kgdGhlIHN0YWNrIGZyYW1lICovCisgICAgICAgIHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmV0dXJuIHRvIHRoZSBjYWxsZXIgKi8KKy5zaXplIFZHXyh4ODZfc29sYXJpc19SRURJUl9GT1Jfc3RybGVuKSwgLi1WR18oeDg2X3NvbGFyaXNfUkVESVJfRk9SX3N0cmxlbikKKworLmdsb2JhbCBWR18odHJhbXBvbGluZV9zdHVmZl9lbmQpCitWR18odHJhbXBvbGluZV9zdHVmZl9lbmQpOgorCisvKi0tLS0tLS0tLS0tLS0tLS0gYW1kNjQtc29sYXJpcyAtLS0tLS0tLS0tLS0tLS0tKi8KKyNlbHNlCisjaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKworLmdsb2JhbCBWR18odHJhbXBvbGluZV9zdHVmZl9zdGFydCkKK1ZHXyh0cmFtcG9saW5lX3N0dWZmX3N0YXJ0KToKKworLyogY2hhciAqc3RyY3B5KGNoYXIgKnJlc3RyaWN0IHMxLCBjb25zdCBjaGFyICpyZXN0cmljdCBzMik7ICovCisuZ2xvYmFsIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjcHkpCisudHlwZSAgIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjcHkpLCBAZnVuY3Rpb24KK1ZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjcHkpOgorICAgICAgICBwdXNocSAgICVyYnAgICAgICAgICAgICAgICAgICAgIC8qIGVzdGFibGlzaCBhIHN0YWNrIGZyYW1lICovCisgICAgICAgIG1vdnEgICAgJXJzcCwgJXJicAorICAgICAgICBtb3ZxICAgICVyZGksICVyZHggICAgICAgICAgICAgIC8qIGNvcHkgczEgKi8KKzE6CisgICAgICAgIG1vdnpibCAgKCVyc2kpLCAlZWF4ICAgICAgICAgICAgLyogbG9hZCBvbmUgaW5wdXQgY2hhcmFjdGVyICovCisgICAgICAgIG1vdmIgICAgJWFsLCAoJXJkeCkgICAgICAgICAgICAgLyogY29weSB0byBvdXRwdXQvczIgKi8KKyAgICAgICAgaW5jcSAgICAlcnNpICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRvIHRoZSBuZXh0IG91dHB1dCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgaW5jcSAgICAlcmR4ICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRvIHRoZSBuZXh0IGlucHV0IGNoYXJhY3RlciAqLworICAgICAgICB0ZXN0YiAgICVhbCwgJWFsICAgICAgICAgICAgICAgIC8qIGlzIHRoZSBjb3BpZWQgY2hhcmFjdGVyIG51bGw/ICovCisgICAgICAgIGpueiAgICAgMWIgICAgICAgICAgICAgICAgICAgICAgLyogbm8sIGNvcHkgdGhlIG5leHQgY2hhcmFjdGVyICovCisgICAgICAgIGxlYXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZGVzdHJveSB0aGUgc3RhY2sgZnJhbWUgKi8KKyAgICAgICAgbW92cSAgICAlcmRpLCAlcmF4ICAgICAgICAgICAgICAvKiBzZXQgczEgYXMgdGhlIHJldHVybiB2YWx1ZSAqLworICAgICAgICByZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJldHVybiB0byB0aGUgY2FsbGVyICovCisuc2l6ZSBWR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RyY3B5KSwgLi1WR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RyY3B5KQorCisvKiBjaGFyICpzdHJuY3B5KGNoYXIgKnJlc3RyaWN0IHMxLCBjb25zdCBjaGFyICpyZXN0cmljdCBzMiwgc2l6ZV90IG4pOyAqLworLmdsb2JhbCBWR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RybmNweSkKKy50eXBlICAgVkdfKGFtZDY0X3NvbGFyaXNfUkVESVJfRk9SX3N0cm5jcHkpLCBAZnVuY3Rpb24KK1ZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJuY3B5KToKKyAgICAgICAgcHVzaHEgICAlcmJwICAgICAgICAgICAgICAgICAgICAvKiBlc3RhYmxpc2ggYSBzdGFjayBmcmFtZSAqLworICAgICAgICBtb3ZxICAgICVyc3AsICVyYnAKKyAgICAgICAgbW92cSAgICAlcmRpLCAlcmN4ICAgICAgICAgICAgICAvKiBjb3B5IHMxICovCisxOgorICAgICAgICB0ZXN0cSAgICVyZHgsICVyZHggICAgICAgICAgICAgIC8qIGlzIHRoZSByZW1haW5pbmcgc2l6ZSB6ZXJvPyAqLworICAgICAgICBqeiAgICAgIDNmICAgICAgICAgICAgICAgICAgICAgIC8qIHllcywgYWxsIGRvbmUgKi8KKyAgICAgICAgbW92emJsICAoJXJzaSksICVlYXggICAgICAgICAgICAvKiBsb2FkIG9uZSBpbnB1dCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgbW92YiAgICAlYWwsICglcmN4KSAgICAgICAgICAgICAvKiBjb3B5IHRvIG91dHB1dC9zMiAqLworICAgICAgICBkZWNxICAgICVyZHggICAgICAgICAgICAgICAgICAgIC8qIGRlY3JlbWVudCB0aGUgcmVtYWluaW5nIHNpemUgKi8KKyAgICAgICAgaW5jcSAgICAlcnNpICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRvIHRoZSBuZXh0IG91dHB1dCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgaW5jcSAgICAlcmN4ICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRvIHRoZSBuZXh0IGlucHV0IGNoYXJhY3RlciAqLworICAgICAgICB0ZXN0YiAgICVhbCwgJWFsICAgICAgICAgICAgICAgIC8qIGlzIHRoZSBjb3BpZWQgY2hhcmFjdGVyIG51bGw/ICovCisgICAgICAgIGpueiAgICAgMWIgICAgICAgICAgICAgICAgICAgICAgLyogbm8sIGNvcHkgdGhlIG5leHQgY2hhcmFjdGVyICovCisyOgorICAgICAgICB0ZXN0cSAgICVyZHgsICVyZHggICAgICAgICAgICAgIC8qIGlzIHRoZSByZW1haW5pbmcgc2l6ZSB6ZXJvPyAqLworICAgICAgICBqeiAgICAgIDNmICAgICAgICAgICAgICAgICAgICAgIC8qIHllcywgYWxsIGRvbmUgKi8KKyAgICAgICAgbW92YiAgICAkMCwgKCVyZHgpICAgICAgICAgICAgICAvKiBjb3B5IG51bGwgdG8gb3V0cHV0L3MyICovCisgICAgICAgIGRlY3EgICAgJXJkeCAgICAgICAgICAgICAgICAgICAgLyogZGVjcmVtZW50IHRoZSByZW1haW5pbmcgc2l6ZSAqLworICAgICAgICBpbmNxICAgICVyc2kgICAgICAgICAgICAgICAgICAgIC8qIHNraXAgdG8gbmV4dCBvdXRwdXQgY2hhcmFjdGVyICovCisgICAgICAgIGptcCAgICAgMmIgICAgICAgICAgICAgICAgICAgICAgLyogcHJvY2VlZCB3aXRoIHRoZSBuZXh0IGNoYXJhY3RlciAqLworMzoKKyAgICAgICAgbGVhdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBkZXN0cm95IHRoZSBzdGFjayBmcmFtZSAqLworICAgICAgICBtb3ZxICAgICVyZGksICVyYXggICAgICAgICAgICAgIC8qIHNldCBzMSBhcyB0aGUgcmV0dXJuIHZhbHVlICovCisgICAgICAgIHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmV0dXJuIHRvIHRoZSBjYWxsZXIgKi8KKy5zaXplIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJuY3B5KSwgLi1WR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RybmNweSkKKworLyogaW50IHN0cmNtcChjb25zdCBjaGFyICpzMSwgY29uc3QgY2hhciAqczIpOyAqLworLmdsb2JhbCBWR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RyY21wKQorLnR5cGUgICBWR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RyY21wKSwgQGZ1bmN0aW9uCitWR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RyY21wKToKKyAgICAgICAgcHVzaHEgICAlcmJwICAgICAgICAgICAgICAgICAgICAvKiBlc3RhYmxpc2ggYSBzdGFjayBmcmFtZSAqLworICAgICAgICBtb3ZxICAgICVyc3AsICVyYnAKKyAgICAgICAgam1wICAgICAyZiAgICAgICAgICAgICAgICAgICAgICAvKiBnbyBjb21wYXJlIHRoZSBmaXJzdCBjaGFyYWN0ZXJzICovCisxOgorICAgICAgICBpbmNxICAgICVyZGkgICAgICAgICAgICAgICAgICAgIC8qIHNraXAgdG8gdGhlIG5leHQgczEgY2hhcmFjdGVyICovCisgICAgICAgIGluY3EgICAgJXJzaSAgICAgICAgICAgICAgICAgICAgLyogc2tpcCB0byB0aGUgbmV4dCBzMiBjaGFyYWN0ZXIgKi8KKzI6CisgICAgICAgIG1vdnpibCAgKCVyZGkpLCAlZWF4ICAgICAgICAgICAgLyogbG9hZCBhIGNoYXJhY3RlciBmcm9tIHMxICovCisgICAgICAgIHRlc3RiICAgJWFsLCAlYWwgICAgICAgICAgICAgICAgLyogaXMgaXQgbnVsbD8gKi8KKyAgICAgICAganogICAgICAzZiAgICAgICAgICAgICAgICAgICAgICAvKiB5ZXMsIGV4aXQgKi8KKyAgICAgICAgY21wYiAgICAoJXJzaSksICVhbCAgICAgICAgICAgICAvKiBhcmUgdGhlIGNoYXJhY3RlcnMgZXF1YWw/ICovCisgICAgICAgIGplICAgICAgMWIgICAgICAgICAgICAgICAgICAgICAgLyogeWVzLCBwcm9jZWVkIHdpdGggbmV4dCBjaGFyYWN0ZXJzICovCiszOgorICAgICAgICBtb3Z6YmwgICglcnNpKSwgJWVkeCAgICAgICAgICAgIC8qIGxvYWQgYSBjaGFyYWN0ZXIgZnJvbSBzMiAqLworICAgICAgICBzdWJsICAgICVlZHgsICVlYXggICAgICAgICAgICAgIC8qIGNhbGN1bGF0ZSB0aGUgcmV0dXJuIHZhbHVlICovCisgICAgICAgIGxlYXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZGVzdHJveSB0aGUgc3RhY2sgZnJhbWUgKi8KKyAgICAgICAgcmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByZXR1cm4gdG8gdGhlIGNhbGxlciAqLworLnNpemUgVkdfKGFtZDY0X3NvbGFyaXNfUkVESVJfRk9SX3N0cmNtcCksIC4tVkdfKGFtZDY0X3NvbGFyaXNfUkVESVJfRk9SX3N0cmNtcCkKKworLyogY2hhciAqc3RyY2F0KGNoYXIgKnJlc3RyaWN0IHMxLCBjb25zdCBjaGFyICpyZXN0cmljdCBzMik7ICovCisuZ2xvYmFsIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjYXQpCisudHlwZSAgIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjYXQpLCBAZnVuY3Rpb24KK1ZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjYXQpOgorICAgICAgICBwdXNocSAgICVyYnAgICAgICAgICAgICAgICAgICAgIC8qIGVzdGFibGlzaCBhIHN0YWNrIGZyYW1lICovCisgICAgICAgIG1vdnEgICAgJXJzcCwgJXJicAorICAgICAgICBtb3ZxICAgICVyZGksICVyZHggICAgICAgICAgICAgIC8qIGNvcHkgczEgKi8KKyAgICAgICAgam1wICAgICAyZiAgICAgICAgICAgICAgICAgICAgICAvKiBnbyBoYW5kbGUgdGhlIGZpcnN0IGNoYXJhY3RlciAqLworMToKKyAgICAgICAgaW5jcSAgICAlcmR4ICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRvIHRoZSBuZXh0IHMxIGNoYXJhY3RlciAqLworMjoKKyAgICAgICAgY21wYiAgICAkMCwgKCVyZHgpICAgICAgICAgICAgICAvKiBpcyB0aGUgczEgY2hhcmFjdGVyIG51bGw/ICovCisgICAgICAgIGpuZSAgICAgMWIgICAgICAgICAgICAgICAgICAgICAgLyogbm8sIGdvIGNoZWNrIHRoZSBuZXh0IGNoYXJhY3RlciAqLworMzoKKyAgICAgICAgbW92emJsICAoJXJzaSksICVlYXggICAgICAgICAgICAvKiBsb2FkIGEgY2hhcmFjdGVyIGZyb20gczIgKi8KKyAgICAgICAgbW92YiAgICAlYWwsICglcmR4KSAgICAgICAgICAgICAvKiBjb3B5IHRoZSBzMiBjaGFyYWN0ZXIgdG8gczEgKi8KKyAgICAgICAgaW5jcSAgICAlcmR4ICAgICAgICAgICAgICAgICAgICAvKiBza2lwIHRvIHRoZSBuZXh0IHMxIGNoYXJhY3RlciAqLworICAgICAgICBpbmNxICAgICVyc2kgICAgICAgICAgICAgICAgICAgIC8qIHNraXAgdG8gdGhlIG5leHQgczIgY2hhcmFjdGVyICovCisgICAgICAgIHRlc3RiICAgJWFsLCAlYWwgICAgICAgICAgICAgICAgLyogd2FzIHRoZSBjaGFyYWN0ZXIgbnVsbD8gKi8KKyAgICAgICAgam56ICAgICAzYiAgICAgICAgICAgICAgICAgICAgICAvKiBubywgZ28gY29weSB0aGUgbmV4dCBjaGFyYWN0ZXIgKi8KKyAgICAgICAgbW92cSAgICAlcmRpLCAlcmF4ICAgICAgICAgICAgICAvKiBzZXQgczEgYXMgdGhlIHJldHVybiB2YWx1ZSAqLworICAgICAgICBsZWF2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRlc3Ryb3kgdGhlIHN0YWNrIGZyYW1lICovCisgICAgICAgIHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmV0dXJuIHRvIHRoZSBjYWxsZXIgKi8KKy5zaXplIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjYXQpLCAuLVZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjYXQpCisKKy8qIHNpemVfdCBzdHJsZW4oY29uc3QgY2hhciAqcyk7ICovCisuZ2xvYmFsIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJsZW4pCisudHlwZSAgIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJsZW4pLCBAZnVuY3Rpb24KK1ZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJsZW4pOgorICAgICAgICBwdXNocSAgICVyYnAgICAgICAgICAgICAgICAgICAgIC8qIGVzdGFibGlzaCBhIHN0YWNrIGZyYW1lICovCisgICAgICAgIG1vdnEgICAgJXJzcCwgJXJicAorICAgICAgICBtb3ZxICAgICVyZGksICVyYXggICAgICAgICAgICAgIC8qIGNvcHkgcyAqLworICAgICAgICBqbXAgICAgIDJmICAgICAgICAgICAgICAgICAgICAgIC8qIGdvIGhhbmRsZSB0aGUgZmlyc3QgY2hhcmFjdGVyICovCisxOgorICAgICAgICBpbmNxICAgICVyYXggICAgICAgICAgICAgICAgICAgIC8qIHNraXAgdG8gdGhlIG5leHQgcyBjaGFyYWN0ZXIgKi8KKzI6CisgICAgICAgIGNtcGIgICAgJDAsICglcmF4KSAgICAgICAgICAgICAgLyogaXMgdGhlIHMgY2hhcmFjdGVyIG51bGw/ICovCisgICAgICAgIGpuZSAgICAgMWIgICAgICAgICAgICAgICAgICAgICAgLyogbm8sIGdvIHByb2Nlc3MgdGhlIG5leHQgY2hhcmFjdGVyICovCisgICAgICAgIHN1YnEgICAgJXJkaSwgJXJheCAgICAgICAgICAgICAgLyogY2FsY3VsYXRlIHRoZSByZXR1cm4gdmFsdWUgKi8KKyAgICAgICAgbGVhdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBkZXN0cm95IHRoZSBzdGFjayBmcmFtZSAqLworICAgICAgICByZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJldHVybiB0byB0aGUgY2FsbGVyICovCisuc2l6ZSBWR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RybGVuKSwgLi1WR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RybGVuKQorCisuZ2xvYmFsIFZHXyh0cmFtcG9saW5lX3N0dWZmX2VuZCkKK1ZHXyh0cmFtcG9saW5lX3N0dWZmX2VuZCk6CisKIC8qLS0tLS0tLS0tLS0tLS0tLSB1bmtub3duIC0tLS0tLS0tLS0tLS0tLS0qLwogI2Vsc2UKICMgIGVycm9yIFVua25vd24gcGxhdGZvcm0KQEAgLTE0MTUsMTUgKzE1OTYsMTEgQEAKICNlbmRpZgogI2VuZGlmCiAjZW5kaWYKLQotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQotLyogTGV0IHRoZSBsaW5rZXIga25vdyB3ZSBkb24ndCBuZWVkIGFuIGV4ZWN1dGFibGUgc3RhY2sgKi8KLSMgIGlmIGRlZmluZWQoVkdQX2FybV9saW51eCkKLSAgIC5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIiwlcHJvZ2JpdHMKLSMgIGVsc2UgICAgICAgIAotICAgLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotIyAgZW5kaWYKICNlbmRpZgorI2VuZGlmCisKKy8qIExldCB0aGUgbGlua2VyIGtub3cgd2UgZG9uJ3QgbmVlZCBhbiBleGVjdXRhYmxlIHN0YWNrICovCitNQVJLX1NUQUNLX05PX0VYRUMKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3RyYW5zbGF0ZS5jIGIvY29yZWdyaW5kL21fdHJhbnNsYXRlLmMKaW5kZXggODZhM2Y0YS4uNjI2ODBjYiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fdHJhbnNsYXRlLmMKKysrIGIvY29yZWdyaW5kL21fdHJhbnNsYXRlLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTU3Miw5ICsxNTcyLDEwIEBACiAgICAgICBCb29sIG9rID0gVkdfKGdldF9mbm5hbWVfd19vZmZzZXQpKGFkZHIsICZmbm5hbWUpOwogICAgICAgaWYgKCFvaykgZm5uYW1lID0gIlVOS05PV05fRlVOQ1RJT04iOwogICAgICAgVkdfKHByaW50ZikoCi0gICAgICAgICAiPT09PSBTQiAlZCAoZXZjaGVja3MgJWxsZCkgW3RpZCAlZF0gMHglbHggJXMgJXMrMHglbGx4XG4iLAotICAgICAgICAgVkdfKGdldF9iYnNfdHJhbnNsYXRlZCkoKSwgYmJzX2RvbmUsIChJbnQpdGlkLCBhZGRyLAotICAgICAgICAgZm5uYW1lLCBvYmpuYW1lLCAoVUxvbmcpb2Jqb2ZmCisgICAgICAgICAiPT09PSBTQiAldSAoZXZjaGVja3MgJWxsdSkgW3RpZCAldV0gMHglbHggJXMgJXMlYzB4JWx4XG4iLAorICAgICAgICAgVkdfKGdldF9iYnNfdHJhbnNsYXRlZCkoKSwgYmJzX2RvbmUsIHRpZCwgYWRkciwKKyAgICAgICAgIGZubmFtZSwgb2JqbmFtZSwgb2Jqb2ZmID49IDAgPyAnKycgOiAnLScsIAorICAgICAgICAgKFVXb3JkKShvYmpvZmYgPj0gMCA/IG9iam9mZiA6IC1vYmpvZmYpCiAgICAgICApOwogICAgfQogCkBAIC0xNjc5LDYgKzE2ODAsOSBAQAogICAgdmV4X2FiaWluZm8uZ3Vlc3RfcHBjX3phcF9SWl9hdF9ibCAgICAgICAgID0gY29uc3RfVHJ1ZTsKICAgIHZleF9hYmlpbmZvLmhvc3RfcHBjX2NhbGxzX3VzZV9mbmRlc2NycyAgICA9IEZhbHNlOwogIyAgZW5kaWYKKyMgIGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICB2ZXhfYWJpaW5mby5ndWVzdF9hbWQ2NF9hc3N1bWVfZnNfaXNfY29uc3QgPSBUcnVlOworIyAgZW5kaWYKIAogICAgLyogU2V0IHVwIGNsb3N1cmUgYXJncy4gKi8KICAgIGNsb3N1cmUudGlkICAgID0gdGlkOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL21fdHJhbnN0YWIuYyBiL2NvcmVncmluZC9tX3RyYW5zdGFiLmMKaW5kZXggYTVmNmYyNi4uYjljY2U5OSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fdHJhbnN0YWIuYworKysgYi9jb3JlZ3JpbmQvbV90cmFuc3RhYi5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIzNzMsOCArMjM3Myw4IEBACiAgICBpZiAoVkdfKGNsb192ZXJib3NpdHkpID4gMiB8fCBWR18oY2xvX3N0YXRzKQogICAgICAgIHx8IFZHXyhkZWJ1Z0xvZ19nZXRMZXZlbCkgKCkgPj0gMikgewogICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAotICAgICAgICAgIlRUL1RDOiBjYWNoZTogJXMtLWF2Zy10cmFuc3RhYi1lbnRyeS1zaXplPSVkLCAiIAotICAgICAgICAgIiVzdG9vbCBwcm92aWRlZCBkZWZhdWx0ICVkXG4iLAorICAgICAgICAgIlRUL1RDOiBjYWNoZTogJXMtLWF2Zy10cmFuc3RhYi1lbnRyeS1zaXplPSV1LCAiCisgICAgICAgICAiJXN0b29sIHByb3ZpZGVkIGRlZmF1bHQgJXVcbiIsCiAgICAgICAgICBWR18oY2xvX2F2Z190cmFuc3RhYl9lbnRyeV9zaXplKSA9PSAwID8gImlnbm9yaW5nICIgOiAidXNpbmcgIiwKICAgICAgICAgIFZHXyhjbG9fYXZnX3RyYW5zdGFiX2VudHJ5X3NpemUpLAogICAgICAgICAgVkdfKGNsb19hdmdfdHJhbnN0YWJfZW50cnlfc2l6ZSkgPT0gMCA/ICJ1c2luZyAiIDogImlnbm9yaW5nICIsCkBAIC0yNDI2LDEzICsyNDI2LDEzIEBACiAgICAgICBuX2Zhc3RfdXBkYXRlcywgbl9mYXN0X2ZsdXNoZXMgKTsKIAogICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAotICAgICAgICAgICAgICAgICIgdHJhbnN0YWI6IG5ldyAgICAgICAgJSdsbGQgIgorICAgICAgICAgICAgICAgICIgdHJhbnN0YWI6IG5ldyAgICAgICAgJSdsbHUgIgogICAgICAgICAgICAgICAgICIoJSdsbHUgLT4gJSdsbHU7IHJhdGlvICUzLjFmKSBbJSdsbHUgc2NzXSAiCi0gICAgICAgICAgICAgICAgImF2ZyB0Y2Ugc2l6ZSAlZFxuIiwKKyAgICAgICAgICAgICAgICAiYXZnIHRjZSBzaXplICVsbHVcbiIsCiAgICAgICAgICAgICAgICAgbl9pbl9jb3VudCwgbl9pbl9vc2l6ZSwgbl9pbl90c2l6ZSwKICAgICAgICAgICAgICAgICBzYWZlX2lkaXYobl9pbl90c2l6ZSwgbl9pbl9vc2l6ZSksCiAgICAgICAgICAgICAgICAgbl9pbl9zY19jb3VudCwKLSAgICAgICAgICAgICAgICAoaW50KSAobl9pbl90c2l6ZSAvIChuX2luX2NvdW50ID8gbl9pbl9jb3VudCA6IDEpKSk7CisgICAgICAgICAgICAgICAgbl9pbl90c2l6ZSAvIChuX2luX2NvdW50ID8gbl9pbl9jb3VudCA6IDEpKTsKICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKICAgICAgICAgICAgICAgICAiIHRyYW5zdGFiOiBkdW1wZWQgICAgICUnbGx1ICglJ2xsdSAtPiA/IiAiPykgIgogICAgICAgICAgICAgICAgICIoc2VjdG9ycyByZWN5Y2xlZCAlJ2xsdSlcbiIsCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV91bWUvZWxmLmMgYi9jb3JlZ3JpbmQvbV91bWUvZWxmLmMKaW5kZXggMGU0YzFjZC4uYTk4NzE1MCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fdW1lL2VsZi5jCisrKyBiL2NvcmVncmluZC9tX3VtZS9lbGYuYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOCw3ICsyOCw3IEBACiAgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCiAqLwogCi0jaWYgZGVmaW5lZChWR09fbGludXgpCisjaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKICNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIKICNpbmNsdWRlICJwdWJfY29yZV92a2kuaCIKQEAgLTQ3LDEwICs0NywxNSBAQAogI2luY2x1ZGUgInByaXZfdW1lLmgiCiAKIC8qIC0tLSAhISEgLS0tIEVYVEVSTkFMIEhFQURFUlMgc3RhcnQgLS0tICEhISAtLS0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKKyNpZiBkZWZpbmVkKFZHT19saW51eCkKKyMgIGRlZmluZSBfR05VX1NPVVJDRQorIyAgZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTIDY0CisjZW5kaWYKIC8qIFRoaXMgaXMgZm9yIEVMRiB0eXBlcyBldGMsIGFuZCBhbHNvIHRoZSBBVF8gY29uc3RhbnRzLiAqLwogI2luY2x1ZGUgPGVsZi5oPgorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisjICBpbmNsdWRlIDxzeXMvZmFzdHRyYXAuaD4gLy8gUFRfU1VOV0RUUkFDRV9TSVpFCisjZW5kaWYKIC8qIC0tLSAhISEgLS0tIEVYVEVSTkFMIEhFQURFUlMgZW5kIC0tLSAhISEgLS0tICovCiAKIApAQCAtMzA3LDYgKzMxMiw5IEBACiAgICBJbnQgaTsKICAgIHZvaWQgKmVudHJ5OwogICAgRVNaKEFkZHIpIGViYXNlID0gMDsKKyMgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBFU1ooQWRkcikgdGhycHRyX2FkZHIgPSAwOworIyAgZW5kaWYKIAogIyAgaWYgZGVmaW5lZChIQVZFX1BJRSkKICAgIGViYXNlID0gaW5mby0+ZXhlX2Jhc2U7CkBAIC0zNDIsNiArMzUwLDExIEBACiAgICAgICBpZiAoZWJhc2UgPCBoYWNreV9sb2FkX2FkZHJlc3MpCiAgICAgICAgICBlYmFzZSA9IGhhY2t5X2xvYWRfYWRkcmVzczsKICMgICAgIGVuZGlmCisKKyMgICAgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAvKiBSZWNvcmQgZm9yIGxhdGVyIHVzZSBpbiBBVF9CQVNFLiAqLworICAgICAgaW5mby0+aW50ZXJwX29mZnNldCA9IGViYXNlOworIyAgICAgZW5kaWYKICAgIH0KIAogICAgaW5mby0+cGhudW0gPSBlLT5lLmVfcGhudW07CkBAIC0zNTUsNiArMzY4LDkgQEAKICAgICAgIHN3aXRjaChwaC0+cF90eXBlKSB7CiAgICAgICBjYXNlIFBUX1BIRFI6CiAgICAgICAgICBpbmZvLT5waGRyID0gcGgtPnBfdmFkZHIgKyBlYmFzZTsKKyMgICAgICAgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAgICBpbmZvLT5yZWFsX3BoZHJfcHJlc2VudCA9IFRydWU7CisjICAgICAgICBlbmRpZgogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgUFRfTE9BRDoKQEAgLTM2Myw2ICszNzksMTggQEAKICAgICAgICAgIGlmIChwaC0+cF92YWRkcitwaC0+cF9tZW1zeiA+IG1heGFkZHIpCiAgICAgICAgICAgICBtYXhhZGRyID0gcGgtPnBfdmFkZHIrcGgtPnBfbWVtc3o7CiAgICAgICAgICBicmVhazsKKworIyAgICAgaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgIGNhc2UgUFRfU1VOV0RUUkFDRToKKyAgICAgICAgIGlmIChwaC0+cF9tZW1zeiA8IFBUX1NVTldEVFJBQ0VfU0laRSB8fAorICAgICAgICAgICAgIChwaC0+cF9mbGFncyAmIChQRl9SIHwgUEZfVyB8IFBGX1gpKSAhPSAoUEZfUiB8IFBGX1cgfCBQRl9YKSkgeworICAgICAgICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiBtX3VtZS5jOiB0b28gc21hbGwgU1VOV0RUUkFDRSBzaXplXG4iKTsKKyAgICAgICAgICAgIHJldHVybiBWS0lfRU5PRVhFQzsKKyAgICAgICAgIH0KKworICAgICAgICAgaW5mby0+aW5pdF90aHJwdHIgPSBwaC0+cF92YWRkciArIGViYXNlOworICAgICAgICAgYnJlYWs7CisjICAgICBlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICBjYXNlIFBUX0lOVEVSUDogewogICAgICAgICAgSENoYXIgKmJ1ZiA9IFZHXyhtYWxsb2MpKCJ1bWUuTEUuMSIsIHBoLT5wX2ZpbGVzeisxKTsKQEAgLTM5Miw2ICs0MjAsMjEgQEAKICAgICAgICAgICAgIEVTWihQaGRyKSAqaXBoID0gJmludGVycC0+cFtqXTsKICAgICAgICAgICAgIEVTWihBZGRyKSBlbmQ7CiAKKyMgICAgICAgICAgIGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAgICAgICBpZiAoaXBoLT5wX3R5cGUgPT0gUFRfU1VOV0RUUkFDRSkgeworICAgICAgICAgICAgICAgaWYgKGlwaC0+cF9tZW1zeiA8IFBUX1NVTldEVFJBQ0VfU0laRSB8fAorICAgICAgICAgICAgICAgICAgIChpcGgtPnBfZmxhZ3MgJiAoUEZfUiB8IFBGX1cgfCBQRl9YKSkKKyAgICAgICAgICAgICAgICAgICAgICAhPSAoUEZfUiB8IFBGX1cgfCBQRl9YKSkgeworICAgICAgICAgICAgICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiBtX3VtZS5jOiB0b28gc21hbGwgU1VOV0RUUkFDRSBzaXplXG4iKTsKKyAgICAgICAgICAgICAgICAgIHJldHVybiBWS0lfRU5PRVhFQzsKKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgLyogU3RvcmUgdGhlIHRocnB0ciB2YWx1ZSBpbnRvIGEgdGVtcG9yYXJ5IGJlY2F1c2Ugd2UgZG8gbm90CisgICAgICAgICAgICAgICAgICBrbm93IHlldCB3aGVyZSB0aGUgaW50ZXJwcmV0ZXIgaXMgbWFwcGVkLiAqLworICAgICAgICAgICAgICAgdGhycHRyX2FkZHIgPSBpcGgtPnBfdmFkZHI7CisgICAgICAgICAgICB9CisjICAgICAgICAgICBlbmRpZgorCiAgICAgICAgICAgICBpZiAoaXBoLT5wX3R5cGUgIT0gUFRfTE9BRCB8fCBpcGgtPnBfbWVtc3ogPT0gMCkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCkBAIC00MDgsMjEgKzQ1MSw0MCBAQAogICAgICAgICAgICAgICAgaW50ZXJwX3NpemUgPSBlbmQ7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KIAorIyAgICAgaWYgZGVmaW5lZChQVF9HTlVfU1RBQ0spIHx8IGRlZmluZWQoUFRfU1VOV1NUQUNLKQogIyAgICAgaWYgZGVmaW5lZChQVF9HTlVfU1RBQ0spCiAgICAgICAvKiBBbmRyb2lkJ3MgZWxmLmggZG9lc24ndCBhcHBlYXIgdG8gaGF2ZSBQVF9HTlVfU1RBQ0suICovCiAgICAgICBjYXNlIFBUX0dOVV9TVEFDSzoKKyMgICAgIGVuZGlmCisjICAgICBpZiBkZWZpbmVkKFBUX1NVTldTVEFDSykKKyAgICAgIC8qIFNvbGFyaXMtc3BlY2lmaWMgcHJvZ3JhbSBoZWFkZXIuICovCisgICAgICBjYXNlIFBUX1NVTldTVEFDSzoKKyMgICAgIGVuZGlmCiAgICAgICAgICBpZiAoKHBoLT5wX2ZsYWdzICYgUEZfWCkgPT0gMCkgaW5mby0+c3RhY2tfcHJvdCAmPSB+VktJX1BST1RfRVhFQzsKICAgICAgICAgIGlmICgocGgtPnBfZmxhZ3MgJiBQRl9XKSA9PSAwKSBpbmZvLT5zdGFja19wcm90ICY9IH5WS0lfUFJPVF9XUklURTsKICAgICAgICAgIGlmICgocGgtPnBfZmxhZ3MgJiBQRl9SKSA9PSAwKSBpbmZvLT5zdGFja19wcm90ICY9IH5WS0lfUFJPVF9SRUFEOwogICAgICAgICAgYnJlYWs7CiAjICAgICBlbmRpZgogCisjICAgICBpZiBkZWZpbmVkKFBUX1NVTldfU1lTU1RBVCkKKyAgICAgIC8qIFNvbGFyaXMtc3BlY2lmaWMgcHJvZ3JhbSBoZWFkZXIgd2hpY2ggcmVxdWlyZXMgbGluay10aW1lIHN1cHBvcnQuICovCisgICAgICBjYXNlIFBUX1NVTldfU1lTU1RBVDoKKyAgICAgICAgIFZHXyh1bmltcGxlbWVudGVkKSgiU3VwcG9ydCBmb3IgcHJvZ3JhbSBoZWFkZXIgUFRfU1VOV19TWVNTVEFULiIpOworICAgICAgICAgYnJlYWs7CisjICAgICBlbmRpZgorIyAgICAgaWYgZGVmaW5lZChQVF9TVU5XX1NZU1NUQVRfWk9ORSkKKyAgICAgIC8qIFNvbGFyaXMtc3BlY2lmaWMgcHJvZ3JhbSBoZWFkZXIgd2hpY2ggcmVxdWlyZXMgbGluay10aW1lIHN1cHBvcnQuICovCisgICAgICBjYXNlIFBUX1NVTldfU1lTU1RBVF9aT05FOgorICAgICAgICAgVkdfKHVuaW1wbGVtZW50ZWQpKCJTdXBwb3J0IGZvciBwcm9ncmFtIGhlYWRlciBQVF9TVU5XX1NZU1NUQVRfWk9ORS4iKTsKKyAgICAgICAgIGJyZWFrOworIyAgICAgZW5kaWYKKwogICAgICAgZGVmYXVsdDoKICAgICAgICAgIC8vIGRvIG5vdGhpbmcKICAgICAgICAgIGJyZWFrOwogICAgICAgfQotICAgICAgfQogICAgfQogCiAgICBpZiAoaW5mby0+cGhkciA9PSAwKQpAQCAtNDk0LDEyICs1NTYsMjIgQEAKICAgICAgIGVudHJ5ID0gKHZvaWQgKikoYWR2aXNlZCAtIGludGVycF9hZGRyICsgaW50ZXJwLT5lLmVfZW50cnkpOwogCiAgICAgICBpbmZvLT5pbnRlcnBfb2Zmc2V0ID0gYWR2aXNlZCAtIGludGVycF9hZGRyOworIyAgICAgaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgIGlmICh0aHJwdHJfYWRkcikKKyAgICAgICAgIGluZm8tPmluaXRfdGhycHRyID0gdGhycHRyX2FkZHIgKyBpbmZvLT5pbnRlcnBfb2Zmc2V0OworIyAgICAgZW5kaWYKIAogICAgICAgVkdfKGZyZWUpKGludGVycC0+cCk7CiAgICAgICBWR18oZnJlZSkoaW50ZXJwKTsKLSAgIH0gZWxzZQorICAgfSBlbHNlIHsKICAgICAgIGVudHJ5ID0gKHZvaWQgKikoZWJhc2UgKyBlLT5lLmVfZW50cnkpOwogCisjICAgICBpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgICAgaWYgKGUtPmUuZV90eXBlID09IEVUX0RZTikKKyAgICAgICAgIGluZm8tPmxkc29leGVjID0gVHJ1ZTsKKyMgICAgIGVuZGlmCisgICB9CisKICAgIGluZm8tPmV4ZV9iYXNlID0gbWluYWRkciArIGViYXNlOwogICAgaW5mby0+ZXhlX2VuZCAgPSBtYXhhZGRyICsgZWJhc2U7CiAKQEAgLTUyNiw3ICs1OTgsNyBAQAogICAgcmV0dXJuIDA7CiB9CiAKLSNlbmRpZiAvLyBkZWZpbmVkKFZHT19saW51eCkKKyNlbmRpZiAvLyBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3VtZS9tYWNoby5jIGIvY29yZWdyaW5kL21fdW1lL21hY2hvLmMKaW5kZXggNWM1NTE0MS4uZWZlMGY1OSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fdW1lL21hY2hvLmMKKysrIGIvY29yZWdyaW5kL21fdW1lL21hY2hvLmMKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgQXBwbGUgSW5jLgorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgQXBwbGUgSW5jLgogICAgICAgR3JlZyBQYXJrZXIgIGdwYXJrZXJAYXBwbGUuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTc2LDggKzc2LDEwIEBACiBzdGF0aWMgdm9pZCBjaGVja19tbWFwKFN5c1JlcyByZXMsIEFkZHIgYmFzZSwgU2l6ZVQgbGVuLCBjb25zdCBIQ2hhciogd2hvKQogewogICAgaWYgKHNyX2lzRXJyb3IocmVzKSkgewotICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiBtbWFwLUZJWEVEKDB4JWxseCwgJWxsZCkgZmFpbGVkIGluIFVNRSAoJXMpLlxuIiwgCi0gICAgICAgICAgICAgICAgICAoVUxvbmcpYmFzZSwgKExvbmcpbGVuLCB3aG8pOworICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiBtbWFwLUZJWEVEKDB4JWxseCwgJWxsZCkgZmFpbGVkIGluIFVNRSAoJXMpICIKKyAgICAgICAgICAgICAgICAgICJ3aXRoIGVycm9yICVsdSAoJXMpLlxuIiwKKyAgICAgICAgICAgICAgICAgIChVTG9uZyliYXNlLCAoTG9uZylsZW4sIHdobywKKyAgICAgICAgICAgICAgICAgIHNyX0VycihyZXMpLCBWR18oc3RyZXJyb3IpKHNyX0VycihyZXMpKSApOwogICAgICAgVkdfKGV4aXQpKDEpOwogICAgfQogfQpAQCAtODYsOCArODgsMTAgQEAKIHN0YXRpYyB2b2lkIGNoZWNrX21tYXBfZmxvYXQoU3lzUmVzIHJlcywgU2l6ZVQgbGVuLCBjb25zdCBIQ2hhciogd2hvKQogewogICAgaWYgKHNyX2lzRXJyb3IocmVzKSkgewotICAgICAgVkdfKHByaW50ZikoInZhbGdyaW5kOiBtbWFwLUZMT0FUKHNpemU9JWxsZCkgZmFpbGVkIGluIFVNRSAoJXMpLlxuIiwgCi0gICAgICAgICAgICAgICAgICAoTG9uZylsZW4sIHdobyk7CisgICAgICBWR18ocHJpbnRmKSgidmFsZ3JpbmQ6IG1tYXAtRkxPQVQoc2l6ZT0lbGxkKSBmYWlsZWQgaW4gVU1FICglcykgIgorICAgICAgICAgICAgICAgICAgIndpdGggZXJyb3IgJWx1ICglcykuXG4iLAorICAgICAgICAgICAgICAgICAgKExvbmcpbGVuLCB3aG8sCisgICAgICAgICAgICAgICAgICBzcl9FcnIocmVzKSwgVkdfKHN0cmVycm9yKShzcl9FcnIocmVzKSkgKTsKICAgICAgIFZHXyhleGl0KSgxKTsKICAgIH0KIH0KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3VtZS9tYWluLmMgYi9jb3JlZ3JpbmQvbV91bWUvbWFpbi5jCmluZGV4IDExYzZjYzYuLmEzMTlmNGEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3VtZS9tYWluLmMKKysrIGIvY29yZWdyaW5kL21fdW1lL21haW4uYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01MSw3ICs1MSw3IEBACiB9IEV4ZUhhbmRsZXI7CiAKIHN0YXRpYyBFeGVIYW5kbGVyIGV4ZV9oYW5kbGVyc1tdID0gewotIyAgaWYgZGVmaW5lZChWR09fbGludXgpCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKICAgIHsgVkdfKG1hdGNoX0VMRiksICAgIFZHXyhsb2FkX0VMRikgfSwKICMgIGVsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgeyBWR18obWF0Y2hfbWFjaG8pLCAgVkdfKGxvYWRfbWFjaG8pIH0sCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV91bWUvcHJpdl91bWUuaCBiL2NvcmVncmluZC9tX3VtZS9wcml2X3VtZS5oCmluZGV4IDRmNzgxOTAuLjdiM2NjZmQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3VtZS9wcml2X3VtZS5oCisrKyBiL2NvcmVncmluZC9tX3VtZS9wcml2X3VtZS5oCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI3LDcgKzI3LDcgQEAKICAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KICovCiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAKICNpZm5kZWYgX19QUklWX1VNRV9ICiAjZGVmaW5lIF9fUFJJVl9VTUVfSApAQCAtMzYsNyArMzYsNyBAQAogCiBleHRlcm4gSW50IFZHXyhkb19leGVjX2lubmVyKShjb25zdCBIQ2hhciAqZXhlLCBFeGVJbmZvICppbmZvKTsKIAotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogZXh0ZXJuIEJvb2wgVkdfKG1hdGNoX0VMRikgKCBjb25zdCB2b2lkICpoZHIsIFNpemVUIGxlbiApOwogZXh0ZXJuIEludCAgVkdfKGxvYWRfRUxGKSAgKCBJbnQgZmQsIGNvbnN0IEhDaGFyICpuYW1lLCBFeGVJbmZvICppbmZvICk7CiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCkBAIC01Miw3ICs1Miw3IEBACiAKICNlbmRpZiAvLyBfX1BSSVZfVU1FX0gKIAotI2VuZGlmIC8vIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisjZW5kaWYgLy8gZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3VtZS9zY3JpcHQuYyBiL2NvcmVncmluZC9tX3VtZS9zY3JpcHQuYwppbmRleCA1YzAzNDI4Li43ZjZiNWI2IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvbV91bWUvc2NyaXB0LmMKKysrIGIvY29yZWdyaW5kL21fdW1lL3NjcmlwdC5jCkBAIC0xLDMgKzEsNCBAQAorLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiAzOyAtKi0gKi8KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBVc2VyLW1vZGUgZXhlY3ZlKCkgZm9yICMhIHNjcmlwdHMuICAgICAgICAgICAgbV91bWVfc2NyaXB0LmMgLS0tKi8KQEAgLTcsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDEsMzUgKzQyLDI3IEBACiAKICNpbmNsdWRlICJwcml2X3VtZS5oIgogCisvKiBSZXR1cm4gdHJ1ZSwgaWYgdGhlIGZpcnN0IGxpbmUgYmVnaW5zIHdpdGggIyEgYW5kIGNvbnRhaW5zIGFuCisgICBpbnRlcnByZXRlci4gKi8KIEJvb2wgVkdfKG1hdGNoX3NjcmlwdCkoY29uc3Qgdm9pZCAqaGRyLCBTaXplVCBsZW4pCiB7CiAgICBjb25zdCBIQ2hhciogc2NyaXB0ID0gaGRyOwogICAgY29uc3QgSENoYXIqIGVuZCAgICA9IHNjcmlwdCArIGxlbjsKICAgIGNvbnN0IEhDaGFyKiBpbnRlcnAgPSBzY3JpcHQgKyAyOwogCi0gICAvLyBsZW4gPCA0OiBuZWVkICcjJywgJyEnLCBwbHVzIGF0IGxlYXN0IGEgJy8nIGFuZCBvbmUgbW9yZSBjaGFyCi0gICBpZiAobGVuIDwgNCkgcmV0dXJuIEZhbHNlOyAgICAKKyAgIGlmIChsZW4gPCAyKSByZXR1cm4gRmFsc2U7ICAgIAogICAgaWYgKDAgIT0gVkdfKG1lbWNtcCkoaGRyLCAiIyEiLCAyKSkgcmV0dXJuIEZhbHNlOwogCi0gICAvLyBGaW5kIGludGVycHJldGVyIG5hbWUsIG1ha2Ugc3VyZSBpdCdzIGFuIGFic29sdXRlIHBhdGggKHN0YXJ0cyB3aXRoCi0gICAvLyAnLycpIGFuZCBoYXMgYXQgbGVhc3Qgb25lIG1vcmUgY2hhci4gIEZpcnN0LCBza2lwIG92ZXIgYW55IHNwYWNlCi0gICAvLyBiZXR3ZWVuIHRoZSAjISBhbmQgdGhlIHN0YXJ0IG9mIHRoZSBpbnRlcnByZXRlciBuYW1lCisgICAvLyBGaW5kIGludGVycHJldGVyIG5hbWUsIHdoaWNoIG1heSBiZSBhYnNvbHV0ZSBvciByZWxhdGl2ZS4KKyAgIC8vIEZpcnN0LCBza2lwIG92ZXIgYW55IHNwYWNlIGJldHdlZW4gdGhlICMhIGFuZCB0aGUgc3RhcnQgb2YgdGhlCisgICAvLyBpbnRlcnByZXRlciBuYW1lCiAgICB3aGlsZSAoaW50ZXJwIDwgZW5kICYmICgqaW50ZXJwID09ICcgJyB8fCAqaW50ZXJwID09ICdcdCcpKSBpbnRlcnArKzsKIAogICAgLy8gb3ZlcnJ1bj8KICAgIGlmIChpbnRlcnAgPj0gZW5kKSAgIHJldHVybiBGYWxzZTsgIC8vIGNhbid0IGZpbmQgc3RhcnQgb2YgaW50ZXJwIG5hbWUKIAotICAgLy8gaW50ZXJwIHNob3VsZCBub3cgcG9pbnQgYXQgdGhlIC8KLSAgIGlmICgqaW50ZXJwICE9ICcvJykgIHJldHVybiBGYWxzZTsgIC8vIGFic29sdXRlIHBhdGggb25seSBmb3IgaW50ZXJwcmV0ZXIKLQotICAgLy8gY2hlY2sgZm9yIHNvbWV0aGluZyBwbGF1c2libGUgYWZ0ZXIgdGhlIC8KLSAgIGludGVycCsrOwotICAgaWYgKGludGVycCA+PSBlbmQpICAgcmV0dXJuIEZhbHNlOwotICAgaWYgKFZHXyhpc3NwYWNlKSgqaW50ZXJwKSkgcmV0dXJuIEZhbHNlOwotCi0gICAvLyBIZXJlIHdlIHNob3VsZCBnZXQgdGhlIGZ1bGwgaW50ZXJwcmV0ZXIgbmFtZSBhbmQgY2hlY2sgaXQgd2l0aAotICAgLy8gY2hlY2tfZXhlY3V0YWJsZSgpLiAgU2VlIHRoZSAiRVhFQyBGQUlMRUQiIGZhaWx1cmUgd2hlbiBydW5uaW5nIHNoZWxsCi0gICAvLyBmb3IgYW4gZXhhbXBsZS4KKyAgIC8vIE5vIGludGVycHJldGVyIGZvdW5kLgorICAgaWYgKCppbnRlcnAgPT0gJ1xuJykgcmV0dXJuIEZhbHNlOwogCiAgICByZXR1cm4gVHJ1ZTsgICAvLyBsb29rcyBsaWtlIGEgIyEgc2NyaXB0CiB9CkBAIC0xMDMsOCArOTYsNiBAQAogICAgd2hpbGUgKGludGVycCA8IGVuZCAmJiAoKmludGVycCA9PSAnICcgfHwgKmludGVycCA9PSAnXHQnKSkKICAgICAgIGludGVycCsrOwogCi0gICB2Z19hc3NlcnQoKmludGVycCA9PSAnLycpOyAgIC8qIGFic29sdXRlIHBhdGggb25seSBmb3IgaW50ZXJwcmV0ZXIgKi8KLQogICAgLyogc2tpcCBvdmVyIGludGVycHJldGVyIG5hbWUgKi8KICAgIGZvciAoY3AgPSBpbnRlcnA7IGNwIDwgZW5kICYmICFWR18oaXNzcGFjZSkoKmNwKTsgY3ArKykKICAgICAgIDsKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3ZraS5jIGIvY29yZWdyaW5kL21fdmtpLmMKaW5kZXggMmUxNjI2Yi4uMTFiMTE1YyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fdmtpLmMKKysrIGIvY29yZWdyaW5kL21fdmtpLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTc2LDcgKzc2LDcgQEAKIAogICAgLyogLS0tIFBsYXRmb3JtLXNwZWNpZmljIGNoZWNrcyBvbiBzaWduYWwgc2V0cyAtLS0gKi8KIAotIyAgaWYgZGVmaW5lZChWR09fbGludXgpCisjICBpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKICAgIC8qIG5vdGhpbmcgdG8gY2hlY2sgKi8KICMgIGVsaWYgZGVmaW5lZChWR1BfeDg2X2RhcndpbikgfHwgZGVmaW5lZChWR1BfYW1kNjRfZGFyd2luKQogICAgdmdfYXNzZXJ0KF9WS0lfTlNJRyA9PSBOU0lHKTsKQEAgLTEyOCw2ICsxMjgsMTQgQEAKICAgICAgIHN5c2NhbGwtYW1kNjQtZGFyd2luLlMgKi8KICAgIHZnX2Fzc2VydChWS0lfU0lHX1NFVE1BU0sgPT0gMyk7CiAKKyMgIGVsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIC8qIHRoZSB0b0stIGFuZCBmcm9tSy0gZm9ybXMgYXJlIGlkZW50aWNhbCAqLworICAgdmdfYXNzZXJ0KHNpemVvZih2a2lfc2lnYWN0aW9uX3RvS190KQorICAgICAgICAgICAgID09IHNpemVvZih2a2lfc2lnYWN0aW9uX2Zyb21LX3QpKTsKKyAgIC8qIFZLSV9TRVRfU0lHTUFTSyBpcyBoYXJkd2lyZWQgaW50byBzeXNjYWxsLXg4Ni1zb2xhcmlzLlMKKyAgICAgIGFuZCBzeXNjYWxsLWFtZDY0LXNvbGFyaXMuUyAqLworICAgdmdfYXNzZXJ0KFZLSV9TSUdfU0VUTUFTSyA9PSAzKTsKKwogIyAgZWxzZQogIyAgICAgZXJyb3IgIlVua25vd24gT1MiIAogIyAgZW5kaWYKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9tX3ZraXNjbnVtcy5jIGIvY29yZWdyaW5kL21fdmtpc2NudW1zLmMKaW5kZXggNmJkMTViMi4uOTgwN2E4MiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL21fdmtpc2NudW1zLmMKKysrIGIvY29yZWdyaW5kL21fdmtpc2NudW1zLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTUyLDYgKzUyLDE5IEBACiAgICByZXR1cm4gYnVmOwogfQogCisvKiBpbmNsdWRlL3B1Yl90b29sX2Jhc2ljcy5oIGhhcmRjb2RlcyB0aGUgZm9sbG93aW5nIHN5c2NhbGwgbnVtYmVycworICAgb24gbWlwc3szMiw2NH0tbGludXggc28gYXMgdG8gYXZvaWQgYSBtb2R1bGUgY3ljbGUuICBXZSBtYWtlIHRoYXQKKyAgIHNhZmUgaGVyZSBieSBjYXVzaW5nIHRoZSBidWlsZCB0byBmYWlsIGlmIHRob3NlIG51bWJlcnMgc2hvdWxkIGV2ZXIKKyAgIGNoYW5nZS4gIFNlZSBjb21tZW50cyBpbiBmdW5jdGlvbiBzcl9FUSBpbiB0aGUgbWlwc3szMiw2NH0tbGludXgKKyAgIHNlY3Rpb24gb2YgaW5jbHVkZS9wdWJfdG9vbF9iYXNpY3MuaCBmb3IgbW9yZSBkZXRhaWxzLiAqLworI2lmIGRlZmluZWQoVkdQX21pcHMzMl9saW51eCkKK1NUQVRJQ19BU1NFUlQoX19OUl9waXBlICA9PSA0MDQyKTsKK1NUQVRJQ19BU1NFUlQoX19OUl9waXBlMiA9PSA0MzI4KTsKKyNlbGlmIGRlZmluZWQoVkdQX21pcHM2NF9saW51eCkKK1NUQVRJQ19BU1NFUlQoX19OUl9waXBlICA9PSA1MDIxKTsKK1NUQVRJQ19BU1NFUlQoX19OUl9waXBlMiA9PSA1Mjg3KTsKKyNlbmRpZgorCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTczLDYgKzg2LDI0IEBACiB9CiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworY29uc3QgSENoYXIgKlZHXyhzeXNudW1fc3RyaW5nKShXb3JkIHN5c251bSkKK3sKKyAgIHN0YXRpYyBIQ2hhciBidWZbOCsyMCsxXTsgICAvLyBsYXJnZSBlbm91Z2gKKworICAgY29uc3QgSENoYXIqIGNsYXNzbmFtZSA9IE5VTEw7CisgICBzd2l0Y2ggKFZHX1NPTEFSSVNfU1lTTk9fQ0xBU1Moc3lzbnVtKSkgeworICAgICAgY2FzZSBWR19TT0xBUklTX1NZU0NBTExfQ0xBU1NfQ0xBU1NJQzogY2xhc3NuYW1lID0gIiI7IGJyZWFrOworICAgICAgY2FzZSBWR19TT0xBUklTX1NZU0NBTExfQ0xBU1NfRkFTVFRSQVA6IGNsYXNzbmFtZSA9ICJmYXN0OiI7IGJyZWFrOworICAgICAgZGVmYXVsdDogY2xhc3NuYW1lID0gIlVOS05PV046IjsgYnJlYWs7CisgICB9CisgICBWR18oc3ByaW50ZikoYnVmLCAiJXMlbGQiLCBjbGFzc25hbWUsIFZHX1NPTEFSSVNfU1lTTk9fSU5ERVgoc3lzbnVtKSk7CisgICByZXR1cm4gYnVmOworfQorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogI2Vsc2UKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjICBlcnJvciBVbmtub3duIE9TCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV93b3JkZm0uYyBiL2NvcmVncmluZC9tX3dvcmRmbS5jCmluZGV4IDMwY2Q2YWQuLjk3MTcwMjAgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3dvcmRmbS5jCisrKyBiL2NvcmVncmluZC9tX3dvcmRmbS5jCkBAIC05LDEzICs5LDEzIEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgY29kZSBpcyBiYXNlZCBvbiBwcmV2aW91cyB3b3JrIGJ5IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgIChjb3JlZ3JpbmQvbV9vc2V0LmMpIHdoaWNoIGlzCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgICBuam5AdmFsZ3JpbmQub3JnCiAKICAgIHdoaWNoIGluIHR1cm4gd2FzIGRlcml2ZWQgcGFydGlhbGx5IGZyb206CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvbV94YXJyYXkuYyBiL2NvcmVncmluZC9tX3hhcnJheS5jCmluZGV4IDcyNmRkNTUuLjA3ZjE2MWYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9tX3hhcnJheS5jCisrKyBiL2NvcmVncmluZC9tX3hhcnJheS5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNy0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yNzgsNiArMjc4LDkgQEAKICAgIHJldHVybiBWR18obG9va3VwWEFfVU5TQUZFKSh4YSwga2V5LCBmaXJzdCwgbGFzdCwgeGEtPmNtcEZuKTsKIH0KIAorLyogRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBhbiB1bnNpZ25lZCB2YWx1ZSBiZWNhdXNlIHRoZSBudW1iZXIKKyAgIG9mIGVsZW1lbnRzIGNhbm5vdCBiZSBuZWdhdGl2ZS4gVW5mb3J0dW5hdGVseSwgbWFraW5nIHRoZSBjaGFuZ2UgY2F1c2VzCisgICBhIGxvdCBvZiByaXBwbGUuICovCiBXb3JkIFZHXyhzaXplWEEpICggY29uc3QgWEFycmF5KiB4YSApCiB7CiAgICB2Z19hc3NlcnQoeGEpOwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2FkZHJpbmZvLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfYWRkcmluZm8uaAppbmRleCA1NzdjMTA0Li5kNWVlMmRiIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfYWRkcmluZm8uaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfYWRkcmluZm8uaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNCAgUGhpbGlwcGUgV2Fyb3F1aWVycworICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgIFBoaWxpcHBlIFdhcm9xdWllcnMKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9hc3BhY2VobC5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2FzcGFjZWhsLmgKaW5kZXggN2ZmMGQ5OC4uNjZiY2EwYyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2FzcGFjZWhsLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2FzcGFjZWhsLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9hc3BhY2VtZ3IuaCBiL2NvcmVncmluZC9wdWJfY29yZV9hc3BhY2VtZ3IuaAppbmRleCBhZWZiNDNlLi4wMDNkOTRlIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfYXNwYWNlbWdyLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2FzcGFjZW1nci5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC03MCw2ICs3MCw5IEBACiAvLyBRdWVyeWluZyBjdXJyZW50IHN0YXR1cwogCiAKKy8qIEZpbmRzIGFuIGFub255bW91cyBzZWdtZW50IGNvbnRhaW5pbmcgJ2EnLiBSZXR1cm5lZCBwb2ludGVyIGlzIHJlYWQgb25seS4gKi8KK2V4dGVybiBOU2VnbWVudCBjb25zdCAqVkdfKGFtX2ZpbmRfYW5vbl9zZWdtZW50KSAoIEFkZHIgYSApOworCiAvKiBGaW5kIHRoZSBuZXh0IHNlZ21lbnQgYWxvbmcgZnJvbSAnaGVyZScsIGlmIGl0IGlzIGEgZmlsZS9hbm9uL3Jlc3ZuCiAgICBzZWdtZW50LiAqLwogZXh0ZXJuIE5TZWdtZW50IGNvbnN0KiBWR18oYW1fbmV4dF9uc2VnbWVudCkgKCBjb25zdCBOU2VnbWVudCogaGVyZSwKQEAgLTkxLDYgKzk0LDEwIEBACiBleHRlcm4gQm9vbCBWR18oYW1faXNfdmFsaWRfZm9yX2NsaWVudF9vcl9mcmVlX29yX3Jlc3ZuKQogICAgKCBBZGRyIHN0YXJ0LCBTaXplVCBsZW4sIFVJbnQgcHJvdCApOwogCisvKiBDaGVja3MgaWYgYSBwaWVjZSBvZiBtZW1vcnkgY29uc2lzdHMgb2YgZWl0aGVyIGZyZWUgb3IgcmVzZXJ2YXRpb24KKyAgIHNlZ21lbnRzLiAqLworZXh0ZXJuIEJvb2wgVkdfKGFtX2lzX2ZyZWVfb3JfcmVzdm4pKCBBZGRyIHN0YXJ0LCBTaXplVCBsZW4gKTsKKwogLyogQ2hlY2sgd2hldGhlciBBRERSIGxvb2tzIGxpa2UgYW4gYWRkcmVzcyBvciBhZGRyZXNzLXRvLWJlIGxvY2F0ZWQgaW4gYW4KICAgIGV4dGVuc2libGUgY2xpZW50IHN0YWNrIHNlZ21lbnQuICovCiBleHRlcm4gQm9vbCBWR18oYW1fYWRkcl9pc19pbl9leHRlbnNpYmxlX2NsaWVudF9zdGFjaykoIEFkZHIgYWRkciApOwpAQCAtMTIyLDcgKzEyOSw5IEBACiAvKiBEZXNjcmliZXMgYSByZXF1ZXN0IGZvciBWR18oYW1fZ2V0X2Fkdmlzb3J5KS4gKi8KIHR5cGVkZWYKICAgIHN0cnVjdCB7Ci0gICAgICBlbnVtIHsgTUZpeGVkLCBNSGludCwgTUFueSB9IHJraW5kOworICAgICAgLyogTm90ZTogaWYgcmtpbmQgPT0gTUFsaWduIHRoZW4gc3RhcnQgc3BlY2lmaWVzIGFsaWdubWVudC4gVGhpcyBpcworICAgICAgICAgU29sYXJpcyBzcGVjaWZpYy4gKi8KKyAgICAgIGVudW0geyBNRml4ZWQsIE1IaW50LCBNQW55LCBNQWxpZ24gfSBya2luZDsKICAgICAgIEFkZHIgc3RhcnQ7CiAgICAgICBBZGRyIGxlbjsKICAgIH0KQEAgLTIwOSw4ICsyMTgsMTQgQEAKICAgIHNlZ21lbnQgYXJyYXkgYWNjb3JkaW5nbHkuICovCiBleHRlcm4gU3lzUmVzIFZHXyhhbV9tbWFwX2ZpbGVfZml4ZWRfY2xpZW50KQogICAgKCBBZGRyIHN0YXJ0LCBTaXplVCBsZW5ndGgsIFVJbnQgcHJvdCwgSW50IGZkLCBPZmY2NFQgb2Zmc2V0ICk7CitleHRlcm4gU3lzUmVzIFZHXyhhbV9tbWFwX2ZpbGVfZml4ZWRfY2xpZW50X2ZsYWdzKQorICAgKCBBZGRyIHN0YXJ0LCBTaXplVCBsZW5ndGgsIFVJbnQgcHJvdCwgVUludCBmbGFncywgSW50IGZkLCBPZmY2NFQgb2Zmc2V0ICk7CiBleHRlcm4gU3lzUmVzIFZHXyhhbV9tbWFwX25hbWVkX2ZpbGVfZml4ZWRfY2xpZW50KQotICAgKCBBZGRyIHN0YXJ0LCBTaXplVCBsZW5ndGgsIFVJbnQgcHJvdCwgSW50IGZkLCBPZmY2NFQgb2Zmc2V0LCBjb25zdCBIQ2hhciAqbmFtZSApOworICAgKCBBZGRyIHN0YXJ0LCBTaXplVCBsZW5ndGgsIFVJbnQgcHJvdCwgSW50IGZkLAorICAgICBPZmY2NFQgb2Zmc2V0LCBjb25zdCBIQ2hhciAqbmFtZSApOworZXh0ZXJuIFN5c1JlcyBWR18oYW1fbW1hcF9uYW1lZF9maWxlX2ZpeGVkX2NsaWVudF9mbGFncykKKyAgICggQWRkciBzdGFydCwgU2l6ZVQgbGVuZ3RoLCBVSW50IHByb3QsIFVJbnQgZmxhZ3MsIEludCBmZCwKKyAgICAgT2ZmNjRUIG9mZnNldCwgY29uc3QgSENoYXIgKm5hbWUgKTsKIAogLyogTWFwIGFub255bW91c2x5IGF0IGEgZml4ZWQgYWRkcmVzcyBmb3IgdGhlIGNsaWVudCwgYW5kIHVwZGF0ZQogICAgdGhlIHNlZ21lbnQgYXJyYXkgYWNjb3JkaW5nbHkuICovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfYmFzaWNzLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfYmFzaWNzLmgKaW5kZXggOWQ3ZTZiNC4uMjc4ZTNkYyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2Jhc2ljcy5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9iYXNpY3MuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2Jhc2ljc19hc20uaCBiL2NvcmVncmluZC9wdWJfY29yZV9iYXNpY3NfYXNtLmgKaW5kZXggYWRhMjBjYi4uMGRjY2NlOCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2Jhc2ljc19hc20uaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfYmFzaWNzX2FzbS5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9jbGllbnRzdGF0ZS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2NsaWVudHN0YXRlLmgKaW5kZXggZGM5M2QxZi4uMjE1ZGZiMiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2NsaWVudHN0YXRlLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2NsaWVudHN0YXRlLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQ2LDkgKzQ2LDExIEBACiBleHRlcm4gQWRkciAgVkdfKGNsc3RrX3N0YXJ0X2Jhc2UpOyAvLyAqSW5pdGlhbCogbG93ZXN0IGJ5dGUgYWRkcmVzcwogZXh0ZXJuIEFkZHIgIFZHXyhjbHN0a19lbmQpOyAgICAgICAgLy8gSGlnaGVzdCBieXRlIGFkZHJlc3MKIGV4dGVybiBVV29yZCBWR18oY2xzdGtfaWQpOyAgICAgIC8vIGNsaWVudCBzdGFjayBpZAorZXh0ZXJuIFNpemVUIFZHXyhjbHN0a19tYXhfc2l6ZSk7IC8vIG1heCBzaXplIG9mIHRoZSBtYWluIHRocmVhZHMncyBjbGllbnQgc3RhY2sKIAotLyogbGludXggb25seTogd2hlcmUgaXMgdGhlIGNsaWVudCBhdXh2ID8gKi8KLS8qIFRoaXMgaXMgc2V0dXAgYXMgcGFydCBvZiBzZXR1cF9jbGllbnRfc3RhY2sgaW4gaW5pdGltZy1saW51eC5jLiAqLworLyogTGludXggYW5kIFNvbGFyaXMgb25seTogd2hlcmUgaXMgdGhlIGNsaWVudCBhdXh2PyAqLworLyogVGhpcyBpcyBzZXR1cCBhcyBwYXJ0IG9mIHNldHVwX2NsaWVudF9zdGFjayBpbiBpbml0aW1nLWxpbnV4LmMKKyAgIG9yIGluaXRpbWctc29sYXJpcy5jLCByZXNwZWN0aXZlbHkuICovCiBleHRlcm4gVVdvcmQqIFZHXyhjbGllbnRfYXV4dik7CiAKIGV4dGVybiBBZGRyICBWR18oYnJrX2Jhc2UpOwkgLy8gc3RhcnQgb2YgYnJrCkBAIC03MSw2ICs3MywxMSBAQAogLyogU2FtZSBhcyBhYm92ZSwgYnV0IGZvciAvcHJvYy88cGlkPi9hdXh2LiAqLwogZXh0ZXJuIEludCBWR18oY2xfYXV4dl9mZCk7CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogU2FtZSBhcyBhYm92ZSwgYnV0IGZvciAvcHJvYy88cGlkPi9wc2luZm8uICovCitleHRlcm4gSW50IFZHXyhjbF9wc2luZm9fZmQpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKIC8vIENsaWVudCdzIG9yaWdpbmFsIHJsaW1pdCBkYXRhIGFuZCBybGltaXQgc3RhY2sKIGV4dGVybiBzdHJ1Y3QgdmtpX3JsaW1pdCBWR18oY2xpZW50X3JsaW1pdF9kYXRhKTsKIGV4dGVybiBzdHJ1Y3QgdmtpX3JsaW1pdCBWR18oY2xpZW50X3JsaW1pdF9zdGFjayk7CkBAIC05Myw2ICsxMDAsOCBAQAogICAgVkdfKGdldF9TdGFja1RyYWNlKSBpbiBtX3N0YWNrdHJhY2UuYyBmb3IgZnVydGhlciBpbmZvLiAqLwogZXh0ZXJuIEFkZHIgVkdfKGNsaWVudF9fZGxfc3lzaW5mb19pbnQ4MCk7CiAKKy8qIE9idGFpbnMgdGhlIGluaXRpYWwgY2xpZW50IHN0YWNrIHBvaW50ZXIgZnJvbSB0aGUgZmluYWxpc2VkIGltYWdlIGluZm8uICovCitleHRlcm4gQWRkciBWR18oZ2V0X2luaXRpYWxfY2xpZW50X1NQKSh2b2lkKTsKIAogLyogZ2xpYmMgbnB0bCBwdGhyZWFkIHN5c3RlbXMgb25seSwgd2hlbiBuby1ucHRsLXB0aHJlYWQtc3RhY2tjYWNoZQogICAgd2FzIGdpdmVuIGluIC0tc2ltLWhpbnRzLgpAQCAtMTEyLDYgKzEyMSwxMiBAQAogICAgd2F5IHRvIGRpc2FibGUgdGhlIHB0aHJlYWQgc3RhY2sgY2FjaGUuICovCiBleHRlcm4gU2l6ZVQqIFZHXyhjbGllbnRfX3N0YWNrX2NhY2hlX2FjdHNpemVfX2FkZHIpOwogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIEFkZHJlc3Mgb2YgdmFyaWFibGUgdmdfdmZvcmtfZmlsZGVzIGluIHZncHJlbG9hZF9jb3JlLnNvLjAKKyAgICh2Z19wcmVsb2FkZWQuYykuICovCitleHRlcm4gSW50KiBWR18odmZvcmtfZmlsZGVzX2FkZHIpOworI2VuZGlmCisKICNlbmRpZiAgIC8vIF9fUFVCX0NPUkVfQ0xJRU5UU1RBVEVfSAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9jbHJlcS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2NscmVxLmgKaW5kZXggYjZkM2EwOS4uNDVjNDhjMyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2NscmVxLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2NscmVxLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9jb21tYW5kbGluZS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2NvbW1hbmRsaW5lLmgKaW5kZXggMGNmMDAzNi4uYmFjOTAyZSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2NvbW1hbmRsaW5lLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2NvbW1hbmRsaW5lLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2NvcmVkdW1wLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfY29yZWR1bXAuaAppbmRleCAwOGU0MTA3Li44NTFiM2ZmIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfY29yZWR1bXAuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfY29yZWR1bXAuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2NwdWlkLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfY3B1aWQuaAppbmRleCBlZWJlMzcxLi5mMzRlNTZlIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfY3B1aWQuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfY3B1aWQuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2RlYnVnZ2VyLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfZGVidWdnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNhYzgwOS4uMDAwMDAwMAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfZGVidWdnZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0vKi0tLSBBdHRhY2hpbmcgYSBkZWJ1Z2dlci4gICAgICAgICAgICAgICAgICAgIHB1Yl9jb3JlX2RlYnVnZ2VyLmggLS0tKi8KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKgotICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCi0gICBmcmFtZXdvcmsuCi0KLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKLSAgICAgIGpzZXdhcmRAYWNtLm9yZwotCi0gICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCi0gICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0gICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCi0gICAwMjExMS0xMzA3LCBVU0EuCi0KLSAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KLSovCi0KLSNpZm5kZWYgX19QVUJfQ09SRV9ERUJVR0dFUl9ICi0jZGVmaW5lIF9fUFVCX0NPUkVfREVCVUdHRVJfSAotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBQVVJQT1NFOiBUaGlzIHNpbXBsZSBtb2R1bGUganVzdCBkZWFscyB3aXRoIGF0dGFjaGluZyBhIGRlYnVnZ2VyIHRvIHRoZQotLy8gcnVubmluZyBwcm9ncmFtLgotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzLmgiICAgICAgLy8gVGhyZWFkSWQKLQotZXh0ZXJuIHZvaWQgVkdfKHN0YXJ0X2RlYnVnZ2VyKSAoIFRocmVhZElkIHRpZCApOwotCi0jZW5kaWYgICAvLyBfX1BVQl9DT1JFX0RFQlVHR0VSX0gKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0vKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2RlYnVnaW5mby5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2RlYnVnaW5mby5oCmluZGV4IGNlMWIxOTkuLmI2OThmMmMgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9kZWJ1Z2luZm8uaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfZGVidWdpbmZvLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTYyLDcgKzYyLDcgQEAKICAgIHJlbGVhc2VkIGJ5IHNpbXBseSByZS1vcGVuaW5nIGFuZCBjbG9zaW5nIHRoZSBzYW1lIGZpbGUgKGV2ZW4gdmlhCiAgICBkaWZmZXJlbnQgZmQhKS4KICovCi0jaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogZXh0ZXJuIFVMb25nIFZHXyhkaV9ub3RpZnlfbW1hcCkoIEFkZHIgYSwgQm9vbCBhbGxvd19Ta0ZpbGVWLCBJbnQgdXNlX2ZkICk7CiAKIGV4dGVybiB2b2lkIFZHXyhkaV9ub3RpZnlfbXVubWFwKSggQWRkciBhLCBTaXplVCBsZW4gKTsKQEAgLTE0MiwxNCArMTQyLDIyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkciBtaW5fYWNjZXNzaWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyIG1heF9hY2Nlc3NpYmxlICk7CiAKLS8qIHJldHVybnMgdGhlICJnZW5lcmF0aW9uIiBvZiB0aGUgQ0YgaW5mby4KKy8qIHJldHVybnMgdGhlICJnZW5lcmF0aW9uIiBvZiB0aGUgZGVidWcgaW5mby4KICAgIEVhY2ggdGltZSBzb21lIGRlYnVnaW5mbyBpcyBjaGFuZ2VkIChlLmcuIGxvYWRlZCBvciB1bmxvYWRlZCksCi0gICB0aGUgVkdfKENGX2luZm9fZ2VuZXJhdGlvbikgdmFsdWUgcmV0dXJuZWQgd2lsbCBiZSBpbmNyZWFzZWQuCi0gICBUaGlzIGNhbiBiZSB1c2VkIHRvIGZsdXNoIGNhY2hlZCBpbmZvcm1hdGlvbiBkZXJpdmVkIGZyb20gdGhlIENGIGluZm8uICovCi1leHRlcm4gVUludCBWR18oQ0ZfaW5mb19nZW5lcmF0aW9uKSAodm9pZCk7CisgICB0aGUgVkdfKGRlYnVnaW5mb19nZW5lcmF0aW9uKSgpIHZhbHVlIHJldHVybmVkIHdpbGwgYmUgaW5jcmVhc2VkLgorICAgVGhpcyBjYW4gYmUgdXNlZCB0byBmbHVzaCBjYWNoZWQgaW5mb3JtYXRpb24gZGVyaXZlZCBmcm9tIGRlYnVnCisgICBpbmZvIChlLmcuIENGSSBpbmZvIG9yIEZQTyBpbmZvIG9yIC4uLikuICovCitleHRlcm4gVUludCBWR18oZGVidWdpbmZvX2dlbmVyYXRpb24pICh2b2lkKTsKIAogCiAKKy8qIFRydWUgaWYgc29tZSBGUE8gaW5mb3JtYXRpb24gaXMgbG9hZGVkLgorICAgSXQgaXMgdXNlbGVzcyB0byBjYWxsIFZHXyh1c2VfRlBPX2luZm8pIGlmIHRoaXMgcmV0dXJucyBGYWxzZS4KKyAgIE5vdGUgdGhhdCB0aGUgcmV0dXJuIHZhbHVlIHNob3VsZCBwcmVmZXJyYWJseSBiZSBjYWNoZWQgaW4KKyAgIHRoZSBzdGFjayB1bndpbmQgY29kZSwgYW5kIHJlLXF1ZXJpZWQgd2hlbiB0aGUgZGVidWcgaW5mbyBnZW5lcmF0aW9uCisgICBjaGFuZ2VzLiAqLworZXh0ZXJuIEJvb2wgVkdfKEZQT19pbmZvX3ByZXNlbnQpKHZvaWQpOworCiAvKiBVc2UgTVNWQyBGUE8gZGF0YSB0byBkbyBvbmUgc3RlcCBvZiBzdGFjayB1bndpbmRpbmcuICovCiBleHRlcm4gQm9vbCBWR18odXNlX0ZQT19pbmZvKSAoIC8qTU9EKi9BZGRyKiBpcFAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qTU9EKi9BZGRyKiBzcFAsCkBAIC0xNTcsNiArMTY1LDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgbWluX2FjY2Vzc2libGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgbWF4X2FjY2Vzc2libGUgKTsKIAorLyogUHJpbnQgdGhlIHVud2luZCBpbmZvIChpZiB0aGVyZSBpcyBzb21lKSBmb3IgdGhlIGdpdmVuIGFkZHJlc3MKKyAgIHJhbmdlIFtmcm9tLHRvXS4gKi8KK2V4dGVybiB2b2lkIFZHXyhwcFVud2luZEluZm8pIChBZGRyIGZyb20sIEFkZHIgdG8pOworCiAvKiBBVk1BcyBmb3IgYSBzeW1ib2wuIFVzdWFsbHkgb25seSB0aGUgbG93ZXN0IGFkZHJlc3Mgb2YgdGhlIGVudGl0eS4KICAgIE9uIHBwYzY0IHBsYXRmb3JtcywgYWxzbyBjb250YWlucyB0b2NwdHIgYW5kIGxvY2FsX2VwLgogICAgVGhlc2UgZmllbGRzIHNob3VsZCBvbmx5IGJlIGFjY2Vzc2VkIHVzaW5nIHRoZSBtYWNyb3MKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9kZWJ1Z2xvZy5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2RlYnVnbG9nLmgKaW5kZXggODEyY2U4YS4uYzUwMDZjYSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2RlYnVnbG9nLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2RlYnVnbG9nLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9kZWR1cHBvb2xhbGxvYy5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2RlZHVwcG9vbGFsbG9jLmgKaW5kZXggMDgwMzQ4NS4uOTU2ZmUxNyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2RlZHVwcG9vbGFsbG9jLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2RlZHVwcG9vbGFsbG9jLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTQgIFBoaWxpcHBlIFdhcm9xdWllcnMgcGhpbGlwcGUud2Fyb3F1aWVyc0Bza3luZXQuYmUKKyAgIENvcHlyaWdodCAoQykgMjAxNC0yMDE1ICBQaGlsaXBwZSBXYXJvcXVpZXJzIHBoaWxpcHBlLndhcm9xdWllcnNAc2t5bmV0LmJlCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfZGVtYW5nbGUuaCBiL2NvcmVncmluZC9wdWJfY29yZV9kZW1hbmdsZS5oCmluZGV4IGI3ZTFhOGYuLjU3YjJmN2IgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9kZW1hbmdsZS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9kZW1hbmdsZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfZGlzcGF0Y2guaCBiL2NvcmVncmluZC9wdWJfY29yZV9kaXNwYXRjaC5oCmluZGV4IDllMDhlOWQuLjIyMjg3OWIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9kaXNwYXRjaC5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9kaXNwYXRjaC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfZGlzcGF0Y2hfYXNtLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfZGlzcGF0Y2hfYXNtLmgKaW5kZXggOTdmYTUwMC4uMjk3ZWZhMyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2Rpc3BhdGNoX2FzbS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9kaXNwYXRjaF9hc20uaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2Vycm9ybWdyLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfZXJyb3JtZ3IuaAppbmRleCAxMTBjMjA2Li41ZGMwMWI3IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfZXJyb3JtZ3IuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfZXJyb3JtZ3IuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTcsNyArNTcsNyBAQAogLy8gZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBhbGwgZXJyb3JzIGFuZCBzdXBwcmVzc2lvbnMgdXNlZC4KIGV4dGVybiB2b2lkIFZHXyhzaG93X2FsbF9lcnJvcnMpICAgICAgICAgICggSW50IHZlcmJvc2l0eSwgQm9vbCB4bWwgKTsKIAotLyogUHJpbnQgKGluIHJlYWRhYmxlIGZvcm1hdCkgdGhlIGxhc3QgZXJyb3IgdGhhdCBvY2N1cmVkLiAqLworLyogUHJpbnQgKGluIHJlYWRhYmxlIGZvcm1hdCkgdGhlIGxhc3QgZXJyb3IgdGhhdCBvY2N1cnJlZC4gKi8KIGV4dGVybiB2b2lkIFZHXyhzaG93X2xhc3RfZXJyb3IpICAgICAgICAgICggdm9pZCApOwogCiBleHRlcm4gdm9pZCBWR18oc2hvd19lcnJvcl9jb3VudHNfYXNfWE1MKSAoIHZvaWQgKTsKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9leGVjb250ZXh0LmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfZXhlY29udGV4dC5oCmluZGV4IGFiYWI4ODguLmI1NTNjYzAgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9leGVjb250ZXh0LmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2V4ZWNvbnRleHQuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2dkYnNlcnZlci5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2dkYnNlcnZlci5oCmluZGV4IDZlYzlkYWYuLmZhNjk4NjMgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9nZGJzZXJ2ZXIuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfZ2Ric2VydmVyLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTMgUGhpbGlwcGUgV2Fyb3F1aWVycworICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTUgUGhpbGlwcGUgV2Fyb3F1aWVycwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtNjMsNyArNjMsNyBAQAogdm9pZCBWR18oZ2Ric2VydmVyX2V4aXQpIChUaHJlYWRJZCB0aWQsIFZnU2NoZWRSZXR1cm5Db2RlIHRpZHNfc2NoZWRyZXRjb2RlKTsKIAogLyogT24gc3lzdGVtcyB0aGF0IGRlZmluZXMgUFJfU0VUX1BUUkFDRVIsIHZlcmlmeSBpZiBwdHJhY2Vfc2NvcGUgaXMKLSAgIGlzIHBlcm1pc3NpdmUgZW5vdWdoIGZvciB2Z2RiIG9yIC0tZGItYXR0YWNoPXllcy4KKyAgIGlzIHBlcm1pc3NpdmUgZW5vdWdoIGZvciB2Z2RiLgogICAgT3RoZXJ3aXNlLCBjYWxsIHNldF9wdHJhY2VyLgogICAgVGhpcyBpcyBlc3BlY2lhbGx5IGFpbWVkIGF0IFVidW50dSA+PSAxMC4xMCB3aGljaCBoYXMgYWRkZWQKICAgIHRoZSBwdHJhY2Vfc2NvcGUgY29udGV4dC4gKi8KQEAgLTgzLDcgKzgzLDcgQEAKIAogICAgTm90ZSB0aGF0IGdkYnNlcnZlciBhc3N1bWVzIHRoYXQgc29mdHdhcmUgYnJlYWtwb2ludCBpcyBzdXBwb3J0ZWQKICAgIChhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSByZS1pbnN0cnVtZW50aW5nIHRoZSBjb2RlKS4KLSAgIE5vdGUgdGhhdCBsZW4gaXMgaWdub3JlZCBmb3Igc29md2FyZSBicmVha3BvaW50cy4gaGFyZHdhcmVfYnJlYWtwb2ludAorICAgTm90ZSB0aGF0IGxlbiBpcyBpZ25vcmVkIGZvciBzb2Z0d2FyZSBicmVha3BvaW50cy4gaGFyZHdhcmVfYnJlYWtwb2ludAogICAgYXJlIG5vdCBzdXBwb3J0ZWQuCiAKICAgIFJldHVybnMgVHJ1ZSBpZiB0aGUgcG9pbnQgaGFzIHByb3Blcmx5IGJlZW4gaW5zZXJ0ZWQgb3IgcmVtb3ZlZApkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2d1ZXN0LmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfZ3Vlc3QuaAppbmRleCA0NmE3ZDA1Li5kNzAyNWM2IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfZ3Vlc3QuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfZ3Vlc3QuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNCBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MubmV0CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9oYXNodGFibGUuaCBiL2NvcmVncmluZC9wdWJfY29yZV9oYXNodGFibGUuaAppbmRleCBjYTZiYTU3Li5lNWViNDZmIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfaGFzaHRhYmxlLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2hhc2h0YWJsZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2luaXRpbWcuaCBiL2NvcmVncmluZC9wdWJfY29yZV9pbml0aW1nLmgKaW5kZXggNDI4YjBjMi4uMjk0MzMyMSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2luaXRpbWcuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfaW5pdGltZy5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMTksNiArMTE5LDMwIEBACiAgICBBZGRyICBpbml0aWFsX2NsaWVudF9JUDsKIH07CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU29sYXJpcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisKK3N0cnVjdCBfSUlDcmVhdGVJbWFnZUluZm8geworICAgLyogLS0tLS0tIE1hbmRhdG9yeSBmaWVsZHMgLS0tLS0tICovCisgICBjb25zdCBIQ2hhciogdG9vbG5hbWU7CisgICBBZGRyICAgIHNwX2F0X3N0YXJ0dXA7CisgICBBZGRyICAgIGNsc3RhY2tfZW5kOyAvKiBoaWdoZXN0IHN0YWNrIGFkZHJlc3NhYmxlIGJ5dGUgKi8KKyAgIC8qIC0tLS0tLSBQZXItT1MgZmllbGRzIC0tLS0tLSAqLworICAgSENoYXIqKiBhcmd2OworICAgSENoYXIqKiBlbnZwOworfTsKKworc3RydWN0IF9JSUZpbmFsaXNlSW1hZ2VJbmZvIHsKKyAgIC8qIC0tLS0tLSBNYW5kYXRvcnkgZmllbGRzIC0tLS0tLSAqLworICAgU2l6ZVQgY2xzdGFja19tYXhfc2l6ZTsKKyAgIEFkZHIgIGluaXRpYWxfY2xpZW50X1NQOworICAgLyogLS0tLS0tIFBlci1PUyBmaWVsZHMgLS0tLS0tICovCisgICBBZGRyICBpbml0aWFsX2NsaWVudF9JUDsKKyAgIEFkZHIgIGluaXRpYWxfY2xpZW50X1RPQzsKKyAgIFVJbnQqIGNsaWVudF9hdXh2OworICAgQWRkciAgaW5pdGlhbF9jbGllbnRfVFA7IC8qIHRocmVhZCBwb2ludGVyICovCit9OwogCiAjZWxzZQogIyAgZXJyb3IgIlVua25vd24gT1MiCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfaW5uZXIuaCBiL2NvcmVncmluZC9wdWJfY29yZV9pbm5lci5oCmluZGV4IDllZTI2MjIuLjBlNTk4NDQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9pbm5lci5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9pbm5lci5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMi0yMDEzIFBoaWxpcHBlIFdhcm9xdWllcnMKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IFBoaWxpcHBlIFdhcm9xdWllcnMKICAgICAgIHBoaWxpcHBlLndhcm9xdWllcnNAc2t5bmV0LmJlCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9saWJjYXNzZXJ0LmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY2Fzc2VydC5oCmluZGV4IDMyY2ZjNTAuLjkzMTMzNTAgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9saWJjYXNzZXJ0LmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX2xpYmNhc3NlcnQuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzUsOCArNzUsOSBAQAogCiAvKiBDYWxsZWQgd2hlbiBzb21lIHVuaGFuZGxlYWJsZSBjbGllbnQgYmVoYXZpb3VyIGlzIGRldGVjdGVkLgogICAgUHJpbnRzIGEgbXNnIGFuZCBhYm9ydHMuICovCi1leHRlcm4gdm9pZCBWR18odW5pbXBsZW1lbnRlZCkgKCBjb25zdCBIQ2hhciogbXNnICkKLSAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpOworZXh0ZXJuIHZvaWQgVkdfKHVuaW1wbGVtZW50ZWQpICggY29uc3QgSENoYXIqIGZvcm1hdCwgLi4uICkKKyAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpCisgICAgICAgICAgICBQUklOVEZfQ0hFQ0soMSwgMik7CiAKIC8qIFNob3cgdGhlIHN0YXRlIG9mIHZhcmlvdXMgdGhyZWFkcyByZWxhdGVkIGluZm9ybWF0aW9uLCBzdWNoCiAgICBhcyB0aGUgZ3Vlc3Qgc3RhY2t0cmFjZSBmb3IgZWFjaCB0aHJlYWQuCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY2Jhc2UuaCBiL2NvcmVncmluZC9wdWJfY29yZV9saWJjYmFzZS5oCmluZGV4IGUwYjViYmYuLmNkYjRjNDkgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9saWJjYmFzZS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9saWJjYmFzZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY2ZpbGUuaCBiL2NvcmVncmluZC9wdWJfY29yZV9saWJjZmlsZS5oCmluZGV4IDU2MGUxMGMuLmNhZjdjZTEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9saWJjZmlsZS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9saWJjZmlsZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY3ByaW50LmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY3ByaW50LmgKaW5kZXggYWVkZDkxNS4uN2IyZDRhOCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2xpYmNwcmludC5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9saWJjcHJpbnQuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2xpYmNwcm9jLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY3Byb2MuaAppbmRleCBhMWYxZTlhLi4xYmIyN2JhIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY3Byb2MuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY3Byb2MuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzEsOCArNzEsMTEgQEAKIC8vIEVudmlyb25tZW50IG1hbmlwdWxhdGlvbnMKIGV4dGVybiBIQ2hhciAqKlZHXyhlbnZfc2V0ZW52KSAgICggSENoYXIgKioqZW52cCwgY29uc3QgSENoYXIqIHZhcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyICp2YWwgKTsKLWV4dGVybiB2b2lkICAgIFZHXyhlbnZfdW5zZXRlbnYpICggSENoYXIgKiplbnYsIGNvbnN0IEhDaGFyICp2YXJuYW1lICk7Ci1leHRlcm4gdm9pZCAgICBWR18oZW52X3JlbW92ZV92YWxncmluZF9lbnZfc3R1ZmYpICggSENoYXIqKiBlbnYgKTsgCitleHRlcm4gdm9pZCAgICBWR18oZW52X3Vuc2V0ZW52KSAoIEhDaGFyICoqZW52LCBjb25zdCBIQ2hhciAqdmFybmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKmZyZWVfZm4pICggdm9pZCAqKSApOworZXh0ZXJuIHZvaWQgICAgVkdfKGVudl9yZW1vdmVfdmFsZ3JpbmRfZW52X3N0dWZmKSAoIEhDaGFyKiogZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgcm9fc3RyaW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqZnJlZV9mbikgKHZvaWQgKikgKTsKIGV4dGVybiBIQ2hhciAqKlZHXyhlbnZfY2xvbmUpICAgICggSENoYXIgKiplbnZfY2xvbmUgKTsKIAogLy8gbWlzYwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2xpYmNzZXRqbXAuaCBiL2NvcmVncmluZC9wdWJfY29yZV9saWJjc2V0am1wLmgKaW5kZXggMWY3MWFjZi4uMTA1YzMwNCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2xpYmNzZXRqbXAuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY3NldGptcC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIE1vemlsbGEgSW5jCisgICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSBNb3ppbGxhIEluYwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX2xpYmNzaWduYWwuaCBiL2NvcmVncmluZC9wdWJfY29yZV9saWJjc2lnbmFsLmgKaW5kZXggNDZmYTIyYy4uOGY0NWE0NiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX2xpYmNzaWduYWwuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfbGliY3NpZ25hbC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01Miw3ICs1Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2a2lfc2lnc2V0X3QqIHNldDIgKTsKIAogZXh0ZXJuIEludCAgVkdfKHNpZ2FkZHNldCkgICAoIHZraV9zaWdzZXRfdCogc2V0LCBJbnQgc2lnbnVtICk7Ci1leHRlcm4gSW50ICBWR18oc2lnZGVsc2V0KSAgICggdmtpX3NpZ3NldF90KiBzZXQsIEludCBzaWdudW0gKTsKKy8qIFZHXyhzaWdkZWxzZXQpIGlzIGluIHB1Yl90b29sX2xpYmNzaWduYWwuaCAqLwogZXh0ZXJuIEludCAgVkdfKHNpZ2lzbWVtYmVyKSAoIGNvbnN0IHZraV9zaWdzZXRfdCogc2V0LCBJbnQgc2lnbnVtICk7CiAKIGV4dGVybiB2b2lkIFZHXyhzaWdhZGRzZXRfZnJvbV9zZXQpICggdmtpX3NpZ3NldF90KiBkc3QsIGNvbnN0IHZraV9zaWdzZXRfdCogc3JjICk7CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfbWFjaC5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX21hY2guaAppbmRleCAwMzg3NDdjLi4zZGQ4ODJjIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfbWFjaC5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9tYWNoLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgQXBwbGUgSW5jLgorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgQXBwbGUgSW5jLgogICAgICAgR3JlZyBQYXJrZXIgIGdwYXJrZXJAYXBwbGUuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9tYWNoaW5lLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfbWFjaGluZS5oCmluZGV4IDdmYjdhZmUuLmE3MjM4MWIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9tYWNoaW5lLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX21hY2hpbmUuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDEsMTIgKzQxLDEyIEBACiAjaW5jbHVkZSAicHViX2NvcmVfYmFzaWNzLmgiICAgICAgLy8gVW53aW5kU3RhcnRSZWdzCiAKIC8vIFhYWDogdGhpcyBpcyAqcmVhbGx5KiB0aGUgd3Jvbmcgc3BvdCBmb3IgdGhlc2UgdGhpbmdzCi0jaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KQorI2lmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCiAjICBkZWZpbmUgVkdfRUxGX0RBVEEyWFhYICAgICBFTEZEQVRBMkxTQgogIyAgZGVmaW5lIFZHX0VMRl9NQUNISU5FICAgICAgRU1fMzg2CiAjICBkZWZpbmUgVkdfRUxGX0NMQVNTICAgICAgICBFTEZDTEFTUzMyCiAjICB1bmRlZiAgVkdfUExBVF9VU0VTX1BQQ1RPQwotI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpCisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9saW51eCkgfHwgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKICMgIGRlZmluZSBWR19FTEZfREFUQTJYWFggICAgIEVMRkRBVEEyTFNCCiAjICBkZWZpbmUgVkdfRUxGX01BQ0hJTkUgICAgICBFTV9YODZfNjQKICMgIGRlZmluZSBWR19FTEZfQ0xBU1MgICAgICAgIEVMRkNMQVNTNjQKQEAgLTE2OSw2ICsxNjksNyBAQAogLy8gT2Zmc2V0cyBmb3IgdGhlIFZleCBzdGF0ZQogI2RlZmluZSBWR19PX1NUQUNLX1BUUiAgICAgICAgKG9mZnNldG9mKFZleEd1ZXN0QXJjaFN0YXRlLCBWR19TVEFDS19QVFIpKQogI2RlZmluZSBWR19PX0lOU1RSX1BUUiAgICAgICAgKG9mZnNldG9mKFZleEd1ZXN0QXJjaFN0YXRlLCBWR19JTlNUUl9QVFIpKQorI2RlZmluZSBWR19PX0ZSQU1FX1BUUiAgICAgICAgKG9mZnNldG9mKFZleEd1ZXN0QXJjaFN0YXRlLCBWR19GUkFNRV9QVFIpKQogI2RlZmluZSBWR19PX0ZQQ19SRUcgICAgICAgICAgKG9mZnNldG9mKFZleEd1ZXN0QXJjaFN0YXRlLCBWR19GUENfUkVHKSkKIAogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfbWFsbG9jZnJlZS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX21hbGxvY2ZyZWUuaAppbmRleCBlZWI0YWExLi44N2ZlN2Q5IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfbWFsbG9jZnJlZS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9tYWxsb2NmcmVlLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTYzLDkgKzYzLDEwIEBACiAvLyBUaGlzIGlzIGJvdGggdGhlIG1pbmltdW0gcGF5bG9hZCBzaXplIG9mIGEgbWFsbG9jJ2QgYmxvY2ssIGFuZCBpdHMKIC8vIG1pbmltdW0gYWxpZ25tZW50LiAgTXVzdCBiZSBhIHBvd2VyIG9mIDIgZ3JlYXRlciB0aGFuIDQsIGFuZCBzaG91bGQgYmUKIC8vIGdyZWF0ZXIgdGhhbiA4LgotI2lmICAgZGVmaW5lZChWR1BfeDg2X2xpbnV4KSAgIHx8IFwKLSAgICAgIGRlZmluZWQoVkdQX2FybV9saW51eCkgICB8fCBcCi0gICAgICBkZWZpbmVkKFZHUF9taXBzMzJfbGludXgpCisjaWYgICBkZWZpbmVkKFZHUF94ODZfbGludXgpICAgIHx8IFwKKyAgICAgIGRlZmluZWQoVkdQX2FybV9saW51eCkgICAgfHwgXAorICAgICAgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSB8fCBcCisgICAgICBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKICMgIGRlZmluZSBWR19NSU5fTUFMTE9DX1NaQiAgICAgICAgOAogLy8gTmI6IFdlIGFsd2F5cyB1c2UgMTYgYnl0ZXMgZm9yIERhcndpbiwgZXZlbiBvbiAzMi1iaXRzLCBzbyBpdCBjYW4gYmUgdXNlZAogLy8gZm9yIGFueSBBbHRpVmVjLSBvciBTU0UtcmVsYXRlZCB0eXBlLiAgVGhpcyBtYXRjaGVzIHRoZSBEYXJ3aW4gbGliYy4KQEAgLTgwLDcgKzgxLDggQEAKICAgICAgIGRlZmluZWQoVkdQX3g4Nl9kYXJ3aW4pICAgICB8fCBcCiAgICAgICBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pICAgfHwgXAogICAgICAgZGVmaW5lZChWR1BfYXJtNjRfbGludXgpICAgIHx8IFwKLSAgICAgIGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkKKyAgICAgIGRlZmluZWQoVkdQX3RpbGVneF9saW51eCkgICB8fCBcCisgICAgICBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQogIyAgZGVmaW5lIFZHX01JTl9NQUxMT0NfU1pCICAgICAgIDE2CiAjZWxzZQogIyAgZXJyb3IgVW5rbm93biBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX29wdGlvbnMuaCBiL2NvcmVncmluZC9wdWJfY29yZV9vcHRpb25zLmgKaW5kZXggNTNjY2ZjMC4uMmE0NWM2YiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX29wdGlvbnMuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfb3B0aW9ucy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC04OCwxMCArODgsNiBAQAogICAgc2hhZG93IHJlZ2lzdGVycyAqLwogZXh0ZXJuIEJvb2wgIFZHXyhjbG9fdmdkYl9zaGFkb3dfcmVnaXN0ZXJzKTsKIAotLyogRW5xdWlyZSBhYm91dCB3aGV0aGVyIHRvIGF0dGFjaCB0byBhIGRlYnVnZ2VyIGF0IGVycm9ycz8gICBkZWZhdWx0OiBOTyAqLwotZXh0ZXJuIEJvb2wgIFZHXyhjbG9fZGJfYXR0YWNoKTsKLS8qIFRoZSBkZWJ1Z2dlciBjb21tYW5kPyAgZGVmYXVsdDogd2hhdGV2ZXIgZ2RiIC4vY29uZmlndXJlIGZvdW5kICovCi1leHRlcm4gY29uc3QgSENoYXIqIFZHXyhjbG9fZGJfY29tbWFuZCk7CiAvKiBHZW5lcmF0aW5nIGEgc3VwcHJlc3Npb24gZm9yIGVhY2ggZXJyb3I/ICAgZGVmYXVsdDogMCAoTk8pCiAgICBPdGhlciB2YWx1ZXM6IDEgKHllcywgYnV0IGFzayB1c2VyKSwgMiAoeWVzLCBkb24ndCBhc2sgdXNlcikgKi8KIGV4dGVybiBJbnQgICBWR18oY2xvX2dlbl9zdXBwcmVzc2lvbnMpOwpAQCAtMjIwLDYgKzIxNiw3IEBACiB0eXBlZGVmCiAgICBlbnVtIHsKICAgICAgIFNpbUhpbnRfbGF4X2lvY3RscywKKyAgICAgIFNpbUhpbnRfbGF4X2Rvb3JzLAogICAgICAgU2ltSGludF9mdXNlX2NvbXBhdGlibGUsCiAgICAgICBTaW1IaW50X2VuYWJsZV9vdXRlciwKICAgICAgIFNpbUhpbnRfbm9faW5uZXJfcHJlZml4LApkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX29zZXQuaCBiL2NvcmVncmluZC9wdWJfY29yZV9vc2V0LmgKaW5kZXggNTFhNjkyMS4uNjdhMWU5MSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX29zZXQuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfb3NldC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX3Bvb2xhbGxvYy5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3Bvb2xhbGxvYy5oCmluZGV4IGM4MTI3ZTYuLjc3NDRlOGMgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9wb29sYWxsb2MuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfcG9vbGFsbG9jLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgIEZsb3JpYW4gS3JvaG0gZmxvcmlhbkBlaWNoLWtyb2htLmRlCisgICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSAgRmxvcmlhbiBLcm9obSBmbG9yaWFuQGVpY2gta3JvaG0uZGUKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9yYW5nZW1hcC5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3JhbmdlbWFwLmgKaW5kZXggZDE4MWUxZi4uMzlkMjRhNCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX3JhbmdlbWFwLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3JhbmdlbWFwLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTQgTW96aWxsYSBGb3VuZGF0aW9uCisgICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBNb3ppbGxhIEZvdW5kYXRpb24KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9yZWRpci5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3JlZGlyLmgKaW5kZXggM2YyNTQxYi4uNWQ0MDQyOSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX3JlZGlyLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3JlZGlyLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9yZXBsYWNlbWFsbG9jLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfcmVwbGFjZW1hbGxvYy5oCmluZGV4IGJiY2JmOGQuLjRjYjNlNmYgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9yZXBsYWNlbWFsbG9jLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3JlcGxhY2VtYWxsb2MuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX3NicHJvZmlsZS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3NicHJvZmlsZS5oCmluZGV4IDY5ZjQ4NDcuLmMxNzM2NmQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9zYnByb2ZpbGUuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfc2Jwcm9maWxlLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgTW96aWxsYSBGb3VuZGF0aW9uCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBNb3ppbGxhIEZvdW5kYXRpb24KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9zY2hlZHVsZXIuaCBiL2NvcmVncmluZC9wdWJfY29yZV9zY2hlZHVsZXIuaAppbmRleCBhYTljZjA0Li4wODUxOTUwIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfc2NoZWR1bGVyLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3NjaGVkdWxlci5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfc2VxbWF0Y2guaCBiL2NvcmVncmluZC9wdWJfY29yZV9zZXFtYXRjaC5oCmluZGV4IDZhYzUyYzEuLjNlMzBlNGQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9zZXFtYXRjaC5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9zZXFtYXRjaC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfc2lnZnJhbWUuaCBiL2NvcmVncmluZC9wdWJfY29yZV9zaWdmcmFtZS5oCmluZGV4IGIxZjM4NWMuLjNlNmI2ODIgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9zaWdmcmFtZS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9zaWdmcmFtZS5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00MSw5ICs0MSwxNSBAQAogLy8gZnJhbWUgYXBwcm9wcmlhdGVseS4KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorLyogVGhpcyBpcyBhbiBhcmJpdHJhcnkgc2lfY29kZSB0aGF0IHdlIG9ubHkgdXNlIGludGVybmFsbHkgZm9yIFNJR1NFR1YuCisgICBJdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgU0lfS0VSTkVMIG9uIExpbnV4LCBidXQgdGhhdCdzIG5vdCByZWFsbHkKKyAgIG9mIGFueSBzaWduaWZpY2FuY2UuICovCisjZGVmaW5lIFZLSV9TRUdWX01BREVfVVBfR1BGIDB4ODAKKwogLyogQ3JlYXRlIGEgc2lnbmFsIGZyYW1lIGZvciB0aHJlYWQgJ3RpZCcuICovCiBleHRlcm4gCiB2b2lkIFZHXyhzaWdmcmFtZV9jcmVhdGUpICggVGhyZWFkSWQgdGlkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb29sIG9uX2FsdHN0YWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgc3BfdG9wX29mX2ZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZraV9zaWdpbmZvX3QgKnNpZ2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZraV91Y29udGV4dCAqdWMsCkBAIC01Nyw2ICs2MywxMSBAQAogZXh0ZXJuIAogdm9pZCBWR18oc2lnZnJhbWVfZGVzdHJveSkoIFRocmVhZElkIHRpZCwgQm9vbCBpc1JUICk7CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorZXh0ZXJuCit2b2lkIFZHXyhzaWdmcmFtZV9yZXR1cm4pKFRocmVhZElkIHRpZCwgY29uc3QgdmtpX3Vjb250ZXh0X3QgKnVjKTsKKyNlbmRpZgorCiAjZW5kaWYgICAvLyBfX1BVQl9DT1JFX1NJR0ZSQU1FX0gKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfc2lnbmFscy5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3NpZ25hbHMuaAppbmRleCAxYjFjMzM3Li44OGQ3ZDYyIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfc2lnbmFscy5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV9zaWduYWxzLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9zcGFyc2V3YS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3NwYXJzZXdhLmgKaW5kZXggNjhjMzJiMC4uYjFhMjEwYiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX3NwYXJzZXdhLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3NwYXJzZXdhLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9zdGFja3MuaCBiL2NvcmVncmluZC9wdWJfY29yZV9zdGFja3MuaAppbmRleCAzMWY1ZjcyLi4zZDgzZjRlIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfc3RhY2tzLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3N0YWNrcy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV9zdGFja3RyYWNlLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfc3RhY2t0cmFjZS5oCmluZGV4IDVlYzM3YWEuLmU4YWVlMDQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV9zdGFja3RyYWNlLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3N0YWNrdHJhY2UuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX3N5c2NhbGwuaCBiL2NvcmVncmluZC9wdWJfY29yZV9zeXNjYWxsLmgKaW5kZXggOGM3YmRiYS4uZDhmZTUwZSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX3N5c2NhbGwuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfc3lzY2FsbC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC04Nyw5ICs4NywxNiBAQAogZXh0ZXJuIFN5c1JlcyBWR18obWtfU3lzUmVzX21pcHM2NF9saW51eCkoIFVMb25nIHYwLCBVTG9uZyB2MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9uZyBhMyApOwogZXh0ZXJuIFN5c1JlcyBWR18obWtfU3lzUmVzX3RpbGVneF9saW51eCkoIExvbmcgdmFsICk7CitleHRlcm4gU3lzUmVzIFZHXyhta19TeXNSZXNfeDg2X3NvbGFyaXMpICggQm9vbCBpc0VyciwgVUludCB2YWwsIFVJbnQgdmFsMiApOworZXh0ZXJuIFN5c1JlcyBWR18obWtfU3lzUmVzX2FtZDY0X3NvbGFyaXMpICggQm9vbCBpc0VyciwgVUxvbmcgdmFsLCBVTG9uZyB2YWwyICk7CiBleHRlcm4gU3lzUmVzIFZHXyhta19TeXNSZXNfRXJyb3IpICAgICAgICggVVdvcmQgdmFsICk7CiBleHRlcm4gU3lzUmVzIFZHXyhta19TeXNSZXNfU3VjY2VzcykgICAgICggVVdvcmQgdmFsICk7CiAKKyNpZiBkZWZpbmVkKFZHUF9taXBzMzJfbGludXgpIHx8IGRlZmluZWQoVkdQX21pcHM2NF9saW51eCkKKy8qIE9uIExpbnV4L01JUFMsIFZHXyhta19TeXNSZXNfU3VjY2Vzcykgc2V0cyB0aGUgc2Vjb25kIHJlc3VsdCB3b3JkCisgICB0byB6ZXJvLiAgSGVyZSBpcyBhIHZlcnNpb24gdGhhdCBhbGxvd3Mgc2V0dGluZyBib3RoIHZhbHVlcy4gKi8KK2V4dGVybiBTeXNSZXMgVkdfKG1rX1N5c1Jlc19TdWNjZXNzRXgpICAgKCBVV29yZCB2YWwsIFVXb3JkIHZhbEV4ICk7CisjZW5kaWYKIAogCiAvKiBSZXR1cm4gYSBzdHJpbmcgd2hpY2ggZ2l2ZXMgdGhlIG5hbWUgb2YgYW4gZXJyb3IgdmFsdWUuICBOb3RlLApkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX3N5c3dyYXAuaCBiL2NvcmVncmluZC9wdWJfY29yZV9zeXN3cmFwLmgKaW5kZXggNDlkYmMxZS4uMGI1YjU0YiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX3N5c3dyYXAuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfc3lzd3JhcC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJwdWJfY29yZV9iYXNpY3MuaCIgICAgICAgIC8vIFZHXyBtYWNybwogI2luY2x1ZGUgInB1Yl9jb3JlX3RocmVhZHN0YXRlLmgiICAgLy8gVGhyZWFkQXJjaFN0YXRlCisjaW5jbHVkZSAicHViX2NvcmVfdG9vbGlmYWNlLmgiICAgICAvLyBDb3JlUGFydAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQVVJQT1NFOiBUaGlzIG1vZHVsZSBjb250YWlucyBhbGwgdGhlIHN5c2NhbGwganVuazogIG1vc3RseSBQUkUvUE9TVApAQCAtNTgsOSArNTksMTUgQEAKICAgICAgICAgICAgICAgIFRocmVhZElkIHRpZCwKICAgICAgICAgICAgICAgIEFkZHIgICAgIGlwLCAKICAgICAgICAgICAgICAgIFN5c1JlcyAgIHN5c3JldCwKLSAgICAgICAgICAgICAgIEJvb2wgICAgIHJlc3RhcnQKKyAgICAgICAgICAgICAgIEJvb2wgICAgIHJlc3RhcnQsCisgICAgICAgICAgICAgICBzdHJ1Y3QgdmtpX3Vjb250ZXh0ICp1YwogICAgICAgICAgICAgKTsKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvLyBEZXRlcm1pbmUgaWYgaW4gYSBibG9ja2luZyBzeXNjYWxsLgorZXh0ZXJuIEJvb2wgVkdfKGlzX2lwX2luX2Jsb2NraW5nX3N5c2NhbGwpKFRocmVhZElkIHRpZCwgQWRkciBpcCk7CisjZW5kaWYKKwogLy8gV2FpdCB1bnRpbCBhbGwgb3RoZXIgdGhyZWFkcyBhcmUgZGVhZAogZXh0ZXJuIHZvaWQgVkdfKHJlYXBfdGhyZWFkcykoVGhyZWFkSWQgc2VsZik7CiAKQEAgLTgwLDYgKzg3LDE3IEBACiBleHRlcm4gdm9pZCAoKiBWR18oYWRkcmVzc19vZl9tX21haW5fc2h1dGRvd25fYWN0aW9uc19OT1JFVFVSTikgKQogICAgICAgICAgICAgKFRocmVhZElkLFZnU2NoZWRSZXR1cm5Db2RlKTsKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitleHRlcm4gdm9pZCBWR18oc2F2ZV9jb250ZXh0KShUaHJlYWRJZCB0aWQsIHZraV91Y29udGV4dF90ICp1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvcmVQYXJ0IHBhcnQpOworZXh0ZXJuIHZvaWQgVkdfKHJlc3RvcmVfY29udGV4dCkoVGhyZWFkSWQgdGlkLCB2a2lfdWNvbnRleHRfdCAqdWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JlUGFydCBwYXJ0LCBCb29sIGVzcF9pc190aHJwdHIpOworZXh0ZXJuIHZvaWQgVkdfKHN5c3dyYXBfaW5pdCkodm9pZCk7CitleHRlcm4gdm9pZCBWR18oY2hhbmdlX21hcHBpbmdfb3duZXJzaGlwKShBZGRyIGFkZHIsIEJvb2wgb25jZV9vbmx5KTsKK2V4dGVybiBCb29sIFZHXyhzZXR1cF9jbGllbnRfZGF0YXNlZykodm9pZCk7CitleHRlcm4gdm9pZCBWR18odHJhY2tfY2xpZW50X2RhdGFzZWcpKFRocmVhZElkIHRpZCk7CisjZW5kaWYKKwogI2VuZGlmICAgLy8gX19QVUJfQ09SRV9TWVNXUkFQX0gKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfdGhyZWFkc3RhdGUuaCBiL2NvcmVncmluZC9wdWJfY29yZV90aHJlYWRzdGF0ZS5oCmluZGV4IDIzMGM0MWQuLmQyYWEyNTEgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV90aHJlYWRzdGF0ZS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV90aHJlYWRzdGF0ZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yNTEsNiArMjUxLDkgQEAKICAgICAgICAgICAgIGludCB3aGljaF9wb3J0OwogICAgICAgICAgfSB0YXNrX2dldF9zcGVjaWFsX3BvcnQ7CiAgICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgaW50IHdoaWNoOworICAgICAgICAgfSBob3N0X2dldF9zcGVjaWFsX3BvcnQ7CisgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgY2hhciAqc2VydmljZV9uYW1lOwogICAgICAgICAgfSBib290c3RyYXBfbG9va191cDsKICAgICAgICAgIHN0cnVjdCB7CkBAIC0yNjMsNiArMjY2LDUzIEBACiAgICAgICAgICAgICBjaGFyICpwYXRoOwogICAgICAgICAgfSBpb19yZWdpc3RyeV9lbnRyeV9mcm9tX3BhdGg7CiAgICAgICB9IG1hY2hfYXJnczsKKworIyAgICAgZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIyAgICAgaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICAgICAvKiBBIHBvaW50ZXIgdG8gdGhyZWFkIHJlbGF0ZWQgZGF0YS4gVGhlIHBvaW50ZXIgaXMgdXNlZCB0byBzZXQgdXAKKyAgICAgICAgIGEgc2VnbWVudCBkZXNjcmlwdG9yIChHRFRbVktJX0dEVF9MV1BHU10pIHdoZW4gdGhlIHRocmVhZCBpcyBhYm91dCB0bworICAgICAgICAgYmUgcnVuLiBBIGNsaWVudCBwcm9ncmFtIHNldHMgdGhpcyB2YWx1ZSBleHBsaWNpdGx5IGJ5IGNhbGxpbmcgdGhlCisgICAgICAgICBsd3BfcHJpdmF0ZSBzeXNjYWxsIG9yIGl0IGNhbiBiZSBwYXNzZWQgYXMgYSBwYXJ0IG9mIHVjb250ZXh0X3Qgd2hlbgorICAgICAgICAgYSBuZXcgdGhyZWFkIGlzIGNyZWF0ZWQgKHRoZSBsd3BfY3JlYXRlIHN5c2NhbGwpLiAqLworICAgICAgQWRkciB0aHJwdHI7CisjICAgICBlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICAgICAvKiBHRFQgaXMgbm90IGZ1bGx5IHNpbXVsYXRlZCBieSBBTUQ2NC9Tb2xhcmlzLiBUaGUgJWZzIHNlZ21lbnQKKyAgICAgICAgIHJlZ2lzdGVyIGlzIGFzc3VtZWQgdG8gYmUgYWx3YXlzIHplcm8gYW5kIHZleC0+Z3Vlc3RfRlNfQ09OU1QgaG9sZHMKKyAgICAgICAgIHRoZSA2NC1iaXQgb2Zmc2V0IGFzc29jaWF0ZWQgd2l0aCBhICVmcyB2YWx1ZSBvZiB6ZXJvLiAqLworIyAgICAgZW5kaWYKKworICAgICAgLyogU3RhY2sgaWQgKHZhbHVlIChVV29yZCkoLTEpIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm8gc3RhY2spLiBUaGlzCisgICAgICAgICB0cmFja3MgYSBzdGFjayB0aGF0IGlzIHNldCBpbiByZXN0b3JlX3N0YWNrKCkuICovCisgICAgICBVV29yZCBzdGtfaWQ7CisKKyAgICAgIC8qIFNpbXVsYXRpb24gb2YgdGhlIGtlcm5lbCdzIGx3cC0+bHdwX3VzdGFjay4gU2V0IGluIHRoZSBQUkUgd3JhcHBlcgorICAgICAgICAgb2YgdGhlIGdldHNldGNvbnRleHQgc3lzY2FsbCwgZm9yIFNFVFVTVEFDSy4gVXNlZCBpbgorICAgICAgICAgVkdfKHNhdmVfY29udGV4dCkoKSwgVkdfKHJlc3RvcmVfY29udGV4dCkoKSBhbmQKKyAgICAgICAgIFZHXyhzaWdmcmFtZV9jcmVhdGUpKCkuICovCisgICAgICB2a2lfc3RhY2tfdCAqdXN0YWNrOworCisgICAgICAvKiBGbGFnIHNheWluZyBpZiB0aGUgY3VycmVudCBjYWxsIGlzIGluIHRoZSBkb29yX3JldHVybigpIHZhcmlhbnQgb2YKKyAgICAgICAgIHRoZSBkb29yKCkgc3lzY2FsbC4gKi8KKyAgICAgIEJvb2wgaW5fZG9vcl9yZXR1cm47CisKKyAgICAgIC8qIEFkZHJlc3Mgb2YgdGhlIGRvb3Igc2VydmVyIHByb2NlZHVyZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50CisgICAgICAgICB0aHJlYWQuIFVzZWQgdG8ga2VlcCB0cmFjayB3aGljaCBkb29yIGNhbGwgdGhlIGN1cnJlbnQgdGhyZWFkCisgICAgICAgICBzZXJ2aWNlcy4gVmFsaWQgb25seSBiZXR3ZWVuIHN1YnNlcXVlbnQgZG9vcl9yZXR1cm4oKSBpbnZvY2F0aW9ucy4gKi8KKyAgICAgIEFkZHIgZG9vcl9yZXR1cm5fcHJvY2VkdXJlOworCisgICAgICAvKiBTaW11bGF0aW9uIG9mIHRoZSBrZXJuZWwncyBsd3AtPmx3cF9vbGRjb250ZXh0LiBTZXQgaW4KKyAgICAgICAgIFZHXyhyZXN0b3JlX2NvbnRleHQpKCkgYW5kIFZHXyhzaWdmcmFtZV9jcmVhdGUpKCkuIFVzZWQgaW4KKyAgICAgICAgIFZHXyhzYXZlX2NvbnRleHQpKCkuICovCisgICAgICB2a2lfdWNvbnRleHRfdCAqb2xkY29udGV4dDsKKworICAgICAgLyogQWRkcmVzcyBvZiBzY19zaGFyZWRfdCBzdHJ1Y3Qgc2hhcmVkIGJldHdlZW4ga2VybmVsIGFuZCBsaWJjLgorICAgICAgICAgU2V0IGluIFBPU1Qoc3lzX3NjaGVkY3RsKS4gRXZlcnkgdGhyZWFkIGdldHMgaXRzIG93biBhZGRyZXNzCisgICAgICAgICBidXQgdHlwaWNhbGx5IG1hbnkgYXJlIHNxdWVlemVkIG9uIGEgc2luZ2xlZCBtYXBwZWQgcGFnZS4KKyAgICAgICAgIENsZWFuZWQgaW4gdGhlIGNoaWxkIGF0Zm9yayBoYW5kbGVyLiAqLworICAgICAgQWRkciBzY2hlZGN0bF9kYXRhOworCisgICAgICAvKiBUcnVlIGlmIHRoaXMgaXMgZGFlbW9uIHRocmVhZC4gKi8KKyAgICAgIEJvb2wgZGFlbW9uX3RocmVhZDsKICMgICAgIGVuZGlmCiAKICAgIH0KZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV90b29saWZhY2UuaCBiL2NvcmVncmluZC9wdWJfY29yZV90b29saWZhY2UuaAppbmRleCA2OTY4YTE4Li40MWRhOTg2IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfdG9vbGlmYWNlLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3Rvb2xpZmFjZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMzMsNiArMjMzLDkgQEAKICAgIHZvaWQgKCp0cmFja19wb3N0X3JlZ193cml0ZV9jbGllbnRjYWxsX3JldHVybikoVGhyZWFkSWQsIFB0cmRpZmZULCBTaXplVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcik7CiAKKyAgIHZvaWQgKCp0cmFja19jb3B5X21lbV90b19yZWcpKENvcmVQYXJ0LCBUaHJlYWRJZCwgQWRkciwgUHRyZGlmZlQsIFNpemVUKTsKKyAgIHZvaWQgKCp0cmFja19jb3B5X3JlZ190b19tZW0pKENvcmVQYXJ0LCBUaHJlYWRJZCwgUHRyZGlmZlQsIEFkZHIsIFNpemVUKTsKKwogICAgdm9pZCAoKnRyYWNrX3N0YXJ0X2NsaWVudF9jb2RlKShUaHJlYWRJZCwgVUxvbmcpOwogICAgdm9pZCAoKnRyYWNrX3N0b3BfY2xpZW50X2NvZGUpIChUaHJlYWRJZCwgVUxvbmcpOwogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfdHJhbXBvbGluZS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3RyYW1wb2xpbmUuaAppbmRleCA3NjMwNzI5Li5lZGE1ZWM2IDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfdHJhbXBvbGluZS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV90cmFtcG9saW5lLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE2MSw2ICsxNjEsMjAgQEAKIGV4dGVybiBVSW50ICBWR18obWlwczY0X2xpbnV4X1JFRElSX0ZPUl9zdHJsZW4pKCB2b2lkKiApOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKK2V4dGVybiBTaXplVCBWR18oeDg2X3NvbGFyaXNfUkVESVJfRk9SX3N0cmNtcCkoY29uc3QgSENoYXIgKiwgY29uc3QgSENoYXIgKik7CitleHRlcm4gU2l6ZVQgVkdfKHg4Nl9zb2xhcmlzX1JFRElSX0ZPUl9zdHJsZW4pKGNvbnN0IEhDaGFyICopOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorZXh0ZXJuIEhDaGFyICpWR18oYW1kNjRfc29sYXJpc19SRURJUl9GT1Jfc3RyY3B5KShIQ2hhciAqLCBjb25zdCBIQ2hhciAqKTsKK2V4dGVybiBIQ2hhciAqVkdfKGFtZDY0X3NvbGFyaXNfUkVESVJfRk9SX3N0cm5jcHkpKEhDaGFyICosIGNvbnN0IEhDaGFyICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemVUKTsKK2V4dGVybiBJbnQgVkdfKGFtZDY0X3NvbGFyaXNfUkVESVJfRk9SX3N0cmNtcCkoY29uc3QgSENoYXIgKiwgY29uc3QgSENoYXIgKik7CitleHRlcm4gSENoYXIgKlZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJjYXQpKEhDaGFyICosIGNvbnN0IEhDaGFyICopOworZXh0ZXJuIFNpemVUIFZHXyhhbWQ2NF9zb2xhcmlzX1JFRElSX0ZPUl9zdHJsZW4pKGNvbnN0IEhDaGFyICopOworI2VuZGlmCisKICNlbmRpZiAgIC8vIF9fUFVCX0NPUkVfVFJBTVBPTElORV9ICiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX3RyYW5zbGF0ZS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3RyYW5zbGF0ZS5oCmluZGV4IDQ4NjY2MjkuLjRjMGIwNjggMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV90cmFuc2xhdGUuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfdHJhbnNsYXRlLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV90cmFuc3RhYi5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3RyYW5zdGFiLmgKaW5kZXggMjkxZjlkZi4uZTlmM2JjMiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX3RyYW5zdGFiLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3RyYW5zdGFiLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV90cmFuc3RhYl9hc20uaCBiL2NvcmVncmluZC9wdWJfY29yZV90cmFuc3RhYl9hc20uaAppbmRleCAyMjRhOWNjLi5hNTRiMzkzIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfdHJhbnN0YWJfYXNtLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3RyYW5zdGFiX2FzbS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfdW1lLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfdW1lLmgKaW5kZXggOTM3Nzc4Zi4uZDllNDU5YyAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX3VtZS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV91bWUuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02NCw2ICs2NCwxMiBAQAogICAgICAgSENoYXIqIGV4ZWN1dGFibGVfcGF0aDsgLy8gT1VUOiBwYXRoIHBhc3NlZCB0byBleGVjdmUoKQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgICAgQWRkciAgaW5pdF90aHJwdHI7ICAgICAgIC8vIE9VVDogYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHVzZXIgcGVyLXRocmVhZCBsb2NhdGlvbgorICAgICAgQm9vbCAgcmVhbF9waGRyX3ByZXNlbnQ7IC8vIE9VVDogUFRfUEhEUiBmb3VuZCwgaW5jbHVkZSBwaGRyIGluIGF1eHYKKyAgICAgIEJvb2wgIGxkc29leGVjOyAgICAgICAgICAvLyBPVVQ6IHRoZSBwcm9ncmFtIGlzIHRoZSBydW50aW1lIGxpbmtlciBpdHNlbGYKKyNlbmRpZgorCiAgICAgICBBZGRyIGVudHJ5OyAgICAgICAgLy8gT1VUOiBlbnRyeXBvaW50IGluIG1haW4gZXhlY3V0YWJsZQogICAgICAgQWRkciBpbml0X2lwOyAgICAgIC8vIE9VVDogYWRkcmVzcyBvZiBmaXJzdCBpbnN0cnVjdGlvbiB0byBleGVjdXRlCiAgICAgICBBZGRyIGJya2Jhc2U7ICAgICAgLy8gT1VUOiBiYXNlIGFkZHJlc3Mgb2YgYnJrIHNlZ21lbnQKZGlmZiAtLWdpdCBhL2NvcmVncmluZC9wdWJfY29yZV92a2kuaCBiL2NvcmVncmluZC9wdWJfY29yZV92a2kuaAppbmRleCAwYjEwZWE0Li44ZTg4NjAwIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfdmtpLmgKKysrIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3ZraS5oCkBAIC04LDExICs4LDExIEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCi0gICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCi0gICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX3ZraXNjbnVtcy5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3ZraXNjbnVtcy5oCmluZGV4IDRjZWI2MjUuLmRjZGZjODkgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV92a2lzY251bXMuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfdmtpc2NudW1zLmgKQEAgLTcsMTEgKzcsMTEgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfdmtpc2NudW1zX2FzbS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3ZraXNjbnVtc19hc20uaAppbmRleCAyODRjMDUwLi5iNDcyZWRiIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvcHViX2NvcmVfdmtpc2NudW1zX2FzbS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV92a2lzY251bXNfYXNtLmgKQEAgLTcsMTEgKzcsMTEgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvcHViX2NvcmVfd29yZGZtLmggYi9jb3JlZ3JpbmQvcHViX2NvcmVfd29yZGZtLmgKaW5kZXggYzcyMDIxNi4uMTFkYzgzMCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3B1Yl9jb3JlX3dvcmRmbS5oCisrKyBiL2NvcmVncmluZC9wdWJfY29yZV93b3JkZm0uaApAQCAtOSwxMyArOSwxMyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwNy0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIGNvZGUgaXMgYmFzZWQgb24gcHJldmlvdXMgd29yayBieSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAoY29yZWdyaW5kL21fb3NldC5jKSB3aGljaCBpcwogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICB3aGljaCBpbiB0dXJuIHdhcyBkZXJpdmVkIHBhcnRpYWxseSBmcm9tOgpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3B1Yl9jb3JlX3hhcnJheS5oIGIvY29yZWdyaW5kL3B1Yl9jb3JlX3hhcnJheS5oCmluZGV4IGE3ZmFiOTcuLmJiZTVmOTQgMTAwNjQ0Ci0tLSBhL2NvcmVncmluZC9wdWJfY29yZV94YXJyYXkuaAorKysgYi9jb3JlZ3JpbmQvcHViX2NvcmVfeGFycmF5LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2NvcmVncmluZC92Z19wcmVsb2FkZWQuYyBiL2NvcmVncmluZC92Z19wcmVsb2FkZWQuYwppbmRleCBkZWMyYWM1Li44NWNkNDMyIDEwMDY0NAotLS0gYS9jb3JlZ3JpbmQvdmdfcHJlbG9hZGVkLmMKKysrIGIvY29yZWdyaW5kL3ZnX3ByZWxvYWRlZC5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE4OSw4ICsxODksMTY3IEBACiAgICAgLy8gYnV0IGRvbid0IGNhcmUgaWYgaXQncyBpbml0aWFsaXplZAogfQogCi0jZWxzZQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKIAorLyogRGVjbGFyZSB0aGUgZXJybm8gYW5kIGVudmlyb24gc3ltYm9scyB3ZWFrbHkgaW4gY2FzZSB0aGUgY2xpZW50IGlzIG5vdAorICAgbGlua2VkIGFnYWluc3QgbGliYy4gSW4gc3VjaCBhIGNhc2UgaXQgYWxzbyBjYW5ub3QgcnVuIHJlcGxhY2VtZW50CisgICBmdW5jdGlvbnMgZm9yIHNldF9lcnJvcigpIGFuZCBzcGF3bnZlZygpIHdoZXJlIHRoZXNlIHR3byB2YXJpYWJsZXMgYXJlCisgICBuZWVkZWQgc28gdGhpcyBpcyBvay4gKi8KK19fYXR0cmlidXRlX18oKHdlYWspKSBleHRlcm4gaW50IGVycm5vOworX19hdHRyaWJ1dGVfXygod2VhaykpIGV4dGVybiBjaGFyICoqZW52aXJvbjsKKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3Bhd24uaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPHN5cy9zaWduYWwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworLyogUmVwbGFjZSBmdW5jdGlvbiBibG9ja19hbGxfc2lnbmFscygpIGZyb20gbGliYy4gV2hlbiB0aGUgY2xpZW50IHByb2dyYW0gaXMKKyAgIG5vdCBydW5uaW5nIHVuZGVyIHZhbGdyaW5kLCB0aGUgZnVuY3Rpb24gYmxvY2tzIGFsbCBzaWduYWxzIGJ5IHNldHRpbmcKKyAgIHNjX3NpZ2Jsb2NrIGZsYWcgaW4gdGhlIHNjaGVkY3RsIGNvbnRyb2wgYmxvY2suIFdoZW4gcnVuIHVuZGVyIFZhbGdyaW5kCisgICB0aGlzIHdvdWxkIGJ5cGFzcyBWYWxncmluZCdzIHN5c2NhbGwgYW5kIHNpZ25hbCBtYWNoaW5lcnkuCisgICBWYWxncmluZCdzIHNpZ25hbCBtYWNoaW5lcnkgbmVlZHMgdG8gcmV0YWluIGNvbnRyb2wgb3ZlciB3aGljaCBzaWduYWxzIGFyZQorICAgYmxvY2tlZCBhbmQgd2hpY2ggbm90IChzZWUgbV9zaWduYWxzLmMgYW5kIG1fc2NoZWR1bGVyL3NjaGVkdWxlci5jIGZvciBtb3JlCisgICBpbmZvcm1hdGlvbiAtIHR5cGljYWxseSBzeW5jaHJvbm91cyBzaWduYWxzIHNob3VsZCBub3QgYmUgYmxvY2tlZCkuCisgICBUaGVyZWZvcmUgdGhpcyBmdW5jdGlvbiByZXBsYWNlbWVudCBlbXVsYXRlcyBsd3Bfc2lnbWFzayBzeXNjYWxsLgorKi8KK3ZvaWQgVkdfUkVQTEFDRV9GVU5DVElPTl9aVShWR19aX0xJQkNfU09OQU1FLCBibG9ja19hbGxfc2lnbmFscykoLyp1bHdwX3QqLyB2b2lkICpzZWxmKTsKK3ZvaWQgVkdfUkVQTEFDRV9GVU5DVElPTl9aVShWR19aX0xJQkNfU09OQU1FLCBibG9ja19hbGxfc2lnbmFscykoLyp1bHdwX3QqLyB2b2lkICpzZWxmKQoreworICAgc3lzY2FsbChTWVNfbHdwX3NpZ21hc2ssIFNJR19TRVRNQVNLLCB+MFUsIH4wVSwgfjBVLCB+MFUpOworfQorCisvKiBSZXBsYWNlIGZ1bmN0aW9ucyBnZXRfZXJyb3IoKSBhbmQgc2V0X2Vycm9yKCkgaW4gbGliYy4gVGhlc2UgZnVuY3Rpb25zIGFyZQorICAgaW50ZXJuYWwgdG8gdGhlIGxpYnJhcnkgYW5kIGFyZSB1c2VkIHRvIHdvcmsgd2l0aCBhbiBlcnJvciB2YWx1ZSByZXR1cm5lZAorICAgYnkgcG9zaXhfc3Bhd24oKSAod2hlbiBpdCBpcyBpbXBsZW1lbnRlZCB1c2luZyB2Zm9yaygpKS4gQSBjaGlsZCBjYWxscworICAgc2V0X2Vycm9yKCkgdG8gc2V0IGFuIGVycm9yIGNvZGUgYW5kIHRoZSBwYXJlbnQgdGhlbiBjYWxscyBnZXRfZXJyb3IoKSB0bworICAgcmVhZCBpdC4gQWNjZXNzb3IgZnVuY3Rpb25zIGFyZSB1c2VkIHNvIHRoZXNlIHRyaXZpYWwgc3RvcmUrbG9hZCBvcGVyYXRpb25zCisgICBhcmUgbm90IGNoYW5nZWQgYnkgdGhlIGNvbXBpbGVyIGluIGFueSB3YXkuCisKKyAgIFNpbmNlIFZhbGdyaW5kIHRyYW5zbGF0ZXMgdmZvcmsoKSB0byBhIG5vcm1hbCBmb3JrKCksIGNhbGxpbmcgc2V0X2Vycm9yKCkKKyAgIGJ5IHRoZSBjaGlsZCB3b3VsZCBoYXZlIG5vIGVmZmVjdCBvbiB0aGUgZXJyb3IgdmFsdWUgaW4gdGhlIHBhcmVudCBzbworICAgc29tZXRoaW5nIG11c3QgYmUgZG9uZSB0byBmaXggdGhpcyBwcm9ibGVtLgorCisgICBBIHBpcGUgaXMgY3JlYXRlZCBiZXR3ZWVuIGEgY2hpbGQgYW5kIGl0cyBwYXJlbnQgaW4gdGhlIGZvcmtzeXMgcHJlLXdyYXBwZXIKKyAgIHdoZW4gYSB2Zm9yaygpIGlzIGVuY291bnRlcmVkLiBUaGUgY2hpbGQncyBlbmQgb2YgdGhlIHBpcGUgaXMgY2xvc2VkIHdoZW4KKyAgIHRoZSBjaGlsZCBleGl0cyBvciBleGVjcyAoYmVjYXVzZSBjbG9zZS1vbi1leGVjIGlzIHNldCBvbiB0aGUgZmlsZQorICAgZGVzY3JpcHRvcikuIFZhbGdyaW5kICh0aGUgcGFyZW50KSB3YWl0cyBvbiB0aGUgY2hpbGQncyBlbmQgb2YgdGhlIHBpcGUgdG8KKyAgIGJlIGNsb3NlZCB3aGljaCBwcmVzZXJ2ZXMgdGhlIHZmb3JrKCkgYmVoYXZpb3VyIHRoYXQgdGhlIHBhcmVudCBwcm9jZXNzIGlzCisgICBzdXNwZW5kZWQgd2hpbGUgdGhlIGNoaWxkIGlzIHVzaW5nIGl0cyByZXNvdXJjZXMuCisKKyAgIFRoZSBwaXBlIGlzIHRoZW4gdXNlZCB0byBzZW5kIGFuIGV2ZW50dWFsIGVycm9yIGNvZGUgc2V0IGJ5IHRoZSBjaGlsZCBpbgorICAgcG9zaXhfc3Bhd24oKSB0byB0aGUgcGFyZW50LiBJZiB0aGVyZSBpcyBhbnkgZXJyb3IgVmFsZ3JpbmQgcmV0dXJucyBpdCBhcworICAgYW4gZXJyb3IgZnJvbSB0aGUgdmZvcmsoKSBzeXNjYWxsLiBUaGlzIG1lYW5zIHRoZSBzeXNjYWxsIGNhbiByZXR1cm4gZXJyb3JzCisgICB0aGF0IGl0IHdvdWxkIG5vcm1hbGx5IG5ldmVyIHJldHVybiBidXQgdGhpcyBpcyBub3QgYSBwcm9ibGVtIGluIHByYWN0aWNlCisgICBiZWNhdXNlIGFueSBlcnJvciBpcyBkaXJlY3RseSBwcm9wYWdhdGVkIGFzIGEgcmV0dXJuIGNvZGUgZnJvbQorICAgcG9zaXhfc3Bhd24oKS4KKworICAgQWRkcmVzcyBvZiB2Z192Zm9ya19maWxkZXMgaXMgZm91bmQgYnkgVmFsZ3JpbmQgd2hlbiBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IKKyAgIHZncHJlbG9hZF9jb3JlLnNvIGlzIGJlaW5nIHByb2Nlc3NlZC4gQSB2YWx1ZSBvZiB0aGlzIHZhcmlhYmxlIGlzIHNldCBpbgorICAgdGhlIGZvcmtzeXMgcHJlLXdyYXBwZXIgYmVmb3JlIGEgZm9yaygpIGNhbGwgaXMgbWFkZSBhbmQgc2V0IGJhY2sgdG8gLTEKKyAgIGJlZm9yZSByZXR1cm5pbmcgZnJvbSB0aGUgd3JhcHBlciBieSB0aGUgcGFyZW50LgorCisgICBOZXdlciBTb2xhcmlzIHZlcnNpb25zIGludHJvZHVjZSB0aGUgc3Bhd24gc3lzY2FsbCBhbmQgcG9zaXhfc3Bhd24oKSBpcworICAgaW1wbGVtZW50ZWQgdXNpbmcgaXQuIFRoZSByZWRpcmVjdCBpcyBub3QgbmVlZGVkIGZvciB0aGVzZSB2ZXJzaW9ucy4KKyovCitpbnQgdmdfdmZvcmtfZmlsZGVzID0gLTE7CisKK2ludCBWR19SRVBMQUNFX0ZVTkNUSU9OX1pVKFZHX1pfTElCQ19TT05BTUUsIGdldF9lcnJvcikoaW50ICplcnJwKTsKK2ludCBWR19SRVBMQUNFX0ZVTkNUSU9OX1pVKFZHX1pfTElCQ19TT05BTUUsIGdldF9lcnJvcikoaW50ICplcnJwKQoreworICAgLyogQWx3YXlzIHJldHVybiAwIHdoZW4gdGhlIHBhcmVudCB0cmllcyB0byBjYWxsIGdldF9lcnJvcigpLiBBbnkgZXJyb3IKKyAgICAgIGZyb20gdGhlIGNoaWxkIGlzIHJldHVybmVkIGRpcmVjdGx5IGFzIGFuIGVycm9yIGZyb20gdGhlIHZmb3JrIGNoaWxkLgorICAgICAgVmFsdWUgcG9pbnRlZCBieSBlcnJwIGlzIGluaXRpYWxpemVkIG9ubHkgYnkgdGhlIGNoaWxkIHNvIG5vdAorICAgICAgcmVkaXJlY3RpbmcgdGhpcyBmdW5jdGlvbiB3b3VsZCBtZWFuIHRoYXQgdGhlIHBhcmVudCBnZXRzIGFuCisgICAgICB1bmluaXRpYWxpemVkL2dhcmJhZ2UgdmFsdWUgd2hlbiBpdCBjYWxscyB0aGlzIGZ1bmN0aW9uLiAqLworICAgcmV0dXJuIDA7Cit9CisKK2ludCBWR19SRVBMQUNFX0ZVTkNUSU9OX1pVKFZHX1pfTElCQ19TT05BTUUsIHNldF9lcnJvcikoaW50ICplcnJwLCBpbnQgZXJyKTsKK2ludCBWR19SRVBMQUNFX0ZVTkNUSU9OX1pVKFZHX1pfTElCQ19TT05BTUUsIHNldF9lcnJvcikoaW50ICplcnJwLCBpbnQgZXJyKQoreworICAgKmVycnAgPSBlcnI7CisKKyAgIC8qIExpYmMgc2hvdWxkIGFsd2F5cyBjYWxsIHNldF9lcnJvcigpIG9ubHkgYWZ0ZXIgZG9pbmcgYSB2Zm9yaygpIHN5c2NhbGwKKyAgICAgIGluIHBvc2l4X3NwYXduKCkuIFRoZSBmb3Jrc3lzIHByZS13cmFwcGVyIHNhdmVzIGEgZGVzY3JpcHRvciBvZiB0aGUKKyAgICAgIGNoaWxkJ3MgZW5kIG9mIHRoZSBwaXBlIGluIHZnX3Zmb3JrX2ZpbGRlcyBzbyBpdCBpcyBhbiBlcnJvciBpZiBpdCBpcworICAgICAgbm90IGEgdmFsaWQgZmlsZSBkZXNjcmlwdG9yIGF0IHRoaXMgcG9pbnQuICovCisgICBhc3NlcnQodmdfdmZvcmtfZmlsZGVzID49IDApOworICAgLyogQ3VycmVudCBwcm90b2NvbCBiZXR3ZWVuIHRoaXMgZnVuY3Rpb24gYW5kIHRoZSBmb3Jrc3lzIHByZS13cmFwcGVyCisgICAgICBhbGxvd3MgdG8gc2VuZCBvbmx5IGVycm9ycyBpbiByYW5nZSBbMCwgMjU1XSAob25lIGJ5dGUgdmFsdWVzKS4gKi8KKyAgIGFzc2VydChlcnIgPj0gMCAmJiBlcnIgPD0gMHhmZik7CisKKyAgIGlmIChlcnIgIT0gMCkgeworICAgICAgdW5zaWduZWQgY2hhciB3ID0gKHVuc2lnbmVkIGNoYXIpKGVyciAmIDB4ZmYpOworICAgICAgc3NpemVfdCByZXM7CisgICAgICBkbyB7CisgICAgICAgICByZXMgPSB3cml0ZSh2Z192Zm9ya19maWxkZXMsICZ3LCAxKTsKKyAgICAgICAgIGFzc2VydChyZXMgPT0gMSB8fCAoZXJybm8gPT0gRUlOVFIgfHwgZXJybm8gPT0gRVJFU1RBUlQpKTsKKyAgICAgIH0gd2hpbGUgKHJlcyAhPSAxKTsKKyAgIH0KKworICAgcmV0dXJuIGVycjsKK30KKworLyogUmVwbGFjZSBzcGF3bnZlZygpIGluIGxpYmFzdC5zby4xLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkga3NoIHRvIHNwYXduCisgICBuZXcgcHJvY2Vzc2VzLiBUaGUgbGlicmFyeSBoYXMgYSBidWlsZCB0aW1lIG9wdGlvbiB0byBzZWxlY3QgYmV0d2VlbgorICAgc2V2ZXJhbCB2YXJpYW50cyBvZiB0aGlzIGZ1bmN0aW9uIGJhc2VkIG9uIGJlaGF2aW91ciBvZiB2Zm9yaygpIGFuZAorICAgcG9zaXhfc3Bhd24oKSBvbiB0aGUgc3lzdGVtIGZvciB3aGljaCB0aGUgbGlicmFyeSBpcyBiZWluZyBjb21waWxlZC4KKyAgIFVuZm9ydHVuYXRlbHksIFNvbGFyaXMgYW5kIGlsbHVtb3MgdXNlIHRoZSByZWFsIHZmb3JrKCkgdmFyaWFudCB3aGljaCBkb2VzCisgICBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCB0aGUgdmZvcmsoKSAtPiBmb3JrKCkgdHJhbnNsYXRpb24gZG9uZSBieSBWYWxncmluZAorICAgKHNlZSB0aGUgZm9ya3N5cyBwcmUtd3JhcHBlciBmb3IgZGV0YWlscykuIFRoZXJlZm9yZSB0aGUgZnVuY3Rpb24gaXMKKyAgIHJlcGxhY2VkIGhlcmUgd2l0aCBhbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgcG9zaXhfc3Bhd24oKS4gVGhpcworICAgcmVwbGFjZW1lbnQgY2FuIGJlIHJlbW92ZWQgd2hlbiBhIGNvbmZpZ3VyYXRpb24gb2YgbGliYXN0IGluIFNvbGFyaXMgYW5kCisgICBpbGx1bW9zIGlzIGNoYW5nZWQgdG8gdXNlIHRoZSBwb3NpeF9zcGF3bigpIGltcGxlbWVudGF0aW9uLgorKi8KK3BpZF90IFZHX1JFUExBQ0VfRlVOQ1RJT05fWlUobGliYXN0WmRzb1pkMSwgc3Bhd252ZWcpKGNvbnN0IGNoYXIgKmNvbW1hbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqYXJndiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKiplbnZ2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlkX3QgcGdpZCk7CitwaWRfdCBWR19SRVBMQUNFX0ZVTkNUSU9OX1pVKGxpYmFzdFpkc29aZDEsIHNwYXdudmVnKShjb25zdCBjaGFyICpjb21tYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKmFyZ3YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqZW52cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpZF90IHBnaWQpCit7CisgICBpbnQgZXJyID0gMDsKKyAgIHBpZF90IHBpZDsKKyAgIHBvc2l4X3NwYXduYXR0cl90IGF0dHI7CisgICBpbnQgYXR0cl9pbml0X2RvbmUgPSAwOworCisgICBlcnIgPSBwb3NpeF9zcGF3bmF0dHJfaW5pdCgmYXR0cik7CisgICBpZiAoZXJyICE9IDApCisgICAgICBnb3RvIG91dDsKKyAgIGF0dHJfaW5pdF9kb25lID0gMTsKKworICAgZXJyID0gcG9zaXhfc3Bhd25hdHRyX2luaXQoJmF0dHIpOworICAgaWYgKGVyciAhPSAwKQorICAgICAgZ290byBvdXQ7CisKKyAgIGlmIChwZ2lkICE9IDApIHsKKyAgICAgIGlmIChwZ2lkIDw9IDEpCisgICAgICAgICBwZ2lkID0gMDsKKyAgICAgIGVyciA9IHBvc2l4X3NwYXduYXR0cl9zZXRwZ3JvdXAoJmF0dHIsIHBnaWQpOworICAgICAgaWYgKGVyciAhPSAwKQorICAgICAgICAgZ290byBvdXQ7CisgICAgICBlcnIgPSBwb3NpeF9zcGF3bmF0dHJfc2V0ZmxhZ3MoJmF0dHIsIFBPU0lYX1NQQVdOX1NFVFBHUk9VUCk7CisgICAgICBpZiAoZXJyICE9IDApCisgICAgICAgICBnb3RvIG91dDsKKyAgIH0KKworICAgZXJyID0gcG9zaXhfc3Bhd24oJnBpZCwgY29tbWFuZCwgTlVMTCwgJmF0dHIsIGFyZ3YsIGVudnAgPyBlbnZwIDogZW52aXJvbik7CisKK291dDoKKyAgIGlmIChhdHRyX2luaXRfZG9uZSkKKyAgICAgIHBvc2l4X3NwYXduYXR0cl9kZXN0cm95KCZhdHRyKTsKKyAgIGlmIChlcnIgIT0gMCkgeworICAgICAgZXJybm8gPSBlcnI7CisgICAgICByZXR1cm4gLTE7CisgICB9CisgICByZXR1cm4gcGlkOworfQorCisjZWxzZQogIyAgZXJyb3IgVW5rbm93biBPUwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2NvcmVncmluZC92Z2RiLWludm9rZXItbm9uZS5jIGIvY29yZWdyaW5kL3ZnZGItaW52b2tlci1ub25lLmMKaW5kZXggOWI2YjkwYy4uNGIxZmUyZCAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3ZnZGItaW52b2tlci1ub25lLmMKKysrIGIvY29yZWdyaW5kL3ZnZGItaW52b2tlci1ub25lLmMKQEAgLTYsNyArNiw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTMgUGhpbGlwcGUgV2Fyb3F1aWVycworICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTUgUGhpbGlwcGUgV2Fyb3F1aWVycwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3ZnZGItaW52b2tlci1wdHJhY2UuYyBiL2NvcmVncmluZC92Z2RiLWludm9rZXItcHRyYWNlLmMKaW5kZXggOGU3ZTQyZS4uZDY1ZjU5YSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3ZnZGItaW52b2tlci1wdHJhY2UuYworKysgYi9jb3JlZ3JpbmQvdmdkYi1pbnZva2VyLXB0cmFjZS5jCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMS0yMDEzIFBoaWxpcHBlIFdhcm9xdWllcnMKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBoaWxpcHBlIFdhcm9xdWllcnMKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTMyOSw3ICszMjksNyBAQAogfQogCiAvKiBTdG9wcyB0aGUgZ2l2ZW4gcGlkLCB3YWl0IGZvciB0aGUgcHJvY2VzcyB0byBiZSBzdG9wcGVkLgotICAgUmV0dXJucyBUcnVlIGlmIHN1Y2Nlc2Z1bCwgRmFsc2Ugb3RoZXJ3aXNlLgorICAgUmV0dXJucyBUcnVlIGlmIHN1Y2Nlc3NmdWwsIEZhbHNlIG90aGVyd2lzZS4KICAgIG1zZyBpcyB1c2VkIGluIHRyYWNpbmcgYW5kIGVycm9yIHJlcG9ydGluZy4gKi8KIHN0YXRpYwogQm9vbCBzdG9wIChwaWRfdCBwaWQsIGNvbnN0IGNoYXIgKm1zZykKQEAgLTM0OCw3ICszNDgsNyBAQAogfQogCiAvKiBBdHRhY2hlcyB0byBnaXZlbiBwaWQsIHdhaXQgZm9yIHRoZSBwcm9jZXNzIHRvIGJlIHN0b3BwZWQuCi0gICBSZXR1cm5zIFRydWUgaWYgc3VjY2VzZnVsLCBGYWxzZSBvdGhlcndpc2UuCisgICBSZXR1cm5zIFRydWUgaWYgc3VjY2Vzc2Z1bCwgRmFsc2Ugb3RoZXJ3aXNlLgogICAgbXNnIGlzIHVzZWQgaW4gdHJhY2luZyBhbmQgZXJyb3IgcmVwb3J0aW5nLiAqLwogc3RhdGljCiBCb29sIGF0dGFjaCAocGlkX3QgcGlkLCBjb25zdCBjaGFyICptc2cpCkBAIC01NzIsNyArNTcyLDcgQEAKICAgICAgIHJlcyA9IHB0cmFjZSAoUFRSQUNFX0dFVFJFR1NFVCwgcGlkLCBOVF9QUlNUQVRVUywgJmlvdmVjKTsKICAgICAgIGlmIChyZXMgPT0gMCkgewogICAgICAgICAgaWYgKGhhc193b3JraW5nX3B0cmFjZV9nZXRyZWdzZXQgPT0gLTEpIHsKLSAgICAgICAgICAgIC8vIEZpcnN0IGNhbGwgdG8gUFRSQUNFX0dFVFJFR1NFVCBzdWNjZXNmdWwgPT4KKyAgICAgICAgICAgIC8vIEZpcnN0IGNhbGwgdG8gUFRSQUNFX0dFVFJFR1NFVCBzdWNjZXNzZnVsID0+CiAgICAgICAgICAgICBoYXNfd29ya2luZ19wdHJhY2VfZ2V0cmVnc2V0ID0gMTsKICAgICAgICAgICAgIERFQlVHKDEsICJkZXRlY3RlZCBhIHdvcmtpbmcgUFRSQUNFX0dFVFJFR1NFVFxuIik7CiAgICAgICAgICB9CkBAIC02MDcsNyArNjA3LDcgQEAKICAgICAgIHJlcyA9IHB0cmFjZSAoUFRSQUNFX0dFVFJFR1MsIHBpZCwgTlVMTCwgcmVncyk7CiAgICAgICBpZiAocmVzID09IDApIHsKICAgICAgICAgIGlmIChoYXNfd29ya2luZ19wdHJhY2VfZ2V0cmVncyA9PSAtMSkgewotICAgICAgICAgICAgLy8gRmlyc3QgY2FsbCB0byBQVFJBQ0VfR0VUUkVHUyBzdWNjZXNmdWwgPT4KKyAgICAgICAgICAgIC8vIEZpcnN0IGNhbGwgdG8gUFRSQUNFX0dFVFJFR1Mgc3VjY2Vzc2Z1bCA9PgogICAgICAgICAgICAgaGFzX3dvcmtpbmdfcHRyYWNlX2dldHJlZ3MgPSAxOwogICAgICAgICAgICAgREVCVUcoMSwgImRldGVjdGVkIGEgd29ya2luZyBQVFJBQ0VfR0VUUkVHU1xuIik7CiAgICAgICAgICB9CmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvdmdkYi1pbnZva2VyLXNvbGFyaXMuYyBiL2NvcmVncmluZC92Z2RiLWludm9rZXItc29sYXJpcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxOTQ0MWIKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlZ3JpbmQvdmdkYi1pbnZva2VyLXNvbGFyaXMuYwpAQCAtMCwwICsxLDUzMCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBJbXBsZW1lbnRhdGlvbiBvZiB2Z2RiIGludm9rZXIgc3Vic3lzdGVtIG9uIFNvbGFyaXMgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgIHZpYSAvcHJvYyBmaWxlc3lzdGVtIGFuZCBjb250cm9sIG1lc3NhZ2VzLiAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KKyAgIGZyYW1ld29yay4KKworICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgSXZvIFJhaXNyIDxpdm9zaEBpdm9zaC5uZXQ+CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKworLyogVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB2Z2RiLWludm9rZXIgc3Vic3lzdGVtIGFzIHBlciB2Z2RiLmgKKyAgIG9uIFNvbGFyaXMuIEl0IGRpZmZlcnMgc2lnbmlmaWNhbnRseSBmcm9tIHRoZSBvdGhlciBwdHJhY2UtYmFzZWQKKyAgIGltcGxlbWVudGF0aW9uIGZvdW5kIGluIHZnZGItaW52b2tlci1wdHJhY2UuYy4gSG93ZXZlciB0aGUgZ29hbAorICAgaXMgdGhlIHNhbWUgLSB0byB3b3JrIG9uIHRoZSBmb2xsb3dpbmcgc2NlbmFyaW86CisKKyAgIC0gQSB2YWxncmluZCBwcm9jZXNzIChyZWZlcnJlZCB0byBhbHNvIGFzIGFuIGluZmVyaW9yIHByb2Nlc3MpCisgICAgIGlzIHJlbW90ZWx5IGRlYnVnZ2VkIHdpdGggZ2RiLgorICAgLSBBbGwgdGhyZWFkcyBvZiB0aGUgaW5mZXJpb3IgcHJvY2VzcyBhcmUgc3R1Y2sgaW4gYmxvY2tpbmcKKyAgICAgc3lzY2FsbHMuCisgICAtIFRoZXJlZm9yZSBubyB0aHJlYWQgY2FuIHByb2Nlc3MgcGFja2V0cyByZWNlaXZlZCBmcm9tIGdkYi4KKworICAgV2hlbiBtb2R1bGUgdmdkYi5jIGRldGVjdHMgdGhpcyBzaXR1YXRpb24gdGhlbiBpdCBjYWxscworICAgZnVuY3Rpb24gaW52b2tlcl9pbnZva2VfZ2Ric2VydmVyKCkgd2l0aGluIHRoZSBjb250ZXh0IG9mCisgICBpbnZva2VfZ2Ric2VydmVyX2luX3ZhbGdyaW5kX3RocmVhZCB0aHJlYWQuIFRoZSBzdGVwcyBvZgorICAgaW50ZXJhY3Rpb24gYmV0d2VlbiB2Z2RiIGFuZCBtX2dkYnNlcnZlciBtb2R1bGUgYXJlIGFzIGZvbGxvd3M6CisKKyAgIDEuIEZ1bmN0aW9uIGludm9rZXJfaW52b2tlX2dkYnNlcnZlcigpIGF0dGFjaGVzIHRvIHRoZSBpbmZlcmlvcgorICAgICAgcHJvY2VzcyBhbmQgc3RvcHMgYWxsIHRocmVhZHMuCisgICAyLiBJdCBnZXRzIHJlZ2lzdGVycyBvZiB0aGUgZmlyc3QgdGhyZWFkIGFuZCBtb2RpZmllcyB0aGVtCisgICAgICBhbmQgdGhlIHN0YWNrIHNvIHRoYXQgYSBjYWxsIHRvICJpbnZva2VfZ2Ric2VydmVyIiBmdW5jdGlvbgorICAgICAgaXMgYXJyYW5nZWQgYWxvbmcgd2l0aCBhIGZ1bmN0aW9uIHBhcmFtZXRlci4KKyAgIDMuIFRoZW4gaXQgY3JlYXRlcyBhbiBhZ2VudCB0aHJlYWQgd2l0aGluIHRoZSBpbmZlcmlvciBwcm9jZXNzCisgICAgICB3aXRoIHRoZXNlIG1vZGlmaWVkIHJlZ2lzdGVycyBhbmQgd2FpdHMgdW50aWwgdGhlIGFnZW50IHRocmVhZAorICAgICAgZXhpdHMuCisgICA0LiBNZWFud2hpbGUgaW4gdGhlIGluZmVyaW9yIHByb2Nlc3MgZnVuY3Rpb24KKyAgICAgIFZHXyhpbnZva2VfZ2Ric2VydmVyKSgpIGlzIGludm9rZWQgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZQorICAgICAgYWdlbnQgdGhyZWFkOyBhbGwgb3RoZXIgdGhyZWFkcyBhcmUgc3RpbGwgc3RvcHBlZC4KKyAgIDUuIFRoZSBhZ2VudCB0aHJlYWQgcHJvY2Vzc2VzIHBhY2tldHMgZnJvbSBnZGIgcmVsYXllZCBieSB2Z2RiLgorICAgNi4gRXZlbnR1YWxseSBwcm9jZXNzaW5nIGlzIGZpbmlzaGVkIGFuZCB0aGUgYWdlbnQgdGhyZWFkIGV4aXRzCisgICAgICBpbiBmdW5jdGlvbiBnaXZlX2NvbnRyb2xfYmFja190b192Z2RiKCkuCisgICA3LiB2Z2RiIHRoZW4gZGV0YWNoZXMgZnJvbSB0aGUgaW5mZXJpb3IgcHJvY2VzcyBhbmQgdGh1cyByZXN1bWVzCisgICAgICBhbGwgdGhlIHN0b3BwZWQgdGhyZWFkcy4KKyAqLworCisjaW5jbHVkZSAidmdkYi5oIgorCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwordHlwZWRlZiBBZGRyIENPUkVfQUREUjsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgbG9uZyBjbWQ7CisgICB1bmlvbiB7CisgICAgICAgbG9uZyBmbGFnczsKKyAgICAgICBwcmdyZWdzZXRfdCByZWdzOworICAgfSBhcmc7Cit9IGN0bF90OworCisvKiBQcm9jZXNzIGNvbnRyb2wgZmlsZSAvcHJvYy88cGlkPi9jdGwuCisgICBPbmNlIHRoaXMgZmlsZSBpcyBjbG9zZWQsIFBSX1JMQyBmbGFnIHRha2VzIGVmZmVjdCBhbmQKKyAgIGluZmVyaW9yIHByb2Nlc3MgcmVzdW1lcyBhdXRvbWF0aWNhbGx5LiAqLworc3RhdGljIGludCBjdGxfZmQgPSAtMTsKKworLyogQ29weSBMRU4gYnl0ZXMgb2YgZGF0YSBmcm9tIHZnZGIgbWVtb3J5IGF0IE1ZQUREUgorICAgdG8gdmFsZ3JpbmQgbWVtb3J5IGF0IE1FTUFERFIuCisgICBPbiBmYWlsdXJlIChjYW5ub3Qgd3JpdGUgdGhlIHZhbGdyaW5kIG1lbW9yeSkKKyAgIHJldHVybnMgdGhlIHZhbHVlIG9mIGVycm5vLiAqLworc3RhdGljIGludCB3cml0ZV9tZW1vcnkocGlkX3QgcGlkLCBDT1JFX0FERFIgbWVtYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKm15YWRkciwgc2l6ZV90IGxlbikKK3sKKyAgIGNoYXIgcHJvY25hbWVbUEFUSF9NQVhdOworICAgc25wcmludGYocHJvY25hbWUsIHNpemVvZihwcm9jbmFtZSksICIvcHJvYy8lZC9hcyIsIHBpZCk7CisKKyAgIC8qIE9wZW4gdGhlIHByb2Nlc3MgYWRkcmVzcy1zcGFjZSBmaWxlLiAqLworICAgaW50IGFzX2ZkID0gb3Blbihwcm9jbmFtZSwgT19XUk9OTFksIDApOworICAgaWYgKGFzX2ZkIDwgMCkgeworICAgICAgaW50IGVycm9yID0gZXJybm87CisgICAgICBFUlJPUihlcnJvciwgIkZhaWxlZCB0byBvcGVuICVzLlxuIiwgcHJvY25hbWUpOworICAgICAgcmV0dXJuIGVycm9yOworICAgfQorCisgICBpZiAoZGVidWdsZXZlbCA+PSAxKSB7CisgICAgICBERUJVRygxLCAiV3JpdGluZyBieXRlcyAnIik7CisgICAgICBzaXplX3QgaTsKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKKyAgICAgICAgIFBERUJVRygxLCAiJTAyeCIsICgoY29uc3QgdW5zaWduZWQgY2hhciAqKSBteWFkZHIpW2ldKTsKKyAgICAgIFBERUJVRygxLCAiJyB0byBhZGRyZXNzICUjbHguXG4iLCBtZW1hZGRyKTsKKyAgIH0KKworICAgc3NpemVfdCB3cml0dGVuID0gcHdyaXRlKGFzX2ZkLCBteWFkZHIsIGxlbiwgbWVtYWRkcik7CisgICBpZiAoKHdyaXR0ZW4gPCAwKSB8fCAod3JpdHRlbiAhPSBsZW4pKSB7CisgICAgICBpbnQgZXJyb3IgPSBlcnJubzsKKyAgICAgIEVSUk9SKGVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUgJXMsIG1lbW9yeSBibG9jayBvZiAlenUiCisgICAgICAgICAgICAiIGJ5dGVzIGF0ICUjbHggdG8gJSNseC5cbiIsCisgICAgICAgICAgICBwcm9jbmFtZSwgbGVuLCAoQWRkcikgbXlhZGRyLCBtZW1hZGRyKTsKKyAgICAgIGNsb3NlKGFzX2ZkKTsKKyAgICAgIHJldHVybiBlcnJvcjsKKyAgIH0KKworICAgREVCVUcoMSwgIldyaXR0ZW4gb2suXG4iKTsKKyAgIGNsb3NlKGFzX2ZkKTsKKyAgIHJldHVybiAwOworfQorCisvKiBBdHRhY2hlcyB0byBhIHByb2Nlc3MgaWRlbnRpZmllZCBieSBwaWQgYW5kIHN0b3BzIGFsbCB0aHJlYWRzLiAqLworc3RhdGljIEJvb2wgYXR0YWNoKHBpZF90IHBpZCkKK3sKKyAgIGNoYXIgcHJvY25hbWVbUEFUSF9NQVhdOworICAgc25wcmludGYocHJvY25hbWUsIHNpemVvZihwcm9jbmFtZSksICIvcHJvYy8lZC9jdGwiLCBwaWQpOworCisgICBERUJVRygxLCAiQXR0YWNoaW5nIHRvIHBpZCAlZC5cbiIsIHBpZCk7CisKKyAgIC8qIE9wZW4gdGhlIHByb2Nlc3MgY29udHJvbCBmaWxlLiAqLworICAgY3RsX2ZkID0gb3Blbihwcm9jbmFtZSwgT19XUk9OTFksIDApOworICAgaWYgKGN0bF9mZCA8IDApIHsKKyAgICAgIEVSUk9SKGVycm5vLCAiRmFpbGVkIHRvIG9wZW4gJXMuXG4iLCBwcm9jbmFtZSk7CisgICAgICByZXR1cm4gRmFsc2U7CisgICB9CisKKyAgIERFQlVHKDEsICJTZXR0aW5nIHJ1bi1vbi1sYXN0LWNsb3NlLWZsYWcgKFBSX1JMQykgdG8gcGlkICVkLlxuIiwgcGlkKTsKKworICAgLyogU2V0IHJ1bi1vbi1sYXN0LWNsb3NlIGZsYWcuICovCisgICBjdGxfdCBjdGw7CisgICBjdGwuY21kID0gUENTRVQ7CisgICBjdGwuYXJnLmZsYWdzID0gUFJfUkxDOworICAgc2l6ZV90IGJ5dGVzID0gc2l6ZW9mKGN0bC5jbWQpICsgc2l6ZW9mKGN0bC5hcmcuZmxhZ3MpOworICAgc3NpemVfdCB3cml0dGVuID0gd3JpdGUoY3RsX2ZkLCAodm9pZCAqKSAmY3RsLCBieXRlcyk7CisgICBpZiAoKHdyaXR0ZW4gPCAwKSB8fCAod3JpdHRlbiAhPSBieXRlcykpIHsKKyAgICAgIEVSUk9SKGVycm5vLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGN0bF9mZDogUENTRVQgKyBQUl9STEMuXG4iKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgREVCVUcoMSwgIlN0b3BwaW5nIHByb2Nlc3MgJWQuXG4iLCBwaWQpOworCisgICAvKiBTdG9wIHRoZSB3aG9sZSBwcm9jZXNzIC0gYWxsIHRocmVhZHMuICovCisgICBjdGwuY21kID0gUENTVE9QOworICAgYnl0ZXMgPSBzaXplb2YoY3RsLmNtZCk7CisgICB3cml0dGVuID0gd3JpdGUoY3RsX2ZkLCAodm9pZCAqKSAmY3RsLCBieXRlcyk7CisgICBpZiAoKHdyaXR0ZW4gPCAwKSB8fCAod3JpdHRlbiAhPSBieXRlcykpIHsKKyAgICAgIEVSUk9SKGVycm5vLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGN0bF9mZDogUENTVE9QLlxuIik7CisgICAgICByZXR1cm4gRmFsc2U7CisgICB9CisKKyAgIERFQlVHKDEsICJQcm9jZXNzICVkIHN0b3BwZWQuXG4iLCBwaWQpOworCisgICAvKiBOb3cgY29uZmlybSBpdCBpcyBhY3R1YWxseSB0aGUgY2FzZS4gKi8KKyAgIHNucHJpbnRmKHByb2NuYW1lLCBzaXplb2YocHJvY25hbWUpLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKKyAgIGludCBzdGF0dXNfZmQgPSBvcGVuKHByb2NuYW1lLCBPX1JET05MWSwgMCk7CisgICBpZiAoc3RhdHVzX2ZkIDwgMCkgeworICAgICAgRVJST1IoZXJybm8sICJGYWlsZWQgdG8gb3BlbiAlcy5cbiIsIHByb2NuYW1lKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgcHN0YXR1c190IHBzdGF0dXM7CisgICBieXRlcyA9IHJlYWQoc3RhdHVzX2ZkLCAmcHN0YXR1cywgc2l6ZW9mKHBzdGF0dXMpKTsKKyAgIGlmICgoYnl0ZXMgPCAwKSB8fCAoYnl0ZXMgIT0gc2l6ZW9mKHBzdGF0dXMpKSkgeworICAgICAgRVJST1IoZXJybm8sICJGYWlsZWQgdG8gcmVhZCBmcm9tICVzLlxuIiwgcHJvY25hbWUpOworICAgICAgY2xvc2Uoc3RhdHVzX2ZkKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgaWYgKHBzdGF0dXMucHJfZmxhZ3MgJiBQUl9STEMpIHsKKyAgICAgIERFQlVHKDIsICJQcm9jZXNzICVkIGhhcyBydW4tb24tbGFzdC1jbG9zZSBmbGFnIHNldC4gR29vZC5cbiIsIHBpZCk7CisgICB9IGVsc2UgeworICAgICAgRVJST1IoMCwgIlByb2Nlc3MgJWQgZG9lcyBub3QgaGF2ZSBydW4tb24tbGFzdC1jbG9zZSBmbGFnIHNldCFcbiIsIHBpZCk7CisgICAgICBjbG9zZShzdGF0dXNfZmQpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICBpZiAocHN0YXR1cy5wcl9sd3AucHJfZmxhZ3MgJiBQUl9TVE9QUEVEKSB7CisgICAgICBERUJVRygzLCAiUHJvY2VzcyAlZCBzZWVtcyB0byBiZSBzdG9wcGVkLiBHb29kLlxuIiwgcGlkKTsKKyAgIH0gZWxzZSB7CisgICAgICBFUlJPUigwLCAiUHJvY2VzcyAlZCBpcyBub3Qgc3RvcHBlZCFcbiIsIHBpZCk7CisgICAgICBjbG9zZShzdGF0dXNfZmQpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICBjbG9zZShzdGF0dXNfZmQpOworICAgcmV0dXJuIFRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGRldGFjaChwaWRfdCBwaWQpCit7CisgICBpZiAoY3RsX2ZkICE9IC0xKSB7CisgICAgICBjbG9zZShjdGxfZmQpOworICAgICAgY3RsX2ZkID0gLTE7CisgICB9CisKKyAgIERFQlVHKDEsICJEZXRhY2hlZCBmcm9tIHBpZCAlZC5cbiIsIHBpZCk7Cit9CisKKy8qIEdldHMgdGhlIHJlZ2lzdGVycyBvZiB0aGUgZmlyc3QgdGhyZWFkLiAqLworc3RhdGljIEJvb2wgZ2V0X3JlZ3MocGlkX3QgcGlkLCBwcmdyZWdzZXRfdCAqcmVncykKK3sKKyAgIGNoYXIgcHJvY25hbWVbUEFUSF9NQVhdOworICAgc25wcmludGYocHJvY25hbWUsIHNpemVvZihwcm9jbmFtZSksICIvcHJvYy8lZC9sd3AvMS9sd3BzdGF0dXMiLCBwaWQpOworCisgICBERUJVRygxLCAiR2V0dGluZyByZWdpc3RlcnMgZnJvbSB0aGUgZmlyc3QgdGhyZWFkIG9mIHByb2Nlc3MgJWQuXG4iLCBwaWQpOworCisgICAvKiBPcGVuIHRoZSBmaXJzdCB0aHJlYWQncyBzdGF0dXMgZmlsZS4gKi8KKyAgIGludCBzdGF0dXNfZmQgPSBvcGVuKHByb2NuYW1lLCBPX1JET05MWSwgMCk7CisgICBpZiAoc3RhdHVzX2ZkIDwgMCkgeworICAgICAgRVJST1IoZXJybm8sICJGYWlsZWQgdG8gb3BlbiBmaWxlICVzLlxuIiwgcHJvY25hbWUpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICBsd3BzdGF0dXNfdCBzdGF0dXM7CisgICBzc2l6ZV90IGJ5dGVzID0gcmVhZChzdGF0dXNfZmQsICZzdGF0dXMsIHNpemVvZihzdGF0dXMpKTsKKyAgIGlmICgoYnl0ZXMgPCAwKSB8fCAoYnl0ZXMgIT0gc2l6ZW9mKHN0YXR1cykpKSB7CisgICAgICBFUlJPUihlcnJubywgIkZhaWxlZCB0byByZWFkIGZyb20gJXMuXG4iLCBwcm9jbmFtZSk7CisgICAgICBjbG9zZShzdGF0dXNfZmQpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICBERUJVRygzLCAiUmVnaXN0ZXJzIG9mIHRocmVhZCAlZCBmcm9tIHByb2Nlc3MgJWQ6ICIsIHN0YXR1cy5wcl9sd3BpZCwgcGlkKTsKKyAgIHVuc2lnbmVkIGludCBpOworICAgZm9yIChpID0gMDsgaSA8IF9OR1JFRzsgaSsrKSB7CisgICAgICBQREVCVUcoMywgIiV1OiAlI2x4LCAiLCBpLCAodW5zaWduZWQgbG9uZykgc3RhdHVzLnByX3JlZ1tpXSk7CisgICB9CisgICBQREVCVUcoMywgIlxuIik7CisKKyAgIG1lbWNweShyZWdzLCAmc3RhdHVzLnByX3JlZywgc2l6ZW9mKHByZ3JlZ3NldF90KSk7CisgICBjbG9zZShzdGF0dXNfZmQpOworICAgcmV0dXJuIFRydWU7Cit9CisKKy8qIE1vZGlmaWVzIHRoZSByZWdpc3RlciBzZXQgc28gdGhhdCBhIG5ldyBzdGFjayBmcmFtZSBpcyBjcmVhdGVkCisgICBmb3IgImludm9rZV9nZGJzZXJ2ZXIiIGZ1bmN0aW9uIHdpdGggYW4gZXh0cmEgYXJndW1lbnQuCisgICBUaGUgYXJndW1lbnQgaXMgd3JpdHRlbiB0byB0aGUgc3RhY2sgb2YgdGhlIGZpcnN0IHRocmVhZC4KKyAqLworc3RhdGljIEJvb2wgc2V0dXBfc3RhY2tfZnJhbWUocGlkX3QgcGlkLCBwcmdyZWdzZXRfdCAqcmVncykKK3sKKyAgIERFQlVHKDEsICJTZXR0aW5nIHVwIG5ldyBzdGFjayBmcmFtZSBvZiBwcm9jZXNzICVkLlxuIiwgcGlkKTsKKworICAgLyogQSBzcGVjaWZpYyBpbnQgdmFsdWUgaXMgcGFzc2VkIHRvIGludm9rZV9nZGJzZXJ2ZXIoKSwgdG8gY2hlY2sKKyAgICAgIGV2ZXJ5dGhpbmcgZ29lcyBhY2NvcmRpbmcgdG8gdGhlIHBsYW4uICovCisgICBjb25zdCBpbnQgY2hlY2sgPSAweDhCQURGMDBEOyAvLyBhdGUgYmFkIGZvb2QuCisKKyAgIC8qIEEgYmFkIHJldHVybiBhZGRyZXNzIHdpbGwgYmUgcHVzaGVkIG9uIHRoZSBzdGFjay4KKyAgICAgIEZ1bmN0aW9uIGludm9rZV9nZGJzZXJ2ZXIoKSBjYW5ub3QgcmV0dXJuLiBJZiBpdCBldmVyIHJldHVybnMsCisgICAgICBhIE5VTEwgYWRkcmVzcyBwdXNoZWQgb24gdGhlIHN0YWNrIHNob3VsZCBlbnN1cmUgdGhpcyBpcworICAgICAgZGV0ZWN0ZWQuICovCisgICBjb25zdCBBZGRyIGJhZF9yZXR1cm4gPSAwOworCisjaWYgZGVmaW5lZChWR0FfeDg2KQorICAgQWRkciBzcCA9ICgqcmVncylbVUVTUF07CisjZWxpZiBkZWZpbmVkKFZHQV9hbWQ2NCkKKyAgIEFkZHIgc3AgPSAoKnJlZ3MpW1JFR19SU1BdOworI2Vsc2UKKyAgIElfZGllX2hlcmUgOiAoc3ApIGFyY2hpdGVjdHVyZSBtaXNzaW5nIGluIHZnZGItaW52b2tlci1zb2xhcmlzLmMKKyNlbmRpZgorCisgICBpZiAoc2hhcmVkMzIgIT0gTlVMTCkgeworICAgICAgLyogdmdkYiBzcGVha2luZyB3aXRoIGEgMzJiaXQgZXhlY3V0YWJsZS4gKi8KKyNpZiAgIGRlZmluZWQoVkdBX3g4NikgfHwgZGVmaW5lZChWR0FfYW1kNjQpCisgICAgICBjb25zdCBzaXplX3QgcmVnc2l6ZSA9IDQ7CisKKyAgICAgIC8qIFB1c2ggY2hlY2sgYXJndW1lbnQgb24gdGhlIHN0YWNrIC0gYWNjb3JkaW5nIHRvIEMvaWEzMiBBQkkuICovCisgICAgICBzcCA9IHNwIC0gcmVnc2l6ZTsKKyAgICAgIERFQlVHKDEsICJQdXNoaW5nIGNoZWNrIGFyZ3VtZW50IHRvIHByb2Nlc3MgJWQgbWVtb3J5LlxuIiwgcGlkKTsKKyAgICAgIGFzc2VydChyZWdzaXplID09IHNpemVvZihjaGVjaykpOworICAgICAgaW50IGVycm9yID0gd3JpdGVfbWVtb3J5KHBpZCwgc3AsICZjaGVjaywgcmVnc2l6ZSk7CisgICAgICBpZiAoZXJyb3IgIT0gMCkgeworICAgICAgICAgRVJST1IoZXJyb3IsICJGYWlsZWQgdG8gcHVzaCBjaGVjayBhcmd1bWVudCB0byBwcm9jZXNzICVkIG1lbW9yeS5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgcGlkKTsKKyAgICAgICAgIGRldGFjaChwaWQpOworICAgICAgICAgcmV0dXJuIEZhbHNlOworICAgICAgfQorCisgICAgICBzcCA9IHNwIC0gcmVnc2l6ZTsKKyAgICAgIERFQlVHKDEsICJQdXNoaW5nIGJhZF9yZXR1cm4gcmV0dXJuIGFkZHJlc3MgdG8gcHJvY2VzcyAlZCBtZW1vcnkuXG4iLAorICAgICAgICAgICAgICAgcGlkKTsKKyAgICAgIC8qIE5vdGUgdGhhdCBldmVuIGZvciBhIDY0IGJpdHMgdmdkYiwgb25seSA0IGJ5dGVzCisgICAgICAgICBvZiBOVUxMIGJhZF9yZXR1cm4gYXJlIHdyaXR0ZW4uICovCisgICAgICBlcnJvciA9IHdyaXRlX21lbW9yeShwaWQsIHNwLCAmYmFkX3JldHVybiwgcmVnc2l6ZSk7CisgICAgICBpZiAoZXJyb3IgIT0gMCkgeworICAgICAgICAgRVJST1IoZXJyb3IsICJGYWlsZWQgdG8gcHVzaCBiYWRfcmV0dXJuIHJldHVybiBhZGRyZXNzIHRvIHByb2Nlc3MgJWQgIgorICAgICAgICAgICAgICAgICAgICAgICJtZW1vcnkuXG4iLCBwaWQpOworICAgICAgICAgZGV0YWNoKHBpZCk7CisgICAgICAgICByZXR1cm4gRmFsc2U7CisgICAgICB9CisKKyNpZiAgIGRlZmluZWQoVkdBX3g4NikKKyAgICAgIC8qIFNldCBFQlAsIEVTUCwgRUlQIHRvIGludm9rZSBnZGJzZXJ2ZXIuCisgICAgICAgICB2Z2RiIGlzIDMyYml0cywgc3BlYWtpbmcgd2l0aCBhIDMyYml0cyBwcm9jZXNzLiAqLworICAgICAgKCpyZWdzKVtFQlBdID0gc3A7IC8vIGJwIHNldCB0byBzcAorICAgICAgKCpyZWdzKVtVRVNQXSA9IHNwOworICAgICAgKCpyZWdzKVtFSVBdID0gc2hhcmVkMzItPmludm9rZV9nZGJzZXJ2ZXI7CisjZWxpZiBkZWZpbmVkKFZHQV9hbWQ2NCkKKyAgICAgIC8qIFNldCBSQlAsIFJTUCwgUklQIHRvIGludm9rZSBnZGJzZXJ2ZXIuCisgICAgICAgICB2Z2RiIGlzIDY0Yml0cywgc3BlYWtpbmcgd2l0aCBhIDMyYml0cyBwcm9jZXNzLiAqLworICAgICAgKCpyZWdzKVtSRUdfUkJQXSA9IHNwOyAvLyBicCBzZXQgdG8gc3AKKyAgICAgICgqcmVncylbUkVHX1JTUF0gPSBzcDsKKyAgICAgICgqcmVncylbUkVHX1JJUF0gPSBzaGFyZWQzMi0+aW52b2tlX2dkYnNlcnZlcjsKKyNlbHNlCisgICAgICBJX2RpZV9oZXJlIDogbm90IHg4NiBvciBhbWQ2NCBpbiB4ODYvYW1kNjQgc2VjdGlvbi8KKyNlbmRpZgorCisjZWxzZQorICAgICAgSV9kaWVfaGVyZSA6IGFyY2hpdGVjdHVyZSBtaXNzaW5nIGluIHZnZGItaW52b2tlci1zb2xhcmlzLmMKKyNlbmRpZgorCisgICB9IGVsc2UgaWYgKHNoYXJlZDY0ICE9IE5VTEwpIHsKKyNpZiBkZWZpbmVkKFZHQV94ODYpCisgICAgICBhc3NlcnQoMCk7IC8qIDY0Yml0cyBwcm9jZXNzIHdpdGggYSAzMmJpdHMgdmdkYiAtIG5vIHdheSAqLworI2VsaWYgZGVmaW5lZChWR0FfYW1kNjQpCisgICAgICAvKiA2NGJpdHMgdmdkYiBzcGVha2luZyB3aXRoIGEgNjQgYml0IHByb2Nlc3MuICovCisgICAgICBjb25zdCBpbnQgcmVnc2l6ZSA9IDg7CisKKyAgICAgIC8qIEdpdmUgY2hlY2sgYXJndW1lbnQgaW4gcmRpIC0gYWNjb3JkaW5nIHRvIEMvYW1kNjQgQUJJLiAqLworICAgICAgKCpyZWdzKVtSRUdfUkRJXSA9IGNoZWNrOworCisgICAgICAvKiBQdXNoIHJldHVybiBhZGRyZXNzIG9uIHN0YWNrOiByZXR1cm4gdG8gYnJlYWthZGRyLiAqLworICAgICAgc3AgPSBzcCAtIHJlZ3NpemU7CisgICAgICBERUJVRygxLCAiUHVzaGluZyBiYWRfcmV0dXJuIHJldHVybiBhZGRyZXNzIHRvIHByb2Nlc3MgJWQgbWVtb3J5LlxuIiwKKyAgICAgICAgICAgICAgIHBpZCk7CisgICAgICBpbnQgZXJyb3IgPSB3cml0ZV9tZW1vcnkocGlkLCBzcCwgJmJhZF9yZXR1cm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGJhZF9yZXR1cm4pKTsKKyAgICAgIGlmIChlcnJvciAhPSAwKSB7CisgICAgICAgICBFUlJPUihlcnJvciwgIkZhaWxlZCB0byBwdXNoIGJhZF9yZXR1cm4gcmV0dXJuIGFkZHJlc3MgdG8gcHJvY2VzcyAlZCAiCisgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeS5cbiIsIHBpZCk7CisgICAgICAgICBkZXRhY2gocGlkKTsKKyAgICAgICAgIHJldHVybiBGYWxzZTsKKyAgICAgIH0KKworICAgICAgLyogc2V0IFJCUCwgUlNQLCBSSVAgdG8gaW52b2tlIGdkYnNlcnZlciAqLworICAgICAgKCpyZWdzKVtSRUdfUkJQXSA9IHNwOyAvLyBicCBzZXQgdG8gc3AKKyAgICAgICgqcmVncylbUkVHX1JTUF0gPSBzcDsKKyAgICAgICgqcmVncylbUkVHX1JJUF0gPSBzaGFyZWQ2NC0+aW52b2tlX2dkYnNlcnZlcjsKKyNlbHNlCisgICAgICBJX2RpZV9oZXJlOiBhcmNoaXRlY3R1cmUgbWlzc2luZyBpbiB2Z2RiLWludm9rZXItc29sYXJpcy5jCisjZW5kaWYKKyAgIH0gZWxzZSB7CisgICAgICBhc3NlcnQoMCk7CisgICB9CisKKyAgIERFQlVHKDEsICJOZXcgc3RhY2sgZnJhbWUgc2V0IHVwIGZvciBwcm9jZXNzICVkLlxuIiwgcGlkKTsKKyAgIHJldHVybiBUcnVlOworfQorCisvKiBDcmVhdGVzIGFuZCBzdGFydHMgYW4gYWdlbnQgdGhyZWFkIHdpdGhpbiB0aGUgaW5mZXJpb3IgcHJvY2Vzcy4KKyAgIFRoZSBhZ2VudCB0aHJlYWQgaXMgY3JlYXRlZCBzdG9wcGVkIGFuZCB3aXRoIGl0cyBoZWxkIHNpZ25hbCBzZXQKKyAgICh0aGUgc2lnbmFsIG1hc2spIGhhdmluZyBhbGwgc2lnbmFscyBleGNlcHQgU0lHS0lMTCBhbmQgU0lHU1RPUAorICAgYmxvY2tlZC4gQWxsIHRoZXNlIHNpZ25hbHMgbmVlZCB0byByZW1haW4gYmxvY2tlZCB3aGlsZSB0aGUgYWdlbnQKKyAgIHRocmVhZCBpcyBydW5uaW5nIGJlY2F1c2UgdmFsZ3JpbmQgc3lzY2FsbC9zaWduYWwgbWFjaGluZXJ5IGV4cGVjdHMKKyAgIHRoYXQgKHJlbWVtYmVyOiBhbGwgdmFsZ3JpbmQgdGhyZWFkcyBhcmUgYmxvY2tlZCBpbiBWZ1RzX1dhaXRTeXMKKyAgIC0gdGhhdCBpcyB0aGUgcmVhc29uIHdoeSB3ZSBhcmUgaW52b2tpbmcgdGhlIGFnZW50LCBhZnRlciBhbGwpLgorICAgSXQgaXMgbmVjZXNzYXJ5IHRvIHJlc3VtZSB0aGUgYWdlbnQgdGhyZWFkIGFmdGVyd2FyZHMuCisgKi8KK3N0YXRpYyBCb29sIGludm9rZV9hZ2VudChwaWRfdCBwaWQsIHByZ3JlZ3NldF90ICpyZWdzLCBpZF90ICphZ2VudF9sd3BpZCkKK3sKKyAgIGFzc2VydChjdGxfZmQgIT0gLTEpOworCisgICBERUJVRygxLCAiQ3JlYXRpbmcgYW4gYWdlbnQgdGhyZWFkIHdpdGhpbiBwcm9jZXNzICVkLlxuIiwgcGlkKTsKKworICAgLyogQ3JlYXRlIHRoZSBhZ2VudCB0aHJlYWQuICovCisgICBjdGxfdCBjdGw7CisgICBjdGwuY21kID0gUENBR0VOVDsKKyAgIG1lbWNweSgmY3RsLmFyZy5yZWdzLCByZWdzLCBzaXplb2YocHJncmVnc2V0X3QpKTsKKyAgIHNpemVfdCBieXRlcyA9IHNpemVvZihjdGwuY21kKSArIHNpemVvZihjdGwuYXJnLnJlZ3MpOworICAgc3NpemVfdCB3cml0dGVuID0gd3JpdGUoY3RsX2ZkLCAodm9pZCAqKSAmY3RsLCBieXRlcyk7CisgICBpZiAoKHdyaXR0ZW4gPCAwKSB8fCAod3JpdHRlbiAhPSBieXRlcykpIHsKKyAgICAgIEVSUk9SKGVycm5vLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGN0bF9mZDogUENBR0VOVC5cbiIpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICBERUJVRygxLCAiT2J0YWluaW5nIGFnZW50IHRocmVhZCBsd3BpZCBmb3IgcHJvY2VzcyAlZC5cbiIsIHBpZCk7CisKKyAgIGNoYXIgcHJvY25hbWVbUEFUSF9NQVhdOworICAgc25wcmludGYocHJvY25hbWUsIHNpemVvZihwcm9jbmFtZSksCisgICAgICAgICAgICAiL3Byb2MvJWQvbHdwL2FnZW50L2x3cHN0YXR1cyIsIHBpZCk7CisKKyAgIGludCBzdGF0dXNfZmQgPSBvcGVuKHByb2NuYW1lLCBPX1JET05MWSwgMCk7CisgICBpZiAoc3RhdHVzX2ZkIDwgMCkgeworICAgICAgLyogT3BlcmF0aW9uIGZhaWxlZCBidXQgdGhlcmUgaXMgbm8gd2F5IHRvIGdldCByaWQgb2YgdGhlIGFnZW50CisgICAgICAgICB0aHJlYWQgZnJvbSBvdXRzaWRlLiBXZSBhcmUgZG9vbWVkLi4uICovCisgICAgICBFUlJPUihlcnJubywgIkZhaWxlZCB0byBvcGVuIGZpbGUgJXMuXG4iLCBwcm9jbmFtZSk7CisgICAgICByZXR1cm4gRmFsc2U7CisgICB9CisKKyAgIGx3cHN0YXR1c190IHN0YXR1czsKKyAgIGJ5dGVzID0gcmVhZChzdGF0dXNfZmQsICZzdGF0dXMsIHNpemVvZihzdGF0dXMpKTsKKyAgIGlmICgoYnl0ZXMgPCAwKSB8fCAoYnl0ZXMgIT0gc2l6ZW9mKHN0YXR1cykpKSB7CisgICAgICBFUlJPUihlcnJubywgIkZhaWxlZCB0byByZWFkIGZyb20gJXMuXG4iLCBwcm9jbmFtZSk7CisgICAgICBjbG9zZShzdGF0dXNfZmQpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICBjbG9zZShzdGF0dXNfZmQpOworICAgKmFnZW50X2x3cGlkID0gc3RhdHVzLnByX2x3cGlkOworCisgICBzbnByaW50Zihwcm9jbmFtZSwgc2l6ZW9mKHByb2NuYW1lKSwKKyAgICAgICAgICAgICIvcHJvYy8lZC9sd3AvYWdlbnQvbHdwY3RsIiwgcGlkKTsKKworICAgaW50IGFnZW50X2N0bF9mZCA9IG9wZW4ocHJvY25hbWUsIE9fV1JPTkxZLCAwKTsKKyAgIGlmIChhZ2VudF9jdGxfZmQgPCAwKSB7CisgICAgICAvKiBSZXN1bWluZyBmYWlsZWQgYnV0IHRoZXJlIGlzIG5vIHdheSB0byBnZXQgcmlkIG9mIHRoZSBhZ2VudAorICAgICAgICAgdGhyZWFkIGZyb20gb3V0c2lkZS4gV2UgYXJlIGRvb21lZC4uLiAqLworICAgICAgRVJST1IoZXJybm8sICJGYWlsZWQgdG8gb3BlbiBmaWxlICVzLlxuIiwgcHJvY25hbWUpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICBERUJVRygxLCAiUmVzdW1pbmcgdGhlIGFnZW50IHRocmVhZCBmb3IgcHJvY2VzcyAlZC5cbiIsIHBpZCk7CisKKyAgIC8qIFJlc3VtZSB0aGUgYWdlbnQgdGhyZWFkLiAqLworICAgY3RsLmNtZCA9IFBDUlVOOworICAgY3RsLmFyZy5mbGFncyA9IDA7CisgICBieXRlcyA9IHNpemVvZihjdGwuY21kKSArIHNpemVvZihjdGwuYXJnLmZsYWdzKTsKKyAgIHdyaXR0ZW4gPSB3cml0ZShhZ2VudF9jdGxfZmQsICh2b2lkICopICZjdGwsIGJ5dGVzKTsKKyAgIGlmICgod3JpdHRlbiA8IDApIHx8ICh3cml0dGVuICE9IGJ5dGVzKSkgeworICAgICAgLyogUmVzdW1pbmcgZmFpbGVkIGJ1dCB0aGVyZSBpcyBubyB3YXkgdG8gZ2V0IHJpZCBvZiB0aGUgYWdlbnQKKyAgICAgICAgIHRocmVhZCBmcm9tIG91dHNpZGUuIFdlIGFyZSBkb29tZWQuLi4gKi8KKyAgICAgIEVSUk9SKGVycm5vLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGFnZW50X2N0bF9mZDogUENSVU4gMC5cbiIpOworICAgICAgY2xvc2UoYWdlbnRfY3RsX2ZkKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgREVCVUcoMSwgIkFnZW50IHRocmVhZCBsd3BpZCAlZCBub3cgcnVubmluZyB3aXRoaW4gcHJvY2VzcyAlZC5cbiIsCisgICAgICAgICAqYWdlbnRfbHdwaWQsIHBpZCk7CisgICBjbG9zZShhZ2VudF9jdGxfZmQpOworICAgcmV0dXJuIFRydWU7Cit9CisKKy8qIFdhaXRzIHVudGlsIHRoZSBhZ2VudCB0aHJlYWQgcnVubmluZyBpbnNpZGUgdGhlIGluZmVyaW9yCisgICBwcm9jZXNzIGV4aXRzLiAqLworc3RhdGljIEJvb2wgd2FpdF9mb3JfYWdlbnRfZXhpdChwaWRfdCBwaWQsIGlkX3QgYWdlbnRfbHdwaWQpCit7CisgICBjaGFyIHByb2NuYW1lW1BBVEhfTUFYXTsKKyAgIHNucHJpbnRmKHByb2NuYW1lLCBzaXplb2YocHJvY25hbWUpLCAiL3Byb2MvJWQvbHdwL2FnZW50L2x3cGN0bCIsIHBpZCk7CisKKyAgIGludCBhZ2VudF9jdGxfZmQgPSBvcGVuKHByb2NuYW1lLCBPX1dST05MWSwgMCk7CisgICBpZiAoYWdlbnRfY3RsX2ZkIDwgMCkgeworICAgICAgaWYgKGVycm5vID09IEVOT0VOVCkgeworICAgICAgICAgREVCVUcoMSwgIkFnZW50IGNvbnRyb2wgZmlsZSAlcyBubyBsb25nZXIgZXhpc3RzLiBUaGlzIG1lYW5zICIKKyAgICAgICAgICAgICAgICJhZ2VudCB0aHJlYWQgJWQgZXhpdGVkIG1lYW53aGlsZS5cbiIsCisgICAgICAgICAgICAgICBwcm9jbmFtZSwgYWdlbnRfbHdwaWQpOworICAgICAgICAgcmV0dXJuIFRydWU7CisgICAgICB9CisgICAgICBFUlJPUihlcnJubywgIkZhaWxlZCB0byBvcGVuIGFnZW50IGNvbnRyb2wgZmlsZSAlcy5cbiIsIHByb2NuYW1lKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgREVCVUcoMSwgIldhaXRpbmcgZm9yIGFnZW50IHRocmVhZCAlZCB0byBleGl0LlxuIiwgYWdlbnRfbHdwaWQpOworCisgICAvKiBXYWl0IHVudGlsIHRoZSBhZ2VudCB0aHJlYWQgc3RvcHMuIFRoaXMgY292ZXJzIGFsc28gdGhlIGNhc2UKKyAgICAgIHdoZW4gdGhlIHRocmVhZCBleGl0ZWQuICovCisgICBjdGxfdCBjdGw7CisgICBjdGwuY21kID0gUENXU1RPUDsKKyAgIHNpemVfdCBieXRlcyA9IHNpemVvZihjdGwuY21kKTsKKyAgIHNzaXplX3Qgd3JpdHRlbiA9IHdyaXRlKGFnZW50X2N0bF9mZCwgKHZvaWQgKikgJmN0bCwgYnl0ZXMpOworICAgaWYgKCh3cml0dGVuIDwgMCkgfHwgKHdyaXR0ZW4gIT0gYnl0ZXMpKSB7CisgICAgICBpZiAoZXJybm8gPT0gRU5PRU5UKSB7CisgICAgICAgICBERUJVRygxLCAiQWdlbnQgdGhyZWFkIGx3cGlkICVkIGhhcyBub3cgZXhpdGVkIGluIHByb2Nlc3MgJWQuXG4iLAorICAgICAgICAgICAgICAgICAgYWdlbnRfbHdwaWQsIHBpZCk7CisgICAgICB9IGVsc2UgeworICAgICAgICAgRVJST1IoZXJybm8sICJGYWlsZWQgdG8gd3JpdGUgdG8gYWdlbnRfY3RsX2ZkOiBQQ1dTVE9QLlxuIik7CisgICAgICAgICBjbG9zZShhZ2VudF9jdGxfZmQpOworICAgICAgICAgcmV0dXJuIEZhbHNlOworICAgICAgfQorICAgfQorCisgICBjbG9zZShhZ2VudF9jdGxfZmQpOworICAgcmV0dXJuIFRydWU7Cit9CisKK0Jvb2wgaW52b2tlcl9pbnZva2VfZ2Ric2VydmVyKHBpZF90IHBpZCkKK3sKKyAgIGlmIChhdHRhY2gocGlkKSAhPSBUcnVlKSB7CisgICAgICByZXR1cm4gRmFsc2U7CisgICB9CisKKyAgIHByZ3JlZ3NldF90IHJlZ3M7CisgICBpZiAoZ2V0X3JlZ3MocGlkLCAmcmVncykgIT0gVHJ1ZSkgeworICAgICAgZGV0YWNoKHBpZCk7CisgICAgICByZXR1cm4gRmFsc2U7CisgICB9CisKKyAgIGlmIChzZXR1cF9zdGFja19mcmFtZShwaWQsICZyZWdzKSAhPSBUcnVlKSB7CisgICAgICBkZXRhY2gocGlkKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgaWRfdCBhZ2VudF9sd3BpZDsKKyAgIGlmIChpbnZva2VfYWdlbnQocGlkLCAmcmVncywgJmFnZW50X2x3cGlkKSAhPSBUcnVlKSB7CisgICAgICBkZXRhY2gocGlkKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgaWYgKHdhaXRfZm9yX2FnZW50X2V4aXQocGlkLCBhZ2VudF9sd3BpZCkgIT0gVHJ1ZSkgeworICAgICAgZGV0YWNoKHBpZCk7CisgICAgICByZXR1cm4gRmFsc2U7CisgICB9CisKKyAgIGRldGFjaChwaWQpOworICAgcmV0dXJuIFRydWU7Cit9CisKK3ZvaWQgaW52b2tlcl9jbGVhbnVwX3Jlc3RvcmVfYW5kX2RldGFjaCh2b2lkICp2X3BpZCkKK3sKKyAgIGRldGFjaCgqKGludCAqKSB2X3BpZCk7Cit9CisKK3ZvaWQgaW52b2tlcl9yZXN0cmljdGlvbnNfbXNnKHZvaWQpCit7Cit9CisKK3ZvaWQgaW52b2tlcl92YWxncmluZF9keWluZyh2b2lkKQoreworfQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3ZnZGIuYyBiL2NvcmVncmluZC92Z2RiLmMKaW5kZXggYmNmYjZjMy4uZDM1ZDViMiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3ZnZGIuYworKysgYi9jb3JlZ3JpbmQvdmdkYi5jCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMS0yMDEzIFBoaWxpcHBlIFdhcm9xdWllcnMKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBoaWxpcHBlIFdhcm9xdWllcnMKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTI5MCw3ICsyOTAsNyBAQAogICAgICAgICAgICAgICAgbGFzdCBpbnZva2UuICovCiAgICAgICAgICAgICBpZiAoaW52b2tlZF93cml0dGVuICE9IHdyaXR0ZW5fYnlfdmdkYl9iZWZvcmVfc2xlZXApIHsKICAgICAgICAgICAgICAgIGlmIChpbnZva2VyX2ludm9rZV9nZGJzZXJ2ZXIocGlkKSkgewotICAgICAgICAgICAgICAgICAgLyogSWYgaW52b2tlIHN1Y2Nlc2Z1bCwgbm8gbmVlZCB0byBpbnZva2UgYWdhaW4KKyAgICAgICAgICAgICAgICAgIC8qIElmIGludm9rZSBzdWNjZXNzZnVsLCBubyBuZWVkIHRvIGludm9rZSBhZ2FpbgogICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBzYW1lIHZhbHVlIG9mIHdyaXR0ZW5fYnlfdmdkYl9iZWZvcmVfc2xlZXAuICovCiAgICAgICAgICAgICAgICAgICBpbnZva2VkX3dyaXR0ZW4gPSB3cml0dGVuX2J5X3ZnZGJfYmVmb3JlX3NsZWVwOwogICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZWdyaW5kL3ZnZGIuaCBiL2NvcmVncmluZC92Z2RiLmgKaW5kZXggNGY5MDFiOS4uNmQ0YzA4MSAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3ZnZGIuaAorKysgYi9jb3JlZ3JpbmQvdmdkYi5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMS0yMDEzIFBoaWxpcHBlIFdhcm9xdWllcnMKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBoaWxpcHBlIFdhcm9xdWllcnMKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RhcndpbjExLnN1cHAgYi9kYXJ3aW4xMS5zdXBwCmluZGV4IDNkYzNjYjQuLmYyZmQ2ZjUgMTAwNjQ0Ci0tLSBhL2RhcndpbjExLnN1cHAKKysrIGIvZGFyd2luMTEuc3VwcApAQCAtNjUsNiArNjUsMTYgQEAKICAgIGZ1bjpwdGhyZWFkX211dGV4X2xvY2sKIH0KIAoreworICAgT1NYMTA3OjEwLUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IHJlYWNoYWJsZQorICAgZnVuOj9hbGxvYworICAgLi4uCisgICBmdW46bGliU3lzdGVtX2luaXRpYWxpemVyCisgICAuLi4KK30KKwogIyMjIyMjIyMjIyMjIyMjIwogIyBNb3JlIE9TWCAxMC43LjIgc3VwcHMgZnJvbSBzdGFydHVwIG9mIEZpcmVmb3gsIGZvciByZXBvcnRzCiAjIHRoYXQgbG9vayBsaWtlIHRoZXkgYXJlIGluIHRoZSBPU1ggc3lzdGVtIGxpYnJhcmllcwpAQCAtMjA3LDYgKzIxNywxMyBAQAogICAgZnVuOl9fc2V0ZW52CiB9CiAKKyMgU2VlIGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY1MjgKK3sKKyAgIG1hY29zLV9fcHRocmVhZF9yd2xvY2tfaW5pdC1zZWUtb3VyLWJ1Zy0xOTY1MjgKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIGZ1bjpwdGhyZWFkX3J3bG9ja19pbml0Cit9CisKICN7CiAjICAgbGliU3lzdGVtLWtleW1nci1sZWFrLWF0LWV4aXQKICMgICBNZW1jaGVjazpMZWFrCmRpZmYgLS1naXQgYS9kYXJ3aW4xNS5zdXBwIGIvZGFyd2luMTUuc3VwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzQ1Y2YwCi0tLSAvZGV2L251bGwKKysrIGIvZGFyd2luMTUuc3VwcApAQCAtMCwwICsxLDc2MSBAQAorCisjIFN1cHByZXNzaW9ucyBmb3IgRGFyd2luIDE1LnggLyBNYWMgT1MgWCAxMC4xMSBFbCBDYXBpdGFuCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyBMZWFrcy4gIEZvciBvdGhlciBzdHVmZiBzZWUgYmVsb3cuCisKK3sKKyAgIE9TWDEwMTE6MS1MZWFrCisgICBNZW1jaGVjazpMZWFrCisgICBtYXRjaC1sZWFrLWtpbmRzOiBwb3NzaWJsZQorICAgZnVuOm1hbGxvY196b25lXz9hbGxvYworICAgLi4uCisgICBmdW46X3JlYWRfaW1hZ2VzCit9CisKK3sKKyAgIE9TWDEwMTE6Mi1MZWFrCisgICBNZW1jaGVjazpMZWFrCisgICBtYXRjaC1sZWFrLWtpbmRzOiBkZWZpbml0ZQorICAgZnVuOm1hbGxvY196b25lXz9hbGxvYworICAgLi4uCisgICBmdW46X3JlYWRfaW1hZ2VzCit9CisKK3sKKyAgIE9TWDEwMTE6My1MZWFrCisgICBNZW1jaGVjazpMZWFrCisgICBtYXRjaC1sZWFrLWtpbmRzOiBkZWZpbml0ZQorICAgZnVuOm1hbGxvY196b25lXz9hbGxvYworICAgZnVuOnJlY3Vyc2l2ZV9tdXRleF9pbml0CisgICAuLi4KKyAgIGZ1bjpfb3Nfb2JqZWN0X2luaXQKKyAgIGZ1bjpsaWJkaXNwYXRjaF9pbml0CisgICBmdW46bGliU3lzdGVtX2luaXRpYWxpemVyCisgICAuLi4KK30KKworeworICAgT1NYMTAxMTo0LUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIGZ1bjptYWxsb2Nfem9uZV8/YWxsb2MKKyAgIC4uLgorICAgZnVuOmR5bGRfcmVnaXN0ZXJfaW1hZ2Vfc3RhdGVfY2hhbmdlX2hhbmRsZXIKKyAgIC4uLgorfQorCit7CisgICBPU1gxMDExOjUtTGVhaworICAgTWVtY2hlY2s6TGVhaworICAgbWF0Y2gtbGVhay1raW5kczogcmVhY2hhYmxlCisgICBmdW46P2FsbG9jCisgICAuLi4KKyAgIGZ1bjpkeWxkX3JlZ2lzdGVyX2ltYWdlX3N0YXRlX2NoYW5nZV9oYW5kbGVyCisgICAuLi4KK30KKworeworICAgT1NYMTAxMTo2LUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IHJlYWNoYWJsZQorICAgZnVuOm1hbGxvY196b25lXz9hbGxvYworICAgLi4uCisgICBmdW46bWFwX2ltYWdlc19ub2xvY2sKKyAgIGZ1bjptYXBfMl9pbWFnZXMKKyAgIC4uLgorfQorCit7CisgICBPU1gxMDExOjctTGVhaworICAgTWVtY2hlY2s6TGVhaworICAgbWF0Y2gtbGVhay1raW5kczogcG9zc2libGUKKyAgIGZ1bjptYWxsb2Nfem9uZV8/YWxsb2MKKyAgIC4uLgorICAgZnVuOm1hcF9pbWFnZXNfbm9sb2NrCisgICBmdW46bWFwXzJfaW1hZ2VzCisgICAuLi4KK30KKworeworICAgT1NYMTAxMTo4LUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IGRlZmluaXRlCisgICBmdW46P2FsbG9jCisgICAuLi4KKyAgIGZ1bjpsaWJTeXN0ZW1faW5pdGlhbGl6ZXIKKyAgIC4uLgorfQorCit7CisgICBPU1gxMDExOjktTGVhaworICAgTWVtY2hlY2s6TGVhaworICAgbWF0Y2gtbGVhay1raW5kczogcmVhY2hhYmxlCisgICBmdW46bWFsbG9jX3pvbmVfP2FsbG9jCisgICAuLi4KKyAgIGZ1bjpsaWJTeXN0ZW1faW5pdGlhbGl6ZXIKKyAgIC4uLgorfQorCit7CisgICBPU1gxMDExOjEwLUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IHJlYWNoYWJsZQorICAgZnVuOj9hbGxvYworICAgLi4uCisgICBmdW46bGliU3lzdGVtX2luaXRpYWxpemVyCisgICAuLi4KK30KKworI3sKKyMgICBPU1gxMDExOjExLUxlYWsKKyMgICBNZW1jaGVjazpMZWFrCisjICAgbWF0Y2gtbGVhay1raW5kczogZGVmaW5pdGUKKyMgICBmdW46bWFsbG9jCisjICAgZnVuOmN1cnJlbnRsb2NhbGUKKyN9CisjCisjeworIyAgIE9TWDEwMTE6MTItTGVhaworIyAgIE1lbWNoZWNrOkxlYWsKKyMgICBtYXRjaC1sZWFrLWtpbmRzOiBwb3NzaWJsZQorIyAgIGZ1bjptYWxsb2MKKyMgICBmdW46dHpzZXR3YWxsX2Jhc2ljCisjICAgZnVuOl9zdF90enNldF9iYXNpYworI30KKworeworICAgT1NYMTAxMToxMy1MZWFrCisgICBNZW1jaGVjazpMZWFrCisgICBtYXRjaC1sZWFrLWtpbmRzOiByZWFjaGFibGUKKyAgIGZ1bjptYWxsb2Nfem9uZV9tZW1hbGlnbgorICAgLi4uCisgICBmdW46X1pONGR5bGQyNGluaXRpYWxpemVNYWluRXhlY3V0YWJsZUV2CisgICAuLi4KK30KKworeworICAgT1NYMTAxMToxNC1MZWFrCisgICBNZW1jaGVjazpMZWFrCisgICBtYXRjaC1sZWFrLWtpbmRzOiByZWFjaGFibGUKKyAgIGZ1bjo/YWxsb2MKKyAgIC4uLgorICAgZnVuOmxpYlN5c3RlbV9hdGZvcmtfY2hpbGQKKyAgIC4uLgorfQorCit7CisgICBPU1gxMDExOjE1LUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IHJlYWNoYWJsZQorICAgZnVuOm1hbGxvYworICAgZnVuOl9fc21ha2VidWYKKyAgIC4uLgorICAgZnVuOnByaW50ZgorICAgLi4uCit9CisKK3sKKyAgIE9TWDEwMTE6MTYtTGVhaworICAgTWVtY2hlY2s6TGVhaworICAgbWF0Y2gtbGVhay1raW5kczogcG9zc2libGUKKyAgIGZ1bjo/YWxsb2MKKyAgIC4uLgorICAgZnVuOl9yZWFkX2ltYWdlcworfQorCit7CisgICBPU1gxMDExOjE3LUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IHJlYWNoYWJsZQorICAgZnVuOj9hbGxvYworICAgLi4uCisgICBmdW46X3JlYWRfaW1hZ2VzCit9CisKK3sKKyAgIE9TWDEwMTE6MTgtTGVhaworICAgTWVtY2hlY2s6TGVhaworICAgbWF0Y2gtbGVhay1raW5kczogcmVhY2hhYmxlCisgICBmdW46bWFsbG9jX3pvbmVfP2FsbG9jCisgICAuLi4KKyAgIGZ1bjpfcmVhZF9pbWFnZXMKK30KKworeworICAgT1NYMTAxMToxOS1MZWFrCisgICBNZW1jaGVjazpMZWFrCisgICBtYXRjaC1sZWFrLWtpbmRzOiBwb3NzaWJsZQorICAgZnVuOm1hbGxvY196b25lXz9hbGxvYworICAgLi4uCisgICBmdW46Kk5YKk1hcCoKKyAgIGZ1bjoqTlgqTWFwKgorfQorCit7CisgICBPU1gxMDExOjIwLUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IGluZGlyZWN0CisgICBmdW46P2FsbG9jCisgICAuLi4KKyAgIGZ1bjpsaWJTeXN0ZW1faW5pdGlhbGl6ZXIKKyAgIC4uLgorfQorCit7CisgICBPU1gxMDExOjIxLUxlYWsKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IGRlZmluaXRlCisgICBmdW46bWFsbG9jX3pvbmVfbWVtYWxpZ24KKyAgIC4uLgorICAgZnVuOl9aTjRkeWxkMjRpbml0aWFsaXplTWFpbkV4ZWN1dGFibGVFdgorICAgLi4uCit9CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjIE5vbi1sZWFrIGVycm9ycworCisjI3sKKyMjICAgT1NYMTAxMTpDb3JlRm91bmRhdGlvbi0xCisjIyAgIE1lbWNoZWNrOkNvbmQKKyMjICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCisjIyAgIG9iajoqQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrKkNvcmVGb3VuZGF0aW9uKgorIyMgICBvYmo6KkNvcmVGb3VuZGF0aW9uLmZyYW1ld29yaypDb3JlRm91bmRhdGlvbioKKyMjfQorCit7CisgICBPU1gxMDExOkNvcmVGb3VuZGF0aW9uLTIKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrKkNvcmVGb3VuZGF0aW9uKgorICAgb2JqOipsaWJkaXNwYXRjaC5keWxpYioKKyAgIG9iajoqbGliZGlzcGF0Y2guZHlsaWIqCit9CisKK3sKKyAgIE9TWDEwMTE6Q29yZUZvdW5kYXRpb24tMworICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCisgICBvYmo6KkNvcmVGb3VuZGF0aW9uLmZyYW1ld29yaypDb3JlRm91bmRhdGlvbioKKyAgIG9iajoqRm91bmRhdGlvbi5mcmFtZXdvcmsqRm91bmRhdGlvbioKK30KKworeworICAgT1NYMTAxMTpDb3JlRm91bmRhdGlvbi00CisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KkNvcmVGb3VuZGF0aW9uLmZyYW1ld29yaypDb3JlRm91bmRhdGlvbioKKyAgIG9iajoqQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrKkNvcmVGb3VuZGF0aW9uKgorICAgb2JqOipTeXN0ZW1Db25maWd1cmF0aW9uLmZyYW1ld29yaypTeXN0ZW1Db25maWd1cmF0aW9uKgorfQorCit7CisgICBPU1gxMDExOkNvcmVGb3VuZGF0aW9uLTUKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrKkNvcmVGb3VuZGF0aW9uKgorICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCisgICBvYmo6KkhJU2VydmljZXMuZnJhbWV3b3JrKkhJU2VydmljZXMqCit9CisKK3sKKyAgIE9TWDEwMTE6Q29yZUZvdW5kYXRpb24tNgorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCisgICBvYmo6KlN5c3RlbUNvbmZpZ3VyYXRpb24uZnJhbWV3b3JrKlN5c3RlbUNvbmZpZ3VyYXRpb24qCisgICBvYmo6KlN5c3RlbUNvbmZpZ3VyYXRpb24uZnJhbWV3b3JrKlN5c3RlbUNvbmZpZ3VyYXRpb24qCit9CisKK3sKKyAgIE9TWDEwMTE6Q29yZUZvdW5kYXRpb24tNworICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCisgICBvYmo6KlN5c3RlbUNvbmZpZ3VyYXRpb24uZnJhbWV3b3JrKlN5c3RlbUNvbmZpZ3VyYXRpb24qCisgICBvYmo6KkNvcmVGb3VuZGF0aW9uLmZyYW1ld29yaypDb3JlRm91bmRhdGlvbioKK30KKworeworICAgT1NYMTAxMTpDb3JlRm91bmRhdGlvbi04CisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KkNvcmVGb3VuZGF0aW9uLmZyYW1ld29yaypDb3JlRm91bmRhdGlvbioKKyAgIG9iajoqSU9LaXQuZnJhbWV3b3JrKklPS2l0KgorfQorCit7CisgICBPU1gxMDExOkNvcmVGb3VuZGF0aW9uLTkKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrKkNvcmVGb3VuZGF0aW9uKgorICAgb2JqOipGb3VuZGF0aW9uLmZyYW1ld29yaypGb3VuZGF0aW9uKgorICAgb2JqOipBcHBLaXQuZnJhbWV3b3JrKkFwcEtpdCoKK30KKworeworICAgT1NYMTAxMTpDb3JlRm91bmRhdGlvbi0xMAorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCisgICBvYmo6KkhJVG9vbGJveC5mcmFtZXdvcmsqSElUb29sYm94KgorICAgb2JqOipISVRvb2xib3guZnJhbWV3b3JrKkhJVG9vbGJveCoKK30KKworeworICAgT1NYMTAxMTpDb3JlRm91bmRhdGlvbi0xMQorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCisgICBvYmo6KkFFLmZyYW1ld29yaypBRSoKKyAgIG9iajoqQUUuZnJhbWV3b3JrKkFFKgorfQorCit7CisgICBPU1gxMDExOkNvcmVGb3VuZGF0aW9uLTEyCisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KkNvcmVGb3VuZGF0aW9uLmZyYW1ld29yaypDb3JlRm91bmRhdGlvbioKKyAgIG9iajoqQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrKkNvcmVGb3VuZGF0aW9uKgorICAgb2JqOipISVRvb2xib3guZnJhbWV3b3JrKkhJVG9vbGJveCoKK30KKworeworICAgT1NYMTAxMTpDb3JlRm91bmRhdGlvbi0xMworICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCisgICBvYmo6KkNvcmVGb3VuZGF0aW9uLmZyYW1ld29yaypDb3JlRm91bmRhdGlvbioKKyAgIG9iajoqQUUuZnJhbWV3b3JrKkFFKgorfQorCit7CisgICBPU1gxMDExOkFwcEtpdC0xCisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KkFwcEtpdC5mcmFtZXdvcmsqQXBwS2l0KgorICAgb2JqOipBcHBLaXQuZnJhbWV3b3JrKkFwcEtpdCoKKyAgIG9iajoqQXBwS2l0LmZyYW1ld29yaypBcHBLaXQqCit9CisKK3sKKyAgIE9TWDEwMTE6QXBwS2l0LTIKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQXBwS2l0LmZyYW1ld29yaypBcHBLaXQqCisgICBvYmo6KkFwcEtpdC5mcmFtZXdvcmsqQXBwS2l0KgorICAgb2JqOipsaWJkaXNwYXRjaC5keWxpYioKK30KKworI3sKKyMgICBPU1gxMDExOkFwcEtpdC0zCisjICAgTWVtY2hlY2s6Q29uZAorIyAgIG9iajoqQXBwS2l0LmZyYW1ld29yaypBcHBLaXQqCisjICAgb2JqOipsaWJkaXNwYXRjaC5keWxpYioKKyMgICBvYmo6KmxpYmRpc3BhdGNoLmR5bGliKgorI30KKworIyN7CisjIyAgIE9TWDEwMTE6QXBwS2l0LTQKKyMjICAgTWVtY2hlY2s6Q29uZAorIyMgICBvYmo6KkFwcEtpdC5mcmFtZXdvcmsqQXBwS2l0KgorIyMgICBvYmo6KkFwcEtpdC5mcmFtZXdvcmsqQXBwS2l0KgorIyMgICBvYmo6KkNvcmVGb3VuZGF0aW9uLmZyYW1ld29yaypDb3JlRm91bmRhdGlvbioKKyMjfQorCit7CisgICBPU1gxMDExOkFwcEtpdC01CisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KkFwcEtpdC5mcmFtZXdvcmsqQXBwS2l0KgorICAgb2JqOipBcHBLaXQuZnJhbWV3b3JrKkFwcEtpdCoKKyAgIG9iajoqRm91bmRhdGlvbi5mcmFtZXdvcmsqRm91bmRhdGlvbioKK30KKworeworICAgT1NYMTAxMTpBcHBLaXQtNgorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipBcHBLaXQuZnJhbWV3b3JrKkFwcEtpdCoKKyAgIG9iajoqRm91bmRhdGlvbi5mcmFtZXdvcmsqRm91bmRhdGlvbioKKyAgIG9iajoqQXBwS2l0LmZyYW1ld29yaypBcHBLaXQqCit9CisKK3sKKyAgIE9TWDEwMTE6QXBwS2l0LTcKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQXBwS2l0LmZyYW1ld29yaypBcHBLaXQqCisgICBvYmo6KmxpYmRpc3BhdGNoLmR5bGliKgorICAgb2JqOipsaWJkaXNwYXRjaC5keWxpYioKK30KKworeworICAgT1NYMTAxMTpBcHBLaXQtOAorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipBcHBLaXQuZnJhbWV3b3JrKkFwcEtpdCoKKyAgIG9iajoqRm91bmRhdGlvbi5mcmFtZXdvcmsqRm91bmRhdGlvbioKKyAgIG9iajoqRm91bmRhdGlvbi5mcmFtZXdvcmsqRm91bmRhdGlvbioKK30KKworeworICAgT1NYMTAxMTpDb2xvclN5bmMtMQorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipDb2xvclN5bmMuZnJhbWV3b3JrKkNvbG9yU3luYyoKKyAgIG9iajoqQ29sb3JTeW5jLmZyYW1ld29yaypDb2xvclN5bmMqCisgICBvYmo6KkNvbG9yU3luYy5mcmFtZXdvcmsqQ29sb3JTeW5jKgorfQorCisjeworIyAgIE9TWDEwMTE6Q29sb3JTeW5jLTIKKyMgICBNZW1jaGVjazpWYWx1ZTgKKyMgICBvYmo6KkNvbG9yU3luYy5mcmFtZXdvcmsqQ29sb3JTeW5jKgorIyAgIG9iajoqQ29sb3JTeW5jLmZyYW1ld29yaypDb2xvclN5bmMqCisjICAgb2JqOipDb2xvclN5bmMuZnJhbWV3b3JrKkNvbG9yU3luYyoKKyN9CisKK3sKKyAgIE9TWDEwMTE6Q29yZUdyYXBoaWNzLTEKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQ29yZUdyYXBoaWNzLmZyYW1ld29yaypDb3JlR3JhcGhpY3MqCisgICBvYmo6KkNvcmVHcmFwaGljcy5mcmFtZXdvcmsqQ29yZUdyYXBoaWNzKgorfQorCisjeworIyAgIE9TWDEwMTE6Q29yZUdyYXBoaWNzLTIKKyMgICBNZW1jaGVjazpWYWx1ZTgKKyMgICBvYmo6KkNvcmVHcmFwaGljcy5mcmFtZXdvcmsqQ29yZUdyYXBoaWNzKgorIyAgIG9iajoqQ29yZUdyYXBoaWNzLmZyYW1ld29yaypDb3JlR3JhcGhpY3MqCisjICAgb2JqOipDb3JlR3JhcGhpY3MuZnJhbWV3b3JrKkNvcmVHcmFwaGljcyoKKyN9CisKK3sKKyAgIE9TWDEwMTE6Q29yZUdyYXBoaWNzLTMKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQ29yZUdyYXBoaWNzLmZyYW1ld29yaypDb3JlR3JhcGhpY3MqCisgICBvYmo6KkNvcmVHcmFwaGljcy5mcmFtZXdvcmsqbGliUklQKgorICAgb2JqOipDb3JlR3JhcGhpY3MuZnJhbWV3b3JrKmxpYlJJUCoKK30KKworI3sKKyMgICBPU1gxMDExOkNvcmVHcmFwaGljcy00CisjICAgTWVtY2hlY2s6Q29uZAorIyAgIG9iajoqQ29yZUdyYXBoaWNzLmZyYW1ld29yaypDb3JlR3JhcGhpY3MqCisjICAgb2JqOipDb3JlR3JhcGhpY3MuZnJhbWV3b3JrKkNvcmVHcmFwaGljcyoKKyMgICBvYmo6KkNvcmVHcmFwaGljcy5mcmFtZXdvcmsqbGliUklQKgorI30KKworeworICAgT1NYMTAxMTpDb3JlR3JhcGhpY3MtNQorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipDb3JlR3JhcGhpY3MuZnJhbWV3b3JrKkNvcmVHcmFwaGljcyoKKyAgIG9iajoqbGliZGlzcGF0Y2guZHlsaWIqCisgICBvYmo6KmxpYmRpc3BhdGNoLmR5bGliKgorfQorCisjeworIyAgIE9TWDEwMTE6Q29yZUdyYXBoaWNzLTYKKyMgICBNZW1jaGVjazpDb25kCisjICAgb2JqOipDb3JlR3JhcGhpY3MuZnJhbWV3b3JrKkNvcmVHcmFwaGljcyoKKyMgICBvYmo6KkNvcmVHcmFwaGljcy5mcmFtZXdvcmsqQ29yZUdyYXBoaWNzKgorIyAgIG9iajoqSElUb29sYm94LmZyYW1ld29yaypISVRvb2xib3gqCisjfQorCit7CisgICBPU1gxMDExOkhJU2VydmljZXMtMQorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipISVNlcnZpY2VzLmZyYW1ld29yaypISVNlcnZpY2VzKgorICAgb2JqOipISVRvb2xib3guZnJhbWV3b3JrKkhJVG9vbGJveCoKKyAgIG9iajoqSElUb29sYm94LmZyYW1ld29yaypISVRvb2xib3gqCit9CisKK3sKKyAgIE9TWDEwMTE6TGF1bmNoU2VydmljZXMtMQorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipMYXVuY2hTZXJ2aWNlcy5mcmFtZXdvcmsqTGF1bmNoU2VydmljZXMqCisgICBvYmo6KkFwcEtpdC5mcmFtZXdvcmsqQXBwS2l0KgorICAgb2JqOipBcHBLaXQuZnJhbWV3b3JrKkFwcEtpdCoKK30KKworeworICAgT1NYMTAxMTpMYXVuY2hTZXJ2aWNlcy0yCisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KkxhdW5jaFNlcnZpY2VzLmZyYW1ld29yaypMYXVuY2hTZXJ2aWNlcyoKKyAgIG9iajoqbGliZGlzcGF0Y2guZHlsaWIqCisgICBvYmo6KmxpYmRpc3BhdGNoLmR5bGliKgorfQorCit7CisgICBPU1gxMDExOlF1YXJ0ekNvcmUtMQorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipRdWFydHpDb3JlLmZyYW1ld29yaypRdWFydHpDb3JlCisgICBvYmo6KlF1YXJ0ekNvcmUuZnJhbWV3b3JrKlF1YXJ0ekNvcmUKKyAgIG9iajoqUXVhcnR6Q29yZS5mcmFtZXdvcmsqUXVhcnR6Q29yZQorfQorCisjeworIyAgIE9TWDEwMTE6dkltYWdlLTEKKyMgICBNZW1jaGVjazpDb25kCisjICAgb2JqOip2SW1hZ2UuZnJhbWV3b3JrKnZJbWFnZSoKKyMgICBvYmo6KnZJbWFnZS5mcmFtZXdvcmsqdkltYWdlKgorIyAgIG9iajoqQ29yZUdyYXBoaWNzLmZyYW1ld29yaypDb3JlR3JhcGhpY3MqCisjfQorCit7CisgICBPU1gxMDExOnpsaWItQworICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOi91c3IvbGliL2xpYnouKmR5bGliCisgICBvYmo6L3Vzci9saWIvbGliei4qZHlsaWIKK30KKworeworICAgT1NYMTAxMTp6bGliLTgKKyAgIE1lbWNoZWNrOlZhbHVlOAorICAgb2JqOi91c3IvbGliL2xpYnouKmR5bGliCisgICBvYmo6L3Vzci9saWIvbGliei4qZHlsaWIKK30KKworeworICAgT1NYMTAxMTozMmJpdDpfbGlieHBjX2luaXRpYWxpemVyCisgICBNZW1jaGVjazpDb25kCisgICBvYmo6L3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jLmR5bGliCisgICBvYmo6L3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jLmR5bGliCisgICBmdW46X2xpYnhwY19pbml0aWFsaXplcgorICAgb2JqOi91c3IvbGliL2xpYlN5c3RlbS5CLmR5bGliCisgICBmdW46KkltYWdlTG9hZGVyTWFjaE8qZG9Nb2RJbml0RnVuY3Rpb25zKgorfQorCit7CisgICBPU1gxMDExOmR5bGQtMQorICAgTWVtY2hlY2s6Q29uZAorICAgZnVuOipJbWFnZUxvYWRlcip3ZWFrQmluZCoKKyAgIGZ1bjoqSW1hZ2VMb2FkZXIqbGluayoKKyAgIGZ1bjoqZHlsZCpsaW5rKgorfQorCit7CisgICBPU1gxMDExOmR5bGQtMgorICAgTWVtY2hlY2s6Q29uZAorICAgZnVuOmV4aXQKKyAgIG9iajoqbGliZHlsZCpkeWxpYioKK30KKworeworICAgT1NYMTAxMTpsaWJzeXN0ZW1fa2VybmVsLTEKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqbGlic3lzdGVtX2tlcm5lbCpkeWxpYioKKyAgIG9iajoqbGlic3lzdGVtX2tlcm5lbCpkeWxpYioKKyAgIG9iajoqQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrKkNvcmVGb3VuZGF0aW9uKgorfQorCit7CisgICBPU1gxMDExOkNvcmVTZXJ2aWNlc0ludGVybmFsLTEKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQ29yZVNlcnZpY2VzSW50ZXJuYWwuZnJhbWV3b3JrKkNvcmVTZXJ2aWNlc0ludGVybmFsKgorICAgb2JqOipDb3JlU2VydmljZXMuZnJhbWV3b3JrKkxhdW5jaFNlcnZpY2VzKgorICAgb2JqOipDb3JlU2VydmljZXMuZnJhbWV3b3JrKkxhdW5jaFNlcnZpY2VzKgorfQorCit7CisgICBPU1gxMDExOkNvcmVTZXJ2aWNlc0ludGVybmFsLTIKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQ29yZVNlcnZpY2VzSW50ZXJuYWwuZnJhbWV3b3JrKkNvcmVTZXJ2aWNlc0ludGVybmFsKgorICAgb2JqOipDb3JlU2VydmljZXNJbnRlcm5hbC5mcmFtZXdvcmsqQ29yZVNlcnZpY2VzSW50ZXJuYWwqCisgICBvYmo6KkNvcmVTZXJ2aWNlc0ludGVybmFsLmZyYW1ld29yaypDb3JlU2VydmljZXNJbnRlcm5hbCoKK30KKworeworICAgT1NYMTAxMTpDb3JlU2VydmljZXNJbnRlcm5hbC0zCisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KkNvcmVTZXJ2aWNlc0ludGVybmFsLmZyYW1ld29yaypDb3JlU2VydmljZXNJbnRlcm5hbCoKKyAgIG9iajoqQ29yZVNlcnZpY2VzSW50ZXJuYWwuZnJhbWV3b3JrKkNvcmVTZXJ2aWNlc0ludGVybmFsKgorICAgb2JqOipDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsqQ29yZUZvdW5kYXRpb24qCit9CisKK3sKKyAgIE9TWDEwMTE6Q29yZVNlcnZpY2VzLTEKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqQ29yZVNlcnZpY2VzLmZyYW1ld29yaypMYXVuY2hTZXJ2aWNlcyoKKyAgIG9iajoqQ29yZVNlcnZpY2VzLmZyYW1ld29yaypMYXVuY2hTZXJ2aWNlcyoKKyAgIG9iajoqQ29yZVNlcnZpY2VzLmZyYW1ld29yaypMYXVuY2hTZXJ2aWNlcyoKK30KKworIyN7CisjIyAgIE9TWDEwMTE6bGlic3lzdGVtX3B0aHJlYWQtMQorIyMgICBNZW1jaGVjazpDb25kCisjIyAgIG9iajoqbGlic3lzdGVtX3B0aHJlYWQqZHlsaWIqCisjIyAgIG9iajoqSW1hZ2VJTy5mcmFtZXdvcmsqSW1hZ2VJTyoKKyMjICAgb2JqOipJbWFnZUlPLmZyYW1ld29yaypJbWFnZUlPKgorIyN9CisKK3sKKyAgIE9TWDEwMTE6QXBwbGljYXRpb25TZXJ2aWNlcy0xCisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KkFwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrKkFUUyoKKyAgIG9iajoqbGlic3lzdGVtX3B0aHJlYWQqZHlsaWIqCisgICBvYmo6KmxpYnN5c3RlbV9wbGF0Zm9ybSpkeWxpYioKK30KKworeworICAgT1NYMTAxMTpISVRvb2xib3gtMQorICAgTWVtY2hlY2s6Q29uZAorICAgb2JqOipISVRvb2xib3guZnJhbWV3b3JrKkhJVG9vbGJveCoKKyAgIG9iajoqSElUb29sYm94LmZyYW1ld29yaypISVRvb2xib3gqCisgICBvYmo6KkhJVG9vbGJveC5mcmFtZXdvcmsqSElUb29sYm94KgorfQorCit7CisgICBPU1gxMDExOlJhd0NhbWVyYS0xCisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KlJhd0NhbWVyYS5idW5kbGUqUmF3Q2FtZXJhKgorICAgb2JqOipsaWJkaXNwYXRjaC5keWxpYioKKyAgIG9iajoqbGliZGlzcGF0Y2guZHlsaWIqCit9CisKKyMjeworIyMgICBPU1gxMDExOkNvcmVJbWFnZS0xCisjIyAgIE1lbWNoZWNrOkNvbmQKKyMjICAgb2JqOipDb3JlSW1hZ2UuZnJhbWV3b3JrKkNvcmVJbWFnZSoKKyMjICAgb2JqOipDb3JlSW1hZ2UuZnJhbWV3b3JrKkNvcmVJbWFnZSoKKyMjICAgb2JqOipDb3JlSW1hZ2UuZnJhbWV3b3JrKkNvcmVJbWFnZSoKKyMjfQorCisjI3sKKyMjICAgT1NYMTAxMTpzdHJuY3B5LTEKKyMjICAgTWVtY2hlY2s6Q29uZAorIyMgICBmdW46c3RybmNweQorIyMgICBvYmo6KkNvcmVTZXJ2aWNlc0ludGVybmFsLmZyYW1ld29yaypDb3JlU2VydmljZXNJbnRlcm5hbAorIyMgICBvYmo6KkNvcmVTZXJ2aWNlc0ludGVybmFsLmZyYW1ld29yaypDb3JlU2VydmljZXNJbnRlcm5hbAorIyN9CisKK3sKKyAgIE9TWDEwMTE6cHRocmVhZF9yd2xvY2tfaW5pdAorICAgTWVtY2hlY2s6Q29uZAorICAgZnVuOnB0aHJlYWRfcndsb2NrX2luaXQKKyAgIG9iajoqSW1hZ2VJTy5mcmFtZXdvcmsqSW1hZ2VJTyoKKyAgIG9iajoqSW1hZ2VJTy5mcmFtZXdvcmsqSW1hZ2VJTyoKK30KKworeworICAgT1NYMTAxMTpDRkJhc2ljSGFzaAorICAgTWVtY2hlY2s6VmFsdWU4CisgICBmdW46KkNGQmFzaWNIYXNoKgorICAgZnVuOipDRioKK30KKworeworICAgT1NYMTAxMTpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci0xLUFkZHI4CisgICBNZW1jaGVjazpBZGRyOAorICAgb2JqOipBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci5idW5kbGUqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIqCisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKKyAgIG9iajoqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIuYnVuZGxlKkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyKgorfQoreworICAgT1NYMTAxMTpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci0xLUFkZHI4CisgICBNZW1jaGVjazpBZGRyNAorICAgb2JqOipBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci5idW5kbGUqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIqCisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKKyAgIG9iajoqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIuYnVuZGxlKkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyKgorfQorCit7CisgICBPU1gxMDExOkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLTItQWRkcjgKKyAgIE1lbWNoZWNrOkFkZHI4CisgICBmdW46KnBsYXRmb3JtX21lbW1vdmUqCisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKKyAgIG9iajoqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIuYnVuZGxlKkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyKgorfQoreworICAgT1NYMTAxMTpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci0yLUFkZHIyCisgICBNZW1jaGVjazpBZGRyMgorICAgZnVuOipwbGF0Zm9ybV9tZW1tb3ZlKgorICAgb2JqOipBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci5idW5kbGUqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIqCisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKK30KKworeworICAgT1NYMTAxMTpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci0zLUFkZHI4CisgICBNZW1jaGVjazpBZGRyOAorICAgZnVuOipwbGF0Zm9ybV9tZW1tb3ZlKgorICAgb2JqOipBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci5idW5kbGUqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIqCisgICBvYmo6KkdMRW5naW5lLmJ1bmRsZSpHTEVuZ2luZSoKK30KK3sKKyAgIE9TWDEwMTE6QXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXItMy1BZGRyMgorICAgTWVtY2hlY2s6QWRkcjIKKyAgIGZ1bjoqcGxhdGZvcm1fbWVtbW92ZSoKKyAgIG9iajoqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIuYnVuZGxlKkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyKgorICAgb2JqOipHTEVuZ2luZS5idW5kbGUqR0xFbmdpbmUqCit9Cit7CisgICBPU1gxMDExOkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLTMtQWRkcjEKKyAgIE1lbWNoZWNrOkFkZHIxCisgICBmdW46KnBsYXRmb3JtX21lbW1vdmUqCisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKKyAgIG9iajoqR0xFbmdpbmUuYnVuZGxlKkdMRW5naW5lKgorfQorCit7CisgICBPU1gxMDExOkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLTQKKyAgIE1lbWNoZWNrOkFkZHI4CisgICBmdW46KnBsYXRmb3JtX2J6ZXJvKgorICAgb2JqOipBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci5idW5kbGUqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIqCisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKK30KKworeworICAgT1NYMTAxMTpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci02LUFkZHI4CisgICBNZW1jaGVjazpBZGRyOAorICAgb2JqOipBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci5idW5kbGUqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIqCisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKKyAgIG9iajoqR0xFbmdpbmUuYnVuZGxlKkdMRW5naW5lKgorfQoreworICAgT1NYMTAxMTpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci02LUFkZHI0CisgICBNZW1jaGVjazpBZGRyNAorICAgb2JqOipBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlci5idW5kbGUqQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIqCisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKKyAgIG9iajoqR0xFbmdpbmUuYnVuZGxlKkdMRW5naW5lKgorfQorCit7CisgICBPU1gxMDExOkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLTcKKyAgIE1lbWNoZWNrOkFkZHI0CisgICBvYmo6KkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyLmJ1bmRsZSpBcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERyaXZlcioKKyAgIG9iajoqR0xFbmdpbmUuYnVuZGxlKkdMRW5naW5lKgorfQorCit7CisgICBPU1gxMDExOk9TQXRvbWljQWRkMzIKKyAgIE1lbWNoZWNrOkFkZHI0CisgICBmdW46Kk9TQXRvbWljQWRkMzIqCisgICBvYmo6KklPQWNjZWxlcmF0b3IuZnJhbWV3b3JrKklPQWNjZWxlcmF0b3IqCisgICBvYmo6KkdQVVN1cHBvcnQuZnJhbWV3b3JrKkdQVVN1cHBvcnRNZXJjdXJ5KgorfQorCit7CisgICBPU1gxMDExOklPQWNjZWxlcmF0b3ItMQorICAgTWVtY2hlY2s6QWRkcjQKKyAgIG9iajoqSU9BY2NlbGVyYXRvci5mcmFtZXdvcmsqSU9BY2NlbGVyYXRvcioKKyAgIG9iajoqR1BVU3VwcG9ydC5mcmFtZXdvcmsqR1BVU3VwcG9ydE1lcmN1cnkqCit9CisKK3sKKyAgIE9TWDEwMTE6bWFjaF9tc2dfdHJhcC0xCisgICBNZW1jaGVjazpQYXJhbQorICAgbXNnLT5kZXNjLnBvcnQubmFtZQorICAgZnVuOm1hY2hfbXNnX3RyYXAKKyAgIG9iajoqbGlic3lzdGVtX2tlcm5lbC5keWxpYioKKyAgIG9iajoqU3lzdGVtQ29uZmlndXJhdGlvbi5mcmFtZXdvcmsqU3lzdGVtQ29uZmlndXJhdGlvbioKK30KKworeworICAgT1NYMTAxMTptYWNoX21zZ190cmFwLTIKKyAgIE1lbWNoZWNrOlBhcmFtCisgICBtc2ctPmRlc2MucG9ydC5uYW1lCisgICBmdW46bWFjaF9tc2dfdHJhcAorICAgb2JqOipTeXN0ZW1Db25maWd1cmF0aW9uLmZyYW1ld29yaypTeXN0ZW1Db25maWd1cmF0aW9uKgorICAgb2JqOipTeXN0ZW1Db25maWd1cmF0aW9uLmZyYW1ld29yaypTeXN0ZW1Db25maWd1cmF0aW9uKgorfQorCisjIFNlZSBodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NTcyIGFib3V0IHRoaXM7ICBpdCdzCisjIHVuYXZvaWRhYmxlIGR1ZSB0byBCU0Qgc2V0ZW52KCkgc2VtYW50aWNzLgoreworICAgbWFjb3MtX19zZXRlbnYtbGVhay1zZWUtb3VyLWJ1Zy0xODg1NzIKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IGRlZmluaXRlCisgICBmdW46bWFsbG9jCisgICBmdW46X293bmVkX3B0cl9hbGxvYworICAgZnVuOnNldGVudgorfQorCisjIFNlZSBodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NTI4Cit7CittYWNvcy1fX3B0aHJlYWRfcndsb2NrX2luaXQtc2VlLW91ci1idWctMTk2NTI4CitNZW1jaGVjazpDb25kCitmdW46cHRocmVhZF9yd2xvY2tfaW5pdAorfQpkaWZmIC0tZ2l0IGEvZG9jcy9SRUFETUUgYi9kb2NzL1JFQURNRQppbmRleCAxNTVmZTVlLi4yZjRjNTdlIDEwMDY0NAotLS0gYS9kb2NzL1JFQURNRQorKysgYi9kb2NzL1JFQURNRQpAQCAtODEsNiArODEsMjIgQEAKIEJlbG93IGFyZSByYW5kb20gbm90ZXMgYW5kIHJlY29sbGVjdGlvbnMgYWJvdXQgaG93IHRvIGJ1aWxkIFBERiAvIFBTCiBkb2N1bWVudHMgZnJvbSB0aGUgWE1MIHNvdXJjZSBhdCB2YXJpb3VzIHRpbWVzIG9uIHZhcmlvdXMgTGludXggZGlzdHJvcy4KIAorTm90ZXMgW1NlcHQgMjAxNV0KKy0tLS0tLS0tLS0tLS0tLS0tCitGZWRvcmEgMjEgYW5kIDIyOiBIYWQgbXVjaG8gdHJvdWJsZSB3aXRoIGJ1aWxkaW5nIHRoZSBwcmludCBkb2NzIG9uCitGMjEvMjIgZXZlbiB3aXRoIHRoZSBbTWFyIDIwMTVdIHBhY2thZ2Ugc2V0IChvciBzb21ldGhpbmcgc2ltaWxhcmlzaCkKK2luc3RhbGxlZC4gIEV2ZW50dWFsbHkgaW5zdGFsbGVkICJwYXNzaXZldGV4IiBhbmQgdGhhdCBmaXhlcyB0aGUKK2ZhaWx1cmVzLgorCitJbnN0YWxsaW5nIHRoZSBwYWNrYWdlcyBiZWxvdyBvbiBGZWRvcmEgX21pZ2h0XyBnZXQgeW91IGEgd29ya2luZyBzZXR1cC4KK0Fsc28geW91IG5lZWQgdGhlIGVwc3RvcGRmLWJhc2Uuc3R5IGhhY2sgZGV0YWlsZWQgYmVsb3cuCisKKyAgdGV4bGl2ZS14bWx0ZXggdGV4bGl2ZS14bWx0ZXgtYmluIHRleGxpdmUteG1sdGV4LWRvYyB0ZXhsaXZlIGRibGF0ZXgKKyAgdGV4bGl2ZS14bWx0ZXggZG9jYm9vay1zdHlsZS14c2wgZG9jYm9vay1kdGRzIGRvY2Jvb2stc3R5bGUteHNsLm5vYXJjaAorICBkb2Nib29rLXNpbXBsZS5ub2FyY2ggZG9jYm9vay1zaW1wbGUubm9hcmNoIGRvY2Jvb2stc2xpZGVzLm5vYXJjaAorICBkb2Nib29rLXN0eWxlLWRzc3NsLm5vYXJjaCBkb2Nib29rLXV0aWxzLm5vYXJjaAorICBkb2Nib29rLXV0aWxzLXBkZi5ub2FyY2ggZG9jYm9vazUtc2NoZW1hcy5ub2FyY2gKKyAgZG9jYm9vazUtc3R5bGUteHNsLm5vYXJjaCBwYXNzaXZldGV4CiAKIE5vdGVzIFtNYXIgMjAxNV0KIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2RvY3MvaW50ZXJuYWxzLzNfMTBfQlVHU1RBVFVTLnR4dCBiL2RvY3MvaW50ZXJuYWxzLzNfMTBfQlVHU1RBVFVTLnR4dAppbmRleCBmZTVmNTE2Li43NjhhNzg1IDEwMDY0NAotLS0gYS9kb2NzL2ludGVybmFscy8zXzEwX0JVR1NUQVRVUy50eHQKKysrIGIvZG9jcy9pbnRlcm5hbHMvM18xMF9CVUdTVEFUVVMudHh0CkBAIC00LDQ2ICs0LDMzIEBACiAKID09PSBWRVgvYW1kNjQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0zMzkyMTggIEFWWDIgYmluYXJpZXMgY29tcGlsZWQgd2l0aCB0aGUgSW50ZWwgY29tcGlsZXIgZmFpbCB0bwotICAgICAgICBydW4gdW5kZXIgVmFsZ3JpbmQgMy4xMC4wCi0gICAgICAgIEZJWE1FOiBzaG91bGQgd2UgZW5hYmxlIHRoaXMgbm93PwotICAgICAgICA9PSAzMzg2MDIKLQotMzM4NjAyICBBVlgyIGJpdCBpbiBDUFVJRCBtaXNzaW5nCi0gICAgICAgIG5lZWQgdG8gZG8gWFNBVkUsIFhSU1RPUgotCiAzMzk1OTYgIHZleCBhbWQ2NC0+SVI6IDB4OEYgMHhFOCAweDc4IDB4Q0QgMHhDMSAweDQgMHhDNSAweEY5Ci0gICAgICAgIFhPUC9GTUEgLS0gc2hvdWxkIHRha2UKLQotMzM5ODIwICB2ZXggYW1kNjQtPklSOiAweDY2IDB4RiAweDNBIDB4NjMgMHhBIDB4NDIgMHg3NCAweDkKLSAgICAgICAgKHBjbXBpc3RyaXggICQweDQyLCAoJXJkeCksICV4bW0xKQotICAgICAgICBTaG91bGQgZml4LiAgUmVwb3J0ZWQgYWdhaW5zdCAzLjguMSAtLSBzdGlsbCB2YWxpZD8KKyAgICAgICAgWE9QL0ZNQSAtLSBzaG91bGQgdGFrZSwgYnV0IG5vdCBiZWZvcmUgMy4xMSByZWxlYXNlCiAKIDM0MDQ2OSAgdmV4IGFtZDY0LT5JUjogdW5oYW5kbGVkIGluc3RydWN0aW9uIGJ5dGVzOiAweDY2IDB4QTcKICAgICAgICAgTm90IGNsZWFyIHdoYXQncyBnb2luZyBvbiBoZXJlCi0KLTM0MjU3MSAgVmFsZ3JpbmQgY2hva2VzIG9uIEFWWCBjb21wYXJlIGludHJpbnNpYyB3aXRoIF9DTVBfR0VfUVMKLSAgICAgICAgcHJvYmFibHkgZWFzeSB0byBmaXgKKyAgICAgICAgUHJvYmFibHkgbGVnaXQsIGJ1dCBsb3cgaW1wYWN0IChmZXcgdXNlcnMpCiAKIDM0Mjk4OCAgSU5UIDgwIG5vdCByZWNvZ25pc2VkIG9uIGFtZDY0CisgICAgICAgIFByb2JhYmx5IGxlZ2l0LCBidXQgbG93IGltcGFjdCAoZmV3IHVzZXJzKQorCiszNDkzMDQgIHZleCBhbWQ2NC0+SVI6IDB4RiAweDMzIDB4ODkgMHg0NSAweEZDIDB4ODkgMHg1NSAweEY4IChyZHBtYykKKyAgICAgICAgSXMgZ29pbmcgdG8gYmUgZGlmZmljdWx0IHRvIGRvCiAKID09PSBWRVgvYXJtID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0zMzU2MTggIG1vdi53IHJOLCBwYy9zcCAoQVJNMzIpCi0gICAgICAgIEhBUyBQQVRDSAotCi0zNDI2ODAgIGFybTogdW5oYW5kZWQgaW5zdHJ1Y3Rpb24gMHhGNTkwRjAwMDogcGxkdyBbcjBdCi0KIDM0Mjc4MCAgYXJtICsgZ2NjIDQuOSBwcm9kdWNlIGZhbHNlIHBvc2l0aXZlOiBVc2Ugb2YgdW5pbml0aWFsaXNlZCB2YWx1ZSBvZgogICAgICAgICBzaXplIDQgYW5kIHNlZ2ZhdWx0IG9uIHN0YWNrIGV4dGVudGlvbgogICAgICAgICBIYXMgcGF0Y2gKLQotMzQyNzgzICBhcm06IHVuaGFuZGxlZCBpbnN0cnVjdGlvbiAweEVFRkUxQUNBID0gInZjdnQuczMyLmYzMiAgICBzMywgczMsICMxMiIKKyAgICAgICAgREVGRVIgdGlsbCAzLjExLjEgdW5sZXNzIEkgY2FuIHJlcHJvIGluIHRoZSB3aWxkCiAKIDM0NDgwMiAgZGlzSW5zdHIoYXJtKTogdW5oYW5kbGVkIGluc3RydWN0aW9uOiAweEVDNTEwRjFFCiAgICAgICAgIG1heWJlIGVhc3kgZml4PwogICAgICAgICBidXQgZG9lc24ndCBydW4gbmF0aXZlbHkgZWl0aGVyCiAKKzM0ODUzNiAgQVJNMzI6IFVuaGFuZGxlZCBpbnN0cnVjdGlvbnMgMHhFRTE5MEYxRCAmIDB4RUM1MTBGMUUgCisgICAgICAgID09IDMzMTE3OAorCiA9PT0gVkVYL2FybTY0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogPT09IFZFWC94ODYgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC01NywxMiArNDQsMjggQEAKIDM0MjE5MiAgVW5oYW5kbGVkIGluc3RydWN0aW9uIG9uIE9TIFggMTAuOSBpbiBsaWJzeXN0ZW1fbS5keWxpYgogICAgICAgICBwb3NzaWJseSBhIHdvbnRmaXgKIAorMzQ0MTM5ICB2ZXggeDg2LT5JUjogMHgzNiAweDhBIDB4MTggMHgyMiAoYW5kIG1hbnkgb3RoZXIgZXhhbXBsZXMpCisgICAgICAgIHN0YWNrIHNlZ21lbnQgb3ZlcnJpZGVzCisKKzM0NDU0NyAgdmV4IHg4Ni0+SVI6IDB4QzUgMHhGOCAweDc3IDB4RTkKKyAgICAgICAgYXZ4IG9uIHg4NgorCiszNDUyNjEgIFVuc3VwcG9ydGVkIGluc3RydWN0aW9uIDB4QzUgMHhGQiAweDEwIDB4NDQgKHZtb3ZzZAorICAgICAgICAweDgoJWVzcCksJXhtbTApCisgICAgICAgIGF2eCBvbiB4ODYKKworMzQ4NzQ5ICBndWVzdF9nZW5lcmljX3g4Ny5jOjQ1ODogYmFkID8gOiBvcGVyYXRvcgorCiszNDk4OTEgIHZleCB4ODYtPklSOiB1bmhhbmRsZWQgaW5zdHJ1Y3Rpb24gYnl0ZXM6IDB4RjMgMHhGIDB4QjggMHhDOQorCiszNTAwNjIgIDMuMTEgU1ZOIGNhbm5vdCBzdGFydCBhcHBsaWNhdGlvbiAoeDg2IFJPVU5EU0QgPykKKwogPT09IFZFWC9taXBzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIDM0MDc3NyAgSWxsZWdhbCBpbnN0cnVjdGlvbiBvbiBtaXBzIChhcjcxeHgpCiAKLTM0MTk5NyAgTUlQUzY0OiBDYXZpdW0gT0NURU9OIGluc3RydWN0aW9ucyAtIGltbWVkaWF0ZSBvcGVyYW5kIGhhbmRsZWQKLSAgICAgICAgaW5jb3JyZWN0bHkKKzM0NDUyNCAgc3RvcmUgY29uZGl0aW9uYWwgb2YgZ3Vlc3QgYXBwbGljYXRpb25zIGFsd2F5cyBmYWlsIChPY3Rlb24zKE1JUFMpCisgICAgICAgIGRpc2N1c3NlZCwgY29tcGxleCwgcGFydGlhbCBmaXggYXZhaWxhYmxlCiAKID09PSBWRVgvcHBjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCkBAIC03MCwzNyArNzMsNDggQEAKIAogPT09IFZFWC9zMzkweCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLTM0Mjg0MSAgczM5MHggdW5yZWNvZ25pemVkIGluc3RydWN0aW9uIGZpZWJyYQotICAgICAgICAtPiBGbG9yaWFuPwotCiA9PT0gVkVYIGdlbmVyYWwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotMzM5Nzc4ICBMaW51eC9UaWxlR3ggcGxhdGZvcm0gc3VwcG9ydCB0byBWYWxncmluZAotICAgICAgICBTaG91bGQgYWN0aW9uCi0KID09PSBTeXNjYWxscy9pb2N0bHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAzMzk0MjQgIEZ1bGwgc3VwcG9ydCBvZiBLVk0gaW9jdGwKLSAgICAgICAgSW4gcHJvZ3Jlc3MgLS0gbWF5YmUgY2FuIGJlIGNsb3NlZD8KLQotMzM5NTYzICBUaGUgRFZCIGRlbXV4IERNWF9TVE9QIGlvY3RsIGRvZXNuJ3QgaGF2ZSBhIHdyYXBwZXIKLSAgICAgICAgaGFzIHBhdGNoCisgICAgICAgIEluIHByb2dyZXNzIC0tIG1heWJlIGNhbiBiZSBjbG9zZWQ/ICBRVUVSSUVECiAKIDM0MTUzNyAgUE9TVChzeXNfaW9fZ2V0ZXZlbnRzKSBzaG91bGRuJ3QgY2hlY2sgaW9jYiBvciBpb3ZlYwotICAgICAgICB1bmNsZWFyIHdoZXRoZXIgcmVhbGx5IHZhbGlkIG9yIG5vdAorICAgICAgICBIYXJkIHRvIGZpeCAoaW50ZXItc3lzY2FsbCBkZXBlbmRlbmNpZXMpCiAKLTM0MjAwOSAgRXJyb3Igd2l0aCB2YWxncmluZCBvbiBzZXRjYXAgZmlsZSBvbiAzMmJpdHMgKG9ubHkpIHN5c3RlbQotICAgICAgICA9PSAzMzUxNDMKKzMzNTE0MyAgQ2FwYWJpbGl0aWVzIG5vdCBzdXBwb3J0ZWQKKyAgICAgICAgPT0gMzQyMDA5CiAgICAgICAgIHBvc3NpYmx5IHVuZml4YWJsZQogCiAzNDIwNDAgIFZhbGdyaW5kIG1pc2hhbmRsZXMgY2xvbmUgd2l0aCBDTE9ORV9WRk9SSyB8IENMT05FX1ZNIHRoYXQgY2xvbmVzCiAgICAgICAgIHRvIGEgZGlmZmVyZW50IHN0YWNrCisgICAgICAgIE5vdGhpbmcgaGFwcGVuZWQgc28gZmFyCiAKIDM0MjgwOSAgbXJlbWFwIGZhaWxzIHdoZW4gcHJvdGVjdGlvbiBpcyBlbmFibGVkCisgICAgICAgIFBvc3NpYmx5IHRvIGRvIHdpdGggaHVnZSBwYWdlcyAoaXMgaXQgPT0gMzQ4MjY5ID8pCiAKIDM0MzA5OSAgTGludXggc2V0bnMgc3lzY2FsbCB3cmFwcGVyIG1pc3NpbmcsIHVuaGFuZGxlZCBzeXNjYWxsOiAzMDgKICAgICAgICAgSEFTIFBBVENILiAgQ2hlY2sgdGhhdCBtYXlCbG9jayBpcyBlbmFibGVkLgogCiszNDUwNzcgIGxpbnV4IHN5c2NhbGwgZXhlY3ZlYXQgc3VwcG9ydCAobGludXggMy4xOSkKKyAgICAgICAgUVVFUklFRCAtLSBob3cgY3JpdGljYWwgaXMgaXQ/CisKKzM0NTQxNCAgV0FSTklORzogdW5oYW5kbGVkIHN5c2NhbGw6IDMxNyAoc3lzX3NlY2NvbXApCisgICAgICAgIFJlcXVpcmVzIGludmVzdGlnYXRpb24KKworMzQ4NjE2ICBXaW5lL3ZhbGdyaW5kOiBXYXJuaW5nOiBub3RlZCBidXQgdW5oYW5kbGVkIGlvY3RsIDB4NTM5MCB3aXRoCisgICAgICAgIG5vIHNpemUvZGlyZWN0aW9uIGhpbnRzLiAoRFZEX1JFQURfU1RSVUNUKQorICAgICAgICAoZnJvbSBBdXN0aW5FKQorCiszNDk5NTIgIFZhbGdyaW5kIHRlcm1pbmF0ZXMgcHJvY2VzcyB1cG9uIGEgY2FsbCB0byByZW1hcF9maWxlX3BhZ2VzCisKKzM1MDIyOCAgVW5oYW5kbGVkIGlvY3RsIDB4NjQ1OCAoaTk2NS9tZXNhKQorICAgICAgICAoZnJvbSBBdXN0aW5FKQorCiszNTEwMjkgIGZhY3RvciBvdXIgbV9zaWdmcmFtZSBmdW5jdGlvbnMKKyAgICAgICAgKHdpc2hsaXN0KQorCiA9PT0gRGVidWdpbmZvIHJlYWRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogMzI3NDI3ICBpZnVuYyBjcmFzaCB3aGVuIHN5bWJvbHMgYXJlIGRpc2NhcmRlZApAQCAtMTEwLDI1ICsxMjQsNDYgQEAKICAgICAgICAgbm8gYWN0aW9uIHNvIGZhcgogCiAzMzk3NDQgIHdhcm5pbmc6IGV2YWx1YXRlX0R3YXJmM19FeHByOiB1bmhhbmRsZWQgRFdfT1BfIDB4ZjIKLSAgICAgICAgbm8gYWN0aW9uIHNvIGZhcgorICAgICAgICBIYXMgY29tbWVudHMgZnJvbSBNSlcKIAogMzQwODU0ICB2YWxncmluZC1kaS1zZXJ2ZXI6IGFsbG93IHNwZWNpZmljYXRpb24gb2YgbXVsdGlwbGUgcGF0aHMKICAgICAgICAgaGFzIHBhdGNoLCB1bmNsZWFyIGlmIFJpZ2h0IFRoaW5nIFRvIERvCiAKKzM0NDA1MiAgQ29zdCBvZiBkeW5hbWljYWxseSBsb2FkZWQgbGlicmFyeSBpcyBub3QgcHJvcGVybHkgbGlua2VkIHRvCisgICAgICAgIHNvdXJjZSBjb2RlIGxpbmVzIGlmIHRoZSBsaWJyYXJ5IGlzIHVubG9hZGVkIGJlZm9yZSBleGl0CisgICAgICAgIFRoaXMgaXMgdGhlIHVzdWFsICJkZWJ1Z2luZm8gbm90IGF2YWlsYWJsZSBhZnRlciBkbGNsb3NlIiBwcm9ibGVtCisKKzM0NTk3NSAgQXJ0aWZpY2lhbCBmdW5jdGlvbnMgaW4gYmFja3RyYWNlCisgICAgICAgIG1vcmUgRHdhcmYgY29tcGxleGl0eQorCiA9PT0gVG9vbHMvTWVtY2hlY2sgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotMzM5NDk5ICBtZW1jaGVjayBkb2VzIG5vdCBhbHdheXMgZGV0ZWN0IGFjY2VzcyBiZXlvbmQgbW1hcGVkIHBhZ2UKLSAgICAgICAgcHJvYmFibHkgd29udGZpeAotCi0zMzk3NjIgIG1pc3NpbmcgcmVwbGFjZW1lbnQgYWxpYXMgZm9yIGdsaWJjIF9fc3RyY2hyX3NzZTQyLCBfX3N0cmNweV9zc2UyLAotICAgICAgICBfX3N0cmNweV9zc3NlMwotICAgICAgICBvYnNjdXJlPwotCiAzNDAzOTIgIEluY29ycmVjdCAiQ29uZGl0aW9uYWwganVtcC4uLiIgbWVzc2FnZQogICAgICAgICBPcHRpbWlzZWQgY29kZSBhIGxhIENsYW5nCi0gICAgICAgIFBST0JBQkxFIENBTlRGSVgKKyAgICAgICAgUHJvYmFibGUgQ0FOVEZJWAorICAgICAgICAoYnV0IHNob3VsZCB3ZSBhZGQgYSBjb21tYW5kIGxpbmUgZmxhZyBmb3IgaXQ/KQogCi0zNDI2ODMgIG1lbW9yeSBwYXN0IHRoZSBicmsgbGltaXQgaXMgbm90IGluaXRpYWxseSBpbmFjY2Vzc2libGUvdW5hZGRyZXNzYWJsZQorMzQ1MzA3ICBQbGVhc2Ugc3VwcHJlc3Mgd2FybmluZyBhYm91dCAic3RpbGwgcmVhY2hhYmxlIiBtZW1vcnkKKyAgICAgICAgd2hlbiB1c2luZyBsaWJzdGRjKysgZnJvbSBnY2MgNQorCiszNDU3NTEgIE9TIFg6IEluY29ycmVjdCByZXN1bHQgZm9yIG9wZXJhdG9yIElvcF9BZGQzMiBhbmQgSW9wX0FkZDY0CisgICAgICAgIGR1ZSB0byBtY2UudXNlTExWTXdvcmthcm91bmRzID0gVHJ1ZQorICAgICAgICBQcm9iYWJseSBoYXJtbGVzcworCiszNDU3NTMgIE9TIFg6IHNhbml0eUNoZWNrRmFpbDogZXhpdGluZyBkdWUgdG8gYmFkIElSIGZvciBJb3BfQWRkRjY0CisgICAgICAgIElSIHR5cGUgZXJyb3I7IHNob3VsZCBsb29rIGF0IGl0CisgICAgICAgIE5FRURTIElOVkVTVElHQVRJT04uICBJIGNhbid0IHJlcHJvIHRoaXMuCisKKzM0NTgxMSAgYW5ub3RhdGUgYWxzbyBGUCBmb3IgbWVtY2hlY2sgZGlydHkgaGVscGVycworICAgICAgICBoYXMgcGF0Y2gsIHNob3VsZCBjb21taXQKKyAgICAgICAgTkVFRFMgSU5WRVNUSUdBVElPTgorCiszNTA0MDUgIFN1cHBvcnQgZm9yIEludGVsIERQREsgY3VzdG9tIGFsbG9jYXRvciBydGVfbWFsbG9jCisgICAgICAgIFNlZW1zIGR1YmlvdXMKKworMzUwOTI4ICBtY19tYWxsb2Nfd3JhcHBlcnMuYzoyNDQgKGluX2Jsb2NrX2xpc3QpOgorICAgICAgICBBc3NlcnRpb24gJ2ZvdW5kX21jID09IG1jJyBmYWlsZWQKKyAgICAgICAgTkVFRFMgSU5WRVNUSUdBVElPTiwgSGFzIHBhdGNoCiAKID09PSBUb29scy9EUkQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogPT09IFRvb2xzL0hlbGdyaW5kID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xNDAsNiArMTc1LDggQEAKICAgICAgICAgPT0gTEtfcmR3cicgZmFpbGVkLgogICAgICAgICBhZ2FpbnN0IDMuOC4xCiAKKzM0NTEyMSAgaGVsZ3JpbmQvdGVzdHMvaGcwNV9yYWNlMiBmYWlscyBpbnRlcm1pdHRlbnRseQorCiA9PT0gVG9vbHMvU0dDaGVjayA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogMzQwMDIxICBzZ2NoZWNrIHRvb2wgZG9lcyBub3Qgd29yayBwcm9wZXJseSBvbiBBUk0KQEAgLTE1MCw2ICsxODcsOCBAQAogMzQyMzUzICBBbGxvdyBkdW1waW5nIGZ1bGwgbWFzc2lmIG91dHB1dCB3aGlsZSB2YWxncmluZCBpcyBzdGlsbCBydW5uaW5nCiAgICAgICAgIEhhcyBwYXRjaAogCiszNTA5MzQgIG1hc3NpZiBWQUxHUklORCBJTlRFUk5BTCBFUlJPUjogVmFsZ3JpbmQgcmVjZWl2ZWQgYSBzaWduYWwgNyAoU0lHQlVTKQorCiA9PT0gVG9vbHMvQ2FjaGVncmluZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogPT09IFRvb2xzL0xhY2tleSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xNjgsOSArMjA3LDI3IEBACiAzNDIzNTYgIE1JUFM6IGRldGVybWluZSBwYWdlIHNpemUgYXQgcnVudGltZQogICAgICAgICBIYXMgcGF0Y2g7IGNvdWxkIHBvc3NpYmx5IGxhbmQ/CiAKKzM0NTc2MyAgTUlQUyBOMzIgQUJJIHN1cHBvcnQKKyAgICAgICAgdmFyaW91cyBwYXRjaGVzLCBubyB1cHN0cmVhbSBhY3Rpb24gc28gZmFyCisKKzM0ODkyNCAgTUlQUzogTG9hZCBkb3VibGVzIHRocm91Z2ggbWVtb3J5IHNvIHRoZSBjb2RlIGNvbXBpbGVzIHdpdGggdGhlIEZQWFggQUJJCisKKz09PSBvdGhlci9wcGMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCiszNTA0OTYgIHVuaGFuZGxlZCBpbnN0cnVjdGlvbjogMHhFODA0MDAwMCBmb3IgcG93ZXJwYyBlNjUwMAorICAgICAgICBlNTAwID8KKwogPT09IG90aGVyL2FybSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKKzM0ODI1MiAgQVJNOiB0ZXN0IHZjdnRfZml4ZWRfZmxvYXRfVkZQIGNhdXNlcyBjb21waWxlciBlcnJvcnMKKworMzQ4MzI1ICBWYWxncmluZCBiZWNvbWVzIG5vaXN5IHdoZW4gY29tcGlsZWQgd2l0aCBnY2MgNC45CisKID09PSBvdGhlci9zMzkwID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorPT09IG90aGVyL3RpbGVneCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzM0NTkyMSAgQWRkIFRpbGVHWCBpbnN0cnVjdGlvbiBzZXQgdGVzdCBpbiBub24vdGVzdHMvdGlsZWd4LworCiA9PT0gb3RoZXIvQW5kcm9pZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogMzM5NjA1ICB2Z3ByZWxvYWRfaGVsZ3JpbmQtYXJtLWxpbnV4LnNvIGlzIG5vdCBsaWtlZCB0byBsaWJjLnNvIApAQCAtMTc4LDcgKzIzNSw3IEBACiAgICAgICAgIHJlY2VudCBBbmRyb2lkCiAKIDMzOTg2MSAgUmVtb3ZlIEVsZjMyX05oZHIgZGVmaW5pdGlvbiBmb3IgQW5kcm9pZAotICAgICAgICB1aCwgZG8gd2Ugd2FudCB0aGlzPworICAgICAgICB1aCwgZG8gd2Ugd2FudCB0aGlzPyAgUmVxdWlyZXMgY29uZGl0aW9uYWxpc2F0aW9uLgogCiAzMzk4NjIgIHY2aW50VGh1bWIuYyBkb2VzIG5vdCBjb21waWxlIHdoZW4gLXBpZSBvcHRpb25zIGlzIHNwZWNpZmllZAogICAgICAgICBzaG91bGQgcG9zc2libGUgdGFrZXM7IGNhdXNlcyBidWlsZCBmYWlsdXJlcyBvbiBuZXdlciBBbmRyb2lkCkBAIC0xOTMsNDMgKzI1MCwzOCBAQAogMzQxNzI2ICBbcGF0Y2hdIFJlbW92ZSB1bmVjY2Vzc2FyeSBpZmRlZiBfYW5kcm9pZF8gZnJvbSBsYXVuY2hlci1saW51eC5jCiAgICAgICAgIGRvIHdlIHdhbnQgdGhpcz8KIAotPT09IG90aGVyL01hY09TID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9PT0gb3RoZXIvT1MgWCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0zMzg3ODEgIE9TWDogdW5hYmxlIHRvIHJlYWQgZGVidWcgaW5mbworMzM4NzgxICBVbmFibGUgdG8gcmVhZCBkZWJ1ZyBpbmZvcm1hdGlvbiAoMy4xMC4wIEJFVEExKQogCi0zMzk3NDUgIFZhbGdyaW5kIGNyYXNoIHdoZW4gY2hlY2sgTWFybWFsYWRlIGFwcCAoT1NYIDEwLj8pCi0gICAgICAgIFJoeXMgcGFydGlhbGx5IGZpeGVkCi0KLTM0MTQxOSAgU2lnbmFsIGhhbmRsZXIgdWNvbnRleHRfdCBub3QgZmlsbGVkIG91dCBjb3JyZWN0bHkgb24gT1MgWAotICAgICAgICBIYXMgcGF0Y2gKLQotMzQyNjM1ICBPUyBYIDEwLjEwIChZb3NlbWl0ZSkgLSBtaXNzaW5nIHN5c3RlbSBjYWxscyBhbmQgZmNudGwgY29kZQotICAgICAgICBIYXMgcGF0Y2g7IC0+IFJoeXM/CiszMzk3NDUgIFZhbGdyaW5kIGNyYXNoIHdoZW4gY2hlY2sgTWFybWFsYWRlIGFwcAorICAgICAgICBXT05URklYIFJlcXVpcmVzIDY0IGJpdCBzdXBwb3J0IGluIGNsaWVudCBhcHBsaWNhdGlvbiBNYXJtYWxhZGUKIAogMzQzMzA2ICBPUyBYIDEwLjEwOiBVTktOT1dOIG1hY2hfbXNnIHVuaGFuZGxlZCBNQUNIX1NFTkRfVFJBSUxFUiBvcHRpb24KICAgICAgICAgUGFydGlhbGx5IGZpeGVkCiAKLTM0MzUyMyAgT1MgWCBtYWNoX3BvcnRzX3JlZ2lzdGVyOiBVTktOT1dOIHRhc2sgbWVzc2FnZQotICAgICAgICBbaWQgMzQwMywgdG8gbWFjaF90YXNrX3NlbGYoKSwgcmVwbHkgMHgzMGZdCiszNDg5MDkgIFN1cHBvcnQgT1MgWCAxMC4xMSAoRWwgQ2FwaXRhbikKIAotMzQzNTI1ICBPUyBYIGhvc3RfZ2V0X3NwZWNpYWxfcG9ydDogVU5LTk9XTiBob3N0IG1lc3NhZ2UKLSAgICAgICAgW2lkIDQxMiwgdG8gbWFjaF9ob3N0X3NlbGYoKSwgcmVwbHkgMHguLi4uLi4uLl0KKzM0OTEyOCAgQWNjZXNzIG5vdCB3aXRoaW4gbWFwcGVkIHJlZ2lvbiBpbiBfcHRocmVhZF9maW5kX3RocmVhZCAoT1MgWCAxMC4xMSkKIAotMzQzNjQ5ICBPUyBYIGhvc3RfY3JlYXRlX21hY2hfdm91Y2hlcjogVU5LTk9XTiBob3N0IG1lc3NhZ2UKLSAgICAgICAgW2lkIDIyMiwgdG8gbWFjaF9ob3N0X3NlbGYoKSwgcmVwbHkgMHguLi4uLi4uLl0KKzM0OTEyOSAgbWVtY2hlY2svdGVzdHMvd3JhcDYgZmFpbHMgb24gT1MgWCAxMC4xMQogCi0zNDM2NjMgIFtPU1ggWW9zZW1pdGUgMTAuMTAuMV0gVGhlIG1lbWNoZWNrIHRvb2wgYWx3YXlzIHJlcG9ydHMgYQotICAgICAgICBsZWFrIHJlZ2FyZGxlc3Mgb2YgdGhlIHNpbXBsaWNpdHkgb2YgdGhlIHByb2dyYW0uCiszNDk1MjEgIFZhbGdyaW5kIG1pc3NlcyBzb21lIGxpbmUgbnVtYmVycyBpbiBvdXRwdXQgb24gT1MgWCAxMC4xMQorCiszNDk4MDQgIHdpbmUvb3N4OiBtbWFwLUZJWEVEKDB4MTAwMCwgMTA3Mzc0MTgyNCkgZmFpbGVkIGluIFVNRSAobG9hZF9zZWdtZW50MikKKworMzUxNjMyICBVTktOT1dOIGZjbnRsIDk3IG9uIE9TIFggMTAuMTEKIAogPT09IG90aGVyL1dpbjMyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotMjExNTI5ICB2YWxncmluZCBkb2Vzbid0IHNob3cgcHJvcGVyIGNhbGwgc3RhY2tzIGZvciBwcm9ncmFtcyBjb21waWxlZAotICAgICAgICBieSBuZXdlciB2ZXJzaW9ucyBvZiB2aXN1YWwgYysrCi0KLTM0MjExNyAgVmFsZ3JpbmQgaGFuZ3MgYWZ0ZXIgbG9hZGluZyBQREIgZmlsZSBmb3IgTVNWQyBjb21waWxlZCBGaXJlZm94Ci0gICAgICAgIHVuZGVyIFdpbmUKKzM0NDM4MiAgTWVtY2hlY2sgaGFzIGhpZ2ggZmFsc2UgZXJyb3IgcmF0ZXMgb24gTVNWQzIwMTMgY29tcGlsZWQsCisgICAgICAgIG9wdGltaXNlZCwgY29kZSBpbiBwcm9ncmVzcworICAgICAgICBmaXhlZCwgYnV0IHByZWZmZWQgb2ZmCiAKID09PSBHREIgc2VydmVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCiszNDgzNTggIGRlc2NyaWJlIHNob3VsZCBzaG93IGluZm8gYWJvdXQgbWFpbiBzdGFjayBndWFyZCBwYWdlCisKID09PSBPdXRwdXQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAzMzk0MDUgIEFkZHMgYWJpbGl0eSB0byBpbnZva2UgYSBzY3JpcHQgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGEKQEAgLTIzOSw5ICsyOTEsOSBAQAogMzQyNDIzICBMb2cgZmlsZXMgc2hvdWxkIGhhdmUgdGhlIGhpc3RvcnkgJ2V4ZWN2ZScgY2FsbHMgaW4gdGhlbQogICAgICAgICBXaXNobGlzdAogCi09PT0gTVBJID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzM1MTA0MyAgSW52YWxpZCBYTUwgb3V0cHV0IHdoZW4gdHJhY2luZyBpbnRvIGZvcmtlZCBjaGlsZCBwcm9jZXNzZXMKIAotMzMwMTQ3ICBsaWJtcGl3cmFwIFBNUElfR2V0X2NvdW50IChzaG91bGQgdGFrZTsgc2ltcGxlIGZpeCkKKz09PSBNUEkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiA9PT0gRG9jdW1lbnRhdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIApAQCAtMjU2LDMwICszMDgsMjYgQEAKICAgICAgICAgc3RhY2sgY3Jhc2hlcyBjYWxsZ3JpbmQKICAgICAgICAgbV9zdGFja3MuYyBicm9rZW5uZXNzPwogCi0zNDMxNzMgIGhlbGdyaW5kIGNyYXNoIGR1cmluZyBzdGFjayB1bndpbmQKLSAgICAgICAgbV9zdGFja3MuYzogbmVlZCB0byAoZGUpcmVnaXN0ZXIgc3RhY2sgYXQgbXVubWFwPwotCiAzNDMzNTcgIFBsZWFzZSBmaXggc2VtYXBob3JlIHN0YXJ2YXRpb24gd2hlbiBydW5uaW5nIHRocmVhZHMtcGVyLUNQVQogICAgICAgICBVbmNsZWFyIGlmIHdlIHNob3VsZCBkbyBhbnl0aGluZwogCiAzNDM3MTUgIHZhbGdyaW5kIGhhbmdzIGFmdGVyIHZnZGIgaGVscCByZXF1ZXN0CiAKKzM1MDQ5MSAgSGFuZGxpbmcgb2YgbmVzdGVkIHNjcmlwdHMKKyAgICAgICAgQml6YXJyZQorCiA9PT0gVW5jYXRlZ29yaXNlZC9idWlsZD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotMzM5MjE1ICBWYWxncmluZCAzLjEwLjAgY29udGFpbiAyMDEzIGluIGNvcHlyaWdodHMgbm90aWNlCi0gICAgICAgIFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZXMhCi0KLTMzOTU0MiAgRXhwZXJpZW5jZXMgd2l0aCBjb21waWxpbmcgdmFsZ3JpbmQgd2l0aCBJQ0MKLSAgICAgICAgcG9zc2libHkgY2xvc2FibGUgbm93Ci0KLTMzOTYzNiAgVXNlIGZ4c2F2ZTY0IGFuZCBmeHJzdG9yNjQgbW5lbW9uaWNzIGluc3RlYWQgb2YgcmV4NjQgcHJlZml4Ci0gICAgICAgIFNob3VsZCBhcHBseQotCi0zNDIwMDggIHZhbGdyaW5kLmggbmVlZHMgdHlwZSBjYXN0IGZvciBfenpxX2RlZmF1bHQgdG8gY29tcGlsZSB3aXRoCi0gICAgICAgIGNsYW5nL2xsdm0gaW4gNjQtYml0IG1vZGUKLQogMzQzNTUzICBlNTAwIGNoaXAgbm93IHN1cHBvcnRzIGl0PyBhbmQsaG93IGFib3V0IGFybXY1CiAKKzM0NDAxOSAgbmV3IHRvb2w6IHRyYWNrcHRyIHRvIHRyYWNrIHBvaW50ZXIgdXNhZ2UKKworMzQ0NDAxICB4MzIgQUJJIHN1cHBvcnQKKworMzQ4MzQyICBWYWxncmluZCBkb2VzIG5vdCBzdXBwb3J0IGFuZHJvaWQteDg2XzY0CisKKzM0OTk1NCAgQ2Fubm90IHN0YXJ0IG1lbWNoZWNrOiBwZXJtaXNzaW9uIGRlbmllZAorCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0yOTUsMTQ4ICszNDMsOCBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotVHVlICAzIEZlYiAwMDoxNDoxOCBDRVQgMjAxNQotCiBDaGVjazogc3BhY2UgcmVjb3ZlcnkgaW4gYXNwYWNlbWdyIHNlZ25hbWVzIGFycmF5IHJlLWltcGxlbWVudGVkPworQ2hlY2s6IG1pc3NpbmcgY29weXJpZ2h0IG5vdGljZXMgaW4gaW5jbHVkZS92a2kvKnhlbiouaAorQ2hlY2s6IHVwZGF0ZSBjb3B5cmlnaHQgZGF0ZXMgaW4gc291cmNlIGZpbGVzCiAKLTM0NDAxOSAgbmV3IHRvb2w6IHRyYWNrcHRyIHRvIHRyYWNrIHBvaW50ZXIgdXNhZ2UKLW5vIGFjdGlvbiBzbyBmYXIKLQotMzQ0MDUyICBDb3N0IG9mIGR5bmFtaWNhbGx5IGxvYWRlZCBsaWJyYXJ5IGlzIG5vdCBwcm9wZXJseSBsaW5rZWQgdG8KLSAgICAgICAgc291cmNlIGNvZGUgbGluZXMgaWYgdGhlIGxpYnJhcnkgaXMgdW5sb2FkZWQgYmVmb3JlIGV4aXQKLQotMzQ0MTM5ICB2ZXggeDg2LT5JUjogMHgzNiAweDhBIDB4MTggMHgyMiAoYW5kIG1hbnkgb3RoZXIgZXhhbXBsZXMpCi1zdGFjayBzZWdtZW50IG92ZXJyaWRlcwotCi0zNDQzMzcgIE9TIFggMTAuMTAgdW5oYW5kbGVkIHN5c2NhbGwKLQotMzQ0MzgyIE1lbWNoZWNrIGhhcyBoaWdoIGZhbHNlIGVycm9yIHJhdGVzIG9uIE1TVkMyMDEzIGNvbXBpbGVkLAotICAgICAgIG9wdGltaXNlZCwgY29kZSBpbiBwcm9ncmVzcwotZml4ZWQsIGJ1dCBwcmVmZmVkIG9mZgotCi0zNDQ0MDEgIHgzMiBBQkkgc3VwcG9ydAotbm8gYWN0aW9uCi0KLTM0NDQxNiAgJ21ha2UgcmVndGVzdCcgZG9lcyBub3Qgd29yayBjbGVhbmx5IG9uIE9TIFgKLW1ldGEtYnVnCi0KLTM0NDUxMiAgdW5oYW5kbGVkIHN5c2NhbDogdW5peDozNDkKLQotMzQ0NTI0ICBzdG9yZSBjb25kaXRpb25hbCBvZiBndWVzdCBhcHBsaWNhdGlvbnMgYWx3YXlzIGZhaWwgKE9jdGVvbjMoTUlQUykKLWRpc2N1c3NlZCwgcGFydGlhbCBmaXggYXZhaWxhYmxlCi0KLTM0NDU0MyAgLS1sZWFrLWNoZWNrPWZ1bGwgbWVtbGVhayBlcnJvcnMgZnJvbSBzeXN0ZW0gbGlicmFyaWVzIGluIE9TIFggMTAuMTAuMgotY2FuIHBvc3NpYmx5IGNsb3NlCi0KLTM0NDU0NyAgdmV4IHg4Ni0+SVI6IDB4QzUgMHhGOCAweDc3IDB4RTkKLWF2eCBvbiB4ODYKLQotMzQ0NTYwICBTdGFjayB0cmFjZXMgbWlzc2luZyBwZW51bHRpbWF0ZSBmcmFtZQotaGFzIHBsYXVzaWJsZSBwYXRjaAotCi1UaHUgIDUgTWFyIDE4OjA4OjI3IENFVCAyMDE1Ci0KLTM0NDg4NiAgViBzaG91bGQgbm90IHRyeSB0byBleHRlbmQgYSBzaWdhbHRzdGFjawotdW5jbGVhciB3aGF0IHRoZSBzaXR1YXRpb24gaXMKLQotMzQ0OTM2ICB1bmhhbmRsZWQgc3lzY2FsbDogdW5peDo0NzMgKHJlYWRsaW5rYXQpIG9uIE9TIFggMTAuMTAKLQotMzQ1MDc3ICBsaW51eCBzeXNjYWxsIGV4ZWN2ZWF0IHN1cHBvcnQgKGxpbnV4IDMuMTkpCi1oYXMgcGF0Y2gKLQotMzQ1MTIxICBoZWxncmluZC90ZXN0cy9oZzA1X3JhY2UyIGZhaWxzIGludGVybWl0dGVudGx5Ci0KLTM0NTEyNiAgSW5jb3JyZWN0IGhhbmRsaW5nIG9mIFZJRElPQ19HX0FVRElPIGFuZCBHX0FVRE9VVAotaGFzIHBhdGNoCi0KLTM0NTE3NyAgYXJtNjQ6IHByZm0gKHJlZykgbm90IGltcGxlbWVudGVkCi0KLTM0NTI0OCAgYWRkIHN1cHBvcnQgZm9yIFNvbGFyaXMgT1MgaW4gdmFsZ3JpbmQKLQotMzQ1MjYxICBVbnN1cHBvcnRlZCBpbnN0cnVjdGlvbiAweEM1IDB4RkIgMHgxMCAweDQ0ICh2bW92c2QKLSAgICAgICAgMHg4KCVlc3ApLCV4bW0wKQotYXZ4IG9uIHg4NgotCi0zNDUzMDcgIFBsZWFzZSBzdXBwcmVzcyB3YXJuaW5nIGFib3V0ICJzdGlsbCByZWFjaGFibGUiIG1lbW9yeQotICAgICAgICB3aGVuIHVzaW5nIGxpYnN0ZGMrKyBmcm9tIGdjYyA1Ci0KLTM0NTMzOCAgVElPQ0dTRVJJQUwgYW5kIFRJT0NTU0VSSUFMIGlvY3RsIHN1cHBvcnQgb24gTGludXgKLWhhcyBwYXRjaAotCi0zNDU0MTQgIEkgZ2V0IHRoZSBmb2xsb3dpbmcgd2hlbiBJIHJhbiB2YWxncmluZCAgV0FSTklORzoKLSAgICAgICAgdW5oYW5kbGVkIHN5c2NhbGw6IDMxNwotc3lzX3NlY2NvbXAKLQotMzQ1NzUxICBPUyBYOiBJbmNvcnJlY3QgcmVzdWx0IGZvciBvcGVyYXRvciBJb3BfQWRkMzIgYW5kIElvcF9BZGQ2NAotZHVlIHRvIG1jZS51c2VMTFZNd29ya2Fyb3VuZHMgPSBUcnVlCi0KLTM0NTc1MyAgT1MgWDogc2FuaXR5Q2hlY2tGYWlsOiBleGl0aW5nIGR1ZSB0byBiYWQgSVIgZm9yIElvcF9BZGRGNjQKLUlSIHR5cGUgZXJyb3I7IHNob3VsZCBsb29rIGF0IGl0Ci0KLTM0NTc2MyAgTUlQUyBOMzIgQUJJIHN1cHBvcnQKLXZhcmlvdXMgcGF0Y2hlcywgbm8gdXBzdHJlYW0gYWN0aW9uIHNvIGZhcgotCi0zNDU4MTEgIGFubm90YXRlIGFsc28gRlAgZm9yIG1lbWNoZWNrIGRpcnR5IGhlbHBlcnMKLWhhcyBwYXRjaCwgc2hvdWxkIGNvbW1pdAotCi0zNDU4MjQgIGFzcGFjZW0gc2VnbWVudCBtaXNtYXRjaCBvbiBPUyBYOiBzZWVuIHdpdGggbm9uZS90ZXN0cy9iaWdjb2RlCi1idXQgYWxzbyBmb3IgczM5MC1saW51eDsgY29uZnVzaW5nCi0KLTM0NTkyMSAgQWRkIFRpbGVHWCBpbnN0cnVjdGlvbiBzZXQgdGVzdCBpbiBub24vdGVzdHMvdGlsZWd4LwotCi0zNDU5MjggIGFtZDY0OiBjYWxsc3RhY2sgb25seSBjb250YWlucyBjdXJyZW50IGZ1bmN0aW9uIGZvciBzbWFsbCBzdGFja3MKLWhhcyBwYXRjaCwgYnV0IG5lZWRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbgotCi0zNDU5MjkgIENyYXNoIHdoZW4gcnVubmluZyB3aXRoIGAtLWdlbi1zdXBwcmVzc2lvbnM9eWVzYCBhZnRlcgotICAgICAgICBlbnRlcmluZyAneScgdG8gY29uZmlybQotcHJvYmFibGUgZWFzeSBmaXgKLQotMzQ1OTc1ICBBcnRpZmljaWFsIGZ1bmN0aW9ucyBpbiBiYWNrdHJhY2UKLW1vcmUgRHdhcmYgY29tcGxleGl0eQotCi0zNDU5ODQgIGRpc0luc3RyKGFybSk6IHVuaGFuZGxlZCBpbnN0cnVjdGlvbjogMHhFRTE5M0YxRQotCi0zNDU5ODUgIGRpc0luc3RyKGFybSk6IHVuaGFuZGxlZCBpbnN0cnVjdGlvbjogMHhGMjIwMDE1MAotCi0zNDU5ODcgIE1JUFM2NDogSW1wbGVtZW50IGNhdml1bSBMSFggaW5zdHJ1Y3Rpb24KLWhhcyBwYXRjaGVzCi0KLTM0NjAyMyAgdmFsZ3JpbmQgY3Jhc2hlcyB3aGVuIHJ1biBvdmVyIG1vbm8gcHJvZ3JhbQotcm91bmRzZCwgc3NlIDQuMSwgeDg2Ci0KLTM0NjAzMSAgTUlQUzogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHRoZSBDdm1Db3VudCByZWdpc3RlciAocmh3ciAlMCwgMzEpCi1oYXMgcGF0Y2gKLQotMzQ2MTg1ICBGaXggdHlwbyBzYXZpbmcgYWx0aXZlYyByZWdpc3RlciB2MjQKLWhhcyBwYXRjaAotCi0zNDY0MTEgIE1JUFM6IFN5c1Jlczo6X3ZhbEV4IGhhbmRsaW5nIGlzIGluY29ycmVjdAotCi0zNDY0NzYgIHZleCBhbWQ2NC0+SVI6IDB4QzUgMHhGRCAweEMyIDB4QzEgMHgxMCAweEM1IDB4RkQgMHgyOQotCi0zNDY1NjIgIE1JUFM2NDogbHdsL2x3ciBpbnN0cnVjdGlvbnMgYXJlIHBlcmZvcm1pbmcgNjRiaXQgbG9hZHMKLSAgICAgICAgYW5kIGNhdXNpbmcgc3B1cmlvdXMgImludmFsaWQgcmVhZCBvZiBzaXplIDgiIHdhcm5pbmdzCi1oYXMgcGF0Y2gKLQotMzQ2NjY1ICB2YWxncmluZDogdGhlICdpbXBvc3NpYmxlJyBoYXBwZW5lZDogTGliVkVYIGNhbGxlZCBmYWlsdXJlX2V4aXQoKS4KLWFybXY2IHByb2JhYmxlIGZhaWx1cmUKLQotVHVlIDI4IEFwciAxMzo0ODo0MCBDRVNUIDIwMTUKLQotMzQ2OTEyICBjYWxsZ3JpbmQgYmFpbHMgb3V0IG9uIHZwbWFza21vdmQgaW5zdHJ1Y3Rpb24KLQotMzQ3MTk4ICB2ZXggeDg2LT5JUjogdW5oYW5kbGVkIGluc3RydWN0aW9uIGJ5dGVzOiAweDY2IDB4RiAweDNBIDB4NjMKLQotMzQ3MjMzICBGaXggbWVtY2hlY2svdGVzdHMvc3RyY2hyIG9uIE9TIFggMTAuMTAgKEhhc3dlbGwpCi0KLTM0NzMyMiAgUG93ZXIgUEMgcmVncmVzc2lvbiB0ZXN0IGNsZWFudXAKLQotRnJpICA4IE1heSAxMTo1MjoxNCBDRVNUIDIwMTUKLQotMzQ3Njg2ICBQYXRjaCBzZXQgdG8gY2xlYW51cCBQUEM2NCByZWd0ZXN0cwotCi0zNDc2OTggIDMuMTAuMSBkb2Vzbid0IHJlY29nbml6ZSBjbXBzZCBnZW5lcmF0ZWQgYnkgRHluQVNNCi0KLTM0Nzg4NSAgdW5oYW5kbGVkIGluc3RydWN0aW9uIGJ5dGVzOiAweEQ2IDB4RiAweDg0IDB4MUIgKFNBTEMgYW1kNjQpCi0KLVR1ZSAxOSBNYXkgMTE6MjI6NTIgQ0VTVCAyMDE1CitXZWQgMTIgQXVnIDE1OjUyOjI3IENFU1QgMjAxNQpkaWZmIC0tZ2l0IGEvZG9jcy9pbnRlcm5hbHMvRGFyd2luLW5vdGVzLnR4dCBiL2RvY3MvaW50ZXJuYWxzL0Rhcndpbi1ub3Rlcy50eHQKaW5kZXggZjUyNmM0Zi4uODVjOWU4ZSAxMDA2NDQKLS0tIGEvZG9jcy9pbnRlcm5hbHMvRGFyd2luLW5vdGVzLnR4dAorKysgYi9kb2NzL2ludGVybmFscy9EYXJ3aW4tbm90ZXMudHh0CkBAIC02OSwxMyArNjksNiBAQAogICAtIFBSRShzeXNfcG9zaXhfc3Bhd24pIGNvbXBsZXRlbHkgaWdub3JlcyBzaWduYWwgaXNzdWVzLCBhbmQKICAgICBhbHNvIGlnbm9yZXMgdGhlIGZpbGVfYWN0aW9ucyBhcmd1bWVudAogCi0qIGVudiB2YXIgaGFuZGxpbmcgdy8gZXhlYyBvbiBEYXJ3aW46IGlzIHRoZXJlIHNvbWV0aGluZyBvZGQ/ICBDb21wYXJlCi0gICJ2YWxncmluZCBlbnYiIG9uIERhcndpbiBhbmQgTGludXguICBPbiB0aGUgZm9ybWVyIHRoZXJlIGFyZQotICBzZXR0aW5ncyBWQUxHUklORF9MSUIgYW5kIFZBTEdSSU5EX0xJQl9JTk5FUiwgYnV0IG5vdCBmb3IgdGhlCi0gIGZvcm1lci4KLSAgVGhlcmUncyBhIHN1c3BpY2lvdXMtbG9va2luZyAiI2lmIGRlZmluZWQoVkdPX2RhcndpbikiIGluIAotICBWR18oZW52X3JlbW92ZV92YWxncmluZF9lbnZfc3R1ZmYpLiAgTWF5YmUgcmVsYXRlZD8KLQogKiBDbGVhbnVwczogc29ydCB3cmFwcGVycyBpbiBzeXN3cmFwLWRhcndpbi5jIGFuZCBwcml2X3N5c3dyYXAtZGFyd2luLmgKICAgYWxwaGFiZXRpY2FsbHkuICBBbHNvLCBzb21lIGFyZW4ndCBwcm9wZXJseSBpbXBsZW1lbnRlZCAtLSBjaGVjayBhbmQKICAgcHJpbnQgd2FybmluZ3MKZGlmZiAtLWdpdCBhL2RvY3MvaW50ZXJuYWxzL3MzOTAtb3Bjb2Rlcy5jc3YgYi9kb2NzL2ludGVybmFscy9zMzkwLW9wY29kZXMuY3N2CmluZGV4IDk3OTMxODIuLmMwNzU3ZWUgMTAwNjQ0Ci0tLSBhL2RvY3MvaW50ZXJuYWxzL3MzOTAtb3Bjb2Rlcy5jc3YKKysrIGIvZG9jcy9pbnRlcm5hbHMvczM5MC1vcGNvZGVzLmNzdgpAQCAtMjkzLDkgKzI5Myw5IEBACiBsY3hiciwibG9hZCBjb21wbGVtZW50IGV4dGVuZGVkIGJmcCIsaW1wbGVtZW50ZWQsCiBsY2RiciwibG9hZCBjb21wbGVtZW50IGxvbmcgYmZwIixpbXBsZW1lbnRlZCwKIGxjZWJyLCJsb2FkIGNvbXBsZW1lbnQgc2hvcnQgYmZwIixpbXBsZW1lbnRlZCwKLWZpeGJyLCJsb2FkIGZwIGludGVnZXIgZXh0ZW5kZWQgYmZwIiwibm90IGltcGxlbWVudGVkIiwKLWZpZGJyLCJsb2FkIGZwIGludGVnZXIgbG9uZyBiZnAiLCJub3QgaW1wbGVtZW50ZWQiLAotZmllYnIsImxvYWQgZnAgaW50ZWdlciBzaG9ydCBiZnAiLCJub3QgaW1wbGVtZW50ZWQiLAorZml4YnIsImxvYWQgZnAgaW50ZWdlciBleHRlbmRlZCBiZnAiLGltcGxlbWVudGVkLAorZmlkYnIsImxvYWQgZnAgaW50ZWdlciBsb25nIGJmcCIsaW1wbGVtZW50ZWQsCitmaWViciwibG9hZCBmcCBpbnRlZ2VyIHNob3J0IGJmcCIsaW1wbGVtZW50ZWQsCiBsZnBjLCJsb2FkIGZwYyIsaW1wbGVtZW50ZWQsCiBseGRiciwibG9hZCBsZW5ndGhlbmVkIGxvbmcgdG8gZXh0ZW5kZWQgYmZwIixpbXBsZW1lbnRlZCwKIGx4ZGIsImxvYWQgbGVuZ3RoZW5lZCBsb25nIHRvIGV4dGVuZGVkIGJmcCIsaW1wbGVtZW50ZWQsCmRpZmYgLS1naXQgYS9kb2NzL2ludGVybmFscy94bWwtb3V0cHV0LXByb3RvY29sNC50eHQgYi9kb2NzL2ludGVybmFscy94bWwtb3V0cHV0LXByb3RvY29sNC50eHQKaW5kZXggYTE0N2VhYS4uY2NiMjJiNCAxMDA2NDQKLS0tIGEvZG9jcy9pbnRlcm5hbHMveG1sLW91dHB1dC1wcm90b2NvbDQudHh0CisrKyBiL2RvY3MvaW50ZXJuYWxzL3htbC1vdXRwdXQtcHJvdG9jb2w0LnR4dApAQCAtNzE5LDYgKzcxOSw3IEBACiAKIDxjbGllbnRtc2c+CiAgIDx0aWQ+SU5UPC90aWQ+CisgIDx0aHJlYWRuYW1lPk5BTUU8L3RocmVhZG5hbWU+ICAgIGlmIHNldAogICA8dGV4dD4uLi48L3RleHQ+CiA8L2NsaWVudG1zZz4KIApAQCAtNzI2LDEyICs3MjcsMTcgQEAKIAogPGNsaWVudG1zZz4KICAgPHRpZD5JTlQ8L3RpZD4KKyAgPHRocmVhZG5hbWU+TkFNRTwvdGhyZWFkbmFtZT4gICAgaWYgc2V0CiAgIDx0ZXh0Pi4uLjwvdGV4dD4KICAgU1RBQ0sKIDwvY2xpZW50bXNnPgogCiAqIFRoZSA8dGlkPiB0YWcgaW5kaWNhdGVzIHRoZSBWYWxncmluZCB0aHJlYWQgbnVtYmVyLgogCisqIFRoZSA8dGhyZWFkbmFtZT4gdGFnIGlkZW50aWZpZXMgdGhlIG5hbWUgb2YgdGhlIHRocmVhZCBpZiBpdCB3YXMKKyAgc2V0IGJ5IHRoZSBjbGllbnQgYXBwbGljYXRpb24uIElmIG5vIG5hbWUgd2FzIHNldCwgdGhlIHRhZyBpcworICBvbWl0dGVkLgorCiAqIFRoZSA8dGV4dD4gdGFnIGluZGljYXRlcyB0aGUgbWVzc2FnZSBhcyBzcGVjaWZpZWQgaW4gdGhlIGNsaWVudCByZXF1ZXN0CiAgIChwcm9wZXJseSB0cmFuc2xhdGVkIHRvIFhNTCkuCiAKZGlmZiAtLWdpdCBhL2RvY3MveG1sL2Rpc3QtZG9jcy54bWwgYi9kb2NzL3htbC9kaXN0LWRvY3MueG1sCmluZGV4IDM3YjJjZTMuLmU0MDIxZWQgMTAwNjQ0Ci0tLSBhL2RvY3MveG1sL2Rpc3QtZG9jcy54bWwKKysrIGIvZG9jcy94bWwvZGlzdC1kb2NzLnhtbApAQCAtMTIxLDQgKzEyMSwxNCBAQAogICAgICAgICAgIHhtbG5zOnhpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIiAvPgogICAgIDwvbGl0ZXJhbGxheW91dD4KICAgICA8L2NoYXB0ZXI+CisKKyAgPGNoYXB0ZXIgaWQ9ImRpc3QucmVhZG1lLXNvbGFyaXMiCisgICAgICAgICAgICAgeHJlZmxhYmVsPSJSZWFkbWUgU29sYXJpcyI+CisgICAgPHRpdGxlPlJFQURNRS5zb2xhcmlzPC90aXRsZT4KKyAgICA8bGl0ZXJhbGxheW91dD4KKyAgICAgIDx4aTppbmNsdWRlIGhyZWY9Ii4uLy4uL1JFQURNRS5zb2xhcmlzIgorICAgICAgICAgIHBhcnNlPSJ0ZXh0IgorICAgICAgICAgIHhtbG5zOnhpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIiAvPgorICAgIDwvbGl0ZXJhbGxheW91dD4KKyAgICA8L2NoYXB0ZXI+CiA8L2Jvb2s+CmRpZmYgLS1naXQgYS9kb2NzL3htbC9tYW51YWwtY29yZS1hZHYueG1sIGIvZG9jcy94bWwvbWFudWFsLWNvcmUtYWR2LnhtbAppbmRleCA0MDljZGRmLi5iNzY3ODI1IDEwMDY0NAotLS0gYS9kb2NzL3htbC9tYW51YWwtY29yZS1hZHYueG1sCisrKyBiL2RvY3MveG1sL21hbnVhbC1jb3JlLWFkdi54bWwKQEAgLTE0NzksNiArMTQ3OSwxNCBAQAogICA8L2xpc3RpdGVtPgogCiAgIDxsaXN0aXRlbT4KKyAgICA8cGFyYT48dmFybmFtZT52LmluZm8gdW53aW5kICAmbHQ7YWRkciZndDsgWyZsdDtsZW4mZ3Q7XTwvdmFybmFtZT4gc2hvd3MKKyAgICB0aGUgQ0ZJIHVud2luZCBkZWJ1ZyBpbmZvIGZvciB0aGUgYWRkcmVzcyByYW5nZSBbYWRkciwgYWRkcitsZW4tMV0uCisgICAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgJmx0O2xlbiZndDsgaXMgMSwgZ2l2aW5nIHRoZSB1bndpbmQgaW5mb3JtYXRpb24KKyAgICBmb3IgdGhlIGluc3RydWN0aW9uIGF0ICZsdDthZGRyJmd0Oy4KKyAgICA8L3BhcmE+CisgIDwvbGlzdGl0ZW0+CisKKyAgPGxpc3RpdGVtPgogICAgIDxwYXJhPjx2YXJuYW1lPnYuc2V0IGRlYnVnbG9nICZsdDtpbnR2YWx1ZSZndDs8L3Zhcm5hbWU+IHNldHMgdGhlCiAgICAgVmFsZ3JpbmQgZGVidWcgbG9nIGxldmVsIHRvICZsdDtpbnR2YWx1ZSZndDsuICBUaGlzIGFsbG93cyB0bwogICAgIGR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgbG9nIGxldmVsIG9mIFZhbGdyaW5kIGUuZy4gd2hlbiBhIHByb2JsZW0KZGlmZiAtLWdpdCBhL2RvY3MveG1sL21hbnVhbC1jb3JlLnhtbCBiL2RvY3MveG1sL21hbnVhbC1jb3JlLnhtbAppbmRleCA1NDM3YmQ1Li5lZGRhOGExIDEwMDY0NAotLS0gYS9kb2NzL3htbC9tYW51YWwtY29yZS54bWwKKysrIGIvZG9jcy94bWwvbWFudWFsLWNvcmUueG1sCkBAIC0xNDEyLDExICsxNDEyLDEzIEBACiAgICAgICBhZnRlciBldmVyeSBlcnJvciBzaG93biBhbmQgcHJpbnQgdGhlIGxpbmU6CiAgICAgICA8bGl0ZXJhbGxheW91dD48Y29tcHV0ZXJvdXRwdXQ+ICAgIC0tLS0gUHJpbnQgc3VwcHJlc3Npb24gPyAtLS0gW1JldHVybi9OL24vWS95L0MvY10gLS0tLTwvY29tcHV0ZXJvdXRwdXQ+PC9saXRlcmFsbGF5b3V0PgogCi0gICAgICBUaGUgcHJvbXB0J3MgYmVoYXZpb3VyIGlzIHRoZSBzYW1lIGFzIGZvciB0aGUKLSAgICAgIDxvcHRpb24+LS1kYi1hdHRhY2g8L29wdGlvbj4gb3B0aW9uIChzZWUgYmVsb3cpLjwvcGFyYT4KKyAgICAgIFByZXNzaW5nIDx2YXJuYW1lPlJldDwvdmFybmFtZT4sIG9yIDx2YXJuYW1lPk4gUmV0PC92YXJuYW1lPiBvcgorICAgICAgPHZhcm5hbWU+biBSZXQ8L3Zhcm5hbWU+LCBjYXVzZXMgVmFsZ3JpbmQgY29udGludWUgZXhlY3V0aW9uIHdpdGhvdXQKKyAgICAgIHByaW50aW5nIGEgc3VwcHJlc3Npb24gZm9yIHRoaXMgZXJyb3IuPC9wYXJhPgogCi0gICAgICA8cGFyYT5JZiB5b3UgY2hvb3NlIHRvLCBWYWxncmluZCB3aWxsIHByaW50IG91dCBhIHN1cHByZXNzaW9uIGZvcgotICAgICAgdGhpcyBlcnJvci4gIFlvdSBjYW4gdGhlbiBjdXQgYW5kIHBhc3RlIGl0IGludG8gYSBzdXBwcmVzc2lvbiBmaWxlCisgICAgICA8cGFyYT5QcmVzc2luZyA8dmFybmFtZT5ZIFJldDwvdmFybmFtZT4gb3IKKyAgICAgIDx2YXJuYW1lPnkgUmV0PC92YXJuYW1lPiBjYXVzZXMgVmFsZ3JpbmQgdG8gd3JpdGUgYSBzdXBwcmVzc2lvbgorICAgICAgZm9yIHRoaXMgZXJyb3IuICBZb3UgY2FuIHRoZW4gY3V0IGFuZCBwYXN0ZSBpdCBpbnRvIGEgc3VwcHJlc3Npb24gZmlsZQogICAgICAgaWYgeW91IGRvbid0IHdhbnQgdG8gaGVhciBhYm91dCB0aGUgZXJyb3IgaW4gdGhlIGZ1dHVyZS48L3BhcmE+CiAKICAgICAgIDxwYXJhPldoZW4gc2V0IHRvIDx2YXJuYW1lPmFsbDwvdmFybmFtZT4sIFZhbGdyaW5kIHdpbGwgcHJpbnQgYQpAQCAtMTQ1MSw3NiArMTQ1MywxMiBAQAogICAgIDwvbGlzdGl0ZW0+CiAgIDwvdmFybGlzdGVudHJ5PgogCi0gIDx2YXJsaXN0ZW50cnkgaWQ9Im9wdC5kYi1hdHRhY2giIHhyZWZsYWJlbD0iLS1kYi1hdHRhY2giPgotICAgIDx0ZXJtPgotICAgICAgPG9wdGlvbj48IVtDREFUQVstLWRiLWF0dGFjaD08eWVzfG5vPiBbZGVmYXVsdDogbm9dIF1dPjwvb3B0aW9uPgotICAgIDwvdGVybT4KLSAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT5XaGVuIGVuYWJsZWQsIFZhbGdyaW5kIHdpbGwgcGF1c2UgYWZ0ZXIgZXZlcnkgZXJyb3Igc2hvd24KLSAgICAgIGFuZCBwcmludCB0aGUgbGluZToKLSAgICAgIDxsaXRlcmFsbGF5b3V0Pjxjb21wdXRlcm91dHB1dD4gICAgLS0tLSBBdHRhY2ggdG8gZGVidWdnZXIgPyAtLS0gW1JldHVybi9OL24vWS95L0MvY10gLS0tLTwvY29tcHV0ZXJvdXRwdXQ+PC9saXRlcmFsbGF5b3V0PgotCi0gICAgICBQcmVzc2luZyA8dmFybmFtZT5SZXQ8L3Zhcm5hbWU+LCBvciA8dmFybmFtZT5OIFJldDwvdmFybmFtZT4gb3IKLSAgICAgIDx2YXJuYW1lPm4gUmV0PC92YXJuYW1lPiwgY2F1c2VzIFZhbGdyaW5kIG5vdCB0byBzdGFydCBhIGRlYnVnZ2VyCi0gICAgICBmb3IgdGhpcyBlcnJvci48L3BhcmE+Ci0KLSAgICAgIDxwYXJhPlByZXNzaW5nIDx2YXJuYW1lPlkgUmV0PC92YXJuYW1lPiBvcgotICAgICAgPHZhcm5hbWU+eSBSZXQ8L3Zhcm5hbWU+IGNhdXNlcyBWYWxncmluZCB0byBzdGFydCBhIGRlYnVnZ2VyIGZvcgotICAgICAgdGhlIHByb2dyYW0gYXQgdGhpcyBwb2ludC4gV2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCB3aXRoIHRoZQotICAgICAgZGVidWdnZXIsIHF1aXQgZnJvbSBpdCwgYW5kIHRoZSBwcm9ncmFtIHdpbGwgY29udGludWUuIFRyeWluZyB0bwotICAgICAgY29udGludWUgZnJvbSBpbnNpZGUgdGhlIGRlYnVnZ2VyIGRvZXNuJ3Qgd29yay48L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotICAgICAgTm90ZTogaWYgeW91IHVzZSBHREIsIG1vcmUgcG93ZXJmdWwgZGVidWdnaW5nIHN1cHBvcnQgaXMKLSAgICAgIHByb3ZpZGVkIGJ5IHRoZSA8b3B0aW9uPi0tdmdkYj08L29wdGlvbj4gPHZhcm5hbWU+eWVzPC92YXJuYW1lPgotICAgICAgb3IgPHZhcm5hbWU+ZnVsbDwvdmFybmFtZT4gdmFsdWUuICBUaGlzIGFjdGl2YXRlcyBWYWxncmluZCdzCi0gICAgICBpbnRlcm5hbCBnZGJzZXJ2ZXIsIHdoaWNoIHByb3ZpZGVzIG1vcmUtb3ItbGVzcyBmdWxsIEdEQi1zdHlsZQotICAgICAgY29udHJvbCBvZiB0aGUgYXBwbGljYXRpb246IGluc2VydGlvbiBvZiBicmVha3BvaW50cywgY29udGludWluZyAKLSAgICAgIGZyb20gaW5zaWRlIEdEQiwgaW5mZXJpb3IgZnVuY3Rpb24gY2FsbHMsIGFuZCBtdWNoIG1vcmUuCi0gICAgICA8L3BhcmE+IAotCi0gICAgICA8cGFyYT48dmFybmFtZT5DIFJldDwvdmFybmFtZT4gb3IgPHZhcm5hbWU+YyBSZXQ8L3Zhcm5hbWU+IGNhdXNlcwotICAgICAgVmFsZ3JpbmQgbm90IHRvIHN0YXJ0IGEgZGVidWdnZXIsIGFuZCBub3QgdG8gYXNrIGFnYWluLjwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgotICA8L3Zhcmxpc3RlbnRyeT4KLQotICA8dmFybGlzdGVudHJ5IGlkPSJvcHQuZGItY29tbWFuZCIgeHJlZmxhYmVsPSItLWRiLWNvbW1hbmQiPgotICAgIDx0ZXJtPgotICAgICAgPG9wdGlvbj48IVtDREFUQVstLWRiLWNvbW1hbmQ9PGNvbW1hbmQ+IFtkZWZhdWx0OiBnZGIgLW53ICVmICVwXSBdXT48L29wdGlvbj4KLSAgICA8L3Rlcm0+Ci0gICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+U3BlY2lmeSB0aGUgZGVidWdnZXIgdG8gdXNlIHdpdGggdGhlCi0gICAgICA8b3B0aW9uPi0tZGItYXR0YWNoPC9vcHRpb24+IGNvbW1hbmQuIFRoZSBkZWZhdWx0IGRlYnVnZ2VyIGlzCi0gICAgICBHREIuIFRoaXMgb3B0aW9uIGlzIGEgdGVtcGxhdGUgdGhhdCBpcyBleHBhbmRlZCBieSBWYWxncmluZCBhdAotICAgICAgcnVudGltZS4gIDxsaXRlcmFsPiVmPC9saXRlcmFsPiBpcyByZXBsYWNlZCB3aXRoIHRoZSBleGVjdXRhYmxlJ3MKLSAgICAgIGZpbGUgbmFtZSBhbmQgPGxpdGVyYWw+JXA8L2xpdGVyYWw+IGlzIHJlcGxhY2VkIGJ5IHRoZSBwcm9jZXNzIElECi0gICAgICBvZiB0aGUgZXhlY3V0YWJsZS48L3BhcmE+Ci0KLSAgICAgIDxwYXJhPlRoaXMgc3BlY2lmaWVzIGhvdyBWYWxncmluZCB3aWxsIGludm9rZSB0aGUgZGVidWdnZXIuICBCeQotICAgICAgZGVmYXVsdCBpdCB3aWxsIHVzZSB3aGF0ZXZlciBHREIgaXMgZGV0ZWN0ZWQgYXQgYnVpbGQgdGltZSwgd2hpY2gKLSAgICAgIGlzIHVzdWFsbHkgPGNvbXB1dGVyb3V0cHV0Pi91c3IvYmluL2dkYjwvY29tcHV0ZXJvdXRwdXQ+LiAgVXNpbmcKLSAgICAgIHRoaXMgY29tbWFuZCwgeW91IGNhbiBzcGVjaWZ5IHNvbWUgYWx0ZXJuYXRpdmUgY29tbWFuZCB0byBpbnZva2UKLSAgICAgIHRoZSBkZWJ1Z2dlciB5b3Ugd2FudCB0byB1c2UuPC9wYXJhPgotCi0gICAgICA8cGFyYT5UaGUgY29tbWFuZCBzdHJpbmcgZ2l2ZW4gY2FuIGluY2x1ZGUgb25lIG9yIGluc3RhbmNlcyBvZiB0aGUKLSAgICAgIDxsaXRlcmFsPiVwPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+JWY8L2xpdGVyYWw+IGV4cGFuc2lvbnMuIEVhY2gKLSAgICAgIGluc3RhbmNlIG9mIDxsaXRlcmFsPiVwPC9saXRlcmFsPiBleHBhbmRzIHRvIHRoZSBQSUQgb2YgdGhlCi0gICAgICBwcm9jZXNzIHRvIGJlIGRlYnVnZ2VkIGFuZCBlYWNoIGluc3RhbmNlIG9mIDxsaXRlcmFsPiVmPC9saXRlcmFsPgotICAgICAgZXhwYW5kcyB0byB0aGUgcGF0aCB0byB0aGUgZXhlY3V0YWJsZSBmb3IgdGhlIHByb2Nlc3MgdG8gYmUKLSAgICAgIGRlYnVnZ2VkLjwvcGFyYT4KLQotICAgICAgPHBhcmE+U2luY2UgPGNvbXB1dGVyb3V0cHV0PiZsdDtjb21tYW5kJmd0OzwvY29tcHV0ZXJvdXRwdXQ+IGlzIGxpa2VseQotICAgICAgdG8gY29udGFpbiBzcGFjZXMsIHlvdSB3aWxsIG5lZWQgdG8gcHV0IHRoaXMgZW50aXJlIG9wdGlvbiBpbgotICAgICAgcXVvdGVzIHRvIGVuc3VyZSBpdCBpcyBjb3JyZWN0bHkgaGFuZGxlZCBieSB0aGUgc2hlbGwuPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+Ci0gIDwvdmFybGlzdGVudHJ5PgotCiAgIDx2YXJsaXN0ZW50cnkgaWQ9Im9wdC5pbnB1dC1mZCIgeHJlZmxhYmVsPSItLWlucHV0LWZkIj4KICAgICA8dGVybT4KICAgICAgIDxvcHRpb24+PCFbQ0RBVEFbLS1pbnB1dC1mZD08bnVtYmVyPiBbZGVmYXVsdDogMCwgc3RkaW5dIF1dPjwvb3B0aW9uPgogICAgIDwvdGVybT4KICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT5XaGVuIHVzaW5nIDxvcHRpb24+LS1kYi1hdHRhY2g9eWVzPC9vcHRpb24+IG9yCisgICAgICA8cGFyYT5XaGVuIHVzaW5nCiAgICAgICA8b3B0aW9uPi0tZ2VuLXN1cHByZXNzaW9ucz15ZXM8L29wdGlvbj4sIFZhbGdyaW5kIHdpbGwgc3RvcCBzbyBhcwogICAgICAgdG8gcmVhZCBrZXlib2FyZCBpbnB1dCBmcm9tIHlvdSB3aGVuIGVhY2ggZXJyb3Igb2NjdXJzLiAgQnkKICAgICAgIGRlZmF1bHQgaXQgcmVhZHMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQgKHN0ZGluKSwgd2hpY2ggaXMKQEAgLTE1MzIsNyArMTQ3MCw3IEBACiAKICAgPHZhcmxpc3RlbnRyeSBpZD0ib3B0LmRzeW11dGlsIiB4cmVmbGFiZWw9Ii0tZHN5bXV0aWwiPgogICAgIDx0ZXJtPgotICAgICAgPG9wdGlvbj48IVtDREFUQVstLWRzeW11dGlsPW5vfHllcyBbbm9dIF1dPjwvb3B0aW9uPgorICAgICAgPG9wdGlvbj48IVtDREFUQVstLWRzeW11dGlsPW5vfHllcyBbeWVzXSBdXT48L29wdGlvbj4KICAgICA8L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+VGhpcyBvcHRpb24gaXMgb25seSByZWxldmFudCB3aGVuIHJ1bm5pbmcgVmFsZ3JpbmQgb24KQEAgLTE3NjYsNTkgKzE3MDQsNjAgQEAKIAogICA8dmFybGlzdGVudHJ5IGlkPSJvcHQuc21jLWNoZWNrIiB4cmVmbGFiZWw9Ii0tc21jLWNoZWNrIj4KICAgICA8dGVybT4KLSAgICAgIDxvcHRpb24+PCFbQ0RBVEFbLS1zbWMtY2hlY2s9PG5vbmV8c3RhY2t8YWxsfGFsbC1ub24tZmlsZT4gW2RlZmF1bHQ6IHN0YWNrXSBdXT48L29wdGlvbj4KKyAgICAgIDxvcHRpb24+PCFbQ0RBVEFbLS1zbWMtY2hlY2s9PG5vbmV8c3RhY2t8YWxsfGFsbC1ub24tZmlsZT4KKyAgICAgIFtkZWZhdWx0OiBhbGwtbm9uLWZpbGUgZm9yIHg4Ni9hbWQ2NC9zMzkweCwgc3RhY2sgZm9yIG90aGVyIGFyY2hzXSBdXT48L29wdGlvbj4KICAgICA8L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+VGhpcyBvcHRpb24gY29udHJvbHMgVmFsZ3JpbmQncyBkZXRlY3Rpb24gb2Ygc2VsZi1tb2RpZnlpbmcKLSAgICAgIGNvZGUuICBJZiBubyBjaGVja2luZyBpcyBkb25lLCBpZiBhIHByb2dyYW0gZXhlY3V0ZXMgc29tZSBjb2RlLCB0aGVuCi0gICAgICBvdmVyd3JpdGVzIGl0IHdpdGggbmV3IGNvZGUsIGFuZCBleGVjdXRlcyB0aGUgbmV3IGNvZGUsIFZhbGdyaW5kIHdpbGwKLSAgICAgIGNvbnRpbnVlIHRvIGV4ZWN1dGUgdGhlIHRyYW5zbGF0aW9ucyBpdCBtYWRlIGZvciB0aGUgb2xkIGNvZGUuICBUaGlzCi0gICAgICB3aWxsIGxpa2VseSBsZWFkIHRvIGluY29ycmVjdCBiZWhhdmlvdXIgYW5kL29yIGNyYXNoZXMuPC9wYXJhPgotICAgICAgCi0gICAgICA8cGFyYT5WYWxncmluZCBoYXMgZm91ciBsZXZlbHMgb2Ygc2VsZi1tb2RpZnlpbmcgY29kZSBkZXRlY3Rpb246Ci0gICAgICBubyBkZXRlY3Rpb24sIGRldGVjdCBzZWxmLW1vZGlmeWluZyBjb2RlIG9uIHRoZSBzdGFjayAod2hpY2ggaXMgdXNlZCBieQotICAgICAgR0NDIHRvIGltcGxlbWVudCBuZXN0ZWQgZnVuY3Rpb25zKSwgZGV0ZWN0IHNlbGYtbW9kaWZ5aW5nIGNvZGUKLSAgICAgIGV2ZXJ5d2hlcmUsIGFuZCBkZXRlY3Qgc2VsZi1tb2RpZnlpbmcgY29kZSBldmVyeXdoZXJlIGV4Y2VwdCBpbgotICAgICAgZmlsZS1iYWNrZWQgbWFwcGluZ3MuCi0KLSAgICAgIE5vdGUgdGhhdCB0aGUgZGVmYXVsdCBvcHRpb24gd2lsbCBjYXRjaCB0aGUgdmFzdCBtYWpvcml0eQotICAgICAgb2YgY2FzZXMuICBUaGUgbWFpbiBjYXNlIGl0IHdpbGwgbm90IGNhdGNoIGlzIHByb2dyYW1zIHN1Y2ggYXMgSklUCi0gICAgICBjb21waWxlcnMgdGhhdCBkeW5hbWljYWxseSBnZW5lcmF0ZSBjb2RlIDxlbXBoYXNpcz5hbmQ8L2VtcGhhc2lzPgotICAgICAgc3Vic2VxdWVudGx5IG92ZXJ3cml0ZSBwYXJ0IG9yIGFsbCBvZiBpdC4gIFJ1bm5pbmcgd2l0aAotICAgICAgPHZhcm5hbWU+YWxsPC92YXJuYW1lPiB3aWxsIHNsb3cgVmFsZ3JpbmQgZG93biBub3RpY2VhYmx5LgotICAgICAgUnVubmluZyB3aXRoCi0gICAgICA8dmFybmFtZT5ub25lPC92YXJuYW1lPiB3aWxsIHJhcmVseSBzcGVlZCB0aGluZ3MgdXAsIHNpbmNlIHZlcnkgbGl0dGxlCi0gICAgICBjb2RlIGdldHMgcHV0IG9uIHRoZSBzdGFjayBmb3IgbW9zdCBwcm9ncmFtcy4gIFRoZQotICAgICAgPGZ1bmN0aW9uPlZBTEdSSU5EX0RJU0NBUkRfVFJBTlNMQVRJT05TPC9mdW5jdGlvbj4gY2xpZW50Ci0gICAgICByZXF1ZXN0IGlzIGFuIGFsdGVybmF0aXZlIHRvIDxvcHRpb24+LS1zbWMtY2hlY2s9YWxsPC9vcHRpb24+Ci0gICAgICB0aGF0IHJlcXVpcmVzIG1vcmUgcHJvZ3JhbW1lciBlZmZvcnQgYnV0IGFsbG93cyBWYWxncmluZCB0byBydW4KLSAgICAgIHlvdXIgcHJvZ3JhbSBmYXN0ZXIsIGJ5IHRlbGxpbmcgaXQgcHJlY2lzZWx5IHdoZW4gdHJhbnNsYXRpb25zCi0gICAgICBuZWVkIHRvIGJlIHJlLW1hZGUuCi0gICAgICA8IS0tIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBpdCBjYXVzZXMgYnJva2VuIGxpbmtzIGluIHRoZSBtYW4gcGFnZQotICAgICAgOyAgc2VlIDx4cmVmCi0gICAgICBsaW5rZW5kPSJtYW51YWwtY29yZS1hZHYuY2xpZW50cmVxIi8+IGZvciBtb3JlIGRldGFpbHMuCi0gICAgICAtLT4KLSAgICAgIDwvcGFyYT4KLQorICAgICAgIGNvZGUuICBJZiBubyBjaGVja2luZyBpcyBkb25lLCB3aGVuIGEgcHJvZ3JhbSBleGVjdXRlcyBzb21lIGNvZGUsIHRoZW4KKyAgICAgICBvdmVyd3JpdGVzIGl0IHdpdGggbmV3IGNvZGUsIGFuZCBleGVjdXRlcyB0aGUgbmV3IGNvZGUsIFZhbGdyaW5kIHdpbGwKKyAgICAgICBjb250aW51ZSB0byBleGVjdXRlIHRoZSB0cmFuc2xhdGlvbnMgaXQgbWFkZSBmb3IgdGhlIG9sZCBjb2RlLiAgVGhpcworICAgICAgIHdpbGwgbGlrZWx5IGxlYWQgdG8gaW5jb3JyZWN0IGJlaGF2aW91ciBhbmQvb3IgY3Jhc2hlcy48L3BhcmE+CisgICAgICA8cGFyYT5Gb3IgIm1vZGVybiIgYXJjaGl0ZWN0dXJlcyAtLSBhbnl0aGluZyB0aGF0J3Mgbm90IHg4NiwKKyAgICAgICAgYW1kNjQgb3IgczM5MHggLS0gdGhlIGRlZmF1bHQgaXMgPHZhcm5hbWU+c3RhY2s8L3Zhcm5hbWU+LgorICAgICAgICBUaGlzIGlzIGJlY2F1c2UgYSBjb3JyZWN0IHByb2dyYW0gbXVzdCB0YWtlIGV4cGxpY2l0IGFjdGlvbgorICAgICAgICB0byByZWVzdGFibGlzaCBELUkgY2FjaGUgY29oZXJlbmNlIGZvbGxvd2luZyBjb2RlCisgICAgICAgIG1vZGlmaWNhdGlvbi4gIFZhbGdyaW5kIG9ic2VydmVzIGFuZCBob25vdXJzIHN1Y2ggYWN0aW9ucywKKyAgICAgICAgd2l0aCB0aGUgcmVzdWx0IHRoYXQgc2VsZi1tb2RpZnlpbmcgY29kZSBpcyB0cmFuc3BhcmVudGx5CisgICAgICAgIGhhbmRsZWQgd2l0aCB6ZXJvIGV4dHJhIGNvc3QuPC9wYXJhPgorICAgICAgIDxwYXJhPkZvciB4ODYsIGFtZDY0IGFuZCBzMzkweCwgdGhlIHByb2dyYW0gaXMgbm90IHJlcXVpcmVkIHRvCisgICAgICAgIG5vdGlmeSB0aGUgaGFyZHdhcmUgb2YgcmVxdWlyZWQgRC1JIGNvaGVyZW5jZSBzeW5jaW5nLiAgSGVuY2UKKyAgICAgICAgdGhlIGRlZmF1bHQgaXMgPHZhcm5hbWU+YWxsLW5vbi1maWxlPC92YXJuYW1lPiwgd2hpY2ggY292ZXJzCisgICAgICAgIHRoZSBub3JtYWwgY2FzZSBvZiBnZW5lcmF0aW5nIGNvZGUgaW50byBhbiBhbm9ueW1vdXMKKyAgICAgICAgKG5vbi1maWxlLWJhY2tlZCkgbW1hcCdkIGFyZWEuPC9wYXJhPgorICAgICAgIDxwYXJhPlRoZSBtZWFuaW5ncyBvZiB0aGUgZm91ciBhdmFpbGFibGUgc2V0dGluZ3MgYXJlIGFzCisgICAgICAgIGZvbGxvd3MuICBObyBkZXRlY3Rpb24gKDx2YXJuYW1lPm5vbmU8L3Zhcm5hbWU+KSwKKyAgICAgICAgZGV0ZWN0IHNlbGYtbW9kaWZ5aW5nIGNvZGUKKyAgICAgICAgb24gdGhlIHN0YWNrICh3aGljaCBpcyB1c2VkIGJ5IEdDQyB0byBpbXBsZW1lbnQgbmVzdGVkCisgICAgICAgIGZ1bmN0aW9ucykgKDx2YXJuYW1lPnN0YWNrPC92YXJuYW1lPiksIGRldGVjdCBzZWxmLW1vZGlmeWluZyBjb2RlCisgICAgICAgIGV2ZXJ5d2hlcmUgKDx2YXJuYW1lPmFsbDwvdmFybmFtZT4pLCBhbmQgZGV0ZWN0CisgICAgICAgIHNlbGYtbW9kaWZ5aW5nIGNvZGUgZXZlcnl3aGVyZSBleGNlcHQgaW4gZmlsZS1iYWNrZWQKKyAgICAgICAgbWFwcGluZ3MgKDx2YXJuYW1lPmFsbC1ub24tZmlsZTwvdmFybmFtZT4pLjwvcGFyYT4KKyAgICAgICA8cGFyYT5SdW5uaW5nIHdpdGggPHZhcm5hbWU+YWxsPC92YXJuYW1lPiB3aWxsIHNsb3cgVmFsZ3JpbmQKKyAgICAgICAgZG93biBub3RpY2VhYmx5LiAgUnVubmluZyB3aXRoIDx2YXJuYW1lPm5vbmU8L3Zhcm5hbWU+IHdpbGwKKyAgICAgICAgcmFyZWx5IHNwZWVkIHRoaW5ncyB1cCwgc2luY2UgdmVyeSBsaXR0bGUgY29kZSBnZXRzCisgICAgICAgIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBpbiBtb3N0IHByb2dyYW1zLiAgVGhlCisgICAgICAgIDxmdW5jdGlvbj5WQUxHUklORF9ESVNDQVJEX1RSQU5TTEFUSU9OUzwvZnVuY3Rpb24+IGNsaWVudAorICAgICAgICByZXF1ZXN0IGlzIGFuIGFsdGVybmF0aXZlIHRvIDxvcHRpb24+LS1zbWMtY2hlY2s9YWxsPC9vcHRpb24+CisgICAgICAgIGFuZCA8b3B0aW9uPi0tc21jLWNoZWNrPWFsbC1ub24tZmlsZTwvb3B0aW9uPgorICAgICAgICB0aGF0IHJlcXVpcmVzIG1vcmUgcHJvZ3JhbW1lciBlZmZvcnQgYnV0IGFsbG93cyBWYWxncmluZCB0byBydW4KKyAgICAgICAgeW91ciBwcm9ncmFtIGZhc3RlciwgYnkgdGVsbGluZyBpdCBwcmVjaXNlbHkgd2hlbiB0cmFuc2xhdGlvbnMKKyAgICAgICAgbmVlZCB0byBiZSByZS1tYWRlLgorICAgICAgICA8IS0tIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBpdCBjYXVzZXMgYnJva2VuIGxpbmtzIGluIHRoZSBtYW4gcGFnZQorICAgICAgICA7ICBzZWUgPHhyZWYKKyAgICAgICAgbGlua2VuZD0ibWFudWFsLWNvcmUtYWR2LmNsaWVudHJlcSIvPiBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAgICAtLT4KKyAgICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+PG9wdGlvbj4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L29wdGlvbj4gcHJvdmlkZXMgYQotICAgICAgY2hlYXBlciBidXQgbW9yZSBsaW1pdGVkIHZlcnNpb24KLSAgICAgIG9mIDxvcHRpb24+LS1zbWMtY2hlY2s9YWxsPC9vcHRpb24+LiAgSXQgYWRkcyBjaGVja3MgdG8gYW55Ci0gICAgICB0cmFuc2xhdGlvbnMgdGhhdCBkbyBub3Qgb3JpZ2luYXRlIGZyb20gZmlsZS1iYWNrZWQgbWVtb3J5Ci0gICAgICBtYXBwaW5ncy4gIFR5cGljYWwgYXBwbGljYXRpb25zIHRoYXQgZ2VuZXJhdGUgY29kZSwgZm9yIGV4YW1wbGUKLSAgICAgIEpJVHMgaW4gd2ViIGJyb3dzZXJzLCBnZW5lcmF0ZSBjb2RlIGludG8gYW5vbnltb3VzIG1tYXBlZCBhcmVhcywKLSAgICAgIHdoZXJlYXMgdGhlICJmaXhlZCIgY29kZSBvZiB0aGUgYnJvd3NlciBhbHdheXMgbGl2ZXMgaW4KLSAgICAgIGZpbGUtYmFja2VkIG1hcHBpbmdzLiAgPG9wdGlvbj4tLXNtYy1jaGVjaz1hbGwtbm9uLWZpbGU8L29wdGlvbj4KLSAgICAgIHRha2VzIGFkdmFudGFnZSBvZiB0aGlzIG9ic2VydmF0aW9uLCBsaW1pdGluZyB0aGUgb3ZlcmhlYWQgb2YKLSAgICAgIGNoZWNraW5nIHRvIGNvZGUgd2hpY2ggaXMgbGlrZWx5IHRvIGJlIEpJVCBnZW5lcmF0ZWQuPC9wYXJhPgotCi0gICAgICA8cGFyYT5Tb21lIGFyY2hpdGVjdHVyZXMgKGluY2x1ZGluZyBwcGMzMiwgcHBjNjQsIEFSTSBhbmQgTUlQUykKLSAgICAgIHJlcXVpcmUgcHJvZ3JhbXMgd2hpY2ggY3JlYXRlIGNvZGUgYXQgcnVudGltZSB0byBmbHVzaCB0aGUKLSAgICAgIGluc3RydWN0aW9uIGNhY2hlIGluIGJldHdlZW4gY29kZSBnZW5lcmF0aW9uIGFuZCBmaXJzdCB1c2UuCi0gICAgICBWYWxncmluZCBvYnNlcnZlcyBhbmQgaG9ub3VycyBzdWNoIGluc3RydWN0aW9ucy4gIEhlbmNlLCBvbgotICAgICAgcHBjMzIvTGludXgsIHBwYzY0L0xpbnV4IGFuZCBBUk0vTGludXgsIFZhbGdyaW5kIGFsd2F5cyBwcm92aWRlcwotICAgICAgY29tcGxldGUsIHRyYW5zcGFyZW50IHN1cHBvcnQgZm9yIHNlbGYtbW9kaWZ5aW5nIGNvZGUuICBJdCBpcwotICAgICAgb25seSBvbiBwbGF0Zm9ybXMgc3VjaCBhcyB4ODYvTGludXgsIEFNRDY0L0xpbnV4LCB4ODYvRGFyd2luIGFuZAotICAgICAgQU1ENjQvRGFyd2luIHRoYXQgeW91IG5lZWQgdG8gdXNlIHRoaXMgb3B0aW9uLjwvcGFyYT4KKyAgICAgICBjaGVhcGVyIGJ1dCBtb3JlIGxpbWl0ZWQgdmVyc2lvbgorICAgICAgIG9mIDxvcHRpb24+LS1zbWMtY2hlY2s9YWxsPC9vcHRpb24+LiAgSXQgYWRkcyBjaGVja3MgdG8gYW55CisgICAgICAgdHJhbnNsYXRpb25zIHRoYXQgZG8gbm90IG9yaWdpbmF0ZSBmcm9tIGZpbGUtYmFja2VkIG1lbW9yeQorICAgICAgIG1hcHBpbmdzLiAgVHlwaWNhbCBhcHBsaWNhdGlvbnMgdGhhdCBnZW5lcmF0ZSBjb2RlLCBmb3IgZXhhbXBsZQorICAgICAgIEpJVHMgaW4gd2ViIGJyb3dzZXJzLCBnZW5lcmF0ZSBjb2RlIGludG8gYW5vbnltb3VzIG1tYXBlZCBhcmVhcywKKyAgICAgICB3aGVyZWFzIHRoZSAiZml4ZWQiIGNvZGUgb2YgdGhlIGJyb3dzZXIgYWx3YXlzIGxpdmVzIGluCisgICAgICAgZmlsZS1iYWNrZWQgbWFwcGluZ3MuICA8b3B0aW9uPi0tc21jLWNoZWNrPWFsbC1ub24tZmlsZTwvb3B0aW9uPgorICAgICAgIHRha2VzIGFkdmFudGFnZSBvZiB0aGlzIG9ic2VydmF0aW9uLCBsaW1pdGluZyB0aGUgb3ZlcmhlYWQgb2YKKyAgICAgICBjaGVja2luZyB0byBjb2RlIHdoaWNoIGlzIGxpa2VseSB0byBiZSBKSVQgZ2VuZXJhdGVkLjwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtMTgzMiw4ICsxNzcxLDggQEAKICAgICAgIHN0YXJ0dXAgYW5kIG1ha2VzIGl0IHVzZSBtb3JlIG1lbW9yeSAodHlwaWNhbGx5IGZvciBlYWNoIGlubGluZWQKICAgICAgIHBpZWNlIG9mIGNvZGUsIDYgd29yZHMgYW5kIHNwYWNlIGZvciB0aGUgZnVuY3Rpb24gbmFtZSksIGJ1dCBpdAogICAgICAgcmVzdWx0cyBpbiBtb3JlIGRlc2NyaXB0aXZlIHN0YWNrdHJhY2VzLiAgRm9yIHRoZSAzLjEwLjAKLSAgICAgIHJlbGVhc2UsIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb25seSBmb3IgTGludXgKLSAgICAgIGFuZCBBbmRyb2lkIHRhcmdldHMgYW5kIG9ubHkgZm9yIHRoZSB0b29scyBNZW1jaGVjaywgSGVsZ3JpbmQKKyAgICAgIHJlbGVhc2UsIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb25seSBmb3IgTGludXgsCisgICAgICBBbmRyb2lkIGFuZCBTb2xhcmlzIHRhcmdldHMgYW5kIG9ubHkgZm9yIHRoZSB0b29scyBNZW1jaGVjaywgSGVsZ3JpbmQKICAgICAgIGFuZCBEUkQuICBIZXJlIGlzIGFuIGV4YW1wbGUgb2Ygc29tZSBzdGFja3RyYWNlcyB3aXRoCiAgICAgICA8b3B0aW9uPi0tcmVhZC1pbmxpbmUtaW5mbz1ubzwvb3B0aW9uPjoKIDwvcGFyYT4KQEAgLTIwMDUsNyArMTk0NCw3IEBACiAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICA8cGFyYT48b3B0aW9uPmxheC1pb2N0bHM6IDwvb3B0aW9uPiBCZSB2ZXJ5IGxheCBhYm91dCBpb2N0bAogICAgICAgICAgIGhhbmRsaW5nOyB0aGUgb25seSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIHNpemUgaXMKLSAgICAgICAgICBjb3JyZWN0LiBEb2Vzbid0IHJlcXVpcmUgdGhlIGZ1bGwgYnVmZmVyIHRvIGJlIGluaXRpYWxpemVkCisgICAgICAgICAgY29ycmVjdC4gRG9lc24ndCByZXF1aXJlIHRoZSBmdWxsIGJ1ZmZlciB0byBiZSBpbml0aWFsaXNlZAogICAgICAgICAgIHdoZW4gd3JpdGluZy4gIFdpdGhvdXQgdGhpcywgdXNpbmcgc29tZSBkZXZpY2UgZHJpdmVycyB3aXRoIGEKICAgICAgICAgICBsYXJnZSBudW1iZXIgb2Ygc3RyYW5nZSBpb2N0bCBjb21tYW5kcyBiZWNvbWVzIHZlcnkKICAgICAgICAgICB0aXJlc29tZS48L3BhcmE+CkBAIC0yMDcxLDYgKzIwMTAsMTQgQEAKICAgICAgICAgICAgIHRlc3RlZCB3aXRoIHZhcmlvdXMgZ2xpYmMgdmVyc2lvbnMgKGUuZy4gMi4xMSwgMi4xNiwgMi4xOCkKICAgICAgICAgICAgIG9uIHZhcmlvdXMgcGxhdGZvcm1zLjwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgIDxwYXJhPjxvcHRpb24+bGF4LWRvb3JzOiA8L29wdGlvbj4gKFNvbGFyaXMgb25seSkgQmUgdmVyeSBsYXgKKyAgICAgICAgICBhYm91dCBkb29yIHN5c2NhbGwgaGFuZGxpbmcgb3ZlciB1bnJlY29nbmlzZWQgZG9vciBmaWxlCisgICAgICAgICAgZGVzY3JpcHRvcnMuIERvZXMgbm90IHJlcXVpcmUgdGhhdCBmdWxsIGJ1ZmZlciBpcyBpbml0aWFsaXNlZAorICAgICAgICAgIHdoZW4gd3JpdGluZy4gV2l0aG91dCB0aGlzLCBwcm9ncmFtcyB1c2luZyBsaWJkb29yKDNMSUIpCisgICAgICAgICAgZnVuY3Rpb25hbGl0eSB3aXRoIGNvbXBsZXRlbHkgcHJvcHJpZXRhcnkgc2VtYW50aWNzIG1heSByZXBvcnQKKyAgICAgICAgICBsYXJnZSBudW1iZXIgb2YgZmFsc2UgcG9zaXRpdmVzLjwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvaXRlbWl6ZWRsaXN0PgogICAgIDwvbGlzdGl0ZW0+CiAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMjQ0NCw4ICsyMzkxLDcgQEAKIAogPHBhcmE+SWYgeW91IHdpc2ggdG8gZGVidWcgeW91ciBwcm9ncmFtIHJhdGhlciB0aGFuIGRlYnVnZ2luZwogVmFsZ3JpbmQgaXRzZWxmLCB0aGVuIHlvdSBzaG91bGQgdXNlIHRoZSBvcHRpb25zCi08b3B0aW9uPi0tdmdkYj15ZXM8L29wdGlvbj4gb3IgPG9wdGlvbj4tLXZnZGI9ZnVsbDwvb3B0aW9uPgotb3IgPG9wdGlvbj4tLWRiLWF0dGFjaD15ZXM8L29wdGlvbj4uCis8b3B0aW9uPi0tdmdkYj15ZXM8L29wdGlvbj4gb3IgPG9wdGlvbj4tLXZnZGI9ZnVsbDwvb3B0aW9uPi4KIDwvcGFyYT4KIAogPCEtLSBlbmQgb2YgeGk6aW5jbHVkZSBpbiB0aGUgbWFucGFnZSAtLT4KZGlmZiAtLWdpdCBhL2RvY3MveG1sL3ZnLWVudGl0aWVzLnhtbCBiL2RvY3MveG1sL3ZnLWVudGl0aWVzLnhtbAppbmRleCBhZWNhMjc2Li4xZDhmMzIyIDEwMDY0NAotLS0gYS9kb2NzL3htbC92Zy1lbnRpdGllcy54bWwKKysrIGIvZG9jcy94bWwvdmctZW50aXRpZXMueG1sCkBAIC0yLDEyICsyLDEyIEBACiA8IUVOVElUWSB2Zy1qZW1haWwgICAgICJqdWxpYW5AdmFsZ3JpbmQub3JnIj4KIDwhRU5USVRZIHZnLXZlbWFpbCAgICAgInZhbGdyaW5kQHZhbGdyaW5kLm9yZyI+CiA8IUVOVElUWSBjbC1lbWFpbCAgICAgICJKb3NlZi5XZWlkZW5kb3JmZXJAZ214LmRlIj4KLTwhRU5USVRZIHZnLWxpZmVzcGFuICAgIjIwMDAtMjAxNCI+Cis8IUVOVElUWSB2Zy1saWZlc3BhbiAgICIyMDAwLTIwMTYiPgogCiA8IS0tIHZhbGdyaW5kIHJlbGVhc2UgKyB2ZXJzaW9uIHN0dWZmIC0tPgogPCFFTlRJVFkgcmVsLXR5cGUgICAgIlJlbGVhc2UiPgotPCFFTlRJVFkgcmVsLXZlcnNpb24gIjMuMTAuMCI+Ci08IUVOVElUWSByZWwtZGF0ZSAgICAiMTAgU2VwdGVtYmVyIDIwMTQiPgorPCFFTlRJVFkgcmVsLXZlcnNpb24gIjMuMTIuMC5TVk4iPgorPCFFTlRJVFkgcmVsLWRhdGUgICAgIj8/ID8/Pz8/Pz8gMjAxNiI+CiAKIDwhLS0gd2hlcmUgdGhlIGRvY3MgYXJlIGluc3RhbGxlZCAtLT4KIDwhRU5USVRZIHZnLWRvY3MtcGF0aCAgIiRJTlNUQUxML3NoYXJlL2RvYy92YWxncmluZC9odG1sL2luZGV4Lmh0bWwiPgpkaWZmIC0tZ2l0IGEvZHJkL2RvY3MvZHJkLW1hbnVhbC54bWwgYi9kcmQvZG9jcy9kcmQtbWFudWFsLnhtbAppbmRleCBlMGM0MDdjLi43NjkyZGFjIDEwMDY0NAotLS0gYS9kcmQvZG9jcy9kcmQtbWFudWFsLnhtbAorKysgYi9kcmQvZG9jcy9kcmQtbWFudWFsLnhtbApAQCAtNTA1LDYgKzUwNSw0MiBAQAogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgIDwvdmFybGlzdGVudHJ5PgorICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPgorICAgICAgPG9wdGlvbj48IVtDREFUQVstLWlnbm9yZS10aHJlYWQtY3JlYXRpb249PHllc3xubz4gW2RlZmF1bHQ6IG5vXV1dPjwvb3B0aW9uPgorICAgIDwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICAgQ29udHJvbHMgd2hldGhlciBhbGwgYWN0aXZpdGllcyBkdXJpbmcgdGhyZWFkIGNyZWF0aW9uIHNob3VsZCBiZQorICAgICAgICBpZ25vcmVkLiBCeSBkZWZhdWx0IGVuYWJsZWQgb25seSBvbiBTb2xhcmlzLgorICAgICAgICBTb2xhcmlzIHByb3ZpZGVzIGhpZ2hlciB0aHJvdWdocHV0LCBwYXJhbGxlbGlzbSBhbmQgc2NhbGFiaWxpdHkgdGhhbgorICAgICAgICBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcywgYXQgdGhlIGNvc3Qgb2YgbW9yZSBmaW5lLWdyYWluZWQgbG9ja2luZworICAgICAgICBhY3Rpdml0eS4gVGhpcyBtZWFucyBmb3IgZXhhbXBsZSB0aGF0IHdoZW4gYSB0aHJlYWQgaXMgY3JlYXRlZCB1bmRlcgorICAgICAgICBnbGliYywganVzdCBvbmUgYmlnIGxvY2sgaXMgdXNlZCBmb3IgYWxsIHRocmVhZCBzZXR1cC4gU29sYXJpcyBsaWJjCisgICAgICAgIHVzZXMgc2V2ZXJhbCBmaW5lLWdyYWluZWQgbG9ja3MgYW5kIHRoZSBjcmVhdG9yIHRocmVhZCByZXN1bWVzIGl0cworICAgICAgICBhY3Rpdml0aWVzIGFzIHNvb24gYXMgcG9zc2libGUsIGxlYXZpbmcgZm9yIGV4YW1wbGUgc3RhY2sgYW5kIFRMUyBzZXR1cAorICAgICAgICBzZXF1ZW5jZSB0byB0aGUgY3JlYXRlZCB0aHJlYWQuCisgICAgICAgIFRoaXMgc2l0dWF0aW9uIGNvbmZ1c2VzIERSRCBhcyBpdCBhc3N1bWVzIHRoZXJlIGlzIHNvbWUgZmFsc2Ugb3JkZXJpbmcKKyAgICAgICAgaW4gcGxhY2UgYmV0d2VlbiBjcmVhdG9yIGFuZCBjcmVhdGVkIHRocmVhZDsgYW5kIHRoZXJlZm9yZSBtYW55IHR5cGVzCisgICAgICAgIG9mIHJhY2UgY29uZGl0aW9ucyBpbiB0aGUgYXBwbGljYXRpb24gd291bGQgbm90IGJlIHJlcG9ydGVkLiBUbyBwcmV2ZW50CisgICAgICAgIHN1Y2ggZmFsc2Ugb3JkZXJpbmcsIHRoaXMgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBzZXQgdG8KKyAgICAgICAgPGNvbXB1dGVyb3V0cHV0PnllczwvY29tcHV0ZXJvdXRwdXQ+IGJ5IGRlZmF1bHQgb24gU29sYXJpcy4KKyAgICAgICAgQWxsIGFjdGl2aXR5IChsb2Fkcywgc3RvcmVzLCBjbGllbnQgcmVxdWVzdHMpIGlzIHRoZXJlZm9yZSBpZ25vcmVkCisgICAgICAgIGR1cmluZzo8L3BhcmE+CisgICAgICA8aXRlbWl6ZWRsaXN0PgorCTxsaXN0aXRlbT4KKwkgIDxwYXJhPgorCSAgICBwdGhyZWFkX2NyZWF0ZSgpIGNhbGwgaW4gdGhlIGNyZWF0b3IgdGhyZWFkCisJICA8L3BhcmE+CisJPC9saXN0aXRlbT4KKwk8bGlzdGl0ZW0+CisJICA8cGFyYT4KKwkgICAgdGhyZWFkIGNyZWF0aW9uIHBoYXNlIChzdGFjayBhbmQgVExTIHNldHVwKSBpbiB0aGUgY3JlYXRlZCB0aHJlYWQKKwkgIDwvcGFyYT4KKwk8L2xpc3RpdGVtPgorICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgPC9saXN0aXRlbT4KKyAgPC92YXJsaXN0ZW50cnk+CiA8L3ZhcmlhYmxlbGlzdD4KIDwhLS0gZW5kIG9mIHhpOmluY2x1ZGUgaW4gdGhlIG1hbnBhZ2UgLS0+CiAKZGlmZiAtLWdpdCBhL2RyZC9kcmQuaCBiL2RyZC9kcmQuaAppbmRleCAxZTk2ODU3Li40NjE1ZTViIDEwMDY0NAotLS0gYS9kcmQvZHJkLmgKKysrIGIvZHJkL2RyZC5oCkBAIC0xMiw3ICsxMiw3IEBACiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIERSRCwgYSBWYWxncmluZCB0b29sIGZvciB2ZXJpZmljYXRpb24gb2YKICAgbXVsdGl0aHJlYWRlZCBwcm9ncmFtcy4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKZGlmZiAtLWdpdCBhL2RyZC9kcmRfYmFycmllci5jIGIvZHJkL2RyZF9iYXJyaWVyLmMKaW5kZXggMjRiZWM5Ni4uZTFhYjEzMSAxMDA2NDQKLS0tIGEvZHJkL2RyZF9iYXJyaWVyLmMKKysrIGIvZHJkL2RyZF9iYXJyaWVyLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTI1OSwxMSArMjU5LDExIEBACiAKICAgIGlmIChzX3RyYWNlX2JhcnJpZXIpIHsKICAgICAgIGlmIChyZWluaXRpYWxpemF0aW9uKQotICAgICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIGJhcnJpZXJfcmVpbml0ICAgICVzIDB4JWx4IGNvdW50ICVsZCAtPiAlbGQiLAorICAgICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIGJhcnJpZXJfcmVpbml0ICAgICVzIDB4JWx4IGNvdW50ICVsZCAtPiAlbGQiLAogICAgICAgICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9ydW5uaW5nX3RpZCkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBiYXJyaWVyX2dldF90eXBlbmFtZShwKSwgYmFycmllciwgcC0+Y291bnQsIGNvdW50KTsKICAgICAgIGVsc2UKLSAgICAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBiYXJyaWVyX2luaXQgICAgICAlcyAweCVseCIsCisgICAgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gYmFycmllcl9pbml0ICAgICAgJXMgMHglbHgiLAogICAgICAgICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9ydW5uaW5nX3RpZCkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBiYXJyaWVyX2dldF90eXBlbmFtZShwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBiYXJyaWVyKTsKQEAgLTI5Myw3ICsyOTMsNyBAQAogICAgcCA9IERSRF8oYmFycmllcl9nZXQpKGJhcnJpZXIpOwogCiAgICBpZiAoc190cmFjZV9iYXJyaWVyKQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIGJhcnJpZXJfZGVzdHJveSAgICVzIDB4JWx4IiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBiYXJyaWVyX2Rlc3Ryb3kgICAlcyAweCVseCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLAogICAgICAgICAgICAgICAgICAgICAgIGJhcnJpZXJfZ2V0X3R5cGVuYW1lKHApLCBiYXJyaWVyKTsKIApAQCAtMzUyLDcgKzM1Miw3IEBACiAgICB0bF9hc3NlcnQocCk7CiAKICAgIGlmIChzX3RyYWNlX2JhcnJpZXIpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gYmFycmllcl9wcmVfd2FpdCAgJXMgMHglbHggaXRlcmF0aW9uICVsZCIsCisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gYmFycmllcl9wcmVfd2FpdCAgJXMgMHglbHggaXRlcmF0aW9uICVsZCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLAogICAgICAgICAgICAgICAgICAgICAgIGJhcnJpZXJfZ2V0X3R5cGVuYW1lKHApLCBiYXJyaWVyLCBwLT5wcmVfaXRlcmF0aW9uKTsKIApAQCAtNDEzLDcgKzQxMyw3IEBACiAgICBwID0gRFJEXyhiYXJyaWVyX2dldCkoYmFycmllcik7CiAKICAgIGlmIChzX3RyYWNlX2JhcnJpZXIpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gYmFycmllcl9wb3N0X3dhaXQgJXMgMHglbHggaXRlcmF0aW9uICVsZCVzIiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBiYXJyaWVyX3Bvc3Rfd2FpdCAlcyAweCVseCBpdGVyYXRpb24gJWxkJXMiLAogICAgICAgICAgICAgICAgICAgICAgIHRpZCwgcCA/IGJhcnJpZXJfZ2V0X3R5cGVuYW1lKHApIDogIig/KSIsCiAgICAgICAgICAgICAgICAgICAgICAgYmFycmllciwgcCA/IHAtPnBvc3RfaXRlcmF0aW9uIDogLTEsCiAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXppbmcgPyAiIChzZXJpYWxpemluZykiIDogIiIpOwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9iYXJyaWVyLmggYi9kcmQvZHJkX2JhcnJpZXIuaAppbmRleCA1N2E0OGM3Li5jNTcxODA3IDEwMDY0NAotLS0gYS9kcmQvZHJkX2JhcnJpZXIuaAorKysgYi9kcmQvZHJkX2JhcnJpZXIuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9iYXNpY3MuaCBiL2RyZC9kcmRfYmFzaWNzLmgKaW5kZXggN2FkMzEzOS4uNTdiMmRmMCAxMDA2NDQKLS0tIGEvZHJkL2RyZF9iYXNpY3MuaAorKysgYi9kcmQvZHJkX2Jhc2ljcy5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRFJELCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwOS0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9kcmQvZHJkX2JpdG1hcC5jIGIvZHJkL2RyZF9iaXRtYXAuYwppbmRleCAwYjJiMDk5Li5kZjc2OTFhIDEwMDY0NAotLS0gYS9kcmQvZHJkX2JpdG1hcC5jCisrKyBiL2RyZC9kcmRfYml0bWFwLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfYml0bWFwLmggYi9kcmQvZHJkX2JpdG1hcC5oCmluZGV4IDBiNDcxNTcuLjk0YjUyODUgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfYml0bWFwLmgKKysrIGIvZHJkL2RyZF9iaXRtYXAuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9jbGllbnRvYmouYyBiL2RyZC9kcmRfY2xpZW50b2JqLmMKaW5kZXggNDQyMzRmOS4uN2JjMTAxOCAxMDA2NDQKLS0tIGEvZHJkL2RyZF9jbGllbnRvYmouYworKysgYi9kcmQvZHJkX2NsaWVudG9iai5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0xMzIsNyArMTMyLDcgQEAKICAgIHRsX2Fzc2VydChWR18oT1NldEdlbl9Mb29rdXApKHNfY2xpZW50b2JqX3NldCwgJmExKSA9PSAwKTsKIAogICAgaWYgKHNfdHJhY2VfY2xpZW50b2JqKQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJBZGRpbmcgY2xpZW50IG9iamVjdCAweCVseCBvZiB0eXBlICVkIiwgYTEsIHQpOworICAgICBEUkRfKHRyYWNlX21zZykoIkFkZGluZyBjbGllbnQgb2JqZWN0IDB4JWx4IG9mIHR5cGUgJWQiLCBhMSwgKEludCl0KTsKIAogICAgcCA9IFZHXyhPU2V0R2VuX0FsbG9jTm9kZSkoc19jbGllbnRvYmpfc2V0LCBzaXplb2YoKnApKTsKICAgIFZHXyhtZW1zZXQpKHAsIDAsIHNpemVvZigqcCkpOwpAQCAtMTc5LDcgKzE3OSw3IEBACiAKICAgIGlmIChzX3RyYWNlX2NsaWVudG9iaikgewogICAgICAgRFJEXyh0cmFjZV9tc2cpKCJSZW1vdmluZyBjbGllbnQgb2JqZWN0IDB4JWx4IG9mIHR5cGUgJWQiLCBwLT5hbnkuYTEsCi0gICAgICAgICAgICAgICAgICAgICAgcC0+YW55LnR5cGUpOworICAgICAgICAgICAgICAgICAgICAgIChJbnQpcC0+YW55LnR5cGUpOwogI2lmIDAKICAgICAgIFZHXyhnZXRfYW5kX3BwX1N0YWNrVHJhY2UpKFZHXyhnZXRfcnVubmluZ190aWQpKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWR18oY2xvX2JhY2t0cmFjZV9zaXplKSk7CmRpZmYgLS1naXQgYS9kcmQvZHJkX2NsaWVudG9iai5oIGIvZHJkL2RyZF9jbGllbnRvYmouaAppbmRleCBiMzE5MGFiLi4xNmZlNTYyIDEwMDY0NAotLS0gYS9kcmQvZHJkX2NsaWVudG9iai5oCisrKyBiL2RyZC9kcmRfY2xpZW50b2JqLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfY2xpZW50cmVxLmMgYi9kcmQvZHJkX2NsaWVudHJlcS5jCmluZGV4IGJlZDY4YWEuLjQ3NDA1ZDMgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfY2xpZW50cmVxLmMKKysrIGIvZHJkL2RyZF9jbGllbnRyZXEuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtNjE1LDYgKzYxNSwxNiBAQAogICAgICAgfQogICAgICAgYnJlYWs7CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgY2FzZSBWR19VU0VSUkVRX19SVExEX0JJTkRfR1VBUkQ6CisgICAgICBEUkRfKHRocmVhZF9lbnRlcmluZ19ydGxkX2JpbmRfZ3VhcmQpKGRyZF90aWQsIGFyZ1sxXSk7CisgICAgICBicmVhazsKKworICAgY2FzZSBWR19VU0VSUkVRX19SVExEX0JJTkRfQ0xFQVI6CisgICAgICBEUkRfKHRocmVhZF9sZWF2aW5nX3J0bGRfYmluZF9jbGVhcikoZHJkX3RpZCwgYXJnWzFdKTsKKyAgICAgIGJyZWFrOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKICAgIGRlZmF1bHQ6CiAjaWYgMAogICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAiVW5yZWNvZ25pemVkIGNsaWVudCByZXF1ZXN0IDB4JWx4IDB4JWx4IiwKZGlmZiAtLWdpdCBhL2RyZC9kcmRfY2xpZW50cmVxLmggYi9kcmQvZHJkX2NsaWVudHJlcS5oCmluZGV4IDkyOWI2MGQuLjVkOWI5YjMgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfY2xpZW50cmVxLmgKKysrIGIvZHJkL2RyZF9jbGllbnRyZXEuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjI2LDYgKzIyNiwxNSBAQAogICAgVkdfVVNFUlJFUV9fUE9TVF9SV0xPQ0tfVU5MT0NLCiAgICAvKiBhcmdzOiBBZGRyIHJ3bG9jaywgUndMb2NrVCwgQm9vbCB1bmxvY2tlZCAqLwogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICwKKyAgIC8qIFRvIG5vdGlmeSB0aGUgZHJkIHRvb2wgb2YgYSBiaW5kX2d1YXJkIGNhbGwgZnJvbSBydW50aW1lIGxpbmtlci4gKi8KKyAgIFZHX1VTRVJSRVFfX1JUTERfQklORF9HVUFSRCwKKyAgIC8qIGFyZ3M6IEludCBmbGFncyAqLworICAgLyogVG8gbm90aWZ5IHRoZSBkcmQgdG9vbCBvZiBhIGJpbmRfY2xlYXIgY2FsbCBmcm9tIHJ1bnRpbWUgbGlua2VyLiAqLworICAgVkdfVVNFUlJFUV9fUlRMRF9CSU5EX0NMRUFSCisgICAvKiBhcmdzOiBJbnQgZmxhZ3MgKi8KKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9kcmQvZHJkX2NvbmQuYyBiL2RyZC9kcmRfY29uZC5jCmluZGV4IGJjZGVmMzAuLmVmYzhlMjMgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfY29uZC5jCisrKyBiL2RyZC9kcmRfY29uZC5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0xNDcsNyArMTQ3LDcgQEAKICAgIHN0cnVjdCBjb25kX2luZm8qIHA7CiAKICAgIGlmIChEUkRfKHNfdHJhY2VfY29uZCkpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gY29uZF9pbml0ICAgICAgIGNvbmQgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIGNvbmRfaW5pdCAgICAgICBjb25kIDB4JWx4IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksIGNvbmQpOwogCiAgICBwID0gRFJEXyhjb25kX2dldCkoY29uZCk7CkBAIC0xNzAsNyArMTcwLDcgQEAKICAgIHN0cnVjdCBjb25kX2luZm8qIHA7CiAKICAgIGlmIChEUkRfKHNfdHJhY2VfY29uZCkpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gY29uZF9kZXN0cm95ICAgIGNvbmQgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIGNvbmRfZGVzdHJveSAgICBjb25kIDB4JWx4IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksIGNvbmQpOwogCiAgICBwID0gRFJEXyhjb25kX2dldCkoY29uZCk7CkBAIC0yMTAsNyArMjEwLDcgQEAKICAgIHN0cnVjdCBtdXRleF9pbmZvKiBxOwogCiAgICBpZiAoRFJEXyhzX3RyYWNlX2NvbmQpKQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIGNvbmRfcHJlX3dhaXQgICBjb25kIDB4JWx4IiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBjb25kX3ByZV93YWl0ICAgY29uZCAweCVseCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLCBjb25kKTsKIAogICAgcCA9IGNvbmRfZ2V0X29yX2FsbG9jYXRlKGNvbmQpOwpAQCAtMjcxLDcgKzI3MSw3IEBACiAgICBzdHJ1Y3QgY29uZF9pbmZvKiBwOwogCiAgICBpZiAoRFJEXyhzX3RyYWNlX2NvbmQpKQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIGNvbmRfcG9zdF93YWl0ICBjb25kIDB4JWx4IiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBjb25kX3Bvc3Rfd2FpdCAgY29uZCAweCVseCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLCBjb25kKTsKIAogICAgcCA9IERSRF8oY29uZF9nZXQpKGNvbmQpOwpAQCAtMzUyLDcgKzM1Miw3IEBACiAKICAgIHAgPSBEUkRfKGNvbmRfZ2V0KShjb25kKTsKICAgIGlmIChEUkRfKHNfdHJhY2VfY29uZCkpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gY29uZF9zaWduYWwgICAgIGNvbmQgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIGNvbmRfc2lnbmFsICAgICBjb25kIDB4JWx4IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksIGNvbmQpOwogCiAgICB0bF9hc3NlcnQoRFJEXyhwdGhyZWFkX2NvbmRfaW5pdGlhbGl6ZXIpKTsKQEAgLTM3NSw3ICszNzUsNyBAQAogICAgc3RydWN0IGNvbmRfaW5mbyogcDsKIAogICAgaWYgKERSRF8oc190cmFjZV9jb25kKSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBjb25kX2Jyb2FkY2FzdCAgY29uZCAweCVseCIsCisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gY29uZF9icm9hZGNhc3QgIGNvbmQgMHglbHgiLAogICAgICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9ydW5uaW5nX3RpZCkoKSwgY29uZCk7CiAKICAgIHAgPSBEUkRfKGNvbmRfZ2V0KShjb25kKTsKZGlmZiAtLWdpdCBhL2RyZC9kcmRfY29uZC5oIGIvZHJkL2RyZF9jb25kLmgKaW5kZXggN2NmYTQ4Yy4uM2Y1ODU3ZCAxMDA2NDQKLS0tIGEvZHJkL2RyZF9jb25kLmgKKysrIGIvZHJkL2RyZF9jb25kLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfZGFyd2luX2ludGVyY2VwdHMuYyBiL2RyZC9kcmRfZGFyd2luX2ludGVyY2VwdHMuYwppbmRleCAwOGNkNDY3Li4yNWNlOWZiIDEwMDY0NAotLS0gYS9kcmQvZHJkX2Rhcndpbl9pbnRlcmNlcHRzLmMKKysrIGIvZHJkL2RyZF9kYXJ3aW5faW50ZXJjZXB0cy5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9kcmQvZHJkX2Vycm9yLmMgYi9kcmQvZHJkX2Vycm9yLmMKaW5kZXggYzUxMGI4OC4uZmIxMTZmNiAxMDA2NDQKLS0tIGEvZHJkL2RyZF9lcnJvci5jCisrKyBiL2RyZC9kcmRfZXJyb3IuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTc0LDcgKzE3NCw3IEBACiAgICB0bF9hc3NlcnQoZHJpLT5zaXplID4gMCk7CiAKICAgICh2b2lkKSBWR18oZ2V0X2RhdGFfZGVzY3JpcHRpb24pKGRlc2NyMSwgZGVzY3IyLCBkcmktPmFkZHIpOwotICAgLyogSWYgdGhlcmUncyBub3RoaW5nIGluIGRlc2NyMS8yLCBmcmVlIHRoZW0uICBXaHkgaXMgaXQgc2FmZSB0byB0bworICAgLyogSWYgdGhlcmUncyBub3RoaW5nIGluIGRlc2NyMS8yLCBmcmVlIHRoZW0uICBXaHkgaXMgaXQgc2FmZSB0bwogICAgICAgVkdfKGluZGV4WEEpIGF0IHplcm8gaGVyZT8gIEJlY2F1c2UgVkdfKGdldF9kYXRhX2Rlc2NyaXB0aW9uKQogICAgICAgZ3VhcmFudGVlcyB0byB6ZXJvIHRlcm1pbmF0ZSBkZXNjcjEvMiByZWdhcmRsZXNzIG9mIHRoZSBvdXRjb21lCiAgICAgICBvZiB0aGUgY2FsbC4gIFNvIHRoZXJlJ3MgYWx3YXlzIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIGVhY2ggWEEKQEAgLTE5OSw3ICsxOTksNyBAQAogICAgICAgZGVzY3JpYmVfbWFsbG9jZWRfYWRkcihkcmktPmFkZHIsICZhaSk7CiAgICB9CiAKLSAgIHByaW50X2Vycl9kZXRhaWwoIiVzQ29uZmxpY3RpbmcgJXMgYnkgdGhyZWFkICVkIGF0IDB4JTA4bHggc2l6ZSAlbGQlc1xuIiwKKyAgIHByaW50X2Vycl9kZXRhaWwoIiVzQ29uZmxpY3RpbmcgJXMgYnkgdGhyZWFkICV1IGF0IDB4JTA4bHggc2l6ZSAlbHUlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgd2hhdF9wcmVmaXgsIGRyaS0+YWNjZXNzX3R5cGUgPT0gZVN0b3JlID8gInN0b3JlIiA6ICJsb2FkIiwKICAgICAgICAgICAgICAgICAgICAgZHJpLT50aWQsIGRyaS0+YWRkciwgZHJpLT5zaXplLCB3aGF0X3N1ZmZpeCk7CiAKQEAgLTMxNiw3ICszMTYsNyBAQAogICAgICAgTXV0ZXhFcnJJbmZvKiBwID0gKE11dGV4RXJySW5mbyopKFZHXyhnZXRfZXJyb3JfZXh0cmEpKGUpKTsKICAgICAgIHRsX2Fzc2VydChwKTsKICAgICAgIGlmIChwLT5yZWN1cnNpb25fY291bnQgPj0gMCkgewotICAgICAgICAgcHJpbnRfZXJyX2RldGFpbCgiJXMlczogbXV0ZXggMHglbHgsIHJlY3Vyc2lvbiBjb3VudCAlZCwgb3duZXIgJWQuIgorICAgICAgICAgcHJpbnRfZXJyX2RldGFpbCgiJXMlczogbXV0ZXggMHglbHgsIHJlY3Vyc2lvbiBjb3VudCAlZCwgb3duZXIgJXUuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiJXNcbiIsIHdoYXRfcHJlZml4LCBWR18oZ2V0X2Vycm9yX3N0cmluZykoZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtPm11dGV4LCBwLT5yZWN1cnNpb25fY291bnQsIHAtPm93bmVyLCB3aGF0X3N1ZmZpeCk7CiAgICAgICB9IGVsc2UgewpAQCAtMzM3LDcgKzMzNyw3IEBACiAgICB9CiAgICBjYXNlIENvbmREZXN0ckVycjogewogICAgICAgQ29uZERlc3RyRXJySW5mbyogY2RpID0gKENvbmREZXN0ckVyckluZm8qKShWR18oZ2V0X2Vycm9yX2V4dHJhKShlKSk7Ci0gICAgICBwcmludF9lcnJfZGV0YWlsKCIlcyVzOiBjb25kIDB4JWx4LCBtdXRleCAweCVseCBsb2NrZWQgYnkgdGhyZWFkICVkJXNcbiIsCisgICAgICBwcmludF9lcnJfZGV0YWlsKCIlcyVzOiBjb25kIDB4JWx4LCBtdXRleCAweCVseCBsb2NrZWQgYnkgdGhyZWFkICV1JXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIHdoYXRfcHJlZml4LCBWR18oZ2V0X2Vycm9yX3N0cmluZykoZSksIGNkaS0+Y29uZCwKICAgICAgICAgICAgICAgICAgICAgICAgY2RpLT5tdXRleCwgY2RpLT5vd25lciwgd2hhdF9zdWZmaXgpOwogICAgICAgVkdfKHBwX0V4ZUNvbnRleHQpKFZHXyhnZXRfZXJyb3Jfd2hlcmUpKGUpKTsKQEAgLTM4NCw3ICszODQsNyBAQAogICAgICAgaWYgKGJlaS0+b3RoZXJfY29udGV4dCkgewogICAgICAgICAgaWYgKHhtbCkKICAgICAgICAgICAgIHByaW50X2Vycl9kZXRhaWwoIiAgPGNvbmZsX3dhaXRfY2FsbD5cbiIpOwotICAgICAgICAgcHJpbnRfZXJyX2RldGFpbCgiJXNDb25mbGljdGluZyB3YWl0IGNhbGwgYnkgdGhyZWFkICVkOiVzXG4iLAorICAgICAgICAgcHJpbnRfZXJyX2RldGFpbCgiJXNDb25mbGljdGluZyB3YWl0IGNhbGwgYnkgdGhyZWFkICV1OiVzXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICB3aGF0X3ByZWZpeCwgYmVpLT5vdGhlcl90aWQsIHdoYXRfc3VmZml4KTsKICAgICAgICAgIFZHXyhwcF9FeGVDb250ZXh0KShiZWktPm90aGVyX2NvbnRleHQpOwogICAgICAgICAgaWYgKHhtbCkKQEAgLTQxMyw4ICs0MTMsOCBAQAogICAgICAgVkdfKHBwX0V4ZUNvbnRleHQpKHAtPmFjcXVpcmVkX2F0KTsKICAgICAgIGlmICh4bWwpCiAgICAgICAgICBwcmludF9lcnJfZGV0YWlsKCIgIDwvYWNxdWlyZWRfYXQ+XG4iKTsKLSAgICAgIHByaW50X2Vycl9kZXRhaWwoIiVzTG9jayBvbiAlcyAweCVseCB3YXMgaGVsZCBkdXJpbmcgJWQgbXMiCi0gICAgICAgICAgICAgICAgICAgICAgICIgKHRocmVzaG9sZDogJWQgbXMpLiVzXG4iLCB3aGF0X3ByZWZpeCwKKyAgICAgIHByaW50X2Vycl9kZXRhaWwoIiVzTG9jayBvbiAlcyAweCVseCB3YXMgaGVsZCBkdXJpbmcgJXUgbXMiCisgICAgICAgICAgICAgICAgICAgICAgICIgKHRocmVzaG9sZDogJXUgbXMpLiVzXG4iLCB3aGF0X3ByZWZpeCwKICAgICAgICAgICAgICAgICAgICAgICAgVkdfKGdldF9lcnJvcl9zdHJpbmcpKGUpLCBwLT5zeW5jaHJvbml6YXRpb25fb2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICBwLT5ob2xkX3RpbWVfbXMsIHAtPnRocmVzaG9sZF9tcywgd2hhdF9zdWZmaXgpOwogICAgICAgVkdfKHBwX0V4ZUNvbnRleHQpKFZHXyhnZXRfZXJyb3Jfd2hlcmUpKGUpKTsKZGlmZiAtLWdpdCBhL2RyZC9kcmRfZXJyb3IuaCBiL2RyZC9kcmRfZXJyb3IuaAppbmRleCAwODI1ZWZmLi43ZjgwZDQ0IDEwMDY0NAotLS0gYS9kcmQvZHJkX2Vycm9yLmgKKysrIGIvZHJkL2RyZF9lcnJvci5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9kcmQvZHJkX2hiLmMgYi9kcmQvZHJkX2hiLmMKaW5kZXggYWViOWRlZC4uNTY4OGZlYiAxMDA2NDQKLS0tIGEvZHJkL2RyZF9oYi5jCisrKyBiL2RyZC9kcmRfaGIuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTY0LDcgKzE2NCw3IEBACiAKICAgIHAgPSBEUkRfKGhiX2dldF9vcl9hbGxvY2F0ZSkoaGIpOwogICAgaWYgKERSRF8oc190cmFjZV9oYikpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gaGFwcGVuc19iZWZvcmUgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIGhhcHBlbnNfYmVmb3JlIDB4JWx4IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksIGhiKTsKIAogICAgaWYgKCFwKQpAQCAtMTk4LDcgKzE5OCw3IEBACiAgICBwID0gRFJEXyhoYl9nZXRfb3JfYWxsb2NhdGUpKGhiKTsKIAogICAgaWYgKERSRF8oc190cmFjZV9oYikpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gaGFwcGVuc19hZnRlciAgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIGhhcHBlbnNfYWZ0ZXIgIDB4JWx4IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksIGhiKTsKIAogICAgaWYgKCFwKQpAQCAtMjMwLDcgKzIzMCw3IEBACiAgICBzdHJ1Y3QgaGJfaW5mbyogcDsKIAogICAgaWYgKERSRF8oc190cmFjZV9oYikpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gaGFwcGVuc19kb25lICAweCVseCIsCisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gaGFwcGVuc19kb25lICAweCVseCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLCBoYik7CiAKICAgIHAgPSBEUkRfKGhiX2dldCkoaGIpOwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9oYi5oIGIvZHJkL2RyZF9oYi5oCmluZGV4IDc2MTZiMGEuLjg2NDMyZmMgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfaGIuaAorKysgYi9kcmQvZHJkX2hiLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfbGlic3RkY3h4X2ludGVyY2VwdHMuYyBiL2RyZC9kcmRfbGlic3RkY3h4X2ludGVyY2VwdHMuYwppbmRleCA5OWNiZDNmLi44MmE1ODNkIDEwMDY0NAotLS0gYS9kcmQvZHJkX2xpYnN0ZGN4eF9pbnRlcmNlcHRzLmMKKysrIGIvZHJkL2RyZF9saWJzdGRjeHhfaW50ZXJjZXB0cy5jCkBAIC01LDcgKzUsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRFJELCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMTQgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9sb2FkX3N0b3JlLmMgYi9kcmQvZHJkX2xvYWRfc3RvcmUuYwppbmRleCA4OGU0ZDQ0Li5mOTY4YmNjIDEwMDY0NAotLS0gYS9kcmQvZHJkX2xvYWRfc3RvcmUuYworKysgYi9kcmQvZHJkX2xvYWRfc3RvcmUuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTAzLDcgKzEwMyw3IEBACiAKICAgICAgIHZjID0gRFJEXyh2Y19hcHJpbnQpKERSRF8odGhyZWFkX2dldF92YykoRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpKSk7CiAgICAgICBpZiAoYWNjZXNzX3R5cGUgPT0gZVN0b3JlICYmIHNpemUgPD0gc2l6ZW9mKEhXb3JkKSkgewotICAgICAgICAgRFJEXyh0cmFjZV9tc2dfd19idCkoInN0b3JlIDB4JWx4IHNpemUgJWxkIHZhbCAlbGQvMHglbHggKHRocmVhZCAlZCAvIgorICAgICAgICAgRFJEXyh0cmFjZV9tc2dfd19idCkoInN0b3JlIDB4JWx4IHNpemUgJWx1IHZhbCAlbHUvMHglbHggKHRocmVhZCAldSAvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB2YyAlcykiLCBhZGRyLCBzaXplLCBzdG9yZWRfdmFsdWVfbG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZWRfdmFsdWVfbG8sIERSRF8odGhyZWFkX2dldF9ydW5uaW5nX3RpZCkoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZjKTsKQEAgLTExMiwxMSArMTEyLDExIEBACiAKICAgICAgICAgIHRsX2Fzc2VydChzaXplb2YoSFdvcmQpID09IDQpOwogICAgICAgICAgc3YgPSAoKFVMb25nKXN0b3JlZF92YWx1ZV9oaSA8PCAzMikgfCBzdG9yZWRfdmFsdWVfbG87Ci0gICAgICAgICBEUkRfKHRyYWNlX21zZ193X2J0KSgic3RvcmUgMHglbHggc2l6ZSAlbGQgdmFsICVsbGQvMHglbGx4ICh0aHJlYWQgJWQiCisgICAgICAgICBEUkRfKHRyYWNlX21zZ193X2J0KSgic3RvcmUgMHglbHggc2l6ZSAlbHUgdmFsICVsbHUvMHglbGx4ICh0aHJlYWQgJXUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC8gdmMgJXMpIiwgYWRkciwgc2l6ZSwgc3YsIHN2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLCB2Yyk7CiAgICAgICB9IGVsc2UgewotICAgICAgICAgRFJEXyh0cmFjZV9tc2dfd19idCkoIiVzIDB4JWx4IHNpemUgJWxkICh0aHJlYWQgJWQgLyB2YyAlcykiLAorICAgICAgICAgRFJEXyh0cmFjZV9tc2dfd19idCkoIiVzIDB4JWx4IHNpemUgJWx1ICh0aHJlYWQgJXUgLyB2YyAlcykiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzX3R5cGUgPT0gZUxvYWQgPyAibG9hZCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFjY2Vzc190eXBlID09IGVTdG9yZSA/ICJzdG9yZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYWNjZXNzX3R5cGUgPT0gZVN0YXJ0ID8gInN0YXJ0IgpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9sb2FkX3N0b3JlLmggYi9kcmQvZHJkX2xvYWRfc3RvcmUuaAppbmRleCBlYzhiNGE1Li45ZTY0OWU4IDEwMDY0NAotLS0gYS9kcmQvZHJkX2xvYWRfc3RvcmUuaAorKysgYi9kcmQvZHJkX2xvYWRfc3RvcmUuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9tYWluLmMgYi9kcmQvZHJkX21haW4uYwppbmRleCAwOTYwZmU1Li42OWI3ZjQ1IDEwMDY0NAotLS0gYS9kcmQvZHJkX21haW4uYworKysgYi9kcmQvZHJkX21haW4uYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMTA0LDYgKzEwNCw4IEBACiAgICB7fQogICAgZWxzZSBpZiBWR19CT09MX0NMTyhhcmcsICItLXNob3ctY29uZmwtc2VnIiwgICAgICBzaG93X2NvbmZsX3NlZykge30KICAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS1zaG93LXN0YWNrLXVzYWdlIiwgICAgc19zaG93X3N0YWNrX3VzYWdlKSB7fQorICAgZWxzZSBpZiBWR19CT09MX0NMTyhhcmcsICItLWlnbm9yZS10aHJlYWQtY3JlYXRpb24iLAorICAgRFJEXyhpZ25vcmVfdGhyZWFkX2NyZWF0aW9uKSkge30KICAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS10cmFjZS1hbGxvYyIsICAgICAgICAgc190cmFjZV9hbGxvYykge30KICAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS10cmFjZS1iYXJyaWVyIiwgICAgICAgdHJhY2VfYmFycmllcikge30KICAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS10cmFjZS1jbGllbnRvYmoiLCAgICAgdHJhY2VfY2xpZW50b2JqKSB7fQpAQCAtMTYxLDcgKzE2Myw3IEBACiAgICAgICBEUkRfKHN0YXJ0X3RyYWNpbmdfYWRkcmVzc19yYW5nZSkoYWRkciwgYWRkciArIDEsIEZhbHNlKTsKICAgIH0KICAgIGlmIChwdHJhY2VfYWRkcmVzcykgewotICAgICAgY2hhciAqcGx1cyA9IFZHXyhzdHJjaHIpKHB0cmFjZV9hZGRyZXNzLCAnKycpOworICAgICAgSENoYXIgKnBsdXMgPSBWR18oc3RyY2hyKShwdHJhY2VfYWRkcmVzcywgJysnKTsKICAgICAgIEFkZHIgYWRkciwgbGVuZ3RoOwogICAgICAgaWYgKHBsdXMpCiAgICAgICAgICAqcGx1cyA9ICdcMCc7CkBAIC0yMjgsNiArMjMwLDggQEAKICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWxsaXNlY29uZHMpIFtvZmZdXG4iCiAiICAgIC0tc2hvdy1jb25mbC1zZWc9eWVzfG5vICAgU2hvdyBjb25mbGljdGluZyBzZWdtZW50cyBpbiByYWNlIHJlcG9ydHMgW3llc10uXG4iCiAiICAgIC0tc2hvdy1zdGFjay11c2FnZT15ZXN8bm8gUHJpbnQgc3RhY2sgdXNhZ2UgYXQgdGhyZWFkIGV4aXQgdGltZSBbbm9dLlxuIgorIiAgICAtLWlnbm9yZS10aHJlYWQtY3JlYXRpb249eWVzfG5vIElnbm9yZSBhY3Rpdml0aWVzIGR1cmluZyB0aHJlYWQgXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRpb24gWyVzXS5cbiIKICJcbiIKICIgIGRyZCBvcHRpb25zIGZvciBtb25pdG9yaW5nIHByb2Nlc3MgYmVoYXZpb3I6XG4iCiAiICAgIC0tcHRyYWNlLWFkZHI9PGFkZHJlc3M+Wys8bGVuZ3RoPl0gVHJhY2UgYWxsIGxvYWQgYW5kIHN0b3JlIGFjdGl2aXR5IGZvclxuIgpAQCAtMjQ1LDcgKzI0OSw4IEBACiAiICAgIC0tdHJhY2UtbXV0ZXg9eWVzfG5vICAgICAgVHJhY2UgYWxsIG11dGV4IGFjdGl2aXR5IFtub10uXG4iCiAiICAgIC0tdHJhY2Utcndsb2NrPXllc3xubyAgICAgVHJhY2UgYWxsIHJlYWRlci13cml0ZXIgbG9jayBhY3Rpdml0eVtub10uXG4iCiAiICAgIC0tdHJhY2Utc2VtYXBob3JlPXllc3xubyAgVHJhY2UgYWxsIHNlbWFwaG9yZSBhY3Rpdml0eSBbbm9dLlxuIiwKLURSRF8odGhyZWFkX2dldF9zZWdtZW50X21lcmdlX2ludGVydmFsKSgpCitEUkRfKHRocmVhZF9nZXRfc2VnbWVudF9tZXJnZV9pbnRlcnZhbCkoKSwKK0RSRF8oaWdub3JlX3RocmVhZF9jcmVhdGlvbikgPyAieWVzIiA6ICJubyIKICk7CiB9CiAKQEAgLTMzNCw3ICszMzksNyBAQAogICAgdGxfYXNzZXJ0KGExIDw9IGEyKTsKIAogICAgaWYgKCFpc19zdGFja19tZW0gJiYgc190cmFjZV9hbGxvYykKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiU3RhcnRlZCB1c2luZyBtZW1vcnkgcmFuZ2UgMHglbHggKyAlbGQlcyIsCisgICAgICBEUkRfKHRyYWNlX21zZykoIlN0YXJ0ZWQgdXNpbmcgbWVtb3J5IHJhbmdlIDB4JWx4ICsgJWx1JXMiLAogICAgICAgICAgICAgICAgICAgICAgIGExLCBsZW4sIERSRF8ocnVubmluZ190aHJlYWRfaW5zaWRlX3B0aHJlYWRfY3JlYXRlKSgpCiAgICAgICAgICAgICAgICAgICAgICAgPyAiIChpbnNpZGUgcHRocmVhZF9jcmVhdGUoKSkiIDogIiIpOwogCkBAIC0zNzgsNyArMzgzLDcgQEAKICAgICAgIERSRF8odHJhY2VfbWVtX2FjY2VzcykoYTEsIGxlbiwgZUVuZCwgMCwgMCk7CiAKICAgIGlmICghaXNfc3RhY2tfbWVtICYmIHNfdHJhY2VfYWxsb2MpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlN0b3BwZWQgdXNpbmcgbWVtb3J5IHJhbmdlIDB4JWx4ICsgJWxkIiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiU3RvcHBlZCB1c2luZyBtZW1vcnkgcmFuZ2UgMHglbHggKyAlbHUiLAogICAgICAgICAgICAgICAgICAgICAgIGExLCBsZW4pOwogCiAgICBpZiAoIWlzX3N0YWNrX21lbSB8fCBEUkRfKGdldF9jaGVja19zdGFja19hY2Nlc3NlcykoKSkKQEAgLTQyNSw3ICs0MzAsNyBAQAogICAgY29uc3QgRGVidWdJbmZvKiBkaTsKIAogICAgaWYgKHRyYWNlX3NlY3RzdXBwcikKLSAgICAgIFZHXyhkbXNnKSgiRXZhbHVhdGluZyByYW5nZSBAIDB4JWx4IHNpemUgJWxkXG4iLCBhLCBsZW4pOworICAgICAgVkdfKGRtc2cpKCJFdmFsdWF0aW5nIHJhbmdlIEAgMHglbHggc2l6ZSAlbHVcbiIsIGEsIGxlbik7CiAKICAgIGZvciAoZGkgPSBWR18obmV4dF9EZWJ1Z0luZm8pKDApOyBkaTsgZGkgPSBWR18obmV4dF9EZWJ1Z0luZm8pKGRpKSkgewogICAgICAgQWRkciAgYXZtYTsKQEAgLTQ0Niw3ICs0NTEsNyBAQAogICAgICAgaWYgKHNpemUgPiAwICYmCiAgICAgICAgICAgVkdfKHN0cmNtcCkoVkdfKERlYnVnSW5mb19nZXRfc29uYW1lKShkaSksICJsaWJwdGhyZWFkLnNvLjAiKSA9PSAwKSB7CiAJIGlmICh0cmFjZV9zZWN0c3VwcHIpCi0JICAgIFZHXyhkbXNnKSgiU3VwcHJlc3NpbmcgLmJzcyBAIDB4JWx4IHNpemUgJWxkXG4iLCBhdm1hLCBzaXplKTsKKwkgICAgVkdfKGRtc2cpKCJTdXBwcmVzc2luZyAuYnNzIEAgMHglbHggc2l6ZSAlbHVcbiIsIGF2bWEsIHNpemUpOwogICAgICAgICAgdGxfYXNzZXJ0KFZHXyhEZWJ1Z0luZm9fc2VjdF9raW5kKShOVUxMLCBhdm1hKSA9PSBWZ19TZWN0QlNTKTsKICAgICAgICAgIERSRF8oc3RhcnRfc3VwcHJlc3Npb24pKGF2bWEsIGF2bWEgKyBzaXplLCAiLmJzcyIpOwogICAgICAgfQpAQCAtNDU2LDcgKzQ2MSw3IEBACiAgICAgICB0bF9hc3NlcnQoKGF2bWEgJiYgc2l6ZSkgfHwgKGF2bWEgPT0gMCAmJiBzaXplID09IDApKTsKICAgICAgIGlmIChzaXplID4gMCkgewogCSBpZiAodHJhY2Vfc2VjdHN1cHByKQotCSAgICBWR18oZG1zZykoIlN1cHByZXNzaW5nIC5wbHQgQCAweCVseCBzaXplICVsZFxuIiwgYXZtYSwgc2l6ZSk7CisJICAgIFZHXyhkbXNnKSgiU3VwcHJlc3NpbmcgLnBsdCBAIDB4JWx4IHNpemUgJWx1XG4iLCBhdm1hLCBzaXplKTsKICAgICAgICAgIHRsX2Fzc2VydChWR18oRGVidWdJbmZvX3NlY3Rfa2luZCkoTlVMTCwgYXZtYSkgPT0gVmdfU2VjdFBMVCk7CiAgICAgICAgICBEUkRfKHN0YXJ0X3N1cHByZXNzaW9uKShhdm1hLCBhdm1hICsgc2l6ZSwgIi5wbHQiKTsKICAgICAgIH0KQEAgLTQ2Niw3ICs0NzEsNyBAQAogICAgICAgdGxfYXNzZXJ0KChhdm1hICYmIHNpemUpIHx8IChhdm1hID09IDAgJiYgc2l6ZSA9PSAwKSk7CiAgICAgICBpZiAoc2l6ZSA+IDApIHsKIAkgaWYgKHRyYWNlX3NlY3RzdXBwcikKLQkgICAgVkdfKGRtc2cpKCJTdXBwcmVzc2luZyAuZ290LnBsdCBAIDB4JWx4IHNpemUgJWxkXG4iLCBhdm1hLCBzaXplKTsKKwkgICAgVkdfKGRtc2cpKCJTdXBwcmVzc2luZyAuZ290LnBsdCBAIDB4JWx4IHNpemUgJWx1XG4iLCBhdm1hLCBzaXplKTsKICAgICAgICAgIHRsX2Fzc2VydChWR18oRGVidWdJbmZvX3NlY3Rfa2luZCkoTlVMTCwgYXZtYSkgPT0gVmdfU2VjdEdPVFBMVCk7CiAgICAgICAgICBEUkRfKHN0YXJ0X3N1cHByZXNzaW9uKShhdm1hLCBhdm1hICsgc2l6ZSwgIi5nb3RwbHQiKTsKICAgICAgIH0KQEAgLTQ3Niw3ICs0ODEsNyBAQAogICAgICAgdGxfYXNzZXJ0KChhdm1hICYmIHNpemUpIHx8IChhdm1hID09IDAgJiYgc2l6ZSA9PSAwKSk7CiAgICAgICBpZiAoc2l6ZSA+IDApIHsKIAkgaWYgKHRyYWNlX3NlY3RzdXBwcikKLQkgICAgVkdfKGRtc2cpKCJTdXBwcmVzc2luZyAuZ290IEAgMHglbHggc2l6ZSAlbGRcbiIsIGF2bWEsIHNpemUpOworCSAgICBWR18oZG1zZykoIlN1cHByZXNzaW5nIC5nb3QgQCAweCVseCBzaXplICVsdVxuIiwgYXZtYSwgc2l6ZSk7CiAgICAgICAgICB0bF9hc3NlcnQoVkdfKERlYnVnSW5mb19zZWN0X2tpbmQpKE5VTEwsIGF2bWEpID09IFZnX1NlY3RHT1QpOwogICAgICAgICAgRFJEXyhzdGFydF9zdXBwcmVzc2lvbikoYXZtYSwgYXZtYSArIHNpemUsICIuZ290Iik7CiAgICAgICB9CkBAIC02MzgsNyArNjQzLDcgQEAKICAgIH0KICAgIGlmIChEUkRfKHRocmVhZF9nZXRfdHJhY2VfZm9ya19qb2luKSgpKQogICAgewotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJkcmRfcHJlX3RocmVhZF9jcmVhdGUgY3JlYXRvciA9ICVkLCBjcmVhdGVkID0gJWQiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJkcmRfcHJlX3RocmVhZF9jcmVhdGUgY3JlYXRvciA9ICV1LCBjcmVhdGVkID0gJXUiLAogICAgICAgICAgICAgICAgICAgICAgIGRyZF9jcmVhdG9yLCBjcmVhdGVkKTsKICAgIH0KIH0KQEAgLTY2Myw3ICs2NjgsNyBAQAogCiAgICBpZiAoRFJEXyh0aHJlYWRfZ2V0X3RyYWNlX2Zvcmtfam9pbikoKSkKICAgIHsKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiZHJkX3Bvc3RfdGhyZWFkX2NyZWF0ZSBjcmVhdGVkID0gJWQiLCBkcmRfY3JlYXRlZCk7CisgICAgICBEUkRfKHRyYWNlX21zZykoImRyZF9wb3N0X3RocmVhZF9jcmVhdGUgY3JlYXRlZCA9ICV1IiwgZHJkX2NyZWF0ZWQpOwogICAgfQogICAgaWYgKCEgRFJEXyhnZXRfY2hlY2tfc3RhY2tfYWNjZXNzZXMpKCkpCiAgICB7CkBAIC02OTAsNyArNjk1LDcgQEAKICAgIHRsX2Fzc2VydChkcmRfdGlkICE9IERSRF9JTlZBTElEX1RIUkVBRElEKTsKICAgIGlmIChEUkRfKHRocmVhZF9nZXRfdHJhY2VfZm9ya19qb2luKSgpKQogICAgewotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJkcmRfdGhyZWFkX2ZpbmlzaGVkIHRpZCA9ICVkJXMiLCBkcmRfdGlkLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJkcmRfdGhyZWFkX2ZpbmlzaGVkIHRpZCA9ICV1JXMiLCBkcmRfdGlkLAogICAgICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9qb2luYWJsZSkoZHJkX3RpZCkKICAgICAgICAgICAgICAgICAgICAgICA/ICIiIDogIiAod2hpY2ggaXMgYSBkZXRhY2hlZCB0aHJlYWQpIik7CiAgICB9CkBAIC03MDAsOCArNzA1LDggQEAKICAgICAgICAgID0gKERSRF8odGhyZWFkX2dldF9zdGFja19tYXgpKGRyZF90aWQpCiAgICAgICAgICAgICAtIERSRF8odGhyZWFkX2dldF9zdGFja19taW5fbWluKShkcmRfdGlkKSk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAidGhyZWFkICVkJXMgZmluaXNoZWQgYW5kIHVzZWQgJWxkIGJ5dGVzIG91dCBvZiAlbGQiCi0gICAgICAgICAgICAgICAgICAgIiBvbiBpdHMgc3RhY2suIE1hcmdpbjogJWxkIGJ5dGVzLlxuIiwKKyAgICAgICAgICAgICAgICAgICAidGhyZWFkICV1JXMgZmluaXNoZWQgYW5kIHVzZWQgJWx1IGJ5dGVzIG91dCBvZiAlbHUiCisgICAgICAgICAgICAgICAgICAgIiBvbiBpdHMgc3RhY2suIE1hcmdpbjogJWx1IGJ5dGVzLlxuIiwKICAgICAgICAgICAgICAgICAgICBkcmRfdGlkLAogICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9qb2luYWJsZSkoZHJkX3RpZCkKICAgICAgICAgICAgICAgICAgICA/ICIiIDogIiAod2hpY2ggaXMgYSBkZXRhY2hlZCB0aHJlYWQpIiwKQEAgLTczNSw3ICs3NDAsNyBAQAogCiBzdGF0aWMgdm9pZCBEUkRfKHBvc3RfY2xvX2luaXQpKHZvaWQpCiB7Ci0jaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX2RhcndpbikKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgLyogZmluZSAqLwogI2Vsc2UKICAgIFZHXyhwcmludGYpKCJcbldBUk5JTkc6IERSRCBoYXMgbm90IHlldCBiZWVuIHRlc3RlZCBvbiB0aGlzIG9wZXJhdGluZyBzeXN0ZW0uXG5cbiIpOwpAQCAtNzY5LDQ3ICs3NzQsNDcgQEAKICAgICAgIFVMb25nIHB1X2pvaW4gICA9IERSRF8odGhyZWFkX2dldF91cGRhdGVfY29uZmxpY3Rfc2V0X2pvaW5fY291bnQpKCk7CiAKICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLAotICAgICAgICAgICAgICAgICAgICIgICB0aHJlYWQ6ICVsbGQgY29udGV4dCBzd2l0Y2hlcy5cbiIsCisgICAgICAgICAgICAgICAgICAgIiAgIHRocmVhZDogJWxsdSBjb250ZXh0IHN3aXRjaGVzLlxuIiwKICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfY29udGV4dF9zd2l0Y2hfY291bnQpKCkpOwogICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csCi0gICAgICAgICAgICAgICAgICAgImNvbmZsIHNldDogJWxsZCBmdWxsIHVwZGF0ZXMgYW5kICVsbGQgcGFydGlhbCB1cGRhdGVzO1xuIiwKKyAgICAgICAgICAgICAgICAgICAiY29uZmwgc2V0OiAlbGx1IGZ1bGwgdXBkYXRlcyBhbmQgJWxsdSBwYXJ0aWFsIHVwZGF0ZXM7XG4iLAogICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9jb21wdXRlX2NvbmZsaWN0X3NldF9jb3VudCkoKSwKICAgICAgICAgICAgICAgICAgICBwdSk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAlbGxkIHBhcnRpYWwgdXBkYXRlcyBkdXJpbmcgc2VnbWVudCBjcmVhdGlvbixcbiIsCisgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgJWxsdSBwYXJ0aWFsIHVwZGF0ZXMgZHVyaW5nIHNlZ21lbnQgY3JlYXRpb24sXG4iLAogICAgICAgICAgICAgICAgICAgIHB1X3NlZ19jcik7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAlbGxkIGJlY2F1c2Ugb2YgbXV0ZXgvc2VtYS9jb25kLnZhci4gb3BlcmF0aW9ucyxcbiIsCisgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgJWxsdSBiZWNhdXNlIG9mIG11dGV4L3NlbWEvY29uZC52YXIuIG9wZXJhdGlvbnMsXG4iLAogICAgICAgICAgICAgICAgICAgIHB1X210eF9jdik7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAlbGxkIGJlY2F1c2Ugb2YgYmFycmllci9yd2xvY2sgb3BlcmF0aW9ucyBhbmRcbiIsCisgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgJWxsdSBiZWNhdXNlIG9mIGJhcnJpZXIvcndsb2NrIG9wZXJhdGlvbnMgYW5kXG4iLAogCQkgICBwdSAtIHB1X3NlZ19jciAtIHB1X210eF9jdiAtIHB1X2pvaW4pOwogICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csCi0gICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgJWxsZCBwYXJ0aWFsIHVwZGF0ZXMgYmVjYXVzZSBvZiB0aHJlYWQgam9pbiIKKyAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAlbGx1IHBhcnRpYWwgdXBkYXRlcyBiZWNhdXNlIG9mIHRocmVhZCBqb2luIgogICAgICAgICAgICAgICAgICAgICIgb3BlcmF0aW9ucy5cbiIsCiAgICAgICAgICAgICAgICAgICAgcHVfam9pbik7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAiIHNlZ21lbnRzOiBjcmVhdGVkICVsbGQgc2VnbWVudHMsIG1heCAlbGxkIGFsaXZlLFxuIiwKKyAgICAgICAgICAgICAgICAgICAiIHNlZ21lbnRzOiBjcmVhdGVkICVsbHUgc2VnbWVudHMsIG1heCAlbGx1IGFsaXZlLFxuIiwKICAgICAgICAgICAgICAgICAgICBEUkRfKHNnX2dldF9zZWdtZW50c19jcmVhdGVkX2NvdW50KSgpLAogICAgICAgICAgICAgICAgICAgIERSRF8oc2dfZ2V0X21heF9zZWdtZW50c19hbGl2ZV9jb3VudCkoKSk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAlbGxkIGRpc2NhcmQgcG9pbnRzIGFuZCAlbGxkIG1lcmdlcy5cbiIsCisgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgJWxsdSBkaXNjYXJkIHBvaW50cyBhbmQgJWxsdSBtZXJnZXMuXG4iLAogICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9kaXNjYXJkX29yZGVyZWRfc2VnbWVudHNfY291bnQpKCksCiAgICAgICAgICAgICAgICAgICAgRFJEXyhzZ19nZXRfc2VnbWVudF9tZXJnZV9jb3VudCkoKSk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAic2VnbW50IGNyOiAlbGxkIG11dGV4LCAlbGxkIHJ3bG9jaywgJWxsZCBzZW1hcGhvcmUgYW5kIgotICAgICAgICAgICAgICAgICAgICIgJWxsZCBiYXJyaWVyLlxuIiwKKyAgICAgICAgICAgICAgICAgICAic2VnbW50IGNyOiAlbGx1IG11dGV4LCAlbGx1IHJ3bG9jaywgJWxsdSBzZW1hcGhvcmUgYW5kIgorICAgICAgICAgICAgICAgICAgICIgJWxsdSBiYXJyaWVyLlxuIiwKICAgICAgICAgICAgICAgICAgICBEUkRfKGdldF9tdXRleF9zZWdtZW50X2NyZWF0aW9uX2NvdW50KSgpLAogICAgICAgICAgICAgICAgICAgIERSRF8oZ2V0X3J3bG9ja19zZWdtZW50X2NyZWF0aW9uX2NvdW50KSgpLAogICAgICAgICAgICAgICAgICAgIERSRF8oZ2V0X3NlbWFwaG9yZV9zZWdtZW50X2NyZWF0aW9uX2NvdW50KSgpLAogICAgICAgICAgICAgICAgICAgIERSRF8oZ2V0X2JhcnJpZXJfc2VnbWVudF9jcmVhdGlvbl9jb3VudCkoKSk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAiICBiaXRtYXBzOiAlbGxkIGxldmVsIG9uZSIKLSAgICAgICAgICAgICAgICAgICAiIGFuZCAlbGxkIGxldmVsIHR3byBiaXRtYXBzIHdlcmUgYWxsb2NhdGVkLlxuIiwKKyAgICAgICAgICAgICAgICAgICAiICBiaXRtYXBzOiAlbGx1IGxldmVsIG9uZSIKKyAgICAgICAgICAgICAgICAgICAiIGFuZCAlbGx1IGxldmVsIHR3byBiaXRtYXBzIHdlcmUgYWxsb2NhdGVkLlxuIiwKICAgICAgICAgICAgICAgICAgICBEUkRfKGJtX2dldF9iaXRtYXBfY3JlYXRpb25fY291bnQpKCksCiAgICAgICAgICAgICAgICAgICAgRFJEXyhibV9nZXRfYml0bWFwMl9jcmVhdGlvbl9jb3VudCkoKSk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywKLSAgICAgICAgICAgICAgICAgICAiICAgIG11dGV4OiAlbGxkIG5vbi1yZWN1cnNpdmUgbG9jay91bmxvY2sgZXZlbnRzLlxuIiwKKyAgICAgICAgICAgICAgICAgICAiICAgIG11dGV4OiAlbGx1IG5vbi1yZWN1cnNpdmUgbG9jay91bmxvY2sgZXZlbnRzLlxuIiwKICAgICAgICAgICAgICAgICAgICBEUkRfKGdldF9tdXRleF9sb2NrX2NvdW50KSgpKTsKICAgICAgIERSRF8ocHJpbnRfbWFsbG9jX3N0YXRzKSgpOwogICAgfQpAQCAtODI0LDcgKzgyOSw3IEBACiAgICBWR18oZGV0YWlsc19uYW1lKSAgICAgICAgICAgICgiZHJkIik7CiAgICBWR18oZGV0YWlsc192ZXJzaW9uKSAgICAgICAgIChOVUxMKTsKICAgIFZHXyhkZXRhaWxzX2Rlc2NyaXB0aW9uKSAgICAgKCJhIHRocmVhZCBlcnJvciBkZXRlY3RvciIpOwotICAgVkdfKGRldGFpbHNfY29weXJpZ2h0X2F1dGhvcikoIkNvcHlyaWdodCAoQykgMjAwNi0yMDEzLCBhbmQgR05VIEdQTCdkLCIKKyAgIFZHXyhkZXRhaWxzX2NvcHlyaWdodF9hdXRob3IpKCJDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSwgYW5kIEdOVSBHUEwnZCwiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGJ5IEJhcnQgVmFuIEFzc2NoZS4iKTsKICAgIFZHXyhkZXRhaWxzX2J1Z19yZXBvcnRzX3RvKSAgKFZHX0JVR1NfVE8pOwogCmRpZmYgLS1naXQgYS9kcmQvZHJkX21hbGxvY193cmFwcGVycy5jIGIvZHJkL2RyZF9tYWxsb2Nfd3JhcHBlcnMuYwppbmRleCAzNjk5MzZkLi5lNzQyZWQ3IDEwMDY0NAotLS0gYS9kcmQvZHJkX21hbGxvY193cmFwcGVycy5jCisrKyBiL2RyZC9kcmRfbWFsbG9jX3dyYXBwZXJzLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfbWFsbG9jX3dyYXBwZXJzLmggYi9kcmQvZHJkX21hbGxvY193cmFwcGVycy5oCmluZGV4IDZhOWI2ZmQuLjc5YmI2N2QgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfbWFsbG9jX3dyYXBwZXJzLmgKKysrIGIvZHJkL2RyZF9tYWxsb2Nfd3JhcHBlcnMuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9tdXRleC5jIGIvZHJkL2RyZF9tdXRleC5jCmluZGV4IDY1MDAwMDYuLjRmZTMwZTUgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfbXV0ZXguYworKysgYi9kcmQvZHJkX211dGV4LmMKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTg4LDcgKzg4LDcgQEAKICAgIHN0cnVjdCBtdXRleF9pbmZvKiBwID0gRFJEXyhtdXRleF9nZXQpKG11dGV4KTsKIAogICAgaWYgKHNfdHJhY2VfbXV0ZXgpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gbXV0ZXhfaWdub3JlX29yZGVyaW5nICVzIDB4JWx4IiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBtdXRleF9pZ25vcmVfb3JkZXJpbmcgJXMgMHglbHgiLAogICAgICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9ydW5uaW5nX3RpZCkoKSwKICAgICAgICAgICAgICAgICAgICAgICBwID8gRFJEXyhtdXRleF90eXBlX25hbWUpKHAtPm11dGV4X3R5cGUpIDogIig/KSIsCiAgICAgICAgICAgICAgICAgICAgICAgbXV0ZXgpOwpAQCAtMTA2LDcgKzEwNiw3IEBACiAgICB0bF9hc3NlcnQocCk7CiAKICAgIGlmIChzX3RyYWNlX211dGV4KQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIG11dGV4X2Rlc3Ryb3kgICAlcyAweCVseCByYyAlZCBvd25lciAlZCIsCisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gbXV0ZXhfZGVzdHJveSAgICVzIDB4JWx4IHJjICVkIG93bmVyICV1IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyhtdXRleF9nZXRfdHlwZW5hbWUpKHApLCBwLT5hMSwKICAgICAgICAgICAgICAgICAgICAgICBwID8gcC0+cmVjdXJzaW9uX2NvdW50IDogLTEsCkBAIC0xOTcsNyArMTk3LDcgQEAKICAgIHN0cnVjdCBtdXRleF9pbmZvKiBwOwogCiAgICBpZiAoc190cmFjZV9tdXRleCkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBtdXRleF9pbml0ICAgICAgJXMgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIG11dGV4X2luaXQgICAgICAlcyAweCVseCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLAogICAgICAgICAgICAgICAgICAgICAgIERSRF8obXV0ZXhfdHlwZV9uYW1lKShtdXRleF90eXBlKSwKICAgICAgICAgICAgICAgICAgICAgICBtdXRleCk7CkBAIC0yNTgsNyArMjU4LDcgQEAKICAgICAgIG11dGV4X3R5cGUgPSBwLT5tdXRleF90eXBlOwogCiAgICBpZiAoc190cmFjZV9tdXRleCkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSAlcyAlcyAweCVseCByYyAlZCBvd25lciAlZCIsCisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gJXMgJXMgMHglbHggcmMgJWQgb3duZXIgJXUiLAogICAgICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9ydW5uaW5nX3RpZCkoKSwKICAgICAgICAgICAgICAgICAgICAgICB0cnlsb2NrID8gInByZV9tdXRleF9sb2NrICIgOiAibXV0ZXhfdHJ5bG9jayAgIiwKICAgICAgICAgICAgICAgICAgICAgICBwID8gRFJEXyhtdXRleF9nZXRfdHlwZW5hbWUpKHApIDogIig/KSIsCkBAIC0zMDgsNyArMzA4LDcgQEAKICAgIHAgPSBEUkRfKG11dGV4X2dldCkobXV0ZXgpOwogCiAgICBpZiAoc190cmFjZV9tdXRleCkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSAlcyAlcyAweCVseCByYyAlZCBvd25lciAlZCVzIiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSAlcyAlcyAweCVseCByYyAlZCBvd25lciAldSVzIiwKICAgICAgICAgICAgICAgICAgICAgICBkcmRfdGlkLAogICAgICAgICAgICAgICAgICAgICAgIHBvc3RfY29uZF93YWl0ID8gImNvbmRfcG9zdF93YWl0ICIgOiAicG9zdF9tdXRleF9sb2NrIiwKICAgICAgICAgICAgICAgICAgICAgICBwID8gRFJEXyhtdXRleF9nZXRfdHlwZW5hbWUpKHApIDogIig/KSIsCkBAIC0zNzQsNyArMzc0LDcgQEAKICAgICAgIG11dGV4X3R5cGUgPSBwLT5tdXRleF90eXBlOwogCiAgICBpZiAoc190cmFjZV9tdXRleCkgewotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIG11dGV4X3VubG9jayAgICAlcyAweCVseCByYyAlZCIsCisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gbXV0ZXhfdW5sb2NrICAgICVzIDB4JWx4IHJjICVkIiwKICAgICAgICAgICAgICAgICAgICAgICBkcmRfdGlkLCBwID8gRFJEXyhtdXRleF9nZXRfdHlwZW5hbWUpKHApIDogIig/KSIsCiAgICAgICAgICAgICAgICAgICAgICAgbXV0ZXgsIHAgPyBwLT5yZWN1cnNpb25fY291bnQgOiAwKTsKICAgIH0KZGlmZiAtLWdpdCBhL2RyZC9kcmRfbXV0ZXguaCBiL2RyZC9kcmRfbXV0ZXguaAppbmRleCA5NTMwNDVhLi5lMmJiYzFiIDEwMDY0NAotLS0gYS9kcmQvZHJkX211dGV4LmgKKysrIGIvZHJkL2RyZF9tdXRleC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9kcmQvZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jIGIvZHJkL2RyZF9wdGhyZWFkX2ludGVyY2VwdHMuYwppbmRleCBhMzExOWRlLi4yNzkzNjYwIDEwMDY0NAotLS0gYS9kcmQvZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jCisrKyBiL2RyZC9kcmRfcHRocmVhZF9pbnRlcmNlcHRzLmMKQEAgLTUsNyArNSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBEUkQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTU1LDE3ICs1NSw4MiBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPiAgICAgICAgIC8qIG1hbGxvYygpLCBmcmVlKCkgKi8KICNpbmNsdWRlIDx1bmlzdGQuaD4gICAgICAgICAvKiBjb25mc3RyKCkgKi8KICNpbmNsdWRlICJjb25maWcuaCIgICAgICAgICAvKiBIQVZFX1BUSFJFQURfTVVURVhfQURBUFRJVkVfTlAgZXRjLiAqLwotI2lmZGVmIEhBVkVfVVNBQkxFX0xJTlVYX0ZVVEVYX0gKLSNpbmNsdWRlIDxhc20vdW5pc3RkLmg+ICAgICAvKiBfX05SX2Z1dGV4ICovCi0jaW5jbHVkZSA8bGludXgvZnV0ZXguaD4gICAgLyogRlVURVhfV0FJVCAqLwotI2lmbmRlZiBGVVRFWF9QUklWQVRFX0ZMQUcKLSNkZWZpbmUgRlVURVhfUFJJVkFURV9GTEFHIDAKLSNlbmRpZgotI2VuZGlmCiAjaW5jbHVkZSAiZHJkX2Jhc2ljcy5oIiAgICAgLyogRFJEXygpICovCiAjaW5jbHVkZSAiZHJkX2NsaWVudHJlcS5oIgogI2luY2x1ZGUgInB1Yl90b29sX3JlZGlyLmgiIC8qIFZHX1dSQVBfRlVOQ1RJT05fWlooKSAqLwogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qCisgKiBTb2xhcmlzIHVzdWFsbHkgcHJvdmlkZXMgcHRocmVhZF8qIGZ1bmN0aW9ucyBvbiB0b3Agb2YgU29sYXJpcyB0aHJlYWRpbmcKKyAqIGFuZCBzeW5jaHJvbml6YXRpb24gZnVuY3Rpb25zLiBVc3VhbGx5IGJvdGggbmVlZCB0byBiZSBpbnRlcmNlcHRlZCBiZWNhdXNlCisgKiBwdGhyZWFkXyogb25lcyBtaWdodCBub3QgY2FsbCB0aGUgU29sYXJpcyBvbmVzIChzZWUgZm9yIGV4YW1wbGUgc2VtX3dhaXQoKSkuCisgKiBTdWNoIGFwcHJvYWNoIGlzIHJlcXVpcmVkIHRvIGNvcnJlY3RseSByZXBvcnQgbWlzdXNlIG9mIHRoZSBQT1NJWCB0aHJlYWRzCisgKiBBUEkuCisgKiBUaGVyZWZvcmUgRFJEIGludGVyY2VwdHMgYW5kIGluc3RydW1lbnRzIGFsbCBzdWNoIGZ1bmN0aW9ucyBidXQgZHVlIHRvCisgKiBEUkRfKHRocmVhZF9lbnRlcl9zeW5jaHIpKCkgYW5kIERSRF8odGhyZWFkX2xlYXZlX3N5bmNocikoKSBndWFyZHMgaW4KKyAqIGhhbmRsZV9jbGllbnRfcmVxdWVzdCgpLCBvbmx5IHRoZSB0b3AtbW9zdCBmdW5jdGlvbiBpcyBoYW5kbGVkLgorICogU28gdGhlIHJpZ2h0IHRoaW5nKFRNKSBoYXBwZW5zLCBhcyBleHBlY3RlZC4KKyAqIFRoZSBvbmx5IGV4Y2VwdGlvbiBpcyB3aGVuIHB0aHJlYWRfKiBmdW5jdGlvbiBpcyBhIHdlYWsgYWxpYXMgdG8gdGhlIFNvbGFyaXMKKyAqIHRocmVhZGluZy9zeW5jaHJvbml6YXRpb24gZnVuY3Rpb24uIEluIHN1Y2ggY2FzZSBvbmx5IG9uZSBuZWVkcyB0byBiZQorICogaW50ZXJjZXB0ZWQgdG8gYXZvaWQgcmVkaXJlY3Rpb24gYW1iaWd1aXR5LgorICoKKyAqIEludGVyY2VwdGVkIGZ1bmN0aW9ucyByZWx5IG9uIHRoZSBmYWN0IHRoYXQ6CisgKiAgLSBwdGhyZWFkX211dGV4X3QgID09IG11dGV4X3QKKyAqICAtIHB0aHJlYWRfY29uZF90ICAgPT0gY29uZF90CisgKiAgLSBzZW1fdCAgICAgICAgICAgID09IHNlbWFfdAorICogIC0gcHRocmVhZF9yd2xvY2tfdCA9PSByd2xvY2tfdAorICoKKyAqIEl0IGlzIG5lY2Vzc2FyeSB0byBpbnRlcmNlcHQgYWxzbyBpbnRlcm5hbCBsaWJjIHN5bmNocm9uaXphdGlvbiBmdW5jdGlvbnMKKyAqIGZvciB0d28gcmVhc29uczoKKyAqICAtIEZvciByZWFkLXdyaXRlIGxvY2tzIHRoZSB1bmxvY2tpbmcgZnVuY3Rpb24gaXMgc2hhcmVkCisgKiAgLSBGdW5jdGlvbnMgbG11dGV4X2xvY2svbG11dGV4X3VubG9jayBndWFyZCBtYW55IGNyaXRpY2FsIHNlY3Rpb25zIGluIGxpYmMKKyAqICAgIHdoaWNoIHdpbGwgYmUgb3RoZXJ3aXNlIHJlcG9ydGVkIGJ5IERSRAorICovCisjaW5jbHVkZSA8c3luY2guaD4KKyNpbmNsdWRlIDx0aHJlYWQuaD4KKyNpbmNsdWRlICJwdWJfdG9vbF92a2kuaCIKKworLyoKKyAqIFNvbGFyaXMgcHJvdmlkZXMgaGlnaGVyIHRocm91Z2hwdXQsIHBhcmFsbGVsaXNtIGFuZCBzY2FsYWJpbGl0eSB0aGFuIG90aGVyCisgKiBvcGVyYXRpbmcgc3lzdGVtcywgYXQgdGhlIGNvc3Qgb2YgbW9yZSBmaW5lLWdyYWluZWQgbG9ja2luZyBhY3Rpdml0eS4KKyAqIFRoaXMgbWVhbnMgZm9yIGV4YW1wbGUgdGhhdCB3aGVuIGEgdGhyZWFkIGlzIGNyZWF0ZWQgdW5kZXIgTGludXgsIGp1c3Qgb25lCisgKiBiaWcgbG9jayBpbiBnbGliYyBpcyB1c2VkIGZvciBhbGwgdGhyZWFkIHNldHVwLiBTb2xhcmlzIGxpYmMgdXNlcyBzZXZlcmFsCisgKiBmaW5lLWdyYWluZWQgbG9ja3MgYW5kIHRoZSBjcmVhdG9yIHRocmVhZCByZXN1bWVzIGl0cyBhY3Rpdml0aWVzIGFzIHNvb24KKyAqIGFzIHBvc3NpYmxlLCBsZWF2aW5nIGZvciBleGFtcGxlIHN0YWNrIGFuZCBUTFMgc2V0dXAgYWN0aXZpdGllcyB0byB0aGUKKyAqIGNyZWF0ZWQgdGhyZWFkLgorICoKKyAqIFRoaXMgc2l0dWF0aW9uIGNvbmZ1c2VzIERSRCBhcyBpdCBhc3N1bWVzIHRoZXJlIGlzIHNvbWUgZmFsc2Ugb3JkZXJpbmcKKyAqIGluIHBsYWNlIGJldHdlZW4gY3JlYXRvciBhbmQgY3JlYXRlZCB0aHJlYWQ7IGFuZCB0aGVyZWZvcmUgbWFueSB0eXBlcyBvZgorICogcmFjZSBjb25kaXRpb25zIGluIHRoZSBhcHBsaWNhdGlvbiB3b3VsZCBub3QgYmUgcmVwb3J0ZWQuIFRvIHByZXZlbnQgc3VjaAorICogZmFsc2Ugb3JkZXJpbmcsIGNvbW1hbmQgbGluZSBvcHRpb24gLS1pZ25vcmUtdGhyZWFkLWNyZWF0aW9uIGlzIHNldCB0bworICogJ3llcycgYnkgZGVmYXVsdCBvbiBTb2xhcmlzLiBBbGwgYWN0aXZpdHkgKGxvYWRzLCBzdG9yZXMsIGNsaWVudCByZXF1ZXN0cykKKyAqIGlzIHRoZXJlZm9yZSBpZ25vcmVkIGR1cmluZzoKKyAqIC0gcHRocmVhZF9jcmVhdGUoKSBjYWxsIGluIHRoZSBjcmVhdG9yIHRocmVhZCBbbGliYy5zb10KKyAqIC0gdGhyZWFkIGNyZWF0aW9uIHBoYXNlIChzdGFjayBhbmQgVExTIHNldHVwKSBpbiB0aGUgY3JlYXRlZCB0aHJlYWQgW2xpYmMuc29dCisgKgorICogQXMgZXhwbGFpbmVkIGluIHRoZSBjb21tZW50cyBmb3IgX3RpX2JpbmRfZ3VhcmQoKSwgd2hlbmV2ZXIgdGhlIHJ1bnRpbWUKKyAqIGxpbmtlciBoYXMgdG8gcGVyZm9ybSBhbnkgYWN0aXZpdHkgKHN1Y2ggYXMgcmVzb2x2aW5nIGEgc3ltYm9sKSwgaXQgcHJvdGVjdHMKKyAqIGl0cyBkYXRhIHN0cnVjdHVyZXMgYnkgY2FsbGluZyBpbnRvIHJ0X2JpbmRfZ3VhcmQoKSB3aGljaCBpbiB0dXJuIGludm9rZXMKKyAqIF90aV9iaW5kX2d1YXJkKCkgaW4gbGliYy4gUG9pbnRlcnMgdG8gX3RpX2JpbmRfZ3VhcmQoKSBhbmQgX3RpX2JpbmRfY2xlYXIoKQorICogYXJlIHBhc3NlZCBmcm9tIGxpYmMgdG8gcnVudGltZSBsaW5rZXIgaW4gX2xkX2xpYmMoKSBjYWxsIGR1cmluZyBsaWJjX2luaXQoKS4KKyAqIEFsbCBhY3Rpdml0eSBpcyBhbHNvIGlnbm9yZWQgZHVyaW5nOgorICogLSBydW50aW1lIGR5bmFtaWMgbGlua2VyIHdvcmsgYmV0d2VlbiBydF9iaW5kX2d1YXJkKCkgYW5kIHJ0X2JpbmRfY2xlYXIoKQorICogICBjYWxscyBbbGQuc29dCisgKgorICogVGhpcyBhbHNvIG1lYW5zIHRoYXQgRFJEIGRvZXMgbm90IHJlcG9ydCByYWNlIGNvbmRpdGlvbnMgaW4gbGliYyAod2hlbgorICogLS1pZ25vcmUtdGhyZWFkLWNyZWF0aW9uPXllcykgYW5kIHJ1bnRpbWUgbGlua2VyIGl0c2VsZiAodW5jb25kaXRpb25hbGx5KQorICogZHVyaW5nIHRoZXNlIGlnbm9yZWQgc2VxdWVuY2VzLgorICovCisKKy8qCisgKiBPcmlnaW5hbCBmdW5jdGlvbiBwb2ludGVycyBmb3IgX3RpX2JpbmRfZ3VhcmQoKSBhbmQgX3RpX2JpbmRfY2xlYXIoKQorICogZnJvbSBsaWJjLiBUaGV5IGFyZSBpbnRlcmNlcHRlZCBpbiBmdW5jdGlvbiB3cmFwcGVyIG9mIF9sZF9saWJjKCkuCisgKi8KK3R5cGVkZWYgaW50ICgqZHJkX3J0bGRfZ3VhcmRfZm4pKGludCBmbGFncyk7CitzdGF0aWMgZHJkX3J0bGRfZ3VhcmRfZm4gRFJEXyhydGxkX2JpbmRfZ3VhcmQpID0gTlVMTDsKK3N0YXRpYyBkcmRfcnRsZF9ndWFyZF9mbiBEUkRfKHJ0bGRfYmluZF9jbGVhcikgPSBOVUxMOworI2VuZGlmCisKIAogLyoKICAqIE5vdGVzIHJlZ2FyZGluZyB0aHJlYWQgY3JlYXRpb246CkBAIC0xMDEsNiArMTY2LDE1IEBACiAJIGZmbHVzaChzdGRvdXQpOwkJCQkJCVwKICAgICAgIHJldHVybiBwdGhfZnVuY19yZXN1bHQ7CQkJCQkJXAogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIE9uIFNvbGFyaXMsIGxpYnB0aHJlYWQgaXMganVzdCBhIGZpbHRlciBsaWJyYXJ5IG9uIHRvcCBvZiBsaWJjLgorICogVGhyZWFkaW5nIGFuZCBzeW5jaHJvbml6YXRpb24gZnVuY3Rpb25zIGluIHJ1bnRpbWUgbGlua2VyIGFyZSBub3QKKyAqIGludGVyY2VwdGVkLgorICovCisjZGVmaW5lIFBUSF9GVU5DKHJldF90eSwgemYsIGltcGxmLCBhcmdsX2RlY2wsIGFyZ2wpICAgICAgICAgICAgICAgICAgICBcCisgICByZXRfdHkgVkdfV1JBUF9GVU5DVElPTl9aWihWR19aX0xJQkNfU09OQU1FLHpmKSBhcmdsX2RlY2w7ICAgICAgICAgICBcCisgICByZXRfdHkgVkdfV1JBUF9GVU5DVElPTl9aWihWR19aX0xJQkNfU09OQU1FLHpmKSBhcmdsX2RlY2wgICAgICAgICAgICBcCisgICB7IHJldHVybiBpbXBsZiBhcmdsOyB9CiAjZWxzZQogI2RlZmluZSBQVEhfRlVOQyhyZXRfdHksIHpmLCBpbXBsZiwgYXJnbF9kZWNsLCBhcmdsKSAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0X3R5IFZHX1dSQVBfRlVOQ1RJT05fWlooVkdfWl9MSUJQVEhSRUFEX1NPTkFNRSx6ZikgYXJnbF9kZWNsOyAgICAgXApAQCAtMTM3LDggKzIxMSw4IEBACiAKIHR5cGVkZWYgc3RydWN0IHsKICAgIHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsKKyAgIHB0aHJlYWRfY29uZF90IGNvbmQ7CiAgICBpbnQgY291bnRlcjsKLSAgIGludCB3YWl0ZXJzOwogfSBEcmRTZW1hOwogCiB0eXBlZGVmIHN0cnVjdApAQCAtMTc3LDYgKzI1MSwxNSBAQAogewogICAgRFJEXyhjaGVja190aHJlYWRpbmdfbGlicmFyeSkoKTsKICAgIERSRF8oc2V0X21haW5fdGhyZWFkX3N0YXRlKSgpOworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBpZiAoKERSRF8ocnRsZF9iaW5kX2d1YXJkKSA9PSBOVUxMKSB8fCAoRFJEXyhydGxkX2JpbmRfY2xlYXIpID09IE5VTEwpKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwKKyJCaW5kIGd1YXJkIGZ1bmN0aW9ucyBmb3IgdGhlIHJ1bnRpbWUgbGlua2VyIChsZC5zby4xKSB3ZXJlIG5vdCBpbnRlcmNlcHRlZC5cbiIKKyJUaGlzIG1lYW5zIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiBsaWJjIGFuZCBydW50aW1lIGxpbmtlciBjaGFuZ2VkIGFuZCBEUkRcbiIKKyJuZWVkcyB0byBiZSBwb3J0ZWQgcHJvcGVybHkuIEdpdmluZyB1cC5cbiIpOworICAgICAgYWJvcnQoKTsKKyAgIH0KKyNlbmRpZgogfQogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgRFJEXyhpZ25vcmVfbXV0ZXhfb3JkZXJpbmcpKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpCkBAIC0xOTAsNDMgKzI3MywyMSBAQAogICAgRFJEX0lHTk9SRV9WQVIoKnNlbWEpOwogICAgcHRocmVhZF9tdXRleF9pbml0KCZzZW1hLT5tdXRleCwgTlVMTCk7CiAgICBEUkRfKGlnbm9yZV9tdXRleF9vcmRlcmluZykoJnNlbWEtPm11dGV4KTsKKyAgIHB0aHJlYWRfY29uZF9pbml0KCZzZW1hLT5jb25kLCBOVUxMKTsKICAgIHNlbWEtPmNvdW50ZXIgPSAwOwotICAgc2VtYS0+d2FpdGVycyA9IDA7CiB9CiAKIHN0YXRpYyB2b2lkIERSRF8oc2VtYV9kZXN0cm95KShEcmRTZW1hKiBzZW1hKQogewogICAgcHRocmVhZF9tdXRleF9kZXN0cm95KCZzZW1hLT5tdXRleCk7CisgICBwdGhyZWFkX2NvbmRfZGVzdHJveSgmc2VtYS0+Y29uZCk7CiB9CiAKIHN0YXRpYyB2b2lkIERSRF8oc2VtYV9kb3duKShEcmRTZW1hKiBzZW1hKQogewotICAgaW50IHJlcyA9IEVOT1NZUzsKLQogICAgcHRocmVhZF9tdXRleF9sb2NrKCZzZW1hLT5tdXRleCk7Ci0gICBpZiAoc2VtYS0+Y291bnRlciA9PSAwKSB7Ci0gICAgICBzZW1hLT53YWl0ZXJzKys7Ci0gICAgICB3aGlsZSAoc2VtYS0+Y291bnRlciA9PSAwKSB7Ci0gICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmc2VtYS0+bXV0ZXgpOwotI2lmZGVmIEhBVkVfVVNBQkxFX0xJTlVYX0ZVVEVYX0gKLSAgICAgICAgIGlmIChzeXNjYWxsKF9fTlJfZnV0ZXgsIChVV29yZCkmc2VtYS0+Y291bnRlciwKLSAgICAgICAgICAgICAgICAgICAgIEZVVEVYX1dBSVQgfCBGVVRFWF9QUklWQVRFX0ZMQUcsIDApID09IDApCi0gICAgICAgICAgICByZXMgPSAwOwotICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzID0gZXJybm87Ci0jZW5kaWYKLSAgICAgICAgIC8qCi0gICAgICAgICAgKiBJbnZva2Ugc2NoZWRfeWllbGQoKSBvbiBub24tTGludXggc3lzdGVtcywgaWYgdGhlIGZ1dGV4IHN5c2NhbGwgaGFzCi0gICAgICAgICAgKiBub3QgYmVlbiBpbnZva2VkIG9yIGlmIHRoaXMgY29kZSBoYXMgYmVlbiBidWlsdCBvbiBhIExpbnV4IHN5c3RlbQotICAgICAgICAgICogd2hlcmUgX19OUl9mdXRleCBpcyBkZWZpbmVkIGFuZCBpcyBydW4gb24gYSBMaW51eCBzeXN0ZW0gdGhhdCBkb2VzCi0gICAgICAgICAgKiBub3Qgc3VwcG9ydCB0aGUgZnV0ZXggc3lzY2FsbC4KLSAgICAgICAgICAqLwotICAgICAgICAgaWYgKHJlcyAhPSAwICYmIHJlcyAhPSBFV09VTERCTE9DSykKLSAgICAgICAgICAgIHNjaGVkX3lpZWxkKCk7Ci0gICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJnNlbWEtPm11dGV4KTsKLSAgICAgIH0KLSAgICAgIHNlbWEtPndhaXRlcnMtLTsKLSAgIH0KKyAgIHdoaWxlIChzZW1hLT5jb3VudGVyID09IDApCisgICAgICBwdGhyZWFkX2NvbmRfd2FpdCgmc2VtYS0+Y29uZCwgJnNlbWEtPm11dGV4KTsKICAgIHNlbWEtPmNvdW50ZXItLTsKICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZzZW1hLT5tdXRleCk7CiB9CkBAIC0yMzUsMTEgKzI5Niw3IEBACiB7CiAgICBwdGhyZWFkX211dGV4X2xvY2soJnNlbWEtPm11dGV4KTsKICAgIHNlbWEtPmNvdW50ZXIrKzsKLSNpZmRlZiBIQVZFX1VTQUJMRV9MSU5VWF9GVVRFWF9ICi0gICBpZiAoc2VtYS0+d2FpdGVycyA+IDApCi0gICAgICBzeXNjYWxsKF9fTlJfZnV0ZXgsIChVV29yZCkmc2VtYS0+Y291bnRlciwKLSAgICAgICAgICAgICAgRlVURVhfV0FLRSB8IEZVVEVYX1BSSVZBVEVfRkxBRywgMSk7Ci0jZW5kaWYKKyAgIHB0aHJlYWRfY29uZF9zaWduYWwoJnNlbWEtPmNvbmQpOwogICAgcHRocmVhZF9tdXRleF91bmxvY2soJnNlbWEtPm11dGV4KTsKIH0KIApAQCAtMjc1LDYgKzMzMiwyMyBAQAogICAgICAgcmV0dXJuIG11dGV4X3R5cGVfaW52YWxpZF9tdXRleDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKioKKyAqIFNvbGFyaXMgdGhyZWFkcyBhbmQgRFJEIGVhY2ggaGF2ZSB0aGVpciBvd24gbXV0ZXggdHlwZSBpZGVudGlmaWNhdGlvbi4KKyAqIENvbnZlcnQgU29sYXJpcyB0aHJlYWRzJyBtdXRleCB0eXBlIHRvIERSRCdzIG11dGV4IHR5cGUuCisgKi8KK3N0YXRpYyBNdXRleFQgRFJEXyh0aHJlYWRfdG9fZHJkX211dGV4X3R5cGUpKGludCB0eXBlKQoreworICAgaWYgKHR5cGUgJiBMT0NLX1JFQ1VSU0lWRSkgeworICAgICAgcmV0dXJuIG11dGV4X3R5cGVfcmVjdXJzaXZlX211dGV4OworICAgfSBlbHNlIGlmICh0eXBlICYgTE9DS19FUlJPUkNIRUNLKSB7CisgICAgICByZXR1cm4gbXV0ZXhfdHlwZV9lcnJvcmNoZWNrX211dGV4OworICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBtdXRleF90eXBlX2RlZmF1bHRfbXV0ZXg7CisgICB9Cit9CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKwogI2RlZmluZSBJU19BTElHTkVEKHApICgoKHVpbnRwdHJfdCkocCkgJiAoc2l6ZW9mKCoocCkpIC0gMSkpID09IDApCiAKIC8qKgpAQCAtMzA2LDYgKzM4MCw5IEBACiAgICAgICBjb25zdCBpbnQga2luZCA9IG11dGV4LT5fX2RhdGEuX19raW5kICYgMzsKICAgICAgIHJldHVybiBEUkRfKHB0aHJlYWRfdG9fZHJkX211dGV4X3R5cGUpKGtpbmQpOwogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgIGNvbnN0IGludCB0eXBlID0gKChtdXRleF90ICopIG11dGV4KS0+dmtpX211dGV4X3R5cGU7CisgICAgICByZXR1cm4gRFJEXyh0aHJlYWRfdG9fZHJkX211dGV4X3R5cGUpKHR5cGUpOwogI2Vsc2UKICAgIC8qCiAgICAgKiBBbm90aGVyIFBPU0lYIHRocmVhZHMgaW1wbGVtZW50YXRpb24uIFRoZSBtdXRleCB0eXBlIHdvbid0IGJlIHByaW50ZWQKQEAgLTUwMyw2ICs1ODAsMTEzIEBACiAgICAgICAgICAgIHZvaWQgKigqc3RhcnQpICh2b2lkICopLCB2b2lkICphcmcpLAogICAgICAgICAgICh0aHJlYWQsIGF0dHIsIHN0YXJ0LCBhcmcpKTsKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBTb2xhcmlzIGFsc28gcHJvdmlkZXMgdGhyX2NyZWF0ZSgpIGluIGFkZGl0aW9uIHRvIHB0aHJlYWRfY3JlYXRlKCkuCisgKiBCb3RoIHB0aHJlYWRfY3JlYXRlKDNDKSBhbmQgdGhyX2NyZWF0ZSgzQykgYXJlIGJhc2VkIG9uIHByaXZhdGUKKyAqIF90aHJwX2NyZWF0ZSgpLgorICovCitzdGF0aWMgX19hbHdheXNfaW5saW5lCitpbnQgdGhyX2NyZWF0ZV9pbnRlcmNlcHQodm9pZCAqc3RrLCBzaXplX3Qgc3Rrc2l6ZSwgdm9pZCAqKCpzdGFydCkodm9pZCAqKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICphcmcsIGxvbmcgZmxhZ3MsIHRocmVhZF90ICpuZXdfdGhyZWFkKQoreworICAgaW50ICAgICAgICAgICAgICAgIHJldDsKKyAgIE9yaWdGbiAgICAgICAgICAgICBmbjsKKyAgIERyZFNlbWEgICAgICAgICAgICB3cmFwcGVyX3N0YXJ0ZWQ7CisgICBEcmRQb3NpeFRocmVhZEFyZ3MgdGhyZWFkX2FyZ3M7CisKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKworICAgRFJEXyhzZW1hX2luaXQpKCZ3cmFwcGVyX3N0YXJ0ZWQpOworICAgdGhyZWFkX2FyZ3Muc3RhcnQgICAgICAgICAgID0gc3RhcnQ7CisgICB0aHJlYWRfYXJncy5hcmcgICAgICAgICAgICAgPSBhcmc7CisgICB0aHJlYWRfYXJncy53cmFwcGVyX3N0YXJ0ZWQgPSAmd3JhcHBlcl9zdGFydGVkOworICAgLyoKKyAgICAqIEZpbmQgb3V0IHdoZXRoZXIgdGhlIHRocmVhZCB3aWxsIGJlIHN0YXJ0ZWQgYXMgYSBqb2luYWJsZSB0aHJlYWQKKyAgICAqIG9yIGFzIGEgZGV0YWNoZWQgdGhyZWFkLgorICAgICovCisgICBpZiAoZmxhZ3MgJiBUSFJfREVUQUNIRUQpCisgICAgICB0aHJlYWRfYXJncy5kZXRhY2hzdGF0ZSA9IFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVEOworICAgZWxzZQorICAgICAgdGhyZWFkX2FyZ3MuZGV0YWNoc3RhdGUgPSBQVEhSRUFEX0NSRUFURV9KT0lOQUJMRTsKKworICAgRFJEXyhlbnRlcmluZ19wdGhyZWFkX2NyZWF0ZSkoKTsKKyAgIENBTExfRk5fV182VyhyZXQsIGZuLCBzdGssIHN0a3NpemUsIERSRF8odGhyZWFkX3dyYXBwZXIpLCAmdGhyZWFkX2FyZ3MsCisgICAgICAgICAgICAgICAgZmxhZ3MsIG5ld190aHJlYWQpOworICAgRFJEXyhsZWZ0X3B0aHJlYWRfY3JlYXRlKSgpOworCisgICBpZiAocmV0ID09IDApIHsKKyAgICAgIC8qIFdhaXQgdW50aWwgdGhlIHRocmVhZCB3cmFwcGVyIHN0YXJ0ZWQuICovCisgICAgICBEUkRfKHNlbWFfZG93bikoJndyYXBwZXJfc3RhcnRlZCk7CisgICB9CisKKyAgIERSRF8oc2VtYV9kZXN0cm95KSgmd3JhcHBlcl9zdGFydGVkKTsKKworICAgVkFMR1JJTkRfRE9fQ0xJRU5UX1JFUVVFU1RfU1RNVChWR19VU0VSUkVRX19EUkRfU1RBUlRfTkVXX1NFR01FTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfc2VsZigpLCAwLCAwLCAwLCAwKTsKKworICAgcmV0dXJuIHJldDsKK30KKworUFRIX0ZVTkNTKGludCwgdGhyWnVjcmVhdGUsIHRocl9jcmVhdGVfaW50ZXJjZXB0LAorICAgICAgICAgICh2b2lkICpzdGssIHNpemVfdCBzdGtzaXplLCB2b2lkICooKnN0YXJ0KSh2b2lkICopLCB2b2lkICphcmcsCisgICAgICAgICAgIGxvbmcgZmxhZ3MsIHRocmVhZF90ICpuZXdfdGhyZWFkKSwKKyAgICAgICAgICAoc3RrLCBzdGtzaXplLCBzdGFydCwgYXJnLCBmbGFncywgbmV3X3RocmVhZCkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyoKKyAqIEludGVyY2VwdHMgZm9yIF90aV9iaW5kX2d1YXJkKCkgYW5kIF90aV9iaW5kX2NsZWFyKCkgZnVuY3Rpb25zIGZyb20gbGliYy4KKyAqIFRoZXNlIGFyZSBpbnRlcmNlcHRlZCBkdXJpbmcgX2xkX2xpYmMoKSBjYWxsIGJ5IGlkZW50aWZ5aW5nIENJX0JJTkRfR1VBUkQKKyAqIGFuZCBDSV9CSU5EX0NMRUFSLCB0byBwcm92aWRlIHJlc2lsaWVuY2UgYWdhaW5zdCBmdW5jdGlvbiByZW5hbWluZy4KKyAqLworc3RhdGljIF9fYWx3YXlzX2lubGluZQoraW50IERSRF8oX3RpX2JpbmRfZ3VhcmRfaW50ZXJjZXB0KShpbnQgZmxhZ3MpIHsKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoVkdfVVNFUlJFUV9fUlRMRF9CSU5EX0dVQVJELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgMCwgMCwgMCwgMCk7CisgICByZXR1cm4gRFJEXyhydGxkX2JpbmRfZ3VhcmQpKGZsYWdzKTsKK30KKworc3RhdGljIF9fYWx3YXlzX2lubGluZQoraW50IERSRF8oX3RpX2JpbmRfY2xlYXJfaW50ZXJjZXB0KShpbnQgZmxhZ3MpIHsKKyAgIGludCByZXQgPSBEUkRfKHJ0bGRfYmluZF9jbGVhcikoZmxhZ3MpOworICAgVkFMR1JJTkRfRE9fQ0xJRU5UX1JFUVVFU1RfU1RNVChWR19VU0VSUkVRX19SVExEX0JJTkRfQ0xFQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAwLCAwLCAwLCAwKTsKKyAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBXcmFwcGVkIF9sZF9saWJjKCkgZnJvbSB0aGUgcnVudGltZSBsaW5rZXIgbGQuc28uMS4KKyAqLwordm9pZCBWR19XUkFQX0ZVTkNUSU9OX1paKFZHX1pfTERfU09fMSwgWnVsZFp1bGliYykodmtpX0xjX2ludGVyZmFjZSAqcHRyKTsKK3ZvaWQgVkdfV1JBUF9GVU5DVElPTl9aWihWR19aX0xEX1NPXzEsIFp1bGRadWxpYmMpKHZraV9MY19pbnRlcmZhY2UgKnB0cikKK3sKKyAgIE9yaWdGbiBmbjsKKyAgIGludCAgICB0YWc7CisKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKworICAgdmtpX0xjX2ludGVyZmFjZSAqZnVuY3MgPSBwdHI7CisgICBmb3IgKHRhZyA9IGZ1bmNzLT5jaV90YWc7IHRhZyAhPSAwOyB0YWcgPSAoKytmdW5jcyktPmNpX3RhZykgeworICAgICAgc3dpdGNoICh0YWcpIHsKKyAgICAgIGNhc2UgVktJX0NJX0JJTkRfR1VBUkQ6CisgICAgICAgICBpZiAoZnVuY3MtPnZraV9jaV91bi5jaV9mdW5jICE9IERSRF8oX3RpX2JpbmRfZ3VhcmRfaW50ZXJjZXB0KSkgeworICAgICAgICAgICAgRFJEXyhydGxkX2JpbmRfZ3VhcmQpID0gZnVuY3MtPnZraV9jaV91bi5jaV9mdW5jOworICAgICAgICAgICAgZnVuY3MtPnZraV9jaV91bi5jaV9mdW5jID0gRFJEXyhfdGlfYmluZF9ndWFyZF9pbnRlcmNlcHQpOworICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFZLSV9DSV9CSU5EX0NMRUFSOgorICAgICAgICAgaWYgKGZ1bmNzLT52a2lfY2lfdW4uY2lfZnVuYyAhPSBEUkRfKF90aV9iaW5kX2NsZWFyX2ludGVyY2VwdCkpIHsKKyAgICAgICAgICAgIERSRF8ocnRsZF9iaW5kX2NsZWFyKSA9IGZ1bmNzLT52a2lfY2lfdW4uY2lfZnVuYzsKKyAgICAgICAgICAgIGZ1bmNzLT52a2lfY2lfdW4uY2lfZnVuYyA9IERSRF8oX3RpX2JpbmRfY2xlYXJfaW50ZXJjZXB0KTsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgfQorCisgICBDQUxMX0ZOX3ZfVyhmbiwgcHRyKTsKK30KKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiBzdGF0aWMgX19hbHdheXNfaW5saW5lCiBpbnQgcHRocmVhZF9qb2luX2ludGVyY2VwdChwdGhyZWFkX3QgcHRfam9pbmVlLCB2b2lkICoqdGhyZWFkX3JldHVybikKIHsKQEAgLTUyOSw2ICs3MTMsMzQgQEAKICAgICAgICAgICAocHRocmVhZF90IHB0X2pvaW5lZSwgdm9pZCAqKnRocmVhZF9yZXR1cm4pLAogICAgICAgICAgIChwdF9qb2luZWUsIHRocmVhZF9yZXR1cm4pKTsKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBTb2xhcmlzIGFsc28gcHJvdmlkZXMgdGhyX2pvaW4oKSBpbiBhZGRpdGlvbiB0byBwdGhyZWFkX2pvaW4oKS4KKyAqIEJvdGggcHRocmVhZF9qb2luKDNDKSBhbmQgdGhyX2pvaW4oM0MpIGFyZSBiYXNlZCBvbiBwcml2YXRlIF90aHJwX2pvaW4oKS4KKyAqCisgKiA6VE9ETzogTm8gZnVuY3Rpb25hbGl0eSBpcyBjdXJyZW50bHkgcHJvdmlkZWQgZm9yIGpvaW5lZSA9PSAwIGFuZCBkZXBhcnRlZC4KKyAqICAgICAgICBUaGlzIHdvdWxkIHJlcXVpcmUgYW5vdGhlciBjbGllbnQgcmVxdWVzdCwgb2YgY291cnNlLgorICovCitzdGF0aWMgX19hbHdheXNfaW5saW5lCitpbnQgdGhyX2pvaW5faW50ZXJjZXB0KHRocmVhZF90IGpvaW5lZSwgdGhyZWFkX3QgKmRlcGFydGVkLCB2b2lkICoqdGhyZWFkX3JldHVybikKK3sKKyAgIGludCAgICAgIHJldDsKKyAgIE9yaWdGbiAgIGZuOworCisgICBWQUxHUklORF9HRVRfT1JJR19GTihmbik7CisgICBDQUxMX0ZOX1dfV1dXKHJldCwgZm4sIGpvaW5lZSwgZGVwYXJ0ZWQsIHRocmVhZF9yZXR1cm4pOworICAgaWYgKHJldCA9PSAwKQorICAgeworICAgICAgVkFMR1JJTkRfRE9fQ0xJRU5UX1JFUVVFU1RfU1RNVChWR19VU0VSUkVRX19QT1NUX1RIUkVBRF9KT0lOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2luZWUsIDAsIDAsIDAsIDApOworICAgfQorICAgcmV0dXJuIHJldDsKK30KKworUFRIX0ZVTkNTKGludCwgdGhyWnVqb2luLCB0aHJfam9pbl9pbnRlcmNlcHQsCisgICAgICAgICAgKHRocmVhZF90IGpvaW5lZSwgdGhyZWFkX3QgKmRlcGFydGVkLCB2b2lkICoqdGhyZWFkX3JldHVybiksCisgICAgICAgICAgKGpvaW5lZSwgZGVwYXJ0ZWQsIHRocmVhZF9yZXR1cm4pKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiBzdGF0aWMgX19hbHdheXNfaW5saW5lCiBpbnQgcHRocmVhZF9kZXRhY2hfaW50ZXJjZXB0KHB0aHJlYWRfdCBwdF90aHJlYWQpCiB7CkBAIC02MTMsNiArODI1LDI4IEBACiAgICAgICAgICAgKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsIGNvbnN0IHB0aHJlYWRfbXV0ZXhhdHRyX3QqIGF0dHIpLAogICAgICAgICAgIChtdXRleCwgYXR0cikpOwogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK2ludCBtdXRleF9pbml0X2ludGVyY2VwdChtdXRleF90ICptdXRleCwgaW50IHR5cGUsIHZvaWQgKmFyZykKK3sKKyAgIGludCByZXQ7CisgICBPcmlnRm4gZm47CisgICBWQUxHUklORF9HRVRfT1JJR19GTihmbik7CisKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoVkdfVVNFUlJFUV9fUFJFX01VVEVYX0lOSVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGV4LCBEUkRfKHRocmVhZF90b19kcmRfbXV0ZXhfdHlwZSkodHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDApOworICAgQ0FMTF9GTl9XX1dXVyhyZXQsIGZuLCBtdXRleCwgdHlwZSwgYXJnKTsKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoVkdfVVNFUlJFUV9fUE9TVF9NVVRFWF9JTklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRleCwgMCwgMCwgMCwgMCk7CisgICByZXR1cm4gcmV0OworfQorCitQVEhfRlVOQ1MoaW50LCBtdXRleFp1aW5pdCwgbXV0ZXhfaW5pdF9pbnRlcmNlcHQsCisgICAgICAgICAgKG11dGV4X3QgKm11dGV4LCBpbnQgdHlwZSwgdm9pZCAqYXJnKSwKKyAgICAgICAgICAobXV0ZXgsIHR5cGUsIGFyZykpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBwdGhyZWFkX211dGV4X2Rlc3Ryb3lfaW50ZXJjZXB0KHB0aHJlYWRfbXV0ZXhfdCogbXV0ZXgpCiB7CkBAIC02MjcsOCArODYxLDE0IEBACiAgICByZXR1cm4gcmV0OwogfQogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIE9uIFNvbGFyaXMsIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSBpcyBhIHdlYWsgYWxpYXMgdG8gbXV0ZXhfZGVzdHJveS4gKi8KK1BUSF9GVU5DUyhpbnQsIG11dGV4WnVkZXN0cm95LCBwdGhyZWFkX211dGV4X2Rlc3Ryb3lfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX211dGV4X3QgKm11dGV4KSwgKG11dGV4KSk7CisjZWxzZQogUFRIX0ZVTkNTKGludCwgcHRocmVhZFp1bXV0ZXhadWRlc3Ryb3ksIHB0aHJlYWRfbXV0ZXhfZGVzdHJveV9pbnRlcmNlcHQsCiAgICAgICAgICAgKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpLCAobXV0ZXgpKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lCiBpbnQgcHRocmVhZF9tdXRleF9sb2NrX2ludGVyY2VwdChwdGhyZWFkX211dGV4X3QqIG11dGV4KQpAQCAtNjQ0LDggKzg4NCwzNiBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBPbiBTb2xhcmlzLCBwdGhyZWFkX211dGV4X2xvY2sgaXMgYSB3ZWFrIGFsaWFzIHRvIG11dGV4X2xvY2suICovCitQVEhfRlVOQ1MoaW50LCBtdXRleFp1bG9jaywgcHRocmVhZF9tdXRleF9sb2NrX2ludGVyY2VwdCwKKyAgICAgICAgICAocHRocmVhZF9tdXRleF90ICptdXRleCksIChtdXRleCkpOworI2Vsc2UKIFBUSF9GVU5DUyhpbnQsIHB0aHJlYWRadW11dGV4WnVsb2NrLCBwdGhyZWFkX211dGV4X2xvY2tfaW50ZXJjZXB0LAogICAgICAgICAgIChwdGhyZWFkX211dGV4X3QgKm11dGV4KSwgKG11dGV4KSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBJbnRlcm5hbCB0byBsaWJjLiBNdXRleCBpcyB1c3VhbGx5IGluaXRpYWxpemVkIG9ubHkgaW1wbGljaXRseSwKKyAqIGJ5IHplcm9pbmcgbXV0ZXhfdCBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgbG11dGV4X2xvY2tfaW50ZXJjZXB0KG11dGV4X3QgKm11dGV4KQoreworICAgT3JpZ0ZuIGZuOworICAgVkFMR1JJTkRfR0VUX09SSUdfRk4oZm4pOworICAgVkFMR1JJTkRfRE9fQ0xJRU5UX1JFUVVFU1RfU1RNVChWR19VU0VSUkVRX19QUkVfTVVURVhfTE9DSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0ZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSRF8obXV0ZXhfdHlwZSkoKHB0aHJlYWRfbXV0ZXhfdCAqKSBtdXRleCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlIC8qIHRyeV9sb2NrICovLCAwLCAwKTsKKyAgIENBTExfRk5fdl9XKGZuLCBtdXRleCk7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKFZHX1VTRVJSRVFfX1BPU1RfTVVURVhfTE9DSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0ZXgsIFRydWUgLyogdG9va19sb2NrICovLCAwLCAwLCAwKTsKK30KKworUFRIX0ZVTkNTKHZvaWQsIGxtdXRleFp1bG9jaywgbG11dGV4X2xvY2tfaW50ZXJjZXB0LAorICAgICAgICAgIChtdXRleF90ICptdXRleCksIChtdXRleCkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBwdGhyZWFkX211dGV4X3RyeWxvY2tfaW50ZXJjZXB0KHB0aHJlYWRfbXV0ZXhfdCogbXV0ZXgpCkBAIC02NjEsOCArOTI5LDE0IEBACiAgICByZXR1cm4gcmV0OwogfQogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIE9uIFNvbGFyaXMsIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayBpcyBhIHdlYWsgYWxpYXMgdG8gbXV0ZXhfdHJ5bG9jay4gKi8KK1BUSF9GVU5DUyhpbnQsIG11dGV4WnV0cnlsb2NrLCBwdGhyZWFkX211dGV4X3RyeWxvY2tfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX211dGV4X3QgKm11dGV4KSwgKG11dGV4KSk7CisjZWxzZQogUFRIX0ZVTkNTKGludCwgcHRocmVhZFp1bXV0ZXhadXRyeWxvY2ssIHB0aHJlYWRfbXV0ZXhfdHJ5bG9ja19pbnRlcmNlcHQsCiAgICAgICAgICAgKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpLCAobXV0ZXgpKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lCiBpbnQgcHRocmVhZF9tdXRleF90aW1lZGxvY2tfaW50ZXJjZXB0KHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCkBAIC02ODIsNiArOTU2LDEyIEBACiBQVEhfRlVOQ1MoaW50LCBwdGhyZWFkWnVtdXRleFp1dGltZWRsb2NrLCBwdGhyZWFkX211dGV4X3RpbWVkbG9ja19pbnRlcmNlcHQsCiAgICAgICAgICAgKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqYWJzX3RpbWVvdXQpLAogICAgICAgICAgIChtdXRleCwgYWJzX3RpbWVvdXQpKTsKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorUFRIX0ZVTkNTKGludCwKKyAgICAgICAgICBwdGhyZWFkWnVtdXRleFp1cmVsdGltZWRsb2NrWnVucCwgcHRocmVhZF9tdXRleF90aW1lZGxvY2tfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX211dGV4X3QgKm11dGV4LCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpLAorICAgICAgICAgIChtdXRleCwgdGltZW91dCkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBwdGhyZWFkX211dGV4X3VubG9ja19pbnRlcmNlcHQocHRocmVhZF9tdXRleF90ICptdXRleCkKQEAgLTY5Nyw4ICs5NzcsMzQgQEAKICAgIHJldHVybiByZXQ7CiB9CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogT24gU29sYXJpcywgcHRocmVhZF9tdXRleF91bmxvY2sgaXMgYSB3ZWFrIGFsaWFzIHRvIG11dGV4X3VubG9jay4gKi8KK1BUSF9GVU5DUyhpbnQsIG11dGV4WnV1bmxvY2ssIHB0aHJlYWRfbXV0ZXhfdW5sb2NrX2ludGVyY2VwdCwKKyAgICAgICAgICAocHRocmVhZF9tdXRleF90ICptdXRleCksIChtdXRleCkpOworI2Vsc2UKIFBUSF9GVU5DUyhpbnQsIHB0aHJlYWRadW11dGV4WnV1bmxvY2ssIHB0aHJlYWRfbXV0ZXhfdW5sb2NrX2ludGVyY2VwdCwKICAgICAgICAgICAocHRocmVhZF9tdXRleF90ICptdXRleCksIChtdXRleCkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogSW50ZXJuYWwgdG8gbGliYy4gKi8KK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgbG11dGV4X3VubG9ja19pbnRlcmNlcHQobXV0ZXhfdCAqbXV0ZXgpCit7CisgICBPcmlnRm4gZm47CisgICBWQUxHUklORF9HRVRfT1JJR19GTihmbik7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKFZHX1VTRVJSRVFfX1BSRV9NVVRFWF9VTkxPQ0ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUkRfKG11dGV4X3R5cGUpKChwdGhyZWFkX211dGV4X3QgKikgbXV0ZXgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwKTsKKyAgIENBTExfRk5fdl9XKGZuLCBtdXRleCk7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKFZHX1VTRVJSRVFfX1BPU1RfTVVURVhfVU5MT0NLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRleCwgMCwgMCwgMCwgMCk7Cit9CisKK1BUSF9GVU5DUyh2b2lkLCBsbXV0ZXhadXVubG9jaywgbG11dGV4X3VubG9ja19pbnRlcmNlcHQsCisgICAgICAgICAgKG11dGV4X3QgKm11dGV4KSwgKG11dGV4KSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIAogc3RhdGljIF9fYWx3YXlzX2lubGluZQogaW50IHB0aHJlYWRfY29uZF9pbml0X2ludGVyY2VwdChwdGhyZWFkX2NvbmRfdCogY29uZCwKQEAgLTcxOSw2ICsxMDI1LDI2IEBACiAgICAgICAgICAgKHB0aHJlYWRfY29uZF90KiBjb25kLCBjb25zdCBwdGhyZWFkX2NvbmRhdHRyX3QqIGF0dHIpLAogICAgICAgICAgIChjb25kLCBhdHRyKSk7CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorc3RhdGljIF9fYWx3YXlzX2lubGluZQoraW50IGNvbmRfaW5pdF9pbnRlcmNlcHQoY29uZF90ICpjb25kLCBpbnQgdHlwZSwgdm9pZCAqYXJnKQoreworICAgaW50IHJldDsKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoVkdfVVNFUlJFUV9fUFJFX0NPTkRfSU5JVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZCwgMCwgMCwgMCwgMCk7CisgICBDQUxMX0ZOX1dfV1dXKHJldCwgZm4sIGNvbmQsIHR5cGUsIGFyZyk7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKFZHX1VTRVJSRVFfX1BPU1RfQ09ORF9JTklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kLCAwLCAwLCAwLCAwKTsKKyAgIHJldHVybiByZXQ7Cit9CisKK1BUSF9GVU5DUyhpbnQsIGNvbmRadWluaXQsIGNvbmRfaW5pdF9pbnRlcmNlcHQsCisgICAgICAgICAgKGNvbmRfdCAqY29uZCwgaW50IHR5cGUsIHZvaWQgKmFyZyksCisgICAgICAgICAgKGNvbmQsIHR5cGUsIGFyZykpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBwdGhyZWFkX2NvbmRfZGVzdHJveV9pbnRlcmNlcHQocHRocmVhZF9jb25kX3QqIGNvbmQpCiB7CkBAIC03MzMsOCArMTA1OSwxNCBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBPbiBTb2xhcmlzLCBwdGhyZWFkX2NvbmRfZGVzdHJveSBpcyBhIHdlYWsgYWxpYXMgdG8gY29uZF9kZXN0cm95LiAqLworUFRIX0ZVTkNTKGludCwgY29uZFp1ZGVzdHJveSwgcHRocmVhZF9jb25kX2Rlc3Ryb3lfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX2NvbmRfdCAqY29uZCksIChjb25kKSk7CisjZWxzZQogUFRIX0ZVTkNTKGludCwgcHRocmVhZFp1Y29uZFp1ZGVzdHJveSwgcHRocmVhZF9jb25kX2Rlc3Ryb3lfaW50ZXJjZXB0LAogICAgICAgICAgIChwdGhyZWFkX2NvbmRfdCogY29uZCksIChjb25kKSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIAogc3RhdGljIF9fYWx3YXlzX2lubGluZQogaW50IHB0aHJlYWRfY29uZF93YWl0X2ludGVyY2VwdChwdGhyZWFkX2NvbmRfdCAqY29uZCwgcHRocmVhZF9tdXRleF90ICptdXRleCkKQEAgLTc1Myw2ICsxMDg1LDExIEBACiBQVEhfRlVOQ1MoaW50LCBwdGhyZWFkWnVjb25kWnV3YWl0LCBwdGhyZWFkX2NvbmRfd2FpdF9pbnRlcmNlcHQsCiAgICAgICAgICAgKHB0aHJlYWRfY29uZF90ICpjb25kLCBwdGhyZWFkX211dGV4X3QgKm11dGV4KSwKICAgICAgICAgICAoY29uZCwgbXV0ZXgpKTsKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorUFRIX0ZVTkNTKGludCwgY29uZFp1d2FpdCwgcHRocmVhZF9jb25kX3dhaXRfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX2NvbmRfdCAqY29uZCwgcHRocmVhZF9tdXRleF90ICptdXRleCksCisgICAgICAgICAgKGNvbmQsIG11dGV4KSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIAogc3RhdGljIF9fYWx3YXlzX2lubGluZQogaW50IHB0aHJlYWRfY29uZF90aW1lZHdhaXRfaW50ZXJjZXB0KHB0aHJlYWRfY29uZF90ICpjb25kLApAQCAtNzc0LDYgKzExMTEsMTYgQEAKICAgICAgICAgICAocHRocmVhZF9jb25kX3QgKmNvbmQsIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCiAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyogYWJzdGltZSksCiAgICAgICAgICAgKGNvbmQsIG11dGV4LCBhYnN0aW1lKSk7CisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKK1BUSF9GVU5DUyhpbnQsIGNvbmRadXRpbWVkd2FpdCwgcHRocmVhZF9jb25kX3RpbWVkd2FpdF9pbnRlcmNlcHQsCisgICAgICAgICAgKHB0aHJlYWRfY29uZF90ICpjb25kLCBwdGhyZWFkX211dGV4X3QgKm11dGV4LAorICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpLAorICAgICAgICAgIChjb25kLCBtdXRleCwgdGltZW91dCkpOworUFRIX0ZVTkNTKGludCwgY29uZFp1cmVsdGltZWR3YWl0LCBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X2ludGVyY2VwdCwKKyAgICAgICAgICAocHRocmVhZF9jb25kX3QgKmNvbmQsIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCisgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCksCisgICAgICAgICAgKGNvbmQsIG11dGV4LCB0aW1lb3V0KSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIAogLy8gTk9URTogYmUgY2FyZWZ1bCB0byBpbnRlcmNlcHQgb25seSBwdGhyZWFkX2NvbmRfc2lnbmFsKCkgYW5kIG5vdCBEYXJ3aW4ncwogLy8gcHRocmVhZF9jb25kX3NpZ25hbF90aHJlYWRfbnAoKS4gVGhlIGZvcm1lciBhY2NlcHRzIG9uZSBhcmd1bWVudDsgdGhlIGxhdHRlcgpAQCAtNzk1LDggKzExNDIsMTQgQEAKICAgIHJldHVybiByZXQ7CiB9CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogT24gU29sYXJpcywgcHRocmVhZF9jb25kX3NpZ25hbCBpcyBhIHdlYWsgYWxpYXMgdG8gY29uZF9zaWduYWwuICovCitQVEhfRlVOQ1MoaW50LCBjb25kWnVzaWduYWwsIHB0aHJlYWRfY29uZF9zaWduYWxfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX2NvbmRfdCAqY29uZCksIChjb25kKSk7CisjZWxzZQogUFRIX0ZVTkNTKGludCwgcHRocmVhZFp1Y29uZFp1c2lnbmFsLCBwdGhyZWFkX2NvbmRfc2lnbmFsX2ludGVyY2VwdCwKICAgICAgICAgICAocHRocmVhZF9jb25kX3QqIGNvbmQpLCAoY29uZCkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0X2ludGVyY2VwdChwdGhyZWFkX2NvbmRfdCogY29uZCkKQEAgLTgxMiw4ICsxMTY1LDE0IEBACiAgICByZXR1cm4gcmV0OwogfQogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIE9uIFNvbGFyaXMsIHB0aHJlYWRfY29uZF9icm9hZGNhc3QgaXMgYSB3ZWFrIGFsaWFzIHRvIGNvbmRfYnJvYWRjYXN0LiAqLworUFRIX0ZVTkNTKGludCwgY29uZFp1YnJvYWRjYXN0LCBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0X2ludGVyY2VwdCwKKyAgICAgICAgICAocHRocmVhZF9jb25kX3QgKmNvbmQpLCAoY29uZCkpOworI2Vsc2UKIFBUSF9GVU5DUyhpbnQsIHB0aHJlYWRadWNvbmRadWJyb2FkY2FzdCwgcHRocmVhZF9jb25kX2Jyb2FkY2FzdF9pbnRlcmNlcHQsCiAgICAgICAgICAgKHB0aHJlYWRfY29uZF90KiBjb25kKSwgKGNvbmQpKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogCiAjaWYgZGVmaW5lZChIQVZFX1BUSFJFQURfU1BJTl9MT0NLKSBcCiAgICAgJiYgIWRlZmluZWQoRElTQUJMRV9QVEhSRUFEX1NQSU5MT0NLX0lOVEVSQ0VQVCkKQEAgLTk4MCw2ICsxMzM5LDI3IEBACiBQVEhfRlVOQ1MoaW50LCBzZW1adWluaXQsIHNlbV9pbml0X2ludGVyY2VwdCwKICAgICAgICAgICAoc2VtX3QgKnNlbSwgaW50IHBzaGFyZWQsIHVuc2lnbmVkIGludCB2YWx1ZSksIChzZW0sIHBzaGFyZWQsIHZhbHVlKSk7CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorc3RhdGljIF9fYWx3YXlzX2lubGluZQoraW50IHNlbWFfaW5pdF9pbnRlcmNlcHQoc2VtYV90ICpzZW0sIHVuc2lnbmVkIGludCB2YWx1ZSwgaW50IHR5cGUsIHZvaWQgKmFyZykKK3sKKyAgIGludCAgIHJldDsKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoVkdfVVNFUlJFUV9fUFJFX1NFTV9JTklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW0sIHR5cGUgPT0gVVNZTkNfUFJPQ0VTUyA/IDEgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgMCwgMCk7CisgICBDQUxMX0ZOX1dfV1dXVyhyZXQsIGZuLCBzZW0sIHZhbHVlLCB0eXBlLCBhcmcpOworICAgVkFMR1JJTkRfRE9fQ0xJRU5UX1JFUVVFU1RfU1RNVChWR19VU0VSUkVRX19QT1NUX1NFTV9JTklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW0sIDAsIDAsIDAsIDApOworICAgcmV0dXJuIHJldDsKK30KKworUFRIX0ZVTkNTKGludCwgc2VtYVp1aW5pdCwgc2VtYV9pbml0X2ludGVyY2VwdCwKKyAgICAgICAgICAoc2VtYV90ICpzZW0sIHVuc2lnbmVkIGludCB2YWx1ZSwgaW50IHR5cGUsIHZvaWQgKmFyZyksCisgICAgICAgICAgKHNlbSwgdmFsdWUsIHR5cGUsIGFyZykpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBzZW1fZGVzdHJveV9pbnRlcmNlcHQoc2VtX3QgKnNlbSkKIHsKQEAgLTk5NSw2ICsxMzc1LDkgQEAKIH0KIAogUFRIX0ZVTkNTKGludCwgc2VtWnVkZXN0cm95LCBzZW1fZGVzdHJveV9pbnRlcmNlcHQsIChzZW1fdCAqc2VtKSwgKHNlbSkpOworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitQVEhfRlVOQ1MoaW50LCBzZW1hWnVkZXN0cm95LCBzZW1fZGVzdHJveV9pbnRlcmNlcHQsIChzZW1fdCAqc2VtKSwgKHNlbSkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIHNlbV90KiBzZW1fb3Blbl9pbnRlcmNlcHQoY29uc3QgY2hhciAqbmFtZSwgaW50IG9mbGFnLCBtb2RlX3QgbW9kZSwKQEAgLTEwNDUsNiArMTQyOCw5IEBACiB9CiAKIFBUSF9GVU5DUyhpbnQsIHNlbVp1d2FpdCwgc2VtX3dhaXRfaW50ZXJjZXB0LCAoc2VtX3QgKnNlbSksIChzZW0pKTsKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorUFRIX0ZVTkNTKGludCwgc2VtYVp1d2FpdCwgc2VtX3dhaXRfaW50ZXJjZXB0LCAoc2VtX3QgKnNlbSksIChzZW0pKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIGludCBzZW1fdHJ5d2FpdF9pbnRlcmNlcHQoc2VtX3QgKnNlbSkKIHsKQEAgLTEwNjAsNiArMTQ0Niw5IEBACiB9CiAKIFBUSF9GVU5DUyhpbnQsIHNlbVp1dHJ5d2FpdCwgc2VtX3RyeXdhaXRfaW50ZXJjZXB0LCAoc2VtX3QgKnNlbSksIChzZW0pKTsKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorUFRIX0ZVTkNTKGludCwgc2VtYVp1dHJ5d2FpdCwgc2VtX3RyeXdhaXRfaW50ZXJjZXB0LCAoc2VtX3QgKnNlbSksIChzZW0pKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lCiBpbnQgc2VtX3RpbWVkd2FpdF9pbnRlcmNlcHQoc2VtX3QgKnNlbSwgY29uc3Qgc3RydWN0IHRpbWVzcGVjICphYnNfdGltZW91dCkKQEAgLTEwNzgsNiArMTQ2NywxNCBAQAogUFRIX0ZVTkNTKGludCwgc2VtWnV0aW1lZHdhaXQsIHNlbV90aW1lZHdhaXRfaW50ZXJjZXB0LAogICAgICAgICAgIChzZW1fdCAqc2VtLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKmFic190aW1lb3V0KSwKICAgICAgICAgICAoc2VtLCBhYnNfdGltZW91dCkpOworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitQVEhfRlVOQ1MoaW50LCBzZW1hWnV0aW1lZHdhaXQsIHNlbV90aW1lZHdhaXRfaW50ZXJjZXB0LAorICAgICAgICAgIChzZW1fdCAqc2VtLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpLAorICAgICAgICAgIChzZW0sIHRpbWVvdXQpKTsKK1BUSF9GVU5DUyhpbnQsIHNlbWFadXJlbHRpbWVkd2FpdCwgc2VtX3RpbWVkd2FpdF9pbnRlcmNlcHQsCisgICAgICAgICAgKHNlbV90ICpzZW0sIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCksCisgICAgICAgICAgKHNlbSwgdGltZW91dCkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgaW50IHNlbV9wb3N0X2ludGVyY2VwdChzZW1fdCAqc2VtKQogewpAQCAtMTA5Myw2ICsxNDkwLDkgQEAKIH0KIAogUFRIX0ZVTkNTKGludCwgc2VtWnVwb3N0LCBzZW1fcG9zdF9pbnRlcmNlcHQsIChzZW1fdCAqc2VtKSwgKHNlbSkpOworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitQVEhfRlVOQ1MoaW50LCBzZW1hWnVwb3N0LCBzZW1fcG9zdF9pbnRlcmNlcHQsIChzZW1fdCAqc2VtKSwgKHNlbSkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIC8qIEFuZHJvaWQncyBwdGhyZWFkLmggZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgcndsb2NrcywgaGVuY2UgdGhlc2UKICAgIGZ1bmN0aW9ucyBoYXZlIHRvIGJlIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQuICovCkBAIC0xMTE4LDYgKzE1MTgsMjYgQEAKICAgICAgICAgICAocHRocmVhZF9yd2xvY2tfdCogcndsb2NrLCBjb25zdCBwdGhyZWFkX3J3bG9ja2F0dHJfdCogYXR0ciksCiAgICAgICAgICAgKHJ3bG9jaywgYXR0cikpOwogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK2ludCByd2xvY2tfaW5pdF9pbnRlcmNlcHQocndsb2NrX3QgKnJ3bG9jaywgaW50IHR5cGUsIHZvaWQgKmFyZykKK3sKKyAgIGludCAgIHJldDsKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoVkdfVVNFUlJFUV9fUFJFX1JXTE9DS19JTklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByd2xvY2ssIDAsIDAsIDAsIDApOworICAgQ0FMTF9GTl9XX1dXVyhyZXQsIGZuLCByd2xvY2ssIHR5cGUsIGFyZyk7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKFZHX1VTRVJSRVFfX1BPU1RfUldMT0NLX0lOSVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ3bG9jaywgMCwgMCwgMCwgMCk7CisgICByZXR1cm4gcmV0OworfQorCitQVEhfRlVOQ1MoaW50LCByd2xvY2tadWluaXQsIHJ3bG9ja19pbml0X2ludGVyY2VwdCwKKyAgICAgICAgICAocndsb2NrX3QgKnJ3bG9jaywgaW50IHR5cGUsIHZvaWQgKmFyZyksCisgICAgICAgICAgKHJ3bG9jaywgdHlwZSwgYXJnKSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKwogc3RhdGljIF9fYWx3YXlzX2lubGluZQogaW50IHB0aHJlYWRfcndsb2NrX2Rlc3Ryb3lfaW50ZXJjZXB0KHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaykKIHsKQEAgLTExMzIsOSArMTU1MiwxNiBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBPbiBTb2xhcmlzLCBwdGhyZWFkX3J3bG9ja19kZXN0cm95IGlzIGEgd2VhayBhbGlhcyB0byByd2xvY2tfZGVzdHJveS4gKi8KK1BUSF9GVU5DUyhpbnQsCisgICAgICAgICAgcndsb2NrWnVkZXN0cm95LCBwdGhyZWFkX3J3bG9ja19kZXN0cm95X2ludGVyY2VwdCwKKyAgICAgICAgICAocHRocmVhZF9yd2xvY2tfdCAqcndsb2NrKSwgKHJ3bG9jaykpOworI2Vsc2UKIFBUSF9GVU5DUyhpbnQsCiAgICAgICAgICAgcHRocmVhZFp1cndsb2NrWnVkZXN0cm95LCBwdGhyZWFkX3J3bG9ja19kZXN0cm95X2ludGVyY2VwdCwKICAgICAgICAgICAocHRocmVhZF9yd2xvY2tfdCogcndsb2NrKSwgKHJ3bG9jaykpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBwdGhyZWFkX3J3bG9ja19yZGxvY2tfaW50ZXJjZXB0KHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaykKQEAgLTExNTAsOSArMTU3NywzNCBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBPbiBTb2xhcmlzLCBwdGhyZWFkX3J3bG9ja19yZGxvY2sgaXMgYSB3ZWFrIGFsaWFzIHRvIHJ3X3JkbG9jay4gKi8KK1BUSF9GVU5DUyhpbnQsCisgICAgICAgICAgcndadXJkbG9jaywgcHRocmVhZF9yd2xvY2tfcmRsb2NrX2ludGVyY2VwdCwKKyAgICAgICAgICAocHRocmVhZF9yd2xvY2tfdCAqcndsb2NrKSwgKHJ3bG9jaykpOworI2Vsc2UKIFBUSF9GVU5DUyhpbnQsCiAgICAgICAgICAgcHRocmVhZFp1cndsb2NrWnVyZGxvY2ssIHB0aHJlYWRfcndsb2NrX3JkbG9ja19pbnRlcmNlcHQsCiAgICAgICAgICAgKHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jayksIChyd2xvY2spKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIEludGVybmFsIHRvIGxpYmMuICovCitzdGF0aWMgX19hbHdheXNfaW5saW5lCit2b2lkIGxyd19yZGxvY2tfaW50ZXJjZXB0KHJ3bG9ja190ICpyd2xvY2spCit7CisgICBPcmlnRm4gZm47CisgICBWQUxHUklORF9HRVRfT1JJR19GTihmbik7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKFZHX1VTRVJSRVFfX1BSRV9SV0xPQ0tfUkRMT0NLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByd2xvY2ssIDAsIDAsIDAsIDApOworICAgQ0FMTF9GTl92X1coZm4sIHJ3bG9jayk7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKFZHX1VTRVJSRVFfX1BPU1RfUldMT0NLX1JETE9DSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcndsb2NrLCBUcnVlIC8qIHRvb2tfbG9jayAqLywgMCwgMCwgMCk7Cit9CisKK1BUSF9GVU5DUyh2b2lkLCBscndadXJkbG9jaywgbHJ3X3JkbG9ja19pbnRlcmNlcHQsCisgICAgICAgICAgKHJ3bG9ja190ICpyd2xvY2spLCAocndsb2NrKSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIAogc3RhdGljIF9fYWx3YXlzX2lubGluZQogaW50IHB0aHJlYWRfcndsb2NrX3dybG9ja19pbnRlcmNlcHQocHRocmVhZF9yd2xvY2tfdCogcndsb2NrKQpAQCAtMTE2OCw5ICsxNjIwLDM0IEBACiAgICByZXR1cm4gcmV0OwogfQogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIE9uIFNvbGFyaXMsIHB0aHJlYWRfcndsb2NrX3dybG9jayBpcyBhIHdlYWsgYWxpYXMgdG8gcndfd3Jsb2NrLiAqLworUFRIX0ZVTkNTKGludCwKKyAgICAgICAgICByd1p1d3Jsb2NrLCBwdGhyZWFkX3J3bG9ja193cmxvY2tfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX3J3bG9ja190ICpyd2xvY2spLCAocndsb2NrKSk7CisjZWxzZQogUFRIX0ZVTkNTKGludCwKICAgICAgICAgICBwdGhyZWFkWnVyd2xvY2tadXdybG9jaywgcHRocmVhZF9yd2xvY2tfd3Jsb2NrX2ludGVyY2VwdCwKICAgICAgICAgICAocHRocmVhZF9yd2xvY2tfdCogcndsb2NrKSwgKHJ3bG9jaykpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogSW50ZXJuYWwgdG8gbGliYy4gKi8KK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgbHJ3X3dybG9ja19pbnRlcmNlcHQocndsb2NrX3QgKnJ3bG9jaykKK3sKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoVkdfVVNFUlJFUV9fUFJFX1JXTE9DS19XUkxPQ0ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ3bG9jaywgMCwgMCwgMCwgMCk7CisgICBDQUxMX0ZOX3ZfVyhmbiwgcndsb2NrKTsKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoVkdfVVNFUlJFUV9fUE9TVF9SV0xPQ0tfV1JMT0NLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByd2xvY2ssIFRydWUgLyogdG9va19sb2NrICovLCAwLCAwLCAwKTsKK30KKworUFRIX0ZVTkNTKHZvaWQsIGxyd1p1d3Jsb2NrLCBscndfd3Jsb2NrX2ludGVyY2VwdCwKKyAgICAgICAgICAocndsb2NrX3QgKnJ3bG9jayksIChyd2xvY2spKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lCiBpbnQgcHRocmVhZF9yd2xvY2tfdGltZWRyZGxvY2tfaW50ZXJjZXB0KHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaywKQEAgLTExOTEsNiArMTY2OCwxMiBAQAogICAgICAgICAgIHB0aHJlYWRadXJ3bG9ja1p1dGltZWRyZGxvY2ssIHB0aHJlYWRfcndsb2NrX3RpbWVkcmRsb2NrX2ludGVyY2VwdCwKICAgICAgICAgICAocHRocmVhZF9yd2xvY2tfdCogcndsb2NrLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpLAogICAgICAgICAgIChyd2xvY2ssIHRpbWVvdXQpKTsKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorUFRIX0ZVTkNTKGludCwgcHRocmVhZFp1cndsb2NrWnVyZWx0aW1lZHJkbG9ja1p1bnAsCisgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdGltZWRyZGxvY2tfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX3J3bG9ja190ICpyd2xvY2ssIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCksCisgICAgICAgICAgKHJ3bG9jaywgdGltZW91dCkpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBwdGhyZWFkX3J3bG9ja190aW1lZHdybG9ja19pbnRlcmNlcHQocHRocmVhZF9yd2xvY2tfdCogcndsb2NrLApAQCAtMTIxMSw2ICsxNjk0LDEyIEBACiAgICAgICAgICAgcHRocmVhZFp1cndsb2NrWnV0aW1lZHdybG9jaywgcHRocmVhZF9yd2xvY2tfdGltZWR3cmxvY2tfaW50ZXJjZXB0LAogICAgICAgICAgIChwdGhyZWFkX3J3bG9ja190KiByd2xvY2ssIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCksCiAgICAgICAgICAgKHJ3bG9jaywgdGltZW91dCkpOworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitQVEhfRlVOQ1MoaW50LCBwdGhyZWFkWnVyd2xvY2tadXJlbHRpbWVkd3Jsb2NrWnVucCwKKyAgICAgICAgICBwdGhyZWFkX3J3bG9ja190aW1lZHdybG9ja19pbnRlcmNlcHQsCisgICAgICAgICAgKHB0aHJlYWRfcndsb2NrX3QgKnJ3bG9jaywgY29uc3Qgc3RydWN0IHRpbWVzcGVjICp0aW1lb3V0KSwKKyAgICAgICAgICAocndsb2NrLCB0aW1lb3V0KSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIAogc3RhdGljIF9fYWx3YXlzX2lubGluZQogaW50IHB0aHJlYWRfcndsb2NrX3RyeXJkbG9ja19pbnRlcmNlcHQocHRocmVhZF9yd2xvY2tfdCogcndsb2NrKQpAQCAtMTIyNiw5ICsxNzE1LDE2IEBACiAgICByZXR1cm4gcmV0OwogfQogCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIE9uIFNvbGFyaXMsIHB0aHJlYWRfcndsb2NrX3RyeXJkbG9jayBpcyBhIHdlYWsgYWxpYXMgdG8gcndfdHJ5cmRsb2NrLiAqLworUFRIX0ZVTkNTKGludCwKKyAgICAgICAgICByd1p1dHJ5cmRsb2NrLCBwdGhyZWFkX3J3bG9ja190cnlyZGxvY2tfaW50ZXJjZXB0LAorICAgICAgICAgIChwdGhyZWFkX3J3bG9ja190ICpyd2xvY2spLCAocndsb2NrKSk7CisjZWxzZQogUFRIX0ZVTkNTKGludCwKICAgICAgICAgICBwdGhyZWFkWnVyd2xvY2tadXRyeXJkbG9jaywgcHRocmVhZF9yd2xvY2tfdHJ5cmRsb2NrX2ludGVyY2VwdCwKICAgICAgICAgICAocHRocmVhZF9yd2xvY2tfdCogcndsb2NrKSwgKHJ3bG9jaykpOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUKIGludCBwdGhyZWFkX3J3bG9ja190cnl3cmxvY2tfaW50ZXJjZXB0KHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaykKQEAgLTEyNDQsOSArMTc0MCwxNiBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBPbiBTb2xhcmlzLCBwdGhyZWFkX3J3bG9ja190cnl3cmxvY2sgaXMgYSB3ZWFrIGFsaWFzIHRvIHJ3X3RyeXdybG9jay4gKi8KK1BUSF9GVU5DUyhpbnQsCisgICAgICAgICAgcndadXRyeXdybG9jaywgcHRocmVhZF9yd2xvY2tfdHJ5d3Jsb2NrX2ludGVyY2VwdCwKKyAgICAgICAgICAocHRocmVhZF9yd2xvY2tfdCAqcndsb2NrKSwgKHJ3bG9jaykpOworI2Vsc2UKIFBUSF9GVU5DUyhpbnQsCiAgICAgICAgICAgcHRocmVhZFp1cndsb2NrWnV0cnl3cmxvY2ssIHB0aHJlYWRfcndsb2NrX3RyeXdybG9ja19pbnRlcmNlcHQsCiAgICAgICAgICAgKHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jayksIChyd2xvY2spKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogCiBzdGF0aWMgX19hbHdheXNfaW5saW5lCiBpbnQgcHRocmVhZF9yd2xvY2tfdW5sb2NrX2ludGVyY2VwdChwdGhyZWFkX3J3bG9ja190KiByd2xvY2spCkBAIC0xMjYyLDggKzE3NjUsMTUgQEAKICAgIHJldHVybiByZXQ7CiB9CiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogT24gU29sYXJpcywgcHRocmVhZF9yd2xvY2tfdW5sb2NrIGlzIGEgd2VhayBhbGlhcyB0byByd191bmxvY2suICovCitQVEhfRlVOQ1MoaW50LAorICAgICAgICAgIHJ3WnV1bmxvY2ssIHB0aHJlYWRfcndsb2NrX3VubG9ja19pbnRlcmNlcHQsCisgICAgICAgICAgKHB0aHJlYWRfcndsb2NrX3QgKnJ3bG9jayksIChyd2xvY2spKTsKKyNlbHNlCiBQVEhfRlVOQ1MoaW50LAogICAgICAgICAgIHB0aHJlYWRadXJ3bG9ja1p1dW5sb2NrLCBwdGhyZWFkX3J3bG9ja191bmxvY2tfaW50ZXJjZXB0LAogICAgICAgICAgIChwdGhyZWFkX3J3bG9ja190KiByd2xvY2spLCAocndsb2NrKSk7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIAogI2VuZGlmIC8qIGRlZmluZWQoSEFWRV9QVEhSRUFEX1JXTE9DS19UKSAqLwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF9xdGNvcmVfaW50ZXJjZXB0cy5jIGIvZHJkL2RyZF9xdGNvcmVfaW50ZXJjZXB0cy5jCmluZGV4IDg1YzVhNTMuLjlhNmI4ZTkgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfcXRjb3JlX2ludGVyY2VwdHMuYworKysgYi9kcmQvZHJkX3F0Y29yZV9pbnRlcmNlcHRzLmMKQEAgLTUsNyArNSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfcndsb2NrLmMgYi9kcmQvZHJkX3J3bG9jay5jCmluZGV4IGRiNTg5YTAuLjMwYzBmMjAgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfcndsb2NrLmMKKysrIGIvZHJkL2RyZF9yd2xvY2suYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjQ0LDcgKzI0NCw3IEBACiAgICB0bF9hc3NlcnQocCk7CiAKICAgIGlmIChEUkRfKHNfdHJhY2Vfcndsb2NrKSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSByd2xvY2tfZGVzdHJveSAgICAgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIHJ3bG9ja19kZXN0cm95ICAgICAweCVseCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLCBwLT5hMSk7CiAKICAgIGlmIChEUkRfKHJ3bG9ja19pc19sb2NrZWQpKHApKQpAQCAtMzEzLDcgKzMxMyw3IEBACiAgICBzdHJ1Y3Qgcndsb2NrX2luZm8qIHA7CiAKICAgIGlmIChEUkRfKHNfdHJhY2Vfcndsb2NrKSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSByd2xvY2tfaW5pdCAgICAgICAgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIHJ3bG9ja19pbml0ICAgICAgICAweCVseCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLCByd2xvY2spOwogCiAgICBwID0gRFJEXyhyd2xvY2tfZ2V0KShyd2xvY2spOwpAQCAtMzc0LDcgKzM3NCw3IEBACiAgICBzdHJ1Y3Qgcndsb2NrX2luZm8qIHA7CiAKICAgIGlmIChEUkRfKHNfdHJhY2Vfcndsb2NrKSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBwcmVfcndsb2NrX3JkbG9jayAgMHglbHgiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIHByZV9yd2xvY2tfcmRsb2NrICAweCVseCIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLCByd2xvY2spOwogCiAgICBwID0gRFJEXyhyd2xvY2tfZ2V0X29yX2FsbG9jYXRlKShyd2xvY2ssIHJ3bG9ja190eXBlKTsKQEAgLTQwMyw3ICs0MDMsNyBAQAogICAgc3RydWN0IHJ3bG9ja190aHJlYWRfaW5mbyogcTsKIAogICAgaWYgKERSRF8oc190cmFjZV9yd2xvY2spKQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIHBvc3Rfcndsb2NrX3JkbG9jayAweCVseCIsIGRyZF90aWQsIHJ3bG9jayk7CisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gcG9zdF9yd2xvY2tfcmRsb2NrIDB4JWx4IiwgZHJkX3RpZCwgcndsb2NrKTsKIAogICAgcCA9IERSRF8ocndsb2NrX2dldCkocndsb2NrKTsKIApAQCAtNDM3LDcgKzQzNyw3IEBACiAgICBwID0gRFJEXyhyd2xvY2tfZ2V0KShyd2xvY2spOwogCiAgICBpZiAoRFJEXyhzX3RyYWNlX3J3bG9jaykpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gcHJlX3J3bG9ja193cmxvY2sgIDB4JWx4IiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBwcmVfcndsb2NrX3dybG9jayAgMHglbHgiLAogICAgICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9ydW5uaW5nX3RpZCkoKSwgcndsb2NrKTsKIAogICAgaWYgKHAgPT0gMCkKQEAgLTQ3MSw3ICs0NzEsNyBAQAogICAgcCA9IERSRF8ocndsb2NrX2dldCkocndsb2NrKTsKIAogICAgaWYgKERSRF8oc190cmFjZV9yd2xvY2spKQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIHBvc3Rfcndsb2NrX3dybG9jayAweCVseCIsIGRyZF90aWQsIHJ3bG9jayk7CisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gcG9zdF9yd2xvY2tfd3Jsb2NrIDB4JWx4IiwgZHJkX3RpZCwgcndsb2NrKTsKIAogICAgaWYgKCEgcCB8fCAhIHRvb2tfbG9jaykKICAgICAgIHJldHVybjsKQEAgLTUwNiw3ICs1MDYsNyBAQAogICAgc3RydWN0IHJ3bG9ja190aHJlYWRfaW5mbyogcTsKIAogICAgaWYgKERSRF8oc190cmFjZV9yd2xvY2spKQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIHJ3bG9ja191bmxvY2sgICAgICAweCVseCIsIGRyZF90aWQsIHJ3bG9jayk7CisgICAgICBEUkRfKHRyYWNlX21zZykoIlsldV0gcndsb2NrX3VubG9jayAgICAgIDB4JWx4IiwgZHJkX3RpZCwgcndsb2NrKTsKIAogICAgcCA9IERSRF8ocndsb2NrX2dldCkocndsb2NrKTsKICAgIGlmIChwID09IDApCmRpZmYgLS1naXQgYS9kcmQvZHJkX3J3bG9jay5oIGIvZHJkL2RyZF9yd2xvY2suaAppbmRleCBkYzEwZGEwLi44NzI4YzljIDEwMDY0NAotLS0gYS9kcmQvZHJkX3J3bG9jay5oCisrKyBiL2RyZC9kcmRfcndsb2NrLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfc2VnbWVudC5jIGIvZHJkL2RyZF9zZWdtZW50LmMKaW5kZXggYTYyNWY0Ny4uYTZjMGJiYyAxMDA2NDQKLS0tIGEvZHJkL2RyZF9zZWdtZW50LmMKKysrIGIvZHJkL2RyZF9zZWdtZW50LmMKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTk3LDcgKzk3LDcgQEAKICAgICAgIEhDaGFyKiB2YzsKIAogICAgICAgdmMgPSBEUkRfKHZjX2FwcmludCkoJnNnLT52Yyk7Ci0gICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJOZXcgc2VnbWVudCBmb3IgdGhyZWFkICVkIHdpdGggdmMgJXNcbiIsCisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJOZXcgc2VnbWVudCBmb3IgdGhyZWFkICV1IHdpdGggdmMgJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZCwgdmMpOwogICAgICAgVkdfKGZyZWUpKHZjKTsKICAgIH0KZGlmZiAtLWdpdCBhL2RyZC9kcmRfc2VnbWVudC5oIGIvZHJkL2RyZF9zZWdtZW50LmgKaW5kZXggMTIxMDEwYS4uZGUyNjVkYiAxMDA2NDQKLS0tIGEvZHJkL2RyZF9zZWdtZW50LmgKKysrIGIvZHJkL2RyZF9zZWdtZW50LmgKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfc2VtYXBob3JlLmMgYi9kcmQvZHJkX3NlbWFwaG9yZS5jCmluZGV4IDQwNjYyYjkuLmY1YmFkNmMgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfc2VtYXBob3JlLmMKKysrIGIvZHJkL2RyZF9zZW1hcGhvcmUuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtOTAsNyArOTAsNyBAQAogCiAvKioKICAqIEluaXRpYWxpemUgdGhlIG1lbW9yeSAncCcgcG9pbnRzIGF0IGFzIGEgc2VtYXBob3JlX2luZm8gc3RydWN0dXJlIGZvciB0aGUKLSAqIGNsaWVudCBzZW1hcGhvcmUgYXQgY2xpZW50IGFkZHJlcyAnc2VtYXBob3JlJy4KKyAqIGNsaWVudCBzZW1hcGhvcmUgYXQgY2xpZW50IGFkZHJlc3MgJ3NlbWFwaG9yZScuCiAgKi8KIHN0YXRpYwogdm9pZCBkcmRfc2VtYXBob3JlX2luaXRpYWxpemUoc3RydWN0IHNlbWFwaG9yZV9pbmZvKiBjb25zdCBwLApAQCAtMTc0LDcgKzE3NCw3IEBACiAgICBTZWdtZW50KiBzZzsKIAogICAgaWYgKHNfdHJhY2Vfc2VtYXBob3JlKQotICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJWRdIHNlbV9pbml0ICAgICAgMHglbHggdmFsdWUgJXUiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIHNlbV9pbml0ICAgICAgMHglbHggdmFsdWUgJXUiLAogICAgICAgICAgICAgICAgICAgICAgIERSRF8odGhyZWFkX2dldF9ydW5uaW5nX3RpZCkoKSwgc2VtYXBob3JlLCB2YWx1ZSk7CiAKICAgIHAgPSBzZW1hcGhvcmVfZ2V0KHNlbWFwaG9yZSk7CkBAIC0yMjIsNyArMjIyLDcgQEAKICAgIHAgPSBzZW1hcGhvcmVfZ2V0KHNlbWFwaG9yZSk7CiAKICAgIGlmIChzX3RyYWNlX3NlbWFwaG9yZSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBzZW1fZGVzdHJveSAgIDB4JWx4IHZhbHVlICV1IiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBzZW1fZGVzdHJveSAgIDB4JWx4IHZhbHVlICV1IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksIHNlbWFwaG9yZSwKICAgICAgICAgICAgICAgICAgICAgICBwID8gcC0+dmFsdWUgOiAwKTsKIApAQCAtMjUyLDEwICsyNTIsMTAgQEAKICAgIFNlZ21lbnQqIHNnOwogCiAgICBpZiAoc190cmFjZV9zZW1hcGhvcmUpCi0gICAgICBEUkRfKHRyYWNlX21zZykoIlslZF0gc2VtX29wZW4gICAgICAweCVseCBuYW1lICVzIgorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIHNlbV9vcGVuICAgICAgMHglbHggbmFtZSAlcyIKICAgICAgICAgICAgICAgICAgICAgICAiIG9mbGFnICUjbHggbW9kZSAlI2xvIHZhbHVlICV1IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksCi0gICAgICAgICAgICAgICAgICAgICAgc2VtYXBob3JlLCBuYW1lLCBvZmxhZywgbW9kZSwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgIHNlbWFwaG9yZSwgbmFtZSwgKFVXb3JkKW9mbGFnLCAoVVdvcmQpbW9kZSwgdmFsdWUpOwogCiAgICAvKiBSZXR1cm4gaWYgdGhlIHNlbV9vcGVuKCkgY2FsbCBmYWlsZWQuICovCiAgICBpZiAoISBzZW1hcGhvcmUpCkBAIC0yOTUsNyArMjk1LDcgQEAKICAgIHAgPSBzZW1hcGhvcmVfZ2V0KHNlbWFwaG9yZSk7CiAKICAgIGlmIChzX3RyYWNlX3NlbWFwaG9yZSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBzZW1fY2xvc2UgICAgIDB4JWx4IHZhbHVlICV1IiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBzZW1fY2xvc2UgICAgIDB4JWx4IHZhbHVlICV1IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksIHNlbWFwaG9yZSwKICAgICAgICAgICAgICAgICAgICAgICBwID8gcC0+dmFsdWUgOiAwKTsKIApAQCAtMzUwLDcgKzM1MCw3IEBACiAgICB0bF9hc3NlcnQod2FpdGVkID09IDAgfHwgd2FpdGVkID09IDEpOwogICAgcCA9IHNlbWFwaG9yZV9nZXQoc2VtYXBob3JlKTsKICAgIGlmIChzX3RyYWNlX3NlbWFwaG9yZSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBzZW1fd2FpdCAgICAgIDB4JWx4IHZhbHVlICV1IC0+ICV1JXMiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIHNlbV93YWl0ICAgICAgMHglbHggdmFsdWUgJXUgLT4gJXUlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyh0aHJlYWRfZ2V0X3J1bm5pbmdfdGlkKSgpLCBzZW1hcGhvcmUsCiAgICAgICAgICAgICAgICAgICAgICAgcCA/IHAtPnZhbHVlIDogMCwgcCA/IHAtPnZhbHVlIC0gd2FpdGVkIDogMCwKIAkJICAgICAgd2FpdGVkID8gIiIgOiAiIChkaWQgbm90IHdhaXQpIik7CkBAIC00MDksNyArNDA5LDcgQEAKICAgIHAtPnZhbHVlKys7CiAKICAgIGlmIChzX3RyYWNlX3NlbWFwaG9yZSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBzZW1fcG9zdCAgICAgIDB4JWx4IHZhbHVlICV1IC0+ICV1IiwKKyAgICAgIERSRF8odHJhY2VfbXNnKSgiWyV1XSBzZW1fcG9zdCAgICAgIDB4JWx4IHZhbHVlICV1IC0+ICV1IiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHRocmVhZF9nZXRfcnVubmluZ190aWQpKCksCiAgICAgICAgICAgICAgICAgICAgICAgc2VtYXBob3JlLCBwLT52YWx1ZSAtIDEsIHAtPnZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvZHJkL2RyZF9zZW1hcGhvcmUuaCBiL2RyZC9kcmRfc2VtYXBob3JlLmgKaW5kZXggMzE3MmNlYy4uYWE2YjZmMyAxMDA2NDQKLS0tIGEvZHJkL2RyZF9zZW1hcGhvcmUuaAorKysgYi9kcmQvZHJkX3NlbWFwaG9yZS5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9kcmQvZHJkX3N0cm1lbV9pbnRlcmNlcHRzLmMgYi9kcmQvZHJkX3N0cm1lbV9pbnRlcmNlcHRzLmMKaW5kZXggMTM5MTE3Yy4uYTUzODEzNCAxMDA2NDQKLS0tIGEvZHJkL2RyZF9zdHJtZW1faW50ZXJjZXB0cy5jCisrKyBiL2RyZC9kcmRfc3RybWVtX2ludGVyY2VwdHMuYwpAQCAtOSw3ICs5LDcgQEAKICAgZnJvbSBtZW1jaGVjL21jX3JlcGxhY2Vfc3RybWVtLmMsIHdoaWNoIGhhcyB0aGUgZm9sbG93aW5nIGNvcHlyaWdodAogICBub3RpY2U6CiAKLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgIGpzZXdhcmRAYWNtLm9yZwogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2RyZC9kcmRfc3VwcHJlc3Npb24uYyBiL2RyZC9kcmRfc3VwcHJlc3Npb24uYwppbmRleCA2ZDg4NDM0Li5jODc5MDc4IDEwMDY0NAotLS0gYS9kcmQvZHJkX3N1cHByZXNzaW9uLmMKKysrIGIvZHJkL2RyZF9zdXBwcmVzc2lvbi5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC02Myw3ICs2Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyKiBjb25zdCByZWFzb24pCiB7CiAgICBpZiAoc190cmFjZV9zdXBwcmVzc2lvbikKLSAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgInN0YXJ0IHN1cHByZXNzaW9uIG9mIDB4JWx4IHN6ICVsZCAoJXMpXG4iLAorICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAic3RhcnQgc3VwcHJlc3Npb24gb2YgMHglbHggc3ogJWx1ICglcylcbiIsCiAgICAgICAgICAgICAgICAgICAgYTEsIGEyIC0gYTEsIHJlYXNvbik7CiAKICAgIHRsX2Fzc2VydChhMSA8PSBhMik7CkBAIC03Myw3ICs3Myw3IEBACiB2b2lkIERSRF8oZmluaXNoX3N1cHByZXNzaW9uKShjb25zdCBBZGRyIGExLCBjb25zdCBBZGRyIGEyKQogewogICAgaWYgKHNfdHJhY2Vfc3VwcHJlc3Npb24pIHsKLSAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgImZpbmlzaCBzdXBwcmVzc2lvbiBvZiAweCVseCBzeiAlbGRcbiIsCisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJmaW5pc2ggc3VwcHJlc3Npb24gb2YgMHglbHggc3ogJWx1XG4iLAogICAgICAgICAgICAgICAgICAgIGExLCBhMiAtIGExKTsKICAgICAgIFZHXyhnZXRfYW5kX3BwX1N0YWNrVHJhY2UpKFZHXyhnZXRfcnVubmluZ190aWQpKCksIDEyKTsKICAgIH0KQEAgLTEyMiw3ICsxMjIsNyBAQAogICAgdGxfYXNzZXJ0KGExIDw9IGEyKTsKIAogICAgaWYgKHNfdHJhY2Vfc3VwcHJlc3Npb24pCi0gICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJzdGFydF90cmFjaW5nKDB4JWx4LCAlbGQpICVzXG4iLAorICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAic3RhcnRfdHJhY2luZygweCVseCwgJWx1KSAlc1xuIiwKICAgICAgICAgICAgICAgICAgICBhMSwgYTIgLSBhMSwgcGVyc2lzdGVudCA/ICJwZXJzaXN0ZW50IiA6ICJub24tcGVyc2lzdGVudCIpOwogCiAgICBEUkRfKGJtX2FjY2Vzc19yYW5nZV9sb2FkKShzX3RyYWNlZCwgYTEsIGEyKTsKQEAgLTE0MCw3ICsxNDAsNyBAQAogICAgdGxfYXNzZXJ0KGExIDw9IGEyKTsKIAogICAgaWYgKHNfdHJhY2Vfc3VwcHJlc3Npb24pCi0gICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJzdG9wX3RyYWNpbmcoMHglbHgsICVsZClcbiIsCisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJzdG9wX3RyYWNpbmcoMHglbHgsICVsdSlcbiIsCiAgICAgICAgICAgICAgICAgICAgYTEsIGEyIC0gYTEpOwogCiAgICBpZiAoRFJEXyhnX2FueV9hZGRyZXNzX3RyYWNlZCkpIHsKQEAgLTE2NSw3ICsxNjUsNyBAQAogICAgICAgZm9yIChiID0gYTE7IGIgPCBhMjsgYisrKSB7CiAgICAgICAgICBpZiAoRFJEXyhibV9oYXNfMSkoc19zdXBwcmVzc2VkLCBiLCBlU3RvcmUpKSB7CiAgICAgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgInN0b3BfdXNpbmdfbWVtKDB4JWx4LCAlbGQpIGZpbmlzaCBzdXBwcmVzc2lvbiBvZiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAic3RvcF91c2luZ19tZW0oMHglbHgsICVsdSkgZmluaXNoIHN1cHByZXNzaW9uIG9mIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgMHglbHhcbiIsIGExLCBhMiAtIGExLCBiKTsKICAgICAgICAgIH0KICAgICAgIH0KZGlmZiAtLWdpdCBhL2RyZC9kcmRfdGhyZWFkLmMgYi9kcmQvZHJkX3RocmVhZC5jCmluZGV4IDI0N2RkOTEuLjliYjMyMDAgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfdGhyZWFkLmMKKysrIGIvZHJkL2RyZF90aHJlYWQuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGRyZCwgYSB0aHJlYWQgZXJyb3IgZGV0ZWN0b3IuCiAKLSAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgorICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNSBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtNzgsNiArNzgsMTEgQEAKIHN0YXRpYyB1bnNpZ25lZCBzX2pvaW5fbGlzdF92b2wgPSAxMDsKIHN0YXRpYyB1bnNpZ25lZCBzX2RlbGV0aW9uX2hlYWQ7CiBzdGF0aWMgdW5zaWduZWQgc19kZWxldGlvbl90YWlsOworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitCb29sIERSRF8oaWdub3JlX3RocmVhZF9jcmVhdGlvbikgPSBUcnVlOworI2Vsc2UKK0Jvb2wgRFJEXyhpZ25vcmVfdGhyZWFkX2NyZWF0aW9uKSA9IEZhbHNlOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIAogLyogRnVuY3Rpb24gZGVmaW5pdGlvbnMuICovCkBAIC0yMDMsNiArMjA4LDExIEBACiAgICAgICAgICBEUkRfKGdfdGhyZWFkaW5mbylbaV0ucHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCA9IDA7CiAgICAgICAgICBEUkRfKGdfdGhyZWFkaW5mbylbaV0uc3luY2hyX25lc3RpbmcgPSAwOwogICAgICAgICAgRFJEXyhnX3RocmVhZGluZm8pW2ldLmRlbGV0aW9uX3NlcSA9IHNfZGVsZXRpb25fdGFpbCAtIDE7CisgICAgICAgICBEUkRfKGdfdGhyZWFkaW5mbylbaV0uY3JlYXRvcl90aHJlYWQgPSBEUkRfSU5WQUxJRF9USFJFQURJRDsKKyNpZiBkZWZpbmVkIChWR09fc29sYXJpcykKKyAgICAgICAgIERSRF8oZ190aHJlYWRpbmZvKVtpXS5iaW5kX2d1YXJkX2ZsYWcgPSAwOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKICAgICAgICAgIHRsX2Fzc2VydChEUkRfKGdfdGhyZWFkaW5mbylbaV0uc2dfZmlyc3QgPT0gTlVMTCk7CiAgICAgICAgICB0bF9hc3NlcnQoRFJEXyhnX3RocmVhZGluZm8pW2ldLnNnX2xhc3QgPT0gTlVMTCk7CiAKQEAgLTMwMiw2ICszMTIsMTYgQEAKIAogICAgdGxfYXNzZXJ0KERSRF8oZ190aHJlYWRpbmZvKVtjcmVhdGVkXS5zZ19maXJzdCA9PSBOVUxMKTsKICAgIHRsX2Fzc2VydChEUkRfKGdfdGhyZWFkaW5mbylbY3JlYXRlZF0uc2dfbGFzdCA9PSBOVUxMKTsKKworICAgaWYgKGNyZWF0b3IgIT0gRFJEX0lOVkFMSURfVEhSRUFESUQpIHsKKyAgICAgIGlmIChEUkRfKGlnbm9yZV90aHJlYWRfY3JlYXRpb24pKSB7CisgICAgICAgICB0bF9hc3NlcnQoRFJEXyh0aHJlYWRfZ2V0X3N5bmNocl9uZXN0aW5nX2NvdW50KShjcmVhdGVkKSA9PSAwKTsKKyAgICAgICAgIERSRF8odGhyZWFkX2VudGVyX3N5bmNocikoY3JlYXRlZCk7CisgICAgICAgICAvKiBDb3VudGVycGFydCBpbiBEUkRfKHRocmVhZF9zZXRfcHRocmVhZGlkKSgpLiAqLworICAgICAgfQorICAgfQorICAgRFJEXyhnX3RocmVhZGluZm8pW2NyZWF0ZWRdLmNyZWF0b3JfdGhyZWFkID0gY3JlYXRvcjsKKwogICAgLyogQ3JlYXRlIGFuIGluaXRpYWwgc2VnbWVudCBmb3IgdGhlIG5ld2x5IGNyZWF0ZWQgdGhyZWFkLiAqLwogICAgdGhyZWFkX2FwcGVuZF9zZWdtZW50KGNyZWF0ZWQsIERSRF8oc2dfbmV3KShjcmVhdG9yLCBjcmVhdGVkKSk7CiAKQEAgLTM4OCw3ICs0MDgsNyBAQAogICAgICAgbXNnID0gVkdfKG1hbGxvYykoImRyZC5tYWluLmRwdGouMSIsIG1zZ19zaXplKTsKIAogICAgICAgVkdfKHNucHJpbnRmKShtc2csIG1zZ19zaXplLAotICAgICAgICAgICAgICAgICAgICAiZHJkX3Bvc3RfdGhyZWFkX2pvaW4gam9pbmVyID0gJWQsIGpvaW5lZSA9ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgImRyZF9wb3N0X3RocmVhZF9qb2luIGpvaW5lciA9ICV1LCBqb2luZWUgPSAldSIsCiAgICAgICAgICAgICAgICAgICAgIGRyZF9qb2luZXIsIGRyZF9qb2luZWUpOwogICAgICAgaWYgKGpvaW5lcikKICAgICAgIHsKQEAgLTU3NSw3ICs1OTUsNyBAQAogICAgdGxfYXNzZXJ0KERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLnB0X3RocmVhZGlkICE9IElOVkFMSURfUE9TSVhfVEhSRUFESUQpOwogCiAgICBpZiAoRFJEXyh0aHJlYWRfZ2V0X3RyYWNlX2Zvcmtfam9pbikoKSkKLSAgICAgIERSRF8odHJhY2VfbXNnKSgiWyVkXSBkcmRfdGhyZWFkX3ByZV9jYW5jZWwgJWQiLAorICAgICAgRFJEXyh0cmFjZV9tc2cpKCJbJXVdIGRyZF90aHJlYWRfcHJlX2NhbmNlbCAldSIsCiAgICAgICAgICAgICAgICAgICAgICAgRFJEXyhnX2RyZF9ydW5uaW5nX3RpZCksIHRpZCk7CiB9CiAKQEAgLTU5NSw2ICs2MTUsMTMgQEAKICAgIHRsX2Fzc2VydChwdGlkICE9IElOVkFMSURfUE9TSVhfVEhSRUFESUQpOwogICAgRFJEXyhnX3RocmVhZGluZm8pW3RpZF0ucG9zaXhfdGhyZWFkX2V4aXN0cyA9IFRydWU7CiAgICBEUkRfKGdfdGhyZWFkaW5mbylbdGlkXS5wdF90aHJlYWRpZCAgICAgICAgID0gcHRpZDsKKworICAgaWYgKERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLmNyZWF0b3JfdGhyZWFkICE9IERSRF9JTlZBTElEX1RIUkVBRElEKSB7CisgICAgICBpZiAoRFJEXyhpZ25vcmVfdGhyZWFkX2NyZWF0aW9uKSkgeworICAgICAgICAgRFJEXyh0aHJlYWRfbGVhdmVfc3luY2hyKSh0aWQpOworICAgICAgICAgdGxfYXNzZXJ0KERSRF8odGhyZWFkX2dldF9zeW5jaHJfbmVzdGluZ19jb3VudCkodGlkKSA9PSAwKTsKKyAgICAgIH0KKyAgIH0KIH0KIAogLyoqIFJldHVybnMgdHJ1ZSBmb3Igam9pbmFibGUgdGhyZWFkcyBhbmQgZmFsc2UgZm9yIGRldGFjaGVkIHRocmVhZHMuICovCkBAIC02MzEsNiArNjU4LDExIEBACiAgICB0bF9hc3NlcnQoRFJEXyhnX3RocmVhZGluZm8pW3RpZF0ucHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCA+PSAwKTsKIAogICAgRFJEXyhnX3RocmVhZGluZm8pW3RpZF0ucHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCsrOworCisgICBpZiAoRFJEXyhpZ25vcmVfdGhyZWFkX2NyZWF0aW9uKSkgeworICAgICAgdGxfYXNzZXJ0KERSRF8odGhyZWFkX2dldF9zeW5jaHJfbmVzdGluZ19jb3VudCkodGlkKSA9PSAwKTsKKyAgICAgIERSRF8odGhyZWFkX2VudGVyX3N5bmNocikodGlkKTsKKyAgIH0KIH0KIAogLyoqIFRlbGxzIERSRCB0aGF0IHRoZSBjYWxsaW5nIHRocmVhZCBoYXMgbGVmdCBwdGhyZWFkX2NyZWF0ZSgpLiAqLwpAQCAtNjQyLDggKzY3NCw0NCBAQAogICAgdGxfYXNzZXJ0KERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLnB0aHJlYWRfY3JlYXRlX25lc3RpbmdfbGV2ZWwgPiAwKTsKIAogICAgRFJEXyhnX3RocmVhZGluZm8pW3RpZF0ucHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbC0tOworCisgICBpZiAoRFJEXyhpZ25vcmVfdGhyZWFkX2NyZWF0aW9uKSkgeworICAgICAgRFJEXyh0aHJlYWRfbGVhdmVfc3luY2hyKSh0aWQpOworICAgICAgdGxfYXNzZXJ0KERSRF8odGhyZWFkX2dldF9zeW5jaHJfbmVzdGluZ19jb3VudCkodGlkKSA9PSAwKTsKKyAgIH0KIH0KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiogSGFuZGxlcyB0aGUgYmluZF9ndWFyZCgpIGludGVyY2VwdC4gKi8KK3ZvaWQgRFJEXyh0aHJlYWRfZW50ZXJpbmdfcnRsZF9iaW5kX2d1YXJkKShjb25zdCBEcmRUaHJlYWRJZCB0aWQsIGludCBmbGFncykKK3sKKyAgIHRsX2Fzc2VydCgwIDw9IChpbnQpdGlkICYmIHRpZCA8IERSRF9OX1RIUkVBRFMKKyAgICAgICAgICAgICAmJiB0aWQgIT0gRFJEX0lOVkFMSURfVEhSRUFESUQpOworCisgICBJbnQgYmluZGZsYWcgPSAoZmxhZ3MgJiBWS0lfVEhSX0ZMR19SVExEKTsKKyAgIGlmICgoYmluZGZsYWcgJiBEUkRfKGdfdGhyZWFkaW5mbylbdGlkXS5iaW5kX2d1YXJkX2ZsYWcpID09IDApIHsKKyAgICAgIERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLmJpbmRfZ3VhcmRfZmxhZyB8PSBiaW5kZmxhZzsKKyAgICAgIERSRF8odGhyZWFkX2VudGVyX3N5bmNocikodGlkKTsKKyAgIH0KK30KKworLyoqCisgKiBIYW5kbGVzIHRoZSBiaW5kX2NsZWFyKCkgaW50ZXJjZXB0LgorICogQ2FsbCB0byBiaW5kX2NsZWFyKDApIGlzIHR5cGljYWxseSB1c2VkIHRvIGRldGVybWluZSB2YWx1ZSBvZiBiaW5kX2ZsYWdzLgorICovCit2b2lkIERSRF8odGhyZWFkX2xlYXZpbmdfcnRsZF9iaW5kX2NsZWFyKShjb25zdCBEcmRUaHJlYWRJZCB0aWQsIGludCBmbGFncykKK3sKKyAgIHRsX2Fzc2VydCgwIDw9IChpbnQpdGlkICYmIHRpZCA8IERSRF9OX1RIUkVBRFMKKyAgICAgICAgICAgICAmJiB0aWQgIT0gRFJEX0lOVkFMSURfVEhSRUFESUQpOworCisgICBJbnQgYmluZGZsYWcgPSAoZmxhZ3MgJiBWS0lfVEhSX0ZMR19SVExEKTsKKyAgIGlmICgoRFJEXyhnX3RocmVhZGluZm8pW3RpZF0uYmluZF9ndWFyZF9mbGFnICYgYmluZGZsYWcpICE9IDApIHsKKyAgICAgIERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLmJpbmRfZ3VhcmRfZmxhZyAmPSB+YmluZGZsYWc7CisgICAgICBEUkRfKHRocmVhZF9sZWF2ZV9zeW5jaHIpKHRpZCk7CisgICB9Cit9CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKwogLyoqIE9idGFpbiB0aGUgdGhyZWFkIG51bWJlciBhbmQgdGhlIHVzZXItYXNzaWduZWQgdGhyZWFkIG5hbWUuICovCiBjb25zdCBIQ2hhciogRFJEXyh0aHJlYWRfZ2V0X25hbWUpKGNvbnN0IERyZFRocmVhZElkIHRpZCkKIHsKQEAgLTY2MiwxMiArNzMwLDEyIEBACiAgICBpZiAobmFtZSA9PSBOVUxMIHx8IG5hbWVbMF0gPT0gMCkKICAgICAgIFZHXyhzbnByaW50ZikoRFJEXyhnX3RocmVhZGluZm8pW3RpZF0ubmFtZSwKICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLm5hbWUpLAotICAgICAgICAgICAgICAgICAgICAiVGhyZWFkICVkIiwKKyAgICAgICAgICAgICAgICAgICAgIlRocmVhZCAldSIsCiAgICAgICAgICAgICAgICAgICAgIHRpZCk7CiAgICBlbHNlCiAgICAgICBWR18oc25wcmludGYpKERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgIHNpemVvZihEUkRfKGdfdGhyZWFkaW5mbylbdGlkXS5uYW1lKSwKLSAgICAgICAgICAgICAgICAgICAgIlRocmVhZCAlZCAoJXMpIiwKKyAgICAgICAgICAgICAgICAgICAgIlRocmVhZCAldSAoJXMpIiwKICAgICAgICAgICAgICAgICAgICAgdGlkLCBuYW1lKTsKICAgIERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLm5hbWVbc2l6ZW9mKERSRF8oZ190aHJlYWRpbmZvKVt0aWRdLm5hbWUpIC0gMV0gPSAwOwogfQpAQCAtNzA2LDcgKzc3NCw3IEBACiAgICAgICAgICAgJiYgRFJEXyhnX2RyZF9ydW5uaW5nX3RpZCkgIT0gRFJEX0lOVkFMSURfVEhSRUFESUQpCiAgICAgICB7CiAgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgICAgICAgIkNvbnRleHQgc3dpdGNoIGZyb20gdGhyZWFkICVkIHRvIHRocmVhZCAlZDsiCisgICAgICAgICAgICAgICAgICAgICAgIkNvbnRleHQgc3dpdGNoIGZyb20gdGhyZWFkICV1IHRvIHRocmVhZCAldTsiCiAgICAgICAgICAgICAgICAgICAgICAgIiBzZWdtZW50czogJWxsdVxuIiwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKGdfZHJkX3J1bm5pbmdfdGlkKSwgZHJkX3RpZCwKICAgICAgICAgICAgICAgICAgICAgICBEUkRfKHNnX2dldF9zZWdtZW50c19hbGl2ZV9jb3VudCkoKSk7CkBAIC0xMTUzLDcgKzEyMjEsNyBAQAogICAgICAgICAgSENoYXIgKnN0cjEsICpzdHIyOwogICAgICAgICAgc3RyMSA9IERSRF8odmNfYXByaW50KSgmb2xkX3ZjKTsKICAgICAgICAgIHN0cjIgPSBEUkRfKHZjX2FwcmludCkoRFJEXyh0aHJlYWRfZ2V0X3ZjKSh0aWQpKTsKLSAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgInRocmVhZCAlZDogdmMgJXMgLT4gJXNcbiIsIHRpZCwgc3RyMSwgc3RyMik7CisgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJ0aHJlYWQgJXU6IHZjICVzIC0+ICVzXG4iLCB0aWQsIHN0cjEsIHN0cjIpOwogICAgICAgICAgVkdfKGZyZWUpKHN0cjEpOwogICAgICAgICAgVkdfKGZyZWUpKHN0cjIpOwogICAgICAgfQpAQCAtMTE3MSw3ICsxMjM5LDcgQEAKIAogLyoqCiAgKiBDcmVhdGUgYSBuZXcgc2VnbWVudCBmb3IgdGhyZWFkIHRpZCBhbmQgdXBkYXRlIHRoZSB2ZWN0b3IgY2xvY2sgb2YgdGhlIGxhc3QKLSAqIHNlZ21lbnQgb2YgdGhpcyB0aHJlYWQgd2l0aCB0aGUgdGhlIHZlY3RvciBjbG9jayBvZiBzZWdtZW50IHNnLiBDYWxsIHRoaXMKKyAqIHNlZ21lbnQgb2YgdGhpcyB0aHJlYWQgd2l0aCB0aGUgdmVjdG9yIGNsb2NrIG9mIHNlZ21lbnQgc2cuIENhbGwgdGhpcwogICogZnVuY3Rpb24gYWZ0ZXIgdGhyZWFkIHRpZCBoYWQgdG8gd2FpdCBiZWNhdXNlIG9mIHRocmVhZCBzeW5jaHJvbml6YXRpb24KICAqIHVudGlsIHRoZSBtZW1vcnkgYWNjZXNzZXMgaW4gdGhlIHNlZ21lbnQgc2cgZmluaXNoZWQuCiAgKi8KQEAgLTEyMzYsNyArMTMwNCw3IEBACiAgKi8KIHZvaWQgRFJEXyh0aHJlYWRfcHJpbnRfYWxsKSh2b2lkKQogewotICAgdW5zaWduZWQgaTsKKyAgIFVJbnQgaTsKICAgIFNlZ21lbnQqIHA7CiAKICAgIGZvciAoaSA9IDA7IGkgPCBEUkRfTl9USFJFQURTOyBpKyspCkBAIC0xMjQ0LDcgKzEzMTIsNyBAQAogICAgICAgcCA9IERSRF8oZ190aHJlYWRpbmZvKVtpXS5zZ19maXJzdDsKICAgICAgIGlmIChwKSB7CiAgICAgICAgICBWR18ocHJpbnRmKSgiKioqKioqKioqKioqKipcbiIKLSAgICAgICAgICAgICAgICAgICAgICIqIHRocmVhZCAlM2QgKCVkLyVkLyVkLyVkLzB4JWx4LyVkKSAqXG4iCisgICAgICAgICAgICAgICAgICAgICAiKiB0aHJlYWQgJTN1ICglZC8ldS8ldS8ldS8weCVseC8lZCkgKlxuIgogICAgICAgICAgICAgICAgICAgICAgIioqKioqKioqKioqKioqXG4iLAogICAgICAgICAgICAgICAgICAgICAgaSwKICAgICAgICAgICAgICAgICAgICAgIERSRF8oZ190aHJlYWRpbmZvKVtpXS52YWxpZCwKQEAgLTEzMTMsMTQgKzEzODEsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgIFZHXyhwcmludGZfeG1sKSgiICA8b3RoZXJfc2VnbWVudF9zdGFydD5cbiIpOwogICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIHNlZ21lbnQgc3RhcnQgKHRocmVhZCAlZClcbiIsIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciBzZWdtZW50IHN0YXJ0ICh0aHJlYWQgJXUpXG4iLCBpKTsKICAgICAgICAgICAgICAgICAgIHNob3dfY2FsbF9zdGFjayhpLCBxLT5zdGFja3RyYWNlKTsKICAgICAgICAgICAgICAgICAgIGlmIChWR18oY2xvX3htbCkpCiAgICAgICAgICAgICAgICAgICAgICBWR18ocHJpbnRmX3htbCkoIiAgPC9vdGhlcl9zZWdtZW50X3N0YXJ0PlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIDxvdGhlcl9zZWdtZW50X2VuZD5cbiIpOwogICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIHNlZ21lbnQgZW5kICh0aHJlYWQgJWQpXG4iLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIgc2VnbWVudCBlbmQgKHRocmVhZCAldSlcbiIsIGkpOwogICAgICAgICAgICAgICAgICAgcV9uZXh0ID0gcS0+dGhyX25leHQ7CiAgICAgICAgICAgICAgICAgICBzaG93X2NhbGxfc3RhY2soaSwgcV9uZXh0ID8gcV9uZXh0LT5zdGFja3RyYWNlIDogMCk7CiAgICAgICAgICAgICAgICAgICBpZiAoVkdfKGNsb194bWwpKQpAQCAtMTQwOSw3ICsxNDc3LDcgQEAKIAogICAgICAgc3RyID0gRFJEXyh2Y19hcHJpbnQpKERSRF8odGhyZWFkX2dldF92YykodGlkKSk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAgICAgICAgICAgICAgImNvbXB1dGluZyBjb25mbGljdCBzZXQgZm9yIHRocmVhZCAlZCB3aXRoIHZjICVzXG4iLAorICAgICAgICAgICAgICAgICAgICJjb21wdXRpbmcgY29uZmxpY3Qgc2V0IGZvciB0aHJlYWQgJXUgd2l0aCB2YyAlc1xuIiwKICAgICAgICAgICAgICAgICAgICB0aWQsIHN0cik7CiAgICAgICBWR18oZnJlZSkoc3RyKTsKICAgIH0KQEAgLTE0MjIsNyArMTQ5MCw3IEBACiAgICAgICAgICBIQ2hhciogdmM7CiAKICAgICAgICAgIHZjID0gRFJEXyh2Y19hcHJpbnQpKCZwLT52Yyk7Ci0gICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJjb25mbGljdCBzZXQ6IHRocmVhZCBbJWRdIGF0IHZjICVzXG4iLAorICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAiY29uZmxpY3Qgc2V0OiB0aHJlYWQgWyV1XSBhdCB2YyAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgICB0aWQsIHZjKTsKICAgICAgICAgIFZHXyhmcmVlKSh2Yyk7CiAgICAgICB9CkBAIC0xNDM5LDcgKzE1MDcsNyBAQAogCiAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBEUkRfKHZjX2FwcmludCkoJnEtPnZjKTsKICAgICAgICAgICAgICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZmxpY3Qgc2V0OiBbJWRdIG1lcmdpbmcgc2VnbWVudCAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZmxpY3Qgc2V0OiBbJXVdIG1lcmdpbmcgc2VnbWVudCAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqLCBzdHIpOwogICAgICAgICAgICAgICAgICAgICAgVkdfKGZyZWUpKHN0cik7CiAgICAgICAgICAgICAgICAgICB9CkBAIC0xNDUwLDcgKzE1MTgsNyBAQAogCiAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBEUkRfKHZjX2FwcmludCkoJnEtPnZjKTsKICAgICAgICAgICAgICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZmxpY3Qgc2V0OiBbJWRdIGlnbm9yaW5nIHNlZ21lbnQgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbmZsaWN0IHNldDogWyV1XSBpZ25vcmluZyBzZWdtZW50ICVzXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGosIHN0cik7CiAgICAgICAgICAgICAgICAgICAgICBWR18oZnJlZSkoc3RyKTsKICAgICAgICAgICAgICAgICAgIH0KQEAgLTE0NjYsOSArMTUzNCw5IEBACiAgICAgICArPSBEUkRfKGJtX2dldF9iaXRtYXAyX2NyZWF0aW9uX2NvdW50KSgpOwogCiAgICBpZiAoc190cmFjZV9jb25mbGljdF9zZXRfYm0pIHsKLSAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIlslZF0gbmV3IGNvbmZsaWN0IHNldDpcbiIsIHRpZCk7CisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJbJXVdIG5ldyBjb25mbGljdCBzZXQ6XG4iLCB0aWQpOwogICAgICAgRFJEXyhibV9wcmludCkoKmNvbmZsaWN0X3NldCk7Ci0gICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJbJWRdIGVuZCBvZiBuZXcgY29uZmxpY3Qgc2V0LlxuIiwgdGlkKTsKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIlsldV0gZW5kIG9mIG5ldyBjb25mbGljdCBzZXQuXG4iLCB0aWQpOwogICAgfQogfQogCkBAIC0xNDk1LDcgKzE1NjMsNyBAQAogCiAgICAgICBzdHIgPSBEUkRfKHZjX2FwcmludCkoRFJEXyh0aHJlYWRfZ2V0X3ZjKSh0aWQpKTsKICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAidXBkYXRpbmcgY29uZmxpY3Qgc2V0IGZvciB0aHJlYWQgJWQgd2l0aCB2YyAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAidXBkYXRpbmcgY29uZmxpY3Qgc2V0IGZvciB0aHJlYWQgJXUgd2l0aCB2YyAlc1xuIiwKICAgICAgICAgICAgICAgICAgICB0aWQsIHN0cik7CiAgICAgICBWR18oZnJlZSkoc3RyKTsKICAgIH0KQEAgLTE1MjUsNyArMTU5Myw3IEBACiAKICAgICAgICAgICAgIHN0ciA9IERSRF8odmNfYXByaW50KSgmcS0+dmMpOwogICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgICJjb25mbGljdCBzZXQ6IFslZF0gJXMgc2VnbWVudCAlc1xuIiwgaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZmxpY3Qgc2V0OiBbJXVdICVzIHNlZ21lbnQgJXNcbiIsIGosCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZWRfaW5fb2xkX2NvbmZsaWN0X3NldAogICAgICAgICAgICAgICAgICAgICAgICAgICE9IGluY2x1ZGVkX2luX25ld19jb25mbGljdF9zZXQKICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJtZXJnaW5nIiA6ICJpZ25vcmluZyIsIHN0cik7CkBAIC0xNTQ3LDcgKzE2MTUsNyBAQAogCiAgICAgICAgICAgICBzdHIgPSBEUkRfKHZjX2FwcmludCkoJnEtPnZjKTsKICAgICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZmxpY3Qgc2V0OiBbJWRdICVzIHNlZ21lbnQgJXNcbiIsIGosCisgICAgICAgICAgICAgICAgICAgICAgICAgImNvbmZsaWN0IHNldDogWyV1XSAlcyBzZWdtZW50ICVzXG4iLCBqLAogICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVkX2luX29sZF9jb25mbGljdF9zZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBpbmNsdWRlZF9pbl9uZXdfY29uZmxpY3Rfc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAibWVyZ2luZyIgOiAiaWdub3JpbmciLCBzdHIpOwpAQCAtMTU3OSw5ICsxNjQ3LDkgQEAKIAogICAgaWYgKHNfdHJhY2VfY29uZmxpY3Rfc2V0X2JtKQogICAgewotICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAiWyVkXSB1cGRhdGVkIGNvbmZsaWN0IHNldDpcbiIsIHRpZCk7CisgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csICJbJXVdIHVwZGF0ZWQgY29uZmxpY3Qgc2V0OlxuIiwgdGlkKTsKICAgICAgIERSRF8oYm1fcHJpbnQpKERSRF8oZ19jb25mbGljdF9zZXQpKTsKLSAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIlslZF0gZW5kIG9mIHVwZGF0ZWQgY29uZmxpY3Qgc2V0LlxuIiwgdGlkKTsKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgIlsldV0gZW5kIG9mIHVwZGF0ZWQgY29uZmxpY3Qgc2V0LlxuIiwgdGlkKTsKICAgIH0KIAogICAgdGxfYXNzZXJ0KHRocmVhZF9jb25mbGljdF9zZXRfdXBfdG9fZGF0ZShEUkRfKGdfZHJkX3J1bm5pbmdfdGlkKSkpOwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF90aHJlYWQuaCBiL2RyZC9kcmRfdGhyZWFkLmgKaW5kZXggMjgwNjhhNy4uZWVjZTBhNCAxMDA2NDQKLS0tIGEvZHJkL2RyZF90aHJlYWQuaAorKysgYi9kcmQvZHJkX3RocmVhZC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC05OCw2ICs5OCwxNSBAQAogICAgSW50ICAgICAgIHN5bmNocl9uZXN0aW5nOwogICAgLyoqIERlbGF5ZWQgdGhyZWFkIGRlbGV0aW9uIHNlcXVlbmNlIG51bWJlci4gKi8KICAgIHVuc2lnbmVkICBkZWxldGlvbl9zZXE7CisgICAvKioKKyAgICAqIElEIG9mIHRoZSBjcmVhdG9yIHRocmVhZC4gSXQgY2FuIGJlIHNhZmVseSBhY2Nlc3NlZCBvbmx5IHVudGlsIHRoZQorICAgICogdGhyZWFkIGlzIGZ1bGx5IGNyZWF0ZWQuIFRoZW4gdGhlIGNyZWF0b3IgdGhyZWFkIGxpdmVzIGl0cyBvd24gbGlmZSBhZ2Fpbi4KKyAgICAqLworICAgRHJkVGhyZWFkSWQgY3JlYXRvcl90aHJlYWQ7CisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgSW50ICAgICAgIGJpbmRfZ3VhcmRfZmxhZzsgLyoqPCBCaW5kIGZsYWcgZnJvbSB0aGUgcnVudGltZSBsaW5rZXIuICovCisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KIH0gVGhyZWFkSW5mbzsKIAogCkBAIC0xMTcsNiArMTI2LDggQEAKIC8qKiBDb25mbGljdCBzZXQgZm9yIHRoZSBjdXJyZW50bHkgcnVubmluZyB0aHJlYWQuICovCiBleHRlcm4gc3RydWN0IGJpdG1hcCogRFJEXyhnX2NvbmZsaWN0X3NldCk7CiBleHRlcm4gQm9vbCAgICAgICAgICAgRFJEXyh2ZXJpZnlfY29uZmxpY3Rfc2V0KTsKKy8qKiBXaGV0aGVyIGFjdGl2aXRpZXMgZHVyaW5nIHRocmVhZCBjcmVhdGlvbiBzaG91bGQgYmUgaWdub3JlZC4gKi8KK2V4dGVybiBCb29sICAgICAgICAgICBEUkRfKGlnbm9yZV90aHJlYWRfY3JlYXRpb24pOwogCiAKIC8qIEZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4gKi8KQEAgLTE1OSw2ICsxNzAsMTAgQEAKIHZvaWQgRFJEXyh0aHJlYWRfc2V0X2pvaW5hYmxlKShjb25zdCBEcmRUaHJlYWRJZCB0aWQsIGNvbnN0IEJvb2wgam9pbmFibGUpOwogdm9pZCBEUkRfKHRocmVhZF9lbnRlcmluZ19wdGhyZWFkX2NyZWF0ZSkoY29uc3QgRHJkVGhyZWFkSWQgdGlkKTsKIHZvaWQgRFJEXyh0aHJlYWRfbGVmdF9wdGhyZWFkX2NyZWF0ZSkoY29uc3QgRHJkVGhyZWFkSWQgdGlkKTsKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQordm9pZCBEUkRfKHRocmVhZF9lbnRlcmluZ19ydGxkX2JpbmRfZ3VhcmQpKGNvbnN0IERyZFRocmVhZElkIHRpZCwgaW50IGZsYWdzKTsKK3ZvaWQgRFJEXyh0aHJlYWRfbGVhdmluZ19ydGxkX2JpbmRfY2xlYXIpKGNvbnN0IERyZFRocmVhZElkIHRpZCwgaW50IGZsYWdzKTsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLwogY29uc3QgSENoYXIqIERSRF8odGhyZWFkX2dldF9uYW1lKShjb25zdCBEcmRUaHJlYWRJZCB0aWQpOwogdm9pZCBEUkRfKHRocmVhZF9zZXRfbmFtZSkoY29uc3QgRHJkVGhyZWFkSWQgdGlkLCBjb25zdCBIQ2hhciogY29uc3QgbmFtZSk7CiB2b2lkIERSRF8odGhyZWFkX3NldF92Z19ydW5uaW5nX3RpZCkoY29uc3QgVGhyZWFkSWQgdmdfdGlkKTsKZGlmZiAtLWdpdCBhL2RyZC9kcmRfdGhyZWFkX2JpdG1hcC5oIGIvZHJkL2RyZF90aHJlYWRfYml0bWFwLmgKaW5kZXggNzY4N2MwMi4uZGNlODg0ZSAxMDA2NDQKLS0tIGEvZHJkL2RyZF90aHJlYWRfYml0bWFwLmgKKysrIGIvZHJkL2RyZF90aHJlYWRfYml0bWFwLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9kcmRfdmMuYyBiL2RyZC9kcmRfdmMuYwppbmRleCAwZGEzYjRlLi40OWU4YWEzIDEwMDY0NAotLS0gYS9kcmQvZHJkX3ZjLmMKKysrIGIvZHJkL2RyZF92Yy5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgZHJkLCBhIHRocmVhZCBlcnJvciBkZXRlY3Rvci4KIAotICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4uCisgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KIAogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC0yNzcsNyArMjc3LDcgQEAKICAgICAgICAgICAgIHJldHVybiBzdHI7CiAgICAgICB9CiAgICAgICBzaXplICs9IFZHXyhzbnByaW50Zikoc3RyICsgc2l6ZSwgcmVzZXJ2ZWQgLSBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyAlZDogJWQiLCBpID4gMCA/ICIsIiA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyAldTogJXUiLCBpID4gMCA/ICIsIiA6ICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZjLT52Y1tpXS50aHJlYWRpZCwgdmMtPnZjW2ldLmNvdW50KTsKICAgIH0KICAgIHNpemUgKz0gVkdfKHNucHJpbnRmKShzdHIgKyBzaXplLCByZXNlcnZlZCAtIHNpemUsICIgXSIpOwpkaWZmIC0tZ2l0IGEvZHJkL2RyZF92Yy5oIGIvZHJkL2RyZF92Yy5oCmluZGV4IDkxNjcxZmIuLmZlM2NmMGIgMTAwNjQ0Ci0tLSBhL2RyZC9kcmRfdmMuaAorKysgYi9kcmQvZHJkX3ZjLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9wdWJfZHJkX2JpdG1hcC5oIGIvZHJkL3B1Yl9kcmRfYml0bWFwLmgKaW5kZXggNzc2NWRmZi4uYWM1OTE4YiAxMDA2NDQKLS0tIGEvZHJkL3B1Yl9kcmRfYml0bWFwLmgKKysrIGIvZHJkL3B1Yl9kcmRfYml0bWFwLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBkcmQsIGEgdGhyZWFkIGVycm9yIGRldGVjdG9yLgogCi0gIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPi4KKyAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+LgogCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2RyZC9zY3JpcHRzL2Rvd25sb2FkLWFuZC1idWlsZC1zcGxhc2gyLmluIGIvZHJkL3NjcmlwdHMvZG93bmxvYWQtYW5kLWJ1aWxkLXNwbGFzaDIuaW4KaW5kZXggY2I5ODA5ZC4uMDg2ODYwNSAxMDA3NTUKLS0tIGEvZHJkL3NjcmlwdHMvZG93bmxvYWQtYW5kLWJ1aWxkLXNwbGFzaDIuaW4KKysrIGIvZHJkL3NjcmlwdHMvZG93bmxvYWQtYW5kLWJ1aWxkLXNwbGFzaDIuaW4KQEAgLTEsNCArMSw0IEBACi0jIS9iaW4vYmFzaAorIyEvYmluL3NoCiAKIGRvd25sb2Fkcz0iJEhPTUUvc29mdHdhcmUvZG93bmxvYWRzIgogCmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvTWFrZWZpbGUuYW0gYi9kcmQvdGVzdHMvTWFrZWZpbGUuYW0KaW5kZXggYTIxZTcwOS4uMjg4NTM5MSAxMDA2NDQKLS0tIGEvZHJkL3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL2RyZC90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtOSw3ICs5LDkgQEAKIAlmaWx0ZXJfc3RkZXJyICAgICAgICAgICAgICAgXAogCWZpbHRlcl9zdGRlcnJfYW5kX3RocmVhZF9ubyBcCiAJZmlsdGVyX3N0ZGVycl9hbmRfdGhyZWFkX25vX2FuZF9vZmZzZXQgXAorCWZpbHRlcl9zdGRlcnJfc29sYXJpcyAgICAgICBcCiAJZmlsdGVyX3RocmVhZF9ubwkgICAgXAorCWZpbHRlcl90aHJlYWRfbmFtZV94bWwgICAgICBcCiAJZmlsdGVyX3htbF9hbmRfdGhyZWFkX25vICAgIFwKIAlydW5fb3Blbm1wX3Rlc3QgICAgICAgICAgICAgXAogCXN1cHBvcnRlZF9saWJwdGhyZWFkCSAgICBcCkBAIC0zOCw2ICs0MCw4IEBACiAJYW5ub3RhdGVfb3JkZXJfMy52Z3Rlc3QJCQkgICAgXAogCWFubm90YXRlX3B1Ymxpc2hfaGcuc3RkZXJyLmV4cAkJICAgIFwKIAlhbm5vdGF0ZV9wdWJsaXNoX2hnLnZndGVzdAkJICAgIFwKKwlhbm5vdGF0ZV9zZW0uc3RkZXJyLmV4cCAgICAgICAgICAgICAgICAgICAgIFwKKwlhbm5vdGF0ZV9zZW0udmd0ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAlhbm5vdGF0ZV9zbWFydF9wb2ludGVyLnN0ZGVyci5leHAJICAgIFwKIAlhbm5vdGF0ZV9zbWFydF9wb2ludGVyLnZndGVzdAkJICAgIFwKIAlhbm5vdGF0ZV9zbWFydF9wb2ludGVyMi5zdGRlcnIuZXhwCSAgICBcCkBAIC01NCwxMCArNTgsMTMgQEAKIAlhbm5vdGF0ZV9pZ25vcmVfcncuc3RkZXJyLmV4cAkJICAgIFwKIAlhbm5vdGF0ZV9pZ25vcmVfcncudmd0ZXN0CQkgICAgXAogCWFubm90YXRlX2lnbm9yZV9ydzIuc3RkZXJyLmV4cAkJICAgIFwKKwlhbm5vdGF0ZV9pZ25vcmVfcncyLnN0ZGVyci5leHAtc29sYXJpcwkgICAgXAogCWFubm90YXRlX2lnbm9yZV9ydzIudmd0ZXN0CQkgICAgXAogCWFubm90YXRlX2lnbm9yZV93cml0ZS5zdGRlcnIuZXhwCSAgICBcCisJYW5ub3RhdGVfaWdub3JlX3dyaXRlLnN0ZGVyci5leHAtc29sYXJpcyAgICBcCiAJYW5ub3RhdGVfaWdub3JlX3dyaXRlLnZndGVzdAkJICAgIFwKIAlhbm5vdGF0ZV9pZ25vcmVfd3JpdGUyLnN0ZGVyci5leHAJICAgIFwKKwlhbm5vdGF0ZV9pZ25vcmVfd3JpdGUyLnN0ZGVyci5leHAtc29sYXJpcyAgIFwKIAlhbm5vdGF0ZV9pZ25vcmVfd3JpdGUyLnZndGVzdAkJICAgIFwKIAlhbm5vdGF0ZV90cmFjZV9tZW1vcnkuc3RkZXJyLmV4cC0zMmJpdAkgICAgXAogCWFubm90YXRlX3RyYWNlX21lbW9yeS5zdGRlcnIuZXhwLTY0Yml0CSAgICBcCkBAIC0xMDEsNiArMTA4LDcgQEAKIAlmcF9yYWNlX3htbC5zdGRlcnIuZXhwICAgICAgICAgICAgICAgICAgICAgIFwKIAlmcF9yYWNlX3htbC5zdGRlcnIuZXhwLW1pcHMzMi1iZSAgICAgICAgICAgIFwKIAlmcF9yYWNlX3htbC5zdGRlcnIuZXhwLW1pcHMzMi1sZSAgICAgICAgICAgIFwKKwlmcF9yYWNlX3htbC5zdGRlcnIuZXhwLXNvbGFyaXMgICAgICAgICAgICAgIFwKIAlmcF9yYWNlX3htbC52Z3Rlc3QgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAlmcmVlX2lzX3dyaXRlLnN0ZGVyci5leHAJCSAgICBcCiAJZnJlZV9pc193cml0ZS52Z3Rlc3QJCQkgICAgXApAQCAtMTcwLDYgKzE3OCw3IEBACiAJcHRoX2NsZWFudXBfaGFuZGxlci5zdGRlcnIuZXhwCQkgICAgXAogCXB0aF9jbGVhbnVwX2hhbmRsZXIudmd0ZXN0CQkgICAgXAogCXB0aF9jb25kX2Rlc3Ryb3lfYnVzeS5zdGRlcnIuZXhwICAgICAgICAgICAgXAorCXB0aF9jb25kX2Rlc3Ryb3lfYnVzeS5zdGRlcnIuZXhwLXNvbGFyaXMgICAgXAogCXB0aF9jb25kX2Rlc3Ryb3lfYnVzeS52Z3Rlc3QgICAgICAgICAgICAgICAgXAogCXB0aF9jb25kX3JhY2Uuc3RkZXJyLmV4cCAgICAgICAgICAgICAgICAgICAgXAogCXB0aF9jb25kX3JhY2Uudmd0ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjEwLDYgKzIxOSw3IEBACiAJcmVhZF9hbmRfZnJlZV9yYWNlLnZndGVzdAkJICAgIFwKIAlyZWN1cnNpdmVfbXV0ZXguc3RkZXJyLmV4cC1saW51eCAgICAgICAgICAgIFwKIAlyZWN1cnNpdmVfbXV0ZXguc3RkZXJyLmV4cC1kYXJ3aW4gICAgICAgICAgIFwKKwlyZWN1cnNpdmVfbXV0ZXguc3RkZXJyLmV4cC1zb2xhcmlzICAgICAgICAgIFwKIAlyZWN1cnNpdmVfbXV0ZXgudmd0ZXN0ICAgICAgICAgICAgICAgICAgICAgIFwKIAlyd2xvY2tfcmFjZS5zdGRlcnIuZXhwCSAgICAgICAgICAgICAgICAgICAgXAogCXJ3bG9ja19yYWNlLnN0ZGVyci5leHAyCSAgICAgICAgICAgICAgICAgICAgXApAQCAtMjgzLDYgKzI5Myw3IEBACiAJdGMwOV9iYWRfdW5sb2NrLnN0ZGVyci5leHAtcHBjICAgICAgICAgICAgICBcCiAJdGMwOV9iYWRfdW5sb2NrLnN0ZGVyci5leHAtZ2xpYmMyLjggICAgICAgICBcCiAJdGMwOV9iYWRfdW5sb2NrLnN0ZGVyci5leHAtczM5MCAgICAgICAgICAgICBcCisJdGMwOV9iYWRfdW5sb2NrLnN0ZGVyci5leHAtc29sYXJpcyAgICAgICAgICBcCiAJdGMwOV9iYWRfdW5sb2NrLnZndGVzdCAgICAgICAgICAgICAgICAgICAgICBcCiAJdGMxMF9yZWNfbG9jay5zdGRlcnIuZXhwICAgICAgICAgICAgICAgICAgICBcCiAJdGMxMF9yZWNfbG9jay52Z3Rlc3QgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0yOTksNiArMzEwLDcgQEAKIAl0YzE3X3NlbWJhci5zdGRlcnIuZXhwICAgICAgICAgICAgICAgICAgICAgIFwKIAl0YzE3X3NlbWJhci52Z3Rlc3QgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAl0YzE4X3NlbWFidXNlLnN0ZGVyci5leHAgICAgICAgICAgICAgICAgICAgIFwKKwl0YzE4X3NlbWFidXNlLnN0ZGVyci5leHAtc29sYXJpcyAgICAgICAgICAgIFwKIAl0YzE4X3NlbWFidXNlLnZndGVzdCAgICAgICAgICAgICAgICAgICAgICAgIFwKIAl0YzE5X3NoYWRvd21lbS5zdGRlcnIuZXhwLTMyYml0ICAgICAgICAgICAgIFwKIAl0YzE5X3NoYWRvd21lbS5zdGRlcnIuZXhwLTY0Yml0ICAgICAgICAgICAgIFwKQEAgLTQ0MSw4ICs0NTMsMjEgQEAKIGNvbmN1cnJlbnRfY2xvc2VfU09VUkNFUyAgICA9IGNvbmN1cnJlbnRfY2xvc2UuY3BwCiBtb25pdG9yX2V4YW1wbGVfU09VUkNFUyAgICAgPSBtb25pdG9yX2V4YW1wbGUuY3BwCiBuZXdfZGVsZXRlX1NPVVJDRVMgICAgICAgICAgPSBuZXdfZGVsZXRlLmNwcAorbmV3X2RlbGV0ZV9DWFhGTEFHUyAgICAgICAgID0gJChBTV9DWFhGTEFHUykgQEZMQUdfV19OT19NSVNNQVRDSEVEX05FV19ERUxFVEVACiAKLXB0aF9jbGVhbnVwX2hhbmRsZXJfQ0ZMQUdTICA9ICQoQU1fQ0ZMQUdTKSBARkxBR19XX05PX0VNUFRZX0JPRFlACitmcmVlX2lzX3dyaXRlX0NGTEFHUyAgICAgICAgPSAkKEFNX0NGTEFHUykKK3B0aF9iYXJyaWVyX0NGTEFHUyAgICAgICAgICA9ICQoQU1fQ0ZMQUdTKQoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK2ZyZWVfaXNfd3JpdGVfQ0ZMQUdTICAgICAgICArPSAtRF9fRVhURU5TSU9OU19fCitwdGhfYmFycmllcl9DRkxBR1MgICAgICAgICAgKz0gLURfX0VYVEVOU0lPTlNfXworZW5kaWYKKworcHRoX2NyZWF0ZV9jaGFpbl9DRkxBR1MgICAgID0gJChBTV9DRkxBR1MpCitwdGhfZGV0YWNoZWRfQ0ZMQUdTICAgICAgICAgPSAkKEFNX0NGTEFHUykKK2lmIFZHQ09ORl9PU19JU19TT0xBUklTCitwdGhfY3JlYXRlX2NoYWluX0NGTEFHUyAgICAgKz0gLURfX0VYVEVOU0lPTlNfXworcHRoX2RldGFjaGVkX0NGTEFHUyAgICAgICAgICs9IC1EX19FWFRFTlNJT05TX18KK2VuZGlmCiAKIHRzYW5fdW5pdHRlc3RfU09VUkNFUyAgICAgICA9IHRzYW5fdW5pdHRlc3QuY3BwCiB0c2FuX3VuaXR0ZXN0X0NYWEZMQUdTICAgICAgPSAkKEFNX0NYWEZMQUdTKSBcCkBAIC00NzYsNiArNTAxLDEwIEBACiBvbXBfbWF0aW52X0xERkxBR1MgICAgICAgICAgPSAtZm9wZW5tcAogb21wX21hdGludl9MREFERCAgICAgICAgICAgID0gJChMREFERCkgLWxtCiAKK2lmIFZHQ09ORl9PU19JU19TT0xBUklTCitvbXBfbWF0aW52X0NGTEFHUyAgICAgICAgICAgKz0gLXN0ZD1nbnU5OQorZW5kaWYKKwogb21wX3ByaW1lX0NGTEFHUyAgICAgICAgICAgID0gJChBTV9DRkxBR1MpIC1mb3Blbm1wCiBvbXBfcHJpbWVfTERGTEFHUyAgICAgICAgICAgPSAtZm9wZW5tcAogb21wX3ByaW1lX0xEQUREICAgICAgICAgICAgID0gJChMREFERCkgLWxtCkBAIC00ODUsMTAgKzUxNCwxOSBAQAogb21wX3ByaW50Zl9MREFERCAgICAgICAgICAgID0gJChMREFERCkgLWxtCiBlbmRpZgogCittYXRpbnZfQ0ZMQUdTICAgICAgICAgICAgICAgPSAkKEFNX0NGTEFHUykKK2lmIFZHQ09ORl9PU19JU19TT0xBUklTCittYXRpbnZfQ0ZMQUdTICAgICAgICAgICAgICAgKz0gLXN0ZD1nbnU5OSAtRF9fRVhURU5TSU9OU19fCitlbmRpZgogaWYgSEFWRV9QVEhSRUFEX0JBUlJJRVIKIG1hdGludl9MREFERCAgICAgICAgICAgICAgICA9ICQoTERBREQpIC1sbQogZW5kaWYKIAorcndsb2NrX3Rlc3RfQ0ZMQUdTICAgICAgICAgID0gJChBTV9DRkxBR1MpCitpZiBWR0NPTkZfT1NfSVNfU09MQVJJUworcndsb2NrX3Rlc3RfQ0ZMQUdTICAgICAgICAgICs9IC1EX19FWFRFTlNJT05TX18KK2VuZGlmCisKIHN0ZF9hdG9taWNfU09VUkNFUyAgICAgICAgICA9IHN0ZF9hdG9taWMuY3BwCiBzdGRfYXRvbWljX0NYWEZMQUdTICAgICAgICAgPSAkKEFNX0NYWEZMQUdTKSAtc3RkPWMrKzB4IC1Xbm8tc2lnbi1jb21wYXJlCiAKQEAgLTUwMywxMCArNTQxLDE0IEBACiAKIHN0ZF90aHJlYWRfU09VUkNFUyAgICAgICAgICA9IHN0ZF90aHJlYWQuY3BwCiBzdGRfdGhyZWFkX0NYWEZMQUdTICAgICAgICAgPSAkKEFNX0NYWEZMQUdTKSAtc3RkPWMrKzB4CitpZiAhVkdDT05GX09TX0lTX1NPTEFSSVMKIHN0ZF90aHJlYWRfTERGTEFHUyAgICAgICAgICA9IC1XbCwtLW5vLWFzLW5lZWRlZAorZW5kaWYKIAogc3RkX3RocmVhZDJfU09VUkNFUyAgICAgICAgICA9IHN0ZF90aHJlYWQyLmNwcAogc3RkX3RocmVhZDJfQ1hYRkxBR1MgICAgICAgICA9ICQoQU1fQ1hYRkxBR1MpIC1zdGQ9YysrMHgKK2lmICFWR0NPTkZfT1NfSVNfU09MQVJJUwogc3RkX3RocmVhZDJfTERGTEFHUyAgICAgICAgICA9IC1XbCwtLW5vLWFzLW5lZWRlZAorZW5kaWYKIAogc2VtX3dhaXRfU09VUkNFUyAgICAgICAgICAgID0gc2VtX3dhaXQuY3BwCmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvYW5ub3RhdGVfaWdub3JlX3J3Mi5zdGRlcnIuZXhwLXNvbGFyaXMgYi9kcmQvdGVzdHMvYW5ub3RhdGVfaWdub3JlX3J3Mi5zdGRlcnIuZXhwLXNvbGFyaXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM1Mzg5ZgotLS0gL2Rldi9udWxsCisrKyBiL2RyZC90ZXN0cy9hbm5vdGF0ZV9pZ25vcmVfcncyLnN0ZGVyci5leHAtc29sYXJpcwpAQCAtMCwwICsxLDI1IEBACisKK1RocmVhZCAyOgorQ29uZmxpY3RpbmcgbG9hZCBieSB0aHJlYWQgMiBhdCAweC4uLi4uLi4uIHNpemUgMQorICAgYXQgMHguLi4uLi4uLjogdGhyZWFkX2Z1bmMgKGFubm90YXRlX2lnbm9yZV9ydy5jOj8pCisgICBieSAweC4uLi4uLi4uOiB2Z0RyZF90aHJlYWRfd3JhcHBlciAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiAod2l0aGluIGxpYnB0aHJlYWQtPy4/LnNvKQorTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWwgdmFyICJzX2EiCitkZWNsYXJlZCBhdCBhbm5vdGF0ZV9pZ25vcmVfcncuYzoxMAorCitDb25mbGljdGluZyBzdG9yZSBieSB0aHJlYWQgMiBhdCAweC4uLi4uLi4uIHNpemUgMQorICAgYXQgMHguLi4uLi4uLjogdGhyZWFkX2Z1bmMgKGFubm90YXRlX2lnbm9yZV9ydy5jOj8pCisgICBieSAweC4uLi4uLi4uOiB2Z0RyZF90aHJlYWRfd3JhcHBlciAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiAod2l0aGluIGxpYnB0aHJlYWQtPy4/LnNvKQorTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWwgdmFyICJzX2IiCitkZWNsYXJlZCBhdCBhbm5vdGF0ZV9pZ25vcmVfcncuYzoxMQorCitUaHJlYWQgMToKK0NvbmZsaWN0aW5nIGxvYWQgYnkgdGhyZWFkIDEgYXQgMHguLi4uLi4uLiBzaXplIDEKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGFubm90YXRlX2lnbm9yZV9ydy5jOj8pCitMb2NhdGlvbiAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGdsb2JhbCB2YXIgInNfYyIKK2RlY2xhcmVkIGF0IGFubm90YXRlX2lnbm9yZV9ydy5jOjEyCisKK0ZpbmlzaGVkLgorCitFUlJPUiBTVU1NQVJZOiAzIGVycm9ycyBmcm9tIDMgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL2Fubm90YXRlX2lnbm9yZV93cml0ZS5zdGRlcnIuZXhwLXNvbGFyaXMgYi9kcmQvdGVzdHMvYW5ub3RhdGVfaWdub3JlX3dyaXRlLnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTYxOTc5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJkL3Rlc3RzL2Fubm90YXRlX2lnbm9yZV93cml0ZS5zdGRlcnIuZXhwLXNvbGFyaXMKQEAgLTAsMCArMSwyMyBAQAorCitUaHJlYWQgMjoKK0NvbmZsaWN0aW5nIHN0b3JlIGJ5IHRocmVhZCAyIGF0IDB4Li4uLi4uLi4gc2l6ZSAxCisgICBhdCAweC4uLi4uLi4uOiB0aHJlYWRfZnVuYyAoYW5ub3RhdGVfaWdub3JlX3dyaXRlLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IHZnRHJkX3RocmVhZF93cmFwcGVyIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46ICh3aXRoaW4gbGlicHRocmVhZC0/Lj8uc28pCitMb2NhdGlvbiAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGdsb2JhbCB2YXIgInNfYiIKK2RlY2xhcmVkIGF0IGFubm90YXRlX2lnbm9yZV93cml0ZS5jOjExCisKK1RocmVhZCAxOgorQ29uZmxpY3RpbmcgbG9hZCBieSB0aHJlYWQgMSBhdCAweC4uLi4uLi4uIHNpemUgMQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoYW5ub3RhdGVfaWdub3JlX3dyaXRlLmM6PykKK0xvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAic19jIgorZGVjbGFyZWQgYXQgYW5ub3RhdGVfaWdub3JlX3dyaXRlLmM6MTIKKworQ29uZmxpY3Rpbmcgc3RvcmUgYnkgdGhyZWFkIDEgYXQgMHguLi4uLi4uLiBzaXplIDEKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGFubm90YXRlX2lnbm9yZV93cml0ZS5jOj8pCitMb2NhdGlvbiAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGdsb2JhbCB2YXIgInNfYSIKK2RlY2xhcmVkIGF0IGFubm90YXRlX2lnbm9yZV93cml0ZS5jOjEwCisKK0ZpbmlzaGVkLgorCitFUlJPUiBTVU1NQVJZOiAzIGVycm9ycyBmcm9tIDMgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL2Fubm90YXRlX2lnbm9yZV93cml0ZTIuc3RkZXJyLmV4cC1zb2xhcmlzIGIvZHJkL3Rlc3RzL2Fubm90YXRlX2lnbm9yZV93cml0ZTIuc3RkZXJyLmV4cC1zb2xhcmlzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MTFmZjEKLS0tIC9kZXYvbnVsbAorKysgYi9kcmQvdGVzdHMvYW5ub3RhdGVfaWdub3JlX3dyaXRlMi5zdGRlcnIuZXhwLXNvbGFyaXMKQEAgLTAsMCArMSwzMCBAQAorCitUaHJlYWQgMjoKK0NvbmZsaWN0aW5nIGxvYWQgYnkgdGhyZWFkIDIgYXQgMHguLi4uLi4uLiBzaXplIDEKKyAgIGF0IDB4Li4uLi4uLi46IHRocmVhZF9mdW5jIChhbm5vdGF0ZV9pZ25vcmVfd3JpdGUuYzo/KQorICAgYnkgMHguLi4uLi4uLjogdmdEcmRfdGhyZWFkX3dyYXBwZXIgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzo/KQorICAgYnkgMHguLi4uLi4uLjogKHdpdGhpbiBsaWJwdGhyZWFkLT8uPy5zbykKK0xvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAic19hIgorZGVjbGFyZWQgYXQgYW5ub3RhdGVfaWdub3JlX3dyaXRlLmM6MTAKKworQ29uZmxpY3Rpbmcgc3RvcmUgYnkgdGhyZWFkIDIgYXQgMHguLi4uLi4uLiBzaXplIDEKKyAgIGF0IDB4Li4uLi4uLi46IHRocmVhZF9mdW5jIChhbm5vdGF0ZV9pZ25vcmVfd3JpdGUuYzo/KQorICAgYnkgMHguLi4uLi4uLjogdmdEcmRfdGhyZWFkX3dyYXBwZXIgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzo/KQorICAgYnkgMHguLi4uLi4uLjogKHdpdGhpbiBsaWJwdGhyZWFkLT8uPy5zbykKK0xvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAic19iIgorZGVjbGFyZWQgYXQgYW5ub3RhdGVfaWdub3JlX3dyaXRlLmM6MTEKKworVGhyZWFkIDE6CitDb25mbGljdGluZyBsb2FkIGJ5IHRocmVhZCAxIGF0IDB4Li4uLi4uLi4gc2l6ZSAxCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChhbm5vdGF0ZV9pZ25vcmVfd3JpdGUuYzo/KQorTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWwgdmFyICJzX2MiCitkZWNsYXJlZCBhdCBhbm5vdGF0ZV9pZ25vcmVfd3JpdGUuYzoxMgorCitDb25mbGljdGluZyBzdG9yZSBieSB0aHJlYWQgMSBhdCAweC4uLi4uLi4uIHNpemUgMQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoYW5ub3RhdGVfaWdub3JlX3dyaXRlLmM6PykKK0xvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAic19hIgorZGVjbGFyZWQgYXQgYW5ub3RhdGVfaWdub3JlX3dyaXRlLmM6MTAKKworRmluaXNoZWQuCisKK0VSUk9SIFNVTU1BUlk6IDQgZXJyb3JzIGZyb20gNCBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvZmlsdGVyX3N0ZGVyciBiL2RyZC90ZXN0cy9maWx0ZXJfc3RkZXJyCmluZGV4IGE2NmExNDkuLjkzNDdlNGUgMTAwNzU1Ci0tLSBhL2RyZC90ZXN0cy9maWx0ZXJfc3RkZXJyCisrKyBiL2RyZC90ZXN0cy9maWx0ZXJfc3RkZXJyCkBAIC02LDYgKzYsMTMgQEAKIAogJGRpci8uLi8uLi90ZXN0cy9maWx0ZXJfc3RkZXJyX2Jhc2ljIHwKIAorIyBQZXJmb3JtIFNvbGFyaXMtc3BlY2lmaWMgZmlsdGVyaW5nLgoraWYgJGRpci8uLi8uLi90ZXN0cy9vc190ZXN0IHNvbGFyaXM7IHRoZW4KKyAgIHBlcmwgLXAgJGRpci9maWx0ZXJfc3RkZXJyX3NvbGFyaXMKK2Vsc2UKKyAgIGNhdAorZmkgfAorCiAjIFJlbW92ZSAiZHJkLCAuLi4iIGxpbmUgYW5kIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0IGxpbmUuCiAjIFJlbW92ZSBsaW5lIG51bWJlcnMgcmVmZXJyaW5nIHRvIGRyZCdzIHNvdXJjZSBjb2RlLgogIyBSZW1vdmUgbGlicHRocmVhZCdzIHZlcnNpb24gbnVtYmVyLgpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL2ZpbHRlcl9zdGRlcnJfc29sYXJpcyBiL2RyZC90ZXN0cy9maWx0ZXJfc3RkZXJyX3NvbGFyaXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzgxZjk3ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyZC90ZXN0cy9maWx0ZXJfc3RkZXJyX3NvbGFyaXMKQEAgLTAsMCArMSw1NSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMgUmVwbGFjZSBzdGFjayBmcmFtZSBmb3IgYSB0aHJlYWQgY3JlYXRlZCBieSBwdGhyZWFkX2NyZWF0ZSgpOgorIyAgICAgYnkgMHguLi4uLi4uLjogX3RocnBfc2V0dXAgKGluIC9saWIvbGliYy5zby4xKQorIyB3aXRoIGEgc3RhY2sgZnJhbWUgZXhwZWN0ZWQgb24gTGludXg6CisjICAgICBieSAweC4uLi4uLi4uOiBzdGFydF90aHJlYWQgKHB0aHJlYWRfY3JlYXRlLmM6MTIzKQorIyBJdCB3aWxsIGJlIGZ1cnRoZXIgcmVkdWNlZCBhbmQgbWFuZ2xlZCBieSB0aGUgbWFpbiBmaWx0ZXJfc3RkZXJyIHNjcmlwdC4KKyMgVGhpcyBuZWVkcyB0byBiZSBkb25lIGZpcnN0Lgorcy9fdGhycF9zZXR1cCBcKGluIC4qbGliYy4qXCkvc3RhcnRfdGhyZWFkIFwocHRocmVhZF9jcmVhdGUuYzoxMjNcKS9nOworCisjIFdlIG5lZWQgdG8gZmlsdGVyIG91dCB0aGUgU29sYXJpcyBsaWJjJ3Mgc3RhY2sgZnJhbWUgd2hpY2ggbG9va3MgbGlrZToKKyMgICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfaW5pdCAoaW4gLy4uLmxpYmMuLi4pCisjIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZXhwZWN0ZWQgb3V0cHV0IG9mIHRlc3QgY2FzZXMuCisjCisjIFN0YWNrIGZyYW1lcyBmb3Igc3luY2hyb25pemF0aW9uIGZ1bmN0aW9ucyBhcmUgbWlzc2luZyBvbiBMaW51eCBiZWNhdXNlCisjIG9mIG9wdGltYWxpemF0aW9uLiAKKyMgCitzLy4qXChpbiBcLy4uLmxpYmMuLi5cKVxSLy9tOworCisjIFdlIG5lZWQgdG8gcmVwbGFjZSBTb2xhcmlzIHRocmVhZGluZyBhbmQgc3ljaHJvbml6YXRpb24gZnVuY3Rpb24KKyMgbmFtZXMgd2l0aCBQT1NJWCBvbmVzIGZvciBkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmMgc3RhY2sgZnJhbWU6CisjICAgICBieSAweC4uLi4uLi4uOiBjb25kX2luaXQgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzoxMjMpCisjIFNlZSBhbHNvIGNvbW1lbnRzIGluIGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYy4KK215ICVyZWdleCA9ICgKKyAgICAndGhyX2NyZWF0ZScgICAgID0+ICdwdGhyZWFkX2NyZWF0ZScsCisgICAgJ3Rocl9qb2luJyAgICAgICA9PiAncHRocmVhZF9qb2luJywKKyAgICAnbXV0ZXhfaW5pdCcgICAgID0+ICdwdGhyZWFkX211dGV4X2luaXQnLAorICAgICdtdXRleF9kZXN0cm95JyAgPT4gJ3B0aHJlYWRfbXV0ZXhfZGVzdHJveScsCisgICAgJ211dGV4X2xvY2snICAgICA9PiAncHRocmVhZF9tdXRleF9sb2NrJywKKyAgICAnbXV0ZXhfdHJ5bG9jaycgID0+ICdwdGhyZWFkX211dGV4X3RyeWxvY2snLAorICAgICdtdXRleF91bmxvY2snICAgPT4gJ3B0aHJlYWRfbXV0ZXhfdW5sb2NrJywKKyAgICAnY29uZF9pbml0JyAgICAgID0+ICdwdGhyZWFkX2NvbmRfaW5pdCcsCisgICAgJ2NvbmRfZGVzdHJveScgICA9PiAncHRocmVhZF9jb25kX2Rlc3Ryb3knLAorICAgICdjb25kX3dhaXQnICAgICAgPT4gJ3B0aHJlYWRfY29uZF93YWl0JywKKyAgICAnY29uZF90aW1lZHdhaXQnID0+ICdwdGhyZWFkX2NvbmRfdGltZWR3YWl0JywKKyAgICAnY29uZF9zaWduYWwnICAgID0+ICdwdGhyZWFkX2NvbmRfc2lnbmFsJywKKyAgICAnY29uZF9icm9hZGNhc3QnID0+ICdwdGhyZWFkX2NvbmRfYnJvYWRjYXN0JywKKyAgICAnc2VtYV9pbml0JyAgICAgID0+ICdzZW1faW5pdCcsCisgICAgJ3NlbWFfZGVzdHJveScgICA9PiAnc2VtX2Rlc3Ryb3knLAorICAgICdzZW1hX3dhaXQnICAgICAgPT4gJ3NlbV93YWl0JywKKyAgICAnc2VtYV90cnl3YWl0JyAgID0+ICdzZW1fdHJ5d2FpdCcsCisgICAgJ3NlbWFfdGltZWR3YWl0JyA9PiAnc2VtX3RpbWVkd2FpdCcsCisgICAgJ3NlbWFfcG9zdCcgICAgICA9PiAnc2VtX3Bvc3QnLAorICAgICdyd2xvY2tfaW5pdCcgICAgPT4gJ3B0aHJlYWRfcndsb2NrX2luaXQnLAorICAgICdyd2xvY2tfZGVzdHJveScgPT4gJ3B0aHJlYWRfcndsb2NrX2Rlc3Ryb3knLAorICAgICdyd19yZGxvY2snICAgICAgPT4gJ3B0aHJlYWRfcndsb2NrX3JkbG9jaycsCisgICAgJ3J3X3dybG9jaycgICAgICA9PiAncHRocmVhZF9yd2xvY2tfd3Jsb2NrJywKKyAgICAncndfdHJ5cmRsb2NrJyAgID0+ICdwdGhyZWFkX3J3bG9ja190cnlyZGxvY2snLAorICAgICdyd190cnl3cmxvY2snICAgPT4gJ3B0aHJlYWRfcndsb2NrX3RyeXdybG9jaycsCisgICAgJ3J3X3VubG9jaycgICAgICA9PiAncHRocmVhZF9yd2xvY2tfdW5sb2NrJworKTsKK215ICRjaGVjayA9IGpvaW4gInwiLCBrZXlzICVyZWdleDsKK2lmICghIC86IHB0aHJlYWRfLykgeworICAgIHMvKCRjaGVjaykoLipkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmMpLyRyZWdleHskMX0kMi9nOworfQpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL2ZpbHRlcl90aHJlYWRfbmFtZV94bWwgYi9kcmQvdGVzdHMvZmlsdGVyX3RocmVhZF9uYW1lX3htbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NThiNWI2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJkL3Rlc3RzL2ZpbHRlcl90aHJlYWRfbmFtZV94bWwKQEAgLTAsMCArMSwxMiBAQAorIyEgL2Jpbi9zaAorCitkaXI9YGRpcm5hbWUgJDBgCisKKyRkaXIvLi4vLi4vbWVtY2hlY2svdGVzdHMvZmlsdGVyX3htbCB8CisKKyMgUGVyZm9ybSBTb2xhcmlzLXNwZWNpZmljIGZpbHRlcmluZyAoc2VlIGZpbHRlcl9zdGRlcnJfc29sYXJpcykuCitpZiAkZGlyLy4uLy4uL3Rlc3RzL29zX3Rlc3Qgc29sYXJpczsgdGhlbgorICAgc2VkIC1lICdzL211dGV4X3VubG9jay9wdGhyZWFkX211dGV4X3VubG9jay8nCitlbHNlCisgICBjYXQKK2ZpCmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvZnBfcmFjZV94bWwuc3RkZXJyLmV4cC1zb2xhcmlzIGIvZHJkL3Rlc3RzL2ZwX3JhY2VfeG1sLnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWZmZTcxCi0tLSAvZGV2L251bGwKKysrIGIvZHJkL3Rlc3RzL2ZwX3JhY2VfeG1sLnN0ZGVyci5leHAtc29sYXJpcwpAQCAtMCwwICsxLDEwNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+CisKKzx2YWxncmluZG91dHB1dD4KKworPHByb3RvY29sdmVyc2lvbj40PC9wcm90b2NvbHZlcnNpb24+Cis8cHJvdG9jb2x0b29sPmRyZDwvcHJvdG9jb2x0b29sPgorCis8cHJlYW1ibGU+CisgIDxsaW5lPi4uLjwvbGluZT4KKyAgPGxpbmU+Li4uPC9saW5lPgorICA8bGluZT4uLi48L2xpbmU+CisgIDxsaW5lPi4uLjwvbGluZT4KKzwvcHJlYW1ibGU+CisKKzxwaWQ+Li4uPC9waWQ+Cis8cHBpZD4uLi48L3BwaWQ+Cis8dG9vbD5kcmQ8L3Rvb2w+CisKKzxhcmdzPgorICA8dmFyZ3Y+Li4uPC92YXJndj4KKyAgPGFyZ3Y+CisgICAgPGV4ZT4uL2ZwX3JhY2U8L2V4ZT4KKyAgPC9hcmd2PgorPC9hcmdzPgorCis8c3RhdHVzPgorICA8c3RhdGU+UlVOTklORzwvc3RhdGU+CisgIDx0aW1lPi4uLjwvdGltZT4KKzwvc3RhdHVzPgorCisgIDx0cmFjZT48dGV4dD5kcmRfcHJlX3RocmVhZF9jcmVhdGUgY3JlYXRvciA9IDAsIGNyZWF0ZWQgPSAxPC90ZXh0PjwvdHJhY2U+CisgIDx0cmFjZT48dGV4dD5kcmRfcG9zdF90aHJlYWRfY3JlYXRlIGNyZWF0ZWQgPSAxPC90ZXh0PjwvdHJhY2U+CisgIDx0cmFjZT48dGV4dD5kcmRfcHJlX3RocmVhZF9jcmVhdGUgY3JlYXRvciA9IDEsIGNyZWF0ZWQgPSAyPC90ZXh0PjwvdHJhY2U+CisgIDx0cmFjZT48dGV4dD5kcmRfcG9zdF90aHJlYWRfY3JlYXRlIGNyZWF0ZWQgPSAyPC90ZXh0PjwvdHJhY2U+CisgIDx0cmFjZT48dGV4dD5kcmRfdGhyZWFkX2ZpbmlzaGVkIHRpZCA9IDI8L3RleHQ+PC90cmFjZT4KKzxlcnJvcj4KKyAgPHVuaXF1ZT4weC4uLi4uLi4uPC91bmlxdWU+CisgIDx0aWQ+Li4uPC90aWQ+CisgIDxraW5kPkNvbmZsaWN0aW5nQWNjZXNzPC9raW5kPgorICA8d2hhdD5Db25mbGljdGluZyBsb2FkIGJ5IHRocmVhZCB4IGF0IDB4Li4uLi4uLi4gc2l6ZSA4PC93aGF0PgorICA8c3RhY2s+CisgICAgPGZyYW1lPgorICAgICAgPGlwPjB4Li4uLi4uLi48L2lwPgorICAgICAgPG9iaj4uLi48L29iaj4KKyAgICAgIDxmbj5tYWluPC9mbj4KKyAgICAgIDxkaXI+Li4uPC9kaXI+CisgICAgICA8ZmlsZT5mcF9yYWNlLmM8L2ZpbGU+CisgICAgICA8bGluZT4uLi48L2xpbmU+CisgICAgPC9mcmFtZT4KKyAgPC9zdGFjaz4KKyAgPGF1eHdoYXQ+TG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWwgdmFyICJzX2QzIjwvYXV4d2hhdD4KKyAgPHhhdXh3aGF0Pjx0ZXh0PmRlY2xhcmVkIGF0IGZwX3JhY2UuYzoyNDwvdGV4dD4gPGZpbGU+ZnBfcmFjZS5jPC9maWxlPiA8bGluZT4uLi48L2xpbmU+IDwveGF1eHdoYXQ+CisgIDxvdGhlcl9zZWdtZW50X3N0YXJ0PgorICA8L290aGVyX3NlZ21lbnRfc3RhcnQ+CisgIDxvdGhlcl9zZWdtZW50X2VuZD4KKyAgPC9vdGhlcl9zZWdtZW50X2VuZD4KKzwvZXJyb3I+CisKKzxlcnJvcj4KKyAgPHVuaXF1ZT4weC4uLi4uLi4uPC91bmlxdWU+CisgIDx0aWQ+Li4uPC90aWQ+CisgIDxraW5kPkNvbmZsaWN0aW5nQWNjZXNzPC9raW5kPgorICA8d2hhdD5Db25mbGljdGluZyBzdG9yZSBieSB0aHJlYWQgeCBhdCAweC4uLi4uLi4uIHNpemUgODwvd2hhdD4KKyAgPHN0YWNrPgorICAgIDxmcmFtZT4KKyAgICAgIDxpcD4weC4uLi4uLi4uPC9pcD4KKyAgICAgIDxvYmo+Li4uPC9vYmo+CisgICAgICA8Zm4+bWFpbjwvZm4+CisgICAgICA8ZGlyPi4uLjwvZGlyPgorICAgICAgPGZpbGU+ZnBfcmFjZS5jPC9maWxlPgorICAgICAgPGxpbmU+Li4uPC9saW5lPgorICAgIDwvZnJhbWU+CisgIDwvc3RhY2s+CisgIDxhdXh3aGF0PkxvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAic19kMyI8L2F1eHdoYXQ+CisgIDx4YXV4d2hhdD48dGV4dD5kZWNsYXJlZCBhdCBmcF9yYWNlLmM6MjQ8L3RleHQ+IDxmaWxlPmZwX3JhY2UuYzwvZmlsZT4gPGxpbmU+Li4uPC9saW5lPiA8L3hhdXh3aGF0PgorICA8b3RoZXJfc2VnbWVudF9zdGFydD4KKyAgPC9vdGhlcl9zZWdtZW50X3N0YXJ0PgorICA8b3RoZXJfc2VnbWVudF9lbmQ+CisgIDwvb3RoZXJfc2VnbWVudF9lbmQ+Cis8L2Vycm9yPgorCisgIDx0cmFjZT48dGV4dD5kcmRfcG9zdF90aHJlYWRfam9pbiBqb2luZXIgPSAxLCBqb2luZWUgPSAyLCBuZXcgdmM6IFsgLi4uIF08L3RleHQ+PC90cmFjZT4KKyAgPHRyYWNlPjx0ZXh0PmRyZF90aHJlYWRfZmluaXNoZWQgdGlkID0gMTwvdGV4dD48L3RyYWNlPgorCis8c3RhdHVzPgorICA8c3RhdGU+RklOSVNIRUQ8L3N0YXRlPgorICA8dGltZT4uLi48L3RpbWU+Cis8L3N0YXR1cz4KKworPGVycm9yY291bnRzPgorICA8cGFpcj4KKyAgICA8Y291bnQ+Li4uPC9jb3VudD4KKyAgICA8dW5pcXVlPjB4Li4uLi4uLi48L3VuaXF1ZT4KKyAgPC9wYWlyPgorICA8cGFpcj4KKyAgICA8Y291bnQ+Li4uPC9jb3VudD4KKyAgICA8dW5pcXVlPjB4Li4uLi4uLi48L3VuaXF1ZT4KKyAgPC9wYWlyPgorPC9lcnJvcmNvdW50cz4KKworPHN1cHBjb3VudHM+Li4uPC9zdXBwY291bnRzPgorCis8L3ZhbGdyaW5kb3V0cHV0PgorCmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvbWF0aW52LnZndGVzdCBiL2RyZC90ZXN0cy9tYXRpbnYudmd0ZXN0CmluZGV4IGRhMmE2ZTQuLjRkZWFlNjcgMTAwNjQ0Ci0tLSBhL2RyZC90ZXN0cy9tYXRpbnYudmd0ZXN0CisrKyBiL2RyZC90ZXN0cy9tYXRpbnYudmd0ZXN0CkBAIC0xLDMgKzEsMyBAQAogcHJlcmVxOiB0ZXN0IC1lIG1hdGludiAmJiAuL3N1cHBvcnRlZF9saWJwdGhyZWFkCiBwcm9nOiBtYXRpbnYKLWFyZ3M6IDMwIC10IDE1IC1xCithcmdzOiAtdCAxNSAtcSAzMApkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL29tcF9tYXRpbnYudmd0ZXN0IGIvZHJkL3Rlc3RzL29tcF9tYXRpbnYudmd0ZXN0CmluZGV4IGM5ZDVlYzEuLjVhMzI0ODAgMTAwNjQ0Ci0tLSBhL2RyZC90ZXN0cy9vbXBfbWF0aW52LnZndGVzdAorKysgYi9kcmQvdGVzdHMvb21wX21hdGludi52Z3Rlc3QKQEAgLTEsNCArMSw0IEBACiBwcmVyZXE6IC4vcnVuX29wZW5tcF90ZXN0IC4vb21wX21hdGludgogcHJvZzogb21wX21hdGludgogdmdvcHRzOiAtLWNoZWNrLXN0YWNrLXZhcj15ZXMgLS1yZWFkLXZhci1pbmZvPXllcwotYXJnczogMzAgLXQgMTUgLXEKK2FyZ3M6IC10IDE1IC1xIDMwCmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvb21wX21hdGludl9yYWN5LnZndGVzdCBiL2RyZC90ZXN0cy9vbXBfbWF0aW52X3JhY3kudmd0ZXN0CmluZGV4IDk2YTBmMGYuLjMyN2JjY2MgMTAwNjQ0Ci0tLSBhL2RyZC90ZXN0cy9vbXBfbWF0aW52X3JhY3kudmd0ZXN0CisrKyBiL2RyZC90ZXN0cy9vbXBfbWF0aW52X3JhY3kudmd0ZXN0CkBAIC0xLDUgKzEsNSBAQAogcHJlcmVxOiAuL3J1bl9vcGVubXBfdGVzdCAuL29tcF9tYXRpbnYKIHByb2c6IG9tcF9tYXRpbnYKIHZnb3B0czogLS1jaGVjay1zdGFjay12YXI9eWVzIC0tcmVhZC12YXItaW5mbz15ZXMKLWFyZ3M6IDMgLXQgMiAtcSAtcgorYXJnczogLXQgMiAtcSAtciAzCiBzdGRlcnJfZmlsdGVyOiBmaWx0ZXJfZXJyb3Jfc3VtbWFyeQpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL29tcF9wcmltZV9yYWN5LnZndGVzdCBiL2RyZC90ZXN0cy9vbXBfcHJpbWVfcmFjeS52Z3Rlc3QKaW5kZXggNTkzODFjOS4uZTRmNzI3YiAxMDA2NDQKLS0tIGEvZHJkL3Rlc3RzL29tcF9wcmltZV9yYWN5LnZndGVzdAorKysgYi9kcmQvdGVzdHMvb21wX3ByaW1lX3JhY3kudmd0ZXN0CkBAIC0xLDUgKzEsNSBAQAogcHJlcmVxOiAuL3J1bl9vcGVubXBfdGVzdCAuL29tcF9wcmltZQogcHJvZzogb21wX3ByaW1lCiB2Z29wdHM6IC0tY2hlY2stc3RhY2stdmFyPXllcyAtLXJlYWQtdmFyLWluZm89eWVzCi1hcmdzOiA0IC1xCithcmdzOiAtcSA0CiBzdGRlcnJfZmlsdGVyOiBmaWx0ZXJfZXJyb3Jfc3VtbWFyeQpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL3B0aF9iYXJyaWVyLmMgYi9kcmQvdGVzdHMvcHRoX2JhcnJpZXIuYwppbmRleCA4NTRlZTM0Li43ZmRmZmUxIDEwMDY0NAotLS0gYS9kcmQvdGVzdHMvcHRoX2JhcnJpZXIuYworKysgYi9kcmQvdGVzdHMvcHRoX2JhcnJpZXIuYwpAQCAtNTAsMTMgKzUwLDEzIEBACiAgIGludDhfdCogY29uc3QgYXJyYXkgPSBwLT5hcnJheTsKICAgcHRocmVhZF9iYXJyaWVyX3QqIGNvbnN0IGIgPSBwLT5iOwogICBpZiAoISBzX3NpbGVudCkKLSAgICBwcmludGYoInRocmVhZCAlbHggaXRlcmF0aW9uIDBcbiIsIHB0aHJlYWRfc2VsZigpKTsKKyAgICBwcmludGYoInRocmVhZCAlbHggaXRlcmF0aW9uIDBcbiIsIChsb25nKSBwdGhyZWFkX3NlbGYoKSk7CiAgIHB0aHJlYWRfYmFycmllcl93YWl0KGIpOwogICBmb3IgKGkgPSAwOyBpIDwgcC0+aXRlcmF0aW9uczsgaSsrKQogICB7CiAgICAgaWYgKCEgc19zaWxlbnQpCiAgICAgICBwcmludGYoInRocmVhZCAlbHggaXRlcmF0aW9uICVkOyB3cml0aW5nIHRvICVwXG4iLAotICAgICAgICAgICAgIHB0aHJlYWRfc2VsZigpLCBpICsgMSwgJmFycmF5W2ldKTsKKyAgICAgICAgICAgICAobG9uZykgcHRocmVhZF9zZWxmKCksIGkgKyAxLCAmYXJyYXlbaV0pOwogICAgIGFycmF5W2ldID0gaTsKICAgICBwdGhyZWFkX2JhcnJpZXJfd2FpdChiKTsKICAgfQpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL3B0aF9jb25kX2Rlc3Ryb3lfYnVzeS5zdGRlcnIuZXhwLXNvbGFyaXMgYi9kcmQvdGVzdHMvcHRoX2NvbmRfZGVzdHJveV9idXN5LnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTJiYzFkCi0tLSAvZGV2L251bGwKKysrIGIvZHJkL3Rlc3RzL3B0aF9jb25kX2Rlc3Ryb3lfYnVzeS5zdGRlcnIuZXhwLXNvbGFyaXMKQEAgLTAsMCArMSwzNSBAQAorCitkZXN0cnVjdGlvbiBvZiBjb25kaXRpb24gdmFyaWFibGUgYmVpbmcgd2FpdGVkIHVwb246IGNvbmQgMHguLi4uLi4uLgorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX2Rlc3Ryb3kgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzo/KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAocHRoX2NvbmRfZGVzdHJveV9idXN5LmM6PykKK2NvbmQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQgYXQ6CisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfaW5pdCAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChwdGhfY29uZF9kZXN0cm95X2J1c3kuYzo/KQorCitEZXN0cm95aW5nIGNvbmRpdGlvbiB2YXJpYWJsZSB0aGF0IGlzIGJlaW5nIHdhaXRlZCB1cG9uOiBjb25kIDB4Li4uLi4uLi4sIG11dGV4IDB4Li4uLi4uLi4gbG9ja2VkIGJ5IHRocmVhZCAxCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfZGVzdHJveSAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChwdGhfY29uZF9kZXN0cm95X2J1c3kuYzo/KQorbXV0ZXggMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQgYXQ6CisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2luaXQgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzo/KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAocHRoX2NvbmRfZGVzdHJveV9idXN5LmM6PykKKworRmlyc3QgcHRocmVhZF9jb25kX2Rlc3Ryb3koKSBjYWxsIHJldHVybmVkIHN1Y2Nlc3MuCitjb25kaXRpb24gdmFyaWFibGUgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkOiBjb25kIDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9zaWduYWwgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzo/KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAocHRoX2NvbmRfZGVzdHJveV9idXN5LmM6PykKKworVGhyZWFkIDI6Citjb25kaXRpb24gdmFyaWFibGUgaGFzIGJlZW4gZGVzdHJveWVkIHdoaWxlIGJlaW5nIHdhaXRlZCB1cG9uOiBjb25kIDB4Li4uLi4uLi4sIG11dGV4IDB4Li4uLi4uLi4gbG9ja2VkIGJ5IHRocmVhZCAwCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdCAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiB0aHJlYWRfZnVuYyAocHRoX2NvbmRfZGVzdHJveV9idXN5LmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IHZnRHJkX3RocmVhZF93cmFwcGVyIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46ICh3aXRoaW4gbGlicHRocmVhZC0/Lj8uc28pCisKK1RocmVhZCAxOgorbm90IGEgY29uZGl0aW9uIHZhcmlhYmxlOiBjb25kIDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9kZXN0cm95IChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHB0aF9jb25kX2Rlc3Ryb3lfYnVzeS5jOj8pCisKK1NlY29uZCBwdGhyZWFkX2NvbmRfZGVzdHJveSgpIGNhbGwgcmV0dXJuZWQgc3VjY2Vzcy4KKworRVJST1IgU1VNTUFSWTogNSBlcnJvcnMgZnJvbSA1IGNvbnRleHRzIChzdXBwcmVzc2VkOiAwIGZyb20gMCkKZGlmZiAtLWdpdCBhL2RyZC90ZXN0cy9wdGhfaW5jb25zaXN0ZW50X2NvbmRfd2FpdC5jIGIvZHJkL3Rlc3RzL3B0aF9pbmNvbnNpc3RlbnRfY29uZF93YWl0LmMKaW5kZXggZmI5NWZkOC4uNjY5MWU4NCAxMDA2NDQKLS0tIGEvZHJkL3Rlc3RzL3B0aF9pbmNvbnNpc3RlbnRfY29uZF93YWl0LmMKKysrIGIvZHJkL3Rlc3RzL3B0aF9pbmNvbnNpc3RlbnRfY29uZF93YWl0LmMKQEAgLTEwNyw3ICsxMDcsOCBAQAogICB9CiAKICAgLyogSW5pdGlhbGl6ZSBzeW5jaHJvbml6YXRpb24gb2JqZWN0cy4gKi8KLSAgc25wcmludGYoc2VtYXBob3JlX25hbWUsIHNpemVvZihzZW1hcGhvcmVfbmFtZSksICJzZW1hcGhvcmUtJWQiLCBnZXRwaWQoKSk7CisgIHNucHJpbnRmKHNlbWFwaG9yZV9uYW1lLCBzaXplb2Yoc2VtYXBob3JlX25hbWUpLCAic2VtYXBob3JlLSVsZCIsCisgICAgICAgICAgIChsb25nKSBnZXRwaWQoKSk7CiAgIHNfc2VtID0gY3JlYXRlX3NlbWFwaG9yZShzZW1hcGhvcmVfbmFtZSk7CiAgIFBUSF9DQUxMKHB0aHJlYWRfY29uZF9pbml0KCZzX2NvbmQsIDApKTsKICAgUFRIX0NBTEwocHRocmVhZF9tdXRleF9pbml0KCZzX211dGV4MSwgMCkpOwpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL3JlY3Vyc2l2ZV9tdXRleC5zdGRlcnIuZXhwLXNvbGFyaXMgYi9kcmQvdGVzdHMvcmVjdXJzaXZlX211dGV4LnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDZiMDk1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJkL3Rlc3RzL3JlY3Vyc2l2ZV9tdXRleC5zdGRlcnIuZXhwLXNvbGFyaXMKQEAgLTAsMCArMSwxOCBAQAorCitSZWN1cnNpdmUgbXV0ZXggKHN0YXRpY2FsbHkgaW5pdGlhbGl6ZWQpLgorCitOb24tcmVjdXJzaXZlIG11dGV4Lgorc2Vjb25kIGxvY2sgY2FsbCBmYWlsZWQgIQorTXV0ZXggbm90IGxvY2tlZCBieSBjYWxsaW5nIHRocmVhZDogbXV0ZXggMHguLi4uLi4uLiwgcmVjdXJzaW9uIGNvdW50IDAsIG93bmVyIDEuCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiBsb2NrX3R3aWNlIChyZWN1cnNpdmVfbXV0ZXguYzo/KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAocmVjdXJzaXZlX211dGV4LmM6PykKK211dGV4IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkIGF0OgorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90cnlsb2NrIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IGxvY2tfdHdpY2UgKHJlY3Vyc2l2ZV9tdXRleC5jOj8pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChyZWN1cnNpdmVfbXV0ZXguYzo/KQorCisKK0RvbmUuCisKK0VSUk9SIFNVTU1BUlk6IDEgZXJyb3JzIGZyb20gMSBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvc2VtX29wZW4uYyBiL2RyZC90ZXN0cy9zZW1fb3Blbi5jCmluZGV4IDk1OGJjNmIuLjdmMDBjYTAgMTAwNjQ0Ci0tLSBhL2RyZC90ZXN0cy9zZW1fb3Blbi5jCisrKyBiL2RyZC90ZXN0cy9zZW1fb3Blbi5jCkBAIC01OCw4ICs1OCw4IEBACiAgICAqIFVzZSB0aGUgaXBjcyBhbmQgaXBjcm0gY29tbWFuZHMgdG8gY2xlYW4gdXAgbmFtZWQgc2VtYXBob3JlcyBsZWZ0IGJ5CiAgICAqIGFib3J0ZWQgaW5zdGFuY2VzIG9mIHRoaXMgcHJvY2Vzcy4KICAgICovCi0gIHNucHJpbnRmKHNlbWFwaG9yZV9uYW1lLCBzaXplb2Yoc2VtYXBob3JlX25hbWUpLCAiL2RyZC1zZW0tb3Blbi10ZXN0LSVkIiwKLQkgICBnZXRwaWQoKSk7CisgIHNucHJpbnRmKHNlbWFwaG9yZV9uYW1lLCBzaXplb2Yoc2VtYXBob3JlX25hbWUpLCAiL2RyZC1zZW0tb3Blbi10ZXN0LSVsZCIsCisJICAgKGxvbmcpIGdldHBpZCgpKTsKICAgc19zZW0gPSBzZW1fb3BlbihzZW1hcGhvcmVfbmFtZSwgT19DUkVBVCB8IE9fRVhDTCwgMDYwMCwgMSk7CiAgIGlmIChzX3NlbSA9PSBTRU1fRkFJTEVEKQogICB7CmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvc2lnYWxybS5jIGIvZHJkL3Rlc3RzL3NpZ2Fscm0uYwppbmRleCA4NTk4N2FiLi4yNDg0YTZkIDEwMDY0NAotLS0gYS9kcmQvdGVzdHMvc2lnYWxybS5jCisrKyBiL2RyZC90ZXN0cy9zaWdhbHJtLmMKQEAgLTMyLDggKzMyLDggQEAKICAgewogICAgIGNoYXIgbXNnWzI1Nl07CiAgICAgc25wcmludGYobXNnLCBzaXplb2YobXNnKSwKLSAgICAgICAgICAgICAiJXNwaWQgJWQgLyBrZXJuZWwgdGhyZWFkIElEICVkIC8gVmFsZ3JpbmQgdGhyZWFkIElEICVkXG4iLAotICAgICAgICAgICAgIGxhYmVsLCBnZXRwaWQoKSwgZ2V0a3RpZCgpLCBEUkRfR0VUX1ZBTEdSSU5EX1RIUkVBRElEKTsKKyAgICAgICAgICAgICAiJXNwaWQgJWxkIC8ga2VybmVsIHRocmVhZCBJRCAlZCAvIFZhbGdyaW5kIHRocmVhZCBJRCAlZFxuIiwKKyAgICAgICAgICAgICBsYWJlbCwgKGxvbmcpIGdldHBpZCgpLCBnZXRrdGlkKCksIERSRF9HRVRfVkFMR1JJTkRfVEhSRUFESUQpOwogICAgIHdyaXRlKFNURE9VVF9GSUxFTk8sIG1zZywgc3RybGVuKG1zZykpOwogICB9CiB9CmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvc3RkX3N0cmluZy5jcHAgYi9kcmQvdGVzdHMvc3RkX3N0cmluZy5jcHAKaW5kZXggOGEzNWZiMy4uMjY2YzkzZiAxMDA2NDQKLS0tIGEvZHJkL3Rlc3RzL3N0ZF9zdHJpbmcuY3BwCisrKyBiL2RyZC90ZXN0cy9zdGRfc3RyaW5nLmNwcApAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8Y3N0cmluZz4KICNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIGNoYXIqIGxpc3QyYnl0ZUFycmF5KCkKZGlmZiAtLWdpdCBhL2RyZC90ZXN0cy90YzA5X2JhZF91bmxvY2suc3RkZXJyLmV4cC1zb2xhcmlzIGIvZHJkL3Rlc3RzL3RjMDlfYmFkX3VubG9jay5zdGRlcnIuZXhwLXNvbGFyaXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUxN2I3MQotLS0gL2Rldi9udWxsCisrKyBiL2RyZC90ZXN0cy90YzA5X2JhZF91bmxvY2suc3RkZXJyLmV4cC1zb2xhcmlzCkBAIC0wLDAgKzEsNTQgQEAKKworTXV0ZXggbm90IGxvY2tlZCBieSBjYWxsaW5nIHRocmVhZDogbXV0ZXggMHguLi4uLi4uLiwgcmVjdXJzaW9uIGNvdW50IDAsIG93bmVyIDEuCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6MjcpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzA5X2JhZF91bmxvY2suYzo0OSkKK211dGV4IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkIGF0OgorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9pbml0IChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzoyMykKKworVGhyZWFkIDI6CitNdXRleCBub3QgbG9ja2VkIGJ5IGNhbGxpbmcgdGhyZWFkOiBtdXRleCAweC4uLi4uLi4uLCByZWN1cnNpb24gY291bnQgMSwgb3duZXIgMS4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuICh0YzA5X2JhZF91bmxvY2suYzoxMSkKKyAgIGJ5IDB4Li4uLi4uLi46IHZnRHJkX3RocmVhZF93cmFwcGVyIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKK211dGV4IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkIGF0OgorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9pbml0IChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzozMSkKKworVGhyZWFkIDE6CitUaGUgb2JqZWN0IGF0IGFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3QgYSBtdXRleC4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzo0MSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjQ5KQorCitEZXN0cm95aW5nIGxvY2tlZCBtdXRleDogbXV0ZXggMHguLi4uLi4uLiwgcmVjdXJzaW9uIGNvdW50IDEsIG93bmVyIDEuCisgICBhdCAweC4uLi4uLi4uOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDUpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzA5X2JhZF91bmxvY2suYzo0OSkKK211dGV4IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkIGF0OgorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9pbml0IChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzozMSkKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitNdXRleCBub3QgbG9ja2VkIGJ5IGNhbGxpbmcgdGhyZWFkOiBtdXRleCAweC4uLi4uLi4uLCByZWN1cnNpb24gY291bnQgMCwgb3duZXIgMS4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzoyNykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjUwKQorbXV0ZXggMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQgYXQ6CisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2luaXQgKGRyZF9wdGhyZWFkX2ludGVyY2VwdHMuYzo/KQorICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjIzKQorCitUaGUgb2JqZWN0IGF0IGFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3QgYSBtdXRleC4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzo0MSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjUwKQorCitEZXN0cm95aW5nIGxvY2tlZCBtdXRleDogbXV0ZXggMHguLi4uLi4uLiwgcmVjdXJzaW9uIGNvdW50IDEsIG93bmVyIDEuCisgICBhdCAweC4uLi4uLi4uOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDUpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzA5X2JhZF91bmxvY2suYzo1MCkKK211dGV4IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkIGF0OgorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9pbml0IChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzozMSkKKworCitFUlJPUiBTVU1NQVJZOiA4IGVycm9ycyBmcm9tIDcgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwuc3RkZXJyLmV4cCBiL2RyZC90ZXN0cy90YzEyX3J3bF90cml2aWFsLnN0ZGVyci5leHAKaW5kZXggNmJhN2IxOC4uNzMxNjNlNyAxMDA2NDQKLS0tIGEvZHJkL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwuc3RkZXJyLmV4cAorKysgYi9kcmQvdGVzdHMvdGMxMl9yd2xfdHJpdmlhbC5zdGRlcnIuZXhwCkBAIC0xLDEwICsxLDExIEBACiAKIFJlYWRlci13cml0ZXIgbG9jayBub3QgbG9ja2VkIGJ5IGNhbGxpbmcgdGhyZWFkOiByd2xvY2sgMHguLi4uLi4uLi4KICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzEyX3J3bF90cml2aWFsLmM6MzUpCisgICBieSAweC4uLi4uLi4uOiBzYWZlX3B0aHJlYWRfcndsb2NrX3VubG9jayAoc2FmZS1wdGhyZWFkLmg6NTgpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzEyX3J3bF90cml2aWFsLmM6MjkpCiByd2xvY2sgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQgYXQ6CiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0IChkcmRfcHRocmVhZF9pbnRlcmNlcHRzLmM6PykKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTJfcndsX3RyaXZpYWwuYzoyNCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTJfcndsX3RyaXZpYWwuYzoxOCkKIAogCiBFUlJPUiBTVU1NQVJZOiAxIGVycm9ycyBmcm9tIDEgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQpkaWZmIC0tZ2l0IGEvZHJkL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwudmd0ZXN0IGIvZHJkL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwudmd0ZXN0CmluZGV4IDBjYjM4MjUuLjIxZTY5ODEgMTAwNjQ0Ci0tLSBhL2RyZC90ZXN0cy90YzEyX3J3bF90cml2aWFsLnZndGVzdAorKysgYi9kcmQvdGVzdHMvdGMxMl9yd2xfdHJpdmlhbC52Z3Rlc3QKQEAgLTEsMiArMSwzIEBACiBwcmVyZXE6IC4vc3VwcG9ydGVkX2xpYnB0aHJlYWQKK3Znb3B0czogLS1zaWdpbGwtZGlhZ25vc3RpY3M9bm8KIHByb2c6IC4uLy4uL2hlbGdyaW5kL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwKZGlmZiAtLWdpdCBhL2RyZC90ZXN0cy90YzE4X3NlbWFidXNlLnN0ZGVyci5leHAtc29sYXJpcyBiL2RyZC90ZXN0cy90YzE4X3NlbWFidXNlLnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzJiMjc4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJkL3Rlc3RzL3RjMThfc2VtYWJ1c2Uuc3RkZXJyLmV4cC1zb2xhcmlzCkBAIC0wLDAgKzEsMTAgQEAKKworU2VtYXBob3JlIHJlaW5pdGlhbGl6YXRpb246IHNlbWFwaG9yZSAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiBzZW1faW5pdCAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzE4X3NlbWFidXNlLmM6MjYpCitzZW1hcGhvcmUgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQgYXQ6CisgICBhdCAweC4uLi4uLi4uOiBzZW1faW5pdCAoZHJkX3B0aHJlYWRfaW50ZXJjZXB0cy5jOj8pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzE4X3NlbWFidXNlLmM6MjMpCisKKworRVJST1IgU1VNTUFSWTogMSBlcnJvcnMgZnJvbSAxIGNvbnRleHRzIChzdXBwcmVzc2VkOiAwIGZyb20gMCkKZGlmZiAtLWdpdCBhL2RyZC90ZXN0cy90aHJlYWRfbmFtZV94bWwudmd0ZXN0IGIvZHJkL3Rlc3RzL3RocmVhZF9uYW1lX3htbC52Z3Rlc3QKaW5kZXggZjkzMWU0OC4uYzZjZDFjYSAxMDA2NDQKLS0tIGEvZHJkL3Rlc3RzL3RocmVhZF9uYW1lX3htbC52Z3Rlc3QKKysrIGIvZHJkL3Rlc3RzL3RocmVhZF9uYW1lX3htbC52Z3Rlc3QKQEAgLTEsNCArMSw0IEBACiBwcmVyZXE6IHRlc3QgLWUgdGhyZWFkX25hbWUgJiYgLi9zdXBwb3J0ZWRfbGlicHRocmVhZAogdmdvcHRzOiAtLXJlYWQtdmFyLWluZm89eWVzIC0tY2hlY2stc3RhY2stdmFyPXllcyAtLW51bS1jYWxsZXJzPTMgLS14bWw9eWVzIC0teG1sLWZkPTIKIHByb2c6IHRocmVhZF9uYW1lCi1zdGRlcnJfZmlsdGVyOiAuLi8uLi9tZW1jaGVjay90ZXN0cy9maWx0ZXJfeG1sCitzdGRlcnJfZmlsdGVyOiBmaWx0ZXJfdGhyZWFkX25hbWVfeG1sCmRpZmYgLS1naXQgYS9kcmQvdGVzdHMvdHNhbl91bml0dGVzdC5jcHAgYi9kcmQvdGVzdHMvdHNhbl91bml0dGVzdC5jcHAKaW5kZXggNTdiYjMxMC4uNzlmZWE2YiAxMDA2NDQKLS0tIGEvZHJkL3Rlc3RzL3RzYW5fdW5pdHRlc3QuY3BwCisrKyBiL2RyZC90ZXN0cy90c2FuX3VuaXR0ZXN0LmNwcApAQCAtOTcsNiArOTcsMTAgQEAKICNpbmNsdWRlIDxtYWxsb2MuaD4KICNlbmRpZgogCisjaWZkZWYgVkdPX3NvbGFyaXMKKyNpbmNsdWRlIDxzdHJpbmdzLmg+IC8vIGluZGV4KCksIHJpbmRleCgpCisjZW5kaWYKKwogLy8gVGhlIHRlc3RzIGFyZQogLy8gLSBTdGFiaWxpdHkgdGVzdHMgKG1hcmtlZCBTVEFCKQogLy8gLSBQZXJmb3JtYW5jZSB0ZXN0cyAobWFya2VkIFBFUkYpCkBAIC00Nzg2LDEzICs0NzkwLDEzIEBACiAgIGNoYXIgb3V0X25hbWVbMTAwXTsKICAgLy8gd2Ugb3BlbiB0d28gZmlsZXMsIG9uIGZvciByZWFkaW5nIGFuZCBvbmUgZm9yIHdyaXRpbmcsIAogICAvLyBidXQgdGhlIGZpbGVzIGFyZSBhY3R1YWxseSB0aGUgc2FtZSAoc3ltbGlua2VkKS4KLSAgc3ByaW50ZihvdXRfbmFtZSwgIi90bXAvcmFjZWNoZWNrX3VuaXR0ZXN0X291dC4lZCIsIGdldHBpZCgpKTsKKyAgc3ByaW50ZihvdXRfbmFtZSwgIi90bXAvcmFjZWNoZWNrX3VuaXR0ZXN0X291dC4lbGQiLCAobG9uZykgZ2V0cGlkKCkpOwogICBmZF9vdXQgPSBjcmVhdChvdXRfbmFtZSwgT19XUk9OTFkgfCBTX0lSV1hVKTsKICNpZmRlZiBWR09fZGFyd2luCiAgIC8vIHN5bWxpbmsoKSBpcyBub3Qgc3VwcG9ydGVkIG9uIERhcndpbi4gQ29weSB0aGUgb3V0cHV0IGZpbGUgbmFtZS4KICAgc3RyY3B5KGluX25hbWUsIG91dF9uYW1lKTsKICNlbHNlCi0gIHNwcmludGYoaW5fbmFtZSwgICIvdG1wL3JhY2VjaGVja191bml0dGVzdF9pbi4lZCIsIGdldHBpZCgpKTsKKyAgc3ByaW50Zihpbl9uYW1lLCAgIi90bXAvcmFjZWNoZWNrX3VuaXR0ZXN0X2luLiVsZCIsIChsb25nKSBnZXRwaWQoKSk7CiAgIElHTk9SRV9SRVRVUk5fVkFMVUUoc3ltbGluayhvdXRfbmFtZSwgaW5fbmFtZSkpOwogI2VuZGlmCiAgIGZkX2luICA9IG9wZW4oaW5fbmFtZSwgMCwgT19SRE9OTFkpOwpkaWZmIC0tZ2l0IGEvZXhwLWJidi9iYnZfbWFpbi5jIGIvZXhwLWJidi9iYnZfbWFpbi5jCmluZGV4IGRiNzgzNWYuLjVhNTU1OTMgMTAwNjQ0Ci0tLSBhL2V4cC1iYnYvYmJ2X21haW4uYworKysgYi9leHAtYmJ2L2Jidl9tYWluLmMKQEAgLTgsMTAgKzgsMTAgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEJCViwgYSBWYWxncmluZCB0b29sIGZvciBnZW5lcmF0aW5nIFNpbVBvaW50CiAgICBiYXNpYyBibG9jayB2ZWN0b3JzLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMyBWaW5jZSBXZWF2ZXIKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IFZpbmNlIFdlYXZlcgogICAgICAgdmluY2UgX2F0XyBjc2wuY29ybmVsbC5lZHUKIAotICAgcGNmaWxlIGNvZGUgaXMgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgT3Jpb2wgUHJhdAorICAgcGNmaWxlIGNvZGUgaXMgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgT3Jpb2wgUHJhdAogICAgICAgb3Jpb2wucHJhdCBfYXQgXyBic2MuZXMKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTE2LDggKzExNiw4IEBACiAgICAgICAvKiAgICBhbmQgZnVuY3Rpb24gbmFtZSBmb3IgZWFjaCBiYXNpYyBibG9jayAgICAgICAgICAgICAqLwogICAgVkdfKE9TZXRHZW5fUmVzZXRJdGVyKShpbnN0cl9pbmZvX3RhYmxlKTsKICAgIHdoaWxlICggKGJiX2VsZW0gPSBWR18oT1NldEdlbl9OZXh0KShpbnN0cl9pbmZvX3RhYmxlKSkgKSB7Ci0gICAgICBWR18oZnByaW50ZikoIGZwLCAiRjolZDoleDolc1xuIiwgYmJfZWxlbS0+YmxvY2tfbnVtLAotICAgICAgICAgICAgICAgICAgICAoSW50KWJiX2VsZW0tPkJCX2FkZHIsIGJiX2VsZW0tPmZuX25hbWUpOworICAgICAgVkdfKGZwcmludGYpKCBmcCwgIkY6JWQ6JWx4OiVzXG4iLCBiYl9lbGVtLT5ibG9ja19udW0sCisgICAgICAgICAgICAgICAgICAgIGJiX2VsZW0tPkJCX2FkZHIsIGJiX2VsZW0tPmZuX25hbWUpOwogICAgfQogCiAgICBWR18oZmNsb3NlKShmcCk7CkBAIC01NjUsMTAgKzU2NSwxMCBAQAogICAgICAgICAgVkdfKHNwcmludGYpKGJ1ZiwiXG5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgVGhyZWFkICVkXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIjICAgVG90YWwgaW50ZXJ2YWxzOiAlZCAoSW50ZXJ2YWwgU2l6ZSAlZClcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgICBUb3RhbCBpbnN0cnVjdGlvbnM6ICVsbGRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgICBUb3RhbCByZXBzOiAlbGxkXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIjICAgVW5pcXVlIHJlcHM6ICVsbGRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgICBUb3RhbCBmbGRjdyBpbnN0cnVjdGlvbnM6ICVsbGRcblxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgICBUb3RhbCBpbnN0cnVjdGlvbnM6ICVsbHVcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgICBUb3RhbCByZXBzOiAlbGx1XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICIjICAgVW5pcXVlIHJlcHM6ICVsbHVcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiMgICBUb3RhbCBmbGRjdyBpbnN0cnVjdGlvbnM6ICVsbHVcblxuIiwKICAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAgIChJbnQpKGJidl90aHJlYWRbaV0udG90YWxfaW5zdHIvKFVMb25nKWludGVydmFsX3NpemUpLAogICAgICAgICAgICAgICAgIGludGVydmFsX3NpemUsCkBAIC01OTcsNyArNTk3LDcgQEAKICAgIFZHXyhkZXRhaWxzX3ZlcnNpb24pICAgICAgICAgKE5VTEwpOwogICAgVkdfKGRldGFpbHNfZGVzY3JpcHRpb24pICAgICAoImEgU2ltUG9pbnQgYmFzaWMgYmxvY2sgdmVjdG9yIGdlbmVyYXRvciIpOwogICAgVkdfKGRldGFpbHNfY29weXJpZ2h0X2F1dGhvcikoCi0gICAgICAiQ29weXJpZ2h0IChDKSAyMDA2LTIwMTMgVmluY2UgV2VhdmVyIik7CisgICAgICAiQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgVmluY2UgV2VhdmVyIik7CiAgICBWR18oZGV0YWlsc19idWdfcmVwb3J0c190bykgIChWR19CVUdTX1RPKTsKIAogICAgVkdfKGJhc2ljX3Rvb2xfZnVuY3MpICAgICAgICAgIChiYnZfcG9zdF9jbG9faW5pdCwKZGlmZiAtLWdpdCBhL2V4cC1iYnYvdGVzdHMveDg2L2NvbXBsZXhfcmVwLlMgYi9leHAtYmJ2L3Rlc3RzL3g4Ni9jb21wbGV4X3JlcC5TCmluZGV4IGZjYTM2ZTUuLjU5NWYzNjkgMTAwNjQ0Ci0tLSBhL2V4cC1iYnYvdGVzdHMveDg2L2NvbXBsZXhfcmVwLlMKKysrIGIvZXhwLWJidi90ZXN0cy94ODYvY29tcGxleF9yZXAuUwpAQCAtNDgsMTIgKzQ4LDE4IEBACiAJIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBleGl0OgogICAgICAJbW92CSQxLCVlYXgKLSNpZmRlZiBWR09fZGFyd2luCi0JcHVzaGwJJDAKLSNlbHNlCQorI2lmIGRlZmluZWQoVkdPX2RhcndpbikKKwlwdXNobCAgICQwCQkJIyB3ZSByZXR1cm4gMAorCWludCAgICAgJDB4ODAgICAgICAgICAgCQkjIGFuZCBleGl0CisjZWxpZiBkZWZpbmVkKFZHT19saW51eCkKIAl4b3IgICAgICVlYngsJWVieAkJIyB3ZSByZXR1cm4gMAotI2VuZGlmCQogCWludAkkMHg4MCAgICAgICAgICAJCSMgYW5kIGV4aXQKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisJcHVzaGwgICAkMAkJCSMgd2UgcmV0dXJuIDAKKwlpbnQgICAgICQweDkxICAgICAgICAgIAkJIyBhbmQgZXhpdAorI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIE9TIgorI2VuZGlmCiAKIAogIy5ic3MKZGlmZiAtLWdpdCBhL2V4cC1iYnYvdGVzdHMveDg2L2ZsZGN3X2NoZWNrLlMgYi9leHAtYmJ2L3Rlc3RzL3g4Ni9mbGRjd19jaGVjay5TCmluZGV4IGVmNGMzYTcuLjUyZjk0MzMgMTAwNjQ0Ci0tLSBhL2V4cC1iYnYvdGVzdHMveDg2L2ZsZGN3X2NoZWNrLlMKKysrIGIvZXhwLWJidi90ZXN0cy94ODYvZmxkY3dfY2hlY2suUwpAQCAtOTksMjYgKzk5LDM5IEBACiAJCiBwcmludF9lcnJvcjoKIAltb3YgCSQ0LCVlYXgJCQkjIHdyaXRlIHN5c2NhbGwKLSNpZmRlZiBWR09fZGFyd2luCi0JcHVzaGwJJDEKLQlwdXNobAkkZXJyb3IKKyNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAJcHVzaGwJJDIyCi0jZWxzZQkKKwlwdXNobAkkZXJyb3IKKwlwdXNobAkkMQorCWludCAJJDB4ODAKKyNlbGlmIGRlZmluZWQoVkdPX2xpbnV4KQogCW1vdgkkMSwlZWJ4CQkJIyBzdGRvdXQKIAltb3YJJGVycm9yLCVlY3gJCSMgc3RyaW5nCQogCW1vdiAJJDIyLCVlZHgJCSMgbGVuZ3RoIG9mIHN0cmluZwotI2VuZGlmCQogCWludCAJJDB4ODAKLQkKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisJcHVzaGwJJDIyCisJcHVzaGwJJGVycm9yCisJcHVzaGwJJDEKKwlpbnQgCSQweDkxCisjZWxzZQorIyAgZXJyb3IgIlVua25vd24gT1MiCisjZW5kaWYKKwogZXhpdDoKLSNpZmRlZiBWR09fZGFyd2luCi0JcHVzaGwJcmVzdWx0Ci0jZWxzZQkKLQltb3ZsCXJlc3VsdCwgJWVieAkJIyBsb2FkIGNvbnZlcnRlZCB2YWx1ZQotI2VuZGlmCQogCW1vdmwJJDEsCSVlYXgJCSMgU1lTQ0FMTF9FWElUCisjaWYgZGVmaW5lZChWR09fZGFyd2luKQorCXB1c2hsCXJlc3VsdAogCWludAkkMHg4MAotCQorI2VsaWYgZGVmaW5lZChWR09fbGludXgpCisJbW92bAlyZXN1bHQsICVlYngJCSMgbG9hZCBjb252ZXJ0ZWQgdmFsdWUKKwlpbnQJJDB4ODAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisJcHVzaGwJcmVzdWx0CisJaW50CSQweDkxCisjZWxzZQorIyAgZXJyb3IgIlVua25vd24gT1MiCisjZW5kaWYKIAogCiAuZGF0YQpAQCAtMTI3LDQgKzE0MCw0IEBACiByZXN1bHQ6IC5sb25nCTAKIHRocmVlOgkubG9uZwkwCQkJIyBhIGZsb2F0aW5nIHBvaW50IDMuMAogCS5sb25nCTEwNzQyNjYxMTIKLWVycm9yOgkuYXNjaXogICJFcnJvciEgIFdyb25nIHJlc3VsdCFcbiIKK2Vycm9yOgkuYXNjaWkgICJFcnJvciEgIFdyb25nIHJlc3VsdCFcblwwIgpkaWZmIC0tZ2l0IGEvZXhwLWJidi90ZXN0cy94ODYvbWlsbGlvbi5TIGIvZXhwLWJidi90ZXN0cy94ODYvbWlsbGlvbi5TCmluZGV4IDBkNzJiMDAuLmUwMzRjYzggMTAwNjQ0Ci0tLSBhL2V4cC1iYnYvdGVzdHMveDg2L21pbGxpb24uUworKysgYi9leHAtYmJ2L3Rlc3RzL3g4Ni9taWxsaW9uLlMKQEAgLTIwLDE0ICsyMCwxNyBAQAogCSMgICAgICAgICAgICAgICAgIGluIGFyYy94ODYvaW5jbHVkZS9hc20vdW5pc3RkXzMyLmggb24gTGludXgKIAkjIGRpc2Fzc2VtYmxlIG9uIE9TWCBvdG9vbCAtdFYKIGV4aXQ6Ci0jaWZkZWYgVkdPX2RhcndpbgotCXB1c2hsICAgJDAJCQkjIHdlIHJldHVybiAwCiAJeG9yCSVlYXgsJWVheAogCWluYwklZWF4CSAJCSMgcHV0IGV4aXQgc3lzY2FsbCBudW1iZXIgKDEpIGluIGVheAotCWludCAgICAgJDB4ODAgICAgICAgICAgICAgCSMgYW5kIGV4aXQKLSNlbHNlCQorI2lmIGRlZmluZWQoVkdPX2RhcndpbikKKwlwdXNobAkkMAkJCSMgd2UgcmV0dXJuIDAKKwlpbnQgICAgICQweDgwCQkJIyBhbmQgZXhpdAorI2VsaWYgZGVmaW5lZChWR09fbGludXgpCiAJeG9yICAgICAlZWJ4LCVlYngJCSMgd2UgcmV0dXJuIDAKLQl4b3IJJWVheCwlZWF4Ci0JaW5jCSVlYXgJIAkJIyBwdXQgZXhpdCBzeXNjYWxsIG51bWJlciAoMSkgaW4gZWF4Ci0JaW50ICAgICAkMHg4MCAgICAgICAgICAgICAJIyBhbmQgZXhpdAorCWludCAgICAgJDB4ODAJCQkjIGFuZCBleGl0CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCXB1c2hsCSQwCQkJIyB3ZSByZXR1cm4gMAorCWludCAgICAgJDB4OTEJCQkjIGFuZCBleGl0CisjZWxzZQorIyAgZXJyb3IgIlVua25vd24gT1MiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2V4cC1iYnYvdGVzdHMveDg2L3JlcF9wcmVmaXguUyBiL2V4cC1iYnYvdGVzdHMveDg2L3JlcF9wcmVmaXguUwppbmRleCAzNDYyNDhjLi40NTg4ODE1IDEwMDY0NAotLS0gYS9leHAtYmJ2L3Rlc3RzL3g4Ni9yZXBfcHJlZml4LlMKKysrIGIvZXhwLWJidi90ZXN0cy94ODYvcmVwX3ByZWZpeC5TCkBAIC0yNDYsMzMgKzI0Niw0NyBAQAogcHJpbnRfZXJyb3I6CiAJICAgIAogCW1vdiAJJDQsICVlYXgJCSMgV3JpdGUgc3lzY2FsbAotI2lmZGVmIFZHT19kYXJ3aW4KLQlwdXNobAkkMQotCXB1c2hsCSRlcnJvcl9zdHJpbmcKKyNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAJcHVzaGwJJDE2Ci0jZWxzZQkKKwlwdXNobAkkZXJyb3Jfc3RyaW5nCisJcHVzaGwJJDEKKwlpbnQgCSQweDgwCisjZWxpZiBkZWZpbmVkKFZHT19saW51eCkKIAltb3YJJDEsICVlYngJCSMgcHJpbnQgdG8gc3Rkb3V0CiAJbW92CSRlcnJvcl9zdHJpbmcsICVlY3gJIyBzdHJpbmcgdG8gcHJpbnQKIAltb3YJJDE2LCAlZWR4ICAgICAgCSAgIAkjIHN0cmxlbgotI2VuZGlmCQotCWludAkkMHg4MAkgCQkjIGNhbGwgc3lzY2FsbAorCWludCAJJDB4ODAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisJcHVzaGwJJDE2CisJcHVzaGwJJGVycm9yX3N0cmluZworCXB1c2hsCSQxCisJaW50IAkkMHg5MQorI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIE9TIgorI2VuZGlmCiAKIAkjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAkjIEV4aXQKIAkjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGV4aXQ6Ci0jaWZkZWYgVkdPX2RhcndpbgkKLQl4b3IgICAgICVlYngsJWVieAkJIyB3ZSByZXR1cm4gMAotI2Vsc2UKLQlwdXNobAkkMAkJCSMgd2UgcmV0dXJuIDAKLSNlbmRpZgkKIAl4b3IJJWVheCwlZWF4CiAJaW5jCSVlYXgJIAkJIyBwdXQgZXhpdCBzeXNjYWxsIG51bWJlciAoMSkgaW4gZWF4CisjaWYgZGVmaW5lZChWR09fZGFyd2luKQorCXB1c2hsICAgJDAJCQkjIHdlIHJldHVybiAwCiAJaW50ICAgICAkMHg4MCAgICAgICAgICAgICAJIyBhbmQgZXhpdAorI2VsaWYgZGVmaW5lZChWR09fbGludXgpCisJeG9yICAgICAlZWJ4LCVlYngJCSMgd2UgcmV0dXJuIDAKKwlpbnQgICAgICQweDgwICAgICAgICAgICAgIAkjIGFuZCBleGl0CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCXB1c2hsICAgJDAJCQkjIHdlIHJldHVybiAwCisJaW50ICAgICAkMHg5MSAgICAgICAgICAgICAJIyBhbmQgZXhpdAorI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIE9TIgorI2VuZGlmCiAKIAogLmRhdGEKLWVycm9yX3N0cmluZzoJLmFzY2l6ICJFcnJvciBkZXRlY3RlZCFcbiIKK2Vycm9yX3N0cmluZzoJLmFzY2lpICJFcnJvciBkZXRlY3RlZCFcblwwIgogCiAjLmJzcwogCmRpZmYgLS1naXQgYS9leHAtZGhhdC9kaF9tYWluLmMgYi9leHAtZGhhdC9kaF9tYWluLmMKaW5kZXggNDcxYzNlZC4uZTYzNmNjYiAxMDA2NDQKLS0tIGEvZXhwLWRoYXQvZGhfbWFpbi5jCisrKyBiL2V4cC1kaGF0L2RoX21haW4uYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIERIQVQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgcHJvZmlsaW5nIHRoZQogICAgaGVhcCB1c2FnZSBvZiBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgTW96aWxsYSBJbmMKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IE1vemlsbGEgSW5jCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCkBAIC00OTQsNyArNDk0LDcgQEAKIAogICAgaW50cm9fQmxvY2soYmspOwogCi0gICBpZiAoMCkgVkdfKHByaW50ZikoIkFMTE9DICVsZCAtPiAlcFxuIiwgcmVxX3N6QiwgcCk7CisgICBpZiAoMCkgVkdfKHByaW50ZikoIkFMTE9DICVsdSAtPiAlcFxuIiwgcmVxX3N6QiwgcCk7CiAKICAgIHJldHVybiBwOwogfQpAQCAtNTM3LDcgKzUzNyw3IEBACiBzdGF0aWMKIHZvaWQqIHJlbmV3X2Jsb2NrICggVGhyZWFkSWQgdGlkLCB2b2lkKiBwX29sZCwgU2l6ZVQgbmV3X3JlcV9zekIgKQogewotICAgaWYgKDApIFZHXyhwcmludGYpKCJSRUFMTCAlcCAlbGRcbiIsIHBfb2xkLCBuZXdfcmVxX3N6Qik7CisgICBpZiAoMCkgVkdfKHByaW50ZikoIlJFQUxMICVwICVsdVxuIiwgcF9vbGQsIG5ld19yZXFfc3pCKTsKICAgIHZvaWQqIHBfbmV3ID0gTlVMTDsKIAogICAgdGxfYXNzZXJ0KG5ld19yZXFfc3pCID4gMCk7IC8vIG1hcCAwIHRvIDEKQEAgLTEzNDgsNyArMTM0OCw3IEBACiAgICBWR18oZGV0YWlsc192ZXJzaW9uKSAgICAgICAgIChOVUxMKTsKICAgIFZHXyhkZXRhaWxzX2Rlc2NyaXB0aW9uKSAgICAgKCJhIGR5bmFtaWMgaGVhcCBhbmFseXNpcyB0b29sIik7CiAgICBWR18oZGV0YWlsc19jb3B5cmlnaHRfYXV0aG9yKSgKLSAgICAgICJDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgTW96aWxsYSBJbmMiKTsKKyAgICAgICJDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgTW96aWxsYSBJbmMiKTsKICAgIFZHXyhkZXRhaWxzX2J1Z19yZXBvcnRzX3RvKSAgKFZHX0JVR1NfVE8pOwogCiAgICAvLyBCYXNpYyBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9leHAtc2djaGVjay9oX2ludGVyY2VwdHMuYyBiL2V4cC1zZ2NoZWNrL2hfaW50ZXJjZXB0cy5jCmluZGV4IDY0YmM3ZjcuLjJlYzE4MzYgMTAwNjQ0Ci0tLSBhL2V4cC1zZ2NoZWNrL2hfaW50ZXJjZXB0cy5jCisrKyBiL2V4cC1zZ2NoZWNrL2hfaW50ZXJjZXB0cy5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHRyY2hlY2ssIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2hlY2tpbmcgcG9pbnRlcgogICAgdXNlIGluIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisgICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAgICAgICBuam5AdmFsZ3JpbmQub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTY4LDYgKzY4LDggQEAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIFNUUlJDSFIoVkdfWl9EWUxELCAgICAgICAgICBzdHJyY2hyKQogU1RSUkNIUihWR19aX0RZTEQsICAgICAgICAgIHJpbmRleCkKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitTVFJSQ0hSKFZHX1pfTERfU09fMSwgICAgICAgc3RycmNocikKICNlbmRpZgogCiAKQEAgLTk2LDYgKzk4LDggQEAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIFNUUkNIUihWR19aX0RZTEQsICAgICAgICAgICAgICAgICBzdHJjaHIpCiBTVFJDSFIoVkdfWl9EWUxELCAgICAgICAgICAgICAgICAgaW5kZXgpCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorU1RSQ0hSKFZHX1pfTERfU09fMSwgICAgICAgICAgICAgIHN0cmNocikKICNlbmRpZgogCiAKQEAgLTEzMCw2ICsxMzQsOCBAQAogU1RSTEVOKFZHX1pfTERfTElOVVhfU09fMiwgICAgICAgIHN0cmxlbikKIFNUUkxFTihWR19aX0xEX0xJTlVYX1g4Nl82NF9TT18yLCBzdHJsZW4pCiBTVFJMRU4oVkdfWl9MRF9TT18xLCAgICAgICAgICAgICAgc3RybGVuKQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKK1NUUkxFTihWR19aX0xEX1NPXzEsICAgICAgICAgICAgICBzdHJsZW4pCiAjZW5kaWYKIAogCkBAIC0xNTAsNiArMTU2LDggQEAKIFNUUkNQWShWR19aX0xJQkNfU09OQU1FLCBfX0dJX3N0cmNweSkKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIFNUUkNQWShWR19aX0RZTEQsICAgICAgICBzdHJjcHkpCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorU1RSQ1BZKFZHX1pfTERfU09fMSwgICAgIHN0cmNweSkKICNlbmRpZgogCiAKQEAgLTIwNiw2ICsyMTQsOCBAQAogU1RSQ01QKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIF9fR0lfc3RyY21wKQogU1RSQ01QKFZHX1pfTERfTElOVVhfWDg2XzY0X1NPXzIsIHN0cmNtcCkKIFNUUkNNUChWR19aX0xENjRfU09fMSwgICAgICAgICAgICBzdHJjbXApCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorU1RSQ01QKFZHX1pfTERfU09fMSwgICAgICAgICAgICAgIHN0cmNtcCkKICNlbmRpZgogCiAKQEAgLTMwMSw2ICszMTEsOCBAQAogI2lmIGRlZmluZWQoVkdPX2xpbnV4KQogTUVNQ1BZKFZHX1pfTERfU09fMSwgICAgIG1lbWNweSkgLyogbGQuc28uMSAqLwogTUVNQ1BZKFZHX1pfTEQ2NF9TT18xLCAgIG1lbWNweSkgLyogbGQ2NC5zby4xICovCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorTUVNQ1BZKFZHX1pfTERfU09fMSwgICAgICBtZW1jcHkpCiAjZW5kaWYKIAogCkBAIC0zODEsNiArMzkzLDggQEAKIAogI2lmIGRlZmluZWQoVkdPX2xpbnV4KQogU1RSU1RSKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cnN0cikKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitTVFJTVFIoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgICAgc3Ryc3RyKQogI2VuZGlmCiAKIApAQCAtNDE4LDYgKzQzMiw4IEBACiAKICNpZiBkZWZpbmVkKFZHT19saW51eCkKIFNUUlBCUksoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgICAgc3RycGJyaykKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitTVFJQQlJLKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cnBicmspCiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9leHAtc2djaGVjay9oX21haW4uYyBiL2V4cC1zZ2NoZWNrL2hfbWFpbi5jCmluZGV4IGZjMjY1MGQuLjg0YTNjZmMgMTAwNjQ0Ci0tLSBhL2V4cC1zZ2NoZWNrL2hfbWFpbi5jCisrKyBiL2V4cC1zZ2NoZWNrL2hfbWFpbi5jCkBAIC0xMSwxMiArMTEsMTIgQEAKIAogICAgSW5pdGlhbCB2ZXJzaW9uIChBbm5lbGlkKToKIAotICAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBWYWxncmluZC0zLlggcG9ydDoKIAotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2V4cC1zZ2NoZWNrL2hfbWFpbi5oIGIvZXhwLXNnY2hlY2svaF9tYWluLmgKaW5kZXggYjUyYWY4Yy4uZGRiYThhNSAxMDA2NDQKLS0tIGEvZXhwLXNnY2hlY2svaF9tYWluLmgKKysrIGIvZXhwLXNnY2hlY2svaF9tYWluLmgKQEAgLTksOSArOSw5IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBQdHJjaGVjaywgYSBWYWxncmluZCB0b29sIGZvciBjaGVja2luZyBwb2ludGVyCiAgICB1c2UgaW4gcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMy0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwMy0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9leHAtc2djaGVjay9wY19jb21tb24uYyBiL2V4cC1zZ2NoZWNrL3BjX2NvbW1vbi5jCmluZGV4IGRlNmJiMTYuLmQ4OTFkNDQgMTAwNjQ0Ci0tLSBhL2V4cC1zZ2NoZWNrL3BjX2NvbW1vbi5jCisrKyBiL2V4cC1zZ2NoZWNrL3BjX2NvbW1vbi5jCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHRyY2hlY2ssIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2hlY2tpbmcgcG9pbnRlcgogICAgdXNlIGluIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBPcGVuV29ya3MgTHRkCisgICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBPcGVuV29ya3MgTHRkCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTY0LDggKzU2NCw4IEBACiAgICAgICAgICAgICAgICAgICB3aGF0LCBzICk7CiAgICAgICAgICAgICBWR18ocHBfRXhlQ29udGV4dCkoIFZHXyhnZXRfZXJyb3Jfd2hlcmUpKGVycikgKTsKICAgIAotICAgICAgICAgICAgZW1pdCggIiAgPGF1eHdoYXQ+QWRkcmVzcyAlI2x4IGlzICVsZCBieXRlcyBpbnNpZGUgYSAiCi0gICAgICAgICAgICAgICAgICAiJWxkLWJ5dGUgYmxvY2sgZnJlZSdkPC9hdXh3aGF0PlxuIiwKKyAgICAgICAgICAgIGVtaXQoICIgIDxhdXh3aGF0PkFkZHJlc3MgJSNseCBpcyAlbHUgYnl0ZXMgaW5zaWRlIGEgIgorICAgICAgICAgICAgICAgICAgIiVsdS1ieXRlIGJsb2NrIGZyZWUnZDwvYXV4d2hhdD5cbiIsCiAgICAgICAgICAgICAgICAgICBsbywgbG8tU2VnX19hZGRyKHNlZ2xvKSwgU2VnX19zaXplKHNlZ2xvKSApOwogICAgICAgICAgICAgVkdfKHBwX0V4ZUNvbnRleHQpKFNlZ19fd2hlcmUoc2VnbG8pKTsKIApAQCAtNTc1LDggKzU3NSw4IEBACiAgICAgICAgICAgICAgICAgICB3aGF0LCBzICk7CiAgICAgICAgICAgICBWR18ocHBfRXhlQ29udGV4dCkoIFZHXyhnZXRfZXJyb3Jfd2hlcmUpKGVycikgKTsKICAgIAotICAgICAgICAgICAgZW1pdCggIiBBZGRyZXNzICUjbHggaXMgJWxkIGJ5dGVzIGluc2lkZSBhICIKLSAgICAgICAgICAgICAgICAgICIlbGQtYnl0ZSBibG9jayBmcmVlJ2RcbiIsCisgICAgICAgICAgICBlbWl0KCAiIEFkZHJlc3MgJSNseCBpcyAlbHUgYnl0ZXMgaW5zaWRlIGEgIgorICAgICAgICAgICAgICAgICAgIiVsdS1ieXRlIGJsb2NrIGZyZWUnZFxuIiwKICAgICAgICAgICAgICAgICAgIGxvLCBsby1TZWdfX2FkZHIoc2VnbG8pLCBTZWdfX3NpemUoc2VnbG8pICk7CiAgICAgICAgICAgICBWR18ocHBfRXhlQ29udGV4dCkoU2VnX193aGVyZShzZWdsbykpOwogCkBAIC01OTUsOCArNTk1LDggQEAKICAgICAgICAgICAgICAgIGVtaXQoICIgIDxhdXh3aGF0PkZpcnN0IGJ5dGUgaXMgIgogICAgICAgICAgICAgICAgICAgICAgICAgIm5vdCBpbnNpZGUgYSBrbm93biBibG9jazwvYXV4d2hhdD5cbiIgKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBlbWl0KCAiICA8YXV4d2hhdD5GaXJzdCBieXRlICglI2x4KSBpcyAlbGQgYnl0ZXMgaW5zaWRlIGEgIgotICAgICAgICAgICAgICAgICAgICAgIiVsZC1ieXRlIGJsb2NrIGFsbG9jJ2Q8L2F1eHdoYXQ+XG4iLAorICAgICAgICAgICAgICAgZW1pdCggIiAgPGF1eHdoYXQ+Rmlyc3QgYnl0ZSAoJSNseCkgaXMgJWx1IGJ5dGVzIGluc2lkZSBhICIKKyAgICAgICAgICAgICAgICAgICAgICIlbHUtYnl0ZSBibG9jayBhbGxvYydkPC9hdXh3aGF0PlxuIiwKICAgICAgICAgICAgICAgICAgICAgIGxvLCBsby1TZWdfX2FkZHIoc2VnbG8pLCBTZWdfX3NpemUoc2VnbG8pICk7CiAgICAgICAgICAgICAgICBWR18ocHBfRXhlQ29udGV4dCkoU2VnX193aGVyZShzZWdsbykpOwogICAgICAgICAgICAgfQpAQCAtNjA1LDggKzYwNSw4IEBACiAgICAgICAgICAgICAgICBlbWl0KCAiICA8YXV4d2hhdD5MYXN0IGJ5dGUgaXMgIgogICAgICAgICAgICAgICAgICAgICAgICAgIm5vdCBpbnNpZGUgYSBrbm93biBibG9jazwvYXV4d2hhdD5cbiIgKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBlbWl0KCAiICA8YXV4d2hhdD5MYXN0IGJ5dGUgKCUjbHgpIGlzICVsZCBieXRlcyBpbnNpZGUgYSAiCi0gICAgICAgICAgICAgICAgICAgICAiJWxkLWJ5dGUgYmxvY2sgYWxsb2MnZDwvYXV4d2hhdD5cbiIsCisgICAgICAgICAgICAgICBlbWl0KCAiICA8YXV4d2hhdD5MYXN0IGJ5dGUgKCUjbHgpIGlzICVsdSBieXRlcyBpbnNpZGUgYSAiCisgICAgICAgICAgICAgICAgICAgICAiJWx1LWJ5dGUgYmxvY2sgYWxsb2MnZDwvYXV4d2hhdD5cbiIsCiAgICAgICAgICAgICAgICAgICAgICBoaSwgaGktU2VnX19hZGRyKHNlZ2hpKSwgU2VnX19zaXplKHNlZ2hpKSApOwogICAgICAgICAgICAgICAgVkdfKHBwX0V4ZUNvbnRleHQpKFNlZ19fd2hlcmUoc2VnaGkpKTsKICAgICAgICAgICAgIH0KQEAgLTYyMCw4ICs2MjAsOCBAQAogICAgICAgICAgICAgaWYgKFVOS05PV04gPT0gc2VnbG8pIHsKICAgICAgICAgICAgICAgIGVtaXQoICIgRmlyc3QgYnl0ZSBpcyBub3QgaW5zaWRlIGEga25vd24gYmxvY2tcbiIgKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBlbWl0KCAiIEZpcnN0IGJ5dGUgKCUjbHgpIGlzICVsZCBieXRlcyBpbnNpZGUgYSAiCi0gICAgICAgICAgICAgICAgICAgICAiJWxkLWJ5dGUgYmxvY2sgYWxsb2MnZFxuIiwKKyAgICAgICAgICAgICAgIGVtaXQoICIgRmlyc3QgYnl0ZSAoJSNseCkgaXMgJWx1IGJ5dGVzIGluc2lkZSBhICIKKyAgICAgICAgICAgICAgICAgICAgICIlbHUtYnl0ZSBibG9jayBhbGxvYydkXG4iLAogICAgICAgICAgICAgICAgICAgICAgbG8sIGxvLVNlZ19fYWRkcihzZWdsbyksIFNlZ19fc2l6ZShzZWdsbykgKTsKICAgICAgICAgICAgICAgIFZHXyhwcF9FeGVDb250ZXh0KShTZWdfX3doZXJlKHNlZ2xvKSk7CiAgICAgICAgICAgICB9CkBAIC02MjksOCArNjI5LDggQEAKICAgICAgICAgICAgIGlmIChVTktOT1dOID09IHNlZ2hpKSB7CiAgICAgICAgICAgICAgICBlbWl0KCAiIExhc3QgYnl0ZSBpcyBub3QgaW5zaWRlIGEga25vd24gYmxvY2tcbiIgKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICBlbWl0KCAiIExhc3QgYnl0ZSAoJSNseCkgaXMgJWxkIGJ5dGVzIGluc2lkZSBhICIKLSAgICAgICAgICAgICAgICAgICAgICIlbGQtYnl0ZSBibG9jayBhbGxvYydkXG4iLAorICAgICAgICAgICAgICAgZW1pdCggIiBMYXN0IGJ5dGUgKCUjbHgpIGlzICVsdSBieXRlcyBpbnNpZGUgYSAiCisgICAgICAgICAgICAgICAgICAgICAiJWx1LWJ5dGUgYmxvY2sgYWxsb2MnZFxuIiwKICAgICAgICAgICAgICAgICAgICAgIGhpLCBoaS1TZWdfX2FkZHIoc2VnaGkpLCBTZWdfX3NpemUoc2VnaGkpICk7CiAgICAgICAgICAgICAgICBWR18ocHBfRXhlQ29udGV4dCkoU2VnX193aGVyZShzZWdoaSkpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvZXhwLXNnY2hlY2svcGNfY29tbW9uLmggYi9leHAtc2djaGVjay9wY19jb21tb24uaAppbmRleCA5MzJlODUwLi4yMmU4N2I0IDEwMDY0NAotLS0gYS9leHAtc2djaGVjay9wY19jb21tb24uaAorKysgYi9leHAtc2djaGVjay9wY19jb21tb24uaApAQCAtOSw3ICs5LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB0cmNoZWNrLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGNoZWNraW5nIHBvaW50ZXIKICAgIHVzZSBpbiBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2V4cC1zZ2NoZWNrL3BjX21haW4uYyBiL2V4cC1zZ2NoZWNrL3BjX21haW4uYwppbmRleCAxOWQ3OGQ0Li5mM2Y1OTA3IDEwMDY0NAotLS0gYS9leHAtc2djaGVjay9wY19tYWluLmMKKysrIGIvZXhwLXNnY2hlY2svcGNfbWFpbi5jCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHRyY2hlY2ssIGEgVmFsZ3JpbmQgdG9vbCBmb3IgY2hlY2tpbmcgcG9pbnRlcgogICAgdXNlIGluIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBPcGVuV29ya3MgTHRkCisgICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBPcGVuV29ya3MgTHRkCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtODksNyArODksNyBAQAogICAgVkdfKGRldGFpbHNfZGVzY3JpcHRpb24pICAgICAoImEgc3RhY2sgYW5kIGdsb2JhbCBhcnJheSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3ZlcnJ1biBkZXRlY3RvciIpOwogICAgVkdfKGRldGFpbHNfY29weXJpZ2h0X2F1dGhvcikoCi0gICAgICAiQ29weXJpZ2h0IChDKSAyMDAzLTIwMTMsIGFuZCBHTlUgR1BMJ2QsIGJ5IE9wZW5Xb3JrcyBMdGQgZXQgYWwuIik7CisgICAgICAiQ29weXJpZ2h0IChDKSAyMDAzLTIwMTUsIGFuZCBHTlUgR1BMJ2QsIGJ5IE9wZW5Xb3JrcyBMdGQgZXQgYWwuIik7CiAgICBWR18oZGV0YWlsc19idWdfcmVwb3J0c190bykgIChWR19CVUdTX1RPKTsKICAgIFZHXyhkZXRhaWxzX2F2Z190cmFuc2xhdGlvbl9zaXplQikgKCA0OTYgKTsKIApkaWZmIC0tZ2l0IGEvZXhwLXNnY2hlY2svc2dfbWFpbi5jIGIvZXhwLXNnY2hlY2svc2dfbWFpbi5jCmluZGV4IDBiMmM1MGUuLmQ5NjFhYmYgMTAwNjQ0Ci0tLSBhL2V4cC1zZ2NoZWNrL3NnX21haW4uYworKysgYi9leHAtc2djaGVjay9zZ19tYWluLmMKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBQdHJjaGVjaywgYSBWYWxncmluZCB0b29sIGZvciBjaGVja2luZyBwb2ludGVyCiAgICB1c2UgaW4gcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MzEsNyArNjMxLDcgQEAKIAogc3RhdGljIHZvaWQgR2xvYmFsVHJlZU5vZGVfX3BwICggR2xvYmFsVHJlZU5vZGUqIG5kICkgewogICAgdGxfYXNzZXJ0KG5kLT5kZXNjcik7Ci0gICBWR18ocHJpbnRmKSgiR1ROb2RlIFslI2x4LCslbGQpICVzIiwgCisgICBWR18ocHJpbnRmKSgiR1ROb2RlIFslI2x4LCslbHUpICVzIiwgCiAgICAgICAgICAgICAgICBuZC0+YWRkciwgbmQtPnN6QiwgbmQtPmRlc2NyLT5uYW1lKTsKIH0KIApAQCAtMTY0OCw3ICsxNjQ4LDcgQEAKICAgICAgICAgICAgc0tleS5zekIgID0gc3pCOwogICAgICAgICAgICBnS2V5LmFkZHIgPSBlYTsKICAgICAgICAgICAgZ0tleS5zekIgID0gc3pCOwotICAgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIlRyZWUgc2l6ZXMgJWxkICVsZFxuIiwKKyAgICAgICAgICAgaWYgKDApIFZHXyhwcmludGYpKCJUcmVlIHNpemVzICVsdSAlbHVcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWR18oc2l6ZUZNKShzaVRyZWVzW3RpZF0pLCBWR18oc2l6ZUZNKShnaVRyZWUpKTsKICAgICAgICAgICAgc09LID0gVkdfKGZpbmRCb3VuZHNGTSkoIHNpVHJlZXNbdGlkXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQqKSZzTEIsICAgIE5VTEwvKnVudXNlZCovLApAQCAtMTg5Niw3ICsxODk2LDcgQEAKICAgICAgICAgIGlmICgwICYmIChzYiB8fCBnYikpCiAgICAgICAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csIAogICAgICAgICAgICAgICAgICAgICAgICAgICJleHAtc2djaGVjazogbmV3IG1heCB0cmVlIHNpemVzOiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIlN0YWNrVHJlZSAlbGQsIEdsb2JhbFRyZWUgJWxkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICJTdGFja1RyZWUgJWx1LCBHbG9iYWxUcmVlICVsdVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0c19fbWF4X3NpdHJlZV9zaXplLCBzdGF0c19fbWF4X2dpdHJlZV9zaXplICk7CiAgICAgICB9CiAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZXhwLXNnY2hlY2svc2dfbWFpbi5oIGIvZXhwLXNnY2hlY2svc2dfbWFpbi5oCmluZGV4IDAwN2M2M2IuLjJkM2Q4NDYgMTAwNjQ0Ci0tLSBhL2V4cC1zZ2NoZWNrL3NnX21haW4uaAorKysgYi9leHAtc2djaGVjay9zZ19tYWluLmgKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBQdHJjaGVjaywgYSBWYWxncmluZCB0b29sIGZvciBjaGVja2luZyBwb2ludGVyCiAgICB1c2UgaW4gcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9leHAtc2djaGVjay90ZXN0cy9iYWRfcGVyY2VudGlmeS52Z3Rlc3QgYi9leHAtc2djaGVjay90ZXN0cy9iYWRfcGVyY2VudGlmeS52Z3Rlc3QKaW5kZXggZmJjMGE4My4uYTBlNTBiZiAxMDA2NDQKLS0tIGEvZXhwLXNnY2hlY2svdGVzdHMvYmFkX3BlcmNlbnRpZnkudmd0ZXN0CisrKyBiL2V4cC1zZ2NoZWNrL3Rlc3RzL2JhZF9wZXJjZW50aWZ5LnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi9pc19hcmNoX3N1cHBvcnRlZCAmJiAuLi8uLi90ZXN0cy9vc190ZXN0IGxpbnV4CitwcmVyZXE6IC4vaXNfYXJjaF9zdXBwb3J0ZWQgJiYgKC4uLy4uL3Rlc3RzL29zX3Rlc3QgbGludXggfHwgLi4vLi4vdGVzdHMvb3NfdGVzdCBzb2xhcmlzKQogcHJvZzogYmFkX3BlcmNlbnRpZnkKZGlmZiAtLWdpdCBhL2V4cC1zZ2NoZWNrL3Rlc3RzL2dsb2JhbGVyci52Z3Rlc3QgYi9leHAtc2djaGVjay90ZXN0cy9nbG9iYWxlcnIudmd0ZXN0CmluZGV4IGE2NzlhODIuLjBmOTJhYjMgMTAwNjQ0Ci0tLSBhL2V4cC1zZ2NoZWNrL3Rlc3RzL2dsb2JhbGVyci52Z3Rlc3QKKysrIGIvZXhwLXNnY2hlY2svdGVzdHMvZ2xvYmFsZXJyLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi9pc19hcmNoX3N1cHBvcnRlZCAmJiAuLi8uLi90ZXN0cy9vc190ZXN0IGxpbnV4CitwcmVyZXE6IC4vaXNfYXJjaF9zdXBwb3J0ZWQgJiYgKC4uLy4uL3Rlc3RzL29zX3Rlc3QgbGludXggfHwgLi4vLi4vdGVzdHMvb3NfdGVzdCBzb2xhcmlzKQogcHJvZzogZ2xvYmFsZXJyCmRpZmYgLS1naXQgYS9leHAtc2djaGVjay90ZXN0cy9oYWNrZWRiejIudmd0ZXN0IGIvZXhwLXNnY2hlY2svdGVzdHMvaGFja2VkYnoyLnZndGVzdAppbmRleCBiODRkMzk1Li45NWEyODI5IDEwMDY0NAotLS0gYS9leHAtc2djaGVjay90ZXN0cy9oYWNrZWRiejIudmd0ZXN0CisrKyBiL2V4cC1zZ2NoZWNrL3Rlc3RzL2hhY2tlZGJ6Mi52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4vaXNfYXJjaF9zdXBwb3J0ZWQgJiYgLi4vLi4vdGVzdHMvb3NfdGVzdCBsaW51eAorcHJlcmVxOiAuL2lzX2FyY2hfc3VwcG9ydGVkICYmICguLi8uLi90ZXN0cy9vc190ZXN0IGxpbnV4IHx8IC4uLy4uL3Rlc3RzL29zX3Rlc3Qgc29sYXJpcykKIHByb2c6IGhhY2tlZGJ6MgpkaWZmIC0tZ2l0IGEvZXhwLXNnY2hlY2svdGVzdHMvaHNnLnZndGVzdCBiL2V4cC1zZ2NoZWNrL3Rlc3RzL2hzZy52Z3Rlc3QKaW5kZXggYjAzZjQzOC4uY2RmMzViYSAxMDA2NDQKLS0tIGEvZXhwLXNnY2hlY2svdGVzdHMvaHNnLnZndGVzdAorKysgYi9leHAtc2djaGVjay90ZXN0cy9oc2cudmd0ZXN0CkBAIC0xLDQgKzEsNCBAQAotcHJlcmVxOiAuL2lzX2FyY2hfc3VwcG9ydGVkICYmIC4uLy4uL3Rlc3RzL29zX3Rlc3QgbGludXgKK3ByZXJlcTogLi9pc19hcmNoX3N1cHBvcnRlZCAmJiAoLi4vLi4vdGVzdHMvb3NfdGVzdCBsaW51eCB8fCAuLi8uLi90ZXN0cy9vc190ZXN0IHNvbGFyaXMpCiBwcm9nOiBoc2cKIHZnb3B0czogLS14bWw9eWVzIC0teG1sLWZkPTIgLS1sb2ctZmlsZT0vZGV2L251bGwKIHN0ZGVycl9maWx0ZXI6IC4uLy4uL21lbWNoZWNrL3Rlc3RzL2ZpbHRlcl94bWwKZGlmZiAtLWdpdCBhL2V4cC1zZ2NoZWNrL3Rlc3RzL3ByZWVuX2ludmFycy52Z3Rlc3QgYi9leHAtc2djaGVjay90ZXN0cy9wcmVlbl9pbnZhcnMudmd0ZXN0CmluZGV4IDNjODgwYmMuLmNiZDBkNTIgMTAwNjQ0Ci0tLSBhL2V4cC1zZ2NoZWNrL3Rlc3RzL3ByZWVuX2ludmFycy52Z3Rlc3QKKysrIGIvZXhwLXNnY2hlY2svdGVzdHMvcHJlZW5faW52YXJzLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi9pc19hcmNoX3N1cHBvcnRlZCAmJiAuLi8uLi90ZXN0cy9vc190ZXN0IGxpbnV4CitwcmVyZXE6IC4vaXNfYXJjaF9zdXBwb3J0ZWQgJiYgKC4uLy4uL3Rlc3RzL29zX3Rlc3QgbGludXggfHwgLi4vLi4vdGVzdHMvb3NfdGVzdCBzb2xhcmlzKQogcHJvZzogcHJlZW5faW52YXJzCmRpZmYgLS1naXQgYS9leHAtc2djaGVjay90ZXN0cy9zdGFja2Vyci52Z3Rlc3QgYi9leHAtc2djaGVjay90ZXN0cy9zdGFja2Vyci52Z3Rlc3QKaW5kZXggODA0ODFlYi4uOGYyMGE0ZiAxMDA2NDQKLS0tIGEvZXhwLXNnY2hlY2svdGVzdHMvc3RhY2tlcnIudmd0ZXN0CisrKyBiL2V4cC1zZ2NoZWNrL3Rlc3RzL3N0YWNrZXJyLnZndGVzdApAQCAtMSwzICsxLDMgQEAKLXByZXJlcTogLi9pc19hcmNoX3N1cHBvcnRlZCAmJiAuLi8uLi90ZXN0cy9vc190ZXN0IGxpbnV4CitwcmVyZXE6IC4vaXNfYXJjaF9zdXBwb3J0ZWQgJiYgKC4uLy4uL3Rlc3RzL29zX3Rlc3QgbGludXggfHwgLi4vLi4vdGVzdHMvb3NfdGVzdCBzb2xhcmlzKQogdmdvcHRzOiAtLW51bS1jYWxsZXJzPTMKIHByb2c6IHN0YWNrZXJyCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvTWFrZWZpbGUuYW0gYi9nZGJzZXJ2ZXJfdGVzdHMvTWFrZWZpbGUuYW0KaW5kZXggZDVhMDMwNi4uYmRmMGM1YiAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyX3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtMSwxMSArMSwyMiBAQAogCiBpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUudG9vbC10ZXN0cy5hbQogCitTVUJESVJTID0gLgorCisjIE9TLXNwZWNpZmljIHRlc3RzIAoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK1NVQkRJUlMgKz0gc29sYXJpcworZW5kaWYKKworRElTVF9TVUJESVJTID0gc29sYXJpcworCiBkaXN0X25vaW5zdF9TQ1JJUFRTID0gXAogCWludm9rZXIgc2ltdWxhdGVfY29udHJvbF9jIG1ha2VfbG9jYWxfbGlua3MgXAogCWZpbHRlcl9nZGIgZmlsdGVyX21ha2VfZW1wdHkgXAogCWZpbHRlcl9tZW1jaGVja19tb25pdG9yIGZpbHRlcl9zdGRlcnIgZmlsdGVyX3ZnZGIgXAotCWZpbHRlcl9oZWxncmluZF9tb25pdG9yIHNlbmRfc2lnbmFsCisJZmlsdGVyX2hlbGdyaW5kX21vbml0b3IgZmlsdGVyX2hlbGdyaW5kX21vbml0b3Jfc29sYXJpcyBcCisJZmlsdGVyX3Bhc3NzaWdhbHJtIFwKKwlzZW5kX3NpZ25hbAogCiBFWFRSQV9ESVNUID0gXAogCVJFQURNRV9ERVZFTE9QRVJTIFwKQEAgLTYxLDYgKzcyLDcgQEAKIAltY2xlYWsudmd0ZXN0IFwKIAltY21haW5fcGljLnN0ZGVyckIuZXhwIFwKIAltY21haW5fcGljLnN0ZGVyci5leHAgXAorCW1jbWFpbl9waWMuc3RkZXJyLmV4cC1zb2xhcmlzIFwKIAltY21haW5fcGljLnN0ZGluQi5nZGIgXAogCW1jbWFpbl9waWMuc3Rkb3V0Qi5leHAgXAogCW1jbWFpbl9waWMuc3Rkb3V0LmV4cCBcCkBAIC0xMzUsNyArMTQ3LDkgQEAKIAlubHZnZGJzaWdxdWV1ZS5zdGRlcnJCLmV4cCBcCiAJbmx2Z2Ric2lncXVldWUuc3RkZXJyLmV4cCBcCiAJbmx2Z2Ric2lncXVldWUuc3RkaW5CLmdkYiBcCi0Jbmx2Z2Ric2lncXVldWUuc3Rkb3V0Qi5leHAKKwlubHZnZGJzaWdxdWV1ZS5zdGRvdXRCLmV4cCBcCisJbmx2Z2Ric2lncXVldWUuc3Rkb3V0Qi5leHAtc29sYXJpczEgXAorCW5sdmdkYnNpZ3F1ZXVlLnN0ZG91dEIuZXhwLXNvbGFyaXMyCiAKIGNoZWNrX1BST0dSQU1TID0gXAogCWNsZWFuX2FmdGVyX2ZvcmsgXApkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9nZGIgYi9nZGJzZXJ2ZXJfdGVzdHMvZmlsdGVyX2dkYgppbmRleCAyMzllNzZmLi5kZjk0NzlmIDEwMDc1NQotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvZmlsdGVyX2dkYgorKysgYi9nZGJzZXJ2ZXJfdGVzdHMvZmlsdGVyX2dkYgpAQCAtNDQsNiArNDQsOCBAQAogIyAgICAgICBhbmQgY2xlYW51cCBzb21lIGxpbmVzIGZvciBhIHN5c3RlbSBjYWxsIChvbiB1YnVudHUgMTAgNjQgYml0cykKICMgICAgICAgICAgIChwYXkgYXR0ZW50aW9uIDogdGhlcmUgYXJlIHRhYiBjaGFyYWN0ZXJzIHRoZXJlIGluKQogIyAgICAgICAgICAgKyB5ZXQgYW5vdGhlciB3YXkgdG8gZ2V0IGEgc2VsZWN0IHN5c3RlbSBjYWxsCisjICAgICAgIGFuZCB5ZXQgYW5vdGhlciAoU29sYXJpcyB3YXkpIHRvIGdldCBhIHBvbGwgc3lzdGVtIGNhbGwKKyMgICAgICAgICAgICAgKG9uIDMyIGJpdHMsIHdlIGhhdmUgL2xpYi9saWJjLnNvLiosIG9uIDY0IGJpdHMsIC9saWIvNjQvbGliYy5zby4qKQogIyAgICAgICB3aGljaCByZWdpc3RlcnMgY2FuJ3QgYmUgbW9kaWZpZWQKICMgICAgICAgc3BlY2lhbCB0cmFuc2Zvcm0gZm9yIGFybS9wcGMgd2F0Y2hwb2ludHMgd2hpY2ggaGF2ZSBhbiBhZGRpdGlvbmFsIGFkZHJlc3MKICMgICAgICAgICAgICAgIGF0IHRoZSBiZWdpbm5pbmcKQEAgLTczLDcgKzc1LDcgQEAKICAgICAtZSAncy9cKFxbU3dpdGNoaW5nIHRvIHRocmVhZCBbMTIzNF0gKFRocmVhZCAuLi4uKVxdXCkjMC9cMVxuIzAvJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAtZSAncy9eXChbIFwqIF0gWzAtOV0gVGhyZWFkIC4uLi4gKHRpZCBbMC05XSBWZ1RzX1dhaXRTeXMpICAweC4uLi4uLi4uIGluXCkuKiQvXDEgc3lzY2FsbCAuLi4vJyAgIFwKICAgICAtZSAncy8jWzAtOV1cKCAgMHguLi4uLi4uLiBpbiBzbGVlcGVyX29yX2J1cm5lclwpLyMuXDEvJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAtZSAncy9cKCMwICAweC4uLi4uLi4uIGluIGRvX2J1cm4gKClcKSBhdCBzbGVlcGVycy5jOjM5L1wxLycgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAtZSAncy9cKCMwICAweC4uLi4uLi4uIGluIGRvX2J1cm4gKClcKSBhdCBzbGVlcGVycy5jOjQxL1wxLycgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAtZSAnL15SZWFkaW5nIHN5bWJvbHMgZnJvbSAuKlwuXC5cLmRvbmVcLi9kJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAtZSAnL15Mb2FkZWQgc3ltYm9scyBmb3IgLiokL2QnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAtZSAnL15DdXJyZW50IGxhbmd1YWdlLiovZCcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTEwMiw2ICsxMDQsOCBAQAogICAgIC1lICcvXlsxLTldWzAtOV0qWyAJXSpcLlwuXC9zeXNkZXBzXC91bml4XC9zeXNjYWxsLXRlbXBsYXRlXC5TL2QnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIC1lICcvXlsxLTldWzAtOV0qWyAJXWluICpcLlwuXC9zeXNkZXBzXC91bml4XC9zeXNjYWxsLXRlbXBsYXRlXC5TL2QnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIC1lICcvXlsxLTldWzAtOV0qWyAJXVRfUFNFVURPIChTWVNDQUxMX1NZTUJPTCwgU1lTQ0FMTF9OQU1FLCBTWVNDQUxMX05BUkdTKS9kJyAgICAgICAgICAgICAgICAgICAgXAorICAgIC1lICdzL2luIF9fcG9sbHN5cyAoKSBmcm9tIFwvLiokL2luIHN5c2NhbGwgLi4uLycgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC1lICcvXiAgIGZyb20gXC9saWJcLzY0XC9saWJjLnNvLiokL2QnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIC1lICdzL1woQ291bGQgbm90IHdyaXRlIHJlZ2lzdGVyIFwpIi4qIi9cMSAieHh4Ii8nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIC1lICdzL1woRVJST1IgY2hhbmdpbmcgcmVnaXN0ZXIgXCkuKiQvXDEgeHh4IHJlZ25vIHkvJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIC1lICdzLzB4Li4uLi4uLi4gaW4gXChtYWluIChhcmdjPTEsIGFyZ3Y9MHguLi4uLi4uLikgYXQgd2F0Y2hwb2ludHMuYzpbMjRdWzM2ODldXCkvXDEvJyAgICAgICAgICAgXApAQCAtMTEzLDYgKzExNyw3IEBACiAgICAgLWUgJ3MvXlwoWyBcKl0gWzEyMzRdIFwpICpUaHJlYWQgL1wxVGhyZWFkIC8nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgLWUgJ3MvVmdUc19XYWl0U3lzKSAweC9WZ1RzX1dhaXRTeXMpICAweC8nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgLWUgJy9DYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4Li4uLi4uLi4vZCcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgLWUgJy9cW05ldyBUaHJlYWQvZCcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgLWUgJy9eJC9kJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAKICMgcmVtb3ZlIGFsbCB0aGUgbGluZXMgdGVsbGluZyB3aGVyZSB0aGUgU0lHRlBFIHdhcyB0cmFwcGVkLgpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9oZWxncmluZF9tb25pdG9yIGIvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9oZWxncmluZF9tb25pdG9yCmluZGV4IGJiYTk0NTQuLmRjODY0ODAgMTAwNzU1Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9maWx0ZXJfaGVsZ3JpbmRfbW9uaXRvcgorKysgYi9nZGJzZXJ2ZXJfdGVzdHMvZmlsdGVyX2hlbGdyaW5kX21vbml0b3IKQEAgLTksNSArOSwxMiBAQAogIyBmaWx0ZXIgdmdkYiBtZXNzYWdlcwogJGRpci9maWx0ZXJfdmdkYiB8CiAKKyMgUGVyZm9ybSBTb2xhcmlzLXNwZWNpZmljIGZpbHRlcmluZy4KK2lmICRkaXIvLi4vdGVzdHMvb3NfdGVzdCBzb2xhcmlzOyB0aGVuCisgICAkZGlyL2ZpbHRlcl9oZWxncmluZF9tb25pdG9yX3NvbGFyaXMKK2Vsc2UKKyAgIGNhdAorZmkgfAorCiAjIGFuZCByZW1vdmUgYW55IHJlbWFpbmluZyBlbXB0eSBsaW5lcwogc2VkIC1lICcvXiQvZCcKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9maWx0ZXJfaGVsZ3JpbmRfbW9uaXRvcl9zb2xhcmlzIGIvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9oZWxncmluZF9tb25pdG9yX3NvbGFyaXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjNjZGVkMAotLS0gL2Rldi9udWxsCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9maWx0ZXJfaGVsZ3JpbmRfbW9uaXRvcl9zb2xhcmlzCkBAIC0wLDAgKzEsNDIgQEAKKyMhL3Vzci9iaW4vZW52IHBlcmwKKworIworIyBGaWx0ZXIgb3V0IGFsbCBoZWxncmluZCBpbmZvcm1hdGlvbiBhYm91dCBsb2NrcyBleGNlcHQgdGhlIG9uZSBuYW1lZCAibXgiLgorIyBPbmUgbG9jayByZWNvcmQgbG9va3MgbGlrZToKKyMgTG9jayBnYSAweC4uLi4uLi4uIHsKKyMgIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA5NzI4IGJ5dGVzIGluc2lkZSBkYXRhIHN5bWJvbCAiX3ViZXJkYXRhIgorIyAgIGtpbmQgICBtYlJlYworIyB9CisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK215ICRsb2NrX3N0YXJ0X2xpbmUgPSB1bmRlZjsKK215ICRza2lwX3RvX2Nsb3NpbmdfbGluZSA9IDA7Cit3aGlsZSAoPFNURElOPikgeworICAgIG15ICRsaW5lID0gJF87CisgICAgY2hvbXAoJGxpbmUpOworICAgIGlmICgkbGluZSA9fiAvXkxvY2sgZ2EgMHhbXC5dK1xzK3skLykgeworICAgICAgICAkbG9ja19zdGFydF9saW5lID0gJGxpbmU7CisgICAgICAgICRza2lwX3RvX2Nsb3NpbmdfbGluZSA9IDE7CisgICAgfSBlbHNpZiAoKCRsb2NrX3N0YXJ0X2xpbmUpICYmCisgICAgICAgICAgICAgKCRsaW5lID1+IC9ccypBZGRyZXNzIDB4W1wuXSsgaXMgXGQrIGJ5dGVzIGluc2lkZSBkYXRhIHN5bWJvbCAiKFxTKykiLykpIHsKKyAgICAgICAgaWYgKCQxIGVxICJteCIpIHsKKyAgICAgICAgICAgcHJpbnQgIiRsb2NrX3N0YXJ0X2xpbmVcbiI7CisgICAgICAgICAgIHByaW50ICIkbGluZVxuIjsKKyAgICAgICAgICAgJHNraXBfdG9fY2xvc2luZ19saW5lID0gMDsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKCRsaW5lID1+IC9efSQvKSB7CisgICAgICAgIGlmICgkc2tpcF90b19jbG9zaW5nX2xpbmUgPT0gMCkgeworICAgICAgICAgICAgcHJpbnQgIiRsaW5lXG4iOworICAgICAgICB9CisgICAgICAgIHVuZGVmKCRsb2NrX3N0YXJ0X2xpbmUpOworICAgICAgICAkc2tpcF90b19jbG9zaW5nX2xpbmUgPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICgkc2tpcF90b19jbG9zaW5nX2xpbmUgPT0gMCkgeworICAgICAgICAgICAgcHJpbnQgIiRsaW5lXG4iOworICAgICAgICB9CisgICAgfQorfQorCitleGl0IDA7CmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvZmlsdGVyX3Bhc3NzaWdhbHJtIGIvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9wYXNzc2lnYWxybQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Yjg2ZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9wYXNzc2lnYWxybQpAQCAtMCwwICsxLDEwIEBACisjISAvYmluL3NoCisKK2Rpcj1gZGlybmFtZSAkMGAKKworJGRpci9maWx0ZXJfZ2RiIHwKKworIyBGaWx0ZXIgdGhlIG51bWJlciBvZiByZWFsLXRpbWUgc2lnbmFsIFNJR1JUTUlOIHdoaWNoCisjIHZhcmllcyBhY2Nyb3NzIHN5c3RlbXMuCisKK3NlZCAncy9Qcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdbMC05XSosIFJlYWwtdGltZSBldmVudCBbMC05XSouL1Byb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR3h4LCBSZWFsLXRpbWUgZXZlbnQgeHguLycKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9maWx0ZXJfc3RkZXJyIGIvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9zdGRlcnIKaW5kZXggODY2NDU3Ny4uYTgwODgzZSAxMDA3NTUKLS0tIGEvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9zdGRlcnIKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL2ZpbHRlcl9zdGRlcnIKQEAgLTEwLDQgKzEwLDUgQEAKICAgICAtZSAnL1wvcGF0aFwvdG9cL2dkYi9kJyBcCiAgICAgLWUgJy9hbmQgdGhlbiBnaXZlIEdEQiB0aGUgZm9sbG93aW5nIGNvbW1hbmQvZCcgXAogICAgIC1lICcvdGFyZ2V0IHJlbW90ZSB8L2QnIFwKLSAgICAtZSAnL3BpZCBpcyBvcHRpb25hbCBpZiBvbmx5IG9uZSB2YWxncmluZCBwcm9jZXNzIGlzIHJ1bm5pbmcvZCcKKyAgICAtZSAnL3BpZCBpcyBvcHRpb25hbCBpZiBvbmx5IG9uZSB2YWxncmluZCBwcm9jZXNzIGlzIHJ1bm5pbmcvZCcgXAorICAgIC1lICcvd2FybmluZzogcmVtb3RlIHRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IGZpbGUgdHJhbnNmZXIsIGF0dGVtcHRpbmcgdG8gYWNjZXNzIGZpbGVzIGZyb20gbG9jYWwgZmlsZXN5c3RlbS4vZCcKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9oZ2luZm8uc3Rkb3V0Qi5leHAgYi9nZGJzZXJ2ZXJfdGVzdHMvaGdpbmZvLnN0ZG91dEIuZXhwCmluZGV4IDkyZDg3OGQuLmVkODg2M2IgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9oZ2luZm8uc3Rkb3V0Qi5leHAKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL2hnaW5mby5zdGRvdXRCLmV4cApAQCAtMSwxMCArMSw4IEBACiBCcmVha3BvaW50IDEgYXQgMHguLi4uLi4uLjogZmlsZSBoZzAxX2FsbF9vay5jLCBsaW5lIDEzLgogQ29udGludWluZy4KLVtOZXcgVGhyZWFkIC4uLi5dCiBCcmVha3BvaW50IDEsIGJyZWFrbWUgKCkgYXQgaGcwMV9hbGxfb2suYzoxMwogMTMJICAgaWYgKHNoYXJlZCA9PSAxKQogQ29udGludWluZy4KLVtOZXcgVGhyZWFkIC4uLi5dCiBCcmVha3BvaW50IDEsIGJyZWFrbWUgKCkgYXQgaGcwMV9hbGxfb2suYzoxMwogMTMJICAgaWYgKHNoYXJlZCA9PSAxKQogQ29udGludWluZy4KZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9oZ3Rscy5zdGRvdXRCLmV4cCBiL2dkYnNlcnZlcl90ZXN0cy9oZ3Rscy5zdGRvdXRCLmV4cAppbmRleCAxZmIzZjIwLi5lOGU2MjFiIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvaGd0bHMuc3Rkb3V0Qi5leHAKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL2hndGxzLnN0ZG91dEIuZXhwCkBAIC0xLDU4ICsxLDQ0IEBACiBCcmVha3BvaW50IDEgYXQgMHguLi4uLi4uLjogZmlsZSB0bHMuYywgbGluZSA1NS4KIENvbnRpbnVpbmcuCi1bTmV3IFRocmVhZCAuLi4uXQogQnJlYWtwb2ludCAxLCB0bHNfcHRyIChwPTB4Li4uLi4uLi4pIGF0IHRscy5jOjU1CiA1NQkJaW50IGhlcmUgPSAwOwogdGVzdCByYWNlIHRsc19pcCAweC4uLi4uLi4uIGlwIDB4Li4uLi4uLi4gZXF1YWwgMQotW05ldyBUaHJlYWQgLi4uLl0KIEJyZWFrcG9pbnQgMSwgdGxzX3B0ciAocD0weC4uLi4uLi4uKSBhdCB0bHMuYzo1NQogNTUJCWludCBoZXJlID0gMDsKIHRlc3QgcmFjZSB0bHNfaXAgMHguLi4uLi4uLiBpcCAweC4uLi4uLi4uIGVxdWFsIDEKLVtOZXcgVGhyZWFkIC4uLi5dCiBCcmVha3BvaW50IDEsIHRsc19wdHIgKHA9MHguLi4uLi4uLikgYXQgdGxzLmM6NTUKIDU1CQlpbnQgaGVyZSA9IDA7CiB0ZXN0IGxvY2FsIHRsc19pcCAweC4uLi4uLi4uIGlwIDB4Li4uLi4uLi4gZXF1YWwgMQotW05ldyBUaHJlYWQgLi4uLl0KIEJyZWFrcG9pbnQgMSwgdGxzX3B0ciAocD0weC4uLi4uLi4uKSBhdCB0bHMuYzo1NQogNTUJCWludCBoZXJlID0gMDsKIHRlc3QgbG9jYWwgdGxzX2lwIDB4Li4uLi4uLi4gaXAgMHguLi4uLi4uLiBlcXVhbCAxCi1bTmV3IFRocmVhZCAuLi4uXQogQnJlYWtwb2ludCAxLCB0bHNfcHRyIChwPTB4Li4uLi4uLi4pIGF0IHRscy5jOjU1CiA1NQkJaW50IGhlcmUgPSAwOwogdGVzdCBnbG9iYWwgdGxzX2lwIDB4Li4uLi4uLi4gaXAgMHguLi4uLi4uLiBlcXVhbCAxCi1bTmV3IFRocmVhZCAuLi4uXQogQnJlYWtwb2ludCAxLCB0bHNfcHRyIChwPTB4Li4uLi4uLi4pIGF0IHRscy5jOjU1CiA1NQkJaW50IGhlcmUgPSAwOwogdGVzdCBnbG9iYWwgdGxzX2lwIDB4Li4uLi4uLi4gaXAgMHguLi4uLi4uLiBlcXVhbCAxCi1bTmV3IFRocmVhZCAuLi4uXQogQnJlYWtwb2ludCAxLCB0bHNfcHRyIChwPTB4Li4uLi4uLi4pIGF0IHRscy5jOjU1CiA1NQkJaW50IGhlcmUgPSAwOwogdGVzdCBzdGF0aWNfZXh0ZXJuIHRsc19pcCAweC4uLi4uLi4uIGlwIDB4Li4uLi4uLi4gZXF1YWwgMQotW05ldyBUaHJlYWQgLi4uLl0KIEJyZWFrcG9pbnQgMSwgdGxzX3B0ciAocD0weC4uLi4uLi4uKSBhdCB0bHMuYzo1NQogNTUJCWludCBoZXJlID0gMDsKIHRlc3Qgc3RhdGljX2V4dGVybiB0bHNfaXAgMHguLi4uLi4uLiBpcCAweC4uLi4uLi4uIGVxdWFsIDEKLVtOZXcgVGhyZWFkIC4uLi5dCiBCcmVha3BvaW50IDEsIHRsc19wdHIgKHA9MHguLi4uLi4uLikgYXQgdGxzLmM6NTUKIDU1CQlpbnQgaGVyZSA9IDA7CiB0ZXN0IHNvX2V4dGVybiB0bHNfaXAgMHguLi4uLi4uLiBpcCAweC4uLi4uLi4uIGVxdWFsIDEKLVtOZXcgVGhyZWFkIC4uLi5dCiBCcmVha3BvaW50IDEsIHRsc19wdHIgKHA9MHguLi4uLi4uLikgYXQgdGxzLmM6NTUKIDU1CQlpbnQgaGVyZSA9IDA7CiB0ZXN0IHNvX2V4dGVybiB0bHNfaXAgMHguLi4uLi4uLiBpcCAweC4uLi4uLi4uIGVxdWFsIDEKLVtOZXcgVGhyZWFkIC4uLi5dCiBCcmVha3BvaW50IDEsIHRsc19wdHIgKHA9MHguLi4uLi4uLikgYXQgdGxzLmM6NTUKIDU1CQlpbnQgaGVyZSA9IDA7CiB0ZXN0IHNvX2xvY2FsIHRsc19pcCAweC4uLi4uLi4uIGlwIDB4Li4uLi4uLi4gZXF1YWwgMQotW05ldyBUaHJlYWQgLi4uLl0KIEJyZWFrcG9pbnQgMSwgdGxzX3B0ciAocD0weC4uLi4uLi4uKSBhdCB0bHMuYzo1NQogNTUJCWludCBoZXJlID0gMDsKIHRlc3Qgc29fbG9jYWwgdGxzX2lwIDB4Li4uLi4uLi4gaXAgMHguLi4uLi4uLiBlcXVhbCAxCi1bTmV3IFRocmVhZCAuLi4uXQogQnJlYWtwb2ludCAxLCB0bHNfcHRyIChwPTB4Li4uLi4uLi4pIGF0IHRscy5jOjU1CiA1NQkJaW50IGhlcmUgPSAwOwogdGVzdCBzb19nbG9iYWwgdGxzX2lwIDB4Li4uLi4uLi4gaXAgMHguLi4uLi4uLiBlcXVhbCAxCi1bTmV3IFRocmVhZCAuLi4uXQogQnJlYWtwb2ludCAxLCB0bHNfcHRyIChwPTB4Li4uLi4uLi4pIGF0IHRscy5jOjU1CiA1NQkJaW50IGhlcmUgPSAwOwogdGVzdCBzb19nbG9iYWwgdGxzX2lwIDB4Li4uLi4uLi4gaXAgMHguLi4uLi4uLiBlcXVhbCAxCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWFpbl9waWMuYyBiL2dkYnNlcnZlcl90ZXN0cy9tYWluX3BpYy5jCmluZGV4IGU0NTJiMzAuLjZkN2UzYmIgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9tYWluX3BpYy5jCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tYWluX3BpYy5jCkBAIC0xLDMgKzEsNCBAQAorI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KIAogc3RhdGljIHZvaWQgYW5vdGhlcl9mdW5jKGNoYXIgKm1zZykKQEAgLTcsOCArOCw4IEBACiAKIGludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotICAgcHJpbnRmKCJhZGRyZXNzIG9mIG1haW4gJXBcbiIsICZtYWluKTsKLSAgIHByaW50ZigiYWRkcmVzcyBvZiBhbm90aGVyX2Z1bmMgJXBcbiIsICZhbm90aGVyX2Z1bmMpOworICAgcHJpbnRmKCJhZGRyZXNzIG9mIG1haW4gJSMiIFBSSXhQVFIgIlxuIiwgKHVpbnRwdHJfdCkgbWFpbik7CisgICBwcmludGYoImFkZHJlc3Mgb2YgYW5vdGhlcl9mdW5jICUjIiBQUkl4UFRSICJcbiIsICh1aW50cHRyX3QpIGFub3RoZXJfZnVuYyk7CiAgICBhbm90aGVyX2Z1bmMoImNhbGxlZCBmcm9tIG1haW4iKTsKICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL21ha2VfbG9jYWxfbGlua3MgYi9nZGJzZXJ2ZXJfdGVzdHMvbWFrZV9sb2NhbF9saW5rcwppbmRleCBjYmRmZWY1Li4wMDE2MDlhIDEwMDc1NQotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWFrZV9sb2NhbF9saW5rcworKysgYi9nZGJzZXJ2ZXJfdGVzdHMvbWFrZV9sb2NhbF9saW5rcwpAQCAtOTUsNiArOTUsNyBAQAogZmkKIAogbG4gLWYgLXMgLi4vY29yZWdyaW5kL3ZnZGIgZ2Ric2VydmVyX3Rlc3RzL3ZnZGIKK2xuIC1mIC1zIC4uLy4uL2NvcmVncmluZC92Z2RiIGdkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL3ZnZGIKIAogIyBpZiBwdHJhY2Ugbm90IGltcGxlbWVudGVkIGluIHZnZGIgb3IgT1MgcmVzdHJpY3RzIHRoZSBpbml0aWFsIGF0dGFjaCwKICMgc29tZSB0ZXN0cyB3b3VsZCBibG9jayBmb3IgYSBsb29vb25ubm5nIHRpbWUuCkBAIC0xMDgsMyArMTA5LDQgQEAKIAogIyBjbGVhbnVwIHRoZSBwb3NzaWJseSBiaWcgZ2FyYmFnZSBwcmV2aW91c2x5IGNvbGxlY3RlZCBvdXRwdXQKIHJtIC1mIGdkYnNlcnZlcl90ZXN0cy9nYXJiYWdlLmZpbHRlcmVkLm91dAorcm0gLWYgZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvZ2FyYmFnZS5maWx0ZXJlZC5vdXQgCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWNicmVhay5zdGRpbkIuZ2RiIGIvZ2Ric2VydmVyX3Rlc3RzL21jYnJlYWsuc3RkaW5CLmdkYgppbmRleCA0ZjkzMmU2Li41NTZkYTllIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWNicmVhay5zdGRpbkIuZ2RiCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tY2JyZWFrLnN0ZGluQi5nZGIKQEAgLTE2LDggKzE2LDggQEAKIGVuZAogIwogIyBicmVhazEgYW5kIGJyZWFrMgotYnJlYWsgdC5jOjExMgotYnJlYWsgdC5jOjExNworYnJlYWsgdC5jOjExMworYnJlYWsgdC5jOjExOAogIwogY29udGludWUKICMgZmlyc3QgYnJlYWsgZW5jb3VudGVyZWQuCkBAIC01MSw5ICs1MSw5IEBACiBwcmludCB3aG9hbWkoImFmdGVyIG5leHQ6IGluZmVyaW9yIGNhbGwgcHVzaGVkIGZyb20gbWNicmVhay5zdGRpbkIuZ2RiIikKIGNvbnRpbnVlCiAjCi0jIGVuY291bnRlcmVkIHNlY29uZCBicmVhawotc3RlcAotZmluaXNoCisjIGVuY291bnRlcmVkIHNlY29uZCBicmVhay4gRW5zdXJlIHdlIHN0b3Agb24gbGluZSAxMjAgOiBpZiAoYXJnYyA+IDEpCiticmVhayAxMjAKK2NvbnRpbnVlCiAjIGRlbGV0ZSBhbGwgYnJlYWtzCiBkZWxldGUKIGNvbnRpbnVlCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWNicmVhay5zdGRvdXRCLmV4cCBiL2dkYnNlcnZlcl90ZXN0cy9tY2JyZWFrLnN0ZG91dEIuZXhwCmluZGV4IGUxMmQyZTQuLmJhNTI2ZGEgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9tY2JyZWFrLnN0ZG91dEIuZXhwCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tY2JyZWFrLnN0ZG91dEIuZXhwCkBAIC0xLDU0ICsxLDUzIEBACi1CcmVha3BvaW50IDEgYXQgMHguLi4uLi4uLjogZmlsZSB0LmMsIGxpbmUgMTEyLgotQnJlYWtwb2ludCAyIGF0IDB4Li4uLi4uLi46IGZpbGUgdC5jLCBsaW5lIDExNy4KK0JyZWFrcG9pbnQgMSBhdCAweC4uLi4uLi4uOiBmaWxlIHQuYywgbGluZSAxMTMuCitCcmVha3BvaW50IDIgYXQgMHguLi4uLi4uLjogZmlsZSB0LmMsIGxpbmUgMTE4LgogQ29udGludWluZy4KLUJyZWFrcG9pbnQgMSwgbWFpbiAoYXJnYz0xLCBhcmd2PTB4Li4uLi4uLi4pIGF0IHQuYzoxMTIKLTExMgkgIGJyZWFrbWUoX19MSU5FX18pOyAvL2JyZWFrMQotYnJlYWttZSAobGluZT0xMTIpIGF0IHQuYzoxMDAKLTEwMAkgICBpZiAobGluZSA+IDEwMDApCitCcmVha3BvaW50IDEsIG1haW4gKGFyZ2M9MSwgYXJndj0weC4uLi4uLi4uKSBhdCB0LmM6MTEzCisxMTMJICBicmVha21lKF9fTElORV9fKTsgLy9icmVhazEKK2JyZWFrbWUgKGxpbmU9MTEzKSBhdCB0LmM6MTAxCisxMDEJICAgaWYgKGxpbmUgPiAxMDAwKQogb2xkX3BjIGhhcyBjaGFuZ2VkIGFmdGVyIHN0ZXAKLTEwMgl9CisxMDMJfQogb2xkX3BjIGhhcyBjaGFuZ2VkIGFmdGVyIHN0ZXAKLW1haW4gKGFyZ2M9MSwgYXJndj0weC4uLi4uLi4uKSBhdCB0LmM6MTEzCi0xMTMJICBmb3IgKGkgPSBsZW4tMTsgaSA+PSAwOyBpPWktMikKK21haW4gKGFyZ2M9MSwgYXJndj0weC4uLi4uLi4uKSBhdCB0LmM6MTE0CisxMTQJICBmb3IgKGkgPSBsZW4tMTsgaSA+PSAwOyBpPWktMikKIG9sZF9wYyBoYXMgY2hhbmdlZCBhZnRlciBzdGVwCi0xMTQJICAgICB1bmRlZmluZWRbaV0gPSB1bmRlZjsKKzExNQkgICAgIHVuZGVmaW5lZFtpXSA9IHVuZGVmOwogJDEgPSB2b2lkCiAkMiA9ICJ1bmRlZmluZWQiCiAkMyA9IDgKLTExMwkgIGZvciAoaSA9IGxlbi0xOyBpID49IDA7IGk9aS0yKQorMTE0CSAgZm9yIChpID0gbGVuLTE7IGkgPj0gMDsgaT1pLTIpCiBvbGRfcGMgaGFzIGNoYW5nZWQgYWZ0ZXIgc3RlcAotMTE0CSAgICAgdW5kZWZpbmVkW2ldID0gdW5kZWY7CisxMTUJICAgICB1bmRlZmluZWRbaV0gPSB1bmRlZjsKIG9sZF9wYyBoYXMgY2hhbmdlZCBhZnRlciBzdGVwCi0xMTMJICBmb3IgKGkgPSBsZW4tMTsgaSA+PSAwOyBpPWktMikKKzExNAkgIGZvciAoaSA9IGxlbi0xOyBpID49IDA7IGk9aS0yKQogJDQgPSB2b2lkCiAkNSA9ICJ1bmRlZmk/ZT8iCiAkNiA9IDYKLTExNAkgICAgIHVuZGVmaW5lZFtpXSA9IHVuZGVmOworMTE1CSAgICAgdW5kZWZpbmVkW2ldID0gdW5kZWY7CiAkNyA9IHZvaWQKICQ4ID0gInVuZGVmaT9lPyIKICQ5ID0gNAotMTEzCSAgZm9yIChpID0gbGVuLTE7IGkgPj0gMDsgaT1pLTIpCisxMTQJICBmb3IgKGkgPSBsZW4tMTsgaSA+PSAwOyBpPWktMikKICQxMCA9IHZvaWQKICQxMSA9ICJ1bmRlP2k/ZT8iCiAkMTIgPSA0CiAkMTMgPSAxCiAkMTQgPSB2b2lkCiBDb250aW51aW5nLgotQnJlYWtwb2ludCAyLCBtYWluIChhcmdjPTEsIGFyZ3Y9MHguLi4uLi4uLikgYXQgdC5jOjExNwotMTE3CSAgYnJlYWttZShfX0xJTkVfXyk7IC8vYnJlYWsyCi1icmVha21lIChsaW5lPTExNykgYXQgdC5jOjEwMAotMTAwCSAgIGlmIChsaW5lID4gMTAwMCkKLVJ1biB0aWxsIGV4aXQgZnJvbSAjMCAgYnJlYWttZSAobGluZT0xMTcpIGF0IHQuYzoxMDAKLW1haW4gKGFyZ2M9MSwgYXJndj0weC4uLi4uLi4uKSBhdCB0LmM6MTE5Ci0xMTkJICBpZiAoYXJnYyA+IDEpCitCcmVha3BvaW50IDIsIG1haW4gKGFyZ2M9MSwgYXJndj0weC4uLi4uLi4uKSBhdCB0LmM6MTE4CisxMTgJICBicmVha21lKF9fTElORV9fKTsgLy9icmVhazIKK0JyZWFrcG9pbnQgMyBhdCAweC4uLi4uLi4uOiBmaWxlIHQuYywgbGluZSAxMjAuCitDb250aW51aW5nLgorQnJlYWtwb2ludCAzLCBtYWluIChhcmdjPTEsIGFyZ3Y9MHguLi4uLi4uLikgYXQgdC5jOjEyMAorMTIwCSAgaWYgKGFyZ2MgPiAxKQogRGVsZXRlIGFsbCBicmVha3BvaW50cz8gKHkgb3IgbikgW2Fuc3dlcmVkIFk7IGlucHV0IG5vdCBmcm9tIHRlcm1pbmFsXQogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1RSQVAsIFRyYWNlL2JyZWFrcG9pbnQgdHJhcC4KLTB4Li4uLi4uLi4gaW4gbWFrZV9lcnJvciAocz0weC4uLi4uLi4uICJjYWxsZWQgZnJvbSBsZXZlbCIpIGF0IHQuYzo0MAotNDAJICBpZiAoaW50X3VuZCA9PSAwKQotNDMJICAgICBwcmludGYgKCIlcyBpbnRfdW5kIGlzIG5vdCB6ZXJvXG4iLCBzKTsKKzB4Li4uLi4uLi4gaW4gbWFrZV9lcnJvciAocz0weC4uLi4uLi4uICJjYWxsZWQgZnJvbSBsZXZlbCIpIGF0IHQuYzo0MQorNDEJICBpZiAoaW50X3VuZCA9PSAwKQorNDQJICAgICBwcmludGYgKCIlcyBpbnRfdW5kIGlzIG5vdCB6ZXJvXG4iLCBzKTsKIG9sZF9wYyBoYXMgY2hhbmdlZCBhZnRlciBzdGVwCiBDb250aW51aW5nLgogUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHVFJBUCwgVHJhY2UvYnJlYWtwb2ludCB0cmFwLgotMHguLi4uLi4uLiBpbiBtYWtlX2Vycm9yIChzPTB4Li4uLi4uLi4gImNhbGxlZCBmcm9tIG1haW4iKSBhdCB0LmM6NDAKLTQwCSAgaWYgKGludF91bmQgPT0gMCkKKzB4Li4uLi4uLi4gaW4gbWFrZV9lcnJvciAocz0weC4uLi4uLi4uICJjYWxsZWQgZnJvbSBtYWluIikgYXQgdC5jOjQxCis0MQkgIGlmIChpbnRfdW5kID09IDApCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWNoZWxwLnN0ZG91dEIuZXhwIGIvZ2Ric2VydmVyX3Rlc3RzL21jaGVscC5zdGRvdXRCLmV4cAppbmRleCBkM2M2MWExLi42ZDZiZGIxIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWNoZWxwLnN0ZG91dEIuZXhwCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tY2hlbHAuc3Rkb3V0Qi5leHAKQEAgLTEzLDEwICsxMywxNCBAQAogICB2LnNldCBtZXJnZS1yZWN1cnNpdmUtZnJhbWVzIDxudW0+IDogbWVyZ2UgcmVjdXJzaXZlIGNhbGxzIGluIG1heCA8bnVtPiBmcmFtZXMKICAgdi5zZXQgdmdkYi1lcnJvciA8ZXJyb3Jucj4gOiBkZWJ1ZyBtZSBhdCBlcnJvciA+PSA8ZXJyb3Jucj4gCiBtZW1jaGVjayBtb25pdG9yIGNvbW1hbmRzOgotICBnZXRfdmJpdHMgPGFkZHI+IFs8bGVuPl0KLSAgICAgICAgcmV0dXJucyB2YWxpZGl0eSBiaXRzIGZvciA8bGVuPiAob3IgMSkgYnl0ZXMgYXQgPGFkZHI+CisgIHhiIDxhZGRyPiBbPGxlbj5dCisgICAgICAgIHByaW50cyB2YWxpZGl0eSBiaXRzIGZvciA8bGVuPiAob3IgMSkgYnl0ZXMgYXQgPGFkZHI+CiAgICAgICAgICAgICBiaXQgdmFsdWVzIDAgPSB2YWxpZCwgMSA9IGludmFsaWQsIF9fID0gdW5hZGRyZXNzYWJsZSBieXRlCi0gICAgICAgIEV4YW1wbGU6IGdldF92Yml0cyAweC4uLi4uLi4uIDEwCisgICAgICAgIFRoZW4gcHJpbnRzIHRoZSBieXRlcyB2YWx1ZXMgYmVsb3cgdGhlIGNvcnJlc3BvbmRpbmcgdmFsaWRpdHkgYml0cworICAgICAgICBpbiBhIGxheW91dCBzaW1pbGFyIHRvIHRoZSBnZGIgY29tbWFuZCAneCAvPGxlbj54YiA8YWRkcj4nCisgICAgICAgIEV4YW1wbGU6IHhiIDB4Li4uLi4uLi4gMTAKKyAgZ2V0X3ZiaXRzIDxhZGRyPiBbPGxlbj5dCisgICAgICAgIFNpbWlsYXIgdG8geGIsIGJ1dCBvbmx5IHByaW50cyB0aGUgdmFsaWRpdHkgYnl0ZXMgYnkgZ3JvdXAgb2YgNC4KICAgbWFrZV9tZW1vcnkgW25vYWNjZXNzfHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgfGRlZmluZWR8RGVmaW5lZGlmYWRkcmVzc2FibGVdIDxhZGRyPiBbPGxlbj5dCiAgICAgICAgIG1hcmsgPGxlbj4gKG9yIDEpIGJ5dGVzIGF0IDxhZGRyPiB3aXRoIHRoZSBnaXZlbiBhY2Nlc3NpYmlsaXR5CkBAIC0zNyw4ICs0MSwxMyBAQAogICAgICAgICAgICAgICAgICBsZWFrX2NoZWNrIHN1bW1hcnkgYW55CiAgICAgICAgICAgICAgICAgIGxlYWtfY2hlY2sgZnVsbCBraW5kcyBpbmRpcmVjdCxwb3NzaWJsZQogICAgICAgICAgICAgICAgICBsZWFrX2NoZWNrIGZ1bGwgcmVhY2hhYmxlIGFueSBsaW1pdGVkIDEwMAotICBibG9ja19saXN0IDxsb3NzX3JlY29yZF9ucj4KKyAgYmxvY2tfbGlzdCA8bG9zc19yZWNvcmRfbnI+fDxsb3NzX3JlY29yZF9ucl9mcm9tPi4uPGxvc3NfcmVjb3JkX25yX3RvPgorICAgICAgICAgICAgICAgIFt1bmxpbWl0ZWQqfGxpbWl0ZWQgPG1heF9ibG9ja3M+XQorICAgICAgICAgICAgICAgIFtoZXVyaXN0aWNzIGhldXIxLGhldXIyLC4uLl0KICAgICAgICAgYWZ0ZXIgYSBsZWFrIHNlYXJjaCwgc2hvd3MgdGhlIGxpc3Qgb2YgYmxvY2tzIG9mIDxsb3NzX3JlY29yZF9ucj4KKyAgICAgICAgKG9yIG9mIHRoZSByYW5nZSA8bG9zc19yZWNvcmRfbnJfZnJvbT4uLjxsb3NzX3JlY29yZF9ucl90bz4pLgorICAgICAgICBXaXRoIGhldXJpc3RpY3MsIG9ubHkgc2hvd3MgdGhlIGJsb2NrcyBmb3VuZCB2aWEgaGV1cjEsaGV1cjIsLi4uCisgICAgICAgICAgICAqID0gZGVmYXVsdHMKICAgd2hvX3BvaW50c19hdCA8YWRkcj4gWzxsZW4+XQogICAgICAgICBzaG93cyBwbGFjZXMgcG9pbnRpbmcgaW5zaWRlIDxsZW4+IChkZWZhdWx0IDEpIGJ5dGVzIGF0IDxhZGRyPgogICAgICAgICAod2l0aCBsZW4gMSwgb25seSBzaG93cyAic3RhcnQgcG9pbnRlcnMiIHBvaW50aW5nIGV4YWN0bHkgdG8gPGFkZHI+LApAQCAtNjEsMTAgKzcwLDExIEBACiAgIHYuZG8gICBleHBlbnNpdmVfc2FuaXR5X2NoZWNrX2dlbmVyYWwgOiBkbyBhbiBleHBlbnNpdmUgc2FuaXR5IGNoZWNrIG5vdwogICB2LmluZm8gZ2Ric2VydmVyX3N0YXR1cyA6IHNob3cgZ2Ric2VydmVyIHN0YXR1cwogICB2LmluZm8gbWVtb3J5IFthc3BhY2VtZ3JdIDogc2hvdyB2YWxncmluZCBoZWFwIG1lbW9yeSBzdGF0cwotICAgICAod2l0aCBhc3BhY2VtZ3IgYXJnLCBhbHNvIHNob3dzIHZhbGdyaW5kIHNlZ21lbnRzIG9uIGxvZyBvdXB1dCkKKyAgICAgKHdpdGggYXNwYWNlbWdyIGFyZywgYWxzbyBzaG93cyB2YWxncmluZCBzZWdtZW50cyBvbiBsb2cgb3V0cHV0KQogICB2LmluZm8gZXhlY3R4dCAgICAgICAgICA6IHNob3cgc3RhY2t0cmFjZXMgYW5kIHN0YXRzIG9mIGFsbCBleGVjb250ZXh0cwogICB2LmluZm8gc2NoZWR1bGVyICAgICAgICA6IHNob3cgdmFsZ3JpbmQgdGhyZWFkIHN0YXRlIGFuZCBzdGFja3RyYWNlCiAgIHYuaW5mbyBzdGF0cyAgICAgICAgICAgIDogc2hvdyB2YXJpb3VzIHZhbGdyaW5kIGFuZCB0b29sIHN0YXRzCisgIHYuaW5mbyB1bndpbmQgPGFkZHI+IFs8bGVuPl0gOiBzaG93IHVud2luZCBkZWJ1ZyBpbmZvIGZvciA8YWRkcj4gLi4gPGFkZHIrbGVuPgogICB2LnNldCBkZWJ1Z2xvZyA8bGV2ZWw+ICA6IHNldCB2YWxncmluZCBkZWJ1ZyBsb2cgbGV2ZWwgdG8gPGxldmVsPgogICB2LnNldCBob3N0dmlzaWJpbGl0eSBbeWVzKnxub10gOiAoZW4vZGlzKWFibGVzIGFjY2VzcyBieSBnZGIvZ2Ric2VydmVyIHRvCiAgICAgVmFsZ3JpbmQgaW50ZXJuYWwgaG9zdCBzdGF0dXMvbWVtb3J5CkBAIC03MiwxMCArODIsMTQgQEAKICAgICAoZGVmYXVsdCB0cmFjZWZsYWdzIDBiMDAxMDAwMDAgOiBzaG93IGFmdGVyIGluc3RydW1lbnRhdGlvbikKICAgIEFuIGFkZGl0aW9uYWwgZmxhZyAgMGIxMDAwMDAwMDAgYWxsb3dzIHRvIHNob3cgZ2Ric2VydmVyIGluc3RydW1lbnRhdGlvbgogbWVtY2hlY2sgbW9uaXRvciBjb21tYW5kczoKLSAgZ2V0X3ZiaXRzIDxhZGRyPiBbPGxlbj5dCi0gICAgICAgIHJldHVybnMgdmFsaWRpdHkgYml0cyBmb3IgPGxlbj4gKG9yIDEpIGJ5dGVzIGF0IDxhZGRyPgorICB4YiA8YWRkcj4gWzxsZW4+XQorICAgICAgICBwcmludHMgdmFsaWRpdHkgYml0cyBmb3IgPGxlbj4gKG9yIDEpIGJ5dGVzIGF0IDxhZGRyPgogICAgICAgICAgICAgYml0IHZhbHVlcyAwID0gdmFsaWQsIDEgPSBpbnZhbGlkLCBfXyA9IHVuYWRkcmVzc2FibGUgYnl0ZQotICAgICAgICBFeGFtcGxlOiBnZXRfdmJpdHMgMHguLi4uLi4uLiAxMAorICAgICAgICBUaGVuIHByaW50cyB0aGUgYnl0ZXMgdmFsdWVzIGJlbG93IHRoZSBjb3JyZXNwb25kaW5nIHZhbGlkaXR5IGJpdHMKKyAgICAgICAgaW4gYSBsYXlvdXQgc2ltaWxhciB0byB0aGUgZ2RiIGNvbW1hbmQgJ3ggLzxsZW4+eGIgPGFkZHI+JworICAgICAgICBFeGFtcGxlOiB4YiAweC4uLi4uLi4uIDEwCisgIGdldF92Yml0cyA8YWRkcj4gWzxsZW4+XQorICAgICAgICBTaW1pbGFyIHRvIHhiLCBidXQgb25seSBwcmludHMgdGhlIHZhbGlkaXR5IGJ5dGVzIGJ5IGdyb3VwIG9mIDQuCiAgIG1ha2VfbWVtb3J5IFtub2FjY2Vzc3x1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgIHxkZWZpbmVkfERlZmluZWRpZmFkZHJlc3NhYmxlXSA8YWRkcj4gWzxsZW4+XQogICAgICAgICBtYXJrIDxsZW4+IChvciAxKSBieXRlcyBhdCA8YWRkcj4gd2l0aCB0aGUgZ2l2ZW4gYWNjZXNzaWJpbGl0eQpAQCAtOTYsOCArMTEwLDEzIEBACiAgICAgICAgICAgICAgICAgIGxlYWtfY2hlY2sgc3VtbWFyeSBhbnkKICAgICAgICAgICAgICAgICAgbGVha19jaGVjayBmdWxsIGtpbmRzIGluZGlyZWN0LHBvc3NpYmxlCiAgICAgICAgICAgICAgICAgIGxlYWtfY2hlY2sgZnVsbCByZWFjaGFibGUgYW55IGxpbWl0ZWQgMTAwCi0gIGJsb2NrX2xpc3QgPGxvc3NfcmVjb3JkX25yPgorICBibG9ja19saXN0IDxsb3NzX3JlY29yZF9ucj58PGxvc3NfcmVjb3JkX25yX2Zyb20+Li48bG9zc19yZWNvcmRfbnJfdG8+CisgICAgICAgICAgICAgICAgW3VubGltaXRlZCp8bGltaXRlZCA8bWF4X2Jsb2Nrcz5dCisgICAgICAgICAgICAgICAgW2hldXJpc3RpY3MgaGV1cjEsaGV1cjIsLi4uXQogICAgICAgICBhZnRlciBhIGxlYWsgc2VhcmNoLCBzaG93cyB0aGUgbGlzdCBvZiBibG9ja3Mgb2YgPGxvc3NfcmVjb3JkX25yPgorICAgICAgICAob3Igb2YgdGhlIHJhbmdlIDxsb3NzX3JlY29yZF9ucl9mcm9tPi4uPGxvc3NfcmVjb3JkX25yX3RvPikuCisgICAgICAgIFdpdGggaGV1cmlzdGljcywgb25seSBzaG93cyB0aGUgYmxvY2tzIGZvdW5kIHZpYSBoZXVyMSxoZXVyMiwuLi4KKyAgICAgICAgICAgICogPSBkZWZhdWx0cwogICB3aG9fcG9pbnRzX2F0IDxhZGRyPiBbPGxlbj5dCiAgICAgICAgIHNob3dzIHBsYWNlcyBwb2ludGluZyBpbnNpZGUgPGxlbj4gKGRlZmF1bHQgMSkgYnl0ZXMgYXQgPGFkZHI+CiAgICAgICAgICh3aXRoIGxlbiAxLCBvbmx5IHNob3dzICJzdGFydCBwb2ludGVycyIgcG9pbnRpbmcgZXhhY3RseSB0byA8YWRkcj4sCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWNpbmZjYWxsUlUudmd0ZXN0IGIvZ2Ric2VydmVyX3Rlc3RzL21jaW5mY2FsbFJVLnZndGVzdAppbmRleCBhMTkzYWNmLi4wYzdiMDc5IDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWNpbmZjYWxsUlUudmd0ZXN0CisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tY2luZmNhbGxSVS52Z3Rlc3QKQEAgLTcsNyArNyw3IEBACiAjIGZpbHRlcl9nZGIgdG8gcmVwbGFjZSBwaWQgYW5kIFRocmVhZCBudW1iZXJzIGluIHRoZSBvdXRwdXQgb2YgdGhlIHByb2dyYW06CiBzdGRlcnJfZmlsdGVyOiBmaWx0ZXJfZ2RiCiAjIERpc2FibGUgb24gRGFyd2luOiBpbmZlcmlvciBjYWxsIHJlamVjdGVkIGFzIGl0IGNhbm5vdCBmaW5kIG1hbGxvYy4KLXByZXJlcTogdGVzdCAtZSBnZGIgJiYgLi4vdGVzdHMvb3NfdGVzdCBsaW51eAorcHJlcmVxOiB0ZXN0IC1lIGdkYiAmJiAhIC4uL3Rlc3RzL29zX3Rlc3QgZGFyd2luCiBwcm9nQjogZ2RiCiBhcmdzQjogIC0tcXVpZXQgLWwgNjAgLS1ueCAuL3NsZWVwZXJzCiBzdGRpbkI6IG1jaW5mY2FsbFJVLnN0ZGluQi5nZGIKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9tY2luZmNhbGxXU1JVLnN0ZGVyckIuZXhwIGIvZ2Ric2VydmVyX3Rlc3RzL21jaW5mY2FsbFdTUlUuc3RkZXJyQi5leHAKaW5kZXggNTcxMDU0NS4uNzc4OTEyMyAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyX3Rlc3RzL21jaW5mY2FsbFdTUlUuc3RkZXJyQi5leHAKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL21jaW5mY2FsbFdTUlUuc3RkZXJyQi5leHAKQEAgLTEsMjggKzEsMjUgQEAKIHJlbGF5aW5nIGRhdGEgYmV0d2VlbiBnZGIgYW5kIHByb2Nlc3MgLi4uLgogdmdkYi1lcnJvciB2YWx1ZSBjaGFuZ2VkIGZyb20gMCB0byA5OTk5OTkKLUJyZWFrcG9pbnQgMSBhdCAweC4uLi4uLi4uOiBmaWxlIHNsZWVwZXJzLmMsIGxpbmUgNzIuCitCcmVha3BvaW50IDEgYXQgMHguLi4uLi4uLjogZmlsZSBzbGVlcGVycy5jLCBsaW5lIDc0LgogQ29udGludWluZy4KLVtOZXcgVGhyZWFkIC4uLi5dCi1CcmVha3BvaW50IDEsIHNsZWVwZXJfb3JfYnVybmVyICh2PTB4Li4uLi4uLi4pIGF0IHNsZWVwZXJzLmM6NzIKLTcyCSAgIGludCBpID0gMDsKK0JyZWFrcG9pbnQgMSwgc2xlZXBlcl9vcl9idXJuZXIgKHY9MHguLi4uLi4uLikgYXQgc2xlZXBlcnMuYzo3NAorNzQJICAgaW50IGkgPSAwOwogQ29udGludWluZy4KLVtOZXcgVGhyZWFkIC4uLi5dCi1CcmVha3BvaW50IDEsIHNsZWVwZXJfb3JfYnVybmVyICh2PTB4Li4uLi4uLi4pIGF0IHNsZWVwZXJzLmM6NzIKLTcyCSAgIGludCBpID0gMDsKK0JyZWFrcG9pbnQgMSwgc2xlZXBlcl9vcl9idXJuZXIgKHY9MHguLi4uLi4uLikgYXQgc2xlZXBlcnMuYzo3NAorNzQJICAgaW50IGkgPSAwOwogQ29udGludWluZy4KLVtOZXcgVGhyZWFkIC4uLi5dCi1CcmVha3BvaW50IDEsIHNsZWVwZXJfb3JfYnVybmVyICh2PTB4Li4uLi4uLi4pIGF0IHNsZWVwZXJzLmM6NzIKLTcyCSAgIGludCBpID0gMDsKK0JyZWFrcG9pbnQgMSwgc2xlZXBlcl9vcl9idXJuZXIgKHY9MHguLi4uLi4uLikgYXQgc2xlZXBlcnMuYzo3NAorNzQJICAgaW50IGkgPSAwOwogQ29udGludWluZy4KLUJyZWFrcG9pbnQgMSwgc2xlZXBlcl9vcl9idXJuZXIgKHY9MHguLi4uLi4uLikgYXQgc2xlZXBlcnMuYzo3MgotNzIJICAgaW50IGkgPSAwOworQnJlYWtwb2ludCAxLCBzbGVlcGVyX29yX2J1cm5lciAodj0weC4uLi4uLi4uKSBhdCBzbGVlcGVycy5jOjc0Cis3NAkgICBpbnQgaSA9IDA7CiBDb250aW51aW5nLgogUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHVFJBUCwgVHJhY2UvYnJlYWtwb2ludCB0cmFwLgotMHguLi4uLi4uLiBpbiBkb19idXJuICgpIGF0IHNsZWVwZXJzLmM6MzkKLTM5CSAgIGZvciAoaSA9IDA7IGkgPCBidXJuOyBpKyspIGxvb3BucisrOworMHguLi4uLi4uLiBpbiBkb19idXJuICgpIGF0IHNsZWVwZXJzLmM6NDEKKzQxCSAgIGZvciAoaSA9IDA7IGkgPCBidXJuOyBpKyspIGxvb3BucisrOwogW1N3aXRjaGluZyB0byB0aHJlYWQgMSAoVGhyZWFkIC4uLi4pXQogIzAgIDB4Li4uLi4uLi4gaW4gZG9fYnVybiAoKQotMzkJICAgZm9yIChpID0gMDsgaSA8IGJ1cm47IGkrKykgbG9vcG5yKys7Cis0MQkgICBmb3IgKGkgPSAwOyBpIDwgYnVybjsgaSsrKSBsb29wbnIrKzsKICQxID0gdm9pZAogW1N3aXRjaGluZyB0byB0aHJlYWQgMiAoVGhyZWFkIC4uLi4pXQogIzAgIDB4Li4uLi4uLi4gaW4gc3lzY2FsbCAuLi4KZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9tY2luZmNhbGxXU1JVLnZndGVzdCBiL2dkYnNlcnZlcl90ZXN0cy9tY2luZmNhbGxXU1JVLnZndGVzdAppbmRleCBmOWMxOTgzLi5mZDM5MjJmIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWNpbmZjYWxsV1NSVS52Z3Rlc3QKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL21jaW5mY2FsbFdTUlUudmd0ZXN0CkBAIC03LDcgKzcsNyBAQAogdmdvcHRzOiAtLXRvb2w9bWVtY2hlY2sgLS12Z2RiPXllcyAtLXZnZGItZXJyb3I9MCAtLXZnZGItcHJlZml4PS4vdmdkYi1wcmVmaXgtbWNpbmZjYWxsV1NSVQogIyBXZSBuZWVkIGEgbm9uIGJ1Z2d5IGdkYi5zdGVwIG9uIGFybSB0aHVtYi4KICMgRGlzYWJsZSBvbiBEYXJ3aW46IGluZmVyaW9yIGNhbGwgcmVqZWN0ZWQgYXMgaXQgY2Fubm90IGZpbmQgbWFsbG9jLgotcHJlcmVxOiB0ZXN0IC1lIGdkYiAtYSAtZiBnZGIuc3RlcCAmJiAuLi90ZXN0cy9vc190ZXN0IGxpbnV4CitwcmVyZXE6IHRlc3QgLWUgZ2RiIC1hIC1mIGdkYi5zdGVwICYmICEgLi4vdGVzdHMvb3NfdGVzdCBkYXJ3aW4KICMgZmlsdGVyX2dkYiB0byByZXBsYWNlIHBpZCBhbmQgVGhyZWFkIG51bWJlcnMgaW4gdGhlIG91dHB1dCBvZiB0aGUgcHJvZ3JhbToKIHN0ZGVycl9maWx0ZXI6IGZpbHRlcl9nZGIKIHByb2dCOiBnZGIKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9tY21haW5fcGljLnN0ZGVyci5leHAtc29sYXJpcyBiL2dkYnNlcnZlcl90ZXN0cy9tY21haW5fcGljLnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDE2MzkzCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL21jbWFpbl9waWMuc3RkZXJyLmV4cC1zb2xhcmlzCkBAIC0wLDAgKzEsNyBAQAorKGFjdGlvbiBhdCBzdGFydHVwKSB2Z2RiIG1lIC4uLiAKK0hFQVAgU1VNTUFSWToKKyAgICBpbiB1c2UgYXQgZXhpdDogMTMxLDA4MCBieXRlcyBpbiAxIGJsb2NrcworICB0b3RhbCBoZWFwIHVzYWdlOiAxIGFsbG9jcywgMCBmcmVlcywgMTMxLDA4MCBieXRlcyBhbGxvY2F0ZWQKK0ZvciBhIGRldGFpbGVkIGxlYWsgYW5hbHlzaXMsIHJlcnVuIHdpdGg6IC0tbGVhay1jaGVjaz1mdWxsCitGb3IgY291bnRzIG9mIGRldGVjdGVkIGFuZCBzdXBwcmVzc2VkIGVycm9ycywgcmVydW4gd2l0aDogLXYKK0VSUk9SIFNVTU1BUlk6IDAgZXJyb3JzIGZyb20gMCBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWNtYWluX3BpYy5zdGRpbkIuZ2RiIGIvZ2Ric2VydmVyX3Rlc3RzL21jbWFpbl9waWMuc3RkaW5CLmdkYgppbmRleCA0NmUxOWY5Li44ZWMwYTZmIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWNtYWluX3BpYy5zdGRpbkIuZ2RiCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tY21haW5fcGljLnN0ZGluQi5nZGIKQEAgLTQsNyArNCw3IEBACiBtb25pdG9yIHYuc2V0IHZnZGItZXJyb3IgOTk5OTk5CiAjCiAjIGJyZWFrCi1icmVhayBtYWluX3BpYy5jOjExCiticmVhayBtYWluX3BpYy5jOjEyCiAjCiBjb250aW51ZQogIyBmaXJzdCBicmVhayBlbmNvdW50ZXJlZC4KZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9tY21haW5fcGljLnN0ZG91dEIuZXhwIGIvZ2Ric2VydmVyX3Rlc3RzL21jbWFpbl9waWMuc3Rkb3V0Qi5leHAKaW5kZXggZmZhYzczNy4uZTBhNDZjNSAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyX3Rlc3RzL21jbWFpbl9waWMuc3Rkb3V0Qi5leHAKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL21jbWFpbl9waWMuc3Rkb3V0Qi5leHAKQEAgLTEsNyArMSw3IEBACi1CcmVha3BvaW50IDEgYXQgMHguLi4uLi4uLjogZmlsZSBtYWluX3BpYy5jLCBsaW5lIDExLgorQnJlYWtwb2ludCAxIGF0IDB4Li4uLi4uLi46IGZpbGUgbWFpbl9waWMuYywgbGluZSAxMi4KIENvbnRpbnVpbmcuCi1CcmVha3BvaW50IDEsIG1haW4gKGFyZ2M9MSwgYXJndj0weC4uLi4uLi4uKSBhdCBtYWluX3BpYy5jOjExCi0xMQkgICBwcmludGYoImFkZHJlc3Mgb2YgYW5vdGhlcl9mdW5jICVwXG4iLCAmYW5vdGhlcl9mdW5jKTsKK0JyZWFrcG9pbnQgMSwgbWFpbiAoYXJnYz0xLCBhcmd2PTB4Li4uLi4uLi4pIGF0IG1haW5fcGljLmM6MTIKKzEyCSAgIHByaW50ZigiYWRkcmVzcyBvZiBhbm90aGVyX2Z1bmMgJSMiIFBSSXhQVFIgIlxuIiwgKHVpbnRwdHJfdCkgYW5vdGhlcl9mdW5jKTsKICQxID0gdm9pZAogJDIgPSAoaW50ICgqKShpbnQsIGNoYXIgKiopKSAweC4uLi4uLi4uIDxtYWluPgogJDMgPSAodm9pZCAoKikoY2hhciAqKSkgMHguLi4uLi4uLiA8YW5vdGhlcl9mdW5jPgpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL21jc2lnbm9wYXNzLnN0ZGVyci5leHAgYi9nZGJzZXJ2ZXJfdGVzdHMvbWNzaWdub3Bhc3Muc3RkZXJyLmV4cAppbmRleCAzNzA4ZmZiLi43YjBhODBlIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWNzaWdub3Bhc3Muc3RkZXJyLmV4cAorKysgYi9nZGJzZXJ2ZXJfdGVzdHMvbWNzaWdub3Bhc3Muc3RkZXJyLmV4cApAQCAtMSw3ICsxLDcgQEAKIChhY3Rpb24gYXQgc3RhcnR1cCkgdmdkYiBtZSAuLi4gCiBUZXN0IDE6IEludmFsaWQgd3JpdGUgb2Ygc2l6ZSA0Ci0gICBhdCAweC4uLi4uLi4uOiB0ZXN0MSAoZmF1bHRzdGF0dXMuYzoxMDUpCi0gICBieSAweC4uLi4uLi4uOiBtYWluIChmYXVsdHN0YXR1cy5jOjE2OCkKKyAgIGF0IDB4Li4uLi4uLi46IHRlc3QxIChmYXVsdHN0YXR1cy5jOjExNikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGZhdWx0c3RhdHVzLmM6MTc5KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKICAgUEFTUwogVGVzdCAyOiAgIFBBU1MKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9tY3NpZ25vcGFzcy5zdGRvdXRCLmV4cCBiL2dkYnNlcnZlcl90ZXN0cy9tY3NpZ25vcGFzcy5zdGRvdXRCLmV4cAppbmRleCBlMzQ5OTQxLi5kNzdmOTgzIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWNzaWdub3Bhc3Muc3Rkb3V0Qi5leHAKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL21jc2lnbm9wYXNzLnN0ZG91dEIuZXhwCkBAIC02LDU0ICs2LDU0IEBACiBTSUdGUEUgICAgICAgIFllcwlZZXMJWWVzCQlBcml0aG1ldGljIGV4Y2VwdGlvbgogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogU2lnbmFsICAgICAgICBTdG9wCVByaW50CVBhc3MgdG8gcHJvZ3JhbQlEZXNjcmlwdGlvbgogU0lHU0VHViAgICAgICBObwlZZXMJWWVzCQlTZWdtZW50YXRpb24gZmF1bHQKIENvbnRpbnVpbmcuCiBQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdTRUdWLCBTZWdtZW50YXRpb24gZmF1bHQuCiBQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdCVVMsIEJ1cyBlcnJvci4KLTB4Li4uLi4uLi4gaW4gdGVzdDMgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMTUKLTExNQkJbWFwcGluZ1tGSUxFU0laRSsxMF07CisweC4uLi4uLi4uIGluIHRlc3QzICgpIGF0IGZhdWx0c3RhdHVzLmM6MTI2CisxMjYJCW1hcHBpbmdbRklMRVNJWkUrMTBdOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR0ZQRSwgQXJpdGhtZXRpYyBleGNlcHRpb24uCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWNzaWdwYXNzLnN0ZGVyci5leHAgYi9nZGJzZXJ2ZXJfdGVzdHMvbWNzaWdwYXNzLnN0ZGVyci5leHAKaW5kZXggODA2NTliOC4uYmQ2N2E3ZSAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyX3Rlc3RzL21jc2lncGFzcy5zdGRlcnIuZXhwCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tY3NpZ3Bhc3Muc3RkZXJyLmV4cApAQCAtMSw3ICsxLDcgQEAKIChhY3Rpb24gYXQgc3RhcnR1cCkgdmdkYiBtZSAuLi4gCiBUZXN0IDE6IEludmFsaWQgd3JpdGUgb2Ygc2l6ZSA0Ci0gICBhdCAweC4uLi4uLi4uOiB0ZXN0MSAoZmF1bHRzdGF0dXMuYzoxMDUpCi0gICBieSAweC4uLi4uLi4uOiBtYWluIChmYXVsdHN0YXR1cy5jOjE2OCkKKyAgIGF0IDB4Li4uLi4uLi46IHRlc3QxIChmYXVsdHN0YXR1cy5jOjExNikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGZhdWx0c3RhdHVzLmM6MTc5KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKICAgUEFTUwogVGVzdCAyOiAgIFBBU1MKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9tY3NpZ3Bhc3Muc3Rkb3V0Qi5leHAgYi9nZGJzZXJ2ZXJfdGVzdHMvbWNzaWdwYXNzLnN0ZG91dEIuZXhwCmluZGV4IDRjMmQ3OTkuLmRlNmMyNjMgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9tY3NpZ3Bhc3Muc3Rkb3V0Qi5leHAKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL21jc2lncGFzcy5zdGRvdXRCLmV4cApAQCAtMSwxNCArMSwxNCBAQAogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDEgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMDUKLTEwNQkJKkJBREFERFIgPSAneCc7CisweC4uLi4uLi4uIGluIHRlc3QxICgpIGF0IGZhdWx0c3RhdHVzLmM6MTE2CisxMTYJCSpCQURBRERSID0gJ3gnOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KLTB4Li4uLi4uLi4gaW4gdGVzdDIgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMTAKLTExMAkJbWFwcGluZ1swXSA9ICd4JzsKKzB4Li4uLi4uLi4gaW4gdGVzdDIgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMjEKKzEyMQkJbWFwcGluZ1swXSA9ICd4JzsKIENvbnRpbnVpbmcuCiBQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdCVVMsIEJ1cyBlcnJvci4KLTB4Li4uLi4uLi4gaW4gdGVzdDMgKCkgYXQgZmF1bHRzdGF0dXMuYzoxMTUKLTExNQkJbWFwcGluZ1tGSUxFU0laRSsxMF07CisweC4uLi4uLi4uIGluIHRlc3QzICgpIGF0IGZhdWx0c3RhdHVzLmM6MTI2CisxMjYJCW1hcHBpbmdbRklMRVNJWkUrMTBdOwogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR0ZQRSwgQXJpdGhtZXRpYyBleGNlcHRpb24uCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWN2YWJpdHMuc3RkZXJyQi5leHAgYi9nZGJzZXJ2ZXJfdGVzdHMvbWN2YWJpdHMuc3RkZXJyQi5leHAKaW5kZXggNmI0NjM1ZS4uYmRhYmIxZSAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyX3Rlc3RzL21jdmFiaXRzLnN0ZGVyckIuZXhwCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tY3ZhYml0cy5zdGRlcnJCLmV4cApAQCAtNSw2ICs1LDEwIEBACiBBZGRyZXNzIDB4Li4uLi4uLi4gbGVuIDEwIGRlZmluZWQKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZGF0YSBzeW1ib2wgInVuZGVmaW5lZCIKIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAKKwkJICAwMAkgIDAwCSAgMDAJICAwMAkgIDAwCSAgMDAJICAwMAkgIDAwCisweC4uLi4uLi4uOgkweC4uLi4uLi4uCTB4Li4uLi4uLi4JMHguLi4uLi4uLgkweC4uLi4uLi4uCTB4Li4uLi4uLi4JMHguLi4uLi4uLgkweC4uLi4uLi4uCTB4Li4uLi4uLi4KKwkJICAwMAkgIDAwCisweC4uLi4uLi4uOgkweC4uLi4uLi4uCTB4Li4uLi4uLi4KIEFkZHJlc3MgMHguLi4uLi4uLiBsZW4gMTAgYWRkcmVzc2FibGUKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZGF0YSBzeW1ib2wgInVuZGVmaW5lZCIKIEFkZHJlc3MgMHguLi4uLi4uLiBsZW4gMTAgbm90IGRlZmluZWQ6CmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbWN2YWJpdHMuc3RkaW5CLmdkYiBiL2dkYnNlcnZlcl90ZXN0cy9tY3ZhYml0cy5zdGRpbkIuZ2RiCmluZGV4IDIxYzdkMGQuLmYwZTQ4MGIgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9tY3ZhYml0cy5zdGRpbkIuZ2RiCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9tY3ZhYml0cy5zdGRpbkIuZ2RiCkBAIC0yMyw2ICsyMyw3IEBACiBldmFsICJtb25pdG9yIGNoZWNrX21lbW9yeSBhZGRyZXNzYWJsZSAweCVseCAxMCIsICQweHVuZGVmaW5lZAogZXZhbCAibW9uaXRvciBjaGVja19tZW1vcnkgZGVmaW5lZCAgICAgMHglbHggMTAiLCAkMHh1bmRlZmluZWQKIGV2YWwgIm1vbml0b3IgZ2V0X3ZiaXRzICAgICAgICAgICAgICAgIDB4JWx4IDEwIiwgJDB4dW5kZWZpbmVkCitldmFsICJtb25pdG9yIHhiICAgICAgICAgICAgICAgICAgICAgICAweCVseCAxMCIsICQweHVuZGVmaW5lZAogIwogIyBjb250aW51ZSB0aWxsIC8vMmJyZWFrOgogY29udGludWUKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9tY3ZhYml0cy5zdGRvdXRCLmV4cCBiL2dkYnNlcnZlcl90ZXN0cy9tY3ZhYml0cy5zdGRvdXRCLmV4cAppbmRleCBlOGQzNjYxLi5jMGFhZGM4IDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbWN2YWJpdHMuc3Rkb3V0Qi5leHAKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL21jdmFiaXRzLnN0ZG91dEIuZXhwCkBAIC0xLDExICsxLDExIEBACi1CcmVha3BvaW50IDEgYXQgMHguLi4uLi4uLjogZmlsZSB0LmMsIGxpbmUgMTAwLgorQnJlYWtwb2ludCAxIGF0IDB4Li4uLi4uLi46IGZpbGUgdC5jLCBsaW5lIDEwMS4KIENvbnRpbnVpbmcuCi1CcmVha3BvaW50IDEsIGJyZWFrbWUgKGxpbmU9MTEyKSBhdCB0LmM6MTAwCi0xMDAJICAgaWYgKGxpbmUgPiAxMDAwKQotIzEgIDB4Li4uLi4uLi4gaW4gbWFpbiAoYXJnYz0xLCBhcmd2PTB4Li4uLi4uLi4pIGF0IHQuYzoxMTIKLTExMgkgIGJyZWFrbWUoX19MSU5FX18pOyAvL2JyZWFrMQorQnJlYWtwb2ludCAxLCBicmVha21lIChsaW5lPTExMykgYXQgdC5jOjEwMQorMTAxCSAgIGlmIChsaW5lID4gMTAwMCkKKyMxICAweC4uLi4uLi4uIGluIG1haW4gKGFyZ2M9MSwgYXJndj0weC4uLi4uLi4uKSBhdCB0LmM6MTEzCisxMTMJICBicmVha21lKF9fTElORV9fKTsgLy9icmVhazEKICQxID0gMHguLi4uLi4uLiAibWFpbiBuYW1lIgogJDIgPSAidW5kZWZpbmVkIgogQ29udGludWluZy4KLUJyZWFrcG9pbnQgMSwgYnJlYWttZSAobGluZT0xMTcpIGF0IHQuYzoxMDAKLTEwMAkgICBpZiAobGluZSA+IDEwMDApCitCcmVha3BvaW50IDEsIGJyZWFrbWUgKGxpbmU9MTE4KSBhdCB0LmM6MTAxCisxMDEJICAgaWYgKGxpbmUgPiAxMDAwKQpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL21zc25hcHNob3Quc3Rkb3V0Qi5leHAgYi9nZGJzZXJ2ZXJfdGVzdHMvbXNzbmFwc2hvdC5zdGRvdXRCLmV4cAppbmRleCBhMmE3YzU1Li5iYTQzOTk3IDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbXNzbmFwc2hvdC5zdGRvdXRCLmV4cAorKysgYi9nZGJzZXJ2ZXJfdGVzdHMvbXNzbmFwc2hvdC5zdGRvdXRCLmV4cApAQCAtMSw0ICsxLDQgQEAKLUJyZWFrcG9pbnQgMSBhdCAweC4uLi4uLi4uOiBmaWxlIHQuYywgbGluZSAxMDUuCitCcmVha3BvaW50IDEgYXQgMHguLi4uLi4uLjogZmlsZSB0LmMsIGxpbmUgMTA2LgogQ29udGludWluZy4KLUJyZWFrcG9pbnQgMSwgbWFpbiAoYXJnYz0xLCBhcmd2PTB4Li4uLi4uLi4pIGF0IHQuYzoxMDUKLTEwNQkgIGNoYXIgKm1haW5fbmFtZSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSA9ICJtYWluIG5hbWUiOworQnJlYWtwb2ludCAxLCBtYWluIChhcmdjPTEsIGFyZ3Y9MHguLi4uLi4uLikgYXQgdC5jOjEwNgorMTA2CSAgY2hhciAqbWFpbl9uYW1lIF9fYXR0cmlidXRlX18oKHVudXNlZCkpID0gIm1haW4gbmFtZSI7CmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbmxjb250cm9sYy5zdGRvdXRCLmV4cCBiL2dkYnNlcnZlcl90ZXN0cy9ubGNvbnRyb2xjLnN0ZG91dEIuZXhwCmluZGV4IDcwZjM1NWIuLmExMDEzY2UgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9ubGNvbnRyb2xjLnN0ZG91dEIuZXhwCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9ubGNvbnRyb2xjLnN0ZG91dEIuZXhwCkBAIC0xLDkgKzEsNiBAQAogQ29udGludWluZy4KIFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1RSQVAsIFRyYWNlL2JyZWFrcG9pbnQgdHJhcC4KIDB4Li4uLi4uLi4gaW4gc3lzY2FsbCAuLi4KLVtOZXcgVGhyZWFkIC4uLi5dCi1bTmV3IFRocmVhZCAuLi4uXQotW05ldyBUaHJlYWQgLi4uLl0KICAgNCBUaHJlYWQgLi4uLiAodGlkIDQgVmdUc19XYWl0U3lzKSAgMHguLi4uLi4uLiBpbiBzeXNjYWxsIC4uLgogICAzIFRocmVhZCAuLi4uICh0aWQgMyBWZ1RzX1dhaXRTeXMpICAweC4uLi4uLi4uIGluIHN5c2NhbGwgLi4uCiAgIDIgVGhyZWFkIC4uLi4gKHRpZCAyIFZnVHNfV2FpdFN5cykgIDB4Li4uLi4uLi4gaW4gc3lzY2FsbCAuLi4KQEAgLTE1LDggKzEyLDggQEAKIGNoYW5nZWQgYnVybmluZyBwYXJhbWV0ZXJzCiBDb250aW51aW5nLgogUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHVFJBUCwgVHJhY2UvYnJlYWtwb2ludCB0cmFwLgotMHguLi4uLi4uLiBpbiBkb19idXJuICgpIGF0IHNsZWVwZXJzLmM6MzkKLTM5CSAgIGZvciAoaSA9IDA7IGkgPCBidXJuOyBpKyspIGxvb3BucisrOworMHguLi4uLi4uLiBpbiBkb19idXJuICgpIGF0IHNsZWVwZXJzLmM6NDEKKzQxCSAgIGZvciAoaSA9IDA7IGkgPCBidXJuOyBpKyspIGxvb3BucisrOwogJDUgPSAwCiAkNiA9IDAKICQ3ID0gMApkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL25sY29udHJvbGMudmd0ZXN0IGIvZ2Ric2VydmVyX3Rlc3RzL25sY29udHJvbGMudmd0ZXN0CmluZGV4IGUxOGM0NjguLjA3N2IyYmIgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9ubGNvbnRyb2xjLnZndGVzdAorKysgYi9nZGJzZXJ2ZXJfdGVzdHMvbmxjb250cm9sYy52Z3Rlc3QKQEAgLTYsMTIgKzYsMTQgQEAKICMgICAgICAgICAgYW5kIG1vZGlmeSBzb21lIHZhcmlhYmxlcwogIyBzbGVlcGVycyBpcyBzdGFydGVkIHdpdGggYXJndW1lbnQgc28gdGhhdCBpdCB3aWxsIGNvbXB1dGUgZHVyaW5nIGFnZXMuCiAjIFRoZSB2YXJpYWJsZSBtb2RpZmljYXRpb25zIG1lYW5zIGl0IHdpbGwgZXhpdCBpbiBhIHJlYXNvbmFibGUgdGltZS4KKyMgVGhpcyB0ZXN0IGlzIGRpc2FibGVkIG9uIFNvbGFyaXMgYmVjYXVzZSBtb2RpZnlpbmcgc2VsZWN0L3BvbGwvcHBvbGwgdGltZW91dAorIyBoYXMgbm8gZWZmZWN0IGlmIGEgdGhyZWFkIGlzIGFscmVhZHkgYmxvY2tlZCBpbiB0aGF0IHN5c2NhbGwuCiBwcm9nOiBzbGVlcGVycwogYXJnczogMTAwMDAwMDAwMCAxMDAwMDAwMDAwIDEwMDAwMDAwMDAgQlNCU0JTQlMKIHZnb3B0czogLS10b29sPW5vbmUgLS12Z2RiPXllcyAtLXZnZGItZXJyb3I9MCAtLXZnZGItcHJlZml4PS4vdmdkYi1wcmVmaXgtbmxjb250cm9sYwogc3RkZXJyX2ZpbHRlcjogZmlsdGVyX3N0ZGVycgogIyBCdWcgMzM4NjMzIG5sY29udHJvbCBoYW5ncyBvbiBhcm02NCBjdXJyZW50bHkuCi1wcmVyZXE6IHRlc3QgLWUgZ2RiIC1hIC1mIHZnZGIuaW52b2tlciAmJiAhIC4uL3Rlc3RzL2FyY2hfdGVzdCBhcm02NCAmJiAhIC4uL3Rlc3RzL2FyY2hfdGVzdCB0aWxlZ3gKK3ByZXJlcTogdGVzdCAtZSBnZGIgLWEgLWYgdmdkYi5pbnZva2VyICYmICEgLi4vdGVzdHMvYXJjaF90ZXN0IGFybTY0ICYmICEgLi4vdGVzdHMvYXJjaF90ZXN0IHRpbGVneCAmJiAhIC4uL3Rlc3RzL29zX3Rlc3Qgc29sYXJpcwogcHJvZ0I6IGdkYgogYXJnc0I6IC0tcXVpZXQgLWwgNjAgLS1ueCAuL3NsZWVwZXJzCiBzdGRpbkI6IG5sY29udHJvbGMuc3RkaW5CLmdkYgpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL25sZ29uZV9hYnJ0LnZndGVzdCBiL2dkYnNlcnZlcl90ZXN0cy9ubGdvbmVfYWJydC52Z3Rlc3QKaW5kZXggODZhZWNmZC4uZTFlOWYyNCAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyX3Rlc3RzL25sZ29uZV9hYnJ0LnZndGVzdAorKysgYi9nZGJzZXJ2ZXJfdGVzdHMvbmxnb25lX2FicnQudmd0ZXN0CkBAIC0xMCwzICsxMCw0IEBACiBzdGRpbkI6IG5sZ29uZV9hYnJ0LnN0ZGluQi5nZGIKIHN0ZG91dEJfZmlsdGVyOiBmaWx0ZXJfZ2RiCiBzdGRlcnJCX2ZpbHRlcjogZmlsdGVyX2dkYgorY2xlYW51cDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9ubGdvbmVfZXhpdC52Z3Rlc3QgYi9nZGJzZXJ2ZXJfdGVzdHMvbmxnb25lX2V4aXQudmd0ZXN0CmluZGV4IDAyYTIwYTcuLjUyMWMxOWQgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy9ubGdvbmVfZXhpdC52Z3Rlc3QKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL25sZ29uZV9leGl0LnZndGVzdApAQCAtNyw2ICs3LDcgQEAKIHN0ZGVycl9maWx0ZXI6IGZpbHRlcl9zdGRlcnIKIHByZXJlcTogdGVzdCAtZSBnZGIKIHByb2dCOiBnZGIKK2VudkI6IExDX0FMTD1DCiBhcmdzQjogLS1xdWlldCAtbCA2MCAtLW54IC4vZ29uZQogc3RkaW5COiBubGdvbmVfZXhpdC5zdGRpbkIuZ2RiCiBzdGRvdXRCX2ZpbHRlcjogZmlsdGVyX2dkYgpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL25scGFzc3NpZ2Fscm0uc3Rkb3V0Qi5leHAgYi9nZGJzZXJ2ZXJfdGVzdHMvbmxwYXNzc2lnYWxybS5zdGRvdXRCLmV4cAppbmRleCA3MDhhM2EzLi42MjU4ODNlIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbmxwYXNzc2lnYWxybS5zdGRvdXRCLmV4cAorKysgYi9nZGJzZXJ2ZXJfdGVzdHMvbmxwYXNzc2lnYWxybS5zdGRvdXRCLmV4cApAQCAtMTYsNyArMTYsNyBAQAogNTUJICAgc2Euc2FfaGFuZGxlciA9IHNpZ3J0bWluX2hhbmRsZXI7CiAkMiA9IDEKIENvbnRpbnVpbmcuCi1Qcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUczNCwgUmVhbC10aW1lIGV2ZW50IDM0LgorUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHeHgsIFJlYWwtdGltZSBldmVudCB4eC4KIDB4Li4uLi4uLi4gaW4gc3lzY2FsbCAuLi4KIENvbnRpbnVpbmcuCiBQcm9ncmFtIGV4aXRlZCBub3JtYWxseS4KZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9ubHBhc3NzaWdhbHJtLnZndGVzdCBiL2dkYnNlcnZlcl90ZXN0cy9ubHBhc3NzaWdhbHJtLnZndGVzdAppbmRleCA1YzRlMzk1Li4wNDUwMjA3IDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXJfdGVzdHMvbmxwYXNzc2lnYWxybS52Z3Rlc3QKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL25scGFzc3NpZ2Fscm0udmd0ZXN0CkBAIC0xMSw1ICsxMSw1IEBACiBwcm9nQjogZ2RiCiBhcmdzQjogLS1xdWlldCAtbCA2MCAtLW54IC4vcGFzc3NpZ2Fscm0KIHN0ZGluQjogbmxwYXNzc2lnYWxybS5zdGRpbkIuZ2RiCi1zdGRvdXRCX2ZpbHRlcjogZmlsdGVyX2dkYgorc3Rkb3V0Ql9maWx0ZXI6IGZpbHRlcl9wYXNzc2lnYWxybQogc3RkZXJyQl9maWx0ZXI6IGZpbHRlcl9nZGIKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9ubHZnZGJzaWdxdWV1ZS5zdGRvdXRCLmV4cC1zb2xhcmlzMSBiL2dkYnNlcnZlcl90ZXN0cy9ubHZnZGJzaWdxdWV1ZS5zdGRvdXRCLmV4cC1zb2xhcmlzMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2QwZTc1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL25sdmdkYnNpZ3F1ZXVlLnN0ZG91dEIuZXhwLXNvbGFyaXMxCkBAIC0wLDAgKzEsMTYgQEAKK2NvbnRpbnVpbmcgdG8gaGF2ZSB2Z2RiIGludGVycnVwdGVkIGJ5IHNpbXVsYXRlX2NvbnRyb2xfYworQ29udGludWluZy4KK1Byb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1RSQVAsIFRyYWNlL2JyZWFrcG9pbnQgdHJhcC4KKzB4Li4uLi4uLi4gaW4gc3lzY2FsbCAuLi4KK2F0dGFjaGVkd2FpdGluZ2ZvcnNpZ3VzcjEKK3NlbmRpbmcgc2lnbmFsCitzZW5kaW5nIHNpZ25hbAorY29udGludWluZyB0byByZWNlaXZlIGZpcnN0IFNJR1VTUjEKK0NvbnRpbnVpbmcuCitQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdVU1IxLCBVc2VyIGRlZmluZWQgc2lnbmFsIDEuCisweC4uLi4uLi4uIGluIHN5c2NhbGwgLi4uCitjb250aW51aW5nIHRvIHJlY2VpdmUgc2Vjb25kIFNJR1VTUjEKK0NvbnRpbnVpbmcuCitQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdUUkFQLCBUcmFjZS9icmVha3BvaW50IHRyYXAuCisweC4uLi4uLi4uIGluIHN5c2NhbGwgLi4uCitLaWxsIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkPyAoeSBvciBuKSBbYW5zd2VyZWQgWTsgaW5wdXQgbm90IGZyb20gdGVybWluYWxdCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvbmx2Z2Ric2lncXVldWUuc3Rkb3V0Qi5leHAtc29sYXJpczIgYi9nZGJzZXJ2ZXJfdGVzdHMvbmx2Z2Ric2lncXVldWUuc3Rkb3V0Qi5leHAtc29sYXJpczIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmVjYTEwYgotLS0gL2Rldi9udWxsCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9ubHZnZGJzaWdxdWV1ZS5zdGRvdXRCLmV4cC1zb2xhcmlzMgpAQCAtMCwwICsxLDE3IEBACitjb250aW51aW5nIHRvIGhhdmUgdmdkYiBpbnRlcnJ1cHRlZCBieSBzaW11bGF0ZV9jb250cm9sX2MKK0NvbnRpbnVpbmcuCitQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdUUkFQLCBUcmFjZS9icmVha3BvaW50IHRyYXAuCisweC4uLi4uLi4uIGluIHN5c2NhbGwgLi4uCithdHRhY2hlZHdhaXRpbmdmb3JzaWd1c3IxCitzZW5kaW5nIHNpZ25hbAorc2VuZGluZyBzaWduYWwKK2NvbnRpbnVpbmcgdG8gcmVjZWl2ZSBmaXJzdCBTSUdVU1IxCitDb250aW51aW5nLgorW05ldyBUaHJlYWQgLi4uLl0KK1Byb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1VTUjEsIFVzZXIgZGVmaW5lZCBzaWduYWwgMS4KKzB4Li4uLi4uLi4gaW4gc3lzY2FsbCAuLi4KK2NvbnRpbnVpbmcgdG8gcmVjZWl2ZSBzZWNvbmQgU0lHVVNSMQorQ29udGludWluZy4KK1Byb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1RSQVAsIFRyYWNlL2JyZWFrcG9pbnQgdHJhcC4KKzB4Li4uLi4uLi4gaW4gc3lzY2FsbCAuLi4KK0tpbGwgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWQ/ICh5IG9yIG4pIFthbnN3ZXJlZCBZOyBpbnB1dCBub3QgZnJvbSB0ZXJtaW5hbF0KZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9zbGVlcGVycy5jIGIvZ2Ric2VydmVyX3Rlc3RzL3NsZWVwZXJzLmMKaW5kZXggZTA2ZTBjZC4uNjRhYjBlYSAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyX3Rlc3RzL3NsZWVwZXJzLmMKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL3NsZWVwZXJzLmMKQEAgLTEsNCArMSw1IEBACiAjZGVmaW5lIF9HTlVfU09VUkNFCisjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxwdGhyZWFkLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC0yNiw3ICsyNyw4IEBACiBzdGF0aWMgdm9pZCB3aG9hbWkoY2hhciAqbXNnKSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKTsKIHN0YXRpYyB2b2lkIHdob2FtaShjaGFyICptc2cpCiB7Ci0gICBmcHJpbnRmKHN0ZGVyciwgInBpZCAlZCBUaHJlYWQgJWQgJXNcbiIsIGdldHBpZCgpLCBnZXR0aWQoKSwgbXNnKTsKKyAgIGZwcmludGYoc3RkZXJyLCAicGlkICVsZCBUaHJlYWQgJWxkICVzXG4iLCAobG9uZykgZ2V0cGlkKCksIChsb25nKSBnZXR0aWQoKSwKKyAgICAgICAgICAgbXNnKTsKICAgIGZmbHVzaChzdGRlcnIpOwogfQogCkBAIC04Miw4ICs4NCw4IEBACiAgICAgICAgICB0W3MtPnRdLnR2X3NlYyA9IHNsZWVwbXMgLyAxMDAwOwogICAgICAgICAgdFtzLT50XS50dl91c2VjID0gKHNsZWVwbXMgJSAxMDAwKSAqIDEwMDA7CiAgICAgICAgICByZXQgPSBzZWxlY3QgKDAsIE5VTEwsIE5VTEwsIE5VTEwsICZ0W3MtPnRdKTsKLSAgICAgICAgIC8qIFdlIG9ubHkgZXhwZWN0IGEgdGltZW91dCByZXN1bHQgZnJvbSB0aGUgYWJvdmUuICovCi0gICAgICAgICBpZiAocmV0ICE9IDApCisgICAgICAgICAvKiBXZSBvbmx5IGV4cGVjdCBhIHRpbWVvdXQgcmVzdWx0IG9yIEVJTlRSIGZyb20gdGhlIGFib3ZlLiAqLworICAgICAgICAgaWYgKHJldCAhPSAwICYmIGVycm5vICE9IEVJTlRSKQogICAgICAgICAgICAgcGVycm9yKCJ1bmV4cGVjdGVkIHJlc3VsdCBmcm9tIHNlbGVjdCIpOwogICAgICAgfQogICAgICAgaWYgKGJ1cm4gPiAwICYmIHMtPmJ1cm4pCmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvc29sYXJpcy9NYWtlZmlsZS5hbSBiL2dkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZWJjYzgKLS0tIC9kZXYvbnVsbAorKysgYi9nZGJzZXJ2ZXJfdGVzdHMvc29sYXJpcy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDEyIEBACisKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCisKK2Rpc3Rfbm9pbnN0X1NDUklQVFMgPSBcCisJZmlsdGVyX3N0ZGVycgorCitFWFRSQV9ESVNUID0gXAorCW5sY29udHJvbGMuc3RkZXJyQi5leHAgXAorCW5sY29udHJvbGMuc3RkZXJyLmV4cCBcCisJbmxjb250cm9sYy5zdGRpbkIuZ2RiIFwKKwlubGNvbnRyb2xjLnN0ZG91dEIuZXhwIFwKKwlubGNvbnRyb2xjLnZndGVzdApkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvZmlsdGVyX3N0ZGVyciBiL2dkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zdGRlcnIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGFlOTMxMwotLS0gL2Rldi9udWxsCisrKyBiL2dkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zdGRlcnIKQEAgLTAsMCArMSwzIEBACisjISAvYmluL3NoCisKKy4uL2ZpbHRlcl9zdGRlcnIKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL25sY29udHJvbGMuc3RkZXJyLmV4cCBiL2dkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL25sY29udHJvbGMuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjA2NDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvbmxjb250cm9sYy5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMTEgQEAKK051bGdyaW5kLCB0aGUgbWluaW1hbCBWYWxncmluZCB0b29sCisKKyhhY3Rpb24gYXQgc3RhcnR1cCkgdmdkYiBtZSAuLi4gCisKKworbG9vcHMvc2xlZXBfbXMvYnVybi90aHJlYWRzX3NwZWM6ICAxMDAwMDAwMDAwIDUwMDAgMTAwMDAwMDAwMCBCU0JTQlNCUworQnJ1c3NlbHMgcmVhZHkgdG8gc2xlZXAgYW5kL29yIGJ1cm4KK0xvbmRvbiByZWFkeSB0byBzbGVlcCBhbmQvb3IgYnVybgorUGV0YW91Y2hub2sgcmVhZHkgdG8gc2xlZXAgYW5kL29yIGJ1cm4KK21haW4gcmVhZHkgdG8gc2xlZXAgYW5kL29yIGJ1cm4KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvbmxjb250cm9sYy5zdGRlcnJCLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIGdkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL25sY29udHJvbGMuc3RkZXJyQi5leHAKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL25sY29udHJvbGMuc3RkaW5CLmdkYiBiL2dkYnNlcnZlcl90ZXN0cy9zb2xhcmlzL25sY29udHJvbGMuc3RkaW5CLmdkYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODI4MzRmCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvbmxjb250cm9sYy5zdGRpbkIuZ2RiCkBAIC0wLDAgKzEsMzEgQEAKKyMgY29ubmVjdCBnZGIgdG8gVmFsZ3JpbmQgZ2Ric2VydmVyOgordGFyZ2V0IHJlbW90ZSB8IC4uL3ZnZGIgLS13YWl0PTYwIC0tdmdkYi1wcmVmaXg9Li92Z2RiLXByZWZpeC1zb2xhcmlzLW5sY29udHJvbGMKK2VjaG8gdmdkYiBsYXVuY2hlZCBwcm9jZXNzIGF0dGFjaGVkXG4KK21vbml0b3Igdi5zZXQgdmdkYi1lcnJvciA5OTk5OTkKKyMKKyMKKyMgc2ltdWxhdGUgY29udHJvbC1jIGluIGEgZmV3IHNlY29uZHMKK3NoZWxsIC4uL3NpbXVsYXRlX2NvbnRyb2xfYyAtLXZnZGItcHJlZml4PS4vdmdkYi1wcmVmaXgtc29sYXJpcy1ubGNvbnRyb2xjIDEgZ3JlcCBtYWluIG5sY29udHJvbGMuc3RkZXJyLm91dAorIworY29udGludWUKKyMKKyMgSGVyZSwgYWxsIHRhc2tzIHNob3VsZCBiZSBibG9ja2VkIGluIGEgbG9vb29ubm5uZyBzZWxlY3QsIGFsbCBpbiBXYWl0U3lzCitpbmZvIHRocmVhZHMKKyMgQWZ0ZXIgdGhlIHRpbWVvdXQgZXhwaXJlcywgdGhyZWFkcyB3aWxsIHVuYmxvY2suCisjCisjIFdlIHdpbGwgY2hhbmdlIHRoZSBidXJuaW5nIHBhcmFtZXRlcnMgaW4gYSBmZXcgc2Vjb25kcworc2hlbGwgLi4vc2ltdWxhdGVfY29udHJvbF9jIC0tdmdkYi1wcmVmaXg9Li92Z2RiLXByZWZpeC1zb2xhcmlzLW5sY29udHJvbGMgNiBncmVwIENQVSBubGNvbnRyb2xjLnN0ZG91dEIub3V0CisjCitlY2hvIE5vdyB0aHJlYWRzIGFyZSBidXJuaW5nIENQVVxuCitjb250aW51ZQorIworIyBUaHJlYWRzIGFyZSBidXJuaW5nIGNwdSBub3cKKyMgV2Ugd291bGQgbGlrZSB0byB0ZXN0IGluZm8gdGhyZWFkcyBoZXJlLCBidXQgd2hpY2ggdGhyZWFkIGFyZSBSdW5uYWJsZSBvciBZaWVsZGluZworIyBpcyB1bnByZWRpY3RhYmxlLgorIyBpbmZvIHRocmVhZHMKK3AgYnVybiA9IDAKK3AgbG9vcHMgPSAwCitwIHJlcG9ydF9maW5pc2hlZCA9IDAKK2NvbnRpbnVlCisjIGFuZCB0aGUgcHJvY2VzcyBzaG91bGQgc3RvcCB2ZXJ5IHF1aWNrbHkgbm93CitxdWl0CmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXJfdGVzdHMvc29sYXJpcy9ubGNvbnRyb2xjLnN0ZG91dEIuZXhwIGIvZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvbmxjb250cm9sYy5zdGRvdXRCLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTUyYzUwCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvbmxjb250cm9sYy5zdGRvdXRCLmV4cApAQCAtMCwwICsxLDE3IEBACitDb250aW51aW5nLgorUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHVFJBUCwgVHJhY2UvYnJlYWtwb2ludCB0cmFwLgorMHguLi4uLi4uLiBpbiBzeXNjYWxsIC4uLgorICA0IFRocmVhZCAuLi4uICh0aWQgNCBWZ1RzX1dhaXRTeXMpICAweC4uLi4uLi4uIGluIF9fcG9sbHN5cyAoKQorICAzIFRocmVhZCAuLi4uICh0aWQgMyBWZ1RzX1dhaXRTeXMpICAweC4uLi4uLi4uIGluIF9fcG9sbHN5cyAoKQorICAyIFRocmVhZCAuLi4uICh0aWQgMiBWZ1RzX1dhaXRTeXMpICAweC4uLi4uLi4uIGluIF9fcG9sbHN5cyAoKQorKiAxIFRocmVhZCAuLi4uICh0aWQgMSBWZ1RzX1dhaXRTeXMpICAweC4uLi4uLi4uIGluIF9fcG9sbHN5cyAoKQorTm93IHRocmVhZHMgYXJlIGJ1cm5pbmcgQ1BVCitDb250aW51aW5nLgorUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHVFJBUCwgVHJhY2UvYnJlYWtwb2ludCB0cmFwLgorMHguLi4uLi4uLiBpbiBkb19idXJuICgpIGF0IHNsZWVwZXJzLmM6NDEKKzQxCSAgIGZvciAoaSA9IDA7IGkgPCBidXJuOyBpKyspIGxvb3BucisrOworJDEgPSAwCiskMiA9IDAKKyQzID0gMAorQ29udGludWluZy4KK1Byb2dyYW0gZXhpdGVkIG5vcm1hbGx5LgpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvbmxjb250cm9sYy52Z3Rlc3QgYi9nZGJzZXJ2ZXJfdGVzdHMvc29sYXJpcy9ubGNvbnRyb2xjLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzIzNTcwCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL3NvbGFyaXMvbmxjb250cm9sYy52Z3Rlc3QKQEAgLTAsMCArMSwxNyBAQAorIyB0ZXN0IDoKKyMgICBpbmZvIHRocmVhZHMgdmFsZ3JpbmQgc3BlY2lmaWMgb3V0cHV0CisjICAgdGhlIHVzZXIgY2FuIGNvbnRyb2wtYyBhIHByb2Nlc3Mgd2l0aCBhbGwgdGhyZWFkcyBpbiBXYWl0U3lzCisjICAgdGhlIHVzZXIgY2FuIGNvbnRyb2wtYyBhIHByb2Nlc3Mgd2l0aCBhbGwgdGhyZWFkcyBpbiBSdW5uaW5nL1lpZWxkaW5nCisjICAgICAgICAgIGFuZCBtb2RpZnkgc29tZSB2YXJpYWJsZXMKKyMgc2xlZXBlcnMgaXMgc3RhcnRlZCB3aXRoIGFyZ3VtZW50IHNvIHRoYXQgaXQgd2lsbCBjb21wdXRlIGR1cmluZyBhZ2VzLgorIyBUaGUgdmFyaWFibGUgbW9kaWZpY2F0aW9ucyBtZWFucyBpdCB3aWxsIGV4aXQgaW4gYSByZWFzb25hYmxlIHRpbWUuCitwcm9nOiAuLi9zbGVlcGVycworYXJnczogMTAwMDAwMDAwMCA1MDAwIDEwMDAwMDAwMDAgQlNCU0JTQlMKK3Znb3B0czogLS10b29sPW5vbmUgLS12Z2RiPXllcyAtLXZnZGItZXJyb3I9MCAtLXZnZGItcHJlZml4PS4vdmdkYi1wcmVmaXgtc29sYXJpcy1ubGNvbnRyb2xjCitzdGRlcnJfZmlsdGVyOiBmaWx0ZXJfc3RkZXJyCitwcmVyZXE6IHRlc3QgLWUgLi4vZ2RiIC1hIC1mIC4uL3ZnZGIuaW52b2tlcgorcHJvZ0I6IC4uL2dkYgorYXJnc0I6IC0tcXVpZXQgLWwgNjAgLS1ueCAuLi9zbGVlcGVycworc3RkaW5COiBubGNvbnRyb2xjLnN0ZGluQi5nZGIKK3N0ZG91dEJfZmlsdGVyOiAuLi9maWx0ZXJfZ2RiCitzdGRlcnJCX2ZpbHRlcjogLi4vZmlsdGVyX21ha2VfZW1wdHkKZGlmZiAtLWdpdCBhL2dkYnNlcnZlcl90ZXN0cy90LmMgYi9nZGJzZXJ2ZXJfdGVzdHMvdC5jCmluZGV4IDg5Y2U1N2QuLjIyOGQ0YTQgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlcl90ZXN0cy90LmMKKysrIGIvZ2Ric2VydmVyX3Rlc3RzL3QuYwpAQCAtMjYsNyArMjYsOCBAQAogfQogc3RhdGljIHZvaWQgd2hvYW1pKGNoYXIgKm1zZykKIHsKLSAgIHByaW50ZigicGlkICVkIFRocmVhZCAlZCAlc1xuIiwgZ2V0cGlkKCksIGdldHRpZCgpLCBtc2cpOyBmZmx1c2goc3Rkb3V0KTsKKyAgIHByaW50ZigicGlkICVsZCBUaHJlYWQgJWxkICVzXG4iLCAobG9uZykgZ2V0cGlkKCksIChsb25nKSBnZXR0aWQoKSwgbXNnKTsKKyAgIGZmbHVzaChzdGRvdXQpOwogfQogCiBzdGF0aWMgaW50IGludF91bmQ7CmRpZmYgLS1naXQgYS9nbGliYy0yLjM0NTY3LU5QVEwtaGVsZ3JpbmQuc3VwcCBiL2dsaWJjLTIuMzQ1NjctTlBUTC1oZWxncmluZC5zdXBwCmluZGV4IGI2MWEzMzkuLmVkMTA1YjggMTAwNjQ0Ci0tLSBhL2dsaWJjLTIuMzQ1NjctTlBUTC1oZWxncmluZC5zdXBwCisrKyBiL2dsaWJjLTIuMzQ1NjctTlBUTC1oZWxncmluZC5zdXBwCkBAIC0yMyw2ICsyMywxMCBAQAogIyAgIHRoaXMsIHRoZW4gbG9hZHMgb2YgZXJyb3JzIHRvIGRvIHdpdGggc3RkaW8gYXJlIHJlcG9ydGVkLCBiZWNhdXNlCiAjICAgSCBmYWlscyB0byBzZWUgZ2xpYmMncyBpbnRlcm5hbCBsb2NraW5nL3VubG9ja2luZyBvZiBGSUxFKnMKICMgICBhcyByZXF1aXJlZCBieSBQT1NJWC4gIEEgYmV0dGVyIHNvbHV0aW9uIGlzIG5lZWRlZC4KKyMKKyMgLSBzb21lIG9mIHRoZSBzdGRpbyBmdW5jdGlvbnMgaW4gbmV3ZXIgZ2xpYmMgbWFuaXB1bGF0ZSBzdGRpbworIyAgIEZJTEUqcyBzdGF0ZSB0aHJvdWdoIG1lbXBjcHksIHdoaWNoIHdlIGludGVyY2VwdCwgc28gd2UgYWxzbyBuZWVkCisjICAgdG8gc3VwcHJlc3Mgc3VjaCBtYW5pcHVsYXRpb25zLgogCiAjewogIyAgIGhlbGdyaW5kLWdsaWJjMlgtMDAxCkBAIC00MSw2ICs0NSwxNCBAQAogfQogCiB7CisgICBoZWxncmluZC1nbGliYy1pby14c3B1dG4tbWVtcGNweQorICAgSGVsZ3JpbmQ6UmFjZQorICAgZnVuOl9fR0lfbWVtcGNweQorICAgZnVuOl9JT18qeHNwdXRuKgorICAgb2JqOiovbGliKi9saWJjLTIuKnNvKgorfQorCit7CiAgICBoZWxncmluZC1nbGliYzJYLTAwNQogICAgSGVsZ3JpbmQ6UmFjZQogICAgb2JqOiovbGliKi9saWJwdGhyZWFkLTIuKnNvKgpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvZG9jcy9oZy1tYW51YWwueG1sIGIvaGVsZ3JpbmQvZG9jcy9oZy1tYW51YWwueG1sCmluZGV4IGM2ODM5ZmQuLjI4ZDRkOWIgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL2RvY3MvaGctbWFudWFsLnhtbAorKysgYi9oZWxncmluZC9kb2NzL2hnLW1hbnVhbC54bWwKQEAgLTExOTAsNiArMTE5MCw1MSBAQAogICAgIDwvbGlzdGl0ZW0+CiAgIDwvdmFybGlzdGVudHJ5PgogCisgIDx2YXJsaXN0ZW50cnkgaWQ9Im9wdC5pZ25vcmUtdGhyZWFkLWNyZWF0aW9uIgorICAgICAgICAgICAgICAgIHhyZWZsYWJlbD0iLS1pZ25vcmUtdGhyZWFkLWNyZWF0aW9uIj4KKyAgICA8dGVybT4KKyAgICAgIDxvcHRpb24+PCFbQ0RBVEFbLS1pZ25vcmUtdGhyZWFkLWNyZWF0aW9uPTx5ZXN8bm8+CisgICAgICBbZGVmYXVsdDogbm9dXV0+PC9vcHRpb24+CisgICAgPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgICBDb250cm9scyB3aGV0aGVyIGFsbCBhY3Rpdml0aWVzIGR1cmluZyB0aHJlYWQgY3JlYXRpb24gc2hvdWxkIGJlCisgICAgICAgIGlnbm9yZWQuIEJ5IGRlZmF1bHQgZW5hYmxlZCBvbmx5IG9uIFNvbGFyaXMuCisgICAgICAgIFNvbGFyaXMgcHJvdmlkZXMgaGlnaGVyIHRocm91Z2hwdXQsIHBhcmFsbGVsaXNtIGFuZCBzY2FsYWJpbGl0eSB0aGFuCisgICAgICAgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLCBhdCB0aGUgY29zdCBvZiBtb3JlIGZpbmUtZ3JhaW5lZCBsb2NraW5nCisgICAgICAgIGFjdGl2aXR5LiBUaGlzIG1lYW5zIGZvciBleGFtcGxlIHRoYXQgd2hlbiBhIHRocmVhZCBpcyBjcmVhdGVkIHVuZGVyCisgICAgICAgIGdsaWJjLCBqdXN0IG9uZSBiaWcgbG9jayBpcyB1c2VkIGZvciBhbGwgdGhyZWFkIHNldHVwLiBTb2xhcmlzIGxpYmMKKyAgICAgICAgdXNlcyBzZXZlcmFsIGZpbmUtZ3JhaW5lZCBsb2NrcyBhbmQgdGhlIGNyZWF0b3IgdGhyZWFkIHJlc3VtZXMgaXRzCisgICAgICAgIGFjdGl2aXRpZXMgYXMgc29vbiBhcyBwb3NzaWJsZSwgbGVhdmluZyBmb3IgZXhhbXBsZSBzdGFjayBhbmQgVExTIHNldHVwCisgICAgICAgIHNlcXVlbmNlIHRvIHRoZSBjcmVhdGVkIHRocmVhZC4KKyAgICAgICAgVGhpcyBzaXR1YXRpb24gY29uZnVzZXMgSGVsZ3JpbmQgYXMgaXQgYXNzdW1lcyB0aGVyZSBpcyBzb21lIGZhbHNlCisgICAgICAgIG9yZGVyaW5nIGluIHBsYWNlIGJldHdlZW4gY3JlYXRvciBhbmQgY3JlYXRlZCB0aHJlYWQ7IGFuZCB0aGVyZWZvcmUgbWFueQorICAgICAgICB0eXBlcyBvZiByYWNlIGNvbmRpdGlvbnMgaW4gdGhlIGFwcGxpY2F0aW9uIHdvdWxkIG5vdCBiZSByZXBvcnRlZC4KKyAgICAgICAgVG8gcHJldmVudCBzdWNoIGZhbHNlIG9yZGVyaW5nLCB0aGlzIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgc2V0IHRvCisgICAgICAgIDxjb21wdXRlcm91dHB1dD55ZXM8L2NvbXB1dGVyb3V0cHV0PiBieSBkZWZhdWx0IG9uIFNvbGFyaXMuCisgICAgICAgIEFsbCBhY3Rpdml0eSAobG9hZHMsIHN0b3JlcywgY2xpZW50IHJlcXVlc3RzKSBpcyB0aGVyZWZvcmUgaWdub3JlZAorICAgICAgICBkdXJpbmc6PC9wYXJhPgorICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgcHRocmVhZF9jcmVhdGUoKSBjYWxsIGluIHRoZSBjcmVhdG9yIHRocmVhZAorICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgdGhyZWFkIGNyZWF0aW9uIHBoYXNlIChzdGFjayBhbmQgVExTIHNldHVwKSBpbiB0aGUgY3JlYXRlZCB0aHJlYWQKKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgIDxwYXJhPgorICAgICAgICAgQWxzbyBuZXcgbWVtb3J5IGFsbG9jYXRlZCBkdXJpbmcgdGhyZWFkIGNyZWF0aW9uIGlzIHVudHJhY2tlZCwKKyAgICAgICAgIHRoYXQgaXMgcmFjZSByZXBvcnRpbmcgaXMgc3VwcHJlc3NlZCB0aGVyZS4gRFJEIGRvZXMgdGhlIHNhbWUgdGhpbmcKKyAgICAgICAgIGltcGxpY2l0bHkuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgU29sYXJpcyBsaWJjIGNhY2hlcyBtYW55IG9iamVjdHMKKyAgICAgICAgIGFuZCByZXVzZXMgdGhlbSBmb3IgZGlmZmVyZW50IHRocmVhZHMgYW5kIHRoYXQgY29uZnVzZXMKKyAgICAgICAgIEhlbGdyaW5kLjwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICA8L3Zhcmxpc3RlbnRyeT4KKwogCiA8L3ZhcmlhYmxlbGlzdD4KIDwhLS0gZW5kIG9mIHhpOmluY2x1ZGUgaW4gdGhlIG1hbnBhZ2UgLS0+CmRpZmYgLS1naXQgYS9oZWxncmluZC9oZWxncmluZC5oIGIvaGVsZ3JpbmQvaGVsZ3JpbmQuaAppbmRleCA3ZTI3ZjVjLi5kMTk0YzQ0IDEwMDY0NAotLS0gYS9oZWxncmluZC9oZWxncmluZC5oCisrKyBiL2hlbGdyaW5kL2hlbGdyaW5kLmgKQEAgLTExLDcgKzExLDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEhlbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGRldGVjdGluZyBlcnJvcnMKICAgIGluIHRocmVhZGVkIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC04MCw4ICs4MCw4IEBACiAgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9ERVNUUk9ZX1BSRSwgIC8qIHB0aF9teF90KiwgbG9uZyBpc0luaXQgKi8KICAgICAgIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX1VOTE9DS19QUkUsICAgLyogcHRoX214X3QqICovCiAgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9VTkxPQ0tfUE9TVCwgIC8qIHB0aF9teF90KiAqLwotICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QUkUsIC8qIHB0aF9teF90KiwgbG9uZyBpc1RyeUxvY2sgKi8KLSAgICAgIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUE9TVCwgICAgLyogcHRoX214X3QqICovCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9BQ1FVSVJFX1BSRSwgIC8qIHZvaWQqLCBsb25nIGlzVHJ5TG9jayAqLworICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfQUNRVUlSRV9QT1NULCAvKiB2b2lkKiAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQ09ORF9TSUdOQUxfUFJFLCAgICAvKiBwdGhfY29uZF90KiAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQ09ORF9CUk9BRENBU1RfUFJFLCAvKiBwdGhfY29uZF90KiAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQ09ORF9XQUlUX1BSRSwgICAgIC8qIHB0aF9jb25kX3QqLCBwdGhfbXhfdCogKi8KQEAgLTkwLDEzICs5MCwxMyBAQAogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0lOSVRfUE9TVCwgICAvKiBwdGhfcndsa190KiAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0RFU1RST1lfUFJFLCAvKiBwdGhfcndsa190KiAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUFJFLCAgICAvKiBwdGhfcndsa190KiwgbG9uZyBpc1cgKi8KLSAgICAgIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BPU1QsICAgLyogcHRoX3J3bGtfdCosIGxvbmcgaXNXICovCi0gICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfVU5MT0NLX1BSRSwgIC8qIHB0aF9yd2xrX3QqICovCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfQUNRVUlSRUQsICAgIC8qIHZvaWQqLCBsb25nIGlzVyAqLworICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX1JFTEVBU0VELCAgICAvKiB2b2lkKiAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX1VOTE9DS19QT1NULCAvKiBwdGhfcndsa190KiAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9JTklUX1BPU1QsICAgICAgICAvKiBzZW1fdCosIHVsb25nIHZhbHVlICovCiAgICAgICBfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX0RFU1RST1lfUFJFLCAgICAgIC8qIHNlbV90KiAqLwotICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9QT1NUX1BSRSwgICAgICAgICAvKiBzZW1fdCogKi8KLSAgICAgIF9WR19VU0VSUkVRX19IR19QT1NJWF9TRU1fV0FJVF9QT1NULCAgICAgICAgLyogc2VtX3QqICovCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX1JFTEVBU0VELCAgICAgICAgIC8qIHZvaWQqICovCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX0FDUVVJUkVELCAgICAgICAgIC8qIHZvaWQqICovCiAgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9CQVJSSUVSX0lOSVRfUFJFLCAgIC8qIHB0aF9iYXJfdCosIHVsb25nLCB1bG9uZyAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQkFSUklFUl9XQUlUX1BSRSwgICAvKiBwdGhfYmFyX3QqICovCiAgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9CQVJSSUVSX0RFU1RST1lfUFJFLCAvKiBwdGhfYmFyX3QqICovCkBAIC0xMTgsOCArMTE4LDIyIEBACiAgICAgICBfVkdfVVNFUlJFUV9fSEdfQ0xFQU5fTUVNT1JZX0hFQVBCTE9DSywgLyogQWRkciBzdGFydF9vZl9ibG9jayAqLwogICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQ09ORF9JTklUX1BPU1QsICAvKiBwdGhfY29uZF90KiwgcHRoX2NvbmRfYXR0cl90Ki8KICAgICAgIF9WR19VU0VSUkVRX19IR19HTkFUX01BU1RFUl9IT09LLCAgICAgICAvKiB2b2lkKmQsdm9pZCptLFdvcmQgbWwgKi8KLSAgICAgIF9WR19VU0VSUkVRX19IR19HTkFUX01BU1RFUl9DT01QTEVURURfSE9PSywvKiB2b2lkKnMsV29yZCBtbCAqLwotICAgICAgX1ZHX1VTRVJSRVFfX0hHX0dFVF9BQklUUyAgICAgICAgICAgICAgIC8qIEFkZHIgYSxBZGRyIGFiaXRzLCB1bG9uZyBsZW4gKi8KKyAgICAgIF9WR19VU0VSUkVRX19IR19HTkFUX01BU1RFUl9DT01QTEVURURfSE9PSywgLyogdm9pZCpzLFdvcmQgbWwgKi8KKyAgICAgIF9WR19VU0VSUkVRX19IR19HRVRfQUJJVFMsICAgICAgICAgICAgICAvKiBBZGRyIGEsQWRkciBhYml0cywgdWxvbmcgbGVuICovCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DUkVBVEVfQkVHSU4sCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DUkVBVEVfRU5ELAorICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QUkUsICAgICAvKiBwdGhfbXhfdCosbG9uZyBpc1RyeUxvY2sgKi8KKyAgICAgIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUE9TVCwgICAgLyogcHRoX214X3QgKixsb25nIHRvb2tMb2NrICovCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfTE9DS19QT1NULCAgLyogcHRoX3J3bGtfdCosbG9uZyBpc1csbG9uZyAqLworICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX1VOTE9DS19QUkUsICAvKiBwdGhfcndsa190KiAqLworICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9QT1NUX1BSRSwgICAgICAgICAvKiBzZW1fdCogKi8KKyAgICAgIF9WR19VU0VSUkVRX19IR19QT1NJWF9TRU1fUE9TVF9QT1NULCAgICAgICAgLyogc2VtX3QqICovCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX1dBSVRfUFJFLCAgICAgICAgIC8qIHNlbV90KiAqLworICAgICAgX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9XQUlUX1BPU1QsICAgICAgICAvKiBzZW1fdCosIGxvbmcgdG9va0xvY2sgKi8KKyAgICAgIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NPTkRfU0lHTkFMX1BPU1QsICAgLyogcHRoX2NvbmRfdCogKi8KKyAgICAgIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NPTkRfQlJPQURDQVNUX1BPU1QsLyogcHRoX2NvbmRfdCogKi8KKyAgICAgIF9WR19VU0VSUkVRX19IR19SVExEX0JJTkRfR1VBUkQsICAgICAgICAgICAgLyogaW50IGZsYWdzICovCisgICAgICBfVkdfVVNFUlJFUV9fSEdfUlRMRF9CSU5EX0NMRUFSICAgICAgICAgICAgIC8qIGludCBmbGFncyAqLwogICAgfSBWZ19UQ2hlY2tDbGllbnRSZXF1ZXN0OwogCiAKQEAgLTIzOSwxMiArMjUzLDEyIEBACiAvKiBOb3RpZnkgaGVyZSBpbW1lZGlhdGVseSBiZWZvcmUgbXV0ZXggYWNxdWlzaXRpb24uICBfaXNUcnlMb2NrID09IDAKICAgIGZvciBhIG5vcm1hbCBhY3F1aXNpdGlvbiwgMSBmb3IgYSAidHJ5IiBzdHlsZSBhY3F1aXNpdGlvbi4gKi8KICNkZWZpbmUgVkFMR1JJTkRfSEdfTVVURVhfTE9DS19QUkUoX211dGV4LCBfaXNUcnlMb2NrKSAgICAgICBcCi0gICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QUkUsICAgICAgXAorICAgRE9fQ1JFUV92X1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX0FDUVVJUkVfUFJFLCAgIFwKICAgICAgICAgICAgICAgICB2b2lkKiwoX211dGV4KSwgbG9uZywoX2lzVHJ5TG9jaykpCiAKIC8qIE5vdGlmeSBoZXJlIGltbWVkaWF0ZWx5IGFmdGVyIGEgc3VjY2Vzc2Z1bCBtdXRleCBhY3F1aXNpdGlvbi4gKi8KICNkZWZpbmUgVkFMR1JJTkRfSEdfTVVURVhfTE9DS19QT1NUKF9tdXRleCkgICAgICAgICAgICAgICAgICBcCi0gICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1QsICAgICAgXAorICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfQUNRVUlSRV9QT1NULCAgIFwKICAgICAgICAgICAgICAgIHZvaWQqLChfbXV0ZXgpKQogCiAvKiBOb3RpZnkgaGVyZSBpbW1lZGlhdGVseSBiZWZvcmUgYSBtdXRleCByZWxlYXNlLiAqLwpAQCAtMjc0LDEzICsyODgsMTMgQEAKIC8qIE5vdGlmeSBoZXJlIGltbWVkaWF0ZWx5IGFmdGVyIGEgc2VtYXBob3JlIHdhaXQgKGFuIGFjcXVpcmUtc3R5bGUKICAgIG9wZXJhdGlvbikgKi8KICNkZWZpbmUgVkFMR1JJTkRfSEdfU0VNX1dBSVRfUE9TVChfc2VtKSAgICAgICAgICAgICAgICAgICAgICBcCi0gICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX1dBSVRfUE9TVCwgICAgICAgICAgXAorICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9BQ1FVSVJFRCwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgIHZvaWQqLChfc2VtKSkKIAogLyogTm90aWZ5IGhlcmUgaW1tZWRpYXRlbHkgYmVmb3JlIHNlbWFwaG9yZSBwb3N0IChhIHJlbGVhc2Utc3R5bGUKICAgIG9wZXJhdGlvbikgKi8KICNkZWZpbmUgVkFMR1JJTkRfSEdfU0VNX1BPU1RfUFJFKF9zZW0pICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX1BPU1RfUFJFLCAgICAgICAgICAgXAorICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9SRUxFQVNFRCwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgIHZvaWQqLChfc2VtKSkKIAogLyogTm90aWZ5IGhlcmUgaW1tZWRpYXRlbHkgYmVmb3JlIHNlbWFwaG9yZSBkZXN0cnVjdGlvbi4gKi8KQEAgLTM4NCwxMiArMzk4LDYgQEAKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywoX3F6el9sZW4pKQogCiAKLSNkZWZpbmUgVkFMR1JJTkRfSEdfRU5BQkxFX0NIRUNLSU5HKF9xenpfc3RhcnQsIF9xenpfbGVuKSAgICBcCi0gICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX0FSQU5HRV9NQUtFX1RSQUNLRUQsICAgICAgICAgXAotICAgICAgICAgICAgICAgICB2b2lkKiwoX3F6el9zdGFydCksICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywoX3F6el9sZW4pKQotCi0KIC8qICBDaGVja3MgdGhlIGFjY2Vzc2liaWxpdHkgYml0cyBmb3IgYWRkcmVzc2VzIFt6emEuLnp6YSt6em5ieXRlcy0xXS4KICAgICBJZiB6emFiaXRzIGFycmF5IGlzIHByb3ZpZGVkLCBjb3B5IHRoZSBhY2Nlc3NpYmlsaXR5IGJpdHMgaW4genphYml0cy4KICAgIFJldHVybiB2YWx1ZXM6CkBAIC03MzMsMTIgKzc0MSwxMiBAQAogLyogUmVwb3J0IHRoYXQgdGhlIGxvY2sgYXQgYWRkcmVzcyBMT0NLIGhhcyBqdXN0IGJlZW4gYWNxdWlyZWQuCiAgICBpc193PTEgZm9yIHdyaXRlciBsb2NrLCBpc193PTAgZm9yIHJlYWRlciBsb2NrLiAqLwogI2RlZmluZSBBTk5PVEFURV9SV0xPQ0tfQUNRVUlSRUQobG9jaywgaXNfdykgICAgICAgICAgICAgICAgIFwKLSAgRE9fQ1JFUV92X1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BPU1QsICAgICBcCisgIERPX0NSRVFfdl9XVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfQUNRVUlSRUQsICAgICAgXAogICAgICAgICAgICAgICAgdm9pZCosKGxvY2spLCB1bnNpZ25lZCBsb25nLChpc193KSkKIAogLyogUmVwb3J0IHRoYXQgdGhlIGxvY2sgYXQgYWRkcmVzcyBMT0NLIGlzIGFib3V0IHRvIGJlIHJlbGVhc2VkLiAqLwogI2RlZmluZSBBTk5PVEFURV9SV0xPQ0tfUkVMRUFTRUQobG9jaywgaXNfdykgICAgICAgICAgICAgICAgIFwKLSAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX1VOTE9DS19QUkUsICAgICBcCisgIERPX0NSRVFfdl9XKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19SRUxFQVNFRCwgICAgICAgXAogICAgICAgICAgICAgICB2b2lkKiwobG9jaykpIC8qIGlzX3cgaXMgaWdub3JlZCAqLwogCiAKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL2hnX2FkZHJkZXNjci5jIGIvaGVsZ3JpbmQvaGdfYWRkcmRlc2NyLmMKaW5kZXggYWJmNWFhNS4uNTNmOThmYyAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvaGdfYWRkcmRlc2NyLmMKKysrIGIvaGVsZ3JpbmQvaGdfYWRkcmRlc2NyLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBIZWxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBkZXRlY3RpbmcgZXJyb3JzCiAgICBpbiB0aHJlYWRlZCBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTIgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL2hnX2FkZHJkZXNjci5oIGIvaGVsZ3JpbmQvaGdfYWRkcmRlc2NyLmgKaW5kZXggMzJkNzg0Mi4uMTRmNzEyYSAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvaGdfYWRkcmRlc2NyLmgKKysrIGIvaGVsZ3JpbmQvaGdfYWRkcmRlc2NyLmgKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBIZWxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBkZXRlY3RpbmcgZXJyb3JzCiAgICBpbiB0aHJlYWRlZCBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTIgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL2hnX2Jhc2ljcy5jIGIvaGVsZ3JpbmQvaGdfYmFzaWNzLmMKaW5kZXggNGEwMzljOS4uNjc5NDY4MyAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvaGdfYmFzaWNzLmMKKysrIGIvaGVsZ3JpbmQvaGdfYmFzaWNzLmMKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBIZWxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBkZXRlY3RpbmcgZXJyb3JzCiAgICBpbiB0aHJlYWRlZCBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTc3LDcgKzc3LDcgQEAKIAogVVdvcmQgSEdfKGNsb19jb25mbGljdF9jYWNoZV9zaXplKSA9IDIwMDAwMDA7CiAKLVdvcmQgIEhHXyhjbG9fc2FuaXR5X2ZsYWdzKSA9IDA7CitVV29yZCBIR18oY2xvX3Nhbml0eV9mbGFncykgPSAwOwogCiBCb29sICBIR18oY2xvX2ZyZWVfaXNfd3JpdGUpID0gRmFsc2U7CiAKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL2hnX2Jhc2ljcy5oIGIvaGVsZ3JpbmQvaGdfYmFzaWNzLmgKaW5kZXggNzM3Y2ZhMC4uMDQwNzY1ZCAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvaGdfYmFzaWNzLmgKKysrIGIvaGVsZ3JpbmQvaGdfYmFzaWNzLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBIZWxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBkZXRlY3RpbmcgZXJyb3JzCiAgICBpbiB0aHJlYWRlZCBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgT3BlbldvcmtzIEx0ZAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgT3BlbldvcmtzIEx0ZAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTgwLDcgKzgwLDcgQEAKIAogICAgMTogImFwcHJveCI6IGNvbGxlY3Qgb25lIHN0YWNrIHRyYWNlIHBlciAobm90aW9uYWwpIHNlZ21lbnQsIHRoYXQKICAgICAgIGlzLCBjb2xsZWN0IGEgc3RhY2sgdHJhY2UgZm9yIGEgdGhyZWFkIGV2ZXJ5IHRpbWUgaXRzIHZlY3RvcgotICAgICAgY2xvY2sgY2hhbmdlcy4gIFRoaXMgZmFjaWxpYXRlcyBzaG93aW5nIHRoZSBib3VuZHMgb2YgdGhlCisgICAgICBjbG9jayBjaGFuZ2VzLiAgVGhpcyBmYWNpbGl0YXRlcyBzaG93aW5nIHRoZSBib3VuZHMgb2YgdGhlCiAgICAgICBjb25mbGljdGluZyBzZWdtZW50KHMpLCB3aXRoIHJlbGF0aXZlbHkgc21hbGwgb3ZlcmhlYWQuCiAKICAgIDI6ICJmdWxsIjogY29sbGVjdCBhIHN0YWNrIHRyYWNlIGV2ZXJ5IHRpbWUgdGhlIGNvbnN0cmFpbnRzIGZvciBhCkBAIC0xMDEsNyArMTAxLDcgQEAKIAogLyogU2FuaXR5IGNoZWNrIGxldmVsLiAgVGhpcyBpcyBhbiBvci1pbmcgb2YKICAgIFNDRV97VEhSRUFEUyxMT0NLUyxCSUdSQU5HRSxBQ0NFU1MsTEFPR30uICovCi1leHRlcm4gV29yZCBIR18oY2xvX3Nhbml0eV9mbGFncyk7CitleHRlcm4gVVdvcmQgSEdfKGNsb19zYW5pdHlfZmxhZ3MpOwogCiAvKiBUcmVhdCBoZWFwIGZyZWVzIGFzIGlmIHRoZSBtZW1vcnkgd2FzIHdyaXR0ZW4gaW1tZWRpYXRlbHkgcHJpb3IgdG8KICAgIHRoZSBmcmVlLiAgVGhpcyBzaGFrZXMgb3V0IHJhY2VzIGluIHdoaWNoIG1lbW9yeSBpcyByZWZlcmVuY2VkIGJ5CmRpZmYgLS1naXQgYS9oZWxncmluZC9oZ19lcnJvcnMuYyBiL2hlbGdyaW5kL2hnX2Vycm9ycy5jCmluZGV4IGQyMDU4ZDUuLmRjYjUwMmEgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL2hnX2Vycm9ycy5jCisrKyBiL2hlbGdyaW5kL2hnX2Vycm9ycy5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgSGVsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgZGV0ZWN0aW5nIGVycm9ycwogICAgaW4gdGhyZWFkZWQgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwNy0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMjEyLDcgKzEyMTIsNyBAQAogICAgICAgICAgICAgaWYgKHhlLT5YRS5SYWNlLmgxX2N0X21ic2VnZW5kRUMpIHsKICAgICAgICAgICAgICAgIFZHXyhwcF9FeGVDb250ZXh0KSggeGUtPlhFLlJhY2UuaDFfY3RfbWJzZWdlbmRFQyApOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGVtaXQoICIgIDxhdXh3aGF0Pih0aGUgZW5kIG9mIHRoZSB0aGUgdGhyZWFkKTwvYXV4d2hhdD5cbiIgKTsKKyAgICAgICAgICAgICAgIGVtaXQoICIgIDxhdXh3aGF0Pih0aGUgZW5kIG9mIHRoZSB0aHJlYWQpPC9hdXh3aGF0PlxuIiApOwogICAgICAgICAgICAgfQogICAgICAgICAgfQogCkBAIC0xMjU2LDcgKzEyNTYsNyBAQAogICAgICAgICAgICAgaWYgKHhlLT5YRS5SYWNlLmgxX2N0X21ic2VnZW5kRUMpIHsKICAgICAgICAgICAgICAgIFZHXyhwcF9FeGVDb250ZXh0KSggeGUtPlhFLlJhY2UuaDFfY3RfbWJzZWdlbmRFQyApOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgIGVtaXQoICIgICAodGhlIGVuZCBvZiB0aGUgdGhlIHRocmVhZClcbiIgKTsKKyAgICAgICAgICAgICAgIGVtaXQoICIgICAodGhlIGVuZCBvZiB0aGUgdGhyZWFkKVxuIiApOwogICAgICAgICAgICAgfQogICAgICAgICAgfQogCkBAIC0xMjk2LDcgKzEyOTYsNyBAQAogICAgaWYgKHRocmVhZHAtPmNvcmV0aWQgPT0gVkdfSU5WQUxJRF9USFJFQURJRCkgCiAgICAgICBWR18ocHJpbnRmKSgiIHRpZCAoZXhpdGVkKVxuIik7CiAgICBlbHNlCi0gICAgICBWR18ocHJpbnRmKSgiIHRpZCAlZFxuIiwgdGhyZWFkcC0+Y29yZXRpZCk7CisgICAgICBWR18ocHJpbnRmKSgiIHRpZCAldVxuIiwgdGhyZWFkcC0+Y29yZXRpZCk7CiAgICB7CiAgICAgICBMb2NrKiogbG9ja3NIZWxkV19QOwogICAgICAgbG9ja3NIZWxkV19QID0gZW51bWVyYXRlX1dvcmRTZXRfaW50b19Mb2NrUF92ZWN0b3IoCmRpZmYgLS1naXQgYS9oZWxncmluZC9oZ19lcnJvcnMuaCBiL2hlbGdyaW5kL2hnX2Vycm9ycy5oCmluZGV4IDNjNGRkM2IuLmU4YjBlNTcgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL2hnX2Vycm9ycy5oCisrKyBiL2hlbGdyaW5kL2hnX2Vycm9ycy5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgSGVsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgZGV0ZWN0aW5nIGVycm9ycwogICAgaW4gdGhyZWFkZWQgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwNy0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9oZWxncmluZC9oZ19pbnRlcmNlcHRzLmMgYi9oZWxncmluZC9oZ19pbnRlcmNlcHRzLmMKaW5kZXggZjEwOWJmMy4uZmQ1MzIwOCAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvaGdfaW50ZXJjZXB0cy5jCisrKyBiL2hlbGdyaW5kL2hnX2ludGVyY2VwdHMuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEhlbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGRldGVjdGluZyBlcnJvcnMKICAgIGluIHRocmVhZGVkIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTgsNiArNTgsMTggQEAKICNpbmNsdWRlICJoZWxncmluZC5oIgogI2luY2x1ZGUgImNvbmZpZy5oIgogCisKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogU2VlIHBvcnRpbmcgY29tbWVudHMgaW4gZHJkL2RyZF9wdGhyZWFkX2ludGVyY2VwdHMuYworICAgSG93ZXZlciB3aGVuIGEgUE9TSVggdGhyZWFkcyBBUEkgZnVuY3Rpb24gKGZvciBleGFtcGxlIHB0aHJlYWRfY29uZF9pbml0KQorICAgaXMgYnVpbHQgdXBvbiB0aGUgU29sYXJpcyBvbmUgKGNvbmRfaW5pdCksIGludGVyY2VwdCBvbmx5IHRoZSBib3R0b20gb25lLgorICAgSGVsZ3JpbmQgZG9lcyBub3QgY29udGFpbiBnZW5lcmljIHN5bmNocm9uaXphdGlvbiBuZXN0aW5nIGxpa2UgRFJECisgICBhbmQgZG91YmxlIGludGVyY2VwdCBjb25mdXNlcyBpdC4gKi8KKyNpbmNsdWRlIDxzeW5jaC5oPgorI2luY2x1ZGUgPHRocmVhZC5oPgorI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKKwogI2RlZmluZSBUUkFDRV9QVEhfRk5TIDAKICNkZWZpbmUgVFJBQ0VfUVQ0X0ZOUyAwCiAjZGVmaW5lIFRSQUNFX0dOQVRfRk5TIDAKQEAgLTY3LDkgKzc5LDI2IEBACiAvKi0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBPbiBTb2xhcmlzLCBsaWJwdGhyZWFkIGlzIGp1c3QgYSBmaWx0ZXIgbGlicmFyeSBvbiB0b3Agb2YgbGliYy4KKyAqIFRocmVhZGluZyBhbmQgc3luY2hyb25pemF0aW9uIGZ1bmN0aW9ucyBpbiBydW50aW1lIGxpbmtlciBhcmUgbm90CisgKiBpbnRlcmNlcHRlZC4KKyAqLworI2RlZmluZSBQVEhfRlVOQyhyZXRfdHksIGYsIGFyZ3MuLi4pIFwKKyAgIHJldF90eSBJX1dSQVBfU09OQU1FX0ZOTkFNRV9aWihWR19aX0xJQkNfU09OQU1FLGYpKGFyZ3MpOyBcCisgICByZXRfdHkgSV9XUkFQX1NPTkFNRV9GTk5BTUVfWlooVkdfWl9MSUJDX1NPTkFNRSxmKShhcmdzKQorCisvKiBwdGhyZWFkX3QgaXMgdHlwZWRlZidkIHRvICd1bnNpZ25lZCBpbnQnIGJ1dCBpbiBET19DUkVRXyogbWFjcm9zCisgICBzaXplb2YoV29yZCkgaXMgZXhwZWN0ZWQuICovCisjZGVmaW5lIENSRVFfUFRIUkVBRF9UIFdvcmQKKyNkZWZpbmUgU0VNX0VSUk9SIHJldAorI2Vsc2UKICNkZWZpbmUgUFRIX0ZVTkMocmV0X3R5LCBmLCBhcmdzLi4uKSBcCiAgICByZXRfdHkgSV9XUkFQX1NPTkFNRV9GTk5BTUVfWlooVkdfWl9MSUJQVEhSRUFEX1NPTkFNRSxmKShhcmdzKTsgXAogICAgcmV0X3R5IElfV1JBUF9TT05BTUVfRk5OQU1FX1paKFZHX1pfTElCUFRIUkVBRF9TT05BTUUsZikoYXJncykKKyNkZWZpbmUgQ1JFUV9QVEhSRUFEX1QgcHRocmVhZF90CisjZGVmaW5lIFNFTV9FUlJPUiBlcnJubworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAKIC8vIERvIGEgY2xpZW50IHJlcXVlc3QuICBUaGVzZSBhcmUgbWFjcm9zIHJhdGhlciB0aGFuIGEgZnVuY3Rpb25zIHNvCiAvLyBhcyB0byBhdm9pZCBoYXZpbmcgYW4gZXh0cmEgZnJhbWUgaW4gc3RhY2sgdHJhY2VzLgpAQCAtMTMzLDYgKzE2MiwyMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FyZzEsX2FyZzIsX2FyZzMsMCwwKTsgXAogICAgfSB3aGlsZSAoMCkKIAorI2RlZmluZSBET19DUkVRX3ZfV1dXVyhfY3JlcUYsIF90eTFGLF9hcmcxRiwgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICBfdHkyRiwgX2FyZzJGLCBfdHkzRiwgX2FyZzNGLCAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICBfdHk0RiwgX2FyZzRGKSAgICAgICAgICAgICAgICAgICAgXAorICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgV29yZCBfYXJnMSwgX2FyZzIsIF9hcmczLCBfYXJnNDsgICAgICAgICAgICAgICAgICAgXAorICAgICAgYXNzZXJ0KHNpemVvZihfdHkxRikgPT0gc2l6ZW9mKFdvcmQpKTsgICAgICAgICAgICAgXAorICAgICAgYXNzZXJ0KHNpemVvZihfdHkyRikgPT0gc2l6ZW9mKFdvcmQpKTsgICAgICAgICAgICAgXAorICAgICAgYXNzZXJ0KHNpemVvZihfdHkzRikgPT0gc2l6ZW9mKFdvcmQpKTsgICAgICAgICAgICAgXAorICAgICAgYXNzZXJ0KHNpemVvZihfdHk0RikgPT0gc2l6ZW9mKFdvcmQpKTsgICAgICAgICAgICAgXAorICAgICAgX2FyZzEgPSAoV29yZCkoX2FyZzFGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgX2FyZzIgPSAoV29yZCkoX2FyZzJGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgX2FyZzMgPSAoV29yZCkoX2FyZzNGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgX2FyZzQgPSAoV29yZCkoX2FyZzRGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgVkFMR1JJTkRfRE9fQ0xJRU5UX1JFUVVFU1RfU1RNVCgoX2NyZXFGKSwgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYXJnMSxfYXJnMixfYXJnMyxfYXJnNCwwKTsgXAorICAgfSB3aGlsZSAoMCkKIAogI2RlZmluZSBET19QdGhBUEllcnJvcihfZm5uYW1lRiwgX2VyckYpICAgICAgICAgICAgICAgICAgXAogICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTk2LDExICsyNDEsMTIxIEBACiAgICAgICBjYXNlIEVERUFETEs6ICAgICByZXR1cm4gIkVERUFETEs6IFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyIjsKICAgICAgIGNhc2UgRU9QTk9UU1VQUDogIHJldHVybiAiRU9QTk9UU1VQUDogT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQgb24gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFuc3BvcnQgZW5kcG9pbnQiOyAvKiBob25lc3QsIGd1diAqLwotICAgICAgZGVmYXVsdDogICAgICAgICAgcmV0dXJuICJ0Y19pbnRlcmNlcHRzLmM6IGxhbWVfc3RyZXJyb3IoKTogIgorICAgICAgY2FzZSBFVElNRTogICAgICAgcmV0dXJuICJFVElNRTogVGltZXIgZXhwaXJlZCI7CisgICAgICBkZWZhdWx0OiAgICAgICAgICByZXR1cm4gImhnX2ludGVyY2VwdHMuYzogbGFtZV9zdHJlcnJvcigpOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaGFuZGxlZCBjYXNlIC0tIHBsZWFzZSBmaXggbWUhIjsKICAgIH0KIH0KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKgorICogU29sYXJpcyBwcm92aWRlcyBoaWdoZXIgdGhyb3VnaHB1dCwgcGFyYWxsZWxpc20gYW5kIHNjYWxhYmlsaXR5IHRoYW4gb3RoZXIKKyAqIG9wZXJhdGluZyBzeXN0ZW1zLCBhdCB0aGUgY29zdCBvZiBtb3JlIGZpbmUtZ3JhaW5lZCBsb2NraW5nIGFjdGl2aXR5LgorICogVGhpcyBtZWFucyBmb3IgZXhhbXBsZSB0aGF0IHdoZW4gYSB0aHJlYWQgaXMgY3JlYXRlZCB1bmRlciBMaW51eCwganVzdCBvbmUKKyAqIGJpZyBsb2NrIGluIGdsaWJjIGlzIHVzZWQgZm9yIGFsbCB0aHJlYWQgc2V0dXAuIFNvbGFyaXMgbGliYyB1c2VzIHNldmVyYWwKKyAqIGZpbmUtZ3JhaW5lZCBsb2NrcyBhbmQgdGhlIGNyZWF0b3IgdGhyZWFkIHJlc3VtZXMgaXRzIGFjdGl2aXRpZXMgYXMgc29vbgorICogYXMgcG9zc2libGUsIGxlYXZpbmcgZm9yIGV4YW1wbGUgc3RhY2sgYW5kIFRMUyBzZXR1cCBhY3Rpdml0aWVzIHRvIHRoZQorICogY3JlYXRlZCB0aHJlYWQuCisgKgorICogVGhpcyBzaXR1YXRpb24gY29uZnVzZXMgSGVsZ3JpbmQgYXMgaXQgYXNzdW1lcyB0aGVyZSBpcyBzb21lIGZhbHNlIG9yZGVyaW5nCisgKiBpbiBwbGFjZSBiZXR3ZWVuIGNyZWF0b3IgYW5kIGNyZWF0ZWQgdGhyZWFkOyBhbmQgdGhlcmVmb3JlIG1hbnkgdHlwZXMgb2YKKyAqIHJhY2UgY29uZGl0aW9ucyBpbiB0aGUgYXBwbGljYXRpb24gd291bGQgbm90IGJlIHJlcG9ydGVkLiBUbyBwcmV2ZW50IHN1Y2gKKyAqIGZhbHNlIG9yZGVyaW5nLCBjb21tYW5kIGxpbmUgb3B0aW9uIC0taWdub3JlLXRocmVhZC1jcmVhdGlvbiBpcyBzZXQgdG8KKyAqICd5ZXMnIGJ5IGRlZmF1bHQgb24gU29sYXJpcy4gQWxsIGFjdGl2aXR5IChsb2Fkcywgc3RvcmVzLCBjbGllbnQgcmVxdWVzdHMpCisgKiBpcyB0aGVyZWZvcmUgaWdub3JlZCBkdXJpbmc6CisgKiAtIHB0aHJlYWRfY3JlYXRlKCkgY2FsbCBpbiB0aGUgY3JlYXRvciB0aHJlYWQgW2xpYmMuc29dCisgKiAtIHRocmVhZCBjcmVhdGlvbiBwaGFzZSAoc3RhY2sgYW5kIFRMUyBzZXR1cCkgaW4gdGhlIGNyZWF0ZWQgdGhyZWFkIFtsaWJjLnNvXQorICoKKyAqIEFzIGV4cGxhaW5lZCBpbiB0aGUgY29tbWVudHMgZm9yIF90aV9iaW5kX2d1YXJkKCksIHdoZW5ldmVyIHRoZSBydW50aW1lCisgKiBsaW5rZXIgaGFzIHRvIHBlcmZvcm0gYW55IGFjdGl2aXR5IChzdWNoIGFzIHJlc29sdmluZyBhIHN5bWJvbCksIGl0IHByb3RlY3RzCisgKiBpdHMgZGF0YSBzdHJ1Y3R1cmVzIGJ5IGNhbGxpbmcgaW50byBydF9iaW5kX2d1YXJkKCkgd2hpY2ggaW4gdHVybiBpbnZva2VzCisgKiBfdGlfYmluZF9ndWFyZCgpIGluIGxpYmMuIFBvaW50ZXJzIHRvIF90aV9iaW5kX2d1YXJkKCkgYW5kIF90aV9iaW5kX2NsZWFyKCkKKyAqIGFyZSBwYXNzZWQgZnJvbSBsaWJjIHRvIHJ1bnRpbWUgbGlua2VyIGluIF9sZF9saWJjKCkgY2FsbCBkdXJpbmcgbGliY19pbml0KCkuCisgKiBBbGwgYWN0aXZpdHkgaXMgYWxzbyBpZ25vcmVkIGR1cmluZzoKKyAqIC0gcnVudGltZSBkeW5hbWljIGxpbmtlciB3b3JrIGJldHdlZW4gcnRfYmluZF9ndWFyZCgpIGFuZCBydF9iaW5kX2NsZWFyKCkKKyAqICAgY2FsbHMgW2xkLnNvXQorICoKKyAqIFRoaXMgYWxzbyBtZWFucyB0aGF0IEhlbGdyaW5kIGRvZXMgbm90IHJlcG9ydCByYWNlIGNvbmRpdGlvbnMgaW4gbGliYyAod2hlbgorICogLS1pZ25vcmUtdGhyZWFkLWNyZWF0aW9uPXllcykgYW5kIHJ1bnRpbWUgbGlua2VyIGl0c2VsZiAodW5jb25kaXRpb25hbGx5KQorICogZHVyaW5nIHRoZXNlIGlnbm9yZWQgc2VxdWVuY2VzLgorICovCisKKyNpbmNsdWRlICJwdWJfdG9vbF9saWJjYXNzZXJ0LmgiCisjaW5jbHVkZSAicHViX3Rvb2xfdmtpLmgiCisKKy8qCisgKiBPcmlnaW5hbCBmdW5jdGlvbiBwb2ludGVycyBmb3IgX3RpX2JpbmRfZ3VhcmQoKSBhbmQgX3RpX2JpbmRfY2xlYXIoKQorICogZnJvbSBsaWJjLiBUaGV5IGFyZSBpbnRlcmNlcHRlZCBpbiBmdW5jdGlvbiB3cmFwcGVyIG9mIF9sZF9saWJjKCkuCisgKi8KK3R5cGVkZWYgaW50ICgqaGdfcnRsZF9ndWFyZF9mbikoaW50IGZsYWdzKTsKK3N0YXRpYyBoZ19ydGxkX2d1YXJkX2ZuIGhnX3J0bGRfYmluZF9ndWFyZCA9IE5VTEw7CitzdGF0aWMgaGdfcnRsZF9ndWFyZF9mbiBoZ19ydGxkX2JpbmRfY2xlYXIgPSBOVUxMOworCitzdGF0aWMgdm9pZCBoZ19pbml0KHZvaWQpIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSk7CitzdGF0aWMgdm9pZCBoZ19pbml0KHZvaWQpCit7CisgICBpZiAoKGhnX3J0bGRfYmluZF9ndWFyZCA9PSBOVUxMKSB8fCAoaGdfcnRsZF9iaW5kX2NsZWFyID09IE5VTEwpKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwKKyJCaW5kIGd1YXJkIGZ1bmN0aW9ucyBmb3IgdGhlIHJ1bnRpbWUgbGlua2VyIChsZC5zby4xKSB3ZXJlIG5vdCBpbnRlcmNlcHRlZC5cbiIKKyJUaGlzIG1lYW5zIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiBsaWJjIGFuZCBydW50aW1lIGxpbmtlciBjaGFuZ2VkXG4iCisiYW5kIEhlbGdyaW5kIG5lZWRzIHRvIGJlIHBvcnRlZCBwcm9wZXJseS4gR2l2aW5nIHVwLlxuIik7CisgICAgICB0bF9hc3NlcnQoMCk7CisgICB9Cit9CisKKy8qCisgKiBJbnRlcmNlcHRzIGZvciBfdGlfYmluZF9ndWFyZCgpIGFuZCBfdGlfYmluZF9jbGVhcigpIGZ1bmN0aW9ucyBmcm9tIGxpYmMuCisgKiBUaGVzZSBhcmUgaW50ZXJjZXB0ZWQgZHVyaW5nIF9sZF9saWJjKCkgY2FsbCBieSBpZGVudGlmeWluZyBDSV9CSU5EX0dVQVJECisgKiBhbmQgQ0lfQklORF9DTEVBUiwgdG8gcHJvdmlkZSByZXNpbGllbmNlIGFnYWluc3QgZnVuY3Rpb24gcmVuYW1pbmcuCisgKi8KK3N0YXRpYyBpbnQgX3RpX2JpbmRfZ3VhcmRfaW50ZXJjZXB0X1dSSyhpbnQgZmxhZ3MpCit7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKF9WR19VU0VSUkVRX19IR19SVExEX0JJTkRfR1VBUkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAwLCAwLCAwLCAwKTsKKyAgIHJldHVybiBoZ19ydGxkX2JpbmRfZ3VhcmQoZmxhZ3MpOworfQorCitzdGF0aWMgaW50IF90aV9iaW5kX2NsZWFyX2ludGVyY2VwdF9XUksoaW50IGZsYWdzKQoreworICAgaW50IHJldCA9IGhnX3J0bGRfYmluZF9jbGVhcihmbGFncyk7CisgICBWQUxHUklORF9ET19DTElFTlRfUkVRVUVTVF9TVE1UKF9WR19VU0VSUkVRX19IR19SVExEX0JJTkRfQ0xFQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAwLCAwLCAwLCAwKTsKKyAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBXcmFwcGVkIF9sZF9saWJjKCkgZnJvbSB0aGUgcnVudGltZSBsaW5rZXIgbGQuc28uMS4KKyAqLwordm9pZCBJX1dSQVBfU09OQU1FX0ZOTkFNRV9aWihWR19aX0xEX1NPXzEsIFp1bGRadWxpYmMpKHZraV9MY19pbnRlcmZhY2UgKnB0cik7Cit2b2lkIElfV1JBUF9TT05BTUVfRk5OQU1FX1paKFZHX1pfTERfU09fMSwgWnVsZFp1bGliYykodmtpX0xjX2ludGVyZmFjZSAqcHRyKQoreworICAgT3JpZ0ZuIGZuOworICAgaW50ICAgIHRhZzsKKworICAgVkFMR1JJTkRfR0VUX09SSUdfRk4oZm4pOworCisgICB2a2lfTGNfaW50ZXJmYWNlICpmdW5jcyA9IHB0cjsKKyAgIGZvciAodGFnID0gZnVuY3MtPmNpX3RhZzsgdGFnICE9IDA7IHRhZyA9ICgrK2Z1bmNzKS0+Y2lfdGFnKSB7CisgICAgICBzd2l0Y2ggKHRhZykgeworICAgICAgY2FzZSBWS0lfQ0lfQklORF9HVUFSRDoKKyAgICAgICAgIGlmIChmdW5jcy0+dmtpX2NpX3VuLmNpX2Z1bmMgIT0gX3RpX2JpbmRfZ3VhcmRfaW50ZXJjZXB0X1dSSykgeworICAgICAgICAgICAgaGdfcnRsZF9iaW5kX2d1YXJkID0gZnVuY3MtPnZraV9jaV91bi5jaV9mdW5jOworICAgICAgICAgICAgZnVuY3MtPnZraV9jaV91bi5jaV9mdW5jID0gX3RpX2JpbmRfZ3VhcmRfaW50ZXJjZXB0X1dSSzsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBWS0lfQ0lfQklORF9DTEVBUjoKKyAgICAgICAgIGlmIChmdW5jcy0+dmtpX2NpX3VuLmNpX2Z1bmMgIT0gX3RpX2JpbmRfY2xlYXJfaW50ZXJjZXB0X1dSSykgeworICAgICAgICAgICAgaGdfcnRsZF9iaW5kX2NsZWFyID0gZnVuY3MtPnZraV9jaV91bi5jaV9mdW5jOworICAgICAgICAgICAgZnVuY3MtPnZraV9jaV91bi5jaV9mdW5jID0gX3RpX2JpbmRfY2xlYXJfaW50ZXJjZXB0X1dSSzsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgfQorCisgICBDQUxMX0ZOX3ZfVyhmbiwgcHRyKTsKK30KKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBwdGhyZWFkX2NyZWF0ZSwgcHRocmVhZF9qb2luLCBwdGhyZWFkX2V4aXQgICAgICAgICAgICAgICAtLS0qLwpAQCAtMjEzLDcgKzM2OCw3IEBACiAgICB2b2lkKiBhcmcgICAgICAgICA9ICh2b2lkKil4YXJnc1sxXTsKICAgIHB0aHJlYWRfdCBtZSA9IHB0aHJlYWRfc2VsZigpOwogICAgLyogVGVsbCB0aGUgdG9vbCB3aGF0IG15IHB0aHJlYWRfdCBpcy4gKi8KLSAgIERPX0NSRVFfdl9XKF9WR19VU0VSUkVRX19IR19TRVRfTVlfUFRIUkVBRF9ULCBwdGhyZWFkX3QsbWUpOworICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1NFVF9NWV9QVEhSRUFEX1QsIENSRVFfUFRIUkVBRF9ULCBtZSk7CiAgICAvKiBhbGxvdyB0aGUgcGFyZW50IHRvIHByb2NlZWQuICBXZSBjYW4ndCBsZXQgaXQgcHJvY2VlZCB1bnRpbAogICAgICAgd2UncmUgcmVhZHkgYmVjYXVzZSAoMSkgd2UgbmVlZCB0byBtYWtlIHN1cmUgaXQgZG9lc24ndCBleGl0IGFuZAogICAgICAgaGVuY2UgZGVhbGxvY2F0ZSB4YXJnc1tdIHdoaWxlIHdlIHN0aWxsIG5lZWQgaXQsIGFuZCAoMikgd2UKQEAgLTI2Nyw3ICs0MjIsMTEgQEAKICAgICAgIGNvbWVzIHRvIHJlLXVzZSB0aGlzIHBpZWNlIG9mIHN0YWNrIGluIHNvbWUgb3RoZXIgZnJhbWUuICovCiAgICBWQUxHUklORF9IR19ESVNBQkxFX0NIRUNLSU5HKCZ4YXJncywgc2l6ZW9mKHhhcmdzKSk7CiAKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQ1JFQVRFX0JFR0lOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwKTsKICAgIENBTExfRk5fV19XV1dXKHJldCwgZm4sIHRocmVhZCxhdHRyLG15dGhyZWFkX3dyYXBwZXIsJnhhcmdzWzBdKTsKKyAgIFZBTEdSSU5EX0RPX0NMSUVOVF9SRVFVRVNUX1NUTVQoX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQ1JFQVRFX0VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCk7CiAKICAgIGlmIChyZXQgPT0gMCkgewogICAgICAgLyogd2UgaGF2ZSB0byB3YWl0IGZvciB0aGUgY2hpbGQgdG8gbm90aWZ5IHRoZSB0b29sIG9mIGl0cwpAQCAtMzEyLDEwICs0NzEsNjkgQEAKICAgICAgIC8vIHRyYXAgYW55dGhpbmcgZWxzZQogICAgICAgYXNzZXJ0KDApOwogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFBUSF9GVU5DKGludCwgcHRocmVhZFp1Y3JlYXRlLCAvLyBwdGhyZWFkX2NyZWF0ZQorICAgICAgICAgICAgICAgICBwdGhyZWFkX3QgKnRocmVhZCwgY29uc3QgcHRocmVhZF9hdHRyX3QgKmF0dHIsCisgICAgICAgICAgICAgICAgIHZvaWQgKigqc3RhcnQpICh2b2lkICopLCB2b2lkICphcmcpIHsKKyAgICAgIHJldHVybiBwdGhyZWFkX2NyZWF0ZV9XUksodGhyZWFkLCBhdHRyLCBzdGFydCwgYXJnKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBTb2xhcmlzIGFsc28gcHJvdmlkZXMgdGhyX2NyZWF0ZSgpIGluIGFkZGl0aW9uIHRvIHB0aHJlYWRfY3JlYXRlKCkuCisgKiBCb3RoIHB0aHJlYWRfY3JlYXRlKDNDKSBhbmQgdGhyX2NyZWF0ZSgzQykgYXJlIGJhc2VkIG9uIHByaXZhdGUKKyAqIF90aHJwX2NyZWF0ZSgpLgorICovCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgaW50IHRocl9jcmVhdGVfV1JLKHZvaWQgKnN0aywgc2l6ZV90IHN0a3NpemUsIHZvaWQgKigqc3RhcnQpKHZvaWQgKiksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmFyZywgbG9uZyBmbGFncywgdGhyZWFkX3QgKm5ld190aHJlYWQpCit7CisgICBpbnQgICAgcmV0OworICAgT3JpZ0ZuIGZuOworICAgdm9sYXRpbGUgV29yZCB4YXJnc1szXTsKKworICAgVkFMR1JJTkRfR0VUX09SSUdfRk4oZm4pOworICAgaWYgKFRSQUNFX1BUSF9GTlMpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiPDwgdGhyX2NyZWF0ZSB3cmFwcGVyIik7IGZmbHVzaChzdGRlcnIpOworICAgfQorICAgeGFyZ3NbMF0gPSAoV29yZClzdGFydDsKKyAgIHhhcmdzWzFdID0gKFdvcmQpYXJnOworICAgeGFyZ3NbMl0gPSAxOyAvKiBzZXJ2ZXMgYXMgYSBzcGlubG9jayAtLSBzaWdoICovCisgICAvKiBTZWUgY29tbWVudHMgaW4gcHRocmVhZF9jcmVhdGVfV1JLKCkgKi8KKyAgIFZBTEdSSU5EX0hHX0RJU0FCTEVfQ0hFQ0tJTkcoJnhhcmdzLCBzaXplb2YoeGFyZ3MpKTsKKworICAgVkFMR1JJTkRfRE9fQ0xJRU5UX1JFUVVFU1RfU1RNVChfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DUkVBVEVfQkVHSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDApOworICAgQ0FMTF9GTl9XXzZXKHJldCwgZm4sIHN0aywgc3Rrc2l6ZSwgbXl0aHJlYWRfd3JhcHBlciwgc3RhcnQsIGZsYWdzLAorICAgICAgICAgICAgICAgIG5ld190aHJlYWQpOworICAgVkFMR1JJTkRfRE9fQ0xJRU5UX1JFUVVFU1RfU1RNVChfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DUkVBVEVfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwKTsKKworICAgaWYgKHJldCA9PSAwKSB7CisgICAgICB3aGlsZSAoeGFyZ3NbMl0gIT0gMCkgeworICAgICAgICAgLyogU2VlIGNvbW1lbnRzIGluIHB0aHJlYWRfY3JlYXRlX1dSSygpLiAqLworICAgICAgICAgc2NoZWRfeWllbGQoKTsKKyAgICAgIH0KKyAgIH0gZWxzZSB7CisgICAgICBET19QdGhBUEllcnJvcigidGhyX2NyZWF0ZSIsIHJldCk7CisgICB9CisKKyAgIFZBTEdSSU5EX0hHX0VOQUJMRV9DSEVDS0lORygmeGFyZ3MsIHNpemVvZih4YXJncykpOworCisgICBpZiAoVFJBQ0VfUFRIX0ZOUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICIgOjogdGhyX2NyZWF0ZSAtPiAlZCA+PlxuIiwgcmV0KTsKKyAgIH0KKyAgIHJldHVybiByZXQ7Cit9CisgICBQVEhfRlVOQyhpbnQsIHRoclp1Y3JlYXRlLCAvLyB0aHJfY3JlYXRlCisgICAgICAgICAgICAgICAgIHZvaWQgKnN0aywgc2l6ZV90IHN0a3NpemUsIHZvaWQgKigqc3RhcnQpKHZvaWQgKiksCisgICAgICAgICAgICAgICAgIHZvaWQgKmFyZywgbG9uZyBmbGFncywgdGhyZWFkX3QgKm5ld190aHJlYWQpIHsKKyAgICAgIHJldHVybiB0aHJfY3JlYXRlX1dSSyhzdGssIHN0a3NpemUsIHN0YXJ0LCBhcmcsIGZsYWdzLCBuZXdfdGhyZWFkKTsKKyAgIH0KKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIGdsaWJjOiAgcHRocmVhZF9qb2luCkBAIC0zMzgsNyArNTU2LDcgQEAKICAgICAgIGl0IGlzIGd1YXJhbnRlZWQgKGJ5IE5QVEwpIHRoYXQgdGhlIGpvaW5lciB3aWxsIGNvbXBsZXRlbHkgZ29uZQogICAgICAgYmVmb3JlIHB0aHJlYWRfam9pbiAodGhlIG9yaWdpbmFsKSByZXR1cm5zLiAgU2VlIGVtYWlsIGJlbG93LiovCiAgICBpZiAocmV0ID09IDAgLypzdWNjZXNzKi8pIHsKLSAgICAgIERPX0NSRVFfdl9XKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0pPSU5fUE9TVCwgcHRocmVhZF90LHRocmVhZCk7CisgICAgICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9KT0lOX1BPU1QsIENSRVFfUFRIUkVBRF9ULCB0aHJlYWQpOwogICAgfSBlbHNlIHsgCiAgICAgICBET19QdGhBUEllcnJvciggInB0aHJlYWRfam9pbiIsIHJldCApOwogICAgfQpAQCAtMzU4LDYgKzU3NiwxMSBAQAogICAgICAgICAgICAgcHRocmVhZF90IHRocmVhZCwgdm9pZCoqIHZhbHVlX3BvaW50ZXIpIHsKICAgICAgIHJldHVybiBwdGhyZWFkX2pvaW5fV1JLKHRocmVhZCwgdmFsdWVfcG9pbnRlcik7CiAgICB9CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVqb2luLCAvLyBwdGhyZWFkX2pvaW4KKyAgICAgICAgICAgIHB0aHJlYWRfdCB0aHJlYWQsIHZvaWQqKiB2YWx1ZV9wb2ludGVyKSB7CisgICAgICByZXR1cm4gcHRocmVhZF9qb2luX1dSSyh0aHJlYWQsIHZhbHVlX3BvaW50ZXIpOworICAgfQogI2Vsc2UKICMgIGVycm9yICJVbnN1cHBvcnRlZCBPUyIKICNlbmRpZgpAQCAtNDA0LDYgKzYyNyw0MyBAQAogZG9uZS4gIE5vIHdheSB0aGUgam9pbmVyIGNhbiByZXR1cm4gYmVmb3JlIHRoZSB0aHJlYWQgaXMgZ29uZS4KICovCiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogU29sYXJpcyBhbHNvIHByb3ZpZGVzIHRocl9qb2luKCkgaW4gYWRkaXRpb24gdG8gcHRocmVhZF9qb2luKCkuCisgKiBCb3RoIHB0aHJlYWRfam9pbigzQykgYW5kIHRocl9qb2luKDNDKSBhcmUgYmFzZWQgb24gcHJpdmF0ZSBfdGhycF9qb2luKCkuCisgKgorICogOlRPRE86IE5vIGZ1bmN0aW9uYWxpdHkgaXMgY3VycmVudGx5IHByb3ZpZGVkIGZvciBqb2luZWUgPT0gMCBhbmQgZGVwYXJ0ZWQuCisgKiAgICAgICAgVGhpcyB3b3VsZCByZXF1aXJlIGFub3RoZXIgY2xpZW50IHJlcXVlc3QsIG9mIGNvdXJzZS4KKyAqLworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIGludCB0aHJfam9pbl9XUksodGhyZWFkX3Qgam9pbmVlLCB0aHJlYWRfdCAqZGVwYXJ0ZWQsIHZvaWQgKip0aHJlYWRfcmV0dXJuKQoreworICAgaW50IHJldDsKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKyAgIGlmIChUUkFDRV9QVEhfRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIjw8IHRocl9qb2luIHdyYXBwZXIiKTsgZmZsdXNoKHN0ZGVycik7CisgICB9CisKKyAgIENBTExfRk5fV19XV1cocmV0LCBmbiwgam9pbmVlLCBkZXBhcnRlZCwgdGhyZWFkX3JldHVybik7CisKKyAgIGlmIChyZXQgPT0gMCAvKnN1Y2Nlc3MqLykgeworICAgICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfSk9JTl9QT1NULCBDUkVRX1BUSFJFQURfVCwgam9pbmVlKTsKKyAgIH0gZWxzZSB7CisgICAgICBET19QdGhBUEllcnJvcigidGhyX2pvaW4iLCByZXQpOworICAgfQorCisgICBpZiAoVFJBQ0VfUFRIX0ZOUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICIgOjogdGhyX2pvaW4gLT4gJWQgPj5cbiIsIHJldCk7CisgICB9CisgICByZXR1cm4gcmV0OworfQorICAgUFRIX0ZVTkMoaW50LCB0aHJadWpvaW4sIC8vIHRocl9qb2luCisgICAgICAgICAgICB0aHJlYWRfdCBqb2luZWUsIHRocmVhZF90ICpkZXBhcnRlZCwgdm9pZCAqKnRocmVhZF9yZXR1cm4pIHsKKyAgICAgIHJldHVybiB0aHJfam9pbl9XUksoam9pbmVlLCBkZXBhcnRlZCwgdGhyZWFkX3JldHVybik7CisgICB9CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKworCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBBZGEgZ2NjIGduYXQgcnVudGltZToKIC8vIFRoZSBnbmF0IGdjYyBBZGEgcnVudGltZSBkb2VzIG5vdCB1c2UgcHRocmVhZF9qb2luLiBJbnN0ZWFkLCBpdCB1c2VzCkBAIC00OTAsNiArNzUwLDcgQEAKICovCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNpZiAhZGVmaW5lZChWR09fc29sYXJpcykKIC8vIGdsaWJjOiAgcHRocmVhZF9tdXRleF9pbml0CiAvLyBkYXJ3aW46IHB0aHJlYWRfbXV0ZXhfaW5pdAogUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVtdXRleFp1aW5pdCwgLy8gcHRocmVhZF9tdXRleF9pbml0CkBAIC01MjcsMTIgKzc4OCw0NSBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2Vsc2UgLyogVkdPX3NvbGFyaXMgKi8KKworLy8gU29sYXJpczogbXV0ZXhfaW5pdCAocHRocmVhZF9tdXRleF9pbml0IGNhbGxzIGhlcmUpCitQVEhfRlVOQyhpbnQsIG11dGV4WnVpbml0LCAvLyBtdXRleF9pbml0CisgICAgICAgICAgICAgIG11dGV4X3QgKm11dGV4LCBpbnQgdHlwZSwgdm9pZCAqYXJnKQoreworICAgaW50ICAgIHJldDsKKyAgIGxvbmcgICBtYlJlYzsKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKyAgIGlmIChUUkFDRV9QVEhfRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIjw8IG14aW5pdCAlcCIsIG11dGV4KTsgZmZsdXNoKHN0ZGVycik7CisgICB9CisKKyAgIG1iUmVjID0gKCh0eXBlICYgTE9DS19SRUNVUlNJVkUpICE9IDApID8gMSA6IDA7CisKKyAgIENBTExfRk5fV19XV1cocmV0LCBmbiwgbXV0ZXgsIHR5cGUsIGFyZyk7CisKKyAgIGlmIChyZXQgPT0gMCAvKnN1Y2Nlc3MqLykgeworICAgICAgRE9fQ1JFUV92X1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX0lOSVRfUE9TVCwKKyAgICAgICAgICAgICAgICAgICBtdXRleF90ICosIG11dGV4LCBsb25nLCBtYlJlYyk7CisgICB9IGVsc2UgeworICAgICAgRE9fUHRoQVBJZXJyb3IoIm11dGV4X2luaXQiLCByZXQpOworICAgfQorCisgICBpZiAoVFJBQ0VfUFRIX0ZOUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICIgOjogbXhpbml0IC0+ICVkID4+XG4iLCByZXQpOworICAgfQorICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIGdsaWJjOiAgcHRocmVhZF9tdXRleF9kZXN0cm95Ci0vLyBkYXJ3aW46IHB0aHJlYWRfbXV0ZXhfZGVzdHJveQotUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVtdXRleFp1ZGVzdHJveSwgLy8gcHRocmVhZF9tdXRleF9kZXN0cm95Ci0gICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpCisvLyBnbGliYzogICBwdGhyZWFkX211dGV4X2Rlc3Ryb3kKKy8vIGRhcndpbjogIHB0aHJlYWRfbXV0ZXhfZGVzdHJveQorLy8gU29sYXJpczogbXV0ZXhfZGVzdHJveSAocHRocmVhZF9tdXRleF9kZXN0cm95IGlzIGEgd2VhayBhbGlhcykKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyBpbnQgbXV0ZXhfZGVzdHJveV9XUksocHRocmVhZF9tdXRleF90ICptdXRleCkKIHsKICAgIGludCAgICByZXQ7CiAgICB1bnNpZ25lZCBsb25nIG11dGV4X2lzX2luaXQ7CkBAIC01NjUsMTIgKzg1OSwyNyBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisgICBQVEhfRlVOQyhpbnQsIHB0aHJlYWRadW11dGV4WnVkZXN0cm95LCAvLyBwdGhyZWFkX211dGV4X2Rlc3Ryb3kKKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpIHsKKyAgICAgIHJldHVybiBtdXRleF9kZXN0cm95X1dSSyhtdXRleCk7CisgICB9CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBtdXRleFp1ZGVzdHJveSwgLy8gbXV0ZXhfZGVzdHJveQorICAgICAgICAgICAgcHRocmVhZF9tdXRleF90ICptdXRleCkgeworICAgICAgcmV0dXJuIG11dGV4X2Rlc3Ryb3lfV1JLKG11dGV4KTsKKyAgIH0KKyNlbHNlCisjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCisjZW5kaWYKKwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfbXV0ZXhfbG9jawotLy8gZGFyd2luOiBwdGhyZWFkX211dGV4X2xvY2sKLVBUSF9GVU5DKGludCwgcHRocmVhZFp1bXV0ZXhadWxvY2ssIC8vIHB0aHJlYWRfbXV0ZXhfbG9jawotICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3QgKm11dGV4KQorLy8gZ2xpYmM6ICAgcHRocmVhZF9tdXRleF9sb2NrCisvLyBkYXJ3aW46ICBwdGhyZWFkX211dGV4X2xvY2sKKy8vIFNvbGFyaXM6IG11dGV4X2xvY2sgKHB0aHJlYWRfbXV0ZXhfbG9jayBpcyBhIHdlYWsgYWxpYXMpCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgaW50IG11dGV4X2xvY2tfV1JLKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpCiB7CiAgICBpbnQgICAgcmV0OwogICAgT3JpZ0ZuIGZuOwpAQCAtNTg5LDEwICs4OTgsMTAgQEAKICAgICAgIHRoYXQgdGhlIGxvY2sgaGFzIGJlZW4gYWNxdWlyZWQgYnkgc29tZW9uZSAodGhpcyB0aHJlYWQpLiAgRG9lcwogICAgICAgdGhpcyBtYXR0ZXI/ICBOb3Qgc3VyZSwgYnV0IEkgZG9uJ3QgdGhpbmsgc28uICovCiAKLSAgIGlmIChyZXQgPT0gMCAvKnN1Y2Nlc3MqLykgewotICAgICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAotICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90KixtdXRleCk7Ci0gICB9IGVsc2UgeyAKKyAgIERPX0NSRVFfdl9XVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1QsCisgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90ICosIG11dGV4LCBsb25nLCAocmV0ID09IDApID8gVHJ1ZSA6IEZhbHNlKTsKKworICAgaWYgKHJldCAhPSAwKSB7CiAgICAgICBET19QdGhBUEllcnJvciggInB0aHJlYWRfbXV0ZXhfbG9jayIsIHJldCApOwogICAgfQogCkBAIC02MDIsMTAgKzkxMSw1MSBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisgICBQVEhfRlVOQyhpbnQsIHB0aHJlYWRadW11dGV4WnVsb2NrLCAvLyBwdGhyZWFkX211dGV4X2xvY2sKKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpIHsKKyAgICAgIHJldHVybiBtdXRleF9sb2NrX1dSSyhtdXRleCk7CisgICB9CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBtdXRleFp1bG9jaywgLy8gbXV0ZXhfbG9jaworICAgICAgICAgICAgcHRocmVhZF9tdXRleF90ICptdXRleCkgeworICAgICAgcmV0dXJuIG11dGV4X2xvY2tfV1JLKG11dGV4KTsKKyAgIH0KKyNlbHNlCisjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCisjZW5kaWYKKworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBJbnRlcm5hbCB0byBsaWJjLiBNdXRleCBpcyB1c3VhbGx5IGluaXRpYWxpemVkIG9ubHkgaW1wbGljaXRseSwKKyAqIGJ5IHplcm9pbmcgbXV0ZXhfdCBzdHJ1Y3R1cmUuCisgKi8KK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK1BUSF9GVU5DKHZvaWQsIGxtdXRleFp1bG9jaywgLy8gbG11dGV4X2xvY2sKKyAgICAgICAgICAgICAgIG11dGV4X3QgKm11dGV4KQoreworICAgT3JpZ0ZuIGZuOworICAgVkFMR1JJTkRfR0VUX09SSUdfRk4oZm4pOworICAgaWYgKFRSQUNFX1BUSF9GTlMpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiPDwgbG14bG9jayAlcCIsIG11dGV4KTsgZmZsdXNoKHN0ZGVycik7CisgICB9CisKKyAgIERPX0NSRVFfdl9XVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BSRSwKKyAgICAgICAgICAgICAgICBtdXRleF90ICosIG11dGV4LCBsb25nLCAwIC8qIWlzVHJ5TG9jayovKTsKKyAgIENBTExfRk5fdl9XKGZuLCBtdXRleCk7CisgICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAorICAgICAgICAgICAgICAgIG11dGV4X3QgKiwgbXV0ZXgsIGxvbmcsIFRydWUpOworCisgICBpZiAoVFJBQ0VfUFRIX0ZOUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICIgOjogbG14bG9jayA+PlxuIik7CisgICB9Cit9CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jawotLy8gZGFyd2luOiBwdGhyZWFkX211dGV4X3RyeWxvY2sKKy8vIGdsaWJjOiAgIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jaworLy8gZGFyd2luOiAgcHRocmVhZF9tdXRleF90cnlsb2NrCisvLyBTb2xhcmlzOiBtdXRleF90cnlsb2NrIChwdGhyZWFkX211dGV4X3RyeWxvY2sgaXMgYSB3ZWFrIGFsaWFzKQogLy8KIC8vIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jay4gIFRoZSBoYW5kbGluZyBuZWVkZWQgaGVyZSBpcyB2ZXJ5IHNpbWlsYXIKIC8vIHRvIHRoYXQgZm9yIHB0aHJlYWRfbXV0ZXhfbG9jaywgZXhjZXB0IHRoYXQgd2UgbmVlZCB0byB0ZWxsCkBAIC02MTMsOCArOTYzLDggQEAKIC8vIHRoZXJlZm9yZSBub3QgdG8gY29tcGxhaW4gaWYgdGhlIGxvY2sgaXMgbm9ucmVjdXJzaXZlIGFuZCAKIC8vIGFscmVhZHkgbG9ja2VkIGJ5IHRoaXMgdGhyZWFkIC0tIGJlY2F1c2UgdGhlbiBpdCdsbCBqdXN0IGZhaWwKIC8vIGltbWVkaWF0ZWx5IHdpdGggRUJVU1kuCi1QVEhfRlVOQyhpbnQsIHB0aHJlYWRadW11dGV4WnV0cnlsb2NrLCAvLyBwdGhyZWFkX211dGV4X3RyeWxvY2sKLSAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90ICptdXRleCkKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyBpbnQgbXV0ZXhfdHJ5bG9ja19XUksocHRocmVhZF9tdXRleF90ICptdXRleCkKIHsKICAgIGludCAgICByZXQ7CiAgICBPcmlnRm4gZm47CkBAIC02MzMsMTAgKzk4MywxMCBAQAogICAgICAgdGhhdCB0aGUgbG9jayBoYXMgYmVlbiBhY3F1aXJlZCBieSBzb21lb25lICh0aGlzIHRocmVhZCkuICBEb2VzCiAgICAgICB0aGlzIG1hdHRlcj8gIE5vdCBzdXJlLCBidXQgSSBkb24ndCB0aGluayBzby4gKi8KIAotICAgaWYgKHJldCA9PSAwIC8qc3VjY2VzcyovKSB7Ci0gICAgICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1QsCi0gICAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3QqLG11dGV4KTsKLSAgIH0gZWxzZSB7IAorICAgRE9fQ1JFUV92X1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUE9TVCwKKyAgICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqLCBtdXRleCwgbG9uZywgKHJldCA9PSAwKSA/IFRydWUgOiBGYWxzZSk7CisKKyAgIGlmIChyZXQgIT0gMCkgewogICAgICAgaWYgKHJldCAhPSBFQlVTWSkKICAgICAgICAgIERPX1B0aEFQSWVycm9yKCAicHRocmVhZF9tdXRleF90cnlsb2NrIiwgcmV0ICk7CiAgICB9CkBAIC02NDcsMTUgKzk5NywzMCBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisgICBQVEhfRlVOQyhpbnQsIHB0aHJlYWRadW11dGV4WnV0cnlsb2NrLCAvLyBwdGhyZWFkX211dGV4X3RyeWxvY2sKKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpIHsKKyAgICAgIHJldHVybiBtdXRleF90cnlsb2NrX1dSSyhtdXRleCk7CisgICB9CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBtdXRleFp1dHJ5bG9jaywgLy8gbXV0ZXhfdHJ5bG9jaworICAgICAgICAgICAgcHRocmVhZF9tdXRleF90ICptdXRleCkgeworICAgICAgcmV0dXJuIG11dGV4X3RyeWxvY2tfV1JLKG11dGV4KTsKKyAgIH0KKyNlbHNlCisjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCisjZW5kaWYKKwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfbXV0ZXhfdGltZWRsb2NrCi0vLyBkYXJ3aW46IChkb2Vzbid0IGFwcGVhciB0byBleGlzdCkKKy8vIGdsaWJjOiAgIHB0aHJlYWRfbXV0ZXhfdGltZWRsb2NrCisvLyBkYXJ3aW46ICAoZG9lc24ndCBhcHBlYXIgdG8gZXhpc3QpCisvLyBTb2xhcmlzOiBwdGhyZWFkX211dGV4X3RpbWVkbG9jawogLy8KIC8vIHB0aHJlYWRfbXV0ZXhfdGltZWRsb2NrLiAgSWRlbnRpY2FsIGxvZ2ljIHRvIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jay4KLVBUSF9GVU5DKGludCwgcHRocmVhZFp1bXV0ZXhadXRpbWVkbG9jaywgLy8gcHRocmVhZF9tdXRleF90aW1lZGxvY2sKLSAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCi0gICAgICAgICB2b2lkKiB0aW1lb3V0KQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIGludCBtdXRleF90aW1lZGxvY2tfV1JLKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdGltZW91dCkKIHsKICAgIGludCAgICByZXQ7CiAgICBPcmlnRm4gZm47CkBAIC02NzUsMTAgKzEwNDAsMTAgQEAKICAgICAgIHRoYXQgdGhlIGxvY2sgaGFzIGJlZW4gYWNxdWlyZWQgYnkgc29tZW9uZSAodGhpcyB0aHJlYWQpLiAgRG9lcwogICAgICAgdGhpcyBtYXR0ZXI/ICBOb3Qgc3VyZSwgYnV0IEkgZG9uJ3QgdGhpbmsgc28uICovCiAKLSAgIGlmIChyZXQgPT0gMCAvKnN1Y2Nlc3MqLykgewotICAgICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAotICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90KixtdXRleCk7Ci0gICB9IGVsc2UgeyAKKyAgIERPX0NSRVFfdl9XVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1QsCisgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90ICosIG11dGV4LCBsb25nLCAocmV0ID09IDApID8gVHJ1ZSA6IEZhbHNlKTsKKworICAgaWYgKHJldCAhPSAwKSB7CiAgICAgICBpZiAocmV0ICE9IEVUSU1FRE9VVCkKICAgICAgICAgIERPX1B0aEFQSWVycm9yKCAicHRocmVhZF9tdXRleF90aW1lZGxvY2siLCByZXQgKTsKICAgIH0KQEAgLTY4OSwxMiArMTA1NCwyNiBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVtdXRleFp1dGltZWRsb2NrLCAvLyBwdGhyZWFkX211dGV4X3RpbWVkbG9jaworICAgICAgICAgcHRocmVhZF9tdXRleF90ICptdXRleCwKKyAgICAgICAgIHZvaWQgKnRpbWVvdXQpIHsKKyAgIHJldHVybiBtdXRleF90aW1lZGxvY2tfV1JLKG11dGV4LCB0aW1lb3V0KTsKK30KKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVtdXRleFp1cmVsdGltZWRsb2NrLCAvLyBwdGhyZWFkX211dGV4X3JlbHRpbWVkbG9jaworICAgICAgICAgcHRocmVhZF9tdXRleF90ICptdXRleCwKKyAgICAgICAgIHZvaWQgKnRpbWVvdXQpIHsKKyAgIHJldHVybiBtdXRleF90aW1lZGxvY2tfV1JLKG11dGV4LCB0aW1lb3V0KTsKK30KKyNlbmRpZgorCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIGdsaWJjOiAgcHRocmVhZF9tdXRleF91bmxvY2sKLS8vIGRhcndpbjogcHRocmVhZF9tdXRleF91bmxvY2sKLVBUSF9GVU5DKGludCwgcHRocmVhZFp1bXV0ZXhadXVubG9jaywgLy8gcHRocmVhZF9tdXRleF91bmxvY2sKLSAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90ICptdXRleCkKKy8vIGdsaWJjOiAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrCisvLyBkYXJ3aW46ICBwdGhyZWFkX211dGV4X3VubG9jaworLy8gU29sYXJpczogbXV0ZXhfdW5sb2NrIChwdGhyZWFkX211dGV4X3VubG9jayBpcyBhIHdlYWsgYWxpYXMpCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgaW50IG11dGV4X3VubG9ja19XUksocHRocmVhZF9tdXRleF90ICptdXRleCkKIHsKICAgIGludCAgICByZXQ7CiAgICBPcmlnRm4gZm47CkBAIC03MDksMTAgKzEwODgsMTAgQEAKIAogICAgQ0FMTF9GTl9XX1cocmV0LCBmbiwgbXV0ZXgpOwogCi0gICBpZiAocmV0ID09IDAgLypzdWNjZXNzKi8pIHsKLSAgICAgIERPX0NSRVFfdl9XKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX1VOTE9DS19QT1NULAotICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90KixtdXRleCk7Ci0gICB9IGVsc2UgeyAKKyAgIERPX0NSRVFfdl9XKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX1VOTE9DS19QT1NULAorICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90KixtdXRleCk7CisKKyAgIGlmIChyZXQgIT0gMCkgewogICAgICAgRE9fUHRoQVBJZXJyb3IoICJwdGhyZWFkX211dGV4X3VubG9jayIsIHJldCApOwogICAgfQogCkBAIC03MjIsNiArMTEwMSw0NiBAQAogICAgcmV0dXJuIHJldDsKIH0KIAorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19kYXJ3aW4pCisgICBQVEhfRlVOQyhpbnQsIHB0aHJlYWRadW11dGV4WnV1bmxvY2ssIC8vIHB0aHJlYWRfbXV0ZXhfdW5sb2NrCisgICAgICAgICAgICBwdGhyZWFkX211dGV4X3QgKm11dGV4KSB7CisgICAgICByZXR1cm4gbXV0ZXhfdW5sb2NrX1dSSyhtdXRleCk7CisgICB9CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBtdXRleFp1dW5sb2NrLCAvLyBtdXRleF91bmxvY2sKKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpIHsKKyAgICAgIHJldHVybiBtdXRleF91bmxvY2tfV1JLKG11dGV4KTsKKyAgIH0KKyNlbHNlCisjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCisjZW5kaWYKKworCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKy8qIEludGVybmFsIHRvIGxpYmMuICovCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitQVEhfRlVOQyh2b2lkLCBsbXV0ZXhadXVubG9jaywgLy8gbG11dGV4X3VubG9jaworICAgICAgICAgICAgICAgbXV0ZXhfdCAqbXV0ZXgpCit7CisgICBPcmlnRm4gZm47CisgICBWQUxHUklORF9HRVRfT1JJR19GTihmbik7CisKKyAgIGlmIChUUkFDRV9QVEhfRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIjw8IGxteHVubGsgJXAiLCBtdXRleCk7IGZmbHVzaChzdGRlcnIpOworICAgfQorCisgICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9VTkxPQ0tfUFJFLAorICAgICAgICAgICAgICAgbXV0ZXhfdCAqLCBtdXRleCk7CisgICBDQUxMX0ZOX3ZfVyhmbiwgbXV0ZXgpOworICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfVU5MT0NLX1BPU1QsCisgICAgICAgICAgICAgICBtdXRleF90KiwgbXV0ZXgpOworCisgICBpZiAoVFJBQ0VfUFRIX0ZOUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICIgbG14dW5sayA+PlxuIik7CisgICB9Cit9CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gcHRocmVhZF9jb25kX3QgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KQEAgLTczNCwxMSArMTE1MywxMiBAQAogKi8KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBwdGhyZWFkX2NvbmRfd2FpdEBHTElCQ18yLjIuNQotLy8gZ2xpYmM6ICBwdGhyZWFkX2NvbmRfd2FpdEBAR0xJQkNfMi4zLjIKLS8vIGRhcndpbjogcHRocmVhZF9jb25kX3dhaXQKLS8vIGRhcndpbjogcHRocmVhZF9jb25kX3dhaXQkTk9DQU5DRUwkVU5JWDIwMDMKLS8vIGRhcndpbjogcHRocmVhZF9jb25kX3dhaXQkVU5JWDIwMDMKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF93YWl0QEdMSUJDXzIuMi41CisvLyBnbGliYzogICBwdGhyZWFkX2NvbmRfd2FpdEBAR0xJQkNfMi4zLjIKKy8vIGRhcndpbjogIHB0aHJlYWRfY29uZF93YWl0CisvLyBkYXJ3aW46ICBwdGhyZWFkX2NvbmRfd2FpdCROT0NBTkNFTCRVTklYMjAwMworLy8gZGFyd2luOiAgcHRocmVhZF9jb25kX3dhaXQkVU5JWDIwMDMKKy8vIFNvbGFyaXM6IGNvbmRfd2FpdCAocHRocmVhZF9jb25kX3dhaXQgaXMgYnVpbHQgYXRvcCBvZiBjb25kX3dhaXQpCiAvLwogX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQogc3RhdGljIGludCBwdGhyZWFkX2NvbmRfd2FpdF9XUksocHRocmVhZF9jb25kX3QqIGNvbmQsCkBAIC03NzQsMTggKzExOTQsMTcgQEAKIAogICAgQ0FMTF9GTl9XX1dXKHJldCwgZm4sIGNvbmQsbXV0ZXgpOwogCi0gICAvKiB0aGVzZSBjb25kaXRpb25hbHMgbG9vayBzdHVwaWQsIGJ1dCBjb21wYXJlIHcvIHNhbWUgbG9naWMgZm9yCisgICAvKiB0aGlzIGNvbmRpdGlvbmFsIGxvb2sgc3R1cGlkLCBidXQgY29tcGFyZSB3LyBzYW1lIGxvZ2ljIGZvcgogICAgICAgcHRocmVhZF9jb25kX3RpbWVkd2FpdCBiZWxvdyAqLwotICAgaWYgKHJldCA9PSAwICYmIG11dGV4X2lzX3ZhbGlkKSB7Ci0gICAgICAvKiBhbmQgbm93IHdlIGhhdmUgdGhlIG11dGV4IGFnYWluICovCi0gICAgICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1QsCi0gICAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3QqLG11dGV4KTsKKyAgIGlmIChtdXRleF9pc192YWxpZCkgeworICAgICAgLyogYW5kIG5vdyB3ZSBoYXZlIHRoZSBtdXRleCBhZ2FpbiBpZiAocmV0ID09IDApICovCisgICAgICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAorICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqLCBtdXRleCwgbG9uZywgKHJldCA9PSAwKSA/IFRydWUgOiBGYWxzZSk7CiAgICB9CiAKLSAgIGlmIChyZXQgPT0gMCAmJiBtdXRleF9pc192YWxpZCkgewotICAgICAgRE9fQ1JFUV92X1dXVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DT05EX1dBSVRfUE9TVCwKLSAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QqLGNvbmQsIHB0aHJlYWRfbXV0ZXhfdCosbXV0ZXgsIGxvbmcsMCk7Ci0gICB9CisgICBET19DUkVRX3ZfV1dXVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DT05EX1dBSVRfUE9TVCwKKyAgICAgICAgICAgICAgICAgIHB0aHJlYWRfY29uZF90Kixjb25kLCBwdGhyZWFkX211dGV4X3QqLG11dGV4LCBsb25nLDAsCisgICAgICAgICAgICAgICAgICBsb25nLCAocmV0ID09IDAgJiYgbXV0ZXhfaXNfdmFsaWQpID8gVHJ1ZSA6IEZhbHNlKTsKIAogICAgaWYgKHJldCAhPSAwKSB7CiAgICAgICBET19QdGhBUEllcnJvciggInB0aHJlYWRfY29uZF93YWl0IiwgcmV0ICk7CkBAIC04MDcsMjQgKzEyMjYsMzIgQEAKICAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QqIGNvbmQsIHB0aHJlYWRfbXV0ZXhfdCogbXV0ZXgpIHsKICAgICAgIHJldHVybiBwdGhyZWFkX2NvbmRfd2FpdF9XUksoY29uZCwgbXV0ZXgpOwogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFBUSF9GVU5DKGludCwgY29uZFp1d2FpdCwgLy8gY29uZF93YWl0CisgICAgICAgICAgICAgICAgIHB0aHJlYWRfY29uZF90ICpjb25kLCBwdGhyZWFkX211dGV4X3QgKm11dGV4KSB7CisgICAgICByZXR1cm4gcHRocmVhZF9jb25kX3dhaXRfV1JLKGNvbmQsIG11dGV4KTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfY29uZF90aW1lZHdhaXRAQEdMSUJDXzIuMy4yCi0vLyBnbGliYzogIHB0aHJlYWRfY29uZF90aW1lZHdhaXRAR0xJQkNfMi4yLjUKLS8vIGdsaWJjOiAgcHRocmVhZF9jb25kX3RpbWVkd2FpdEBHTElCQ18yLjAKLS8vIGRhcndpbjogcHRocmVhZF9jb25kX3RpbWVkd2FpdAotLy8gZGFyd2luOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0JE5PQ0FOQ0VMJFVOSVgyMDAzCi0vLyBkYXJ3aW46IHB0aHJlYWRfY29uZF90aW1lZHdhaXQkVU5JWDIwMDMKLS8vIGRhcndpbjogcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZV9ucCAodHJhcHBlZCkKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF90aW1lZHdhaXRAQEdMSUJDXzIuMy4yCisvLyBnbGliYzogICBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QEdMSUJDXzIuMi41CisvLyBnbGliYzogICBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QEdMSUJDXzIuMAorLy8gZGFyd2luOiAgcHRocmVhZF9jb25kX3RpbWVkd2FpdAorLy8gZGFyd2luOiAgcHRocmVhZF9jb25kX3RpbWVkd2FpdCROT0NBTkNFTCRVTklYMjAwMworLy8gZGFyd2luOiAgcHRocmVhZF9jb25kX3RpbWVkd2FpdCRVTklYMjAwMworLy8gZGFyd2luOiAgcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZV9ucCAodHJhcHBlZCkKKy8vIFNvbGFyaXM6IGNvbmRfdGltZWR3YWl0IChwdGhyZWFkX2NvbmRfdGltZWR3YWl0IGlzIGJ1aWx0IG9uIGNvbmRfdGltZWR3YWl0KQorLy8gU29sYXJpczogY29uZF9yZWx0aW1lZHdhaXQgKHB0aHJlYWRfY29uZF9yZWx0aW1lZHdhaXRfbnAgaXMgYnVpbHQgb24gdGhpcykKIC8vCiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCiBzdGF0aWMgaW50IHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLKHB0aHJlYWRfY29uZF90KiBjb25kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3QqIG11dGV4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRpbWVzcGVjKiBhYnN0aW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMqIGFic3RpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lb3V0X2Vycm9yKQogewogICAgaW50IHJldDsKICAgIE9yaWdGbiBmbjsKQEAgLTg1OSwyNSArMTI4NiwyNiBAQAogCiAgICBDQUxMX0ZOX1dfV1dXKHJldCwgZm4sIGNvbmQsbXV0ZXgsYWJzdGltZSk7CiAKLSAgIGlmICghYWJzdGltZV9pc192YWxpZCAmJiByZXQgIT0gRUlOVkFMKSB7CisgICBpZiAobXV0ZXhfaXNfdmFsaWQgJiYgIWFic3RpbWVfaXNfdmFsaWQgJiYgcmV0ICE9IEVJTlZBTCkgewogICAgICAgRE9fUHRoQVBJZXJyb3IoIkJ1ZyBpbiBsaWJwdGhyZWFkOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0ICIKICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIGFic3RpbWUgZGlkIG5vdCBjYXVzZSIKICAgICAgICAgICAgICAgICAgICAgICIgRUlOVkFMIiwgcmV0KTsKICAgIH0KIAotICAgaWYgKChyZXQgPT0gMCB8fCByZXQgPT0gRVRJTUVET1VUKSAmJiBtdXRleF9pc192YWxpZCkgewotICAgICAgLyogYW5kIG5vdyB3ZSBoYXZlIHRoZSBtdXRleCBhZ2FpbiAqLwotICAgICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAotICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF90KixtdXRleCk7CisgICBpZiAobXV0ZXhfaXNfdmFsaWQgJiYgYWJzdGltZV9pc192YWxpZCkgeworICAgICAgLyogYW5kIG5vdyB3ZSBoYXZlIHRoZSBtdXRleCBhZ2FpbiBpZiAocmV0ID09IDAgfHwgcmV0ID09IHRpbWVvdXQpICovCisgICAgICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAorICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAqLCBtdXRleCwKKyAgICAgICAgICAgICAgICAgICBsb25nLCAocmV0ID09IDAgfHwgcmV0ID09IHRpbWVvdXRfZXJyb3IpID8gVHJ1ZSA6IEZhbHNlKTsKICAgIH0KIAotICAgaWYgKChyZXQgPT0gMCB8fCByZXQgPT0gRVRJTUVET1VUKSAmJiBtdXRleF9pc192YWxpZCkgewotICAgICAgRE9fQ1JFUV92X1dXVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DT05EX1dBSVRfUE9TVCwKLSAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QqLGNvbmQsIHB0aHJlYWRfbXV0ZXhfdCosbXV0ZXgsCi0gICAgICAgICAgICAgICAgICAgIGxvbmcscmV0ID09IEVUSU1FRE9VVCk7Ci0gICB9CisgICBET19DUkVRX3ZfV1dXVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DT05EX1dBSVRfUE9TVCwKKyAgICAgICAgICAgICAgICAgIHB0aHJlYWRfY29uZF90Kixjb25kLCBwdGhyZWFkX211dGV4X3QqLG11dGV4LAorICAgICAgICAgICAgICAgICAgbG9uZyxyZXQgPT0gdGltZW91dF9lcnJvciwKKyAgICAgICAgICAgICAgICAgIGxvbmcsIChyZXQgPT0gMCB8fCByZXQgPT0gdGltZW91dF9lcnJvcikgJiYgbXV0ZXhfaXNfdmFsaWQKKyAgICAgICAgICAgICAgICAgICAgICAgID8gVHJ1ZSA6IEZhbHNlKTsKIAotICAgaWYgKHJldCAhPSAwICYmIHJldCAhPSBFVElNRURPVVQpIHsKKyAgIGlmIChyZXQgIT0gMCAmJiByZXQgIT0gdGltZW91dF9lcnJvcikgewogICAgICAgRE9fUHRoQVBJZXJyb3IoICJwdGhyZWFkX2NvbmRfdGltZWR3YWl0IiwgcmV0ICk7CiAgICB9CiAKQEAgLTg5MSwzNSArMTMxOSw0NyBAQAogICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVjb25kWnV0aW1lZHdhaXRaQVphLCAvLyBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QCoKICAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QqIGNvbmQsIHB0aHJlYWRfbXV0ZXhfdCogbXV0ZXgsIAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMqIGFic3RpbWUpIHsKLSAgICAgIHJldHVybiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X1dSSyhjb25kLCBtdXRleCwgYWJzdGltZSk7CisgICAgICByZXR1cm4gcHRocmVhZF9jb25kX3RpbWVkd2FpdF9XUksoY29uZCwgbXV0ZXgsIGFic3RpbWUsIEVUSU1FRE9VVCk7CiAgICB9CiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgICBQVEhfRlVOQyhpbnQsIHB0aHJlYWRadWNvbmRadXRpbWVkd2FpdCwgLy8gcHRocmVhZF9jb25kX3RpbWVkd2FpdAogICAgICAgICAgICAgICAgICBwdGhyZWFkX2NvbmRfdCogY29uZCwgcHRocmVhZF9tdXRleF90KiBtdXRleCwgCiAgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1lc3BlYyogYWJzdGltZSkgewotICAgICAgcmV0dXJuIHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLKGNvbmQsIG11dGV4LCBhYnN0aW1lKTsKKyAgICAgIHJldHVybiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X1dSSyhjb25kLCBtdXRleCwgYWJzdGltZSwgRVRJTUVET1VUKTsKICAgIH0KICAgIFBUSF9GVU5DKGludCwgcHRocmVhZFp1Y29uZFp1dGltZWR3YWl0WkRaYSwgLy8gcHRocmVhZF9jb25kX3RpbWVkd2FpdCQqCiAgICAgICAgICAgICAgICAgIHB0aHJlYWRfY29uZF90KiBjb25kLCBwdGhyZWFkX211dGV4X3QqIG11dGV4LCAKICAgICAgICAgICAgICAgICAgc3RydWN0IHRpbWVzcGVjKiBhYnN0aW1lKSB7Ci0gICAgICByZXR1cm4gcHRocmVhZF9jb25kX3RpbWVkd2FpdF9XUksoY29uZCwgbXV0ZXgsIGFic3RpbWUpOworICAgICAgcmV0dXJuIHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLKGNvbmQsIG11dGV4LCBhYnN0aW1lLCBFVElNRURPVVQpOwogICAgfQogICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVjb25kWnV0aW1lZHdhaXRadVphLCAvLyBwdGhyZWFkX2NvbmRfdGltZWR3YWl0XyoKICAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QqIGNvbmQsIHB0aHJlYWRfbXV0ZXhfdCogbXV0ZXgsIAogICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMqIGFic3RpbWUpIHsKICAgICAgIGFzc2VydCgwKTsKICAgIH0KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIGNvbmRadXRpbWVkd2FpdCwgLy8gY29uZF90aW1lZHdhaXQKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QgKmNvbmQsIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1lc3BlYyAqYWJzdGltZSkgeworICAgICAgcmV0dXJuIHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLKGNvbmQsIG11dGV4LCBhYnN0aW1lLCBFVElNRSk7CisgICB9CisgICBQVEhfRlVOQyhpbnQsIGNvbmRadXJlbHRpbWVkd2FpdCwgLy8gY29uZF9yZWx0aW1lZHdhaXQKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QgKmNvbmQsIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsCisgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1lc3BlYyAqcmVsdGltZSkgeworICAgICAgcmV0dXJuIHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLKGNvbmQsIG11dGV4LCByZWx0aW1lLCBFVElNRSk7CisgICB9CiAjZWxzZQogIyAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogI2VuZGlmCiAKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBwdGhyZWFkX2NvbmRfc2lnbmFsQEdMSUJDXzIuMAotLy8gZ2xpYmM6ICBwdGhyZWFkX2NvbmRfc2lnbmFsQEdMSUJDXzIuMi41Ci0vLyBnbGliYzogIHB0aHJlYWRfY29uZF9zaWduYWxAQEdMSUJDXzIuMy4yCi0vLyBkYXJ3aW46IHB0aHJlYWRfY29uZF9zaWduYWwKLS8vIGRhcndpbjogcHRocmVhZF9jb25kX3NpZ25hbF90aHJlYWRfbnAgKGRvbid0IGludGVyY2VwdCB0aGlzKQorLy8gZ2xpYmM6ICAgcHRocmVhZF9jb25kX3NpZ25hbEBHTElCQ18yLjAKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF9zaWduYWxAR0xJQkNfMi4yLjUKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF9zaWduYWxAQEdMSUJDXzIuMy4yCisvLyBkYXJ3aW46ICBwdGhyZWFkX2NvbmRfc2lnbmFsCisvLyBkYXJ3aW46ICBwdGhyZWFkX2NvbmRfc2lnbmFsX3RocmVhZF9ucCAoZG9uJ3QgaW50ZXJjZXB0IHRoaXMpCisvLyBTb2xhcmlzOiBjb25kX3NpZ25hbCAocHRocmVhZF9jb25kX3NpZ25hbCBpcyBhIHdlYWsgYWxpYXMpCiAvLwogX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQogc3RhdGljIGludCBwdGhyZWFkX2NvbmRfc2lnbmFsX1dSSyhwdGhyZWFkX2NvbmRfdCogY29uZCkKQEAgLTkzOCw2ICsxMzc4LDkgQEAKIAogICAgQ0FMTF9GTl9XX1cocmV0LCBmbiwgY29uZCk7CiAKKyAgIERPX0NSRVFfdl9XKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NPTkRfU0lHTkFMX1BPU1QsCisgICAgICAgICAgICAgICBwdGhyZWFkX2NvbmRfdCosY29uZCk7CisKICAgIGlmIChyZXQgIT0gMCkgewogICAgICAgRE9fUHRoQVBJZXJyb3IoICJwdGhyZWFkX2NvbmRfc2lnbmFsIiwgcmV0ICk7CiAgICB9CkBAIC05NTgsMTYgKzE0MDEsMjIgQEAKICAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QqIGNvbmQpIHsKICAgICAgIHJldHVybiBwdGhyZWFkX2NvbmRfc2lnbmFsX1dSSyhjb25kKTsKICAgIH0KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIGNvbmRadXNpZ25hbCwgLy8gY29uZF9zaWduYWwKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9jb25kX3QgKmNvbmQpIHsKKyAgICAgIHJldHVybiBwdGhyZWFkX2NvbmRfc2lnbmFsX1dSSyhjb25kKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfY29uZF9icm9hZGNhc3RAR0xJQkNfMi4wCi0vLyBnbGliYzogIHB0aHJlYWRfY29uZF9icm9hZGNhc3RAR0xJQkNfMi4yLjUKLS8vIGdsaWJjOiAgcHRocmVhZF9jb25kX2Jyb2FkY2FzdEBAR0xJQkNfMi4zLjIKLS8vIGRhcndpbjogcHRocmVhZF9jb25kX2Jyb2FkY2FzdAorLy8gZ2xpYmM6ICAgcHRocmVhZF9jb25kX2Jyb2FkY2FzdEBHTElCQ18yLjAKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF9icm9hZGNhc3RAR0xJQkNfMi4yLjUKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF9icm9hZGNhc3RAQEdMSUJDXzIuMy4yCisvLyBkYXJ3aW46ICBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0CisvLyBTb2xhcmlzOiBjb25kX2Jyb2FkY2FzdCAocHRocmVhZF9jb25kX2Jyb2FkY2FzdCBpcyBhIHdlYWsgYWxpYXMpCiAvLwogLy8gTm90ZSwgdGhpcyBpcyBwcmV0dHkgbXVjaCBpZGVudGljYWwsIGZyb20gYSBkZXBlbmRlbmN5LWdyYXBoCiAvLyBwb2ludCBvZiB2aWV3LCB3aXRoIGNvbmRfc2lnbmFsLCBzbyB0aGUgY29kZSBpcyBkdXBsaWNhdGVkLgpAQCAtOTkwLDYgKzE0MzksOSBAQAogCiAgICBDQUxMX0ZOX1dfVyhyZXQsIGZuLCBjb25kKTsKIAorICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQ09ORF9CUk9BRENBU1RfUE9TVCwKKyAgICAgICAgICAgICAgIHB0aHJlYWRfY29uZF90Kixjb25kKTsKKwogICAgaWYgKHJldCAhPSAwKSB7IAogICAgICAgRE9fUHRoQVBJZXJyb3IoICJwdGhyZWFkX2NvbmRfYnJvYWRjYXN0IiwgcmV0ICk7CiAgICB9CkBAIC0xMDEwLDE4ICsxNDYyLDI1IEBACiAgICAgICAgICAgICAgICAgIHB0aHJlYWRfY29uZF90KiBjb25kKSB7CiAgICAgICByZXR1cm4gcHRocmVhZF9jb25kX2Jyb2FkY2FzdF9XUksoY29uZCk7CiAgICB9CisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBjb25kWnVicm9hZGNhc3QsIC8vIGNvbmRfYnJvYWRjYXN0CisgICAgICAgICAgICAgICAgIHB0aHJlYWRfY29uZF90ICpjb25kKSB7CisgICAgICByZXR1cm4gcHRocmVhZF9jb25kX2Jyb2FkY2FzdF9XUksoY29uZCk7CisgICB9CiAjZWxzZQogIyAgIGVycm9yICJVbnN1cHBvcnRlZCBPUyIKICNlbmRpZgogCi0vLyBnbGliYzogIHB0aHJlYWRfY29uZF9pbml0QEdMSUJDXzIuMAotLy8gZ2xpYmM6ICBwdGhyZWFkX2NvbmRfaW5pdEBHTElCQ18yLjIuNQotLy8gZ2xpYmM6ICBwdGhyZWFkX2NvbmRfaW5pdEBAR0xJQkNfMi4zLjIKLS8vIGRhcndpbjogcHRocmVhZF9jb25kX2luaXQKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF9pbml0QEdMSUJDXzIuMAorLy8gZ2xpYmM6ICAgcHRocmVhZF9jb25kX2luaXRAR0xJQkNfMi4yLjUKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF9pbml0QEBHTElCQ18yLjMuMgorLy8gZGFyd2luOiAgcHRocmVhZF9jb25kX2luaXQKKy8vIFNvbGFyaXM6IGNvbmRfaW5pdCAocHRocmVhZF9jb25kX2luaXQgaXMgYnVpbHQgYXRvcCBvbiB0aGlzIGZ1bmN0aW9uKQogLy8gRWFzeSB3YXkgb3V0OiBIYW5kbGluZyBvZiBhdHRyIGNvdWxkIGhhdmUgYmVlbiBtZXNzaWVyLgogLy8gSXQgdHVybnMgb3V0IHRoYXQgcHRocmVhZF9jb25kX2luaXQgdW5kZXIgbGludXggaWdub3JlcwogLy8gYWxsIGluZm9ybWF0aW9uIGluIGNvbmRfYXR0ciwgc28gZG8gd2UuCiAvLyBGSVhNRTogTWFjT1MgWD8KKyNpZiAhZGVmaW5lZChWR09fc29sYXJpcykKIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKIHN0YXRpYyBpbnQgcHRocmVhZF9jb25kX2luaXRfV1JLKHB0aHJlYWRfY29uZF90KiBjb25kLCBwdGhyZWFkX2NvbmRhdHRyX3QgKmNvbmRfYXR0cikKIHsKQEAgLTEwNjMsMTIgKzE1MjIsNDUgQEAKICMgIGVycm9yICJVbnN1cHBvcnRlZCBPUyIKICNlbmRpZgogCisjZWxzZSAvKiBWR09fc29sYXJpcyAqLworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorUFRIX0ZVTkMoaW50LCBjb25kWnVpbml0LCAvLyBjb25kX2luaXQKKyAgICAgICAgICAgICAgY29uZF90ICpjb25kLCBpbnQgdHlwZSwgdm9pZCAqYXJnKQoreworICAgaW50IHJldDsKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKworICAgaWYgKFRSQUNFX1BUSF9GTlMpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiPDwgY29uZF9pbml0ICVwIiwgY29uZCk7IGZmbHVzaChzdGRlcnIpOworICAgfQorCisgICBDQUxMX0ZOX1dfV1dXKHJldCwgZm4sIGNvbmQsIHR5cGUsIGFyZyk7CisKKyAgIGlmIChyZXQgPT0gMCkgeworICAgICAgLyogTHVja2lseSBldmhfX0hHX1BUSFJFQURfQ09ORF9JTklUX1BPU1QoKSBpZ25vcmVzIGNvbmRfYXR0ci4KKyAgICAgICAgIFNlZSBhbHNvIGNvbW1lbnQgZm9yIHB0aHJlYWRfY29uZF9pbml0X1dSSygpLiAqLworICAgICAgRE9fQ1JFUV92X1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NPTkRfSU5JVF9QT1NULAorICAgICAgICAgICAgICAgICAgIGNvbmRfdCAqLCBjb25kLCB2b2lkICosIE5VTEwpOworICAgfSBlbHNlIHsKKyAgICAgIERPX1B0aEFQSWVycm9yKCJjb25kX2luaXQiLCByZXQpOworICAgfQorCisgICBpZiAoVFJBQ0VfUFRIX0ZOUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICIgY29uZF9pbml0IC0+ICVkID4+XG4iLCByZXQpOworICAgfQorCisgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBwdGhyZWFkX2NvbmRfZGVzdHJveUBAR0xJQkNfMi4zLjIKLS8vIGdsaWJjOiAgcHRocmVhZF9jb25kX2Rlc3Ryb3lAR0xJQkNfMi4yLjUKLS8vIGdsaWJjOiAgcHRocmVhZF9jb25kX2Rlc3Ryb3lAR0xJQkNfMi4wCi0vLyBkYXJ3aW46IHB0aHJlYWRfY29uZF9kZXN0cm95CisvLyBnbGliYzogICBwdGhyZWFkX2NvbmRfZGVzdHJveUBAR0xJQkNfMi4zLjIKKy8vIGdsaWJjOiAgIHB0aHJlYWRfY29uZF9kZXN0cm95QEdMSUJDXzIuMi41CisvLyBnbGliYzogICBwdGhyZWFkX2NvbmRfZGVzdHJveUBHTElCQ18yLjAKKy8vIGRhcndpbjogIHB0aHJlYWRfY29uZF9kZXN0cm95CisvLyBTb2xhcmlzOiBjb25kX2Rlc3Ryb3kgKHB0aHJlYWRfY29uZF9kZXN0cm95IGlzIGEgd2VhayBhbGlhcykKIC8vCiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCiBzdGF0aWMgaW50IHB0aHJlYWRfY29uZF9kZXN0cm95X1dSSyhwdGhyZWFkX2NvbmRfdCogY29uZCkKQEAgLTExMTYsNiArMTYwOCwxMSBAQAogICAgICAgICAgICAgICAgICBwdGhyZWFkX2NvbmRfdCogY29uZCkgewogICAgICAgcmV0dXJuIHB0aHJlYWRfY29uZF9kZXN0cm95X1dSSyhjb25kKTsKICAgIH0KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIGNvbmRadWRlc3Ryb3ksIC8vIGNvbmRfZGVzdHJveQorICAgICAgICAgICAgICAgICBwdGhyZWFkX2NvbmRfdCAqY29uZCkgeworICAgICAgcmV0dXJuIHB0aHJlYWRfY29uZF9kZXN0cm95X1dSSyhjb25kKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKQEAgLTExMzksOCArMTYzNiw5IEBACiAqLwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfYmFycmllcl9pbml0Ci0vLyBkYXJ3aW46IChkb2Vzbid0IGFwcGVhciB0byBleGlzdCkKKy8vIGdsaWJjOiAgIHB0aHJlYWRfYmFycmllcl9pbml0CisvLyBkYXJ3aW46ICAoZG9lc24ndCBhcHBlYXIgdG8gZXhpc3QpCisvLyBTb2xhcmlzOiBwdGhyZWFkX2JhcnJpZXJfaW5pdAogUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnViYXJyaWVyWnVpbml0LCAvLyBwdGhyZWFkX2JhcnJpZXJfaW5pdAogICAgICAgICAgcHRocmVhZF9iYXJyaWVyX3QqIGJhciwKICAgICAgICAgIHB0aHJlYWRfYmFycmllcmF0dHJfdCogYXR0ciwgdW5zaWduZWQgbG9uZyBjb3VudCkKQEAgLTExNzUsOCArMTY3Myw5IEBACiAKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBwdGhyZWFkX2JhcnJpZXJfd2FpdAotLy8gZGFyd2luOiAoZG9lc24ndCBhcHBlYXIgdG8gZXhpc3QpCisvLyBnbGliYzogICBwdGhyZWFkX2JhcnJpZXJfd2FpdAorLy8gZGFyd2luOiAgKGRvZXNuJ3QgYXBwZWFyIHRvIGV4aXN0KQorLy8gU29sYXJpczogcHRocmVhZF9iYXJyaWVyX3dhaXQKIFBUSF9GVU5DKGludCwgcHRocmVhZFp1YmFycmllclp1d2FpdCwgLy8gcHRocmVhZF9iYXJyaWVyX3dhaXQKICAgICAgICAgICAgICAgcHRocmVhZF9iYXJyaWVyX3QqIGJhcikKIHsKQEAgLTEyMTIsOCArMTcxMSw5IEBACiAKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBwdGhyZWFkX2JhcnJpZXJfZGVzdHJveQotLy8gZGFyd2luOiAoZG9lc24ndCBhcHBlYXIgdG8gZXhpc3QpCisvLyBnbGliYzogICBwdGhyZWFkX2JhcnJpZXJfZGVzdHJveQorLy8gZGFyd2luOiAgKGRvZXNuJ3QgYXBwZWFyIHRvIGV4aXN0KQorLy8gU29sYXJpczogcHRocmVhZF9iYXJyaWVyX2Rlc3Ryb3kKIFBUSF9GVU5DKGludCwgcHRocmVhZFp1YmFycmllclp1ZGVzdHJveSwgLy8gcHRocmVhZF9iYXJyaWVyX2Rlc3Ryb3kKICAgICAgICAgIHB0aHJlYWRfYmFycmllcl90KiBiYXIpCiB7CkBAIC0xMjYyLDEyICsxNzYyLDE2IEBACiAvKiBUaGlzIGlzIGEgbmFzdHkga2x1ZGdlLCBpbiB0aGF0IGdsaWJjICJrbm93cyIgdGhhdCBpbml0aWFsaXNpbmcgYQogICAgc3BpbiBsb2NrIHVubG9ja3MgaXQsIGFuZCBwdGhyZWFkX3NwaW5fe2luaXQsdW5sb2NrfSBhcmUgbmFtZXMgZm9yCiAgICB0aGUgc2FtZSBmdW5jdGlvbi4gIEhlbmNlIHdlIGhhdmUgdG8gaGF2ZSBhIHdyYXBwZXIgd2hpY2ggZG9lcyBib3RoCi0gICB0aGluZ3MsIHdpdGhvdXQga25vd2luZyB3aGljaCB0aGUgdXNlciBpbnRlbmRlZCB0byBoYXBwZW4uICovCisgICB0aGluZ3MsIHdpdGhvdXQga25vd2luZyB3aGljaCB0aGUgdXNlciBpbnRlbmRlZCB0byBoYXBwZW4uCisgICBTb2xhcmlzIGhhcyBkaXN0aW5jdCBmdW5jdGlvbnMgZm9yIGluaXQvdW5sb2NrIGJ1dCBjbGllbnQgcmVxdWVzdHMKKyAgIGFyZSBpbW11dGFibGUgaW4gaGVsZ3JpbmQuaCBzbyBmb2xsb3cgdGhlIGdsaWJjIGxlYWQuICovCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIGdsaWJjOiAgcHRocmVhZF9zcGluX2luaXQKLS8vIGdsaWJjOiAgcHRocmVhZF9zcGluX3VubG9jawotLy8gZGFyd2luOiAoZG9lc24ndCBhcHBlYXIgdG8gZXhpc3QpCisvLyBnbGliYzogICBwdGhyZWFkX3NwaW5faW5pdAorLy8gZ2xpYmM6ICAgcHRocmVhZF9zcGluX3VubG9jaworLy8gZGFyd2luOiAgKGRvZXNuJ3QgYXBwZWFyIHRvIGV4aXN0KQorLy8gU29sYXJpczogcHRocmVhZF9zcGluX2luaXQKKy8vIFNvbGFyaXM6IHB0aHJlYWRfc3Bpbl91bmxvY2sKIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKIHN0YXRpYyBpbnQgcHRocmVhZF9zcGluX2luaXRfb3JfdW5sb2NrX1dSSyhwdGhyZWFkX3NwaW5sb2NrX3QqIGxvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBzaGFyZWQpIHsKQEAgLTEzMDYsMTggKzE4MTAsMjYgQEAKICAgICAgIHJldHVybiBwdGhyZWFkX3NwaW5faW5pdF9vcl91bmxvY2tfV1JLKGxvY2ssIDAvKnBzaGFyZWQqLyk7CiAgICB9CiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVzcGluWnVpbml0LCAvLyBwdGhyZWFkX3NwaW5faW5pdAorICAgICAgICAgICAgcHRocmVhZF9zcGlubG9ja190ICpsb2NrLCBpbnQgcHNoYXJlZCkgeworICAgICAgcmV0dXJuIHB0aHJlYWRfc3Bpbl9pbml0X29yX3VubG9ja19XUksobG9jaywgcHNoYXJlZCk7CisgICB9CisgICBQVEhfRlVOQyhpbnQsIHB0aHJlYWRadXNwaW5adXVubG9jaywgLy8gcHRocmVhZF9zcGluX3VubG9jaworICAgICAgICAgICAgcHRocmVhZF9zcGlubG9ja190ICpsb2NrKSB7CisgICAgICByZXR1cm4gcHRocmVhZF9zcGluX2luaXRfb3JfdW5sb2NrX1dSSyhsb2NrLCAwLypwc2hhcmVkKi8pOworICAgfQogI2Vsc2UKICMgIGVycm9yICJVbnN1cHBvcnRlZCBPUyIKICNlbmRpZgogCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIGdsaWJjOiAgcHRocmVhZF9zcGluX2Rlc3Ryb3kKLS8vIGRhcndpbjogKGRvZXNuJ3QgYXBwZWFyIHRvIGV4aXN0KQotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQotCi1QVEhfRlVOQyhpbnQsIHB0aHJlYWRadXNwaW5adWRlc3Ryb3ksIC8vIHB0aHJlYWRfc3Bpbl9kZXN0cm95Ci0gICAgICAgICAgICAgIHB0aHJlYWRfc3BpbmxvY2tfdCogbG9jaykKKy8vIGdsaWJjOiAgIHB0aHJlYWRfc3Bpbl9kZXN0cm95CisvLyBkYXJ3aW46ICAoZG9lc24ndCBhcHBlYXIgdG8gZXhpc3QpCisvLyBTb2xhcmlzOiBwdGhyZWFkX3NwaW5fZGVzdHJveQorX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIGludCBwdGhyZWFkX3NwaW5fZGVzdHJveV9XUksocHRocmVhZF9zcGlubG9ja190ICpsb2NrKQogewogICAgaW50ICAgIHJldDsKICAgIE9yaWdGbiBmbjsKQEAgLTEzNDEsMjAgKzE4NTMsMjggQEAKICAgIH0KICAgIHJldHVybiByZXQ7CiB9Ci0KKyNpZiBkZWZpbmVkKFZHT19saW51eCkKKyAgIFBUSF9GVU5DKGludCwgcHRocmVhZFp1c3Bpblp1c2Rlc3Ryb3ksIC8vIHB0aHJlYWRfc3Bpbl9kZXN0cm95CisgICAgICAgICAgICBwdGhyZWFkX3NwaW5sb2NrX3QgKmxvY2spIHsKKyAgICAgIHJldHVybiBwdGhyZWFkX3NwaW5fZGVzdHJveV9XUksobG9jayk7CisgICB9CiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVzcGluWnVzZGVzdHJveSwgLy8gcHRocmVhZF9zcGluX2Rlc3Ryb3kKKyAgICAgICAgICAgIHB0aHJlYWRfc3BpbmxvY2tfdCAqbG9jaykgeworICAgICAgcmV0dXJuIHB0aHJlYWRfc3Bpbl9kZXN0cm95X1dSSyhsb2NrKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfc3Bpbl9sb2NrCi0vLyBkYXJ3aW46IChkb2Vzbid0IGFwcGVhciB0byBleGlzdCkKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKLQotUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVzcGluWnVsb2NrLCAvLyBwdGhyZWFkX3NwaW5fbG9jawotICAgICAgICAgICAgICBwdGhyZWFkX3NwaW5sb2NrX3QqIGxvY2spCisvLyBnbGliYzogICBwdGhyZWFkX3NwaW5fbG9jaworLy8gZGFyd2luOiAgKGRvZXNuJ3QgYXBwZWFyIHRvIGV4aXN0KQorLy8gU29sYXJpczogcHRocmVhZF9zcGluX2xvY2sKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyBpbnQgcHRocmVhZF9zcGluX2xvY2tfV1JLKHB0aHJlYWRfc3BpbmxvY2tfdCAqbG9jaykKIHsKICAgIGludCAgICByZXQ7CiAgICBPcmlnRm4gZm47CkBAIC0xMzg2LDIwICsxOTA2LDI4IEBACiAgICB9CiAgICByZXR1cm4gcmV0OwogfQotCisjaWYgZGVmaW5lZChWR09fbGludXgpCisgICBQVEhfRlVOQyhpbnQsIHB0aHJlYWRadXNwaW5adWxvY2ssIC8vIHB0aHJlYWRfc3Bpbl9sb2NrCisgICAgICAgICAgICAgICAgIHB0aHJlYWRfc3BpbmxvY2tfdCAqbG9jaykgeworICAgICAgcmV0dXJuIHB0aHJlYWRfc3Bpbl9sb2NrX1dSSyhsb2NrKTsKKyAgIH0KICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIHB0aHJlYWRadXNwaW5adWxvY2ssIC8vIHB0aHJlYWRfc3Bpbl9sb2NrCisgICAgICAgICAgICAgICAgIHB0aHJlYWRfc3BpbmxvY2tfdCAqbG9jaykgeworICAgICAgcmV0dXJuIHB0aHJlYWRfc3Bpbl9sb2NrX1dSSyhsb2NrKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfc3Bpbl90cnlsb2NrCi0vLyBkYXJ3aW46IChkb2Vzbid0IGFwcGVhciB0byBleGlzdCkKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKLQotUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVzcGluWnV0cnlsb2NrLCAvLyBwdGhyZWFkX3NwaW5fdHJ5bG9jawotICAgICAgICAgICAgICBwdGhyZWFkX3NwaW5sb2NrX3QqIGxvY2spCisvLyBnbGliYzogICBwdGhyZWFkX3NwaW5fdHJ5bG9jaworLy8gZGFyd2luOiAgKGRvZXNuJ3QgYXBwZWFyIHRvIGV4aXN0KQorLy8gU29sYXJpczogcHRocmVhZF9zcGluX3RyeWxvY2sKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyBpbnQgcHRocmVhZF9zcGluX3RyeWxvY2tfV1JLKHB0aHJlYWRfc3BpbmxvY2tfdCAqbG9jaykKIHsKICAgIGludCAgICByZXQ7CiAgICBPcmlnRm4gZm47CkBAIC0xNDMyLDggKzE5NjAsMTcgQEAKICAgIH0KICAgIHJldHVybiByZXQ7CiB9Ci0KKyNpZiBkZWZpbmVkKFZHT19saW51eCkKKyAgIFBUSF9GVU5DKGludCwgcHRocmVhZFp1c3Bpblp1dHJ5bG9jaywgLy8gcHRocmVhZF9zcGluX3RyeWxvY2sKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9zcGlubG9ja190ICpsb2NrKSB7CisgICAgICByZXR1cm4gcHRocmVhZF9zcGluX3RyeWxvY2tfV1JLKGxvY2spOworICAgfQogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFBUSF9GVU5DKGludCwgcHRocmVhZFp1c3Bpblp1dHJ5bG9jaywgLy8gcHRocmVhZF9zcGluX3RyeWxvY2sKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9zcGlubG9ja190ICpsb2NrKSB7CisgICAgICByZXR1cm4gcHRocmVhZF9zcGluX3RyeWxvY2tfV1JLKGxvY2spOworICAgfQogI2Vsc2UKICMgIGVycm9yICJVbnN1cHBvcnRlZCBPUyIKICNlbmRpZgpAQCAtMTQ1MywxOCArMTk5MCwxOCBAQAogICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja19yZGxvY2sgCiAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3dybG9jawogICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja191bmxvY2sKKyAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdHJ5cmRsb2NrCisgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3RyeXdybG9jawogCiAgICBVbmhhbmRsZWQ6IHB0aHJlYWRfcndsb2NrX3RpbWVkcmRsb2NrCi0gICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3RyeXJkbG9jawotCiAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3RpbWVkd3Jsb2NrCi0gICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3RyeXdybG9jawogKi8KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBwdGhyZWFkX3J3bG9ja19pbml0Ci0vLyBkYXJ3aW46IHB0aHJlYWRfcndsb2NrX2luaXQKLS8vIGRhcndpbjogcHRocmVhZF9yd2xvY2tfaW5pdCRVTklYMjAwMworLy8gZ2xpYmM6ICAgcHRocmVhZF9yd2xvY2tfaW5pdAorLy8gZGFyd2luOiAgcHRocmVhZF9yd2xvY2tfaW5pdAorLy8gZGFyd2luOiAgcHRocmVhZF9yd2xvY2tfaW5pdCRVTklYMjAwMworLy8gU29sYXJpczogcndsb2NrX2luaXQgKHB0aHJlYWRfcndsb2NrX2luaXQgaXMgYnVpbHQgYXRvcCBvZiByd2xvY2tfaW5pdCkKIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKIHN0YXRpYyBpbnQgcHRocmVhZF9yd2xvY2tfaW5pdF9XUksocHRocmVhZF9yd2xvY2tfdCAqcndsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja2F0dHJfdCogYXR0cikKQEAgLTE1MDIsMTUgKzIwMzksNDkgQEAKICAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2thdHRyX3QqIGF0dHIpIHsKICAgICAgIHJldHVybiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyhyd2wsIGF0dHIpOwogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKK3N0YXRpYyBpbnQgcHRocmVhZF9yd2xvY2tfaW5pdF9XUksocHRocmVhZF9yd2xvY2tfdCAqcndsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja2F0dHJfdCogYXR0cikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygodW51c2VkKSk7CiAjZWxzZQogIyAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorUFRIX0ZVTkMoaW50LCByd2xvY2tadWluaXQsIC8vIHJ3bG9ja19pbml0CisgICAgICAgICAgICAgIHJ3bG9ja190ICpyd2xvY2ssCisgICAgICAgICAgICAgIGludCB0eXBlLAorICAgICAgICAgICAgICB2b2lkICphcmcpCit7CisgICBpbnQgICAgcmV0OworICAgT3JpZ0ZuIGZuOworICAgVkFMR1JJTkRfR0VUX09SSUdfRk4oZm4pOworICAgaWYgKFRSQUNFX1BUSF9GTlMpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiPDwgcndsX2luaXQgJXAiLCByd2xvY2spOyBmZmx1c2goc3RkZXJyKTsKKyAgIH0KKworICAgQ0FMTF9GTl9XX1dXVyhyZXQsIGZuLCByd2xvY2ssIHR5cGUsIGFyZyk7CisKKyAgIGlmIChyZXQgPT0gMCAvKnN1Y2Nlc3MqLykgeworICAgICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0lOSVRfUE9TVCwKKyAgICAgICAgICAgICAgICAgIHJ3bG9ja190ICosIHJ3bG9jayk7CisgICB9IGVsc2UgeworICAgICAgRE9fUHRoQVBJZXJyb3IoInJ3bG9ja19pbml0IiwgcmV0KTsKKyAgIH0KKworICAgaWYgKFRSQUNFX1BUSF9GTlMpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiIDo6IHJ3bF9pbml0IC0+ICVkID4+XG4iLCByZXQpOworICAgfQorICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIGdsaWJjOiAgcHRocmVhZF9yd2xvY2tfZGVzdHJveQotLy8gZGFyd2luOiBwdGhyZWFkX3J3bG9ja19kZXN0cm95Ci0vLyBkYXJ3aW46IHB0aHJlYWRfcndsb2NrX2Rlc3Ryb3kkVU5JWDIwMDMKKy8vIGdsaWJjOiAgIHB0aHJlYWRfcndsb2NrX2Rlc3Ryb3kKKy8vIGRhcndpbjogIHB0aHJlYWRfcndsb2NrX2Rlc3Ryb3kKKy8vIGRhcndpbjogIHB0aHJlYWRfcndsb2NrX2Rlc3Ryb3kkVU5JWDIwMDMKKy8vIFNvbGFyaXM6IHJ3bG9ja19kZXN0cm95IChwdGhyZWFkX3J3bG9ja19kZXN0cm95IGlzIGEgd2VhayBhbGlhcykKIC8vCiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCiBzdGF0aWMgaW50IHB0aHJlYWRfcndsb2NrX2Rlc3Ryb3lfV1JLKHB0aHJlYWRfcndsb2NrX3QqIHJ3bCkKQEAgLTE1NDYsMTUgKzIxMTcsMjEgQEAKICAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCAqcndsKSB7CiAgICAgICByZXR1cm4gcHRocmVhZF9yd2xvY2tfZGVzdHJveV9XUksocndsKTsKICAgIH0KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIHJ3bG9ja1p1ZGVzdHJveSwgLy8gcndsb2NrX2Rlc3Ryb3kKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCAqcndsKSB7CisgICAgICByZXR1cm4gcHRocmVhZF9yd2xvY2tfZGVzdHJveV9XUksocndsKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfcndsb2NrX3dybG9jawotLy8gZGFyd2luOiBwdGhyZWFkX3J3bG9ja193cmxvY2sKLS8vIGRhcndpbjogcHRocmVhZF9yd2xvY2tfd3Jsb2NrJFVOSVgyMDAzCisvLyBnbGliYzogICBwdGhyZWFkX3J3bG9ja193cmxvY2sKKy8vIGRhcndpbjogIHB0aHJlYWRfcndsb2NrX3dybG9jaworLy8gZGFyd2luOiAgcHRocmVhZF9yd2xvY2tfd3Jsb2NrJFVOSVgyMDAzCisvLyBTb2xhcmlzOiByd193cmxvY2sgKHB0aHJlYWRfcndsb2NrX3dybG9jayBpcyBhIHdlYWsgYWxpYXMpCiAvLwogX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQogc3RhdGljIGludCBwdGhyZWFkX3J3bG9ja193cmxvY2tfV1JLKHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaykKQEAgLTE1NzIsMTAgKzIxNDksMTAgQEAKIAogICAgQ0FMTF9GTl9XX1cocmV0LCBmbiwgcndsb2NrKTsKIAotICAgaWYgKHJldCA9PSAwIC8qc3VjY2VzcyovKSB7Ci0gICAgICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUE9TVCwKLSAgICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190Kixyd2xvY2ssIGxvbmcsMS8qaXNXKi8pOwotICAgfSBlbHNlIHsgCisgICBET19DUkVRX3ZfV1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BPU1QsCisgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QqLHJ3bG9jaywgbG9uZywxLyppc1cqLywKKyAgICAgICAgICAgICAgICAgbG9uZywgKHJldCA9PSAwKSA/IFRydWUgOiBGYWxzZSk7CisgICBpZiAocmV0ICE9IDApIHsKICAgICAgIERPX1B0aEFQSWVycm9yKCAicHRocmVhZF9yd2xvY2tfd3Jsb2NrIiwgcmV0ICk7CiAgICB9CiAKQEAgLTE1OTQsMTUgKzIxNzEsNDcgQEAKICAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCogcndsb2NrKSB7CiAgICAgICByZXR1cm4gcHRocmVhZF9yd2xvY2tfd3Jsb2NrX1dSSyhyd2xvY2spOwogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFBUSF9GVU5DKGludCwgcndadXdybG9jaywgLy8gcndfd3Jsb2NrCisgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QgKnJ3bG9jaykgeworICAgICAgcmV0dXJuIHB0aHJlYWRfcndsb2NrX3dybG9ja19XUksocndsb2NrKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiBJbnRlcm5hbCB0byBsaWJjLiAqLworUFRIX0ZVTkModm9pZCwgbHJ3WnV3cmxvY2ssIC8vIGxyd193cmxvY2sKKyAgICAgICAgICAgICAgIHJ3bG9ja190ICpyd2xvY2spCit7CisgICBPcmlnRm4gZm47CisgICBWQUxHUklORF9HRVRfT1JJR19GTihmbik7CisgICBpZiAoVFJBQ0VfUFRIX0ZOUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICI8PCBscndfd2xrICVwIiwgcndsb2NrKTsgZmZsdXNoKHN0ZGVycik7CisgICB9CisKKyAgIERPX0NSRVFfdl9XV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUFJFLAorICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190ICosIHJ3bG9jaywKKyAgICAgICAgICAgICAgICAgbG9uZywgMS8qaXNXKi8sIGxvbmcsIDAvKiFpc1RyeUxvY2sqLyk7CisKKyAgIENBTExfRk5fdl9XKGZuLCByd2xvY2spOworCisgICBET19DUkVRX3ZfV1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BPU1QsCisgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QgKiwgcndsb2NrLCBsb25nLCAxLyppc1cqLywgbG9uZywgVHJ1ZSk7CisKKyAgIGlmIChUUkFDRV9QVEhfRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIiA6OiBscndfd2xrID4+XG4iKTsKKyAgIH0KK30KKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIGdsaWJjOiAgcHRocmVhZF9yd2xvY2tfcmRsb2NrCi0vLyBkYXJ3aW46IHB0aHJlYWRfcndsb2NrX3JkbG9jawotLy8gZGFyd2luOiBwdGhyZWFkX3J3bG9ja19yZGxvY2skVU5JWDIwMDMKKy8vIGdsaWJjOiAgIHB0aHJlYWRfcndsb2NrX3JkbG9jaworLy8gZGFyd2luOiAgcHRocmVhZF9yd2xvY2tfcmRsb2NrCisvLyBkYXJ3aW46ICBwdGhyZWFkX3J3bG9ja19yZGxvY2skVU5JWDIwMDMKKy8vIFNvbGFyaXM6IHJ3X3JkbG9jayAocHRocmVhZF9yd2xvY2tfcmRsb2NrIGlzIGEgd2VhayBhbGlhcykKIC8vCiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCiBzdGF0aWMgaW50IHB0aHJlYWRfcndsb2NrX3JkbG9ja19XUksocHRocmVhZF9yd2xvY2tfdCogcndsb2NrKQpAQCAtMTYyMCwxMCArMjIyOSwxMCBAQAogCiAgICBDQUxMX0ZOX1dfVyhyZXQsIGZuLCByd2xvY2spOwogCi0gICBpZiAocmV0ID09IDAgLypzdWNjZXNzKi8pIHsKLSAgICAgIERPX0NSRVFfdl9XVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfTE9DS19QT1NULAotICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QqLHJ3bG9jaywgbG9uZywwLyohaXNXKi8pOwotICAgfSBlbHNlIHsgCisgICBET19DUkVRX3ZfV1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BPU1QsCisgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QqLHJ3bG9jaywgbG9uZywwLyohaXNXKi8sCisgICAgICAgICAgICAgICAgIGxvbmcsIChyZXQgPT0gMCkgPyBUcnVlIDogRmFsc2UpOworICAgaWYgKHJldCAhPSAwKSB7CiAgICAgICBET19QdGhBUEllcnJvciggInB0aHJlYWRfcndsb2NrX3JkbG9jayIsIHJldCApOwogICAgfQogCkBAIC0xNjQyLDE1ICsyMjUxLDQ3IEBACiAgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaykgewogICAgICAgcmV0dXJuIHB0aHJlYWRfcndsb2NrX3JkbG9ja19XUksocndsb2NrKTsKICAgIH0KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIHJ3WnVyZGxvY2ssIC8vIHJ3X3JkbG9jaworICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190ICpyd2xvY2spIHsKKyAgICAgIHJldHVybiBwdGhyZWFkX3J3bG9ja19yZGxvY2tfV1JLKHJ3bG9jayk7CisgICB9CiAjZWxzZQogIyAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorLyogSW50ZXJuYWwgdG8gbGliYy4gKi8KK1BUSF9GVU5DKHZvaWQsIGxyd1p1cmRsb2NrLCAvLyBscndfcmRsb2NrCisgICAgICAgICAgICAgICByd2xvY2tfdCAqcndsb2NrKQoreworICAgT3JpZ0ZuIGZuOworICAgVkFMR1JJTkRfR0VUX09SSUdfRk4oZm4pOworICAgaWYgKFRSQUNFX1BUSF9GTlMpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiPDwgbHJ3X3JsayAlcCIsIHJ3bG9jayk7IGZmbHVzaChzdGRlcnIpOworICAgfQorCisgICBET19DUkVRX3ZfV1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BSRSwKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCAqLCByd2xvY2ssCisgICAgICAgICAgICAgICAgIGxvbmcsIDAvKiFpc1cqLywgbG9uZywgMC8qIWlzVHJ5TG9jayovKTsKKworICAgQ0FMTF9GTl92X1coZm4sIHJ3bG9jayk7CisKKyAgIERPX0NSRVFfdl9XV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUE9TVCwKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCAqLCByd2xvY2ssIGxvbmcsIDAvKiFpc1cqLywgbG9uZywgVHJ1ZSk7CisKKyAgIGlmIChUUkFDRV9QVEhfRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIiA6OiBscndfcmxrIC0+PlxuIik7CisgICB9Cit9CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfcndsb2NrX3RyeXdybG9jawotLy8gZGFyd2luOiBwdGhyZWFkX3J3bG9ja190cnl3cmxvY2sKLS8vIGRhcndpbjogcHRocmVhZF9yd2xvY2tfdHJ5d3Jsb2NrJFVOSVgyMDAzCisvLyBnbGliYzogICBwdGhyZWFkX3J3bG9ja190cnl3cmxvY2sKKy8vIGRhcndpbjogIHB0aHJlYWRfcndsb2NrX3RyeXdybG9jaworLy8gZGFyd2luOiAgcHRocmVhZF9yd2xvY2tfdHJ5d3Jsb2NrJFVOSVgyMDAzCisvLyBTb2xhcmlzOiByd190cnl3cmxvY2sgKHB0aHJlYWRfcndsb2NrX3RyeXdybG9jayBpcyBhIHdlYWsgYWxpYXMpCiAvLwogX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQogc3RhdGljIGludCBwdGhyZWFkX3J3bG9ja190cnl3cmxvY2tfV1JLKHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaykKQEAgLTE2NzMsMTAgKzIzMTQsMTAgQEAKICAgICAgIHRoYXQgdGhlIGxvY2sgaGFzIGJlZW4gYWNxdWlyZWQgYnkgc29tZW9uZSAodGhpcyB0aHJlYWQpLiAgRG9lcwogICAgICAgdGhpcyBtYXR0ZXI/ICBOb3Qgc3VyZSwgYnV0IEkgZG9uJ3QgdGhpbmsgc28uICovCiAKLSAgIGlmIChyZXQgPT0gMCAvKnN1Y2Nlc3MqLykgewotICAgICAgRE9fQ1JFUV92X1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BPU1QsCi0gICAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCoscndsb2NrLCBsb25nLDEvKmlzVyovKTsKLSAgIH0gZWxzZSB7IAorICAgRE9fQ1JFUV92X1dXVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfTE9DS19QT1NULAorICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190Kixyd2xvY2ssIGxvbmcsMS8qaXNXKi8sCisgICAgICAgICAgICAgICAgIGxvbmcsIChyZXQgPT0gMCkgPyBUcnVlIDogRmFsc2UpOworICAgaWYgKHJldCAhPSAwKSB7CiAgICAgICBpZiAocmV0ICE9IEVCVVNZKQogICAgICAgICAgRE9fUHRoQVBJZXJyb3IoICJwdGhyZWFkX3J3bG9ja190cnl3cmxvY2siLCByZXQgKTsKICAgIH0KQEAgLTE2OTYsMTUgKzIzMzcsMjEgQEAKICAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCogcndsb2NrKSB7CiAgICAgICByZXR1cm4gcHRocmVhZF9yd2xvY2tfdHJ5d3Jsb2NrX1dSSyhyd2xvY2spOwogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFBUSF9GVU5DKGludCwgcndadXRyeXdybG9jaywgLy8gcndfdHJ5d3Jsb2NrCisgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QgKnJ3bG9jaykgeworICAgICAgcmV0dXJuIHB0aHJlYWRfcndsb2NrX3RyeXdybG9ja19XUksocndsb2NrKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfcndsb2NrX3RyeXJkbG9jawotLy8gZGFyd2luOiBwdGhyZWFkX3J3bG9ja190cnl3cmxvY2sKLS8vIGRhcndpbjogcHRocmVhZF9yd2xvY2tfdHJ5d3Jsb2NrJFVOSVgyMDAzCisvLyBnbGliYzogICBwdGhyZWFkX3J3bG9ja190cnlyZGxvY2sKKy8vIGRhcndpbjogIHB0aHJlYWRfcndsb2NrX3RyeXJkbG9jaworLy8gZGFyd2luOiAgcHRocmVhZF9yd2xvY2tfdHJ5cmRsb2NrJFVOSVgyMDAzCisvLyBTb2xhcmlzOiByd190cnlyZGxvY2sgKHB0aHJlYWRfcndsb2NrX3RyeXJkbG9jayBpcyBhIHdlYWsgYWxpYXMpCiAvLwogX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQogc3RhdGljIGludCBwdGhyZWFkX3J3bG9ja190cnlyZGxvY2tfV1JLKHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaykKQEAgLTE3MjcsMTAgKzIzNzQsMTEgQEAKICAgICAgIHRoYXQgdGhlIGxvY2sgaGFzIGJlZW4gYWNxdWlyZWQgYnkgc29tZW9uZSAodGhpcyB0aHJlYWQpLiAgRG9lcwogICAgICAgdGhpcyBtYXR0ZXI/ICBOb3Qgc3VyZSwgYnV0IEkgZG9uJ3QgdGhpbmsgc28uICovCiAKLSAgIGlmIChyZXQgPT0gMCAvKnN1Y2Nlc3MqLykgewotICAgICAgRE9fQ1JFUV92X1dXKF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BPU1QsCi0gICAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCoscndsb2NrLCBsb25nLDAvKiFpc1cqLyk7Ci0gICB9IGVsc2UgeyAKKyAgIERPX0NSRVFfdl9XV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUE9TVCwKKyAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190Kixyd2xvY2ssIGxvbmcsMC8qIWlzVyovLAorICAgICAgICAgICAgICAgIGxvbmcsIChyZXQgPT0gMCkgPyBUcnVlIDogRmFsc2UpOworCisgICBpZiAocmV0ICE9IDApIHsKICAgICAgIGlmIChyZXQgIT0gRUJVU1kpCiAgICAgICAgICBET19QdGhBUEllcnJvciggInB0aHJlYWRfcndsb2NrX3RyeXJkbG9jayIsIHJldCApOwogICAgfQpAQCAtMTc1MCwxNSArMjM5OCwxMjcgQEAKICAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCogcndsb2NrKSB7CiAgICAgICByZXR1cm4gcHRocmVhZF9yd2xvY2tfdHJ5cmRsb2NrX1dSSyhyd2xvY2spOwogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFBUSF9GVU5DKGludCwgcndadXRyeXJkbG9jaywgLy8gcndfdHJ5cmRsb2NrCisgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QgKnJ3bG9jaykgeworICAgICAgcmV0dXJuIHB0aHJlYWRfcndsb2NrX3RyeXJkbG9ja19XUksocndsb2NrKTsKKyAgIH0KICNlbHNlCiAjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCiAjZW5kaWYKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHB0aHJlYWRfcndsb2NrX3VubG9jawotLy8gZGFyd2luOiBwdGhyZWFkX3J3bG9ja191bmxvY2sKLS8vIGRhcndpbjogcHRocmVhZF9yd2xvY2tfdW5sb2NrJFVOSVgyMDAzCisvLyBnbGliYzogICBVbmhhbmRsZWQKKy8vIGRhcndpbjogIFVuaGFuZGxlZAorLy8gU29sYXJpczogcHRocmVhZF9yd2xvY2tfdGltZWRyZGxvY2sKKy8vIFNvbGFyaXM6IHB0aHJlYWRfcndsb2NrX3JlbHRpbWVkcmRsb2NrX25wCisvLworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorc3RhdGljIGludCBwdGhyZWFkX3J3bG9ja190aW1lZHJkbG9ja19XUksocHRocmVhZF9yd2xvY2tfdCAqcndsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICp0aW1lb3V0KQoreworICAgaW50ICAgIHJldDsKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKyAgIGlmIChUUkFDRV9QVEhfRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIjw8IHB0aHJlYWRfcndsX3RpbWVkcmRsICVwIiwgcndsb2NrKTsgZmZsdXNoKHN0ZGVycik7CisgICB9CisKKyAgIERPX0NSRVFfdl9XV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUFJFLAorICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190ICosIHJ3bG9jaywKKyAgICAgICAgICAgICAgICAgbG9uZywgMC8qaXNXKi8sIGxvbmcsIDAvKmlzVHJ5TG9jayovKTsKKworICAgQ0FMTF9GTl9XX1dXKHJldCwgZm4sIHJ3bG9jaywgdGltZW91dCk7CisKKyAgIERPX0NSRVFfdl9XV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUE9TVCwKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCAqLCByd2xvY2ssIGxvbmcsIDAvKmlzVyovLAorICAgICAgICAgICAgICAgICBsb25nLCAocmV0ID09IDApID8gVHJ1ZSA6IEZhbHNlKTsKKyAgIGlmIChyZXQgIT0gMCkgeworICAgICAgRE9fUHRoQVBJZXJyb3IoInB0aHJlYWRfcndsb2NrX3RpbWVkcmRsb2NrIiwgcmV0KTsKKyAgIH0KKworICAgaWYgKFRSQUNFX1BUSF9GTlMpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiIDo6IHJ3bF90aW1lZHJkbCAtPiAlZCA+PlxuIiwgcmV0KTsKKyAgIH0KKyAgIHJldHVybiByZXQ7Cit9CisjaWYgZGVmaW5lZChWR09fbGludXgpCisjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVyd2xvY2tadXRpbWVkcmRsb2NrLCAvLyBwdGhyZWFkX3J3bG9ja190aW1lZHJkbG9jaworICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190ICpyd2xvY2ssCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCkgeworICAgICAgcmV0dXJuIHB0aHJlYWRfcndsb2NrX3RpbWVkcmRsb2NrX1dSSyhyd2xvY2ssIHRpbWVvdXQpOworICAgfQorICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVyd2xvY2tadXJlbHRpbWVkcmRsb2NrWnVucCwgLy8gcHRocmVhZF9yd2xvY2tfdGltZWRyZGxvY2tfbnAKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCAqcndsb2NrLAorICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpIHsKKyAgICAgIHJldHVybiBwdGhyZWFkX3J3bG9ja190aW1lZHJkbG9ja19XUksocndsb2NrLCB0aW1lb3V0KTsKKyAgIH0KKyNlbHNlCisjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCisjZW5kaWYKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBnbGliYzogICBVbmhhbmRsZWQKKy8vIGRhcndpbjogIFVuaGFuZGxlZAorLy8gU29sYXJpczogcHRocmVhZF9yd2xvY2tfdGltZWR3cmxvY2sKKy8vIFNvbGFyaXM6IHB0aHJlYWRfcndsb2NrX3JlbHRpbWVkd3Jsb2NrX25wCisvLworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorc3RhdGljIGludCBwdGhyZWFkX3J3bG9ja190aW1lZHdybG9ja19XUksocHRocmVhZF9yd2xvY2tfdCAqcndsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICp0aW1lb3V0KQoreworICAgaW50ICAgIHJldDsKKyAgIE9yaWdGbiBmbjsKKyAgIFZBTEdSSU5EX0dFVF9PUklHX0ZOKGZuKTsKKyAgIGlmIChUUkFDRV9QVEhfRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIjw8IHB0aHJlYWRfcndsX3RpbWVkd3JsICVwIiwgcndsb2NrKTsgZmZsdXNoKHN0ZGVycik7CisgICB9CisKKyAgIERPX0NSRVFfdl9XV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUFJFLAorICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190ICosIHJ3bG9jaywKKyAgICAgICAgICAgICAgICAgbG9uZywgMS8qaXNXKi8sIGxvbmcsIDAvKmlzVHJ5TG9jayovKTsKKworICAgQ0FMTF9GTl9XX1dXKHJldCwgZm4sIHJ3bG9jaywgdGltZW91dCk7CisKKyAgIERPX0NSRVFfdl9XV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUE9TVCwKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCAqLCByd2xvY2ssIGxvbmcsIDEvKmlzVyovLAorICAgICAgICAgICAgICAgICBsb25nLCAocmV0ID09IDApID8gVHJ1ZSA6IEZhbHNlKTsKKyAgIGlmIChyZXQgIT0gMCkgeworICAgICAgRE9fUHRoQVBJZXJyb3IoInB0aHJlYWRfcndsb2NrX3RpbWVkd3Jsb2NrIiwgcmV0KTsKKyAgIH0KKworICAgaWYgKFRSQUNFX1BUSF9GTlMpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiIDo6IHJ3bF90aW1lZHdybCAtPiAlZCA+PlxuIiwgcmV0KTsKKyAgIH0KKyAgIHJldHVybiByZXQ7Cit9CisjaWYgZGVmaW5lZChWR09fbGludXgpCisjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVyd2xvY2tadXRpbWVkd3Jsb2NrLCAvLyBwdGhyZWFkX3J3bG9ja190aW1lZHdybG9jaworICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190ICpyd2xvY2ssCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdGltZW91dCkgeworICAgICAgcmV0dXJuIHB0aHJlYWRfcndsb2NrX3RpbWVkd3Jsb2NrX1dSSyhyd2xvY2ssIHRpbWVvdXQpOworICAgfQorICAgUFRIX0ZVTkMoaW50LCBwdGhyZWFkWnVyd2xvY2tadXJlbHRpbWVkd3Jsb2NrWnVucCwgLy8gcHRocmVhZF9yd2xvY2tfdGltZWR3cmxvY2tfbnAKKyAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCAqcndsb2NrLAorICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpIHsKKyAgICAgIHJldHVybiBwdGhyZWFkX3J3bG9ja190aW1lZHdybG9ja19XUksocndsb2NrLCB0aW1lb3V0KTsKKyAgIH0KKyNlbHNlCisjICBlcnJvciAiVW5zdXBwb3J0ZWQgT1MiCisjZW5kaWYKKworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBnbGliYzogICBwdGhyZWFkX3J3bG9ja191bmxvY2sKKy8vIGRhcndpbjogIHB0aHJlYWRfcndsb2NrX3VubG9jaworLy8gZGFyd2luOiAgcHRocmVhZF9yd2xvY2tfdW5sb2NrJFVOSVgyMDAzCisvLyBTb2xhcmlzOiByd191bmxvY2sgKHB0aHJlYWRfcndsb2NrX3VubG9jayBpcyBhIHdlYWsgYWxpYXMpCiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCiBzdGF0aWMgaW50IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksocHRocmVhZF9yd2xvY2tfdCogcndsb2NrKQogewpAQCAtMTc3NCwxMCArMjUzNCw5IEBACiAKICAgIENBTExfRk5fV19XKHJldCwgZm4sIHJ3bG9jayk7CiAKLSAgIGlmIChyZXQgPT0gMCAvKnN1Y2Nlc3MqLykgewotICAgICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX1VOTE9DS19QT1NULAotICAgICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCoscndsb2NrKTsKLSAgIH0gZWxzZSB7IAorICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX1VOTE9DS19QT1NULAorICAgICAgICAgICAgICAgcHRocmVhZF9yd2xvY2tfdCoscndsb2NrKTsKKyAgIGlmIChyZXQgIT0gMCkgewogICAgICAgRE9fUHRoQVBJZXJyb3IoICJwdGhyZWFkX3J3bG9ja191bmxvY2siLCByZXQgKTsKICAgIH0KIApAQCAtMTc5Niw2ICsyNTU1LDExIEBACiAgICAgICAgICAgICAgICAgIHB0aHJlYWRfcndsb2NrX3QqIHJ3bG9jaykgewogICAgICAgcmV0dXJuIHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksocndsb2NrKTsKICAgIH0KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIHJ3WnV1bmxvY2ssIC8vIHJ3X3VubG9jaworICAgICAgICAgICAgICAgICBwdGhyZWFkX3J3bG9ja190ICpyd2xvY2spIHsKKyAgICAgIHJldHVybiBwdGhyZWFkX3J3bG9ja191bmxvY2tfV1JLKHJ3bG9jayk7CisgICB9CiAjZWxzZQogIyAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogI2VuZGlmCkBAIC0xODI5LDExICsyNTkzLDEzIEBACiAqLwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHNlbV9pbml0QEBHTElCQ18yLjIuNQotLy8gZ2xpYmM6ICBzZW1faW5pdEBAR0xJQkNfMi4xCi0vLyBnbGliYzogIHNlbV9pbml0QEdMSUJDXzIuMAotLy8gZGFyd2luOiBzZW1faW5pdAorLy8gZ2xpYmM6ICAgc2VtX2luaXRAQEdMSUJDXzIuMi41CisvLyBnbGliYzogICBzZW1faW5pdEBAR0xJQkNfMi4xCisvLyBnbGliYzogICBzZW1faW5pdEBHTElCQ18yLjAKKy8vIGRhcndpbjogIHNlbV9pbml0CisvLyBTb2xhcmlzOiBzZW1hX2luaXQgKHNlbV9pbml0IGlzIGJ1aWx0IG9uIHRvcCBvZiBzZW1faW5pdCkKIC8vCisjaWYgIWRlZmluZWQoVkdPX3NvbGFyaXMpCiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCiBzdGF0aWMgaW50IHNlbV9pbml0X1dSSyhzZW1fdCogc2VtLCBpbnQgcHNoYXJlZCwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKIHsKQEAgLTE4NzYsMTIgKzI2NDIsNDcgQEAKICMgIGVycm9yICJVbnN1cHBvcnRlZCBPUyIKICNlbmRpZgogCisjZWxzZSAvKiBWR09fc29sYXJpcyAqLworUFRIX0ZVTkMoaW50LCBzZW1hWnVpbml0LCAvLyBzZW1hX2luaXQKKyAgICAgICAgICAgICAgc2VtYV90ICpzZW0sCisgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB2YWx1ZSwKKyAgICAgICAgICAgICAgaW50IHR5cGUsCisgICAgICAgICAgICAgIHZvaWQgKmFyZykKK3sKKyAgIE9yaWdGbiBmbjsKKyAgIGludCAgICByZXQ7CisgICBWQUxHUklORF9HRVRfT1JJR19GTihmbik7CisKKyAgIGlmIChUUkFDRV9TRU1fRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIjw8IHNlbWFfaW5pdCglcCwgJWQsICV1KSAiLCBzZW0sIHR5cGUsIHZhbHVlKTsKKyAgICAgIGZmbHVzaChzdGRlcnIpOworICAgfQorCisgICBDQUxMX0ZOX1dfV1dXVyhyZXQsIGZuLCBzZW0sIHZhbHVlLCB0eXBlLCBhcmcpOworCisgICBpZiAocmV0ID09IDApIHsKKyAgICAgIERPX0NSRVFfdl9XVyhfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX0lOSVRfUE9TVCwKKyAgICAgICAgICAgICAgICAgICBzZW1hX3QgKiwgc2VtLCBXb3JkLCB2YWx1ZSk7CisgICB9IGVsc2UgeworICAgICAgRE9fUHRoQVBJZXJyb3IoInNlbWFfaW5pdCIsIHJldCk7CisgICB9CisKKyAgIGlmIChUUkFDRV9TRU1fRk5TKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIiBzZW1hX2luaXQgLT4gJWQgPj5cbiIsIHJldCk7CisgICAgICBmZmx1c2goc3RkZXJyKTsKKyAgIH0KKworICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIGdsaWJjOiAgc2VtX2Rlc3Ryb3lAR0xJQkNfMi4wCi0vLyBnbGliYzogIHNlbV9kZXN0cm95QEBHTElCQ18yLjEKLS8vIGdsaWJjOiAgc2VtX2Rlc3Ryb3lAQEdMSUJDXzIuMi41Ci0vLyBkYXJ3aW46IHNlbV9kZXN0cm95CisvLyBnbGliYzogICBzZW1fZGVzdHJveUBHTElCQ18yLjAKKy8vIGdsaWJjOiAgIHNlbV9kZXN0cm95QEBHTElCQ18yLjEKKy8vIGdsaWJjOiAgIHNlbV9kZXN0cm95QEBHTElCQ18yLjIuNQorLy8gZGFyd2luOiAgc2VtX2Rlc3Ryb3kKKy8vIFNvbGFyaXM6IHNlbWFfZGVzdHJveSAoc2VtX2Rlc3Ryb3kgaXMgYnVpbHQgb24gdG9wIG9mIHNlbWFfZGVzdHJveSkKIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKIHN0YXRpYyBpbnQgc2VtX2Rlc3Ryb3lfV1JLKHNlbV90KiBzZW0pCiB7CkBAIC0xODk5LDcgKzI3MDAsNyBAQAogICAgQ0FMTF9GTl9XX1cocmV0LCBmbiwgc2VtKTsKIAogICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICBET19QdGhBUEllcnJvciggInNlbV9kZXN0cm95IiwgZXJybm8gKTsKKyAgICAgIERPX1B0aEFQSWVycm9yKCAic2VtX2Rlc3Ryb3kiLCBTRU1fRVJST1IgKTsKICAgIH0KIAogICAgaWYgKFRSQUNFX1NFTV9GTlMpIHsKQEAgLTE5MTksMTggKzI3MjAsMjQgQEAKICAgICAgICAgICAgICAgICAgc2VtX3QqIHNlbSkgewogICAgICAgcmV0dXJuIHNlbV9kZXN0cm95X1dSSyhzZW0pOwogICAgfQorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgIFBUSF9GVU5DKGludCwgc2VtYVp1ZGVzdHJveSwgIC8vIHNlbWFfZGVzdHJveQorICAgICAgICAgICAgICAgICBzZW1fdCAqc2VtKSB7CisgICAgICByZXR1cm4gc2VtX2Rlc3Ryb3lfV1JLKHNlbSk7CisgICB9CiAjZWxzZQogIyAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogI2VuZGlmCiAKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBzZW1fd2FpdAotLy8gZ2xpYmM6ICBzZW1fd2FpdEBHTElCQ18yLjAKLS8vIGdsaWJjOiAgc2VtX3dhaXRAQEdMSUJDXzIuMQotLy8gZGFyd2luOiBzZW1fd2FpdAotLy8gZGFyd2luOiBzZW1fd2FpdCROT0NBTkNFTCRVTklYMjAwMwotLy8gZGFyd2luOiBzZW1fd2FpdCRVTklYMjAwMworLy8gZ2xpYmM6ICAgc2VtX3dhaXQKKy8vIGdsaWJjOiAgIHNlbV93YWl0QEdMSUJDXzIuMAorLy8gZ2xpYmM6ICAgc2VtX3dhaXRAQEdMSUJDXzIuMQorLy8gZGFyd2luOiAgc2VtX3dhaXQKKy8vIGRhcndpbjogIHNlbV93YWl0JE5PQ0FOQ0VMJFVOSVgyMDAzCisvLyBkYXJ3aW46ICBzZW1fd2FpdCRVTklYMjAwMworLy8gU29sYXJpczogc2VtYV93YWl0IChzZW1fd2FpdCBpcyBidWlsdCBvbiB0b3Agb2Ygc2VtYV93YWl0KQogLy8KIC8qIHdhaXQ6IGRlY3JlbWVudCBzZW1hcGhvcmUgLSBhY3F1aXJlIGxvY2thZ2UgKi8KIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKQEAgLTE5NDUsMTIgKzI3NTIsMTUgQEAKICAgICAgIGZmbHVzaChzdGRlcnIpOwogICAgfQogCisgICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX1dBSVRfUFJFLCBzZW1fdCosc2VtKTsKKwogICAgQ0FMTF9GTl9XX1cocmV0LCBmbiwgc2VtKTsKIAotICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX1dBSVRfUE9TVCwgc2VtX3QqLHNlbSk7Ci0gICB9IGVsc2UgewotICAgICAgRE9fUHRoQVBJZXJyb3IoICJzZW1fd2FpdCIsIGVycm5vICk7CisgICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9XQUlUX1BPU1QsIHNlbV90KixzZW0sCisgICAgICAgICAgICAgICAgbG9uZywgKHJldCA9PSAwKSA/IFRydWUgOiBGYWxzZSk7CisKKyAgIGlmIChyZXQgIT0gMCkgeworICAgICAgRE9fUHRoQVBJZXJyb3IoICJzZW1fd2FpdCIsIFNFTV9FUlJPUiApOwogICAgfQogCiAgICBpZiAoVFJBQ0VfU0VNX0ZOUykgewpAQCAtMTk3NCwxNiArMjc4NCwyMSBAQAogICAgUFRIX0ZVTkMoaW50LCBzZW1adXdhaXRaRFphLCBzZW1fdCogc2VtKSB7IC8qIHNlbV93YWl0JCogKi8KICAgICAgIHJldHVybiBzZW1fd2FpdF9XUksoc2VtKTsKICAgIH0KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIHNlbWFadXdhaXQsIHNlbV90ICpzZW0pIHsgLyogc2VtYV93YWl0ICovCisgICAgICByZXR1cm4gc2VtX3dhaXRfV1JLKHNlbSk7CisgICB9CiAjZWxzZQogIyAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogI2VuZGlmCiAKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBzZW1fcG9zdAotLy8gZ2xpYmM6ICBzZW1fcG9zdEBHTElCQ18yLjAKLS8vIGdsaWJjOiAgc2VtX3Bvc3RAQEdMSUJDXzIuMQotLy8gZGFyd2luOiBzZW1fcG9zdAorLy8gZ2xpYmM6ICAgc2VtX3Bvc3QKKy8vIGdsaWJjOiAgIHNlbV9wb3N0QEdMSUJDXzIuMAorLy8gZ2xpYmM6ICAgc2VtX3Bvc3RAQEdMSUJDXzIuMQorLy8gZGFyd2luOiAgc2VtX3Bvc3QKKy8vIFNvbGFyaXM6IHNlbWFfcG9zdCAoc2VtX3Bvc3QgaXMgYnVpbHQgb24gdG9wIG9mIHNlbWFfcG9zdCkKIC8vCiAvKiBwb3N0OiBpbmNyZW1lbnQgc2VtYXBob3JlIC0gcmVsZWFzZSBsb2NrYWdlICovCiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCkBAIC0yMDAzLDggKzI4MTgsMTAgQEAKIAogICAgQ0FMTF9GTl9XX1cocmV0LCBmbiwgc2VtKTsKIAorICAgRE9fQ1JFUV92X1coX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9QT1NUX1BPU1QsIHNlbV90KixzZW0pOworCiAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgIERPX1B0aEFQSWVycm9yKCAic2VtX3Bvc3QiLCBlcnJubyApOworICAgICAgRE9fUHRoQVBJZXJyb3IoICJzZW1fcG9zdCIsIFNFTV9FUlJPUiApOwogICAgfQogCiAgICBpZiAoVFJBQ0VfU0VNX0ZOUykgewpAQCAtMjAyNSwxNCArMjg0MiwxOSBAQAogICAgUFRIX0ZVTkMoaW50LCBzZW1adXBvc3QsIHNlbV90KiBzZW0pIHsgLyogc2VtX3Bvc3QgKi8KICAgICAgIHJldHVybiBzZW1fcG9zdF9XUksoc2VtKTsKICAgIH0KKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBQVEhfRlVOQyhpbnQsIHNlbWFadXBvc3QsIHNlbV90ICpzZW0pIHsgLyogc2VtYV9wb3N0ICovCisgICAgICByZXR1cm4gc2VtX3Bvc3RfV1JLKHNlbSk7CisgICB9CiAjZWxzZQogIyAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogI2VuZGlmCiAKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gZ2xpYmM6ICBzZW1fb3BlbgotLy8gZGFyd2luOiBzZW1fb3BlbgorLy8gZ2xpYmM6ICAgc2VtX29wZW4KKy8vIGRhcndpbjogIHNlbV9vcGVuCisvLyBTb2xhcmlzOiBzZW1fb3BlbgogLy8KIFBUSF9GVU5DKHNlbV90Kiwgc2VtWnVvcGVuLAogICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBuYW1lLCBsb25nIG9mbGFnLApAQCAtMjA2OSw4ICsyODkxLDkgQEAKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnbGliYzogIHNlbV9jbG9zZQotLy8gZGFyd2luOiBzZW1fY2xvc2UKKy8vIGdsaWJjOiAgIHNlbV9jbG9zZQorLy8gZGFyd2luOiAgc2VtX2Nsb3NlCisvLyBTb2xhcmlzOiBzZW1fY2xvc2UKIFBUSF9GVU5DKGludCwgc2VtX2Nsb3NlLCBzZW1fdCogc2VtKQogewogICAgT3JpZ0ZuIGZuOwpAQCAtMjIwOSw4ICszMDMyLDggQEAKIAogICAgQ0FMTF9GTl92X1coZm4sIHNlbGYpOwogCi0gICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1QsCi0gICAgICAgICAgICAgICB2b2lkKiwgc2VsZik7CisgICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAorICAgICAgICAgICAgICAgIHZvaWQgKiwgc2VsZiwgbG9uZywgVHJ1ZSk7CiAKICAgIGlmIChUUkFDRV9RVDRfRk5TKSB7CiAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiA6OiBROjpsb2NrIGRvbmUgPj5cbiIpOwpAQCAtMjI3NSwxMCArMzA5OCw4IEBACiAgICBDQUxMX0ZOX1dfVyhyZXQsIGZuLCBzZWxmKTsKIAogICAgLy8gYXNzdW1lcyB0aGF0IG9ubHkgdGhlIGxvdyA4IGJpdHMgb2YgdGhlICdib29sJyBhcmUgc2lnbmlmaWNhbnQKLSAgIGlmIChyZXQgJiAweEZGKSB7Ci0gICAgICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1QsCi0gICAgICAgICAgICAgICAgICB2b2lkKiwgc2VsZik7Ci0gICB9CisgICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAorICAgICAgICAgICAgICAgIHZvaWQgKiwgc2VsZiwgbG9uZywgKHJldCAmIDB4RkYpID8gVHJ1ZSA6IEZhbHNlKTsKIAogICAgaWYgKFRSQUNFX1FUNF9GTlMpIHsKICAgICAgIGZwcmludGYoc3RkZXJyLCAiIDo6IFE6OnRyeUxvY2sgLT4gJWx1ID4+XG4iLCByZXQpOwpAQCAtMjMxNCwxMCArMzEzNSw4IEBACiAgICBDQUxMX0ZOX1dfV1cocmV0LCBmbiwgc2VsZixhcmcyKTsKIAogICAgLy8gYXNzdW1lcyB0aGF0IG9ubHkgdGhlIGxvdyA4IGJpdHMgb2YgdGhlICdib29sJyBhcmUgc2lnbmlmaWNhbnQKLSAgIGlmIChyZXQgJiAweEZGKSB7Ci0gICAgICBET19DUkVRX3ZfVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1QsCi0gICAgICAgICAgICAgICAgICB2b2lkKiwgc2VsZik7Ci0gICB9CisgICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfTVVURVhfTE9DS19QT1NULAorICAgICAgICAgICAgICAgdm9pZCAqLCBzZWxmLCBsb25nLCAocmV0ICYgMHhGRikgPyBUcnVlIDogRmFsc2UpOwogCiAgICBpZiAoVFJBQ0VfUVQ0X0ZOUykgewogICAgICAgZnByaW50ZihzdGRlcnIsICIgOjogUTo6dHJ5TG9jayhpbnQpIC0+ICVsdSA+PlxuIiwgcmV0KTsKQEAgLTI0NDIsOCArMzI2MSw4IEBACiAvLwogLy8gICBDQUxMX0ZOX3ZfVyhmbiwgc2VsZik7CiAvLwotLy8gICBET19DUkVRX3ZfV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUE9TVCwKLS8vICAgICAgICAgICAgICAgIHZvaWQqLHNlbGYsIGxvbmcsMC8qIWlzVyovKTsKKy8vICAgRE9fQ1JFUV92X1dXVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfTE9DS19QT1NULAorLy8gICAgICAgICAgICAgICAgIHZvaWQqLHNlbGYsIGxvbmcsMC8qIWlzVyovLCBsb25nLCBUcnVlKTsKIC8vCiAvLyAgIGlmIChUUkFDRV9RVDRfRk5TKSB7CiAvLyAgICAgIGZwcmludGYoc3RkZXJyLCAiIDo6IFE6OmxvY2tGb3JSZWFkIDo6IGRvbmUgPj5cbiIpOwpAQCAtMjQ2OSw4ICszMjg4LDggQEAKIC8vCiAvLyAgIENBTExfRk5fdl9XKGZuLCBzZWxmKTsKIC8vCi0vLyAgIERPX0NSRVFfdl9XVyhfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfTE9DS19QT1NULAotLy8gICAgICAgICAgICAgICAgdm9pZCosc2VsZiwgbG9uZywxLyppc1cqLyk7CisvLyAgIERPX0NSRVFfdl9XV1coX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUE9TVCwKKy8vICAgICAgICAgICAgICAgICB2b2lkKixzZWxmLCBsb25nLDEvKmlzVyovLCBsb25nLCBUcnVlKTsKIC8vCiAvLyAgIGlmIChUUkFDRV9RVDRfRk5TKSB7CiAvLyAgICAgIGZwcmludGYoc3RkZXJyLCAiIDo6IFE6OmxvY2tGb3JXcml0ZSA6OiBkb25lID4+XG4iKTsKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL2hnX2xvY2tfbl90aHJlYWQuYyBiL2hlbGdyaW5kL2hnX2xvY2tfbl90aHJlYWQuYwppbmRleCBjMmEyNmVmLi5hNDUyNzUzIDEwMDY0NAotLS0gYS9oZWxncmluZC9oZ19sb2NrX25fdGhyZWFkLmMKKysrIGIvaGVsZ3JpbmQvaGdfbG9ja19uX3RocmVhZC5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgSGVsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgZGV0ZWN0aW5nIGVycm9ycwogICAgaW4gdGhyZWFkZWQgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwNy0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9oZWxncmluZC9oZ19sb2NrX25fdGhyZWFkLmggYi9oZWxncmluZC9oZ19sb2NrX25fdGhyZWFkLmgKaW5kZXggNzYyNjE5MS4uOWZiNGM4YSAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvaGdfbG9ja19uX3RocmVhZC5oCisrKyBiL2hlbGdyaW5kL2hnX2xvY2tfbl90aHJlYWQuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEhlbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGRldGVjdGluZyBlcnJvcnMKICAgIGluIHRocmVhZGVkIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMyBPcGVuV29ya3MgTHRkCisgICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBPcGVuV29ya3MgTHRkCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtOTQsNiArOTQsMjkgQEAKICAgICAgIEJvb2wgICAgICAgIGFubm91bmNlZDsKICAgICAgIC8qIEluZGV4IGZvciBnZW5lcmF0aW5nIHJlZmVyZW5jZXMgaW4gZXJyb3IgbWVzc2FnZXMuICovCiAgICAgICBJbnQgICAgICAgICBlcnJtc2dfaW5kZXg7CisKKyAgICAgIC8qIE5lc3RpbmcgbGV2ZWwgb2YgcHRocmVhZF9jcmVhdGUoKS4gTmV3IG1lbW9yeSBhbGxvY2F0ZWQgaXMgdW50cmFja2VkCisgICAgICAgICB3aGVuIHRoaXMgdmFsdWUgaXMgPiAwOiByYWNlIHJlcG9ydGluZyBpcyBzdXBwcmVzc2VkIHRoZXJlLiBEUkQgZG9lcworICAgICAgICAgdGhlIHNhbWUgdGhpbmcgaW1wbGljaXRseS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBmb3IgZXhhbXBsZQorICAgICAgICAgU29sYXJpcyBsaWJjIGNhY2hlcyBtYW55IG9iamVjdHMgYW5kIHJldXNlcyB0aGVtIGZvciBkaWZmZXJlbnQgdGhyZWFkcworICAgICAgICAgYW5kIHRoYXQgY29uZnVzZXMgSGVsZ3JpbmQuIFdpdGggbGlidmtpIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvCisgICAgICAgICBleHBsaWN0bHkgdXNlIFZHX1VTRVJSRVFfX0hHX0NMRUFOX01FTU9SWSBvbiBzdWNoIG9iamVjdHMuCisgICAgICAgICBBbHNvIG11dGV4IGFjdGl2aXR5IGlzIGlnbm9yZWQgc28gdGhhdCB0aGV5IGRvIG5vdCBpbXBvc2UgZmFsc2UKKyAgICAgICAgIG9yZGVyaW5nIGJldHdlZW4gY3JlYXRvciBhbmQgY3JlYXRlZCB0aHJlYWQuICovCisgICAgICBJbnQgcHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbDsKKworICAgICAgLyogTmVzdGluZyBsZXZlbCBvZiBzeW5jaHJvbml6YXRpb24gZnVuY3Rpb25zIGNhbGxlZCBieSB0aGUgY2xpZW50LgorICAgICAgICAgTG9hZHMgYW5kIHN0b3JlcyBhcmUgaWdub3JlZCB3aGVuIGl0cyB2YWx1ZSA+IDAuCisgICAgICAgICBDdXJyZW50bHkgdGhpcyBpcyB1c2VkIHNvbGVseSBmb3Igc3VwcHJlc3NpbmcgcmFjZXMgb2YgcHJpbWl0aXZlCisgICAgICAgICBzeW5jaHJvbml6YXRpb24gb2JqZWN0cyB0aGVtc2VsdmVzIC0gbXV0ZXhlcywgY29uZGl0aW9uIHZhcmlhYmxlcywKKyAgICAgICAgIHJlYWQtd3JpdGUgbG9ja3MgYW5kIHRoZWlyIGFzc29jaWF0ZWQgc2xlZXAgcXVldWVzLgorICAgICAgICAgU2VlIGFsc28gZG9jdW1lbnRhdGlvbiBmb3IgY29tbWFuZCBsaW5lIG9wdGlvbgorICAgICAgICAgLS1pZ25vcmUtdGhyZWFkLWNyZWF0aW9uLiAqLworICAgICAgSW50IHN5bmNocl9uZXN0aW5nOworCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgICAgIEludCAgICAgIGJpbmRfZ3VhcmRfZmxhZzsgLyogQmluZCBmbGFnIGZyb20gdGhlIHJ1bnRpbWUgbGlua2VyLiAqLworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCiAgICB9CiAgICBUaHJlYWQ7CiAKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL2hnX21haW4uYyBiL2hlbGdyaW5kL2hnX21haW4uYwppbmRleCBjY2YxYTU2Li5iYWZhNzhmIDEwMDY0NAotLS0gYS9oZWxncmluZC9oZ19tYWluLmMKKysrIGIvaGVsZ3JpbmQvaGdfbWFpbi5jCkBAIC04LDEwICs4LDEwIEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBIZWxncmluZCwgYSBWYWxncmluZCB0b29sIGZvciBkZXRlY3RpbmcgZXJyb3JzCiAgICBpbiB0aHJlYWRlZCBwcm9ncmFtcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDEzIEFwcGxlLCBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBBcHBsZSwgSW5jLgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtNTMsNyArNTMsNyBAQAogI2luY2x1ZGUgInB1Yl90b29sX2RlYnVnaW5mby5oIiAvLyBWR18oZmluZF9zZWdpbmZvKSwgVkdfKHNlZ2luZm9fc29uYW1lKQogI2luY2x1ZGUgInB1Yl90b29sX3JlZGlyLmgiICAgICAvLyBzb25hbWVzIGZvciB0aGUgZHluYW1pYyBsaW5rZXJzCiAjaW5jbHVkZSAicHViX3Rvb2xfdmtpLmgiICAgICAgIC8vIFZLSV9QQUdFX1NJWkUKLSNpbmNsdWRlICJwdWJfdG9vbF9saWJjcHJvYy5oIiAgLy8gVkdfKGF0Zm9yaykKKyNpbmNsdWRlICJwdWJfdG9vbF9saWJjcHJvYy5oIgogI2luY2x1ZGUgInB1Yl90b29sX2FzcGFjZW1nci5oIiAvLyBWR18oYW1faXNfdmFsaWRfZm9yX2NsaWVudCkKICNpbmNsdWRlICJwdWJfdG9vbF9wb29sYWxsb2MuaCIKICNpbmNsdWRlICJwdWJfdG9vbF9hZGRyaW5mby5oIgpAQCAtMTYwLDYgKzE2MCwxMiBAQAogc3RhdGljIFVXb3JkIHN0YXRzX19sb2NrTl9hY3F1aXJlcyA9IDA7CiBzdGF0aWMgVVdvcmQgc3RhdHNfX2xvY2tOX3JlbGVhc2VzID0gMDsKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCitCb29sIEhHXyhjbG9faWdub3JlX3RocmVhZF9jcmVhdGlvbikgPSBUcnVlOworI2Vsc2UKK0Jvb2wgSEdfKGNsb19pZ25vcmVfdGhyZWFkX2NyZWF0aW9uKSA9IEZhbHNlOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKIHN0YXRpYwogVGhyZWFkSWQgbWFwX3RocmVhZHNfbWF5YmVfcmV2ZXJzZV9sb29rdXBfU0xPVyAoIFRocmVhZCogdGhyICk7IC8qZndkcyovCiAKQEAgLTE3Nyw2ICsxODMsMTIgQEAKICAgIHRocmVhZC0+YW5ub3VuY2VkICAgID0gRmFsc2U7CiAgICB0aHJlYWQtPmVycm1zZ19pbmRleCA9IGluZHgrKzsKICAgIHRocmVhZC0+YWRtaW4gICAgICAgID0gYWRtaW5fdGhyZWFkczsKKyAgIHRocmVhZC0+c3luY2hyX25lc3RpbmcgPSAwOworICAgdGhyZWFkLT5wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsID0gMDsKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgdGhyZWFkLT5iaW5kX2d1YXJkX2ZsYWcgPSAwOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKICAgIGFkbWluX3RocmVhZHMgICAgICAgID0gdGhyZWFkOwogICAgcmV0dXJuIHRocmVhZDsKIH0KQEAgLTUwOCw3ICs1MjAsNyBAQAogICAgICAgICAgICAgaWYgKHRoci0+Y29yZXRpZCA9PSBWR19JTlZBTElEX1RIUkVBRElEKSAKICAgICAgICAgICAgICAgIFZHXyhwcmludGYpKCJ0aWQgKGV4aXRlZCkgIik7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICBWR18ocHJpbnRmKSgidGlkICVkICIsIHRoci0+Y29yZXRpZCk7CisgICAgICAgICAgICAgICBWR18ocHJpbnRmKSgidGlkICV1ICIsIHRoci0+Y29yZXRpZCk7CiAKICAgICAgICAgIH0KICAgICAgIH0KQEAgLTY5OCw2ICs3MTAsMzQgQEAKICAgIG1hcF90aHJlYWRzW2NvcmV0aWRdID0gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQgSEdfKHRocmVhZF9lbnRlcl9zeW5jaHIpKFRocmVhZCAqdGhyKSB7CisgICB0bF9hc3NlcnQodGhyLT5zeW5jaHJfbmVzdGluZyA+PSAwKTsKKyNpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorICAgdGhyLT5zeW5jaHJfbmVzdGluZyArPSAxOworI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCit9CisKK3N0YXRpYyB2b2lkIEhHXyh0aHJlYWRfbGVhdmVfc3luY2hyKShUaHJlYWQgKnRocikgeworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICB0aHItPnN5bmNocl9uZXN0aW5nIC09IDE7CisjZW5kaWYgLyogVkdPX3NvbGFyaXMgKi8KKyAgIHRsX2Fzc2VydCh0aHItPnN5bmNocl9uZXN0aW5nID49IDApOworfQorCitzdGF0aWMgdm9pZCBIR18odGhyZWFkX2VudGVyX3B0aHJlYWRfY3JlYXRlKShUaHJlYWQgKnRocikgeworICAgdGxfYXNzZXJ0KHRoci0+cHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCA+PSAwKTsKKyAgIHRoci0+cHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCArPSAxOworfQorCitzdGF0aWMgdm9pZCBIR18odGhyZWFkX2xlYXZlX3B0aHJlYWRfY3JlYXRlKShUaHJlYWQgKnRocikgeworICAgdGxfYXNzZXJ0KHRoci0+cHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCA+IDApOworICAgdGhyLT5wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsIC09IDE7Cit9CisKK3N0YXRpYyBJbnQgSEdfKGdldF9wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsKShUaHJlYWRJZCB0aWQpIHsKKyAgIFRocmVhZCAqdGhyID0gbWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCk7CisgICByZXR1cm4gdGhyLT5wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsOworfQogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gbWFwX2xvY2tzIDo6IFdvcmRGTSBndWVzdC1BZGRyLW9mLWxvY2sgTG9jayogICAgICAgICAgICAgLS0tKi8KQEAgLTk5Nyw3ICsxMDM3LDcgQEAKIHN0YXRpYyB2b2lkIHNoYWRvd19tZW1fbWFrZV9Ob0FjY2Vzc19Ob0ZYICggVGhyZWFkKiB0aHIsIEFkZHIgYUlOLCBTaXplVCBsZW4gKQogewogICAgaWYgKDAgJiYgbGVuID4gNTAwKQotICAgICAgVkdfKHByaW50ZikoIm1ha2UgTm9BY2Nlc3NfTm9GWCAoICUjbHgsICVsZCApXG4iLCBhSU4sIGxlbiApOworICAgICAgVkdfKHByaW50ZikoIm1ha2UgTm9BY2Nlc3NfTm9GWCAoICUjbHgsICVsdSApXG4iLCBhSU4sIGxlbiApOwogICAgLy8gaGFzIG5vIGVmZmVjdCAoTm9GWCkKICAgIGxpYmhiX3NyYW5nZV9ub2FjY2Vzc19Ob0ZYKCB0aHItPmhidGhyLCBhSU4sIGxlbiApOwogfQpAQCAtMTAwNSw3ICsxMDQ1LDcgQEAKIHN0YXRpYyB2b2lkIHNoYWRvd19tZW1fbWFrZV9Ob0FjY2Vzc19BSEFFICggVGhyZWFkKiB0aHIsIEFkZHIgYUlOLCBTaXplVCBsZW4gKQogewogICAgaWYgKDAgJiYgbGVuID4gNTAwKQotICAgICAgVkdfKHByaW50ZikoIm1ha2UgTm9BY2Nlc3NfQUhBRSAoICUjbHgsICVsZCApXG4iLCBhSU4sIGxlbiApOworICAgICAgVkdfKHByaW50ZikoIm1ha2UgTm9BY2Nlc3NfQUhBRSAoICUjbHgsICVsdSApXG4iLCBhSU4sIGxlbiApOwogICAgLy8gQWN0dWFsbHkgSGFzIEFuIEVmZmVjdCAoQUhBRSkKICAgIGxpYmhiX3NyYW5nZV9ub2FjY2Vzc19BSEFFKCB0aHItPmhidGhyLCBhSU4sIGxlbiApOwogfQpAQCAtMTAxMyw3ICsxMDUzLDcgQEAKIHN0YXRpYyB2b2lkIHNoYWRvd19tZW1fbWFrZV9VbnRyYWNrZWQgKCBUaHJlYWQqIHRociwgQWRkciBhSU4sIFNpemVUIGxlbiApCiB7CiAgICBpZiAoMCAmJiBsZW4gPiA1MDApCi0gICAgICBWR18ocHJpbnRmKSgibWFrZSBVbnRyYWNrZWQgKCAlI2x4LCAlbGQgKVxuIiwgYUlOLCBsZW4gKTsKKyAgICAgIFZHXyhwcmludGYpKCJtYWtlIFVudHJhY2tlZCAoICUjbHgsICVsdSApXG4iLCBhSU4sIGxlbiApOwogICAgbGliaGJfc3JhbmdlX3VudHJhY2soIHRoci0+aGJ0aHIsIGFJTiwgbGVuICk7CiB9CiAKQEAgLTE0MjMsNDAgKzE0NjMsNTIgQEAKIAogc3RhdGljCiB2b2lkIGV2aF9fbmV3X21lbSAoIEFkZHIgYSwgU2l6ZVQgbGVuICkgeworICAgVGhyZWFkICp0aHIgPSBnZXRfY3VycmVudF9UaHJlYWQoKTsKICAgIGlmIChTSE9XX0VWRU5UUyA+PSAyKQogICAgICAgVkdfKHByaW50ZikoImV2aF9fbmV3X21lbSglcCwgJWx1KVxuIiwgKHZvaWQqKWEsIGxlbiApOwotICAgc2hhZG93X21lbV9tYWtlX05ldyggZ2V0X2N1cnJlbnRfVGhyZWFkKCksIGEsIGxlbiApOworICAgc2hhZG93X21lbV9tYWtlX05ldyggdGhyLCBhLCBsZW4gKTsKICAgIGlmIChsZW4gPj0gU0NFX0JJR1JBTkdFX1QgJiYgKEhHXyhjbG9fc2FuaXR5X2ZsYWdzKSAmIFNDRV9CSUdSQU5HRSkpCiAgICAgICBhbGxfX3Nhbml0eV9jaGVjaygiZXZoX19uZXdfbWVtLXBvc3QiKTsKKyAgIGlmIChVTkxJS0VMWSh0aHItPnB0aHJlYWRfY3JlYXRlX25lc3RpbmdfbGV2ZWwgPiAwKSkKKyAgICAgIHNoYWRvd19tZW1fbWFrZV9VbnRyYWNrZWQoIHRociwgYSwgbGVuICk7CiB9CiAKIHN0YXRpYwogdm9pZCBldmhfX25ld19tZW1fc3RhY2sgKCBBZGRyIGEsIFNpemVUIGxlbiApIHsKKyAgIFRocmVhZCAqdGhyID0gZ2V0X2N1cnJlbnRfVGhyZWFkKCk7CiAgICBpZiAoU0hPV19FVkVOVFMgPj0gMikKICAgICAgIFZHXyhwcmludGYpKCJldmhfX25ld19tZW1fc3RhY2soJXAsICVsdSlcbiIsICh2b2lkKilhLCBsZW4gKTsKLSAgIHNoYWRvd19tZW1fbWFrZV9OZXcoIGdldF9jdXJyZW50X1RocmVhZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgYSwgbGVuICk7CisgICBzaGFkb3dfbWVtX21ha2VfTmV3KCB0aHIsIC1WR19TVEFDS19SRURaT05FX1NaQiArIGEsIGxlbiApOwogICAgaWYgKGxlbiA+PSBTQ0VfQklHUkFOR0VfVCAmJiAoSEdfKGNsb19zYW5pdHlfZmxhZ3MpICYgU0NFX0JJR1JBTkdFKSkKICAgICAgIGFsbF9fc2FuaXR5X2NoZWNrKCJldmhfX25ld19tZW1fc3RhY2stcG9zdCIpOworICAgaWYgKFVOTElLRUxZKHRoci0+cHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCA+IDApKQorICAgICAgc2hhZG93X21lbV9tYWtlX1VudHJhY2tlZCggdGhyLCBhLCBsZW4gKTsKIH0KIAogc3RhdGljCiB2b2lkIGV2aF9fbmV3X21lbV93X3RpZCAoIEFkZHIgYSwgU2l6ZVQgbGVuLCBUaHJlYWRJZCB0aWQgKSB7CisgICBUaHJlYWQgKnRociA9IGdldF9jdXJyZW50X1RocmVhZCgpOwogICAgaWYgKFNIT1dfRVZFTlRTID49IDIpCiAgICAgICBWR18ocHJpbnRmKSgiZXZoX19uZXdfbWVtX3dfdGlkKCVwLCAlbHUpXG4iLCAodm9pZCopYSwgbGVuICk7Ci0gICBzaGFkb3dfbWVtX21ha2VfTmV3KCBnZXRfY3VycmVudF9UaHJlYWQoKSwgYSwgbGVuICk7CisgICBzaGFkb3dfbWVtX21ha2VfTmV3KCB0aHIsIGEsIGxlbiApOwogICAgaWYgKGxlbiA+PSBTQ0VfQklHUkFOR0VfVCAmJiAoSEdfKGNsb19zYW5pdHlfZmxhZ3MpICYgU0NFX0JJR1JBTkdFKSkKICAgICAgIGFsbF9fc2FuaXR5X2NoZWNrKCJldmhfX25ld19tZW1fd190aWQtcG9zdCIpOworICAgaWYgKFVOTElLRUxZKHRoci0+cHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCA+IDApKQorICAgICAgc2hhZG93X21lbV9tYWtlX1VudHJhY2tlZCggdGhyLCBhLCBsZW4gKTsKIH0KIAogc3RhdGljCiB2b2lkIGV2aF9fbmV3X21lbV93X3Blcm1zICggQWRkciBhLCBTaXplVCBsZW4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgcnIsIEJvb2wgd3csIEJvb2wgeHgsIFVMb25nIGRpX2hhbmRsZSApIHsKKyAgIFRocmVhZCAqdGhyID0gZ2V0X2N1cnJlbnRfVGhyZWFkKCk7CiAgICBpZiAoU0hPV19FVkVOVFMgPj0gMSkKICAgICAgIFZHXyhwcmludGYpKCJldmhfX25ld19tZW1fd19wZXJtcyglcCwgJWx1LCAlZCwlZCwlZClcbiIsCiAgICAgICAgICAgICAgICAgICAodm9pZCopYSwgbGVuLCAoSW50KXJyLCAoSW50KXd3LCAoSW50KXh4ICk7Ci0gICBpZiAocnIgfHwgd3cgfHwgeHgpCi0gICAgICBzaGFkb3dfbWVtX21ha2VfTmV3KCBnZXRfY3VycmVudF9UaHJlYWQoKSwgYSwgbGVuICk7CisgICBpZiAocnIgfHwgd3cgfHwgeHgpIHsKKyAgICAgIHNoYWRvd19tZW1fbWFrZV9OZXcoIHRociwgYSwgbGVuICk7CisgICAgICBpZiAoVU5MSUtFTFkodGhyLT5wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsID4gMCkpCisgICAgICAgICBzaGFkb3dfbWVtX21ha2VfVW50cmFja2VkKCB0aHIsIGEsIGxlbiApOworICAgfQogICAgaWYgKGxlbiA+PSBTQ0VfQklHUkFOR0VfVCAmJiAoSEdfKGNsb19zYW5pdHlfZmxhZ3MpICYgU0NFX0JJR1JBTkdFKSkKICAgICAgIGFsbF9fc2FuaXR5X2NoZWNrKCJldmhfX25ld19tZW1fd19wZXJtcy1wb3N0Iik7CiB9CkBAIC0xNTE4LDcgKzE1NzAsOSBAQAogdm9pZCBldmhfX2NvcHlfbWVtICggQWRkciBzcmMsIEFkZHIgZHN0LCBTaXplVCBsZW4gKSB7CiAgICBpZiAoU0hPV19FVkVOVFMgPj0gMikKICAgICAgIFZHXyhwcmludGYpKCJldmhfX2NvcHlfbWVtKCVwLCAlcCwgJWx1KVxuIiwgKHZvaWQqKXNyYywgKHZvaWQqKWRzdCwgbGVuICk7Ci0gICBzaGFkb3dfbWVtX3Njb3B5X3JhbmdlKCBnZXRfY3VycmVudF9UaHJlYWQoKSwgc3JjLCBkc3QsIGxlbiApOworICAgVGhyZWFkICp0aHIgPSBnZXRfY3VycmVudF9UaHJlYWQoKTsKKyAgIGlmIChMSUtFTFkodGhyLT5zeW5jaHJfbmVzdGluZyA9PSAwKSkKKyAgICAgIHNoYWRvd19tZW1fc2NvcHlfcmFuZ2UoIHRociAsIHNyYywgZHN0LCBsZW4gKTsKICAgIGlmIChsZW4gPj0gU0NFX0JJR1JBTkdFX1QgJiYgKEhHXyhjbG9fc2FuaXR5X2ZsYWdzKSAmIFNDRV9CSUdSQU5HRSkpCiAgICAgICBhbGxfX3Nhbml0eV9jaGVjaygiZXZoX19jb3B5X21lbS1wb3N0Iik7CiB9CkBAIC0xNTgyLDYgKzE2MzYsMTMgQEAKICMgICAgICAgZW5kaWYKICAgICAgICAgdGhyX2MtPmNyZWF0ZWRfYXQgPSBWR18ocmVjb3JkX0V4ZUNvbnRleHQpKHBhcmVudCwgZmlyc3RfaXBfZGVsdGEpOwogICAgICAgfQorCisgICAgICBpZiAoSEdfKGNsb19pZ25vcmVfdGhyZWFkX2NyZWF0aW9uKSkgeworICAgICAgICAgSEdfKHRocmVhZF9lbnRlcl9wdGhyZWFkX2NyZWF0ZSkodGhyX2MpOworICAgICAgICAgdGxfYXNzZXJ0KHRocl9jLT5zeW5jaHJfbmVzdGluZyA9PSAwKTsKKyAgICAgICAgIEhHXyh0aHJlYWRfZW50ZXJfc3luY2hyKSh0aHJfYyk7CisgICAgICAgICAvKiBDb3VudGVycGFydCBpbiBfVkdfVVNFUlJFUV9fSEdfU0VUX01ZX1BUSFJFQURfVC4gKi8KKyAgICAgIH0KICAgIH0KIAogICAgaWYgKEhHXyhjbG9fc2FuaXR5X2ZsYWdzKSAmIFNDRV9USFJFQURTKQpAQCAtMTc1Miw3ICsxODEzLDkgQEAKICAgICAgICB8fCAoU0hPV19FVkVOVFMgPj0gMSAmJiBzaXplICE9IDEpKQogICAgICAgVkdfKHByaW50ZikoImV2aF9fcHJlX21lbV9yZWFkKGN0aWQ9JWQsIFwiJXNcIiwgJXAsICVsdSlcbiIsIAogICAgICAgICAgICAgICAgICAgKEludCl0aWQsIHMsICh2b2lkKilhLCBzaXplICk7Ci0gICBzaGFkb3dfbWVtX2NyZWFkX3JhbmdlKCBtYXBfdGhyZWFkc19sb29rdXAodGlkKSwgYSwgc2l6ZSk7CisgICBUaHJlYWQgKnRociA9IG1hcF90aHJlYWRzX2xvb2t1cCh0aWQpOworICAgaWYgKExJS0VMWSh0aHItPnN5bmNocl9uZXN0aW5nID09IDApKQorICAgICAgc2hhZG93X21lbV9jcmVhZF9yYW5nZSh0aHIsIGEsIHNpemUpOwogICAgaWYgKHNpemUgPj0gU0NFX0JJR1JBTkdFX1QgJiYgKEhHXyhjbG9fc2FuaXR5X2ZsYWdzKSAmIFNDRV9CSUdSQU5HRSkpCiAgICAgICBhbGxfX3Nhbml0eV9jaGVjaygiZXZoX19wcmVfbWVtX3JlYWQtcG9zdCIpOwogfQpAQCAtMTc3MCw4ICsxODMzLDEwIEBACiAgICAvLyBjaGVja2luZyB0aGUgZmlyc3QgYnl0ZSBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nLiAgU2VlICMyNTUwMDkuCiAgICBpZiAoIVZHXyhhbV9pc192YWxpZF9mb3JfY2xpZW50KSAoYSwgMSwgVktJX1BST1RfUkVBRCkpCiAgICAgICByZXR1cm47CisgICBUaHJlYWQgKnRociA9IG1hcF90aHJlYWRzX2xvb2t1cCh0aWQpOwogICAgbGVuID0gVkdfKHN0cmxlbikoIChIQ2hhciopIGEgKTsKLSAgIHNoYWRvd19tZW1fY3JlYWRfcmFuZ2UoIG1hcF90aHJlYWRzX2xvb2t1cCh0aWQpLCBhLCBsZW4rMSApOworICAgaWYgKExJS0VMWSh0aHItPnN5bmNocl9uZXN0aW5nID09IDApKQorICAgICAgc2hhZG93X21lbV9jcmVhZF9yYW5nZSggdGhyLCBhLCBsZW4rMSApOwogICAgaWYgKGxlbiA+PSBTQ0VfQklHUkFOR0VfVCAmJiAoSEdfKGNsb19zYW5pdHlfZmxhZ3MpICYgU0NFX0JJR1JBTkdFKSkKICAgICAgIGFsbF9fc2FuaXR5X2NoZWNrKCJldmhfX3ByZV9tZW1fcmVhZF9hc2NpaXotcG9zdCIpOwogfQpAQCAtMTc4Miw3ICsxODQ3LDkgQEAKICAgIGlmIChTSE9XX0VWRU5UUyA+PSAxKQogICAgICAgVkdfKHByaW50ZikoImV2aF9fcHJlX21lbV93cml0ZShjdGlkPSVkLCBcIiVzXCIsICVwLCAlbHUpXG4iLCAKICAgICAgICAgICAgICAgICAgIChJbnQpdGlkLCBzLCAodm9pZCopYSwgc2l6ZSApOwotICAgc2hhZG93X21lbV9jd3JpdGVfcmFuZ2UoIG1hcF90aHJlYWRzX2xvb2t1cCh0aWQpLCBhLCBzaXplKTsKKyAgIFRocmVhZCAqdGhyID0gbWFwX3RocmVhZHNfbG9va3VwKHRpZCk7CisgICBpZiAoTElLRUxZKHRoci0+c3luY2hyX25lc3RpbmcgPT0gMCkpCisgICAgICBzaGFkb3dfbWVtX2N3cml0ZV9yYW5nZSh0aHIsIGEsIHNpemUpOwogICAgaWYgKHNpemUgPj0gU0NFX0JJR1JBTkdFX1QgJiYgKEhHXyhjbG9fc2FuaXR5X2ZsYWdzKSAmIFNDRV9CSUdSQU5HRSkpCiAgICAgICBhbGxfX3Nhbml0eV9jaGVjaygiZXZoX19wcmVfbWVtX3dyaXRlLXBvc3QiKTsKIH0KQEAgLTE4MTEsNyArMTg3OCw4IEBACiAgICAgICAgICB3aGVyZSBtZW1vcnkgaXMgcmVmZXJlbmNlZCBieSBvbmUgdGhyZWFkLCBhbmQgZnJlZWQgYnkKICAgICAgICAgIGFub3RoZXIsIGFuZCB0aGVyZSdzIG5vIG9ic2VydmFibGUgc3luY2hyb25pc2F0aW9uIGV2ZW50IHRvCiAgICAgICAgICBndWFyYW50ZWUgdGhhdCB0aGUgcmVmZXJlbmNlIGhhcHBlbnMgYmVmb3JlIHRoZSBmcmVlLiAqLwotICAgICAgc2hhZG93X21lbV9jd3JpdGVfcmFuZ2UodGhyLCBhLCBsZW4pOworICAgICAgaWYgKExJS0VMWSh0aHItPnN5bmNocl9uZXN0aW5nID09IDApKQorICAgICAgICAgc2hhZG93X21lbV9jd3JpdGVfcmFuZ2UodGhyLCBhLCBsZW4pOwogICAgfQogICAgc2hhZG93X21lbV9tYWtlX05vQWNjZXNzX0FIQUUoIHRociwgYSwgbGVuICk7CiAgICAvKiBXZSB1c2VkIHRvIGNhbGwgaW5zdGVhZApAQCAtMTg0NSw3MCArMTkxMyw4MCBAQAogdm9pZCBldmhfX21lbV9oZWxwX2NyZWFkXzEoQWRkciBhKSB7CiAgICBUaHJlYWQqICB0aHIgPSBnZXRfY3VycmVudF9UaHJlYWRfaW5fQ19DKCk7CiAgICBUaHIqICAgICBoYnRociA9IHRoci0+aGJ0aHI7Ci0gICBMSUJIQl9DUkVBRF8xKGhidGhyLCBhKTsKKyAgIGlmIChMSUtFTFkodGhyLT5zeW5jaHJfbmVzdGluZyA9PSAwKSkKKyAgICAgIExJQkhCX0NSRUFEXzEoaGJ0aHIsIGEpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgxKQogdm9pZCBldmhfX21lbV9oZWxwX2NyZWFkXzIoQWRkciBhKSB7CiAgICBUaHJlYWQqICB0aHIgPSBnZXRfY3VycmVudF9UaHJlYWRfaW5fQ19DKCk7CiAgICBUaHIqICAgICBoYnRociA9IHRoci0+aGJ0aHI7Ci0gICBMSUJIQl9DUkVBRF8yKGhidGhyLCBhKTsKKyAgIGlmIChMSUtFTFkodGhyLT5zeW5jaHJfbmVzdGluZyA9PSAwKSkKKyAgICAgIExJQkhCX0NSRUFEXzIoaGJ0aHIsIGEpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgxKQogdm9pZCBldmhfX21lbV9oZWxwX2NyZWFkXzQoQWRkciBhKSB7CiAgICBUaHJlYWQqICB0aHIgPSBnZXRfY3VycmVudF9UaHJlYWRfaW5fQ19DKCk7CiAgICBUaHIqICAgICBoYnRociA9IHRoci0+aGJ0aHI7Ci0gICBMSUJIQl9DUkVBRF80KGhidGhyLCBhKTsKKyAgIGlmIChMSUtFTFkodGhyLT5zeW5jaHJfbmVzdGluZyA9PSAwKSkKKyAgICAgIExJQkhCX0NSRUFEXzQoaGJ0aHIsIGEpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgxKQogdm9pZCBldmhfX21lbV9oZWxwX2NyZWFkXzgoQWRkciBhKSB7CiAgICBUaHJlYWQqICB0aHIgPSBnZXRfY3VycmVudF9UaHJlYWRfaW5fQ19DKCk7CiAgICBUaHIqICAgICBoYnRociA9IHRoci0+aGJ0aHI7Ci0gICBMSUJIQl9DUkVBRF84KGhidGhyLCBhKTsKKyAgIGlmIChMSUtFTFkodGhyLT5zeW5jaHJfbmVzdGluZyA9PSAwKSkKKyAgICAgIExJQkhCX0NSRUFEXzgoaGJ0aHIsIGEpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgyKQogdm9pZCBldmhfX21lbV9oZWxwX2NyZWFkX04oQWRkciBhLCBTaXplVCBzaXplKSB7CiAgICBUaHJlYWQqICB0aHIgPSBnZXRfY3VycmVudF9UaHJlYWRfaW5fQ19DKCk7CiAgICBUaHIqICAgICBoYnRociA9IHRoci0+aGJ0aHI7Ci0gICBMSUJIQl9DUkVBRF9OKGhidGhyLCBhLCBzaXplKTsKKyAgIGlmIChMSUtFTFkodGhyLT5zeW5jaHJfbmVzdGluZyA9PSAwKSkKKyAgICAgIExJQkhCX0NSRUFEX04oaGJ0aHIsIGEsIHNpemUpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgxKQogdm9pZCBldmhfX21lbV9oZWxwX2N3cml0ZV8xKEFkZHIgYSkgewogICAgVGhyZWFkKiAgdGhyID0gZ2V0X2N1cnJlbnRfVGhyZWFkX2luX0NfQygpOwogICAgVGhyKiAgICAgaGJ0aHIgPSB0aHItPmhidGhyOwotICAgTElCSEJfQ1dSSVRFXzEoaGJ0aHIsIGEpOworICAgaWYgKExJS0VMWSh0aHItPnN5bmNocl9uZXN0aW5nID09IDApKQorICAgICAgTElCSEJfQ1dSSVRFXzEoaGJ0aHIsIGEpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgxKQogdm9pZCBldmhfX21lbV9oZWxwX2N3cml0ZV8yKEFkZHIgYSkgewogICAgVGhyZWFkKiAgdGhyID0gZ2V0X2N1cnJlbnRfVGhyZWFkX2luX0NfQygpOwogICAgVGhyKiAgICAgaGJ0aHIgPSB0aHItPmhidGhyOwotICAgTElCSEJfQ1dSSVRFXzIoaGJ0aHIsIGEpOworICAgaWYgKExJS0VMWSh0aHItPnN5bmNocl9uZXN0aW5nID09IDApKQorICAgICAgTElCSEJfQ1dSSVRFXzIoaGJ0aHIsIGEpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgxKQogdm9pZCBldmhfX21lbV9oZWxwX2N3cml0ZV80KEFkZHIgYSkgewogICAgVGhyZWFkKiAgdGhyID0gZ2V0X2N1cnJlbnRfVGhyZWFkX2luX0NfQygpOwogICAgVGhyKiAgICAgaGJ0aHIgPSB0aHItPmhidGhyOwotICAgTElCSEJfQ1dSSVRFXzQoaGJ0aHIsIGEpOworICAgaWYgKExJS0VMWSh0aHItPnN5bmNocl9uZXN0aW5nID09IDApKQorICAgICAgTElCSEJfQ1dSSVRFXzQoaGJ0aHIsIGEpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgxKQogdm9pZCBldmhfX21lbV9oZWxwX2N3cml0ZV84KEFkZHIgYSkgewogICAgVGhyZWFkKiAgdGhyID0gZ2V0X2N1cnJlbnRfVGhyZWFkX2luX0NfQygpOwogICAgVGhyKiAgICAgaGJ0aHIgPSB0aHItPmhidGhyOwotICAgTElCSEJfQ1dSSVRFXzgoaGJ0aHIsIGEpOworICAgaWYgKExJS0VMWSh0aHItPnN5bmNocl9uZXN0aW5nID09IDApKQorICAgICAgTElCSEJfQ1dSSVRFXzgoaGJ0aHIsIGEpOwogfQogCiBzdGF0aWMgVkdfUkVHUEFSTSgyKQogdm9pZCBldmhfX21lbV9oZWxwX2N3cml0ZV9OKEFkZHIgYSwgU2l6ZVQgc2l6ZSkgewogICAgVGhyZWFkKiAgdGhyID0gZ2V0X2N1cnJlbnRfVGhyZWFkX2luX0NfQygpOwogICAgVGhyKiAgICAgaGJ0aHIgPSB0aHItPmhidGhyOwotICAgTElCSEJfQ1dSSVRFX04oaGJ0aHIsIGEsIHNpemUpOworICAgaWYgKExJS0VMWSh0aHItPnN5bmNocl9uZXN0aW5nID09IDApKQorICAgICAgTElCSEJfQ1dSSVRFX04oaGJ0aHIsIGEsIHNpemUpOwogfQogCiAKQEAgLTMzMTAsNyArMzM4OCw3IEBACiB7CiAgICAvKiBUSUQgZGVjbGFyZXMgdGhhdCBhbnkgaGFwcGVucy1iZWZvcmUgZWRnZXMgbm90aW9uYWxseSBzdG9yZWQgaW4KICAgICAgIFVTRVJUQUcgY2FuIGJlIGRlbGV0ZWQuICBJZiAoYXMgd291bGQgbm9ybWFsbHkgYmUgdGhlIGNhc2UpIGEKLSAgICAgIFNPIGlzIGFzc29jaWF0ZWQgd2l0aCBVU0VSVEFHLCB0aGVuIHRoZSBhc3NvY2F0aW9uIGlzIHJlbW92ZWQKKyAgICAgIFNPIGlzIGFzc29jaWF0ZWQgd2l0aCBVU0VSVEFHLCB0aGVuIHRoZSBhc3NvY2lhdGlvbiBpcyByZW1vdmVkCiAgICAgICBhbmQgYWxsIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggU08gYXJlIGZyZWVkLiAgSW1wb3J0YW50bHksCiAgICAgICB0aGF0IGZyZWVzIHVwIGFueSBWVFNzIHN0b3JlZCBpbiBTTy4gKi8KICAgIGlmIChTSE9XX0VWRU5UUyA+PSAxKQpAQCAtMzMyMSw2ICszMzk5LDUyIEBACiB9CiAKIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogLS0tIGV2ZW50cyB0byBkbyB3aXRoIGJpbmQgZ3VhcmQvY2xlYXIgaW50ZXJjZXB0cyAtLS0gKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKK3N0YXRpYwordm9pZCBldmhfX0hHX1JUTERfQklORF9HVUFSRChUaHJlYWRJZCB0aWQsIEludCBmbGFncykKK3sKKyAgIGlmIChTSE9XX0VWRU5UUyA+PSAxKQorICAgICAgVkdfKHByaW50ZikoImV2aF9fSEdfUlRMRF9CSU5EX0dVQVJEIgorICAgICAgICAgICAgICAgICAgIih0aWQ9JWQsIGZsYWdzPSVkKVxuIiwKKyAgICAgICAgICAgICAgICAgIChJbnQpdGlkLCBmbGFncyk7CisKKyAgIFRocmVhZCAqdGhyID0gbWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCk7CisgICB0bF9hc3NlcnQodGhyICE9IE5VTEwpOworCisgICBJbnQgYmluZGZsYWcgPSAoZmxhZ3MgJiBWS0lfVEhSX0ZMR19SVExEKTsKKyAgIGlmICgoYmluZGZsYWcgJiB0aHItPmJpbmRfZ3VhcmRfZmxhZykgPT0gMCkgeworICAgICAgdGhyLT5iaW5kX2d1YXJkX2ZsYWcgfD0gYmluZGZsYWc7CisgICAgICBIR18odGhyZWFkX2VudGVyX3N5bmNocikodGhyKTsKKyAgICAgIC8qIE1pc3VzZSBwdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsIGZvciBpZ25vcmluZyBtdXRleCBhY3Rpdml0eS4gKi8KKyAgICAgIEhHXyh0aHJlYWRfZW50ZXJfcHRocmVhZF9jcmVhdGUpKHRocik7CisgICB9Cit9CisKK3N0YXRpYwordm9pZCBldmhfX0hHX1JUTERfQklORF9DTEVBUihUaHJlYWRJZCB0aWQsIEludCBmbGFncykKK3sKKyAgIGlmIChTSE9XX0VWRU5UUyA+PSAxKQorICAgICAgVkdfKHByaW50ZikoImV2aF9fSEdfUlRMRF9CSU5EX0NMRUFSIgorICAgICAgICAgICAgICAgICAgIih0aWQ9JWQsIGZsYWdzPSVkKVxuIiwKKyAgICAgICAgICAgICAgICAgIChJbnQpdGlkLCBmbGFncyk7CisKKyAgIFRocmVhZCAqdGhyID0gbWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCk7CisgICB0bF9hc3NlcnQodGhyICE9IE5VTEwpOworCisgICBJbnQgYmluZGZsYWcgPSAoZmxhZ3MgJiBWS0lfVEhSX0ZMR19SVExEKTsKKyAgIGlmICgodGhyLT5iaW5kX2d1YXJkX2ZsYWcgJiBiaW5kZmxhZykgIT0gMCkgeworICAgICAgdGhyLT5iaW5kX2d1YXJkX2ZsYWcgJj0gfmJpbmRmbGFnOworICAgICAgSEdfKHRocmVhZF9sZWF2ZV9zeW5jaHIpKHRocik7CisgICAgICBIR18odGhyZWFkX2xlYXZlX3B0aHJlYWRfY3JlYXRlKSh0aHIpOworICAgfQorfQorI2VuZGlmIC8qIFZHT19zb2xhcmlzICovCisKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvKi0tLSBMb2NrIGFjcXVpc2l0aW9uIG9yZGVyIG1vbml0b3JpbmcgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtNDQ4NSw2ICs0NjA5LDggQEAKICAgIGlmIChWR19TVFJFUShzb25hbWUsIFZHX1VfTERfTElOVVhfQVJNSEZfU09fMykpICByZXR1cm4gVHJ1ZTsKICMgIGVsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgaWYgKFZHX1NUUkVRKHNvbmFtZSwgVkdfVV9EWUxEKSkgcmV0dXJuIFRydWU7CisjICBlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBpZiAoVkdfU1RSRVEoc29uYW1lLCBWR19VX0xEX1NPXzEpKSByZXR1cm4gVHJ1ZTsKICMgIGVsc2UKICMgICAgZXJyb3IgIlVuc3VwcG9ydGVkIE9TIgogIyAgZW5kaWYKQEAgLTQ4OTUsNyArNTAyMSw3IEBACiAgICAgICAvKiAtLS0gLS0tIFVzZXItdmlzaWJsZSBjbGllbnQgcmVxdWVzdHMgLS0tIC0tLSAqLwogCiAgICAgICBjYXNlIFZHX1VTRVJSRVFfX0hHX0NMRUFOX01FTU9SWToKLSAgICAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgiVkdfVVNFUlJFUV9fSEdfQ0xFQU5fTUVNT1JZKCUjbHgsJWxkKVxuIiwKKyAgICAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgiVkdfVVNFUlJFUV9fSEdfQ0xFQU5fTUVNT1JZKCUjbHgsJWx1KVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzFdLCBhcmdzWzJdKTsKICAgICAgICAgIC8qIENhbGwgZGllX21lbSB0byAoZXhwZW5zaXZlbHkpIHRpZHkgdXAgcHJvcGVybHksIGlmIHRoZXJlCiAgICAgICAgICAgICBhcmUgYW55IGhlbGQgbG9ja3MgZXRjIGluIHRoZSBhcmVhLiAgQ2FsbGluZyBldmhfX2RpZV9tZW0KQEAgLTQ5MjcsNyArNTA1Myw3IEBACiAgICAgICB9CiAKICAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX0FSQU5HRV9NQUtFX1VOVFJBQ0tFRDoKLSAgICAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgiSEdfQVJBTkdFX01BS0VfVU5UUkFDS0VEKCUjbHgsJWxkKVxuIiwKKyAgICAgICAgIGlmICgwKSBWR18ocHJpbnRmKSgiSEdfQVJBTkdFX01BS0VfVU5UUkFDS0VEKCUjbHgsJWx1KVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzFdLCBhcmdzWzJdKTsKICAgICAgICAgIGlmIChhcmdzWzJdID4gMCkgeyAvKiBsZW5ndGggKi8KICAgICAgICAgICAgIGV2aF9fdW50cmFja19tZW0oYXJnc1sxXSwgYXJnc1syXSk7CkBAIC00OTM1LDcgKzUwNjEsNyBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX0FSQU5HRV9NQUtFX1RSQUNLRUQ6Ci0gICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIkhHX0FSQU5HRV9NQUtFX1RSQUNLRUQoJSNseCwlbGQpXG4iLAorICAgICAgICAgaWYgKDApIFZHXyhwcmludGYpKCJIR19BUkFOR0VfTUFLRV9UUkFDS0VEKCUjbHgsJWx1KVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzFdLCBhcmdzWzJdKTsKICAgICAgICAgIGlmIChhcmdzWzJdID4gMCkgeyAvKiBsZW5ndGggKi8KICAgICAgICAgICAgIGV2aF9fbmV3X21lbShhcmdzWzFdLCBhcmdzWzJdKTsKQEAgLTQ5NDMsNyArNTA2OSw3IEBACiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfR0VUX0FCSVRTOgotICAgICAgICAgaWYgKDApIFZHXyhwcmludGYpKCJIR19HRVRfQUJJVFMoJSNseCwlI2x4LCVsZClcbiIsCisgICAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoIkhHX0dFVF9BQklUUyglI2x4LCUjbHgsJWx1KVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdKTsKICAgICAgICAgIFVDaGFyICp6emFiaXQgPSAoVUNoYXIgKikgYXJnc1syXTsKICAgICAgICAgIGlmICh6emFiaXQgPT0gTlVMTCAKQEAgLTQ5ODMsNiArNTEwOSwxNSBAQAogICAgICAgICAgVkdfKHByaW50ZikoIlhYWFg6IGJpbmQgcHRocmVhZF90ICVwIHRvIFRocmVhZCogJXBcbiIsCiAgICAgICAgICAgICAgICAgICAgICAodm9pZCopYXJnc1sxXSwgKHZvaWQqKW15X3RociApOwogICAgICAgICAgVkdfKGFkZFRvRk0pKCBtYXBfcHRocmVhZF90X3RvX1RocmVhZCwgKFVXb3JkKWFyZ3NbMV0sIChVV29yZClteV90aHIgKTsKKworICAgICAgICAgaWYgKG15X3Roci0+Y29yZXRpZCAhPSAxKSB7CisgICAgICAgICAgICAvKiBGSVhNRTogaGFyZHdpcmVzIGFzc3VtcHRpb24gYWJvdXQgaWRlbnRpdHkgb2YgdGhlIHJvb3QgdGhyZWFkLiAqLworICAgICAgICAgICAgaWYgKEhHXyhjbG9faWdub3JlX3RocmVhZF9jcmVhdGlvbikpIHsKKyAgICAgICAgICAgICAgIEhHXyh0aHJlYWRfbGVhdmVfcHRocmVhZF9jcmVhdGUpKG15X3Rocik7CisgICAgICAgICAgICAgICBIR18odGhyZWFkX2xlYXZlX3N5bmNocikobXlfdGhyKTsKKyAgICAgICAgICAgICAgIHRsX2Fzc2VydChteV90aHItPnN5bmNocl9uZXN0aW5nID09IDApOworICAgICAgICAgICAgfQorICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAKQEAgLTUwOTIsMzIgKzUyMjcsNDggQEAKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX1VOTE9DS19QUkU6ICAgLy8gcHRoX214X3QqCi0gICAgICAgICBldmhfX0hHX1BUSFJFQURfTVVURVhfVU5MT0NLX1BSRSggdGlkLCAodm9pZCopYXJnc1sxXSApOworICAgICAgICAgSEdfKHRocmVhZF9lbnRlcl9zeW5jaHIpKG1hcF90aHJlYWRzX21heWJlX2xvb2t1cCh0aWQpKTsKKyAgICAgICAgIGlmIChIR18oZ2V0X3B0aHJlYWRfY3JlYXRlX25lc3RpbmdfbGV2ZWwpKHRpZCkgPT0gMCkKKyAgICAgICAgICAgIGV2aF9fSEdfUFRIUkVBRF9NVVRFWF9VTkxPQ0tfUFJFKCB0aWQsICh2b2lkKilhcmdzWzFdICk7CiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9VTkxPQ0tfUE9TVDogIC8vIHB0aF9teF90KgotICAgICAgICAgZXZoX19IR19QVEhSRUFEX01VVEVYX1VOTE9DS19QT1NUKCB0aWQsICh2b2lkKilhcmdzWzFdICk7CisgICAgICAgICBpZiAoSEdfKGdldF9wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsKSh0aWQpID09IDApCisgICAgICAgICAgICBldmhfX0hHX1BUSFJFQURfTVVURVhfVU5MT0NLX1BPU1QoIHRpZCwgKHZvaWQqKWFyZ3NbMV0gKTsKKyAgICAgICAgIEhHXyh0aHJlYWRfbGVhdmVfc3luY2hyKShtYXBfdGhyZWFkc19tYXliZV9sb29rdXAodGlkKSk7CiAgICAgICAgICBicmVhazsKIAotICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BSRTogICAgIC8vIHB0aF9teF90KiwgV29yZAotICAgICAgICAgZXZoX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUFJFKCB0aWQsICh2b2lkKilhcmdzWzFdLCBhcmdzWzJdICk7CisgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUFJFOiAgICAgLy8gcHRoX214X3QqCisgICAgICAgICBIR18odGhyZWFkX2VudGVyX3N5bmNocikobWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCkpOworICAgICAgICAgaWYgKEhHXyhnZXRfcHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCkodGlkKSA9PSAwKQorICAgICAgICAgICAgZXZoX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUFJFKCB0aWQsICh2b2lkKilhcmdzWzFdLCBhcmdzWzJdICk7CiAgICAgICAgICBicmVhazsKIAotICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1Q6ICAgIC8vIHB0aF9teF90KgotICAgICAgICAgZXZoX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUE9TVCggdGlkLCAodm9pZCopYXJnc1sxXSApOworICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9MT0NLX1BPU1Q6ICAgIC8vIHB0aF9teF90KiwgbG9uZworICAgICAgICAgaWYgKChhcmdzWzJdID09IFRydWUpIC8vIGxvY2sgYWN0dWFsbHkgdGFrZW4KKyAgICAgICAgICAgICAmJiAoSEdfKGdldF9wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsKSh0aWQpID09IDApKQorICAgICAgICAgICAgZXZoX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUE9TVCggdGlkLCAodm9pZCopYXJnc1sxXSApOworICAgICAgICAgSEdfKHRocmVhZF9sZWF2ZV9zeW5jaHIpKG1hcF90aHJlYWRzX21heWJlX2xvb2t1cCh0aWQpKTsKICAgICAgICAgIGJyZWFrOwogCiAgICAgICAvKiBUaGlzIHRocmVhZCBpcyBhYm91dCB0byBkbyBwdGhyZWFkX2NvbmRfc2lnbmFsIG9uIHRoZQogICAgICAgICAgcHRocmVhZF9jb25kX3QqIGluIGFyZ1sxXS4gIERpdHRvIHB0aHJlYWRfY29uZF9icm9hZGNhc3QuICovCiAgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NPTkRfU0lHTkFMX1BSRToKICAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfQ09ORF9CUk9BRENBU1RfUFJFOgorICAgICAgICAgSEdfKHRocmVhZF9lbnRlcl9zeW5jaHIpKG1hcF90aHJlYWRzX21heWJlX2xvb2t1cCh0aWQpKTsKICAgICAgICAgIGV2aF9fSEdfUFRIUkVBRF9DT05EX1NJR05BTF9QUkUoIHRpZCwgKHZvaWQqKWFyZ3NbMV0gKTsKICAgICAgICAgIGJyZWFrOwogCisgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NPTkRfU0lHTkFMX1BPU1Q6CisgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NPTkRfQlJPQURDQVNUX1BPU1Q6CisgICAgICAgICBIR18odGhyZWFkX2xlYXZlX3N5bmNocikobWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCkpOworICAgICAgICAgYnJlYWs7CisKICAgICAgIC8qIEVudHJ5IGludG8gcHRocmVhZF9jb25kX3dhaXQsIGNvbmQ9YXJnWzFdLCBtdXRleD1hcmdbMl0uCiAgICAgICAgICBSZXR1cm5zIGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBtdXRleCBpcyBiZWxpZXZlZCB0byBiZQogICAgICAgICAgdmFsaWQgZm9yIHRoaXMgb3BlcmF0aW9uLiAqLwogICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DT05EX1dBSVRfUFJFOiB7CisgICAgICAgICBIR18odGhyZWFkX2VudGVyX3N5bmNocikobWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCkpOwogICAgICAgICAgQm9vbCBtdXRleF9pc192YWxpZAogICAgICAgICAgICAgPSBldmhfX0hHX1BUSFJFQURfQ09ORF9XQUlUX1BSRSggdGlkLCAodm9pZCopYXJnc1sxXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKilhcmdzWzJdICk7CkBAIC01MTM3LDEyICs1Mjg4LDE0IEBACiAgICAgICAgICBldmhfX0hHX1BUSFJFQURfQ09ORF9ERVNUUk9ZX1BSRSggdGlkLCAodm9pZCopYXJnc1sxXSwgYXJnc1syXSAhPSAwICk7CiAgICAgICAgICBicmVhazsKIAotICAgICAgLyogVGhyZWFkIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQgcHRocmVhZF9jb25kX3dhaXQsIGNvbmQ9YXJnWzFdLAotICAgICAgICAgbXV0ZXg9YXJnWzJdICovCisgICAgICAvKiBUaHJlYWQgY29tcGxldGVkIHB0aHJlYWRfY29uZF93YWl0LCBjb25kPWFyZ1sxXSwKKyAgICAgICAgIG11dGV4PWFyZ1syXSwgdGltZW91dD1hcmdbM10sIHN1Y2Nlc3NmdWw9YXJnWzRdICovCiAgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NPTkRfV0FJVF9QT1NUOgotICAgICAgICAgZXZoX19IR19QVEhSRUFEX0NPTkRfV0FJVF9QT1NUKCB0aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKilhcmdzWzFdLCAodm9pZCopYXJnc1syXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJvb2wpYXJnc1szXSApOworICAgICAgICAgaWYgKGFyZ3NbNF0gPT0gVHJ1ZSkKKyAgICAgICAgICAgIGV2aF9fSEdfUFRIUkVBRF9DT05EX1dBSVRfUE9TVCggdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopYXJnc1sxXSwgKHZvaWQqKWFyZ3NbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCb29sKWFyZ3NbM10gKTsKKyAgICAgICAgIEhHXyh0aHJlYWRfbGVhdmVfc3luY2hyKShtYXBfdGhyZWFkc19tYXliZV9sb29rdXAodGlkKSk7CiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfSU5JVF9QT1NUOgpAQCAtNTE1NSwyMSArNTMwOCwzMCBAQAogCiAgICAgICAvKiByd2xvY2s9YXJnWzFdLCBpc1c9YXJnWzJdLCBpc1RyeUxvY2s9YXJnWzNdICovCiAgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BSRToKLSAgICAgICAgIGV2aF9fSEdfUFRIUkVBRF9SV0xPQ0tfTE9DS19QUkUoIHRpZCwgKHZvaWQqKWFyZ3NbMV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMl0sIGFyZ3NbM10gKTsKKyAgICAgICAgIEhHXyh0aHJlYWRfZW50ZXJfc3luY2hyKShtYXBfdGhyZWFkc19tYXliZV9sb29rdXAodGlkKSk7CisgICAgICAgICBpZiAoSEdfKGdldF9wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsKSh0aWQpID09IDApCisgICAgICAgICAgICBldmhfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUFJFKCB0aWQsICh2b2lkKilhcmdzWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1syXSwgYXJnc1szXSApOwogICAgICAgICAgYnJlYWs7CiAKLSAgICAgIC8qIHJ3bG9jaz1hcmdbMV0sIGlzVz1hcmdbMl0gKi8KKyAgICAgIC8qIHJ3bG9jaz1hcmdbMV0sIGlzVz1hcmdbMl0sIHRvb2tMb2NrPWFyZ1szXSAqLwogICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfTE9DS19QT1NUOgotICAgICAgICAgZXZoX19IR19QVEhSRUFEX1JXTE9DS19MT0NLX1BPU1QoIHRpZCwgKHZvaWQqKWFyZ3NbMV0sIGFyZ3NbMl0gKTsKKyAgICAgICAgIGlmICgoYXJnc1szXSA9PSBUcnVlKQorICAgICAgICAgICAgICYmIChIR18oZ2V0X3B0aHJlYWRfY3JlYXRlX25lc3RpbmdfbGV2ZWwpKHRpZCkgPT0gMCkpCisgICAgICAgICAgICBldmhfX0hHX1BUSFJFQURfUldMT0NLX0xPQ0tfUE9TVCggdGlkLCAodm9pZCopYXJnc1sxXSwgYXJnc1syXSApOworICAgICAgICAgSEdfKHRocmVhZF9sZWF2ZV9zeW5jaHIpKG1hcF90aHJlYWRzX21heWJlX2xvb2t1cCh0aWQpKTsKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX1JXTE9DS19VTkxPQ0tfUFJFOgotICAgICAgICAgZXZoX19IR19QVEhSRUFEX1JXTE9DS19VTkxPQ0tfUFJFKCB0aWQsICh2b2lkKilhcmdzWzFdICk7CisgICAgICAgICBIR18odGhyZWFkX2VudGVyX3N5bmNocikobWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCkpOworICAgICAgICAgaWYgKEhHXyhnZXRfcHRocmVhZF9jcmVhdGVfbmVzdGluZ19sZXZlbCkodGlkKSA9PSAwKQorICAgICAgICAgICAgZXZoX19IR19QVEhSRUFEX1JXTE9DS19VTkxPQ0tfUFJFKCB0aWQsICh2b2lkKilhcmdzWzFdICk7CiAgICAgICAgICBicmVhazsKIAogICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfVU5MT0NLX1BPU1Q6Ci0gICAgICAgICBldmhfX0hHX1BUSFJFQURfUldMT0NLX1VOTE9DS19QT1NUKCB0aWQsICh2b2lkKilhcmdzWzFdICk7CisgICAgICAgICBpZiAoSEdfKGdldF9wdGhyZWFkX2NyZWF0ZV9uZXN0aW5nX2xldmVsKSh0aWQpID09IDApCisgICAgICAgICAgICBldmhfX0hHX1BUSFJFQURfUldMT0NLX1VOTE9DS19QT1NUKCB0aWQsICh2b2lkKilhcmdzWzFdICk7CisgICAgICAgICBIR18odGhyZWFkX2xlYXZlX3N5bmNocikobWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCkpOwogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9JTklUX1BPU1Q6IC8qIHNlbV90KiwgdW5zaWduZWQgbG9uZyAqLwpAQCAtNTE4MSwxMSArNTM0MywyMiBAQAogICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9QT1NUX1BSRTogLyogc2VtX3QqICovCisgICAgICAgICBIR18odGhyZWFkX2VudGVyX3N5bmNocikobWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCkpOwogICAgICAgICAgZXZoX19IR19QT1NJWF9TRU1fUE9TVF9QUkUoIHRpZCwgKHZvaWQqKWFyZ3NbMV0gKTsKICAgICAgICAgIGJyZWFrOwogCi0gICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QT1NJWF9TRU1fV0FJVF9QT1NUOiAvKiBzZW1fdCogKi8KLSAgICAgICAgIGV2aF9fSEdfUE9TSVhfU0VNX1dBSVRfUE9TVCggdGlkLCAodm9pZCopYXJnc1sxXSApOworICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUE9TSVhfU0VNX1BPU1RfUE9TVDogLyogc2VtX3QqICovCisgICAgICAgICBIR18odGhyZWFkX2xlYXZlX3N5bmNocikobWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCkpOworICAgICAgICAgYnJlYWs7CisKKyAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9XQUlUX1BSRTogLyogc2VtX3QqICovCisgICAgICAgICBIR18odGhyZWFkX2VudGVyX3N5bmNocikobWFwX3RocmVhZHNfbWF5YmVfbG9va3VwKHRpZCkpOworICAgICAgICAgYnJlYWs7CisKKyAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX1BPU0lYX1NFTV9XQUlUX1BPU1Q6IC8qIHNlbV90KiwgbG9uZyB0b29rTG9jayAqLworICAgICAgICAgaWYgKGFyZ3NbMl0gPT0gVHJ1ZSkKKyAgICAgICAgICAgIGV2aF9fSEdfUE9TSVhfU0VNX1dBSVRfUE9TVCggdGlkLCAodm9pZCopYXJnc1sxXSApOworICAgICAgICAgSEdfKHRocmVhZF9sZWF2ZV9zeW5jaHIpKG1hcF90aHJlYWRzX21heWJlX2xvb2t1cCh0aWQpKTsKICAgICAgICAgIGJyZWFrOwogCiAgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0JBUlJJRVJfSU5JVF9QUkU6CkBAIC01MjczLDYgKzU0NDYsNTggQEAKICAgICAgICAgIHJldHVybiBoYW5kbGVkOwogICAgICAgfQogCisgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX0NSRUFURV9CRUdJTjogeworICAgICAgICAgVGhyZWFkICp0aHIgPSBtYXBfdGhyZWFkc19tYXliZV9sb29rdXAodGlkKTsKKyAgICAgICAgIGlmIChIR18oY2xvX2lnbm9yZV90aHJlYWRfY3JlYXRpb24pKSB7CisgICAgICAgICAgICBIR18odGhyZWFkX2VudGVyX3B0aHJlYWRfY3JlYXRlKSh0aHIpOworICAgICAgICAgICAgSEdfKHRocmVhZF9lbnRlcl9zeW5jaHIpKHRocik7CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9DUkVBVEVfRU5EOiB7CisgICAgICAgICBUaHJlYWQgKnRociA9IG1hcF90aHJlYWRzX21heWJlX2xvb2t1cCh0aWQpOworICAgICAgICAgaWYgKEhHXyhjbG9faWdub3JlX3RocmVhZF9jcmVhdGlvbikpIHsKKyAgICAgICAgICAgIEhHXyh0aHJlYWRfbGVhdmVfcHRocmVhZF9jcmVhdGUpKHRocik7CisgICAgICAgICAgICBIR18odGhyZWFkX2xlYXZlX3N5bmNocikodGhyKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QVEhSRUFEX01VVEVYX0FDUVVJUkVfUFJFOiAvLyBwdGhfbXhfdCosIGxvbmcgdHJ5TG9jaworICAgICAgICAgZXZoX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUFJFKCB0aWQsICh2b2lkKilhcmdzWzFdLCBhcmdzWzJdICk7CisgICAgICAgICBicmVhazsKKworICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9NVVRFWF9BQ1FVSVJFX1BPU1Q6ICAgIC8vIHB0aF9teF90KgorICAgICAgICAgZXZoX19IR19QVEhSRUFEX01VVEVYX0xPQ0tfUE9TVCggdGlkLCAodm9pZCopYXJnc1sxXSApOworICAgICAgICAgYnJlYWs7CisKKyAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX1BUSFJFQURfUldMT0NLX0FDUVVJUkVEOiAgICAgICAvLyB2b2lkKiwgbG9uZyBpc1cKKyAgICAgICAgIGV2aF9fSEdfUFRIUkVBRF9SV0xPQ0tfTE9DS19QT1NUKCB0aWQsICh2b2lkKilhcmdzWzFdLCBhcmdzWzJdICk7CisgICAgICAgICBicmVhazsKKworICAgICAgY2FzZSBfVkdfVVNFUlJFUV9fSEdfUFRIUkVBRF9SV0xPQ0tfUkVMRUFTRUQ6ICAgICAgIC8vIHZvaWQqCisgICAgICAgICBldmhfX0hHX1BUSFJFQURfUldMT0NLX1VOTE9DS19QUkUoIHRpZCwgKHZvaWQqKWFyZ3NbMV0gKTsKKyAgICAgICAgIGJyZWFrOworCisgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QT1NJWF9TRU1fUkVMRUFTRUQ6IC8qIHNlbV90KiAqLworICAgICAgICAgZXZoX19IR19QT1NJWF9TRU1fUE9TVF9QUkUoIHRpZCwgKHZvaWQqKWFyZ3NbMV0gKTsKKyAgICAgICAgIGJyZWFrOworCisgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19QT1NJWF9TRU1fQUNRVUlSRUQ6IC8qIHNlbV90KiAqLworICAgICAgICAgZXZoX19IR19QT1NJWF9TRU1fV0FJVF9QT1NUKCB0aWQsICh2b2lkKilhcmdzWzFdICk7CisgICAgICAgICBicmVhazsKKworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICBjYXNlIF9WR19VU0VSUkVRX19IR19SVExEX0JJTkRfR1VBUkQ6CisgICAgICAgICBldmhfX0hHX1JUTERfQklORF9HVUFSRCh0aWQsIGFyZ3NbMV0pOworICAgICAgICAgYnJlYWs7CisKKyAgICAgIGNhc2UgX1ZHX1VTRVJSRVFfX0hHX1JUTERfQklORF9DTEVBUjoKKyAgICAgICAgIGV2aF9fSEdfUlRMRF9CSU5EX0NMRUFSKHRpZCwgYXJnc1sxXSk7CisgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBWR09fc29sYXJpcyAqLworCiAgICAgICBkZWZhdWx0OgogICAgICAgICAgLyogVW5oYW5kbGVkIEhlbGdyaW5kIGNsaWVudCByZXF1ZXN0ISAqLwogICAgICAgICAgdGxfYXNzZXJ0MigwLCAidW5oYW5kbGVkIEhlbGdyaW5kIGNsaWVudCByZXF1ZXN0IDB4JWx4IiwKQEAgLTUzMzksNiArNTU2NCw4IEBACiAKICAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS1jaGVjay1zdGFjay1yZWZzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIR18oY2xvX2NoZWNrX3N0YWNrX3JlZnMpKSB7fQorICAgZWxzZSBpZiBWR19CT09MX0NMTyhhcmcsICItLWlnbm9yZS10aHJlYWQtY3JlYXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhHXyhjbG9faWdub3JlX3RocmVhZF9jcmVhdGlvbikpIHt9CiAKICAgIGVsc2UgCiAgICAgICByZXR1cm4gVkdfKHJlcGxhY2VtZW50X21hbGxvY19wcm9jZXNzX2NtZF9saW5lX29wdGlvbikoYXJnKTsKQEAgLTUzNTgsNiArNTU4NSw5IEBACiAiICAgIC0tY29uZmxpY3QtY2FjaGUtc2l6ZT1OICAgc2l6ZSBvZiAnZnVsbCcgaGlzdG9yeSBjYWNoZSBbMjAwMDAwMF1cbiIKICIgICAgLS1jaGVjay1zdGFjay1yZWZzPW5vfHllcyByYWNlLWNoZWNrIHJlYWRzIGFuZCB3cml0ZXMgb24gdGhlXG4iCiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbiBzdGFjayBhbmQgdGhyZWFkIHN0YWNrcz8gW3llc11cbiIKKyIgICAgLS1pZ25vcmUtdGhyZWFkLWNyZWF0aW9uPXllc3xubyBJZ25vcmUgYWN0aXZpdGllcyBkdXJpbmcgdGhyZWFkXG4iCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRpb24gWyVzXVxuIiwKK0hHXyhjbG9faWdub3JlX3RocmVhZF9jcmVhdGlvbikgPyAieWVzIiA6ICJubyIKICAgICk7CiB9CiAKQEAgLTU0MjMsNyArNTY1Myw3IEBACiAgICAgICAgICAgICAgICBIR18oc3RhdHNfX0xvY2tOX3RvX1BfcXVlcmllcyksCiAgICAgICAgICAgICAgICBIR18oc3RhdHNfX0xvY2tOX3RvX1BfZ2V0X21hcF9zaXplKSgpICk7CiAKLSAgIFZHXyhwcmludGYpKCJjbGllbnQgbWFsbG9jLWVkIGJsb2NrczogJSc4ZFxuIiwKKyAgIFZHXyhwcmludGYpKCJjbGllbnQgbWFsbG9jLWVkIGJsb2NrczogJSc4dVxuIiwKICAgICAgICAgICAgICAgIFZHXyhIVF9jb3VudF9ub2RlcykoaGdfbWFsbG9jbWV0YV90YWJsZSkpOwogICAgICAgICAgICAgICAgCiAgICBWR18ocHJpbnRmKSgic3RyaW5nIHRhYmxlIG1hcDogJSc4bGx1IHF1ZXJpZXMgKCVsbHUgbWFwIHNpemUpXG4iLApAQCAtNTUzNCw3ICs1NzY0LDcgQEAKICAgIFZHXyhkZXRhaWxzX3ZlcnNpb24pICAgICAgICAgKE5VTEwpOwogICAgVkdfKGRldGFpbHNfZGVzY3JpcHRpb24pICAgICAoImEgdGhyZWFkIGVycm9yIGRldGVjdG9yIik7CiAgICBWR18oZGV0YWlsc19jb3B5cmlnaHRfYXV0aG9yKSgKLSAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDctMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgT3BlbldvcmtzIExMUCBldCBhbC4iKTsKKyAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgT3BlbldvcmtzIExMUCBldCBhbC4iKTsKICAgIFZHXyhkZXRhaWxzX2J1Z19yZXBvcnRzX3RvKSAgKFZHX0JVR1NfVE8pOwogICAgVkdfKGRldGFpbHNfYXZnX3RyYW5zbGF0aW9uX3NpemVCKSAoIDMyMCApOwogCmRpZmYgLS1naXQgYS9oZWxncmluZC9oZ193b3Jkc2V0LmMgYi9oZWxncmluZC9oZ193b3Jkc2V0LmMKaW5kZXggNjMwNjZmMS4uZTBmNjg0NSAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvaGdfd29yZHNldC5jCisrKyBiL2hlbGdyaW5kL2hnX3dvcmRzZXQuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEhlbGdyaW5kLCBhIFZhbGdyaW5kIHRvb2wgZm9yIGRldGVjdGluZyBlcnJvcnMKICAgIGluIHRocmVhZGVkIHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMyBPcGVuV29ya3MgTExQCisgICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBPcGVuV29ya3MgTExQCiAgICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL2hnX3dvcmRzZXQuaCBiL2hlbGdyaW5kL2hnX3dvcmRzZXQuaAppbmRleCBlN2EzYjVlLi5iNDMxYTA1IDEwMDY0NAotLS0gYS9oZWxncmluZC9oZ193b3Jkc2V0LmgKKysrIGIvaGVsZ3JpbmQvaGdfd29yZHNldC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgSGVsZ3JpbmQsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgZGV0ZWN0aW5nIGVycm9ycwogICAgaW4gdGhyZWFkZWQgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNy0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvbGliaGIuaCBiL2hlbGdyaW5kL2xpYmhiLmgKaW5kZXggNjg3NTRlNi4uOTYzYzQ5MCAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvbGliaGIuaAorKysgYi9oZWxncmluZC9saWJoYi5oCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTGliSEIsIGEgbGlicmFyeSBmb3IgaW1wbGVtZW50aW5nIGFuZCBjaGVja2luZwogICAgdGhlIGhhcHBlbnMtYmVmb3JlIHJlbGF0aW9uc2hpcCBpbiBjb25jdXJyZW50IHByb2dyYW1zLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBPcGVuV29ya3MgTHRkCisgICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBPcGVuV29ya3MgTHRkCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvbGliaGJfY29yZS5jIGIvaGVsZ3JpbmQvbGliaGJfY29yZS5jCmluZGV4IGE2NmQ1NzguLjE1YTU3ZGQgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL2xpYmhiX2NvcmUuYworKysgYi9oZWxncmluZC9saWJoYl9jb3JlLmMKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBMaWJIQiwgYSBsaWJyYXJ5IGZvciBpbXBsZW1lbnRpbmcgYW5kIGNoZWNraW5nCiAgICB0aGUgaGFwcGVucy1iZWZvcmUgcmVsYXRpb25zaGlwIGluIGNvbmN1cnJlbnQgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xNDMsNyArMTQzLDcgQEAKICAgIGEgcGFpciwgKFRociosIFVMb25nKSwgYnV0IHRoYXQgdGFrZXMgMTYgYnl0ZXMgb24gYSA2NC1iaXQgdGFyZ2V0LgogICAgV2UgcGFjayBpdCBpbnRvIDY0IGJpdHMgYnkgcmVwcmVzZW50aW5nIHRoZSBUaHIqIHVzaW5nIGEgVGhySUQsIGEKICAgIHNtYWxsIGludGVnZXIgKDE4IGJpdHMpLCBhbmQgYSA0NiBiaXQgaW50ZWdlciBmb3IgdGhlIHRpbWVzdGFtcAotICAgbnVtYmVyLiAgVGhlIDQ2LzE4IHNwbGl0IGlzIGFyYml0YXJ5LCBidXQgaGFzIHRoZSBlZmZlY3QgdGhhdAorICAgbnVtYmVyLiAgVGhlIDQ2LzE4IHNwbGl0IGlzIGFyYml0cmFyeSwgYnV0IGhhcyB0aGUgZWZmZWN0IHRoYXQKICAgIEhlbGdyaW5kIGNhbiBvbmx5IGhhbmRsZSBwcm9ncmFtcyB0aGF0IGNyZWF0ZSAyXjE4IG9yIGZld2VyIHRocmVhZHMKICAgIG92ZXIgdGhlaXIgZW50aXJlIGxpZmV0aW1lLCBhbmQgaGF2ZSBubyBtb3JlIHRoYW4gMl40NiB0aW1lc3RhbXAKICAgIHRpY2tzIChzeW5jaHJvbmlzYXRpb24gb3BlcmF0aW9ucyBvbiB0aGUgc2FtZSB0aHJlYWQpLgpAQCAtMTUwMyw3ICsxNTAzLDcgQEAKICAgIHNlcXVlbnRpYWxpc2VfQ2FjaGVMaW5lKCBjc3ZhbHMsICZjc3ZhbHNVc2VkLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOX0xJTkVfQVJBTkdFLCBjbCApOwogICAgdGxfYXNzZXJ0KGNzdmFsc1VzZWQgPj0gMSAmJiBjc3ZhbHNVc2VkIDw9IE5fTElORV9BUkFOR0UpOwotICAgaWYgKDApIFZHXyhwcmludGYpKCIlbHUgIiwgY3N2YWxzVXNlZCk7CisgICBpZiAoMCkgVkdfKHByaW50ZikoIiVsZCAiLCBjc3ZhbHNVc2VkKTsKIAogICAgbGluZVotPmRpY3RbMF0gPSBsaW5lWi0+ZGljdFsxXSAKICAgICAgICAgICAgICAgICAgID0gbGluZVotPmRpY3RbMl0gPSBsaW5lWi0+ZGljdFszXSA9IFNWYWxfSU5WQUxJRDsKQEAgLTI2MjUsNyArMjYyNSw3IEBACiAgICBuID0gIHZ0cy0+dXNlZFRTOwogICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgY29uc3QgU2NhbGFyVFMgKnN0ID0gJnZ0cy0+dHNbaV07Ci0gICAgICBWR18ocHJpbnRmKShpIDwgbi0xID8gIiV1OiVsbHUgIiA6ICIldTolbGx1Iiwgc3QtPnRocmlkLCAoVUxvbmcpc3QtPnR5bSk7CisgICAgICBWR18ocHJpbnRmKShpIDwgbi0xID8gIiVkOiVsbHUgIiA6ICIlZDolbGx1Iiwgc3QtPnRocmlkLCAoVUxvbmcpc3QtPnR5bSk7CiAgICB9CiAgICBWR18ocHJpbnRmKSgiXSIpOwogfQpAQCAtMzAxNCw3ICszMDE0LDcgQEAKICAgIC8qIE5vdyBmaWd1cmUgb3V0IHdoZW4gdGhlIG5leHQgR0Mgc2hvdWxkIGJlLiAgV2UnbGwgYWxsb3cgdGhlCiAgICAgICBudW1iZXIgb2YgVlRTcyB0byBkb3VibGUgYmVmb3JlIEdDaW5nIGFnYWluLiAgRXhjZXB0IG9mIGNvdXJzZQogICAgICAgdGhhdCBzaW5jZSB3ZSBjYW4ndCAob3IsIGF0IGxlYXN0LCBkb24ndCkgc2hyaW5rIHZ0c190YWIsIHdlCi0gICAgICBjYW4ndCBzZXQgdGhlIHRocmVzaGhvbGQgdmFsdWUgc21hbGxlciB0aGFuIGl0LiAqLworICAgICAgY2FuJ3Qgc2V0IHRoZSB0aHJlc2hvbGQgdmFsdWUgc21hbGxlciB0aGFuIGl0LiAqLwogICAgdGxfYXNzZXJ0KG5GcmVlZCA8PSBuVGFiKTsKICAgIG5MaXZlID0gblRhYiAtIG5GcmVlZDsKICAgIHRsX2Fzc2VydChuTGl2ZSA+PSAwICYmIG5MaXZlIDw9IG5UYWIpOwpAQCAtNDMwNiw3ICs0MzA2LDcgQEAKIAogCiAvKiBGaW5kICdlYycgaW4gdGhlIFJDRUMgbGlzdCB3aG9zZSBoZWFkIHBvaW50ZXIgbGl2ZXMgYXQgJ2hlYWRwJyBhbmQKLSAgIG1vdmUgaXQgb25lIHN0ZXAgY2xvc2VyIHRoZSB0aGUgZnJvbnQgb2YgdGhlIGxpc3QsIHNvIGFzIHRvIG1ha2UKKyAgIG1vdmUgaXQgb25lIHN0ZXAgY2xvc2VyIHRvIHRoZSBmcm9udCBvZiB0aGUgbGlzdCwgc28gYXMgdG8gbWFrZQogICAgc3Vic2VxdWVudCBzZWFyY2hlcyBmb3IgaXQgY2hlYXBlci4gKi8KIHN0YXRpYyB2b2lkIG1vdmVfUkNFQ19vbmVfc3RlcF9mb3J3YXJkICggUkNFQyoqIGhlYWRwLCBSQ0VDKiBlYyApCiB7CkBAIC00MzU0LDcgKzQzNTQsNyBAQAogICAgcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgY29weS4gIFRoZSBjYWxsZXIgY2FuIHNhZmVseSBoYXZlICdleGFtcGxlJwogICAgb24gaXRzIHN0YWNrLCBzaW5jZSB3ZSB3aWxsIGFsd2F5cyByZXR1cm4gYSBwb2ludGVyIHRvIGEgY29weSBvZgogICAgaXQsIG5vdCB0byB0aGUgb3JpZ2luYWwuICBOb3RlIHRoYXQgdGhlIGluc2VydGVkIG5vZGUgd2lsbCBoYXZlIC5yYwotICAgb2YgemVybyBhbmQgc28gdGhlIGNhbGxlciBtdXN0IGltbWVkaWF0bHkgaW5jcmVtZW50IGl0LiAqLworICAgb2YgemVybyBhbmQgc28gdGhlIGNhbGxlciBtdXN0IGltbWVkaWF0ZWx5IGluY3JlbWVudCBpdC4gKi8KIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKIHN0YXRpYyBSQ0VDKiBjdHh0X19maW5kX29yX2FkZCAoIFJDRUMqIGV4YW1wbGUgKQogewpAQCAtNTA1MCw3ICs1MDUwLDcgQEAKICAgICAgICAgICAgICAgICAgKFhBQ21wRm5fdCljbXBfX1VMb25nX25fRUNfX2J5X1VMb25nCiAgICAgICAgICAgICAgICk7CiAgICAgICBpZiAoMCkgVkdfKHByaW50ZikoInJlY29yZF9yYWNlX2luZm8gJXUgJXUgJXUgIGNvbmZUaHIgJXAgIgotICAgICAgICAgICAgICAgICAgICAgICAgICJjb25mVHltICVsbHUgZm91bmQgJWQgKCVsdSwlbHUpXG4iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZlR5bSAlbGx1IGZvdW5kICVkICglbGQsJWxkKVxuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2ZhaWxlZCwgS2ZhaWxlZCwgQ3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZlRociwgY29uZlR5bSwgZm91bmQsIGZpcnN0SXgsIGxhc3RJeCk7CiAgICAgICAvKiBXZSBjYW4ndCBpbmRlZmluaXRlbHkgY29sbGVjdCBzdGFjayB0cmFjZXMgYXQgVlRTCkBAIC01Nzc5LDcgKzU3NzksNyBAQAogICAgc3RhdHNfX2NhY2hlX21ha2VfTmV3X2FyYW5nZSArPSAoVUxvbmcpbGVuOwogCiAgICBpZiAoMCAmJiBsZW4gPiA1MDApCi0gICAgICBWR18ocHJpbnRmKSgibWFrZSBOZXcgICAgICAoICUjbHgsICVsZCApXG4iLCBhLCBsZW4gKTsKKyAgICAgIFZHXyhwcmludGYpKCJtYWtlIE5ldyAgICAgICggJSNseCwgJWx1IClcbiIsIGEsIGxlbiApOwogCiAgICBpZiAoMCkgewogICAgICAgc3RhdGljIFVXb3JkIG5fTmV3X2luX2NhY2hlID0gMDsKQEAgLTY0NDUsOCArNjQ0NSw4IEBACiAgICAgICAgICAgICAgICBsaXZlKys7CiAgICAgICAgICAgICBoZ3RocmVhZCA9IGhndGhyZWFkLT5hZG1pbjsKICAgICAgICAgIH0KLSAgICAgICAgIFZHXyhwcmludGYpKCIgICBsaWJoYjogdGhyZWFkcyBsaXZlOiAlZCBleGl0X2FuZF9qb2luZWR3aXRoICVkIgotICAgICAgICAgICAgICAgICAgICAgIiBleGl0ICVkIGpvaW5lZHdpdGggJWRcbiIsCisgICAgICAgICBWR18ocHJpbnRmKSgiICAgbGliaGI6IHRocmVhZHMgbGl2ZTogJXUgZXhpdF9hbmRfam9pbmVkd2l0aCAldSIKKyAgICAgICAgICAgICAgICAgICAgICIgZXhpdCAldSBqb2luZWR3aXRoICV1XG4iLAogICAgICAgICAgICAgICAgICAgICAgbGl2ZSwgbGxleGl0X2FuZF9qb2luZWR3aXRoX2RvbmUsCiAgICAgICAgICAgICAgICAgICAgICBsbGV4aXRfZG9uZSwgam9pbmVkd2l0aF9kb25lKTsKICAgICAgICAgIFZHXyhwcmludGYpKCIgICBsaWJoYjogJWQgdmVyeWRlYWRfdGhyZWFkcywgIgpAQCAtNjQ2NywxMCArNjQ2NywxMCBAQAogICAgICAgaWYgKFZHXyhjbG9fdmVyYm9zaXR5KSA+IDEpCiAgICAgICAgICBWR18oSFRfcHJpbnRfc3RhdHMpIChvbGRyZWZIVCwgY21wX29sZHJlZl90c3cpOwogICAgICAgVkdfKHByaW50ZikoICIgICBsaWJoYjogb2xkcmVmIGJpbmQgdHN3L3JjZWMgIgotICAgICAgICAgICAgICAgICAgICI9PS89PTolbHUgPT0vIT06JWx1ICE9LyE9OiVsdVxuIiwKKyAgICAgICAgICAgICAgICAgICAiPT0vPT06JSdsdSA9PS8hPTolJ2x1ICE9LyE9OiUnbHVcbiIsCiAgICAgICAgICAgICAgICAgICAgc3RhdHNfX2N0eHRfZXFfdHN3X2VxX3JjZWMsIHN0YXRzX19jdHh0X2VxX3Rzd19uZXFfcmNlYywKICAgICAgICAgICAgICAgICAgICBzdGF0c19fY3R4dF9uZXFfdHN3X25lcV9yY2VjKTsKLSAgICAgIFZHXyhwcmludGYpKCAiICAgbGliaGI6IGN0eHRfX3JjZGVjIGNhbGxzICVsdS4gcmNlYyBnYyBkaXNjYXJkcyAlbHVcbiIsCisgICAgICBWR18ocHJpbnRmKSggIiAgIGxpYmhiOiBjdHh0X19yY2RlYyBjYWxscyAlJ2x1LiByY2VjIGdjIGRpc2NhcmRzICUnbHVcbiIsCiAgICAgICAgICAgICAgICAgICAgc3RhdHNfX2N0eHRfcmNkZWNfY2FsbHMsIHN0YXRzX19jdHh0X3JjZWNfZ2NfZGlzY2FyZHMpOwogICAgICAgVkdfKHByaW50ZikoICIgICBsaWJoYjogY29udGV4dFRhYjogJWx1IHNsb3RzLCIKICAgICAgICAgICAgICAgICAgICAiICVsdSBjdXIgZW50cyhyZWYnZCAlbHUpLCIKQEAgLTY1MDUsNyArNjUwNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgLyAoRG91YmxlKShub24wY2hhaW4gPyBub24wY2hhaW4gOiAxKSk7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IE1BWENIQUlOOyBpKyspIHsKICAgICAgICAgICAgIGlmIChjaGFpbnNbaV0gIT0gMCkKLSAgICAgICAgICAgICAgICBWR18ocHJpbnRmKSggIlslZCVzXT0lZCAiLAorICAgICAgICAgICAgICAgIFZHXyhwcmludGYpKCAiWyV1JXNdPSV1ICIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIGkgPT0gTUFYQ0hBSU4gPyAiKyIgOiAiIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhaW5zW2ldKTsKICAgICAgICAgIH0KQEAgLTY4NjAsOSArNjg2MCw5IEBACiAgICBQbGVuQ09OU1VNRShBUEMsIEFSRSwgMSwgICAgICAgICAgICAgICBBUENsZW4pOwogCiAgICBpZiAoMCkKLSAgICAgIFZHXyhwcmludGYpICgiYWRkciAlcFslbGRdIEFSRSAlcCIKLSAgICAgICAgICAgICAgICAgICAiIEJQQyAlcFslbGRdIEJGQyAlcFslbGRdIEZTTSAlcFslbGRdIgotICAgICAgICAgICAgICAgICAgICIgQUZDICVwWyVsZF0gQVBDICVwWyVsZF1cbiIsCisgICAgICBWR18ocHJpbnRmKSAoImFkZHIgJXBbJWx1XSBBUkUgJXAiCisgICAgICAgICAgICAgICAgICAgIiBCUEMgJXBbJWx1XSBCRkMgJXBbJWx1XSBGU00gJXBbJWx1XSIKKyAgICAgICAgICAgICAgICAgICAiIEFGQyAlcFslbHVdIEFQQyAlcFslbHVdXG4iLAogICAgICAgICAgICAgICAgICAgICh2b2lkKilhZGRyLCBsZW4sICh2b2lkKilBUkUsCiAgICAgICAgICAgICAgICAgICAgKHZvaWQqKUJQQywgQlBDbGVuLCAodm9pZCopQkZDLCBCRkNsZW4sICh2b2lkKilGU00sIEZTTWxlbiwKICAgICAgICAgICAgICAgICAgICAodm9pZCopQUZDLCBBRkNsZW4sICh2b2lkKilBUEMsIEFQQ2xlbik7CkBAIC03MDY3LDcgKzcwNjcsNyBAQAogICAgICAgZG9fUkNFQ19HQygpOwogCiAgICAvKiBJZiB0aGVyZSBhcmUgc3RpbGwgbm8gZW50cmllcyBhdmFpbGFibGUgKGFsbCB0aGUgdGFibGUgZW50cmllcyBhcmUgZnVsbCksCi0gICAgICBhbmQgd2UgaGl0IHRoZSB0aHJlc2hob2xkIHBvaW50LCB0aGVuIGRvIGEgR0MgKi8KKyAgICAgIGFuZCB3ZSBoaXQgdGhlIHRocmVzaG9sZCBwb2ludCwgdGhlbiBkbyBhIEdDICovCiAgICBCb29sIHZ0c190YWJfR0MgPSB2dHNfdGFiX2ZyZWVsaXN0ID09IFZ0c0lEX0lOVkFMSUQKICAgICAgICYmIFZHXyhzaXplWEEpKCB2dHNfdGFiICkgPj0gdnRzX25leHRfR0NfYXQ7CiAgICBpZiAoVU5MSUtFTFkgKHZ0c190YWJfR0MpKQpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvTWFrZWZpbGUuYW0gYi9oZWxncmluZC90ZXN0cy9NYWtlZmlsZS5hbQppbmRleCAwNTI4ZmJjLi44YTBkNmU2IDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy9NYWtlZmlsZS5hbQorKysgYi9oZWxncmluZC90ZXN0cy9NYWtlZmlsZS5hbQpAQCAtMiw2ICsyLDcgQEAKIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCiAKIGRpc3Rfbm9pbnN0X1NDUklQVFMgPSBmaWx0ZXJfc3RkZXJyICAgXAorCQkgICAgICBmaWx0ZXJfc3RkZXJyX3NvbGFyaXMgXAogCQkgICAgICBmaWx0ZXJfaGVsZ3JpbmQgXAogCQkgICAgICBmaWx0ZXJfeG1sCiAKQEAgLTQ2LDcgKzQ3LDggQEAKIAlwdGhfZGVzdHJveV9jb25kLnZndGVzdCBcCiAJCXB0aF9kZXN0cm95X2NvbmQuc3Rkb3V0LmV4cCBwdGhfZGVzdHJveV9jb25kLnN0ZGVyci5leHAgXAogCXB0aF9jb25kX2Rlc3Ryb3lfYnVzeS52Z3Rlc3QgcHRoX2NvbmRfZGVzdHJveV9idXN5LnN0ZGVyci5leHAgXAotCXB0aF9jb25kX2Rlc3Ryb3lfYnVzeS5zdGRlcnIuZXhwLXBwYzY0IFwKKwkJcHRoX2NvbmRfZGVzdHJveV9idXN5LnN0ZGVyci5leHAtcHBjNjQgXAorCQlwdGhfY29uZF9kZXN0cm95X2J1c3kuc3RkZXJyLmV4cC1zb2xhcmlzIFwKIAlwdGhfc3BpbmxvY2sudmd0ZXN0IHB0aF9zcGlubG9jay5zdGRvdXQuZXhwIHB0aF9zcGlubG9jay5zdGRlcnIuZXhwIFwKIAlyd2xvY2tfcmFjZS52Z3Rlc3Qgcndsb2NrX3JhY2Uuc3Rkb3V0LmV4cCByd2xvY2tfcmFjZS5zdGRlcnIuZXhwIFwKIAlyd2xvY2tfdGVzdC52Z3Rlc3Qgcndsb2NrX3Rlc3Quc3Rkb3V0LmV4cCByd2xvY2tfdGVzdC5zdGRlcnIuZXhwIFwKQEAgLTcwLDEyICs3MiwxMyBAQAogCXRjMDdfaGJsMS52Z3Rlc3QgdGMwN19oYmwxLnN0ZG91dC5leHAgdGMwN19oYmwxLnN0ZGVyci5leHAgXAogCXRjMDhfaGJsMi52Z3Rlc3QgdGMwOF9oYmwyLnN0ZG91dC5leHAgdGMwOF9oYmwyLnN0ZGVyci5leHAgXAogCXRjMDlfYmFkX3VubG9jay52Z3Rlc3QgdGMwOV9iYWRfdW5sb2NrLnN0ZG91dC5leHAgXAotCQl0YzA5X2JhZF91bmxvY2suc3RkZXJyLmV4cCBcCisJCXRjMDlfYmFkX3VubG9jay5zdGRlcnIuZXhwIHRjMDlfYmFkX3VubG9jay5zdGRlcnIuZXhwLXNvbGFyaXMgXAogCXRjMTBfcmVjX2xvY2sudmd0ZXN0IHRjMTBfcmVjX2xvY2suc3Rkb3V0LmV4cCB0YzEwX3JlY19sb2NrLnN0ZGVyci5leHAgXAogCXRjMTFfWENIRy52Z3Rlc3QgdGMxMV9YQ0hHLnN0ZG91dC5leHAgdGMxMV9YQ0hHLnN0ZGVyci5leHAgXAogCXRjMTJfcndsX3RyaXZpYWwudmd0ZXN0IHRjMTJfcndsX3RyaXZpYWwuc3Rkb3V0LmV4cCBcCiAJCXRjMTJfcndsX3RyaXZpYWwuc3RkZXJyLmV4cCBcCiAJCXRjMTJfcndsX3RyaXZpYWwuc3RkZXJyLmV4cC1kYXJ3aW45NzAgXAorCQl0YzEyX3J3bF90cml2aWFsLnN0ZGVyci5leHAtc29sYXJpcyBcCiAJdGMxM19sYW9nMS52Z3Rlc3QgdGMxM19sYW9nMS5zdGRvdXQuZXhwIHRjMTNfbGFvZzEuc3RkZXJyLmV4cCBcCiAJdGMxNF9sYW9nX2RpbnBoaWxzLnZndGVzdCB0YzE0X2xhb2dfZGlucGhpbHMuc3Rkb3V0LmV4cCBcCiAJCXRjMTRfbGFvZ19kaW5waGlscy5zdGRlcnIuZXhwIFwKQEAgLTg5LDE4ICs5MiwyMiBAQAogCQl0YzE4X3NlbWFidXNlLnN0ZGVyci5leHAgXAogCQl0YzE4X3NlbWFidXNlLnN0ZGVyci5leHAtbGludXgtbWlwczMyIFwKIAkJdGMxOF9zZW1hYnVzZS5zdGRlcnIuZXhwLWxpbnV4LW1pcHMzMi1iIFwKKwkJdGMxOF9zZW1hYnVzZS5zdGRlcnIuZXhwLXNvbGFyaXMgXAogCXRjMTlfc2hhZG93bWVtLnZndGVzdCB0YzE5X3NoYWRvd21lbS5zdGRvdXQuZXhwIFwKIAkJdGMxOV9zaGFkb3dtZW0uc3RkZXJyLmV4cCB0YzE5X3NoYWRvd21lbS5zdGRlcnIuZXhwLW1pcHMzMiBcCiAJdGMyMF92ZXJpZnl3cmFwLnZndGVzdCB0YzIwX3ZlcmlmeXdyYXAuc3Rkb3V0LmV4cCBcCiAJCXRjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwIFwKIAkJdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAtZ2xpYmMtMi4xOCBcCisJCXRjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLWdsaWJjLTIuMjEgXAogCQl0YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1taXBzMzIgXAogCQl0YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1taXBzMzItYiBcCiAJCXRjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLXMzOTB4IFwKKwkJdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAtc29sYXJpcyBcCiAJdGMyMV9wdGhvbmNlLnZndGVzdCB0YzIxX3B0aG9uY2Uuc3Rkb3V0LmV4cCB0YzIxX3B0aG9uY2Uuc3RkZXJyLmV4cCBcCiAJdGMyMl9leGl0X3dfbG9jay52Z3Rlc3QgdGMyMl9leGl0X3dfbG9jay5zdGRvdXQuZXhwIFwKIAkJdGMyMl9leGl0X3dfbG9jay5zdGRlcnIuZXhwIFwKIAkJdGMyMl9leGl0X3dfbG9jay5zdGRlcnIuZXhwLWtmYWlsLXg4NiBcCisJCXRjMjJfZXhpdF93X2xvY2suc3RkZXJyLmV4cC1zb2xhcmlzIFwKIAl0YzIzX2JvZ3VzX2NvbmR3YWl0LnZndGVzdCB0YzIzX2JvZ3VzX2NvbmR3YWl0LnN0ZG91dC5leHAgXAogCQl0YzIzX2JvZ3VzX2NvbmR3YWl0LnN0ZGVyci5leHAgXAogCQl0YzIzX2JvZ3VzX2NvbmR3YWl0LnN0ZGVyci5leHAtbWlwczMyIFwKQEAgLTEwOSw2ICsxMTYsOSBAQAogCXRsc190aHJlYWRzLnZndGVzdCB0bHNfdGhyZWFkcy5zdGRvdXQuZXhwIFwKIAkJdGxzX3RocmVhZHMuc3RkZXJyLmV4cAogCisjIFdyYXBwZXIgaGVhZGVycyB1c2VkIGJ5IHNvbWUgY2hlY2sgcHJvZ3JhbXMuCitub2luc3RfSEVBREVSUyA9IHNhZmUtcHRocmVhZC5oIHNhZmUtc2VtYXBob3JlLmgKKwogIyBYWFg6IHRjMThfc2VtYWJ1c2UgdXNlcyBvcGVyYXRpb25zIHRoYXQgYXJlIHVuc3VwcG9ydGVkIG9uIERhcndpbi4gIEl0CiAjIHNob3VsZCBiZSBjb25kaXRpb25hbGx5IGNvbXBpbGVkIGxpa2UgdGMyMF92ZXJpZnl3cmFwIGlzLgogY2hlY2tfUFJPR1JBTVMgPSBcCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy9hbm5vdGF0ZV9yd2xvY2suYyBiL2hlbGdyaW5kL3Rlc3RzL2Fubm90YXRlX3J3bG9jay5jCmluZGV4IDg4NDJiM2MuLjg5NjFmM2MgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL2Fubm90YXRlX3J3bG9jay5jCisrKyBiL2hlbGdyaW5kL3Rlc3RzL2Fubm90YXRlX3J3bG9jay5jCkBAIC03NCw3ICs3NCw3IEBACiAgICAgLyogRGFyd2luIGRvZXNuJ3QgaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiBwdGhyZWFkX3lpZWxkKCkuICovCiAgICAgdXNsZWVwKDEwMCAqIDEwMDApOwogI2Vsc2UKLSAgICBwdGhyZWFkX3lpZWxkKCk7CisgICAgc2NoZWRfeWllbGQoKTsKICNlbmRpZgogICAgICh2b2lkKSBfX3N5bmNfZmV0Y2hfYW5kX3N1YigmcC0+bG9ja2VkLCAxKTsKICAgfQpAQCAtOTksNyArOTksNyBAQAogICAgIC8qIERhcndpbiBkb2Vzbid0IGhhdmUgYW4gaW1wbGVtZW50YXRpb24gb2YgcHRocmVhZF95aWVsZCgpLiAqLwogICAgIHVzbGVlcCgxMDAgKiAxMDAwKTsKICNlbHNlCi0gICAgcHRocmVhZF95aWVsZCgpOworICAgIHNjaGVkX3lpZWxkKCk7CiAjZW5kaWYKICAgICAodm9pZCkgX19zeW5jX2ZldGNoX2FuZF9zdWIoJnAtPmxvY2tlZCwgMSk7CiAgIH0KZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL2ZpbHRlcl9zdGRlcnIgYi9oZWxncmluZC90ZXN0cy9maWx0ZXJfc3RkZXJyCmluZGV4IDdiMzAwM2QuLmNmZGQ4OTQgMTAwNzU1Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL2ZpbHRlcl9zdGRlcnIKKysrIGIvaGVsZ3JpbmQvdGVzdHMvZmlsdGVyX3N0ZGVycgpAQCAtNyw2ICs3LDEzIEBACiAjIEFub255bWlzZSBhZGRyZXNzZXMKICRkaXIvLi4vLi4vdGVzdHMvZmlsdGVyX2FkZHJlc3NlcyAgICAgICAgICAgICAgICAgICAgICAgfAogCisjIFBlcmZvcm0gU29sYXJpcy1zcGVjaWZpYyBmaWx0ZXJpbmcuCitpZiAkZGlyLy4uLy4uL3Rlc3RzL29zX3Rlc3Qgc29sYXJpczsgdGhlbgorICAgcGVybCAtcCAkZGlyL2ZpbHRlcl9zdGRlcnJfc29sYXJpcworZWxzZQorICAgY2F0CitmaSB8CisKICMgZ2V0IHJpZCBvZiB0aGUgbnVtYmVycyBpbiBiaXRzIG9mIHRleHQgIlRocmVhZCAjbiIsICJ0aHJlYWQgI24iLAogIyAiVGhyZWFkIG4iIGFuZCAidGhyZWFkIG4iLCAidGlkIG4iCiAjIGFzIHRoZXNlIG1ha2Ugc29tZSB0ZXN0cyBtb3JlIHNjaGVkdWxpbmcgc2Vuc2l0aXZlIC0tIHRob3NlIHdoZXJlCkBAIC0xOSw2ICsyNiwxMCBAQAogIyBMaWtld2lzZSBmb3IgZnJhbWUgbnVtYmVycywgd2hpY2ggZGVwZW5kIG9uIGNvbXBpbGF0aW9uLgogc2VkIC1lICJzL2ZyYW1lICNbMC05XVswLTldKi9mcmFtZSAjeC9nIiB8IFwKIAorIyBSZW1vdmUgdGhlIG1lc3NhZ2UgdGhhdCBtb3JlIHRoYW4gaHVuZHJlZCBlcnJvcnMgaGF2ZSBiZWVuIGRldGVjdGVkCisjIChjb25zaXN0cyBvZiB0d28gbGluZXMpIGFuZCBhbHNvIHRoZSBlbXB0eSBsaW5lIGFib3ZlIGl0LgorYXdrICdCRUdJTntiZWdpbj0xfSB7aWYgKCQwID09ICJNb3JlIHRoYW4gMTAwIGVycm9ycyBkZXRlY3RlZC4gIFN1YnNlcXVlbnQgZXJyb3JzIikgeyBnZXRsaW5lOyBnZXRsaW5lOyB9IGVsc2UgeyBpZiAoYmVnaW4pIGJlZ2luID0gMDsgZWxzZSBwcmludCBsYXN0X2xpbmU7IH07IGxhc3RfbGluZSA9ICQwOyB9IEVORCB7IGlmICghIGJlZ2luKSBwcmludCBsYXN0X2xpbmU7IH0nIHwKKwogIyBNZXJnZSBzZW1fd2FpdCBhbmQgc2VtX3dhaXRAKiwgYXMgZWl0aGVyIGNvdWxkIGJlIHVzZWQuICBMaWtld2lzZSBmb3IKICMgc2VtX3Bvc3QuCiBzZWQgXApkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvZmlsdGVyX3N0ZGVycl9zb2xhcmlzIGIvaGVsZ3JpbmQvdGVzdHMvZmlsdGVyX3N0ZGVycl9zb2xhcmlzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQxZDFmMWUKLS0tIC9kZXYvbnVsbAorKysgYi9oZWxncmluZC90ZXN0cy9maWx0ZXJfc3RkZXJyX3NvbGFyaXMKQEAgLTAsMCArMSwzMyBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMgUmVwbGFjZSBwdGhyZWFkX2NyZWF0ZSB3aXRoIHB0aHJlYWRfY3JlYXRlQCogd2hpY2ggaXMgZXhwZWN0ZWQgb24gTGludXgKK3MvcHRocmVhZF9jcmVhdGUgXChoZ19pbnRlcmNlcHRzLmM6L3B0aHJlYWRfY3JlYXRlQCogXChoZ19pbnRlcmNlcHRzLmM6L2c7CisKKyMgV2UgbmVlZCB0byByZW1vdmUgc3RhY2sgZnJhbWVzIGNvbnRhaW5pbmcgcmVkdW5kYW50IGZ1bmN0aW9uCisjIG5hbWVzIGZyb20gbGliYywgZm9yIGV4YW1wbGUKKyMgICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfaW5pdCAoaW4gLy4uLmxpYmMuLi4pCitteSAkY2hlY2sgPSBqb2luICJ8IiwgKCdwdGhyZWFkX211dGV4X2luaXQnLCAncHRocmVhZF9jb25kX3dhaXQnLCAncHRocmVhZF9jb25kX3RpbWVkd2FpdCcpOworcy9eXHMqYnkgMHguLi4uLi4uLjogKD86JGNoZWNrKSBcKGluIFwvLi4ubGliYy4uLlwpXHMqLy87CisKKyMgV2UgYWxzbyBuZWVkIHRvIHJlcGxhY2UgU29sYXJpcyB0aHJlYWRpbmcgYW5kIHN5Y2hyb25pemF0aW9uIGZ1bmN0aW9uCisjIG5hbWVzIHdpdGggUE9TSVggb25lcyBmb3IgaGdfaW50ZXJjZXB0cy5jIHN0YWNrIGZyYW1lOgorIyAgICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOjEyMzQpCisjIFNlZSBhbHNvIGNvbW1lbnRzIGluIGhnX2ludGVyY2VwdHMuYy4KK215ICVyZWdleCA9ICgKKyAgICAnY29uZF9icm9hZGNhc3QnID0+ICdwdGhyZWFkX2NvbmRfYnJvYWRjYXN0QConLAorICAgICdjb25kX2Rlc3Ryb3knICAgPT4gJ3B0aHJlYWRfY29uZF9kZXN0cm95QConLAorICAgICdjb25kX3NpZ25hbCcgICAgPT4gJ3B0aHJlYWRfY29uZF9zaWduYWxAKicsCisgICAgJ2NvbmRfd2FpdCcgICAgICA9PiAncHRocmVhZF9jb25kX3dhaXRAKicsCisgICAgJ2NvbmRfdGltZWR3YWl0JyA9PiAncHRocmVhZF9jb25kX3RpbWVkd2FpdEAqJywKKyAgICAnbXV0ZXhfZGVzdHJveScgID0+ICdwdGhyZWFkX211dGV4X2Rlc3Ryb3knLAorICAgICdtdXRleF9pbml0JyAgICAgPT4gJ3B0aHJlYWRfbXV0ZXhfaW5pdCcsCisgICAgJ211dGV4X2xvY2snICAgICA9PiAncHRocmVhZF9tdXRleF9sb2NrJywKKyAgICAnbXV0ZXhfdHJ5bG9jaycgID0+ICdwdGhyZWFkX211dGV4X3RyeWxvY2snLAorICAgICdtdXRleF91bmxvY2snICAgPT4gJ3B0aHJlYWRfbXV0ZXhfdW5sb2NrJywKKyAgICAncndsb2NrX2luaXQnICAgID0+ICdwdGhyZWFkX3J3bG9ja19pbml0JywKKyAgICAncndfdW5sb2NrJyAgICAgID0+ICdwdGhyZWFkX3J3bG9ja191bmxvY2snCispOworbXkgJGNoZWNrID0gam9pbiAifCIsIGtleXMgJXJlZ2V4OworaWYgKCEgLzogcHRocmVhZF8vICYmICEgL1dSSy8pIHsKKyAgICBzLygkY2hlY2spKC4qaGdfaW50ZXJjZXB0cy5jKS8kcmVnZXh7JDF9JDIvZzsKK30KZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL2ZpbHRlcl94bWwgYi9oZWxncmluZC90ZXN0cy9maWx0ZXJfeG1sCmluZGV4IDI4MmRlNWMuLjZkZTA4MGEgMTAwNzU1Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL2ZpbHRlcl94bWwKKysrIGIvaGVsZ3JpbmQvdGVzdHMvZmlsdGVyX3htbApAQCAtMzksNyArMzksOCBAQAogICAgICJ0aHJlYWQgIyhbMC05XSspIiAgICAgID0+ICJ4IiwKICAgICAiMHgoWzAtOWEtekEtWl0rKSIgICAgICA9PiAiLi4uLi4uLi4iLAogICAgICJVc2luZyBWYWxncmluZC0oW15cXHNdKikiICAgID0+ICJYLlkuWCIsCi0gICAgIkNvcHlyaWdodCBcXChDXFwpIChbMC05XXs0fS1bMC05XXs0fSkuKiIgPT4gIlhYWFgtWVlZWSIKKyAgICAiQ29weXJpZ2h0IFxcKENcXCkgKFswLTldezR9LVswLTldezR9KS4qIiA9PiAiWFhYWC1ZWVlZIiwKKyAgICAnPGZuPnB0aHJlYWRfLiooQFwqKTwvZm4+JyAgPT4gIiIKICk7CiAKICMgTGlzdCBvZiBYTUwgc2VjdGlvbnMgdG8gYmUgaWdub3JlZC4KQEAgLTk3LDcgKzk4LDggQEAKICMgTWFzc2FnZSBsaW5lIGJ5IGFwcGx5aW5nIFBBVFRFUk5TLgogICAgIGZvcmVhY2ggbXkgJGtleSAoa2V5cyAlcGF0dGVybnMpIHsKICAgICAgICAgaWYgKCRsaW5lID1+ICRrZXkpIHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiBzLyQxLyRwYXR0ZXJuc3ska2V5fS9nOworICAgICAgICAgICBteSAkbWF0Y2hlZCA9IHF1b3RlbWV0YSgkMSk7CisgICAgICAgICAgICRsaW5lID1+IHMvJG1hdGNoZWQvJHBhdHRlcm5zeyRrZXl9L2c7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL2hnMDJfZGVhZGxvY2suc3RkZXJyLmV4cCBiL2hlbGdyaW5kL3Rlc3RzL2hnMDJfZGVhZGxvY2suc3RkZXJyLmV4cAppbmRleCA5ZWM1YThiLi5kOWFmNzhjIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy9oZzAyX2RlYWRsb2NrLnN0ZGVyci5leHAKKysrIGIvaGVsZ3JpbmQvdGVzdHMvaGcwMl9kZWFkbG9jay5zdGRlcnIuZXhwCkBAIC0xMSwzNiArMTEsNDIgQEAKIFRocmVhZCAjeDogbG9jayBvcmRlciAiMHguLi4uLi4uLiBiZWZvcmUgMHguLi4uLi4uLiIgdmlvbGF0ZWQKIAogT2JzZXJ2ZWQgKGluY29ycmVjdCkgb3JkZXIgaXM6IGFjcXVpc2l0aW9uIG9mIGxvY2sgYXQgMHguLi4uLi4uLgotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiB0MiAoaGcwMl9kZWFkbG9jay5jOjE5KQogICAgYnkgMHguLi4uLi4uLjogbXl0aHJlYWRfd3JhcHBlciAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIC4uLgogCiAgZm9sbG93ZWQgYnkgYSBsYXRlciBhY3F1aXNpdGlvbiBvZiBsb2NrIGF0IDB4Li4uLi4uLi4KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogdDIgKGhnMDJfZGVhZGxvY2suYzoyMCkKICAgIGJ5IDB4Li4uLi4uLi46IG15dGhyZWFkX3dyYXBwZXIgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICAuLi4KIAogUmVxdWlyZWQgb3JkZXIgd2FzIGVzdGFibGlzaGVkIGJ5IGFjcXVpc2l0aW9uIG9mIGxvY2sgYXQgMHguLi4uLi4uLgotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiB0MSAoaGcwMl9kZWFkbG9jay5jOjkpCiAgICBieSAweC4uLi4uLi4uOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgLi4uCiAKICBmb2xsb3dlZCBieSBhIGxhdGVyIGFjcXVpc2l0aW9uIG9mIGxvY2sgYXQgMHguLi4uLi4uLgotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiB0MSAoaGcwMl9kZWFkbG9jay5jOjEwKQogICAgYnkgMHguLi4uLi4uLjogbXl0aHJlYWRfd3JhcHBlciAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIC4uLgogCiAgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChoZzAyX2RlYWRsb2NrLmM6MzIpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGRhdGEgc3ltYm9sICJtMSIKIAogIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogdDEgKGhnMDJfZGVhZGxvY2suYzoxMCkKICAgIGJ5IDB4Li4uLi4uLi46IG15dGhyZWFkX3dyYXBwZXIgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICAuLi4KZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL2xvY2tlZF92c191bmxvY2tlZDFfZndkLnN0ZGVyci5leHAgYi9oZWxncmluZC90ZXN0cy9sb2NrZWRfdnNfdW5sb2NrZWQxX2Z3ZC5zdGRlcnIuZXhwCmluZGV4IDQyZmY1YWEuLmFiZTc0ODMgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL2xvY2tlZF92c191bmxvY2tlZDFfZndkLnN0ZGVyci5leHAKKysrIGIvaGVsZ3JpbmQvdGVzdHMvbG9ja2VkX3ZzX3VubG9ja2VkMV9md2Quc3RkZXJyLmV4cApAQCAtMTUsNyArMTUsOCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBjaGlsZF9mbiAobG9ja2VkX3ZzX3VubG9ja2VkMS5jOjE4KQogICAgYnkgMHguLi4uLi4uLjogbXl0aHJlYWRfd3JhcHBlciAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIC4uLgpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvbG9ja2VkX3ZzX3VubG9ja2VkMV9yZXYuc3RkZXJyLmV4cCBiL2hlbGdyaW5kL3Rlc3RzL2xvY2tlZF92c191bmxvY2tlZDFfcmV2LnN0ZGVyci5leHAKaW5kZXggNGVlYzU2Mi4uNWFlYmQ4OCAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvdGVzdHMvbG9ja2VkX3ZzX3VubG9ja2VkMV9yZXYuc3RkZXJyLmV4cAorKysgYi9oZWxncmluZC90ZXN0cy9sb2NrZWRfdnNfdW5sb2NrZWQxX3Jldi5zdGRlcnIuZXhwCkBAIC0xNSw3ICsxNSw4IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuIChsb2NrZWRfdnNfdW5sb2NrZWQxLmM6MTgpCiAgICBieSAweC4uLi4uLi4uOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgLi4uCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy9wdGhfY29uZF9kZXN0cm95X2J1c3kuc3RkZXJyLmV4cC1zb2xhcmlzIGIvaGVsZ3JpbmQvdGVzdHMvcHRoX2NvbmRfZGVzdHJveV9idXN5LnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTM1ZDRlCi0tLSAvZGV2L251bGwKKysrIGIvaGVsZ3JpbmQvdGVzdHMvcHRoX2NvbmRfZGVzdHJveV9idXN5LnN0ZGVyci5leHAtc29sYXJpcwpAQCAtMCwwICsxLDE2IEBACisKKy0tLVRocmVhZC1Bbm5vdW5jZW1lbnQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4IGlzIHRoZSBwcm9ncmFtJ3Mgcm9vdCB0aHJlYWQKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF9kZXN0cm95OiBkZXN0cnVjdGlvbiBvZiBjb25kaXRpb24gdmFyaWFibGUgYmVpbmcgd2FpdGVkIHVwb24KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9kZXN0cm95X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9kZXN0cm95QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChwdGhfY29uZF9kZXN0cm95X2J1c3kuYzo1MikKKworRmlyc3QgcHRocmVhZF9jb25kX2Rlc3Ryb3koKSBjYWxsIHJldHVybmVkIHN1Y2Nlc3MuCitTZWNvbmQgcHRocmVhZF9jb25kX2Rlc3Ryb3koKSBjYWxsIHJldHVybmVkIHN1Y2Nlc3MuCisKK0VSUk9SIFNVTU1BUlk6IDEgZXJyb3JzIGZyb20gMSBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy9wdGhfY29uZF9kZXN0cm95X2J1c3kudmd0ZXN0IGIvaGVsZ3JpbmQvdGVzdHMvcHRoX2NvbmRfZGVzdHJveV9idXN5LnZndGVzdAppbmRleCBjMmUzODBlLi40NWQ3ODUzIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy9wdGhfY29uZF9kZXN0cm95X2J1c3kudmd0ZXN0CisrKyBiL2hlbGdyaW5kL3Rlc3RzL3B0aF9jb25kX2Rlc3Ryb3lfYnVzeS52Z3Rlc3QKQEAgLTEgKzEsMiBAQAorcHJlcmVxOiAhIC4uLy4uL3Rlc3RzL29zX3Rlc3QgZGFyd2luCiBwcm9nOiAuLi8uLi9kcmQvdGVzdHMvcHRoX2NvbmRfZGVzdHJveV9idXN5CmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy9zYWZlLXB0aHJlYWQuaCBiL2hlbGdyaW5kL3Rlc3RzL3NhZmUtcHRocmVhZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMmM4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9oZWxncmluZC90ZXN0cy9zYWZlLXB0aHJlYWQuaApAQCAtMCwwICsxLDY5IEBACisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHNldGptcC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKK3N0YXRpYyBzaWdqbXBfYnVmIGVudjsKKworLyoKKyAqIFN0YXJ0aW5nIHdpdGggZ2xpYmMgMi4yMCBzb21lIHB0aHJlYWQgY2FsbHMgbWF5IGV4ZWN1dGUKKyAqIGFuIHhlbmQgaW5zdHJ1Y3Rpb24gdW5jb25kaXRpb25hbGx5IHdoZW4gYSBsb2NrIGlzIHVzZWQgaW4KKyAqIGEgd2F5IHRoYXQgaXMgaW52YWxpZCBzbyBkZWZpbmVkIGEgc2lnaWxsIGhhbmRsZXIgdGhhdCBjYW4KKyAqIGNvbnZlcnQgdGhlc2UgaW52YWxpZCBpbnN0cnVjdGlvbnMgdG8gYSBub3JtYWwgZXJyb3IuCisgKi8KK3N0YXRpYyB2b2lkIHNpZ2lsbF9oYW5kbGVyKCBpbnQgc2lnbnVtLCBzaWdpbmZvX3QgKnNpZ2luZm8sIHZvaWQgKnNpZ2NvbnRleHQgKSB7CisgICB1bnNpZ25lZCBjaGFyICpwYyA9IHNpZ2luZm8tPnNpX2FkZHI7CisgICBhc3NlcnQoIHBjWzBdID09IDB4MGYgJiYgcGNbMV0gPT0gMHgwMSAmJiBwY1syXSA9PSAweGQ1ICk7CisgICBzaWdsb25nam1wKCBlbnYsIEVQRVJNICk7Cit9CisKKy8qCisgKiBTYW1lIGFzIGFib3ZlLCBidXQgaW4gY2FzZSB3ZSBkbyByZWNvZ25pemUgdGhlIHhlbmQsCisgKiBidXQgZGV0ZWN0IGl0IGlzIGludmFsaWQgKHVzZWQgb3V0c2lkZSBhIHRyYW5zYWN0aW9uKQorICogYW5kIGdlbmVyYXRlIGEgc2Vndi4gIFVuZm9ydHVuYXRlbHkgdGhlbiBzaV9hZGRyIGlzLAorICoganVzdCB6ZXJvLCBzbyB3ZSBjYW5ub3QgYWRkIGFuIGFzc2VydC9zYW5pdHkgY2hlY2suCisgKi8KK3N0YXRpYyB2b2lkIHNlZ3ZfaGFuZGxlciggaW50IHNpZ251bSwgc2lnaW5mb190ICpzaWdpbmZvLCB2b2lkICpzaWdjb250ZXh0ICkgeworICAgc2lnbG9uZ2ptcCggZW52LCBFUEVSTSApOworfQorCisvKgorICogV3JhcHBlciBmb3IgcHRocmVhZF9yd2xvY2tfdW5sb2NrIHdoaWNoIG1heSBleGVjdXRlIHhlbmQKKyAqIHVuY29uZGl0aW9uYWxseSB3aGVuIHVzZWQgb24gYSBsb2NrIHRoYXQgaXMgbm90IGxvY2tlZC4KKyAqCisgKiBOb3RlIHRoYXQgd2UgcmV0dXJuIDAgaW5zdGVhZCBvZiBFUEVSTSBiZWNhdXNlIHRoYXQgaXMgd2hhdAorICogZ2xpYmMgbm9ybWFsbHkgZG9lcyAtIGVycm9yIHJlcG9ydGluZyBpcyBvcHRpb25hbC4KKyAqLworc3RhdGljIGludCBzYWZlX3B0aHJlYWRfcndsb2NrX3VubG9jayggcHRocmVhZF9yd2xvY2tfdCAqcndsb2NrICkgeworICAgc3RydWN0IHNpZ2FjdGlvbiBzYV9pbGwsIHNhX3NlZ3Y7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIG9sZHNhX2lsbCwgb2xkc2Ffc2VndjsKKyAgIGludCByOworCisgICBzYV9pbGwuc2FfaGFuZGxlciA9IE5VTEw7CisgICBzYV9pbGwuc2Ffc2lnYWN0aW9uID0gc2lnaWxsX2hhbmRsZXI7CisgICBzaWdlbXB0eXNldCggJnNhX2lsbC5zYV9tYXNrICk7CisgICBzYV9pbGwuc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgCisgICBzaWdhY3Rpb24oIFNJR0lMTCwgJnNhX2lsbCwgJm9sZHNhX2lsbCApOworCisgICBzYV9zZWd2LnNhX2hhbmRsZXIgPSBOVUxMOworICAgc2Ffc2Vndi5zYV9zaWdhY3Rpb24gPSBzZWd2X2hhbmRsZXI7CisgICBzaWdlbXB0eXNldCggJnNhX3NlZ3Yuc2FfbWFzayApOworICAgc2Ffc2Vndi5zYV9mbGFncyA9IFNBX1NJR0lORk87CisKKyAgIHNpZ2FjdGlvbiggU0lHU0VHViwgJnNhX3NlZ3YsICZvbGRzYV9zZWd2ICk7CisKKyAgIGlmICggKCByID0gc2lnc2V0am1wKCBlbnYsIDEgKSApID09IDAgKSB7CisgICAgIHIgPSBwdGhyZWFkX3J3bG9ja191bmxvY2soIHJ3bG9jayApOworICAgfSBlbHNlIHsKKyAgICAgciA9IDA7CisgICB9CisKKyAgIHNpZ2FjdGlvbiggU0lHSUxMLCAmb2xkc2FfaWxsLCBOVUxMICk7CisgICBzaWdhY3Rpb24oIFNJR1NFR1YsICZvbGRzYV9zZWd2LCBOVUxMICk7CisKKyAgIHJldHVybiByOworfQorCisjZGVmaW5lIHB0aHJlYWRfcndsb2NrX3VubG9jayBzYWZlX3B0aHJlYWRfcndsb2NrX3VubG9jawpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvc2FmZS1zZW1hcGhvcmUuaCBiL2hlbGdyaW5kL3Rlc3RzL3NhZmUtc2VtYXBob3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FhMGRjNAotLS0gL2Rldi9udWxsCisrKyBiL2hlbGdyaW5kL3Rlc3RzL3NhZmUtc2VtYXBob3JlLmgKQEAgLTAsMCArMSw0MSBAQAorI2luY2x1ZGUgPHNlbWFwaG9yZS5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHNldGptcC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKK3N0YXRpYyBzaWdqbXBfYnVmIGVudjsKKworLyoKKyAqIE5ld2VyIGdsaWJjIGNyYXNoZXMgb24gcmVhbGx5IGJvZ3VzIHNlbWFwaG9ycy4KKyAqIENhdGNoIGEgU0lHQUJSVCBhbmQgdHVybiBpdCBpbnRvIGEgRUlOVkFMLgorICovCitzdGF0aWMgdm9pZCBhYnJ0X2hhbmRsZXIoIGludCBzaWdudW0sIHNpZ2luZm9fdCAqc2lnaW5mbywgdm9pZCAqc2lnY29udGV4dCApIHsKKyAgIHNpZ2xvbmdqbXAoIGVudiwgRUlOVkFMICk7Cit9CisKK3N0YXRpYyBpbnQgc2FmZV9zZW1fcG9zdCggc2VtX3QgKnNlbSApIHsKKyAgIHN0cnVjdCBzaWdhY3Rpb24gc2E7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIG9sZHNhOworICAgaW50IHIsIGU7CisKKyAgIHNhLnNhX2hhbmRsZXIgPSBOVUxMOworICAgc2Euc2Ffc2lnYWN0aW9uID0gYWJydF9oYW5kbGVyOworICAgc2lnZW1wdHlzZXQoICZzYS5zYV9tYXNrICk7CisgICBzYS5zYV9mbGFncyA9IFNBX1NJR0lORk87CisKKyAgIHNpZ2FjdGlvbiggU0lHQUJSVCwgJnNhLCAmb2xkc2EgKTsKKworICAgaWYgKCAoIGUgPSBzaWdzZXRqbXAoIGVudiwgMSApICkgPT0gMCApIHsKKyAgICAgciA9IHNlbV9wb3N0KCBzZW0gKTsKKyAgIH0gZWxzZSB7CisgICAgIHIgPSAtMTsKKyAgIH0KKyAgIGVycm5vID0gZTsKKworICAgc2lnYWN0aW9uKCBTSUdBQlJULCAmb2xkc2EsIE5VTEwgKTsKKworICAgcmV0dXJuIHI7Cit9CisKKyNkZWZpbmUgc2VtX3Bvc3Qgc2FmZV9zZW1fcG9zdApkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMwNl90d29fcmFjZXNfeG1sLnN0ZGVyci5leHAgYi9oZWxncmluZC90ZXN0cy90YzA2X3R3b19yYWNlc194bWwuc3RkZXJyLmV4cAppbmRleCAwZmQ1Y2Q0Li5lNTk4MDliIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzA2X3R3b19yYWNlc194bWwuc3RkZXJyLmV4cAorKysgYi9oZWxncmluZC90ZXN0cy90YzA2X3R3b19yYWNlc194bWwuc3RkZXJyLmV4cApAQCAtNTcsNyArNTcsNyBAQAogICAgIDxmcmFtZT4KICAgICAgIDxpcD4weC4uLi4uLi4uPC9pcD4KICAgICAgIDxvYmo+Li4uPC9vYmo+Ci0gICAgICA8Zm4+cHRocmVhZF9jcmVhdGVAKjwvZm4+CisgICAgICA8Zm4+cHRocmVhZF9jcmVhdGU8L2ZuPgogICAgICAgPGRpcj4uLi48L2Rpcj4KICAgICAgIDxmaWxlPmhnX2ludGVyY2VwdHMuYzwvZmlsZT4KICAgICAgIDxsaW5lPi4uLjwvbGluZT4KZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMDdfaGJsMS5jIGIvaGVsZ3JpbmQvdGVzdHMvdGMwN19oYmwxLmMKaW5kZXggYzY2YjhlYy4uZTQ2YTQwNSAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvdGVzdHMvdGMwN19oYmwxLmMKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMwN19oYmwxLmMKQEAgLTE3LDYgKzE3LDggQEAKICN1bmRlZiBQTEFUX3MzOTB4X2xpbnV4CiAjdW5kZWYgUExBVF9taXBzMzJfbGludXgKICN1bmRlZiBQTEFUX3RpbGVneF9saW51eAorI3VuZGVmIFBMQVRfeDg2X3NvbGFyaXMKKyN1bmRlZiBQTEFUX2FtZDY0X3NvbGFyaXMKIAogI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBkZWZpbmVkKF9faTM4Nl9fKQogIyAgZGVmaW5lIFBMQVRfeDg2X2RhcndpbiAxCkBAIC00MCwxMCArNDIsMTUgQEAKICMgIGRlZmluZSBQTEFUX21pcHMzMl9saW51eCAxCiAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3RpbGVneF9fKQogIyAgZGVmaW5lIFBMQVRfdGlsZWd4X2xpbnV4IDEKKyNlbGlmIGRlZmluZWQoX19zdW5fXykgJiYgZGVmaW5lZChfX2kzODZfXykKKyMgIGRlZmluZSBQTEFUX3g4Nl9zb2xhcmlzIDEKKyNlbGlmIGRlZmluZWQoX19zdW5fXykgJiYgZGVmaW5lZChfX3g4Nl82NF9fKQorIyAgZGVmaW5lIFBMQVRfYW1kNjRfc29sYXJpcyAxCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoUExBVF9hbWQ2NF9saW51eCkgfHwgZGVmaW5lZChQTEFUX3g4Nl9saW51eCkgXAotICAgIHx8IGRlZmluZWQoUExBVF9hbWQ2NF9kYXJ3aW4pIHx8IGRlZmluZWQoUExBVF94ODZfZGFyd2luKQorICAgIHx8IGRlZmluZWQoUExBVF9hbWQ2NF9kYXJ3aW4pIHx8IGRlZmluZWQoUExBVF94ODZfZGFyd2luKSBcCisgICAgfHwgZGVmaW5lZChQTEFUX2FtZDY0X3NvbGFyaXMpIHx8IGRlZmluZWQoUExBVF94ODZfc29sYXJpcykKICMgIGRlZmluZSBJTkMoX2x2YWwsX2xxdWFsKSBcCiAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIFwKICAgICAgICJsb2NrIDsgaW5jbCAoJTApIiA6IC8qb3V0Ki8gOiAvKmluKi8iciIoJihfbHZhbCkpIDogIm1lbW9yeSIsICJjYyIgKQpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMwOF9oYmwyLmMgYi9oZWxncmluZC90ZXN0cy90YzA4X2hibDIuYwppbmRleCBkZGU5M2U4Li5jM2VhNDRjIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzA4X2hibDIuYworKysgYi9oZWxncmluZC90ZXN0cy90YzA4X2hibDIuYwpAQCAtMzQsNiArMzQsOCBAQAogI3VuZGVmIFBMQVRfbWlwczMyX2xpbnV4CiAjdW5kZWYgUExBVF9taXBzNjRfbGludXgKICN1bmRlZiBQTEFUX3RpbGVneF9saW51eAorI3VuZGVmIFBMQVRfeDg2X3NvbGFyaXMKKyN1bmRlZiBQTEFUX2FtZDY0X3NvbGFyaXMKIAogI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBkZWZpbmVkKF9faTM4Nl9fKQogIyAgZGVmaW5lIFBMQVRfeDg2X2RhcndpbiAxCkBAIC02MSwxMSArNjMsMTYgQEAKICNlbmRpZgogI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX190aWxlZ3hfXykKICMgIGRlZmluZSBQTEFUX3RpbGVneF9saW51eCAxCisjZWxpZiBkZWZpbmVkKF9fc3VuX18pICYmIGRlZmluZWQoX19pMzg2X18pCisjICBkZWZpbmUgUExBVF94ODZfc29sYXJpcyAxCisjZWxpZiBkZWZpbmVkKF9fc3VuX18pICYmIGRlZmluZWQoX194ODZfNjRfXykKKyMgIGRlZmluZSBQTEFUX2FtZDY0X3NvbGFyaXMgMQogI2VuZGlmCiAKIAogI2lmIGRlZmluZWQoUExBVF9hbWQ2NF9saW51eCkgfHwgZGVmaW5lZChQTEFUX3g4Nl9saW51eCkgXAotICAgIHx8IGRlZmluZWQoUExBVF9hbWQ2NF9kYXJ3aW4pIHx8IGRlZmluZWQoUExBVF94ODZfZGFyd2luKQorICAgIHx8IGRlZmluZWQoUExBVF9hbWQ2NF9kYXJ3aW4pIHx8IGRlZmluZWQoUExBVF94ODZfZGFyd2luKSBcCisgICAgfHwgZGVmaW5lZChQTEFUX2FtZDY0X3NvbGFyaXMpIHx8IGRlZmluZWQoUExBVF94ODZfc29sYXJpcykKICMgIGRlZmluZSBJTkMoX2x2YWwsX2xxdWFsKQkgICAgIFwKICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICggXAogICAgICAgImxvY2sgOyBpbmNsICglMCkiIDogLypvdXQqLyA6IC8qaW4qLyJyIigmKF9sdmFsKSkgOiAibWVtb3J5IiwgImNjIiApCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzA5X2JhZF91bmxvY2suc3RkZXJyLmV4cCBiL2hlbGdyaW5kL3Rlc3RzL3RjMDlfYmFkX3VubG9jay5zdGRlcnIuZXhwCmluZGV4IGJiNDkzMjQuLmExODQ1MGIgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL3RjMDlfYmFkX3VubG9jay5zdGRlcnIuZXhwCisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMDlfYmFkX3VubG9jay5zdGRlcnIuZXhwCkBAIC02LDcgKzYsOCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF91bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF91bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF91bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6MjcpCiAgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzA5X2JhZF91bmxvY2suYzo0OSkKICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCkBAIC0yOCw3ICsyOSw4IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCB1bmxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4gY3VycmVudGx5IGhlbGQgYnkgdGhyZWFkICN4Ci0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuICh0YzA5X2JhZF91bmxvY2suYzoxMSkKICAgIGJ5IDB4Li4uLi4uLi46IG15dGhyZWFkX3dyYXBwZXIgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICAuLi4KQEAgLTQzLDcgKzQ1LDggQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4IHVubG9ja2VkIGFuIGludmFsaWQgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzo0MSkKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjQ5KQogCkBAIC01MSw3ICs1NCw4IEBACiAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF91bmxvY2sgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjQxKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDkpCiAKQEAgLTU5LDcgKzYzLDggQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjI3KQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NTApCiAgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZApAQCAtNzMsMTggKzc4LDIxIEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeDogQXR0ZW1wdCB0byByZS1sb2NrIGEgbm9uLXJlY3Vyc2l2ZSBsb2NrIEkgYWxyZWFkeSBob2xkCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzozMikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjUwKQogIExvY2sgd2FzIHByZXZpb3VzbHkgYWNxdWlyZWQKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjMyKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDkpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4OiBCdWcgaW4gbGlicHRocmVhZDogcmVjdXJzaXZlIHdyaXRlIGxvY2sgZ3JhbnRlZCBvbiBtdXRleC93cmxvY2sgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCByZWN1cnNpb24KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjMyKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NTApCiAKQEAgLTk5LDcgKzEwNyw4IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCB1bmxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4gY3VycmVudGx5IGhlbGQgYnkgdGhyZWFkICN4Ci0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuICh0YzA5X2JhZF91bmxvY2suYzoxMSkKICAgIGJ5IDB4Li4uLi4uLi46IG15dGhyZWFkX3dyYXBwZXIgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICAuLi4KQEAgLTExNCw3ICsxMjMsOCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3ggdW5sb2NrZWQgYW4gaW52YWxpZCBsb2NrIGF0IDB4Li4uLi4uLi4KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjQxKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NTApCiAKQEAgLTEyMiw3ICsxMzIsOCBAQAogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdW5sb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzo0MSkKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjUwKQogCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzA5X2JhZF91bmxvY2suc3RkZXJyLmV4cC1zb2xhcmlzIGIvaGVsZ3JpbmQvdGVzdHMvdGMwOV9iYWRfdW5sb2NrLnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmFhNDIwCi0tLSAvZGV2L251bGwKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMwOV9iYWRfdW5sb2NrLnN0ZGVyci5leHAtc29sYXJpcwpAQCAtMCwwICsxLDE0NiBAQAorCistLS1UaHJlYWQtQW5ub3VuY2VtZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCBpcyB0aGUgcHJvZ3JhbSdzIHJvb3QgdGhyZWFkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzoyNykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjQ5KQorIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzoyMykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjQ5KQorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgI3gncyBzdGFjaworIGluIGZyYW1lICN4LCBjcmVhdGVkIGJ5IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzoxNikKKworCistLS1UaHJlYWQtQW5ub3VuY2VtZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB3YXMgY3JlYXRlZAorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NyZWF0ZUAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjM1KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDkpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4IHVubG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLiBjdXJyZW50bHkgaGVsZCBieSB0aHJlYWQgI3gKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuICh0YzA5X2JhZF91bmxvY2suYzoxMSkKKyAgIGJ5IDB4Li4uLi4uLi46IG15dGhyZWFkX3dyYXBwZXIgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICAuLi4KKyBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6MzEpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzA5X2JhZF91bmxvY2suYzo0OSkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkICN4J3Mgc3RhY2sKKyBpbiBmcmFtZSAjeCwgY3JlYXRlZCBieSBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6MTYpCisKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3ggdW5sb2NrZWQgYW4gaW52YWxpZCBsb2NrIGF0IDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzo0MSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjQ5KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF91bmxvY2sgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMSAoRVBFUk06IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjQxKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDkpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjI3KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NTApCisgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9pbml0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjIzKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDkpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAjeCdzIHN0YWNrCisgaW4gZnJhbWUgI3gsIGNyZWF0ZWQgYnkgbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjE2KQorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4OiBBdHRlbXB0IHRvIHJlLWxvY2sgYSBub24tcmVjdXJzaXZlIGxvY2sgSSBhbHJlYWR5IGhvbGQKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjMyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NTApCisgTG9jayB3YXMgcHJldmlvdXNseSBhY3F1aXJlZAorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6MzIpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzA5X2JhZF91bmxvY2suYzo0OSkKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3g6IEJ1ZyBpbiBsaWJwdGhyZWFkOiByZWN1cnNpdmUgd3JpdGUgbG9jayBncmFudGVkIG9uIG11dGV4L3dybG9jayB3aGljaCBkb2VzIG5vdCBzdXBwb3J0IHJlY3Vyc2lvbgorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6MzIpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzA5X2JhZF91bmxvY2suYzo1MCkKKworLS0tVGhyZWFkLUFubm91bmNlbWVudC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3ggd2FzIGNyZWF0ZWQKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jcmVhdGVAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzozNSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjUwKQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB1bmxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4gY3VycmVudGx5IGhlbGQgYnkgdGhyZWFkICN4CisgICBhdCAweC4uLi4uLi4uOiBtdXRleF91bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF91bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBjaGlsZF9mbiAodGMwOV9iYWRfdW5sb2NrLmM6MTEpCisgICBieSAweC4uLi4uLi4uOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgLi4uCisgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9pbml0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjMxKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDkpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAjeCdzIHN0YWNrCisgaW4gZnJhbWUgI3gsIGNyZWF0ZWQgYnkgbmVhcmx5X21haW4gKHRjMDlfYmFkX3VubG9jay5jOjE2KQorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4IHVubG9ja2VkIGFuIGludmFsaWQgbG9jayBhdCAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF91bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF91bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBuZWFybHlfbWFpbiAodGMwOV9iYWRfdW5sb2NrLmM6NDEpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzA5X2JhZF91bmxvY2suYzo1MCkKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdW5sb2NrIGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDEgKEVQRVJNOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzA5X2JhZF91bmxvY2suYzo0MSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMDlfYmFkX3VubG9jay5jOjUwKQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeDogRXhpdGluZyB0aHJlYWQgc3RpbGwgaG9sZHMgMSBsb2NrCisgICAuLi4KKworCitFUlJPUiBTVU1NQVJZOiAxMSBlcnJvcnMgZnJvbSAxMSBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzA5X2JhZF91bmxvY2sudmd0ZXN0IGIvaGVsZ3JpbmQvdGVzdHMvdGMwOV9iYWRfdW5sb2NrLnZndGVzdAppbmRleCBkMDlhNzAyLi5jMmVjMzM2IDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzA5X2JhZF91bmxvY2sudmd0ZXN0CisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMDlfYmFkX3VubG9jay52Z3Rlc3QKQEAgLTEgKzEsMiBAQAogcHJvZzogdGMwOV9iYWRfdW5sb2NrCit2Z29wdHM6IC0tZmFpci1zY2hlZD10cnkKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMTBfcmVjX2xvY2suc3RkZXJyLmV4cCBiL2hlbGdyaW5kL3Rlc3RzL3RjMTBfcmVjX2xvY2suc3RkZXJyLmV4cAppbmRleCAwZjUyYjNmLi4wOGU5Nzg5IDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzEwX3JlY19sb2NrLnN0ZGVyci5leHAKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMxMF9yZWNfbG9jay5zdGRlcnIuZXhwCkBAIC0xMyw3ICsxMyw4IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCB1bmxvY2tlZCBhIG5vdC1sb2NrZWQgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG5lYXJseV9tYWluICh0YzEwX3JlY19sb2NrLmM6NDIpCiAgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzEwX3JlY19sb2NrLmM6NDcpCiAgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZApAQCAtMjgsNyArMjksOCBAQAogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdW5sb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDEgKEVQRVJNOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbmVhcmx5X21haW4gKHRjMTBfcmVjX2xvY2suYzo0MikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTBfcmVjX2xvY2suYzo0NykKIApkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMxMV9YQ0hHLmMgYi9oZWxncmluZC90ZXN0cy90YzExX1hDSEcuYwppbmRleCA0ODFmOTE2Li4zMGZjY2VlIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzExX1hDSEcuYworKysgYi9oZWxncmluZC90ZXN0cy90YzExX1hDSEcuYwpAQCAtMTksNiArMTksOCBAQAogI3VuZGVmIFBMQVRfczM5MHhfbGludXgKICN1bmRlZiBQTEFUX21pcHMzMl9saW51eAogI3VuZGVmIFBMQVRfdGlsZWd4X2xpbnV4CisjdW5kZWYgUExBVF94ODZfc29sYXJpcworI3VuZGVmIFBMQVRfYW1kNjRfc29sYXJpcwogCiAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmIGRlZmluZWQoX19pMzg2X18pCiAjICBkZWZpbmUgUExBVF94ODZfZGFyd2luIDEKQEAgLTQyLDExICs0NCwxNiBAQAogIyAgZGVmaW5lIFBMQVRfbWlwczMyX2xpbnV4IDEKICNlbGlmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fdGlsZWd4X18pCiAjICBkZWZpbmUgUExBVF90aWxlZ3hfbGludXggMQorI2VsaWYgZGVmaW5lZChfX3N1bl9fKSAmJiBkZWZpbmVkKF9faTM4Nl9fKQorIyAgZGVmaW5lIFBMQVRfeDg2X3NvbGFyaXMgMQorI2VsaWYgZGVmaW5lZChfX3N1bl9fKSAmJiBkZWZpbmVkKF9feDg2XzY0X18pCisjICBkZWZpbmUgUExBVF9hbWQ2NF9zb2xhcmlzIDEKICNlbmRpZgogCiAKICNpZiBkZWZpbmVkKFBMQVRfYW1kNjRfbGludXgpIHx8IGRlZmluZWQoUExBVF94ODZfbGludXgpIFwKLSAgICB8fCBkZWZpbmVkKFBMQVRfYW1kNjRfZGFyd2luKSB8fCBkZWZpbmVkKFBMQVRfeDg2X2RhcndpbikKKyAgICB8fCBkZWZpbmVkKFBMQVRfYW1kNjRfZGFyd2luKSB8fCBkZWZpbmVkKFBMQVRfeDg2X2RhcndpbikgXAorICAgIHx8IGRlZmluZWQoUExBVF9hbWQ2NF9zb2xhcmlzKSB8fCBkZWZpbmVkKFBMQVRfeDg2X3NvbGFyaXMpCiAjICBkZWZpbmUgWENIR19NX1IoX2FkZHIsX2x2YWwpIFwKICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIFwKICAgICAgICAgInhjaGdsICUwLCAlMSIgXApkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMxMl9yd2xfdHJpdmlhbC5jIGIvaGVsZ3JpbmQvdGVzdHMvdGMxMl9yd2xfdHJpdmlhbC5jCmluZGV4IDNmZDY0YzUuLmE4NDQyOGUgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwuYworKysgYi9oZWxncmluZC90ZXN0cy90YzEyX3J3bF90cml2aWFsLmMKQEAgLTUsMTUgKzUsOSBAQAogI2RlZmluZSBfR05VX1NPVVJDRSAxCiAKICNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlICJzYWZlLXB0aHJlYWQuaCIKICNpbmNsdWRlIDxhc3NlcnQuaD4KIAotI2lmIGRlZmluZWQoVkdPX2RhcndpbikKLSNkZWZpbmUgT1NfSVNfREFSV0lOIDEKLSNlbHNlCi0jZGVmaW5lIE9TX0lTX0RBUldJTiAwCi0jZW5kaWYKLQogLyogRG8gdHJpdmlhbCBzdHVmZiB3aXRoIGEgcmVhZGVyLXdyaXRlciBsb2NrLiAqLwogCiBpbnQgbWFpbiAoIHZvaWQgKQpAQCAtMzIsNyArMjYsMTIgQEAKICAgciA9IHB0aHJlYWRfcndsb2NrX3VubG9jayggJnJ3bCApOyAgICAgIGFzc2VydChyID09IDApOwogCiAgIC8qIHRoaXMgc2hvdWxkIGZhaWwgLSBsb2NrIGlzIHVub3duZWQgbm93ICovCi0gIHIgPSBwdGhyZWFkX3J3bG9ja191bmxvY2soICZyd2wgKTsgICAgICBhc3NlcnQoT1NfSVNfREFSV0lOIHx8IHIgPT0gMCk7CisgIHIgPSBwdGhyZWFkX3J3bG9ja191bmxvY2soICZyd2wgKTsKKyNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCisgIGFzc2VydChyICE9IDApOworI2Vsc2UKKyAgYXNzZXJ0KHIgPT0gMCk7CisjZW5kaWYKIAogICByID0gcHRocmVhZF9yd2xvY2tfZGVzdHJveSggJnJ3bCApOyAgICAgYXNzZXJ0KHIgPT0gMCk7CiAKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwuc3RkZXJyLmV4cCBiL2hlbGdyaW5kL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwuc3RkZXJyLmV4cAppbmRleCAzNjFhNGQ2Li43NjYwN2UwIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzEyX3J3bF90cml2aWFsLnN0ZGVyci5leHAKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMxMl9yd2xfdHJpdmlhbC5zdGRlcnIuZXhwCkBAIC04LDEzICs4LDE0IEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTJfcndsX3RyaXZpYWwuYzozNSkKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMxMl9yd2xfdHJpdmlhbC5jOjI5KQogIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTJfcndsX3RyaXZpYWwuYzoyNCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTJfcndsX3RyaXZpYWwuYzoxOCkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkICN4J3Mgc3RhY2sKLSBpbiBmcmFtZSAjeCwgY3JlYXRlZCBieSBtYWluICh0YzEyX3J3bF90cml2aWFsLmM6MjApCisgaW4gZnJhbWUgI3gsIGNyZWF0ZWQgYnkgbWFpbiAodGMxMl9yd2xfdHJpdmlhbC5jOjE0KQogCiAKIApkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMxMl9yd2xfdHJpdmlhbC5zdGRlcnIuZXhwLXNvbGFyaXMgYi9oZWxncmluZC90ZXN0cy90YzEyX3J3bF90cml2aWFsLnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGUyNTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMxMl9yd2xfdHJpdmlhbC5zdGRlcnIuZXhwLXNvbGFyaXMKQEAgLTAsMCArMSwzMSBAQAorCistLS1UaHJlYWQtQW5ub3VuY2VtZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCBpcyB0aGUgcHJvZ3JhbSdzIHJvb3QgdGhyZWFkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTJfcndsX3RyaXZpYWwuYzoyOSkKKyBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzEyX3J3bF90cml2aWFsLmM6MTgpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAjeCdzIHN0YWNrCisgaW4gZnJhbWUgI3gsIGNyZWF0ZWQgYnkgbWFpbiAodGMxMl9yd2xfdHJpdmlhbC5jOjE0KQorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX3J3bG9ja191bmxvY2sgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMSAoRVBFUk06IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkKQorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMxMl9yd2xfdHJpdmlhbC5jOjI5KQorCisKK0VSUk9SIFNVTU1BUlk6IDIgZXJyb3JzIGZyb20gMiBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzEyX3J3bF90cml2aWFsLnZndGVzdCBiL2hlbGdyaW5kL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwudmd0ZXN0CmluZGV4IGZkY2Q2NDQuLmQwMDA5ZDggMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwudmd0ZXN0CisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMTJfcndsX3RyaXZpYWwudmd0ZXN0CkBAIC0xICsxLDIgQEAKK3Znb3B0czogLS1zaWdpbGwtZGlhZ25vc3RpY3M9bm8KIHByb2c6IHRjMTJfcndsX3RyaXZpYWwKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMTNfbGFvZzEuc3RkZXJyLmV4cCBiL2hlbGdyaW5kL3Rlc3RzL3RjMTNfbGFvZzEuc3RkZXJyLmV4cAppbmRleCAzZTU2ZjI1Li5kODY1MjcwIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzEzX2xhb2cxLnN0ZGVyci5leHAKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMxM19sYW9nMS5zdGRlcnIuZXhwCkBAIC04LDE5ICs4LDIzIEBACiBUaHJlYWQgI3g6IGxvY2sgb3JkZXIgIjB4Li4uLi4uLi4gYmVmb3JlIDB4Li4uLi4uLi4iIHZpb2xhdGVkCiAKIE9ic2VydmVkIChpbmNvcnJlY3QpIG9yZGVyIGlzOiBhY3F1aXNpdGlvbiBvZiBsb2NrIGF0IDB4Li4uLi4uLi4KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMxM19sYW9nMS5jOjIzKQogCiAgZm9sbG93ZWQgYnkgYSBsYXRlciBhY3F1aXNpdGlvbiBvZiBsb2NrIGF0IDB4Li4uLi4uLi4KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMxM19sYW9nMS5jOjI0KQogCiBSZXF1aXJlZCBvcmRlciB3YXMgZXN0YWJsaXNoZWQgYnkgYWNxdWlzaXRpb24gb2YgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTNfbGFvZzEuYzoxNykKIAogIGZvbGxvd2VkIGJ5IGEgbGF0ZXIgYWNxdWlzaXRpb24gb2YgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTNfbGFvZzEuYzoxOCkKIAogIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMTRfbGFvZ19kaW5waGlscy5zdGRlcnIuZXhwIGIvaGVsZ3JpbmQvdGVzdHMvdGMxNF9sYW9nX2RpbnBoaWxzLnN0ZGVyci5leHAKaW5kZXggM2JmMDJiZi4uZGEwN2ZmOSAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvdGVzdHMvdGMxNF9sYW9nX2RpbnBoaWxzLnN0ZGVyci5leHAKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMxNF9sYW9nX2RpbnBoaWxzLnN0ZGVyci5leHAKQEAgLTExLDEzICsxMSwxNSBAQAogVGhyZWFkICN4OiBsb2NrIG9yZGVyICIweC4uLi4uLi4uIGJlZm9yZSAweC4uLi4uLi4uIiB2aW9sYXRlZAogCiBPYnNlcnZlZCAoaW5jb3JyZWN0KSBvcmRlciBpczogYWNxdWlzaXRpb24gb2YgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IGRpbmUgKHRjMTRfbGFvZ19kaW5waGlscy5jOjIxKQogICAgYnkgMHguLi4uLi4uLjogbXl0aHJlYWRfd3JhcHBlciAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIC4uLgogCiAgZm9sbG93ZWQgYnkgYSBsYXRlciBhY3F1aXNpdGlvbiBvZiBsb2NrIGF0IDB4Li4uLi4uLi4KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogZGluZSAodGMxNF9sYW9nX2RpbnBoaWxzLmM6MjIpCiAgICBieSAweC4uLi4uLi4uOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgLi4uCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzE1X2xhb2dfbG9ja2RlbC5zdGRlcnIuZXhwIGIvaGVsZ3JpbmQvdGVzdHMvdGMxNV9sYW9nX2xvY2tkZWwuc3RkZXJyLmV4cAppbmRleCA5NDUwMTBlLi4yNjQ0ZTM3IDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzE1X2xhb2dfbG9ja2RlbC5zdGRlcnIuZXhwCisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMTVfbGFvZ19sb2NrZGVsLnN0ZGVyci5leHAKQEAgLTEwLDE5ICsxMCwyMyBAQAogVGhyZWFkICN4OiBsb2NrIG9yZGVyICIweC4uLi4uLi4uIGJlZm9yZSAweC4uLi4uLi4uIiB2aW9sYXRlZAogCiBPYnNlcnZlZCAoaW5jb3JyZWN0KSBvcmRlciBpczogYWNxdWlzaXRpb24gb2YgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTVfbGFvZ19sb2NrZGVsLmM6MzUpCiAKICBmb2xsb3dlZCBieSBhIGxhdGVyIGFjcXVpc2l0aW9uIG9mIGxvY2sgYXQgMHguLi4uLi4uLgotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzE1X2xhb2dfbG9ja2RlbC5jOjM2KQogCiBSZXF1aXJlZCBvcmRlciB3YXMgZXN0YWJsaXNoZWQgYnkgYWNxdWlzaXRpb24gb2YgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMTVfbGFvZ19sb2NrZGVsLmM6MjcpCiAKICBmb2xsb3dlZCBieSBhIGxhdGVyIGFjcXVpc2l0aW9uIG9mIGxvY2sgYXQgMHguLi4uLi4uLgotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzE1X2xhb2dfbG9ja2RlbC5jOjI4KQogCiAgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZApkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMxN19zZW1iYXIuYyBiL2hlbGdyaW5kL3Rlc3RzL3RjMTdfc2VtYmFyLmMKaW5kZXggN2IyMjgxNi4uODhhMWZlNSAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvdGVzdHMvdGMxN19zZW1iYXIuYworKysgYi9oZWxncmluZC90ZXN0cy90YzE3X3NlbWJhci5jCkBAIC0xMDQsNyArMTA0LDcgQEAKICAgICAgICAgICBteV9zZW1fd2FpdCAoYmFyLT5zZW0yKTsgLy8gMiBkb3duCiAgICAgICAgIH0KICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrICgmYmFyLT5tdXRleDEpOwotICAgICAgLyogq1Jlc3VsdGF0cyBwcm9mZXNzaW9ubmVscyG7ICBGaXJzdCB3ZSBtYWRlIHRoaXMgdGhyZWFkIGhhdmUgYW4KKyAgICAgIC8qICJSZXN1bHRhdHMgcHJvZmVzc2lvbm5lbHMhIiAgRmlyc3Qgd2UgbWFkZSB0aGlzIHRocmVhZCBoYXZlIGFuCiAgICAgICAgICBvYnZpb3VzIChUaHJjaGVjay12aXNpYmxlKSBkZXBlbmRlbmN5IG9uIGFsbCBvdGhlciB0aHJlYWRzCiAgICAgICAgICBjYWxsaW5nIGdvbXBfYmFycmllcl93YWl0LiAgVGhlbiwgd2UgcmVsZWFzZWQgdGhlbSBhbGwgYWdhaW4sCiAgICAgICAgICBzbyB0aGV5IGFsbCBoYXZlIGEgKHZpc2libGUpIGRlcGVuZGVuY3kgb24gdGhpcyB0aHJlYWQuCkBAIC0yMjIsNyArMjIyLDcgQEAKIHsKICAgIHNlbV90KiBzOwogCi0jaWYgZGVmaW5lZChWR09fbGludXgpCisjaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAgICBzID0gbWFsbG9jKHNpemVvZigqcykpOwogICAgaWYgKHMpIHsKICAgICAgIGlmIChzZW1faW5pdChzLCBwc2hhcmVkLCBjb3VudCkgPCAwKSB7CmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzE4X3NlbWFidXNlLmMgYi9oZWxncmluZC90ZXN0cy90YzE4X3NlbWFidXNlLmMKaW5kZXggNzM5NTI1MS4uNjIyNDJmMSAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvdGVzdHMvdGMxOF9zZW1hYnVzZS5jCisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMThfc2VtYWJ1c2UuYwpAQCAtMTEsNyArMTEsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzZW1hcGhvcmUuaD4KKyNpbmNsdWRlICJzYWZlLXNlbWFwaG9yZS5oIgogI2luY2x1ZGUgPHN0cmluZy5oPgogdm9pZCBzdGFydF93YXRjaGRvZyAoIHZvaWQgKTsKIGludCBtYWluICggdm9pZCApCkBAIC0zMiw2ICszMiw5IEBACiAgICAgIGl0IHN1Y2NlZWRzLiAqLwogICBtZW1zZXQoJnMxLCAweDU1LCBzaXplb2YoczEpKTsKICAgcj0gc2VtX3dhaXQoJnMxKTsgLyogYXNzZXJ0KHIgIT0gMCk7ICovCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAgYXNzZXJ0KHIgIT0gMCk7CisjZW5kaWYKIAogICAvKiB0aGlzIG9ubHkgZmFpbHMgd2l0aCBnbGliYyAyLjcgYW5kIGxhdGVyLiAqLwogICByPSBzZW1fcG9zdCgmczEpOwpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMxOF9zZW1hYnVzZS5zdGRlcnIuZXhwIGIvaGVsZ3JpbmQvdGVzdHMvdGMxOF9zZW1hYnVzZS5zdGRlcnIuZXhwCmluZGV4IDk1YjIyZTcuLjUwNmZhNzIgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL3RjMThfc2VtYWJ1c2Uuc3RkZXJyLmV4cAorKysgYi9oZWxncmluZC90ZXN0cy90YzE4X3NlbWFidXNlLnN0ZGVyci5leHAKQEAgLTI0LDcgKzI0LDggQEAKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQogICAgYXQgMHguLi4uLi4uLjogc2VtX3Bvc3RfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogc2VtX3Bvc3QgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzE4X3NlbWFidXNlLmM6MzcpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMThfc2VtYWJ1c2UuYzo0MCkKIAogCiBFUlJPUiBTVU1NQVJZOiAzIGVycm9ycyBmcm9tIDMgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMxOF9zZW1hYnVzZS5zdGRlcnIuZXhwLWxpbnV4LW1pcHMzMi1iIGIvaGVsZ3JpbmQvdGVzdHMvdGMxOF9zZW1hYnVzZS5zdGRlcnIuZXhwLWxpbnV4LW1pcHMzMi1iCmluZGV4IGNlODNhOWIuLjRlNDZlNWUgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL3RjMThfc2VtYWJ1c2Uuc3RkZXJyLmV4cC1saW51eC1taXBzMzItYgorKysgYi9oZWxncmluZC90ZXN0cy90YzE4X3NlbWFidXNlLnN0ZGVyci5leHAtbGludXgtbWlwczMyLWIKQEAgLTI0LDcgKzI0LDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSA4OSAoRU5PU1lTOiBGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQpCiAgICBhdCAweC4uLi4uLi4uOiBzZW1fcG9zdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBzZW1fcG9zdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMThfc2VtYWJ1c2UuYzozNykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMThfc2VtYWJ1c2UuYzo0MCkKIAogCiBFUlJPUiBTVU1NQVJZOiAzIGVycm9ycyBmcm9tIDMgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMxOF9zZW1hYnVzZS5zdGRlcnIuZXhwLXNvbGFyaXMgYi9oZWxncmluZC90ZXN0cy90YzE4X3NlbWFidXNlLnN0ZGVyci5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjc0ZWI4Ci0tLSAvZGV2L251bGwKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMxOF9zZW1hYnVzZS5zdGRlcnIuZXhwLXNvbGFyaXMKQEAgLTAsMCArMSwxNSBAQAorCistLS1UaHJlYWQtQW5ub3VuY2VtZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCBpcyB0aGUgcHJvZ3JhbSdzIHJvb3QgdGhyZWFkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBzZW1hX2luaXQgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKKyAgIGF0IDB4Li4uLi4uLi46IHNlbWFfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMxOF9zZW1hYnVzZS5jOjIzKQorCisKK0VSUk9SIFNVTU1BUlk6IDEgZXJyb3JzIGZyb20gMSBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzE5X3NoYWRvd21lbS5zdGRlcnIuZXhwIGIvaGVsZ3JpbmQvdGVzdHMvdGMxOV9zaGFkb3dtZW0uc3RkZXJyLmV4cAppbmRleCBjMTEzZWQ2Li5lNWZhYjZhIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzE5X3NoYWRvd21lbS5zdGRlcnIuZXhwCisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMTlfc2hhZG93bWVtLnN0ZGVyci5leHAKQEAgLTM1MTMsOSArMzUxMyw2IEBACiAgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzE5X3NoYWRvd21lbS5jOjE0NCkKICBCbG9jayB3YXMgYWxsb2MnZCBieSB0aHJlYWQgI3gKIAotCi1Nb3JlIHRoYW4gMTAwIGVycm9ycyBkZXRlY3RlZC4gIFN1YnNlcXVlbnQgZXJyb3JzCi13aWxsIHN0aWxsIGJlIHJlY29yZGVkLCBidXQgaW4gbGVzcyBkZXRhaWwgdGhhbiBiZWZvcmUuCiAtLS0tLS0tLS0tIHNob3J0IGdyYW4sIDEgLi4gOTgsIHNraXAgMSAtLS0tLS0tLS0tCiAtLS1UaHJlYWQtQW5ub3VuY2VtZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMTlfc2hhZG93bWVtLnN0ZGVyci5leHAtbWlwczMyIGIvaGVsZ3JpbmQvdGVzdHMvdGMxOV9zaGFkb3dtZW0uc3RkZXJyLmV4cC1taXBzMzIKaW5kZXggNWQxZDg5Ni4uZTY1MmQ2OCAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvdGVzdHMvdGMxOV9zaGFkb3dtZW0uc3RkZXJyLmV4cC1taXBzMzIKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMxOV9zaGFkb3dtZW0uc3RkZXJyLmV4cC1taXBzMzIKQEAgLTM3MDksOSArMzcwOSw2IEBACiAgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMxOV9zaGFkb3dtZW0uYzoxNDQpCiAKLQotTW9yZSB0aGFuIDEwMCBlcnJvcnMgZGV0ZWN0ZWQuICBTdWJzZXF1ZW50IGVycm9ycwotd2lsbCBzdGlsbCBiZSByZWNvcmRlZCwgYnV0IGluIGxlc3MgZGV0YWlsIHRoYW4gYmVmb3JlLgogLS0tLS0tLS0tLSBzaG9ydCBncmFuLCAxIC4uIDk4LCBza2lwIDEgLS0tLS0tLS0tLQogLS0tVGhyZWFkLUFubm91bmNlbWVudC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuYyBiL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5jCmluZGV4IDg3MThkMGIuLmY3MWM3ZjggMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5jCisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5jCkBAIC0xNSwxNCArMTUsMTkgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c2VtYXBob3JlLmg+CisjaW5jbHVkZSAic2FmZS1wdGhyZWFkLmgiCisjaW5jbHVkZSAic2FmZS1zZW1hcGhvcmUuaCIKIAogI2lmICFkZWZpbmVkKF9fQVBQTEVfXykKIAorI2lmIGRlZmluZWQoX19zdW5fXykKKy8qIEZha2UgX19HTElCQ19QUkVSRVEgb24gU29sYXJpcy4gUHJldGVuZCBnbGliYyA+PSAyLjQuICovCisjIGRlZmluZSBfX0dMSUJDX1BSRVJFUQorI2Vsc2UKICNpZiAhZGVmaW5lZChfX0dMSUJDX1BSRVJFUSkKICMgZXJyb3IgIlRoaXMgcHJvZ3JhbSBuZWVkcyBfX0dMSUJDX1BSRVJFUSAoaW4gL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgpIgogI2VuZGlmCisjZW5kaWYgLyogX19zdW5fXyAqLwogCiBzaG9ydCB1bnByb3RlY3RlZCA9IDA7CiAKQEAgLTg4LDcgKzkzLDEyIEBACiAgICAiXG4tLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfbXV0ZXhfbG9jayBldCBhbCAtLS0tLS0tLS0tLS0tLS0tXG5cbiIpOwogCiAgICAvKiBtYWtlIHB0aHJlYWRfbXV0ZXhfaW5pdCBmYWlsICovCisjaWYgZGVmaW5lZChfX3N1bl9fKQorICAgcHRocmVhZF9tdXRleGF0dHJfaW5pdCggJm14YSApOworICAgbWVtc2V0KCBteGEuX19wdGhyZWFkX211dGV4YXR0cnAsIDB4RkYsIDUgKiBzaXplb2YoaW50KSApOworI2Vsc2UKICAgIG1lbXNldCggJm14YSwgMHhGRiwgc2l6ZW9mKG14YSkgKTsKKyNlbmRpZgogICAgcj0gcHRocmVhZF9tdXRleF9pbml0KCAmbXgsICZteGEgKTsKICMgIGlmIF9fR0xJQkNfUFJFUkVRKDIsNCkKICAgIGFzc2VydChyKTsgLyogZ2xpYmMgPj0gMi40OiB0aGUgY2FsbCBzaG91bGQgZmFpbCAqLwpAQCAtMTkzLDcgKzIwMywxMiBAQAogICAgcj0gcHRocmVhZF9yd2xvY2tfdW5sb2NrKCAmcndsMiApOyBhc3NlcnQoIXIpOwogICAgLyogdW5sb2NrIGl0IGFnYWluLCBnZXQgYW4gZXJyb3IgKi8KICAgIGZwcmludGYoc3RkZXJyLCAiKDMpICAgIEVSUk9SIG9uIG5leHQgbGluZVxuIik7Ci0gICByPSBwdGhyZWFkX3J3bG9ja191bmxvY2soICZyd2wyICk7IGFzc2VydCghcik7CisgICByPSBwdGhyZWFkX3J3bG9ja191bmxvY2soICZyd2wyICk7CisjaWYgZGVmaW5lZChfX3N1bl9fKQorICAgYXNzZXJ0KHIpOworI2Vsc2UKKyAgIGFzc2VydCghcik7CisjZW5kaWYKIAogICAgLyogc2FtZSBnYW1lIHdpdGggci1sb2NrcyAqLwogICAgcj0gcHRocmVhZF9yd2xvY2tfaW5pdCggJnJ3bDIsIE5VTEwgKTsgYXNzZXJ0KCFyKTsKQEAgLTIwOSw3ICsyMjQsMTIgQEAKICAgIHI9IHB0aHJlYWRfcndsb2NrX3VubG9jayggJnJ3bDIgKTsgYXNzZXJ0KCFyKTsKICAgIC8qIHVubG9jayBpdCBhZ2FpbiwgZ2V0IGFuIGVycm9yICovCiAgICBmcHJpbnRmKHN0ZGVyciwgIig4KSAgICBFUlJPUiBvbiBuZXh0IGxpbmVcbiIpOwotICAgcj0gcHRocmVhZF9yd2xvY2tfdW5sb2NrKCAmcndsMiApOyBhc3NlcnQoIXIpOworICAgcj0gcHRocmVhZF9yd2xvY2tfdW5sb2NrKCAmcndsMiApOworI2lmIGRlZmluZWQoX19zdW5fXykKKyAgIGFzc2VydChyKTsKKyNlbHNlCisgICBhc3NlcnQoIXIpOworI2VuZGlmCiAKICAgIC8qIExvY2sgcndsMyBzbyB0aGUgbG9ja2VkLWxvY2stYXQtZGVhbGxvYyBjaGVjayBjYW4gY29tcGxhaW4gYWJvdXQKICAgICAgIGl0LiAqLwpkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAgYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cAppbmRleCA0ZDlmNGM0Li5kOTAxOWQ0IDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cAorKysgYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cApAQCAtMTQsMjEgKzE0LDIxIEBACiBUaHJlYWQgI3ggd2FzIGNyZWF0ZWQKICAgIC4uLgogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jcmVhdGVAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjc2KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODEpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUG9zc2libGUgZGF0YSByYWNlIGR1cmluZyB3cml0ZSBvZiBzaXplIDIgYXQgMHguLi4uLi4uLiBieSB0aHJlYWQgI3gKIExvY2tzIGhlbGQ6IG5vbmUKLSAgIGF0IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjc4KQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODMpCiAKIFRoaXMgY29uZmxpY3RzIHdpdGggYSBwcmV2aW91cyB3cml0ZSBvZiBzaXplIDIgYnkgdGhyZWFkICN4CiBMb2NrcyBoZWxkOiBub25lCi0gICBhdCAweC4uLi4uLi4uOiByYWN5X2NoaWxkICh0YzIwX3ZlcmlmeXdyYXAuYzozNCkKKyAgIGF0IDB4Li4uLi4uLi46IHJhY3lfY2hpbGQgKHRjMjBfdmVyaWZ5d3JhcC5jOjM5KQogICAgYnkgMHguLi4uLi4uLjogbXl0aHJlYWRfd3JhcHBlciAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIC4uLgogIExvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAidW5wcm90ZWN0ZWQiCi0gZGVjbGFyZWQgYXQgdGMyMF92ZXJpZnl3cmFwLmM6MjcKKyBkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzozMgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTM2LDcgKzM2LDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAzNSAoRURFQURMSzogUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2pvaW5fV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9qb2luIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODMpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo4OCkKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfbXV0ZXhfbG9jayBldCBhbCAtLS0tLS0tLS0tLS0tLS0tCkBAIC00Niw1NCArNDYsNjEgQEAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF9pbml0IGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDk1IChFT1BOT1RTVVBQOiBPcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiB0cmFuc3BvcnQgZW5kcG9pbnQpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo5MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwMikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3g6IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSBvZiBhIGxvY2tlZCBtdXRleAotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTAyKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfZGVzdHJveV9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMTIpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMTYgKEVCVVNZOiBEZXZpY2Ugb3IgcmVzb3VyY2UgYnVzeSkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwMikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2Rlc3Ryb3lfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTEyKQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF9sb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMDgpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjExOCkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayBmYWlsZWQKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90cnlsb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTE2KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdHJ5bG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RyeWxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMjYpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X3RpbWVkbG9jayBmYWlsZWQKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90aW1lZGxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMjEpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF90aW1lZGxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90aW1lZGxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMzEpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4IHVubG9ja2VkIGFuIGludmFsaWQgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyNSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzNSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdW5sb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyNSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzNSkKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfY29uZF93YWl0IGV0IGFsIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwMyw3ICsxMTAsNyBAQAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3RpbWVkfXdhaXQgY2FsbGVkIHdpdGggdW4taGVsZCBtdXRleAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE0NykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE1NykKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xMTEsMTQgKzExOCwxNCBAQAogICAgd2l0aCBlcnJvciBjb2RlIDEgKEVQRVJNOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCkKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNDcpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTcpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3NpZ25hbCxicm9hZGNhc3R9OiBkdWJpb3VzOiBhc3NvY2lhdGVkIGxvY2sgaXMgbm90IGhlbGQgYnkgYW55IHRocmVhZAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3NpZ25hbF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfc2lnbmFsQCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTIpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjIpCiAKIAogRklYTUU6IGNhbid0IGZpZ3VyZSBvdXQgaG93IHRvIHZlcmlmeSB3cmFwIG9mIHB0aHJlYWRfY29uZF9zaWduYWwKQEAgLTEyOCw3ICsxMzUsNyBAQAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3NpZ25hbCxicm9hZGNhc3R9OiBkdWJpb3VzOiBhc3NvY2lhdGVkIGxvY2sgaXMgbm90IGhlbGQgYnkgYW55IHRocmVhZAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX2Jyb2FkY2FzdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTgpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjgpCiAKIAogRklYTUU6IGNhbid0IGZpZ3VyZSBvdXQgaG93IHRvIHZlcmlmeSB3cmFwIG9mIHB0aHJlYWRfYnJvYWRjYXN0X3NpZ25hbApAQCAtMTM4LDcgKzE0NSw3IEBACiBUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97dGltZWR9d2FpdCBjYWxsZWQgd2l0aCB1bi1oZWxkIG11dGV4CiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE2NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3NSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xNDYsNyArMTUzLDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3RpbWVkd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjUpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNzUpCiAKIAogLS0tLS0tLS0tLS0tLS0tLSBwdGhyZWFkX3J3bG9ja18qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1NiwxMyArMTYzLDE0IEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3OSkKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTg5KQogIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3OCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4OCkKICBMb2NhdGlvbiAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGxvY2FsIHZhciAicndsIgotIGRlY2xhcmVkIGF0IHRjMjBfdmVyaWZ5d3JhcC5jOjQ3LCBpbiBmcmFtZSAjeCBvZiB0aHJlYWQgeAorIGRlY2xhcmVkIGF0IHRjMjBfdmVyaWZ5d3JhcC5jOjUyLCBpbiBmcmFtZSAjeCBvZiB0aHJlYWQgeAogCiAKICgxKSBubyBlcnJvciBvbiBuZXh0IGxpbmUKQEAgLTE3MywxMyArMTgxLDE0IEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE5NikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjA2KQogIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4NikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE5NikKICBMb2NhdGlvbiAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGxvY2FsIHZhciAicndsMiIKLSBkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzo0OCwgaW4gZnJhbWUgI3ggb2YgdGhyZWFkIHgKKyBkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzo1MywgaW4gZnJhbWUgI3ggb2YgdGhyZWFkIHgKIAogCiAoNCkgbm8gZXJyb3Igb24gbmV4dCBsaW5lCkBAIC0xOTIsMTMgKzIwMSwxNCBAQAogVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyMTIpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjIyNykKICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODYpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxOTYpCiAgTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBsb2NhbCB2YXIgInJ3bDIiCi0gZGVjbGFyZWQgYXQgdGMyMF92ZXJpZnl3cmFwLmM6NDgsIGluIGZyYW1lICN4IG9mIHRocmVhZCB4CisgZGVjbGFyZWQgYXQgdGMyMF92ZXJpZnl3cmFwLmM6NTMsIGluIGZyYW1lICN4IG9mIHRocmVhZCB4CiAKIAogCkBAIC0yMTAsNyArMjIwLDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQogICAgYXQgMHguLi4uLi4uLjogc2VtX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogc2VtX2luaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjIyOCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI0OCkKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2Ygc2VtX2Rlc3Ryb3kKQEAgLTIyMCw3ICsyMzAsNyBAQAogVGhyZWFkICN4OiBCdWcgaW4gbGlicHRocmVhZDogc2VtX3dhaXQgc3VjY2VlZGVkIG9uIHNlbWFwaG9yZSB3aXRob3V0IHByaW9yIHNlbV9wb3N0CiAgICBhdCAweC4uLi4uLi4uOiBzZW1fd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBzZW1fd2FpdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI0MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI2MikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0yMjgsNyArMjM4LDggQEAKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQogICAgYXQgMHguLi4uLi4uLjogc2VtX3Bvc3RfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogc2VtX3Bvc3QgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyNDUpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI2NSkKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2Ygc2VtX3Bvc3QKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLWdsaWJjLTIuMTggYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1nbGliYy0yLjE4CmluZGV4IDdkZjNmYTEuLmYxMDk2NzMgMTAwNjQ0Ci0tLSBhL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLWdsaWJjLTIuMTgKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAtZ2xpYmMtMi4xOApAQCAtMTQsMjEgKzE0LDIxIEBACiBUaHJlYWQgI3ggd2FzIGNyZWF0ZWQKICAgIC4uLgogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jcmVhdGVAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjc2KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODEpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUG9zc2libGUgZGF0YSByYWNlIGR1cmluZyB3cml0ZSBvZiBzaXplIDIgYXQgMHguLi4uLi4uLiBieSB0aHJlYWQgI3gKIExvY2tzIGhlbGQ6IG5vbmUKLSAgIGF0IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjc4KQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODMpCiAKIFRoaXMgY29uZmxpY3RzIHdpdGggYSBwcmV2aW91cyB3cml0ZSBvZiBzaXplIDIgYnkgdGhyZWFkICN4CiBMb2NrcyBoZWxkOiBub25lCi0gICBhdCAweC4uLi4uLi4uOiByYWN5X2NoaWxkICh0YzIwX3ZlcmlmeXdyYXAuYzozNCkKKyAgIGF0IDB4Li4uLi4uLi46IHJhY3lfY2hpbGQgKHRjMjBfdmVyaWZ5d3JhcC5jOjM5KQogICAgYnkgMHguLi4uLi4uLjogbXl0aHJlYWRfd3JhcHBlciAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIC4uLgogIExvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAidW5wcm90ZWN0ZWQiCi0gZGVjbGFyZWQgYXQgdGMyMF92ZXJpZnl3cmFwLmM6MjcKKyBkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzozMgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTM2LDcgKzM2LDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAzNSAoRURFQURMSzogUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2pvaW5fV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9qb2luIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODMpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo4OCkKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfbXV0ZXhfbG9jayBldCBhbCAtLS0tLS0tLS0tLS0tLS0tCkBAIC00Niw0NyArNDYsNTMgQEAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF9pbml0IGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDk1IChFT1BOT1RTVVBQOiBPcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiB0cmFuc3BvcnQgZW5kcG9pbnQpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo5MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwMikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3g6IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSBvZiBhIGxvY2tlZCBtdXRleAotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTAyKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfZGVzdHJveV9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMTIpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X2xvY2sgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwOCkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTE4KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF90cnlsb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RyeWxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMTYpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF90cnlsb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyNikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdGltZWRsb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RpbWVkbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyMSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3RpbWVkbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RpbWVkbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzMSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3ggdW5sb2NrZWQgYW4gaW52YWxpZCBsb2NrIGF0IDB4Li4uLi4uLi4KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTI1KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTM1KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF91bmxvY2sgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTI1KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTM1KQogCiAKIC0tLS0tLS0tLS0tLS0tLS0gcHRocmVhZF9jb25kX3dhaXQgZXQgYWwgLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTYsNyArMTAyLDcgQEAKIFRocmVhZCAjeDogcHRocmVhZF9jb25kX3t0aW1lZH13YWl0IGNhbGxlZCB3aXRoIHVuLWhlbGQgbXV0ZXgKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNDcpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTcpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMTA0LDE0ICsxMTAsMTQgQEAKICAgIHdpdGggZXJyb3IgY29kZSAxIChFUEVSTTogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTQ3KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTU3KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeDogcHRocmVhZF9jb25kX3tzaWduYWwsYnJvYWRjYXN0fTogZHViaW91czogYXNzb2NpYXRlZCBsb2NrIGlzIG5vdCBoZWxkIGJ5IGFueSB0aHJlYWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9zaWduYWxfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3NpZ25hbEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTUyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTYyKQogCiAKIEZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBwdGhyZWFkX2NvbmRfc2lnbmFsCkBAIC0xMjEsNyArMTI3LDcgQEAKIFRocmVhZCAjeDogcHRocmVhZF9jb25kX3tzaWduYWwsYnJvYWRjYXN0fTogZHViaW91czogYXNzb2NpYXRlZCBsb2NrIGlzIG5vdCBoZWxkIGJ5IGFueSB0aHJlYWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9icm9hZGNhc3RfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX2Jyb2FkY2FzdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTU4KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTY4KQogCiAKIEZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBwdGhyZWFkX2Jyb2FkY2FzdF9zaWduYWwKQEAgLTEzMSw3ICsxMzcsNyBAQAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3RpbWVkfXdhaXQgY2FsbGVkIHdpdGggdW4taGVsZCBtdXRleAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3RpbWVkd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjUpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNzUpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMTM5LDcgKzE0NSw3IEBACiAgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3RpbWVkd2FpdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTY1KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTc1KQogCiAKIC0tLS0tLS0tLS0tLS0tLS0gcHRocmVhZF9yd2xvY2tfKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0xNDksMTEgKzE1NSwxMiBAQAogVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNzkpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4OSkKICAgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTc4KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTg4KQogCiAoMSkgbm8gZXJyb3Igb24gbmV4dCBsaW5lCiAoMikgbm8gZXJyb3Igb24gbmV4dCBsaW5lCkBAIC0xNjMsMTEgKzE3MCwxMiBAQAogVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxOTYpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjIwNikKICAgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTg2KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTk2KQogCiAoNCkgbm8gZXJyb3Igb24gbmV4dCBsaW5lCiAoNSkgbm8gZXJyb3Igb24gbmV4dCBsaW5lCkBAIC0xNzksMTEgKzE4NywxMSBAQAogVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyMTIpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyMjcpCiAgIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4NikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE5NikKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHNlbV8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NCw3ICsyMDIsNyBAQAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCiAgICBhdCAweC4uLi4uLi4uOiBzZW1faW5pdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBzZW1faW5pdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjI4KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjQzKQogCiAKIEZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBzZW1fZGVzdHJveQpAQCAtMjA0LDcgKzIxMiw3IEBACiBUaHJlYWQgI3g6IEJ1ZyBpbiBsaWJwdGhyZWFkOiBzZW1fd2FpdCBzdWNjZWVkZWQgb24gc2VtYXBob3JlIHdpdGhvdXQgcHJpb3Igc2VtX3Bvc3QKICAgIGF0IDB4Li4uLi4uLi46IHNlbV93YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHNlbV93YWl0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjQyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjU3KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTIxMiw3ICsyMjAsNyBAQAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCiAgICBhdCAweC4uLi4uLi4uOiBzZW1fcG9zdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBzZW1fcG9zdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI0NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI2MCkKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2Ygc2VtX3Bvc3QKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLWdsaWJjLTIuMjEgYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1nbGliYy0yLjIxCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNGViMjEKLS0tIC9kZXYvbnVsbAorKysgYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1nbGliYy0yLjIxCkBAIC0wLDAgKzEsMjQ3IEBACisKKworCistLS0tLS0gVGhpcyBpcyBvdXRwdXQgZm9yID49IGdsaWJjIDIuNCAtLS0tLS0KKworLS0tLS0tLS0tLS0tLS0tLSBwdGhyZWFkX2NyZWF0ZS9qb2luIC0tLS0tLS0tLS0tLS0tLS0KKworLS0tVGhyZWFkLUFubm91bmNlbWVudC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3ggaXMgdGhlIHByb2dyYW0ncyByb290IHRocmVhZAorCistLS1UaHJlYWQtQW5ub3VuY2VtZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB3YXMgY3JlYXRlZAorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NyZWF0ZUAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODEpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUG9zc2libGUgZGF0YSByYWNlIGR1cmluZyB3cml0ZSBvZiBzaXplIDIgYXQgMHguLi4uLi4uLiBieSB0aHJlYWQgI3gKK0xvY2tzIGhlbGQ6IG5vbmUKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjgzKQorCitUaGlzIGNvbmZsaWN0cyB3aXRoIGEgcHJldmlvdXMgd3JpdGUgb2Ygc2l6ZSAyIGJ5IHRocmVhZCAjeAorTG9ja3MgaGVsZDogbm9uZQorICAgYXQgMHguLi4uLi4uLjogcmFjeV9jaGlsZCAodGMyMF92ZXJpZnl3cmFwLmM6MzkpCisgICBieSAweC4uLi4uLi4uOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgLi4uCisgTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWwgdmFyICJ1bnByb3RlY3RlZCIKKyBkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzozMgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9qb2luIGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDM1IChFREVBRExLOiBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cikKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfam9pbl9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2pvaW4gKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo4OCkKKworCistLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfbXV0ZXhfbG9jayBldCBhbCAtLS0tLS0tLS0tLS0tLS0tCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X2luaXQgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgOTUgKEVPUE5PVFNVUFA6IE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCkKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwMikKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3g6IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSBvZiBhIGxvY2tlZCBtdXRleAorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfZGVzdHJveV9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMTIpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMTYgKEVCVVNZOiBEZXZpY2Ugb3IgcmVzb3VyY2UgYnVzeSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2Rlc3Ryb3lfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTEyKQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF9sb2NrIGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjExOCkKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayBmYWlsZWQKKyAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdHJ5bG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RyeWxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMjYpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X3RpbWVkbG9jayBmYWlsZWQKKyAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdGltZWRsb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdGltZWRsb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTMxKQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB1bmxvY2tlZCBhbiBpbnZhbGlkIGxvY2sgYXQgMHguLi4uLi4uLgorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTM1KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF91bmxvY2sgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzNSkKKworCistLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfY29uZF93YWl0IGV0IGFsIC0tLS0tLS0tLS0tLS0tLS0KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97dGltZWR9d2FpdCBjYWxsZWQgd2l0aCB1bi1oZWxkIG11dGV4CisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTU3KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9jb25kX3dhaXQgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMSAoRVBFUk06IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkKQorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE1NykKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97c2lnbmFsLGJyb2FkY2FzdH06IGR1YmlvdXM6IGFzc29jaWF0ZWQgbG9jayBpcyBub3QgaGVsZCBieSBhbnkgdGhyZWFkCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfc2lnbmFsX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9zaWduYWxAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE2MikKKworCitGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2YgcHRocmVhZF9jb25kX3NpZ25hbAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeDogcHRocmVhZF9jb25kX3tzaWduYWwsYnJvYWRjYXN0fTogZHViaW91czogYXNzb2NpYXRlZCBsb2NrIGlzIG5vdCBoZWxkIGJ5IGFueSB0aHJlYWQKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9icm9hZGNhc3RfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX2Jyb2FkY2FzdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTY4KQorCisKK0ZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBwdGhyZWFkX2Jyb2FkY2FzdF9zaWduYWwKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97dGltZWR9d2FpdCBjYWxsZWQgd2l0aCB1bi1oZWxkIG11dGV4CisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3NSkKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfY29uZF90aW1lZHdhaXQgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3RpbWVkd2FpdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTc1KQorCisKKy0tLS0tLS0tLS0tLS0tLS0gcHRocmVhZF9yd2xvY2tfKiAtLS0tLS0tLS0tLS0tLS0tCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4OSkKKyBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODgpCisgTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBsb2NhbCB2YXIgInJ3bCIKKyBkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzo1MiwgaW4gZnJhbWUgI3ggb2YgdGhyZWFkIHgKKworCisoMSkgbm8gZXJyb3Igb24gbmV4dCBsaW5lCisoMikgbm8gZXJyb3Igb24gbmV4dCBsaW5lCisoMykgICAgRVJST1Igb24gbmV4dCBsaW5lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB1bmxvY2tlZCBhIG5vdC1sb2NrZWQgbG9jayBhdCAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyMDYpCisgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTk2KQorIExvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgbG9jYWwgdmFyICJyd2wyIgorIGRlY2xhcmVkIGF0IHRjMjBfdmVyaWZ5d3JhcC5jOjUzLCBpbiBmcmFtZSAjeCBvZiB0aHJlYWQgeAorCisKKyg0KSBubyBlcnJvciBvbiBuZXh0IGxpbmUKKyg1KSBubyBlcnJvciBvbiBuZXh0IGxpbmUKKyg2KSBubyBlcnJvciBvbiBuZXh0IGxpbmUKKyg3KSBubyBlcnJvciBvbiBuZXh0IGxpbmUKKyg4KSAgICBFUlJPUiBvbiBuZXh0IGxpbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4IHVubG9ja2VkIGEgbm90LWxvY2tlZCBsb2NrIGF0IDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjIyNykKKyBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxOTYpCisgTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBsb2NhbCB2YXIgInJ3bDIiCisgZGVjbGFyZWQgYXQgdGMyMF92ZXJpZnl3cmFwLmM6NTMsIGluIGZyYW1lICN4IG9mIHRocmVhZCB4CisKKworCistLS0tLS0tLS0tLS0tLS0tIHNlbV8qIC0tLS0tLS0tLS0tLS0tLS0KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3gncyBjYWxsIHRvIHNlbV9pbml0IGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCisgICBhdCAweC4uLi4uLi4uOiBzZW1faW5pdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBzZW1faW5pdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjQ4KQorCisKK0ZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBzZW1fZGVzdHJveQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeDogQnVnIGluIGxpYnB0aHJlYWQ6IHNlbV93YWl0IHN1Y2NlZWRlZCBvbiBzZW1hcGhvcmUgd2l0aG91dCBwcmlvciBzZW1fcG9zdAorICAgYXQgMHguLi4uLi4uLjogc2VtX3dhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogc2VtX3dhaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyNjIpCisKKworRklYTUU6IGNhbid0IGZpZ3VyZSBvdXQgaG93IHRvIHZlcmlmeSB3cmFwIG9mIHNlbV9wb3N0CisKKworLS0tLS0tLS0tLS0tIGRlYWxsb2Mgb2YgbWVtIGhvbGRpbmcgbG9ja3MgLS0tLS0tLS0tLS0tCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4OiBFeGl0aW5nIHRocmVhZCBzdGlsbCBob2xkcyAxIGxvY2sKKyAgIC4uLgorCisKK0VSUk9SIFNVTU1BUlk6IDIyIGVycm9ycyBmcm9tIDIyIGNvbnRleHRzIChzdXBwcmVzc2VkOiAwIGZyb20gMCkKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLW1pcHMzMiBiL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLW1pcHMzMgppbmRleCA4NjI4NDk4Li41MmYwYjI3IDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1taXBzMzIKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAtbWlwczMyCkBAIC0xNSwyMiArMTUsMjIgQEAKICAgIC4uLgogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jcmVhdGVfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jcmVhdGVAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjc2KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODEpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUG9zc2libGUgZGF0YSByYWNlIGR1cmluZyB3cml0ZSBvZiBzaXplIDIgYXQgMHguLi4uLi4uLiBieSB0aHJlYWQgI3gKIExvY2tzIGhlbGQ6IG5vbmUKLSAgIGF0IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjc4KQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODMpCiAKIFRoaXMgY29uZmxpY3RzIHdpdGggYSBwcmV2aW91cyB3cml0ZSBvZiBzaXplIDIgYnkgdGhyZWFkICN4CiBMb2NrcyBoZWxkOiBub25lCi0gICBhdCAweC4uLi4uLi4uOiByYWN5X2NoaWxkICh0YzIwX3ZlcmlmeXdyYXAuYzozNCkKKyAgIGF0IDB4Li4uLi4uLi46IHJhY3lfY2hpbGQgKHRjMjBfdmVyaWZ5d3JhcC5jOjM5KQogICAgYnkgMHguLi4uLi4uLjogbXl0aHJlYWRfd3JhcHBlciAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIC4uLgogCiBMb2NhdGlvbiAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGdsb2JhbCB2YXIgInVucHJvdGVjdGVkIgotZGVjbGFyZWQgYXQgdGMyMF92ZXJpZnl3cmFwLmM6MjcKK2RlY2xhcmVkIGF0IHRjMjBfdmVyaWZ5d3JhcC5jOjMyCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMzgsNyArMzgsNyBAQAogICAgd2l0aCBlcnJvciBjb2RlIDQ1IChFREVBRExLOiBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cikKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfam9pbl9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2pvaW4gKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo4MykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjg4KQogCiAKIC0tLS0tLS0tLS0tLS0tLS0gcHRocmVhZF9tdXRleF9sb2NrIGV0IGFsIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ4LDU0ICs0OCw2MSBAQAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X2luaXQgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMTIyIChFT1BOT1RTVVBQOiBPcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiB0cmFuc3BvcnQgZW5kcG9pbnQpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo5MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwMikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3g6IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSBvZiBhIGxvY2tlZCBtdXRleAotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTAyKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfZGVzdHJveV9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMTIpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMTYgKEVCVVNZOiBEZXZpY2Ugb3IgcmVzb3VyY2UgYnVzeSkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwMikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2Rlc3Ryb3lfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTEyKQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF9sb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMDgpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjExOCkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayBmYWlsZWQKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90cnlsb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTE2KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdHJ5bG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RyeWxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMjYpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X3RpbWVkbG9jayBmYWlsZWQKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90aW1lZGxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMjEpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF90aW1lZGxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90aW1lZGxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMzEpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4IHVubG9ja2VkIGFuIGludmFsaWQgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyNSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzNSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdW5sb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyNSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzNSkKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfY29uZF93YWl0IGV0IGFsIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwNSw3ICsxMTIsNyBAQAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3RpbWVkfXdhaXQgY2FsbGVkIHdpdGggdW4taGVsZCBtdXRleAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE0NykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE1NykKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xMTMsMTQgKzEyMCwxNCBAQAogICAgd2l0aCBlcnJvciBjb2RlIDEgKEVQRVJNOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCkKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNDcpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTcpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3NpZ25hbCxicm9hZGNhc3R9OiBkdWJpb3VzOiBhc3NvY2lhdGVkIGxvY2sgaXMgbm90IGhlbGQgYnkgYW55IHRocmVhZAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3NpZ25hbF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfc2lnbmFsQCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTIpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjIpCiAKIAogRklYTUU6IGNhbid0IGZpZ3VyZSBvdXQgaG93IHRvIHZlcmlmeSB3cmFwIG9mIHB0aHJlYWRfY29uZF9zaWduYWwKQEAgLTEzMCw3ICsxMzcsNyBAQAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3NpZ25hbCxicm9hZGNhc3R9OiBkdWJpb3VzOiBhc3NvY2lhdGVkIGxvY2sgaXMgbm90IGhlbGQgYnkgYW55IHRocmVhZAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX2Jyb2FkY2FzdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTgpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjgpCiAKIAogRklYTUU6IGNhbid0IGZpZ3VyZSBvdXQgaG93IHRvIHZlcmlmeSB3cmFwIG9mIHB0aHJlYWRfYnJvYWRjYXN0X3NpZ25hbApAQCAtMTQwLDcgKzE0Nyw3IEBACiBUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97dGltZWR9d2FpdCBjYWxsZWQgd2l0aCB1bi1oZWxkIG11dGV4CiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE2NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3NSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xNDgsNyArMTU1LDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3RpbWVkd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjUpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNzUpCiAKIAogLS0tLS0tLS0tLS0tLS0tLSBwdGhyZWFkX3J3bG9ja18qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1OCwxMSArMTY1LDEyIEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3OSkKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTg5KQogICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNzgpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODgpCiAKICgxKSBubyBlcnJvciBvbiBuZXh0IGxpbmUKICgyKSBubyBlcnJvciBvbiBuZXh0IGxpbmUKQEAgLTE3MiwxMSArMTgwLDEyIEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE5NikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjA2KQogICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODYpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxOTYpCiAKICg0KSBubyBlcnJvciBvbiBuZXh0IGxpbmUKICg1KSBubyBlcnJvciBvbiBuZXh0IGxpbmUKQEAgLTE4OCwxMSArMTk3LDEyIEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjIxMikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjI3KQogICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODYpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxOTYpCiAKIAogLS0tLS0tLS0tLS0tLS0tLSBzZW1fKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDMsNyArMjEzLDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQogICAgYXQgMHguLi4uLi4uLjogc2VtX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogc2VtX2luaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjIyOCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI0MykKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2Ygc2VtX2Rlc3Ryb3kKQEAgLTIxMyw3ICsyMjMsNyBAQAogVGhyZWFkICN4OiBCdWcgaW4gbGlicHRocmVhZDogc2VtX3dhaXQgc3VjY2VlZGVkIG9uIHNlbWFwaG9yZSB3aXRob3V0IHByaW9yIHNlbV9wb3N0CiAgICBhdCAweC4uLi4uLi4uOiBzZW1fd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBzZW1fd2FpdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI0MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI1NykKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2Ygc2VtX3Bvc3QKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLW1pcHMzMi1iIGIvaGVsZ3JpbmQvdGVzdHMvdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAtbWlwczMyLWIKaW5kZXggMmE0NDUyOC4uMDdmOGRiNiAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvdGVzdHMvdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAtbWlwczMyLWIKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAtbWlwczMyLWIKQEAgLTE1LDIyICsxNSwyMiBAQAogICAgLi4uCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NyZWF0ZV9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NyZWF0ZUAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6NzYpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo4MSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBQb3NzaWJsZSBkYXRhIHJhY2UgZHVyaW5nIHdyaXRlIG9mIHNpemUgMiBhdCAweC4uLi4uLi4uIGJ5IHRocmVhZCAjeAogTG9ja3MgaGVsZDogbm9uZQotICAgYXQgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6NzgpCisgICBhdCAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo4MykKIAogVGhpcyBjb25mbGljdHMgd2l0aCBhIHByZXZpb3VzIHdyaXRlIG9mIHNpemUgMiBieSB0aHJlYWQgI3gKIExvY2tzIGhlbGQ6IG5vbmUKLSAgIGF0IDB4Li4uLi4uLi46IHJhY3lfY2hpbGQgKHRjMjBfdmVyaWZ5d3JhcC5jOjM0KQorICAgYXQgMHguLi4uLi4uLjogcmFjeV9jaGlsZCAodGMyMF92ZXJpZnl3cmFwLmM6MzkpCiAgICBieSAweC4uLi4uLi4uOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgLi4uCiAKIExvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgZ2xvYmFsIHZhciAidW5wcm90ZWN0ZWQiCi1kZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzoyNworZGVjbGFyZWQgYXQgdGMyMF92ZXJpZnl3cmFwLmM6MzIKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0zOCw3ICszOCw3IEBACiAgICB3aXRoIGVycm9yIGNvZGUgNDUgKEVERUFETEs6IFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyKQogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9qb2luX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfam9pbiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjgzKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODgpCiAKIAogLS0tLS0tLS0tLS0tLS0tLSBwdGhyZWFkX211dGV4X2xvY2sgZXQgYWwgLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDgsNTQgKzQ4LDYxIEBACiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfaW5pdCBmYWlsZWQKICAgIHdpdGggZXJyb3IgY29kZSAxMjIgKEVPUE5PVFNVUFA6IE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCkKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjkyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTAyKQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeDogcHRocmVhZF9tdXRleF9kZXN0cm95IG9mIGEgbG9ja2VkIG11dGV4Ci0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMDIpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9kZXN0cm95X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjExMikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSBmYWlsZWQKICAgIHdpdGggZXJyb3IgY29kZSAxNiAoRUJVU1k6IERldmljZSBvciByZXNvdXJjZSBidXN5KQotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTAyKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfZGVzdHJveV9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMTIpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X2xvY2sgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwOCkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTE4KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF90cnlsb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RyeWxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMTYpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF90cnlsb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyNikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdGltZWRsb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RpbWVkbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyMSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3RpbWVkbG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RpbWVkbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzMSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3ggdW5sb2NrZWQgYW4gaW52YWxpZCBsb2NrIGF0IDB4Li4uLi4uLi4KLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTI1KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTM1KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF91bmxvY2sgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTI1KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTM1KQogCiAKIC0tLS0tLS0tLS0tLS0tLS0gcHRocmVhZF9jb25kX3dhaXQgZXQgYWwgLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA1LDcgKzExMiw3IEBACiBUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97dGltZWR9d2FpdCBjYWxsZWQgd2l0aCB1bi1oZWxkIG11dGV4CiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTQ3KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTU3KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTExMywxNCArMTIwLDE0IEBACiAgICB3aXRoIGVycm9yIGNvZGUgMSAoRVBFUk06IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkKQogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE0NykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE1NykKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97c2lnbmFsLGJyb2FkY2FzdH06IGR1YmlvdXM6IGFzc29jaWF0ZWQgbG9jayBpcyBub3QgaGVsZCBieSBhbnkgdGhyZWFkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfc2lnbmFsX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9zaWduYWxAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE1MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE2MikKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2YgcHRocmVhZF9jb25kX3NpZ25hbApAQCAtMTMwLDcgKzEzNyw3IEBACiBUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97c2lnbmFsLGJyb2FkY2FzdH06IGR1YmlvdXM6IGFzc29jaWF0ZWQgbG9jayBpcyBub3QgaGVsZCBieSBhbnkgdGhyZWFkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9icm9hZGNhc3RAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE1OCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE2OCkKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2YgcHRocmVhZF9icm9hZGNhc3Rfc2lnbmFsCkBAIC0xNDAsNyArMTQ3LDcgQEAKIFRocmVhZCAjeDogcHRocmVhZF9jb25kX3t0aW1lZH13YWl0IGNhbGxlZCB3aXRoIHVuLWhlbGQgbXV0ZXgKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3RpbWVkd2FpdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTY1KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTc1KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTE0OCw3ICsxNTUsNyBAQAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE2NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3NSkKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfcndsb2NrXyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTU4LDExICsxNjUsMTIgQEAKIFRocmVhZCAjeCB1bmxvY2tlZCBhIG5vdC1sb2NrZWQgbG9jayBhdCAweC4uLi4uLi4uCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTc5KQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODkpCiAgIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3OCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4OCkKIAogKDEpIG5vIGVycm9yIG9uIG5leHQgbGluZQogKDIpIG5vIGVycm9yIG9uIG5leHQgbGluZQpAQCAtMTcyLDExICsxODAsMTIgQEAKIFRocmVhZCAjeCB1bmxvY2tlZCBhIG5vdC1sb2NrZWQgbG9jayBhdCAweC4uLi4uLi4uCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTk2KQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyMDYpCiAgIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4NikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE5NikKIAogKDQpIG5vIGVycm9yIG9uIG5leHQgbGluZQogKDUpIG5vIGVycm9yIG9uIG5leHQgbGluZQpAQCAtMTg4LDExICsxOTcsMTIgQEAKIFRocmVhZCAjeCB1bmxvY2tlZCBhIG5vdC1sb2NrZWQgbG9jayBhdCAweC4uLi4uLi4uCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjEyKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyMjcpCiAgIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4NikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE5NikKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHNlbV8qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwMyw3ICsyMTMsNyBAQAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCiAgICBhdCAweC4uLi4uLi4uOiBzZW1faW5pdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBzZW1faW5pdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjI4KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjQzKQogCiAKIEZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBzZW1fZGVzdHJveQpAQCAtMjEzLDcgKzIyMyw3IEBACiBUaHJlYWQgI3g6IEJ1ZyBpbiBsaWJwdGhyZWFkOiBzZW1fd2FpdCBzdWNjZWVkZWQgb24gc2VtYXBob3JlIHdpdGhvdXQgcHJpb3Igc2VtX3Bvc3QKICAgIGF0IDB4Li4uLi4uLi46IHNlbV93YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHNlbV93YWl0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjQyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjU3KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTIyMSw3ICsyMzEsNyBAQAogICAgd2l0aCBlcnJvciBjb2RlIDg5IChFTk9TWVM6IEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCkKICAgIGF0IDB4Li4uLi4uLi46IHNlbV9wb3N0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHNlbV9wb3N0IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjQ1KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjYwKQogCiAKIEZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBzZW1fcG9zdApkaWZmIC0tZ2l0IGEvaGVsZ3JpbmQvdGVzdHMvdGMyMF92ZXJpZnl3cmFwLnN0ZGVyci5leHAtczM5MHggYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1zMzkweAppbmRleCBhNzE3ZDk5Li4zZjYwZjc5IDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1zMzkweAorKysgYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1zMzkweApAQCAtMTUsMjIgKzE1LDIyIEBACiAgICAuLi4KICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY3JlYXRlX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY3JlYXRlQCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo3NikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjgxKQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFBvc3NpYmxlIGRhdGEgcmFjZSBkdXJpbmcgd3JpdGUgb2Ygc2l6ZSAyIGF0IDB4Li4uLi4uLi4gYnkgdGhyZWFkICN4CiBMb2NrcyBoZWxkOiBub25lCi0gICBhdCAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo3OCkKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjgzKQogCiBUaGlzIGNvbmZsaWN0cyB3aXRoIGEgcHJldmlvdXMgd3JpdGUgb2Ygc2l6ZSAyIGJ5IHRocmVhZCAjeAogTG9ja3MgaGVsZDogbm9uZQotICAgYXQgMHguLi4uLi4uLjogcmFjeV9jaGlsZCAodGMyMF92ZXJpZnl3cmFwLmM6MzQpCisgICBhdCAweC4uLi4uLi4uOiByYWN5X2NoaWxkICh0YzIwX3ZlcmlmeXdyYXAuYzozOSkKICAgIGJ5IDB4Li4uLi4uLi46IG15dGhyZWFkX3dyYXBwZXIgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICAuLi4KIAogTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWwgdmFyICJ1bnByb3RlY3RlZCIKLWRlY2xhcmVkIGF0IHRjMjBfdmVyaWZ5d3JhcC5jOjI3CitkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzozMgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTM4LDcgKzM4LDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAzNSAoRURFQURMSzogUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2pvaW5fV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9qb2luIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODMpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo4OCkKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfbXV0ZXhfbG9jayBldCBhbCAtLS0tLS0tLS0tLS0tLS0tCkBAIC00OCw1NCArNDgsNjEgQEAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF9pbml0IGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDk1IChFT1BOT1RTVVBQOiBPcGVyYXRpb24gbm90IHN1cHBvcnRlZCBvbiB0cmFuc3BvcnQgZW5kcG9pbnQpCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo5MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwMikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3g6IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSBvZiBhIGxvY2tlZCBtdXRleAotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTAyKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfZGVzdHJveV9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMTIpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgZmFpbGVkCiAgICB3aXRoIGVycm9yIGNvZGUgMTYgKEVCVVNZOiBEZXZpY2Ugb3IgcmVzb3VyY2UgYnVzeSkKLSAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfZGVzdHJveSAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEwMikKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2Rlc3Ryb3lfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTEyKQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF9sb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2xvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMDgpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF9sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfbG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjExOCkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayBmYWlsZWQKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90cnlsb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTE2KQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdHJ5bG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3RyeWxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMjYpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX211dGV4X3RpbWVkbG9jayBmYWlsZWQKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQotICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90aW1lZGxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMjEpCisgICBhdCAweC4uLi4uLi4uOiBtdXRleF90aW1lZGxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90aW1lZGxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMzEpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4IHVubG9ja2VkIGFuIGludmFsaWQgbG9jayBhdCAweC4uLi4uLi4uCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyNSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzNSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfbXV0ZXhfdW5sb2NrIGZhaWxlZAogICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCi0gICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEyNSkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjEzNSkKIAogCiAtLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfY29uZF93YWl0IGV0IGFsIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwNSw3ICsxMTIsNyBAQAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3RpbWVkfXdhaXQgY2FsbGVkIHdpdGggdW4taGVsZCBtdXRleAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3dhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE0NykKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE1NykKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xMTMsMTQgKzEyMCwxNCBAQAogICAgd2l0aCBlcnJvciBjb2RlIDEgKEVQRVJNOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCkKICAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNDcpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTcpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3NpZ25hbCxicm9hZGNhc3R9OiBkdWJpb3VzOiBhc3NvY2lhdGVkIGxvY2sgaXMgbm90IGhlbGQgYnkgYW55IHRocmVhZAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3NpZ25hbF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfc2lnbmFsQCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTIpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjIpCiAKIAogRklYTUU6IGNhbid0IGZpZ3VyZSBvdXQgaG93IHRvIHZlcmlmeSB3cmFwIG9mIHB0aHJlYWRfY29uZF9zaWduYWwKQEAgLTEzMCw3ICsxMzcsNyBAQAogVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3NpZ25hbCxicm9hZGNhc3R9OiBkdWJpb3VzOiBhc3NvY2lhdGVkIGxvY2sgaXMgbm90IGhlbGQgYnkgYW55IHRocmVhZAogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX2Jyb2FkY2FzdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTgpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjgpCiAKIAogRklYTUU6IGNhbid0IGZpZ3VyZSBvdXQgaG93IHRvIHZlcmlmeSB3cmFwIG9mIHB0aHJlYWRfYnJvYWRjYXN0X3NpZ25hbApAQCAtMTQwLDcgKzE0Nyw3IEBACiBUaHJlYWQgI3g6IHB0aHJlYWRfY29uZF97dGltZWR9d2FpdCBjYWxsZWQgd2l0aCB1bi1oZWxkIG11dGV4CiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE2NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3NSkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0xNDgsNyArMTU1LDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3RpbWVkd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjUpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNzUpCiAKIAogLS0tLS0tLS0tLS0tLS0tLSBwdGhyZWFkX3J3bG9ja18qIC0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1OCwxMSArMTY1LDEyIEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3OSkKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTg5KQogICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNzgpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODgpCiAKICgxKSBubyBlcnJvciBvbiBuZXh0IGxpbmUKICgyKSBubyBlcnJvciBvbiBuZXh0IGxpbmUKQEAgLTE3MiwxMSArMTgwLDEyIEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE5NikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjA2KQogICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODYpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxOTYpCiAKICg0KSBubyBlcnJvciBvbiBuZXh0IGxpbmUKICg1KSBubyBlcnJvciBvbiBuZXh0IGxpbmUKQEAgLTE4OCwxMSArMTk3LDEyIEBACiBUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgogICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjIxMikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjI3KQogICBMb2NrIGF0IDB4Li4uLi4uLi4gd2FzIGZpcnN0IG9ic2VydmVkCiAgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja19pbml0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODYpCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxOTYpCiAKIAogLS0tLS0tLS0tLS0tLS0tLSBzZW1fKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDMsNyArMjEzLDcgQEAKICAgIHdpdGggZXJyb3IgY29kZSAyMiAoRUlOVkFMOiBJbnZhbGlkIGFyZ3VtZW50KQogICAgYXQgMHguLi4uLi4uLjogc2VtX2luaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogc2VtX2luaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjIyOCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI0MykKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2Ygc2VtX2Rlc3Ryb3kKQEAgLTIxMyw3ICsyMjMsNyBAQAogVGhyZWFkICN4OiBCdWcgaW4gbGlicHRocmVhZDogc2VtX3dhaXQgc3VjY2VlZGVkIG9uIHNlbWFwaG9yZSB3aXRob3V0IHByaW9yIHNlbV9wb3N0CiAgICBhdCAweC4uLi4uLi4uOiBzZW1fd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBzZW1fd2FpdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI0MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjI1NykKIAogCiBGSVhNRTogY2FuJ3QgZmlndXJlIG91dCBob3cgdG8gdmVyaWZ5IHdyYXAgb2Ygc2VtX3Bvc3QKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC5zdGRlcnIuZXhwLXNvbGFyaXMgYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1zb2xhcmlzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyMWViZjUKLS0tIC9kZXYvbnVsbAorKysgYi9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAuc3RkZXJyLmV4cC1zb2xhcmlzCkBAIC0wLDAgKzEsMjU5IEBACisKKworCistLS0tLS0gVGhpcyBpcyBvdXRwdXQgZm9yID49IGdsaWJjIDIuNCAtLS0tLS0KKworLS0tLS0tLS0tLS0tLS0tLSBwdGhyZWFkX2NyZWF0ZS9qb2luIC0tLS0tLS0tLS0tLS0tLS0KKworLS0tVGhyZWFkLUFubm91bmNlbWVudC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3ggaXMgdGhlIHByb2dyYW0ncyByb290IHRocmVhZAorCistLS1UaHJlYWQtQW5ub3VuY2VtZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB3YXMgY3JlYXRlZAorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NyZWF0ZUAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6ODEpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUG9zc2libGUgZGF0YSByYWNlIGR1cmluZyB3cml0ZSBvZiBzaXplIDIgYXQgMHguLi4uLi4uLiBieSB0aHJlYWQgI3gKK0xvY2tzIGhlbGQ6IG5vbmUKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjgzKQorCitUaGlzIGNvbmZsaWN0cyB3aXRoIGEgcHJldmlvdXMgd3JpdGUgb2Ygc2l6ZSAyIGJ5IHRocmVhZCAjeAorTG9ja3MgaGVsZDogbm9uZQorICAgYXQgMHguLi4uLi4uLjogcmFjeV9jaGlsZCAodGMyMF92ZXJpZnl3cmFwLmM6MzkpCisgICBieSAweC4uLi4uLi4uOiBteXRocmVhZF93cmFwcGVyIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgLi4uCisgTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBnbG9iYWwgdmFyICJ1bnByb3RlY3RlZCIKKyBkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzozMgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9qb2luIGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDQ1IChFREVBRExLOiBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cikKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfam9pbl9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2pvaW4gKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzo4OCkKKworCistLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfbXV0ZXhfbG9jayBldCBhbCAtLS0tLS0tLS0tLS0tLS0tCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBtdXRleF9pbml0IGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDIyIChFSU5WQUw6IEludmFsaWQgYXJndW1lbnQpCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX211dGV4X2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxMDIpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4OiBwdGhyZWFkX211dGV4X2Rlc3Ryb3kgb2YgYSBsb2NrZWQgbXV0ZXgKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2Rlc3Ryb3lfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9kZXN0cm95IChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTEyKQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF9sb2NrIGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDEgKEVQRVJNOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X2xvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF9sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTE4KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF90cnlsb2NrIGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDEgKEVQRVJNOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCkKKyAgIGF0IDB4Li4uLi4uLi46IG11dGV4X3RyeWxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9tdXRleF90cnlsb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTI2KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF90aW1lZGxvY2sgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMSAoRVBFUk06IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdGltZWRsb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdGltZWRsb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTMxKQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB1bmxvY2tlZCBhbiBpbnZhbGlkIGxvY2sgYXQgMHguLi4uLi4uLgorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTM1KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9tdXRleF91bmxvY2sgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMSAoRVBFUk06IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkKQorICAgYXQgMHguLi4uLi4uLjogbXV0ZXhfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTM1KQorCisKKy0tLS0tLS0tLS0tLS0tLS0gcHRocmVhZF9jb25kX3dhaXQgZXQgYWwgLS0tLS0tLS0tLS0tLS0tLQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeDogcHRocmVhZF9jb25kX3t0aW1lZH13YWl0IGNhbGxlZCB3aXRoIHVuLWhlbGQgbXV0ZXgKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF93YWl0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNTcpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX2NvbmRfd2FpdCBmYWlsZWQKKyAgIHdpdGggZXJyb3IgY29kZSAxIChFUEVSTTogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQpCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfd2FpdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTU3KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeDogcHRocmVhZF9jb25kX3tzaWduYWwsYnJvYWRjYXN0fTogZHViaW91czogYXNzb2NpYXRlZCBsb2NrIGlzIG5vdCBoZWxkIGJ5IGFueSB0aHJlYWQKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF9zaWduYWxfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3NpZ25hbEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTYyKQorCisKK0ZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBwdGhyZWFkX2NvbmRfc2lnbmFsCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4OiBwdGhyZWFkX2NvbmRfe3NpZ25hbCxicm9hZGNhc3R9OiBkdWJpb3VzOiBhc3NvY2lhdGVkIGxvY2sgaXMgbm90IGhlbGQgYnkgYW55IHRocmVhZAorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX2Jyb2FkY2FzdF9XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0QCogKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxNjgpCisKKworRklYTUU6IGNhbid0IGZpZ3VyZSBvdXQgaG93IHRvIHZlcmlmeSB3cmFwIG9mIHB0aHJlYWRfYnJvYWRjYXN0X3NpZ25hbAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeDogcHRocmVhZF9jb25kX3t0aW1lZH13YWl0IGNhbGxlZCB3aXRoIHVuLWhlbGQgbXV0ZXgKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jb25kX3RpbWVkd2FpdEAqIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTc1KQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9jb25kX3RpbWVkd2FpdCBmYWlsZWQKKyAgIHdpdGggZXJyb3IgY29kZSAxIChFUEVSTTogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQpCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0X1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY29uZF90aW1lZHdhaXRAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE3NSkKKworCistLS0tLS0tLS0tLS0tLS0tIHB0aHJlYWRfcndsb2NrXyogLS0tLS0tLS0tLS0tLS0tLQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB1bmxvY2tlZCBhIG5vdC1sb2NrZWQgbG9jayBhdCAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoxODkpCisgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTg4KQorIExvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgcndsLl9fcHRocmVhZF9yd2xvY2tfcmVhZGVycywKKyBkZWNsYXJlZCBhdCB0YzIwX3ZlcmlmeXdyYXAuYzo1MiwgaW4gZnJhbWUgI3ggb2YgdGhyZWFkIHgKKworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCdzIGNhbGwgdG8gcHRocmVhZF9yd2xvY2tfdW5sb2NrIGZhaWxlZAorICAgd2l0aCBlcnJvciBjb2RlIDEgKEVQRVJNOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZCkKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9ja19XUksgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2sgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE4OSkKKworKDEpIG5vIGVycm9yIG9uIG5leHQgbGluZQorKDIpIG5vIGVycm9yIG9uIG5leHQgbGluZQorKDMpICAgIEVSUk9SIG9uIG5leHQgbGluZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3ggdW5sb2NrZWQgYSBub3QtbG9ja2VkIGxvY2sgYXQgMHguLi4uLi4uLgorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjA2KQorIExvY2sgYXQgMHguLi4uLi4uLiB3YXMgZmlyc3Qgb2JzZXJ2ZWQKKyAgIGF0IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX2luaXQgKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjBfdmVyaWZ5d3JhcC5jOjE5NikKKyBMb2NhdGlvbiAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIHJ3bDIuX19wdGhyZWFkX3J3bG9ja19yZWFkZXJzLAorIGRlY2xhcmVkIGF0IHRjMjBfdmVyaWZ5d3JhcC5jOjUzLCBpbiBmcmFtZSAjeCBvZiB0aHJlYWQgeAorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBwdGhyZWFkX3J3bG9ja191bmxvY2sgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMSAoRVBFUk06IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkKQorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrX1dSSyAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfcndsb2NrX3VubG9jayAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjA2KQorCisoNCkgbm8gZXJyb3Igb24gbmV4dCBsaW5lCisoNSkgbm8gZXJyb3Igb24gbmV4dCBsaW5lCisoNikgbm8gZXJyb3Igb24gbmV4dCBsaW5lCisoNykgbm8gZXJyb3Igb24gbmV4dCBsaW5lCisoOCkgICAgRVJST1Igb24gbmV4dCBsaW5lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCB1bmxvY2tlZCBhIG5vdC1sb2NrZWQgbG9jayBhdCAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyMjcpCisgTG9jayBhdCAweC4uLi4uLi4uIHdhcyBmaXJzdCBvYnNlcnZlZAorICAgYXQgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MTk2KQorIExvY2F0aW9uIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgcndsMi5fX3B0aHJlYWRfcndsb2NrX3JlYWRlcnMsCisgZGVjbGFyZWQgYXQgdGMyMF92ZXJpZnl3cmFwLmM6NTMsIGluIGZyYW1lICN4IG9mIHRocmVhZCB4CisKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3gncyBjYWxsIHRvIHB0aHJlYWRfcndsb2NrX3VubG9jayBmYWlsZWQKKyAgIHdpdGggZXJyb3IgY29kZSAxIChFUEVSTTogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQpCisgICBhdCAweC4uLi4uLi4uOiBwdGhyZWFkX3J3bG9ja191bmxvY2tfV1JLIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9yd2xvY2tfdW5sb2NrIChoZ19pbnRlcmNlcHRzLmM6Li4uKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIwX3ZlcmlmeXdyYXAuYzoyMjcpCisKKworLS0tLS0tLS0tLS0tLS0tLSBzZW1fKiAtLS0tLS0tLS0tLS0tLS0tCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4J3MgY2FsbCB0byBzZW1hX2luaXQgZmFpbGVkCisgICB3aXRoIGVycm9yIGNvZGUgMjIgKEVJTlZBTDogSW52YWxpZCBhcmd1bWVudCkKKyAgIGF0IDB4Li4uLi4uLi46IHNlbWFfaW5pdCAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGMyMF92ZXJpZnl3cmFwLmM6MjQ4KQorCisKK0ZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBzZW1fZGVzdHJveQorCisKK0ZJWE1FOiBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byB2ZXJpZnkgd3JhcCBvZiBzZW1fcG9zdAorCisKKy0tLS0tLS0tLS0tLSBkZWFsbG9jIG9mIG1lbSBob2xkaW5nIGxvY2tzIC0tLS0tLS0tLS0tLQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeDogRXhpdGluZyB0aHJlYWQgc3RpbGwgaG9sZHMgMSBsb2NrCisgICAuLi4KKworCitFUlJPUiBTVU1NQVJZOiAyMyBlcnJvcnMgZnJvbSAyMyBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAudmd0ZXN0IGIvaGVsZ3JpbmQvdGVzdHMvdGMyMF92ZXJpZnl3cmFwLnZndGVzdAppbmRleCAyYWNjYzk0Li4wZWU5YzE0IDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzIwX3ZlcmlmeXdyYXAudmd0ZXN0CisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMjBfdmVyaWZ5d3JhcC52Z3Rlc3QKQEAgLTEsMyArMSwzIEBACiBwcmVyZXE6IHRlc3QgLWUgdGMyMF92ZXJpZnl3cmFwCiBwcm9nOiB0YzIwX3ZlcmlmeXdyYXAKLXZnb3B0czogLS1yZWFkLXZhci1pbmZvPXllcwordmdvcHRzOiAtLXJlYWQtdmFyLWluZm89eWVzIC0tc2lnaWxsLWRpYWdub3N0aWNzPW5vCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzIyX2V4aXRfd19sb2NrLnN0ZGVyci5leHAtc29sYXJpcyBiL2hlbGdyaW5kL3Rlc3RzL3RjMjJfZXhpdF93X2xvY2suc3RkZXJyLmV4cC1zb2xhcmlzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMTI1NmUKLS0tIC9kZXYvbnVsbAorKysgYi9oZWxncmluZC90ZXN0cy90YzIyX2V4aXRfd19sb2NrLnN0ZGVyci5leHAtc29sYXJpcwpAQCAtMCwwICsxLDM5IEBACisKKy0tLVRocmVhZC1Bbm5vdW5jZW1lbnQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4IHdhcyBjcmVhdGVkCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IHB0aHJlYWRfY3JlYXRlQCogKGhnX2ludGVyY2VwdHMuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0YzIyX2V4aXRfd19sb2NrLmM6MzkpCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4OiBFeGl0aW5nIHRocmVhZCBzdGlsbCBob2xkcyAyIGxvY2tzCisgICAuLi4KKworLS0tVGhyZWFkLUFubm91bmNlbWVudC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3ggd2FzIGNyZWF0ZWQKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogcHRocmVhZF9jcmVhdGVAKiAoaGdfaW50ZXJjZXB0cy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHRjMjJfZXhpdF93X2xvY2suYzo0MikKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaHJlYWQgI3g6IEV4aXRpbmcgdGhyZWFkIHN0aWxsIGhvbGRzIDEgbG9jaworICAgLi4uCisKKworUHJvY2VzcyB0ZXJtaW5hdGluZyB3aXRoIGRlZmF1bHQgYWN0aW9uIG9mIHNpZ25hbCA2IChTSUdBQlJUKQorICAgLi4uCistLS1UaHJlYWQtQW5ub3VuY2VtZW50LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RocmVhZCAjeCBpcyB0aGUgcHJvZ3JhbSdzIHJvb3QgdGhyZWFkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhyZWFkICN4OiBFeGl0aW5nIHRocmVhZCBzdGlsbCBob2xkcyAxIGxvY2sKKyAgIC4uLgorCisKK0VSUk9SIFNVTU1BUlk6IDMgZXJyb3JzIGZyb20gMyBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9oZWxncmluZC90ZXN0cy90YzIzX2JvZ3VzX2NvbmR3YWl0LmMgYi9oZWxncmluZC90ZXN0cy90YzIzX2JvZ3VzX2NvbmR3YWl0LmMKaW5kZXggNmUzOTc2OC4uMGExYjVmMyAxMDA2NDQKLS0tIGEvaGVsZ3JpbmQvdGVzdHMvdGMyM19ib2d1c19jb25kd2FpdC5jCisrKyBiL2hlbGdyaW5kL3Rlc3RzL3RjMjNfYm9ndXNfY29uZHdhaXQuYwpAQCAtOTgsNyArOTgsNyBAQAogewogICAgc2VtX3QqIHM7CiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKICAgIHMgPSBtYWxsb2Moc2l6ZW9mKCpzKSk7CiAgICBpZiAocykgewogICAgICAgaWYgKHNlbV9pbml0KHMsIHBzaGFyZWQsIGNvdW50KSA8IDApIHsKZGlmZiAtLWdpdCBhL2hlbGdyaW5kL3Rlc3RzL3RjMjRfbm9uemVyb19zZW0uYyBiL2hlbGdyaW5kL3Rlc3RzL3RjMjRfbm9uemVyb19zZW0uYwppbmRleCA1ZTk5MGY1Li5iY2Q0NjdjIDEwMDY0NAotLS0gYS9oZWxncmluZC90ZXN0cy90YzI0X25vbnplcm9fc2VtLmMKKysrIGIvaGVsZ3JpbmQvdGVzdHMvdGMyNF9ub256ZXJvX3NlbS5jCkBAIC01MCw3ICs1MCw3IEBACiB7CiAgICBzZW1fdCogczsKIAotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgcyA9IG1hbGxvYyhzaXplb2YoKnMpKTsKICAgIGlmIChzKSB7CiAgICAgICBpZiAoc2VtX2luaXQocywgcHNoYXJlZCwgY291bnQpIDwgMCkgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9NYWtlZmlsZS5hbSBiL2luY2x1ZGUvTWFrZWZpbGUuYW0KaW5kZXggOWU1ZDJiNC4uY2NmY2QyNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9NYWtlZmlsZS5hbQorKysgYi9pbmNsdWRlL01ha2VmaWxlLmFtCkBAIC00Niw2ICs0Niw4IEBACiAJdmFsZ3JpbmQuaAkJCVwKIAl2a2kvdmtpLWxpbnV4LmgJCQlcCiAJdmtpL3ZraS1kYXJ3aW4uaAkJXAorCXZraS92a2ktc29sYXJpcy5oCQlcCisJdmtpL3ZraS1zb2xhcmlzLXJlcGNhY2hlLmgJXAogCXZraS92a2ktcG9zaXh0eXBlcy1hbWQ2NC1saW51eC5oIFwKIAl2a2kvdmtpLXBvc2l4dHlwZXMtYXJtNjQtbGludXguaCBcCiAJdmtpL3ZraS1wb3NpeHR5cGVzLXBwYzMyLWxpbnV4LmggXApAQCAtNzQsNiArNzYsNyBAQAogCXZraS92a2ktc2NudW1zLW1pcHMzMi1saW51eC5oCVwKIAl2a2kvdmtpLXNjbnVtcy1taXBzNjQtbGludXguaAlcCiAJdmtpL3ZraS1zY251bXMtZGFyd2luLmggICAgICAgICBcCisJdmtpL3ZraS1zY251bXMtc29sYXJpcy5oCVwKIAl2a2kvdmtpLXhlbi5oICAgICAgICAgICAgICAgICAgIFwKIAl2a2kvdmtpLXhlbi1kb21jdGwuaAkJXAogCXZraS92a2kteGVuLWV2dGNobi5oCQlcCkBAIC04MSw4ICs4NCwxMSBAQAogCXZraS92a2kteGVuLWh2bS5oCQlcCiAJdmtpL3ZraS14ZW4tbWVtb3J5LmgJCVwKIAl2a2kvdmtpLXhlbi1tbXVleHQuaAkJXAorCXZraS92a2kteGVuLXBoeXNkZXYuaAkJXAorCXZraS92a2kteGVuLXNjaGVkb3AuaAkJXAogCXZraS92a2kteGVuLXN5c2N0bC5oCQlcCiAJdmtpL3ZraS14ZW4tdG1lbS5oCQlcCiAJdmtpL3ZraS14ZW4tdmVyc2lvbi5oCQlcCisJdmtpL3ZraS14ZW4teHNtLmgJCVwKIAl2a2kvdmtpLXhlbi14ODYuaAkJXAogCXZraS92a2ktbGludXgtZHJtLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfYWRkcmluZm8uaCBiL2luY2x1ZGUvcHViX3Rvb2xfYWRkcmluZm8uaAppbmRleCBkNjJiYzM0Li41ZGM2NmNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2FkZHJpbmZvLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9hZGRyaW5mby5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX2FzcGFjZWhsLmggYi9pbmNsdWRlL3B1Yl90b29sX2FzcGFjZWhsLmgKaW5kZXggYWNjMDVhNy4uNDIxMDM2NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9hc3BhY2VobC5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfYXNwYWNlaGwuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF9hc3BhY2VtZ3IuaCBiL2luY2x1ZGUvcHViX3Rvb2xfYXNwYWNlbWdyLmgKaW5kZXggMWRlODBjOS4uNGE4M2UzNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9hc3BhY2VtZ3IuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX2FzcGFjZW1nci5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX2Jhc2ljcy5oIGIvaW5jbHVkZS9wdWJfdG9vbF9iYXNpY3MuaAppbmRleCAwOWI4OWQ3Li40MTNlMjJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2Jhc2ljcy5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfYmFzaWNzLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTAyLDcgKzEwMiw3IEBACiAvLyB1c2VkIGluIHRob3NlIGNhc2VzLgogLy8gTmI6IG9uIExpbnV4LCBvZmZfdCBpcyBhIHNpZ25lZCB3b3JkLXNpemVkIGludC4gIE9uIERhcndpbiBpdCdzCiAvLyBhbHdheXMgYSBzaWduZWQgNjQtYml0IGludC4gIFNvIHdlIGRlZmluZWQgb3VyIG93biBPZmY2NFQgYXMgd2VsbC4KLSNpZiBkZWZpbmVkKFZHT19saW51eCkKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIHR5cGVkZWYgV29yZCAgICAgICAgICAgICAgICAgICBPZmZUOyAgICAgIC8vIDMyICAgICAgICAgICAgIDY0CiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiB0eXBlZGVmIExvbmcgICAgICAgICAgICAgICAgICAgT2ZmVDsgICAgICAvLyA2NCAgICAgICAgICAgICA2NApAQCAtMTMwLDExICsxMzAsMTkgQEAKIHR5cGVkZWYgVUludCBUaHJlYWRJZDsKIAogLyogQW4gYWJzdHJhY3Rpb24gb2Ygc3lzY2FsbCByZXR1cm4gdmFsdWVzLgotICAgTGludXg6CisgICBMaW51eC9NSVBTMzIgYW5kIExpbnV4L01JUFM2NDoKKyAgICAgIFdoZW4gX2lzRXJyb3IgPT0gRmFsc2UsIAorICAgICAgICAgX3ZhbCBhbmQgcG9zc2libGUgX3ZhbEV4IGhvbGQgdGhlIHJldHVybiB2YWx1ZS4gIFdoZXRoZXIKKyAgICAgICAgIF92YWxFeCBhY3R1YWxseSBob2xkcyBhIHZhbGlkIHZhbHVlIGRlcGVuZHMgb24gd2hpY2ggc3lzY2FsbAorICAgICAgICAgdGhpcyBTeXNSZXMgaG9sZHMgb2YgdGhlIHJlc3VsdCBvZi4KKyAgICAgIFdoZW4gX2lzRXJyb3IgPT0gVHJ1ZSwgIAorICAgICAgICAgX3ZhbCBob2xkcyB0aGUgZXJyb3IgY29kZS4KKworICAgTGludXgvb3RoZXI6CiAgICAgICBXaGVuIF9pc0Vycm9yID09IEZhbHNlLCAKICAgICAgICAgIF92YWwgaG9sZHMgdGhlIHJldHVybiB2YWx1ZS4KICAgICAgIFdoZW4gX2lzRXJyb3IgPT0gVHJ1ZSwgIAotICAgICAgICAgX2VyciBob2xkcyB0aGUgZXJyb3IgY29kZS4KKyAgICAgICAgIF92YWwgaG9sZHMgdGhlIGVycm9yIGNvZGUuCiAKICAgIERhcndpbjoKICAgICAgIEludGVycHJldGF0aW9uIGRlcGVuZHMgb24gX21vZGU6CkBAIC0xNDksMTcgKzE1NywzMSBAQAogICAgICAgICAgdXNlcnNwYWNlLCBidXQgd2UgaGF2ZSB0byByZWNvcmQgaXQsIHNvIHRoYXQgd2UgY2FuIGNvcnJlY3RseQogICAgICAgICAgdXBkYXRlIGJvdGgge1IsRX1EWCBhbmQge1IsRX1BWCAoaW4gZ3Vlc3Qgc3RhdGUpIGdpdmVuIGEgU3lzUmVzLAogICAgICAgICAgaWYgd2UncmUgcmVxdWlyZWQgdG8uCisKKyAgIFNvbGFyaXM6CisgICAgICBXaGVuIF9pc0Vycm9yID09IEZhbHNlLAorICAgICAgICAgX3ZhbCBhbmQgX3ZhbDIgaG9sZCB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAgV2hlbiBfaXNFcnJvciA9PSBUcnVlLAorICAgICAgICAgX3ZhbCBob2xkcyB0aGUgZXJyb3IgY29kZS4KICovCi0jaWYgZGVmaW5lZChWR09fbGludXgpCisjaWYgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9taXBzNjRfbGludXgpCiB0eXBlZGVmCiAgICBzdHJ1Y3QgewogICAgICAgQm9vbCAgX2lzRXJyb3I7CiAgICAgICBVV29yZCBfdmFsOwotI2lmIGRlZmluZWQoVkdBX21pcHM2NCkgfHwgZGVmaW5lZChWR0FfbWlwczMyKQogICAgICAgVVdvcmQgX3ZhbEV4OwotI2VuZGlmCiAgICB9CiAgICBTeXNSZXM7CisKKyNlbGlmIGRlZmluZWQoVkdPX2xpbnV4KSBcCisgICAgICAmJiAhZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSAmJiAhZGVmaW5lZChWR1BfbWlwczY0X2xpbnV4KQordHlwZWRlZgorICAgc3RydWN0IHsKKyAgICAgIEJvb2wgIF9pc0Vycm9yOworICAgICAgVVdvcmQgX3ZhbDsKKyAgIH0KKyAgIFN5c1JlczsKKwogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogdHlwZWRlZgogICAgZW51bSB7IApAQCAtMTc2LDYgKzE5OCwxNiBAQAogICAgICAgU3lzUmVzTW9kZSBfbW9kZTsKICAgIH0KICAgIFN5c1JlczsKKworI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKK3R5cGVkZWYKKyAgIHN0cnVjdCB7CisgICAgICBVV29yZCBfdmFsOworICAgICAgVVdvcmQgX3ZhbDI7CisgICAgICBCb29sICBfaXNFcnJvcjsKKyAgIH0KKyAgIFN5c1JlczsKKwogI2Vsc2UKICMgIGVycm9yICJVbmtub3duIE9TIgogI2VuZGlmCkBAIC0xODMsNyArMjE1LDcgQEAKIAogLyogLS0tLSBBbmQgbm93IHNvbWUgYmFzaWMgYWNjZXNzb3IgZnVuY3Rpb25zIGZvciBpdC4gLS0tLSAqLwogCi0jaWYgZGVmaW5lZChWR09fbGludXgpCisjaWYgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9taXBzNjRfbGludXgpCiAKIHN0YXRpYyBpbmxpbmUgQm9vbCBzcl9pc0Vycm9yICggU3lzUmVzIHNyICkgewogICAgcmV0dXJuIHNyLl9pc0Vycm9yOwpAQCAtMTkxLDE4ICsyMjMsNTIgQEAKIHN0YXRpYyBpbmxpbmUgVVdvcmQgc3JfUmVzICggU3lzUmVzIHNyICkgewogICAgcmV0dXJuIHNyLl9pc0Vycm9yID8gMCA6IHNyLl92YWw7CiB9Ci0jaWYgZGVmaW5lZChWR0FfbWlwczY0KSB8fCBkZWZpbmVkKFZHQV9taXBzMzIpCiBzdGF0aWMgaW5saW5lIFVXb3JkIHNyX1Jlc0V4ICggU3lzUmVzIHNyICkgewogICAgcmV0dXJuIHNyLl9pc0Vycm9yID8gMCA6IHNyLl92YWxFeDsKIH0KLSNlbmRpZgogc3RhdGljIGlubGluZSBVV29yZCBzcl9FcnIgKCBTeXNSZXMgc3IgKSB7CiAgICByZXR1cm4gc3IuX2lzRXJyb3IgPyBzci5fdmFsIDogMDsKIH0KLS8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGZpeGVkIGZvciBNSVBTCi1zdGF0aWMgaW5saW5lIEJvb2wgc3JfRVEgKCBTeXNSZXMgc3IxLCBTeXNSZXMgc3IyICkgeworc3RhdGljIGlubGluZSBCb29sIHNyX0VRICggVUludCBzeXNubywgU3lzUmVzIHNyMSwgU3lzUmVzIHNyMiApIHsKKyAgIC8qIFRoaXMgdWdseW5lc3Mgb2YgaGFyZGNvZGluZyBzeXNjYWxsIG51bWJlcnMgaXMgbmVjZXNzYXJ5IHRvCisgICAgICBhdm9pZCBoYXZpbmcgdGhpcyBoZWFkZXIgZmlsZSBiZSBkZXBlbmRhbnQgb24KKyAgICAgIGluY2x1ZGUvdmtpL3ZraS1zY251bXMtbWlwc3szMiw2NH0tbGludXguaC4gIEl0IHNlZW1zIHByZXR0eQorICAgICAgc2FmZSBnaXZlbiB0aGF0IGl0IGlzIGluY29uY2VpdmFibGUgdGhhdCB0aGUgc3lzY2FsbCBudW1iZXJzCisgICAgICBmb3Igc3VjaCBzaW1wbGUgc3lzY2FsbHMgd291bGQgZXZlciBjaGFuZ2UuICBUbyBtYWtlIGl0IAorICAgICAgcmVhbGx5IHNhZmUsIGNvcmVncmluZC9tX3ZraXNjbnVtcy5jIHN0YXRpYy1hc3NlcnRzIHRoYXQgdGhlc2UKKyAgICAgIHN5c2NhbGwgbnVtYmVycyBoYXZlbid0IGNoYW5nZWQsIHNvIHRoYXQgdGhlIGJ1aWxkIHdpbCBzaW1wbHkKKyAgICAgIGZhaWwgaWYgdGhleSBldmVyIGRvLiAqLworIyAgaWYgZGVmaW5lZChWR1BfbWlwczMyX2xpbnV4KQorICAgY29uc3QgVUludCBfX25yX0xpbnV4ID0gNDAwMDsKKyAgIGNvbnN0IFVJbnQgX19ucl9waXBlICA9IF9fbnJfTGludXggKyA0MjsKKyAgIGNvbnN0IFVJbnQgX19ucl9waXBlMiA9IF9fbnJfTGludXggKyAzMjg7CisjICBlbHNlCisgICBjb25zdCBVSW50IF9fbnJfTGludXggPSA1MDAwOworICAgY29uc3QgVUludCBfX25yX3BpcGUgID0gX19ucl9MaW51eCArIDIxOworICAgY29uc3QgVUludCBfX25yX3BpcGUyID0gX19ucl9MaW51eCArIDI4NzsKKyMgIGVuZGlmCisgICBCb29sIHVzZUV4ID0gc3lzbm8gPT0gX19ucl9waXBlIHx8IHN5c25vID09IF9fbnJfcGlwZTI7CiAgICByZXR1cm4gc3IxLl92YWwgPT0gc3IyLl92YWwKLSAgICAgICAmJiBzcjEuX2lzRXJyb3IgPT0gc3IyLl9pc0Vycm9yOworICAgICAgICAgICYmICh1c2VFeCA/IChzcjEuX3ZhbEV4ID09IHNyMi5fdmFsRXgpIDogVHJ1ZSkKKyAgICAgICAgICAmJiBzcjEuX2lzRXJyb3IgPT0gc3IyLl9pc0Vycm9yOworfQorCisjZWxpZiBkZWZpbmVkKFZHT19saW51eCkgXAorICAgICAgJiYgIWRlZmluZWQoVkdQX21pcHMzMl9saW51eCkgJiYgIWRlZmluZWQoVkdQX21pcHM2NF9saW51eCkKKworc3RhdGljIGlubGluZSBCb29sIHNyX2lzRXJyb3IgKCBTeXNSZXMgc3IgKSB7CisgICByZXR1cm4gc3IuX2lzRXJyb3I7Cit9CitzdGF0aWMgaW5saW5lIFVXb3JkIHNyX1JlcyAoIFN5c1JlcyBzciApIHsKKyAgIHJldHVybiBzci5faXNFcnJvciA/IDAgOiBzci5fdmFsOworfQorc3RhdGljIGlubGluZSBVV29yZCBzcl9FcnIgKCBTeXNSZXMgc3IgKSB7CisgICByZXR1cm4gc3IuX2lzRXJyb3IgPyBzci5fdmFsIDogMDsKK30KK3N0YXRpYyBpbmxpbmUgQm9vbCBzcl9FUSAoIFVJbnQgc3lzbm8sIFN5c1JlcyBzcjEsIFN5c1JlcyBzcjIgKSB7CisgICAvKiBzeXNubyBpcyBpZ25vcmVkIGZvciBMaW51eC9ub3QtTUlQUyAqLworICAgcmV0dXJuIHNyMS5fdmFsID09IHNyMi5fdmFsCisgICAgICAgICAgJiYgc3IxLl9pc0Vycm9yID09IHNyMi5faXNFcnJvcjsKIH0KIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQpAQCAtMjU5LDExICszMjUsMzMgQEAKICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBCb29sIHNyX0VRICggU3lzUmVzIHNyMSwgU3lzUmVzIHNyMiApIHsKK3N0YXRpYyBpbmxpbmUgQm9vbCBzcl9FUSAoIFVJbnQgc3lzbm8sIFN5c1JlcyBzcjEsIFN5c1JlcyBzcjIgKSB7CisgICAvKiBzeXNubyBpcyBpZ25vcmVkIGZvciBEYXJ3aW4gKi8KICAgIHJldHVybiBzcjEuX21vZGUgPT0gc3IyLl9tb2RlCiAgICAgICAgICAgJiYgc3IxLl93TE8gPT0gc3IyLl93TE8gJiYgc3IxLl93SEkgPT0gc3IyLl93SEk7CiB9CiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisKK3N0YXRpYyBpbmxpbmUgQm9vbCBzcl9pc0Vycm9yICggU3lzUmVzIHNyICkgeworICAgcmV0dXJuIHNyLl9pc0Vycm9yOworfQorc3RhdGljIGlubGluZSBVV29yZCBzcl9SZXMgKCBTeXNSZXMgc3IgKSB7CisgICByZXR1cm4gc3IuX2lzRXJyb3IgPyAwIDogc3IuX3ZhbDsKK30KK3N0YXRpYyBpbmxpbmUgVVdvcmQgc3JfUmVzSEkgKCBTeXNSZXMgc3IgKSB7CisgICByZXR1cm4gc3IuX2lzRXJyb3IgPyAwIDogc3IuX3ZhbDI7Cit9CitzdGF0aWMgaW5saW5lIFVXb3JkIHNyX0VyciAoIFN5c1JlcyBzciApIHsKKyAgIHJldHVybiBzci5faXNFcnJvciA/IHNyLl92YWwgOiAwOworfQorc3RhdGljIGlubGluZSBCb29sIHNyX0VRICggVUludCBzeXNubywgU3lzUmVzIHNyMSwgU3lzUmVzIHNyMiApIHsKKyAgIC8qIHN5c25vIGlzIGlnbm9yZWQgZm9yIFNvbGFyaXMgKi8KKyAgIHJldHVybiBzcjEuX3ZhbCA9PSBzcjIuX3ZhbAorICAgICAgICYmIHNyMS5fdmFsMiA9PSBzcjIuX3ZhbDIKKyAgICAgICAmJiBzcjEuX2lzRXJyb3IgPT0gc3IyLl9pc0Vycm9yOworfQorCiAjZWxzZQogIyAgZXJyb3IgIlVua25vd24gT1MiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfYmFzaWNzX2FzbS5oIGIvaW5jbHVkZS9wdWJfdG9vbF9iYXNpY3NfYXNtLmgKaW5kZXggMDE3M2U2OC4uZDczYzkxZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9iYXNpY3NfYXNtLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9iYXNpY3NfYXNtLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDgsNyArNDgsNyBAQAogCiAjZGVmaW5lIFZHQVBQRU5EKHN0cjEsc3RyMikgc3RyMSMjc3RyMgogIAotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogIyAgZGVmaW5lIFZHXyhzdHIpICAgIFZHQVBQRU5EKCB2Z1BsYWluXywgICAgICAgICAgc3RyKQogIyAgZGVmaW5lIE1MXyhzdHIpICAgIFZHQVBQRU5EKCB2Z01vZHVsZUxvY2FsXywgICAgc3RyKQogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQpAQCAtNTgsNiArNTgsMjAgQEAKICMgIGVycm9yIFVua25vd24gT1MKICNlbmRpZgogCisvKiBMZXQgdGhlIGxpbmtlciBrbm93IHdlIGRvbid0IG5lZWQgYW4gZXhlY3V0YWJsZSBzdGFjay4KKyAgIFRoZSBjYWxsIHRvIE1BUktfU1RBQ0tfTk9fRVhFQyBzaG91bGQgYmUgcHV0IHVuY29uZGl0aW9uYWxseQorICAgYXQgdGhlIGVuZCBvZiBhbGwgYXNtIHNvdXJjZSBmaWxlcy4KKyovCisjaWYgZGVmaW5lZChWR09fbGludXgpCisjICBpZiBkZWZpbmVkKFZHQV9hcm0pCisjICAgIGRlZmluZSBNQVJLX1NUQUNLX05PX0VYRUMgLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrLCIiLCVwcm9nYml0cworIyAgZWxzZQorIyAgICBkZWZpbmUgTUFSS19TVEFDS19OT19FWEVDIC5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKKyMgIGVuZGlmCisjZWxzZQorIyAgZGVmaW5lIE1BUktfU1RBQ0tfTk9fRVhFQworI2VuZGlmCisKICNlbmRpZiAvKiBfX1BVQl9UT09MX0JBU0lDU19BU01fSCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfY2xpZW50c3RhdGUuaCBiL2luY2x1ZGUvcHViX3Rvb2xfY2xpZW50c3RhdGUuaAppbmRleCBjNWY1Yjg0Li5hZjBmYmJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2NsaWVudHN0YXRlLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9jbGllbnRzdGF0ZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX2NscmVxLmggYi9pbmNsdWRlL3B1Yl90b29sX2NscmVxLmgKaW5kZXggOTQwMDVjYS4uYjM3OThlMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9jbHJlcS5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfY2xyZXEuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF9kZWJ1Z2luZm8uaCBiL2luY2x1ZGUvcHViX3Rvb2xfZGVidWdpbmZvLmgKaW5kZXggOTFmMzc1MS4uNDljZWZmYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9kZWJ1Z2luZm8uaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX2RlYnVnaW5mby5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIF9fUFVCX1RPT0xfREVCVUdJTkZPX0gKIAogI2luY2x1ZGUgInB1Yl90b29sX2Jhc2ljcy5oIiAgIC8vIFZHXyBtYWNybworI2luY2x1ZGUgInB1Yl90b29sX3hhcnJheS5oIiAgIC8vIFhBcnJheQogCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIC8qPT09IE9idGFpbmluZyBkZWJ1ZyBpbmZvcm1hdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PT0qLwpAQCAtMTEzLDggKzExNCw4IEBACiAgICBYQXJyYXkgaXRzZWxmLgogKi8KIEJvb2wgVkdfKGdldF9kYXRhX2Rlc2NyaXB0aW9uKSggCi0gICAgICAgIC8qTU9EKi8gdm9pZCogLyogcmVhbGx5LCBYQXJyYXkqIG9mIEhDaGFyICovIGRuYW1lMXYsCi0gICAgICAgIC8qTU9EKi8gdm9pZCogLyogcmVhbGx5LCBYQXJyYXkqIG9mIEhDaGFyICovIGRuYW1lMnYsCisgICAgICAgIC8qTU9EKi8gWEFycmF5KiAvKiBvZiBIQ2hhciAqLyBkbmFtZTF2LAorICAgICAgICAvKk1PRCovIFhBcnJheSogLyogb2YgSENoYXIgKi8gZG5hbWUydiwKICAgICAgICAgQWRkciBkYXRhX2FkZHIKICAgICAgKTsKIApAQCAtMTc4LDggKzE3OSw4IEBACiAgICB9CiAgICBTdGFja0Jsb2NrOwogCi1leHRlcm4gdm9pZCogLyogcmVhbGx5LCBYQXJyYXkqIG9mIFN0YWNrQmxvY2sgKi8KLSAgICAgICAgICAgICBWR18oZGlfZ2V0X3N0YWNrX2Jsb2Nrc19hdF9pcCkoIEFkZHIgaXAsIEJvb2wgYXJyYXlzX29ubHkgKTsKK2V4dGVybiBYQXJyYXkqIC8qIG9mIFN0YWNrQmxvY2sgKi8KK1ZHXyhkaV9nZXRfc3RhY2tfYmxvY2tzX2F0X2lwKSggQWRkciBpcCwgQm9vbCBhcnJheXNfb25seSApOwogCiAKIC8qIEdldCBhbiBhcnJheSBvZiBHbG9iYWxCbG9jayB3aGljaCBkZXNjcmliZSB0aGUgZ2xvYmFsIGJsb2NrcyBvd25lZApAQCAtMTk5LDcgKzIwMCw3IEBACiAgICB9CiAgICBHbG9iYWxCbG9jazsKIAotZXh0ZXJuIHZvaWQqIC8qIHJlYWxseSwgWEFycmF5KiBvZiBHbG9iYWxCbG9jayAqLworZXh0ZXJuIFhBcnJheSogLyogb2YgR2xvYmFsQmxvY2sgKi8KIFZHXyhkaV9nZXRfZ2xvYmFsX2Jsb2Nrc19mcm9tX2RpaGFuZGxlKSAoIFVMb25nIGRpX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgIGFycmF5c19vbmx5ICk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfZGVkdXBwb29sYWxsb2MuaCBiL2luY2x1ZGUvcHViX3Rvb2xfZGVkdXBwb29sYWxsb2MuaAppbmRleCBlOGY4ZTU1Li5hNGMxYTA5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2RlZHVwcG9vbGFsbG9jLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9kZWR1cHBvb2xhbGxvYy5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxNC0yMDE0IFBoaWxpcHBlIFdhcm9xdWllcnMgcGhpbGlwcGUud2Fyb3F1aWVyc0Bza3luZXQuYmUKKyAgIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IFBoaWxpcHBlIFdhcm9xdWllcnMgcGhpbGlwcGUud2Fyb3F1aWVyc0Bza3luZXQuYmUKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfZXJyb3JtZ3IuaCBiL2luY2x1ZGUvcHViX3Rvb2xfZXJyb3JtZ3IuaAppbmRleCBhZDFmNmIwLi4xYjlmZGZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2Vycm9ybWdyLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9lcnJvcm1nci5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX2V4ZWNvbnRleHQuaCBiL2luY2x1ZGUvcHViX3Rvb2xfZXhlY29udGV4dC5oCmluZGV4IDM5ZjRhNTYuLjljZTNhMjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfZXhlY29udGV4dC5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfZXhlY29udGV4dC5oCkBAIC02LDcgKzYsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX2dkYnNlcnZlci5oIGIvaW5jbHVkZS9wdWJfdG9vbF9nZGJzZXJ2ZXIuaAppbmRleCA2OWU1MTA4Li5kNGM4MjZiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2dkYnNlcnZlci5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfZ2Ric2VydmVyLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTMgUGhpbGlwcGUgV2Fyb3F1aWVycworICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTUgUGhpbGlwcGUgV2Fyb3F1aWVycwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF9ndWVzdC5oIGIvaW5jbHVkZS9wdWJfdG9vbF9ndWVzdC5oCmluZGV4IDhiMzgyODMuLjIxNzhhY2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfZ3Vlc3QuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX2d1ZXN0LmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTQgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX2hhc2h0YWJsZS5oIGIvaW5jbHVkZS9wdWJfdG9vbF9oYXNodGFibGUuaAppbmRleCA2ZmM2ODIyLi5lNWM0MWNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2hhc2h0YWJsZS5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfaGFzaHRhYmxlLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01OCw3ICs1OCw3IEBACiBleHRlcm4gVmdIYXNoVGFibGUgKlZHXyhIVF9jb25zdHJ1Y3QpICggY29uc3QgSENoYXIqIG5hbWUgKTsKIAogLyogQ291bnQgdGhlIG51bWJlciBvZiBub2RlcyBpbiBhIHRhYmxlLiAqLwotZXh0ZXJuIEludCBWR18oSFRfY291bnRfbm9kZXMpICggY29uc3QgVmdIYXNoVGFibGUgKnRhYmxlICk7CitleHRlcm4gVUludCBWR18oSFRfY291bnRfbm9kZXMpICggY29uc3QgVmdIYXNoVGFibGUgKnRhYmxlICk7CiAKIC8qIEFkZCBhIG5vZGUgdG8gdGhlIHRhYmxlLiAgRHVwbGljYXRlIGtleXMgYXJlIHBlcm1pdHRlZC4gKi8KIGV4dGVybiB2b2lkIFZHXyhIVF9hZGRfbm9kZSkgKCBWZ0hhc2hUYWJsZSAqdCwgdm9pZCogbm9kZSApOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF9saWJjYXNzZXJ0LmggYi9pbmNsdWRlL3B1Yl90b29sX2xpYmNhc3NlcnQuaAppbmRleCA0MTNkNmJhLi5iNjA2ZDAwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2xpYmNhc3NlcnQuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX2xpYmNhc3NlcnQuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF9saWJjYmFzZS5oIGIvaW5jbHVkZS9wdWJfdG9vbF9saWJjYmFzZS5oCmluZGV4IDkzYTE5YzguLmMyMmJkNzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfbGliY2Jhc2UuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX2xpYmNiYXNlLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfbGliY2ZpbGUuaCBiL2luY2x1ZGUvcHViX3Rvb2xfbGliY2ZpbGUuaAppbmRleCAzZGY1YmU1Li40YTczNDZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2xpYmNmaWxlLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9saWJjZmlsZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC05Myw3ICs5Myw3IEBACiAKIGV4dGVybiBTU2l6ZVQgVkdfKHJlYWRsaW5rKSggY29uc3QgSENoYXIqIHBhdGgsIEhDaGFyKiBidWYsIFNpemVUIGJ1ZnNpeik7CiAKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIGV4dGVybiBJbnQgICAgVkdfKGdldGRlbnRzNjQpKCBJbnQgZmQsIHN0cnVjdCB2a2lfZGlyZW50NjQgKmRpcnAsIFVJbnQgY291bnQgKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX2xpYmNwcmludC5oIGIvaW5jbHVkZS9wdWJfdG9vbF9saWJjcHJpbnQuaAppbmRleCA1ZDM4MTI3Li5iZGE0MWMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2xpYmNwcmludC5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfbGliY3ByaW50LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfbGliY3Byb2MuaCBiL2luY2x1ZGUvcHViX3Rvb2xfbGliY3Byb2MuaAppbmRleCAwZTJhZmRjLi5jYzFmOWE4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX2xpYmNwcm9jLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9saWJjcHJvYy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01MSwxNCArNTEsMjcgQEAKIC8vIHBsYXRmb3Jtcy4KIGV4dGVybiBjb25zdCBIQ2hhciogVkdfKExEX1BSRUxPQURfdmFyX25hbWUpOwogCisvKiBSZXNvbHZlcyBmaWxlbmFtZSBvZiBWR18oY2xfZXhlY19mZCkgYW5kIGNvcGllcyBpdCB0byB0aGUgYnVmZmVyLiAKKyAgIEJ1ZmZlciBtdXN0IG5vdCBiZSBOVUxMIGFuZCBidWZfc2l6ZSBtdXN0IGJlIGF0IGxlYXN0IDEuCisgICBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCBpdCBpcyB0ZXJtaW5hdGVkIHdpdGggJ1wwJyBvbmx5CisgICB3aGVuICd0ZXJtaW5hdGVfd2l0aF9OVUwgPT0gVHJ1ZScuICovCitleHRlcm4gdm9pZCBWR18oY2xpZW50X2ZuYW1lKShIQ2hhciAqYnVmZmVyLCBTaXplVCBidWZfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2wgdGVybWluYXRlX3dpdGhfTlVMKTsKKworLyogQ29uY2F0ZW5hdGVzIGNsaWVudCBleGVuYW1lIGFuZCBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGludG8KKyAgIHRoZSBidWZmZXIuIEJ1ZmZlciBtdXN0IG5vdCBiZSBOVUxMIGFuZCBidWZfc2l6ZSBtdXN0IGJlCisgICBhdCBsZWFzdCAxLiBCdWZmZXIgaXMgYWx3YXlzIHRlcm1pbmF0ZWQgd2l0aCAnXDAnLiAqLworZXh0ZXJuIHZvaWQgVkdfKGNsaWVudF9jbWRfYW5kX2FyZ3MpKEhDaGFyICpidWZmZXIsIFNpemVUIGJ1Zl9zaXplKTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBJbXBvcnRhbnQgc3lzY2FsbHMKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiBleHRlcm4gSW50ICBWR18od2FpdHBpZCkoIEludCBwaWQsIEludCAqc3RhdHVzLCBJbnQgb3B0aW9ucyApOwogZXh0ZXJuIEludCAgVkdfKHN5c3RlbSkgKCBjb25zdCBIQ2hhciogY21kICk7CitleHRlcm4gSW50ICBWR18oc3Bhd24pICAoIGNvbnN0IEhDaGFyICpmaWxlbmFtZSwgY29uc3QgSENoYXIgKiphcmd2ICk7CiBleHRlcm4gSW50ICBWR18oZm9yaykgICAoIHZvaWQpOwotZXh0ZXJuIHZvaWQgVkdfKGV4ZWN2KSAgKCBjb25zdCBIQ2hhciogZmlsZW5hbWUsIEhDaGFyKiogYXJndiApOworZXh0ZXJuIHZvaWQgVkdfKGV4ZWN2KSAgKCBjb25zdCBIQ2hhciogZmlsZW5hbWUsIGNvbnN0IEhDaGFyKiogYXJndiApOwogZXh0ZXJuIEludCAgVkdfKHN5c2N0bCkgKCBJbnQgKm5hbWUsIFVJbnQgbmFtZWxlbiwgdm9pZCAqb2xkcCwgU2l6ZVQgKm9sZGxlbnAsIHZvaWQgKm5ld3AsIFNpemVUIG5ld2xlbiApOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfbGliY3NldGptcC5oIGIvaW5jbHVkZS9wdWJfdG9vbF9saWJjc2V0am1wLmgKaW5kZXggZmYwMTA1OC4uYmI5NGE1OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9saWJjc2V0am1wLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9saWJjc2V0am1wLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgTW96aWxsYSBJbmMKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IE1vemlsbGEgSW5jCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX2xpYmNzaWduYWwuaCBiL2luY2x1ZGUvcHViX3Rvb2xfbGliY3NpZ25hbC5oCmluZGV4IDhjYTk0MjAuLjg4NzcwZDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfbGliY3NpZ25hbC5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfbGliY3NpZ25hbC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zOSw2ICszOSwxMSBAQAogICAgZGVmaW5lcy4gIFNpbmNlIHdlJ3JlIG9wZXJhdGluZyByaWdodCBhdCB0aGUga2VybmVsIGludGVyZmFjZSwgZ2xpYmMncyB2aWV3CiAgICBvZiB0aGUgd29ybGQgaXMgZW50aXJlbHkgaXJyZWxldmFudC4gKi8KIAorLyogLS0tIFNpZ25hbCBzZXQgb3BzIChvbmx5IHRoZSBvcHMgdXNlZCBieSB0b29scykgLS0tICovCitleHRlcm4gSW50ICBWR18oc2lnZGVsc2V0KSAgICggdmtpX3NpZ3NldF90KiBzZXQsIEludCBzaWdudW0gKTsKKy8qIE90aGVyIFNpZ25hbCBzZXQgb3BzIGFyZSBpbiBwdWJfY29yZV9saWJjc2lnbmFsLmggYW5kIG11c3QgYmUgbW92ZWQKKyAgIGhlcmUgaWYgbmVlZGVkIGJ5IHRvb2xzLiAqLworCiAvKiAtLS0gTWVzcyB3aXRoIHRoZSBrZXJuZWwncyBzaWcgc3RhdGUgLS0tICovCiBleHRlcm4gSW50IFZHXyhzaWdwcm9jbWFzaykgKCBJbnQgaG93LCBjb25zdCB2a2lfc2lnc2V0X3QqIHNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZraV9zaWdzZXRfdCogb2xkc2V0ICk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX21hY2hpbmUuaCBiL2luY2x1ZGUvcHViX3Rvb2xfbWFjaGluZS5oCmluZGV4IDFlMzExNzkuLjRlYzMxYWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfbWFjaGluZS5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfbWFjaGluZS5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zNCwxNCArMzQsMTQgQEAKICNpbmNsdWRlICJwdWJfdG9vbF9iYXNpY3MuaCIgICAgICAgICAgIC8vIFRocmVhZElECiAjaW5jbHVkZSAibGlidmV4LmgiICAgICAgICAgICAgICAgICAgICAvLyBWZXhBcmNoSW5mbwogCi0jaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KQorI2lmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCiAjICBkZWZpbmUgVkdfTUlOX0lOU1RSX1NaQiAgICAgICAgICAxICAvLyBtaW4gbGVuZ3RoIG9mIG5hdGl2ZSBpbnN0cnVjdGlvbgogIyAgZGVmaW5lIFZHX01BWF9JTlNUUl9TWkIgICAgICAgICAxNiAgLy8gbWF4IGxlbmd0aCBvZiBuYXRpdmUgaW5zdHJ1Y3Rpb24KICMgIGRlZmluZSBWR19DTFJFUV9TWkIgICAgICAgICAgICAgMTQgIC8vIGxlbmd0aCBvZiBhIGNsaWVudCByZXF1ZXN0LCBtYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgYmUgbGFyZ2VyIHRoYW4gVkdfTUFYX0lOU1RSX1NaQgogIyAgZGVmaW5lIFZHX1NUQUNLX1JFRFpPTkVfU1pCICAgICAgMCAgLy8gbnVtYmVyIG9mIGFkZHJlc3NhYmxlIGJ5dGVzIGJlbG93ICVSU1AKIAotI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpCisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9saW51eCkgfHwgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKICMgIGRlZmluZSBWR19NSU5fSU5TVFJfU1pCICAgICAgICAgIDEKICMgIGRlZmluZSBWR19NQVhfSU5TVFJfU1pCICAgICAgICAgMTYKICMgIGRlZmluZSBWR19DTFJFUV9TWkIgICAgICAgICAgICAgMTkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfbWFsbG9jZnJlZS5oIGIvaW5jbHVkZS9wdWJfdG9vbF9tYWxsb2NmcmVlLmgKaW5kZXggY2E2OTY2Ni4uMDIxN2Y2NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9tYWxsb2NmcmVlLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9tYWxsb2NmcmVlLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfb3B0aW9ucy5oIGIvaW5jbHVkZS9wdWJfdG9vbF9vcHRpb25zLmgKaW5kZXggZTZkZWUyMy4uOTRlZDU0NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9vcHRpb25zLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9vcHRpb25zLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfb3NldC5oIGIvaW5jbHVkZS9wdWJfdG9vbF9vc2V0LmgKaW5kZXggYTUyNjA2Yy4uMGM5Nzk5NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9vc2V0LmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9vc2V0LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOTgsNyArMjk4LDcgQEAKIC8vICAgdGhleSB3aWxsIHJldHVybiBOVUxMIGlmIFZHXyhPU2V0R2VuX05leHQpKCkgaXMgY2FsbGVkIHdpdGhvdXQgYW4KIC8vICAgaW50ZXJ2ZW5pbmcgY2FsbCB0byBWR18oT1NldEdlbl9SZXNldEl0ZXIpKCkuCiAKLWV4dGVybiBXb3JkICBWR18oT1NldEdlbl9TaXplKSAgICAgICAgICggY29uc3QgT1NldCogb3MgKTsKK2V4dGVybiBVSW50ICBWR18oT1NldEdlbl9TaXplKSAgICAgICAgICggY29uc3QgT1NldCogb3MgKTsKIGV4dGVybiB2b2lkICBWR18oT1NldEdlbl9JbnNlcnQpICAgICAgICggT1NldCogb3MsIHZvaWQqIGVsZW0gKTsKIGV4dGVybiBCb29sICBWR18oT1NldEdlbl9Db250YWlucykgICAgICggY29uc3QgT1NldCogb3MsIGNvbnN0IHZvaWQqIGtleSApOwogZXh0ZXJuIHZvaWQqIFZHXyhPU2V0R2VuX0xvb2t1cCkgICAgICAgKCBjb25zdCBPU2V0KiBvcywgY29uc3Qgdm9pZCoga2V5ICk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX3Bvb2xhbGxvYy5oIGIvaW5jbHVkZS9wdWJfdG9vbF9wb29sYWxsb2MuaAppbmRleCA2N2MxODAxLi41NDk1NjlmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX3Bvb2xhbGxvYy5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfcG9vbGFsbG9jLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDExLTIwMTMgT3BlbldvcmtzIExMUCBpbmZvQG9wZW4td29ya3MuY28udWssCisgICBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNSBPcGVuV29ya3MgTExQIGluZm9Ab3Blbi13b3Jrcy5jby51aywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBoaWxpcHBlIFdhcm9xdWllcnMgcGhpbGlwcGUud2Fyb3F1aWVyc0Bza3luZXQuYmUKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF9yYW5nZW1hcC5oIGIvaW5jbHVkZS9wdWJfdG9vbF9yYW5nZW1hcC5oCmluZGV4IDY1N2ZhZDYuLjIwOGI5ZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfcmFuZ2VtYXAuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX3JhbmdlbWFwLmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTQgTW96aWxsYSBGb3VuZGF0aW9uCisgICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBNb3ppbGxhIEZvdW5kYXRpb24KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKQEAgLTcxLDcgKzcxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qT1VUKi9VV29yZCogdmFsLCBjb25zdCBSYW5nZU1hcCogcm0sIFVXb3JkIGtleSApOwogCiAvKiBIb3cgbWFueSBlbGVtZW50cyBhcmUgdGhlcmUgaW4gdGhlIG1hcD8gKi8KLVdvcmQgVkdfKHNpemVSYW5nZU1hcCkgKCBjb25zdCBSYW5nZU1hcCogcm0gKTsKK1VJbnQgVkdfKHNpemVSYW5nZU1hcCkgKCBjb25zdCBSYW5nZU1hcCogcm0gKTsKIAogLyogR2V0IHRoZSBpJ3RoIGNvbXBvbmVudCAqLwogdm9pZCBWR18oaW5kZXhSYW5nZU1hcCkgKCAvKk9VVCovVVdvcmQqIGtleV9taW4sIC8qT1VUKi9VV29yZCoga2V5X21heCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfcmVkaXIuaCBiL2luY2x1ZGUvcHViX3Rvb2xfcmVkaXIuaAppbmRleCBmOTlmZmI3Li5iYWMwMGQ3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX3JlZGlyLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF9yZWRpci5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xODYsNiArMTg2LDcgQEAKICAgICAgKCAgICAgICAgIC0tPiAgWkwgICAgKGxlZnQpCiAgICAgICkgICAgICAgICAtLT4gIFpSICAgIChyaWdodCkKICAgICAgWiAgICAgICAgIC0tPiAgWlogICAgKFopCisgICAgIC8gICAgICAgICAtLT4gIFpTICAgIChzbGFzaCkKIAogICAgRXZlcnl0aGluZyBlbHNlIGlzIGxlZnQgdW5jaGFuZ2VkLgogKi8KQEAgLTI0MCw3ICsyNDEsNyBAQAogCiAvKiAtLS0gU29uYW1lIG9mIHRoZSBzdGFuZGFyZCBDIGxpYnJhcnkuIC0tLSAqLwogCi0jaWYgZGVmaW5lZChWR09fbGludXgpCisjaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAjICBkZWZpbmUgIFZHX1pfTElCQ19TT05BTUUgIGxpYmNaZHNvWmEgICAgICAgICAgICAgIC8vIGxpYmMuc28qCiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikgJiYgKERBUldJTl9WRVJTIDw9IERBUldJTl8xMF82KQpAQCAtMjc2LDYgKzI3Nyw4IEBACiAjICBkZWZpbmUgIFZHX1pfTElCUFRIUkVBRF9TT05BTUUgIGxpYnB0aHJlYWRaZHNvWmQwICAgICAvLyBsaWJwdGhyZWFkLnNvLjAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICMgIGRlZmluZSAgVkdfWl9MSUJQVEhSRUFEX1NPTkFNRSAgbGliU3lzdGVtWmRaYVpkZHlsaWIgIC8vIGxpYlN5c3RlbS4qLmR5bGliCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIyAgZGVmaW5lICBWR19aX0xJQlBUSFJFQURfU09OQU1FICBsaWJwdGhyZWFkWmRzb1pkMSAgICAgLy8gbGlicHRocmVhZC5zby4xCiAjZWxzZQogIyAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCiAjZW5kaWYKQEAgLTMxNSw2ICszMTgsMjcgQEAKIAogI2VuZGlmCiAKKy8qIC0tLSBTb25hbWUgZm9yIFNvbGFyaXMgcnVuLXRpbWUgbGlua2VyLiAtLS0gKi8KKy8vIE5vdGU6IHJ1bi10aW1lIGxpbmtlciBjb250YWlucyBhYnNvbHV0ZSBwYXRobmFtZSBpbiB0aGUgU09OQU1FLgorCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorIyAgZGVmaW5lICBWR19aX0xEX1NPXzEgICAgICAgICAgIFpTbGliWlNsZFpkc29aZDEgICAgICAgICAvLyAvbGliL2xkLnNvLjEKKyMgIGRlZmluZSAgVkdfVV9MRF9TT18xICAgICAgICAgICAiL2xpYi9sZC5zby4xIgorI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyMgIGRlZmluZSAgVkdfWl9MRF9TT18xICAgICAgICAgICBaU2xpYlpTYW1kNjRaU2xkWmRzb1pkMSAgLy8gL2xpYi9hbWQ2NC9sZC5zby4xCisjICBkZWZpbmUgIFZHX1VfTERfU09fMSAgICAgICAgICAgIi9saWIvYW1kNjQvbGQuc28uMSIKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyNlbmRpZgorCisvKiAtLS0gU29uYW1lIGZvciBTb2xhcmlzIGxpYnVtZW0gYWxsb2NhdGlvbiBpbnRlcnBvc2l0aW9uLiAtLS0gKi8KKworI2RlZmluZSAgVkdfWl9MSUJVTUVNX1NPXzEgICAgICAgICAgbGlidW1lbVpkc29aZDEgICAgICAgICAgICAgLy8gbGlidW1lbS5zby4xCisjZGVmaW5lICBWR19VX0xJQlVNRU1fU09fMSAgICAgICAgICAibGlidW1lbS5zby4xIgorCisjZW5kaWYKIAogLy8gUHJlZml4IGZvciBzeW5vbnltIHNvbmFtZSBzeW5vbnltIGhhbmRsaW5nCiAjZGVmaW5lIFZHX1NPX1NZTihuYW1lKSAgICAgICBWZ1NvU3luIyNuYW1lCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX3JlcGxhY2VtYWxsb2MuaCBiL2luY2x1ZGUvcHViX3Rvb2xfcmVwbGFjZW1hbGxvYy5oCmluZGV4IGJjMDE5ZjUuLjJjZTdiYTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfcmVwbGFjZW1hbGxvYy5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfcmVwbGFjZW1hbGxvYy5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX3NlcW1hdGNoLmggYi9pbmNsdWRlL3B1Yl90b29sX3NlcW1hdGNoLmgKaW5kZXggNjFmMDVjYi4uM2IwYjIxMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9zZXFtYXRjaC5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfc2VxbWF0Y2guaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBPcGVuV29ya3MgTHRkCisgICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBPcGVuV29ya3MgTHRkCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF9zaWduYWxzLmggYi9pbmNsdWRlL3B1Yl90b29sX3NpZ25hbHMuaAppbmRleCBhZDc5ZWMwLi4xYmFiNDc4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX3NpZ25hbHMuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX3NpZ25hbHMuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzYsMTEgKzM2LDE0IEBACiAvLyBSZWdpc3RlciBhbiBpbnRlcmVzdCBpbiBhcHBhcmVudGx5IGludGVybmFsIGZhdWx0czsgdXNlZCBjb2RlIHdoaWNoCiAvLyB3YW5kZXJzIGFyb3VuZCBkYW5nZXJvdXMgbWVtb3J5IChpZSwgbGVha2NoZWNrKS4gIFRoZSBjYXRjaGVyIGlzCiAvLyBub3QgZXhwZWN0ZWQgdG8gcmV0dXJuLgorLy8gUmV0dXJucyB0aGUgcHJldmlvdXNseSBzZXQgZmF1bHRfY2F0Y2hlciAoTlVMTCBpZiB0aGVyZSB3YXMgbm8gZmF1bHQKKy8vIGNhdGNoZXIgc2V0KQogLy8KIC8vIEl0J3MgZnJ1c3RyYXRpbmcgdGhhdCB3ZSBuZWVkIHRoaXMgaGVhZGVyIGZvciBhIHNpbmdsZSBmdW5jdGlvbiB1c2VkCiAvLyBvbmx5IGJ5IE1lbWNoZWNrIGR1cmluZyBsZWFrIGNoZWNraW5nLiAgV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gcmVtb3ZlCiAvLyB0aGUgbmVlZCBmb3IgdGhpcyBmaWxlLgotZXh0ZXJuIHZvaWQgVkdfKHNldF9mYXVsdF9jYXRjaGVyKSh2b2lkICgqY2F0Y2hlcikoSW50IHNpZywgQWRkciBhZGRyKSk7Cit0eXBlZGVmIHZvaWQgKCpmYXVsdF9jYXRjaGVyX3QpKEludCBzaWcsIEFkZHIgYWRkcik7CitleHRlcm4gZmF1bHRfY2F0Y2hlcl90IFZHXyhzZXRfZmF1bHRfY2F0Y2hlcikoZmF1bHRfY2F0Y2hlcl90IGNhdGNoZXIpOwogCiAjZW5kaWYgICAvLyBfX1BVQl9UT09MX1NJR05BTFNfSAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX3NwYXJzZXdhLmggYi9pbmNsdWRlL3B1Yl90b29sX3NwYXJzZXdhLmgKaW5kZXggOGUxNjQ0ZC4uOTgyYmZhYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF9zcGFyc2V3YS5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfc3BhcnNld2EuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBPcGVuV29ya3MgTHRkCisgICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBPcGVuV29ya3MgTHRkCiAgICAgICBpbmZvQG9wZW4td29ya3MuY28udWsKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF9zdGFja3RyYWNlLmggYi9pbmNsdWRlL3B1Yl90b29sX3N0YWNrdHJhY2UuaAppbmRleCBhNWRmMmNlLi41N2RmYmNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX3N0YWNrdHJhY2UuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX3N0YWNrdHJhY2UuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF90aHJlYWRzdGF0ZS5oIGIvaW5jbHVkZS9wdWJfdG9vbF90aHJlYWRzdGF0ZS5oCmluZGV4IGNjZDVkOTcuLjdhZDE3NmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfdGhyZWFkc3RhdGUuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX3RocmVhZHN0YXRlLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfdG9vbGlmYWNlLmggYi9pbmNsdWRlL3B1Yl90b29sX3Rvb2xpZmFjZS5oCmluZGV4IDM5NTJmMjkuLjhkZjAwYjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfdG9vbGlmYWNlLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF90b29saWZhY2UuaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNjMxLDYgKzYzMSwxNiBAQAogdm9pZCBWR18odHJhY2tfcG9zdF9yZWdfd3JpdGVfY2xpZW50Y2FsbF9yZXR1cm4pKAogICAgICAgdm9pZCgqZikoVGhyZWFkSWQgdGlkLCBQdHJkaWZmVCBndWVzdF9zdGF0ZV9vZmZzZXQsIFNpemVUIHNpemUsIEFkZHIgZikpOwogCisvKiBNZW0tdG8tcmVnIG9yIHJlZy10by1tZW0gY29weSBmdW5jdGlvbnMsIHRoZXNlIG9uZXMgb2NjdXIgYXJvdW5kIHN5c2NhbGxzCisgICBhbmQgc2lnbmFsIGhhbmRsaW5nIHdoZW4gdGhlIFZDUFUgc3RhdGUgaXMgc2F2ZWQgdG8gKG9yIHJlc3RvcmVkIGZyb20pIHRoZQorICAgY2xpZW50IG1lbW9yeS4gKi8KK3ZvaWQgVkdfKHRyYWNrX2NvcHlfbWVtX3RvX3JlZykodm9pZCgqZikoQ29yZVBhcnQgcGFydCwgVGhyZWFkSWQgdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRyIGEsIFB0cmRpZmZUIGd1ZXN0X3N0YXRlX29mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l6ZVQgc2l6ZSkpOwordm9pZCBWR18odHJhY2tfY29weV9yZWdfdG9fbWVtKSh2b2lkKCpmKShDb3JlUGFydCBwYXJ0LCBUaHJlYWRJZCB0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB0cmRpZmZUIGd1ZXN0X3N0YXRlX29mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkciBhLCBTaXplVCBzaXplKSk7CisKIAogLyogU2NoZWR1bGVyIGV2ZW50cyAobm90IGV4aGF1c3RpdmUpICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcHViX3Rvb2xfdHJhbnN0YWIuaCBiL2luY2x1ZGUvcHViX3Rvb2xfdHJhbnN0YWIuaAppbmRleCAxNjkwOGIzLi5mY2ZjMWUwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX3RyYW5zdGFiLmgKKysrIGIvaW5jbHVkZS9wdWJfdG9vbF90cmFuc3RhYi5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxNC0yMDE0IEZsb3JpYW4gS3JvaG0gICAoZmxvcmlhbkBlaWNoLWtyb2htLmRlKQorICAgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgRmxvcmlhbiBLcm9obSAgIChmbG9yaWFuQGVpY2gta3JvaG0uZGUpCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX3ZraS5oIGIvaW5jbHVkZS9wdWJfdG9vbF92a2kuaAppbmRleCAyOTY2Y2UzLi5kYjdiODRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX3ZraS5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfdmtpLmgKQEAgLTgsMTEgKzgsMTEgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01MCw2ICs1MCw4IEBACiAjICBpbmNsdWRlICJ2a2kvdmtpLWxpbnV4LWRybS5oIgogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIyAgaW5jbHVkZSAidmtpL3ZraS1kYXJ3aW4uaCIKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisjICBpbmNsdWRlICJ2a2kvdmtpLXNvbGFyaXMuaCIKICNlbHNlCiAjICBlcnJvciBVbmtub3duIFBsYXQvT1MKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF92a2lzY251bXMuaCBiL2luY2x1ZGUvcHViX3Rvb2xfdmtpc2NudW1zLmgKaW5kZXggMjVkYzMxYy4uZmY1ZGY1OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF92a2lzY251bXMuaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX3ZraXNjbnVtcy5oCkBAIC03LDkgKzcsOSBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX3ZraXNjbnVtc19hc20uaCBiL2luY2x1ZGUvcHViX3Rvb2xfdmtpc2NudW1zX2FzbS5oCmluZGV4IDg2MGU4ZDAuLmQ2ZWE1MmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcHViX3Rvb2xfdmtpc2NudW1zX2FzbS5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfdmtpc2NudW1zX2FzbS5oCkBAIC03LDkgKzcsOSBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAKKyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDE1IE9wZW5Xb3JrcyBMTFAKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02Niw2ICs2Niw5IEBACiAjZWxpZiBkZWZpbmVkKFZHUF90aWxlZ3hfbGludXgpCiAjICBpbmNsdWRlICJ2a2kvdmtpLXNjbnVtcy10aWxlZ3gtbGludXguaCIKIAorI2VsaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpIHx8IChWR1BfYW1kNjRfc29sYXJpcykKKyMgIGluY2x1ZGUgInZraS92a2ktc2NudW1zLXNvbGFyaXMuaCIKKwogI2Vsc2UKICMgIGVycm9yIFVua25vd24gcGxhdGZvcm0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wdWJfdG9vbF93b3JkZm0uaCBiL2luY2x1ZGUvcHViX3Rvb2xfd29yZGZtLmgKaW5kZXggMWYxYzk3OS4uMjM5YWU5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wdWJfdG9vbF93b3JkZm0uaAorKysgYi9pbmNsdWRlL3B1Yl90b29sX3dvcmRmbS5oCkBAIC05LDEzICs5LDEzIEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgY29kZSBpcyBiYXNlZCBvbiBwcmV2aW91cyB3b3JrIGJ5IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgIChjb3JlZ3JpbmQvbV9vc2V0LmMpIHdoaWNoIGlzCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgICBuam5AdmFsZ3JpbmQub3JnCiAKICAgIHdoaWNoIGluIHR1cm4gd2FzIGRlcml2ZWQgcGFydGlhbGx5IGZyb206CmRpZmYgLS1naXQgYS9pbmNsdWRlL3B1Yl90b29sX3hhcnJheS5oIGIvaW5jbHVkZS9wdWJfdG9vbF94YXJyYXkuaAppbmRleCBlM2JjODRlLi4yYjBmZTk5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3B1Yl90b29sX3hhcnJheS5oCisrKyBiL2luY2x1ZGUvcHViX3Rvb2xfeGFycmF5LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgT3BlbldvcmtzIExMUAorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgT3BlbldvcmtzIExMUAogICAgICAgaW5mb0BvcGVuLXdvcmtzLmNvLnVrCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmFsZ3JpbmQuaCBiL2luY2x1ZGUvdmFsZ3JpbmQuaAppbmRleCA2MTNkZTA2Li5jNTA1ZjlmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZhbGdyaW5kLmgKKysrIGIvaW5jbHVkZS92YWxncmluZC5oCkBAIC0xMiw3ICsxMiw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg5LDcgKzg5LDcgQEAKICAgICAgICAgfHwgKF9fVkFMR1JJTkRfTUFKT1JfXyA9PSAzICYmIF9fVkFMR1JJTkRfTUlOT1JfXyA+PSA2KSkKICovCiAjZGVmaW5lIF9fVkFMR1JJTkRfTUFKT1JfXyAgICAzCi0jZGVmaW5lIF9fVkFMR1JJTkRfTUlOT1JfXyAgICAxMAorI2RlZmluZSBfX1ZBTEdSSU5EX01JTk9SX18gICAgMTIKIAogCiAjaW5jbHVkZSA8c3RkYXJnLmg+CkBAIC0xMjMsNiArMTIzLDggQEAKICN1bmRlZiBQTEFUX21pcHMzMl9saW51eAogI3VuZGVmIFBMQVRfbWlwczY0X2xpbnV4CiAjdW5kZWYgUExBVF90aWxlZ3hfbGludXgKKyN1bmRlZiBQTEFUX3g4Nl9zb2xhcmlzCisjdW5kZWYgUExBVF9hbWQ2NF9zb2xhcmlzCiAKIAogI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBkZWZpbmVkKF9faTM4Nl9fKQpAQCAtMTM4LDcgKzE0MCw3IEBACiAjICBkZWZpbmUgUExBVF9hbWQ2NF93aW42NCAxCiAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX2kzODZfXykKICMgIGRlZmluZSBQTEFUX3g4Nl9saW51eCAxCi0jZWxpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3g4Nl82NF9fKQorI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX194ODZfNjRfXykgJiYgIWRlZmluZWQoX19JTFAzMl9fKQogIyAgZGVmaW5lIFBMQVRfYW1kNjRfbGludXggMQogI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wb3dlcnBjX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCiAjICBkZWZpbmUgUExBVF9wcGMzMl9saW51eCAxCkBAIC0xNjAsNiArMTYyLDEwIEBACiAjICBkZWZpbmUgUExBVF9taXBzMzJfbGludXggMQogI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX190aWxlZ3hfXykKICMgIGRlZmluZSBQTEFUX3RpbGVneF9saW51eCAxCisjZWxpZiBkZWZpbmVkKF9fc3VuKSAmJiBkZWZpbmVkKF9faTM4Nl9fKQorIyAgZGVmaW5lIFBMQVRfeDg2X3NvbGFyaXMgMQorI2VsaWYgZGVmaW5lZChfX3N1bikgJiYgZGVmaW5lZChfX3g4Nl82NF9fKQorIyAgZGVmaW5lIFBMQVRfYW1kNjRfc29sYXJpcyAxCiAjZWxzZQogLyogSWYgd2UncmUgbm90IGNvbXBpbGluZyBmb3Igb3VyIHRhcmdldCBwbGF0Zm9ybSwgZG9uJ3QgZ2VuZXJhdGUKICAgIGFueSBpbmxpbmUgYXNtcy4gICovCkBAIC0yNDcsMTAgKzI1MywxMSBAQAogICAgaW5saW5lIGFzbSBzdHVmZiB0byBiZSB1c2VmdWwuCiAqLwogCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHg4Ni17bGludXgsZGFyd2lufSAtLS0tLS0tLS0tLS0tLS0tICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLSB4ODYte2xpbnV4LGRhcndpbixzb2xhcmlzfSAtLS0tLS0tLS0tLS0tLS0tICovCiAKICNpZiBkZWZpbmVkKFBMQVRfeDg2X2xpbnV4KSAgfHwgIGRlZmluZWQoUExBVF94ODZfZGFyd2luKSAgXAotICAgIHx8ICAoZGVmaW5lZChQTEFUX3g4Nl93aW4zMikgJiYgZGVmaW5lZChfX0dOVUNfXykpCisgICAgfHwgIChkZWZpbmVkKFBMQVRfeDg2X3dpbjMyKSAmJiBkZWZpbmVkKF9fR05VQ19fKSkgXAorICAgIHx8ICBkZWZpbmVkKFBMQVRfeDg2X3NvbGFyaXMpCiAKIHR5cGVkZWYKICAgIHN0cnVjdCB7IApAQCAtMzEwLDcgKzMxNyw4IEBACiAgICAgICAgICAgICAgICAgICAgICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9IHdoaWxlICgwKQogCi0jZW5kaWYgLyogUExBVF94ODZfbGludXggfHwgUExBVF94ODZfZGFyd2luIHx8IChQTEFUX3g4Nl93aW4zMiAmJiBfX0dOVUNfXykgKi8KKyNlbmRpZiAvKiBQTEFUX3g4Nl9saW51eCB8fCBQTEFUX3g4Nl9kYXJ3aW4gfHwgKFBMQVRfeDg2X3dpbjMyICYmIF9fR05VQ19fKQorICAgICAgICAgIHx8IFBMQVRfeDg2X3NvbGFyaXMgKi8KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB4ODYtV2luMzIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCkBAIC0zODUsOSArMzkzLDEwIEBACiAKICNlbmRpZiAvKiBQTEFUX3g4Nl93aW4zMiAqLwogCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gYW1kNjQte2xpbnV4LGRhcndpbn0gLS0tLS0tLS0tLS0tLS0tICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLSBhbWQ2NC17bGludXgsZGFyd2luLHNvbGFyaXN9IC0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaWYgZGVmaW5lZChQTEFUX2FtZDY0X2xpbnV4KSAgfHwgIGRlZmluZWQoUExBVF9hbWQ2NF9kYXJ3aW4pIFwKKyAgICB8fCAgZGVmaW5lZChQTEFUX2FtZDY0X3NvbGFyaXMpIFwKICAgICB8fCAgKGRlZmluZWQoUExBVF9hbWQ2NF93aW42NCkgJiYgZGVmaW5lZChfX0dOVUNfXykpCiAKIHR5cGVkZWYKQEAgLTQ0OCw3ICs0NTcsNyBAQAogICAgICAgICAgICAgICAgICAgICApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSB3aGlsZSAoMCkKIAotI2VuZGlmIC8qIFBMQVRfYW1kNjRfbGludXggfHwgUExBVF9hbWQ2NF9kYXJ3aW4gKi8KKyNlbmRpZiAvKiBQTEFUX2FtZDY0X2xpbnV4IHx8IFBMQVRfYW1kNjRfZGFyd2luIHx8IFBMQVRfYW1kNjRfc29sYXJpcyAqLwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGFtZDY0LVdpbjY0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtNzg1LDcgKzc5NCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAib3JyIHgxMCwgeDEwLCB4MTBcblx0IiAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAibW92ICUwLCB4MyIgICAgIC8qcmVzdWx0Ki8gICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICA6ICI9ciIgKF96enFfcmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICA6ICJyIiAoKHVuc2lnbmVkIGxvbmcgaW50KV96enFfZGVmYXVsdCksICJyIiAoJl96enFfYXJnc1swXSkgICAgXAorICAgICAgICAgICAgICAgICAgICAgOiAiciIgKCh1bnNpZ25lZCBsb25nIGludCkoX3p6cV9kZWZhdWx0KSksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAiciIgKCZfenpxX2FyZ3NbMF0pICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgOiAiY2MiLCJtZW1vcnkiLCAieDMiLCAieDQiKTsgICAgICAgICAgICAgICAgXAogICAgIF96enFfcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB9KQpAQCAtMTIwMiw5ICsxMjEyLDEwIEBACiAgICBkbyB7IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgX2p1bms7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIENBTExfRk5fV183VyhfanVuayxmbnB0cixhcmcxLGFyZzIsYXJnMyxhcmc0LGFyZzUsYXJnNixhcmc3KTsgfSB3aGlsZSAoMCkKIAotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB4ODYte2xpbnV4LGRhcndpbn0gLS0tLS0tLS0tLS0tLS0tLSAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0geDg2LXtsaW51eCxkYXJ3aW4sc29sYXJpc30gLS0tLS0tLS0tLS0tLS0tLSAqLwogCi0jaWYgZGVmaW5lZChQTEFUX3g4Nl9saW51eCkgIHx8ICBkZWZpbmVkKFBMQVRfeDg2X2RhcndpbikKKyNpZiBkZWZpbmVkKFBMQVRfeDg2X2xpbnV4KSAgfHwgIGRlZmluZWQoUExBVF94ODZfZGFyd2luKSBcCisgICAgfHwgIGRlZmluZWQoUExBVF94ODZfc29sYXJpcykKIAogLyogVGhlc2UgcmVncyBhcmUgdHJhc2hlZCBieSB0aGUgaGlkZGVuIGNhbGwuICBObyBuZWVkIHRvIG1lbnRpb24gZWF4CiAgICBhcyBnY2MgY2FuIGFscmVhZHkgc2VlIHRoYXQsIHBsdXMgY2F1c2VzIGdjYyB0byBib21iLiAqLwpAQCAtMTYzMSwxMSArMTY0MiwxMiBAQAogICAgICAgbHZhbCA9IChfX3R5cGVvZl9fKGx2YWwpKSBfcmVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSB3aGlsZSAoMCkKIAotI2VuZGlmIC8qIFBMQVRfeDg2X2xpbnV4IHx8IFBMQVRfeDg2X2RhcndpbiAqLworI2VuZGlmIC8qIFBMQVRfeDg2X2xpbnV4IHx8IFBMQVRfeDg2X2RhcndpbiB8fCBQTEFUX3g4Nl9zb2xhcmlzICovCiAKLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBhbWQ2NC17bGludXgsZGFyd2lufSAtLS0tLS0tLS0tLS0tLS0gKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0gYW1kNjQte2xpbnV4LGRhcndpbixzb2xhcmlzfSAtLS0tLS0tLS0tLS0tLS0gKi8KIAotI2lmIGRlZmluZWQoUExBVF9hbWQ2NF9saW51eCkgIHx8ICBkZWZpbmVkKFBMQVRfYW1kNjRfZGFyd2luKQorI2lmIGRlZmluZWQoUExBVF9hbWQ2NF9saW51eCkgIHx8ICBkZWZpbmVkKFBMQVRfYW1kNjRfZGFyd2luKSBcCisgICAgfHwgIGRlZmluZWQoUExBVF9hbWQ2NF9zb2xhcmlzKQogCiAvKiBBUkdSRUdTOiByZGkgcnNpIHJkeCByY3ggcjggcjkgKHRoZSByZXN0IG9uIHN0YWNrIGluIFItdG8tTCBvcmRlcikgKi8KIApAQCAtMjE4NCw3ICsyMTk2LDcgQEAKICAgICAgIGx2YWwgPSAoX190eXBlb2ZfXyhsdmFsKSkgX3JlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSB3aGlsZSAoMCkKIAotI2VuZGlmIC8qIFBMQVRfYW1kNjRfbGludXggfHwgUExBVF9hbWQ2NF9kYXJ3aW4gKi8KKyNlbmRpZiAvKiBQTEFUX2FtZDY0X2xpbnV4IHx8IFBMQVRfYW1kNjRfZGFyd2luIHx8IFBMQVRfYW1kNjRfc29sYXJpcyAqLwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gcHBjMzItbGludXggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKQEAgLTcxMDgsNSArNzEyMCw3IEBACiAjdW5kZWYgUExBVF9taXBzMzJfbGludXgKICN1bmRlZiBQTEFUX21pcHM2NF9saW51eAogI3VuZGVmIFBMQVRfdGlsZWd4X2xpbnV4CisjdW5kZWYgUExBVF94ODZfc29sYXJpcworI3VuZGVmIFBMQVRfYW1kNjRfc29sYXJpcwogCiAjZW5kaWYgICAvKiBfX1ZBTEdSSU5EX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1hbWQ2NC1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLWFtZDY0LWxpbnV4LmgKaW5kZXggNjE4NDdhNy4uZGI4NWI5MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLWFtZDY0LWxpbnV4LmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLWFtZDY0LWxpbnV4LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNjkxLDYgKzY5MSwxMyBAQAogI2RlZmluZQlWS0lfRU9WRVJGTE9XICAgIDc1ICAvKiBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQgZGF0YSB0eXBlICovCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gRnJvbSBsaW51eC0zLjE5LjAvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2lvY3Rscy5oCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2RlZmluZSBWS0lfVElPQ0dTRVJJQUwgICAgIDB4NTQxRQorI2RlZmluZSBWS0lfVElPQ1NTRVJJQUwgICAgIDB4NTQxRgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEFuZCB0aGF0J3MgaXQhCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLWFybS1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLWFybS1saW51eC5oCmluZGV4IDAzMWY1MjguLmZlN2ExNzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1hcm0tbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktYXJtLWxpbnV4LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtOTAxLDYgKzkwMSwxMyBAQAogI2RlZmluZQlWS0lfRU9WRVJGTE9XICAgIDc1ICAvKiBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQgZGF0YSB0eXBlICovCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gRnJvbSBsaW51eC0zLjE5LjAvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2lvY3Rscy5oCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2RlZmluZSBWS0lfVElPQ0dTRVJJQUwgICAgIDB4NTQxRQorI2RlZmluZSBWS0lfVElPQ1NTRVJJQUwgICAgIDB4NTQxRgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEFuZCB0aGF0J3MgaXQhCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLWFybTY0LWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktYXJtNjQtbGludXguaAppbmRleCA3NDdkMGJmLi5kZjM0ZGQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktYXJtNjQtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktYXJtNjQtbGludXguaApAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxMyBPcGVuV29ya3MKKyAgIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IE9wZW5Xb3JrcwogICAgICAgaW5mb0BvcGVuLXdvcmtzLm5ldAogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02ODQsNiArNjg0LDEzIEBACiAjZGVmaW5lCVZLSV9FT1ZFUkZMT1cgICAgNzUgIC8qIFZhbHVlIHRvbyBsYXJnZSBmb3IgZGVmaW5lZCBkYXRhIHR5cGUgKi8KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBGcm9tIGxpbnV4LTMuMTkuMC9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaW9jdGxzLmgKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjZGVmaW5lIFZLSV9USU9DR1NFUklBTCAgICAgMHg1NDFFCisjZGVmaW5lIFZLSV9USU9DU1NFUklBTCAgICAgMHg1NDFGCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gQW5kIHRoYXQncyBpdCEKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLWRhcndpbi5oIGIvaW5jbHVkZS92a2kvdmtpLWRhcndpbi5oCmluZGV4IDllNTNmMjUuLjQ5ZDBkNGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1kYXJ3aW4uaAorKysgYi9pbmNsdWRlL3ZraS92a2ktZGFyd2luLmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTMgQXBwbGUgSW5jLgorICAgQ29weXJpZ2h0IChDKSAyMDA3LTIwMTUgQXBwbGUgSW5jLgogICAgICAgR3JlZyBQYXJrZXIgIGdwYXJrZXJAYXBwbGUuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTM0LDYgKzM0LDEyIEBACiAjaWZuZGVmIF9fVktJX0RBUldJTl9ICiAjZGVmaW5lIF9fVktJX0RBUldJTl9ICiAKKy8qIHN0cnVjdCBfX2Rhcndpbl91Y29udGV4dCBpc24ndCBmdWxseSBkZWNsYXJlZCB3aXRob3V0CisgKiB0aGlzIGRlZmluaXRpb24uICBJdCdzIGNyYXp5IGJ1dCB0aGVyZSBpdCBpcy4gICovCisjaWZuZGVmIF9YT1BFTl9TT1VSQ0UKKyNkZWZpbmUgX1hPUEVOX1NPVVJDRSAwNTAwCisjZW5kaWYKKwogI2luY2x1ZGUgPHN0ZGludC5oPgogCiAjZGVmaW5lIHZraV9pbnQ4X3QgaW50OF90CkBAIC0xMDYsNiArMTEyLDggQEAKIAogI2RlZmluZSB2a2lfdGltZXZhbCB0aW1ldmFsCiAjZGVmaW5lIHZraV90aW1ldmFsMzIgdGltZXZhbDMyCisjZGVmaW5lIHZraV90dl9zZWMgdHZfc2VjCisjZGVmaW5lIHZraV90dl91c2VjIHR2X3VzZWMKICNkZWZpbmUgdmtpX3RpbWVzcGVjIHRpbWVzcGVjCiAjZGVmaW5lIHZraV9pdGltZXJ2YWwgaXRpbWVydmFsCiAjZGVmaW5lIHZraV90aW1lem9uZSB0aW1lem9uZQpAQCAtMjk2LDYgKzMwNCwxMSBAQAogI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF85CiAjIGRlZmluZSBWS0lfRl9BRERGSUxFU0lHUyAgRl9BRERGSUxFU0lHUwogI2VuZGlmCisjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzExCisjIGRlZmluZSBWS0lfRl9BRERGSUxFU0lHU19GT1JfRFlMRF9TSU0gIEZfQURERklMRVNJR1NfRk9SX0RZTERfU0lNCisjIGRlZmluZSBWS0lfRl9CQVJSSUVSRlNZTkMgICAgICAgICAgICAgIEZfQkFSUklFUkZTWU5DCisjIGRlZmluZSBWS0lfRl9BRERGSUxFU0lHU19SRVRVUk4gICAgICAgIEZfQURERklMRVNJR1NfUkVUVVJOCisjZW5kaWYKICNkZWZpbmUgVktJX0ZfRlVMTEZTWU5DCUZfRlVMTEZTWU5DCiAjZGVmaW5lIFZLSV9GX1BBVEhQS0dfQ0hFQ0sJRl9QQVRIUEtHX0NIRUNLCiAjZGVmaW5lIFZLSV9GX0ZSRUVaRV9GUwlGX0ZSRUVaRV9GUwpAQCAtOTk1LDYgKzEwMDgsMjMgQEAKICNkZWZpbmUgVktJX0RUUkFDRUhJT0NfQURERE9GICAgRFRSQUNFSElPQ19BRERET0YKIAogCisjaW5jbHVkZSA8bmV0L2JwZi5oPgorCisjZGVmaW5lIHZraV9icGZfcHJvZ3JhbSBicGZfcHJvZ3JhbQorI2RlZmluZSB2a2lfYmZfbGVuIGJmX2xlbgorI2RlZmluZSB2a2lfYmZfaW5zbnMgYmZfaW5zbnMKKyNkZWZpbmUgdmtpX2JwZl9kbHRsaXN0IGJwZl9kbHRsaXN0CisjZGVmaW5lIHZraV9iZmxfbGVuIGJmbF9sZW4KKyNkZWZpbmUgdmtpX2JmbF9saXN0IGJmbF9saXN0CisKKyNkZWZpbmUgVktJX0JJT0NTRVRGICAgICAgICBCSU9DU0VURgorI2RlZmluZSBWS0lfQklPQ0ZMVVNIICAgICAgIEJJT0NGTFVTSAorI2RlZmluZSBWS0lfQklPQ1BST01JU0MgICAgIEJJT0NQUk9NSVNDCisjZGVmaW5lIFZLSV9CSU9DU0VUSUYgICAgICAgQklPQ1NFVElGCisjZGVmaW5lIFZLSV9CSU9DU1JUSU1FT1VUICAgQklPQ1NSVElNRU9VVAorI2RlZmluZSBWS0lfQklPQ0dETFRMSVNUICAgIEJJT0NHRExUTElTVAorCisKICNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KIAogLyogcXVpdGUgd2h5IHN5cy91Y29udGV4dC5oIHByb3ZpZGVzIGEgJ3N0cnVjdCBfX2Rhcndpbl91Y29udGV4dCcKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLWxpbnV4LmgKaW5kZXggNmRiOTJkYy4uMGRmMjRkZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLWxpbnV4LmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLWxpbnV4LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtODM4LDIyICs4MzgsMjIgQEAKIH07CiAKICNkZWZpbmUgdmtpX2lmcl9uYW1lCWlmcl9pZnJuLmlmcm5fbmFtZQkvKiBpbnRlcmZhY2UgbmFtZSAJKi8KLSNkZWZpbmUgaWZyX2h3YWRkcglpZnJfaWZydS5pZnJ1X2h3YWRkcgkvKiBNQUMgYWRkcmVzcyAJCSovCi0jZGVmaW5lCWlmcl9hZGRyCWlmcl9pZnJ1LmlmcnVfYWRkcgkvKiBhZGRyZXNzCQkqLwotI2RlZmluZQlpZnJfZHN0YWRkcglpZnJfaWZydS5pZnJ1X2RzdGFkZHIJLyogb3RoZXIgZW5kIG9mIHAtcCBsbmsJKi8KLSNkZWZpbmUJaWZyX2Jyb2FkYWRkcglpZnJfaWZydS5pZnJ1X2Jyb2FkYWRkcgkvKiBicm9hZGNhc3QgYWRkcmVzcwkqLwotI2RlZmluZQlpZnJfbmV0bWFzawlpZnJfaWZydS5pZnJ1X25ldG1hc2sJLyogaW50ZXJmYWNlIG5ldCBtYXNrCSovCisjZGVmaW5lIHZraV9pZnJfaHdhZGRyCWlmcl9pZnJ1LmlmcnVfaHdhZGRyCS8qIE1BQyBhZGRyZXNzIAkJKi8KKyNkZWZpbmUJdmtpX2lmcl9hZGRyCWlmcl9pZnJ1LmlmcnVfYWRkcgkvKiBhZGRyZXNzCQkqLworI2RlZmluZQl2a2lfaWZyX2RzdGFkZHIJaWZyX2lmcnUuaWZydV9kc3RhZGRyCS8qIG90aGVyIGVuZCBvZiBwLXAgbG5rCSovCisjZGVmaW5lCXZraV9pZnJfYnJvYWRhZGRyIGlmcl9pZnJ1LmlmcnVfYnJvYWRhZGRyIC8qIGJyb2FkY2FzdCBhZGRyZXNzCSovCisjZGVmaW5lCXZraV9pZnJfbmV0bWFzawlpZnJfaWZydS5pZnJ1X25ldG1hc2sJLyogaW50ZXJmYWNlIG5ldCBtYXNrCSovCiAjZGVmaW5lCXZraV9pZnJfZmxhZ3MJaWZyX2lmcnUuaWZydV9mbGFncwkvKiBmbGFncwkJKi8KICNkZWZpbmUJdmtpX2lmcl9tZXRyaWMJaWZyX2lmcnUuaWZydV9pdmFsdWUJLyogbWV0cmljCQkqLwotI2RlZmluZQl2a2lfaWZyX210dQkJaWZyX2lmcnUuaWZydV9tdHUJLyogbXR1CQkJKi8KLSNkZWZpbmUgaWZyX21hcAkJaWZyX2lmcnUuaWZydV9tYXAJLyogZGV2aWNlIG1hcAkJKi8KLSNkZWZpbmUgaWZyX3NsYXZlCWlmcl9pZnJ1LmlmcnVfc2xhdmUJLyogc2xhdmUgZGV2aWNlCQkqLworI2RlZmluZQl2a2lfaWZyX210dQlpZnJfaWZydS5pZnJ1X210dQkvKiBtdHUJCQkqLworI2RlZmluZSB2a2lfaWZyX21hcAlpZnJfaWZydS5pZnJ1X21hcAkvKiBkZXZpY2UgbWFwCQkqLworI2RlZmluZSB2a2lfaWZyX3NsYXZlCWlmcl9pZnJ1LmlmcnVfc2xhdmUJLyogc2xhdmUgZGV2aWNlCQkqLwogI2RlZmluZQl2a2lfaWZyX2RhdGEJaWZyX2lmcnUuaWZydV9kYXRhCS8qIGZvciB1c2UgYnkgaW50ZXJmYWNlCSovCiAjZGVmaW5lIHZraV9pZnJfaWZpbmRleAlpZnJfaWZydS5pZnJ1X2l2YWx1ZQkvKiBpbnRlcmZhY2UgaW5kZXgJKi8KLSNkZWZpbmUgaWZyX2JhbmR3aWR0aAlpZnJfaWZydS5pZnJ1X2l2YWx1ZSAgICAvKiBsaW5rIGJhbmR3aWR0aAkqLwotI2RlZmluZSBpZnJfcWxlbglpZnJfaWZydS5pZnJ1X2l2YWx1ZQkvKiBRdWV1ZSBsZW5ndGggCSovCi0jZGVmaW5lIGlmcl9uZXduYW1lCWlmcl9pZnJ1LmlmcnVfbmV3bmFtZQkvKiBOZXcgbmFtZQkJKi8KLSNkZWZpbmUgaWZyX3NldHRpbmdzCWlmcl9pZnJ1LmlmcnVfc2V0dGluZ3MJLyogRGV2aWNlL3Byb3RvIHNldHRpbmdzKi8KKyNkZWZpbmUgdmtpX2lmcl9iYW5kd2lkdGggaWZyX2lmcnUuaWZydV9pdmFsdWUgIC8qIGxpbmsgYmFuZHdpZHRoCSovCisjZGVmaW5lIHZraV9pZnJfcWxlbglpZnJfaWZydS5pZnJ1X2l2YWx1ZQkvKiBRdWV1ZSBsZW5ndGggCSovCisjZGVmaW5lIHZraV9pZnJfbmV3bmFtZQlpZnJfaWZydS5pZnJ1X25ld25hbWUJLyogTmV3IG5hbWUJCSovCisjZGVmaW5lIHZraV9pZnJfc2V0dGluZ3MgaWZyX2lmcnUuaWZydV9zZXR0aW5ncwkvKiBEZXZpY2UvcHJvdG8gc2V0dGluZ3MqLwogCiBzdHJ1Y3QgdmtpX2lmY29uZiAKIHsKQEAgLTMxNjcsNiArMzE2NywyNCBAQAogI2RlZmluZSBWS0lfS1ZNX05NSSAgICAgICAgICAgICAgICAgICBfVktJX0lPKEtWTUlPLCAgIDB4OWEpCiAjZGVmaW5lIFZLSV9LVk1fS1ZNQ0xPQ0tfQ1RSTCAgICAgICAgIF9WS0lfSU8oS1ZNSU8sICAgMHhhZCkKIAorc3RydWN0IHZraV9rdm1fczM5MF9tZW1fb3AgeworICAgICAgICAvKiBpbiAqLworICAgICAgICBfX3ZraV91NjQgZ2FkZHI7ICAgICAgICAgICAgLyogdGhlIGd1ZXN0IGFkZHJlc3MgKi8KKyAgICAgICAgX192a2lfdTY0IGZsYWdzOyAgICAgICAgICAgIC8qIGZsYWdzICovCisgICAgICAgIF9fdmtpX3UzMiBzaXplOyAgICAgICAgICAgICAvKiBhbW91bnQgb2YgYnl0ZXMgKi8KKyAgICAgICAgX192a2lfdTMyIG9wOyAgICAgICAgICAgICAgIC8qIHR5cGUgb2Ygb3BlcmF0aW9uICovCisgICAgICAgIF9fdmtpX3U2NCBidWY7ICAgICAgICAgICAgICAvKiBidWZmZXIgaW4gdXNlcnNwYWNlICovCisgICAgICAgIF9fdmtpX3U4IGFyOyAgICAgICAgICAgICAgICAvKiB0aGUgYWNjZXNzIHJlZ2lzdGVyIG51bWJlciAqLworICAgICAgICBfX3ZraV91OCByZXNlcnZlZFszMV07ICAgICAgLyogc2hvdWxkIGJlIHNldCB0byAwICovCit9OworCisjZGVmaW5lIFZLSV9LVk1fUzM5MF9NRU1PUF9MT0dJQ0FMX1JFQUQJCTAKKyNkZWZpbmUgVktJX0tWTV9TMzkwX01FTU9QX0xPR0lDQUxfV1JJVEUJMQorI2RlZmluZSBWS0lfS1ZNX1MzOTBfTUVNT1BfRl9DSEVDS19PTkxZCQkoMVVMTCA8PCAwKQorI2RlZmluZSBWS0lfS1ZNX1MzOTBfTUVNT1BfRl9JTkpFQ1RfRVhDRVBUSU9OCSgxVUxMIDw8IDEpCisKKyNkZWZpbmUgVktJX0tWTV9TMzkwX01FTV9PUCAgICAgICAgICAgX1ZLSV9JT1coS1ZNSU8sICAweGIxLCBzdHJ1Y3QgdmtpX2t2bV9zMzkwX21lbV9vcCkKKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBGcm9tIGxpbnV4LTIuNi9pbmNsdWRlL2xpbnV4L25ldF9zdGFtcC5oCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMyOTQsNyArMzMxMiw2IEBACiAJX1ZLSV9JT0MoX1ZLSV9JT0NfTk9ORSwgJ0UnLCAwLCBzaXplb2Yoc3RydWN0IHZraV94ZW5faW9jdGxfZXZ0Y2huX2JpbmRfdmlycSkpCiBzdHJ1Y3QgdmtpX3hlbl9pb2N0bF9ldnRjaG5fYmluZF92aXJxIHsKIAl2a2lfdWludDMyX3QgdmlycTsKLQl2a2lfdWludDMyX3QgcG9ydDsKIH07CiAKICNkZWZpbmUgVktJX1hFTl9JT0NUTF9FVlRDSE5fQklORF9JTlRFUkRPTUFJTgkJCVwKQEAgLTM2NzUsNiArMzY5MiwxMCBAQAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBGcm9tIEx1c3RyZSdzIGx1c3RyZS9pbmNsdWRlL2x1c3RyZS9sdXN0cmVfdXNlci5oCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNkZWZpbmUgVktJX0xMX0lPQ19HUk9VUF9MT0NLIFwKKyAgICAgICAgICAgX1ZLSV9JT1coJ2YnLCAxNTgsIGxvbmcpCisjZGVmaW5lIFZLSV9MTF9JT0NfR1JPVVBfVU5MT0NLIFwKKyAgICAgICAgICAgX1ZLSV9JT1coJ2YnLCAxNTksIGxvbmcpCiAjZGVmaW5lIFZLSV9MTF9JT0NfR0VUUEFSRU5UIFwKICAgICAgICAgICAgX1ZLSV9JT1dSKCdmJywgMjQ5LCBzdHJ1Y3QgdmtpX2dldHBhcmVudCkKIApAQCAtNDIyMyw4ICs0MjQ0LDggQEAKIAogc3RydWN0IHZraV92NGwyX3BsYW5lX3BpeF9mb3JtYXQgewogCV9fdmtpX3UzMgkJc2l6ZWltYWdlOwotCV9fdmtpX3UxNgkJYnl0ZXNwZXJsaW5lOwotCV9fdmtpX3UxNgkJcmVzZXJ2ZWRbN107CisJX192a2lfdTMyCQlieXRlc3BlcmxpbmU7CisJX192a2lfdTE2CQlyZXNlcnZlZFs2XTsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCiAjZGVmaW5lIFZLSV9WSURFT19NQVhfUExBTkVTICAgICAgICAgICAgICAgOApAQCAtNDQ5Miw3ICs0NTEzLDggQEAKIAlfX3ZraV91MzIgcGFkOwogCV9fdmtpX3UzMiBpbmRleDsKIAlfX3ZraV91MzIgY29kZTsKLQlfX3ZraV91MzIgcmVzZXJ2ZWRbOV07CisJX192a2lfdTMyIHdoaWNoOworCV9fdmtpX3UzMiByZXNlcnZlZFs4XTsKIH07CiAKIHN0cnVjdCB2a2lfdjRsMl9zdWJkZXZfZnJhbWVfc2l6ZV9lbnVtIHsKQEAgLTQ1MDMsNyArNDUyNSw4IEBACiAJX192a2lfdTMyIG1heF93aWR0aDsKIAlfX3ZraV91MzIgbWluX2hlaWdodDsKIAlfX3ZraV91MzIgbWF4X2hlaWdodDsKLQlfX3ZraV91MzIgcmVzZXJ2ZWRbOV07CisJX192a2lfdTMyIHdoaWNoOworCV9fdmtpX3UzMiByZXNlcnZlZFs4XTsKIH07CiAKIHN0cnVjdCB2a2lfdjRsMl9zdWJkZXZfZnJhbWVfaW50ZXJ2YWwgewpAQCAtNDUxOSw3ICs0NTQyLDggQEAKIAlfX3ZraV91MzIgd2lkdGg7CiAJX192a2lfdTMyIGhlaWdodDsKIAlzdHJ1Y3QgdmtpX3Y0bDJfZnJhY3QgaW50ZXJ2YWw7Ci0JX192a2lfdTMyIHJlc2VydmVkWzldOworCV9fdmtpX3UzMiB3aGljaDsKKwlfX3ZraV91MzIgcmVzZXJ2ZWRbOF07CiB9OwogCiBzdHJ1Y3QgdmtpX3Y0bDJfc3ViZGV2X3NlbGVjdGlvbiB7CkBAIC00NjE1LDYgKzQ2MzksOSBAQAogI2RlZmluZSBWS0lfTUVESUFfSU9DX0VOVU1fTElOS1MJCV9WS0lfSU9XUignfCcsIDB4MDIsIHN0cnVjdCB2a2lfbWVkaWFfbGlua3NfZW51bSkKICNkZWZpbmUgVktJX01FRElBX0lPQ19TRVRVUF9MSU5LCQlfVktJX0lPV1IoJ3wnLCAweDAzLCBzdHJ1Y3QgdmtpX21lZGlhX2xpbmtfZGVzYykKIAorLyogRFZCIGRlbXV4IEFQSSAqLworI2RlZmluZQlWS0lfRE1YX1NUT1AJX1ZLSV9JTygnbycsIDQyKQorCiAvKiBDb21wYXJpc29uIHR5cGUgKi8KIGVudW0gdmtpX2tjbXBfdHlwZSB7CiAgICBWS0lfS0NNUF9GSUxFLApAQCAtNDYzOSw2ICs0NjY2LDMxIEBACiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICNkZWZpbmUgVktJX0JJTlBSTV9CVUZfU0laRSAxMjgKIAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBGcm9tIGxpbnV4LTMuMTkuMC9pbmNsdWRlL2xpbnV4L3NlcmlhbC5oCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3RydWN0IHZraV9zZXJpYWxfc3RydWN0IHsKKwlpbnQJdHlwZTsKKwlpbnQJbGluZTsKKwl1bnNpZ25lZCBpbnQJcG9ydDsKKwlpbnQJaXJxOworCWludAlmbGFnczsKKwlpbnQJeG1pdF9maWZvX3NpemU7CisJaW50CWN1c3RvbV9kaXZpc29yOworCWludAliYXVkX2Jhc2U7CisJdW5zaWduZWQgc2hvcnQJY2xvc2VfZGVsYXk7CisJY2hhcglpb190eXBlOworCWNoYXIJcmVzZXJ2ZWRfY2hhclsxXTsKKwlpbnQJaHViNjsKKwl1bnNpZ25lZCBzaG9ydAljbG9zaW5nX3dhaXQ7IC8qIHRpbWUgdG8gd2FpdCBiZWZvcmUgY2xvc2luZyAqLworCXVuc2lnbmVkIHNob3J0CWNsb3Npbmdfd2FpdDI7IC8qIG5vIGxvbmdlciB1c2VkLi4uICovCisJdW5zaWduZWQgY2hhcgkqaW9tZW1fYmFzZTsKKwl1bnNpZ25lZCBzaG9ydAlpb21lbV9yZWdfc2hpZnQ7CisJdW5zaWduZWQgaW50CXBvcnRfaGlnaDsKKwl1bnNpZ25lZCBsb25nCWlvbWFwX2Jhc2U7CS8qIGNvb2tpZSBwYXNzZWQgaW50byBpb3JlbWFwICovCit9OworCiAjZW5kaWYgLy8gX19WS0lfTElOVVhfSAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1taXBzMzItbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1taXBzMzItbGludXguaAppbmRleCBkNjk0ZjFkLi41Zjg4NTdmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktbWlwczMyLWxpbnV4LmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLW1pcHMzMi1saW51eC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIFJULVJLCisgICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSBSVC1SSwogICAgICAgbWlwcy12YWxncmluZEBydC1yay5jb20KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLW1pcHM2NC1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLW1pcHM2NC1saW51eC5oCmluZGV4IGM5NTE0NmUuLjAzYjE4MzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1taXBzNjQtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktbWlwczY0LWxpbnV4LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgUlQtUksKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFJULVJLCiAgICAgICBtaXBzLXZhbGdyaW5kQHJ0LXJrLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1hbWQ2NC1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtYW1kNjQtbGludXguaAppbmRleCBlMDU3M2UwLi5lNjhlMjE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1hbWQ2NC1saW51eC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS1wb3NpeHR5cGVzLWFtZDY0LWxpbnV4LmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtYXJtLWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1hcm0tbGludXguaAppbmRleCA3ZjE2NDIwLi41OTk0M2E4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1hcm0tbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1hcm0tbGludXguaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1hcm02NC1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtYXJtNjQtbGludXguaAppbmRleCBkYTMzYmNhLi43ZGY1MzQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1hcm02NC1saW51eC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS1wb3NpeHR5cGVzLWFybTY0LWxpbnV4LmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgT3BlbldvcmtzCisgICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBPcGVuV29ya3MKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtbWlwczMyLWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1taXBzMzItbGludXguaAppbmRleCBkOTBkOTk0Li40YWJlMzhhIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1taXBzMzItbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1taXBzMzItbGludXguaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBSVC1SSworICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgUlQtUksKICAgICAgIG1pcHMtdmFsZ3JpbmRAcnQtcmsuY29tCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1wb3NpeHR5cGVzLW1pcHM2NC1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtbWlwczY0LWxpbnV4LmgKaW5kZXggOWY0NDZmYy4uNGViZDU5NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtbWlwczY0LWxpbnV4LmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtbWlwczY0LWxpbnV4LmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTMgUlQtUksKKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFJULVJLCiAgICAgICBtaXBzLXZhbGdyaW5kQHJ0LXJrLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1wcGMzMi1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtcHBjMzItbGludXguaAppbmRleCAyOWIwMDE4Li4yNDYxOTViIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1wcGMzMi1saW51eC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS1wb3NpeHR5cGVzLXBwYzMyLWxpbnV4LmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1wb3NpeHR5cGVzLXBwYzY0LWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1wcGM2NC1saW51eC5oCmluZGV4IGMzZDE3ZjIuLmFmZDBhNTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1wb3NpeHR5cGVzLXBwYzY0LWxpbnV4LmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtcHBjNjQtbGludXguaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtczM5MHgtbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1wb3NpeHR5cGVzLXMzOTB4LWxpbnV4LmgKaW5kZXggYjVlYTIzOC4uNmRlOTVmYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtczM5MHgtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy1zMzkweC1saW51eC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDEzCisgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxNQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMtdGlsZWd4LWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy10aWxlZ3gtbGludXguaAppbmRleCBjOTVlNzY4Li40OTk5NmJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy10aWxlZ3gtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy10aWxlZ3gtbGludXguaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBUaWxlcmEgQ29ycC4KKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFRpbGVyYSBDb3JwLgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXBvc2l4dHlwZXMteDg2LWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy14ODYtbGludXguaAppbmRleCAxNmU3NGE3Li5kZWRhYTY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy14ODYtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktcG9zaXh0eXBlcy14ODYtbGludXguaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktcHBjMzItbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1wcGMzMi1saW51eC5oCmluZGV4IDZhZWExNzkuLjcwYzI4MzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1wcGMzMi1saW51eC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS1wcGMzMi1saW51eC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MjYsOCArNjI2LDggQEAKIC8vI2RlZmluZSBWS0lfVElPQ1NTT0ZUQ0FSCTB4NTQxQQogI2RlZmluZSBWS0lfVElPQ0xJTlVYCQkweDU0MUMKIC8vI2RlZmluZSBWS0lfVElPQ0NPTlMJCTB4NTQxRAotLy8jZGVmaW5lIFZLSV9USU9DR1NFUklBTAkweDU0MUUKLS8vI2RlZmluZSBWS0lfVElPQ1NTRVJJQUwJMHg1NDFGCisjZGVmaW5lIFZLSV9USU9DR1NFUklBTAkweDU0MUUKKyNkZWZpbmUgVktJX1RJT0NTU0VSSUFMCTB4NTQxRgogLy8jZGVmaW5lIFZLSV9USU9DUEtUCQkweDU0MjAKIC8vIyBkZWZpbmUgVktJX1RJT0NQS1RfREFUQQkJIDAKIC8vIyBkZWZpbmUgVktJX1RJT0NQS1RfRkxVU0hSRUFECSAxCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktcHBjNjQtbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1wcGM2NC1saW51eC5oCmluZGV4IDg4NDhiMDUuLmI0MTA2NjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1wcGM2NC1saW51eC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS1wcGM2NC1saW51eC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC03OTUsNiArNzk1LDEzIEBACiAjZGVmaW5lCVZLSV9FT1ZFUkZMT1cgICAgNzUgIC8qIFZhbHVlIHRvbyBsYXJnZSBmb3IgZGVmaW5lZCBkYXRhIHR5cGUgKi8KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBGcm9tIGxpbnV4LTMuMTkuMC9hcmNoL3Bvd2VycGMvaW5jbHVkZS91YXBpL2FzbS9pb2N0bHMuaAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNkZWZpbmUgVktJX1RJT0NHU0VSSUFMICAgICAweDU0MUUKKyNkZWZpbmUgVktJX1RJT0NTU0VSSUFMICAgICAweDU0MUYKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBlbmQKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktczM5MHgtbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1zMzkweC1saW51eC5oCmluZGV4IDg1YzQ0OWQuLmMzZjZkMDAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1zMzkweC1saW51eC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS1zMzkweC1saW51eC5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxMC0yMDEzCisgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxNQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtODAwLDEyICs4MDAsMTUgQEAKICNkZWZpbmUgVktJX1BUUkFDRV9QT0tFVVNSX0FSRUEgICAgICAgMHg1MDAxCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gRnJvbSBsaW51eC0yLjYuMTYuNjAvaW5jbHVkZS9hc20tczM5MC9lbGYuaAorLy8gRnJvbSBsaW51eC0zLjE4L2luY2x1ZGUvYXNtLXMzOTAvZWxmLmgKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiB0eXBlZGVmIHZraV9zMzkwX2ZwX3JlZ3MgdmtpX2VsZl9mcHJlZ3NldF90OwogdHlwZWRlZiB2a2lfczM5MF9yZWdzIHZraV9lbGZfZ3JlZ3NldF90OwogCisjZGVmaW5lIFZLSV9IV0NBUF9TMzkwX1RFICAgICAgICAgICAxMDI0CisjZGVmaW5lIFZLSV9IV0NBUF9TMzkwX1ZYUlMgICAgICAgICAyMDQ4CisKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBGcm9tIGxpbnV4LTIuNi4xNi42MC9pbmNsdWRlL2FzbS1zMzkwL3Vjb250ZXh0LmgKQEAgLTk3Niw2ICs5NzksMTMgQEAKICNkZWZpbmUJVktJX0VOT1NZUyAgICAgICAzOCAgLyogRnVuY3Rpb24gbm90IGltcGxlbWVudGVkICovCiAjZGVmaW5lCVZLSV9FT1ZFUkZMT1cgICAgNzUgIC8qIFZhbHVlIHRvbyBsYXJnZSBmb3IgZGVmaW5lZCBkYXRhIHR5cGUgKi8KIAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBGcm9tIGxpbnV4LTMuMTkuMC9pbmNsdWRlL3VhcGkvYXNtLWdlbmVyaWMvaW9jdGxzLmgKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjZGVmaW5lIFZLSV9USU9DR1NFUklBTCAgICAgMHg1NDFFCisjZGVmaW5lIFZLSV9USU9DU1NFUklBTCAgICAgMHg1NDFGCisKICNlbmRpZiAvLyBfX1ZLSV9TMzkwWF9MSU5VWF9ICiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1hbWQ2NC1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1hbWQ2NC1saW51eC5oCmluZGV4IGMyMTEyMTkuLjgyMGNkMDIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtYW1kNjQtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLWFtZDY0LWxpbnV4LmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1hcm0tbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtYXJtLWxpbnV4LmgKaW5kZXggZTE4NmE2Mi4uZGYzNTcyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1hcm0tbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLWFybS1saW51eC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIEV2YW4gR2VsbGVyCisgICBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBFdmFuIEdlbGxlcgogICAgICAgZ2F6ZUBiZWEubXMKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1hcm02NC1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1hcm02NC1saW51eC5oCmluZGV4IGY4ZjA4ZjcuLmY3MGEyZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtYXJtNjQtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLWFybTY0LWxpbnV4LmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTMgT3BlbldvcmtzCisgICBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBPcGVuV29ya3MKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5uZXQKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1kYXJ3aW4uaCBiL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtZGFyd2luLmgKaW5kZXggNjBiNTY5ZS4uYjc1Y2RjZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1kYXJ3aW4uaAorKysgYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLWRhcndpbi5oCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNy0yMDEzIEFwcGxlIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAwNy0yMDE1IEFwcGxlIEluYy4KICAgICAgIEdyZWcgUGFya2VyICBncGFya2VyQGFwcGxlLmNvbQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xNzUsMTQgKzE3NSwxNSBAQAogI2RlZmluZSBfX05SX3NlbWFwaG9yZV90aW1lZHdhaXRfdHJhcCAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDM4KQogI2RlZmluZSBfX05SX3NlbWFwaG9yZV90aW1lZHdhaXRfc2lnbmFsX3RyYXAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDM5KQogCi0jaWYgZGVmaW5lZChWR0FfeDg2KQotI2RlZmluZSBfX05SX2luaXRfcHJvY2VzcyAgICAgICAgICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDQxKQotI2RlZmluZSBfX05SX21hcF9mZCAgICAgICAgICAgICAgICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDQzKQotI2Vsc2UKKyNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfOQogI2RlZmluZSBfX05SX2tlcm5lbHJwY19tYWNoX3BvcnRfZ3VhcmRfdHJhcCAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDQxKQogI2RlZmluZSBfX05SX2tlcm5lbHJwY19tYWNoX3BvcnRfdW5ndWFyZF90cmFwIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDQyKQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFZHQV94ODYpIHx8IERBUldJTl9WRVJTID09IERBUldJTl8xMF85CisjZGVmaW5lIF9fTlJfbWFwX2ZkICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX01BQ0goNDMpCisjZW5kaWYKKwogI2RlZmluZSBfX05SX3Rhc2tfbmFtZV9mb3JfcGlkICAgICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDQ0KQogI2RlZmluZSBfX05SX3Rhc2tfZm9yX3BpZCAgICAgICAgICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDQ1KQogI2RlZmluZSBfX05SX3BpZF9mb3JfdGFzayAgICAgICAgICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9NQUNIKDQ2KQpAQCAtNTA4LDcgKzUwOSw3IEBACiAKICNpZiBEQVJXSU5fVkVSUyA8IERBUldJTl8xMF8xMAogI2RlZmluZQlfX05SX3NlbV9nZXR2YWx1ZSAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDI3NCkKLSNlbGlmIERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAorI2VsaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEwCiAjZGVmaW5lCV9fTlJfc3lzY3RsYnluYW1lICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMjc0KQogI2VuZGlmCiAKQEAgLTUzNSwyNSArNTM2LDQyIEBACiAjZGVmaW5lCV9fTlJfc2hhcmVkX3JlZ2lvbl9tYXBfbnAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgyOTUpCiAjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzYKICNkZWZpbmUgX19OUl92bV9wcmVzc3VyZV9tb25pdG9yICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDI5NikKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfbG9uZ3JkbG9jayAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDI5NykKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfeWllbGR3cmxvY2sgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDI5OCkKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfZG93bmdyYWRlICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDI5OSkKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfdXBncmFkZSAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMCkKKyNkZWZpbmUgX19OUl9wc3luY2hfbXV0ZXh3YWl0ICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMSkKKyNkZWZpbmUgX19OUl9wc3luY2hfbXV0ZXhkcm9wICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMikKKyNkZWZpbmUgX19OUl9wc3luY2hfY3Zicm9hZCAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMykKKyNkZWZpbmUgX19OUl9wc3luY2hfY3ZzaWduYWwgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNCkKKyNkZWZpbmUgX19OUl9wc3luY2hfY3Z3YWl0ICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNSkKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfcmRsb2NrICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNikKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfd3Jsb2NrICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNykKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfdW5sb2NrICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwOCkKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfdW5sb2NrMiAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwOSkKICNlbHNlCiAJCQkvKiAyOTYgIG9sZCBsb2FkX3NoYXJlZF9maWxlICovCi0jZW5kaWYKIAkJCS8qIDI5NyAgb2xkIHJlc2V0X3NoYXJlZF9maWxlICovCiAJCQkvKiAyOTggIG9sZCBuZXdfc3lzdGVtX3NoYXJlZF9yZWdpb25zICovCiAJCQkvKiAyOTkgIG9sZCBzaGFyZWRfcmVnaW9uX21hcF9maWxlX25wICovCiAJCQkvKiAzMDAgIG9sZCBzaGFyZWRfcmVnaW9uX21ha2VfcHJpdmF0ZV9ucCAqLwotI2RlZmluZSBfX05SX3BzeW5jaF9tdXRleHdhaXQgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzAxKQotI2RlZmluZSBfX05SX3BzeW5jaF9tdXRleGRyb3AgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzAyKQotI2RlZmluZSBfX05SX3BzeW5jaF9jdmJyb2FkICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzAzKQotI2RlZmluZSBfX05SX3BzeW5jaF9jdnNpZ25hbCAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA0KQotI2RlZmluZSBfX05SX3BzeW5jaF9jdndhaXQgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA1KQotI2RlZmluZSBfX05SX3BzeW5jaF9yd19yZGxvY2sgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA2KQotI2RlZmluZSBfX05SX3BzeW5jaF9yd193cmxvY2sgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA3KQotI2RlZmluZSBfX05SX3BzeW5jaF9yd191bmxvY2sgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA4KQotCQkJLyogMzA5ICovCisjZGVmaW5lIF9fTlJfX19wdGhyZWFkX211dGV4X2Rlc3Ryb3kgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMSkKKyNkZWZpbmUgX19OUl9fX3B0aHJlYWRfbXV0ZXhfaW5pdCAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzAyKQorI2RlZmluZSBfX05SX19fcHRocmVhZF9tdXRleF9sb2NrICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMDMpCisjZGVmaW5lIF9fTlJfX19wdGhyZWFkX211dGV4X3RyeWxvY2sgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNCkKKyNkZWZpbmUgX19OUl9fX3B0aHJlYWRfbXV0ZXhfdW5sb2NrICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA1KQorI2RlZmluZSBfX05SX19fcHRocmVhZF9jb25kX2luaXQgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMDYpCisjZGVmaW5lIF9fTlJfX19wdGhyZWFkX2NvbmRfZGVzdHJveSAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNykKKyNkZWZpbmUgX19OUl9fX3B0aHJlYWRfY29uZF9icm9hZGNhc3QgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA4KQorI2RlZmluZSBfX05SX19fcHRocmVhZF9jb25kX3NpZ25hbCAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMDkpCisjZW5kaWYKICNkZWZpbmUJX19OUl9nZXRzaWQgICAgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMTApCiAjZGVmaW5lCV9fTlJfc2V0dGlkX3dpdGhfcGlkIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMxMSkKKyNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfNwogI2RlZmluZSBfX05SX3BzeW5jaF9jdmNscnByZXBvc3QgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzEyKQorI2Vsc2UKKyNkZWZpbmUgX19OUl9fX3B0aHJlYWRfY29uZF90aW1lZHdhaXQgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzEyKQorI2VuZGlmCiAjZGVmaW5lCV9fTlJfYWlvX2ZzeW5jICAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzEzKQogI2RlZmluZQlfX05SX2Fpb19yZXR1cm4gICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMxNCkKICNkZWZpbmUJX19OUl9haW9fc3VzcGVuZCAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMTUpCkBAIC03MjAsNyArNzM4LDIzIEBACiAjZGVmaW5lIF9fTlJfZ3VhcmRlZF93cml0ZV9ucCAgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCg0ODUpCiAjZGVmaW5lIF9fTlJfZ3VhcmRlZF9wd3JpdGVfbnAgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCg0ODYpCiAjZGVmaW5lIF9fTlJfZ3VhcmRlZF93cml0ZXZfbnAgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCg0ODcpCi0jZW5kaWYKKwkJCS8qIDQ4OCAgKi8KKwkJCS8qIDQ4OSAgKi8KKyNlbmRpZiAvKiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfMTAgKi8KKworLy8gVE9ETyBVcGRhdGUgd2l0aCBPUyBYIDEwLjExIGtlcm5lbCAoeG51KSBzb3VyY2UgY29kZSByZWxlYXNlCisjaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzExCisJCQkvKiA0OTAgICovCisJCQkvKiA0OTEgICovCisJCQkvKiA0OTIgICovCisJCQkvKiA0OTMgICovCisJCQkvKiA0OTQgICovCisJCQkvKiA0OTUgICovCisJCQkvKiA0OTYgICovCisJCQkvKiA0OTcgICovCisJCQkvKiA0OTggICovCisJCQkvKiA0OTkgICovCisjZW5kaWYgLyogREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzExICovCiAKICNpZiBEQVJXSU5fVkVSUyA8IERBUldJTl8xMF82CiAjZGVmaW5lCV9fTlJfTUFYU1lTQ0FMTCAgICAgICAgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCg0MjcpCkBAIC03MzIsNiArNzY2LDkgQEAKICNkZWZpbmUJX19OUl9NQVhTWVNDQUxMICAgICAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDQ1NikKICNlbGlmIERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAogI2RlZmluZSBfX05SX01BWFNZU0NBTEwgICAgICAgICAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoNDkwKQorI2VsaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzExCisvLyBUT0RPIENvbmZpcm0gYWdhaW5zdCBmaW5hbCByZWxlYXNlCisjZGVmaW5lIF9fTlJfTUFYU1lTQ0FMTCAgICAgICAgICAgICBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCg1MDApCiAjZWxzZQogI2Vycm9yIHVua25vd24gZGFyd2luIHZlcnNpb24KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1taXBzMzItbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtbWlwczMyLWxpbnV4LmgKaW5kZXggYTM4MmE1NS4uNTEwM2I0MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1taXBzMzItbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLW1pcHMzMi1saW51eC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIFJULVJLCisgICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSBSVC1SSwogICAgICAgbWlwcy12YWxncmluZEBydC1yay5jb20KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1taXBzNjQtbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtbWlwczY0LWxpbnV4LmgKaW5kZXggMmE4MDgxZS4uNzljYzU1MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1taXBzNjQtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLW1pcHM2NC1saW51eC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAxMC0yMDEzIFJULVJLCisgICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNSBSVC1SSwogICAgICAgbWlwcy12YWxncmluZEBydC1yay5jb20KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1wcGMzMi1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1wcGMzMi1saW51eC5oCmluZGV4IDAwNmY0OGUuLjY0NGFjOGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtcHBjMzItbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLXBwYzMyLWxpbnV4LmgKQEAgLTgsNyArOCw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTMgSnVsaWFuIFNld2FyZAorICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTUgSnVsaWFuIFNld2FyZAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtcHBjNjQtbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtcHBjNjQtbGludXguaAppbmRleCBjZmMyY2M2Li4yYTIwMTYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2ktc2NudW1zLXBwYzY0LWxpbnV4LmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1wcGM2NC1saW51eC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEzIEp1bGlhbiBTZXdhcmQKKyAgIENvcHlyaWdodCAoQykgMjAwNS0yMDE1IEp1bGlhbiBTZXdhcmQKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktc2NudW1zLXMzOTB4LWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLXMzOTB4LWxpbnV4LmgKaW5kZXggZDBhNjJjNi4uMmE0YThmMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1zMzkweC1saW51eC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtczM5MHgtbGludXguaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTAtMjAxNAorICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDEwLTIwMTUKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtc29sYXJpcy5oIGIvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy1zb2xhcmlzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZmZTIyYwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtc29sYXJpcy5oCkBAIC0wLDAgKzEsMzcxIEBACisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gU3lzdGVtIGNhbGwgbnVtYmVycyBmb3IgU29sYXJpcy4gICAgICAgIHZraS1zY251bXMtc29sYXJpcy5oIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNSBQZXRyIFBhdmx1CisgICAgICBzZXR1cEBkYWdvYmFoLmN6CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKworLyogQ29weXJpZ2h0IDIwMTMtMjAxNSwgSXZvIFJhaXNyIDxpdm9zaEBpdm9zaC5uZXQ+LiAqLworCisvKiBDb3B5cmlnaHQgMjAxMywgT21uaVRJIENvbXB1dGVyIENvbnN1bHRpbmcsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKi8KKworI2lmbmRlZiBfX1ZLSV9TQ05VTVNfU09MQVJJU19ICisjZGVmaW5lIF9fVktJX1NDTlVNU19TT0xBUklTX0gKKworLyogTm90ZTogQmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgU29sYXJpcyBzeXNjYWxscyBjYW4gYmUgZm91bmQgaW4gdGhlIGtlcm5lbAorICAgc291cmNlIGZpbGUgdXRzL2NvbW1vbi9vcy9zeXNlbnQuYy4KKyAqLworCisvKiBJbmNsdWRlIHN5cy9zeXNjYWxsLmggdG8gZ2V0IFNZU18qIGNvbnN0YW50cyAoYW5kIHN5cy90cmFwLmggdG8gZ2V0IFRfKikgdG8KKyAgIGF2b2lkIGFueSBjb3B5cmlnaHQgaXNzdWVzIGNvbm5lY3RlZCB3aXRoIHRoZWlyIHBvdGVudGlhbCBjb3B5aW5nIG91dCBvZgorICAgdGhlIGhlYWRlciBmaWxlLgorICovCisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvdHJhcC5oPgorCisvKiBub3JtYWwgc3lzY2FsbCAoaW50ICQweDkxKSAqLworI2RlZmluZSBWR19TT0xBUklTX1NZU0NBTExfQ0xBU1NfQ0xBU1NJQyAgICAgICAgMAorLyogZmFzdHRyYXAgc3lzY2FsbCAoaW50ICQweEQyKSAqLworI2RlZmluZSBWR19TT0xBUklTX1NZU0NBTExfQ0xBU1NfRkFTVFRSQVAgICAgICAgMQorCisjZGVmaW5lIFZHX1NPTEFSSVNfU1lTQ0FMTF9DTEFTU19TSElGVCAyNAorI2RlZmluZSBWR19TT0xBUklTX1NZU0NBTExfTlVNQkVSX01BU0sgMHgwMEZGRkZGRgorCisjZGVmaW5lIFZHX1NPTEFSSVNfU1lTQ0FMTF9DT05TVFJVQ1RfRkFTVFRSQVAoc3lzbm8pIFwKKyAgICgoVkdfU09MQVJJU19TWVNDQUxMX0NMQVNTX0ZBU1RUUkFQIDw8IFZHX1NPTEFSSVNfU1lTQ0FMTF9DTEFTU19TSElGVCkgXAorICAgIHwgKHN5c25vKSkKKyNkZWZpbmUgVkdfU09MQVJJU19TWVNOT19DTEFTUyhzeXNubykgXAorICAgKChzeXNubykgPj4gVkdfU09MQVJJU19TWVNDQUxMX0NMQVNTX1NISUZUKQorI2RlZmluZSBWR19TT0xBUklTX1NZU05PX0lOREVYKHN5c25vKSBcCisgICAoKHN5c25vKSAmIFZHX1NPTEFSSVNfU1lTQ0FMTF9OVU1CRVJfTUFTSykKKworI2RlZmluZSBfX05SX2V4aXQgICAgICAgICAgICAgICAgICAgICAgIFNZU19leGl0CisjaWYgZGVmaW5lZChTT0xBUklTX1NQQVdOX1NZU0NBTEwpCisjZGVmaW5lIF9fTlJfc3Bhd24gICAgICAgICAgICAgICAgICAgICAgU1lTX3NwYXduCisjZW5kaWYgLyogU09MQVJJU19TUEFXTl9TWVNDQUxMICovCisjZGVmaW5lIF9fTlJfcmVhZCAgICAgICAgICAgICAgICAgICAgICAgU1lTX3JlYWQKKyNkZWZpbmUgX19OUl93cml0ZSAgICAgICAgICAgICAgICAgICAgICBTWVNfd3JpdGUKKyNkZWZpbmUgX19OUl9jbG9zZSAgICAgICAgICAgICAgICAgICAgICBTWVNfY2xvc2UKKyNkZWZpbmUgX19OUl9saW5rYXQgICAgICAgICAgICAgICAgICAgICBTWVNfbGlua2F0CisjZGVmaW5lIF9fTlJfc3ltbGlua2F0ICAgICAgICAgICAgICAgICAgU1lTX3N5bWxpbmthdAorI2RlZmluZSBfX05SX2NoZGlyICAgICAgICAgICAgICAgICAgICAgIFNZU19jaGRpcgorI2RlZmluZSBfX05SX3RpbWUgICAgICAgICAgICAgICAgICAgICAgIFNZU190aW1lCisjZGVmaW5lIF9fTlJfYnJrICAgICAgICAgICAgICAgICAgICAgICAgU1lTX2JyaworI2RlZmluZSBfX05SX2xzZWVrICAgICAgICAgICAgICAgICAgICAgIFNZU19sc2VlaworI2RlZmluZSBfX05SX2dldHBpZCAgICAgICAgICAgICAgICAgICAgIFNZU19nZXRwaWQKKyNkZWZpbmUgX19OUl9tb3VudCAgICAgICAgICAgICAgICAgICAgICBTWVNfbW91bnQKKyNkZWZpbmUgX19OUl9yZWFkbGlua2F0ICAgICAgICAgICAgICAgICBTWVNfcmVhZGxpbmthdAorI2RlZmluZSBfX05SX3NldHVpZCAgICAgICAgICAgICAgICAgICAgIFNZU19zZXR1aWQKKyNkZWZpbmUgX19OUl9nZXR1aWQgICAgICAgICAgICAgICAgICAgICBTWVNfZ2V0dWlkCisjZGVmaW5lIF9fTlJfc3RpbWUgICAgICAgICAgICAgICAgICAgICAgU1lTX3N0aW1lCisvLyNkZWZpbmUgX19OUl9wY3NhbXBsZSAgICAgICAgICAgICAgICAgICBTWVNfcGNzYW1wbGUKKyNkZWZpbmUgX19OUl9hbGFybSAgICAgICAgICAgICAgICAgICAgICBTWVNfYWxhcm0KKyNkZWZpbmUgX19OUl9wYXVzZSAgICAgICAgICAgICAgICAgICAgICBTWVNfcGF1c2UKKyNpZiBkZWZpbmVkKFNPTEFSSVNfRlJFQUxQQVRIQVRfU1lTQ0FMTCkKKyNkZWZpbmUgX19OUl9mcmVhbHBhdGhhdCAgICAgICAgICAgICAgICBTWVNfZnJlYWxwYXRoYXQKKyNlbmRpZiAvKiBTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTEwgKi8KKyNkZWZpbmUgX19OUl9zdHR5ICAgICAgICAgICAgICAgICAgICAgICBTWVNfc3R0eQorI2RlZmluZSBfX05SX2d0dHkgICAgICAgICAgICAgICAgICAgICAgIFNZU19ndHR5CisvLyNkZWZpbmUgX19OUl9uaWNlICAgICAgICAgICAgICAgICAgICAgICBTWVNfbmljZQorLy8jZGVmaW5lIF9fTlJfc3RhdGZzICAgICAgICAgICAgICAgICAgICAgU1lTX3N0YXRmcworLy8jZGVmaW5lIF9fTlJfc3luYyAgICAgICAgICAgICAgICAgICAgICAgU1lTX3N5bmMKKyNkZWZpbmUgX19OUl9raWxsICAgICAgICAgICAgICAgICAgICAgICBTWVNfa2lsbAorLy8jZGVmaW5lIF9fTlJfZnN0YXRmcyAgICAgICAgICAgICAgICAgICAgU1lTX2ZzdGF0ZnMKKyNkZWZpbmUgX19OUl9wZ3Jwc3lzICAgICAgICAgICAgICAgICAgICBTWVNfcGdycHN5cworLy8jZGVmaW5lIF9fTlJfdXVjb3B5c3RyICAgICAgICAgICAgICAgICAgU1lTX3V1Y29weXN0cgorI2RlZmluZSBfX05SX3BpcGUgICAgICAgICAgICAgICAgICAgICAgIFNZU19waXBlCisjZGVmaW5lIF9fTlJfdGltZXMgICAgICAgICAgICAgICAgICAgICAgU1lTX3RpbWVzCisvLyNkZWZpbmUgX19OUl9wcm9maWwgICAgICAgICAgICAgICAgICAgICBTWVNfcHJvZmlsCisjZGVmaW5lIF9fTlJfZmFjY2Vzc2F0ICAgICAgICAgICAgICAgICAgU1lTX2ZhY2Nlc3NhdAorI2RlZmluZSBfX05SX3NldGdpZCAgICAgICAgICAgICAgICAgICAgIFNZU19zZXRnaWQKKyNkZWZpbmUgX19OUl9nZXRnaWQgICAgICAgICAgICAgICAgICAgICBTWVNfZ2V0Z2lkCisjZGVmaW5lIF9fTlJfbWtub2RhdCAgICAgICAgICAgICAgICAgICAgU1lTX21rbm9kYXQKKy8vI2RlZmluZSBfX05SX21zZ3N5cyAgICAgICAgICAgICAgICAgICAgIFNZU19tc2dzeXMKKyNkZWZpbmUgX19OUl9zeXNpODYgICAgICAgICAgICAgICAgICAgICBTWVNfc3lzaTg2CisvLyNkZWZpbmUgX19OUl9hY2N0ICAgICAgICAgICAgICAgICAgICAgICBTWVNfYWNjdAorI2RlZmluZSBfX05SX3NobXN5cyAgICAgICAgICAgICAgICAgICAgIFNZU19zaG1zeXMKKyNkZWZpbmUgX19OUl9zZW1zeXMgICAgICAgICAgICAgICAgICAgICBTWVNfc2Vtc3lzCisjZGVmaW5lIF9fTlJfaW9jdGwgICAgICAgICAgICAgICAgICAgICAgU1lTX2lvY3RsCisvLyNkZWZpbmUgX19OUl91YWRtaW4gICAgICAgICAgICAgICAgICAgICBTWVNfdWFkbWluCisjZGVmaW5lIF9fTlJfZmNob3duYXQgICAgICAgICAgICAgICAgICAgU1lTX2ZjaG93bmF0CisvLyNkZWZpbmUgX19OUl91dHNzeXMgICAgICAgICAgICAgICAgICAgICBTWVNfdXRzc3lzCisjZGVmaW5lIF9fTlJfZmRzeW5jICAgICAgICAgICAgICAgICAgICAgU1lTX2Zkc3luYworI2RlZmluZSBfX05SX2V4ZWN2ZSAgICAgICAgICAgICAgICAgICAgIFNZU19leGVjdmUKKyNkZWZpbmUgX19OUl91bWFzayAgICAgICAgICAgICAgICAgICAgICBTWVNfdW1hc2sKKyNkZWZpbmUgX19OUl9jaHJvb3QgICAgICAgICAgICAgICAgICAgICBTWVNfY2hyb290CisjZGVmaW5lIF9fTlJfZmNudGwgICAgICAgICAgICAgICAgICAgICAgU1lTX2ZjbnRsCisvLyNkZWZpbmUgX19OUl91bGltaXQgICAgICAgICAgICAgICAgICAgICBTWVNfdWxpbWl0CisjZGVmaW5lIF9fTlJfcmVuYW1lYXQgICAgICAgICAgICAgICAgICAgU1lTX3JlbmFtZWF0CisjZGVmaW5lIF9fTlJfdW5saW5rYXQgICAgICAgICAgICAgICAgICAgU1lTX3VubGlua2F0CisjZGVmaW5lIF9fTlJfZnN0YXRhdCAgICAgICAgICAgICAgICAgICAgU1lTX2ZzdGF0YXQKKyNkZWZpbmUgX19OUl9mc3RhdGF0NjQgICAgICAgICAgICAgICAgICBTWVNfZnN0YXRhdDY0CisjZGVmaW5lIF9fTlJfb3BlbmF0ICAgICAgICAgICAgICAgICAgICAgU1lTX29wZW5hdAorI2RlZmluZSBfX05SX29wZW5hdDY0ICAgICAgICAgICAgICAgICAgIFNZU19vcGVuYXQ2NAorI2RlZmluZSBfX05SX3Rhc2tzeXMgICAgICAgICAgICAgICAgICAgIFNZU190YXNrc3lzCisvLyNkZWZpbmUgX19OUl9hY2N0Y3RsICAgICAgICAgICAgICAgICAgICBTWVNfYWNjdGN0bAorLy8jZGVmaW5lIF9fTlJfZXhhY2N0c3lzICAgICAgICAgICAgICAgICAgU1lTX2V4YWNjdHN5cworI2RlZmluZSBfX05SX2dldHBhZ2VzaXplcyAgICAgICAgICAgICAgIFNZU19nZXRwYWdlc2l6ZXMKKy8vI2RlZmluZSBfX05SX3JjdGxzeXMgICAgICAgICAgICAgICAgICAgIFNZU19yY3Rsc3lzCisvLyNkZWZpbmUgX19OUl9zaWRzeXMgICAgICAgICAgICAgICAgICAgICBTWVNfc2lkc3lzCisjZGVmaW5lIF9fTlJfbHdwX3BhcmsgICAgICAgICAgICAgICAgICAgU1lTX2x3cF9wYXJrCisjZGVmaW5lIF9fTlJfc2VuZGZpbGV2ICAgICAgICAgICAgICAgICAgU1lTX3NlbmRmaWxldgorI2lmIGRlZmluZWQoU09MQVJJU19MV1BfTkFNRV9TWVNDQUxMKQorI2RlZmluZSBfX05SX2x3cF9uYW1lICAgICAgICAgICAgICAgICAgIFNZU19sd3BfbmFtZQorI2VuZGlmIC8qIFNPTEFSSVNfTFdQX05BTUVfU1lTQ0FMTCAqLworI2RlZmluZSBfX05SX2dldGRlbnRzICAgICAgICAgICAgICAgICAgIFNZU19nZXRkZW50cworI2RlZmluZSBfX05SX3ByaXZzeXMgICAgICAgICAgICAgICAgICAgIFNZU19wcml2c3lzCisjZGVmaW5lIF9fTlJfdWNyZWRzeXMgICAgICAgICAgICAgICAgICAgU1lTX3VjcmVkc3lzCisvLyNkZWZpbmUgX19OUl9zeXNmcyAgICAgICAgICAgICAgICAgICAgICBTWVNfc3lzZnMKKyNkZWZpbmUgX19OUl9nZXRtc2cgICAgICAgICAgICAgICAgICAgICBTWVNfZ2V0bXNnCisjZGVmaW5lIF9fTlJfcHV0bXNnICAgICAgICAgICAgICAgICAgICAgU1lTX3B1dG1zZworI2RlZmluZSBfX05SX3NldGdyb3VwcyAgICAgICAgICAgICAgICAgIFNZU19zZXRncm91cHMKKyNkZWZpbmUgX19OUl9nZXRncm91cHMgICAgICAgICAgICAgICAgICBTWVNfZ2V0Z3JvdXBzCisjZGVmaW5lIF9fTlJfc2lncHJvY21hc2sgICAgICAgICAgICAgICAgU1lTX3NpZ3Byb2NtYXNrCisvLyNkZWZpbmUgX19OUl9zaWdzdXNwZW5kICAgICAgICAgICAgICAgICBTWVNfc2lnc3VzcGVuZAorI2RlZmluZSBfX05SX3NpZ2FsdHN0YWNrICAgICAgICAgICAgICAgIFNZU19zaWdhbHRzdGFjaworI2RlZmluZSBfX05SX3NpZ2FjdGlvbiAgICAgICAgICAgICAgICAgIFNZU19zaWdhY3Rpb24KKyNkZWZpbmUgX19OUl9zaWdwZW5kaW5nICAgICAgICAgICAgICAgICBTWVNfc2lncGVuZGluZworI2RlZmluZSBfX05SX2NvbnRleHQgICAgICAgICAgICAgICAgICAgIFNZU19jb250ZXh0CisjZGVmaW5lIF9fTlJfZmNobW9kYXQgICAgICAgICAgICAgICAgICAgU1lTX2ZjaG1vZGF0CisjZGVmaW5lIF9fTlJfbWtkaXJhdCAgICAgICAgICAgICAgICAgICAgU1lTX21rZGlyYXQKKyNkZWZpbmUgX19OUl9zdGF0dmZzICAgICAgICAgICAgICAgICAgICBTWVNfc3RhdHZmcworI2RlZmluZSBfX05SX2ZzdGF0dmZzICAgICAgICAgICAgICAgICAgIFNZU19mc3RhdHZmcworLy8jZGVmaW5lIF9fTlJfZ2V0bG9hZGF2ZyAgICAgICAgICAgICAgICAgU1lTX2dldGxvYWRhdmcKKyNkZWZpbmUgX19OUl9uZnNzeXMgICAgICAgICAgICAgICAgICAgICBTWVNfbmZzc3lzCisjZGVmaW5lIF9fTlJfd2FpdGlkICAgICAgICAgICAgICAgICAgICAgU1lTX3dhaXRpZAorI2RlZmluZSBfX05SX3dhaXRzeXMgICAgICAgICAgICAgICAgICAgIFNZU193YWl0c3lzIC8qID0gU1lTX3dhaXRpZCAoaGlzdG9yaWNhbCkgKi8KKy8vI2RlZmluZSBfX05SX3NpZ3NlbmRzeXMgICAgICAgICAgICAgICAgIFNZU19zaWdzZW5kc3lzCisvLyNkZWZpbmUgX19OUl9ocnRzeXMgICAgICAgICAgICAgICAgICAgICBTWVNfaHJ0c3lzCisjaWYgZGVmaW5lZChTT0xBUklTX1VUSU1FU1lTX1NZU0NBTEwpCisjZGVmaW5lIF9fTlJfdXRpbWVzeXMgICAgICAgICAgICAgICAgICAgU1lTX3V0aW1lc3lzCisjZW5kaWYgLyogU09MQVJJU19VVElNRVNZU19TWVNDQUxMICovCisjaWYgZGVmaW5lZChTT0xBUklTX1VUSU1FTlNBVF9TWVNDQUxMKQorI2RlZmluZSBfX05SX3V0aW1lbnNhdCAgICAgICAgICAgICAgICAgIFNZU191dGltZW5zYXQKKyNlbmRpZiAvKiBTT0xBUklTX1VUSU1FTlNBVF9TWVNDQUxMICovCisjZGVmaW5lIF9fTlJfc2lncmVzZW5kICAgICAgICAgICAgICAgICAgU1lTX3NpZ3Jlc2VuZAorI2RlZmluZSBfX05SX3ByaW9jbnRsc3lzICAgICAgICAgICAgICAgIFNZU19wcmlvY250bHN5cworI2RlZmluZSBfX05SX3BhdGhjb25mICAgICAgICAgICAgICAgICAgIFNZU19wYXRoY29uZgorLy8jZGVmaW5lIF9fTlJfbWluY29yZSAgICAgICAgICAgICAgICAgICAgU1lTX21pbmNvcmUKKyNkZWZpbmUgX19OUl9tbWFwICAgICAgICAgICAgICAgICAgICAgICBTWVNfbW1hcAorI2RlZmluZSBfX05SX21wcm90ZWN0ICAgICAgICAgICAgICAgICAgIFNZU19tcHJvdGVjdAorI2RlZmluZSBfX05SX211bm1hcCAgICAgICAgICAgICAgICAgICAgIFNZU19tdW5tYXAKKy8vI2RlZmluZSBfX05SX2ZwYXRoY29uZiAgICAgICAgICAgICAgICAgIFNZU19mcGF0aGNvbmYKKy8vI2RlZmluZSBfX05SX3Zmb3JrICAgICAgICAgICAgICAgICAgICAgIFNZU192Zm9yaworI2RlZmluZSBfX05SX2ZjaGRpciAgICAgICAgICAgICAgICAgICAgIFNZU19mY2hkaXIKKyNkZWZpbmUgX19OUl9yZWFkdiAgICAgICAgICAgICAgICAgICAgICBTWVNfcmVhZHYKKyNkZWZpbmUgX19OUl93cml0ZXYgICAgICAgICAgICAgICAgICAgICBTWVNfd3JpdGV2CisjaWYgZGVmaW5lZChTT0xBUklTX1VVSURTWVNfU1lTQ0FMTCkKKyNkZWZpbmUgX19OUl91dWlkc3lzICAgICAgICAgICAgICAgICAgICBTWVNfdXVpZHN5cworI2VuZGlmIC8qIFNPTEFSSVNfVVVJRFNZU19TWVNDQUxMICovCisjZGVmaW5lIF9fTlJfbW1hcG9iaiAgICAgICAgICAgICAgICAgICAgU1lTX21tYXBvYmoKKyNkZWZpbmUgX19OUl9zZXRybGltaXQgICAgICAgICAgICAgICAgICBTWVNfc2V0cmxpbWl0CisjZGVmaW5lIF9fTlJfZ2V0cmxpbWl0ICAgICAgICAgICAgICAgICAgU1lTX2dldHJsaW1pdAorI2RlZmluZSBfX05SX21lbWNudGwgICAgICAgICAgICAgICAgICAgIFNZU19tZW1jbnRsCisjZGVmaW5lIF9fTlJfZ2V0cG1zZyAgICAgICAgICAgICAgICAgICAgU1lTX2dldHBtc2cKKyNkZWZpbmUgX19OUl9wdXRwbXNnICAgICAgICAgICAgICAgICAgICBTWVNfcHV0cG1zZworI2RlZmluZSBfX05SX3VuYW1lICAgICAgICAgICAgICAgICAgICAgIFNZU191bmFtZQorI2RlZmluZSBfX05SX3NldGVnaWQgICAgICAgICAgICAgICAgICAgIFNZU19zZXRlZ2lkCisjZGVmaW5lIF9fTlJfc3lzY29uZmlnICAgICAgICAgICAgICAgICAgU1lTX3N5c2NvbmZpZworLy8jZGVmaW5lIF9fTlJfYWRqdGltZSAgICAgICAgICAgICAgICAgICAgU1lTX2FkanRpbWUKKyNkZWZpbmUgX19OUl9zeXN0ZW1pbmZvICAgICAgICAgICAgICAgICBTWVNfc3lzdGVtaW5mbworLy8jZGVmaW5lIF9fTlJfc2hhcmVmcyAgICAgICAgICAgICAgICAgICAgU1lTX3NoYXJlZnMKKyNkZWZpbmUgX19OUl9zZXRldWlkICAgICAgICAgICAgICAgICAgICBTWVNfc2V0ZXVpZAorI2RlZmluZSBfX05SX2ZvcmtzeXMgICAgICAgICAgICAgICAgICAgIFNZU19mb3Jrc3lzCisjZGVmaW5lIF9fTlJfc2lndGltZWR3YWl0ICAgICAgICAgICAgICAgU1lTX3NpZ3RpbWVkd2FpdAorLy8jZGVmaW5lIF9fTlJfbHdwX2luZm8gICAgICAgICAgICAgICAgICAgU1lTX2x3cF9pbmZvCisjZGVmaW5lIF9fTlJfeWllbGQgICAgICAgICAgICAgICAgICAgICAgU1lTX3lpZWxkCisjZGVmaW5lIF9fTlJfbHdwX3NlbWFfcG9zdCAgICAgICAgICAgICAgU1lTX2x3cF9zZW1hX3Bvc3QKKyNkZWZpbmUgX19OUl9sd3Bfc2VtYV90cnl3YWl0ICAgICAgICAgICBTWVNfbHdwX3NlbWFfdHJ5d2FpdAorI2RlZmluZSBfX05SX2x3cF9kZXRhY2ggICAgICAgICAgICAgICAgIFNZU19sd3BfZGV0YWNoCisvLyNkZWZpbmUgX19OUl9jb3JlY3RsICAgICAgICAgICAgICAgICAgICBTWVNfY29yZWN0bAorLy8jZGVmaW5lIF9fTlJfbW9kY3RsICAgICAgICAgICAgICAgICAgICAgU1lTX21vZGN0bAorI2RlZmluZSBfX05SX2ZjaHJvb3QgICAgICAgICAgICAgICAgICAgIFNZU19mY2hyb290CisjaWYgZGVmaW5lZChTT0xBUklTX1NZU1RFTV9TVEFUU19TWVNDQUxMKQorI2RlZmluZSBfX05SX3N5c3RlbV9zdGF0cyAgICAgICAgICAgICAgIFNZU19zeXN0ZW1fc3RhdHMKKyNlbmRpZiAvKiBTT0xBUklTX1NZU1RFTV9TVEFUU19TWVNDQUxMICovCisvLyNkZWZpbmUgX19OUl92aGFuZ3VwICAgICAgICAgICAgICAgICAgICBTWVNfdmhhbmd1cAorI2RlZmluZSBfX05SX2dldHRpbWVvZmRheSAgICAgICAgICAgICAgIFNZU19nZXR0aW1lb2ZkYXkKKyNkZWZpbmUgX19OUl9nZXRpdGltZXIgICAgICAgICAgICAgICAgICBTWVNfZ2V0aXRpbWVyCisjZGVmaW5lIF9fTlJfc2V0aXRpbWVyICAgICAgICAgICAgICAgICAgU1lTX3NldGl0aW1lcgorI2RlZmluZSBfX05SX2x3cF9jcmVhdGUgICAgICAgICAgICAgICAgIFNZU19sd3BfY3JlYXRlCisjZGVmaW5lIF9fTlJfbHdwX2V4aXQgICAgICAgICAgICAgICAgICAgU1lTX2x3cF9leGl0CisjZGVmaW5lIF9fTlJfbHdwX3N1c3BlbmQgICAgICAgICAgICAgICAgU1lTX2x3cF9zdXNwZW5kCisjZGVmaW5lIF9fTlJfbHdwX2NvbnRpbnVlICAgICAgICAgICAgICAgU1lTX2x3cF9jb250aW51ZQorI2lmIGRlZmluZWQoU09MQVJJU19MV1BfU0lHUVVFVUVfU1lTQ0FMTCkKKyNkZWZpbmUgX19OUl9sd3Bfc2lncXVldWUgICAgICAgICAgICAgICBTWVNfbHdwX3NpZ3F1ZXVlCisjZWxzZQorI2RlZmluZSBfX05SX2x3cF9raWxsICAgICAgICAgICAgICAgICAgIFNZU19sd3Bfa2lsbAorI2VuZGlmIC8qIFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwgKi8KKyNkZWZpbmUgX19OUl9sd3Bfc2VsZiAgICAgICAgICAgICAgICAgICBTWVNfbHdwX3NlbGYKKyNkZWZpbmUgX19OUl9sd3Bfc2lnbWFzayAgICAgICAgICAgICAgICBTWVNfbHdwX3NpZ21hc2sKKyNkZWZpbmUgX19OUl9sd3BfcHJpdmF0ZSAgICAgICAgICAgICAgICBTWVNfbHdwX3ByaXZhdGUKKyNkZWZpbmUgX19OUl9sd3Bfd2FpdCAgICAgICAgICAgICAgICAgICBTWVNfbHdwX3dhaXQKKyNkZWZpbmUgX19OUl9sd3BfbXV0ZXhfd2FrZXVwICAgICAgICAgICBTWVNfbHdwX211dGV4X3dha2V1cAorI2RlZmluZSBfX05SX2x3cF9jb25kX3dhaXQgICAgICAgICAgICAgIFNZU19sd3BfY29uZF93YWl0CisvLyNkZWZpbmUgX19OUl9sd3BfY29uZF9zaWduYWwgICAgICAgICAgICBTWVNfbHdwX2NvbmRfc2lnbmFsCisjZGVmaW5lIF9fTlJfbHdwX2NvbmRfYnJvYWRjYXN0ICAgICAgICAgU1lTX2x3cF9jb25kX2Jyb2FkY2FzdAorI2RlZmluZSBfX05SX3ByZWFkICAgICAgICAgICAgICAgICAgICAgIFNZU19wcmVhZAorI2RlZmluZSBfX05SX3B3cml0ZSAgICAgICAgICAgICAgICAgICAgIFNZU19wd3JpdGUKKyNkZWZpbmUgX19OUl9sbHNlZWsgICAgICAgICAgICAgICAgICAgICBTWVNfbGxzZWVrCisvLyNkZWZpbmUgX19OUl9pbnN0X3N5bmMgICAgICAgICAgICAgICAgICBTWVNfaW5zdF9zeW5jCisvLyNkZWZpbmUgX19OUl9icmFuZCAgICAgICAgICAgICAgICAgICAgICBTWVNfYnJhbmQKKy8vI2RlZmluZSBfX05SX2thaW8gICAgICAgICAgICAgICAgICAgICAgIFNZU19rYWlvCisvLyNkZWZpbmUgX19OUl9jcGMgICAgICAgICAgICAgICAgICAgICAgICBTWVNfY3BjCisvLyNkZWZpbmUgX19OUl9sZ3Jwc3lzICAgICAgICAgICAgICAgICAgICBTWVNfbGdycHN5cworLy8jZGVmaW5lIF9fTlJfbWVtaW5mb3N5cyAgICAgICAgICAgICAgICAgU1lTX21lbWluZm9zeXMgLyogPSBTWVNfbGdycHN5cyAqLworI2RlZmluZSBfX05SX3J1c2FnZXN5cyAgICAgICAgICAgICAgICAgIFNZU19ydXNhZ2VzeXMKKyNkZWZpbmUgX19OUl9wb3J0ICAgICAgICAgICAgICAgICAgICAgICBTWVNfcG9ydAorI2RlZmluZSBfX05SX3BvbGxzeXMgICAgICAgICAgICAgICAgICAgIFNZU19wb2xsc3lzCisjZGVmaW5lIF9fTlJfbGFiZWxzeXMgICAgICAgICAgICAgICAgICAgU1lTX2xhYmVsc3lzCisjZGVmaW5lIF9fTlJfYWNsICAgICAgICAgICAgICAgICAgICAgICAgU1lTX2FjbAorI2RlZmluZSBfX05SX2F1ZGl0c3lzICAgICAgICAgICAgICAgICAgIFNZU19hdWRpdHN5cworLy8jZGVmaW5lIF9fTlJfcHJvY2Vzc29yX2JpbmQgICAgICAgICAgICAgU1lTX3Byb2Nlc3Nvcl9iaW5kCisvLyNkZWZpbmUgX19OUl9wcm9jZXNzb3JfaW5mbyAgICAgICAgICAgICBTWVNfcHJvY2Vzc29yX2luZm8KKyNkZWZpbmUgX19OUl9wX29ubGluZSAgICAgICAgICAgICAgICAgICBTWVNfcF9vbmxpbmUKKyNkZWZpbmUgX19OUl9zaWdxdWV1ZSAgICAgICAgICAgICAgICAgICBTWVNfc2lncXVldWUKKyNkZWZpbmUgX19OUl9jbG9ja19nZXR0aW1lICAgICAgICAgICAgICBTWVNfY2xvY2tfZ2V0dGltZQorI2RlZmluZSBfX05SX2Nsb2NrX3NldHRpbWUgICAgICAgICAgICAgIFNZU19jbG9ja19zZXR0aW1lCisjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0cmVzICAgICAgICAgICAgICAgU1lTX2Nsb2NrX2dldHJlcworI2RlZmluZSBfX05SX3RpbWVyX2NyZWF0ZSAgICAgICAgICAgICAgIFNZU190aW1lcl9jcmVhdGUKKyNkZWZpbmUgX19OUl90aW1lcl9kZWxldGUgICAgICAgICAgICAgICBTWVNfdGltZXJfZGVsZXRlCisjZGVmaW5lIF9fTlJfdGltZXJfc2V0dGltZSAgICAgICAgICAgICAgU1lTX3RpbWVyX3NldHRpbWUKKyNkZWZpbmUgX19OUl90aW1lcl9nZXR0aW1lICAgICAgICAgICAgICBTWVNfdGltZXJfZ2V0dGltZQorI2RlZmluZSBfX05SX3RpbWVyX2dldG92ZXJydW4gICAgICAgICAgIFNZU190aW1lcl9nZXRvdmVycnVuCisjZGVmaW5lIF9fTlJfbmFub3NsZWVwICAgICAgICAgICAgICAgICAgU1lTX25hbm9zbGVlcAorI2RlZmluZSBfX05SX2ZhY2wgICAgICAgICAgICAgICAgICAgICAgIFNZU19mYWNsCisjZGVmaW5lIF9fTlJfZG9vciAgICAgICAgICAgICAgICAgICAgICAgU1lTX2Rvb3IKKyNkZWZpbmUgX19OUl9zZXRyZXVpZCAgICAgICAgICAgICAgICAgICBTWVNfc2V0cmV1aWQKKyNkZWZpbmUgX19OUl9zZXRyZWdpZCAgICAgICAgICAgICAgICAgICBTWVNfc2V0cmVnaWQKKy8vI2RlZmluZSBfX05SX2luc3RhbGxfdXRyYXAgICAgICAgICAgICAgIFNZU19pbnN0YWxsX3V0cmFwCisvLyNkZWZpbmUgX19OUl9zaWdub3RpZnkgICAgICAgICAgICAgICAgICBTWVNfc2lnbm90aWZ5CisjZGVmaW5lIF9fTlJfc2NoZWRjdGwgICAgICAgICAgICAgICAgICAgU1lTX3NjaGVkY3RsCisjZGVmaW5lIF9fTlJfcHNldCAgICAgICAgICAgICAgICAgICAgICAgU1lTX3BzZXQKKy8vI2RlZmluZSBTWVNfc3BhcmNfdXRyYXBfaW5zdGFsbAorI2RlZmluZSBfX05SX3Jlc29sdmVwYXRoICAgICAgICAgICAgICAgIFNZU19yZXNvbHZlcGF0aAorI2RlZmluZSBfX05SX2x3cF9tdXRleF90aW1lZGxvY2sgICAgICAgIFNZU19sd3BfbXV0ZXhfdGltZWRsb2NrCisjZGVmaW5lIF9fTlJfbHdwX3NlbWFfdGltZWR3YWl0ICAgICAgICAgU1lTX2x3cF9zZW1hX3RpbWVkd2FpdAorI2RlZmluZSBfX05SX2x3cF9yd2xvY2tfc3lzICAgICAgICAgICAgIFNZU19sd3Bfcndsb2NrX3N5cworI2RlZmluZSBfX05SX2dldGRlbnRzNjQgICAgICAgICAgICAgICAgIFNZU19nZXRkZW50czY0CisjZGVmaW5lIF9fTlJfbW1hcDY0ICAgICAgICAgICAgICAgICAgICAgU1lTX21tYXA2NAorI2RlZmluZSBfX05SX3N0YXR2ZnM2NCAgICAgICAgICAgICAgICAgIFNZU19zdGF0dmZzNjQKKyNkZWZpbmUgX19OUl9mc3RhdHZmczY0ICAgICAgICAgICAgICAgICBTWVNfZnN0YXR2ZnM2NAorI2RlZmluZSBfX05SX3NldHJsaW1pdDY0ICAgICAgICAgICAgICAgIFNZU19zZXRybGltaXQ2NAorI2RlZmluZSBfX05SX2dldHJsaW1pdDY0ICAgICAgICAgICAgICAgIFNZU19nZXRybGltaXQ2NAorI2RlZmluZSBfX05SX3ByZWFkNjQgICAgICAgICAgICAgICAgICAgIFNZU19wcmVhZDY0CisjZGVmaW5lIF9fTlJfcHdyaXRlNjQgICAgICAgICAgICAgICAgICAgU1lTX3B3cml0ZTY0CisvLyNkZWZpbmUgX19OUl9ycGNzeXMgICAgICAgICAgICAgICAgICAgICBTWVNfcnBjc3lzCisjZGVmaW5lIF9fTlJfem9uZSAgICAgICAgICAgICAgICAgICAgICAgU1lTX3pvbmUKKy8vI2RlZmluZSBfX05SX2F1dG9mc3N5cyAgICAgICAgICAgICAgICAgIFNZU19hdXRvZnNzeXMKKyNkZWZpbmUgX19OUl9nZXRjd2QgICAgICAgICAgICAgICAgICAgICBTWVNfZ2V0Y3dkCisjZGVmaW5lIF9fTlJfc29fc29ja2V0ICAgICAgICAgICAgICAgICAgU1lTX3NvX3NvY2tldAorI2RlZmluZSBfX05SX3NvX3NvY2tldHBhaXIgICAgICAgICAgICAgIFNZU19zb19zb2NrZXRwYWlyCisjZGVmaW5lIF9fTlJfYmluZCAgICAgICAgICAgICAgICAgICAgICAgU1lTX2JpbmQKKyNkZWZpbmUgX19OUl9saXN0ZW4gICAgICAgICAgICAgICAgICAgICBTWVNfbGlzdGVuCisjZGVmaW5lIF9fTlJfYWNjZXB0ICAgICAgICAgICAgICAgICAgICAgU1lTX2FjY2VwdAorI2RlZmluZSBfX05SX2Nvbm5lY3QgICAgICAgICAgICAgICAgICAgIFNZU19jb25uZWN0CisjZGVmaW5lIF9fTlJfc2h1dGRvd24gICAgICAgICAgICAgICAgICAgU1lTX3NodXRkb3duCisjZGVmaW5lIF9fTlJfcmVjdiAgICAgICAgICAgICAgICAgICAgICAgU1lTX3JlY3YKKyNkZWZpbmUgX19OUl9yZWN2ZnJvbSAgICAgICAgICAgICAgICAgICBTWVNfcmVjdmZyb20KKyNkZWZpbmUgX19OUl9yZWN2bXNnICAgICAgICAgICAgICAgICAgICBTWVNfcmVjdm1zZworI2RlZmluZSBfX05SX3NlbmQgICAgICAgICAgICAgICAgICAgICAgIFNZU19zZW5kCisjZGVmaW5lIF9fTlJfc2VuZG1zZyAgICAgICAgICAgICAgICAgICAgU1lTX3NlbmRtc2cKKyNkZWZpbmUgX19OUl9zZW5kdG8gICAgICAgICAgICAgICAgICAgICBTWVNfc2VuZHRvCisjZGVmaW5lIF9fTlJfZ2V0cGVlcm5hbWUgICAgICAgICAgICAgICAgU1lTX2dldHBlZXJuYW1lCisjZGVmaW5lIF9fTlJfZ2V0c29ja25hbWUgICAgICAgICAgICAgICAgU1lTX2dldHNvY2tuYW1lCisjZGVmaW5lIF9fTlJfZ2V0c29ja29wdCAgICAgICAgICAgICAgICAgU1lTX2dldHNvY2tvcHQKKyNkZWZpbmUgX19OUl9zZXRzb2Nrb3B0ICAgICAgICAgICAgICAgICBTWVNfc2V0c29ja29wdAorLy8jZGVmaW5lIF9fTlJfc29ja2NvbmZpZyAgICAgICAgICAgICAgICAgU1lTX3NvY2tjb25maWcKKy8vI2RlZmluZSBfX05SX250cF9nZXR0aW1lICAgICAgICAgICAgICAgIFNZU19udHBfZ2V0dGltZQorLy8jZGVmaW5lIF9fTlJfbnRwX2FkanRpbWUgICAgICAgICAgICAgICAgU1lTX250cF9hZGp0aW1lCisvLyNkZWZpbmUgX19OUl9sd3BfbXV0ZXhfdW5sb2NrICAgICAgICAgICBTWVNfbHdwX211dGV4X3VubG9jaworLy8jZGVmaW5lIF9fTlJfbHdwX211dGV4X3RyeWxvY2sgICAgICAgICAgU1lTX2x3cF9tdXRleF90cnlsb2NrCisjZGVmaW5lIF9fTlJfbHdwX211dGV4X3JlZ2lzdGVyICAgICAgICAgU1lTX2x3cF9tdXRleF9yZWdpc3RlcgorLy8jZGVmaW5lIF9fTlJfY2xhZG0gICAgICAgICAgICAgICAgICAgICAgU1lTX2NsYWRtCisjZGVmaW5lIF9fTlJfdXVjb3B5ICAgICAgICAgICAgICAgICAgICAgU1lTX3V1Y29weQorI2RlZmluZSBfX05SX3Vtb3VudDIgICAgICAgICAgICAgICAgICAgIFNZU191bW91bnQyCisKKy8qIFRoZSBmb2xsb3dpbmcgc3lzY2FsbHMgd2VyZSByZW1vdmVkIGluIFNvbGFyaXMgMTEgKHNlZQorICAgaHR0cHM6Ly93aWtpcy5vcmFjbGUuY29tL2Rpc3BsYXkvRFRyYWNlL3N5c2NhbGwrUHJvdmlkZXIpLiBWYWxncmluZCdzIGNvcmUKKyAgIGNhbm5vdCB1c2UgdGhlc2Ugc3lzY2FsbHMgYnV0IHdyYXBwZXJzIGhhdmUgdG8gYmUgcHJvdmlkZWQgZm9yIHRoZW0gYmVjYXVzZQorICAgdGhleSBhcmUgc3RpbGwgaW4gdXNlIG9uIGlsbHVtb3MuCisqLworI2lmIGRlZmluZWQoU09MQVJJU19PTERfU1lTQ0FMTFMpCisjZGVmaW5lIF9fTlJfb3BlbiAgICAgICAgICAgICAgICAgICAgICAgU1lTX29wZW4KKyNkZWZpbmUgX19OUl9saW5rICAgICAgICAgICAgICAgICAgICAgICBTWVNfbGluaworI2RlZmluZSBfX05SX3VubGluayAgICAgICAgICAgICAgICAgICAgIFNZU191bmxpbmsKKyNkZWZpbmUgX19OUl9ta25vZCAgICAgICAgICAgICAgICAgICAgICBTWVNfbWtub2QKKyNkZWZpbmUgX19OUl9jaG1vZCAgICAgICAgICAgICAgICAgICAgICBTWVNfY2htb2QKKyNkZWZpbmUgX19OUl9jaG93biAgICAgICAgICAgICAgICAgICAgICBTWVNfY2hvd24KKyNkZWZpbmUgX19OUl9zdGF0ICAgICAgICAgICAgICAgICAgICAgICBTWVNfc3RhdAorI2RlZmluZSBfX05SX2ZzdGF0ICAgICAgICAgICAgICAgICAgICAgIFNZU19mc3RhdAorI2RlZmluZSBfX05SX2FjY2VzcyAgICAgICAgICAgICAgICAgICAgIFNZU19hY2Nlc3MKKyNkZWZpbmUgX19OUl9ybWRpciAgICAgICAgICAgICAgICAgICAgICBTWVNfcm1kaXIKKyNkZWZpbmUgX19OUl9ta2RpciAgICAgICAgICAgICAgICAgICAgICBTWVNfbWtkaXIKKyNkZWZpbmUgX19OUl9sc3RhdCAgICAgICAgICAgICAgICAgICAgICBTWVNfbHN0YXQKKyNkZWZpbmUgX19OUl9zeW1saW5rICAgICAgICAgICAgICAgICAgICBTWVNfc3ltbGluaworI2RlZmluZSBfX05SX3JlYWRsaW5rICAgICAgICAgICAgICAgICAgIFNZU19yZWFkbGluaworI2RlZmluZSBfX05SX2ZjaG1vZCAgICAgICAgICAgICAgICAgICAgIFNZU19mY2htb2QKKyNkZWZpbmUgX19OUl9mY2hvd24gICAgICAgICAgICAgICAgICAgICBTWVNfZmNob3duCisjZGVmaW5lIF9fTlJfbGNob3duICAgICAgICAgICAgICAgICAgICAgU1lTX2xjaG93bgorI2RlZmluZSBfX05SX3JlbmFtZSAgICAgICAgICAgICAgICAgICAgIFNZU19yZW5hbWUKKyNkZWZpbmUgX19OUl9zdGF0NjQgICAgICAgICAgICAgICAgICAgICBTWVNfc3RhdDY0CisjZGVmaW5lIF9fTlJfbHN0YXQ2NCAgICAgICAgICAgICAgICAgICAgU1lTX2xzdGF0NjQKKyNkZWZpbmUgX19OUl9mc3RhdDY0ICAgICAgICAgICAgICAgICAgICBTWVNfZnN0YXQ2NAorI2RlZmluZSBfX05SX29wZW42NCAgICAgICAgICAgICAgICAgICAgIFNZU19vcGVuNjQKKyNlbmRpZiAvKiBTT0xBUklTX09MRF9TWVNDQUxMUyAqLworCisvKgorI2RlZmluZSBfX05SX251bGwgXAorICAgVkdfU09MQVJJU19TWVNDQUxMX0NPTlNUUlVDVF9GQVNUVFJBUChUX0ZOVUxMKQorI2RlZmluZSBfX05SX2ZnZXRmcCBcCisgICBWR19TT0xBUklTX1NZU0NBTExfQ09OU1RSVUNUX0ZBU1RUUkFQKFRfRkdFVEZQKQorI2RlZmluZSBfX05SX2ZzZXRmcCBcCisgICBWR19TT0xBUklTX1NZU0NBTExfQ09OU1RSVUNUX0ZBU1RUUkFQKFRfRlNFVEZQKQorKi8KKyNkZWZpbmUgX19OUl9nZXRocnRpbWUgXAorICAgVkdfU09MQVJJU19TWVNDQUxMX0NPTlNUUlVDVF9GQVNUVFJBUChUX0dFVEhSVElNRSkKKyNkZWZpbmUgX19OUl9nZXRocnZ0aW1lIFwKKyAgIFZHX1NPTEFSSVNfU1lTQ0FMTF9DT05TVFJVQ1RfRkFTVFRSQVAoVF9HRVRIUlZUSU1FKQorI2RlZmluZSBfX05SX2dldGhyZXN0aW1lIFwKKyAgIFZHX1NPTEFSSVNfU1lTQ0FMTF9DT05TVFJVQ1RfRkFTVFRSQVAoVF9HRVRIUkVTVElNRSkKKy8qCisjZGVmaW5lIF9fTlJfZ2V0bGdycCBcCisgICBWR19TT0xBUklTX1NZU0NBTExfQ09OU1RSVUNUX0ZBU1RUUkFQKFRfR0VUTEdSUCkKKyovCisjaWYgZGVmaW5lZChTT0xBUklTX0dFVEhSVF9GQVNUVFJBUCkKKyNkZWZpbmUgX19OUl9nZXRocnQgXAorICAgVkdfU09MQVJJU19TWVNDQUxMX0NPTlNUUlVDVF9GQVNUVFJBUChUX0dFVEhSVCkKKyNlbmRpZiAvKiBTT0xBUklTX0dFVEhSVF9GQVNUVFJBUCAqLworI2lmIGRlZmluZWQoU09MQVJJU19HRVRaT05FT0ZGU0VUX0ZBU1RUUkFQKQorI2RlZmluZSBfX05SX2dldHpvbmVvZmZzZXQgXAorICAgVkdfU09MQVJJU19TWVNDQUxMX0NPTlNUUlVDVF9GQVNUVFJBUChUX0dFVFpPTkVPRkZTRVQpCisjZW5kaWYgLyogU09MQVJJU19HRVRaT05FT0ZGU0VUX0ZBU1RUUkFQICovCisKKyNlbmRpZiAvKiBfX1ZLSV9TQ05VTVNfU09MQVJJU19IICovCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtdGlsZWd4LWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLXRpbGVneC1saW51eC5oCmluZGV4IDNhNzgwMzAuLmNjMjQ4YjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS1zY251bXMtdGlsZWd4LWxpbnV4LmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy10aWxlZ3gtbGludXguaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgogICAgZnJhbWV3b3JrLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBUaWxlcmEgQ29ycC4KKyAgIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IFRpbGVyYSBDb3JwLgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy14ODYtbGludXguaCBiL2luY2x1ZGUvdmtpL3ZraS1zY251bXMteDg2LWxpbnV4LmgKaW5kZXggZWVlNTk2NC4uNTQ3OWIzZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXNjbnVtcy14ODYtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2ktc2NudW1zLXg4Ni1saW51eC5oCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMC0yMDEzIEp1bGlhbiBTZXdhcmQgCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkIAogICAgICAganNld2FyZEBhY20ub3JnCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS1zb2xhcmlzLXJlcGNhY2hlLmggYi9pbmNsdWRlL3ZraS92a2ktc29sYXJpcy1yZXBjYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjZiMzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3ZraS92a2ktc29sYXJpcy1yZXBjYWNoZS5oCkBAIC0wLDAgKzEsMzMzIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFNvbGFyaXMtc3BlY2lmaWMga2VybmVsIGludGVyZmFjZSBmb3IgdGhlIHJlcG9zaXRvcnkgY2FjaGUgICAtLS0qLworLyotLS0gcHJvdG9jb2wuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2a2ktc29sYXJpcy1yZXBjYWNoZS5oIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNSBJdm8gUmFpc3IKKyAgICAgIGl2b3NoQGl2b3NoLm5ldAorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKy8qIENvcHlyaWdodCAyMDE1LTIwMTUsIFRvbWFzIEplZGxpY2thIDxqZWRsaWNrYXRAZ21haWwuY29tPi4gKi8KKworI2lmbmRlZiBfX1ZLSV9TT0xBUklTX1JFUENBQ0hFX0gKKyNkZWZpbmUgX19WS0lfU09MQVJJU19SRVBDQUNIRV9ICisKKy8qIEZyb20gPHJlcGNhY2hlX3Byb3RvY29sLmg+IHdoaWNoIGlzIGNvbnNvbGlkYXRpb24gcHJpdmF0ZS4gKi8KKyNkZWZpbmUgVktJX1JFUE9TSVRPUllfRE9PUl9CQVNFVkVSICgoJ1InIDw8IDI0KSB8ICgnZScgPDwgMTYpIHwgKCdwJyA8PCA4KSkKKworI2lmIChTT0xBUklTX1JFUENBQ0hFX1BST1RPQ09MX1ZFUlNJT04gPT0gMjEpCisjZGVmaW5lIFZLSV9SRVBPU0lUT1JZX0RPT1JfVkVSU0lPTiAoMjEgKyBWS0lfUkVQT1NJVE9SWV9ET09SX0JBU0VWRVIpCitlbnVtIHZraV9yZXBfcHJvdG9jb2xfcmVxdWVzdGlkIHsKKyAgIFZLSV9SRVBfUFJPVE9DT0xfQ0xPU0UgPSAoJ0MnIDw8IDgpLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfU0VUVVAsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9OQU1FLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfUEFSRU5UX1RZUEUsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9HRVRfQ0hJTEQsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9HRVRfUEFSRU5ULAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VULAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfVVBEQVRFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfQ1JFQVRFX0NISUxELAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfQ1JFQVRFX1BHLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfREVMRVRFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfUkVTRVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9URUFSRE9XTiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TRVRVUCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TVEFSVCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9SRUFELAorICAgVktJX1JFUF9QUk9UT0NPTF9JVEVSX1JFQURfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX0lURVJfUkVTRVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0lURVJfVEVBUkRPV04sCisgICBWS0lfUkVQX1BST1RPQ09MX05FWFRfU05BUExFVkVMLAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9UQUtFLAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9UQUtFX05BTUVELAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9BVFRBQ0gsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BFUlRZX0dFVF9UWVBFLAorICAgVktJX1JFUF9QUk9UT0NPTF9QUk9QRVJUWV9HRVRfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BFUlRZR1JQX1NFVFVQX1dBSVQsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BFUlRZR1JQX1RYX1NUQVJULAorICAgVktJX1JFUF9QUk9UT0NPTF9QUk9QRVJUWUdSUF9UWF9DT01NSVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0NMSUVOVF9BRERfTk9USUZZLAorICAgVktJX1JFUF9QUk9UT0NPTF9DTElFTlRfV0FJVCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfQkFDS1VQLAorICAgVktJX1JFUF9QUk9UT0NPTF9TRVRfQVVESVRfQU5OT1RBVElPTiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfU1dJVENILAorfTsKKyNlbGlmIChTT0xBUklTX1JFUENBQ0hFX1BST1RPQ09MX1ZFUlNJT04gPT0gMjMpCisjZGVmaW5lIFZLSV9SRVBPU0lUT1JZX0RPT1JfVkVSU0lPTiAoMjMgKyBWS0lfUkVQT1NJVE9SWV9ET09SX0JBU0VWRVIpCitlbnVtIHZraV9yZXBfcHJvdG9jb2xfcmVxdWVzdGlkIHsKKyAgIFZLSV9SRVBfUFJPVE9DT0xfQ0xPU0UgPSAoJ0MnIDw8IDgpLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfU0VUVVAsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9OQU1FLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfUEFSRU5UX1RZUEUsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9HRVRfQ0hJTEQsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9HRVRfUEFSRU5ULAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VULAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfVVBEQVRFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfQ1JFQVRFX0NISUxELAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfQ1JFQVRFX1BHLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfREVMRVRFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfVU5ERUxFVEUsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9SRU1PVkUsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9ERUxDVVNULAorICAgVktJX1JFUF9QUk9UT0NPTF9CVU5ETEVfUkVNT1ZFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfUkVTRVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9URUFSRE9XTiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TRVRVUCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TVEFSVCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9SRUFELAorICAgVktJX1JFUF9QUk9UT0NPTF9JVEVSX1JFQURfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX0lURVJfUkVTRVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0lURVJfVEVBUkRPV04sCisgICBWS0lfUkVQX1BST1RPQ09MX05FWFRfU05BUExFVkVMLAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9UQUtFLAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9UQUtFX05BTUVELAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9BVFRBQ0gsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BFUlRZX0dFVF9UWVBFLAorICAgVktJX1JFUF9QUk9UT0NPTF9QUk9QRVJUWV9HRVRfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX1BHX1NFVFVQX1dBSVQsCisgICBWS0lfUkVQX1BST1RPQ09MX1BHX1RYX1NUQVJULAorICAgVktJX1JFUF9QUk9UT0NPTF9QR19UWF9DT01NSVQsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BfQlVORExFX1JFTU9WRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfQ0xJRU5UX0FERF9OT1RJRlksCisgICBWS0lfUkVQX1BST1RPQ09MX0NMSUVOVF9XQUlULAorICAgVktJX1JFUF9QUk9UT0NPTF9CQUNLVVAsCisgICBWS0lfUkVQX1BST1RPQ09MX1NFVF9BVURJVF9BTk5PVEFUSU9OLAorICAgVktJX1JFUF9QUk9UT0NPTF9VTlNFVF9BVURJVF9BTk5PVEFUSU9OLAorICAgVktJX1JFUF9QUk9UT0NPTF9TRVRfVFhfREVDT1JBVElPTiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfU1dJVENILAorICAgVktJX1JFUF9QUk9UT0NPTF9ERUNPUkFUSU9OX0dFVF9MQVlFUiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfREVDT1JBVElPTl9HRVRfVFlQRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfREVDT1JBVElPTl9HRVRfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX0RFQ09SQVRJT05fR0VUX0JVTkRMRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX0lOQ09ORkxJQ1QsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9JU19NQVNLRUQsCisgICBWS0lfUkVQX1BST1RPQ09MX0NMSUVOVF9SRU1PVkVfTk9USUZZLAorfTsKKyNlbGlmIChTT0xBUklTX1JFUENBQ0hFX1BST1RPQ09MX1ZFUlNJT04gPT0gMjUpCisjZGVmaW5lIFZLSV9SRVBPU0lUT1JZX0RPT1JfVkVSU0lPTiAoMjUgKyBWS0lfUkVQT1NJVE9SWV9ET09SX0JBU0VWRVIpCitlbnVtIHZraV9yZXBfcHJvdG9jb2xfcmVxdWVzdGlkIHsKKyAgIFZLSV9SRVBfUFJPVE9DT0xfQ0xPU0UgPSAoJ0MnIDw8IDgpLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfU0VUVVAsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9OQU1FLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfRk1SSSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX1BBUkVOVF9UWVBFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VUX0NISUxELAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VUX1BBUkVOVCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX0dFVF9ST09ULAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VULAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfVVBEQVRFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfQ1JFQVRFX0NISUxELAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfQ1JFQVRFX1BHLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfREVMRVRFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfVU5ERUxFVEUsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9SRU1PVkUsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9ERUxDVVNULAorICAgVktJX1JFUF9QUk9UT0NPTF9CVU5ETEVfUkVNT1ZFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfUkVTRVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9URUFSRE9XTiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TRVRVUCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TVEFSVCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9SRUFELAorICAgVktJX1JFUF9QUk9UT0NPTF9JVEVSX1JFQURfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX0lURVJfUkVTRVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0lURVJfVEVBUkRPV04sCisgICBWS0lfUkVQX1BST1RPQ09MX05FWFRfU05BUExFVkVMLAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9UQUtFLAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9UQUtFX05BTUVELAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9BVFRBQ0gsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BFUlRZX0dFVF9UWVBFLAorICAgVktJX1JFUF9QUk9UT0NPTF9QUk9QRVJUWV9HRVRfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX1BHX1NFVFVQX1dBSVQsCisgICBWS0lfUkVQX1BST1RPQ09MX1BHX1RYX1NUQVJULAorICAgVktJX1JFUF9QUk9UT0NPTF9QR19UWF9DT01NSVQsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BfQlVORExFX1JFTU9WRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfQ0xJRU5UX0FERF9OT1RJRlksCisgICBWS0lfUkVQX1BST1RPQ09MX0NMSUVOVF9XQUlULAorICAgVktJX1JFUF9QUk9UT0NPTF9CQUNLVVAsCisgICBWS0lfUkVQX1BST1RPQ09MX1NFVF9BVURJVF9BTk5PVEFUSU9OLAorICAgVktJX1JFUF9QUk9UT0NPTF9VTlNFVF9BVURJVF9BTk5PVEFUSU9OLAorICAgVktJX1JFUF9QUk9UT0NPTF9TRVRfVFhfREVDT1JBVElPTiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfU1dJVENILAorICAgVktJX1JFUF9QUk9UT0NPTF9ERUNPUkFUSU9OX0dFVF9MQVlFUiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfREVDT1JBVElPTl9HRVRfVFlQRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfREVDT1JBVElPTl9HRVRfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX0RFQ09SQVRJT05fR0VUX0JVTkRMRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX0lOQ09ORkxJQ1QsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9JU19NQVNLRUQsCisgICBWS0lfUkVQX1BST1RPQ09MX0NMSUVOVF9SRU1PVkVfTk9USUZZLAorfTsKKyNlbGlmIChTT0xBUklTX1JFUENBQ0hFX1BST1RPQ09MX1ZFUlNJT04gPT0gMjYpCisjZGVmaW5lIFZLSV9SRVBPU0lUT1JZX0RPT1JfVkVSU0lPTiAoMjYgKyBWS0lfUkVQT1NJVE9SWV9ET09SX0JBU0VWRVIpCitlbnVtIHZraV9yZXBfcHJvdG9jb2xfcmVxdWVzdGlkIHsKKyAgIFZLSV9SRVBfUFJPVE9DT0xfQ0xPU0UgPSAoJ0MnIDw8IDgpLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfU0VUVVAsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9OQU1FLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfRk1SSSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX1BBUkVOVF9UWVBFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VUX0NISUxELAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VUX1BBUkVOVCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX0dFVF9ST09ULAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfR0VULAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfVVBEQVRFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfQ1JFQVRFX0NISUxELAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfQ1JFQVRFX1BHLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfREVMRVRFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfVU5ERUxFVEUsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9SRU1PVkUsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9ERUxDVVNULAorICAgVktJX1JFUF9QUk9UT0NPTF9CVU5ETEVfUkVNT1ZFLAorICAgVktJX1JFUF9QUk9UT0NPTF9FTlRJVFlfUkVTRVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9URUFSRE9XTiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TRVRVUCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9TVEFSVCwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfSVRFUl9SRUFELAorICAgVktJX1JFUF9QUk9UT0NPTF9JVEVSX1JFQURfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX0lURVJfUkVTRVQsCisgICBWS0lfUkVQX1BST1RPQ09MX0lURVJfVEVBUkRPV04sCisgICBWS0lfUkVQX1BST1RPQ09MX05FWFRfU05BUExFVkVMLAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9UQUtFLAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9UQUtFX05BTUVELAorICAgVktJX1JFUF9QUk9UT0NPTF9TTkFQU0hPVF9BVFRBQ0gsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BFUlRZX0dFVF9UWVBFLAorICAgVktJX1JFUF9QUk9UT0NPTF9QUk9QRVJUWV9HRVRfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX1BHX1NFVFVQX1dBSVQsCisgICBWS0lfUkVQX1BST1RPQ09MX1BHX1RYX1NUQVJULAorICAgVktJX1JFUF9QUk9UT0NPTF9QR19UWF9DT01NSVQsCisgICBWS0lfUkVQX1BST1RPQ09MX1BST1BfQlVORExFX1JFTU9WRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfQ0xJRU5UX0FERF9OT1RJRlksCisgICBWS0lfUkVQX1BST1RPQ09MX0NMSUVOVF9XQUlULAorICAgVktJX1JFUF9QUk9UT0NPTF9CQUNLVVAsCisgICBWS0lfUkVQX1BST1RPQ09MX1NFVF9BVURJVF9BTk5PVEFUSU9OLAorICAgVktJX1JFUF9QUk9UT0NPTF9VTlNFVF9BVURJVF9BTk5PVEFUSU9OLAorICAgVktJX1JFUF9QUk9UT0NPTF9TRVRfVFhfREVDT1JBVElPTiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfU1dJVENILAorICAgVktJX1JFUF9QUk9UT0NPTF9ERUNPUkFUSU9OX0dFVF9MQVlFUiwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfREVDT1JBVElPTl9HRVRfVFlQRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfREVDT1JBVElPTl9HRVRfVkFMVUUsCisgICBWS0lfUkVQX1BST1RPQ09MX0RFQ09SQVRJT05fR0VUX0JVTkRMRSwKKyAgIFZLSV9SRVBfUFJPVE9DT0xfRU5USVRZX0lOQ09ORkxJQ1QsCisgICBWS0lfUkVQX1BST1RPQ09MX0VOVElUWV9JU19NQVNLRUQsCisgICBWS0lfUkVQX1BST1RPQ09MX0NMSUVOVF9SRU1PVkVfTk9USUZZLAorICAgVktJX1JFUF9QUk9UT0NPTF9NQVhfUkVRVUVTVAorfTsKKyNlbHNlCisjZXJyb3IgVW5zdXBwb3J0ZWQgcmVwY2FjaGUgcHJvdG9jb2wgdmVyc2lvbgorI2VuZGlmCisKKyNkZWZpbmUgVktJX1JFUE9TSVRPUllfRE9PUl9OQU1FICIvc3lzdGVtL3ZvbGF0aWxlL3JlcG9zaXRvcnlfZG9vciIKKyNkZWZpbmUgVktJX1JFUF9QUk9UT0NPTF9OQU1FX0xFTiAxMjAKK2VudW0gdmtpX3JlcG9zaXRvcnlfZG9vcl9yZXF1ZXN0aWQgeworICAgVktJX1JFUE9TSVRPUllfRE9PUl9SRVFVRVNUX0NPTk5FQ1QgPSAoKCdNJyA8PCA4KSB8IDEpCit9OworZW51bSB2a2lfcmVwb3NpdG9yeV9kb29yX3N0YXR1c2lkIHsKKyAgIFZLSV9SRVBPU0lUT1JZX0RPT1JfU1VDQ0VTUyAgICAgICAgICAgICAgICA9IDAsCisgICBWS0lfUkVQT1NJVE9SWV9ET09SX0ZBSUxfQkFEX1JFUVVFU1QgICAgICAgPSAxLAorICAgVktJX1JFUE9TSVRPUllfRE9PUl9GQUlMX1ZFUlNJT05fTUlTTUFUQ0ggID0gMiwKKyAgIFZLSV9SRVBPU0lUT1JZX0RPT1JfRkFJTF9CQURfRkxBRyAgICAgICAgICA9IDMsCisgICBWS0lfUkVQT1NJVE9SWV9ET09SX0ZBSUxfTk9fUkVTT1VSQ0VTICAgICAgPSA0LAorICAgVktJX1JFUE9TSVRPUllfRE9PUl9GQUlMX1BFUk1JU1NJT05fREVOSUVEID0gNQorfTsKK3R5cGVkZWYgc3RydWN0IHZraV9yZXBvc2l0b3J5X2Rvb3JfcmVxdWVzdCB7CisgICB2a2lfdWludDMyX3QgcmRyX3ZlcnNpb247CisgICBlbnVtIHZraV9yZXBvc2l0b3J5X2Rvb3JfcmVxdWVzdGlkIHJkcl9yZXF1ZXN0OworICAgdmtpX3VpbnQzMl90IHJkcl9mbGFnczsKKyAgIHZraV91aW50MzJfdCByZHJfZGVidWc7Cit9IHZraV9yZXBvc2l0b3J5X2Rvb3JfcmVxdWVzdF90OwordHlwZWRlZiBzdHJ1Y3QgdmtpX3JlcG9zaXRvcnlfZG9vcl9yZXNwb25zZSB7CisgICBlbnVtIHZraV9yZXBvc2l0b3J5X2Rvb3Jfc3RhdHVzaWQgcmRyX3N0YXR1czsKK30gdmtpX3JlcG9zaXRvcnlfZG9vcl9yZXNwb25zZV90OwordHlwZWRlZiBzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0IHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7Cit9IHZraV9yZXBfcHJvdG9jb2xfcmVxdWVzdF90Oworc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X3NldHVwIHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7CisgICB2a2lfdWludDMyX3QgcnByX2VudGl0eWlkOworICAgdmtpX3VpbnQzMl90IHJwcl9lbnRpdHl0eXBlOworfTsKK3N0cnVjdCB2a2lfcmVwX3Byb3RvY29sX2VudGl0eV9uYW1lIHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7CisgICB2a2lfdWludDMyX3QgcnByX2VudGl0eWlkOworICAgdmtpX3VpbnQzMl90IHJwcl9hbnN3ZXJ0eXBlOworfTsKK3N0cnVjdCB2a2lfcmVwX3Byb3RvY29sX2VudGl0eV9nZXQgeworICAgZW51bSB2a2lfcmVwX3Byb3RvY29sX3JlcXVlc3RpZCBycHJfcmVxdWVzdDsKKyAgIHZraV91aW50MzJfdCBycHJfZW50aXR5aWQ7CisgICB2a2lfdWludDMyX3QgcnByX29iamVjdDsKK307CitzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9lbnRpdHlfZ2V0X2NoaWxkIHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7CisgICB2a2lfdWludDMyX3QgcnByX2VudGl0eWlkOworICAgdmtpX3VpbnQzMl90IHJwcl9jaGlsZGlkOworICAgY2hhciBycHJfbmFtZVtWS0lfUkVQX1BST1RPQ09MX05BTUVfTEVOXTsKK307CitzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9lbnRpdHlfcGFyZW50IHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7CisgICB2a2lfdWludDMyX3QgcnByX2VudGl0eWlkOworICAgdmtpX3VpbnQzMl90IHJwcl9vdXRpZDsKK307CitzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9lbnRpdHlfcm9vdCB7CisgICBlbnVtIHZraV9yZXBfcHJvdG9jb2xfcmVxdWVzdGlkIHJwcl9yZXF1ZXN0OworICAgdmtpX3VpbnQzMl90IHJwcl9lbnRpdHlpZDsKKyAgIHZraV91aW50MzJfdCBycHJfb3V0aWQ7Cit9Oworc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfZW50aXR5X3Jlc2V0IHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7CisgICB2a2lfdWludDMyX3QgcnByX2VudGl0eWlkOworfTsKK3N0cnVjdCB2a2lfcmVwX3Byb3RvY29sX2VudGl0eV90ZWFyZG93biB7CisgICBlbnVtIHZraV9yZXBfcHJvdG9jb2xfcmVxdWVzdGlkIHJwcl9yZXF1ZXN0OworICAgdmtpX3VpbnQzMl90IHJwcl9lbnRpdHlpZDsKK307CitzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9pdGVyX3JlYWQgeworICAgZW51bSB2a2lfcmVwX3Byb3RvY29sX3JlcXVlc3RpZCBycHJfcmVxdWVzdDsKKyAgIHZraV91aW50MzJfdCBycHJfaXRlcmlkOworICAgdmtpX3VpbnQzMl90IHJwcl9zZXF1ZW5jZTsKKyAgIHZraV91aW50MzJfdCBycHJfZW50aXR5aWQ7Cit9Oworc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfaXRlcl9yZWFkX3ZhbHVlIHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7CisgICB2a2lfdWludDMyX3QgcnByX2l0ZXJpZDsKKyAgIHZraV91aW50MzJfdCBycHJfc2VxdWVuY2U7Cit9Oworc3RydWN0IHZraV9yZXBfcHJvdG9jb2xfaXRlcl9yZXF1ZXN0IHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7CisgICB2a2lfdWludDMyX3QgcnByX2l0ZXJpZDsKK307CitzdHJ1Y3QgdmtpX3JlcF9wcm90b2NvbF9pdGVyX3N0YXJ0IHsKKyAgIGVudW0gdmtpX3JlcF9wcm90b2NvbF9yZXF1ZXN0aWQgcnByX3JlcXVlc3Q7CisgICB2a2lfdWludDMyX3QgcnByX2l0ZXJpZDsKKyAgIHZraV91aW50MzJfdCBycHJfZW50aXR5OworICAgdmtpX3VpbnQzMl90IHJwcl9pdGVydHlwZTsKKyAgIHZraV91aW50MzJfdCBycHJfZmxhZ3M7CisgICBjaGFyIHJwcl9wYXR0ZXJuW1ZLSV9SRVBfUFJPVE9DT0xfTkFNRV9MRU5dOworfTsKK3N0cnVjdCB2a2lfcmVwX3Byb3RvY29sX3Byb3BlcnR5X3JlcXVlc3QgeworICAgZW51bSB2a2lfcmVwX3Byb3RvY29sX3JlcXVlc3RpZCBycHJfcmVxdWVzdDsKKyAgIHZraV91aW50MzJfdCBycHJfZW50aXR5aWQ7Cit9OworCisKKworCisjZW5kaWYgLyogX19WS0lfU09MQVJJU19SRVBDQUNIRV8yMV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktc29sYXJpcy5oIGIvaW5jbHVkZS92a2kvdmtpLXNvbGFyaXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzNiOWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS92a2kvdmtpLXNvbGFyaXMuaApAQCAtMCwwICsxLDE2NDYgQEAKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBTb2xhcmlzLXNwZWNpZmljIGtlcm5lbCBpbnRlcmZhY2UuICAgICAgICAgICAgIHZraS1zb2xhcmlzLmggLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IFBldHIgUGF2bHUKKyAgICAgIHNldHVwQGRhZ29iYWguY3oKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisvKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBJdm8gUmFpc3IgPGl2b3NoQGl2b3NoLm5ldD4gKi8KKworLyogQ29weXJpZ2h0IDIwMTMsIE9tbmlUSSBDb21wdXRlciBDb25zdWx0aW5nLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICovCisKKy8qIFRoZSBwdXJwb3NlIG9mIHRoaXMgZmlsZSBpcyBkZXNjcmliZWQgaW4gdmtpLWxpbnV4LmguCisKKyAgIFRvIGF2b2lkIGFueSBjb3B5cmlnaHQgaXNzdWVzLCB2a2ktc29sYXJpcy5oIGZvbGxvd3MgdGhlIHNhbWUgYXBwcm9hY2ggYXMKKyAgIHZraS1kYXJ3aW4uaCAobm90IGNvcHlpbmcgYW55dGhpbmcgZnJvbSBrZXJuZWwgaGVhZGVyIGZpbGVzIGJ1dCBpbnN0ZWFkCisgICBqdXN0IGluY2x1ZGluZyB0aGVtKS4KKyAqLworCisjaWZuZGVmIF9fVktJX1NPTEFSSVNfSAorI2RlZmluZSBfX1ZLSV9TT0xBUklTX0gKKworI2luY2x1ZGUgIi4uLy4uL2NvbmZpZy5oIgorCisvKiBfWE9QRU5fU09VUkNFIGVxdWFsIHRvIGF0IGxlYXN0ICc1MDAnIGlzIHJlcXVpcmVkIHNvIHRoYXQgdmFyaW91cyBzeXN0ZW0KKyAgIHN0cnVjdHVyZXMgaGF2ZSBhbGwgbmVjZXNzYXJ5IGF0dHJpYnV0ZXMgKGZvciBleGFtcGxlIHN0cnVjdCBtc2doZHIpLiAqLworI2lmICFkZWZpbmVkKF9YT1BFTl9TT1VSQ0UpCisvKiBDb21waWxlciB2ZXJzaW9ucyBjOTkgYW5kIGhpZ2hlciByZXF1aXJlIF9YT1BFTl9TT1VSQ0UgYXQgbGVhc3QgJzYwMCcuICovCisjICAgaWYgKF9fU1REQ19WRVJTSU9OX18gLSAwID49IDE5OTkwMUwpCisjICAgICAgZGVmaW5lIF9YT1BFTl9TT1VSQ0UgNjAwCisjICAgZWxzZQorIyAgICAgIGRlZmluZSBfWE9QRU5fU09VUkNFIDUwMAorIyAgIGVuZGlmCisjZWxpZiAoX1hPUEVOX1NPVVJDRSAtIDAgIT0gNTAwKSAmJiAoX1hPUEVOX1NPVVJDRSAtIDAgIT0gNjAwKSAmJiAoX1hPUEVOX1NPVVJDRSAtIDAgIT0gNzAwKQorIyAgIGVycm9yICJDb21waWxlciBvciBvcHRpb25zIGludmFsaWQgZm9yIGluY2x1ZGluZyB0aGlzIGhlYWRlciBmaWxlLiIKKyNlbmRpZiAvKiBfWE9QRU5fU09VUkNFICovCisKKyNkZWZpbmUgX19FWFRFTlNJT05TX18gMQorLyogYXNzZXJ0IF9GSUxFX09GRlNFVF9CSVRTID09IDMyICovCisKKyNkZWZpbmUgVktJX1BBR0VfU0hJRlQgMTIKKyNkZWZpbmUgVktJX1BBR0VfU0laRSAoMVVMIDw8IFZLSV9QQUdFX1NISUZUKQorI2RlZmluZSBWS0lfUEFHRU1BU0sgKH5WS0lfUEFHRU9GRlNFVCkKKyNkZWZpbmUgVktJX1BBR0VPRkZTRVQgKFZLSV9QQUdFX1NJWkUgLSAxKQorI2RlZmluZSBWS0lfTUFYX1BBR0VfU0hJRlQgVktJX1BBR0VfU0hJRlQKKyNkZWZpbmUgVktJX01BWF9QQUdFX1NJWkUgVktJX1BBR0VfU0laRQorCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNkZWZpbmUgVktJX1VJTlRfTUFYIFVJTlRfTUFYCisjZGVmaW5lIFZLSV9VSU5UUFRSX01BWCBVSU5UUFRSX01BWAorI2RlZmluZSB2a2lfYm9vbGVhbl90IGJvb2xlYW5fdAorI2RlZmluZSB2a2lfZGF0YWxpbmtfaWRfdCBkYXRhbGlua19pZF90CisjZGVmaW5lIHZraV91aW50X3QgdWludF90CisjZGVmaW5lIHZraV91aW50MzJfdCB1aW50MzJfdAorI2RlZmluZSB2a2lfdWludDY0X3QgdWludDY0X3QKKyNkZWZpbmUgdmtpX3Vsb25nX3QgdWxvbmdfdAorI2RlZmluZSB2a2lfY2FkZHJfdCBjYWRkcl90CisjZGVmaW5lIHZraV9kZXZfdCBkZXZfdAorI2RlZmluZSB2a2lfb2ZmX3Qgb2ZmX3QKKyNkZWZpbmUgdmtpX2lkX3QgaWRfdAorI2RlZmluZSB2a2lfa2V5X3Qga2V5X3QKKyNkZWZpbmUgdmtpX21vZGVfdCBtb2RlX3QKKyNkZWZpbmUgdmtpX29fZGV2X3Qgb19kZXZfdAorI2RlZmluZSB2a2lfcHJvamlkX3QgcHJvamlkX3QKKyNkZWZpbmUgdmtpX3VpZF90IHVpZF90CisjZGVmaW5lIHZraV9naWRfdCBnaWRfdAorI2RlZmluZSB2a2lfcGlkX3QgcGlkX3QKKyNkZWZpbmUgdmtpX3NpemVfdCBzaXplX3QKKyNkZWZpbmUgdmtpX3RpbWVfdCB0aW1lX3QKKyNkZWZpbmUgdmtpX3RpbWVyX3QgdGltZXJfdAorI2RlZmluZSB2a2lfdWNoYXJfdCB1Y2hhcl90CisKK3R5cGVkZWYgdWludDMyX3QgdmtpX3UzMjsKKworCisjaW5jbHVkZSA8c3lzL3R5cGVzMzIuaD4KKyNkZWZpbmUgdmtpX3NpemUzMl90IHNpemUzMl90CisKKworI2luY2x1ZGUgPGZjbnRsLmg+CisjZGVmaW5lIFZLSV9TRUVLX1NFVCBTRUVLX1NFVAorCisKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNkZWZpbmUgVktJX05HUk9VUFNfTUFYIE5HUk9VUFNfTUFYCisjZGVmaW5lIFZLSV9QQVRIX01BWCBQQVRIX01BWAorLyogVXNlZCBpbiBsYXVuY2hlci1saW51eC5jIHdoaWNoIHdlIHNoYXJlIHdpdGggTGludXggcG9ydC4gKi8KKyNkZWZpbmUgVktJX0JJTlBSTV9CVUZfU0laRSBWS0lfUEFUSF9NQVgKKworCisjaW5jbHVkZSA8dWNyZWQuaD4KKyNkZWZpbmUgdmtpX3VjcmVkX3QgdWNyZWRfdAorCisKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNkZWZpbmUgVktJX1JfT0sgUl9PSworI2RlZmluZSBWS0lfV19PSyBXX09LCisjZGVmaW5lIFZLSV9YX09LIFhfT0sKKworCisjaW5jbHVkZSA8YnNtL2F1ZGl0Lmg+CisjZGVmaW5lIFZLSV9BX0dFVEFNQVNLIEFfR0VUQU1BU0sKKyNkZWZpbmUgVktJX0FfR0VUQ0FSIEFfR0VUQ0FSCisjZGVmaW5lIFZLSV9BX0dFVENMQVNTIEFfR0VUQ0xBU1MKKyNkZWZpbmUgVktJX0FfR0VUQ09ORCBBX0dFVENPTkQKKyNkZWZpbmUgVktJX0FfR0VUQ1dEIEFfR0VUQ1dECisjZGVmaW5lIFZLSV9BX0dFVEtBVURJVCBBX0dFVEtBVURJVAorI2RlZmluZSBWS0lfQV9HRVRLTUFTSyBBX0dFVEtNQVNLCisjZGVmaW5lIFZLSV9BX0dFVFBJTkZPIEFfR0VUUElORk8KKyNkZWZpbmUgVktJX0FfR0VUUElORk9fQUREUiBBX0dFVFBJTkZPX0FERFIKKyNkZWZpbmUgVktJX0FfR0VUUE9MSUNZIEFfR0VUUE9MSUNZCisjZGVmaW5lIFZLSV9BX0dFVFFDVFJMIEFfR0VUUUNUUkwKKyNkZWZpbmUgVktJX0FfR0VUU1RBVCBBX0dFVFNUQVQKKyNkZWZpbmUgVktJX0FfU0VUQU1BU0sgQV9TRVRBTUFTSworI2RlZmluZSBWS0lfQV9TRVRDTEFTUyBBX1NFVENMQVNTCisjZGVmaW5lIFZLSV9BX1NFVENPTkQgQV9TRVRDT05ECisjZGVmaW5lIFZLSV9BX1NFVEtBVURJVCBBX1NFVEtBVURJVAorI2RlZmluZSBWS0lfQV9TRVRLTUFTSyBBX1NFVEtNQVNLCisjZGVmaW5lIFZLSV9BX1NFVFBNQVNLIEFfU0VUUE1BU0sKKyNkZWZpbmUgVktJX0FfU0VUUE9MSUNZIEFfU0VUUE9MSUNZCisjZGVmaW5lIFZLSV9BX1NFVFFDVFJMIEFfU0VUUUNUUkwKKyNkZWZpbmUgVktJX0FfU0VUU01BU0sgQV9TRVRTTUFTSworI2RlZmluZSBWS0lfQV9TRVRTVEFUIEFfU0VUU1RBVAorI2RlZmluZSBWS0lfQV9TRVRVTUFTSyBBX1NFVFVNQVNLCisjZGVmaW5lIFZLSV9CU01fQVVESVQgQlNNX0FVRElUCisjZGVmaW5lIFZLSV9CU01fQVVESVRDVEwgQlNNX0FVRElUQ1RMCisjZGVmaW5lIFZLSV9CU01fQVVESVRET09SIEJTTV9BVURJVERPT1IKKyNkZWZpbmUgVktJX0JTTV9HRVRBVURJVCBCU01fR0VUQVVESVQKKyNkZWZpbmUgVktJX0JTTV9HRVRBVURJVF9BRERSIEJTTV9HRVRBVURJVF9BRERSCisjZGVmaW5lIFZLSV9CU01fR0VUQVVJRCBCU01fR0VUQVVJRAorI2RlZmluZSBWS0lfQlNNX1NFVEFVRElUIEJTTV9TRVRBVURJVAorI2RlZmluZSBWS0lfQlNNX1NFVEFVRElUX0FERFIgQlNNX1NFVEFVRElUX0FERFIKKyNkZWZpbmUgVktJX0JTTV9TRVRBVUlEIEJTTV9TRVRBVUlECisjZGVmaW5lIHZraV9hdV9ldmNsYXNzX21hcF90IGF1X2V2Y2xhc3NfbWFwX3QKKyNkZWZpbmUgdmtpX2F1X2lkX3QgYXVfaWRfdAorI2RlZmluZSB2a2lfYXVfbWFza190IGF1X21hc2tfdAorI2RlZmluZSB2a2lfYXVfcWN0cmwgYXVfcWN0cmwKKyNkZWZpbmUgdmtpX2F1X3N0YXRfdCBhdV9zdGF0X3QKKyNkZWZpbmUgdmtpX2F1ZGl0aW5mb190IGF1ZGl0aW5mb190CisjZGVmaW5lIHZraV9hdWRpdGluZm9fYWRkcl90IGF1ZGl0aW5mb19hZGRyX3QKKyNkZWZpbmUgdmtpX2F1ZGl0cGluZm8gYXVkaXRwaW5mbworI2RlZmluZSB2a2lfYXVkaXRwaW5mb19hZGRyIGF1ZGl0cGluZm9fYWRkcgorCisKKyNpbmNsdWRlIDxzeXMvcHN3Lmg+CisjZGVmaW5lIFZLSV9QU0xfVVNFUiBQU0xfVVNFUgorCisKKyNpbmNsdWRlIDxpYTMyL3N5cy90cmFwLmg+CisjZGVmaW5lIFZLSV9UX0JQVEZMVCBUX0JQVEZMVAorCisKKy8qIEZyb20gPGxpYmMvaW5jL2xpYmNfaW50Lmg+IHdoaWNoIGlzIGNvbnNvbGlkYXRpb24gcHJpdmF0ZS4gKi8KKyNkZWZpbmUgVktJX0NJX0JJTkRfR1VBUkQgNAorI2RlZmluZSBWS0lfQ0lfQklORF9DTEVBUiA1CisjZGVmaW5lIFZLSV9USFJfRkxHX1JUTEQgMHgwMQorCit0eXBlZGVmIHN0cnVjdCB7CisgICBpbnQgY2lfdGFnOworICAgdW5pb24geworICAgICAgaW50ICgqY2lfZnVuYykoaW50KTsKKyAgICAgIGxvbmcgY2lfdmFsOworICAgICAgY2hhciAqY2lfcHRyOworICAgfSB2a2lfY2lfdW47Cit9IHZraV9MY19pbnRlcmZhY2U7CisKKworLyogRnJvbSA8bGliYy9wb3J0L2dlbi9nZXR4YnlfZG9vci5oPiB3aGljaCBpcyBjb25zb2xpZGF0aW9uIHByaXZhdGUuICovCisjaWYgZGVmaW5lZChTT0xBUklTX05TQ0RfRE9PUl9TWVNURU1fVk9MQVRJTEUpCisjZGVmaW5lIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiL3N5c3RlbS92b2xhdGlsZS9uYW1lX3NlcnZpY2VfZG9vciIKKyNlbHNlCisjZGVmaW5lIFZLSV9OQU1FX1NFUlZJQ0VfRE9PUiAiL3Zhci9ydW4vbmFtZV9zZXJ2aWNlX2Rvb3IiCisjZW5kaWYgLyogU09MQVJJU19OU0NEX0RPT1JfU1lTVEVNX1ZPTEFUSUxFICovCisKKworI2luY2x1ZGUgPG5mcy9uZnMuaD4KKyNpbmNsdWRlIDxuZnMvbmZzc3lzLmg+CisjZGVmaW5lIFZLSV9ORlNfUkVWQVVUSCBORlNfUkVWQVVUSAorI2RlZmluZSB2a2lfbmZzX3JldmF1dGhfYXJncyBuZnNfcmV2YXV0aF9hcmdzCisKKworI2luY2x1ZGUgPG5ldC9pZi5oPgorI2RlZmluZSB2a2lfaWZjb25mIGlmY29uZgorI2RlZmluZSB2a2lfaWZyZXEgaWZyZXEKKyNkZWZpbmUgdmtpX2xpZmNvbmYgbGlmY29uZgorI2RlZmluZSB2a2lfbGlmbnVtIGxpZm51bQorI2RlZmluZSB2a2lfbGlmcmVxIGxpZnJlcQorCisKKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjZGVmaW5lIFZLSV9JUFBST1RPX1RDUCBJUFBST1RPX1RDUAorI2RlZmluZSB2a2lfaW5fYWRkciBpbl9hZGRyCisjZGVmaW5lIHZraV9zb2NrYWRkcl9pbiBzb2NrYWRkcl9pbgorI2RlZmluZSB2a2lfc29ja2FkZHJfaW42IHNvY2thZGRyX2luNgorCisjaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4KKyNkZWZpbmUgVktJX1RDUF9OT0RFTEFZIFRDUF9OT0RFTEFZCisKKworLyogRG8gbm90IGluY2x1ZGUgbnNzX2RiZGVmcy5oIGlmIGEgQysrIGNvbXBpbGVyIGlzIHVzZWQgdG8gYnVpbGQgYSBmaWxlCisgICB3aGljaCBpbmNsdWRlcyB2a2ktc29sYXJpcy5oLiBUaGlzIGNhbm5vdCBiZSBkb25lIGJlY2F1c2UgdGhlIG5zc19kYmRlZnMuaAorICAgaGVhZGVyIGZpbGUgdXNlcyAnZGVsZXRlJyBrZXl3b3JkIGFzIGEgbWV0aG9kIG5hbWUuICovCisjaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpCisjaW5jbHVkZSA8bnNzX2RiZGVmcy5oPgorI2RlZmluZSBWS0lfTlNDRF9DQUxMQ0FUX0FQUCBOU0NEX0NBTExDQVRfQVBQCisjZGVmaW5lIFZLSV9OU0NEVjJDQVRNQVNLIE5TQ0RWMkNBVE1BU0sKKyNkZWZpbmUgdmtpX25zc19kYmRfdCBuc3NfZGJkX3QKKyNkZWZpbmUgdmtpX25zc19waGVhZGVyX3QgbnNzX3BoZWFkZXJfdAorI2VuZGlmIC8qICFfX2NwbHVzcGx1cyAqLworCisKKy8qIEZyb20gPHJlcGNhY2hlX3Byb3RvY29sLmg+IHdoaWNoIGlzIGNvbnNvbGlkYXRpb24gcHJpdmF0ZS4gKi8KKyNpbmNsdWRlICJ2a2ktc29sYXJpcy1yZXBjYWNoZS5oIgorCisjaW5jbHVkZSA8c3lzL2FjbC5oPgorI2RlZmluZSB2a2lfYWNsZW50X3QgYWNsZW50X3QKKyNkZWZpbmUgdmtpX2FjZV90IGFjZV90CisjZGVmaW5lIFZLSV9HRVRBQ0wgR0VUQUNMCisjZGVmaW5lIFZLSV9TRVRBQ0wgU0VUQUNMCisjZGVmaW5lIFZLSV9HRVRBQ0xDTlQgR0VUQUNMQ05UCisjZGVmaW5lIFZLSV9BQ0VfR0VUQUNMIEFDRV9HRVRBQ0wKKyNkZWZpbmUgVktJX0FDRV9TRVRBQ0wgQUNFX1NFVEFDTAorI2RlZmluZSBWS0lfQUNFX0dFVEFDTENOVCBBQ0VfR0VUQUNMQ05UCisKKworI2luY2x1ZGUgPHN5cy9hdXh2Lmg+CisjZGVmaW5lIHZraV9hdXh2X3QgYXV4dl90CisjZGVmaW5lIFZLSV9BVF9OVUxMIEFUX05VTEwKKyNkZWZpbmUgVktJX0FUX1BIRFIgQVRfUEhEUgorI2RlZmluZSBWS0lfQVRfUEFHRVNaIEFUX1BBR0VTWgorI2RlZmluZSBWS0lfQVRfQkFTRSBBVF9CQVNFCisjZGVmaW5lIFZLSV9BVF9GTEFHUyBBVF9GTEFHUworI2RlZmluZSBWS0lfQVRfU1VOX1BMQVRGT1JNIEFUX1NVTl9QTEFURk9STQorI2RlZmluZSBWS0lfQVRfU1VOX0hXQ0FQIEFUX1NVTl9IV0NBUAorI2RlZmluZSBWS0lfQVRfU1VOX0VYRUNOQU1FIEFUX1NVTl9FWEVDTkFNRQorI2RlZmluZSBWS0lfQVRfU1VOX0FVWEZMQUdTIEFUX1NVTl9BVVhGTEFHUworI2lmIGRlZmluZWQoU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfQUREUikKKyNkZWZpbmUgVktJX0FUX1NVTl9TWVNTVEFUX0FERFIgQVRfU1VOX1NZU1NUQVRfQUREUgorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xBUklTX1JFU0VSVkVfU1lTU1RBVF9aT05FX0FERFIpCisjZGVmaW5lIFZLSV9BVF9TVU5fU1lTU1RBVF9aT05FX0FERFIgQVRfU1VOX1NZU1NUQVRfWk9ORV9BRERSCisjZW5kaWYKKworI2RlZmluZSBWS0lfQUZfU1VOX0hXQ0FQVkVSSUZZIEFGX1NVTl9IV0NBUFZFUklGWQorCisKKyNpbmNsdWRlIDxzeXMvYXV4dl8zODYuaD4KKyNkZWZpbmUgVktJX0FWXzM4Nl9GUFUgQVZfMzg2X0ZQVQorI2RlZmluZSBWS0lfQVZfMzg2X1RTQyBBVl8zODZfVFNDCisjZGVmaW5lIFZLSV9BVl8zODZfQ1g4IEFWXzM4Nl9DWDgKKyNkZWZpbmUgVktJX0FWXzM4Nl9TRVAgQVZfMzg2X1NFUAorI2RlZmluZSBWS0lfQVZfMzg2X0FNRF9TWVNDIEFWXzM4Nl9BTURfU1lTQworI2RlZmluZSBWS0lfQVZfMzg2X0NNT1YgQVZfMzg2X0NNT1YKKyNkZWZpbmUgVktJX0FWXzM4Nl9NTVggQVZfMzg2X01NWAorI2RlZmluZSBWS0lfQVZfMzg2X0ZYU1IgQVZfMzg2X0ZYU1IKKyNkZWZpbmUgVktJX0FWXzM4Nl9TU0UgQVZfMzg2X1NTRQorI2RlZmluZSBWS0lfQVZfMzg2X1NTRTIgQVZfMzg2X1NTRTIKKyNkZWZpbmUgVktJX0FWXzM4Nl9TU0UzIEFWXzM4Nl9TU0UzCisjZGVmaW5lIFZLSV9BVl8zODZfQ1gxNiBBVl8zODZfQ1gxNgorI2RlZmluZSBWS0lfQVZfMzg2X0FIRiBBVl8zODZfQUhGCisjZGVmaW5lIFZLSV9BVl8zODZfVFNDUCBBVl8zODZfVFNDUAorI2RlZmluZSBWS0lfQVZfMzg2X1BPUENOVCBBVl8zODZfUE9QQ05UCisjZGVmaW5lIFZLSV9BVl8zODZfQU1EX0xaQ05UIEFWXzM4Nl9BTURfTFpDTlQKKyNkZWZpbmUgVktJX0FWXzM4Nl9TU1NFMyBBVl8zODZfU1NTRTMKKyNkZWZpbmUgVktJX0FWXzM4Nl9TU0U0XzEgQVZfMzg2X1NTRTRfMQorI2RlZmluZSBWS0lfQVZfMzg2X1NTRTRfMiBBVl8zODZfU1NFNF8yCisjZGVmaW5lIFZLSV9BVl8zODZfQUVTIEFWXzM4Nl9BRVMKKyNkZWZpbmUgVktJX0FWXzM4Nl9QQ0xNVUxRRFEgQVZfMzg2X1BDTE1VTFFEUQorI2RlZmluZSBWS0lfQVZfMzg2X1hTQVZFIEFWXzM4Nl9YU0FWRQorCisKKyNpbmNsdWRlIDxzeXMvY29yZWN0bC5oPgorI2RlZmluZSBWS0lfQ0NfQ09OVEVOVF9BTk9OIENDX0NPTlRFTlRfQU5PTgorI2RlZmluZSBWS0lfQ0NfQ09OVEVOVF9EQVRBIENDX0NPTlRFTlRfREFUQQorI2RlZmluZSBWS0lfQ0NfQ09OVEVOVF9ESVNNIENDX0NPTlRFTlRfRElTTQorI2RlZmluZSBWS0lfQ0NfQ09OVEVOVF9IRUFQIENDX0NPTlRFTlRfSEVBUAorI2RlZmluZSBWS0lfQ0NfQ09OVEVOVF9JU00gQ0NfQ09OVEVOVF9JU00KKyNkZWZpbmUgVktJX0NDX0NPTlRFTlRfUk9EQVRBIENDX0NPTlRFTlRfUk9EQVRBCisjZGVmaW5lIFZLSV9DQ19DT05URU5UX1NIQU5PTiBDQ19DT05URU5UX1NIQU5PTgorI2RlZmluZSBWS0lfQ0NfQ09OVEVOVF9TSE0gQ0NfQ09OVEVOVF9TSE0KKyNkZWZpbmUgVktJX0NDX0NPTlRFTlRfU1RBQ0sgQ0NfQ09OVEVOVF9TVEFDSworI2RlZmluZSBWS0lfQ0NfQ09OVEVOVF9URVhUIENDX0NPTlRFTlRfVEVYVAorI2RlZmluZSB2a2lfY29yZV9jb250ZW50X3QgY29yZV9jb250ZW50X3QKKworCisvKiBGcm9tIDxzeXMvY3J5cHRvL2VsZnNpZ24uaD4gd2hpY2ggaXMgY29uc29saWRhdGlvbiBwcml2YXRlLiAqLworI2RlZmluZSBWS0lfX1BBVEhfS0NGRF9ET09SICIvc3lzdGVtL3ZvbGF0aWxlL2tjZmRfZG9vciIKK3R5cGVkZWYgZW51bSB2a2lfRUxGc2lnbl9zdGF0dXNfZSB7CisgICBWS0lfRUxGU0lHTl9VTktOT1dOLAorICAgVktJX0VMRlNJR05fU1VDQ0VTUywKKyAgIFZLSV9FTEZTSUdOX0ZBSUxFRCwKKyAgIFZLSV9FTEZTSUdOX05PVFNJR05FRCwKKyAgIFZLSV9FTEZTSUdOX0lOVkFMSURfQ0VSVFBBVEgsCisgICBWS0lfRUxGU0lHTl9JTlZBTElEX0VMRk9CSiwKKyAgIFZLSV9FTEZTSUdOX1VOQVZBSUxBQkxFCit9IHZraV9FTEZzaWduX3N0YXR1c190OwordHlwZWRlZiBzdHJ1Y3QgdmtpX2tjZl9kb29yX2FyZ19zIHsKKyAgIHNob3J0ICAgICAgICAgZGFfdmVyc2lvbjsKKyAgIHZraV9ib29sZWFuX3QgZGFfaXNrZXJuZWw7CisgICB1bmlvbiB7CisgICAgICBjaGFyIGZpbGVuYW1lW01BWFBBVEhMRU5dOwkvKiBGb3IgcmVxdWVzdCAqLworCisgICAgICBzdHJ1Y3QgdmtpX2tjZl9kb29yX3Jlc3VsdF9zIHsJLyogRm9yIHJlc3BvbnNlICovCisgICAgICAgICB2a2lfRUxGc2lnbl9zdGF0dXNfdCBzdGF0dXM7CisgICAgICAgICB2a2lfdWludDMyX3QgICAgICAgICBzaWdsZW47CisgICAgICAgICB2a2lfdWNoYXJfdCAgICAgICAgICBzaWduYXR1cmVbMV07CisgICAgICB9IHJlc3VsdDsKKyAgIH0gdmtpX2RhX3U7Cit9IHZraV9rY2ZfZG9vcl9hcmdfdDsKKworCisjaW5jbHVkZSA8c3lzL2NyeXB0by9pb2N0bC5oPgorI2RlZmluZSBWS0lfQ1JZUFRPX1NVQ0NFU1MgQ1JZUFRPX1NVQ0NFU1MKKyNkZWZpbmUgVktJX0NSWVBUT19HRVRfUFJPVklERVJfTElTVCBDUllQVE9fR0VUX1BST1ZJREVSX0xJU1QKKyNkZWZpbmUgdmtpX2NyeXB0b19wcm92aWRlcl9pZF90IGNyeXB0b19wcm92aWRlcl9pZF90CisjZGVmaW5lIHZraV9jcnlwdG9fcHJvdmlkZXJfZW50cnlfdCBjcnlwdG9fcHJvdmlkZXJfZW50cnlfdAorI2RlZmluZSB2a2lfY3J5cHRvX2dldF9wcm92aWRlcl9saXN0X3QgY3J5cHRvX2dldF9wcm92aWRlcl9saXN0X3QKKworCisjaW5jbHVkZSA8c3lzL2RpcmVudC5oPgorI2RlZmluZSBWS0lfTUFYR0VUREVOVFNfU0laRSBNQVhHRVRERU5UU19TSVpFCisjZGVmaW5lIHZraV9kaXJlbnQgZGlyZW50CisjZGVmaW5lIHZraV9kaXJlbnQ2NCBkaXJlbnQ2NAorCisKKyNpbmNsdWRlIDxzeXMvZG9vci5oPgorI2RlZmluZSB2a2lfZG9vcl9kZXNjX3QgZG9vcl9kZXNjX3QKKyNkZWZpbmUgdmtpX2Rvb3JfaW5mb190IGRvb3JfaW5mb190CisjZGVmaW5lIHZraV9kb29yX2FyZ190IGRvb3JfYXJnX3QKKyNkZWZpbmUgdmtpX2Rvb3JfcmVzdWx0cyBkb29yX3Jlc3VsdHMKKyNkZWZpbmUgdmtpX2Rvb3JfcmV0dXJuX2Rlc2NfdCBkb29yX3JldHVybl9kZXNjX3QKKworI2RlZmluZSBWS0lfRE9PUl9DUkVBVEUgRE9PUl9DUkVBVEUKKyNkZWZpbmUgVktJX0RPT1JfUkVWT0tFIERPT1JfUkVWT0tFCisjZGVmaW5lIFZLSV9ET09SX0lORk8gRE9PUl9JTkZPCisjZGVmaW5lIFZLSV9ET09SX0NBTEwgRE9PUl9DQUxMCisjZGVmaW5lIFZLSV9ET09SX0JJTkQgRE9PUl9CSU5ECisjZGVmaW5lIFZLSV9ET09SX1VOQklORCBET09SX1VOQklORAorI2RlZmluZSBWS0lfRE9PUl9VTlJFRlNZUyBET09SX1VOUkVGU1lTCisjZGVmaW5lIFZLSV9ET09SX1VDUkVEIERPT1JfVUNSRUQKKyNkZWZpbmUgVktJX0RPT1JfUkVUVVJOIERPT1JfUkVUVVJOCisjZGVmaW5lIFZLSV9ET09SX0dFVFBBUkFNIERPT1JfR0VUUEFSQU0KKyNkZWZpbmUgVktJX0RPT1JfU0VUUEFSQU0gRE9PUl9TRVRQQVJBTQorCisKKyNpbmNsdWRlIDxzeXMvZHRyYWNlLmg+CisjZGVmaW5lIFZLSV9EVFJBQ0VISU9DX1JFTU9WRSBEVFJBQ0VISU9DX1JFTU9WRQorI2RlZmluZSBWS0lfRFRSQUNFSElPQ19BRERET0YgRFRSQUNFSElPQ19BRERET0YKKyNkZWZpbmUgdmtpX2RvZl9oZWxwZXJfdCBkb2ZfaGVscGVyX3QKKworCisjaW5jbHVkZSA8c3lzL2VsZi5oPgorI2RlZmluZSBWS0lfRUlfQ0xBU1MgRUlfQ0xBU1MKKyNkZWZpbmUgVktJX0VJX0RBVEEgRUlfREFUQQorI2RlZmluZSBWS0lfRUlfTUFHMCBFSV9NQUcwCisjZGVmaW5lIFZLSV9FSV9NQUcxIEVJX01BRzEKKyNkZWZpbmUgVktJX0VJX01BRzIgRUlfTUFHMgorI2RlZmluZSBWS0lfRUlfTUFHMyBFSV9NQUczCisjZGVmaW5lIFZLSV9FSV9WRVJTSU9OIEVJX1ZFUlNJT04KKyNkZWZpbmUgVktJX0VMRk1BRyBFTEZNQUcKKyNkZWZpbmUgVktJX0VMRk1BRyBFTEZNQUcKKyNkZWZpbmUgVktJX0VMRk1BRzAgRUxGTUFHMAorI2RlZmluZSBWS0lfRUxGTUFHMSBFTEZNQUcxCisjZGVmaW5lIFZLSV9FTEZNQUcyIEVMRk1BRzIKKyNkZWZpbmUgVktJX0VMRk1BRzMgRUxGTUFHMworI2RlZmluZSBWS0lfRVRfQ09SRSBFVF9DT1JFCisjZGVmaW5lIFZLSV9FVF9EWU4gRVRfRFlOCisjZGVmaW5lIFZLSV9FVF9FWEVDIEVUX0VYRUMKKyNkZWZpbmUgVktJX0VWX0NVUlJFTlQgRVZfQ1VSUkVOVAorI2RlZmluZSBWS0lfTlRfQVVYViBOVF9BVVhWCisjZGVmaW5lIFZLSV9OVF9DT05URU5UIE5UX0NPTlRFTlQKKyNkZWZpbmUgVktJX05UX0xXUFNJTkZPIE5UX0xXUFNJTkZPCisjZGVmaW5lIFZLSV9OVF9MV1BTVEFUVVMgTlRfTFdQU1RBVFVTCisjZGVmaW5lIFZLSV9OVF9QTEFURk9STSBOVF9QTEFURk9STQorI2RlZmluZSBWS0lfTlRfUFJDUkVEIE5UX1BSQ1JFRAorI2RlZmluZSBWS0lfTlRfUFJGUFJFRyBOVF9QUkZQUkVHCisjZGVmaW5lIFZLSV9OVF9QUlBSSVYgTlRfUFJQUklWCisjZGVmaW5lIFZLSV9OVF9QUlBSSVZJTkZPIE5UX1BSUFJJVklORk8KKyNkZWZpbmUgVktJX05UX1BSUFNJTkZPIE5UX1BSUFNJTkZPCisjZGVmaW5lIFZLSV9OVF9QUlNUQVRVUyBOVF9QUlNUQVRVUworI2RlZmluZSBWS0lfTlRfUFJYUkVHIE5UX1BSWFJFRworI2RlZmluZSBWS0lfTlRfUFNJTkZPIE5UX1BTSU5GTworI2RlZmluZSBWS0lfTlRfUFNUQVRVUyBOVF9QU1RBVFVTCisjZGVmaW5lIFZLSV9OVF9VVFNOQU1FIE5UX1VUU05BTUUKKyNkZWZpbmUgVktJX05UX1pPTkVOQU1FIE5UX1pPTkVOQU1FCisjZGVmaW5lIFZLSV9QRl9SIFBGX1IKKyNkZWZpbmUgVktJX1BGX1cgUEZfVworI2RlZmluZSBWS0lfUEZfWCBQRl9YCisjZGVmaW5lIFZLSV9QTl9YTlVNIFBOX1hOVU0KKyNkZWZpbmUgVktJX1BUX0xPQUQgUFRfTE9BRAorI2RlZmluZSBWS0lfUFRfU1VOV0JTUyBQVF9TVU5XQlNTCisjZGVmaW5lIFZLSV9TRUxGTUFHIFNFTEZNQUcKKworI2lmCVZHX1dPUkRTSVpFID09IDgKKyNkZWZpbmUgVktJX0VTWih4KSBFbGY2NF8jI3gKKyNlbGlmCVZHX1dPUkRTSVpFID09IDQKKyNkZWZpbmUgVktJX0VTWih4KSBFbGYzMl8jI3gKKyNlbHNlCisjZXJyb3IgVkdfV09SRFNJWkUgbmVlZHMgdG8gPT00IG9yID09OAorI2VuZGlmCisKKworI2luY2x1ZGUgPHN5cy9lcnJuby5oPgorI2RlZmluZSBWS0lfRVBFUk0gRVBFUk0KKyNkZWZpbmUgVktJX0VOT0VOVCBFTk9FTlQKKyNkZWZpbmUgVktJX0VTUkNIIEVTUkNICisjZGVmaW5lIFZLSV9FSU5UUiBFSU5UUgorI2RlZmluZSBWS0lfRUlPIEVJTworI2RlZmluZSBWS0lfRU5YSU8gRU5YSU8KKyNkZWZpbmUgVktJX0UyQklHIEUyQklHCisjZGVmaW5lIFZLSV9FQkFERiBFQkFERgorI2RlZmluZSBWS0lfRUNISUxEIEVDSElMRAorI2RlZmluZSBWS0lfRU5PRVhFQyBFTk9FWEVDCisjZGVmaW5lIFZLSV9FQUdBSU4gRUFHQUlOCisjZGVmaW5lIFZLSV9FTk9NRU0gRU5PTUVNCisjZGVmaW5lIFZLSV9FQUNDRVMgRUFDQ0VTCisjZGVmaW5lIFZLSV9FRkFVTFQgRUZBVUxUCisjZGVmaW5lIFZLSV9FTk9UQkxLIEVOT1RCTEsKKyNkZWZpbmUgVktJX0VCVVNZIEVCVVNZCisjZGVmaW5lIFZLSV9FRVhJU1QgRUVYSVNUCisjZGVmaW5lIFZLSV9FWERFViBFWERFVgorI2RlZmluZSBWS0lfRU5PREVWIEVOT0RFVgorI2RlZmluZSBWS0lfRU5PVERJUiBFTk9URElSCisjZGVmaW5lIFZLSV9FSVNESVIgRUlTRElSCisjZGVmaW5lIFZLSV9FSU5WQUwgRUlOVkFMCisjZGVmaW5lIFZLSV9FTkZJTEUgRU5GSUxFCisjZGVmaW5lIFZLSV9FTUZJTEUgRU1GSUxFCisjZGVmaW5lIFZLSV9FTk9UVFkgRU5PVFRZCisjZGVmaW5lIFZLSV9FVFhUQlNZIEVUWFRCU1kKKyNkZWZpbmUgVktJX0VGQklHIEVGQklHCisjZGVmaW5lIFZLSV9FTk9TUEMgRU5PU1BDCisjZGVmaW5lIFZLSV9FU1BJUEUgRVNQSVBFCisjZGVmaW5lIFZLSV9FUk9GUyBFUk9GUworI2RlZmluZSBWS0lfRU1MSU5LIEVNTElOSworI2RlZmluZSBWS0lfRVBJUEUgRVBJUEUKKyNkZWZpbmUgVktJX0VET00gRURPTQorI2RlZmluZSBWS0lfRVJBTkdFIEVSQU5HRQorI2RlZmluZSBWS0lfRU5PVFNVUCBFTk9UU1VQCisjZGVmaW5lIFZLSV9FTk9EQVRBIEVOT0RBVEEKKyNkZWZpbmUgVktJX0VPVkVSRkxPVyBFT1ZFUkZMT1cKKyNkZWZpbmUgVktJX0VOT1NZUyBFTk9TWVMKKyNkZWZpbmUgVktJX0VSRVNUQVJUIEVSRVNUQVJUCisjZGVmaW5lIFZLSV9FQUREUklOVVNFIEVBRERSSU5VU0UKKworCisjaWYgZGVmaW5lZChTT0xBUklTX0VYRUNWRV9TWVNDQUxMX1RBS0VTX0ZMQUdTKQorI2luY2x1ZGUgPHN5cy9leGVjeC5oPgorI2RlZmluZSBWS0lfRVhFQ19ERVNDUklQVE9SIEVYRUNfREVTQ1JJUFRPUgorI2VuZGlmIC8qIFNPTEFSSVNfRVhFQ1ZFX1NZU0NBTExfVEFLRVNfRkxBR1MgKi8KKworCisjaW5jbHVkZSA8c3lzL2ZjbnRsLmg+CisjZGVmaW5lIFZLSV9PX1JET05MWSBPX1JET05MWQorI2RlZmluZSBWS0lfT19XUk9OTFkgT19XUk9OTFkKKyNkZWZpbmUgVktJX09fUkRXUiBPX1JEV1IKKyNkZWZpbmUgVktJX09fQVBQRU5EIE9fQVBQRU5ECisjZGVmaW5lIFZLSV9PX05PTkJMT0NLIE9fTk9OQkxPQ0sKKworI2RlZmluZSBWS0lfT19DUkVBVCBPX0NSRUFUCisjZGVmaW5lIFZLSV9PX1RSVU5DIE9fVFJVTkMKKyNkZWZpbmUgVktJX09fRVhDTCBPX0VYQ0wKKyNkZWZpbmUgVktJX09fTEFSR0VGSUxFIE9fTEFSR0VGSUxFCisKKyNkZWZpbmUgVktJX0ZfRFVQRkQgRl9EVVBGRAorI2RlZmluZSBWS0lfRl9HRVRGRCBGX0dFVEZECisjZGVmaW5lIFZLSV9GX1NFVEZEIEZfU0VURkQKKyNkZWZpbmUgVktJX0ZfR0VURkwgRl9HRVRGTAorI2RlZmluZSBWS0lfRl9HRVRYRkwgRl9HRVRYRkwKKyNkZWZpbmUgVktJX0ZfU0VURkwgRl9TRVRGTAorCisvKiBTVlIzIHJmcyBjb21wYWJpbGl0eSBjb25zdCwgZGVjbGFyZWQgb25seSBpZiBfS0VSTkVMIG9yIF9LTUVNVVNFUiBpcworICAgZGVmaW5lZC4gKi8KKyNpZiAwCisjZGVmaW5lIFZLSV9GX09fR0VUTEsgRl9PX0dFVExLCisjZW5kaWYgLy8gMAorCisjZGVmaW5lIFZLSV9GX0RVUDJGRCBGX0RVUDJGRAorCisvKiBNb3N0bHkgdW51c2VkIGFuZCBrZXJuZWwtdW5pbXBsZW1lbnRlZCBjb21tYW5kcy4gSW4gY2FzZSBvZiBGX0dFVE9XTiBhbmQKKyAgIEZfR0VUT1dOLCB0aGV5IGFyZSB0cmFuc2xhdGVkIGJ5IGxpYmMgaW4gX19mY250bCgpIGludG8gb3RoZXIgc3lzY2FsbHMsCisgICB0aGF0IG1lYW5zIHRoZXNlIHR3byB2YWx1ZXMgYXJlIG5ldmVyIHBhc3NlZCB0byB0aGUgZmNudGwgaGFuZGxlciBpbiB0aGUKKyAgIGtlcm5lbC4gRl9IQVNSRU1PVEVMT0NLUyBpcyBhbHNvIHNwZWNpYWwsIHRoZSBmY250bCBrZXJuZWwgaGFuZGxlciBkb2Vzbid0CisgICBrbm93IGFib3V0IGl0IGJ1dCBpdCdzIHVzZWQgaW5zaWRlIHRoZSBrZXJuZWwuICovCisjaWYgMAorI2RlZmluZSBWS0lfRl9JU1NUUkVBTSBGX0lTU1RSRUFNCisjZGVmaW5lIFZLSV9GX1BSSVYgRl9QUklWCisjZGVmaW5lIFZLSV9GX05QUklWIEZfTlBSSVYKKyNkZWZpbmUgVktJX0ZfUVVBVEFDVEwgRl9RVU9UQUNUTAorI2RlZmluZSBWS0lfRl9CTE9DS1MgRl9CTE9DS1MKKyNkZWZpbmUgVktJX0ZfQkxLU0laRSBGX0JMS1NJWkUKKyNkZWZpbmUgVktJX0ZfR0VUT1dOIEZfR0VUT1dOCisjZGVmaW5lIFZLSV9GX1NFVE9XTiBGX1NFVE9XTgorI2RlZmluZSBWS0lfRl9SRVZPS0UgRl9SRVZPS0UKKyNkZWZpbmUgVktJX0ZfSEFTUkVNT1RFTE9DS1MgRl9IQVNSRU1PVEVMT0NLUworI2VuZGlmIC8vIDAKKworI2RlZmluZSBWS0lfRl9TRVRMSyBGX1NFVExLCisjZGVmaW5lIFZLSV9GX1NFVExLVyBGX1NFVExLVworI2RlZmluZSBWS0lfRl9BTExPQ1NQIEZfQUxMT0NTUAorI2RlZmluZSBWS0lfRl9GUkVFU1AgRl9GUkVFU1AKKyNkZWZpbmUgVktJX0ZfR0VUTEsgRl9HRVRMSworI2RlZmluZSBWS0lfRl9TRVRMS19OQk1BTkQgRl9TRVRMS19OQk1BTkQKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyNkZWZpbmUgVktJX0ZfU0VUTEs2NCBGX1NFVExLNjQKKyNkZWZpbmUgVktJX0ZfU0VUTEtXNjQgRl9TRVRMS1c2NAorI2RlZmluZSBWS0lfRl9BTExPQ1NQNjQgRl9BTExPQ1NQNjQKKyNkZWZpbmUgVktJX0ZfRlJFRVNQNjQgRl9GUkVFU1A2NAorI2RlZmluZSBWS0lfRl9HRVRMSzY0IEZfR0VUTEs2NAorI2RlZmluZSBWS0lfRl9TRVRMSzY0X05CTUFORCBGX1NFVExLNjRfTkJNQU5ECisjZW5kaWYgLy8gZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisKKyNkZWZpbmUgVktJX0ZfU0hBUkUgRl9TSEFSRQorI2RlZmluZSBWS0lfRl9VTlNIQVJFIEZfVU5TSEFSRQorI2RlZmluZSBWS0lfRl9TSEFSRV9OQk1BTkQgRl9TSEFSRV9OQk1BTkQKKworI2RlZmluZSBWS0lfRl9CQURGRCBGX0JBREZECisKKyNkZWZpbmUgdmtpX2Zsb2NrIGZsb2NrCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisjZGVmaW5lIHZraV9mbG9jazY0IGZsb2NrNjQKKyNlbmRpZiAvLyBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKworI2RlZmluZSBWS0lfRkRfQ0xPRVhFQyBGRF9DTE9FWEVDCisKKyNkZWZpbmUgdmtpX2ZzaGFyZSBmc2hhcmUKKworI2RlZmluZSBWS0lfQVRfRkRDV0QgQVRfRkRDV0QKKworCisjaW5jbHVkZSA8c3lzL2ZpbGlvLmg+CisjZGVmaW5lIFZLSV9GSU9TRVRPV04gRklPU0VUT1dOCisjZGVmaW5lIFZLSV9GSU9HRVRPV04gRklPR0VUT1dOCisKKworI2luY2x1ZGUgPHN5cy9mcy9uYW1lbm9kZS5oPgorI2RlZmluZSB2a2lfbmFtZWZkIG5hbWVmZAorCisKKyNpbmNsdWRlIDxzeXMvaW9jY29tLmg+CisjZGVmaW5lIF9WS0lfSU9DX0RJUih4KSAoKHgpICYgKElPQ19WT0lEIHwgSU9DX09VVCB8IElPQ19JTikpCisjZGVmaW5lIF9WS0lfSU9DX1NJWkUoeCkgKCgoeCkgPj4gMTYpICYgSU9DUEFSTV9NQVNLKQorI2RlZmluZSBfVktJX0lPQ19OT05FIDAKKyNkZWZpbmUgX1ZLSV9JT0NfUkVBRCBJT0NfT1VUCisjZGVmaW5lIF9WS0lfSU9DX1dSSVRFIElPQ19JTgorCisKKyNpbmNsdWRlIDxzeXMvaXBjLmg+CisjaW5jbHVkZSA8c3lzL2lwY19pbXBsLmg+CisjZGVmaW5lIFZLSV9JUENfUk1JRCBJUENfUk1JRAorI2RlZmluZSBWS0lfSVBDX1NFVCBJUENfU0VUCisjZGVmaW5lIFZLSV9JUENfU0VUNjQgSVBDX1NFVDY0CisjZGVmaW5lIFZLSV9JUENfU1RBVCBJUENfU1RBVAorI2RlZmluZSBWS0lfSVBDX1NUQVQ2NCBJUENfU1RBVDY0CisjaWYgZGVmaW5lZChTT0xBUklTX1NITV9ORVcpCisjZGVmaW5lIFZLSV9JUENfWFNUQVQ2NCBJUENfWFNUQVQ2NAorI2VuZGlmIC8qIFNPTEFSSVNfU0hNX05FVyAqLworCisjZGVmaW5lIHZraV9zZW1pZDY0X2RzIHNlbWlkX2RzNjQKKworCisjaW5jbHVkZSA8c3lzL2xvYWRhdmcuaD4KKyNkZWZpbmUgVktJX0xPQURBVkdfTlNUQVRTIExPQURBVkdfTlNUQVRTCisKKworI2luY2x1ZGUgPHN5cy9sd3AuaD4KKyNkZWZpbmUgVktJX0xXUF9EQUVNT04gTFdQX0RBRU1PTgorI2RlZmluZSBWS0lfTFdQX0ZTQkFTRSBfTFdQX0ZTQkFTRQorI2RlZmluZSBWS0lfTFdQX0dTQkFTRSBfTFdQX0dTQkFTRQorI2RlZmluZSBWS0lfTFdQX1NFVFBSSVZBVEUgX0xXUF9TRVRQUklWQVRFCisjZGVmaW5lIFZLSV9MV1BfR0VUUFJJVkFURSBfTFdQX0dFVFBSSVZBVEUKKworCisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNkZWZpbmUgVktJX1BST1RfUkVBRCBQUk9UX1JFQUQKKyNkZWZpbmUgVktJX1BST1RfV1JJVEUgUFJPVF9XUklURQorI2RlZmluZSBWS0lfUFJPVF9FWEVDIFBST1RfRVhFQworI2RlZmluZSBWS0lfUFJPVF9OT05FIFBST1RfTk9ORQorCisjZGVmaW5lIFZLSV9NQVBfU0hBUkVEIE1BUF9TSEFSRUQKKyNkZWZpbmUgVktJX01BUF9QUklWQVRFIE1BUF9QUklWQVRFCisjZGVmaW5lIFZLSV9NQVBfRklYRUQgTUFQX0ZJWEVECisjZGVmaW5lIFZLSV9NQVBfQU5PTllNT1VTIE1BUF9BTk9OWU1PVVMKKyNkZWZpbmUgVktJX01BUF9BTElHTiBNQVBfQUxJR04KKyNkZWZpbmUgVktJX01BUF9URVhUIE1BUF9URVhUCisjZGVmaW5lIFZLSV9NQVBfSU5JVERBVEEgTUFQX0lOSVREQVRBCisKKyNkZWZpbmUgVktJX01NT0JKX0FMTF9GTEFHUyBNTU9CSl9BTExfRkxBR1MKKyNkZWZpbmUgVktJX01NT0JKX0lOVEVSUFJFVCBNTU9CSl9JTlRFUlBSRVQKKyNkZWZpbmUgVktJX01NT0JKX1BBRERJTkcgTU1PQkpfUEFERElORworI2RlZmluZSBWS0lfTVJfUEFERElORyBNUl9QQURESU5HCisjZGVmaW5lIFZLSV9NUl9IRFJfRUxGIE1SX0hEUl9FTEYKKyNkZWZpbmUgVktJX01SX0dFVF9UWVBFKHZhbCkgTVJfR0VUX1RZUEUodmFsKQorI2RlZmluZSB2a2lfbW1hcG9ial9yZXN1bHRfdCBtbWFwb2JqX3Jlc3VsdF90CisKKyNkZWZpbmUgdmtpX21lbWNudGxfbWhhIG1lbWNudGxfbWhhCisjZGVmaW5lIFZLSV9NQ19MT0NLQVMgTUNfTE9DS0FTCisjZGVmaW5lIFZLSV9NQ19VTkxPQ0tBUyBNQ19VTkxPQ0tBUworI2RlZmluZSBWS0lfTUNfSEFUX0FEVklTRSBNQ19IQVRfQURWSVNFCisKKworI2luY2x1ZGUgPHN5cy9tbnRpby5oPgorI2RlZmluZSBWS0lfTU5USU9DX0dFVE1OVEFOWSBNTlRJT0NfR0VUTU5UQU5ZCisKKworI2luY2x1ZGUgPHN5cy9tbnR0YWIuaD4KKyNkZWZpbmUgdmtpX21udGVudGJ1ZiBtbnRlbnRidWYKKyNkZWZpbmUgdmtpX21udHRhYiBtbnR0YWIKKworCisjaW5jbHVkZSA8c3lzL21vdW50Lmg+CisjZGVmaW5lCVZLSV9NU19EQVRBIE1TX0RBVEEKKyNkZWZpbmUJVktJX01TX09QVElPTlNUUiBNU19PUFRJT05TVFIKKworCisjaW5jbHVkZSA8c3lzL3BvbGwuaD4KKyNkZWZpbmUgdmtpX3BvbGxmZCBwb2xsZmQKKyNkZWZpbmUgdmtpX3BvbGxmZF90IHBvbGxmZF90CisjZGVmaW5lIHZraV9uZmRzX3QgbmZkc190CisKKworI2luY2x1ZGUgPHN5cy9wb29sX2ltcGwuaD4KKyNkZWZpbmUgVktJX1BPT0xfU1RBVFVTUSBQT09MX1NUQVRVU1EKKyNkZWZpbmUgdmtpX3Bvb2xfc3RhdHVzX3QgcG9vbF9zdGF0dXNfdAorCisKKyNpbmNsdWRlIDxzeXMvcG9ydC5oPgorI2luY2x1ZGUgPHN5cy9wb3J0X2ltcGwuaD4KKyNkZWZpbmUgVktJX1BPUlRfU09VUkNFX0ZEIFBPUlRfU09VUkNFX0ZECisjZGVmaW5lIFZLSV9QT1JUX1NPVVJDRV9GSUxFIFBPUlRfU09VUkNFX0ZJTEUKKworI2RlZmluZSB2a2lfcG9ydF9ldmVudF90IHBvcnRfZXZlbnRfdAorI2RlZmluZSB2a2lfcG9ydF9ub3RpZnlfdCBwb3J0X25vdGlmeV90CisjZGVmaW5lIHZraV9maWxlX29iaiBmaWxlX29iagorCisjZGVmaW5lIFZLSV9QT1JUX0NSRUFURSBQT1JUX0NSRUFURQorI2RlZmluZSBWS0lfUE9SVF9BU1NPQ0lBVEUgUE9SVF9BU1NPQ0lBVEUKKyNkZWZpbmUgVktJX1BPUlRfRElTU09DSUFURSBQT1JUX0RJU1NPQ0lBVEUKKyNkZWZpbmUgVktJX1BPUlRfU0VORCBQT1JUX1NFTkQKKyNkZWZpbmUgVktJX1BPUlRfU0VORE4gUE9SVF9TRU5ETgorI2RlZmluZSBWS0lfUE9SVF9HRVQgUE9SVF9HRVQKKyNkZWZpbmUgVktJX1BPUlRfR0VUTiBQT1JUX0dFVE4KKyNkZWZpbmUgVktJX1BPUlRfQUxFUlQgUE9SVF9BTEVSVAorI2RlZmluZSBWS0lfUE9SVF9ESVNQQVRDSCBQT1JUX0RJU1BBVENICisKKyNkZWZpbmUgVktJX1BPUlRfU1lTX05PUE9SVCBQT1JUX1NZU19OT1BPUlQKKyNkZWZpbmUgVktJX1BPUlRfQ09ERV9NQVNLIFBPUlRfQ09ERV9NQVNLCisKKworI2luY2x1ZGUgPHN5cy9wcmlvY250bC5oPgorI2luY2x1ZGUgPHN5cy9ydHByaW9jbnRsLmg+CisjaW5jbHVkZSA8c3lzL3RzcHJpb2NudGwuaD4KKyNpbmNsdWRlIDxzeXMvaWFwcmlvY250bC5oPgorI2luY2x1ZGUgPHN5cy9mc3NwcmlvY250bC5oPgorI2luY2x1ZGUgPHN5cy9meHByaW9jbnRsLmg+CisjZGVmaW5lIFZLSV9QQ19HRVRDSUQgUENfR0VUQ0lECisjZGVmaW5lIFZLSV9QQ19HRVRDTElORk8gUENfR0VUQ0xJTkZPCisjZGVmaW5lIFZLSV9QQ19TRVRQQVJNUyBQQ19TRVRQQVJNUworI2RlZmluZSBWS0lfUENfR0VUUEFSTVMgUENfR0VUUEFSTVMKKyNkZWZpbmUgVktJX1BDX0FETUlOIFBDX0FETUlOCisjZGVmaW5lIFZLSV9QQ19HRVRQUklSQU5HRSBQQ19HRVRQUklSQU5HRQorI2RlZmluZSBWS0lfUENfRE9OSUNFIFBDX0RPTklDRQorI2RlZmluZSBWS0lfUENfU0VUWFBBUk1TIFBDX1NFVFhQQVJNUworI2RlZmluZSBWS0lfUENfR0VUWFBBUk1TIFBDX0dFVFhQQVJNUworI2RlZmluZSBWS0lfUENfU0VUREZMQ0wgUENfU0VUREZMQ0wKKyNkZWZpbmUgVktJX1BDX0dFVERGTENMIFBDX0dFVERGTENMCisjZGVmaW5lIFZLSV9QQ19ET1BSSU8gUENfRE9QUklPCisKKyNkZWZpbmUgVktJX1BDX0NMTk1TWiBQQ19DTE5NU1oKKworI2RlZmluZSBWS0lfUENfR0VUTklDRSBQQ19HRVROSUNFCisjZGVmaW5lIFZLSV9QQ19TRVROSUNFIFBDX1NFVE5JQ0UKKworI2RlZmluZSBWS0lfUENfR0VUUFJJTyBQQ19HRVRQUklPCisjZGVmaW5lIFZLSV9QQ19TRVRQUklPIFBDX1NFVFBSSU8KKworI2RlZmluZSB2a2lfcGNpbmZvX3QgcGNpbmZvX3QKKyNkZWZpbmUgdmtpX3J0aW5mb190IHJ0aW5mb190CisjZGVmaW5lIHZraV90c2luZm9fdCB0c2luZm9fdAorI2RlZmluZSB2a2lfaWFpbmZvX3QgaWFpbmZvX3QKKyNkZWZpbmUgdmtpX2Zzc2luZm9fdCBmc3NpbmZvX3QKKyNkZWZpbmUgdmtpX2Z4aW5mb190IGZ4aW5mb190CisKKyNkZWZpbmUgdmtpX3BjcGFybXNfdCBwY3Bhcm1zX3QKKyNkZWZpbmUgdmtpX3BjbmljZV90IHBjbmljZV90CisjZGVmaW5lIHZraV9wY3ByaW9fdCBwY3ByaW9fdAorI2RlZmluZSB2a2lfcGNfdmFwYXJtX3QgcGNfdmFwYXJtX3QKKyNkZWZpbmUgdmtpX3BjX3ZhcGFybXNfdCBwY192YXBhcm1zX3QKKyNkZWZpbmUgdmtpX3BjcHJpX3QgcGNwcmlfdAorCisjZGVmaW5lIFZLSV9QQ19LWV9DTE5BTUUgUENfS1lfQ0xOQU1FCisjZGVmaW5lIFZLSV9SVF9LWV9QUkkgUlRfS1lfUFJJCisjZGVmaW5lIFZLSV9SVF9LWV9UUVNFQ1MgUlRfS1lfVFFTRUNTCisjZGVmaW5lIFZLSV9SVF9LWV9UUU5TRUNTIFJUX0tZX1RRTlNFQ1MKKyNkZWZpbmUgVktJX1JUX0tZX1RRU0lHIFJUX0tZX1RRU0lHCisjZGVmaW5lIFZLSV9UU19LWV9VUFJJTElNIFRTX0tZX1VQUklMSU0KKyNkZWZpbmUgVktJX1RTX0tZX1VQUkkgVFNfS1lfVVBSSQorI2RlZmluZSBWS0lfSUFfS1lfVVBSSUxJTSBJQV9LWV9VUFJJTElNCisjZGVmaW5lIFZLSV9JQV9LWV9VUFJJIElBX0tZX1VQUkkKKyNkZWZpbmUgVktJX0lBX0tZX01PREUgSUFfS1lfTU9ERQorI2RlZmluZSBWS0lfRlNTX0tZX1VQUklMSU0gRlNTX0tZX1VQUklMSU0KKyNkZWZpbmUgVktJX0ZTU19LWV9VUFJJIEZTU19LWV9VUFJJCisjZGVmaW5lIFZLSV9GWF9LWV9VUFJJTElNIEZYX0tZX1VQUklMSU0KKyNkZWZpbmUgVktJX0ZYX0tZX1VQUkkgRlhfS1lfVVBSSQorI2RlZmluZSBWS0lfRlhfS1lfVFFTRUNTIEZYX0tZX1RRU0VDUworI2RlZmluZSBWS0lfRlhfS1lfVFFOU0VDUyBGWF9LWV9UUU5TRUNTCisKKworI2luY2x1ZGUgPHN5cy9wcml2Lmg+CisjZGVmaW5lIHZraV9wcml2X2ltcGxfaW5mb190IHByaXZfaW1wbF9pbmZvX3QKKworCisjaW5jbHVkZSA8c3lzL3Byb2MuaD4KKyNkZWZpbmUgVktJX1NSVU4gU1JVTgorI2RlZmluZSBWS0lfU1NMRUVQIFNTTEVFUAorI2RlZmluZSBWS0lfU1pPTUIgU1pPTUIKKworCisjaW5jbHVkZSA8c3lzL3Byb2Nlc3Nvci5oPgorI2RlZmluZSB2a2lfcHJvY2Vzc29yaWRfdCBwcm9jZXNzb3JpZF90CisKKworLyogV2Ugd2FudCB0aGUgbmV3IC9wcm9jIGRlZmluaXRpb25zLiAqLworI2RlZmluZSBfU1RSVUNUVVJFRF9QUk9DIDEKKyNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CisjZGVmaW5lIFZLSV9NQV9SRUFEIE1BX1JFQUQKKyNkZWZpbmUgVktJX01BX1dSSVRFIE1BX1dSSVRFCisjZGVmaW5lIFZLSV9NQV9FWEVDIE1BX0VYRUMKKyNkZWZpbmUgVktJX1BSTk9ERVYgUFJOT0RFVgorI2RlZmluZSBWS0lfUFJfUENJTlZBTCBQUl9QQ0lOVkFMCisjZGVmaW5lIHZraV9sd3BzaW5mb190IGx3cHNpbmZvX3QKKyNkZWZpbmUgdmtpX2x3cHN0YXR1c190IGx3cHN0YXR1c190CisjZGVmaW5lIHZraV9wcmNyZWRfdCBwcmNyZWRfdAorI2RlZmluZSB2a2lfcHJtYXBfdCBwcm1hcF90CisjZGVmaW5lIHZraV9wcnByaXZfdCBwcnByaXZfdAorI2RlZmluZSB2a2lfcHJ4bWFwX3QgcHJ4bWFwX3QKKyNkZWZpbmUgdmtpX3BzdGF0dXNfdCBwc3RhdHVzX3QKKyNkZWZpbmUgdmtpX3BzaW5mb190IHBzaW5mb190CisKKworI2luY2x1ZGUgPHN5cy9wcm9jZnNfaXNhLmg+CisjaWYgZGVmaW5lZChTT0xBUklTX1BSWFJFR1NFVF9UKQorI2RlZmluZSB2a2lfcHJ4cmVnc2V0X3QgcHJ4cmVnc2V0X3QKKyNlbmRpZiAvKiBTT0xBUklTX1BSWFJFR1NFVF9UICovCisKKworI2luY2x1ZGUgPHN5cy9wcm9jc2V0Lmg+CisjZGVmaW5lIHZraV9pZHR5cGVfdCBpZHR5cGVfdAorI2RlZmluZSBWS0lfUF9QSUQgUF9QSUQKKyNkZWZpbmUgVktJX1BfUEdJRCBQX1BHSUQKKyNkZWZpbmUgVktJX1BfQUxMIFBfQUxMCisjZGVmaW5lIHZraV9wcm9jc2V0X3QgcHJvY3NldF90CisKKworI2luY2x1ZGUgPHN5cy9wc2V0Lmg+CisjZGVmaW5lIFZLSV9QU0VUX0NSRUFURSBQU0VUX0NSRUFURQorI2RlZmluZSBWS0lfUFNFVF9ERVNUUk9ZIFBTRVRfREVTVFJPWQorI2RlZmluZSBWS0lfUFNFVF9BU1NJR04gUFNFVF9BU1NJR04KKyNkZWZpbmUgVktJX1BTRVRfSU5GTyBQU0VUX0lORk8KKyNkZWZpbmUgVktJX1BTRVRfQklORCBQU0VUX0JJTkQKKyNkZWZpbmUgVktJX1BTRVRfR0VUTE9BREFWRyBQU0VUX0dFVExPQURBVkcKKyNkZWZpbmUgVktJX1BTRVRfTElTVCBQU0VUX0xJU1QKKyNkZWZpbmUgVktJX1BTRVRfU0VUQVRUUiBQU0VUX1NFVEFUVFIKKyNkZWZpbmUgVktJX1BTRVRfR0VUQVRUUiBQU0VUX0dFVEFUVFIKKyNkZWZpbmUgVktJX1BTRVRfQVNTSUdOX0ZPUkNFRCBQU0VUX0FTU0lHTl9GT1JDRUQKKyNkZWZpbmUgVktJX1BTRVRfQklORF9MV1AgUFNFVF9CSU5EX0xXUAorI2lmIGRlZmluZWQoU09MQVJJU19QU0VUX0dFVF9OQU1FKQorI2RlZmluZSBWS0lfUFNFVF9HRVRfTkFNRSBQU0VUX0dFVF9OQU1FCisjZW5kaWYgLyogU09MQVJJU19QU0VUX0dFVF9OQU1FICovCisjZGVmaW5lIHZraV9wc2V0aWRfdCBwc2V0aWRfdAorCisKKyNpbmNsdWRlIDxzeXMvcmVnc2V0Lmg+CisjZGVmaW5lIHZraV9wcmdyZWdzZXRfdCBwcmdyZWdzZXRfdAorCisKKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKyNkZWZpbmUgVktJX1JMSU1JVF9EQVRBIFJMSU1JVF9EQVRBCisjZGVmaW5lIFZLSV9STElNSVRfU1RBQ0sgUkxJTUlUX1NUQUNLCisjZGVmaW5lIFZLSV9STElNSVRfQ09SRSBSTElNSVRfQ09SRQorI2RlZmluZSBWS0lfUkxJTUlUX05PRklMRSBSTElNSVRfTk9GSUxFCisjZGVmaW5lIFZLSV9fUlVTQUdFU1lTX0dFVFJVU0FHRSBfUlVTQUdFU1lTX0dFVFJVU0FHRQorI2RlZmluZSBWS0lfX1JVU0FHRVNZU19HRVRSVVNBR0VfQ0hMRCBfUlVTQUdFU1lTX0dFVFJVU0FHRV9DSExECisjZGVmaW5lIFZLSV9fUlVTQUdFU1lTX0dFVFJVU0FHRV9MV1AgX1JVU0FHRVNZU19HRVRSVVNBR0VfTFdQCisjZGVmaW5lIFZLSV9fUlVTQUdFU1lTX0dFVFZNVVNBR0UgX1JVU0FHRVNZU19HRVRWTVVTQUdFCisjZGVmaW5lIHZraV9ybGltaXQgcmxpbWl0CisjZGVmaW5lIHZraV9ybGltaXQ2NCBybGltaXQ2NAorI2RlZmluZSB2a2lfcnVzYWdlIHJ1c2FnZQorCisKKyNpbmNsdWRlIDxzeXMvc2NoZWRjdGwuaD4KKyNkZWZpbmUgdmtpX3NjX3NoYXJlZCBzY19zaGFyZWQKKworCisjaW5jbHVkZSA8c3lzL3NlZ21lbnRzLmg+CisjZGVmaW5lIFZLSV9HRFRfTFdQR1MgR0RUX0xXUEdTCisjaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKy8qIFZhbHVlcyBWS0lfVUNTX1NFTC9WS0lfVURTX1NFTCBjYW4gYmUgdXNlZCBvbmx5IG9uIGFtZDY0LiBPbiB4ODYsIGNvcnJlY3QKKyAgICVjcy8lZHMgdmFsdWVzIGZvciBhIGNsaWVudCBuZWVkIHRvIGJlIG9idGFpbmVkIGZyb20gdGhlIGhvc3QgcmVnaXN0ZXJzCisgICBiZWNhdXNlIHRoZXkgYXJlIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gdGhlIHJ1bm5pbmcga2VybmVsICh4ODYgb3IgYW1kNjQpLgorICovCisjZGVmaW5lIFZLSV9VQ1NfU0VMIFVDU19TRUwKKyNkZWZpbmUgVktJX1VEU19TRUwgVURTX1NFTAorI2VuZGlmCisjZGVmaW5lIFZLSV9MV1BHU19TRUwgTFdQR1NfU0VMCisKKworI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KKyNkZWZpbmUgdmtpX2ZkX3NldCBmZF9zZXQKKworCisjaW5jbHVkZSA8c3lzL3ByaXYuaD4KKy8qIERlZmluZSBfS01FTVVTRVIgc28gcHJpdl9zZXQgaXMgcHVsbGVkIGluLiAqLworI2RlZmluZSBfS01FTVVTRVIKKyNpbmNsdWRlIDxzeXMvcHJpdl9pbXBsLmg+CisjdW5kZWYgX0tNRU1VU0VSCisjZGVmaW5lIHZraV9wcml2X3NldF90IHByaXZfc2V0X3QKKyNkZWZpbmUgdmtpX3ByaXZfcHR5cGVfdCBwcml2X3B0eXBlX3QKKyNkZWZpbmUgdmtpX3ByaXZfb3BfdCBwcml2X29wX3QKKworI2RlZmluZSBWS0lfUFJJVlNZU19TRVRQUFJJViBQUklWU1lTX1NFVFBQUklWCisjZGVmaW5lIFZLSV9QUklWU1lTX0dFVFBQUklWIFBSSVZTWVNfR0VUUFBSSVYKKyNkZWZpbmUgVktJX1BSSVZTWVNfR0VUSU1QTElORk8gUFJJVlNZU19HRVRJTVBMSU5GTworI2RlZmluZSBWS0lfUFJJVlNZU19TRVRQRkxBR1MgUFJJVlNZU19TRVRQRkxBR1MKKyNkZWZpbmUgVktJX1BSSVZTWVNfR0VUUEZMQUdTIFBSSVZTWVNfR0VUUEZMQUdTCisjZGVmaW5lIFZLSV9QUklWU1lTX0lTU0VUVUdJRCBQUklWU1lTX0lTU0VUVUdJRAorI2RlZmluZSBWS0lfUFJJVlNZU19QRkVYRUNfUkVHIFBSSVZTWVNfUEZFWEVDX1JFRworI2RlZmluZSBWS0lfUFJJVlNZU19QRkVYRUNfVU5SRUcgUFJJVlNZU19QRkVYRUNfVU5SRUcKKworI2RlZmluZSB2a2lfcHJpdl9pbXBsX2luZm9fdCBwcml2X2ltcGxfaW5mb190CisKKworI2luY2x1ZGUgPHN5cy9zZW0uaD4KKyNpbmNsdWRlIDxzeXMvc2VtX2ltcGwuaD4KKyNkZWZpbmUgVktJX0dFVEFMTCBHRVRBTEwKKyNkZWZpbmUgVktJX0dFVFBJRCBHRVRQSUQKKyNkZWZpbmUgVktJX0dFVE5DTlQgR0VUTkNOVAorI2RlZmluZSBWS0lfR0VUWkNOVCBHRVRaQ05UCisjZGVmaW5lIFZLSV9HRVRWQUwgR0VUVkFMCisjZGVmaW5lIFZLSV9TRU1DVEwgU0VNQ1RMCisjZGVmaW5lIFZLSV9TRU1HRVQgU0VNR0VUCisjZGVmaW5lIFZLSV9TRU1JRFMgU0VNSURTCisjZGVmaW5lIFZLSV9TRU1PUCBTRU1PUAorI2RlZmluZSBWS0lfU0VNVElNRURPUCBTRU1USU1FRE9QCisjZGVmaW5lIFZLSV9TRVRBTEwgU0VUQUxMCisjZGVmaW5lIFZLSV9TRVRWQUwgU0VUVkFMCisKKyNkZWZpbmUgdmtpX3NlbWlkX2RzIHNlbWlkX2RzCisjZGVmaW5lIHZraV9zZW1idWYgc2VtYnVmCisKKy8qIFRoZSBzZW11biB1bmlvbiBoYXMgdG8gYmUgZXhwbGljaXRseSBkZWNsYXJlZCBieSB0aGUgYXBwbGljYXRpb24gcHJvZ3JhbQorICAgKHNlZSBzZW1jdGwoMikpLiAqLwordW5pb24gdmtpX3NlbXVuIHsKKyAgIGludCB2YWw7CisgICBzdHJ1Y3Qgc2VtaWRfZHMgKmJ1ZjsKKyAgIHVzaG9ydF90ICphcnJheTsKK307CisKKworI2luY2x1ZGUgPHN5cy9zZW5kZmlsZS5oPgorI2RlZmluZSBWS0lfU0VOREZJTEVWIFNFTkRGSUxFVgorI2RlZmluZSBWS0lfU0VOREZJTEVWNjQgU0VOREZJTEVWNjQKKyNkZWZpbmUgVktJX1NGVl9GRF9TRUxGIFNGVl9GRF9TRUxGCisjZGVmaW5lIHZraV9zZW5kZmlsZXZlYyBzZW5kZmlsZXZlYworI2RlZmluZSB2a2lfc2VuZGZpbGV2ZWM2NCBzZW5kZmlsZXZlYzY0CisKKworI2luY2x1ZGUgPHN5cy9zaG0uaD4KKyNpbmNsdWRlIDxzeXMvc2htX2ltcGwuaD4KKyNkZWZpbmUgVktJX1NITUFUIFNITUFUCisjZGVmaW5lIFZLSV9TSE1DVEwgU0hNQ1RMCisjZGVmaW5lIFZLSV9TSE1EVCBTSE1EVAorI2RlZmluZSBWS0lfU0hNR0VUIFNITUdFVAorI2RlZmluZSBWS0lfU0hNSURTIFNITUlEUworI2lmIGRlZmluZWQoU09MQVJJU19TSE1fTkVXKQorI2RlZmluZSBWS0lfU0hNQURWIFNITUFEVgorI2RlZmluZSBWS0lfU0hNR0VUX09TTSBTSE1HRVRfT1NNCisjZGVmaW5lIFZLSV9TSE1fQURWX0dFVCBTSE1fQURWX0dFVAorI2RlZmluZSBWS0lfU0hNX0FEVl9TRVQgU0hNX0FEVl9TRVQKKyNlbmRpZiAvKiBTT0xBUklTX1NITV9ORVcgKi8KKyNkZWZpbmUgVktJX1NITV9MT0NLIFNITV9MT0NLCisjZGVmaW5lIFZLSV9TSE1fUkRPTkxZIFNITV9SRE9OTFkKKyNkZWZpbmUgVktJX1NITV9VTkxPQ0sgU0hNX1VOTE9DSworLyogU2hvdWxkIGJlIGNvcnJlY3QsIGJ1dCBub3QgcmVhbGx5IG5lYXQuICovCisjZGVmaW5lIFZLSV9TSE1MQkEgVktJX1BBR0VfU0laRQorCisjZGVmaW5lIHZraV9zaG1pZF9kcyBzaG1pZF9kcworI2RlZmluZSB2a2lfc2htaWRfZHM2NCBzaG1pZF9kczY0CisjZGVmaW5lIHZraV9zaG1pZF94ZHM2NCBzaG1pZF94ZHM2NAorCisKKyNpbmNsdWRlIDxzeXMvc2lnaW5mby5oPgorLyogVGhpcyBzZWN0aW9uIGFsc28gY29udGFpbnMgaXRlbXMgZGVmaW5lZCBpbiBzeXMvbWFjaHNpZy5oLCB0aGlzIGZpbGUKKyAgIGlzIGRpcmVjdGx5IGluY2x1ZGVkIGluIHN5cy9zaWdpbmZvLmguICovCisjZGVmaW5lIHZraV9zaWdldmVudCBzaWdldmVudAorI2RlZmluZSB2a2lfc2lnaW5mb190IHNpZ2luZm9fdAorCisjZGVmaW5lIFZLSV9TSV9MV1AgU0lfTFdQCisjZGVmaW5lIFZLSV9TSV9VU0VSIFNJX1VTRVIKKyNkZWZpbmUgVktJX1NJR0VWX1BPUlQgU0lHRVZfUE9SVAorI2RlZmluZSBWS0lfU0lHRVZfVEhSRUFEIFNJR0VWX1RIUkVBRAorCisvKiBTSUdUUkFQIHNpZ25hbCBjb2RlcyAqLworI2RlZmluZSBWS0lfVFJBUF9CUktQVCBUUkFQX0JSS1BUCisKKy8qIFNJR0NMRCBzaWduYWwgY29kZXMgKi8KKyNkZWZpbmUgVktJX0NMRF9FWElURUQgQ0xEX0VYSVRFRAorI2RlZmluZSBWS0lfQ0xEX0tJTExFRCBDTERfS0lMTEVECisjZGVmaW5lIFZLSV9DTERfRFVNUEVEIENMRF9EVU1QRUQKKyNkZWZpbmUgVktJX0NMRF9UUkFQUEVEIENMRF9UUkFQUEVECisjZGVmaW5lIFZLSV9DTERfU1RPUFBFRCBDTERfU1RPUFBFRAorI2RlZmluZSBWS0lfQ0xEX0NPTlRJTlVFRCBDTERfQ09OVElOVUVECisKKy8qIFNJR0lMTCBzaWduYWwgY29kZXMgKi8KKyNkZWZpbmUgVktJX0lMTF9JTExPUEMgSUxMX0lMTE9QQworI2RlZmluZSBWS0lfSUxMX0lMTE9QTiBJTExfSUxMT1BOCisjZGVmaW5lIFZLSV9JTExfSUxMQURSIElMTF9JTExBRFIKKyNkZWZpbmUgVktJX0lMTF9JTExUUlAgSUxMX0lMTFRSUAorI2RlZmluZSBWS0lfSUxMX1BSVk9QQyBJTExfUFJWT1BDCisjZGVmaW5lIFZLSV9JTExfUFJWUkVHIElMTF9QUlZSRUcKKyNkZWZpbmUgVktJX0lMTF9DT1BST0MgSUxMX0NPUFJPQworI2RlZmluZSBWS0lfSUxMX0JBRFNUSyBJTExfQkFEU1RLCisKKy8qIFNJR0ZQRSBzaWduYWwgY29kZXMgKi8KKyNkZWZpbmUgVktJX0ZQRV9JTlRESVYgRlBFX0lOVERJVgorI2RlZmluZSBWS0lfRlBFX0lOVE9WRiBGUEVfSU5UT1ZGCisjZGVmaW5lIFZLSV9GUEVfRkxURElWIEZQRV9GTFRESVYKKyNkZWZpbmUgVktJX0ZQRV9GTFRPVkYgRlBFX0ZMVE9WRgorI2RlZmluZSBWS0lfRlBFX0ZMVFVORCBGUEVfRkxUVU5ECisjZGVmaW5lIFZLSV9GUEVfRkxUUkVTIEZQRV9GTFRSRVMKKyNkZWZpbmUgVktJX0ZQRV9GTFRJTlYgRlBFX0ZMVElOVgorI2RlZmluZSBWS0lfRlBFX0ZMVFNVQiBGUEVfRkxUU1VCCisjZGVmaW5lIFZLSV9GUEVfRkxUREVOIEZQRV9GTFRERU4KKworLyogU0lHU0VWIHNpZ25hbCBjb2RlcyAqLworI2RlZmluZSBWS0lfU0VHVl9NQVBFUlIgU0VHVl9NQVBFUlIKKyNkZWZpbmUgVktJX1NFR1ZfQUNDRVJSIFNFR1ZfQUNDRVJSCisKKy8qIFNJR0JVUyBzaWduYWwgY29kZXMgKi8KKyNkZWZpbmUgVktJX0JVU19BRFJBTE4gQlVTX0FEUkFMTgorI2RlZmluZSBWS0lfQlVTX0FEUkVSUiBCVVNfQURSRVJSCisjZGVmaW5lIFZLSV9CVVNfT0JKRVJSIEJVU19PQkpFUlIKKworCisjaW5jbHVkZSA8c3lzL3NpZ25hbC5oPgorLyogVGhpcyBzZWN0aW9uIGFsc28gY29udGFpbnMgaXRlbXMgZGVmaW5lZCBpbiBzeXMvaXNvL3NpZ25hbF9pc28uaCwgdGhpcyBmaWxlCisgICBpcyBkaXJlY3RseSBpbmNsdWRlZCBpbiBzeXMvc2lnbmFsLmguICovCisKKy8qIE5leHQgdGhyZWUgY29uc3RhbnRzIGRlc2NyaWJlIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBzaWdzZXRfdCwKKyAgIHRoZXJlIGFyZSBjaGVja3MgaW4gY29yZWdyaW5kL21fdmtpLmMgdG8gbWFrZSBzdXJlIHRoZXkgYXJlIGNvcnJlY3QuICovCisjZGVmaW5lIF9WS0lfTlNJRyAxMjgKKyNkZWZpbmUgX1ZLSV9NQVhTSUcgTUFYU0lHCisjZGVmaW5lIF9WS0lfTlNJR19CUFcgMzIKKyNkZWZpbmUgX1ZLSV9OU0lHX1dPUkRTIChfVktJX05TSUcgLyBfVktJX05TSUdfQlBXKQorI2RlZmluZSB2a2lfc2lnc2V0X3Qgc2lnc2V0X3QKKyNkZWZpbmUgdmtpX3NpZ2FsdHN0YWNrIHNpZ2FsdHN0YWNrCisvKiBzaWdzZXRfdCBhY2Nlc3NvciAqLworI2RlZmluZSBzaWcgX19zaWdiaXRzCisKKy8qIE9uIFNvbGFyaXMgd2UgdXNlIHRoZSBzYW1lIHR5cGUgZm9yIHBhc3Npbmcgc2lnYWN0aW9ucyB0bworICAgYW5kIGZyb20gdGhlIGtlcm5lbC4gSGVuY2U6ICovCit0eXBlZGVmIHN0cnVjdCBzaWdhY3Rpb24gdmtpX3NpZ2FjdGlvbl90b0tfdDsKK3R5cGVkZWYgc3RydWN0IHNpZ2FjdGlvbiB2a2lfc2lnYWN0aW9uX2Zyb21LX3Q7CisvKiBzaWdhY3Rpb25fdCBhY2Nlc3NvciAqLworI2RlZmluZSBrc2FfaGFuZGxlciBzYV9oYW5kbGVyCisKKyNkZWZpbmUgVktJX1NBX09OU1RBQ0sgU0FfT05TVEFDSworI2RlZmluZSBWS0lfU0FfT05FU0hPVCBTQV9SRVNFVEhBTkQKKyNkZWZpbmUgVktJX1NBX05PTUFTSyBTQV9OT0RFRkVSCisKKyNkZWZpbmUgVktJX01JTlNJR1NUS1NaIE1JTlNJR1NUS1NaCisKKyNkZWZpbmUgVktJX1NTX09OU1RBQ0sgU1NfT05TVEFDSworI2RlZmluZSBWS0lfU1NfRElTQUJMRSBTU19ESVNBQkxFCisKKyNkZWZpbmUgdmtpX3N0YWNrX3Qgc3RhY2tfdAorCisjZGVmaW5lIFZLSV9TQV9OT0NMRFNUT1AgU0FfTk9DTERTVE9QCisjZGVmaW5lIFZLSV9TQV9SRVNUQVJUIFNBX1JFU1RBUlQKKyNkZWZpbmUgVktJX1NBX1NJR0lORk8gU0FfU0lHSU5GTworI2RlZmluZSBWS0lfU0FfTk9DTERXQUlUIFNBX05PQ0xEV0FJVAorI2RlZmluZSBWS0lfU0FfUkVTVE9SRVIgMCAvKiBTb2xhcmlzIGRvZXNuJ3QgaGF2ZSB0aGlzICovCisKKyNkZWZpbmUgVktJX1NJR0hVUCBTSUdIVVAgICAgICAgICAgICAgICAvKiAgMSAqLworI2RlZmluZSBWS0lfU0lHSU5UIFNJR0lOVCAgICAgICAgICAgICAgIC8qICAyICovCisjZGVmaW5lIFZLSV9TSUdRVUlUIFNJR1FVSVQgICAgICAgICAgICAgLyogIDMgKi8KKyNkZWZpbmUgVktJX1NJR0lMTCBTSUdJTEwgICAgICAgICAgICAgICAvKiAgNCAqLworI2RlZmluZSBWS0lfU0lHVFJBUCBTSUdUUkFQICAgICAgICAgICAgIC8qICA1ICovCisjZGVmaW5lIFZLSV9TSUdBQlJUIFNJR0FCUlQgICAgICAgICAgICAgLyogIDYgKi8KKyNkZWZpbmUgVktJX1NJR0VNVCBTSUdFTVQgICAgICAgICAgICAgICAvKiAgNyAqLworI2RlZmluZSBWS0lfU0lHRlBFIFNJR0ZQRSAgICAgICAgICAgICAgIC8qICA4ICovCisjZGVmaW5lIFZLSV9TSUdLSUxMIFNJR0tJTEwgICAgICAgICAgICAgLyogIDkgKi8KKyNkZWZpbmUgVktJX1NJR0JVUyBTSUdCVVMgICAgICAgICAgICAgICAvKiAxMCAqLworI2RlZmluZSBWS0lfU0lHU0VHViBTSUdTRUdWICAgICAgICAgICAgIC8qIDExICovCisjZGVmaW5lIFZLSV9TSUdTWVMgU0lHU1lTICAgICAgICAgICAgICAgLyogMTIgKi8KKyNkZWZpbmUgVktJX1NJR1BJUEUgU0lHUElQRSAgICAgICAgICAgICAvKiAxMyAqLworI2RlZmluZSBWS0lfU0lHQUxSTSBTSUdBTFJNICAgICAgICAgICAgIC8qIDE0ICovCisjZGVmaW5lIFZLSV9TSUdURVJNIFNJR1RFUk0gICAgICAgICAgICAgLyogMTUgKi8KKyNkZWZpbmUgVktJX1NJR1VTUjEgU0lHVVNSMSAgICAgICAgICAgICAvKiAxNiAqLworI2RlZmluZSBWS0lfU0lHVVNSMiBTSUdVU1IyICAgICAgICAgICAgIC8qIDE3ICovCisjZGVmaW5lIFZLSV9TSUdDSExEIFNJR0NITEQgICAgICAgICAgICAgLyogMTggKi8KKyNkZWZpbmUgVktJX1NJR1BXUiBTSUdQV1IgICAgICAgICAgICAgICAvKiAxOSAqLworI2RlZmluZSBWS0lfU0lHV0lOQ0ggU0lHV0lOQ0ggICAgICAgICAgIC8qIDIwICovCisjZGVmaW5lIFZLSV9TSUdVUkcgU0lHVVJHICAgICAgICAgICAgICAgLyogMjEgKi8KKyNkZWZpbmUgVktJX1NJR0lPIFNJR0lPICAgICAgICAgICAgICAgICAvKiAyMiAqLworI2RlZmluZSBWS0lfU0lHU1RPUCBTSUdTVE9QICAgICAgICAgICAgIC8qIDIzICovCisjZGVmaW5lIFZLSV9TSUdUU1RQIFNJR1RTVFAgICAgICAgICAgICAgLyogMjQgKi8KKyNkZWZpbmUgVktJX1NJR0NPTlQgU0lHQ09OVCAgICAgICAgICAgICAvKiAyNSAqLworI2RlZmluZSBWS0lfU0lHVFRJTiBTSUdUVElOICAgICAgICAgICAgIC8qIDI2ICovCisjZGVmaW5lIFZLSV9TSUdUVE9VIFNJR1RUT1UgICAgICAgICAgICAgLyogMjcgKi8KKyNkZWZpbmUgVktJX1NJR1ZUQUxSTSBTSUdWVEFMUk0gICAgICAgICAvKiAyOCAqLworI2RlZmluZSBWS0lfU0lHUFJPRiBTSUdQUk9GICAgICAgICAgICAgIC8qIDI5ICovCisjZGVmaW5lIFZLSV9TSUdYQ1BVIFNJR1hDUFUgICAgICAgICAgICAgLyogMzAgKi8KKyNkZWZpbmUgVktJX1NJR1hGU1ogU0lHWEZTWiAgICAgICAgICAgICAvKiAzMSAqLworI2RlZmluZSBWS0lfU0lHV0FJVElORyBTSUdXQUlUSU5HICAgICAgIC8qIDMyICovCisjZGVmaW5lIFZLSV9TSUdMV1AgU0lHTFdQICAgICAgICAgICAgICAgLyogMzMgKi8KKyNkZWZpbmUgVktJX1NJR0ZSRUVaRSBTSUdGUkVFWkUgICAgICAgICAvKiAzNCAqLworI2RlZmluZSBWS0lfU0lHVEhBVyBTSUdUSEFXICAgICAgICAgICAgIC8qIDM1ICovCisjZGVmaW5lIFZLSV9TSUdDQU5DRUwgU0lHQ0FOQ0VMICAgICAgICAgLyogMzYgKi8KKyNkZWZpbmUgVktJX1NJR0xPU1QgU0lHTE9TVCAgICAgICAgICAgICAvKiAzNyAqLworI2RlZmluZSBWS0lfU0lHWFJFUyBTSUdYUkVTICAgICAgICAgICAgIC8qIDM4ICovCisjZGVmaW5lIFZLSV9TSUdKVk0xIFNJR0pWTTEgICAgICAgICAgICAgLyogMzkgKi8KKyNkZWZpbmUgVktJX1NJR0pWTTIgU0lHSlZNMiAgICAgICAgICAgICAvKiA0MCAqLworLyogTm90ZSB0aGF0IFNJR1JUTUlOIGFuZCBTSUdSVE1BWCBhcmUgYWN0dWFsbHkgbWFjcm9zIGNhbGxpbmcgaW50bworICAgbGliYydzIHN5c2NvbmYoKSB3aGljaCBpbiB0dXJuIGNhbGxzIGludG8ga2VybmVsLiBBbmQgaXQgcmV0dXJucworICAgdGhlc2UgX1NJR1JUTSogdmFsdWVzLiBTbyB3ZSBhcmUgc2FmZSB1bnRpbCBzb21lb25lIHJlYnVpbGRzIFNvbGFyaXMKKyAgIGtlcm5lbCB3aXRoIGRpZmZlcmVudCB2YWx1ZXMuLi4gKi8KKyNkZWZpbmUgVktJX1NJR1JUTUlOIF9TSUdSVE1JTiAgICAgICAgICAvKiA0MSAqLworI2RlZmluZSBWS0lfU0lHUlRNQVggX1NJR1JUTUFYICAgICAgICAgIC8qIDcyICovCisKKyNkZWZpbmUgVktJX1NJR19ERkwgU0lHX0RGTAorI2RlZmluZSBWS0lfU0lHX0lHTiBTSUdfSUdOCisKKyNkZWZpbmUgVktJX1NJR19CTE9DSyBTSUdfQkxPQ0sKKyNkZWZpbmUgVktJX1NJR19VTkJMT0NLIFNJR19VTkJMT0NLCisjZGVmaW5lIFZLSV9TSUdfU0VUTUFTSyBTSUdfU0VUTUFTSworCisKKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjZGVmaW5lIHZraV9zYV9mYW1pbHlfdCBzYV9mYW1pbHlfdAorI2RlZmluZSB2a2lfc29ja2FkZHIgc29ja2FkZHIKKworI2RlZmluZSB2a2lfc29ja2xlbl90IHNvY2tsZW5fdAorCisjZGVmaW5lIFZLSV9TT0NLX1NUUkVBTSBTT0NLX1NUUkVBTQorCisjZGVmaW5lIFZLSV9TT19UWVBFIFNPX1RZUEUKKyNkZWZpbmUgVktJX1NDTV9SSUdIVFMgU0NNX1JJR0hUUworI2RlZmluZSBWS0lfU09MX1NPQ0tFVCBTT0xfU09DS0VUCisKKyNkZWZpbmUgVktJX0FGX1VOSVggQUZfVU5JWAorI2RlZmluZSBWS0lfQUZfSU5FVCBBRl9JTkVUCisjZGVmaW5lIFZLSV9BRl9JTkVUNiBBRl9JTkVUNgorCisjZGVmaW5lIHZraV9tc2doZHIgbXNnaGRyCisjZGVmaW5lIHZraV9jbXNnaGRyIGNtc2doZHIKKworI2RlZmluZSBWS0lfQ01TR19BTElHTihhKSBfQ01TR19EQVRBX0FMSUdOKGEpCisjZGVmaW5lIFZLSV9DTVNHX0RBVEEoY21zZykgQ01TR19EQVRBKGNtc2cpCisjZGVmaW5lIFZLSV9DTVNHX0ZJUlNUSERSKG1oZHIpIENNU0dfRklSU1RIRFIobWhkcikKKyNkZWZpbmUgVktJX0NNU0dfTlhUSERSKG1oZHIsIGNtc2cpIENNU0dfTlhUSERSKG1oZHIsIGNtc2cpCisKKworI2luY2x1ZGUgPHN5cy9zb2NrZXR2YXIuaD4KKyNkZWZpbmUgVktJX1NPVl9ERUZBVUxUIFNPVl9ERUZBVUxUCisKKworI2luY2x1ZGUgPHN5cy9zb2NraW8uaD4KKyNkZWZpbmUgVktJX1NJT0NHSUZDT05GIFNJT0NHSUZDT05GCisjZGVmaW5lIFZLSV9TSU9DR0lGRkxBR1MgU0lPQ0dJRkZMQUdTCisjZGVmaW5lIFZLSV9TSU9DR0lGTkVUTUFTSyBTSU9DR0lGTkVUTUFTSworI2RlZmluZSBWS0lfU0lPQ0dJRk5VTSBTSU9DR0lGTlVNCisjZGVmaW5lIFZLSV9TSU9DR0xJRkJSREFERFIgU0lPQ0dMSUZCUkRBRERSCisjZGVmaW5lIFZLSV9TSU9DR0xJRkNPTkYgU0lPQ0dMSUZDT05GCisjZGVmaW5lIFZLSV9TSU9DR0xJRkZMQUdTIFNJT0NHTElGRkxBR1MKKyNkZWZpbmUgVktJX1NJT0NHTElGTkVUTUFTSyBTSU9DR0xJRk5FVE1BU0sKKyNkZWZpbmUgVktJX1NJT0NHTElGTlVNIFNJT0NHTElGTlVNCisKKworI2lmIGRlZmluZWQoU09MQVJJU19TUEFXTl9TWVNDQUxMKQorI2luY2x1ZGUgPHN5cy9zcGF3bl9pbXBsLmg+CisjZGVmaW5lIFZLSV9GQV9DSERJUiBGQV9DSERJUgorI2RlZmluZSBWS0lfRkFfQ0xPU0UgRkFfQ0xPU0UKKyNkZWZpbmUgVktJX0ZBX0NMT1NFRlJPTSBGQV9DTE9TRUZST00KKyNkZWZpbmUgVktJX0ZBX0RVUDIgRkFfRFVQMgorI2RlZmluZSBWS0lfRkFfT1BFTiBGQV9PUEVOCisjZGVmaW5lIFZLSV9QT1NJWF9TUEFXTl9OT0VYRUNFUlJfTlAgUE9TSVhfU1BBV05fTk9FWEVDRVJSX05QCisjZGVmaW5lIFZLSV9QT1NJWF9TUEFXTl9OT1NJR0NITERfTlAgUE9TSVhfU1BBV05fTk9TSUdDSExEX05QCisjZGVmaW5lIFZLSV9QT1NJWF9TUEFXTl9SRVNFVElEUyBQT1NJWF9TUEFXTl9SRVNFVElEUworI2RlZmluZSBWS0lfUE9TSVhfU1BBV05fU0VUUEdST1VQIFBPU0lYX1NQQVdOX1NFVFBHUk9VUAorI2RlZmluZSBWS0lfUE9TSVhfU1BBV05fU0VUU0NIRURQQVJBTSBQT1NJWF9TUEFXTl9TRVRTQ0hFRFBBUkFNCisjZGVmaW5lIFZLSV9QT1NJWF9TUEFXTl9TRVRTQ0hFRFVMRVIgUE9TSVhfU1BBV05fU0VUU0NIRURVTEVSCisjZGVmaW5lIFZLSV9QT1NJWF9TUEFXTl9TRVRTSURfTlAgUE9TSVhfU1BBV05fU0VUU0lEX05QCisjZGVmaW5lIFZLSV9QT1NJWF9TUEFXTl9TRVRTSUdERUYgUE9TSVhfU1BBV05fU0VUU0lHREVGCisjZGVmaW5lIFZLSV9QT1NJWF9TUEFXTl9TRVRTSUdJR05fTlAgUE9TSVhfU1BBV05fU0VUU0lHSUdOX05QCisjZGVmaW5lIFZLSV9QT1NJWF9TUEFXTl9TRVRTSUdNQVNLIFBPU0lYX1NQQVdOX1NFVFNJR01BU0sKKyNkZWZpbmUgVktJX1BPU0lYX1NQQVdOX1NFVFZBTUFTS19OUCBQT1NJWF9TUEFXTl9TRVRWQU1BU0tfTlAKKyNkZWZpbmUgVktJX1BPU0lYX1NQQVdOX1dBSVRQSURfTlAgUE9TSVhfU1BBV05fV0FJVFBJRF9OUAorI2RlZmluZSBWS0lfU1BBV05fVkVSU0lPTiBTUEFXTl9WRVJTSU9OCisjZGVmaW5lIHZraV9rZmlsZV9hdHRyX3Qga2ZpbGVfYXR0cl90CisjZGVmaW5lIHZraV9rc3Bhd25fYXR0cl90IGtzcGF3bl9hdHRyX3QKKyNkZWZpbmUgdmtpX3NwYXduX2F0dHJfdCBzcGF3bl9hdHRyX3QKKyNlbmRpZiAvKiBTT0xBUklTX1NQQVdOX1NZU0NBTEwgKi8KKworCisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNkZWZpbmUgdmtpX3N0YXQgc3RhdAorI2RlZmluZSB2a2lfc3RhdDY0IHN0YXQ2NAorCisjZGVmaW5lIHN0X2F0aW1lX25zZWMgc3RfYXRpbS50dl9uc2VjCisjZGVmaW5lIHN0X210aW1lX25zZWMgc3RfbXRpbS50dl9uc2VjCisjZGVmaW5lIHN0X2N0aW1lX25zZWMgc3RfY3RpbS50dl9uc2VjCisKKyNkZWZpbmUgVktJX1NfSUZJRk8gU19JRklGTworI2RlZmluZSBWS0lfU19JU1VJRCBTX0lTVUlECisjZGVmaW5lIFZLSV9TX0lTR0lEIFNfSVNHSUQKKworI2RlZmluZSBWS0lfU19JUlVTUiBTX0lSVVNSCisjZGVmaW5lIFZLSV9TX0lXVVNSIFNfSVdVU1IKKyNkZWZpbmUgVktJX1NfSVhVU1IgU19JWFVTUgorI2RlZmluZSBWS0lfU19JUkdSUCBTX0lSR1JQCisjZGVmaW5lIFZLSV9TX0lXR1JQIFNfSVdHUlAKKyNkZWZpbmUgVktJX1NfSVhHUlAgU19JWEdSUAorI2RlZmluZSBWS0lfU19JUk9USCBTX0lST1RICisjZGVmaW5lIFZLSV9TX0lXT1RIIFNfSVdPVEgKKyNkZWZpbmUgVktJX1NfSVhPVEggU19JWE9USAorCisjZGVmaW5lIFZLSV9TX0lTQ0hSIFNfSVNDSFIKKyNkZWZpbmUgVktJX1NfSVNESVIgU19JU0RJUgorI2RlZmluZSBWS0lfU19JU0JMSyBTX0lTQkxLCisjZGVmaW5lIFZLSV9TX0lTUkVHIFNfSVNSRUcKKyNkZWZpbmUgVktJX1NfSVNMTksgU19JU0xOSworCisKKyNpbmNsdWRlIDxzeXMvc3RhdGZzLmg+CisjZGVmaW5lIHZraV9zdGF0ZnMgc3RhdGZzCisKKworI2luY2x1ZGUgPHN5cy9zdGF0dmZzLmg+CisjZGVmaW5lIHZraV9zdGF0dmZzIHN0YXR2ZnMKKyNkZWZpbmUgdmtpX3N0YXR2ZnM2NCBzdGF0dmZzNjQKKworCisjaW5jbHVkZSA8c3lzL3N0cm9wdHMuaD4KKyNkZWZpbmUgVktJX0lfQ0FOUFVUIElfQ0FOUFVUCisjZGVmaW5lIFZLSV9JX1BFRUsgSV9QRUVLCisjZGVmaW5lIFZLSV9JX1BVU0ggSV9QVVNICisjZGVmaW5lIFZLSV9JX1NUUiBJX1NUUgorI2RlZmluZSB2a2lfc3RyYnVmIHN0cmJ1ZgorI2RlZmluZSB2a2lfc3RyaW9jdGwgc3RyaW9jdGwKKyNkZWZpbmUgdmtpX3N0cnBlZWsgc3RycGVlaworCisKKyNpbmNsdWRlIDxzeXMvc3luY2guaD4KKyNkZWZpbmUgdmtpX2x3cF9tdXRleF90IGx3cF9tdXRleF90CisjZGVmaW5lIHZraV9sd3BfY29uZF90IGx3cF9jb25kX3QKKyNkZWZpbmUgdmtpX2x3cF9zZW1hX3QgbHdwX3NlbWFfdAorI2RlZmluZSB2a2lfbHdwX3J3bG9ja190IGx3cF9yd2xvY2tfdAorCisvKiBEZWZpbmVzIGZyb20gdGhlIHByaXZhdGUgc3lzL3N5bmNoMzIuaCBoZWFkZXIuICovCisjZGVmaW5lIHZraV9tdXRleF9mbGFnIGZsYWdzLmZsYWcxCisjZGVmaW5lIHZraV9tdXRleF90eXBlIGZsYWdzLm1iY3BfdHlwZV91bi5tdHlwZV9yY291bnQuY291bnRfdHlwZTEKKyNkZWZpbmUgdmtpX211dGV4X3Jjb3VudCBmbGFncy5tYmNwX3R5cGVfdW4ubXR5cGVfcmNvdW50LmNvdW50X3R5cGUyCisjZGVmaW5lIHZraV9tdXRleF9vd25lciBkYXRhCisjZGVmaW5lIHZraV9tdXRleF9sb2NrdyBsb2NrLmxvY2s2NC5wYWRbN10KKyNkZWZpbmUgdmtpX211dGV4X3dhaXRlcnMgbG9jay5sb2NrNjQucGFkWzZdCisjZGVmaW5lIHZraV9tdXRleF9vd25lcnBpZCBsb2NrLmxvY2szMi5vd25lcnBpZAorCisjZGVmaW5lIHZraV9jb25kX3R5cGUgZmxhZ3MudHlwZQorI2RlZmluZSB2a2lfY29uZF93YWl0ZXJzX2tlcm5lbCBmbGFncy5mbGFnWzNdCisKKyNkZWZpbmUgdmtpX3NlbWFfY291bnQgY291bnQKKyNkZWZpbmUgdmtpX3NlbWFfdHlwZSB0eXBlCisjZGVmaW5lIHZraV9zZW1hX3dhaXRlcnMgZmxhZ3NbN10KKworI2RlZmluZSB2a2lfcndsb2NrX3JlYWRlcnMgcmVhZGVycworI2RlZmluZSB2a2lfcndsb2NrX3R5cGUgdHlwZQorI2RlZmluZSB2a2lfcndsb2NrX293bmVyIHJlYWRlcmN2LmRhdGEKKyNkZWZpbmUgdmtpX3J3bG9ja19vd25lcnBpZCB3cml0ZXJjdi5kYXRhCisKKworI2luY2x1ZGUgPHN5cy9zeXNjb25maWcuaD4KKyNkZWZpbmUgVktJX0NPTkZJR19PUEVOX0ZJTEVTIF9DT05GSUdfT1BFTl9GSUxFUworCisKKyNpbmNsdWRlIDxzeXMvc3lzaTg2Lmg+CisjZGVmaW5lIFZLSV9TSTg2RlBTVEFSVCBTSTg2RlBTVEFSVAorCisKKyNpbmNsdWRlIDxzeXMvc3lzdGVtaW5mby5oPgorI2RlZmluZSBWS0lfU0lfU1lTTkFNRSBTSV9TWVNOQU1FCisjZGVmaW5lIFZLSV9TSV9IT1NUTkFNRSBTSV9IT1NUTkFNRQorI2RlZmluZSBWS0lfU0lfUkVMRUFTRSBTSV9SRUxFQVNFCisjZGVmaW5lIFZLSV9TSV9WRVJTSU9OIFNJX1ZFUlNJT04KKyNkZWZpbmUgVktJX1NJX01BQ0hJTkUgU0lfTUFDSElORQorI2RlZmluZSBWS0lfU0lfQVJDSElURUNUVVJFIFNJX0FSQ0hJVEVDVFVSRQorI2RlZmluZSBWS0lfU0lfSFdfU0VSSUFMIFNJX0hXX1NFUklBTAorI2RlZmluZSBWS0lfU0lfSFdfUFJPVklERVIgU0lfSFdfUFJPVklERVIKKyNkZWZpbmUgVktJX1NJX1NSUENfRE9NQUlOIFNJX1NSUENfRE9NQUlOCisKKyNkZWZpbmUgVktJX1NJX1NFVF9IT1NUTkFNRSBTSV9TRVRfSE9TVE5BTUUKKyNkZWZpbmUgVktJX1NJX1NFVF9TUkNQX0RPTUFJTiBTSV9TRVRfU1JQQ19ET01BSU4KKworI2RlZmluZSBWS0lfU0lfUExBVEZPUk0gU0lfUExBVEZPUk0KKyNkZWZpbmUgVktJX1NJX0lTQUxJU1QgU0lfSVNBTElTVAorI2RlZmluZSBWS0lfU0lfREhDUF9DQUNIRSBTSV9ESENQX0NBQ0hFCisjZGVmaW5lIFZLSV9TSV9BUkNISVRFQ1RVUkVfMzIgU0lfQVJDSElURUNUVVJFXzMyCisjZGVmaW5lIFZLSV9TSV9BUkNISVRFQ1RVUkVfNjQgU0lfQVJDSElURUNUVVJFXzY0CisjZGVmaW5lIFZLSV9TSV9BUkNISVRFQ1RVUkVfSyBTSV9BUkNISVRFQ1RVUkVfSworI2RlZmluZSBWS0lfU0lfQVJDSElURUNUVVJFX05BVElWRSBTSV9BUkNISVRFQ1RVUkVfTkFUSVZFCisKKworI2luY2x1ZGUgPHN5cy90ZXJtaW8uaD4KKyNkZWZpbmUgdmtpX3Rlcm1pbyB0ZXJtaW8KKworCisjaW5jbHVkZSA8c3lzL3Rlcm1pb3MuaD4KKyNkZWZpbmUgdmtpX3Rlcm1pb3MgdGVybWlvcworI2RlZmluZSBWS0lfVENHRVRBIFRDR0VUQQorI2RlZmluZSBWS0lfVENHRVRTIFRDR0VUUworI2RlZmluZSBWS0lfVENTRVRTIFRDU0VUUworI2RlZmluZSBWS0lfVENTRVRTRiBUQ1NFVFNGCisjZGVmaW5lIFZLSV9UQ1NFVFNXIFRDU0VUU1cKKyNkZWZpbmUgVktJX1RJT0NHUEdSUCBUSU9DR1BHUlAKKyNkZWZpbmUgVktJX1RJT0NHU0lEIFRJT0NHU0lECisjZGVmaW5lIFZLSV9USU9DR1dJTlNaIFRJT0NHV0lOU1oKKyNkZWZpbmUgVktJX1RJT0NOT1RUWSBUSU9DTk9UVFkKKyNkZWZpbmUgVktJX1RJT0NTQ1RUWSBUSU9DU0NUVFkKKyNkZWZpbmUgVktJX1RJT0NTUEdSUCBUSU9DU1BHUlAKKyNkZWZpbmUgVktJX1RJT0NTV0lOU1ogVElPQ1NXSU5TWgorI2RlZmluZSB2a2lfd2luc2l6ZSB3aW5zaXplCisKKworI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjZGVmaW5lIFZLSV9DTE9DS19NT05PVE9OSUMgQ0xPQ0tfTU9OT1RPTklDCisKKyNkZWZpbmUgdmtpX2Nsb2NraWRfdCBjbG9ja2lkX3QKKyNkZWZpbmUgdmtpX3RpbWVzcGVjIHRpbWVzcGVjCisjZGVmaW5lIHZraV90aW1lc3BlY190IHRpbWVzcGVjX3QKKyNkZWZpbmUgdmtpX3RpbWV2YWwgdGltZXZhbAorI2RlZmluZSB2a2lfdGltZXpvbmUgdGltZXpvbmUKKyNkZWZpbmUgdmtpX2l0aW1lcnNwZWMgaXRpbWVyc3BlYworI2RlZmluZSB2a2lfaXRpbWVydmFsIGl0aW1lcnZhbAorCisKKyNpbmNsdWRlIDxzeXMvdGltZXMuaD4KKyNkZWZpbmUgdmtpX3RtcyB0bXMKKworCisjaW5jbHVkZSA8c3lzL3Rzb2wvbGFiZWxfbWFjcm8uaD4KKyNkZWZpbmUgdmtpX2JzbGFiZWxfdCBic2xhYmVsX3QKKworCisvKiBEbyBub3QgaW5jbHVkZSBzeXMvdHNvbC90bmRiLmggaWYgYSBDKysgY29tcGlsZXIgaXMgdXNlZCB0byBidWlsZCBhIGZpbGUKKyAgIHdoaWNoIGluY2x1ZGVzIHZraS1zb2xhcmlzLmguICBUaGlzIGNhbm5vdCBiZSBkb25lIGJlY2F1c2UgdGhlIHRuZGIuaAorICAgaGVhZGVyIGZpbGUgdXNlcyB0aGUgdGVtcGxhdGUga2V5d29yZCBhcyBhIG1lbWJlciBuYW1lIChvbiBpbGx1bW9zKS4gKi8KKyNpZiAhZGVmaW5lZChfX2NwbHVzcGx1cykKKyNpbmNsdWRlIDxzeXMvdHNvbC90bmRiLmg+CisjZGVmaW5lIFZLSV9UTkRCX0RFTEVURSBUTkRCX0RFTEVURQorI2RlZmluZSBWS0lfVE5EQl9GTFVTSCBUTkRCX0ZMVVNICisjZGVmaW5lIFZLSV9UTkRCX0dFVCBUTkRCX0dFVAorI2lmIGRlZmluZWQoU09MQVJJU19UTkRCX0dFVF9UTklQKQorI2RlZmluZSBWS0lfVE5EQl9HRVRfVE5JUCBUTkRCX0dFVF9UTklQCisjZW5kaWYgLyogU09MQVJJU19UTkRCX0dFVF9UTklQICovCisjZGVmaW5lIFZLSV9UTkRCX0xPQUQgVE5EQl9MT0FECisjZGVmaW5lIHZraV90c29sX21scGVudF90IHRzb2xfbWxwZW50X3QKKyNkZWZpbmUgdmtpX3Rzb2xfcmhlbnRfdCB0c29sX3JoZW50X3QKKyNkZWZpbmUgdmtpX3Rzb2xfdHBlbnRfdCB0c29sX3RwZW50X3QKKyNlbmRpZiAvKiAhX19jcGx1c3BsdXMgKi8KKworCisjaW5jbHVkZSA8c3lzL3Rzb2wvdHN5c2NhbGwuaD4KKyNkZWZpbmUgVktJX1RTT0xfRkdFVExBQkVMIFRTT0xfRkdFVExBQkVMCisjZGVmaW5lIFZLSV9UU09MX0dFVExBQkVMIFRTT0xfR0VUTEFCRUwKKyNkZWZpbmUgVktJX1RTT0xfVE5NTFAgVFNPTF9UTk1MUAorI2RlZmluZSBWS0lfVFNPTF9UTlJIIFRTT0xfVE5SSAorI2RlZmluZSBWS0lfVFNPTF9UTlJIVFAgVFNPTF9UTlJIVFAKKyNkZWZpbmUgVktJX1RTT0xfU1lTTEFCRUxJTkcgVFNPTF9TWVNMQUJFTElORworI2lmIGRlZmluZWQoU09MQVJJU19UU09MX0NMRUFSQU5DRSkKKyNkZWZpbmUgVktJX1RTT0xfR0VUQ0xFQVJBTkNFIFRTT0xfR0VUQ0xFQVJBTkNFCisjZGVmaW5lIFZLSV9UU09MX1NFVENMRUFSQU5DRSBUU09MX1NFVENMRUFSQU5DRQorI2VuZGlmIC8qIFNPTEFSSVNfVFNPTF9DTEVBUkFOQ0UgKi8KKworCisjaW5jbHVkZSA8c3lzL3R0b2xkLmg+CisjZGVmaW5lIHZraV9zZ3R0eWIgc2d0dHliCisKKworI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorLyogVGhpcyBzZWN0aW9uIGFsc28gY29udGFpbnMgaXRlbXMgZGVmaW5lZCBpbiBzeXMvcmVnc2V0LmgsIHRoaXMgZmlsZQorICAgaXMgZGlyZWN0bHkgaW5jbHVkZWQgaW4gc3lzL3Vjb250ZXh0LmguICovCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisjZGVmaW5lIFZLSV9TUyBTUworI2RlZmluZSBWS0lfVUVTUCBVRVNQCisjZGVmaW5lIFZLSV9FRkwgRUZMCisjZGVmaW5lIFZLSV9DUyBDUworI2RlZmluZSBWS0lfRUlQIEVJUAorI2RlZmluZSBWS0lfRVJSIDEzIC8qIEVSUiAqLworI2RlZmluZSBWS0lfVFJBUE5PIFRSQVBOTworI2RlZmluZSBWS0lfRUFYIEVBWAorI2RlZmluZSBWS0lfRUNYIEVDWAorI2RlZmluZSBWS0lfRURYIEVEWAorI2RlZmluZSBWS0lfRUJYIEVCWAorI2RlZmluZSBWS0lfRVNQIEVTUAorI2RlZmluZSBWS0lfRUJQIEVCUAorI2RlZmluZSBWS0lfRVNJIEVTSQorI2RlZmluZSBWS0lfRURJIEVESQorI2RlZmluZSBWS0lfRFMgRFMKKyNkZWZpbmUgVktJX0VTIEVTCisjZGVmaW5lIFZLSV9GUyBGUworI2RlZmluZSBWS0lfR1MgR1MKKworLyogRGVmaW5pdGlvbnMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBhbWQ2NC1zb2xhcmlzLiAqLworI2RlZmluZSBWS0lfUkVHX0VSUiBWS0lfRVJSCisjZGVmaW5lIFZLSV9SRUdfVFJBUE5PIFZLSV9UUkFQTk8KKworI2RlZmluZSBWS0lfRUZMQUdTX0lEX0JJVCAoMSA8PCAyMSkKKworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyNkZWZpbmUgVktJX1JFR19HU0JBU0UgUkVHX0dTQkFTRQorI2RlZmluZSBWS0lfUkVHX0ZTQkFTRSBSRUdfRlNCQVNFCisjZGVmaW5lIFZLSV9SRUdfRFMgUkVHX0RTCisjZGVmaW5lIFZLSV9SRUdfRVMgUkVHX0VTCisjZGVmaW5lIFZLSV9SRUdfR1MgUkVHX0dTCisjZGVmaW5lIFZLSV9SRUdfRlMgUkVHX0ZTCisjZGVmaW5lIFZLSV9SRUdfU1MgUkVHX1NTCisjZGVmaW5lIFZLSV9SRUdfUlNQIFJFR19SU1AKKyNkZWZpbmUgVktJX1JFR19SRkwgUkVHX1JGTAorI2RlZmluZSBWS0lfUkVHX0NTIFJFR19DUworI2RlZmluZSBWS0lfUkVHX1JJUCBSRUdfUklQCisjZGVmaW5lIFZLSV9SRUdfRVJSIFJFR19FUlIKKyNkZWZpbmUgVktJX1JFR19UUkFQTk8gUkVHX1RSQVBOTworI2RlZmluZSBWS0lfUkVHX1JBWCBSRUdfUkFYCisjZGVmaW5lIFZLSV9SRUdfUkNYIFJFR19SQ1gKKyNkZWZpbmUgVktJX1JFR19SRFggUkVHX1JEWAorI2RlZmluZSBWS0lfUkVHX1JCWCBSRUdfUkJYCisjZGVmaW5lIFZLSV9SRUdfUkJQIFJFR19SQlAKKyNkZWZpbmUgVktJX1JFR19SU0kgUkVHX1JTSQorI2RlZmluZSBWS0lfUkVHX1JESSBSRUdfUkRJCisjZGVmaW5lIFZLSV9SRUdfUjggUkVHX1I4CisjZGVmaW5lIFZLSV9SRUdfUjkgUkVHX1I5CisjZGVmaW5lIFZLSV9SRUdfUjEwIFJFR19SMTAKKyNkZWZpbmUgVktJX1JFR19SMTEgUkVHX1IxMQorI2RlZmluZSBWS0lfUkVHX1IxMiBSRUdfUjEyCisjZGVmaW5lIFZLSV9SRUdfUjEzIFJFR19SMTMKKyNkZWZpbmUgVktJX1JFR19SMTQgUkVHX1IxNAorI2RlZmluZSBWS0lfUkVHX1IxNSBSRUdfUjE1CisKKyNkZWZpbmUgVktJX1JGTEFHU19JRF9CSVQgKDEgPDwgMjEpCisKKyNlbHNlCisjZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjZW5kaWYKKworI2RlZmluZSB2a2lfZnByZWdzZXRfdCBmcHJlZ3NldF90CisKKy8qIERvbid0IHBvbHV0ZSBnbG9iYWwgbmFtZXNwYWNlIHNvIG11Y2guICovCisjdW5kZWYgcl9yMAorI3VuZGVmIHJfcjEKKyN1bmRlZiByX2ZwCisjdW5kZWYgcl9zcAorI3VuZGVmIHJfcGMKKyN1bmRlZiByX3BzCisjdW5kZWYgRVJSCisKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKy8qIFRoZSB1Y29udGV4dCBzdHJ1Y3R1cmUgYXMgZGVmaW5lZCBpbiB0aGUgU1lTViBBQkkgZm9yIEludGVsMzg2LiBJbGx1bW9zCisgICBjb250YWlucyBleGFjdGx5IHRoaXMgZGVmaW5pdGlvbi4gU29sYXJpcyAxMSB1dGlsaXplcyB0d28gdWNfZmlsbGVyIHZhbHVlcworICAgLT4gInhyc190IHVjX3hyczsgbG9uZyB1Y19maWxsZXJbM107Ii4gVGhlIHhyc190IHN0cnVjdHVyZSBpcyB1c2VkIGZvciB0aGUKKyAgIEFWWCBzdXBwb3J0LiBXZSBkZWZpbmUgb3VyIG93biB1Y29udGV4dCBzdHJ1Y3R1cmUgYmVjYXVzZSBhbGwgZml2ZQorICAgdWNfZmlsbGVyIHZhbHVlcyBuZWVkIHRvIGJlIGF2YWlsYWJsZSBpbiBWR18oc2F2ZV9jb250ZXh0KS4gTm90ZSB0aGF0CisgICBWYWxncmluZCBkb2Vzbid0IHN1cHBvcnQgQVZYIG9uIHRoZSB4ODYgcGxhdGZvcm0uICovCit0eXBlZGVmIHN0cnVjdCBzeXN2X3Vjb250ZXh0IHN5c3ZfdWNvbnRleHRfdDsKK3N0cnVjdCBzeXN2X3Vjb250ZXh0IHsKKyAgIHVuc2lnbmVkIGxvbmcgdWNfZmxhZ3M7CisgICBzeXN2X3Vjb250ZXh0X3QgKnVjX2xpbms7CisgICBzaWdzZXRfdCB1Y19zaWdtYXNrOworICAgc3RhY2tfdCB1Y19zdGFjazsKKyAgIG1jb250ZXh0X3QgdWNfbWNvbnRleHQ7CisgICBsb25nIHVjX2ZpbGxlcls1XTsKK307CisjZGVmaW5lIFZLSV9VQ19HVUVTVF9DQ19PUCh1YykgKCooVVdvcmQqKSYodWMpLT51Y19maWxsZXJbMF0pCisjZGVmaW5lIFZLSV9VQ19HVUVTVF9DQ19OREVQKHVjKSAoKihVV29yZCopJih1YyktPnVjX2ZpbGxlclsxXSkKKyNkZWZpbmUgVktJX1VDX0dVRVNUX0NDX0RFUDEodWMpICgqKFVXb3JkKikmKHVjKS0+dWNfZmlsbGVyWzJdKQorI2RlZmluZSBWS0lfVUNfR1VFU1RfQ0NfREVQMih1YykgKCooVVdvcmQqKSYodWMpLT51Y19maWxsZXJbM10pCisjZGVmaW5lIFZLSV9VQ19HVUVTVF9FRkxBR1NfTkVHKHVjKSBcCisgICAoKihVV29yZCopJih1YyktPnVjX21jb250ZXh0LmZwcmVncy5mcF9yZWdfc2V0LmZwY2hpcF9zdGF0ZS5fX3BhZFswXSkKKyNkZWZpbmUgVktJX1VDX0dVRVNUX0VGTEFHU19DSEVDS1NVTSh1YykgXAorICAgKCooVVdvcmQqKSYodWMpLT51Y19tY29udGV4dC5mcHJlZ3MuZnBfcmVnX3NldC5mcGNoaXBfc3RhdGUuX19wYWRbMV0pCisjZGVmaW5lIFZLSV9VQ19TSUdOTyh1YykgKCooVVdvcmQqKSYodWMpLT51Y19maWxsZXJbNF0pCisjZGVmaW5lIFZLSV9VQ19TSUdOT19DT05TVCh1YykgKCooY29uc3QgVVdvcmQqKSYodWMpLT51Y19maWxsZXJbNF0pCisKKyNkZWZpbmUgdmtpX3Vjb250ZXh0X3Qgc3lzdl91Y29udGV4dF90CisjZGVmaW5lIHZraV91Y29udGV4dCBzeXN2X3Vjb250ZXh0CisKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisvKiBUaGUgdWNvbnRleHQgc3RydWN0dXJlIG9uIFNvbGFyaXMgaGFzIG9ubHkgMyBlbGVtZW50cyBhdmFpbGFibGUgaW4gdWNfZmlsbGVyCisgICB3aGljaCBpcyBub3QgZW5vdWdoIHRvIHN0b3JlIGFsbCByZXF1aXJlZCBpbmZvcm1hdGlvbi4gVGhlcmVmb3JlIHBhZGRpbmcKKyAgIGFyZWEgaW4gbWNvbnRleHQncyBGUFUgcmVnc2V0IGlzIHVzZWQuICovCisjZGVmaW5lIHZraV91Y29udGV4dCB1Y29udGV4dAorI2RlZmluZSB2a2lfdWNvbnRleHRfdCB1Y29udGV4dF90CisjZGVmaW5lIFZLSV9VQ19NQ19GUF9GWF9JR04yKHVjKSBcCisgICAgKHVjKS0+dWNfbWNvbnRleHQuZnByZWdzLmZwX3JlZ19zZXQuZnBjaGlwX3N0YXRlLl9fZnhfaWduMgorI2RlZmluZSBWS0lfVUNfR1VFU1RfQ0NfT1AodWMpICgqKFVXb3JkICopICZWS0lfVUNfTUNfRlBfRlhfSUdOMih1YylbMF0pCisjZGVmaW5lIFZLSV9VQ19HVUVTVF9DQ19OREVQKHVjKSAoKihVV29yZCAqKSAmVktJX1VDX01DX0ZQX0ZYX0lHTjIodWMpWzFdKQorI2RlZmluZSBWS0lfVUNfR1VFU1RfQ0NfREVQMSh1YykgKCooVVdvcmQgKikgJlZLSV9VQ19NQ19GUF9GWF9JR04yKHVjKVsyXSkKKyNkZWZpbmUgVktJX1VDX0dVRVNUX0NDX0RFUDIodWMpICgqKFVXb3JkICopICZWS0lfVUNfTUNfRlBfRlhfSUdOMih1YylbM10pCisjZGVmaW5lIFZLSV9VQ19HVUVTVF9SRkxBR1NfTkVHKHVjKSAoKihVV29yZCAqKSAmVktJX1VDX01DX0ZQX0ZYX0lHTjIodWMpWzRdKQorI2RlZmluZSBWS0lfVUNfR1VFU1RfUkZMQUdTX0NIRUNLU1VNKHVjKSBcCisgICAoKihVV29yZCAqKSAmVktJX1VDX01DX0ZQX0ZYX0lHTjIodWMpWzVdKQorI2RlZmluZSBWS0lfVUNfU0lHTk8odWMpICgqKFVXb3JkICopICZWS0lfVUNfTUNfRlBfRlhfSUdOMih1YylbNl0pCisjZGVmaW5lIFZLSV9VQ19TSUdOT19DT05TVCh1YykgKCooY29uc3QgVVdvcmQgKikgJlZLSV9VQ19NQ19GUF9GWF9JR04yKHVjKVs2XSkKKworI2Vsc2UKKyNlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyNlbmRpZgorCisjZGVmaW5lIHZraV9mcGNoaXBfc3RhdGUgZnBjaGlwX3N0YXRlCisKKyNkZWZpbmUgVktJX0dFVENPTlRFWFQgR0VUQ09OVEVYVAorI2RlZmluZSBWS0lfU0VUQ09OVEVYVCBTRVRDT05URVhUCisjZGVmaW5lIFZLSV9HRVRVU1RBQ0sgR0VUVVNUQUNLCisjZGVmaW5lIFZLSV9TRVRVU1RBQ0sgU0VUVVNUQUNLCisKKyNkZWZpbmUgVktJX1VDX1NJR01BU0sgVUNfU0lHTUFTSworI2RlZmluZSBWS0lfVUNfU1RBQ0sgVUNfU1RBQ0sKKyNkZWZpbmUgVktJX1VDX0NQVSBVQ19DUFUKKyNkZWZpbmUgVktJX1VDX0ZQVSBVQ19GUFUKKyNkZWZpbmUgVktJX1VDX0FMTCBVQ19BTEwKKworI2luY2x1ZGUgPHN5cy91aW8uaD4KKyNkZWZpbmUgdmtpX2lvdmVjIGlvdmVjCisKKworI2luY2x1ZGUgPHN5cy91bi5oPgorI2RlZmluZSB2a2lfc29ja2FkZHJfdW4gc29ja2FkZHJfdW4KKworCisjaWYgZGVmaW5lZChTT0xBUklTX1VVSURTWVNfU1lTQ0FMTCkKKyNpbmNsdWRlIDxzeXMvdXVpZC5oPgorI2RlZmluZSB2a2lfdXVpZCB1dWlkCisjZW5kaWYgLyogU09MQVJJU19VVUlEU1lTX1NZU0NBTEwgKi8KKworCisjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKyNkZWZpbmUgdmtpX3V0c25hbWUgdXRzbmFtZQorLyogQWRkIGFub3RoZXIgYWxpYXMgZm9yIHV0c25hbWUsIHVzZWQgaW4gc3lzd3JhcC1nZW5lcmljLmMuICovCisjZGVmaW5lIHZraV9uZXdfdXRzbmFtZSB1dHNuYW1lCisKKworI2luY2x1ZGUgPHN5cy92bV91c2FnZS5oPgorI2RlZmluZSB2a2lfdm11c2FnZV90IHZtdXNhZ2VfdAorCisKKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2RlZmluZSBWS0lfV0VYSVRFRCBXRVhJVEVECisjZGVmaW5lIFZLSV9XVFJBUFBFRCBXVFJBUFBFRAorCisjZGVmaW5lIFZLSV9XU1RPUEZMRyBXU1RPUEZMRworI2RlZmluZSBWS0lfV0NPTlRGTEcgV0NPTlRGTEcKKyNkZWZpbmUgVktJX1dDT1JFRkxHIFdDT1JFRkxHCisKKworI2luY2x1ZGUgPHN5cy96b25lLmg+CisjZGVmaW5lIFZLSV9aT05FX0FERF9EQVRBTElOSyBaT05FX0FERF9EQVRBTElOSworI2RlZmluZSBWS0lfWk9ORV9BVFRSX05BTUUgWk9ORV9BVFRSX05BTUUKKyNkZWZpbmUgVktJX1pPTkVfQk9PVCBaT05FX0JPT1QKKyNkZWZpbmUgVktJX1pPTkVfQ0hFQ0tfREFUQUxJTksgWk9ORV9DSEVDS19EQVRBTElOSworI2RlZmluZSBWS0lfWk9ORV9DUkVBVEUgWk9ORV9DUkVBVEUKKyNkZWZpbmUgVktJX1pPTkVfREVMX0RBVEFMSU5LIFpPTkVfREVMX0RBVEFMSU5LCisjZGVmaW5lIFZLSV9aT05FX0RFU1RST1kgWk9ORV9ERVNUUk9ZCisjZGVmaW5lIFZLSV9aT05FX0VOVEVSIFpPTkVfRU5URVIKKyNkZWZpbmUgVktJX1pPTkVfR0VUQVRUUiBaT05FX0dFVEFUVFIKKyNkZWZpbmUgVktJX1pPTkVfTElTVCBaT05FX0xJU1QKKyNkZWZpbmUgVktJX1pPTkVfTElTVF9EQVRBTElOSyBaT05FX0xJU1RfREFUQUxJTksKKyNkZWZpbmUgVktJX1pPTkVfTE9PS1VQIFpPTkVfTE9PS1VQCisjZGVmaW5lIFZLSV9aT05FX1NFVEFUVFIgWk9ORV9TRVRBVFRSCisjZGVmaW5lIFZLSV9aT05FX1NIVVRET1dOIFpPTkVfU0hVVERPV04KKyNpZiBkZWZpbmVkKFNPTEFSSVNfWk9ORV9ERUZVTkNUKQorI2RlZmluZSBWS0lfWk9ORV9HRVRBVFRSX0RFRlVOQ1QgWk9ORV9HRVRBVFRSX0RFRlVOQ1QKKyNkZWZpbmUgVktJX1pPTkVfTElTVF9ERUZVTkNUIFpPTkVfTElTVF9ERUZVTkNUCisjZW5kaWYgLyogU09MQVJJU19aT05FX0RFRlVOQ1QgKi8KKyNkZWZpbmUgVktJX1pPTkVOQU1FX01BWCBaT05FTkFNRV9NQVgKKyNkZWZpbmUgdmtpX3pvbmVfZGVmIHpvbmVfZGVmCisjZGVmaW5lIHZraV96b25laWRfdCB6b25laWRfdAorCisKKy8qIGZyb20gPHN5cy91Y3JlZC5oPiB3aGljaCBpcyBjb25zb2xpZGF0aW9uIHByaXZhdGUgKi8KKyNkZWZpbmUgVktJX1VDUkVEU1lTX1VDUkVER0VUIDAKKyNkZWZpbmUgVktJX1VDUkVEU1lTX0dFVFBFRVJVQ1JFRCAxCitzdHJ1Y3QgdWNyZWRfcyB7CisgICB2a2lfdWludDMyX3QgdWNfc2l6ZTsgICAgIC8qIFNpemUgb2YgdGhlIGZ1bGwgc3RydWN0dXJlICovCisgICB2a2lfdWludDMyX3QgdWNfY3JlZG9mZjsgIC8qIENyZWRlbnRpYWwgb2Zmc2V0ICovCisgICB2a2lfdWludDMyX3QgdWNfcHJpdm9mZjsgIC8qIFByaXZpbGVnZSBvZmZzZXQgKi8KKyAgIHZraV9waWRfdCAgICB1Y19waWQ7ICAgICAgLyogUHJvY2VzcyBpZCAqLworICAgdmtpX3VpbnQzMl90IHVjX2F1ZG9mZjsgICAvKiBBdWRpdCBpbmZvIG9mZnNldCAqLworICAgdmtpX3pvbmVpZF90IHVjX3pvbmVpZDsgICAvKiBab25lIGlkICovCisgICB2a2lfcHJvamlkX3QgdWNfcHJvamlkOyAgIC8qIFByb2plY3QgaWQgKi8KKyAgIHZraV91aW50MzJfdCB1Y19sYWJlbG9mZjsgLyogbGFiZWwgb2Zmc2V0ICovCit9OworCisKKy8qIGZyb20gc3lzL29sZF9wcm9jZnMuaCB3aGljaCBjbGFzaGVzIHdpdGggc3lzL3Byb2Nmcy5oICovCisKKyNkZWZpbmUgVktJX0VMRl9PTERfUFJfUENJTlZBTCAweDAwODAKKwordHlwZWRlZiBzdHJ1Y3QgdmtpX2VsZl9wcnBzaW5mbyB7CisgICBjaGFyCQlwcl9zdGF0ZTsJLyogbnVtZXJpYyBwcm9jZXNzIHN0YXRlIChzZWUgcHJfc25hbWUpICovCisgICBjaGFyCQlwcl9zbmFtZTsJLyogcHJpbnRhYmxlIGNoYXJhY3RlciByZXByZXNlbnRpbmcgcHJfc3RhdGUgKi8KKyAgIGNoYXIJCXByX3pvbWI7CS8qICE9MDogcHJvY2VzcyB0ZXJtaW5hdGVkIGJ1dCBub3Qgd2FpdGVkIGZvciAqLworICAgY2hhcgkJcHJfbmljZTsJLyogbmljZSBmb3IgY3B1IHVzYWdlICovCisgICB2a2lfdWludF90CXByX2ZsYWc7CS8qIHByb2Nlc3MgZmxhZ3MgKi8KKyAgIHZraV91aWRfdAlwcl91aWQ7CQkvKiByZWFsIHVzZXIgaWQgKi8KKyAgIHZraV9naWRfdAlwcl9naWQ7CQkvKiByZWFsIGdyb3VwIGlkICovCisgICB2a2lfcGlkX3QJcHJfcGlkOwkJLyogdW5pcXVlIHByb2Nlc3MgaWQgKi8KKyAgIHZraV9waWRfdAlwcl9wcGlkOwkvKiBwcm9jZXNzIGlkIG9mIHBhcmVudCAqLworICAgdmtpX3BpZF90CXByX3BncnA7CS8qIHBpZCBvZiBwcm9jZXNzIGdyb3VwIGxlYWRlciAqLworICAgdmtpX3BpZF90CXByX3NpZDsJCS8qIHNlc3Npb24gaWQgKi8KKyAgIHZraV9jYWRkcl90CXByX2FkZHI7CS8qIHBoeXNpY2FsIGFkZHJlc3Mgb2YgcHJvY2VzcyAqLworICAgdmtpX3NpemVfdAlwcl9zaXplOwkvKiBzaXplIG9mIHByb2Nlc3MgaW1hZ2UgaW4gcGFnZXMgKi8KKyAgIHZraV9zaXplX3QJcHJfcnNzaXplOwkvKiByZXNpZGVudCBzZXQgc2l6ZSBpbiBwYWdlcyAqLworICAgdmtpX2NhZGRyX3QJcHJfd2NoYW47CS8qIHdhaXQgYWRkciBmb3Igc2xlZXBpbmcgcHJvY2VzcyAqLworICAgdmtpX3RpbWVzcGVjX3QgcHJfc3RhcnQ7CS8qIHByb2Nlc3Mgc3RhcnQgdGltZSwgc2VjK25zZWMgc2luY2UgZXBvY2ggKi8KKyAgIHZraV90aW1lc3BlY190IHByX3RpbWU7CS8qIHVzcitzeXMgY3B1IHRpbWUgZm9yIHRoaXMgcHJvY2VzcyAqLworICAgaW50CQlwcl9wcmk7CQkvKiBwcmlvcml0eSwgaGlnaCB2YWx1ZSBpcyBoaWdoIHByaW9yaXR5ICovCisgICBjaGFyCQlwcl9vbGRwcmk7CS8qIHByZS1TVlI0LCBsb3cgdmFsdWUgaXMgaGlnaCBwcmlvcml0eSAqLworICAgY2hhcgkJcHJfY3B1OwkJLyogcHJlLVNWUjQsIGNwdSB1c2FnZSBmb3Igc2NoZWR1bGluZyAqLworICAgdmtpX29fZGV2X3QJcHJfb3R0eWRldjsJLyogc2hvcnQgdHR5IGRldmljZSBudW1iZXIgKi8KKyAgIHZraV9kZXZfdAlwcl9sdHR5ZGV2OwkvKiBjb250cm9sbGluZyB0dHkgZGV2aWNlIChQUk5PREVWIGlmIG5vbmUpICovCisgICBjaGFyCQlwcl9jbG5hbWVbOF07CS8qIHNjaGVkdWxpbmcgY2xhc3MgbmFtZSAqLworICAgY2hhcgkJcHJfZm5hbWVbMTZdOwkvKiBsYXN0IGNvbXBvbmVudCBvZiBleGVjZWQgcGF0aG5hbWUgKi8KKyAgIGNoYXIJCXByX3BzYXJnc1s4MF07CS8qIGluaXRpYWwgY2hhcmFjdGVycyBvZiBhcmcgbGlzdCAqLworICAgc2hvcnQJcHJfc3lzY2FsbDsJLyogc3lzdGVtIGNhbGwgbnVtYmVyIChpZiBpbiBzeXNjYWxsKSAqLworICAgc2hvcnQJcHJfZmlsbDsKKyAgIHZraV90aW1lc3BlY190IHByX2N0aW1lOwkvKiB1c3Irc3lzIGNwdSB0aW1lIGZvciByZWFwZWQgY2hpbGRyZW4gKi8KKyAgIHZraV9zaXplX3QJcHJfYnlzaXplOwkvKiBzaXplIG9mIHByb2Nlc3MgaW1hZ2UgaW4gYnl0ZXMgKi8KKyAgIHZraV9zaXplX3QJcHJfYnlyc3NpemU7CS8qIHJlc2lkZW50IHNldCBzaXplIGluIGJ5dGVzICovCisgICBpbnQJCXByX2FyZ2M7CS8qIGluaXRpYWwgYXJndW1lbnQgY291bnQgKi8KKyAgIGNoYXIJCSoqcHJfYXJndjsJLyogaW5pdGlhbCBhcmd1bWVudCB2ZWN0b3IgKi8KKyAgIGNoYXIJCSoqcHJfZW52cDsJLyogaW5pdGlhbCBlbnZpcm9ubWVudCB2ZWN0b3IgKi8KKyAgIGludAkJcHJfd3N0YXQ7CS8qIGlmIHpvbWJpZSwgdGhlIHdhaXQoKSBzdGF0dXMgKi8KKyAgICAgICAgICAgICAgICAJICAgICAgICAvKiBUaGUgZm9sbG93aW5nIHBlcmNlbnQgbnVtYmVycyBhcmUgMTYtYml0IGJpbmFyeSAqLworICAgICAgICAgICAgICAgIAkgICAgICAgIC8qIGZyYWN0aW9ucyBbMCAuLiAxXSB3aXRoIHRoZSBiaW5hcnkgcG9pbnQgdG8gdGhlICovCisgICAgICAgICAgICAgICAgCSAgICAgICAgLyogcmlnaHQgb2YgdGhlIGhpZ2gtb3JkZXIgYml0IChvbmUgPT0gMHg4MDAwKSAqLworICAgdXNob3J0X3QgCXByX3BjdGNwdTsJLyogJSBvZiByZWNlbnQgY3B1IHRpbWUsIG9uZSBvciBhbGwgbHdwcyAqLworICAgdXNob3J0X3QgCXByX3BjdG1lbTsJLyogJSBvZiBvZiBzeXN0ZW0gbWVtb3J5IHVzZWQgYnkgdGhlIHByb2Nlc3MgKi8KKyAgIHZraV91aWRfdAlwcl9ldWlkOwkvKiBlZmZlY3RpdmUgdXNlciBpZCAqLworICAgdmtpX2dpZF90CXByX2VnaWQ7CS8qIGVmZmVjdGl2ZSBncm91cCBpZCAqLworICAgdmtpX2lkX3QJcHJfYXNsd3BpZDsJLyogaGlzdG9yaWNhbDsgbm93IGFsd2F5cyB6ZXJvICovCisgICBjaGFyCQlwcl9kbW9kZWw7CS8qIGRhdGEgbW9kZWwgb2YgdGhlIHByb2Nlc3MgKi8KKyAgIGNoYXIJCXByX3BhZFszXTsKKyAgIGludAkJcHJfZmlsbGVyWzZdOwkvKiBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLworfSB2a2lfZWxmX3BycHNpbmZvX3Q7CisKK3R5cGVkZWYgc3RydWN0IHZraV9lbGZfcHJzdGF0dXMgeworICAgaW50CQlwcl9mbGFnczsJLyogRmxhZ3MgKHNlZSBiZWxvdykgKi8KKyAgIHNob3J0CXByX3doeTsJCS8qIFJlYXNvbiBmb3IgcHJvY2VzcyBzdG9wIChpZiBzdG9wcGVkKSAqLworICAgc2hvcnQJcHJfd2hhdDsJLyogTW9yZSBkZXRhaWxlZCByZWFzb24gKi8KKyAgIHZraV9zaWdpbmZvX3QgcHJfaW5mbzsJLyogSW5mbyBhc3NvY2lhdGVkIHdpdGggc2lnbmFsIG9yIGZhdWx0ICovCisgICBzaG9ydAlwcl9jdXJzaWc7CS8qIEN1cnJlbnQgc2lnbmFsICovCisgICB1c2hvcnRfdCAJcHJfbmx3cDsJLyogTnVtYmVyIG9mIGx3cHMgaW4gdGhlIHByb2Nlc3MgKi8KKyAgIHZraV9zaWdzZXRfdCBwcl9zaWdwZW5kOwkvKiBTZXQgb2Ygc2lnbmFscyBwZW5kaW5nIHRvIHRoZSBwcm9jZXNzICovCisgICB2a2lfc2lnc2V0X3QgcHJfc2lnaG9sZDsJLyogU2V0IG9mIHNpZ25hbHMgaGVsZCAoYmxvY2tlZCkgYnkgdGhlIGx3cCAqLworICAgc3RydWN0IHZraV9zaWdhbHRzdGFjayBwcl9hbHRzdGFjazsgLyogQWx0ZXJuYXRlIHNpZ25hbCBzdGFjayBpbmZvICovCisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHByX2FjdGlvbjsJLyogU2lnbmFsIGFjdGlvbiBmb3IgY3VycmVudCBzaWduYWwgKi8KKyAgIHZraV9waWRfdAlwcl9waWQ7CQkvKiBQcm9jZXNzIGlkICovCisgICB2a2lfcGlkX3QJcHJfcHBpZDsJLyogUGFyZW50IHByb2Nlc3MgaWQgKi8KKyAgIHZraV9waWRfdAlwcl9wZ3JwOwkvKiBQcm9jZXNzIGdyb3VwIGlkICovCisgICB2a2lfcGlkX3QJcHJfc2lkOwkJLyogU2Vzc2lvbiBpZCAqLworICAgdmtpX3RpbWVzcGVjX3QgcHJfdXRpbWU7CS8qIFByb2Nlc3MgdXNlciBjcHUgdGltZSAqLworICAgdmtpX3RpbWVzcGVjX3QgcHJfc3RpbWU7CS8qIFByb2Nlc3Mgc3lzdGVtIGNwdSB0aW1lICovCisgICB2a2lfdGltZXNwZWNfdCBwcl9jdXRpbWU7CS8qIFN1bSBvZiBjaGlsZHJlbidzIHVzZXIgdGltZXMgKi8KKyAgIHZraV90aW1lc3BlY190IHByX2NzdGltZTsJLyogU3VtIG9mIGNoaWxkcmVuJ3Mgc3lzdGVtIHRpbWVzICovCisgICBjaGFyCXByX2NsbmFtZVtQUkNMU1pdOyAJLyogU2NoZWR1bGluZyBjbGFzcyBuYW1lICovCisgICBzaG9ydAlwcl9zeXNjYWxsOwkvKiBTeXN0ZW0gY2FsbCBudW1iZXIgKGlmIGluIHN5c2NhbGwpICovCisgICBzaG9ydAlwcl9uc3lzYXJnOwkvKiBOdW1iZXIgb2YgYXJndW1lbnRzIHRvIHRoaXMgc3lzY2FsbCAqLworICAgbG9uZwlwcl9zeXNhcmdbUFJTWVNBUkdTXTsJLyogQXJndW1lbnRzIHRvIHRoaXMgc3lzY2FsbCAqLworICAgdmtpX2lkX3QJcHJfd2hvOwkJLyogU3BlY2lmaWMgbHdwIGlkZW50aWZpZXIgKi8KKyAgIHZraV9zaWdzZXRfdCBwcl9sd3BwZW5kOwkvKiBTZXQgb2Ygc2lnbmFscyBwZW5kaW5nIHRvIHRoZSBsd3AgKi8KKyAgIHN0cnVjdCB2a2lfdWNvbnRleHQgKnByX29sZGNvbnRleHQ7IC8qIEFkZHJlc3Mgb2YgcHJldmlvdXMgdWNvbnRleHQgKi8KKyAgIHZraV9jYWRkcl90CXByX2Jya2Jhc2U7CS8qIEFkZHJlc3Mgb2YgdGhlIHByb2Nlc3MgaGVhcCAqLworICAgdmtpX3NpemVfdAlwcl9icmtzaXplOwkvKiBTaXplIG9mIHRoZSBwcm9jZXNzIGhlYXAsIGluIGJ5dGVzICovCisgICB2a2lfY2FkZHJfdAlwcl9zdGtiYXNlOwkvKiBBZGRyZXNzIG9mIHRoZSBwcm9jZXNzIHN0YWNrICovCisgICB2a2lfc2l6ZV90CXByX3N0a3NpemU7CS8qIFNpemUgb2YgdGhlIHByb2Nlc3Mgc3RhY2ssIGluIGJ5dGVzICovCisgICBzaG9ydAlwcl9wcm9jZXNzb3I7CS8qIHByb2Nlc3NvciB3aGljaCBsYXN0IHJhbiB0aGlzIExXUCAqLworICAgc2hvcnQJcHJfYmluZDsJLyogcHJvY2Vzc29yIExXUCBib3VuZCB0byBvciBQQklORF9OT05FICovCisgICBsb25nCQlwcl9pbnN0cjsJLyogQ3VycmVudCBpbnN0cnVjdGlvbiAqLworICAgdmtpX3ByZ3JlZ3NldF90IHByX3JlZzsJLyogR2VuZXJhbCByZWdpc3RlcnMgKi8KK30gdmtpX2VsZl9wcnN0YXR1c190OworCisKKy8qIFNpZ25hbCBmcmFtZXMuICovCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCitzdHJ1Y3QgdmtpX3NpZ2ZyYW1lIHsKKyAgIC8qIEZpcnN0IGZvdXIgd29yZHMgbG9vayBsaWtlIGEgY2FsbCB0byBhIDMtYXJnIHg4NiBmdW5jdGlvbi4gKi8KKyAgIHZvaWQgKnJldHVybl9hZGRyOworICAgaW50IGExX3NpZ25vOworICAgdmtpX3NpZ2luZm9fdCAqYTJfc2lnaW5mbzsKKyAgIHZraV91Y29udGV4dF90ICphM191Y29udGV4dDsKKyAgIC8qIFNhdmVkIHVjb250ZXh0IGFuZCBzaWdpbmZvLiAqLworICAgdmtpX3Vjb250ZXh0X3QgdWNvbnRleHQ7CisgICB2a2lfc2lnaW5mb190IHNpZ2luZm87Cit9OworCisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorc3RydWN0IHZraV9zaWdmcmFtZSB7CisgICB2b2lkICpyZXR1cm5fYWRkcjsKKyAgIGxvbmcgYTFfc2lnbm87CisgICB2a2lfc2lnaW5mb190ICphMl9zaWdpbmZvOworICAgLyogU2F2ZWQgdWNvbnRleHQgYW5kIHNpZ2luZm8uICovCisgICB2a2lfdWNvbnRleHRfdCB1Y29udGV4dDsKKyAgIHZraV9zaWdpbmZvX3Qgc2lnaW5mbzsKK307CisKKyNlbHNlCisjZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjZW5kaWYKK3R5cGVkZWYgc3RydWN0IHZraV9zaWdmcmFtZSB2a2lfc2lnZnJhbWVfdDsKKworI2VuZGlmIC8vIF9fVktJX1NPTEFSSVNfSAorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIGVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2ktdGlsZWd4LWxpbnV4LmggYi9pbmNsdWRlL3ZraS92a2ktdGlsZWd4LWxpbnV4LmgKaW5kZXggOWIwYjk5Yi4uZDI0M2E4NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXRpbGVneC1saW51eC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS10aWxlZ3gtbGludXguaApAQCAtNyw3ICs3LDcgQEAKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgIGZyYW1ld29yay4KIAotICBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMyBUaWxlcmEgQ29ycC4KKyAgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTUgVGlsZXJhIENvcnAuCiAKICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXg4Ni1saW51eC5oIGIvaW5jbHVkZS92a2kvdmtpLXg4Ni1saW51eC5oCmluZGV4IGMzNGUwMjcuLjM0NWI4YTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS14ODYtbGludXguaAorKysgYi9pbmNsdWRlL3ZraS92a2kteDg2LWxpbnV4LmgKQEAgLTcsNyArNyw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICAgIGZyYW1ld29yay4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtOTA3LDYgKzkwNywxMyBAQAogI2RlZmluZQlWS0lfRU9WRVJGTE9XICAgIDc1ICAvKiBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQgZGF0YSB0eXBlICovCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gRnJvbSBsaW51eC0zLjE5LjAvaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2lvY3Rscy5oCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2RlZmluZSBWS0lfVElPQ0dTRVJJQUwgICAgIDB4NTQxRQorI2RlZmluZSBWS0lfVElPQ1NTRVJJQUwgICAgIDB4NTQxRgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEFuZCB0aGF0J3MgaXQhCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXhlbi1kb21jdGwuaCBiL2luY2x1ZGUvdmtpL3ZraS14ZW4tZG9tY3RsLmgKaW5kZXggYjUwMzdmMi4uZDM4MWVlNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXhlbi1kb21jdGwuaAorKysgYi9pbmNsdWRlL3ZraS92a2kteGVuLWRvbWN0bC5oCkBAIC0xLDMgKzEsMzAgQEAKKy8qCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KKyAgIGZyYW1ld29yay4KKworICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgQ2l0cml4CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKworLyogQ29udHJpYnV0ZWQgYnkgQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKyAgIGFuZCBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPiAqLworCiAjaWZuZGVmIF9fVktJX1hFTl9ET01DVExfSAogI2RlZmluZSBfX1ZLSV9YRU5fRE9NQ1RMX0gKIApAQCAtNSw5ICszMiwxMCBAQAogICogVGhlIGRvbWN0bCBpbnRlcmZhY2UgaXMgdmVyc2lvbmVkIHZpYSB0aGUgaW50ZXJmYWNlX3ZlcnNpb24KICAqIGZpZWxkLiBUaGlzIHN0cnVjdHVyZXMgaW4gdGhpcyBoZWFkZXIgc3VwcG9ydHMgZG9tY3RsIGludGVyZmFjZXM6CiAgKgotICogLSAwMDAwMDAwNzogWGVuIDQuMQotICogLSAwMDAwMDAwODogWGVuIDQuMgotICogLSAwMDAwMDAwOTogWGVuIDQuMworICogLSAweDAwMDAwMDA3OiBYZW4gNC4xCisgKiAtIDB4MDAwMDAwMDg6IFhlbiA0LjIKKyAqIC0gMHgwMDAwMDAwOTogWGVuIDQuMyAmIDQuNAorICogLSAweDAwMDAwMDBhOiBYZW4gNC41CiAgKgogICogV2hlbiBhZGRpbmcgYSBuZXcgc3Vib3AgYmUgc3VyZSB0byBpbmNsdWRlIHRoZSB2YXJpYW50cyB1c2VkIGJ5IGFsbAogICogb2YgdGhlIGFib3ZlLCBib3RoIGhlcmUgYW5kIGluIHN5c3dyYXAteGVuLmMKQEAgLTg2LDYgKzExNCw4IEBACiAjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX2dldG5vZGVhZmZpbml0eSAgICAgICAgICAgICAgIDY5CiAjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX3NldF9tYXhfZXZ0Y2huICAgICAgICAgICAgICAgIDcwCiAjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX2NhY2hlZmx1c2ggICAgICAgICAgICAgICAgICAgIDcxCisjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX2dldF92Y3B1X21zcnMgICAgICAgICAgICAgICAgIDcyCisjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX3NldF92Y3B1X21zcnMgICAgICAgICAgICAgICAgIDczCiAjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX2dkYnN4X2d1ZXN0bWVtaW8gICAgICAgICAgICAxMDAwCiAjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX2dkYnN4X3BhdXNldmNwdSAgICAgICAgICAgICAxMDAxCiAjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX2dkYnN4X3VucGF1c2V2Y3B1ICAgICAgICAgICAxMDAyCkBAIC0xNTYsNiArMTg2LDggQEAKIHR5cGVkZWYgc3RydWN0IHZraV94ZW5fZG9tY3RsX2dldGRvbWFpbmluZm9fMDAwMDAwMDkgdmtpX3hlbl9kb21jdGxfZ2V0ZG9tYWluaW5mb18wMDAwMDAwOV90OwogREVGSU5FX1ZLSV9YRU5fR1VFU1RfSEFORExFKHZraV94ZW5fZG9tY3RsX2dldGRvbWFpbmluZm9fMDAwMDAwMDlfdCk7CiAKKy8qIHZraV94ZW5fZG9tY3RsX2dldGRvbWFpbmluZm9fMDAwMDAwMGEgaXMgdGhlIHNhbWUgYXMgMDAwMDAwMDkgKi8KKwogLyogR2V0L3NldCB0aGUgTlVNQSBub2RlKHMpIHdpdGggd2hpY2ggdGhlIGd1ZXN0IGhhcyBhZmZpbml0eSB3aXRoLiAqLwogLyogWEVOX0RPTUNUTF9zZXRub2RlYWZmaW5pdHkgKi8KIC8qIFhFTl9ET01DVExfZ2V0bm9kZWFmZmluaXR5ICovCkBAIC0xNzAsMTEgKzIwMiwyMCBAQAogICAgIFZLSV9YRU5fR1VFU1RfSEFORExFXzY0KHZraV94ZW5fcGZuX3QpIGFycmF5OyAvKiBJTi9PVVQgKi8KIH07CiAKLXN0cnVjdCB2a2lfeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHkgeworc3RydWN0IHZraV94ZW5fZG9tY3RsX3ZjcHVhZmZpbml0eV8wMDAwMDAwOSB7CiAgICAgdmtpX3VpbnQzMl90ICB2Y3B1OyAgICAgICAgICAgICAgLyogSU4gKi8KICAgICBzdHJ1Y3QgdmtpX3hlbmN0bF9iaXRtYXAgY3B1bWFwOyAvKiBJTi9PVVQgKi8KIH07CiAKK3N0cnVjdCB2a2lfeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHlfMDAwMDAwMGEgeworICAgIHZraV91aW50MzJfdCAgdmNwdTsgICAgICAgICAgICAgIC8qIElOICovCisjZGVmaW5lIFZLSV9YRU5fVkNQVUFGRklOSVRZX0hBUkQgICAoMVU8PDApCisjZGVmaW5lIFZLSV9YRU5fVkNQVUFGRklOSVRZX1NPRlQgICAoMVU8PDEpCisgICAgdmtpX3VpbnQzMl90ICBmbGFnczsgICAgICAgICAgICAgIC8qIElOICovCisgICAgc3RydWN0IHZraV94ZW5jdGxfYml0bWFwIGNwdW1hcF9oYXJkOyAvKiBJTi9PVVQgKi8KKyAgICBzdHJ1Y3QgdmtpX3hlbmN0bF9iaXRtYXAgY3B1bWFwX3NvZnQ7IC8qIElOL09VVCAqLworfTsKKwogc3RydWN0IHZraV94ZW5fZG9tY3RsX3NoYWRvd19vcF9zdGF0cyB7CiAgICAgdmtpX3VpbnQzMl90IGZhdWx0X2NvdW50OwogICAgIHZraV91aW50MzJfdCBkaXJ0eV9jb3VudDsKQEAgLTIzNiw2ICsyNzcsNyBAQAogI2RlZmluZSBWS0lfWEVOX1NDSEVEVUxFUl9DUkVESVQgICA1CiAjZGVmaW5lIFZLSV9YRU5fU0NIRURVTEVSX0NSRURJVDIgIDYKICNkZWZpbmUgVktJX1hFTl9TQ0hFRFVMRVJfQVJJTkM2NTMgNworI2RlZmluZSBWS0lfWEVOX1NDSEVEVUxFUl9SVERTICAgICA4CiAgICAgdmtpX3VpbnQzMl90IGNtZDsgICAgICAgLyogVktJX1hFTl9ET01DVExfU0NIRURPUF8qICovCiAjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyAwCiAjZGVmaW5lIFZLSV9YRU5fRE9NQ1RMX1NDSEVET1BfZ2V0aW5mbyAxCkBAIC0yNTQsNiArMjk2LDEwIEBACiAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdDIgewogICAgICAgICAgICAgdmtpX3VpbnQxNl90IHdlaWdodDsKICAgICAgICAgfSBjcmVkaXQyOworICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9ydGRzIHsKKyAgICAgICAgICAgIHZraV91aW50MzJfdCBwZXJpb2Q7CisgICAgICAgICAgICB2a2lfdWludDMyX3QgYnVkZ2V0OworICAgICAgICB9IHJ0ZHM7CiAgICAgfSB1OwogfTsKIApAQCAtMjYxLDYgKzMwNywxOCBAQAogICAgIHZraV91aW50MzJfdCBtYXg7ICAgICAgICAgICAvKiBtYXhpbXVtIG51bWJlciBvZiB2Y3B1cyAqLwogfTsKIAorLyogWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbiAqLworc3RydWN0IHZraV94ZW5fZG9tY3RsX2lycV9wZXJtaXNzaW9uIHsKKyAgICB2a2lfdWludDhfdCBwaXJxOworICAgIHZraV91aW50OF90IGFsbG93X2FjY2VzczsgICAgLyogZmxhZyB0byBzcGVjaWZ5IGVuYWJsZS9kaXNhYmxlIG9mIElSUSBhY2Nlc3MgKi8KK307CisKK3N0cnVjdCB2a2lfeGVuX2RvbWN0bF9pb21lbV9wZXJtaXNzaW9uIHsKKyAgICB2a2lfeGVuX3VpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfbWZuOy8qIGZpcnN0IHBhZ2UgKHBoeXNpY2FsIHBhZ2UgbnVtYmVyKSBpbiByYW5nZSAqLworICAgIHZraV94ZW5fdWludDY0X2FsaWduZWRfdCBucl9tZm5zOyAgLyogbnVtYmVyIG9mIHBhZ2VzIGluIHJhbmdlICg+MCkgKi8KKyAgICB2a2lfdWludDhfdCAgYWxsb3dfYWNjZXNzOyAgICAgLyogYWxsb3cgKCEwKSBvciBkZW55ICgwKSBhY2Nlc3MgdG8gcmFuZ2U/ICovCit9OworCiBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfaW9wb3J0X3Blcm1pc3Npb24gewogICAgIHZraV91aW50MzJfdCBmaXJzdF9wb3J0OyAgICAgICAgICAgICAgLyogSU4gKi8KICAgICB2a2lfdWludDMyX3QgbnJfcG9ydHM7ICAgICAgICAgICAgICAgIC8qIElOICovCkBAIC0zMTMsNiArMzcxLDQ5IEBACiAgICAgdmtpX3hlbl9ndWVzdF90c2NfaW5mb190IGluZm87IC8qIElOICovCiB9OwogCitzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfcGluX21lbV9jYWNoZWF0dHIgeworICAgIHZraV94ZW5fdWludDY0X2FsaWduZWRfdCBzdGFydCwgZW5kOyAvKiBJTiAqLworICAgIHZraV91aW50MzJfdCB0eXBlOyAgICAgICAgICAgICAgICAgICAvKiBJTiAqLworfTsKKworc3RydWN0IHZraV94ZW5fZG9tY3RsX2V4dF92Y3B1Y29udGV4dF8wMDAwMDAwOCB7CisgICAgdmtpX3VpbnQzMl90ICAgICAgICAgICAgIHZjcHU7IC8qIElOICovCisKKyAgICAvKiBJTiAgZm9yIFhFTl9ET01DVExfc2V0X2V4dF92Y3B1Y29udGV4dAorICAgICAqIE9VVCBmb3IgWEVOX0RPTUNUTF9nZXRfZXh0X3ZjcHVjb250ZXh0ICovCisgICAgdmtpX3VpbnQzMl90ICAgICAgICAgICAgIHNpemU7CisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgIHZraV94ZW5fdWludDY0X2FsaWduZWRfdCBzeXNjYWxsMzJfY2FsbGJhY2tfZWlwOworICAgIHZraV94ZW5fdWludDY0X2FsaWduZWRfdCBzeXNlbnRlcl9jYWxsYmFja19laXA7CisgICAgdmtpX3VpbnQxNl90ICAgICAgICAgICAgIHN5c2NhbGwzMl9jYWxsYmFja19jczsKKyAgICB2a2lfdWludDE2X3QgICAgICAgICAgICAgc3lzZW50ZXJfY2FsbGJhY2tfY3M7CisgICAgdmtpX3VpbnQ4X3QgICAgICAgICAgICAgIHN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHM7CisgICAgdmtpX3VpbnQ4X3QgICAgICAgICAgICAgIHN5c2VudGVyX2Rpc2FibGVzX2V2ZW50czsKKyAgICB2a2lfeGVuX3VpbnQ2NF9hbGlnbmVkX3QgbWNnX2NhcDsKKyNlbmRpZgorfTsKKworc3RydWN0IHZraV94ZW5fZG9tY3RsX2V4dF92Y3B1Y29udGV4dF8wMDAwMDAwOSB7CisgICAgdmtpX3VpbnQzMl90ICAgICAgICAgICAgIHZjcHU7IC8qIElOICovCisKKyAgICAvKiBJTiAgZm9yIFhFTl9ET01DVExfc2V0X2V4dF92Y3B1Y29udGV4dAorICAgICAqIE9VVCBmb3IgWEVOX0RPTUNUTF9nZXRfZXh0X3ZjcHVjb250ZXh0ICovCisgICAgdmtpX3VpbnQzMl90ICAgICAgICAgICAgIHNpemU7CisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgIHZraV94ZW5fdWludDY0X2FsaWduZWRfdCBzeXNjYWxsMzJfY2FsbGJhY2tfZWlwOworICAgIHZraV94ZW5fdWludDY0X2FsaWduZWRfdCBzeXNlbnRlcl9jYWxsYmFja19laXA7CisgICAgdmtpX3VpbnQxNl90ICAgICAgICAgICAgIHN5c2NhbGwzMl9jYWxsYmFja19jczsKKyAgICB2a2lfdWludDE2X3QgICAgICAgICAgICAgc3lzZW50ZXJfY2FsbGJhY2tfY3M7CisgICAgdmtpX3VpbnQ4X3QgICAgICAgICAgICAgIHN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHM7CisgICAgdmtpX3VpbnQ4X3QgICAgICAgICAgICAgIHN5c2VudGVyX2Rpc2FibGVzX2V2ZW50czsKKyAgICB2a2lfdWludDY0X3QgICAgICAgICAgICAgY2FwczsKKyAgICB2a2lfdWludDY0X3QgICAgICAgICAgICAgbWNpX2N0bDJfYmFuazA7CisgICAgdmtpX3VpbnQ2NF90ICAgICAgICAgICAgIG1jaV9jdGwyX2JhbmsxOworI2VuZGlmCit9OworCisvKiB2a2lfeGVuX2RvbWN0bF9leHRfdmNwdWNvbnRleHRfMDAwMDAwMGEgaXMgdGhlIHNhbWUgYXMgMDAwMDAwMDkgKi8KKwogc3RydWN0IHZraV94ZW5fZG9tY3RsX3ZjcHVleHRzdGF0ZSB7CiAgICAgdmtpX3VpbnQzMl90ICAgICAgICAgdmNwdTsKICAgICB2a2lfeGVuX3VpbnQ2NF9hbGlnbmVkX3QgICAgICAgICB4ZmVhdHVyZV9tYXNrOwpAQCAtMzI0LDYgKzQyNSwxMCBAQAogICAgIHZraV91aW50MzJfdCBzaXplOwogfTsKIAorc3RydWN0IHZraV94ZW5fZG9tY3RsX2Fzc2lnbl9kZXZpY2UgeworICAgIHZraV91aW50MzJfdCAgbWFjaGluZV9zYmRmOyAgIC8qIG1hY2hpbmUgUENJIElEIG9mIGFzc2lnbmVkIGRldmljZSAqLworfTsKKwogc3RydWN0IHZraV94ZW5fZG9tY3RsX2RlYnVnX29wIHsKICAgICB2a2lfdWludDMyX3Qgb3A7ICAgLyogSU4gKi8KICAgICB2a2lfdWludDMyX3QgdmNwdTsgLyogSU4gKi8KQEAgLTM0OSw2ICs0NTQsMjAgQEAKICAgICB2a2lfeGVuX3Bmbl90IHN0YXJ0X3BmbiwgbnJfcGZuczsKIH07CiAKK3N0cnVjdCB2a2lfeGVuX2RvbWN0bF92Y3B1X21zciB7CisgICAgdmtpX3VpbnQzMl90ICAgICAgICAgICAgIGluZGV4OworICAgIHZraV91aW50MzJfdCAgICAgICAgICAgICByZXNlcnZlZDsKKyAgICB2a2lfeGVuX3VpbnQ2NF9hbGlnbmVkX3QgdmFsdWU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfdmNwdV9tc3IgdmtpX3hlbl9kb21jdGxfdmNwdV9tc3JfdDsKK0RFRklORV9WS0lfWEVOX0dVRVNUX0hBTkRMRSh2a2lfeGVuX2RvbWN0bF92Y3B1X21zcl90KTsKKworc3RydWN0IHZraV94ZW5fZG9tY3RsX3ZjcHVfbXNycyB7CisgICAgdmtpX3VpbnQzMl90IHZjcHU7CisgICAgdmtpX3VpbnQzMl90IG1zcl9jb3VudDsKKyAgICBWS0lfWEVOX0dVRVNUX0hBTkRMRV82NCh2a2lfeGVuX2RvbWN0bF92Y3B1X21zcl90KSBtc3JzOworfTsKKwogc3RydWN0IHZraV94ZW5fZG9tY3RsIHsKICAgICB2a2lfdWludDMyX3QgY21kOwogICAgIHZraV91aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogWEVOX0RPTUNUTF9JTlRFUkZBQ0VfVkVSU0lPTiAqLwpAQCAtMzYzLDcgKzQ4Miw4IEBACiAgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZG9tY3RsX2dldHBhZ2VmcmFtZWluZm8yIGdldHBhZ2VmcmFtZWluZm8yOwogICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfZ2V0cGFnZWZyYW1laW5mbzMgZ2V0cGFnZWZyYW1laW5mbzM7CiAgICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF9ub2RlYWZmaW5pdHkgICAgICBub2RlYWZmaW5pdHk7Ci0gICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHkgICAgICB2Y3B1YWZmaW5pdHk7CisgICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF92Y3B1YWZmaW5pdHlfMDAwMDAwMDkgdmNwdWFmZmluaXR5XzAwMDAwMDA5OworICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfdmNwdWFmZmluaXR5XzAwMDAwMDBhIHZjcHVhZmZpbml0eV8wMDAwMDAwYTsKICAgICAgICAgc3RydWN0IHZraV94ZW5fZG9tY3RsX3NoYWRvd19vcCAgICAgICAgIHNoYWRvd19vcDsKICAgICAgICAgc3RydWN0IHZraV94ZW5fZG9tY3RsX21heF9tZW0gICAgICAgICAgIG1heF9tZW07CiAgICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF92Y3B1Y29udGV4dCAgICAgICB2Y3B1Y29udGV4dDsKQEAgLTM3Miw4ICs0OTIsOCBAQAogICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfc2NoZWR1bGVyX29wICAgICAgc2NoZWR1bGVyX29wOwogICAgICAgICAvL3N0cnVjdCB2a2lfeGVuX2RvbWN0bF9zZXRkb21haW5oYW5kbGUgICBzZXRkb21haW5oYW5kbGU7CiAgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZG9tY3RsX3NldGRlYnVnZ2luZyAgICAgIHNldGRlYnVnZ2luZzsKLSAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9kb21jdGxfaXJxX3Blcm1pc3Npb24gICAgaXJxX3Blcm1pc3Npb247Ci0gICAgICAgIC8vc3RydWN0IHZraV94ZW5fZG9tY3RsX2lvbWVtX3Blcm1pc3Npb24gIGlvbWVtX3Blcm1pc3Npb247CisgICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF9pcnFfcGVybWlzc2lvbiAgICBpcnFfcGVybWlzc2lvbjsKKyAgICAgICAgc3RydWN0IHZraV94ZW5fZG9tY3RsX2lvbWVtX3Blcm1pc3Npb24gIGlvbWVtX3Blcm1pc3Npb247CiAgICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF9pb3BvcnRfcGVybWlzc2lvbiBpb3BvcnRfcGVybWlzc2lvbjsKICAgICAgICAgc3RydWN0IHZraV94ZW5fZG9tY3RsX2h5cGVyY2FsbF9pbml0ICAgIGh5cGVyY2FsbF9pbml0OwogICAgICAgICAvL3N0cnVjdCB2a2lfeGVuX2RvbWN0bF9hcmNoX3NldHVwICAgICAgICBhcmNoX3NldHVwOwpAQCAtMzg2LDEyICs1MDYsMTMgQEAKICAgICAgICAgc3RydWN0IHZraV94ZW5fZG9tY3RsX2FkZHJlc3Nfc2l6ZSAgICAgIGFkZHJlc3Nfc2l6ZTsKICAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9kb21jdGxfc2VuZHRyaWdnZXIgICAgICAgc2VuZHRyaWdnZXI7CiAgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZG9tY3RsX2dldF9kZXZpY2VfZ3JvdXAgIGdldF9kZXZpY2VfZ3JvdXA7Ci0gICAgICAgIC8vc3RydWN0IHZraV94ZW5fZG9tY3RsX2Fzc2lnbl9kZXZpY2UgICAgIGFzc2lnbl9kZXZpY2U7CisgICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF9hc3NpZ25fZGV2aWNlICAgICBhc3NpZ25fZGV2aWNlOwogICAgICAgICAvL3N0cnVjdCB2a2lfeGVuX2RvbWN0bF9iaW5kX3B0X2lycSAgICAgICBiaW5kX3B0X2lycTsKICAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9kb21jdGxfbWVtb3J5X21hcHBpbmcgICAgbWVtb3J5X21hcHBpbmc7CiAgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZG9tY3RsX2lvcG9ydF9tYXBwaW5nICAgIGlvcG9ydF9tYXBwaW5nOwotICAgICAgICAvL3N0cnVjdCB2a2lfeGVuX2RvbWN0bF9waW5fbWVtX2NhY2hlYXR0ciBwaW5fbWVtX2NhY2hlYXR0cjsKLSAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9kb21jdGxfZXh0X3ZjcHVjb250ZXh0ICAgZXh0X3ZjcHVjb250ZXh0OworICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfcGluX21lbV9jYWNoZWF0dHIgcGluX21lbV9jYWNoZWF0dHI7CisgICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF9leHRfdmNwdWNvbnRleHRfMDAwMDAwMDggZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA4OworICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfZXh0X3ZjcHVjb250ZXh0XzAwMDAwMDA5IGV4dF92Y3B1Y29udGV4dF8wMDAwMDAwOTsKICAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9kb21jdGxfc2V0X3RhcmdldCAgICAgICAgc2V0X3RhcmdldDsKICAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9kb21jdGxfc3Vic2NyaWJlICAgICAgICAgc3Vic2NyaWJlOwogICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfZGVidWdfb3AgICAgICAgICAgZGVidWdfb3A7CkBAIC00MDAsNiArNTIxLDcgQEAKICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCiAgICAgICAgIHN0cnVjdCB2a2lfeGVuX2RvbWN0bF9jcHVpZCAgICAgICAgICAgICBjcHVpZDsKICAgICAgICAgc3RydWN0IHZraV94ZW5fZG9tY3RsX3ZjcHVleHRzdGF0ZSAgICAgIHZjcHVleHRzdGF0ZTsKKyAgICAgICAgc3RydWN0IHZraV94ZW5fZG9tY3RsX3ZjcHVfbXNycyAgICAgICAgIHZjcHVfbXNyczsKICNlbmRpZgogICAgICAgICBzdHJ1Y3QgdmtpX3hlbl9kb21jdGxfc2V0X2FjY2Vzc19yZXF1aXJlZCBhY2Nlc3NfcmVxdWlyZWQ7CiAgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZG9tY3RsX2F1ZGl0X3AybSAgICAgICAgIGF1ZGl0X3AybTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS14ZW4tZXZ0Y2huLmggYi9pbmNsdWRlL3ZraS92a2kteGVuLWV2dGNobi5oCmluZGV4IGU3YTMzMTAuLmQ4ZmY2MDAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS14ZW4tZXZ0Y2huLmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLXhlbi1ldnRjaG4uaApAQCAtMSwzICsxLDMwIEBACisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IENpdHJpeAorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKy8qIENvbnRyaWJ1dGVkIGJ5IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CisgICBhbmQgSWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4gKi8KKwogI2lmbmRlZiBfX1ZLSV9YRU5fRVZUQ0hOX0gKICNkZWZpbmUgX19WS0lfWEVOX0VWVENITl9ICiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS14ZW4tZ250dGFiLmggYi9pbmNsdWRlL3ZraS92a2kteGVuLWdudHRhYi5oCmluZGV4IDk3Y2E2ZDguLjExYzQyMTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS14ZW4tZ250dGFiLmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLXhlbi1nbnR0YWIuaApAQCAtMSwzICsxLDMwIEBACisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IENpdHJpeAorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKy8qIENvbnRyaWJ1dGVkIGJ5IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CisgICBhbmQgSWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4gKi8KKwogI2lmbmRlZiBfX1ZLSV9YRU5fR05UVEFCX0gKICNkZWZpbmUgX19WS0lfWEVOX0dOVFRBQl9ICiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmtpL3ZraS14ZW4taHZtLmggYi9pbmNsdWRlL3ZraS92a2kteGVuLWh2bS5oCmluZGV4IGYyNmUwMzkuLjA2NjRiNzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS14ZW4taHZtLmgKKysrIGIvaW5jbHVkZS92a2kvdmtpLXhlbi1odm0uaApAQCAtMSwzICsxLDMwIEBACisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IENpdHJpeAorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKy8qIENvbnRyaWJ1dGVkIGJ5IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CisgICBhbmQgSWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4gKi8KKwogI2lmbmRlZiBfX1ZLSV9YRU5fSFZNX0gKICNkZWZpbmUgX19WS0lfWEVOX0hWTV9ICiAKQEAgLTEwLDYgKzM3LDE0IEBACiAgICAgdmtpX3VpbnQ2NF90IHZhbHVlOyAgICAvKiBJTi9PVVQgKi8KIH07CiAKKyNkZWZpbmUgVktJX1hFTl9IVk1PUF9zZXRfcGNpX2ludHhfbGV2ZWwgIDIKK3N0cnVjdCB2a2lfeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgeworICAgIHZraV94ZW5fZG9taWRfdCAgZG9taWQ7CisgICAgdmtpX3VpbnQ4X3QgIGRvbWFpbiwgYnVzLCBkZXZpY2UsIGludHg7CisgICAgdmtpX3VpbnQ4X3QgIGxldmVsOworfTsKK3R5cGVkZWYgc3RydWN0IHZraV94ZW5faHZtX3NldF9wY2lfaW50eF9sZXZlbCB2a2lfeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWxfdDsKKwogI2RlZmluZSBWS0lfWEVOX0hWTU9QX3NldF9pc2FfaXJxX2xldmVsIDMKIHN0cnVjdCB2a2lfeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZlbCB7CiAgICAgdmtpX3hlbl9kb21pZF90ICBkb21pZDsKQEAgLTI2LDYgKzYxLDE1IEBACiB9OwogdHlwZWRlZiBzdHJ1Y3QgdmtpX3hlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlIHZraV94ZW5faHZtX3NldF9wY2lfbGlua19yb3V0ZV90OwogCisjZGVmaW5lIFZLSV9YRU5fSFZNT1BfdHJhY2tfZGlydHlfdnJhbSA2CitzdHJ1Y3QgdmtpX3hlbl9odm1fdHJhY2tfZGlydHlfdnJhbSB7CisgICAgdmtpX3hlbl9kb21pZF90ICBkb21pZDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOICAqLworICAgIHZraV94ZW5fdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47ICAgICAgICAgICAgICAvKiBJTiAgKi8KKyAgICB2a2lfeGVuX3VpbnQ2NF9hbGlnbmVkX3QgbnI7ICAgICAgICAgICAgICAgICAgICAgLyogSU4gICovCisgICAgVktJX1hFTl9HVUVTVF9IQU5ETEVfNjQodmtpX3VpbnQ4KSBkaXJ0eV9iaXRtYXA7IC8qIE9VVCAqLworfTsKK3R5cGVkZWYgc3RydWN0IHZraV94ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW0gdmtpX3hlbl9odm1fdHJhY2tfZGlydHlfdnJhbV90OworCiAjZGVmaW5lIFZLSV9YRU5fSFZNT1Bfc2V0X21lbV90eXBlIDgKIHN0cnVjdCB2a2lfeGVuX2h2bV9zZXRfbWVtX3R5cGUgewogICAgIHZraV94ZW5fZG9taWRfdCAgZG9taWQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2kteGVuLW1lbW9yeS5oIGIvaW5jbHVkZS92a2kvdmtpLXhlbi1tZW1vcnkuaAppbmRleCAyNjkwYzYwLi5jMzA3NjkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2kteGVuLW1lbW9yeS5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS14ZW4tbWVtb3J5LmgKQEAgLTEsMyArMSwzMCBAQAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBDaXRyaXgKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisvKiBDb250cmlidXRlZCBieSBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorICAgYW5kIElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+ICovCisKICNpZm5kZWYgX19WS0lfWEVOX01FTU9SWV9ICiAjZGVmaW5lIF9fVktJX1hFTl9NRU1PUllfSAogCkBAIC0yMiw2ICs0OSw3IEBACiAjZGVmaW5lIFZLSV9YRU5NRU1fZ2V0X3NoYXJpbmdfc2hhcmVkX3BhZ2VzICAgMTkKICNkZWZpbmUgVktJX1hFTk1FTV9hY2Nlc3Nfb3AgICAgICAgICAgICAgICAgICAyMQogI2RlZmluZSBWS0lfWEVOTUVNX2NsYWltX3BhZ2VzICAgICAgICAgICAgICAgIDI0CisjZGVmaW5lIFZLSV9YRU5NRU1fbWFjaHBoeXNfY29tcGF0X21mbl9saXN0ICAgMjUKIAogc3RydWN0IHZraV94ZW5fbWVtb3J5X21hcCB7CiAgICAgdW5zaWduZWQgaW50IG5yX2VudHJpZXM7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2kteGVuLW1tdWV4dC5oIGIvaW5jbHVkZS92a2kvdmtpLXhlbi1tbXVleHQuaAppbmRleCBlNmYwNmY3Li41ZTc1OGIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2kteGVuLW1tdWV4dC5oCisrKyBiL2luY2x1ZGUvdmtpL3ZraS14ZW4tbW11ZXh0LmgKQEAgLTEsMyArMSwzMCBAQAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBDaXRyaXgKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisvKiBDb250cmlidXRlZCBieSBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorICAgYW5kIElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+ICovCisKICNpZm5kZWYgX19WS0lfWEVOX01NVUVYVF9ICiAjZGVmaW5lIF9fVktJX1hFTl9NTVVFWFRfSAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZraS92a2kteGVuLXBoeXNkZXYuaCBiL2luY2x1ZGUvdmtpL3ZraS14ZW4tcGh5c2Rldi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMTExYTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3ZraS92a2kteGVuLXBoeXNkZXYuaApAQCAtMCwwICsxLDY3IEBACisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IENpdHJpeAorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKy8qIENvbnRyaWJ1dGVkIGJ5IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CisgICBhbmQgSWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4gKi8KKworI2lmbmRlZiBfX1ZLSV9YRU5fUEhZU0RFVl9ICisjZGVmaW5lIF9fVktJX1hFTl9QSFlTREVWX0gKKworI2RlZmluZSBWS0lfWEVOX01BUF9QSVJRX1RZUEVfTVNJICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIFZLSV9YRU5fTUFQX1BJUlFfVFlQRV9HU0kgICAgICAgICAgICAgICAweDEKKyNkZWZpbmUgVktJX1hFTl9NQVBfUElSUV9UWVBFX1VOS05PV04gICAgICAgICAgIDB4MgorI2RlZmluZSBWS0lfWEVOX01BUF9QSVJRX1RZUEVfTVNJX1NFRyAgICAgICAgICAgMHgzCisjZGVmaW5lIFZLSV9YRU5fTUFQX1BJUlFfVFlQRV9NVUxUSV9NU0kgICAgICAgICAweDQKKworI2RlZmluZSBWS0lfWEVOX1BIWVNERVZPUF9tYXBfcGlycSAgICAgICAgICAgICAgIDEzCitzdHJ1Y3QgdmtpX3hlbl9waHlzZGV2X21hcF9waXJxIHsKKyAgICB2a2lfeGVuX2RvbWlkX3QgZG9taWQ7CisgICAgLyogSU4gKi8KKyAgICBpbnQgdHlwZTsKKyAgICAvKiBJTiAoaWdub3JlZCBmb3IgLi4uX01VTFRJX01TSSkgKi8KKyAgICBpbnQgaW5kZXg7CisgICAgLyogSU4gb3IgT1VUICovCisgICAgaW50IHBpcnE7CisgICAgLyogSU4gLSBoaWdoIDE2IGJpdHMgaG9sZCBzZWdtZW50IGZvciAuLi5fTVNJX1NFRyBhbmQgLi4uX01VTFRJX01TSSAqLworICAgIGludCBidXM7CisgICAgLyogSU4gKi8KKyAgICBpbnQgZGV2Zm47CisgICAgLyogSU4gKGFsc28gT1VUIGZvciAuLi5fTVVMVElfTVNJKSAqLworICAgIGludCBlbnRyeV9ucjsKKyAgICAvKiBJTiAqLworICAgIHZraV91aW50NjRfdCB0YWJsZV9iYXNlOworfTsKKworI2RlZmluZSBWS0lfWEVOX1BIWVNERVZPUF91bm1hcF9waXJxICAgICAgICAgICAgIDE0CitzdHJ1Y3QgdmtpX3hlbl9waHlzZGV2X3VubWFwX3BpcnEgeworICAgIHZraV94ZW5fZG9taWRfdCBkb21pZDsKKyAgICAvKiBJTiAqLworICAgIGludCBwaXJxOworfTsKKworI2VuZGlmIC8vIF9fVktJX1hFTl9QSFlTREVWX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXhlbi1zY2hlZG9wLmggYi9pbmNsdWRlL3ZraS92a2kteGVuLXNjaGVkb3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGY4YTMzCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS92a2kvdmtpLXhlbi1zY2hlZG9wLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBDaXRyaXgKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisvKiBDb250cmlidXRlZCBieSBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorICAgYW5kIElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+ICovCisKKyNpZm5kZWYgX19WS0lfWEVOX1NDSEVEX09QX0gKKyNkZWZpbmUgX19WS0lfWEVOX1NDSEVEX09QX0gKKworI2RlZmluZSBWS0lfWEVOX1NDSEVET1BfeWllbGQgICAgICAgICAgIDAKKworI2RlZmluZSBWS0lfWEVOX1NDSEVET1BfYmxvY2sgICAgICAgICAgIDEKKworI2RlZmluZSBWS0lfWEVOX1NDSEVET1Bfc2h1dGRvd24gICAgICAgIDIKKworI2RlZmluZSBWS0lfWEVOX1NDSEVET1BfcG9sbCAgICAgICAgICAgIDMKKworI2RlZmluZSBWS0lfWEVOX1NDSEVET1BfcmVtb3RlX3NodXRkb3duIDQKK3N0cnVjdCB2a2lfeGVuX3JlbW90ZV9zaHV0ZG93biB7CisgICAgdmtpX3hlbl9kb21pZF90IGRvbWFpbl9pZDsKKyAgICB1bnNpZ25lZCBpbnQgcmVhc29uOworfTsKK3R5cGVkZWYgc3RydWN0IHZraV94ZW5fcmVtb3RlX3NodXRkb3duIHZraV94ZW5fcmVtb3RlX3NodXRkb3duX3Q7CisKKyNkZWZpbmUgVktJX1hFTl9TQ0hFRE9QX3NodXRkb3duX2NvZGUgICA1CisKKyNkZWZpbmUgVktJX1hFTl9TQ0hFRE9QX3dhdGNoZG9nICAgICAgICA2CisKKyNlbmRpZiAvKiBfX1ZLSV9YRU5fU0NIRURfT1BfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXhlbi1zeXNjdGwuaCBiL2luY2x1ZGUvdmtpL3ZraS14ZW4tc3lzY3RsLmgKaW5kZXggMTYyMWI3YS4uOGY0ZWFjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXhlbi1zeXNjdGwuaAorKysgYi9pbmNsdWRlL3ZraS92a2kteGVuLXN5c2N0bC5oCkBAIC01LDkgKzUsMTAgQEAKICAqIFRoZSBzeXNjdGwgaW50ZXJmYWNlIGlzIHZlcnNpb25lZCB2aWEgdGhlIGludGVyZmFjZV92ZXJzaW9uCiAgKiBmaWVsZC4gVGhpcyBzdHJ1Y3R1cmVzIGluIHRoaXMgaGVhZGVyIHN1cHBvcnRzIHN5c2N0bCBpbnRlcmZhY2VzOgogICoKLSAqIC0gMDAwMDAwMDg6IFhlbiA0LjEKLSAqIC0gMDAwMDAwMDk6IFhlbiA0LjIKLSAqIC0gMDAwMDAwMGE6IFhlbiA0LjMKKyAqIC0gMHgwMDAwMDAwODogWGVuIDQuMQorICogLSAweDAwMDAwMDA5OiBYZW4gNC4yCisgKiAtIDB4MDAwMDAwMGE6IFhlbiA0LjMgJiA0LjQKKyAqIC0gMHgwMDAwMDAwYjogWGVuIDQuNQogICoKICAqIFdoZW4gYWRkaW5nIGEgbmV3IHN1Ym9wIGJlIHN1cmUgdG8gaW5jbHVkZSB0aGUgdmFyaWFudHMgdXNlZCBieSBhbGwKICAqIG9mIHRoZSBhYm92ZSwgYm90aCBoZXJlIGFuZCBpbiBzeXN3cmFwLXhlbi5jCkBAIC04Niw2ICs4Nyw4IEBACiAgICAgdmtpX3VpbnQzMl90ICAgICAgICAgICAgICBudW1fZG9tYWluczsKIH07CiAKKy8qIHZraV94ZW5fc3lzY3RsX2dldGRvbWFpbmluZm9saXN0XzAwMDAwMDBiIGlzIHRoZSBzYW1lIGFzIDAwMDAwMDBhICovCisKICNkZWZpbmUgVktJX1hFTl9TWVNDVExfQ1BVUE9PTF9PUF9DUkVBVEUgICAgICAgICAgICAgICAgMSAgLyogQyAqLwogI2RlZmluZSBWS0lfWEVOX1NZU0NUTF9DUFVQT09MX09QX0RFU1RST1kgICAgICAgICAgICAgICAyICAvKiBEICovCiAjZGVmaW5lIFZLSV9YRU5fU1lTQ1RMX0NQVVBPT0xfT1BfSU5GTyAgICAgICAgICAgICAgICAgIDMgIC8qIEkgKi8KQEAgLTE1Niw2ICsxNTksOCBAQAogICAgIHZraV91aW50MzJfdCBjYXBhYmlsaXRpZXM7CiB9OwogCisvKiB2a2lfeGVuX3N5c2N0bF9waHlzaW5mb18wMDAwMDAwYiBpcyB0aGUgc2FtZSBhcyAwMDAwMDAwYSAqLworCiBzdHJ1Y3QgdmtpX3hlbl9zeXNjdGxfc2NoZWRfaWQgewogICAgIC8qIE9VVCB2YXJpYWJsZS4gKi8KICAgICB2a2lfdWludDMyX3QgICAgICAgICAgICAgIHNjaGVkX2lkOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXhlbi10bWVtLmggYi9pbmNsdWRlL3ZraS92a2kteGVuLXRtZW0uaAppbmRleCBhYjQwMmYwLi5lMzcyYWU2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2kteGVuLXRtZW0uaAorKysgYi9pbmNsdWRlL3ZraS92a2kteGVuLXRtZW0uaApAQCAtMSwzICsxLDMwIEBACisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IENpdHJpeAorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKy8qIENvbnRyaWJ1dGVkIGJ5IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CisgICBhbmQgSWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4gKi8KKwogI2lmbmRlZiBfX1ZLSV9YRU5fVE1FTV9ICiAjZGVmaW5lIF9fVktJX1hFTl9UTUVNX0gKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXhlbi12ZXJzaW9uLmggYi9pbmNsdWRlL3ZraS92a2kteGVuLXZlcnNpb24uaAppbmRleCA2YzZjYWUwLi5hMDIyYzk0IDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZraS92a2kteGVuLXZlcnNpb24uaAorKysgYi9pbmNsdWRlL3ZraS92a2kteGVuLXZlcnNpb24uaApAQCAtMSwzICsxLDMwIEBACisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCisgICBmcmFtZXdvcmsuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1IENpdHJpeAorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKKy8qIENvbnRyaWJ1dGVkIGJ5IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CisgICBhbmQgSWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4gKi8KKwogI2lmbmRlZiBfX1ZLSV9YRU5fVkVSU0lPTl9ICiAjZGVmaW5lIF9fVktJX1hFTl9WRVJTSU9OX0gKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXhlbi14ODYuaCBiL2luY2x1ZGUvdmtpL3ZraS14ZW4teDg2LmgKaW5kZXggYTJkMGZiMi4uYTU0YTRkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92a2kvdmtpLXhlbi14ODYuaAorKysgYi9pbmNsdWRlL3ZraS92a2kteGVuLXg4Ni5oCkBAIC0xLDMgKzEsMzAgQEAKKy8qCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KKyAgIGZyYW1ld29yay4KKworICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgQ2l0cml4CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKworLyogQ29udHJpYnV0ZWQgYnkgQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KKyAgIGFuZCBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPiAqLworCiAjaWZuZGVmIF9fVktJX1hFTl9YODZfSAogI2RlZmluZSBfX1ZLSV9YRU5fWDg2X0gKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXhlbi14c20uaCBiL2luY2x1ZGUvdmtpL3ZraS14ZW4teHNtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhlYjUwZAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvdmtpL3ZraS14ZW4teHNtLmgKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBDaXRyaXgKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisvKiBDb250cmlidXRlZCBieSBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorICAgYW5kIElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+ICovCisKKyNpZm5kZWYgX19WS0lfWEVOX1hTTV9ICisjZGVmaW5lIF9fVktJX1hFTl9YU01fSAorCisjZGVmaW5lIFZLSV9YRU5fRkxBU0tfSU5URVJGQUNFX1ZFUlNJT04gMQorCitzdHJ1Y3QgdmtpX3hlbl9mbGFza19zaWRfY29udGV4dCB7CisgICAgLyogSU4vT1VUOiBzaWQgdG8gY29udmVydCB0by9mcm9tIHN0cmluZyAqLworICAgIHZraV91aW50MzJfdCBzaWQ7CisgICAgLyogSU46IHNpemUgb2YgdGhlIGNvbnRleHQgYnVmZmVyCisgICAgICogT1VUOiBhY3R1YWwgc2l6ZSBvZiB0aGUgb3V0cHV0IGNvbnRleHQgc3RyaW5nCisgICAgICovCisgICAgdmtpX3VpbnQzMl90IHNpemU7CisgICAgVktJX1hFTl9HVUVTVF9IQU5ETEUoY2hhcikgY29udGV4dDsKK307CisKK3N0cnVjdCB2a2lfeGVuX2ZsYXNrX29wIHsKKyAgICB2a2lfdWludDMyX3QgY21kOworI2RlZmluZSBWS0lfRkxBU0tfTE9BRCAgICAgICAgICAgICAgMQorI2RlZmluZSBWS0lfRkxBU0tfR0VURU5GT1JDRSAgICAgICAgMgorI2RlZmluZSBWS0lfRkxBU0tfU0VURU5GT1JDRSAgICAgICAgMworI2RlZmluZSBWS0lfRkxBU0tfQ09OVEVYVF9UT19TSUQgICAgNAorI2RlZmluZSBWS0lfRkxBU0tfU0lEX1RPX0NPTlRFWFQgICAgNQorI2RlZmluZSBWS0lfRkxBU0tfQUNDRVNTICAgICAgICAgICAgNgorI2RlZmluZSBWS0lfRkxBU0tfQ1JFQVRFICAgICAgICAgICAgNworI2RlZmluZSBWS0lfRkxBU0tfUkVMQUJFTCAgICAgICAgICAgOAorI2RlZmluZSBWS0lfRkxBU0tfVVNFUiAgICAgICAgICAgICAgOQorI2RlZmluZSBWS0lfRkxBU0tfUE9MSUNZVkVSUyAgICAgICAgMTAKKyNkZWZpbmUgVktJX0ZMQVNLX0dFVEJPT0wgICAgICAgICAgIDExCisjZGVmaW5lIFZLSV9GTEFTS19TRVRCT09MICAgICAgICAgICAxMgorI2RlZmluZSBWS0lfRkxBU0tfQ09NTUlUQk9PTFMgICAgICAgMTMKKyNkZWZpbmUgVktJX0ZMQVNLX01MUyAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIFZLSV9GTEFTS19ESVNBQkxFICAgICAgICAgICAxNQorI2RlZmluZSBWS0lfRkxBU0tfR0VUQVZDX1RIUkVTSE9MRCAgMTYKKyNkZWZpbmUgVktJX0ZMQVNLX1NFVEFWQ19USFJFU0hPTEQgIDE3CisjZGVmaW5lIFZLSV9GTEFTS19BVkNfSEFTSFNUQVRTICAgICAxOAorI2RlZmluZSBWS0lfRkxBU0tfQVZDX0NBQ0hFU1RBVFMgICAgMTkKKyNkZWZpbmUgVktJX0ZMQVNLX01FTUJFUiAgICAgICAgICAgIDIwCisjZGVmaW5lIFZLSV9GTEFTS19BRERfT0NPTlRFWFQgICAgICAyMQorI2RlZmluZSBWS0lfRkxBU0tfREVMX09DT05URVhUICAgICAgMjIKKyNkZWZpbmUgVktJX0ZMQVNLX0dFVF9QRUVSX1NJRCAgICAgIDIzCisjZGVmaW5lIFZLSV9GTEFTS19SRUxBQkVMX0RPTUFJTiAgICAyNAorICAgIHZraV91aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsgLyogVktJX1hFTl9GTEFTS19JTlRFUkZBQ0VfVkVSU0lPTiAqLworICAgIHVuaW9uIHsKKyAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9mbGFza19sb2FkIGxvYWQ7CisgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZmxhc2tfc2V0ZW5mb3JjZSBlbmZvcmNlOworICAgICAgICAvKiBGTEFTS19DT05URVhUX1RPX1NJRCBhbmQgRkxBU0tfU0lEX1RPX0NPTlRFWFQgKi8KKyAgICAgICAgc3RydWN0IHZraV94ZW5fZmxhc2tfc2lkX2NvbnRleHQgc2lkX2NvbnRleHQ7CisgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZmxhc2tfYWNjZXNzIGFjY2VzczsKKyAgICAgICAgLyogRkxBU0tfQ1JFQVRFLCBGTEFTS19SRUxBQkVMLCBGTEFTS19NRU1CRVIgKi8KKyAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9mbGFza190cmFuc2l0aW9uIHRyYW5zaXRpb247CisgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZmxhc2tfdXNlcmxpc3QgdXNlcmxpc3Q7CisgICAgICAgIC8qIEZMQVNLX0dFVEJPT0wsIEZMQVNLX1NFVEJPT0wgKi8KKyAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9mbGFza19ib29sZWFuIGJvb2xlYW47CisgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZmxhc2tfc2V0YXZjX3RocmVzaG9sZCBzZXRhdmNfdGhyZXNob2xkOworICAgICAgICAvL3N0cnVjdCB2a2lfeGVuX2ZsYXNrX2hhc2hfc3RhdHMgaGFzaF9zdGF0czsKKyAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9mbGFza19jYWNoZV9zdGF0cyBjYWNoZV9zdGF0czsKKyAgICAgICAgLyogRkxBU0tfQUREX09DT05URVhULCBGTEFTS19ERUxfT0NPTlRFWFQgKi8KKyAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9mbGFza19vY29udGV4dCBvY29udGV4dDsKKyAgICAgICAgLy9zdHJ1Y3QgdmtpX3hlbl9mbGFza19wZWVyc2lkIHBlZXJzaWQ7CisgICAgICAgIC8vc3RydWN0IHZraV94ZW5fZmxhc2tfcmVsYWJlbCByZWxhYmVsOworICAgIH0gdTsKK307CisKKyNlbmRpZiAvLyBfX1ZLSV9YRU5fWFNNX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBlbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92a2kvdmtpLXhlbi5oIGIvaW5jbHVkZS92a2kvdmtpLXhlbi5oCmluZGV4IGUyZjNkODEuLjkyNGExZTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdmtpL3ZraS14ZW4uaAorKysgYi9pbmNsdWRlL3ZraS92a2kteGVuLmgKQEAgLTEsMyArMSwzMCBAQAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLCBhIGR5bmFtaWMgYmluYXJ5IGluc3RydW1lbnRhdGlvbgorICAgZnJhbWV3b3JrLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSBDaXRyaXgKKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCisvKiBDb250cmlidXRlZCBieSBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorICAgYW5kIElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJpeC5jb20+ICovCisKICNpZm5kZWYgX19WS0lfWEVOX0gKICNkZWZpbmUgX19WS0lfWEVOX0gKIApAQCAtODAsMTIgKzEwNywxNSBAQAogI2luY2x1ZGUgPHZraS92a2kteGVuLWRvbWN0bC5oPgogI2luY2x1ZGUgPHZraS92a2kteGVuLXN5c2N0bC5oPgogI2luY2x1ZGUgPHZraS92a2kteGVuLW1tdWV4dC5oPgorI2luY2x1ZGUgPHZraS92a2kteGVuLXNjaGVkb3AuaD4KICNpbmNsdWRlIDx2a2kvdmtpLXhlbi1tZW1vcnkuaD4KICNpbmNsdWRlIDx2a2kvdmtpLXhlbi1ldnRjaG4uaD4KICNpbmNsdWRlIDx2a2kvdmtpLXhlbi1nbnR0YWIuaD4KICNpbmNsdWRlIDx2a2kvdmtpLXhlbi12ZXJzaW9uLmg+CiAjaW5jbHVkZSA8dmtpL3ZraS14ZW4taHZtLmg+CiAjaW5jbHVkZSA8dmtpL3ZraS14ZW4tdG1lbS5oPgorI2luY2x1ZGUgPHZraS92a2kteGVuLXhzbS5oPgorI2luY2x1ZGUgPHZraS92a2kteGVuLXBoeXNkZXYuaD4KIAogI2VuZGlmIC8vIF9fVktJX1hFTl9ICiAKZGlmZiAtLWdpdCBhL2xhY2tleS9sa19tYWluLmMgYi9sYWNrZXkvbGtfbWFpbi5jCmluZGV4IGJiZDQ5ODMuLmJjMGY2M2EgMTAwNjQ0Ci0tLSBhL2xhY2tleS9sa19tYWluLmMKKysrIGIvbGFja2V5L2xrX21haW4uYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIExhY2tleSwgYW4gZXhhbXBsZSBWYWxncmluZCB0b29sIHRoYXQgZG9lcwogICAgc29tZSBzaW1wbGUgcHJvZ3JhbSBtZWFzdXJlbWVudCBhbmQgdHJhY2luZy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMDUwLDcgKzEwNTAsNyBAQAogICAgVkdfKGRldGFpbHNfdmVyc2lvbikgICAgICAgICAoTlVMTCk7CiAgICBWR18oZGV0YWlsc19kZXNjcmlwdGlvbikgICAgICgiYW4gZXhhbXBsZSBWYWxncmluZCB0b29sIik7CiAgICBWR18oZGV0YWlsc19jb3B5cmlnaHRfYXV0aG9yKSgKLSAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgTmljaG9sYXMgTmV0aGVyY290ZS4iKTsKKyAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgTmljaG9sYXMgTmV0aGVyY290ZS4iKTsKICAgIFZHXyhkZXRhaWxzX2J1Z19yZXBvcnRzX3RvKSAgKFZHX0JVR1NfVE8pOwogICAgVkdfKGRldGFpbHNfYXZnX3RyYW5zbGF0aW9uX3NpemVCKSAoIDIwMCApOwogCmRpZmYgLS1naXQgYS9tYXNzaWYvbXNfbWFpbi5jIGIvbWFzc2lmL21zX21haW4uYwppbmRleCA1MDUzYzRmLi5lNTVhNzc0IDEwMDY0NAotLS0gYS9tYXNzaWYvbXNfbWFpbi5jCisrKyBiL21hc3NpZi9tc19tYWluLmMKQEAgLTYsNyArNiw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBNYXNzaWYsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgcHJvZmlsaW5nIG1lbW9yeQogICAgdXNhZ2Ugb2YgcHJvZ3JhbXMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwMy0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyAgIENvcHlyaWdodCAoQykgMjAwMy0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICAgICAgIG5qbkB2YWxncmluZC5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTExNSw3ICsxMTE1LDcgQEAKICAgIGRlZmF1bHQ6CiAgICAgICB0bF9hc3NlcnQyKDAsICJWRVJCX3NuYXBzaG90OiB1bmtub3duIHNuYXBzaG90IGtpbmQ6ICVkIiwgc25hcHNob3QtPmtpbmQpOwogICAgfQotICAgVkVSQih2ZXJib3NpdHksICIlcyBTJXMlM2QgKHQ6JWxsZCwgaHA6JWxkLCBleDolbGQsIHN0OiVsZClcbiIsCisgICBWRVJCKHZlcmJvc2l0eSwgIiVzIFMlcyUzZCAodDolbGxkLCBocDolbHUsIGV4OiVsdSwgc3Q6JWx1KVxuIiwKICAgICAgIHByZWZpeCwgc3VmZml4LCBpLAogICAgICAgc25hcHNob3QtPnRpbWUsCiAgICAgICBzbmFwc2hvdC0+aGVhcF9zekIsCkBAIC0xNzIyLDcgKzE3MjIsOCBAQAogICAgICAgfQogCiAgICAgICBWRVJCKDMsICI+Pj4gKCVsZCwgJWxkKVxuIiwKLSAgICAgICAgIG5ld19yZXFfc3pCIC0gb2xkX3JlcV9zekIsIG5ld19zbG9wX3N6QiAtIG9sZF9zbG9wX3N6Qik7CisgICAgICAgICAgIChTU2l6ZVQpKG5ld19yZXFfc3pCIC0gb2xkX3JlcV9zekIpLAorICAgICAgICAgICAoU1NpemVUKShuZXdfc2xvcF9zekIgLSBvbGRfc2xvcF9zekIpKTsKICAgIH0KIAogICAgcmV0dXJuIHBfbmV3OwpAQCAtMTkwMiw3ICsxOTAzLDcgQEAKIHN0YXRpYyBJTkxJTkUgdm9pZCBuZXdfbWVtX3N0YWNrXzIoU2l6ZVQgbGVuLCBjb25zdCBIQ2hhciogd2hhdCkKIHsKICAgIGlmIChoYXZlX3N0YXJ0ZWRfZXhlY3V0aW5nX2NvZGUpIHsKLSAgICAgIFZFUkIoMywgIjw8PCBuZXdfbWVtX3N0YWNrICglbGQpXG4iLCBsZW4pOworICAgICAgVkVSQigzLCAiPDw8IG5ld19tZW1fc3RhY2sgKCVsdSlcbiIsIGxlbik7CiAgICAgICBuX3N0YWNrX2FsbG9jcysrOwogICAgICAgdXBkYXRlX3N0YWNrX3N0YXRzKGxlbik7CiAgICAgICBtYXliZV90YWtlX3NuYXBzaG90KE5vcm1hbCwgd2hhdCk7CkBAIC0xOTEzLDcgKzE5MTQsNyBAQAogc3RhdGljIElOTElORSB2b2lkIGRpZV9tZW1fc3RhY2tfMihTaXplVCBsZW4sIGNvbnN0IEhDaGFyKiB3aGF0KQogewogICAgaWYgKGhhdmVfc3RhcnRlZF9leGVjdXRpbmdfY29kZSkgewotICAgICAgVkVSQigzLCAiPDw8IGRpZV9tZW1fc3RhY2sgKCVsZClcbiIsIC1sZW4pOworICAgICAgVkVSQigzLCAiPDw8IGRpZV9tZW1fc3RhY2sgKC0lbHUpXG4iLCBsZW4pOwogICAgICAgbl9zdGFja19mcmVlcysrOwogICAgICAgbWF5YmVfdGFrZV9zbmFwc2hvdChQZWFrLCAgICJzdGtQRUFLIik7CiAgICAgICB1cGRhdGVfc3RhY2tfc3RhdHMoLWxlbik7CkBAIC0yMTQ5LDcgKzIxNTAsNyBAQAogICAgICAgfQogICAgICAgCiAgICAgICAvLyBEbyB0aGUgbm9uLWlwX2Rlc2MgcGFydCBmaXJzdC4uLgotICAgICAgRlAoIiVzbiVkOiAlbHUgIiwgZGVwdGhfc3RyLCBzeHB0LT5TaWcubl9jaGlsZHJlbiwgc3hwdC0+c3pCKTsKKyAgICAgIEZQKCIlc24ldTogJWx1ICIsIGRlcHRoX3N0ciwgc3hwdC0+U2lnLm5fY2hpbGRyZW4sIHN4cHQtPnN6Qik7CiAKICAgICAgIC8vIEZvciBpcF9kZXNjcyBiZWdpbm5pbmcgd2l0aCAiMHhBQkNELi4uOiIgYWRkcmVzc2VzLCB3ZSBmaXJzdAogICAgICAgLy8gbWVhc3VyZSB0aGUgbGVuZ3RoIG9mIHRoZSAiMHhhYmNkOiAiIGFkZHJlc3MgYXQgdGhlIHN0YXJ0IG9mIHRoZQpAQCAtMjQwNyw3ICsyNDA4LDcgQEAKICAgIFNUQVRTKCJzdGFjayBhbGxvY3M6ICAgICAgICAgICV1XG4iLCBuX3N0YWNrX2FsbG9jcyk7CiAgICBTVEFUUygic3RhY2sgZnJlZXM6ICAgICAgICAgICAldVxuIiwgbl9zdGFja19mcmVlcyk7CiAgICBTVEFUUygiWFB0czogICAgICAgICAgICAgICAgICAldVxuIiwgbl94cHRzKTsKLSAgIFNUQVRTKCJ0b3AtWFB0czogICAgICAgICAgICAgICV1ICglZCUlKVxuIiwKKyAgIFNUQVRTKCJ0b3AtWFB0czogICAgICAgICAgICAgICV1ICgldSUlKVxuIiwKICAgICAgIGFsbG9jX3hwdC0+bl9jaGlsZHJlbiwKICAgICAgICggbl94cHRzID8gYWxsb2NfeHB0LT5uX2NoaWxkcmVuICogMTAwIC8gbl94cHRzIDogMCkpOwogICAgU1RBVFMoIlhQdCBpbml0IGV4cGFuc2lvbnM6ICAgJXVcbiIsIG5feHB0X2luaXRfZXhwYW5zaW9ucyk7CkBAIC0yNTQ5LDcgKzI1NTAsNyBAQAogICAgVkdfKGRldGFpbHNfdmVyc2lvbikgICAgICAgICAoTlVMTCk7CiAgICBWR18oZGV0YWlsc19kZXNjcmlwdGlvbikgICAgICgiYSBoZWFwIHByb2ZpbGVyIik7CiAgICBWR18oZGV0YWlsc19jb3B5cmlnaHRfYXV0aG9yKSgKLSAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDMtMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgTmljaG9sYXMgTmV0aGVyY290ZSIpOworICAgICAgIkNvcHlyaWdodCAoQykgMjAwMy0yMDE1LCBhbmQgR05VIEdQTCdkLCBieSBOaWNob2xhcyBOZXRoZXJjb3RlIik7CiAgICBWR18oZGV0YWlsc19idWdfcmVwb3J0c190bykgIChWR19CVUdTX1RPKTsKIAogICAgVkdfKGRldGFpbHNfYXZnX3RyYW5zbGF0aW9uX3NpemVCKSAoIDMzMCApOwpkaWZmIC0tZ2l0IGEvbWFzc2lmL21zX3ByaW50LmluIGIvbWFzc2lmL21zX3ByaW50LmluCmluZGV4IDZmYTM2NjkuLmU2ZmFlODkgMTAwNzU1Ci0tLSBhL21hc3NpZi9tc19wcmludC5pbgorKysgYi9tYXNzaWYvbXNfcHJpbnQuaW4KQEAgLTcsNyArNyw3IEBACiAjICBUaGlzIGZpbGUgaXMgcGFydCBvZiBNYXNzaWYsIGEgVmFsZ3JpbmQgdG9vbCBmb3IgcHJvZmlsaW5nIG1lbW9yeQogIyAgdXNhZ2Ugb2YgcHJvZ3JhbXMuCiAjCi0jICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisjICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAjICAgICBuam5AdmFsZ3JpbmQub3JnCiAjCiAjICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC03Niw3ICs3Niw3IEBACiAgICAgLS14PTw0Li4xMDAwPiAgICAgICAgIGdyYXBoIHdpZHRoLCBpbiBjb2x1bW5zIFs3Ml0KICAgICAtLXk9PDQuLjEwMDA+ICAgICAgICAgZ3JhcGggaGVpZ2h0LCBpbiByb3dzIFsyMF0KIAotICBtc19wcmludCBpcyBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlLgorICBtc19wcmludCBpcyBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlLgogICBhbmQgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIuCiAgIEJ1ZyByZXBvcnRzLCBmZWVkYmFjaywgYWRtaXJhdGlvbiwgYWJ1c2UsIGV0YywgdG86IG5qblxAdmFsZ3JpbmQub3JnLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9tYXNzaWYvdGVzdHMvZmlsdGVyX3ZlcmJvc2UgYi9tYXNzaWYvdGVzdHMvZmlsdGVyX3ZlcmJvc2UKaW5kZXggNWYxNTljMy4uNzQ1YjUyMSAxMDA3NTUKLS0tIGEvbWFzc2lmL3Rlc3RzL2ZpbHRlcl92ZXJib3NlCisrKyBiL21hc3NpZi90ZXN0cy9maWx0ZXJfdmVyYm9zZQpAQCAtNyw2ICs3LDkgQEAKIAogJGRpci9maWx0ZXJfc3RkZXJyIHwgCiAKKyMgUmVtb3ZlIGFueSAtLXBpZDowOiBzdHJpbmdzIChkZWJ1Z2xvZyBsZXZlbCB6ZXJvIG91dHB1dCkKK3NlZCAiL14tLVswLTldXHsxLDdcfTowOiovZCIgfAorCiAjIE9ubHkgcHJpbnQgbGluZXMgdGhhdCBjb250YWluICJNYXNzaWY6Ii4gIFRoZSAtbiBtZWFucyBkb24ndCBwcmludCBhbnkKICMgbGluZXMgYnkgZGVmYXVsdCwgYW5kIHRoZSAncCcgbWVhbnMgZG8gcHJpbnQgdGhvc2UgdGhhdCBtYXRjaCB0aGUgcGF0dGVybi4KIHNlZCAtbiAiL01hc3NpZjovcCIgfApkaWZmIC0tZ2l0IGEvbWFzc2lmL3Rlc3RzL21hbGxvY191c2FibGUuYyBiL21hc3NpZi90ZXN0cy9tYWxsb2NfdXNhYmxlLmMKaW5kZXggMWE4Yjg2My4uMDE4MmU2YyAxMDA2NDQKLS0tIGEvbWFzc2lmL3Rlc3RzL21hbGxvY191c2FibGUuYworKysgYi9tYXNzaWYvdGVzdHMvbWFsbG9jX3VzYWJsZS5jCkBAIC01LDcgKzUsNyBAQAogCiBpbnQgbWFpbih2b2lkKQogewotIyAgaWYgIWRlZmluZWQoVkdPX2RhcndpbikKKyMgIGlmICFkZWZpbmVkKFZHT19kYXJ3aW4pICYmICFkZWZpbmVkKFZHT19zb2xhcmlzKQogICAgLy8gQmVjYXVzZSBvdXIgYWxsb2NhdGlvbnMgYXJlIGluIG11bHRpcGxlcyBvZiA4IG9yIDE2LCA5OSB3aWxsIHJvdW5kIHVwCiAgICAvLyB0byAxMDQgb3IgMTEyLgogICAgaW50KiB4ID0gbWFsbG9jKDk5KTsKZGlmZiAtLWdpdCBhL21lbWNoZWNrL2RvY3MvbWMtbWFudWFsLnhtbCBiL21lbWNoZWNrL2RvY3MvbWMtbWFudWFsLnhtbAppbmRleCA3ZDg0ZGM1Li5iNTRiNzIxIDEwMDY0NAotLS0gYS9tZW1jaGVjay9kb2NzL21jLW1hbnVhbC54bWwKKysrIGIvbWVtY2hlY2svZG9jcy9tYy1tYW51YWwueG1sCkBAIC04MTEsNyArODExLDcgQEAKIAogICA8dmFybGlzdGVudHJ5IGlkPSJvcHQubGVhay1jaGVjay1oZXVyaXN0aWNzIiB4cmVmbGFiZWw9Ii0tbGVhay1jaGVjay1oZXVyaXN0aWNzIj4KICAgICA8dGVybT4KLSAgICAgIDxvcHRpb24+PCFbQ0RBVEFbLS1sZWFrLWNoZWNrLWhldXJpc3RpY3M9PHNldD4gW2RlZmF1bHQ6IG5vbmVdIF1dPjwvb3B0aW9uPgorICAgICAgPG9wdGlvbj48IVtDREFUQVstLWxlYWstY2hlY2staGV1cmlzdGljcz08c2V0PiBbZGVmYXVsdDogYWxsXSBdXT48L29wdGlvbj4KICAgICA8L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+U3BlY2lmaWVzIHRoZSBzZXQgb2YgbGVhayBjaGVjayBoZXVyaXN0aWNzIHRvIGJlIHVzZWQKQEAgLTk0Nyw3ICs5NDcsNyBAQAogCiAgIDx2YXJsaXN0ZW50cnkgaWQ9Im9wdC5wYXJ0aWFsLWxvYWRzLW9rIiB4cmVmbGFiZWw9Ii0tcGFydGlhbC1sb2Fkcy1vayI+CiAgICAgPHRlcm0+Ci0gICAgICA8b3B0aW9uPjwhW0NEQVRBWy0tcGFydGlhbC1sb2Fkcy1vaz08eWVzfG5vPiBbZGVmYXVsdDogbm9dIF1dPjwvb3B0aW9uPgorICAgICAgPG9wdGlvbj48IVtDREFUQVstLXBhcnRpYWwtbG9hZHMtb2s9PHllc3xubz4gW2RlZmF1bHQ6IHllc10gXV0+PC9vcHRpb24+CiAgICAgPC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgIDxwYXJhPkNvbnRyb2xzIGhvdyBNZW1jaGVjayBoYW5kbGVzIDMyLSwgNjQtLCAxMjgtIGFuZCAyNTYtYml0CkBAIC05NjUsMTQgKzk2NSwzMSBAQAogCiAgICAgICA8cGFyYT5Ob3RlIHRoYXQgY29kZSB0aGF0IGJlaGF2ZXMgaW4gdGhpcyB3YXkgaXMgaW4gdmlvbGF0aW9uIG9mCiAgICAgICB0aGUgSVNPIEMvQysrIHN0YW5kYXJkcywgYW5kIHNob3VsZCBiZSBjb25zaWRlcmVkIGJyb2tlbi4gIElmCi0gICAgICBhdCBhbGwgcG9zc2libGUsIHN1Y2ggY29kZSBzaG91bGQgYmUgZml4ZWQuICBUaGlzIG9wdGlvbiBzaG91bGQgYmUKLSAgICAgIHVzZWQgb25seSBhcyBhIGxhc3QgcmVzb3J0LjwvcGFyYT4KKyAgICAgIGF0IGFsbCBwb3NzaWJsZSwgc3VjaCBjb2RlIHNob3VsZCBiZSBmaXhlZC48L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgPC92YXJsaXN0ZW50cnk+CisKKyAgPHZhcmxpc3RlbnRyeSBpZD0ib3B0LmV4cGVuc2l2ZS1kZWZpbmVkbmVzcy1jaGVja3MiIHhyZWZsYWJlbD0iLS1leHBlbnNpdmUtZGVmaW5lZG5lc3MtY2hlY2tzIj4KKyAgICA8dGVybT4KKyAgICAgIDxvcHRpb24+PCFbQ0RBVEFbLS1leHBlbnNpdmUtZGVmaW5lZG5lc3MtY2hlY2tzPTx5ZXN8bm8+IFtkZWZhdWx0OiBub10gXV0+PC9vcHRpb24+CisgICAgPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPkNvbnRyb2xzIHdoZXRoZXIgTWVtY2hlY2sgc2hvdWxkIGVtcGxveSBtb3JlIHByZWNpc2UgYnV0IGFsc28gbW9yZQorICAgICAgZXhwZW5zaXZlICh0aW1lIGNvbnN1bWluZykgYWxnb3JpdGhtcyB3aGVuIGNoZWNraW5nIHRoZSBkZWZpbmVkbmVzcyBvZiBhCisgICAgICB2YWx1ZS4gVGhlIGRlZmF1bHQgc2V0dGluZyBpcyBub3QgdG8gZG8gdGhhdCBhbmQgaXQgaXMgdXN1YWxseQorICAgICAgc3VmZmljaWVudC4gSG93ZXZlciwgZm9yIGhpZ2hseSBvcHRpbWlzZWQgY29kZSB2YWxncmluZCBtYXkgc29tZXRpbWVzCisgICAgICBpbmNvcnJlY3RseSBjb21wbGFpbi4gCisgICAgICBJbnZva2luZyB2YWxncmluZCB3aXRoIDxvcHRpb24+LS1leHBlbnNpdmUtZGVmaW5lZG5lc3MtY2hlY2tzPXllczwvb3B0aW9uPiAKKyAgICAgIGhlbHBzIGJ1dCBjb21lcyBhdCBhIHBlcmZvcm1hbmNlIGNvc3QuIFJ1bnRpbWUgZGVncmFkYXRpb24gb2YKKyAgICAgIDI1JSBoYXZlIGJlZW4gb2JzZXJ2ZWQgYnV0IHRoZSBleHRyYSBjb3N0IGRlcGVuZHMgYSBsb3Qgb24gdGhlCisgICAgICBhcHBsaWNhdGlvbiBhdCBoYW5kLgorICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgIDwvdmFybGlzdGVudHJ5PgogCiAgIDx2YXJsaXN0ZW50cnkgaWQ9Im9wdC5rZWVwLXN0YWNrdHJhY2VzIiB4cmVmbGFiZWw9Ii0ta2VlcC1zdGFja3RyYWNlcyI+CiAgICAgPHRlcm0+Ci0gICAgICA8b3B0aW9uPjwhW0NEQVRBWy0ta2VlcC1zdGFja3RyYWNlcz1hbGxvY3xmcmVlfGFsbG9jLWFuZC1mcmVlfGFsbG9jLXRoZW4tZnJlZXxub25lIFtkZWZhdWx0OiBhbGxvYy10aGVuLWZyZWVdIF1dPjwvb3B0aW9uPgorICAgICAgPG9wdGlvbj48IVtDREFUQVstLWtlZXAtc3RhY2t0cmFjZXM9YWxsb2N8ZnJlZXxhbGxvYy1hbmQtZnJlZXxhbGxvYy10aGVuLWZyZWV8bm9uZSBbZGVmYXVsdDogYWxsb2MtYW5kLWZyZWVdIF1dPjwvb3B0aW9uPgogICAgIDwvdGVybT4KICAgICA8bGlzdGl0ZW0+CiAgICAgICA8cGFyYT5Db250cm9scyB3aGljaCBzdGFjayB0cmFjZShzKSB0byBrZWVwIGZvciBtYWxsb2MnZCBhbmQvb3IKQEAgLTE2NDgsMzYgKzE2NjUsNTEgQEAKIAogPGl0ZW1pemVkbGlzdD4KICAgPGxpc3RpdGVtPgotICAgIDxwYXJhPjx2YXJuYW1lPmdldF92Yml0cyAmbHQ7YWRkciZndDsgWyZsdDtsZW4mZ3Q7XTwvdmFybmFtZT4KLSAgICBzaG93cyB0aGUgZGVmaW5lZG5lc3MgKFYpIGJpdHMgZm9yICZsdDtsZW4mZ3Q7IChkZWZhdWx0IDEpIGJ5dGVzCi0gICAgc3RhcnRpbmcgYXQgJmx0O2FkZHImZ3Q7LiAgVGhlIGRlZmluZWRuZXNzIG9mIGVhY2ggYnl0ZSBpbiB0aGUKLSAgICByYW5nZSBpcyBnaXZlbiB1c2luZyB0d28gaGV4YWRlY2ltYWwgZGlnaXRzLiAgVGhlc2UgaGV4YWRlY2ltYWwKLSAgICBkaWdpdHMgZW5jb2RlIHRoZSB2YWxpZGl0eSBvZiBlYWNoIGJpdCBvZiB0aGUgY29ycmVzcG9uZGluZyBieXRlLAotICAgIHVzaW5nIDAgaWYgdGhlIGJpdCBpcyBkZWZpbmVkIGFuZCAxIGlmIHRoZSBiaXQgaXMgdW5kZWZpbmVkLgotICAgIElmIGEgYnl0ZSBpcyBub3QgYWRkcmVzc2FibGUsIGl0cyB2YWxpZGl0eSBiaXRzIGFyZSByZXBsYWNlZAotICAgIGJ5IDx2YXJuYW1lPl9fPC92YXJuYW1lPiAoYSBkb3VibGUgdW5kZXJzY29yZSkuCisgICAgPHBhcmE+PHZhcm5hbWU+eGIgJmx0O2FkZHImZ3Q7IFsmbHQ7bGVuJmd0O108L3Zhcm5hbWU+CisgICAgICBzaG93cyB0aGUgZGVmaW5lZG5lc3MgKFYpIGJpdHMgYW5kIHZhbHVlcyBmb3IgJmx0O2xlbiZndDsgKGRlZmF1bHQgMSkKKyAgICAgIGJ5dGVzIHN0YXJ0aW5nIGF0ICZsdDthZGRyJmd0Oy4KKyAgICAgIEZvciBlYWNoIDggYnl0ZXMsIHR3byBsaW5lcyBhcmUgb3V0cHV0LgogICAgIDwvcGFyYT4KICAgICA8cGFyYT4KLSAgICBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIDx2YXJuYW1lPnN0cmluZzEwPC92YXJuYW1lPiBpcyBhbiBhcnJheQotICAgIG9mIDEwIGNoYXJhY3RlcnMsIGluIHdoaWNoIHRoZSBldmVuIG51bWJlcmVkIGJ5dGVzIGFyZQotICAgIHVuZGVmaW5lZC4gSW4gdGhlIGJlbG93IGV4YW1wbGUsIHRoZSBieXRlIGNvcnJlc3BvbmRpbmcKLSAgICB0byA8dmFybmFtZT5zdHJpbmcxMFs1XTwvdmFybmFtZT4gaXMgbm90IGFkZHJlc3NhYmxlLgorICAgICAgVGhlIGZpcnN0IGxpbmUgc2hvd3MgdGhlIHZhbGlkaXR5IGJpdHMgZm9yIDggYnl0ZXMuCisgICAgICBUaGUgZGVmaW5lZG5lc3Mgb2YgZWFjaCBieXRlIGluIHRoZSByYW5nZSBpcyBnaXZlbiB1c2luZyB0d28gaGV4YWRlY2ltYWwKKyAgICAgIGRpZ2l0cy4gIFRoZXNlIGhleGFkZWNpbWFsIGRpZ2l0cyBlbmNvZGUgdGhlIHZhbGlkaXR5IG9mIGVhY2ggYml0IG9mIHRoZQorICAgICAgY29ycmVzcG9uZGluZyBieXRlLAorICAgICAgdXNpbmcgMCBpZiB0aGUgYml0IGlzIGRlZmluZWQgYW5kIDEgaWYgdGhlIGJpdCBpcyB1bmRlZmluZWQuCisgICAgICBJZiBhIGJ5dGUgaXMgbm90IGFkZHJlc3NhYmxlLCBpdHMgdmFsaWRpdHkgYml0cyBhcmUgcmVwbGFjZWQKKyAgICAgIGJ5IDx2YXJuYW1lPl9fPC92YXJuYW1lPiAoYSBkb3VibGUgdW5kZXJzY29yZSkuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICAgVGhlIHNlY29uZCBsaW5lIHNob3dzIHRoZSB2YWx1ZXMgb2YgdGhlIGJ5dGVzIGJlbG93IHRoZSBjb3JyZXNwb25kaW5nCisgICAgICB2YWxpZGl0eSBiaXRzLiBUaGUgZm9ybWF0IHVzZWQgdG8gc2hvdyB0aGUgYnl0ZXMgZGF0YSBpcyBzaW1pbGFyIHRvIHRoZQorICAgICAgR0RCIGNvbW1hbmQgJ3ggLyZsdDtsZW4mZ3Q7eGIgJmx0O2FkZHImZ3Q7Jy4gVGhlIHZhbHVlIGZvciBhIG5vbgorICAgICAgYWRkcmVzc2FibGUgYnl0ZXMgaXMgc2hvd24gYXMgPz8gKHR3byBxdWVzdGlvbiBtYXJrcykuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICAgSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCA8dmFybmFtZT5zdHJpbmcxMDwvdmFybmFtZT4gaXMgYW4gYXJyYXkKKyAgICAgIG9mIDEwIGNoYXJhY3RlcnMsIGluIHdoaWNoIHRoZSBldmVuIG51bWJlcmVkIGJ5dGVzIGFyZQorICAgICAgdW5kZWZpbmVkLiBJbiB0aGUgYmVsb3cgZXhhbXBsZSwgdGhlIGJ5dGUgY29ycmVzcG9uZGluZworICAgICAgdG8gPHZhcm5hbWU+c3RyaW5nMTBbNV08L3Zhcm5hbWU+IGlzIG5vdCBhZGRyZXNzYWJsZS4KICAgICA8L3BhcmE+CiA8cHJvZ3JhbWxpc3Rpbmc+PCFbQ0RBVEFbCiAoZ2RiKSBwICZzdHJpbmcxMAotJDQgPSAoY2hhciAoKilbMTBdKSAweDgwNDllMjgKLShnZGIpIG1vbml0b3IgZ2V0X3ZiaXRzIDB4ODA0OWUyOCAxMAotZmYwMGZmMDAgZmZfX2ZmMDAgZmYwMAotKGdkYikgCiskNCA9IChjaGFyICgqKVsxMF0pIDB4ODA0YTJmMAorKGdkYikgbW8geGIgMHg4MDRhMmYwIDEwCisgICAgICAgICAgICAgICAgICBmZiAgICAgIDAwICAgICAgZmYgICAgICAwMCAgICAgIGZmICAgICAgX18gICAgICBmZiAgICAgIDAwCisweDgwNEEyRjA6ICAgICAgMHgzZiAgICAweDZlICAgIDB4M2YgICAgMHg2NSAgICAweDNmICAgIDB4Pz8gICAgIDB4M2YgICAgMHg2NQorICAgICAgICAgICAgICAgICAgZmYgICAgICAwMAorMHg4MDRBMkY4OiAgICAgIDB4M2YgICAgMHgwMAorQWRkcmVzcyAweDgwNEEyRjAgbGVuIDEwIGhhcyAxIGJ5dGVzIHVuYWRkcmVzc2FibGUKKyhnZGIpCiBdXT48L3Byb2dyYW1saXN0aW5nPgogCi0gICAgPHBhcmE+IFRoZSBjb21tYW5kIGdldF92Yml0cyBjYW5ub3QgYmUgdXNlZCB3aXRoIHJlZ2lzdGVycy4gVG8gZ2V0Ci0gICAgdGhlIHZhbGlkaXR5IGJpdHMgb2YgYSByZWdpc3RlciwgeW91IG11c3Qgc3RhcnQgVmFsZ3JpbmQgd2l0aCB0aGUKLSAgICBvcHRpb24gPG9wdGlvbj4tLXZnZGItc2hhZG93LXJlZ2lzdGVycz15ZXM8L29wdGlvbj4uIFRoZSB2YWxpZGl0eQotICAgIGJpdHMgb2YgYSByZWdpc3RlciBjYW4gYmUgb2J0YWluZWQgYnkgcHJpbnRpbmcgdGhlICdzaGFkb3cgMScKLSAgICBjb3JyZXNwb25kaW5nIHJlZ2lzdGVyLiAgSW4gdGhlIGJlbG93IHg4NiBleGFtcGxlLCB0aGUgcmVnaXN0ZXIKLSAgICBlYXggaGFzIGFsbCBpdHMgYml0cyB1bmRlZmluZWQsIHdoaWxlIHRoZSByZWdpc3RlciBlYnggaXMgZnVsbHkKLSAgICBkZWZpbmVkLgorICAgIDxwYXJhPiBUaGUgY29tbWFuZCB4YiBjYW5ub3QgYmUgdXNlZCB3aXRoIHJlZ2lzdGVycy4gVG8gZ2V0CisgICAgICB0aGUgdmFsaWRpdHkgYml0cyBvZiBhIHJlZ2lzdGVyLCB5b3UgbXVzdCBzdGFydCBWYWxncmluZCB3aXRoIHRoZQorICAgICAgb3B0aW9uIDxvcHRpb24+LS12Z2RiLXNoYWRvdy1yZWdpc3RlcnM9eWVzPC9vcHRpb24+LiBUaGUgdmFsaWRpdHkKKyAgICAgIGJpdHMgb2YgYSByZWdpc3RlciBjYW4gdGhlbiBiZSBvYnRhaW5lZCBieSBwcmludGluZyB0aGUgJ3NoYWRvdyAxJworICAgICAgY29ycmVzcG9uZGluZyByZWdpc3Rlci4gIEluIHRoZSBiZWxvdyB4ODYgZXhhbXBsZSwgdGhlIHJlZ2lzdGVyCisgICAgICBlYXggaGFzIGFsbCBpdHMgYml0cyB1bmRlZmluZWQsIHdoaWxlIHRoZSByZWdpc3RlciBlYnggaXMgZnVsbHkKKyAgICAgIGRlZmluZWQuCiAgICAgPC9wYXJhPgogPHByb2dyYW1saXN0aW5nPjwhW0NEQVRBWwogKGdkYikgcCAveCAkZWF4czEKQEAgLTE2OTAsNiArMTcyMiwzMSBAQAogICA8L2xpc3RpdGVtPgogCiAgIDxsaXN0aXRlbT4KKyAgICA8cGFyYT48dmFybmFtZT5nZXRfdmJpdHMgJmx0O2FkZHImZ3Q7IFsmbHQ7bGVuJmd0O108L3Zhcm5hbWU+CisgICAgc2hvd3MgdGhlIGRlZmluZWRuZXNzIChWKSBiaXRzIGZvciAmbHQ7bGVuJmd0OyAoZGVmYXVsdCAxKSBieXRlcworICAgIHN0YXJ0aW5nIGF0ICZsdDthZGRyJmd0OyB1c2luZyB0aGUgc2FtZSBjb252ZW50aW9uIGFzIHRoZQorICAgIDx2YXJuYW1lPnhiPC92YXJuYW1lPiBjb21tYW5kLiA8dmFybmFtZT5nZXRfdmJpdHM8L3Zhcm5hbWU+IG9ubHkKKyAgICBzaG93cyB0aGUgViBiaXRzIChncm91cGVkIGJ5IDQgYnl0ZXMpLiBJdCBkb2VzIG5vdCBzaG93IHRoZSB2YWx1ZXMuCisgICAgSWYgeW91IHdhbnQgdG8gYXNzb2NpYXRlIFYgYml0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgdmFsdWVzLCB0aGUKKyAgICA8dmFybmFtZT54YjwvdmFybmFtZT4gY29tbWFuZCB3aWxsIGJlIGVhc2llciB0byB1c2UsIGluIHBhcnRpY3VsYXIKKyAgICBvbiBsaXR0bGUgZW5kaWFuIGNvbXB1dGVycyB3aGVuIGFzc29jaWF0aW5nIHVuZGVmaW5lZCBwYXJ0cyBvZiBhbiBpbnRlZ2VyCisgICAgd2l0aCB0aGVpciBWIGJpdHMgdmFsdWVzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgdGhlIHJlc3VsdCBvZiA8dmFybmFtZT5nZXRfdmlidHM8L3Zhcm5hbWU+CisgICAgb24gdGhlIDx2YXJuYW1lPnN0cmluZzEwPC92YXJuYW1lPiB1c2VkIGluIHRoZSAgPHZhcm5hbWU+eGI8L3Zhcm5hbWU+CisgICAgY29tbWFuZCBleHBsYW5hdGlvbi4KKyAgICA8L3BhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+PCFbQ0RBVEFbCisoZ2RiKSBtb25pdG9yIGdldF92Yml0cyAweDgwNGEyZjAgMTAKK2ZmMDBmZjAwIGZmX19mZjAwIGZmMDAKK0FkZHJlc3MgMHg4MDRBMkYwIGxlbiAxMCBoYXMgMSBieXRlcyB1bmFkZHJlc3NhYmxlCisoZ2RiKSAKK11dPjwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgPC9saXN0aXRlbT4KKworICA8bGlzdGl0ZW0+CiAgICAgPHBhcmE+PHZhcm5hbWU+bWFrZV9tZW1vcnkKICAgICBbbm9hY2Nlc3N8dW5kZWZpbmVkfGRlZmluZWR8RGVmaW5lZGlmYWRkcmVzc2FibGVdICZsdDthZGRyJmd0OwogICAgIFsmbHQ7bGVuJmd0O108L3Zhcm5hbWU+IG1hcmtzIHRoZSByYW5nZSBvZiAmbHQ7bGVuJmd0OyAoZGVmYXVsdCAxKQpAQCAtMTg0Niw4ICsxOTAzLDE5IEBACiAgIDwvbGlzdGl0ZW0+CiAKICAgPGxpc3RpdGVtPgotICAgIDxwYXJhPjx2YXJuYW1lPmJsb2NrX2xpc3QgJmx0O2xvc3NfcmVjb3JkX25yJmd0OyA8L3Zhcm5hbWU+Ci0gICAgc2hvd3MgdGhlIGxpc3Qgb2YgYmxvY2tzIGJlbG9uZ2luZyB0byAmbHQ7bG9zc19yZWNvcmRfbnImZ3Q7LgorICAgIDxwYXJhPjx2YXJuYW1lPmJsb2NrX2xpc3QgJmx0O2xvc3NfcmVjb3JkX25yJmd0O3wmbHQ7bG9zc19yZWNvcmRfbnJfZnJvbSZndDsuLiZsdDtsb3NzX3JlY29yZF9ucl90byZndDsKKyAgICAgICAgW3VubGltaXRlZCp8bGltaXRlZCAmbHQ7bWF4X2Jsb2NrcyZndDtdCisgICAgICAgIFtoZXVyaXN0aWNzIGhldXIxLGhldXIyLC4uLl0KKyAgICAgIDwvdmFybmFtZT4KKyAgICAgIHNob3dzIHRoZSBsaXN0IG9mIGJsb2NrcyBiZWxvbmdpbmcgdG8KKyAgICAgIDx2YXJuYW1lPiZsdDtsb3NzX3JlY29yZF9uciZndDs8L3Zhcm5hbWU+IChvciB0byB0aGUgbG9zcyByZWNvcmRzIHJhbmdlCisgICAgICA8dmFybmFtZT4mbHQ7bG9zc19yZWNvcmRfbnJfZnJvbSZndDsuLiZsdDtsb3NzX3JlY29yZF9ucl90byZndDs8L3Zhcm5hbWU+KS4KKyAgICAgIFRoZSBuciBvZiBibG9ja3MgdG8gcHJpbnQgY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgdGhlCisgICAgICA8dmFybmFtZT5saW1pdGVkPC92YXJuYW1lPiBhcmd1bWVudCBmb2xsb3dlZCBieSB0aGUgbWF4aW11bSBucgorICAgICAgb2YgYmxvY2tzIHRvIG91dHB1dC4KKyAgICAgIElmIG9uZSBvciBtb3JlIGhldXJpc3RpY3MgYXJlIGdpdmVuLCBvbmx5IHByaW50cyB0aGUgbG9zcyByZWNvcmRzCisgICAgICBhbmQgYmxvY2tzIGZvdW5kIHZpYSBvbmUgb2YgdGhlIGdpdmVuIDx2YXJuYW1lPmhldXIxLGhldXIyLC4uLjwvdmFybmFtZT4KKyAgICAgIGhldXJpc3RpY3MuCiAgICAgPC9wYXJhPgogCiAgICAgPHBhcmE+IEEgbGVhayBzZWFyY2ggbWVyZ2VzIHRoZSBhbGxvY2F0ZWQgYmxvY2tzIGluIGxvc3MgcmVjb3JkcyA6CkBAIC0xODU3LDcgKzE5MjUsOCBAQAogICAgIGJ5IGEgbG9zcyByZWNvcmQgbnVtYmVyLgogICAgIFRoZSA8dmFybmFtZT5ibG9ja19saXN0PC92YXJuYW1lPiBjb21tYW5kIHNob3dzIHRoZSBsb3NzIHJlY29yZCBpbmZvcm1hdGlvbgogICAgIGZvbGxvd2VkIGJ5IHRoZSBhZGRyZXNzZXMgYW5kIHNpemVzIG9mIHRoZSBibG9ja3Mgd2hpY2ggaGF2ZSBiZWVuCi0gICAgbWVyZ2VkIGluIHRoZSBsb3NzIHJlY29yZC4KKyAgICBtZXJnZWQgaW4gdGhlIGxvc3MgcmVjb3JkLiBJZiBhIGJsb2NrIHdhcyBmb3VuZCB1c2luZyBhbiBoZXVyaXN0aWMsIHRoZSBibG9jayBzaXplCisgICAgaXMgZm9sbG93ZWQgYnkgdGhlIGhldXJpc3RpYy4KICAgICA8L3BhcmE+CiAKICAgICA8cGFyYT4gSWYgYSBkaXJlY3RseSBsb3N0IGJsb2NrIGNhdXNlcyBzb21lIG90aGVyIGJsb2NrcyB0byBiZSBpbmRpcmVjdGx5CmRpZmYgLS1naXQgYS9tZW1jaGVjay9tY19lcnJvcnMuYyBiL21lbWNoZWNrL21jX2Vycm9ycy5jCmluZGV4IDU3ODFiODAuLjZiNzYzZjEgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL21jX2Vycm9ycy5jCisrKyBiL21lbWNoZWNrL21jX2Vycm9ycy5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTWVtQ2hlY2ssIGEgaGVhdnl3ZWlnaHQgVmFsZ3JpbmQgdG9vbCBmb3IKICAgIGRldGVjdGluZyBtZW1vcnkgZXJyb3JzLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zNzUsOCArMzc1LDggQEAKICAgICAgICAgICAgICAgIGxyLT5udW1fYmxvY2tzLCBkX251bV9ibG9ja3MsCiAgICAgICAgICAgICAgICBzdHJfbGVha19sb3NzbW9kZShsci0+a2V5LnN0YXRlKSwgCiAgICAgICAgICAgICAgICBuX3RoaXNfcmVjb3JkLCBuX3RvdGFsX3JlY29yZHMgKTsKLSAgICAgICAgIGVtaXQoICIgICAgPGxlYWtlZGJ5dGVzPiVsZDwvbGVha2VkYnl0ZXM+XG4iLCBsci0+c3pCKTsKLSAgICAgICAgIGVtaXQoICIgICAgPGxlYWtlZGJsb2Nrcz4lZDwvbGVha2VkYmxvY2tzPlxuIiwgbHItPm51bV9ibG9ja3MpOworICAgICAgICAgZW1pdCggIiAgICA8bGVha2VkYnl0ZXM+JWx1PC9sZWFrZWRieXRlcz5cbiIsIGxyLT5zekIpOworICAgICAgICAgZW1pdCggIiAgICA8bGVha2VkYmxvY2tzPiV1PC9sZWFrZWRibG9ja3M+XG4iLCBsci0+bnVtX2Jsb2Nrcyk7CiAgICAgICAgICBlbWl0KCAiICA8L3h3aGF0PlxuIiApOwogICAgICAgfQogICAgICAgVkdfKHBwX0V4ZUNvbnRleHQpKGxyLT5rZXkuYWxsb2NhdGVkX2F0KTsKQEAgLTQzOSw3ICs0MzksNyBAQAogICAgICAgICAgTUNfKGFueV92YWx1ZV9lcnJvcnMpID0gVHJ1ZTsKICAgICAgICAgIGlmICh4bWwpIHsKICAgICAgICAgICAgIGVtaXQoICIgIDxraW5kPlVuaW5pdFZhbHVlPC9raW5kPlxuIiApOwotICAgICAgICAgICAgZW1pdCggIiAgPHdoYXQ+VXNlIG9mIHVuaW5pdGlhbGlzZWQgdmFsdWUgb2Ygc2l6ZSAlbGQ8L3doYXQ+XG4iLAorICAgICAgICAgICAgZW1pdCggIiAgPHdoYXQ+VXNlIG9mIHVuaW5pdGlhbGlzZWQgdmFsdWUgb2Ygc2l6ZSAlbHU8L3doYXQ+XG4iLAogICAgICAgICAgICAgICAgICAgZXh0cmEtPkVyci5WYWx1ZS5zekIgKTsKICAgICAgICAgICAgIFZHXyhwcF9FeGVDb250ZXh0KSggVkdfKGdldF9lcnJvcl93aGVyZSkoZXJyKSApOwogICAgICAgICAgICAgaWYgKGV4dHJhLT5FcnIuVmFsdWUub3JpZ2luX2VjKQpAQCAtNDQ4LDcgKzQ0OCw3IEBACiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyogQ291bGQgYWxzbyBzaG93IGV4dHJhLT5FcnIuQ29uZC5vdGFnIGlmIGRlYnVnZ2luZyBvcmlnaW4KICAgICAgICAgICAgICAgIHRyYWNraW5nICovCi0gICAgICAgICAgICBlbWl0KCAiVXNlIG9mIHVuaW5pdGlhbGlzZWQgdmFsdWUgb2Ygc2l6ZSAlbGRcbiIsCisgICAgICAgICAgICBlbWl0KCAiVXNlIG9mIHVuaW5pdGlhbGlzZWQgdmFsdWUgb2Ygc2l6ZSAlbHVcbiIsCiAgICAgICAgICAgICAgICAgICBleHRyYS0+RXJyLlZhbHVlLnN6QiApOwogICAgICAgICAgICAgVkdfKHBwX0V4ZUNvbnRleHQpKCBWR18oZ2V0X2Vycm9yX3doZXJlKShlcnIpICk7CiAgICAgICAgICAgICBpZiAoZXh0cmEtPkVyci5WYWx1ZS5vcmlnaW5fZWMpCkBAIC01OTQsNyArNTk0LDcgQEAKICAgICAgICAgIGlmICh4bWwpIHsKICAgICAgICAgICAgIGVtaXQoICIgIDxraW5kPkludmFsaWQlczwva2luZD5cbiIsCiAgICAgICAgICAgICAgICAgICBleHRyYS0+RXJyLkFkZHIuaXNXcml0ZSA/ICJXcml0ZSIgOiAiUmVhZCIgICk7Ci0gICAgICAgICAgICBlbWl0KCAiICA8d2hhdD5JbnZhbGlkICVzIG9mIHNpemUgJWxkPC93aGF0PlxuIiwKKyAgICAgICAgICAgIGVtaXQoICIgIDx3aGF0PkludmFsaWQgJXMgb2Ygc2l6ZSAlbHU8L3doYXQ+XG4iLAogICAgICAgICAgICAgICAgICAgZXh0cmEtPkVyci5BZGRyLmlzV3JpdGUgPyAid3JpdGUiIDogInJlYWQiLAogICAgICAgICAgICAgICAgICAgZXh0cmEtPkVyci5BZGRyLnN6QiApOwogICAgICAgICAgICAgVkdfKHBwX0V4ZUNvbnRleHQpKCBWR18oZ2V0X2Vycm9yX3doZXJlKShlcnIpICk7CkBAIC02MDIsNyArNjAyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZleHRyYS0+RXJyLkFkZHIuYWksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYS0+RXJyLkFkZHIubWF5YmVfZ2NjICk7CiAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW1pdCggIkludmFsaWQgJXMgb2Ygc2l6ZSAlbGRcbiIsCisgICAgICAgICAgICBlbWl0KCAiSW52YWxpZCAlcyBvZiBzaXplICVsdVxuIiwKICAgICAgICAgICAgICAgICAgIGV4dHJhLT5FcnIuQWRkci5pc1dyaXRlID8gIndyaXRlIiA6ICJyZWFkIiwKICAgICAgICAgICAgICAgICAgIGV4dHJhLT5FcnIuQWRkci5zekIgKTsKICAgICAgICAgICAgIFZHXyhwcF9FeGVDb250ZXh0KSggVkdfKGdldF9lcnJvcl93aGVyZSkoZXJyKSApOwpAQCAtMTI1NiwxMyArMTI1NiwxMyBAQAogICAgICAgQ29yZU1lbVN1cHAsICAgLy8gTWVtb3J5IGVycm9ycyBpbiBjb3JlIChwdGhyZWFkIG9wcywgc2lnbmFsIGhhbmRsaW5nKQogCiAgICAgICAvLyBVbmRlZmluZWQgdmFsdWUgZXJyb3JzIG9mIGdpdmVuIHNpemUKLSAgICAgIFZhbHVlMVN1cHAsIFZhbHVlMlN1cHAsIFZhbHVlNFN1cHAsIFZhbHVlOFN1cHAsIFZhbHVlMTZTdXBwLAorICAgICAgVmFsdWUxU3VwcCwgVmFsdWUyU3VwcCwgVmFsdWU0U3VwcCwgVmFsdWU4U3VwcCwgVmFsdWUxNlN1cHAsIFZhbHVlMzJTdXBwLAogCiAgICAgICAvLyBVbmRlZmluZWQgdmFsdWUgZXJyb3IgaW4gY29uZGl0aW9uYWwuCiAgICAgICBDb25kU3VwcCwKIAogICAgICAgLy8gVW5hZGRyZXNzYWJsZSByZWFkL3dyaXRlIGF0dGVtcHQgYXQgZ2l2ZW4gc2l6ZQotICAgICAgQWRkcjFTdXBwLCBBZGRyMlN1cHAsIEFkZHI0U3VwcCwgQWRkcjhTdXBwLCBBZGRyMTZTdXBwLAorICAgICAgQWRkcjFTdXBwLCBBZGRyMlN1cHAsIEFkZHI0U3VwcCwgQWRkcjhTdXBwLCBBZGRyMTZTdXBwLCBBZGRyMzJTdXBwLAogCiAgICAgICBKdW1wU3VwcCwgICAgICAvLyBKdW1wIHRvIHVuYWRkcmVzc2FibGUgdGFyZ2V0CiAgICAgICBGcmVlU3VwcCwgICAgICAvLyBJbnZhbGlkIG9yIG1pc21hdGNoaW5nIGZyZWUKQEAgLTEyODUsNiArMTI4NSw3IEBACiAgICBlbHNlIGlmIChWR19TVFJFUShuYW1lLCAiQWRkcjQiKSkgICBza2luZCA9IEFkZHI0U3VwcDsKICAgIGVsc2UgaWYgKFZHX1NUUkVRKG5hbWUsICJBZGRyOCIpKSAgIHNraW5kID0gQWRkcjhTdXBwOwogICAgZWxzZSBpZiAoVkdfU1RSRVEobmFtZSwgIkFkZHIxNiIpKSAgc2tpbmQgPSBBZGRyMTZTdXBwOworICAgZWxzZSBpZiAoVkdfU1RSRVEobmFtZSwgIkFkZHIzMiIpKSAgc2tpbmQgPSBBZGRyMzJTdXBwOwogICAgZWxzZSBpZiAoVkdfU1RSRVEobmFtZSwgIkp1bXAiKSkgICAgc2tpbmQgPSBKdW1wU3VwcDsKICAgIGVsc2UgaWYgKFZHX1NUUkVRKG5hbWUsICJGcmVlIikpICAgIHNraW5kID0gRnJlZVN1cHA7CiAgICBlbHNlIGlmIChWR19TVFJFUShuYW1lLCAiTGVhayIpKSAgICBza2luZCA9IExlYWtTdXBwOwpAQCAtMTI5Nyw2ICsxMjk4LDcgQEAKICAgIGVsc2UgaWYgKFZHX1NUUkVRKG5hbWUsICJWYWx1ZTQiKSkgIHNraW5kID0gVmFsdWU0U3VwcDsKICAgIGVsc2UgaWYgKFZHX1NUUkVRKG5hbWUsICJWYWx1ZTgiKSkgIHNraW5kID0gVmFsdWU4U3VwcDsKICAgIGVsc2UgaWYgKFZHX1NUUkVRKG5hbWUsICJWYWx1ZTE2IikpIHNraW5kID0gVmFsdWUxNlN1cHA7CisgICBlbHNlIGlmIChWR19TVFJFUShuYW1lLCAiVmFsdWUzMiIpKSBza2luZCA9IFZhbHVlMzJTdXBwOwogICAgZWxzZSBpZiAoVkdfU1RSRVEobmFtZSwgIkZpc2h5VmFsdWUiKSkgc2tpbmQgPSBGaXNoeVZhbHVlU3VwcDsKICAgIGVsc2UgCiAgICAgICByZXR1cm4gRmFsc2U7CkBAIC0xNDEzLDYgKzE0MTUsNyBAQAogICAgICAgY2FzZSBWYWx1ZTRTdXBwOiBzdV9zekIgPSA0OyBnb3RvIHZhbHVlX2Nhc2U7CiAgICAgICBjYXNlIFZhbHVlOFN1cHA6IHN1X3N6QiA9IDg7IGdvdG8gdmFsdWVfY2FzZTsKICAgICAgIGNhc2UgVmFsdWUxNlN1cHA6c3Vfc3pCID0xNjsgZ290byB2YWx1ZV9jYXNlOworICAgICAgY2FzZSBWYWx1ZTMyU3VwcDpzdV9zekIgPTMyOyBnb3RvIHZhbHVlX2Nhc2U7CiAgICAgICB2YWx1ZV9jYXNlOgogICAgICAgICAgcmV0dXJuIChla2luZCA9PSBFcnJfVmFsdWUgJiYgZXh0cmEtPkVyci5WYWx1ZS5zekIgPT0gc3Vfc3pCKTsKIApAQCAtMTQyNCw2ICsxNDI3LDcgQEAKICAgICAgIGNhc2UgQWRkcjRTdXBwOiBzdV9zekIgPSA0OyBnb3RvIGFkZHJfY2FzZTsKICAgICAgIGNhc2UgQWRkcjhTdXBwOiBzdV9zekIgPSA4OyBnb3RvIGFkZHJfY2FzZTsKICAgICAgIGNhc2UgQWRkcjE2U3VwcDpzdV9zekIgPTE2OyBnb3RvIGFkZHJfY2FzZTsKKyAgICAgIGNhc2UgQWRkcjMyU3VwcDpzdV9zekIgPTMyOyBnb3RvIGFkZHJfY2FzZTsKICAgICAgIGFkZHJfY2FzZToKICAgICAgICAgIHJldHVybiAoZWtpbmQgPT0gRXJyX0FkZHIgJiYgZXh0cmEtPkVyci5BZGRyLnN6QiA9PSBzdV9zekIpOwogCkBAIC0xNDk1LDYgKzE0OTksNyBAQAogICAgICAgY2FzZSA0OiAgICAgICAgICAgICAgIHJldHVybiAiQWRkcjQiOwogICAgICAgY2FzZSA4OiAgICAgICAgICAgICAgIHJldHVybiAiQWRkcjgiOwogICAgICAgY2FzZSAxNjogICAgICAgICAgICAgIHJldHVybiAiQWRkcjE2IjsKKyAgICAgIGNhc2UgMzI6ICAgICAgICAgICAgICByZXR1cm4gIkFkZHIzMiI7CiAgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgVkdfKHRvb2xfcGFuaWMpKCJ1bmV4cGVjdGVkIHNpemUgZm9yIEFkZHIiKTsKICAgICAgIH0KICAgIH0KQEAgLTE1MDYsNiArMTUxMSw3IEBACiAgICAgICBjYXNlIDQ6ICAgICAgICAgICAgICAgcmV0dXJuICJWYWx1ZTQiOwogICAgICAgY2FzZSA4OiAgICAgICAgICAgICAgIHJldHVybiAiVmFsdWU4IjsKICAgICAgIGNhc2UgMTY6ICAgICAgICAgICAgICByZXR1cm4gIlZhbHVlMTYiOworICAgICAgY2FzZSAzMjogICAgICAgICAgICAgIHJldHVybiAiVmFsdWUzMiI7CiAgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgVkdfKHRvb2xfcGFuaWMpKCJ1bmV4cGVjdGVkIHNpemUgZm9yIFZhbHVlIik7CiAgICAgICB9CiAgICB9CmRpZmYgLS1naXQgYS9tZW1jaGVjay9tY19pbmNsdWRlLmggYi9tZW1jaGVjay9tY19pbmNsdWRlLmgKaW5kZXggZjUwYTA3OS4uNjYzY2RjYSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svbWNfaW5jbHVkZS5oCisrKyBiL21lbWNoZWNrL21jX2luY2x1ZGUuaApAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCiAgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjA3LDI2ICsyMDcsMTI5IEBACiAKIC8qIERlZmluZSB0byBjb2xsZWN0IGRldGFpbGVkIHBlcmZvcm1hbmNlIGluZm8uICovCiAvKiAjZGVmaW5lIE1DX1BST0ZJTEVfTUVNT1JZICovCi0KICNpZmRlZiBNQ19QUk9GSUxFX01FTU9SWQotIyAgZGVmaW5lIE5fUFJPRl9FVkVOVFMgNTAwCiAKLVVJbnQgICBNQ18oZXZlbnRfY3RyKVtOX1BST0ZfRVZFTlRTXTsKLUhDaGFyKiBNQ18oZXZlbnRfY3RyX25hbWUpW05fUFJPRl9FVkVOVFNdOworLyogT3JkZXIgb2YgZW51bWVyYXRvcnMgZG9lcyBub3QgbWF0dGVyLiBCdXQgTUNQRV9MQVNUIGhhcyB0byBiZSB0aGUgCisgICBsYXN0IGVudHJ5IGluIHRoZSBsaXN0IGFzIGl0IGlzIHVzZWQgYXMgYW4gYXJyYXkgYm91bmQuICovCitlbnVtIHsKKyAgIE1DUEVfTE9BRFY4LAorICAgTUNQRV9MT0FEVjhfU0xPVzEsCisgICBNQ1BFX0xPQURWOF9TTE9XMiwKKyAgIE1DUEVfTE9BRFYxNiwKKyAgIE1DUEVfTE9BRFYxNl9TTE9XMSwKKyAgIE1DUEVfTE9BRFYxNl9TTE9XMiwKKyAgIE1DUEVfTE9BRFYzMiwKKyAgIE1DUEVfTE9BRFYzMl9TTE9XMSwKKyAgIE1DUEVfTE9BRFYzMl9TTE9XMiwKKyAgIE1DUEVfTE9BRFY2NCwKKyAgIE1DUEVfTE9BRFY2NF9TTE9XMSwKKyAgIE1DUEVfTE9BRFY2NF9TTE9XMiwKKyAgIE1DUEVfTE9BRFZfMTI4X09SXzI1NiwKKyAgIE1DUEVfTE9BRFZfMTI4X09SXzI1Nl9TTE9XX0xPT1AsCisgICBNQ1BFX0xPQURWXzEyOF9PUl8yNTZfU0xPVzEsCisgICBNQ1BFX0xPQURWXzEyOF9PUl8yNTZfU0xPVzIsCisgICBNQ1BFX0xPQURWTl9TTE9XLAorICAgTUNQRV9MT0FEVk5fU0xPV19MT09QLAorICAgTUNQRV9TVE9SRVY4LAorICAgTUNQRV9TVE9SRVY4X1NMT1cxLAorICAgTUNQRV9TVE9SRVY4X1NMT1cyLAorICAgTUNQRV9TVE9SRVY4X1NMT1czLAorICAgTUNQRV9TVE9SRVY4X1NMT1c0LAorICAgTUNQRV9TVE9SRVYxNiwKKyAgIE1DUEVfU1RPUkVWMTZfU0xPVzEsCisgICBNQ1BFX1NUT1JFVjE2X1NMT1cyLAorICAgTUNQRV9TVE9SRVYxNl9TTE9XMywKKyAgIE1DUEVfU1RPUkVWMTZfU0xPVzQsCisgICBNQ1BFX1NUT1JFVjMyLAorICAgTUNQRV9TVE9SRVYzMl9TTE9XMSwKKyAgIE1DUEVfU1RPUkVWMzJfU0xPVzIsCisgICBNQ1BFX1NUT1JFVjMyX1NMT1czLAorICAgTUNQRV9TVE9SRVYzMl9TTE9XNCwKKyAgIE1DUEVfU1RPUkVWNjQsCisgICBNQ1BFX1NUT1JFVjY0X1NMT1cxLAorICAgTUNQRV9TVE9SRVY2NF9TTE9XMiwKKyAgIE1DUEVfU1RPUkVWNjRfU0xPVzMsCisgICBNQ1BFX1NUT1JFVjY0X1NMT1c0LAorICAgTUNQRV9TVE9SRVZOX1NMT1csCisgICBNQ1BFX1NUT1JFVk5fU0xPV19MT09QLAorICAgTUNQRV9NQUtFX0FMSUdORURfV09SRDMyX1VOREVGSU5FRCwKKyAgIE1DUEVfTUFLRV9BTElHTkVEX1dPUkQzMl9VTkRFRklORURfU0xPVywKKyAgIE1DUEVfTUFLRV9BTElHTkVEX1dPUkQ2NF9VTkRFRklORUQsCisgICBNQ1BFX01BS0VfQUxJR05FRF9XT1JENjRfVU5ERUZJTkVEX1NMT1csCisgICBNQ1BFX01BS0VfQUxJR05FRF9XT1JEMzJfTk9BQ0NFU1MsCisgICBNQ1BFX01BS0VfQUxJR05FRF9XT1JEMzJfTk9BQ0NFU1NfU0xPVywKKyAgIE1DUEVfTUFLRV9BTElHTkVEX1dPUkQ2NF9OT0FDQ0VTUywKKyAgIE1DUEVfTUFLRV9BTElHTkVEX1dPUkQ2NF9OT0FDQ0VTU19TTE9XLAorICAgTUNQRV9NQUtFX01FTV9OT0FDQ0VTUywKKyAgIE1DUEVfTUFLRV9NRU1fVU5ERUZJTkVELAorICAgTUNQRV9NQUtFX01FTV9VTkRFRklORURfV19PVEFHLAorICAgTUNQRV9NQUtFX01FTV9ERUZJTkVELAorICAgTUNQRV9DSEVBUF9TQU5JVFlfQ0hFQ0ssCisgICBNQ1BFX0VYUEVOU0lWRV9TQU5JVFlfQ0hFQ0ssCisgICBNQ1BFX0NPUFlfQUREUkVTU19SQU5HRV9TVEFURSwKKyAgIE1DUEVfQ09QWV9BRERSRVNTX1JBTkdFX1NUQVRFX0xPT1AxLAorICAgTUNQRV9DT1BZX0FERFJFU1NfUkFOR0VfU1RBVEVfTE9PUDIsCisgICBNQ1BFX0NIRUNLX01FTV9JU19OT0FDQ0VTUywKKyAgIE1DUEVfQ0hFQ0tfTUVNX0lTX05PQUNDRVNTX0xPT1AsCisgICBNQ1BFX0lTX01FTV9BRERSRVNTQUJMRSwKKyAgIE1DUEVfSVNfTUVNX0FERFJFU1NBQkxFX0xPT1AsCisgICBNQ1BFX0lTX01FTV9ERUZJTkVELAorICAgTUNQRV9JU19NRU1fREVGSU5FRF9MT09QLAorICAgTUNQRV9JU19NRU1fREVGSU5FRF9DT01QUkVIRU5TSVZFLAorICAgTUNQRV9JU19NRU1fREVGSU5FRF9DT01QUkVIRU5TSVZFX0xPT1AsCisgICBNQ1BFX0lTX0RFRklORURfQVNDSUlaLAorICAgTUNQRV9JU19ERUZJTkVEX0FTQ0lJWl9MT09QLAorICAgTUNQRV9GSU5EX0NIVU5LX0ZPUl9PTEQsCisgICBNQ1BFX0ZJTkRfQ0hVTktfRk9SX09MRF9MT09QLAorICAgTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNUywKKyAgIE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfU0lOR0xFX1NFQ01BUCwKKyAgIE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfU1RBUlRPRl9TRUNNQVAsCisgICBNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX01VTFRJUExFX1NFQ01BUFMsCisgICBNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0RJU1RfU00xLAorICAgTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19ESVNUX1NNMiwKKyAgIE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfRElTVF9TTTFfUVVJQ0ssCisgICBNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0RJU1RfU00yX1FVSUNLLAorICAgTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19MT09QMUEsCisgICBNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0xPT1AxQiwKKyAgIE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfTE9PUDFDLAorICAgTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19MT09QOEEsCisgICBNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0xPT1A4QiwKKyAgIE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfTE9PUDY0SywKKyAgIE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfTE9PUDY0S19GUkVFX0RJU1RfU00sCisgICBNQ1BFX05FV19NRU1fU1RBQ0ssCisgICBNQ1BFX05FV19NRU1fU1RBQ0tfNCwKKyAgIE1DUEVfTkVXX01FTV9TVEFDS184LAorICAgTUNQRV9ORVdfTUVNX1NUQUNLXzEyLAorICAgTUNQRV9ORVdfTUVNX1NUQUNLXzE2LAorICAgTUNQRV9ORVdfTUVNX1NUQUNLXzMyLAorICAgTUNQRV9ORVdfTUVNX1NUQUNLXzExMiwKKyAgIE1DUEVfTkVXX01FTV9TVEFDS18xMjgsCisgICBNQ1BFX05FV19NRU1fU1RBQ0tfMTQ0LAorICAgTUNQRV9ORVdfTUVNX1NUQUNLXzE2MCwKKyAgIE1DUEVfRElFX01FTV9TVEFDSywKKyAgIE1DUEVfRElFX01FTV9TVEFDS180LAorICAgTUNQRV9ESUVfTUVNX1NUQUNLXzgsCisgICBNQ1BFX0RJRV9NRU1fU1RBQ0tfMTIsCisgICBNQ1BFX0RJRV9NRU1fU1RBQ0tfMTYsCisgICBNQ1BFX0RJRV9NRU1fU1RBQ0tfMzIsCisgICBNQ1BFX0RJRV9NRU1fU1RBQ0tfMTEyLAorICAgTUNQRV9ESUVfTUVNX1NUQUNLXzEyOCwKKyAgIE1DUEVfRElFX01FTV9TVEFDS18xNDQsCisgICBNQ1BFX0RJRV9NRU1fU1RBQ0tfMTYwLAorICAgLyogRG8gbm90IGFkZCBlbnVtZXJhdG9ycyBwYXN0IHRoaXMgbGluZS4gKi8KKyAgIE1DUEVfTEFTVAorfTsKIAotIyAgZGVmaW5lIFBST0ZfRVZFTlQoZXYsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICBkbyB7IHRsX2Fzc2VydCgoZXYpID49IDAgJiYgKGV2KSA8IE5fUFJPRl9FVkVOVFMpOyAgICAgICAgIFwKLSAgICAgICAgLyogY3J1ZGUgYW5kIGluYWNjdXJhdGUgY2hlY2sgdG8gZW5zdXJlIHRoZSBzYW1lICovICAgXAotICAgICAgICAvKiBldmVudCBpc24ndCBiZWluZyB1c2VkIHdpdGggPiAxIG5hbWUgKi8gICAgICAgICAgICBcCi0gICAgICAgIGlmIChNQ18oZXZlbnRfY3RyX25hbWUpW2V2XSkgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICB0bF9hc3NlcnQobmFtZSA9PSBNQ18oZXZlbnRfY3RyX25hbWUpW2V2XSk7ICAgICAgIFwKLSAgICAgICAgTUNfKGV2ZW50X2N0cilbZXZdKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIE1DXyhldmVudF9jdHJfbmFtZSlbZXZdID0gKG5hbWUpOyAgICAgICAgICAgICAgICAgICAgXAorZXh0ZXJuIFVMb25nIE1DXyhldmVudF9jdHIpW01DUEVfTEFTVF07CisKKyMgIGRlZmluZSBQUk9GX0VWRU5UKGV2KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIGRvIHsgdGxfYXNzZXJ0KChldikgPj0gMCAmJiAoZXYpIDwgTUNQRV9MQVNUKTsgIFwKKyAgICAgIE1DXyhldmVudF9jdHIpW2V2XSsrOyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gd2hpbGUgKEZhbHNlKTsKIAogI2Vsc2UKIAotIyAgZGVmaW5lIFBST0ZfRVZFTlQoZXYsIG5hbWUpIC8qICovCisjICBkZWZpbmUgUFJPRl9FVkVOVChldikgICAgLyogKi8KIAogI2VuZGlmICAgLyogTUNfUFJPRklMRV9NRU1PUlkgKi8KIApAQCAtMzU3LDEwICs0NjAsMTYgQEAKIC8vIG1haW50YWlucyB0aGUgbGNwLmRlbHRhbW9kZSBnaXZlbiBpbiB0aGUgbGFzdCBjYWxsIHRvIGRldGVjdF9tZW1vcnlfbGVha3MKIGV4dGVybiBMZWFrQ2hlY2tEZWx0YU1vZGUgTUNfKGRldGVjdF9tZW1vcnlfbGVha3NfbGFzdF9kZWx0YV9tb2RlKTsKIAotLy8gcHJpbnRzIHRoZSBsaXN0IG9mIGJsb2NrcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBsb3NzX3JlY29yZF9uci4KLS8vIFJldHVybnMgVHJ1ZSBpZiBsb3NzX3JlY29yZF9uciBpZGVudGlmaWVzIGEgY29ycmVjdCBsb3NzIHJlY29yZCBmcm9tIGxhc3QKLS8vIGxlYWsgc2VhcmNoLCByZXR1cm5zIEZhbHNlIG90aGVyd2lzZS4KLUJvb2wgTUNfKHByaW50X2Jsb2NrX2xpc3QpICggVUludCBsb3NzX3JlY29yZF9ucik7CisvLyBwcmludHMgdGhlIGxpc3Qgb2YgYmxvY2tzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGxvc3NfcmVjb3JkX25yIHNsaWNlCisvLyAoZnJvbS90bykgKHVwIHRvIG1heGltdW0gbWF4X2Jsb2NrcykKKy8vIFJldHVybnMgVHJ1ZSBpZiBsb3NzX3JlY29yZF9ucl9mcm9tIGlkZW50aWZpZXMgYSBjb3JyZWN0IGxvc3MgcmVjb3JkCisvLyBmcm9tIGxhc3QgbGVhayBzZWFyY2gsIHJldHVybnMgRmFsc2Ugb3RoZXJ3aXNlLgorLy8gTm90ZSB0aGF0IGxvc3NfcmVjb3JkX25yX3RvIGNhbiBiZSBiaWdnZXIgdGhhbiB0aGUgbnIgb2YgbG9zcyByZWNvcmRzLiBBbGwKKy8vIGxvc3MgcmVjb3JkcyBhZnRlciBmcm9tIHdpbGwgdGhlbiBiZSBleGFtaW5lZCBhbmQgbWF5YmUgcHJpbnRlZC4KKy8vIElmIGhldXJpc3RpY3MgIT0gMCwgcHJpbnQgb25seSB0aGUgbG9zcyByZWNvcmRzL2Jsb2NrcyBmb3VuZCB2aWEKKy8vIG9uZSBvZiB0aGUgaGV1cmlzdGljcyBpbiB0aGUgc2V0LgorQm9vbCBNQ18ocHJpbnRfYmxvY2tfbGlzdCkgKCBVSW50IGxvc3NfcmVjb3JkX25yX2Zyb20sIFVJbnQgbG9zc19yZWNvcmRfbnJfdG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJbnQgbWF4X2Jsb2NrcywgVUludCBoZXVyaXN0aWNzKTsKIAogLy8gUHJpbnRzIHRoZSBhZGRyZXNzZXMvcmVnaXN0ZXJzLy4uLiBhdCB3aGljaCBhIHBvaW50ZXIgdG8KIC8vIHRoZSBnaXZlbiByYW5nZSBbYWRkcmVzcywgYWRkcmVzcytzekJbIGlzIGZvdW5kLgpAQCAtNTMzLDcgKzY0Miw3IEBACiAjZGVmaW5lIEhpUyhoLHMpICgocykgJiBIMlMoaCkpCiAKIC8qIEhldXJpc3RpY3Mgc2V0IHRvIHVzZSBmb3IgdGhlIGxlYWsgc2VhcmNoLgotICAgRGVmYXVsdCA6IG5vIGhldXJpc3RpYy4gKi8KKyAgIERlZmF1bHQgOiBhbGwgaGV1cmlzdGljcy4gKi8KIGV4dGVybiBVSW50IE1DXyhjbG9fbGVha19jaGVja19oZXVyaXN0aWNzKTsKIAogLyogQXNzdW1lIGFjY2Vzc2VzIGltbWVkaWF0ZWx5IGJlbG93ICVlc3AgYXJlIGR1ZSB0byBnY2MtMi45NiBidWdzLgpAQCAtNTkxLDYgKzcwMCw5IEBACiAvKiBTaG91bGQgd2Ugc2hvdyBtaXNtYXRjaGVkIGZyZWVzPyAgRGVmYXVsdDogWUVTICovCiBleHRlcm4gQm9vbCBNQ18oY2xvX3Nob3dfbWlzbWF0Y2hlZF9mcmVlcyk7CiAKKy8qIFNob3VsZCB3ZSB1c2UgZXhwZW5zaXZlIGRlZmluZWRuZXNzIGNoZWNraW5nIGZvciBhZGQvc3ViIGFuZCBjb21wYXJlCisgICBvcGVyYXRpb25zPyBEZWZhdWx0OiBOTyAqLworZXh0ZXJuIEJvb2wgTUNfKGNsb19leHBlbnNpdmVfZGVmaW5lZG5lc3NfY2hlY2tzKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gSW5zdHJ1bWVudGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svbWNfbGVha2NoZWNrLmMgYi9tZW1jaGVjay9tY19sZWFrY2hlY2suYwppbmRleCA3OTFhNWMxLi5kMWQxZjIzIDEwMDY0NAotLS0gYS9tZW1jaGVjay9tY19sZWFrY2hlY2suYworKysgYi9tZW1jaGVjay9tY19sZWFrY2hlY2suYwpAQCAtNyw3ICs3LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCiAgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjY1LDkgKzI2NSw5IEBACiB7CiAgICBJbnQgIGk7CiAgICBBZGRyIGFfbG8sIGFfaGk7Ci0gICBQUk9GX0VWRU5UKDcwLCAiZmluZF9jaHVua19mb3JfT0xEIik7CisgICBQUk9GX0VWRU5UKE1DUEVfRklORF9DSFVOS19GT1JfT0xEKTsKICAgIGZvciAoaSA9IDA7IGkgPCBuX2NodW5rczsgaSsrKSB7Ci0gICAgICBQUk9GX0VWRU5UKDcxLCAiZmluZF9jaHVua19mb3JfT0xEKGxvb3ApIik7CisgICAgICBQUk9GX0VWRU5UKE1DUEVfRklORF9DSFVOS19GT1JfT0xEX0xPT1ApOwogICAgICAgYV9sbyA9IGNodW5rc1tpXS0+ZGF0YTsKICAgICAgIGFfaGkgPSAoKEFkZHIpY2h1bmtzW2ldLT5kYXRhKSArIGNodW5rc1tpXS0+c3pCOwogICAgICAgaWYgKGFfbG8gPD0gcHRyICYmIHB0ciA8IGFfaGkpCkBAIC02ODMsNiArNjgzLDY1IEBACiAgICAgICAmJiBNQ18oaXNfdmFsaWRfYWxpZ25lZF93b3JkKShhICsgNCk7CiB9CiAKKy8qIFRoZSBiZWxvdyBsZWFrX3NlYXJjaF9mYXVsdF9jYXRjaGVyIGlzIHVzZWQgdG8gY2F0Y2ggbWVtb3J5IGFjY2VzcworICAgZXJyb3JzIGhhcHBlbmluZyBkdXJpbmcgbGVha19zZWFyY2guICBEdXJpbmcgdGhlIHNjYW4sIHdlIGNoZWNrCisgICB3aXRoIGFzcGFjZW1nciBhbmQvb3IgVkEgYml0cyB0aGF0IGVhY2ggcGFnZSBvciBkZXJlZmVyZW5jZWQgbG9jYXRpb24gaXMKKyAgIHJlYWRhYmxlIGFuZCBiZWxvbmdzIHRvIHRoZSBjbGllbnQuICBIb3dldmVyLCB3ZSBzdGlsbCBwcm90ZWN0CisgICBhZ2FpbnN0IFNJR1NFR1YgYW5kIFNJR0JVUyBlLmcuIGluIGNhc2UgYXNwYWNlbWdyIGlzIGRlc3luY2hyb25pc2VkCisgICB3aXRoIHRoZSByZWFsIHBhZ2UgbWFwcGluZ3MuICBTdWNoIGEgZGVzeW5jaHJvbmlzYXRpb24gY291bGQgaGFwcGVuCisgICBkdWUgdG8gYW4gYXNwYWNlbWdyIGJ1Zy4gIE5vdGUgdGhhdCBpZiB0aGUgYXBwbGljYXRpb24gaXMgdXNpbmcKKyAgIG1wcm90ZWN0KE5PTkUpLCB0aGVuIGEgcGFnZSBjYW4gYmUgdW5yZWFkYWJsZSBidXQgaGF2ZSBhZGRyZXNzYWJsZQorICAgYW5kIGRlZmluZWQgVkEgYml0cyAoc2VlIG1jX21haW4uYyBmdW5jdGlvbiBtY19uZXdfbWVtX21wcm90ZWN0KS4KKyAgIEN1cnJlbnRseSwgMiBmdW5jdGlvbnMgYXJlIGRlcmVmZXJlbmNpbmcgY2xpZW50IG1lbW9yeSBkdXJpbmcgbGVhayBzZWFyY2g6CisgICBoZXVyaXN0aWNfcmVhY2hlZG5lc3MgYW5kIGxjX3NjYW5fbWVtb3J5LgorICAgRWFjaCBzdWNoIGZ1bmN0aW9uIGhhcyBpdHMgb3duIGZhdWx0IGNhdGNoZXIsIHRoYXQgd2lsbCBjYWxsCisgICBsZWFrX3NlYXJjaF9mYXVsdF9jYXRjaGVyIHdpdGggdGhlIHByb3BlciAnd2hvJyBhbmQgam1wYnVmIHBhcmFtZXRlcnMuICovCitzdGF0aWMgdm9sYXRpbGUgQWRkciBiYWRfc2Nhbm5lZF9hZGRyOworc3RhdGljCit2b2lkIGxlYWtfc2VhcmNoX2ZhdWx0X2NhdGNoZXIgKCBJbnQgc2lnTm8sIEFkZHIgYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhDaGFyICp3aG8sIFZHX01JTklNQUxfSk1QX0JVRihqbXBidWYpICkKK3sKKyAgIHZraV9zaWdzZXRfdCBzaWdtYXNrOworCisgICBpZiAoMCkKKyAgICAgIFZHXyhwcmludGYpKCJPVUNIISBzaWc9JWQgYWRkcj0lI2x4IHdobz0lc1xuIiwgc2lnTm8sIGFkZHIsIHdobyk7CisKKyAgIC8qIFNpZ25hbCBoYW5kbGVyIHJ1bnMgd2l0aCB0aGUgc2lnbmFsIG1hc2tlZC4KKyAgICAgIFVubWFzayB0aGUgaGFuZGxlZCBzaWduYWwgYmVmb3JlIGxvbmdqbXAtaW5nIG9yIHJldHVybi1pbmcuCisgICAgICBOb3RlIHRoYXQgZHVyaW5nIGxlYWsgc2VhcmNoLCB3ZSBleHBlY3Qgb25seSBTSUdTRUdWIG9yIFNJR0JVUworICAgICAgYW5kIHdlIGRvIG5vdCBleHBlY3QgYW5vdGhlciBvY2N1cmVuY2UgdW50aWwgd2UgbG9uZ2ptcC1lZCFyZXR1cm4tZWQKKyAgICAgIHRvIHJlc3VtZSB0aGUgbGVhayBzZWFyY2guIFNvLCBpdCBpcyBzYWZlIHRvIHVubWFzayB0aGUgc2lnbmFsCisgICAgICBoZXJlLiAqLworICAgLyogRmlyc3QgZ2V0IGN1cnJlbnQgbWFzayAoYnkgcGFzc2luZyBOVUxMIGFzIGZpcnN0IGFyZykgKi8KKyAgIFZHXyhzaWdwcm9jbWFzaykoVktJX1NJR19TRVRNQVNLLCBOVUxMLCAmc2lnbWFzayk7CisgICAvKiBUaGVuIHNldCBhIG5ldyBzaWdtYXNrLCB3aXRoIHRoaXMgc2lnbmFsIHJlbW92ZWQgZnJvbSB0aGUgbWFzay4gKi8KKyAgIFZHXyhzaWdkZWxzZXQpKCZzaWdtYXNrLCBzaWdObyk7CisgICBWR18oc2lncHJvY21hc2spKFZLSV9TSUdfU0VUTUFTSywgJnNpZ21hc2ssIE5VTEwpOworCisgICBpZiAoc2lnTm8gPT0gVktJX1NJR1NFR1YgfHwgc2lnTm8gPT0gVktJX1NJR0JVUykgeworICAgICAgYmFkX3NjYW5uZWRfYWRkciA9IGFkZHI7CisgICAgICBWR19NSU5JTUFMX0xPTkdKTVAoam1wYnVmKTsKKyAgIH0gZWxzZSB7CisgICAgICAvKiA/Pz8gRHVyaW5nIGxlYWsgc2VhcmNoLCB3ZSBhcmUgbm90IHN1cHBvc2VkIHRvIHJlY2VpdmUgYW55CisgICAgICAgICBvdGhlciBzeW5jIHNpZ25hbCB0aGF0IHRoZXNlIDIuCisgICAgICAgICBJbiB0aGVvcnksIHdlIHNob3VsZCBub3QgY2FsbCBWR18odW1zZykgaW4gYSBzaWduYWwgaGFuZGxlciwKKyAgICAgICAgIGJ1dCBiZXR0ZXIgKHRyeSB0bykgcmVwb3J0IHRoaXMgdW5leHBlY3RlZCBiZWhhdmlvdXIuICovCisgICAgICBWR18odW1zZykoImxlYWtfc2VhcmNoX2ZhdWx0X2NhdGNoZXI6IgorICAgICAgICAgICAgICAgICIgdW5leHBlY3RlZCBzaWduYWwgJWQsIGNhdGNoZXIgJXMgPz8/XG4iLAorICAgICAgICAgICAgICAgIHNpZ05vLCB3aG8pOworICAgfQorfQorCisvLyBqbXBidWYgYW5kIGZhdWx0X2NhdGNoZXIgdXNlZCBkdXJpbmcgaGV1cmlzdGljX3JlYWNoZWRuZXNzCitzdGF0aWMgVkdfTUlOSU1BTF9KTVBfQlVGKGhldXJpc3RpY19yZWFjaGVkbmVzc19qbXBidWYpOworc3RhdGljCit2b2lkIGhldXJpc3RpY19yZWFjaGVkbmVzc19mYXVsdF9jYXRjaGVyICggSW50IHNpZ05vLCBBZGRyIGFkZHIgKQoreworICAgbGVha19zZWFyY2hfZmF1bHRfY2F0Y2hlciAoc2lnTm8sIGFkZHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhldXJpc3RpY19yZWFjaGVkbmVzc19mYXVsdF9jYXRjaGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhldXJpc3RpY19yZWFjaGVkbmVzc19qbXBidWYpOworfQorCiAvLyBJZiBjaCBpcyBoZXVyaXN0aWNhbGx5IHJlYWNoYWJsZSB2aWEgYW4gaGV1cmlzdGljIG1lbWJlciBvZiBoZXVyX3NldCwKIC8vIHJldHVybnMgdGhpcyBoZXVyaXN0aWMuCiAvLyBJZiBjaCBjYW5ub3QgYmUgY29uc2lkZXJlZCByZWFjaGFibGUgdXNpbmcgb25lIG9mIHRoZXNlIGhldXJpc3RpY3MsCkBAIC02OTYsNiArNzU1LDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNfQ2h1bmsgKmNoLCBMQ19FeHRyYSAqZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUludCBoZXVyX3NldCkKIHsKKworICAgZmF1bHRfY2F0Y2hlcl90IHByZXZfY2F0Y2hlcjsKKworICAgcHJldl9jYXRjaGVyID0gVkdfKHNldF9mYXVsdF9jYXRjaGVyKShoZXVyaXN0aWNfcmVhY2hlZG5lc3NfZmF1bHRfY2F0Y2hlcik7CisKKyAgIC8vIFNlZSBsZWFrX3NlYXJjaF9mYXVsdF9jYXRjaGVyCisgICBpZiAoVkdfTUlOSU1BTF9TRVRKTVAoaGV1cmlzdGljX3JlYWNoZWRuZXNzX2ptcGJ1ZikgIT0gMCkgeworICAgICAgVkdfKHNldF9mYXVsdF9jYXRjaGVyKSAocHJldl9jYXRjaGVyKTsKKyAgICAgIHJldHVybiBMY2hOb25lOworICAgfQorCiAgICBpZiAoSGlTKExjaFN0ZFN0cmluZywgaGV1cl9zZXQpKSB7CiAgICAgICAvLyBEZXRlY3RzIGlubmVyIHBvaW50ZXJzIHRvIFN0ZDo6U3RyaW5nIGZvciBsYXlvdXQgYmVpbmcKICAgICAgIC8vICAgICBsZW5ndGggY2FwYWNpdHkgcmVmY291bnQgY2hhcl9hcnJheVtdIFwwCkBAIC03MTcsNiArNzg3LDcgQEAKICAgICAgICAgICAgICAgIC8vID8/PyBwcm9iYWJseSBub3QgYSBnb29kIGlkZWEsIGFzIEkgZ3Vlc3Mgc3Rkc3RyaW5nCiAgICAgICAgICAgICAgICAvLyA/Pz8gYWxsb2NhdG9yIGNhbiBiZSBkb25lIHZpYSBjdXN0b20gYWxsb2NhdG9yCiAgICAgICAgICAgICAgICAvLyA/Pz8gb3IgZXZlbiBhIGNhbGwgdG8gbWFsbG9jID8/Pz8KKyAgICAgICAgICAgICAgIFZHXyhzZXRfZmF1bHRfY2F0Y2hlcikgKHByZXZfY2F0Y2hlcik7CiAgICAgICAgICAgICAgICByZXR1cm4gTGNoU3RkU3RyaW5nOwogICAgICAgICAgICAgfQogICAgICAgICAgfQpAQCAtNzM1LDYgKzgwNiw3IEBACiAgICAgICAgICAgJiYgaXNfdmFsaWRfYWxpZ25lZF9VTG9uZyhjaC0+ZGF0YSkpIHsKICAgICAgICAgIGNvbnN0IFVMb25nIHNpemUgPSAqKChVTG9uZyopY2gtPmRhdGEpOwogICAgICAgICAgaWYgKHNpemUgPiAwICYmIChjaC0+c3pCIC0gc2l6ZW9mKFVMb25nKSkgPT0gc2l6ZSkgeworICAgICAgICAgICAgVkdfKHNldF9mYXVsdF9jYXRjaGVyKSAocHJldl9jYXRjaGVyKTsKICAgICAgICAgICAgIHJldHVybiBMY2hMZW5ndGg2NDsKICAgICAgICAgIH0KICAgICAgIH0KQEAgLTc2MSw2ICs4MzMsNyBAQAogICAgICAgICAgY29uc3QgU2l6ZVQgbnJfZWx0cyA9ICooKFNpemVUKiljaC0+ZGF0YSk7CiAgICAgICAgICBpZiAobnJfZWx0cyA+IDAgJiYgKGNoLT5zekIgLSBzaXplb2YoU2l6ZVQpKSAlIG5yX2VsdHMgPT0gMCkgewogICAgICAgICAgICAgLy8gPz8/IGNvdWxkIGNoZWNrIHRoYXQgY2gtPmFsbG9ja2luZCBpcyBNQ19BbGxvY05ld1ZlYyA/Pz8KKyAgICAgICAgICAgIFZHXyhzZXRfZmF1bHRfY2F0Y2hlcikgKHByZXZfY2F0Y2hlcik7CiAgICAgICAgICAgICByZXR1cm4gTGNoTmV3QXJyYXk7CiAgICAgICAgICB9CiAgICAgICB9CkBAIC03OTIsMTIgKzg2NSwxNCBAQAogICAgICAgICAgICAgICAgICYmIGFsaWduZWRfcHRyX2Fib3ZlX3BhZ2UwX2lzX3Z0YWJsZV9hZGRyKGlubmVyX2FkZHIpCiAgICAgICAgICAgICAgICAgJiYgYWxpZ25lZF9wdHJfYWJvdmVfcGFnZTBfaXNfdnRhYmxlX2FkZHIoZmlyc3RfYWRkcikpIHsKICAgICAgICAgICAgICAgIC8vID8/PyBjb3VsZCBjaGVjayB0aGF0IGNoLT5hbGxvY2tpbmQgaXMgTUNfQWxsb2NOZXcgPz8/CisgICAgICAgICAgICAgICBWR18oc2V0X2ZhdWx0X2NhdGNoZXIpIChwcmV2X2NhdGNoZXIpOwogICAgICAgICAgICAgICAgcmV0dXJuIExjaE11bHRpcGxlSW5oZXJpdGFuY2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICB9CiAgICB9CiAKKyAgIFZHXyhzZXRfZmF1bHRfY2F0Y2hlcikgKHByZXZfY2F0Y2hlcik7CiAgICByZXR1cm4gTGNoTm9uZTsKIH0KIApAQCAtODk5LDExICs5NzQsMTAgQEAKICAgICAgIGlmIChWR19ERUJVR19DTElRVUUpIHsKICAgICAgICAgIGlmIChleC0+SW9yQy5pbmRpcmVjdF9zekIgPiAwKQogICAgICAgICAgICAgVkdfKHByaW50ZikoIiAgY2xpcXVlICVkIGpvaW5pbmcgY2xpcXVlICVkIGFkZGluZyAlbHUrJWx1XG4iLCAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoX25vLCBjbGlxdWUsICh1bnNpZ25lZCBsb25nKWNoLT5zekIsCi0JCQkodW5zaWduZWQgbG9uZylleC0+SW9yQy5pbmRpcmVjdF9zekIpOworICAgICAgICAgICAgICAgICAgICAgICAgY2hfbm8sIGNsaXF1ZSwgKFNpemVUKWNoLT5zekIsIGV4LT5Jb3JDLmluZGlyZWN0X3N6Qik7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgICBWR18ocHJpbnRmKSgiICBibG9jayAlZCBqb2luaW5nIGNsaXF1ZSAlZCBhZGRpbmcgJWx1XG4iLCAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoX25vLCBjbGlxdWUsICh1bnNpZ25lZCBsb25nKWNoLT5zekIpOworICAgICAgICAgICAgICAgICAgICAgICAgY2hfbm8sIGNsaXF1ZSwgKFNpemVUKWNoLT5zekIpOwogICAgICAgfQogCiAgICAgICBsY19leHRyYXNbY2xpcXVlXS5Jb3JDLmluZGlyZWN0X3N6QiArPSBjaC0+c3pCOwpAQCAtOTI0LDE4ICs5OTgsMTMgQEAKIH0KIAogCi1zdGF0aWMgVkdfTUlOSU1BTF9KTVBfQlVGKG1lbXNjYW5fam1wYnVmKTsKLXN0YXRpYyB2b2xhdGlsZSBBZGRyIGJhZF9zY2FubmVkX2FkZHI7Ci0KK3N0YXRpYyBWR19NSU5JTUFMX0pNUF9CVUYobGNfc2Nhbl9tZW1vcnlfam1wYnVmKTsKIHN0YXRpYwotdm9pZCBzY2FuX2FsbF92YWxpZF9tZW1vcnlfY2F0Y2hlciAoIEludCBzaWdObywgQWRkciBhZGRyICkKK3ZvaWQgbGNfc2Nhbl9tZW1vcnlfZmF1bHRfY2F0Y2hlciAoIEludCBzaWdObywgQWRkciBhZGRyICkKIHsKLSAgIGlmICgwKQotICAgICAgVkdfKHByaW50ZikoIk9VQ0ghIHNpZz0lZCBhZGRyPSUjbHhcbiIsIHNpZ05vLCBhZGRyKTsKLSAgIGlmIChzaWdObyA9PSBWS0lfU0lHU0VHViB8fCBzaWdObyA9PSBWS0lfU0lHQlVTKSB7Ci0gICAgICBiYWRfc2Nhbm5lZF9hZGRyID0gYWRkcjsKLSAgICAgIFZHX01JTklNQUxfTE9OR0pNUChtZW1zY2FuX2ptcGJ1Zik7Ci0gICB9CisgICBsZWFrX3NlYXJjaF9mYXVsdF9jYXRjaGVyIChzaWdObywgYWRkciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGNfc2Nhbl9tZW1vcnlfZmF1bHRfY2F0Y2hlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsY19zY2FuX21lbW9yeV9qbXBidWYpOwogfQogCiAvLyBsY19zY2FuX21lbW9yeSBoYXMgMiBtb2RlczoKQEAgLTk0Myw3ICsxMDEyLDcgQEAKIC8vIDEuIExlYWsgY2hlY2sgbW9kZSAoc2VhcmNoZWQgPT0gMCkuCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gU2NhbiBhIGJsb2NrIG9mIG1lbW9yeSBiZXR3ZWVuIFtzdGFydCwgc3RhcnQrbGVuKS4gIFRoaXMgcmFuZ2UgbWF5Ci0vLyBiZSBib2d1cywgaW5hY2Nlc3NhYmxlLCBvciBvdGhlcndpc2Ugc3RyYW5nZTsgd2UgZGVhbCB3aXRoIGl0LiAgRm9yIGVhY2gKKy8vIGJlIGJvZ3VzLCBpbmFjY2Vzc2libGUsIG9yIG90aGVyd2lzZSBzdHJhbmdlOyB3ZSBkZWFsIHdpdGggaXQuICBGb3IgZWFjaAogLy8gdmFsaWQgYWxpZ25lZCB3b3JkIHdlIGFzc3VtZSBpdCdzIGEgcG9pbnRlciB0byBhIGNodW5rIGEgcHVzaCB0aGUgY2h1bmsKIC8vIG9udG8gdGhlIG1hcmsgc3RhY2sgaWYgc28uCiAvLyBjbGlxdWUgaXMgdGhlICJoaWdoZXN0IGxldmVsIGNsaXF1ZSIgaW4gd2hpY2ggaW5kaXJlY3RseSBsZWFrZWQgYmxvY2tzIGhhdmUKQEAgLTk4NCwxOCArMTA1MywxNyBAQAogI2VuZGlmCiAgICBBZGRyIHB0ciA9IFZHX1JPVU5EVVAoc3RhcnQsIHNpemVvZihBZGRyKSk7CiAgICBjb25zdCBBZGRyIGVuZCA9IFZHX1JPVU5ERE4oc3RhcnQrbGVuLCBzaXplb2YoQWRkcikpOwotICAgdmtpX3NpZ3NldF90IHNpZ21hc2s7CisgICBmYXVsdF9jYXRjaGVyX3QgcHJldl9jYXRjaGVyOwogCiAgICBpZiAoVkdfREVCVUdfTEVBS0NIRUNLKQogICAgICAgVkdfKHByaW50ZikoInNjYW4gJSNseC0lI2x4ICglbHUpXG4iLCBzdGFydCwgZW5kLCBsZW4pOwogCi0gICBWR18oc2lncHJvY21hc2spKFZLSV9TSUdfU0VUTUFTSywgTlVMTCwgJnNpZ21hc2spOwotICAgVkdfKHNldF9mYXVsdF9jYXRjaGVyKShzY2FuX2FsbF92YWxpZF9tZW1vcnlfY2F0Y2hlcik7CisgICBwcmV2X2NhdGNoZXIgPSBWR18oc2V0X2ZhdWx0X2NhdGNoZXIpKGxjX3NjYW5fbWVtb3J5X2ZhdWx0X2NhdGNoZXIpOwogCiAgICAvKiBPcHRpbWlzYXRpb246IHRoZSBsb29wIGJlbG93IHdpbGwgY2hlY2sgZm9yIGVhY2ggYmVnaW4KICAgICAgIG9mIFNNIGNodW5rIGlmIHRoZSBjaHVuayBpcyBmdWxseSB1bmFkZHJlc3NhYmxlLiBUaGUgaWRlYSBpcyB0bwogICAgICAgc2tpcCBlZmZpY2llbnRseSBzdWNoIGZ1bGx5IHVuYWRkcmVzc2FibGUgU00gY2h1bmtzLgotICAgICAgU28sIHdlIHByZWZlcnJhYmx5IHN0YXJ0IHRoZSBsb29wIG9uIGEgY2h1bmsgYm91bmRhcnkuCisgICAgICBTbywgd2UgcHJlZmVyYWJseSBzdGFydCB0aGUgbG9vcCBvbiBhIGNodW5rIGJvdW5kYXJ5LgogICAgICAgSWYgdGhlIGNodW5rIGlzIG5vdCBmdWxseSB1bmFkZHJlc3NhYmxlLCB3ZSBtaWdodCBiZSBpbgogICAgICAgYW4gdW5hZGRyZXNzYWJsZSBwYWdlLiBBZ2FpbiwgdGhlIGlkZWEgaXMgdG8gc2tpcCBlZmZpY2llbnRseQogICAgICAgc3VjaCB1bmFkZHJlc3NhYmxlIHBhZ2UgOiB0aGlzIGlzIHRoZSAiZWxzZSIgcGFydC4KQEAgLTEwMTcsMTkgKzEwODUsOSBAQAogICAgICAgYmV0d2VlbiBWS0lfUEFHRV9TSVpFLCBTTV9TSVpFIGFuZCBzaXplb2YoQWRkcikgd2hpY2ggYXJlIGFzc2VydGVkIGluCiAgICAgICBNQ18oZGV0ZWN0X21lbW9yeV9sZWFrcykuICovCiAKLSAgIC8vIER1cmluZyBzY2FuLCB3ZSBjaGVjayB3aXRoIGFzcGFjZW1nciB0aGF0IGVhY2ggcGFnZSBpcyByZWFkYWJsZSBhbmQKLSAgIC8vIGJlbG9uZ3MgdG8gY2xpZW50LgotICAgLy8gV2Ugc3RpbGwgcHJvdGVjdCBhZ2FpbnN0IFNJR1NFR1YgYW5kIFNJR0JVUyBlLmcuIGluIGNhc2UgYXNwYWNlbWdyIGlzCi0gICAvLyBkZXN5bmNocm9uaXNlZCB3aXRoIHRoZSByZWFsIHBhZ2UgbWFwcGluZ3MuCi0gICAvLyBTdWNoIGEgZGVzeW5jaHJvbmlzYXRpb24gY291bGQgaGFwcGVuIGR1ZSB0byBhbiBhc3BhY2VtZ3IgYnVnLgotICAgLy8gTm90ZSB0aGF0IGlmIHRoZSBhcHBsaWNhdGlvbiBpcyB1c2luZyBtcHJvdGVjdChOT05FKSwgdGhlbgotICAgLy8gYSBwYWdlIGNhbiBiZSB1bnJlYWRhYmxlIGJ1dCBoYXZlIGFkZHJlc3NhYmxlIGFuZCBkZWZpbmVkCi0gICAvLyBWQSBiaXRzIChzZWUgbWNfbWFpbi5jIGZ1bmN0aW9uIG1jX25ld19tZW1fbXByb3RlY3QpLgotICAgaWYgKFZHX01JTklNQUxfU0VUSk1QKG1lbXNjYW5fam1wYnVmKSAhPSAwKSB7CisgICAvLyBTZWUgbGVha19zZWFyY2hfZmF1bHRfY2F0Y2hlcgorICAgaWYgKFZHX01JTklNQUxfU0VUSk1QKGxjX3NjYW5fbWVtb3J5X2ptcGJ1ZikgIT0gMCkgewogICAgICAgLy8gQ2F0Y2ggcmVhZCBlcnJvciAuLi4KLSAgICAgIC8vIFdlIG5lZWQgdG8gcmVzdG9yZSB0aGUgc2lnbmFsIG1hc2ssIGJlY2F1c2Ugd2Ugd2VyZQotICAgICAgLy8gbG9uZ2ptcGVkIG91dCBvZiBhIHNpZ25hbCBoYW5kbGVyLgotICAgICAgVkdfKHNpZ3Byb2NtYXNrKShWS0lfU0lHX1NFVE1BU0ssICZzaWdtYXNrLCBOVUxMKTsKICMgICAgIGlmIGRlZmluZWQoVkdBX3MzOTB4KQogICAgICAgLy8gRm9yIGEgU0lHU0VHViwgczM5MCBkZWxpdmVycyB0aGUgcGFnZSBhZGRyZXNzIG9mIHRoZSBiYWQgYWRkcmVzcy4KICAgICAgIC8vIEZvciBhIFNJR0JVUywgb2xkIHMzOTAga2VybmVscyBkZWxpdmVyIGEgTlVMTCBhZGRyZXNzLgpAQCAtMTExMCw4ICsxMTY4LDcgQEAKICAgICAgIHB0ciArPSBzaXplb2YoQWRkcik7CiAgICB9CiAKLSAgIFZHXyhzaWdwcm9jbWFzaykoVktJX1NJR19TRVRNQVNLLCAmc2lnbWFzaywgTlVMTCk7Ci0gICBWR18oc2V0X2ZhdWx0X2NhdGNoZXIpKE5VTEwpOworICAgVkdfKHNldF9mYXVsdF9jYXRjaGVyKShwcmV2X2NhdGNoZXIpOwogfQogCiAKQEAgLTExNzgsOCArMTIzNSw4IEBACiAKIC8vIGFsbG9jYXRlcyBvciByZWFsbG9jYXRlcyBscl9hcnJheSwgYW5kIHNldCBpdHMgZWxlbWVudHMgdG8gdGhlIGxvc3MgcmVjb3JkcwogLy8gY29udGFpbnMgaW4gbHJfdGFibGUuCi1zdGF0aWMgSW50IGdldF9scl9hcnJheV9mcm9tX2xyX3RhYmxlKHZvaWQpIHsKLSAgIEludCAgICAgICAgICBpLCBuX2xvc3NyZWNvcmRzOworc3RhdGljIFVJbnQgZ2V0X2xyX2FycmF5X2Zyb21fbHJfdGFibGUodm9pZCkgeworICAgVUludCAgICAgICAgIGksIG5fbG9zc3JlY29yZHM7CiAgICBMb3NzUmVjb3JkKiAgbHI7CiAKICAgIG5fbG9zc3JlY29yZHMgPSBWR18oT1NldEdlbl9TaXplKShscl90YWJsZSk7CkBAIC0xMzIxLDcgKzEzNzgsNyBAQAogICAgICAgICBpZiAoVkdfREVCVUdfTEVBS0NIRUNLKQogICAgICAgICAgICBWR18ocHJpbnRmKSgiaGV1cmlzdGljICVzICUjbHggbGVuICVsdVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgcHBfaGV1cmlzdGljKGV4LT5oZXVyaXN0aWMpLAotICAgICAgICAgICAgICAgICAgICAgICBjaC0+ZGF0YSwgKHVuc2lnbmVkIGxvbmcpY2gtPnN6Qik7CisgICAgICAgICAgICAgICAgICAgICAgIGNoLT5kYXRhLCAoU2l6ZVQpY2gtPnN6Qik7CiAgICAgIH0KIAogICAgICAgb2xkX2xyID0gVkdfKE9TZXRHZW5fTG9va3VwKShscl90YWJsZSwgJmxya2V5KTsKQEAgLTE1MDgsMjEgKzE1NjUsMjIgQEAKIH0KIAogLy8gcHJpbnQgcmVjdXJzaXZlbHkgYWxsIGluZGlyZWN0bHkgbGVha2VkIGJsb2NrcyBjb2xsZWN0ZWQgaW4gY2xpcXVlLgotc3RhdGljIHZvaWQgcHJpbnRfY2xpcXVlIChJbnQgY2xpcXVlLCBVSW50IGxldmVsKQorLy8gUHJpbnRpbmcgc3RvcHMgd2hlbiAqcmVtYWluaW5nIHJlYWNoZXMgMC4KK3N0YXRpYyB2b2lkIHByaW50X2NsaXF1ZSAoSW50IGNsaXF1ZSwgVUludCBsZXZlbCwgVUludCAqcmVtYWluaW5nKQogewogICAgSW50IGluZDsKLSAgIEludCBpLCAgbl9sb3NzcmVjb3Jkczs7CisgICBVSW50IGksICBuX2xvc3NyZWNvcmRzOwogCiAgICBuX2xvc3NyZWNvcmRzID0gVkdfKE9TZXRHZW5fU2l6ZSkobHJfdGFibGUpOwogCi0gICBmb3IgKGluZCA9IDA7IGluZCA8IGxjX25fY2h1bmtzOyBpbmQrKykgeworICAgZm9yIChpbmQgPSAwOyBpbmQgPCBsY19uX2NodW5rcyAmJiAqcmVtYWluaW5nID4gMDsgaW5kKyspIHsKICAgICAgIExDX0V4dHJhKiAgICAgaW5kX2V4ID0gJihsY19leHRyYXMpW2luZF07CiAgICAgICBpZiAoaW5kX2V4LT5zdGF0ZSA9PSBJbmRpcmVjdExlYWsgCiAgICAgICAgICAgJiYgaW5kX2V4LT5Jb3JDLmNsaXF1ZSA9PSAoU2l6ZVQpIGNsaXF1ZSkgewogICAgICAgICAgTUNfQ2h1bmsqICAgIGluZF9jaCA9IGxjX2NodW5rc1tpbmRdOwogICAgICAgICAgTG9zc1JlY29yZCogIGluZF9scjsKICAgICAgICAgIExvc3NSZWNvcmRLZXkgaW5kX2xya2V5OwotICAgICAgICAgSW50IGxyX2k7CisgICAgICAgICBVSW50IGxyX2k7CiAgICAgICAgICBpbmRfbHJrZXkuc3RhdGUgPSBpbmRfZXgtPnN0YXRlOwogICAgICAgICAgaW5kX2xya2V5LmFsbG9jYXRlZF9hdCA9IE1DXyhhbGxvY2F0ZWRfYXQpKGluZF9jaCk7CiAgICAgICAgICBpbmRfbHIgPSBWR18oT1NldEdlbl9Mb29rdXApKGxyX3RhYmxlLCAmaW5kX2xya2V5KTsKQEAgLTE1MzEsMjIgKzE1ODksMjkgQEAKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxldmVsOyBpKyspCiAgICAgICAgICAgICBWR18odW1zZykoIiAgIik7Ci0gICAgICAgICBWR18odW1zZykoIiVwWyVsdV0gaW5kaXJlY3QgbG9zcyByZWNvcmQgJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgKHZvaWQgKilpbmRfY2gtPmRhdGEsICh1bnNpZ25lZCBsb25nKWluZF9jaC0+c3pCLAorICAgICAgICAgVkdfKHVtc2cpKCIlcFslbHVdIGluZGlyZWN0IGxvc3MgcmVjb3JkICV1XG4iLAorICAgICAgICAgICAgICAgICAgICh2b2lkICopaW5kX2NoLT5kYXRhLCAoU2l6ZVQpaW5kX2NoLT5zekIsCiAgICAgICAgICAgICAgICAgICAgbHJfaSsxKTsgLy8gbHJfaSsxIGZvciB1c2VyIG51bWJlcmluZy4KKyAgICAgICAgICgqcmVtYWluaW5nKS0tOwogICAgICAgICAgaWYgKGxyX2kgPj0gbl9sb3NzcmVjb3JkcykKICAgICAgICAgICAgIFZHXyh1bXNnKQogICAgICAgICAgICAgICAgKCJlcnJvcjogbm8gaW5kaXJlY3QgbG9zcyByZWNvcmQgZm91bmQgZm9yICVwWyVsdV0/Pz8/P1xuIiwKLSAgICAgICAgICAgICAgICAodm9pZCAqKWluZF9jaC0+ZGF0YSwgKHVuc2lnbmVkIGxvbmcpaW5kX2NoLT5zekIpOwotICAgICAgICAgcHJpbnRfY2xpcXVlKGluZCwgbGV2ZWwrMSk7CisgICAgICAgICAgICAgICAgKHZvaWQgKilpbmRfY2gtPmRhdGEsIChTaXplVClpbmRfY2gtPnN6Qik7CisgICAgICAgICBwcmludF9jbGlxdWUoaW5kLCBsZXZlbCsxLCByZW1haW5pbmcpOwogICAgICAgfQogICAgfQogIH0KIAotQm9vbCBNQ18ocHJpbnRfYmxvY2tfbGlzdCkgKCBVSW50IGxvc3NfcmVjb3JkX25yKQorQm9vbCBNQ18ocHJpbnRfYmxvY2tfbGlzdCkgKCBVSW50IGxvc3NfcmVjb3JkX25yX2Zyb20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJbnQgbG9zc19yZWNvcmRfbnJfdG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJbnQgbWF4X2Jsb2NrcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUludCBoZXVyaXN0aWNzKQogewotICAgSW50ICAgICAgICAgIGksICBuX2xvc3NyZWNvcmRzOworICAgVUludCBsb3NzX3JlY29yZF9ucjsKKyAgIFVJbnQgICAgICAgICBpLCAgbl9sb3NzcmVjb3JkczsKICAgIExvc3NSZWNvcmQqICBscjsKKyAgIEJvb2wgbHJfcHJpbnRlZDsKKyAgIFVJbnQgcmVtYWluaW5nID0gbWF4X2Jsb2NrczsKIAogICAgaWYgKGxyX3RhYmxlID09IE5VTEwgfHwgbGNfY2h1bmtzID09IE5VTEwgfHwgbGNfZXh0cmFzID09IE5VTEwpIHsKICAgICAgIFZHXyh1bXNnKSgiQ2FuJ3QgcHJpbnQgYmxvY2sgbGlzdCA6IG5vIHZhbGlkIGxlYWsgc2VhcmNoIHJlc3VsdFxuIik7CkBAIC0xNTU5LDQ2ICsxNjI0LDc1IEBACiAgICB9CiAKICAgIG5fbG9zc3JlY29yZHMgPSBWR18oT1NldEdlbl9TaXplKShscl90YWJsZSk7Ci0gICBpZiAobG9zc19yZWNvcmRfbnIgPj0gbl9sb3NzcmVjb3JkcykKLSAgICAgIHJldHVybiBGYWxzZTsgLy8gSW52YWxpZCBsb3NzIHJlY29yZCBuci4KKyAgIGlmIChsb3NzX3JlY29yZF9ucl9mcm9tID49IG5fbG9zc3JlY29yZHMpCisgICAgICByZXR1cm4gRmFsc2U7IC8vIEludmFsaWQgc3RhcnRpbmcgbG9zcyByZWNvcmQgbnIuCisKKyAgIGlmIChsb3NzX3JlY29yZF9ucl90byA+PSBuX2xvc3NyZWNvcmRzKQorICAgICAgbG9zc19yZWNvcmRfbnJfdG8gPSBuX2xvc3NyZWNvcmRzIC0gMTsKIAogICAgdGxfYXNzZXJ0IChscl9hcnJheSk7Ci0gICBsciA9IGxyX2FycmF5W2xvc3NfcmVjb3JkX25yXTsKKworICAgZm9yIChsb3NzX3JlY29yZF9uciA9IGxvc3NfcmVjb3JkX25yX2Zyb207CisgICAgICAgIGxvc3NfcmVjb3JkX25yIDw9IGxvc3NfcmVjb3JkX25yX3RvICYmIHJlbWFpbmluZyA+IDA7CisgICAgICAgIGxvc3NfcmVjb3JkX25yKyspIHsKKyAgICAgIGxyID0gbHJfYXJyYXlbbG9zc19yZWNvcmRfbnJdOworICAgICAgbHJfcHJpbnRlZCA9IEZhbHNlOworCisgICAgICAvKiBJZiB1c2VyIGFza3MgdG8gcHJpbnQgYSBzcGVjaWZpYyBsb3NzIHJlY29yZCwgd2UgcHJpbnQKKyAgICAgICAgIHRoZSBibG9jayBkZXRhaWxzLCBldmVuIGlmIG5vIGJsb2NrIHdpbGwgYmUgc2hvd24gZm9yIHRoaXMgbHIuCisgICAgICAgICBJZiB1c2VyIGFza3MgdG8gcHJpbnQgYSByYW5nZSBvZiBsciwgd2Ugb25seSBwcmludCBsciBkZXRhaWxzCisgICAgICAgICB3aGVuIGF0IGxlYXN0IG9uZSBibG9jayBpcyBzaG93bi4gKi8KKyAgICAgIGlmIChsb3NzX3JlY29yZF9ucl9mcm9tID09IGxvc3NfcmVjb3JkX25yX3RvKSB7CisgICAgICAgICAvKiAoKzEgb24gbG9zc19yZWNvcmRfbnIgYXMgdXNlciBudW1iZXJpbmcgZm9yIGxvc3MgcmVjb3JkcworICAgICAgICAgICAgc3RhcnRzIGF0IDEpLiAqLworICAgICAgICAgTUNfKHBwX0xvc3NSZWNvcmQpKGxvc3NfcmVjb3JkX25yKzEsIG5fbG9zc3JlY29yZHMsIGxyKTsKKyAgICAgICAgIGxyX3ByaW50ZWQgPSBUcnVlOworICAgICAgfQogICAgCi0gICAvLyAocmUtKXByaW50IHRoZSBsb3NzIHJlY29yZCBkZXRhaWxzLgotICAgLy8gKCsxIG9uIGxvc3NfcmVjb3JkX25yIGFzIHVzZXIgbnVtYmVyaW5nIGZvciBsb3NzIHJlY29yZHMgc3RhcnRzIGF0IDEpLgotICAgTUNfKHBwX0xvc3NSZWNvcmQpKGxvc3NfcmVjb3JkX25yKzEsIG5fbG9zc3JlY29yZHMsIGxyKTsKKyAgICAgIC8vIE1hdGNoIHRoZSBjaHVua3Mgd2l0aCBsb3NzIHJlY29yZHMuCisgICAgICBmb3IgKGkgPSAwOyBpIDwgbGNfbl9jaHVua3MgJiYgcmVtYWluaW5nID4gMDsgaSsrKSB7CisgICAgICAgICBNQ19DaHVuayogICAgIGNoID0gbGNfY2h1bmtzW2ldOworICAgICAgICAgTENfRXh0cmEqICAgICBleCA9ICYobGNfZXh0cmFzKVtpXTsKKyAgICAgICAgIExvc3NSZWNvcmQqICAgb2xkX2xyOworICAgICAgICAgTG9zc1JlY29yZEtleSBscmtleTsKKyAgICAgICAgIGxya2V5LnN0YXRlICAgICAgICA9IGV4LT5zdGF0ZTsKKyAgICAgICAgIGxya2V5LmFsbG9jYXRlZF9hdCA9IE1DXyhhbGxvY2F0ZWRfYXQpKGNoKTsKIAotICAgLy8gTWF0Y2ggdGhlIGNodW5rcyB3aXRoIGxvc3MgcmVjb3Jkcy4KLSAgIGZvciAoaSA9IDA7IGkgPCBsY19uX2NodW5rczsgaSsrKSB7Ci0gICAgICBNQ19DaHVuayogICAgIGNoID0gbGNfY2h1bmtzW2ldOwotICAgICAgTENfRXh0cmEqICAgICBleCA9ICYobGNfZXh0cmFzKVtpXTsKLSAgICAgIExvc3NSZWNvcmQqICAgb2xkX2xyOwotICAgICAgTG9zc1JlY29yZEtleSBscmtleTsKLSAgICAgIGxya2V5LnN0YXRlICAgICAgICA9IGV4LT5zdGF0ZTsKLSAgICAgIGxya2V5LmFsbG9jYXRlZF9hdCA9IE1DXyhhbGxvY2F0ZWRfYXQpKGNoKTsKKyAgICAgICAgIG9sZF9sciA9IFZHXyhPU2V0R2VuX0xvb2t1cCkobHJfdGFibGUsICZscmtleSk7CisgICAgICAgICBpZiAob2xkX2xyKSB7CisgICAgICAgICAgICAvLyBXZSBmb3VuZCBhbiBleGlzdGluZyBsb3NzIHJlY29yZCBtYXRjaGluZyB0aGlzIGNodW5rLgorICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgbG9zcyByZWNvcmQgd2UgYXJlIGxvb2tpbmcgZm9yLCBvdXRwdXQgdGhlCisgICAgICAgICAgICAvLyBwb2ludGVyLgorICAgICAgICAgICAgaWYgKG9sZF9sciA9PSBscl9hcnJheVtsb3NzX3JlY29yZF9ucl0KKyAgICAgICAgICAgICAgICAmJiAoaGV1cmlzdGljcyA9PSAwIHx8IEhpUyhleC0+aGV1cmlzdGljLCBoZXVyaXN0aWNzKSkpIHsKKyAgICAgICAgICAgICAgIGlmICghbHJfcHJpbnRlZCkgeworICAgICAgICAgICAgICAgICAgTUNfKHBwX0xvc3NSZWNvcmQpKGxvc3NfcmVjb3JkX25yKzEsIG5fbG9zc3JlY29yZHMsIGxyKTsKKyAgICAgICAgICAgICAgICAgIGxyX3ByaW50ZWQgPSBUcnVlOworICAgICAgICAgICAgICAgfQogCi0gICAgICBvbGRfbHIgPSBWR18oT1NldEdlbl9Mb29rdXApKGxyX3RhYmxlLCAmbHJrZXkpOwotICAgICAgaWYgKG9sZF9scikgewotICAgICAgICAgLy8gV2UgZm91bmQgYW4gZXhpc3RpbmcgbG9zcyByZWNvcmQgbWF0Y2hpbmcgdGhpcyBjaHVuay4KLSAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGxvc3MgcmVjb3JkIHdlIGFyZSBsb29raW5nIGZvciwgb3V0cHV0IHRoZSBwb2ludGVyLgotICAgICAgICAgaWYgKG9sZF9sciA9PSBscl9hcnJheVtsb3NzX3JlY29yZF9ucl0pIHsKLSAgICAgICAgICAgIFZHXyh1bXNnKSgiJXBbJWx1XVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKWNoLT5kYXRhLCAodW5zaWduZWQgbG9uZykgY2gtPnN6Qik7Ci0gICAgICAgICAgICBpZiAoZXgtPnN0YXRlICE9IFJlYWNoYWJsZSkgewotICAgICAgICAgICAgICAgLy8gV2UgY2FuIHByaW50IHRoZSBjbGlxdWUgaW4gYWxsIHN0YXRlcywgZXhjZXB0IFJlYWNoYWJsZS4KLSAgICAgICAgICAgICAgIC8vIEluIFVucmVhY2hlZCBzdGF0ZSwgbGNfY2h1bmtbaV0gaXMgdGhlIGNsaXF1ZSBsZWFkZXIuCi0gICAgICAgICAgICAgICAvLyBJbiBJbmRpcmVjdExlYWssIGxjX2NodW5rW2ldIG1pZ2h0IGhhdmUgYmVlbiBhIGNsaXF1ZSBsZWFkZXIKLSAgICAgICAgICAgICAgIC8vIHdoaWNoIHdhcyBsYXRlciBjb2xsZWN0ZWQgaW4gYW5vdGhlciBjbGlxdWUuCi0gICAgICAgICAgICAgICAvLyBGb3IgUG9zc2libGUsIGxjX2NodW5rW2ldIG1pZ2h0IGJlIHRoZSB0b3Agb2YgYSBjbGlxdWUKLSAgICAgICAgICAgICAgIC8vIG9yIGFuIGludGVybWVkaWF0ZSBjbGlxdWUuCi0gICAgICAgICAgICAgICBwcmludF9jbGlxdWUoaSwgMSk7CisgICAgICAgICAgICAgICBpZiAoZXgtPmhldXJpc3RpYykKKyAgICAgICAgICAgICAgICAgIFZHXyh1bXNnKSgiJXBbJWx1XSAoZm91bmQgdmlhIGhldXJpc3RpYyAlcylcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKiljaC0+ZGF0YSwgKFNpemVUKWNoLT5zekIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHBfaGV1cmlzdGljIChleC0+aGV1cmlzdGljKSk7CisgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICBWR18odW1zZykoIiVwWyVsdV1cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKiljaC0+ZGF0YSwgKFNpemVUKWNoLT5zekIpOworICAgICAgICAgICAgICAgcmVtYWluaW5nLS07CisgICAgICAgICAgICAgICBpZiAoZXgtPnN0YXRlICE9IFJlYWNoYWJsZSkgeworICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuIHByaW50IHRoZSBjbGlxdWUgaW4gYWxsIHN0YXRlcywgZXhjZXB0IFJlYWNoYWJsZS4KKyAgICAgICAgICAgICAgICAgIC8vIEluIFVucmVhY2hlZCBzdGF0ZSwgbGNfY2h1bmtbaV0gaXMgdGhlIGNsaXF1ZSBsZWFkZXIuCisgICAgICAgICAgICAgICAgICAvLyBJbiBJbmRpcmVjdExlYWssIGxjX2NodW5rW2ldIG1pZ2h0IGhhdmUgYmVlbiBhIGNsaXF1ZQorICAgICAgICAgICAgICAgICAgLy8gbGVhZGVyIHdoaWNoIHdhcyBsYXRlciBjb2xsZWN0ZWQgaW4gYW5vdGhlciBjbGlxdWUuCisgICAgICAgICAgICAgICAgICAvLyBGb3IgUG9zc2libGUsIGxjX2NodW5rW2ldIG1pZ2h0IGJlIHRoZSB0b3Agb2YgYSBjbGlxdWUKKyAgICAgICAgICAgICAgICAgIC8vIG9yIGFuIGludGVybWVkaWF0ZSBjbGlxdWUuCisgICAgICAgICAgICAgICAgICBwcmludF9jbGlxdWUoaSwgMSwgJnJlbWFpbmluZyk7CisgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm8gZXhpc3RpbmcgbG9zcyByZWNvcmQgbWF0Y2hlcyB0aGlzIGNodW5rID8/PworICAgICAgICAgICAgVkdfKHVtc2cpKCJlcnJvcjogbm8gbG9zcyByZWNvcmQgZm91bmQgZm9yICVwWyVsdV0/Pz8/P1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKWNoLT5kYXRhLCAoU2l6ZVQpY2gtPnN6Qik7CiAgICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgLy8gTm8gZXhpc3RpbmcgbG9zcyByZWNvcmQgbWF0Y2hlcyB0aGlzIGNodW5rID8/PwotICAgICAgICAgVkdfKHVtc2cpKCJlcnJvcjogbm8gbG9zcyByZWNvcmQgZm91bmQgZm9yICVwWyVsdV0/Pz8/P1xuIiwKLSAgICAgICAgICAgICAgICAgICAodm9pZCAqKWNoLT5kYXRhLCAodW5zaWduZWQgbG9uZykgY2gtPnN6Qik7CiAgICAgICB9CiAgICB9CiAgICByZXR1cm4gVHJ1ZTsKQEAgLTE4NTYsNyArMTk1MCw3IEBACiAgICAgICAgICB0bF9hc3NlcnQoZXgtPnN0YXRlID09IFVucmVhY2hlZCk7CiAgICAgICB9CiAgICB9Ci0gICAgICAKKwogICAgcHJpbnRfcmVzdWx0cyggdGlkLCBsY3ApOwogCiAgICBWR18oZnJlZSkgKCBsY19tYXJrc3RhY2sgKTsKQEAgLTE4NzUsMTEgKzE5NjksMTEgQEAKICAgICAgICAmJiBhZGRyX2luX3JlZyA8IHNlYXJjaGVkX3dwYSArIHNlYXJjaGVkX3N6QikgewogICAgICAgaWYgKGFkZHJfaW5fcmVnID09IHNlYXJjaGVkX3dwYSkKICAgICAgICAgIFZHXyh1bXNnKQotICAgICAgICAgICAgKCJ0aWQgJWQgcmVnaXN0ZXIgJXMgcG9pbnRpbmcgYXQgJSNseFxuIiwKKyAgICAgICAgICAgICgidGlkICV1IHJlZ2lzdGVyICVzIHBvaW50aW5nIGF0ICUjbHhcbiIsCiAgICAgICAgICAgICAgdGlkLCByZWduYW1lLCBzZWFyY2hlZF93cGEpOyAgCiAgICAgICBlbHNlCiAgICAgICAgICBWR18odW1zZykKLSAgICAgICAgICAgICgidGlkICVkIHJlZ2lzdGVyICVzIGludGVyaW9yIHBvaW50aW5nICVsdSBieXRlcyBpbnNpZGUgJSNseFxuIiwKKyAgICAgICAgICAgICgidGlkICV1IHJlZ2lzdGVyICVzIGludGVyaW9yIHBvaW50aW5nICVsdSBieXRlcyBpbnNpZGUgJSNseFxuIiwKICAgICAgICAgICAgICB0aWQsIHJlZ25hbWUsIChsb25nIHVuc2lnbmVkKSBhZGRyX2luX3JlZyAtIHNlYXJjaGVkX3dwYSwKICAgICAgICAgICAgICBzZWFyY2hlZF93cGEpOwogICAgfQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svbWNfbWFjaGluZS5jIGIvbWVtY2hlY2svbWNfbWFjaGluZS5jCmluZGV4IDYwZDUwNzkuLjkxZmFiMDAgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL21jX21hY2hpbmUuYworKysgYi9tZW1jaGVjay9tY19tYWNoaW5lLmMKQEAgLTksNyArOSw3IEBACiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBNZW1DaGVjaywgYSBoZWF2eXdlaWdodCBWYWxncmluZCB0b29sIGZvcgogICAgZGV0ZWN0aW5nIG1lbW9yeSBlcnJvcnMuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIE9wZW5Xb3JrcyBMdGQKKyAgIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IE9wZW5Xb3JrcyBMdGQKICAgICAgIGluZm9Ab3Blbi13b3Jrcy5jby51awogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9tZW1jaGVjay9tY19tYWluLmMgYi9tZW1jaGVjay9tY19tYWluLmMKaW5kZXggMWZjMTU2MS4uNjVmZGZjYiAxMDA2NDQKLS0tIGEvbWVtY2hlY2svbWNfbWFpbi5jCisrKyBiL21lbWNoZWNrL21jX21haW4uYwpAQCAtMSwzICsxLDQgQEAKKy8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogMzsgLSotICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gTWVtQ2hlY2s6IE1haW50YWluIGJpdG1hcHMgb2YgbWVtb3J5LCB0cmFja2luZyB0aGUgICAgICAgICAgIC0tLSovCkBAIC05LDcgKzEwLDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCiAgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTEsNiArNTIsMTAgQEAKICNpbmNsdWRlICJtZW1jaGVjay5oIiAgIC8qIGZvciBjbGllbnQgcmVxdWVzdHMgKi8KIAogCisvKiBTZXQgdG8gMSB0byBlbmFibGUgaGFuZHdyaXR0ZW4gYXNzZW1ibHkgaGVscGVycyBvbiB0YXJnZXRzIGZvcgorICAgd2hpY2ggaXQgaXMgc3VwcG9ydGVkLiAqLworI2RlZmluZSBFTkFCTEVfQVNTRU1CTFlfSEVMUEVSUyAxCisKIC8qIFNldCB0byAxIHRvIGRvIGEgbGl0dGxlIG1vcmUgc2FuaXR5IGNoZWNraW5nICovCiAjZGVmaW5lIFZHX0RFQlVHX01FTU9SWSAwCiAKQEAgLTI1MSw3ICsyNTYsNyBAQAogI2RlZmluZSBWQV9CSVRTMTZfREVGSU5FRCAgICAgMHhhYWFhICAgLy8gMTBfMTBfMTBfMTBiIHggMgogCiAKLSNkZWZpbmUgU01fQ0hVTktTICAgICAgICAgICAgIDE2Mzg0CisjZGVmaW5lIFNNX0NIVU5LUyAgICAgICAgICAgICAxNjM4NCAgICAvLyBFYWNoIFNNIGNvdmVycyA2NGsgb2YgbWVtb3J5LgogI2RlZmluZSBTTV9PRkYoYWFhKSAgICAgICAgICAgKCgoYWFhKSAmIDB4ZmZmZikgPj4gMikKICNkZWZpbmUgU01fT0ZGXzE2KGFhYSkgICAgICAgICgoKGFhYSkgJiAweGZmZmYpID4+IDMpCiAKQEAgLTExNzIsMTcgKzExNzcsMTcgQEAKICAgICAgICAgICAgICAgICAgICAodm9pZCopc3RhcnQsICh2b2lkKikoc3RhcnQrbGVuLTEpKTsKICAgIH0KICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICBWR18oZG1zZykoIm1lbWNoZWNrOiAgIG5vdyBoYXZlICVsZCByYW5nZXM6XG4iLAorICAgICAgVkdfKGRtc2cpKCJtZW1jaGVjazogICBub3cgaGF2ZSAldSByYW5nZXM6XG4iLAogICAgICAgICAgICAgICAgIFZHXyhzaXplUmFuZ2VNYXApKGdJZ25vcmVkQWRkcmVzc1JhbmdlcykpOwotICAgICAgV29yZCBpOworICAgICAgVUludCBpOwogICAgICAgZm9yIChpID0gMDsgaSA8IFZHXyhzaXplUmFuZ2VNYXApKGdJZ25vcmVkQWRkcmVzc1Jhbmdlcyk7IGkrKykgewogICAgICAgICAgVVdvcmQgdmFsICAgICA9IElBUl9JTlZBTElEOwogICAgICAgICAgVVdvcmQga2V5X21pbiA9IH4oVVdvcmQpMDsKICAgICAgICAgIFVXb3JkIGtleV9tYXggPSAoVVdvcmQpMDsKICAgICAgICAgIFZHXyhpbmRleFJhbmdlTWFwKSggJmtleV9taW4sICZrZXlfbWF4LCAmdmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSWdub3JlZEFkZHJlc3NSYW5nZXMsIGkgKTsKLSAgICAgICAgIFZHXyhkbXNnKSgibWVtY2hlY2s6ICAgICAgWyVsZF0gICUwMTZsbHgtJTAxNmxseCAgJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgaSwgKFVMb25nKWtleV9taW4sIChVTG9uZylrZXlfbWF4LCBzaG93SUFSS2luZCh2YWwpKTsKKyAgICAgICAgIFZHXyhkbXNnKSgibWVtY2hlY2s6ICAgICAgWyV1XSAgJTAxNmx4LSUwMTZseCAgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgaSwga2V5X21pbiwga2V5X21heCwgc2hvd0lBUktpbmQodmFsKSk7CiAgICAgICB9CiAgICB9CiAgICByZXR1cm4gVHJ1ZTsKQEAgLTEyMzEsNyArMTIzNiw3IEBACiAgICAgICBVTG9uZyBwZXNzaW02NCAgID0gVl9CSVRTNjRfREVGSU5FRDsKICAgICAgIFVXb3JkIGxvbmdfaW5kZXggPSBieXRlX29mZnNldF93KHN6TCwgYmlnZW5kaWFuLCBqKTsKICAgICAgIGZvciAoaSA9IDgtMTsgaSA+PSAwOyBpLS0pIHsKLSAgICAgICAgIFBST0ZfRVZFTlQoMjksICJtY19MT0FEVl8xMjhfb3JfMjU2X3Nsb3cobG9vcCkiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9MT0FEVl8xMjhfT1JfMjU2X1NMT1dfTE9PUCk7CiAgICAgICAgICBhaSA9IGEgKyA4KmxvbmdfaW5kZXggKyBieXRlX29mZnNldF93KDgsIGJpZ2VuZGlhbiwgaSk7CiAgICAgICAgICBvayA9IGdldF92Yml0czgoYWksICZ2Yml0czgpOwogICAgICAgICAgdmJpdHM2NCA8PD0gODsKQEAgLTEzMDcsOSArMTMxMiwxMiBAQAogCiBzdGF0aWMKIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK19fYXR0cmlidXRlX18oKHVzZWQpKQorVkdfUkVHUEFSTSgzKSAvKiBtYWtlIHN1cmUgd2UncmUgdXNpbmcgYSBmaXhlZCBjYWxsaW5nIGNvbnZlbnRpb24sIHNpbmNlCisgICAgICAgICAgICAgICAgIHRoaXMgZnVuY3Rpb24gbWF5IGdldCBjYWxsZWQgZnJvbSBoYW5kIHdyaXR0ZW4gYXNzZW1ibHkuICovCiBVTG9uZyBtY19MT0FEVm5fc2xvdyAoIEFkZHIgYSwgU2l6ZVQgbkJpdHMsIEJvb2wgYmlnZW5kaWFuICkKIHsKLSAgIFBST0ZfRVZFTlQoMzAsICJtY19MT0FEVm5fc2xvdyIpOworICAgUFJPRl9FVkVOVChNQ1BFX0xPQURWTl9TTE9XKTsKIAogICAgLyogLS0tLS0tLS0tLS0tIEJFR0lOIHNlbWktZmFzdCBjYXNlcyAtLS0tLS0tLS0tLS0gKi8KICAgIC8qIFRoZXNlIGRlYWwgcXVpY2tseS1pc2ggd2l0aCB0aGUgY29tbW9uIGF1eGlsaWFyeSBwcmltYXJ5IG1hcApAQCAtMTM2Myw3ICsxMzcxLDcgQEAKICAgICAgIGluZm8gY2FuIGJlIGdsZWFuZWQgZnJvbSBwZXNzaW02NCkgYnV0IGlzIHVzZWQgYXMgYQogICAgICAgY3Jvc3MtY2hlY2suICovCiAgICBmb3IgKGkgPSBzekItMTsgaSA+PSAwOyBpLS0pIHsKLSAgICAgIFBST0ZfRVZFTlQoMzEsICJtY19MT0FEVm5fc2xvdyhsb29wKSIpOworICAgICAgUFJPRl9FVkVOVChNQ1BFX0xPQURWTl9TTE9XX0xPT1ApOwogICAgICAgYWkgPSBhICsgYnl0ZV9vZmZzZXRfdyhzekIsIGJpZ2VuZGlhbiwgaSk7CiAgICAgICBvayA9IGdldF92Yml0czgoYWksICZ2Yml0czgpOwogICAgICAgdmJpdHM2NCA8PD0gODsgCkBAIC0xNDYxLDcgKzE0NjksNyBAQAogICAgQWRkciAgYWk7CiAgICBCb29sICBvazsKIAotICAgUFJPRl9FVkVOVCgzNSwgIm1jX1NUT1JFVm5fc2xvdyIpOworICAgUFJPRl9FVkVOVChNQ1BFX1NUT1JFVk5fU0xPVyk7CiAKICAgIC8qIC0tLS0tLS0tLS0tLSBCRUdJTiBzZW1pLWZhc3QgY2FzZXMgLS0tLS0tLS0tLS0tICovCiAgICAvKiBUaGVzZSBkZWFsIHF1aWNrbHktaXNoIHdpdGggdGhlIGNvbW1vbiBhdXhpbGlhcnkgcHJpbWFyeSBtYXAKQEAgLTE1MjMsNyArMTUzMSw3IEBACiAgICAvKiBEdW1wIHZieXRlcyBpbiBtZW1vcnksIGl0ZXJhdGluZyBmcm9tIGxlYXN0IHRvIG1vc3Qgc2lnbmlmaWNhbnQKICAgICAgIGJ5dGUuICBBdCB0aGUgc2FtZSB0aW1lIGVzdGFibGlzaCBhZGRyZXNzaWJpbGl0eSBvZiB0aGUgbG9jYXRpb24uICovCiAgICBmb3IgKGkgPSAwOyBpIDwgc3pCOyBpKyspIHsKLSAgICAgIFBST0ZfRVZFTlQoMzYsICJtY19TVE9SRVZuX3Nsb3cobG9vcCkiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVZOX1NMT1dfTE9PUCk7CiAgICAgICBhaSAgICAgPSBhICsgYnl0ZV9vZmZzZXRfdyhzekIsIGJpZ2VuZGlhbiwgaSk7CiAgICAgICB2Yml0czggPSB2Ynl0ZXMgJiAweGZmOwogICAgICAgb2sgICAgID0gc2V0X3ZiaXRzOChhaSwgdmJpdHM4KTsKQEAgLTE1NTIsNyArMTU2MCw3IEBACiAgICBTZWNNYXAqKiBzbV9wdHI7CiAgICBTZWNNYXAqICBleGFtcGxlX2RzbTsKIAotICAgUFJPRl9FVkVOVCgxNTAsICJzZXRfYWRkcmVzc19yYW5nZV9wZXJtcyIpOworICAgUFJPRl9FVkVOVChNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TKTsKIAogICAgLyogQ2hlY2sgdGhlIFYrQSBiaXRzIG1ha2Ugc2Vuc2UuICovCiAgICB0bF9hc3NlcnQoVkFfQklUUzE2X05PQUNDRVNTICA9PSB2YWJpdHMxNiB8fApAQCAtMTYzMCwxOSArMTYzOCwxOSBAQAogICAgbGVuX3RvX25leHRfc2VjbWFwID0gYU5leHQgLSBhOwogICAgaWYgKCBsZW5UIDw9IGxlbl90b19uZXh0X3NlY21hcCApIHsKICAgICAgIC8vIFJhbmdlIGVudGlyZWx5IHdpdGhpbiBvbmUgc2VjLW1hcC4gIENvdmVycyBhbG1vc3QgYWxsIGNhc2VzLgotICAgICAgUFJPRl9FVkVOVCgxNTEsICJzZXRfYWRkcmVzc19yYW5nZV9wZXJtcy1zaW5nbGUtc2VjbWFwIik7CisgICAgICBQUk9GX0VWRU5UKE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfU0lOR0xFX1NFQ01BUCk7CiAgICAgICBsZW5BID0gbGVuVDsKICAgICAgIGxlbkIgPSAwOwogICAgfSBlbHNlIGlmIChpc19zdGFydF9vZl9zbShhKSkgewogICAgICAgLy8gUmFuZ2Ugc3BhbnMgYXQgbGVhc3Qgb25lIHdob2xlIHNlYy1tYXAsIGFuZCBzdGFydHMgYXQgdGhlIGJlZ2lubmluZwogICAgICAgLy8gb2YgYSBzZWMtbWFwOyBza2lwIHRvIFBhcnQgMi4KLSAgICAgIFBST0ZfRVZFTlQoMTUyLCAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMtc3RhcnRvZi1zZWNtYXAiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19TVEFSVE9GX1NFQ01BUCk7CiAgICAgICBsZW5BID0gMDsKICAgICAgIGxlbkIgPSBsZW5UOwogICAgICAgZ290byBwYXJ0MjsKICAgIH0gZWxzZSB7CiAgICAgICAvLyBSYW5nZSBzcGFucyB0d28gb3IgbW9yZSBzZWMtbWFwcywgZmlyc3Qgb25lIGlzIHBhcnRpYWwuCi0gICAgICBQUk9GX0VWRU5UKDE1MywgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zLW11bHRpcGxlLXNlY21hcHMiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19NVUxUSVBMRV9TRUNNQVBTKTsKICAgICAgIGxlbkEgPSBsZW5fdG9fbmV4dF9zZWNtYXA7CiAgICAgICBsZW5CID0gbGVuVCAtIGxlbkE7CiAgICB9CkBAIC0xNjU5LDExICsxNjY3LDExIEBACiAgICBpZiAoaXNfZGlzdGluZ3Vpc2hlZF9zbSgqc21fcHRyKSkgewogICAgICAgaWYgKCpzbV9wdHIgPT0gZXhhbXBsZV9kc20pIHsKICAgICAgICAgIC8vIFNlYy1tYXAgYWxyZWFkeSBoYXMgdGhlIFYrQSBiaXRzIHRoYXQgd2Ugd2FudCwgc28gc2tpcC4KLSAgICAgICAgIFBST0ZfRVZFTlQoMTU0LCAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMtZGlzdC1zbTEtcXVpY2siKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19ESVNUX1NNMV9RVUlDSyk7CiAgICAgICAgICBhICAgID0gYU5leHQ7CiAgICAgICAgICBsZW5BID0gMDsKICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBQUk9GX0VWRU5UKDE1NSwgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zLWRpc3Qtc20xIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfRElTVF9TTTEpOwogICAgICAgICAgKnNtX3B0ciA9IGNvcHlfZm9yX3dyaXRpbmcoKnNtX3B0cik7CiAgICAgICB9CiAgICB9CkBAIC0xNjczLDcgKzE2ODEsNyBAQAogICAgd2hpbGUgKFRydWUpIHsKICAgICAgIGlmIChWR19JU184X0FMSUdORUQoYSkpIGJyZWFrOwogICAgICAgaWYgKGxlbkEgPCAxKSAgICAgICAgICAgYnJlYWs7Ci0gICAgICBQUk9GX0VWRU5UKDE1NiwgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zLWxvb3AxYSIpOworICAgICAgUFJPRl9FVkVOVChNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0xPT1AxQSk7CiAgICAgICBzbV9vZmYgPSBTTV9PRkYoYSk7CiAgICAgICBpbnNlcnRfdmFiaXRzMl9pbnRvX3ZhYml0czgoIGEsIHZhYml0czIsICYoc20tPnZhYml0czhbc21fb2ZmXSkgKTsKICAgICAgIGEgICAgKz0gMTsKQEAgLTE2ODIsNyArMTY5MCw3IEBACiAgICAvLyA4LWFsaWduZWQsIDggYnl0ZSBzdGVwcwogICAgd2hpbGUgKFRydWUpIHsKICAgICAgIGlmIChsZW5BIDwgOCkgYnJlYWs7Ci0gICAgICBQUk9GX0VWRU5UKDE1NywgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zLWxvb3A4YSIpOworICAgICAgUFJPRl9FVkVOVChNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0xPT1A4QSk7CiAgICAgICBzbV9vZmYxNiA9IFNNX09GRl8xNihhKTsKICAgICAgICgoVVNob3J0Kikoc20tPnZhYml0czgpKVtzbV9vZmYxNl0gPSB2YWJpdHMxNjsKICAgICAgIGEgICAgKz0gODsKQEAgLTE2OTEsNyArMTY5OSw3IEBACiAgICAvLyAxIGJ5dGUgc3RlcHMKICAgIHdoaWxlIChUcnVlKSB7CiAgICAgICBpZiAobGVuQSA8IDEpIGJyZWFrOwotICAgICAgUFJPRl9FVkVOVCgxNTgsICJzZXRfYWRkcmVzc19yYW5nZV9wZXJtcy1sb29wMWIiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19MT09QMUIpOwogICAgICAgc21fb2ZmID0gU01fT0ZGKGEpOwogICAgICAgaW5zZXJ0X3ZhYml0czJfaW50b192YWJpdHM4KCBhLCB2YWJpdHMyLCAmKHNtLT52YWJpdHM4W3NtX29mZl0pICk7CiAgICAgICBhICAgICs9IDE7CkBAIC0xNzEyLDEwICsxNzIwLDEwIEBACiAgICB3aGlsZSAoVHJ1ZSkgewogICAgICAgaWYgKGxlbkIgPCBTTV9TSVpFKSBicmVhazsKICAgICAgIHRsX2Fzc2VydChpc19zdGFydF9vZl9zbShhKSk7Ci0gICAgICBQUk9GX0VWRU5UKDE1OSwgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zLWxvb3A2NEsiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19MT09QNjRLKTsKICAgICAgIHNtX3B0ciA9IGdldF9zZWNtYXBfcHRyKGEpOwogICAgICAgaWYgKCFpc19kaXN0aW5ndWlzaGVkX3NtKCpzbV9wdHIpKSB7Ci0gICAgICAgICBQUk9GX0VWRU5UKDE2MCwgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zLWxvb3A2NEstZnJlZS1kaXN0LXNtIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfTE9PUDY0S19GUkVFX0RJU1RfU00pOwogICAgICAgICAgLy8gRnJlZSB0aGUgbm9uLWRpc3Rpbmd1aXNoZWQgc2VjLW1hcCB0aGF0IHdlJ3JlIHJlcGxhY2luZy4gIFRoaXMKICAgICAgICAgIC8vIGNhc2UgaGFwcGVucyBtb2RlcmF0ZWx5IG9mdGVuLCBlbm91Z2ggdG8gYmUgd29ydGh3aGlsZS4KICAgICAgICAgIFN5c1JlcyBzcmVzID0gVkdfKGFtX211bm1hcF92YWxncmluZCkoKEFkZHIpKnNtX3B0ciwgc2l6ZW9mKFNlY01hcCkpOwpAQCAtMTc0MywxMCArMTc1MSwxMCBAQAogICAgaWYgKGlzX2Rpc3Rpbmd1aXNoZWRfc20oKnNtX3B0cikpIHsKICAgICAgIGlmICgqc21fcHRyID09IGV4YW1wbGVfZHNtKSB7CiAgICAgICAgICAvLyBTZWMtbWFwIGFscmVhZHkgaGFzIHRoZSBWK0EgYml0cyB0aGF0IHdlIHdhbnQsIHNvIHN0b3AuCi0gICAgICAgICBQUk9GX0VWRU5UKDE2MSwgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zLWRpc3Qtc20yLXF1aWNrIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfRElTVF9TTTJfUVVJQ0spOwogICAgICAgICAgcmV0dXJuOwogICAgICAgfSBlbHNlIHsKLSAgICAgICAgIFBST0ZfRVZFTlQoMTYyLCAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMtZGlzdC1zbTIiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19ESVNUX1NNMik7CiAgICAgICAgICAqc21fcHRyID0gY29weV9mb3Jfd3JpdGluZygqc21fcHRyKTsKICAgICAgIH0KICAgIH0KQEAgLTE3NTUsNyArMTc2Myw3IEBACiAgICAvLyA4LWFsaWduZWQsIDggYnl0ZSBzdGVwcwogICAgd2hpbGUgKFRydWUpIHsKICAgICAgIGlmIChsZW5CIDwgOCkgYnJlYWs7Ci0gICAgICBQUk9GX0VWRU5UKDE2MywgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zLWxvb3A4YiIpOworICAgICAgUFJPRl9FVkVOVChNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0xPT1A4Qik7CiAgICAgICBzbV9vZmYxNiA9IFNNX09GRl8xNihhKTsKICAgICAgICgoVVNob3J0Kikoc20tPnZhYml0czgpKVtzbV9vZmYxNl0gPSB2YWJpdHMxNjsKICAgICAgIGEgICAgKz0gODsKQEAgLTE3NjQsNyArMTc3Miw3IEBACiAgICAvLyAxIGJ5dGUgc3RlcHMKICAgIHdoaWxlIChUcnVlKSB7CiAgICAgICBpZiAobGVuQiA8IDEpIHJldHVybjsKLSAgICAgIFBST0ZfRVZFTlQoMTY0LCAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMtbG9vcDFjIik7CisgICAgICBQUk9GX0VWRU5UKE1DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfTE9PUDFDKTsKICAgICAgIHNtX29mZiA9IFNNX09GRihhKTsKICAgICAgIGluc2VydF92YWJpdHMyX2ludG9fdmFiaXRzOCggYSwgdmFiaXRzMiwgJihzbS0+dmFiaXRzOFtzbV9vZmZdKSApOwogICAgICAgYSAgICArPSAxOwpAQCAtMTc3Nyw3ICsxNzg1LDcgQEAKIAogdm9pZCBNQ18obWFrZV9tZW1fbm9hY2Nlc3MpICggQWRkciBhLCBTaXplVCBsZW4gKQogewotICAgUFJPRl9FVkVOVCg0MCwgIk1DXyhtYWtlX21lbV9ub2FjY2VzcykiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9NQUtFX01FTV9OT0FDQ0VTUyk7CiAgICBERUJVRygiTUNfKG1ha2VfbWVtX25vYWNjZXNzKSglcCwgJWx1KVxuIiwgYSwgbGVuKTsKICAgIHNldF9hZGRyZXNzX3JhbmdlX3Blcm1zICggYSwgbGVuLCBWQV9CSVRTMTZfTk9BQ0NFU1MsIFNNX0RJU1RfTk9BQ0NFU1MgKTsKICAgIGlmIChVTkxJS0VMWSggTUNfKGNsb19tY19sZXZlbCkgPT0gMyApKQpAQCAtMTc4NiwxNCArMTc5NCwxNCBAQAogCiBzdGF0aWMgdm9pZCBtYWtlX21lbV91bmRlZmluZWQgKCBBZGRyIGEsIFNpemVUIGxlbiApCiB7Ci0gICBQUk9GX0VWRU5UKDQxLCAibWFrZV9tZW1fdW5kZWZpbmVkIik7CisgICBQUk9GX0VWRU5UKE1DUEVfTUFLRV9NRU1fVU5ERUZJTkVEKTsKICAgIERFQlVHKCJtYWtlX21lbV91bmRlZmluZWQoJXAsICVsdSlcbiIsIGEsIGxlbik7CiAgICBzZXRfYWRkcmVzc19yYW5nZV9wZXJtcyAoIGEsIGxlbiwgVkFfQklUUzE2X1VOREVGSU5FRCwgU01fRElTVF9VTkRFRklORUQgKTsKIH0KIAogdm9pZCBNQ18obWFrZV9tZW1fdW5kZWZpbmVkX3dfb3RhZykgKCBBZGRyIGEsIFNpemVUIGxlbiwgVUludCBvdGFnICkKIHsKLSAgIFBST0ZfRVZFTlQoNDMsICJNQ18obWFrZV9tZW1fdW5kZWZpbmVkKSIpOworICAgUFJPRl9FVkVOVChNQ1BFX01BS0VfTUVNX1VOREVGSU5FRF9XX09UQUcpOwogICAgREVCVUcoIk1DXyhtYWtlX21lbV91bmRlZmluZWQpKCVwLCAlbHUpXG4iLCBhLCBsZW4pOwogICAgc2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMgKCBhLCBsZW4sIFZBX0JJVFMxNl9VTkRFRklORUQsIFNNX0RJU1RfVU5ERUZJTkVEICk7CiAgICBpZiAoVU5MSUtFTFkoIE1DXyhjbG9fbWNfbGV2ZWwpID09IDMgKSkKQEAgLTE4MzAsMTMgKzE4MzgsMTkgQEAKIAogdm9pZCBNQ18obWFrZV9tZW1fZGVmaW5lZCkgKCBBZGRyIGEsIFNpemVUIGxlbiApCiB7Ci0gICBQUk9GX0VWRU5UKDQyLCAiTUNfKG1ha2VfbWVtX2RlZmluZWQpIik7CisgICBQUk9GX0VWRU5UKE1DUEVfTUFLRV9NRU1fREVGSU5FRCk7CiAgICBERUJVRygiTUNfKG1ha2VfbWVtX2RlZmluZWQpKCVwLCAlbHUpXG4iLCBhLCBsZW4pOwogICAgc2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMgKCBhLCBsZW4sIFZBX0JJVFMxNl9ERUZJTkVELCBTTV9ESVNUX0RFRklORUQgKTsKICAgIGlmIChVTkxJS0VMWSggTUNfKGNsb19tY19sZXZlbCkgPT0gMyApKQogICAgICAgb2NhY2hlX3NhcnBfQ2xlYXJfT3JpZ2lucyAoIGEsIGxlbiApOwogfQogCitfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorc3RhdGljIHZvaWQgbWFrZV9tZW1fZGVmaW5lZF93X3RpZCAoIEFkZHIgYSwgU2l6ZVQgbGVuLCBUaHJlYWRJZCB0aWQgKQoreworICAgTUNfKG1ha2VfbWVtX2RlZmluZWQpKGEsIGxlbik7Cit9CisKIC8qIEZvciBlYWNoIGJ5dGUgaW4gW2EsYStsZW4pLCBpZiB0aGUgYnl0ZSBpcyBhZGRyZXNzYWJsZSwgbWFrZSBpdCBiZQogICAgZGVmaW5lZCwgYnV0IGlmIGl0IGlzbid0IGFkZHJlc3NpYmxlLCBsZWF2ZSBpdCBhbG9uZS4gIEluIG90aGVyCiAgICB3b3JkcyBhIHZlcnNpb24gb2YgTUNfKG1ha2VfbWVtX2RlZmluZWQpIHRoYXQgZG9lc24ndCBtZXNzIHdpdGgKQEAgLTE4ODQsNyArMTg5OCw3IEBACiAgICBCb29sICBhbGlnbmVkLCBub292ZXJsYXA7CiAKICAgIERFQlVHKCJNQ18oY29weV9hZGRyZXNzX3JhbmdlX3N0YXRlKVxuIik7Ci0gICBQUk9GX0VWRU5UKDUwLCAiTUNfKGNvcHlfYWRkcmVzc19yYW5nZV9zdGF0ZSkiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9DT1BZX0FERFJFU1NfUkFOR0VfU1RBVEUpOwogCiAgICBpZiAobGVuID09IDAgfHwgc3JjID09IGRzdCkKICAgICAgIHJldHVybjsKQEAgLTE5MzQsNyArMTk0OCw3IEBACiAgICAgICAvKiBXZSBoYXZlIHRvIGRvIHRoaW5ncyB0aGUgc2xvdyB3YXkgKi8KICAgICAgIGlmIChzcmMgPCBkc3QpIHsKICAgICAgICAgIGZvciAoaSA9IDAsIGogPSBsZW4tMTsgaSA8IGxlbjsgaSsrLCBqLS0pIHsKLSAgICAgICAgICAgIFBST0ZfRVZFTlQoNTEsICJNQ18oY29weV9hZGRyZXNzX3JhbmdlX3N0YXRlKShsb29wKSIpOworICAgICAgICAgICAgUFJPRl9FVkVOVChNQ1BFX0NPUFlfQUREUkVTU19SQU5HRV9TVEFURV9MT09QMSk7CiAgICAgICAgICAgICB2YWJpdHMyID0gZ2V0X3ZhYml0czIoIHNyYytqICk7CiAgICAgICAgICAgICBzZXRfdmFiaXRzMiggZHN0K2osIHZhYml0czIgKTsKICAgICAgICAgICAgIGlmIChWQV9CSVRTMl9QQVJUREVGSU5FRCA9PSB2YWJpdHMyKSB7CkBAIC0xOTQ1LDcgKzE5NTksNyBAQAogCiAgICAgICBpZiAoc3JjID4gZHN0KSB7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgICAgIFBST0ZfRVZFTlQoNTIsICJNQ18oY29weV9hZGRyZXNzX3JhbmdlX3N0YXRlKShsb29wKSIpOworICAgICAgICAgICAgUFJPRl9FVkVOVChNQ1BFX0NPUFlfQUREUkVTU19SQU5HRV9TVEFURV9MT09QMik7CiAgICAgICAgICAgICB2YWJpdHMyID0gZ2V0X3ZhYml0czIoIHNyYytpICk7CiAgICAgICAgICAgICBzZXRfdmFiaXRzMiggZHN0K2ksIHZhYml0czIgKTsKICAgICAgICAgICAgIGlmIChWQV9CSVRTMl9QQVJUREVGSU5FRCA9PSB2YWJpdHMyKSB7CkBAIC0yMjU3LDcgKzIyNzEsNyBAQAogICAgKiBTb21lIG9ic2N1cmUgdXNlcyBvZiB4ODYvYW1kNjQgYnl0ZSByZWdpc3RlcnMgY2FuIGNhdXNlIGxvc3NhZ2UKICAgICAgb3IgY29uZnVzaW9uIG9mIG9yaWdpbnMuICAlQUggLi4gJURIIGFyZSB0cmVhdGVkIGFzIGRpZmZlcmVudAogICAgICBmcm9tLCBhbmQgdW5yZWxhdGVkIHRvLCB0aGVpciBwYXJlbnQgcmVnaXN0ZXJzLCAlRUFYIC4uICVFRFguCi0gICAgIFNvIHNvbWUgd2llcmQgc2VxdWVuY2VzIGxpa2UKKyAgICAgU28gc29tZSB3ZWlyZCBzZXF1ZW5jZXMgbGlrZQogCiAgICAgICAgIG1vdmIgdW5kZWZpbmVkLXZhbHVlLCAlQUgKICAgICAgICAgbW92YiBkZWZpbmVkLXZhbHVlLCAlQUwKQEAgLTI1OTMsNyArMjYwNyw3IEBACiAKIHN0YXRpYyBJTkxJTkUgdm9pZCBtYWtlX2FsaWduZWRfd29yZDMyX3VuZGVmaW5lZCAoIEFkZHIgYSApCiB7Ci0gICBQUk9GX0VWRU5UKDMwMCwgIm1ha2VfYWxpZ25lZF93b3JkMzJfdW5kZWZpbmVkIik7CisgIFBST0ZfRVZFTlQoTUNQRV9NQUtFX0FMSUdORURfV09SRDMyX1VOREVGSU5FRCk7CiAKICNpZm5kZWYgUEVSRl9GQVNUX1NUQUNLMgogICAgbWFrZV9tZW1fdW5kZWZpbmVkKGEsIDQpOwpAQCAtMjYwMyw3ICsyNjE3LDcgQEAKICAgICAgIFNlY01hcCogc207CiAKICAgICAgIGlmIChVTkxJS0VMWShhID4gTUFYX1BSSU1BUllfQUREUkVTUykpIHsKLSAgICAgICAgIFBST0ZfRVZFTlQoMzAxLCAibWFrZV9hbGlnbmVkX3dvcmQzMl91bmRlZmluZWQtc2xvdzEiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9NQUtFX0FMSUdORURfV09SRDMyX1VOREVGSU5FRF9TTE9XKTsKICAgICAgICAgIG1ha2VfbWVtX3VuZGVmaW5lZChhLCA0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KQEAgLTI2MzYsNyArMjY1MCw3IEBACiBzdGF0aWMgSU5MSU5FCiB2b2lkIG1ha2VfYWxpZ25lZF93b3JkMzJfbm9hY2Nlc3MgKCBBZGRyIGEgKQogewotICAgUFJPRl9FVkVOVCgzMTAsICJtYWtlX2FsaWduZWRfd29yZDMyX25vYWNjZXNzIik7CisgICBQUk9GX0VWRU5UKE1DUEVfTUFLRV9BTElHTkVEX1dPUkQzMl9OT0FDQ0VTUyk7CiAKICNpZm5kZWYgUEVSRl9GQVNUX1NUQUNLMgogICAgTUNfKG1ha2VfbWVtX25vYWNjZXNzKShhLCA0KTsKQEAgLTI2NDYsNyArMjY2MCw3IEBACiAgICAgICBTZWNNYXAqIHNtOwogCiAgICAgICBpZiAoVU5MSUtFTFkoYSA+IE1BWF9QUklNQVJZX0FERFJFU1MpKSB7Ci0gICAgICAgICBQUk9GX0VWRU5UKDMxMSwgIm1ha2VfYWxpZ25lZF93b3JkMzJfbm9hY2Nlc3Mtc2xvdzEiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9NQUtFX0FMSUdORURfV09SRDMyX05PQUNDRVNTX1NMT1cpOwogICAgICAgICAgTUNfKG1ha2VfbWVtX25vYWNjZXNzKShhLCA0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KQEAgLTI2NzcsNyArMjY5MSw3IEBACiAKIHN0YXRpYyBJTkxJTkUgdm9pZCBtYWtlX2FsaWduZWRfd29yZDY0X3VuZGVmaW5lZCAoIEFkZHIgYSApCiB7Ci0gICBQUk9GX0VWRU5UKDMyMCwgIm1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkIik7CisgICBQUk9GX0VWRU5UKE1DUEVfTUFLRV9BTElHTkVEX1dPUkQ2NF9VTkRFRklORUQpOwogCiAjaWZuZGVmIFBFUkZfRkFTVF9TVEFDSzIKICAgIG1ha2VfbWVtX3VuZGVmaW5lZChhLCA4KTsKQEAgLTI2ODcsNyArMjcwMSw3IEBACiAgICAgICBTZWNNYXAqIHNtOwogCiAgICAgICBpZiAoVU5MSUtFTFkoYSA+IE1BWF9QUklNQVJZX0FERFJFU1MpKSB7Ci0gICAgICAgICBQUk9GX0VWRU5UKDMyMSwgIm1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkLXNsb3cxIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfTUFLRV9BTElHTkVEX1dPUkQ2NF9VTkRFRklORURfU0xPVyk7CiAgICAgICAgICBtYWtlX21lbV91bmRlZmluZWQoYSwgOCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICB9CkBAIC0yNzIxLDcgKzI3MzUsNyBAQAogc3RhdGljIElOTElORQogdm9pZCBtYWtlX2FsaWduZWRfd29yZDY0X25vYWNjZXNzICggQWRkciBhICkKIHsKLSAgIFBST0ZfRVZFTlQoMzMwLCAibWFrZV9hbGlnbmVkX3dvcmQ2NF9ub2FjY2VzcyIpOworICAgUFJPRl9FVkVOVChNQ1BFX01BS0VfQUxJR05FRF9XT1JENjRfTk9BQ0NFU1MpOwogCiAjaWZuZGVmIFBFUkZfRkFTVF9TVEFDSzIKICAgIE1DXyhtYWtlX21lbV9ub2FjY2VzcykoYSwgOCk7CkBAIC0yNzMxLDcgKzI3NDUsNyBAQAogICAgICAgU2VjTWFwKiBzbTsKIAogICAgICAgaWYgKFVOTElLRUxZKGEgPiBNQVhfUFJJTUFSWV9BRERSRVNTKSkgewotICAgICAgICAgUFJPRl9FVkVOVCgzMzEsICJtYWtlX2FsaWduZWRfd29yZDY0X25vYWNjZXNzLXNsb3cxIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfTUFLRV9BTElHTkVEX1dPUkQ2NF9OT0FDQ0VTU19TTE9XKTsKICAgICAgICAgIE1DXyhtYWtlX21lbV9ub2FjY2VzcykoYSwgOCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICB9CkBAIC0yNzczLDcgKzI3ODcsNyBAQAogc3RhdGljIHZvaWQgVkdfUkVHUEFSTSgyKSBtY19uZXdfbWVtX3N0YWNrXzRfd19FQ1UoQWRkciBuZXdfU1AsIFVJbnQgZWN1KQogewogICAgVUludCBvdGFnID0gZWN1IHwgTUNfT0tJTkRfU1RBQ0s7Ci0gICBQUk9GX0VWRU5UKDExMCwgIm5ld19tZW1fc3RhY2tfNCIpOworICAgUFJPRl9FVkVOVChNQ1BFX05FV19NRU1fU1RBQ0tfNCk7CiAgICBpZiAoVkdfSVNfNF9BTElHTkVEKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKSkgewogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQzMl91bmRlZmluZWRfd19vdGFnICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQLCBvdGFnICk7CiAgICB9IGVsc2UgewpAQCAtMjc4NCw3ICsyNzk4LDcgQEAKIE1BWUJFX1VTRUQKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMSkgbWNfbmV3X21lbV9zdGFja180KEFkZHIgbmV3X1NQKQogewotICAgUFJPRl9FVkVOVCgxMTAsICJuZXdfbWVtX3N0YWNrXzQiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ORVdfTUVNX1NUQUNLXzQpOwogICAgaWYgKFZHX0lTXzRfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkMzJfdW5kZWZpbmVkICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICk7CiAgICB9IGVsc2UgewpAQCAtMjc5NSw3ICsyODA5LDcgQEAKIE1BWUJFX1VTRUQKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMSkgbWNfZGllX21lbV9zdGFja180KEFkZHIgbmV3X1NQKQogewotICAgUFJPRl9FVkVOVCgxMjAsICJkaWVfbWVtX3N0YWNrXzQiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ESUVfTUVNX1NUQUNLXzQpOwogICAgaWYgKFZHX0lTXzRfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkMzJfbm9hY2Nlc3MgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AtNCApOwogICAgfSBlbHNlIHsKQEAgLTI4MDksNyArMjgyMyw3IEBACiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDIpIG1jX25ld19tZW1fc3RhY2tfOF93X0VDVShBZGRyIG5ld19TUCwgVUludCBlY3UpCiB7CiAgICBVSW50IG90YWcgPSBlY3UgfCBNQ19PS0lORF9TVEFDSzsKLSAgIFBST0ZfRVZFTlQoMTExLCAibmV3X21lbV9zdGFja184Iik7CisgICBQUk9GX0VWRU5UKE1DUEVfTkVXX01FTV9TVEFDS184KTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDY0X3VuZGVmaW5lZF93X290YWcgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AsIG90YWcgKTsKICAgIH0gZWxzZSBpZiAoVkdfSVNfNF9BTElHTkVEKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKSkgewpAQCAtMjgyMyw3ICsyODM3LDcgQEAKIE1BWUJFX1VTRUQKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMSkgbWNfbmV3X21lbV9zdGFja184KEFkZHIgbmV3X1NQKQogewotICAgUFJPRl9FVkVOVCgxMTEsICJuZXdfbWVtX3N0YWNrXzgiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ORVdfTUVNX1NUQUNLXzgpOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICk7CiAgICB9IGVsc2UgaWYgKFZHX0lTXzRfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKQEAgLTI4MzcsNyArMjg1MSw3IEBACiBNQVlCRV9VU0VECiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDEpIG1jX2RpZV9tZW1fc3RhY2tfOChBZGRyIG5ld19TUCkKIHsKLSAgIFBST0ZfRVZFTlQoMTIxLCAiZGllX21lbV9zdGFja184Iik7CisgICBQUk9GX0VWRU5UKE1DUEVfRElFX01FTV9TVEFDS184KTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDY0X25vYWNjZXNzICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQLTggKTsKICAgIH0gZWxzZSBpZiAoVkdfSVNfNF9BTElHTkVEKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKSkgewpAQCAtMjg1NCw3ICsyODY4LDcgQEAKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMikgbWNfbmV3X21lbV9zdGFja18xMl93X0VDVShBZGRyIG5ld19TUCwgVUludCBlY3UpCiB7CiAgICBVSW50IG90YWcgPSBlY3UgfCBNQ19PS0lORF9TVEFDSzsKLSAgIFBST0ZfRVZFTlQoMTEyLCAibmV3X21lbV9zdGFja18xMiIpOworICAgUFJPRl9FVkVOVChNQ1BFX05FV19NRU1fU1RBQ0tfMTIpOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkX3dfb3RhZyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCAgLCBvdGFnICk7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDMyX3VuZGVmaW5lZF93X290YWcgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1ArOCwgb3RhZyApOwpAQCAtMjg3Miw3ICsyODg2LDcgQEAKIE1BWUJFX1VTRUQKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMSkgbWNfbmV3X21lbV9zdGFja18xMihBZGRyIG5ld19TUCkKIHsKLSAgIFBST0ZfRVZFTlQoMTEyLCAibmV3X21lbV9zdGFja18xMiIpOworICAgUFJPRl9FVkVOVChNQ1BFX05FV19NRU1fU1RBQ0tfMTIpOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICk7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDMyX3VuZGVmaW5lZCAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCs4ICk7CkBAIC0yODkwLDcgKzI5MDQsNyBAQAogTUFZQkVfVVNFRAogc3RhdGljIHZvaWQgVkdfUkVHUEFSTSgxKSBtY19kaWVfbWVtX3N0YWNrXzEyKEFkZHIgbmV3X1NQKQogewotICAgUFJPRl9FVkVOVCgxMjIsICJkaWVfbWVtX3N0YWNrXzEyIik7CisgICBQUk9GX0VWRU5UKE1DUEVfRElFX01FTV9TVEFDS18xMik7CiAgICAvKiBOb3RlIHRoZSAtMTIgaW4gdGhlIHRlc3QgKi8KICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUC0xMiApKSB7CiAgICAgICAvKiBXZSBoYXZlIDgtYWxpZ25tZW50IGF0IC0xMiwgaGVuY2Ugb2sgdG8gZG8gOCBhdCAtMTIgYW5kIDQgYXQKQEAgLTI5MTQsNyArMjkyOCw3IEBACiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDIpIG1jX25ld19tZW1fc3RhY2tfMTZfd19FQ1UoQWRkciBuZXdfU1AsIFVJbnQgZWN1KQogewogICAgVUludCBvdGFnID0gZWN1IHwgTUNfT0tJTkRfU1RBQ0s7Ci0gICBQUk9GX0VWRU5UKDExMywgIm5ld19tZW1fc3RhY2tfMTYiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ORVdfTUVNX1NUQUNLXzE2KTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICAvKiBIYXZlIDgtYWxpZ25tZW50IGF0ICswLCBoZW5jZSBkbyA4IGF0ICswIGFuZCA4IGF0ICs4LiAqLwogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWRfd19vdGFnICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICAsIG90YWcgKTsKQEAgLTI5MzMsNyArMjk0Nyw3IEBACiBNQVlCRV9VU0VECiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDEpIG1jX25ld19tZW1fc3RhY2tfMTYoQWRkciBuZXdfU1ApCiB7Ci0gICBQUk9GX0VWRU5UKDExMywgIm5ld19tZW1fc3RhY2tfMTYiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ORVdfTUVNX1NUQUNLXzE2KTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICAvKiBIYXZlIDgtYWxpZ25tZW50IGF0ICswLCBoZW5jZSBkbyA4IGF0ICswIGFuZCA4IGF0ICs4LiAqLwogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWQgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKTsKQEAgLTI5NTIsNyArMjk2Niw3IEBACiBNQVlCRV9VU0VECiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDEpIG1jX2RpZV9tZW1fc3RhY2tfMTYoQWRkciBuZXdfU1ApCiB7Ci0gICBQUk9GX0VWRU5UKDEyMywgImRpZV9tZW1fc3RhY2tfMTYiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ESUVfTUVNX1NUQUNLXzE2KTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICAvKiBIYXZlIDgtYWxpZ25tZW50IGF0ICswLCBoZW5jZSBkbyA4IGF0IC0xNiBhbmQgOCBhdCAtOC4gKi8KICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfbm9hY2Nlc3MgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AtMTYgKTsKQEAgLTI5NzMsNyArMjk4Nyw3IEBACiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDIpIG1jX25ld19tZW1fc3RhY2tfMzJfd19FQ1UoQWRkciBuZXdfU1AsIFVJbnQgZWN1KQogewogICAgVUludCBvdGFnID0gZWN1IHwgTUNfT0tJTkRfU1RBQ0s7Ci0gICBQUk9GX0VWRU5UKDExNCwgIm5ld19tZW1fc3RhY2tfMzIiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ORVdfTUVNX1NUQUNLXzMyKTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICAvKiBTdHJhaWdodGZvcndhcmQgKi8KICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkX3dfb3RhZyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCAgICwgb3RhZyApOwpAQCAtMjk5Niw3ICszMDEwLDcgQEAKIE1BWUJFX1VTRUQKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMSkgbWNfbmV3X21lbV9zdGFja18zMihBZGRyIG5ld19TUCkKIHsKLSAgIFBST0ZfRVZFTlQoMTE0LCAibmV3X21lbV9zdGFja18zMiIpOworICAgUFJPRl9FVkVOVChNQ1BFX05FV19NRU1fU1RBQ0tfMzIpOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIC8qIFN0cmFpZ2h0Zm9yd2FyZCAqLwogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWQgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKTsKQEAgLTMwMTksNyArMzAzMyw3IEBACiBNQVlCRV9VU0VECiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDEpIG1jX2RpZV9tZW1fc3RhY2tfMzIoQWRkciBuZXdfU1ApCiB7Ci0gICBQUk9GX0VWRU5UKDEyNCwgImRpZV9tZW1fc3RhY2tfMzIiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ESUVfTUVNX1NUQUNLXzMyKTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICAvKiBTdHJhaWdodGZvcndhcmQgKi8KICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfbm9hY2Nlc3MgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AtMzIgKTsKQEAgLTMwNDUsNyArMzA1OSw3IEBACiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDIpIG1jX25ld19tZW1fc3RhY2tfMTEyX3dfRUNVKEFkZHIgbmV3X1NQLCBVSW50IGVjdSkKIHsKICAgIFVJbnQgb3RhZyA9IGVjdSB8IE1DX09LSU5EX1NUQUNLOwotICAgUFJPRl9FVkVOVCgxMTUsICJuZXdfbWVtX3N0YWNrXzExMiIpOworICAgUFJPRl9FVkVOVChNQ1BFX05FV19NRU1fU1RBQ0tfMTEyKTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDY0X3VuZGVmaW5lZF93X290YWcgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgICAsIG90YWcgKTsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkX3dfb3RhZyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCs4ICwgb3RhZyApOwpAQCAtMzA2OSw3ICszMDgzLDcgQEAKIE1BWUJFX1VTRUQKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMSkgbWNfbmV3X21lbV9zdGFja18xMTIoQWRkciBuZXdfU1ApCiB7Ci0gICBQUk9GX0VWRU5UKDExNSwgIm5ld19tZW1fc3RhY2tfMTEyIik7CisgICBQUk9GX0VWRU5UKE1DUEVfTkVXX01FTV9TVEFDS18xMTIpOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICk7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDY0X3VuZGVmaW5lZCAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCs4ICk7CkBAIC0zMDkzLDcgKzMxMDcsNyBAQAogTUFZQkVfVVNFRAogc3RhdGljIHZvaWQgVkdfUkVHUEFSTSgxKSBtY19kaWVfbWVtX3N0YWNrXzExMihBZGRyIG5ld19TUCkKIHsKLSAgIFBST0ZfRVZFTlQoMTI1LCAiZGllX21lbV9zdGFja18xMTIiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ESUVfTUVNX1NUQUNLXzExMik7CiAgICBpZiAoVkdfSVNfOF9BTElHTkVEKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKSkgewogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF9ub2FjY2VzcyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUC0xMTIpOwogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF9ub2FjY2VzcyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUC0xMDQpOwpAQCAtMzEyMCw3ICszMTM0LDcgQEAKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMikgbWNfbmV3X21lbV9zdGFja18xMjhfd19FQ1UoQWRkciBuZXdfU1AsIFVJbnQgZWN1KQogewogICAgVUludCBvdGFnID0gZWN1IHwgTUNfT0tJTkRfU1RBQ0s7Ci0gICBQUk9GX0VWRU5UKDExNiwgIm5ld19tZW1fc3RhY2tfMTI4Iik7CisgICBQUk9GX0VWRU5UKE1DUEVfTkVXX01FTV9TVEFDS18xMjgpOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkX3dfb3RhZyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCAgICwgb3RhZyApOwogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWRfd19vdGFnICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQKzggLCBvdGFnICk7CkBAIC0zMTQ2LDcgKzMxNjAsNyBAQAogTUFZQkVfVVNFRAogc3RhdGljIHZvaWQgVkdfUkVHUEFSTSgxKSBtY19uZXdfbWVtX3N0YWNrXzEyOChBZGRyIG5ld19TUCkKIHsKLSAgIFBST0ZfRVZFTlQoMTE2LCAibmV3X21lbV9zdGFja18xMjgiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ORVdfTUVNX1NUQUNLXzEyOCk7CiAgICBpZiAoVkdfSVNfOF9BTElHTkVEKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKSkgewogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWQgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKTsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQKzggKTsKQEAgLTMxNzIsNyArMzE4Niw3IEBACiBNQVlCRV9VU0VECiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDEpIG1jX2RpZV9tZW1fc3RhY2tfMTI4KEFkZHIgbmV3X1NQKQogewotICAgUFJPRl9FVkVOVCgxMjYsICJkaWVfbWVtX3N0YWNrXzEyOCIpOworICAgUFJPRl9FVkVOVChNQ1BFX0RJRV9NRU1fU1RBQ0tfMTI4KTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDY0X25vYWNjZXNzICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQLTEyOCk7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDY0X25vYWNjZXNzICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQLTEyMCk7CkBAIC0zMjAxLDcgKzMyMTUsNyBAQAogc3RhdGljIHZvaWQgVkdfUkVHUEFSTSgyKSBtY19uZXdfbWVtX3N0YWNrXzE0NF93X0VDVShBZGRyIG5ld19TUCwgVUludCBlY3UpCiB7CiAgICBVSW50IG90YWcgPSBlY3UgfCBNQ19PS0lORF9TVEFDSzsKLSAgIFBST0ZfRVZFTlQoMTE3LCAibmV3X21lbV9zdGFja18xNDQiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ORVdfTUVNX1NUQUNLXzE0NCk7CiAgICBpZiAoVkdfSVNfOF9BTElHTkVEKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKSkgewogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWRfd19vdGFnICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQLCAgICAgb3RhZyApOwogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWRfd19vdGFnICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQKzgsICAgb3RhZyApOwpAQCAtMzIyOSw3ICszMjQzLDcgQEAKIE1BWUJFX1VTRUQKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMSkgbWNfbmV3X21lbV9zdGFja18xNDQoQWRkciBuZXdfU1ApCiB7Ci0gICBQUk9GX0VWRU5UKDExNywgIm5ld19tZW1fc3RhY2tfMTQ0Iik7CisgICBQUk9GX0VWRU5UKE1DUEVfTkVXX01FTV9TVEFDS18xNDQpOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICk7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDY0X3VuZGVmaW5lZCAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCs4ICk7CkBAIC0zMjU3LDcgKzMyNzEsNyBAQAogTUFZQkVfVVNFRAogc3RhdGljIHZvaWQgVkdfUkVHUEFSTSgxKSBtY19kaWVfbWVtX3N0YWNrXzE0NChBZGRyIG5ld19TUCkKIHsKLSAgIFBST0ZfRVZFTlQoMTI3LCAiZGllX21lbV9zdGFja18xNDQiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ESUVfTUVNX1NUQUNLXzE0NCk7CiAgICBpZiAoVkdfSVNfOF9BTElHTkVEKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AgKSkgewogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF9ub2FjY2VzcyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUC0xNDQpOwogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF9ub2FjY2VzcyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUC0xMzYpOwpAQCAtMzI4OCw3ICszMzAyLDcgQEAKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMikgbWNfbmV3X21lbV9zdGFja18xNjBfd19FQ1UoQWRkciBuZXdfU1AsIFVJbnQgZWN1KQogewogICAgVUludCBvdGFnID0gZWN1IHwgTUNfT0tJTkRfU1RBQ0s7Ci0gICBQUk9GX0VWRU5UKDExOCwgIm5ld19tZW1fc3RhY2tfMTYwIik7CisgICBQUk9GX0VWRU5UKE1DUEVfTkVXX01FTV9TVEFDS18xNjApOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkX3dfb3RhZyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCwgICAgIG90YWcgKTsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkX3dfb3RhZyAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCs4LCAgIG90YWcgKTsKQEAgLTMzMTgsNyArMzMzMiw3IEBACiBNQVlCRV9VU0VECiBzdGF0aWMgdm9pZCBWR19SRUdQQVJNKDEpIG1jX25ld19tZW1fc3RhY2tfMTYwKEFkZHIgbmV3X1NQKQogewotICAgUFJPRl9FVkVOVCgxMTgsICJuZXdfbWVtX3N0YWNrXzE2MCIpOworICAgUFJPRl9FVkVOVChNQ1BFX05FV19NRU1fU1RBQ0tfMTYwKTsKICAgIGlmIChWR19JU184X0FMSUdORUQoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApKSB7CiAgICAgICBtYWtlX2FsaWduZWRfd29yZDY0X3VuZGVmaW5lZCAoIC1WR19TVEFDS19SRURaT05FX1NaQiArIG5ld19TUCApOwogICAgICAgbWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWQgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1ArOCApOwpAQCAtMzM0OCw3ICszMzYyLDcgQEAKIE1BWUJFX1VTRUQKIHN0YXRpYyB2b2lkIFZHX1JFR1BBUk0oMSkgbWNfZGllX21lbV9zdGFja18xNjAoQWRkciBuZXdfU1ApCiB7Ci0gICBQUk9GX0VWRU5UKDEyOCwgImRpZV9tZW1fc3RhY2tfMTYwIik7CisgICBQUk9GX0VWRU5UKE1DUEVfRElFX01FTV9TVEFDS18xNjApOwogICAgaWYgKFZHX0lTXzhfQUxJR05FRCggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgbmV3X1NQICkpIHsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfbm9hY2Nlc3MgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AtMTYwKTsKICAgICAgIG1ha2VfYWxpZ25lZF93b3JkNjRfbm9hY2Nlc3MgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBuZXdfU1AtMTUyKTsKQEAgLTMzODAsMTkgKzMzOTQsMTkgQEAKIHN0YXRpYyB2b2lkIG1jX25ld19tZW1fc3RhY2tfd19FQ1UgKCBBZGRyIGEsIFNpemVUIGxlbiwgVUludCBlY3UgKQogewogICAgVUludCBvdGFnID0gZWN1IHwgTUNfT0tJTkRfU1RBQ0s7Ci0gICBQUk9GX0VWRU5UKDExNSwgIm5ld19tZW1fc3RhY2tfd19vdGFnIik7CisgICBQUk9GX0VWRU5UKE1DUEVfTkVXX01FTV9TVEFDSyk7CiAgICBNQ18obWFrZV9tZW1fdW5kZWZpbmVkX3dfb3RhZykgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBhLCBsZW4sIG90YWcgKTsKIH0KIAogc3RhdGljIHZvaWQgbWNfbmV3X21lbV9zdGFjayAoIEFkZHIgYSwgU2l6ZVQgbGVuICkKIHsKLSAgIFBST0ZfRVZFTlQoMTE1LCAibmV3X21lbV9zdGFjayIpOworICAgUFJPRl9FVkVOVChNQ1BFX05FV19NRU1fU1RBQ0spOwogICAgbWFrZV9tZW1fdW5kZWZpbmVkICggLVZHX1NUQUNLX1JFRFpPTkVfU1pCICsgYSwgbGVuICk7CiB9CiAKIHN0YXRpYyB2b2lkIG1jX2RpZV9tZW1fc3RhY2sgKCBBZGRyIGEsIFNpemVUIGxlbiApCiB7Ci0gICBQUk9GX0VWRU5UKDEyNSwgImRpZV9tZW1fc3RhY2siKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9ESUVfTUVNX1NUQUNLKTsKICAgIE1DXyhtYWtlX21lbV9ub2FjY2VzcykgKCAtVkdfU1RBQ0tfUkVEWk9ORV9TWkIgKyBhLCBsZW4gKTsKIH0KIApAQCAtMzc0Niw5ICszNzYwLDkgQEAKICAgIFNpemVUIGk7CiAgICBVV29yZCB2YWJpdHMyOwogCi0gICBQUk9GX0VWRU5UKDYwLCAiY2hlY2tfbWVtX2lzX25vYWNjZXNzIik7CisgICBQUk9GX0VWRU5UKE1DUEVfQ0hFQ0tfTUVNX0lTX05PQUNDRVNTKTsKICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewotICAgICAgUFJPRl9FVkVOVCg2MSwgImNoZWNrX21lbV9pc19ub2FjY2Vzcyhsb29wKSIpOworICAgICAgUFJPRl9FVkVOVChNQ1BFX0NIRUNLX01FTV9JU19OT0FDQ0VTU19MT09QKTsKICAgICAgIHZhYml0czIgPSBnZXRfdmFiaXRzMihhKTsKICAgICAgIGlmIChWQV9CSVRTMl9OT0FDQ0VTUyAhPSB2YWJpdHMyKSB7CiAgICAgICAgICBpZiAoYmFkX2FkZHIgIT0gTlVMTCkgKmJhZF9hZGRyID0gYTsKQEAgLTM3NjUsOSArMzc3OSw5IEBACiAgICBTaXplVCBpOwogICAgVVdvcmQgdmFiaXRzMjsKIAotICAgUFJPRl9FVkVOVCg2MiwgImlzX21lbV9hZGRyZXNzYWJsZSIpOworICAgUFJPRl9FVkVOVChNQ1BFX0lTX01FTV9BRERSRVNTQUJMRSk7CiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgIFBST0ZfRVZFTlQoNjMsICJpc19tZW1fYWRkcmVzc2FibGUobG9vcCkiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9JU19NRU1fQUREUkVTU0FCTEVfTE9PUCk7CiAgICAgICB2YWJpdHMyID0gZ2V0X3ZhYml0czIoYSk7CiAgICAgICBpZiAoVkFfQklUUzJfTk9BQ0NFU1MgPT0gdmFiaXRzMikgewogICAgICAgICAgaWYgKGJhZF9hZGRyICE9IE5VTEwpICpiYWRfYWRkciA9IGE7CkBAIC0zNzg1LDEzICszNzk5LDEzIEBACiAgICBTaXplVCBpOwogICAgVVdvcmQgdmFiaXRzMjsKIAotICAgUFJPRl9FVkVOVCg2NCwgImlzX21lbV9kZWZpbmVkIik7CisgICBQUk9GX0VWRU5UKE1DUEVfSVNfTUVNX0RFRklORUQpOwogICAgREVCVUcoImlzX21lbV9kZWZpbmVkXG4iKTsKIAogICAgaWYgKG90YWcpICAgICAqb3RhZyA9IDA7CiAgICBpZiAoYmFkX2FkZHIpICpiYWRfYWRkciA9IDA7CiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgIFBST0ZfRVZFTlQoNjUsICJpc19tZW1fZGVmaW5lZChsb29wKSIpOworICAgICAgUFJPRl9FVkVOVChNQ1BFX0lTX01FTV9ERUZJTkVEX0xPT1ApOwogICAgICAgdmFiaXRzMiA9IGdldF92YWJpdHMyKGEpOwogICAgICAgaWYgKFZBX0JJVFMyX0RFRklORUQgIT0gdmFiaXRzMikgewogICAgICAgICAgLy8gRXJyb3IhICBOYjogUmVwb3J0IGFkZHJlc3NhYmlsaXR5IGVycm9ycyBpbiBwcmVmZXJlbmNlIHRvCkBAIC0zODM4LDEzICszODUyLDEzIEBACiAgICBVV29yZCB2YWJpdHMyOwogICAgQm9vbCAgYWxyZWFkeV9zYXdfZXJyViA9IEZhbHNlOwogCi0gICBQUk9GX0VWRU5UKDY0LCAiaXNfbWVtX2RlZmluZWQiKTsgLy8gZml4bWUKKyAgIFBST0ZfRVZFTlQoTUNQRV9JU19NRU1fREVGSU5FRF9DT01QUkVIRU5TSVZFKTsKICAgIERFQlVHKCJpc19tZW1fZGVmaW5lZF9jb21wcmVoZW5zaXZlXG4iKTsKIAogICAgdGxfYXNzZXJ0KCEoKmVycm9yViB8fCAqZXJyb3JBKSk7CiAKICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewotICAgICAgUFJPRl9FVkVOVCg2NSwgImlzX21lbV9kZWZpbmVkKGxvb3ApIik7IC8vIGZpeG1lCisgICAgICBQUk9GX0VWRU5UKE1DUEVfSVNfTUVNX0RFRklORURfQ09NUFJFSEVOU0lWRV9MT09QKTsKICAgICAgIHZhYml0czIgPSBnZXRfdmFiaXRzMihhKTsKICAgICAgIHN3aXRjaCAodmFiaXRzMikgewogICAgICAgICAgY2FzZSBWQV9CSVRTMl9ERUZJTkVEOiAKQEAgLTM4ODMsMTMgKzM4OTcsMTMgQEAKIHsKICAgIFVXb3JkIHZhYml0czI7CiAKLSAgIFBST0ZfRVZFTlQoNjYsICJtY19pc19kZWZpbmVkX2FzY2lpeiIpOworICAgUFJPRl9FVkVOVChNQ1BFX0lTX0RFRklORURfQVNDSUlaKTsKICAgIERFQlVHKCJtY19pc19kZWZpbmVkX2FzY2lpelxuIik7CiAKICAgIGlmIChvdGFnKSAgICAgKm90YWcgPSAwOwogICAgaWYgKGJhZF9hZGRyKSAqYmFkX2FkZHIgPSAwOwogICAgd2hpbGUgKFRydWUpIHsKLSAgICAgIFBST0ZfRVZFTlQoNjcsICJtY19pc19kZWZpbmVkX2FzY2lpeihsb29wKSIpOworICAgICAgUFJPRl9FVkVOVChNQ1BFX0lTX0RFRklORURfQVNDSUlaX0xPT1ApOwogICAgICAgdmFiaXRzMiA9IGdldF92YWJpdHMyKGEpOwogICAgICAgaWYgKFZBX0JJVFMyX0RFRklORUQgIT0gdmFiaXRzMikgewogICAgICAgICAgLy8gRXJyb3IhICBOYjogUmVwb3J0IGFkZHJlc3NhYmlsaXR5IGVycm9ycyBpbiBwcmVmZXJlbmNlIHRvCkBAIC00MTkyLDYgKzQyMDYsMTQwIEBACiAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gUmVnaXN0ZXItbWVtb3J5IGV2ZW50IGhhbmRsZXJzICAgICAgICAgICAgICAgICAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdGF0aWMgdm9pZCBtY19jb3B5X21lbV90b19yZWcgKCBDb3JlUGFydCBwYXJ0LCBUaHJlYWRJZCB0aWQsIEFkZHIgYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB0cmRpZmZUIGd1ZXN0X3N0YXRlX29mZnNldCwgU2l6ZVQgc2l6ZSApCit7CisgICBTaXplVCBpOworICAgVUNoYXIgdmJpdHM4OworICAgSW50IG9mZnNldDsKKyAgIFVJbnQgZDMyOworCisgICAvKiBTbG93IGxvb3AuICovCisgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICBnZXRfdmJpdHM4KCBhK2ksICZ2Yml0czggKTsKKyAgICAgIFZHXyhzZXRfc2hhZG93X3JlZ3NfYXJlYSkoIHRpZCwgMS8qc2hhZG93Tm8qLywgZ3Vlc3Rfc3RhdGVfb2Zmc2V0K2ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAmdmJpdHM4ICk7CisgICB9CisKKyAgIGlmIChNQ18oY2xvX21jX2xldmVsKSAhPSAzKQorICAgICAgcmV0dXJuOworCisgICAvKiBUcmFjayBvcmlnaW5zLiAqLworICAgb2Zmc2V0ID0gTUNfKGdldF9vdHJhY2tfc2hhZG93X29mZnNldCkoIGd1ZXN0X3N0YXRlX29mZnNldCwgc2l6ZSApOworICAgaWYgKG9mZnNldCA9PSAtMSkKKyAgICAgIHJldHVybjsKKworICAgc3dpdGNoIChzaXplKSB7CisgICBjYXNlIDE6CisgICAgICBkMzIgPSBNQ18oaGVscGVyY19iX2xvYWQxKSggYSApOworICAgICAgYnJlYWs7CisgICBjYXNlIDI6CisgICAgICBkMzIgPSBNQ18oaGVscGVyY19iX2xvYWQyKSggYSApOworICAgICAgYnJlYWs7CisgICBjYXNlIDQ6CisgICAgICBkMzIgPSBNQ18oaGVscGVyY19iX2xvYWQ0KSggYSApOworICAgICAgYnJlYWs7CisgICBjYXNlIDg6CisgICAgICBkMzIgPSBNQ18oaGVscGVyY19iX2xvYWQ4KSggYSApOworICAgICAgYnJlYWs7CisgICBjYXNlIDE2OgorICAgICAgZDMyID0gTUNfKGhlbHBlcmNfYl9sb2FkMTYpKCBhICk7CisgICAgICBicmVhazsKKyAgIGNhc2UgMzI6CisgICAgICBkMzIgPSBNQ18oaGVscGVyY19iX2xvYWQzMikoIGEgKTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHRsX2Fzc2VydCgwKTsKKyAgIH0KKworICAgVkdfKHNldF9zaGFkb3dfcmVnc19hcmVhKSggdGlkLCAyLypzaGFkb3dObyovLCBvZmZzZXQsIDQsIChVQ2hhciopJmQzMiApOworfQorCitzdGF0aWMgdm9pZCBtY19jb3B5X3JlZ190b19tZW0gKCBDb3JlUGFydCBwYXJ0LCBUaHJlYWRJZCB0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdHJkaWZmVCBndWVzdF9zdGF0ZV9vZmZzZXQsIEFkZHIgYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpemVUIHNpemUgKQoreworICAgU2l6ZVQgaTsKKyAgIFVDaGFyIHZiaXRzODsKKyAgIEludCBvZmZzZXQ7CisgICBVSW50IGQzMjsKKworICAgLyogU2xvdyBsb29wLiAqLworICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgVkdfKGdldF9zaGFkb3dfcmVnc19hcmVhKSggdGlkLCAmdmJpdHM4LCAxLypzaGFkb3dObyovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3Rfc3RhdGVfb2Zmc2V0K2ksIDEgKTsKKyAgICAgIHNldF92Yml0czgoIGEraSwgdmJpdHM4ICk7CisgICB9CisKKyAgIGlmIChNQ18oY2xvX21jX2xldmVsKSAhPSAzKQorICAgICAgcmV0dXJuOworCisgICAvKiBUcmFjayBvcmlnaW5zLiAqLworICAgb2Zmc2V0ID0gTUNfKGdldF9vdHJhY2tfc2hhZG93X29mZnNldCkoIGd1ZXN0X3N0YXRlX29mZnNldCwgc2l6ZSApOworICAgaWYgKG9mZnNldCA9PSAtMSkKKyAgICAgIHJldHVybjsKKworICAgVkdfKGdldF9zaGFkb3dfcmVnc19hcmVhKSggdGlkLCAoVUNoYXIqKSZkMzIsIDIvKnNoYWRvd05vKi8sIG9mZnNldCwgNCApOworICAgc3dpdGNoIChzaXplKSB7CisgICBjYXNlIDE6CisgICAgICBNQ18oaGVscGVyY19iX3N0b3JlMSkoIGEsIGQzMiApOworICAgICAgYnJlYWs7CisgICBjYXNlIDI6CisgICAgICBNQ18oaGVscGVyY19iX3N0b3JlMikoIGEsIGQzMiApOworICAgICAgYnJlYWs7CisgICBjYXNlIDQ6CisgICAgICBNQ18oaGVscGVyY19iX3N0b3JlNCkoIGEsIGQzMiApOworICAgICAgYnJlYWs7CisgICBjYXNlIDg6CisgICAgICBNQ18oaGVscGVyY19iX3N0b3JlOCkoIGEsIGQzMiApOworICAgICAgYnJlYWs7CisgICBjYXNlIDE2OgorICAgICAgTUNfKGhlbHBlcmNfYl9zdG9yZTE2KSggYSwgZDMyICk7CisgICAgICBicmVhazsKKyAgIGNhc2UgMzI6CisgICAgICBNQ18oaGVscGVyY19iX3N0b3JlMzIpKCBhLCBkMzIgKTsKKyAgICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgIHRsX2Fzc2VydCgwKTsKKyAgIH0KK30KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBTb21lIHN0YXRpYyBhc3NlcnRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIFRoZSBoYW5kd3JpdHRlbiBhc3NlbWJseSBoZWxwZXJzIGJlbG93IGhhdmUgYmFrZWQtaW4gYXNzdW1wdGlvbnMKKyAgIGFib3V0IHZhcmlvdXMgY29uc3RhbnQgdmFsdWVzLiAgVGhlc2UgYXNzZXJ0aW9ucyBhdHRlbXB0IHRvIG1ha2UKKyAgIHRoYXQgYSBiaXQgc2FmZXIgYnkgY2hlY2tpbmcgdGhvc2UgdmFsdWVzIGFuZCBmbGFnZ2luZyBjaGFuZ2VzIHRoYXQKKyAgIHdvdWxkIG1ha2UgdGhlIGFzc2VtYmx5IGludmFsaWQuICBOb3QgcGVyZmVjdCBidXQgaXQncyBiZXR0ZXIgdGhhbgorICAgbm90aGluZy4gKi8KKworU1RBVElDX0FTU0VSVChTTV9DSFVOS1MgKiA0ID09IDY1NTM2KTsKKworU1RBVElDX0FTU0VSVChWQV9CSVRTOF9ERUZJTkVEICAgPT0gMHhBQSk7CitTVEFUSUNfQVNTRVJUKFZBX0JJVFM4X1VOREVGSU5FRCA9PSAweDU1KTsKKworU1RBVElDX0FTU0VSVChWX0JJVFMzMl9ERUZJTkVEICAgPT0gMHgwMDAwMDAwMCk7CitTVEFUSUNfQVNTRVJUKFZfQklUUzMyX1VOREVGSU5FRCA9PSAweEZGRkZGRkZGKTsKKworU1RBVElDX0FTU0VSVChWQV9CSVRTNF9ERUZJTkVEID09IDB4QSk7CitTVEFUSUNfQVNTRVJUKFZBX0JJVFM0X1VOREVGSU5FRCA9PSAweDUpOworCitTVEFUSUNfQVNTRVJUKFZfQklUUzE2X0RFRklORUQgPT0gMHgwMDAwKTsKK1NUQVRJQ19BU1NFUlQoVl9CSVRTMTZfVU5ERUZJTkVEID09IDB4RkZGRik7CisKK1NUQVRJQ19BU1NFUlQoVkFfQklUUzJfREVGSU5FRCA9PSAyKTsKK1NUQVRJQ19BU1NFUlQoVkFfQklUUzJfVU5ERUZJTkVEID09IDEpOworCitTVEFUSUNfQVNTRVJUKFZfQklUUzhfREVGSU5FRCA9PSAweDAwKTsKK1NUQVRJQ19BU1NFUlQoVl9CSVRTOF9VTkRFRklORUQgPT0gMHhGRik7CisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gRnVuY3Rpb25zIGNhbGxlZCBkaXJlY3RseSBmcm9tIGdlbmVyYXRlZCBjb2RlOiAgICAgICAtLS0qLwogLyotLS0gTG9hZC9zdG9yZSBoYW5kbGVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpAQCAtNDI4MSwxNCArNDQyOSwxNSBAQAogICAgICAgICAgICA9IDB4RkZGRidGRkYwJzAwMDAnMDAwNwogKi8KIAotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2l6ZSA9IDE2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gTE9BRFYyNTYgYW5kIExPQURWMTI4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiBzdGF0aWMgSU5MSU5FCiB2b2lkIG1jX0xPQURWXzEyOF9vcl8yNTYgKCAvKk9VVCovVUxvbmcqIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHIgYSwgU2l6ZVQgbkJpdHMsIEJvb2wgaXNCaWdFbmRpYW4gKQogewotICAgUFJPRl9FVkVOVCgyMDAsICJtY19MT0FEVl8xMjhfb3JfMjU2Iik7CisgICBQUk9GX0VWRU5UKE1DUEVfTE9BRFZfMTI4X09SXzI1Nik7CiAKICNpZm5kZWYgUEVSRl9GQVNUX0xPQURWCiAgICBtY19MT0FEVl8xMjhfb3JfMjU2X3Nsb3coIHJlcywgYSwgbkJpdHMsIGlzQmlnRW5kaWFuICk7CkBAIC00MzAxLDcgKzQ0NTAsNyBAQAogICAgICAgU2VjTWFwKiBzbTsKIAogICAgICAgaWYgKFVOTElLRUxZKCBVTkFMSUdORURfT1JfSElHSChhLG5CaXRzKSApKSB7Ci0gICAgICAgICBQUk9GX0VWRU5UKDIwMSwgIm1jX0xPQURWXzEyOF9vcl8yNTYtc2xvdzEiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9MT0FEVl8xMjhfT1JfMjU2X1NMT1cxKTsKICAgICAgICAgIG1jX0xPQURWXzEyOF9vcl8yNTZfc2xvdyggcmVzLCBhLCBuQml0cywgaXNCaWdFbmRpYW4gKTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KQEAgLTQzMjIsNyArNDQ3MSw3IEBACiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyogU2xvdyBjYXNlOiBzb21lIGJsb2NrIG9mIDggYnl0ZXMgYXJlIG5vdCBhbGwtZGVmaW5lZCBvcgogICAgICAgICAgICAgICAgYWxsLXVuZGVmaW5lZC4gKi8KLSAgICAgICAgICAgIFBST0ZfRVZFTlQoMjAyLCAibWNfTE9BRFZfMTI4X29yXzI1Ni1zbG93MiIpOworICAgICAgICAgICAgUFJPRl9FVkVOVChNQ1BFX0xPQURWXzEyOF9PUl8yNTZfU0xPVzIpOwogICAgICAgICAgICAgbWNfTE9BRFZfMTI4X29yXzI1Nl9zbG93KCByZXMsIGEsIG5CaXRzLCBpc0JpZ0VuZGlhbiApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQpAQCAtNDM1MCwxMiArNDQ5OSwxNCBAQAogICAgbWNfTE9BRFZfMTI4X29yXzI1NigmcmVzLT53NjRbMF0sIGEsIDEyOCwgRmFsc2UpOwogfQogCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2l6ZSA9IDggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBMT0FEVjY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIHN0YXRpYyBJTkxJTkUKIFVMb25nIG1jX0xPQURWNjQgKCBBZGRyIGEsIEJvb2wgaXNCaWdFbmRpYW4gKQogewotICAgUFJPRl9FVkVOVCgyMDAsICJtY19MT0FEVjY0Iik7CisgICBQUk9GX0VWRU5UKE1DUEVfTE9BRFY2NCk7CiAKICNpZm5kZWYgUEVSRl9GQVNUX0xPQURWCiAgICByZXR1cm4gbWNfTE9BRFZuX3Nsb3coIGEsIDY0LCBpc0JpZ0VuZGlhbiApOwpAQCAtNDM2NSw3ICs0NTE2LDcgQEAKICAgICAgIFNlY01hcCogc207CiAKICAgICAgIGlmIChVTkxJS0VMWSggVU5BTElHTkVEX09SX0hJR0goYSw2NCkgKSkgewotICAgICAgICAgUFJPRl9FVkVOVCgyMDEsICJtY19MT0FEVjY0LXNsb3cxIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfTE9BRFY2NF9TTE9XMSk7CiAgICAgICAgICByZXR1cm4gKFVMb25nKW1jX0xPQURWbl9zbG93KCBhLCA2NCwgaXNCaWdFbmRpYW4gKTsKICAgICAgIH0KIApAQCAtNDM4MiwyNyArNDUzMywxMTEgQEAKICAgICAgICAgIHJldHVybiBWX0JJVFM2NF9VTkRFRklORUQ7CiAgICAgICB9IGVsc2UgewogICAgICAgICAgLyogU2xvdyBjYXNlOiB0aGUgOCBieXRlcyBhcmUgbm90IGFsbC1kZWZpbmVkIG9yIGFsbC11bmRlZmluZWQuICovCi0gICAgICAgICBQUk9GX0VWRU5UKDIwMiwgIm1jX0xPQURWNjQtc2xvdzIiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9MT0FEVjY0X1NMT1cyKTsKICAgICAgICAgIHJldHVybiBtY19MT0FEVm5fc2xvdyggYSwgNjQsIGlzQmlnRW5kaWFuICk7CiAgICAgICB9CiAgICB9CiAjZW5kaWYKIH0KIAorLy8gR2VuZXJpYyBmb3IgYWxsIHBsYXRmb3JtcwogVkdfUkVHUEFSTSgxKSBVTG9uZyBNQ18oaGVscGVyY19MT0FEVjY0YmUpICggQWRkciBhICkKIHsKICAgIHJldHVybiBtY19MT0FEVjY0KGEsIFRydWUpOwogfQorCisvLyBOb24tZ2VuZXJpYyBhc3NlbWJseSBmb3IgYXJtMzItbGludXgKKyNpZiBFTkFCTEVfQVNTRU1CTFlfSEVMUEVSUyAmJiBkZWZpbmVkKFBFUkZfRkFTVF9MT0FEVikgXAorICAgICYmIGRlZmluZWQoVkdQX2FybV9saW51eCkKK19fYXNtX18oIC8qIERlcml2ZWQgZnJvbSB0aGUgMzIgYml0IGFzc2VtYmx5IGhlbHBlciAqLworIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorIi5hbGlnbiAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorIi5nbG9iYWwgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWNjRsZSAgIFxuIgorIi50eXBlICAgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWNjRsZSwgJWZ1bmN0aW9uIFxuIgorInZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjY0bGU6ICAgICAgICAgIFxuIgorIiAgICAgIHRzdCAgICByMCwgIzcgICAgICAgICAgICAgICAgICAgIFxuIgorIiAgICAgIG1vdncgICByMywgIzpsb3dlcjE2OnByaW1hcnlfbWFwIFxuIgorIiAgICAgIGJuZSAgICAuTExWNjRMRWM0ICAgICAgICAgICAgICAgIFxuIiAvLyBpZiBtaXNhbGlnbmVkCisiICAgICAgbHNyICAgIHIyLCByMCwgIzE2ICAgICAgICAgICAgICAgXG4iCisiICAgICAgbW92dCAgIHIzLCAjOnVwcGVyMTY6cHJpbWFyeV9tYXAgXG4iCisiICAgICAgbGRyICAgIHIyLCBbcjMsIHIyLCBsc2wgIzJdICAgICAgXG4iCisiICAgICAgdXh0aCAgIHIxLCByMCAgICAgICAgICAgICAgICAgICAgXG4iIC8vIHIxIGlzIDAtKDE2KS0wIFgtKDEzKS1YIDAwMAorIiAgICAgIG1vdncgICByMywgIzB4QUFBQSAgICAgICAgICAgICAgIFxuIgorIiAgICAgIGxzciAgICByMSwgcjEsICMyICAgICAgICAgICAgICAgIFxuIiAvLyByMSBpcyAwLSgxNiktMCAwMCBYLSgxMyktWCAwCisiICAgICAgbGRyaCAgIHIxLCBbcjIsIHIxXSAgICAgICAgICAgICAgXG4iCisiICAgICAgY21wICAgIHIxLCByMyAgICAgICAgICAgICAgICAgICAgXG4iIC8vIDB4QUFBQSA9PSBWQV9CSVRTMTZfREVGSU5FRAorIiAgICAgIGJuZSAgICAuTExWNjRMRWMwICAgICAgICAgICAgICAgIFxuIiAvLyBpZiAhYWxsX2RlZmluZWQKKyIgICAgICBtb3YgICAgcjEsICMweDAgICAgICAgICAgICAgICAgICBcbiIgLy8gMHgwID09IFZfQklUUzMyX0RFRklORUQKKyIgICAgICBtb3YgICAgcjAsICMweDAgICAgICAgICAgICAgICAgICBcbiIgLy8gMHgwID09IFZfQklUUzMyX0RFRklORUQKKyIgICAgICBieCAgICAgbHIgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIuTExWNjRMRWMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIgICAgICBtb3Z3ICAgcjMsICMweDU1NTUgICAgICAgICAgICAgICBcbiIKKyIgICAgICBjbXAgICAgcjEsIHIzICAgICAgICAgICAgICAgICAgICBcbiIgLy8gMHg1NTU1ID09IFZBX0JJVFMxNl9VTkRFRklORUQKKyIgICAgICBibmUgICAgLkxMVjY0TEVjNCAgICAgICAgICAgICAgICBcbiIgLy8gaWYgIWFsbF91bmRlZmluZWQKKyIgICAgICBtb3YgICAgcjEsICMweEZGRkZGRkZGICAgICAgICAgICBcbiIgLy8gMHhGRkZGRkZGRiA9PSBWX0JJVFMzMl9VTkRFRklORUQKKyIgICAgICBtb3YgICAgcjAsICMweEZGRkZGRkZGICAgICAgICAgICBcbiIgLy8gMHhGRkZGRkZGRiA9PSBWX0JJVFMzMl9VTkRFRklORUQKKyIgICAgICBieCAgICAgbHIgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIuTExWNjRMRWM0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIgICAgICBwdXNoICAge3I0LCBscn0gICAgICAgICAgICAgICAgICBcbiIKKyIgICAgICBtb3YgICAgcjIsICMwICAgICAgICAgICAgICAgICAgICBcbiIKKyIgICAgICBtb3YgICAgcjEsICM2NCAgICAgICAgICAgICAgICAgICBcbiIKKyIgICAgICBibCAgICAgbWNfTE9BRFZuX3Nsb3cgICAgICAgICAgICBcbiIKKyIgICAgICBwb3AgICAge3I0LCBwY30gICAgICAgICAgICAgICAgICBcbiIKKyIuc2l6ZSB2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFY2NGxlLCAuLXZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjY0bGUgXG4iCisiLnByZXZpb3VzXG4iCispOworCisjZWxpZiBFTkFCTEVfQVNTRU1CTFlfSEVMUEVSUyAmJiBkZWZpbmVkKFBFUkZfRkFTVF9MT0FEVikgXAorICAgICAgJiYgKGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpKQorX19hc21fXygKKyIudGV4dFxuIgorIi5hbGlnbiAxNlxuIgorIi5nbG9iYWwgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWNjRsZVxuIgorIi50eXBlICAgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWNjRsZSwgQGZ1bmN0aW9uXG4iCisidmdNZW1DaGVja19oZWxwZXJjX0xPQURWNjRsZTpcbiIKKyIgICAgICB0ZXN0ICAgJDB4NywgICVlYXhcbiIKKyIgICAgICBqbmUgICAgLkxMVjY0TEUyXG4iICAgICAgICAgIC8qIGp1bXAgaWYgbm90IGFsaWduZWQgKi8KKyIgICAgICBtb3YgICAgJWVheCwgICVlY3hcbiIKKyIgICAgICBtb3Z6d2wgJWF4LCAgICVlZHhcbiIKKyIgICAgICBzaHIgICAgJDB4MTAsICVlY3hcbiIKKyIgICAgICBtb3YgICAgcHJpbWFyeV9tYXAoLCVlY3gsNCksICVlY3hcbiIKKyIgICAgICBzaHIgICAgJDB4MywgICVlZHhcbiIKKyIgICAgICBtb3Z6d2wgKCVlY3gsJWVkeCwyKSwgJWVkeFxuIgorIiAgICAgIGNtcCAgICAkMHhhYWFhLCAlZWR4XG4iCisiICAgICAgam5lICAgIC5MTFY2NExFMVxuIiAgICAgICAgICAvKiBqdW1wIGlmIG5vdCBhbGwgZGVmaW5lZCAqLworIiAgICAgIHhvciAgICAlZWF4LCAlZWF4XG4iICAgICAgICAgLyogcmV0dXJuIDAgaW4gZWR4OmVheCAqLworIiAgICAgIHhvciAgICAlZWR4LCAlZWR4XG4iCisiICAgICAgcmV0XG4iCisiLkxMVjY0TEUxOlxuIgorIiAgICAgIGNtcCAgICAkMHg1NTU1LCAlZWR4XG4iCisiICAgICAgam5lICAgIC5MTFY2NExFMlxuIiAgICAgICAgIC8qIGp1bXAgaWYgbm90IGFsbCB1bmRlZmluZWQgKi8KKyIgICAgICBvciAgICAgJDB4ZmZmZmZmZmYsICVlYXhcbiIgLyogZWxzZSByZXR1cm4gYWxsIGJpdHMgc2V0IGluIGVkeDplYXggKi8KKyIgICAgICBvciAgICAgJDB4ZmZmZmZmZmYsICVlZHhcbiIKKyIgICAgICByZXRcbiIKKyIuTExWNjRMRTI6XG4iCisiICAgICAgeG9yICAgICVlY3gsICAlZWN4XG4iICAvKiB0YWlsIGNhbGwgdG8gbWNfTE9BRFZuX3Nsb3coYSwgNjQsIDApICovCisiICAgICAgbW92ICAgICQ2NCwgICAlZWR4XG4iCisiICAgICAgam1wICAgIG1jX0xPQURWbl9zbG93XG4iCisiLnNpemUgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWNjRsZSwgLi12Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFY2NGxlXG4iCisiLnByZXZpb3VzXG4iCispOworCisjZWxzZQorLy8gR2VuZXJpYyBmb3IgYWxsIHBsYXRmb3JtcyBleGNlcHQge2FybTMyLHg4Nn0tbGludXggYW5kIHg4Ni1zb2xhcmlzCiBWR19SRUdQQVJNKDEpIFVMb25nIE1DXyhoZWxwZXJjX0xPQURWNjRsZSkgKCBBZGRyIGEgKQogewogICAgcmV0dXJuIG1jX0xPQURWNjQoYSwgRmFsc2UpOwogfQorI2VuZGlmCiAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFNUT1JFVjY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogc3RhdGljIElOTElORQogdm9pZCBtY19TVE9SRVY2NCAoIEFkZHIgYSwgVUxvbmcgdmJpdHM2NCwgQm9vbCBpc0JpZ0VuZGlhbiApCiB7Ci0gICBQUk9GX0VWRU5UKDIxMCwgIm1jX1NUT1JFVjY0Iik7CisgICBQUk9GX0VWRU5UKE1DUEVfU1RPUkVWNjQpOwogCiAjaWZuZGVmIFBFUkZfRkFTVF9TVE9SRVYKICAgIC8vIFhYWDogdGhpcyBzbG93IGNhc2Ugc2VlbXMgdG8gYmUgbWFyZ2luYWxseSBmYXN0ZXIgdGhhbiB0aGUgZmFzdCBjYXNlIQpAQCAtNDQxNCw3ICs0NjQ5LDcgQEAKICAgICAgIFNlY01hcCogc207CiAKICAgICAgIGlmIChVTkxJS0VMWSggVU5BTElHTkVEX09SX0hJR0goYSw2NCkgKSkgewotICAgICAgICAgUFJPRl9FVkVOVCgyMTEsICJtY19TVE9SRVY2NC1zbG93MSIpOworICAgICAgICAgUFJPRl9FVkVOVChNQ1BFX1NUT1JFVjY0X1NMT1cxKTsKICAgICAgICAgIG1jX1NUT1JFVm5fc2xvdyggYSwgNjQsIHZiaXRzNjQsIGlzQmlnRW5kaWFuICk7CiAgICAgICAgICByZXR1cm47CiAgICAgICB9CkBAIC00NDMzLDcgKzQ2NjgsNyBAQAogICAgICAgICAgICAgKChVU2hvcnQqKShzbS0+dmFiaXRzOCkpW3NtX29mZjE2XSA9IChVU2hvcnQpVkFfQklUUzE2X0RFRklORUQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9Ci0gICAgICAgICBQUk9GX0VWRU5UKDIzMiwgIm1jX1NUT1JFVjY0LXNsb3cyIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfU1RPUkVWNjRfU0xPVzIpOwogICAgICAgICAgbWNfU1RPUkVWbl9zbG93KCBhLCA2NCwgdmJpdHM2NCwgaXNCaWdFbmRpYW4gKTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KQEAgLTQ0NDUsMTIgKzQ2ODAsMTIgQEAKICAgICAgICAgICAgICgoVVNob3J0Kikoc20tPnZhYml0czgpKVtzbV9vZmYxNl0gPSAoVVNob3J0KVZBX0JJVFMxNl9VTkRFRklORUQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9IAotICAgICAgICAgUFJPRl9FVkVOVCgyMzIsICJtY19TVE9SRVY2NC1zbG93MyIpOworICAgICAgICAgUFJPRl9FVkVOVChNQ1BFX1NUT1JFVjY0X1NMT1czKTsKICAgICAgICAgIG1jX1NUT1JFVm5fc2xvdyggYSwgNjQsIHZiaXRzNjQsIGlzQmlnRW5kaWFuICk7CiAgICAgICAgICByZXR1cm47CiAgICAgICB9CiAKLSAgICAgIFBST0ZfRVZFTlQoMjEyLCAibWNfU1RPUkVWNjQtc2xvdzQiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVY2NF9TTE9XNCk7CiAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDY0LCB2Yml0czY0LCBpc0JpZ0VuZGlhbiApOwogICAgfQogI2VuZGlmCkBAIC00NDY1LDEzICs0NzAwLDE0IEBACiAgICBtY19TVE9SRVY2NChhLCB2Yml0czY0LCBGYWxzZSk7CiB9CiAKLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNpemUgPSA0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gTE9BRFYzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiBzdGF0aWMgSU5MSU5FCiBVV29yZCBtY19MT0FEVjMyICggQWRkciBhLCBCb29sIGlzQmlnRW5kaWFuICkKIHsKLSAgIFBST0ZfRVZFTlQoMjIwLCAibWNfTE9BRFYzMiIpOworICAgUFJPRl9FVkVOVChNQ1BFX0xPQURWMzIpOwogCiAjaWZuZGVmIFBFUkZfRkFTVF9MT0FEVgogICAgcmV0dXJuIChVV29yZCltY19MT0FEVm5fc2xvdyggYSwgMzIsIGlzQmlnRW5kaWFuICk7CkBAIC00NDgxLDcgKzQ3MTcsNyBAQAogICAgICAgU2VjTWFwKiBzbTsKIAogICAgICAgaWYgKFVOTElLRUxZKCBVTkFMSUdORURfT1JfSElHSChhLDMyKSApKSB7Ci0gICAgICAgICBQUk9GX0VWRU5UKDIyMSwgIm1jX0xPQURWMzItc2xvdzEiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9MT0FEVjMyX1NMT1cxKTsKICAgICAgICAgIHJldHVybiAoVVdvcmQpbWNfTE9BRFZuX3Nsb3coIGEsIDMyLCBpc0JpZ0VuZGlhbiApOwogICAgICAgfQogCkBAIC00NTAwLDI3ICs0NzM2LDEwNCBAQAogICAgICAgICAgcmV0dXJuICgoVVdvcmQpMHhGRkZGRkZGRjAwMDAwMDAwVUxMIHwgKFVXb3JkKVZfQklUUzMyX1VOREVGSU5FRCk7CiAgICAgICB9IGVsc2UgewogICAgICAgICAgLyogU2xvdyBjYXNlOiB0aGUgNCBieXRlcyBhcmUgbm90IGFsbC1kZWZpbmVkIG9yIGFsbC11bmRlZmluZWQuICovCi0gICAgICAgICBQUk9GX0VWRU5UKDIyMiwgIm1jX0xPQURWMzItc2xvdzIiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9MT0FEVjMyX1NMT1cyKTsKICAgICAgICAgIHJldHVybiAoVVdvcmQpbWNfTE9BRFZuX3Nsb3coIGEsIDMyLCBpc0JpZ0VuZGlhbiApOwogICAgICAgfQogICAgfQogI2VuZGlmCiB9CiAKKy8vIEdlbmVyaWMgZm9yIGFsbCBwbGF0Zm9ybXMKIFZHX1JFR1BBUk0oMSkgVVdvcmQgTUNfKGhlbHBlcmNfTE9BRFYzMmJlKSAoIEFkZHIgYSApCiB7CiAgICByZXR1cm4gbWNfTE9BRFYzMihhLCBUcnVlKTsKIH0KKworLy8gTm9uLWdlbmVyaWMgYXNzZW1ibHkgZm9yIGFybTMyLWxpbnV4CisjaWYgRU5BQkxFX0FTU0VNQkxZX0hFTFBFUlMgJiYgZGVmaW5lZChQRVJGX0ZBU1RfTE9BRFYpIFwKKyAgICAmJiBkZWZpbmVkKFZHUF9hcm1fbGludXgpCitfX2FzbV9fKCAvKiBEZXJpdmVkIGZyb20gTkNvZGUgdGVtcGxhdGUgKi8KKyIudGV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIuYWxpZ24gMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIuZ2xvYmFsIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjMybGUgICBcbiIKKyIudHlwZSAgIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjMybGUsICVmdW5jdGlvbiBcbiIKKyJ2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFYzMmxlOiAgICAgICAgICBcbiIKKyIgICAgICB0c3QgICAgcjAsICMzICAgICAgICAgICAgICAgICAgICBcbiIgLy8gMQorIiAgICAgIG1vdncgICByMywgIzpsb3dlcjE2OnByaW1hcnlfbWFwIFxuIiAvLyAxCisiICAgICAgYm5lICAgIC5MTFYzMkxFYzQgICAgICAgICAgICAgICAgXG4iIC8vIDIgIGlmIG1pc2FsaWduZWQKKyIgICAgICBsc3IgICAgcjIsIHIwLCAjMTYgICAgICAgICAgICAgICBcbiIgLy8gMworIiAgICAgIG1vdnQgICByMywgIzp1cHBlcjE2OnByaW1hcnlfbWFwIFxuIiAvLyAzCisiICAgICAgbGRyICAgIHIyLCBbcjMsIHIyLCBsc2wgIzJdICAgICAgXG4iIC8vIDQKKyIgICAgICB1eHRoICAgcjEsIHIwICAgICAgICAgICAgICAgICAgICBcbiIgLy8gNAorIiAgICAgIGxkcmIgICByMSwgW3IyLCByMSwgbHNyICMyXSAgICAgIFxuIiAvLyA1CisiICAgICAgY21wICAgIHIxLCAjMHhBQSAgICAgICAgICAgICAgICAgXG4iIC8vIDYgIDB4QUEgPT0gVkFfQklUUzhfREVGSU5FRAorIiAgICAgIGJuZSAgICAuTExWMzJMRWMwICAgICAgICAgICAgICAgIFxuIiAvLyA3ICBpZiAhYWxsX2RlZmluZWQKKyIgICAgICBtb3YgICAgcjAsICMweDAgICAgICAgICAgICAgICAgICBcbiIgLy8gOCAgMHgwID09IFZfQklUUzMyX0RFRklORUQKKyIgICAgICBieCAgICAgbHIgICAgICAgICAgICAgICAgICAgICAgICBcbiIgLy8gOQorIi5MTFYzMkxFYzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorIiAgICAgIGNtcCAgICByMSwgIzB4NTUgICAgICAgICAgICAgICAgIFxuIiAvLyAweDU1ID09IFZBX0JJVFM4X1VOREVGSU5FRAorIiAgICAgIGJuZSAgICAuTExWMzJMRWM0ICAgICAgICAgICAgICAgIFxuIiAvLyBpZiAhYWxsX3VuZGVmaW5lZAorIiAgICAgIG1vdiAgICByMCwgIzB4RkZGRkZGRkYgICAgICAgICAgIFxuIiAvLyAweEZGRkZGRkZGID09IFZfQklUUzMyX1VOREVGSU5FRAorIiAgICAgIGJ4ICAgICBsciAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorIi5MTFYzMkxFYzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorIiAgICAgIHB1c2ggICB7cjQsIGxyfSAgICAgICAgICAgICAgICAgIFxuIgorIiAgICAgIG1vdiAgICByMiwgIzAgICAgICAgICAgICAgICAgICAgIFxuIgorIiAgICAgIG1vdiAgICByMSwgIzMyICAgICAgICAgICAgICAgICAgIFxuIgorIiAgICAgIGJsICAgICBtY19MT0FEVm5fc2xvdyAgICAgICAgICAgIFxuIgorIiAgICAgIHBvcCAgICB7cjQsIHBjfSAgICAgICAgICAgICAgICAgIFxuIgorIi5zaXplIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjMybGUsIC4tdmdNZW1DaGVja19oZWxwZXJjX0xPQURWMzJsZSBcbiIKKyIucHJldmlvdXNcbiIKKyk7CisKKyNlbGlmIEVOQUJMRV9BU1NFTUJMWV9IRUxQRVJTICYmIGRlZmluZWQoUEVSRl9GQVNUX0xPQURWKSBcCisgICAgICAmJiAoZGVmaW5lZChWR1BfeDg2X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykpCitfX2FzbV9fKAorIi50ZXh0XG4iCisiLmFsaWduIDE2XG4iCisiLmdsb2JhbCB2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFYzMmxlXG4iCisiLnR5cGUgICB2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFYzMmxlLCBAZnVuY3Rpb25cbiIKKyJ2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFYzMmxlOlxuIgorIiAgICAgIHRlc3QgICAkMHgzLCAgJWVheFxuIgorIiAgICAgIGpueiAgICAuTExWMzJMRTJcbiIgICAgICAgICAvKiBqdW1wIGlmIG1pc2FsaWduZWQgKi8KKyIgICAgICBtb3YgICAgJWVheCwgICVlZHhcbiIKKyIgICAgICBzaHIgICAgJDE2LCAgICVlZHhcbiIKKyIgICAgICBtb3YgICAgcHJpbWFyeV9tYXAoLCVlZHgsNCksICVlY3hcbiIKKyIgICAgICBtb3Z6d2wgJWF4LCAgICVlZHhcbiIKKyIgICAgICBzaHIgICAgJDIsICAgICVlZHhcbiIKKyIgICAgICBtb3Z6YmwgKCVlY3gsJWVkeCwxKSwgJWVkeFxuIgorIiAgICAgIGNtcCAgICAkMHhhYSwgJWVkeFxuIiAgICAgICAvKiBjb21wYXJlIHRvIFZBX0JJVFM4X0RFRklORUQgKi8KKyIgICAgICBqbmUgICAgLkxMVjMyTEUxXG4iICAgICAgICAgLyoganVtcCBpZiBub3QgY29tcGxldGVseSBkZWZpbmVkICovCisiICAgICAgeG9yICAgICVlYXgsICAlZWF4XG4iICAgICAgIC8qIGVsc2UgcmV0dXJuIFZfQklUUzMyX0RFRklORUQgKi8KKyIgICAgICByZXRcbiIKKyIuTExWMzJMRTE6XG4iCisiICAgICAgY21wICAgICQweDU1LCAlZWR4XG4iICAgICAgIC8qIGNvbXBhcmUgdG8gVkFfQklUUzhfVU5ERUZJTkVEICovCisiICAgICAgam5lICAgIC5MTFYzMkxFMlxuIiAgICAgICAgIC8qIGp1bXAgaWYgbm90IGNvbXBsZXRlbHkgdW5kZWZpbmVkICovCisiICAgICAgb3IgICAgICQweGZmZmZmZmZmLCAlZWF4XG4iIC8qIGVsc2UgcmV0dXJuIFZfQklUUzMyX1VOREVGSU5FRCAqLworIiAgICAgIHJldFxuIgorIi5MTFYzMkxFMjpcbiIKKyIgICAgICB4b3IgICAgJWVjeCwgICVlY3hcbiIgICAgICAgLyogdGFpbCBjYWxsIG1jX0xPQURWbl9zbG93KGEsIDMyLCAwKSAqLworIiAgICAgIG1vdiAgICAkMzIsICAgJWVkeFxuIgorIiAgICAgIGptcCAgICBtY19MT0FEVm5fc2xvd1xuIgorIi5zaXplIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjMybGUsIC4tdmdNZW1DaGVja19oZWxwZXJjX0xPQURWMzJsZVxuIgorIi5wcmV2aW91c1xuIgorKTsKKworI2Vsc2UKKy8vIEdlbmVyaWMgZm9yIGFsbCBwbGF0Zm9ybXMgZXhjZXB0IHthcm0zMix4ODZ9LWxpbnV4IGFuZCB4ODYtc29sYXJpcwogVkdfUkVHUEFSTSgxKSBVV29yZCBNQ18oaGVscGVyY19MT0FEVjMybGUpICggQWRkciBhICkKIHsKICAgIHJldHVybiBtY19MT0FEVjMyKGEsIEZhbHNlKTsKIH0KKyNlbmRpZgogCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKi0tLSBTVE9SRVYzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIHN0YXRpYyBJTkxJTkUKIHZvaWQgbWNfU1RPUkVWMzIgKCBBZGRyIGEsIFVXb3JkIHZiaXRzMzIsIEJvb2wgaXNCaWdFbmRpYW4gKQogewotICAgUFJPRl9FVkVOVCgyMzAsICJtY19TVE9SRVYzMiIpOworICAgUFJPRl9FVkVOVChNQ1BFX1NUT1JFVjMyKTsKIAogI2lmbmRlZiBQRVJGX0ZBU1RfU1RPUkVWCiAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDMyLCAoVUxvbmcpdmJpdHMzMiwgaXNCaWdFbmRpYW4gKTsKQEAgLTQ1MzAsNyArNDg0Myw3IEBACiAgICAgICBTZWNNYXAqIHNtOwogCiAgICAgICBpZiAoVU5MSUtFTFkoIFVOQUxJR05FRF9PUl9ISUdIKGEsMzIpICkpIHsKLSAgICAgICAgIFBST0ZfRVZFTlQoMjMxLCAibWNfU1RPUkVWMzItc2xvdzEiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVYzMl9TTE9XMSk7CiAgICAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDMyLCAoVUxvbmcpdmJpdHMzMiwgaXNCaWdFbmRpYW4gKTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KQEAgLTQ1NDksNyArNDg2Miw3IEBACiAgICAgICAgICAgICBzbS0+dmFiaXRzOFtzbV9vZmZdID0gKFVJbnQpVkFfQklUUzhfREVGSU5FRDsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KLSAgICAgICAgIFBST0ZfRVZFTlQoMjMyLCAibWNfU1RPUkVWMzItc2xvdzIiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVYzMl9TTE9XMik7CiAgICAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDMyLCAoVUxvbmcpdmJpdHMzMiwgaXNCaWdFbmRpYW4gKTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KQEAgLTQ1NjEsMTIgKzQ4NzQsMTIgQEAKICAgICAgICAgICAgIHNtLT52YWJpdHM4W3NtX29mZl0gPSAoVUludClWQV9CSVRTOF9VTkRFRklORUQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9Ci0gICAgICAgICBQUk9GX0VWRU5UKDIzMywgIm1jX1NUT1JFVjMyLXNsb3czIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfU1RPUkVWMzJfU0xPVzMpOwogICAgICAgICAgbWNfU1RPUkVWbl9zbG93KCBhLCAzMiwgKFVMb25nKXZiaXRzMzIsIGlzQmlnRW5kaWFuICk7CiAgICAgICAgICByZXR1cm47CiAgICAgICB9CiAKLSAgICAgIFBST0ZfRVZFTlQoMjM0LCAibWNfU1RPUkVWMzItc2xvdzQiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVYzMl9TTE9XNCk7CiAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDMyLCAoVUxvbmcpdmJpdHMzMiwgaXNCaWdFbmRpYW4gKTsKICAgIH0KICNlbmRpZgpAQCAtNDU4MSwxMyArNDg5NCwxNCBAQAogICAgbWNfU1RPUkVWMzIoYSwgdmJpdHMzMiwgRmFsc2UpOwogfQogCi0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaXplID0gMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIExPQURWMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogc3RhdGljIElOTElORQogVVdvcmQgbWNfTE9BRFYxNiAoIEFkZHIgYSwgQm9vbCBpc0JpZ0VuZGlhbiApCiB7Ci0gICBQUk9GX0VWRU5UKDI0MCwgIm1jX0xPQURWMTYiKTsKKyAgIFBST0ZfRVZFTlQoTUNQRV9MT0FEVjE2KTsKIAogI2lmbmRlZiBQRVJGX0ZBU1RfTE9BRFYKICAgIHJldHVybiAoVVdvcmQpbWNfTE9BRFZuX3Nsb3coIGEsIDE2LCBpc0JpZ0VuZGlhbiApOwpAQCAtNDU5Nyw3ICs0OTExLDcgQEAKICAgICAgIFNlY01hcCogc207CiAKICAgICAgIGlmIChVTkxJS0VMWSggVU5BTElHTkVEX09SX0hJR0goYSwxNikgKSkgewotICAgICAgICAgUFJPRl9FVkVOVCgyNDEsICJtY19MT0FEVjE2LXNsb3cxIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfTE9BRFYxNl9TTE9XMSk7CiAgICAgICAgICByZXR1cm4gKFVXb3JkKW1jX0xPQURWbl9zbG93KCBhLCAxNiwgaXNCaWdFbmRpYW4gKTsKICAgICAgIH0KIApAQCAtNDYxNyw3ICs0OTMxLDcgQEAKICAgICAgICAgIGVsc2UgaWYgKHZhYml0czQgPT0gVkFfQklUUzRfVU5ERUZJTkVEKSB7IHJldHVybiBWX0JJVFMxNl9VTkRFRklORUQ7IH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLyogU2xvdyBjYXNlOiB0aGUgdHdvIGJ5dGVzIGFyZSBub3QgYWxsLWRlZmluZWQgb3IgYWxsLXVuZGVmaW5lZC4gKi8KLSAgICAgICAgICAgIFBST0ZfRVZFTlQoMjQyLCAibWNfTE9BRFYxNi1zbG93MiIpOworICAgICAgICAgICAgUFJPRl9FVkVOVChNQ1BFX0xPQURWMTZfU0xPVzIpOwogICAgICAgICAgICAgcmV0dXJuIChVV29yZCltY19MT0FEVm5fc2xvdyggYSwgMTYsIGlzQmlnRW5kaWFuICk7CiAgICAgICAgICB9CiAgICAgICB9CkBAIC00NjI1LDE0ICs0OTM5LDEyMSBAQAogI2VuZGlmCiB9CiAKKy8vIEdlbmVyaWMgZm9yIGFsbCBwbGF0Zm9ybXMKIFZHX1JFR1BBUk0oMSkgVVdvcmQgTUNfKGhlbHBlcmNfTE9BRFYxNmJlKSAoIEFkZHIgYSApCiB7CiAgICByZXR1cm4gbWNfTE9BRFYxNihhLCBUcnVlKTsKIH0KKworLy8gTm9uLWdlbmVyaWMgYXNzZW1ibHkgZm9yIGFybTMyLWxpbnV4CisjaWYgRU5BQkxFX0FTU0VNQkxZX0hFTFBFUlMgJiYgZGVmaW5lZChQRVJGX0ZBU1RfTE9BRFYpIFwKKyAgICAmJiBkZWZpbmVkKFZHUF9hcm1fbGludXgpCitfX2FzbV9fKCAvKiBEZXJpdmVkIGZyb20gTkNvZGUgdGVtcGxhdGUgKi8KKyIudGV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIuYWxpZ24gMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIuZ2xvYmFsIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjE2bGUgICBcbiIKKyIudHlwZSAgIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjE2bGUsICVmdW5jdGlvbiBcbiIKKyJ2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFYxNmxlOiAgICAgICAgICBcbiIgLy8KKyIgICAgICB0c3QgICAgcjAsICMxICAgICAgICAgICAgICAgICAgICBcbiIgLy8gCisiICAgICAgYm5lICAgIC5MTFYxNkxFYzEyICAgICAgICAgICAgICAgXG4iIC8vIGlmIG1pc2FsaWduZWQKKyIgICAgICBsc3IgICAgcjIsIHIwLCAjMTYgICAgICAgICAgICAgICBcbiIgLy8gcjIgPSBwcmktbWFwLWl4CisiICAgICAgbW92dyAgIHIzLCAjOmxvd2VyMTY6cHJpbWFyeV9tYXAgXG4iIC8vCisiICAgICAgdXh0aCAgIHIxLCByMCAgICAgICAgICAgICAgICAgICAgXG4iIC8vIHIxID0gc2VjLW1hcC1vZmZCCisiICAgICAgbW92dCAgIHIzLCAjOnVwcGVyMTY6cHJpbWFyeV9tYXAgXG4iIC8vCisiICAgICAgbGRyICAgIHIyLCBbcjMsIHIyLCBsc2wgIzJdICAgICAgXG4iIC8vIHIyID0gc2VjLW1hcAorIiAgICAgIGxkcmIgICByMSwgW3IyLCByMSwgbHNyICMyXSAgICAgIFxuIiAvLyByMSA9IHNlYy1tYXAtVkFCSVRTOAorIiAgICAgIGNtcCAgICByMSwgIzB4QUEgICAgICAgICAgICAgICAgIFxuIiAvLyByMSA9PSBWQV9CSVRTOF9ERUZJTkVEPworIiAgICAgIGJuZSAgICAuTExWMTZMRWMwICAgICAgICAgICAgICAgIFxuIiAvLyBubywgZ290byAuTExWMTZMRWMwCisiLkxMVjE2TEVoOTogICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iIC8vCisiICAgICAgbW92ICAgIHIwLCAjMHhGRkZGRkZGRiAgICAgICAgICAgXG4iIC8vCisiICAgICAgbHNsICAgIHIwLCByMCwgIzE2ICAgICAgICAgICAgICAgXG4iIC8vIFZfQklUUzE2X0RFRklORUQgfCB0b3AxNnNhZmUKKyIgICAgICBieCAgICAgbHIgICAgICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIuTExWMTZMRWMwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBjbXAgICAgcjEsICMweDU1ICAgICAgICAgICAgICAgICBcbiIgLy8gVkFfQklUUzhfVU5ERUZJTkVECisiICAgICAgYm5lICAgIC5MTFYxNkxFYzQgICAgICAgICAgICAgICAgXG4iIC8vCisiLkxMVjE2TEVjMjogICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iIC8vCisiICAgICAgbW92ICAgIHIwLCAjMHhGRkZGRkZGRiAgICAgICAgICAgXG4iIC8vIFZfQklUUzE2X1VOREVGSU5FRCB8IHRvcDE2c2FmZQorIiAgICAgIGJ4ICAgICBsciAgICAgICAgICAgICAgICAgICAgICAgIFxuIiAvLworIi5MTFYxNkxFYzQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIiAvLworICAgICAgIC8vIHIxIGhvbGRzIHNlYy1tYXAtVkFCSVRTOC4gIHIwIGhvbGRzIHRoZSBhZGRyZXNzIGFuZCBpcyAyLWFsaWduZWQuCisgICAgICAgLy8gRXh0cmFjdCB0aGUgcmVsZXZhbnQgNCBiaXRzIGFuZCBpbnNwZWN0LgorIiAgICAgIGFuZCAgICByMiwgcjAsICMyICAgICAgIFxuIiAvLyBhZGRyICYgMgorIiAgICAgIGFkZCAgICByMiwgcjIsIHIyICAgICAgIFxuIiAvLyAyICogKGFkZHIgJiAyKQorIiAgICAgIGxzciAgICByMSwgcjEsIHIyICAgICAgIFxuIiAvLyBzZWMtbWFwLVZBQklUUzggPj4gKDIgKiAoYWRkciAmIDIpKQorIiAgICAgIGFuZCAgICByMSwgcjEsICMxNSAgICAgIFxuIiAvLyAoc2VjLW1hcC1WQUJJVFM4ID4+ICgyICogKGFkZHIgJiAyKSkpICYgMTUKKworIiAgICAgIGNtcCAgICByMSwgIzB4QSAgICAgICAgICAgICAgICAgIFxuIiAvLyBWQV9CSVRTNF9ERUZJTkVECisiICAgICAgYmVxICAgIC5MTFYxNkxFaDkgICAgICAgICAgICAgICAgXG4iIC8vCisKKyIgICAgICBjbXAgICAgcjEsICMweDUgICAgICAgICAgICAgICAgICBcbiIgLy8gVkFfQklUUzRfVU5ERUZJTkVECisiICAgICAgYmVxICAgIC5MTFYxNkxFYzIgICAgICAgICAgICAgICAgXG4iIC8vCisKKyIuTExWMTZMRWMxMjogICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBwdXNoICAge3I0LCBscn0gICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBtb3YgICAgcjIsICMwICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBtb3YgICAgcjEsICMxNiAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBibCAgICAgbWNfTE9BRFZuX3Nsb3cgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBwb3AgICAge3I0LCBwY30gICAgICAgICAgICAgICAgICBcbiIgLy8KKyIuc2l6ZSB2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFYxNmxlLCAuLXZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjE2bGUgXG4iCisiLnByZXZpb3VzXG4iCispOworCisjZWxpZiBFTkFCTEVfQVNTRU1CTFlfSEVMUEVSUyAmJiBkZWZpbmVkKFBFUkZfRkFTVF9MT0FEVikgXAorICAgICAgJiYgKGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpKQorX19hc21fXygKKyIudGV4dFxuIgorIi5hbGlnbiAxNlxuIgorIi5nbG9iYWwgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWMTZsZVxuIgorIi50eXBlICAgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWMTZsZSwgQGZ1bmN0aW9uXG4iCisidmdNZW1DaGVja19oZWxwZXJjX0xPQURWMTZsZTpcbiIKKyIgICAgICB0ZXN0ICAgJDB4MSwgICVlYXhcbiIKKyIgICAgICBqbmUgICAgLkxMVjE2TEU1XG4iICAgICAgICAgIC8qIGp1bXAgaWYgbm90IGFsaWduZWQgKi8KKyIgICAgICBtb3YgICAgJWVheCwgICVlZHhcbiIKKyIgICAgICBzaHIgICAgJDB4MTAsICVlZHhcbiIKKyIgICAgICBtb3YgICAgcHJpbWFyeV9tYXAoLCVlZHgsNCksICVlY3hcbiIKKyIgICAgICBtb3Z6d2wgJWF4LCAgICVlZHhcbiIKKyIgICAgICBzaHIgICAgJDB4MiwgICVlZHhcbiIKKyIgICAgICBtb3Z6YmwgKCVlY3gsJWVkeCwxKSwgJWVkeFxuIi8qIGVkeCA9IFZBIGJpdHMgZm9yIDMyYml0ICovCisiICAgICAgY21wICAgICQweGFhLCAlZWR4XG4iICAgICAgICAvKiBjb21wYXJlIHRvIFZBX0JJVFM4X0RFRklORUQgKi8KKyIgICAgICBqbmUgICAgLkxMVjE2TEUyXG4iICAgICAgICAgIC8qIGp1bXAgaWYgbm90IGFsbCAzMmJpdHMgZGVmaW5lZCAqLworIi5MTFYxNkxFMTpcbiIKKyIgICAgICBtb3YgICAgJDB4ZmZmZjAwMDAsJWVheFxuIiAgIC8qIFZfQklUUzE2X0RFRklORUQgfCB0b3AxNnNhZmUgKi8KKyIgICAgICByZXRcbiIKKyIuTExWMTZMRTI6XG4iCisiICAgICAgY21wICAgICQweDU1LCAlZWR4XG4iICAgICAgICAvKiBjb21wYXJlIHRvIFZBX0JJVFM4X1VOREVGSU5FRCAqLworIiAgICAgIGpuZSAgICAuTExWMTZMRTRcbiIgICAgICAgICAgLyoganVtcCBpZiBub3QgYWxsIDMyYml0cyB1bmRlZmluZWQgKi8KKyIuTExWMTZMRTM6XG4iCisiICAgICAgb3IgICAgICQweGZmZmZmZmZmLCVlYXhcbiIgICAvKiBWX0JJVFMxNl9VTkRFRklORUQgfCB0b3AxNnNhZmUgKi8KKyIgICAgICByZXRcbiIKKyIuTExWMTZMRTQ6XG4iCisiICAgICAgbW92ICAgICVlYXgsICAlZWN4XG4iCisiICAgICAgYW5kICAgICQweDIsICAlZWN4XG4iCisiICAgICAgYWRkICAgICVlY3gsICAlZWN4XG4iCisiICAgICAgc2FyICAgICVjbCwgICAlZWR4XG4iCisiICAgICAgYW5kICAgICQweGYsICAlZWR4XG4iCisiICAgICAgY21wICAgICQweGEsICAlZWR4XG4iCisiICAgICAgamUgICAgIC5MTFYxNkxFMVxuIiAgICAgICAgICAvKiBqdW1wIGlmIGFsbCAxNmJpdHMgYXJlIGRlZmluZWQgKi8KKyIgICAgICBjbXAgICAgJDB4NSwgICVlZHhcbiIKKyIgICAgICBqZSAgICAgLkxMVjE2TEUzXG4iICAgICAgICAgIC8qIGp1bXAgaWYgYWxsIDE2Yml0cyBhcmUgdW5kZWZpbmVkICovCisiLkxMVjE2TEU1OlxuIgorIiAgICAgIHhvciAgICAlZWN4LCAgJWVjeFxuIiAgICAgICAgLyogdGFpbCBjYWxsIG1jX0xPQURWbl9zbG93KGEsIDE2LCAwKSAqLworIiAgICAgIG1vdiAgICAkMTYsICAgJWVkeFxuIgorIiAgICAgIGptcCAgICBtY19MT0FEVm5fc2xvd1xuIgorIi5zaXplIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjE2bGUsIC4tdmdNZW1DaGVja19oZWxwZXJjX0xPQURWMTZsZSBcbiIKKyIucHJldmlvdXNcbiIKKyk7CisKKyNlbHNlCisvLyBHZW5lcmljIGZvciBhbGwgcGxhdGZvcm1zIGV4Y2VwdCB7YXJtMzIseDg2fS1saW51eCBhbmQgeDg2LXNvbGFyaXMKIFZHX1JFR1BBUk0oMSkgVVdvcmQgTUNfKGhlbHBlcmNfTE9BRFYxNmxlKSAoIEFkZHIgYSApCiB7CiAgICByZXR1cm4gbWNfTE9BRFYxNihhLCBGYWxzZSk7CiB9CisjZW5kaWYKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0gU1RPUkVWMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAvKiBUcnVlIGlmIHRoZSB2YWJpdHM0IGluIHZhYml0czggaW5kaWNhdGUgYSBhbmQgYSsxIGFyZSBhY2Nlc3NpYmxlLiAqLwogc3RhdGljIElOTElORQpAQCAtNDY1MCw3ICs1MDcxLDcgQEAKIHN0YXRpYyBJTkxJTkUKIHZvaWQgbWNfU1RPUkVWMTYgKCBBZGRyIGEsIFVXb3JkIHZiaXRzMTYsIEJvb2wgaXNCaWdFbmRpYW4gKQogewotICAgUFJPRl9FVkVOVCgyNTAsICJtY19TVE9SRVYxNiIpOworICAgUFJPRl9FVkVOVChNQ1BFX1NUT1JFVjE2KTsKIAogI2lmbmRlZiBQRVJGX0ZBU1RfU1RPUkVWCiAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDE2LCAoVUxvbmcpdmJpdHMxNiwgaXNCaWdFbmRpYW4gKTsKQEAgLTQ2NjAsNyArNTA4MSw3IEBACiAgICAgICBTZWNNYXAqIHNtOwogCiAgICAgICBpZiAoVU5MSUtFTFkoIFVOQUxJR05FRF9PUl9ISUdIKGEsMTYpICkpIHsKLSAgICAgICAgIFBST0ZfRVZFTlQoMjUxLCAibWNfU1RPUkVWMTYtc2xvdzEiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVYxNl9TTE9XMSk7CiAgICAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDE2LCAoVUxvbmcpdmJpdHMxNiwgaXNCaWdFbmRpYW4gKTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KQEAgLTQ2ODEsNyArNTEwMiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYoc20tPnZhYml0czhbc21fb2ZmXSkgKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KLSAgICAgICAgIFBST0ZfRVZFTlQoMjMyLCAibWNfU1RPUkVWMTYtc2xvdzIiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVYxNl9TTE9XMik7CiAgICAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDE2LCAoVUxvbmcpdmJpdHMxNiwgaXNCaWdFbmRpYW4gKTsKICAgICAgIH0KICAgICAgIGlmIChWX0JJVFMxNl9VTkRFRklORUQgPT0gdmJpdHMxNikgewpAQCAtNDY5NCwxNyArNTExNSwxOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmKHNtLT52YWJpdHM4W3NtX29mZl0pICk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9Ci0gICAgICAgICBQUk9GX0VWRU5UKDIzMywgIm1jX1NUT1JFVjE2LXNsb3czIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfU1RPUkVWMTZfU0xPVzMpOwogICAgICAgICAgbWNfU1RPUkVWbl9zbG93KCBhLCAxNiwgKFVMb25nKXZiaXRzMTYsIGlzQmlnRW5kaWFuICk7CiAgICAgICAgICByZXR1cm47CiAgICAgICB9CiAKLSAgICAgIFBST0ZfRVZFTlQoMjM0LCAibWNfU1RPUkVWMTYtc2xvdzQiKTsKKyAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVYxNl9TTE9XNCk7CiAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDE2LCAoVUxvbmcpdmJpdHMxNiwgaXNCaWdFbmRpYW4gKTsKICAgIH0KICNlbmRpZgogfQogCisKIFZHX1JFR1BBUk0oMikgdm9pZCBNQ18oaGVscGVyY19TVE9SRVYxNmJlKSAoIEFkZHIgYSwgVVdvcmQgdmJpdHMxNiApCiB7CiAgICBtY19TVE9SRVYxNihhLCB2Yml0czE2LCBUcnVlKTsKQEAgLTQ3MTQsMTQgKzUxMzYsMTEwIEBACiAgICBtY19TVE9SRVYxNihhLCB2Yml0czE2LCBGYWxzZSk7CiB9CiAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIExPQURWOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNpemUgPSAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogTm90ZTogZW5kaWFubmVzcyBpcyBpcnJlbGV2YW50IGZvciBzaXplID09IDEgKi8KIAorLy8gTm9uLWdlbmVyaWMgYXNzZW1ibHkgZm9yIGFybTMyLWxpbnV4CisjaWYgRU5BQkxFX0FTU0VNQkxZX0hFTFBFUlMgJiYgZGVmaW5lZChQRVJGX0ZBU1RfTE9BRFYpIFwKKyAgICAmJiBkZWZpbmVkKFZHUF9hcm1fbGludXgpCitfX2FzbV9fKCAvKiBEZXJpdmVkIGZyb20gTkNvZGUgdGVtcGxhdGUgKi8KKyIudGV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIuYWxpZ24gMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyIuZ2xvYmFsIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjggICAgICBcbiIKKyIudHlwZSAgIHZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjgsICVmdW5jdGlvbiBcbiIKKyJ2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFY4OiAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBsc3IgICAgcjIsIHIwLCAjMTYgICAgICAgICAgICAgICBcbiIgLy8gcjIgPSBwcmktbWFwLWl4CisiICAgICAgbW92dyAgIHIzLCAjOmxvd2VyMTY6cHJpbWFyeV9tYXAgXG4iIC8vCisiICAgICAgdXh0aCAgIHIxLCByMCAgICAgICAgICAgICAgICAgICAgXG4iIC8vIHIxID0gc2VjLW1hcC1vZmZCCisiICAgICAgbW92dCAgIHIzLCAjOnVwcGVyMTY6cHJpbWFyeV9tYXAgXG4iIC8vCisiICAgICAgbGRyICAgIHIyLCBbcjMsIHIyLCBsc2wgIzJdICAgICAgXG4iIC8vIHIyID0gc2VjLW1hcAorIiAgICAgIGxkcmIgICByMSwgW3IyLCByMSwgbHNyICMyXSAgICAgIFxuIiAvLyByMSA9IHNlYy1tYXAtVkFCSVRTOAorIiAgICAgIGNtcCAgICByMSwgIzB4QUEgICAgICAgICAgICAgICAgIFxuIiAvLyByMSA9PSBWQV9CSVRTOF9ERUZJTkVEPworIiAgICAgIGJuZSAgICAuTExWOGMwICAgICAgICAgICAgICAgICAgIFxuIiAvLyBubywgZ290byAuTExWOGMwCisiLkxMVjhoOTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iIC8vCisiICAgICAgbW92ICAgIHIwLCAjMHhGRkZGRkYwMCAgICAgICAgICAgXG4iIC8vIFZfQklUUzhfREVGSU5FRCB8IHRvcDI0c2FmZQorIiAgICAgIGJ4ICAgICBsciAgICAgICAgICAgICAgICAgICAgICAgIFxuIiAvLworIi5MTFY4YzA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIiAvLworIiAgICAgIGNtcCAgICByMSwgIzB4NTUgICAgICAgICAgICAgICAgIFxuIiAvLyBWQV9CSVRTOF9VTkRFRklORUQKKyIgICAgICBibmUgICAgLkxMVjhjNCAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIuTExWOGMyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBtb3YgICAgcjAsICMweEZGRkZGRkZGICAgICAgICAgICBcbiIgLy8gVl9CSVRTOF9VTkRFRklORUQgfCB0b3AyNHNhZmUKKyIgICAgICBieCAgICAgbHIgICAgICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIuTExWOGM0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyAgICAgICAvLyByMSBob2xkcyBzZWMtbWFwLVZBQklUUzgKKyAgICAgICAvLyByMCBob2xkcyB0aGUgYWRkcmVzcy4gIEV4dHJhY3QgdGhlIHJlbGV2YW50IDIgYml0cyBhbmQgaW5zcGVjdC4KKyIgICAgICBhbmQgICAgcjIsIHIwLCAjMyAgICAgICBcbiIgLy8gYWRkciAmIDMKKyIgICAgICBhZGQgICAgcjIsIHIyLCByMiAgICAgICBcbiIgLy8gMiAqIChhZGRyICYgMykKKyIgICAgICBsc3IgICAgcjEsIHIxLCByMiAgICAgICBcbiIgLy8gc2VjLW1hcC1WQUJJVFM4ID4+ICgyICogKGFkZHIgJiAzKSkKKyIgICAgICBhbmQgICAgcjEsIHIxLCAjMyAgICAgICBcbiIgLy8gKHNlYy1tYXAtVkFCSVRTOCA+PiAoMiAqIChhZGRyICYgMykpKSAmIDMKKworIiAgICAgIGNtcCAgICByMSwgIzIgICAgICAgICAgICAgICAgICAgIFxuIiAvLyBWQV9CSVRTMl9ERUZJTkVECisiICAgICAgYmVxICAgIC5MTFY4aDkgICAgICAgICAgICAgICAgICAgXG4iIC8vCisKKyIgICAgICBjbXAgICAgcjEsICMxICAgICAgICAgICAgICAgICAgICBcbiIgLy8gVkFfQklUUzJfVU5ERUZJTkVECisiICAgICAgYmVxICAgIC5MTFY4YzIgICAgICAgICAgICAgICAgICAgXG4iIC8vCisKKyIgICAgICBwdXNoICAge3I0LCBscn0gICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBtb3YgICAgcjIsICMwICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBtb3YgICAgcjEsICM4ICAgICAgICAgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBibCAgICAgbWNfTE9BRFZuX3Nsb3cgICAgICAgICAgICBcbiIgLy8KKyIgICAgICBwb3AgICAge3I0LCBwY30gICAgICAgICAgICAgICAgICBcbiIgLy8KKyIuc2l6ZSB2Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFY4LCAuLXZnTWVtQ2hlY2tfaGVscGVyY19MT0FEVjggXG4iCisiLnByZXZpb3VzXG4iCispOworCisvKiBOb24tZ2VuZXJpYyBhc3NlbWJseSBmb3IgeDg2LWxpbnV4ICovCisjZWxpZiBFTkFCTEVfQVNTRU1CTFlfSEVMUEVSUyAmJiBkZWZpbmVkKFBFUkZfRkFTVF9MT0FEVikgXAorICAgICAgJiYgKGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpKQorX19hc21fXygKKyIudGV4dFxuIgorIi5hbGlnbiAxNlxuIgorIi5nbG9iYWwgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWOFxuIgorIi50eXBlICAgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWOCwgQGZ1bmN0aW9uXG4iCisidmdNZW1DaGVja19oZWxwZXJjX0xPQURWODpcbiIKKyIgICAgICBtb3YgICAgJWVheCwgICVlZHhcbiIKKyIgICAgICBzaHIgICAgJDB4MTAsICVlZHhcbiIKKyIgICAgICBtb3YgICAgcHJpbWFyeV9tYXAoLCVlZHgsNCksICVlY3hcbiIKKyIgICAgICBtb3Z6d2wgJWF4LCAgICVlZHhcbiIKKyIgICAgICBzaHIgICAgJDB4MiwgICVlZHhcbiIKKyIgICAgICBtb3Z6YmwgKCVlY3gsJWVkeCwxKSwgJWVkeFxuIi8qIGVkeCA9IFZBIGJpdHMgZm9yIDMyYml0ICovCisiICAgICAgY21wICAgICQweGFhLCAlZWR4XG4iICAgICAgICAvKiBjb21wYXJlIHRvIFZBX0JJVFM4X0RFRklORUQ/ICovCisiICAgICAgam5lICAgIC5MTFY4TEUyXG4iICAgICAgICAgICAvKiBqdW1wIGlmIG5vdCBkZWZpbmVkICovCisiLkxMVjhMRTE6XG4iCisiICAgICAgbW92ICAgICQweGZmZmZmZjAwLCAlZWF4XG4iICAvKiBWX0JJVFM4X0RFRklORUQgfCB0b3AyNHNhZmUgKi8KKyIgICAgICByZXRcbiIKKyIuTExWOExFMjpcbiIKKyIgICAgICBjbXAgICAgJDB4NTUsICVlZHhcbiIgICAgICAgIC8qIGNvbXBhcmUgdG8gVkFfQklUUzhfVU5ERUZJTkVEICovCisiICAgICAgam5lICAgIC5MTFY4TEU0XG4iICAgICAgICAgICAvKiBqdW1wIGlmIG5vdCBhbGwgMzJiaXRzIGFyZSB1bmRlZmluZWQgKi8KKyIuTExWOExFMzpcbiIKKyIgICAgICBvciAgICAgJDB4ZmZmZmZmZmYsICVlYXhcbiIgIC8qIFZfQklUUzhfVU5ERUZJTkVEIHwgdG9wMjRzYWZlICovCisiICAgICAgcmV0XG4iCisiLkxMVjhMRTQ6XG4iCisiICAgICAgbW92ICAgICVlYXgsICAlZWN4XG4iCisiICAgICAgYW5kICAgICQweDMsICAlZWN4XG4iCisiICAgICAgYWRkICAgICVlY3gsICAlZWN4XG4iCisiICAgICAgc2FyICAgICVjbCwgICAlZWR4XG4iCisiICAgICAgYW5kICAgICQweDMsICAlZWR4XG4iCisiICAgICAgY21wICAgICQweDIsICAlZWR4XG4iCisiICAgICAgamUgICAgIC5MTFY4TEUxXG4iICAgICAgICAgICAvKiBqdW1wIGlmIGFsbCA4Yml0cyBhcmUgZGVmaW5lZCAqLworIiAgICAgIGNtcCAgICAkMHgxLCAgJWVkeFxuIgorIiAgICAgIGplICAgICAuTExWOExFM1xuIiAgICAgICAgICAgLyoganVtcCBpZiBhbGwgOGJpdHMgYXJlIHVuZGVmaW5lZCAqLworIiAgICAgIHhvciAgICAlZWN4LCAgJWVjeFxuIiAgICAgICAgLyogdGFpbCBjYWxsIHRvIG1jX0xPQURWbl9zbG93KGEsIDgsIDApICovCisiICAgICAgbW92ICAgICQweDgsICAlZWR4XG4iCisiICAgICAgam1wICAgIG1jX0xPQURWbl9zbG93XG4iCisiLnNpemUgdmdNZW1DaGVja19oZWxwZXJjX0xPQURWOCwgLi12Z01lbUNoZWNrX2hlbHBlcmNfTE9BRFY4XG4iCisiLnByZXZpb3VzXG4iCispOworCisjZWxzZQorLy8gR2VuZXJpYyBmb3IgYWxsIHBsYXRmb3JtcyBleGNlcHQge2FybTMyLHg4Nn0tbGludXggYW5kIHg4Ni1zb2xhcmlzCiBWR19SRUdQQVJNKDEpCiBVV29yZCBNQ18oaGVscGVyY19MT0FEVjgpICggQWRkciBhICkKIHsKLSAgIFBST0ZfRVZFTlQoMjYwLCAibWNfTE9BRFY4Iik7CisgICBQUk9GX0VWRU5UKE1DUEVfTE9BRFY4KTsKIAogI2lmbmRlZiBQRVJGX0ZBU1RfTE9BRFYKICAgIHJldHVybiAoVVdvcmQpbWNfTE9BRFZuX3Nsb3coIGEsIDgsIEZhbHNlLyppcnJlbGV2YW50Ki8gKTsKQEAgLTQ3MzEsNyArNTI0OSw3IEBACiAgICAgICBTZWNNYXAqIHNtOwogCiAgICAgICBpZiAoVU5MSUtFTFkoIFVOQUxJR05FRF9PUl9ISUdIKGEsOCkgKSkgewotICAgICAgICAgUFJPRl9FVkVOVCgyNjEsICJtY19MT0FEVjgtc2xvdzEiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9MT0FEVjhfU0xPVzEpOwogICAgICAgICAgcmV0dXJuIChVV29yZCltY19MT0FEVm5fc2xvdyggYSwgOCwgRmFsc2UvKmlycmVsZXZhbnQqLyApOwogICAgICAgfQogCkBAIC00NzUxLDE5ICs1MjY5LDIzIEBACiAgICAgICAgICBlbHNlIGlmICh2YWJpdHMyID09IFZBX0JJVFMyX1VOREVGSU5FRCkgeyByZXR1cm4gVl9CSVRTOF9VTkRFRklORUQ7IH0KICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLyogU2xvdyBjYXNlOiB0aGUgYnl0ZSBpcyBub3QgYWxsLWRlZmluZWQgb3IgYWxsLXVuZGVmaW5lZC4gKi8KLSAgICAgICAgICAgIFBST0ZfRVZFTlQoMjYyLCAibWNfTE9BRFY4LXNsb3cyIik7CisgICAgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfTE9BRFY4X1NMT1cyKTsKICAgICAgICAgICAgIHJldHVybiAoVVdvcmQpbWNfTE9BRFZuX3Nsb3coIGEsIDgsIEZhbHNlLyppcnJlbGV2YW50Ki8gKTsKICAgICAgICAgIH0KICAgICAgIH0KICAgIH0KICNlbmRpZgogfQorI2VuZGlmCiAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qLS0tIFNUT1JFVjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogVkdfUkVHUEFSTSgyKQogdm9pZCBNQ18oaGVscGVyY19TVE9SRVY4KSAoIEFkZHIgYSwgVVdvcmQgdmJpdHM4ICkKIHsKLSAgIFBST0ZfRVZFTlQoMjcwLCAibWNfU1RPUkVWOCIpOworICAgUFJPRl9FVkVOVChNQ1BFX1NUT1JFVjgpOwogCiAjaWZuZGVmIFBFUkZfRkFTVF9TVE9SRVYKICAgIG1jX1NUT1JFVm5fc2xvdyggYSwgOCwgKFVMb25nKXZiaXRzOCwgRmFsc2UvKmlycmVsZXZhbnQqLyApOwpAQCAtNDc3Myw3ICs1Mjk1LDcgQEAKICAgICAgIFNlY01hcCogc207CiAKICAgICAgIGlmIChVTkxJS0VMWSggVU5BTElHTkVEX09SX0hJR0goYSw4KSApKSB7Ci0gICAgICAgICBQUk9GX0VWRU5UKDI3MSwgIm1jX1NUT1JFVjgtc2xvdzEiKTsKKyAgICAgICAgIFBST0ZfRVZFTlQoTUNQRV9TVE9SRVY4X1NMT1cxKTsKICAgICAgICAgIG1jX1NUT1JFVm5fc2xvdyggYSwgOCwgKFVMb25nKXZiaXRzOCwgRmFsc2UvKmlycmVsZXZhbnQqLyApOwogICAgICAgICAgcmV0dXJuOwogICAgICAgfQpAQCAtNDgyOSw3ICs1MzUxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihzbS0+dmFiaXRzOFtzbV9vZmZdKSApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQotICAgICAgICAgUFJPRl9FVkVOVCgyMzIsICJtY19TVE9SRVY4LXNsb3cyIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfU1RPUkVWOF9TTE9XMik7CiAgICAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDgsIChVTG9uZyl2Yml0czgsIEZhbHNlLyppcnJlbGV2YW50Ki8gKTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KQEAgLTQ4NDUsMTMgKzUzNjcsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihzbS0+dmFiaXRzOFtzbV9vZmZdKSApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQotICAgICAgICAgUFJPRl9FVkVOVCgyMzMsICJtY19TVE9SRVY4LXNsb3czIik7CisgICAgICAgICBQUk9GX0VWRU5UKE1DUEVfU1RPUkVWOF9TTE9XMyk7CiAgICAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDgsIChVTG9uZyl2Yml0czgsIEZhbHNlLyppcnJlbGV2YW50Ki8gKTsKICAgICAgICAgIHJldHVybjsKICAgICAgIH0KIAogICAgICAgLy8gUGFydGlhbGx5IGRlZmluZWQgd29yZAotICAgICAgUFJPRl9FVkVOVCgyMzQsICJtY19TVE9SRVY4LXNsb3c0Iik7CisgICAgICBQUk9GX0VWRU5UKE1DUEVfU1RPUkVWOF9TTE9XNCk7CiAgICAgICBtY19TVE9SRVZuX3Nsb3coIGEsIDgsIChVTG9uZyl2Yml0czgsIEZhbHNlLyppcnJlbGV2YW50Ki8gKTsKICAgIH0KICNlbmRpZgpAQCAtNTA2Miw3ICs1NTg0LDcgQEAKIHN0YXRpYyBCb29sIG1jX2NoZWFwX3Nhbml0eV9jaGVjayAoIHZvaWQgKQogewogICAgbl9zYW5pdHlfY2hlYXArKzsKLSAgIFBST0ZfRVZFTlQoNDkwLCAiY2hlYXBfc2FuaXR5X2NoZWNrIik7CisgICBQUk9GX0VWRU5UKE1DUEVfQ0hFQVBfU0FOSVRZX0NIRUNLKTsKICAgIC8qIENoZWNrIGZvciBzYW5lIG9wZXJhdGluZyBsZXZlbCAqLwogICAgaWYgKE1DXyhjbG9fbWNfbGV2ZWwpIDwgMSB8fCBNQ18oY2xvX21jX2xldmVsKSA+IDMpCiAgICAgICByZXR1cm4gRmFsc2U7CkBAIC01MDgyLDcgKzU2MDQsNyBAQAogICAgaWYgKDApIHJldHVybiBUcnVlOwogCiAgICBuX3Nhbml0eV9leHBlbnNpdmUrKzsKLSAgIFBST0ZfRVZFTlQoNDkxLCAiZXhwZW5zaXZlX3Nhbml0eV9jaGVjayIpOworICAgUFJPRl9FVkVOVChNQ1BFX0VYUEVOU0lWRV9TQU5JVFlfQ0hFQ0spOwogCiAgICAvKiBDaGVjayBmb3Igc2FuZSBvcGVyYXRpbmcgbGV2ZWwgKi8KICAgIGlmIChNQ18oY2xvX21jX2xldmVsKSA8IDEgfHwgTUNfKGNsb19tY19sZXZlbCkgPiAzKQpAQCAtNTE2NywyOCArNTY4OSwyNyBAQAogLyotLS0gQ29tbWFuZCBsaW5lIGFyZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0vKiAtLXBhcnRpYWwtbG9hZHMtb2s6IGVuYWJsZSBieSBkZWZhdWx0IG9uIE1hY09TLiAgVGhlIE1hY09TIHN5c3RlbQotICAgZ3JhcGhpY3MgbGlicmFyaWVzIGFyZSBoZWF2aWx5IHZlY3RvcmlzZWQsIGFuZCBub3QgZW5hYmxpbmcgdGhpcyBieQotICAgZGVmYXVsdCBjYXVzZXMgbG90cyBvZiBmYWxzZSBlcnJvcnMuICovCi0jaWYgZGVmaW5lZChWR09fZGFyd2luKQorLyogMzEgQXVnIDIwMTU6IFZlY3RvcmlzZWQgY29kZSBpcyBub3cgc28gd2lkZXNwcmVhZCB0aGF0CisgICAtLXBhcnRpYWwtbG9hZHMtb2sgbmVlZHMgdG8gYmUgZW5hYmxlZCBieSBkZWZhdWx0IG9uIGFsbCBwbGF0Zm9ybXMuCisgICBOb3QgZG9pbmcgc28gY2F1c2VzIGxvdHMgb2YgZmFsc2UgZXJyb3JzLiAqLwogQm9vbCAgICAgICAgICBNQ18oY2xvX3BhcnRpYWxfbG9hZHNfb2spICAgICAgID0gVHJ1ZTsKLSNlbHNlCi1Cb29sICAgICAgICAgIE1DXyhjbG9fcGFydGlhbF9sb2Fkc19vaykgICAgICAgPSBGYWxzZTsKLSNlbmRpZgotCiBMb25nICAgICAgICAgIE1DXyhjbG9fZnJlZWxpc3Rfdm9sKSAgICAgICAgICAgPSAyMCoxMDAwKjEwMDBMTDsKIExvbmcgICAgICAgICAgTUNfKGNsb19mcmVlbGlzdF9iaWdfYmxvY2tzKSAgICA9ICAxKjEwMDAqMTAwMExMOwogTGVha0NoZWNrTW9kZSBNQ18oY2xvX2xlYWtfY2hlY2spICAgICAgICAgICAgID0gTENfU3VtbWFyeTsKIFZnUmVzICAgICAgICAgTUNfKGNsb19sZWFrX3Jlc29sdXRpb24pICAgICAgICA9IFZnX0hpZ2hSZXM7CiBVSW50ICAgICAgICAgIE1DXyhjbG9fc2hvd19sZWFrX2tpbmRzKSAgICAgICAgPSBSMlMoUG9zc2libGUpIHwgUjJTKFVucmVhY2hlZCk7CiBVSW50ICAgICAgICAgIE1DXyhjbG9fZXJyb3JfZm9yX2xlYWtfa2luZHMpICAgPSBSMlMoUG9zc2libGUpIHwgUjJTKFVucmVhY2hlZCk7Ci1VSW50ICAgICAgICAgIE1DXyhjbG9fbGVha19jaGVja19oZXVyaXN0aWNzKSAgPSAwOworVUludCAgICAgICAgICBNQ18oY2xvX2xlYWtfY2hlY2tfaGV1cmlzdGljcykgID0gICBIMlMoTGNoU3RkU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBIMlMoIExjaExlbmd0aDY0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBIMlMoIExjaE5ld0FycmF5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBIMlMoIExjaE11bHRpcGxlSW5oZXJpdGFuY2UpOwogQm9vbCAgICAgICAgICBNQ18oY2xvX3dvcmthcm91bmRfZ2NjMjk2X2J1Z3MpID0gRmFsc2U7CiBJbnQgICAgICAgICAgIE1DXyhjbG9fbWFsbG9jX2ZpbGwpICAgICAgICAgICAgPSAtMTsKIEludCAgICAgICAgICAgTUNfKGNsb19mcmVlX2ZpbGwpICAgICAgICAgICAgICA9IC0xOwotS2VlcFN0YWNrdHJhY2VzIE1DXyhjbG9fa2VlcF9zdGFja3RyYWNlcykgICAgID0gS1NfYWxsb2NfdGhlbl9mcmVlOworS2VlcFN0YWNrdHJhY2VzIE1DXyhjbG9fa2VlcF9zdGFja3RyYWNlcykgICAgID0gS1NfYWxsb2NfYW5kX2ZyZWU7CiBJbnQgICAgICAgICAgIE1DXyhjbG9fbWNfbGV2ZWwpICAgICAgICAgICAgICAgPSAyOwogQm9vbCAgICAgICAgICBNQ18oY2xvX3Nob3dfbWlzbWF0Y2hlZF9mcmVlcykgID0gVHJ1ZTsKK0Jvb2wgICAgICAgICAgTUNfKGNsb19leHBlbnNpdmVfZGVmaW5lZG5lc3NfY2hlY2tzKSA9IEZhbHNlOwogCiBzdGF0aWMgY29uc3QgSENoYXIgKiBNQ18ocGFyc2VfbGVha19oZXVyaXN0aWNzX3Rva2VucykgPQogICAgIi0sc3Rkc3RyaW5nLGxlbmd0aDY0LG5ld2FycmF5LG11bHRpcGxlaW5oZXJpdGFuY2UiOwpAQCAtNTI5OCw3ICs1ODE5LDcgQEAKICAgICAgICAgIHJldHVybiBGYWxzZTsKICAgICAgIH0KICAgICAgIGlmIChnSWdub3JlZEFkZHJlc3NSYW5nZXMpIHsKLSAgICAgICAgIFdvcmQgaTsKKyAgICAgICAgIFVJbnQgaTsKICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBWR18oc2l6ZVJhbmdlTWFwKShnSWdub3JlZEFkZHJlc3NSYW5nZXMpOyBpKyspIHsKICAgICAgICAgICAgIFVXb3JkIHZhbCAgICAgPSBJQVJfSU5WQUxJRDsKICAgICAgICAgICAgIFVXb3JkIGtleV9taW4gPSB+KFVXb3JkKTA7CkBAIC01MzA3LDExICs1ODI4LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJZ25vcmVkQWRkcmVzc1JhbmdlcywgaSApOwogICAgICAgICAgICAgdGxfYXNzZXJ0KGtleV9taW4gPD0ga2V5X21heCk7CiAgICAgICAgICAgICBVV29yZCBsaW1pdCA9IDB4NDAwMDAwMDsgLyogNjRNIC0gZW50aXJlbHkgYXJiaXRyYXJ5IGxpbWl0ICovCi0gICAgICAgICAgICBpZiAoa2V5X21heCAtIGtleV9taW4gPiBsaW1pdCkgeworICAgICAgICAgICAgaWYgKGtleV9tYXggLSBrZXlfbWluID4gbGltaXQgJiYgdmFsID09IElBUl9Db21tYW5kTGluZSkgewogICAgICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLCAKICAgICAgICAgICAgICAgICAgICJFUlJPUjogLS1pZ25vcmUtcmFuZ2VzOiBzdXNwaWNpb3VzbHkgbGFyZ2UgcmFuZ2U6XG4iKTsKICAgICAgICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywgCi0gICAgICAgICAgICAgICAgICAgIiAgICAgICAweCVseC0weCVseCAoc2l6ZSAlbGQpXG4iLCBrZXlfbWluLCBrZXlfbWF4LAorICAgICAgICAgICAgICAgICAgICIgICAgICAgMHglbHgtMHglbHggKHNpemUgJWx1KVxuIiwga2V5X21pbiwga2V5X21heCwKICAgICAgICAgICAgICAgICAgICBrZXlfbWF4IC0ga2V5X21pbiArIDEpOwogICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlOwogICAgICAgICAgICAgfQpAQCAtNTMzNSw2ICs1ODU2LDggQEAKIAogICAgZWxzZSBpZiBWR19CT09MX0NMTyhhcmcsICItLXNob3ctbWlzbWF0Y2hlZC1mcmVlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgIE1DXyhjbG9fc2hvd19taXNtYXRjaGVkX2ZyZWVzKSkge30KKyAgIGVsc2UgaWYgVkdfQk9PTF9DTE8oYXJnLCAiLS1leHBlbnNpdmUtZGVmaW5lZG5lc3MtY2hlY2tzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgTUNfKGNsb19leHBlbnNpdmVfZGVmaW5lZG5lc3NfY2hlY2tzKSkge30KIAogICAgZWxzZQogICAgICAgcmV0dXJuIFZHXyhyZXBsYWNlbWVudF9tYWxsb2NfcHJvY2Vzc19jbWRfbGluZV9vcHRpb24pKGFyZyk7CkBAIC01MzQ5LDExICs1ODcyLDYgQEAKIAogc3RhdGljIHZvaWQgbWNfcHJpbnRfdXNhZ2Uodm9pZCkKIHsKLSAgIGNvbnN0IEhDaGFyKiBwbG9fZGVmYXVsdCA9ICJubyI7Ci0jICBpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi0gICBwbG9fZGVmYXVsdCA9ICJ5ZXMiOwotIyAgZW5kaWYKLQogICAgVkdfKHByaW50ZikoCiAiICAgIC0tbGVhay1jaGVjaz1ub3xzdW1tYXJ5fGZ1bGwgICAgIHNlYXJjaCBmb3IgbWVtb3J5IGxlYWtzIGF0IGV4aXQ/ICBbc3VtbWFyeV1cbiIKICIgICAgLS1sZWFrLXJlc29sdXRpb249bG93fG1lZHxoaWdoICAgZGlmZmVyZW50aWF0aW9uIG9mIGxlYWsgc3RhY2sgdHJhY2VzIFtoaWdoXVxuIgpAQCAtNTM2NCw3ICs1ODgyLDcgQEAKICIgICAgICAgIHdoZXJlIGtpbmQgaXMgb25lIG9mOlxuIgogIiAgICAgICAgICBkZWZpbml0ZSBpbmRpcmVjdCBwb3NzaWJsZSByZWFjaGFibGUgYWxsIG5vbmVcbiIKICIgICAgLS1sZWFrLWNoZWNrLWhldXJpc3RpY3M9aGV1cjEsaGV1cjIsLi4uIHdoaWNoIGhldXJpc3RpY3MgdG8gdXNlIGZvclxuIgotIiAgICAgICAgaW1wcm92aW5nIGxlYWsgc2VhcmNoIGZhbHNlIHBvc2l0aXZlIFtub25lXVxuIgorIiAgICAgICAgaW1wcm92aW5nIGxlYWsgc2VhcmNoIGZhbHNlIHBvc2l0aXZlIFthbGxdXG4iCiAiICAgICAgICB3aGVyZSBoZXVyIGlzIG9uZSBvZjpcbiIKICIgICAgICAgICAgc3Rkc3RyaW5nIGxlbmd0aDY0IG5ld2FycmF5IG11bHRpcGxlaW5oZXJpdGFuY2UgYWxsIG5vbmVcbiIKICIgICAgLS1zaG93LXJlYWNoYWJsZT15ZXMgICAgICAgICAgICAgc2FtZSBhcyAtLXNob3ctbGVhay1raW5kcz1hbGxcbiIKQEAgLTUzNzQsNyArNTg5Miw5IEBACiAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgLS1zaG93LWxlYWsta2luZHM9ZGVmaW5pdGVcbiIKICIgICAgLS11bmRlZi12YWx1ZS1lcnJvcnM9bm98eWVzICAgICAgY2hlY2sgZm9yIHVuZGVmaW5lZCB2YWx1ZSBlcnJvcnMgW3llc11cbiIKICIgICAgLS10cmFjay1vcmlnaW5zPW5vfHllcyAgICAgICAgICAgc2hvdyBvcmlnaW5zIG9mIHVuZGVmaW5lZCB2YWx1ZXM/IFtub11cbiIKLSIgICAgLS1wYXJ0aWFsLWxvYWRzLW9rPW5vfHllcyAgICAgICAgdG9vIGhhcmQgdG8gZXhwbGFpbiBoZXJlOyBzZWUgbWFudWFsIFslc11cbiIKKyIgICAgLS1wYXJ0aWFsLWxvYWRzLW9rPW5vfHllcyAgICAgICAgdG9vIGhhcmQgdG8gZXhwbGFpbiBoZXJlOyBzZWUgbWFudWFsIFt5ZXNdXG4iCisiICAgIC0tZXhwZW5zaXZlLWRlZmluZWRuZXNzLWNoZWNrcz1ub3x5ZXNcbiIKKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlIGV4dHJhLXByZWNpc2UgZGVmaW5lZG5lc3MgdHJhY2tpbmcgW25vXVxuIgogIiAgICAtLWZyZWVsaXN0LXZvbD08bnVtYmVyPiAgICAgICAgICB2b2x1bWUgb2YgZnJlZWQgYmxvY2tzIHF1ZXVlICAgICBbMjAwMDAwMDBdXG4iCiAiICAgIC0tZnJlZWxpc3QtYmlnLWJsb2Nrcz08bnVtYmVyPiAgIHJlbGVhc2VzIGZpcnN0IGJsb2NrcyB3aXRoIHNpemU+PSBbMTAwMDAwMF1cbiIKICIgICAgLS13b3JrYXJvdW5kLWdjYzI5Ni1idWdzPW5vfHllcyAgc2VsZiBleHBsYW5hdG9yeSBbbm9dXG4iCkBAIC01MzgyLDkgKzU5MDIsOCBAQAogIiAgICAtLW1hbGxvYy1maWxsPTxoZXhudW1iZXI+ICAgICAgICBmaWxsIG1hbGxvYydkIGFyZWFzIHdpdGggZ2l2ZW4gdmFsdWVcbiIKICIgICAgLS1mcmVlLWZpbGw9PGhleG51bWJlcj4gICAgICAgICAgZmlsbCBmcmVlJ2QgYXJlYXMgd2l0aCBnaXZlbiB2YWx1ZVxuIgogIiAgICAtLWtlZXAtc3RhY2t0cmFjZXM9YWxsb2N8ZnJlZXxhbGxvYy1hbmQtZnJlZXxhbGxvYy10aGVuLWZyZWV8bm9uZVxuIgotIiAgICAgICAgc3RhY2sgdHJhY2UocykgdG8ga2VlcCBmb3IgbWFsbG9jJ2QvZnJlZSdkIGFyZWFzICAgICAgIFthbGxvYy10aGVuLWZyZWVdXG4iCisiICAgICAgICBzdGFjayB0cmFjZShzKSB0byBrZWVwIGZvciBtYWxsb2MnZC9mcmVlJ2QgYXJlYXMgICAgICAgW2FsbG9jLWFuZC1mcmVlXVxuIgogIiAgICAtLXNob3ctbWlzbWF0Y2hlZC1mcmVlcz1ub3x5ZXMgICBzaG93IGZyZWVzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIGFsbG9jYXRvcj8gW3llc11cbiIKLSwgcGxvX2RlZmF1bHQKICAgICk7CiB9CiAKQEAgLTU0ODgsMTAgKzYwMDcsMTQgQEAKICAgICAgICgKICJcbiIKICJtZW1jaGVjayBtb25pdG9yIGNvbW1hbmRzOlxuIgotIiAgZ2V0X3ZiaXRzIDxhZGRyPiBbPGxlbj5dXG4iCi0iICAgICAgICByZXR1cm5zIHZhbGlkaXR5IGJpdHMgZm9yIDxsZW4+IChvciAxKSBieXRlcyBhdCA8YWRkcj5cbiIKKyIgIHhiIDxhZGRyPiBbPGxlbj5dXG4iCisiICAgICAgICBwcmludHMgdmFsaWRpdHkgYml0cyBmb3IgPGxlbj4gKG9yIDEpIGJ5dGVzIGF0IDxhZGRyPlxuIgogIiAgICAgICAgICAgIGJpdCB2YWx1ZXMgMCA9IHZhbGlkLCAxID0gaW52YWxpZCwgX18gPSB1bmFkZHJlc3NhYmxlIGJ5dGVcbiIKLSIgICAgICAgIEV4YW1wbGU6IGdldF92Yml0cyAweDgwNDljNzggMTBcbiIKKyIgICAgICAgIFRoZW4gcHJpbnRzIHRoZSBieXRlcyB2YWx1ZXMgYmVsb3cgdGhlIGNvcnJlc3BvbmRpbmcgdmFsaWRpdHkgYml0c1xuIgorIiAgICAgICAgaW4gYSBsYXlvdXQgc2ltaWxhciB0byB0aGUgZ2RiIGNvbW1hbmQgJ3ggLzxsZW4+eGIgPGFkZHI+J1xuIgorIiAgICAgICAgRXhhbXBsZTogeGIgMHg4MDQ5Yzc4IDEwXG4iCisiICBnZXRfdmJpdHMgPGFkZHI+IFs8bGVuPl1cbiIKKyIgICAgICAgIFNpbWlsYXIgdG8geGIsIGJ1dCBvbmx5IHByaW50cyB0aGUgdmFsaWRpdHkgYnl0ZXMgYnkgZ3JvdXAgb2YgNC5cbiIKICIgIG1ha2VfbWVtb3J5IFtub2FjY2Vzc3x1bmRlZmluZWRcbiIKICIgICAgICAgICAgICAgICAgICAgICB8ZGVmaW5lZHxEZWZpbmVkaWZhZGRyZXNzYWJsZV0gPGFkZHI+IFs8bGVuPl1cbiIKICIgICAgICAgIG1hcmsgPGxlbj4gKG9yIDEpIGJ5dGVzIGF0IDxhZGRyPiB3aXRoIHRoZSBnaXZlbiBhY2Nlc3NpYmlsaXR5XG4iCkBAIC01NTEyLDggKzYwMzUsMTMgQEAKICIgICAgICAgICAgICAgICAgIGxlYWtfY2hlY2sgc3VtbWFyeSBhbnlcbiIKICIgICAgICAgICAgICAgICAgIGxlYWtfY2hlY2sgZnVsbCBraW5kcyBpbmRpcmVjdCxwb3NzaWJsZVxuIgogIiAgICAgICAgICAgICAgICAgbGVha19jaGVjayBmdWxsIHJlYWNoYWJsZSBhbnkgbGltaXRlZCAxMDBcbiIKLSIgIGJsb2NrX2xpc3QgPGxvc3NfcmVjb3JkX25yPlxuIgorIiAgYmxvY2tfbGlzdCA8bG9zc19yZWNvcmRfbnI+fDxsb3NzX3JlY29yZF9ucl9mcm9tPi4uPGxvc3NfcmVjb3JkX25yX3RvPlxuIgorIiAgICAgICAgICAgICAgICBbdW5saW1pdGVkKnxsaW1pdGVkIDxtYXhfYmxvY2tzPl1cbiIKKyIgICAgICAgICAgICAgICAgW2hldXJpc3RpY3MgaGV1cjEsaGV1cjIsLi4uXVxuIgogIiAgICAgICAgYWZ0ZXIgYSBsZWFrIHNlYXJjaCwgc2hvd3MgdGhlIGxpc3Qgb2YgYmxvY2tzIG9mIDxsb3NzX3JlY29yZF9ucj5cbiIKKyIgICAgICAgIChvciBvZiB0aGUgcmFuZ2UgPGxvc3NfcmVjb3JkX25yX2Zyb20+Li48bG9zc19yZWNvcmRfbnJfdG8+KS5cbiIKKyIgICAgICAgIFdpdGggaGV1cmlzdGljcywgb25seSBzaG93cyB0aGUgYmxvY2tzIGZvdW5kIHZpYSBoZXVyMSxoZXVyMiwuLi5cbiIKKyIgICAgICAgICAgICAqID0gZGVmYXVsdHNcbiIKICIgIHdob19wb2ludHNfYXQgPGFkZHI+IFs8bGVuPl1cbiIKICIgICAgICAgIHNob3dzIHBsYWNlcyBwb2ludGluZyBpbnNpZGUgPGxlbj4gKGRlZmF1bHQgMSkgYnl0ZXMgYXQgPGFkZHI+XG4iCiAiICAgICAgICAod2l0aCBsZW4gMSwgb25seSBzaG93cyBcInN0YXJ0IHBvaW50ZXJzXCIgcG9pbnRpbmcgZXhhY3RseSB0byA8YWRkcj4sXG4iCkBAIC01NTIxLDYgKzYwNDksMTAzIEBACiAiXG4iKTsKIH0KIAorLyogUHJpbnQgc3pCIGJ5dGVzIGF0IGFkZHJlc3MsIHdpdGggYSBmb3JtYXQgc2ltaWxhciB0byB0aGUgZ2RiIGNvbW1hbmQKKyAgIHggLzxzekI+eGIgYWRkcmVzcy4KKyAgIHJlc1tpXSA9PSAxIGluZGljYXRlcyB0aGUgY29ycmVzcG9uZGluZyBieXRlIGlzIGFkZHJlc3NhYmxlLiAqLworc3RhdGljIHZvaWQgZ2RiX3hiIChBZGRyIGFkZHJlc3MsIFNpemVUIHN6QiwgSW50IHJlc1tdKQoreworICAgVUludCBpOworCisgICBmb3IgKGkgPSAwOyBpIDwgc3pCOyBpKyspIHsKKyAgICAgIFVJbnQgYm5yID0gaSAlIDg7CisgICAgICBpZiAoYm5yID09IDApIHsKKyAgICAgICAgIGlmIChpICE9IDApCisgICAgICAgICAgICBWR18ocHJpbnRmKSAoIlxuIik7IC8vIFRlcm1pbmF0ZSBwcmV2aW91cyBsaW5lCisgICAgICAgICBWR18ocHJpbnRmKSAoIiVwOiIsICh2b2lkKikoYWRkcmVzcytpKSk7CisgICAgICB9CisgICAgICBpZiAocmVzW2ldID09IDEpCisgICAgICAgICBWR18ocHJpbnRmKSAoIlx0MHglMDJ4IiwgKihVQ2hhciopKGFkZHJlc3MraSkpOworICAgICAgZWxzZQorICAgICAgICAgVkdfKHByaW50ZikgKCJcdDB4Pz8iKTsKKyAgIH0KKyAgIFZHXyhwcmludGYpICgiXG4iKTsgLy8gVGVybWluYXRlIHByZXZpb3VzIGxpbmUKK30KKworCisvKiBSZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXh0IG5vbiBzcGFjZSBjaGFyYWN0ZXIsCisgICBvciBhZGRyZXNzIG9mIHRoZSBzdHJpbmcgdGVybWluYXRvci4gKi8KK3N0YXRpYyBIQ2hhciogbmV4dF9ub25fc3BhY2UgKEhDaGFyICpzKQoreworICAgd2hpbGUgKCpzICYmICpzID09ICcgJykKKyAgICAgIHMrKzsKKyAgIHJldHVybiBzOworfQorCisvKiBQYXJzZSBhbiBpbnRlZ2VyIHNsaWNlLCBpLmUuIGEgc2luZ2xlIGludGVnZXIgb3IgYSByYW5nZSBvZiBpbnRlZ2VyLgorICAgU3ludGF4IGlzOgorICAgICAgIDxpbnRlZ2VyPlsuLjxpbnRlZ2VyPiBdCisgICAoc3BhY2VzIGFyZSBhbGxvd2VkIGJlZm9yZSBhbmQvb3IgYWZ0ZXIgLi4pLgorICAgUmV0dXJuIFRydWUgaWYgcmFuZ2UgY29ycmVjdGx5IHBhcnNlZCwgRmFsc2Ugb3RoZXJ3aXNlLiAqLworc3RhdGljIEJvb2wgVkdfKHBhcnNlX3NsaWNlKSAoSENoYXIqIHMsIEhDaGFyKiogc2F2ZXB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJbnQgKmZyb20sIFVJbnQgKnRvKQoreworICAgSENoYXIqIHdsOworICAgSENoYXIgKmVuZHB0cjsKKyAgIGVuZHB0ciA9IE5VTEw7Ly8vLworICAgd2wgPSBWR18oc3RydG9rX3IpIChzLCAiICIsIHNhdmVwdHIpOworCisgICAvKiBzbGljZSBtdXN0IHN0YXJ0IHdpdGggYW4gaW50ZWdlci4gKi8KKyAgIGlmICh3bCA9PSBOVUxMKSB7CisgICAgICBWR18oZ2RiX3ByaW50ZikgKCJleHBlY3RpbmcgaW50ZWdlciBvciBzbGljZSA8ZnJvbT4uLjx0bz5cbiIpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorICAgKmZyb20gPSBWR18oc3RydG91bGwxMCkgKHdsLCAmZW5kcHRyKTsKKyAgIGlmIChlbmRwdHIgPT0gd2wpIHsKKyAgICAgIFZHXyhnZGJfcHJpbnRmKSAoImludmFsaWQgaW50ZWdlciBvciBzbGljZSA8ZnJvbT4uLjx0bz5cbiIpOworICAgICAgcmV0dXJuIEZhbHNlOworICAgfQorCisgICBpZiAoKmVuZHB0ciA9PSAnXDAnICYmICpuZXh0X25vbl9zcGFjZSgqc2F2ZXB0cikgIT0gJy4nKSB7CisgICAgICAvKiB3bCB0b2tlbiBpcyBhbiBpbnRlZ2VyIHRlcm1pbmF0aW5nIHRoZSBzdHJpbmcKKyAgICAgICAgIG9yIGVsc2UgbmV4dCB0b2tlbiBkb2VzIG5vdCBzdGFydCB3aXRoIC4KKyAgICAgICAgIEluIGJvdGggY2FzZXMsIHRoZSBzbGljZSBpcyBhIHNpbmdsZSBpbnRlZ2VyLiAqLworICAgICAgKnRvID0gKmZyb207CisgICAgICByZXR1cm4gVHJ1ZTsKKyAgIH0KKworICAgaWYgKCplbmRwdHIgPT0gJ1wwJykgeworICAgICAgLy8gaWlpIC4uICAgID0+IGdldCB0aGUgbmV4dCB0b2tlbgorICAgICAgd2wgPSAgVkdfKHN0cnRva19yKSAoTlVMTCwgIiAuIiwgc2F2ZXB0cik7CisgICB9IGVsc2UgeworICAgICAgLy8gSXQgbXVzdCBiZSBpaWkuLgorICAgICAgaWYgKCplbmRwdHIgIT0gJy4nICYmICooZW5kcHRyKzEpICE9ICcuJykgeworICAgICAgICAgVkdfKGdkYl9wcmludGYpICgiZXhwZWN0aW5nIHNsaWNlIDxmcm9tPi4uPHRvPlxuIik7CisgICAgICAgICByZXR1cm4gRmFsc2U7CisgICAgICB9CisgICAgICBpZiAoICooZW5kcHRyKzIpID09ICcgJykgeworICAgICAgICAgLy8gSXQgbXVzdCBiZSBpaWkuLiBqamogID0+IGdldCB0aGUgbmV4dCB0b2tlbgorICAgICAgICAgd2wgPSAgVkdfKHN0cnRva19yKSAoTlVMTCwgIiAuIiwgc2F2ZXB0cik7CisgICAgICB9IGVsc2UgeworICAgICAgICAgLy8gSXQgbXVzdCBiZSBpaWkuLmpqagorICAgICAgICAgd2wgPSBlbmRwdHIrMjsKKyAgICAgIH0KKyAgIH0KKworICAgKnRvID0gVkdfKHN0cnRvdWxsMTApICh3bCwgJmVuZHB0cik7CisgICBpZiAoKmVuZHB0ciAhPSAnXDAnKSB7CisgICAgICBWR18oZ2RiX3ByaW50ZikgKCJtaXNzaW5nL3dyb25nICd0bycgb2Ygc2xpY2UgPGZyb20+Li48dG8+XG4iKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgaWYgKCpmcm9tID4gKnRvKSB7CisgICAgICBWR18oZ2RiX3ByaW50ZikgKCI8ZnJvbT4gY2Fubm90IGJlIGJpZ2dlciB0aGFuIDx0bz4gIgorICAgICAgICAgICAgICAgICAgICAgICAiaW4gc2xpY2UgPGZyb20+Li48dG8+XG4iKTsKKyAgICAgIHJldHVybiBGYWxzZTsKKyAgIH0KKworICAgcmV0dXJuIFRydWU7Cit9CisKIC8qIHJldHVybiBUcnVlIGlmIHJlcXVlc3QgcmVjb2duaXNlZCwgRmFsc2Ugb3RoZXJ3aXNlICovCiBzdGF0aWMgQm9vbCBoYW5kbGVfZ2RiX21vbml0b3JfY29tbWFuZCAoVGhyZWFkSWQgdGlkLCBIQ2hhciAqcmVxKQogewpAQCAtNTUzNiw3ICs2MTYxLDcgQEAKICAgICAgIGNvbW1hbmQuIFRoaXMgZW5zdXJlcyBhIHNob3J0ZXIgYWJicmV2aWF0aW9uIGZvciB0aGUgdXNlci4gKi8KICAgIHN3aXRjaCAoVkdfKGtleXdvcmRfaWQpIAogICAgICAgICAgICAoImhlbHAgZ2V0X3ZiaXRzIGxlYWtfY2hlY2sgbWFrZV9tZW1vcnkgY2hlY2tfbWVtb3J5ICIKLSAgICAgICAgICAgICJibG9ja19saXN0IHdob19wb2ludHNfYXQiLCAKKyAgICAgICAgICAgICJibG9ja19saXN0IHdob19wb2ludHNfYXQgeGIiLCAKICAgICAgICAgICAgIHdjbWQsIGt3ZF9yZXBvcnRfZHVwbGljYXRlZF9tYXRjaGVzKSkgewogICAgY2FzZSAtMjogLyogbXVsdGlwbGUgbWF0Y2hlcyAqLwogICAgICAgcmV0dXJuIFRydWU7CkBAIC01NTc0LDcgKzYxOTksNyBAQAogICAgICAgICAgVkdfKHByaW50ZikgKCJcbiIpOwogICAgICAgICAgaWYgKHVuYWRkcmVzc2FibGUpIHsKICAgICAgICAgICAgIFZHXyhwcmludGYpCi0gICAgICAgICAgICAgICAoIkFkZHJlc3MgJXAgbGVuICVsZCBoYXMgJWQgYnl0ZXMgdW5hZGRyZXNzYWJsZVxuIiwKKyAgICAgICAgICAgICAgICgiQWRkcmVzcyAlcCBsZW4gJWx1IGhhcyAlZCBieXRlcyB1bmFkZHJlc3NhYmxlXG4iLAogICAgICAgICAgICAgICAgICh2b2lkICopYWRkcmVzcywgc3pCLCB1bmFkZHJlc3NhYmxlKTsKICAgICAgICAgIH0KICAgICAgIH0KQEAgLTU2NjksOCArNjI5NCw4IEBACiAgICAgICAgICAgICBlbHNlIGlmIChpbnRfdmFsdWUgPiAwKQogICAgICAgICAgICAgICAgbGNwLm1heF9sb3NzX3JlY29yZHNfb3V0cHV0ID0gKFVJbnQpIGludF92YWx1ZTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgIFZHXyhnZGJfcHJpbnRmKSAoIm1heF9sb3NzX3JlY29yZHNfb3V0cHV0IG11c3QgYmUgPj0gMSwgZ290ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRfdmFsdWUpOworICAgICAgICAgICAgICAgVkdfKGdkYl9wcmludGYpICgibWF4X2xvc3NfcmVjb3Jkc19vdXRwdXQgbXVzdCBiZSA+PSAxLCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBnb3QgJWRcbiIsIGludF92YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGRlZmF1bHQ6CkBAIC01NzI0LDExICs2MzQ5LDExIEBACiAgICAgICBjYXNlIC0xOiBicmVhazsKICAgICAgIGNhc2UgIDA6IC8qIGFkZHJlc3NhYmxlICovCiAgICAgICAgICBpZiAoaXNfbWVtX2FkZHJlc3NhYmxlICggYWRkcmVzcywgc3pCLCAmYmFkX2FkZHIgKSkKLSAgICAgICAgICAgIFZHXyhwcmludGYpICgiQWRkcmVzcyAlcCBsZW4gJWxkIGFkZHJlc3NhYmxlXG4iLCAKKyAgICAgICAgICAgIFZHXyhwcmludGYpICgiQWRkcmVzcyAlcCBsZW4gJWx1IGFkZHJlc3NhYmxlXG4iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKilhZGRyZXNzLCBzekIpOwogICAgICAgICAgZWxzZQogICAgICAgICAgICAgVkdfKHByaW50ZikKLSAgICAgICAgICAgICAgICgiQWRkcmVzcyAlcCBsZW4gJWxkIG5vdCBhZGRyZXNzYWJsZTpcbmJhZCBhZGRyZXNzICVwXG4iLAorICAgICAgICAgICAgICAgKCJBZGRyZXNzICVwIGxlbiAlbHUgbm90IGFkZHJlc3NhYmxlOlxuYmFkIGFkZHJlc3MgJXBcbiIsCiAgICAgICAgICAgICAgICAgKHZvaWQgKilhZGRyZXNzLCBzekIsICh2b2lkICopIGJhZF9hZGRyKTsKICAgICAgICAgIE1DXyhwcF9kZXNjcmliZV9hZGRyKSAoYWRkcmVzcyk7CiAgICAgICAgICBicmVhazsKQEAgLTU3MzYsNyArNjM2MSw3IEBACiAgICAgICAgICByZXMgPSBpc19tZW1fZGVmaW5lZCAoIGFkZHJlc3MsIHN6QiwgJmJhZF9hZGRyLCAmb3RhZyApOwogICAgICAgICAgaWYgKE1DX0FkZHJFcnIgPT0gcmVzKQogICAgICAgICAgICAgVkdfKHByaW50ZikKLSAgICAgICAgICAgICAgICgiQWRkcmVzcyAlcCBsZW4gJWxkIG5vdCBhZGRyZXNzYWJsZTpcbmJhZCBhZGRyZXNzICVwXG4iLAorICAgICAgICAgICAgICAgKCJBZGRyZXNzICVwIGxlbiAlbHUgbm90IGFkZHJlc3NhYmxlOlxuYmFkIGFkZHJlc3MgJXBcbiIsCiAgICAgICAgICAgICAgICAgKHZvaWQgKilhZGRyZXNzLCBzekIsICh2b2lkICopIGJhZF9hZGRyKTsKICAgICAgICAgIGVsc2UgaWYgKE1DX1ZhbHVlRXJyID09IHJlcykgewogICAgICAgICAgICAgb2tpbmQgPSBvdGFnICYgMzsKQEAgLTU3NTIsNyArNjM3Nyw3IEBACiAgICAgICAgICAgICBkZWZhdWx0OiB0bF9hc3NlcnQoMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBWR18ocHJpbnRmKSAKLSAgICAgICAgICAgICAgICgiQWRkcmVzcyAlcCBsZW4gJWxkIG5vdCBkZWZpbmVkOlxuIgorICAgICAgICAgICAgICAgKCJBZGRyZXNzICVwIGxlbiAlbHUgbm90IGRlZmluZWQ6XG4iCiAgICAgICAgICAgICAgICAgIlVuaW5pdGlhbGlzZWQgdmFsdWUgYXQgJXAlc1xuIiwKICAgICAgICAgICAgICAgICAodm9pZCAqKWFkZHJlc3MsIHN6QiwgKHZvaWQgKikgYmFkX2FkZHIsIHNyYyk7CiAgICAgICAgICAgICBlY3UgPSBvdGFnICYgfjM7CkBAIC01NzYyLDcgKzYzODcsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgZWxzZQotICAgICAgICAgICAgVkdfKHByaW50ZikgKCJBZGRyZXNzICVwIGxlbiAlbGQgZGVmaW5lZFxuIiwKKyAgICAgICAgICAgIFZHXyhwcmludGYpICgiQWRkcmVzcyAlcCBsZW4gJWx1IGRlZmluZWRcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKilhZGRyZXNzLCBzekIpOwogICAgICAgICAgTUNfKHBwX2Rlc2NyaWJlX2FkZHIpIChhZGRyZXNzKTsKICAgICAgICAgIGJyZWFrOwpAQCAtNTc3MywxNiArNjM5OCw2MyBAQAogCiAgICBjYXNlICA1OiB7IC8qIGJsb2NrX2xpc3QgKi8KICAgICAgIEhDaGFyKiB3bDsKLSAgICAgIEhDaGFyICplbmRwdHI7Ci0gICAgICBVSW50IGxyX25yID0gMDsKLSAgICAgIHdsID0gVkdfKHN0cnRva19yKSAoTlVMTCwgIiAiLCAmc3NhdmVwdHIpOwotICAgICAgaWYgKHdsICE9IE5VTEwpCi0gICAgICAgICBscl9uciA9IFZHXyhzdHJ0b3VsbDEwKSAod2wsICZlbmRwdHIpOwotICAgICAgaWYgKHdsID09IE5VTEwgfHwgKmVuZHB0ciAhPSAnXDAnKSB7Ci0gICAgICAgICBWR18oZ2RiX3ByaW50ZikgKCJtYWxmb3JtZWQgb3IgbWlzc2luZyBpbnRlZ2VyXG4iKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAvLyBscl9uci0xIGFzIHdoYXQgaXMgc2hvd24gdG8gdGhlIHVzZXIgaXMgMSBtb3JlIHRoYW4gdGhlIGluZGV4IGluIGxyX2FycmF5LgotICAgICAgICAgaWYgKGxyX25yID09IDAgfHwgISBNQ18ocHJpbnRfYmxvY2tfbGlzdCkgKGxyX25yLTEpKQorICAgICAgSENoYXIgKnRoZV9lbmQ7CisgICAgICBVSW50IGxyX25yX2Zyb20gPSAwOworICAgICAgVUludCBscl9ucl90byA9IDA7CisKKyAgICAgIGlmIChWR18ocGFyc2Vfc2xpY2UpIChOVUxMLCAmc3NhdmVwdHIsICZscl9ucl9mcm9tLCAmbHJfbnJfdG8pKSB7CisgICAgICAgICBVSW50IGxpbWl0X2Jsb2NrcyA9IDk5OTk5OTk5OTsKKyAgICAgICAgIEludCBpbnRfdmFsdWU7CisgICAgICAgICBVSW50IGhldXJpc3RpY3MgPSAwOworICAgICAgICAgCisgICAgICAgICBmb3IgKHdsID0gVkdfKHN0cnRva19yKSAoTlVMTCwgIiAiLCAmc3NhdmVwdHIpOworICAgICAgICAgICAgICB3bCAhPSBOVUxMOworICAgICAgICAgICAgICB3bCA9IFZHXyhzdHJ0b2tfcikgKE5VTEwsICIgIiwgJnNzYXZlcHRyKSkgeworICAgICAgICAgICAgc3dpdGNoIChWR18oa2V5d29yZF9pZCkgKCJ1bmxpbWl0ZWQgbGltaXRlZCBoZXVyaXN0aWNzICIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdsLCAga3dkX3JlcG9ydF9hbGwpKSB7CisgICAgICAgICAgICBjYXNlIC0yOiByZXR1cm4gVHJ1ZTsKKyAgICAgICAgICAgIGNhc2UgLTE6IHJldHVybiBUcnVlOworICAgICAgICAgICAgY2FzZSAgMDogLyogdW5saW1pdGVkICovCisgICAgICAgICAgICAgICBsaW1pdF9ibG9ja3MgPSA5OTk5OTk5OTk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAgMTogLyogbGltaXRlZCAqLworICAgICAgICAgICAgICAgd2NtZCA9IFZHXyhzdHJ0b2tfcikgKE5VTEwsICIgIiwgJnNzYXZlcHRyKTsKKyAgICAgICAgICAgICAgIGlmICh3Y21kID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgIFZHXyhnZGJfcHJpbnRmKSAoIm1pc3NpbmcgaW50ZWdlciB2YWx1ZVxuIik7CisgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGludF92YWx1ZSA9IFZHXyhzdHJ0b2xsMTApICh3Y21kLCAmdGhlX2VuZCk7CisgICAgICAgICAgICAgICBpZiAoKnRoZV9lbmQgIT0gJ1wwJykgeworICAgICAgICAgICAgICAgICAgVkdfKGdkYl9wcmludGYpICgibWFsZm9ybWVkIGludGVnZXIgdmFsdWVcbiIpOworICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWU7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZiAoaW50X3ZhbHVlIDw9IDApIHsKKyAgICAgICAgICAgICAgICAgIFZHXyhnZGJfcHJpbnRmKSAoIm1heF9ibG9ja3MgbXVzdCBiZSA+PSAxLCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBnb3QgJWRcbiIsIGludF92YWx1ZSk7CisgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGxpbWl0X2Jsb2NrcyA9IChVSW50KSBpbnRfdmFsdWU7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIDI6IC8qIGhldXJpc3RpY3MgKi8KKyAgICAgICAgICAgICAgIHdjbWQgPSBWR18oc3RydG9rX3IpIChOVUxMLCAiICIsICZzc2F2ZXB0cik7CisgICAgICAgICAgICAgICBpZiAod2NtZCA9PSBOVUxMIAorICAgICAgICAgICAgICAgICAgIHx8ICFWR18ocGFyc2VfZW51bV9zZXQpKE1DXyhwYXJzZV9sZWFrX2hldXJpc3RpY3NfdG9rZW5zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlLC8qYWxsb3dfYWxsKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoZXVyaXN0aWNzKSkgeworICAgICAgICAgICAgICAgICAgVkdfKGdkYl9wcmludGYpICgibWlzc2luZyBvciBtYWxmb3JtZWQgaGV1cmlzdGljcyBzZXRcbiIpOworICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWU7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICB0bF9hc3NlcnQgKDApOworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgLyogc3Vic3RyYWN0IDEgZnJvbSBscl9ucl9mcm9tL2xyX25yX3RvICBhcyB3aGF0IGlzIHNob3duIHRvIHRoZSB1c2VyCisgICAgICAgICAgICBpcyAxIG1vcmUgdGhhbiB0aGUgaW5kZXggaW4gbHJfYXJyYXkuICovCisgICAgICAgICBpZiAobHJfbnJfZnJvbSA9PSAwIHx8ICEgTUNfKHByaW50X2Jsb2NrX2xpc3QpIChscl9ucl9mcm9tLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBscl9ucl90by0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRfYmxvY2tzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV1cmlzdGljcykpCiAgICAgICAgICAgICBWR18oZ2RiX3ByaW50ZikgKCJpbnZhbGlkIGxvc3MgcmVjb3JkIG5yXG4iKTsKICAgICAgIH0KICAgICAgIHJldHVybiBUcnVlOwpAQCAtNTgwMiw2ICs2NDc0LDUyIEBACiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0KIAorICAgY2FzZSAgNzogeyAvKiB4YiAqLworICAgICAgQWRkciBhZGRyZXNzOworICAgICAgU2l6ZVQgc3pCID0gMTsKKyAgICAgIGlmIChWR18oc3RydG9rX2dldF9hZGRyZXNzX2FuZF9zaXplKSAoJmFkZHJlc3MsICZzekIsICZzc2F2ZXB0cikpIHsKKyAgICAgICAgIFVDaGFyIHZiaXRzWzhdOworICAgICAgICAgSW50IHJlc1s4XTsKKyAgICAgICAgIEludCBpOworICAgICAgICAgSW50IHVuYWRkcmVzc2FibGUgPSAwOworICAgICAgICAgZm9yIChpID0gMDsgaSA8IHN6QjsgaSsrKSB7CisgICAgICAgICAgICBJbnQgYm5yID0gaSAlIDg7CisgICAgICAgICAgICByZXNbYm5yXSA9IG1jX2dldF9vcl9zZXRfdmJpdHNfZm9yX2NsaWVudCAKKyAgICAgICAgICAgICAgIChhZGRyZXNzK2ksIChBZGRyKSAmdmJpdHNbYm5yXSwgMSwgCisgICAgICAgICAgICAgICAgRmFsc2UsIC8qIGdldCB0aGVtICovCisgICAgICAgICAgICAgICAgRmFsc2UgIC8qIGlzIGNsaWVudCByZXF1ZXN0ICovICk7IAorICAgICAgICAgICAgLyogV2UgZ29pbmcgdG8gcHJpbnQgdGhlIGZpcnN0IHZhYml0cyBvZiBhIG5ldyBsaW5lLgorICAgICAgICAgICAgICAgVGVybWluYXRlIHRoZSBwcmV2aW91cyBsaW5lIGlmIG5lZWRlZDogcHJpbnRzIGEgbGluZSB3aXRoIHRoZQorICAgICAgICAgICAgICAgYWRkcmVzcyBhbmQgdGhlIGRhdGEuICovCisgICAgICAgICAgICBpZiAoYm5yID09IDApIHsKKyAgICAgICAgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgIFZHXyhwcmludGYpICgiXG4iKTsKKyAgICAgICAgICAgICAgICAgIGdkYl94YiAoYWRkcmVzcyArIGkgLSA4LCA4LCByZXMpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgVkdfKHByaW50ZikgKCJcdCIpOyAvLyBUbyBhbGlnbiBWQUJJVFMgd2l0aCBnZGJfeGIgbGF5b3V0CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVzW2Jucl0gPT0gMSkgeworICAgICAgICAgICAgICAgVkdfKHByaW50ZikgKCJcdCAgJTAyeCIsIHZiaXRzW2Jucl0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgIHRsX2Fzc2VydCgzID09IHJlc1tibnJdKTsKKyAgICAgICAgICAgICAgIHVuYWRkcmVzc2FibGUrKzsKKyAgICAgICAgICAgICAgIFZHXyhwcmludGYpICgiXHQgIF9fIik7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBWR18ocHJpbnRmKSAoIlxuIik7CisgICAgICAgICBpZiAoc3pCICUgOCA9PSAwICYmIHN6QiA+IDApCisgICAgICAgICAgICBnZGJfeGIgKGFkZHJlc3MgKyBzekIgLSA4LCA4LCByZXMpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgZ2RiX3hiIChhZGRyZXNzICsgc3pCIC0gc3pCICUgOCwgc3pCICUgOCwgcmVzKTsKKyAgICAgICAgIGlmICh1bmFkZHJlc3NhYmxlKSB7CisgICAgICAgICAgICBWR18ocHJpbnRmKQorICAgICAgICAgICAgICAgKCJBZGRyZXNzICVwIGxlbiAlbHUgaGFzICVkIGJ5dGVzIHVuYWRkcmVzc2FibGVcbiIsCisgICAgICAgICAgICAgICAgKHZvaWQgKilhZGRyZXNzLCBzekIsIHVuYWRkcmVzc2FibGUpOworICAgICAgICAgfQorICAgICAgfQorICAgICAgcmV0dXJuIFRydWU7CisgICB9CisKICAgIGRlZmF1bHQ6IAogICAgICAgdGxfYXNzZXJ0KDApOwogICAgICAgcmV0dXJuIEZhbHNlOwpAQCAtNjE1MSwzMyArNjg2OSwxNTkgQEAKIAogI2lmZGVmIE1DX1BST0ZJTEVfTUVNT1JZCiAKLVVJbnQgICBNQ18oZXZlbnRfY3RyKVtOX1BST0ZfRVZFTlRTXTsKLUhDaGFyKiBNQ18oZXZlbnRfY3RyX25hbWUpW05fUFJPRl9FVkVOVFNdOworVUxvbmcgIE1DXyhldmVudF9jdHIpW01DUEVfTEFTVF07CisKKy8qIEV2ZW50IGNvdW50ZXIgbmFtZXMuIFVzZSB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdGhhdCBpbmNyZWFzZXMgdGhlCisgICBldmVudCBjb3VudGVyLiBEcm9wIGFueSBNQ18oKSBhbmQgbWNfIHByZWZpY2VzLiAqLworc3RhdGljIGNvbnN0IEhDaGFyKiBNQ18oZXZlbnRfY3RyX25hbWUpW01DUEVfTEFTVF0gPSB7CisgICBbTUNQRV9MT0FEVk5fU0xPV10gPSAiTE9BRFZuX3Nsb3ciLAorICAgW01DUEVfTE9BRFZOX1NMT1dfTE9PUF0gPSAiTE9BRFZuX3Nsb3dfbG9vcCIsCisgICBbTUNQRV9TVE9SRVZOX1NMT1ddID0gIlNUT1JFVm5fc2xvdyIsCisgICBbTUNQRV9TVE9SRVZOX1NMT1dfTE9PUF0gPSAiU1RPUkVWbl9zbG93KGxvb3ApIiwKKyAgIFtNQ1BFX01BS0VfQUxJR05FRF9XT1JEMzJfVU5ERUZJTkVEXSA9ICJtYWtlX2FsaWduZWRfd29yZDMyX3VuZGVmaW5lZCIsCisgICBbTUNQRV9NQUtFX0FMSUdORURfV09SRDMyX1VOREVGSU5FRF9TTE9XXSA9IAorICAgICAgICAibWFrZV9hbGlnbmVkX3dvcmQzMl91bmRlZmluZWRfc2xvdyIsCisgICBbTUNQRV9NQUtFX0FMSUdORURfV09SRDY0X1VOREVGSU5FRF0gPSAibWFrZV9hbGlnbmVkX3dvcmQ2NF91bmRlZmluZWQiLAorICAgW01DUEVfTUFLRV9BTElHTkVEX1dPUkQ2NF9VTkRFRklORURfU0xPV10gPSAKKyAgICAgICAgIm1ha2VfYWxpZ25lZF93b3JkNjRfdW5kZWZpbmVkX3Nsb3ciLAorICAgW01DUEVfTUFLRV9BTElHTkVEX1dPUkQzMl9OT0FDQ0VTU10gPSAibWFrZV9hbGlnbmVkX3dvcmQzMl9ub2FjY2VzcyIsCisgICBbTUNQRV9NQUtFX0FMSUdORURfV09SRDMyX05PQUNDRVNTX1NMT1ddID0KKyAgICAgICAgICJtYWtlX2FsaWduZWRfd29yZDMyX25vYWNjZXNzX3Nsb3ciLAorICAgW01DUEVfTUFLRV9BTElHTkVEX1dPUkQ2NF9OT0FDQ0VTU10gPSAibWFrZV9hbGlnbmVkX3dvcmQ2NF9ub2FjY2VzcyIsCisgICBbTUNQRV9NQUtFX0FMSUdORURfV09SRDY0X05PQUNDRVNTX1NMT1ddID0KKyAgICAgICAgIm1ha2VfYWxpZ25lZF93b3JkNjRfbm9hY2Nlc3Nfc2xvdyIsCisgICBbTUNQRV9NQUtFX01FTV9OT0FDQ0VTU10gPSAibWFrZV9tZW1fbm9hY2Nlc3MiLAorICAgW01DUEVfTUFLRV9NRU1fVU5ERUZJTkVEXSA9ICJtYWtlX21lbV91bmRlZmluZWQiLAorICAgW01DUEVfTUFLRV9NRU1fVU5ERUZJTkVEX1dfT1RBR10gPSAibWFrZV9tZW1fdW5kZWZpbmVkX3dfb3RhZyIsCisgICBbTUNQRV9NQUtFX01FTV9ERUZJTkVEXSA9ICJtYWtlX21lbV9kZWZpbmVkIiwKKyAgIFtNQ1BFX0NIRUFQX1NBTklUWV9DSEVDS10gPSAiY2hlYXBfc2FuaXR5X2NoZWNrIiwKKyAgIFtNQ1BFX0VYUEVOU0lWRV9TQU5JVFlfQ0hFQ0tdID0gImV4cGVuc2l2ZV9zYW5pdHlfY2hlY2siLAorICAgW01DUEVfQ09QWV9BRERSRVNTX1JBTkdFX1NUQVRFXSA9ICJjb3B5X2FkZHJlc3NfcmFuZ2Vfc3RhdGUiLAorICAgW01DUEVfQ09QWV9BRERSRVNTX1JBTkdFX1NUQVRFX0xPT1AxXSA9ICJjb3B5X2FkZHJlc3NfcmFuZ2Vfc3RhdGUobG9vcDEpIiwKKyAgIFtNQ1BFX0NPUFlfQUREUkVTU19SQU5HRV9TVEFURV9MT09QMl0gPSAiY29weV9hZGRyZXNzX3JhbmdlX3N0YXRlKGxvb3AyKSIsCisgICBbTUNQRV9DSEVDS19NRU1fSVNfTk9BQ0NFU1NdID0gImNoZWNrX21lbV9pc19ub2FjY2VzcyIsCisgICBbTUNQRV9DSEVDS19NRU1fSVNfTk9BQ0NFU1NfTE9PUF0gPSAiY2hlY2tfbWVtX2lzX25vYWNjZXNzKGxvb3ApIiwKKyAgIFtNQ1BFX0lTX01FTV9BRERSRVNTQUJMRV0gPSAiaXNfbWVtX2FkZHJlc3NhYmxlIiwKKyAgIFtNQ1BFX0lTX01FTV9BRERSRVNTQUJMRV9MT09QXSA9ICJpc19tZW1fYWRkcmVzc2FibGUobG9vcCkiLAorICAgW01DUEVfSVNfTUVNX0RFRklORURdID0gImlzX21lbV9kZWZpbmVkIiwKKyAgIFtNQ1BFX0lTX01FTV9ERUZJTkVEX0xPT1BdID0gImlzX21lbV9kZWZpbmVkKGxvb3ApIiwKKyAgIFtNQ1BFX0lTX01FTV9ERUZJTkVEX0NPTVBSRUhFTlNJVkVdID0gImlzX21lbV9kZWZpbmVkX2NvbXByZWhlbnNpdmUiLAorICAgW01DUEVfSVNfTUVNX0RFRklORURfQ09NUFJFSEVOU0lWRV9MT09QXSA9CisgICAgICAgICJpc19tZW1fZGVmaW5lZF9jb21wcmVoZW5zaXZlKGxvb3ApIiwKKyAgIFtNQ1BFX0lTX0RFRklORURfQVNDSUlaXSA9ICJpc19kZWZpbmVkX2FzY2lpeiIsCisgICBbTUNQRV9JU19ERUZJTkVEX0FTQ0lJWl9MT09QXSA9ICJpc19kZWZpbmVkX2FzY2lpeihsb29wKSIsCisgICBbTUNQRV9GSU5EX0NIVU5LX0ZPUl9PTERdID0gImZpbmRfY2h1bmtfZm9yX09MRCIsCisgICBbTUNQRV9GSU5EX0NIVU5LX0ZPUl9PTERfTE9PUF0gPSAiZmluZF9jaHVua19mb3JfT0xEKGxvb3ApIiwKKyAgIFtNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TXSA9ICJzZXRfYWRkcmVzc19yYW5nZV9wZXJtcyIsCisgICBbTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19TSU5HTEVfU0VDTUFQXSA9CisgICAgICAgICJzZXRfYWRkcmVzc19yYW5nZV9wZXJtcyhzaW5nbGUtc2VjbWFwKSIsCisgICBbTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19TVEFSVE9GX1NFQ01BUF0gPQorICAgICAgICAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMoc3RhcnRvZi1zZWNtYXApIiwKKyAgIFtNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX01VTFRJUExFX1NFQ01BUFNdID0KKyAgICJzZXRfYWRkcmVzc19yYW5nZV9wZXJtcyhtdWx0aXBsZS1zZWNtYXBzKSIsCisgICBbTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19ESVNUX1NNMV0gPQorICAgICAgICAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMoZGlzdC1zbTEpIiwKKyAgIFtNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0RJU1RfU00yXSA9CisgICAgICAgICJzZXRfYWRkcmVzc19yYW5nZV9wZXJtcyhkaXN0LXNtMikiLAorICAgW01DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfRElTVF9TTTFfUVVJQ0tdID0KKyAgICAgICAgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zKGRpc3Qtc20xLXF1aWNrKSIsCisgICBbTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19ESVNUX1NNMl9RVUlDS10gPQorICAgICAgICAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMoZGlzdC1zbTItcXVpY2spIiwKKyAgIFtNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0xPT1AxQV0gPSAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMobG9vcDFhKSIsCisgICBbTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19MT09QMUJdID0gInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zKGxvb3AxYikiLAorICAgW01DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfTE9PUDFDXSA9ICJzZXRfYWRkcmVzc19yYW5nZV9wZXJtcyhsb29wMWMpIiwKKyAgIFtNQ1BFX1NFVF9BRERSRVNTX1JBTkdFX1BFUk1TX0xPT1A4QV0gPSAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMobG9vcDhhKSIsCisgICBbTUNQRV9TRVRfQUREUkVTU19SQU5HRV9QRVJNU19MT09QOEJdID0gInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zKGxvb3A4YikiLAorICAgW01DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfTE9PUDY0S10gPSAic2V0X2FkZHJlc3NfcmFuZ2VfcGVybXMobG9vcDY0SykiLAorICAgW01DUEVfU0VUX0FERFJFU1NfUkFOR0VfUEVSTVNfTE9PUDY0S19GUkVFX0RJU1RfU01dID0KKyAgICAgICAgInNldF9hZGRyZXNzX3JhbmdlX3Blcm1zKGxvb3A2NEstZnJlZS1kaXN0LXNtKSIsCisgICBbTUNQRV9MT0FEVl8xMjhfT1JfMjU2X1NMT1dfTE9PUF0gPSAiTE9BRFZfMTI4X29yXzI1Nl9zbG93KGxvb3ApIiwKKyAgIFtNQ1BFX0xPQURWXzEyOF9PUl8yNTZdICAgICAgID0gIkxPQURWXzEyOF9vcl8yNTYiLAorICAgW01DUEVfTE9BRFZfMTI4X09SXzI1Nl9TTE9XMV0gPSAiTE9BRFZfMTI4X29yXzI1Ni1zbG93MSIsCisgICBbTUNQRV9MT0FEVl8xMjhfT1JfMjU2X1NMT1cyXSA9ICJMT0FEVl8xMjhfb3JfMjU2LXNsb3cyIiwKKyAgIFtNQ1BFX0xPQURWNjRdICAgICAgICA9ICJMT0FEVjY0IiwKKyAgIFtNQ1BFX0xPQURWNjRfU0xPVzFdICA9ICJMT0FEVjY0LXNsb3cxIiwKKyAgIFtNQ1BFX0xPQURWNjRfU0xPVzJdICA9ICJMT0FEVjY0LXNsb3cyIiwKKyAgIFtNQ1BFX1NUT1JFVjY0XSAgICAgICA9ICJTVE9SRVY2NCIsCisgICBbTUNQRV9TVE9SRVY2NF9TTE9XMV0gPSAiU1RPUkVWNjQtc2xvdzEiLAorICAgW01DUEVfU1RPUkVWNjRfU0xPVzJdID0gIlNUT1JFVjY0LXNsb3cyIiwKKyAgIFtNQ1BFX1NUT1JFVjY0X1NMT1czXSA9ICJTVE9SRVY2NC1zbG93MyIsCisgICBbTUNQRV9TVE9SRVY2NF9TTE9XNF0gPSAiU1RPUkVWNjQtc2xvdzQiLAorICAgW01DUEVfTE9BRFYzMl0gICAgICAgID0gIkxPQURWMzIiLAorICAgW01DUEVfTE9BRFYzMl9TTE9XMV0gID0gIkxPQURWMzItc2xvdzEiLAorICAgW01DUEVfTE9BRFYzMl9TTE9XMl0gID0gIkxPQURWMzItc2xvdzIiLAorICAgW01DUEVfU1RPUkVWMzJdICAgICAgID0gIlNUT1JFVjMyIiwKKyAgIFtNQ1BFX1NUT1JFVjMyX1NMT1cxXSA9ICJTVE9SRVYzMi1zbG93MSIsCisgICBbTUNQRV9TVE9SRVYzMl9TTE9XMl0gPSAiU1RPUkVWMzItc2xvdzIiLAorICAgW01DUEVfU1RPUkVWMzJfU0xPVzNdID0gIlNUT1JFVjMyLXNsb3czIiwKKyAgIFtNQ1BFX1NUT1JFVjMyX1NMT1c0XSA9ICJTVE9SRVYzMi1zbG93NCIsCisgICBbTUNQRV9MT0FEVjE2XSAgICAgICAgPSAiTE9BRFYxNiIsCisgICBbTUNQRV9MT0FEVjE2X1NMT1cxXSAgPSAiTE9BRFYxNi1zbG93MSIsCisgICBbTUNQRV9MT0FEVjE2X1NMT1cyXSAgPSAiTE9BRFYxNi1zbG93MiIsCisgICBbTUNQRV9TVE9SRVYxNl0gICAgICAgPSAiU1RPUkVWMTYiLAorICAgW01DUEVfU1RPUkVWMTZfU0xPVzFdID0gIlNUT1JFVjE2LXNsb3cxIiwKKyAgIFtNQ1BFX1NUT1JFVjE2X1NMT1cyXSA9ICJTVE9SRVYxNi1zbG93MiIsCisgICBbTUNQRV9TVE9SRVYxNl9TTE9XM10gPSAiU1RPUkVWMTYtc2xvdzMiLAorICAgW01DUEVfU1RPUkVWMTZfU0xPVzRdID0gIlNUT1JFVjE2LXNsb3c0IiwKKyAgIFtNQ1BFX0xPQURWOF0gICAgICAgICA9ICJMT0FEVjgiLAorICAgW01DUEVfTE9BRFY4X1NMT1cxXSAgID0gIkxPQURWOC1zbG93MSIsCisgICBbTUNQRV9MT0FEVjhfU0xPVzJdICAgPSAiTE9BRFY4LXNsb3cyIiwKKyAgIFtNQ1BFX1NUT1JFVjhdICAgICAgICA9ICJTVE9SRVY4IiwKKyAgIFtNQ1BFX1NUT1JFVjhfU0xPVzFdICA9ICJTVE9SRVY4LXNsb3cxIiwKKyAgIFtNQ1BFX1NUT1JFVjhfU0xPVzJdICA9ICJTVE9SRVY4LXNsb3cyIiwKKyAgIFtNQ1BFX1NUT1JFVjhfU0xPVzNdICA9ICJTVE9SRVY4LXNsb3czIiwKKyAgIFtNQ1BFX1NUT1JFVjhfU0xPVzRdICA9ICJTVE9SRVY4LXNsb3c0IiwKKyAgIFtNQ1BFX05FV19NRU1fU1RBQ0tfNF0gICA9ICJuZXdfbWVtX3N0YWNrXzQiLAorICAgW01DUEVfTkVXX01FTV9TVEFDS184XSAgID0gIm5ld19tZW1fc3RhY2tfOCIsCisgICBbTUNQRV9ORVdfTUVNX1NUQUNLXzEyXSAgPSAibmV3X21lbV9zdGFja18xMiIsCisgICBbTUNQRV9ORVdfTUVNX1NUQUNLXzE2XSAgPSAibmV3X21lbV9zdGFja18xNiIsCisgICBbTUNQRV9ORVdfTUVNX1NUQUNLXzMyXSAgPSAibmV3X21lbV9zdGFja18zMiIsCisgICBbTUNQRV9ORVdfTUVNX1NUQUNLXzExMl0gPSAibmV3X21lbV9zdGFja18xMTIiLAorICAgW01DUEVfTkVXX01FTV9TVEFDS18xMjhdID0gIm5ld19tZW1fc3RhY2tfMTI4IiwKKyAgIFtNQ1BFX05FV19NRU1fU1RBQ0tfMTQ0XSA9ICJuZXdfbWVtX3N0YWNrXzE0NCIsCisgICBbTUNQRV9ORVdfTUVNX1NUQUNLXzE2MF0gPSAibmV3X21lbV9zdGFja18xNjAiLAorICAgW01DUEVfRElFX01FTV9TVEFDS180XSAgID0gImRpZV9tZW1fc3RhY2tfNCIsCisgICBbTUNQRV9ESUVfTUVNX1NUQUNLXzhdICAgPSAiZGllX21lbV9zdGFja184IiwKKyAgIFtNQ1BFX0RJRV9NRU1fU1RBQ0tfMTJdICA9ICJkaWVfbWVtX3N0YWNrXzEyIiwKKyAgIFtNQ1BFX0RJRV9NRU1fU1RBQ0tfMTZdICA9ICJkaWVfbWVtX3N0YWNrXzE2IiwKKyAgIFtNQ1BFX0RJRV9NRU1fU1RBQ0tfMzJdICA9ICJkaWVfbWVtX3N0YWNrXzMyIiwKKyAgIFtNQ1BFX0RJRV9NRU1fU1RBQ0tfMTEyXSA9ICJkaWVfbWVtX3N0YWNrXzExMiIsCisgICBbTUNQRV9ESUVfTUVNX1NUQUNLXzEyOF0gPSAiZGllX21lbV9zdGFja18xMjgiLAorICAgW01DUEVfRElFX01FTV9TVEFDS18xNDRdID0gImRpZV9tZW1fc3RhY2tfMTQ0IiwKKyAgIFtNQ1BFX0RJRV9NRU1fU1RBQ0tfMTYwXSA9ICJkaWVfbWVtX3N0YWNrXzE2MCIsCisgICBbTUNQRV9ORVdfTUVNX1NUQUNLXSAgICAgPSAibmV3X21lbV9zdGFjayIsCisgICBbTUNQRV9ESUVfTUVNX1NUQUNLXSAgICAgPSAiZGllX21lbV9zdGFjayIsCit9OwogCiBzdGF0aWMgdm9pZCBpbml0X3Byb2ZfbWVtICggdm9pZCApCiB7Ci0gICBJbnQgaTsKLSAgIGZvciAoaSA9IDA7IGkgPCBOX1BST0ZfRVZFTlRTOyBpKyspIHsKKyAgIEludCBpLCBuYW1lX2NvdW50ID0gMDsKKworICAgZm9yIChpID0gMDsgaSA8IE1DUEVfTEFTVDsgaSsrKSB7CiAgICAgICBNQ18oZXZlbnRfY3RyKVtpXSA9IDA7Ci0gICAgICBNQ18oZXZlbnRfY3RyX25hbWUpW2ldID0gTlVMTDsKKyAgICAgIGlmIChNQ18oZXZlbnRfY3RyX25hbWUpW2ldICE9IE5VTEwpCisgICAgICAgICArK25hbWVfY291bnQ7CiAgICB9CisKKyAgIC8qIE1ha2Ugc3VyZSBldmVyeSBwcm9maWxpbmcgZXZlbnQgaGFzIGEgbmFtZSAqLworICAgdGxfYXNzZXJ0KG5hbWVfY291bnQgPT0gTUNQRV9MQVNUKTsKIH0KIAogc3RhdGljIHZvaWQgZG9uZV9wcm9mX21lbSAoIHZvaWQgKQogewotICAgSW50ICBpOworICAgSW50ICBpLCBuOwogICAgQm9vbCBzcGFjZWQgPSBGYWxzZTsKLSAgIGZvciAoaSA9IDA7IGkgPCBOX1BST0ZfRVZFTlRTOyBpKyspIHsKLSAgICAgIGlmICghc3BhY2VkICYmIChpICUgMTApID09IDApIHsKKyAgIGZvciAoaSA9IG4gPSAwOyBpIDwgTUNQRV9MQVNUOyBpKyspIHsKKyAgICAgIGlmICghc3BhY2VkICYmIChuICUgMTApID09IDApIHsKICAgICAgICAgIFZHXyhwcmludGYpKCJcbiIpOwogICAgICAgICAgc3BhY2VkID0gVHJ1ZTsKICAgICAgIH0KICAgICAgIGlmIChNQ18oZXZlbnRfY3RyKVtpXSA+IDApIHsKICAgICAgICAgIHNwYWNlZCA9IEZhbHNlOwotICAgICAgICAgVkdfKHByaW50ZikoICJwcm9mIG1lbSBldmVudCAlM2Q6ICU5ZCAgICVzXG4iLCAKKyAgICAgICAgICsrbjsKKyAgICAgICAgIFZHXyhwcmludGYpKCAicHJvZiBtZW0gZXZlbnQgJTNkOiAlMTFsbHUgICAlc1xuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgaSwgTUNfKGV2ZW50X2N0cilbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgTUNfKGV2ZW50X2N0cl9uYW1lKVtpXSAKLSAgICAgICAgICAgICAgICAgICAgICAgICA/IE1DXyhldmVudF9jdHJfbmFtZSlbaV0gOiAidW5uYW1lZCIpOworICAgICAgICAgICAgICAgICAgICAgIE1DXyhldmVudF9jdHJfbmFtZSlbaV0pOwogICAgICAgfQogICAgfQogfQpAQCAtNjYzNCwxMCArNzQ3OCwxNiBAQAogICAgLy8gZGlyZWN0bHkgd2l0aCBicmsoKSwgbm90IHdpdGggc2JyaygpLCBwZXJoYXBzIGl0IHdvdWxkIGJlIHJlYXNvbmFibGUgdG8KICAgIC8vIGp1c3QgbWFyayBhbGwgbWVtb3J5IGl0IGFsbG9jYXRlcyBhcyBkZWZpbmVkLl0KICAgIC8vCisjICBpZiAhZGVmaW5lZChWR09fc29sYXJpcykKICAgIGlmIChNQ18oY2xvX21jX2xldmVsKSA9PSAzKQogICAgICAgVkdfKHRyYWNrX25ld19tZW1fYnJrKSAgICAgICAgICggbWNfbmV3X21lbV93X3RpZF9tYWtlX0VDVSApOwogICAgZWxzZQogICAgICAgVkdfKHRyYWNrX25ld19tZW1fYnJrKSAgICAgICAgICggbWNfbmV3X21lbV93X3RpZF9ub19FQ1UgKTsKKyMgIGVsc2UKKyAgIC8vIE9uIFNvbGFyaXMsIGJyayBtZW1vcnkgaGFzIHRvIGJlIG1hcmtlZCBhcyBkZWZpbmVkLCBvdGhlcndpc2Ugd2UgZ2V0CisgICAvLyBtYW55IGZhbHNlIHBvc2l0aXZlcy4KKyAgIFZHXyh0cmFja19uZXdfbWVtX2JyaykgICAgICAgICAoIG1ha2VfbWVtX2RlZmluZWRfd190aWQgKTsKKyMgIGVuZGlmCiAKICAgIC8qIFRoaXMgb3JpZ2luIHRyYWNraW5nIGNhY2hlIGlzIGh1Z2UgKH4xMDBNKSwgc28gb25seSBpbml0aWFsaXNlCiAgICAgICBpZiB3ZSBuZWVkIGl0LiAqLwpAQCAtNjY2NSw3ICs3NTE1LDcgQEAKIHN0YXRpYyB2b2lkIHByaW50X1NNX2luZm8oY29uc3QgSENoYXIqIHR5cGUsIEludCBuX1NNcykKIHsKICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICIgbWVtY2hlY2s6IFNNczogJXMgPSAlZCAoJWxkaywgJWxkTSlcbiIsCisgICAgICAiIG1lbWNoZWNrOiBTTXM6ICVzID0gJWQgKCVsdWssICVsdU0pXG4iLAogICAgICAgdHlwZSwKICAgICAgIG5fU01zLAogICAgICAgbl9TTXMgKiBzaXplb2YoU2VjTWFwKSAvIDEwMjRVTCwKQEAgLTY2ODIsMTggKzc1MzIsMTggQEAKICAgICAgICIgbWVtY2hlY2s6IHNhbml0eSBjaGVja3M6ICVkIGNoZWFwLCAlZCBleHBlbnNpdmVcbiIsCiAgICAgICBuX3Nhbml0eV9jaGVhcCwgbl9zYW5pdHlfZXhwZW5zaXZlICk7CiAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAiIG1lbWNoZWNrOiBhdXhtYXBzOiAlbGxkIGF1eG1hcCBlbnRyaWVzICglbGxkaywgJWxsZE0pIGluIHVzZVxuIiwKKyAgICAgICIgbWVtY2hlY2s6IGF1eG1hcHM6ICVsbHUgYXV4bWFwIGVudHJpZXMgKCVsbHVrLCAlbGx1TSkgaW4gdXNlXG4iLAogICAgICAgbl9hdXhtYXBfTDJfbm9kZXMsIAogICAgICAgbl9hdXhtYXBfTDJfbm9kZXMgKiA2NCwgCiAgICAgICBuX2F1eG1hcF9MMl9ub2RlcyAvIDE2ICk7CiAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAiIG1lbWNoZWNrOiBhdXhtYXBzX0wxOiAlbGxkIHNlYXJjaGVzLCAlbGxkIGNtcHMsIHJhdGlvICVsbGQ6MTBcbiIsCisgICAgICAiIG1lbWNoZWNrOiBhdXhtYXBzX0wxOiAlbGx1IHNlYXJjaGVzLCAlbGx1IGNtcHMsIHJhdGlvICVsbHU6MTBcbiIsCiAgICAgICBuX2F1eG1hcF9MMV9zZWFyY2hlcywgbl9hdXhtYXBfTDFfY21wcywKICAgICAgICgxMFVMTCAqIG5fYXV4bWFwX0wxX2NtcHMpIAogICAgICAgICAgLyAobl9hdXhtYXBfTDFfc2VhcmNoZXMgPyBuX2F1eG1hcF9MMV9zZWFyY2hlcyA6IDEpIAogICAgKTsgICAKICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKLSAgICAgICIgbWVtY2hlY2s6IGF1eG1hcHNfTDI6ICVsbGQgc2VhcmNoZXMsICVsbGQgbm9kZXNcbiIsCisgICAgICAiIG1lbWNoZWNrOiBhdXhtYXBzX0wyOiAlbGx1IHNlYXJjaGVzLCAlbGx1IG5vZGVzXG4iLAogICAgICAgbl9hdXhtYXBfTDJfc2VhcmNoZXMsIG5fYXV4bWFwX0wyX25vZGVzCiAgICApOyAgIAogCkBAIC02NzE3LDcgKzc1NjcsNyBAQAogICAgbWF4X3NobWVtX3N6QiAgID0gc2l6ZW9mKHByaW1hcnlfbWFwKSArIG1heF9TTXNfc3pCICsgbWF4X3NlY1ZCaXRfc3pCOwogCiAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCi0gICAgICAiIG1lbWNoZWNrOiBtYXggc2VjIFYgYml0IG5vZGVzOiAgICAlZCAoJWxkaywgJWxkTSlcbiIsCisgICAgICAiIG1lbWNoZWNrOiBtYXggc2VjIFYgYml0IG5vZGVzOiAgICAlZCAoJWx1aywgJWx1TSlcbiIsCiAgICAgICBtYXhfc2VjVkJpdF9ub2RlcywgbWF4X3NlY1ZCaXRfc3pCIC8gMTAyNCwKICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfc2VjVkJpdF9zekIgLyAoMTAyNCAqIDEwMjQpKTsKICAgIFZHXyhtZXNzYWdlKShWZ19EZWJ1Z01zZywKQEAgLTY3MjUsNyArNzU3NSw3IEBACiAgICAgICBzZWNfdmJpdHNfbmV3X25vZGVzICsgc2VjX3ZiaXRzX3VwZGF0ZXMsCiAgICAgICBzZWNfdmJpdHNfbmV3X25vZGVzLCBzZWNfdmJpdHNfdXBkYXRlcyApOwogICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAotICAgICAgIiBtZW1jaGVjazogbWF4IHNoYWRvdyBtZW0gc2l6ZTogICAlbGRrLCAlbGRNXG4iLAorICAgICAgIiBtZW1jaGVjazogbWF4IHNoYWRvdyBtZW0gc2l6ZTogICAlbHVrLCAlbHVNXG4iLAogICAgICAgbWF4X3NobWVtX3N6QiAvIDEwMjQsIG1heF9zaG1lbV9zekIgLyAoMTAyNCAqIDEwMjQpKTsKIAogICAgaWYgKE1DXyhjbG9fbWNfbGV2ZWwpID49IDMpIHsKQEAgLTY3NDUsOCArNzU5NSw4IEBACiAgICAgICAgICAgICAgICAgICAgc3RhdHNfb2NhY2hlTDFfZm91bmRfYXRfTiwKICAgICAgICAgICAgICAgICAgICBzdGF0c19vY2FjaGVMMV9tb3ZlZndkcyApOwogICAgICAgVkdfKG1lc3NhZ2UpKFZnX0RlYnVnTXNnLAotICAgICAgICAgICAgICAgICAgICIgb2NhY2hlTDE6ICUnMTJsdSBzaXplQiAgJScxMnUgdXNlZnVsXG4iLAotICAgICAgICAgICAgICAgICAgIChVV29yZClzaXplb2YoT0NhY2hlKSwKKyAgICAgICAgICAgICAgICAgICAiIG9jYWNoZUwxOiAlJzEybHUgc2l6ZUIgICUnMTJkIHVzZWZ1bFxuIiwKKyAgICAgICAgICAgICAgICAgICAoU2l6ZVQpc2l6ZW9mKE9DYWNoZSksCiAgICAgICAgICAgICAgICAgICAgNCAqIE9DX1czMlNfUEVSX0xJTkUgKiBPQ19MSU5FU19QRVJfU0VUICogT0NfTl9TRVRTICk7CiAgICAgICBWR18obWVzc2FnZSkoVmdfRGVidWdNc2csCiAgICAgICAgICAgICAgICAgICAgIiBvY2FjaGVMMjogJScxMmx1IHJlZnMgICAlJzEybHUgbWlzc2VzXG4iLApAQCAtNjgwOSw3ICs3NjU5LDcgQEAKICAgICAgIHBlcnRhaW4gdG8gaGFyZHdhcmUgbWFwcGVkIGludG8gdGhlIGFkZHJlc3Mgc3BhY2UsIGFuZCBzbyB3ZQogICAgICAgY2FuJ3QgZXhwZWN0IHRoZSBjbGllbnQgdG8gaGF2ZSBnb3QgcmlkIG9mIHRoZW0uICovCiAgICBpZiAoZ0lnbm9yZWRBZGRyZXNzUmFuZ2VzKSB7Ci0gICAgICBXb3JkIGksIG5CYWQgPSAwOworICAgICAgVUludCBpLCBuQmFkID0gMDsKICAgICAgIGZvciAoaSA9IDA7IGkgPCBWR18oc2l6ZVJhbmdlTWFwKShnSWdub3JlZEFkZHJlc3NSYW5nZXMpOyBpKyspIHsKICAgICAgICAgIFVXb3JkIHZhbCAgICAgPSBJQVJfSU5WQUxJRDsKICAgICAgICAgIFVXb3JkIGtleV9taW4gPSB+KFVXb3JkKTA7CkBAIC02ODMxLDggKzc2ODEsOCBAQAogICAgICAgICAgICAgICAgICAiVkFMR1JJTkRfe0RJU0FCTEUsRU5BQkxFfV9FUlJPUl9SRVBPUlRJTkdfSU5fUkFOR0UgbWFjcm9zLlxuIgogICAgICAgICAgICAgKTsKICAgICAgICAgIH0KLSAgICAgICAgIFZHXyh1bXNnKSgiICAgWyVsZF0gIDB4JTAxNmxseC0weCUwMTZsbHggICVzXG4iLAotICAgICAgICAgICAgICAgICAgIGksIChVTG9uZylrZXlfbWluLCAoVUxvbmcpa2V5X21heCwgc2hvd0lBUktpbmQodmFsKSk7CisgICAgICAgICBWR18odW1zZykoIiAgIFsldV0gIDB4JTAxNmx4LTB4JTAxNmx4ICAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICBpLCBrZXlfbWluLCBrZXlfbWF4LCBzaG93SUFSS2luZCh2YWwpKTsKICAgICAgIH0KICAgIH0KIApAQCAtNjg3MCw3ICs3NzIwLDcgQEAKICAgIFZHXyhkZXRhaWxzX3ZlcnNpb24pICAgICAgICAgKE5VTEwpOwogICAgVkdfKGRldGFpbHNfZGVzY3JpcHRpb24pICAgICAoImEgbWVtb3J5IGVycm9yIGRldGVjdG9yIik7CiAgICBWR18oZGV0YWlsc19jb3B5cmlnaHRfYXV0aG9yKSgKLSAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC4iKTsKKyAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC4iKTsKICAgIFZHXyhkZXRhaWxzX2J1Z19yZXBvcnRzX3RvKSAgKFZHX0JVR1NfVE8pOwogICAgVkdfKGRldGFpbHNfYXZnX3RyYW5zbGF0aW9uX3NpemVCKSAoIDY0MCApOwogCkBAIC02OTU5LDYgKzc4MDksMTEgQEAKICAgIFZHXyh0cmFja19wb3N0X3JlZ193cml0ZSkgICAgICAgICAgICAgICAgICAoIG1jX3Bvc3RfcmVnX3dyaXRlICk7CiAgICBWR18odHJhY2tfcG9zdF9yZWdfd3JpdGVfY2xpZW50Y2FsbF9yZXR1cm4pKCBtY19wb3N0X3JlZ193cml0ZV9jbGllbnRjYWxsICk7CiAKKyAgIGlmIChNQ18oY2xvX21jX2xldmVsKSA+PSAyKSB7CisgICAgICBWR18odHJhY2tfY29weV9tZW1fdG9fcmVnKSAgKCBtY19jb3B5X21lbV90b19yZWcgKTsKKyAgICAgIFZHXyh0cmFja19jb3B5X3JlZ190b19tZW0pICAoIG1jX2NvcHlfcmVnX3RvX21lbSApOworICAgfQorCiAgICBWR18obmVlZHNfd2F0Y2hwb2ludCkgICAgICAgICAgKCBtY19tYXJrX3VuYWRkcmVzc2FibGVfZm9yX3dhdGNocG9pbnQgKTsKIAogICAgaW5pdF9zaGFkb3dfbWVtb3J5KCk7CmRpZmYgLS1naXQgYS9tZW1jaGVjay9tY19tYWxsb2Nfd3JhcHBlcnMuYyBiL21lbWNoZWNrL21jX21hbGxvY193cmFwcGVycy5jCmluZGV4IDYzMGM5YzcuLjA4ZmNjMmQgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL21jX21hbGxvY193cmFwcGVycy5jCisrKyBiL21lbWNoZWNrL21jX21hbGxvY193cmFwcGVycy5jCkBAIC04LDcgKzgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTWVtQ2hlY2ssIGEgaGVhdnl3ZWlnaHQgVmFsZ3JpbmQgdG9vbCBmb3IKICAgIGRldGVjdGluZyBtZW1vcnkgZXJyb3JzLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkIAorICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUgSnVsaWFuIFNld2FyZCAKICAgICAgIGpzZXdhcmRAYWNtLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02ODAsNyArNjgwLDcgQEAKICAgIE1DX01lbXBvb2wqIG1wOwogCiAgICBpZiAoVkdfKGNsb192ZXJib3NpdHkpID4gMikgewotICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJjcmVhdGVfbWVtcG9vbCgweCVseCwgJWQsICVkKVxuIiwKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAiY3JlYXRlX21lbXBvb2woMHglbHgsICV1LCAlZClcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9vbCwgcnpCLCBpc196ZXJvZWQpOwogICAgICAgVkdfKGdldF9hbmRfcHBfU3RhY2tUcmFjZSkKICAgICAgICAgIChWR18oZ2V0X3J1bm5pbmdfdGlkKSgpLCBNRU1QT09MX0RFQlVHX1NUQUNLVFJBQ0VfREVQVEgpOwpAQCAtNzc5LDcgKzc3OSw3IEBACiAJIH0KIAkgCiAgICAgICAgICBWR18obWVzc2FnZSkoVmdfVXNlck1zZywgCi0gICAgICAgICAgICAgICAgICAgICAgIlRvdGFsIG1lbXBvb2xzIGFjdGl2ZTogJWQgcG9vbHMsICVkIGNodW5rc1xuIiwgCisgICAgICAgICAgICAgICAgICAgICAgIlRvdGFsIG1lbXBvb2xzIGFjdGl2ZTogJXUgcG9vbHMsICV1IGNodW5rc1xuIiwgCiAJCSAgICAgIHRvdGFsX3Bvb2xzLCB0b3RhbF9jaHVua3MpOwogCSB0aWNrID0gMDsKICAgICAgICB9CkBAIC03OTIsNyArNzkyLDcgQEAKICAgIGZvciAoaSA9IDA7IGkgPCBuX2NodW5rcy0xOyBpKyspIHsKICAgICAgIGlmIChjaHVua3NbaV0tPmRhdGEgPiBjaHVua3NbaSsxXS0+ZGF0YSkgewogICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csIAotICAgICAgICAgICAgICAgICAgICAgICJNZW1wb29sIGNodW5rICVkIC8gJWQgaXMgb3V0IG9mIG9yZGVyICIKKyAgICAgICAgICAgICAgICAgICAgICAiTWVtcG9vbCBjaHVuayAldSAvICV1IGlzIG91dCBvZiBvcmRlciAiCiAgICAgICAgICAgICAgICAgICAgICAgIndydC4gaXRzIHN1Y2Nlc3NvclxuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgaSsxLCBuX2NodW5rcyk7CiAgICAgICAgICBiYWQgPSAxOwpAQCAtODAzLDcgKzgwMyw3IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgbl9jaHVua3MtMTsgaSsrKSB7CiAgICAgICBpZiAoY2h1bmtzW2ldLT5kYXRhICsgY2h1bmtzW2ldLT5zekIgPiBjaHVua3NbaSsxXS0+ZGF0YSApIHsKICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAKLSAgICAgICAgICAgICAgICAgICAgICAiTWVtcG9vbCBjaHVuayAlZCAvICVkIG92ZXJsYXBzIHdpdGggaXRzIHN1Y2Nlc3NvclxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgIk1lbXBvb2wgY2h1bmsgJXUgLyAldSBvdmVybGFwcyB3aXRoIGl0cyBzdWNjZXNzb3JcbiIsIAogICAgICAgICAgICAgICAgICAgICAgIGkrMSwgbl9jaHVua3MpOwogICAgICAgICAgYmFkID0gMTsKICAgICAgIH0KQEAgLTgxMSwxMSArODExLDExIEBACiAKICAgIGlmIChiYWQpIHsKICAgICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAKLSAgICAgICAgICAgICAgICAiQmFkIG1lbXBvb2wgKCVkIGNodW5rcyksIGR1bXBpbmcgY2h1bmtzIGZvciBpbnNwZWN0aW9uOlxuIiwKKyAgICAgICAgICAgICAgICAiQmFkIG1lbXBvb2wgKCV1IGNodW5rcyksIGR1bXBpbmcgY2h1bmtzIGZvciBpbnNwZWN0aW9uOlxuIiwKICAgICAgICAgICAgICAgICBuX2NodW5rcyk7CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbl9jaHVua3M7ICsraSkgewogICAgICAgICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csIAotICAgICAgICAgICAgICAgICAgICAgICAgICJNZW1wb29sIGNodW5rICVkIC8gJWQ6ICVsZCBieXRlcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgIk1lbXBvb2wgY2h1bmsgJXUgLyAldTogJWx1IGJ5dGVzICIKICAgICAgICAgICAgICAgICAgICAgICAgICAiWyVseCwlbHgpLCBhbGxvY2F0ZWQ6XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIGkrMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgbl9jaHVua3MsIApAQCAtODM0LDcgKzgzNCw3IEBACiAgICBNQ19NZW1wb29sKiBtcDsKIAogICAgaWYgKFZHXyhjbG9fdmVyYm9zaXR5KSA+IDIpIHsgICAgIAotICAgICAgVkdfKG1lc3NhZ2UpKFZnX1VzZXJNc2csICJtZW1wb29sX2FsbG9jKDB4JWx4LCAweCVseCwgJWxkKVxuIiwKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAibWVtcG9vbF9hbGxvYygweCVseCwgMHglbHgsICVsdSlcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9vbCwgYWRkciwgc3pCKTsKICAgICAgIFZHXyhnZXRfYW5kX3BwX1N0YWNrVHJhY2UpICh0aWQsIE1FTVBPT0xfREVCVUdfU1RBQ0tUUkFDRV9ERVBUSCk7CiAgICB9CkBAIC04ODQsNyArODg0LDcgQEAKIAogICAgaWYgKFZHXyhjbG9fdmVyYm9zaXR5KSA+IDIpIHsKICAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAKLQkJICAgIm1lbXBvb2xfZnJlZSgweCVseCwgMHglbHgpIGZyZWVkIGNodW5rIG9mICVsZCBieXRlc1xuIiwKKwkJICAgIm1lbXBvb2xfZnJlZSgweCVseCwgMHglbHgpIGZyZWVkIGNodW5rIG9mICVsdSBieXRlc1xuIiwKIAkJICAgcG9vbCwgYWRkciwgbWMtPnN6QiArIDBVTCk7CiAgICB9CiAKQEAgLTkwMiw3ICs5MDIsNyBAQAogICAgVmdIYXNoTm9kZSoqIGNodW5rczsKIAogICAgaWYgKFZHXyhjbG9fdmVyYm9zaXR5KSA+IDIpIHsKLSAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAibWVtcG9vbF90cmltKDB4JWx4LCAweCVseCwgJWxkKVxuIiwKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAibWVtcG9vbF90cmltKDB4JWx4LCAweCVseCwgJWx1KVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb29sLCBhZGRyLCBzekIpOwogICAgICAgVkdfKGdldF9hbmRfcHBfU3RhY2tUcmFjZSkgKHRpZCwgTUVNUE9PTF9ERUJVR19TVEFDS1RSQUNFX0RFUFRIKTsKICAgIH0KQEAgLTEwMzYsNyArMTAzNiw3IEBACiAgICBUaHJlYWRJZCAgICAgdGlkID0gVkdfKGdldF9ydW5uaW5nX3RpZCkoKTsKIAogICAgaWYgKFZHXyhjbG9fdmVyYm9zaXR5KSA+IDIpIHsKLSAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAibWVtcG9vbF9jaGFuZ2UoMHglbHgsIDB4JWx4LCAweCVseCwgJWxkKVxuIiwKKyAgICAgIFZHXyhtZXNzYWdlKShWZ19Vc2VyTXNnLCAibWVtcG9vbF9jaGFuZ2UoMHglbHgsIDB4JWx4LCAweCVseCwgJWx1KVxuIiwKICAgICAgICAgICAgICAgICAgICBwb29sLCBhZGRyQSwgYWRkckIsIHN6Qik7CiAgICAgICBWR18oZ2V0X2FuZF9wcF9TdGFja1RyYWNlKSAodGlkLCBNRU1QT09MX0RFQlVHX1NUQUNLVFJBQ0VfREVQVEgpOwogICAgfQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svbWNfcmVwbGFjZV9zdHJtZW0uYyBiL21lbWNoZWNrL21jX3JlcGxhY2Vfc3RybWVtLmMKaW5kZXggZGYwYjIyYy4uMmZkZGM5MCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svbWNfcmVwbGFjZV9zdHJtZW0uYworKysgYi9tZW1jaGVjay9tY19yZXBsYWNlX3N0cm1lbS5jCkBAIC05LDcgKzksNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTWVtQ2hlY2ssIGEgaGVhdnl3ZWlnaHQgVmFsZ3JpbmQgdG9vbCBmb3IKICAgIGRldGVjdGluZyBtZW1vcnkgZXJyb3JzLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svbWNfdHJhbnNsYXRlLmMgYi9tZW1jaGVjay9tY190cmFuc2xhdGUuYwppbmRleCA4OTJiNDNiLi40MzU4ZDJlIDEwMDY0NAotLS0gYS9tZW1jaGVjay9tY190cmFuc2xhdGUuYworKysgYi9tZW1jaGVjay9tY190cmFuc2xhdGUuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCiAgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZCAKKyAgIENvcHlyaWdodCAoQykgMjAwMC0yMDE1IEp1bGlhbiBTZXdhcmQgCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzc4NSw2ICszNzg1LDEwIEBACiAgICAgICAgICAvKiBJMzIocm0pIHggRDEyOCAtPiBEMTI4ICovCiAgICAgICAgICByZXR1cm4gbWtMYXp5MihtY2UsIEl0eV9JMTI4LCB2YXRvbTEsIHZhdG9tMik7CiAKKyAgICAgIGNhc2UgSW9wX1JvdW5kRjEyOHRvSW50OgorICAgICAgICAgLyogSTMyKHJtKSB4IEYxMjggLT4gRjEyOCAqLworICAgICAgICAgcmV0dXJuIG1rTGF6eTIobWNlLCBJdHlfSTEyOCwgdmF0b20xLCB2YXRvbTIpOworCiAgICAgICBjYXNlIElvcF9ENjR0b0k2NFM6CiAgICAgICBjYXNlIElvcF9ENjR0b0k2NFU6CiAgICAgICBjYXNlIElvcF9JNjRTdG9ENjQ6CkBAIC00NzI4LDcgKzQ3MzIsNyBAQAogICAgICAgZGktPmd1YXJkID0gZ3VhcmQ7CiAgICAgICAvKiBJZGVhbGx5IHRoZSBkaWRuJ3QtaGFwcGVuIHJldHVybiB2YWx1ZSBoZXJlIHdvdWxkIGJlIGFsbC1vbmVzCiAgICAgICAgICAoYWxsLXVuZGVmaW5lZCksIHNvIGl0J2QgYmUgb2J2aW91cyBpZiBpdCBnb3QgdXNlZAotICAgICAgICAgaW5hZHZlcnRhbnRseS4gIFdlIGNhbiBnZXQgYnkgd2l0aCB0aGUgSVItbWFuZGF0ZWQgZGVmYXVsdAorICAgICAgICAgaW5hZHZlcnRlbnRseS4gIFdlIGNhbiBnZXQgYnkgd2l0aCB0aGUgSVItbWFuZGF0ZWQgZGVmYXVsdAogICAgICAgICAgdmFsdWUgKDBiMDEgcmVwZWF0aW5nLCAweDU1IGV0YykgYXMgdGhhdCdsbCBzdGlsbCBsb29rIHByZXR0eQogICAgICAgICAgdW5kZWZpbmVkIGlmIGl0IGV2ZXIgbGVha3Mgb3V0LiAqLwogICAgfQpAQCAtNjA3MywxMiArNjA3NywxMyBAQAogICAgSVJPcCAgIHZ3aWRlbiAgID0gSW9wX0lOVkFMSUQ7CiAgICBJUlR5cGUgbG9hZGVkVHkgPSBJdHlfSU5WQUxJRDsKICAgIHN3aXRjaCAobGctPmN2dCkgewotICAgICAgY2FzZSBJTEdvcF9JZGVudDY0OiBsb2FkZWRUeSA9IEl0eV9JNjQ7IHZ3aWRlbiA9IElvcF9JTlZBTElEOyBicmVhazsKLSAgICAgIGNhc2UgSUxHb3BfSWRlbnQzMjogbG9hZGVkVHkgPSBJdHlfSTMyOyB2d2lkZW4gPSBJb3BfSU5WQUxJRDsgYnJlYWs7Ci0gICAgICBjYXNlIElMR29wXzE2VXRvMzI6IGxvYWRlZFR5ID0gSXR5X0kxNjsgdndpZGVuID0gSW9wXzE2VXRvMzI7IGJyZWFrOwotICAgICAgY2FzZSBJTEdvcF8xNlN0bzMyOiBsb2FkZWRUeSA9IEl0eV9JMTY7IHZ3aWRlbiA9IElvcF8xNlN0bzMyOyBicmVhazsKLSAgICAgIGNhc2UgSUxHb3BfOFV0bzMyOiAgbG9hZGVkVHkgPSBJdHlfSTg7ICB2d2lkZW4gPSBJb3BfOFV0bzMyOyAgYnJlYWs7Ci0gICAgICBjYXNlIElMR29wXzhTdG8zMjogIGxvYWRlZFR5ID0gSXR5X0k4OyAgdndpZGVuID0gSW9wXzhTdG8zMjsgIGJyZWFrOworICAgICAgY2FzZSBJTEdvcF9JZGVudFYxMjg6IGxvYWRlZFR5ID0gSXR5X1YxMjg7IHZ3aWRlbiA9IElvcF9JTlZBTElEOyBicmVhazsKKyAgICAgIGNhc2UgSUxHb3BfSWRlbnQ2NDogICBsb2FkZWRUeSA9IEl0eV9JNjQ7ICB2d2lkZW4gPSBJb3BfSU5WQUxJRDsgYnJlYWs7CisgICAgICBjYXNlIElMR29wX0lkZW50MzI6ICAgbG9hZGVkVHkgPSBJdHlfSTMyOyAgdndpZGVuID0gSW9wX0lOVkFMSUQ7IGJyZWFrOworICAgICAgY2FzZSBJTEdvcF8xNlV0bzMyOiAgIGxvYWRlZFR5ID0gSXR5X0kxNjsgIHZ3aWRlbiA9IElvcF8xNlV0bzMyOyBicmVhazsKKyAgICAgIGNhc2UgSUxHb3BfMTZTdG8zMjogICBsb2FkZWRUeSA9IEl0eV9JMTY7ICB2d2lkZW4gPSBJb3BfMTZTdG8zMjsgYnJlYWs7CisgICAgICBjYXNlIElMR29wXzhVdG8zMjogICAgbG9hZGVkVHkgPSBJdHlfSTg7ICAgdndpZGVuID0gSW9wXzhVdG8zMjsgIGJyZWFrOworICAgICAgY2FzZSBJTEdvcF84U3RvMzI6ICAgIGxvYWRlZFR5ID0gSXR5X0k4OyAgIHZ3aWRlbiA9IElvcF84U3RvMzI7ICBicmVhazsKICAgICAgIGRlZmF1bHQ6IFZHXyh0b29sX3BhbmljKSgiZG9fc2hhZG93X0xvYWRHIik7CiAgICB9CiAKQEAgLTYyNTEsNyArNjI1Niw2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBJUlR5cGUgZ1dvcmRUeSwgSVJUeXBlIGhXb3JkVHkgKQogewogICAgQm9vbCAgICB2ZXJib3plID0gMHx8RmFsc2U7Ci0gICBCb29sICAgIGJvZ3VzOwogICAgSW50ICAgICBpLCBqLCBmaXJzdF9zdG10OwogICAgSVJTdG10KiBzdDsKICAgIE1DRW52ICAgbWNlOwpAQCAtNjMxMywzMyArNjMxNywzNiBAQAogICAgfQogICAgdGxfYXNzZXJ0KCBWR18oc2l6ZVhBKSggbWNlLnRtcE1hcCApID09IHNiX2luLT50eWVudi0+dHlwZXNfdXNlZCApOwogCi0gICAvKiBNYWtlIGEgcHJlbGltaW5hcnkgaW5zcGVjdGlvbiBvZiB0aGUgc3RhdGVtZW50cywgdG8gc2VlIGlmIHRoZXJlCi0gICAgICBhcmUgYW55IGRvZGd5LWxvb2tpbmcgbGl0ZXJhbHMuICBJZiB0aGVyZSBhcmUsIHdlIGdlbmVyYXRlCi0gICAgICBleHRyYS1kZXRhaWxlZCAoaGVuY2UgZXh0cmEtZXhwZW5zaXZlKSBpbnN0cnVtZW50YXRpb24gaW4KLSAgICAgIHBsYWNlcy4gIFNjYW4gdGhlIHdob2xlIGJiIGV2ZW4gaWYgZG9kZ3luZXNzIGlzIGZvdW5kIGVhcmxpZXIsCi0gICAgICBzbyB0aGF0IHRoZSBmbGF0bmVzcyBhc3NlcnRpb24gaXMgYXBwbGllZCB0byBhbGwgc3RtdHMuICovCisgICBpZiAoTUNfKGNsb19leHBlbnNpdmVfZGVmaW5lZG5lc3NfY2hlY2tzKSkgeworICAgICAgLyogRm9yIGV4cGVuc2l2ZSBkZWZpbmVkbmVzcyBjaGVja2luZyBza2lwIGxvb2tpbmcgZm9yIGJvZ3VzCisgICAgICAgICBsaXRlcmFscy4gKi8KKyAgICAgIG1jZS5ib2d1c0xpdGVyYWxzID0gVHJ1ZTsKKyAgIH0gZWxzZSB7CisgICAgICAvKiBNYWtlIGEgcHJlbGltaW5hcnkgaW5zcGVjdGlvbiBvZiB0aGUgc3RhdGVtZW50cywgdG8gc2VlIGlmIHRoZXJlCisgICAgICAgICBhcmUgYW55IGRvZGd5LWxvb2tpbmcgbGl0ZXJhbHMuICBJZiB0aGVyZSBhcmUsIHdlIGdlbmVyYXRlCisgICAgICAgICBleHRyYS1kZXRhaWxlZCAoaGVuY2UgZXh0cmEtZXhwZW5zaXZlKSBpbnN0cnVtZW50YXRpb24gaW4KKyAgICAgICAgIHBsYWNlcy4gIFNjYW4gdGhlIHdob2xlIGJiIGV2ZW4gaWYgZG9kZ3luZXNzIGlzIGZvdW5kIGVhcmxpZXIsCisgICAgICAgICBzbyB0aGF0IHRoZSBmbGF0bmVzcyBhc3NlcnRpb24gaXMgYXBwbGllZCB0byBhbGwgc3RtdHMuICovCisgICAgICBCb29sIGJvZ3VzID0gRmFsc2U7CiAKLSAgIGJvZ3VzID0gRmFsc2U7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgc2JfaW4tPnN0bXRzX3VzZWQ7IGkrKykgeworICAgICAgICAgc3QgPSBzYl9pbi0+c3RtdHNbaV07CisgICAgICAgICB0bF9hc3NlcnQoc3QpOworICAgICAgICAgdGxfYXNzZXJ0KGlzRmxhdElSU3RtdChzdCkpOwogCi0gICBmb3IgKGkgPSAwOyBpIDwgc2JfaW4tPnN0bXRzX3VzZWQ7IGkrKykgewotCi0gICAgICBzdCA9IHNiX2luLT5zdG10c1tpXTsKLSAgICAgIHRsX2Fzc2VydChzdCk7Ci0gICAgICB0bF9hc3NlcnQoaXNGbGF0SVJTdG10KHN0KSk7Ci0KLSAgICAgIGlmICghYm9ndXMpIHsKLSAgICAgICAgIGJvZ3VzID0gY2hlY2tGb3JCb2d1c0xpdGVyYWxzKHN0KTsKLSAgICAgICAgIGlmICgwICYmIGJvZ3VzKSB7Ci0gICAgICAgICAgICBWR18ocHJpbnRmKSgiYm9ndXM6ICIpOwotICAgICAgICAgICAgcHBJUlN0bXQoc3QpOwotICAgICAgICAgICAgVkdfKHByaW50ZikoIlxuIik7CisgICAgICAgICBpZiAoIWJvZ3VzKSB7CisgICAgICAgICAgICBib2d1cyA9IGNoZWNrRm9yQm9ndXNMaXRlcmFscyhzdCk7CisgICAgICAgICAgICBpZiAoMCAmJiBib2d1cykgeworICAgICAgICAgICAgICAgVkdfKHByaW50ZikoImJvZ3VzOiAiKTsKKyAgICAgICAgICAgICAgIHBwSVJTdG10KHN0KTsKKyAgICAgICAgICAgICAgIFZHXyhwcmludGYpKCJcbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJvZ3VzKSBicmVhazsKICAgICAgICAgIH0KICAgICAgIH0KLQorICAgICAgbWNlLmJvZ3VzTGl0ZXJhbHMgPSBib2d1czsKICAgIH0KIAotICAgbWNlLmJvZ3VzTGl0ZXJhbHMgPSBib2d1czsKLQogICAgLyogQ29weSB2ZXJiYXRpbSBhbnkgSVIgcHJlYW1ibGUgcHJlY2VkaW5nIHRoZSBmaXJzdCBJTWFyayAqLwogCiAgICB0bF9hc3NlcnQobWNlLnNiID09IHNiX291dCk7CkBAIC02Nzg2LDcgKzY3OTMsNyBAQAogICAgICAgZGktPmd1YXJkID0gZ3VhcmQ7CiAgICAgICAvKiBJZGVhbGx5IHRoZSBkaWRuJ3QtaGFwcGVuIHJldHVybiB2YWx1ZSBoZXJlIHdvdWxkIGJlCiAgICAgICAgICBhbGwtemVyb2VzICh1bmtub3duLW9yaWdpbiksIHNvIGl0J2QgYmUgaGFybWxlc3MgaWYgaXQgZ290Ci0gICAgICAgICB1c2VkIGluYWR2ZXJ0YW50bHkuICBXZSBzbHVtIGl0IG91dCB3aXRoIHRoZSBJUi1tYW5kYXRlZAorICAgICAgICAgdXNlZCBpbmFkdmVydGVudGx5LiAgV2Ugc2x1bSBpdCBvdXQgd2l0aCB0aGUgSVItbWFuZGF0ZWQKICAgICAgICAgIGRlZmF1bHQgdmFsdWUgKDBiMDEgcmVwZWF0aW5nLCAweDU1IGV0YykgYXMgdGhhdCdsbCBwcm9iYWJseQogICAgICAgICAgdHJ1bXAgYWxsIGxlZ2l0aW1hdGUgb3RhZ3MgdmlhIE1heDMyLCBhbmQgaXQncyBwcmV0dHkKICAgICAgICAgIG9idmlvdXNseSBib2d1cy4gKi8KQEAgLTczMDksMTIgKzczMTYsMTMgQEAKIHsKICAgIElSVHlwZSBsb2FkZWRUeSA9IEl0eV9JTlZBTElEOwogICAgc3dpdGNoIChsZy0+Y3Z0KSB7Ci0gICAgICBjYXNlIElMR29wX0lkZW50NjQ6IGxvYWRlZFR5ID0gSXR5X0k2NDsgYnJlYWs7Ci0gICAgICBjYXNlIElMR29wX0lkZW50MzI6IGxvYWRlZFR5ID0gSXR5X0kzMjsgYnJlYWs7Ci0gICAgICBjYXNlIElMR29wXzE2VXRvMzI6IGxvYWRlZFR5ID0gSXR5X0kxNjsgYnJlYWs7Ci0gICAgICBjYXNlIElMR29wXzE2U3RvMzI6IGxvYWRlZFR5ID0gSXR5X0kxNjsgYnJlYWs7Ci0gICAgICBjYXNlIElMR29wXzhVdG8zMjogIGxvYWRlZFR5ID0gSXR5X0k4OyAgYnJlYWs7Ci0gICAgICBjYXNlIElMR29wXzhTdG8zMjogIGxvYWRlZFR5ID0gSXR5X0k4OyAgYnJlYWs7CisgICAgICBjYXNlIElMR29wX0lkZW50VjEyODogbG9hZGVkVHkgPSBJdHlfVjEyODsgYnJlYWs7CisgICAgICBjYXNlIElMR29wX0lkZW50NjQ6ICAgbG9hZGVkVHkgPSBJdHlfSTY0OyAgYnJlYWs7CisgICAgICBjYXNlIElMR29wX0lkZW50MzI6ICAgbG9hZGVkVHkgPSBJdHlfSTMyOyAgYnJlYWs7CisgICAgICBjYXNlIElMR29wXzE2VXRvMzI6ICAgbG9hZGVkVHkgPSBJdHlfSTE2OyAgYnJlYWs7CisgICAgICBjYXNlIElMR29wXzE2U3RvMzI6ICAgbG9hZGVkVHkgPSBJdHlfSTE2OyAgYnJlYWs7CisgICAgICBjYXNlIElMR29wXzhVdG8zMjogICAgbG9hZGVkVHkgPSBJdHlfSTg7ICAgYnJlYWs7CisgICAgICBjYXNlIElMR29wXzhTdG8zMjogICAgbG9hZGVkVHkgPSBJdHlfSTg7ICAgYnJlYWs7CiAgICAgICBkZWZhdWx0OiBWR18odG9vbF9wYW5pYykoInNjaGVtZVMuSVJMb2FkRyIpOwogICAgfQogICAgSVJBdG9tKiBvcmlfYWx0CmRpZmYgLS1naXQgYS9tZW1jaGVjay9tZW1jaGVjay5oIGIvbWVtY2hlY2svbWVtY2hlY2suaAppbmRleCAyNzQwNTc4Li44MTE5MzBlIDEwMDY0NAotLS0gYS9tZW1jaGVjay9tZW1jaGVjay5oCisrKyBiL21lbWNoZWNrL21lbWNoZWNrLmgKQEAgLTEzLDcgKzEzLDcgQEAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCiAgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMgSnVsaWFuIFNld2FyZC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL01ha2VmaWxlLmFtIGIvbWVtY2hlY2svdGVzdHMvTWFrZWZpbGUuYW0KaW5kZXggZjE3NzE2Ny4uNjhkOWNhMSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvTWFrZWZpbGUuYW0KKysrIGIvbWVtY2hlY2svdGVzdHMvTWFrZWZpbGUuYW0KQEAgLTI3LDYgKzI3LDkgQEAKIGlmIFZHQ09ORl9PU19JU19EQVJXSU4KIFNVQkRJUlMgKz0gZGFyd2luCiBlbmRpZgoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK1NVQkRJUlMgKz0gc29sYXJpcworZW5kaWYKIAogIyBQbGF0Zm9ybS1zcGVjaWZpYyB0ZXN0cwogaWYgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1g4Nl9MSU5VWApAQCAtMzUsOSArMzgsMTYgQEAKIGlmIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9BTUQ2NF9MSU5VWAogU1VCRElSUyArPSBhbWQ2NC1saW51eAogZW5kaWYKK2lmIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9YODZfU09MQVJJUworU1VCRElSUyArPSB4ODYtc29sYXJpcworZW5kaWYKK2lmIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9BTUQ2NF9TT0xBUklTCitTVUJESVJTICs9IGFtZDY0LXNvbGFyaXMKK2VuZGlmCiAKIERJU1RfU1VCRElSUyA9IHg4NiBhbWQ2NCBwcGMzMiBwcGM2NCBzMzkweCBsaW51eCBcCi0JCWRhcndpbiB4ODYtbGludXggYW1kNjQtbGludXggY29tbW9uIC4KKwkJZGFyd2luIHNvbGFyaXMgeDg2LWxpbnV4IGFtZDY0LWxpbnV4IHg4Ni1zb2xhcmlzIGFtZDY0LXNvbGFyaXMgXAorCQljb21tb24gLgogCiBkaXN0X25vaW5zdF9TQ1JJUFRTID0gXAogCWZpbHRlcl9hZGRyZXNzYWJsZSBcCkBAIC03NCw2ICs4NCw3IEBACiAJCWJ1Zmxlbl9jaGVjay5zdGRlcnIuZXhwLWtmYWlsIFwKIAlidWcxNTUxMjUuc3RkZXJyLmV4cCBidWcxNTUxMjUudmd0ZXN0IFwKIAlidWcyODcyNjAuc3RkZXJyLmV4cCBidWcyODcyNjAudmd0ZXN0IFwKKwlidWczNDAzOTIuc3RkZXJyLmV4cCBidWczNDAzOTIudmd0ZXN0IFwKIAljYWxsb2Mtb3ZlcmZsb3cuc3RkZXJyLmV4cCBjYWxsb2Mtb3ZlcmZsb3cudmd0ZXN0XAogCWNsaWVudC1tc2cuc3RkZXJyLmV4cCBjbGllbnQtbXNnLnZndGVzdCBcCiAJY2xpZW50LW1zZy1hcy14bWwuc3RkZXJyLmV4cCBjbGllbnQtbXNnLWFzLXhtbC52Z3Rlc3QgXApAQCAtOTgsNyArMTA5LDcgQEAKIAlkZXNjcmliZS1ibG9jay5zdGRlcnIuZXhwIGRlc2NyaWJlLWJsb2NrLnZndGVzdCBcCiAJZGVzY3JfYmVsb3dzcC52Z3Rlc3QgZGVzY3JfYmVsb3dzcC5zdGRlcnIuZXhwIFwKIAlkb3VibGVmcmVlLnN0ZGVyci5leHAgZG91YmxlZnJlZS52Z3Rlc3QgXAotCWR3NC52Z3Rlc3QgZHc0LnN0ZGVyci5leHAgZHc0LnN0ZG91dC5leHAgXAorCWR3NC52Z3Rlc3QgZHc0LnN0ZGVyci5leHAgZHc0LnN0ZGVyci5leHAtc29sYXJpcyBkdzQuc3Rkb3V0LmV4cCBcCiAJZXJyX2Rpc2FibGUxLnZndGVzdCBlcnJfZGlzYWJsZTEuc3RkZXJyLmV4cCBcCiAJZXJyX2Rpc2FibGUyLnZndGVzdCBlcnJfZGlzYWJsZTIuc3RkZXJyLmV4cCBcCiAJZXJyX2Rpc2FibGUzLnZndGVzdCBlcnJfZGlzYWJsZTMuc3RkZXJyLmV4cCBcCkBAIC0yMTksMTMgKzIzMCwxMyBAQAogCXJlc3ZuX3N0YWNrLnN0ZGVyci5leHAgcmVzdm5fc3RhY2sudmd0ZXN0IFwKIAlzYmZyYWdtZW50LnN0ZG91dC5leHAgc2JmcmFnbWVudC5zdGRlcnIuZXhwIHNiZnJhZ21lbnQudmd0ZXN0IFwKIAlzZW0uc3RkZXJyLmV4cCBzZW0udmd0ZXN0IFwKLQlzZW5kbXNnLnN0ZGVyci5leHAgc2VuZG1zZy52Z3Rlc3QgXAorCXNlbmRtc2cuc3RkZXJyLmV4cCBzZW5kbXNnLnN0ZGVyci5leHAtc29sYXJpcyBzZW5kbXNnLnZndGVzdCBcCiAJc2gtbWVtLnN0ZGVyci5leHAgc2gtbWVtLnZndGVzdCBcCiAJc2gtbWVtLXJhbmRvbS5zdGRlcnIuZXhwIHNoLW1lbS1yYW5kb20uc3Rkb3V0LmV4cDY0IFwKIAlzaC1tZW0tcmFuZG9tLnN0ZG91dC5leHAgc2gtbWVtLXJhbmRvbS52Z3Rlc3QgXAogCXNpZ2FsdHN0YWNrLnN0ZGVyci5leHAgc2lnYWx0c3RhY2sudmd0ZXN0IFwKIAlzaWdraWxsLnN0ZGVyci5leHAgc2lna2lsbC5zdGRlcnIuZXhwLWRhcndpbiBzaWdraWxsLnN0ZGVyci5leHAtbWlwczMyIFwKLQlzaWdraWxsLnZndGVzdCBcCisJICAgIHNpZ2tpbGwuc3RkZXJyLmV4cC1zb2xhcmlzIHNpZ2tpbGwudmd0ZXN0IFwKIAlzaWduYWwyLnN0ZGVyci5leHAgc2lnbmFsMi5zdGRvdXQuZXhwIHNpZ25hbDIudmd0ZXN0IFwKIAlzaWdwcm9jbWFzay5zdGRlcnIuZXhwIHNpZ3Byb2NtYXNrLnN0ZGVyci5leHAyIHNpZ3Byb2NtYXNrLnZndGVzdCBcCiAJc3RhdGljX21hbGxvYy5zdGRlcnIuZXhwIHN0YXRpY19tYWxsb2Mudmd0ZXN0IFwKQEAgLTI2OCw3ICsyNzksOCBAQAogCXZjcHVfYnoyLnN0ZG91dC5leHAgdmNwdV9iejIuc3RkZXJyLmV4cCB2Y3B1X2J6Mi52Z3Rlc3QgXAogCXZjcHVfZmJlbmNoLnN0ZG91dC5leHAgdmNwdV9mYmVuY2guc3RkZXJyLmV4cCB2Y3B1X2ZiZW5jaC52Z3Rlc3QgXAogCXZjcHVfZm5mbnMuc3Rkb3V0LmV4cCB2Y3B1X2ZuZm5zLnN0ZG91dC5leHAtZ2xpYmMyOC1hbWQ2NCBcCi0JdmNwdV9mbmZucy5zdGRvdXQuZXhwLWRhcndpbiB2Y3B1X2ZuZm5zLnN0ZGVyci5leHAgdmNwdV9mbmZucy52Z3Rlc3QgXAorCXZjcHVfZm5mbnMuc3Rkb3V0LmV4cC1kYXJ3aW4gdmNwdV9mbmZucy5zdGRvdXQuZXhwLXNvbGFyaXMgXAorCXZjcHVfZm5mbnMuc3RkZXJyLmV4cCB2Y3B1X2ZuZm5zLnZndGVzdCBcCiAJd2NzLnZndGVzdCB3Y3Muc3RkZXJyLmV4cCB3Y3Muc3Rkb3V0LmV4cCBcCiAJd3JhcDEudmd0ZXN0IHdyYXAxLnN0ZG91dC5leHAgd3JhcDEuc3RkZXJyLmV4cCBcCiAJd3JhcDIudmd0ZXN0IHdyYXAyLnN0ZG91dC5leHAgd3JhcDIuc3RkZXJyLmV4cCBcCkBAIC0yNzksNyArMjkxLDcgQEAKIAl3cmFwNy52Z3Rlc3Qgd3JhcDcuc3Rkb3V0LmV4cCB3cmFwNy5zdGRlcnIuZXhwIFwKIAl3cmFwOC52Z3Rlc3Qgd3JhcDguc3Rkb3V0LmV4cCB3cmFwOC5zdGRlcnIuZXhwIFwKIAl3cmFwOC5zdGRvdXQuZXhwLXBwYzY0IHdyYXA4LnN0ZGVyci5leHAtcHBjNjQgXAotCXdyaXRldjEuc3RkZXJyLmV4cCB3cml0ZXYxLnZndGVzdCBcCisJd3JpdGV2MS5zdGRlcnIuZXhwIHdyaXRldjEuc3RkZXJyLmV4cC1zb2xhcmlzIHdyaXRldjEudmd0ZXN0IFwKIAl4bWwxLnN0ZGVyci5leHAgeG1sMS5zdGRvdXQuZXhwIHhtbDEudmd0ZXN0IHhtbDEuc3RkZXJyLmV4cC1zMzkweC1tdmMgXAogCXRocmVhZG5hbWUudmd0ZXN0IHRocmVhZG5hbWUuc3RkZXJyLmV4cCBcCiAJdGhyZWFkbmFtZV94bWwudmd0ZXN0IHRocmVhZG5hbWVfeG1sLnN0ZGVyci5leHAKQEAgLTI5Nyw2ICszMDksNyBAQAogCWJ1Zmxlbl9jaGVjayBcCiAJYnVnMTU1MTI1IFwKIAlidWcyODcyNjAgXAorCWJ1ZzM0MDM5MiBcCiAJY2FsbG9jLW92ZXJmbG93IFwKIAljbGllbnQtbXNnIFwKIAljbGllbnRwZXJtIFwKQEAgLTMyMyw3ICszMzYsNiBAQAogCWxlYWstcG9vbCBcCiAJbGVhay10cmVlIFwKIAlsZWFrLXNlZ3Ytam1wIFwKLQlsb25nX25hbWVzcGFjZV94bWwgXAogCWxvbmctc3VwcHMgXAogCW1hbGxpbmZvIFwKIAltYWxsb2NfZnJlZV9maWxsIFwKQEAgLTM2NSw2ICszNzcsMTEgQEAKIAl3cmFwMSB3cmFwMiB3cmFwMyB3cmFwNCB3cmFwNSB3cmFwNiB3cmFwNyB3cmFwN3NvLnNvIHdyYXA4IFwKIAl3cml0ZXYxCiAKK2lmICFTT0xBUklTX1NVTl9TVFVESU9fQVMKKyMgU3VuIFN0dWRpbyBhc3NlbWJsZXIgZmFpbHMgb24gIklERU5UIHRvbyBsb25nIgorY2hlY2tfUFJPR1JBTVMgKz0gbG9uZ19uYW1lc3BhY2VfeG1sCitlbmRpZgorCiBpZiBEV0FSRjQKIGNoZWNrX1BST0dSQU1TICs9IGR3NAogZW5kaWYKQEAgLTM5NSwxNyArNDEyLDI2IEBACiBhdG9taWNfaW5jc19DRkxBR1MgPSAkKEFNX0NGTEFHUykKIGVuZGlmCiAKK2lmIFZHQ09ORl9PU19JU19TT0xBUklTCitidWZsZW5fY2hlY2tfTERBREQJPSAtbHNvY2tldCAtbG5zbAorZW5kaWYKKwogbGVha19jcHBfaW50ZXJpb3JfU09VUkNFUwk9IGxlYWtfY3BwX2ludGVyaW9yLmNwcAogCiBkZW1hbmdsZV9TT1VSQ0VTID0gZGVtYW5nbGUuY3BwCiAKK2J1ZzM0MDM5Ml9DRkxBR1MgICAgICAgID0gJChBTV9DRkxBR1MpIC1PMwogZHc0X0NGTEFHUwkJPSAkKEFNX0NGTEFHUykgLWdkd2FyZi00IC1mZGVidWctdHlwZXMtc2VjdGlvbgogCiBkZXNjcl9iZWxvd3NwX0xEQUREICAgICA9IC1scHRocmVhZAogZXJyX2Rpc2FibGUzX0xEQUREIAk9IC1scHRocmVhZAogZXJyX2Rpc2FibGU0X0xEQUREIAk9IC1scHRocmVhZAorZXJyX2Rpc2FibGU0X0NGTEFHUwk9ICQoQU1fQ0ZMQUdTKQoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK2Vycl9kaXNhYmxlNF9DRkxBR1MJKz0gLURfWE9QRU5fU09VUkNFPTUwMAorZW5kaWYKIHJlYWNoX3RocmVhZF9yZWdpc3Rlcl9DRkxBR1MJPSAkKEFNX0NGTEFHUykgLU8yCi1yZWFjaF90aHJlYWRfcmVnaXN0ZXJfTERBREQgICAgID0gLWxwdGhyZWFkCityZWFjaF90aHJlYWRfcmVnaXN0ZXJfTERBREQJPSAtbHB0aHJlYWQKIHRocmVhZF9hbGxvY2FfTERBREQgICAgID0gLWxwdGhyZWFkCiB0aHJlYWRuYW1lX0xEQUREIAk9IC1scHRocmVhZAogCkBAIC00MTksNyArNDQ1LDcgQEAKIAogaW5pdHNfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIEBGTEFHX1dfTk9fVU5JTklUSUFMSVpFREAKIAotaW5saW5mb19DRkxBR1MgPSAkKEFNX0NGTEFHUykgQEZMQUdfV19OT19VTklOSVRJQUxJWkVEQCBARkxBR19XX05PX1NUQVRJQ19MT0NBTF9JTl9JTkxJTkVACitpbmxpbmZvX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtdwogCiBpbmx0ZW1wbGF0ZV9TT1VSQ0VTID0gaW5sdGVtcGxhdGUuY3BwCiBpbmx0ZW1wbGF0ZV9DWFhGTEFHUyA9ICQoQU1fQ1hYRkxBR1MpIEBGTEFHX1dfTk9fVU5JTklUSUFMSVpFREAKQEAgLTQyOCwxMyArNDU0LDIzIEBACiAKIG1hbnVlbDFfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIEBGTEFHX1dfTk9fVU5JTklUSUFMSVpFREAKIAorbWVtYWxpZ24yX0NGTEFHUwk9ICQoQU1fQ0ZMQUdTKQoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK21lbWFsaWduMl9DRkxBR1MJKz0gLXN0ZD1jOTkgLURfX0VYVEVOU0lPTlNfXworZW5kaWYKKwogbWVtY21wdGVzdF9DRkxBR1MJPSAkKEFNX0NGTEFHUykgLWZuby1idWlsdGluLW1lbWNtcAogCiBtaXNtYXRjaGVzX1NPVVJDRVMJPSBtaXNtYXRjaGVzLmNwcAorbWlzbWF0Y2hlc19DWFhGTEFHUwk9ICQoQU1fQ1hYRkxBR1MpIEBGTEFHX1dfTk9fTUlTTUFUQ0hFRF9ORVdfREVMRVRFQAogCiBuZXdfbm90aHJvd19TT1VSQ0VTIAk9IG5ld19ub3Rocm93LmNwcAogbmV3X292ZXJyaWRlX1NPVVJDRVMgCT0gbmV3X292ZXJyaWRlLmNwcAogCitpZiBWR0NPTkZfT1NfSVNfU09MQVJJUworbnVsbF9zb2NrZXRfTERBREQJPSAtbHNvY2tldCAtbG5zbAorZW5kaWYKKwogb3JpZ2luMV95ZXNfQ0ZMQUdTICAgICAgPSAkKEFNX0NGTEFHUykgQEZMQUdfV19OT19VTklOSVRJQUxJWkVEQAogCiBvcmlnaW4yX25vdF9xdWl0ZV9DRkxBR1MgPSAkKEFNX0NGTEFHUykgQEZMQUdfV19OT19VTklOSVRJQUxJWkVEQApAQCAtNDUyLDcgKzQ4OCwxNiBAQAogIyBiZWNhdXNlIHRoZW4gd2UgY2FuJ3QgaW50ZXJjZXB0IGl0CiBvdmVybGFwX0NGTEFHUwkJPSAkKEFNX0NGTEFHUykgLWZuby1idWlsdGluLW1lbWNweSAtZm5vLWJ1aWx0aW4tc3RyY3B5CiAKLXN0cl90ZXN0ZXJfQ0ZMQUdTCT0gJChBTV9DRkxBR1MpIC1Xbm8tc2hhZG93CityZXN2bl9zdGFja19DRkxBR1MgICAgICA9ICQoQU1fQ0ZMQUdTKSBARkxBR19XX05PX1VOSU5JVElBTElaRURACisKK3NlbmRtc2dfQ0ZMQUdTCQk9ICQoQU1fQ0ZMQUdTKQoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK3NlbmRtc2dfQ0ZMQUdTCQkrPSAtRF9YT1BFTl9TT1VSQ0U9NTAwCitzZW5kbXNnX0xEQURECQk9IC1sc29ja2V0IC1sbnNsCitlbmRpZgorCitzdHJfdGVzdGVyX0NGTEFHUwk9ICQoQU1fQ0ZMQUdTKSAtV25vLXNoYWRvdyBcCisJCQkgIEBGTEFHX1dfTk9fTUVNU0VUX1RSQU5TUE9TRURfQVJHU0AKIAogc3VwcF9DRkxBR1MgICAgICAgICAgICAgPSAkKEFNX0NGTEFHUykgQEZMQUdfV19OT19VTklOSVRJQUxJWkVEQAogCkBAIC01MjUsMyArNTcwLDQgQEAKIAkJCQktV2wsLXNvbmFtZSAtV2wsd3JhcDdzby5zbwogZW5kaWYKIAoreG1sMV9DRkxBR1MgICAgICAgICAgICAgPSAkKEFNX0NGTEFHUykgLURfR05VX1NPVVJDRQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtbGludXgvZmlsdGVyX2RlZmNmYWV4cHIgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1saW51eC9maWx0ZXJfZGVmY2ZhZXhwcgppbmRleCBjZGIxYTZjLi45Nzk1NWY5IDEwMDc1NQotLS0gYS9tZW1jaGVjay90ZXN0cy9hbWQ2NC1saW51eC9maWx0ZXJfZGVmY2ZhZXhwcgorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1saW51eC9maWx0ZXJfZGVmY2ZhZXhwcgpAQCAtMSw2ICsxLDkgQEAKICMhIC9iaW4vc2gKIAotIyBjaGFuZ2UgCisjIEluIGNhc2UgdGhlIHRlc3QgYmluYXJ5IGNvbnRhaW5zIGRlYnVnIGxpbmUgaW5mbyBmaXJzdCBjaGFuZ2UKKyMgYmFkMC5jOj8/IHRvIGEgKGJvZ3VzKSBiaW5hcnkgcGF0aCAvZm9vYmFyL3Rlc3RzL2FtZDY0LWxpbnV4L2RlZmNmYWV4cHIvCisjCisjIHRoZW4gY2hhbmdlCiAjCiAjID09NjAxOT09ICAgIGF0IDB4NDAwNTEyOiBiYmIgKGluIAogIyAgICAgICAgICAgL2hvbWUvc2V3YXJkai9WZ1RSVU5LL3RydW5rL21lbWNoZWNrL3Rlc3RzL2FtZDY0L2RlZmNmYWV4cHIpCkBAIC0yMyw2ICsyNiw3IEBACiAjIHN0YWNrIGdpdmVuIHRoZSB1bnVzdWFsIENGQXMgZGVzY3JpYmluZyBpdC4KIAogCitzZWQgInMvYmFkMC5jOlswLTldXCsvXC9mb29iYXJcL3Rlc3RzXC9hbWQ2NC1saW51eFwvZGVmY2ZhZXhwci8iIHwgXAogLi9maWx0ZXJfc3RkZXJyICIkQCIgfCBcCiBzZWQgInMvXC8uKlwvdGVzdHNcL2FtZDY0LWxpbnV4XC9kZWZjZmFleHByL2JvZ3VzLlM6MC8iIHwgXAogc2VkICJzLyhpbiAvKC8iIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9NYWtlZmlsZS5hbSBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQwZWExNAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwyNSBAQAorCitpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUudG9vbC10ZXN0cy5hbQorCitkaXN0X25vaW5zdF9TQ1JJUFRTID0gZmlsdGVyX3N0ZGVycgorCitFWFRSQV9ESVNUID0gXAorCWNvbnRleHRfZnB1LnN0ZGVyci5leHAgY29udGV4dF9mcHUuc3Rkb3V0LmV4cCBjb250ZXh0X2ZwdS52Z3Rlc3QgXAorCWNvbnRleHRfZ3ByLnN0ZGVyci5leHAgY29udGV4dF9ncHIuc3Rkb3V0LmV4cCBjb250ZXh0X2dwci52Z3Rlc3QgXAorCWNvbnRleHRfcmZsYWdzLnN0ZGVyci5leHAgY29udGV4dF9yZmxhZ3Muc3Rkb3V0LmV4cCBjb250ZXh0X3JmbGFncy52Z3Rlc3QgXAorCWNvbnRleHRfcmZsYWdzMi5zdGRlcnIuZXhwIGNvbnRleHRfcmZsYWdzMi5zdGRvdXQuZXhwIGNvbnRleHRfcmZsYWdzMi52Z3Rlc3QgXAorCWNvbnRleHRfc3NlLnN0ZGVyci5leHAgY29udGV4dF9zc2Uuc3Rkb3V0LmV4cCBjb250ZXh0X3NzZS52Z3Rlc3QgXAorCWxkc29leGVjLnN0ZGVyci5leHAgbGRzb2V4ZWMudmd0ZXN0CisKK2NoZWNrX1BST0dSQU1TID0gXAorCWNvbnRleHRfZnB1IFwKKwljb250ZXh0X2dwciBcCisJY29udGV4dF9yZmxhZ3MgXAorCWNvbnRleHRfcmZsYWdzMiBcCisJY29udGV4dF9zc2UgXAorCWxkc29leGVjCisKK0FNX0NGTEFHUyAgICArPSBARkxBR19NNjRACitBTV9DWFhGTEFHUyAgKz0gQEZMQUdfTTY0QAorQU1fQ0NBU0ZMQUdTICs9IEBGTEFHX002NEAKKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2ZwdS5jIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2ZwdS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZjgzNDcKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfZnB1LmMKQEAgLTAsMCArMSwxMDkgQEAKKy8qIFRlc3QgaWYgeDg3IEZQIHZhbHVzIGFyZSBjb3JyZWN0bHkgcHJvcGFnYXRlZCBpbiBhbmQgb3V0IG9mIGEgc2lnbmFsCisgICBoYW5kbGVyIGFuZCBhbHNvIGNoZWNrIHRoYXQgdGhlIHNhbWUgYXBwbGllcyBmb3IgdW5pbml0aWFsaXNlZCB2YWx1ZXMgYW5kCisgICB0aGVpciBvcmlnaW5zLiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorCitzdGF0aWMgc2lnaW5mb190IHNpOworc3RhdGljIHVjb250ZXh0X3QgdWM7CitzdGF0aWMgZmxvYXQgaW5oYW5kbGVyWzhdOworCitzdGF0aWMgdm9pZCBzaWdoYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCAqc2lwLCB1Y29udGV4dF90ICp1Y3ApCit7CisgICBpbnQgaTsKKworICAgc2kgPSAqc2lwOworICAgdWMgPSAqdWNwOworCisgICAvKiBSZXNldCB0aGUgRlAgc3RhY2sgc28gaXQncyBwb3NzaWJsZSB0byBwdXNoIG90aGVyIHZhbHVlcyBvbnRvIGl0LiAgKEl0CisgICAgICBpcyBmdWxseSBmaWxsZWQgaW4gbWFpbigpIGJlZm9yZSB0cmlnZ2VyaW5nIHRoZSBzaWduYWwgaGFuZGxlcikuICBOb3RlCisgICAgICB0aGF0IFZFWCBhbHNvIGNsZWFycyBhbGwgRlAgdmFsdWVzIHdoZW4gdGhlIGZpbml0IGluc3RydWN0aW9uIGlzCisgICAgICBleGVjdXRlZC4gIFRoaXMgcHJvdmlkZXMgYW5vdGhlciBsZXZlbCBvZiB2YWxpZGF0aW9uIHRoYXQgdGhlIHJlc3RvcmUKKyAgICAgIGNvZGUgaXMgY29ycmVjdC4gKi8KKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgImZpbml0XG4iKTsKKworICAgLyogQ29udmVydCA4MGIgdmFsdWVzIGluIG1jb250ZXh0IHRvIDMyYiB2YWx1ZXMgaW4gdGhlIGluaGFuZGxlciBhcnJheS4gKi8KKyAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgICAgImZsZHQgICAlW2luXVxuIgorICAgICAgICAgImZzdHBzICAlW291dF1cbiIKKyAgICAgICAgIDogW291dF0gIj1tIiAoaW5oYW5kbGVyW2ldKQorICAgICAgICAgOiBbaW5dICJtIiAoKihjaGFyKikmdWNwLT51Y19tY29udGV4dC5mcHJlZ3MuZnBfcmVnX3NldC5mcGNoaXBfc3RhdGUuc3RbaV0pKTsKKyAgIH0KK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIHN0cnVjdCBzaWdhY3Rpb24gc2E7CisgICBwaWRfdCBwaWQ7CisgICBmbG9hdCBvdXRbOF07CisgICBmbG9hdCB4MDsKKworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHhbMF0gaXMgMHgwLiAqLworICAgZmxvYXQgKnB4ID0gbWFsbG9jKHNpemVvZigqcHgpKTsKKyAgIHgwID0gcHhbMF07CisKKyAgIHNhLnNhX2hhbmRsZXIgPSBzaWdoYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdVU1IxLCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIHBpZCA9IGdldHBpZCgpOworCisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAgIC8qIFNldCB2YWx1ZXMgaW4gdGhlIEZQIHN0YWNrLiAqLworICAgICAgImZsZHMgICAlW3gwXVxuIgorICAgICAgImZsZDFcbiIKKyAgICAgICJmbGRzICAgJVt4MF1cbiIKKyAgICAgICJmbGQxXG4iCisgICAgICAiZmxkcyAgICVbeDBdXG4iCisgICAgICAiZmxkMVxuIgorICAgICAgImZsZHMgICAlW3gwXVxuIgorICAgICAgImZsZDFcbiIKKworICAgICAgLyogVHJpZ2dlciB0aGUgc2lnbmFsIGhhbmRsZXIuICovCisgICAgICAic3lzY2FsbFxuIgorICAgICAgImZzdHBzICAweDAwICsgJVtvdXRdXG4iCisgICAgICAiZnN0cHMgIDB4MDQgKyAlW291dF1cbiIKKyAgICAgICJmc3RwcyAgMHgwOCArICVbb3V0XVxuIgorICAgICAgImZzdHBzICAweDBjICsgJVtvdXRdXG4iCisgICAgICAiZnN0cHMgIDB4MTAgKyAlW291dF1cbiIKKyAgICAgICJmc3RwcyAgMHgxNCArICVbb3V0XVxuIgorICAgICAgImZzdHBzICAweDE4ICsgJVtvdXRdXG4iCisgICAgICAiZnN0cHMgIDB4MWMgKyAlW291dF1cbiIKKyAgICAgIDogW291dF0gIj1tIiAob3V0WzBdKQorICAgICAgOiAiYSIgKFNZU19raWxsKSwgIkQiIChwaWQpLCAiUyIgKFNJR1VTUjEpLCBbeDBdICJtIiAoeDApCisgICAgICA6ICJyZHgiLCAiY2MiLCAibWVtb3J5Iik7CisKKyAgIHByaW50ZigiVmFsdWVzIGluIHRoZSBzaWduYWwgaGFuZGxlcjpcbiIpOworICAgcHJpbnRmKCIgIGZwWzBdPSVmLCBmcFsyXT0lZiwgZnBbNF09JWYsIGZwWzZdPSVmXG4iLAorICAgICAgICAgIGluaGFuZGxlclswXSwgaW5oYW5kbGVyWzJdLCBpbmhhbmRsZXJbNF0sIGluaGFuZGxlcls2XSk7CisgICAvKiBDaGVjayB0aGF0IGluaGFuZGxlclsxXSwgaW5oYW5kbGVyWzNdLCBpbmhhbmRsZXJbNV0gYW5kIGluaGFuZGxlcls3XQorICAgICAgY29udGFpbiB1bmluaXRpYWxpc2VkIHZhbHVlcyAob3JpZ2luIGlzIHB4WzBdKS4gKi8KKyAgIGlmIChpbmhhbmRsZXJbMV0gfHwgaW5oYW5kbGVyWzNdIHx8IGluaGFuZGxlcls1XSB8fCBpbmhhbmRsZXJbN10pCisgICAgICBhc3NlcnQoMCk7CisKKyAgIHByaW50ZigiVmFsdWVzIGFmdGVyIHRoZSByZXR1cm4gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXI6XG4iKTsKKyAgIHByaW50ZigiICBmcFswXT0lZiwgZnBbMl09JWYsIGZwWzRdPSVmLCBmcFs2XT0lZlxuIiwKKyAgICAgICAgICBvdXRbMF0sIG91dFsyXSwgb3V0WzRdLCBvdXRbNl0pOworICAgLyogQ2hlY2sgdGhhdCBvdXRbMV0sIG91dFszXSwgb3V0WzVdIGFuZCBvdXRbN10gY29udGFpbiB1bmluaXRpYWxpc2VkCisgICAgICB2YWx1ZXMgKG9yaWdpbiBpcyBweFswXSkuICovCisgICBpZiAob3V0WzFdIHx8IG91dFszXSB8fCBvdXRbNV0gfHwgb3V0WzddKQorICAgICAgYXNzZXJ0KDApOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2ZwdS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2ZwdS5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2Yzg3MzEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfZnB1LnN0ZGVyci5leHAKQEAgLTAsMCArMSw5NiBAQAorQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo5NikKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo5NikKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo5NikKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo5NikKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo5NikKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo5NikKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo5NikKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo5NikKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzoxMDQpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6NTApCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTA0KQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjUwKQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjEwNCkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzoxMDQpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6NTApCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTA0KQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjUwKQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjEwNCkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo1MCkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzoxMDQpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6NTApCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTA0KQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjUwKQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfZnB1LnN0ZG91dC5leHAgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfZnB1LnN0ZG91dC5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMzYmYxZAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9mcHUuc3Rkb3V0LmV4cApAQCAtMCwwICsxLDQgQEAKK1ZhbHVlcyBpbiB0aGUgc2lnbmFsIGhhbmRsZXI6CisgIGZwWzBdPTEuMDAwMDAwLCBmcFsyXT0xLjAwMDAwMCwgZnBbNF09MS4wMDAwMDAsIGZwWzZdPTEuMDAwMDAwCitWYWx1ZXMgYWZ0ZXIgdGhlIHJldHVybiBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgZnBbMF09MS4wMDAwMDAsIGZwWzJdPTEuMDAwMDAwLCBmcFs0XT0xLjAwMDAwMCwgZnBbNl09MS4wMDAwMDAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9mcHUudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2ZwdS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGEzOTU1ZAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9mcHUudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogY29udGV4dF9mcHUKK3Znb3B0czogLXEgLS10cmFjay1vcmlnaW5zPXllcwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2dwci5jIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2dwci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NTUxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfZ3ByLmMKQEAgLTAsMCArMSw5NSBAQAorLyogVGVzdCBpZiB2YWx1ZXMgaW4gcmF4LCByYngsIHJjeCwgcmR4LCByc2kgYW5kIHJkaSBhcmUgY29ycmVjdGx5IHByb3BhZ2F0ZWQKKyAgIGludG8gYW5kIG91dCBvZiBhIHNpZ25hbCBoYW5kbGVyIGFuZCBhbHNvIGNoZWNrIHRoYXQgdGhlIHNhbWUgYXBwbGllcyBmb3IKKyAgIHVuaW5pdGlhbGlzZWQgdmFsdWVzIGFuZCB0aGVpciBvcmlnaW5zLiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorCitzdGF0aWMgc2lnaW5mb190IHNpOworc3RhdGljIHVjb250ZXh0X3QgdWM7CisvKiB4MCBpcyBhbHdheXMgemVybywgYnV0IGlzIHZpc2libGUgdG8gVmFsZ3JpbmQgYXMgdW5pbml0aWFsaXNlZC4gKi8KK3N0YXRpYyBsb25nIHgwOworCit2b2lkIGJyZWFrX291dCh2b2lkKTsKKworc3RhdGljIHZvaWQgc2lnaGFuZGxlcihpbnQgc2lnLCBzaWdpbmZvX3QgKnNpcCwgdWNvbnRleHRfdCAqdWNwKQoreworICAgc2kgPSAqc2lwOworICAgdWMgPSAqdWNwOworCisgICB1Y3AtPnVjX21jb250ZXh0LmdyZWdzW1JFR19SQ1hdID0geDA7CisKKyAgIC8qIEJyZWFrIG91dCBvZiB0aGUgZW5kbGVzcyBsb29wLiAqLworICAgKih1aW50cHRyX3QqKSZ1Y3AtPnVjX21jb250ZXh0LmdyZWdzW1JFR19SSVBdID0gKHVpbnRwdHJfdClicmVha19vdXQ7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworICAgbG9uZyByYXgsIHJieCwgcmN4LCByZHgsIHJzaSwgcmRpOworICAgbG9uZyB5MDsKKworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHhbMF0gaXMgMHgwLiAqLworICAgbG9uZyAqcHggPSBtYWxsb2Moc2l6ZW9mKCpweCkpOworICAgeDAgPSBweFswXTsKKworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHlbMF0gaXMgMHgwLiAqLworICAgbG9uZyAqcHkgPSBtYWxsb2Moc2l6ZW9mKCpweSkpOworICAgeTAgPSBweVswXTsKKworICAgc2Euc2FfaGFuZGxlciA9IHNpZ2hhbmRsZXI7CisgICBzYS5zYV9mbGFncyA9IFNBX1NJR0lORk87CisgICBpZiAoc2lnZmlsbHNldCgmc2Euc2FfbWFzaykpIHsKKyAgICAgIHBlcnJvcigic2lnZmlsbHNldCIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisgICBpZiAoc2lnYWN0aW9uKFNJR0FMUk0sICZzYSwgTlVMTCkpIHsKKyAgICAgIHBlcnJvcigic2lnYWN0aW9uIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgYWxhcm0oMik7CisKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgLyogU2V0IHZhbHVlcyBpbiBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzLiAqLworICAgICAgIm1vdnEgICAkMHhmMCwgJSVyYXhcbiIKKyAgICAgICJtb3ZxICAgJVt5MF0sICUlcmJ4XG4iCisgICAgICAibW92cSAgICQweGYxLCAlJXJjeFxuIgorICAgICAgIm1vdnEgICAkMHhmMiwgJSVyZHhcbiIKKyAgICAgICJtb3ZxICAgJDB4ZjMsICUlcnNpXG4iCisgICAgICAibW92cSAgICQweGY0LCAlJXJkaVxuIgorCisgICAgICAvKiBMb29waXR5IGxvb3AsIHRoaXMgaXMgd2hlcmUgdGhlIFNJR0FMUk0gaXMgdHJpZ2dlcmVkLiAqLworICAgICAgIjE6XG4iCisgICAgICAiam1wICAgIDFiXG4iCisKKyAgICAgICJicmVha19vdXQ6XG4iCisgICAgICA6ICI9YSIgKHJheCksICI9YiIgKHJieCksICI9YyIgKHJjeCksICI9ZCIgKHJkeCksICI9UyIgKHJzaSksCisgICAgICAgICI9RCIgKHJkaSkKKyAgICAgIDogW3kwXSAibSIgKHkwKQorICAgICAgOiAiY2MiLCAibWVtb3J5Iik7CisKKyAgIHByaW50ZigiVmFsdWVzIGluIHRoZSBzaWduYWwgaGFuZGxlcjpcbiIpOworICAgcHJpbnRmKCIgIHJheD0lI2x4LCByY3g9JSNseCwgcmR4PSUjbHgsIHJzaT0lI2x4LCByZGk9JSNseFxuIiwKKyAgICAgICAgICB1Yy51Y19tY29udGV4dC5ncmVnc1tSRUdfUkFYXSwgdWMudWNfbWNvbnRleHQuZ3JlZ3NbUkVHX1JDWF0sCisgICAgICAgICAgdWMudWNfbWNvbnRleHQuZ3JlZ3NbUkVHX1JEWF0sIHVjLnVjX21jb250ZXh0LmdyZWdzW1JFR19SU0ldLAorICAgICAgICAgIHVjLnVjX21jb250ZXh0LmdyZWdzW1JFR19SREldKTsKKyAgIC8qIENoZWNrIHRoYXQgcmJ4IGNvbnRhaW5zIGFuIHVuaW5pdGlhbGlzZWQgdmFsdWUgKG9yaWdpbiBpcyBweVswXSkuICovCisgICBpZiAodWMudWNfbWNvbnRleHQuZ3JlZ3NbUkVHX1JCWF0pCisgICAgICBhc3NlcnQoMCk7CisKKyAgIHByaW50ZigiVmFsdWVzIGFmdGVyIHRoZSByZXR1cm4gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXI6XG4iKTsKKyAgIHByaW50ZigiICByYXg9JSNseCwgcmR4PSUjbHgsIHJzaT0lI2x4LCByZGk9JSNseFxuIiwgcmF4LCByZHgsIHJzaSwgcmRpKTsKKyAgIC8qIENoZWNrIHRoYXQgcmJ4IGFuZCByY3ggY29udGFpbiB1bmluaXRpYWxpc2VkIHZhbHVlcyAob3JpZ2luIGlzIHB5WzBdCisgICAgICBhbmQgcHhbMF0sIHJlc3BlY3RpdmVseSkuICovCisgICBpZiAocmJ4IHx8IHJjeCkKKyAgICAgIGFzc2VydCgwKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9ncHIuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9ncHIuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTdmN2EzCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2dwci5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMTggQEAKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6ODMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6NDIpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6OTApCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6NDIpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6OTApCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6MzgpCisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9ncHIuc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9ncHIuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTlkYjdhCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2dwci5zdGRvdXQuZXhwCkBAIC0wLDAgKzEsNCBAQAorVmFsdWVzIGluIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgcmF4PTB4ZjAsIHJjeD0weGYxLCByZHg9MHhmMiwgcnNpPTB4ZjMsIHJkaT0weGY0CitWYWx1ZXMgYWZ0ZXIgdGhlIHJldHVybiBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgcmF4PTB4ZjAsIHJkeD0weGYyLCByc2k9MHhmMywgcmRpPTB4ZjQKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9ncHIudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X2dwci52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY1NmY1OAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9ncHIudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogY29udGV4dF9ncHIKK3Znb3B0czogLXEgLS10cmFjay1vcmlnaW5zPXllcwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X3JmbGFncy5jIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X3JmbGFncy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2N2YwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzLmMKQEAgLTAsMCArMSw2NyBAQAorLyogVGVzdCBpZiByZmxhZ3MgdmFsdWVzIGFyZSBjb3JyZWN0bHkgcHJvcGFnYXRlZCBpbiBhbmQgb3V0IG9mIGEgc2lnbmFsCisgICBoYW5kbGVyLiAgTm90ZSB0aGF0IHdlIGFjdHVhbGx5IHRlc3Qgb25seSB0aGUgcHJvcGFnYXRpb24gb2YgdGhlIG92ZXJmbG93CisgICBhbmQgc2lnbiBmbGFncy4gKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKworI2RlZmluZSBPQklUKHJmbGFncykgKCEhKChyZmxhZ3MpICYgKDEgPDwgMTEpKSkKKyNkZWZpbmUgU0JJVChyZmxhZ3MpICghISgocmZsYWdzKSAmICgxIDw8IDcpKSkKKworc3RhdGljIHNpZ2luZm9fdCBzaTsKK3N0YXRpYyB1Y29udGV4dF90IHVjOworCitzdGF0aWMgdm9pZCBzaWdoYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCAqc2lwLCB1Y29udGV4dF90ICp1Y3ApCit7CisgICBzaSA9ICpzaXA7CisgICB1YyA9ICp1Y3A7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworICAgcGlkX3QgcGlkOworICAgbG9uZyByZmxhZ3M7CisKKyAgIHNhLnNhX2hhbmRsZXIgPSBzaWdoYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdVU1IxLCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIHBpZCA9IGdldHBpZCgpOworCisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAgIC8qIFNldCBvdmVyZmxvdyBhbmQgc2lnbiBmbGFncy4gKi8KKyAgICAgICJtb3ZsICAgJDEsICUlZWR4XG4iCisgICAgICAiYWRkbCAgICQweDdmZmZmZmZmLCAlJWVkeFxuIgorCisgICAgICAvKiBUcmlnZ2VyIHRoZSBzaWduYWwgaGFuZGxlci4gKi8KKyAgICAgICJzeXNjYWxsXG4iCisgICAgICAicHVzaGZxXG4iCisgICAgICAicG9wcSAgICUlcmR4XG4iCisgICAgICA6ICI9ZCIgKHJmbGFncykKKyAgICAgIDogImEiIChTWVNfa2lsbCksICJEIiAocGlkKSwgIlMiIChTSUdVU1IxKQorICAgICAgOiAiY2MiLCAibWVtb3J5Iik7CisKKyAgIHByaW50ZigiVmFsdWVzIGluIHRoZSBzaWduYWwgaGFuZGxlcjpcbiIpOworICAgcHJpbnRmKCIgIG92ZXJmbG93PSVkLCBzaWduPSVkXG4iLAorICAgICAgICAgIE9CSVQodWMudWNfbWNvbnRleHQuZ3JlZ3NbUkVHX1JGTF0pLAorICAgICAgICAgIFNCSVQodWMudWNfbWNvbnRleHQuZ3JlZ3NbUkVHX1JGTF0pKTsKKworICAgcHJpbnRmKCJWYWx1ZXMgYWZ0ZXIgdGhlIHJldHVybiBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcjpcbiIpOworICAgcHJpbnRmKCIgIG92ZXJmbG93PSVkLCBzaWduPSVkXG4iLCBPQklUKHJmbGFncyksIFNCSVQocmZsYWdzKSk7CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9yZmxhZ3Muc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9yZmxhZ3Muc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YWQ3YmFjCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X3JmbGFncy5zdGRvdXQuZXhwCkBAIC0wLDAgKzEsNCBAQAorVmFsdWVzIGluIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgb3ZlcmZsb3c9MSwgc2lnbj0xCitWYWx1ZXMgYWZ0ZXIgdGhlIHJldHVybiBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgb3ZlcmZsb3c9MSwgc2lnbj0xCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9yZmxhZ3Mudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwNmY2YTMKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IGNvbnRleHRfcmZsYWdzCit2Z29wdHM6IC1xIC0tdHJhY2stb3JpZ2lucz15ZXMKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9yZmxhZ3MyLmMgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZmNlY2EKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzMi5jCkBAIC0wLDAgKzEsOTAgQEAKKy8qIFRlc3QgaWYgZGVmaW5lZG5lc3Mgb2YgcmZsYWdzIHZhbHVlcyBpcyBjb3JyZWN0bHkgcHJvcGFnYXRlZCBpbiBhbmQgb3V0CisgICBvZiBhIHNpZ25hbCBoYW5kbGVyLiAgTm90ZSB0aGF0IGFjdHVhbGx5IG9ubHkgdGhlIHByb3BhZ2F0aW9uIG9mIHRoZQorICAgb3ZlcmZsb3cgYW5kIHNpZ24gZmxhZ3MgaXMgdGVzdGVkLgorCisgICBUaGlzIHRlc3QgbXVzdCB1c2UgYWxhcm0oMikgdG8gdHJpZ2dlciB0aGUgc2lnbmFsIGFuZCBub3Qga2lsbCgyKSBhcyBvdGhlcgorICAgdGVzdHMgZG8gYmVjYXVzZSBpbiB0aGUgbGF0dGVyIGNhc2UgdGhlIHNpZ25hbCBpcyBhY3R1YWxseSBkZWxpdmVyZWQgYWZ0ZXIKKyAgIHRoZSBzeXNjYWxsIGZpbmlzaGVkLiAgVGhpcyBtZWFucyB0aGF0IFZhbGdyaW5kIGhhZCB0byBzYXZlIGEgY29ycmVjdCBjYXJyeQorICAgZmxhZyB2YWx1ZSAoaW5kaWNhdGluZyBpZiB0aGUgc3lzY2FsbCBzdWNjZWVkZWQpIGluIHRoZSByZmxhZ3MuICBUaGlzIHNhdmUKKyAgIG9wZXJhdGlvbiB1bmZvcnR1bmF0ZWx5IG1ha2VzIGFsbCByZmxhZ3MgaW5pdGlhbGlzZWQgKGR1ZSB0byBpbXByZWNpc2UKKyAgIHNpbXVsYXRpb24pLiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorCisjZGVmaW5lIE9CSVQocmZsYWdzKSAoISEoKHJmbGFncykgJiAoMSA8PCAxMSkpKQorI2RlZmluZSBTQklUKHJmbGFncykgKCEhKChyZmxhZ3MpICYgKDEgPDwgNykpKQorCitzdGF0aWMgc2lnaW5mb190IHNpOworc3RhdGljIHVjb250ZXh0X3QgdWM7CisKK3ZvaWQgYnJlYWtfb3V0KHZvaWQpOworCitzdGF0aWMgdm9pZCBzaWdoYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCAqc2lwLCB1Y29udGV4dF90ICp1Y3ApCit7CisgICBzaSA9ICpzaXA7CisgICB1YyA9ICp1Y3A7CisKKyAgIC8qIEJyZWFrIG91dCBvZiB0aGUgZW5kbGVzcyBsb29wLiAqLworICAgKih1aW50cHRyX3QqKSZ1Y3AtPnVjX21jb250ZXh0LmdyZWdzW1JFR19SSVBdID0gKHVpbnRwdHJfdClicmVha19vdXQ7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworICAgbG9uZyByZmxhZ3M7CisgICBpbnQgeDE7CisKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGludCAqcHggPSBtYWxsb2Moc2l6ZW9mKCpweCkpOworICAgeDEgPSBweFswXSArIDE7CisKKyAgIHNhLnNhX2hhbmRsZXIgPSBzaWdoYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdBTFJNLCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIGFsYXJtKDIpOworCisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAgIC8qIFNldCBvdmVyZmxvdyBhbmQgc2lnbiBmbGFncy4gKi8KKyAgICAgICJtb3ZsICAgJVt4MV0sICUlZWR4XG4iCisgICAgICAiYWRkbCAgICQweDdmZmZmZmZmLCAlJWVkeFxuIgorCisgICAgICAvKiBMb29waXR5IGxvb3AsIHRoaXMgaXMgd2hlcmUgdGhlIFNJR0FMUk0gaXMgdHJpZ2dlcmVkLiAqLworICAgICAgIjE6XG4iCisgICAgICAiam1wICAgIDFiXG4iCisKKyAgICAgICJicmVha19vdXQ6XG4iCisgICAgICAicHVzaGZxXG4iCisgICAgICAicG9wcSAgICUlcmR4XG4iCisgICAgICA6ICI9ZCIgKHJmbGFncykKKyAgICAgIDogW3gxXSAibSIgKHgxKQorICAgICAgOiAiY2MiLCAibWVtb3J5Iik7CisKKyAgIC8qIENoZWNrIHRoYXQgdGhlIG92ZXJmbG93IGFuZCBzaWduIGZsYWdzIGFyZSB1bmluaXRpYWxpc2VkLgorCisgICAgICBOb3RlOiBUaGlzIGFjdHVhbGx5IGZhaWxzIGJlY2F1c2UgdGhlIHJmbGFncyBhcmUgb25seSBhcHByb3hpbWF0ZQorICAgICAgKGFsd2F5cyBpbml0aWFsaXNlZCkgaW4gdGhlIHNpZ25hbCBoYW5kbGVyLiAqLworICAgaWYgKCFPQklUKHVjLnVjX21jb250ZXh0LmdyZWdzW1JFR19SRkxdKSB8fAorICAgICAgICFTQklUKHVjLnVjX21jb250ZXh0LmdyZWdzW1JFR19SRkxdKSkKKyAgICAgIGFzc2VydCgwKTsKKworICAgLyogQ2hlY2sgdGhhdCB0aGUgb3ZlcmZsb3cgYW5kIHNpZ24gZmxhZ3MgYXJlIHVuaW5pdGlhbGlzZWQuICovCisgICBpZiAoIU9CSVQocmZsYWdzKSB8fCAhU0JJVChyZmxhZ3MpKQorICAgICAgYXNzZXJ0KDApOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X3JmbGFnczIuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9yZmxhZ3MyLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI5NGY5YwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9yZmxhZ3MyLnN0ZGVyci5leHAKQEAgLTAsMCArMSwxMiBAQAorQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9yZmxhZ3MyLmM6ODUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfcmZsYWdzMi5jOjQ0KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X3JmbGFnczIuYzo4NSkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9yZmxhZ3MyLmM6NDQpCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9yZmxhZ3MyLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzMi5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzMi52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzMi52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQyZjUzZgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9yZmxhZ3MyLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IGNvbnRleHRfcmZsYWdzMgordmdvcHRzOiAtcSAtLXRyYWNrLW9yaWdpbnM9eWVzCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfc3NlLmMgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvbnRleHRfc3NlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFlMzgxYgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9zc2UuYwpAQCAtMCwwICsxLDEwMCBAQAorLyogVGVzdCBpZiBTU0UgdmFsdXMgYXJlIGNvcnJlY3RseSBwcm9wYWdhdGVkIGludG8gYW5kIG91dCBvZiBhIHNpZ25hbCBoYW5kbGVyCisgICBhbmQgYWxzbyBjaGVjayB0aGF0IHRoZSBzYW1lIGFwcGxpZXMgZm9yIHVuaW5pdGlhbGlzZWQgdmFsdWVzIGFuZCB0aGVpcgorICAgb3JpZ2lucy4gKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKworc3RhdGljIHNpZ2luZm9fdCBzaTsKK3N0YXRpYyB1Y29udGV4dF90IHVjOworLyogeDAgaXMgYWx3YXlzIHplcm8sIGJ1dCBpcyB2aXNpYmxlIHRvIFZhbGdyaW5kIGFzIHVuaW5pdGlhbGlzZWQuICovCitzdGF0aWMgdXBhZDEyOF90IHgwOworc3RhdGljIHVwYWQxMjhfdCBkMCA9IHswfTsKKworc3RhdGljIHZvaWQgc2lnaGFuZGxlcihpbnQgc2lnLCBzaWdpbmZvX3QgKnNpcCwgdWNvbnRleHRfdCAqdWNwKQoreworICAgc2kgPSAqc2lwOworICAgdWMgPSAqdWNwOworCisgICB1Y3AtPnVjX21jb250ZXh0LmZwcmVncy5mcF9yZWdfc2V0LmZwY2hpcF9zdGF0ZS54bW1bMF0gPSBkMDsKKyAgIHVjcC0+dWNfbWNvbnRleHQuZnByZWdzLmZwX3JlZ19zZXQuZnBjaGlwX3N0YXRlLnhtbVsxXSA9IHgwOworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgc3RydWN0IHNpZ2FjdGlvbiBzYTsKKyAgIHBpZF90IHBpZDsKKyAgIHVwYWQxMjhfdCBvdXRbOF07CisgICB1cGFkMTI4X3QgeTA7CisgICBzdHJ1Y3QgZnBjaGlwX3N0YXRlICpmcyA9ICZ1Yy51Y19tY29udGV4dC5mcHJlZ3MuZnBfcmVnX3NldC5mcGNoaXBfc3RhdGU7CisKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIHVwYWQxMjhfdCAqcHggPSBtYWxsb2Moc2l6ZW9mKCpweCkpOworICAgeDAgPSBweFswXTsKKworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHlbMF0gaXMgMHgwLiAqLworICAgdXBhZDEyOF90ICpweSA9IG1hbGxvYyhzaXplb2YoKnB5KSk7CisgICB5MCA9IHB5WzBdOworCisgICBzYS5zYV9oYW5kbGVyID0gc2lnaGFuZGxlcjsKKyAgIHNhLnNhX2ZsYWdzID0gU0FfU0lHSU5GTzsKKyAgIGlmIChzaWdmaWxsc2V0KCZzYS5zYV9tYXNrKSkgeworICAgICAgcGVycm9yKCJzaWdmaWxsc2V0Iik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKyAgIGlmIChzaWdhY3Rpb24oU0lHVVNSMSwgJnNhLCBOVUxMKSkgeworICAgICAgcGVycm9yKCJzaWdhY3Rpb24iKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICBwaWQgPSBnZXRwaWQoKTsKKworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCisgICAgICAvKiBTZXQgdmFsdWVzIGluIHRoZSBTU0UgcmVnaXN0ZXJzLiAqLworICAgICAgIm1vdnVwcyAlW3kwXSwgJSV4bW0wXG4iCisgICAgICAibW92dXBzICVbZDBdLCAlJXhtbTFcbiIKKyAgICAgICJtb3Z1cHMgJVtkMF0sICUleG1tMlxuIgorICAgICAgIm1vdnVwcyAlW3kwXSwgJSV4bW0zXG4iCisgICAgICAibW92dXBzICVbeTBdLCAlJXhtbTRcbiIKKyAgICAgICJtb3Z1cHMgJVtkMF0sICUleG1tNVxuIgorICAgICAgIm1vdnVwcyAlW2QwXSwgJSV4bW02XG4iCisgICAgICAibW92dXBzICVbeTBdLCAlJXhtbTdcbiIKKworICAgICAgLyogVHJpZ2dlciB0aGUgc2lnbmFsIGhhbmRsZXIuICovCisgICAgICAic3lzY2FsbFxuIgorICAgICAgIm1vdnVwcyAlJXhtbTAsIDB4MDAgKyAlW291dF1cbiIKKyAgICAgICJtb3Z1cHMgJSV4bW0xLCAweDEwICsgJVtvdXRdXG4iCisgICAgICAibW92dXBzICUleG1tMiwgMHgyMCArICVbb3V0XVxuIgorICAgICAgIm1vdnVwcyAlJXhtbTMsIDB4MzAgKyAlW291dF1cbiIKKyAgICAgICJtb3Z1cHMgJSV4bW00LCAweDQwICsgJVtvdXRdXG4iCisgICAgICAibW92dXBzICUleG1tNSwgMHg1MCArICVbb3V0XVxuIgorICAgICAgIm1vdnVwcyAlJXhtbTYsIDB4NjAgKyAlW291dF1cbiIKKyAgICAgICJtb3Z1cHMgJSV4bW03LCAweDcwICsgJVtvdXRdXG4iCisgICAgICA6IFtvdXRdICI9bSIgKG91dFswXSkKKyAgICAgIDogImEiIChTWVNfa2lsbCksICJEIiAocGlkKSwgIlMiIChTSUdVU1IxKSwgW3kwXSAibSIgKHkwKSwgW2QwXSAibSIgKGQwKQorICAgICAgOiAicmR4IiwgImNjIiwgIm1lbW9yeSIpOworCisgICBwcmludGYoIlZhbHVlcyBpbiB0aGUgc2lnbmFsIGhhbmRsZXI6XG4iKTsKKyAgIHByaW50ZigiICB4bW0xPSVMZiwgeG1tMj0lTGYsIHhtbTU9JUxmLCB4bW02PSVMZlxuIiwKKyAgICAgICAgICBmcy0+eG1tWzFdLl9xLCBmcy0+eG1tWzJdLl9xLCBmcy0+eG1tWzVdLl9xLCBmcy0+eG1tWzZdLl9xKTsKKyAgIC8qIENoZWNrIHRoYXQgZnMtPnhtbVswXSwgZnMtPnhtbVszXSwgZnMtPnhtbVs0XSBhbmQgZnMtPnhtbVs3XSBjb250YWluCisgICAgICB1bmluaXRpYWxpc2VkIHZhbHVlcyAob3JpZ2luIGlzIHB5WzBdKS4gKi8KKyAgIGlmIChmcy0+eG1tWzBdLl9xIHx8IGZzLT54bW1bM10uX3EgfHwgZnMtPnhtbVs0XS5fcSB8fCBmcy0+eG1tWzddLl9xKQorICAgICAgYXNzZXJ0KDApOworCisgICBwcmludGYoIlZhbHVlcyBhZnRlciB0aGUgcmV0dXJuIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyOlxuIik7CisgICBwcmludGYoIiAgeG1tMD0lTGYsIHhtbTI9JUxmLCB4bW01PSVMZiwgeG1tNj0lTGZcbiIsCisgICAgICAgICAgb3V0WzBdLl9xLCBvdXRbMl0uX3EsIG91dFs1XS5fcSwgb3V0WzZdLl9xKTsKKyAgIC8qIENoZWNrIHRoYXQgb3V0WzFdLCBvdXRbM10sIG91dFs0XSBhbmQgb3V0WzddIGNvbnRhaW4gdW5pbml0aWFsaXNlZAorICAgICAgdmFsdWVzIChvcmlnaW4gaXMgcHhbMF0pLiAqLworICAgaWYgKG91dFsxXS5fcSB8fCBvdXRbM10uX3EgfHwgb3V0WzRdLl9xIHx8IG91dFs3XS5fcSkKKyAgICAgIGFzc2VydCgwKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9zc2Uuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9zc2Uuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWU5NmNhCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X3NzZS5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsOTYgQEAKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzcpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzcpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6NDEpCisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9zc2Uuc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9zc2Uuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2VmY2M4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X3NzZS5zdGRvdXQuZXhwCkBAIC0wLDAgKzEsNCBAQAorVmFsdWVzIGluIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgeG1tMT0wLjAwMDAwMCwgeG1tMj0wLjAwMDAwMCwgeG1tNT0wLjAwMDAwMCwgeG1tNj0wLjAwMDAwMAorVmFsdWVzIGFmdGVyIHRoZSByZXR1cm4gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXI6CisgIHhtbTA9MC4wMDAwMDAsIHhtbTI9MC4wMDAwMDAsIHhtbTU9MC4wMDAwMDAsIHhtbTY9MC4wMDAwMDAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9zc2Uudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9jb250ZXh0X3NzZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdkNmJlMQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29udGV4dF9zc2Uudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogY29udGV4dF9zc2UKK3Znb3B0czogLXEgLS10cmFjay1vcmlnaW5zPXllcwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9maWx0ZXJfc3RkZXJyIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9maWx0ZXJfc3RkZXJyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3NzhlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2ZpbHRlcl9zdGRlcnIKQEAgLTAsMCArMSwzIEBACisjISAvYmluL3NoCisKKy4uL2ZpbHRlcl9zdGRlcnIgIiRAIgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9sZHNvZXhlYy5jIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9sZHNvZXhlYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNmJkYzIKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2xkc29leGVjLmMKQEAgLTAsMCArMSwzIEBACitpbnQgbWFpbih2b2lkKSB7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2xkc29leGVjLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9hbWQ2NC1zb2xhcmlzL2xkc29leGVjLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvbGRzb2V4ZWMudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvYW1kNjQtc29sYXJpcy9sZHNvZXhlYy52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y2MTYwYwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0LXNvbGFyaXMvbGRzb2V4ZWMudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogL2xpYi82NC9sZC5zby4xIC4vbGRzb2V4ZWMKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0L01ha2VmaWxlLmFtIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQvTWFrZWZpbGUuYW0KaW5kZXggMGU3MjUyMS4uZGM0OGY0MSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvYW1kNjQvTWFrZWZpbGUuYW0KKysrIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQvTWFrZWZpbGUuYW0KQEAgLTMyLDcgKzMyLDggQEAKIAkJc2gtbWVtLXZlYzI1Ni1wbG8teWVzLnN0ZG91dC5leHAgXAogCXNzZV9tZW1vcnkuc3RkZXJyLmV4cCBzc2VfbWVtb3J5LnN0ZG91dC5leHAgc3NlX21lbW9yeS52Z3Rlc3QgXAogCXhvci11bmRlZi1hbWQ2NC5zdGRlcnIuZXhwIHhvci11bmRlZi1hbWQ2NC5zdGRvdXQuZXhwIFwKLQl4b3ItdW5kZWYtYW1kNjQudmd0ZXN0CisJeG9yLXVuZGVmLWFtZDY0LnZndGVzdCBcCisJeHNhdmUtYXZ4LnZndGVzdCB4c2F2ZS1hdnguc3Rkb3V0LmV4cCB4c2F2ZS1hdnguc3RkZXJyLmV4cAogCiBjaGVja19QUk9HUkFNUyA9IFwKIAlidF9ldmVyeXRoaW5nIFwKQEAgLTQ1LDcgKzQ2LDcgQEAKIAlzc2VfbWVtb3J5IFwKIAl4b3ItdW5kZWYtYW1kNjQKIGlmIEJVSUxEX0FWWF9URVNUUwotIGNoZWNrX1BST0dSQU1TICs9IHNoLW1lbS12ZWMyNTYKKyBjaGVja19QUk9HUkFNUyArPSBzaC1tZW0tdmVjMjU2IHhzYXZlLWF2eAogZW5kaWYKIGlmIEhBVkVfQVNNX0NPTlNUUkFJTlRfUAogIGNoZWNrX1BST0dSQU1TICs9IGluc24tcGNtcGlzdHJpCkBAIC01OSw2ICs2MCwxMCBAQAogQU1fQ1hYRkxBR1MgICs9IEBGTEFHX002NEAKIEFNX0NDQVNGTEFHUyArPSBARkxBR19NNjRACiAKK2luc25fcGNtcGlzdHJpX0NGTEFHUwk9ICQoQU1fQ0ZMQUdTKQoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK2luc25fcGNtcGlzdHJpX0NGTEFHUwkrPSAtLXN0ZD1jOTkKK2VuZGlmCiBtb3JlX3g4N19mcF9DRkxBR1MJPSAkKEFNX0NGTEFHUykgLU8gLWZmYXN0LW1hdGggLW1mcG1hdGg9Mzg3IFwKIAkJCQktbWZhbmN5LW1hdGgtMzg3CiBtb3JlX3g4N19mcF9MREFERAk9IC1sbQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQvYnRfZXZlcnl0aGluZy5jIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQvYnRfZXZlcnl0aGluZy5jCmluZGV4IGEwMTBiMDQuLjU3NjI0YTEgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0L2J0X2V2ZXJ5dGhpbmcuYworKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC9idF9ldmVyeXRoaW5nLmMKQEAgLTEzLDYgKzEzLDE4IEBACiAKIHR5cGVkZWYgc2lnbmVkIGxvbmcgaW50ICBXb3JkOwogCit1bnNpZ25lZCBsb25nIG15cmFuZG9tKHZvaWQpCit7CisgICAvKiBTaW1wbGUgbXVsdGlwbHktd2l0aC1jYXJyeSByYW5kb20gZ2VuZXJhdG9yLiAqLworICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbV93ID0gMTE7CisgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBtX3ogPSAxMzsKKworICAgbV96ID0gMzY5NjkgKiAobV96ICYgNjU1MzUpICsgKG1feiA+PiAxNik7CisgICBtX3cgPSAxODAwMCAqIChtX3cgJiA2NTUzNSkgKyAobV93ID4+IDE2KTsKKworICAgcmV0dXJuIChtX3ogPDwgMTYpICsgbV93OworfQorCiAvKiAtLS0tLS0tLS0tLS0gTUVNLCBRIC0tLS0tLS0tLS0tLSAqLwogCiBVTG9uZyBidHNxX21lbSAoIGNoYXIqIGJhc2UsIFdvcmQgYml0bm8gKQpAQCAtNDE4LDggKzQzMCw4IEBACiAgICAvKiBWYWxpZCBiaXQgb2Zmc2V0cyBhcmUgLTgwMCAuLiA3OTkgaW5jbHVzaXZlLiAqLwogCiAgICBmb3IgKG4gPSAwOyBuIDwgMTAwMDA7IG4rKykgewotICAgICAgYml0b2ZmID0gKHJhbmRvbSgpICUgMTYwMCkgLSA4MDA7Ci0gICAgICBvcCA9IHJhbmRvbSgpICUgMTI7CisgICAgICBiaXRvZmYgPSAobXlyYW5kb20oKSAlIDE2MDApIC0gODAwOworICAgICAgb3AgPSBteXJhbmRvbSgpICUgMTI7CiAgICAgICBjID0gMjsKICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgIGNhc2UgIDA6IGMgPSBidHNsX21lbShibG9jaywgYml0b2ZmKTsgYnJlYWs7CkBAIC00NTcsOCArNDY5LDggQEAKICAgIHJlZyA9IDA7CiAKICAgIGZvciAobiA9IDA7IG4gPCAxMDAwOyBuKyspIHsKLSAgICAgIGJpdG9mZiA9IChyYW5kb20oKSAlIDEwMCkgLSA1MDsKLSAgICAgIG9wID0gcmFuZG9tKCkgJSAxMjsKKyAgICAgIGJpdG9mZiA9IChteXJhbmRvbSgpICUgMTAwKSAtIDUwOworICAgICAgb3AgPSBteXJhbmRvbSgpICUgMTI7CiAgICAgICBjID0gMjsKICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgIGNhc2UgIDA6IGMgPSBidHNsX3JlZyhyZWcsIGJpdG9mZiwgJnJlZyk7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQvYnRfZXZlcnl0aGluZy5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQvYnRfZXZlcnl0aGluZy5zdGRvdXQuZXhwCmluZGV4IGYyMmEwYTcuLjM3MDU1M2YgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0L2J0X2V2ZXJ5dGhpbmcuc3Rkb3V0LmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC9idF9ldmVyeXRoaW5nLnN0ZG91dC5leHAKQEAgLTEsMiArMSwyIEBACi1NRU0tTDogZmluYWwgcmVzIDB4YmIwNWRjOGY2OWJhMzZkYywgY2FycnlkZXAgMHg4MThmMzM2NjI1ZjAxMjc3Ci1SRUctTDogZmluYWwgcmVzIDB4YTE1ZjI5M2UsIGNhcnJ5ZGVwIDB4NjA4MmI1ZTViZWZjNmE0MAorTUVNLUw6IGZpbmFsIHJlcyAweGY3ZmFkZDZjNjQ1MTdjNzAsIGNhcnJ5ZGVwIDB4ODE3NmE2NWFiZDczNTg0NworUkVHLUw6IGZpbmFsIHJlcyAweDM1YzQ1OWZmLCBjYXJyeWRlcCAweDVkODM3ZWUxMGM2YzM5MApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQvZnhzYXZlLWFtZDY0LmMgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC9meHNhdmUtYW1kNjQuYwppbmRleCBkZTA0MDM3Li5iZDIxNGMxIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9hbWQ2NC9meHNhdmUtYW1kNjQuYworKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC9meHNhdmUtYW1kNjQuYwpAQCAtMSw0ICsxLDQgQEAKLQorI2luY2x1ZGUgPGNvbmZpZy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSAidGVzdHMvYXNtLmgiCkBAIC0xNyw3ICsxNyw3IEBACiBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCiB2b2lkIGRvX2Z4c2F2ZSAoIHZvaWQqIHAsIGludCByZXh3ICkgewogICAgaWYgKHJleHcpIHsKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKKyNpZmRlZiBIQVZFX0FTX0FNRDY0X0ZYU0FWRTY0CiAgICAgICBhc20gX192b2xhdGlsZV9fKCJmeHNhdmU2NCAoJTApIiA6IDogInIiIChwKSA6ICJtZW1vcnkiICk7CiAjZWxzZQogICAgICAgYXNtIF9fdm9sYXRpbGVfXygicmV4NjQvZnhzYXZlICglMCkiIDogOiAiciIgKHApIDogIm1lbW9yeSIgKTsKQEAgLTMwLDcgKzMwLDcgQEAKIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKIHZvaWQgZG9fZnhyc3RvciAoIHZvaWQqIHAsIGludCByZXh3ICkgewogICAgaWYgKHJleHcpIHsKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKKyNpZmRlZiBIQVZFX0FTX0FNRDY0X0ZYU0FWRTY0CiAgICAgICBhc20gX192b2xhdGlsZV9fKCJmeHJzdG9yNjQgKCUwKSIgOiA6ICJyIiAocCkgOiAibWVtb3J5IiApOwogI2Vsc2UKICAgICAgIGFzbSBfX3ZvbGF0aWxlX18oInJleDY0L2Z4cnN0b3IgKCUwKSIgOiA6ICJyIiAocCkgOiAibWVtb3J5IiApOwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQveHNhdmUtYXZ4LmMgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC94c2F2ZS1hdnguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTMyMzg5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQveHNhdmUtYXZ4LmMKQEAgLTAsMCArMSwzMzcgQEAKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSAidGVzdHMvYXNtLmgiCisjaW5jbHVkZSAidGVzdHMvbWFsbG9jLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNkZWZpbmUgWFNBVkVfQVJFQV9TSVpFIDgzMgorCit0eXBlZGVmICB1bnNpZ25lZCBjaGFyICAgICAgICAgICBVQ2hhcjsKK3R5cGVkZWYgIHVuc2lnbmVkIGludCAgICAgICAgICAgIFVJbnQ7Cit0eXBlZGVmICB1bnNpZ25lZCBsb25nIGxvbmcgaW50ICBVTG9uZzsKKwordHlwZWRlZiAgdW5zaWduZWQgbG9uZyBpbnQgICAgICAgVVdvcmQ7CisKK3R5cGVkZWYgIHVuc2lnbmVkIGNoYXIgIEJvb2w7CisjZGVmaW5lICBUcnVlICAgKChCb29sKTEpCisjZGVmaW5lICBGYWxzZSAgKChCb29sKTApCisKK2NvbnN0IHVuc2lnbmVkIGludCB2ZWMwWzhdCisgICA9IHsgMHgxMjM0NTY3OCwgMHgxMTIyMzM0NCwgMHg1NTY2Nzc4OCwgMHg4NzY1NDMyMSwKKyAgICAgICAweDE1MjYzNzQ4LCAweDkxOTI5Mzk0LCAweDE5MjkzOTQ5LCAweDQ4MzcyNjE1IH07CisKK2NvbnN0IHVuc2lnbmVkIGludCB2ZWMxWzhdCisgICA9IHsgMHhBQkNERUYwMSwgMHhBQUJCQ0NERCwgMHhFRUZGMDAxMSwgMHgxMEZFRENCQSwKKyAgICAgICAweEJBRENGRTEwLCAweEZGRUU5OTg4LCAweDExNjY3NzIyLCAweDAxRUZDREFCIH07CisKK2NvbnN0IHVuc2lnbmVkIGludCB2ZWNaWzhdCisgICA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OworCisvKiBBIHZlcnNpb24gb2YgbWVtc2V0IHRoYXQgZG9lc24ndCB1c2UgWE1NIG9yIFlNTSByZWdpc3RlcnMuICovCitzdGF0aWMgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQordm9pZCogbXlfbWVtc2V0KHZvaWQqIHMsIGludCBjLCBzaXplX3QgbikKK3sKKyAgIHNpemVfdCBpOworICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgKCh1bnNpZ25lZCBjaGFyKilzKVtpXSA9ICh1bnNpZ25lZCBjaGFyKSh1bnNpZ25lZCBpbnQpYzsKKyAgICAgIC8qIERlZmVhdCBhbnkgYXR0ZW1wdCBhdCBhdXRvdmVjdG9yaXNhdGlvbiAqLworICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIiIgOjo6ICJjYyIsIm1lbW9yeSIpOworICAgfQorICAgcmV0dXJuIHM7Cit9CisKKy8qIERpdHRvIGZvciBtZW1jcHkgKi8KK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCit2b2lkKiBteV9tZW1jcHkodm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3QgbikKK3sKKyAgIHNpemVfdCBpOworICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgKCh1bnNpZ25lZCBjaGFyKilkZXN0KVtpXSA9ICgodW5zaWduZWQgY2hhciopc3JjKVtpXTsKKyAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCIiIDo6OiAiY2MiLCJtZW1vcnkiKTsKKyAgIH0KKyAgIHJldHVybiBkZXN0OworfQorCitzdGF0aWMgdm9pZCogbWVtYWxpZ25femVyb2VkNjQoc2l6ZV90IHNpemUpCit7CisgICBjaGFyKiBwID0gbWVtYWxpZ242NChzaXplKTsKKyAgIGlmIChwICYmIHNpemUgPiAwKSB7CisgICAgICBteV9tZW1zZXQocCwgMCwgc2l6ZSk7CisgICB9CisgICByZXR1cm4gcDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgZG9feHNhdmUgKCB2b2lkKiBwLCBVSW50IHJmYm0gKQoreworICAgYXNzZXJ0KHJmYm0gPD0gNyk7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAgICJtb3ZxICUwLCAlJXJheDsgIHhvcnEgJSVyZHgsICUlcmR4OyAgeHNhdmUgKCUxKSIKKyAgICAgICAgIDogLypPVVQqLyA6IC8qSU4qLyAiciIoKFVMb25nKXJmYm0pLCAiciIocCkKKyAgICAgICAgIDogLypUUkFTSCovICJtZW1vcnkiLCAicmF4IiwgInJkeCIKKyAgICk7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIGRvX3hyc3RvciAoIHZvaWQqIHAsIFVJbnQgcmZibSApCit7CisgICBhc3NlcnQocmZibSA8PSA3KTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgIm1vdnEgJTAsICUlcmF4OyAgeG9ycSAlJXJkeCwgJSVyZHg7ICB4cnN0b3IgKCUxKSIKKyAgICAgICAgIDogLypPVVQqLyA6IC8qSU4qLyAiciIoKFVMb25nKXJmYm0pLCAiciIocCkKKyAgICAgICAgIDogLypUUkFTSCovICJyYXgiLCAicmR4IiAvKiBGSVhNRSBwbHVzIGFsbCBYODcsU1NFLEFWWCByZWdzICovCisgICApOworfQorCisvKiBzZXQgdXAgdGhlIEZQLCBTU0UgYW5kIEFWWCBzdGF0ZSwgYW5kIHRoZW4gZHVtcCBpdC4gKi8KK3N0YXRpYyB2b2lkIGRvX3NldHVwX3RoZW5feHNhdmUgKCB2b2lkKiBwLCBVSW50IHJmYm0gKQoreworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oImZpbml0Iik7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiZmxkcGkiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJmbGQxIik7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiZmxkbG4yIik7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiZmxkbGcyIik7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiZmxkICVzdCgzKSIpOworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oImZsZCAlc3QoMykiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJmbGQxIik7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygidm1vdnVwcyAoJTApLCAlJXltbTAiIDogOiAiciIoJnZlYzBbMF0pIDogInhtbTAiICk7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygidm1vdnVwcyAoJTApLCAlJXltbTEiIDogOiAiciIoJnZlYzFbMF0pIDogInhtbTEiICk7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygidnhvcnBzICAleW1tMiwgJXltbTIsICV5bW0yIik7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygidm1vdmFwcyAleW1tMCwgJXltbTMiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ2bW92YXBzICV5bW0xLCAleW1tNCIpOworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInZtb3ZhcHMgJXltbTIsICV5bW01Iik7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygidm1vdmFwcyAleW1tMCwgJXltbTYiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ2bW92YXBzICV5bW0xLCAleW1tNyIpOworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oInZtb3ZhcHMgJXltbTEsICV5bW04Iik7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygidm1vdmFwcyAleW1tMiwgJXltbTkiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ2bW92YXBzICV5bW0wLCAleW1tMTAiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ2bW92YXBzICV5bW0xLCAleW1tMTEiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ2bW92YXBzICV5bW0xLCAleW1tMTIiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ2bW92YXBzICV5bW0yLCAleW1tMTMiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ2bW92YXBzICV5bW0wLCAleW1tMTQiKTsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJ2bW92YXBzICV5bW0xLCAleW1tMTUiKTsKKyAgIGRvX3hzYXZlKHAsIHJmYm0pOworfQorCitzdGF0aWMgaW50IGlzRlBMc2JzICggaW50IGkgKQoreworICAgaW50IHE7CisgICBxID0gMzI7IGlmIChpID09IHEgfHwgaSA9PSBxKzEpIHJldHVybiAxOworICAgcSA9IDQ4OyBpZiAoaSA9PSBxIHx8IGkgPT0gcSsxKSByZXR1cm4gMTsKKyAgIHEgPSA2NDsgaWYgKGkgPT0gcSB8fCBpID09IHErMSkgcmV0dXJuIDE7CisgICBxID0gODA7IGlmIChpID09IHEgfHwgaSA9PSBxKzEpIHJldHVybiAxOworICAgcSA9IDk2OyBpZiAoaSA9PSBxIHx8IGkgPT0gcSsxKSByZXR1cm4gMTsKKyAgIHEgPSAxMTI7IGlmIChpID09IHEgfHwgaSA9PSBxKzEpIHJldHVybiAxOworICAgcSA9IDEyODsgaWYgKGkgPT0gcSB8fCBpID09IHErMSkgcmV0dXJuIDE7CisgICBxID0gMTQ0OyBpZiAoaSA9PSBxIHx8IGkgPT0gcSsxKSByZXR1cm4gMTsKKyAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBzaG93ICggdW5zaWduZWQgY2hhciogYnVmLCBCb29sIGhpZGVCaXRzNjR0bzc5ICkKK3sKKyAgIGludCBpOworICAgZm9yIChpID0gMDsgaSA8IFhTQVZFX0FSRUFfU0laRTsgaSsrKSB7CisgICAgICBpZiAoKGkgJSAxNikgPT0gMCkKKyAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJTNkICAgIiwgaSk7CisgICAgICBpZiAoaGlkZUJpdHM2NHRvNzkgJiYgaXNGUExzYnMoaSkpCisJIGZwcmludGYoc3RkZXJyLCAieHggIik7CisgICAgICBlbHNlCisgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiUwMnggIiwgYnVmW2ldKTsKKyAgICAgIGlmIChpID4gMCAmJiAoKGkgJSAxNikgPT0gMTUpKQorICAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOworICAgfQorfQorCitzdGF0aWMgdm9pZCBjcHVpZCAoIFVJbnQqIGVheCwgVUludCogZWJ4LCBVSW50KiBlY3gsIFVJbnQqIGVkeCwgCisgICAgICAgICAgICAgICAgICAgIFVJbnQgaW5kZXgsIFVJbnQgZWN4X2luICkKK3sKKyAgIFVJbnQgYSxiLGMsZDsKKyAgIGFzbSB2b2xhdGlsZSAoImNwdWlkIgorICAgICAgICAgICAgICAgICA6ICI9YSIgKGEpLCAiPWIiIChiKSwgIj1jIiAoYyksICI9ZCIgKGQpIFwKKyAgICAgICAgICAgICAgICAgOiAiMCIgKGluZGV4KSwgIjIiKGVjeF9pbikgKTsKKyAgICplYXggPSBhOyAqZWJ4ID0gYjsgKmVjeCA9IGM7ICplZHggPSBkOworICAgLy9mcHJpbnRmKHN0ZGVyciwgIiUwOHggJTA4eCAtPiAlMDh4ICUwOHggJTA4eCAlMDh4XG4iLAorICAgLy8gICAgICAgIGluZGV4LGVjeF9pbiwgYSxiLGMsZCApOworfQorCitzdGF0aWMgdm9pZCB4Z2V0YnYgKCBVSW50KiBlYXgsIFVJbnQqIGVkeCwgVUludCBlY3hfaW4gKQoreworICAgVUludCBhLGQ7CisgICBhc20gdm9sYXRpbGUgKCJ4Z2V0YnYiCisgICAgICAgICAgICAgICAgIDogIj1hIiAoYSksICI9ZCIgKGQpIFwKKyAgICAgICAgICAgICAgICAgOiAiYyIoZWN4X2luKSApOworICAgKmVheCA9IGE7ICplZHggPSBkOworfQorCitzdGF0aWMgdm9pZCBjaGVja19mb3JfeHNhdmUgKCB2b2lkICkKK3sKKyAgIFVJbnQgZWF4LCBlYngsIGVjeCwgZWR4OworICAgQm9vbCBvayA9IFRydWU7CisKKyAgIGVheCA9IGVieCA9IGVjeCA9IGVkeCA9IDA7CisgICBjcHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4LCAxLDApOworICAgLy9mcHJpbnRmKHN0ZGVyciwgImNwdWlkKDEpLmVjeFsyNj14c2F2ZV0gICA9ICV1XG4iLCAoZWN4ID4+IDI2KSAmIDEpOworICAgb2sgPSBvayAmJiAoKChlY3ggPj4gMjYpICYgMSkgPT0gMSk7CisKKyAgIGVheCA9IGVieCA9IGVjeCA9IGVkeCA9IDA7CisgICBjcHVpZCgmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4LCAxLDApOworICAgLy9mcHJpbnRmKHN0ZGVyciwgImNwdWlkKDEpLmVjeFsyNz1vc3hzYXZlXSA9ICV1XG4iLCAoZWN4ID4+IDI3KSAmIDEpOworICAgb2sgPSBvayAmJiAoKChlY3ggPj4gMjcpICYgMSkgPT0gMSk7CisKKyAgIGVheCA9IGVieCA9IGVjeCA9IGVkeCA9IDA7CisgICB4Z2V0YnYoJmVheCwgJmVkeCwgMCk7CisgICAvL2ZwcmludGYoc3RkZXJyLCAieGdldGJ2KDApID0gJXU6JXVcbiIsIGVkeCwgZWF4KTsKKyAgIG9rID0gb2sgJiYgKGVkeCA9PSAwKSAmJiAoZWF4ID09IDcpOworCisgICBpZiAob2spIHJldHVybjsKKworICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICJUaGlzIHByb2dyYW0gbXVzdCBiZSBydW4gb24gYSBDUFUgdGhhdCBzdXBwb3J0cyBBVlggYW5kIFhTQVZFLlxuIik7CisgICBleGl0KDEpOworfQorCisKK3ZvaWQgdGVzdF94c2F2ZSAoIEJvb2wgaGlkZUJpdHM2NHRvNzkgKQoreworICAgLyogVGVzdGluZyBYU0FWRToKKworICAgICAgRm9yIFJCRk0gaW4gMCAuLiA3ICh0aGF0IGlzLCBhbGwgY29tYmluYXRpb25zKTogc2V0IHRoZSB4ODcsIFNTRQorICAgICAgYW5kIEFWWCByZWdpc3RlcnMgd2l0aCBzb21lIHZhbHVlcywgZG8gWFNBVkUgdG8gZHVtcCBpdCwgYW5kCisgICAgICBwcmludCB0aGUgcmVzdWx0aW5nIGJ1ZmZlci4gKi8KKworICAgVUludCByZmJtOworICAgZm9yIChyZmJtID0gMDsgcmZibSA8PSA3OyByZmJtKyspIHsKKyAgICAgIFVDaGFyKiBzYXZlZF9pbWcgPSBtZW1hbGlnbl96ZXJvZWQ2NChYU0FWRV9BUkVBX1NJWkUpOworCisgICAgICBteV9tZW1zZXQoc2F2ZWRfaW1nLCAweEFBLCBYU0FWRV9BUkVBX1NJWkUpOworICAgICAgc2F2ZWRfaW1nWzUxMl0gPSAwOworICAgICAgZG9fc2V0dXBfdGhlbl94c2F2ZShzYXZlZF9pbWcsIHJmYm0pOworCisgICAgICBmcHJpbnRmKHN0ZGVyciwgCisgICAgICAgICAgICAgICItLS0tLS0tLS0tLS0tLS0tLS0gWFNBVkUsIHJmYm0gPSAldSAtLS0tLS0tLS0tLS0tLS0tLS1cbiIsIHJmYm0pOworICAgICAgc2hvdyhzYXZlZF9pbWcsIGhpZGVCaXRzNjR0bzc5KTsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKworICAgICAgZnJlZShzYXZlZF9pbWcpOworICAgfQorfQorCisKK3ZvaWQgdGVzdF94cnN0b3IgKCBCb29sIGhpZGVCaXRzNjR0bzc5ICkKK3sKKyAgIC8qIFRlc3RpbmcgWFJTVE9SIGlzIG1vcmUgY29tcGxleCB0aGFuIHRlc3RpbmcgWFNBVkUsIGJlY2F1c2UgdGhlCisgICAgICBsb2FkZWQgdmFsdWUocykgZGVwZW5kIG5vdCBvbmx5IG9uIHdoYXQgYml0cyBhcmUgcmVxdWVzdGVkIChieQorICAgICAgUkJGTSkgYnV0IGFsc28gb24gd2hhdCBiaXRzIGFyZSBhY3R1YWxseSBwcmVzZW50IGluIHRoZSBpbWFnZQorICAgICAgKGRlZmluZWQgYnkgWFNUQVRFX0JWKS4gIFNvIHdlIGhhdmUgdG8gdGVzdCBhbGwgNjQgKDggeCA4KQorICAgICAgY29tYmluYXRpb25zLgorCisgICAgICBUaGUgYXBwcm9hY2ggaXMgdG8gZmlsbCBhIG1lbW9yeSBidWZmZXIgd2l0aCBkYXRhLCBkbyBYUlNUT1IKKyAgICAgIGZyb20gdGhlIGJ1ZmZlciwgdGhlbSBkdW1wIGFsbCBjb21wb25lbnRzIHdpdGggWFNBVkUgaW4gYSBuZXcKKyAgICAgIGJ1ZmZlciwgYW5kIHByaW50IHRoZSByZXN1bHQuICBUaGlzIGlzIGNvbXBsaWNhdGVkIGJ5IHRoZSBmYWN0CisgICAgICB0aGF0IHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzZWUgd2hpY2ggcGFydHMgb2YgdGhlIHN0YXRlIChpbgorICAgICAgcmVnaXN0ZXJzKSBhcmUgbmVpdGhlciBvdmVyd3JpdHRlbiBub3IgemVyb2VkIGJ5IHRoZSByZXN0b3JlLgorICAgICAgSGVuY2UgdGhlIHJlZ2lzdGVycyBtdXN0IGJlIHByZS1maWxsZWQgd2l0aCB2YWx1ZXMgd2hpY2ggYXJlCisgICAgICBuZWl0aGVyIHplcm8gbm9yIHRoZSBkYXRhIHRvIGJlIGxvYWRlZC4gIFdlIGNob29zZSB0byB1c2UgMHg1NQorICAgICAgd2hlcmUgcG9zc2libGUuICovCisKKyAgIFVDaGFyKiBmaXZlcyA9IG1lbWFsaWduX3plcm9lZDY0KFhTQVZFX0FSRUFfU0laRSk7CisgICBteV9tZW1zZXQoZml2ZXMsIDB4NTUsIFhTQVZFX0FSRUFfU0laRSk7CisgICAvKiBTZXQgTVhDU1Igc28gdGhhdCB0aGUgaW5zbiBkb2Vzbid0IGZhdWx0ICovCisgICBmaXZlc1syNF0gPSAweDgwOworICAgZml2ZXNbMjVdID0gMHgxZjsKKyAgIGZpdmVzWzI2XSA9IDA7CisgICBmaXZlc1syN10gPSAwOworICAgLyogRGl0dG8gZm9yIHRoZSBYU0FWRSBoZWFkZXIgYXJlYS4gIEFsc28gc2V0IFhTVEFURV9CVi4gKi8KKyAgIGZpdmVzWzUxMl0gPSA3OworICAgVUludCBpOworICAgZm9yIChpID0gMTsgaSA8PSAyMzsgaSsrKSBmaXZlc1s1MTIraV0gPSAwOworICAgLyogRmlsbCB0aGUgeDg3IHJlZ2lzdGVyIHZhbHVlcyB3aXRoIHNvbWV0aGluZyB0aGF0IFZFWCdzCisgICAgICA4MC12cy02NC1iaXQga2x1ZGdpbmcgd29uJ3QgbWVzcyB1cCAtLSBhbiA4MCBiaXQgbnVtYmVyIHdoaWNoIGlzCisgICAgICByZXByZXNlbnRhYmxlIGFsc28gYXMgNjQgYml0OiAxMjM0NTY3ODkuMDEyMyAqLworICAgZm9yIChpID0gMDsgaSA8PSA3OyBpKyspIHsKKyAgICAgIFVDaGFyKiBwID0gJmZpdmVzWzMyICsgMTYgKiBpXTsKKyAgICAgIHBbMF09MHgwMDsgcFsxXT0weGY4OyBwWzJdPTB4YzI7IHBbM109MHg2NDsgcFs0XT0weGEwOworICAgICAgcFs1XT0weGEyOyBwWzZdPTB4Nzk7IHBbN109MHhlYjsgcFs4XT0weDE5OyBwWzldPTB4NDA7CisgICB9CisgICAvKiBBbmQgbWFyayB0aGUgdGFncyBmb3IgYWxsIDggZHVtcGVkIHJlZ3MgYXMgInZhbGlkIi4gKi8KKyAgIGZpdmVzWzQvKkZUVyovXSA9IDB4RkY7CisKKyAgIC8qICgxKSAoc2VlIGNvbW1lbnQgaW4gbG9vcCBiZWxvdykgKi8KKyAgIFVDaGFyKiBzdGFuZGFyZF90ZXN0X2RhdGEgPSBtZW1hbGlnbl96ZXJvZWQ2NChYU0FWRV9BUkVBX1NJWkUpOworICAgZG9fc2V0dXBfdGhlbl94c2F2ZShzdGFuZGFyZF90ZXN0X2RhdGEsIDcpOworCisgICBVSW50IHhzdGF0ZV9idiwgcmZibTsKKyAgIGZvciAoeHN0YXRlX2J2ID0gMDsgeHN0YXRlX2J2IDw9IDc7IHhzdGF0ZV9idisrKSB7CisgICAgICBmb3IgKHJmYm0gPSAwOyByZmJtIDw9IDc7IHJmYm0rKykgeworICAgLy97IHhzdGF0ZV9idiA9IDc7CisgICAvLyAgICAgIHsgcmZibSA9IDY7CisgICAgICAgICAvKiAxLiAgQ29weSB0aGUgInN0YW5kYXJkIHRlc3QgZGF0YSIgaW50byByZWdpc3RlcnMsIGFuZCBkdW1wCisgICAgICAgICAgICAgICAgaXQgd2l0aCBYU0FWRS4gIFRoaXMgZ2l2ZXMgdXMgYW4gaW1hZ2Ugd2UgY2FuIHRyeQorICAgICAgICAgICAgICAgIHJlc3RvcmluZyBmcm9tLgorCisgICAgICAgICAgICAyLiAgU2V0IHRoZSByZWdpc3RlciBzdGF0ZSB0byBhbGwtMHg1NXMgKGFzIGZhciBhcyBpcworICAgICAgICAgICAgICAgIHBvc3NpYmxlKSwgc28gd2UgY2FuIHNlZSB3aGljaCBwYXJ0cyBnZXQgb3ZlcndyaXR0ZW4KKyAgICAgICAgICAgICAgICBhbmQgd2hpY2ggcGFydHMgZ2V0IHplcm9lZCBvbiB0aGUgdGVzdCByZXN0b3JlLgorCisgICAgICAgICAgICAzLiAgRG8gdGhlIHJlc3RvcmUgZnJvbSB0aGUgaW1hZ2UgcHJlcGFyZWQgaW4gKDEpLgorCisgICAgICAgICAgICA0LiAgRHVtcCB0aGUgc3RhdGUgd2l0aCBYU0FWRSBhbmQgcHJpbnQgaXQuCisgICAgICAgICAqLworCisgICAgICAgICAvKiAoM2EpLiAgV2UgY2FuJ3QgdXNlIHxzdGFuZGFyZF90ZXN0X2RhdGF8IGRpcmVjdGx5LCBzaW5jZSB3ZQorICAgICAgICAgICAgbmVlZCB0byBwdXQgaW4gdGhlIHJlcXVpcmVkIHx4c3RhdGVfYnZ8IHZhbHVlLiAgU28gbWFrZSBhCisgICAgICAgICAgICBjb3B5IGFuZCBtb2RpZnkgdGhhdCBpbnN0ZWFkLiAqLworICAgICAgICAgVUNoYXIqIGltZ190b19yZXN0b3JlX2Zyb20gPSBtZW1hbGlnbl96ZXJvZWQ2NChYU0FWRV9BUkVBX1NJWkUpOworICAgICAgICAgbXlfbWVtY3B5KGltZ190b19yZXN0b3JlX2Zyb20sIHN0YW5kYXJkX3Rlc3RfZGF0YSwgWFNBVkVfQVJFQV9TSVpFKTsKKyAgICAgICAgIGltZ190b19yZXN0b3JlX2Zyb21bNTEyXSA9IHhzdGF0ZV9idjsKKworICAgICAgICAgLyogKDRhKSAqLworICAgICAgICAgVUNoYXIqIHNhdmVkX2ltZyA9IG1lbWFsaWduX3plcm9lZDY0KFhTQVZFX0FSRUFfU0laRSk7CisgICAgICAgICBteV9tZW1zZXQoc2F2ZWRfaW1nLCAweEFBLCBYU0FWRV9BUkVBX1NJWkUpOworICAgICAgICAgc2F2ZWRfaW1nWzUxMl0gPSAwOworCisgICAgICAgICAvKiAoMikgKi8KKyAgICAgICAgIGRvX3hyc3RvcihmaXZlcywgNyk7CisKKyAgICAgICAgIC8vIFg4NywgU1NFLCBBVlggc3RhdGUgTElWRQorCisgICAgICAgICAvKiAoM2IpICovCisgICAgICAgICAvKiBhbmQgdGhpcyBpcyB3aGF0IHdlJ3JlIGFjdHVhbGx5IHRyeWluZyB0byB0ZXN0ICovCisgICAgICAgICBkb194cnN0b3IoaW1nX3RvX3Jlc3RvcmVfZnJvbSwgcmZibSk7CisKKyAgICAgICAgIC8vIFg4NywgU1NFLCBBVlggc3RhdGUgTElWRQorCisgICAgICAgICAvKiAoNGIpICovCisgICAgICAgICBkb194c2F2ZShzYXZlZF9pbWcsIDcpOworCisgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgCisgICAgICAgICAgICAgICAgICItLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gJXUsIHJmYm0gPSAldSAtLS0tLS0tLS1cbiIsCisgICAgICAgICAgICAgICAgeHN0YXRlX2J2LCByZmJtKTsKKyAgICAgICAgIHNob3coc2F2ZWRfaW1nLCBoaWRlQml0czY0dG83OSk7CisgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CisKKyAgICAgICAgIGZyZWUoc2F2ZWRfaW1nKTsKKyAgICAgICAgIGZyZWUoaW1nX3RvX3Jlc3RvcmVfZnJvbSk7CisgICAgICB9CisgICB9Cit9CisKKworaW50IG1haW4gKCBpbnQgYXJnYywgY2hhcioqIGFyZ3YgKQoreworICAgQm9vbCBoaWRlQml0czY0dG83OSA9IGFyZ2MgPiAxOworICAgZnByaW50ZihzdGRlcnIsICJSZS1ydW4gd2l0aCBhbnkgYXJnIHRvIHN1cHByZXNzIGxlYXN0LXNpZ25pZmljYW50XG4iCisgICAgICAgICAgICAgICAgICAgIiAgIDE2IGJpdHMgb2YgODAtYml0IEZQIG51bWJlcnNcbiIpOworCisgICBjaGVja19mb3JfeHNhdmUoKTsKKworICAgaWYgKDEpCisgICB0ZXN0X3hzYXZlKGhpZGVCaXRzNjR0bzc5KTsKKworICAgaWYgKDEpCisgICB0ZXN0X3hyc3RvcihoaWRlQml0czY0dG83OSk7CisKKyAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYW1kNjQveHNhdmUtYXZ4LnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC94c2F2ZS1hdnguc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDE1ZDExCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvYW1kNjQveHNhdmUtYXZ4LnN0ZGVyci5leHAKQEAgLTAsMCArMSwzODkwIEBACitSZS1ydW4gd2l0aCBhbnkgYXJnIHRvIHN1cHByZXNzIGxlYXN0LXNpZ25pZmljYW50CisgICAxNiBiaXRzIG9mIDgwLWJpdCBGUCBudW1iZXJzCistLS0tLS0tLS0tLS0tLS0tLS0gWFNBVkUsIHJmYm0gPSAwIC0tLS0tLS0tLS0tLS0tLS0tLQorICAwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisgMTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKyAzMiAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorIDQ4ICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisgNjQgICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKyA4MCAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorIDk2ICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxMTIgICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzEyOCAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMTQ0ICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxNjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzE3NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMTkyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisyMDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzIyNCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMjQwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisyNTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzI3MiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMjg4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCiszMDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzMyMCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMzM2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCiszNTIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzM2OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMzg0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MDAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDAwIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1OTIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzYwOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNjI0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis2NDAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzY1NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNjcyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis2ODggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzcwNCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNzIwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis3MzYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzc1MiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNzY4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis3ODQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzgwMCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorODE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisKKy0tLS0tLS0tLS0tLS0tLS0tLSBYU0FWRSwgcmZibSA9IDEgLS0tLS0tLS0tLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwOCBmZSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggY2YgZmIgODQgOWEgMjAgOWEgZmQgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjZiBkMSBmNyAxNyA3MiBiMSBmZSAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMTc2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxOTIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzIwOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMjI0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisyNDAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzI1NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMjcyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisyODggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzMwNCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMzIwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCiszMzYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzM1MiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMzY4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCiszODQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQwMCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU5MiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNjA4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis2MjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzY0MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNjU2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis2NzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzY4OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNzA0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis3MjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzczNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNzUyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis3NjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzc4NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorODAwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis4MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKworLS0tLS0tLS0tLS0tLS0tLS0tIFhTQVZFLCByZmJtID0gMiAtLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorIDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKyA0OCAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorIDY0ICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisgODAgICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKyA5NiAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMTEyICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxMjggICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzE0NCAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMTYwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisxNzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyMjQgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyNzIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI4OCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzMzNiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzUyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorNDAwICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwMiBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTkyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis2MDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzYyNCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNjQwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis2NTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzY3MiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNjg4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis3MDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzcyMCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNzM2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis3NTIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzc2OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNzg0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis4MDAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzgxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorCistLS0tLS0tLS0tLS0tLS0tLS0gWFNBVkUsIHJmYm0gPSAzIC0tLS0tLS0tLS0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDggZmUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGNmIGZiIDg0IDlhIDIwIDlhIGZkIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggY2YgZDEgZjcgMTcgNzIgYjEgZmUgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzE3NiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzIyNCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzI3MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjg4ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMzM2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNTIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCis0MDAgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDAzIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1OTIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzYwOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNjI0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis2NDAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzY1NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNjcyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis2ODggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzcwNCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNzIwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis3MzYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzc1MiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNzY4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis3ODQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzgwMCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorODE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisKKy0tLS0tLS0tLS0tLS0tLS0tLSBYU0FWRSwgcmZibSA9IDQgLS0tLS0tLS0tLS0tLS0tLS0tCisgIDAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKyAxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisgNDggICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKyA2NCAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorIDgwICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisgOTYgICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzExMiAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMTI4ICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxNDQgICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzE2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMTc2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxOTIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzIwOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMjI0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisyNDAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzI1NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMjcyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisyODggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzMwNCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMzIwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCiszMzYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzM1MiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMzY4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCiszODQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQwMCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDQgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzU5MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY0MCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY4OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzA0ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNzUyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3NjggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis4MTYgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKworLS0tLS0tLS0tLS0tLS0tLS0tIFhTQVZFLCByZmJtID0gNSAtLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDA4IGZlIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjZiBmYiA4NCA5YSAyMCA5YSBmZCAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGNmIGQxIGY3IDE3IDcyIGIxIGZlIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxNzYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzE5MiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMjA4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisyMjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzI0MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMjU2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisyNzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzI4OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMzA0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCiszMjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzMzNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMzUyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCiszNjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzM4NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDAwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNTkyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjQwICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjg4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MDQgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis3NTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc2OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzgxNiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorCistLS0tLS0tLS0tLS0tLS0tLS0gWFNBVkUsIHJmYm0gPSA2IC0tLS0tLS0tLS0tLS0tLS0tLQorICAwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisgMTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorIDQ4ICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisgNjQgICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKyA4MCAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorIDk2ICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxMTIgICB4eCB4eCBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzEyOCAgIHh4IHh4IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorMTQ0ICAgeHggeHggYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCisxNjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzE3NiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzIyNCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzI3MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjg4ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMzM2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNTIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCis0MDAgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA2IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis1OTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2NDAgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2ODggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcwNCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzc1MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzY4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorODE2ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCisKKy0tLS0tLS0tLS0tLS0tLS0tLSBYU0FWRSwgcmZibSA9IDcgLS0tLS0tLS0tLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwOCBmZSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggY2YgZmIgODQgOWEgMjAgOWEgZmQgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjZiBkMSBmNyAxNyA3MiBiMSBmZSAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMTc2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjI0ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjcyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyODggICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCiszMzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM1MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzQwMCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzU5MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY0MCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY4OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzA0ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNzUyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3NjggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis4MTYgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDAsIHJmYm0gPSAwIC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAwLCByZmJtID0gMSAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMCwgcmZibSA9IDIgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDAsIHJmYm0gPSAzIC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAwLCByZmJtID0gNCAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMCwgcmZibSA9IDUgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzU5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDAsIHJmYm0gPSA2IC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis1OTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2ODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAwLCByZmJtID0gNyAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMzNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMSwgcmZibSA9IDAgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDEsIHJmYm0gPSAxIC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDggZmUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGNmIGZiIDg0IDlhIDIwIDlhIGZkIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggY2YgZDEgZjcgMTcgNzIgYjEgZmUgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAxLCByZmJtID0gMiAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMzNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMSwgcmZibSA9IDMgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwOCBmZSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggY2YgZmIgODQgOWEgMjAgOWEgZmQgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjZiBkMSBmNyAxNyA3MiBiMSBmZSAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDEsIHJmYm0gPSA0IC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis1OTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2ODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAxLCByZmJtID0gNSAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDA4IGZlIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjZiBmYiA4NCA5YSAyMCA5YSBmZCAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGNmIGQxIGY3IDE3IDcyIGIxIGZlIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMSwgcmZibSA9IDYgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzU5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDEsIHJmYm0gPSA3IC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDggZmUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGNmIGZiIDg0IDlhIDIwIDlhIGZkIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggY2YgZDEgZjcgMTcgNzIgYjEgZmUgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis1OTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2ODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAyLCByZmJtID0gMCAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMiwgcmZibSA9IDEgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDIsIHJmYm0gPSAyIC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzE3NiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzIyNCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzI3MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjg4ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMzM2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNTIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCis0MDAgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAyLCByZmJtID0gMyAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisxNzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyMjQgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyNzIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI4OCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzMzNiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzUyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorNDAwICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMiwgcmZibSA9IDQgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzU5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDIsIHJmYm0gPSA1IC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis1OTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2ODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAyLCByZmJtID0gNiAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisxNzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyMjQgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyNzIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI4OCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzMzNiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzUyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorNDAwICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMiwgcmZibSA9IDcgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMTc2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjI0ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjcyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyODggICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCiszMzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM1MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzQwMCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzU5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDMsIHJmYm0gPSAwIC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAzLCByZmJtID0gMSAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDA4IGZlIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjZiBmYiA4NCA5YSAyMCA5YSBmZCAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGNmIGQxIGY3IDE3IDcyIGIxIGZlIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMywgcmZibSA9IDIgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMTc2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjI0ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjcyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyODggICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCiszMzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM1MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzQwMCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDMsIHJmYm0gPSAzIC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDggZmUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGNmIGZiIDg0IDlhIDIwIDlhIGZkIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggY2YgZDEgZjcgMTcgNzIgYjEgZmUgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzE3NiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzIyNCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzI3MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjg4ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMzM2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNTIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCis0MDAgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAzLCByZmJtID0gNCAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gMywgcmZibSA9IDUgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwOCBmZSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggY2YgZmIgODQgOWEgMjAgOWEgZmQgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjZiBkMSBmNyAxNyA3MiBiMSBmZSAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzU5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDMsIHJmYm0gPSA2IC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzE3NiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzIyNCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzI3MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjg4ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMzM2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNTIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCis0MDAgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis1OTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2ODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSAzLCByZmJtID0gNyAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDA4IGZlIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjZiBmYiA4NCA5YSAyMCA5YSBmZCAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGNmIGQxIGY3IDE3IDcyIGIxIGZlIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisxNzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyMjQgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyNzIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI4OCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzMzNiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzUyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorNDAwICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3NTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzc2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNCwgcmZibSA9IDAgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDQsIHJmYm0gPSAxIC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA0LCByZmJtID0gMiAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMzNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNCwgcmZibSA9IDMgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDQsIHJmYm0gPSA0IC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis1OTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2NDAgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2ODggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcwNCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzc1MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzY4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorODE2ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA0LCByZmJtID0gNSAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNTkyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjQwICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjg4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MDQgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis3NTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc2OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzgxNiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNCwgcmZibSA9IDYgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzU5MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY0MCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY4OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzA0ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNzUyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3NjggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis4MTYgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDQsIHJmYm0gPSA3IC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis1OTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2NDAgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2ODggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcwNCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzc1MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzY4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorODE2ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA1LCByZmJtID0gMCAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNSwgcmZibSA9IDEgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwOCBmZSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggY2YgZmIgODQgOWEgMjAgOWEgZmQgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjZiBkMSBmNyAxNyA3MiBiMSBmZSAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDUsIHJmYm0gPSAyIC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE3NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIyNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI3MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjg4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzM2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA1LCByZmJtID0gMyAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDA4IGZlIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjZiBmYiA4NCA5YSAyMCA5YSBmZCAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGNmIGQxIGY3IDE3IDcyIGIxIGZlIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMzNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNSwgcmZibSA9IDQgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzU5MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY0MCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY4OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzA0ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNzUyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3NjggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis4MTYgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDUsIHJmYm0gPSA1IC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDggZmUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGNmIGZiIDg0IDlhIDIwIDlhIGZkIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggY2YgZDEgZjcgMTcgNzIgYjEgZmUgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis1OTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2NDAgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2ODggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcwNCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzc1MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzY4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorODE2ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA1LCByZmJtID0gNiAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMjQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNzIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI4OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMzNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzUyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDAwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNTkyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjQwICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjg4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MDQgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis3NTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc2OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzgxNiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNSwgcmZibSA9IDcgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwOCBmZSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggY2YgZmIgODQgOWEgMjAgOWEgZmQgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjZiBkMSBmNyAxNyA3MiBiMSBmZSAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTc2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjI0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjcyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyODggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMzYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM1MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzQwMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzU5MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY0MCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY4OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzA0ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNzUyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3NjggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis4MTYgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDYsIHJmYm0gPSAwIC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA2LCByZmJtID0gMSAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNiwgcmZibSA9IDIgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMTc2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjI0ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjcyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyODggICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCiszMzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM1MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzQwMCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDYsIHJmYm0gPSAzIC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzE3NiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzIyNCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzI3MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjg4ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMzM2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNTIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCis0MDAgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA2LCByZmJtID0gNCAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNTkyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjQwICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjg4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MDQgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis3NTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc2OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzgxNiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNiwgcmZibSA9IDUgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzU5MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY0MCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY4OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzA0ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNzUyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3NjggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis4MTYgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDYsIHJmYm0gPSA2IC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzE3NiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzIyNCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzI3MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjg4ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMzM2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNTIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCis0MDAgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis1OTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2NDAgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2ODggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcwNCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzc1MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzY4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorODE2ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA2LCByZmJtID0gNyAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisxNzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyMjQgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyNzIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI4OCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzMzNiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzUyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorNDAwICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNTkyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjQwICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjg4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MDQgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis3NTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc2OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzgxNiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNywgcmZibSA9IDAgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxOTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDcsIHJmYm0gPSAxIC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDggZmUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGNmIGZiIDg0IDlhIDIwIDlhIGZkIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggY2YgZDEgZjcgMTcgNzIgYjEgZmUgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis1OTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYwOCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjI0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY1NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjcyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2ODggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcwNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzIwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc1MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzY4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3ODQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgwMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODE2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA3LCByZmJtID0gMiAtLS0tLS0tLS0KKyAgMCAgIDdmIDA3IDAwIDU1IGZmIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisxNzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzE5MiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjA4ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyMjQgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI0MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMjU2ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCisyNzIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzI4OCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzA0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszMjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzMzNiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzUyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNjggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzM4NCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorNDAwICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzYyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzcyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzgxNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNywgcmZibSA9IDMgLS0tLS0tLS0tCisgIDAgICA3ZiAwMyAwMCAwOCBmZSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggY2YgZmIgODQgOWEgMjAgOWEgZmQgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjZiBkMSBmNyAxNyA3MiBiMSBmZSAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMTc2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjI0ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjcyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyODggICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCiszMzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM1MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzQwMCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzU5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2MjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis2NzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzY4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3MjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzczNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis3NjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzc4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorODAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis4MTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDcsIHJmYm0gPSA0IC0tLS0tLS0tLQorICAwICAgN2YgMDcgMDAgNTUgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE3NiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMTkyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMDggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzIyNCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjQwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNTYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI3MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjg4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMDQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMyMCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzM2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNTIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM2OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzg0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MDAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis1OTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2NDAgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2ODggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcwNCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzc1MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzY4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorODE2ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCisKKy0tLS0tLS0tLS0gWFJTVE9SLCB4c3RhdGVfYnYgPSA3LCByZmJtID0gNSAtLS0tLS0tLS0KKyAgMCAgIDdmIDAzIDAwIDA4IGZlIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDE2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgODAgMWYgMDAgMDAgZmYgZmYgMDAgMDAgCisgMzIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA0OCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDY0ICAgeHggeHggNjggMjEgYTIgZGEgMGYgYzkgMDAgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgODAgICB4eCB4eCBjZiBmYiA4NCA5YSAyMCA5YSBmZCAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKyA5NiAgIHh4IHh4IGNmIGQxIGY3IDE3IDcyIGIxIGZlIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorMTEyICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMjggICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE0NCAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTYwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisxNzYgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzE5MiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjA4ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyMjQgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI0MCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMjU2ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCisyNzIgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzI4OCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzA0ICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszMjAgICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzMzNiAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorMzUyICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCiszNjggICA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSA1NSAKKzM4NCAgIDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IDU1IAorNDAwICAgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgNTUgCis0MTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQzMiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDQ4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NjQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ4MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDk2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MTIgICAwNyBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUyOCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTQ0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NjAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU3NiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNTkyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2MDggICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzYyNCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjQwICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis2NTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzY3MiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNjg4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MDQgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNzM2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis3NTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc2OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzg0ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis4MDAgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzgxNiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorCistLS0tLS0tLS0tIFhSU1RPUiwgeHN0YXRlX2J2ID0gNywgcmZibSA9IDYgLS0tLS0tLS0tCisgIDAgICA3ZiAwNyAwMCA1NSBmZiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKyAxNiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDgwIDFmIDAwIDAwIGZmIGZmIDAwIDAwIAorIDMyICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgNDggICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA2NCAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorIDgwICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgOTYgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzExMiAgIHh4IHh4IGMyIDY0IGEwIGEyIDc5IGViIDE5IDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTI4ICAgeHggeHggYzIgNjQgYTAgYTIgNzkgZWIgMTkgNDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNDQgICB4eCB4eCBjMiA2NCBhMCBhMiA3OSBlYiAxOSA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKzE2MCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMTc2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisxOTIgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzIwOCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjI0ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyNDAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzI1NiAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMjcyICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCisyODggICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzMwNCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzIwICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCiszMzYgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM1MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMzY4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCiszODQgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzQwMCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorNDE2ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0MzIgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ0OCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDY0ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0ODAgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ5NiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTEyICAgMDcgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1MjggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU0NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTYwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzU5MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjA4ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2MjQgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY0MCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNjU2ICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis2NzIgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzY4OCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzA0ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3MjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzczNiAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorNzUyICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3NjggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzc4NCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorODAwICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis4MTYgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKworLS0tLS0tLS0tLSBYUlNUT1IsIHhzdGF0ZV9idiA9IDcsIHJmYm0gPSA3IC0tLS0tLS0tLQorICAwICAgN2YgMDMgMDAgMDggZmUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisgMTYgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCA4MCAxZiAwMCAwMCBmZiBmZiAwMCAwMCAKKyAzMiAgIHh4IHh4IDAwIDAwIDAwIDAwIDAwIDgwIGZmIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDQ4ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgODAgZmYgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisgNjQgICB4eCB4eCA2OCAyMSBhMiBkYSAwZiBjOSAwMCA0MCAwMCAwMCAwMCAwMCAwMCAwMCAKKyA4MCAgIHh4IHh4IGNmIGZiIDg0IDlhIDIwIDlhIGZkIDNmIDAwIDAwIDAwIDAwIDAwIDAwIAorIDk2ICAgeHggeHggY2YgZDEgZjcgMTcgNzIgYjEgZmUgM2YgMDAgMDAgMDAgMDAgMDAgMDAgCisxMTIgICB4eCB4eCAwMCAwMCAwMCAwMCAwMCA4MCBmZiAzZiAwMCAwMCAwMCAwMCAwMCAwMCAKKzEyOCAgIHh4IHh4IDY4IDIxIGEyIGRhIDBmIGM5IDAwIDQwIDAwIDAwIDAwIDAwIDAwIDAwIAorMTQ0ICAgeHggeHggMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisxNjAgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzE3NiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMTkyICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyMDggICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzIyNCAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCisyNTYgICA3OCA1NiAzNCAxMiA0NCAzMyAyMiAxMSA4OCA3NyA2NiA1NSAyMSA0MyA2NSA4NyAKKzI3MiAgIDAxIGVmIGNkIGFiIGRkIGNjIGJiIGFhIDExIDAwIGZmIGVlIGJhIGRjIGZlIDEwIAorMjg4ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszMDQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzMyMCAgIDc4IDU2IDM0IDEyIDQ0IDMzIDIyIDExIDg4IDc3IDY2IDU1IDIxIDQzIDY1IDg3IAorMzM2ICAgMDEgZWYgY2QgYWIgZGQgY2MgYmIgYWEgMTEgMDAgZmYgZWUgYmEgZGMgZmUgMTAgCiszNTIgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzM2OCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorMzg0ICAgNzggNTYgMzQgMTIgNDQgMzMgMjIgMTEgODggNzcgNjYgNTUgMjEgNDMgNjUgODcgCis0MDAgICAwMSBlZiBjZCBhYiBkZCBjYyBiYiBhYSAxMSAwMCBmZiBlZSBiYSBkYyBmZSAxMCAKKzQxNiAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDMyICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0NDggICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzQ2NCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNDgwICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis0OTYgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzUxMiAgIDA3IGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTI4ICAgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgYWEgCis1NDQgICBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSBhYSAKKzU2MCAgIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIGFhIAorNTc2ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis1OTIgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzYwOCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjI0ICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2NDAgICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzY1NiAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIAorNjcyICAgNDggMzcgMjYgMTUgOTQgOTMgOTIgOTEgNDkgMzkgMjkgMTkgMTUgMjYgMzcgNDggCis2ODggICAxMCBmZSBkYyBiYSA4OCA5OSBlZSBmZiAyMiA3NyA2NiAxMSBhYiBjZCBlZiAwMSAKKzcwNCAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgCis3MzYgICA0OCAzNyAyNiAxNSA5NCA5MyA5MiA5MSA0OSAzOSAyOSAxOSAxNSAyNiAzNyA0OCAKKzc1MiAgIDEwIGZlIGRjIGJhIDg4IDk5IGVlIGZmIDIyIDc3IDY2IDExIGFiIGNkIGVmIDAxIAorNzY4ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCis3ODQgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKKzgwMCAgIDQ4IDM3IDI2IDE1IDk0IDkzIDkyIDkxIDQ5IDM5IDI5IDE5IDE1IDI2IDM3IDQ4IAorODE2ICAgMTAgZmUgZGMgYmEgODggOTkgZWUgZmYgMjIgNzcgNjYgMTEgYWIgY2QgZWYgMDEgCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2FtZDY0L3hzYXZlLWF2eC5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbWVtY2hlY2svdGVzdHMvYW1kNjQveHNhdmUtYXZ4LnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2FtZDY0L3hzYXZlLWF2eC52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC94c2F2ZS1hdngudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiMjc5M2EKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9hbWQ2NC94c2F2ZS1hdngudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorcHJvZzogeHNhdmUtYXZ4CitwcmVyZXE6IHRlc3QgLXggeHNhdmUtYXZ4ICYmIC4uLy4uLy4uL3Rlc3RzL3g4Nl9hbWQ2NF9mZWF0dXJlcyBhbWQ2NC1hdngKK3Znb3B0czogLXEKK2FyZ3M6IHgKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2JhZGp1bXAyLmMgYi9tZW1jaGVjay90ZXN0cy9iYWRqdW1wMi5jCmluZGV4IDdlMDlhZjUuLjIwODVhMzAgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2JhZGp1bXAyLmMKKysrIGIvbWVtY2hlY2svdGVzdHMvYmFkanVtcDIuYwpAQCAtMjQsNyArMjQsNyBAQAogICAgLyogSW5zdGFsbCBvd24gU0lHU0VHViBoYW5kbGVyICovCiAgICBzaWdzZWd2X25ldy5zYV9oYW5kbGVyICA9IFNJR1NFR1ZfaGFuZGxlcjsKICAgIHNpZ3NlZ3ZfbmV3LnNhX2ZsYWdzICAgID0gMDsKLSNpZiAhZGVmaW5lZChfX0FQUExFX18pCisjaWYgIWRlZmluZWQoX19BUFBMRV9fKSAmJiAhZGVmaW5lZChfX3N1bikKICAgIHNpZ3NlZ3ZfbmV3LnNhX3Jlc3RvcmVyID0gTlVMTDsKICNlbmRpZgogICAgcmVzID0gc2lnZW1wdHlzZXQoICZzaWdzZWd2X25ldy5zYV9tYXNrICk7CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9iaWdfYmxvY2tzX2ZyZWVkX2xpc3Quc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2JpZ19ibG9ja3NfZnJlZWRfbGlzdC5zdGRlcnIuZXhwCmluZGV4IDNjNGM3MjguLmQwZmQ4MDMgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2JpZ19ibG9ja3NfZnJlZWRfbGlzdC5zdGRlcnIuZXhwCisrKyBiL21lbWNoZWNrL3Rlc3RzL2JpZ19ibG9ja3NfZnJlZWRfbGlzdC5zdGRlcnIuZXhwCkBAIC00LDEyICs0LDE4IEBACiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDEsMDAwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMSwwMDAsMDE1IGZyZWUnZAogICAgYXQgMHguLi4uLi4uLjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChiaWdfYmxvY2tzX2ZyZWVkX2xpc3QuYzoyMSkKKyBCbG9jayB3YXMgYWxsb2MnZCBhdAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGJpZ19ibG9ja3NfZnJlZWRfbGlzdC5jOjE5KQogCiBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSAxCiAgICBhdCAweC4uLi4uLi4uOiBtYWluIChiaWdfYmxvY2tzX2ZyZWVkX2xpc3QuYzoyMykKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMSwwMDAgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSA5MDAsMDAwIGZyZWUnZAogICAgYXQgMHguLi4uLi4uLjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChiaWdfYmxvY2tzX2ZyZWVkX2xpc3QuYzoyMCkKKyBCbG9jayB3YXMgYWxsb2MnZCBhdAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGJpZ19ibG9ja3NfZnJlZWRfbGlzdC5jOjE4KQogCiBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSAxCiAgICBhdCAweC4uLi4uLi4uOiBtYWluIChiaWdfYmxvY2tzX2ZyZWVkX2xpc3QuYzozMykKQEAgLTIwLDI0ICsyNiwzNiBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAyLDAwMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDkwMCwwMDAgZnJlZSdkCiAgICBhdCAweC4uLi4uLi4uOiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGJpZ19ibG9ja3NfZnJlZWRfbGlzdC5jOjIwKQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoYmlnX2Jsb2Nrc19mcmVlZF9saXN0LmM6MTgpCiAKIEludmFsaWQgcmVhZCBvZiBzaXplIDEKICAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGJpZ19ibG9ja3NfZnJlZWRfbGlzdC5jOjQxKQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAxMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDEwLDAwMCBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAoYmlnX2Jsb2Nrc19mcmVlZF9saXN0LmM6MjgpCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChiaWdfYmxvY2tzX2ZyZWVkX2xpc3QuYzoyNykKIAogSW52YWxpZCByZWFkIG9mIHNpemUgMQogICAgYXQgMHguLi4uLi4uLjogbWFpbiAoYmlnX2Jsb2Nrc19mcmVlZF9saXN0LmM6NDYpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDEwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMSwwMDAsMDE1IGZyZWUnZAogICAgYXQgMHguLi4uLi4uLjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChiaWdfYmxvY2tzX2ZyZWVkX2xpc3QuYzo0MCkKKyBCbG9jayB3YXMgYWxsb2MnZCBhdAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGJpZ19ibG9ja3NfZnJlZWRfbGlzdC5jOjM5KQogCiBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSAxCiAgICBhdCAweC4uLi4uLi4uOiBtYWluIChiaWdfYmxvY2tzX2ZyZWVkX2xpc3QuYzo1NSkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMTAgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxMCwwMDAgZnJlZSdkCiAgICBhdCAweC4uLi4uLi4uOiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGJpZ19ibG9ja3NfZnJlZWRfbGlzdC5jOjI4KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoYmlnX2Jsb2Nrc19mcmVlZF9saXN0LmM6MjcpCiAKIAogSEVBUCBTVU1NQVJZOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYnVnMzQwMzkyLmMgYi9tZW1jaGVjay90ZXN0cy9idWczNDAzOTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTViZGY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvYnVnMzQwMzkyLmMKQEAgLTAsMCArMSwyNiBAQAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCit0eXBlZGVmIHN0cnVjdCB7CisgIHVuc2lnbmVkIGNoYXIgYzsKKyAgaW50IGk7CisgIHZvaWQgKmZvbzsKK30gUzsKKworUyAqbWFrZV9zICh2b2lkKTsKKworaW50CittYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgIFMgKnMgPSBtYWtlX3MgKCk7CisgIGlmIChzLT5jID09IDAgJiYgcy0+aSA9PSAxICYmIHMtPmZvbyA9PSBnZXRlbnYgKCJCTEFIIikpCisgICAgYWJvcnQoKTsKKyAgcmV0dXJuIDA7Cit9CisKK1MgKgorbWFrZV9zICh2b2lkKQoreworICBTICpyZXMgPSBtYWxsb2MgKHNpemVvZiAoUykpOworICByZXMtPmMgPSAxOworICByZXR1cm4gcmVzOworfQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMi5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvYnVnMzQwMzkyLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAyLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9idWczNDAzOTIuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvYnVnMzQwMzkyLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL2J1ZzM0MDM5Mi52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFlOGVhYgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2J1ZzM0MDM5Mi52Z3Rlc3QKQEAgLTAsMCArMSwxMCBAQAorIyBXaGVuIHJ1biB3aXRob3V0IC0tZXhwZW5zaXZlLWRlZmluZWRuZXNzLWNoZWNrcyB2YWxncmluZAorIyBwcm9kdWNlczoKKyMKKyMgPT0xMDk1Mz09IENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyMgPT0xMDk1Mz09ICAgIGF0IDB4NDAwNEY4OiBtYWluIChidWczNDAzOTIuYzoxNSkKKyMKKyMgTWFraW5nIHN1cmUgd2UgZG9uJ3QgZ2V0IHRoZSBtZXNzYWdlLgorIworcHJvZzogYnVnMzQwMzkyCit2Z29wdHM6IC1xIC0tZXhwZW5zaXZlLWRlZmluZWRuZXNzLWNoZWNrcz15ZXMKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2Nsb19yZWR6b25lLmMgYi9tZW1jaGVjay90ZXN0cy9jbG9fcmVkem9uZS5jCmluZGV4IDU3MzNmZmEuLjc4YmQxMTkgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2Nsb19yZWR6b25lLmMKKysrIGIvbWVtY2hlY2svdGVzdHMvY2xvX3JlZHpvbmUuYwpAQCAtMSwzICsxLDQgQEAKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiBpbnQgbWFpbigpCkBAIC01LDcgKzYsOCBAQAogICAgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgY2hhciAqcCA9IG1hbGxvYyAoMSk7CiAgICBjaGFyICpiMSA9IG1hbGxvYyAoMTI4KTsKICAgIGNoYXIgKmIyID0gbWFsbG9jICgxMjgpOwotICAgZnByaW50ZiAoc3RkZXJyLCAiYjEgJXAgYjIgJXBcbiIsIGIxLCBiMik7CisgICBmcHJpbnRmIChzdGRlcnIsICJiMSAlIyIgUFJJeFBUUiAiIGIyICUjIiBQUkl4UFRSICJcbiIsCisgICAgICAgICAgICAgICAgICAgICh1aW50cHRyX3QpYjEsICh1aW50cHRyX3QpYjIpOwogCiAgICAvLyBUcnkgdG8gbGFuZCBpbiBiMiBmcm9tIGIxLCBjYXVzaW5nIG5vIGVycm9yCiAgICAvLyB3aXRoIHRoZSBkZWZhdWx0IHJlZHpvbmUtc2l6ZSwgYnV0IGhhdmluZwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvY29uZF9sZC52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9jb25kX2xkLnZndGVzdAppbmRleCBhY2MwYmZlLi41YzgzZTI2IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9jb25kX2xkLnZndGVzdAorKysgYi9tZW1jaGVjay90ZXN0cy9jb25kX2xkLnZndGVzdApAQCAtMSw0ICsxLDQgQEAKIHByb2c6IGNvbmRfbGRfc3QKIGFyZ3M6IGxvYWRzCi12Z29wdHM6IC1xCit2Z29wdHM6IC1xIC0ta2VlcC1zdGFja3RyYWNlcz1hbGxvYy10aGVuLWZyZWUKIHN0ZGVycl9maWx0ZXJfYXJnczogY29uZF9sZF9zdApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvY29uZF9zdC52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9jb25kX3N0LnZndGVzdAppbmRleCAyY2NmMDBjLi5mYmI4MTgxIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9jb25kX3N0LnZndGVzdAorKysgYi9tZW1jaGVjay90ZXN0cy9jb25kX3N0LnZndGVzdApAQCAtMSw0ICsxLDQgQEAKIHByb2c6IGNvbmRfbGRfc3QKIGFyZ3M6IHN0b3JlcwotdmdvcHRzOiAtcQordmdvcHRzOiAtcSAtLWtlZXAtc3RhY2t0cmFjZXM9YWxsb2MtdGhlbi1mcmVlCiBzdGRlcnJfZmlsdGVyX2FyZ3M6IGNvbmRfbGRfc3QKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2N1c3RvbV9hbGxvYy52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9jdXN0b21fYWxsb2Mudmd0ZXN0CmluZGV4IDljN2ZhNDEuLjA0NzI3NTYgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2N1c3RvbV9hbGxvYy52Z3Rlc3QKKysrIGIvbWVtY2hlY2svdGVzdHMvY3VzdG9tX2FsbG9jLnZndGVzdApAQCAtMSwyICsxLDIgQEAKIHByb2c6IGN1c3RvbV9hbGxvYwotdmdvcHRzOiAtcQordmdvcHRzOiAtcSAtLWtlZXAtc3RhY2t0cmFjZXM9YWxsb2MtdGhlbi1mcmVlCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9kYXJ3aW4vYWlvLmMgYi9tZW1jaGVjay90ZXN0cy9kYXJ3aW4vYWlvLmMKaW5kZXggODdlNzIxNC4uOGUyODI5MiAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvZGFyd2luL2Fpby5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL2Rhcndpbi9haW8uYwpAQCAtMTQsNiArMTQsNyBAQAogICAgc3RydWN0IGFpb2NiIGE7CiAgICBzdHJ1Y3Qgc2lnZXZlbnQgczsKIAorICAgbWVtc2V0KCZhLCAwLCBzaXplb2Yoc3RydWN0IGFpb2NiKSk7CiAgICAvLyBOb3Qgc3VyZSBpZiB0aGUgc2lnZXZlbnQgaXMgZXZlbiBsb29rZWQgYXQgYnkgYWlvXyouLi4ganVzdCB6ZXJvIGl0LgogICAgbWVtc2V0KCZzLCAwLCBzaXplb2Yoc3RydWN0IHNpZ2V2ZW50KSk7CiAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2Rhcndpbi9haW8uc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2Rhcndpbi9haW8uc3RkZXJyLmV4cAppbmRleCBmZDdiYmY5Li43MTIyMmE5IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9kYXJ3aW4vYWlvLnN0ZGVyci5leHAKKysrIGIvbWVtY2hlY2svdGVzdHMvZGFyd2luL2Fpby5zdGRlcnIuZXhwCkBAIC0xLDE0ICsxLDE2IEBACiAKIFdhcm5pbmc6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIC0xIGluIHN5c2NhbGwgYWlvX3JlYWQoKQogU3lzY2FsbCBwYXJhbSBhaW9fcmVhZChhaW9jYnAtPmFpb19idWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKLSAgIC4uLgorICAgYXQgMHguLi4uLi4uLjogYWlvX3JlYWQgKGluIC8uLi5saWJjLi4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoYWlvLmM6NDUpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCi0gICBhdCAweC4uLi4uLi4uOiBtYWluIChhaW8uYzo1NSkKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGFpby5jOjU2KQogCiBTeXNjYWxsIHBhcmFtIGFpb193cml0ZShhaW9jYnAtPmFpb19idWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKLSAgIC4uLgorICAgYXQgMHguLi4uLi4uLjogYWlvX3dyaXRlIChpbiAvLi4ubGliYy4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGFpby5jOjcwKQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9kYXJ3aW4vc2NhbGFyLmMgYi9tZW1jaGVjay90ZXN0cy9kYXJ3aW4vc2NhbGFyLmMKaW5kZXggNWI4YTNmYi4uYWY0ZGVmNCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvZGFyd2luL3NjYWxhci5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL2Rhcndpbi9zY2FsYXIuYwpAQCAtNTg5LDcgKzU4OSw5IEBACiAgICBHTyhfX05SX19fcHRocmVhZF9raWxsLCAzMjgsICIycyAwbSIpOwogICAgU1koX19OUl9fX3B0aHJlYWRfa2lsbCwgeDAsIHgwKTsgRkFJTDsKIAotICAgLy8gX19OUl9fX3B0aHJlYWRfc2lnbWFzayAzMjkKKyAgIEdPKF9fTlJfX19wdGhyZWFkX3NpZ21hc2ssIDMyOSwgIjNzIDBtIik7CisgICBTWShfX05SX19fcHRocmVhZF9zaWdtYXNrLCB4MCwgeDAsIHgwKTsgU1VDQzsKKwogICAgLy8gX19OUl9fX3NpZ3dhaXQgMzMwCiAgICAvLyBfX05SX3NpZ3dhaXQgMzMwKSAvLyBHclAgZml4bWUgaGFjawogICAgLy8gX19OUl9fX2Rpc2FibGVfdGhyZWFkc2lnbmFsIDMzMQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZGFyd2luL3NjYWxhci5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvZGFyd2luL3NjYWxhci5zdGRlcnIuZXhwCmluZGV4IDYyNzhkMjUuLjU2ZmQ5OTkgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2Rhcndpbi9zY2FsYXIuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9kYXJ3aW4vc2NhbGFyLnN0ZGVyci5leHAKQEAgLTksMTggKzksMjMgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIChzeXNjYWxsbm8pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMSkKIAogU3lzY2FsbCBwYXJhbSByZWFkKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MzEpCiAKIFN5c2NhbGwgcGFyYW0gcmVhZChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMSkKIAogU3lzY2FsbCBwYXJhbSByZWFkKGNvdW50KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MzEpCiAKIFN5c2NhbGwgcGFyYW0gcmVhZChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MzEpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjgsMTUgKzMzLDE5IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU3lzY2FsbCBwYXJhbSB3cml0ZShmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjM0KQogCiBTeXNjYWxsIHBhcmFtIHdyaXRlKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjM0KQogCiBTeXNjYWxsIHBhcmFtIHdyaXRlKGNvdW50KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MzQpCiAKIFN5c2NhbGwgcGFyYW0gd3JpdGUoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjM0KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ0LDEyICs1MywxNSBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gb3BlbihmaWxlbmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjM4KQogCiBTeXNjYWxsIHBhcmFtIG9wZW4oZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozOCkKIAogU3lzY2FsbCBwYXJhbSBvcGVuKGZpbGVuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjM4KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTY5LDIyICs4MSwyOCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gd2FpdDQocGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDkpCiAKIFN5c2NhbGwgcGFyYW0gd2FpdDQoc3RhdHVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDkpCiAKIFN5c2NhbGwgcGFyYW0gd2FpdDQob3B0aW9ucykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjQ5KQogCiBTeXNjYWxsIHBhcmFtIHdhaXQ0KHJ1c2FnZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjQ5KQogCiBTeXNjYWxsIHBhcmFtIHdhaXQ0KHN0YXR1cykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0OSkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIFN5c2NhbGwgcGFyYW0gd2FpdDQocnVzYWdlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjQ5KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTk1LDE2ICsxMTMsMjAgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGxpbmsob2xkcGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjU0KQogCiBTeXNjYWxsIHBhcmFtIGxpbmsobmV3cGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjU0KQogCiBTeXNjYWxsIHBhcmFtIGxpbmsob2xkcGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1NCkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIFN5c2NhbGwgcGFyYW0gbGluayhuZXdwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjU0KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTExMiw5ICsxMzQsMTEgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIHVubGluayhwYXRobmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjU3KQogCiBTeXNjYWxsIHBhcmFtIHVubGluayhwYXRobmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1NykKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMjUsOSArMTQ5LDExIEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU3lzY2FsbCBwYXJhbSBjaGRpcihwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjIpCiAKIFN5c2NhbGwgcGFyYW0gY2hkaXIocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo2MikKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNDEsMTUgKzE2NywxOSBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gbWtub2QocGF0aG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo2OCkKIAogU3lzY2FsbCBwYXJhbSBta25vZChtb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjgpCiAKIFN5c2NhbGwgcGFyYW0gbWtub2QoZGV2KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjgpCiAKIFN5c2NhbGwgcGFyYW0gbWtub2QocGF0aG5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjgpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTU3LDEyICsxODcsMTUgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGNobW9kKHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo3MSkKIAogU3lzY2FsbCBwYXJhbSBjaG1vZChtb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NzEpCiAKIFN5c2NhbGwgcGFyYW0gY2htb2QocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo3MSkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNzAsMTUgKzIwMywxOSBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gY2hvd24ocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjc0KQogCiBTeXNjYWxsIHBhcmFtIGNob3duKG93bmVyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NzQpCiAKIFN5c2NhbGwgcGFyYW0gY2hvd24oZ3JvdXApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo3NCkKIAogU3lzY2FsbCBwYXJhbSBjaG93bihwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjc0KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4OSwxNSArMjI2LDE5IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU3lzY2FsbCBwYXJhbSBnZXRmc3N0YXQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NzkpCiAKIFN5c2NhbGwgcGFyYW0gZ2V0ZnNzdGF0KGJ1ZnNpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo3OSkKIAogU3lzY2FsbCBwYXJhbSBnZXRmc3N0YXQoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo3OSkKIAogU3lzY2FsbCBwYXJhbSBnZXRmc3N0YXQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjc5KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI1NiwxNSArMjk3LDE5IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU3lzY2FsbCBwYXJhbSBtaW5jb3JlKHN0YXJ0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MTY1KQogCiBTeXNjYWxsIHBhcmFtIG1pbmNvcmUobGVuZ3RoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MTY1KQogCiBTeXNjYWxsIHBhcmFtIG1pbmNvcmUodmVjKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MTY1KQogCiBTeXNjYWxsIHBhcmFtIG1pbmNvcmUodmVjKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjE2NSkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzIsOSArMzE3LDExIEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU3lzY2FsbCBwYXJhbSBzZXRwZ2lkKHBpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjE3MikKIAogU3lzY2FsbCBwYXJhbSBzZXRwZ2lkKHBnaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoxNzIpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoNzgpOiAgICAgICAgICAgIG9sZCB3YWl0CkBAIC0zMDgsMjEgKzM1NSwyNyBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gc2V0c29ja29wdChzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MjEzKQogCiBTeXNjYWxsIHBhcmFtIHNldHNvY2tvcHQobGV2ZWwpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoyMTMpCiAKIFN5c2NhbGwgcGFyYW0gc2V0c29ja29wdChvcHRuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MjEzKQogCiBTeXNjYWxsIHBhcmFtIHNldHNvY2tvcHQob3B0dmFsKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MjEzKQogCiBTeXNjYWxsIHBhcmFtIHNldHNvY2tvcHQob3B0bGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MjEzKQogCiBTeXNjYWxsIHBhcmFtIHNvY2tldGNhbGwuc2V0c29ja29wdChvcHR2YWwpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MjEzKQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1NywyMiArNDEwLDI4IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU3lzY2FsbCBwYXJhbSBnZXRzb2Nrb3B0KHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoyNDIpCiAKIFN5c2NhbGwgcGFyYW0gZ2V0c29ja29wdChsZXZlbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjI0MikKIAogU3lzY2FsbCBwYXJhbSBnZXRzb2Nrb3B0KG9wdG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoyNDIpCiAKIFN5c2NhbGwgcGFyYW0gZ2V0c29ja29wdChvcHR2YWwpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoyNDIpCiAKIFN5c2NhbGwgcGFyYW0gZ2V0c29ja29wdChvcHRsZW4pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoyNDIpCiAKIFN5c2NhbGwgcGFyYW0gc29ja2V0Y2FsbC5nZXRzb2Nrb3B0KG9wdGxlbikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCi0gQWRkcmVzcyAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgYWZ0ZXIgYSBibG9jayBvZiBzaXplIDQgYWxsb2MnZAorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MjQyKQorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSA4IGFsbG9jJ2QKICAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoxNCkKIApAQCAtMzkzLDExICs0NTIsMTEgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIG1rZmlmbyhtb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgotICAgYnkgMHguLi4uLi4uLjogbWFpbiAoaW4gLi9zY2FsYXIpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoyNjUpCiAKIFN5c2NhbGwgcGFyYW0gbWtmaWZvKHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgotICAgYnkgMHguLi4uLi4uLjogbWFpbiAoaW4gLi9zY2FsYXIpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzoyNjUpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDQ1LDIyICs1MDQsMjggQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIG1vdW50KHR5cGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMjMpCiAKIFN5c2NhbGwgcGFyYW0gbW91bnQoZGlyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MzIzKQogCiBTeXNjYWxsIHBhcmFtIG1vdW50KGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MzIzKQogCiBTeXNjYWxsIHBhcmFtIG1vdW50KGRhdGEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMjMpCiAKIFN5c2NhbGwgcGFyYW0gbW91bnQodHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMjMpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiBTeXNjYWxsIHBhcmFtIG1vdW50KGRpcikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMjMpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDcxLDE4ICs1MzYsMjMgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGNzb3BzKHBpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjMyOCkKIAogU3lzY2FsbCBwYXJhbSBjc29wcyhvcHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMjgpCiAKIFN5c2NhbGwgcGFyYW0gY3NvcHModXNlcmFkZHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMjgpCiAKIFN5c2NhbGwgcGFyYW0gY3NvcHModXNlcnNpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozMjgpCiAKIFN5c2NhbGwgcGFyYW0gY3NvcHModXNlcmFkZHIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MzI4KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTUxNywxOSArNTg3LDI0IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU3lzY2FsbCBwYXJhbSBleGNoYW5nZWRhdGEocGF0aDEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozOTgpCiAKIFN5c2NhbGwgcGFyYW0gZXhjaGFuZ2VkYXRhKHBhdGgyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6Mzk4KQogCiBTeXNjYWxsIHBhcmFtIGV4Y2hhbmdlZGF0YShvcHRpb25zKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6Mzk4KQogCiBTeXNjYWxsIHBhcmFtIGV4Y2hhbmdlZGF0YShwYXRoMSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozOTgpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiBTeXNjYWxsIHBhcmFtIGV4Y2hhbmdlZGF0YShwYXRoMikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzozOTgpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTQ5LDI3ICs2MjQsMzQgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIHNobWF0KHNobWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDQ3KQogCiBTeXNjYWxsIHBhcmFtIHNobWF0KHNobWFkZHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NDcpCiAKIFN5c2NhbGwgcGFyYW0gc2htYXQoc2htZmxnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDQ3KQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeDIwMDAxMDcoMjYzKTogICAgICAgICBfX05SX3NobWN0bCAzcyAxbQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gc2htY3RsKHNobWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDUwKQogCiBTeXNjYWxsIHBhcmFtIHNobWN0bChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NTApCiAKIFN5c2NhbGwgcGFyYW0gc2htY3RsKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjQ1MCkKIAogU3lzY2FsbCBwYXJhbSBzaG1jdGwoSVBDX1NUQVQsIGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NTApCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTgzLDI0ICs2NjUsMzAgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIHNobWdldChrZXkpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NTYpCiAKIFN5c2NhbGwgcGFyYW0gc2htZ2V0KHNpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NTYpCiAKIFN5c2NhbGwgcGFyYW0gc2htZ2V0KHNobWZsZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjQ1NikKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHgyMDAwMTBjKDI2OCk6ICAgICAgIF9fTlJfc2VtX29wZW4gMnMgMW0KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIHNlbV9vcGVuKG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NjIpCiAKIFN5c2NhbGwgcGFyYW0gc2VtX29wZW4ob2ZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NjIpCiAKIFN5c2NhbGwgcGFyYW0gc2VtX29wZW4obmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NjIpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjIzLDkgKzcxMSwxMSBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gc2VtX3VubGluayhuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDcyKQogCiBTeXNjYWxsIHBhcmFtIHNlbV91bmxpbmsobmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0NzIpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjQ5LDIwICs3MzksMjEgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4MjAwMDExMygyNzUpOiAgICAgICBfX05SX3NlbV9pbml0IDNzIDFtCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1Nb3JlIHRoYW4gMTAwIGVycm9ycyBkZXRlY3RlZC4gIFN1YnNlcXVlbnQgZXJyb3JzCi13aWxsIHN0aWxsIGJlIHJlY29yZGVkLCBidXQgaW4gbGVzcyBkZXRhaWwgdGhhbiBiZWZvcmUuCiBTeXNjYWxsIHBhcmFtIHNlbV9pbml0KHNlbSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjQ4NikKIAogU3lzY2FsbCBwYXJhbSBzZW1faW5pdChwc2hhcmVkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDg2KQogCiBTeXNjYWxsIHBhcmFtIHNlbV9pbml0KHZhbHVlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDg2KQogCiBTeXNjYWxsIHBhcmFtIHNlbV9pbml0KHNlbSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0ODYpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjcwLDkgKzc2MSwxMSBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gc2VtX2Rlc3Ryb3koc2VtKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDg5KQogCiBTeXNjYWxsIHBhcmFtIHNlbV9kZXN0cm95KHNlbSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0ODkpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjgwLDMwICs3NzMsNDggQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIHN0YXRfZXh0ZW5kZWQoZmlsZV9uYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDk3KQogCiBTeXNjYWxsIHBhcmFtIHN0YXRfZXh0ZW5kZWQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDk3KQogCiBTeXNjYWxsIHBhcmFtIHN0YXRfZXh0ZW5kZWQoZnNhY2wpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo0OTcpCiAKIFN5c2NhbGwgcGFyYW0gc3RhdF9leHRlbmRlZChmc2FjbF9zaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDk3KQogCiBTeXNjYWxsIHBhcmFtIHN0YXRfZXh0ZW5kZWQoZmlsZV9uYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjQ5NykKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIFN5c2NhbGwgcGFyYW0gc3RhdF9leHRlbmRlZChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDk3KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogU3lzY2FsbCBwYXJhbSBzdGF0X2V4dGVuZGVkKGZzYWNsX3NpemUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NDk3KQorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzdGF0X2V4dGVuZGVkKGZpbGVfbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MDApCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHN0YXRfZXh0ZW5kZWQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUwMCkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIFN5c2NhbGwgcGFyYW0gc3RhdF9leHRlbmRlZChmc2FjbCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MDApCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNzExLDMwICs4MjIsNDggQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGxzdGF0X2V4dGVuZGVkKGZpbGVfbmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUwMykKIAogU3lzY2FsbCBwYXJhbSBsc3RhdF9leHRlbmRlZChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MDMpCiAKIFN5c2NhbGwgcGFyYW0gbHN0YXRfZXh0ZW5kZWQoZnNhY2wpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MDMpCiAKIFN5c2NhbGwgcGFyYW0gbHN0YXRfZXh0ZW5kZWQoZnNhY2xfc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUwMykKIAogU3lzY2FsbCBwYXJhbSBsc3RhdF9leHRlbmRlZChmaWxlX25hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NTAzKQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogU3lzY2FsbCBwYXJhbSBsc3RhdF9leHRlbmRlZChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NTAzKQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogU3lzY2FsbCBwYXJhbSBsc3RhdF9leHRlbmRlZChmc2FjbF9zaXplKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUwMykKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHN0YXRfZXh0ZW5kZWQoZmlsZV9uYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUwNikKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHN0YXRfZXh0ZW5kZWQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUwNikKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIFN5c2NhbGwgcGFyYW0gbHN0YXRfZXh0ZW5kZWQoZnNhY2wpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NTA2KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTc0MiwyNiArODcxLDQ4IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU3lzY2FsbCBwYXJhbSBmc3RhdF9leHRlbmRlZChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUwOSkKIAogU3lzY2FsbCBwYXJhbSBmc3RhdF9leHRlbmRlZChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MDkpCiAKIFN5c2NhbGwgcGFyYW0gZnN0YXRfZXh0ZW5kZWQoZnNhY2wpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MDkpCiAKIFN5c2NhbGwgcGFyYW0gZnN0YXRfZXh0ZW5kZWQoZnNhY2xfc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUwOSkKKworU3lzY2FsbCBwYXJhbSBmc3RhdF9leHRlbmRlZChmZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MDkpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiBTeXNjYWxsIHBhcmFtIGZzdGF0X2V4dGVuZGVkKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MDkpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiBTeXNjYWxsIHBhcmFtIGZzdGF0X2V4dGVuZGVkKGZzYWNsX3NpemUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NTA5KQorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBmc3RhdF9leHRlbmRlZChmZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MTIpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGZzdGF0X2V4dGVuZGVkKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MTIpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiBTeXNjYWxsIHBhcmFtIGZzdGF0X2V4dGVuZGVkKGZzYWNsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUxMikKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03NjksMTggKzkyMCwyMyBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gYWNjZXNzX2V4dGVuZGVkKGVudHJpZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MjEpCiAKIFN5c2NhbGwgcGFyYW0gYWNjZXNzX2V4dGVuZGVkKHNpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MjEpCiAKIFN5c2NhbGwgcGFyYW0gYWNjZXNzX2V4dGVuZGVkKHJlc3VsdHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MjEpCiAKIFN5c2NhbGwgcGFyYW0gYWNjZXNzX2V4dGVuZGVkKHVpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjUyMSkKIAogU3lzY2FsbCBwYXJhbSBhY2Nlc3NfZXh0ZW5kZWQoZW50cmllcykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1MjEpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODA5LDE1ICs5NjUsMTkgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGFpb19zdXNwZW5kKGFpb2NicCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjU2MykKIAogU3lzY2FsbCBwYXJhbSBhaW9fc3VzcGVuZChuZW50KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NTYzKQogCiBTeXNjYWxsIHBhcmFtIGFpb19zdXNwZW5kKHRpbWVvdXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1NjMpCiAKIFN5c2NhbGwgcGFyYW0gYWlvX3N1c3BlbmQobGlzdCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1NjMpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODMxLDkgKzk5MSwxMSBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gYWlvX3JlYWQoYWlvY2JwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NTcxKQogCiBTeXNjYWxsIHBhcmFtIGFpb19yZWFkKGFpb2NicCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1NzEpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODQxLDkgKzEwMDMsMTEgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGFpb193cml0ZShhaW9jYnApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1NzQpCiAKIFN5c2NhbGwgcGFyYW0gYWlvX3dyaXRlKGFpb2NicCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1NzQpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODU3LDkgKzEwMjEsMjIgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIF9fcHRocmVhZF9raWxsKHRocmVhZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjU5MCkKIAogU3lzY2FsbCBwYXJhbSBfX3B0aHJlYWRfa2lsbChzaWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1OTApCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit4MjAwMDE0OSgzMjkpOl9fTlJfX19wdGhyZWFkX3NpZ21hc2sgM3MgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIF9fcHRocmVhZF9zaWdtYXNrKHNldCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjU5MykKKworU3lzY2FsbCBwYXJhbSBfX3B0aHJlYWRfc2lnbWFzayhvbGRzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo1OTMpCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMzM1KTogICAgICAgICAgIG9sZCB1dHJhY2UKQEAgLTg2OSwzMCArMTA0NiwzOCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFN5c2NhbGwgcGFyYW0gc3RhdDY0X2V4dGVuZGVkKGZpbGVfbmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYxMykKIAogU3lzY2FsbCBwYXJhbSBzdGF0NjRfZXh0ZW5kZWQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjEzKQogCiBTeXNjYWxsIHBhcmFtIHN0YXQ2NF9leHRlbmRlZChmc2FjbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYxMykKIAogU3lzY2FsbCBwYXJhbSBzdGF0NjRfZXh0ZW5kZWQoZnNhY2xfc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYxMykKIAogU3lzY2FsbCBwYXJhbSBzdGF0NjRfZXh0ZW5kZWQoZmlsZV9uYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYxMykKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIFN5c2NhbGwgcGFyYW0gc3RhdDY0X2V4dGVuZGVkKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo2MTMpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiBTeXNjYWxsIHBhcmFtIHN0YXQ2NF9leHRlbmRlZChmc2FjbF9zaXplKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYxMykKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIFN5c2NhbGwgcGFyYW0gc3RhdDY0X2V4dGVuZGVkKGZzYWNsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYxNikKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05MDAsMzAgKzEwODUsMzggQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGxzdGF0NjRfZXh0ZW5kZWQoZmlsZV9uYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjE5KQogCiBTeXNjYWxsIHBhcmFtIGxzdGF0NjRfZXh0ZW5kZWQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjE5KQogCiBTeXNjYWxsIHBhcmFtIGxzdGF0NjRfZXh0ZW5kZWQoZnNhY2wpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo2MTkpCiAKIFN5c2NhbGwgcGFyYW0gbHN0YXQ2NF9leHRlbmRlZChmc2FjbF9zaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjE5KQogCiBTeXNjYWxsIHBhcmFtIGxzdGF0NjRfZXh0ZW5kZWQoZmlsZV9uYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYxOSkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIFN5c2NhbGwgcGFyYW0gbHN0YXQ2NF9leHRlbmRlZChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjE5KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogU3lzY2FsbCBwYXJhbSBsc3RhdDY0X2V4dGVuZGVkKGZzYWNsX3NpemUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjE5KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogU3lzY2FsbCBwYXJhbSBsc3RhdDY0X2V4dGVuZGVkKGZzYWNsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYyMikKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05MzEsMjYgKzExMjQsMzMgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGZzdGF0NjRfZXh0ZW5kZWQoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo2MjUpCiAKIFN5c2NhbGwgcGFyYW0gZnN0YXQ2NF9leHRlbmRlZChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo2MjUpCiAKIFN5c2NhbGwgcGFyYW0gZnN0YXQ2NF9leHRlbmRlZChmc2FjbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYyNSkKIAogU3lzY2FsbCBwYXJhbSBmc3RhdDY0X2V4dGVuZGVkKGZzYWNsX3NpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo2MjUpCiAKIFN5c2NhbGwgcGFyYW0gZnN0YXQ2NF9leHRlbmRlZChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjI1KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogU3lzY2FsbCBwYXJhbSBmc3RhdDY0X2V4dGVuZGVkKGZzYWNsX3NpemUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjI1KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIAogU3lzY2FsbCBwYXJhbSBmc3RhdDY0X2V4dGVuZGVkKGZzYWNsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYyOCkKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05NTgsMTUgKzExNTgsMTkgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTeXNjYWxsIHBhcmFtIGdldGZzc3RhdDY0KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjYzNykKIAogU3lzY2FsbCBwYXJhbSBnZXRmc3N0YXQ2NChidWZzaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjM3KQogCiBTeXNjYWxsIHBhcmFtIGdldGZzc3RhdDY0KGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6NjM3KQogCiBTeXNjYWxsIHBhcmFtIGdldGZzc3RhdDY0KGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzY2FsYXIuYzo2MzcpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTc1LDcgKzExNzksNyBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHgyNzBmKDk5OTkpOiAgICAgICAgICAgICAgICA5OTk5IDFlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotV0FSTklORzogdW5oYW5kbGVkIHN5c2NhbGw6IHVuaXg6OTk5OQorV0FSTklORzogdW5oYW5kbGVkIGFtZDY0LWRhcndpbiBzeXNjYWxsOiB1bml4Ojk5OTkKIFlvdSBtYXkgYmUgYWJsZSB0byB3cml0ZSB5b3VyIG93biBoYW5kbGVyLgogUmVhZCB0aGUgZmlsZSBSRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMLgogTmV2ZXJ0aGVsZXNzIHdlIGNvbnNpZGVyIHRoaXMgYSBidWcuICBQbGVhc2UgcmVwb3J0CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9kZWVwLWJhY2t0cmFjZS52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9kZWVwLWJhY2t0cmFjZS52Z3Rlc3QKaW5kZXggZWJlY2NmOS4uYTNmZDFkZiAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvZGVlcC1iYWNrdHJhY2Uudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL2RlZXAtYmFja3RyYWNlLnZndGVzdApAQCAtMSwyICsxLDMgQEAKIHByb2c6IGRlZXAtYmFja3RyYWNlCiB2Z29wdHM6IC1xIC0tbnVtLWNhbGxlcnM9NTAwCitjbGVhbnVwOiBybSAtZiB2Z2NvcmUuKgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZGVtYW5nbGUuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2RlbWFuZ2xlLnN0ZGVyci5leHAKaW5kZXggMjEyNDUxNy4uNmU3NDY3ZCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvZGVtYW5nbGUuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9kZW1hbmdsZS5zdGRlcnIuZXhwCkBAIC0xLDE2ICsxLDUgQEAKLQogQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQogICAgYXQgMHguLi4uLi4uLjogYWJjOjpkZWY8aW50LCBtYWdpYzxpbnQ+ID46Onh5enp5KGludCosIG1hZ2ljPGludD4qKSAoZGVtYW5nbGUuY3BwOjkpCiAgICBieSAweC4uLi4uLi4uOiBtYWdpYzxpbnQ+Ojp4eXp6eShpbnQqKSAoZGVtYW5nbGUuY3BwOjE5KQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZGVtYW5nbGUuY3BwOjI3KQogCi0KLUhFQVAgU1VNTUFSWToKLSAgICBpbiB1c2UgYXQgZXhpdDogNiBieXRlcyBpbiAzIGJsb2NrcwotICB0b3RhbCBoZWFwIHVzYWdlOiAzIGFsbG9jcywgMCBmcmVlcywgNiBieXRlcyBhbGxvY2F0ZWQKLQotRm9yIGEgZGV0YWlsZWQgbGVhayBhbmFseXNpcywgcmVydW4gd2l0aDogLS1sZWFrLWNoZWNrPWZ1bGwKLQotRm9yIGNvdW50cyBvZiBkZXRlY3RlZCBhbmQgc3VwcHJlc3NlZCBlcnJvcnMsIHJlcnVuIHdpdGg6IC12Ci1Vc2UgLS10cmFjay1vcmlnaW5zPXllcyB0byBzZWUgd2hlcmUgdW5pbml0aWFsaXNlZCB2YWx1ZXMgY29tZSBmcm9tCi1FUlJPUiBTVU1NQVJZOiAxIGVycm9ycyBmcm9tIDEgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZGVtYW5nbGUudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvZGVtYW5nbGUudmd0ZXN0CmluZGV4IGY2YWUwMzguLmI2NWI2ZDMgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2RlbWFuZ2xlLnZndGVzdAorKysgYi9tZW1jaGVjay90ZXN0cy9kZW1hbmdsZS52Z3Rlc3QKQEAgLTEgKzEsMiBAQAogcHJvZzogZGVtYW5nbGUKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2RvdWJsZWZyZWUuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2RvdWJsZWZyZWUuc3RkZXJyLmV4cAppbmRleCA5ZWQ1Mzc1Li43NTYwZTNhIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9kb3VibGVmcmVlLnN0ZGVyci5leHAKKysrIGIvbWVtY2hlY2svdGVzdHMvZG91YmxlZnJlZS5zdGRlcnIuZXhwCkBAIC00LDQgKzQsNyBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTc3IGZyZWUnZAogICAgYXQgMHguLi4uLi4uLjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChkb3VibGVmcmVlLmM6MTApCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChkb3VibGVmcmVlLmM6OCkKIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZHc0LmMgYi9tZW1jaGVjay90ZXN0cy9kdzQuYwppbmRleCA1NzRmOTdjLi43ZDk4MWI2IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9kdzQuYworKysgYi9tZW1jaGVjay90ZXN0cy9kdzQuYwpAQCAtNjgsOCArNjgsOCBAQAogICBjcm9hayggcCk7CiAKICAgLyogRGVzY3JpYmUgZmlsZSBtbWFwLWVkICovCi0gIHNucHJpbnRmKGZpbGVuYW1lLCBzaXplb2YoZmlsZW5hbWUpLCAiLi92YWxncmluZC1kdzQtdGVzdC4lZCIsCi0gICAgICAgICAgIGdldHBpZCgpKTsKKyAgc25wcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIuL3ZhbGdyaW5kLWR3NC10ZXN0LiVsZCIsCisgICAgICAgICAgIChsb25nKSBnZXRwaWQoKSk7CiAKICAgdW5saW5rKGZpbGVuYW1lKTsKIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZHc0LnN0ZGVyci5leHAtc29sYXJpcyBiL21lbWNoZWNrL3Rlc3RzL2R3NC5zdGRlcnIuZXhwLXNvbGFyaXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE3ZGNiNQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL2R3NC5zdGRlcnIuZXhwLXNvbGFyaXMKQEAgLTAsMCArMSw0OSBAQAorVW5pbml0aWFsaXNlZCBieXRlKHMpIGZvdW5kIGR1cmluZyBjbGllbnQgY2hlY2sgcmVxdWVzdAorICAgYXQgMHguLi4uLi4uLjogY3JvYWsgKGR3NC5jOjMyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZHc0LmM6NTkpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDQgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAuLi4gYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGR3NC5jOjUyKQorCitVbmluaXRpYWxpc2VkIGJ5dGUocykgZm91bmQgZHVyaW5nIGNsaWVudCBjaGVjayByZXF1ZXN0CisgICBhdCAweC4uLi4uLi4uOiBjcm9hayAoZHc0LmM6MzIpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChkdzQuYzo2MSkKKyBMb2NhdGlvbiAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIFMyWzBdLmksCisgYSBnbG9iYWwgdmFyaWFibGUgZGVjbGFyZWQgYXQgZHc0LmM6NDcKKworVW5pbml0aWFsaXNlZCBieXRlKHMpIGZvdW5kIGR1cmluZyBjbGllbnQgY2hlY2sgcmVxdWVzdAorICAgYXQgMHguLi4uLi4uLjogY3JvYWsgKGR3NC5jOjMyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZHc0LmM6NjIpCisgTG9jYXRpb24gMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBsb2NhbC5pLAorIGRlY2xhcmVkIGF0IGR3NC5jOjUxLCBpbiBmcmFtZSAjMSBvZiB0aHJlYWQgMQorCitVbmluaXRpYWxpc2VkIGJ5dGUocykgZm91bmQgZHVyaW5nIGNsaWVudCBjaGVjayByZXF1ZXN0CisgICBhdCAweC4uLi4uLi4uOiBjcm9hayAoZHc0LmM6MzIpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChkdzQuYzo2OCkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgaW4gYSBydy0gYW5vbnltb3VzIHNlZ21lbnQKKworVW5pbml0aWFsaXNlZCBieXRlKHMpIGZvdW5kIGR1cmluZyBjbGllbnQgY2hlY2sgcmVxdWVzdAorICAgYXQgMHguLi4uLi4uLjogY3JvYWsgKGR3NC5jOjMyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZHc0LmM6ODIpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIGluIGEgcnctIG1hcHBlZCBmaWxlIHZhbGdyaW5kLWR3NC10ZXN0LlBJRCBzZWdtZW50CisKK1VuYWRkcmVzc2FibGUgYnl0ZShzKSBmb3VuZCBkdXJpbmcgY2xpZW50IGNoZWNrIHJlcXVlc3QKKyAgIGF0IDB4Li4uLi4uLi46IGNyb2FrIChkdzQuYzoyNSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGR3NC5jOjg3KQorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIHRoZSBicmsgZGF0YSBzZWdtZW50IGxpbWl0IDB4Li4uLi4uLi4KKworVW5pbml0aWFsaXNlZCBieXRlKHMpIGZvdW5kIGR1cmluZyBjbGllbnQgY2hlY2sgcmVxdWVzdAorICAgYXQgMHguLi4uLi4uLjogY3JvYWsgKGR3NC5jOjMyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZHc0LmM6ODkpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIGluIHRoZSBicmsgZGF0YSBzZWdtZW50IDB4Li4uLi4uLi4tMHguLi4uLi4uLgorCitVbmluaXRpYWxpc2VkIGJ5dGUocykgZm91bmQgZHVyaW5nIGNsaWVudCBjaGVjayByZXF1ZXN0CisgICBhdCAweC4uLi4uLi4uOiBjcm9hayAoZHc0LmM6MzIpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChkdzQuYzo5MSkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgaW4gdGhlIGJyayBkYXRhIHNlZ21lbnQgMHguLi4uLi4uLi0weC4uLi4uLi4uCisKK1VuYWRkcmVzc2FibGUgYnl0ZShzKSBmb3VuZCBkdXJpbmcgY2xpZW50IGNoZWNrIHJlcXVlc3QKKyAgIGF0IDB4Li4uLi4uLi46IGNyb2FrIChkdzQuYzoyNSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGR3NC5jOjkzKQorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAxMDI0IGJ5dGVzIGFmdGVyIHRoZSBicmsgZGF0YSBzZWdtZW50IGxpbWl0IDB4Li4uLi4uLi4KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZXJyX2Rpc2FibGUxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9lcnJfZGlzYWJsZTEuc3RkZXJyLmV4cAppbmRleCA4NzYyYmYxLi4wMmJmMjU5IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9lcnJfZGlzYWJsZTEuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9lcnJfZGlzYWJsZTEuc3RkZXJyLmV4cApAQCAtMTAsNiArMTAsOSBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA1IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTAgZnJlZSdkCiAgICBhdCAweC4uLi4uLi4uOiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGVycl9kaXNhYmxlMS5jOjI3KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGUxLmM6MjYpCiAKIAogLS0tLS0tLS0tIGRpc2FibGVkIChleHBlY3QgMCkgLS0tLS0tLS0tCkBAIC0yMyw2ICsyNiw5IEBACiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDUgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxMCBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGUxLmM6MjcpCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChlcnJfZGlzYWJsZTEuYzoyNikKIAogCiAtLS0tLS0tLS0gTVVMVEktTEVWRUwgVEVTVCAoZXhwZWN0IDIpIC0tLS0tLS0tLQpAQCAtMzMsNiArMzksOSBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA1IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTAgZnJlZSdkCiAgICBhdCAweC4uLi4uLi4uOiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGVycl9kaXNhYmxlMS5jOjI3KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGUxLmM6MjYpCiAKIEludmFsaWQgcmVhZCBvZiBzaXplIDEKICAgIGF0IDB4Li4uLi4uLi46IGVyciAoZXJyX2Rpc2FibGUxLmM6MjEpCkBAIC00MCw2ICs0OSw5IEBACiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDUgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxMCBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGUxLmM6MjcpCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChlcnJfZGlzYWJsZTEuYzoyNikKIAogCiAtLS0tLS0tLS0gTVVMVEktTEVWRUwgVEVTVCBlbmQgLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9lcnJfZGlzYWJsZTIuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlMi5zdGRlcnIuZXhwCmluZGV4IDgyY2QwNGYuLjcxNDZkYTcgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlMi5zdGRlcnIuZXhwCisrKyBiL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlMi5zdGRlcnIuZXhwCkBAIC03LDYgKzcsOSBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA1IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTAgZnJlZSdkCiAgICBhdCAweC4uLi4uLi4uOiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGVycl9kaXNhYmxlMi5jOjI4KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGUyLmM6MjcpCiAKIAogLS0tLS0tLS0tIGRpc2FibGVkIChleHBlY3QgMCkgLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9lcnJfZGlzYWJsZTMuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlMy5zdGRlcnIuZXhwCmluZGV4IDBmMWY4YjcuLjJiNmQ3NGQgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlMy5zdGRlcnIuZXhwCisrKyBiL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlMy5zdGRlcnIuZXhwCkBAIC0xNSw2ICsxNSw5IEBACiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDUgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxMCBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGUzLmM6NDIpCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChlcnJfZGlzYWJsZTMuYzo0MSkKIAogCiAtLS0tLS0tLS0gYzogZW5kIC0tLS0tLS0tLQpAQCAtMzIsNCArMzUsNyBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA1IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTAgZnJlZSdkCiAgICBhdCAweC4uLi4uLi4uOiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGVycl9kaXNhYmxlMy5jOjQyKQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGUzLmM6NDEpCiAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlNC5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvZXJyX2Rpc2FibGU0LnN0ZGVyci5leHAKaW5kZXggY2ZhY2ZkNy4uYWNjMDFhZCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvZXJyX2Rpc2FibGU0LnN0ZGVyci5leHAKKysrIGIvbWVtY2hlY2svdGVzdHMvZXJyX2Rpc2FibGU0LnN0ZGVyci5leHAKQEAgLTE1MDYsNiArMTUwNiw5IEBACiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDUgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxMCBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGU0LmM6ODEpCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChlcnJfZGlzYWJsZTQuYzo4MCkKIAogCiAtLS0tLS0tLSBHb3QgNDk4IGVycm9ycyAoZXhwZWN0ZWQgNDk4ID09PiBQQVNTKSAtLS0tLS0KZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlX2FyYW5nZTEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlX2FyYW5nZTEuc3RkZXJyLmV4cAppbmRleCA4ZTk3OWQyLi4zNTI1N2QxIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9lcnJfZGlzYWJsZV9hcmFuZ2UxLnN0ZGVyci5leHAKKysrIGIvbWVtY2hlY2svdGVzdHMvZXJyX2Rpc2FibGVfYXJhbmdlMS5zdGRlcnIuZXhwCkBAIC02LDYgKzYsOSBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA0OTIgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSA0LDAwMCBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGVfYXJhbmdlMS5jOjE1KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoZXJyX2Rpc2FibGVfYXJhbmdlMS5jOjE0KQogCiAKIERpc2FibGluZyBhZGRyZXNzIGVycm9yIHJlcG9ydGluZyBmb3IgdGhlIHJhbmdlLgpAQCAtMjQsNiArMjcsOSBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAzLDE1NiBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDQsMDAwIGZyZWUnZAogICAgYXQgMHguLi4uLi4uLjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChlcnJfZGlzYWJsZV9hcmFuZ2UxLmM6MTUpCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChlcnJfZGlzYWJsZV9hcmFuZ2UxLmM6MTQpCiAKIAogRXhpdGluZy4gIEV4cGVjdCB3YXJuaW5ncyBvZiAyIHJlbWFpbmluZyByYW5nZXMuCkBAIC0zMiw1ICszOCw1IEBACiBXQVJOSU5HOiBhZGRyZXNzIGVycm9yIGRpc2FibGVtZW50IHJhbmdlKHMpIHN0aWxsIGluIGZvcmNlLAogV0FSTklORzogcG9zc2libHkgYXMgYSByZXN1bHQgb2Ygc29tZSBtaXN0YWtlIGluIHRoZSB1c2Ugb2YgdGhlCiBXQVJOSU5HOiBWQUxHUklORF97RElTQUJMRSxFTkFCTEV9X0VSUk9SX1JFUE9SVElOR19JTl9SQU5HRSBtYWNyb3MuCi0gICBbMV0gIDB4Li4uLi4uLi4tMHguLi4uLi4uLiAgQ2xpZW50UmVxCi0gICBbM10gIDB4Li4uLi4uLi4tMHguLi4uLi4uLiAgQ2xpZW50UmVxCisgICBbNF0gIDB4Li4uLi4uLi4tMHguLi4uLi4uLiAgQ2xpZW50UmVxCisgICBbNl0gIDB4Li4uLi4uLi4tMHguLi4uLi4uLiAgQ2xpZW50UmVxCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9lcnJfZGlzYWJsZV9hcmFuZ2UxLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlX2FyYW5nZTEudmd0ZXN0CmluZGV4IDQ4YmEyNWYuLmE0Mzc3MDkgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlX2FyYW5nZTEudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL2Vycl9kaXNhYmxlX2FyYW5nZTEudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAogcHJvZzogZXJyX2Rpc2FibGVfYXJhbmdlMQotdmdvcHRzOiAtcQordmdvcHRzOiAtcSAtLWlnbm9yZS1yYW5nZXM9MHgxMDAwLTB4MWZmZiwweDAwMDAtMHgwMGZmCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9leGVjdmUyLmMgYi9tZW1jaGVjay90ZXN0cy9leGVjdmUyLmMKaW5kZXggYjNkNDRlYy4uYTVkODBmMSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvZXhlY3ZlMi5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL2V4ZWN2ZTIuYwpAQCAtNCw4ICs0LDEwIEBACiBpbnQgbWFpbiAoIGludCBhcmdjLCBjaGFyKiogYXJndiwgY2hhcioqIGVudnAgKQogewogICAgY2hhciogbnVsbF9maWxlbmFtZSA9IE5VTEw7CisgICBjaGFyICpjb25zdCBhcmd2X2V4ZVtdID0geyJ0cnVlIiwgTlVMTH07CiAKLSAgIGV4ZWN2ZShudWxsX2ZpbGVuYW1lLCAgICAgIE5VTEwsIE5VTEwpOwotICAgZXhlY3ZlKCIuLi8uLi90ZXN0cy90cnVlIiwgTlVMTCwgZW52cCk7CisgICBleGVjdmUobnVsbF9maWxlbmFtZSwgTlVMTCwgTlVMTCk7CisgICAvLyBTb2xhcmlzIHJlcXVpcmVzIG5vbi1OVUxMIGFyZ3YgcGFyYW0gKHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBvbiBMaW51eCkKKyAgIGV4ZWN2ZSgiLi4vLi4vdGVzdHMvdHJ1ZSIsIGFyZ3ZfZXhlLCBlbnZwKTsKICAgIGFzc2VydCgwKTsgIC8vIHNob3VsZG4ndCBnZXQgaGVyZQogfQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZXhlY3ZlMi5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvZXhlY3ZlMi5zdGRlcnIuZXhwCmluZGV4IGI4N2JmZjguLmNkOTg1OTMgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2V4ZWN2ZTIuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9leGVjdmUyLnN0ZGVyci5leHAKQEAgLTEsNSArMSw1IEBACiBTeXNjYWxsIHBhcmFtIGV4ZWN2ZShmaWxlbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQogICAgLi4uCi0gICBieSAweC4uLi4uLi4uOiBtYWluIChleGVjdmUyLmM6OCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGV4ZWN2ZTIuYzo5KQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZmlsZV9sb2NraW5nLmMgYi9tZW1jaGVjay90ZXN0cy9maWxlX2xvY2tpbmcuYwppbmRleCBkOTlmNmI1Li4zNWYyOTk1IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9maWxlX2xvY2tpbmcuYworKysgYi9tZW1jaGVjay90ZXN0cy9maWxlX2xvY2tpbmcuYwpAQCAtODEsOCArODEsOCBAQAogICBpbnQgZXhpdGNvZGUgPSAxOwogICBjaGFyIGZpbGVuYW1lWzI1Nl07CiAKLSAgc25wcmludGYoZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIvdG1wL3ZhbGdyaW5kLWZpbGUtbG9ja2luZy10ZXN0LiVkIiwKLSAgICAgICAgICAgZ2V0cGlkKCkpOworICBzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIi90bXAvdmFsZ3JpbmQtZmlsZS1sb2NraW5nLXRlc3QuJWxkIiwKKyAgICAgICAgICAgKGxvbmcpIGdldHBpZCgpKTsKIAogICB1bmxpbmsoZmlsZW5hbWUpOwogCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9mcHJ3LmMgYi9tZW1jaGVjay90ZXN0cy9mcHJ3LmMKaW5kZXggNmViMzA0ZC4uNGVmNzRjNyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvZnBydy5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL2ZwcncuYwpAQCAtMTAsNyArMTAsNyBAQAogICAgdm9sYXRpbGUgZmxvYXQgZjsKICAgIGRvdWJsZSogZHAgPSBtYWxsb2Moc2l6ZW9mKGRvdWJsZSkpOwogICAgZmxvYXQqIGZwID0gbWFsbG9jKHNpemVvZihmbG9hdCkpOwotICAgaW50KiBpcCA9IChpbnQqKTB4MTIzNDU2NzsKKyAgIGludCogaXAgPSAoaW50KikweDEyMzQ1Njc4OwogICAgZCArPSAxLjA7CiAgICBmICs9IDEwLjA7CiAgICAqZHAgKz0gKCBkID4gMC4xICA/IDIuMCA6IDMuMCApOwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvZnBydy52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9mcHJ3LnZndGVzdAppbmRleCA2ZGZiZjBjLi40MTc5MzkxIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9mcHJ3LnZndGVzdAorKysgYi9tZW1jaGVjay90ZXN0cy9mcHJ3LnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXZnb3B0czogLXEKK3Znb3B0czogLXEgLS1rZWVwLXN0YWNrdHJhY2VzPWFsbG9jLXRoZW4tZnJlZQogcHJvZzogICBmcHJ3CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9sZWFrLXNlZ3Ytam1wLmMgYi9tZW1jaGVjay90ZXN0cy9sZWFrLXNlZ3Ytam1wLmMKaW5kZXggNTBhZDI3Yi4uMWQxZjg0YyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvbGVhay1zZWd2LWptcC5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL2xlYWstc2Vndi1qbXAuYwpAQCAtNywxMiArNywxNCBAQAogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KIAordHlwZWRlZiB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgVUludDsKIHR5cGVkZWYgdW5zaWduZWQgbG9uZyAgICAgICAgICAgIFVXb3JkOwogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50ICAgVUxvbmc7CisKIC8vIEJlbG93IGNvZGUgaXMgY29waWVkIGZyb20gbV9zeXNjYWxsLmMKIC8vIFJlZmVyIHRvIHRoaXMgZmlsZSBmb3Igc3lzY2FsbCBjb252ZW50aW9uLgogI2lmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkKLWV4dGVybiBVV29yZCBkb19zeXNjYWxsX1dSSyAoVVdvcmQgc3lzY2FsbF9ubywgCitleHRlcm4gVVdvcmQgZG9fc3lzY2FsbF9XUksgKFVXb3JkIHN5c2NhbGxfbm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVXb3JkIGExLCBVV29yZCBhMiwgVVdvcmQgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVXb3JkIGE0LCBVV29yZCBhNSwgVVdvcmQgYTYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKQEAgLTM5LDYgKzQxLDcgQEAKICIJcmV0XG4iCiAiLnByZXZpb3VzXG4iCiApOworCiAjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9saW51eCkKIGV4dGVybiBVV29yZCBkb19zeXNjYWxsX1dSSyAoCiAgICAgICAgICAgVVdvcmQgc3lzY2FsbF9ubywgCkBAIC0xMDQsNiArMTA3LDcgQEAKICIgICAgICAgICBieCAgICAgIGxyXG4iCiAiLnByZXZpb3VzXG4iCiApOworCiAjZWxpZiBkZWZpbmVkKFZHUF9zMzkweF9saW51eCkKIFVXb3JkIGRvX3N5c2NhbGxfV1JLICgKICAgIFVXb3JkIHN5c2NhbGxfbm8sCkBAIC0xODQsNiArMTg4LDUxIEBACiAgICByZXR1cm4gb3V0OwogfQogCisjZWxpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKK2V4dGVybiBVTG9uZworZG9fc3lzY2FsbF9XUksoVVdvcmQgYTEsIFVXb3JkIGEyLCBVV29yZCBhMywKKyAgICAgICAgICAgICAgIFVXb3JkIGE0LCBVV29yZCBhNSwgVVdvcmQgYTYsCisgICAgICAgICAgICAgICBVV29yZCBhNywgVVdvcmQgYTgsCisgICAgICAgICAgICAgICBVV29yZCBzeXNjYWxsX25vLAorICAgICAgICAgICAgICAgVUludCAqZXJyZmxhZyk7Cithc20oCisiLnRleHRcbiIKKyIuZ2xvYmwgZG9fc3lzY2FsbF9XUktcbiIKKyJkb19zeXNjYWxsX1dSSzpcbiIKKyIgICAgICAgIG1vdmwgICAgNDAoJWVzcCksICVlY3hcbiIgICAgICAvKiBhc3N1bWUgc3lzY2FsbCBzdWNjZXNzICovCisiICAgICAgICBtb3ZsICAgICQwLCAoJWVjeClcbiIKKyIgICAgICAgIG1vdmwgICAgMzYoJWVzcCksICVlYXhcbiIKKyIgICAgICAgIGludCAgICAgJDB4OTFcbiIKKyIgICAgICAgIGpuYyAgICAgMWZcbiIgICAgICAgICAgICAgICAgICAvKiBqdW1wIGlmIHN1Y2Nlc3MgKi8KKyIgICAgICAgIG1vdmwgICAgNDAoJWVzcCksICVlY3hcbiIgICAgICAvKiBzeXNjYWxsIGZhaWxlZCAtIHNldCAqZXJyZmxhZyAqLworIiAgICAgICAgbW92bCAgICAkMSwgKCVlY3gpXG4iCisiMTogICAgICByZXRcbiIKKyIucHJldmlvdXNcbiIKKyk7CisKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCitleHRlcm4gVUxvbmcKK2RvX3N5c2NhbGxfV1JLKFVXb3JkIGExLCBVV29yZCBhMiwgVVdvcmQgYTMsCisgICAgICAgICAgICAgICBVV29yZCBhNCwgVVdvcmQgYTUsIFVXb3JkIGE2LAorICAgICAgICAgICAgICAgVVdvcmQgYTcsIFVXb3JkIGE4LAorICAgICAgICAgICAgICAgVVdvcmQgc3lzY2FsbF9ubywKKyAgICAgICAgICAgICAgIFVJbnQgKmVycmZsYWcpOworYXNtKAorIi50ZXh0XG4iCisiLmdsb2JsIGRvX3N5c2NhbGxfV1JLXG4iCisiZG9fc3lzY2FsbF9XUks6XG4iCisiICAgICAgIG1vdnEgICAgJXJjeCwgJXIxMFxuIiAgICAgICAgICAgLyogcGFzcyByY3ggaW4gcjEwIGluc3RlYWQgKi8KKyIgICAgICAgbW92cSAgICAzMiglcnNwKSwgJXJjeFxuIiAgICAgICAvKiBhc3N1bWUgc3lzY2FsbCBzdWNjZXNzICovCisiICAgICAgIG1vdmwgICAgJDAsICglcmN4KVxuIgorIiAgICAgICBtb3ZxICAgIDI0KCVyc3ApLCAlcmF4XG4iCisiICAgICAgIHN5c2NhbGxcbiIKKyIgICAgICAgam5jICAgICAxZlxuIiAgICAgICAgICAgICAgICAgICAvKiBqdW1wIGlmIHN1Y2Nlc3MgKi8KKyIgICAgICAgbW92cSAgICAzMiglcnNwKSwgJXJjeFxuIiAgICAgICAvKiBzeXNjYWxsIGZhaWxlZCAtIHNldCAqZXJyZmxhZyAqLworIiAgICAgICBtb3ZsICAgICQxLCAoJXJjeClcbiIKKyIxOiAgICAgcmV0XG4iCisiLnByZXZpb3VzXG4iCispOworCiAjZWxzZQogLy8gRW5zdXJlIHRoZSBmaWxlIGNvbXBpbGVzIGV2ZW4gaWYgdGhlIHN5c2NhbGwgbnIgaXMgbm90IGRlZmluZWQuCiAjaWZuZGVmIF9fTlJfbXByb3RlY3QKQEAgLTIwMiwxMiArMjUxLDM1IEBACiAKIAogY2hhciAqKmIxMDsKK2NoYXIgKmludGVyaW9yX3B0cnNbM107CiBpbnQgbXByb3RlY3RfcmVzdWx0ID0gMDsKIHN0YXRpYyB2b2lkIG5vbl9zaW1kX21wcm90ZWN0IChsb25nIHRpZCwgdm9pZCogYWRkciwgbG9uZyBsZW4pCiB7CisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpIHx8IGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBVSW50IGVyciA9IDA7CisgICBtcHJvdGVjdF9yZXN1bHQgPSBkb19zeXNjYWxsX1dSSygoVVdvcmQpIGFkZHIsIGxlbiwgUFJPVF9OT05FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgU1lTX21wcm90ZWN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnIpOworICAgaWYgKGVycikKKyAgICAgIG1wcm90ZWN0X3Jlc3VsdCA9IC0xOworI2Vsc2UKICAgIG1wcm90ZWN0X3Jlc3VsdCA9IGRvX3N5c2NhbGxfV1JLKF9fTlJfbXByb3RlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVdvcmQpIGFkZHIsIGxlbiwgUFJPVF9OT05FLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCk7CisjZW5kaWYKK30KKworLy8gY2FuIHRoaXMgd29yayB3aXRob3V0IGdsb2JhbCB2YXJpYWJsZSBmb3IgcmV0dXJuIHZhbHVlPworc3RhdGljIHZvaWQgbXlfbXByb3RlY3Rfbm9uZSh2b2lkKiBhZGRyLCBsb25nIGxlbikKK3sKKyAgIGlmIChSVU5OSU5HX09OX1ZBTEdSSU5EKQorICAgICAodm9pZCkgVkFMR1JJTkRfTk9OX1NJTURfQ0FMTDIobm9uX3NpbWRfbXByb3RlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKTsKKyAgIGVsc2UKKyAgICAgIG1wcm90ZWN0X3Jlc3VsdCA9IG1wcm90ZWN0KGFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9UX05PTkUpOwogfQogCiB2b2lkIGYodm9pZCkKQEAgLTIyMSw3ICsyOTMsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IG5yX3B0cjsgaSsrKQogICAgICAgYjEwW2ldID0gKGNoYXIqKWIxMDsKICAgIGIxMFs0MDAwXSA9IG1hbGxvYyAoMTAwMCk7Ci0gICAKKwogICAgZnByaW50ZihzdGRlcnIsICJleHBlY3Rpbmcgbm8gbGVha3NcbiIpOwogICAgZmZsdXNoKHN0ZGVycik7CiAgICBWQUxHUklORF9ET19MRUFLX0NIRUNLOwpAQCAtMjQ4LDMyICszMjAsNDQgQEAKICAgIGlmIChwYWdlc2l6ZSA9PSAtMSkKICAgICAgIHBlcnJvciAoInN5c2NvbmYgZmFpbGVkIik7CiAgICAKLSAgIGlmIChSVU5OSU5HX09OX1ZBTEdSSU5EKQotICAgICAodm9pZCkgVkFMR1JJTkRfTk9OX1NJTURfQ0FMTDIobm9uX3NpbWRfbXByb3RlY3QsIFJORFBBR0VET1dOKCZiMTBbNDAwMF0pLCAyICogcGFnZXNpemUpOwotICAgZWxzZQotICAgICAgbXByb3RlY3RfcmVzdWx0ID0gbXByb3RlY3QoKHZvaWQqKSBSTkRQQUdFRE9XTigmYjEwWzQwMDBdKSwgMiAqIHBhZ2VzaXplLCBQUk9UX05PTkUpOworICAgbXlfbXByb3RlY3Rfbm9uZSgodm9pZCopIFJORFBBR0VET1dOKCZiMTBbNDAwMF0pLCAyICogcGFnZXNpemUpOwogICAgZnByaW50ZihzdGRlcnIsICJtcHJvdGVjdCByZXN1bHQgJWRcbiIsIG1wcm90ZWN0X3Jlc3VsdCk7CiAKICAgIGZwcmludGYoc3RkZXJyLCAiZXhwZWN0aW5nIGEgbGVhayBhZ2FpblxuIik7CiAgICBmZmx1c2goc3RkZXJyKTsKICAgIFZBTEdSSU5EX0RPX0xFQUtfQ0hFQ0s7CiAKLSAgIGlmIChSVU5OSU5HX09OX1ZBTEdSSU5EKQotICAgICAodm9pZCkgVkFMR1JJTkRfTk9OX1NJTURfQ0FMTDIobm9uX3NpbWRfbXByb3RlY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSTkRQQUdFRE9XTigmYjEwWzBdKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJORFBBR0VET1dOKCYoYjEwW25yX3B0ci0xXSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIFJORFBBR0VET1dOKCYoYjEwWzBdKSkpOwotICAgZWxzZQotICAgICAgbXByb3RlY3RfcmVzdWx0ID0gbXByb3RlY3QoKHZvaWQqKSBSTkRQQUdFRE9XTigmYjEwWzBdKSwKKyAgIG15X21wcm90ZWN0X25vbmUoKHZvaWQqKSBSTkRQQUdFRE9XTigmYjEwWzBdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJORFBBR0VET1dOKCYoYjEwW25yX3B0ci0xXSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIFJORFBBR0VET1dOKCYoYjEwWzBdKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9UX05PTkUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBSTkRQQUdFRE9XTigmKGIxMFswXSkpKTsKICAgIGZwcmludGYoc3RkZXJyLCAiZnVsbCBtcHJvdGVjdCByZXN1bHQgJWRcbiIsIG1wcm90ZWN0X3Jlc3VsdCk7CiAKICAgIGZwcmludGYoc3RkZXJyLCAiZXhwZWN0aW5nIGEgbGVhayBhZ2FpbiBhZnRlciBmdWxsIG1wcm90ZWN0XG4iKTsKICAgIGZmbHVzaChzdGRlcnIpOwogICAgVkFMR1JJTkRfRE9fTEVBS19DSEVDSzsKIAorICAgLy8gYWxsb2NhdGUgbWVtb3J5IGJ1dCBrZWVwIG9ubHkgaW50ZXJpb3IgcG9pbnRlcnMgdG8gdHJpZ2dlciB2YXJpb3VzCisgICAvLyBoZXVyaXN0aWNzCisgICAvLyBBbGxvY2F0ZSBzb21lIG1lbW9yeToKKyAgIGludGVyaW9yX3B0cnNbMF0gPSBjYWxsb2MgKG5yX3B0ciAqIHNpemVvZihjaGFyKiksIDEpOworCisgICAvLyBJbm5lciBwb2ludGVyIGFmdGVyIDMgc2l6ZVQ6IHRyaWdnZXJzIHRoZSBzdGRzdHJpbmcgaGV1cmlzdGljOgorICAgaW50ZXJpb3JfcHRyc1syXSA9IGludGVyaW9yX3B0cnNbMF0gKyAzICogc2l6ZW9mKHNpemVfdCk7CisKKyAgIC8vIElubmVyIHBvaW50ZXIgYWZ0ZXIgMSBVTG9uZzogdHJpZ2dlcnMgdGhlIGxlbmd0aDY0IGhldXJpc3RpYzoKKyAgIGludGVyaW9yX3B0cnNbMV0gPSBpbnRlcmlvcl9wdHJzWzBdICsgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOworCisgICAvLyBJbm5lciBwb2ludGVyIGFmdGVyIGEgc2l6ZTogdHJpZ2dlcnMgdGhlIG5ld2FycmF5IGhldXJpc3RpY3MuCisgICBpbnRlcmlvcl9wdHJzWzBdICs9IHNpemVvZihzaXplX3QpOworCisgICBteV9tcHJvdGVjdF9ub25lKCAodm9pZCopIFJORFBBR0VET1dOKChpbnRlcmlvcl9wdHJzWzBdIC0gc2l6ZW9mKHNpemVfdCkpKSwKKyAgICAgICAgICAgICAgICAgICAgIFJORFBBR0VET1dOKG5yX3B0ciAqIHNpemVvZihjaGFyKikpKTsKKyAgIGZwcmludGYoc3RkZXJyLCAibXByb3RlY3QgcmVzdWx0ICVkXG4iLCBtcHJvdGVjdF9yZXN1bHQpOworCisgICBmcHJpbnRmKHN0ZGVyciwgImV4cGVjdGluZyBoZXVyaXN0aWMgbm90IHRvIGNyYXNoIGFmdGVyIGZ1bGwgbXByb3RlY3RcbiIpOworICAgZmZsdXNoKHN0ZGVycik7CisgICBWQUxHUklORF9ET19MRUFLX0NIRUNLOworCiAgICBmcHJpbnRmKHN0ZGVyciwgImZpbmlzaGVkXG4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvbGVhay1zZWd2LWptcC5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvbGVhay1zZWd2LWptcC5zdGRlcnIuZXhwCmluZGV4IDczZjRlMTEuLjFlZTM3Y2QgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2xlYWstc2Vndi1qbXAuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9sZWFrLXNlZ3Ytam1wLnN0ZGVyci5leHAKQEAgLTE0LDggKzE0LDggQEAKIGV4cGVjdGluZyBhIGxlYWsKIDEsMDAwIGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgLi4uIG9mIC4uLgogICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IGYgKGxlYWstc2Vndi1qbXAuYzoyMjMpCi0gICBieSAweC4uLi4uLi4uOiBtYWluIChsZWFrLXNlZ3Ytam1wLmM6Mjg2KQorICAgYnkgMHguLi4uLi4uLjogZiAobGVhay1zZWd2LWptcC5jOjI5NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWstc2Vndi1qbXAuYzozNzApCiAKIExFQUsgU1VNTUFSWToKICAgIGRlZmluaXRlbHkgbG9zdDogMSwwMDAgYnl0ZXMgaW4gMSBibG9ja3MKQEAgLTMwLDggKzMwLDggQEAKIGV4cGVjdGluZyBhIGxlYWsgYWdhaW4KIDEsMDAwIGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgLi4uIG9mIC4uLgogICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IGYgKGxlYWstc2Vndi1qbXAuYzoyMjMpCi0gICBieSAweC4uLi4uLi4uOiBtYWluIChsZWFrLXNlZ3Ytam1wLmM6Mjg2KQorICAgYnkgMHguLi4uLi4uLjogZiAobGVhay1zZWd2LWptcC5jOjI5NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWstc2Vndi1qbXAuYzozNzApCiAKIExFQUsgU1VNTUFSWToKICAgIGRlZmluaXRlbHkgbG9zdDogMSwwMDAgYnl0ZXMgaW4gMSBibG9ja3MKQEAgLTQ2LDggKzQ2LDggQEAKIGV4cGVjdGluZyBhIGxlYWsgYWdhaW4gYWZ0ZXIgZnVsbCBtcHJvdGVjdAogMSwwMDAgYnl0ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRlbHkgbG9zdCBpbiBsb3NzIHJlY29yZCAuLi4gb2YgLi4uCiAgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogZiAobGVhay1zZWd2LWptcC5jOjIyMykKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWstc2Vndi1qbXAuYzoyODYpCisgICBieSAweC4uLi4uLi4uOiBmIChsZWFrLXNlZ3Ytam1wLmM6Mjk1KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAobGVhay1zZWd2LWptcC5jOjM3MCkKIAogTEVBSyBTVU1NQVJZOgogICAgZGVmaW5pdGVseSBsb3N0OiAxLDAwMCBieXRlcyBpbiAxIGJsb2NrcwpAQCAtNTgsMjUgKzU4LDQ2IEBACiBSZWFjaGFibGUgYmxvY2tzICh0aG9zZSB0byB3aGljaCBhIHBvaW50ZXIgd2FzIGZvdW5kKSBhcmUgbm90IHNob3duLgogVG8gc2VlIHRoZW0sIHJlcnVuIHdpdGg6IC0tbGVhay1jaGVjaz1mdWxsIC0tc2hvdy1sZWFrLWtpbmRzPWFsbAogCittcHJvdGVjdCByZXN1bHQgMAorZXhwZWN0aW5nIGhldXJpc3RpYyBub3QgdG8gY3Jhc2ggYWZ0ZXIgZnVsbCBtcHJvdGVjdAorMSwwMDAgYnl0ZXMgaW4gMSBibG9ja3MgYXJlIGRlZmluaXRlbHkgbG9zdCBpbiBsb3NzIHJlY29yZCAuLi4gb2YgLi4uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogZiAobGVhay1zZWd2LWptcC5jOjI5NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWstc2Vndi1qbXAuYzozNzApCisKKzQwLDAwMCBieXRlcyBpbiAxIGJsb2NrcyBhcmUgcG9zc2libHkgbG9zdCBpbiBsb3NzIHJlY29yZCAuLi4gb2YgLi4uCisgICBhdCAweC4uLi4uLi4uOiBjYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogZiAobGVhay1zZWd2LWptcC5jOjM0MikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWstc2Vndi1qbXAuYzozNzApCisKK0xFQUsgU1VNTUFSWToKKyAgIGRlZmluaXRlbHkgbG9zdDogMSwwMDAgYnl0ZXMgaW4gMSBibG9ja3MKKyAgIGluZGlyZWN0bHkgbG9zdDogMCBieXRlcyBpbiAwIGJsb2NrcworICAgICBwb3NzaWJseSBsb3N0OiA0MCwwMDAgYnl0ZXMgaW4gMSBibG9ja3MKKyAgIHN0aWxsIHJlYWNoYWJsZTogNDAsMDAwIGJ5dGVzIGluIDEgYmxvY2tzCisgICAgICAgIHN1cHByZXNzZWQ6IDAgYnl0ZXMgaW4gMCBibG9ja3MKK1JlYWNoYWJsZSBibG9ja3MgKHRob3NlIHRvIHdoaWNoIGEgcG9pbnRlciB3YXMgZm91bmQpIGFyZSBub3Qgc2hvd24uCitUbyBzZWUgdGhlbSwgcmVydW4gd2l0aDogLS1sZWFrLWNoZWNrPWZ1bGwgLS1zaG93LWxlYWsta2luZHM9YWxsCisKIGZpbmlzaGVkCiBMRUFLIFNVTU1BUlk6CiAgICBkZWZpbml0ZWx5IGxvc3Q6IDEsMDAwIGJ5dGVzIGluIDEgYmxvY2tzCiAgICBpbmRpcmVjdGx5IGxvc3Q6IDAgYnl0ZXMgaW4gMCBibG9ja3MKLSAgICAgcG9zc2libHkgbG9zdDogMCBieXRlcyBpbiAwIGJsb2NrcworICAgICBwb3NzaWJseSBsb3N0OiA0MCwwMDAgYnl0ZXMgaW4gMSBibG9ja3MKICAgIHN0aWxsIHJlYWNoYWJsZTogNDAsMDAwIGJ5dGVzIGluIDEgYmxvY2tzCiAgICAgICAgIHN1cHByZXNzZWQ6IDAgYnl0ZXMgaW4gMCBibG9ja3MKIFJlcnVuIHdpdGggLS1sZWFrLWNoZWNrPWZ1bGwgdG8gc2VlIGRldGFpbHMgb2YgbGVha2VkIG1lbW9yeQogCiBsZWFrZWQ6ICAgICAxMDAwIGJ5dGVzIGluICAxIGJsb2NrcwotZHViaW91czogICAgICAwIGJ5dGVzIGluICAwIGJsb2NrcworZHViaW91czogICAgNDAwMDAgYnl0ZXMgaW4gIDEgYmxvY2tzCiByZWFjaGFibGU6ICA0MDAwMCBieXRlcyBpbiAgMSBibG9ja3MKIHN1cHByZXNzZWQ6ICAgMCBieXRlcyBpbiAgMCBibG9ja3MKIAogSEVBUCBTVU1NQVJZOgotICAgIGluIHVzZSBhdCBleGl0OiA0MSwwMDAgYnl0ZXMgaW4gMiBibG9ja3MKLSAgdG90YWwgaGVhcCB1c2FnZTogMiBhbGxvY3MsIDAgZnJlZXMsIDQxLDAwMCBieXRlcyBhbGxvY2F0ZWQKKyAgICBpbiB1c2UgYXQgZXhpdDogODEsMDAwIGJ5dGVzIGluIDMgYmxvY2tzCisgIHRvdGFsIGhlYXAgdXNhZ2U6IDMgYWxsb2NzLCAwIGZyZWVzLCA4MSwwMDAgYnl0ZXMgYWxsb2NhdGVkCiAKIEZvciBhIGRldGFpbGVkIGxlYWsgYW5hbHlzaXMsIHJlcnVuIHdpdGg6IC0tbGVhay1jaGVjaz1mdWxsCiAKIEZvciBjb3VudHMgb2YgZGV0ZWN0ZWQgYW5kIHN1cHByZXNzZWQgZXJyb3JzLCByZXJ1biB3aXRoOiAtdgotRVJST1IgU1VNTUFSWTogMyBlcnJvcnMgZnJvbSAzIGNvbnRleHRzIChzdXBwcmVzc2VkOiAwIGZyb20gMCkKK0VSUk9SIFNVTU1BUlk6IDUgZXJyb3JzIGZyb20gNSBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9sZWFrLXNlZ3Ytam1wLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL2xlYWstc2Vndi1qbXAudmd0ZXN0CmluZGV4IDQzY2Q2ZDAuLjUyZGFlOTEgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2xlYWstc2Vndi1qbXAudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL2xlYWstc2Vndi1qbXAudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAotcHJlcmVxOiB0ZXN0ICEgYC4uLy4uL3Rlc3RzL29zX3Rlc3QgZGFyd2luYCAmJiAhIGAuLi8uLi90ZXN0cy9hcmNoX3Rlc3QgbWlwczMyYCAmJiAhIGAuLi8uLi90ZXN0cy9hcmNoX3Rlc3QgcHBjNjRgCitwcmVyZXE6ICEgLi4vLi4vdGVzdHMvb3NfdGVzdCBkYXJ3aW4gJiYgISAuLi8uLi90ZXN0cy9hcmNoX3Rlc3QgbWlwczMyICYmICEgLi4vLi4vdGVzdHMvYXJjaF90ZXN0IHBwYzY0CiBwcm9nOiBsZWFrLXNlZ3Ytam1wCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9sZWFrX2NwcF9pbnRlcmlvci5jcHAgYi9tZW1jaGVjay90ZXN0cy9sZWFrX2NwcF9pbnRlcmlvci5jcHAKaW5kZXggZjU5OWVhZS4uZjY2ZmM4OSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvbGVha19jcHBfaW50ZXJpb3IuY3BwCisrKyBiL21lbWNoZWNrL3Rlc3RzL2xlYWtfY3BwX2ludGVyaW9yLmNwcApAQCAtMSwzICsxLDUgQEAKKyNkZWZpbmUgX19TVERDX0ZPUk1BVF9NQUNST1MKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+CkBAIC0xMDcsNyArMTA5LDggQEAKICAgCiAgIC8vIHByZXBhcmUgdGhlIHdob19wb2ludHNfYXQgY21kIHdlIHdpbGwgcnVuLgogICAvLyBEbyBpdCBoZXJlIHRvIGF2b2lkIGhhdmluZyBwdHIgb3IgaXRzIGV4dGVyaW9yIHB0ciBrZXB0IGluIGEgcmVnaXN0ZXIuCi0gIHNwcmludGYod2hvX3BvaW50c19hdF9jbWQsICJ3aG9fcG9pbnRzX2F0ICVwIDIwIiwgKGNoYXIqKXB0ciAtIHNpemVvZih2b2lkKikpOworICBzcHJpbnRmKHdob19wb2ludHNfYXRfY21kLCAid2hvX3BvaW50c19hdCAlIyIgUFJJeFBUUiAiIDIwIiwKKyAgICAgICAgICAodWludHB0cl90KSAoY2hhciopcHRyIC0gc2l6ZW9mKHZvaWQqKSk7CiAKICAgcHRyMiA9IG5ldyBNeUNsYXNzWzBdOyAvLyAiaW50ZXJpb3IgYnV0IGV4dGVyaW9yIHB0ciIuCiAgIC8vIHB0cjIgcG9pbnRzIGFmdGVyIHRoZSBjaHVuaywgaXMgd3JvbmdseSBjb25zaWRlcmVkIGJ5IG1lbWNoZWNrIGFzIGRlZmluaXRlbHkgbGVha2VkLgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvbGVha19jcHBfaW50ZXJpb3Iuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL2xlYWtfY3BwX2ludGVyaW9yLnN0ZGVyci5leHAKaW5kZXggODUzMWM0ZS4uMzIyOGY3NCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvbGVha19jcHBfaW50ZXJpb3Iuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9sZWFrX2NwcF9pbnRlcmlvci5zdGRlcnIuZXhwCkBAIC0yLDggKzIsOCBAQAogdmFsZ3JpbmQgb3V0cHV0IHdpbGwgZ28gdG8gbG9nCiBWQUxHUklORF9ET19MRUFLX0NIRUNLCiA0IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgLi4uIG9mIC4uLgotICAgYnkgMHguLi4uLi4uLjogZG9pdCgpIChsZWFrX2NwcF9pbnRlcmlvci5jcHA6MTEyKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAobGVha19jcHBfaW50ZXJpb3IuY3BwOjEyNykKKyAgIGJ5IDB4Li4uLi4uLi46IGRvaXQoKSAobGVha19jcHBfaW50ZXJpb3IuY3BwOjExNSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWtfY3BwX2ludGVyaW9yLmNwcDoxMzApCiAKIExFQUsgU1VNTUFSWToKICAgIGRlZmluaXRlbHkgbG9zdDogNCBieXRlcyBpbiAxIGJsb2NrcwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvbGVha19jcHBfaW50ZXJpb3Iuc3RkZXJyLmV4cC02NGJpdCBiL21lbWNoZWNrL3Rlc3RzL2xlYWtfY3BwX2ludGVyaW9yLnN0ZGVyci5leHAtNjRiaXQKaW5kZXggOGEwMjVhOS4uN2E4NjJhMyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvbGVha19jcHBfaW50ZXJpb3Iuc3RkZXJyLmV4cC02NGJpdAorKysgYi9tZW1jaGVjay90ZXN0cy9sZWFrX2NwcF9pbnRlcmlvci5zdGRlcnIuZXhwLTY0Yml0CkBAIC0yLDggKzIsOCBAQAogdmFsZ3JpbmQgb3V0cHV0IHdpbGwgZ28gdG8gbG9nCiBWQUxHUklORF9ET19MRUFLX0NIRUNLCiA4IGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgLi4uIG9mIC4uLgotICAgYnkgMHguLi4uLi4uLjogZG9pdCgpIChsZWFrX2NwcF9pbnRlcmlvci5jcHA6MTEyKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAobGVha19jcHBfaW50ZXJpb3IuY3BwOjEyNykKKyAgIGJ5IDB4Li4uLi4uLi46IGRvaXQoKSAobGVha19jcHBfaW50ZXJpb3IuY3BwOjExNSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGxlYWtfY3BwX2ludGVyaW9yLmNwcDoxMzApCiAKIExFQUsgU1VNTUFSWToKICAgIGRlZmluaXRlbHkgbG9zdDogOCBieXRlcyBpbiAxIGJsb2NrcwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvbGludXgvZ2V0cmVnc2V0LnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL2xpbnV4L2dldHJlZ3NldC52Z3Rlc3QKaW5kZXggOGE2OWJjZS4uMWJkNmVmMCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvbGludXgvZ2V0cmVnc2V0LnZndGVzdAorKysgYi9tZW1jaGVjay90ZXN0cy9saW51eC9nZXRyZWdzZXQudmd0ZXN0CkBAIC0xLDQgKzEsNCBAQAogcHJvZzogZ2V0cmVnc2V0CiB2Z29wdHM6IC1xCi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL29zX3Rlc3QgbGludXggMi42LjMzICYmICEgLi4vLi4vLi4vdGVzdHMvYXJjaF90ZXN0IG1pcHMzMiAmJiAhIGAuLi8uLi8uLi90ZXN0cy9hcmNoX3Rlc3QgcHBjNjRgCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL29zX3Rlc3QgbGludXggMi42LjMzICYmICEgLi4vLi4vLi4vdGVzdHMvYXJjaF90ZXN0IG1pcHMzMiAmJiAhIC4uLy4uLy4uL3Rlc3RzL2FyY2hfdGVzdCBwcGM2NAogCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9saW51eC9wcm9jLWF1eHYudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvbGludXgvcHJvYy1hdXh2LnZndGVzdAppbmRleCA0ZDMzN2IwLi5kMzY0MDc2IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9saW51eC9wcm9jLWF1eHYudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL2xpbnV4L3Byb2MtYXV4di52Z3Rlc3QKQEAgLTEsMyArMSwzIEBACi1wcmVyZXE6IGBMRF9TSE9XX0FVWFY9MSAvYmluL2VjaG8gfCBncmVwIEFUX1BMQVRGT1JNID4gL2Rldi9udWxsYAorcHJlcmVxOiBMRF9TSE9XX0FVWFY9MSAvYmluL2VjaG8gfCBncmVwIC1xIEFUX1BMQVRGT1JNCiBwcm9nOiBwcm9jLWF1eHYKIHZnb3B0czogLXEKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL2xvbmdfbmFtZXNwYWNlX3htbC5jcHAgYi9tZW1jaGVjay90ZXN0cy9sb25nX25hbWVzcGFjZV94bWwuY3BwCmluZGV4IDkxYmRlYWYuLmZiOGEzZGQgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL2xvbmdfbmFtZXNwYWNlX3htbC5jcHAKKysrIGIvbWVtY2hlY2svdGVzdHMvbG9uZ19uYW1lc3BhY2VfeG1sLmNwcApAQCAtMTksNiArMTksNyBAQAogI2RlZmluZSBOMiBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoKIAogI2luY2x1ZGUgPGlvc3RyZWFtPgorI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAKQEAgLTQyLDUgKzQzLDggQEAKIAogaW50IG1haW4oKSB7CiAgIE4xOjpOMjo6ZigpOworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgIGZjbG9zZWFsbCgpOworI2VuZGlmCiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvbWFsbG9jMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvbWFsbG9jMS5zdGRlcnIuZXhwCmluZGV4IGI0NDBhODMuLmJiZjgwNDEgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL21hbGxvYzEuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9tYWxsb2MxLnN0ZGVyci5leHAKQEAgLTUsNiArNSwxMCBAQAogICAgYXQgMHguLi4uLi4uLjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiByZWFsbHkgKG1hbGxvYzEuYzoxOSkKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKG1hbGxvYzEuYzo5KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogcmVhbGx5IChtYWxsb2MxLmM6MTYpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChtYWxsb2MxLmM6OSkKIAogSW52YWxpZCB3cml0ZSBvZiBzaXplIDEKICAgIGF0IDB4Li4uLi4uLi46IHJlYWxseSAobWFsbG9jMS5jOjIzKQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvbWFsbG9jMi5jIGIvbWVtY2hlY2svdGVzdHMvbWFsbG9jMi5jCmluZGV4IDQ0Y2M3YmIuLjQ5NmZkZmYgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL21hbGxvYzIuYworKysgYi9tZW1jaGVjay90ZXN0cy9tYWxsb2MyLmMKQEAgLTEwLDYgKzEwLDE3IEBACiAKIHZvaWQqIHRlc3RfYXJyW05fVEVTVF9BUlJdOwogCit1bnNpZ25lZCBteXJhbmRvbSh2b2lkKQoreworICAgLyogU2ltcGxlIG11bHRpcGx5LXdpdGgtY2FycnkgcmFuZG9tIGdlbmVyYXRvci4gKi8KKyAgIHN0YXRpYyB1bnNpZ25lZCBtX3cgPSAxMTsKKyAgIHN0YXRpYyB1bnNpZ25lZCBtX3ogPSAxMzsKKworICAgbV96ID0gMzY5NjkgKiAobV96ICYgNjU1MzUpICsgKG1feiA+PiAxNik7CisgICBtX3cgPSAxODAwMCAqIChtX3cgJiA2NTUzNSkgKyAobV93ID4+IDE2KTsKKyAgIHJldHVybiAobV96IDw8IDE2KSArIG1fdzsKK30KKwogaW50IG1haW4gKCBpbnQgYXJnYywgY2hhcioqIGFyZ3YgKQogewogICAgaW50IGksIGosIGssIG5ieXRlczsKQEAgLTE5LDEzICszMCwxMyBAQAogICAgICAgdGVzdF9hcnJbaV0gPSBOVUxMOwogCiAgICBmb3IgKGkgPSAwOyBpIDwgTl9URVNUX1RSQU5TQUNUSU9OUzsgaSsrKSB7Ci0gICAgICBqID0gcmFuZG9tKCkgJSBOX1RFU1RfQVJSOworICAgICAgaiA9IG15cmFuZG9tKCkgJSBOX1RFU1RfQVJSOwogICAgICAgaWYgKHRlc3RfYXJyW2pdKSB7CiAgICAgICAgICBmcmVlKHRlc3RfYXJyW2pdKTsKICAgICAgICAgIHRlc3RfYXJyW2pdID0gTlVMTDsKICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBuYnl0ZXMgPSAxICsgcmFuZG9tKCkgJSBNX1RFU1RfTUFMTE9DOwotICAgICAgICAgaWYgKHJhbmRvbSgpJTY0ID09IDMyKSAKKyAgICAgICAgIG5ieXRlcyA9IDEgKyBteXJhbmRvbSgpICUgTV9URVNUX01BTExPQzsKKyAgICAgICAgIGlmIChteXJhbmRvbSgpJTY0ID09IDMyKQogICAgICAgICAgICAgbmJ5dGVzICo9IDE3OwogICAgICAgICAgdGVzdF9hcnJbal0gPSBtYWxsb2MoIG5ieXRlcyApOwogICAgICAgICAgY2hwID0gdGVzdF9hcnJbal07CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9tYWxsb2MyLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9tYWxsb2MyLnN0ZGVyci5leHAKaW5kZXggN2JhMDQyNi4uMzZmYjg0OCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvbWFsbG9jMi5zdGRlcnIuZXhwCisrKyBiL21lbWNoZWNrL3Rlc3RzL21hbGxvYzIuc3RkZXJyLmV4cApAQCAtMSwxMyArMSwxOSBAQAogSW52YWxpZCB3cml0ZSBvZiBzaXplIDEKLSAgIGF0IDB4Li4uLi4uLi46IG1haW4gKG1hbGxvYzIuYzozOSkKLSBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDQyOSBmcmVlJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKG1hbGxvYzIuYzo1MCkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDc3MiBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAobWFsbG9jMi5jOjM4KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAobWFsbG9jMi5jOjQ5KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAobWFsbG9jMi5jOjQxKQogCiBJbnZhbGlkIGZyZWUoKSAvIGRlbGV0ZSAvIGRlbGV0ZVtdIC8gcmVhbGxvYygpCiAgICBhdCAweC4uLi4uLi4uOiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKG1hbGxvYzIuYzo0MykKLSBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDQyOSBmcmVlJ2QKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKG1hbGxvYzIuYzo1NCkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDc3MiBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAobWFsbG9jMi5jOjM4KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAobWFsbG9jMi5jOjQ5KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAobWFsbG9jMi5jOjQxKQogCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9tYWxsb2NfdXNhYmxlLmMgYi9tZW1jaGVjay90ZXN0cy9tYWxsb2NfdXNhYmxlLmMKaW5kZXggYjAzNmIxMC4uNzhhYjhmMSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvbWFsbG9jX3VzYWJsZS5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL21hbGxvY191c2FibGUuYwpAQCAtNSw3ICs1LDcgQEAKIAogaW50IG1haW4odm9pZCkKIHsKLSMgIGlmICFkZWZpbmVkKFZHT19kYXJ3aW4pCisjICBpZiAhZGVmaW5lZChWR09fZGFyd2luKSAmJiAhZGVmaW5lZChWR09fc29sYXJpcykKICAgIC8vIEJlY2F1c2UgTWVtY2hlY2sgbWFya3MgYW55IHNsb3AgYXMgaW5hY2Nlc3NpYmxlLCBpdCBkb2Vzbid0IHJvdW5kIHVwCiAgICAvLyBzaXplcyBmb3IgbWFsbG9jX3VzYWJsZV9zaXplKCkuCiAgICBpbnQqIHggPSBtYWxsb2MoOTkpOwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvbWVtYWxpZ25fdGVzdC5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvbWVtYWxpZ25fdGVzdC5zdGRlcnIuZXhwCmluZGV4IGFhOGQ1ODguLmU5ZGMxYWYgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL21lbWFsaWduX3Rlc3Quc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9tZW1hbGlnbl90ZXN0LnN0ZGVyci5leHAKQEAgLTQsNCArNCw4IEBACiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxMTEsMTEwIGZyZWUnZAogICAgYXQgMHguLi4uLi4uLjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChtZW1hbGlnbl90ZXN0LmM6MjMpCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1lbWFsaWduICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IHZhbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChtZW1hbGlnbl90ZXN0LmM6MTYpCiAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL25vaXN5X2NoaWxkLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9ub2lzeV9jaGlsZC5zdGRlcnIuZXhwCmluZGV4IDJmNTgzNDMuLjY3NWZjNjQgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL25vaXN5X2NoaWxkLnN0ZGVyci5leHAKKysrIGIvbWVtY2hlY2svdGVzdHMvbm9pc3lfY2hpbGQuc3RkZXJyLmV4cApAQCAtNCw2ICs0LDkgQEAKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgNSBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDEwIGZyZWUnZAogICAgYXQgMHguLi4uLi4uLjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCiAgICBieSAweC4uLi4uLi4uOiBtYWluIChub2lzeV9jaGlsZC5jOjI0KQorIEJsb2NrIHdhcyBhbGxvYydkIGF0CisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAobm9pc3lfY2hpbGQuYzoyMykKIAogSW52YWxpZCB3cml0ZSBvZiBzaXplIDEKICAgIGF0IDB4Li4uLi4uLi46IGRvX3BhcmVudF9iYWRuZXNzIChub2lzeV9jaGlsZC5jOjE2KQpAQCAtMTEsNiArMTQsOSBAQAogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSAxMCBmcmVlJ2QKICAgIGF0IDB4Li4uLi4uLi46IGZyZWUgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQogICAgYnkgMHguLi4uLi4uLjogbWFpbiAobm9pc3lfY2hpbGQuYzoyNCkKKyBCbG9jayB3YXMgYWxsb2MnZCBhdAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKG5vaXN5X2NoaWxkLmM6MjMpCiAKIAogSEVBUCBTVU1NQVJZOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvcGFydGlhbF9sb2FkX2RmbHQuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3BhcnRpYWxfbG9hZF9kZmx0LnN0ZGVyci5leHAKaW5kZXggODcxZjY1MS4uZmRiNGEzMyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvcGFydGlhbF9sb2FkX2RmbHQuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9wYXJ0aWFsX2xvYWRfZGZsdC5zdGRlcnIuZXhwCkBAIC0xLDExICsxLDUgQEAKIAogSW52YWxpZCByZWFkIG9mIHNpemUgNAotICAgYXQgMHguLi4uLi4uLjogbWFpbiAocGFydGlhbF9sb2FkLmM6MTYpCi0gQWRkcmVzcyAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAzIGFsbG9jJ2QKLSAgIGF0IDB4Li4uLi4uLi46IGNhbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBtYWluIChwYXJ0aWFsX2xvYWQuYzoxNCkKLQotSW52YWxpZCByZWFkIG9mIHNpemUgNAogICAgYXQgMHguLi4uLi4uLjogbWFpbiAocGFydGlhbF9sb2FkLmM6MjMpCiAgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDEgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSA0IGFsbG9jJ2QKICAgIGF0IDB4Li4uLi4uLi46IGNhbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCkBAIC0zMSw0ICsyNSw0IEBACiBGb3IgYSBkZXRhaWxlZCBsZWFrIGFuYWx5c2lzLCByZXJ1biB3aXRoOiAtLWxlYWstY2hlY2s9ZnVsbAogCiBGb3IgY291bnRzIG9mIGRldGVjdGVkIGFuZCBzdXBwcmVzc2VkIGVycm9ycywgcmVydW4gd2l0aDogLXYKLUVSUk9SIFNVTU1BUlk6IDQgZXJyb3JzIGZyb20gNCBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCitFUlJPUiBTVU1NQVJZOiAzIGVycm9ycyBmcm9tIDMgY29udGV4dHMgKHN1cHByZXNzZWQ6IDAgZnJvbSAwKQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvcGFydGlhbF9sb2FkX2RmbHQuc3RkZXJyLmV4cDY0IGIvbWVtY2hlY2svdGVzdHMvcGFydGlhbF9sb2FkX2RmbHQuc3RkZXJyLmV4cDY0CmluZGV4IDg4NzNhMjUuLmE1N2Q5YWEgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3BhcnRpYWxfbG9hZF9kZmx0LnN0ZGVyci5leHA2NAorKysgYi9tZW1jaGVjay90ZXN0cy9wYXJ0aWFsX2xvYWRfZGZsdC5zdGRlcnIuZXhwNjQKQEAgLTEsMTEgKzEsNSBAQAogCiBJbnZhbGlkIHJlYWQgb2Ygc2l6ZSA4Ci0gICBhdCAweC4uLi4uLi4uOiBtYWluIChwYXJ0aWFsX2xvYWQuYzoxNikKLSBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDcgYWxsb2MnZAotICAgYXQgMHguLi4uLi4uLjogY2FsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHBhcnRpYWxfbG9hZC5jOjE0KQotCi1JbnZhbGlkIHJlYWQgb2Ygc2l6ZSA4CiAgICBhdCAweC4uLi4uLi4uOiBtYWluIChwYXJ0aWFsX2xvYWQuYzoyMykKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMSBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDggYWxsb2MnZAogICAgYXQgMHguLi4uLi4uLjogY2FsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKQEAgLTMxLDQgKzI1LDQgQEAKIEZvciBhIGRldGFpbGVkIGxlYWsgYW5hbHlzaXMsIHJlcnVuIHdpdGg6IC0tbGVhay1jaGVjaz1mdWxsCiAKIEZvciBjb3VudHMgb2YgZGV0ZWN0ZWQgYW5kIHN1cHByZXNzZWQgZXJyb3JzLCByZXJ1biB3aXRoOiAtdgotRVJST1IgU1VNTUFSWTogNCBlcnJvcnMgZnJvbSA0IGNvbnRleHRzIChzdXBwcmVzc2VkOiAwIGZyb20gMCkKK0VSUk9SIFNVTU1BUlk6IDMgZXJyb3JzIGZyb20gMyBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9wYXJ0aWFsX2xvYWRfZGZsdC52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9wYXJ0aWFsX2xvYWRfZGZsdC52Z3Rlc3QKaW5kZXggYjFjNmIyNy4uYTk1YmI2MiAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvcGFydGlhbF9sb2FkX2RmbHQudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL3BhcnRpYWxfbG9hZF9kZmx0LnZndGVzdApAQCAtMSwzICsxLDQgQEAKIHByb2c6IHBhcnRpYWxfbG9hZAordmdvcHRzOiAtLWtlZXAtc3RhY2t0cmFjZXM9YWxsb2MtdGhlbi1mcmVlCiBzdGRlcnJfZmlsdGVyOiBmaWx0ZXJfYWxsb2NzCiBzdGRlcnJfZmlsdGVyX2FyZ3M6IHBhcnRpYWxfbG9hZC5jCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9wYXJ0aWFsX2xvYWRfb2sudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvcGFydGlhbF9sb2FkX29rLnZndGVzdAppbmRleCBkNDAwM2E3Li4wYzljYWExIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9wYXJ0aWFsX2xvYWRfb2sudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL3BhcnRpYWxfbG9hZF9vay52Z3Rlc3QKQEAgLTEsNCArMSw0IEBACiBwcm9nOiBwYXJ0aWFsX2xvYWQKLXZnb3B0czogLS1wYXJ0aWFsLWxvYWRzLW9rPXllcwordmdvcHRzOiAtLXBhcnRpYWwtbG9hZHMtb2s9eWVzIC0ta2VlcC1zdGFja3RyYWNlcz1hbGxvYy10aGVuLWZyZWUKIHN0ZGVycl9maWx0ZXI6IGZpbHRlcl9hbGxvY3MKIHN0ZGVycl9maWx0ZXJfYXJnczogcGFydGlhbF9sb2FkLmMKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3Bvc3Qtc3lzY2FsbC5jIGIvbWVtY2hlY2svdGVzdHMvcG9zdC1zeXNjYWxsLmMKaW5kZXggY2M0NzM1MC4uNjY1NWFiNCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvcG9zdC1zeXNjYWxsLmMKKysrIGIvbWVtY2hlY2svdGVzdHMvcG9zdC1zeXNjYWxsLmMKQEAgLTksNyArOSw3IEBACiAvKiBDaGVjayB0aGF0IGEgc3lzY2FsbCdzIFBPU1QgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgaWYgaXQgY29tcGxldGVzCiAgICBkdWUgdG8gYmVpbmcgaW50ZXJydXB0ZWQuICBuYW5vc2xlZXAgaXMgdXNlZCBoZXJlLCBiZWNhdXNlIGl0CiAgICB3cml0ZXMgYSByZXN1bHQgZXZlbiBpZiBpdCBmYWlscy4gIHdhaXQqKCkgY291bGQgYWxzbyBiZSB1c2VkLAotICAgYmVjYXVzZSB0aGV5IHN1Y2Nlc3N1bGx5IGNvbXBsZXRlIGlmIGludGVycnVwdGVkIGJ5IFNJR0NITEQuCisgICBiZWNhdXNlIHRoZXkgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlIGlmIGludGVycnVwdGVkIGJ5IFNJR0NITEQuCiAgKi8KIHN0YXRpYyB2b2lkIGhhbmRsZXIoaW50IHMpCiB7CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9wcGMzMi9wb3dlcl9JU0EyXzA3LnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3BwYzMyL3Bvd2VyX0lTQTJfMDcudmd0ZXN0CmluZGV4IDlhNDM3ODUuLmZhMzRhMWUgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3BwYzMyL3Bvd2VyX0lTQTJfMDcudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL3BwYzMyL3Bvd2VyX0lTQTJfMDcudmd0ZXN0CkBAIC0xLDMgKzEsMyBAQAotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19pc2EtMl8wN19jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgYXJjaF8yXzA3CiBwcm9nOiBwb3dlcl9JU0EyXzA3Ci12Z29wdHM6IAordmdvcHRzOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvcHBjNjQvcG93ZXJfSVNBMl8wNy52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9wcGM2NC9wb3dlcl9JU0EyXzA3LnZndGVzdAppbmRleCA2M2JhODhmLi5mYTM0YTFlIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9wcGM2NC9wb3dlcl9JU0EyXzA3LnZndGVzdAorKysgYi9tZW1jaGVjay90ZXN0cy9wcGM2NC9wb3dlcl9JU0EyXzA3LnZndGVzdApAQCAtMSwzICsxLDMgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfaXNhLTJfMDdfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGFyY2hfMl8wNwogcHJvZzogcG93ZXJfSVNBMl8wNwogdmdvcHRzOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc2JmcmFnbWVudC5jIGIvbWVtY2hlY2svdGVzdHMvc2JmcmFnbWVudC5jCmluZGV4IDE2YTllNmEuLjU0NWZlM2QgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3NiZnJhZ21lbnQuYworKysgYi9tZW1jaGVjay90ZXN0cy9zYmZyYWdtZW50LmMKQEAgLTc1LDcgKzc1LDcgQEAKICAgICB9CiAKICAgcHJpbnRmICgiYWZ0ZXIgJWQgbG9vcHMsIGxhc3Qgc2l6ZSBibG9jayByZXF1ZXN0ZWQgJWx1XG4iLCBsb29wLCBiaWdzaXplKTsKLSAgLy8gdmVyaWZ5IGlmIHN1cGVyYmxvY2sgZnJhZ21lbnRhdGlvbiBvY2N1cmVkCisgIC8vIHZlcmlmeSBpZiBzdXBlcmJsb2NrIGZyYWdtZW50YXRpb24gb2NjdXJyZWQKICAgLy8gV2UgY29uc2lkZXIgdGhhdCBhbiBhcmVuYSBvZiB1cCB0byAzIHRpbWVzIG1vcmUgdGhhbiBiaWdzaXplIGlzIG9rLgogICB7CiAjaWYgZGVmaW5lZChIQVZFX01BTExJTkZPKQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc2VuZG1zZy5jIGIvbWVtY2hlY2svdGVzdHMvc2VuZG1zZy5jCmluZGV4IGJkMDA1YzguLmNiYmUxODEgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3NlbmRtc2cuYworKysgYi9tZW1jaGVjay90ZXN0cy9zZW5kbXNnLmMKQEAgLTEsOSArMSwxMCBAQAotI2luY2x1ZGUgPG5ldGluZXQvaXAuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pcC5oPgogCiAjZGVmaW5lIFBPUlQgMTIzNDUKIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc2VuZG1zZy5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc2VuZG1zZy5zdGRlcnIuZXhwCmluZGV4IDNhNmQxNTYuLjM5N2E1NzkgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3NlbmRtc2cuc3RkZXJyLmV4cAorKysgYi9tZW1jaGVjay90ZXN0cy9zZW5kbXNnLnN0ZGVyci5leHAKQEAgLTEsNyArMSw3IEBACiBTeXNjYWxsIHBhcmFtIHNlbmRtc2cobXNnKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCiAgICBhdCAweC4uLi4uLi4uOiBzZW5kbXNnIChpbiAvLi4ubGliYy4uLikKLSAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNlbmRtc2cuYzo0NSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNlbmRtc2cuYzo0NikKICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjawotIGluIGZyYW1lICMxLCBjcmVhdGVkIGJ5IG1haW4gKHNlbmRtc2cuYzoxMikKKyBpbiBmcmFtZSAjMSwgY3JlYXRlZCBieSBtYWluIChzZW5kbXNnLmM6MTMpCiAKIHNlbmRtc2c6IDYKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NlbmRtc2cuc3RkZXJyLmV4cC1zb2xhcmlzIGIvbWVtY2hlY2svdGVzdHMvc2VuZG1zZy5zdGRlcnIuZXhwLXNvbGFyaXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAwZTc2ZQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NlbmRtc2cuc3RkZXJyLmV4cC1zb2xhcmlzCkBAIC0wLDAgKzEsOCBAQAorU3lzY2FsbCBwYXJhbSBzZW5kbXNnKG1zZykgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgYXQgMHguLi4uLi4uLjogX19zb19zZW5kbXNnIChpbiAvLi4ubGliYy4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IF9feG5ldF9zZW5kbXNnIChpbiAvLi4ubGliYy4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNlbmRtc2cuYzo0NikKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworIGluIGZyYW1lICMyLCBjcmVhdGVkIGJ5IG1haW4gKHNlbmRtc2cuYzoxMykKKworc2VuZG1zZzogNgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc2gtbWVtLXJhbmRvbS5jIGIvbWVtY2hlY2svdGVzdHMvc2gtbWVtLXJhbmRvbS5jCmluZGV4IDVlNDM2MWMuLmFlODIyNDggMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3NoLW1lbS1yYW5kb20uYworKysgYi9tZW1jaGVjay90ZXN0cy9zaC1tZW0tcmFuZG9tLmMKQEAgLTEwMiw3ICsxMDIsMTAgQEAKICAgIHJldHVybiAweEZGICYgKHJhbmRvbVU0KCkgPj4gMTMpOwogfQogCi0jZGVmaW5lIE5fQllURVMgIDMwMDAwMAorLy8gTkIhICAzMDAwMDAgaXMgcmVhbGx5IG5vdCBlbm91Z2ggdG8gc2hha2Ugb3V0IGFsbCBmYWlsdXJlcy4KKy8vIEluY3JlYXNpbmcgaXQgYnkgYSBmYWN0b3Igb2YgMjU2IGlzLCBidXQgbWFrZXMgdGhlIHRlc3QgdGFrZQorLy8gdGhlIGJlc3QgcGFydCBvZiBhbiBob3VyLgorI2RlZmluZSBOX0JZVEVTICAoMzAwMDAwIC8qICogMjU2ICovKQogI2RlZmluZSBOX0VWRU5UUyAoNSAqIE5fQllURVMpCiAKIApAQCAtMTg4LDYgKzE5MSwxNiBAQAogICAgICAgICAgICAgICAgImVtbXMiCiAgICAgICAgICAgICAgICA6IDogInIiKGFycitkc3QpLCAiciIoYXJyK3NyYykgOiAibWVtb3J5IgogICAgICAgICAgICAgKTsKKyNlbGlmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAgICAgICAgICAgLyogT24gYXJtMzIsIG1hbnkgY29tcGlsZXJzIGdlbmVyYXRlIGEgNjQtYml0IGZsb2F0IG1vdmUKKyAgICAgICAgICAgICAgIHVzaW5nIHR3byAzMiBiaXQgaW50ZWdlciByZWdpc3RlcnMsIHdoaWNoIGNvbXBsZXRlbHkKKyAgICAgICAgICAgICAgIGRlZmVhdHMgdGhpcyB0ZXN0LiAgSGVuY2UgZm9yY2UgYSA2NC1iaXQgTkVPTiBsb2FkIGFuZAorICAgICAgICAgICAgICAgc3RvcmUuICBJIGd1ZXNzIHRoaXMgd2lsbCBicmVhayB0aGUgYnVpbGQgb24gbm9uLU5FT04KKyAgICAgICAgICAgICAgIGNhcGFibGUgdGFyZ2V0cy4gKi8KKyAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgICAgICAgICJ2bGQxLjY0IHtkN30sWyUwXSA7IHZzdDEuNjQge2Q3fSxbJTFdICIKKyAgICAgICAgICAgICAgIDogOiAiciIoYXJyK3NyYyksICJyIihhcnIrZHN0KSA6ICJkNyIsIm1lbW9yeSIKKyAgICAgICAgICAgICk7CiAjZWxzZQogICAgICAgICAgICAgLyogU3RyYWlnaHRmb3J3YXJkLiAgT24gYW1kNjQsIHRoaXMgZ2l2ZXMgYSBsb2FkL3N0b3JlIG9mCiAgICAgICAgICAgICAgICB0aGUgYm90dG9tIGhhbGYgb2YgYW4geG1tIHJlZ2lzdGVyLiAgT24gcHBjMzIvNjQgdGhpcwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc2lnYWx0c3RhY2suYyBiL21lbWNoZWNrL3Rlc3RzL3NpZ2FsdHN0YWNrLmMKaW5kZXggNTI2YTk5YS4uMjg5MmViYiAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvc2lnYWx0c3RhY2suYworKysgYi9tZW1jaGVjay90ZXN0cy9zaWdhbHRzdGFjay5jCkBAIC0xLDUgKzEsNCBAQAotCi0KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c2lnbmFsLmg+CkBAIC03LDcgKzYsOCBAQAogCiB2b2lkIHNpZ19oYW5kbGVyKGludCBzaWcpewogICBpbnQgdmFyOwotICBmcHJpbnRmKHN0ZGVyciwgImNhdWdodCBzaWduYWwsIGxvY2FsIHZhciBpcyBvbiAlcFxuIiwgJnZhcik7CisgIGZwcmludGYoc3RkZXJyLCAiY2F1Z2h0IHNpZ25hbCwgbG9jYWwgdmFyIGlzIG9uICUjIiBQUkl4UFRSICJcbiIsCisgICAgICAgICAgKHVpbnRwdHJfdCkmdmFyKTsKIH0KIAogaW50IG1haW4oaW50IGFyZ3YsIGNoYXIqKiBhcmdjKSB7CkBAIC0yNCw3ICsyNCw4IEBACiAKICAgc2lnc3RrLnNzX3NpemUgPSBzaXplOwogICBzaWdzdGsuc3NfZmxhZ3MgPSAwOwotICBmcHJpbnRmKHN0ZGVyciwgImNhbGxpbmcgc2lnYWx0c3RhY2ssIHN0YWNrIGJhc2UgaXMgJXBcbiIsIHNpZ3N0ay5zc19zcCk7CisgIGZwcmludGYoc3RkZXJyLCAiY2FsbGluZyBzaWdhbHRzdGFjaywgc3RhY2sgYmFzZSBpcyAlIyIgUFJJeFBUUiAiXG4iLAorICAgICAgICAgICh1aW50cHRyX3Qpc2lnc3RrLnNzX3NwKTsKICAgaWYgKHNpZ2FsdHN0YWNrKCZzaWdzdGssMCk8MCkgcGVycm9yKCJzaWdhbHRzdGFjayIpOwogCiAgIGZwcmludGYoc3RkZXJyLCJzZXR0aW5nIHNpZ2FjdGlvblxuIik7CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zaWdraWxsLnN0ZGVyci5leHAtc29sYXJpcyBiL21lbWNoZWNrL3Rlc3RzL3NpZ2tpbGwuc3RkZXJyLmV4cC1zb2xhcmlzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNGE4NjAKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zaWdraWxsLnN0ZGVyci5leHAtc29sYXJpcwpAQCAtMCwwICsxLDE5NyBAQAorCitzZXR0aW5nIHNpZ25hbCAxOiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAxOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDI6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDI6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMzogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMzogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA0OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA0OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDU6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDU6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNjogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNjogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA3OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA3OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDg6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDg6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgOTogV2FybmluZzogaWdub3JlZCBhdHRlbXB0IHRvIHNldCBTSUdLSUxMIGhhbmRsZXIgaW4gc2lnYWN0aW9uKCk7CisgICAgICAgICB0aGUgU0lHS0lMTCBzaWduYWwgaXMgdW5jYXRjaGFibGUKK0ludmFsaWQgYXJndW1lbnQKK2dldHRpbmcgc2lnbmFsIDk6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMTA6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDEwOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDExOiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAxMTogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCAxMjogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMTI6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMTM6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDEzOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDE0OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAxNDogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCAxNTogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMTU6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMTY6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDE2OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDE3OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAxNzogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCAxODogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMTg6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMTk6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDE5OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDIwOiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAyMDogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCAyMTogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMjE6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMjI6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDIyOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDIzOiBXYXJuaW5nOiBpZ25vcmVkIGF0dGVtcHQgdG8gc2V0IFNJR1NUT1AgaGFuZGxlciBpbiBzaWdhY3Rpb24oKTsKKyAgICAgICAgIHRoZSBTSUdTVE9QIHNpZ25hbCBpcyB1bmNhdGNoYWJsZQorSW52YWxpZCBhcmd1bWVudAorZ2V0dGluZyBzaWduYWwgMjM6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMjQ6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDI0OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDI1OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAyNTogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCAyNjogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMjY6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMjc6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDI3OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDI4OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAyODogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCAyOTogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMjk6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMzA6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDMwOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDMxOiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAzMTogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCAzNDogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMzQ6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMzU6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDM1OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDM2OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAzNjogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCAzNzogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgMzc6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgMzg6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDM4OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDM5OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCAzOTogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA0MDogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNDA6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNDE6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDQxOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDQyOiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA0MjogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA0MzogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNDM6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNDQ6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDQ0OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDQ1OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA0NTogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA0NjogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNDY6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNDc6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDQ3OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDQ4OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA0ODogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA0OTogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNDk6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNTA6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDUwOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDUxOiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA1MTogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA1MjogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNTI6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNTM6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDUzOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDU0OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA1NDogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA1NTogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNTU6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNTY6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDU2OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDU3OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA1NzogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA1ODogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNTg6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNTk6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDU5OiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDYwOiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA2MDogU3VjY2VzcworCitzZXR0aW5nIHNpZ25hbCA2MTogU3VjY2VzcworZ2V0dGluZyBzaWduYWwgNjE6IFN1Y2Nlc3MKKworc2V0dGluZyBzaWduYWwgNjI6IFN1Y2Nlc3MKK2dldHRpbmcgc2lnbmFsIDYyOiBTdWNjZXNzCisKK3NldHRpbmcgc2lnbmFsIDY1OiBTdWNjZXNzCitnZXR0aW5nIHNpZ25hbCA2NTogU3VjY2VzcworCisKK0hFQVAgU1VNTUFSWToKKyAgICBpbiB1c2UgYXQgZXhpdDogLi4uIGJ5dGVzIGluIC4uLiBibG9ja3MKKyAgdG90YWwgaGVhcCB1c2FnZTogLi4uIGFsbG9jcywgLi4uIGZyZWVzLCAuLi4gYnl0ZXMgYWxsb2NhdGVkCisKK0ZvciBhIGRldGFpbGVkIGxlYWsgYW5hbHlzaXMsIHJlcnVuIHdpdGg6IC0tbGVhay1jaGVjaz1mdWxsCisKK0ZvciBjb3VudHMgb2YgZGV0ZWN0ZWQgYW5kIHN1cHByZXNzZWQgZXJyb3JzLCByZXJ1biB3aXRoOiAtdgorRVJST1IgU1VNTUFSWTogMCBlcnJvcnMgZnJvbSAwIGNvbnRleHRzIChzdXBwcmVzc2VkOiAwIGZyb20gMCkKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvTWFrZWZpbGUuYW0gYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ODI3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMTczIEBACisKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCisKK2Rpc3Rfbm9pbnN0X1NDUklQVFMgPSBcCisJZmlsdGVyX2xkeW5zeW0gXAorCWZpbHRlcl9uYW1lX3NlcnZpY2VfZG9vciBcCisJZmlsdGVyX3NjYWxhciBcCisJZmlsdGVyX3NlbmRmaWxldiBcCisJZmlsdGVyX3N0ZGVyciBcCisJZmlsdGVyX3N5c2NhbGxfYXQKKworbm9pbnN0X0hFQURFUlMgPSBzY2FsYXIuaAorCitFWFRSQV9ESVNUID0gXAorCWJyay5zdGRlcnIuZXhwIGJyay5zdGRvdXQuZXhwIGJyay52Z3Rlc3QgXAorCWNvbnRleHRfc3RhY2tfZGllLnN0ZGVyci5leHAgY29udGV4dF9zdGFja19kaWUuc3Rkb3V0LmV4cCBjb250ZXh0X3N0YWNrX2RpZS52Z3Rlc3QgXAorCWRvb3JfZGF0YS5zdGRlcnIuZXhwIGRvb3JfZGF0YS5zdGRvdXQuZXhwIGRvb3JfZGF0YS52Z3Rlc3QgXAorCWRvb3Jfa2lsbC5zdGRlcnIuZXhwIGRvb3Jfa2lsbC5zdGRvdXQuZXhwIGRvb3Jfa2lsbC52Z3Rlc3QgXAorCWV4ZWN4LnN0ZGVyci5leHAgZXhlY3guc3Rkb3V0LmV4cCBleGVjeC52Z3Rlc3QgXAorCWdldHpvbmVvZmZzZXQuc3RkZXJyLmV4cCBnZXR6b25lb2Zmc2V0LnZndGVzdCBcCisJZ2V0aHJ0aW1lLnN0ZGVyci5leHAgZ2V0aHJ0aW1lLnN0ZG91dC5leHAgZ2V0aHJ0aW1lLnZndGVzdCBcCisJZ2V0aHJ1c2VjLnN0ZGVyci5leHAgZ2V0aHJ1c2VjLnN0ZG91dC5leHAgZ2V0aHJ1c2VjLnZndGVzdCBcCisJaW9jdGwuc3RkZXJyLmV4cCBpb2N0bC5zdGRvdXQuZXhwIGlvY3RsLnZndGVzdCBcCisJbGR5bnN5bS5zdGRlcnIuZXhwIGxkeW5zeW0uc3Rkb3V0LmV4cCBsZHluc3ltLnZndGVzdCBcCisJbHNmcmFtZTEuc3RkZXJyLmV4cCBsc2ZyYW1lMS5zdGRvdXQuZXhwIGxzZnJhbWUxLnZndGVzdCBcCisJbHNmcmFtZTIuc3RkZXJyLmV4cCBsc2ZyYW1lMi5zdGRvdXQuZXhwIGxzZnJhbWUyLnZndGVzdCBcCisJbW1hcG9ial9ic3Nvbmx5LnN0ZGVyci5leHAgbW1hcG9ial9ic3Nvbmx5LnN0ZG91dC5leHAgbW1hcG9ial9ic3Nvbmx5LnZndGVzdCBcCisJbmFtZV9zZXJ2aWNlX2Rvb3Iuc3RkZXJyLmV4cC1hbWQ2NCBuYW1lX3NlcnZpY2VfZG9vci5zdGRlcnIuZXhwLXg4NiBcCisJbmFtZV9zZXJ2aWNlX2Rvb3Iuc3Rkb3V0LmV4cCBuYW1lX3NlcnZpY2VfZG9vci52Z3Rlc3QgXAorCXBrY3MxMS5zdGRlcnIuZXhwLWlsbHVtb3MgcGtjczExLnN0ZGVyci5leHAtc29sYXJpcyBwa2NzMTEuc3Rkb3V0LmV4cCBwa2NzMTEudmd0ZXN0IFwKKwlzY2FsYXIuc3RkZXJyLmV4cCBzY2FsYXIuc3Rkb3V0LmV4cCBzY2FsYXIudmd0ZXN0IFwKKwlzY2FsYXJfZnJlYWxwYXRoYXQuc3RkZXJyLmV4cCBzY2FsYXJfZnJlYWxwYXRoYXQuc3Rkb3V0LmV4cCBzY2FsYXJfZnJlYWxwYXRoYXQudmd0ZXN0IFwKKwlzY2FsYXJfaW9jdGwuc3RkZXJyLmV4cCBzY2FsYXJfaW9jdGwuc3Rkb3V0LmV4cCBzY2FsYXJfaW9jdGwudmd0ZXN0IFwKKwlzY2FsYXJfbHdwX2tpbGwuc3RkZXJyLmV4cCBzY2FsYXJfbHdwX2tpbGwuc3Rkb3V0LmV4cCBzY2FsYXJfbHdwX2tpbGwudmd0ZXN0IFwKKwlzY2FsYXJfbHdwX25hbWUuc3RkZXJyLmV4cCBzY2FsYXJfbHdwX25hbWUuc3Rkb3V0LmV4cCBzY2FsYXJfbHdwX25hbWUudmd0ZXN0IFwKKwlzY2FsYXJfbHdwX3NpZ3F1ZXVlLnN0ZGVyci5leHAgc2NhbGFyX2x3cF9zaWdxdWV1ZS5zdGRvdXQuZXhwIHNjYWxhcl9sd3Bfc2lncXVldWUudmd0ZXN0IFwKKwlzY2FsYXJfbHdwX3NpZ3F1ZXVlX3BpZC5zdGRlcnIuZXhwIHNjYWxhcl9sd3Bfc2lncXVldWVfcGlkLnZndGVzdCBcCisJc2NhbGFyX29ic29sZXRlLnN0ZGVyci5leHAgc2NhbGFyX29ic29sZXRlLnN0ZG91dC5leHAgc2NhbGFyX29ic29sZXRlLnZndGVzdCBcCisJc2NhbGFyX3NobV9uZXcuc3RkZXJyLmV4cCBzY2FsYXJfc2htX25ldy5zdGRvdXQuZXhwIHNjYWxhcl9zaG1fbmV3LnZndGVzdCBcCisJc2NhbGFyX3NwYXduLnN0ZGVyci5leHAgc2NhbGFyX3NwYXduLnN0ZG91dC5leHAgc2NhbGFyX3NwYXduLnZndGVzdCBcCisJc2NhbGFyX3N5c3RlbV9zdGF0cy5zdGRlcnIuZXhwIHNjYWxhcl9zeXN0ZW1fc3RhdHMuc3Rkb3V0LmV4cCBzY2FsYXJfc3lzdGVtX3N0YXRzLnZndGVzdCBcCisJc2NhbGFyX3Rzb2xfY2xlYXJhbmNlLnN0ZGVyci5leHAgc2NhbGFyX3Rzb2xfY2xlYXJhbmNlLnZndGVzdCBcCisJc2NhbGFyX3V0aW1lbnNhdC5zdGRlcnIuZXhwIHNjYWxhcl91dGltZW5zYXQuc3Rkb3V0LmV4cCBzY2FsYXJfdXRpbWVuc2F0LnZndGVzdCBcCisJc2NhbGFyX3V0aW1lc3lzLnN0ZGVyci5leHAgc2NhbGFyX3V0aW1lc3lzLnN0ZG91dC5leHAgc2NhbGFyX3V0aW1lc3lzLnZndGVzdCBcCisJc2NhbGFyX3V1aWRzeXMuc3RkZXJyLmV4cCBzY2FsYXJfdXVpZHN5cy5zdGRvdXQuZXhwIHNjYWxhcl91dWlkc3lzLnZndGVzdCBcCisJc2NhbGFyX3pvbmVfZGVmdW5jdC5zdGRlcnIuZXhwIHNjYWxhcl96b25lX2RlZnVuY3Quc3Rkb3V0LmV4cCBzY2FsYXJfem9uZV9kZWZ1bmN0LnZndGVzdCBcCisJc2VuZGZpbGV2LnN0ZGVyci5leHAgc2VuZGZpbGV2LnN0ZG91dC5leHAgc2VuZGZpbGV2LnZndGVzdCBcCisJc2htYXQuc3RkZXJyLmV4cCBzaG1hdC5zdGRvdXQuZXhwIHNobWF0LnZndGVzdCBcCisJc3Bhd24uc3RkZXJyLmV4cCBzcGF3bi5zdGRvdXQuZXhwIHNwYXduLnZndGVzdCBcCisJc3RybGNweS5zdGRlcnIuZXhwIHN0cmxjcHkuc3Rkb3V0LmV4cCBzdHJsY3B5LnZndGVzdCBcCisJc3VwcG9ubHlvYmouc3RkZXJyLmV4cCBzdXBwb25seW9iai5zdXBwIHN1cHBvbmx5b2JqLnZndGVzdCBcCisJc3lzY2FsbF9hdC5zdGRlcnIuZXhwIHN5c2NhbGxfYXQuc3Rkb3V0LmV4cCBzeXNjYWxsX2F0LnZndGVzdCBcCisJdGhyX2RhZW1vbl9leGl0X2xpYmMuc3RkZXJyLmV4cCB0aHJfZGFlbW9uX2V4aXRfbGliYy5zdGRvdXQuZXhwIHRocl9kYWVtb25fZXhpdF9saWJjLnZndGVzdCBcCisJdGhyX2RhZW1vbl9leGl0X3N0YW5kYWxvbmUuc3RkZXJyLmV4cCB0aHJfZGFlbW9uX2V4aXRfc3RhbmRhbG9uZS5zdGRvdXQuZXhwIHRocl9kYWVtb25fZXhpdF9zdGFuZGFsb25lLnZndGVzdAorCitjaGVja19QUk9HUkFNUyA9IFwKKwlicmsgXAorCWNvbnRleHRfc3RhY2tfZGllIFwKKwlkb29yX2RhdGEgXAorCWRvb3Jfa2lsbCBcCisJZ2V0aHJ0aW1lIFwKKwlpbmxpbmZvIFwKKwlpbmxpbmZvX25lc3RlZC5zbyBcCisJaW9jdGwgXAorCWxkeW5zeW0gXAorCWxzZnJhbWUxIFwKKwlsc2ZyYW1lMiBcCisJbW1hcG9ial9ic3Nvbmx5IFwKKwltbWFwb2JqX2Jzc29ubHkuc28gXAorCW5hbWVfc2VydmljZV9kb29yIFwKKwlwa2NzMTEgXAorCXNjYWxhciBcCisJc2NhbGFyX2lvY3RsIFwKKwlzZW5kZmlsZXYgXAorCXNobWF0IFwKKwlzdHJsY3B5IFwKKwlzeXNjYWxsX2F0IFwKKwl0aHJfZGFlbW9uX2V4aXRfbGliYyBcCisJdGhyX2RhZW1vbl9leGl0X3N0YW5kYWxvbmUKKworaWYgU09MQVJJU19FWEVDVkVfU1lTQ0FMTF9UQUtFU19GTEFHUworY2hlY2tfUFJPR1JBTVMgKz0gZXhlY3gKK2VuZGlmCisKK2lmIFNPTEFSSVNfUkVTRVJWRV9TWVNTVEFUX0FERFIKK2NoZWNrX1BST0dSQU1TICs9IGdldGhydXNlYworZW5kaWYKKworaWYgU09MQVJJU19HRVRaT05FT0ZGU0VUX0ZBU1RUUkFQCitjaGVja19QUk9HUkFNUyArPSBnZXR6b25lb2Zmc2V0CitlbmRpZgorCitpZiBTT0xBUklTX09MRF9TWVNDQUxMUworY2hlY2tfUFJPR1JBTVMgKz0gc2NhbGFyX29ic29sZXRlCitlbmRpZgorCitpZiBTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTEwKK2NoZWNrX1BST0dSQU1TICs9IHNjYWxhcl9mcmVhbHBhdGhhdAorZW5kaWYKKworaWYgU09MQVJJU19MV1BfTkFNRV9TWVNDQUxMCitjaGVja19QUk9HUkFNUyArPSBzY2FsYXJfbHdwX25hbWUKK2VuZGlmCisKK2lmIFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTEwKK2lmIFNPTEFSSVNfTFdQX1NJR1FVRVVFX1NZU0NBTExfVEFLRVNfUElECitjaGVja19QUk9HUkFNUyArPSBzY2FsYXJfbHdwX3NpZ3F1ZXVlX3BpZAorZWxzZQorY2hlY2tfUFJPR1JBTVMgKz0gc2NhbGFyX2x3cF9zaWdxdWV1ZQorZW5kaWYKK2Vsc2UKK2NoZWNrX1BST0dSQU1TICs9IHNjYWxhcl9sd3Bfa2lsbAorZW5kaWYKKworaWYgU09MQVJJU19TSE1fTkVXCitjaGVja19QUk9HUkFNUyArPSBzY2FsYXJfc2htX25ldworZW5kaWYKKworaWYgU09MQVJJU19TUEFXTl9TWVNDQUxMCitjaGVja19QUk9HUkFNUyArPSBzY2FsYXJfc3Bhd24gc3Bhd24KK2VuZGlmCisKK2lmIFNPTEFSSVNfU1lTVEVNX1NUQVRTX1NZU0NBTEwKK2NoZWNrX1BST0dSQU1TICs9IHNjYWxhcl9zeXN0ZW1fc3RhdHMKK2VuZGlmCisKK2lmIFNPTEFSSVNfVFNPTF9DTEVBUkFOQ0UKK2NoZWNrX1BST0dSQU1TICs9IHNjYWxhcl90c29sX2NsZWFyYW5jZQorc2NhbGFyX3Rzb2xfY2xlYXJhbmNlX0xEQUREID0gLWx0c29sCitlbmRpZgorCitpZiBTT0xBUklTX1VUSU1FTlNBVF9TWVNDQUxMCitjaGVja19QUk9HUkFNUyArPSBzY2FsYXJfdXRpbWVuc2F0CitlbmRpZgorCitpZiBTT0xBUklTX1VUSU1FU1lTX1NZU0NBTEwKK2NoZWNrX1BST0dSQU1TICs9IHNjYWxhcl91dGltZXN5cworZW5kaWYKKworaWYgU09MQVJJU19VVUlEU1lTX1NZU0NBTEwKK2NoZWNrX1BST0dSQU1TICs9IHNjYWxhcl91dWlkc3lzCitlbmRpZgorCitpZiBTT0xBUklTX1pPTkVfREVGVU5DVCAKK2NoZWNrX1BST0dSQU1TICs9IHNjYWxhcl96b25lX2RlZnVuY3QKK2VuZGlmCisKK0FNX0NGTEFHUyAgICs9ICQoQU1fRkxBR19NMzI2NF9QUkkpCitBTV9DWFhGTEFHUyArPSAkKEFNX0ZMQUdfTTMyNjRfUFJJKQorCitkb29yX2tpbGxfTERBREQgPSAtbHB0aHJlYWQKK2lvY3RsX0xEQUREID0gLWxzb2NrZXQKK2xkeW5zeW1fTERGTEFHUyA9IC1XbCwtLXN0cmlwLWFsbAorcGtjczExX0xEQUREID0gLWxwa2NzMTEKK3NlbmRmaWxldl9MREFERCA9IC1sc2VuZGZpbGUKKworaW5saW5mb19TT1VSQ0VTID0gaW5saW5mby5jCitpbmxpbmZvX0RFUEVOREVOQ0lFUyA9IGlubGluZm9fbmVzdGVkLnNvCitpbmxpbmZvX0xERkxBR1MgPSAtV2wsLXJwYXRoLCQodG9wX2J1aWxkZGlyKS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzCitpbmxpbmZvX0xEQUREID0gaW5saW5mb19uZXN0ZWQuc28KK2lubGluZm9fbmVzdGVkX3NvX1NPVVJDRVMgPSBpbmxpbmZvX25lc3RlZC5jCitpbmxpbmZvX25lc3RlZF9zb19DRkxBR1MgPSAkKEFNX0NGTEFHUykgLWZQSUMKK2lubGluZm9fbmVzdGVkX3NvX0xERkxBR1MgPSAtV2wsLXJwYXRoLCQodG9wX2J1aWxkZGlyKS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzIC1zaGFyZWQgLWZQSUMKKworbW1hcG9ial9ic3Nvbmx5X1NPVVJDRVMgPSBtbWFwb2JqX2Jzc29ubHkuYworbW1hcG9ial9ic3Nvbmx5X0RFUEVOREVOQ0lFUyA9IG1tYXBvYmpfYnNzb25seS5zbworbW1hcG9ial9ic3Nvbmx5X0xERkxBR1MgPSAtV2wsLXJwYXRoLCQodG9wX2J1aWxkZGlyKS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzCittbWFwb2JqX2Jzc29ubHlfTERBREQgPSBtbWFwb2JqX2Jzc29ubHkuc28KK21tYXBvYmpfYnNzb25seV9zb19TT1VSQ0VTID0gbW1hcG9ial9ic3Nvbmx5X2xpYi5jCittbWFwb2JqX2Jzc29ubHlfc29fQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1mUElDCittbWFwb2JqX2Jzc29ubHlfc29fTERGTEFHUyA9IC1ub3N0YXJ0ZmlsZXMgLW5vZGVmYXVsdGxpYnMgLXNoYXJlZAorCit0aHJfZGFlbW9uX2V4aXRfc3RhbmRhbG9uZV9MREZMQUdTID0gLW5vc3RhcnRmaWxlcyAtbm9kZWZhdWx0bGlicwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9icmsuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvYnJrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVjNmJmNQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvYnJrLmMKQEAgLTAsMCArMSw4MyBAQAorLyogVGVzdCBmb3IgdGhlIGJyayBzeXNjYWxsIHdyYXBwZXIuICovCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisKKy8qIERhdGEgc2VnbWVudCBlbmQuICovCitleHRlcm4gaW50IF9lbmQ7CitzdGF0aWMgY2hhciAqYmVnaW4gPSAoY2hhciAqKSZfZW5kOworCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgaW50IHRlc3RfYmVnaW4odm9pZCkKK3sKKyAgIGludCByZXMgPSAwOworICAgaW50IHRtcDsKKworICAgLyogQ2hlY2sgdGhhdCBhIHZhbHVlIGF0IHRoZSBicmVhayBpcyBpbmFjY2Vzc2libGUuICovCisgICBpZiAoKmJlZ2luKQorICAgICAgcmVzKys7CisKKyAgIC8qIEFsbG9jYXRlIG9uZSBieXRlIGFuZCBjaGVjayB0aGF0IHRoZSBsYXN0IGJ5dGUgaXMgYWNjZXNzaWJsZSBhbmQKKyAgICAgIGluaXRpYWxpemVkLiAqLworICAgdG1wID0gc3lzY2FsbChTWVNfYnJrLCBiZWdpbiArIDEpOworICAgYXNzZXJ0KHRtcCAhPSAtMSk7CisgICBpZiAoKmJlZ2luKQorICAgICAgcmVzKys7CisKKyAgIC8qIERlYWxsb2NhdGUgb25lIGJ5dGUgYW5kIGNoZWNrIHRoYXQgdGhlIGxhc3QgYnl0ZSBpcyBub3cgaW5hY2Nlc3NpYmxlLiAqLworICAgdG1wID0gc3lzY2FsbChTWVNfYnJrLCBiZWdpbik7CisgICBhc3NlcnQodG1wICE9IC0xKTsKKyAgIGlmICgqYmVnaW4pCisgICAgICByZXMrKzsKKworICAgcmV0dXJuIHJlczsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgdGVzdF91cGRvd24odm9pZCkKK3sKKyAgIGludCB0bXA7CisgICBzaXplX3QgaTsKKworI2RlZmluZSBNQVhfU0laRSA4MTkyCisgICAvKiBSdW4gdXAgcGhhc2UuICovCisgICBmb3IgKGkgPSAwOyBpIDwgTUFYX1NJWkU7IGkrKykgeworICAgICAgdG1wID0gc3lzY2FsbChTWVNfYnJrLCBiZWdpbiArIGkpOworICAgICAgYXNzZXJ0KHRtcCAhPSAtMSk7CisgICB9CisKKyAgIC8qIFJ1biBkb3duIHBoYXNlLiAqLworICAgZm9yIChpID0gMDsgaSA8IE1BWF9TSVpFOyBpKyspIHsKKyAgICAgIHRtcCA9IHN5c2NhbGwoU1lTX2JyaywgYmVnaW4gKyBNQVhfU0laRSAtIDEgLSBpKTsKKyAgICAgIGFzc2VydCh0bXAgIT0gLTEpOworICAgfQorI3VuZGVmIE1BWF9TSVpFCit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHRlc3RfcmFuZ2Uodm9pZCkKK3sKKyAgIGludCB0bXA7CisKKyAgIHRtcCA9IHN5c2NhbGwoU1lTX2JyaywgYmVnaW4gLSAxKTsKKyAgIGFzc2VydCh0bXAgPT0gLTEpOworICAgYXNzZXJ0KGVycm5vID09IEVOT01FTSk7CisKKyAgIC8qIFVuaWZpZWQgbGltaXQgZm9yIDY0LWJpdCBhbmQgMzItYml0IHZlcnNpb24uICovCisgICB1bnNpZ25lZCBsb25nIGxvbmcgaW1wb3NzaWJsZV9saW1pdCA9IDB4ZmZmZmZmNGZmZmZmZmZVTEw7CisgICB0bXAgPSBzeXNjYWxsKFNZU19icmssIGltcG9zc2libGVfbGltaXQpOworICAgYXNzZXJ0KHRtcCA9PSAtMSk7CisgICBhc3NlcnQoZXJybm8gPT0gRU5PTUVNKTsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIGludCByZXM7CisgICByZXMgPSB0ZXN0X2JlZ2luKCk7CisgICB0ZXN0X3VwZG93bigpOworICAgdGVzdF9yYW5nZSgpOworICAgcmV0dXJuIHJlczsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9icmsuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvYnJrLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U5ODFkNQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvYnJrLnN0ZGVyci5leHAKQEAgLTAsMCArMSwxMSBAQAorSW52YWxpZCByZWFkIG9mIHNpemUgMQorICAgYXQgMHguLi4uLi4uLjogdGVzdF9iZWdpbiAoYnJrLmM6MTkpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChicmsuYzo3OCkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBhZnRlciB0aGUgYnJrIGRhdGEgc2VnbWVudCBsaW1pdCAweC4uLi4uLi4uCisKK0ludmFsaWQgcmVhZCBvZiBzaXplIDEKKyAgIGF0IDB4Li4uLi4uLi46IHRlc3RfYmVnaW4gKGJyay5jOjMyKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoYnJrLmM6NzgpCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgYWZ0ZXIgdGhlIGJyayBkYXRhIHNlZ21lbnQgbGltaXQgMHguLi4uLi4uLgorCiticmsgc2VnbWVudCBvdmVyZmxvdyBpbiB0aHJlYWQgIzE6IGNhbid0IGdyb3cgdG8gMHguLi4uLi4uLgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9icmsuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvYnJrLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvYnJrLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvYnJrLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzA2Yjc3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9icmsudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogYnJrCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2tfZGllLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2tfZGllLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY3M2E5MQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9zdGFja19kaWUuYwpAQCAtMCwwICsxLDQzIEBACisvKiBUZXN0IHRoYXQgdGhlIHN0YWNrIGNvcnJlY3RseSBkaWVzIGFmdGVyIGEgc2V0Y29udGV4dCgyKSBjYWxsLiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1Y29udGV4dC5oPgorCitzdGF0aWMgdm9sYXRpbGUgaW50ICpzcDsKKworc3RhdGljIHZvaWQgc2lnaGFuZGxlcihpbnQgc2lnLCBzaWdpbmZvX3QgKnNpcCwgdWNvbnRleHRfdCAqdWNwKQoreworICAgc3AgPSAoaW50ICopICZ1Y3AtPnVjX21jb250ZXh0LmdyZWdzWzBdOworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgc3RydWN0IHNpZ2FjdGlvbiBzYTsKKyAgIC8qIEFsd2F5cy1udWxsIHZhbHVlIHRoYXQgaXMgdXNlZCB0byBwcmV2ZW50IGFueSBwb3NzaWJsZSBjb21waWxlcgorICAgICAgb3B0aW1pemF0aW9ucy4gKi8KKyAgIHZvbGF0aWxlIGludCB6ZXJvID0gMDsKKworICAgLyogU2V0dXAgYSBzaWduYWwgaGFuZGxlci4gKi8KKyAgIHNhLnNhX2hhbmRsZXIgPSBzaWdoYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdVU1IxLCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIC8qIFJhaXNlIGEgc2lnbmFsLiAqLworICAgcmFpc2UoU0lHVVNSMSk7CisKKyAgIC8qIFZhbHVlIHBvaW50ZWQgYnkgc3Agc2hvdWxkIGJlIGF0IHRoaXMgcG9pbnQgdW5pbml0aWFsaXplZC4gKi8KKyAgIGlmICgqc3AgJiYgemVybykKKyAgICAgIGFzc2VydCgwKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9zdGFja19kaWUuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9zdGFja19kaWUuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTYxMjNlCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9jb250ZXh0X3N0YWNrX2RpZS5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsNSBAQAorSW52YWxpZCByZWFkIG9mIHNpemUgNAorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9zdGFja19kaWUuYzozOCkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworIC4uLi4gYnl0ZXMgYmVsb3cgc3RhY2sgcG9pbnRlcgorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2tfZGllLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2tfZGllLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9zdGFja19kaWUudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9jb250ZXh0X3N0YWNrX2RpZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVjODYwNAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9zdGFja19kaWUudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogY29udGV4dF9zdGFja19kaWUKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9kYXRhLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2Rvb3JfZGF0YS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MjA5ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2Rvb3JfZGF0YS5jCkBAIC0wLDAgKzEsMjA4IEBACisvKiBTaW1wbGUgZG9vciB0ZXN0LiAqLworCisjaW5jbHVkZSA8ZG9vci5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorCitzdGF0aWMgY2hhciBkb29yX2ZpbGVbXSA9ICIvdG1wL3ZndGVzdF9kb29yX2RhdGEuWFhYWFhYIjsKK3N0YXRpYyB2b2xhdGlsZSBpbnQgZXhpdF9ub3cgPSAwOworCitzdGF0aWMgdm9pZCBjaGlsZF9oYW5kbGVyKGludCBzaWcpCit7CisgICBpZiAoIWV4aXRfbm93KSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIlJlY2VpdmVkIHByZW1hdHVyZSBTSUdDSExELlxuIik7CisgICAgICB1bmxpbmsoZG9vcl9maWxlKTsKKyAgICAgIGV4aXQoMSk7CisgICB9Cit9CisKKy8qIFNFUlZFUiBDT0RFICovCitzdGF0aWMgdm9pZCBzZXJ2ZXJfcHJvY2VkdXJlKHZvaWQgKmNvb2tpZSwgY2hhciAqYXJncCwgc2l6ZV90IGFyZ19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb29yX2Rlc2NfdCAqZHAsIHVpbnRfdCBuX2Rlc2MpCit7CisgICBjaGFyIGRhdGFbXSA9ICJIZWxsbyBmcm9tIHNlcnZlciI7CisKKyAgIGlmICghYXJncCkKKyAgICAgIGdvdG8gb3V0OworCisgICBpZiAoYXJnX3NpemUgPiBJTlRfTUFYKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIlZhbHVlIHJlY2VpdmVkIGZyb20gYSBjbGllbnQgaXMgdG9vIGJpZy5cbiIpOworICAgICAgZ290byBvdXQ7CisgICB9CisKKyAgIHByaW50ZigiU0VSVkVSOiAlLipzXG4iLCAoaW50KWFyZ19zaXplLCBhcmdwKTsKKyAgIGZmbHVzaChzdGRvdXQpOworCitvdXQ6CisgICAvKiBMZXQgc2VydmVyX21haW4oKSBrbm93IHRoYXQgd2Ugc2hvdWxkIGV4aXQuICovCisgICAqKGludCopY29va2llID0gMTsKKworICAgZG9vcl9yZXR1cm4oZGF0YSwgc3RybGVuKGRhdGEpICsgMSwgTlVMTCwgMCk7CisKKyAgIC8qIEZ1bmN0aW9uIGRvb3JfcmV0dXJuKCkgc2hvdWxkIG5ldmVyIHJldHVybi4gKi8KKyAgIHBlcnJvcigiZG9vcl9yZXR1cm4iKTsKKyAgIGV4aXQoMSk7Cit9CisKK3N0YXRpYyBpbnQgc2VydmVyX21haW4odm9pZCkKK3sKKyAgIGludCByZXMgPSAxOworICAgaW50IGRpZCA9IC0xOworICAgaW50IGF0dGFjaGVkID0gMDsKKworICAgLyogTWFrZSBzdXJlIG5vdGhpbmcgZWxzZSBpcyBhdHRhY2hlZC4gKi8KKyAgIGZkZXRhY2goZG9vcl9maWxlKTsKKworICAgaWYgKChkaWQgPSBkb29yX2NyZWF0ZShzZXJ2ZXJfcHJvY2VkdXJlLCAodm9pZCopJmV4aXRfbm93LCAwKSkgPCAwKSB7CisgICAgICBwZXJyb3IoImRvb3JfY3JlYXRlIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgLyogQXR0YWNoIHRvIGZpbGUgc3lzdGVtLiAqLworICAgaWYgKGZhdHRhY2goZGlkLCBkb29yX2ZpbGUpIDwgMCkgeworICAgICAgY2hhciBzdHJbMTAwXTsKKyAgICAgIHNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICJmYXR0YWNoICVzIiwgZG9vcl9maWxlKTsKKyAgICAgIHBlcnJvcihzdHIpOworICAgICAgZ290byBvdXQ7CisgICB9CisgICBhdHRhY2hlZCA9IDE7CisKKyAgIC8qIFBvb3IgbWFuJ3MgdGVybWluYXRpb24uICovCisgICB3aGlsZSAoIWV4aXRfbm93KQorICAgICAgc2xlZXAoMSk7CisKKyAgIHJlcyA9IDA7CisKK291dDoKKyAgIGlmIChhdHRhY2hlZCAmJiB1bmxpbmsoZG9vcl9maWxlKSkgeworICAgICAgY2hhciBzdHJbMTAwXTsKKyAgICAgIHNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICJ1bmxpbmsgJXMiLCBkb29yX2ZpbGUpOworICAgICAgcGVycm9yKHN0cik7CisgICB9CisgICBpZiAoZGlkID49IDAgJiYgZG9vcl9yZXZva2UoZGlkKSkKKyAgICAgIHBlcnJvcigiZG9vcl9yZXZva2UiKTsKKworICAgcmV0dXJuIHJlczsKK30KKworLyogQ0xJRU5UIENPREUgKi8KK3N0YXRpYyBpbnQgY2xpZW50X21haW4odm9pZCkKK3sKKyAgIGludCBkaWQ7CisgICBjaGFyIGJ1ZlsxMjhdOworICAgaW50IHRyaWVzOworICAgZG9vcl9hcmdfdCBwYXJhbXM7CisgICBzdHJ1Y3QgZG9vcl9pbmZvIGluZm87CisKKyAgIHRyaWVzID0gMDsKKyAgIHdoaWxlICgxKSB7CisgICAgICAvKiBPcGVuIHRoZSBkb29yIGZpbGUuICovCisgICAgICBpZiAoKGRpZCA9IG9wZW4oZG9vcl9maWxlLCBPX1JEV1IpKSA+PSAwKQorICAgICAgICAgaWYgKCFkb29yX2luZm8oZGlkLCAmaW5mbykpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgY2xvc2UoZGlkKTsKKworICAgICAgaWYgKHRyaWVzID4gMTApIHsKKyAgICAgICAgIGNoYXIgc3RyWzEwMF07CisgICAgICAgICBzbnByaW50ZihzdHIsIHNpemVvZihzdHIpLCAiZG9vcl9pbmZvICVzIiwgZG9vcl9maWxlKTsKKyAgICAgICAgIHBlcnJvcihzdHIpOworICAgICAgICAgcmV0dXJuIDE7CisgICAgICB9CisKKyAgICAgIHRyaWVzKys7CisgICAgICBzbGVlcCgxKTsKKyAgIH0KKworICAgLyogU2V0IGNhbGwgcGFyYW1ldGVycy4gKi8KKyAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJIZWxsbyBmcm9tIGNsaWVudCIpOworICAgcGFyYW1zLmRhdGFfcHRyID0gYnVmOworICAgcGFyYW1zLmRhdGFfc2l6ZSA9IHN0cmxlbihidWYpICsgMTsKKyAgIHBhcmFtcy5kZXNjX3B0ciA9IE5VTEw7CisgICBwYXJhbXMuZGVzY19udW0gPSAwOworICAgcGFyYW1zLnJidWYgPSBidWY7CisgICBwYXJhbXMucnNpemUgPSBzaXplb2YoYnVmKTsKKworICAgLyogTWFrZSB0aGUgY2FsbC4gKi8KKyAgIGlmIChkb29yX2NhbGwoZGlkLCAmcGFyYW1zKSkgeworICAgICAgcGVycm9yKCJkb29yX2NhbGwiKTsKKyAgICAgIGNsb3NlKGRpZCk7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgY2xvc2UoZGlkKTsKKworICAgLyogUHJpbnQgYSByZXN1bHQgb2YgdGhlIGNhbGwuICovCisgICBwcmludGYoIkNMSUVOVDogJS4qc1xuIiwgKGludClwYXJhbXMucnNpemUsIHBhcmFtcy5yYnVmKTsKKyAgIGZmbHVzaChzdGRvdXQpOworCisgICAvKiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHN5c3RlbSBhbGxvY2F0ZWQgYSBuZXcgbWVtb3J5IGZvciByYnVmLiAgVW5tYXAgaXQKKyAgICAgIGlmIGl0J3MgdGhlIGNhc2UgKi8KKyAgIGlmIChwYXJhbXMucmJ1ZiAhPSBidWYpCisgICAgICBpZiAobXVubWFwKHBhcmFtcy5yYnVmLCBwYXJhbXMucnNpemUpICE9IDApIHsKKyAgICAgICAgIHBlcnJvcigibXVubWFwIik7CisgICAgICAgICByZXR1cm4gMTsKKyAgICAgIH0KKworICAgcmV0dXJuIDA7Cit9CisKKy8qIE1BSU4gQ09ERSAqLworaW50IG1haW4odm9pZCkKK3sKKyAgIHN0cnVjdCBzaWdhY3Rpb24gc2E7CisgICBwaWRfdCBwaWQ7CisgICBpbnQgZG9vcl9mZDsKKworICAgLyogRXN0YWJsaXNoIGhhbmRsZXIgZm9yIGNsaWVudCBlcnJvciBleGl0LiAqLworICAgc2Euc2FfaGFuZGxlciA9IGNoaWxkX2hhbmRsZXI7CisgICBzYS5zYV9mbGFncyA9IFNBX05PQ0xEU1RPUDsKKyAgIGlmIChzaWdlbXB0eXNldCgmc2Euc2FfbWFzaykpIHsKKyAgICAgIHBlcnJvcigic2lnZW1wdHlzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdDSExELCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIGRvb3JfZmQgPSBta3N0ZW1wKGRvb3JfZmlsZSk7CisgICBpZiAoZG9vcl9mZCA8IDApIHsKKyAgICAgIHBlcnJvcigibWtzdGVtcCIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisgICBjbG9zZShkb29yX2ZkKTsKKworICAgcGlkID0gZm9yaygpOworICAgaWYgKHBpZCA9PSAtMSkgeworICAgICAgcGVycm9yKCJmb3JrIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgaWYgKHBpZCA9PSAwKSB7CisgICAgICByZXR1cm4gY2xpZW50X21haW4oKTsKKyAgIH0gZWxzZSB7CisgICAgICBpbnQgcmVzID0gc2VydmVyX21haW4oKTsKKyAgICAgIGlmIChyZXMgPT0gMCkgeworICAgICAgICAgZG8geworICAgICAgICAgICAgaWYgKHdhaXQoTlVMTCkgPT0gcGlkKQorICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAoZXJybm8gIT0gRUlOVFIpIHsKKyAgICAgICAgICAgICAgIHBlcnJvcigid2FpdCIpOworICAgICAgICAgICAgICAgcmVzID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0gd2hpbGUgKGVycm5vID09IEVJTlRSKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiByZXM7CisgICB9Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2Rvb3JfZGF0YS5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbWVtY2hlY2svdGVzdHMvc29sYXJpcy9kb29yX2RhdGEuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9kb29yX2RhdGEuc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9kYXRhLnN0ZG91dC5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQwY2NjMwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9kYXRhLnN0ZG91dC5leHAKQEAgLTAsMCArMSwyIEBACitTRVJWRVI6IEhlbGxvIGZyb20gY2xpZW50CitDTElFTlQ6IEhlbGxvIGZyb20gc2VydmVyCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2Rvb3JfZGF0YS52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2Rvb3JfZGF0YS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY5M2IzNgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9kYXRhLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IGRvb3JfZGF0YQordmdvcHRzOiAtcSAtLXNpbS1oaW50cz1sYXgtZG9vcnMKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9raWxsLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2Rvb3Jfa2lsbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2ODc0YzAKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2Rvb3Jfa2lsbC5jCkBAIC0wLDAgKzEsMTAyIEBACisvKiBUZXN0IGNhbmNlbGxhdGlvbiBvZiBhIGRvb3JfcmV0dXJuIGNhbGwuICovCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxkb29yLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvbHdwLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK3N0YXRpYyB2b2xhdGlsZSBsd3BpZF90IHNlcnZlcl9sd3BpZCA9IDA7CisKK3N0YXRpYyB2b2lkIHNlcnZlcl9wcm9jZWR1cmUodm9pZCAqY29va2llLCBjaGFyICphcmdwLCBzaXplX3QgYXJnX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvb3JfZGVzY190ICpkcCwgdWludF90IG5fZGVzYykKK3sKKyAgIGFzc2VydCgwKTsKK30KKworc3RhdGljIHZvaWQgKm15X3NlcnZlcl90aHJlYWQodm9pZCAqYXJnKQoreworICAgc2VydmVyX2x3cGlkID0gX2x3cF9zZWxmKCk7CisgICBkb29yX3JldHVybihOVUxMLCAwLCBOVUxMLCAwKTsKKyAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBjcmVhdGVfZG9vcl90aHJlYWQoZG9vcl9pbmZvX3QgKmluZm8pCit7CisgICBzdGF0aWMgaW50IGNhbGxlZCA9IDA7CisgICBwdGhyZWFkX3QgdGhyZWFkOworICAgaW50IHJlczsKKworICAgLyogQWxsb3cgdG8gY3JlYXRlIG9ubHkgb25lIHNlcnZlciBkb29yIHRocmVhZC4gKi8KKyAgIGFzc2VydCghY2FsbGVkKTsKKyAgIGNhbGxlZCA9IDE7CisKKyAgIHJlcyA9IHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsIG15X3NlcnZlcl90aHJlYWQsIE5VTEwpOworICAgaWYgKHJlcykgeworICAgICAgZXJybm8gPSByZXM7CisgICAgICBwZXJyb3IoInB0aHJlYWRfY3JlYXRlIik7CisgICAgICBleGl0KDEpOworICAgfQorfQorCitzdGF0aWMgdm9pZCBzaWduYWxfaGFuZGxlcihpbnQgc2lnbm8sIHNpZ2luZm9fdCAqaW5mbywgdm9pZCAqdWMpCit7CisgICBjb25zdCBjaGFyIHN0cltdID0gIlNpZ25hbCBjYXVnaHQuXG4iOworICAgc2l6ZV90IGxlbiA9IHNpemVvZihzdHIpIC0gMTsKKyAgIHNzaXplX3QgcmVzOworCisgICByZXMgPSB3cml0ZShTVERPVVRfRklMRU5PLCBzdHIsIGxlbik7CisgICBhc3NlcnQocmVzID09IGxlbik7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBpbnQgcmVzID0gMTsKKyAgIGludCBkaWQgPSAtMTsKKyAgIHN0cnVjdCBzaWdhY3Rpb24gc2E7CisKKyAgIHNhLnNhX3NpZ2FjdGlvbiA9IHNpZ25hbF9oYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9SRVNUQVJUOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdJTlQsICZzYSwgTlVMTCkpIHsKKyAgICAgIHBlcnJvcigic2lnYWN0aW9uIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgZG9vcl9zZXJ2ZXJfY3JlYXRlKGNyZWF0ZV9kb29yX3RocmVhZCk7CisKKyAgIGlmICgoZGlkID0gZG9vcl9jcmVhdGUoc2VydmVyX3Byb2NlZHVyZSwgTlVMTCwgMCkpIDwgMCkgeworICAgICAgcGVycm9yKCJkb29yX2NyZWF0ZSIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIC8qIExldCB0aGUgc2VydmVyIHRocmVhZCB0byBydW4uICovCisgICBzbGVlcCgyKTsKKworICAgLyogU2VuZCBhIHNpZ25hbCB0byB0aGUgc2VydmVyIHRocmVhZCB0aGF0IHNob3VsZCBiZSBhbHJlYWR5IGNyZWF0ZWQgYW5kCisgICAgICBibG9ja2VkIGluIGRvb3JfcmV0dXJuLiAqLworICAgaWYgKF9sd3Bfa2lsbChzZXJ2ZXJfbHdwaWQsIFNJR0lOVCkpIHsKKyAgICAgIHBlcnJvcigiX2x3cF9raWxsIik7CisgICAgICBnb3RvIG91dDsKKyAgIH0KKworICAgLyogTGV0IHRoZSBvdGhlciB0aHJlYWQgdG8gcnVuLiAqLworICAgc2xlZXAoMik7CisKKyAgIHJlcyA9IDA7CisKK291dDoKKyAgIGlmIChkaWQgPj0gMCAmJiBkb29yX3Jldm9rZShkaWQpKQorICAgICAgcGVycm9yKCJkb29yX3Jldm9rZSIpOworCisgICByZXR1cm4gcmVzOworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2Rvb3Jfa2lsbC5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbWVtY2hlY2svdGVzdHMvc29sYXJpcy9kb29yX2tpbGwuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9kb29yX2tpbGwuc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9raWxsLnN0ZG91dC5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ5NjMzZgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9raWxsLnN0ZG91dC5leHAKQEAgLTAsMCArMSBAQAorU2lnbmFsIGNhdWdodC4KZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9raWxsLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZG9vcl9raWxsLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzFmNThmCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9kb29yX2tpbGwudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogZG9vcl9raWxsCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2V4ZWN4LmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2V4ZWN4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE1ZDNhYQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZXhlY3guYwpAQCAtMCwwICsxLDU4IEBACisvKiBUZXN0cyB2YXJpYW50IG9mIFNZU19leGVjdmUgd2hlcmUgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgZmlsZSBkZXNjcmlwdG9yLiAqLworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL2V4ZWN4Lmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorCitzdGF0aWMgdm9pZCB0ZXN0X0VGQVVMVCh2b2lkKSB7CisgICBpbnQgcmV0ID0gc3lzY2FsbChTWVNfZXhlY3ZlLCAtMSwgMCwgMCwgMCk7CisgICBpbnQgZXJyb3IgPSBlcnJubzsKKyAgIGlmICgocmV0ICE9IC0xKSB8fCAoZXJyb3IgIT0gRUZBVUxUKSkKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0aW5nIEVGQVVMVFxuIik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfRUJBREYodm9pZCkgeworICAgaW50IHJldCA9IHN5c2NhbGwoU1lTX2V4ZWN2ZSwgLTEsIDAsIDAsIEVYRUNfREVTQ1JJUFRPUik7CisgICBpbnQgZXJyb3IgPSBlcnJubzsKKyAgIGlmICgocmV0ICE9IC0xKSB8fCAoZXJyb3IgIT0gRUJBREYpKQorICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RpbmcgRUJBREZcbiIpOworfQorCitzdGF0aWMgaW50IHRlc3RfZmV4ZWN2ZShjaGFyICogY29uc3QgKmVudnApIHsKKyAgIGludCBmZCA9IG9wZW4oIi91c3IvYmluL3ByaW50ZiIsIE9fRVhFQyk7CisgICBpZiAoZmQgPCAwKSB7CisgICAgICBwZXJyb3IoIm9wZW4iKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICBwaWRfdCBwaWQgPSBmb3JrKCk7CisgICBpZiAocGlkID09IC0xKSB7CisgICAgICBwZXJyb3IoImZvcmsiKTsKKyAgICAgIHJldHVybiAxOworICAgfSBlbHNlIGlmIChwaWQgPiAwKSB7CisgICAgICAvKiBwYXJlbnQgKi8KKyAgIH0gZWxzZSB7CisgICAgICBjaGFyICphcmd2W10gPSB7InByaW50ZiIsICJQQVNTRURcbiIsIE5VTEx9OworCisgICAgICBpZiAoZmV4ZWN2ZShmZCwgYXJndiwgZW52cCkgPCAwKSB7CisgICAgICAgICBwZXJyb3IoImZleGVjdmUiKTsKKyAgICAgICAgIF9leGl0KDEpOworICAgICAgfQorCisgICB9CisKKyAgIHdhaXQoTlVMTCk7CisgICByZXR1cm4gMDsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSwgY2hhciAqIGNvbnN0ICplbnZwKSB7CisgICAvKiBGaXJzdCBleGVyY2lzZSB0aGUgc3lzY2FsbCB3aXRoIHNvbWUgaW52YWxpZCBpbnB1dC4gKi8KKyAgIHRlc3RfRUZBVUxUKCk7CisgICB0ZXN0X0VCQURGKCk7CisKKyAgIHJldHVybiB0ZXN0X2ZleGVjdmUoZW52cCk7Cit9CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2V4ZWN4LnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2V4ZWN4LnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU4NmNiZAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZXhlY3guc3RkZXJyLmV4cApAQCAtMCwwICsxLDQgQEAKK1N5c2NhbGwgcGFyYW0gZXhlY3ZlKGZpbGVuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZXhlY3guc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZXhlY3guc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41M2NkZjFlCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9leGVjeC5zdGRvdXQuZXhwCkBAIC0wLDAgKzEgQEAKK1BBU1NFRApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9leGVjeC52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2V4ZWN4LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzgxNjkwCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9leGVjeC52Z3Rlc3QKQEAgLTAsMCArMSwzIEBACitwcmVyZXE6IHRlc3QgLWUgZXhlY3gKK3Byb2c6IGV4ZWN4Cit2Z29wdHM6IC1xIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tbnVtLWNhbGxlcnM9MQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9maWx0ZXJfbGR5bnN5bSBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX2xkeW5zeW0KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjg1OTY5MgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX2xkeW5zeW0KQEAgLTAsMCArMSw3IEBACisjISAvYmluL3NoCisKKyMgcmVtb3ZlIHBhdGggdG8gbGR5bnN5bQorc2VkICJzLyhpbiAuKmxkeW5zeW0pLyhpbiBsZHluc3ltKS8iIHwKKworLi4vZmlsdGVyX3N0ZGVyciAiJEAiCisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX25hbWVfc2VydmljZV9kb29yIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9maWx0ZXJfbmFtZV9zZXJ2aWNlX2Rvb3IKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjVlNWI5MQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX25hbWVfc2VydmljZV9kb29yCkBAIC0wLDAgKzEsOCBAQAorIyEgL2Jpbi9zaAorCisjIHVuaWZ5IG5hbWVfc2VydmljZV9kb29yIGxvY2F0aW9uCitzZWQgInN8L3N5c3RlbS92b2xhdGlsZXwuLi58IiB8CitzZWQgInN8L3Zhci9ydW58Li4ufCIgfAorCisuL2ZpbHRlcl9zdGRlcnIgIiRAIgorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zY2FsYXIgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zY2FsYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWEzYTZlYgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX3NjYWxhcgpAQCAtMCwwICsxLDE1IEBACisjISAvYmluL3NoCisKKyMgJ3VubGlua2F0JyBzeXNjYWxsIG51bWJlciBkaWZmZXJzIGJldHdlZW4gSWxsdW1vcyBhbmQgU29sYXJpcworc2VkICJzL1swLTldKjogICAgICAgICAgICBTWVNfdW5saW5rYXQveHg6ICAgICAgICAgICAgU1lTX3VubGlua2F0LyIgfAorCisjIEZpbHRlciBvdXQgImluIGZyYW1lICN4LCBjcmVhdGVkIGJ5IiBsaW5lcyBhcyB0aGV5IGRpZmZlciBiZXR3ZWVuIHg4Ni9hbWQ2NC4KKyMgb24geDg2OiAgIGluIGZyYW1lICMwLCBjcmVhdGVkIGJ5IHN5c2NhbGwgKD8/PykKKyMgb24gYW1kNjQ6IGluIGZyYW1lICMxLCBjcmVhdGVkIGJ5ICpmdW5jdGlvbiogKHNjYWxhci5jOjI3MikKK3NlZCAnL2luIGZyYW1lICMuLCBjcmVhdGVkIGJ5L2QnIHwKKworLi9maWx0ZXJfc3RkZXJyICIkQCIgfAorCisjIEFuZCBmaW5hbGx5IHJlbW92ZSB0ZW1wb3JhcnkgbGluZSB3aXRoIGZyYW1lICMwIHByZXNlbnQgdG8gdW5pZnkKKyMgc3RhY2sgdHJhY2VzIGJldHdlZW4geDg2IGFuZCBhbWQ2NC4KK3NlZCAnL2F0IDB4Li4uLi4uLi46IHN5c2NhbGwgKGluIFwvLi4ubGliYy4uLikvZCcKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX3NlbmRmaWxldiBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX3NlbmRmaWxldgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNGE1OWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9maWx0ZXJfc2VuZGZpbGV2CkBAIC0wLDAgKzEsNyBAQAorIyEgL2Jpbi9zaAorCisjIEZpbHRlciB0aGUgZnJhbWUgbnVtYmVyIHdoaWNoIGRpZmZlcnMgYmV0d2VlbiB4ODYgYW5kIGFtZDY0CitzZWQgInMvaW4gZnJhbWUgI1swLTldL2luIGZyYW1lICMuLyIgfAorCisuL2ZpbHRlcl9zdGRlcnIgIiRAIgorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zdGRlcnIgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zdGRlcnIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTc3OGU5NwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX3N0ZGVycgpAQCAtMCwwICsxLDMgQEAKKyMhIC9iaW4vc2gKKworLi4vZmlsdGVyX3N0ZGVyciAiJEAiCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zeXNjYWxsX2F0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9maWx0ZXJfc3lzY2FsbF9hdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YTA3NGVlCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9maWx0ZXJfc3lzY2FsbF9hdApAQCAtMCwwICsxLDggQEAKKyMhIC9iaW4vc2gKKworIyB1bmlmeSB1dGltZXN5cygpIGFuZCB1dGltZW5zYXQoKSBzeXNjYWxsIG5hbWVzCitzZWQgInMvdXRpbWVzeXMvdXRpbWVYWFgvIiB8CitzZWQgInMvdXRpbWVuc2F0L3V0aW1lWFhYLyIgfAorCisuL2ZpbHRlcl9zdGRlcnIgIiRAIgorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldGhydGltZS5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXRocnRpbWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmJiMDc4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXRocnRpbWUuYwpAQCAtMCwwICsxLDM5IEBACisvKiBUZXN0IGZvciBnZXRocnRpbWUgd2hpY2ggZWl0aGVyIGlzc3VlcyBhIGNsYXNzaWMgc3lzY2FsbAorICAgb3IgbGV2ZXJhZ2VzIGZhc3R0cmFwIGF2YWlsYWJsZSBvbiBTb2xhcmlzIHdpdGggdHNjcCBod2NhcC4gKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdHJhcC5oPgorCitpbnQgbWFpbih2b2lkKQoreworICAgaHJ0aW1lX3QgaHJ0ID0gZ2V0aHJ0aW1lKCk7CisgICBpZiAoaHJ0ID4gMCkKKyAgICAgIHByaW50ZigiUEFTU1xuIik7CisKKy8qIEV4ZXJjaXNlIHRoZSBmYXN0dHJhcCBkaXJlY3RseSBpZiBhdmFpbGFibGUuIFdoZW4gdHNjcCBod2NhcAorICAgaXMgbm90IHN1cHBvcnRlZCwgaXQgc2ltcGx5IHJldHVybnMgTlVMTC4gKi8KKyNpZiBkZWZpbmVkKFNPTEFSSVNfR0VUSFJUX0ZBU1RUUkFQKQorI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgX19hc21fXyAoIFwKKyAgICAgICJtb3ZsICVbRkFTVFRSQVBdLCUlZWF4XG4iCisgICAgICAiaW50ICQweGQyXG4iCisgICAgICA6CisgICAgICA6IFtGQVNUVFJBUF0gImkiIChUX0dFVEhSVCkKKyAgICAgIDogImVheCIsICJlZHgiLCAiY2MiKTsKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCisgICBfX2FzbV9fICggXAorICAgICAgIm1vdnEgJVtGQVNUVFJBUF0sJSVyYXhcbiIKKyAgICAgICJpbnQgJDB4ZDJcbiIKKyAgICAgIDoKKyAgICAgIDogW0ZBU1RUUkFQXSAiaSIgKFRfR0VUSFJUKQorICAgICAgOiAicmF4IiwgInJkeCIsICJjYyIpOworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisjZW5kaWYgLyogU09MQVJJU19HRVRIUlRfRkFTVFRSQVAgKi8KKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0aHJ0aW1lLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldGhydGltZS5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldGhydGltZS5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXRocnRpbWUuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXRocnRpbWUuc3Rkb3V0LmV4cApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldGhydGltZS52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldGhydGltZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzEwNDE0YwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0aHJ0aW1lLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IGdldGhydGltZQordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXRocnVzZWMuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0aHJ1c2VjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIxY2ZmNwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0aHJ1c2VjLmMKQEAgLTAsMCArMSwyNCBAQAorLyogVGVzdCBmb3IgZ2V0aHJ1c2VjIHdoaWNoIGRlcGVuZHMgb24gdGhlIGNvcnJlY3QgZW11bGF0aW9uIG9mCisgICBBVF9TVU5fU1lTU1RBVF9BRERSIGluIHRoZSBhdXhpbGlhcnkgdmVjdG9yLiAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisjaW5jbHVkZSA8c3lzL3N5c3RlbV9zdGF0cy5oPgorCitpbnQgbWFpbih2b2lkKQoreworICAgaHJ0aW1lX3QgdCA9IDA7CisgICBnZXRfaHJ1c2VjKCZ0KTsKKyAgIHByaW50ZigiZ2V0X2hydXNlYygpOiAlc1xuIiwgKHQgPT0gMCkgPyAiRkFJTCIgOiAiUEFTUyIpOworCisgICBtZW10aW1lX3NlY190IG0gPSAwOworICAgbWVtc2V0KCZtLCAwLCBzaXplb2YobSkpOworICAgZ2V0X3NlY19mcm9tZXBvY2goJm0pOworICAgcHJpbnRmKCJnZXRfc2VjX2Zyb21lcG9jaCgpOiAlc1xuIiwgKG0gPT0gMCkgPyAiRkFJTCIgOiAiUEFTUyIpOworCisgICB0ID0gMDsKKyAgIGdldF9uc2VjX2Zyb21lcG9jaCgmdCk7CisgICBwcmludGYoImdldF9uc2VjX2Zyb21lcG9jaCgpOiAlc1xuIiwgKHQgPT0gMCkgPyAiRkFJTCIgOiAiUEFTUyIpOworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0aHJ1c2VjLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldGhydXNlYy5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldGhydXNlYy5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXRocnVzZWMuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWMxYjgzCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXRocnVzZWMuc3Rkb3V0LmV4cApAQCAtMCwwICsxLDMgQEAKK2dldF9ocnVzZWMoKTogUEFTUworZ2V0X3NlY19mcm9tZXBvY2goKTogUEFTUworZ2V0X25zZWNfZnJvbWVwb2NoKCk6IFBBU1MKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0aHJ1c2VjLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0aHJ1c2VjLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzE3YWI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXRocnVzZWMudmd0ZXN0CkBAIC0wLDAgKzEsMyBAQAorcHJlcmVxOiB0ZXN0IC1lIGdldGhydXNlYworcHJvZzogZ2V0aHJ1c2VjCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldHpvbmVvZmZzZXQuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0em9uZW9mZnNldC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhYzA3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldHpvbmVvZmZzZXQuYwpAQCAtMCwwICsxLDMwIEBACisvKiBUZXN0IGZvciBnZXRfem9uZV9vZmZzZXQgZmFzdHRyYXAuICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8c3lzL3RyYXAuaD4KKworaW50IG1haW4odm9pZCkKK3sKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIF9fYXNtX18gKCBcCisgICAgICAibW92bCAlW0ZBU1RUUkFQXSwlJWVheFxuIgorICAgICAgImludCAkMHhkMlxuIgorICAgICAgOgorICAgICAgOiBbRkFTVFRSQVBdICJpIiAoVF9HRVRaT05FT0ZGU0VUKQorICAgICAgOiAiZWF4IiwgImVkeCIsICJjYyIpOworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIF9fYXNtX18gKCBcCisgICAgICAibW92cSAlW0ZBU1RUUkFQXSwlJXJheFxuIgorICAgICAgImludCAkMHhkMlxuIgorICAgICAgOgorICAgICAgOiBbRkFTVFRSQVBdICJpIiAoVF9HRVRaT05FT0ZGU0VUKQorICAgICAgOiAicmF4IiwgInJkeCIsICJjYyIpOworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldHpvbmVvZmZzZXQuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvZ2V0em9uZW9mZnNldC5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2dldHpvbmVvZmZzZXQudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXR6b25lb2Zmc2V0LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjRiNjQzCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9nZXR6b25lb2Zmc2V0LnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3ByZXJlcTogdGVzdCAtZSBnZXR6b25lb2Zmc2V0Citwcm9nOiBnZXR6b25lb2Zmc2V0Cit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2lubGluZm8uYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvaW5saW5mby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExM2IwZjgKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2lubGluZm8uYwpAQCAtMCwwICsxLDExIEBACisvKiBGdW5jdGlvbiBiZWxvdyBtYWluIChfc3RhcnQpIGlzIHBhcnQgb2YgdGhpcyBvYmplY3QuCisgKiBTbyB3ZSB1c2UgbWFpbigpIGluIHRoaXMgb2JqZWN0IGFzIGEgbWFya2VyIGZvcgorICogZnVuY3Rpb25zIGluIGlubGluZm9fbmVzdGVkLnNvLgorICovCisKK2V4dGVybiBpbnQgbWFpbl9uZXN0ZWQodm9pZCk7CisKK2ludCBtYWluKCkgeworICAgcmV0dXJuIG1haW5fbmVzdGVkKCk7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvaW5saW5mb19uZXN0ZWQuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvaW5saW5mb19uZXN0ZWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGZlMDliCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9pbmxpbmZvX25lc3RlZC5jCkBAIC0wLDAgKzEsNzggQEAKKy8qIFRha2VuIGZyb20gbWVtY2hlY2svdGVzdHMvaW5saW5mby5jIGFsbW9zdCB2ZXJiYXRpbTsKKyAqIG9ubHkgbWFpbigpIHJlbmFtZWQgdG8gbWFpbl9uZXN0ZWQoKS4KKyAqLworCisjaW5jbHVkZSAiLi4vLi4vbWVtY2hlY2suaCIKKyNkZWZpbmUgSU5MSU5FICAgIGlubGluZSBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkKKworSU5MSU5FIGludCBmdW5fZChpbnQgYXJnZCkgeworICAgc3RhdGljIGludCBsb2NkID0gMDsKKyAgIGlmIChhcmdkID4gMCkKKyAgICAgIGxvY2QgKz0gYXJnZDsKKyAgIHJldHVybiBsb2NkOworfQorCitJTkxJTkUgaW50IGZ1bl9jKGludCBhcmdjKSB7CisgICBzdGF0aWMgaW50IGxvY2MgPSAwOworICAgbG9jYyArPSBhcmdjOworICAgcmV0dXJuIGZ1bl9kKGxvY2MpOworfQorCitJTkxJTkUgaW50IGZ1bl9iKGludCBhcmdiKSB7CisgICBzdGF0aWMgaW50IGxvY2IgPSAwOworICAgbG9jYiArPSBhcmdiOworICAgcmV0dXJuIGZ1bl9jKGxvY2IpOworfQorCitJTkxJTkUgaW50IGZ1bl9hKGludCBhcmdhKSB7CisgICBzdGF0aWMgaW50IGxvY2EgPSAwOworICAgbG9jYSArPSBhcmdhOworICAgcmV0dXJuIGZ1bl9iKGxvY2EpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgaW50IGZ1bl9ub25pbmxpbmVfbShpbnQgYXJnbSkKK3sKKyAgIHJldHVybiBmdW5fZChhcmdtKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIGludCBmdW5fbm9uaW5saW5lX28oaW50IGFyZ28pCit7CisgICBzdGF0aWMgaW50IGxvY28gPSAwOworICAgaWYgKGFyZ28gPiAwKQorICAgICAgbG9jbyArPSBhcmdvOworICAgcmV0dXJuIGxvY287Cit9CisKK0lOTElORSBpbnQgZnVuX2YoaW50IGFyZ2YpIHsKKyAgIHN0YXRpYyBpbnQgbG9jZiA9IDA7CisgICBsb2NmICs9IGFyZ2Y7CisgICByZXR1cm4gZnVuX25vbmlubGluZV9vKGxvY2YpOworfQorCitJTkxJTkUgaW50IGZ1bl9lKGludCBhcmdlKSB7CisgICBzdGF0aWMgaW50IGxvY2UgPSAwOworICAgbG9jZSArPSBhcmdlOworICAgcmV0dXJuIGZ1bl9mKGxvY2UpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgaW50IGZ1bl9ub25pbmxpbmVfbihpbnQgYXJnbikKK3sKKyAgIHJldHVybiBmdW5fZShhcmduKTsKK30KKworCitpbnQgbWFpbl9uZXN0ZWQodm9pZCkgeworICAgaW50IHJlc3VsdDsKKyAgIHJlc3VsdCA9IGZ1bl9hKHJlc3VsdCk7CisgICBWQUxHUklORF9NQUtFX01FTV9VTkRFRklORUQoJnJlc3VsdCwgc2l6ZW9mKHJlc3VsdCkpOworICAgcmVzdWx0ICs9IGZ1bl9ub25pbmxpbmVfbShyZXN1bHQpOworICAgVkFMR1JJTkRfTUFLRV9NRU1fVU5ERUZJTkVEKCZyZXN1bHQsIHNpemVvZihyZXN1bHQpKTsKKyAgIHJlc3VsdCArPSBmdW5fZChyZXN1bHQpOworICAgVkFMR1JJTkRfTUFLRV9NRU1fVU5ERUZJTkVEKCZyZXN1bHQsIHNpemVvZihyZXN1bHQpKTsKKyAgIHJlc3VsdCArPSBmdW5fbm9uaW5saW5lX24ocmVzdWx0KTsKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2lvY3RsLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2lvY3RsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY3ZTUzYQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvaW9jdGwuYwpAQCAtMCwwICsxLDkxIEBACisvKiBUZXN0cyBmb3IgaW9jdGwgd3JhcHBlcnMuCisgICBNb3JlIGNvbXBsaWNhdGVkIG9uZXMgdGhhbiBqdXN0IHRyaXZpYWwgb25lcyBpbiBzY2FsYXJfaW9jdGwuICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZ3MuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxuZXQvaWYuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3NvY2tpby5oPgorCisvKiBzb2NraW8gKi8KK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyBpbnQgdGVzdF9TSU9DR0lGQ09ORih2b2lkKQoreworICAgaW50IGZkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfREdSQU0sIDApOworICAgaWYgKGZkIDwgMCkKKyAgICAgIHBlcnJvcigic29ja2V0Iik7CisKKyAgIGludCBuX2lmczsKKyAgIGlmIChpb2N0bChmZCwgU0lPQ0dJRk5VTSwgJm5faWZzKSA8IDApCisgICAgICBwZXJyb3IoImlvY3RsKFNJT0NHSUZOVU0pIik7CisKKyAgIHN0cnVjdCBpZmNvbmYgaWZjOworICAgaWZjLmlmY19sZW4gPSAobl9pZnMgKyAxKSAqIHNpemVvZihzdHJ1Y3QgaWZyZXEpOworICAgaWZjLmlmY19idWYgPSBtYWxsb2MoKG5faWZzICsgMSkgKiBzaXplb2Yoc3RydWN0IGlmcmVxKSk7CisgICBpZiAoaWZjLmlmY19idWYgPT0gTlVMTCkKKyAgICAgIHBlcnJvcigibWFsbG9jIik7CisKKyAgIGlmIChpb2N0bChmZCwgU0lPQ0dJRkNPTkYsICZpZmMpIDwgMCkKKyAgICAgIHBlcnJvcigiaW9jdGwoU0lPQ0dJRkNPTkYpIik7CisKKyAgIC8qIENoZWNrIGRlZmluZWRuZXNzIG9mIGlmYyBhdHRyaWJ1dGVzIC4uLiAqLworICAgaW50IHggPSAwOworICAgaWYgKGlmYy5pZmNfbGVuICE9IDApIHggPSAtMTsgZWxzZSB4ID0gLTI7CisgICBpZiAoaWZjLmlmY19yZXEgIT0gTlVMTCkgeCA9IC0zOyBlbHNlIHggPSAtNDsKKyAgIGlmIChzdHJjbXAoaWZjLmlmY19yZXFbMF0uaWZyX25hbWUsICIiKSAhPSAwKSB4ID0gLTU7IGVsc2UgeCA9IC02OworICAgLyogLi4uIGFuZCBub3cgb25lIHdoaWNoIGlzIG5vdCBkZWZpbmVkLiAqLworICAgaWYgKHN0cmNtcChpZmMuaWZjX3JlcVtuX2lmc10uaWZyX25hbWUsICIiKSAhPSAwKSB4ID0gLTc7IGVsc2UgeCA9IC04OworCisgICBmcmVlKGlmYy5pZmNfYnVmKTsKKyAgIGNsb3NlKGZkKTsKKyAgIHJldHVybiB4OworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgaW50IHRlc3RfU0lPQ0dMSUZDT05GKHZvaWQpCit7CisgICBpbnQgZmQgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgMCk7CisgICBpZiAoZmQgPCAwKQorICAgICAgcGVycm9yKCJzb2NrZXQiKTsKKworICAgc3RydWN0IGxpZm51bSBsaWZuOworICAgbGlmbi5saWZuX2ZhbWlseSA9IEFGX0lORVQ7CisgICBsaWZuLmxpZm5fZmxhZ3MgPSAwOworICAgaWYgKGlvY3RsKGZkLCBTSU9DR0xJRk5VTSwgJmxpZm4pIDwgMCkKKyAgICAgIHBlcnJvcigiaW9jdGwoU0lPQ0dMSUZOVU0pIik7CisKKyAgIHN0cnVjdCBsaWZjb25mIGxpZmM7CisgICBsaWZjLmxpZmNfZmFtaWx5ID0gQUZfSU5FVDsKKyAgIGxpZmMubGlmY19mbGFncyA9IDA7CisgICBsaWZjLmxpZmNfbGVuID0gKGxpZm4ubGlmbl9jb3VudCArIDEpICogc2l6ZW9mKHN0cnVjdCBsaWZyZXEpOworICAgbGlmYy5saWZjX2J1ZiA9IG1hbGxvYygobGlmbi5saWZuX2NvdW50ICsgMSkgKiBzaXplb2Yoc3RydWN0IGxpZnJlcSkpOworICAgaWYgKGxpZmMubGlmY19idWYgPT0gTlVMTCkKKyAgICAgIHBlcnJvcigibWFsbG9jIik7CisKKyAgIGlmIChpb2N0bChmZCwgU0lPQ0dMSUZDT05GLCAmbGlmYykgPCAwKQorICAgICAgcGVycm9yKCJpb2N0bChTSU9DR0xJRkNPTkYpIik7CisKKyAgIC8qIENoZWNrIGRlZmluZWRuZXNzIG9mIGxpZmMgYXR0cmlidXRlcyAuLi4gKi8KKyAgIGludCB4ID0gMDsKKyAgIGlmIChsaWZjLmxpZmNfbGVuICE9IDApIHggPSAtMTsgZWxzZSB4ID0gLTI7CisgICBpZiAobGlmYy5saWZjX3JlcSAhPSBOVUxMKSB4ID0gLTM7IGVsc2UgeCA9IC00OworICAgaWYgKHN0cmNtcChsaWZjLmxpZmNfcmVxWzBdLmxpZnJfbmFtZSwgIiIpICE9IDApIHggPSAtNTsgZWxzZSB4ID0gLTY7CisgICAvKiAuLi4gYW5kIG5vdyBvbmUgd2hpY2ggaXMgbm90IGRlZmluZWQuICovCisgICBpZiAoc3RyY21wKGxpZmMubGlmY19yZXFbbGlmbi5saWZuX2NvdW50XS5saWZyX25hbWUsICIiKSAhPSAwKQorICAgICAgeCA9IC03OyBlbHNlIHggPSAtODsKKworICAgZnJlZShsaWZjLmxpZmNfYnVmKTsKKyAgIGNsb3NlKGZkKTsKKyAgIHJldHVybiB4OworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgLyogc29ja2lvICovCisgICB0ZXN0X1NJT0NHSUZDT05GKCk7CisgICB0ZXN0X1NJT0NHTElGQ09ORigpOworCisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvaW9jdGwuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvaW9jdGwuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDZlYThkCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9pb2N0bC5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsOCBAQAorQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogdGVzdF9TSU9DR0lGQ09ORiAoaW9jdGwuYzozOSkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGlvY3RsLmM6ODcpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IHRlc3RfU0lPQ0dMSUZDT05GIChpb2N0bC5jOjc2KQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoaW9jdGwuYzo4OCkKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9pb2N0bC5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbWVtY2hlY2svdGVzdHMvc29sYXJpcy9pb2N0bC5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2lvY3RsLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvaW9jdGwudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZGFhNzgKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2lvY3RsLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IGlvY3RsCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xkeW5zeW0uYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbGR5bnN5bS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNGY4ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xkeW5zeW0uYwpAQCAtMCwwICsxLDI5IEBACisvKiBUZXN0IHRoYXQgdGhlIC5TVU5XX2xkeW5zeW0gc2VjdGlvbiBpcyBjb3JyZWN0bHkgcmVhZC4gKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBmdW5jdGlvbjMoc2l6ZV90IHNpemUpCit7CisgICBtYWxsb2Moc2l6ZSk7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIGZ1bmN0aW9uMihzaXplX3Qgc2l6ZSkKK3sKKyAgIGZ1bmN0aW9uMyhzaXplKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgZnVuY3Rpb24oc2l6ZV90IHNpemUpCit7CisgICBmdW5jdGlvbjIoc2l6ZSk7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBmdW5jdGlvbigxMCk7CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xkeW5zeW0uc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbGR5bnN5bS5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0N2I1MDQKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xkeW5zeW0uc3RkZXJyLmV4cApAQCAtMCwwICsxLDcgQEAKKzEwIGJ5dGVzIGluIDEgYmxvY2tzIGFyZSBkZWZpbml0ZWx5IGxvc3QgaW4gbG9zcyByZWNvcmQgLi4uIG9mIC4uLgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IGZ1bmN0aW9uMyAoaW4gbGR5bnN5bSkKKyAgIGJ5IDB4Li4uLi4uLi46IGZ1bmN0aW9uMiAoaW4gbGR5bnN5bSkKKyAgIGJ5IDB4Li4uLi4uLi46IGZ1bmN0aW9uIChpbiBsZHluc3ltKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoaW4gbGR5bnN5bSkKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sZHluc3ltLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xkeW5zeW0uc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sZHluc3ltLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbGR5bnN5bS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFjMjgyMAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbGR5bnN5bS52Z3Rlc3QKQEAgLTAsMCArMSwzIEBACitwcm9nOiBsZHluc3ltCit2Z29wdHM6IC1xIC0tbGVhay1jaGVjaz15ZXMKK3N0ZGVycl9maWx0ZXI6IGZpbHRlcl9sZHluc3ltCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xzZnJhbWUxLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xzZnJhbWUxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFmYzlkOAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbHNmcmFtZTEuYwpAQCAtMCwwICsxLDIzIEBACisvKiBEZW1vbnN0cmF0ZSBNZW1jaGVjayBjb3JyZWN0bHkgaGFuZGxpbmcgYSA2NE0gYXJyYXkgb24gdGhlIHN0YWNrLgorICAgUmVxdWlyZXMgLS1tYXgtc3RhY2tmcmFtZT02NzEwODg4NCBvciBhYm92ZS4gIEFuZCBzaW5jZSBpdAorICAgZ2VuZXJhdGVzIGEgdmVyeSBsYXJnZSBzdGFjaywgLS1tYWluLXN0YWNrc2l6ZT02NzIwMDAwMAorICAgKGFwcHJveGltYXRlbHkpIGlzIGFsc28gcmVxdWlyZWQuICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjZGVmaW5lIE5fTUJZVEVTIDY0CisjZGVmaW5lIE5fSU5UUyAoKE5fTUJZVEVTICogMTA0ODU3NikgLyBzaXplb2YoaW50KSkKKworaW50IG1haW4odm9pZCkKK3sKKyAgIGludCBpLCBzdW07CisgICBpbnQgYXJyW05fSU5UU107CisgICBwcmludGYoImxzZnJhbWUxOiBzdGFydFxuIik7CisgICBmb3IgKGkgPSAwOyBpIDwgTl9JTlRTOyBpKyspCisgICAgICBhcnJbaV0gPSBpOworICAgc3VtID0gMDsKKyAgIGZvciAoaSA9IDA7IGkgPCBOX0lOVFM7IGkrKykKKyAgICAgIHN1bSArPSBhcnJbaV07CisgICBwcmludGYoImxzZnJhbWUxOiBkb25lLCByZXN1bHQgaXMgJWRcbiIsIHN1bSk7CisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbHNmcmFtZTEuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbHNmcmFtZTEuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sc2ZyYW1lMS5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sc2ZyYW1lMS5zdGRvdXQuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyY2IzMGQKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xzZnJhbWUxLnN0ZG91dC5leHAKQEAgLTAsMCArMSwyIEBACitsc2ZyYW1lMTogc3RhcnQKK2xzZnJhbWUxOiBkb25lLCByZXN1bHQgaXMgLTgzODg2MDgKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbHNmcmFtZTEudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sc2ZyYW1lMS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM0OTY3NwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbHNmcmFtZTEudmd0ZXN0CkBAIC0wLDAgKzEsMyBAQAorcHJvZzogbHNmcmFtZTEKK3Znb3B0czogLXEgLS1tYWluLXN0YWNrc2l6ZT02NzIwMDAwMCAtLW1heC1zdGFja2ZyYW1lPTY3MjAwMDAwCitzdGRlcnJfZmlsdGVyOiAuLi9maWx0ZXJfYWxsb2NzCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xzZnJhbWUyLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xzZnJhbWUyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI3ZjFhMAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbHNmcmFtZTIuYwpAQCAtMCwwICsxLDMxIEBACisvKiBEZW1vbnN0cmF0ZSBNZW1jaGVjayBjb3JyZWN0bHkgaGFuZGxpbmcgY2hhaW4gb2YgNjQgcmVjdXJzaXZlCisgICBjYWxscywgZWFjaCBvZiB3aGljaCBhbGxvY2F0ZXMgYSAxIE0gYXJyYXkgb24gdGhlIHN0YWNrLiAgUmVxdWlyZXMKKyAgIC0tbWFpbi1zdGFja3NpemU9NjcxMTcwNTcgKG9uIGFtZDY0LWxpbnV4KSBvciBhYm92ZSwgYnV0IHdvcmtzIGZpbmUKKyAgIGlmIHlvdSBzcGVjaWZ5IHRoYXQuICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjZGVmaW5lIE5fTUJZVEVTIDY0CisjZGVmaW5lIE5fSU5UU19QRVJfTUJZVEUgKDEwNDg1NzYgLyBzaXplb2YoaW50KSkKKworaW50IHJlYyhpbnQgZGVwdGgpCit7CisgICBpbnQgaSwgenp6OworICAgaW50IGFycltOX0lOVFNfUEVSX01CWVRFXTsKKyAgIGlmIChkZXB0aCA9PSAwKSByZXR1cm4gMDsKKyAgIGZvciAoaSA9IDA7IGkgPCBOX0lOVFNfUEVSX01CWVRFOyBpKyspCisgICAgICBhcnJbaV0gPSBpICogZGVwdGg7CisgICB6enogPSByZWMoZGVwdGgtMSk7CisgICBmb3IgKGkgPSAwOyBpIDwgTl9JTlRTX1BFUl9NQllURTsgaSsrKQorICAgICAgIHp6eiArPSBhcnJbaV07CisgICByZXR1cm4genp6OworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgaW50IHN1bTsKKyAgIHByaW50ZigibHNmcmFtZTI6IHN0YXJ0XG4iKTsKKyAgIHN1bSA9IHJlYyhOX01CWVRFUyk7CisgICBwcmludGYoImxzZnJhbWUyOiBkb25lLCByZXN1bHQgaXMgJWRcbiIsIHN1bSk7CisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDIuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbHNmcmFtZTIuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDIuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbHNmcmFtZTIuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sc2ZyYW1lMi5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sc2ZyYW1lMi5zdGRvdXQuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MDVhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xzZnJhbWUyLnN0ZG91dC5leHAKQEAgLTAsMCArMSwyIEBACitsc2ZyYW1lMjogc3RhcnQKK2xzZnJhbWUyOiBkb25lLCByZXN1bHQgaXMgLTI3MjYyOTc2MApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sc2ZyYW1lMi52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL2xzZnJhbWUyLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjFlZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9sc2ZyYW1lMi52Z3Rlc3QKQEAgLTAsMCArMSwzIEBACitwcm9nOiBsc2ZyYW1lMgordmdvcHRzOiAtcSAtLW1haW4tc3RhY2tzaXplPTY4NTAwMDAwCitzdGRlcnJfZmlsdGVyOiAuLi9maWx0ZXJfYWxsb2NzCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL21tYXBvYmpfYnNzb25seS5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9tbWFwb2JqX2Jzc29ubHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTcwMmY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9tbWFwb2JqX2Jzc29ubHkuYwpAQCAtMCwwICsxLDkgQEAKKy8qIFRlc3RzIGxvYWRpbmcgb2YgYSBzaGFyZWQgbGlicmFyeSB3aGljaCBjb250YWlucyBvbmx5IEJTUyBzZWN0aW9uLiAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKworaW50IG1haW4odm9pZCkKK3sKKyAgIHByaW50ZigiUEFTU1xuIik7CisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbW1hcG9ial9ic3Nvbmx5LnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL21tYXBvYmpfYnNzb25seS5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL21tYXBvYmpfYnNzb25seS5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9tbWFwb2JqX2Jzc29ubHkuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9tbWFwb2JqX2Jzc29ubHkuc3Rkb3V0LmV4cApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL21tYXBvYmpfYnNzb25seS52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL21tYXBvYmpfYnNzb25seS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc5MzdjOQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbW1hcG9ial9ic3Nvbmx5LnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IG1tYXBvYmpfYnNzb25seQordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9tbWFwb2JqX2Jzc29ubHlfbGliLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL21tYXBvYmpfYnNzb25seV9saWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzVlMjc3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9tbWFwb2JqX2Jzc29ubHlfbGliLmMKQEAgLTAsMCArMSwzIEBACisvKiBDb250YWlucyBvbmx5IHVuaW5pdGlhbGl6ZWQgZGF0YSB3aGljaCBlbmQgdXAgaW4gQlNTIHNlY3Rpb24uICovCisKK2NoYXIgZHVtbXlbMTBdOwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9uYW1lX3NlcnZpY2VfZG9vci5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9uYW1lX3NlcnZpY2VfZG9vci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZmJmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL25hbWVfc2VydmljZV9kb29yLmMKQEAgLTAsMCArMSwyNzIgQEAKKy8qIFRlc3RzIGZvciBuYW1lIHN3aXRjaCBjYWNoZSBkYWVtb24gKG5zY2QpIGRvb3Igd3JhcHBlci4gKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxkb29yLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPG5zc19kYmRlZnMuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZ3MuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorCisjaWYgZGVmaW5lZChTT0xBUklTX05TQ0RfRE9PUl9TWVNURU1fVk9MQVRJTEUpCisjZGVmaW5lIERPT1JfRklMRSAiL3N5c3RlbS92b2xhdGlsZS9uYW1lX3NlcnZpY2VfZG9vciIKKyNlbHNlCisjZGVmaW5lIERPT1JfRklMRSAiL3Zhci9ydW4vbmFtZV9zZXJ2aWNlX2Rvb3IiCisjZW5kaWYKKworI2RlZmluZSBIRUFERVIoZmlsZSwgdGVzdF9uYW1lKSBcCisgICBmcHJpbnRmKGZpbGUsICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIgIFwKKyAgICAgICAgICAgICAgICAgIiVzXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iLCBcCisgICAgICAgICAgICAgICAgIHRlc3RfbmFtZSk7CisKKworc3RhdGljIGxvbmcgeDA7CisKKy8qIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgc3lzdGVtIGFsbG9jYXRlZCBhIG5ldyBtZW1vcnkgZm9yIHJidWYuCisgICBVbm1hcCBpdCBpZiBpdCBpcyB0aGUgY2FzZS4gKi8KK3N0YXRpYyBpbnQgaGFuZGxlX3JidWYoZG9vcl9hcmdfdCAqcGFyYW1zLCB2b2lkICpidWYpCit7CisgICBpZiAocGFyYW1zLT5yYnVmICE9IGJ1ZikgeworICAgICAgaWYgKG11bm1hcChwYXJhbXMtPnJidWYsIHBhcmFtcy0+cnNpemUpICE9IDApIHsKKyAgICAgICAgIHBlcnJvcigibXVubWFwIik7CisgICAgICAgICByZXR1cm4gRUlOVkFMOworICAgICAgfQorICAgfQorCisgICByZXR1cm4gMDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIGludCB0ZXN0X2FwcF9zbWFsbF9yZXF1ZXN0KGludCBkaWQpCit7CisgICAvKiBTZXQgY2FsbCBwYXJhbWV0ZXJzLiAqLworICAgc2l6ZV90IGJ1Zl9zaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKKyAgIGNoYXIgKmJ1ZiA9IG1hbGxvYyhidWZfc2l6ZSk7CisgICBhc3NlcnQoYnVmICE9IE5VTEwpOworCisgICBuc3NfcGhlYWRlcl90ICpoZWFkZXIgPSAobnNzX3BoZWFkZXJfdCAqKSBidWY7CisgICBoZWFkZXItPm5zY19jYWxsbnVtYmVyID0geDAgKyBOU0NEX0dFVEVOVDsKKworICAgZG9vcl9hcmdfdCBwYXJhbXM7CisgICBwYXJhbXMuZGF0YV9wdHIgPSBidWY7CisgICBwYXJhbXMuZGF0YV9zaXplID0gYnVmX3NpemU7CisgICBwYXJhbXMuZGVzY19wdHIgPSBOVUxMOworICAgcGFyYW1zLmRlc2NfbnVtID0gMDsKKyAgIHBhcmFtcy5yYnVmID0gYnVmOworICAgcGFyYW1zLnJzaXplID0gYnVmX3NpemU7CisKKyAgIC8qIE1ha2UgdGhlIGNhbGwuICovCisgICBpZiAoZG9vcl9jYWxsKGRpZCwgJnBhcmFtcykgIT0gMCkgeworICAgICAgcmV0dXJuIGVycm5vOworICAgfQorCisgICByZXR1cm4gaGFuZGxlX3JidWYoJnBhcmFtcywgYnVmKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIGludCB0ZXN0X2FwcF91bmluaXRpYWxpemVkX3JlcXVlc3QoaW50IGRpZCkKK3sKKyAgIC8qIFNldCBjYWxsIHBhcmFtZXRlcnMuICovCisgICBzaXplX3QgYnVmX3NpemUgPSBzaXplb2YobnNzX3BoZWFkZXJfdCkgKyBzaXplb2YobnNzX2RiZF90KTsKKyAgIGNoYXIgKmJ1ZiA9IG1hbGxvYyhidWZfc2l6ZSk7CisgICBhc3NlcnQoYnVmICE9IE5VTEwpOworCisgICBuc3NfcGhlYWRlcl90ICpoZWFkZXIgPSAobnNzX3BoZWFkZXJfdCAqKSBidWY7CisgICBoZWFkZXItPm5zY19jYWxsbnVtYmVyID0geDAgKyBOU0NEX0dFVEVOVDsKKyAgIGhlYWRlci0+ZGJkX29mZiA9IHgwICsgc2l6ZW9mKG5zc19waGVhZGVyX3QpOworICAgaGVhZGVyLT5kYmRfbGVuID0geDAgKyBzaXplb2YobnNzX2RiZF90KTsKKyAgIG5zc19kYmRfdCAqZGJkID0gKG5zc19kYmRfdCAqKSAoYnVmICsgc2l6ZW9mKG5zc19waGVhZGVyX3QpKTsKKyAgIGRiZC0+ZmxhZ3MgPSB4MDsKKyAgIGRiZC0+b19uYW1lID0geDAgKyAxMDA7CisgICBkYmQtPm9fY29uZmlnX25hbWUgPSB4MCArIDEwMDsKKyAgIGRiZC0+b19kZWZhdWx0X2NvbmZpZyA9IHgwICsgMTAwOworICAgaGVhZGVyLT5rZXlfb2ZmID0geDAgKyBzaXplb2YobnNzX3BoZWFkZXJfdCkgKyBzaXplb2YobnNzX2RiZF90KTsKKyAgIGhlYWRlci0+a2V5X2xlbiA9IHgwICsgMTsgLy8gb25lIGJ5dGUgcGFzdCB0aGUgZW5kIG9mICdidWYnCisgICBoZWFkZXItPnBidWZzaXogPSB4MCArIDEwMDAwMDAwOworCisgICBkb29yX2FyZ190IHBhcmFtczsKKyAgIHBhcmFtcy5kYXRhX3B0ciA9IGJ1ZjsKKyAgIHBhcmFtcy5kYXRhX3NpemUgPSBidWZfc2l6ZTsKKyAgIHBhcmFtcy5kZXNjX3B0ciA9IE5VTEw7CisgICBwYXJhbXMuZGVzY19udW0gPSAwOworICAgcGFyYW1zLnJidWYgPSBidWY7CisgICBwYXJhbXMucnNpemUgPSBidWZfc2l6ZTsKKworICAgLyogTWFrZSB0aGUgY2FsbC4gKi8KKyAgIGlmIChkb29yX2NhbGwoZGlkLCAmcGFyYW1zKSAhPSAwKSB7CisgICAgICByZXR1cm4gZXJybm87CisgICB9CisKKyAgIC8qIENoZWNrIGRlZmluZWRuZXNzIG9mIHJlc3BvbnNlIGF0dHJpYnV0ZXMgLi4uICovCisgICBpbnQgeCA9IDA7CisgICBpZiAoaGVhZGVyLT5wX3N0YXR1cyAhPSBOU1NfU1VDQ0VTUykgeCA9IC0xOyBlbHNlIHggPSAtMjsKKyAgIGlmIChoZWFkZXItPnBfaGVycm5vICE9IDApIHggPSAtMjsgZWxzZSB4ID0gLTM7CisgICBpZiAoaGVhZGVyLT5rZXlfb2ZmICE9IDApIHggPSAtNDsgZWxzZSB4ID0gLTU7CisgICBpZiAoaGVhZGVyLT5rZXlfbGVuICE9IDApIHggPSAtNjsgZWxzZSB4ID0gLTc7CisgICBpZiAoaGVhZGVyLT5kYXRhX29mZiAhPSAwKSB4ID0gLTg7IGVsc2UgeCA9IC05OworICAgaWYgKGhlYWRlci0+ZGF0YV9sZW4gIT0gMCkgeCA9IC0xMDsgZWxzZSB4ID0gLTExOworICAgLyogLi4uIGFuZCBub3cgb25lIHdoaWNoIGlzIG5vdCBkZWZpbmVkLiAqLworICAgaWYgKGhlYWRlci0+cmVzZXJ2ZWQxICE9IDApIHggPSAtMTI7IGVsc2UgeCA9IC0xMzsKKworICAgaGFuZGxlX3JidWYoJnBhcmFtcywgYnVmKTsKKyAgIHJldHVybiB4OworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgaW50IHRlc3RfYXBwX3Byb3RvX2ljbXAoaW50IGRpZCkKK3sKKyAgIGRvb3JfYXJnX3QgcGFyYW1zOworICAgY2hhciBidWZbMTYzODRdOworCisgICAvKiBTZXQgY2FsbCBwYXJhbWV0ZXJzLiAqLworICAgbnNzX3BoZWFkZXJfdCAqaGVhZGVyID0gKG5zc19waGVhZGVyX3QgKikgYnVmOworICAgaGVhZGVyLT5uc2NfY2FsbG51bWJlciA9IE5TQ0RfU0VBUkNIOworICAgaGVhZGVyLT5wX3J1aWQgPSBnZXR1aWQoKTsKKyAgIGhlYWRlci0+cF9ldWlkID0gZ2V0ZXVpZCgpOworICAgaGVhZGVyLT5wX3ZlcnNpb24gPSBOU0NEX0hFQURFUl9SRVY7CisgICBoZWFkZXItPnBfc3RhdHVzID0gMDsKKyAgIGhlYWRlci0+cF9lcnJubyA9IDA7CisgICBoZWFkZXItPnBfaGVycm5vID0gMDsKKyAgIGhlYWRlci0+bGlicHJpdiA9IDA7CisgICBoZWFkZXItPm5zc19kYm9wID0gTlNTX0RCT1BfUFJPVE9DT0xTX0JZTkFNRTsKKworICAgc2l6ZV90IG5hbWVfbGVuID0gc3RybGVuKE5TU19EQk5BTV9QUk9UT0NPTFMpOworICAgc2l6ZV90IGRlZmF1bHRfY29uZmlnX2xlbiA9IHN0cmxlbihOU1NfRklMRVNfT05MWSk7CisgICBoZWFkZXItPmRiZF9vZmYgPSBzaXplb2YobnNzX3BoZWFkZXJfdCk7CisgICBoZWFkZXItPmRiZF9sZW4gPSBzaXplb2YobnNzX2RiZF90KSArIG5hbWVfbGVuICsgMSArIGRlZmF1bHRfY29uZmlnX2xlbiArIDE7CisgICBuc3NfZGJkX3QgKmRiZCA9IChuc3NfZGJkX3QgKikgKGJ1ZiArIHNpemVvZihuc3NfcGhlYWRlcl90KSk7CisgICBkYmQtPm9fbmFtZSA9IHNpemVvZihuc3NfZGJkX3QpOworICAgZGJkLT5vX2NvbmZpZ19uYW1lID0gMDsKKyAgIGRiZC0+b19kZWZhdWx0X2NvbmZpZyA9IGRiZC0+b19uYW1lICsgbmFtZV9sZW4gKyAxOworICAgZGJkLT5mbGFncyA9IDA7CisgICBzdHJjcHkoYnVmICsgaGVhZGVyLT5kYmRfb2ZmICsgZGJkLT5vX25hbWUsIE5TU19EQk5BTV9QUk9UT0NPTFMpOworICAgc3RyY3B5KGJ1ZiArIGhlYWRlci0+ZGJkX29mZiArIGRiZC0+b19kZWZhdWx0X2NvbmZpZywKKyAgICAgICAgICBOU1NfREVGQ09ORl9QUk9UT0NPTFMpOworCisgICBuYW1lX2xlbiA9IHN0cmxlbigiaWNtcCIpOworICAgaGVhZGVyLT5rZXlfb2ZmID0gaGVhZGVyLT5kYmRfb2ZmICsgUk9VTkRfVVAoaGVhZGVyLT5kYmRfbGVuLCBzaXplb2YobnNzdWludF90KSk7CisgICBoZWFkZXItPmtleV9sZW4gPSBuYW1lX2xlbiArIDE7CisgICBzdHJjcHkoYnVmICsgaGVhZGVyLT5rZXlfb2ZmLCAiaWNtcCIpOworCisgICBoZWFkZXItPmRhdGFfb2ZmID0gaGVhZGVyLT5rZXlfb2ZmICsgUk9VTkRfVVAoaGVhZGVyLT5rZXlfbGVuLCBzaXplb2YobnNzdWludF90KSk7CisgICBoZWFkZXItPmRhdGFfbGVuID0gMDsKKyAgIGhlYWRlci0+cGJ1ZnNpeiA9IGhlYWRlci0+ZGF0YV9vZmYgKyBoZWFkZXItPmRhdGFfbGVuOworCisgICBwYXJhbXMuZGF0YV9wdHIgPSBidWY7CisgICBwYXJhbXMuZGF0YV9zaXplID0gaGVhZGVyLT5wYnVmc2l6OworICAgcGFyYW1zLmRlc2NfcHRyID0gTlVMTDsKKyAgIHBhcmFtcy5kZXNjX251bSA9IDA7CisgICBwYXJhbXMucmJ1ZiA9IGJ1ZjsKKyAgIHBhcmFtcy5yc2l6ZSA9IHNpemVvZihidWYpOworCisgICAvKiBTYW5pdHkgY2hlY2tzIG9uIHRoZSBuc3NfcGhlYWRlcl90IGhlYWRlci4gKi8KKyAgIGFzc2VydChoZWFkZXItPnBfdmVyc2lvbiA9PSBOU0NEX0hFQURFUl9SRVYpOworICAgYXNzZXJ0KGhlYWRlci0+ZGJkX29mZiA9PSBzaXplb2YobnNzX3BoZWFkZXJfdCkpOworICAgYXNzZXJ0KChwYXJhbXMuZGF0YV9zaXplICYgMykgPT0gMCk7CisgICBhc3NlcnQoKGhlYWRlci0+ZGJkX29mZiAmIDMpID09IDApOworICAgYXNzZXJ0KChoZWFkZXItPmtleV9vZmYgJiAzKSA9PSAwKTsKKyAgIGFzc2VydCgoaGVhZGVyLT5kYXRhX29mZiAmIDMpID09IDApOworICAgYXNzZXJ0KGhlYWRlci0+ZGF0YV9vZmYgPT0gcGFyYW1zLmRhdGFfc2l6ZSk7CisgICBuc3N1aW50X3QgbDEgPSBoZWFkZXItPmtleV9vZmYgLSBoZWFkZXItPiBkYmRfb2ZmOworICAgYXNzZXJ0KGwxID49IGhlYWRlci0+ZGJkX2xlbik7CisgICBuc3N1aW50X3QgbDIgPSBoZWFkZXItPmRhdGFfb2ZmIC0gaGVhZGVyLT5rZXlfb2ZmOworICAgYXNzZXJ0KGwyID49IGhlYWRlci0+a2V5X2xlbik7CisgICBhc3NlcnQoc2l6ZW9mKG5zc19waGVhZGVyX3QpICsgbDEgKyBsMiA9PSBoZWFkZXItPmRhdGFfb2ZmKTsKKyAgIGFzc2VydChoZWFkZXItPmRhdGFfb2ZmICsgaGVhZGVyLT5kYXRhX2xlbiA9PSBoZWFkZXItPnBidWZzaXopOworCisgICAvKiBNYWtlIHRoZSBjYWxsLiAqLworICAgaWYgKGRvb3JfY2FsbChkaWQsICZwYXJhbXMpICE9IDApIHsKKyAgICAgIHJldHVybiBlcnJubzsKKyAgIH0KKworICAgLyogUHJpbnQgcmVzcG9uc2UgYXR0cmlidXRlcy4gKi8KKyAgIEhFQURFUihzdGRvdXQsICJhcHBfcHJvdG9faWNtcCIpOworICAgcHJpbnRmKCJzdGF0dXM9JXVcbiIsIGhlYWRlci0+cF9zdGF0dXMpOworICAgcHJpbnRmKCJlcnJubz0ldVxuIiwgaGVhZGVyLT5wX2Vycm5vKTsKKyAgIHByaW50ZigiaGVycm5vPSV1XG4iLCBoZWFkZXItPnBfaGVycm5vKTsKKyAgIHByaW50ZigiYnVmc2l6PSUiIFBSSXU2NCAiXG4iLCBoZWFkZXItPnBidWZzaXopOworICAgcHJpbnRmKCJkYmRfb2ZmPSUiIFBSSXU2NCAiIGRiZF9sZW49JSIgUFJJdTY0ICJcbiIsCisgICAgICAgICAgaGVhZGVyLT5kYmRfb2ZmLCBoZWFkZXItPmRiZF9sZW4pOworICAgcHJpbnRmKCJrZXlfb2ZmPSUiIFBSSXU2NCAiIGtleV9sZW49JSIgUFJJdTY0ICJcbiIsCisgICAgICAgICAgaGVhZGVyLT5rZXlfb2ZmLCBoZWFkZXItPmtleV9sZW4pOworICAgcHJpbnRmKCJkYXRhX29mZj0lIiBQUkl1NjQgIiBkYXRhX2xlbj0lIiBQUkl1NjQgIlxuIiwKKyAgICAgICAgICBoZWFkZXItPmRhdGFfb2ZmLCBoZWFkZXItPmRhdGFfbGVuKTsKKyAgIHByaW50ZigiZXh0X29mZj0lIiBQUkl1NjQgIiBleHRfbGVuPSUiIFBSSXU2NCAiXG4iLAorICAgICAgICAgIGhlYWRlci0+ZXh0X29mZiwgaGVhZGVyLT5leHRfbGVuKTsKKyAgIHByaW50Zigia2V5PSVzXG4iLCBidWYgKyBoZWFkZXItPmtleV9vZmYpOworCisgICAvKiBQYXJzZSByZXNwb25zZSBwcm90byBkYXRhLiAqLworICAgY2hhciAqcCA9IGJ1ZiArIGhlYWRlci0+ZGF0YV9vZmY7CisgICBjaGFyICpsaW1pdCA9IHAgKyBoZWFkZXItPmRhdGFfbGVuOworCisgICB3aGlsZSAoKHAgPCBsaW1pdCkgJiYgaXNzcGFjZSgqcCkpCisgICAgICBwKys7CisgICBjaGFyICpuYW1lX3N0YXJ0ID0gcDsKKyAgIHdoaWxlICgocCA8IGxpbWl0KSAmJiAhaXNzcGFjZSgqcCkpCisgICAgICBwKys7IC8vIHNraXAgb3ZlciB0aGUgbmFtZQorICAgbmFtZV9sZW4gPSBwIC0gbmFtZV9zdGFydDsKKworICAgd2hpbGUgKChwIDwgbGltaXQpICYmIGlzc3BhY2UoKnApKQorICAgICAgcCsrOworICAgY2hhciAqbnVtYmVyX3N0YXJ0ID0gcDsKKyAgIGRvIHsKKyAgICAgIHArKzsgLy8gc2tpcCBvdmVyIHRoZSBwcm90byBudW1iZXIKKyAgIH0gd2hpbGUgKChwIDwgbGltaXQpICYmICFpc3NwYWNlKCpwKSk7CisgICBzaXplX3QgbnVtYmVyX2xlbiA9IHAgLSBudW1iZXJfc3RhcnQ7CisKKyAgIHdoaWxlICgocCA8IGxpbWl0KSAmJiBpc3NwYWNlKCpwKSkKKyAgICAgIHArKzsKKyAgIGNoYXIgKmFsaWFzZXNfc3RhcnQgPSBwOworICAgd2hpbGUgKChwIDwgbGltaXQpICYmICFpc3NwYWNlKCpwKSkKKyAgICAgIHArKzsgLy8gc2tpcCBvdmVyIHRoZSBhbGlhc2VzCisgICBzaXplX3QgYWxpYXNlc19sZW4gPSBwIC0gYWxpYXNlc19zdGFydDsKKworICAgcHJpbnRmKCJkYXRhOiBuYW1lPSUuKnMgbnVtYmVyPSUuKnMgYWxpYXNlcz0lLipzXG4iLAorICAgICAgKGludCkgbmFtZV9sZW4sIG5hbWVfc3RhcnQsIChpbnQpIG51bWJlcl9sZW4sIG51bWJlcl9zdGFydCwKKyAgICAgIChpbnQpIGFsaWFzZXNfbGVuLCBhbGlhc2VzX3N0YXJ0KTsKKworICAgcmV0dXJuIGhhbmRsZV9yYnVmKCZwYXJhbXMsIGJ1Zik7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCit7CisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBsb25nICpweCA9IG1hbGxvYyhzaXplb2YobG9uZykpOworICAgeDAgPSBweFswXTsKKworICAgaW50IGRpZCA9IG9wZW4oRE9PUl9GSUxFLCBPX1JET05MWSk7CisgICBpZiAoZGlkIDwgMCkgeworICAgICAgcGVycm9yKCJvcGVuICIgRE9PUl9GSUxFKTsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiTWFrZSBzdXJlIHRoZSBuYW1lIHNlcnZpY2Ugc3dpdGNoIGRhZW1vbiAobnNjZCkgIgorICAgICAgICAgICAgICAiaXMgcnVubmluZy5cbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIHN0cnVjdCBkb29yX2luZm8gaW5mbzsKKyAgIGlmIChkb29yX2luZm8oZGlkLCAmaW5mbykgIT0gMCkgeworICAgICAgcGVycm9yKCJkb29yX2luZm8gIiBET09SX0ZJTEUpOworICAgICAgY2xvc2UoZGlkKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICBIRUFERVIoc3RkZXJyLCAiYXBwX3NtYWxsX3JlcXVlc3QiKTsKKyAgIHRlc3RfYXBwX3NtYWxsX3JlcXVlc3QoZGlkKTsKKworICAgSEVBREVSKHN0ZGVyciwgImFwcF91bmluaXRpYWxpemVkX3JlcXVlc3QiKTsKKyAgIHRlc3RfYXBwX3VuaW5pdGlhbGl6ZWRfcmVxdWVzdChkaWQpOworCisgICBIRUFERVIoc3RkZXJyLCAiYXBwX3Byb3RvX2ljbXAiKTsKKyAgIHRlc3RfYXBwX3Byb3RvX2ljbXAoZGlkKTsKKworICAgY2xvc2UoZGlkKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbmFtZV9zZXJ2aWNlX2Rvb3Iuc3RkZXJyLmV4cC1hbWQ2NCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbmFtZV9zZXJ2aWNlX2Rvb3Iuc3RkZXJyLmV4cC1hbWQ2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWU0YmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9uYW1lX3NlcnZpY2VfZG9vci5zdGRlcnIuZXhwLWFtZDY0CkBAIC0wLDAgKzEsMTQ2IEBACistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2FwcF9zbWFsbF9yZXF1ZXN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+bnNjX2NhbGxudW1iZXIpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgNCBhbGxvYydkCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+cF92ZXJzaW9uKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMTIgYnl0ZXMgYWZ0ZXIgYSBibG9jayBvZiBzaXplIDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX3BoZWFkZXItPmRiZF9vZmYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAzMiBieXRlcyBiZWZvcmUgYW4gdW5hbGxvY2F0ZWQgYmxvY2sgb2Ygc2l6ZSA0LDE5NCwwNDggaW4gYXJlbmEgImNsaWVudCIKKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYmRfbGVuKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMjQgYnl0ZXMgYmVmb3JlIGFuIHVuYWxsb2NhdGVkIGJsb2NrIG9mIHNpemUgNCwxOTQsMDQ4IGluIGFyZW5hICJjbGllbnQiCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+a2V5X29mZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDE2IGJ5dGVzIGJlZm9yZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTk0LDA0OCBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX3BoZWFkZXItPmtleV9sZW4pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA4IGJ5dGVzIGJlZm9yZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTk0LDA0OCBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX3BoZWFkZXItPmRhdGFfb2ZmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgYW4gdW5hbGxvY2F0ZWQgYmxvY2sgb2Ygc2l6ZSA0LDE5NCwwNDggaW4gYXJlbmEgImNsaWVudCIKKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYXRhX2xlbikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDggYnl0ZXMgaW5zaWRlIGFuIHVuYWxsb2NhdGVkIGJsb2NrIG9mIHNpemUgNCwxOTQsMDQ4IGluIGFyZW5hICJjbGllbnQiCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+cGJ1ZnNpeikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDI0IGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSAxNiBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgcGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgYWZ0ZXIgYSBibG9jayBvZiBzaXplIDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX2RiZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDQsMTk0LDAzMyBieXRlcyBpbnNpZGUgYW4gdW5hbGxvY2F0ZWQgYmxvY2sgb2Ygc2l6ZSA0LDE5NCwwNDggaW4gYXJlbmEgImNsaWVudCIKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCithcHBfdW5pbml0aWFsaXplZF9yZXF1ZXN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+bnNjX2NhbGxudW1iZXIpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5wX3ZlcnNpb24pIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAxNiBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDE0NCBhbGxvYydkCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+ZGJkX29mZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDQ4IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYmRfbGVuKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgNTYgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxNDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX3BoZWFkZXItPmtleV9vZmYpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA2NCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDE0NCBhbGxvYydkCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+a2V5X2xlbikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDcyIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYXRhX29mZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDgwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYXRhX2xlbikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDg4IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5wYnVmc2l6KSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgNDAgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxNDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgcGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgYWZ0ZXIgYSBibG9jayBvZiBzaXplIDE0NCBhbGxvYydkCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfZGJkKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMTI4IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19kYmQtPm9fbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDIwIGJ5dGVzIGluc2lkZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTkzLDg0MCBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX2RiZC0+b19jb25maWdfbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDIwIGJ5dGVzIGluc2lkZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTkzLDg0MCBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX2RiZC0+b19kZWZhdWx0X2NvbmZpZykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDIwIGJ5dGVzIGluc2lkZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTkzLDg0MCBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzLT5rZXkpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSAxNDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCithcHBfcHJvdG9faWNtcAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL25hbWVfc2VydmljZV9kb29yLnN0ZGVyci5leHAteDg2IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9uYW1lX3NlcnZpY2VfZG9vci5zdGRlcnIuZXhwLXg4NgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTVmOWI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9uYW1lX3NlcnZpY2VfZG9vci5zdGRlcnIuZXhwLXg4NgpAQCAtMCwwICsxLDEzNiBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCithcHBfc21hbGxfcmVxdWVzdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX3BoZWFkZXItPm5zY19jYWxsbnVtYmVyKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX3BoZWFkZXItPnBfdmVyc2lvbikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDEyIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSA0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYmRfb2ZmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgOCBieXRlcyBiZWZvcmUgYW4gdW5hbGxvY2F0ZWQgYmxvY2sgb2Ygc2l6ZSA0LDE5NCwxMjggaW4gYXJlbmEgImNsaWVudCIKKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYmRfbGVuKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBpbnNpZGUgYW4gdW5hbGxvY2F0ZWQgYmxvY2sgb2Ygc2l6ZSA0LDE5NCwxMjggaW4gYXJlbmEgImNsaWVudCIKKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5rZXlfb2ZmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgOCBieXRlcyBpbnNpZGUgYW4gdW5hbGxvY2F0ZWQgYmxvY2sgb2Ygc2l6ZSA0LDE5NCwxMjggaW4gYXJlbmEgImNsaWVudCIKKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5rZXlfbGVuKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMTYgYnl0ZXMgaW5zaWRlIGFuIHVuYWxsb2NhdGVkIGJsb2NrIG9mIHNpemUgNCwxOTQsMTI4IGluIGFyZW5hICJjbGllbnQiCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+ZGF0YV9vZmYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAyNCBieXRlcyBpbnNpZGUgYW4gdW5hbGxvY2F0ZWQgYmxvY2sgb2Ygc2l6ZSA0LDE5NCwxMjggaW4gYXJlbmEgImNsaWVudCIKKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYXRhX2xlbikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDMyIGJ5dGVzIGluc2lkZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTk0LDEyOCBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX3BoZWFkZXItPnBidWZzaXopIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAxNiBieXRlcyBiZWZvcmUgYW4gdW5hbGxvY2F0ZWQgYmxvY2sgb2Ygc2l6ZSA0LDE5NCwxMjggaW4gYXJlbmEgImNsaWVudCIKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCithcHBfdW5pbml0aWFsaXplZF9yZXF1ZXN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+bnNjX2NhbGxudW1iZXIpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5wX3ZlcnNpb24pIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAxNiBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDE0NCBhbGxvYydkCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+ZGJkX29mZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDQ4IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYmRfbGVuKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgNTYgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxNDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX3BoZWFkZXItPmtleV9vZmYpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyA2NCBieXRlcyBpbnNpZGUgYSBibG9jayBvZiBzaXplIDE0NCBhbGxvYydkCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfcGhlYWRlci0+a2V5X2xlbikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDcyIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYXRhX29mZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDgwIGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5kYXRhX2xlbikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDg4IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19waGVhZGVyLT5wYnVmc2l6KSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgNDAgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAxNDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgcGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDAgYnl0ZXMgYWZ0ZXIgYSBibG9jayBvZiBzaXplIDE0NCBhbGxvYydkCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKCIuLi4vbmFtZV9zZXJ2aWNlX2Rvb3IiLCBuc3NfZGJkKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMTI4IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMTQ0IGFsbG9jJ2QKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwoIi4uLi9uYW1lX3NlcnZpY2VfZG9vciIsIG5zc19kYmQtPm9fbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDM2IGJ5dGVzIGluc2lkZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTkzLDkzNiBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX2RiZC0+b19jb25maWdfbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDM2IGJ5dGVzIGluc2lkZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTkzLDkzNiBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzX2RiZC0+b19kZWZhdWx0X2NvbmZpZykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIDM2IGJ5dGVzIGluc2lkZSBhbiB1bmFsbG9jYXRlZCBibG9jayBvZiBzaXplIDQsMTkzLDkzNiBpbiBhcmVuYSAiY2xpZW50IgorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbCgiLi4uL25hbWVfc2VydmljZV9kb29yIiwgbnNzLT5rZXkpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSAxNDQgYWxsb2MnZAorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIC4uLgorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCithcHBfcHJvdG9faWNtcAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL25hbWVfc2VydmljZV9kb29yLnN0ZG91dC5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL25hbWVfc2VydmljZV9kb29yLnN0ZG91dC5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFkOGI3MgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbmFtZV9zZXJ2aWNlX2Rvb3Iuc3Rkb3V0LmV4cApAQCAtMCwwICsxLDEzIEBACistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2FwcF9wcm90b19pY21wCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N0YXR1cz0wCitlcnJubz0wCitoZXJybm89MAorYnVmc2l6PTE2Mzg0CitkYmRfb2ZmPTEyOCBkYmRfbGVuPTMyCitrZXlfb2ZmPTE2MCBrZXlfbGVuPTUKK2RhdGFfb2ZmPTE2OCBkYXRhX2xlbj0xMgorZXh0X29mZj0wIGV4dF9sZW49MAora2V5PWljbXAKK2RhdGE6IG5hbWU9aWNtcCBudW1iZXI9MSBhbGlhc2VzPUlDTVAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbmFtZV9zZXJ2aWNlX2Rvb3Iudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9uYW1lX3NlcnZpY2VfZG9vci52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdhYjVjYgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvbmFtZV9zZXJ2aWNlX2Rvb3Iudmd0ZXN0CkBAIC0wLDAgKzEsNyBAQAorIyBUZXN0cyBkb29yIHdyYXBwZXIgb2YgbmFtZSBzd2l0Y2ggY2FjaGUgZGFlbW9uIChuc2NkKS4KKyMgVGhlIG5zY2QgbXVzdCBiZSBydW5uaW5nIGFuZCBpdHMgZG9vciBhdHRhY2hlZC4KK3ByZXJlcTogdGVzdCAtZSAvc3lzdGVtL3ZvbGF0aWxlL25hbWVfc2VydmljZV9kb29yIC1vIC1lIC92YXIvcnVuL25hbWVfc2VydmljZV9kb29yCitwcm9nOiBuYW1lX3NlcnZpY2VfZG9vcgordmdvcHRzOiAtcQorc3RkZXJyX2ZpbHRlcjogZmlsdGVyX25hbWVfc2VydmljZV9kb29yCitzdGRlcnJfZmlsdGVyX2FyZ3M6CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3BrY3MxMS5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9wa2NzMTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmVkMzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9wa2NzMTEuYwpAQCAtMCwwICsxLDY0IEBACisvKiBUZXN0IGZvciBQS0NTIzExIGNhbGxzLiAqLyAKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c2VjdXJpdHkvY3J5cHRva2kuaD4KKyNpbmNsdWRlIDxzZWN1cml0eS9wa2NzMTEuaD4KKworaW50IG1haW4odm9pZCkKK3sKKyAgIENLX1JWIHJldCA9IENfSW5pdGlhbGl6ZShOVUxMKTsKKyAgIGlmIChyZXQgIT0gQ0tSX09LKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIkluaXRpYWxpemU6ICVsdVxuIiwgcmV0KTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICBDS19VTE9ORyBzbG90X2NvdW50OworICAgcmV0ID0gQ19HZXRTbG90TGlzdCgwLCBOVUxMLCAmc2xvdF9jb3VudCk7CisgICBpZiAocmV0ICE9IENLUl9PSykgeworICAgICAgZnByaW50ZihzdGRlcnIsICJHZXRTbG90TGlzdChOVUxMKTogJWx1XG4iLCByZXQpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIENLX1NMT1RfSURfUFRSIHNsb3RzID0gbWFsbG9jKHNsb3RfY291bnQgKiBzaXplb2YoQ0tfU0xPVF9JRCkpOworICAgaWYgKHNsb3RzID09IE5VTEwpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAibWFsbG9jKHNsb3RzKVxuIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgcmV0ID0gQ19HZXRTbG90TGlzdCgwLCBzbG90cywgJnNsb3RfY291bnQpOworICAgaWYgKHJldCAhPSBDS1JfT0spIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiR2V0U2xvdExpc3Qoc2xvdHMpOiAlbHVcbiIsIHJldCk7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgQ0tfVUxPTkcgaTsKKyAgIGZvciAoaSA9IDA7IGkgPCBzbG90X2NvdW50OyBpKyspIHsKKyAgICAgIENLX1NMT1RfSUQgc2xvdF9pZCA9IHNsb3RzW2ldOworCisgICAgICBDS19VTE9ORyBtZWNoX2NvdW50OworICAgICAgcmV0ID0gQ19HZXRNZWNoYW5pc21MaXN0KHNsb3RfaWQsIE5VTEwsICZtZWNoX2NvdW50KTsKKyAgICAgIGlmIChyZXQgIT0gQ0tSX09LKSB7CisgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkdldE1lY2hhbmlzbUxpc3QoTlVMTCk6ICVsdVxuIiwgcmV0KTsKKyAgICAgICAgIHJldHVybiAxOworICAgICAgfQorCisgICAgICBDS19NRUNIQU5JU01fVFlQRV9QVFIgbWVjaHMgPSBtYWxsb2MobWVjaF9jb3VudCAqIHNpemVvZihDS19NRUNIQU5JU01fVFlQRSkpOworICAgICAgaWYgKHNsb3RzID09IE5VTEwpIHsKKyAgICAgICAgIGZwcmludGYoc3RkZXJyLCAibWFsbG9jKG1lY2hzKVxuIik7CisgICAgICAgICByZXR1cm4gMTsKKyAgICAgIH0KKworICAgICAgcmV0ID0gQ19HZXRNZWNoYW5pc21MaXN0KHNsb3RfaWQsIG1lY2hzLCAmbWVjaF9jb3VudCk7CisgICAgICBpZiAocmV0ICE9IENLUl9PSykgeworICAgICAgICAgZnByaW50ZihzdGRlcnIsICJHZXRNZWNoYW5pc21MaXN0KG1lY2hzKTogJWx1XG4iLCByZXQpOworICAgICAgICAgcmV0dXJuIDE7CisgICAgICB9CisKKyAgICAgIGZyZWUobWVjaHMpOworICAgfQorCisgICBmcmVlKHNsb3RzKTsKKyAgIENfRmluYWxpemUoTlVMTF9QVFIpOworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvcGtjczExLnN0ZGVyci5leHAtaWxsdW1vcyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvcGtjczExLnN0ZGVyci5leHAtaWxsdW1vcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzk3NmY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9wa2NzMTEuc3RkZXJyLmV4cC1pbGx1bW9zCkBAIC0wLDAgKzEsNiBAQAorQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgLi4uCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIC4uLgorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3BrY3MxMS5zdGRlcnIuZXhwLXNvbGFyaXMKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3BrY3MxMS5zdGRlcnIuZXhwLXNvbGFyaXMKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvcGtjczExLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3BrY3MxMS5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3BrY3MxMS52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3BrY3MxMS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg4N2Q2MwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvcGtjczExLnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3Byb2c6IHBrY3MxMQordmdvcHRzOiAtcQorc3RkZXJyX2ZpbHRlcl9hcmdzOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXIuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjExYjM5YgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyLmMKQEAgLTAsMCArMSwyNTMyIEBACisvKiBCYXNpYyBzeXNjYWxsIHRlc3QsIHNlZSBtZW1jaGVjay90ZXN0cy94ODYtbGludXgvc2NhbGFyLmMgZm9yIG1vcmUgaW5mby4gKi8KKworI2luY2x1ZGUgInNjYWxhci5oIgorCisjaW5jbHVkZSA8YnNtL2F1ZGl0Lmg+CisjaW5jbHVkZSA8bmZzL25mcy5oPgorI2luY2x1ZGUgPG5mcy9uZnNzeXMuaD4KKyNpbmNsdWRlIDxzeXMvYWNsLmg+CisjaW5jbHVkZSA8c3lzL2Rvb3IuaD4KKyNpbmNsdWRlIDxzeXMvZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvbHdwLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxzeXMvbW91bnQuaD4KKyNpbmNsdWRlIDxzeXMvcG9ydF9pbXBsLmg+CisjaW5jbHVkZSA8c3lzL3ByaW9jbnRsLmg+CisjaW5jbHVkZSA8c3lzL3ByaXYuaD4KKyNpbmNsdWRlIDxzeXMvc2VtX2ltcGwuaD4KKyNpbmNsdWRlIDxzeXMvc2VuZGZpbGUuaD4KKyNpbmNsdWRlIDxzeXMvc2htX2ltcGwuaD4KKyNpbmNsdWRlIDxzeXMvdGVybWlvcy5oPgorI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisjaW5jbHVkZSA8c3lzL3Rzb2wvdG5kYi5oPgorI2luY2x1ZGUgPHN5cy90c29sL3RzeXNjYWxsLmg+CisKKy8qIEhlbHBlciBmdW5jdGlvbnMuICBUaGVzZSBhcmUgbmVjZXNzYXJ5IGlmIHdlJ3ZlIGdvdCB0d28gdGVzdHMgZm9yIGEgc2luZ2xlCisgICBzeXNjYWxsLiAgSW4gdGhhdCBjYXNlLCBNZW1jaGVjayBjYW4gc29tZXRpbWVzIG1lcmdlIGVycm9yIG1lc3NhZ2VzLiAgRG9pbmcKKyAgIGVhY2ggdGVzdCBpbiBpdHMgb3duIGZ1bmN0aW9uIHByZXZlbnRzIHRoYXQuICovCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfbW91bnQodm9pZCkKK3sKKyAgIEdPKFNZU19tb3VudCwgIig0LWFyZywgdGFibGUgdmFyaWFudCkgNHMgMm0iKTsKKyAgIFNZKFNZU19tb3VudCwgeDAgKyAxLCB4MCwgeDAsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX21vdW50Mih2b2lkKQoreworICAgR08oU1lTX21vdW50LCAiKDQtYXJnKSA0cyAzbSIpOworICAgU1koU1lTX21vdW50LCB4MCArIDEsIHgwLCB4MCwgeDAgKyAyNTYpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfbW91bnQzKHZvaWQpCit7CisgICBHTyhTWVNfbW91bnQsICIoNi1hcmcpIDZzIDRtIik7CisgICBTWShTWVNfbW91bnQsIHgwICsgMSwgeDAsIHgwIHwgTVNfREFUQSwgeDAgKyAyNTYsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX21vdW50NCh2b2lkKQoreworICAgR08oU1lTX21vdW50LCAiKDgtYXJnKSA4cyA1bSIpOworICAgU1koU1lTX21vdW50LCB4MCArIDEsIHgwLCB4MCB8IE1TX09QVElPTlNUUiwgeDAgKyAyNTYsIHgwICsgMSwgeDAgKyAxLAorICAgICAgICAgICAgICAgICB4MCArIDEsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wZ3Jwc3lzKHZvaWQpCit7CisgICBHTyhTWVNfcGdycHN5cywgIihHRVRQR1JQKSAxcyAwbSIpOworICAgU1koU1lTX3BncnBzeXMsIHgwKTsgU1VDQzsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3BncnBzeXMyKHZvaWQpCit7CisgICBHTyhTWVNfcGdycHN5cywgIihHRVRTSUQpIDJzIDBtIik7CisgICBTWShTWVNfcGdycHN5cywgeDAgKyAyLCB4MCk7IFNVQ0M7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wZ3Jwc3lzMyh2b2lkKQoreworICAgR08oU1lTX3BncnBzeXMsICIoR0VUUEdJRCkgMnMgMG0iKTsKKyAgIFNZKFNZU19wZ3Jwc3lzLCB4MCArIDQsIHgwKTsgU1VDQzsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5cyh2b2lkKQoreworICAgR08oU1lTX3NobXN5cywgIihTSE1BVCkgNHMgMG0iKTsKKyAgIFNZKFNZU19zaG1zeXMsIHgwICsgU0hNQVQsIHgwLCB4MCAtIDEsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5czIodm9pZCkKK3sKKyAgIEdPKFNZU19zaG1zeXMsICIoU0hNQ1RMLFNITV9MT0NLKSAzcyAwbSIpOworICAgU1koU1lTX3NobXN5cywgeDAgKyBTSE1DVEwsIHgwLCB4MCArIFNITV9MT0NLKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5czModm9pZCkKK3sKKyAgIEdPKFNZU19zaG1zeXMsICIoU0hNQ1RMLFNITV9VTkxPQ0spIDNzIDBtIik7CisgICBTWShTWVNfc2htc3lzLCB4MCArIFNITUNUTCwgeDAsIHgwICsgU0hNX1VOTE9DSyk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zaG1zeXM0KHZvaWQpCit7CisgICBHTyhTWVNfc2htc3lzLCAiKFNITUNUTCxJUENfUk1JRCkgM3MgMG0iKTsKKyAgIFNZKFNZU19zaG1zeXMsIHgwICsgU0hNQ1RMLCB4MCwgeDAgKyBJUENfUk1JRCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zaG1zeXM1KHZvaWQpCit7CisgICBHTyhTWVNfc2htc3lzLCAiKFNITUNUTCxJUENfU0VUKSA0cyAzbSIpOworICAgU1koU1lTX3NobXN5cywgeDAgKyBTSE1DVEwsIHgwLCB4MCArIElQQ19TRVQsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zaG1zeXM2KHZvaWQpCit7CisgICBzdHJ1Y3Qgc2htaWRfZHMgYnVmOworICAgYnVmLnNobV9wZXJtLnVpZCA9IHgwICsgMTsKKyAgIGJ1Zi5zaG1fcGVybS5naWQgPSB4MCArIDE7CisgICBidWYuc2htX3Blcm0ubW9kZSA9IHgwICsgMTsKKworICAgR08oU1lTX3NobXN5cywgIihTSE1DVEwsSVBDX1NFVCkgNnMgMG0iKTsKKyAgIFNZKFNZU19zaG1zeXMsIHgwICsgU0hNQ1RMLCB4MCwgeDAgKyBJUENfU0VULCAmYnVmKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5czcodm9pZCkKK3sKKyAgIEdPKFNZU19zaG1zeXMsICIoU0hNQ1RMLElQQ19TVEFUKSA0cyAxbSIpOworICAgU1koU1lTX3NobXN5cywgeDAgKyBTSE1DVEwsIHgwLCB4MCArIElQQ19TVEFULCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2htc3lzOCh2b2lkKQoreworICAgR08oU1lTX3NobXN5cywgIihTSE1DVEwsSVBDX1NFVDY0KSA0cyAzbSIpOworICAgU1koU1lTX3NobXN5cywgeDAgKyBTSE1DVEwsIHgwLCB4MCArIElQQ19TRVQ2NCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5czkodm9pZCkKK3sKKyAgIHN0cnVjdCBzaG1pZF9kczY0IGJ1ZjsKKyAgIGJ1Zi5zaG14X3Blcm0uaXBjeF91aWQgPSB4MCArIDE7CisgICBidWYuc2hteF9wZXJtLmlwY3hfZ2lkID0geDAgKyAxOworICAgYnVmLnNobXhfcGVybS5pcGN4X21vZGUgPSB4MCArIDE7CisKKyAgIEdPKFNZU19zaG1zeXMsICIoU0hNQ1RMLElQQ19TRVQ2NCkgNnMgMG0iKTsKKyAgIFNZKFNZU19zaG1zeXMsIHgwICsgU0hNQ1RMLCB4MCwgeDAgKyBJUENfU0VUNjQsICZidWYpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2htc3lzMTAodm9pZCkKK3sKKyAgIEdPKFNZU19zaG1zeXMsICIoU0hNQ1RMLElQQ19TVEFUNjQpIDRzIDFtIik7CisgICBTWShTWVNfc2htc3lzLCB4MCArIFNITUNUTCwgeDAsIHgwICsgSVBDX1NUQVQ2NCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5czExKHZvaWQpCit7CisgICBHTyhTWVNfc2htc3lzLCAiKFNITURUKSAycyAwbSIpOworICAgU1koU1lTX3NobXN5cywgeDAgKyBTSE1EVCwgeDAgLSAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5czEyKHZvaWQpCit7CisgICBHTyhTWVNfc2htc3lzLCAiKFNITUdFVCkgNHMgMG0iKTsKKyAgIFNZKFNZU19zaG1zeXMsIHgwICsgU0hNR0VULCB4MCwgeDAsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5czEzKHZvaWQpCit7CisgICBHTyhTWVNfc2htc3lzLCAiKFNITUlEUykgNHMgMm0iKTsKKyAgIFNZKFNZU19zaG1zeXMsIHgwICsgU0hNSURTLCB4MCArIDEsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NlbXN5cyh2b2lkKQoreworICAgR08oU1lTX3NlbXN5cywgIihTRU1DVEwsSVBDX1NUQVQpIDVzIDFtIik7CisgICBTWShTWVNfc2Vtc3lzLCB4MCArIFNFTUNUTCwgeDAsIHgwLCB4MCArIElQQ19TVEFULCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzMih2b2lkKQoreworICAgR08oU1lTX3NlbXN5cywgIihTRU1DVEwsSVBDX1NFVCkgNXMgMW0iKTsKKyAgIFNZKFNZU19zZW1zeXMsIHgwICsgU0VNQ1RMLCB4MCwgeDAsIHgwICsgSVBDX1NFVCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NlbXN5czModm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNQ1RMLElQQ19TVEFUNjQpIDVzIDFtIik7CisgICBTWShTWVNfc2Vtc3lzLCB4MCArIFNFTUNUTCwgeDAsIHgwLCB4MCArIElQQ19TVEFUNjQsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zZW1zeXM0KHZvaWQpCit7CisgICBHTyhTWVNfc2Vtc3lzLCAiKFNFTUNUTCxJUENfU0VUNjQpIDVzIDFtIik7CisgICBTWShTWVNfc2Vtc3lzLCB4MCArIFNFTUNUTCwgeDAsIHgwLCB4MCArIElQQ19TRVQ2NCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NlbXN5czUodm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNQ1RMLElQQ19STUlEKSAzcyAwbSIpOworICAgU1koU1lTX3NlbXN5cywgeDAgKyBTRU1DVEwsIHgwLCB4MCwgeDAgKyBJUENfUk1JRCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zZW1zeXM2KHZvaWQpCit7CisgICBHTyhTWVNfc2Vtc3lzLCAiKFNFTUNUTCxHRVRBTEwpIDRzIDBtIik7CisgICBTWShTWVNfc2Vtc3lzLCB4MCArIFNFTUNUTCwgeDAsIHgwLCB4MCArIEdFVEFMTCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NlbXN5czcodm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNQ1RMLFNFVEFMTCkgNHMgMG0iKTsKKyAgIFNZKFNZU19zZW1zeXMsIHgwICsgU0VNQ1RMLCB4MCwgeDAsIHgwICsgU0VUQUxMLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzOCh2b2lkKQoreworICAgR08oU1lTX3NlbXN5cywgIihTRU1DVEwsR0VUVkFMKSA0cyAwbSIpOworICAgU1koU1lTX3NlbXN5cywgeDAgKyBTRU1DVEwsIHgwLCB4MCwgeDAgKyBHRVRWQUwpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzOSh2b2lkKQoreworICAgR08oU1lTX3NlbXN5cywgIihTRU1DVEwsU0VUVkFMKSA1cyAwbSIpOworICAgU1koU1lTX3NlbXN5cywgeDAgKyBTRU1DVEwsIHgwLCB4MCwgeDAgKyBTRVRWQUwsIHgwICsgMik7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zZW1zeXMxMCh2b2lkKQoreworICAgR08oU1lTX3NlbXN5cywgIihTRU1DVEwsR0VUUElEKSA0cyAwbSIpOworICAgU1koU1lTX3NlbXN5cywgeDAgKyBTRU1DVEwsIHgwLCB4MCwgeDAgKyBHRVRQSUQpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzMTEodm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNQ1RMLEdFVE5DTlQpIDRzIDBtIik7CisgICBTWShTWVNfc2Vtc3lzLCB4MCArIFNFTUNUTCwgeDAsIHgwLCB4MCArIEdFVE5DTlQpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzMTIodm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNQ1RMLEdFVFpDTlQpIDRzIDBtIik7CisgICBTWShTWVNfc2Vtc3lzLCB4MCArIFNFTUNUTCwgeDAsIHgwLCB4MCArIEdFVFpDTlQpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzMTModm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNR0VUKSA0cyAwbSIpOworICAgU1koU1lTX3NlbXN5cywgeDAgKyBTRU1HRVQsIHgwLCB4MCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzMTQodm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNT1ApIDRzIDFtIik7CisgICBTWShTWVNfc2Vtc3lzLCB4MCArIFNFTU9QLCB4MCwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzMTUodm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNSURTKSA0cyAybSIpOworICAgU1koU1lTX3NlbXN5cywgeDAgKyBTRU1JRFMsIHgwICsgMSwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2Vtc3lzMTYodm9pZCkKK3sKKyAgIEdPKFNZU19zZW1zeXMsICIoU0VNVElNRURPUCkgNXMgMm0iKTsKKyAgIFNZKFNZU19zZW1zeXMsIHgwICsgU0VNVElNRURPUCwgeDAsIHgwICsgMSwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfZmNudGwodm9pZCkKK3sKKyAgIEdPKFNZU19mY250bCwgIihHRVRGRCkgMnMgMG0iKTsKKyAgIFNZKFNZU19mY250bCwgeDAgLSAxLCB4MCArIEZfR0VURkQpOyBGQUlMeChFQkFERik7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19mY250bDIodm9pZCkKK3sKKyAgIEdPKFNZU19mY250bCwgIihEVVBGRCkgM3MgMG0iKTsKKyAgIFNZKFNZU19mY250bCwgeDAgLSAxLCB4MCArIEZfRFVQRkQsIHgwKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfZmNudGwzKHZvaWQpCit7CisgICBHTyhTWVNfZmNudGwsICIoR0VUTEspIDNzIDVtIik7CisgICBTWShTWVNfZmNudGwsIHgwIC0gMSwgeDAgKyBGX0dFVExLLCB4MCk7IEZBSUx4KEVCQURGKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX29wZW5hdCh2b2lkKQoreworICAgR08oU1lTX29wZW5hdCwgIigzLWFyZ3MpIDNzIDFtIik7CisgICBTWShTWVNfb3BlbmF0LCB4MCAtIDEsIHgwLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19vcGVuYXQyKHZvaWQpCit7CisgICBHTyhTWVNfb3BlbmF0LCAiKDQtYXJncykgNHMgMW0iKTsKKyAgIFNZKFNZU19vcGVuYXQsIHgwIC0gMSwgeDAsIHgwIHwgT19DUkVBVCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfdGFza3N5cyh2b2lkKQoreworICAgR08oU1lTX3Rhc2tzeXMsICIoc2V0dGFza2lkKSAzcyAwbSIpOworICAgU1koU1lTX3Rhc2tzeXMsIHgwICsgMCwgeDAsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3Rhc2tzeXMyKHZvaWQpCit7CisgICBHTyhTWVNfdGFza3N5cywgIihnZXR0YXNraWQpIDFzIDBtIik7CisgICBTWShTWVNfdGFza3N5cywgeDAgKyAxKTsgU1VDQzsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3Rhc2tzeXMzKHZvaWQpCit7CisgICBHTyhTWVNfdGFza3N5cywgIihnZXRwcm9qaWQpIDFzIDBtIik7CisgICBTWShTWVNfdGFza3N5cywgeDAgKyAyKTsgU1VDQzsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3Rhc2tzeXM0KHZvaWQpCit7CisgICBHTyhTWVNfdGFza3N5cywgIihwcm9qbGlzdCkgM3MgMW0iKTsKKyAgIC8qIEFSRzIgYW5kIEFSRzMgYXJlIGlnbm9yZWQgKi8KKyAgIFNZKFNZU190YXNrc3lzLCB4MCArIDMsIHgwLCB4MCwgeDAgKyAxLCB4MCArIDIpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2VuZGZpbGV2KHZvaWQpCit7CisgICBHTyhTWVNfc2VuZGZpbGV2LCAiKFNFTkRGSUxFVikgNXMgMm0iKTsKKyAgIFNZKFNZU19zZW5kZmlsZXYsIHgwICsgU0VOREZJTEVWLCB4MCAtIDEsIHgwICsgMSwgeDAgKyAyLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2VuZGZpbGV2Mih2b2lkKQoreworICAgc3RydWN0IHNlbmRmaWxldmVjIHZlY1syXTsKKyAgIHZlY1swXS5zZnZfZmQgPSBTRlZfRkRfU0VMRjsKKyAgIHZlY1swXS5zZnZfb2ZmID0gKG9mZl90KSh4MCArIDEpOworICAgdmVjWzBdLnNmdl9sZW4gPSB4MCArIDE7CisgICB2ZWNbMF0uc2Z2X2ZsYWcgPSAwOyAvLyBzaG91bGQgYmUgc2V0IHRvIHplcm8gYWNjb3JkaW5nIHRvIG1hbiBwYWdlCisgICB2ZWNbMV0uc2Z2X2ZkID0geDAgLSAxOworICAgdmVjWzFdLnNmdl9vZmYgPSB4MDsKKyAgIHZlY1sxXS5zZnZfbGVuID0geDAgKyAxOworICAgdmVjWzFdLnNmdl9mbGFnID0gMDsgLy8gc2hvdWxkIGJlIHNldCB0byB6ZXJvIGFjY29yZGluZyB0byBtYW4gcGFnZQorCisgICBHTyhTWVNfc2VuZGZpbGV2LCAiKFNFTkRGSUxFVikgNHMgMm0iKTsKKyAgIFNZKFNZU19zZW5kZmlsZXYsIHgwICsgU0VOREZJTEVWLCB4MCAtIDEsIHZlYywgMiwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NlbmRmaWxldjModm9pZCkKK3sKKyAgIEdPKFNZU19zZW5kZmlsZXYsICIoU0VOREZJTEVWNjQpIDVzIDJtIik7CisgICBTWShTWVNfc2VuZGZpbGV2LCB4MCArIFNFTkRGSUxFVjY0LCB4MCAtIDEsIHgwICsgMSwgeDAgKyAyLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2VuZGZpbGV2NCh2b2lkKQoreworICAgc3RydWN0IHNlbmRmaWxldmVjNjQgdmVjWzJdOworICAgdmVjWzBdLnNmdl9mZCA9IFNGVl9GRF9TRUxGOworICAgdmVjWzBdLnNmdl9vZmYgPSAob2ZmX3QpKHgwICsgMSk7CisgICB2ZWNbMF0uc2Z2X2xlbiA9IHgwICsgMTsKKyAgIHZlY1swXS5zZnZfZmxhZyA9IDA7IC8vIHNob3VsZCBiZSBzZXQgdG8gemVybyBhY2NvcmRpbmcgdG8gbWFuIHBhZ2UKKyAgIHZlY1sxXS5zZnZfZmQgPSB4MCAtIDE7CisgICB2ZWNbMV0uc2Z2X29mZiA9IHgwOworICAgdmVjWzFdLnNmdl9sZW4gPSB4MCArIDE7CisgICB2ZWNbMV0uc2Z2X2ZsYWcgPSAwOyAvLyBzaG91bGQgYmUgc2V0IHRvIHplcm8gYWNjb3JkaW5nIHRvIG1hbiBwYWdlCisKKyAgIEdPKFNZU19zZW5kZmlsZXYsICIoU0VOREZJTEVWNjQpIDRzIDJtIik7CisgICBTWShTWVNfc2VuZGZpbGV2LCB4MCArIFNFTkRGSUxFVjY0LCB4MCAtIDEsIHZlYywgMiwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3ByaXZzeXModm9pZCkKK3sKKyAgIEdPKFNZU19wcml2c3lzLCAiKFBSSVZTWVNfU0VUUFBSSVYpIDVzIDFtIik7CisgICBTWShTWVNfcHJpdnN5cywgeDAgKyBQUklWU1lTX1NFVFBQUklWLCB4MCwgeDAsIHgwLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpdnN5czIodm9pZCkKK3sKKyAgIEdPKFNZU19wcml2c3lzLCAiKFBSSVZTWVNfR0VUUFBSSVYpIDVzIDFtIik7CisgICBTWShTWVNfcHJpdnN5cywgeDAgKyBQUklWU1lTX0dFVFBQUklWLCB4MCwgeDAsIHgwLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpdnN5czModm9pZCkKK3sKKyAgIEdPKFNZU19wcml2c3lzLCAiKFBSSVZTWVNfR0VUSU1QTElORk8pIDVzIDFtIik7CisgICBTWShTWVNfcHJpdnN5cywgeDAgKyBQUklWU1lTX0dFVElNUExJTkZPLCB4MCwgeDAsIHgwLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpdnN5czQodm9pZCkKK3sKKyAgIEdPKFNZU19wcml2c3lzLCAiKFBSSVZTWVNfU0VUUEZMQUdTKSAzcyAwbSIpOworICAgU1koU1lTX3ByaXZzeXMsIHgwICsgUFJJVlNZU19TRVRQRkxBR1MsIHgwLCB4MCArIDIpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpdnN5czUodm9pZCkKK3sKKyAgIEdPKFNZU19wcml2c3lzLCAiKFBSSVZTWVNfR0VUUEZMQUdTKSAycyAwbSIpOworICAgU1koU1lTX3ByaXZzeXMsIHgwICsgUFJJVlNZU19HRVRQRkxBR1MsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3ByaXZzeXM2KHZvaWQpCit7CisgICBHTyhTWVNfcHJpdnN5cywgIihQUklWU1lTX0lTU0VUVUdJRCkgMXMgMG0iKTsKKyAgIFNZKFNZU19wcml2c3lzLCB4MCArIFBSSVZTWVNfSVNTRVRVR0lEKTsgU1VDQzsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3ByaXZzeXM3KHZvaWQpCit7CisgICBHTyhTWVNfcHJpdnN5cywgIihQUklWU1lTX1BGRVhFQ19SRUcpIDJzIDBtIik7CisgICBTWShTWVNfcHJpdnN5cywgeDAgKyBQUklWU1lTX1BGRVhFQ19SRUcsIHgwIC0gMSk7IEZBSUx4KEVCQURGKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3ByaXZzeXM4KHZvaWQpCit7CisgICBHTyhTWVNfcHJpdnN5cywgIihQUklWU1lTX1BGRVhFQ19VTlJFRykgMnMgMG0iKTsKKyAgIFNZKFNZU19wcml2c3lzLCB4MCArIFBSSVZTWVNfUEZFWEVDX1VOUkVHLCB4MCAtIDEpOyBGQUlMeChFQkFERik7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c191Y3JlZHN5cyh2b2lkKQoreworICAgR08oU1lTX3VjcmVkc3lzLCAiKFVDUkVEU1lTX1VDUkVER0VUKSAzcyAxbSIpOworICAgU1koU1lTX3VjcmVkc3lzLCB4MCArIDAsIHgwLCB4MCArIDEgKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3VjcmVkc3lzMih2b2lkKQoreworICAgR08oU1lTX3VjcmVkc3lzLCAiKFVDUkVEU1lTX0dFVFBFRVJVQ1JFRCkgM3MgMW0iKTsKKyAgIFNZKFNZU191Y3JlZHN5cywgeDAgKyAxLCB4MCAtIDEsIHgwICsgMSApOyBGQUlMeChFQkFERik7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19jb250ZXh0KHZvaWQpCit7CisgICBHTyhTWVNfY29udGV4dCwgIihHRVRDT05URVhUKSAycyAxbSIpOworICAgU1koU1lTX2NvbnRleHQsIHgwICsgR0VUQ09OVEVYVCwgeDApOyBGQUlMeChFRkFVTFQpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfY29udGV4dDIodm9pZCkKK3sKKyAgIC8qIFRoZSBzZXRjb250ZXh0KCkgd3JhcHBlciBoYXMgdG8gY2FsbCBNTF8oc2FmZV90b19kZXJlZikgYmVmb3JlIGRvaW5nIHRoZQorICAgICAgUFJFX1JFQURfKigpIHN0dWZmLCB0aGVyZWZvcmUgdGhlIDBtIHBhcmFtZXRlci4gKi8KKyAgIEdPKFNZU19jb250ZXh0LCAiKFNFVENPTlRFWFQpIDJzIDBtIik7CisgICBTWShTWVNfY29udGV4dCwgeDAgKyBTRVRDT05URVhULCB4MCArIDEpOyBGQUlMeChFRkFVTFQpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfY29udGV4dDModm9pZCkKK3sKKyAgIEdPKFNZU19jb250ZXh0LCAiKEdFVFVTVEFDSykgMnMgMW0iKTsKKyAgIFNZKFNZU19jb250ZXh0LCB4MCArIEdFVFVTVEFDSywgeDApOyBGQUlMeChFRkFVTFQpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfY29udGV4dDQodm9pZCkKK3sKKyAgIEdPKFNZU19jb250ZXh0LCAiKFNFVFVTVEFDSykgMnMgMW0iKTsKKyAgIFNZKFNZU19jb250ZXh0LCB4MCArIFNFVFVTVEFDSywgeDApOyBGQUlMeChFRkFVTFQpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc3RhdHZmcyh2b2lkKQoreworICAgR08oU1lTX3N0YXR2ZnMsICIycyAybSIpOworICAgU1koU1lTX3N0YXR2ZnMsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIGludCBzeXNfc3RhdHZmczIodm9pZCkKK3sKKyAgIGNvbnN0IGNoYXIgcGF0aFtdID0gIi8iOworICAgc3RydWN0IHN0YXR2ZnMgc3RhdHM7CisKKyAgIEdPKFNZU19zdGF0dmZzLCAiNHMgMG0iKTsKKyAgIFNZKFNZU19zdGF0dmZzLCB4MCArIHBhdGgsIHgwICsgJnN0YXRzKTsgU1VDQzsKKworICAgc2l6ZV90IGJhc2V0eXBlX2xlbiA9IHN0cmxlbihzdGF0cy5mX2Jhc2V0eXBlKTsKKyAgIHNpemVfdCBmc3RyX2xlbiA9IHN0cmxlbihzdGF0cy5mX2ZzdHIpOworCisgICAvKiBOb3cgY2hlY2sgdGhhdCBtZW1vcnkgYWZ0ZXIgdGhlIHN0cmluZ3MgaXMgcmVwb3J0ZWQgdW5pbml0aWFsaXplZC4gKi8KKyAgIGludCB4ID0gMDsKKyAgIGlmIChzdGF0cy5mX2Jhc2V0eXBlW2Jhc2V0eXBlX2xlbiArIDJdICE9ICcgJykgeCA9IC0xOyBlbHNlIHggPSAtMjsKKyAgIGlmIChzdGF0cy5mX2ZzdHJbZnN0cl9sZW4gKyAyXSAhPSAnICcpIHggPSAtMzsgZWxzZSB4ID0gLTQ7CisgICByZXR1cm4geDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX25mc3N5cyh2b2lkKQoreworICAgR08oU1lTX25mc3N5cywgIihORlNfUkVWQVVUSCkgMnMgMW0iKTsKKyAgIFNZKFNZU19uZnNzeXMsIHgwICsgTkZTX1JFVkFVVEgsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3ByaW9jbnRsc3lzKHZvaWQpCit7CisgICBwY2luZm9fdCBwY2luZm87CisgICBwY2luZm8ucGNfY2xuYW1lWzBdID0geDAgKyAnVCc7CisgICBwY2luZm8ucGNfY2xuYW1lWzFdID0geDAgKyAnUyc7CisgICBwY2luZm8ucGNfY2xuYW1lWzJdID0geDA7CisKKyAgIEdPKFNZU19wcmlvY250bHN5cywgIihHRVRDSUQpIDZzIDBtIik7CisgICBTWShTWVNfcHJpb2NudGxzeXMsIHgwICsgMSwgeDAsIHgwICsgUENfR0VUQ0lELCB4MCArICZwY2luZm8sIHgwKTsgU1VDQzsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3ByaW9jbnRsc3lzMih2b2lkKQoreworICAgcGNpbmZvX3QgcGNpbmZvOworICAgcGNpbmZvLnBjX2NpZCA9IHgwICsgMTsKKworICAgR08oU1lTX3ByaW9jbnRsc3lzLCAiKEdFVENMSU5GTykgNnMgMG0iKTsKKyAgIFNZKFNZU19wcmlvY250bHN5cywgeDAgKyAxLCB4MCwgeDAgKyBQQ19HRVRDTElORk8sIHgwICsgJnBjaW5mbywgeDApOyBTVUNDOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpb2NudGxzeXMzKHZvaWQpCit7CisgICBHTyhTWVNfcHJpb2NudGxzeXMsICIoU0VUUEFSTVMpIDVzIDJtIik7CisgICBTWShTWVNfcHJpb2NudGxzeXMsIHgwICsgMSwgeDAsIHgwICsgUENfU0VUUEFSTVMsIHgwLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wcmlvY250bHN5czQodm9pZCkKK3sKKyAgIEdPKFNZU19wcmlvY250bHN5cywgIihHRVRQQVJNUykgNXMgMm0iKTsKKyAgIFNZKFNZU19wcmlvY250bHN5cywgeDAgKyAxLCB4MCwgeDAgKyBQQ19HRVRQQVJNUywgeDAsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3ByaW9jbnRsc3lzNSh2b2lkKQoreworICAgR08oU1lTX3ByaW9jbnRsc3lzLCAiKEdFVFBSSVJBTkdFKSA1cyAybSIpOworICAgU1koU1lTX3ByaW9jbnRsc3lzLCB4MCArIDEsIHgwLCB4MCArIFBDX0dFVFBSSVJBTkdFLCB4MCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpb2NudGxzeXM2KHZvaWQpCit7CisgICBHTyhTWVNfcHJpb2NudGxzeXMsICIoRE9OSUNFKSA1cyAybSIpOworICAgU1koU1lTX3ByaW9jbnRsc3lzLCB4MCArIDEsIHgwLCB4MCArIFBDX0RPTklDRSwgeDAsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3ByaW9jbnRsc3lzNyh2b2lkKQoreworICAgR08oU1lTX3ByaW9jbnRsc3lzLCAiKFNFVFhQQVJNUykgNXMgM20iKTsKKyAgIFNZKFNZU19wcmlvY250bHN5cywgeDAgKyAxLCB4MCwgeDAgKyBQQ19TRVRYUEFSTVMsIHgwLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpb2NudGxzeXM4KHZvaWQpCit7CisgICBHTyhTWVNfcHJpb2NudGxzeXMsICIoR0VUWFBBUk1TKSA1cyAzbSIpOworICAgU1koU1lTX3ByaW9jbnRsc3lzLCB4MCArIDEsIHgwLCB4MCArIFBDX0dFVFhQQVJNUywgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpb2NudGxzeXM5KHZvaWQpCit7CisgICBHTyhTWVNfcHJpb2NudGxzeXMsICIoU0VUREZMQ0wpIDVzIDFtIik7CisgICBTWShTWVNfcHJpb2NudGxzeXMsIHgwICsgMSwgeDAsIHgwICsgUENfU0VUREZMQ0wsIHgwLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wcmlvY250bHN5czEwKHZvaWQpCit7CisgICBHTyhTWVNfcHJpb2NudGxzeXMsICIoR0VUREZMQ0wpIDVzIDFtIik7CisgICBTWShTWVNfcHJpb2NudGxzeXMsIHgwICsgMSwgeDAsIHgwICsgUENfR0VUREZMQ0wsIHgwICsgMSwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHJpb2NudGxzeXMxMSh2b2lkKQoreworICAgR08oU1lTX3ByaW9jbnRsc3lzLCAiKERPUFJJTykgNXMgMm0iKTsKKyAgIFNZKFNZU19wcmlvY250bHN5cywgeDAgKyAxLCB4MCwgeDAgKyBQQ19ET1BSSU8sIHgwLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c191bmFtZSh2b2lkKQoreworICAgR08oU1lTX3VuYW1lLCAiMXMgMW0iKTsKKyAgIFNZKFNZU191bmFtZSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIGludCBzeXNfdW5hbWUyKHZvaWQpCit7CisgICBzdHJ1Y3QgdXRzbmFtZSBuYW1lOworCisgICBHTyhTWVNfdW5hbWUsICI2cyAwbSIpOworICAgU1koU1lTX3VuYW1lLCB4MCArICZuYW1lKTsgU1VDQzsKKworICAgc2l6ZV90IHN5c25hbWVfbGVuID0gc3RybGVuKG5hbWUuc3lzbmFtZSk7CisgICBzaXplX3Qgbm9kZW5hbWVfbGVuID0gc3RybGVuKG5hbWUubm9kZW5hbWUpOworICAgc2l6ZV90IHJlbGVhc2VfbGVuID0gc3RybGVuKG5hbWUucmVsZWFzZSk7CisgICBzaXplX3QgdmVyc2lvbl9sZW4gPSBzdHJsZW4obmFtZS52ZXJzaW9uKTsKKyAgIHNpemVfdCBtYWNoaW5lX2xlbiA9IHN0cmxlbihuYW1lLm1hY2hpbmUpOworCisgICAvKiBOb3cgY2hlY2sgdGhhdCBtZW1vcnkgYWZ0ZXIgdGhlIHN0cmluZ3MgaXMgcmVwb3J0ZWQgdW5pbml0aWFsaXplZC4gKi8KKyAgIGludCB4ID0gMDsKKyAgIGlmIChuYW1lLnN5c25hbWVbc3lzbmFtZV9sZW4gKyAyXSAhPSAnICcpIHggPSAtMTsgZWxzZSB4ID0gLTI7CisgICBpZiAobmFtZS5ub2RlbmFtZVtub2RlbmFtZV9sZW4gKyAyXSAhPSAnICcpIHggPSAtMzsgZWxzZSB4ID0gLTQ7CisgICBpZiAobmFtZS5yZWxlYXNlW3JlbGVhc2VfbGVuICsgMl0gIT0gJyAnKSB4ID0gLTU7IGVsc2UgeCA9IC02OworICAgaWYgKG5hbWUudmVyc2lvblt2ZXJzaW9uX2xlbiArIDJdICE9ICcgJykgeCA9IC03OyBlbHNlIHggPSAtODsKKyAgIGlmIChuYW1lLm1hY2hpbmVbbWFjaGluZV9sZW4gKyAyXSAhPSAnICcpIHggPSAtOTsgZWxzZSB4ID0gLTEwOworICAgcmV0dXJuIHg7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19ydXNhZ2VzeXModm9pZCkKK3sKKyAgIEdPKFNZU19ydXNhZ2VzeXMsICIoX1JVU0FHRVNZU19HRVRSVVNBR0UpIDJzIDFtIik7CisgICBTWShTWVNfcnVzYWdlc3lzLCB4MCArIF9SVVNBR0VTWVNfR0VUUlVTQUdFLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcnVzYWdlc3lzMih2b2lkKQoreworICAgR08oU1lTX3J1c2FnZXN5cywgIihfUlVTQUdFU1lTX0dFVFJVU0FHRV9DSExEKSAycyAxbSIpOworICAgU1koU1lTX3J1c2FnZXN5cywgeDAgKyBfUlVTQUdFU1lTX0dFVFJVU0FHRV9DSExELCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcnVzYWdlc3lzMyh2b2lkKQoreworICAgR08oU1lTX3J1c2FnZXN5cywgIihfUlVTQUdFU1lTX0dFVFJVU0FHRV9MV1ApIDJzIDFtIik7CisgICBTWShTWVNfcnVzYWdlc3lzLCB4MCArIF9SVVNBR0VTWVNfR0VUUlVTQUdFX0xXUCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3J1c2FnZXN5czQodm9pZCkKK3sKKyAgIEdPKFNZU19ydXNhZ2VzeXMsICIoX1JVU0FHRVNZU19HRVRWTVVTQUdFKSA1cyAxbSIpOworICAgU1koU1lTX3J1c2FnZXN5cywgeDAgKyBfUlVTQUdFU1lTX0dFVFZNVVNBR0UsIHgwLCB4MCwgeDAgKyAxLCB4MCArIDEpOworICAgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3J1c2FnZXN5czUodm9pZCkKK3sKKyAgIHNpemVfdCBucmVzID0gMTA7CisKKyAgIEdPKFNZU19ydXNhZ2VzeXMsICIoX1JVU0FHRVNZU19HRVRWTVVTQUdFKSA1cyAxbSIpOworICAgU1koU1lTX3J1c2FnZXN5cywgeDAgKyBfUlVTQUdFU1lTX0dFVFZNVVNBR0UsIHgwLCB4MCwgeDAgKyAxLCB4MCArICZucmVzKTsKKyAgIEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wb3J0KHZvaWQpCit7CisgICBHTyhTWVNfcG9ydCwgIihQT1JUX0NSRUFURSkgMXMgMG0iKTsKKyAgIFNZKFNZU19wb3J0LCAoeDAgKyBQT1JUX0NSRUFURSkgfCBQT1JUX1NZU19OT1BPUlQpOyBTVUNDOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcG9ydDIodm9pZCkKK3sKKyAgIEdPKFNZU19wb3J0LCAiKFBPUlRfQVNTT0NJQVRFLFBPUlRfU09VUkNFX0ZEKSA2cyAwbSIpOworICAgU1koU1lTX3BvcnQsIHgwICsgUE9SVF9BU1NPQ0lBVEUsIHgwIC0gMSwgeDAgKyBQT1JUX1NPVVJDRV9GRCwgeDAsIHgwLAorICAgICAgICAgICAgICAgIHgwKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcG9ydDModm9pZCkKK3sKKyAgIEdPKFNZU19wb3J0LCAiKFBPUlRfQVNTT0NJQVRFLFBPUlRfU09VUkNFX0ZJTEUpIDZzIDFtIik7CisgICBTWShTWVNfcG9ydCwgeDAgKyBQT1JUX0FTU09DSUFURSwgeDAgLSAxLCB4MCArIFBPUlRfU09VUkNFX0ZJTEUsIHgwLCB4MCwKKyAgICAgICAgICAgICAgICB4MCk7IEZBSUx4KEVCQURGKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3BvcnQ0KHZvaWQpCit7CisgICBHTyhTWVNfcG9ydCwgIihQT1JUX0RJU1NPQ0lBVEUsUE9SVF9TT1VSQ0VfRkQpIDZzIDBtIik7CisgICBTWShTWVNfcG9ydCwgeDAgKyBQT1JUX0RJU1NPQ0lBVEUsIHgwIC0gMSwgeDAgKyBQT1JUX1NPVVJDRV9GRCwgeDAsIHgwLAorICAgICAgICAgICAgICAgIHgwKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcG9ydDUodm9pZCkKK3sKKyAgIEdPKFNZU19wb3J0LCAiKFBPUlRfRElTU09DSUFURSxQT1JUX1NPVVJDRV9GSUxFKSA2cyAxbSIpOworICAgU1koU1lTX3BvcnQsIHgwICsgUE9SVF9ESVNTT0NJQVRFLCB4MCAtIDEsIHgwICsgUE9SVF9TT1VSQ0VfRklMRSwgeDAsIHgwLAorICAgICAgICAgICAgICAgIHgwKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcG9ydDYodm9pZCkKK3sKKyAgIEdPKFNZU19wb3J0LCAiKFBPUlRfU0VORCkgNHMgMG0iKTsKKyAgIFNZKFNZU19wb3J0LCB4MCArIFBPUlRfU0VORCwgeDAgLSAxLCB4MCwgeDApOyBGQUlMeChFQkFERik7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wb3J0Nyh2b2lkKQoreworICAgR08oU1lTX3BvcnQsICIoUE9SVF9TRU5ETikgNnMgMm0iKTsKKyAgIFNZKFNZU19wb3J0LCAoeDAgKyBQT1JUX1NFTkROKSB8IFBPUlRfU1lTX05PUE9SVCwgeDAsIHgwLCB4MCArIDEsIHgwLAorICAgICAgICAgICAgICAgIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3BvcnQ4KHZvaWQpCit7CisgICBHTyhTWVNfcG9ydCwgIihQT1JUX0dFVCkgNnMgMW0iKTsKKyAgIFNZKFNZU19wb3J0LCB4MCArIFBPUlRfR0VULCB4MCAtIDEsIHgwLCB4MCwgeDAsIHgwKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcG9ydDkodm9pZCkKK3sKKyAgIEdPKFNZU19wb3J0LCAiKFBPUlRfR0VUTikgNXMgMm0iKTsKKyAgIFNZKFNZU19wb3J0LCB4MCArIFBPUlRfR0VUTiwgeDAgLSAxLCB4MCwgeDAgKyAxLCB4MCwgeDAgKyAxKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcG9ydDEwKHZvaWQpCit7CisgICBHTyhTWVNfcG9ydCwgIihQT1JUX0FMRVJUKSA1cyAwbSIpOworICAgU1koU1lTX3BvcnQsIHgwICsgUE9SVF9BTEVSVCwgeDAgLSAxLCB4MCwgeDAsIHgwKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcG9ydDExKHZvaWQpCit7CisgICBHTyhTWVNfcG9ydCwgIihQT1JUX0RJU1BBVENIKSA2cyAwbSIpOworICAgU1koU1lTX3BvcnQsIHgwICsgUE9SVF9ESVNQQVRDSCwgeDAgLSAxLCB4MCwgeDAsIHgwLCB4MCk7IEZBSUx4KEVCQURGKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2xhYmVsc3lzKHZvaWQpCit7CisgICBHTyhTWVNfbGFiZWxzeXMsICIoVFNPTF9TWVNMQUJFTElORykgMXMgMG0iKTsKKyAgIFNZKFNZU19sYWJlbHN5cywgeDAgKyBUU09MX1NZU0xBQkVMSU5HKTsgU1VDQzsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2xhYmVsc3lzMih2b2lkKQoreworICAgR08oU1lTX2xhYmVsc3lzLCAiKFRTT0xfVE5SSCkgM3MgMW0iKTsKKyAgIFNZKFNZU19sYWJlbHN5cywgeDAgKyBUU09MX1ROUkgsIHgwICsgVE5EQl9HRVQsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19sYWJlbHN5czModm9pZCkKK3sKKyAgIEdPKFNZU19sYWJlbHN5cywgIihUU09MX1ROUkhUUCkgM3MgMW0iKTsKKyAgIFNZKFNZU19sYWJlbHN5cywgeDAgKyBUU09MX1ROUkhUUCwgeDAgKyBUTkRCX0dFVCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2xhYmVsc3lzNCh2b2lkKQoreworICAgR08oU1lTX2xhYmVsc3lzLCAiKFRTT0xfVE5NTFApIDNzIDFtIik7CisgICBTWShTWVNfbGFiZWxzeXMsIHgwICsgVFNPTF9UTk1MUCwgeDAgKyBUTkRCX0dFVCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2xhYmVsc3lzNSh2b2lkKQoreworICAgR08oU1lTX2xhYmVsc3lzLCAiKFRTT0xfR0VUTEFCRUwpIDNzIDJtIik7CisgICBTWShTWVNfbGFiZWxzeXMsIHgwICsgVFNPTF9HRVRMQUJFTCwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfbGFiZWxzeXM2KHZvaWQpCit7CisgICBHTyhTWVNfbGFiZWxzeXMsICIoVFNPTF9GR0VUTEFCRUwpIDNzIDFtIik7CisgICBTWShTWVNfbGFiZWxzeXMsIHgwICsgVFNPTF9GR0VUTEFCRUwsIHgwIC0gMSwgeDAgKyAxKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYWNsKHZvaWQpCit7CisgICBHTyhTWVNfYWNsLCAiKFNFVEFDTCkgNHMgMm0iKTsKKyAgIFNZKFNZU19hY2wsIHgwLCB4MCArIFNFVEFDTCwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYWNsMih2b2lkKQoreworICAgR08oU1lTX2FjbCwgIihHRVRBQ0wpIDRzIDJtIik7CisgICBTWShTWVNfYWNsLCB4MCwgeDAgKyBHRVRBQ0wsIHgwICsgMSwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYWNsMyh2b2lkKQoreworICAgR08oU1lTX2FjbCwgIihHRVRBQ0xDTlQpIDRzIDFtIik7CisgICBTWShTWVNfYWNsLCB4MCwgeDAgKyBHRVRBQ0xDTlQsIHgwLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hY2w0KHZvaWQpCit7CisgICBHTyhTWVNfYWNsLCAiKEFDRV9TRVRBQ0wpIDRzIDJtIik7CisgICBTWShTWVNfYWNsLCB4MCwgeDAgKyBBQ0VfU0VUQUNMLCB4MCArIDEsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hY2w1KHZvaWQpCit7CisgICBHTyhTWVNfYWNsLCAiKEFDRV9HRVRBQ0wpIDRzIDJtIik7CisgICBTWShTWVNfYWNsLCB4MCwgeDAgKyBBQ0VfR0VUQUNMLCB4MCArIDEsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2FjbDYodm9pZCkKK3sKKyAgIEdPKFNZU19hY2wsICIoQUNFX0dFVEFDTENOVCkgNHMgMW0iKTsKKyAgIFNZKFNZU19hY2wsIHgwLCB4MCArIEFDRV9HRVRBQ0xDTlQsIHgwLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5cyh2b2lkKQoreworICAgR08oU1lTX2F1ZGl0c3lzLCAiKEJTTV9HRVRBVUlEKSAycyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9HRVRBVUlELCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5czIodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fU0VUQVVJRCkgMnMgMW0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fU0VUQVVJRCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXMzKHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0dFVEFVRElUKSAycyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9HRVRBVURJVCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXM0KHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX1NFVEFVRElUKSAycyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9TRVRBVURJVCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXM1KHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUKSAzcyAxbSIpOworICAgLyogVGhlIGZvbGxvd2luZyBzeXNjYWxsIGNhbiBzdWNjZWVkIGlmIGF1ZGl0aW5nIGlzIG5vdCBlbmFibGVkLiAqLworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVCwgeDAsIHgwICsgMSk7IC8qRkFJTDsqLworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXM2KHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUQ1RMLEFfR0VUUE9MSUNZKSAzcyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVENUTCwgeDAgKyBBX0dFVFBPTElDWSwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXM3KHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUQ1RMLEFfU0VUUE9MSUNZKSAzcyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVENUTCwgeDAgKyBBX1NFVFBPTElDWSwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXM4KHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUQ1RMLEFfR0VUS01BU0spIDNzIDFtIik7CisgICBTWShTWVNfYXVkaXRzeXMsIHgwICsgQlNNX0FVRElUQ1RMLCB4MCArIEFfR0VUS01BU0ssIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzOSh2b2lkKQoreworICAgR08oU1lTX2F1ZGl0c3lzLCAiKEJTTV9BVURJVENUTCxBX1NFVEtNQVNLKSAzcyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVENUTCwgeDAgKyBBX1NFVEtNQVNLLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5czEwKHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUQ1RMLEFfR0VUUUNUUkwpIDNzIDFtIik7CisgICBTWShTWVNfYXVkaXRzeXMsIHgwICsgQlNNX0FVRElUQ1RMLCB4MCArIEFfR0VUUUNUUkwsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMTEodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9TRVRRQ1RSTCkgM3MgMW0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9TRVRRQ1RSTCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMTIodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9HRVRDV0QpIDRzIDFtIik7CisgICBTWShTWVNfYXVkaXRzeXMsIHgwICsgQlNNX0FVRElUQ1RMLCB4MCArIEFfR0VUQ1dELCB4MCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMTModm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9HRVRDQVIpIDRzIDFtIik7CisgICBTWShTWVNfYXVkaXRzeXMsIHgwICsgQlNNX0FVRElUQ1RMLCB4MCArIEFfR0VUQ0FSLCB4MCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMTQodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9HRVRTVEFUKSAzcyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVENUTCwgeDAgKyBBX0dFVFNUQVQsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMTUodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9TRVRTVEFUKSAzcyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVENUTCwgeDAgKyBBX1NFVFNUQVQsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMTYodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9TRVRVTUFTSykgM3MgMW0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9TRVRVTUFTSywgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXMxNyh2b2lkKQoreworICAgR08oU1lTX2F1ZGl0c3lzLCAiKEJTTV9BVURJVENUTCxBX1NFVFNNQVNLKSAzcyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVENUTCwgeDAgKyBBX1NFVFNNQVNLLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5czE4KHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUQ1RMLEFfR0VUQ09ORCkgM3MgMW0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9HRVRDT05ELCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5czE5KHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUQ1RMLEFfU0VUQ09ORCkgM3MgMW0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9TRVRDT05ELCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5czIwKHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUQ1RMLEFfR0VUQ0xBU1MpIDNzIDBtIik7CisgICBTWShTWVNfYXVkaXRzeXMsIHgwICsgQlNNX0FVRElUQ1RMLCB4MCArIEFfR0VUQ0xBU1MsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMjEodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9TRVRDTEFTUykgM3MgMG0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9TRVRDTEFTUywgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMjIodm9pZCkKK3sKKyAgIGF1X2V2Y2xhc3NfbWFwX3QgY2xhc3NtYXA7CisgICBjbGFzc21hcC5lY19udW1iZXIgPSB4MDsKKyAgIGNsYXNzbWFwLmVjX2NsYXNzID0geDA7CisKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9TRVRDTEFTUykgNHMgMG0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9TRVRDTEFTUywgJmNsYXNzbWFwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMjModm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9HRVRQSU5GTykgM3MgMG0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9HRVRQSU5GTywgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXMyNCh2b2lkKQoreworICAgR08oU1lTX2F1ZGl0c3lzLCAiKEJTTV9BVURJVENUTCxBX1NFVFBNQVNLKSAzcyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVENUTCwgeDAgKyBBX1NFVFBNQVNLLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5czI1KHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElUQ1RMLEFfR0VUUElORk9fQUREUikgNHMgMG0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9HRVRQSU5GT19BRERSLCB4MCwKKyAgICAgICAgICAgICAgICAgICAgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMjYodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9HRVRLQVVESVQpIDRzIDFtIik7CisgICBTWShTWVNfYXVkaXRzeXMsIHgwICsgQlNNX0FVRElUQ1RMLCB4MCArIEFfR0VUS0FVRElULCB4MCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMjcodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9TRVRLQVVESVQpIDRzIDFtIik7CisgICBTWShTWVNfYXVkaXRzeXMsIHgwICsgQlNNX0FVRElUQ1RMLCB4MCArIEFfU0VUS0FVRElULCB4MCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMjgodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fQVVESVRDVEwsQV9HRVRBTUFTSykgM3MgMW0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRDVEwsIHgwICsgQV9HRVRBTUFTSywgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfYXVkaXRzeXMyOSh2b2lkKQoreworICAgR08oU1lTX2F1ZGl0c3lzLCAiKEJTTV9BVURJVENUTCxBX1NFVEFNQVNLKSAzcyAxbSIpOworICAgU1koU1lTX2F1ZGl0c3lzLCB4MCArIEJTTV9BVURJVENUTCwgeDAgKyBBX1NFVEFNQVNLLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5czMwKHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0dFVEFVRElUX0FERFIpIDNzIDFtIik7CisgICBTWShTWVNfYXVkaXRzeXMsIHgwICsgQlNNX0dFVEFVRElUX0FERFIsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2F1ZGl0c3lzMzEodm9pZCkKK3sKKyAgIEdPKFNZU19hdWRpdHN5cywgIihCU01fU0VUQVVESVRfQUREUikgM3MgMW0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fU0VUQVVESVRfQUREUiwgeDAsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19hdWRpdHN5czMyKHZvaWQpCit7CisgICBHTyhTWVNfYXVkaXRzeXMsICIoQlNNX0FVRElURE9PUikgMnMgMG0iKTsKKyAgIFNZKFNZU19hdWRpdHN5cywgeDAgKyBCU01fQVVESVRET09SLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c190aW1lcl9jcmVhdGUodm9pZCkKK3sKKyAgIEdPKFNZU190aW1lcl9jcmVhdGUsICIzcyA0bSIpOworICAgU1koU1lTX3RpbWVyX2NyZWF0ZSwgeDAsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3RpbWVyX2NyZWF0ZTIodm9pZCkKK3sKKyAgIHN0cnVjdCBzaWdldmVudCBldnA7CisgICBldnAuc2lnZXZfbm90aWZ5ID0geDAgKyBTSUdFVl9USFJFQUQ7CisgICBldnAuc2lnZXZfdmFsdWUuc2l2YWxfcHRyID0gKHZvaWQgKikoeDAgKyAxKTsKKworICAgR08oU1lTX3RpbWVyX2NyZWF0ZSwgIjVzIDJtIik7CisgICBTWShTWVNfdGltZXJfY3JlYXRlLCB4MCwgJmV2cCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2ZhY2wodm9pZCkKK3sKKyAgIEdPKFNZU19mYWNsLCAiKFNFVEFDTCkgNHMgMW0iKTsKKyAgIFNZKFNZU19mYWNsLCB4MCAtIDEsIHgwICsgU0VUQUNMLCB4MCArIDEsIHgwICsgMSk7IEZBSUx4KEVCQURGKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2ZhY2wyKHZvaWQpCit7CisgICBHTyhTWVNfZmFjbCwgIihHRVRBQ0wpIDRzIDFtIik7CisgICBTWShTWVNfZmFjbCwgeDAgLSAxLCB4MCArIEdFVEFDTCwgeDAgKyAxLCB4MCk7IEZBSUx4KEVCQURGKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2ZhY2wzKHZvaWQpCit7CisgICBHTyhTWVNfZmFjbCwgIihHRVRBQ0xDTlQpIDRzIDBtIik7CisgICBTWShTWVNfZmFjbCwgeDAgLSAxLCB4MCArIEdFVEFDTENOVCwgeDAsIHgwKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfZmFjbDQodm9pZCkKK3sKKyAgIEdPKFNZU19mYWNsLCAiKEFDRV9TRVRBQ0wpIDRzIDFtIik7CisgICBTWShTWVNfZmFjbCwgeDAgLSAxLCB4MCArIEFDRV9TRVRBQ0wsIHgwICsgMSwgeDAgKyAxKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfZmFjbDUodm9pZCkKK3sKKyAgIEdPKFNZU19mYWNsLCAiKEFDRV9HRVRBQ0wpIDRzIDFtIik7CisgICBTWShTWVNfZmFjbCwgeDAgLSAxLCB4MCArIEFDRV9HRVRBQ0wsIHgwICsgMSwgeDApOyBGQUlMeChFQkFERik7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19mYWNsNih2b2lkKQoreworICAgR08oU1lTX2ZhY2wsICIoQUNFX0dFVEFDTENOVCkgNHMgMG0iKTsKKyAgIFNZKFNZU19mYWNsLCB4MCAtIDEsIHgwICsgQUNFX0dFVEFDTENOVCwgeDAsIHgwKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfZG9vcih2b2lkKQoreworICAgR08oU1lTX2Rvb3IsICIoRE9PUl9DUkVBVEUpIDRzIDBtIik7CisgICBTWShTWVNfZG9vciwgeDAsIHgwLCB4MCwgeDAsIHgwLCB4MCArIERPT1JfQ1JFQVRFKTsgU1VDQzsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2Rvb3IyKHZvaWQpCit7CisgICBHTyhTWVNfZG9vciwgIihET09SX1JFVk9LRSkgMnMgMG0iKTsKKyAgIFNZKFNZU19kb29yLCB4MCwgeDAsIHgwLCB4MCwgeDAsIHgwICsgRE9PUl9SRVZPS0UpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfZG9vcjModm9pZCkKK3sKKyAgIEdPKFNZU19kb29yLCAiKERPT1JfSU5GTykgM3MgMW0iKTsKKyAgIFNZKFNZU19kb29yLCB4MCwgeDAgLSAxLCB4MCwgeDAsIHgwLCB4MCArIERPT1JfSU5GTyk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19kb29yNCh2b2lkKQoreworICAgR08oU1lTX2Rvb3IsICIoRE9PUl9DQUxMKSAzcyA2bSIpOworICAgU1koU1lTX2Rvb3IsIHgwIC0gMSwgeDAsIHgwLCB4MCwgeDAsIHgwICsgRE9PUl9DQUxMKTsgRkFJTHgoRUJBREYpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfZG9vcjUodm9pZCkKK3sKKyAgIGRvb3JfYXJnX3QgcGFyYW1zOworICAgcGFyYW1zLmRhdGFfcHRyID0gKHZvaWQgKikoeDAgKyAxKTsKKyAgIHBhcmFtcy5kYXRhX3NpemUgPSB4MCArIDE7CisgICBwYXJhbXMuZGVzY19wdHIgPSAodm9pZCAqKSh4MCArIDEpOworICAgcGFyYW1zLmRlc2NfbnVtID0geDAgKyAxOworICAgcGFyYW1zLnJidWYgPSAodm9pZCAqKSh4MCArIDEpOworICAgcGFyYW1zLnJzaXplID0geDAgKyAxOworCisgICBHTyhTWVNfZG9vciwgIihET09SX0NBTEwpIDlzIDJtIik7CisgICBTWShTWVNfZG9vciwgeDAsIHgwICsgJnBhcmFtcywgeDAsIHgwLCB4MCwgeDAgKyBET09SX0NBTEwpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHNldCh2b2lkKQoreworICAgR08oU1lTX3BzZXQsICIoQ1JFQVRFKSAycyAxbSIpOworICAgU1koU1lTX3BzZXQsIHgwICsgUFNFVF9DUkVBVEUsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wc2V0Mih2b2lkKQoreworICAgR08oU1lTX3BzZXQsICIoREVTVFJPWSkgMnMgMG0iKTsKKyAgIFNZKFNZU19wc2V0LCB4MCArIFBTRVRfREVTVFJPWSwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHNldDModm9pZCkKK3sKKyAgIEdPKFNZU19wc2V0LCAiKEFTU0lHTikgNHMgMW0iKTsKKyAgIFNZKFNZU19wc2V0LCB4MCArIFBTRVRfQVNTSUdOLCB4MCArIDEsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3BzZXQ0KHZvaWQpCit7CisgICBHTyhTWVNfcHNldCwgIihJTkZPKSA1cyAzbSIpOworICAgU1koU1lTX3BzZXQsIHgwICsgUFNFVF9JTkZPLCB4MCArIDEsIHgwICsgMSwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHNldDUodm9pZCkKK3sKKyAgIGludCB0eXBlOworICAgdWludF90IG51bWNwdXMgPSB4MCArIDE7CisKKyAgIEdPKFNZU19wc2V0LCAiKElORk8pIDVzIDFtIik7CisgICBTWShTWVNfcHNldCwgeDAgKyBQU0VUX0lORk8sIHgwICsgMSwgeDAgKyAmdHlwZSwgeDAgKyAmbnVtY3B1cywKKyAgICAgIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wc2V0Nih2b2lkKQoreworICAgR08oU1lTX3BzZXQsICIoQklORCkgNXMgMW0iKTsKKyAgIFNZKFNZU19wc2V0LCB4MCArIFBTRVRfQklORCwgeDAgKyAxLCB4MCArIDEsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3BzZXQ3KHZvaWQpCit7CisgICBHTyhTWVNfcHNldCwgIihCSU5EX0xXUCkgNXMgMW0iKTsKKyAgIFNZKFNZU19wc2V0LCB4MCArIFBTRVRfQklORF9MV1AsIHgwICsgMSwgeDAgKyAxLCB4MCArIDEsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wc2V0OCh2b2lkKQoreworICAgR08oU1lTX3BzZXQsICIoR0VUTE9BREFWRykgNHMgMW0iKTsKKyAgIFNZKFNZU19wc2V0LCB4MCArIFBTRVRfR0VUTE9BREFWRywgeDAgKyAxLCB4MCArIDEsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19wc2V0OSh2b2lkKQoreworICAgR08oU1lTX3BzZXQsICIoTElTVCkgM3MgMW0iKTsKKyAgIFNZKFNZU19wc2V0LCB4MCArIFBTRVRfTElTVCwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHNldDEwKHZvaWQpCit7CisgICB1aW50X3QgbnVtcHNldHMgPSB4MCArIDE7CisKKyAgIEdPKFNZU19wc2V0LCAiKExJU1QpIDNzIDFtIik7CisgICBTWShTWVNfcHNldCwgeDAgKyBQU0VUX0xJU1QsIHgwICsgMSwgeDAgKyAmbnVtcHNldHMpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHNldDExKHZvaWQpCit7CisgICBHTyhTWVNfcHNldCwgIihTRVRBVFRSKSAzcyAwbSIpOworICAgU1koU1lTX3BzZXQsIHgwICsgUFNFVF9TRVRBVFRSLCB4MCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfcHNldDEyKHZvaWQpCit7CisgICBHTyhTWVNfcHNldCwgIihHRVRBVFRSKSAzcyAxbSIpOworICAgU1koU1lTX3BzZXQsIHgwICsgUFNFVF9HRVRBVFRSLCB4MCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3BzZXQxMyh2b2lkKQoreworICAgR08oU1lTX3BzZXQsICIoQVNTSUdOX0ZPUkNFRCkgNHMgMW0iKTsKKyAgIFNZKFNZU19wc2V0LCB4MCArIFBTRVRfQVNTSUdOX0ZPUkNFRCwgeDAgKyAxLCB4MCArIDEsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19sd3Bfcndsb2NrKHZvaWQpCit7CisgICBHTyhTWVNfbHdwX3J3bG9ja19zeXMsICIoUkRMT0NLKSAzcyA4bSIpOworICAgU1koU1lTX2x3cF9yd2xvY2tfc3lzLCB4MCwgeDAsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19sd3Bfcndsb2NrMih2b2lkKQoreworICAgR08oU1lTX2x3cF9yd2xvY2tfc3lzLCAiKFdSTE9DSykgM3MgOG0iKTsKKyAgIFNZKFNZU19sd3Bfcndsb2NrX3N5cywgeDAgKyAxLCB4MCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2x3cF9yd2xvY2szKHZvaWQpCit7CisgICBHTyhTWVNfbHdwX3J3bG9ja19zeXMsICIoVFJZUkRMT0NLKSAycyA3bSIpOworICAgU1koU1lTX2x3cF9yd2xvY2tfc3lzLCB4MCArIDIsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2x3cF9yd2xvY2s0KHZvaWQpCit7CisgICBHTyhTWVNfbHdwX3J3bG9ja19zeXMsICIoVFJZV1JMT0NLKSAycyA3bSIpOworICAgU1koU1lTX2x3cF9yd2xvY2tfc3lzLCB4MCArIDMsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2x3cF9yd2xvY2s1KHZvaWQpCit7CisgICBHTyhTWVNfbHdwX3J3bG9ja19zeXMsICIoVU5MT0NLKSAycyAybSIpOworICAgU1koU1lTX2x3cF9yd2xvY2tfc3lzLCB4MCArIDQsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3pvbmUodm9pZCkKK3sKKyAgIEdPKFNZU196b25lLCAiKFpPTkVfQ1JFQVRFKSAycyAxMm0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfQ1JFQVRFLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c196b25lMih2b2lkKQoreworICAgem9uZV9kZWYgemQ7CisgICB6ZC56b25lX25hbWUgPSAodm9pZCAqKSh4MCArIDEpOworICAgemQuem9uZV9yb290ID0gKHZvaWQgKikoeDAgKyAxKTsKKyAgIHpkLnpvbmVfcHJpdnMgPSAodm9pZCAqKXgwOworICAgemQuem9uZV9wcml2c3N6ID0geDAgKyAxOworICAgemQucmN0bGJ1ZiA9ICh2b2lkICopeDA7CisgICB6ZC5yY3RsYnVmc3ogPSB4MCArIDE7CisgICB6ZC5leHRlbmRlZF9lcnJvciA9ICh2b2lkICopeDA7CisgICB6ZC56ZnNidWYgPSAodm9pZCAqKXgwOworICAgemQuemZzYnVmc3ogPSB4MCArIDE7CisgICB6ZC5tYXRjaCA9IHgwOworICAgemQuZG9pID0geDA7CisgICB6ZC5sYWJlbCA9ICh2b2lkICopKHgwICsgMSk7CisgICB6ZC5mbGFncyA9IHgwOworCisgICBHTyhTWVNfem9uZSwgIihjcmVhdGUpIDJzIDE5bSIpOworICAgU1koU1lTX3pvbmUsIHgwICsgWk9ORV9DUkVBVEUsIHgwICsgJnpkKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3pvbmUzKHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0RFU1RST1kpIDJzIDBtIik7CisgICBTWShTWVNfem9uZSwgeDAgKyBaT05FX0RFU1RST1ksIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3pvbmU0KHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0dFVEFUVFIpIDVzIDFtIik7CisgICBTWShTWVNfem9uZSwgeDAgKyBaT05FX0dFVEFUVFIsIHgwLCB4MCwgeDAsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c196b25lNSh2b2lkKQoreworICAgR08oU1lTX3pvbmUsICIoWk9ORV9FTlRFUikgMnMgMG0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfRU5URVIsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3pvbmU2KHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0xJU1QpIDNzIDFtIik7CisgICBTWShTWVNfem9uZSwgeDAgKyBaT05FX0xJU1QsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3pvbmU3KHZvaWQpCit7CisgICB1aW50X3QgbnVtem9uZXMgPSB4MCArIDE7CisKKyAgIEdPKFNZU196b25lLCAiKFpPTkVfTElTVCkgM3MgMW0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfTElTVCwgeDAgKyAxLCB4MCArICZudW16b25lcyk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c196b25lOCh2b2lkKQoreworICAgR08oU1lTX3pvbmUsICIoWk9ORV9TSFVURE9XTikgMnMgMG0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfU0hVVERPV04sIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3pvbmU5KHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0xPT0tVUCkgMnMgMW0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfTE9PS1VQLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfem9uZTEwKHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0JPT1QpIDJzIDBtIik7CisgICBTWShTWVNfem9uZSwgeDAgKyBaT05FX0JPT1QsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3pvbmUxMSh2b2lkKQoreworICAgR08oU1lTX3pvbmUsICIoWk9ORV9TRVRBVFRSKSA1cyAxbSIpOworICAgU1koU1lTX3pvbmUsIHgwICsgWk9ORV9TRVRBVFRSLCB4MCwgeDAsIHgwLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfem9uZTEyKHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0FERF9EQVRBTElOSykgM3MgMG0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfQUREX0RBVEFMSU5LLCB4MCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfem9uZTEzKHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0RFTF9EQVRBTElOSykgM3MgMG0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfREVMX0RBVEFMSU5LLCB4MCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfem9uZTE0KHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0NIRUNLX0RBVEFMSU5LKSAzcyAxbSIpOworICAgU1koU1lTX3pvbmUsIHgwICsgWk9ORV9DSEVDS19EQVRBTElOSywgeDAsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3pvbmUxNSh2b2lkKQoreworICAgR08oU1lTX3pvbmUsICIoWk9ORV9MSVNUX0RBVEFMSU5LKSA0cyAxbSIpOworICAgU1koU1lTX3pvbmUsIHgwICsgWk9ORV9MSVNUX0RBVEFMSU5LLCB4MCwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfem9uZTE2KHZvaWQpCit7CisgICBpbnQgZGxudW0gPSB4MCArIDE7CisKKyAgIEdPKFNZU196b25lLCAiKFpPTkVfTElTVF9EQVRBTElOSykgNHMgMW0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfTElTVF9EQVRBTElOSywgeDAsIHgwICsgJmRsbnVtLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfZ2V0cGVlcm5hbWUodm9pZCkKK3sKKyAgIEdPKFNZU19nZXRwZWVybmFtZSwgIjRzIDFtIik7CisgICBTWShTWVNfZ2V0cGVlcm5hbWUsIHgwIC0gMSwgeDAgKyAxLCB4MCwgeDApOyBGQUlMeChFQkFERik7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19nZXRwZWVybmFtZTIodm9pZCkKK3sKKyAgIHNvY2tsZW5fdCBzaXplID0geDAgKyAxMDsKKworICAgR08oU1lTX2dldHBlZXJuYW1lLCAiNHMgMW0iKTsKKyAgIFNZKFNZU19nZXRwZWVybmFtZSwgeDAgLSAxLCB4MCArIDEsICZzaXplLCB4MCk7IEZBSUx4KEVCQURGKTsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGxvbmcgKnB4ID0gbWFsbG9jKHNpemVvZihsb25nKSk7CisgICB4MCA9IHB4WzBdOworCisgICAvKiBTWVNfc3lzY2FsbCAgICAgICAgICAgICAgICAgMCAqLworICAgLyogU1BBUkMgb25seS4gKi8KKworICAgLyogU1lTX2V4aXQgICAgICAgICAgICAgICAgICAgIDEgKi8KKyAgIC8qIFRlc3RlZCBiZWxvdy4gKi8KKworICAgLyogU1lTX3JlYWQgICAgICAgICAgICAgICAgICAgIDMgKi8KKyAgIEdPKFNZU19yZWFkLCAiM3MgMG0iKTsKKyAgIFNZKFNZU19yZWFkLCB4MCAtIDEsIHgwLCB4MCArIDEpOyBGQUlMeChFQkFERik7CisgICAvKiBOb3RlIHRoYXQgYWJvdmUgc2hvdWxkIGJlIHByZWZlcmFibHkgIjNzIDFtIiB0ZXN0Li4gKi8KKworICAgLyogU1lTX3dyaXRlICAgICAgICAgICAgICAgICAgIDQgKi8KKyAgIEdPKFNZU193cml0ZSwgIjNzIDFtIik7CisgICBTWShTWVNfd3JpdGUsIHgwICsgMSwgeDAsIHgwICsgMSk7IEZBSUw7CisKKyAgIC8qIFNZU19vcGVuICAgICAgICAgICAgICAgICAgICA1ICovCisgICAvKiBUZXN0ZWQgaW4gc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIC8qIFNZU19jbG9zZSAgICAgICAgICAgICAgICAgICA2ICovCisgICBHTyhTWVNfY2xvc2UsICIxcyAwbSIpOworICAgU1koU1lTX2Nsb3NlLCB4MCAtIDEpOyBGQUlMeChFQkFERik7CisKKyAgIC8qIFNZU19saW5rYXQgICAgICAgICAgICAgICAgICA3ICovCisgICBHTyhTWVNfbGlua2F0LCAiNXMgMm0iKTsKKyAgIFNZKFNZU19saW5rYXQsIHgwIC0gMSwgeDAgKyAxLCB4MCAtIDEsIHgwICsgMSwgeDApOyBGQUlMOworCisgICAvKiBTWVNfbGluayAgICAgICAgICAgICAgICAgICAgOSAqLworICAgLyogVGVzdGVkIGluIHNjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfdW5saW5rICAgICAgICAgICAgICAgICAxMCAqLworICAgLyogVGVzdGVkIGluIHNjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfc3ltbGlua2F0ICAgICAgICAgICAgICAxMSAqLworICAgR08oU1lTX3N5bWxpbmthdCwgIjNzIDJtIik7CisgICBTWShTWVNfc3ltbGlua2F0LCB4MCArIDEsIHgwIC0gMSwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX2NoZGlyICAgICAgICAgICAgICAgICAgMTIgKi8KKyAgIEdPKFNZU19jaGRpciwgIjFzIDFtIik7CisgICBTWShTWVNfY2hkaXIsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3RpbWUgICAgICAgICAgICAgICAgICAgMTMgKi8KKyAgIEdPKFNZU190aW1lLCAiMHMgMG0iKTsKKyAgIFNZKFNZU190aW1lKTsgU1VDQzsKKworICAgLyogU1lTX21rbm9kICAgICAgICAgICAgICAgICAgMTQgKi8KKyAgIC8qIFRlc3RlZCBpbiBzY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX2NobW9kICAgICAgICAgICAgICAgICAgMTUgKi8KKyAgIC8qIFRlc3RlZCBpbiBzY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX2Nob3duICAgICAgICAgICAgICAgICAgMTYgKi8KKyAgIC8qIFRlc3RlZCBpbiBzY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX2JyayAgICAgICAgICAgICAgICAgICAgMTcgKi8KKyAgIEdPKFNZU19icmssICIxcyAwbSIpOworICAgU1koU1lTX2JyaywgeDApOyBTVUNDOworCisgICAvKiBTWVNfc3RhdCAgICAgICAgICAgICAgICAgICAxOCAqLworICAgLyogVGVzdGVkIGluIHNjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfbHNlZWsgICAgICAgICAgICAgICAgICAxOSAqLworICAgR08oU1lTX2xzZWVrLCAiM3MgMG0iKTsKKyAgIFNZKFNZU19sc2VlaywgeDAgLSAxLCB4MCwgeDApOyBGQUlMeChFQkFERik7CisKKyAgIC8qIFNZU19nZXRwaWQgICAgICAgICAgICAgICAgIDIwICovCisgICBHTyhTWVNfZ2V0cGlkLCAiMHMgMG0iKTsKKyAgIFNZKFNZU19nZXRwaWQpOyBTVUNDOworCisgICAvKiBTWVNfbW91bnQgICAgICAgICAgICAgICAgICAyMSAqLworICAgc3lzX21vdW50KCk7CisgICBzeXNfbW91bnQyKCk7CisgICBzeXNfbW91bnQzKCk7CisgICBzeXNfbW91bnQ0KCk7CisKKyAgIC8qIFNZU19yZWFkbGlua2F0ICAgICAgICAgICAgIDIyICovCisgICBHTyhTWVNfcmVhZGxpbmthdCwgIjRzIDJtIik7CisgICBTWShTWVNfcmVhZGxpbmthdCwgeDAgLSAxLCB4MCwgeDAsIHgwICsgMSk7IEZBSUw7CisKKyAgIC8qIFNZU19zZXR1aWQgICAgICAgICAgICAgICAgIDIzICovCisgICBHTyhTWVNfc2V0dWlkLCAiMXMgMG0iKTsKKyAgIFNZKFNZU19zZXR1aWQsIHgwIC0gMSk7IEZBSUw7CisKKyAgIC8qIFNZU19nZXR1aWQgICAgICAgICAgICAgICAgIDI0ICovCisgICBHTyhTWVNfZ2V0dWlkLCAiMHMgMG0iKTsKKyAgIFNZKFNZU19nZXR1aWQpOyBTVUNDOworCisgICAvKiBTWVNfc3RpbWUgICAgICAgICAgICAgICAgICAyNSAqLworICAgR08oU1lTX3N0aW1lLCAiMXMgMG0iKTsKKyAgIFNZKFNZU19zdGltZSwgeDApOyBGQUlMOworCisgICAvKiBTWVNfcGNzYW1wbGUgICAgICAgICAgICAgICAyNiAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX2FsYXJtICAgICAgICAgICAgICAgICAgMjcgKi8KKyAgIEdPKFNZU19hbGFybSwgIjFzIDBtIik7CisgICBTWShTWVNfYWxhcm0sIHgwKTsgU1VDQzsKKworICAgLyogU1lTX2ZzdGF0ICAgICAgICAgICAgICAgICAgMjggKi8KKyAgIC8qIFRlc3RlZCBpbiBzY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX3BhdXNlICAgICAgICAgICAgICAgICAgMjkgKi8KKyAgIC8qIERvbid0IGJvdGhlciB0byB0ZXN0IHRoaXMuICovCisgICBHTyhTWVNfcGF1c2UsICJpZ25vcmUiKTsKKworICAgLyogU1lTX3N0dHkgICAgICAgICAgICAgICAgICAgMzEgKi8KKyAgIEdPKFNZU19zdHR5LCAiMnMgMW0iKTsKKyAgIFNZKFNZU19zdHR5LCB4MCAtIDEsIHgwICsgMSk7IEZBSUw7CisKKyAgIC8qIFNZU19ndHR5ICAgICAgICAgICAgICAgICAgIDMyICovCisgICBHTyhTWVNfZ3R0eSwgIjJzIDFtIik7CisgICBTWShTWVNfZ3R0eSwgeDAgLSAxLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfYWNjZXNzICAgICAgICAgICAgICAgICAzMyAqLworICAgLyogVGVzdGVkIGluIHNjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfbmljZSAgICAgICAgICAgICAgICAgICAzNCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3N0YXRmcyAgICAgICAgICAgICAgICAgMzUgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19zeW5jICAgICAgICAgICAgICAgICAgIDM2ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfa2lsbCAgICAgICAgICAgICAgICAgICAzNyAqLworICAgR08oU1lTX2tpbGwsICIycyAwbSIpOworICAgU1koU1lTX2tpbGwsIHgwLCB4MCk7IFNVQ0M7CisKKyAgIC8qIFNZU19mc3RhdGZzICAgICAgICAgICAgICAgIDM4ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfcGdycHN5cyAgICAgICAgICAgICAgICAzOSAqLworICAgc3lzX3BncnBzeXMoKTsKKyAgIHN5c19wZ3Jwc3lzMigpOworICAgc3lzX3BncnBzeXMzKCk7CisKKyAgIC8qIFNZU191dWNvcHlzdHIgICAgICAgICAgICAgIDQwICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfcGlwZSAgICAgICAgICAgICAgICAgICA0MiAqLworICAgLyogRG9uJ3QgYm90aGVyIHRvIHRlc3QgdGhpcy4gKi8KKyAgIEdPKFNZU19waXBlLCAiaWdub3JlIik7CisKKyAgIC8qIFNZU190aW1lcyAgICAgICAgICAgICAgICAgIDQzICovCisgICBHTyhTWVNfdGltZXMsICIxcyAxbSIpOworICAgU1koU1lTX3RpbWVzLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfcHJvZmlsICAgICAgICAgICAgICAgICA0NCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX2ZhY2Nlc3NhdCAgICAgICAgICAgICAgNDUgKi8KKyAgIEdPKFNZU19mYWNjZXNzYXQsICI0cyAxbSIpOworICAgU1koU1lTX2ZhY2Nlc3NhdCwgeDAgLSAxLCB4MCArIDEsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19zZXRnaWQgICAgICAgICAgICAgICAgIDQ2ICovCisgICBHTyhTWVNfc2V0Z2lkLCAiMXMgMG0iKTsKKyAgIFNZKFNZU19zZXRnaWQsIHgwIC0gMSk7IEZBSUw7CisKKyAgIC8qIFNZU19nZXRnaWQgICAgICAgICAgICAgICAgIDQ3ICovCisgICBHTyhTWVNfZ2V0Z2lkLCAiMHMgMG0iKTsKKyAgIFNZKFNZU19nZXRnaWQpOyBTVUNDOworCisgICAvKiBTWVNfbWtub2RhdCAgICAgICAgICAgICAgICA0OCAqLworICAgR08oU1lTX21rbm9kYXQsICI0cyAxbSIpOworICAgU1koU1lTX21rbm9kYXQsIHgwIC0gMSwgeDAgKyAxLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfbXNnc3lzICAgICAgICAgICAgICAgICA0OSAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3N5c2k4NiAgICAgICAgICAgICAgICAgNTAgKi8KKyAgIC8qIFRPRE8gQWRkIHRlc3QuICovCisgICBHTyhTWVNfc3lzaTg2LCAiaW5jb21pbmciKTsKKworICAgLyogU1lTX2FjY3QgICAgICAgICAgICAgICAgICAgNTEgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19zaG1zeXMgICAgICAgICAgICAgICAgIDUyICovCisgICBzeXNfc2htc3lzKCk7CisgICBzeXNfc2htc3lzMigpOworICAgc3lzX3NobXN5czMoKTsKKyAgIHN5c19zaG1zeXM0KCk7CisgICBzeXNfc2htc3lzNSgpOworICAgc3lzX3NobXN5czYoKTsKKyAgIHN5c19zaG1zeXM3KCk7CisgICBzeXNfc2htc3lzOCgpOworICAgc3lzX3NobXN5czkoKTsKKyAgIHN5c19zaG1zeXMxMCgpOworICAgc3lzX3NobXN5czExKCk7CisgICBzeXNfc2htc3lzMTIoKTsKKyAgIHN5c19zaG1zeXMxMygpOworCisgICAvKiBTWVNfc2Vtc3lzICAgICAgICAgICAgICAgICA1MyAqLworICAgc3lzX3NlbXN5cygpOworICAgc3lzX3NlbXN5czIoKTsKKyAgIHN5c19zZW1zeXMzKCk7CisgICBzeXNfc2Vtc3lzNCgpOworICAgc3lzX3NlbXN5czUoKTsKKyAgIHN5c19zZW1zeXM2KCk7CisgICBzeXNfc2Vtc3lzNygpOworICAgc3lzX3NlbXN5czgoKTsKKyAgIHN5c19zZW1zeXM5KCk7CisgICBzeXNfc2Vtc3lzMTAoKTsKKyAgIHN5c19zZW1zeXMxMSgpOworICAgc3lzX3NlbXN5czEyKCk7CisgICBzeXNfc2Vtc3lzMTMoKTsKKyAgIHN5c19zZW1zeXMxNCgpOworICAgc3lzX3NlbXN5czE1KCk7CisgICBzeXNfc2Vtc3lzMTYoKTsKKworICAgLyogU1lTX2lvY3RsICAgICAgICAgICAgICAgICAgNTQgKi8KKyAgIEdPKFNZU19pb2N0bCwgIjNzIDFtIik7CisgICBTWShTWVNfaW9jdGwsIHgwLCB4MCArIFRDR0VUUywgeDApOyBGQUlMOworCisgICAvKiBTWVNfdWFkbWluICAgICAgICAgICAgICAgICA1NSAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX2ZjaG93bmF0ICAgICAgICAgICAgICAgNTYgKi8KKyAgIEdPKFNZU19mY2hvd25hdCwgIjVzIDFtIik7CisgICBTWShTWVNfZmNob3duYXQsIHgwIC0gMSwgeDAgKyAxLCB4MCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3V0c3N5cyAgICAgICAgICAgICAgICAgNTcgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19mZHN5bmMgICAgICAgICAgICAgICAgIDU4ICovCisgICBHTyhTWVNfZmRzeW5jLCAiMnMgMG0iKTsKKyAgIFNZKFNZU19mZHN5bmMsIHgwIC0gMSwgeDApOyBGQUlMeChFQkFERik7CisKKyAgIC8qIFNZU19leGVjdmUgICAgICAgICAgICAgICAgIDU5ICovCisgICAvKiBpbGx1bW9zIGlnbm9yZXMgdGhlIGZvdXJ0aCBhcmd1bWVudC4gKi8KKyAgIEdPKFNZU19leGVjdmUsICIzcyAxbSIpOworICAgU1koU1lTX2V4ZWN2ZSwgeDAsIHgwLCB4MCwgMCk7IEZBSUw7CisgICAvKiBNb3JlIGNhc2VzIHRlc3RlZCBpbiBleGVjeC5jICovCisKKyAgIC8qIFNZU191bWFzayAgICAgICAgICAgICAgICAgIDYwICovCisgICBHTyhTWVNfdW1hc2ssICIxcyAwbSIpOworICAgU1koU1lTX3VtYXNrLCB4MCArIDAyMik7IFNVQ0M7CisKKyAgIC8qIFNZU19jaHJvb3QgICAgICAgICAgICAgICAgIDYxICovCisgICBHTyhTWVNfY2hyb290LCAiMXMgMW0iKTsKKyAgIFNZKFNZU19jaHJvb3QsIHgwICsgMSk7IEZBSUw7CisKKyAgIC8qIFNZU19mY250bCAgICAgICAgICAgICAgICAgIDYyICovCisgICBzeXNfZmNudGwoKTsKKyAgIHN5c19mY250bDIoKTsKKyAgIHN5c19mY250bDMoKTsKKworICAgLyogU1lTX3VsaW1pdCAgICAgICAgICAgICAgICAgNjMgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19yZW5hbWVhdCAgICAgICAgICAgICAgIDY0ICovCisgICBHTyhTWVNfcmVuYW1lYXQsICI0cyAybSIpOworICAgU1koU1lTX3JlbmFtZWF0LCB4MCAtIDEsIHgwLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfdW5saW5rYXQgICAgICAgICAgICAgICA2NSAqLworICAgR08oU1lTX3VubGlua2F0LCAiM3MgMW0iKTsKKyAgIFNZKFNZU191bmxpbmthdCwgeDAgLSAxLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfZnN0YXRhdCAgICAgICAgICAgICAgICA2NiAqLworICAgR08oU1lTX2ZzdGF0YXQsICI0cyAybSIpOworICAgU1koU1lTX2ZzdGF0YXQsIHgwIC0gMSwgeDAgKyAxLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfZnN0YXRhdDY0ICAgICAgICAgICAgICA2NyAqLworICAgLyogVGVzdGVkIGluIHg4Ni1zb2xhcmlzL3NjYWxhci5jLiAqLworCisgICAvKiBTWVNfb3BlbmF0ICAgICAgICAgICAgICAgICA2OCAqLworICAgc3lzX29wZW5hdCgpOworICAgc3lzX29wZW5hdDIoKTsKKworICAgLyogU1lTX29wZW5hdDY0ICAgICAgICAgICAgICAgNjkgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX3Rhc2tzeXMgICAgICAgICAgICAgICAgNzAgKi8KKyAgIHN5c190YXNrc3lzKCk7CisgICBzeXNfdGFza3N5czIoKTsKKyAgIHN5c190YXNrc3lzMygpOworICAgc3lzX3Rhc2tzeXM0KCk7CisKKyAgIC8qIFNZU19hY2N0Y3RsICAgICAgICAgICAgICAgIDcxICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfZXhhY2N0c3lzICAgICAgICAgICAgICA3MiAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX2dldHBhZ2VzaXplcyAgICAgICAgICAgNzMgKi8KKyAgIEdPKFNZU19nZXRwYWdlc2l6ZXMsICIzcyAxbSIpOworICAgU1koU1lTX2dldHBhZ2VzaXplcywgeDAsIHgwICsgMSwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX3JjdGxzeXMgICAgICAgICAgICAgICAgNzQgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19zaWRzeXMgICAgICAgICAgICAgICAgIDc1ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfbHdwX3BhcmsgICAgICAgICAgICAgICA3NyAqLworICAgLyogRG9uJ3QgYm90aGVyIHRvIHRlc3QgdGhpcy4gKi8KKyAgIEdPKFNZU19sd3BfcGFyaywgImlnbm9yZSIpOworCisgICAvKiBTWVNfc2VuZGZpbGV2ICAgICAgICAgICAgICA3OCAqLworICAgc3lzX3NlbmRmaWxldigpOworICAgc3lzX3NlbmRmaWxldjIoKTsKKyAgIHN5c19zZW5kZmlsZXYzKCk7CisgICBzeXNfc2VuZGZpbGV2NCgpOworCisgICAvKiBTWVNfcm1kaXIgICAgICAgICAgICAgICAgICA3OSAqLworICAgLyogVGVzdGVkIGluIHNjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfbWtkaXIgICAgICAgICAgICAgICAgICA4MCAqLworICAgLyogVGVzdGVkIGluIHNjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfZ2V0ZGVudHMgICAgICAgICAgICAgICA4MSAqLworICAgR08oU1lTX2dldGRlbnRzLCAiM3MgMW0iKTsKKyAgIFNZKFNZU19nZXRkZW50cywgeDAsIHgwLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfUHJpdnN5cyAgICAgICAgICAgICAgICA4MiAqLworICAgc3lzX3ByaXZzeXMoKTsKKyAgIHN5c19wcml2c3lzMigpOworICAgc3lzX3ByaXZzeXMzKCk7CisgICBzeXNfcHJpdnN5czQoKTsKKyAgIHN5c19wcml2c3lzNSgpOworICAgc3lzX3ByaXZzeXM2KCk7CisgICBzeXNfcHJpdnN5czcoKTsKKyAgIHN5c19wcml2c3lzOCgpOworCisgICAvKiBTWVNfdWNyZWRzeXMgICAgICAgICAgICAgICA4MyAqLworICAgc3lzX3VjcmVkc3lzKCk7CisgICBzeXNfdWNyZWRzeXMyKCk7CisKKyAgIC8qIFNZU19zeXNmcyAgICAgICAgICAgICAgICAgIDg0ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfZ2V0bXNnICAgICAgICAgICAgICAgICA4NSAqLworICAgR08oU1lTX2dldG1zZywgIjRzIDFtIik7CisgICBTWShTWVNfZ2V0bXNnLCB4MCwgeDAsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19wdXRtc2cgICAgICAgICAgICAgICAgIDg2ICovCisgICBHTyhTWVNfcHV0bXNnLCAiNHMgMG0iKTsKKyAgIFNZKFNZU19wdXRtc2csIHgwLCB4MCwgeDAsIHgwKTsKKworICAgLyogU1lTX2xzdGF0ICAgICAgICAgICAgICAgICAgODggKi8KKyAgIC8qIFRlc3RlZCBpbiBzY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX3N5bWxpbmsgICAgICAgICAgICAgICAgODkgKi8KKyAgIC8qIFRlc3RlZCBpbiBzY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX3JlYWRsaW5rICAgICAgICAgICAgICAgOTAgKi8KKyAgIC8qIFRlc3RlZCBpbiBzY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX3NldGdyb3VwcyAgICAgICAgICAgICAgOTEgKi8KKyAgIEdPKFNZU19zZXRncm91cHMsICIycyAxbSIpOworICAgU1koU1lTX3NldGdyb3VwcywgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfZ2V0Z3JvdXBzICAgICAgICAgICAgICA5MiAqLworICAgR08oU1lTX2dldGdyb3VwcywgIjJzIDFtIik7CisgICBTWShTWVNfZ2V0Z3JvdXBzLCB4MCArIDEsIHgwICsgMSk7IEZBSUw7CisKKyAgIC8qIFNZU19mY2htb2QgICAgICAgICAgICAgICAgIDkzICovCisgICAvKiBUZXN0ZWQgaW4gc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIC8qIFNZU19mY2hvd24gICAgICAgICAgICAgICAgIDk0ICovCisgICAvKiBUZXN0ZWQgaW4gc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIC8qIFNZU19zaWdwcm9jbWFzayAgICAgICAgICAgIDk1ICovCisgICBHTyhTWVNfc2lncHJvY21hc2ssICIzcyAybSIpOworICAgU1koU1lTX3NpZ3Byb2NtYXNrLCB4MCwgeDAgKyAxLCB4MCArIDEpOyBGQUlMeChFRkFVTFQpOworCisgICAvKiBTWVNfc2lnc3VzcGVuZCAgICAgICAgICAgICA5NiAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3NpZ2FsdHN0YWNrICAgICAgICAgICAgOTcgKi8KKyAgIEdPKFNZU19zaWdhbHRzdGFjaywgIjJzIDJtIik7CisgICBTWShTWVNfc2lnYWx0c3RhY2ssIHgwICsgMSwgeDAgKyAxKTsgRkFJTHgoRUZBVUxUKTsKKworICAgLyogU1lTX3NpZ2FjdGlvbiAgICAgICAgICAgICAgOTggKi8KKyAgIEdPKFNZU19zaWdhY3Rpb24sICIzcyA0bSIpOworICAgU1koU1lTX3NpZ2FjdGlvbiwgeDAsIHgwICsgMSwgeDAgKyAxKTsgRkFJTHgoRUZBVUxUKTsKKworICAgLyogU1lTX3NpZ3BlbmRpbmcgICAgICAgICAgICAgOTkgKi8KKyAgIEdPKFNZU19zaWdwZW5kaW5nLCAiMnMgMW0iKTsKKyAgIFNZKFNZU19zaWdwZW5kaW5nLCB4MCwgeDAgKyAxKTsKKworICAgLyogU1lTX2NvbnRleHQgICAgICAgICAgICAgICAxMDAgKi8KKyAgIHN5c19jb250ZXh0KCk7CisgICBzeXNfY29udGV4dDIoKTsKKyAgIHN5c19jb250ZXh0MygpOworICAgc3lzX2NvbnRleHQ0KCk7CisKKyAgIC8qIFNZU19mY2htb2RhdCAgICAgICAgICAgICAgMTAxICovCisgICBHTyhTWVNfZmNobW9kYXQsICI0cyAxbSIpOworICAgU1koU1lTX2ZjaG1vZGF0LCB4MCAtIDEsIHgwICsgMSwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX21rZGlyYXQgICAgICAgICAgICAgICAxMDIgKi8KKyAgIEdPKFNZU19ta2RpcmF0LCAiM3MgMW0iKTsKKyAgIFNZKFNZU19ta2RpcmF0LCB4MCAtIDEsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19zdGF0dmZzICAgICAgICAgICAgICAgMTAzICovCisgICBzeXNfc3RhdHZmcygpOworICAgc3lzX3N0YXR2ZnMyKCk7CisKKyAgIC8qIFNZU19mc3RhdHZmcyAgICAgICAgICAgICAgMTA0ICovCisgICBHTyhTWVNfZnN0YXR2ZnMsICIycyAxbSIpOworICAgU1koU1lTX2ZzdGF0dmZzLCB4MCAtIDEsIHgwICsgMSk7IEZBSUx4KEVCQURGKTsKKworICAgLyogU1lTX2dldGxvYWRhdmcgICAgICAgICAgICAxMDUgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19uZnNzeXMgICAgICAgICAgICAgICAgMTA2ICovCisgICBzeXNfbmZzc3lzKCk7CisgICAvKiA6VE9ETzogQWRkIHRlc3QgY2FzZXMgd2hlbiBvdGhlciBvcGNvZGVzIGFyZSBpbXBsZW1lbnRlZC4gKi8KKworICAgLyogU1lTX3dhaXRpZCAgICAgICAgICAgICAgICAxMDcgKi8KKyAgIEdPKFNZU193YWl0aWQsICI0cyAxbSIpOworICAgU1koU1lTX3dhaXRpZCwgeDAgLSAxLCB4MCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3NpZ3NlbmRzeXMgICAgICAgICAgICAxMDggKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19ocnRzeXMgICAgICAgICAgICAgICAgMTA5ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfdXRpbWVzeXMgICAgICAgICAgICAgIDExMCAqLworICAgLyogU1lTX3V0aW1lbnNhdCAgICAgICAgICAgICAxMTAgKi8KKyAgIC8qIFRlc3RlZCBpbiBzY2FsYXJfdXRpbWVzeXMgYW5kIHNjYWxhcl91dGltZW5zYXQuICovCisKKyAgIC8qIFNZU19zaWdyZXNlbmQgICAgICAgICAgICAgMTExICovCisgICBHTyhTWVNfc2lncmVzZW5kLCAiM3MgMm0iKTsKKyAgIFNZKFNZU19zaWdyZXNlbmQsIHgwLCB4MCArIDEsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3ByaW9jbnRsc3lzICAgICAgICAgICAxMTIgKi8KKyAgIHN5c19wcmlvY250bHN5cygpOworICAgc3lzX3ByaW9jbnRsc3lzMigpOworICAgc3lzX3ByaW9jbnRsc3lzMygpOworICAgc3lzX3ByaW9jbnRsc3lzNCgpOworICAgc3lzX3ByaW9jbnRsc3lzNSgpOworICAgc3lzX3ByaW9jbnRsc3lzNigpOworICAgc3lzX3ByaW9jbnRsc3lzNygpOworICAgc3lzX3ByaW9jbnRsc3lzOCgpOworICAgc3lzX3ByaW9jbnRsc3lzOSgpOworICAgc3lzX3ByaW9jbnRsc3lzMTAoKTsKKyAgIHN5c19wcmlvY250bHN5czExKCk7CisKKyAgIC8qIFNZU19wYXRoY29uZiAgICAgICAgICAgICAgMTEzICovCisgICBHTyhTWVNfcGF0aGNvbmYsICIycyAxbSIpOworICAgU1koU1lTX3BhdGhjb25mLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfbWluY29yZSAgICAgICAgICAgICAgIDExNCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX21tYXAgICAgICAgICAgICAgICAgICAxMTUgKi8KKyAgIEdPKFNZU19tbWFwLCAiNnMgMG0iKTsKKyAgIFNZKFNZU19tbWFwLCB4MCwgeDAsIHgwLCB4MCwgeDAsIHgwKTsgRkFJTHgoRUlOVkFMKTsKKworICAgLyogU1lTX21wcm90ZWN0ICAgICAgICAgICAgICAxMTYgKi8KKyAgIEdPKFNZU19tcHJvdGVjdCwgIjNzIDBtIik7CisgICBTWShTWVNfbXByb3RlY3QsIHgwLCB4MCwgeDApOyBGQUlMeChFSU5WQUwpOworCisgICAvKiBTWVNfbXVubWFwICAgICAgICAgICAgICAgIDExNyAqLworICAgR08oU1lTX211bm1hcCwgIjJzIDBtIik7CisgICBTWShTWVNfbXVubWFwLCB4MCwgeDApOyBGQUlMeChFSU5WQUwpOworCisgICAvKiBTWVNfZnBhdGhjb25mICAgICAgICAgICAgIDExOCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3Zmb3JrICAgICAgICAgICAgICAgICAxMTkgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19mY2hkaXIgICAgICAgICAgICAgICAgMTIwICovCisgICBHTyhTWVNfZmNoZGlyLCAiMXMgMG0iKTsKKyAgIFNZKFNZU19mY2hkaXIsIHgwIC0gMSk7IEZBSUx4KEVCQURGKTsKKworICAgLyogU1lTX3JlYWR2ICAgICAgICAgICAgICAgICAxMjEgKi8KKyAgIEdPKFNZU19yZWFkdiwgIjNzIDFtIik7CisgICBTWShTWVNfcmVhZHYsIHgwLCB4MCwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX3dyaXRldiAgICAgICAgICAgICAgICAxMjIgKi8KKyAgIEdPKFNZU193cml0ZXYsICIzcyAxbSIpOworICAgU1koU1lTX3dyaXRldiwgeDAsIHgwLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfbW1hcG9iaiAgICAgICAgICAgICAgIDEyNyAqLworICAgR08oU1lTX21tYXBvYmosICI1cyAybSIpOworICAgU1koU1lTX21tYXBvYmosIHgwIC0gMSwgeDAgfCBNTU9CSl9QQURESU5HLCB4MCwgeDAsIHgwKTsgRkFJTHgoRUJBREYpOworCisgICAvKiBTWVNfc2V0cmxpbWl0ICAgICAgICAgICAgIDEyOCAqLworICAgR08oU1lTX3NldHJsaW1pdCwgIjJzIDFtIik7CisgICBTWShTWVNfc2V0cmxpbWl0LCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfZ2V0cmxpbWl0ICAgICAgICAgICAgIDEyOSAqLworICAgR08oU1lTX2dldHJsaW1pdCwgIjJzIDFtIik7CisgICBTWShTWVNfZ2V0cmxpbWl0LCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfbGNob3duICAgICAgICAgICAgICAgIDEzMCAqLworICAgLyogVGVzdGVkIGluIHNjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfbWVtY250bCAgICAgICAgICAgICAgIDEzMSAqLworICAgR08oU1lTX21lbWNudGwsICI2cyAxbSIpOworICAgU1koU1lTX21lbWNudGwsIHgwLCB4MCwgeDAgfCBNQ19IQVRfQURWSVNFLCB4MCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2dldHBtc2cgICAgICAgICAgICAgICAxMzIgKi8KKyAgIEdPKFNZU19nZXRwbXNnLCAiNXMgMm0iKTsKKyAgIFNZKFNZU19nZXRwbXNnLCB4MCwgeDAsIHgwLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfcHV0cG1zZyAgICAgICAgICAgICAgIDEzMyAqLworICAgR08oU1lTX3B1dHBtc2csICI1cyAwbSIpOworICAgU1koU1lTX3B1dHBtc2csIHgwLCB4MCwgeDAsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19yZW5hbWUgICAgICAgICAgICAgICAgMTM0ICovCisgICAvKiBUZXN0ZWQgaW4gc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIC8qIFNZU191bmFtZSAgICAgICAgICAgICAgICAgMTM1ICovCisgICBzeXNfdW5hbWUoKTsKKyAgIHN5c191bmFtZTIoKTsKKworICAgLyogU1lTX3NldGVnaWQgICAgICAgICAgICAgICAxMzYgKi8KKyAgIEdPKFNZU19zZXRlZ2lkLCAiMXMgMG0iKTsKKyAgIFNZKFNZU19zZXRlZ2lkLCB4MCAtIDEpOyBGQUlMOworCisgICAvKiBTWVNfc3lzY29uZmlnICAgICAgICAgICAgIDEzNyAqLworICAgR08oU1lTX3N5c2NvbmZpZywgIjFzIDBtIik7CisgICBTWShTWVNfc3lzY29uZmlnLCB4MCAtIDEpOyBGQUlMOworCisgICAvKiBTWVNfYWRqdGltZSAgICAgICAgICAgICAgIDEzOCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3N5c3RlbWluZm8gICAgICAgICAgICAxMzkgKi8KKyAgIEdPKFNZU19zeXN0ZW1pbmZvLCAiM3MgMW0iKTsKKyAgIFNZKFNZU19zeXN0ZW1pbmZvLCB4MCArIDEsIHgwLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfc2hhcmVmcyAgICAgICAgICAgICAgIDE0MCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3NldGV1aWQgICAgICAgICAgICAgICAxNDEgKi8KKyAgIEdPKFNZU19zZXRldWlkLCAiMXMgMG0iKTsKKyAgIFNZKFNZU19zZXRldWlkLCB4MCAtIDEpOyBGQUlMOworCisgICAvKiBTWVNfZm9ya3N5cyAgICAgICAgICAgICAgIDE0MiAqLworICAgR08oU1lTX2ZvcmtzeXMsICIycyAwbSIpOworICAgU1koU1lTX2ZvcmtzeXMsIHgwLCB4MCAtIDEpOyBGQUlMOworCisgICAvKiBTWVNfc2lndGltZWR3YWl0ICAgICAgICAgIDE0NCAqLworICAgR08oU1lTX3NpZ3RpbWVkd2FpdCwgIjNzIDNtIik7CisgICBTWShTWVNfc2lndGltZWR3YWl0LCB4MCAtIDEsIHgwIC0gMSwgeDAgLSAxKTsgRkFJTDsKKworICAgLyogU1lTX2x3cF9pbmZvICAgICAgICAgICAgICAxNDUgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU195aWVsZCAgICAgICAgICAgICAgICAgMTQ2ICovCisgICBHTyhTWVNfeWllbGQsICIwcyAwbSIpOworICAgU1koU1lTX3lpZWxkKTsgU1VDQzsKKworICAgLyogU1lTX2x3cF9zZW1hX3Bvc3QgICAgICAgICAxNDggKi8KKyAgIEdPKFNZU19sd3Bfc2VtYV9wb3N0LCAiMXMgM20iKTsKKyAgIFNZKFNZU19sd3Bfc2VtYV9wb3N0LCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19sd3Bfc2VtYV90cnl3YWl0ICAgICAgMTQ5ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfbHdwX2RldGFjaCAgICAgICAgICAgIDE1MCAqLworICAgR08oU1lTX2x3cF9kZXRhY2gsICIxcyAwbSIpOworICAgU1koU1lTX2x3cF9kZXRhY2gsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2NvcmVjdGwgICAgICAgICAgICAgICAxNTEgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19tb2RjdGwgICAgICAgICAgICAgICAgMTUyICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfZmNocm9vdCAgICAgICAgICAgICAgIDE1MyAqLworICAgR08oU1lTX2ZjaHJvb3QsICIxcyAwbSIpOworICAgU1koU1lTX2ZjaHJvb3QsIHgwIC0gMSk7IEZBSUx4KEVCQURGKTsKKworICAgLyogU1lTX3ZoYW5ndXAgICAgICAgICAgICAgICAxNTUgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19nZXR0aW1lb2ZkYXkgICAgICAgICAgMTU2ICovCisgICBHTyhTWVNfZ2V0dGltZW9mZGF5LCAiMXMgMW0iKTsKKyAgIFNZKFNZU19nZXR0aW1lb2ZkYXksIHgwICsgMSk7IEZBSUw7CisKKyAgIC8qIFNZU19nZXRpdGltZXIgICAgICAgICAgICAgMTU3ICovCisgICBHTyhTWVNfZ2V0aXRpbWVyLCAiMnMgMm0iKTsKKyAgIFNZKFNZU19nZXRpdGltZXIsIHgwLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfc2V0aXRpbWVyICAgICAgICAgICAgIDE1OCAqLworICAgR08oU1lTX3NldGl0aW1lciwgIjNzIDRtIik7CisgICBTWShTWVNfc2V0aXRpbWVyLCB4MCwgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfbHdwX2NyZWF0ZSAgICAgICAgICAgIDE1OSAqLworICAgLyogSW4gdGhlIGx3cF9jcmVhdGUoKSB3cmFwcGVyLCB3ZSB1bmZvcnR1bmF0ZWx5IGhhdmUgdG8gY2FsbAorICAgICAgTUxfKHNhZmVfdG9fZGVyZWYpIGJlZm9yZSBkb2luZyB0aGUgUFJFX1JFQURfKigpIHN0dWZmLCB0aGVyZWZvcmUgb25seSAxbQorICAgICAgcGFyYW1ldGVyLiAqLworICAgR08oU1lTX2x3cF9jcmVhdGUsICIzcyAxbSIpOworICAgU1koU1lTX2x3cF9jcmVhdGUsIHgwLCB4MCwgeDAgKyAxKTsgRkFJTHgoRUlOVkFMKTsKKworICAgLyogU1lTX2x3cF9leGl0ICAgICAgICAgICAgICAxNjAgKi8KKyAgIC8qIERvbid0IGJvdGhlciB0byB0ZXN0IHRoaXMuICovCisgICBHTyhTWVNfbHdwX2V4aXQsICJpZ25vcmUiKTsKKworICAgLyogU1lTX2x3cF9zdXNwZW5kICAgICAgICAgICAxNjEgKi8KKyAgIEdPKFNZU19sd3Bfc3VzcGVuZCwgIjFzIDBtIik7CisgICBTWShTWVNfbHdwX3N1c3BlbmQsIHgwIC0gMSk7IEZBSUw7CisKKyAgIC8qIFNZU19sd3BfY29udGludWUgICAgICAgICAgMTYyICovCisgICBHTyhTWVNfbHdwX2NvbnRpbnVlLCAiMXMgMG0iKTsKKyAgIFNZKFNZU19sd3BfY29udGludWUsIHgwIC0gMSk7IEZBSUw7CisKKyAgIC8qIFNZU19sd3Bfa2lsbCAgICAgICAgICAgICAgMTYzICovCisgICAvKiBTWVNfbHdwX3NpZ3F1ZXVlICAgICAgICAgIDE2MyAqLworICAgLyogVGVzdGVkIGluIHNjYWxhcl9sd3Bfa2lsbCBhbmQgc2NhbGFyX2x3cF9zaWdxdWV1ZS4gKi8KKworICAgLyogU1lTX2x3cF9zZWxmICAgICAgICAgICAgICAxNjQgKi8KKyAgIEdPKFNZU19sd3Bfc2VsZiwgIjBzIDBtIik7CisgICBTWShTWVNfbHdwX3NlbGYpOyBTVUNDOworCisgICAvKiBTWVNfbHdwX3NpZ21hc2sgICAgICAgICAgIDE2NSAqLworICAgR08oU1lTX2x3cF9zaWdtYXNrLCAiNXMgMG0iKTsKKyAgIFNZKFNZU19sd3Bfc2lnbWFzaywgeDAsIHgwLCB4MCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2x3cF9wcml2YXRlICAgICAgICAgICAxNjYgKi8KKyAgIEdPKFNZU19sd3BfcHJpdmF0ZSwgIjNzIDFtIik7CisjaWYgZGVmaW5lZChfX2kzODYpCisgICBTWShTWVNfbHdwX3ByaXZhdGUsIHgwICsgX0xXUF9HRVRQUklWQVRFLCB4MCArIF9MV1BfR1NCQVNFLCB4MCk7IEZBSUw7CisjZWxpZiBkZWZpbmVkKF9fYW1kNjQpCisgICBTWShTWVNfbHdwX3ByaXZhdGUsIHgwICsgX0xXUF9HRVRQUklWQVRFLCB4MCArIF9MV1BfRlNCQVNFLCB4MCk7IEZBSUw7CisjZWxzZQorI2Vycm9yIFVuc3VwcG9ydGVkIHBsYXRmb3JtCisjZW5kaWYKKworICAgLyogU1lTX2x3cF93YWl0ICAgICAgICAgICAgICAxNjcgKi8KKyAgIEdPKFNZU19sd3Bfd2FpdCwgIjJzIDFtIik7CisgICBTWShTWVNfbHdwX3dhaXQsIHgwIC0gMSwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX2x3cF9tdXRleF93YWtldXAgICAgICAxNjggKi8KKyAgIEdPKFNZU19sd3BfbXV0ZXhfd2FrZXVwLCAiMnMgMm0iKTsKKyAgIFNZKFNZU19sd3BfbXV0ZXhfd2FrZXVwLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfbHdwX2NvbmRfd2FpdCAgICAgICAgIDE3MCAqLworICAgR08oU1lTX2x3cF9jb25kX3dhaXQsICI0cyA1bSIpOworICAgU1koU1lTX2x3cF9jb25kX3dhaXQsIHgwICsgMSwgeDAgKyAxLCB4MCArIDEsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2x3cF9jb25kX3NpZ25hbCAgICAgICAxNzEgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19sd3BfY29uZF9icm9hZGNhc3QgICAgMTcyICovCisgICBHTyhTWVNfbHdwX2NvbmRfYnJvYWRjYXN0LCAiMXMgMm0iKTsKKyAgIFNZKFNZU19sd3BfY29uZF9icm9hZGNhc3QsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3ByZWFkICAgICAgICAgICAgICAgICAxNzMgKi8KKyAgIEdPKFNZU19wcmVhZCwgIjRzIDFtIik7CisgICBTWShTWVNfcHJlYWQsIHgwIC0gMSwgeDAsIHgwICsgMSwgeDApOyBGQUlMeChFQkFERik7CisKKyAgIC8qIFNZU19wd3JpdGUgICAgICAgICAgICAgICAgMTc0ICovCisgICBHTyhTWVNfcHdyaXRlLCAiNHMgMW0iKTsKKyAgIFNZKFNZU19wd3JpdGUsIHgwIC0gMSwgeDAsIHgwICsgMSwgeDApOyBGQUlMeChFQkFERik7CisKKyAgIC8qIFNZU19sbHNlZWsgICAgICAgICAgICAgICAgMTc1ICovCisgICAvKiBUZXN0ZWQgaW4geDg2LXNvbGFyaXMvc2NhbGFyLmMuICovCisKKyAgIC8qIFNZU19pbnN0X3N5bmMgICAgICAgICAgICAgMTc2ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfYnJhbmQgICAgICAgICAgICAgICAgIDE3NyAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX2thaW8gICAgICAgICAgICAgICAgICAxNzggKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19jcGMgICAgICAgICAgICAgICAgICAgMTc5ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfbGdycHN5cyAgICAgICAgICAgICAgIDE4MCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3J1c2FnZXN5cyAgICAgICAgICAgICAxODEgKi8KKyAgIHN5c19ydXNhZ2VzeXMoKTsKKyAgIHN5c19ydXNhZ2VzeXMyKCk7CisgICBzeXNfcnVzYWdlc3lzMygpOworICAgc3lzX3J1c2FnZXN5czQoKTsKKyAgIHN5c19ydXNhZ2VzeXM1KCk7CisKKyAgIC8qIFNZU19wb3J0ICAgICAgICAgICAgICAgICAgMTgyICovCisgICBzeXNfcG9ydCgpOworICAgc3lzX3BvcnQyKCk7CisgICBzeXNfcG9ydDMoKTsKKyAgIHN5c19wb3J0NCgpOworICAgc3lzX3BvcnQ1KCk7CisgICBzeXNfcG9ydDYoKTsKKyAgIHN5c19wb3J0NygpOworICAgc3lzX3BvcnQ4KCk7CisgICBzeXNfcG9ydDkoKTsKKyAgIHN5c19wb3J0MTAoKTsKKyAgIHN5c19wb3J0MTEoKTsKKworICAgLyogU1lTX3BvbGxzeXMgICAgICAgICAgICAgICAxODMgKi8KKyAgIEdPKFNZU19wb2xsc3lzLCAiNHMgNW0iKTsKKyAgIFNZKFNZU19wb2xsc3lzLCB4MCwgeDAgKyAxLCB4MCArIDEsIHgwICsgMSk7IEZBSUw7CisKKyAgIC8qIFNZU19sYWJlbHN5cyAgICAgICAgICAgICAgMTg0ICovCisgICBzeXNfbGFiZWxzeXMoKTsKKyAgIHN5c19sYWJlbHN5czIoKTsKKyAgIHN5c19sYWJlbHN5czMoKTsKKyAgIHN5c19sYWJlbHN5czQoKTsKKyAgIHN5c19sYWJlbHN5czUoKTsKKyAgIHN5c19sYWJlbHN5czYoKTsKKworICAgLyogU1lTX2FjbCAgICAgICAgICAgICAgICAgICAxODUgKi8KKyAgIHN5c19hY2woKTsKKyAgIHN5c19hY2wyKCk7CisgICBzeXNfYWNsMygpOworICAgc3lzX2FjbDQoKTsKKyAgIHN5c19hY2w1KCk7CisgICBzeXNfYWNsNigpOworCisgICAvKiBTWVNfYXVkaXRzeXMgICAgICAgICAgICAgIDE4NiAqLworICAgc3lzX2F1ZGl0c3lzKCk7CisgICBzeXNfYXVkaXRzeXMyKCk7CisgICBzeXNfYXVkaXRzeXMzKCk7CisgICBzeXNfYXVkaXRzeXM0KCk7CisgICBzeXNfYXVkaXRzeXM1KCk7CisgICBzeXNfYXVkaXRzeXM2KCk7CisgICBzeXNfYXVkaXRzeXM3KCk7CisgICBzeXNfYXVkaXRzeXM4KCk7CisgICBzeXNfYXVkaXRzeXM5KCk7CisgICBzeXNfYXVkaXRzeXMxMCgpOworICAgc3lzX2F1ZGl0c3lzMTEoKTsKKyAgIHN5c19hdWRpdHN5czEyKCk7CisgICBzeXNfYXVkaXRzeXMxMygpOworICAgc3lzX2F1ZGl0c3lzMTQoKTsKKyAgIHN5c19hdWRpdHN5czE1KCk7CisgICBzeXNfYXVkaXRzeXMxNigpOworICAgc3lzX2F1ZGl0c3lzMTcoKTsKKyAgIHN5c19hdWRpdHN5czE4KCk7CisgICBzeXNfYXVkaXRzeXMxOSgpOworICAgc3lzX2F1ZGl0c3lzMjAoKTsKKyAgIHN5c19hdWRpdHN5czIxKCk7CisgICBzeXNfYXVkaXRzeXMyMigpOworICAgc3lzX2F1ZGl0c3lzMjMoKTsKKyAgIHN5c19hdWRpdHN5czI0KCk7CisgICBzeXNfYXVkaXRzeXMyNSgpOworICAgc3lzX2F1ZGl0c3lzMjYoKTsKKyAgIHN5c19hdWRpdHN5czI3KCk7CisgICBzeXNfYXVkaXRzeXMyOCgpOworICAgc3lzX2F1ZGl0c3lzMjkoKTsKKyAgIHN5c19hdWRpdHN5czMwKCk7CisgICBzeXNfYXVkaXRzeXMzMSgpOworICAgc3lzX2F1ZGl0c3lzMzIoKTsKKworICAgLyogU1lTX3Byb2Nlc3Nvcl9iaW5kICAgICAgICAxODcgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19wcm9jZXNzb3JfaW5mbyAgICAgICAgMTg4ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfcF9vbmxpbmUgICAgICAgICAgICAgIDE4OSAqLworICAgR08oU1lTX3Bfb25saW5lLCAiMnMgMG0iKTsKKyAgIFNZKFNZU19wX29ubGluZSwgeDAsIHgwKTsgRkFJTHgoRUlOVkFMKTsKKworICAgLyogU1lTX3NpZ3F1ZXVlICAgICAgICAgICAgICAxOTAgKi8KKyAgIEdPKFNZU19zaWdxdWV1ZSwgIjVzIDFtIik7CisgICBTWShTWVNfc2lncXVldWUsIHgwIC0gMSwgeDAsIHgwICsgMSwgeDAsIHgwIC0gMSk7IEZBSUw7CisKKyAgIC8qIFNZU19jbG9ja19nZXR0aW1lICAgICAgICAgMTkxICovCisgICBHTyhTWVNfY2xvY2tfZ2V0dGltZSwgIjJzIDFtIik7CisgICBTWShTWVNfY2xvY2tfZ2V0dGltZSwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2Nsb2NrX3NldHRpbWUgICAgICAgICAxOTIgKi8KKyAgIEdPKFNZU19jbG9ja19zZXR0aW1lLCAiMnMgMW0iKTsKKyAgIFNZKFNZU19jbG9ja19zZXR0aW1lLCB4MCwgeDApOyAgRkFJTDsKKworICAgLyogU1lTX2Nsb2NrX2dldHJlcyAgICAgICAgICAxOTMgKi8KKyAgIEdPKFNZU19jbG9ja19nZXRyZXMsICIycyAxbSIpOworICAgU1koU1lTX2Nsb2NrX2dldHJlcywgeDAgKyAxLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfdGltZXJfY3JlYXRlICAgICAgICAgIDE5NCAqLworICAgc3lzX3RpbWVyX2NyZWF0ZSgpOworICAgc3lzX3RpbWVyX2NyZWF0ZTIoKTsKKworICAgLyogU1lTX3RpbWVyX2RlbGV0ZSAgICAgICAgICAxOTUgKi8KKyAgIEdPKFNZU190aW1lcl9kZWxldGUsICIxcyAwbSIpOworICAgU1koU1lTX3RpbWVyX2RlbGV0ZSwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX3RpbWVyX3NldHRpbWUgICAgICAgICAxOTYgKi8KKyAgIEdPKFNZU190aW1lcl9zZXR0aW1lLCAiNHMgMm0iKTsKKyAgIFNZKFNZU190aW1lcl9zZXR0aW1lLCB4MCwgeDAsIHgwICsgMSwgeDAgKyAyKTsgRkFJTDsKKworICAgLyogU1lTX3RpbWVyX2dldHRpbWUgICAgICAgICAxOTcgKi8KKyAgIEdPKFNZU190aW1lcl9nZXR0aW1lLCAiMnMgMW0iKTsKKyAgIFNZKFNZU190aW1lcl9nZXR0aW1lLCB4MCwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX3RpbWVyX2dldG92ZXJydW4gICAgICAxOTggKi8KKyAgIEdPKFNZU190aW1lcl9nZXRvdmVycnVuLCAiMXMgMG0iKTsKKyAgIFNZKFNZU190aW1lcl9nZXRvdmVycnVuLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19uYW5vc2xlZXAgICAgICAgICAgICAgMTk5ICovCisgICBHTyhTWVNfbmFub3NsZWVwLCAiMnMgMm0iKTsKKyAgIFNZKFNZU19uYW5vc2xlZXAsIHgwLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfZmFjbCAgICAgICAgICAgICAgICAgIDIwMCAqLworICAgc3lzX2ZhY2woKTsKKyAgIHN5c19mYWNsMigpOworICAgc3lzX2ZhY2wzKCk7CisgICBzeXNfZmFjbDQoKTsKKyAgIHN5c19mYWNsNSgpOworICAgc3lzX2ZhY2w2KCk7CisKKyAgIC8qIFNZU19kb29yICAgICAgICAgICAgICAgICAgMjAxICovCisgICBzeXNfZG9vcigpOworICAgc3lzX2Rvb3IyKCk7CisgICBzeXNfZG9vcjMoKTsKKyAgIHN5c19kb29yNCgpOworICAgc3lzX2Rvb3I1KCk7CisgICAvKiBYWFggQWRkaXRpb25hbCBzeXNfZG9vciB2YXJpYW50cyBzdGlsbCB1bmltcGxlbWVudGVkLiAqLworCisgICAvKiBTWVNfc2V0cmV1aWQgICAgICAgICAgICAgIDIwMiAqLworICAgR08oU1lTX3NldHJldWlkLCAiMnMgMG0iKTsKKyAgIFNZKFNZU19zZXRyZXVpZCwgeDAgLSAxLCB4MCAtIDEpOyBTVUNDOworCisgICAvKiBTWVNfc2V0cmVnaWQgICAgICAgICAgICAgIDIwMyAqLworICAgR08oU1lTX3NldHJlZ2lkLCAiMnMgMG0iKTsKKyAgIFNZKFNZU19zZXRyZWdpZCwgeDAgLSAxLCB4MCAtIDEpOyBTVUNDOworCisgICAvKiBTWVNfaW5zdGFsbF91dHJhcCAgICAgICAgIDIwNCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3NpZ25vdGlmeSAgICAgICAgICAgICAyMDUgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19zY2hlZGN0bCAgICAgICAgICAgICAgMjA2ICovCisgICBHTyhTWVNfc2NoZWRjdGwsICIwcyAwbSIpOworICAgU1koU1lTX3NjaGVkY3RsKTsgU1VDQzsKKworICAgLyogU1lTX3BzZXQgICAgICAgICAgICAgICAgICAyMDcgKi8KKyAgIHN5c19wc2V0KCk7CisgICBzeXNfcHNldDIoKTsKKyAgIHN5c19wc2V0MygpOworICAgc3lzX3BzZXQ0KCk7CisgICBzeXNfcHNldDUoKTsKKyAgIHN5c19wc2V0NigpOworICAgc3lzX3BzZXQ3KCk7CisgICBzeXNfcHNldDgoKTsKKyAgIHN5c19wc2V0OSgpOworICAgc3lzX3BzZXQxMCgpOworICAgc3lzX3BzZXQxMSgpOworICAgc3lzX3BzZXQxMigpOworICAgc3lzX3BzZXQxMygpOworCisgICAvKiBTWVNfc3BhcmNfdXRyYXBfaW5zdGFsbCAgIDIwOCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3Jlc29sdmVwYXRoICAgICAgICAgICAyMDkgKi8KKyAgIEdPKFNZU19yZXNvbHZlcGF0aCwgIjNzIDJtIik7CisgICBTWShTWVNfcmVzb2x2ZXBhdGgsIHgwLCB4MCwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX2x3cF9tdXRleF90aW1lZGxvY2sgICAyMTAgKi8KKyAgIEdPKFNZU19sd3BfbXV0ZXhfdGltZWRsb2NrLCAiM3MgN20iKTsKKyAgIFNZKFNZU19sd3BfbXV0ZXhfdGltZWRsb2NrLCB4MCwgeDAgKyAxLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19sd3Bfc2VtYV90aW1lZHdhaXQgICAgMjExICovCisgICBHTyhTWVNfbHdwX3NlbWFfdGltZWR3YWl0LCAiM3MgNG0iKTsKKyAgIFNZKFNZU19sd3Bfc2VtYV90aW1lZHdhaXQsIHgwLCB4MCArIDEsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2x3cF9yd2xvY2tfc3lzICAgICAgICAyMTIgKi8KKyAgIHN5c19sd3Bfcndsb2NrKCk7CisgICBzeXNfbHdwX3J3bG9jazIoKTsKKyAgIHN5c19sd3Bfcndsb2NrMygpOworICAgc3lzX2x3cF9yd2xvY2s0KCk7CisgICBzeXNfbHdwX3J3bG9jazUoKTsKKworICAgLyogU1lTX2dldGRlbnRzNjQgICAgICAgICAgICAyMTMgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX21tYXA2NCAgICAgICAgICAgICAgICAyMTQgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX3N0YXQ2NCAgICAgICAgICAgICAgICAyMTUgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX2xzdGF0NjQgICAgICAgICAgICAgICAyMTYgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX2ZzdGF0NjQgICAgICAgICAgICAgICAyMTcgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX3N0YXR2ZnM2NCAgICAgICAgICAgICAyMTggKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX2ZzdGF0dmZzNjQgICAgICAgICAgICAyMTkgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX3NldHJsaW1pdDY0ICAgICAgICAgICAyMjAgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX2dldHJsaW1pdDY0ICAgICAgICAgICAyMjEgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX3ByZWFkNjQgICAgICAgICAgICAgICAyMjIgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX3B3cml0ZTY0ICAgICAgICAgICAgICAyMjMgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXIuYy4gKi8KKworICAgLyogU1lTX29wZW42NCAgICAgICAgICAgICAgICAyMjUgKi8KKyAgIC8qIFRlc3RlZCBpbiB4ODYtc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuYy4gKi8KKworICAgLyogU1lTX3JwY3N5cyAgICAgICAgICAgICAgICAyMjYgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU196b25lICAgICAgICAgICAgICAgICAgMjI3ICovCisgICBzeXNfem9uZSgpOworICAgc3lzX3pvbmUyKCk7CisgICBzeXNfem9uZTMoKTsKKyAgIHN5c196b25lNCgpOworICAgc3lzX3pvbmU1KCk7CisgICBzeXNfem9uZTYoKTsKKyAgIHN5c196b25lNygpOworICAgc3lzX3pvbmU4KCk7CisgICBzeXNfem9uZTkoKTsKKyAgIHN5c196b25lMTAoKTsKKyAgIHN5c196b25lMTEoKTsKKyAgIC8qCisgICAyMDEzLTA5LTIyIFBldHIgUGF2bHUgLS0gVGhlIGZvbGxvd2luZyB0ZXN0IGNyYXNoZXMgbXkgc3lzdGVtIGJlY2F1c2Ugb2YKKyAgIGEga2VybmVsIGJ1ZyAoaWxsdW1vcyksIGNvbW1lbnRpbmcgaXQgb3V0IGZvciBub3cuCisgICBzeXNfem9uZTEyKCk7CisgICAqLworICAgc3lzX3pvbmUxMygpOworICAgLyoKKyAgIDIwMTMtMDktMjIgUGV0ciBQYXZsdSAtLSBUaGUgZm9sbG93aW5nIHRlc3QgcHJvdmlkZXMgYW4gaW5jb3JyZWN0IHJlc3VsdAorICAgYmVjYXVzZSBvZiBhIGtlcm5lbCBidWcgKGlsbHVtb3MpLCBjb21tZW50aW5nIGl0IG91dCBmb3Igbm93LgorICAgc3lzX3pvbmUxNCgpOworICAgKi8KKyAgIHN5c196b25lMTUoKTsKKyAgIC8qCisgICAyMDEzLTA5LTIyIFBldHIgUGF2bHUgLS0gVGhlIGZvbGxvd2luZyB0ZXN0IHByb3ZpZGVzIGFuIGluY29ycmVjdCByZXN1bHQKKyAgIGJlY2F1c2Ugb2YgYSBrZXJuZWwgYnVnIChpbGx1bW9zKSwgY29tbWVudGluZyBpdCBvdXQgZm9yIG5vdy4KKyAgIHN5c196b25lMTYoKTsKKyAgICovCisKKyAgIC8qIFNZU19hdXRvZnNzeXMgICAgICAgICAgICAgMjI4ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfZ2V0Y3dkICAgICAgICAgICAgICAgIDIyOSAqLworICAgR08oU1lTX2dldGN3ZCwgIjJzIDFtIik7CisgICBTWShTWVNfZ2V0Y3dkLCB4MCwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX3NvX3NvY2tldCAgICAgICAgICAgICAyMzAgKi8KKyAgIEdPKFNZU19zb19zb2NrZXQsICI1cyAxbSIpOworICAgU1koU1lTX3NvX3NvY2tldCwgeDAsIHgwLCB4MCwgeDAgKyAxLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19zb19zb2NrZXRwYWlyICAgICAgICAgMjMxICovCisgICBHTyhTWVNfc29fc29ja2V0cGFpciwgIjFzIDFtIik7CisgICBTWShTWVNfc29fc29ja2V0cGFpciwgeDApOyBGQUlMOworCisgICAvKiBTWVNfYmluZCAgICAgICAgICAgICAgICAgIDIzMiAqLworICAgR08oU1lTX2JpbmQsICI0cyAwbSIpOworICAgU1koU1lTX2JpbmQsIHgwLCB4MCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2xpc3RlbiAgICAgICAgICAgICAgICAyMzMgKi8KKyAgIEdPKFNZU19saXN0ZW4sICIzcyAwbSIpOworICAgU1koU1lTX2xpc3RlbiwgeDAsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19hY2NlcHQgICAgICAgICAgICAgICAgMjM0ICovCisgICAvKiBJbGx1bW9zIGFkZGVkIGEgbmV3IHZlcnNpb24gb2YgdGhlIGFjY2VwdCgpIHN5c2NhbGwgd2hpY2ggdGFrZXMgYW4gZXh0cmEKKyAgICAgIGZsYWcgcGFyYW1ldGVyLiAgVGhpcyBpcyB0cml2aWFsbHkgaGFuZGxlZCBpbiB0aGUgc3lzY2FsbCB3cmFwcGVyIGJ1dCBpdAorICAgICAgaXMgbm90IHRlc3RlZCBoZXJlIHNvIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gaGF2ZSB0d28gdmVyc2lvbnMgb2YgdGhlCisgICAgICBzdGRlcnIuZXhwIGZpbGUuICovCisgICBHTyhTWVNfYWNjZXB0LCAiNHMgMG0iKTsKKyAgIFNZKFNZU19hY2NlcHQsIHgwLCB4MCwgeDAsIHgwLCAwKTsgRkFJTDsKKworICAgLyogU1lTX2Nvbm5lY3QgICAgICAgICAgICAgICAyMzUgKi8KKyAgIEdPKFNZU19jb25uZWN0LCAiNHMgMG0iKTsKKyAgIFNZKFNZU19jb25uZWN0LCB4MCwgeDAsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19zaHV0ZG93biAgICAgICAgICAgICAgMjM2ICovCisgICBHTyhTWVNfc2h1dGRvd24sICIzcyAwbSIpOworICAgU1koU1lTX3NodXRkb3duLCB4MCAtIDEsIHgwLCB4MCk7IEZBSUx4KEVCQURGKTsKKworICAgLyogU1lTX3JlY3YgICAgICAgICAgICAgICAgICAyMzcgKi8KKyAgIEdPKFNZU19yZWN2LCAiNHMgMW0iKTsKKyAgIFNZKFNZU19yZWN2LCB4MCwgeDAsIHgwICsgMSwgeDApOyBGQUlMOworCisgICAvKiBTWVNfcmVjdmZyb20gICAgICAgICAgICAgIDIzOCAqLworICAgR08oU1lTX3JlY3Zmcm9tLCAiNnMgMW0iKTsKKyAgIFNZKFNZU19yZWN2ZnJvbSwgeDAsIHgwLCB4MCArIDEsIHgwLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfcmVjdm1zZyAgICAgICAgICAgICAgIDIzOSAqLworICAgR08oU1lTX3JlY3Ztc2csICIzcyAwbSIpOworICAgU1koU1lTX3JlY3Ztc2csIHgwLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfc2VuZCAgICAgICAgICAgICAgICAgIDI0MCAqLworICAgR08oU1lTX3NlbmQsICI0cyAxbSIpOworICAgU1koU1lTX3NlbmQsIHgwLCB4MCwgeDAgKyAxLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19zZW5kbXNnICAgICAgICAgICAgICAgMjQxICovCisgICBHTyhTWVNfc2VuZG1zZywgIjNzIDBtIik7CisgICBTWShTWVNfc2VuZG1zZywgeDAsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19zZW5kdG8gICAgICAgICAgICAgICAgMjQyICovCisgICBHTyhTWVNfc2VuZHRvLCAiNnMgMW0iKTsKKyAgIFNZKFNZU19zZW5kdG8sIHgwLCB4MCwgeDAgKyAxLCB4MCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2dldHBlZXJuYW1lICAgICAgICAgICAyNDMgKi8KKyAgIHN5c19nZXRwZWVybmFtZSgpOworICAgc3lzX2dldHBlZXJuYW1lMigpOworCisgICAvKiBTWVNfZ2V0c29ja25hbWUgICAgICAgICAgIDI0NCAqLworICAgR08oU1lTX2dldHNvY2tuYW1lLCAiNHMgMW0iKTsKKyAgIFNZKFNZU19nZXRzb2NrbmFtZSwgeDAsIHgwLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfZ2V0c29ja29wdCAgICAgICAgICAgIDI0NSAqLworICAgR08oU1lTX2dldHNvY2tvcHQsICI2cyAwbSIpOworICAgU1koU1lTX2dldHNvY2tvcHQsIHgwLCB4MCwgeDAsIHgwLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfc2V0c29ja29wdCAgICAgICAgICAgIDI0NiAqLworICAgR08oU1lTX3NldHNvY2tvcHQsICI2cyAxbSIpOworICAgU1koU1lTX3NldHNvY2tvcHQsIHgwLCB4MCwgeDAsIHgwLCB4MCArIDEsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3NvY2tjb25maWcgICAgICAgICAgICAyNDcgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19udHBfZ2V0dGltZSAgICAgICAgICAgMjQ4ICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfbnRwX2FkanRpbWUgICAgICAgICAgIDI0OSAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX2x3cF9tdXRleF91bmxvY2sgICAgICAyNTAgKi8KKyAgIC8qIFhYWCBNaXNzaW5nIHdyYXBwZXIuICovCisKKyAgIC8qIFNZU19sd3BfbXV0ZXhfdHJ5bG9jayAgICAgMjUxICovCisgICAvKiBYWFggTWlzc2luZyB3cmFwcGVyLiAqLworCisgICAvKiBTWVNfbHdwX211dGV4X3JlZ2lzdGVyICAgIDI1MiAqLworICAgR08oU1lTX2x3cF9tdXRleF9yZWdpc3RlciwgIjJzIDFtIik7CisgICBTWShTWVNfbHdwX211dGV4X3JlZ2lzdGVyLCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfY2xhZG0gICAgICAgICAgICAgICAgIDI1MyAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX3V1Y29weSAgICAgICAgICAgICAgICAyNTQgKi8KKyAgIEdPKFNZU191dWNvcHksICIzcyAybSIpOworICAgU1koU1lTX3V1Y29weSwgeDAsIHgwLCB4MCArIDEpOyBGQUlMOworCisgICAvKiBTWVNfdW1vdW50MiAgICAgICAgICAgICAgIDI1NSAqLworICAgR08oU1lTX3Vtb3VudDIsICIycyAxbSIpOworICAgU1koU1lTX3Vtb3VudDIsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIE5vIHN1Y2ggc3lzY2FsbC4uLiAqLworI2lmIDAKKyAgIEdPKDk5OTksICIxZSIpOworICAgU1koOTk5OSk7IEZBSUw7CisjZW5kaWYKKworICAgLyogU1lTX2V4aXQgICAgICAgICAgICAgICAgICAgIDEgKi8KKyAgIEdPKFNZU19leGl0LCAiMXMgMG0iKTsKKyAgIFNZKFNZU19leGl0LCB4MCk7IEZBSUw7CisKKyAgIGFzc2VydCgwKTsKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhci5oIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDFhNDZlCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXIuaApAQCAtMCwwICsxLDM4IEBACisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisKKyNkZWZpbmUgR08oc3lzY2FsbF9udW0sIHBhcmFtKSBcCisgICBmcHJpbnRmKHN0ZGVyciwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIiAgXAorICAgICAgICAgICAgICAgICAgICIlM2Q6JTI0cyAlc1xuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iLCBcCisgICAgICAgICAgICAgICAgICAgc3lzY2FsbF9udW0sICNzeXNjYWxsX251bSwgcGFyYW0pOworCisjZGVmaW5lIFNZIHJlcyA9IHN5c2NhbGwKKworI2RlZmluZSBGQUlMIGFzc2VydChyZXMgPT0gLTEpOworI2RlZmluZSBTVUNDIGFzc2VydChyZXMgIT0gLTEpOworI2RlZmluZSBGQUlMeChFKSBcCisgICBkbyB7IFwKKyAgICAgIGludCBteWVycm5vID0gZXJybm87IFwKKyAgICAgIGlmIChyZXMgPT0gLTEpIHsgXAorICAgICAgICAgaWYgKG15ZXJybm8gPT0gRSkgeyBcCisgICAgICAgICAgICAvKiBhcyBleHBlY3RlZCAqLyBcCisgICAgICAgICB9IFwKKyAgICAgICAgIGVsc2UgeyBcCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVkIGVycm9yICVzICglZCksIGdvdCAlZFxuIiwgI0UsIEUsIG15ZXJybm8pOyBcCisgICAgICAgICAgICBleGl0KDEpOyBcCisgICAgICAgICB9IFwKKyAgICAgIH0gXAorICAgICAgZWxzZSB7IFwKKyAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0ZWQgZXJyb3IgJXMgKCVkKSwgZ290IHN1Y2Nlc3NcbiIsICNFLCBFKTsgXAorICAgICAgICAgZXhpdCgxKTsgXAorICAgICAgfSBcCisgICB9IHdoaWxlICgwKTsKKworLyogTW9kdWxlIHZhcmlhYmxlcy4gKi8KK3N0YXRpYyBsb25nIHgwOworc3RhdGljIGxvbmcgcmVzOworCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhci5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXIuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDQ3MjNkCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXIuc3RkZXJyLmV4cApAQCAtMCwwICsxLDUzNjYgQEAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAzOiAgICAgICAgICAgICAgICBTWVNfcmVhZCAzcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHJlYWQoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVhZChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVhZChjb3VudCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDQ6ICAgICAgICAgICAgICAgU1lTX3dyaXRlIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gd3JpdGUoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gd3JpdGUoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHdyaXRlKGNvdW50KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHdyaXRlKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgNjogICAgICAgICAgICAgICBTWVNfY2xvc2UgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBjbG9zZShmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDc6ICAgICAgICAgICAgICBTWVNfbGlua2F0IDVzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGlua2F0KGZkMSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsaW5rYXQocGF0aDEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGlua2F0KGZkMikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsaW5rYXQocGF0aDIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGlua2F0KGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxpbmthdChwYXRoMSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGxpbmthdChwYXRoMikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxMTogICAgICAgICAgIFNZU19zeW1saW5rYXQgM3MgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzeW1saW5rYXQocGF0aDEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc3ltbGlua2F0KGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN5bWxpbmthdChwYXRoMikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzeW1saW5rYXQocGF0aDEpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzeW1saW5rYXQocGF0aDIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMTI6ICAgICAgICAgICAgICAgU1lTX2NoZGlyIDFzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gY2hkaXIocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBjaGRpcihwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEzOiAgICAgICAgICAgICAgICBTWVNfdGltZSAwcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxNzogICAgICAgICAgICAgICAgIFNZU19icmsgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBicmsoZW5kX2RhdGFfc2VnbWVudCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMTk6ICAgICAgICAgICAgICAgU1lTX2xzZWVrIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHNlZWsoZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxzZWVrKG9mZnNldCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsc2Vlayh3aGVuY2UpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDIwOiAgICAgICAgICAgICAgU1lTX2dldHBpZCAwcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyMTogICAgICAgICAgICAgICBTWVNfbW91bnQgKDQtYXJnLCB0YWJsZSB2YXJpYW50KSA0cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIG1vdW50KHNwZWMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW91bnQoZGlyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1vdW50KG1mbGFnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1vdW50KGZzdHlwZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtb3VudChzcGVjKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbW91bnQoZGlyKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDIxOiAgICAgICAgICAgICAgIFNZU19tb3VudCAoNC1hcmcpIDRzIDNtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbW91bnQoc3BlYykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtb3VudChkaXIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW91bnQobWZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW91bnQoZnN0eXBlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1vdW50KHNwZWMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBtb3VudChkaXIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBtb3VudChmc3R5cGUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMjE6ICAgICAgICAgICAgICAgU1lTX21vdW50ICg2LWFyZykgNnMgNG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBtb3VudChzcGVjKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1vdW50KGRpcikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtb3VudChtZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtb3VudChmc3R5cGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW91bnQoZGF0YXB0cikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtb3VudChkYXRhbGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1vdW50KHNwZWMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBtb3VudChkaXIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBtb3VudChmc3R5cGUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBtb3VudChkYXRhcHRyKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDIxOiAgICAgICAgICAgICAgIFNZU19tb3VudCAoOC1hcmcpIDhzIDVtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbW91bnQoc3BlYykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtb3VudChkaXIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW91bnQobWZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW91bnQoZnN0eXBlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1vdW50KGRhdGFwdHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW91bnQoZGF0YWxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtb3VudChvcHRwdHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW91bnQob3B0bGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1vdW50KHNwZWMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBtb3VudChkaXIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBtb3VudChmc3R5cGUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBtb3VudChkYXRhcHRyKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbW91bnQob3B0cHRyKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDIyOiAgICAgICAgICBTWVNfcmVhZGxpbmthdCA0cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHJlYWRsaW5rYXQoZGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJlYWRsaW5rYXQocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWFkbGlua2F0KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWFkbGlua2F0KGJ1ZnNpeikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWFkbGlua2F0KHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSByZWFkbGlua2F0KGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyMzogICAgICAgICAgICAgIFNZU19zZXR1aWQgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZXR1aWQodWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyNDogICAgICAgICAgICAgIFNZU19nZXR1aWQgMHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMjU6ICAgICAgICAgICAgICAgU1lTX3N0aW1lIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc3RpbWUodGltZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMjc6ICAgICAgICAgICAgICAgU1lTX2FsYXJtIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYWxhcm0oc2Vjb25kcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMjk6ICAgICAgICAgICAgICAgU1lTX3BhdXNlIGlnbm9yZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAzMTogICAgICAgICAgICAgICAgU1lTX3N0dHkgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzdHR5KGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN0dHkodHR5KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN0dHkodHR5KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDMyOiAgICAgICAgICAgICAgICBTWVNfZ3R0eSAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGd0dHkoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ3R0eSh0dHkpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ3R0eSh0dHkpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMzc6ICAgICAgICAgICAgICAgIFNZU19raWxsIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0ga2lsbChwaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0ga2lsbChzaWduYWwpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDM5OiAgICAgICAgICAgICBTWVNfcGdycHN5cyAoR0VUUEdSUCkgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwZ3Jwc3lzX2dldHBncnAoZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMzk6ICAgICAgICAgICAgIFNZU19wZ3Jwc3lzIChHRVRTSUQpIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcGdycHN5c19nZXRzaWQoZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwZ3Jwc3lzX2dldHNpZChwaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDM5OiAgICAgICAgICAgICBTWVNfcGdycHN5cyAoR0VUUEdJRCkgMnMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwZ3Jwc3lzX2dldHBnaWQoZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwZ3Jwc3lzX2dldHBnaWQocGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA0MjogICAgICAgICAgICAgICAgU1lTX3BpcGUgaWdub3JlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDQzOiAgICAgICAgICAgICAgIFNZU190aW1lcyAxcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHRpbWVzKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB0aW1lcyhidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNDU6ICAgICAgICAgICBTWVNfZmFjY2Vzc2F0IDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZmFjY2Vzc2F0KGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZhY2Nlc3NhdChwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZhY2Nlc3NhdChhbW9kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNjZXNzYXQoZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNjZXNzYXQocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA0NjogICAgICAgICAgICAgIFNZU19zZXRnaWQgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZXRnaWQoZ2lkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA0NzogICAgICAgICAgICAgIFNZU19nZXRnaWQgMHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNDg6ICAgICAgICAgICAgIFNZU19ta25vZGF0IDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbWtub2RhdChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBta25vZGF0KGZuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1rbm9kYXQoZm1vZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbWtub2RhdChkZXYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbWtub2RhdChmbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1MDogICAgICAgICAgICAgIFNZU19zeXNpODYgaW5jb21pbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTI6ICAgICAgICAgICAgICBTWVNfc2htc3lzIChTSE1BVCkgNHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htYXQob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1hdChzaG1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htYXQoc2htYWRkcikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworCitNb3JlIHRoYW4gMTAwIGVycm9ycyBkZXRlY3RlZC4gIFN1YnNlcXVlbnQgZXJyb3JzCit3aWxsIHN0aWxsIGJlIHJlY29yZGVkLCBidXQgaW4gbGVzcyBkZXRhaWwgdGhhbiBiZWZvcmUuCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1hdChzaG1mbGcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNQ1RMLFNITV9MT0NLKSAzcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfbG9jayhvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9sb2NrKHNobWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfbG9jayhjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNQ1RMLFNITV9VTkxPQ0spIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF91bmxvY2sob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfdW5sb2NrKHNobWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfdW5sb2NrKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTI6ICAgICAgICAgICAgICBTWVNfc2htc3lzIChTSE1DVEwsSVBDX1JNSUQpIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9ybWlkKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htY3RsX3JtaWQoc2htaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9ybWlkKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTI6ICAgICAgICAgICAgICBTWVNfc2htc3lzIChTSE1DVEwsSVBDX1NFVCkgNHMgM20KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htY3RsX3NldChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9zZXQoc2htaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9zZXQoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc2V0KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXMoc2htY3RsLCBpcGNfc2V0LCBidWYtPnNobV9wZXJtLnVpZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNobXN5cyhzaG1jdGwsIGlwY19zZXQsIGJ1Zi0+c2htX3Blcm0uZ2lkKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzKHNobWN0bCwgaXBjX3NldCwgYnVmLT5zaG1fcGVybS5tb2RlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNQ1RMLElQQ19TRVQpIDZzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9zZXQob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc2V0KHNobWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc2V0KGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXMoc2htY3RsLCBpcGNfc2V0LCBidWYtPnNobV9wZXJtLnVpZCkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBzaG1zeXMoc2htY3RsLCBpcGNfc2V0LCBidWYtPnNobV9wZXJtLmdpZCkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBzaG1zeXMoc2htY3RsLCBpcGNfc2V0LCBidWYtPnNobV9wZXJtLm1vZGUpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNQ1RMLElQQ19TVEFUKSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc3RhdChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9zdGF0KHNobWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc3RhdChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9zdGF0KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXMoc2htY3RsLCBpcGNfc3RhdCwgYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNQ1RMLElQQ19TRVQ2NCkgNHMgM20KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htY3RsX3NldDY0KG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htY3RsX3NldDY0KHNobWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc2V0NjQoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc2V0NjQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5cyhzaG1jdGwsIGlwY19zZXQ2NCwgYnVmLT5zaG14X3Blcm0uaXBjeF91aWQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzaG1zeXMoc2htY3RsLCBpcGNfc2V0NjQsIGJ1Zi0+c2hteF9wZXJtLmlwY3hfZ2lkKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzKHNobWN0bCwgaXBjX3NldDY0LCBidWYtPnNobXhfcGVybS5pcGN4X21vZGUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTI6ICAgICAgICAgICAgICBTWVNfc2htc3lzIChTSE1DVEwsSVBDX1NFVDY0KSA2cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc2V0NjQob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc2V0NjQoc2htaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9zZXQ2NChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzKHNobWN0bCwgaXBjX3NldDY0LCBidWYtPnNobXhfcGVybS5pcGN4X3VpZCkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBzaG1zeXMoc2htY3RsLCBpcGNfc2V0NjQsIGJ1Zi0+c2hteF9wZXJtLmlwY3hfZ2lkKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHNobXN5cyhzaG1jdGwsIGlwY19zZXQ2NCwgYnVmLT5zaG14X3Blcm0uaXBjeF9tb2RlKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1MjogICAgICAgICAgICAgIFNZU19zaG1zeXMgKFNITUNUTCxJUENfU1RBVDY0KSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfc3RhdDY0KG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htY3RsX3N0YXQ2NChzaG1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htY3RsX3N0YXQ2NChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF9zdGF0NjQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5cyhzaG1jdGwsIGlwY19zdGF0NjQsIGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1MjogICAgICAgICAgICAgIFNZU19zaG1zeXMgKFNITURUKSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1kdChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWR0KHNobWFkZHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1dhcm5pbmc6IGNsaWVudCBzeXNjYWxsIHNobWR0IHRyaWVkIHRvIG1vZGlmeSBhZGRyZXNzZXMgMHguLi4uLi4uLi0weC4uLi4uLi4uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1MjogICAgICAgICAgICAgIFNZU19zaG1zeXMgKFNITUdFVCkgNHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htZ2V0KG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htZ2V0KGtleSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htZ2V0KHNpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWdldChzaG1mbGcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNSURTKSA0cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1pZHMob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1pZHMoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1pZHMobmlkcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htaWRzKHBuaWRzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5cyhzaG1pZHMsIGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNobXN5cyhzaG1pZHMsIHBuaWRzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUzOiAgICAgICAgICAgICAgU1lTX3NlbXN5cyAoU0VNQ1RMLElQQ19TVEFUKSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc3RhdChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zdGF0KHNlbWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc3RhdChzZW1udW0pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zdGF0KGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3N0YXQoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbWN0bChJUENfU1RBVCwgYXJnLmJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1MzogICAgICAgICAgICAgIFNZU19zZW1zeXMgKFNFTUNUTCxJUENfU0VUKSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc2V0KG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3NldChzZW1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3NldChzZW1udW0pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zZXQoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc2V0KGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1jdGwoSVBDX1NFVCwgYXJnLmJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1MzogICAgICAgICAgICAgIFNZU19zZW1zeXMgKFNFTUNUTCxJUENfU1RBVDY0KSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc3RhdDY0KG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3N0YXQ2NChzZW1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3N0YXQ2NChzZW1udW0pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zdGF0NjQoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc3RhdDY0KGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1jdGwoSVBDX1NUQVQsIGFyZy5idWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTM6ICAgICAgICAgICAgICBTWVNfc2Vtc3lzIChTRU1DVEwsSVBDX1NFVDY0KSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc2V0NjQob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc2V0NjQoc2VtaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zZXQ2NChzZW1udW0pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zZXQ2NChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zZXQ2NChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VtY3RsKElQQ19TRVQsIGFyZy5idWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTM6ICAgICAgICAgICAgICBTWVNfc2Vtc3lzIChTRU1DVEwsSVBDX1JNSUQpIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9ybWlkKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3JtaWQoc2VtaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9ybWlkKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTM6ICAgICAgICAgICAgICBTWVNfc2Vtc3lzIChTRU1DVEwsR0VUQUxMKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfZ2V0YWxsKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX2dldGFsbChzZW1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX2dldGFsbChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9nZXRhbGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1MzogICAgICAgICAgICAgIFNZU19zZW1zeXMgKFNFTUNUTCxTRVRBTEwpIDRzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zZXRhbGwob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc2V0YWxsKHNlbWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc2V0YWxsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3NldGFsbChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUzOiAgICAgICAgICAgICAgU1lTX3NlbXN5cyAoU0VNQ1RMLEdFVFZBTCkgNHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX2dldHZhbChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9nZXR2YWwoc2VtaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9nZXR2YWwoc2VtbnVtKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfZ2V0dmFsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTM6ICAgICAgICAgICAgICBTWVNfc2Vtc3lzIChTRU1DVEwsU0VUVkFMKSA1cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc2V0dmFsKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3NldHZhbChzZW1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX3NldHZhbChzZW1udW0pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9zZXR2YWwoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfc2V0dmFsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTM6ICAgICAgICAgICAgICBTWVNfc2Vtc3lzIChTRU1DVEwsR0VUUElEKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfZ2V0cGlkKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX2dldHBpZChzZW1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX2dldHBpZChzZW1udW0pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9nZXRwaWQoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1MzogICAgICAgICAgICAgIFNZU19zZW1zeXMgKFNFTUNUTCxHRVROQ05UKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfZ2V0bmNudChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9nZXRuY250KHNlbWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfZ2V0bmNudChzZW1udW0pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWN0bF9nZXRuY250KGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTM6ICAgICAgICAgICAgICBTWVNfc2Vtc3lzIChTRU1DVEwsR0VUWkNOVCkgNHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX2dldHpjbnQob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfZ2V0emNudChzZW1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtY3RsX2dldHpjbnQoc2VtbnVtKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1jdGxfZ2V0emNudChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUzOiAgICAgICAgICAgICAgU1lTX3NlbXN5cyAoU0VNR0VUKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1nZXQob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1nZXQoa2V5KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1nZXQobnNlbXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWdldChzZW1mbGcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUzOiAgICAgICAgICAgICAgU1lTX3NlbXN5cyAoU0VNT1ApIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbW9wKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2Vtb3Aoc2VtaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbW9wKHNvcHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbW9wKG5zb3BzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbW9wKHNvcHMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTM6ICAgICAgICAgICAgICBTWVNfc2Vtc3lzIChTRU1JRFMpIDRzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWlkcyhvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWlkcyhidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzX3NlbWlkcyhuaWRzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW1pZHMocG5pZHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzKHNlbWlkcywgYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2Vtc3lzKHNlbWlkcywgcG5pZHMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTM6ICAgICAgICAgICAgICBTWVNfc2Vtc3lzIChTRU1USU1FRE9QKSA1cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW10aW1lZG9wKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtdGltZWRvcChzZW1pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW1zeXNfc2VtdGltZWRvcChzb3BzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW10aW1lZG9wKG5zb3BzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbXN5c19zZW10aW1lZG9wKHRpbWVvdXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VtdGltZWRvcChzb3BzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2VtdGltZWRvcCh0aW1lb3V0KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFRDR0VUUykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NjogICAgICAgICAgICBTWVNfZmNob3duYXQgNXMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmY2hvd25hdChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmY2hvd25hdChwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjaG93bmF0KG93bmVyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjaG93bmF0KGdyb3VwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjaG93bmF0KGZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmNob3duYXQocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1ODogICAgICAgICAgICAgIFNZU19mZHN5bmMgMnMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmZHN5bmMoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmRzeW5jKGZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU5OiAgICAgICAgICAgICAgU1lTX2V4ZWN2ZSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGV4ZWN2ZShmaWxlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGV4ZWN2ZShhcmd2KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGV4ZWN2ZShlbnZwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGV4ZWN2ZShmaWxlbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA2MDogICAgICAgICAgICAgICBTWVNfdW1hc2sgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB1bWFzayhtYXNrKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA2MTogICAgICAgICAgICAgIFNZU19jaHJvb3QgMXMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBjaHJvb3QocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBjaHJvb3QocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA2MjogICAgICAgICAgICAgICBTWVNfZmNudGwgKEdFVEZEKSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGZjbnRsKGZpbGRlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmY250bChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDYyOiAgICAgICAgICAgICAgIFNZU19mY250bCAoRFVQRkQpIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZmNudGwoZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjbnRsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmY250bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDYyOiAgICAgICAgICAgICAgIFNZU19mY250bCAoR0VUTEspIDNzIDVtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZmNudGwoZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjbnRsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmY250bChsb2NrKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjbnRsKGxvY2stPmxfdHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGZjbnRsKGxvY2stPmxfd2hlbmNlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gZmNudGwobG9jay0+bF9zdGFydCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGZjbnRsKGxvY2stPmxfbGVuKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gZmNudGwobG9jaykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA2NDogICAgICAgICAgICBTWVNfcmVuYW1lYXQgNHMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSByZW5hbWVhdChmcm9tZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVuYW1lYXQob2xkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJlbmFtZWF0KHRvZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVuYW1lYXQobmV3KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJlbmFtZWF0KG9sZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHJlbmFtZWF0KG5ldykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB4eDogICAgICAgICAgICBTWVNfdW5saW5rYXQgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB1bmxpbmthdChkaXJmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1bmxpbmthdChwYXRobmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1bmxpbmthdChmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1bmxpbmthdChwYXRobmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA2NjogICAgICAgICAgICAgU1lTX2ZzdGF0YXQgNHMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmc3RhdGF0KGZpbGRlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmc3RhdGF0KHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZnN0YXRhdChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZnN0YXRhdChmbGFnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZzdGF0YXQocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGZzdGF0YXQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDY4OiAgICAgICAgICAgICAgU1lTX29wZW5hdCAoMy1hcmdzKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIG9wZW5hdChmaWxkZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gb3BlbmF0KGZpbGVuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW5hdChmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBvcGVuYXQoZmlsZW5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNjg6ICAgICAgICAgICAgICBTWVNfb3BlbmF0ICg0LWFyZ3MpIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gb3BlbmF0KGZpbGRlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBvcGVuYXQoZmlsZW5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gb3BlbmF0KGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW5hdChtb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW5hdChmaWxlbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA3MDogICAgICAgICAgICAgU1lTX3Rhc2tzeXMgKHNldHRhc2tpZCkgM3MgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB0YXNrc3lzX3NldHRhc2tpZChjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHRhc2tzeXNfc2V0dGFza2lkKHByb2ppZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB0YXNrc3lzX3NldHRhc2tpZChmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNzA6ICAgICAgICAgICAgIFNZU190YXNrc3lzIChnZXR0YXNraWQpIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdGFza3N5c19nZXR0YXNraWQoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNzA6ICAgICAgICAgICAgIFNZU190YXNrc3lzIChnZXRwcm9qaWQpIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdGFza3N5c19nZXRwcm9qaWQoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNzA6ICAgICAgICAgICAgIFNZU190YXNrc3lzIChwcm9qbGlzdCkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB0YXNrc3lzX3Byb2psaXN0KGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdGFza3N5c19wcm9qbGlzdChpZGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB0YXNrc3lzX3Byb2psaXN0KGlkYnVmc3opIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdGFza3N5cyhpZGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA3MzogICAgICAgIFNZU19nZXRwYWdlc2l6ZXMgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBnZXRwYWdlc2l6ZXMobGVnYWN5KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldHBhZ2VzaXplcyhidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0cGFnZXNpemVzKG5lbGVtKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldHBhZ2VzaXplcyhidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNzc6ICAgICAgICAgICAgU1lTX2x3cF9wYXJrIGlnbm9yZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA3ODogICAgICAgICAgIFNZU19zZW5kZmlsZXYgKFNFTkRGSUxFVikgNXMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldihmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYodmVjKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldihzZnZjbnQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KHhmZXJyZWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KHZlYykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldih4ZmVycmVkKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDc4OiAgICAgICAgICAgU1lTX3NlbmRmaWxldiAoU0VOREZJTEVWKSA0cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldihvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldih4ZmVycmVkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldih2ZWMpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KHhmZXJyZWQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYodmVjWzBdLnNmdl9vZmYgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA3ODogICAgICAgICAgIFNZU19zZW5kZmlsZXYgKFNFTkRGSUxFVjY0KSA1cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldihvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldih2ZWMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KHNmdmNudCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYoeGZlcnJlZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYodmVjKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KHhmZXJyZWQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNzg6ICAgICAgICAgICBTWVNfc2VuZGZpbGV2IChTRU5ERklMRVY2NCkgNHMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldihmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYoeGZlcnJlZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYodmVjKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHNlbmRmaWxldih4ZmVycmVkKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KHZlY1swXS5zZnZfb2ZmIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgODE6ICAgICAgICAgICAgU1lTX2dldGRlbnRzIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZ2V0ZGVudHMoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0ZGVudHMoZGlycCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRkZW50cyhjb3VudCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRkZW50cyhkaXJwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDgyOiAgICAgICAgICAgICBTWVNfcHJpdnN5cyAoUFJJVlNZU19TRVRQUFJJVikgNXMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwcml2c3lzX3NldHBwcml2KGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpdnN5c19zZXRwcHJpdihvcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcml2c3lzX3NldHBwcml2KHR5cGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpdnN5c19zZXRwcHJpdihwc2V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfc2V0cHByaXYoYnVmc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcml2c3lzKHBzZXQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgODI6ICAgICAgICAgICAgIFNZU19wcml2c3lzIChQUklWU1lTX0dFVFBQUklWKSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfZ2V0cHByaXYoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcml2c3lzX2dldHBwcml2KG9wKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfZ2V0cHByaXYodHlwZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcml2c3lzX2dldHBwcml2KHBzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpdnN5c19nZXRwcHJpdihidWZzaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaXZzeXMocHNldCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA4MjogICAgICAgICAgICAgU1lTX3ByaXZzeXMgKFBSSVZTWVNfR0VUSU1QTElORk8pIDVzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJpdnN5c19nZXRwcml2aW5mbyhjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfZ2V0cHJpdmluZm8ob3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpdnN5c19nZXRwcml2aW5mbyh0eXBlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfZ2V0cHJpdmluZm8oYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfZ2V0cHJpdmluZm8oYnVmc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcml2c3lzKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA4MjogICAgICAgICAgICAgU1lTX3ByaXZzeXMgKFBSSVZTWVNfU0VUUEZMQUdTKSAzcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfc2V0cGZsYWdzKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpdnN5c19zZXRwZmxhZ3MoZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcml2c3lzX3NldHBmbGFncyh2YWwpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDgyOiAgICAgICAgICAgICBTWVNfcHJpdnN5cyAoUFJJVlNZU19HRVRQRkxBR1MpIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJpdnN5c19zZXRwZmxhZ3MoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcml2c3lzX3NldHBmbGFncyhmbGFnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA4MjogICAgICAgICAgICAgU1lTX3ByaXZzeXMgKFBSSVZTWVNfSVNTRVRVR0lEKSAxcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfaXNzZXR1Z2lkKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDgyOiAgICAgICAgICAgICBTWVNfcHJpdnN5cyAoUFJJVlNZU19QRkVYRUNfUkVHKSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfcmVnaXN0ZXJfcGZleGVjKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpdnN5c19yZWdpc3Rlcl9wZmV4ZWMoZGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA4MjogICAgICAgICAgICAgU1lTX3ByaXZzeXMgKFBSSVZTWVNfUEZFWEVDX1VOUkVHKSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHByaXZzeXNfdW5yZWdpc3Rlcl9wZmV4ZWMoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcml2c3lzX3VucmVnaXN0ZXJfcGZleGVjKGRpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgODM6ICAgICAgICAgICAgU1lTX3VjcmVkc3lzIChVQ1JFRFNZU19VQ1JFREdFVCkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB1Y3JlZHN5c191Y3JlZGdldChjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHVjcmVkc3lzX3VjcmVkZ2V0KHBpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1Y3JlZHN5c191Y3JlZGdldChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdWNyZWRzeXMoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDgzOiAgICAgICAgICAgIFNZU191Y3JlZHN5cyAoVUNSRURTWVNfR0VUUEVFUlVDUkVEKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHVjcmVkc3lzX2dldHBlZXJ1Y3JlZChjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHVjcmVkc3lzX2dldHBlZXJ1Y3JlZChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1Y3JlZHN5c19nZXRwZWVydWNyZWQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHVjcmVkc3lzKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA4NTogICAgICAgICAgICAgIFNZU19nZXRtc2cgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBnZXRtc2coZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldG1zZyhjdGxwdHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0bXNnKGRhdGFwdHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0bXNnKGZsYWdzcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRtc2coZmxhZ3NwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDg2OiAgICAgICAgICAgICAgU1lTX3B1dG1zZyA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHB1dG1zZyhmaWxkZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHV0bXNnKGN0cmxwdHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHV0bXNnKGRhdGFwdHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHV0bXNnKGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5MTogICAgICAgICAgIFNZU19zZXRncm91cHMgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZXRncm91cHMoc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRncm91cHMobGlzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRncm91cHMobGlzdCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5MjogICAgICAgICAgIFNZU19nZXRncm91cHMgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBnZXRncm91cHMoc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRncm91cHMobGlzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRncm91cHMobGlzdCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5NTogICAgICAgICBTWVNfc2lncHJvY21hc2sgM3MgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzaWdwcm9jbWFzayhob3cpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2lncHJvY21hc2soc2V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNpZ3Byb2NtYXNrKG9zZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2lncHJvY21hc2soc2V0KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2lncHJvY21hc2sob3NldCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5NzogICAgICAgICBTWVNfc2lnYWx0c3RhY2sgMnMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzaWdhbHRzdGFjayhzcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaWdhbHRzdGFjayhvc3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2lnYWx0c3RhY2soc3MpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzaWdhbHRzdGFjayhvc3MpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgOTg6ICAgICAgICAgICBTWVNfc2lnYWN0aW9uIDNzIDRtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2lnYWN0aW9uKHNpZ25hbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaWdhY3Rpb24oYWN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNpZ2FjdGlvbihvYWN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNpZ2FjdGlvbihhY3QtPnNhX2ZsYWdzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2lnYWN0aW9uKGFjdC0+c2FfaGFuZGxlcikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNpZ2FjdGlvbihhY3QtPnNhX21hc2spIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzaWdhY3Rpb24ob2FjdCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5OTogICAgICAgICAgU1lTX3NpZ3BlbmRpbmcgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzaWdwZW5kaW5nKGZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2lncGVuZGluZyhzZXRwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNpZ3BlbmRpbmcoc2V0cCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEwMDogICAgICAgICAgICAgU1lTX2NvbnRleHQgKEdFVENPTlRFWFQpIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZ2V0c2V0Y29udGV4dF9nZXRjb250ZXh0KGZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0c2V0Y29udGV4dF9nZXRjb250ZXh0KHVjcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzZXRjb250ZXh0KHVjcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEwMDogICAgICAgICAgICAgU1lTX2NvbnRleHQgKFNFVENPTlRFWFQpIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZ2V0c2V0Y29udGV4dF9zZXRjb250ZXh0KGZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0c2V0Y29udGV4dF9zZXRjb250ZXh0KHVjcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMDA6ICAgICAgICAgICAgIFNZU19jb250ZXh0IChHRVRVU1RBQ0spIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZ2V0c2V0Y29udGV4dF9nZXR1c3RhY2soZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzZXRjb250ZXh0X2dldHVzdGFjayhzcHApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0c2V0Y29udGV4dChzcHApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMDA6ICAgICAgICAgICAgIFNZU19jb250ZXh0IChTRVRVU1RBQ0spIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZ2V0c2V0Y29udGV4dF9zZXR1c3RhY2soZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzZXRjb250ZXh0X3NldHVzdGFjayhzcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzZXRjb250ZXh0X3NldHVzdGFjayhzcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEwMTogICAgICAgICAgICBTWVNfZmNobW9kYXQgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmY2htb2RhdChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmY2htb2RhdChwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjaG1vZGF0KG1vZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmNobW9kYXQoZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmY2htb2RhdChwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTAyOiAgICAgICAgICAgICBTWVNfbWtkaXJhdCAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIG1rZGlyYXQoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbWtkaXJhdChwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1rZGlyYXQobW9kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBta2RpcmF0KHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMDM6ICAgICAgICAgICAgIFNZU19zdGF0dmZzIDJzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc3RhdHZmcyhwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN0YXR2ZnMoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN0YXR2ZnMocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHN0YXR2ZnMoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTAzOiAgICAgICAgICAgICBTWVNfc3RhdHZmcyA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHN0YXR2ZnMocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzdGF0dmZzKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgLi4uCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEwNDogICAgICAgICAgICBTWVNfZnN0YXR2ZnMgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmc3RhdHZmcyhmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmc3RhdHZmcyhidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZnN0YXR2ZnMoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTA2OiAgICAgICAgICAgICAgU1lTX25mc3N5cyAoTkZTX1JFVkFVVEgpIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbmZzc3lzX25mc19yZXZhdXRoKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBuZnNzeXNfbmZzX3JldmF1dGgoYXJncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBuZnNzeXMoYXJnKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTA3OiAgICAgICAgICAgICAgU1lTX3dhaXRpZCA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHdhaXRpZChpZHR5cGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gd2FpdGlkKGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHdhaXRpZChpbmZvcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB3YWl0aWQob3B0aW9ucykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB3YWl0aWQoaW5mb3ApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTE6ICAgICAgICAgICBTWVNfc2lncmVzZW5kIDNzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2lncmVzZW5kKHNpZ25hbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaWdyZXNlbmQoc2lnaW5mbykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaWdyZXNlbmQobWFzaykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaWdyZXNlbmQoc2lnaW5mbykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNpZ3Jlc2VuZChtYXNrKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTEyOiAgICAgICAgIFNZU19wcmlvY250bHN5cyAoR0VUQ0lEKSA2cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBjX3ZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocHNwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoYXJnMikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhjbG5hbWUpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTEyOiAgICAgICAgIFNZU19wcmlvY250bHN5cyAoR0VUQ0xJTkZPKSA2cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBjX3ZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocHNwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoYXJnMikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhjaWQpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTEyOiAgICAgICAgIFNZU19wcmlvY250bHN5cyAoU0VUUEFSTVMpIDVzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocGNfdmVyc2lvbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwc3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhhcmcyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBzcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBhcm1zKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTEyOiAgICAgICAgIFNZU19wcmlvY250bHN5cyAoR0VUUEFSTVMpIDVzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocGNfdmVyc2lvbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwc3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhhcmcyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBzcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBhcm1zKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTEyOiAgICAgICAgIFNZU19wcmlvY250bHN5cyAoR0VUUFJJUkFOR0UpIDVzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocGNfdmVyc2lvbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwc3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhhcmcyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGNpZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHByaSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzExMjogICAgICAgICBTWVNfcHJpb2NudGxzeXMgKERPTklDRSkgNXMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwY192ZXJzaW9uKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBzcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZzIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocHNwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMob3ApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTI6ICAgICAgICAgU1lTX3ByaW9jbnRsc3lzIChTRVRYUEFSTVMpIDVzIDNtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocGNfdmVyc2lvbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwc3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhhcmcyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBzcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGNsbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHZhcGFybXNjbnQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTI6ICAgICAgICAgU1lTX3ByaW9jbnRsc3lzIChHRVRYUEFSTVMpIDVzIDNtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocGNfdmVyc2lvbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwc3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhhcmcyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBzcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGNsbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHZhcGFybXNjbnQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTI6ICAgICAgICAgU1lTX3ByaW9jbnRsc3lzIChTRVRERkxDTCkgNXMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwY192ZXJzaW9uKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBzcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZzIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoY2xuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTEyOiAgICAgICAgIFNZU19wcmlvY250bHN5cyAoR0VUREZMQ0wpIDVzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocGNfdmVyc2lvbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwc3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhhcmcyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGNsbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzExMjogICAgICAgICBTWVNfcHJpb2NudGxzeXMgKERPUFJJTykgNXMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhwY192ZXJzaW9uKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKHBzcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmlvY250bHN5cyhjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByaW9jbnRsc3lzKGFyZzIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMocHNwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gcHJpb2NudGxzeXMob3ApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTM6ICAgICAgICAgICAgU1lTX3BhdGhjb25mIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcGF0aGNvbmYocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwYXRoY29uZihuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBhdGhjb25mKHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTU6ICAgICAgICAgICAgICAgIFNZU19tbWFwIDZzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbW1hcChzdGFydCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtbWFwKGxlbmd0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtbWFwKHByb3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW1hcChmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtbWFwKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1tYXAob2Zmc2V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzExNjogICAgICAgICAgICBTWVNfbXByb3RlY3QgM3MgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBtcHJvdGVjdChhZGRyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1wcm90ZWN0KGxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtcHJvdGVjdChwcm90KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzExNzogICAgICAgICAgICAgIFNZU19tdW5tYXAgMnMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBtdW5tYXAoc3RhcnQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbXVubWFwKGxlbmd0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMjA6ICAgICAgICAgICAgICBTWVNfZmNoZGlyIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZmNoZGlyKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEyMTogICAgICAgICAgICAgICBTWVNfcmVhZHYgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSByZWFkdihmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWFkdih2ZWN0b3IpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVhZHYoY291bnQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVhZHYodmVjdG9yKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTIyOiAgICAgICAgICAgICAgU1lTX3dyaXRldiAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHdyaXRldihmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB3cml0ZXYodmVjdG9yKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHdyaXRldihjb3VudCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB3cml0ZXYodmVjdG9yKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTI3OiAgICAgICAgICAgICBTWVNfbW1hcG9iaiA1cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIG1tYXBvYmooZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW1hcG9iaihmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtbWFwb2JqKHN0b3JhZ2UpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW1hcG9iaihlbGVtZW50cykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtbWFwb2JqKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtbWFwb2JqKGVsZW1lbnRzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbW1hcG9iaihhcmcpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMjg6ICAgICAgICAgICBTWVNfc2V0cmxpbWl0IDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2V0cmxpbWl0KHJlc291cmNlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNldHJsaW1pdChybGltKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNldHJsaW1pdChybGltKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTI5OiAgICAgICAgICAgU1lTX2dldHJsaW1pdCAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGdldHJsaW1pdChyZXNvdXJjZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRybGltaXQocmxpbSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRybGltaXQocmxpbSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEzMTogICAgICAgICAgICAgU1lTX21lbWNudGwgNnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBtZW1jbnRsKGFkZHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbWVtY250bChsZW4pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbWVtY250bChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbWVtY250bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbWVtY250bChhdHRyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1lbWNudGwobWFzaykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtZW1jbnRsKGFyZykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEzMjogICAgICAgICAgICAgU1lTX2dldHBtc2cgNXMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBnZXRwbXNnKGZpbGRlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRwbXNnKGN0bHB0cikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRwbXNnKGRhdGFwdHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0cG1zZyhiYW5kcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRwbXNnKGZsYWdzcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRwbXNnKGJhbmRwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gZ2V0cG1zZyhmbGFnc3ApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMzM6ICAgICAgICAgICAgIFNZU19wdXRwbXNnIDVzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHV0cG1zZyhmaWxkZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHV0cG1zZyhjdHJscHRyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHB1dHBtc2coZGF0YXB0cikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwdXRwbXNnKGJhbmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHV0cG1zZyhmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMzU6ICAgICAgICAgICAgICAgU1lTX3VuYW1lIDFzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdW5hbWUobmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1bmFtZShuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTM1OiAgICAgICAgICAgICAgIFNZU191bmFtZSA2cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHVuYW1lKG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIC4uLgorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICAuLi4KKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgLi4uCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIC4uLgorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMzY6ICAgICAgICAgICAgIFNZU19zZXRlZ2lkIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2V0ZWdpZChlZ2lkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEzNzogICAgICAgICAgIFNZU19zeXNjb25maWcgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzeXNjb25mKG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTM5OiAgICAgICAgICBTWVNfc3lzdGVtaW5mbyAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHN5c2luZm8oY29tbWFuZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzeXNpbmZvKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzeXNpbmZvKGNvdW50KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN5c2luZm8oYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTQxOiAgICAgICAgICAgICBTWVNfc2V0ZXVpZCAxcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNldGV1aWQoZXVpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNDI6ICAgICAgICAgICAgIFNZU19mb3Jrc3lzIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZm9ya3N5cyhzdWJjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZvcmtzeXMoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTQ0OiAgICAgICAgU1lTX3NpZ3RpbWVkd2FpdCAzcyAzbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNpZ3RpbWVkd2FpdChzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2lndGltZWR3YWl0KGluZm8pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2lndGltZWR3YWl0KHRpbWVvdXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2lndGltZXdhaXQoc2V0KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2lndGltZWR3YWl0KGluZm8pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzaWd0aW1lZHdhaXQodGltZW91dCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE0NjogICAgICAgICAgICAgICBTWVNfeWllbGQgMHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNDg6ICAgICAgIFNZU19sd3Bfc2VtYV9wb3N0IDFzIDNtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX3NlbWFfcG9zdChzZW1hKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zZW1hX3Bvc3Qoc2VtYS0+dHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9zZW1hX3Bvc3Qoc2VtYS0+Y291bnQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfc2VtYV9wb3N0KHNlbWEtPndhaXRlcnMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNTA6ICAgICAgICAgIFNZU19sd3BfZGV0YWNoIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX2RldGFjaChsd3BpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNTM6ICAgICAgICAgICAgIFNZU19mY2hyb290IDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZmNocm9vdChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNTY6ICAgICAgICBTWVNfZ2V0dGltZW9mZGF5IDFzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZ2V0dGltZW9mZGF5KHRwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldHRpbWVvZmRheSh0cCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE1NzogICAgICAgICAgIFNZU19nZXRpdGltZXIgMnMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBnZXRpdGltZXIod2hpY2gpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0aXRpbWVyKHZhbHVlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldGl0aW1lcigmdmFsdWUtPml0X2ludGVydmFsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gZ2V0aXRpbWVyKCZ2YWx1ZS0+aXRfdmFsdWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNTg6ICAgICAgICAgICBTWVNfc2V0aXRpbWVyIDNzIDRtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2V0aXRpbWVyKHdoaWNoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNldGl0aW1lcih2YWx1ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRpdGltZXIob3ZhbHVlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNldGl0aW1lcigmdmFsdWUtPml0X2ludGVydmFsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2V0aXRpbWVyKCZ2YWx1ZS0+aXRfdmFsdWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzZXRpdGltZXIoJm92YWx1ZS0+aXRfaW50ZXJ2YWwpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzZXRpdGltZXIoJm92YWx1ZS0+aXRfdmFsdWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNTk6ICAgICAgICAgIFNZU19sd3BfY3JlYXRlIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX2NyZWF0ZSh1Y3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX2NyZWF0ZShmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfY3JlYXRlKG5ld19sd3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX2NyZWF0ZShuZXdfbHdwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTYwOiAgICAgICAgICAgIFNZU19sd3BfZXhpdCBpZ25vcmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNjE6ICAgICAgICAgU1lTX2x3cF9zdXNwZW5kIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX3N1c3BlbmQobHdwaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTYyOiAgICAgICAgU1lTX2x3cF9jb250aW51ZSAxcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGx3cF9jb250aW51ZSh0YXJnZXRfbHdwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE2NDogICAgICAgICAgICBTWVNfbHdwX3NlbGYgMHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNjU6ICAgICAgICAgU1lTX2x3cF9zaWdtYXNrIDVzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX3NpZ21hc2soaG93KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdtYXNrKGJpdHMwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdtYXNrKGJpdHMxKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdtYXNrKGJpdHMyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdtYXNrKGJpdHMzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitzaWdwcm9jbWFzazogdW5rbm93biAnaG93JyBmaWVsZCAwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE2NjogICAgICAgICBTWVNfbHdwX3ByaXZhdGUgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsd3BfcHJpdmF0ZShjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3ByaXZhdGUod2hpY2gpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3ByaXZhdGUoYmFzZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfcHJpdmF0ZShiYXNlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTY3OiAgICAgICAgICAgIFNZU19sd3Bfd2FpdCAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGx3cF93YWl0KGx3cGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF93YWl0KGRlcGFydGVkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF93YWl0KGRlcGFydGVkKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTY4OiAgICBTWVNfbHdwX211dGV4X3dha2V1cCAycyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGx3cF9tdXRleF93YWtldXAobHApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX211dGV4X3dha2V1cChyZWxlYXNlX2FsbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfbXV0ZXhfd2FrZXVwKGxwLT5tdXRleF90eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX211dGV4X3dha2V1cChscC0+bXV0ZXhfd2FpdGVycykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE3MDogICAgICAgU1lTX2x3cF9jb25kX3dhaXQgNHMgNW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsd3BfY29uZF93YWl0KGN2cCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfY29uZF93YWl0KG1wKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9jb25kX3dhaXQodHNwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9jb25kX3dhaXQoY2hlY2tfcGFydCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfY29uZF93YWl0KGN2cC0+dHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9jb25kX3dhaXQoY3ZwLT53YWl0ZXJzX2tlcm5lbCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9jb25kX3dhaXQobXAtPm11dGV4X3R5cGUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3BfY29uZF93YWl0KG1wLT5tdXRleF93YWl0ZXJzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX2NvbmRfd2FpdCh0c3ApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNzI6ICBTWVNfbHdwX2NvbmRfYnJvYWRjYXN0IDFzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX2NvbmRfYnJvYWRjYXN0KGN2cCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfY29uZF9icm9hZGNhc3QoY3ZwLT50eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX2NvbmRfYnJvYWRjYXN0KGN2cC0+d2FpdGVyc19rZXJuZWwpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNzM6ICAgICAgICAgICAgICAgU1lTX3ByZWFkIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHJlYWQoZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByZWFkKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmVhZChuYnl0ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmVhZChvZmZzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJlYWQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTc0OiAgICAgICAgICAgICAgU1lTX3B3cml0ZSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHB3cml0ZShmaWxkZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHdyaXRlKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwd3JpdGUobmJ5dGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHdyaXRlKG9mZnNldCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwd3JpdGUoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTgxOiAgICAgICAgICAgU1lTX3J1c2FnZXN5cyAoX1JVU0FHRVNZU19HRVRSVVNBR0UpIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcnVzYWdlc3lzX2dldHJ1c2FnZShjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5c19nZXRydXNhZ2Uocl91c2FnZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBydXNhZ2VzeXMocl91c2FnZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4MTogICAgICAgICAgIFNZU19ydXNhZ2VzeXMgKF9SVVNBR0VTWVNfR0VUUlVTQUdFX0NITEQpIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcnVzYWdlc3lzX2dldHJ1c2FnZShjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5c19nZXRydXNhZ2Uocl91c2FnZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBydXNhZ2VzeXMocl91c2FnZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4MTogICAgICAgICAgIFNZU19ydXNhZ2VzeXMgKF9SVVNBR0VTWVNfR0VUUlVTQUdFX0xXUCkgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBydXNhZ2VzeXNfZ2V0cnVzYWdlKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcnVzYWdlc3lzX2dldHJ1c2FnZShyX3VzYWdlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5cyhyX3VzYWdlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTgxOiAgICAgICAgICAgU1lTX3J1c2FnZXN5cyAoX1JVU0FHRVNZU19HRVRWTVVTQUdFKSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5c19nZXR2bXVzYWdlKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcnVzYWdlc3lzX2dldHZtdXNhZ2UoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcnVzYWdlc3lzX2dldHZtdXNhZ2UoYWdlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5c19nZXR2bXVzYWdlKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBydXNhZ2VzeXNfZ2V0dm11c2FnZShucmVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5cyhucmVzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTgxOiAgICAgICAgICAgU1lTX3J1c2FnZXN5cyAoX1JVU0FHRVNZU19HRVRWTVVTQUdFKSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5c19nZXR2bXVzYWdlKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcnVzYWdlc3lzX2dldHZtdXNhZ2UoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcnVzYWdlc3lzX2dldHZtdXNhZ2UoYWdlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5c19nZXR2bXVzYWdlKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBydXNhZ2VzeXNfZ2V0dm11c2FnZShucmVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJ1c2FnZXN5cyhidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODI6ICAgICAgICAgICAgICAgIFNZU19wb3J0IChQT1JUX0NSRUFURSkgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwb3J0X2NyZWF0ZShvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTgyOiAgICAgICAgICAgICAgICBTWVNfcG9ydCAoUE9SVF9BU1NPQ0lBVEUsUE9SVF9TT1VSQ0VfRkQpIDZzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcG9ydF9hc3NvY2lhdGUob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGEwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGExKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGEyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGEzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGE0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4MjogICAgICAgICAgICAgICAgU1lTX3BvcnQgKFBPUlRfQVNTT0NJQVRFLFBPUlRfU09VUkNFX0ZJTEUpIDZzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcG9ydF9hc3NvY2lhdGUob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGEwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGExKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGEyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGEzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYXNzb2NpYXRlKGE0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnQoZmlsZV9vYmopIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODI6ICAgICAgICAgICAgICAgIFNZU19wb3J0IChQT1JUX0RJU1NPQ0lBVEUsUE9SVF9TT1VSQ0VfRkQpIDZzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcG9ydF9kaXNzb2NpYXRlKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2Rpc3NvY2lhdGUoYTApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9kaXNzb2NpYXRlKGExKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZGlzc29jaWF0ZShhMikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2Rpc3NvY2lhdGUoYTMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9kaXNzb2NpYXRlKGE0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4MjogICAgICAgICAgICAgICAgU1lTX3BvcnQgKFBPUlRfRElTU09DSUFURSxQT1JUX1NPVVJDRV9GSUxFKSA2cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHBvcnRfZGlzc29jaWF0ZShvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9kaXNzb2NpYXRlKGEwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZGlzc29jaWF0ZShhMSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2Rpc3NvY2lhdGUoYTIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9kaXNzb2NpYXRlKGEzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZGlzc29jaWF0ZShhNCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0KGZpbGVfb2JqKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTgyOiAgICAgICAgICAgICAgICBTWVNfcG9ydCAoUE9SVF9TRU5EKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHBvcnRfc2VuZChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9zZW5kKGEwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfc2VuZChhMSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X3NlbmQoYTIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTgyOiAgICAgICAgICAgICAgICBTWVNfcG9ydCAoUE9SVF9TRU5ETikgNnMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwb3J0X3NlbmRuKG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X3NlbmRuKGEwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfc2VuZG4oYTEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9zZW5kbihhMikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X3NlbmRuKGEzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfc2VuZG4oYTQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydChwb3J0cykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHBvcnQoZXJyb3JzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTgyOiAgICAgICAgICAgICAgICBTWVNfcG9ydCAoUE9SVF9HRVQpIDZzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcG9ydF9nZXQob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZ2V0KGEwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZ2V0KGExKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZ2V0KGEyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZ2V0KGEzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZ2V0KGE0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnQodWV2cCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4MjogICAgICAgICAgICAgICAgU1lTX3BvcnQgKFBPUlRfR0VUTikgNXMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwb3J0X2dldG4ob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZ2V0bihhMCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2dldG4oYTEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9nZXRuKGEyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZ2V0bihhMykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2dldG4oYTQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydCh0aW1lb3V0KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gcG9ydCh1ZXZwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTgyOiAgICAgICAgICAgICAgICBTWVNfcG9ydCAoUE9SVF9BTEVSVCkgNXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwb3J0X2FsZXJ0KG9wY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2FsZXJ0KGEwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfYWxlcnQoYTEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9hbGVydChhMikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2FsZXJ0KGEzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4MjogICAgICAgICAgICAgICAgU1lTX3BvcnQgKFBPUlRfRElTUEFUQ0gpIDZzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcG9ydF9kaXNwYXRjaChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9kaXNwYXRjaChhMCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2Rpc3BhdGNoKGExKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvcnRfZGlzcGF0Y2goYTIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9ydF9kaXNwYXRjaChhMykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb3J0X2Rpc3BhdGNoKGE0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4MzogICAgICAgICAgICAgU1lTX3BvbGxzeXMgNHMgNW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwb2xsKGZkcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwb2xsKG5mZHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcG9sbCh0aW1lb3V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvbGwoc2V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBvbGwodWZkcy5mZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHBvbGwodWZkcy5ldmVudHMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBwb2xsKHVmZHMucmV2ZW50cykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHBvbGwodGltZW91dCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHBvbGwoc2V0KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg0OiAgICAgICAgICAgIFNZU19sYWJlbHN5cyAoVFNPTF9TWVNMQUJFTElORykgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsYWJlbHN5c19zeXNsYWJlbGluZyhvcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODQ6ICAgICAgICAgICAgU1lTX2xhYmVsc3lzIChUU09MX1ROUkgpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfdG5yaChvcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsYWJlbHN5c190bnJoKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsYWJlbHN5c190bnJoKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsYWJlbHN5cyhidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODQ6ICAgICAgICAgICAgU1lTX2xhYmVsc3lzIChUU09MX1ROUkhUUCkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsYWJlbHN5c190bnJodHAob3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfdG5yaHRwKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsYWJlbHN5c190bnJodHAoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxhYmVsc3lzKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NDogICAgICAgICAgICBTWVNfbGFiZWxzeXMgKFRTT0xfVE5NTFApIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfdG5tbHAob3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfdG5tbHAoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxhYmVsc3lzX3RubWxwKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsYWJlbHN5cyhidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODQ6ICAgICAgICAgICAgU1lTX2xhYmVsc3lzIChUU09MX0dFVExBQkVMKSAzcyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGxhYmVsc3lzX2dldGxhYmVsKG9wKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxhYmVsc3lzX2dldGxhYmVsKHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfZ2V0bGFiZWwobGFiZWwpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXMocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGxhYmVsc3lzKGxhYmVsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg0OiAgICAgICAgICAgIFNZU19sYWJlbHN5cyAoVFNPTF9GR0VUTEFCRUwpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfZmdldGxhYmVsKG9wKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxhYmVsc3lzX2ZnZXRsYWJlbChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsYWJlbHN5c19mZ2V0bGFiZWwobGFiZWwpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXMobGFiZWwpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODU6ICAgICAgICAgICAgICAgICBTWVNfYWNsIChTRVRBQ0wpIDRzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYWNsKHBhdGhwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjbChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNsKG5lbnRyaWVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjbChhY2xidWZwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjbChwYXRocCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGFjbChhY2xidWZwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg1OiAgICAgICAgICAgICAgICAgU1lTX2FjbCAoR0VUQUNMKSA0cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGFjbChwYXRocCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhY2woY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjbChuZW50cmllcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhY2woYWNsYnVmcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhY2wocGF0aHApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBhY2woYWNsYnVmcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NTogICAgICAgICAgICAgICAgIFNZU19hY2wgKEdFVEFDTENOVCkgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhY2wocGF0aHApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhY2wobmVudHJpZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNsKGFjbGJ1ZnApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNsKHBhdGhwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg1OiAgICAgICAgICAgICAgICAgU1lTX2FjbCAoQUNFX1NFVEFDTCkgNHMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhY2wocGF0aHApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhY2wobmVudHJpZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNsKGFjbGJ1ZnApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNsKHBhdGhwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gYWNsKGFjbGJ1ZnApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODU6ICAgICAgICAgICAgICAgICBTWVNfYWNsIChBQ0VfR0VUQUNMKSA0cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGFjbChwYXRocCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhY2woY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjbChuZW50cmllcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhY2woYWNsYnVmcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhY2wocGF0aHApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBhY2woYWNsYnVmcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NTogICAgICAgICAgICAgICAgIFNZU19hY2wgKEFDRV9HRVRBQ0xDTlQpIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYWNsKHBhdGhwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjbChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNsKG5lbnRyaWVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjbChhY2xidWZwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjbChwYXRocCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9HRVRBVUlEKSAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2dldGF1aWQoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19nZXRhdWlkKGF1aWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoYXVpZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9TRVRBVUlEKSAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX3NldGF1aWQoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19zZXRhdWlkKGF1aWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoYXVpZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9HRVRBVURJVCkgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19nZXRhdWRpdChjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2dldGF1ZGl0KGFpKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzKGFpKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX1NFVEFVRElUKSAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX3NldGF1ZGl0KGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfc2V0YXVkaXQoYWkpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoYWkpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODY6ICAgICAgICAgICAgU1lTX2F1ZGl0c3lzIChCU01fQVVESVQpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXQoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdChyZWNvcmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXQobGVuZ3RoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzKHJlY29yZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX0dFVFBPTElDWSkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRwb2xpY3koY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRwb2xpY3koY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldHBvbGljeShwb2xpY3kpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMocG9saWN5KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfU0VUUE9MSUNZKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldHBvbGljeShjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldHBvbGljeShjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0cG9saWN5KHBvbGljeSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhwb2xpY3kpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODY6ICAgICAgICAgICAgU1lTX2F1ZGl0c3lzIChCU01fQVVESVRDVEwsQV9HRVRLTUFTSykgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRrbWFzayhjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGttYXNrKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRrbWFzayhrbWFzaykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhrbWFzaykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX1NFVEtNQVNLKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldGttYXNrKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0a21hc2soY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldGttYXNrKGttYXNrKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzKGttYXNrKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfR0VUUUNUUkwpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0cWN0cmwoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRxY3RybChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0cWN0cmwocWN0cmwpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMocWN0cmwpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODY6ICAgICAgICAgICAgU1lTX2F1ZGl0c3lzIChCU01fQVVESVRDVEwsQV9TRVRRQ1RSTCkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRxY3RybChjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldHFjdHJsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRxY3RybChxY3RybCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhxY3RybCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX0dFVENXRCkgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRjd2QoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRjd2QoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGN3ZChkYXRhKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGN3ZChsZW5ndGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoZGF0YSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX0dFVENBUikgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRjYXIoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRjYXIoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGNhcihkYXRhKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGNhcihsZW5ndGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoZGF0YSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX0dFVFNUQVQpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0c3RhdChjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldHN0YXQoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldHN0YXQoc3RhdHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoc3RhdHMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODY6ICAgICAgICAgICAgU1lTX2F1ZGl0c3lzIChCU01fQVVESVRDVEwsQV9TRVRTVEFUKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldHN0YXQoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRzdGF0KGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRzdGF0KHN0YXRzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzKHN0YXRzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfU0VUVU1BU0spIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0dW1hc2soY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXR1bWFzayhjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0dW1hc2sodW1hc2spIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXModW1hc2spIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODY6ICAgICAgICAgICAgU1lTX2F1ZGl0c3lzIChCU01fQVVESVRDVEwsQV9TRVRTTUFTSykgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRzbWFzayhjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldHNtYXNrKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRzbWFzayhzbWFzaykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhzbWFzaykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX0dFVENPTkQpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0Y29uZChjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGNvbmQoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGNvbmQoY29uZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhjb25kKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfU0VUQ09ORCkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRjb25kKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0Y29uZChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0Y29uZChzdGF0ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhjb25kKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfR0VUQ0xBU1MpIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0Y2xhc3MoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRjbGFzcyhjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0Y2xhc3MoY2xhc3NtYXApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfU0VUQ0xBU1MpIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0Y2xhc3MoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRjbGFzcyhjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0Y2xhc3MoY2xhc3NtYXApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfU0VUQ0xBU1MpIDRzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0Y2xhc3MoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRjbGFzcyhjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoY2xhc3NtYXAuZWNfbnVtYmVyKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzKGNsYXNzbWFwLmVjX2NsYXNzKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX0dFVFBJTkZPKSAzcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldHBpbmZvKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0cGluZm8oY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldHBpbmZvKGFwaW5mbykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODY6ICAgICAgICAgICAgU1lTX2F1ZGl0c3lzIChCU01fQVVESVRDVEwsQV9TRVRQTUFTSykgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRwbWFzayhjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldHBtYXNrKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRwbWFzayhhcGluZm8pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoYXBpbmZvKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfR0VUUElORk9fQUREUikgNHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRwaW5mb19hZGRyKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0cGluZm9fYWRkcihjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0cGluZm9fYWRkcihhcGluZm8pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0cGluZm9fYWRkcihsZW5ndGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0FVRElUQ1RMLEFfR0VUS0FVRElUKSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGthdWRpdChjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGthdWRpdChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfZ2V0a2F1ZGl0KGthdWRpdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRrYXVkaXQobGVuZ3RoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzKGthdWRpdCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX1NFVEtBVURJVCkgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRrYXVkaXQoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9zZXRrYXVkaXQoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldGthdWRpdChrYXVkaXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0a2F1ZGl0KGxlbmd0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhrYXVkaXQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODY6ICAgICAgICAgICAgU1lTX2F1ZGl0c3lzIChCU01fQVVESVRDVEwsQV9HRVRBTUFTSykgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRhbWFzayhjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX2dldGFtYXNrKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19hdWRpdGN0bF9nZXRhbWFzayhhbWFzaykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhhbWFzaykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVENUTCxBX1NFVEFNQVNLKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldGFtYXNrKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfYXVkaXRjdGxfc2V0YW1hc2soY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2F1ZGl0Y3RsX3NldGFtYXNrKGFtYXNrKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzKGFtYXNrKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg2OiAgICAgICAgICAgIFNZU19hdWRpdHN5cyAoQlNNX0dFVEFVRElUX0FERFIpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfZ2V0YXVkaXRfYWRkcihjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2dldGF1ZGl0X2FkZHIoYWkpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfZ2V0YXVkaXRfYWRkcihsZW4pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXMoYWkpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODY6ICAgICAgICAgICAgU1lTX2F1ZGl0c3lzIChCU01fU0VUQVVESVRfQUREUikgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19zZXRhdWRpdF9hZGRyKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfc2V0YXVkaXRfYWRkcihhaSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5c19zZXRhdWRpdF9hZGRyKGxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBhdWRpdHN5cyhhaSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE4NjogICAgICAgICAgICBTWVNfYXVkaXRzeXMgKEJTTV9BVURJVERPT1IpIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gYXVkaXRzeXNfZG9vcihjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGF1ZGl0c3lzX2Rvb3IoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg5OiAgICAgICAgICAgIFNZU19wX29ubGluZSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHBfb25saW5lKHByb2Nlc3NvcmlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBfb25saW5lKGZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTkwOiAgICAgICAgICAgIFNZU19zaWdxdWV1ZSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNpZ3F1ZXVlKHBpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaWdxdWV1ZShzaWdubykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaWdxdWV1ZSh2YWx1ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaWdxdWV1ZShzaV9jb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNpZ3F1ZXVlKHRpbWVvdXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2lncXVldWUodGltZW91dCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE5MTogICAgICAgU1lTX2Nsb2NrX2dldHRpbWUgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBjbG9ja19nZXR0aW1lKGNsb2NrX2lkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGNsb2NrX2dldHRpbWUodHApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gY2xvY2tfZ2V0dGltZSh0cCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE5MjogICAgICAgU1lTX2Nsb2NrX3NldHRpbWUgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBjbG9ja19zZXR0aW1lKGNsb2NrX2lkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGNsb2NrX3NldHRpbWUodHApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gY2xvY2tfc2V0dGltZSh0cCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE5MzogICAgICAgIFNZU19jbG9ja19nZXRyZXMgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBjbG9ja19nZXRyZXMoY2xvY2tfaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gY2xvY2tfZ2V0cmVzKHJlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBjbG9ja19nZXRyZXMocmVzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTk0OiAgICAgICAgU1lTX3RpbWVyX2NyZWF0ZSAzcyA0bQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHRpbWVyX2NyZWF0ZShjbG9ja19pZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB0aW1lcl9jcmVhdGUoZXZwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHRpbWVyX2NyZWF0ZSh0aW1lcmlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHRpbWVyX2NyZWF0ZShldnAuc2lnZXZfbm90aWZ5KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gdGltZXJfY3JlYXRlKGV2cC5zaWdldl9zaWdubykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHRpbWVyX2NyZWF0ZShldnAuc2lnZXZfdmFsdWUuc2l2YWxfaW50KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gdGltZXJfY3JlYXRlKHRpbWVyaWQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxOTQ6ICAgICAgICBTWVNfdGltZXJfY3JlYXRlIDVzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdGltZXJfY3JlYXRlKGNsb2NrX2lkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHRpbWVyX2NyZWF0ZSh0aW1lcmlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHRpbWVyX2NyZWF0ZShldnAuc2lnZXZfbm90aWZ5KSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHRpbWVyX2NyZWF0ZShldnAuc2lnZXZfc2lnbm8pIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gdGltZXJfY3JlYXRlKGV2cC5zaWdldl92YWx1ZS5zaXZhbF9pbnQpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gdGltZXJfY3JlYXRlKGV2cC5zaWdldl92YWx1ZS5zaXZhbF9wdHIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSB0aW1lcl9jcmVhdGUodGltZXJpZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE5NTogICAgICAgIFNZU190aW1lcl9kZWxldGUgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB0aW1lcl9kZWxldGUodGltZXJpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxOTY6ICAgICAgIFNZU190aW1lcl9zZXR0aW1lIDRzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdGltZXJfc2V0dGltZSh0aW1lcmlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHRpbWVyX3NldHRpbWUoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdGltZXJfc2V0dGltZSh2YWx1ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB0aW1lcl9zZXR0aW1lKG92YWx1ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB0aW1lcl9zZXR0aW1lKHZhbHVlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gdGltZXJfc2V0dGltZShvdmFsdWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxOTc6ICAgICAgIFNZU190aW1lcl9nZXR0aW1lIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdGltZXJfZ2V0dGltZSh0aW1lcmlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHRpbWVyX2dldHRpbWUodmFsdWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdGltZXJfZ2V0dGltZSh2YWx1ZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzE5ODogICAgU1lTX3RpbWVyX2dldG92ZXJydW4gMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB0aW1lcl9nZXRvdmVycnVuKHRpbWVyaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTk5OiAgICAgICAgICAgU1lTX25hbm9zbGVlcCAycyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIG5hbm9zbGVlcChyZXEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbmFub3NsZWVwKHJlbSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBuYW5vc2xlZXAocmVxKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbmFub3NsZWVwKHJlbSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMDogICAgICAgICAgICAgICAgU1lTX2ZhY2wgKFNFVEFDTCkgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmYWNsKGZpbGRlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNsKG5lbnRyaWVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZhY2woYWNsYnVmcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNsKGFjbGJ1ZnApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDA6ICAgICAgICAgICAgICAgIFNZU19mYWNsIChHRVRBQ0wpIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZmFjbChmaWxkZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmFjbChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmFjbChuZW50cmllcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNsKGFjbGJ1ZnApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmFjbChhY2xidWZwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwOiAgICAgICAgICAgICAgICBTWVNfZmFjbCAoR0VUQUNMQ05UKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGZhY2woZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZhY2woY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZhY2wobmVudHJpZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmFjbChhY2xidWZwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMDogICAgICAgICAgICAgICAgU1lTX2ZhY2wgKEFDRV9TRVRBQ0wpIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZmFjbChmaWxkZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmFjbChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmFjbChuZW50cmllcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNsKGFjbGJ1ZnApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmFjbChhY2xidWZwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwOiAgICAgICAgICAgICAgICBTWVNfZmFjbCAoQUNFX0dFVEFDTCkgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmYWNsKGZpbGRlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNsKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNsKG5lbnRyaWVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZhY2woYWNsYnVmcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmYWNsKGFjbGJ1ZnApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDA6ICAgICAgICAgICAgICAgIFNZU19mYWNsIChBQ0VfR0VUQUNMQ05UKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGZhY2woZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZhY2woY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZhY2wobmVudHJpZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmFjbChhY2xidWZwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMTogICAgICAgICAgICAgICAgU1lTX2Rvb3IgKERPT1JfQ1JFQVRFKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGRvb3IoYXJnMSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yKGFyZzIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcihhcmczKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3Ioc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDE6ICAgICAgICAgICAgICAgIFNZU19kb29yIChET09SX1JFVk9LRSkgMnMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBkb29yKGFyZzEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcihzdWJjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMTogICAgICAgICAgICAgICAgU1lTX2Rvb3IgKERPT1JfSU5GTykgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBkb29yKGFyZzEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcihhcmcyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3Ioc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2luZm8oaW5mbykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMTogICAgICAgICAgICAgICAgU1lTX2Rvb3IgKERPT1JfQ0FMTCkgM3MgNm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBkb29yKGFyZzEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcihhcmcyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3Ioc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwocGFyYW1zLT5kYXRhX3B0cikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbChwYXJhbXMtPmRhdGFfc2l6ZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbChwYXJhbXMtPmRlc2NfcHRyKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKHBhcmFtcy0+ZGVzY19udW0pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwocGFyYW1zLT5yYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKHBhcmFtcy0+cnNpemUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDE6ICAgICAgICAgICAgICAgIFNZU19kb29yIChET09SX0NBTEwpIDlzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZG9vcihhcmcxKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGRvb3IoYXJnMikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBkb29yKHN1YmNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKHBhcmFtcy0+ZGF0YV9wdHIpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKHBhcmFtcy0+ZGF0YV9zaXplKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbChwYXJhbXMtPmRlc2NfcHRyKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbChwYXJhbXMtPmRlc2NfbnVtKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIGRvb3JfY2FsbChwYXJhbXMtPnJidWYpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKHBhcmFtcy0+cnNpemUpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gZG9vcl9jYWxsKHBhcmFtcy0+ZGVzY19wdHIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBkb29yX2NhbGwocGFyYW1zLT5yYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAyOiAgICAgICAgICAgIFNZU19zZXRyZXVpZCAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNldHJldWlkKHJ1aWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2V0cmV1aWQoZXVpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDM6ICAgICAgICAgICAgU1lTX3NldHJlZ2lkIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2V0cmVnaWQocmdpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRyZWdpZChlZ2lkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwNjogICAgICAgICAgICBTWVNfc2NoZWRjdGwgMHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDc6ICAgICAgICAgICAgICAgIFNZU19wc2V0IChDUkVBVEUpIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHNldF9jcmVhdGUoc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2NyZWF0ZShuZXdwc2V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXQobmV3cHNldCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwNzogICAgICAgICAgICAgICAgU1lTX3BzZXQgKERFU1RST1kpIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHNldF9kZXN0cm95KHN1YmNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9kZXN0cm95KHBzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjA3OiAgICAgICAgICAgICAgICBTWVNfcHNldCAoQVNTSUdOKSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHBzZXRfYXNzaWduKHN1YmNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9hc3NpZ24ocHNldCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2Fzc2lnbihjcHUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9hc3NpZ24ob3BzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldChvcHNldCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwNzogICAgICAgICAgICAgICAgU1lTX3BzZXQgKElORk8pIDVzIDNtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHNldF9pbmZvKHN1YmNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9pbmZvKHBzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9pbmZvKHR5cGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9pbmZvKG51bWNwdXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9pbmZvKGNwdWxpc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldCh0eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gcHNldChudW1jcHVzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjA3OiAgICAgICAgICAgICAgICBTWVNfcHNldCAoSU5GTykgNXMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwc2V0X2luZm8oc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2luZm8ocHNldCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2luZm8odHlwZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2luZm8obnVtY3B1cykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2luZm8oY3B1bGlzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0KGNwdWxpc3QpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDc6ICAgICAgICAgICAgICAgIFNZU19wc2V0IChCSU5EKSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHBzZXRfYmluZChzdWJjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfYmluZChwc2V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfYmluZChpZHR5cGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9iaW5kKGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfYmluZChvcHNldCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0KG9wc2V0KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjA3OiAgICAgICAgICAgICAgICBTWVNfcHNldCAoQklORF9MV1ApIDVzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHNldF9iaW5kX2x3cChzdWJjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfYmluZF9sd3AocHNldCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2JpbmRfbHdwKGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfYmluZF9sd3AocGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfYmluZF9sd3Aob3BzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldChvcHNldCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwNzogICAgICAgICAgICAgICAgU1lTX3BzZXQgKEdFVExPQURBVkcpIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHNldF9nZXRsb2FkYXZnKHN1YmNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9nZXRsb2FkYXZnKHBzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9nZXRsb2FkYXZnKGxvYWRhdmdbXSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2dldGxvYWRhdmcobmVsZW0pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldChsb2FkYXZnKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjA3OiAgICAgICAgICAgICAgICBTWVNfcHNldCAoTElTVCkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwc2V0X2xpc3Qoc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2xpc3QocHNldGxpc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9saXN0KG51bXBzZXRzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXQobnVtcHNldHMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDc6ICAgICAgICAgICAgICAgIFNZU19wc2V0IChMSVNUKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHBzZXRfbGlzdChzdWJjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfbGlzdChwc2V0bGlzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2xpc3QobnVtcHNldHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldChwc2V0bGlzdCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwNzogICAgICAgICAgICAgICAgU1lTX3BzZXQgKFNFVEFUVFIpIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHNldF9zZXRhdHRyKHN1YmNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9zZXRhdHRyKHBzZXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9zZXRhdHRyKGF0dHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjA3OiAgICAgICAgICAgICAgICBTWVNfcHNldCAoR0VUQVRUUikgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBwc2V0X2dldGF0dHIoc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2dldGF0dHIocHNldCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0X2dldGF0dHIoYXR0cikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwc2V0KGF0dHIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDc6ICAgICAgICAgICAgICAgIFNZU19wc2V0IChBU1NJR05fRk9SQ0VEKSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHBzZXRfYXNzaWduX2ZvcmNlZChzdWJjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfYXNzaWduX2ZvcmNlZChwc2V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXRfYXNzaWduX2ZvcmNlZChjcHUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHNldF9hc3NpZ25fZm9yY2VkKG9wc2V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHBzZXQob3BzZXQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMDk6ICAgICAgICAgU1lTX3Jlc29sdmVwYXRoIDNzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcmVzb2x2ZXBhdGgocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZXNvbHZlcGF0aChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVzb2x2ZXBhdGgoYnVmc2l6KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJlc29sdmVwYXRoKHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSByZXNvbHZlcGF0aChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMTA6IFNZU19sd3BfbXV0ZXhfdGltZWRsb2NrIDNzIDdtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX211dGV4X3RpbWVkbG9jayhscCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfbXV0ZXhfdGltZWRsb2NrKHRzcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfbXV0ZXhfdGltZWRsb2NrKG93bmVyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9tdXRleF90aW1lZGxvY2sobHAtPm11dGV4X2ZsYWcpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3BfbXV0ZXhfdGltZWRsb2NrKGxwLT5tdXRleF90eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX211dGV4X3RpbWVkbG9jayhscC0+bXV0ZXhfb3duZXIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3BfbXV0ZXhfdGltZWRsb2NrKGxwLT5tdXRleF9vd25lcnBpZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9tdXRleF90aW1lZGxvY2sobHAtPm11dGV4X2xvY2t3KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX211dGV4X3RpbWVkbG9jayhscC0+bXV0ZXhfd2FpdGVycykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9tdXRleF90aW1lZGxvY2sodHNwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjExOiAgU1lTX2x3cF9zZW1hX3RpbWVkd2FpdCAzcyA0bQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGx3cF9zZW1hX3RpbWVkd2FpdChzZW1hKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zZW1hX3RpbWVkd2FpdCh0aW1lb3V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zZW1hX3RpbWVkd2FpdChjaGVja19wYXJrKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zZW1hX3RpbWVkd2FpdChzZW1hLT50eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3NlbWFfdGltZWR3YWl0KHNlbWEtPmNvdW50KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3NlbWFfdGltZWR3YWl0KHNlbWEtPndhaXRlcnMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfc2VtYV90aW1lZHdhaXQodGltZW91dCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIxMjogICAgICBTWVNfbHdwX3J3bG9ja19zeXMgKFJETE9DSykgM3MgOG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrX3JkbG9jayhzdWJjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2tfcmRsb2NrKHJ3bHApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9ja19yZGxvY2sodHNwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+cndsb2NrX3R5cGUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPnJ3bG9ja19yZWFkZXJzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF90eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF9vd25lcikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfb3duZXJwaWQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPm11dGV4Lm11dGV4X2xvY2t3KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF93YWl0ZXJzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayh0c3ApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMTI6ICAgICAgU1lTX2x3cF9yd2xvY2tfc3lzIChXUkxPQ0spIDNzIDhtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9ja193cmxvY2soc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrX3dybG9jayhyd2xwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2tfd3Jsb2NrKHRzcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPnJ3bG9ja190eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5yd2xvY2tfcmVhZGVycykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfdHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfb3duZXIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPm11dGV4Lm11dGV4X293bmVycGlkKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF9sb2NrdykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfd2FpdGVycykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2sodHNwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjEyOiAgICAgIFNZU19sd3Bfcndsb2NrX3N5cyAoVFJZUkRMT0NLKSAycyA3bQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2tfdHJ5cmRsb2NrKHN1YmNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9ja190cnlyZGxvY2socndscCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPnJ3bG9ja190eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5yd2xvY2tfcmVhZGVycykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfdHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfb3duZXIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPm11dGV4Lm11dGV4X293bmVycGlkKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF9sb2NrdykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfd2FpdGVycykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIxMjogICAgICBTWVNfbHdwX3J3bG9ja19zeXMgKFRSWVdSTE9DSykgMnMgN20KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrX3RyeXdybG9jayhzdWJjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2tfdHJ5d3Jsb2NrKHJ3bHApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5yd2xvY2tfdHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+cndsb2NrX3JlYWRlcnMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPm11dGV4Lm11dGV4X3R5cGUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPm11dGV4Lm11dGV4X293bmVyKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9jayhyd2xwLT5tdXRleC5tdXRleF9vd25lcnBpZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfbG9ja3cpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrKHJ3bHAtPm11dGV4Lm11dGV4X3dhaXRlcnMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMTI6ICAgICAgU1lTX2x3cF9yd2xvY2tfc3lzIChVTkxPQ0spIDJzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX3J3bG9ja191bmxvY2soc3ViY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3Bfcndsb2NrX3VubG9jayhyd2xwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+bXV0ZXgubXV0ZXhfdHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGx3cF9yd2xvY2socndscC0+cndsb2NrX3JlYWRlcnMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMjc6ICAgICAgICAgICAgICAgIFNZU196b25lIChaT05FX0NSRUFURSkgMnMgMTJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gem9uZV9jcmVhdGUoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfY3JlYXRlKHpkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmUoemQuem9uZV9uYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC56b25lX3Jvb3QpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLnpvbmVfcHJpdnMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLnpvbmVfcHJpdnNzeikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHpvbmUoemQucmN0bGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHpvbmUoemQucmN0bGJ1ZnN6KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC56ZnNidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLnpmc2J1ZnN6KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC5leHRlbmRlZF9lcnJvcikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHpvbmUoemQubWF0Y2gpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLmRvaSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHpvbmUoemQubGFiZWwpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLmZsYWdzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjI3OiAgICAgICAgICAgICAgICBTWVNfem9uZSAoY3JlYXRlKSAycyAxOW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB6b25lX2NyZWF0ZShjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9jcmVhdGUoemQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC56b25lX25hbWUpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC56b25lX3Jvb3QpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC56b25lX3ByaXZzKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHpvbmUoemQuem9uZV9wcml2c3N6KSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHpvbmUoemQucmN0bGJ1ZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLnJjdGxidWZzeikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLnpmc2J1ZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLnpmc2J1ZnN6KSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHpvbmUoemQuZXh0ZW5kZWRfZXJyb3IpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC5tYXRjaCkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLmRvaSkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLmxhYmVsKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHpvbmUoemQuZmxhZ3MpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC56b25lX25hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSB6b25lKHpkLnpvbmVfcm9vdCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHpvbmUoemQuem9uZV9wcml2cykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHpvbmUoemQucmN0bGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHpvbmUoemQuemZzYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6ZC5sYWJlbCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyNzogICAgICAgICAgICAgICAgU1lTX3pvbmUgKFpPTkVfREVTVFJPWSkgMnMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB6b25lX2Rlc3Ryb3koY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfZGVzdHJveSh6b25laWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjI3OiAgICAgICAgICAgICAgICBTWVNfem9uZSAoWk9ORV9HRVRBVFRSKSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHpvbmVfZ2V0YXR0cihjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9nZXRhdHRyKHpvbmVpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2dldGF0dHIoYXR0cikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2dldGF0dHIodmFscCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2dldGF0dHIoc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lKHZhbHApIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMjc6ICAgICAgICAgICAgICAgIFNZU196b25lIChaT05FX0VOVEVSKSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHpvbmVfZW50ZXIoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfZW50ZXIoem9uZWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyNzogICAgICAgICAgICAgICAgU1lTX3pvbmUgKFpPTkVfTElTVCkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB6b25lX2xpc3QoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfbGlzdCh6b25lbGlzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2xpc3QobnVtem9uZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZShudW16b25lcykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyNzogICAgICAgICAgICAgICAgU1lTX3pvbmUgKFpPTkVfTElTVCkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB6b25lX2xpc3QoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfbGlzdCh6b25lbGlzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2xpc3QobnVtem9uZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZSh6b25lbGlzdCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyNzogICAgICAgICAgICAgICAgU1lTX3pvbmUgKFpPTkVfU0hVVERPV04pIDJzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gem9uZV9zaHV0ZG93bihjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9zaHV0ZG93bih6b25laWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjI3OiAgICAgICAgICAgICAgICBTWVNfem9uZSAoWk9ORV9MT09LVVApIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gem9uZV9sb29rdXAoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfbG9va3VwKG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZShuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjI3OiAgICAgICAgICAgICAgICBTWVNfem9uZSAoWk9ORV9CT09UKSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHpvbmVfYm9vdChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9ib290KHpvbmVpZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMjc6ICAgICAgICAgICAgICAgIFNZU196b25lIChaT05FX1NFVEFUVFIpIDVzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gem9uZV9zZXRhdHRyKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX3NldGF0dHIoem9uZWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfc2V0YXR0cihhdHRyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfc2V0YXR0cih2YWxwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfc2V0YXR0cihzaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmUodmFscCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyNzogICAgICAgICAgICAgICAgU1lTX3pvbmUgKFpPTkVfREVMX0RBVEFMSU5LKSAzcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHpvbmVfZGVsX2RhdGFsaW5rKGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2RlbF9kYXRhbGluayh6b25laWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9kZWxfZGF0YWxpbmsobGlua2lkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyNzogICAgICAgICAgICAgICAgU1lTX3pvbmUgKFpPTkVfTElTVF9EQVRBTElOSykgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB6b25lX2xpc3RfZGF0YWxpbmsoY21kKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfbGlzdF9kYXRhbGluayh6b25laWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9saXN0X2RhdGFsaW5rKGRsbnVtcCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2xpc3RfZGF0YWxpbmsobGlua2lkcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lKGRsbnVtcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyOTogICAgICAgICAgICAgIFNZU19nZXRjd2QgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBnZXRjd2QoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldGN3ZChzaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldGN3ZChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMzA6ICAgICAgICAgICBTWVNfc29fc29ja2V0IDVzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc29ja2V0KGZhbWlseSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzb2NrZXQodHlwZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzb2NrZXQocHJvdG9jb2wpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc29ja2V0KGRldnBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc29ja2V0KHZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc29ja2V0KGRldnBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMzE6ICAgICAgIFNZU19zb19zb2NrZXRwYWlyIDFzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc29ja2V0cGFpcihzdikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzb2NrZXRwYWlyKHN2KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjMyOiAgICAgICAgICAgICAgICBTWVNfYmluZCA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGJpbmQocykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBiaW5kKG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYmluZChuYW1lbGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGJpbmQodmVyc2lvbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMzM6ICAgICAgICAgICAgICBTWVNfbGlzdGVuIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGlzdGVuKHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGlzdGVuKGJhY2tsb2cpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGlzdGVuKHZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjM0OiAgICAgICAgICAgICAgU1lTX2FjY2VwdCA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGFjY2VwdChzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjY2VwdChhZGRyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjY2VwdChhZGRybGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGFjY2VwdCh2ZXJzaW9uKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIzNTogICAgICAgICAgICAgU1lTX2Nvbm5lY3QgNHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBjb25uZWN0KHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gY29ubmVjdChuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGNvbm5lY3QobmFtZWxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBjb25uZWN0KHZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjM2OiAgICAgICAgICAgIFNZU19zaHV0ZG93biAzcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNodXRkb3duKHNvY2spIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2h1dGRvd24oaG93KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNodXRkb3duKHZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjM3OiAgICAgICAgICAgICAgICBTWVNfcmVjdiA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHJlY3YocykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWN2KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWN2KGxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWN2KGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNvY2tldGNhbGwucmVjdihidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMzg6ICAgICAgICAgICAgU1lTX3JlY3Zmcm9tIDZzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcmVjdmZyb20ocykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWN2ZnJvbShidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVjdmZyb20obGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJlY3Zmcm9tKGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJlY3Zmcm9tKGZyb20pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVjdmZyb20oZnJvbWxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzb2NrZXRjYWxsLnJlY3Zmcm9tKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIzOTogICAgICAgICAgICAgU1lTX3JlY3Ztc2cgM3MgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSByZWN2bXNnKHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVjdm1zZyhtc2cpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVjdm1zZyhmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyNDA6ICAgICAgICAgICAgICAgIFNZU19zZW5kIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2VuZChzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmQobXNnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmQobGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmQoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc29ja2V0Y2FsbC5zZW5kKG1zZykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzI0MTogICAgICAgICAgICAgU1lTX3NlbmRtc2cgM3MgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZW5kbXNnKHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZG1zZyhtc2cpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZG1zZyhmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyNDI6ICAgICAgICAgICAgICBTWVNfc2VuZHRvIDZzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc2VuZHRvKHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZHRvKG1zZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW5kdG8obGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNlbmR0byhmbGFncykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZW5kdG8odG8pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2VuZHRvKHRvbGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNvY2tldGNhbGwuc2VuZHRvKG1zZykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzI0MzogICAgICAgICBTWVNfZ2V0cGVlcm5hbWUgNHMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBnZXRwZWVybmFtZShzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldHBlZXJuYW1lKG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0cGVlcm5hbWUobmFtZWxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRwZWVybmFtZSh2ZXJzaW9uKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldHBlZXJuYW1lKG5hbWVsZW4pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyNDM6ICAgICAgICAgU1lTX2dldHBlZXJuYW1lIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZ2V0cGVlcm5hbWUocykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRwZWVybmFtZShuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldHBlZXJuYW1lKHZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0cGVlcm5hbWUobmFtZWxlbikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBnZXRwZWVybmFtZShuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjQ0OiAgICAgICAgIFNZU19nZXRzb2NrbmFtZSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGdldHNvY2tuYW1lKHMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0c29ja25hbWUobmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzb2NrbmFtZShuYW1lbGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldHNvY2tuYW1lKHZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc29ja2V0Y2FsbC5nZXRzb2NrbmFtZShuYW1lbGVuX2luKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjQ1OiAgICAgICAgICBTWVNfZ2V0c29ja29wdCA2cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGdldHNvY2tvcHQocykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzb2Nrb3B0KGxldmVsKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldHNvY2tvcHQob3B0bmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzb2Nrb3B0KG9wdHZhbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzb2Nrb3B0KG9wdGlvbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRzb2Nrb3B0KHZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjQ2OiAgICAgICAgICBTWVNfc2V0c29ja29wdCA2cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNldHNvY2tvcHQocykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRzb2Nrb3B0KGxldmVsKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNldHNvY2tvcHQob3B0bmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRzb2Nrb3B0KG9wdHZhbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRzb2Nrb3B0KG9wdGxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRzb2Nrb3B0KHZlcnNpb24pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc29ja2V0Y2FsbC5zZXRzb2Nrb3B0KG9wdHZhbCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzI1MjogIFNZU19sd3BfbXV0ZXhfcmVnaXN0ZXIgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsd3BfbXV0ZXhfcmVnaXN0ZXIobXApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX211dGV4X3JlZ2lzdGVyKHVhZGRyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9tdXRleF9yZWdpc3RlcihtcC0+bXV0ZXhfdHlwZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzI1NDogICAgICAgICAgICAgIFNZU191dWNvcHkgM3MgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB1dWNvcHkoczEpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdXVjb3B5KHMyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV1Y29weShuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV1Y29weShzMSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHV1Y29weShzMikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzI1NTogICAgICAgICAgICAgU1lTX3Vtb3VudDIgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB1bW91bnQyKGZpbGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdW1vdW50MihtZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1bW91bnQyKGZpbGUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDE6ICAgICAgICAgICAgICAgIFNZU19leGl0IDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZXhpdChzdGF0dXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhci5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhci52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhci52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBkMmU2ZQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyLnZndGVzdApAQCAtMCwwICsxLDEwIEBACitwcm9nOiBzY2FsYXIKK3Znb3B0czogLXEgLS1lcnJvci1saW1pdD1ubyAtLXNpbS1oaW50cz1sYXgtZG9vcnMKK3N0ZGVycl9maWx0ZXI6IGZpbHRlcl9zY2FsYXIKKyMgUmVtb3ZlIGFsbCBmcmFtZXMgZnJvbSB0aGUgc3RhY2sgdHJhY2UgZXhjZXB0IHRoZSBmaXJzdCBvbmUuCisjIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2Ugc3lzY2FsbCgpIGZ1bmN0aW9uIG9uIHg4NiBpc24ndCBBQkkgY29uZm9ybWFudAorIyB3aGljaCBjb25mdXNlcyB0aGUgVmFsZ3JpbmQgc3RhY2sgdW53aW5kZXIuCisjIFRoZXJlZm9yZSB4ODYgYW5kIGFtZDY0IHN0YWNrIHRyYWNlcyBhcmUgdW5pZmllZCBzbyB0aGF0IHRoZXkgY29udGFpbiBvbmx5CisjICdzeXNjYWxsIChpbiBsaWJjKScgc3RhY2sgZnJhbWUgYW5kIHRoaXMgaXMgdGhlbiBmaWx0ZXJlZCBvdXQgY29tcGxldGVseS4KK3N0ZGVycl9maWx0ZXJfYXJnczogbGliYworCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9mcmVhbHBhdGhhdC5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfZnJlYWxwYXRoYXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTRjZDc2Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfZnJlYWxwYXRoYXQuYwpAQCAtMCwwICsxLDE3IEBACisvKiBUZXN0IGZvciBmcmVhbHBhdGhhdCBzeXNjYWxsIHdoaWNoIGlzIGF2YWlsYWJsZSBvbiBTb2xhcmlzIDExLjEuICovIAorCisjaW5jbHVkZSAic2NhbGFyLmgiCisKK2ludCBtYWluKHZvaWQpCit7CisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBsb25nICpweCA9IG1hbGxvYyhzaXplb2YobG9uZykpOworICAgeDAgPSBweFswXTsKKworICAgLyogU1lTX2ZyZWFscGF0aGF0ICAgICAgICAgICAzMCAqLworICAgR08oU1lTX2ZyZWFscGF0aGF0LCAiNHMgMm0iKTsKKyAgIFNZKFNZU19mcmVhbHBhdGhhdCwgeDAgLSAxLCB4MCArIDEsIHgwICsgMiwgeDAgKyAzKTsgRkFJTDsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2ZyZWFscGF0aGF0LnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9mcmVhbHBhdGhhdC5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjYTI4ODAKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9mcmVhbHBhdGhhdC5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMjMgQEAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDMwOiAgICAgICAgIFNZU19mcmVhbHBhdGhhdCA0cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGZyZWFscGF0aGF0KGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZyZWFscGF0aGF0KHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZnJlYWxwYXRoYXQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZyZWFscGF0aGF0KGJ1ZmxlbikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmcmVhbHBhdGhhdChwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gZnJlYWxwYXRoYXQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2ZyZWFscGF0aGF0LnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9mcmVhbHBhdGhhdC5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9mcmVhbHBhdGhhdC52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9mcmVhbHBhdGhhdC52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY1MzVhZQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2ZyZWFscGF0aGF0LnZndGVzdApAQCAtMCwwICsxLDQgQEAKK3ByZXJlcTogdGVzdCAtZSBzY2FsYXJfZnJlYWxwYXRoYXQKK3Byb2c6IHNjYWxhcl9mcmVhbHBhdGhhdAordmdvcHRzOiAtcQorc3RkZXJyX2ZpbHRlcl9hcmdzOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfaW9jdGwuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2lvY3RsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZjMzlmYgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2lvY3RsLmMKQEAgLTAsMCArMSw1MTYgQEAKKy8qIEJhc2ljIGlvY3RsIHNjYWxhciB0ZXN0cy4gKi8KKworI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCisKKyNpbmNsdWRlICJzY2FsYXIuaCIKKworI2luY2x1ZGUgPG5ldC9pZi5oPgorI2luY2x1ZGUgPHN5cy9jcnlwdG8vaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvZHRyYWNlLmg+CisjaW5jbHVkZSA8c3lzL2ZpbGlvLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4JCS8qIGZvciBfU1RfRlNUWVBTWiAqLworI2luY2x1ZGUgPHN5cy9tbnRpby5oPgorI2luY2x1ZGUgPHN5cy9tbnR0YWIuaD4KKyNpbmNsdWRlIDxzeXMvcG9vbF9pbXBsLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tpby5oPgorI2luY2x1ZGUgPHN5cy9zdHJvcHRzLmg+CisjaW5jbHVkZSA8c3lzL3Rlcm1pb3MuaD4KKworLyogcG9vbHMgKi8KK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9QT09MX1NUQVRVU1Eodm9pZCkKK3sKKyAgIEdPKFNZU19pb2N0bCwgIihQT09MX1NUQVRVU1EpIDNzIDFtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBQT09MX1NUQVRVU1EsIHgwKTsgRkFJTDsKK30KKworLyogbW50aW8gKi8KK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9NTlRJT0NfR0VUTU5UQU5ZKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoTU5USU9DX0dFVE1OVEFOWSkgM3MgMW0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIE1OVElPQ19HRVRNTlRBTlksIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9NTlRJT0NfR0VUTU5UQU5ZXzIodm9pZCkKK3sKKyAgIHN0cnVjdCBtbnRlbnRidWYgZW1idWY7CisKKyAgIGVtYnVmLm1idWZfZW1wID0gKHZvaWQgKikgKHgwICsgMSk7CisgICBlbWJ1Zi5tYnVmX2J1ZiA9ICh2b2lkICopICh4MCArIDEpOworICAgZW1idWYubWJ1Zl9idWZzaXplID0geDAgKyAxOworCisgICBHTyhTWVNfaW9jdGwsICIoTU5USU9DX0dFVE1OVEFOWSkgNHMgMm0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIE1OVElPQ19HRVRNTlRBTlksICZlbWJ1ZiArIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX01OVElPQ19HRVRNTlRBTllfMyh2b2lkKQoreworICAgc3RydWN0IG1udHRhYiBtbnQ7CisgICBzdHJ1Y3QgbW50ZW50YnVmIGVtYnVmOworCisgICBtbnQubW50X3NwZWNpYWwgPSAodm9pZCAqKSAoeDAgKyAxKTsKKyAgIG1udC5tbnRfbW91bnRwID0gKHZvaWQgKikgKHgwICsgMSk7CisgICBtbnQubW50X2ZzdHlwZSA9ICh2b2lkICopICh4MCArIDEpOworICAgbW50Lm1udF9tbnRvcHRzID0gKHZvaWQgKikgKHgwICsgMSk7CisgICBtbnQubW50X3RpbWUgPSAodm9pZCAqKSAoeDAgKyAxKTsKKworICAgZW1idWYubWJ1Zl9lbXAgPSB4MCArIChzdHJ1Y3QgZXh0bW50dGFiICopICZtbnQ7CisgICBlbWJ1Zi5tYnVmX2J1ZiA9ICh2b2lkICopICh4MCArIDEpOworICAgZW1idWYubWJ1Zl9idWZzaXplID0geDAgKyAxOworCisgICBHTyhTWVNfaW9jdGwsICIoTU5USU9DX0dFVE1OVEFOWSkgNXMgNm0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIE1OVElPQ19HRVRNTlRBTlksICZlbWJ1ZiArIHgwKTsgRkFJTDsKK30KKworLyogdGVybWlvL3Rlcm1pb3MgKi8KK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9UQ0dFVEEodm9pZCkKK3sKKyAgIEdPKFNZU19pb2N0bCwgIihUQ0dFVEEpIDNzIDFtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBUQ0dFVEEsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1RDR0VUUyh2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFRDR0VUUykgM3MgMW0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFRDR0VUUywgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfVENTRVRTKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoVENTRVRTKSAzcyAxbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgVENTRVRTLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9UQ1NFVFNXKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoVENTRVRTVykgM3MgMW0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFRDU0VUU1csIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1RDU0VUU0Yodm9pZCkKK3sKKyAgIEdPKFNZU19pb2N0bCwgIihUQ1NFVFNGKSAzcyAxbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgVENTRVRTRiwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfVElPQ0dXSU5TWih2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFRJT0NHV0lOU1opIDNzIDFtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBUSU9DR1dJTlNaLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9USU9DU1dJTlNaKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoVElPQ1NXSU5TWikgM3MgMW0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFRJT0NTV0lOU1osIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1RJT0NHUEdSUCh2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFRJT0NHUEdSUCkgM3MgMW0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFRJT0NHUEdSUCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfVElPQ1NQR1JQKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoVElPQ1NQR1JQKSAzcyAxbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgVElPQ1NQR1JQLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9USU9DR1NJRCh2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFRJT0NHU0lEKSAzcyAxbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgVElPQ0dTSUQsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1RJT0NOT1RUWSh2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFRJT0NOT1RUWSkgMnMgMG0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFRJT0NOT1RUWSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9USU9DU0NUVFkodm9pZCkKK3sKKyAgIEdPKFNZU19pb2N0bCwgIihUSU9DU0NUVFkpIDJzIDBtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBUSU9DU0NUVFkpOyBGQUlMOworfQorCisvKiBTVFJFQU1TICovCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfSV9QVVNIKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoSV9QVVNIKSAzcyAxbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgSV9QVVNILCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfSV9TVFIodm9pZCkKK3sKKyAgIEdPKFNZU19pb2N0bCwgIihJX1NUUikgM3MgMW0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIElfU1RSLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfSV9TVFJfMih2b2lkKQoreworICAgc3RydWN0IHN0cmlvY3RsIHN0cjsKKworICAgc3RyLmljX2NtZCA9IHgwOworICAgc3RyLmljX3RpbW91dCA9IHgwOworICAgc3RyLmljX2xlbiA9IHgwICsgMTsKKyAgIHN0ci5pY19kcCA9ICh2b2lkICopICh4MCArIDEpOworCisgICBHTyhTWVNfaW9jdGwsICIoSV9TVFIpIDRzIDFtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBJX1NUUiwgJnN0ciArIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX0lfUEVFSyh2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKElfUEVFSykgM3MgN20iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIElfUEVFSywgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX0lfUEVFS18yKHZvaWQpCit7CisgICBzdHJ1Y3Qgc3RycGVlayBwZWVrOworCisgICBwZWVrLmN0bGJ1Zi5tYXhsZW4gPSB4MCArIDE7CisgICBwZWVrLmN0bGJ1Zi5sZW4gPSB4MDsKKyAgIHBlZWsuY3RsYnVmLmJ1ZiA9ICh2b2lkKikoeDAgKyAxKTsKKyAgIHBlZWsuZGF0YWJ1Zi5tYXhsZW4gPSB4MCArIDE7CisgICBwZWVrLmRhdGFidWYubGVuID0geDA7CisgICBwZWVrLmRhdGFidWYuYnVmID0gKHZvaWQqKSh4MCArIDEpOworICAgcGVlay5mbGFncyA9IHgwOworCisgICBHTyhTWVNfaW9jdGwsICIoSV9QRUVLKSAzcyA3bSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgSV9QRUVLLCAmcGVlayArIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX0lfQ0FOUFVUKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoSV9DQU5QVVQpIDNzIDBtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBJX0NBTlBVVCwgeDApOyBGQUlMOworfQorCisvKiBzb2NraW8gKi8KK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9TSU9DR0lGQ09ORih2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFNJT0NHSUZDT05GKSwgM3MgMm0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFNJT0NHSUZDT05GLCB4MCAtIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfU0lPQ0dJRkNPTkZfMih2b2lkKQoreworICAgc3RydWN0IGlmY29uZiBpZmM7CisgICBjaGFyIGJ1ZltdID0gIiI7CisKKyAgIGlmYy5pZmNfbGVuID0geDAgKyAxOworICAgaWZjLmlmY19idWYgPSAodm9pZCAqKSAoeDAgKyBidWYpOworCisgICBHTyhTWVNfaW9jdGwsICIoU0lPQ0dJRkNPTkYpLCA1cyAwbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgU0lPQ0dJRkNPTkYsICZpZmMgKyB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9TSU9DR0lGRkxBR1Modm9pZCkKK3sKKyAgIEdPKFNZU19pb2N0bCwgIihTSU9DR0lGRkxBR1MpIDNzIDJtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBTSU9DR0lGRkxBR1MsIHgwIC0gMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9TSU9DR0lGRkxBR1NfMih2b2lkKQoreworICAgc3RydWN0IGlmcmVxIGlmcjsKKworICAgaWZyLmlmcl9uYW1lWzBdID0geDAgKyAnbCc7CisgICBpZnIuaWZyX25hbWVbMV0gPSB4MCArICdvJzsKKyAgIGlmci5pZnJfbmFtZVsyXSA9IHgwICsgJzAnOworICAgaWZyLmlmcl9uYW1lWzNdID0geDAgKyAnXDAnOworCisgICBHTyhTWVNfaW9jdGwsICIoU0lPQ0dJRkZMQUdTKSwgNHMgMG0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFNJT0NHSUZGTEFHUywgJmlmciArIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1NJT0NHSUZORVRNQVNLKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoU0lPQ0dJRk5FVE1BU0spIDNzIDJtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBTSU9DR0lGTkVUTUFTSywgeDAgLSAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1NJT0NHSUZORVRNQVNLXzIodm9pZCkKK3sKKyAgIHN0cnVjdCBpZnJlcSBpZnI7CisKKyAgIGlmci5pZnJfbmFtZVswXSA9IHgwICsgJ2wnOworICAgaWZyLmlmcl9uYW1lWzFdID0geDAgKyAnbyc7CisgICBpZnIuaWZyX25hbWVbMl0gPSB4MCArICcwJzsKKyAgIGlmci5pZnJfbmFtZVszXSA9IHgwICsgJ1wwJzsKKworICAgR08oU1lTX2lvY3RsLCAiKFNJT0NHSUZORVRNQVNLKSwgNHMgMG0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFNJT0NHSUZORVRNQVNLLCAmaWZyICsgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfU0lPQ0dJRk5VTSh2b2lkKQoreworICAgaW50IGlmbnVtOworCisgICBHTyhTWVNfaW9jdGwsICIoU0lPQ0dJRk5VTSkgM3MgMG0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFNJT0NHSUZOVU0sICZpZm51bSArIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1NJT0NHSUZOVU1fMih2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFNJT0NHSUZOVU0pIDNzIDFtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBTSU9DR0lGTlVNLCB4MCAtIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfU0lPQ0dMSUZCUkRBRERSKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoU0lPQ0dMSUZCUkRBRERSKSAzcyAybSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgU0lPQ0dMSUZCUkRBRERSLCB4MCAtIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfU0lPQ0dMSUZCUkRBRERSXzIodm9pZCkKK3sKKyAgIHN0cnVjdCBsaWZyZXEgbGlmcjsKKworICAgbGlmci5saWZyX25hbWVbMF0gPSB4MCArICdsJzsKKyAgIGxpZnIubGlmcl9uYW1lWzFdID0geDAgKyAnbyc7CisgICBsaWZyLmxpZnJfbmFtZVsyXSA9IHgwICsgJzAnOworICAgbGlmci5saWZyX25hbWVbM10gPSB4MCArICdcMCc7CisKKyAgIEdPKFNZU19pb2N0bCwgIihTSU9DR0xJRkJSREFERFIpLCA0cyAwbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgU0lPQ0dMSUZCUkRBRERSLCAmbGlmciArIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1NJT0NHTElGQ09ORih2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFNJT0NHTElGQ09ORiksIDNzIDRtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBTSU9DR0xJRkNPTkYsIHgwIC0gMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9TSU9DR0xJRkNPTkZfMih2b2lkKQoreworICAgc3RydWN0IGxpZmNvbmYgbGlmYzsKKyAgIGNoYXIgYnVmW10gPSAiIjsKKworICAgbGlmYy5saWZjX2xlbiA9IHgwICsgMTsKKyAgIGxpZmMubGlmY19idWYgPSAodm9pZCAqKSAoeDAgKyBidWYpOworICAgbGlmYy5saWZjX2ZhbWlseSA9IHgwICsgMTsKKyAgIGxpZmMubGlmY19mbGFncyA9IHgwICsgMDsKKworICAgR08oU1lTX2lvY3RsLCAiKFNJT0NHTElGQ09ORiksIDdzIDBtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBTSU9DR0xJRkNPTkYsICZsaWZjICsgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfU0lPQ0dMSUZGTEFHUyh2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFNJT0NHTElGRkxBR1MpIDNzIDJtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBTSU9DR0xJRkZMQUdTLCB4MCAtIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfU0lPQ0dMSUZGTEFHU18yKHZvaWQpCit7CisgICBzdHJ1Y3QgbGlmcmVxIGxpZnI7CisKKyAgIGxpZnIubGlmcl9uYW1lWzBdID0geDAgKyAnbCc7CisgICBsaWZyLmxpZnJfbmFtZVsxXSA9IHgwICsgJ28nOworICAgbGlmci5saWZyX25hbWVbMl0gPSB4MCArICcwJzsKKyAgIGxpZnIubGlmcl9uYW1lWzNdID0geDAgKyAnXDAnOworCisgICBHTyhTWVNfaW9jdGwsICIoU0lPQ0dMSUZGTEFHUyksIDRzIDBtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBTSU9DR0xJRkZMQUdTLCAmbGlmciArIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1NJT0NHTElGTkVUTUFTSyh2b2lkKQoreworICAgR08oU1lTX2lvY3RsLCAiKFNJT0NHTElGTkVUTUFTSykgM3MgMm0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFNJT0NHTElGTkVUTUFTSywgeDAgLSAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX1NJT0NHTElGTkVUTUFTS18yKHZvaWQpCit7CisgICBzdHJ1Y3QgbGlmcmVxIGxpZnI7CisKKyAgIGxpZnIubGlmcl9uYW1lWzBdID0geDAgKyAnbCc7CisgICBsaWZyLmxpZnJfbmFtZVsxXSA9IHgwICsgJ28nOworICAgbGlmci5saWZyX25hbWVbMl0gPSB4MCArICcwJzsKKyAgIGxpZnIubGlmcl9uYW1lWzNdID0geDAgKyAnXDAnOworCisgICBHTyhTWVNfaW9jdGwsICIoU0lPQ0dMSUZORVRNQVNLKSwgNHMgMG0iKTsKKyAgIFNZKFNZU19pb2N0bCwgeDAgLSAxLCB4MCArIFNJT0NHTElGTkVUTUFTSywgJmxpZnIgKyB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9TSU9DR0xJRk5VTSh2b2lkKQoreworICAgc3RydWN0IGxpZm51bSBsaWZuOworCisgICBsaWZuLmxpZm5fZmFtaWx5ID0geDA7CisgICBsaWZuLmxpZm5fZmxhZ3MgPSB4MDsKKworICAgR08oU1lTX2lvY3RsLCAiKFNJT0NHTElGTlVNKSA0cyAwbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgU0lPQ0dMSUZOVU0sICZsaWZuICsgeDApOyBGQUlMOworfQorCisvKiBmaWxpbyAqLworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX0ZJT1NFVE9XTih2b2lkKQoreworICAgcGlkX3QgcGlkOworCisgICBHTyhTWVNfaW9jdGwsICIoRklPU0VUT1dOKSA0cyAwbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgRklPU0VUT1dOLCAmcGlkICsgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfRklPR0VUT1dOKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoRklPR0VUT1dOKSAzcyAxbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgRklPR0VUT1dOLCB4MCArIDEpOyBGQUlMOworfQorCisvKiBjcnlwdG8gKi8KK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9DUllQVE9fR0VUX1BST1ZJREVSX0xJU1Qodm9pZCkKK3sKKyAgIEdPKFNZU19pb2N0bCwgIihDUllQVE9fR0VUX1BST1ZJREVSX0xJU1QpIDNzIDFtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBDUllQVE9fR0VUX1BST1ZJREVSX0xJU1QsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19pb2N0bF9DUllQVE9fR0VUX1BST1ZJREVSX0xJU1RfMih2b2lkKQoreworICAgY3J5cHRvX2dldF9wcm92aWRlcl9saXN0X3QgcGw7CisKKyAgIHBsLnBsX2NvdW50ID0geDAgKyAxOworCisgICBHTyhTWVNfaW9jdGwsICIoQ1JZUFRPX0dFVF9QUk9WSURFUl9MSVNUKSA0cyAwbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgQ1JZUFRPX0dFVF9QUk9WSURFUl9MSVNULCAmcGwgKyB4MCk7IEZBSUw7Cit9CisKKy8qIGR0cmFjZSAqLworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2lvY3RsX0RUUkFDRUhJT0NfUkVNT1ZFKHZvaWQpCit7CisgICBHTyhTWVNfaW9jdGwsICIoRFRSQUNFSElPQ19SRU1PVkUpIDNzIDBtIik7CisgICBTWShTWVNfaW9jdGwsIHgwIC0gMSwgeDAgKyBEVFJBQ0VISU9DX1JFTU9WRSwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfaW9jdGxfRFRSQUNFSElPQ19BRERET0Yodm9pZCkKK3sKKyAgIGRvZl9oZWxwZXJfdCBkaDsKKworICAgZGguZG9maHBfbW9kWzBdID0geDAgKyAnRCc7CisgICBkaC5kb2ZocF9tb2RbMV0gPSB4MCArICdcMCc7CisgICBkaC5kb2ZocF9hZGRyID0geDA7CisgICBkaC5kb2ZocF9kb2YgPSB4MDsKKworICAgR08oU1lTX2lvY3RsLCAiKERUUkFDRUhJT0NfQURERE9GKSA2cyAwbSIpOworICAgU1koU1lTX2lvY3RsLCB4MCAtIDEsIHgwICsgRFRSQUNFSElPQ19BRERET0YsIHgwICsgJmRoKTsgRkFJTDsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGxvbmcgKnB4ID0gbWFsbG9jKHNpemVvZihsb25nKSk7CisgICB4MCA9IHB4WzBdOworCisgICAvKiBwb29scyAqLworICAgc3lzX2lvY3RsX1BPT0xfU1RBVFVTUSgpOworCisgICAvKiBtbnRpbyAqLworICAgc3lzX2lvY3RsX01OVElPQ19HRVRNTlRBTlkoKTsKKyAgIHN5c19pb2N0bF9NTlRJT0NfR0VUTU5UQU5ZXzIoKTsKKyAgIHN5c19pb2N0bF9NTlRJT0NfR0VUTU5UQU5ZXzMoKTsKKworICAgLyogdGVybWlvL3Rlcm1pb3MgKi8KKyAgIHN5c19pb2N0bF9UQ0dFVEEoKTsKKyAgIHN5c19pb2N0bF9UQ0dFVFMoKTsKKyAgIHN5c19pb2N0bF9UQ1NFVFMoKTsKKyAgIHN5c19pb2N0bF9UQ1NFVFNXKCk7CisgICBzeXNfaW9jdGxfVENTRVRTRigpOworICAgc3lzX2lvY3RsX1RJT0NHV0lOU1ooKTsKKyAgIHN5c19pb2N0bF9USU9DU1dJTlNaKCk7CisgICBzeXNfaW9jdGxfVElPQ0dQR1JQKCk7CisgICBzeXNfaW9jdGxfVElPQ1NQR1JQKCk7CisgICBzeXNfaW9jdGxfVElPQ0dTSUQoKTsKKyAgIHN5c19pb2N0bF9USU9DTk9UVFkoKTsKKyAgIHN5c19pb2N0bF9USU9DU0NUVFkoKTsKKworICAgLyogU1RSRUFNUyAqLworICAgc3lzX2lvY3RsX0lfUFVTSCgpOworICAgc3lzX2lvY3RsX0lfU1RSKCk7CisgICBzeXNfaW9jdGxfSV9TVFJfMigpOworICAgc3lzX2lvY3RsX0lfUEVFSygpOworICAgc3lzX2lvY3RsX0lfUEVFS18yKCk7CisgICBzeXNfaW9jdGxfSV9DQU5QVVQoKTsKKworICAgLyogc29ja2lvICovCisgICBzeXNfaW9jdGxfU0lPQ0dJRkNPTkYoKTsKKyAgIHN5c19pb2N0bF9TSU9DR0lGQ09ORl8yKCk7CisgICBzeXNfaW9jdGxfU0lPQ0dJRkZMQUdTKCk7CisgICBzeXNfaW9jdGxfU0lPQ0dJRkZMQUdTXzIoKTsKKyAgIHN5c19pb2N0bF9TSU9DR0lGTkVUTUFTSygpOworICAgc3lzX2lvY3RsX1NJT0NHSUZORVRNQVNLXzIoKTsKKyAgIHN5c19pb2N0bF9TSU9DR0lGTlVNKCk7CisgICBzeXNfaW9jdGxfU0lPQ0dJRk5VTV8yKCk7CisgICBzeXNfaW9jdGxfU0lPQ0dMSUZCUkRBRERSKCk7CisgICBzeXNfaW9jdGxfU0lPQ0dMSUZCUkRBRERSXzIoKTsKKyAgIHN5c19pb2N0bF9TSU9DR0xJRkNPTkYoKTsKKyAgIHN5c19pb2N0bF9TSU9DR0xJRkNPTkZfMigpOworICAgc3lzX2lvY3RsX1NJT0NHTElGRkxBR1MoKTsKKyAgIHN5c19pb2N0bF9TSU9DR0xJRkZMQUdTXzIoKTsKKyAgIHN5c19pb2N0bF9TSU9DR0xJRk5FVE1BU0soKTsKKyAgIHN5c19pb2N0bF9TSU9DR0xJRk5FVE1BU0tfMigpOworICAgc3lzX2lvY3RsX1NJT0NHTElGTlVNKCk7CisKKyAgIC8qIGZpbGlvICovCisgICBzeXNfaW9jdGxfRklPU0VUT1dOKCk7CisgICBzeXNfaW9jdGxfRklPR0VUT1dOKCk7CisKKyAgIC8qIGNyeXB0byAqLworICAgc3lzX2lvY3RsX0NSWVBUT19HRVRfUFJPVklERVJfTElTVCgpOworICAgc3lzX2lvY3RsX0NSWVBUT19HRVRfUFJPVklERVJfTElTVF8yKCk7CisKKyAgIC8qIGR0cmFjZSAqLworICAgc3lzX2lvY3RsX0RUUkFDRUhJT0NfUkVNT1ZFKCk7CisgICBzeXNfaW9jdGxfRFRSQUNFSElPQ19BRERET0YoKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2lvY3RsLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9pb2N0bC5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkYjFhNTYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9pb2N0bC5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsODQ5IEBACistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NDogICAgICAgICAgICAgICBTWVNfaW9jdGwgKFBPT0xfU1RBVFVTUSkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBpb2N0bChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChyZXF1ZXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChQT09MX1NUQVRVU1EpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChNTlRJT0NfR0VUTU5UQU5ZKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKE1OVElPQ19HRVRNTlRBTlkpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChNTlRJT0NfR0VUTU5UQU5ZKSA0cyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKE1OVElPQ19HRVRNTlRBTlkpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoTU5USU9DX0dFVE1OVEFOWSwgZW1idWYtPm1idWZfZW1wKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoTU5USU9DX0dFVE1OVEFOWSwgZW1idWYtPm1idWZfYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoTU5USU9DX0dFVE1OVEFOWSkgNXMgNm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBpb2N0bChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChyZXF1ZXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChNTlRJT0NfR0VUTU5UQU5ZKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIGlvY3RsKE1OVElPQ19HRVRNTlRBTlksIGVtYnVmLT5tYnVmX2VtcCkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBpb2N0bChNTlRJT0NfR0VUTU5UQU5ZLCBlbWJ1Zi0+bWJ1Zl9idWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChNTlRJT0NfR0VUTU5UQU5ZLCBtbnQtPm1udF9zcGVjaWFsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoTU5USU9DX0dFVE1OVEFOWSwgbW50LT5tbnRfbW91bnRwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoTU5USU9DX0dFVE1OVEFOWSwgbW50LT5tbnRfZnN0eXBlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoTU5USU9DX0dFVE1OVEFOWSwgbW50LT5tbnRfbW50b3B0cykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGlvY3RsKE1OVElPQ19HRVRNTlRBTlksIG1udC0+bW50X3RpbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChUQ0dFVEEpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoVENHRVRBKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoVENHRVRTKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFRDR0VUUykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NDogICAgICAgICAgICAgICBTWVNfaW9jdGwgKFRDU0VUUykgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBpb2N0bChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChyZXF1ZXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChUQ1NFVFMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChUQ1NFVFNXKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFRDU0VUU1cpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChUQ1NFVFNGKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFRDU0VUU0YpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChUSU9DR1dJTlNaKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFRJT0NHV0lOU1opIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChUSU9DU1dJTlNaKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFRJT0NTV0lOU1opIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChUSU9DR1BHUlApIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoVElPQ0dQR1JQKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoVElPQ1NQR1JQKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFRJT0NTUEdSUCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NDogICAgICAgICAgICAgICBTWVNfaW9jdGwgKFRJT0NHU0lEKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFRJT0NHU0lEKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoVElPQ05PVFRZKSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoVElPQ1NDVFRZKSAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoSV9QVVNIKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKElfUFVTSCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NDogICAgICAgICAgICAgICBTWVNfaW9jdGwgKElfU1RSKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKElfU1RSKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoSV9TVFIpIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoSV9TVFIpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoSV9TVFIsIHN0cmlvY3RsLT5pY19kcCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NDogICAgICAgICAgICAgICBTWVNfaW9jdGwgKElfUEVFSykgM3MgN20KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBpb2N0bChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChyZXF1ZXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmN0bGJ1Zi5tYXhsZW4pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmN0bGJ1Zi5sZW4pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmN0bGJ1Zi5idWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmRhdGFidWYubWF4bGVuKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoSV9QRUVLLCBzdHJwZWVrLT5kYXRhYnVmLmxlbikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGlvY3RsKElfUEVFSywgc3RycGVlay0+ZGF0YWJ1Zi5idWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmZsYWdzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoSV9QRUVLKSAzcyA3bQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKElfUEVFSywgc3RycGVlay0+Y3RsYnVmLm1heGxlbikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmN0bGJ1Zi5idWYpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoSV9QRUVLLCBzdHJwZWVrLT5kYXRhYnVmLm1heGxlbikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmRhdGFidWYuYnVmKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIGlvY3RsKElfUEVFSywgc3RycGVlay0+ZmxhZ3MpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKworTW9yZSB0aGFuIDEwMCBlcnJvcnMgZGV0ZWN0ZWQuICBTdWJzZXF1ZW50IGVycm9ycword2lsbCBzdGlsbCBiZSByZWNvcmRlZCwgYnV0IGluIGxlc3MgZGV0YWlsIHRoYW4gYmVmb3JlLgorU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmN0bGJ1Zi5idWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChJX1BFRUssIHN0cnBlZWstPmRhdGFidWYuYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoSV9DQU5QVVQpIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoU0lPQ0dJRkNPTkYpLCAzcyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHSUZDT05GLCBpZmNvbmYtPmlmY19sZW4pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChTSU9DR0lGQ09ORiwgaWZjb25mLT5pZmNfYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoU0lPQ0dJRkNPTkYpLCA1cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHSUZDT05GLCBpZmNvbmYtPmlmY19sZW4pIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dJRkNPTkYsIGlmY29uZi0+aWZjX2J1ZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChTSU9DR0lGRkxBR1MpIDNzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dJRkZMQUdTLCBpZnJlcS0+aWZyX25hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChTSU9DR0lGRkxBR1MsIGlmcmVxLT5pZnJfZmxhZ3MpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChTSU9DR0lGRkxBR1MpLCA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHSUZGTEFHUywgaWZyZXEtPmlmcl9uYW1lKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NDogICAgICAgICAgICAgICBTWVNfaW9jdGwgKFNJT0NHSUZORVRNQVNLKSAzcyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHSUZGTEFHUywgaWZyZXEtPmlmcl9uYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dJRkZMQUdTLCBpZnJlcS0+aWZyX2FkZHIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChTSU9DR0lGTkVUTUFTSyksIDRzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dJRkZMQUdTLCBpZnJlcS0+aWZyX25hbWUpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoU0lPQ0dJRk5VTSkgM3MgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBpb2N0bChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChyZXF1ZXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChTSU9DR0lGTlVNKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHSUZOVU0pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChTSU9DR0xJRkJSREFERFIpIDNzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dMSUZCUkRBRERSLCBsaWZyZXEtPmxpZnJfbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHTElGQlJEQUREUiwgbGlmcmVxLT5saWZyX2FkZHIpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChTSU9DR0xJRkJSREFERFIpLCA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHTElGQlJEQUREUiwgbGlmcmVxLT5saWZyX25hbWUpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoU0lPQ0dMSUZDT05GKSwgM3MgNG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBpb2N0bChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChyZXF1ZXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChTSU9DR0xJRkNPTkYsIGxpZmNvbmYtPmxpZmNfbGVuKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dMSUZDT05GLCBsaWZjb25mLT5saWZjX2J1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHTElGQ09ORiwgbGlmY29uZi0+bGlmY19mYW1pbHkpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChTSU9DR0xJRkNPTkYsIGxpZmNvbmYtPmxpZmNfZmxhZ3MpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChTSU9DR0xJRkNPTkYpLCA3cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHTElGQ09ORiwgbGlmY29uZi0+bGlmY19sZW4pIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dMSUZDT05GLCBsaWZjb25mLT5saWZjX2J1ZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBpb2N0bChTSU9DR0xJRkNPTkYsIGxpZmNvbmYtPmxpZmNfZmFtaWx5KSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHTElGQ09ORiwgbGlmY29uZi0+bGlmY19mbGFncykgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChTSU9DR0xJRkZMQUdTKSAzcyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHTElGRkxBR1MsIGxpZnJlcS0+bGlmcl9uYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dMSUZGTEFHUywgbGlmcmVxLT5saWZyX2ZsYWdzKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoU0lPQ0dMSUZGTEFHUyksIDRzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoU0lPQ0dMSUZGTEFHUywgbGlmcmVxLT5saWZyX25hbWUpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoU0lPQ0dMSUZORVRNQVNLKSAzcyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHTElGTkVUTUFTSywgbGlmcmVxLT5saWZyX25hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBpb2N0bChTSU9DR0xJRk5FVE1BU0ssIGxpZnJlcS0+bGlmcl9hZGRyKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoU0lPQ0dMSUZORVRNQVNLKSwgNHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBpb2N0bChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChyZXF1ZXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChTSU9DR0xJRk5FVE1BU0ssIGxpZnJlcS0+bGlmcl9uYW1lKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NDogICAgICAgICAgICAgICBTWVNfaW9jdGwgKFNJT0NHTElGTlVNKSA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGlvY3RsKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKHJlcXVlc3QpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoYXJnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKFNJT0NHTElGTlVNLCBsaWZuLT5saWZuX2ZhbWlseSkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBpb2N0bChTSU9DR0xJRk5VTSwgbGlmbi0+bGlmbl9mbGFncykgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChGSU9TRVRPV04pIDRzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoRklPU0VUT1dOKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA1NDogICAgICAgICAgICAgICBTWVNfaW9jdGwgKEZJT0dFVE9XTikgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBpb2N0bChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChyZXF1ZXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGlvY3RsKGFyZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChGSU9HRVRPV04pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChDUllQVE9fR0VUX1BST1ZJREVSX0xJU1QpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoQ1JZUFRPX0dFVF9QUk9WSURFUl9MSVNULCBwbC0+cGxfY291bnQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNTQ6ICAgICAgICAgICAgICAgU1lTX2lvY3RsIChDUllQVE9fR0VUX1BST1ZJREVSX0xJU1QpIDRzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoQ1JZUFRPX0dFVF9QUk9WSURFUl9MSVNULCBwbC0+cGxfY291bnQpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoRFRSQUNFSElPQ19SRU1PVkUpIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDU0OiAgICAgICAgICAgICAgIFNZU19pb2N0bCAoRFRSQUNFSElPQ19BRERET0YpIDZzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gaW9jdGwoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwocmVxdWVzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBpb2N0bChhcmcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoRFRSQUNFSElPQ19BRERET0YsIGRoLT5kb2ZocF9tb2QpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoRFRSQUNFSElPQ19BRERET0YsIGRoLT5kb2ZocF9hZGRyIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gaW9jdGwoRFRSQUNFSElPQ19BRERET0YsIGRoLT5kb2ZocF9kb2YgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfaW9jdGwuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2lvY3RsLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2lvY3RsLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2lvY3RsLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzg1NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfaW9jdGwudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorcHJvZzogc2NhbGFyX2lvY3RsCit2Z29wdHM6IC1xIC0tZXJyb3ItbGltaXQ9bm8KK3N0ZGVycl9maWx0ZXI6IGZpbHRlcl9zY2FsYXIKK3N0ZGVycl9maWx0ZXJfYXJnczogbGliYwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX2tpbGwuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9raWxsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI5ZjVjZgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9raWxsLmMKQEAgLTAsMCArMSwyMCBAQAorLyogVGVzdCBmb3IgbHdwX2tpbGwgc3lzY2FsbCB3aGljaCBpcyBhdmFpbGFibGUgb24gaWxsdW1vcworICAgYW5kIFNvbGFyaXMgMTEgYW5kIDExLjEuIFRoaXMgc3lzY2FsbCBoYXMgYmVlbiByZW5hbWVkCisgICBvbiBTb2xhcmlzIDExLjIgdG8gbHdwX3NpZ3F1ZXVlIGFuZCBleHRyYSBwYXJhbWV0ZXJzIGFkZGVkLgorICovCisKKyNpbmNsdWRlICJzY2FsYXIuaCIKKworaW50IG1haW4odm9pZCkKK3sKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGxvbmcgKnB4ID0gbWFsbG9jKHNpemVvZihsb25nKSk7CisgICB4MCA9IHB4WzBdOworCisgICAvKiBTWVNfbHdwX2tpbGwgICAgICAgICAgICAgIDE2MyAqLworICAgR08oU1lTX2x3cF9raWxsLCAiMnMgMG0iKTsKKyAgIFNZKFNZU19sd3Bfa2lsbCwgeDAgLSAxLCB4MCk7IEZBSUw7CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfa2lsbC5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX2tpbGwuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODAyNDAyCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX2tpbGwuc3RkZXJyLmV4cApAQCAtMCwwICsxLDkgQEAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTYzOiAgICAgICAgICAgIFNZU19sd3Bfa2lsbCAycyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGx3cF9raWxsKHRhcmdldF9sd3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX2tpbGwoc2lnbmFsKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfa2lsbC5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX2tpbGwuc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX2tpbGwudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX2tpbGwudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMjZkOWUKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfa2lsbC52Z3Rlc3QKQEAgLTAsMCArMSw0IEBACitwcmVyZXE6IHRlc3QgLWUgc2NhbGFyX2x3cF9raWxsCitwcm9nOiBzY2FsYXJfbHdwX2tpbGwKK3Znb3B0czogLXEKK3N0ZGVycl9maWx0ZXJfYXJnczoKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9uYW1lLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3BfbmFtZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ZWMyYzIKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3BfbmFtZS5jCkBAIC0wLDAgKzEsMzEgQEAKKy8qIFRlc3QgZm9yIGx3cF9uYW1lIHN5c2NhbGwgd2hpY2ggaXMgYXZhaWxhYmxlIG9uIG5ld2VyIFNvbGFyaXMuICovIAorCisjaW5jbHVkZSAic2NhbGFyLmgiCisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19sd3BfbmFtZSh2b2lkKQoreworICAgR08oU1lTX2x3cF9uYW1lLCAiKGx3cF9zZXRuYW1lKSAzcyAxbSIpOworICAgU1koU1lTX2x3cF9uYW1lLCB4MCArIDAsIHgwLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfbHdwX25hbWUyKHZvaWQpCit7ICAKKyAgIEdPKFNZU19sd3BfbmFtZSwgIihsd3BfZ2V0bmFtZSkgNHMgMW0iKTsKKyAgIFNZKFNZU19sd3BfbmFtZSwgeDAgKyAxLCB4MCwgeDAgKyAxLCB4MCArIDIpOyBGQUlMOworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHhbMF0gaXMgMHgwLiAqLworICAgbG9uZyAqcHggPSBtYWxsb2Moc2l6ZW9mKGxvbmcpKTsKKyAgIHgwID0gcHhbMF07CisKKyAgIC8qIFNZU19sd3BfbmFtZSAgICAgICAgICAgICAgNzkgKi8KKyAgIHN5c19sd3BfbmFtZSgpOworICAgc3lzX2x3cF9uYW1lMigpOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX25hbWUuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9uYW1lLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ExNjU4MwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9uYW1lLnN0ZGVyci5leHAKQEAgLTAsMCArMSwzNSBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNzk6ICAgICAgICAgICAgU1lTX2x3cF9uYW1lIChsd3Bfc2V0bmFtZSkgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsd3BfbmFtZShvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX25hbWUobHdwaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX25hbWUobmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3BfbmFtZShuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDc5OiAgICAgICAgICAgIFNZU19sd3BfbmFtZSAobHdwX2dldG5hbWUpIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX25hbWUob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9uYW1lKGx3cGlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9uYW1lKG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX25hbWUobGVuKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9uYW1lKG5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX25hbWUuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9uYW1lLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9uYW1lLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9uYW1lLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGNlNGZmCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX25hbWUudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorcHJlcmVxOiB0ZXN0IC1lIHNjYWxhcl9sd3BfbmFtZQorcHJvZzogc2NhbGFyX2x3cF9uYW1lCit2Z29wdHM6IC1xCitzdGRlcnJfZmlsdGVyX2FyZ3M6CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfc2lncXVldWUuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9zaWdxdWV1ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2YTI5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfc2lncXVldWUuYwpAQCAtMCwwICsxLDE5IEBACisvKiBUZXN0IGZvciBsd3Bfc2lncXVldWUgc3lzY2FsbCB3aGljaCBpcyBhdmFpbGFibGUgc2luY2UKKyAgIFNvbGFyaXMgMTEuMi4KKyAqLworCisjaW5jbHVkZSAic2NhbGFyLmgiCisKK2ludCBtYWluKHZvaWQpCit7CisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBsb25nICpweCA9IG1hbGxvYyhzaXplb2YobG9uZykpOworICAgeDAgPSBweFswXTsKKworICAgLyogU1lTX2x3cF9zaWdxdWV1ZSAgICAgICAgICAxNjMgKi8KKyAgIEdPKFNZU19sd3Bfc2lncXVldWUsICI1cyAxbSIpOworICAgU1koU1lTX2x3cF9zaWdxdWV1ZSwgeDAgLSAxLCB4MCwgeDAgKyAxLCB4MCwgeDAgLSAxKTsgRkFJTDsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9zaWdxdWV1ZS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX3NpZ3F1ZXVlLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYzMTAwYQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9zaWdxdWV1ZS5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMjIgQEAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTYzOiAgICAgICAgU1lTX2x3cF9zaWdxdWV1ZSA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdxdWV1ZSh0YXJnZXRfbHdwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdxdWV1ZShzaWduYWwpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3NpZ3F1ZXVlKHZhbHVlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdxdWV1ZShzaV9jb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdxdWV1ZSh0aW1lb3V0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGx3cF9zaWdxdWV1ZSh0aW1lb3V0KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9zaWdxdWV1ZS5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX3NpZ3F1ZXVlLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9zaWdxdWV1ZS52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfc2lncXVldWUudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYmU5NTIKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfc2lncXVldWUudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorcHJlcmVxOiB0ZXN0IC1lIHNjYWxhcl9sd3Bfc2lncXVldWUKK3Byb2c6IHNjYWxhcl9sd3Bfc2lncXVldWUKK3Znb3B0czogLXEKK3N0ZGVycl9maWx0ZXJfYXJnczoKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9zaWdxdWV1ZV9waWQuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX2x3cF9zaWdxdWV1ZV9waWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTBmZWYwCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX3NpZ3F1ZXVlX3BpZC5jCkBAIC0wLDAgKzEsMTkgQEAKKy8qIFRlc3QgZm9yIGx3cF9zaWdxdWV1ZSBzeXNjYWxsIHdoaWNoIGFjY2VwdHMgcGlkIGFsb25nIHRoZSB0aHJlYWQgaWQuCisgICBBdmFpbGFibGUgc2luY2UgU29sYXJpcyAxMi4KKyAqLworCisjaW5jbHVkZSAic2NhbGFyLmgiCisKK2ludCBtYWluKHZvaWQpCit7CisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBsb25nICpweCA9IG1hbGxvYyhzaXplb2YobG9uZykpOworICAgeDAgPSBweFswXTsKKworICAgLyogU1lTX2x3cF9zaWdxdWV1ZSAgICAgICAgICAxNjMgKi8KKyAgIEdPKFNZU19sd3Bfc2lncXVldWUsICI2cyAxbSIpOworICAgU1koU1lTX2x3cF9zaWdxdWV1ZSwgeDAgLSAxLCB4MCAtIDEsIHgwLCB4MCArIDEsIHgwLCB4MCAtIDEpOyBGQUlMOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX3NpZ3F1ZXVlX3BpZC5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX3NpZ3F1ZXVlX3BpZC5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ZGZlMGEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfc2lncXVldWVfcGlkLnN0ZGVyci5leHAKQEAgLTAsMCArMSwyNSBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNjM6ICAgICAgICBTWVNfbHdwX3NpZ3F1ZXVlIDZzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHdwX3NpZ3F1ZXVlKHRhcmdldF9waWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3NpZ3F1ZXVlKHRhcmdldF9sd3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3NpZ3F1ZXVlKHNpZ25hbCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsd3Bfc2lncXVldWUodmFsdWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3NpZ3F1ZXVlKHNpX2NvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3NpZ3F1ZXVlKHRpbWVvdXQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHdwX3NpZ3F1ZXVlKHRpbWVvdXQpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX3NpZ3F1ZXVlX3BpZC52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9sd3Bfc2lncXVldWVfcGlkLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDU2YzM0Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfbHdwX3NpZ3F1ZXVlX3BpZC52Z3Rlc3QKQEAgLTAsMCArMSw0IEBACitwcmVyZXE6IHRlc3QgLWUgc2NhbGFyX2x3cF9zaWdxdWV1ZV9waWQKK3Byb2c6IHNjYWxhcl9sd3Bfc2lncXVldWVfcGlkCit2Z29wdHM6IC1xCitzdGRlcnJfZmlsdGVyX2FyZ3M6CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9vYnNvbGV0ZS5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTAzMDI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuYwpAQCAtMCwwICsxLDExMyBAQAorLyogVGVzdCBmb3Igc3lzY2FsbHMgdGhhdCBhcmUgYXZhaWxhYmxlIG9uIGlsbHVtb3MgYnV0IGFyZSByZW1vdmVkIG9uCisgICBTb2xhcmlzIDExLiAgVGhpcyB0ZXN0IGlzIGNvbXBpbGVkIG9ubHkgb24gaWxsdW1vcy4gKi8KKworI2luY2x1ZGUgInNjYWxhci5oIgorCisjaW5jbHVkZSA8c3lzL2ZjbnRsLmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19vcGVuKHZvaWQpCit7CisgICBHTyhTWVNfb3BlbiwgIigyLWFyZ3MpIDJzIDFtIik7CisgICBTWShTWVNfb3BlbiwgeDAsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX29wZW4yKHZvaWQpCit7CisgICBHTyhTWVNfb3BlbiwgIigzLWFyZ3MpIDNzIDFtIik7CisgICBTWShTWVNfb3BlbiwgeDAsIHgwIHwgT19DUkVBVCwgeDApOyBGQUlMOworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHhbMF0gaXMgMHgwLiAqLworICAgbG9uZyAqcHggPSBtYWxsb2Moc2l6ZW9mKGxvbmcpKTsKKyAgIHgwID0gcHhbMF07CisKKyAgIC8qIFNZU19vcGVuICAgICAgICAgICAgICAgICAgICA1ICovCisgICBzeXNfb3BlbigpOworICAgc3lzX29wZW4yKCk7CisKKyAgIC8qIFNZU19saW5rICAgICAgICAgICAgICAgICAgICA5ICovCisgICBHTyhTWVNfbGluaywgIjJzIDJtIik7CisgICBTWShTWVNfbGluaywgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3VubGluayAgICAgICAgICAgICAgICAgMTAgKi8KKyAgIEdPKFNZU191bmxpbmssICIxcyAxbSIpOworICAgU1koU1lTX3VubGluaywgeDApOyBGQUlMOworCisgICAvKiBTWVNfbWtub2QgICAgICAgICAgICAgICAgICAxNCAqLworICAgLyogWFhYIE1pc3Npbmcgd3JhcHBlci4gKi8KKworICAgLyogU1lTX2NobW9kICAgICAgICAgICAgICAgICAgMTUgKi8KKyAgIEdPKFNZU19jaG1vZCwgIjJzIDFtIik7CisgICBTWShTWVNfY2htb2QsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19jaG93biAgICAgICAgICAgICAgICAgIDE2ICovCisgICBHTyhTWVNfY2hvd24sICIzcyAxbSIpOworICAgU1koU1lTX2Nob3duLCB4MCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3N0YXQgICAgICAgICAgICAgICAgICAgMTggKi8KKyAgIEdPKFNZU19zdGF0LCAiMnMgMm0iKTsKKyAgIFNZKFNZU19zdGF0LCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfZnN0YXQgICAgICAgICAgICAgICAgICAyOCAqLworICAgR08oU1lTX2ZzdGF0LCAiMnMgMW0iKTsKKyAgIFNZKFNZU19mc3RhdCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2FjY2VzcyAgICAgICAgICAgICAgICAgMzMgKi8KKyAgIEdPKFNZU19hY2Nlc3MsICIycyAxbSIpOworICAgU1koU1lTX2FjY2VzcywgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX3JtZGlyICAgICAgICAgICAgICAgICAgNzkgKi8KKyAgIEdPKFNZU19ybWRpciwgIjFzIDFtIik7CisgICBTWShTWVNfcm1kaXIsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX21rZGlyICAgICAgICAgICAgICAgICAgODAgKi8KKyAgIEdPKFNZU19ta2RpciwgIjJzIDFtIik7CisgICBTWShTWVNfbWtkaXIsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19sc3RhdCAgICAgICAgICAgICAgICAgIDg4ICovCisgICBHTyhTWVNfbHN0YXQsICIycyAybSIpOworICAgU1koU1lTX2xzdGF0LCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfc3ltbGluayAgICAgICAgICAgICAgICA4OSAqLworICAgR08oU1lTX3N5bWxpbmssICIycyAybSIpOworICAgU1koU1lTX3N5bWxpbmssIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19yZWFkbGluayAgICAgICAgICAgICAgIDkwICovCisgICBHTyhTWVNfcmVhZGxpbmssICIzcyAybSIpOworICAgU1koU1lTX3JlYWRsaW5rLCB4MCwgeDAsIHgwICsgMSk7IEZBSUw7CisKKyAgIC8qIFNZU19mY2htb2QgICAgICAgICAgICAgICAgIDkzICovCisgICBHTyhTWVNfZmNobW9kLCAiMnMgMG0iKTsKKyAgIFNZKFNZU19mY2htb2QsIHgwIC0gMSwgeDApOyBGQUlMOworCisgICAvKiBTWVNfZmNob3duICAgICAgICAgICAgICAgICA5NCAqLworICAgR08oU1lTX2ZjaG93biwgIjNzIDBtIik7CisgICBTWShTWVNfZmNob3duLCB4MCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2xjaG93biAgICAgICAgICAgICAgICAxMzAgKi8KKyAgIEdPKFNZU19sY2hvd24sICIzcyAxbSIpOworICAgU1koU1lTX2xjaG93biwgeDAsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19yZW5hbWUgICAgICAgICAgICAgICAgMTM0ICovCisgICBHTyhTWVNfcmVuYW1lLCAiMnMgMm0iKTsKKyAgIFNZKFNZU19yZW5hbWUsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19zdGF0NjQgICAgICAgICAgICAgICAgMjE1ICovCisgICAvKiBUZXN0ZWQgaW4geDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIC8qIFNZU19sc3RhdDY0ICAgICAgICAgICAgICAgMjE2ICovCisgICAvKiBUZXN0ZWQgaW4geDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIC8qIFNZU19mc3RhdDY0ICAgICAgICAgICAgICAgMjE3ICovCisgICAvKiBUZXN0ZWQgaW4geDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIC8qIFNZU19vcGVuNjQgICAgICAgICAgICAgICAgMjI1ICovCisgICAvKiBUZXN0ZWQgaW4geDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9vYnNvbGV0ZS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTJlNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuc3RkZXJyLmV4cApAQCAtMCwwICsxLDI1OSBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDU6ICAgICAgICAgICAgICAgIFNZU19vcGVuICgyLWFyZ3MpIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gb3BlbihmaWxlbmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBvcGVuKGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW4oZmlsZW5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDU6ICAgICAgICAgICAgICAgIFNZU19vcGVuICgzLWFyZ3MpIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gb3BlbihmaWxlbmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBvcGVuKGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW4obW9kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBvcGVuKGZpbGVuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICA5OiAgICAgICAgICAgICAgICBTWVNfbGluayAycyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGxpbmsob2xkcGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsaW5rKG5ld3BhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGluayhvbGRwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gbGluayhuZXdwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEwOiAgICAgICAgICAgICAgU1lTX3VubGluayAxcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHVubGluayhwYXRobmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1bmxpbmsocGF0aG5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6ICAgICAgICAgICAgICAgU1lTX2NobW9kIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gY2htb2QocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBjaG1vZChtb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGNobW9kKHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMTY6ICAgICAgICAgICAgICAgU1lTX2Nob3duIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gY2hvd24ocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBjaG93bihvd25lcikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBjaG93bihncm91cCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBjaG93bihwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDE4OiAgICAgICAgICAgICAgICBTWVNfc3RhdCAycyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHN0YXQocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzdGF0KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzdGF0KHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzdGF0KGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyODogICAgICAgICAgICAgICBTWVNfZnN0YXQgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmc3RhdChmaWxkZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZnN0YXQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZzdGF0KGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAzMzogICAgICAgICAgICAgIFNZU19hY2Nlc3MgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBhY2Nlc3MocGF0aG5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNjZXNzKG1vZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gYWNjZXNzKHBhdGhuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDc5OiAgICAgICAgICAgICAgIFNZU19ybWRpciAxcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHJtZGlyKHBhdGhuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJtZGlyKHBhdGhuYW1lKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDgwOiAgICAgICAgICAgICAgIFNZU19ta2RpciAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIG1rZGlyKHBhdGhuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1rZGlyKG1vZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbWtkaXIocGF0aG5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgODg6ICAgICAgICAgICAgICAgU1lTX2xzdGF0IDJzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHN0YXQocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsc3RhdChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbHN0YXQocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGxzdGF0KGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA4OTogICAgICAgICAgICAgU1lTX3N5bWxpbmsgMnMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzeW1saW5rKG9sZHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc3ltbGluayhuZXdwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN5bWxpbmsob2xkcGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHN5bWxpbmsobmV3cGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5MDogICAgICAgICAgICBTWVNfcmVhZGxpbmsgM3MgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSByZWFkbGluayhwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHJlYWRsaW5rKGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZWFkbGluayhidWZzaXopIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVhZGxpbmsocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHJlYWRsaW5rKGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5MzogICAgICAgICAgICAgIFNZU19mY2htb2QgMnMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmY2htb2QoZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjaG1vZChtb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA5NDogICAgICAgICAgICAgIFNZU19mY2hvd24gM3MgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBmY2hvd24oZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZmNob3duKG93bmVyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZjaG93bihncm91cCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMzA6ICAgICAgICAgICAgICBTWVNfbGNob3duIDNzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGNob3duKHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGNob3duKG93bmVyKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxjaG93bihncm91cCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsY2hvd24ocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEzNDogICAgICAgICAgICAgIFNZU19yZW5hbWUgMnMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSByZW5hbWUoZnJvbSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSByZW5hbWUodG8pIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcmVuYW1lKGZyb20pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSByZW5hbWUodG8pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX29ic29sZXRlLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX29ic29sZXRlLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX29ic29sZXRlLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTQxY2I5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorcHJlcmVxOiB0ZXN0IC1lIHNjYWxhcl9vYnNvbGV0ZQorcHJvZzogc2NhbGFyX29ic29sZXRlCit2Z29wdHM6IC1xIC0tZXJyb3ItbGltaXQ9bm8KK3N0ZGVycl9maWx0ZXJfYXJnczoKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3NobV9uZXcuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3NobV9uZXcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjU1MmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc2htX25ldy5jCkBAIC0wLDAgKzEsNTAgQEAKKy8qIFNjYWxhciB0ZXN0IGZvciBuZXcgc2htc3lzIHN5c2NhbGwgc3ViY29kZXMgYXZhaWxhYmxlIG9uIFNvbGFyaXMgMTEuICovCisKKyNpbmNsdWRlICJzY2FsYXIuaCIKKworI2luY2x1ZGUgPHN5cy9zaG0uaD4KKyNpbmNsdWRlIDxzeXMvc2htX2ltcGwuaD4KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5cyh2b2lkKQoreworICAgR08oU1lTX3NobXN5cywgIihTSE1DVEwsSVBDX1hTVEFUNjQpIDRzIDFtIik7CisgICBTWShTWVNfc2htc3lzLCB4MCArIFNITUNUTCwgeDAsIHgwICsgSVBDX1hTVEFUNjQsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zaG1zeXMyKHZvaWQpCit7CisgICBHTyhTWVNfc2htc3lzLCAiKFNITUFEVixTSE1fQURWX0dFVCkgNHMgMW0iKTsKKyAgIFNZKFNZU19zaG1zeXMsIHgwICsgU0hNQURWLCB4MCwgeDAgKyBTSE1fQURWX0dFVCwgeDAgKyAxKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3NobXN5czModm9pZCkKK3sKKyAgIEdPKFNZU19zaG1zeXMsICIoU0hNQURWLFNITV9BRFZfU0VUKSA0cyAxbSIpOworICAgU1koU1lTX3NobXN5cywgeDAgKyBTSE1BRFYsIHgwLCB4MCArIFNITV9BRFZfU0VULCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc2htc3lzNCh2b2lkKQoreworICAgR08oU1lTX3NobXN5cywgIihTSE1HRVRfT1NNKSA1cyAwbSIpOworICAgU1koU1lTX3NobXN5cywgeDAgKyBTSE1HRVRfT1NNLCB4MCwgeDAsIHgwLCB4MCk7IEZBSUw7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBsb25nICpweCA9IG1hbGxvYyhzaXplb2YobG9uZykpOworICAgeDAgPSBweFswXTsKKworICAgLyogU1lTX3NobXN5cyAgICAgICAgICAgICAgICAgNTIgKi8KKyAgIHN5c19zaG1zeXMoKTsKKyAgIHN5c19zaG1zeXMyKCk7CisgICBzeXNfc2htc3lzMygpOworICAgc3lzX3NobXN5czQoKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3NobV9uZXcuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3NobV9uZXcuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjY5MDQwCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc2htX25ldy5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsNzUgQEAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNQ1RMLElQQ19YU1RBVDY0KSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfeHN0YXQ2NChvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF94c3RhdDY0KHNobWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1jdGxfeHN0YXQ2NChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWN0bF94c3RhdDY0KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzaG1zeXMoc2htY3RsLCBpcGNfeHN0YXQ2NCwgYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNQURWLFNITV9BRFZfR0VUKSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1hZHYob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1hZHYoc2htaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWFkdihjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWFkdihhZHZpY2UpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzKHNobWFkdiwgYWR2aWNlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNQURWLFNITV9BRFZfU0VUKSA0cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1hZHYob3Bjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1hZHYoc2htaWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWFkdihjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWFkdihhZHZpY2UpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzKHNobWFkdiwgYWR2aWNlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDUyOiAgICAgICAgICAgICAgU1lTX3NobXN5cyAoU0hNR0VUX09TTSkgNXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzaG1zeXNfc2htZ2V0X29zbShvcGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWdldF9vc20oa2V5KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1nZXRfb3NtKHNpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc2htc3lzX3NobWdldF9vc20oc2htZmxnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNobXN5c19zaG1nZXRfb3NtKGdyYW51bGVfc3opIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3NobV9uZXcuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3NobV9uZXcuc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc2htX25ldy52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zaG1fbmV3LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGExODA3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc2htX25ldy52Z3Rlc3QKQEAgLTAsMCArMSw0IEBACitwcmVyZXE6IHRlc3QgLWUgc2NhbGFyX3NobV9uZXcKK3Byb2c6IHNjYWxhcl9zaG1fbmV3Cit2Z29wdHM6IC1xCitzdGRlcnJfZmlsdGVyX2FyZ3M6CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zcGF3bi5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc3Bhd24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDFiNTZlCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc3Bhd24uYwpAQCAtMCwwICsxLDcyIEBACisvKiBTY2FsYXIgdGVzdCBmb3IgbmV3IHNwYXduIHN5c2NhbGwgYXZhaWxhYmxlIG9uIFNvbGFyaXMgMTEuICovCisKKyNpbmNsdWRlICJzY2FsYXIuaCIKKworI2luY2x1ZGUgPHN5cy9zcGF3bl9pbXBsLmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zcGF3bih2b2lkKQoreworICAgR08oU1lTX3NwYXduLCAiNXMgN20iKTsKKyAgIFNZKFNZU19zcGF3biwgeDAgKyAxLCB4MCArIDEsIHgwIC0gMSwgeDAgKyAxLCB4MCAtIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc3Bhd24yKHZvaWQpCit7CisgICBrc3Bhd25fYXR0cl90IGtzYTsKKyAgIGtzYS5rc2FfdmVyc2lvbiA9IHgwICsgU1BBV05fVkVSU0lPTjsKKyAgIGtzYS5rc2Ffc2l6ZSA9IHgwICsgc2l6ZW9mKGtzYSk7CisgICBrc2Eua3NhX2F0dHJfb2ZmID0geDAgKyAwOworICAga3NhLmtzYV9wYXRoX29mZiA9IHgwICsgMDsKKyAgIGtzYS5rc2Ffc2hlbGxfb2ZmID0geDAgKyAwOworICAgY2hhciAqYXJnZW52ID0gIiI7CisKKyAgIEdPKFNZU19zcGF3biwgIjlzIDFtIik7CisgICBTWShTWVNfc3Bhd24sIHgwICsgMSwgeDAgKyAma3NhLCBzaXplb2Yoa3NhKSwgeDAgKyBhcmdlbnYsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19zcGF3bjModm9pZCkKK3sKKyAgIGtzcGF3bl9hdHRyX3Qga3NhOworICAga3NhLmtzYV92ZXJzaW9uID0geDAgKyBTUEFXTl9WRVJTSU9OOworICAga3NhLmtzYV9zaXplID0geDAgKyAweGJhZGNhZmZlOworICAga3NhLmtzYV9hdHRyX29mZiA9IHgwICsgMHhiYWRjYWZmZTsKKyAgIGtzYS5rc2FfYXR0cl9zaXplID0geDAgKyAxOworICAga3NhLmtzYV9wYXRoX29mZiA9IHgwICsgMHhkZWFkY2FmZmU7CisgICBrc2Eua3NhX3BhdGhfc2l6ZSA9IHgwICsgMjsKKyAgIGtzYS5rc2Ffc2hlbGxfb2ZmID0geDAgKyAweGRlYWRjYWZmZTsKKyAgIGtzYS5rc2Ffc2hlbGxfc2l6ZSA9IHgwICsgMzsKKyAgIGNoYXIgKmFyZ2VudiA9ICJcMWFyZzFcMFwxYXJnMlwwXDFhcmczXDBcMFwxZW52MVwwXDFlbnYyXDBcMCI7CisKKyAgIEdPKFNZU19zcGF3biwgIjEzcyA0bSIpOworICAgU1koU1lTX3NwYXduLCB4MCArIDEsIHgwICsgJmtzYSwgeDAgKyAweGJhZGNhZmZlLAorICAgICAgeDAgKyBhcmdlbnYsIHgwICsgc2l6ZW9mKGFyZ2VudikpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfc3Bhd240KHZvaWQpCit7CisgICBjaGFyIHBhdGhbXSA9ICIvYmluL3NoIjsKKyAgIGNoYXIgKmFyZ2VudiA9ICJcMmFyZzFcMFwwIjsKKworICAgR08oU1lTX3NwYXduLCAiNHMgMG0iKTsKKyAgIFNZKFNZU19zcGF3biwgcGF0aCwgeDAsIHgwLCB4MCArIGFyZ2VudiwgeDAgKyBzaXplb2YoYXJnZW52KSk7CisgICBGQUlMeChFSU5WQUwpOworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHhbMF0gaXMgMHgwLiAqLworICAgbG9uZyAqcHggPSBtYWxsb2Moc2l6ZW9mKGxvbmcpKTsKKyAgIHgwID0gcHhbMF07CisKKyAgIC8qIFNZU19zcGF3biAgICAgICAgICAgICAgICAgICAyICovCisgICBzeXNfc3Bhd24oKTsKKyAgIHN5c19zcGF3bjIoKTsKKyAgIHN5c19zcGF3bjMoKTsKKyAgIHN5c19zcGF3bjQoKTsKKworICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zcGF3bi5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc3Bhd24uc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjZjNDI5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc3Bhd24uc3RkZXJyLmV4cApAQCAtMCwwICsxLDE2NiBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDI6ICAgICAgICAgICAgICAgU1lTX3NwYXduIDVzIDdtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc3Bhd24ocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRycykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRyc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzcGF3bihhcmdlbnYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24oYWVzaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNwYXduKHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRycy0+a3NhX3ZlcnNpb24pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRycy0+a3NhX3NpemUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRycy0+a3NhX2F0dHJfb2ZmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24oYXR0cnMtPmtzYV9wYXRoX29mZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2Ffc2hlbGxfb2ZmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24oYXJnZW52KSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAyOiAgICAgICAgICAgICAgIFNZU19zcGF3biA5cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNwYXduKHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24oYXR0cnMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24oYXJnZW52KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNwYXduKGFlc2l6ZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzcGF3bihwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24oYXR0cnMtPmtzYV92ZXJzaW9uKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2Ffc2l6ZSkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRycy0+a3NhX2F0dHJfb2ZmKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2FfcGF0aF9vZmYpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24oYXR0cnMtPmtzYV9zaGVsbF9vZmYpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAyOiAgICAgICAgICAgICAgIFNZU19zcGF3biAxM3MgNG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzcGF3bihwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNwYXduKGFyZ2VudikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzcGF3bihhZXNpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24ocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2FfdmVyc2lvbikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRycy0+a3NhX3NpemUpIHBvaW50cyB0byB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrCisKK1N5c2NhbGwgcGFyYW0gc3Bhd24oYXR0cnMtPmtzYV9hdHRyX29mZikgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRycy0+a3NhX3BhdGhfb2ZmKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2Ffc2hlbGxfb2ZmKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2FfYXR0cl9zaXplKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2FfYXR0cikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2FfcGF0aF9zaXplKSBwb2ludHMgdG8gdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2FfcGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzLT5rc2Ffc2hlbGxfc2l6ZSkgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG9uIHRocmVhZCAxJ3Mgc3RhY2sKKworU3lzY2FsbCBwYXJhbSBzcGF3bihhdHRycy0+a3NhX3NoZWxsKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAyOiAgICAgICAgICAgICAgIFNZU19zcGF3biA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNwYXduKGF0dHJzaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNwYXduKGFyZ2VudikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzcGF3bihhZXNpemUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3NwYXduLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zcGF3bi5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zcGF3bi52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zcGF3bi52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU5MThiOAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3NwYXduLnZndGVzdApAQCAtMCwwICsxLDYgQEAKK3ByZXJlcTogdGVzdCAtZSBzY2FsYXJfc3Bhd24KK3Byb2c6IHNjYWxhcl9zcGF3bgordmdvcHRzOiAtcQorc3RkZXJyX2ZpbHRlcjogZmlsdGVyX3NjYWxhcgorIyBTZWUgY29tbWVudCBpbiBzY2FsYXIudmd0ZXN0Lgorc3RkZXJyX2ZpbHRlcl9hcmdzOiBsaWJjCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zeXN0ZW1fc3RhdHMuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3N5c3RlbV9zdGF0cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5M2I2YjYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zeXN0ZW1fc3RhdHMuYwpAQCAtMCwwICsxLDE4IEBACisvKiBUZXN0IGZvciBzeXN0ZW1fc3RhdHMgc3lzY2FsbCB3aGljaCBpcyBhdmFpbGFibGUgb24gbmV3ZXIgU29sYXJpcy4gKi8gCisKKyNpbmNsdWRlICJzY2FsYXIuaCIKKyNpbmNsdWRlIDxzeXMvc3lzdGVtX3N0YXRzLmg+CisKK2ludCBtYWluKHZvaWQpCit7CisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBsb25nICpweCA9IG1hbGxvYyhzaXplb2YobG9uZykpOworICAgeDAgPSBweFswXTsKKworICAgLyogU1lTX3N5c3RlbV9zdGF0cyAgICAgICAgIDE1NCAqLworICAgR08oU1lTX3N5c3RlbV9zdGF0cywgIjFzIDBtIik7CisgICBTWShTWVNfc3lzdGVtX3N0YXRzLCB4MCArIFNZU1RFTV9TVEFUU19TVEFSVCk7IFNVQ0M7CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zeXN0ZW1fc3RhdHMuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3N5c3RlbV9zdGF0cy5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNzBiMGEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zeXN0ZW1fc3RhdHMuc3RkZXJyLmV4cApAQCAtMCwwICsxLDYgQEAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTU0OiAgICAgICAgU1lTX3N5c3RlbV9zdGF0cyAxcyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHN5c3RlbV9zdGF0cyhmbGFnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zeXN0ZW1fc3RhdHMuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3N5c3RlbV9zdGF0cy5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl9zeXN0ZW1fc3RhdHMudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc3lzdGVtX3N0YXRzLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWM0Yjc3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfc3lzdGVtX3N0YXRzLnZndGVzdApAQCAtMCwwICsxLDQgQEAKK3ByZXJlcTogdGVzdCAtZSBzY2FsYXJfc3lzdGVtX3N0YXRzCitwcm9nOiBzY2FsYXJfc3lzdGVtX3N0YXRzCit2Z29wdHM6IC1xCitzdGRlcnJfZmlsdGVyX2FyZ3M6CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl90c29sX2NsZWFyYW5jZS5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdHNvbF9jbGVhcmFuY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Yjc1NTU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdHNvbF9jbGVhcmFuY2UuYwpAQCAtMCwwICsxLDc1IEBACisvKiBTY2FsYXIgdGVzdCBmb3IgbmV3IGxhYmVsc3lzIHN5c2NhbGwgc3ViY29kZXMgVFNPTF9HRVRDTEVBUkFOQ0UKKyAgIGFuZCBUU09MX1NFVENMRUFSQU5DRSBhdmFpbGFibGUgb24gU29sYXJpcyAxMS4gKi8KKworI2luY2x1ZGUgInNjYWxhci5oIgorCisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvdHNvbC90c3lzY2FsbC5oPgorI2luY2x1ZGUgPHRzb2wvbGFiZWwuaD4KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2xhYmVsc3lzKHZvaWQpCit7CisgICBHTyhTWVNfbGFiZWxzeXMsICIoVFNPTF9HRVRDTEVBUkFOQ0UpIDJzIDFtIik7CisgICBTWShTWVNfbGFiZWxzeXMsIHgwICsgVFNPTF9HRVRDTEVBUkFOQ0UsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c19sYWJlbHN5czIodm9pZCkKK3sKKyAgIG1fbGFiZWxfdCAqbGFiZWwgPSBtX2xhYmVsX2FsbG9jKFVTRVJfQ0xFQVIpOworICAgaWYgKGxhYmVsID09IE5VTEwpIHsKKyAgICAgIHBlcnJvcigibV9sYWJlbF9hbGxvYyIpOworICAgICAgcmV0dXJuOworICAgfQorCisgICBHTyhTWVNfbGFiZWxzeXMsICIoVFNPTF9HRVRDTEVBUkFOQ0UpIDFzIDBtIik7CisgICBTWShTWVNfbGFiZWxzeXMsIHgwICsgVFNPTF9HRVRDTEVBUkFOQ0UsIGxhYmVsKTsgU1VDQzsKKworICAgbV9sYWJlbF9mcmVlKGxhYmVsKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX2xhYmVsc3lzMyh2b2lkKQoreworICAgR08oU1lTX2xhYmVsc3lzLCAiKFRTT0xfU0VUQ0xFQVJBTkNFKSAycyAxbSIpOworICAgU1koU1lTX2xhYmVsc3lzLCB4MCArIFRTT0xfU0VUQ0xFQVJBTkNFLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfbGFiZWxzeXM0KHZvaWQpCit7CisgICBtX2xhYmVsX3QgKmxhYmVsID0gbV9sYWJlbF9hbGxvYyhVU0VSX0NMRUFSKTsKKyAgIGlmIChsYWJlbCA9PSBOVUxMKSB7CisgICAgICBwZXJyb3IoIm1fbGFiZWxfYWxsb2MiKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgaW50IHJldCA9IGdldGNsZWFyYW5jZShsYWJlbCk7CisgICBpZiAocmV0ICE9IDApIHsKKyAgICAgIHBlcnJvcigiZ2V0Y2xlYXJhbmNlIik7CisgICAgICBtX2xhYmVsX2ZyZWUobGFiZWwpOworICAgICAgcmV0dXJuOworICAgfQorCisgICBHTyhTWVNfbGFiZWxzeXMsICIoVFNPTF9TRVRDTEVBUkFOQ0UpIDFzIDBtIik7CisgICBTWShTWVNfbGFiZWxzeXMsIHgwICsgVFNPTF9TRVRDTEVBUkFOQ0UsIGxhYmVsKTsgU1VDQzsKKworICAgbV9sYWJlbF9mcmVlKGxhYmVsKTsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGxvbmcgKnB4ID0gbWFsbG9jKHNpemVvZihsb25nKSk7CisgICB4MCA9IHB4WzBdOworCisgICAvKiBTWVNfbGFiZWxzeXMgICAgICAgICAgICAgICAgNTIgKi8KKyAgIHN5c19sYWJlbHN5cygpOworICAgc3lzX2xhYmVsc3lzMigpOworICAgc3lzX2xhYmVsc3lzMygpOworICAgc3lzX2xhYmVsc3lzNCgpOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdHNvbF9jbGVhcmFuY2Uuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3Rzb2xfY2xlYXJhbmNlLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg2ZjljMAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3Rzb2xfY2xlYXJhbmNlLnN0ZGVyci5leHAKQEAgLTAsMCArMSwzOCBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODQ6ICAgICAgICAgICAgU1lTX2xhYmVsc3lzIChUU09MX0dFVENMRUFSQU5DRSkgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsYWJlbHN5c19nZXRjbGVhcmFuY2Uob3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfZ2V0Y2xlYXJhbmNlKGNsZWFyYW5jZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsYWJlbHN5cyhjbGVhcmFuY2UpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxODQ6ICAgICAgICAgICAgU1lTX2xhYmVsc3lzIChUU09MX0dFVENMRUFSQU5DRSkgMXMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBsYWJlbHN5c19nZXRjbGVhcmFuY2Uob3ApIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg0OiAgICAgICAgICAgIFNZU19sYWJlbHN5cyAoVFNPTF9TRVRDTEVBUkFOQ0UpIDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfc2V0Y2xlYXJhbmNlKG9wKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxhYmVsc3lzX3NldGNsZWFyYW5jZShjbGVhcmFuY2UpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXMoY2xlYXJhbmNlKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMTg0OiAgICAgICAgICAgIFNZU19sYWJlbHN5cyAoVFNPTF9TRVRDTEVBUkFOQ0UpIDFzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGFiZWxzeXNfc2V0Y2xlYXJhbmNlKG9wKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl90c29sX2NsZWFyYW5jZS52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl90c29sX2NsZWFyYW5jZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc3ZTI4YQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3Rzb2xfY2xlYXJhbmNlLnZndGVzdApAQCAtMCwwICsxLDQgQEAKK3ByZXJlcTogdGVzdCAtZSBzY2FsYXJfdHNvbF9jbGVhcmFuY2UKK3Byb2c6IHNjYWxhcl90c29sX2NsZWFyYW5jZQordmdvcHRzOiAtcQorc3RkZXJyX2ZpbHRlcl9hcmdzOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVuc2F0LmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZW5zYXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTRhNWM5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVuc2F0LmMKQEAgLTAsMCArMSwzMSBAQAorLyogVGVzdCBmb3IgdXRpbWVuc2F0KCkgc3lzY2FsbCB3aGljaCBpcyBhdmFpbGFibGUgb24gbmV3ZXIgU29sYXJpcy4gKi8gCisKKyNpbmNsdWRlICJzY2FsYXIuaCIKKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3V0aW1lbnNhdCh2b2lkKQoreworICAgR08oU1lTX3V0aW1lbnNhdCwgIjRzIDJtIik7CisgICBTWShTWVNfdXRpbWVuc2F0LCB4MCAtIDEsIHgwICsgMSwgeDAgKyAxLCB4MCk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c191dGltZW5zYXQyKHZvaWQpCit7CisgICBHTyhTWVNfdXRpbWVuc2F0LCAiNHMgMG0iKTsKKyAgIFNZKFNZU191dGltZW5zYXQsIHgwIC0gMSwgeDAgKyBOVUxMLCB4MCArIE5VTEwsIHgwKTsgRkFJTDsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGxvbmcgKnB4ID0gbWFsbG9jKHNpemVvZihsb25nKSk7CisgICB4MCA9IHB4WzBdOworCisgICAvKiBTWVNfdXRpbWVuc2F0ICAgICAgICAgICAgMTEwICovCisgICBzeXNfdXRpbWVuc2F0KCk7CisgICBzeXNfdXRpbWVuc2F0MigpOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVuc2F0LnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZW5zYXQuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjkzZDMwCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVuc2F0LnN0ZGVyci5leHAKQEAgLTAsMCArMSwzOCBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTA6ICAgICAgICAgICBTWVNfdXRpbWVuc2F0IDRzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdXRpbWVuc2F0KGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lbnNhdChwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lbnNhdCh0aW1lcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1dGltZW5zYXQoZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1dGltZW5zYXQocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHV0aW1lbnNhdCh0aW1lcykgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzExMDogICAgICAgICAgIFNZU191dGltZW5zYXQgNHMgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB1dGltZW5zYXQoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdXRpbWVuc2F0KHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdXRpbWVuc2F0KHRpbWVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lbnNhdChmbGFnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZW5zYXQuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3V0aW1lbnNhdC5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZW5zYXQudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVuc2F0LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODhmN2VhCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVuc2F0LnZndGVzdApAQCAtMCwwICsxLDQgQEAKK3ByZXJlcTogdGVzdCAtZSBzY2FsYXJfdXRpbWVuc2F0Citwcm9nOiBzY2FsYXJfdXRpbWVuc2F0Cit2Z29wdHM6IC1xCitzdGRlcnJfZmlsdGVyX2FyZ3M6CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZXN5cy5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVzeXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTkxZDgyCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVzeXMuYwpAQCAtMCwwICsxLDQ5IEBACisvKiBUZXN0IGZvciB1dGltZXN5cygpIHN5c2NhbGwgd2hpY2ggaXMgYXZhaWxhYmxlIG9uIGlsbHVtb3MKKyAgIGFuZCBvbGRlciBTb2xhcmlzLgorICovCisKKyNpbmNsdWRlICJzY2FsYXIuaCIKKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3V0aW1lc3lzKHZvaWQpCit7CisgICBHTyhTWVNfdXRpbWVzeXMsICIoRlVUSU1FTlMpIDNzIDFtIik7CisgICBTWShTWVNfdXRpbWVzeXMsIHgwICsgMCwgeDAgLSAxLCB4MCArIDEpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfdXRpbWVzeXMyKHZvaWQpCit7CisgICBHTyhTWVNfdXRpbWVzeXMsICIoRlVUSU1FTlMpIDNzIDBtIik7CisgICBTWShTWVNfdXRpbWVzeXMsIHgwICsgMCwgeDAgLSAxLCB4MCArIE5VTEwpOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfdXRpbWVzeXMzKHZvaWQpCit7CisgICBHTyhTWVNfdXRpbWVzeXMsICIoVVRJTUVOU0FUKSA1cyAybSIpOworICAgU1koU1lTX3V0aW1lc3lzLCB4MCArIDEsIHgwIC0gMSwgeDAgKyAxLCB4MCArIDEsIHgwKTsgRkFJTDsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3V0aW1lc3lzNCh2b2lkKQoreworICAgR08oU1lTX3V0aW1lc3lzLCAiKFVUSU1FTlNBVCkgNXMgMG0iKTsKKyAgIFNZKFNZU191dGltZXN5cywgeDAgKyAxLCB4MCAtIDEsIHgwICsgTlVMTCwgeDAgKyBOVUxMLCB4MCk7IEZBSUw7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBsb25nICpweCA9IG1hbGxvYyhzaXplb2YobG9uZykpOworICAgeDAgPSBweFswXTsKKworICAgLyogU1lTX3V0aW1lc3lzICAgICAgICAgICAgIDExMCAqLworICAgc3lzX3V0aW1lc3lzKCk7CisgICBzeXNfdXRpbWVzeXMyKCk7CisgICBzeXNfdXRpbWVzeXMzKCk7CisgICBzeXNfdXRpbWVzeXM0KCk7CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZXN5cy5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVzeXMuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmM3NmU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXRpbWVzeXMuc3RkZXJyLmV4cApAQCAtMCwwICsxLDcyIEBACistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzExMDogICAgICAgICAgICBTWVNfdXRpbWVzeXMgKEZVVElNRU5TKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHV0aW1lc3lzKGNvZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdXRpbWVzeXMoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdXRpbWVzeXModGltZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdXRpbWVzeXModGltZXMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTA6ICAgICAgICAgICAgU1lTX3V0aW1lc3lzIChGVVRJTUVOUykgM3MgMG0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB1dGltZXN5cyhjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lc3lzKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lc3lzKHRpbWVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzExMDogICAgICAgICAgICBTWVNfdXRpbWVzeXMgKFVUSU1FTlNBVCkgNXMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB1dGltZXN5cyhjb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lc3lzKGZkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lc3lzKHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdXRpbWVzeXModGltZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gdXRpbWVzeXMoZmxhZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1dGltZXN5cyhwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gdXRpbWVzeXModGltZXMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMTA6ICAgICAgICAgICAgU1lTX3V0aW1lc3lzIChVVElNRU5TQVQpIDVzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdXRpbWVzeXMoY29kZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1dGltZXN5cyhmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB1dGltZXN5cyhwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lc3lzKHRpbWVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV0aW1lc3lzKGZsYWcpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3V0aW1lc3lzLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZXN5cy5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZXN5cy52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dGltZXN5cy52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThlMjUyZAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3V0aW1lc3lzLnZndGVzdApAQCAtMCwwICsxLDQgQEAKK3ByZXJlcTogdGVzdCAtZSBzY2FsYXJfdXRpbWVzeXMKK3Byb2c6IHNjYWxhcl91dGltZXN5cwordmdvcHRzOiAtcQorc3RkZXJyX2ZpbHRlcl9hcmdzOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXVpZHN5cy5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXVpZHN5cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNmFiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dWlkc3lzLmMKQEAgLTAsMCArMSwxNyBAQAorLyogVGVzdCBmb3IgdXVpZHN5cyBzeXNjYWxsIHdoaWNoIGlzIGF2YWlsYWJsZSBvbiBuZXdlciBTb2xhcmlzLiAqLyAKKworI2luY2x1ZGUgInNjYWxhci5oIgorCitpbnQgbWFpbih2b2lkKQoreworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHhbMF0gaXMgMHgwLiAqLworICAgbG9uZyAqcHggPSBtYWxsb2Moc2l6ZW9mKGxvbmcpKTsKKyAgIHgwID0gcHhbMF07CisKKyAgIC8qIFNZU191dWlkc3lzICAgICAgICAgICAgICAxMjQgKi8KKyAgIEdPKFNZU191dWlkc3lzLCAiMXMgMW0iKTsKKyAgIFNZKFNZU191dWlkc3lzLCB4MCArIDEpOyBGQUlMOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXVpZHN5cy5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXVpZHN5cy5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiM2VjZGUKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dWlkc3lzLnN0ZGVyci5leHAKQEAgLTAsMCArMSwxMCBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxMjQ6ICAgICAgICAgICAgIFNZU191dWlkc3lzIDFzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gdXVpZHN5cyh1dWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHV1aWRzeXModXVpZCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dWlkc3lzLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl91dWlkc3lzLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3V1aWRzeXMudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfdXVpZHN5cy52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA4ZTAyMAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3V1aWRzeXMudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorcHJlcmVxOiB0ZXN0IC1lIHNjYWxhcl91dWlkc3lzCitwcm9nOiBzY2FsYXJfdXVpZHN5cwordmdvcHRzOiAtcQorc3RkZXJyX2ZpbHRlcl9hcmdzOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfem9uZV9kZWZ1bmN0LmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl96b25lX2RlZnVuY3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWQ4OTc4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfem9uZV9kZWZ1bmN0LmMKQEAgLTAsMCArMSw0NCBAQAorLyogU2NhbGFyIHRlc3QgZm9yIG5ldyB6b25lIHN5c2NhbGwgc3ViY29kZXMgYXZhaWxhYmxlIG9uIFNvbGFyaXMgMTEuICovCisKKyNpbmNsdWRlICJzY2FsYXIuaCIKKworI2luY2x1ZGUgPHN5cy96b25lLmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c196b25lKHZvaWQpCit7CisgICBHTyhTWVNfem9uZSwgIihaT05FX0xJU1RfREVGVU5DVCkgM3MgMW0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfTElTVF9ERUZVTkNULCB4MCArIDEsIHgwICsgMik7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c196b25lMih2b2lkKQoreworICAgdWludF90IG51bXpvbmVzID0geDAgKyAxOworCisgICBHTyhTWVNfem9uZSwgIihaT05FX0xJU1RfREVGVU5DVCkgMnMgMW0iKTsKKyAgIFNZKFNZU196b25lLCB4MCArIFpPTkVfTElTVF9ERUZVTkNULCB4MCArIDEsICZudW16b25lcyk7IFNVQ0M7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIHN5c196b25lMyh2b2lkKQoreworICAgR08oU1lTX3pvbmUsICIoWk9ORV9HRVRBVFRSX0RFRlVOQ1QpIDVzIDJtIik7CisgICBTWShTWVNfem9uZSwgeDAgKyBaT05FX0dFVEFUVFJfREVGVU5DVCwgeDAgKyAxLCB4MCwgeDAgKyAyLCB4MCArIDMpOworICAgRkFJTDsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGxvbmcgKnB4ID0gbWFsbG9jKHNpemVvZihsb25nKSk7CisgICB4MCA9IHB4WzBdOworCisgICAvKiBTWVNfem9uZSAgICAgICAgICAgICAgICAgIDIyNyAqLworICAgc3lzX3pvbmUoKTsKKyAgIHN5c196b25lMigpOworICAgc3lzX3pvbmUzKCk7CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl96b25lX2RlZnVuY3Quc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3pvbmVfZGVmdW5jdC5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNTYxYzgKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl96b25lX2RlZnVuY3Quc3RkZXJyLmV4cApAQCAtMCwwICsxLDU1IEBACistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyNzogICAgICAgICAgICAgICAgU1lTX3pvbmUgKFpPTkVfTElTVF9ERUZVTkNUKSAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHpvbmVfbGlzdF9kZWZ1bmN0KGNtZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2xpc3RfZGVmdW5jdCh1bmlxaWRsaXN0KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfbGlzdF9kZWZ1bmN0KG51bXpvbmVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmUobnVtem9uZXMpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMjc6ICAgICAgICAgICAgICAgIFNZU196b25lIChaT05FX0xJU1RfREVGVU5DVCkgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB6b25lX2xpc3RfZGVmdW5jdChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9saXN0X2RlZnVuY3QodW5pcWlkbGlzdCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lKHVuaXFpZGxpc3QpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMjc6ICAgICAgICAgICAgICAgIFNZU196b25lIChaT05FX0dFVEFUVFJfREVGVU5DVCkgNXMgMm0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSB6b25lX2dldGF0dHJfZGVmdW5jdChjbWQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9nZXRhdHRyX2RlZnVuY3QodW5pcWlkKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmVfZ2V0YXR0cl9kZWZ1bmN0KGF0dHIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gem9uZV9nZXRhdHRyX2RlZnVuY3QodmFscCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSB6b25lX2dldGF0dHJfZGVmdW5jdChzaXplKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHpvbmUodW5pcWlkKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gem9uZSh2YWxwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3pvbmVfZGVmdW5jdC5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zY2FsYXJfem9uZV9kZWZ1bmN0LnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2NhbGFyX3pvbmVfZGVmdW5jdC52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl96b25lX2RlZnVuY3Qudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4Mjc5ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NjYWxhcl96b25lX2RlZnVuY3Qudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorcHJlcmVxOiB0ZXN0IC1lIHNjYWxhcl96b25lX2RlZnVuY3QKK3Byb2c6IHNjYWxhcl96b25lX2RlZnVuY3QKK3Znb3B0czogLXEKK3N0ZGVycl9maWx0ZXJfYXJnczoKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2VuZGZpbGV2LmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NlbmRmaWxldi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZDAwM2MKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NlbmRmaWxldi5jCkBAIC0wLDAgKzEsODggQEAKKy8qIFRlc3RzIHNlbmRmaWxldiB3aXRoIGJvZ3VzIGlucHV0cy4gKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0cmluZ3MuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc2VuZGZpbGUuaD4KKworI2RlZmluZSBDSFVOSyAoOCAqIDEwMjQpCisjZGVmaW5lIFRFU1RfRklMRSAic2VuZGZpbGUudGVzdCIKKworaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKK3sKKyAgIGludCB0ZXN0X2ZkID0gb3BlbihURVNUX0ZJTEUsIE9fV1JPTkxZIHwgT19DUkVBVCwgMDY2Nik7CisgICBpZiAodGVzdF9mZCA8IDApIHsKKyAgICAgIGludCBlcnJvciA9IGVycm5vOworICAgICAgZnByaW50ZihzdGRlcnIsICJvcGVuIGZhaWxlZDogJXMgKCVkKS5cbiIsIHN0cmVycm9yKGVycm9yKSwgZXJyb3IpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIGNoYXIgY2h1bmsxW0NIVU5LXTsKKyAgIGJ6ZXJvKCZjaHVuazEsIHNpemVvZihjaHVuazEpKTsKKyAgIHNzaXplX3QgbmJ5dGVzID0gd3JpdGUodGVzdF9mZCwgJmNodW5rMSwgc2l6ZW9mKGNodW5rMSkpOworICAgaWYgKG5ieXRlcyAhPSBDSFVOSykgeworICAgICAgaW50IGVycm9yID0gZXJybm87CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIndyaXRlIGZhaWxlZCAobmJ5dGVzPSV6ZCk6ICVzICglZCkuXG4iLAorICAgICAgICAgICAgICBuYnl0ZXMsIHN0cmVycm9yKGVycm9yKSwgZXJyb3IpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIGNsb3NlKHRlc3RfZmQpOworICAgcHJpbnRmKCJUZXN0IGZpbGUgY3JlYXRlZC5cbiIpOyAKKworICAgdGVzdF9mZCA9IG9wZW4oVEVTVF9GSUxFLCBPX1JEV1IsIDA2NjYpOworICAgaWYgKHRlc3RfZmQgPCAwKSB7CisgICAgICBpbnQgZXJyb3IgPSBlcnJubzsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAib3BlbiBmYWlsZWQ6ICVzICglZCkuXG4iLCBzdHJlcnJvcihlcnJvciksIGVycm9yKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICBzZW5kZmlsZXZlY190IHZlY1syXTsKKyAgIHZlY1swXS5zZnZfZmQgPSBTRlZfRkRfU0VMRjsKKyAgIHZlY1swXS5zZnZfb2ZmID0gLTE7CisgICB2ZWNbMF0uc2Z2X2xlbiA9IDE7CisgICB2ZWNbMF0uc2Z2X2ZsYWcgPSAwOworICAgdmVjWzFdLnNmdl9mZCA9IHRlc3RfZmQ7CisgICB2ZWNbMV0uc2Z2X29mZiA9IDA7CisgICB2ZWNbMV0uc2Z2X2xlbiA9IENIVU5LOworICAgdmVjWzFdLnNmdl9mbGFnID0gMDsKKyAgIHNpemVfdCB4ZmVycmVkOworCisgICBuYnl0ZXMgPSBzZW5kZmlsZXYodGVzdF9mZCwgdmVjLCAyLCAmeGZlcnJlZCk7CisgICBpZiAobmJ5dGVzIDwgMCkgeworICAgICAgaWYgKGVycm5vID09IEVGQVVMVCkgeworICAgICAgICAgcHJpbnRmKCJSZWNlaXZlZCBFRkFVTFQgYXMgZXhwZWN0ZWQuXG4iKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVkIEVGQVVMVCwgZ290ICVkLlxuIiwgZXJybm8pOworICAgICAgfQorICAgfSBlbHNlIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3I6IHNlbmRmaWxldiByZXR1cm5lZCBhIHBvc2l0aXZlIHZhbHVlLlxuIik7CisgICB9CisKKyAgIG5ieXRlcyA9IHNlbmRmaWxldih0ZXN0X2ZkLCB2ZWMsIC0xLCAmeGZlcnJlZCk7CisgICBpZiAobmJ5dGVzIDwgMCkgeworICAgICAgaWYgKGVycm5vID09IEVJTlZBTCkgeworICAgICAgICAgcHJpbnRmKCJSZWNlaXZlZCBFSU5WQUwgYXMgZXhwZWN0ZWQuXG4iKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVkIEVJTlZBTCwgZ290ICVkLlxuIiwgZXJybm8pOworICAgICAgfQorICAgfSBlbHNlIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3I6IHNlbmRmaWxldiByZXR1cm5lZCBhIHBvc2l0aXZlIHZhbHVlLlxuIik7CisgICB9CisKKyAgIHZlY1swXS5zZnZfb2ZmID0gKG9mZl90KSAiSEVBREVSIjsKKyAgIHZlY1swXS5zZnZfbGVuID0gNjsKKyAgIG5ieXRlcyA9IHNlbmRmaWxldih0ZXN0X2ZkLCB2ZWMsIDEsICZ4ZmVycmVkKTsKKyAgIGlmIChuYnl0ZXMgPCAwKSB7CisgICAgICBpbnQgZXJyb3IgPSBlcnJubzsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAic2VuZGZpbGV2IGZhaWxlZDogJXMgKCVkKS5cbiIsIHN0cmVycm9yKGVycm9yKSwgZXJyb3IpOworICAgfSBlbHNlIHsKKyAgICAgIHByaW50Zigic2VuZGZpbGV2IGZvciB0aGUgZmlyc3QgYnVmZmVyIHN1Y2NlZWRlZC5cbiIpOworICAgfQorCisgICB1bmxpbmsoVEVTVF9GSUxFKTsKKyAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zZW5kZmlsZXYuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2VuZGZpbGV2LnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIwN2EwZAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2VuZGZpbGV2LnN0ZGVyci5leHAKQEAgLTAsMCArMSwxMSBAQAorU3lzY2FsbCBwYXJhbSBzZW5kZmlsZXYodmVjWzBdLnNmdl9vZmYgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzZW5kZmlsZXYuYzo1NCkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gc2VuZGZpbGV2KHZlYykgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzZW5kZmlsZXYuYzo2NSkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgb24gdGhyZWFkIDEncyBzdGFjaworIGluIGZyYW1lICMuLCBjcmVhdGVkIGJ5IG1haW4gKHNlbmRmaWxldi5jOjE1KQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NlbmRmaWxldi5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zZW5kZmlsZXYuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWRjZjY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zZW5kZmlsZXYuc3Rkb3V0LmV4cApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgZmlsZSBjcmVhdGVkLgorUmVjZWl2ZWQgRUZBVUxUIGFzIGV4cGVjdGVkLgorUmVjZWl2ZWQgRUlOVkFMIGFzIGV4cGVjdGVkLgorc2VuZGZpbGV2IGZvciB0aGUgZmlyc3QgYnVmZmVyIHN1Y2NlZWRlZC4KZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2VuZGZpbGV2LnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2VuZGZpbGV2LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGYzNDMzCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zZW5kZmlsZXYudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorcHJvZzogc2VuZGZpbGV2Cit2Z29wdHM6IC1xCitzdGRlcnJfZmlsdGVyOiBmaWx0ZXJfc2VuZGZpbGV2CitzdGRlcnJfZmlsdGVyX2FyZ3M6IHNlbmRmaWxldi5jCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NobWF0LmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NobWF0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU2NTc0OAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2htYXQuYwpAQCAtMCwwICsxLDQ0IEBACisvKiBUZXN0cyBzaW1wbGUgbWFuaXB1bGF0aW9uIHdpdGggYSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQuICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy9zaG0uaD4KKworI2RlZmluZSBTRUdNRU5UX1NJWkUgMTY3CisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCit7CisgICBpbnQgc2htaWQgPSBzaG1nZXQoSVBDX1BSSVZBVEUsIFNFR01FTlRfU0laRSwgSVBDX0NSRUFUIHwgU0hNX1IgfCBTSE1fVyk7CisgICBpZiAoc2htaWQgPCAwKSB7CisgICAgICBwZXJyb3IoInNobWdldCgpIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgdm9pZCAqYWRkciA9IHNobWF0KHNobWlkLCBOVUxMLCAwKTsKKyAgIGlmIChhZGRyID09ICh2b2lkICopIC0xKSB7CisgICAgICBwZXJyb3IoInNobWF0KCkiKTsKKyAgICAgIHJldHVybiAyOworICAgfQorCisgICBzdHJ1Y3Qgc2htaWRfZHMgc3RhdHM7CisgICBpbnQgcmV0ID0gc2htY3RsKHNobWlkLCBJUENfU1RBVCwgJnN0YXRzKTsKKyAgIGlmIChyZXQgIT0gMCkgeworICAgICAgcGVycm9yKCJzaG1jdGwoSVBDX1NUQVQpIik7CisgICAgICByZXR1cm4gMzsKKyAgIH0gICAKKworICAgcHJpbnRmKCJzZWdtZW50IHNpemU6ICV6dVxuIiwgc3RhdHMuc2htX3NlZ3N6KTsKKworICAgcmV0ID0gc2htZHQoYWRkcik7CisgICBpZiAocmV0ICE9IDApIHsKKyAgICAgIHBlcnJvcigic2htZHQoKSIpOworICAgICAgcmV0dXJuIDQ7CisgICB9CisKKyAgIHJldCA9IHNobWN0bChzaG1pZCwgSVBDX1JNSUQsIE5VTEwpOworICAgaWYgKHJldCAhPSAwKSB7CisgICAgICBwZXJyb3IoInNobWN0bChJUENfUk1JRCkiKTsKKyAgICAgIHJldHVybiA1OworICAgfQorCisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2htYXQuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2htYXQuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zaG1hdC5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zaG1hdC5zdGRvdXQuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxYzUyMzYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NobWF0LnN0ZG91dC5leHAKQEAgLTAsMCArMSBAQAorc2VnbWVudCBzaXplOiAxNjcKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2htYXQudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zaG1hdC52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY1ZTlhOQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc2htYXQudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogc2htYXQKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3Bhd24uYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3Bhd24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mM2MwNjMyCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zcGF3bi5jCkBAIC0wLDAgKzEsMTEyIEBACisvKiBGdW5jdGlvbmFsIHRlc3RzIGZvciBzcGF3bigpIHN5c2NhbGwgaW52b2tlZCBpbmRpcmVjdGx5IHZpYSBwb3NpeF9zcGF3bigpCisgICBvciBzeXN0ZW0oKS4gKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3Bhd24uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZ3MuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorCisKKyNkZWZpbmUgRVhFX05BTUUgIi4uLy4uLy4uL3Rlc3RzL3RydWUiCisKK3N0YXRpYyB2b2xhdGlsZSBpbnQgc2lnY2hsZF9oYW5kbGVkID0gMDsKK3N0YXRpYyB2b2lkIHNpZ2NobGRfaGFuZGxlcihpbnQgc2lnLCBzaWdpbmZvX3QgKnNpcCwgdm9pZCAqdWNvbnRleHQpIHsKKyAgIGFzc2VydChzaWcgPT0gU0lHQ0hMRCk7CisgICBzaWdjaGxkX2hhbmRsZWQgPSAxOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqY29uc3QgYXJndltdLCBjaGFyICpjb25zdCBlbnZwW10pIHsKKyAgIGludCByZXQgPSBzeXN0ZW0oRVhFX05BTUUpOworICAgaWYgKHJldCAhPSAwKQorICAgICAgcGVycm9yKCJzeXN0ZW0iKTsKKworICAgLyogc3lzdGVtKCkgKi8KKyAgIHJldCA9IHN5c3RlbShOVUxMKTsKKyAgIGlmIChyZXQgPT0gMCkKKyAgICAgIGZwcmludGYoc3RkZXJyLCAic3lzdGVtKCkgc3VjY2VlZGVkIik7CisKKyAgIC8qIHBvc2l4X3NwYXduKCksIG5vIGZpbGUgYWN0aW9ucywgbm8gYXR0cnMgKi8KKyAgIGNoYXIgKmNvbnN0IGFyZ3ZfZXhlW10gPSB7InRydWUiLCBOVUxMfTsKKyAgIHBpZF90IGNoaWxkOworICAgcmV0ID0gcG9zaXhfc3Bhd24oJmNoaWxkLCBFWEVfTkFNRSwgTlVMTCwgTlVMTCwgYXJndl9leGUsIGVudnApOworICAgaWYgKHJldCAhPSAwKQorICAgICAgcGVycm9yKCJwb3NpeF9zcGF3biIpOworICAgd2FpdHBpZChjaGlsZCwgTlVMTCwgMCk7CisKKyAgIC8qIHBvc2l4X3NwYXduKCksIGZpbGUgYWN0aW9ucywgbm8gYXR0cnMgKi8KKyAgIHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc190IGZhOworICAgcmV0ID0gcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2luaXQoJmZhKTsKKyAgIGlmIChyZXQgIT0gMCkKKyAgICAgIHBlcnJvcigicG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2luaXQiKTsKKyAgIHJldCA9IHBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGRvcGVuKCZmYSwgMTAsICIvZGV2L251bGwiLCBPX1JET05MWSwgMCk7CisgICBpZiAocmV0ICE9IDApCisgICAgICBwZXJyb3IoInBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19hZGRvcGVuIik7CisgICByZXQgPSBwb3NpeF9zcGF3bigmY2hpbGQsIEVYRV9OQU1FLCAmZmEsIE5VTEwsIGFyZ3ZfZXhlLCBlbnZwKTsKKyAgIGlmIChyZXQgIT0gMCkKKyAgICAgIHBlcnJvcigicG9zaXhfc3Bhd24iKTsKKyAgIHdhaXRwaWQoY2hpbGQsIE5VTEwsIDApOworICAgcmV0ID0gcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2Rlc3Ryb3koJmZhKTsKKyAgIGlmIChyZXQgIT0gMCkKKyAgICAgIHBlcnJvcigicG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2Rlc3Ryb3kiKTsKKworICAgLyogcG9zaXhfc3Bhd24oKSwgbm8gZmlsZSBhY3Rpb25zLCBhdHRycyAqLworICAgcG9zaXhfc3Bhd25hdHRyX3Qgc3BhOworICAgcmV0ID0gcG9zaXhfc3Bhd25hdHRyX2luaXQoJnNwYSk7CisgICBpZiAocmV0ICE9IDApCisgICAgICBwZXJyb3IoInBvc2l4X3NwYXduYXR0cl9pbml0Iik7CisgICByZXQgPSBwb3NpeF9zcGF3bmF0dHJfc2V0ZmxhZ3MoJnNwYSwgUE9TSVhfU1BBV05fUkVTRVRJRFMpOworICAgaWYgKHJldCAhPSAwKQorICAgICAgcGVycm9yKCJwb3NpeF9zcGF3bmF0dHJfc2V0ZmxhZ3MiKTsKKyAgIHJldCA9IHBvc2l4X3NwYXduKCZjaGlsZCwgRVhFX05BTUUsIE5VTEwsICZzcGEsIGFyZ3ZfZXhlLCBlbnZwKTsKKyAgIGlmIChyZXQgIT0gMCkKKyAgICAgIHBlcnJvcigicG9zaXhfc3Bhd24iKTsKKyAgIHdhaXRwaWQoY2hpbGQsIE5VTEwsIDApOworICAgcmV0ID0gcG9zaXhfc3Bhd25hdHRyX2Rlc3Ryb3koJnNwYSk7CisgICBpZiAocmV0ICE9IDApCisgICAgICBwZXJyb3IoInBvc2l4X3NwYXduYXR0cl9kZXN0cm95Iik7CisKKyAgIC8qIHBvc2l4X3NwYXduKCksIG5vIGZpbGUgYWN0aW9ucywgbm8gYXR0cnMsIHRlc3QgU0lHQ0hMRCBkZWxpdmVyeSAqLworICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Q7CisgICBiemVybygmYWN0LCBzaXplb2YoYWN0KSk7CisgICBhY3Quc2Ffc2lnYWN0aW9uID0gc2lnY2hsZF9oYW5kbGVyOworICAgYWN0LnNhX2ZsYWdzID0gU0FfU0lHSU5GTzsKKyAgIHJldCA9IHNpZ2FjdGlvbihTSUdDSExELCAmYWN0LCBOVUxMKTsKKyAgIGlmIChyZXQgIT0gMCkKKyAgICAgIHBlcnJvcigic2lnYWN0aW9uIik7CisgICBzaWdjaGxkX2hhbmRsZWQgPSAwOworICAgcmV0ID0gcG9zaXhfc3Bhd24oJmNoaWxkLCBFWEVfTkFNRSwgTlVMTCwgTlVMTCwgYXJndl9leGUsIGVudnApOworICAgaWYgKHJldCAhPSAwKQorICAgICAgcGVycm9yKCJwb3NpeF9zcGF3biIpOworICAgd2FpdHBpZChjaGlsZCwgTlVMTCwgMCk7CisgICBpZiAoc2lnY2hsZF9oYW5kbGVkID09IDEpIHsKKyAgICAgIHByaW50ZigiUEFTU1xuIik7CisgICB9IGVsc2UgeworICAgICAgcHJpbnRmKCJGQUlMXG4iKTsKKyAgIH0KKworICAgLyogcG9zaXhfc3Bhd24oKSwgbm8gZmlsZSBhY3Rpb25zLCBhdHRycywgdGVzdCAqbm8qIFNJR0NITEQgZGVsaXZlcnkgKi8KKyAgIHJldCA9IHBvc2l4X3NwYXduYXR0cl9pbml0KCZzcGEpOworICAgaWYgKHJldCAhPSAwKQorICAgICAgcGVycm9yKCJwb3NpeF9zcGF3bmF0dHJfaW5pdCIpOworICAgcmV0ID0gcG9zaXhfc3Bhd25hdHRyX3NldGZsYWdzKCZzcGEsIFBPU0lYX1NQQVdOX05PU0lHQ0hMRF9OUCk7CisgICBpZiAocmV0ICE9IDApCisgICAgICBwZXJyb3IoInBvc2l4X3NwYXduYXR0cl9zZXRmbGFncyIpOworICAgc2lnY2hsZF9oYW5kbGVkID0gMDsKKyAgIHJldCA9IHBvc2l4X3NwYXduKCZjaGlsZCwgRVhFX05BTUUsIE5VTEwsICZzcGEsIGFyZ3ZfZXhlLCBlbnZwKTsKKyAgIGlmIChyZXQgIT0gMCkKKyAgICAgIHBlcnJvcigicG9zaXhfc3Bhd24iKTsKKyAgIHdhaXRwaWQoY2hpbGQsIE5VTEwsIDApOworICAgaWYgKHNpZ2NobGRfaGFuZGxlZCA9PSAwKSB7CisgICAgICBwcmludGYoIlBBU1NcbiIpOworICAgfSBlbHNlIHsKKyAgICAgIHByaW50ZigiRkFJTFxuIik7CisgICB9CisgICByZXQgPSBwb3NpeF9zcGF3bmF0dHJfZGVzdHJveSgmc3BhKTsKKyAgIGlmIChyZXQgIT0gMCkKKyAgICAgIHBlcnJvcigicG9zaXhfc3Bhd25hdHRyX2Rlc3Ryb3kiKTsKKworICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NwYXduLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NwYXduLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3Bhd24uc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3Bhd24uc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGUwMzUyCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zcGF3bi5zdGRvdXQuZXhwCkBAIC0wLDAgKzEsMiBAQAorUEFTUworUEFTUwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zcGF3bi52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3NwYXduLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDBlYWE5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zcGF3bi52Z3Rlc3QKQEAgLTAsMCArMSwzIEBACitwcmVyZXE6IHRlc3QgLWUgc3Bhd24KK3Byb2c6IHNwYXduCit2Z29wdHM6IC1xIC0tdHJhY2UtY2hpbGRyZW49eWVzCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3N0cmxjcHkuYyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3RybGNweS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZDdlMTMKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3N0cmxjcHkuYwpAQCAtMCwwICsxLDQ3IEBACisvKiBUZXN0cyBmb3Igc29tZSBpbnRlcmVzdGluZyBjYXNlcyBpbiBub24tc3RhbmRhcmQgc3RybGNweSgpLiAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisKK2ludCBtYWluKHZvaWQpCit7CisgICBzaXplX3QgY29waWVkOworCisgICBjaGFyICpzcmMgPSBtYWxsb2MoMTAwKTsKKyAgIGlmIChzcmMgPT0gTlVMTCkgeworICAgICAgZnByaW50ZihzdGRlcnIsICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlLlxuIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKyAgIHN0cmNweShzcmMsICJIZXksIGR1ZGUhIik7CisKKyAgIGNoYXIgKmRzdCA9IG1hbGxvYygxMCk7CisgICBpZiAoZHN0ID09IE5VTEwpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZS5cbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIC8qIFRoaXMgaXMgb2suICovCisgICBjb3BpZWQgPSBzdHJsY3B5KGRzdCwgc3JjLCAxMCk7CisgICBpZiAoY29waWVkICE9IDEwKQorICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCAxMCBidXQgZ290ICV6dSBmb3IgdGVzdCAjMS5cbiIsIGNvcGllZCk7CisKKyAgIC8qIEhlcmUgZHN0IGlzIG5vdCBsYXJnZSBlbm91Z2guICovCisgICBjb3BpZWQgPSBzdHJsY3B5KGRzdCwgc3JjLCBzdHJsZW4oc3JjKSArIDEpOworICAgaWYgKGNvcGllZCAhPSAxMCkKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0ZWQgMTAgYnV0IGdvdCAlenUgZm9yIHRlc3QgIzIuXG4iLCBjb3BpZWQpOworCisgICAvKiBUaGlzIGlzIGp1c3QgYSBmYW5jeSB3YXkgaG93IHRvIHdyaXRlIHN0cmxlbihzcmMpLgorICAgICAgVW5kb2N1bWVudGVkIGJ1dCBoZWF2aWx5IHVzZWQuICovCisgICBjb3BpZWQgPSBzdHJsY3B5KE5VTEwsIHNyYywgMCk7CisgICBpZiAoY29waWVkICE9IDEwKQorICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCAxMCBidXQgZ290ICV6dSBmb3IgdGVzdCAjMy5cbiIsIGNvcGllZCk7CisKKyAgIC8qIFNvdXJjZSBhbmQgZGVzdGluYXRpb24gb3ZlcmxhcC4gKi8KKyAgIHN0cmxjcHkoc3JjICsgOSwgc3JjLCBzdHJsZW4oc3JjKSArIDEpOworICAgLyogUmV0dXJuIHZhbHVlIGlzIG5vdCBjaGVja2VkIGJlY2F1c2UgZnVuY3Rpb24gYmVoYXZpb3VyCisgICAgICBpcyB1bmRlZmluZWQgaW4gc3VjaCBjYXNlIChhbmQgdmFsZ3JpbmQncyBkaWZmZXJzKS4gKi8KKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3RybGNweS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zdHJsY3B5LnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQxYzM3MwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3RybGNweS5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMTEgQEAKK0ludmFsaWQgd3JpdGUgb2Ygc2l6ZSAxCisgICBhdCAweC4uLi4uLi4uOiBzdHJsY3B5ICh2Z19yZXBsYWNlX3N0cm1lbS5jOi4uLikKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSAxMCBhbGxvYydkCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgLi4uCisKK1NvdXJjZSBhbmQgZGVzdGluYXRpb24gb3ZlcmxhcCBpbiBzdHJsY3B5KDB4Li4uLi4uLi4sIDB4Li4uLi4uLi4sIDExKQorICAgYXQgMHguLi4uLi4uLjogc3RybGNweSAodmdfcmVwbGFjZV9zdHJtZW0uYzouLi4pCisgICAuLi4KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zdHJsY3B5LnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3N0cmxjcHkuc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zdHJsY3B5LnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3RybGNweS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQzMjcwMgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3RybGNweS52Z3Rlc3QKQEAgLTAsMCArMSw1IEBACitwcm9nOiBzdHJsY3B5Cit2Z29wdHM6IC1xCisjIFRoZSBuZXh0IGxpbmUgY2F1c2VzIHRoYXQgYWxsIHN0YWNrIHRyYWNlcyBhcmUgY29tcGxldGVseSByZW1vdmVkLgorc3RkZXJyX2ZpbHRlcl9hcmdzOgorc3RkZXJyX2ZpbHRlcjogZmlsdGVyX3NjYWxhcgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zdXBwb25seW9iai5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zdXBwb25seW9iai5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1YzQxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3N1cHBvbmx5b2JqLnN0ZGVyci5leHAKQEAgLTAsMCArMSw4IEBACitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGlubGluZm8uYzo5KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGlubGluZm8uYzo5KQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3N1cHBvbmx5b2JqLnN1cHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3N1cHBvbmx5b2JqLnN1cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc0Y2JjZAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3VwcG9ubHlvYmouc3VwcApAQCAtMCwwICsxLDE2IEBACit7CisgICBvYmoyCisgICBNZW1jaGVjazpDb25kCisgICBvYmo6KmlubGluZm9fbmVzdGVkLnNvCisgICBvYmo6KmlubGluZm9fbmVzdGVkLnNvCit9CisKK3sKKyAgIG9iajUKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajoqaW5saW5mb19uZXN0ZWQuc28KKyAgIG9iajoqaW5saW5mb19uZXN0ZWQuc28KKyAgIG9iajoqaW5saW5mb19uZXN0ZWQuc28KKyAgIG9iajoqaW5saW5mb19uZXN0ZWQuc28KKyAgIG9iajoqaW5saW5mb19uZXN0ZWQuc28KK30KZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3VwcG9ubHlvYmoudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zdXBwb25seW9iai52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY1ZTQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3VwcG9ubHlvYmoudmd0ZXN0CkBAIC0wLDAgKzEsNCBAQAorIyBUZXN0IHN1cHByZXNzaW9ucyB3aXRoIG9ubHkgb2JqOiBtYXJrZXJzLgorcHJvZzogaW5saW5mbwordmdvcHRzOiAtcSAtLXJlYWQtaW5saW5lLWluZm89bm8gLS1zdXBwcmVzc2lvbnM9c3VwcG9ubHlvYmouc3VwcAorc3RkZXJyX2ZpbHRlcl9hcmdzOiBpbmxpbmZvLmMKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3lzY2FsbF9hdC5jIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zeXNjYWxsX2F0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FhZjM0ZgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3lzY2FsbF9hdC5jCkBAIC0wLDAgKzEsMTA3IEBACisvKiBUZXN0cyB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiBkZmQgYW5kIHBhdGhuYW1lIGZvciAqYXQgc3lzY2FsbHMuCisgICBJbiBwYXJ0aWN1bGFyLCBkZmQgc2hvdWxkIG5vdCBiZSBjaGVja2VkIHdoZW4gcGF0aG5hbWUgaXMgYWJzb2x1dGUuCisgICBTZWUgaHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPTMwNzEwMyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorCisjZGVmaW5lIERJUkVDVE9SWSAiL3RtcC8iCisjZGVmaW5lIEZJTEVOQU1FICJhYmMxMjMiCisKK2ludCBtYWluKHZvaWQpCit7CisgICBjaGFyIGJ1ZlsxXTsKKyAgIHN0cnVjdCBzdGF0IHN0YXRzOworCisgICBpbnQgZGZkID0gb3BlbihESVJFQ1RPUlksIE9fUkRPTkxZKTsKKworICAgLyogbGlua2F0ICovCisgICBsaW5rYXQoZGZkLCBGSUxFTkFNRSwgZGZkLCBGSUxFTkFNRSwgMCk7CisgICBsaW5rYXQoMHg5ODc5MTUxLCBESVJFQ1RPUlkgRklMRU5BTUUsIDB4OTg3OTE1MiwgRElSRUNUT1JZIEZJTEVOQU1FLCAwKTsKKyAgIGxpbmthdChBVF9GRENXRCwgRklMRU5BTUUsIEFUX0ZEQ1dELCBGSUxFTkFNRSwgMCk7CisgICBsaW5rYXQoMHg5ODc5MTUzLCBGSUxFTkFNRSwgMHg5ODc5MTU0LCBGSUxFTkFNRSwgMCk7IC8qIHdhcm5pbmcgZm9yIHRoaXMgb25lICovCisKKyAgIC8qIHN5bWxpbmthdCAqLworICAgc3ltbGlua2F0KEZJTEVOQU1FLCBkZmQsIEZJTEVOQU1FKTsKKyAgIHN5bWxpbmthdChESVJFQ1RPUlkgRklMRU5BTUUsIDB4MjY4NjgxNTEsIERJUkVDVE9SWSBGSUxFTkFNRSk7CisgICBzeW1saW5rYXQoRklMRU5BTUUsIEFUX0ZEQ1dELCBGSUxFTkFNRSk7CisgICBzeW1saW5rYXQoRklMRU5BTUUsIDB4MjY4NjgxNTIsIEZJTEVOQU1FKTsgLyogd2FybmluZyBmb3IgdGhpcyBvbmUgKi8KKworICAgLyogcmVhZGxpbmthdCAqLworICAgcmVhZGxpbmthdChkZmQsIEZJTEVOQU1FLCBidWYsIDEpOworICAgcmVhZGxpbmthdCgweDQzNjgxNTEsIERJUkVDVE9SWSBGSUxFTkFNRSwgYnVmLCAxKTsKKyAgIHJlYWRsaW5rYXQoQVRfRkRDV0QsIEZJTEVOQU1FLCBidWYsIDEpOworICAgcmVhZGxpbmthdCgweDQzNjgxNTIsIEZJTEVOQU1FLCBidWYsIDEpOyAvKiB3YXJuaW5nIGZvciB0aGlzIG9uZSAqLworCisjaWYgZGVmaW5lZChTT0xBUklTX0ZSRUFMUEFUSEFUX1NZU0NBTEwpCisgICAvKiBmcmVhbHBhdGhhdCAtIG5vdCBhdmFpbGFibGUgZGlyZWN0bHkgKi8KKyAgIHN5c2NhbGwoU1lTX2ZyZWFscGF0aGF0LCBkZmQsIEZJTEVOQU1FLCBidWYsIDEpOworICAgc3lzY2FsbChTWVNfZnJlYWxwYXRoYXQsIDB4NDQzMTE1LCBESVJFQ1RPUlkgRklMRU5BTUUsIGJ1ZiwgMSk7CisgICBzeXNjYWxsKFNZU19mcmVhbHBhdGhhdCwgQVRfRkRDV0QsIEZJTEVOQU1FLCBidWYsIDEpOworI2VuZGlmIC8qIFNPTEFSSVNfRlJFQUxQQVRIQVRfU1lTQ0FMTCAqLworCisgICAvKiBmYWNjZXNzYXQgKi8KKyAgIGZhY2Nlc3NhdChkZmQsIEZJTEVOQU1FLCBGX09LLCAwKTsKKyAgIGZhY2Nlc3NhdCgweDQxMzIxNTEsIERJUkVDVE9SWSBGSUxFTkFNRSwgRl9PSywgMCk7CisgICBmYWNjZXNzYXQoQVRfRkRDV0QsIEZJTEVOQU1FLCBGX09LLCAwKTsKKyAgIGZhY2Nlc3NhdCgweDQxMzIxNTIsIEZJTEVOQU1FLCBGX09LLCAwKTsgLyogd2FybmluZyBmb3IgdGhpcyBvbmUgKi8KKworICAgLyogZmNob3duYXQgKi8KKyAgIGZjaG93bmF0KGRmZCwgRklMRU5BTUUsIC0xLCAtMSwgMCk7CisgICBmY2hvd25hdCgweDQzNjkyNTEsIERJUkVDVE9SWSBGSUxFTkFNRSwgLTEsIC0xLCAwKTsKKyAgIGZjaG93bmF0KEFUX0ZEQ1dELCBGSUxFTkFNRSwgLTEsIC0xLCAwKTsKKyAgIGZjaG93bmF0KDB4NDM2OTI1MiwgRklMRU5BTUUsIC0xLCAtMSwgMCk7IC8qIHdhcm5pbmcgZm9yIHRoaXMgb25lICovCisKKyAgIC8qIHJlbmFtZWF0ICovCisgICByZW5hbWVhdChkZmQsIEZJTEVOQU1FLCBkZmQsIEZJTEVOQU1FKTsKKyAgIHJlbmFtZWF0KDB4NDM3MTE1MSwgRElSRUNUT1JZIEZJTEVOQU1FLCAweDQzNzExNTIsIERJUkVDVE9SWSBGSUxFTkFNRSk7CisgICByZW5hbWVhdChBVF9GRENXRCwgRklMRU5BTUUsIEFUX0ZEQ1dELCBGSUxFTkFNRSk7CisgICByZW5hbWVhdCgweDQzNzExNTMsIEZJTEVOQU1FLCAweDQzNzExNTQsIEZJTEVOQU1FKTsgLyogd2FybmluZyBmb3IgdGhpcyBvbmUgKi8KKworICAgLyogdW5saW5rYXQgKi8KKyAgIHVubGlua2F0KGRmZCwgRklMRU5BTUUsIDApOworICAgdW5saW5rYXQoMHg3NjA4MTUxLCBESVJFQ1RPUlkgRklMRU5BTUUsIDApOworICAgdW5saW5rYXQoQVRfRkRDV0QsIEZJTEVOQU1FLCAwKTsKKyAgIHVubGlua2F0KDB4NzYwODE1MiwgRklMRU5BTUUsIDApOyAvKiB3YXJuaW5nIGZvciB0aGlzIG9uZSAqLworCisgICAvKiBmc3RhdGF0ICovCisgICBmc3RhdGF0KGRmZCwgRklMRU5BTUUsICZzdGF0cywgMCk7CisgICBmc3RhdGF0KDB4NDI1MTUxNTEsIERJUkVDVE9SWSBGSUxFTkFNRSwgJnN0YXRzLCAwKTsKKyAgIGZzdGF0YXQoQVRfRkRDV0QsIEZJTEVOQU1FLCAmc3RhdHMsIDApOworICAgZnN0YXRhdCgweDQyNTE1MTUyLCBGSUxFTkFNRSwgJnN0YXRzLCAwKTsgLyogd2FybmluZyBmb3IgdGhpcyBvbmUgKi8KKworICAgLyogb3BlbmF0ICovCisgICBvcGVuYXQoZGZkLCBGSUxFTkFNRSwgT19SRE9OTFkpOworICAgb3BlbmF0KDB4OTAzODE1MSwgRElSRUNUT1JZIEZJTEVOQU1FLCBPX1JET05MWSk7CisgICBvcGVuYXQoQVRfRkRDV0QsIEZJTEVOQU1FLCBPX1JET05MWSk7CisgICBvcGVuYXQoMHg5MDM4MTUyLCBGSUxFTkFNRSwgT19SRE9OTFkpOyAvKiB3YXJuaW5nIGZvciB0aGlzIG9uZSAqLworCisgICAvKiBmY2htb2RhdCAqLworICAgZmNobW9kYXQoZGZkLCBGSUxFTkFNRSwgU19JUlVTUiB8IFNfSVdVU1IsIDApOworICAgZmNobW9kYXQoMHg0MzAzMTUxLCBESVJFQ1RPUlkgRklMRU5BTUUsIFNfSVJVU1IgfCBTX0lXVVNSLCAwKTsKKyAgIGZjaG1vZGF0KEFUX0ZEQ1dELCBGSUxFTkFNRSwgU19JUlVTUiB8IFNfSVdVU1IsIDApOworICAgZmNobW9kYXQoMHg0MzAzMTUyLCBGSUxFTkFNRSwgU19JUlVTUiB8IFNfSVdVU1IsIDApOyAvKiB3YXJuaW5nIGZvciB0aGlzIG9uZSAqLworCisgICAvKiBta2RpcmF0ICovCisgICBta2RpcmF0KGRmZCwgRklMRU5BTUUsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKyAgIG1rZGlyYXQoMHg5Mzg0MTUxLCBESVJFQ1RPUlkgRklMRU5BTUUsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKyAgIG1rZGlyYXQoQVRfRkRDV0QsIEZJTEVOQU1FLCBTX0lSVVNSIHwgU19JV1VTUik7CisgICBta2RpcmF0KDB4OTM4NDE1MiwgRklMRU5BTUUsIFNfSVJVU1IgfCBTX0lXVVNSKTsgLyogd2FybmluZyBmb3IgdGhpcyBvbmUgKi8KKworICAgLyogdXRpbWVuc2F0ICovCisgICB1dGltZW5zYXQoZGZkLCBGSUxFTkFNRSwgTlVMTCwgMCk7CisgICB1dGltZW5zYXQoMHg1OTgzNzIxNSwgRElSRUNUT1JZIEZJTEVOQU1FLCBOVUxMLCAwKTsKKyAgIHV0aW1lbnNhdChBVF9GRENXRCwgRklMRU5BTUUsIE5VTEwsIDApOworICAgdXRpbWVuc2F0KDB4NTk4MzcyMTYsIEZJTEVOQU1FLCBOVUxMLCAwKTsgLyogd2FybmluZyBmb3IgdGhpcyBvbmUgKi8KKworICAgcm1kaXIoRElSRUNUT1JZIEZJTEVOQU1FKTsKKyAgIHJtZGlyKEZJTEVOQU1FKTsKKyAgIGNsb3NlKGRmZCk7CisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3lzY2FsbF9hdC5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zeXNjYWxsX2F0LnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdiMmNkNQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3lzY2FsbF9hdC5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMjQgQEAKKworV2FybmluZzogaW52YWxpZCBmaWxlIGRlc2NyaXB0b3IgMTU5ODc5NTA3IGluIHN5c2NhbGwgbGlua2F0KCkKK1dhcm5pbmc6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIDE1OTg3OTUwOCBpbiBzeXNjYWxsIGxpbmthdCgpCitXYXJuaW5nOiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvciA2NDYzNDkxMzggaW4gc3lzY2FsbCBzeW1saW5rYXQoKQorV2FybmluZzogaW52YWxpZCBmaWxlIGRlc2NyaXB0b3IgNzA2ODA5MTQgaW4gc3lzY2FsbCByZWFkbGlua2F0KCkKK1dhcm5pbmc6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIDY4MzYyNTc4IGluIHN5c2NhbGwgZmFjY2Vzc2F0KCkKK1dhcm5pbmc6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIDcwNjg1MjY2IGluIHN5c2NhbGwgZmNob3duYXQoKQorV2FybmluZzogaW52YWxpZCBmaWxlIGRlc2NyaXB0b3IgNzA3MTc3NzkgaW4gc3lzY2FsbCByZW5hbWVhdCgpCitXYXJuaW5nOiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvciA3MDcxNzc4MCBpbiBzeXNjYWxsIHJlbmFtZWF0KCkKK1dhcm5pbmc6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIDEyMzc2NTA3NCBpbiBzeXNjYWxsIHVubGlua2F0KCkKK1dhcm5pbmc6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIDExMTI2MjU0OTAgaW4gc3lzY2FsbCBmc3RhdGF0KCkKK1dhcm5pbmc6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIDE1MTIyNDY1OCBpbiBzeXNjYWxsIG9wZW5hdCgpCitXYXJuaW5nOiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvciA3MDI2NzIxOCBpbiBzeXNjYWxsIGZjaG1vZGF0KCkKK1dhcm5pbmc6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIDE1NDY4MTY4MiBpbiBzeXNjYWxsIG1rZGlyYXQoKQorV2FybmluZzogaW52YWxpZCBmaWxlIGRlc2NyaXB0b3IgMTUwMTc4NjY0NiBpbiBzeXNjYWxsIHV0aW1lWFhYKCkKKworSEVBUCBTVU1NQVJZOgorICAgIGluIHVzZSBhdCBleGl0OiAwIGJ5dGVzIGluIDAgYmxvY2tzCisgIHRvdGFsIGhlYXAgdXNhZ2U6IDAgYWxsb2NzLCAwIGZyZWVzLCAwIGJ5dGVzIGFsbG9jYXRlZAorCitGb3IgYSBkZXRhaWxlZCBsZWFrIGFuYWx5c2lzLCByZXJ1biB3aXRoOiAtLWxlYWstY2hlY2s9ZnVsbAorCitGb3IgY291bnRzIG9mIGRldGVjdGVkIGFuZCBzdXBwcmVzc2VkIGVycm9ycywgcmVydW4gd2l0aDogLXYKK0VSUk9SIFNVTU1BUlk6IDAgZXJyb3JzIGZyb20gMCBjb250ZXh0cyAoc3VwcHJlc3NlZDogMCBmcm9tIDApCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3N5c2NhbGxfYXQuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvc3lzY2FsbF9hdC5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3N5c2NhbGxfYXQudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zeXNjYWxsX2F0LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODAzNjZkCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy9zeXNjYWxsX2F0LnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IHN5c2NhbGxfYXQKK3N0ZGVycl9maWx0ZXI6IGZpbHRlcl9zeXNjYWxsX2F0CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9saWJjLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9saWJjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhjMWU5YQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvdGhyX2RhZW1vbl9leGl0X2xpYmMuYwpAQCAtMCwwICsxLDcyIEBACisvKiBDcmVhdGVzIHNldmVyYWwgZGFlbW9uIHRocmVhZHMgYW5kIG5vbi1kYWVtb24gdGhyZWFkcy4KKyAgIFRlc3RzIHRoYXQgdGhlIHByb2Nlc3MgY2FuIGV4aXQgZXZlbiBpZiB0aGUgZGFlbW9uIHRocmVhZHMgYXJlIHN0aWxsIHJ1bm5pbmcsCisgICBhcyBwZXIgdGhyX2NyZWF0ZSgzQykuICovCisKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx0aHJlYWQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2RlZmluZSBEQUVNT05fVEhSRUFEUyA1CisjZGVmaW5lIE5PTl9EQUVNT05fVEhSRUFEUyA2CisjZGVmaW5lIFNMRUVQXzEwMF9NUyB1c2xlZXAoMTAwICogMTAwMCkKKworc3RhdGljIHB0aHJlYWRfYmFycmllcl90IGJhcnJpZXI7CisKK3ZvaWQgKmRhZW1vbl90aHJlYWRfZnVuYyh2b2lkICphcmcpIHsKKyAgIHNpemVfdCBpbmRleCA9IChzaXplX3QpIGFyZzsKKyAgIHByaW50ZigiREFFTU9OIHRocmVhZCAjJXp1IHJ1bm5pbmdcbiIsIGluZGV4KTsgZmZsdXNoKHN0ZG91dCk7CisgICBwdGhyZWFkX2JhcnJpZXJfd2FpdCgmYmFycmllcik7CisKKyAgIC8qIEdpdmUgdGhlIG5vbi1kYWVtb24gdGhyZWFkcyBlbm91Z2ggdGltZSB0byBleGl0LiAqLworICAgc2xlZXAoMTApOworICAgcHJpbnRmKCJEQUVNT04gdGhyZWFkICMlenUgc3RpbGwgcnVubmluZz8hXG4iLCBpbmRleCk7IGZmbHVzaChzdGRvdXQpOworICAgcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQgKm5vcm1hbF90aHJlYWRfZnVuYyh2b2lkICphcmcpIHsKKyAgIHNpemVfdCBpbmRleCA9IChzaXplX3QpIGFyZzsKKyAgIHByaW50Zigibm9uLWRhZW1vbiB0aHJlYWQgIyV6dSBydW5uaW5nXG4iLCBpbmRleCk7IGZmbHVzaChzdGRvdXQpOworICAgcHRocmVhZF9iYXJyaWVyX3dhaXQoJmJhcnJpZXIpOworCisgICBzbGVlcCgyKTsKKyAgIHJldHVybiBOVUxMOworfQorCitpbnQgbWFpbih2b2lkKSB7CisgICBzaXplX3QgaTsKKyAgIGludCByZXQgPSBwdGhyZWFkX2JhcnJpZXJfaW5pdCgmYmFycmllciwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQUVNT05fVEhSRUFEUyArIE5PTl9EQUVNT05fVEhSRUFEUyArIDEpOworICAgaWYgKHJldCAhPSAwKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgInB0aHJlYWRfYmFycmllcl9pbml0IGZhaWxlZDogJXNcbiIsIHN0cmVycm9yKHJldCkpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIGZvciAoaSA9IDA7IGkgPCBEQUVNT05fVEhSRUFEUzsgaSsrKSB7CisgICAgICByZXQgPSB0aHJfY3JlYXRlKE5VTEwsIDAsIGRhZW1vbl90aHJlYWRfZnVuYywgKHZvaWQgKikgaSwKKyAgICAgICAgICAgICAgICAgICAgICAgVEhSX0RBRU1PTiwgTlVMTCk7CisgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgIGZwcmludGYoc3RkZXJyLCAidGhyX2NyZWF0ZSBmYWlsZWQ6ICVzXG4iLCBzdHJlcnJvcihyZXQpKTsKKyAgICAgICAgIHJldHVybiAxOworICAgICAgfQorICAgICAgU0xFRVBfMTAwX01TOworICAgfQorCisgICBmb3IgKGkgPSAwOyBpIDwgTk9OX0RBRU1PTl9USFJFQURTOyBpKyspIHsKKyAgICAgIHJldCA9IHRocl9jcmVhdGUoTlVMTCwgMCwgbm9ybWFsX3RocmVhZF9mdW5jLCAodm9pZCAqKSBpLCAwLCBOVUxMKTsKKyAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ0aHJfY3JlYXRlIGZhaWxlZDogJXNcbiIsIHN0cmVycm9yKHJldCkpOworICAgICAgICAgcmV0dXJuIDE7CisgICAgICB9CisgICAgICBTTEVFUF8xMDBfTVM7CisgICB9CisKKyAgIHB0aHJlYWRfYmFycmllcl93YWl0KCZiYXJyaWVyKTsKKworICAgcHJpbnRmKCJNQUlOIHRocmVhZCBleGl0aW5nXG4iKTsKKyAgIC8qIEV4aXQgb25seSB0aGUgbWFpbiB0aHJlYWQsIG5vdCB3aG9sZSBwcm9jZXNzLgorICAgICAgVGhhdCBpcywgZG8gbm90IGV4aXQoMCkgb3IgcmV0dXJuKDApLiAqLworICAgdGhyX2V4aXQoTlVMTCk7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9saWJjLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9saWJjLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvdGhyX2RhZW1vbl9leGl0X2xpYmMuc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvdGhyX2RhZW1vbl9leGl0X2xpYmMuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjBhZmMxCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy90aHJfZGFlbW9uX2V4aXRfbGliYy5zdGRvdXQuZXhwCkBAIC0wLDAgKzEsMTIgQEAKK0RBRU1PTiB0aHJlYWQgIzAgcnVubmluZworREFFTU9OIHRocmVhZCAjMSBydW5uaW5nCitEQUVNT04gdGhyZWFkICMyIHJ1bm5pbmcKK0RBRU1PTiB0aHJlYWQgIzMgcnVubmluZworREFFTU9OIHRocmVhZCAjNCBydW5uaW5nCitub24tZGFlbW9uIHRocmVhZCAjMCBydW5uaW5nCitub24tZGFlbW9uIHRocmVhZCAjMSBydW5uaW5nCitub24tZGFlbW9uIHRocmVhZCAjMiBydW5uaW5nCitub24tZGFlbW9uIHRocmVhZCAjMyBydW5uaW5nCitub24tZGFlbW9uIHRocmVhZCAjNCBydW5uaW5nCitub24tZGFlbW9uIHRocmVhZCAjNSBydW5uaW5nCitNQUlOIHRocmVhZCBleGl0aW5nCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9saWJjLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvdGhyX2RhZW1vbl9leGl0X2xpYmMudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxOTM3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9saWJjLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IHRocl9kYWVtb25fZXhpdF9saWJjCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9zdGFuZGFsb25lLmMgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9zdGFuZGFsb25lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YxOTg3ZgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvdGhyX2RhZW1vbl9leGl0X3N0YW5kYWxvbmUuYwpAQCAtMCwwICsxLDIzNCBAQAorLyogVGVzdHMgdGhhdCB0aGUgcHJvY2VzcyBjYW4gZXhpdCBldmVuIGlmIGRhZW1vbiB0aHJlYWQgaXMgc3RpbGwgcnVubmluZy4KKyAgIFRoaXMgdGVzdCBkb2VzICpub3QqIHVzZSBhbnkgbGliYzsgaXQgaW50ZXJmYWNlcyBvbmx5IHdpdGgga2VybmVsLiAqLworCisjaW5jbHVkZSA8c3lzL2x3cC5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8c3lzL3NlZ21lbnRzLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKworZXh0ZXJuIHZvaWQgYnplcm8odm9pZCAqcHRyLCBzaXplX3Qgbik7CisKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKK2FzbSgiXG4iCisiLnRleHRcbiIKKyIuZ2xvYmwgYnplcm9cbiIKKyJiemVybzpcbiIKKyIgICBwdXNoICVlZGlcbiIKKyIgICBtb3ZsICQwLCAlZWF4XG4iCisiICAgbW92bCAxMiglZXNwKSwgJWVjeFxuIgorIiAgIG1vdmwgOCglZXNwKSwgJWVkaVxuIgorIiAgIHJlcCAgc3Rvc2JcbiIKKyIgICBwb3AgICVlZGlcbiIKKyIgICByZXRcbiIKKyk7CisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorYXNtKCJcbiIKKyIudGV4dFxuIgorIi5nbG9ibCBiemVyb1xuIgorImJ6ZXJvOlxuIgorIiAgIHB1c2ggJXJkaVxuIgorIiAgIG1vdnEgJXJzaSwgJXJjeFxuIgorIiAgIG1vdnEgJDAsICVyYXhcbiIKKyIgICByZXAgIHN0b3NiXG4iCisiICAgcG9wICAlcmRpXG4iCisiICAgcmV0XG4iCispOworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHNsZWVwKHVuc2lnbmVkIGludCBzZWMpIHsKKyAgIHRpbWVzcGVjX3QgdHM7CisgICB0cy50dl9zZWMgPSAodGltZV90KXNlYzsKKyAgIHRzLnR2X25zZWMgPSAwOworCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisgICAgICAicHVzaGwgJDBcbiIKKyAgICAgICJwdXNobCAlW1RTXVxuIgorICAgICAgInB1c2hsICQweGRlYWRiZWVmXG4iCisgICAgICAibW92bCAgJVtTWVNOT10sICUlZWF4XG4iCisgICAgICAiaW50ICAgJDB4OTFcbiIKKyAgICAgICJhZGRsICAkMTIsICUlZXNwXG4iCisgICAgICA6CisgICAgICA6IFtUU10gImciICgmdHMpLCBbU1lTTk9dICJuIiAoU1lTX25hbm9zbGVlcCkKKyAgICAgIDogImVheCIsICJlZHgiLCAiY2MiLCAibWVtb3J5Iik7CisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgIm1vdnEgJVtTWVNOT10sICUlcmF4XG4iCisgICAgICAibW92cSAlW1RTXSwgJSVyZGlcbiIKKyAgICAgICJtb3ZxICQwLCAlJXJzaVxuIgorICAgICAgInN5c2NhbGxcbiIKKyAgICAgIDoKKyAgICAgIDogW1RTXSAiZyIgKCZ0cyksIFtTWVNOT10gIm4iIChTWVNfbmFub3NsZWVwKQorICAgICAgOiAicmF4IiwgInJkeCIsICJyZGkiLCAicnNpIiwgImNjIiwgIm1lbW9yeSIpOworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIGx3cF9leGl0KHZvaWQpIHsKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICJtb3ZsICVbU1lTTk9dLCAlJWVheFxuIgorICAgICAgImludCAgJDB4OTFcbiIKKyAgICAgIDoKKyAgICAgIDogW1NZU05PXSAibiIgKFNZU19sd3BfZXhpdCkKKyAgICAgIDogImVheCIsICJlZHgiLCAiY2MiLCAibWVtb3J5Iik7CisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgIm1vdnEgJVtTWVNOT10sICUlcmF4XG4iCisgICAgICAic3lzY2FsbFxuIgorICAgICAgOgorICAgICAgOiBbU1lTTk9dICJuIiAoU1lTX2x3cF9leGl0KQorICAgICAgOiAicmF4IiwgInJkeCIsICJjYyIsICJtZW1vcnkiKTsKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyNlbmRpZgorfQorCisjZGVmaW5lIFNUQUNLX0ZMQUdTIChNQVBfUFJJVkFURSB8IE1BUF9OT1JFU0VSVkUgfCBNQVBfQU5PTikKKyNkZWZpbmUgU1RBQ0tfUFJPVCAgKFBST1RfUkVBRCB8IFBST1RfV1JJVEUpCitzdGF0aWMgdm9pZCAqYWxsb2NhdGVfc3RhY2soc2l6ZV90IHN0YWNrc2l6ZSkgeworICAgdm9pZCAqYWRkcmVzcyA9IE5VTEw7CisKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICJwdXNobCAkMFxuIgorICAgICAgInB1c2hsICQtMVxuIgorICAgICAgInB1c2hsICVbRkxBR1NdXG4iCisgICAgICAicHVzaGwgJVtQUk9UXVxuIgorICAgICAgInB1c2hsICVbU0laRV1cbiIKKyAgICAgICJwdXNobCAkMFxuIgorICAgICAgInB1c2hsICQweGRlYWRiZWVmXG4iCisgICAgICAibW92bCAgJVtTWVNOT10sICUlZWF4XG4iCisgICAgICAiaW50ICAgJDB4OTFcbiIKKyAgICAgICJhZGRsICAkMjgsICUlZXNwXG4iCisgICAgICAibW92bCAlJWVheCwgJVtBRERSRVNTXVxuIgorICAgICAgOiBbQUREUkVTU10gIj1yIiAoYWRkcmVzcykKKyAgICAgIDogW0ZMQUdTXSAibiIgKFNUQUNLX0ZMQUdTKSwgW1BST1RdICJuIiAoU1RBQ0tfUFJPVCksCisgICAgICAgIFtTSVpFXSAiZyIgKHN0YWNrc2l6ZSksIFtTWVNOT10gIm4iIChTWVNfbW1hcCkKKyAgICAgIDogImVheCIsICJlZHgiLCAiY2MiLCAibWVtb3J5Iik7CisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgIm1vdnEgJVtTWVNOT10sICUlcmF4XG4iCisgICAgICAibW92cSAkMCwgJSVyZGlcbiIKKyAgICAgICJtb3ZxICVbU0laRV0sICUlcnNpXG4iCisgICAgICAibW92cSAlW1BST1RdLCAlJXJkeFxuIgorICAgICAgIm1vdnEgJVtGTEFHU10sICUlcjEwXG4iCisgICAgICAibW92cSAkLTEsICUlcjhcbiIKKyAgICAgICJtb3ZxICQwLCAlJXI5XG4iCisgICAgICAic3lzY2FsbFxuIgorICAgICAgIm1vdnEgJSVyYXgsICVbQUREUkVTU11cbiIKKyAgICAgIDogW0FERFJFU1NdICI9ciIgKGFkZHJlc3MpCisgICAgICA6IFtGTEFHU10gIm4iIChTVEFDS19GTEFHUyksIFtQUk9UXSAibiIgKFNUQUNLX1BST1QpLAorICAgICAgICBbU0laRV0gImciIChzdGFja3NpemUpLCBbU1lTTk9dICJuIiAoU1lTX21tYXApCisgICAgICA6ICJyYXgiLCAicmR4IiwgInJkaSIsICJyc2kiLCAicjEwIiwgInI4IiwgInI5IiwgImNjIiwgIm1lbW9yeSIpOworI2Vsc2UKKyMgIGVycm9yICJVbmtub3duIHBsYXRmb3JtIgorI2VuZGlmCisKKyAgIHJldHVybiBhZGRyZXNzOworfQorI3VuZGVmIFNUQUNLX0ZMQUdTCisjdW5kZWYgU1RBQ0tfUFJPVAorCitzdGF0aWMgdm9pZCB0aHJlYWRfZnVuYyh2b2lkKSB7CisgICBzbGVlcCgxMDAwMCk7Cit9CisKKyNkZWZpbmUgTFdQX0ZMQUdTIChMV1BfU1VTUEVOREVEIHwgTFdQX0RFVEFDSEVEIHwgTFdQX0RBRU1PTikKK3N0YXRpYyBpZF90IGx3cF9jcmVhdGUodm9pZCAqc3RhY2spIHsKKyAgIGlkX3QgdGlkOworCisgICB1Y29udGV4dF90IHVjb250ZXh0OworICAgYnplcm8oJnVjb250ZXh0LCBzaXplb2YodWNvbnRleHQpKTsKKyAgIHVjb250ZXh0LnVjX2ZsYWdzID0gVUNfQ1BVOworCisjaWYgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisgICAgICAibW92ICUlc3MsICVbU1RBQ0tfU0VHXVxuIgorICAgICAgOiBbU1RBQ0tfU0VHXSAiPXIiICh1Y29udGV4dC51Y19tY29udGV4dC5ncmVnc1tTU10pCisgICAgICA6CisgICAgICA6KTsKKyAgIHVjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW0VJUF0gPSAoZ3JlZ190KSB0aHJlYWRfZnVuYzsKKyAgIHVjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW1VFU1BdID0gKGdyZWdfdCkgc3RhY2s7CisgICB1Y29udGV4dC51Y19tY29udGV4dC5ncmVnc1tFQlBdID0gKGdyZWdfdCkgc3RhY2s7CisjZWxpZiBkZWZpbmVkKFZHUF9hbWQ2NF9zb2xhcmlzKQorICAgdWNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbUkVHX1NTXSA9IFVEU19TRUw7CisgICB1Y29udGV4dC51Y19tY29udGV4dC5ncmVnc1tSRUdfUklQXSA9IChncmVnX3QpIHRocmVhZF9mdW5jOworICAgdWNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbUkVHX1JTUF0gPSAoZ3JlZ190KSBzdGFjazsKKyAgIHVjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzW1JFR19SQlBdID0gKGdyZWdfdCkgc3RhY2s7CisjZWxzZQorIyAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisjZW5kaWYKKworI2lmIGRlZmluZWQoVkdQX3g4Nl9zb2xhcmlzKQorICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgInB1c2hsICQwXG4iCisgICAgICAicHVzaGwgJVtGTEFHU11cbiIKKyAgICAgICJwdXNobCAlW1VDT05URVhUXVxuIgorICAgICAgInB1c2hsICQweGRlYWRiZWVmXG4iCisgICAgICAibW92bCAgJVtTWVNOT10sICUlZWF4XG4iCisgICAgICAiaW50ICAgJDB4OTFcbiIKKyAgICAgICJhZGRsICAkMTYsICUlZXNwXG4iCisgICAgICAibW92bCAlJWVheCwgJVtUSURdXG4iCisgICAgICA6IFtUSURdICI9ciIgKHRpZCkKKyAgICAgIDogW0ZMQUdTXSAibiIgKExXUF9GTEFHUyksIFtVQ09OVEVYVF0gImciICgmdWNvbnRleHQpLAorICAgICAgICBbU1lTTk9dICJuIiAoU1lTX2x3cF9jcmVhdGUpCisgICAgICA6ICJlYXgiLCAiZWR4IiwgImNjIiwgIm1lbW9yeSIpOworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICJtb3ZxICVbU1lTTk9dLCAlJXJheFxuIgorICAgICAgIm1vdnEgJVtVQ09OVEVYVF0sICUlcmRpXG4iCisgICAgICAibW92cSAlW0ZMQUdTXSwgJSVyc2lcbiIKKyAgICAgICJtb3ZxICQwLCAlJXJkeFxuIgorICAgICAgInN5c2NhbGxcbiIKKyAgICAgICJtb3ZsICUlZWF4LCAlW1RJRF1cbiIKKyAgICAgIDogW1RJRF0gIj1yIiAodGlkKQorICAgICAgOiBbRkxBR1NdICJuIiAoTFdQX0ZMQUdTKSwgW1VDT05URVhUXSAiZyIgKCZ1Y29udGV4dCksCisgICAgICAgIFtTWVNOT10gIm4iIChTWVNfbHdwX2NyZWF0ZSkKKyAgICAgIDogInJheCIsICJyZHgiLCAicmRpIiwgInJzaSIsICJjYyIsICJtZW1vcnkiKTsKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyNlbmRpZgorCisgICByZXR1cm4gdGlkOworfQorCitzdGF0aWMgdm9pZCBsd3BfY29udGludWUoaWRfdCB0aWQpIHsKKyNpZiBkZWZpbmVkKFZHUF94ODZfc29sYXJpcykKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICJwdXNobCAlW1RJRF1cbiIKKyAgICAgICJwdXNobCAkMHhkZWFkYmVlZlxuIgorICAgICAgIm1vdmwgICVbU1lTTk9dLCAlJWVheFxuIgorICAgICAgImludCAgICQweDkxXG4iCisgICAgICAiYWRkbCAgJDgsICUlZXNwXG4iCisgICAgICA6CisgICAgICA6IFtUSURdICJtIiAodGlkKSwgW1NZU05PXSAibiIgKFNZU19sd3BfY29udGludWUpCisgICAgICA6ICJlYXgiLCAiZWR4IiwgImNjIiwgIm1lbW9yeSIpOworI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfc29sYXJpcykKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICJtb3ZxICVbU1lTTk9dLCAlJXJheFxuIgorICAgICAgInhvciAlJXJkaSwgJSVyZGlcbiIKKyAgICAgICJtb3ZsICVbVElEXSwgJSVlZGlcbiIKKyAgICAgICJzeXNjYWxsXG4iCisgICAgICA6CisgICAgICA6IFtUSURdICJyIiAodGlkKSwgW1NZU05PXSAibiIgKFNZU19sd3BfY29udGludWUpCisgICAgICA6ICJyYXgiLCAicmR4IiwgInJkaSIsICJjYyIsICJtZW1vcnkiKTsKKyNlbHNlCisjICBlcnJvciAiVW5rbm93biBwbGF0Zm9ybSIKKyNlbmRpZgorfQorCisjZGVmaW5lIFNUQUNLX1NJWkUgMTYzODQKK3ZvaWQgX3N0YXJ0KHZvaWQpIHsKKyAgIHZvaWQgKnN0YWNrID0gYWxsb2NhdGVfc3RhY2soU1RBQ0tfU0laRSk7CisgICBpZF90IHRpZCA9IGx3cF9jcmVhdGUoKGNoYXIgKikgc3RhY2sgKyBTVEFDS19TSVpFKTsKKyAgIGx3cF9jb250aW51ZSh0aWQpOworICAgc2xlZXAoNSk7CisgICBsd3BfZXhpdCgpOworICAgcmV0dXJuOyAvKiBub3QgcmVhY2hlZCAqLworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9zdGFuZGFsb25lLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9zdGFuZGFsb25lLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvdGhyX2RhZW1vbl9leGl0X3N0YW5kYWxvbmUuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3NvbGFyaXMvdGhyX2RhZW1vbl9leGl0X3N0YW5kYWxvbmUuc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc29sYXJpcy90aHJfZGFlbW9uX2V4aXRfc3RhbmRhbG9uZS52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zb2xhcmlzL3Rocl9kYWVtb25fZXhpdF9zdGFuZGFsb25lLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjkwNjFlCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMvc29sYXJpcy90aHJfZGFlbW9uX2V4aXRfc3RhbmRhbG9uZS52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiB0aHJfZGFlbW9uX2V4aXRfc3RhbmRhbG9uZQordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvc3RyX3Rlc3Rlci5jIGIvbWVtY2hlY2svdGVzdHMvc3RyX3Rlc3Rlci5jCmluZGV4IDg1YzQ5NmEuLjlmNzc5MGEgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3N0cl90ZXN0ZXIuYworKysgYi9tZW1jaGVjay90ZXN0cy9zdHJfdGVzdGVyLmMKQEAgLTUwNCw3ICs1MDQsNyBAQAogI2VuZGlmCiAKIC8vIERERDogYmV0dGVyIGRvbmUgYnkgdGVzdGluZyBmb3IgdGhlIGZ1bmN0aW9uLgotI2lmICFkZWZpbmVkKF9fQVBQTEVfXykKKyNpZiAhZGVmaW5lZChfX0FQUExFX18pICYmICFkZWZpbmVkKF9fc3VuKQogc3RhdGljIHZvaWQKIHRlc3RfcmF3bWVtY2hyICh2b2lkKQogewpAQCAtNTgwLDcgKzU4MCw3IEBACiB9CiAKIC8vIERERDogYmV0dGVyIGRvbmUgYnkgdGVzdGluZyBmb3IgdGhlIGZ1bmN0aW9uLgotI2lmICFkZWZpbmVkKF9fQVBQTEVfXykKKyNpZiAhZGVmaW5lZChfX0FQUExFX18pICYmICFkZWZpbmVkKF9fc3VuKQogc3RhdGljIHZvaWQKIHRlc3RfbWVtcmNociAodm9pZCkKIHsKQEAgLTEwNjMsNyArMTA2Myw3IEBACiAgICAgfQogfQogCi0jaWYgIWRlZmluZWQoX19BUFBMRV9fKQorI2lmICFkZWZpbmVkKF9fQVBQTEVfXykgJiYgIWRlZmluZWQoX19zdW4pCiBzdGF0aWMgdm9pZAogdGVzdF9tZW1wY3B5ICh2b2lkKQogewpAQCAtMTQ0Miw3ICsxNDQyLDcgQEAKICAgdGVzdF9zdHJjaHJudWwgKCk7CiAjIGVuZGlmCiAKLSMgaWYgIWRlZmluZWQoX19BUFBMRV9fKQorIyBpZiAhZGVmaW5lZChfX0FQUExFX18pICYmICFkZWZpbmVkKF9fc3VuKQogICAvKiByYXdtZW1jaHIuICAqLwogICB0ZXN0X3Jhd21lbWNociAoKTsKICMgZW5kaWYKQEAgLTE0NTMsNyArMTQ1Myw3IEBACiAgIC8qIHN0cnJjaHIuICAqLwogICB0ZXN0X3N0cnJjaHIgKCk7CiAKLSMgaWYgIWRlZmluZWQoX19BUFBMRV9fKQorIyBpZiAhZGVmaW5lZChfX0FQUExFX18pICYmICFkZWZpbmVkKF9fc3VuKQogICAvKiBtZW1yY2hyLiAgKi8KICAgdGVzdF9tZW1yY2hyICgpOwogIyBlbmRpZgpAQCAtMTQ5NCw3ICsxNDk0LDcgQEAKICAgLyogbWVtbW92ZSAtIG11c3Qgd29yayBvbiBvdmVybGFwLiAgKi8KICAgdGVzdF9tZW1tb3ZlICgpOwogCi0jIGlmICFkZWZpbmVkKF9fQVBQTEVfXykKKyMgaWYgIWRlZmluZWQoX19BUFBMRV9fKSAmJiAhZGVmaW5lZChfX3N1bikKICAgLyogbWVtcGNweSAqLwogICB0ZXN0X21lbXBjcHkgKCk7CiAjIGVuZGlmCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zdXBwZnJlZS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMvc3VwcGZyZWUuc3RkZXJyLmV4cAppbmRleCA2MmY1Y2NjLi4wMzQwZTYxIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy9zdXBwZnJlZS5zdGRlcnIuZXhwCisrKyBiL21lbWNoZWNrL3Rlc3RzL3N1cHBmcmVlLnN0ZGVyci5leHAKQEAgLTEyLDQgKzEyLDcgQEAKICAgIGJ5IDB4Li4uLi4uLi46IGJiYiAoc3VwcGZyZWUuYzoxNykKICAgIGJ5IDB4Li4uLi4uLi46IGFhYSAoc3VwcGZyZWUuYzoyMikKICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHN1cHBmcmVlLmM6MzYpCisgQmxvY2sgd2FzIGFsbG9jJ2QgYXQKKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChzdXBwZnJlZS5jOjMyKQogCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy9zdXBwb25seW9iai52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy9zdXBwb25seW9iai52Z3Rlc3QKaW5kZXggYmVhZDExNi4uNjY1M2QzYyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvc3VwcG9ubHlvYmoudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL3N1cHBvbmx5b2JqLnZndGVzdApAQCAtMSwzICsxLDkgQEAKK3ByZXJlcTogKCEgLi4vLi4vdGVzdHMvb3NfdGVzdCBzb2xhcmlzKQorIyBUaGlzIHRlc3QgaXMgZGlzYWJsZWQgb24gU29sYXJpcyBiZWNhdXNlIGZ1bmN0aW9uIGJlbG93IG1haW4gKF9zdGFydCkKKyMgaXMgcGFydCBvZiB0aGUgaW5saW5mbyBvYmplY3Qgd2hlcmVhcyBvbiBMaW51eCBpdCBpcyBwYXJ0IG9mIGxpYmMKKyMgKF9fbGliY19zdGFydF9tYWluKS4KKyMgc29sYXJpcy9zdXBwb25seW9iaiB0ZXN0IGV4aXN0cyB0byBjaGVjayB0aGUgU29sYXJpcyB2YXJpYW50LgorIwogIyB0ZXN0IHN1cHByZXNzaW9ucyB3aXRoIG9ubHkgb2JqOiBtYXJrZXJzCiBwcm9nOiBpbmxpbmZvCiB2Z29wdHM6IC1xIC0tcmVhZC1pbmxpbmUtaW5mbz1ubyAtLXN1cHByZXNzaW9ucz1zdXBwb25seW9iai5zdXBwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy90ZXN0LXBsby1uby52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy90ZXN0LXBsby1uby52Z3Rlc3QKaW5kZXggMjQ3YTEzNC4uY2JlMzIyYyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvdGVzdC1wbG8tbm8udmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL3Rlc3QtcGxvLW5vLnZndGVzdApAQCAtMSwyICsxLDIgQEAKIHByb2c6IHRlc3QtcGxvCi12Z29wdHM6IC1xCit2Z29wdHM6IC1xIC0tcGFydGlhbC1sb2Fkcy1vaz1ubyAtLWtlZXAtc3RhY2t0cmFjZXM9YWxsb2MtdGhlbi1mcmVlCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy90ZXN0LXBsby15ZXMudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMvdGVzdC1wbG8teWVzLnZndGVzdAppbmRleCA5NWM1MGIyLi5iMzdhZWI1IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy90ZXN0LXBsby15ZXMudmd0ZXN0CisrKyBiL21lbWNoZWNrL3Rlc3RzL3Rlc3QtcGxvLXllcy52Z3Rlc3QKQEAgLTEsMyArMSwzIEBACi1wcmVyZXE6IHRlc3QgISBgLi4vLi4vdGVzdHMvYXJjaF90ZXN0IHBwYzMyYCAmJiAhIGAuLi8uLi90ZXN0cy9hcmNoX3Rlc3QgcHBjNjRgICYmICEgYC4uLy4uL3Rlc3RzL2FyY2hfdGVzdCBzMzkweGAgJiYgISBgLi4vLi4vdGVzdHMvbWlwc19mZWF0dXJlcyBtaXBzLWJlYAorcHJlcmVxOiAhIC4uLy4uL3Rlc3RzL2FyY2hfdGVzdCBwcGMzMiAmJiAhIC4uLy4uL3Rlc3RzL2FyY2hfdGVzdCBwcGM2NCAmJiAhIC4uLy4uL3Rlc3RzL2FyY2hfdGVzdCBzMzkweCAmJiAhIC4uLy4uL3Rlc3RzL21pcHNfZmVhdHVyZXMgbWlwcy1iZQogcHJvZzogdGVzdC1wbG8KLXZnb3B0czogLXEgLS1wYXJ0aWFsLWxvYWRzLW9rPXllcwordmdvcHRzOiAtcSAtLXBhcnRpYWwtbG9hZHMtb2s9eWVzICAtLWtlZXAtc3RhY2t0cmFjZXM9YWxsb2MtdGhlbi1mcmVlCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy90aHJlYWRfYWxsb2NhLmMgYi9tZW1jaGVjay90ZXN0cy90aHJlYWRfYWxsb2NhLmMKaW5kZXggZmEwYzE4NS4uYzMwZDFkYyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvdGhyZWFkX2FsbG9jYS5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL3RocmVhZF9hbGxvY2EuYwpAQCAtNjYsNyArNjYsNyBAQAogICAgICAgIGFzc2VydChpID09IGorMik7CiAgICAgICAgc3ByaW50ZiAobiwgIiVkIiwgIGF0b2koYXJndlsxXSkgLSAxKTsKICAgICAgICAvLyBzeXN0ZW0gKCJlbnYgfCB3YyIpOwotICAgICAgIGV4ZWNsZShhcmd2WzBdLCBhcmd2WzBdLCBuLCBOVUxMLCBuZXdfZW52KTsKKyAgICAgICBleGVjbGUoYXJndlswXSwgYXJndlswXSwgbiwgKGNoYXIgKikgTlVMTCwgbmV3X2Vudik7CiAgICAgICAgYXNzZXJ0KDApOwogICAgIH0gZWxzZQogICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvdGhyZWFkbmFtZS5jIGIvbWVtY2hlY2svdGVzdHMvdGhyZWFkbmFtZS5jCmluZGV4IDkxZTdmODMuLmQzZjZlNDQgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3RocmVhZG5hbWUuYworKysgYi9tZW1jaGVjay90ZXN0cy90aHJlYWRuYW1lLmMKQEAgLTEsMTIgKzEsMTcgQEAKKyNpbmNsdWRlICJjb25maWcuaCIKKwogI2RlZmluZSBfR05VX1NPVVJDRQogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8cHRocmVhZC5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2lmIGRlZmluZWQoSEFWRV9TWVNfUFJDVExfSCkKKyNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KKyNlbmRpZiAvKiBIQVZFX1NZU19QUkNUTF9IICovCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0KKyNpbmNsdWRlICJ2YWxncmluZC5oIgogCiBzdGF0aWMgcHRocmVhZF90IGNoaWxkcmVuWzNdOwogCkBAIC00NCw2ICs0OSw3IEBACiAjICBlbmRpZgogCiAgIGJhZF90aGluZ3MoMyk7CisgIFZBTEdSSU5EX1BSSU5URigiJXMiLCAiSSBhbSBpbiBjaGlsZF9mbl8xXG4iKTsKIAogICByID0gcHRocmVhZF9jcmVhdGUoJmNoaWxkcmVuWzJdLCBOVUxMLCBjaGlsZF9mbl8yLCBOVUxMKTsKICAgYXNzZXJ0KCFyKTsKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3RocmVhZG5hbWUuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3RocmVhZG5hbWUuc3RkZXJyLmV4cAppbmRleCAxY2YyMzEzLi42MDkwM2VlIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy90aHJlYWRuYW1lLnN0ZGVyci5leHAKKysrIGIvbWVtY2hlY2svdGVzdHMvdGhyZWFkbmFtZS5zdGRlcnIuZXhwCkBAIC0xLDUwICsxLDUxIEBACiBJbnZhbGlkIHdyaXRlIG9mIHNpemUgMQotICAgYXQgMHguLi4uLi4uLjogYmFkX3RoaW5ncyAodGhyZWFkbmFtZS5jOjE2KQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGhyZWFkbmFtZS5jOjc2KQorICAgYXQgMHguLi4uLi4uLjogYmFkX3RoaW5ncyAodGhyZWFkbmFtZS5jOjIxKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGhyZWFkbmFtZS5jOjgyKQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSAxIGFsbG9jJ2QKICAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MTUpCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0aHJlYWRuYW1lLmM6NzYpCisgICBieSAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MjApCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0aHJlYWRuYW1lLmM6ODIpCiAKIFRocmVhZCAyOgogSW52YWxpZCB3cml0ZSBvZiBzaXplIDEKLSAgIGF0IDB4Li4uLi4uLi46IGJhZF90aGluZ3MgKHRocmVhZG5hbWUuYzoxNikKLSAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuXzAgKHRocmVhZG5hbWUuYzo2MSkKKyAgIGF0IDB4Li4uLi4uLi46IGJhZF90aGluZ3MgKHRocmVhZG5hbWUuYzoyMSkKKyAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuXzAgKHRocmVhZG5hbWUuYzo2NykKICAgIC4uLgogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSAyIGFsbG9jJ2QKICAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MTUpCi0gICBieSAweC4uLi4uLi4uOiBjaGlsZF9mbl8wICh0aHJlYWRuYW1lLmM6NjEpCisgICBieSAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MjApCisgICBieSAweC4uLi4uLi4uOiBjaGlsZF9mbl8wICh0aHJlYWRuYW1lLmM6NjcpCiAgICAuLi4KIAogVGhyZWFkIDMgdHJ5MToKIEludmFsaWQgd3JpdGUgb2Ygc2l6ZSAxCi0gICBhdCAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MTYpCi0gICBieSAweC4uLi4uLi4uOiBjaGlsZF9mbl8xICh0aHJlYWRuYW1lLmM6NDYpCisgICBhdCAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MjEpCisgICBieSAweC4uLi4uLi4uOiBjaGlsZF9mbl8xICh0aHJlYWRuYW1lLmM6NTEpCiAgICAuLi4KICBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBhZnRlciBhIGJsb2NrIG9mIHNpemUgMyBhbGxvYydkCiAgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQotICAgYnkgMHguLi4uLi4uLjogYmFkX3RoaW5ncyAodGhyZWFkbmFtZS5jOjE1KQotICAgYnkgMHguLi4uLi4uLjogY2hpbGRfZm5fMSAodGhyZWFkbmFtZS5jOjQ2KQorICAgYnkgMHguLi4uLi4uLjogYmFkX3RoaW5ncyAodGhyZWFkbmFtZS5jOjIwKQorICAgYnkgMHguLi4uLi4uLjogY2hpbGRfZm5fMSAodGhyZWFkbmFtZS5jOjUxKQogICAgLi4uCiAKK0kgYW0gaW4gY2hpbGRfZm5fMQogVGhyZWFkIDQgMDEyMzQ1Njc4OTAxMjM0OgogSW52YWxpZCB3cml0ZSBvZiBzaXplIDEKLSAgIGF0IDB4Li4uLi4uLi46IGJhZF90aGluZ3MgKHRocmVhZG5hbWUuYzoxNikKLSAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuXzIgKHRocmVhZG5hbWUuYzozMCkKKyAgIGF0IDB4Li4uLi4uLi46IGJhZF90aGluZ3MgKHRocmVhZG5hbWUuYzoyMSkKKyAgIGJ5IDB4Li4uLi4uLi46IGNoaWxkX2ZuXzIgKHRocmVhZG5hbWUuYzozNSkKICAgIC4uLgogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSA0IGFsbG9jJ2QKICAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MTUpCi0gICBieSAweC4uLi4uLi4uOiBjaGlsZF9mbl8yICh0aHJlYWRuYW1lLmM6MzApCisgICBieSAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MjApCisgICBieSAweC4uLi4uLi4uOiBjaGlsZF9mbl8yICh0aHJlYWRuYW1lLmM6MzUpCiAgICAuLi4KIAogVGhyZWFkIDE6CiBJbnZhbGlkIHdyaXRlIG9mIHNpemUgMQotICAgYXQgMHguLi4uLi4uLjogYmFkX3RoaW5ncyAodGhyZWFkbmFtZS5jOjE2KQotICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGhyZWFkbmFtZS5jOjg0KQorICAgYXQgMHguLi4uLi4uLjogYmFkX3RoaW5ncyAodGhyZWFkbmFtZS5jOjIxKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAodGhyZWFkbmFtZS5jOjkwKQogIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIGEgYmxvY2sgb2Ygc2l6ZSA1IGFsbG9jJ2QKICAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCi0gICBieSAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MTUpCi0gICBieSAweC4uLi4uLi4uOiBtYWluICh0aHJlYWRuYW1lLmM6ODQpCisgICBieSAweC4uLi4uLi4uOiBiYWRfdGhpbmdzICh0aHJlYWRuYW1lLmM6MjApCisgICBieSAweC4uLi4uLi4uOiBtYWluICh0aHJlYWRuYW1lLmM6OTApCiAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3RocmVhZG5hbWVfeG1sLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy90aHJlYWRuYW1lX3htbC5zdGRlcnIuZXhwCmluZGV4IDA2N2IyZmYuLjNmOWU1OTMgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3RocmVhZG5hbWVfeG1sLnN0ZGVyci5leHAKKysrIGIvbWVtY2hlY2svdGVzdHMvdGhyZWFkbmFtZV94bWwuc3RkZXJyLmV4cApAQCAtMTg1LDYgKzE4NSwxMiBAQAogICA8L3N0YWNrPgogPC9lcnJvcj4KIAorPGNsaWVudG1zZz4KKyAgPHRpZD4uLi48L3RpZD4KKyAgPHRocmVhZG5hbWU+dHJ5MTwvdGhyZWFkbmFtZT4KKyAgPHRleHQ+SSBhbSBpbiBjaGlsZF9mbl8xCisgIDwvdGV4dD4KKzwvY2xpZW50bXNnPgogPGVycm9yPgogICA8dW5pcXVlPjB4Li4uLi4uLi48L3VuaXF1ZT4KICAgPHRpZD4uLi48L3RpZD4KZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3VuaXRfbGliY2Jhc2UuYyBiL21lbWNoZWNrL3Rlc3RzL3VuaXRfbGliY2Jhc2UuYwppbmRleCAxOTU5NWY5Li42M2YxZDc5IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy91bml0X2xpYmNiYXNlLmMKKysrIGIvbWVtY2hlY2svdGVzdHMvdW5pdF9saWJjYmFzZS5jCkBAIC0yOCw3ICsyOCw3IEBACiAKIAogI2RlZmluZSAgQ0hFQ0soeCkgXAotICAgaWYgKCF4KSB7IGZwcmludGYoc3RkZXJyLCAiZmFpbHVyZTogJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7IH0KKyAgIGlmICghKHgpKSB7IGZwcmludGYoc3RkZXJyLCAiZmFpbHVyZTogJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7IH0KIAogCiB2b2lkIHRlc3RfVkdfU1RSRVEodm9pZCkKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9NYWtlZmlsZS5hbSBiL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9NYWtlZmlsZS5hbQppbmRleCA5ODg4ZmFkLi5lMzI3YTJhIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvTWFrZWZpbGUuYW0KKysrIGIvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L01ha2VmaWxlLmFtCkBAIC0zOSw1ICszOSw1IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgLUkkKHRvcF9zcmNkaXIpL1ZFWC9wdWIKIHZiaXRfdGVzdF9DRkxBR1MgICAgICAgPSAkKEFNX0NGTEFHU19QUkkpIC1zdGQ9Yzk5CiB2Yml0X3Rlc3RfREVQRU5ERU5DSUVTID0gCi12Yml0X3Rlc3RfTERBREQgICAgICAgID0gCit2Yml0X3Rlc3RfTERBREQgICAgICAgID0gJCh0b3Bfc3JjZGlyKS9WRVgvbGlidmV4LUBWR0NPTkZfQVJDSF9QUklALUBWR0NPTkZfT1NALmEKIHZiaXRfdGVzdF9MREZMQUdTICAgICAgPSAkKEFNX0NGTEFHU19QUkkpIC1zdGQ9Yzk5IEBMSUJfVUJTQU5ACmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvVE9ETyBiL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9UT0RPCmluZGV4IDlhNTFlNzkuLjEzYjFkNTMgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9UT0RPCisrKyBiL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9UT0RPCkBAIC00LDYgKzQsMyBAQAogKDIpIEFkZCBzdXBwb3J0IGZvciBJUk9wcyB3aXRoIHZlY3RvciBvcGVyYW5kcy4KIAogKDMpIFRlc3QgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyB3aXRoIHZhcmlvdXMgcm91bmRpbmcgbW9kZXMuCi0KLSg0KSBJb3BfQ21wT1JEMzJVIGFuZCBmcmllbmRzIGFyZSBub3Qgc3VwcG9ydGVkIChwcGMgb25seSkKLQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L2JpbmFyeS5jIGIvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L2JpbmFyeS5jCmluZGV4IDY0YjQzYTMuLmI3NWU1OGYgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9iaW5hcnkuYworKysgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvYmluYXJ5LmMKQEAgLTEsNSArMSwyOSBAQAogLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiAzOyAtKi0gKi8KIAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCisgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KKworICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgIEZsb3JpYW4gS3JvaG0KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+ICAvLyBtZW1zZXQKICNpbmNsdWRlICJ2dGVzdC5oIgpAQCAtNDUwLDEwICs0NzQsMjAgQEAKICAgICAgICAgIHdvbid0IGNyYXNoLiAqLwogICAgICAgbWVtc2V0KCZvcG5kc1sxXS52YWx1ZSwgMHhmZiwgc2l6ZW9mIG9wbmRzWzFdLnZhbHVlKTsKIAotICAgICAgLyogRm9yIGltbWVkaWF0ZSBzaGlmdCBhbW91bnRzIGNob29zZSBhIHZhbHVlIG9mICcxJy4gVGhhdCBzaG91bGQKLSAgICAgICAgIG5vdCBjYXVzZSBhIHByb2JsZW0uICovCisgICAgICAvKiBGb3IgaW1tZWRpYXRlIHNoaWZ0IGFtb3VudHMgY2hvb3NlIGEgdmFsdWUgb2YgJzEnLiBUaGF0IHZhbHVlIHNob3VsZAorICAgICAgICAgbm90IGNhdXNlIGEgcHJvYmxlbS4gTm90ZTogd2UgYWx3YXlzIGFzc2lnbiB0byB0aGUgdTY0IG1lbWJlciBoZXJlLgorICAgICAgICAgVGhlIHJlYXNvbiBpcyB0aGF0IGluIGlyX2luamVjdC5jIHRoZSB2YWx1ZV90IHR5cGUgaXMgbm90IHZpc2libGUuCisgICAgICAgICBUaGUgdmFsdWUgaXMgcGlja2VkIHVwIHRoZXJlIGJ5IGludGVycHJldGluZyB0aGUgbWVtb3J5IGFzIGFuCisgICAgICAgICBVTG9uZyB2YWx1ZS4gU28sIHdlIHJlbHkgb24gCisgICAgICAgICB1bmlvbiB7CisgICAgICAgICAgIFVMb25nICAgdjE7ICAgLy8gdmFsdWUgcGlja2VkIHVwIGluIGlyX2luamVjdC5jCisgICAgICAgICAgIHZhbHVlX3QgdjI7ICAgLy8gdmFsdWUgYXNzaWduZWQgaGVyZQorICAgICAgICAgfSB4eDsKKyAgICAgICAgIGFzc2VydChzaXplb2YgeHgudjEgPT0gc2l6ZW9mIHh4LnYyLnU2NCk7CisgICAgICAgICBhc3NlcnQoeHgudjEgPT0geHgudjIudTY0KTsKKyAgICAgICovCiAgICAgICBpZiAob3AtPnNoaWZ0X2Ftb3VudF9pc19pbW1lZGlhdGUpCi0gICAgICAgICBvcG5kc1sxXS52YWx1ZS51OCA9IDE7CisgICAgICAgICBvcG5kc1sxXS52YWx1ZS51NjQgPSAxOwogCiAgICAgICBmb3IgKGJpdHBvcyA9IDA7IGJpdHBvcyA8IG51bV9pbnB1dF9iaXRzOyArK2JpdHBvcykgewogICAgICAgICAgb3BuZHNbaV0udmJpdHMgPSBvbmVob3RfdmJpdHMoYml0cG9zLCBiaXRzb2ZfaXJ0eXBlKG9wbmRzW2ldLnR5cGUpKTsKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9pcm9wcy5jIGIvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L2lyb3BzLmMKaW5kZXggZTM1YjNiZi4uMDM5NWVmZSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L2lyb3BzLmMKKysrIGIvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L2lyb3BzLmMKQEAgLTEsNSArMSwyOSBAQAogLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiAzOyAtKi0gKi8KIAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCisgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KKworICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgIEZsb3JpYW4gS3JvaG0KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCiAjaW5jbHVkZSA8c3RkaW8uaD4gICAgLy8gZnByaW50ZgogI2luY2x1ZGUgPHN0ZGxpYi5oPiAgIC8vIGV4aXQKICNpbmNsdWRlICJwdWJfdG9vbF9iYXNpY3MuaCIgICAvLyBTVEFUSUNfQVNTRVJUCkBAIC0yNDEsOCArMjY1LDkgQEAKICAgeyBERUZPUChJb3BfQ29zRjY0LCAgICAgICAgVU5ERUZfQUxMKSwgLnMzOTB4ID0gMCwgLmFtZDY0ID0gMSwgLng4NiA9IDEsIC5hcm0gPSAwLCAucHBjNjQgPSAwLCAucHBjMzIgPSAwLCAubWlwczMyID0gMCwgLm1pcHM2NCA9IDAsIC50aWxlZ3ggPSAwIH0sCiAgIHsgREVGT1AoSW9wX1RhbkY2NCwgICAgICAgIFVOREVGX0FMTCksIC5zMzkweCA9IDAsIC5hbWQ2NCA9IDEsIC54ODYgPSAxLCAuYXJtID0gMCwgLnBwYzY0ID0gMCwgLnBwYzMyID0gMCwgLm1pcHMzMiA9IDAsIC5taXBzNjQgPSAwLCAudGlsZWd4ID0gMCB9LAogICB7IERFRk9QKElvcF8yeG0xRjY0LCAgICAgICBVTkRFRl9BTEwpLCAuczM5MHggPSAwLCAuYW1kNjQgPSAxLCAueDg2ID0gMSwgLmFybSA9IDAsIC5wcGM2NCA9IDAsIC5wcGMzMiA9IDAsIC5taXBzMzIgPSAwLCAubWlwczY0ID0gMCwgLnRpbGVneCA9IDAgfSwKLSAgeyBERUZPUChJb3BfUm91bmRGNjR0b0ludCwgVU5ERUZfQUxMKSwgLnMzOTB4ID0gMCwgLmFtZDY0ID0gMSwgLng4NiA9IDEsIC5hcm0gPSAwLCAucHBjNjQgPSAwLCAucHBjMzIgPSAwLCAubWlwczMyID0gMCwgLm1pcHM2NCA9IDEsIC50aWxlZ3ggPSAwIH0sCi0gIHsgREVGT1AoSW9wX1JvdW5kRjMydG9JbnQsIFVOREVGX0FMTCksIC5zMzkweCA9IDAsIC5hbWQ2NCA9IDEsIC54ODYgPSAxLCAuYXJtID0gMCwgLnBwYzY0ID0gMCwgLnBwYzMyID0gMCwgLm1pcHMzMiA9IDEsIC5taXBzNjQgPSAxLCAudGlsZWd4ID0gMCB9LAorICB7IERFRk9QKElvcF9Sb3VuZEYxMjh0b0ludCwgVU5ERUZfQUxMKSwgLnMzOTB4ID0gMSwgLmFtZDY0ID0gMCwgLng4NiA9IDAsIC5hcm0gPSAwLCAucHBjNjQgPSAwLCAucHBjMzIgPSAwLCAubWlwczMyID0gMCwgLm1pcHM2NCA9IDAsIC50aWxlZ3ggPSAwIH0sCisgIHsgREVGT1AoSW9wX1JvdW5kRjY0dG9JbnQsIFVOREVGX0FMTCksIC5zMzkweCA9IDEsIC5hbWQ2NCA9IDEsIC54ODYgPSAxLCAuYXJtID0gMCwgLnBwYzY0ID0gMCwgLnBwYzMyID0gMCwgLm1pcHMzMiA9IDAsIC5taXBzNjQgPSAxLCAudGlsZWd4ID0gMCB9LAorICB7IERFRk9QKElvcF9Sb3VuZEYzMnRvSW50LCBVTkRFRl9BTEwpLCAuczM5MHggPSAxLCAuYW1kNjQgPSAxLCAueDg2ID0gMSwgLmFybSA9IDAsIC5wcGM2NCA9IDAsIC5wcGMzMiA9IDAsIC5taXBzMzIgPSAxLCAubWlwczY0ID0gMSwgLnRpbGVneCA9IDAgfSwKICAgeyBERUZPUChJb3BfTUFkZEYzMiwgICAgICAgVU5ERUZfQUxMKSwgLnMzOTB4ID0gMSwgLmFtZDY0ID0gMCwgLng4NiA9IDAsIC5hcm0gPSAwLCAucHBjNjQgPSAwLCAucHBjMzIgPSAwLCAubWlwczMyID0gMCwgLm1pcHM2NCA9IDEsIC50aWxlZ3ggPSAwIH0sCiAgIHsgREVGT1AoSW9wX01TdWJGMzIsICAgICAgIFVOREVGX0FMTCksIC5zMzkweCA9IDEsIC5hbWQ2NCA9IDAsIC54ODYgPSAwLCAuYXJtID0gMCwgLnBwYzY0ID0gMCwgLnBwYzMyID0gMCwgLm1pcHMzMiA9IDAsIC5taXBzNjQgPSAxLCAudGlsZWd4ID0gMCB9LAogICB7IERFRk9QKElvcF9NQWRkRjY0LCAgICAgICBVTkRFRl9BTEwpLCAuczM5MHggPSAxLCAuYW1kNjQgPSAwLCAueDg2ID0gMCwgLmFybSA9IDAsIC5wcGM2NCA9IDEsIC5wcGMzMiA9IDEsIC5taXBzMzIgPSAwLCAubWlwczY0ID0gMSwgLnRpbGVneCA9IDAgfSwKQEAgLTExMjUsNyArMTE1MCw4IEBACiAgICAgICAgICBjYXNlIElvcF9EMTI4dG9GNjQ6CiAgICAgICAgICBjYXNlIElvcF9EMTI4dG9GMTI4OiB7CiAgICAgICAgICAgICBpbnQgcmM7Ci0gICAgICAgICAgICAvKiBUaGVzZSBJUk9wcyByZXF1aXJlIHRoZSBQZXJmb3JtIEZsb2F0aW5nIFBvaW50IE9wZXJhdGlvbiBmYWNpbGl0eSAqLworICAgICAgICAgICAgLyogVGhlc2UgSVJPcHMgcmVxdWlyZSB0aGUgUGVyZm9ybSBGbG9hdGluZyBQb2ludCBPcGVyYXRpb24KKyAgICAgICAgICAgICAgIGZhY2lsaXR5ICovCiAgICAgICAgICAgICByYyA9IHN5c3RlbShTMzkwWF9GRUFUVVJFUyAiIHMzOTB4LXBmcG8iKTsKICAgICAgICAgICAgIC8vIHMzOTB4X2ZlYXR1cmVzIHJldHVybnMgMSBpZiBmZWF0dXJlIGRvZXMgbm90IGV4aXN0CiAgICAgICAgICAgICByYyAvPSAyNTY7CkBAIC0xMTQyLDYgKzExNjgsMzggQEAKICAgICAgICAgIHJldHVybiBwLT5hbWQ2NCA/IHAgOiBOVUxMOwogI2VuZGlmCiAjaWZkZWYgX19wb3dlcnBjX18KKyNkZWZpbmUgIE1JTl9QT1dFUl9JU0EgICIuLi8uLi8uLi90ZXN0cy9taW5fcG93ZXJfaXNhIgorCisgICAgICAgICBzd2l0Y2ggKG9wKSB7CisgICAgICAgICBjYXNlIElvcF9EaXZTNjRFOgorICAgICAgICAgY2FzZSBJb3BfRGl2VTY0RToKKyAgICAgICAgIGNhc2UgSW9wX0RpdlUzMkU6CisgICAgICAgICBjYXNlIElvcF9EaXZTMzJFOgorICAgICAgICAgY2FzZSBJb3BfRjY0dG9JNjRVOgorICAgICAgICAgY2FzZSBJb3BfRjY0dG9JMzJVOgorICAgICAgICAgY2FzZSBJb3BfSTY0VXRvRjY0OgorICAgICAgICAgY2FzZSBJb3BfSTY0VXRvRjMyOgorICAgICAgICAgY2FzZSBJb3BfSTY0U3RvRDY0OiB7CisgICAgICAgICAgICBpbnQgcmM7CisgICAgICAgICAgICAvKiBJUk9wcyByZXF1aXJlIGEgcHJvY2Vzc29yIHRoYXQgc3VwcG9ydHMgSVNBIDIuMDYgb3IgbmV3ZXIgKi8KKyAgICAgICAgICAgIHJjID0gc3lzdGVtKE1JTl9QT1dFUl9JU0EgIiAyLjA2ICIpOworICAgICAgICAgICAgcmMgLz0gMjU2OworICAgICAgICAgICAgLyogTUlOX1BPV0VSX0lTQSByZXR1cm5zIDAgaWYgdW5kZXJseWluZyBIVyBzdXBwb3J0cyB0aGUKKyAgICAgICAgICAgICAqIHNwZWNpZmllZCBJU0Egb3IgbmV3ZXIuIFJldHVybnMgMSBpZiB0aGUgSFcgZG9lcyBub3Qgc3VwcG9ydAorICAgICAgICAgICAgICogdGhlIHNwZWNpZmllZCBJU0EuICBSZXR1cm5zIDIgb24gZXJyb3IuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChyYyA9PSAxKSByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIGlmIChyYyA+IDIpIHsKKyAgICAgICAgICAgICAgIHBhbmljKCIgRVJST1IsIG1pbl9wb3dlcl9pc2EoKSByZXR1cm4gY29kZSBpcyBpbnZhbGlkLlxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBicmVhazsKKworICAgICAgICAgLyogT3RoZXIgKi8KKyAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KKwogI2lmZGVmIF9fcG93ZXJwYzY0X18KICAgICAgICAgIHJldHVybiBwLT5wcGM2NCA/IHAgOiBOVUxMOwogI2Vsc2UKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9tYWluLmMgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvbWFpbi5jCmluZGV4IDdiOWM0ZGUuLjQ1ZjQzMWIgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9tYWluLmMKKysrIGIvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L21haW4uYwpAQCAtMSw1ICsxLDI5IEBACiAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDM7IC0qLSAqLwogCisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTWVtQ2hlY2ssIGEgaGVhdnl3ZWlnaHQgVmFsZ3JpbmQgdG9vbCBmb3IKKyAgIGRldGVjdGluZyBtZW1vcnkgZXJyb3JzLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSAgRmxvcmlhbiBLcm9obQorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKICNpbmNsdWRlIDxhc3NlcnQuaD4gICAgLy8gYXNzZXJ0CiAjaW5jbHVkZSA8c3RkaW8uaD4gICAgIC8vIHByaW50ZgogI2luY2x1ZGUgPHN0ZGxpYi5oPiAgICAvLyBtYWxsb2MKQEAgLTc1LDcgKzk5LDcgQEAKICAgICAgIGlmIChzdHJjbXAoYXJndltpXSwgIi12IikgPT0gMCkgKyt2ZXJib3NlOwogICAgICAgZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sICItLWhlbHAiKSA9PSAwKSB7CiAgICAgICAgIHByaW50ZigiXG52Yml0LXRlc3QgWyAtdiB8IC0taGVscCBdXG4iKTsKLSAgICAgICAgcHJpbnRmKCJcblx0LXYgICAgICAgdmVyYm9zZSBtb2RlOyBzaG93IG51bWJlciBvZiAxLCAyLCAzIGFuZCA0IG9wZXJhbmQgdGVzdHNcbiIpOworICAgICAgICBwcmludGYoIlxuXHQtdiAgICAgICB2ZXJib3NlIG1vZGU7IHNob3cgbnVtYmVyIG9mIHRlc3RzXG4iKTsKICAgICAgICAgcHJpbnRmKCJcblx0LXYgLXYgICAgdmVyYm9zZSBtb2RlOyBzaG93cyBJUk9wcyBiZWluZyB0ZXN0ZWRcbiIpOwogICAgICAgICBwcmludGYoIlxuXHQtdiAtdiAtdiB2ZXJib3NlIG1vZGUsIGV4dHJlbWUgZWRpdGlvblxuXG4iKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMTIsMTQgKzEzNiwxNCBAQAogICAgICAgY29uc3QgaXJvcF90ICpvcCA9IGdldF9pcm9wKG9wa2luZCk7CiAgICAgICBpZiAob3AgPT0gTlVMTCkgY29udGludWU7CiAKLSAgICAgIHRlc3RfZGF0YV90ICpkYXRhID0gbmV3X3Rlc3RfZGF0YShvcCk7Ci0KICAgICAgIGlmIChvcC0+dW5kZWZfa2luZCA9PSBVTkRFRl9VTktOT1dOKSB7CiAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIi4uLnNraXBwaW5nICVzOyB1bmtub3duIHVuZGVmIHByb3BhZ2F0aW9uXG4iLAogICAgICAgICAgICAgICAgICBvcC0+bmFtZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgIH0KIAorICAgICAgdGVzdF9kYXRhX3QgKmRhdGEgPSBuZXdfdGVzdF9kYXRhKG9wKTsKKwogICAgICAgaWYgKHZlcmJvc2UgPiAxKSBwcmludGYoIlRlc3Rpbmcgb3BlcmF0b3IgJXNcbiIsIG9wLT5uYW1lKTsKIAogICAgICAgSVJJQ0IgaXJpY2IgPSBuZXdfaXJpY2Iob3AsIGRhdGEpOwpAQCAtMTUxLDggKzE3NSw5IEBACiAgICB9CiAKICAgIGlmICh2ZXJib3NlKSAKLSAgICAgIHByaW50ZigiXG52Yml0LXRlc3QgcmFuICAlZCB1bmFyeSwgJWQgYmluYXJ5LCAlZCB0ZXJuYXJ5IGFuZCAlZCBxZXJuYXJ5IHRlc3RzLlxuIiwKLQkgIG51bV91bmFyeV90ZXN0cywgbnVtX2JpbmFyeV90ZXN0cywgbnVtX3Rlcm5hcnlfdGVzdHMsCi0JICBudW1fcWVybmFyeV90ZXN0cyk7CisgICAgICBwcmludGYoIlxudmJpdC10ZXN0IHJhbiAgJWQgdW5hcnksICVkIGJpbmFyeSwgJWQgdGVybmFyeSBhbmQiCisgICAgICAgICAgICAgIiAlZCBxZXJuYXJ5IHRlc3RzLlxuXG4iLAorICAgICAgICAgICAgIG51bV91bmFyeV90ZXN0cywgbnVtX2JpbmFyeV90ZXN0cywgbnVtX3Rlcm5hcnlfdGVzdHMsCisgICAgICAgICAgICAgbnVtX3Flcm5hcnlfdGVzdHMpOwogICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvcWVybmFyeS5jIGIvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3Flcm5hcnkuYwppbmRleCAzMjRiYjIwLi4wMDFhNTQzIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvcWVybmFyeS5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC9xZXJuYXJ5LmMKQEAgLTEsNSArMSwyOSBAQAogLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiAzOyAtKi0gKi8KIAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCisgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KKworICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgIEZsb3JpYW4gS3JvaG0KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSAidnRlc3QuaCIKIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3Rlcm5hcnkuYyBiL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC90ZXJuYXJ5LmMKaW5kZXggNzdlYWE5NC4uZjdhYThmZSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3Rlcm5hcnkuYworKysgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdGVybmFyeS5jCkBAIC0xLDUgKzEsMjkgQEAKIC8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogMzsgLSotICovCiAKKy8qCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBNZW1DaGVjaywgYSBoZWF2eXdlaWdodCBWYWxncmluZCB0b29sIGZvcgorICAgZGV0ZWN0aW5nIG1lbW9yeSBlcnJvcnMuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1ICBGbG9yaWFuIEtyb2htCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKwogI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgInZ0ZXN0LmgiCiAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC91bmFyeS5jIGIvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3VuYXJ5LmMKaW5kZXggMzBiYTg3Zi4uMjljN2VkNSAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3VuYXJ5LmMKKysrIGIvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3VuYXJ5LmMKQEAgLTEsNSArMSwyOSBAQAogLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiAzOyAtKi0gKi8KIAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCisgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KKworICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgIEZsb3JpYW4gS3JvaG0KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSAidnRlc3QuaCIKIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3V0aWwuYyBiL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC91dGlsLmMKaW5kZXggMTcwZmI4YS4uMjlhNjg4MyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3V0aWwuYworKysgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdXRpbC5jCkBAIC0xLDUgKzEsMjkgQEAKIC8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogMzsgLSotICovCiAKKy8qCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBNZW1DaGVjaywgYSBoZWF2eXdlaWdodCBWYWxncmluZCB0b29sIGZvcgorICAgZGV0ZWN0aW5nIG1lbW9yeSBlcnJvcnMuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1ICBGbG9yaWFuIEtyb2htCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKwogI2luY2x1ZGUgPHN0ZGlvLmg+ICAgICAvLyBmcHJpbnRmCiAjaW5jbHVkZSA8c3RkbGliLmg+ICAgIC8vIGV4aXQKICNpbmNsdWRlIDxhc3NlcnQuaD4gICAgLy8gYXNzZXJ0CkBAIC03LDYgKzMxLDE0IEBACiAjaW5jbHVkZSA8bWFjaGluZS9lbmRpYW4uaD4KICNkZWZpbmUgX19CWVRFX09SREVSICAgIEJZVEVfT1JERVIKICNkZWZpbmUgX19MSVRUTEVfRU5ESUFOIExJVFRMRV9FTkRJQU4KKyNlbGlmIGRlZmluZWQoX19zdW4pCisjZGVmaW5lIF9fTElUVExFX0VORElBTiAxMjM0CisjZGVmaW5lIF9fQklHX0VORElBTiAgICA0MzIxCisjICBpZiBkZWZpbmVkKF9MSVRUTEVfRU5ESUFOKQorIyAgZGVmaW5lIF9fQllURV9PUkRFUiAgICBfX0xJVFRMRV9FTkRJQU4KKyMgIGVsc2UKKyMgIGRlZmluZSBfX0JZVEVfT1JERVIgICAgX19CSUdfRU5ESUFOCisjICBlbmRpZgogI2Vsc2UKICNpbmNsdWRlIDxlbmRpYW4uaD4KICNlbmRpZgpAQCAtMTU5LDg5MCArMTkxLDE2IEBACiB9CiAKIAotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0vKiBUaGUgZnVuY3Rpb25zIGJlbG93IGhhdmUgYmVlbiBpbXBvcnRlZCBmcm9tIFZFWC9wcmljL2lyX2RlZnMuYy4KLSAgIFRoaXMgaXMgbW9yZSBjb252ZW5pZW50IGJlY2F1c2UKLSAgICgxKSBEb24ndCBoYXZlIHRvIGZpZ3VyZSBvdXQgdGhlIE1ha2VmaWxlIG1hY2hpbmVyeSB0byBwaWNrIHVwIHRoZQotICAgICAgIGNvcnJlY3QgVkVYIGxpYnJhcnkgKHBsYXRmb3JtIHNwZWNpZmljKQotICAgKDIpIFdvdWxkIGhhdmUgdG8gZXhwb3J0IHR5cGVvZklSVHlwZSBpbiBWRVgKLSAgICgzKSBUaGVyZSBpcyBubyB3b3JyeSB0aGF0IHRoZXNlIGZ1bmN0aW9ucyBnZXQgb3V0IG9mIHN5bmNoIGJlY2F1c2UKLSAgICAgICB0aGUgdGVzdCBoYXJuZXNzIHdpbGwgaXRlcmF0ZSBvdmVyIGFsbCBJUk9wcyBpbiBsaWJ2ZXhfaXIuaC4KLSAgICAgICBTbyBpZiBhIG5ldyBvbmUgd2FzIGFkZGVkIHRoZXJlLCB3ZSB3b3VsZCBhc3NlcnQgaGVyZSBhbmQgZWxzZXdoZXJlLgotKi8KLQotLy8gVGFrZW4gZnJvbSBWRVgvcHJpdi9pcl9kZWZzLmM6IGZ1bmN0aW9uIHNpemVvZklSVHlwZQogdW5zaWduZWQKIHNpemVvZl9pcnR5cGUoSVJUeXBlIHR5KQogewotICAgc3dpdGNoICh0eSkgewotICAgICAgY2FzZSBJdHlfSTg6ICAgcmV0dXJuIDE7Ci0gICAgICBjYXNlIEl0eV9JMTY6ICByZXR1cm4gMjsKLSAgICAgIGNhc2UgSXR5X0kzMjogIHJldHVybiA0OwotICAgICAgY2FzZSBJdHlfSTY0OiAgcmV0dXJuIDg7Ci0gICAgICBjYXNlIEl0eV9JMTI4OiByZXR1cm4gMTY7Ci0gICAgICBjYXNlIEl0eV9GMzI6ICByZXR1cm4gNDsKLSAgICAgIGNhc2UgSXR5X0Y2NDogIHJldHVybiA4OwotICAgICAgY2FzZSBJdHlfRjEyODogcmV0dXJuIDE2OwotICAgICAgY2FzZSBJdHlfRDMyOiAgcmV0dXJuIDQ7Ci0gICAgICBjYXNlIEl0eV9ENjQ6ICByZXR1cm4gODsKLSAgICAgIGNhc2UgSXR5X0QxMjg6IHJldHVybiAxNjsKLSAgICAgIGNhc2UgSXR5X1YxMjg6IHJldHVybiAxNjsKLSAgICAgIGNhc2UgSXR5X1YyNTY6IHJldHVybiAzMjsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICBwYW5pYyhfX2Z1bmNfXyk7Ci0gICB9CisgICByZXR1cm4gc2l6ZW9mSVJUeXBlKHR5KTsKIH0KIAogCi0vLyBUYWtlbiBmcm9tIFZFWC9wcml2L2lyX2RlZnMuYzogZnVuY3Rpb24gdHlwZU9mUHJpbW9wCi0vLyBNb2RpZmllZCBtaW5pbWFsbHkgdG8gYnJlYWsgZGVwZW5kZW5jaWVzIG9uIFZFWCBpbmZyYXN0cnVjdHVyZS4KIHZvaWQKIHR5cGVvZl9wcmltb3AoSVJPcCBvcCwgSVJUeXBlICp0X2RzdCwgSVJUeXBlICp0X2FyZzEsIElSVHlwZSAqdF9hcmcyLCAKICAgICAgICAgICAgICAgSVJUeXBlICp0X2FyZzMsIElSVHlwZSAqdF9hcmc0KQogewotIyAgZGVmaW5lIFVOQVJZKF90YTEsX3RkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgKnRfZHN0ID0gKF90ZCk7ICp0X2FyZzEgPSAoX3RhMSk7IGJyZWFrCi0jICBkZWZpbmUgQklOQVJZKF90YTEsX3RhMixfdGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICp0X2RzdCA9IChfdGQpOyAqdF9hcmcxID0gKF90YTEpOyAqdF9hcmcyID0gKF90YTIpOyBicmVhawotIyAgZGVmaW5lIFRFUk5BUlkoX3RhMSxfdGEyLF90YTMsX3RkKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAqdF9kc3QgPSAoX3RkKTsgKnRfYXJnMSA9IChfdGExKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAqdF9hcmcyID0gKF90YTIpOyAqdF9hcmczID0gKF90YTMpOyBicmVhawotIyAgZGVmaW5lIFFVQVRFUk5BUlkoX3RhMSxfdGEyLF90YTMsX3RhNCxfdGQpICAgICAgICAgICAgICAgICAgXAotICAgICAqdF9kc3QgPSAoX3RkKTsgKnRfYXJnMSA9IChfdGExKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAqdF9hcmcyID0gKF90YTIpOyAqdF9hcmczID0gKF90YTMpOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAqdF9hcmc0ID0gKF90YTQpOyBicmVhawotIyAgZGVmaW5lIENPTVBBUklTT04oX3RhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAqdF9kc3QgPSBJdHlfSTE7ICp0X2FyZzEgPSAqdF9hcmcyID0gKF90YSk7IGJyZWFrOwotIyAgZGVmaW5lIFVOQVJZX0NPTVBBUklTT04oX3RhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAqdF9kc3QgPSBJdHlfSTE7ICp0X2FyZzEgPSAoX3RhKTsgYnJlYWs7Ci0KLSAgIC8qIFJvdW5kaW5nIG1vZGUgdmFsdWVzIGFyZSBhbHdheXMgSXR5X0kzMiwgZW5jb2RlZCBhcyBwZXIKLSAgICAgIElSUm91bmRpbmdNb2RlICovCi0gICBjb25zdCBJUlR5cGUgaXR5X1JNb2RlID0gSXR5X0kzMjsKLQotICAgKnRfZHN0ICA9IEl0eV9JTlZBTElEOwotICAgKnRfYXJnMSA9IEl0eV9JTlZBTElEOwotICAgKnRfYXJnMiA9IEl0eV9JTlZBTElEOwotICAgKnRfYXJnMyA9IEl0eV9JTlZBTElEOwotICAgKnRfYXJnNCA9IEl0eV9JTlZBTElEOwotICAgc3dpdGNoIChvcCkgewotICAgICAgY2FzZSBJb3BfQWRkODogY2FzZSBJb3BfU3ViODogY2FzZSBJb3BfTXVsODogCi0gICAgICBjYXNlIElvcF9Pcjg6ICBjYXNlIElvcF9BbmQ4OiBjYXNlIElvcF9Yb3I4OgotICAgICAgICAgQklOQVJZKEl0eV9JOCxJdHlfSTgsIEl0eV9JOCk7Ci0KLSAgICAgIGNhc2UgSW9wX0FkZDE2OiBjYXNlIElvcF9TdWIxNjogY2FzZSBJb3BfTXVsMTY6Ci0gICAgICBjYXNlIElvcF9PcjE2OiAgY2FzZSBJb3BfQW5kMTY6IGNhc2UgSW9wX1hvcjE2OgotICAgICAgICAgQklOQVJZKEl0eV9JMTYsSXR5X0kxNiwgSXR5X0kxNik7Ci0KLSAgICAgIGNhc2UgSW9wX0NtcE9SRDMyVToKLSAgICAgIGNhc2UgSW9wX0NtcE9SRDMyUzoKLSAgICAgIGNhc2UgSW9wX0FkZDMyOiBjYXNlIElvcF9TdWIzMjogY2FzZSBJb3BfTXVsMzI6Ci0gICAgICBjYXNlIElvcF9PcjMyOiAgY2FzZSBJb3BfQW5kMzI6IGNhc2UgSW9wX1hvcjMyOgotICAgICAgY2FzZSBJb3BfTWF4MzJVOgotICAgICAgY2FzZSBJb3BfUUFkZDMyUzogY2FzZSBJb3BfUVN1YjMyUzoKLSAgICAgIGNhc2UgSW9wX0FkZDE2eDI6IGNhc2UgSW9wX1N1YjE2eDI6Ci0gICAgICBjYXNlIElvcF9RQWRkMTZTeDI6IGNhc2UgSW9wX1FBZGQxNlV4MjoKLSAgICAgIGNhc2UgSW9wX1FTdWIxNlN4MjogY2FzZSBJb3BfUVN1YjE2VXgyOgotICAgICAgY2FzZSBJb3BfSEFkZDE2VXgyOiBjYXNlIElvcF9IQWRkMTZTeDI6Ci0gICAgICBjYXNlIElvcF9IU3ViMTZVeDI6IGNhc2UgSW9wX0hTdWIxNlN4MjoKLSAgICAgIGNhc2UgSW9wX0FkZDh4NDogY2FzZSBJb3BfU3ViOHg0OgotICAgICAgY2FzZSBJb3BfUUFkZDhTeDQ6IGNhc2UgSW9wX1FBZGQ4VXg0OgotICAgICAgY2FzZSBJb3BfUVN1YjhTeDQ6IGNhc2UgSW9wX1FTdWI4VXg0OgotICAgICAgY2FzZSBJb3BfSEFkZDhVeDQ6IGNhc2UgSW9wX0hBZGQ4U3g0OgotICAgICAgY2FzZSBJb3BfSFN1YjhVeDQ6IGNhc2UgSW9wX0hTdWI4U3g0OgotICAgICAgY2FzZSBJb3BfU2FkOFV4NDoKLSAgICAgICAgIEJJTkFSWShJdHlfSTMyLEl0eV9JMzIsIEl0eV9JMzIpOwotCi0gICAgICBjYXNlIElvcF9BZGQ2NDogY2FzZSBJb3BfU3ViNjQ6IGNhc2UgSW9wX011bDY0OgotICAgICAgY2FzZSBJb3BfT3I2NDogIGNhc2UgSW9wX0FuZDY0OiBjYXNlIElvcF9Yb3I2NDoKLSAgICAgIGNhc2UgSW9wX0NtcE9SRDY0VToKLSAgICAgIGNhc2UgSW9wX0NtcE9SRDY0UzoKLSAgICAgIGNhc2UgSW9wX0F2ZzhVeDg6IGNhc2UgSW9wX0F2ZzE2VXg0OgotICAgICAgY2FzZSBJb3BfQWRkOHg4OiBjYXNlIElvcF9BZGQxNng0OiBjYXNlIElvcF9BZGQzMngyOgotICAgICAgY2FzZSBJb3BfQWRkMzJGeDI6IGNhc2UgSW9wX1N1YjMyRngyOgotICAgICAgY2FzZSBJb3BfQ21wRVE4eDg6IGNhc2UgSW9wX0NtcEVRMTZ4NDogY2FzZSBJb3BfQ21wRVEzMngyOgotICAgICAgY2FzZSBJb3BfQ21wR1Q4U3g4OiBjYXNlIElvcF9DbXBHVDE2U3g0OiBjYXNlIElvcF9DbXBHVDMyU3gyOgotICAgICAgY2FzZSBJb3BfQ21wR1Q4VXg4OiBjYXNlIElvcF9DbXBHVDE2VXg0OiBjYXNlIElvcF9DbXBHVDMyVXgyOgotICAgICAgY2FzZSBJb3BfQ21wR1QzMkZ4MjogY2FzZSBJb3BfQ21wRVEzMkZ4MjogY2FzZSBJb3BfQ21wR0UzMkZ4MjoKLSAgICAgIGNhc2UgSW9wX0ludGVybGVhdmVISTh4ODogY2FzZSBJb3BfSW50ZXJsZWF2ZUxPOHg4OgotICAgICAgY2FzZSBJb3BfSW50ZXJsZWF2ZUhJMTZ4NDogY2FzZSBJb3BfSW50ZXJsZWF2ZUxPMTZ4NDoKLSAgICAgIGNhc2UgSW9wX0ludGVybGVhdmVISTMyeDI6IGNhc2UgSW9wX0ludGVybGVhdmVMTzMyeDI6Ci0gICAgICBjYXNlIElvcF9DYXRPZGRMYW5lczh4ODogY2FzZSBJb3BfQ2F0RXZlbkxhbmVzOHg4OgotICAgICAgY2FzZSBJb3BfQ2F0T2RkTGFuZXMxNng0OiBjYXNlIElvcF9DYXRFdmVuTGFuZXMxNng0OgotICAgICAgY2FzZSBJb3BfSW50ZXJsZWF2ZU9kZExhbmVzOHg4OiBjYXNlIElvcF9JbnRlcmxlYXZlRXZlbkxhbmVzOHg4OgotICAgICAgY2FzZSBJb3BfSW50ZXJsZWF2ZU9kZExhbmVzMTZ4NDogY2FzZSBJb3BfSW50ZXJsZWF2ZUV2ZW5MYW5lczE2eDQ6Ci0gICAgICBjYXNlIElvcF9QZXJtOHg4OgotICAgICAgY2FzZSBJb3BfTWF4OFV4ODogY2FzZSBJb3BfTWF4MTZVeDQ6IGNhc2UgSW9wX01heDMyVXgyOgotICAgICAgY2FzZSBJb3BfTWF4OFN4ODogY2FzZSBJb3BfTWF4MTZTeDQ6IGNhc2UgSW9wX01heDMyU3gyOgotICAgICAgY2FzZSBJb3BfTWF4MzJGeDI6IGNhc2UgSW9wX01pbjMyRngyOgotICAgICAgY2FzZSBJb3BfUHdNYXgzMkZ4MjogY2FzZSBJb3BfUHdNaW4zMkZ4MjoKLSAgICAgIGNhc2UgSW9wX01pbjhVeDg6IGNhc2UgSW9wX01pbjE2VXg0OiBjYXNlIElvcF9NaW4zMlV4MjoKLSAgICAgIGNhc2UgSW9wX01pbjhTeDg6IGNhc2UgSW9wX01pbjE2U3g0OiBjYXNlIElvcF9NaW4zMlN4MjoKLSAgICAgIGNhc2UgSW9wX1B3TWF4OFV4ODogY2FzZSBJb3BfUHdNYXgxNlV4NDogY2FzZSBJb3BfUHdNYXgzMlV4MjoKLSAgICAgIGNhc2UgSW9wX1B3TWF4OFN4ODogY2FzZSBJb3BfUHdNYXgxNlN4NDogY2FzZSBJb3BfUHdNYXgzMlN4MjoKLSAgICAgIGNhc2UgSW9wX1B3TWluOFV4ODogY2FzZSBJb3BfUHdNaW4xNlV4NDogY2FzZSBJb3BfUHdNaW4zMlV4MjoKLSAgICAgIGNhc2UgSW9wX1B3TWluOFN4ODogY2FzZSBJb3BfUHdNaW4xNlN4NDogY2FzZSBJb3BfUHdNaW4zMlN4MjoKLSAgICAgIGNhc2UgSW9wX011bDh4ODogY2FzZSBJb3BfTXVsMTZ4NDogY2FzZSBJb3BfTXVsMzJ4MjoKLSAgICAgIGNhc2UgSW9wX011bDMyRngyOgotICAgICAgY2FzZSBJb3BfUG9seW5vbWlhbE11bDh4ODoKLSAgICAgIGNhc2UgSW9wX011bEhpMTZTeDQ6IGNhc2UgSW9wX011bEhpMTZVeDQ6Ci0gICAgICBjYXNlIElvcF9RRE11bEhpMTZTeDQ6IGNhc2UgSW9wX1FETXVsSGkzMlN4MjoKLSAgICAgIGNhc2UgSW9wX1FSRE11bEhpMTZTeDQ6IGNhc2UgSW9wX1FSRE11bEhpMzJTeDI6Ci0gICAgICBjYXNlIElvcF9RQWRkOFN4ODogY2FzZSBJb3BfUUFkZDE2U3g0OgotICAgICAgY2FzZSBJb3BfUUFkZDMyU3gyOiBjYXNlIElvcF9RQWRkNjRTeDE6Ci0gICAgICBjYXNlIElvcF9RQWRkOFV4ODogY2FzZSBJb3BfUUFkZDE2VXg0OgotICAgICAgY2FzZSBJb3BfUUFkZDMyVXgyOiBjYXNlIElvcF9RQWRkNjRVeDE6Ci0gICAgICBjYXNlIElvcF9Qd0FkZDh4ODogY2FzZSBJb3BfUHdBZGQxNng0OiBjYXNlIElvcF9Qd0FkZDMyeDI6Ci0gICAgICBjYXNlIElvcF9Qd0FkZDMyRngyOgotICAgICAgY2FzZSBJb3BfUU5hcnJvd0JpbjMyU3RvMTZTeDQ6Ci0gICAgICBjYXNlIElvcF9RTmFycm93QmluMTZTdG84U3g4OiBjYXNlIElvcF9RTmFycm93QmluMTZTdG84VXg4OgotICAgICAgY2FzZSBJb3BfTmFycm93QmluMTZ0bzh4ODogY2FzZSBJb3BfTmFycm93QmluMzJ0bzE2eDQ6Ci0gICAgICBjYXNlIElvcF9TdWI4eDg6IGNhc2UgSW9wX1N1YjE2eDQ6IGNhc2UgSW9wX1N1YjMyeDI6Ci0gICAgICBjYXNlIElvcF9RU3ViOFN4ODogY2FzZSBJb3BfUVN1YjE2U3g0OgotICAgICAgY2FzZSBJb3BfUVN1YjMyU3gyOiBjYXNlIElvcF9RU3ViNjRTeDE6Ci0gICAgICBjYXNlIElvcF9RU3ViOFV4ODogY2FzZSBJb3BfUVN1YjE2VXg0OgotICAgICAgY2FzZSBJb3BfUVN1YjMyVXgyOiBjYXNlIElvcF9RU3ViNjRVeDE6Ci0gICAgICBjYXNlIElvcF9TaGw4eDg6IGNhc2UgSW9wX1NobDE2eDQ6IGNhc2UgSW9wX1NobDMyeDI6Ci0gICAgICBjYXNlIElvcF9TaHI4eDg6IGNhc2UgSW9wX1NocjE2eDQ6IGNhc2UgSW9wX1NocjMyeDI6Ci0gICAgICBjYXNlIElvcF9TYXI4eDg6IGNhc2UgSW9wX1NhcjE2eDQ6IGNhc2UgSW9wX1NhcjMyeDI6Ci0gICAgICBjYXNlIElvcF9TYWw4eDg6IGNhc2UgSW9wX1NhbDE2eDQ6IGNhc2UgSW9wX1NhbDMyeDI6IGNhc2UgSW9wX1NhbDY0eDE6Ci0gICAgICBjYXNlIElvcF9RU2hsOHg4OiBjYXNlIElvcF9RU2hsMTZ4NDogY2FzZSBJb3BfUVNobDMyeDI6IGNhc2UgSW9wX1FTaGw2NHgxOgotICAgICAgY2FzZSBJb3BfUVNhbDh4ODogY2FzZSBJb3BfUVNhbDE2eDQ6IGNhc2UgSW9wX1FTYWwzMngyOiBjYXNlIElvcF9RU2FsNjR4MToKLSAgICAgIGNhc2UgSW9wX1JlY2lwU3RlcDMyRngyOgotICAgICAgY2FzZSBJb3BfUlNxcnRTdGVwMzJGeDI6Ci0gICAgICAgICBCSU5BUlkoSXR5X0k2NCxJdHlfSTY0LCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfU2hsTjMyeDI6IGNhc2UgSW9wX1NobE4xNng0OiBjYXNlIElvcF9TaGxOOHg4OgotICAgICAgY2FzZSBJb3BfU2hyTjMyeDI6IGNhc2UgSW9wX1Nock4xNng0OiBjYXNlIElvcF9TaHJOOHg4OgotICAgICAgY2FzZSBJb3BfU2FyTjMyeDI6IGNhc2UgSW9wX1Nhck4xNng0OiBjYXNlIElvcF9TYXJOOHg4OgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRVVTh4ODogIGNhc2UgSW9wX1FTaGxOc2F0VVUxNng0OgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRVVTMyeDI6IGNhc2UgSW9wX1FTaGxOc2F0VVU2NHgxOgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRTVTh4ODogIGNhc2UgSW9wX1FTaGxOc2F0U1UxNng0OgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRTVTMyeDI6IGNhc2UgSW9wX1FTaGxOc2F0U1U2NHgxOgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRTUzh4ODogIGNhc2UgSW9wX1FTaGxOc2F0U1MxNng0OgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRTUzMyeDI6IGNhc2UgSW9wX1FTaGxOc2F0U1M2NHgxOgotICAgICAgICAgQklOQVJZKEl0eV9JNjQsSXR5X0k4LCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfU2hsODogY2FzZSBJb3BfU2hyODogY2FzZSBJb3BfU2FyODoKLSAgICAgICAgIEJJTkFSWShJdHlfSTgsSXR5X0k4LCBJdHlfSTgpOwotICAgICAgY2FzZSBJb3BfU2hsMTY6IGNhc2UgSW9wX1NocjE2OiBjYXNlIElvcF9TYXIxNjoKLSAgICAgICAgIEJJTkFSWShJdHlfSTE2LEl0eV9JOCwgSXR5X0kxNik7Ci0gICAgICBjYXNlIElvcF9TaGwzMjogY2FzZSBJb3BfU2hyMzI6IGNhc2UgSW9wX1NhcjMyOgotICAgICAgICAgQklOQVJZKEl0eV9JMzIsSXR5X0k4LCBJdHlfSTMyKTsKLSAgICAgIGNhc2UgSW9wX1NobDY0OiBjYXNlIElvcF9TaHI2NDogY2FzZSBJb3BfU2FyNjQ6Ci0gICAgICAgICBCSU5BUlkoSXR5X0k2NCxJdHlfSTgsIEl0eV9JNjQpOwotCi0gICAgICBjYXNlIElvcF9Ob3Q4OgotICAgICAgICAgVU5BUlkoSXR5X0k4LCBJdHlfSTgpOwotICAgICAgY2FzZSBJb3BfTm90MTY6Ci0gICAgICAgICBVTkFSWShJdHlfSTE2LCBJdHlfSTE2KTsKLSAgICAgIGNhc2UgSW9wX05vdDMyOgotICAgICAgY2FzZSBJb3BfQ21wTkVaMTZ4MjogY2FzZSBJb3BfQ21wTkVaOHg0OgotICAgICAgICAgVU5BUlkoSXR5X0kzMiwgSXR5X0kzMik7Ci0KLSAgICAgIGNhc2UgSW9wX05vdDY0OgotICAgICAgY2FzZSBJb3BfQ21wTkVaMzJ4MjogY2FzZSBJb3BfQ21wTkVaMTZ4NDogY2FzZSBJb3BfQ21wTkVaOHg4OgotICAgICAgY2FzZSBJb3BfQ250OHg4OgotICAgICAgY2FzZSBJb3BfQ2x6OHg4OiBjYXNlIElvcF9DbHoxNng0OiBjYXNlIElvcF9DbHozMngyOgotICAgICAgY2FzZSBJb3BfQ2xzOHg4OiBjYXNlIElvcF9DbHMxNng0OiBjYXNlIElvcF9DbHMzMngyOgotICAgICAgY2FzZSBJb3BfUHdBZGRMOFV4ODogY2FzZSBJb3BfUHdBZGRMMTZVeDQ6IGNhc2UgSW9wX1B3QWRkTDMyVXgyOgotICAgICAgY2FzZSBJb3BfUHdBZGRMOFN4ODogY2FzZSBJb3BfUHdBZGRMMTZTeDQ6IGNhc2UgSW9wX1B3QWRkTDMyU3gyOgotICAgICAgY2FzZSBJb3BfUmV2ZXJzZThzSW42NF94MTogY2FzZSBJb3BfUmV2ZXJzZTE2c0luNjRfeDE6Ci0gICAgICBjYXNlIElvcF9SZXZlcnNlMzJzSW42NF94MToKLSAgICAgIGNhc2UgSW9wX1JldmVyc2U4c0luMzJfeDI6IGNhc2UgSW9wX1JldmVyc2UxNnNJbjMyX3gyOgotICAgICAgY2FzZSBJb3BfUmV2ZXJzZThzSW4xNl94NDoKLSAgICAgIGNhc2UgSW9wX0Z0b0kzMlN4Ml9SWjogY2FzZSBJb3BfRnRvSTMyVXgyX1JaOgotICAgICAgY2FzZSBJb3BfSTMyU3RvRngyOiBjYXNlIElvcF9JMzJVdG9GeDI6Ci0gICAgICBjYXNlIElvcF9SZWNpcEVzdDMyVXgyOiBjYXNlIElvcF9SZWNpcEVzdDMyRngyOgotICAgICAgY2FzZSBJb3BfQWJzMzJGeDI6Ci0gICAgICBjYXNlIElvcF9SU3FydEVzdDMyRngyOgotICAgICAgY2FzZSBJb3BfUlNxcnRFc3QzMlV4MjoKLSAgICAgIGNhc2UgSW9wX05lZzMyRngyOgotICAgICAgY2FzZSBJb3BfQWJzOHg4OiBjYXNlIElvcF9BYnMxNng0OiBjYXNlIElvcF9BYnMzMngyOgotICAgICAgICAgVU5BUlkoSXR5X0k2NCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0NtcEVRODogY2FzZSBJb3BfQ21wTkU4OgotICAgICAgY2FzZSBJb3BfQ2FzQ21wRVE4OiBjYXNlIElvcF9DYXNDbXBORTg6Ci0gICAgICAgICBDT01QQVJJU09OKEl0eV9JOCk7Ci0gICAgICBjYXNlIElvcF9DbXBFUTE2OiBjYXNlIElvcF9DbXBORTE2OgotICAgICAgY2FzZSBJb3BfQ2FzQ21wRVExNjogY2FzZSBJb3BfQ2FzQ21wTkUxNjoKLSAgICAgICAgIENPTVBBUklTT04oSXR5X0kxNik7Ci0gICAgICBjYXNlIElvcF9DbXBFUTMyOiBjYXNlIElvcF9DbXBORTMyOgotICAgICAgY2FzZSBJb3BfQ2FzQ21wRVEzMjogY2FzZSBJb3BfQ2FzQ21wTkUzMjoKLSAgICAgIGNhc2UgSW9wX0NtcExUMzJTOiBjYXNlIElvcF9DbXBMRTMyUzoKLSAgICAgIGNhc2UgSW9wX0NtcExUMzJVOiBjYXNlIElvcF9DbXBMRTMyVToKLSAgICAgICAgIENPTVBBUklTT04oSXR5X0kzMik7Ci0gICAgICBjYXNlIElvcF9DbXBFUTY0OiBjYXNlIElvcF9DbXBORTY0OgotICAgICAgY2FzZSBJb3BfQ2FzQ21wRVE2NDogY2FzZSBJb3BfQ2FzQ21wTkU2NDoKLSAgICAgIGNhc2UgSW9wX0NtcExUNjRTOiBjYXNlIElvcF9DbXBMRTY0UzoKLSAgICAgIGNhc2UgSW9wX0NtcExUNjRVOiBjYXNlIElvcF9DbXBMRTY0VToKLSAgICAgICAgIENPTVBBUklTT04oSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0NtcE5FWjg6ICBVTkFSWV9DT01QQVJJU09OKEl0eV9JOCk7Ci0gICAgICBjYXNlIElvcF9DbXBORVoxNjogVU5BUllfQ09NUEFSSVNPTihJdHlfSTE2KTsKLSAgICAgIGNhc2UgSW9wX0NtcE5FWjMyOiBVTkFSWV9DT01QQVJJU09OKEl0eV9JMzIpOwotICAgICAgY2FzZSBJb3BfQ21wTkVaNjQ6IFVOQVJZX0NPTVBBUklTT04oSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0xlZnQ4OiAgVU5BUlkoSXR5X0k4LCBJdHlfSTgpOwotICAgICAgY2FzZSBJb3BfTGVmdDE2OiBVTkFSWShJdHlfSTE2LEl0eV9JMTYpOwotICAgICAgY2FzZSBJb3BfQ21wd05FWjMyOiBjYXNlIElvcF9MZWZ0MzI6IFVOQVJZKEl0eV9JMzIsSXR5X0kzMik7Ci0gICAgICBjYXNlIElvcF9DbXB3TkVaNjQ6IGNhc2UgSW9wX0xlZnQ2NDogVU5BUlkoSXR5X0k2NCxJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfTXVsbFU4OiBjYXNlIElvcF9NdWxsUzg6Ci0gICAgICAgICBCSU5BUlkoSXR5X0k4LEl0eV9JOCwgSXR5X0kxNik7Ci0gICAgICBjYXNlIElvcF9NdWxsVTE2OiBjYXNlIElvcF9NdWxsUzE2OgotICAgICAgICAgQklOQVJZKEl0eV9JMTYsSXR5X0kxNiwgSXR5X0kzMik7Ci0gICAgICBjYXNlIElvcF9NdWxsVTMyOiBjYXNlIElvcF9NdWxsUzMyOgotICAgICAgICAgQklOQVJZKEl0eV9JMzIsSXR5X0kzMiwgSXR5X0k2NCk7Ci0gICAgICBjYXNlIElvcF9NdWxsVTY0OiBjYXNlIElvcF9NdWxsUzY0OgotICAgICAgICAgQklOQVJZKEl0eV9JNjQsSXR5X0k2NCwgSXR5X0kxMjgpOwotCi0gICAgICBjYXNlIElvcF9DbHozMjogY2FzZSBJb3BfQ3R6MzI6Ci0gICAgICAgICBVTkFSWShJdHlfSTMyLCBJdHlfSTMyKTsKLQotICAgICAgY2FzZSBJb3BfQ2x6NjQ6IGNhc2UgSW9wX0N0ejY0OgotICAgICAgICAgVU5BUlkoSXR5X0k2NCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0RpdlUzMjogY2FzZSBJb3BfRGl2UzMyOiBjYXNlIElvcF9EaXZVMzJFOiBjYXNlIElvcF9EaXZTMzJFOgotICAgICAgICAgQklOQVJZKEl0eV9JMzIsSXR5X0kzMiwgSXR5X0kzMik7Ci0KLSAgICAgIGNhc2UgSW9wX0RpdlU2NDogY2FzZSBJb3BfRGl2UzY0OiBjYXNlIElvcF9EaXZTNjRFOiBjYXNlIElvcF9EaXZVNjRFOgotICAgICAgICAgQklOQVJZKEl0eV9JNjQsSXR5X0k2NCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0Rpdk1vZFU2NHRvMzI6IGNhc2UgSW9wX0Rpdk1vZFM2NHRvMzI6Ci0gICAgICAgICBCSU5BUlkoSXR5X0k2NCxJdHlfSTMyLCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfRGl2TW9kVTEyOHRvNjQ6IGNhc2UgSW9wX0Rpdk1vZFMxMjh0bzY0OgotICAgICAgICAgQklOQVJZKEl0eV9JMTI4LEl0eV9JNjQsIEl0eV9JMTI4KTsKLQotICAgICAgY2FzZSBJb3BfRGl2TW9kUzY0dG82NDoKLSAgICAgICAgIEJJTkFSWShJdHlfSTY0LEl0eV9JNjQsIEl0eV9JMTI4KTsKLQotICAgICAgY2FzZSBJb3BfMTZISXRvODogY2FzZSBJb3BfMTZ0bzg6Ci0gICAgICAgICBVTkFSWShJdHlfSTE2LCBJdHlfSTgpOwotICAgICAgY2FzZSBJb3BfOEhMdG8xNjoKLSAgICAgICAgIEJJTkFSWShJdHlfSTgsSXR5X0k4LCBJdHlfSTE2KTsKLQotICAgICAgY2FzZSBJb3BfMzJISXRvMTY6IGNhc2UgSW9wXzMydG8xNjoKLSAgICAgICAgIFVOQVJZKEl0eV9JMzIsIEl0eV9JMTYpOwotICAgICAgY2FzZSBJb3BfMTZITHRvMzI6Ci0gICAgICAgICBCSU5BUlkoSXR5X0kxNixJdHlfSTE2LCBJdHlfSTMyKTsKLQotICAgICAgY2FzZSBJb3BfNjRISXRvMzI6IGNhc2UgSW9wXzY0dG8zMjoKLSAgICAgICAgIFVOQVJZKEl0eV9JNjQsIEl0eV9JMzIpOwotICAgICAgY2FzZSBJb3BfMzJITHRvNjQ6Ci0gICAgICAgICBCSU5BUlkoSXR5X0kzMixJdHlfSTMyLCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfMTI4SEl0bzY0OiBjYXNlIElvcF8xMjh0bzY0OgotICAgICAgICAgVU5BUlkoSXR5X0kxMjgsIEl0eV9JNjQpOwotICAgICAgY2FzZSBJb3BfNjRITHRvMTI4OgotICAgICAgICAgQklOQVJZKEl0eV9JNjQsSXR5X0k2NCwgSXR5X0kxMjgpOwotCi0gICAgICBjYXNlIElvcF9Ob3QxOiAgIFVOQVJZKEl0eV9JMSwgSXR5X0kxKTsKLSAgICAgIGNhc2UgSW9wXzFVdG84OiAgVU5BUlkoSXR5X0kxLCBJdHlfSTgpOwotICAgICAgY2FzZSBJb3BfMVN0bzg6ICBVTkFSWShJdHlfSTEsIEl0eV9JOCk7Ci0gICAgICBjYXNlIElvcF8xU3RvMTY6IFVOQVJZKEl0eV9JMSwgSXR5X0kxNik7Ci0gICAgICBjYXNlIElvcF8xVXRvMzI6IGNhc2UgSW9wXzFTdG8zMjogVU5BUlkoSXR5X0kxLCBJdHlfSTMyKTsKLSAgICAgIGNhc2UgSW9wXzFTdG82NDogY2FzZSBJb3BfMVV0bzY0OiBVTkFSWShJdHlfSTEsIEl0eV9JNjQpOwotICAgICAgY2FzZSBJb3BfMzJ0bzE6ICBVTkFSWShJdHlfSTMyLCBJdHlfSTEpOwotICAgICAgY2FzZSBJb3BfNjR0bzE6ICBVTkFSWShJdHlfSTY0LCBJdHlfSTEpOwotCi0gICAgICBjYXNlIElvcF84VXRvMzI6IGNhc2UgSW9wXzhTdG8zMjoKLSAgICAgICAgIFVOQVJZKEl0eV9JOCwgSXR5X0kzMik7Ci0KLSAgICAgIGNhc2UgSW9wXzhVdG8xNjogY2FzZSBJb3BfOFN0bzE2OgotICAgICAgICAgVU5BUlkoSXR5X0k4LCBJdHlfSTE2KTsKLQotICAgICAgY2FzZSBJb3BfMTZVdG8zMjogY2FzZSBJb3BfMTZTdG8zMjogCi0gICAgICAgICBVTkFSWShJdHlfSTE2LCBJdHlfSTMyKTsKLQotICAgICAgY2FzZSBJb3BfMzJTdG82NDogY2FzZSBJb3BfMzJVdG82NDoKLSAgICAgICAgIFVOQVJZKEl0eV9JMzIsIEl0eV9JNjQpOwotCi0gICAgICBjYXNlIElvcF84VXRvNjQ6IGNhc2UgSW9wXzhTdG82NDoKLSAgICAgICAgIFVOQVJZKEl0eV9JOCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wXzE2VXRvNjQ6IGNhc2UgSW9wXzE2U3RvNjQ6Ci0gICAgICAgICBVTkFSWShJdHlfSTE2LCBJdHlfSTY0KTsKLSAgICAgIGNhc2UgSW9wXzY0dG8xNjoKLSAgICAgICAgIFVOQVJZKEl0eV9JNjQsIEl0eV9JMTYpOwotCi0gICAgICBjYXNlIElvcF8zMnRvODogVU5BUlkoSXR5X0kzMiwgSXR5X0k4KTsKLSAgICAgIGNhc2UgSW9wXzY0dG84OiBVTkFSWShJdHlfSTY0LCBJdHlfSTgpOwotCi0gICAgICBjYXNlIElvcF9BZGRGNjQ6ICAgIGNhc2UgSW9wX1N1YkY2NDogCi0gICAgICBjYXNlIElvcF9NdWxGNjQ6ICAgIGNhc2UgSW9wX0RpdkY2NDoKLSAgICAgIGNhc2UgSW9wX0FkZEY2NHIzMjogY2FzZSBJb3BfU3ViRjY0cjMyOiAKLSAgICAgIGNhc2UgSW9wX011bEY2NHIzMjogY2FzZSBJb3BfRGl2RjY0cjMyOgotICAgICAgICAgVEVSTkFSWShpdHlfUk1vZGUsSXR5X0Y2NCxJdHlfRjY0LCBJdHlfRjY0KTsKLQotICAgICAgY2FzZSBJb3BfQWRkRjMyOiBjYXNlIElvcF9TdWJGMzI6Ci0gICAgICBjYXNlIElvcF9NdWxGMzI6IGNhc2UgSW9wX0RpdkYzMjoKLSAgICAgICAgIFRFUk5BUlkoaXR5X1JNb2RlLEl0eV9GMzIsSXR5X0YzMiwgSXR5X0YzMik7Ci0KLSAgICAgIGNhc2UgSW9wX05lZ0Y2NDogY2FzZSBJb3BfQWJzRjY0OiAKLSAgICAgICAgIFVOQVJZKEl0eV9GNjQsIEl0eV9GNjQpOwotCi0gICAgICBjYXNlIElvcF9OZWdGMzI6IGNhc2UgSW9wX0Fic0YzMjoKLSAgICAgICAgIFVOQVJZKEl0eV9GMzIsIEl0eV9GMzIpOwotCi0gICAgICBjYXNlIElvcF9TcXJ0RjY0OgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSxJdHlfRjY0LCBJdHlfRjY0KTsKLQotICAgICAgY2FzZSBJb3BfU3FydEYzMjoKLSAgICAgIGNhc2UgSW9wX1JvdW5kRjMydG9JbnQ6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLEl0eV9GMzIsIEl0eV9GMzIpOwotCi0gICAgICBjYXNlIElvcF9DbXBGMzI6Ci0gICAgICAgICBCSU5BUlkoSXR5X0YzMixJdHlfRjMyLCBJdHlfSTMyKTsKLQotICAgICAgY2FzZSBJb3BfQ21wRjY0OgotICAgICAgICAgQklOQVJZKEl0eV9GNjQsSXR5X0Y2NCwgSXR5X0kzMik7Ci0KLSAgICAgIGNhc2UgSW9wX0NtcEYxMjg6Ci0gICAgICAgICBCSU5BUlkoSXR5X0YxMjgsSXR5X0YxMjgsIEl0eV9JMzIpOwotCi0gICAgICBjYXNlIElvcF9GNjR0b0kxNlM6IEJJTkFSWShpdHlfUk1vZGUsSXR5X0Y2NCwgSXR5X0kxNik7Ci0gICAgICBjYXNlIElvcF9GNjR0b0kzMlM6IEJJTkFSWShpdHlfUk1vZGUsSXR5X0Y2NCwgSXR5X0kzMik7Ci0gICAgICBjYXNlIElvcF9GNjR0b0k2NFM6IGNhc2UgSW9wX0Y2NHRvSTY0VToKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsSXR5X0Y2NCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0Y2NHRvSTMyVTogQklOQVJZKGl0eV9STW9kZSxJdHlfRjY0LCBJdHlfSTMyKTsKLQotICAgICAgY2FzZSBJb3BfSTMyU3RvRjY0OiBVTkFSWShJdHlfSTMyLCBJdHlfRjY0KTsKLSAgICAgIGNhc2UgSW9wX0k2NFN0b0Y2NDogQklOQVJZKGl0eV9STW9kZSxJdHlfSTY0LCBJdHlfRjY0KTsKLSAgICAgIGNhc2UgSW9wX0k2NFV0b0Y2NDogQklOQVJZKGl0eV9STW9kZSxJdHlfSTY0LCBJdHlfRjY0KTsKLSAgICAgIGNhc2UgSW9wX0k2NFV0b0YzMjogQklOQVJZKGl0eV9STW9kZSxJdHlfSTY0LCBJdHlfRjMyKTsKLQotICAgICAgY2FzZSBJb3BfSTMyVXRvRjY0OiBVTkFSWShJdHlfSTMyLCBJdHlfRjY0KTsKLQotICAgICAgY2FzZSBJb3BfRjMydG9JMzJTOiBCSU5BUlkoaXR5X1JNb2RlLEl0eV9GMzIsIEl0eV9JMzIpOwotICAgICAgY2FzZSBJb3BfRjMydG9JNjRTOiBCSU5BUlkoaXR5X1JNb2RlLEl0eV9GMzIsIEl0eV9JNjQpOwotICAgICAgY2FzZSBJb3BfRjMydG9JMzJVOiBCSU5BUlkoaXR5X1JNb2RlLEl0eV9GMzIsIEl0eV9JMzIpOwotICAgICAgY2FzZSBJb3BfRjMydG9JNjRVOiBCSU5BUlkoaXR5X1JNb2RlLEl0eV9GMzIsIEl0eV9JNjQpOwotIAotICAgICAgY2FzZSBJb3BfSTMyVXRvRjMyOiBCSU5BUlkoaXR5X1JNb2RlLEl0eV9JMzIsIEl0eV9GMzIpOwotICAgICAgY2FzZSBJb3BfSTMyU3RvRjMyOiBCSU5BUlkoaXR5X1JNb2RlLEl0eV9JMzIsIEl0eV9GMzIpOwotICAgICAgY2FzZSBJb3BfSTY0U3RvRjMyOiBCSU5BUlkoaXR5X1JNb2RlLEl0eV9JNjQsIEl0eV9GMzIpOwotCi0gICAgICBjYXNlIElvcF9GMzJ0b0Y2NDogVU5BUlkoSXR5X0YzMiwgSXR5X0Y2NCk7Ci0gICAgICBjYXNlIElvcF9GNjR0b0YzMjogQklOQVJZKGl0eV9STW9kZSxJdHlfRjY0LCBJdHlfRjMyKTsKLQotICAgICAgY2FzZSBJb3BfUmVpbnRlcnBJNjRhc0Y2NDogVU5BUlkoSXR5X0k2NCwgSXR5X0Y2NCk7Ci0gICAgICBjYXNlIElvcF9SZWludGVycEY2NGFzSTY0OiBVTkFSWShJdHlfRjY0LCBJdHlfSTY0KTsKLSAgICAgIGNhc2UgSW9wX1JlaW50ZXJwSTMyYXNGMzI6IFVOQVJZKEl0eV9JMzIsIEl0eV9GMzIpOwotICAgICAgY2FzZSBJb3BfUmVpbnRlcnBGMzJhc0kzMjogVU5BUlkoSXR5X0YzMiwgSXR5X0kzMik7Ci0KLSAgICAgIGNhc2UgSW9wX0F0YW5GNjQ6IGNhc2UgSW9wX1lsMnhGNjQ6ICBjYXNlIElvcF9ZbDJ4cDFGNjQ6IAotICAgICAgY2FzZSBJb3BfU2NhbGVGNjQ6IGNhc2UgSW9wX1BSZW1GNjQ6IGNhc2UgSW9wX1BSZW0xRjY0OgotICAgICAgICAgVEVSTkFSWShpdHlfUk1vZGUsSXR5X0Y2NCxJdHlfRjY0LCBJdHlfRjY0KTsKLQotICAgICAgY2FzZSBJb3BfUFJlbUMzMjEwRjY0OiBjYXNlIElvcF9QUmVtMUMzMjEwRjY0OgotICAgICAgICAgVEVSTkFSWShpdHlfUk1vZGUsSXR5X0Y2NCxJdHlfRjY0LCBJdHlfSTMyKTsKLQotICAgICAgY2FzZSBJb3BfU2luRjY0OiBjYXNlIElvcF9Db3NGNjQ6IGNhc2UgSW9wX1RhbkY2NDogCi0gICAgICBjYXNlIElvcF8yeG0xRjY0OgotICAgICAgY2FzZSBJb3BfUm91bmRGNjR0b0ludDogQklOQVJZKGl0eV9STW9kZSxJdHlfRjY0LCBJdHlfRjY0KTsKLQotICAgICAgY2FzZSBJb3BfTUFkZEY2NDogY2FzZSBJb3BfTVN1YkY2NDoKLSAgICAgIGNhc2UgSW9wX01BZGRGNjRyMzI6IGNhc2UgSW9wX01TdWJGNjRyMzI6Ci0gICAgICAgICBRVUFURVJOQVJZKGl0eV9STW9kZSxJdHlfRjY0LEl0eV9GNjQsSXR5X0Y2NCwgSXR5X0Y2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX1JTcXJ0RXN0NUdvb2RGNjQ6Ci0gICAgICBjYXNlIElvcF9Sb3VuZEY2NHRvRjY0X05FQVJFU1Q6IGNhc2UgSW9wX1JvdW5kRjY0dG9GNjRfTmVnSU5GOgotICAgICAgY2FzZSBJb3BfUm91bmRGNjR0b0Y2NF9Qb3NJTkY6IGNhc2UgSW9wX1JvdW5kRjY0dG9GNjRfWkVSTzoKLSAgICAgICAgIFVOQVJZKEl0eV9GNjQsIEl0eV9GNjQpOwotICAgICAgY2FzZSBJb3BfUm91bmRGNjR0b0YzMjoKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsSXR5X0Y2NCwgSXR5X0Y2NCk7Ci0gICAgICBjYXNlIElvcF9UcnVuY0Y2NGFzRjMyOgotICAgICAgICAgVU5BUlkoSXR5X0Y2NCwgSXR5X0YzMik7Ci0KLSAgICAgIGNhc2UgSW9wX0kzMlV0b0Z4NDoKLSAgICAgIGNhc2UgSW9wX0kzMlN0b0Z4NDoKLSAgICAgIGNhc2UgSW9wX1FGdG9JMzJVeDRfUlo6Ci0gICAgICBjYXNlIElvcF9RRnRvSTMyU3g0X1JaOgotICAgICAgY2FzZSBJb3BfRnRvSTMyVXg0X1JaOgotICAgICAgY2FzZSBJb3BfRnRvSTMyU3g0X1JaOgotICAgICAgY2FzZSBJb3BfUm91bmRGMzJ4NF9STToKLSAgICAgIGNhc2UgSW9wX1JvdW5kRjMyeDRfUlA6Ci0gICAgICBjYXNlIElvcF9Sb3VuZEYzMng0X1JOOgotICAgICAgY2FzZSBJb3BfUm91bmRGMzJ4NF9SWjoKLSAgICAgIGNhc2UgSW9wX0FiczMyRng0OgotICAgICAgY2FzZSBJb3BfUlNxcnRFc3QzMkZ4NDoKLSAgICAgIGNhc2UgSW9wX1JTcXJ0RXN0MzJVeDQ6Ci0gICAgICAgICBVTkFSWShJdHlfVjEyOCwgSXR5X1YxMjgpOwotCi0gICAgICBjYXNlIElvcF82NEhMdG9WMTI4OgotICAgICAgICAgQklOQVJZKEl0eV9JNjQsSXR5X0k2NCwgSXR5X1YxMjgpOwotCi0gICAgICBjYXNlIElvcF9WMTI4dG82NDogY2FzZSBJb3BfVjEyOEhJdG82NDoKLSAgICAgIGNhc2UgSW9wX05hcnJvd1VuMTZ0bzh4ODoKLSAgICAgIGNhc2UgSW9wX05hcnJvd1VuMzJ0bzE2eDQ6Ci0gICAgICBjYXNlIElvcF9OYXJyb3dVbjY0dG8zMngyOgotICAgICAgY2FzZSBJb3BfUU5hcnJvd1VuMTZVdG84VXg4OgotICAgICAgY2FzZSBJb3BfUU5hcnJvd1VuMzJVdG8xNlV4NDoKLSAgICAgIGNhc2UgSW9wX1FOYXJyb3dVbjY0VXRvMzJVeDI6Ci0gICAgICBjYXNlIElvcF9RTmFycm93VW4xNlN0bzhTeDg6Ci0gICAgICBjYXNlIElvcF9RTmFycm93VW4zMlN0bzE2U3g0OgotICAgICAgY2FzZSBJb3BfUU5hcnJvd1VuNjRTdG8zMlN4MjoKLSAgICAgIGNhc2UgSW9wX1FOYXJyb3dVbjE2U3RvOFV4ODoKLSAgICAgIGNhc2UgSW9wX1FOYXJyb3dVbjMyU3RvMTZVeDQ6Ci0gICAgICBjYXNlIElvcF9RTmFycm93VW42NFN0bzMyVXgyOgotICAgICAgY2FzZSBJb3BfRjMydG9GMTZ4NDoKLSAgICAgICAgIFVOQVJZKEl0eV9WMTI4LCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfV2lkZW44VXRvMTZ4ODoKLSAgICAgIGNhc2UgSW9wX1dpZGVuMTZVdG8zMng0OgotICAgICAgY2FzZSBJb3BfV2lkZW4zMlV0bzY0eDI6Ci0gICAgICBjYXNlIElvcF9XaWRlbjhTdG8xNng4OgotICAgICAgY2FzZSBJb3BfV2lkZW4xNlN0bzMyeDQ6Ci0gICAgICBjYXNlIElvcF9XaWRlbjMyU3RvNjR4MjoKLSAgICAgIGNhc2UgSW9wX0YxNnRvRjMyeDQ6Ci0gICAgICAgICBVTkFSWShJdHlfSTY0LCBJdHlfVjEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX1YxMjh0bzMyOiAgICBVTkFSWShJdHlfVjEyOCwgSXR5X0kzMik7Ci0gICAgICBjYXNlIElvcF8zMlV0b1YxMjg6ICAgVU5BUlkoSXR5X0kzMiwgSXR5X1YxMjgpOwotICAgICAgY2FzZSBJb3BfNjRVdG9WMTI4OiAgIFVOQVJZKEl0eV9JNjQsIEl0eV9WMTI4KTsKLSAgICAgIGNhc2UgSW9wX1NldFYxMjhsbzMyOiBCSU5BUlkoSXR5X1YxMjgsSXR5X0kzMiwgSXR5X1YxMjgpOwotICAgICAgY2FzZSBJb3BfU2V0VjEyOGxvNjQ6IEJJTkFSWShJdHlfVjEyOCxJdHlfSTY0LCBJdHlfVjEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX0R1cDh4MTY6IFVOQVJZKEl0eV9JOCwgSXR5X1YxMjgpOwotICAgICAgY2FzZSBJb3BfRHVwMTZ4ODogVU5BUlkoSXR5X0kxNiwgSXR5X1YxMjgpOwotICAgICAgY2FzZSBJb3BfRHVwMzJ4NDogVU5BUlkoSXR5X0kzMiwgSXR5X1YxMjgpOwotICAgICAgY2FzZSBJb3BfRHVwOHg4OiAgVU5BUlkoSXR5X0k4LCBJdHlfSTY0KTsKLSAgICAgIGNhc2UgSW9wX0R1cDE2eDQ6IFVOQVJZKEl0eV9JMTYsIEl0eV9JNjQpOwotICAgICAgY2FzZSBJb3BfRHVwMzJ4MjogVU5BUlkoSXR5X0kzMiwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0NtcEVRMzJGeDQ6IGNhc2UgSW9wX0NtcExUMzJGeDQ6Ci0gICAgICBjYXNlIElvcF9DbXBFUTY0RngyOiBjYXNlIElvcF9DbXBMVDY0RngyOgotICAgICAgY2FzZSBJb3BfQ21wTEUzMkZ4NDogY2FzZSBJb3BfQ21wVU4zMkZ4NDoKLSAgICAgIGNhc2UgSW9wX0NtcExFNjRGeDI6IGNhc2UgSW9wX0NtcFVONjRGeDI6Ci0gICAgICBjYXNlIElvcF9DbXBHVDMyRng0OiBjYXNlIElvcF9DbXBHRTMyRng0OgotICAgICAgY2FzZSBJb3BfQ21wRVEzMkYweDQ6IGNhc2UgSW9wX0NtcExUMzJGMHg0OgotICAgICAgY2FzZSBJb3BfQ21wRVE2NEYweDI6IGNhc2UgSW9wX0NtcExUNjRGMHgyOgotICAgICAgY2FzZSBJb3BfQ21wTEUzMkYweDQ6IGNhc2UgSW9wX0NtcFVOMzJGMHg0OgotICAgICAgY2FzZSBJb3BfQ21wTEU2NEYweDI6IGNhc2UgSW9wX0NtcFVONjRGMHgyOgotICAgICAgY2FzZSBJb3BfQWRkMzJGeDQ6IGNhc2UgSW9wX0FkZDMyRjB4NDoKLSAgICAgIGNhc2UgSW9wX0FkZDY0RngyOiBjYXNlIElvcF9BZGQ2NEYweDI6Ci0gICAgICBjYXNlIElvcF9EaXYzMkZ4NDogY2FzZSBJb3BfRGl2MzJGMHg0OgotICAgICAgY2FzZSBJb3BfRGl2NjRGeDI6IGNhc2UgSW9wX0RpdjY0RjB4MjoKLSAgICAgIGNhc2UgSW9wX01heDMyRng0OiBjYXNlIElvcF9NYXgzMkYweDQ6Ci0gICAgICBjYXNlIElvcF9Qd01heDMyRng0OiBjYXNlIElvcF9Qd01pbjMyRng0OgotICAgICAgY2FzZSBJb3BfTWF4NjRGeDI6IGNhc2UgSW9wX01heDY0RjB4MjoKLSAgICAgIGNhc2UgSW9wX01pbjMyRng0OiBjYXNlIElvcF9NaW4zMkYweDQ6Ci0gICAgICBjYXNlIElvcF9NaW42NEZ4MjogY2FzZSBJb3BfTWluNjRGMHgyOgotICAgICAgY2FzZSBJb3BfTXVsMzJGeDQ6IGNhc2UgSW9wX011bDMyRjB4NDoKLSAgICAgIGNhc2UgSW9wX011bDY0RngyOiBjYXNlIElvcF9NdWw2NEYweDI6Ci0gICAgICBjYXNlIElvcF9TdWIzMkZ4NDogY2FzZSBJb3BfU3ViMzJGMHg0OgotICAgICAgY2FzZSBJb3BfU3ViNjRGeDI6IGNhc2UgSW9wX1N1YjY0RjB4MjoKLSAgICAgIGNhc2UgSW9wX0FuZFYxMjg6IGNhc2UgSW9wX09yVjEyODogY2FzZSBJb3BfWG9yVjEyODoKLSAgICAgIGNhc2UgSW9wX0FkZDh4MTY6ICAgY2FzZSBJb3BfQWRkMTZ4ODogICAKLSAgICAgIGNhc2UgSW9wX0FkZDMyeDQ6ICAgY2FzZSBJb3BfQWRkNjR4MjoKLSAgICAgIGNhc2UgSW9wX1FBZGQ4VXgxNjogY2FzZSBJb3BfUUFkZDE2VXg4OgotICAgICAgY2FzZSBJb3BfUUFkZDMyVXg0OiAvL2Nhc2UgSW9wX1FBZGQ2NFV4MjoKLSAgICAgIGNhc2UgSW9wX1FBZGQ4U3gxNjogY2FzZSBJb3BfUUFkZDE2U3g4OgotICAgICAgY2FzZSBJb3BfUUFkZDMyU3g0OiBjYXNlIElvcF9RQWRkNjRTeDI6Ci0gICAgICBjYXNlIElvcF9Qd0FkZDh4MTY6IGNhc2UgSW9wX1B3QWRkMTZ4ODogY2FzZSBJb3BfUHdBZGQzMng0OgotICAgICAgY2FzZSBJb3BfU3ViOHgxNjogICBjYXNlIElvcF9TdWIxNng4OgotICAgICAgY2FzZSBJb3BfU3ViMzJ4NDogICBjYXNlIElvcF9TdWI2NHgyOgotICAgICAgY2FzZSBJb3BfUVN1YjhVeDE2OiBjYXNlIElvcF9RU3ViMTZVeDg6Ci0gICAgICBjYXNlIElvcF9RU3ViMzJVeDQ6IC8vY2FzZSBJb3BfUVN1YjY0VXgyOgotICAgICAgY2FzZSBJb3BfUVN1YjhTeDE2OiBjYXNlIElvcF9RU3ViMTZTeDg6Ci0gICAgICBjYXNlIElvcF9RU3ViMzJTeDQ6IGNhc2UgSW9wX1FTdWI2NFN4MjoKLSAgICAgIGNhc2UgSW9wX011bDh4MTY6IGNhc2UgSW9wX011bDE2eDg6IGNhc2UgSW9wX011bDMyeDQ6Ci0gICAgICBjYXNlIElvcF9Qb2x5bm9taWFsTXVsOHgxNjoKLSAgICAgIGNhc2UgSW9wX011bEhpMTZVeDg6IGNhc2UgSW9wX011bEhpMzJVeDQ6IAotICAgICAgY2FzZSBJb3BfTXVsSGkxNlN4ODogY2FzZSBJb3BfTXVsSGkzMlN4NDogCi0gICAgICBjYXNlIElvcF9RRE11bEhpMTZTeDg6IGNhc2UgSW9wX1FETXVsSGkzMlN4NDoKLSAgICAgIGNhc2UgSW9wX1FSRE11bEhpMTZTeDg6IGNhc2UgSW9wX1FSRE11bEhpMzJTeDQ6Ci0gICAgICBjYXNlIElvcF9NdWxsRXZlbjhVeDE2OiBjYXNlIElvcF9NdWxsRXZlbjE2VXg4OgotICAgICAgY2FzZSBJb3BfTXVsbEV2ZW44U3gxNjogY2FzZSBJb3BfTXVsbEV2ZW4xNlN4ODoKLSAgICAgIGNhc2UgSW9wX0F2ZzhVeDE2OiBjYXNlIElvcF9BdmcxNlV4ODogY2FzZSBJb3BfQXZnMzJVeDQ6Ci0gICAgICBjYXNlIElvcF9Bdmc4U3gxNjogY2FzZSBJb3BfQXZnMTZTeDg6IGNhc2UgSW9wX0F2ZzMyU3g0OgotICAgICAgY2FzZSBJb3BfTWF4OFN4MTY6IGNhc2UgSW9wX01heDE2U3g4OiBjYXNlIElvcF9NYXgzMlN4NDoKLSAgICAgIGNhc2UgSW9wX01heDhVeDE2OiBjYXNlIElvcF9NYXgxNlV4ODogY2FzZSBJb3BfTWF4MzJVeDQ6Ci0gICAgICBjYXNlIElvcF9NaW44U3gxNjogY2FzZSBJb3BfTWluMTZTeDg6IGNhc2UgSW9wX01pbjMyU3g0OgotICAgICAgY2FzZSBJb3BfTWluOFV4MTY6IGNhc2UgSW9wX01pbjE2VXg4OiBjYXNlIElvcF9NaW4zMlV4NDoKLSAgICAgIGNhc2UgSW9wX0NtcEVROHgxNjogIGNhc2UgSW9wX0NtcEVRMTZ4ODogIGNhc2UgSW9wX0NtcEVRMzJ4NDoKLSAgICAgIGNhc2UgSW9wX0NtcEVRNjR4MjoKLSAgICAgIGNhc2UgSW9wX0NtcEdUOFN4MTY6IGNhc2UgSW9wX0NtcEdUMTZTeDg6IGNhc2UgSW9wX0NtcEdUMzJTeDQ6Ci0gICAgICBjYXNlIElvcF9DbXBHVDY0U3gyOgotICAgICAgY2FzZSBJb3BfQ21wR1Q4VXgxNjogY2FzZSBJb3BfQ21wR1QxNlV4ODogY2FzZSBJb3BfQ21wR1QzMlV4NDoKLSAgICAgIGNhc2UgSW9wX1NobDh4MTY6IGNhc2UgSW9wX1NobDE2eDg6IGNhc2UgSW9wX1NobDMyeDQ6IGNhc2UgSW9wX1NobDY0eDI6Ci0gICAgICBjYXNlIElvcF9RU2hsOHgxNjogY2FzZSBJb3BfUVNobDE2eDg6Ci0gICAgICBjYXNlIElvcF9RU2hsMzJ4NDogY2FzZSBJb3BfUVNobDY0eDI6Ci0gICAgICBjYXNlIElvcF9RU2FsOHgxNjogY2FzZSBJb3BfUVNhbDE2eDg6Ci0gICAgICBjYXNlIElvcF9RU2FsMzJ4NDogY2FzZSBJb3BfUVNhbDY0eDI6Ci0gICAgICBjYXNlIElvcF9TaHI4eDE2OiBjYXNlIElvcF9TaHIxNng4OiBjYXNlIElvcF9TaHIzMng0OiBjYXNlIElvcF9TaHI2NHgyOgotICAgICAgY2FzZSBJb3BfU2FyOHgxNjogY2FzZSBJb3BfU2FyMTZ4ODogY2FzZSBJb3BfU2FyMzJ4NDogY2FzZSBJb3BfU2FyNjR4MjoKLSAgICAgIGNhc2UgSW9wX1NhbDh4MTY6IGNhc2UgSW9wX1NhbDE2eDg6IGNhc2UgSW9wX1NhbDMyeDQ6IGNhc2UgSW9wX1NhbDY0eDI6Ci0gICAgICBjYXNlIElvcF9Sb2w4eDE2OiBjYXNlIElvcF9Sb2wxNng4OiBjYXNlIElvcF9Sb2wzMng0OgotICAgICAgY2FzZSBJb3BfUU5hcnJvd0JpbjE2U3RvOFV4MTY6IGNhc2UgSW9wX1FOYXJyb3dCaW4zMlN0bzE2VXg4OgotICAgICAgY2FzZSBJb3BfUU5hcnJvd0JpbjE2U3RvOFN4MTY6IGNhc2UgSW9wX1FOYXJyb3dCaW4zMlN0bzE2U3g4OgotICAgICAgY2FzZSBJb3BfUU5hcnJvd0JpbjE2VXRvOFV4MTY6IGNhc2UgSW9wX1FOYXJyb3dCaW4zMlV0bzE2VXg4OgotICAgICAgY2FzZSBJb3BfTmFycm93QmluMTZ0bzh4MTY6ICAgY2FzZSBJb3BfTmFycm93QmluMzJ0bzE2eDg6Ci0gICAgICBjYXNlIElvcF9JbnRlcmxlYXZlSEk4eDE2OiBjYXNlIElvcF9JbnRlcmxlYXZlSEkxNng4OgotICAgICAgY2FzZSBJb3BfSW50ZXJsZWF2ZUhJMzJ4NDogY2FzZSBJb3BfSW50ZXJsZWF2ZUhJNjR4MjoKLSAgICAgIGNhc2UgSW9wX0ludGVybGVhdmVMTzh4MTY6IGNhc2UgSW9wX0ludGVybGVhdmVMTzE2eDg6Ci0gICAgICBjYXNlIElvcF9JbnRlcmxlYXZlTE8zMng0OiBjYXNlIElvcF9JbnRlcmxlYXZlTE82NHgyOgotICAgICAgY2FzZSBJb3BfQ2F0T2RkTGFuZXM4eDE2OiBjYXNlIElvcF9DYXRFdmVuTGFuZXM4eDE2OgotICAgICAgY2FzZSBJb3BfQ2F0T2RkTGFuZXMxNng4OiBjYXNlIElvcF9DYXRFdmVuTGFuZXMxNng4OgotICAgICAgY2FzZSBJb3BfQ2F0T2RkTGFuZXMzMng0OiBjYXNlIElvcF9DYXRFdmVuTGFuZXMzMng0OgotICAgICAgY2FzZSBJb3BfSW50ZXJsZWF2ZU9kZExhbmVzOHgxNjogY2FzZSBJb3BfSW50ZXJsZWF2ZUV2ZW5MYW5lczh4MTY6Ci0gICAgICBjYXNlIElvcF9JbnRlcmxlYXZlT2RkTGFuZXMxNng4OiBjYXNlIElvcF9JbnRlcmxlYXZlRXZlbkxhbmVzMTZ4ODoKLSAgICAgIGNhc2UgSW9wX0ludGVybGVhdmVPZGRMYW5lczMyeDQ6IGNhc2UgSW9wX0ludGVybGVhdmVFdmVuTGFuZXMzMng0OgotICAgICAgY2FzZSBJb3BfUGVybTh4MTY6IGNhc2UgSW9wX1Blcm0zMng0OgotICAgICAgY2FzZSBJb3BfUmVjaXBTdGVwMzJGeDQ6Ci0gICAgICBjYXNlIElvcF9SU3FydFN0ZXAzMkZ4NDoKLSAgICAgICAgIEJJTkFSWShJdHlfVjEyOCxJdHlfVjEyOCwgSXR5X1YxMjgpOwotCi0gICAgICBjYXNlIElvcF9Qb2x5bm9taWFsTXVsbDh4ODoKLSAgICAgIGNhc2UgSW9wX011bGw4VXg4OiBjYXNlIElvcF9NdWxsOFN4ODoKLSAgICAgIGNhc2UgSW9wX011bGwxNlV4NDogY2FzZSBJb3BfTXVsbDE2U3g0OgotICAgICAgY2FzZSBJb3BfTXVsbDMyVXgyOiBjYXNlIElvcF9NdWxsMzJTeDI6Ci0gICAgICAgICBCSU5BUlkoSXR5X0k2NCwgSXR5X0k2NCwgSXR5X1YxMjgpOwotCi0gICAgICBjYXNlIElvcF9Ob3RWMTI4OgotICAgICAgY2FzZSBJb3BfUmVjaXBFc3QzMkZ4NDogY2FzZSBJb3BfUmVjaXBFc3QzMkYweDQ6Ci0gICAgICBjYXNlIElvcF9SZWNpcEVzdDMyVXg0OgotICAgICAgY2FzZSBJb3BfUlNxcnRFc3QzMkYweDQ6Ci0gICAgICBjYXNlIElvcF9TcXJ0MzJGeDQ6ICBjYXNlIElvcF9TcXJ0MzJGMHg0OgotICAgICAgY2FzZSBJb3BfU3FydDY0RngyOiAgY2FzZSBJb3BfU3FydDY0RjB4MjoKLSAgICAgIGNhc2UgSW9wX0NtcE5FWjh4MTY6IGNhc2UgSW9wX0NtcE5FWjE2eDg6Ci0gICAgICBjYXNlIElvcF9DbXBORVozMng0OiBjYXNlIElvcF9DbXBORVo2NHgyOgotICAgICAgY2FzZSBJb3BfQ250OHgxNjoKLSAgICAgIGNhc2UgSW9wX0Nsejh4MTY6IGNhc2UgSW9wX0NsejE2eDg6IGNhc2UgSW9wX0NsejMyeDQ6Ci0gICAgICBjYXNlIElvcF9DbHM4eDE2OiBjYXNlIElvcF9DbHMxNng4OiBjYXNlIElvcF9DbHMzMng0OgotICAgICAgY2FzZSBJb3BfUHdBZGRMOFV4MTY6IGNhc2UgSW9wX1B3QWRkTDE2VXg4OiBjYXNlIElvcF9Qd0FkZEwzMlV4NDoKLSAgICAgIGNhc2UgSW9wX1B3QWRkTDhTeDE2OiBjYXNlIElvcF9Qd0FkZEwxNlN4ODogY2FzZSBJb3BfUHdBZGRMMzJTeDQ6Ci0gICAgICBjYXNlIElvcF9SZXZlcnNlOHNJbjY0X3gyOiBjYXNlIElvcF9SZXZlcnNlMTZzSW42NF94MjoKLSAgICAgIGNhc2UgSW9wX1JldmVyc2UzMnNJbjY0X3gyOgotICAgICAgY2FzZSBJb3BfUmV2ZXJzZThzSW4zMl94NDogY2FzZSBJb3BfUmV2ZXJzZTE2c0luMzJfeDQ6Ci0gICAgICBjYXNlIElvcF9SZXZlcnNlOHNJbjE2X3g4OgotICAgICAgY2FzZSBJb3BfTmVnMzJGeDQ6Ci0gICAgICBjYXNlIElvcF9BYnM4eDE2OiBjYXNlIElvcF9BYnMxNng4OiBjYXNlIElvcF9BYnMzMng0OgotICAgICAgICAgVU5BUlkoSXR5X1YxMjgsIEl0eV9WMTI4KTsKLQotICAgICAgY2FzZSBJb3BfU2hsVjEyODogY2FzZSBJb3BfU2hyVjEyODoKLSAgICAgIGNhc2UgSW9wX1NobE44eDE2OiBjYXNlIElvcF9TaGxOMTZ4ODogCi0gICAgICBjYXNlIElvcF9TaGxOMzJ4NDogY2FzZSBJb3BfU2hsTjY0eDI6Ci0gICAgICBjYXNlIElvcF9TaHJOOHgxNjogY2FzZSBJb3BfU2hyTjE2eDg6IAotICAgICAgY2FzZSBJb3BfU2hyTjMyeDQ6IGNhc2UgSW9wX1Nock42NHgyOgotICAgICAgY2FzZSBJb3BfU2FyTjh4MTY6IGNhc2UgSW9wX1Nhck4xNng4OgotICAgICAgY2FzZSBJb3BfU2FyTjMyeDQ6IGNhc2UgSW9wX1Nhck42NHgyOgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRVVTh4MTY6IGNhc2UgSW9wX1FTaGxOc2F0VVUxNng4OgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRVVTMyeDQ6IGNhc2UgSW9wX1FTaGxOc2F0VVU2NHgyOgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRTVTh4MTY6IGNhc2UgSW9wX1FTaGxOc2F0U1UxNng4OgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRTVTMyeDQ6IGNhc2UgSW9wX1FTaGxOc2F0U1U2NHgyOgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRTUzh4MTY6IGNhc2UgSW9wX1FTaGxOc2F0U1MxNng4OgotICAgICAgY2FzZSBJb3BfUVNobE5zYXRTUzMyeDQ6IGNhc2UgSW9wX1FTaGxOc2F0U1M2NHgyOgotICAgICAgICAgQklOQVJZKEl0eV9WMTI4LEl0eV9JOCwgSXR5X1YxMjgpOwotCi0gICAgICBjYXNlIElvcF9GMzJUb0ZpeGVkMzJVeDRfUlo6Ci0gICAgICBjYXNlIElvcF9GMzJUb0ZpeGVkMzJTeDRfUlo6Ci0gICAgICBjYXNlIElvcF9GaXhlZDMyVVRvRjMyeDRfUk46Ci0gICAgICBjYXNlIElvcF9GaXhlZDMyU1RvRjMyeDRfUk46Ci0gICAgICAgICBCSU5BUlkoSXR5X1YxMjgsIEl0eV9JOCwgSXR5X1YxMjgpOwotCi0gICAgICBjYXNlIElvcF9GMzJUb0ZpeGVkMzJVeDJfUlo6Ci0gICAgICBjYXNlIElvcF9GMzJUb0ZpeGVkMzJTeDJfUlo6Ci0gICAgICBjYXNlIElvcF9GaXhlZDMyVVRvRjMyeDJfUk46Ci0gICAgICBjYXNlIElvcF9GaXhlZDMyU1RvRjMyeDJfUk46Ci0gICAgICAgICBCSU5BUlkoSXR5X0k2NCwgSXR5X0k4LCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfR2V0RWxlbTh4MTY6Ci0gICAgICAgICBCSU5BUlkoSXR5X1YxMjgsIEl0eV9JOCwgSXR5X0k4KTsKLSAgICAgIGNhc2UgSW9wX0dldEVsZW0xNng4OgotICAgICAgICAgQklOQVJZKEl0eV9WMTI4LCBJdHlfSTgsIEl0eV9JMTYpOwotICAgICAgY2FzZSBJb3BfR2V0RWxlbTMyeDQ6Ci0gICAgICAgICBCSU5BUlkoSXR5X1YxMjgsIEl0eV9JOCwgSXR5X0kzMik7Ci0gICAgICBjYXNlIElvcF9HZXRFbGVtNjR4MjoKLSAgICAgICAgIEJJTkFSWShJdHlfVjEyOCwgSXR5X0k4LCBJdHlfSTY0KTsKLSAgICAgIGNhc2UgSW9wX0dldEVsZW04eDg6Ci0gICAgICAgICBCSU5BUlkoSXR5X0k2NCwgSXR5X0k4LCBJdHlfSTgpOwotICAgICAgY2FzZSBJb3BfR2V0RWxlbTE2eDQ6Ci0gICAgICAgICBCSU5BUlkoSXR5X0k2NCwgSXR5X0k4LCBJdHlfSTE2KTsKLSAgICAgIGNhc2UgSW9wX0dldEVsZW0zMngyOgotICAgICAgICAgQklOQVJZKEl0eV9JNjQsIEl0eV9JOCwgSXR5X0kzMik7Ci0gICAgICBjYXNlIElvcF9TZXRFbGVtOHg4OgotICAgICAgICAgVEVSTkFSWShJdHlfSTY0LCBJdHlfSTgsIEl0eV9JOCwgSXR5X0k2NCk7Ci0gICAgICBjYXNlIElvcF9TZXRFbGVtMTZ4NDoKLSAgICAgICAgIFRFUk5BUlkoSXR5X0k2NCwgSXR5X0k4LCBJdHlfSTE2LCBJdHlfSTY0KTsKLSAgICAgIGNhc2UgSW9wX1NldEVsZW0zMngyOgotICAgICAgICAgVEVSTkFSWShJdHlfSTY0LCBJdHlfSTgsIEl0eV9JMzIsIEl0eV9JNjQpOwotCi0gICAgICBjYXNlIElvcF9TbGljZTY0OgotICAgICAgICAgVEVSTkFSWShJdHlfSTY0LCBJdHlfSTY0LCBJdHlfSTgsIEl0eV9JNjQpOwotICAgICAgY2FzZSBJb3BfU2xpY2VWMTI4OgotICAgICAgICAgVEVSTkFSWShJdHlfVjEyOCwgSXR5X1YxMjgsIEl0eV9JOCwgSXR5X1YxMjgpOwotCi0gICAgICBjYXNlIElvcF9RRE11bGwxNlN4NDogY2FzZSBJb3BfUURNdWxsMzJTeDI6Ci0gICAgICAgICBCSU5BUlkoSXR5X0k2NCwgSXR5X0k2NCwgSXR5X1YxMjgpOwotCi0gICAgICAgICAvKiBzMzkwIHNwZWNpZmljICovCi0gICAgICBjYXNlIElvcF9NQWRkRjMyOgotICAgICAgY2FzZSBJb3BfTVN1YkYzMjoKLSAgICAgICAgIFFVQVRFUk5BUlkoaXR5X1JNb2RlLEl0eV9GMzIsSXR5X0YzMixJdHlfRjMyLCBJdHlfRjMyKTsKLQotICAgICAgY2FzZSBJb3BfRjY0SEx0b0YxMjg6Ci0gICAgICAgIEJJTkFSWShJdHlfRjY0LEl0eV9GNjQsIEl0eV9GMTI4KTsKLQotICAgICAgY2FzZSBJb3BfRjEyOEhJdG9GNjQ6Ci0gICAgICBjYXNlIElvcF9GMTI4TE90b0Y2NDoKLSAgICAgICAgVU5BUlkoSXR5X0YxMjgsIEl0eV9GNjQpOwotCi0gICAgICBjYXNlIElvcF9BZGRGMTI4OgotICAgICAgY2FzZSBJb3BfU3ViRjEyODoKLSAgICAgIGNhc2UgSW9wX011bEYxMjg6Ci0gICAgICBjYXNlIElvcF9EaXZGMTI4OgotICAgICAgICAgVEVSTkFSWShpdHlfUk1vZGUsSXR5X0YxMjgsSXR5X0YxMjgsIEl0eV9GMTI4KTsKLQotICAgICAgY2FzZSBJb3BfTmVnRjEyODoKLSAgICAgIGNhc2UgSW9wX0Fic0YxMjg6Ci0gICAgICAgICBVTkFSWShJdHlfRjEyOCwgSXR5X0YxMjgpOwotCi0gICAgICBjYXNlIElvcF9TcXJ0RjEyODoKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsSXR5X0YxMjgsIEl0eV9GMTI4KTsKLQotICAgICAgY2FzZSBJb3BfSTMyU3RvRjEyODogVU5BUlkoSXR5X0kzMiwgSXR5X0YxMjgpOwotICAgICAgY2FzZSBJb3BfSTY0U3RvRjEyODogVU5BUlkoSXR5X0k2NCwgSXR5X0YxMjgpOwotCi0gICAgICBjYXNlIElvcF9JMzJVdG9GMTI4OiBVTkFSWShJdHlfSTMyLCBJdHlfRjEyOCk7Ci0gICAgICBjYXNlIElvcF9JNjRVdG9GMTI4OiBVTkFSWShJdHlfSTY0LCBJdHlfRjEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX0YxMjh0b0kzMlM6IEJJTkFSWShpdHlfUk1vZGUsSXR5X0YxMjgsIEl0eV9JMzIpOwotICAgICAgY2FzZSBJb3BfRjEyOHRvSTY0UzogQklOQVJZKGl0eV9STW9kZSxJdHlfRjEyOCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0YxMjh0b0kzMlU6IEJJTkFSWShpdHlfUk1vZGUsSXR5X0YxMjgsIEl0eV9JMzIpOwotICAgICAgY2FzZSBJb3BfRjEyOHRvSTY0VTogQklOQVJZKGl0eV9STW9kZSxJdHlfRjEyOCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0YzMnRvRjEyODogVU5BUlkoSXR5X0YzMiwgSXR5X0YxMjgpOwotICAgICAgY2FzZSBJb3BfRjY0dG9GMTI4OiBVTkFSWShJdHlfRjY0LCBJdHlfRjEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX0YxMjh0b0YzMjogQklOQVJZKGl0eV9STW9kZSxJdHlfRjEyOCwgSXR5X0YzMik7Ci0gICAgICBjYXNlIElvcF9GMTI4dG9GNjQ6IEJJTkFSWShpdHlfUk1vZGUsSXR5X0YxMjgsIEl0eV9GNjQpOwotCi0gICAgICBjYXNlIElvcF9EMzJ0b0Q2NDoKLSAgICAgICAgIFVOQVJZKEl0eV9EMzIsIEl0eV9ENjQpOwotCi0gICAgICBjYXNlIElvcF9FeHRyYWN0RXhwRDY0OgotICAgICAgICAgVU5BUlkoSXR5X0Q2NCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0V4dHJhY3RTaWdENjQ6Ci0gICAgICAgICBVTkFSWShJdHlfRDY0LCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfSW5zZXJ0RXhwRDY0OgotICAgICAgICAgQklOQVJZKEl0eV9JNjQsSXR5X0Q2NCwgSXR5X0Q2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0V4dHJhY3RFeHBEMTI4OgotICAgICAgICAgVU5BUlkoSXR5X0QxMjgsIEl0eV9JNjQpOwotCi0gICAgICBjYXNlIElvcF9FeHRyYWN0U2lnRDEyODoKLSAgICAgICAgIFVOQVJZKEl0eV9EMTI4LCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfSW5zZXJ0RXhwRDEyODoKLSAgICAgICAgIEJJTkFSWShJdHlfSTY0LEl0eV9EMTI4LCBJdHlfRDEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX0Q2NHRvRDEyODoKLSAgICAgICAgIFVOQVJZKEl0eV9ENjQsIEl0eV9EMTI4KTsKLQotICAgICAgY2FzZSBJb3BfUmVpbnRlcnBENjRhc0k2NDoKLQlVTkFSWShJdHlfRDY0LCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfUmVpbnRlcnBJNjRhc0Q2NDoKLSAgICAgICAgIFVOQVJZKEl0eV9JNjQsIEl0eV9ENjQpOwotCi0gICAgICBjYXNlIElvcF9Sb3VuZEQ2NHRvSW50OgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSxJdHlfRDY0LCBJdHlfRDY0KTsKLQotICAgICAgY2FzZSBJb3BfUm91bmREMTI4dG9JbnQ6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLEl0eV9EMTI4LCBJdHlfRDEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX0kzMlN0b0QxMjg6Ci0gICAgICBjYXNlIElvcF9JMzJVdG9EMTI4OgotICAgICAgICAgVU5BUlkoSXR5X0kzMiwgSXR5X0QxMjgpOwotCi0gICAgICBjYXNlIElvcF9JNjRTdG9EMTI4OgotICAgICAgICAgVU5BUlkoSXR5X0k2NCwgSXR5X0QxMjgpOwotCi0gICAgICBjYXNlIElvcF9JNjRVdG9EMTI4OgotICAgICAgICAgVU5BUlkoSXR5X0k2NCwgSXR5X0QxMjgpOwotCi0gICAgICBjYXNlIElvcF9GMzJ0b0QzMjoKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsIEl0eV9GMzIsIEl0eV9EMzIpOwotCi0gICAgICBjYXNlIElvcF9GMzJ0b0Q2NDoKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsIEl0eV9GMzIsIEl0eV9ENjQpOwotCi0gICAgICBjYXNlIElvcF9GMzJ0b0QxMjg6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLCBJdHlfRjMyLCBJdHlfRDEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX0Y2NHRvRDMyOgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0Y2NCwgSXR5X0QzMik7Ci0KLSAgICAgIGNhc2UgSW9wX0Y2NHRvRDY0OgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0Y2NCwgSXR5X0Q2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0Y2NHRvRDEyODoKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsIEl0eV9GNjQsIEl0eV9EMTI4KTsKLQotICAgICAgY2FzZSBJb3BfRjEyOHRvRDMyOgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0YxMjgsIEl0eV9EMzIpOwotCi0gICAgICBjYXNlIElvcF9GMTI4dG9ENjQ6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLCBJdHlfRjEyOCwgSXR5X0Q2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0YxMjh0b0QxMjg6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLCBJdHlfRjEyOCwgSXR5X0QxMjgpOwotCi0gICAgICBjYXNlIElvcF9EMzJ0b0YzMjoKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsIEl0eV9EMzIsIEl0eV9GMzIpOwotCi0gICAgICBjYXNlIElvcF9EMzJ0b0Y2NDoKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsIEl0eV9EMzIsIEl0eV9GNjQpOwotCi0gICAgICBjYXNlIElvcF9EMzJ0b0YxMjg6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLCBJdHlfRDMyLCBJdHlfRjEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX0Q2NHRvRjMyOgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0Q2NCwgSXR5X0YzMik7Ci0KLSAgICAgIGNhc2UgSW9wX0Q2NHRvRjY0OgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0Q2NCwgSXR5X0Y2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0Q2NHRvRjEyODoKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsIEl0eV9ENjQsIEl0eV9GMTI4KTsKLQotICAgICAgY2FzZSBJb3BfRDEyOHRvRjMyOgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0QxMjgsIEl0eV9GMzIpOwotCi0gICAgICBjYXNlIElvcF9EMTI4dG9GNjQ6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLCBJdHlfRDEyOCwgSXR5X0Y2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0QxMjh0b0YxMjg6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLCBJdHlfRDEyOCwgSXR5X0YxMjgpOwotCi0gICAgICBjYXNlIElvcF9EUEJ0b0JDRDoKLSAgICAgIGNhc2UgSW9wX0JDRHRvRFBCOgotICAgICAgICAgVU5BUlkoSXR5X0k2NCwgSXR5X0k2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0QxMjhISXRvRDY0OgotICAgICAgY2FzZSBJb3BfRDEyOExPdG9ENjQ6Ci0gICAgICAgICBVTkFSWShJdHlfRDEyOCwgSXR5X0Q2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0QxMjh0b0kzMlM6Ci0gICAgICBjYXNlIElvcF9EMTI4dG9JMzJVOgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0QxMjgsIEl0eV9JMzIpOwotCi0gICAgICBjYXNlIElvcF9EMTI4dG9JNjRTOgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0QxMjgsIEl0eV9JNjQpOwotCi0gICAgICBjYXNlIElvcF9EMTI4dG9JNjRVOgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0QxMjgsIEl0eV9JNjQpOwotCi0gICAgICBjYXNlIElvcF9ENjRITHRvRDEyODoKLSAgICAgICAgIEJJTkFSWShJdHlfRDY0LCBJdHlfRDY0LCBJdHlfRDEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX1NobEQ2NDoKLSAgICAgIGNhc2UgSW9wX1NockQ2NDoKLSAgICAgICAgIEJJTkFSWShJdHlfRDY0LCBJdHlfSTgsIEl0eV9ENjQgKTsKLQotICAgICAgY2FzZSBJb3BfRDY0dG9EMzI6Ci0gICAgICAgICBCSU5BUlkoaXR5X1JNb2RlLCBJdHlfRDY0LCBJdHlfRDMyKTsKLQotICAgICAgY2FzZSBJb3BfRDY0dG9JMzJTOgotICAgICAgY2FzZSBJb3BfRDY0dG9JMzJVOgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0Q2NCwgSXR5X0kzMik7Ci0KLSAgICAgIGNhc2UgSW9wX0Q2NHRvSTY0UzoKLSAgICAgIGNhc2UgSW9wX0Q2NHRvSTY0VToKLSAgICAgICAgIEJJTkFSWShpdHlfUk1vZGUsIEl0eV9ENjQsIEl0eV9JNjQpOwotCi0gICAgICBjYXNlIElvcF9JMzJTdG9ENjQ6Ci0gICAgICBjYXNlIElvcF9JMzJVdG9ENjQ6Ci0gICAgICAgICBVTkFSWShJdHlfSTMyLCBJdHlfRDY0KTsKLQotICAgICAgY2FzZSBJb3BfSTY0U3RvRDY0OgotICAgICAgY2FzZSBJb3BfSTY0VXRvRDY0OgotICAgICAgICAgQklOQVJZKGl0eV9STW9kZSwgSXR5X0k2NCwgSXR5X0Q2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX0NtcEQ2NDoKLSAgICAgIGNhc2UgSW9wX0NtcEV4cEQ2NDoKLSAgICAgICAgIEJJTkFSWShJdHlfRDY0LEl0eV9ENjQsIEl0eV9JMzIpOwotCi0gICAgICBjYXNlIElvcF9DbXBEMTI4OgotICAgICAgY2FzZSBJb3BfQ21wRXhwRDEyODoKLSAgICAgICAgIEJJTkFSWShJdHlfRDEyOCxJdHlfRDEyOCwgSXR5X0kzMik7Ci0KLSAgICAgIGNhc2UgSW9wX1F1YW50aXplRDY0OgotICAgICAgICAgVEVSTkFSWShpdHlfUk1vZGUsSXR5X0Q2NCxJdHlfRDY0LCBJdHlfRDY0KTsKLQotICAgICAgY2FzZSBJb3BfU2lnbmlmaWNhbmNlUm91bmRENjQ6Ci0gICAgICAgICBURVJOQVJZKGl0eV9STW9kZSxJdHlfSTgsSXR5X0Q2NCwgSXR5X0Q2NCk7Ci0KLSAgICAgIGNhc2UgSW9wX1F1YW50aXplRDEyODoKLSAgICAgICAgIFRFUk5BUlkoaXR5X1JNb2RlLEl0eV9EMTI4LEl0eV9EMTI4LCBJdHlfRDEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX1NpZ25pZmljYW5jZVJvdW5kRDEyODoKLSAgICAgICAgIFRFUk5BUlkoaXR5X1JNb2RlLEl0eV9JOCxJdHlfRDEyOCwgSXR5X0QxMjgpOwotCi0gICAgICBjYXNlIElvcF9TaGxEMTI4OgotICAgICAgY2FzZSBJb3BfU2hyRDEyODoKLSAgICAgICAgIEJJTkFSWShJdHlfRDEyOCwgSXR5X0k4LCBJdHlfRDEyOCApOwotCi0gICAgICBjYXNlIElvcF9BZGRENjQ6Ci0gICAgICBjYXNlIElvcF9TdWJENjQ6Ci0gICAgICBjYXNlIElvcF9NdWxENjQ6Ci0gICAgICBjYXNlIElvcF9EaXZENjQ6Ci0gICAgICAgICBURVJOQVJZKCBpdHlfUk1vZGUsIEl0eV9ENjQsIEl0eV9ENjQsIEl0eV9ENjQgKTsKLQotICAgICAgY2FzZSBJb3BfRDEyOHRvRDY0OgotICAgICAgICAgQklOQVJZKCBpdHlfUk1vZGUsIEl0eV9EMTI4LCBJdHlfRDY0ICk7Ci0KLSAgICAgIGNhc2UgSW9wX0FkZEQxMjg6Ci0gICAgICBjYXNlIElvcF9TdWJEMTI4OgotICAgICAgY2FzZSBJb3BfTXVsRDEyODoKLSAgICAgIGNhc2UgSW9wX0RpdkQxMjg6Ci0gICAgICAgICBURVJOQVJZKGl0eV9STW9kZSxJdHlfRDEyOCxJdHlfRDEyOCwgSXR5X0QxMjgpOwotCi0gICAgICBjYXNlIElvcF9WMjU2dG82NF8wOiBjYXNlIElvcF9WMjU2dG82NF8xOgotICAgICAgY2FzZSBJb3BfVjI1NnRvNjRfMjogY2FzZSBJb3BfVjI1NnRvNjRfMzoKLSAgICAgICAgIFVOQVJZKEl0eV9WMjU2LCBJdHlfSTY0KTsKLQotICAgICAgY2FzZSBJb3BfNjR4NHRvVjI1NjoKLSAgICAgICAgIFFVQVRFUk5BUlkoSXR5X0k2NCwgSXR5X0k2NCwgSXR5X0k2NCwgSXR5X0k2NCwgSXR5X1YyNTYpOwotCi0gICAgICBjYXNlIElvcF9BZGQ2NEZ4NDogY2FzZSBJb3BfU3ViNjRGeDQ6Ci0gICAgICBjYXNlIElvcF9NdWw2NEZ4NDogY2FzZSBJb3BfRGl2NjRGeDQ6Ci0gICAgICBjYXNlIElvcF9BZGQzMkZ4ODogY2FzZSBJb3BfU3ViMzJGeDg6Ci0gICAgICBjYXNlIElvcF9NdWwzMkZ4ODogY2FzZSBJb3BfRGl2MzJGeDg6Ci0gICAgICBjYXNlIElvcF9BbmRWMjU2OiAgY2FzZSBJb3BfT3JWMjU2OgotICAgICAgY2FzZSBJb3BfWG9yVjI1NjoKLSAgICAgIGNhc2UgSW9wX01heDMyRng4OiBjYXNlIElvcF9NaW4zMkZ4ODoKLSAgICAgIGNhc2UgSW9wX01heDY0Rng0OiBjYXNlIElvcF9NaW42NEZ4NDoKLSAgICAgICAgIEJJTkFSWShJdHlfVjI1NixJdHlfVjI1NiwgSXR5X1YyNTYpOwotCi0gICAgICBjYXNlIElvcF9WMjU2dG9WMTI4XzE6IGNhc2UgSW9wX1YyNTZ0b1YxMjhfMDoKLSAgICAgICAgIFVOQVJZKEl0eV9WMjU2LCBJdHlfVjEyOCk7Ci0KLSAgICAgIGNhc2UgSW9wX1YxMjhITHRvVjI1NjoKLSAgICAgICAgIEJJTkFSWShJdHlfVjEyOCxJdHlfVjEyOCwgSXR5X1YyNTYpOwotCi0gICAgICBjYXNlIElvcF9Ob3RWMjU2OgotICAgICAgY2FzZSBJb3BfUlNxcnRFc3QzMkZ4ODoKLSAgICAgIGNhc2UgSW9wX1NxcnQzMkZ4ODoKLSAgICAgIGNhc2UgSW9wX1NxcnQ2NEZ4NDoKLSAgICAgIGNhc2UgSW9wX1JlY2lwRXN0MzJGeDg6Ci0gICAgICBjYXNlIElvcF9DbXBORVo2NHg0OiBjYXNlIElvcF9DbXBORVozMng4OgotICAgICAgICAgVU5BUlkoSXR5X1YyNTYsIEl0eV9WMjU2KTsKLQotICAgICAgZGVmYXVsdDoKLSAgICAgICAgIHBhbmljKF9fZnVuY19fKTsKLSAgIH0KLSMgIHVuZGVmIFVOQVJZCi0jICB1bmRlZiBCSU5BUlkKLSMgIHVuZGVmIFRFUk5BUlkKLSMgIHVuZGVmIENPTVBBUklTT04KLSMgIHVuZGVmIFVOQVJZX0NPTVBBUklTT04KKyAgIHJldHVybiB0eXBlT2ZQcmltb3Aob3AsIHRfZHN0LCB0X2FyZzEsIHRfYXJnMiwgdF9hcmczLCB0X2FyZzQpOwogfQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3ZhbGdyaW5kLmMgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdmFsZ3JpbmQuYwppbmRleCA1OTcyZmZiLi5mOWIwNTJhIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdmFsZ3JpbmQuYworKysgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdmFsZ3JpbmQuYwpAQCAtMSw1ICsxLDI5IEBACiAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDM7IC0qLSAqLwogCisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTWVtQ2hlY2ssIGEgaGVhdnl3ZWlnaHQgVmFsZ3JpbmQgdG9vbCBmb3IKKyAgIGRldGVjdGluZyBtZW1vcnkgZXJyb3JzLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSAgRmxvcmlhbiBLcm9obQorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKICNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlICJtZW1jaGVjay5oIiAgLy8gVkFMR1JJTkRfU0VUX1ZCSVRTCiAjaW5jbHVkZSAidnRlc3QuaCIgICAgIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3ZiaXRzLmMgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdmJpdHMuYwppbmRleCA5NWMxYWRmLi5kOGU1ZGY2IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdmJpdHMuYworKysgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdmJpdHMuYwpAQCAtMSwxMSArMSw0MyBAQAogLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiAzOyAtKi0gKi8KIAorLyoKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIE1lbUNoZWNrLCBhIGhlYXZ5d2VpZ2h0IFZhbGdyaW5kIHRvb2wgZm9yCisgICBkZXRlY3RpbmcgbWVtb3J5IGVycm9ycy4KKworICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgIEZsb3JpYW4gS3JvaG0KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNywgVVNBLgorCisgICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgY29udGFpbmVkIGluIHRoZSBmaWxlIENPUFlJTkcuCisqLworCiAjaW5jbHVkZSA8c3RkaW8uaD4gICAvLyBmcHJpbnRmCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+ICAvLyBhc3NlcnQKICNpZiBkZWZpbmVkKF9fQVBQTEVfXykKICNpbmNsdWRlIDxtYWNoaW5lL2VuZGlhbi5oPgogI2RlZmluZSBfX0JZVEVfT1JERVIgICAgQllURV9PUkRFUgogI2RlZmluZSBfX0xJVFRMRV9FTkRJQU4gTElUVExFX0VORElBTgorI2VsaWYgZGVmaW5lZChfX3N1bikKKyNkZWZpbmUgX19MSVRUTEVfRU5ESUFOIDEyMzQKKyNkZWZpbmUgX19CSUdfRU5ESUFOICAgIDQzMjEKKyMgIGlmIGRlZmluZWQoX0xJVFRMRV9FTkRJQU4pCisjICBkZWZpbmUgX19CWVRFX09SREVSICAgIF9fTElUVExFX0VORElBTgorIyAgZWxzZQorIyAgZGVmaW5lIF9fQllURV9PUkRFUiAgICBfX0JJR19FTkRJQU4KKyMgIGVuZGlmCiAjZWxzZQogI2luY2x1ZGUgPGVuZGlhbi5oPgogI2VuZGlmCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdmJpdHMuaCBiL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC92Yml0cy5oCmluZGV4IDBjMjJmOTYuLmVkYTJlOTQgMTAwNjQ0Ci0tLSBhL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC92Yml0cy5oCisrKyBiL21lbWNoZWNrL3Rlc3RzL3ZiaXQtdGVzdC92Yml0cy5oCkBAIC0xLDUgKzEsMjkgQEAKIC8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogMzsgLSotICovCiAKKy8qCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBNZW1DaGVjaywgYSBoZWF2eXdlaWdodCBWYWxncmluZCB0b29sIGZvcgorICAgZGV0ZWN0aW5nIG1lbW9yeSBlcnJvcnMuCisKKyAgIENvcHlyaWdodCAoQykgMjAxMi0yMDE1ICBGbG9yaWFuIEtyb2htCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKKyAgIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcsIFVTQS4KKworICAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HLgorKi8KKwogI2lmbmRlZiBWQklUU19ICiAjZGVmaW5lIFZCSVRTX0gKIApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMvdmJpdC10ZXN0L3Z0ZXN0LmggYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdnRlc3QuaAppbmRleCA2MmJhMTI2Li5hMWY0NDVhIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdnRlc3QuaAorKysgYi9tZW1jaGVjay90ZXN0cy92Yml0LXRlc3QvdnRlc3QuaApAQCAtMSw1ICsxLDI5IEBACiAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDM7IC0qLSAqLwogCisvKgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTWVtQ2hlY2ssIGEgaGVhdnl3ZWlnaHQgVmFsZ3JpbmQgdG9vbCBmb3IKKyAgIGRldGVjdGluZyBtZW1vcnkgZXJyb3JzLgorCisgICBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNSAgRmxvcmlhbiBLcm9obQorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisgICAwMjExMS0xMzA3LCBVU0EuCisKKyAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBjb250YWluZWQgaW4gdGhlIGZpbGUgQ09QWUlORy4KKyovCisKICNpZm5kZWYgVlRFU1RfSAogI2RlZmluZSBWVEVTVF9ICiAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3ZjcHVfZm5mbnMuc3Rkb3V0LmV4cC1zb2xhcmlzIGIvbWVtY2hlY2svdGVzdHMvdmNwdV9mbmZucy5zdGRvdXQuZXhwLXNvbGFyaXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk0YmZjNgotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3ZjcHVfZm5mbnMuc3Rkb3V0LmV4cC1zb2xhcmlzCkBAIC0wLDAgKzEsNzg2IEBACitmbG9vckQoLTIuMDAwMDAwMDAwMDAwMGUrMDApID0gLTIuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgtMS45MDAwMDAwMDAxMDAwZSswMCkgPSAtMi4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKC0xLjgwMDAwMDAwMDIwMDBlKzAwKSA9IC0yLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoLTEuNzAwMDAwMDAwMzAwMGUrMDApID0gLTIuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgtMS42MDAwMDAwMDA0MDAwZSswMCkgPSAtMi4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKC0xLjUwMDAwMDAwMDUwMDBlKzAwKSA9IC0yLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoLTEuNDAwMDAwMDAwNjAwMGUrMDApID0gLTIuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgtMS4zMDAwMDAwMDA3MDAwZSswMCkgPSAtMi4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKC0xLjIwMDAwMDAwMDgwMDBlKzAwKSA9IC0yLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoLTEuMTAwMDAwMDAwOTAwMGUrMDApID0gLTIuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgtMS4wMDAwMDAwMDEwMDAwZSswMCkgPSAtMi4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKC05LjAwMDAwMDAxMTAwMDBlLTAxKSA9IC0xLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoLTguMDAwMDAwMDEyMDAwMGUtMDEpID0gLTEuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgtNy4wMDAwMDAwMTMwMDAwZS0wMSkgPSAtMS4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKC02LjAwMDAwMDAxNDAwMDBlLTAxKSA9IC0xLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoLTUuMDAwMDAwMDE1MDAwMGUtMDEpID0gLTEuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgtNC4wMDAwMDAwMTYwMDAwZS0wMSkgPSAtMS4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKC0zLjAwMDAwMDAxNzAwMDBlLTAxKSA9IC0xLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoLTIuMDAwMDAwMDE4MDAwMGUtMDEpID0gLTEuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgtMS4wMDAwMDAwMTkwMDAwZS0wMSkgPSAtMS4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKC0xLjk5OTk5OTI0OTU0NjdlLTA5KSA9IC0xLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoKzkuOTk5OTk5NzkwMDAwMWUtMDIpID0gKzAuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgrMS45OTk5OTk5NzgwMDAwZS0wMSkgPSArMC4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKCsyLjk5OTk5OTk3NzAwMDBlLTAxKSA9ICswLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoKzMuOTk5OTk5OTc2MDAwMGUtMDEpID0gKzAuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgrNC45OTk5OTk5NzUwMDAwZS0wMSkgPSArMC4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKCs1Ljk5OTk5OTk3NDAwMDBlLTAxKSA9ICswLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoKzYuOTk5OTk5OTczMDAwMGUtMDEpID0gKzAuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgrNy45OTk5OTk5NzIwMDAwZS0wMSkgPSArMC4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKCs4Ljk5OTk5OTk3MTAwMDBlLTAxKSA9ICswLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoKzkuOTk5OTk5OTcwMDAwMGUtMDEpID0gKzAuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgrMS4wOTk5OTk5OTY5MDAwZSswMCkgPSArMS4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKCsxLjE5OTk5OTk5NjgwMDBlKzAwKSA9ICsxLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoKzEuMjk5OTk5OTk2NzAwMGUrMDApID0gKzEuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgrMS4zOTk5OTk5OTY2MDAwZSswMCkgPSArMS4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKCsxLjQ5OTk5OTk5NjUwMDBlKzAwKSA9ICsxLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoKzEuNTk5OTk5OTk2NDAwMGUrMDApID0gKzEuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgrMS42OTk5OTk5OTYzMDAwZSswMCkgPSArMS4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JEKCsxLjc5OTk5OTk5NjIwMDBlKzAwKSA9ICsxLjAwMDAwMDAwMDAwMDBlKzAwCitmbG9vckQoKzEuODk5OTk5OTk2MTAwMGUrMDApID0gKzEuMDAwMDAwMDAwMDAwMGUrMDAKK2Zsb29yRCgrMS45OTk5OTk5OTYwMDAwZSswMCkgPSArMS4wMDAwMDAwMDAwMDAwZSswMAorZmxvb3JGKCAgICAgICAgIC0yLjAwMDBlKzAwKSA9ICAgICAgICAgIC0yLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgLTEuOTAwMWUrMDApID0gICAgICAgICAgLTIuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICAtMS44MDAyZSswMCkgPSAgICAgICAgICAtMi4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgIC0xLjcwMDNlKzAwKSA9ICAgICAgICAgIC0yLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgLTEuNjAwNGUrMDApID0gICAgICAgICAgLTIuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICAtMS41MDA1ZSswMCkgPSAgICAgICAgICAtMi4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgIC0xLjQwMDZlKzAwKSA9ICAgICAgICAgIC0yLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgLTEuMzAwN2UrMDApID0gICAgICAgICAgLTIuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICAtMS4yMDA4ZSswMCkgPSAgICAgICAgICAtMi4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgIC0xLjEwMDllKzAwKSA9ICAgICAgICAgIC0yLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgLTEuMDAxMGUrMDApID0gICAgICAgICAgLTIuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICAtOS4wMTEwZS0wMSkgPSAgICAgICAgICAtMS4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgIC04LjAxMjBlLTAxKSA9ICAgICAgICAgIC0xLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgLTcuMDEzMGUtMDEpID0gICAgICAgICAgLTEuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICAtNi4wMTQwZS0wMSkgPSAgICAgICAgICAtMS4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgIC01LjAxNTBlLTAxKSA9ICAgICAgICAgIC0xLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgLTQuMDE2MGUtMDEpID0gICAgICAgICAgLTEuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICAtMy4wMTcwZS0wMSkgPSAgICAgICAgICAtMS4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgIC0yLjAxODBlLTAxKSA9ICAgICAgICAgIC0xLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgLTEuMDE5MGUtMDEpID0gICAgICAgICAgLTEuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICAtMS45OTk5ZS0wMykgPSAgICAgICAgICAtMS4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgICs5Ljc5MDBlLTAyKSA9ICAgICAgICAgICswLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgKzEuOTc4MGUtMDEpID0gICAgICAgICAgKzAuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICArMi45NzcwZS0wMSkgPSAgICAgICAgICArMC4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgICszLjk3NjBlLTAxKSA9ICAgICAgICAgICswLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgKzQuOTc1MGUtMDEpID0gICAgICAgICAgKzAuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICArNS45NzQwZS0wMSkgPSAgICAgICAgICArMC4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgICs2Ljk3MzBlLTAxKSA9ICAgICAgICAgICswLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgKzcuOTcyMGUtMDEpID0gICAgICAgICAgKzAuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICArOC45NzEwZS0wMSkgPSAgICAgICAgICArMC4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgICs5Ljk3MDBlLTAxKSA9ICAgICAgICAgICswLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgKzEuMDk2OWUrMDApID0gICAgICAgICAgKzEuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICArMS4xOTY4ZSswMCkgPSAgICAgICAgICArMS4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgICsxLjI5NjdlKzAwKSA9ICAgICAgICAgICsxLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgKzEuMzk2NmUrMDApID0gICAgICAgICAgKzEuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICArMS40OTY1ZSswMCkgPSAgICAgICAgICArMS4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgICsxLjU5NjRlKzAwKSA9ICAgICAgICAgICsxLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgKzEuNjk2M2UrMDApID0gICAgICAgICAgKzEuMDAwMGUrMDAKK2Zsb29yRiggICAgICAgICArMS43OTYyZSswMCkgPSAgICAgICAgICArMS4wMDAwZSswMAorZmxvb3JGKCAgICAgICAgICsxLjg5NjFlKzAwKSA9ICAgICAgICAgICsxLjAwMDBlKzAwCitmbG9vckYoICAgICAgICAgKzEuOTk2MGUrMDApID0gICAgICAgICAgKzEuMDAwMGUrMDAKKyBjZWlsRCgtMi4wMDAwMDAwMDAwMDAwZSswMCkgPSAtMi4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKC0xLjkwMDAwMDAwMDEwMDBlKzAwKSA9IC0xLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoLTEuODAwMDAwMDAwMjAwMGUrMDApID0gLTEuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgtMS43MDAwMDAwMDAzMDAwZSswMCkgPSAtMS4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKC0xLjYwMDAwMDAwMDQwMDBlKzAwKSA9IC0xLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoLTEuNTAwMDAwMDAwNTAwMGUrMDApID0gLTEuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgtMS40MDAwMDAwMDA2MDAwZSswMCkgPSAtMS4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKC0xLjMwMDAwMDAwMDcwMDBlKzAwKSA9IC0xLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoLTEuMjAwMDAwMDAwODAwMGUrMDApID0gLTEuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgtMS4xMDAwMDAwMDA5MDAwZSswMCkgPSAtMS4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKC0xLjAwMDAwMDAwMTAwMDBlKzAwKSA9IC0xLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoLTkuMDAwMDAwMDExMDAwMGUtMDEpID0gLTAuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgtOC4wMDAwMDAwMTIwMDAwZS0wMSkgPSAtMC4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKC03LjAwMDAwMDAxMzAwMDBlLTAxKSA9IC0wLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoLTYuMDAwMDAwMDE0MDAwMGUtMDEpID0gLTAuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgtNS4wMDAwMDAwMTUwMDAwZS0wMSkgPSAtMC4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKC00LjAwMDAwMDAxNjAwMDBlLTAxKSA9IC0wLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoLTMuMDAwMDAwMDE3MDAwMGUtMDEpID0gLTAuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgtMi4wMDAwMDAwMTgwMDAwZS0wMSkgPSAtMC4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKC0xLjAwMDAwMDAxOTAwMDBlLTAxKSA9IC0wLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoLTEuOTk5OTk5MjQ5NTQ2N2UtMDkpID0gLTAuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgrOS45OTk5OTk3OTAwMDAxZS0wMikgPSArMS4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKCsxLjk5OTk5OTk3ODAwMDBlLTAxKSA9ICsxLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoKzIuOTk5OTk5OTc3MDAwMGUtMDEpID0gKzEuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgrMy45OTk5OTk5NzYwMDAwZS0wMSkgPSArMS4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKCs0Ljk5OTk5OTk3NTAwMDBlLTAxKSA9ICsxLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoKzUuOTk5OTk5OTc0MDAwMGUtMDEpID0gKzEuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgrNi45OTk5OTk5NzMwMDAwZS0wMSkgPSArMS4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKCs3Ljk5OTk5OTk3MjAwMDBlLTAxKSA9ICsxLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoKzguOTk5OTk5OTcxMDAwMGUtMDEpID0gKzEuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgrOS45OTk5OTk5NzAwMDAwZS0wMSkgPSArMS4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKCsxLjA5OTk5OTk5NjkwMDBlKzAwKSA9ICsyLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoKzEuMTk5OTk5OTk2ODAwMGUrMDApID0gKzIuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgrMS4yOTk5OTk5OTY3MDAwZSswMCkgPSArMi4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKCsxLjM5OTk5OTk5NjYwMDBlKzAwKSA9ICsyLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoKzEuNDk5OTk5OTk2NTAwMGUrMDApID0gKzIuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgrMS41OTk5OTk5OTY0MDAwZSswMCkgPSArMi4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKCsxLjY5OTk5OTk5NjMwMDBlKzAwKSA9ICsyLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEQoKzEuNzk5OTk5OTk2MjAwMGUrMDApID0gKzIuMDAwMDAwMDAwMDAwMGUrMDAKKyBjZWlsRCgrMS44OTk5OTk5OTYxMDAwZSswMCkgPSArMi4wMDAwMDAwMDAwMDAwZSswMAorIGNlaWxEKCsxLjk5OTk5OTk5NjAwMDBlKzAwKSA9ICsyLjAwMDAwMDAwMDAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgLTIuMDAwMGUrMDApID0gICAgICAgICAgLTIuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICAtMS45MDAxZSswMCkgPSAgICAgICAgICAtMS4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgIC0xLjgwMDJlKzAwKSA9ICAgICAgICAgIC0xLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgLTEuNzAwM2UrMDApID0gICAgICAgICAgLTEuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICAtMS42MDA0ZSswMCkgPSAgICAgICAgICAtMS4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgIC0xLjUwMDVlKzAwKSA9ICAgICAgICAgIC0xLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgLTEuNDAwNmUrMDApID0gICAgICAgICAgLTEuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICAtMS4zMDA3ZSswMCkgPSAgICAgICAgICAtMS4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgIC0xLjIwMDhlKzAwKSA9ICAgICAgICAgIC0xLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgLTEuMTAwOWUrMDApID0gICAgICAgICAgLTEuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICAtMS4wMDEwZSswMCkgPSAgICAgICAgICAtMS4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgIC05LjAxMTBlLTAxKSA9ICAgICAgICAgIC0wLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgLTguMDEyMGUtMDEpID0gICAgICAgICAgLTAuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICAtNy4wMTMwZS0wMSkgPSAgICAgICAgICAtMC4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgIC02LjAxNDBlLTAxKSA9ICAgICAgICAgIC0wLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgLTUuMDE1MGUtMDEpID0gICAgICAgICAgLTAuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICAtNC4wMTYwZS0wMSkgPSAgICAgICAgICAtMC4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgIC0zLjAxNzBlLTAxKSA9ICAgICAgICAgIC0wLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgLTIuMDE4MGUtMDEpID0gICAgICAgICAgLTAuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICAtMS4wMTkwZS0wMSkgPSAgICAgICAgICAtMC4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgIC0xLjk5OTllLTAzKSA9ICAgICAgICAgIC0wLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgKzkuNzkwMGUtMDIpID0gICAgICAgICAgKzEuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICArMS45NzgwZS0wMSkgPSAgICAgICAgICArMS4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgICsyLjk3NzBlLTAxKSA9ICAgICAgICAgICsxLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgKzMuOTc2MGUtMDEpID0gICAgICAgICAgKzEuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICArNC45NzUwZS0wMSkgPSAgICAgICAgICArMS4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgICs1Ljk3NDBlLTAxKSA9ICAgICAgICAgICsxLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgKzYuOTczMGUtMDEpID0gICAgICAgICAgKzEuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICArNy45NzIwZS0wMSkgPSAgICAgICAgICArMS4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgICs4Ljk3MTBlLTAxKSA9ICAgICAgICAgICsxLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgKzkuOTcwMGUtMDEpID0gICAgICAgICAgKzEuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICArMS4wOTY5ZSswMCkgPSAgICAgICAgICArMi4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgICsxLjE5NjhlKzAwKSA9ICAgICAgICAgICsyLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgKzEuMjk2N2UrMDApID0gICAgICAgICAgKzIuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICArMS4zOTY2ZSswMCkgPSAgICAgICAgICArMi4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgICsxLjQ5NjVlKzAwKSA9ICAgICAgICAgICsyLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgKzEuNTk2NGUrMDApID0gICAgICAgICAgKzIuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICArMS42OTYzZSswMCkgPSAgICAgICAgICArMi4wMDAwZSswMAorIGNlaWxGKCAgICAgICAgICsxLjc5NjJlKzAwKSA9ICAgICAgICAgICsyLjAwMDBlKzAwCisgY2VpbEYoICAgICAgICAgKzEuODk2MWUrMDApID0gICAgICAgICAgKzIuMDAwMGUrMDAKKyBjZWlsRiggICAgICAgICArMS45OTYwZSswMCkgPSAgICAgICAgICArMi4wMDAwZSswMAorICBzaW5EKC0yLjAwMDAwMDAwMDAwMDBlKzAwKSA9IC05LjA5Mjk3NDI2ODI1NjhlLTAxCisgIHNpbkQoLTEuOTAwMDAwMDAwMTAwMGUrMDApID0gLTkuNDYzMDAwODc2NTUwOWUtMDEKKyAgc2luRCgtMS44MDAwMDAwMDAyMDAwZSswMCkgPSAtOS43Mzg0NzYzMDgzMjc1ZS0wMQorICBzaW5EKC0xLjcwMDAwMDAwMDMwMDBlKzAwKSA9IC05LjkxNjY0ODEwNDEzODJlLTAxCisgIHNpbkQoLTEuNjAwMDAwMDAwNDAwMGUrMDApID0gLTkuOTk1NzM2MDMwMjk4M2UtMDEKKyAgc2luRCgtMS41MDAwMDAwMDA1MDAwZSswMCkgPSAtOS45NzQ5NDk4NjYzOTQyZS0wMQorICBzaW5EKC0xLjQwMDAwMDAwMDYwMDBlKzAwKSA9IC05Ljg1NDQ5NzMwMDkwNDRlLTAxCisgIHNpbkQoLTEuMzAwMDAwMDAwNzAwMGUrMDApID0gLTkuNjM1NTgxODU2MDQ0NGUtMDEKKyAgc2luRCgtMS4yMDAwMDAwMDA4MDAwZSswMCkgPSAtOS4zMjAzOTA4NjI1NzExZS0wMQorICBzaW5EKC0xLjEwMDAwMDAwMDkwMDBlKzAwKSA9IC04LjkxMjA3MzYwNDY5NjdlLTAxCisgIHNpbkQoLTEuMDAwMDAwMDAxMDAwMGUrMDApID0gLTguNDE0NzA5ODUzNDgyMGUtMDEKKyAgc2luRCgtOS4wMDAwMDAwMTEwMDAwZS0wMSkgPSAtNy44MzMyNjkxMDMxMTI1ZS0wMQorICBzaW5EKC04LjAwMDAwMDAxMjAwMDBlLTAxKSA9IC03LjE3MzU2MDkxNzM1NTdlLTAxCisgIHNpbkQoLTcuMDAwMDAwMDEzMDAwMGUtMDEpID0gLTYuNDQyMTc2ODgyMzE5OWUtMDEKKyAgc2luRCgtNi4wMDAwMDAwMTQwMDAwZS0wMSkgPSAtNS42NDY0MjQ3NDU1MDUwZS0wMQorICBzaW5EKC01LjAwMDAwMDAxNTAwMDBlLTAxKSA9IC00Ljc5NDI1NTM5OTIwNThlLTAxCisgIHNpbkQoLTQuMDAwMDAwMDE2MDAwMGUtMDEpID0gLTMuODk0MTgzNDM3ODIzNWUtMDEKKyAgc2luRCgtMy4wMDAwMDAwMTcwMDAwZS0wMSkgPSAtMi45NTUyMDIwODI4NTQxZS0wMQorICBzaW5EKC0yLjAwMDAwMDAxODAwMDBlLTAxKSA9IC0xLjk4NjY5MzMyNTU5MThlLTAxCisgIHNpbkQoLTEuMDAwMDAwMDE5MDAwMGUtMDEpID0gLTkuOTgzMzQxODUzNzMzNWUtMDIKKyAgc2luRCgtMS45OTk5OTkyNDk1NDY3ZS0wOSkgPSAtMS45OTk5OTkyNDk1NDY3ZS0wOQorICBzaW5EKCs5Ljk5OTk5OTc5MDAwMDFlLTAyKSA9ICs5Ljk4MzM0MTQ1NTczMjBlLTAyCisgIHNpbkQoKzEuOTk5OTk5OTc4MDAwMGUtMDEpID0gKzEuOTg2NjkzMjg2Mzg5MmUtMDEKKyAgc2luRCgrMi45OTk5OTk5NzcwMDAwZS0wMSkgPSArMi45NTUyMDIwNDQ2NDA3ZS0wMQorICBzaW5EKCszLjk5OTk5OTk3NjAwMDBlLTAxKSA9ICszLjg5NDE4MzQwMDk4MTBlLTAxCisgIHNpbkQoKzQuOTk5OTk5OTc1MDAwMGUtMDEpID0gKzQuNzk0MjU1MzY0MTAyNWUtMDEKKyAgc2luRCgrNS45OTk5OTk5NzQwMDAwZS0wMSkgPSArNS42NDY0MjQ3MTI0OTE2ZS0wMQorICBzaW5EKCs2Ljk5OTk5OTk3MzAwMDBlLTAxKSA9ICs2LjQ0MjE3Njg1MTcyNjJlLTAxCisgIHNpbkQoKzcuOTk5OTk5OTcyMDAwMGUtMDEpID0gKzcuMTczNTYwODg5NDg3NGUtMDEKKyAgc2luRCgrOC45OTk5OTk5NzEwMDAwZS0wMSkgPSArNy44MzMyNjkwNzgyNDgyZS0wMQorICBzaW5EKCs5Ljk5OTk5OTk3MDAwMDBlLTAxKSA9ICs4LjQxNDcwOTgzMTg2OTllLTAxCisgIHNpbkQoKzEuMDk5OTk5OTk2OTAwMGUrMDApID0gKzguOTEyMDczNTg2NTUyOWUtMDEKKyAgc2luRCgrMS4xOTk5OTk5OTY4MDAwZSswMCkgPSArOS4zMjAzOTA4NDgwNzY4ZS0wMQorICBzaW5EKCsxLjI5OTk5OTk5NjcwMDBlKzAwKSA9ICs5LjYzNTU4MTg0NTM0NDVlLTAxCisgIHNpbkQoKzEuMzk5OTk5OTk2NjAwMGUrMDApID0gKzkuODU0NDk3Mjk0MTA1N2UtMDEKKyAgc2luRCgrMS40OTk5OTk5OTY1MDAwZSswMCkgPSArOS45NzQ5NDk4NjM1NjQ3ZS0wMQorICBzaW5EKCsxLjU5OTk5OTk5NjQwMDBlKzAwKSA9ICs5Ljk5NTczNjAzMTQ2NjJlLTAxCisgIHNpbkQoKzEuNjk5OTk5OTk2MzAwMGUrMDApID0gKzkuOTE2NjQ4MTA5MjkxOWUtMDEKKyAgc2luRCgrMS43OTk5OTk5OTYyMDAwZSswMCkgPSArOS43Mzg0NzYzMTc0MTU2ZS0wMQorICBzaW5EKCsxLjg5OTk5OTk5NjEwMDBlKzAwKSA9ICs5LjQ2MzAwMDg4OTQ4MjRlLTAxCisgIHNpbkQoKzEuOTk5OTk5OTk2MDAwMGUrMDApID0gKzkuMDkyOTc0Mjg0OTAyN2UtMDEKKyAgc2luRiggICAgICAgICAtMi4wMDAwZSswMCkgPSAgICAgICAgICAtOS4wOTMwZS0wMQorICBzaW5GKCAgICAgICAgIC0xLjkwMDFlKzAwKSA9ICAgICAgICAgIC05LjQ2MjdlLTAxCisgIHNpbkYoICAgICAgICAgLTEuODAwMmUrMDApID0gICAgICAgICAgLTkuNzM4MGUtMDEKKyAgc2luRiggICAgICAgICAtMS43MDAzZSswMCkgPSAgICAgICAgICAtOS45MTYzZS0wMQorICBzaW5GKCAgICAgICAgIC0xLjYwMDRlKzAwKSA9ICAgICAgICAgIC05Ljk5NTZlLTAxCisgIHNpbkYoICAgICAgICAgLTEuNTAwNWUrMDApID0gICAgICAgICAgLTkuOTc1M2UtMDEKKyAgc2luRiggICAgICAgICAtMS40MDA2ZSswMCkgPSAgICAgICAgICAtOS44NTU1ZS0wMQorICBzaW5GKCAgICAgICAgIC0xLjMwMDdlKzAwKSA9ICAgICAgICAgIC05LjYzNzVlLTAxCisgIHNpbkYoICAgICAgICAgLTEuMjAwOGUrMDApID0gICAgICAgICAgLTkuMzIzM2UtMDEKKyAgc2luRiggICAgICAgICAtMS4xMDA5ZSswMCkgPSAgICAgICAgICAtOC45MTYyZS0wMQorICBzaW5GKCAgICAgICAgIC0xLjAwMTBlKzAwKSA9ICAgICAgICAgIC04LjQyMDFlLTAxCisgIHNpbkYoICAgICAgICAgLTkuMDExMGUtMDEpID0gICAgICAgICAgLTcuODQwMWUtMDEKKyAgc2luRiggICAgICAgICAtOC4wMTIwZS0wMSkgPSAgICAgICAgICAtNy4xODE5ZS0wMQorICBzaW5GKCAgICAgICAgIC03LjAxMzBlLTAxKSA9ICAgICAgICAgIC02LjQ1MjFlLTAxCisgIHNpbkYoICAgICAgICAgLTYuMDE0MGUtMDEpID0gICAgICAgICAgLTUuNjU4MGUtMDEKKyAgc2luRiggICAgICAgICAtNS4wMTUwZS0wMSkgPSAgICAgICAgICAtNC44MDc0ZS0wMQorICBzaW5GKCAgICAgICAgIC00LjAxNjBlLTAxKSA9ICAgICAgICAgIC0zLjkwODllLTAxCisgIHNpbkYoICAgICAgICAgLTMuMDE3MGUtMDEpID0gICAgICAgICAgLTIuOTcxNGUtMDEKKyAgc2luRiggICAgICAgICAtMi4wMTgwZS0wMSkgPSAgICAgICAgICAtMi4wMDQzZS0wMQorICBzaW5GKCAgICAgICAgIC0xLjAxOTBlLTAxKSA9ICAgICAgICAgIC0xLjAxNzJlLTAxCisgIHNpbkYoICAgICAgICAgLTEuOTk5OWUtMDMpID0gICAgICAgICAgLTEuOTk5OWUtMDMKKyAgc2luRiggICAgICAgICArOS43OTAwZS0wMikgPSAgICAgICAgICArOS43NzQ0ZS0wMgorICBzaW5GKCAgICAgICAgICsxLjk3ODBlLTAxKSA9ICAgICAgICAgICsxLjk2NTFlLTAxCisgIHNpbkYoICAgICAgICAgKzIuOTc3MGUtMDEpID0gICAgICAgICAgKzIuOTMzMmUtMDEKKyAgc2luRiggICAgICAgICArMy45NzYwZS0wMSkgPSAgICAgICAgICArMy44NzIxZS0wMQorICBzaW5GKCAgICAgICAgICs0Ljk3NTBlLTAxKSA9ICAgICAgICAgICs0Ljc3MjNlLTAxCisgIHNpbkYoICAgICAgICAgKzUuOTc0MGUtMDEpID0gICAgICAgICAgKzUuNjI0OWUtMDEKKyAgc2luRiggICAgICAgICArNi45NzMwZS0wMSkgPSAgICAgICAgICArNi40MjE1ZS0wMQorICBzaW5GKCAgICAgICAgICs3Ljk3MjBlLTAxKSA9ICAgICAgICAgICs3LjE1NDBlLTAxCisgIHNpbkYoICAgICAgICAgKzguOTcxMGUtMDEpID0gICAgICAgICAgKzcuODE1MmUtMDEKKyAgc2luRiggICAgICAgICArOS45NzAwZS0wMSkgPSAgICAgICAgICArOC4zOTg1ZS0wMQorICBzaW5GKCAgICAgICAgICsxLjA5NjllKzAwKSA9ICAgICAgICAgICs4Ljg5ODBlLTAxCisgIHNpbkYoICAgICAgICAgKzEuMTk2OGUrMDApID0gICAgICAgICAgKzkuMzA4N2UtMDEKKyAgc2luRiggICAgICAgICArMS4yOTY3ZSswMCkgPSAgICAgICAgICArOS42MjY3ZS0wMQorICBzaW5GKCAgICAgICAgICsxLjM5NjZlKzAwKSA9ICAgICAgICAgICs5Ljg0ODdlLTAxCisgIHNpbkYoICAgICAgICAgKzEuNDk2NWUrMDApID0gICAgICAgICAgKzkuOTcyNGUtMDEKKyAgc2luRiggICAgICAgICArMS41OTY0ZSswMCkgPSAgICAgICAgICArOS45OTY3ZS0wMQorICBzaW5GKCAgICAgICAgICsxLjY5NjNlKzAwKSA9ICAgICAgICAgICs5LjkyMTNlLTAxCisgIHNpbkYoICAgICAgICAgKzEuNzk2MmUrMDApID0gICAgICAgICAgKzkuNzQ3MGUtMDEKKyAgc2luRiggICAgICAgICArMS44OTYxZSswMCkgPSAgICAgICAgICArOS40NzU1ZS0wMQorICBzaW5GKCAgICAgICAgICsxLjk5NjBlKzAwKSA9ICAgICAgICAgICs5LjEwOTVlLTAxCisgIGNvc0QoLTIuMDAwMDAwMDAwMDAwMGUrMDApID0gLTQuMTYxNDY4MzY1NDcxNGUtMDEKKyAgY29zRCgtMS45MDAwMDAwMDAxMDAwZSswMCkgPSAtMy4yMzI4OTU2Njk1ODEzZS0wMQorICBjb3NEKC0xLjgwMDAwMDAwMDIwMDBlKzAwKSA9IC0yLjI3MjAyMDk0ODg3ODZlLTAxCisgIGNvc0QoLTEuNzAwMDAwMDAwMzAwMGUrMDApID0gLTEuMjg4NDQ0OTQ1OTMwMmUtMDEKKyAgY29zRCgtMS42MDAwMDAwMDA0MDAwZSswMCkgPSAtMi45MTk5NTIyNzAxMTE4ZS0wMgorICBjb3NEKC0xLjUwMDAwMDAwMDUwMDBlKzAwKSA9ICs3LjA3MzcyMDExNjg5NTZlLTAyCisgIGNvc0QoLTEuNDAwMDAwMDAwNjAwMGUrMDApID0gKzEuNjk5NjcxNDIzMDg5N2UtMDEKKyAgY29zRCgtMS4zMDAwMDAwMDA3MDAwZSswMCkgPSArMi42NzQ5ODgyNzk1MDEwZS0wMQorICBjb3NEKC0xLjIwMDAwMDAwMDgwMDBlKzAwKSA9ICszLjYyMzU3NzUzNzMxMDRlLTAxCisgIGNvc0QoLTEuMTAwMDAwMDAwOTAwMGUrMDApID0gKzQuNTM1OTYxMjA2MjM0OWUtMDEKKyAgY29zRCgtMS4wMDAwMDAwMDEwMDAwZSswMCkgPSArNS40MDMwMjMwNTAyNjY3ZS0wMQorICBjb3NEKC05LjAwMDAwMDAxMTAwMDBlLTAxKSA9ICs2LjIxNjA5OTY3NDA5MDFlLTAxCisgIGNvc0QoLTguMDAwMDAwMDEyMDAwMGUtMDEpID0gKzYuOTY3MDY3MDg0ODYzNGUtMDEKKyAgY29zRCgtNy4wMDAwMDAwMTMwMDAwZS0wMSkgPSArNy42NDg0MjE4NjQ0NzAxZS0wMQorICBjb3NEKC02LjAwMDAwMDAxNDAwMDBlLTAxKSA9ICs4LjI1MzM1NjE0MTE5MThlLTAxCisgIGNvc0QoLTUuMDAwMDAwMDE1MDAwMGUtMDEpID0gKzguNzc1ODI1NjExNzEyM2UtMDEKKyAgY29zRCgtNC4wMDAwMDAwMTYwMDAwZS0wMSkgPSArOS4yMTA2MDk5MzM3OTgyZS0wMQorICBjb3NEKC0zLjAwMDAwMDAxNzAwMDBlLTAxKSA9ICs5LjU1MzM2NDg4NjIzMjJlLTAxCisgIGNvc0QoLTIuMDAwMDAwMDE4MDAwMGUtMDEpID0gKzkuODAwNjY1Nzc0ODM2NGUtMDEKKyAgY29zRCgtMS4wMDAwMDAwMTkwMDAwZS0wMSkgPSArOS45NTAwNDE2NTA4ODM0ZS0wMQorICBjb3NEKC0xLjk5OTk5OTI0OTU0NjdlLTA5KSA9ICsxLjAwMDAwMDAwMDAwMDBlKzAwCisgIGNvc0QoKzkuOTk5OTk5NzkwMDAwMWUtMDIpID0gKzkuOTUwMDQxNjU0ODc2OGUtMDEKKyAgY29zRCgrMS45OTk5OTk5NzgwMDAwZS0wMSkgPSArOS44MDA2NjU3ODI3ODMxZS0wMQorICBjb3NEKCsyLjk5OTk5OTk3NzAwMDBlLTAxKSA9ICs5LjU1MzM2NDg5ODA1MzBlLTAxCisgIGNvc0QoKzMuOTk5OTk5OTc2MDAwMGUtMDEpID0gKzkuMjEwNjA5OTQ5Mzc0OWUtMDEKKyAgY29zRCgrNC45OTk5OTk5NzUwMDAwZS0wMSkgPSArOC43NzU4MjU2MzA4ODk0ZS0wMQorICBjb3NEKCs1Ljk5OTk5OTk3NDAwMDBlLTAxKSA9ICs4LjI1MzM1NjE2Mzc3NzVlLTAxCisgIGNvc0QoKzYuOTk5OTk5OTczMDAwMGUtMDEpID0gKzcuNjQ4NDIxODkwMjM4OGUtMDEKKyAgY29zRCgrNy45OTk5OTk5NzIwMDAwZS0wMSkgPSArNi45NjcwNjcxMTM1NTc2ZS0wMQorICBjb3NEKCs4Ljk5OTk5OTk3MTAwMDBlLTAxKSA9ICs2LjIxNjA5OTcwNTQyMzFlLTAxCisgIGNvc0QoKzkuOTk5OTk5OTcwMDAwMGUtMDEpID0gKzUuNDAzMDIzMDgzOTI1NWUtMDEKKyAgY29zRCgrMS4wOTk5OTk5OTY5MDAwZSswMCkgPSArNC41MzU5NjEyNDE4ODMyZS0wMQorICBjb3NEKCsxLjE5OTk5OTk5NjgwMDBlKzAwKSA9ICszLjYyMzU3NzU3NDU5MjBlLTAxCisgIGNvc0QoKzEuMjk5OTk5OTk2NzAwMGUrMDApID0gKzIuNjc0OTg4MzE4MDQzM2UtMDEKKyAgY29zRCgrMS4zOTk5OTk5OTY2MDAwZSswMCkgPSArMS42OTk2NzE0NjI1MDc3ZS0wMQorICBjb3NEKCsxLjQ5OTk5OTk5NjUwMDBlKzAwKSA9ICs3LjA3MzcyMDUxNTg5MzRlLTAyCisgIGNvc0QoKzEuNTk5OTk5OTk2NDAwMGUrMDApID0gLTIuOTE5OTUxODcwMjgyNWUtMDIKKyAgY29zRCgrMS42OTk5OTk5OTYzMDAwZSswMCkgPSAtMS4yODg0NDQ5MDYyNjM3ZS0wMQorICBjb3NEKCsxLjc5OTk5OTk5NjIwMDBlKzAwKSA9IC0yLjI3MjAyMDkwOTkyNDdlLTAxCisgIGNvc0QoKzEuODk5OTk5OTk2MTAwMGUrMDApID0gLTMuMjMyODk1NjMxNzI5M2UtMDEKKyAgY29zRCgrMS45OTk5OTk5OTYwMDAwZSswMCkgPSAtNC4xNjE0NjgzMjkwOTk1ZS0wMQorICBjb3NGKCAgICAgICAgIC0yLjAwMDBlKzAwKSA9ICAgICAgICAgIC00LjE2MTVlLTAxCisgIGNvc0YoICAgICAgICAgLTEuOTAwMWUrMDApID0gICAgICAgICAgLTMuMjMzOGUtMDEKKyAgY29zRiggICAgICAgICAtMS44MDAyZSswMCkgPSAgICAgICAgICAtMi4yNzQwZS0wMQorICBjb3NGKCAgICAgICAgIC0xLjcwMDNlKzAwKSA9ICAgICAgICAgIC0xLjI5MTRlLTAxCisgIGNvc0YoICAgICAgICAgLTEuNjAwNGUrMDApID0gICAgICAgICAgLTIuOTU5OWUtMDIKKyAgY29zRiggICAgICAgICAtMS41MDA1ZSswMCkgPSAgICAgICAgICArNy4wMjM4ZS0wMgorICBjb3NGKCAgICAgICAgIC0xLjQwMDZlKzAwKSA9ICAgICAgICAgICsxLjY5MzhlLTAxCisgIGNvc0YoICAgICAgICAgLTEuMzAwN2UrMDApID0gICAgICAgICAgKzIuNjY4MmUtMDEKKyAgY29zRiggICAgICAgICAtMS4yMDA4ZSswMCkgPSAgICAgICAgICArMy42MTYxZS0wMQorICBjb3NGKCAgICAgICAgIC0xLjEwMDllKzAwKSA9ICAgICAgICAgICs0LjUyNzllLTAxCisgIGNvc0YoICAgICAgICAgLTEuMDAxMGUrMDApID0gICAgICAgICAgKzUuMzk0NmUtMDEKKyAgY29zRiggICAgICAgICAtOS4wMTEwZS0wMSkgPSAgICAgICAgICArNi4yMDc1ZS0wMQorICBjb3NGKCAgICAgICAgIC04LjAxMjBlLTAxKSA9ICAgICAgICAgICs2Ljk1ODVlLTAxCisgIGNvc0YoICAgICAgICAgLTcuMDEzMGUtMDEpID0gICAgICAgICAgKzcuNjQwMGUtMDEKKyAgY29zRiggICAgICAgICAtNi4wMTQwZS0wMSkgPSAgICAgICAgICArOC4yNDU0ZS0wMQorICBjb3NGKCAgICAgICAgIC01LjAxNTBlLTAxKSA9ICAgICAgICAgICs4Ljc2ODZlLTAxCisgIGNvc0YoICAgICAgICAgLTQuMDE2MGUtMDEpID0gICAgICAgICAgKzkuMjA0NGUtMDEKKyAgY29zRiggICAgICAgICAtMy4wMTcwZS0wMSkgPSAgICAgICAgICArOS41NDgzZS0wMQorICBjb3NGKCAgICAgICAgIC0yLjAxODBlLTAxKSA9ICAgICAgICAgICs5Ljc5NzFlLTAxCisgIGNvc0YoICAgICAgICAgLTEuMDE5MGUtMDEpID0gICAgICAgICAgKzkuOTQ4MWUtMDEKKyAgY29zRiggICAgICAgICAtMS45OTk5ZS0wMykgPSAgICAgICAgICArMS4wMDAwZSswMAorICBjb3NGKCAgICAgICAgICs5Ljc5MDBlLTAyKSA9ICAgICAgICAgICs5Ljk1MjFlLTAxCisgIGNvc0YoICAgICAgICAgKzEuOTc4MGUtMDEpID0gICAgICAgICAgKzkuODA1MGUtMDEKKyAgY29zRiggICAgICAgICArMi45NzcwZS0wMSkgPSAgICAgICAgICArOS41NjAxZS0wMQorICBjb3NGKCAgICAgICAgICszLjk3NjBlLTAxKSA9ICAgICAgICAgICs5LjIxOTllLTAxCisgIGNvc0YoICAgICAgICAgKzQuOTc1MGUtMDEpID0gICAgICAgICAgKzguNzg3OGUtMDEKKyAgY29zRiggICAgICAgICArNS45NzQwZS0wMSkgPSAgICAgICAgICArOC4yNjgwZS0wMQorICBjb3NGKCAgICAgICAgICs2Ljk3MzBlLTAxKSA9ICAgICAgICAgICs3LjY2NThlLTAxCisgIGNvc0YoICAgICAgICAgKzcuOTcyMGUtMDEpID0gICAgICAgICAgKzYuOTg3MWUtMDEKKyAgY29zRiggICAgICAgICArOC45NzEwZS0wMSkgPSAgICAgICAgICArNi4yMzg4ZS0wMQorICBjb3NGKCAgICAgICAgICs5Ljk3MDBlLTAxKSA9ICAgICAgICAgICs1LjQyODJlLTAxCisgIGNvc0YoICAgICAgICAgKzEuMDk2OWUrMDApID0gICAgICAgICAgKzQuNTYzNmUtMDEKKyAgY29zRiggICAgICAgICArMS4xOTY4ZSswMCkgPSAgICAgICAgICArMy42NTM0ZS0wMQorICBjb3NGKCAgICAgICAgICsxLjI5NjdlKzAwKSA9ICAgICAgICAgICsyLjcwNjhlLTAxCisgIGNvc0YoICAgICAgICAgKzEuMzk2NmUrMDApID0gICAgICAgICAgKzEuNzMzMmUtMDEKKyAgY29zRiggICAgICAgICArMS40OTY1ZSswMCkgPSAgICAgICAgICArNy40MjI4ZS0wMgorICBjb3NGKCAgICAgICAgICsxLjU5NjRlKzAwKSA9ICAgICAgICAgIC0yLjU2MDFlLTAyCisgIGNvc0YoICAgICAgICAgKzEuNjk2M2UrMDApID0gICAgICAgICAgLTEuMjUxN2UtMDEKKyAgY29zRiggICAgICAgICArMS43OTYyZSswMCkgPSAgICAgICAgICAtMi4yMzUwZS0wMQorICBjb3NGKCAgICAgICAgICsxLjg5NjFlKzAwKSA9ICAgICAgICAgIC0zLjE5NjBlLTAxCisgIGNvc0YoICAgICAgICAgKzEuOTk2MGUrMDApID0gICAgICAgICAgLTQuMTI1MWUtMDEKKyAgdGFuRCgtMi4wMDAwMDAwMDAwMDAwZSswMCkgPSArMi4xODUwMzk4NjMyNjE1ZSswMAorICB0YW5EKC0xLjkwMDAwMDAwMDEwMDBlKzAwKSA9ICsyLjkyNzA5NzUxMzcyMTBlKzAwCisgIHRhbkQoLTEuODAwMDAwMDAwMjAwMGUrMDApID0gKzQuMjg2MjYxNjcwNzUzN2UrMDAKKyAgdGFuRCgtMS43MDAwMDAwMDAzMDAwZSswMCkgPSArNy42OTY2MDIxMjEzODc5ZSswMAorICB0YW5EKC0xLjYwMDAwMDAwMDQwMDBlKzAwKSA9ICszLjQyMzI1MzIyNjY0MTFlKzAxCisgIHRhbkQoLTEuNTAwMDAwMDAwNTAwMGUrMDApID0gLTEuNDEwMTQyMDA0NzA5N2UrMDEKKyAgdGFuRCgtMS40MDAwMDAwMDA2MDAwZSswMCkgPSAtNS43OTc4ODM3MzYyNTIxZSswMAorICB0YW5EKC0xLjMwMDAwMDAwMDcwMDBlKzAwKSA9IC0zLjYwMjEwMjQ1Nzc1MDZlKzAwCisgIHRhbkQoLTEuMjAwMDAwMDAwODAwMGUrMDApID0gLTIuNTcyMTUxNjI4MjE5MWUrMDAKKyAgdGFuRCgtMS4xMDAwMDAwMDA5MDAwZSswMCkgPSAtMS45NjQ3NTk2NjE2MjI5ZSswMAorICB0YW5EKC0xLjAwMDAwMDAwMTAwMDBlKzAwKSA9IC0xLjU1NzQwNzcyODA4MDRlKzAwCisgIHRhbkQoLTkuMDAwMDAwMDExMDAwMGUtMDEpID0gLTEuMjYwMTU4MjIwMzk3MWUrMDAKKyAgdGFuRCgtOC4wMDAwMDAwMTIwMDAwZS0wMSkgPSAtMS4wMjk2Mzg1NTk1MjI1ZSswMAorICB0YW5EKC03LjAwMDAwMDAxMzAwMDBlLTAxKSA9IC04LjQyMjg4MzgyNjg1MzZlLTAxCisgIHRhbkQoLTYuMDAwMDAwMDE0MDAwMGUtMDEpID0gLTYuODQxMzY4MTAzOTY5NWUtMDEKKyAgdGFuRCgtNS4wMDAwMDAwMTUwMDAwZS0wMSkgPSAtNS40NjMwMjQ5MTc5MTQ2ZS0wMQorICB0YW5EKC00LjAwMDAwMDAxNjAwMDBlLTAxKSA9IC00LjIyNzkzMjIwNjI0MTdlLTAxCisgIHRhbkQoLTMuMDAwMDAwMDE3MDAwMGUtMDEpID0gLTMuMDkzMzYyNTE0NzIyOWUtMDEKKyAgdGFuRCgtMi4wMDAwMDAwMTgwMDAwZS0wMSkgPSAtMi4wMjcxMDAzNzM4MjY0ZS0wMQorICB0YW5EKC0xLjAwMDAwMDAxOTAwMDBlLTAxKSA9IC0xLjAwMzM0Njc0MDA0NThlLTAxCisgIHRhbkQoLTEuOTk5OTk5MjQ5NTQ2N2UtMDkpID0gLTEuOTk5OTk5MjQ5NTQ2N2UtMDkKKyAgdGFuRCgrOS45OTk5OTk3OTAwMDAxZS0wMikgPSArMS4wMDMzNDY2OTk2NDMxZS0wMQorICB0YW5EKCsxLjk5OTk5OTk3ODAwMDBlLTAxKSA9ICsyLjAyNzEwMDMzMjE4MjdlLTAxCisgIHRhbkQoKzIuOTk5OTk5OTc3MDAwMGUtMDEpID0gKzMuMDkzMzYyNDcwODk1NGUtMDEKKyAgdGFuRCgrMy45OTk5OTk5NzYwMDAwZS0wMSkgPSArNC4yMjc5MzIxNTkwOTE1ZS0wMQorICB0YW5EKCs0Ljk5OTk5OTk3NTAwMDBlLTAxKSA9ICs1LjQ2MzAyNDg2NTk3NjhlLTAxCisgIHRhbkQoKzUuOTk5OTk5OTc0MDAwMGUtMDEpID0gKzYuODQxMzY4MDQ1MjQ3OGUtMDEKKyAgdGFuRCgrNi45OTk5OTk5NzMwMDAwZS0wMSkgPSArOC40MjI4ODM3NTg0NzU3ZS0wMQorICB0YW5EKCs3Ljk5OTk5OTk3MjAwMDBlLTAxKSA9ICsxLjAyOTYzODU1MTI4MTllKzAwCisgIHRhbkQoKzguOTk5OTk5OTcxMDAwMGUtMDEpID0gKzEuMjYwMTU4MjEwMDQ1MWUrMDAKKyAgdGFuRCgrOS45OTk5OTk5NzAwMDAwZS0wMSkgPSArMS41NTc0MDc3MTQzNzgzZSswMAorICB0YW5EKCsxLjA5OTk5OTk5NjkwMDBlKzAwKSA9ICsxLjk2NDc1OTY0MjE4MThlKzAwCisgIHRhbkQoKzEuMTk5OTk5OTk2ODAwMGUrMDApID0gKzIuNTcyMTUxNTk3NzU1MmUrMDAKKyAgdGFuRCgrMS4yOTk5OTk5OTY3MDAwZSswMCkgPSArMy42MDIxMDI0MDE4NTAwZSswMAorICB0YW5EKCsxLjM5OTk5OTk5NjYwMDBlKzAwKSA9ICs1Ljc5Nzg4MzU5Nzc5MDRlKzAwCisgIHRhbkQoKzEuNDk5OTk5OTk2NTAwMGUrMDApID0gKzEuNDEwMTQxOTI0NzY5N2UrMDEKKyAgdGFuRCgrMS41OTk5OTk5OTY0MDAwZSswMCkgPSAtMy40MjMyNTM2OTU3ODc1ZSswMQorICB0YW5EKCsxLjY5OTk5OTk5NjMwMDBlKzAwKSA9IC03LjY5NjYwMjM2MjMzODVlKzAwCisgIHRhbkQoKzEuNzk5OTk5OTk2MjAwMGUrMDApID0gLTQuMjg2MjYxNzQ4MjQxOGUrMDAKKyAgdGFuRCgrMS44OTk5OTk5OTYxMDAwZSswMCkgPSAtMi45MjcwOTc1NTE5OTI2ZSswMAorICB0YW5EKCsxLjk5OTk5OTk5NjAwMDBlKzAwKSA9IC0yLjE4NTAzOTg4NjM1OTFlKzAwCisgIHRhbkYoICAgICAgICAgLTIuMDAwMGUrMDApID0gICAgICAgICAgKzIuMTg1MGUrMDAKKyAgdGFuRiggICAgICAgICAtMS45MDAxZSswMCkgPSAgICAgICAgICArMi45MjYxZSswMAorICB0YW5GKCAgICAgICAgIC0xLjgwMDJlKzAwKSA9ICAgICAgICAgICs0LjI4MjRlKzAwCisgIHRhbkYoICAgICAgICAgLTEuNzAwM2UrMDApID0gICAgICAgICAgKzcuNjc4NmUrMDAKKyAgdGFuRiggICAgICAgICAtMS42MDA0ZSswMCkgPSAgICAgICAgICArMy4zNzcwZSswMQorICB0YW5GKCAgICAgICAgIC0xLjUwMDVlKzAwKSA9ICAgICAgICAgIC0xLjQyMDJlKzAxCisgIHRhbkYoICAgICAgICAgLTEuNDAwNmUrMDApID0gICAgICAgICAgLTUuODE4N2UrMDAKKyAgdGFuRiggICAgICAgICAtMS4zMDA3ZSswMCkgPSAgICAgICAgICAtMy42MTE5ZSswMAorICB0YW5GKCAgICAgICAgIC0xLjIwMDhlKzAwKSA9ICAgICAgICAgIC0yLjU3ODNlKzAwCisgIHRhbkYoICAgICAgICAgLTEuMTAwOWUrMDApID0gICAgICAgICAgLTEuOTY5MWUrMDAKKyAgdGFuRiggICAgICAgICAtMS4wMDEwZSswMCkgPSAgICAgICAgICAtMS41NjA4ZSswMAorICB0YW5GKCAgICAgICAgIC05LjAxMTBlLTAxKSA9ICAgICAgICAgIC0xLjI2MzBlKzAwCisgIHRhbkYoICAgICAgICAgLTguMDEyMGUtMDEpID0gICAgICAgICAgLTEuMDMyMWUrMDAKKyAgdGFuRiggICAgICAgICAtNy4wMTMwZS0wMSkgPSAgICAgICAgICAtOC40NDUxZS0wMQorICB0YW5GKCAgICAgICAgIC02LjAxNDBlLTAxKSA9ICAgICAgICAgIC02Ljg2MTllLTAxCisgIHRhbkYoICAgICAgICAgLTUuMDE1MGUtMDEpID0gICAgICAgICAgLTUuNDgyNWUtMDEKKyAgdGFuRiggICAgICAgICAtNC4wMTYwZS0wMSkgPSAgICAgICAgICAtNC4yNDY4ZS0wMQorICB0YW5GKCAgICAgICAgIC0zLjAxNzBlLTAxKSA9ICAgICAgICAgIC0zLjExMjBlLTAxCisgIHRhbkYoICAgICAgICAgLTIuMDE4MGUtMDEpID0gICAgICAgICAgLTIuMDQ1OGUtMDEKKyAgdGFuRiggICAgICAgICAtMS4wMTkwZS0wMSkgPSAgICAgICAgICAtMS4wMjI1ZS0wMQorICB0YW5GKCAgICAgICAgIC0xLjk5OTllLTAzKSA9ICAgICAgICAgIC0xLjk5OTllLTAzCisgIHRhbkYoICAgICAgICAgKzkuNzkwMGUtMDIpID0gICAgICAgICAgKzkuODIxNGUtMDIKKyAgdGFuRiggICAgICAgICArMS45NzgwZS0wMSkgPSAgICAgICAgICArMi4wMDQyZS0wMQorICB0YW5GKCAgICAgICAgICsyLjk3NzBlLTAxKSA9ICAgICAgICAgICszLjA2ODJlLTAxCisgIHRhbkYoICAgICAgICAgKzMuOTc2MGUtMDEpID0gICAgICAgICAgKzQuMTk5N2UtMDEKKyAgdGFuRiggICAgICAgICArNC45NzUwZS0wMSkgPSAgICAgICAgICArNS40MzA2ZS0wMQorICB0YW5GKCAgICAgICAgICs1Ljk3NDBlLTAxKSA9ICAgICAgICAgICs2LjgwMzNlLTAxCisgIHRhbkYoICAgICAgICAgKzYuOTczMGUtMDEpID0gICAgICAgICAgKzguMzc2OGUtMDEKKyAgdGFuRiggICAgICAgICArNy45NzIwZS0wMSkgPSAgICAgICAgICArMS4wMjM5ZSswMAorICB0YW5GKCAgICAgICAgICs4Ljk3MTBlLTAxKSA9ICAgICAgICAgICsxLjI1MjdlKzAwCisgIHRhbkYoICAgICAgICAgKzkuOTcwMGUtMDEpID0gICAgICAgICAgKzEuNTQ3MmUrMDAKKyAgdGFuRiggICAgICAgICArMS4wOTY5ZSswMCkgPSAgICAgICAgICArMS45NDk4ZSswMAorICB0YW5GKCAgICAgICAgICsxLjE5NjhlKzAwKSA9ICAgICAgICAgICsyLjU0ODBlKzAwCisgIHRhbkYoICAgICAgICAgKzEuMjk2N2UrMDApID0gICAgICAgICAgKzMuNTU2NWUrMDAKKyAgdGFuRiggICAgICAgICArMS4zOTY2ZSswMCkgPSAgICAgICAgICArNS42ODI1ZSswMAorICB0YW5GKCAgICAgICAgICsxLjQ5NjVlKzAwKSA9ICAgICAgICAgICsxLjM0MzVlKzAxCisgIHRhbkYoICAgICAgICAgKzEuNTk2NGUrMDApID0gICAgICAgICAgLTMuOTA0OGUrMDEKKyAgdGFuRiggICAgICAgICArMS42OTYzZSswMCkgPSAgICAgICAgICAtNy45MjYwZSswMAorICB0YW5GKCAgICAgICAgICsxLjc5NjJlKzAwKSA9ICAgICAgICAgIC00LjM2MTFlKzAwCisgIHRhbkYoICAgICAgICAgKzEuODk2MWUrMDApID0gICAgICAgICAgLTIuOTY0OGUrMDAKKyAgdGFuRiggICAgICAgICArMS45OTYwZSswMCkgPSAgICAgICAgICAtMi4yMDgzZSswMAorICBleHBEKC0yLjAwMDAwMDAwMDAwMDBlKzAwKSA9ICsxLjM1MzM1MjgzMjM2NjFlLTAxCisgIGV4cEQoLTEuOTAwMDAwMDAwMTAwMGUrMDApID0gKzEuNDk1Njg2MTkyMDc2OGUtMDEKKyAgZXhwRCgtMS44MDAwMDAwMDAyMDAwZSswMCkgPSArMS42NTI5ODg4ODE4ODUzZS0wMQorICBleHBEKC0xLjcwMDAwMDAwMDMwMDBlKzAwKSA9ICsxLjgyNjgzNTIzOTk3OTNlLTAxCisgIGV4cEQoLTEuNjAwMDAwMDAwNDAwMGUrMDApID0gKzIuMDE4OTY1MTc5MTM5MGUtMDEKKyAgZXhwRCgtMS41MDAwMDAwMDA1MDAwZSswMCkgPSArMi4yMzEzMDE2MDAzNjg2ZS0wMQorICBleHBEKC0xLjQwMDAwMDAwMDYwMDBlKzAwKSA9ICsyLjQ2NTk2OTYzNzkzNjVlLTAxCisgIGV4cEQoLTEuMzAwMDAwMDAwNzAwMGUrMDApID0gKzIuNzI1MzE3OTI4NDMyNGUtMDEKKyAgZXhwRCgtMS4yMDAwMDAwMDA4MDAwZSswMCkgPSArMy4wMTE5NDIxMTY3MTI1ZS0wMQorICBleHBEKC0xLjEwMDAwMDAwMDkwMDBlKzAwKSA9ICszLjMyODcxMDgzMzk4NTBlLTAxCisgIGV4cEQoLTEuMDAwMDAwMDAxMDAwMGUrMDApID0gKzMuNjc4Nzk0NDA4MDM1NmUtMDEKKyAgZXhwRCgtOS4wMDAwMDAwMTEwMDAwZS0wMSkgPSArNC4wNjU2OTY1OTI5MzM3ZS0wMQorICBleHBEKC04LjAwMDAwMDAxMjAwMDBlLTAxKSA9ICs0LjQ5MzI4OTYzNTc4MDNlLTAxCisgIGV4cEQoLTcuMDAwMDAwMDEzMDAwMGUtMDEpID0gKzQuOTY1ODUzMDMxNDU4NWUtMDEKKyAgZXhwRCgtNi4wMDAwMDAwMTQwMDAwZS0wMSkgPSArNS40ODgxMTYzNTMyNTY5ZS0wMQorICBleHBEKC01LjAwMDAwMDAxNTAwMDBlLTAxKSA9ICs2LjA2NTMwNjU4ODAyODRlLTAxCisgIGV4cEQoLTQuMDAwMDAwMDE2MDAwMGUtMDEpID0gKzYuNzAzMjAwNDQ5NjMxM2UtMDEKKyAgZXhwRCgtMy4wMDAwMDAwMTcwMDAwZS0wMSkgPSArNy40MDgxODIxOTQyMjMzZS0wMQorICBleHBEKC0yLjAwMDAwMDAxODAwMDBlLTAxKSA9ICs4LjE4NzMwNzUxNjA0MjdlLTAxCisgIGV4cEQoLTEuMDAwMDAwMDE5MDAwMGUtMDEpID0gKzkuMDQ4Mzc0MTYzMTY3N2UtMDEKKyAgZXhwRCgtMS45OTk5OTkyNDk1NDY3ZS0wOSkgPSArOS45OTk5OTk5ODAwMDAwZS0wMQorICBleHBEKCs5Ljk5OTk5OTc5MDAwMDFlLTAyKSA9ICsxLjEwNTE3MDkxNTc1NDhlKzAwCisgIGV4cEQoKzEuOTk5OTk5OTc4MDAwMGUtMDEpID0gKzEuMjIxNDAyNzU1NDczMWUrMDAKKyAgZXhwRCgrMi45OTk5OTk5NzcwMDAwZS0wMSkgPSArMS4zNDk4NTg4MDQ0NzEzZSswMAorICBleHBEKCszLjk5OTk5OTk3NjAwMDBlLTAxKSA9ICsxLjQ5MTgyNDY5NDA2MDllKzAwCisgIGV4cEQoKzQuOTk5OTk5OTc1MDAwMGUtMDEpID0gKzEuNjQ4NzIxMjY2NTc4M2UrMDAKKyAgZXhwRCgrNS45OTk5OTk5NzQwMDAwZS0wMSkgPSArMS44MjIxMTg3OTU2NTMwZSswMAorICBleHBEKCs2Ljk5OTk5OTk3MzAwMDBlLTAxKSA9ICsyLjAxMzc1MjcwMjAzMzNlKzAwCisgIGV4cEQoKzcuOTk5OTk5OTcyMDAwMGUtMDEpID0gKzIuMjI1NTQwOTIyMjYxMGUrMDAKKyAgZXhwRCgrOC45OTk5OTk5NzEwMDAwZS0wMSkgPSArMi40NTk2MDMxMDQwMjQxZSswMAorICBleHBEKCs5Ljk5OTk5OTk3MDAwMDBlLTAxKSA9ICsyLjcxODI4MTgyMDMwNDJlKzAwCisgIGV4cEQoKzEuMDk5OTk5OTk2OTAwMGUrMDApID0gKzMuMDA0MTY2MDE0NjMzNWUrMDAKKyAgZXhwRCgrMS4xOTk5OTk5OTY4MDAwZSswMCkgPSArMy4zMjAxMTY5MTIxMTIyZSswMAorICBleHBEKCsxLjI5OTk5OTk5NjcwMDBlKzAwKSA9ICszLjY2OTI5NjY1NTUxMDZlKzAwCisgIGV4cEQoKzEuMzk5OTk5OTk2NjAwMGUrMDApID0gKzQuMDU1MTk5OTUzMDU3MGUrMDAKKyAgZXhwRCgrMS40OTk5OTk5OTY1MDAwZSswMCkgPSArNC40ODE2ODkwNTQ2NTIyZSswMAorICBleHBEKCsxLjU5OTk5OTk5NjQwMDBlKzAwKSA9ICs0Ljk1MzAzMjQwNjU2NDJlKzAwCisgIGV4cEQoKzEuNjk5OTk5OTk2MzAwMGUrMDApID0gKzUuNDczOTQ3MzcxNDczNmUrMDAKKyAgZXhwRCgrMS43OTk5OTk5OTYyMDAwZSswMCkgPSArNi4wNDk2NDc0NDE0MjQzZSswMAorICBleHBEKCsxLjg5OTk5OTk5NjEwMDBlKzAwKSA9ICs2LjY4NTg5NDQxNjIwNDNlKzAwCisgIGV4cEQoKzEuOTk5OTk5OTk2MDAwMGUrMDApID0gKzcuMzg5MDU2MDY5Mzc0NGUrMDAKKyAgZXhwRiggICAgICAgICAtMi4wMDAwZSswMCkgPSAgICAgICAgICArMS4zNTM0ZS0wMQorICBleHBGKCAgICAgICAgIC0xLjkwMDFlKzAwKSA9ICAgICAgICAgICsxLjQ5NTVlLTAxCisgIGV4cEYoICAgICAgICAgLTEuODAwMmUrMDApID0gICAgICAgICAgKzEuNjUyN2UtMDEKKyAgZXhwRiggICAgICAgICAtMS43MDAzZSswMCkgPSAgICAgICAgICArMS44MjYzZS0wMQorICBleHBGKCAgICAgICAgIC0xLjYwMDRlKzAwKSA9ICAgICAgICAgICsyLjAxODJlLTAxCisgIGV4cEYoICAgICAgICAgLTEuNTAwNWUrMDApID0gICAgICAgICAgKzIuMjMwMmUtMDEKKyAgZXhwRiggICAgICAgICAtMS40MDA2ZSswMCkgPSAgICAgICAgICArMi40NjQ1ZS0wMQorICBleHBGKCAgICAgICAgIC0xLjMwMDdlKzAwKSA9ICAgICAgICAgICsyLjcyMzRlLTAxCisgIGV4cEYoICAgICAgICAgLTEuMjAwOGUrMDApID0gICAgICAgICAgKzMuMDA5NWUtMDEKKyAgZXhwRiggICAgICAgICAtMS4xMDA5ZSswMCkgPSAgICAgICAgICArMy4zMjU3ZS0wMQorICBleHBGKCAgICAgICAgIC0xLjAwMTBlKzAwKSA9ICAgICAgICAgICszLjY3NTFlLTAxCisgIGV4cEYoICAgICAgICAgLTkuMDExMGUtMDEpID0gICAgICAgICAgKzQuMDYxMmUtMDEKKyAgZXhwRiggICAgICAgICAtOC4wMTIwZS0wMSkgPSAgICAgICAgICArNC40ODc5ZS0wMQorICBleHBGKCAgICAgICAgIC03LjAxMzBlLTAxKSA9ICAgICAgICAgICs0Ljk1OTRlLTAxCisgIGV4cEYoICAgICAgICAgLTYuMDE0MGUtMDEpID0gICAgICAgICAgKzUuNDgwNGUtMDEKKyAgZXhwRiggICAgICAgICAtNS4wMTUwZS0wMSkgPSAgICAgICAgICArNi4wNTYyZS0wMQorICBleHBGKCAgICAgICAgIC00LjAxNjBlLTAxKSA9ICAgICAgICAgICs2LjY5MjVlLTAxCisgIGV4cEYoICAgICAgICAgLTMuMDE3MGUtMDEpID0gICAgICAgICAgKzcuMzk1NmUtMDEKKyAgZXhwRiggICAgICAgICAtMi4wMTgwZS0wMSkgPSAgICAgICAgICArOC4xNzI2ZS0wMQorICBleHBGKCAgICAgICAgIC0xLjAxOTBlLTAxKSA9ICAgICAgICAgICs5LjAzMTJlLTAxCisgIGV4cEYoICAgICAgICAgLTEuOTk5OWUtMDMpID0gICAgICAgICAgKzkuOTgwMGUtMDEKKyAgZXhwRiggICAgICAgICArOS43OTAwZS0wMikgPSAgICAgICAgICArMS4xMDI5ZSswMAorICBleHBGKCAgICAgICAgICsxLjk3ODBlLTAxKSA9ICAgICAgICAgICsxLjIxODdlKzAwCisgIGV4cEYoICAgICAgICAgKzIuOTc3MGUtMDEpID0gICAgICAgICAgKzEuMzQ2OGUrMDAKKyAgZXhwRiggICAgICAgICArMy45NzYwZS0wMSkgPSAgICAgICAgICArMS40ODgyZSswMAorICBleHBGKCAgICAgICAgICs0Ljk3NTBlLTAxKSA9ICAgICAgICAgICsxLjY0NDZlKzAwCisgIGV4cEYoICAgICAgICAgKzUuOTc0MGUtMDEpID0gICAgICAgICAgKzEuODE3NGUrMDAKKyAgZXhwRiggICAgICAgICArNi45NzMwZS0wMSkgPSAgICAgICAgICArMi4wMDgzZSswMAorICBleHBGKCAgICAgICAgICs3Ljk3MjBlLTAxKSA9ICAgICAgICAgICsyLjIxOTNlKzAwCisgIGV4cEYoICAgICAgICAgKzguOTcxMGUtMDEpID0gICAgICAgICAgKzIuNDUyNWUrMDAKKyAgZXhwRiggICAgICAgICArOS45NzAwZS0wMSkgPSAgICAgICAgICArMi43MTAxZSswMAorICBleHBGKCAgICAgICAgICsxLjA5NjllKzAwKSA9ICAgICAgICAgICsyLjk5NDllKzAwCisgIGV4cEYoICAgICAgICAgKzEuMTk2OGUrMDApID0gICAgICAgICAgKzMuMzA5NWUrMDAKKyAgZXhwRiggICAgICAgICArMS4yOTY3ZSswMCkgPSAgICAgICAgICArMy42NTcyZSswMAorICBleHBGKCAgICAgICAgICsxLjM5NjZlKzAwKSA9ICAgICAgICAgICs0LjA0MTRlKzAwCisgIGV4cEYoICAgICAgICAgKzEuNDk2NWUrMDApID0gICAgICAgICAgKzQuNDY2MGUrMDAKKyAgZXhwRiggICAgICAgICArMS41OTY0ZSswMCkgPSAgICAgICAgICArNC45MzUyZSswMAorICBleHBGKCAgICAgICAgICsxLjY5NjNlKzAwKSA9ICAgICAgICAgICs1LjQ1MzdlKzAwCisgIGV4cEYoICAgICAgICAgKzEuNzk2MmUrMDApID0gICAgICAgICAgKzYuMDI2N2UrMDAKKyAgZXhwRiggICAgICAgICArMS44OTYxZSswMCkgPSAgICAgICAgICArNi42NTk5ZSswMAorICBleHBGKCAgICAgICAgICsxLjk5NjBlKzAwKSA9ICAgICAgICAgICs3LjM1OTZlKzAwCisgc3FydEQoKzAuMDAwMDAwMDAwMDAwMGUrMDApID0gKzAuMDAwMDAwMDAwMDAwMGUrMDAKKyBzcXJ0RCgrOS45OTk5OTk5OTAwMDAwZS0wMikgPSArMy4xNjIyNzc2NTg1ODcyZS0wMQorIHNxcnREKCsxLjk5OTk5OTk5ODAwMDBlLTAxKSA9ICs0LjQ3MjEzNTk1Mjc2MzVlLTAxCisgc3FydEQoKzIuOTk5OTk5OTk3MDAwMGUtMDEpID0gKzUuNDc3MjI1NTcyMzEzMGUtMDEKKyBzcXJ0RCgrMy45OTk5OTk5OTYwMDAwZS0wMSkgPSArNi4zMjQ1NTUzMTcxNzQ1ZS0wMQorIHNxcnREKCs0Ljk5OTk5OTk5NTAwMDBlLTAxKSA9ICs3LjA3MTA2NzgwODMyOTllLTAxCisgc3FydEQoKzUuOTk5OTk5OTk0MDAwMGUtMDEpID0gKzcuNzQ1OTY2Njg4NTQxOWUtMDEKKyBzcXJ0RCgrNi45OTk5OTk5OTMwMDAwZS0wMSkgPSArOC4zNjY2MDAyNjExNTc1ZS0wMQorIHNxcnREKCs3Ljk5OTk5OTk5MjAwMDBlLTAxKSA9ICs4Ljk0NDI3MTkwNTUyNzBlLTAxCisgc3FydEQoKzguOTk5OTk5OTkxMDAwMGUtMDEpID0gKzkuNDg2ODMyOTc1NzYxN2UtMDEKKyBzcXJ0RCgrOS45OTk5OTk5OTAwMDAwZS0wMSkgPSArOS45OTk5OTk5OTUwMDAwZS0wMQorIHNxcnREKCsxLjA5OTk5OTk5ODkwMDBlKzAwKSA9ICsxLjA0ODgwODg0NzY0NTdlKzAwCisgc3FydEQoKzEuMTk5OTk5OTk4ODAwMGUrMDApID0gKzEuMDk1NDQ1MTE0NDYyNmUrMDAKKyBzcXJ0RCgrMS4yOTk5OTk5OTg3MDAwZSswMCkgPSArMS4xNDAxNzU0MjQ1MjkxZSswMAorIHNxcnREKCsxLjM5OTk5OTk5ODYwMDBlKzAwKSA9ICsxLjE4MzIxNTk1NjAyODNlKzAwCisgc3FydEQoKzEuNDk5OTk5OTk4NTAwMGUrMDApID0gKzEuMjI0NzQ0ODcwNzc5MmUrMDAKKyBzcXJ0RCgrMS41OTk5OTk5OTg0MDAwZSswMCkgPSArMS4yNjQ5MTEwNjM0MzQ5ZSswMAorIHNxcnREKCsxLjY5OTk5OTk5ODMwMDBlKzAwKSA9ICsxLjMwMzg0MDQ4MDM4ODZlKzAwCisgc3FydEQoKzEuNzk5OTk5OTk4MjAwMGUrMDApID0gKzEuMzQxNjQwNzg1ODI5MWUrMDAKKyBzcXJ0RCgrMS44OTk5OTk5OTgxMDAwZSswMCkgPSArMS4zNzg0MDQ4NzQ1MTk4ZSswMAorIHNxcnREKCsxLjk5OTk5OTk5ODAwMDBlKzAwKSA9ICsxLjQxNDIxMzU2MTY2NjBlKzAwCisgc3FydEYoICAgICAgICAgKzAuMDAwMGUrMDApID0gICAgICAgICAgKzAuMDAwMGUrMDAKKyBzcXJ0RiggICAgICAgICArOS45OTAwZS0wMikgPSAgICAgICAgICArMy4xNjA3ZS0wMQorIHNxcnRGKCAgICAgICAgICsxLjk5ODBlLTAxKSA9ICAgICAgICAgICs0LjQ2OTllLTAxCisgc3FydEYoICAgICAgICAgKzIuOTk3MGUtMDEpID0gICAgICAgICAgKzUuNDc0NWUtMDEKKyBzcXJ0RiggICAgICAgICArMy45OTYwZS0wMSkgPSAgICAgICAgICArNi4zMjE0ZS0wMQorIHNxcnRGKCAgICAgICAgICs0Ljk5NTBlLTAxKSA9ICAgICAgICAgICs3LjA2NzVlLTAxCisgc3FydEYoICAgICAgICAgKzUuOTk0MGUtMDEpID0gICAgICAgICAgKzcuNzQyMWUtMDEKKyBzcXJ0RiggICAgICAgICArNi45OTMwZS0wMSkgPSAgICAgICAgICArOC4zNjI0ZS0wMQorIHNxcnRGKCAgICAgICAgICs3Ljk5MjBlLTAxKSA9ICAgICAgICAgICs4LjkzOThlLTAxCisgc3FydEYoICAgICAgICAgKzguOTkxMGUtMDEpID0gICAgICAgICAgKzkuNDgyMWUtMDEKKyBzcXJ0RiggICAgICAgICArOS45OTAwZS0wMSkgPSAgICAgICAgICArOS45OTUwZS0wMQorIHNxcnRGKCAgICAgICAgICsxLjA5ODllKzAwKSA9ICAgICAgICAgICsxLjA0ODNlKzAwCisgc3FydEYoICAgICAgICAgKzEuMTk4OGUrMDApID0gICAgICAgICAgKzEuMDk0OWUrMDAKKyBzcXJ0RiggICAgICAgICArMS4yOTg3ZSswMCkgPSAgICAgICAgICArMS4xMzk2ZSswMAorIHNxcnRGKCAgICAgICAgICsxLjM5ODZlKzAwKSA9ICAgICAgICAgICsxLjE4MjZlKzAwCisgc3FydEYoICAgICAgICAgKzEuNDk4NWUrMDApID0gICAgICAgICAgKzEuMjI0MWUrMDAKKyBzcXJ0RiggICAgICAgICArMS41OTg0ZSswMCkgPSAgICAgICAgICArMS4yNjQzZSswMAorIHNxcnRGKCAgICAgICAgICsxLjY5ODNlKzAwKSA9ICAgICAgICAgICsxLjMwMzJlKzAwCisgc3FydEYoICAgICAgICAgKzEuNzk4MmUrMDApID0gICAgICAgICAgKzEuMzQxMGUrMDAKKyBzcXJ0RiggICAgICAgICArMS44OTgxZSswMCkgPSAgICAgICAgICArMS4zNzc3ZSswMAorIHNxcnRGKCAgICAgICAgICsxLjk5ODBlKzAwKSA9ICAgICAgICAgICsxLjQxMzVlKzAwCisgIGxvZ0QoKzAuMDAwMDAwMDAwMDAwMGUrMDApID0gICAgICAgICAgICAtSW5maW5pdHkKKyAgbG9nRCgrOS45OTk5OTk5OTAwMDAwZS0wMikgPSAtMi4zMDI1ODUwOTM5OTQwZSswMAorICBsb2dEKCsxLjk5OTk5OTk5ODAwMDBlLTAxKSA9IC0xLjYwOTQzNzkxMzQzNDFlKzAwCisgIGxvZ0QoKzIuOTk5OTk5OTk3MDAwMGUtMDEpID0gLTEuMjAzOTcyODA1MzI1OWUrMDAKKyAgbG9nRCgrMy45OTk5OTk5OTYwMDAwZS0wMSkgPSAtOS4xNjI5MDczMjg3NDE2ZS0wMQorICBsb2dEKCs0Ljk5OTk5OTk5NTAwMDBlLTAxKSA9IC02LjkzMTQ3MTgxNTU5OTVlLTAxCisgIGxvZ0QoKzUuOTk5OTk5OTk0MDAwMGUtMDEpID0gLTUuMTA4MjU2MjQ3NjU5OWUtMDEKKyAgbG9nRCgrNi45OTk5OTk5OTMwMDAwZS0wMSkgPSAtMy41NjY3NDk0NDkzODczZS0wMQorICBsb2dEKCs3Ljk5OTk5OTk5MjAwMDBlLTAxKSA9IC0yLjIzMTQzNTUyMzE0MjFlLTAxCisgIGxvZ0QoKzguOTk5OTk5OTkxMDAwMGUtMDEpID0gLTEuMDUzNjA1MTY2NTc4M2UtMDEKKyAgbG9nRCgrOS45OTk5OTk5OTAwMDAwZS0wMSkgPSAtMS4wMDAwMDAwODMyNDA0ZS0wOQorICBsb2dEKCsxLjA5OTk5OTk5ODkwMDBlKzAwKSA9ICs5LjUzMTAxNzg4MDQzMjVlLTAyCisgIGxvZ0QoKzEuMTk5OTk5OTk4ODAwMGUrMDApID0gKzEuODIzMjE1NTU3OTM5NWUtMDEKKyAgbG9nRCgrMS4yOTk5OTk5OTg3MDAwZSswMCkgPSArMi42MjM2NDI2MzQ2NzQ5ZS0wMQorICBsb2dEKCsxLjM5OTk5OTk5ODYwMDBlKzAwKSA9ICszLjM2NDcyMjM1NjIxMjFlLTAxCisgIGxvZ0QoKzEuNDk5OTk5OTk4NTAwMGUrMDApID0gKzQuMDU0NjUxMDcxMDgxNmUtMDEKKyAgbG9nRCgrMS41OTk5OTk5OTg0MDAwZSswMCkgPSArNC43MDAwMzYyODI0NTc0ZS0wMQorICBsb2dEKCsxLjY5OTk5OTk5ODMwMDBlKzAwKSA9ICs1LjMwNjI4MjUwMDYyMTdlLTAxCisgIGxvZ0QoKzEuNzk5OTk5OTk4MjAwMGUrMDApID0gKzUuODc3ODY2NjM5MDIxMmUtMDEKKyAgbG9nRCgrMS44OTk5OTk5OTgxMDAwZSswMCkgPSArNi40MTg1Mzg4NTE3MjQwZS0wMQorICBsb2dEKCsxLjk5OTk5OTk5ODAwMDBlKzAwKSA9ICs2LjkzMTQ3MTc5NTU5OTVlLTAxCisgIGxvZ0YoICAgICAgICAgKzAuMDAwMGUrMDApID0gICAgICAgICAgICAgICAgIC1JbmYKKyAgbG9nRiggICAgICAgICArOS45OTAwZS0wMikgPSAgICAgICAgICAtMi4zMDM2ZSswMAorICBsb2dGKCAgICAgICAgICsxLjk5ODBlLTAxKSA9ICAgICAgICAgIC0xLjYxMDRlKzAwCisgIGxvZ0YoICAgICAgICAgKzIuOTk3MGUtMDEpID0gICAgICAgICAgLTEuMjA1MGUrMDAKKyAgbG9nRiggICAgICAgICArMy45OTYwZS0wMSkgPSAgICAgICAgICAtOS4xNzI5ZS0wMQorICBsb2dGKCAgICAgICAgICs0Ljk5NTBlLTAxKSA9ICAgICAgICAgIC02Ljk0MTVlLTAxCisgIGxvZ0YoICAgICAgICAgKzUuOTk0MGUtMDEpID0gICAgICAgICAgLTUuMTE4M2UtMDEKKyAgbG9nRiggICAgICAgICArNi45OTMwZS0wMSkgPSAgICAgICAgICAtMy41NzY4ZS0wMQorICBsb2dGKCAgICAgICAgICs3Ljk5MjBlLTAxKSA9ICAgICAgICAgIC0yLjI0MTRlLTAxCisgIGxvZ0YoICAgICAgICAgKzguOTkxMGUtMDEpID0gICAgICAgICAgLTEuMDYzNmUtMDEKKyAgbG9nRiggICAgICAgICArOS45OTAwZS0wMSkgPSAgICAgICAgICAtMS4wMDA1ZS0wMworICBsb2dGKCAgICAgICAgICsxLjA5ODllKzAwKSA9ICAgICAgICAgICs5LjQzMTBlLTAyCisgIGxvZ0YoICAgICAgICAgKzEuMTk4OGUrMDApID0gICAgICAgICAgKzEuODEzMmUtMDEKKyAgbG9nRiggICAgICAgICArMS4yOTg3ZSswMCkgPSAgICAgICAgICArMi42MTM2ZS0wMQorICBsb2dGKCAgICAgICAgICsxLjM5ODZlKzAwKSA9ICAgICAgICAgICszLjM1NDdlLTAxCisgIGxvZ0YoICAgICAgICAgKzEuNDk4NWUrMDApID0gICAgICAgICAgKzQuMDQ0NmUtMDEKKyAgbG9nRiggICAgICAgICArMS41OTg0ZSswMCkgPSAgICAgICAgICArNC42OTAwZS0wMQorICBsb2dGKCAgICAgICAgICsxLjY5ODNlKzAwKSA9ICAgICAgICAgICs1LjI5NjNlLTAxCisgIGxvZ0YoICAgICAgICAgKzEuNzk4MmUrMDApID0gICAgICAgICAgKzUuODY3OWUtMDEKKyAgbG9nRiggICAgICAgICArMS44OTgxZSswMCkgPSAgICAgICAgICArNi40MDg1ZS0wMQorICBsb2dGKCAgICAgICAgICsxLjk5ODBlKzAwKSA9ICAgICAgICAgICs2LjkyMTVlLTAxCitsb2cxMEQoKzAuMDAwMDAwMDAwMDAwMGUrMDApID0gICAgICAgICAgICAtSW5maW5pdHkKK2xvZzEwRCgrOS45OTk5OTk5OTAwMDAwZS0wMikgPSAtMS4wMDAwMDAwMDA0MzQzZSswMAorbG9nMTBEKCsxLjk5OTk5OTk5ODAwMDBlLTAxKSA9IC02Ljk4OTcwMDA0NzcwMzFlLTAxCitsb2cxMEQoKzIuOTk5OTk5OTk3MDAwMGUtMDEpID0gLTUuMjI4Nzg3NDU3MTQ2M2UtMDEKK2xvZzEwRCgrMy45OTk5OTk5OTYwMDAwZS0wMSkgPSAtMy45Nzk0MDAwOTEwNjMzZS0wMQorbG9nMTBEKCs0Ljk5OTk5OTk5NTAwMDBlLTAxKSA9IC0zLjAxMDI5OTk2MDk4MjhlLTAxCitsb2cxMEQoKzUuOTk5OTk5OTk0MDAwMGUtMDEpID0gLTIuMjE4NDg3NTAwNTA2NWUtMDEKK2xvZzEwRCgrNi45OTk5OTk5OTMwMDAwZS0wMSkgPSAtMS41NDkwMTk2MDQyMDA0ZS0wMQorbG9nMTBEKCs3Ljk5OTk5OTk5MjAwMDBlLTAxKSA9IC05LjY5MTAwMTM0NDIzNTFlLTAyCitsb2cxMEQoKzguOTk5OTk5OTkxMDAwMGUtMDEpID0gLTQuNTc1NzQ5MDk5NDk3MGUtMDIKK2xvZzEwRCgrOS45OTk5OTk5OTAwMDAwZS0wMSkgPSAtNC4zNDI5NDUxODA1NDA5ZS0xMAorbG9nMTBEKCsxLjA5OTk5OTk5ODkwMDBlKzAwKSA9ICs0LjEzOTI2ODQ3MjM5MzFlLTAyCitsb2cxMEQoKzEuMTk5OTk5OTk4ODAwMGUrMDApID0gKzcuOTE4MTI0NTYxMzMzMGUtMDIKK2xvZzEwRCgrMS4yOTk5OTk5OTg3MDAwZSswMCkgPSArMS4xMzk0MzM1MTg3MjU0ZS0wMQorbG9nMTBEKCsxLjM5OTk5OTk5ODYwMDBlKzAwKSA9ICsxLjQ2MTI4MDM1MjQzOTRlLTAxCitsb2cxMEQoKzEuNDk5OTk5OTk4NTAwMGUrMDApID0gKzEuNzYwOTEyNTg2MjEzOWUtMDEKK2xvZzEwRCgrMS41OTk5OTk5OTg0MDAwZSswMCkgPSArMi4wNDExOTk4MjIyMTYzZS0wMQorbG9nMTBEKCsxLjY5OTk5OTk5ODMwMDBlKzAwKSA9ICsyLjMwNDQ4OTIwOTQzOThlLTAxCitsb2cxMEQoKzEuNzk5OTk5OTk4MjAwMGUrMDApID0gKzIuNTUyNzI1MDQ2NjkwMWUtMDEKK2xvZzEwRCgrMS44OTk5OTk5OTgxMDAwZSswMCkgPSArMi43ODc1MzYwMDUxODUzZS0wMQorbG9nMTBEKCsxLjk5OTk5OTk5ODAwMDBlKzAwKSA9ICszLjAxMDI5OTk1MjI5NjllLTAxCitsb2cxMEYoICAgICAgICAgKzAuMDAwMGUrMDApID0gICAgICAgICAgICAgICAgIC1JbmYKK2xvZzEwRiggICAgICAgICArOS45OTAwZS0wMikgPSAgICAgICAgICAtMS4wMDA0ZSswMAorbG9nMTBGKCAgICAgICAgICsxLjk5ODBlLTAxKSA9ICAgICAgICAgIC02Ljk5NDBlLTAxCitsb2cxMEYoICAgICAgICAgKzIuOTk3MGUtMDEpID0gICAgICAgICAgLTUuMjMzMWUtMDEKK2xvZzEwRiggICAgICAgICArMy45OTYwZS0wMSkgPSAgICAgICAgICAtMy45ODM3ZS0wMQorbG9nMTBGKCAgICAgICAgICs0Ljk5NTBlLTAxKSA9ICAgICAgICAgIC0zLjAxNDZlLTAxCitsb2cxMEYoICAgICAgICAgKzUuOTk0MGUtMDEpID0gICAgICAgICAgLTIuMjIyOGUtMDEKK2xvZzEwRiggICAgICAgICArNi45OTMwZS0wMSkgPSAgICAgICAgICAtMS41NTM0ZS0wMQorbG9nMTBGKCAgICAgICAgICs3Ljk5MjBlLTAxKSA9ICAgICAgICAgIC05LjczNDVlLTAyCitsb2cxMEYoICAgICAgICAgKzguOTkxMGUtMDEpID0gICAgICAgICAgLTQuNjE5MmUtMDIKK2xvZzEwRiggICAgICAgICArOS45OTAwZS0wMSkgPSAgICAgICAgICAtNC4zNDUxZS0wNAorbG9nMTBGKCAgICAgICAgICsxLjA5ODllKzAwKSA9ICAgICAgICAgICs0LjA5NThlLTAyCitsb2cxMEYoICAgICAgICAgKzEuMTk4OGUrMDApID0gICAgICAgICAgKzcuODc0N2UtMDIKK2xvZzEwRiggICAgICAgICArMS4yOTg3ZSswMCkgPSAgICAgICAgICArMS4xMzUxZS0wMQorbG9nMTBGKCAgICAgICAgICsxLjM5ODZlKzAwKSA9ICAgICAgICAgICsxLjQ1NjllLTAxCitsb2cxMEYoICAgICAgICAgKzEuNDk4NWUrMDApID0gICAgICAgICAgKzEuNzU2NmUtMDEKK2xvZzEwRiggICAgICAgICArMS41OTg0ZSswMCkgPSAgICAgICAgICArMi4wMzY5ZS0wMQorbG9nMTBGKCAgICAgICAgICsxLjY5ODNlKzAwKSA9ICAgICAgICAgICsyLjMwMDFlLTAxCitsb2cxMEYoICAgICAgICAgKzEuNzk4MmUrMDApID0gICAgICAgICAgKzIuNTQ4NGUtMDEKK2xvZzEwRiggICAgICAgICArMS44OTgxZSswMCkgPSAgICAgICAgICArMi43ODMyZS0wMQorbG9nMTBGKCAgICAgICAgICsxLjk5ODBlKzAwKSA9ICAgICAgICAgICszLjAwNjBlLTAxCisgYXNpbkQoLTEuMDAwMDAwMDAwMDAwMGUrMDApID0gLTEuNTcwNzk2MzI2Nzk0OWUrMDAKKyBhc2luRCgtOS4wMDAwMDAwMDEwMDAwZS0wMSkgPSAtMS4xMTk3Njk1MTUyMjgwZSswMAorIGFzaW5EKC04LjAwMDAwMDAwMjAwMDBlLTAxKSA9IC05LjI3Mjk1MjE4MzM0OTVlLTAxCisgYXNpbkQoLTcuMDAwMDAwMDAzMDAwMGUtMDEpID0gLTcuNzUzOTc0OTcwMzA4NGUtMDEKKyBhc2luRCgtNi4wMDAwMDAwMDQwMDAwZS0wMSkgPSAtNi40MzUwMTEwOTI5MzI4ZS0wMQorIGFzaW5EKC01LjAwMDAwMDAwNTAwMDBlLTAxKSA9IC01LjIzNTk4Nzc2MTc1NjVlLTAxCisgYXNpbkQoLTQuMDAwMDAwMDA2MDAwMGUtMDEpID0gLTQuMTE1MTY4NDY3MjIxNGUtMDEKKyBhc2luRCgtMy4wMDAwMDAwMDcwMDAwZS0wMSkgPSAtMy4wNDY5MjY1NDc0OTIwZS0wMQorIGFzaW5EKC0yLjAwMDAwMDAwODAwMDBlLTAxKSA9IC0yLjAxMzU3OTIxNjA2ODNlLTAxCisgYXNpbkQoLTEuMDAwMDAwMDA5MDAwMGUtMDEpID0gLTEuMDAxNjc0MjIwNjYwOWUtMDEKKyBhc2luRCgtMS4wMDAwMDAwNTQ5ODQ4ZS0wOSkgPSAtMS4wMDAwMDAwNTQ5ODQ4ZS0wOQorIGFzaW5EKCs5Ljk5OTk5OTg5MDAwMDBlLTAyKSA9ICsxLjAwMTY3NDIwMDU2MDJlLTAxCisgYXNpbkQoKzEuOTk5OTk5OTg4MDAwMGUtMDEpID0gKzIuMDEzNTc5MTk1NjU1OWUtMDEKKyBhc2luRCgrMi45OTk5OTk5ODcwMDAwZS0wMSkgPSArMy4wNDY5MjY1MjY1MjYzZS0wMQorIGFzaW5EKCszLjk5OTk5OTk4NjAwMDBlLTAxKSA9ICs0LjExNTE2ODQ0NTM5OTZlLTAxCisgYXNpbkQoKzQuOTk5OTk5OTg1MDAwMGUtMDEpID0gKzUuMjM1OTg3NzM4NjYyNWUtMDEKKyBhc2luRCgrNS45OTk5OTk5ODQwMDAwZS0wMSkgPSArNi40MzUwMTEwNjc5MzI4ZS0wMQorIGFzaW5EKCs2Ljk5OTk5OTk4MzAwMDBlLTAxKSA9ICs3Ljc1Mzk3NDk0MjMwMjhlLTAxCisgYXNpbkQoKzcuOTk5OTk5OTgyMDAwMGUtMDEpID0gKzkuMjcyOTUyMTUwMDE2MWUtMDEKKyBhc2luRCgrOC45OTk5OTk5ODEwMDAwZS0wMSkgPSArMS4xMTk3Njk1MTA2Mzk3ZSswMAorIGFzaW5EKCs5Ljk5OTk5OTk4MDAwMDBlLTAxKSA9ICsxLjU3MDczMzA4MTI0MDhlKzAwCisgYXNpbkYoICAgICAgICAgLTEuMDAwMGUrMDApID0gICAgICAgICAgLTEuNTcwOGUrMDAKKyBhc2luRiggICAgICAgICAtOS4wMDEwZS0wMSkgPSAgICAgICAgICAtMS4xMjAwZSswMAorIGFzaW5GKCAgICAgICAgIC04LjAwMjBlLTAxKSA9ICAgICAgICAgIC05LjI3NjNlLTAxCisgYXNpbkYoICAgICAgICAgLTcuMDAzMGUtMDEpID0gICAgICAgICAgLTcuNzU4MmUtMDEKKyBhc2luRiggICAgICAgICAtNi4wMDQwZS0wMSkgPSAgICAgICAgICAtNi40NDAwZS0wMQorIGFzaW5GKCAgICAgICAgIC01LjAwNTBlLTAxKSA9ICAgICAgICAgIC01LjI0MThlLTAxCisgYXNpbkYoICAgICAgICAgLTQuMDA2MGUtMDEpID0gICAgICAgICAgLTQuMTIxN2UtMDEKKyBhc2luRiggICAgICAgICAtMy4wMDcwZS0wMSkgPSAgICAgICAgICAtMy4wNTQzZS0wMQorIGFzaW5GKCAgICAgICAgIC0yLjAwODBlLTAxKSA9ICAgICAgICAgIC0yLjAyMTdlLTAxCisgYXNpbkYoICAgICAgICAgLTEuMDA5MGUtMDEpID0gICAgICAgICAgLTEuMDEwN2UtMDEKKyBhc2luRiggICAgICAgICAtOS45OTk0ZS0wNCkgPSAgICAgICAgICAtOS45OTk0ZS0wNAorIGFzaW5GKCAgICAgICAgICs5Ljg5MDBlLTAyKSA9ICAgICAgICAgICs5LjkwNjJlLTAyCisgYXNpbkYoICAgICAgICAgKzEuOTg4MGUtMDEpID0gICAgICAgICAgKzIuMDAxM2UtMDEKKyBhc2luRiggICAgICAgICArMi45ODcwZS0wMSkgPSAgICAgICAgICArMy4wMzMzZS0wMQorIGFzaW5GKCAgICAgICAgICszLjk4NjBlLTAxKSA9ICAgICAgICAgICs0LjA5OTllLTAxCisgYXNpbkYoICAgICAgICAgKzQuOTg1MGUtMDEpID0gICAgICAgICAgKzUuMjE4N2UtMDEKKyBhc2luRiggICAgICAgICArNS45ODQwZS0wMSkgPSAgICAgICAgICArNi40MTUwZS0wMQorIGFzaW5GKCAgICAgICAgICs2Ljk4MzBlLTAxKSA9ICAgICAgICAgICs3LjczMDJlLTAxCisgYXNpbkYoICAgICAgICAgKzcuOTgyMGUtMDEpID0gICAgICAgICAgKzkuMjQzMGUtMDEKKyBhc2luRiggICAgICAgICArOC45ODEwZS0wMSkgPSAgICAgICAgICArMS4xMTU0ZSswMAorIGFzaW5GKCAgICAgICAgICs5Ljk4MDBlLTAxKSA9ICAgICAgICAgICsxLjUwNzVlKzAwCisgYWNvc0QoLTEuMDAwMDAwMDAwMDAwMGUrMDApID0gICAgKzMuMTQxNTkyNjUzNmUrMDAKKyBhY29zRCgtOS4wMDAwMDEwMDAwMDAwZS0wMSkgPSAgICArMi42OTA1NjYwNzEyZSswMAorIGFjb3NEKC04LjAwMDAwMjAwMDAwMDBlLTAxKSA9ICAgICsyLjQ5ODA5MTg3ODFlKzAwCisgYWNvc0QoLTcuMDAwMDAzMDAwMDAwMGUtMDEpID0gICAgKzIuMzQ2MTk0MjQzNWUrMDAKKyBhY29zRCgtNi4wMDAwMDQwMDAwMDAwZS0wMSkgPSAgICArMi4yMTQyOTc5MzU2ZSswMAorIGFjb3NEKC01LjAwMDAwNTAwMDAwMDBlLTAxKSA9ICAgICsyLjA5NDM5NTY3OTdlKzAwCisgYWNvc0QoLTQuMDAwMDA2MDAwMDAwMGUtMDEpID0gICAgKzEuOTgyMzEzODI3NWUrMDAKKyBhY29zRCgtMy4wMDAwMDcwMDAwMDAwZS0wMSkgPSAgICArMS44NzU0ODk3MTQ2ZSswMAorIGFjb3NEKC0yLjAwMDAwODAwMDAwMDBlLTAxKSA9ICAgICsxLjc3MjE1NTA2NDFlKzAwCisgYWNvc0QoLTEuMDAwMDA5MDAwMDAwMGUtMDEpID0gICAgKzEuNjcwOTY0NjUyNWUrMDAKKyBhY29zRCgtOS45OTk5OTk5OTc3ODk2ZS0wNykgPSAgICArMS41NzA3OTczMjY4ZSswMAorIGFjb3NEKCs5Ljk5OTg5MDAwMDAwMDBlLTAyKSA9ICAgICsxLjQ3MDYzMDAxMTJlKzAwCisgYWNvc0QoKzEuOTk5OTg4MDAwMDAwMGUtMDEpID0gICAgKzEuMzY5NDM5NjMwN2UrMDAKKyBhY29zRCgrMi45OTk5ODcwMDAwMDAwZS0wMSkgPSAgICArMS4yNjYxMDUwMzU1ZSswMAorIGFjb3NEKCszLjk5OTk4NjAwMDAwMDBlLTAxKSA9ICAgICsxLjE1OTI4MTAwODNlKzAwCisgYWNvc0QoKzQuOTk5OTg1MDAwMDAwMGUtMDEpID0gICAgKzEuMDQ3MTk5MjgzMmUrMDAKKyBhY29zRCgrNS45OTk5ODQwMDAwMDAwZS0wMSkgPSAgICArOS4yNzI5NzIxODAwZS0wMQorIGFjb3NEKCs2Ljk5OTk4MzAwMDAwMDBlLTAxKSA9ICAgICs3Ljk1NDAxMjEwNjZlLTAxCisgYWNvc0QoKzcuOTk5OTgyMDAwMDAwMGUtMDEpID0gICAgKzYuNDM1MDQxMDg3OWUtMDEKKyBhY29zRCgrOC45OTk5ODEwMDAwMDAwZS0wMSkgPSAgICArNC41MTAzMTE3MDY4ZS0wMQorIGFjb3NEKCs5Ljk5OTk4MDAwMDAwMDBlLTAxKSA9ICAgICsyLjAwMDAwMDMzMzFlLTAzCisgYWNvc0YoICAgICAgICAgLTEuMDAwMGUrMDApID0gICAgICAgICAgKzMuMTQxNmUrMDAKKyBhY29zRiggICAgICAgICAtOS4wMDEwZS0wMSkgPSAgICAgICAgICArMi42OTA4ZSswMAorIGFjb3NGKCAgICAgICAgIC04LjAwMjBlLTAxKSA9ICAgICAgICAgICsyLjQ5ODRlKzAwCisgYWNvc0YoICAgICAgICAgLTcuMDAzMGUtMDEpID0gICAgICAgICAgKzIuMzQ2NmUrMDAKKyBhY29zRiggICAgICAgICAtNi4wMDQwZS0wMSkgPSAgICAgICAgICArMi4yMTQ4ZSswMAorIGFjb3NGKCAgICAgICAgIC01LjAwNTBlLTAxKSA9ICAgICAgICAgICsyLjA5NTBlKzAwCisgYWNvc0YoICAgICAgICAgLTQuMDA2MGUtMDEpID0gICAgICAgICAgKzEuOTgzMGUrMDAKKyBhY29zRiggICAgICAgICAtMy4wMDcwZS0wMSkgPSAgICAgICAgICArMS44NzYyZSswMAorIGFjb3NGKCAgICAgICAgIC0yLjAwODBlLTAxKSA9ICAgICAgICAgICsxLjc3MzBlKzAwCisgYWNvc0YoICAgICAgICAgLTEuMDA5MGUtMDEpID0gICAgICAgICAgKzEuNjcxOWUrMDAKKyBhY29zRiggICAgICAgICAtOS45OTk0ZS0wNCkgPSAgICAgICAgICArMS41NzE4ZSswMAorIGFjb3NGKCAgICAgICAgICs5Ljg5MDBlLTAyKSA9ICAgICAgICAgICsxLjQ3MTdlKzAwCisgYWNvc0YoICAgICAgICAgKzEuOTg4MGUtMDEpID0gICAgICAgICAgKzEuMzcwN2UrMDAKKyBhY29zRiggICAgICAgICArMi45ODcwZS0wMSkgPSAgICAgICAgICArMS4yNjc1ZSswMAorIGFjb3NGKCAgICAgICAgICszLjk4NjBlLTAxKSA9ICAgICAgICAgICsxLjE2MDhlKzAwCisgYWNvc0YoICAgICAgICAgKzQuOTg1MGUtMDEpID0gICAgICAgICAgKzEuMDQ4OWUrMDAKKyBhY29zRiggICAgICAgICArNS45ODQwZS0wMSkgPSAgICAgICAgICArOS4yOTI5ZS0wMQorIGFjb3NGKCAgICAgICAgICs2Ljk4MzBlLTAxKSA9ICAgICAgICAgICs3Ljk3NzhlLTAxCisgYWNvc0YoICAgICAgICAgKzcuOTgyMGUtMDEpID0gICAgICAgICAgKzYuNDY1MGUtMDEKKyBhY29zRiggICAgICAgICArOC45ODEwZS0wMSkgPSAgICAgICAgICArNC41NTM3ZS0wMQorIGFjb3NGKCAgICAgICAgICs5Ljk4MDBlLTAxKSA9ICAgICAgICAgICs2LjMyNTVlLTAyCisgYXRhbkQoLTEuMDAwMDAwMDAwMDAwMGUrMDApID0gLTcuODUzOTgxNjMzOTc0NWUtMDEKKyBhdGFuRCgtOS4wMDAwMDAwMDEwMDAwZS0wMSkgPSAtNy4zMjgxNTEwMTg0MTc2ZS0wMQorIGF0YW5EKC04LjAwMDAwMDAwMjAwMDBlLTAxKSA9IC02Ljc0NzQwOTQyMzQ1NTBlLTAxCisgYXRhbkQoLTcuMDAwMDAwMDAzMDAwMGUtMDEpID0gLTYuMTA3MjU5NjQ1OTA1NWUtMDEKKyBhdGFuRCgtNi4wMDAwMDAwMDQwMDAwZS0wMSkgPSAtNS40MDQxOTUwMDU2NDcwZS0wMQorIGF0YW5EKC01LjAwMDAwMDAwNTAwMDBlLTAxKSA9IC00LjYzNjQ3NjA5NDAwODFlLTAxCisgYXRhbkQoLTQuMDAwMDAwMDA2MDAwMGUtMDEpID0gLTMuODA1MDYzNzc2Mjk2MWUtMDEKKyBhdGFuRCgtMy4wMDAwMDAwMDcwMDAwZS0wMSkgPSAtMi45MTQ1Njc5NTEyMDA3ZS0wMQorIGF0YW5EKC0yLjAwMDAwMDAwODAwMDBlLTAxKSA9IC0xLjk3Mzk1NTYwNjE5MTFlLTAxCisgYXRhbkQoLTEuMDAwMDAwMDA5MDAwMGUtMDEpID0gLTkuOTY2ODY1MzM4MjI1MWUtMDIKKyBhdGFuRCgtMS4wMDAwMDAwNTQ5ODQ4ZS0wOSkgPSAtMS4wMDAwMDAwNTQ5ODQ4ZS0wOQorIGF0YW5EKCs5Ljk5OTk5OTg5MDAwMDBlLTAyKSA9ICs5Ljk2Njg2NTE0MDIwNTNlLTAyCisgYXRhbkQoKzEuOTk5OTk5OTg4MDAwMGUtMDEpID0gKzEuOTczOTU1NTg2OTYwM2UtMDEKKyBhdGFuRCgrMi45OTk5OTk5ODcwMDAwZS0wMSkgPSArMi45MTQ1Njc5MzI4NTIxZS0wMQorIGF0YW5EKCszLjk5OTk5OTk4NjAwMDBlLTAxKSA9ICszLjgwNTA2Mzc1OTA1NDdlLTAxCisgYXRhbkQoKzQuOTk5OTk5OTg1MDAwMGUtMDEpID0gKzQuNjM2NDc2MDc4MDA4MWUtMDEKKyBhdGFuRCgrNS45OTk5OTk5ODQwMDAwZS0wMSkgPSArNS40MDQxOTQ5OTA5NDExZS0wMQorIGF0YW5EKCs2Ljk5OTk5OTk4MzAwMDBlLTAxKSA9ICs2LjEwNzI1OTYzMjQ4MjdlLTAxCisgYXRhbkQoKzcuOTk5OTk5OTgyMDAwMGUtMDEpID0gKzYuNzQ3NDA5NDExMjU5OWUtMDEKKyBhdGFuRCgrOC45OTk5OTk5ODEwMDAwZS0wMSkgPSArNy4zMjgxNTEwMDczNjc4ZS0wMQorIGF0YW5EKCs5Ljk5OTk5OTk4MDAwMDBlLTAxKSA9ICs3Ljg1Mzk4MTYyMzk3NDVlLTAxCisgYXRhbkYoICAgICAgICAgLTEuMDAwMGUrMDApID0gICAgICAgICAgLTcuODU0MGUtMDEKKyBhdGFuRiggICAgICAgICAtOS4wMDEwZS0wMSkgPSAgICAgICAgICAtNy4zMjg3ZS0wMQorIGF0YW5GKCAgICAgICAgIC04LjAwMjBlLTAxKSA9ICAgICAgICAgIC02Ljc0ODZlLTAxCisgYXRhbkYoICAgICAgICAgLTcuMDAzMGUtMDEpID0gICAgICAgICAgLTYuMTA5M2UtMDEKKyBhdGFuRiggICAgICAgICAtNi4wMDQwZS0wMSkgPSAgICAgICAgICAtNS40MDcxZS0wMQorIGF0YW5GKCAgICAgICAgIC01LjAwNTBlLTAxKSA9ICAgICAgICAgIC00LjY0MDVlLTAxCisgYXRhbkYoICAgICAgICAgLTQuMDA2MGUtMDEpID0gICAgICAgICAgLTMuODEwMmUtMDEKKyBhdGFuRiggICAgICAgICAtMy4wMDcwZS0wMSkgPSAgICAgICAgICAtMi45MjEwZS0wMQorIGF0YW5GKCAgICAgICAgIC0yLjAwODBlLTAxKSA9ICAgICAgICAgIC0xLjk4MTZlLTAxCisgYXRhbkYoICAgICAgICAgLTEuMDA5MGUtMDEpID0gICAgICAgICAgLTEuMDA1NmUtMDEKKyBhdGFuRiggICAgICAgICAtOS45OTk0ZS0wNCkgPSAgICAgICAgICAtOS45OTk0ZS0wNAorIGF0YW5GKCAgICAgICAgICs5Ljg5MDBlLTAyKSA9ICAgICAgICAgICs5Ljg1NzllLTAyCisgYXRhbkYoICAgICAgICAgKzEuOTg4MGUtMDEpID0gICAgICAgICAgKzEuOTYyNGUtMDEKKyBhdGFuRiggICAgICAgICArMi45ODcwZS0wMSkgPSAgICAgICAgICArMi45MDI2ZS0wMQorIGF0YW5GKCAgICAgICAgICszLjk4NjBlLTAxKSA9ICAgICAgICAgICszLjc5MzBlLTAxCisgYXRhbkYoICAgICAgICAgKzQuOTg1MGUtMDEpID0gICAgICAgICAgKzQuNjI0NWUtMDEKKyBhdGFuRiggICAgICAgICArNS45ODQwZS0wMSkgPSAgICAgICAgICArNS4zOTI0ZS0wMQorIGF0YW5GKCAgICAgICAgICs2Ljk4MzBlLTAxKSA9ICAgICAgICAgICs2LjA5NThlLTAxCisgYXRhbkYoICAgICAgICAgKzcuOTgyMGUtMDEpID0gICAgICAgICAgKzYuNzM2NGUtMDEKKyBhdGFuRiggICAgICAgICArOC45ODEwZS0wMSkgPSAgICAgICAgICArNy4zMTc2ZS0wMQorIGF0YW5GKCAgICAgICAgICs5Ljk4MDBlLTAxKSA9ICAgICAgICAgICs3Ljg0NDBlLTAxCithdGFuMkQoLTEuMDAwMDAwMDAwMDAwMGUrMDApID0gLTcuODUzOTgxNjMzOTc0NWUtMDEKK2F0YW4yRCgtOS4wMDAwMDAwMDEwMDAwZS0wMSkgPSAtNy4zMjgxNTEwMTg0MTc2ZS0wMQorYXRhbjJEKC04LjAwMDAwMDAwMjAwMDBlLTAxKSA9IC02Ljc0NzQwOTQyMzQ1NTBlLTAxCithdGFuMkQoLTcuMDAwMDAwMDAzMDAwMGUtMDEpID0gLTYuMTA3MjU5NjQ1OTA1NWUtMDEKK2F0YW4yRCgtNi4wMDAwMDAwMDQwMDAwZS0wMSkgPSAtNS40MDQxOTUwMDU2NDcwZS0wMQorYXRhbjJEKC01LjAwMDAwMDAwNTAwMDBlLTAxKSA9IC00LjYzNjQ3NjA5NDAwODFlLTAxCithdGFuMkQoLTQuMDAwMDAwMDA2MDAwMGUtMDEpID0gLTMuODA1MDYzNzc2Mjk2MWUtMDEKK2F0YW4yRCgtMy4wMDAwMDAwMDcwMDAwZS0wMSkgPSAtMi45MTQ1Njc5NTEyMDA3ZS0wMQorYXRhbjJEKC0yLjAwMDAwMDAwODAwMDBlLTAxKSA9IC0xLjk3Mzk1NTYwNjE5MTFlLTAxCithdGFuMkQoLTEuMDAwMDAwMDA5MDAwMGUtMDEpID0gLTkuOTY2ODY1MzM4MjI1MWUtMDIKK2F0YW4yRCgtMS4wMDAwMDAwNTQ5ODQ4ZS0wOSkgPSAtMS4wMDAwMDAwNTQ5ODQ4ZS0wOQorYXRhbjJEKCs5Ljk5OTk5OTg5MDAwMDBlLTAyKSA9ICs5Ljk2Njg2NTE0MDIwNTNlLTAyCithdGFuMkQoKzEuOTk5OTk5OTg4MDAwMGUtMDEpID0gKzEuOTczOTU1NTg2OTYwM2UtMDEKK2F0YW4yRCgrMi45OTk5OTk5ODcwMDAwZS0wMSkgPSArMi45MTQ1Njc5MzI4NTIxZS0wMQorYXRhbjJEKCszLjk5OTk5OTk4NjAwMDBlLTAxKSA9ICszLjgwNTA2Mzc1OTA1NDdlLTAxCithdGFuMkQoKzQuOTk5OTk5OTg1MDAwMGUtMDEpID0gKzQuNjM2NDc2MDc4MDA4MWUtMDEKK2F0YW4yRCgrNS45OTk5OTk5ODQwMDAwZS0wMSkgPSArNS40MDQxOTQ5OTA5NDExZS0wMQorYXRhbjJEKCs2Ljk5OTk5OTk4MzAwMDBlLTAxKSA9ICs2LjEwNzI1OTYzMjQ4MjdlLTAxCithdGFuMkQoKzcuOTk5OTk5OTgyMDAwMGUtMDEpID0gKzYuNzQ3NDA5NDExMjU5OWUtMDEKK2F0YW4yRCgrOC45OTk5OTk5ODEwMDAwZS0wMSkgPSArNy4zMjgxNTEwMDczNjc4ZS0wMQorYXRhbjJEKCs5Ljk5OTk5OTk4MDAwMDBlLTAxKSA9ICs3Ljg1Mzk4MTYyMzk3NDVlLTAxCithdGFuMkYoICAgICAgICAgLTEuMDAwMGUrMDApID0gICAgICAgICAgLTcuODU0MGUtMDEKK2F0YW4yRiggICAgICAgICAtOS4wMDEwZS0wMSkgPSAgICAgICAgICAtNy4zMjg3ZS0wMQorYXRhbjJGKCAgICAgICAgIC04LjAwMjBlLTAxKSA9ICAgICAgICAgIC02Ljc0ODZlLTAxCithdGFuMkYoICAgICAgICAgLTcuMDAzMGUtMDEpID0gICAgICAgICAgLTYuMTA5M2UtMDEKK2F0YW4yRiggICAgICAgICAtNi4wMDQwZS0wMSkgPSAgICAgICAgICAtNS40MDcxZS0wMQorYXRhbjJGKCAgICAgICAgIC01LjAwNTBlLTAxKSA9ICAgICAgICAgIC00LjY0MDVlLTAxCithdGFuMkYoICAgICAgICAgLTQuMDA2MGUtMDEpID0gICAgICAgICAgLTMuODEwMmUtMDEKK2F0YW4yRiggICAgICAgICAtMy4wMDcwZS0wMSkgPSAgICAgICAgICAtMi45MjEwZS0wMQorYXRhbjJGKCAgICAgICAgIC0yLjAwODBlLTAxKSA9ICAgICAgICAgIC0xLjk4MTZlLTAxCithdGFuMkYoICAgICAgICAgLTEuMDA5MGUtMDEpID0gICAgICAgICAgLTEuMDA1NmUtMDEKK2F0YW4yRiggICAgICAgICAtOS45OTk0ZS0wNCkgPSAgICAgICAgICAtOS45OTk0ZS0wNAorYXRhbjJGKCAgICAgICAgICs5Ljg5MDBlLTAyKSA9ICAgICAgICAgICs5Ljg1NzllLTAyCithdGFuMkYoICAgICAgICAgKzEuOTg4MGUtMDEpID0gICAgICAgICAgKzEuOTYyNGUtMDEKK2F0YW4yRiggICAgICAgICArMi45ODcwZS0wMSkgPSAgICAgICAgICArMi45MDI2ZS0wMQorYXRhbjJGKCAgICAgICAgICszLjk4NjBlLTAxKSA9ICAgICAgICAgICszLjc5MzBlLTAxCithdGFuMkYoICAgICAgICAgKzQuOTg1MGUtMDEpID0gICAgICAgICAgKzQuNjI0NWUtMDEKK2F0YW4yRiggICAgICAgICArNS45ODQwZS0wMSkgPSAgICAgICAgICArNS4zOTI0ZS0wMQorYXRhbjJGKCAgICAgICAgICs2Ljk4MzBlLTAxKSA9ICAgICAgICAgICs2LjA5NThlLTAxCithdGFuMkYoICAgICAgICAgKzcuOTgyMGUtMDEpID0gICAgICAgICAgKzYuNzM2NGUtMDEKK2F0YW4yRiggICAgICAgICArOC45ODEwZS0wMSkgPSAgICAgICAgICArNy4zMTc2ZS0wMQorYXRhbjJGKCAgICAgICAgICs5Ljk4MDBlLTAxKSA9ICAgICAgICAgICs3Ljg0NDBlLTAxCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy93cml0ZXYxLnN0ZGVyci5leHAtc29sYXJpcyBiL21lbWNoZWNrL3Rlc3RzL3dyaXRldjEuc3RkZXJyLmV4cC1zb2xhcmlzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxOWQ3NzUKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy93cml0ZXYxLnN0ZGVyci5leHAtc29sYXJpcwpAQCAtMCwwICsxLDE5IEBACitUZXN0IGZpbGUgY3JlYXRlZC4KK1N5c2NhbGwgcGFyYW0gd3JpdGV2KHZlY3RvclsuLi5dKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHdyaXRldjEuYzo1NikKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1JlY2VpdmVkIEVGQVVMVCBhcyBleHBlY3RlZAorU3lzY2FsbCBwYXJhbSB3cml0ZXYodmVjdG9yKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHdyaXRldjEuYzo2OCkKKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgMCBieXRlcyBhZnRlciB0aGUgYnJrIGRhdGEgc2VnbWVudCBsaW1pdCAweC4uLi4uLi4uCisKK1JlY2VpdmVkIEVJTlZBTCBhcyBleHBlY3RlZAorU3lzY2FsbCBwYXJhbSByZWFkdih2ZWN0b3IpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorICAgYnkgMHguLi4uLi4uLjogbWFpbiAod3JpdGV2MS5jOjc2KQorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyAwIGJ5dGVzIGFmdGVyIHRoZSBicmsgZGF0YSBzZWdtZW50IGxpbWl0IDB4Li4uLi4uLi4KKworUmVjZWl2ZWQgRUlOVkFMIGFzIGV4cGVjdGVkCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtbGludXgvc2NhbGFyLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy94ODYtbGludXgvc2NhbGFyLnN0ZGVyci5leHAKaW5kZXggOTViMWU4NS4uMzBjZmQxYyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMveDg2LWxpbnV4L3NjYWxhci5zdGRlcnIuZXhwCisrKyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1saW51eC9zY2FsYXIuc3RkZXJyLmV4cApAQCAtNDE1LDcgKzQxNSw3IEBACiAgICAuLi4KICAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKHNjYWxhci5jOjE5NikKIAotU3lzY2FsbCBwYXJhbSBraWxsKHNpZykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCitTeXNjYWxsIHBhcmFtIGtpbGwoc2lnbmFsKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKICAgIC4uLgogICAgYnkgMHguLi4uLi4uLjogbWFpbiAoc2NhbGFyLmM6MTk2KQogCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9NYWtlZmlsZS5hbSBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3NTlmZTYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDMyIEBACisKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCisKK2Rpc3Rfbm9pbnN0X1NDUklQVFMgPSBmaWx0ZXJfc3RkZXJyCisKK0VYVFJBX0RJU1QgPSBcCisJc2NhbGFyLnN0ZGVyci5leHAgc2NhbGFyLnN0ZG91dC5leHAgc2NhbGFyLnZndGVzdCBcCisJc2NhbGFyX29ic29sZXRlLnN0ZGVyci5leHAgc2NhbGFyX29ic29sZXRlLnN0ZG91dC5leHAgc2NhbGFyX29ic29sZXRlLnZndGVzdCBcCisJY29udGV4dF9lZmxhZ3Muc3RkZXJyLmV4cCBjb250ZXh0X2VmbGFncy5zdGRvdXQuZXhwIGNvbnRleHRfZWZsYWdzLnZndGVzdCBcCisJY29udGV4dF9lZmxhZ3MyLnN0ZGVyci5leHAgY29udGV4dF9lZmxhZ3MyLnN0ZG91dC5leHAgY29udGV4dF9lZmxhZ3MyLnZndGVzdCBcCisJY29udGV4dF9mcHUuc3RkZXJyLmV4cCBjb250ZXh0X2ZwdS5zdGRvdXQuZXhwIGNvbnRleHRfZnB1LnZndGVzdCBcCisJY29udGV4dF9ncHIuc3RkZXJyLmV4cCBjb250ZXh0X2dwci5zdGRvdXQuZXhwIGNvbnRleHRfZ3ByLnZndGVzdCBcCisJY29udGV4dF9zc2Uuc3RkZXJyLmV4cCBjb250ZXh0X3NzZS5zdGRvdXQuZXhwIGNvbnRleHRfc3NlLnZndGVzdCBcCisJbGRzb2V4ZWMuc3RkZXJyLmV4cCBsZHNvZXhlYy52Z3Rlc3QKKworY2hlY2tfUFJPR1JBTVMgPSBcCisJc2NhbGFyIFwKKwljb250ZXh0X2VmbGFncyBcCisJY29udGV4dF9lZmxhZ3MyIFwKKwljb250ZXh0X2ZwdSBcCisJY29udGV4dF9ncHIgXAorCWNvbnRleHRfc3NlIFwKKwlsZHNvZXhlYworCitpZiBTT0xBUklTX09MRF9TWVNDQUxMUworY2hlY2tfUFJPR1JBTVMgKz0gc2NhbGFyX29ic29sZXRlCitlbmRpZgorCitBTV9DRkxBR1MgICAgKz0gQEZMQUdfTTMyQAorQU1fQ1hYRkxBR1MgICs9IEBGTEFHX00zMkAKK0FNX0NDQVNGTEFHUyArPSBARkxBR19NMzJACisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZWZsYWdzLmMgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFncy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzYzYzNzcKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFncy5jCkBAIC0wLDAgKzEsNzEgQEAKKy8qIHg4NiB2YXJpYW50IG9mIHRoZSBhbWQ2NC1zb2xhcmlzL2NvbnRleHRfcmZsYWdzLmMgdGVzdC4gKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KKworI2RlZmluZSBPQklUKGVmbGFncykgKCEhKChlZmxhZ3MpICYgKDEgPDwgMTEpKSkKKyNkZWZpbmUgU0JJVChlZmxhZ3MpICghISgoZWZsYWdzKSAmICgxIDw8IDcpKSkKKworc3RhdGljIHNpZ2luZm9fdCBzaTsKK3N0YXRpYyB1Y29udGV4dF90IHVjOworCitzdGF0aWMgdm9pZCBzaWdoYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCAqc2lwLCB1Y29udGV4dF90ICp1Y3ApCit7CisgICBzaSA9ICpzaXA7CisgICB1YyA9ICp1Y3A7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworICAgcGlkX3QgcGlkOworICAgaW50IGVmbGFnczsKKworICAgc2Euc2FfaGFuZGxlciA9IHNpZ2hhbmRsZXI7CisgICBzYS5zYV9mbGFncyA9IFNBX1NJR0lORk87CisgICBpZiAoc2lnZmlsbHNldCgmc2Euc2FfbWFzaykpIHsKKyAgICAgIHBlcnJvcigic2lnZmlsbHNldCIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisgICBpZiAoc2lnYWN0aW9uKFNJR1VTUjEsICZzYSwgTlVMTCkpIHsKKyAgICAgIHBlcnJvcigic2lnYWN0aW9uIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgcGlkID0gZ2V0cGlkKCk7CisKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgLyogU2V0IG92ZXJmbG93IGFuZCBzaWduIGZsYWdzLiAqLworICAgICAgIm1vdmwgICAkMSwgJSVlZHhcbiIKKyAgICAgICJhZGRsICAgJDB4N2ZmZmZmZmYsICUlZWR4XG4iCisKKyAgICAgIC8qIFByZXBhcmUgc3lzY2FsbCBwYXJhbWV0ZXJzLiAqLworICAgICAgInB1c2hsICAlW3NpZ11cbiIKKyAgICAgICJwdXNobCAgJVtwaWRdXG4iCisgICAgICAicHVzaGwgICQweGRlYWRiZWVmXG4iCisgICAgICAibW92bCAgICVbc2NhbGxdLCAlJWVheFxuIgorCisgICAgICAvKiBUcmlnZ2VyIHRoZSBzaWduYWwgaGFuZGxlci4gKi8KKyAgICAgICJpbnQgICAgJDB4OTFcbiIKKyAgICAgICJwdXNoZmxcbiIKKyAgICAgICJwb3BsICAgJSVlZHhcbiIKKyAgICAgICJhZGRsICAgJDEyLCAlJWVzcFxuIgorICAgICAgOiAiPWQiIChlZmxhZ3MpCisgICAgICA6IFtzY2FsbF0gImkiIChTWVNfa2lsbCksIFtwaWRdICJhIiAocGlkKSwgW3NpZ10gImkiIChTSUdVU1IxKQorICAgICAgOiAiY2MiLCAibWVtb3J5Iik7CisKKyAgIHByaW50ZigiVmFsdWVzIGluIHRoZSBzaWduYWwgaGFuZGxlcjpcbiIpOworICAgcHJpbnRmKCIgIG92ZXJmbG93PSVkLCBzaWduPSVkXG4iLAorICAgICAgICAgIE9CSVQodWMudWNfbWNvbnRleHQuZ3JlZ3NbRUZMXSksIFNCSVQodWMudWNfbWNvbnRleHQuZ3JlZ3NbRUZMXSkpOworCisgICBwcmludGYoIlZhbHVlcyBhZnRlciB0aGUgcmV0dXJuIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyOlxuIik7CisgICBwcmludGYoIiAgb3ZlcmZsb3c9JWQsIHNpZ249JWRcbiIsIE9CSVQoZWZsYWdzKSwgU0JJVChlZmxhZ3MpKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZWZsYWdzLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFncy5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFncy5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9lZmxhZ3Muc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YWQ3YmFjCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9lZmxhZ3Muc3Rkb3V0LmV4cApAQCAtMCwwICsxLDQgQEAKK1ZhbHVlcyBpbiB0aGUgc2lnbmFsIGhhbmRsZXI6CisgIG92ZXJmbG93PTEsIHNpZ249MQorVmFsdWVzIGFmdGVyIHRoZSByZXR1cm4gZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXI6CisgIG92ZXJmbG93PTEsIHNpZ249MQpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9lZmxhZ3Mudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9lZmxhZ3Mudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwMzc4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFncy52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBjb250ZXh0X2VmbGFncwordmdvcHRzOiAtcSAtLXRyYWNrLW9yaWdpbnM9eWVzCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFnczIuYyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZWZsYWdzMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmMzc2OTMKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFnczIuYwpAQCAtMCwwICsxLDgwIEBACisvKiB4ODYgdmFyaWFudCBvZiB0aGUgYW1kNjQtc29sYXJpcy9jb250ZXh0X3JmbGFnczIuYyB0ZXN0LiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorCisjZGVmaW5lIE9CSVQoZWZsYWdzKSAoISEoKGVmbGFncykgJiAoMSA8PCAxMSkpKQorI2RlZmluZSBTQklUKGVmbGFncykgKCEhKChlZmxhZ3MpICYgKDEgPDwgNykpKQorCitzdGF0aWMgc2lnaW5mb190IHNpOworc3RhdGljIHVjb250ZXh0X3QgdWM7CisKK3ZvaWQgYnJlYWtfb3V0KHZvaWQpOworCitzdGF0aWMgdm9pZCBzaWdoYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCAqc2lwLCB1Y29udGV4dF90ICp1Y3ApCit7CisgICBzaSA9ICpzaXA7CisgICB1YyA9ICp1Y3A7CisKKyAgIC8qIEJyZWFrIG91dCBvZiB0aGUgZW5kbGVzcyBsb29wLiAqLworICAgKih1aW50cHRyX3QqKSZ1Y3AtPnVjX21jb250ZXh0LmdyZWdzW0VJUF0gPSAodWludHB0cl90KWJyZWFrX291dDsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIHN0cnVjdCBzaWdhY3Rpb24gc2E7CisgICBpbnQgZWZsYWdzOworICAgaW50IHgxOworCisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBpbnQgKnB4ID0gbWFsbG9jKHNpemVvZigqcHgpKTsKKyAgIHgxID0gcHhbMF0gKyAxOworCisgICBzYS5zYV9oYW5kbGVyID0gc2lnaGFuZGxlcjsKKyAgIHNhLnNhX2ZsYWdzID0gU0FfU0lHSU5GTzsKKyAgIGlmIChzaWdmaWxsc2V0KCZzYS5zYV9tYXNrKSkgeworICAgICAgcGVycm9yKCJzaWdmaWxsc2V0Iik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKyAgIGlmIChzaWdhY3Rpb24oU0lHQUxSTSwgJnNhLCBOVUxMKSkgeworICAgICAgcGVycm9yKCJzaWdhY3Rpb24iKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICBhbGFybSgyKTsKKworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCisgICAgICAvKiBTZXQgb3ZlcmZsb3cgYW5kIHNpZ24gZmxhZ3MuICovCisgICAgICAibW92bCAgICVbeDFdLCAlJWVkeFxuIgorICAgICAgImFkZGwgICAkMHg3ZmZmZmZmZiwgJSVlZHhcbiIKKworICAgICAgLyogTG9vcGl0eSBsb29wLCB0aGlzIGlzIHdoZXJlIHRoZSBTSUdBTFJNIGlzIHRyaWdnZXJlZC4gKi8KKyAgICAgICIxOlxuIgorICAgICAgImptcCAgICAxYlxuIgorCisgICAgICAiYnJlYWtfb3V0OlxuIgorICAgICAgInB1c2hmbFxuIgorICAgICAgInBvcGwgICAlJWVkeFxuIgorICAgICAgOiAiPWQiIChlZmxhZ3MpCisgICAgICA6IFt4MV0gIm0iICh4MSkKKyAgICAgIDogImNjIiwgIm1lbW9yeSIpOworCisgICAvKiBDaGVjayB0aGF0IHRoZSBvdmVyZmxvdyBhbmQgc2lnbiBmbGFncyBhcmUgdW5pbml0aWFsaXNlZC4KKworICAgICAgTm90ZTogVGhpcyBhY3R1YWxseSBmYWlscyBiZWNhdXNlIHRoZSBlZmxhZ3MgYXJlIG9ubHkgYXBwcm94aW1hdGUKKyAgICAgIChhbHdheXMgaW5pdGlhbGlzZWQpIGluIHRoZSBzaWduYWwgaGFuZGxlci4gKi8KKyAgIGlmICghT0JJVCh1Yy51Y19tY29udGV4dC5ncmVnc1tFRkxdKSB8fCAhU0JJVCh1Yy51Y19tY29udGV4dC5ncmVnc1tFRkxdKSkKKyAgICAgIGFzc2VydCgwKTsKKworICAgLyogQ2hlY2sgdGhhdCB0aGUgb3ZlcmZsb3cgYW5kIHNpZ24gZmxhZ3MgYXJlIHVuaW5pdGlhbGlzZWQuICovCisgICBpZiAoIU9CSVQoZWZsYWdzKSB8fCAhU0JJVChlZmxhZ3MpKQorICAgICAgYXNzZXJ0KDApOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9lZmxhZ3MyLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFnczIuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTJiMmU3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9lZmxhZ3MyLnN0ZGVyci5leHAKQEAgLTAsMCArMSwxMiBAQAorQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9lZmxhZ3MyLmM6NzUpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZWZsYWdzMi5jOjM1KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2VmbGFnczIuYzo3NSkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9lZmxhZ3MyLmM6MzUpCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZWZsYWdzMi5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9lZmxhZ3MyLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZWZsYWdzMi52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFnczIudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkNTc1NzAKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2VmbGFnczIudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogY29udGV4dF9lZmxhZ3MyCit2Z29wdHM6IC1xIC0tdHJhY2stb3JpZ2lucz15ZXMKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZnB1LmMgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2ZwdS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkNjE4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2ZwdS5jCkBAIC0wLDAgKzEsMTE2IEBACisvKiB4ODYgdmFyaWFudCBvZiB0aGUgYW1kNjQtc29sYXJpcy9jb250ZXh0X2ZwdS5jIHRlc3QuICovCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8c3lzL3Vjb250ZXh0Lmg+CisKK3N0YXRpYyBzaWdpbmZvX3Qgc2k7CitzdGF0aWMgdWNvbnRleHRfdCB1YzsKK3N0YXRpYyBmbG9hdCBpbmhhbmRsZXJbOF07CisKK3N0YXRpYyB2b2lkIHNpZ2hhbmRsZXIoaW50IHNpZywgc2lnaW5mb190ICpzaXAsIHVjb250ZXh0X3QgKnVjcCkKK3sKKyAgIGludCBpOworCisgICBzaSA9ICpzaXA7CisgICB1YyA9ICp1Y3A7CisKKyAgIC8qIFJlc2V0IHRoZSBGUCBzdGFjayBzbyBpdCdzIHBvc3NpYmxlIHRvIHB1c2ggb3RoZXIgdmFsdWVzIG9udG8gaXQuICAoSXQKKyAgICAgIGlzIGZ1bGx5IGZpbGxlZCBpbiBtYWluKCkgYmVmb3JlIHRyaWdnZXJpbmcgdGhlIHNpZ25hbCBoYW5kbGVyKS4gIE5vdGUKKyAgICAgIHRoYXQgVkVYIGFsc28gY2xlYXJzIGFsbCBGUCB2YWx1ZXMgd2hlbiB0aGUgZmluaXQgaW5zdHJ1Y3Rpb24gaXMKKyAgICAgIGV4ZWN1dGVkLiAgVGhpcyBwcm92aWRlcyBhbm90aGVyIGxldmVsIG9mIHZhbGlkYXRpb24gdGhhdCB0aGUgcmVzdG9yZQorICAgICAgY29kZSBpcyBjb3JyZWN0LiAqLworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCisgICAgICAiZmluaXRcbiIpOworCisgICAvKiBDb252ZXJ0IDgwYiB2YWx1ZXMgaW4gbWNvbnRleHQgdG8gMzJiIHZhbHVlcyBpbiB0aGUgaW5oYW5kbGVyIGFycmF5LiAqLworICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCisgICAgICAgICAiZmxkdCAgICVbaW5dXG4iCisgICAgICAgICAiZnN0cHMgICVbb3V0XVxuIgorICAgICAgICAgOiBbb3V0XSAiPW0iIChpbmhhbmRsZXJbaV0pCisgICAgICAgICA6IFtpbl0gIm0iICgqKChjaGFyKikmdWNwLT51Y19tY29udGV4dC5mcHJlZ3MuZnBfcmVnX3NldC5mcGNoaXBfc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgKyAyOCArIGkgKiAxMCkpKTsKKyAgIH0KK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIHN0cnVjdCBzaWdhY3Rpb24gc2E7CisgICBwaWRfdCBwaWQ7CisgICBmbG9hdCBvdXRbOF07CisgICBmbG9hdCB4MDsKKworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHhbMF0gaXMgMHgwLiAqLworICAgZmxvYXQgKnB4ID0gbWFsbG9jKHNpemVvZigqcHgpKTsKKyAgIHgwID0gcHhbMF07CisKKyAgIHNhLnNhX2hhbmRsZXIgPSBzaWdoYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdVU1IxLCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIHBpZCA9IGdldHBpZCgpOworCisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAgIC8qIFNldCB2YWx1ZXMgaW4gdGhlIEZQIHN0YWNrLiAqLworICAgICAgImZsZHMgICAlW3gwXVxuIgorICAgICAgImZsZDFcbiIKKyAgICAgICJmbGRzICAgJVt4MF1cbiIKKyAgICAgICJmbGQxXG4iCisgICAgICAiZmxkcyAgICVbeDBdXG4iCisgICAgICAiZmxkMVxuIgorICAgICAgImZsZHMgICAlW3gwXVxuIgorICAgICAgImZsZDFcbiIKKworICAgICAgLyogUHJlcGFyZSBzeXNjYWxsIHBhcmFtZXRlcnMuICovCisgICAgICAicHVzaGwgICVbc2lnXVxuIgorICAgICAgInB1c2hsICAlW3BpZF1cbiIKKyAgICAgICJwdXNobCAgJDB4ZGVhZGJlZWZcbiIKKyAgICAgICJtb3ZsICAgJVtzY2FsbF0sICUlZWF4XG4iCisKKyAgICAgIC8qIFRyaWdnZXIgdGhlIHNpZ25hbCBoYW5kbGVyLiAqLworICAgICAgImludCAgICAkMHg5MVxuIgorICAgICAgImFkZGwgICAkMTIsICUlZXNwXG4iCisgICAgICAiZnN0cHMgIDB4MDAgKyAlW291dF1cbiIKKyAgICAgICJmc3RwcyAgMHgwNCArICVbb3V0XVxuIgorICAgICAgImZzdHBzICAweDA4ICsgJVtvdXRdXG4iCisgICAgICAiZnN0cHMgIDB4MGMgKyAlW291dF1cbiIKKyAgICAgICJmc3RwcyAgMHgxMCArICVbb3V0XVxuIgorICAgICAgImZzdHBzICAweDE0ICsgJVtvdXRdXG4iCisgICAgICAiZnN0cHMgIDB4MTggKyAlW291dF1cbiIKKyAgICAgICJmc3RwcyAgMHgxYyArICVbb3V0XVxuIgorICAgICAgOiBbb3V0XSAiPW0iIChvdXRbMF0pCisgICAgICA6IFtzY2FsbF0gImkiIChTWVNfa2lsbCksIFtwaWRdICJhIiAocGlkKSwgW3NpZ10gImkiIChTSUdVU1IxKSwKKyAgICAgICAgW3gwXSAibSIgKHgwKQorICAgICAgOiAiZWR4IiwgImNjIiwgIm1lbW9yeSIpOworCisgICBwcmludGYoIlZhbHVlcyBpbiB0aGUgc2lnbmFsIGhhbmRsZXI6XG4iKTsKKyAgIHByaW50ZigiICBmcFswXT0lZiwgZnBbMl09JWYsIGZwWzRdPSVmLCBmcFs2XT0lZlxuIiwKKyAgICAgICAgICBpbmhhbmRsZXJbMF0sIGluaGFuZGxlclsyXSwgaW5oYW5kbGVyWzRdLCBpbmhhbmRsZXJbNl0pOworICAgLyogQ2hlY2sgdGhhdCBpbmhhbmRsZXJbMV0sIGluaGFuZGxlclszXSwgaW5oYW5kbGVyWzVdIGFuZCBpbmhhbmRsZXJbN10KKyAgICAgIGNvbnRhaW4gdW5pbml0aWFsaXNlZCB2YWx1ZXMgKG9yaWdpbiBpcyBweFswXSkuICovCisgICBpZiAoaW5oYW5kbGVyWzFdIHx8IGluaGFuZGxlclszXSB8fCBpbmhhbmRsZXJbNV0gfHwgaW5oYW5kbGVyWzddKQorICAgICAgYXNzZXJ0KDApOworCisgICBwcmludGYoIlZhbHVlcyBhZnRlciB0aGUgcmV0dXJuIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyOlxuIik7CisgICBwcmludGYoIiAgZnBbMF09JWYsIGZwWzJdPSVmLCBmcFs0XT0lZiwgZnBbNl09JWZcbiIsCisgICAgICAgICAgb3V0WzBdLCBvdXRbMl0sIG91dFs0XSwgb3V0WzZdKTsKKyAgIC8qIENoZWNrIHRoYXQgb3V0WzFdLCBvdXRbM10sIG91dFs1XSBhbmQgb3V0WzddIGNvbnRhaW4gdW5pbml0aWFsaXNlZAorICAgICAgdmFsdWVzIChvcmlnaW4gaXMgcHhbMF0pLiAqLworICAgaWYgKG91dFsxXSB8fCBvdXRbM10gfHwgb3V0WzVdIHx8IG91dFs3XSkKKyAgICAgIGFzc2VydCgwKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZnB1LnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2ZwdS5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3NzAwOTcKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2ZwdS5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsOTYgQEAKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTAzKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjQ5KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjEwMykKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo0OSkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzoxMDMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6NDkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTAzKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjQ5KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjEwMykKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo0OSkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzoxMDMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6NDkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTAzKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjQ5KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjEwMykKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo0OSkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzoxMTEpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6NDkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTExKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjQ5KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjExMSkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo0OSkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzoxMTEpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6NDkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTExKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjQ5KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjExMSkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzo0OSkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9mcHUuYzoxMTEpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6NDkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZnB1LmM6MTExKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X2ZwdS5jOjQ5KQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2ZwdS5zdGRvdXQuZXhwIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9mcHUuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzNiZjFkCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9mcHUuc3Rkb3V0LmV4cApAQCAtMCwwICsxLDQgQEAKK1ZhbHVlcyBpbiB0aGUgc2lnbmFsIGhhbmRsZXI6CisgIGZwWzBdPTEuMDAwMDAwLCBmcFsyXT0xLjAwMDAwMCwgZnBbNF09MS4wMDAwMDAsIGZwWzZdPTEuMDAwMDAwCitWYWx1ZXMgYWZ0ZXIgdGhlIHJldHVybiBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgZnBbMF09MS4wMDAwMDAsIGZwWzJdPTEuMDAwMDAwLCBmcFs0XT0xLjAwMDAwMCwgZnBbNl09MS4wMDAwMDAKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZnB1LnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZnB1LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTM5NTVkCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9mcHUudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogY29udGV4dF9mcHUKK3Znb3B0czogLXEgLS10cmFjay1vcmlnaW5zPXllcwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9ncHIuYyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZ3ByLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUzNWVhMwotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZ3ByLmMKQEAgLTAsMCArMSw5MiBAQAorLyogeDg2IHZhcmlhbnQgb2YgdGhlIGFtZDY0LXNvbGFyaXMvY29udGV4dF9ncHIuYyB0ZXN0LiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorCitzdGF0aWMgc2lnaW5mb190IHNpOworc3RhdGljIHVjb250ZXh0X3QgdWM7CisvKiB4MCBpcyBhbHdheXMgemVybywgYnV0IGlzIHZpc2libGUgdG8gVmFsZ3JpbmQgYXMgdW5pbml0aWFsaXNlZC4gKi8KK3N0YXRpYyBpbnQgeDA7CisKK3N0YXRpYyB2b2lkIHNpZ2hhbmRsZXIoaW50IHNpZywgc2lnaW5mb190ICpzaXAsIHVjb250ZXh0X3QgKnVjcCkKK3sKKyAgIHNpID0gKnNpcDsKKyAgIHVjID0gKnVjcDsKKworICAgdWNwLT51Y19tY29udGV4dC5ncmVnc1tFQ1hdID0geDA7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworICAgcGlkX3QgcGlkOworICAgaW50IGVheCwgZWJ4LCBlY3gsIGVkeCwgZXNpLCBlZGk7CisgICBpbnQgeTA7CisKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGludCAqcHggPSBtYWxsb2Moc2l6ZW9mKCpweCkpOworICAgeDAgPSBweFswXTsKKworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHlbMF0gaXMgMHgwLiAqLworICAgaW50ICpweSA9IG1hbGxvYyhzaXplb2YoKnB5KSk7CisgICB5MCA9IHB5WzBdOworCisgICBzYS5zYV9oYW5kbGVyID0gc2lnaGFuZGxlcjsKKyAgIHNhLnNhX2ZsYWdzID0gU0FfU0lHSU5GTzsKKyAgIGlmIChzaWdmaWxsc2V0KCZzYS5zYV9tYXNrKSkgeworICAgICAgcGVycm9yKCJzaWdmaWxsc2V0Iik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKyAgIGlmIChzaWdhY3Rpb24oU0lHVVNSMSwgJnNhLCBOVUxMKSkgeworICAgICAgcGVycm9yKCJzaWdhY3Rpb24iKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICBwaWQgPSBnZXRwaWQoKTsKKworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCisgICAgICAvKiBTZXQgdmFsdWVzIGluIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuICovCisgICAgICAibW92bCAgICVbeTBdLCAlJWVieFxuIgorICAgICAgIm1vdmwgICAkMHhmMSwgJSVlY3hcbiIKKyAgICAgICJtb3ZsICAgJDB4ZjIsICUlZWR4XG4iCisgICAgICAibW92bCAgICQweGYzLCAlJWVzaVxuIgorICAgICAgIm1vdmwgICAkMHhmNCwgJSVlZGlcbiIKKworICAgICAgLyogUHJlcGFyZSBzeXNjYWxsIHBhcmFtZXRlcnMuICovCisgICAgICAicHVzaGwgICVbc2lnXVxuIgorICAgICAgInB1c2hsICAlW3BpZF1cbiIKKyAgICAgICJwdXNobCAgJDB4ZGVhZGJlZWZcbiIKKyAgICAgICJtb3ZsICAgJVtzY2FsbF0sICUlZWF4XG4iCisKKyAgICAgIC8qIFRyaWdnZXIgdGhlIHNpZ25hbCBoYW5kbGVyLiAqLworICAgICAgImludCAgICAkMHg5MVxuIgorICAgICAgImFkZGwgICAkMTIsICUlZXNwXG4iCisgICAgICA6ICI9YSIgKGVheCksICI9YiIgKGVieCksICI9YyIgKGVjeCksICI9ZCIgKGVkeCksICI9UyIgKGVzaSksCisgICAgICAgICI9RCIgKGVkaSkKKyAgICAgIDogW3NjYWxsXSAiaSIgKFNZU19raWxsKSwgW3BpZF0gImEiIChwaWQpLCBbc2lnXSAiaSIgKFNJR1VTUjEpLAorICAgICAgICBbeTBdICJtIiAoeTApCisgICAgICA6ICJjYyIsICJtZW1vcnkiKTsKKworICAgcHJpbnRmKCJWYWx1ZXMgaW4gdGhlIHNpZ25hbCBoYW5kbGVyOlxuIik7CisgICBwcmludGYoIiAgZWF4PSUjeCwgZWR4PSUjeCwgZXNpPSUjeCwgZWRpPSUjeFxuIiwKKyAgICAgICAgICB1Yy51Y19tY29udGV4dC5ncmVnc1tFQVhdLCB1Yy51Y19tY29udGV4dC5ncmVnc1tFRFhdLAorICAgICAgICAgIHVjLnVjX21jb250ZXh0LmdyZWdzW0VTSV0sIHVjLnVjX21jb250ZXh0LmdyZWdzW0VESV0pOworICAgLyogQ2hlY2sgdGhhdCBlYnggY29udGFpbnMgYW4gdW5pbml0aWFsaXNlZCB2YWx1ZSAob3JpZ2luIGlzIHB5WzBdKS4gKi8KKyAgIGlmICh1Yy51Y19tY29udGV4dC5ncmVnc1tFQlhdKQorICAgICAgYXNzZXJ0KDApOworCisgICBwcmludGYoIlZhbHVlcyBhZnRlciB0aGUgcmV0dXJuIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyOlxuIik7CisgICBwcmludGYoIiAgZWF4PSUjeCwgZWR4PSUjeCwgZXNpPSUjeCwgZWRpPSUjeFxuIiwgZWF4LCBlZHgsIGVzaSwgZWRpKTsKKyAgIC8qIENoZWNrIHRoYXQgZWJ4IGFuZCBlY3ggY29udGFpbiB1bmluaXRpYWxpc2VkIHZhbHVlcyAob3JpZ2luIGlzIHB5WzBdCisgICAgICBhbmQgcHhbMF0sIHJlc3BlY3RpdmVseSkuICovCisgICBpZiAoZWJ4IHx8IGVjeCkKKyAgICAgIGFzc2VydCgwKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZ3ByLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2dwci5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmMjQ0OTgKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2dwci5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMTggQEAKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6ODApCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6MzYpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6MzYpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6ODcpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfZ3ByLmM6MzIpCisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfZ3ByLnN0ZG91dC5leHAgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2dwci5zdGRvdXQuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4ZmYyMzkKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2dwci5zdGRvdXQuZXhwCkBAIC0wLDAgKzEsNCBAQAorVmFsdWVzIGluIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgZWF4PTAsIGVkeD0wLCBlc2k9MHhmMywgZWRpPTB4ZjQKK1ZhbHVlcyBhZnRlciB0aGUgcmV0dXJuIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyOgorICBlYXg9MCwgZWR4PTAsIGVzaT0weGYzLCBlZGk9MHhmNApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9ncHIudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9ncHIudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNTZmNTgKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X2dwci52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBjb250ZXh0X2dwcgordmdvcHRzOiAtcSAtLXRyYWNrLW9yaWdpbnM9eWVzCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X3NzZS5jIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9zc2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGVhNDcwCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9zc2UuYwpAQCAtMCwwICsxLDEwNiBAQAorLyogeDg2IHZhcmlhbnQgb2YgdGhlIGFtZDY0LXNvbGFyaXMvY29udGV4dF9zc2UuYyB0ZXN0LiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorCitzdGF0aWMgc2lnaW5mb190IHNpOworc3RhdGljIHVjb250ZXh0X3QgdWM7CisvKiB4MCBpcyBhbHdheXMgemVybywgYnV0IGlzIHZpc2libGUgdG8gVmFsZ3JpbmQgYXMgdW5pbml0aWFsaXNlZC4gKi8KK3N0YXRpYyB1cGFkMTI4X3QgeDA7CitzdGF0aWMgdXBhZDEyOF90IGQwID0gezB9OworCitzdGF0aWMgdm9pZCBzaWdoYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCAqc2lwLCB1Y29udGV4dF90ICp1Y3ApCit7CisgICBzaSA9ICpzaXA7CisgICB1YyA9ICp1Y3A7CisKKyAgIHVjcC0+dWNfbWNvbnRleHQuZnByZWdzLmZwX3JlZ19zZXQuZnBjaGlwX3N0YXRlLnhtbVswXSA9IGQwOworICAgdWNwLT51Y19tY29udGV4dC5mcHJlZ3MuZnBfcmVnX3NldC5mcGNoaXBfc3RhdGUueG1tWzFdID0geDA7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworICAgcGlkX3QgcGlkOworICAgdXBhZDEyOF90IG91dFs4XTsKKyAgIHVwYWQxMjhfdCB5MDsKKyAgIHN0cnVjdCBmcGNoaXBfc3RhdGUgKmZzID0gJnVjLnVjX21jb250ZXh0LmZwcmVncy5mcF9yZWdfc2V0LmZwY2hpcF9zdGF0ZTsKKworICAgLyogVW5pbml0aWFsaXNlZCwgYnV0IHdlIGtub3cgcHhbMF0gaXMgMHgwLiAqLworICAgdXBhZDEyOF90ICpweCA9IG1hbGxvYyhzaXplb2YoKnB4KSk7CisgICB4MCA9IHB4WzBdOworCisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweVswXSBpcyAweDAuICovCisgICB1cGFkMTI4X3QgKnB5ID0gbWFsbG9jKHNpemVvZigqcHkpKTsKKyAgIHkwID0gcHlbMF07CisKKyAgIHNhLnNhX2hhbmRsZXIgPSBzaWdoYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdVU1IxLCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIHBpZCA9IGdldHBpZCgpOworCisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAgIC8qIFNldCB2YWx1ZXMgaW4gdGhlIFNTRSByZWdpc3RlcnMuICovCisgICAgICAibW92dXBzICVbeTBdLCAlJXhtbTBcbiIKKyAgICAgICJtb3Z1cHMgJVtkMF0sICUleG1tMVxuIgorICAgICAgIm1vdnVwcyAlW2QwXSwgJSV4bW0yXG4iCisgICAgICAibW92dXBzICVbeTBdLCAlJXhtbTNcbiIKKyAgICAgICJtb3Z1cHMgJVt5MF0sICUleG1tNFxuIgorICAgICAgIm1vdnVwcyAlW2QwXSwgJSV4bW01XG4iCisgICAgICAibW92dXBzICVbZDBdLCAlJXhtbTZcbiIKKyAgICAgICJtb3Z1cHMgJVt5MF0sICUleG1tN1xuIgorCisgICAgICAvKiBQcmVwYXJlIHN5c2NhbGwgcGFyYW1ldGVycy4gKi8KKyAgICAgICJwdXNobCAgJVtzaWddXG4iCisgICAgICAicHVzaGwgICVbcGlkXVxuIgorICAgICAgInB1c2hsICAkMHhkZWFkYmVlZlxuIgorICAgICAgIm1vdmwgICAlW3NjYWxsXSwgJSVlYXhcbiIKKworICAgICAgLyogVHJpZ2dlciB0aGUgc2lnbmFsIGhhbmRsZXIuICovCisgICAgICAiaW50ICAgICQweDkxXG4iCisgICAgICAiYWRkbCAgICQxMiwgJSVlc3BcbiIKKyAgICAgICJtb3Z1cHMgJSV4bW0wLCAweDAwICsgJVtvdXRdXG4iCisgICAgICAibW92dXBzICUleG1tMSwgMHgxMCArICVbb3V0XVxuIgorICAgICAgIm1vdnVwcyAlJXhtbTIsIDB4MjAgKyAlW291dF1cbiIKKyAgICAgICJtb3Z1cHMgJSV4bW0zLCAweDMwICsgJVtvdXRdXG4iCisgICAgICAibW92dXBzICUleG1tNCwgMHg0MCArICVbb3V0XVxuIgorICAgICAgIm1vdnVwcyAlJXhtbTUsIDB4NTAgKyAlW291dF1cbiIKKyAgICAgICJtb3Z1cHMgJSV4bW02LCAweDYwICsgJVtvdXRdXG4iCisgICAgICAibW92dXBzICUleG1tNywgMHg3MCArICVbb3V0XVxuIgorICAgICAgOiBbb3V0XSAiPW0iIChvdXRbMF0pCisgICAgICA6IFtzY2FsbF0gImkiIChTWVNfa2lsbCksIFtwaWRdICJhIiAocGlkKSwgW3NpZ10gImkiIChTSUdVU1IxKSwKKyAgICAgICAgW3kwXSAibSIgKHkwKSwgW2QwXSAibSIgKGQwKQorICAgICAgOiAiZWR4IiwgImNjIiwgIm1lbW9yeSIpOworCisgICBwcmludGYoIlZhbHVlcyBpbiB0aGUgc2lnbmFsIGhhbmRsZXI6XG4iKTsKKyAgIHByaW50ZigiICB4bW0xPSVMZiwgeG1tMj0lTGYsIHhtbTU9JUxmLCB4bW02PSVMZlxuIiwKKyAgICAgICAgICBmcy0+eG1tWzFdLl9xLCBmcy0+eG1tWzJdLl9xLCBmcy0+eG1tWzVdLl9xLCBmcy0+eG1tWzZdLl9xKTsKKyAgIC8qIENoZWNrIHRoYXQgZnMtPnhtbVswXSwgZnMtPnhtbVszXSwgZnMtPnhtbVs0XSBhbmQgZnMtPnhtbVs3XSBjb250YWluCisgICAgICB1bmluaXRpYWxpc2VkIHZhbHVlcyAob3JpZ2luIGlzIHB5WzBdKS4gKi8KKyAgIGlmIChmcy0+eG1tWzBdLl9xIHx8IGZzLT54bW1bM10uX3EgfHwgZnMtPnhtbVs0XS5fcSB8fCBmcy0+eG1tWzddLl9xKQorICAgICAgYXNzZXJ0KDApOworCisgICBwcmludGYoIlZhbHVlcyBhZnRlciB0aGUgcmV0dXJuIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyOlxuIik7CisgICBwcmludGYoIiAgeG1tMD0lTGYsIHhtbTI9JUxmLCB4bW01PSVMZiwgeG1tNj0lTGZcbiIsCisgICAgICAgICAgb3V0WzBdLl9xLCBvdXRbMl0uX3EsIG91dFs1XS5fcSwgb3V0WzZdLl9xKTsKKyAgIC8qIENoZWNrIHRoYXQgb3V0WzFdLCBvdXRbM10sIG91dFs0XSBhbmQgb3V0WzddIGNvbnRhaW4gdW5pbml0aWFsaXNlZAorICAgICAgdmFsdWVzIChvcmlnaW4gaXMgcHhbMF0pLiAqLworICAgaWYgKG91dFsxXS5fcSB8fCBvdXRbM10uX3EgfHwgb3V0WzRdLl9xIHx8IG91dFs3XS5fcSkKKyAgICAgIGFzc2VydCgwKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfc3NlLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X3NzZS5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3ZDU2MTQKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X3NzZS5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsOTYgQEAKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6OTMpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MTAxKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X3NzZS5jOjM1KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X3NzZS5jOjEwMSkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9zc2UuYzozNSkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9zc2UuYzoxMDEpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MTAxKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X3NzZS5jOjM5KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X3NzZS5jOjEwMSkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9zc2UuYzozOSkKKworQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZCB2YWx1ZShzKQorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9zc2UuYzoxMDEpCisgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgorICAgYXQgMHguLi4uLi4uLjogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOi4uLikKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MzkpCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGNvbnRleHRfc3NlLmM6MTAxKQorIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KKyAgIGF0IDB4Li4uLi4uLi46IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzouLi4pCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X3NzZS5jOjM5KQorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChjb250ZXh0X3NzZS5jOjEwMSkKKyBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCisgICBhdCAweC4uLi4uLi4uOiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6Li4uKQorICAgYnkgMHguLi4uLi4uLjogbWFpbiAoY29udGV4dF9zc2UuYzozOSkKKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9zc2Uuc3Rkb3V0LmV4cCBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfc3NlLnN0ZG91dC5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNlZmNjOAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvbnRleHRfc3NlLnN0ZG91dC5leHAKQEAgLTAsMCArMSw0IEBACitWYWx1ZXMgaW4gdGhlIHNpZ25hbCBoYW5kbGVyOgorICB4bW0xPTAuMDAwMDAwLCB4bW0yPTAuMDAwMDAwLCB4bW01PTAuMDAwMDAwLCB4bW02PTAuMDAwMDAwCitWYWx1ZXMgYWZ0ZXIgdGhlIHJldHVybiBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcjoKKyAgeG1tMD0wLjAwMDAwMCwgeG1tMj0wLjAwMDAwMCwgeG1tNT0wLjAwMDAwMCwgeG1tNj0wLjAwMDAwMApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9zc2Uudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvY29udGV4dF9zc2Uudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZDZiZTEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9jb250ZXh0X3NzZS52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBjb250ZXh0X3NzZQordmdvcHRzOiAtcSAtLXRyYWNrLW9yaWdpbnM9eWVzCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9maWx0ZXJfc3RkZXJyIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvZmlsdGVyX3N0ZGVycgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNzc4ZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvZmlsdGVyX3N0ZGVycgpAQCAtMCwwICsxLDMgQEAKKyMhIC9iaW4vc2gKKworLi4vZmlsdGVyX3N0ZGVyciAiJEAiCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9sZHNvZXhlYy5jIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvbGRzb2V4ZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjZiZGMyCi0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvbGRzb2V4ZWMuYwpAQCAtMCwwICsxLDMgQEAKK2ludCBtYWluKHZvaWQpIHsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2xkc29leGVjLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9sZHNvZXhlYy5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9sZHNvZXhlYy52Z3Rlc3QgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9sZHNvZXhlYy52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZhMDQ2MAotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL2xkc29leGVjLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IC9saWIvbGQuc28uMSAuL2xkc29leGVjCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXIuYyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL3NjYWxhci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OTRkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXIuYwpAQCAtMCwwICsxLDExNiBAQAorLyogQmFzaWMgc3lzY2FsbCB0ZXN0IGZvciBTb2xhcmlzL3g4NiBzcGVjaWZpYyBzeXNjYWxscy4gKi8KKworI2luY2x1ZGUgIi4uL3NvbGFyaXMvc2NhbGFyLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdHZmcy5oPgorCisvKiBIZWxwZXIgZnVuY3Rpb25zLiAgVGhlc2UgYXJlIG5lY2Vzc2FyeSBpZiB3ZSd2ZSBnb3QgdHdvIHRlc3RzIGZvciBhIHNpbmdsZQorICAgc3lzY2FsbC4gIEluIHRoYXQgY2FzZSwgTWVtY2hlY2sgY2FuIHNvbWV0aW1lcyBtZXJnZSBlcnJvciBtZXNzYWdlcy4gIERvaW5nCisgICBlYWNoIHRlc3QgaW4gaXRzIG93biBmdW5jdGlvbiBwcmV2ZW50cyB0aGF0LiAqLworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX29wZW5hdDY0KHZvaWQpCit7CisgICBHTyhTWVNfb3BlbmF0NjQsICIoMy1hcmdzKSAzcyAxbSIpOworICAgU1koU1lTX29wZW5hdDY0LCB4MCAtIDEsIHgwLCB4MCk7IEZBSUx4KEVCQURGKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX29wZW5hdDY0Mih2b2lkKQoreworICAgR08oU1lTX29wZW5hdDY0LCAiKDQtYXJncykgNHMgMW0iKTsKKyAgIFNZKFNZU19vcGVuYXQ2NCwgeDAgLSAxLCB4MCwgeDAgfCBPX0NSRUFULCB4MCk7IEZBSUx4KEVCQURGKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX3N0YXR2ZnM2NCh2b2lkKQoreworICAgR08oU1lTX3N0YXR2ZnM2NCwgIjJzIDJtIik7CisgICBTWShTWVNfc3RhdHZmczY0LCB4MCArIDEsIHgwICsgMSk7IEZBSUw7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyBpbnQgc3lzX3N0YXR2ZnM2NDIodm9pZCkKK3sKKyAgIGNvbnN0IGNoYXIgcGF0aFtdID0gIi8iOworICAgc3RydWN0IHN0YXR2ZnM2NCBzdGF0czsKKworICAgR08oU1lTX3N0YXR2ZnM2NCwgIjRzIDBtIik7CisgICBTWShTWVNfc3RhdHZmczY0LCB4MCArIHBhdGgsIHgwICsgJnN0YXRzKTsgU1VDQzsKKworICAgc2l6ZV90IGJhc2V0eXBlX2xlbiA9IHN0cmxlbihzdGF0cy5mX2Jhc2V0eXBlKTsKKyAgIHNpemVfdCBmc3RyX2xlbiA9IHN0cmxlbihzdGF0cy5mX2ZzdHIpOworCisgICAvKiBOb3cgY2hlY2sgdGhhdCBtZW1vcnkgYWZ0ZXIgdGhlIHN0cmluZ3MgaXMgcmVwb3J0ZWQgdW5pbml0aWFsaXplZC4gKi8KKyAgIGludCB4ID0gMDsKKyAgIGlmIChzdGF0cy5mX2Jhc2V0eXBlW2Jhc2V0eXBlX2xlbiArIDJdICE9ICcgJykgeCA9IC0xOyBlbHNlIHggPSAtMjsKKyAgIGlmIChzdGF0cy5mX2ZzdHJbZnN0cl9sZW4gKyAyXSAhPSAnICcpIHggPSAtMzsgZWxzZSB4ID0gLTQ7CisgICByZXR1cm4geDsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIC8qIFVuaW5pdGlhbGlzZWQsIGJ1dCB3ZSBrbm93IHB4WzBdIGlzIDB4MC4gKi8KKyAgIGxvbmcgKnB4ID0gbWFsbG9jKHNpemVvZihsb25nKSk7CisgICB4MCA9IHB4WzBdOworCisgICAvKiBTWVNfZnN0YXRhdDY0ICAgICAgICAgICAgICA2NyAqLworICAgR08oU1lTX2ZzdGF0YXQ2NCwgIjRzIDJtIik7CisgICBTWShTWVNfZnN0YXRhdDY0LCB4MCAtIDEsIHgwICsgMSwgeDAsIHgwKTsgRkFJTHgoRUJBREYpOworCisgICAvKiBTWVNfb3BlbmF0NjQgICAgICAgICAgICAgICA2OSAqLworICAgc3lzX29wZW5hdDY0KCk7CisgICBzeXNfb3BlbmF0NjQyKCk7CisKKyAgIC8qIFNZU19sbHNlZWsgICAgICAgICAgICAgICAgMTc1ICovCisgICBHTyhTWVNfbGxzZWVrLCAiM3MgMG0iKTsKKyAgIFNZKFNZU19sbHNlZWssIHgwIC0gMSwgeDAsIHgwKTsgRkFJTHgoRUJBREYpOworCisgICAvKiBTWVNfZ2V0ZGVudHM2NCAgICAgICAgICAgIDIxMyAqLworICAgR08oU1lTX2dldGRlbnRzNjQsICIzcyAxbSIpOworICAgU1koU1lTX2dldGRlbnRzNjQsIHgwLCB4MCwgeDAgKyAxKTsgRkFJTDsKKworICAgLyogU1lTX21tYXA2NCAgICAgICAgICAgICAgICAyMTQgKi8KKyAgIEdPKFNZU19tbWFwNjQsICI3cyAwbSIpOworICAgU1koU1lTX21tYXA2NCwgeDAsIHgwLCB4MCwgeDAsIHgwLCB4MCwgeDApOyBGQUlMeChFSU5WQUwpOworCisgICAvKiBTWVNfc3RhdDY0ICAgICAgICAgICAgICAgIDIxNSAqLworICAgLyogVGVzdGVkIGluIHg4Ni1zb2xhcmlzL3NjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfbHN0YXQ2NCAgICAgICAgICAgICAgIDIxNiAqLworICAgLyogVGVzdGVkIGluIHg4Ni1zb2xhcmlzL3NjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfZnN0YXQ2NCAgICAgICAgICAgICAgIDIxNyAqLworICAgLyogVGVzdGVkIGluIHg4Ni1zb2xhcmlzL3NjYWxhcl9vYnNvbGV0ZS5jLiAqLworCisgICAvKiBTWVNfc3RhdHZmczY0ICAgICAgICAgICAgIDIxOCAqLworICAgc3lzX3N0YXR2ZnM2NCgpOworICAgc3lzX3N0YXR2ZnM2NDIoKTsKKworICAgLyogU1lTX2ZzdGF0dmZzNjQgICAgICAgICAgICAyMTkgKi8KKyAgIEdPKFNZU19mc3RhdHZmczY0LCAiMnMgMW0iKTsKKyAgIFNZKFNZU19mc3RhdHZmczY0LCB4MCAtIDEsIHgwICsgMSk7IEZBSUx4KEVCQURGKTsKKworICAgLyogU1lTX3NldHJsaW1pdDY0ICAgICAgICAgICAyMjAgKi8KKyAgIEdPKFNZU19zZXRybGltaXQ2NCwgIjJzIDFtIik7CisgICBTWShTWVNfc2V0cmxpbWl0NjQsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19nZXRybGltaXQ2NCAgICAgICAgICAgMjIxICovCisgICBHTyhTWVNfZ2V0cmxpbWl0NjQsICIycyAxbSIpOworICAgU1koU1lTX2dldHJsaW1pdDY0LCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfcHJlYWQ2NCAgICAgICAgICAgICAgIDIyMiAqLworICAgR08oU1lTX3ByZWFkNjQsICI1cyAxbSIpOworICAgU1koU1lTX3ByZWFkNjQsIHgwIC0gMSwgeDAsIHgwICsgMSwgeDAsIHgwKTsgRkFJTHgoRUJBREYpOworCisgICAvKiBTWVNfcHdyaXRlNjQgICAgICAgICAgICAgIDIyMyAqLworICAgR08oU1lTX3B3cml0ZTY0LCAiNXMgMW0iKTsKKyAgIFNZKFNZU19wd3JpdGU2NCwgeDAgLSAxLCB4MCwgeDAgKyAxLCB4MCwgeDApOyBGQUlMeChFQkFERik7CisKKyAgIC8qIFNZU19vcGVuNjQgICAgICAgICAgICAgICAgMjI1ICovCisgICAvKiBUZXN0ZWQgaW4geDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLmMuICovCisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXIuc3RkZXJyLmV4cCBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL3NjYWxhci5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1OTlhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXIuc3RkZXJyLmV4cApAQCAtMCwwICsxLDIyNSBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNjc6ICAgICAgICAgICBTWVNfZnN0YXRhdDY0IDRzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZnN0YXRhdDY0KGZpbGRlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmc3RhdGF0NjQocGF0aCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmc3RhdGF0NjQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZzdGF0YXQ2NChmbGFnKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZzdGF0YXQ2NChwYXRoKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKK1N5c2NhbGwgcGFyYW0gZnN0YXRhdDY0KGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA2OTogICAgICAgICAgICBTWVNfb3BlbmF0NjQgKDMtYXJncykgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBvcGVuYXQ2NChmaWxkZXMpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gb3BlbmF0NjQoZmlsZW5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gb3BlbmF0NjQoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gb3BlbmF0NjQoZmlsZW5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgNjk6ICAgICAgICAgICAgU1lTX29wZW5hdDY0ICg0LWFyZ3MpIDRzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gb3BlbmF0NjQoZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW5hdDY0KGZpbGVuYW1lKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW5hdDY0KGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW5hdDY0KG1vZGUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gb3BlbmF0NjQoZmlsZW5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxNzU6ICAgICAgICAgICAgICBTWVNfbGxzZWVrIDNzIDBtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbGxzZWVrKGZpbGRlcykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsbHNlZWsob2Zmc2V0X2xvdykgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBsbHNlZWsob2Zmc2V0X2hpZ2gpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjEzOiAgICAgICAgICBTWVNfZ2V0ZGVudHM2NCAzcyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGdldGRlbnRzNjQoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0ZGVudHM2NChkaXJwKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGdldGRlbnRzNjQoY291bnQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0ZGVudHM2NChkaXJwKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjE0OiAgICAgICAgICAgICAgU1lTX21tYXA2NCA3cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIG1tYXAoc3RhcnQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW1hcChsZW5ndGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW1hcChwcm90KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1tYXAoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gbW1hcChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBtbWFwKG9mZmxvKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG1tYXAob2ZmaGkpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjE4OiAgICAgICAgICAgU1lTX3N0YXR2ZnM2NCAycyAybQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHN0YXR2ZnM2NChwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN0YXR2ZnM2NChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc3RhdHZmczY0KHBhdGgpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworU3lzY2FsbCBwYXJhbSBzdGF0dmZzNjQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjE4OiAgICAgICAgICAgU1lTX3N0YXR2ZnM2NCA0cyAwbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHN0YXR2ZnM2NChwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHN0YXR2ZnM2NChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKKyAgIC4uLgorCitDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisgICAuLi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMTk6ICAgICAgICAgIFNZU19mc3RhdHZmczY0IDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZnN0YXR2ZnM2NChmZCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmc3RhdHZmczY0KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBmc3RhdHZmczY0KGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyMDogICAgICAgICBTWVNfc2V0cmxpbWl0NjQgMnMgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBzZXRybGltaXQ2NChyZXNvdXJjZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzZXRybGltaXQ2NChybGltKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHNldHJsaW1pdDY0KHJsaW0pIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMjE6ICAgICAgICAgU1lTX2dldHJsaW1pdDY0IDJzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gZ2V0cmxpbWl0NjQocmVzb3VyY2UpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gZ2V0cmxpbWl0NjQocmxpbSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBnZXRybGltaXQ2NChybGltKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjIyOiAgICAgICAgICAgICBTWVNfcHJlYWQ2NCA1cyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIHByZWFkNjQoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJlYWQ2NChidWYpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJlYWQ2NChjb3VudCkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBwcmVhZDY0KG9mZnNldF8xKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHByZWFkNjQob2Zmc2V0XzIpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHJlYWQ2NChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMjM6ICAgICAgICAgICAgU1lTX3B3cml0ZTY0IDVzIDFtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gcHdyaXRlNjQoZmQpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gcHdyaXRlNjQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHB3cml0ZTY0KGNvdW50KSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHB3cml0ZTY0KG9mZnNldF8xKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHB3cml0ZTY0KG9mZnNldF8yKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIHB3cml0ZTY0KGJ1ZikgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXIuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG1lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL3NjYWxhci5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXIudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvc2NhbGFyLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODBmMzE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvc2NhbGFyLnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3Byb2c6IHNjYWxhcgordmdvcHRzOiAtcSAtLWVycm9yLWxpbWl0PW5vCitzdGRlcnJfZmlsdGVyX2FyZ3M6CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuYyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL3NjYWxhcl9vYnNvbGV0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYjY4ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuYwpAQCAtMCwwICsxLDQ5IEBACisvKiBUZXN0IGZvciBzeXNjYWxscyB0aGF0IGFyZSBhdmFpbGFibGUgb24gaWxsdW1vcyBidXQgYXJlIHJlbW92ZWQgb24KKyAgIFNvbGFyaXMgMTEuICBUaGlzIHRlc3QgaXMgY29tcGlsZWQgb25seSBvbiBpbGx1bW9zLiAqLworCisjaW5jbHVkZSAiLi4vc29sYXJpcy9zY2FsYXIuaCIKKworI2luY2x1ZGUgPHN5cy9mY250bC5oPgorCisvKiBIZWxwZXIgZnVuY3Rpb25zLiAgVGhlc2UgYXJlIG5lY2Vzc2FyeSBpZiB3ZSd2ZSBnb3QgdHdvIHRlc3RzIGZvciBhIHNpbmdsZQorICAgc3lzY2FsbC4gIEluIHRoYXQgY2FzZSwgTWVtY2hlY2sgY2FuIHNvbWV0aW1lcyBtZXJnZSBlcnJvciBtZXNzYWdlcy4gIERvaW5nCisgICBlYWNoIHRlc3QgaW4gaXRzIG93biBmdW5jdGlvbiBwcmV2ZW50cyB0aGF0LiAqLworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgc3lzX29wZW42NCh2b2lkKQoreworICAgR08oU1lTX29wZW42NCwgIigyLWFyZ3MpIDJzIDFtIik7CisgICBTWShTWVNfb3BlbjY0LCB4MCwgeDApOyBGQUlMOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBzeXNfb3BlbjY0Mih2b2lkKQoreworICAgR08oU1lTX29wZW42NCwgIigzLWFyZ3MpIDNzIDFtIik7CisgICBTWShTWVNfb3BlbjY0LCB4MCwgeDAgfCBPX0NSRUFULCB4MCk7IEZBSUw7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICAvKiBVbmluaXRpYWxpc2VkLCBidXQgd2Uga25vdyBweFswXSBpcyAweDAuICovCisgICBsb25nICpweCA9IG1hbGxvYyhzaXplb2YobG9uZykpOworICAgeDAgPSBweFswXTsKKworICAgLyogU1lTX3N0YXQ2NCAgICAgICAgICAgICAgICAyMTUgKi8KKyAgIEdPKFNZU19zdGF0NjQsICIycyAybSIpOworICAgU1koU1lTX3N0YXQ2NCwgeDAsIHgwKTsgRkFJTDsKKworICAgLyogU1lTX2xzdGF0NjQgICAgICAgICAgICAgICAyMTYgKi8KKyAgIEdPKFNZU19sc3RhdDY0LCAiMnMgMm0iKTsKKyAgIFNZKFNZU19sc3RhdDY0LCB4MCwgeDApOyBGQUlMOworCisgICAvKiBTWVNfZnN0YXQ2NCAgICAgICAgICAgICAgIDIxNyAqLworICAgR08oU1lTX2ZzdGF0NjQsICIycyAxbSIpOworICAgU1koU1lTX2ZzdGF0NjQsIHgwLCB4MCk7IEZBSUw7CisKKyAgIC8qIFNZU19vcGVuNjQgICAgICAgICAgICAgICAgMjI1ICovCisgICBzeXNfb3BlbjY0KCk7CisgICBzeXNfb3BlbjY0MigpOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLnN0ZGVyci5leHAgYi9tZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDUwNzE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLnN0ZGVyci5leHAKQEAgLTAsMCArMSw3NiBAQAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMTU6ICAgICAgICAgICAgICBTWVNfc3RhdDY0IDJzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gc3RhdDY0KHBhdGgpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gc3RhdDY0KGJ1ZikgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBzdGF0NjQocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIHN0YXQ2NChidWYpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisyMTY6ICAgICAgICAgICAgIFNZU19sc3RhdDY0IDJzIDJtCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1N5c2NhbGwgcGFyYW0gbHN0YXQ2NChwYXRoKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxzdGF0NjQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGxzdGF0NjQocGF0aCkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCitTeXNjYWxsIHBhcmFtIGxzdGF0NjQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjE3OiAgICAgICAgICAgICBTWVNfZnN0YXQ2NCAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIGZzdGF0NjQoZmlsZGVzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZzdGF0NjQoYnVmKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIGZzdGF0NjQoYnVmKSBwb2ludHMgdG8gdW5hZGRyZXNzYWJsZSBieXRlKHMpCisgICAuLi4KKyBBZGRyZXNzIDB4Li4uLi4uLi4gaXMgbm90IHN0YWNrJ2QsIG1hbGxvYydkIG9yIChyZWNlbnRseSkgZnJlZSdkCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjI1OiAgICAgICAgICAgICAgU1lTX29wZW42NCAoMi1hcmdzKSAycyAxbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTeXNjYWxsIHBhcmFtIG9wZW42NChmaWxlbmFtZSkgY29udGFpbnMgdW5pbml0aWFsaXNlZCBieXRlKHMpCisgICAuLi4KKworU3lzY2FsbCBwYXJhbSBvcGVuNjQoZmxhZ3MpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gb3BlbihmaWxlbmFtZSkgcG9pbnRzIHRvIHVuYWRkcmVzc2FibGUgYnl0ZShzKQorICAgLi4uCisgQWRkcmVzcyAweC4uLi4uLi4uIGlzIG5vdCBzdGFjaydkLCBtYWxsb2MnZCBvciAocmVjZW50bHkpIGZyZWUnZAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIyNTogICAgICAgICAgICAgIFNZU19vcGVuNjQgKDMtYXJncykgM3MgMW0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU3lzY2FsbCBwYXJhbSBvcGVuNjQoZmlsZW5hbWUpIGNvbnRhaW5zIHVuaW5pdGlhbGlzZWQgYnl0ZShzKQorICAgLi4uCisKK1N5c2NhbGwgcGFyYW0gb3BlbjY0KGZsYWdzKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW42NChtb2RlKSBjb250YWlucyB1bmluaXRpYWxpc2VkIGJ5dGUocykKKyAgIC4uLgorCitTeXNjYWxsIHBhcmFtIG9wZW4oZmlsZW5hbWUpIHBvaW50cyB0byB1bmFkZHJlc3NhYmxlIGJ5dGUocykKKyAgIC4uLgorIEFkZHJlc3MgMHguLi4uLi4uLiBpcyBub3Qgc3RhY2snZCwgbWFsbG9jJ2Qgb3IgKHJlY2VudGx5KSBmcmVlJ2QKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBtZW1jaGVjay90ZXN0cy94ODYtc29sYXJpcy9zY2FsYXJfb2Jzb2xldGUuc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2LXNvbGFyaXMvc2NhbGFyX29ic29sZXRlLnZndGVzdCBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL3NjYWxhcl9vYnNvbGV0ZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU0MWNiOQotLS0gL2Rldi9udWxsCisrKyBiL21lbWNoZWNrL3Rlc3RzL3g4Ni1zb2xhcmlzL3NjYWxhcl9vYnNvbGV0ZS52Z3Rlc3QKQEAgLTAsMCArMSw0IEBACitwcmVyZXE6IHRlc3QgLWUgc2NhbGFyX29ic29sZXRlCitwcm9nOiBzY2FsYXJfb2Jzb2xldGUKK3Znb3B0czogLXEgLS1lcnJvci1saW1pdD1ubworc3RkZXJyX2ZpbHRlcl9hcmdzOgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2L2ZwcmVtLmMgYi9tZW1jaGVjay90ZXN0cy94ODYvZnByZW0uYwppbmRleCA4NjRjOWIwLi5jNmNkNzQ4IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy94ODYvZnByZW0uYworKysgYi9tZW1jaGVjay90ZXN0cy94ODYvZnByZW0uYwpAQCAtNiw3ICs2LDcgQEAKIAogZG91YmxlIGRvX2ZwcmVtICggdm9pZCApCiB7Ci0gIGRvdWJsZSByZXM7CisgIGRvdWJsZSByZXMgPSAwLjA7CiAgIF9fYXNtX18gX192b2xhdGlsZV9fKAogICAgICJmZnJlZSAlJXN0KDApXG5cdCIKICAgICAiZmZyZWUgJSVzdCgxKVxuXHQiCkBAIC0yMSw3ICsyMSw3IEBACiAKIGRvdWJsZSBkb19mcHJlbTEgKCB2b2lkICkKIHsKLSAgZG91YmxlIHJlczsKKyAgZG91YmxlIHJlcyA9IDAuMDsKICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCiAgICAgImZmcmVlICUlc3QoMClcblx0IgogICAgICJmZnJlZSAlJXN0KDEpXG5cdCIKQEAgLTM2LDcgKzM2LDcgQEAKIAogZG91YmxlIGRvX2ZzaW5jb3MgKCB2b2lkICkKIHsKLSAgZG91YmxlIHJlczsKKyAgZG91YmxlIHJlcyA9IDAuMDsKICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCiAgICAgImZsZGxuMlxuXHQiCiAgICAgImZzaW5jb3Ncblx0IgpkaWZmIC0tZ2l0IGEvbWVtY2hlY2svdGVzdHMveDg2L3B1c2hmcG9wZl9zLlMgYi9tZW1jaGVjay90ZXN0cy94ODYvcHVzaGZwb3BmX3MuUwppbmRleCAwNjdhNmRhLi43YjIxOWY2IDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy94ODYvcHVzaGZwb3BmX3MuUworKysgYi9tZW1jaGVjay90ZXN0cy94ODYvcHVzaGZwb3BmX3MuUwpAQCAtMSwxMyArMSwxMyBAQAogI2luY2x1ZGUgInRlc3RzL2FzbS5oIgogCi0jaWYgZGVmaW5lZChWR09fbGludXgpCisjaWYgZGVmaW5lZChWR09fbGludXgpIHx8IGRlZmluZWQoVkdPX3NvbGFyaXMpCiAJLnZlcnNpb24JIjAxLjAxIgogI2VuZGlmCiBnY2MyX2NvbXBpbGVkLjoKIC50ZXh0CiAJLmFsaWduIDQKIC5nbG9ibCBWR19TWU1fQVNNKGZvb2JsZSkKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIAkudHlwZQlWR19TWU1fQVNNKGZvb2JsZSksQGZ1bmN0aW9uCiAjZW5kaWYKIFZHX1NZTV9BU00oZm9vYmxlKToKQEAgLTQyLDcgKzQyLDcgQEAKIAlwb3BsCSVlYnAKIAlyZXQKIC5MZmUxOgotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogCS5zaXplCVZHX1NZTV9BU00oZm9vYmxlKSwuTGZlMS1WR19TWU1fQVNNKGZvb2JsZSkKICNlbmRpZgogCS5pZGVudAkiR0NDOiAoR05VKSAyLjk2IDIwMDAwNzMxIChSZWQgSGF0IExpbnV4IDcuMSAyLjk2LTk4KSIKZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3g4Ni90cm9uaWNhbC5TIGIvbWVtY2hlY2svdGVzdHMveDg2L3Ryb25pY2FsLlMKaW5kZXggYTIxMjJjNy4uZTViYjQwMCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMveDg2L3Ryb25pY2FsLlMKKysrIGIvbWVtY2hlY2svdGVzdHMveDg2L3Ryb25pY2FsLlMKQEAgLTUyLDcgKzUyLDcgQEAKICNpbmNsdWRlICJ0ZXN0cy9hc20uaCIKIAogCS5maWxlCSJ0cm9uaWNhbC5jIgotI2lmIGRlZmluZWQoVkdPX2xpbnV4KQorI2lmIGRlZmluZWQoVkdPX2xpbnV4KSB8fCBkZWZpbmVkKFZHT19zb2xhcmlzKQogCS52ZXJzaW9uCSIwMS4wMSIKICNlbmRpZgogZ2NjMl9jb21waWxlZC46CmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94bWwxLmMgYi9tZW1jaGVjay90ZXN0cy94bWwxLmMKaW5kZXggNmNhYjI4Ny4uMGNiYmIwMyAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMveG1sMS5jCisrKyBiL21lbWNoZWNrL3Rlc3RzL3htbDEuYwpAQCAtNDYsNyArNDYsMTUgQEAKIAogaW50IG1haW4gKCB2b2lkICkKIHsKLSAgcmV0dXJuIGZyYW1lMSgpIC0gMTsKKyAgaW50IHJldCA9IGZyYW1lMSgpIC0gMTsKKworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgIC8qIEF2b2lkIHJlcG9ydGluZyBwb3NzaWJsZSBtZW1vcnkgbGVhayBvbiBmaW5pc2ggd2hlbiBib3RoIEZJTEUtPmJhc2UKKyAgICAgYW5kIEZJTEUtPnB0ciBwb2ludCB0byB0aGUgbWlkZGxlIG9mIGEgYnVmZmVyIGFsbG9jYXRlZCBpbiBfZmluZGJ1ZigpCisgICAgIGZvciBzdGRvdXQuICovCisgIGZjbG9zZWFsbCgpOworI2VuZGlmCisgIHJldHVybiByZXQ7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9tZW1jaGVjay90ZXN0cy94bWwxLnN0ZGVyci5leHAtczM5MHgtbXZjIGIvbWVtY2hlY2svdGVzdHMveG1sMS5zdGRlcnIuZXhwLXMzOTB4LW12YwppbmRleCBlZTM0ODIzLi5lMWFiYWMyIDEwMDY0NAotLS0gYS9tZW1jaGVjay90ZXN0cy94bWwxLnN0ZGVyci5leHAtczM5MHgtbXZjCisrKyBiL21lbWNoZWNrL3Rlc3RzL3htbDEuc3RkZXJyLmV4cC1zMzkweC1tdmMKQEAgLTMzNCw2ICszMzQsNyBAQAogICAgIDwvZnJhbWU+CiAgIDwvc3RhY2s+CiAgIDxhdXh3aGF0PkFkZHJlc3MgMHguLi4uLi4uLiBpcyBvbiB0aHJlYWQgMSdzIHN0YWNrPC9hdXh3aGF0PgorICA8YXV4d2hhdD5pbiBmcmFtZSAjMSwgY3JlYXRlZCBieSBmcmFtZTMgKHhtbDEuYzo3KTwvYXV4d2hhdD4KIDwvZXJyb3I+CiAKIDxlcnJvcj4KZGlmZiAtLWdpdCBhL21lbWNoZWNrL3Rlc3RzL3htbDEudmd0ZXN0IGIvbWVtY2hlY2svdGVzdHMveG1sMS52Z3Rlc3QKaW5kZXggNGQ4M2E5Zi4uNjU4NWIxOCAxMDA2NDQKLS0tIGEvbWVtY2hlY2svdGVzdHMveG1sMS52Z3Rlc3QKKysrIGIvbWVtY2hlY2svdGVzdHMveG1sMS52Z3Rlc3QKQEAgLTEsMyArMSwzIEBACiBwcm9nOiB4bWwxCi12Z29wdHM6IC0teG1sPXllcyAtLXhtbC1mZD0yIC0tbG9nLWZpbGU9L2Rldi9udWxsCit2Z29wdHM6IC0teG1sPXllcyAtLXhtbC1mZD0yIC0tbG9nLWZpbGU9L2Rldi9udWxsIC0ta2VlcC1zdGFja3RyYWNlcz1hbGxvYy10aGVuLWZyZWUKIHN0ZGVycl9maWx0ZXI6IGZpbHRlcl94bWwKZGlmZiAtLWdpdCBhL21waS9NYWtlZmlsZS5hbSBiL21waS9NYWtlZmlsZS5hbQppbmRleCBjMTU2ODBiLi5mY2E1ZDY0IDEwMDY0NAotLS0gYS9tcGkvTWFrZWZpbGUuYW0KKysrIGIvbXBpL01ha2VmaWxlLmFtCkBAIC00Miw2ICs0MiwxMCBAQAogIE1QSV9GTEFHX00zMjY0X1BSSSA9ICQoQU1fRkxBR19NMzI2NF9QUkkpCiAgTVBJX0ZMQUdfTTMyNjRfU0VDID0gJChBTV9GTEFHX00zMjY0X1NFQykKIGVuZGlmCitpZiBWR0NPTkZfT1NfSVNfU09MQVJJUworIE1QSV9GTEFHX00zMjY0X1BSSSA9ICQoQU1fRkxBR19NMzI2NF9QUkkpCisgTVBJX0ZMQUdfTTMyNjRfU0VDID0gJChBTV9GTEFHX00zMjY0X1NFQykKK2VuZGlmCiAKIAogaWYgQlVJTERfTVBJV1JBUF9QUkkKZGlmZiAtLWdpdCBhL21waS9saWJtcGl3cmFwLmMgYi9tcGkvbGlibXBpd3JhcC5jCmluZGV4IGE1MzQ5ZTAuLmNhZTcyNWIgMTAwNjQ0Ci0tLSBhL21waS9saWJtcGl3cmFwLmMKKysrIGIvbXBpL2xpYm1waXdyYXAuYwpAQCAtMTgsNyArMTgsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAgICBmcmFtZXdvcmsuCiAKLSAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIE9wZW5Xb3JrcyBMTFAuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDA2LTIwMTUgT3BlbldvcmtzIExMUC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKICAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MTcsNiArNDE3LDcgQEAKICAgIGludCBlcnIgPSBQTVBJX0dldF9jb3VudChzdGF0dXMsIGRhdGF0eXBlLCAmbik7CiAgICBpZiAoY09ORklHX0RFUikgVkFMR1JJTkRfRU5BQkxFX0VSUk9SX1JFUE9SVElORzsKICAgIGlmIChlcnIgPT0gTVBJX1NVQ0NFU1MpIHsKKyAgICAgIFZBTEdSSU5EX01BS0VfTUVNX0RFRklORUQoJm4sIHNpemVvZihuKSk7CiAgICAgICAqcmVjdl9jb3VudCA9IG47CiAgICAgICByZXR1cm4gVHJ1ZTsKICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9uaWdodGx5L2Jpbi9uaWdodGx5IGIvbmlnaHRseS9iaW4vbmlnaHRseQppbmRleCA1ODNlN2E5Li4xMjFlNmE4IDEwMDc1NQotLS0gYS9uaWdodGx5L2Jpbi9uaWdodGx5CisrKyBiL25pZ2h0bHkvYmluL25pZ2h0bHkKQEAgLTE3NSw2ICsxNzUsOSBAQAogICAgICAgICAgICJSdW5uaW5nIHJlZ3Jlc3Npb24gdGVzdHMgICAgICAgICAiIFwKICAgICAgICAgICAiY2QgdmFsZ3JpbmQtJGxvZ2ZpbGUgJiYgJHtBQlRfUlVOX1JFR1RFU1R9IgogCisgICAjIFN0YXNoIGF3YXkgdGhlIHJldHVybiBjb2RlIG9mIHRoZSByZWdyZXNzaW9uIHJ1bgorICAgcmVncnVuX3JjPSQ/CisKICAgICMgR3JhYiBzb21lIGluZGljYXRpdmUgdGV4dCBmb3IgdGhlIHNob3J0IGxvZyBmaWxlIC0tIGlmIHRoZSByZWd0ZXN0cwogICAgIyBzdWNjZWVkZWQsIHNob3cgdGhlaXIgcmVzdWx0cy4gIElmIHdlIGRpZG4ndCBtYWtlIGl0IHRoYXQgZmFyLCBzaG93IHRoZQogICAgIyBsYXN0IDIwIGxpbmVzLgpAQCAtMTgzLDYgKzE4NiwxNCBAQAogICAgICAgZWNobyAiUmVncmVzc2lvbiB0ZXN0IHJlc3VsdHMgZm9sbG93IiA+PiAkbG9nZmlsZS5zaG9ydAogICAgICAgZWNobyA+PiAkbG9nZmlsZS5zaG9ydAogICAgICAgYXdrICcvXj09IFswLTldKyB0ZXN0cy8sIC9eJC8geyBwcmludCB9JyAkbG9nZmlsZS52ZXJib3NlID4+ICRsb2dmaWxlLnNob3J0CisgICAjIENoZWNrIHRoZSByZXR1cm4gY29kZSBvZiB0aGUgcmVncmVzc2lvbiBydW47IHdlIG1pZ2h0IGhhdmUgc3VjY2Vzc2Z1bGx5CisgICAjIHJ1biBhbGwgdGVzdHMgYnV0IHN0aWxsIGZhaWxlZCBpbiB0aGUgcG9zdC1yZWd0ZXN0IGNoZWNrcy4KKyAgICAgIGlmIFsgJHJlZ3J1bl9yYyAhPSAiMCIgXTsgdGhlbgorICAgICAgICAgZWNobyA+PiAkbG9nZmlsZS5zaG9ydAorICAgICAgICAgZWNobyAiTGFzdCAyMCBsaW5lcyBvZiB2ZXJib3NlIGxvZyBmb2xsb3ciID4+ICRsb2dmaWxlLnNob3J0IFwKKyAgICAgICAgIGVjaG8gPj4gJGxvZ2ZpbGUuc2hvcnQKKyAgICAgICAgIHRhaWwgLTIwICRsb2dmaWxlLnZlcmJvc2UgPj4gJGxvZ2ZpbGUuc2hvcnQKKyAgICAgIGZpCiAgICApIHx8ICgKICAgICAgIGVjaG8gPj4gJGxvZ2ZpbGUuc2hvcnQKICAgICAgIGVjaG8gIkxhc3QgMjAgbGluZXMgb2YgdmVyYm9zZSBsb2cgZm9sbG93IiA+PiAkbG9nZmlsZS5zaG9ydCBcCmRpZmYgLS1naXQgYS9ub25lL25sX21haW4uYyBiL25vbmUvbmxfbWFpbi5jCmluZGV4IDU3NDQ4NmEuLmZmZTE5ZTEgMTAwNjQ0Ci0tLSBhL25vbmUvbmxfbWFpbi5jCisrKyBiL25vbmUvbmxfbWFpbi5jCkBAIC03LDcgKzcsNyBAQAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTnVsZ3JpbmQsIHRoZSBtaW5pbWFsIFZhbGdyaW5kIHRvb2wsCiAgICB3aGljaCBkb2VzIG5vIGluc3RydW1lbnRhdGlvbiBvciBhbmFseXNpcy4KIAotICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMgTmljaG9sYXMgTmV0aGVyY290ZQorICAgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUgTmljaG9sYXMgTmV0aGVyY290ZQogICAgICAgbmpuQHZhbGdyaW5kLm9yZwogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01Niw3ICs1Niw3IEBACiAgICBWR18oZGV0YWlsc192ZXJzaW9uKSAgICAgICAgIChOVUxMKTsKICAgIFZHXyhkZXRhaWxzX2Rlc2NyaXB0aW9uKSAgICAgKCJ0aGUgbWluaW1hbCBWYWxncmluZCB0b29sIik7CiAgICBWR18oZGV0YWlsc19jb3B5cmlnaHRfYXV0aG9yKSgKLSAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgTmljaG9sYXMgTmV0aGVyY290ZS4iKTsKKyAgICAgICJDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgTmljaG9sYXMgTmV0aGVyY290ZS4iKTsKICAgIFZHXyhkZXRhaWxzX2J1Z19yZXBvcnRzX3RvKSAgKFZHX0JVR1NfVE8pOwogCiAgICBWR18oZGV0YWlsc19hdmdfdHJhbnNsYXRpb25fc2l6ZUIpICggMjc1ICk7CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL01ha2VmaWxlLmFtIGIvbm9uZS90ZXN0cy9NYWtlZmlsZS5hbQppbmRleCAxZGZjZmM0Li5hNDIwNGQ1IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL25vbmUvdGVzdHMvTWFrZWZpbGUuYW0KQEAgLTQzLDYgKzQzLDkgQEAKIGlmIFZHQ09ORl9PU19JU19EQVJXSU4KIFNVQkRJUlMgKz0gZGFyd2luCiBlbmRpZgoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK1NVQkRJUlMgKz0gc29sYXJpcworZW5kaWYKIAogIyBQbGF0Zm9ybS1zcGVjaWZpYyB0ZXN0cwogaWYgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX0FNRDY0X0xJTlVYCkBAIC01MSw5ICs1NCwyMiBAQAogaWYgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1g4Nl9MSU5VWAogU1VCRElSUyArPSB4ODYtbGludXgKIGVuZGlmCitpZiBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfQU1ENjRfREFSV0lOCitTVUJESVJTICs9IGFtZDY0LWRhcndpbgorZW5kaWYKK2lmIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9YODZfREFSV0lOCitTVUJESVJTICs9IHg4Ni1kYXJ3aW4KK2VuZGlmCitpZiBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfQU1ENjRfU09MQVJJUworU1VCRElSUyArPSBhbWQ2NC1zb2xhcmlzCitlbmRpZgoraWYgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1g4Nl9TT0xBUklTCitTVUJESVJTICs9IHg4Ni1zb2xhcmlzCitlbmRpZgogCiBESVNUX1NVQkRJUlMgPSB4ODYgYW1kNjQgcHBjMzIgcHBjNjQgYXJtIGFybTY0IHMzOTB4IG1pcHMzMiBtaXBzNjQgdGlsZWd4IFwKLSAgICAgICAgICAgICAgIGxpbnV4IGRhcndpbiBhbWQ2NC1saW51eCB4ODYtbGludXggc2NyaXB0cyAuCisgICAgICAgICAgICAgICBsaW51eCBkYXJ3aW4gc29sYXJpcyBhbWQ2NC1saW51eCB4ODYtbGludXggYW1kNjQtZGFyd2luIFwKKyAgICAgICAgICAgICAgIHg4Ni1kYXJ3aW4gYW1kNjQtc29sYXJpcyB4ODYtc29sYXJpcyBzY3JpcHRzIC4KIAogZGlzdF9ub2luc3RfU0NSSVBUUyA9IFwKIAlmaWx0ZXJfY21kbGluZTAgXApAQCAtOTQsNyArMTEwLDggQEAKIAlkaXNjYXJkLnZndGVzdCBcCiAJZW1wdHktZXhlLnZndGVzdCBlbXB0eS1leGUuc3RkZXJyLmV4cCBcCiAJZXhlYy1zaWdtYXNrLnZndGVzdCBleGVjLXNpZ21hc2suc3Rkb3V0LmV4cCBcCi0JZXhlYy1zaWdtYXNrLnN0ZG91dC5leHAyIGV4ZWMtc2lnbWFzay5zdGRvdXQuZXhwMyBleGVjLXNpZ21hc2suc3RkZXJyLmV4cCBcCisJZXhlYy1zaWdtYXNrLnN0ZG91dC5leHAyIGV4ZWMtc2lnbWFzay5zdGRvdXQuZXhwMyBcCisJZXhlYy1zaWdtYXNrLnN0ZG91dC5leHAtc29sYXJpcyBleGVjLXNpZ21hc2suc3RkZXJyLmV4cCBcCiAJZXhlY3ZlLnZndGVzdCBleGVjdmUuc3Rkb3V0LmV4cCBleGVjdmUuc3RkZXJyLmV4cCBcCiAJZmF1bHRzdGF0dXMudmd0ZXN0IGZhdWx0c3RhdHVzLnN0ZGVyci5leHAgZmF1bHRzdGF0dXMuc3RkZXJyLmV4cC1zMzkweCBcCiAJZmNudGxfc2V0b3duLnZndGVzdCBmY250bF9zZXRvd24uc3Rkb3V0LmV4cCBmY250bF9zZXRvd24uc3RkZXJyLmV4cCBcCkBAIC0xNTIsNiArMTY5LDcgQEAKIAlyZXF1aXJlLXRleHQtc3ltYm9sLTEudmd0ZXN0IFwKIAkJcmVxdWlyZS10ZXh0LXN5bWJvbC0xLnN0ZGVyci5leHAgXAogCXJlcXVpcmUtdGV4dC1zeW1ib2wtMi52Z3Rlc3QgXAorCQlyZXF1aXJlLXRleHQtc3ltYm9sLTIuc3RkZXJyLmV4cC1saWJjc28xIFwKIAkJcmVxdWlyZS10ZXh0LXN5bWJvbC0yLnN0ZGVyci5leHAtbGliY3NvNiBcCiAJcmVzX3NlYXJjaC5zdGRlcnIuZXhwIHJlc19zZWFyY2guc3Rkb3V0LmV4cCByZXNfc2VhcmNoLnZndGVzdCBcCiAJcmVzb2x2LnN0ZGVyci5leHAgcmVzb2x2LnN0ZG91dC5leHAgcmVzb2x2LnZndGVzdCBcCkBAIC0xODAsNyArMTk4LDcgQEAKIAlwcm9jZXNzX3ZtX3JlYWR2X3dyaXRldi5zdGRlcnIuZXhwIHByb2Nlc3Nfdm1fcmVhZHZfd3JpdGV2LnZndGVzdAogCiBjaGVja19QUk9HUkFNUyA9IFwKLQlhbnNpIGFyZ3MgXAorCWFyZ3MgXAogCWFzeW5jLXNpZ3MgXAogCWJpdGZpZWxkMSBcCiAJYnVnMTI5ODY2IGJ1ZzIzNDgxNCBcCkBAIC0yMzIsNiArMjUwLDExIEBACiAgICBjaGVja19QUk9HUkFNUyArPSBybGltaXQ2NF9ub2ZpbGUgCiBlbmRpZgogCisjIGNsYW5nIGRvZXMgbm90IGtub3cgLWFuc2kKK2lmICEgQ09NUElMRVJfSVNfQ0xBTkcKKyAgIGNoZWNrX1BST0dSQU1TICs9IGFuc2kKK2VuZGlmCisKIGlmIEJVSUxEX0lGVU5DX1RFU1RTCiAgICBjaGVja19QUk9HUkFNUyArPSBpZnVuYwogZW5kaWYKQEAgLTI0Miw2ICsyNjUsMTQgQEAKICMgRXh0cmEgc3R1ZmYgZm9yIEMgdGVzdHMKIGFuc2lfQ0ZMQUdTCQk9ICQoQU1fQ0ZMQUdTKSAtYW5zaQogZXhlY3ZlX0NGTEFHUwkJPSAkKEFNX0NGTEFHUykgQEZMQUdfV19OT19OT05OVUxMQAoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK2ZjbnRsX3NldG93bl9MREFERAk9IC1sc29ja2V0IC1sbnNsCitmZGxlYWtfY21zZ19DRkxBR1MJPSAkKEFNX0NGTEFHUykgLURfWE9QRU5fU09VUkNFPTUwMAorZmRsZWFrX2Ntc2dfTERBREQJPSAtbHNvY2tldCAtbG5zbAorZmRsZWFrX2lwdjRfTERBREQJPSAtbHNvY2tldCAtbG5zbAorZmRsZWFrX2NyZWF0X0xEQURECT0gLWxzb2NrZXQgLWxuc2wKK2ZkbGVha19zb2NrZXRwYWlyX0xEQURECT0gLWxzb2NrZXQgLWxuc2wKK2VuZGlmCiBmbG9vcmVkX0xEQUREIAkJPSAtbG0KIG1hbnl0aHJlYWRzX0xEQURECT0gLWxwdGhyZWFkCiBpZiBWR0NPTkZfT1NfSVNfREFSV0lOCkBAIC0yNTAsMTAgKzI4MSwxMyBAQAogIG5lc3RlZGZuc19DRkxBR1MJPSAkKEFNX0NGTEFHUykKICBtcV9MREFERAkJPSAtbHJ0CiBlbmRpZgotbGlidmV4X3Rlc3RfTERBREQgICAgICAgPSAuLi8uLi9WRVgvbGlidmV4LUBWR0NPTkZfQVJDSF9QUklALUBWR0NPTkZfT1NALmEKK2xpYnZleF90ZXN0X0NGTEFHUyAgICAgID0gJChBTV9DRkxBR1MpIEBGTEFHX0ZTQU5JVElaRUAKK2xpYnZleF90ZXN0X0xEQUREICAgICAgID0gLi4vLi4vVkVYL2xpYnZleC1AVkdDT05GX0FSQ0hfUFJJQC1AVkdDT05GX09TQC5hIFwKKwkJCSAgIEBMSUJfVUJTQU5ACitsaWJ2ZXhtdWx0aWFyY2hfdGVzdF9DRkxBR1M9ICQoQU1fQ0ZMQUdTKSBARkxBR19GU0FOSVRJWkVACiBsaWJ2ZXhtdWx0aWFyY2hfdGVzdF9MREFERCA9IFwKIAkuLi8uLi9WRVgvbGlidmV4bXVsdGlhcmNoLUBWR0NPTkZfQVJDSF9QUklALUBWR0NPTkZfT1NALmEgXAotCS4uLy4uL1ZFWC9saWJ2ZXgtQFZHQ09ORl9BUkNIX1BSSUAtQFZHQ09ORl9PU0AuYQorCS4uLy4uL1ZFWC9saWJ2ZXgtQFZHQ09ORl9BUkNIX1BSSUAtQFZHQ09ORl9PU0AuYSBATElCX1VCU0FOQAogbGlidmV4bXVsdGlhcmNoX3Rlc3RfU09VUkNFUyA9IGxpYnZleF90ZXN0LmMKIHB0aF9hdGZvcmsxX0xEQURECT0gLWxwdGhyZWFkCiBwdGhfYmxvY2tlZHNpZ19MREFERAk9IC1scHRocmVhZApAQCAtMjY3LDEzICszMDEsMjkgQEAKIHB0aF9tdXRleHNwZWVkX0xEQURECT0gLWxwdGhyZWFkCiBwdGhfb25jZV9MREFERAkJPSAtbHB0aHJlYWQKIHB0aF9yd2xvY2tfTERBREQJPSAtbHB0aHJlYWQKK3B0aF9yd2xvY2tfQ0ZMQUdTCT0gJChBTV9DRkxBR1MpCitpZiBWR0NPTkZfT1NfSVNfU09MQVJJUworcHRoX3J3bG9ja19DRkxBR1MJKz0gLS1zdGQ9Yzk5CitlbmRpZgogcHRoX3N0YWNrYWxpZ25fTERBREQJPSAtbHB0aHJlYWQKIHJlc19zZWFyY2hfTERBREQgICAgICAgID0gLWxyZXNvbHYgLWxwdGhyZWFkCityZXNvbHZfQ0ZMQUdTCQk9ICQoQU1fQ0ZMQUdTKQogcmVzb2x2X0xEQUREICAgICAgICAgICAgPSAtbHJlc29sdiAtbHB0aHJlYWQKK2lmIFZHQ09ORl9PU19JU19TT0xBUklTCityZXNvbHZfQ0ZMQUdTCQkrPSAtVV9SRUVOVFJBTlQKK2VuZGlmCiBzZW1saW1pdF9MREFERAkJPSAtbHB0aHJlYWQKK3NoYTFfdGVzdF9DRkxBR1MJPSAkKEFNX0NGTEFHUykKK2lmIFZHQ09ORl9PU19JU19TT0xBUklTCitzaGExX3Rlc3RfQ0ZMQUdTCSs9IC1EdV9pbnQzMl90PXVpbnQzMl90CitlbmRpZgogdGhyZWFkX2V4aXRzX0xEQURECT0gLWxwdGhyZWFkCiB0aHJlYWRlZF9mb3JrX0xEQURECT0gLWxwdGhyZWFkCit0aHJlYWRlZGVycm5vX0NGTEFHUwk9ICQoQU1fQ0ZMQUdTKQogdGhyZWFkZWRlcnJub19MREFERAk9IC1scHRocmVhZAoraWYgVkdDT05GX09TX0lTX1NPTEFSSVMKK3RocmVhZGVkZXJybm9fQ0ZMQUdTCSs9IC0tc3RkPWM5OQorZW5kaWYKIHRsc19TT1VSQ0VTCQk9IHRscy5jIHRsczIuYwogdGxzX0RFUEVOREVOQ0lFUwk9IHRscy5zbyB0bHMyLnNvCiB0bHNfTERGTEFHUwkJPSAtV2wsLXJwYXRoLCQoYWJzX3RvcF9idWlsZGRpcikvbm9uZS90ZXN0cwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbGxleGVjLmMgYi9ub25lL3Rlc3RzL2FsbGV4ZWMuYwppbmRleCA1MjdjMzZlLi42OWUxMjA4IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FsbGV4ZWMuYworKysgYi9ub25lL3Rlc3RzL2FsbGV4ZWMuYwpAQCAtMTksOSArMTksMTUgQEAKIAogdm9pZCB0ZXN0X2FsbGV4ZWMgKGNoYXIgKmV4ZWMpCiB7Ci0gICBGT1JLRVhFQ1dBSVQgKGV4ZWNscChleGVjLCBleGVjLCBOVUxMKSk7Ci0gICBGT1JLRVhFQ1dBSVQgKGV4ZWNscChleGVjLCBleGVjLCAiY29uc3RhbnRfYXJnMSIsICJjb25zdGFudF9hcmcyIiwgTlVMTCkpOwotICAgRk9SS0VYRUNXQUlUIChleGVjdmUoZXhlYywgTlVMTCwgZW52aXJvbikpOworICAgRk9SS0VYRUNXQUlUIChleGVjbHAoZXhlYywgZXhlYywgKGNoYXIgKikgTlVMTCkpOworICAgRk9SS0VYRUNXQUlUIChleGVjbHAoZXhlYywgZXhlYywgImNvbnN0YW50X2FyZzEiLCAiY29uc3RhbnRfYXJnMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSBOVUxMKSk7CisgICB7CisgICAgICAvKiBTb2xhcmlzIHJlcXVpcmVzIHRoYXQgdGhlIGFyZ3YgcGFyYW1ldGVyIHRvIGV4ZWN2ZSgpIGlzbid0IE5VTEwsIHNvCisgICAgICAgICBzZXQgaXQuICBOb3RlIHRoYXQgdGhpcyBpc24ndCBuZWNlc3Nhcnkgb24gTGludXguICovCisgICAgICBjaGFyICpjb25zdCBhcmd2W10gPSB7ZXhlYywgTlVMTH07CisgICAgICBGT1JLRVhFQ1dBSVQgKGV4ZWN2ZShleGVjLCBhcmd2LCBlbnZpcm9uKSk7CisgICB9CiB9CiAKIApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC1kYXJ3aW4vTWFrZWZpbGUuYW0gYi9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjMxYjMwCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1kYXJ3aW4vTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwxNSBAQAorCitpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUudG9vbC10ZXN0cy5hbQorCitkaXN0X25vaW5zdF9TQ1JJUFRTID0gXAorCWZpbHRlcl9zdGRlcnIgZmlsdGVyX21pbmltYWwKKworRVhUUkFfRElTVCA9IFwKKwlidWczNDE0MTkudmd0ZXN0IGJ1ZzM0MTQxOS5zdGRlcnIuZXhwCisKK2NoZWNrX1BST0dSQU1TID0gXAorCWJ1ZzM0MTQxOQorCitBTV9DRkxBR1MgICAgKz0gQEZMQUdfTTY0QAorQU1fQ1hYRkxBR1MgICs9IEBGTEFHX002NEAKK0FNX0NDQVNGTEFHUyArPSBARkxBR19NNjRACmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9idWczNDE0MTkuYyBiL25vbmUvdGVzdHMvYW1kNjQtZGFyd2luL2J1ZzM0MTQxOS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ZmRhY2QKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9idWczNDE0MTkuYwpAQCAtMCwwICsxLDIyMyBAQAorLyogVGhpcyBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIHVjb250ZXh0X3QgKi8KKyNkZWZpbmUgX1hPUEVOX1NPVVJDRSAxCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8dmFsZ3JpbmQuaD4KKworI2RlZmluZSBvZmZzZXRvZih0eXBlLCBmbGQpCSgodW5zaWduZWQgbG9uZykmKCh0eXBlICopMCktPmZsZCkKKyNkZWZpbmUgc3RyaW5naWZ5KHgpCQkjeAorCitzdGF0aWMgaW50IHZlcmJvc2UgPSAwOworCisjZGVmaW5lIF9BU1NFUlRfT1AoYSwgb3AsIGIpIFwKKyAgICBkbyB7IFwKKwl1bnNpZ25lZCBsb25nIGxvbmcgX2EgPSAodW5zaWduZWQgbG9uZyBsb25nKShhKTsgXAorCXVuc2lnbmVkIGxvbmcgbG9uZyBfYiA9ICh1bnNpZ25lZCBsb25nIGxvbmcpKGIpOyBcCisJaWYgKHZlcmJvc2UpIFwKKwkgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogQVNTRVJUKCIgc3RyaW5naWZ5KGEpIFwKKwkJICAgICIgIiBzdHJpbmdpZnkob3ApICIgIiBzdHJpbmdpZnkoYikgIilcbiIsIFwKKwkJICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7IFwKKwlpZiAoIShfYSBvcCBfYikpIHsgXAorCSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBGQUlMRUQgQVNTRVJUKCgiIHN0cmluZ2lmeShhKSBcCisJCSAgICAiPTB4JTAxNmxseCkgIiBzdHJpbmdpZnkob3ApICIgKCIgc3RyaW5naWZ5KGIpICI9MHglMDE2bGx4KSlcbiIsIFwKKwkJICAgIF9fRklMRV9fLCBfX0xJTkVfXywgX2EsIF9iKTsgXAorCSAgICBfZXhpdCgxKTsgXAorCX0gXAorICAgIH0gd2hpbGUoMCkKKyNkZWZpbmUgQVNTRVJUX0VRKGEsIGIpIF9BU1NFUlRfT1AoYSwgPT0sIGIpCisjZGVmaW5lIEFTU0VSVF9ORShhLCBiKSBfQVNTRVJUX09QKGEsICE9LCBiKQorI2RlZmluZSBBU1NFUlRfTFRFKGEsIGIpIF9BU1NFUlRfT1AoYSwgPD0sIGIpCisjZGVmaW5lIEFTU0VSVF9HVEUoYSwgYikgX0FTU0VSVF9PUChhLCA+PSwgYikKKyNkZWZpbmUgQVNTRVJUKGUpIFwKKyAgICBkbyB7IFwKKwlpZiAodmVyYm9zZSkgXAorCSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBBU1NFUlQoIiBzdHJpbmdpZnkoZSkgIilcbiIsIFwKKwkJICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7IFwKKwlpZiAoIShlKSkgeyBcCisJICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IEZBSUxFRCBBU1NFUlQoIiBzdHJpbmdpZnkoZSkgIilcbiIsIFwKKwkJICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7IFwKKwkgICAgX2V4aXQoMSk7IFwKKwl9IFwKKyAgICB9IHdoaWxlKDApCisKKworc3RhdGljIGJvb2wgdXNpbmdfaW50MyA9IGZhbHNlOworc3RhdGljIHZvbGF0aWxlIGludCBzaWdfY291bnQgPSAwOworc3RhdGljIHZvbGF0aWxlIGludCByYW5fYWZ0ZXJfZmF1bHQgPSAwOworc3RhdGljIHZvaWQgKnRvcF9vZl9zdGFjazsKK3N0YXRpYyB2b2lkICpib3R0b21fb2Zfc3RhY2s7CisKK3ZvaWQgdGhpc19mdW5jdGlvbl9oYWx0cyh1bnNpZ25lZCBsb25nIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgbG9uZyBhMSwKKwkJCSB1bnNpZ25lZCBsb25nIGxvbmcgYTIsIHVuc2lnbmVkIGxvbmcgbG9uZyBhMywKKwkJCSB1bnNpZ25lZCBsb25nIGxvbmcgYTQsIHVuc2lnbmVkIGxvbmcgbG9uZyBhNSkKK3sKKyAgICBpbnQgZm9vOworICAgIGJvdHRvbV9vZl9zdGFjayA9ICZmb287CisKKyAgICAvKiBTZXQgdXAgcmVnaXN0ZXJzIHdpdGgga25vd24gdmFsdWVzIHdoaWNoIHdpbGwgYmUgdGVzdGVkIGluIHRoZSBzaWduYWwgaGFuZGxlciAqLworICAgIF9fYXNtX18gdm9sYXRpbGUoIm1vdnEgJDB4ZmVlZDAxMDEwMTAxY2FmZSwlcmF4Iik7CisgICAgX19hc21fXyB2b2xhdGlsZSgibW92cSAkMHhmZWVkMDIwMjAyMDJjYWZlLCVyYngiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZxICQweGZlZWQwMzAzMDMwM2NhZmUsJXIxMCIpOworICAgIF9fYXNtX18gdm9sYXRpbGUoIm1vdnEgJDB4ZmVlZDA0MDQwNDA0Y2FmZSwlcjExIik7CisgICAgX19hc21fXyB2b2xhdGlsZSgibW92cSAkMHhmZWVkMDUwNTA1MDVjYWZlLCVyMTIiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZxICQweGZlZWQwNjA2MDYwNmNhZmUsJXIxMyIpOworICAgIF9fYXNtX18gdm9sYXRpbGUoIm1vdnEgJDB4ZmVlZDA3MDcwNzA3Y2FmZSwlcjE0Iik7CisgICAgX19hc21fXyB2b2xhdGlsZSgibW92cSAkMHhmZWVkMDgwODA4MDhjYWZlLCVyMTUiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJobHQiKTsKKyAgICByYW5fYWZ0ZXJfZmF1bHQrKzsKK30KKwordm9pZCB0aGlzX2Z1bmN0aW9uX2ludDNzKHVuc2lnbmVkIGxvbmcgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBsb25nIGExLAorCQkJIHVuc2lnbmVkIGxvbmcgbG9uZyBhMiwgdW5zaWduZWQgbG9uZyBsb25nIGEzLAorCQkJIHVuc2lnbmVkIGxvbmcgbG9uZyBhNCwgdW5zaWduZWQgbG9uZyBsb25nIGE1KQoreworICAgIGludCBmb287CisgICAgYm90dG9tX29mX3N0YWNrID0gJmZvbzsKKworICAgIC8qIFNldCB1cCByZWdpc3RlcnMgd2l0aCBrbm93biB2YWx1ZXMgd2hpY2ggd2lsbCBiZSB0ZXN0ZWQgaW4gdGhlIHNpZ25hbCBoYW5kbGVyICovCisgICAgX19hc21fXyB2b2xhdGlsZSgibW92cSAkMHhmZWVkMDEwMTAxMDFjYWZlLCVyYXgiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZxICQweGZlZWQwMjAyMDIwMmNhZmUsJXJieCIpOworICAgIF9fYXNtX18gdm9sYXRpbGUoIm1vdnEgJDB4ZmVlZDAzMDMwMzAzY2FmZSwlcjEwIik7CisgICAgX19hc21fXyB2b2xhdGlsZSgibW92cSAkMHhmZWVkMDQwNDA0MDRjYWZlLCVyMTEiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZxICQweGZlZWQwNTA1MDUwNWNhZmUsJXIxMiIpOworICAgIF9fYXNtX18gdm9sYXRpbGUoIm1vdnEgJDB4ZmVlZDA2MDYwNjA2Y2FmZSwlcjEzIik7CisgICAgX19hc21fXyB2b2xhdGlsZSgibW92cSAkMHhmZWVkMDcwNzA3MDdjYWZlLCVyMTQiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZxICQweGZlZWQwODA4MDgwOGNhZmUsJXIxNSIpOworICAgIF9fYXNtX18gdm9sYXRpbGUoImludCAkMyIpOworICAgIHJhbl9hZnRlcl9mYXVsdCsrOworfQorCisKK3N0YXRpYyB2b2lkCitoYW5kbGVfc2lnbmFsKGludCBzaWcsIHNpZ2luZm9fdCAqc2ksIHZvaWQgKnZ1YykKK3sKKyAgICB1Y29udGV4dF90ICp1YyA9ICh1Y29udGV4dF90ICopdnVjOworCisgICAgaWYgKHZlcmJvc2UpCisgICAgeworCWZwcmludGYoc3RkZXJyLCAiaGFuZGxlX3NpZ25hbFxuIik7CisJZmZsdXNoKHN0ZGVycik7CisgICAgfQorCisgICAgc2lnX2NvdW50Kys7CisgICAgQVNTRVJUKHNpZ19jb3VudCA9PSAxKTsKKworICAgIGludCBleHBlY3RlZF9zaWcgPSAodXNpbmdfaW50MyA/IFNJR1RSQVAgOiBTSUdTRUdWKTsKKyAgICBBU1NFUlRfRVEoc2lnLCBleHBlY3RlZF9zaWcpOworICAgIEFTU0VSVF9ORShzaSwgTlVMTCk7CisgICAgQVNTRVJUX05FKHVjLCBOVUxMKTsKKyAgICBBU1NFUlRfTkUodWMtPnVjX21jb250ZXh0LCBOVUxMKTsKKworICAgIC8qIFRlc3QgdGhhdCB0aGUgc2lnaW5mbyBpcyBzZXQgdXAgcmlnaHQgZm9yIHRoaXMgc2lnbmFsICovCisgICAgQVNTRVJUX0VRKHNpLT5zaV9zaWdubywgZXhwZWN0ZWRfc2lnKTsKKyAgICBBU1NFUlRfRVEoc2ktPnNpX2Vycm5vLCAwKTsKKyAgICBpbnQgZXhwZWN0ZWRfY29kZSA9ICh1c2luZ19pbnQzID8gMSA6IDApOworICAgIEFTU0VSVF9FUShzaS0+c2lfY29kZSwgZXhwZWN0ZWRfY29kZSk7CisgICAgQVNTRVJUX0VRKHNpLT5zaV9waWQsIDApOworICAgIEFTU0VSVF9FUShzaS0+c2lfdWlkLCAwKTsKKyAgICBBU1NFUlRfRVEoc2ktPnNpX3N0YXR1cywgMCk7CisgICAgQVNTRVJUX0VRKHNpLT5zaV9hZGRyLCAwKTsKKyAgICBBU1NFUlRfRVEoc2ktPnNpX2JhbmQsIDApOworCisgICAgLyogVGVzdCB0aGF0IFJBWCBpcyBzYXZlZCB0byB0aGUgc2lnbmFsIHVjb250ZXh0ICovCisgICAgQVNTRVJUX0VRKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JheCwgMHhmZWVkMDEwMTAxMDFjYWZlKTsKKworICAgIC8qIFRlc3QgdGhhdCB0aGUgcmVnaXN0ZXJzIHVzZWQgdG8gcGFzcyB0aGUgMXN0IDYKKyAgICAgKiBmdW5jdGlvbiBhcmd1bWVudHMgd2VyZSBzYXZlZCBpbiB0aGUgc2lnbmFsIHVjb250ZXh0ICovCisgICAgQVNTRVJUX0VRKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JkaSwgMHhiYWJlMDEwMTAxMDFjZWRlVUxMKTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fcnNpLCAweGJhYmUwMjAyMDIwMmNlZGVVTEwpOworICAgIEFTU0VSVF9FUSh1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19yZHgsIDB4YmFiZTAzMDMwMzAzY2VkZVVMTCk7CisgICAgQVNTRVJUX0VRKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JjeCwgMHhiYWJlMDQwNDA0MDRjZWRlVUxMKTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fcjgsIDB4YmFiZTA1MDUwNTA1Y2VkZVVMTCk7CisgICAgQVNTRVJUX0VRKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3I5LCAweGJhYmUwNjA2MDYwNmNlZGVVTEwpOworCisgICAgLyogVGVzdCB0aGF0IHRoZSBzYXZlZCBSQlAgYW5kIFJTUCBwb2ludCBpbnRvIHJvdWdobHkgdGhlIHJpZ2h0CisgICAgICogcGFydCBvZiB0aGUgc3RhY2sgKi8KKyAgICBBU1NFUlRfR1RFKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JicCwgYm90dG9tX29mX3N0YWNrKTsKKyAgICBBU1NFUlRfTFRFKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JicCwgdG9wX29mX3N0YWNrKTsKKyAgICBBU1NFUlRfR1RFKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JzcCwgYm90dG9tX29mX3N0YWNrKTsKKyAgICBBU1NFUlRfTFRFKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JzcCwgdG9wX29mX3N0YWNrKTsKKworICAgIC8qIFRlc3QgdGhhdCB0aGUgc2F2ZWQgUklQIHBvaW50cyBpbnRvIHJvdWdobHkgdGhlCisgICAgICogcmlnaHQgcGFydCBvZiB0aGUgdGV4dCBzZWdtZW50ICovCisgICAgY2hhciAqY2FsbGluZ19mbiA9ICh1c2luZ19pbnQzID8gKGNoYXIgKikmdGhpc19mdW5jdGlvbl9pbnQzcyA6IChjaGFyICopJnRoaXNfZnVuY3Rpb25faGFsdHMpOworICAgIEFTU0VSVF9HVEUodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fcmlwLCBjYWxsaW5nX2ZuKTsKKyAgICBBU1NFUlRfTFRFKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JpcCwgY2FsbGluZ19mbis0MDApOworCisgICAgQVNTRVJUX0VRKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3JieCwgMHhmZWVkMDIwMjAyMDJjYWZlKTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fcjEwLCAweGZlZWQwMzAzMDMwM2NhZmUpOworICAgIEFTU0VSVF9FUSh1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19yMTEsIDB4ZmVlZDA0MDQwNDA0Y2FmZSk7CisgICAgQVNTRVJUX0VRKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3IxMiwgMHhmZWVkMDUwNTA1MDVjYWZlKTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fcjEzLCAweGZlZWQwNjA2MDYwNmNhZmUpOworICAgIEFTU0VSVF9FUSh1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19yMTQsIDB4ZmVlZDA3MDcwNzA3Y2FmZSk7CisgICAgQVNTRVJUX0VRKHVjLT51Y19tY29udGV4dC0+X19zcy5fX3IxNSwgMHhmZWVkMDgwODA4MDhjYWZlKTsKKyAgICAvKgorICAgIHByaW50ZigiCSAgICBSRkxBR1MgMHglMDE2bGx4XG4iLCAodW5zaWduZWQgbG9uZyBsb25nKXVjLT51Y19tY29udGV4dC0+X19zcy5fX3JmbGFncyk7CisgICAgKi8KKworICAgIC8qCisgICAgICogVGVzdCB0aGF0IHRoZSBSSVAgaXMgcmVzdG9yZWQgZnJvbSB0aGUgc2lnbmFsIHVjb250ZXh0OworICAgICAqIHRoaXMgc2hvdWxkIHNraXAgcGFzdCB0aGUgSExUL0lOVCBpbnN0cnVjdGlvbiBhbmQKKyAgICAgKiBhbGxvdyBleGVjdXRpb24gdG8gY29udGludWUgYmFjayBvdXQgdG8gbWFpbigpCisgICAgICovCisgICAgaWYgKHZlcmJvc2UpCisgICAgeworCWZwcmludGYoc3RkZXJyLCAiU2V0dGluZyB1cCB0byByZXR1cm4gcGFzdCB0aGUgSExUXG4iKTsKKwlmZmx1c2goc3RkZXJyKTsKKyAgICB9CisgICAgdWMtPnVjX21jb250ZXh0LT5fX3NzLl9fcmlwICs9ICh1c2luZ19pbnQzID8gMCA6IDEpOworCisgICAgaWYgKHZlcmJvc2UpCisgICAgeworCWZwcmludGYoc3RkZXJyLCAiUmV0dXJuaW5nIGZyb20gc2lnbmFsIGhhbmRsZXJcbiIpOworCWZmbHVzaChzdGRlcnIpOworICAgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIGludCByOworICAgIHN0cnVjdCBzaWdhY3Rpb24gYWN0OworCisgICAgdG9wX29mX3N0YWNrID0gKHZvaWQgKikmYWN0OworCisgICAgaWYgKGFyZ2MgPiAxICYmICFzdHJjbXAoYXJndlsxXSwgIi0tdmVyYm9zZSIpKQorCXZlcmJvc2UgPSAxOworCisgICAgaWYgKHZlcmJvc2UpCisJcHJpbnRmKCJTZXR0aW5nIHVwIHNpZ25hbCBoYW5kbGVyXG4iKTsKKyAgICBtZW1zZXQoJmFjdCwgMCwgc2l6ZW9mKGFjdCkpOworICAgIGFjdC5zYV9zaWdhY3Rpb24gPSBoYW5kbGVfc2lnbmFsOworICAgIGFjdC5zYV9mbGFncyB8PSBTQV9TSUdJTkZPOworICAgIGlmIChSVU5OSU5HX09OX1ZBTEdSSU5EKQorCXVzaW5nX2ludDMgPSB0cnVlOworICAgIHIgPSBzaWdhY3Rpb24oKHVzaW5nX2ludDMgPyBTSUdUUkFQIDogU0lHU0VHViksICZhY3QsIE5VTEwpOworICAgIEFTU0VSVF9FUShyLCAwKTsKKworICAgIGlmICh2ZXJib3NlKQorICAgIHsKKwlmcHJpbnRmKHN0ZGVyciwgIkNhbGxpbmcgZnVuY3Rpb24gd2l0aCBhIGJyZWFrcG9pbnQgaW5zbiBpbiBpdFxuIik7CisJZmZsdXNoKHN0ZGVycik7CisgICAgfQorICAgIGlmICh1c2luZ19pbnQzKQorCXRoaXNfZnVuY3Rpb25faW50M3MoMHhiYWJlMDEwMTAxMDFjZWRlVUxMLAorCQkJICAgIDB4YmFiZTAyMDIwMjAyY2VkZVVMTCwKKwkJCSAgICAweGJhYmUwMzAzMDMwM2NlZGVVTEwsCisJCQkgICAgMHhiYWJlMDQwNDA0MDRjZWRlVUxMLAorCQkJICAgIDB4YmFiZTA1MDUwNTA1Y2VkZVVMTCwKKwkJCSAgICAweGJhYmUwNjA2MDYwNmNlZGVVTEwpOworICAgIGVsc2UKKwl0aGlzX2Z1bmN0aW9uX2hhbHRzKDB4YmFiZTAxMDEwMTAxY2VkZVVMTCwKKwkJCSAgICAweGJhYmUwMjAyMDIwMmNlZGVVTEwsCisJCQkgICAgMHhiYWJlMDMwMzAzMDNjZWRlVUxMLAorCQkJICAgIDB4YmFiZTA0MDQwNDA0Y2VkZVVMTCwKKwkJCSAgICAweGJhYmUwNTA1MDUwNWNlZGVVTEwsCisJCQkgICAgMHhiYWJlMDYwNjA2MDZjZWRlVUxMKTsKKyAgICBBU1NFUlRfRVEocmFuX2FmdGVyX2ZhdWx0LCAxKTsKKworICAgIGZwcmludGYoc3RkZXJyLCAiUEFTU1xuIik7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9idWczNDE0MTkuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvYW1kNjQtZGFyd2luL2J1ZzM0MTQxOS5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZjIyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9idWczNDE0MTkuc3RkZXJyLmV4cApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9idWczNDE0MTkudmd0ZXN0IGIvbm9uZS90ZXN0cy9hbWQ2NC1kYXJ3aW4vYnVnMzQxNDE5LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWFlNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1kYXJ3aW4vYnVnMzQxNDE5LnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3Byb2c6IGJ1ZzM0MTQxOQordmdvcHRzOiAtcQorY2xlYW51cDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQtbGludXgvZmlsdGVyX21pbmltYWwgYi9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9maWx0ZXJfbWluaW1hbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9maWx0ZXJfbWluaW1hbApyZW5hbWUgdG8gbm9uZS90ZXN0cy9hbWQ2NC1kYXJ3aW4vZmlsdGVyX21pbmltYWwKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQtZGFyd2luL2ZpbHRlcl9zdGRlcnIgYi9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9maWx0ZXJfc3RkZXJyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4Nzc1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0LWRhcndpbi9maWx0ZXJfc3RkZXJyCkBAIC0wLDAgKzEsMTEgQEAKKyMhIC9iaW4vc2gKKworZGlyPWBkaXJuYW1lICQwYAorCisjIFJlbW92ZSA9PXBpZD09IGFuZCAtLXBpZC0tIGFuZCAqKnBpZCoqIHN0cmluZ3MgCitwZXJsIC1wIC1lICdzLyg9PXwtLXxcKlwqKVswLTldezEsN31cMSAvLycgfAorCitwZXJsIC1wIC1lICdzLzB4WzAtOUEtRmEtZl0rLzB4Li4uLi4uLi4vZycKKworIyBOT1RFOiBpdCBpcyBlc3NlbnRpYWwgZm9yIHRoZSBidWczNDU4ODcgdGVzdGNhc2UgdGhhdCB0aGUgc3RkZXJyCisjICAgICAgIGZpbHRlcmluZyBkb2VzICpub3QqIHJlbW92ZSBsaW5lcyBiZWdpbm5pbmcgd2l0aCAtLQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9NYWtlZmlsZS5hbSBiL25vbmUvdGVzdHMvYW1kNjQtbGludXgvTWFrZWZpbGUuYW0KaW5kZXggMzlkN2JhYy4uM2U1YTk1OSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9NYWtlZmlsZS5hbQorKysgYi9ub25lL3Rlc3RzL2FtZDY0LWxpbnV4L01ha2VmaWxlLmFtCkBAIC0yLDEzICsyLDE0IEBACiBpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUudG9vbC10ZXN0cy5hbQogCiBkaXN0X25vaW5zdF9TQ1JJUFRTID0gXAotCWZpbHRlcl9zdGRlcnIgZmlsdGVyX21pbmltYWwKKwlmaWx0ZXJfc3RkZXJyCiAKIEVYVFJBX0RJU1QgPSBcCi0JYnVnMzQ1ODg3LnN0ZGVyci5leHAgYnVnMzQ1ODg3LnZndGVzdAorCWJ1ZzM0NTg4Ny5zdGRlcnIuZXhwIGJ1ZzM0NTg4Ny52Z3Rlc3QgXAorCW1hcF8zMmJpdHMuc3RkZXJyLmV4cCBtYXBfMzJiaXRzLnZndGVzdAogCiBjaGVja19QUk9HUkFNUyA9IFwKLQlidWczNDU4ODcKKwlidWczNDU4ODcgbWFwXzMyYml0cwogCiBBTV9DRkxBR1MgICAgKz0gQEZMQUdfTTY0QAogQU1fQ1hYRkxBR1MgICs9IEBGTEFHX002NEAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQtbGludXgvYnVnMzQ1ODg3LnZndGVzdCBiL25vbmUvdGVzdHMvYW1kNjQtbGludXgvYnVnMzQ1ODg3LnZndGVzdAppbmRleCBjMDE0NDIzLi5lNTY3YzQ3IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FtZDY0LWxpbnV4L2J1ZzM0NTg4Ny52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9idWczNDU4ODcudmd0ZXN0CkBAIC0xLDQgKzEsNCBAQAogcHJvZzogYnVnMzQ1ODg3CiB2Z29wdHM6IC1xCi1zdGRlcnJfZmlsdGVyOiBmaWx0ZXJfbWluaW1hbAorc3RkZXJyX2ZpbHRlcjogZmlsdGVyX3N0ZGVycgogY2xlYW51cDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQtbGludXgvZmlsdGVyX3N0ZGVyciBiL25vbmUvdGVzdHMvYW1kNjQtbGludXgvZmlsdGVyX3N0ZGVycgppbmRleCA1ODc3NTRhLi41YmYyYzljIDEwMDc1NQotLS0gYS9ub25lL3Rlc3RzL2FtZDY0LWxpbnV4L2ZpbHRlcl9zdGRlcnIKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9maWx0ZXJfc3RkZXJyCkBAIC0yLDEwICsyLDUgQEAKIAogZGlyPWBkaXJuYW1lICQwYAogCi0jIFJlbW92ZSA9PXBpZD09IGFuZCAtLXBpZC0tIGFuZCAqKnBpZCoqIHN0cmluZ3MgCi1wZXJsIC1wIC1lICdzLyg9PXwtLXxcKlwqKVswLTldezEsN31cMSAvLycgfAotCi1wZXJsIC1wIC1lICdzLzB4WzAtOUEtRmEtZl0rLzB4Li4uLi4uLi4vZycKLQotIyBOT1RFOiBpdCBpcyBlc3NlbnRpYWwgZm9yIHRoZSBidWczNDU4ODcgdGVzdGNhc2UgdGhhdCB0aGUgc3RkZXJyCi0jICAgICAgIGZpbHRlcmluZyBkb2VzICpub3QqIHJlbW92ZSBsaW5lcyBiZWdpbm5pbmcgd2l0aCAtLQorJGRpci8uLi8uLi8uLi90ZXN0cy9maWx0ZXJfc3RkZXJyX2Jhc2ljIHwKKyRkaXIvLi4vLi4vLi4vdGVzdHMvZmlsdGVyX2FkZHJlc3NlcwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9tYXBfMzJiaXRzLmMgYi9ub25lL3Rlc3RzL2FtZDY0LWxpbnV4L21hcF8zMmJpdHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmQxZDhiCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9tYXBfMzJiaXRzLmMKQEAgLTAsMCArMSw0MyBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSAidGVzdHMvc3lzX21tYW4uaCIKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworaW50IG1haW4oKQoreworCisgICB2b2lkICpmaXJzdCA9IE5VTEw7CisgICB2b2lkICpsYXN0OworICAgdm9pZCAqcmVzOworCisgICB3aGlsZSAoMSkgeworICAgICAgcmVzID0gbW1hcCAoTlVMTCwgNjQgKiAxMDI0LAorICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVN8TUFQXzMyQklULAorICAgICAgICAgICAgICAgICAgLTEsIDApOworICAgICAgaWYgKGZpcnN0ID09IE5VTEwpIHsKKyAgICAgICAgIGZpcnN0ID0gcmVzOworICAgICAgICAgaWYgKGZpcnN0ID09ICh2b2lkICopLTEpIHsKKyAgICAgICAgICAgIHBlcnJvciAoImZpcnN0IG1tYXAiKTsKKyAgICAgICAgICAgIGV4aXQgKDEpOworICAgICAgICAgfQorICAgICAgICAgZnByaW50ZihzdGRlcnIsICJmaXJzdCBtbWFwIDogJXBcbiIsIGZpcnN0KTsKKyAgICAgIH0KKyAgICAgIGlmIChyZXMgPT0gKHZvaWQgKiktMSkgeworICAgICAgICAgZnByaW50ZihzdGRlcnIsICJsYXN0IG1tYXAgb2s6ICVwXG4iLCBsYXN0KTsKKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgbGFzdCA9IHJlczsKKyAgIH0KKworICAgLyogQW5kIG5vdywgcmV0cnkgd2l0aG91dCBNQVBfMzJCSVQgKi8KKyAgIHJlcyA9IG1tYXAgKE5VTEwsIDY0ICogMTAyNCwKKyAgICAgICAgICAgICAgIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLAorICAgICAgICAgICAgICAgLTEsIDApOworICAgaWYgKHJlcyA9PSAodm9pZCAqKS0xKSB7CisgICAgICBwZXJyb3IgKCJyZXRyeSBtbWFwIik7CisgICAgICBleGl0ICgxKTsKKyAgIH0KKyAgIGZwcmludGYoc3RkZXJyLCAicmV0cnkgbW1hcCBvazogJXBcbiIsIHJlcyk7CisKKyAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9tYXBfMzJiaXRzLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL2FtZDY0LWxpbnV4L21hcF8zMmJpdHMuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTE1NTY3Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9tYXBfMzJiaXRzLnN0ZGVyci5leHAKQEAgLTAsMCArMSwzIEBACitmaXJzdCBtbWFwIDogMHguLi4uLi4uLgorbGFzdCBtbWFwIG9rOiAweC4uLi4uLi4uCityZXRyeSBtbWFwIG9rOiAweC4uLi4uLi4uCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LWxpbnV4L21hcF8zMmJpdHMudmd0ZXN0IGIvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9tYXBfMzJiaXRzLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjdmM2EwCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1saW51eC9tYXBfMzJiaXRzLnZndGVzdApAQCAtMCwwICsxLDUgQEAKK3Byb2c6IG1hcF8zMmJpdHMKKyMgdGFrZSBhIGJpZyBhc3BhY2VtZ3IgbWluYWRkciwgdG8gcXVpY2tseSByZWFjaCB0aGUgMkdCIGxpbWl0Cit2Z29wdHM6IC1xIC0tYXNwYWNlLW1pbmFkZHI9MHg3ZmY2MDAwMAorc3RkZXJyX2ZpbHRlcjogZmlsdGVyX3N0ZGVycgorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvTWFrZWZpbGUuYW0gYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgzMGZiZQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDI0IEBACisKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCisKK2Rpc3Rfbm9pbnN0X1NDUklQVFMgPSBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZF9tZGIgXAorCWNvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlX21kYiBcCisJZmlsdGVyX3N0ZGVycgorCitFWFRSQV9ESVNUID0gXAorCWNvcmVkdW1wX3NpbmdsZV90aHJlYWQucG9zdC5leHAgY29yZWR1bXBfc2luZ2xlX3RocmVhZC5zdGRlcnIuZXhwIFwKKwljb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnN0ZG91dC5leHAgY29yZWR1bXBfc2luZ2xlX3RocmVhZC52Z3Rlc3QgXAorCWNvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnBvc3QuZXhwIGNvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnN0ZGVyci5leHAgXAorCWNvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnN0ZG91dC5leHAgY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2Uudmd0ZXN0IFwKKwlzeXNjYWxsX3JldHVybl9hcmdzLnN0ZGVyci5leHAgc3lzY2FsbF9yZXR1cm5fYXJncy52Z3Rlc3QKKworY2hlY2tfUFJPR1JBTVMgPSBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZCBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UgXAorCXN5c2NhbGxfcmV0dXJuX2FyZ3MKKworQU1fQ0ZMQUdTICAgICs9IEBGTEFHX002NEAKK0FNX0NYWEZMQUdTICArPSBARkxBR19NNjRACitBTV9DQ0FTRkxBR1MgKz0gQEZMQUdfTTY0QAorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5jIGIvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzBhYjA2Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWQuYwpAQCAtMCwwICsxLDQ2IEBACisvKiBUZXN0cyB0aGF0IFZhbGdyaW5kIGNvcmVkdW1wIHN1cHBvcnQgd29ya3MgY29ycmVjdGx5IGJ5IHByb2R1Y2luZworICAgYSBjb3JlIGR1bXAgYW5hbHl6YWJsZSBieSBtZGIuICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBpbm5lcih2b2lkKQoreworICAgLyogU2V0IHJlZ2lzdGVycyB0byBhcHJpb3JpIGtub3duIHZhbHVlcy4gKi8KKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgIm1vdnEgJDB4MTAxLCAlJXJheFxuIgorICAgICAgIm1vdnEgJDB4MTAyLCAlJXJieFxuIgorICAgICAgIm1vdnEgJDB4MTAzLCAlJXJjeFxuIgorICAgICAgIm1vdnEgJDB4MTA0LCAlJXJkeFxuIgorICAgICAgIm1vdnEgJDB4MTA1LCAlJXJzaVxuIgorICAgICAgIm1vdnEgJDB4MTA2LCAlJXJkaVxuIgorICAgICAgIm1vdnEgJDB4MTA3LCAlJXI4XG4iCisgICAgICAibW92cSAkMHgxMDgsICUlcjlcbiIKKyAgICAgICJtb3ZxICQweDEwOSwgJSVyMTBcbiIKKyAgICAgICJtb3ZxICQweDEwYSwgJSVyMTFcbiIKKyAgICAgICJtb3ZxICQweDEwYiwgJSVyMTJcbiIKKyAgICAgICJtb3ZxICQweDEwYywgJSVyMTNcbiIKKyAgICAgICJtb3ZxICQweDEwZCwgJSVyMTRcbiIKKyAgICAgICJtb3ZxICQweDEwZSwgJSVyMTVcbiIKKyAgICAgIC8vIG5vdCAlcmJwIGFzIG1kYiBpcyB0aGVuIG5vdCBhYmxlIHRvIHJlY29uc3RydWN0IHN0YWNrIHRyYWNlCisgICAgICAibW92cSAkMHgxMGYsICUlcnNwXG4iCisgICAgICAibW92cSAkMHgxMjM0LCAoJSVyYXgpXG4iICAvLyBzaG91bGQgY2F1c2UgU0VHViBoZXJlCisgICAgICAidWQyIiAgICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUKKyAgICAgIDogLy8gbm8gb3V0cHV0IHJlZ2lzdGVycworICAgICAgOiAvLyBubyBpbnB1dCByZWdpc3RlcnMKKyAgICAgIDogIm1lbW9yeSIsICIlcmF4IiwgIiVyYngiLCAiJXJjeCIsICIlcmR4IiwgIiVyc2kiLCAiJXJkaSIsCisgICAgICAgICIlcjgiLCAiJXI5IiwgIiVyMTAiLCAiJXIxMSIsICIlcjEyIiwgIiVyMTMiLCAiJXIxNCIsICIlcjE1IiwgIiVyc3AiKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgb3V0ZXIodm9pZCkKK3sKKyAgIGlubmVyKCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCit7CisgICBvdXRlcigpOworICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5wb3N0LmV4cCBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnBvc3QuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1YWE1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5wb3N0LmV4cApAQCAtMCwwICsxLDI5IEBACistLS1TdGF0dXMtLS0KK2RlYnVnZ2luZyBjb3JlIGZpbGUgb2YgY29yZWR1bXBfc2luZ2xlICg2NC1iaXQpIGZyb20gLi4uCitpbml0aWFsIGFyZ3Y6IC4vY29yZWR1bXBfc2luZ2xlX3RocmVhZAordGhyZWFkaW5nIG1vZGVsOiBuYXRpdmUgdGhyZWFkcworc3RhdHVzOiBwcm9jZXNzIHRlcm1pbmF0ZWQgYnkgU0lHU0VHViAoU2VnbWVudGF0aW9uIEZhdWx0KSwgYWRkcj0uLi4uLi4uLgorCistLS1SZWdpc3RlcnMtLS0KKyVyYXggPSAweDAwMDAwMDAwMDAwMDAxMDEgICAgICAgJXI4ICA9IDB4MDAwMDAwMDAwMDAwMDEwNworJXJieCA9IDB4MDAwMDAwMDAwMDAwMDEwMiAgICAgICAlcjkgID0gMHgwMDAwMDAwMDAwMDAwMTA4CislcmN4ID0gMHgwMDAwMDAwMDAwMDAwMTAzICAgICAgICVyMTAgPSAweDAwMDAwMDAwMDAwMDAxMDkKKyVyZHggPSAweDAwMDAwMDAwMDAwMDAxMDQgICAgICAgJXIxMSA9IDB4MDAwMDAwMDAwMDAwMDEwYQorJXJzaSA9IDB4MDAwMDAwMDAwMDAwMDEwNSAgICAgICAlcjEyID0gMHgwMDAwMDAwMDAwMDAwMTBiCislcmRpID0gMHgwMDAwMDAwMDAwMDAwMTA2ICAgICAgICVyMTMgPSAweDAwMDAwMDAwMDAwMDAxMGMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJXIxNCA9IDB4MDAwMDAwMDAwMDAwMDEwZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlcjE1ID0gMHgwMDAwMDAwMDAwMDAwMTBlCisKKworJXJpcCA9IDB4Li4uLi4uLi4gIGNvcmVkdW1wX3NpbmdsZV90aHJlYWRgaW5uZXIrMHguLi4uLi4uLgorJXJzcCA9IDB4MDAwMDAwMDAwMDAwMDEwZgorCisKKyV0cmFwbm8gPSAweDAKKyAgICVlcnIgPSAweDAKKworLS0tU3RhY2sgdHJhY2UtLS0KK2NvcmVkdW1wX3NpbmdsZV90aHJlYWRgaW5uZXIKK2NvcmVkdW1wX3NpbmdsZV90aHJlYWRgb3V0ZXIKK2NvcmVkdW1wX3NpbmdsZV90aHJlYWRgbWFpbgorY29yZWR1bXBfc2luZ2xlX3RocmVhZGBfc3RhcnQKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNmUyNWIKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsOSBAQAorCitQcm9jZXNzIHRlcm1pbmF0aW5nIHdpdGggZGVmYXVsdCBhY3Rpb24gb2Ygc2lnbmFsIDExIChTSUdTRUdWKQorIEFjY2VzcyBub3Qgd2l0aGluIG1hcHBlZCByZWdpb24gYXQgYWRkcmVzcyAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiBpbm5lciAoY29yZWR1bXBfc2luZ2xlX3RocmVhZC5jOjExKQorIElmIHlvdSBiZWxpZXZlIHRoaXMgaGFwcGVuZWQgYXMgYSByZXN1bHQgb2YgYSBzdGFjaworIG92ZXJmbG93IGluIHlvdXIgcHJvZ3JhbSdzIG1haW4gdGhyZWFkICh1bmxpa2VseSBidXQKKyBwb3NzaWJsZSksIHlvdSBjYW4gdHJ5IHRvIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZQorIG1haW4gdGhyZWFkIHN0YWNrIHVzaW5nIHRoZSAtLW1haW4tc3RhY2tzaXplPSBmbGFnLgorIFRoZSBtYWluIHRocmVhZCBzdGFjayBzaXplIHVzZWQgaW4gdGhpcyBydW4gd2FzIC4uLi4KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC52Z3Rlc3QgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc2MDRhMAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnZndGVzdApAQCAtMCwwICsxLDUgQEAKK3ByZXJlcTogcm0gLWYgdmdjb3JlLioKK3Byb2c6IGNvcmVkdW1wX3NpbmdsZV90aHJlYWQKK3Znb3B0czogLXEKK3Bvc3Q6IC4vY29yZWR1bXBfc2luZ2xlX3RocmVhZF9tZGIKK2NsZWFudXA6IHJtIC1mIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9tZGIgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9tZGIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDBiODY0ZgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX21kYgpAQCAtMCwwICsxLDI1IEBACisjIS9iaW4vc2gKKworIyBGaWx0ZXJzIGFyZSBub3QgcnVuIGZvciBwb3N0LXRlc3QgY2hlY2sgY29tbWFuZHMuCisjIEZpbHRlciBldmVyeXRoaW5nIGhlcmUuCisKK2VjaG8gIi0tLVN0YXR1cy0tLSIKK2VjaG8gIjo6c3RhdHVzIiB8IC91c3IvYmluL21kYiB2Z2NvcmUuKiB8IFwKK3BlcmwgLXAgLWUgJ3MvZnJvbSBcUyokL2Zyb20gLi4uLycgfCBcCitwZXJsIC0wIC1wIC1lICdzL15maWxlOiAuKz9eKGluaXRpYWwgYXJndjopLyQxL21zJyB8IFwKK3BlcmwgLXAgLWUgJ3MvYWRkcj1bMC05QS1GYS1mXSsvYWRkcj0uLi4uLi4uLi9nJworCitlY2hvICJcbi0tLVJlZ2lzdGVycy0tLSIKK2VjaG8gIjo6cmVncyIgfCAvdXNyL2Jpbi9tZGIgdmdjb3JlLiogfCBcCitzZWQgJy9eJWNzID0vIGQnIHwgXAorc2VkICcvXiVkcyA9LyBkJyB8IFwKK3BlcmwgLXAgLWUgJ3MvJXJpcFxzKz1ccysweFswLTlBLUZhLWZdKyguKilcKzB4WzAtOUEtRmEtZl0rJC8lcmlwID0gMHguLi4uLi4uLiAkMSsweC4uLi4uLi4uLycgfCBcCitzZWQgJy9eJXJicC8gZCcgfCBcCitzZWQgJy9eJXJmbGFncy8gZCcgfCBcCitzZWQgJy9pZD0vIGQnIHwgXAorc2VkICcvc3RhdHVzPS8gZCcgfCBcCitzZWQgJy9eJWdzYmFzZSA9IC8gZCcgfCBcCitzZWQgJy9eJWZzYmFzZSA9IC8gZCcgXAorCitlY2hvICJcbi0tLVN0YWNrIHRyYWNlLS0tIgorZWNobyAiOjpzdGFjayAhIHBlcmwgLXAgLWUgJ3MvXihcUyspXCsuKi9cJDEvZyciIHwgL3Vzci9iaW4vbWRiIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UuYyBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMjViNzgKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UuYwpAQCAtMCwwICsxLDY1IEBACisvKiBUZXN0cyB0aGF0IFZhbGdyaW5kIGNvcmVkdW1wIHN1cHBvcnQgZm9yIFhNTSByZWdpc3RlcnMgd29ya3MgY29ycmVjdGx5CisgICBieSBwcm9kdWNpbmcgYSBjb3JlIGR1bXAgYW5hbHl6YWJsZSBieSBtZGIuCisgICBCYXNpYyByZWdpc3RlciBzZXQgaXMgdGVzdGVkIGluIGNvcmVkdW1wX3NpbmdsZV90aHJlYWQuICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBpbm5lcih2b2lkKSB7CisgICBjb25zdCBjaGFyICppbnB1dCA9CisgICAiXHgxMlx4MzRceDU2XHg3OFx4OWFceGJjXHhkZVx4ZjBceGZlXHhkYlx4Y2FceDk4XHg3Nlx4NTRceDMyXHgxMCIKKyAgICJceDIzXHg0NVx4NjdceDg5XHgwOVx4ODdceDY1XHg0M1x4MjFceGZlXHhkY1x4YmFceDk0XHg2N1x4ZmVceGNhIgorICAgIlx4YWJceGNkXHhhYlx4Y2RceGNlXHhkZVx4Y2VceGRlXHhmYVx4YmFceGZhXHhiYVx4NTBceDY1XHg2N1x4NTQiCisgICAiXHgwM1x4MDVceDA2XHgwOFx4MWRceDFiXHg0Ylx4MTVceDI1XHgyN1x4MjFceDIwXHgzN1x4M2FceDNkXHgzNSIKKyAgICJceDlhXHhiY1x4ZGVceGYwXHg3Nlx4NTRceDMyXHgxMFx4MTJceDM0XHg1Nlx4NzhceGZlXHhkYlx4Y2FceDk4IgorICAgIlx4OTRceDY3XHhmZVx4Y2FceDIzXHg0NVx4NjdceDg5XHgyMVx4ZmVceGRjXHhiYVx4MDlceDg3XHg2NVx4NDMiCisgICAiXHg1MFx4NjVceDY3XHg1NFx4Y2VceGRlXHhjZVx4ZGVceGFiXHhjZFx4YWJceGNkXHhmYVx4YmFceGZhXHhiYSIKKyAgICJceDM3XHgzYVx4M2RceDM1XHgxZFx4MWJceDRiXHgxNVx4MDNceDA1XHgwNlx4MDhceDI1XHgyN1x4MjFceDIwIgorICAgIlx4MjRceDE1XHhiMVx4NWVceDAwXHg5Nlx4ODNceGRkXHhkY1x4OTJceDY2XHgyOVx4YmNceDM1XHhiMVx4OGEiCisgICAiXHhjNlx4NzJceDUwXHg0Ylx4YmRceDhlXHg5YVx4OTVceGM2XHhmN1x4ZDNceDMwXHhkNVx4MzRceDY4XHgyMiIKKyAgICJceGM4XHhkMVx4Y2FceGI2XHhmNFx4NWNceGQxXHhjN1x4MDNceGRiXHhjOFx4YjVceDhhXHgxYVx4ZjNceGJkIgorICAgIlx4MTBceDYwXHg2ZFx4NTJceGEyXHhkN1x4NzVceDIxXHgzNVx4MDhceGZhXHhlNVx4YTNceDRiXHg1Y1x4OWQiCisgICAiXHhhYlx4ODdceDIxXHhiZVx4YjBceGJjXHgzMlx4NzJceDJjXHgyMlx4MDBceDZmXHhmNVx4NjNceDgwXHg2ZSIKKyAgICJceDNkXHgzM1x4NGFceGFiXHhlZlx4OWZceDNiXHhmMFx4MjVceGMzXHgyMFx4YTZceGU5XHg1NVx4MDdceDBhIgorICAgIlx4NzhceDI5XHhhMVx4YjhceGE1XHhmZFx4ZDJceGRmXHgyNVx4NmFceDUzXHhiYVx4NmFceDljXHgwNlx4MDQiCisgICAiXHgzNlx4MzlceDllXHg5Ylx4MDRceGRkXHgyZFx4MjRceGUxXHhhN1x4MzRceDk1XHg5M1x4ZWZceDY3XHgyYSI7CisKKyAgIC8qIFNldCAxMjgtYml0IHdpZGUgWE1NIHJlZ2lzdGVycyB0byBhcHJpb3JpIGtub3duIHZhbHVlcy4gKi8KKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJcbiIKKyAgICAgICJtb3Z1cGQgICAwKCVbaW5wdXRdKSwgJSV4bW0wXG4iCisgICAgICAibW92dXBkICAxNiglW2lucHV0XSksICUleG1tMVxuIgorICAgICAgIm1vdnVwZCAgMzIoJVtpbnB1dF0pLCAlJXhtbTJcbiIKKyAgICAgICJtb3Z1cGQgIDQ4KCVbaW5wdXRdKSwgJSV4bW0zXG4iCisgICAgICAibW92dXBkICA2NCglW2lucHV0XSksICUleG1tNFxuIgorICAgICAgIm1vdnVwZCAgODAoJVtpbnB1dF0pLCAlJXhtbTVcbiIKKyAgICAgICJtb3Z1cGQgIDk2KCVbaW5wdXRdKSwgJSV4bW02XG4iCisgICAgICAibW92dXBkIDExMiglW2lucHV0XSksICUleG1tN1xuIgorICAgICAgIm1vdnVwZCAxMjgoJVtpbnB1dF0pLCAlJXhtbThcbiIKKyAgICAgICJtb3Z1cGQgMTQ0KCVbaW5wdXRdKSwgJSV4bW05XG4iCisgICAgICAibW92dXBkIDE2MCglW2lucHV0XSksICUleG1tMTBcbiIKKyAgICAgICJtb3Z1cGQgMTc2KCVbaW5wdXRdKSwgJSV4bW0xMVxuIgorICAgICAgIm1vdnVwZCAxOTIoJVtpbnB1dF0pLCAlJXhtbTEyXG4iCisgICAgICAibW92dXBkIDIwOCglW2lucHV0XSksICUleG1tMTNcbiIKKyAgICAgICJtb3Z1cGQgMjI0KCVbaW5wdXRdKSwgJSV4bW0xNFxuIgorICAgICAgIm1vdnVwZCAyNDAoJVtpbnB1dF0pLCAlJXhtbTE1XG4iCisgICAgICAibW92cSAkMHgxLCAlJXJheFxuIgorICAgICAgIm1vdnEgJDB4MTIzNCwgKCUlcmF4KVxuIiAgLy8gc2hvdWxkIGNhdXNlIFNFR1YgaGVyZQorICAgICAgOiAvLyBubyBvdXRwdXQgcmVnaXN0ZXJzCisgICAgICA6IFtpbnB1dF0gICJyIiAoaW5wdXQpCisgICAgICA6ICJtZW1vcnkiLCAiJXhtbTAiLCAiJXhtbTEiLCAiJXhtbTIiLCAiJXhtbTMiLCAiJXhtbTQiLCAiJXhtbTUiLCAiJXhtbTYiLAorICAgICAgICAiJXhtbTciLCAiJXhtbTgiLCAiJXhtbTkiLCAiJXhtbTEwIiwgIiV4bW0xMSIsICIleG1tMTIiLCAiJXhtbTEzIiwKKyAgICAgICAgIiV4bW0xNCIsICIleG1tMTUiKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgb3V0ZXIodm9pZCkKK3sKKyAgIGlubmVyKCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCit7CisgICBvdXRlcigpOworICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UucG9zdC5leHAgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UucG9zdC5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg0MGRhNQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5wb3N0LmV4cApAQCAtMCwwICsxLDIzIEBACistLS1TdGF0dXMtLS0KK2RlYnVnZ2luZyBjb3JlIGZpbGUgb2YgY29yZWR1bXBfc2luZ2xlICg2NC1iaXQpIGZyb20gLi4uCitpbml0aWFsIGFyZ3Y6IC4vY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UKK3RocmVhZGluZyBtb2RlbDogbmF0aXZlIHRocmVhZHMKK3N0YXR1czogcHJvY2VzcyB0ZXJtaW5hdGVkIGJ5IFNJR1NFR1YgKFNlZ21lbnRhdGlvbiBGYXVsdCksIGFkZHI9Li4uLi4uLi4KKworLS0tU1NFIFJlZ2lzdGVycy0tLQorJXhtbTAgIDB4MTAzMjU0NzY5OGNhZGJmZWYwZGViYzlhNzg1NjM0MTIKKyV4bW0xICAweGNhZmU2Nzk0YmFkY2ZlMjE0MzY1ODcwOTg5Njc0NTIzCisleG1tMiAgMHg1NDY3NjU1MGJhZmFiYWZhZGVjZWRlY2VjZGFiY2RhYgorJXhtbTMgIDB4MzUzZDNhMzcyMDIxMjcyNTE1NGIxYjFkMDgwNjA1MDMKKyV4bW00ICAweDk4Y2FkYmZlNzg1NjM0MTIxMDMyNTQ3NmYwZGViYzlhCisleG1tNSAgMHg0MzY1ODcwOWJhZGNmZTIxODk2NzQ1MjNjYWZlNjc5NAorJXhtbTYgIDB4YmFmYWJhZmFjZGFiY2RhYmRlY2VkZWNlNTQ2NzY1NTAKKyV4bW03ICAweDIwMjEyNzI1MDgwNjA1MDMxNTRiMWIxZDM1M2QzYTM3CisleG1tOCAgMHg4YWIxMzViYzI5NjY5MmRjZGQ4Mzk2MDA1ZWIxMTUyNAorJXhtbTkgIDB4MjI2ODM0ZDUzMGQzZjdjNjk1OWE4ZWJkNGI1MDcyYzYKKyV4bW0xMCAweGJkZjMxYThhYjVjOGRiMDNjN2QxNWNmNGI2Y2FkMWM4CisleG1tMTEgMHg5ZDVjNGJhM2U1ZmEwODM1MjE3NWQ3YTI1MjZkNjAxMAorJXhtbTEyIDB4NmU4MDYzZjU2ZjAwMjIyYzcyMzJiY2IwYmUyMTg3YWIKKyV4bW0xMyAweDBhMDc1NWU5YTYyMGMzMjVmMDNiOWZlZmFiNGEzMzNkCisleG1tMTQgMHgwNDA2OWM2YWJhNTM2YTI1ZGZkMmZkYTViOGExMjk3OAorJXhtbTE1IDB4MmE2N2VmOTM5NTM0YTdlMTI0MmRkZDA0OWI5ZTM5MzYKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ExZjUwMwotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMTEgQEAKKworUHJvY2VzcyB0ZXJtaW5hdGluZyB3aXRoIGRlZmF1bHQgYWN0aW9uIG9mIHNpZ25hbCAxMSAoU0lHU0VHVikKKyBBY2Nlc3Mgbm90IHdpdGhpbiBtYXBwZWQgcmVnaW9uIGF0IGFkZHJlc3MgMHguLi4uLi4uLgorICAgYXQgMHguLi4uLi4uLjogaW5uZXIgKGNvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLmM6MjkpCisgICBieSAweC4uLi4uLi4uOiBvdXRlciAoY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UuYzo1OCkKKyAgIGJ5IDB4Li4uLi4uLi46IG1haW4gKGNvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLmM6NjMpCisgSWYgeW91IGJlbGlldmUgdGhpcyBoYXBwZW5lZCBhcyBhIHJlc3VsdCBvZiBhIHN0YWNrCisgb3ZlcmZsb3cgaW4geW91ciBwcm9ncmFtJ3MgbWFpbiB0aHJlYWQgKHVubGlrZWx5IGJ1dAorIHBvc3NpYmxlKSwgeW91IGNhbiB0cnkgdG8gaW5jcmVhc2UgdGhlIHNpemUgb2YgdGhlCisgbWFpbiB0aHJlYWQgc3RhY2sgdXNpbmcgdGhlIC0tbWFpbi1zdGFja3NpemU9IGZsYWcuCisgVGhlIG1haW4gdGhyZWFkIHN0YWNrIHNpemUgdXNlZCBpbiB0aGlzIHJ1biB3YXMgLi4uLgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2Uuc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnZndGVzdCBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI5MjU5NwotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS52Z3Rlc3QKQEAgLTAsMCArMSw1IEBACitwcmVyZXE6IHJtIC1mIHZnY29yZS4qICYmIC4uLy4uLy4uL3Rlc3RzL3g4Nl9hbWQ2NF9mZWF0dXJlcyBhbWQ2NC1zc2UzCitwcm9nOiBjb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZQordmdvcHRzOiAtcQorcG9zdDogLi9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZV9tZGIKK2NsZWFudXA6IHJtIC1mIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2VfbWRiIGIvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlX21kYgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zY2M1NDEzCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlX21kYgpAQCAtMCwwICsxLDE1IEBACisjIS9iaW4vc2gKKworIyBGaWx0ZXJzIGFyZSBub3QgcnVuIGZvciBwb3N0LXRlc3QgY2hlY2sgY29tbWFuZHMuCisjIEZpbHRlciBldmVyeXRoaW5nIGhlcmUuCisKK2VjaG8gIi0tLVN0YXR1cy0tLSIKK2VjaG8gIjo6c3RhdHVzIiB8IC91c3IvYmluL21kYiB2Z2NvcmUuKiB8IFwKK3BlcmwgLXAgLWUgJ3MvZnJvbSBcUyokL2Zyb20gLi4uLycgfCBcCitwZXJsIC0wIC1wIC1lICdzL15maWxlOiAuKz9eKGluaXRpYWwgYXJndjopLyQxL21zJyB8IFwKK3BlcmwgLXAgLWUgJ3MvYWRkcj1bMC05QS1GYS1mXSsvYWRkcj0uLi4uLi4uLi9nJworCitlY2hvICJcbi0tLVNTRSBSZWdpc3RlcnMtLS0iCitlY2hvICI6OmZwcmVncyIgfCAvdXNyL2Jpbi9tZGIgdmdjb3JlLiogfCBcCitwZXJsIC1uIC1lICcvXiV4bW0vICYmIHByaW50ICRfOycKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2ZpbHRlcl9zdGRlcnIgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvZmlsdGVyX3N0ZGVycgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYWU5MzEzCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL2ZpbHRlcl9zdGRlcnIKQEAgLTAsMCArMSwzIEBACisjISAvYmluL3NoCisKKy4uL2ZpbHRlcl9zdGRlcnIKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQtc29sYXJpcy9zeXNjYWxsX3JldHVybl9hcmdzLmMgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvc3lzY2FsbF9yZXR1cm5fYXJncy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmY2I5MGUKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvc3lzY2FsbF9yZXR1cm5fYXJncy5jCkBAIC0wLDAgKzEsNjMgQEAKKy8qIFRlc3RzIHRoYXQgVmFsZ3JpbmQgY29ycmVjdGx5IGhhbmRsZXMgc3lzY2FsbHMgcmV0dXJuaW5nCisgICBlaXRoZXIgMSAoaW4gJXJheCkgb3IgMiB2YWx1ZXMgKGluICVyZHg6JXJheCkuICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKKyNkZWZpbmUgR0FSQkFHRSAweDBjYWZmZWRlYWRiZWVmCisKK3N0YXRpYyB2b2lkIHN5c2NhbGxfcnZhbChpbnQgc3lzbm8sIHVpbnQ2NF90ICpydmFsX2hpLCB1aW50NjRfdCAqcnZhbF9sbykKK3sKKyAgIF9fYXNtX18gKAorICAgICAgIm1vdnEgJVtJTlBVVDFdLCUlcmR4XG4iCisgICAgICAibW92cSAlW1NZU0NBTExfTlVNQkVSXSwlJXJheFxuIgorICAgICAgInN5c2NhbGxcbiIKKyAgICAgICJtb3ZxICVbUlZBTF9ISV0sJSVyY3hcbiIKKyAgICAgICJtb3ZxICUlcmR4LCglJXJjeClcbiIKKyAgICAgICJtb3ZxICVbUlZBTF9MT10sJSVyY3hcbiIKKyAgICAgICJtb3ZxICUlcmF4LCglJXJjeClcbiIKKyAgICAgIDogW1JWQUxfSEldICI9bSIgKHJ2YWxfaGkpLCBbUlZBTF9MT10gIj1tIiAocnZhbF9sbykJLyogb3V0cHV0ICovCisgICAgICA6IFtJTlBVVDFdICJpIiAoR0FSQkFHRSksIFtTWVNDQUxMX05VTUJFUl0gImciIChzeXNubykJLyogaW5wdXQgKi8KKyAgICAgIDogInJheCIsICJyY3giLCAicmR4IiwgImNjIiwgIm1lbW9yeSIpOwkJCS8qIGNsb2JiZXJzICovCit9CisKK3N0YXRpYyBpbnQgc3lzY2FsbF9ydmFsMSh2b2lkKSB7CisgICB1aW50NjRfdCB2YWxIaSwgdmFsTG87CisKKyAgIC8qIFN5c2NhbGwgbHdwX3NlbGYgcmV0dXJucyBqdXN0IHRpZCBpbiByYXguICovCisgICB2YWxIaSA9IHZhbExvID0gR0FSQkFHRTsKKyAgIHN5c2NhbGxfcnZhbChTWVNfbHdwX3NlbGYsICZ2YWxIaSwgJnZhbExvKTsKKyAgIGlmICgodmFsSGkgIT0gR0FSQkFHRSkgfHwgKHZhbExvICE9IDEpKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgInJ2YWwxIEZBSUxFRCBbJSNseDolI2x4XVxuIiwgdmFsSGksIHZhbExvKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzeXNjYWxsX3J2YWwyKHZvaWQpIHsKKyAgIHVpbnQ2NF90IHZhbEhpLCB2YWxMbzsKKworICAgLyogU3lzY2FsbCBnZXRwaWQgcmV0dXJucyBwaWQgaW4gcmF4IGFuZCBwcGlkIGluIHJkeC4gKi8KKyAgIHZhbEhpID0gdmFsTG8gPSBHQVJCQUdFOworICAgc3lzY2FsbF9ydmFsKFNZU19nZXRwaWQsICZ2YWxIaSwgJnZhbExvKTsKKyAgIGlmICgodmFsSGkgPT0gR0FSQkFHRSkgfHwgKHZhbExvID09IEdBUkJBR0UpKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgInJ2YWwyIEZBSUxFRCBbJSNseDolI2x4XVxuIiwgdmFsSGksIHZhbExvKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICByZXR1cm4gMDsKK30KKworaW50IG1haW4odm9pZCkgeworICAgaW50IHJldCA9IDA7CisKKyAgIHJldCB8PSBzeXNjYWxsX3J2YWwxKCk7CisgICByZXQgfD0gc3lzY2FsbF9ydmFsMigpOworCisgICBpZiAocmV0ICE9IDApCisgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTFxuIik7CisKKyAgIHJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvc3lzY2FsbF9yZXR1cm5fYXJncy5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL3N5c2NhbGxfcmV0dXJuX2FyZ3Muc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL3N5c2NhbGxfcmV0dXJuX2FyZ3Mudmd0ZXN0IGIvbm9uZS90ZXN0cy9hbWQ2NC1zb2xhcmlzL3N5c2NhbGxfcmV0dXJuX2FyZ3Mudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMTU5MWQKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0LXNvbGFyaXMvc3lzY2FsbF9yZXR1cm5fYXJncy52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBzeXNjYWxsX3JldHVybl9hcmdzCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L01ha2VmaWxlLmFtIGIvbm9uZS90ZXN0cy9hbWQ2NC9NYWtlZmlsZS5hbQppbmRleCAyMWQ0MTllLi5iZTQxMTNiIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FtZDY0L01ha2VmaWxlLmFtCisrKyBiL25vbmUvdGVzdHMvYW1kNjQvTWFrZWZpbGUuYW0KQEAgLTEsNyArMSw3IEBACiAKIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCiAKLWRpc3Rfbm9pbnN0X1NDUklQVFMgPSBmaWx0ZXJfY3B1aWQgZmlsdGVyX3N0ZGVyciBnZW5faW5zbl90ZXN0LnBsCitkaXN0X25vaW5zdF9TQ1JJUFRTID0gZmlsdGVyX2NwdWlkIGZpbHRlcl9pbmZfbmFuIGZpbHRlcl9zdGRlcnIgZ2VuX2luc25fdGVzdC5wbAogCiBDTEVBTkZJTEVTID0gJChhZGRzdWZmaXggLmMsJChJTlNOX1RFU1RTKSkKIApAQCAtNDQsNiArNDQsNyBAQAogCWZjbW92bnUudmd0ZXN0IGZjbW92bnUuc3RkZXJyLmV4cCBmY21vdm51LnN0ZG91dC5leHAgXAogCWZ4dHJhY3Qudmd0ZXN0IGZ4dHJhY3Quc3RkZXJyLmV4cCBmeHRyYWN0LnN0ZG91dC5leHAgXAogCWZ4dHJhY3Quc3Rkb3V0LmV4cC1vbGRlci1nbGliYyBcCisJZ2V0c2VnLnN0ZG91dC5leHAgZ2V0c2VnLnN0ZGVyci5leHAgZ2V0c2VnLnZndGVzdCBcCiAJJChhZGRzdWZmaXggLnN0ZGVyci5leHAsJChJTlNOX1RFU1RTKSkgXAogCSQoYWRkc3VmZml4IC5zdGRvdXQuZXhwLCQoSU5TTl9URVNUUykpIFwKIAkkKGFkZHN1ZmZpeCAudmd0ZXN0LCQoSU5TTl9URVNUUykpIFwKQEAgLTkxLDYgKzkyLDcgQEAKIAlidWcxMjc1MjEtNjQgYnVnMTMyODEzLWFtZDY0IGJ1ZzEzMjkxOCBidWcxMzc3MTQtYW1kNjQgXAogCWNsYyBcCiAJY21weGNoZyBcCisJZ2V0c2VnIFwKIAkkKElOU05fVEVTVFMpIFwKIAluYW44MGFuZDY0IFwKIAlyY2wtYW1kNjQgXApAQCAtMTAzLDIwICsxMDUsOSBAQAogaWYgQlVJTERfQUREUjMyX1RFU1RTCiAgY2hlY2tfUFJPR1JBTVMgKz0gYXNvcmVwCiBlbmRpZgotaWYgQlVJTERfU1NTRTNfVEVTVFMKLSBjaGVja19QUk9HUkFNUyArPSBzc3NlM19taXNhbGlnbmVkCi1lbmRpZgotaWYgQlVJTERfTFpDTlRfVEVTVFMKLSBjaGVja19QUk9HUkFNUyArPSBsemNudDY0Ci1lbmRpZgotaWYgQlVJTERfU1NFNDJfVEVTVFMKLSBjaGVja19QUk9HUkFNUyArPSBcCi0JcGNtcHN0cjY0IHBjbXB4c3RyeDY0IHNzZTQtNjQgY3JjMzIgYWVzIFwKLQlwY21wc3RyNjR3IHBjbXB4c3RyeDY0dwotZW5kaWYKIGlmIEJVSUxEX0FWWF9URVNUUwogaWYgQlVJTERfVlBDTE1VTFFEUV9URVNUUwotIGNoZWNrX1BST0dSQU1TICs9IGF2eC0xCisgIGNoZWNrX1BST0dSQU1TICs9IGF2eC0xCiBlbmRpZgogZW5kaWYKIGlmIEJVSUxEX0FWWDJfVEVTVFMKQEAgLTEyNCw2ICsxMTUsMjAgQEAKICAgY2hlY2tfUFJPR1JBTVMgKz0gYXZ4Mi0xCiBlbmRpZgogZW5kaWYKK2lmIEJVSUxEX1NTU0UzX1RFU1RTCisgY2hlY2tfUFJPR1JBTVMgKz0gc3NzZTNfbWlzYWxpZ25lZAorZW5kaWYKK2lmIEJVSUxEX0xaQ05UX1RFU1RTCisgY2hlY2tfUFJPR1JBTVMgKz0gbHpjbnQ2NAorZW5kaWYKK2lmIEJVSUxEX01PVkJFX1RFU1RTCisgY2hlY2tfUFJPR1JBTVMgKz0gbW92YmUKK2VuZGlmCitpZiBCVUlMRF9TU0U0Ml9URVNUUworIGNoZWNrX1BST0dSQU1TICs9IFwKKwlwY21wc3RyNjQgcGNtcHhzdHJ4NjQgc3NlNC02NCBjcmMzMiBhZXMgXAorCXBjbXBzdHI2NHcgcGNtcHhzdHJ4NjR3CitlbmRpZgogaWYgQlVJTERfVFNYX1RFU1RTCiAgIGNoZWNrX1BST0dSQU1TICs9IHRtMSB4YWNxX3hyZWwKIGVuZGlmCkBAIC0xMzMsOSArMTM4LDYgQEAKIGlmIEJVSUxEX0ZNQV9URVNUUwogIGNoZWNrX1BST0dSQU1TICs9IGZtYQogZW5kaWYKLWlmIEJVSUxEX01PVkJFX1RFU1RTCi0gY2hlY2tfUFJPR1JBTVMgKz0gbW92YmUKLWVuZGlmCiBpZiBCVUlMRF9NUFhfVEVTVFMKICBjaGVja19QUk9HUkFNUyArPSBtcHgKIGVuZGlmCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L2FtZDY0bG9ja2VkLmMgYi9ub25lL3Rlc3RzL2FtZDY0L2FtZDY0bG9ja2VkLmMKaW5kZXggZDQ2NDg1Ny4uYmFmOWJiZSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbWQ2NC9hbWQ2NGxvY2tlZC5jCisrKyBiL25vbmUvdGVzdHMvYW1kNjQvYW1kNjRsb2NrZWQuYwpAQCAtMTQsNiArMTQsMTggQEAKIHR5cGVkZWYgIHVuc2lnbmVkIGxvbmcgICAgICAgICAgIFVXb3JkOwogdHlwZWRlZiAgY2hhciAgICAgICAgICAgICAgICAgICAgSENoYXI7CiAKK3Vuc2lnbmVkIG15cmFuZG9tKHZvaWQpCit7CisgICAvKiBTaW1wbGUgbXVsdGlwbHktd2l0aC1jYXJyeSByYW5kb20gZ2VuZXJhdG9yLiAqLworICAgc3RhdGljIHVuc2lnbmVkIG1fdyA9IDExOworICAgc3RhdGljIHVuc2lnbmVkIG1feiA9IDEzOworCisgICBtX3ogPSAzNjk2OSAqIChtX3ogJiA2NTUzNSkgKyAobV96ID4+IDE2KTsKKyAgIG1fdyA9IDE4MDAwICogKG1fdyAmIDY1NTM1KSArIChtX3cgPj4gMTYpOworCisgICByZXR1cm4gKG1feiA8PCAxNikgKyBtX3c7Cit9CisKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyBCRUdJTiBjcmMzMiBzdHVmZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTY2NCw4ICs2NzYsOCBAQAogICAgLyogVmFsaWQgYml0IG9mZnNldHMgYXJlIC04MDAgLi4gNzk5IGluY2x1c2l2ZS4gKi8KIAogICAgZm9yIChuID0gMDsgbiA8IDEwMDAwOyBuKyspIHsKLSAgICAgIGJpdG9mZiA9IChyYW5kb20oKSAlIDE2MDApIC0gODAwOwotICAgICAgb3AgPSByYW5kb20oKSAlIDQ7CisgICAgICBiaXRvZmYgPSAobXlyYW5kb20oKSAlIDE2MDApIC0gODAwOworICAgICAgb3AgPSBteXJhbmRvbSgpICUgNDsKICAgICAgIGMgPSAyOwogICAgICAgc3dpdGNoIChvcCkgewogICAgICAgICAgY2FzZSAwOiBjID0gYnRzcV9tZW0oYmxvY2ssIGJpdG9mZik7IGJyZWFrOwpAQCAtNzAwLDggKzcxMiw4IEBACiAgICAvKiBWYWxpZCBiaXQgb2Zmc2V0cyBhcmUgLTgwMCAuLiA3OTkgaW5jbHVzaXZlLiAqLwogCiAgICBmb3IgKG4gPSAwOyBuIDwgMTAwMDA7IG4rKykgewotICAgICAgYml0b2ZmID0gKHJhbmRvbSgpICUgMTYwMCkgLSA4MDA7Ci0gICAgICBvcCA9IHJhbmRvbSgpICUgNDsKKyAgICAgIGJpdG9mZiA9IChteXJhbmRvbSgpICUgMTYwMCkgLSA4MDA7CisgICAgICBvcCA9IG15cmFuZG9tKCkgJSA0OwogICAgICAgYyA9IDI7CiAgICAgICBzd2l0Y2ggKG9wKSB7CiAgICAgICAgICBjYXNlIDA6IGMgPSBidHNsX21lbShibG9jaywgYml0b2ZmKTsgYnJlYWs7CkBAIC03MzYsOCArNzQ4LDggQEAKICAgIC8qIFZhbGlkIGJpdCBvZmZzZXRzIGFyZSAtODAwIC4uIDc5OSBpbmNsdXNpdmUuICovCiAKICAgIGZvciAobiA9IDA7IG4gPCAxMDAwMDsgbisrKSB7Ci0gICAgICBiaXRvZmYgPSAocmFuZG9tKCkgJSAxNjAwKSAtIDgwMDsKLSAgICAgIG9wID0gcmFuZG9tKCkgJSA0OworICAgICAgYml0b2ZmID0gKG15cmFuZG9tKCkgJSAxNjAwKSAtIDgwMDsKKyAgICAgIG9wID0gbXlyYW5kb20oKSAlIDQ7CiAgICAgICBjID0gMjsKICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgIGNhc2UgMDogYyA9IGJ0c3dfbWVtKGJsb2NrLCBiaXRvZmYpOyBicmVhazsKQEAgLTEwNDYsNyArMTA1OCw3IEBACiAgIC8vIG9iamR1bXAgLWQgLi9hbWQ2NGxvY2tlZCB8IGdyZXAgbG9jayB8IGdyZXAgLXYgZG9fbG9jayB8IGdyZXAgLXYgZWxmNjQgfCB3YwogCiAKLSAgeyBVSW50IGNyY0V4cGQgPSAweDFGNjc3NjI5OworICB7IFVJbnQgY3JjRXhwZCA9IDB4REYwNjU2RjE7CiAgICAgdGhlQ1JDID0gY3JjRmluYWxpc2UoIHRoZUNSQyApOwogICAgIGlmICh0aGVDUkMgPT0gY3JjRXhwZCkgewogICAgICAgIHByaW50ZigiYW1kNjRsb2NrZWQ6IFBBU1M6IENSQ3MgYWN0dWFsIDB4JTA4WCBleHBlY3RlZCAweCUwOFhcbiIsCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L2FtZDY0bG9ja2VkLnN0ZG91dC5leHAgYi9ub25lL3Rlc3RzL2FtZDY0L2FtZDY0bG9ja2VkLnN0ZG91dC5leHAKaW5kZXggOTcyMDJkMi4uYWJlOGI3MyAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbWQ2NC9hbWQ2NGxvY2tlZC5zdGRvdXQuZXhwCisrKyBiL25vbmUvdGVzdHMvYW1kNjQvYW1kNjRsb2NrZWQuc3Rkb3V0LmV4cApAQCAtMSArMSBAQAotYW1kNjRsb2NrZWQ6IFBBU1M6IENSQ3MgYWN0dWFsIDB4MUY2Nzc2MjkgZXhwZWN0ZWQgMHgxRjY3NzYyOQorYW1kNjRsb2NrZWQ6IFBBU1M6IENSQ3MgYWN0dWFsIDB4REYwNjU2RjEgZXhwZWN0ZWQgMHhERjA2NTZGMQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9hdngtMS5jIGIvbm9uZS90ZXN0cy9hbWQ2NC9hdngtMS5jCmluZGV4IGQwMmY3ZTMuLjExNzU5ZjIgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvYW1kNjQvYXZ4LTEuYworKysgYi9ub25lL3Rlc3RzL2FtZDY0L2F2eC0xLmMKQEAgLTIsNyArMiw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KLSNpbmNsdWRlIDxtYWxsb2MuaD4KKyNpbmNsdWRlICJ0ZXN0cy9tYWxsb2MuaCIKIAogdHlwZWRlZiAgdW5zaWduZWQgY2hhciAgICAgICAgICAgVUNoYXI7CiB0eXBlZGVmICB1bnNpZ25lZCBpbnQgICAgICAgICAgICBVSW50OwpAQCAtNjMsNyArNjMsNyBAQAogICAgIFwKICAgICBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKSBzdGF0aWMgdm9pZCB0ZXN0XyMjX25hbWUgKCB2b2lkICkgICBcCiAgICAgeyBcCi0gICAgICAgQmxvY2sqIGIgPSBtZW1hbGlnbigzMiwgc2l6ZW9mKEJsb2NrKSk7IFwKKyAgICAgICBCbG9jayogYiA9IG1lbWFsaWduMzIoc2l6ZW9mKEJsb2NrKSk7IFwKICAgICAgICByYW5kQmxvY2soYik7IFwKICAgICAgICBwcmludGYoIiVzKHJlZylcbiIsICNfbmFtZSk7IFwKICAgICAgICBzaG93QmxvY2soImJlZm9yZSIsIGIpOyBcCkBAIC0yMjksMTUgKzIyOSw0NSBAQAogR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weEUsCiAgICAgICAgICAgICAgICAidmNtcHNkICQweEUsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKICAgICAgICAgICAgICAgICJ2Y21wc2QgJDB4RSwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDEwLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxMCwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxMCwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQogR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDExLAogICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxMSwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAogICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxMSwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQogR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDEyLAogICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxMiwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAogICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxMiwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDEzLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxMywgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxMywgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDE0LAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxNCwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxNCwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDE1LAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxNSwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxNSwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQogR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDE2LAogICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxNiwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAogICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxNiwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDE3LAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxNywgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxNywgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDE4LAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxOCwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxOCwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDE5LAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxOSwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxOSwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDFBLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxQSwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxQSwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDFDLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxQywgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxQywgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQorR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDFELAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxRCwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAorICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxRCwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQogR0VOX3Rlc3RfUmFuZE0oVkNNUFNEXzEyOF8weDFFLAogICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxRSwgJSV4bW02LCAgJSV4bW04LCAlJXhtbTciLAogICAgICAgICAgICAgICAgInZjbXBzZCAkMHgxRSwgKCUlcmF4KSwgJSV4bW04LCAlJXhtbTciKQpAQCAtNjQzLDE1ICs2NzMsNDUgQEAKIEdFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHhFLAogICAgICAgICAgICAgICAgInZjbXBzcyAkMHhFLCAlJXhtbTYsICAlJXhtbTgsICUleG1tNyIsCiAgICAgICAgICAgICAgICAidmNtcHNzICQweEUsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxMCwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTAsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTAsICglJXJheCksICUleG1tOCwgJSV4bW03IikKIEdFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxMSwKICAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTEsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKICAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTEsICglJXJheCksICUleG1tOCwgJSV4bW03IikKIEdFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxMiwKICAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTIsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKICAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTIsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxMywKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTMsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTMsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxNCwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTQsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTQsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxNSwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTUsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTUsICglJXJheCksICUleG1tOCwgJSV4bW03IikKIEdFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxNiwKICAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTYsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKICAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTYsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxNywKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTcsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTcsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxOCwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTgsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTgsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxOSwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTksICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MTksICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxQSwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MUEsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MUEsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxQywKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MUMsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MUMsICglJXJheCksICUleG1tOCwgJSV4bW03IikKK0dFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxRCwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MUQsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKKyAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MUQsICglJXJheCksICUleG1tOCwgJSV4bW03IikKIEdFTl90ZXN0X1JhbmRNKFZDTVBTU18xMjhfMHgxRSwKICAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MUUsICUleG1tNiwgICUleG1tOCwgJSV4bW03IiwKICAgICAgICAgICAgICAgICJ2Y21wc3MgJDB4MUUsICglJXJheCksICUleG1tOCwgJSV4bW03IikKQEAgLTIyMzgsMTIgKzIyOTgsMjEgQEAKICAgIERPX0QoIFZDTVBTU18xMjhfMHg4ICk7CiAgICBET19EKCBWQ01QU1NfMTI4XzB4QSApOwogICAgRE9fRCggVkNNUFNTXzEyOF8weEMgKTsKLSAgIERPX0QoIFZDTVBTU18xMjhfMHhDICk7CiAgICBET19EKCBWQ01QU1NfMTI4XzB4RCApOwogICAgRE9fRCggVkNNUFNTXzEyOF8weEUgKTsKKyAgIERPX0QoIFZDTVBTU18xMjhfMHgxMCApOwogICAgRE9fRCggVkNNUFNTXzEyOF8weDExICk7Ci0gICBET19EKCBWQ01QU1NfMTI4XzB4MTIpOworICAgRE9fRCggVkNNUFNTXzEyOF8weDEyICk7CisgICBET19EKCBWQ01QU1NfMTI4XzB4MTMgKTsKKyAgIERPX0QoIFZDTVBTU18xMjhfMHgxNCApOworICAgRE9fRCggVkNNUFNTXzEyOF8weDE1ICk7CiAgICBET19EKCBWQ01QU1NfMTI4XzB4MTYgKTsKKyAgIERPX0QoIFZDTVBTU18xMjhfMHgxNyApOworICAgRE9fRCggVkNNUFNTXzEyOF8weDE4ICk7CisgICBET19EKCBWQ01QU1NfMTI4XzB4MTkgKTsKKyAgIERPX0QoIFZDTVBTU18xMjhfMHgxQSApOworICAgRE9fRCggVkNNUFNTXzEyOF8weDFDICk7CisgICBET19EKCBWQ01QU1NfMTI4XzB4MUQgKTsKICAgIERPX0QoIFZDTVBTU18xMjhfMHgxRSApOwogICAgRE9fRCggVk1PVkREVVBfWE1Nb3JNRU02NF90b19YTU0gKTsKICAgIERPX0QoIFZNT1ZEX0lSRUdvck1FTTMyX3RvX1hNTSApOwpAQCAtMjMzMSw3ICsyNDAwLDcgQEAKICAgIERPX0QoIFZBTkROUFNfMTI4ICk7CiAgICBET19EKCBWT1JQU18xMjggKTsKICAgIERPX0QoIFZTUVJUU0RfMTI4ICk7Ci0gICAvKiBUZXN0IGFsbCBDTVBTUyB2YXJpYW50czsgdGhpcyBjb2RlIGlzIHRyaWNreS4gKi8KKyAgIC8qIFRlc3QgYWxsIENNUFNEIHZhcmlhbnRzOyB0aGlzIGNvZGUgaXMgdHJpY2t5LiAqLwogICAgRE9fRCggVkNNUFNEXzEyOF8weDAgKTsKICAgIERPX0QoIFZDTVBTRF8xMjhfMHgxICk7CiAgICBET19EKCBWQ01QU0RfMTI4XzB4MiApOwpAQCAtMjM0NSw5ICsyNDE0LDE5IEBACiAgICBET19EKCBWQ01QU0RfMTI4XzB4QyApOwogICAgRE9fRCggVkNNUFNEXzEyOF8weEQgKTsKICAgIERPX0QoIFZDTVBTRF8xMjhfMHhFICk7CisgICBET19EKCBWQ01QU0RfMTI4XzB4MTAgKTsKICAgIERPX0QoIFZDTVBTRF8xMjhfMHgxMSApOwogICAgRE9fRCggVkNNUFNEXzEyOF8weDEyICk7CisgICBET19EKCBWQ01QU0RfMTI4XzB4MTMgKTsKKyAgIERPX0QoIFZDTVBTRF8xMjhfMHgxNCApOworICAgRE9fRCggVkNNUFNEXzEyOF8weDE1ICk7CiAgICBET19EKCBWQ01QU0RfMTI4XzB4MTYgKTsKKyAgIERPX0QoIFZDTVBTRF8xMjhfMHgxNyApOworICAgRE9fRCggVkNNUFNEXzEyOF8weDE4ICk7CisgICBET19EKCBWQ01QU0RfMTI4XzB4MTkgKTsKKyAgIERPX0QoIFZDTVBTRF8xMjhfMHgxQSApOworICAgRE9fRCggVkNNUFNEXzEyOF8weDFDICk7CisgICBET19EKCBWQ01QU0RfMTI4XzB4MUQgKTsKICAgIERPX0QoIFZDTVBTRF8xMjhfMHgxRSApOwogICAgRE9fRCggVlBTSFVGQl8xMjggKTsKICAgIERPX0QoIFZDVlRUU0QyU0lfMzIgKTsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQvYXZ4LTEuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvYW1kNjQvYXZ4LTEuc3Rkb3V0LmV4cAppbmRleCBlMjk4Y2I2Li5mOWVkYTFhIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FtZDY0L2F2eC0xLnN0ZG91dC5leHAKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC9hdngtMS5zdGRvdXQuZXhwCkBAIC0zMTU3LDcgKzMxNTcsNyBAQAogICAgIDVhZGVkMzIxZjVlOWQzMTkuZmE3OTVhNjYyOTA3YWE2OS5hZTAzOGFjNjA4MDJkN2ZjLmM0NDVmMjYyMjZhNjE4N2YKICAgICA1ZWZkOTNmY2Q1MTBlNDI1CiAKLVZDTVBTU18xMjhfMHhDKHJlZykKK1ZDTVBTU18xMjhfMHhEKHJlZykKICAgYmVmb3JlCiAgICAgN2UzNzFjMzYxYmZmMTMwYi5hYzNjMmQ3NWIyMmU3MGQzLjZjMDljZjYyZjA2MmZmMTkuMzVmODI5ZTFmMmRjNzkyZQogICAgIDgwNDA4NzdlOTQwMGUyZGQuNzljNzFkYWJhYjExNGRmZC5kMTgxNjk3NmRiNDkxNzIwLjA5ZjM1ZmE5Y2E4ZjNmZmIKQEAgLTMxNjUsMTIgKzMxNjUsMTIgQEAKICAgICA5YWVmZjhlNDhjNjY0ZmYzLmY0OGZhODZlYzBlMmJhNTQuZTg1Y2ZlOTI5MGU4N2JkZC4wODJiN2RlZGIyYWQyMjE0CiAgICAgZWJmZjVkNDFmYTMxYjhiOQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMTgxNjk3NmRiNDkxNzIwLjA5ZjM1ZmE5ZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDE4MTY5NzZkYjQ5MTcyMC4wOWYzNWZhOTAwMDAwMDAwCiAgICAgODA0MDg3N2U5NDAwZTJkZC43OWM3MWRhYmFiMTE0ZGZkLmQxODE2OTc2ZGI0OTE3MjAuMDlmMzVmYTljYThmM2ZmYgogICAgIGMwNjRkMjNmZGE5ZThkNDYuOWQ0OTFjYWZmYzlmMjdjNC44NzJlMjUwYzg3NDcyYzI4LjA2YzBhNzA5YWIyNmUzOGUKICAgICA5YWVmZjhlNDhjNjY0ZmYzLmY0OGZhODZlYzBlMmJhNTQuZTg1Y2ZlOTI5MGU4N2JkZC4wODJiN2RlZGIyYWQyMjE0CiAgICAgZWJmZjVkNDFmYTMxYjhiOQotVkNNUFNTXzEyOF8weEMobWVtKQorVkNNUFNTXzEyOF8weEQobWVtKQogICBiZWZvcmUKICAgICA4YjBhYzNmMWEwYmQ2MGE4LjZhMmRmNWRiNDNlMjY1OGYuNWE2NTNiZDIxNGU5YzJkOC41MjU3ZjA3MzkxYjk0MGVjCiAgICAgYzQxNjJjZTliZjVkZDcwZS44YzZhYzY4ZjllYTAwYmM3LmFhOTc1M2M5MTNiZGZhN2QuMWY2YmY4MWIyNjQ1YjYwMQpAQCAtMzE4NCw3ICszMTg0LDcgQEAKICAgICA3MDY0ZjQ2MmRhMGIyMWVkLjM2MGZkMWRmYTkxMWY2YmEuN2QzZTAwMWQ4MzAyZWRkOS41NjBkMzY3MDdmYmVhOGViCiAgICAgNzgzMzY1ZjY3YWM0OWMxOQogCi1WQ01QU1NfMTI4XzB4QyhyZWcpCitWQ01QU1NfMTI4XzB4RChyZWcpCiAgIGJlZm9yZQogICAgIDZkYTI5OWYyNzliNjMxZmMuOWMzZTRiYmEwZDMwNmRiZi43NjExMDM1MjkzZGJiM2NkLmI3NGI4ZDUxMmM4OTFmZTgKICAgICA5MmE2Y2ZkMTE5MWVhNDQwLmQxNDk5NTBiMmE5YTc3YjcuNzg0MWY4MzI4ZjE2ZWYyYi40Y2U0OGVjOGYxMGY3MmM3CkBAIC0zMTkyLDEyICszMTkyLDEyIEBACiAgICAgZGQ5YzJkZWFhYTg2MTM5ZS5jNTI2ZWU0NDkxNmFiN2NiLjMyNWQxY2ViMmYxMWQ4N2IuZjZlYWRjMmQzZDQ3NmFhOAogICAgIGM0ZWYyMmYyZmMxMDg4MDEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzg0MWY4MzI4ZjE2ZWYyYi40Y2U0OGVjOGZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc4NDFmODMyOGYxNmVmMmIuNGNlNDhlYzgwMDAwMDAwMAogICAgIDkyYTZjZmQxMTkxZWE0NDAuZDE0OTk1MGIyYTlhNzdiNy43ODQxZjgzMjhmMTZlZjJiLjRjZTQ4ZWM4ZjEwZjcyYzcKICAgICA0NDhiMDEwMGY1OGEzMTkzLmVhNTM0YzNmNGQ1NGZiMDIuOThlYmFkZWMzYTRmZTg4MS4xN2Q1N2Y2ZWVkYTBhMmEzCiAgICAgZGQ5YzJkZWFhYTg2MTM5ZS5jNTI2ZWU0NDkxNmFiN2NiLjMyNWQxY2ViMmYxMWQ4N2IuZjZlYWRjMmQzZDQ3NmFhOAogICAgIGM0ZWYyMmYyZmMxMDg4MDEKLVZDTVBTU18xMjhfMHhDKG1lbSkKK1ZDTVBTU18xMjhfMHhEKG1lbSkKICAgYmVmb3JlCiAgICAgNWNhZmNjYTk0NzA3YjZkYS5iYTI3NGVmYWQzOWM4ODEwLjNkOGZmNzA1MTNlOTY1M2YuYTFlMjQzOWEwYWU5ZmNjNAogICAgIDljZjg1NjNmMzkzOWIwNjEuMzc3NjYxOWUwZDVhY2E5My4yZDVhZTE2ZWVkZGNjMjg5LjQzYzUxZTY3Njg2MjhmMDgKQEAgLTMyMTEsNyArMzIxMSw3IEBACiAgICAgODA1MGZhYjQ4NDdiZmMyMy44MjkzNDk0ZjIxZmNhNjdlLmU5NDU0Y2U4MjA0Zjc4NTIuOGNkOGRjMDgxYjY3ZjUzNQogICAgIGVjYTBiOGI0YTkwYzQwNzQKIAotVkNNUFNTXzEyOF8weEMocmVnKQorVkNNUFNTXzEyOF8weEQocmVnKQogICBiZWZvcmUKICAgICBlZWY3MzcyZDI5ODNlYTVmLmRjZjgwZDZjMTVhNGM1YjcuMDdmOTE3MzQzNWY5YmEzZS42ZGZlYzVkMWFmZTc0OTI4CiAgICAgZWQyOTU1ZGYzNzU2MzFhMi41MDU4ZjBiMmJkMzc0YWE4LjljNTRjNjVjYzhjYzhhYmYuZDk0ODExMTIwODIzYjg4NQpAQCAtMzIxOSwxMiArMzIxOSwxMiBAQAogICAgIDU2NGM1ZjlmNmY0NTgwZGUuZWM2ZjE2OThjM2NjN2M0Zi42NjE3YjgyNmUxMjk1NWI3LmRkYzIwZTRkODZiOTY0ODMKICAgICAyZDhhYjgxZmUzMmIxODdiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjljNTRjNjVjYzhjYzhhYmYuZDk0ODExMTJmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45YzU0YzY1Y2M4Y2M4YWJmLmQ5NDgxMTEyMDAwMDAwMDAKICAgICBlZDI5NTVkZjM3NTYzMWEyLjUwNThmMGIyYmQzNzRhYTguOWM1NGM2NWNjOGNjOGFiZi5kOTQ4MTExMjA4MjNiODg1CiAgICAgNDc4MTBmMzc3MDEzNGVlOC5iNjNiMWY3Mjk4NDE0OTIxLjlkZWY1MzM0NzgwMzU1YWUuMGJmMGFhOTg0NjEwODM5NQogICAgIDU2NGM1ZjlmNmY0NTgwZGUuZWM2ZjE2OThjM2NjN2M0Zi42NjE3YjgyNmUxMjk1NWI3LmRkYzIwZTRkODZiOTY0ODMKICAgICAyZDhhYjgxZmUzMmIxODdiCi1WQ01QU1NfMTI4XzB4QyhtZW0pCitWQ01QU1NfMTI4XzB4RChtZW0pCiAgIGJlZm9yZQogICAgIGQ1MTQyNGY4N2E3MTVhYWIuNzhkNjQzODVkMTc5MDEzMC5jY2JlNTIxMDVhZTc5ZjVlLjUzMTlmMzlmOWVjYWM3ODUKICAgICBiMjJiY2VjNjY2OTdlODNkLjA3NmJiNjUzMzEzYTBlODkuMzNmNTRlYzY3ODliNzA3OS5jMDNmZmYwYzRiNzNlN2M0CkBAIC0zMjM4LDcgKzMyMzgsNyBAQAogICAgIDdjMzRjZWVlYWZiNGQyMzguZTBlNjNhNWM1Yzk0YmIwMi4wNzRiNzY5ZGJhMDMwNzg0LjhhMjk3YjZlZTcwYjFmNDkKICAgICA5Zjg2ZTMzYzBlMTFiMGU1CiAKLVZDTVBTU18xMjhfMHhEKHJlZykKK1ZDTVBTU18xMjhfMHhFKHJlZykKICAgYmVmb3JlCiAgICAgYTQzNzBjYWQ5NTUwZGVhNC4yMGJkMWIyMDQzYzNhOGZhLmUxNjM0MzZlNjA0NWQ0N2EuMmIwMjlhOTUxNmNmNDZjZAogICAgIGY0OGFmMjJkMTk1MWU3MmYuNjkwNDk2ZjY5ZGUzYjhjZS5jMTFjY2IxOWQyYjM2OGE5LjQ2ZDA2ZjdjNmE2NDIxZDMKQEAgLTMyNTEsNyArMzI1MSw3IEBACiAgICAgZWRjOTkxMjgzNmEyMDUzNS4zM2Q1YmM1Y2Q5MWZiZmUxLmRhNWJjZmM5NGY2YmIzM2MuMzQ4MjcwM2RkMWQxNTVjMQogICAgIGVhNDFlNjBiODZjZTc0NjAuNWJmYjA3M2YxMjgzNzk1ZS44OTZkNDllYTcyZjhmMmRmLmQyZTUxOWMzNjgxZjllYzMKICAgICBmYWMzZTZmYzRhNWNiNzA3Ci1WQ01QU1NfMTI4XzB4RChtZW0pCitWQ01QU1NfMTI4XzB4RShtZW0pCiAgIGJlZm9yZQogICAgIDg5ZTk1NGQzOTQ5MzVkYjYuNDczZGVjNDBhNzYyNzI1Yy5iYjQ0ZjU4OTY0MWNhMTcyLjJhOWUzN2U4ZDdlNjYxM2QKICAgICA1YjIyZGQzNDYxZDE0Y2ZmLjVmMGI5ZjM0MzVlODM5ZDYuMzA3YTAxMjhlY2Y1ZjQ0OS4xYTM5OTQzMDFiYzIzYzAzCkBAIC0zMjY1LDcgKzMyNjUsNyBAQAogICAgIDM4MDEzNTQ1ZjY4ZmY0MDkuMzU0OWZkMGIwNjAwMTRmMy5jOWUwNjQxMTBjOTcwYWVlLjUyZTE4YjRhYWU3MTI1NzUKICAgICA1Mzg2MWVmNDM2NWRhYjdhCiAKLVZDTVBTU18xMjhfMHhEKHJlZykKK1ZDTVBTU18xMjhfMHhFKHJlZykKICAgYmVmb3JlCiAgICAgMTJjNTEwOTgwYjY2OGM5Ni5mYjNlZmNjY2Y1MjgyNTI0LmE5NTE5ZmM0ODFhOWEwZWUuYTVhOGIzMzRkZDc5NDYxNAogICAgIGViZWI1ZGExY2MxOTA2NzYuNzFjMGNlOGRlOGY3OGY4Ni40YTVhZGZlZGQ4NzVlNjE3LjA2OGUxMDViNTNjYzliYWQKQEAgLTMyNzgsNyArMzI3OCw3IEBACiAgICAgM2E0MzAxN2IxMjAwNTNjNS43NjUwMjk3NWViMDhlZTVlLjcyYjBiOGYxYThmMTIyMTkuYzg1ZGY3NzI4YTlhYzhlNQogICAgIDViMWJmOTkyN2NhOWIwMzAuZTViZDg4NmYxOTY4ZmRkNi43ZjlmMjczYzhkYTg5MGEwLmM2ZTNlNTY1OWZmMTg4ZTcKICAgICBkZWVhNTQyMGFkZGQ5NmUwCi1WQ01QU1NfMTI4XzB4RChtZW0pCitWQ01QU1NfMTI4XzB4RShtZW0pCiAgIGJlZm9yZQogICAgIGViM2ZjMjhmZDA2OGFlZmIuYWFiZDNmNTJhM2EwNTg2My45Y2QyNjg2NjhlMjI3OTFhLmNiNzIyNjNhMjIyNjZiNWEKICAgICBjOWFlYWE5ZjI2YTA4ZTY1LjgzNzdkMTI3MjU3MDg4MDkuNzY1YTQzNDg2NzQyMWU1Ny5iNDc2YjM1NzAzZjhmMGYxCkBAIC0zMjkyLDcgKzMyOTIsNyBAQAogICAgIDY3MDlkOTRlZDQ0NTkxZDUuNDM1ZWM3YzFhOWNiNzA2MC4wM2Y3ZGY3YWIzZTZkMTZiLmM4NDI2NDlmMWJjNWU2NjcKICAgICBhZGExODFhMThhZDlkMDlmCiAKLVZDTVBTU18xMjhfMHhEKHJlZykKK1ZDTVBTU18xMjhfMHhFKHJlZykKICAgYmVmb3JlCiAgICAgOWQ2MDFhNzNiNTcwNTQ2NC5lMDhlMThjNTY2Y2EyZDMyLmUyMjQyMjVkZTM2ZjlmNjkuNmRhMzk3YTI1ZjgxNTg5YQogICAgIGY1Y2QyZDdmMzkxNmFlNjMuOWE1Y2MxOGQ5OTJjN2Y4Zi43YTMwYjliZmU3MWM0Njk1LjZiZjMzYjY0ZGRiM2Y3NzIKQEAgLTMzMDUsNyArMzMwNSw3IEBACiAgICAgMTIzM2I1MzNiMTU4MTk0Ny43MDQwNTA5MTg5NzU0NDE2LjY5ZDA4NzUyNTE1ZmExOTIuZDhiMjQ4YWQ0Yzg3NmMxZQogICAgIDRlZGRhZmZhYmFjMWQyYmQuNDAwNjQxYmQ1M2IzMzhmMy4wYTRlODg4MWJlYzNlYzA5LjhmYWUzOTY3YzUwOTcxY2IKICAgICA2ZWIxOGE4MDY2NDZjMmE0Ci1WQ01QU1NfMTI4XzB4RChtZW0pCitWQ01QU1NfMTI4XzB4RShtZW0pCiAgIGJlZm9yZQogICAgIDRmODliN2UyNGI0OTFkZDYuMDYxODE1NDBlZmRkMTQ3MS5lNDdhMTFmZDEzZjIxNzUzLmI5ZjhiOWJhYzlkNDYyYTkKICAgICAxMDAwM2M3YjhmMWUzYzhjLjk2MzBlNTcxZWQzOTFkMGUuM2E2NzNiM2RlMzNkOWM2Mi5kMTE4MTQ2ODBmMWU0MDFjCkBAIC0zMzE5LDcgKzMzMTksNyBAQAogICAgIDllZmQ0MGZlYTY3MGI4MzcuYWUyNmIwNDRiMmRlNmZiNS42OGUwOGQ2ZDJhMjc4YjNiLmIwZWMzZGQzYmE4ZjIzMmMKICAgICAyZjM5MDM2OTU4Y2VhMDIyCiAKLVZDTVBTU18xMjhfMHhFKHJlZykKK1ZDTVBTU18xMjhfMHgxMChyZWcpCiAgIGJlZm9yZQogICAgIDg4MmNlMzIzYTA3Njc1OWIuMjMxY2I2YzFiMDA1OGU4My5lZTlkYTRiZWIxNDAzMDE3LmY4MDNhZTM2ZDdkZjZjNWQKICAgICAxNjEzZGI2ZTJlMTNkZTQ0LmY4MGE3NDZhOGE5YzE4MDQuNzYyMGYwZDRlODExYTcxMy5hYWQwMThhZTA2ZDNlNGRmCkBAIC0zMzI3LDEyICszMzI3LDEyIEBACiAgICAgNDVlODAwNjk4ZTVlNWFkNS5mZDg3YmExZjFkMDAzYTU0LmNlN2Q4NTgwNzAzMWE3ODcuZTA5OGJjNjA1OGEwODlhYwogICAgIDFjMmFlZTcwYjM5MjJkNTEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzYyMGYwZDRlODExYTcxMy5hYWQwMThhZWZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc2MjBmMGQ0ZTgxMWE3MTMuYWFkMDE4YWUwMDAwMDAwMAogICAgIDE2MTNkYjZlMmUxM2RlNDQuZjgwYTc0NmE4YTljMTgwNC43NjIwZjBkNGU4MTFhNzEzLmFhZDAxOGFlMDZkM2U0ZGYKICAgICAzNzM4ZTZiNzllMzIxNmM5LmY3OTVmN2U1NTA0MTEyZTYuYTJmYzkyZjBmNGRlMTA1NC41ODEzNDljM2QyMTBhZmVhCiAgICAgNDVlODAwNjk4ZTVlNWFkNS5mZDg3YmExZjFkMDAzYTU0LmNlN2Q4NTgwNzAzMWE3ODcuZTA5OGJjNjA1OGEwODlhYwogICAgIDFjMmFlZTcwYjM5MjJkNTEKLVZDTVBTU18xMjhfMHhFKG1lbSkKK1ZDTVBTU18xMjhfMHgxMChtZW0pCiAgIGJlZm9yZQogICAgIGU5OTc1OWUxZmZlZjU4MDUuOWQ2ZTI1ZWY5NzIzZTYxNC5lN2FkMzkwMjBkZTY0YTdhLjU2ZWZjNmVmZjk5OWE3NTcKICAgICAyM2E5N2I5ZTU5YzVjNmYzLjljMTg1MmI3NTcwZWY1MzQuOGZkMmYwN2IzZGZlZmY4Ni45NjllNGZhODJiOWY0ZDcxCkBAIC0zMzQyLDExICszMzQyLDExIEBACiAgIGFmdGVyCiAgICAgZTk5NzU5ZTFmZmVmNTgwNS45ZDZlMjVlZjk3MjNlNjE0LmU3YWQzOTAyMGRlNjRhN2EuNTZlZmM2ZWZmOTk5YTc1NwogICAgIDIzYTk3YjllNTljNWM2ZjMuOWMxODUyYjc1NzBlZjUzNC44ZmQyZjA3YjNkZmVmZjg2Ljk2OWU0ZmE4MmI5ZjRkNzEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGZkMmYwN2IzZGZlZmY4Ni45NjllNGZhOGZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhmZDJmMDdiM2RmZWZmODYuOTY5ZTRmYTgwMDAwMDAwMAogICAgIDRmZWZkMWFjYTYwYTVhMmYuZmEwNGIxYmE2YjgzOGZjMS44YzRlZjdlMGNiZjY0N2ZhLmFlZTIyZWFkZjdiYTdiMzIKICAgICAzZTBmN2JkMGNhZTY3YTMxCiAKLVZDTVBTU18xMjhfMHhFKHJlZykKK1ZDTVBTU18xMjhfMHgxMChyZWcpCiAgIGJlZm9yZQogICAgIGY1YTkwMWVlYjVlMjBmMjkuZjhiYmZlZDZkMTkwZjdkNC4xM2RlZGJjZGY3MjY5Mjg3Ljk5M2IzZmE0NjFlZDUyYmIKICAgICAzMWZjYmQ3NDU1Mzk3NWM3LjdlNWNkMWZiNzljMGM4NjUuNDEwYmZkZDFhODFlMDhkZC5kNjU4YWZhZWE3NDZmMjExCkBAIC0zMzU0LDEyICszMzU0LDEyIEBACiAgICAgYTVmZGM0NjMyMjJhYThhNC45MTUxNTllYWIxNDdmMmY1LjRmOGUxNTVkZjAzZTQwZTcuNGI1MmY4NDRiMTUwZGYyYQogICAgIDNjYzdjOGE4YWQxOWE1NDUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDEwYmZkZDFhODFlMDhkZC5kNjU4YWZhZWZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxMGJmZGQxYTgxZTA4ZGQuZDY1OGFmYWUwMDAwMDAwMAogICAgIDMxZmNiZDc0NTUzOTc1YzcuN2U1Y2QxZmI3OWMwYzg2NS40MTBiZmRkMWE4MWUwOGRkLmQ2NThhZmFlYTc0NmYyMTEKICAgICA0ZDU0YWFjYzQ1NzhlYWI3LmJkYTBjNTA4YmFhMzg3MGMuZTFkNzEyMzMxZGY3MmU2ZS4xZDcxYzNlYWI4MGVlMjI3CiAgICAgYTVmZGM0NjMyMjJhYThhNC45MTUxNTllYWIxNDdmMmY1LjRmOGUxNTVkZjAzZTQwZTcuNGI1MmY4NDRiMTUwZGYyYQogICAgIDNjYzdjOGE4YWQxOWE1NDUKLVZDTVBTU18xMjhfMHhFKG1lbSkKK1ZDTVBTU18xMjhfMHgxMChtZW0pCiAgIGJlZm9yZQogICAgIGNjOWJiMTAyYzk3NGYwYTUuOTQ0MjA3YTY4N2RiZWMzYS5kNjNjMDY4Yjc5YjdjMjRlLmU4N2IwNWJjYmQ3ZTc5ZjMKICAgICBkNzljMmUzZTIwNmQ3Yjc2Ljc4NzE3MGZmMTAxOGYxMjcuNjgyZDRhZDkyZjAwYjY0MC4wNmVjZGJiZDIxNDMxNzNmCkBAIC0zMzY5LDExICszMzY5LDExIEBACiAgIGFmdGVyCiAgICAgY2M5YmIxMDJjOTc0ZjBhNS45NDQyMDdhNjg3ZGJlYzNhLmQ2M2MwNjhiNzliN2MyNGUuZTg3YjA1YmNiZDdlNzlmMwogICAgIGQ3OWMyZTNlMjA2ZDdiNzYuNzg3MTcwZmYxMDE4ZjEyNy42ODJkNGFkOTJmMDBiNjQwLjA2ZWNkYmJkMjE0MzE3M2YKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjgyZDRhZDkyZjAwYjY0MC4wNmVjZGJiZGZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY4MmQ0YWQ5MmYwMGI2NDAuMDZlY2RiYmQwMDAwMDAwMAogICAgIGNlNTBkNTBkZjA2YjQ0MTkuOGJiOGEwYTgwMTYzMzJiMC5lMzUxODMyOWQzNGFmNWE2LjQ0ODUyZDUxMWM4ZTZjNDYKICAgICAxYzQ2YTFiZGViMmI5ZDU5CiAKLVZDTVBTU18xMjhfMHhFKHJlZykKK1ZDTVBTU18xMjhfMHgxMChyZWcpCiAgIGJlZm9yZQogICAgIGVhYmFlZDdhYzE3ZTIxNWIuNzI5Y2Y3NzhhMjg3ZmE0My43MjY5NjBjZmEwODllNGE1Ljg0MWI3MTAzZjk2NGI5NzAKICAgICAwYTJjMGJmNDM5MTIzNGY5LjAxNDQ5ZDc0ZmY3MmUwOGUuYmUzMjM2YmRkMzZiNDlhMC5lMjFjZTYzOTdkODY4Zjg2CkBAIC0zMzgxLDEyICszMzgxLDEyIEBACiAgICAgYjAzZWIyY2Y4MTJmZmJiOC40ZmQ3NjZkNDJiZTIyZjM2LmYxNDAxMDllNjg5MTE3NTYuNDVlZTUxNjkwZDEzNjQ0MAogICAgIDAxNTg0MTNjNTE5NmRhM2QKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmUzMjM2YmRkMzZiNDlhMC5lMjFjZTYzOWZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJlMzIzNmJkZDM2YjQ5YTAuZTIxY2U2MzkwMDAwMDAwMAogICAgIDBhMmMwYmY0MzkxMjM0ZjkuMDE0NDlkNzRmZjcyZTA4ZS5iZTMyMzZiZGQzNmI0OWEwLmUyMWNlNjM5N2Q4NjhmODYKICAgICBkOGVhZjk5N2YwNzQxNGRmLjU2MTM0M2VmMjMzN2IzMjUuYzk2MTFjZGUzNzk1OWI0Yy5kOTFlNWRiNzdhYmMzNDExCiAgICAgYjAzZWIyY2Y4MTJmZmJiOC40ZmQ3NjZkNDJiZTIyZjM2LmYxNDAxMDllNjg5MTE3NTYuNDVlZTUxNjkwZDEzNjQ0MAogICAgIDAxNTg0MTNjNTE5NmRhM2QKLVZDTVBTU18xMjhfMHhFKG1lbSkKK1ZDTVBTU18xMjhfMHgxMChtZW0pCiAgIGJlZm9yZQogICAgIGViMjhhNjFhNjM1MTU0MzQuZWU3NTMyMDk4OWNmMjYzMS5jNzVhODEwZjMzODAwZmVhLjkwMWMwZDY5MDBlZGY4NmEKICAgICBkZTI5ZmRmMTVlNTE4YzUyLmVlZGI3NWFmYTNlMGQxZjUuOWE2OTEwOGM1NTFjMTA3MC4wNDQyMGZhYzllMzQ3YzMzCkBAIC0zNTYyLDcgKzM1NjIsNyBAQAogICAgIGY0MWZhNzhlZGEwYzhkNmYuNWI1NmI5ZDgzYTU2ZTdjZi42ZjQ1ZGY0NThiZWI4MzMwLmY5YTJjNjAzMjBjNTdhOGIKICAgICBjZjAwYWVlMTlhY2QyNjVmCiAKLVZDTVBTU18xMjhfMHgxNihyZWcpCitWQ01QU1NfMTI4XzB4MTMocmVnKQogICBiZWZvcmUKICAgICAzZGZjYmY2OTlkZDQ1OGRiLmY3MDA2M2I2ODExMzhiZWQuZjE3YWY2ZmQyNTZjOGY0MS45ZTMwM2VhZmU2YzlmN2YxCiAgICAgOWVlMGY2MDljNTY2NGNhZS40N2U3YjQ4OTE0ZjFhZDA2LjBkMjAxYWM0YTcwNzlhZjMuNmM3YWI1MGY1ZjNhZjBmNwpAQCAtMzU3MCwxMiArMzU3MCwxMiBAQAogICAgIGFlOTNjMzNlZjI1ZTY4MDMuM2VmNzBhZTU3NTY4NDhiNy40ODI1MDllNGRlZmVjY2M2LjU1NWZkYjYyMjEwMzVmODEKICAgICAyODkxODMyY2ExNzM0ZTVkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBkMjAxYWM0YTcwNzlhZjMuNmM3YWI1MGZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZDIwMWFjNGE3MDc5YWYzLjZjN2FiNTBmMDAwMDAwMDAKICAgICA5ZWUwZjYwOWM1NjY0Y2FlLjQ3ZTdiNDg5MTRmMWFkMDYuMGQyMDFhYzRhNzA3OWFmMy42YzdhYjUwZjVmM2FmMGY3CiAgICAgNTBmOTRlMmNhZDEwM2Q4Mi5jMGEwMThmNWIyYjRhZGU1LjBiOTUyMjk3NWJiNDQ1OTEuYjVmMWMwNTExNDRhMjk2ZQogICAgIGFlOTNjMzNlZjI1ZTY4MDMuM2VmNzBhZTU3NTY4NDhiNy40ODI1MDllNGRlZmVjY2M2LjU1NWZkYjYyMjEwMzVmODEKICAgICAyODkxODMyY2ExNzM0ZTVkCi1WQ01QU1NfMTI4XzB4MTYobWVtKQorVkNNUFNTXzEyOF8weDEzKG1lbSkKICAgYmVmb3JlCiAgICAgMGE1MzMzOWRiMGE1YjIyZC4xM2ZhNTFhYTJmZGEwOWRlLjlkYjcwNjQ1NzkxNzNhYTguMWUxY2NiMTZjYjcxNmEzZgogICAgIGQ3NzE2NzlmNmJhNjQ2MWUuZGQ3YWY0ZGUwMDEyNWJiZi5iOWFlODkwMWRiY2YzZWUzLmVhYzY2NDk5YmY5YTVjYTcKQEAgLTM1ODUsMTEgKzM1ODUsMTEgQEAKICAgYWZ0ZXIKICAgICAwYTUzMzM5ZGIwYTViMjJkLjEzZmE1MWFhMmZkYTA5ZGUuOWRiNzA2NDU3OTE3M2FhOC4xZTFjY2IxNmNiNzE2YTNmCiAgICAgZDc3MTY3OWY2YmE2NDYxZS5kZDdhZjRkZTAwMTI1YmJmLmI5YWU4OTAxZGJjZjNlZTMuZWFjNjY0OTliZjlhNWNhNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iOWFlODkwMWRiY2YzZWUzLmVhYzY2NDk5ZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjlhZTg5MDFkYmNmM2VlMy5lYWM2NjQ5OTAwMDAwMDAwCiAgICAgYTFmMDRjMGI1NDQyZjExMi4wYmY0NmE0Y2QwZTQwNTQxLjk4NmMxMDNlMjY4ODZmZTkuZDQ2MjBjNDIyYTNjMmJmNwogICAgIGE5ZWQxMzQwZDljYzgxMzYKIAotVkNNUFNTXzEyOF8weDE2KHJlZykKK1ZDTVBTU18xMjhfMHgxMyhyZWcpCiAgIGJlZm9yZQogICAgIGU1NWFlMTNmZmY0MjFhMTUuNTdlOWY0NGNiOWY2N2Y2ZC4yOTg2MzU1ZDA3OTZkNTNhLjEzY2MwZDk2NDlhMTEzMGMKICAgICBlM2Y2NzJhYzM3MmEzMjNmLjY4NmUxMWNmM2FhODJlOTguMWE2MTA2ZTU0MzMzNDZlYS5iYTkyODFmYTM4ZjJiYjJhCkBAIC0zNTk3LDEyICszNTk3LDEyIEBACiAgICAgOTVlYWNmN2M0ZTdkZDMyNi4wYTRjOTg0YmZlMzdkZTExLmU5MjJhNjBiMzc2MGZlMTguMDE3ZmJhOThmMDZlMDEwNAogICAgIDU3M2U3OGE4ZjBiMTE5MWEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWE2MTA2ZTU0MzMzNDZlYS5iYTkyODFmYWZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFhNjEwNmU1NDMzMzQ2ZWEuYmE5MjgxZmEwMDAwMDAwMAogICAgIGUzZjY3MmFjMzcyYTMyM2YuNjg2ZTExY2YzYWE4MmU5OC4xYTYxMDZlNTQzMzM0NmVhLmJhOTI4MWZhMzhmMmJiMmEKICAgICBmZjBkYzNmMTFkMGYwNzYxLmFmNGIxZTgwZjI2NGJhYzAuM2NkMWQ3NTExZTQ4OTVmYS42Yjg5ZTY1NzExODgyMTZlCiAgICAgOTVlYWNmN2M0ZTdkZDMyNi4wYTRjOTg0YmZlMzdkZTExLmU5MjJhNjBiMzc2MGZlMTguMDE3ZmJhOThmMDZlMDEwNAogICAgIDU3M2U3OGE4ZjBiMTE5MWEKLVZDTVBTU18xMjhfMHgxNihtZW0pCitWQ01QU1NfMTI4XzB4MTMobWVtKQogICBiZWZvcmUKICAgICA0YjkzOWM3NTJkNWIyM2RhLjAxZGI5MmI4NjYwMGQzM2MuNTQzZGY5MWM3OTJjNThiNi43ZTlmNmU4MTI4MDdiY2YwCiAgICAgYjg0YWEyZWFjNDdhZGM3MC45ZTJhMDgxMDAwMjU0MjRjLjY4ZTliZmUwODA1MGUyZGIuNTc5NjJiMWU4ZGNhMGQyZQpAQCAtMzYxNiw3ICszNjE2LDcgQEAKICAgICA2YzBkNDY3YzZlNDY0YWQxLmUwMTVmZWM5MmI4MzYwMTEuNjNhNjY3ZWRhMDUxMTg1OS40NjFkNzU3YzI1ZDE1Mjg5CiAgICAgMTM0NmY5MTY4ZjJlYmYwMAogCi1WQ01QU1NfMTI4XzB4MTYocmVnKQorVkNNUFNTXzEyOF8weDEzKHJlZykKICAgYmVmb3JlCiAgICAgOTQxODYzODdkZWQ2YWU4Yi42YmIyZGI3MWJhMGE3N2YzLjNiNDk3NjAxZjRkNDg3MWMuMDA0ZTQyMGVmMTQ4M2MwOAogICAgIDI1ZGZhZjNjYWU1NjViZDkuNTRlODQyYmZjZjcyNDI5Yy4zOTBjOTEwNmIwZjYwZGQzLmQ5ZTI3MWQyM2Q5ZDYxZTgKQEAgLTM2MjQsMTIgKzM2MjQsMTIgQEAKICAgICBlNzdiZDkxZDNlMGFkZTY4LjRmM2E3NzEyYzU2MGE2MzIuOGE2ZWExMjg2ZmRmMjlmNC5hYWZkYmJmMDM5OTE5ZGVhCiAgICAgNWMxZGNlMjIyMDQ5MmM2NAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zOTBjOTEwNmIwZjYwZGQzLmQ5ZTI3MWQyZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzkwYzkxMDZiMGY2MGRkMy5kOWUyNzFkMjAwMDAwMDAwCiAgICAgMjVkZmFmM2NhZTU2NWJkOS41NGU4NDJiZmNmNzI0MjljLjM5MGM5MTA2YjBmNjBkZDMuZDllMjcxZDIzZDlkNjFlOAogICAgIDIyZTZkNzlmOWEzODAyOTQuMDE3Y2Y4NTBjOThiNjlmOC4zNGFhNGI0NWZiNzYzMGUyLmM4MmU2ZjI0YTE1YzQyMjUKICAgICBlNzdiZDkxZDNlMGFkZTY4LjRmM2E3NzEyYzU2MGE2MzIuOGE2ZWExMjg2ZmRmMjlmNC5hYWZkYmJmMDM5OTE5ZGVhCiAgICAgNWMxZGNlMjIyMDQ5MmM2NAotVkNNUFNTXzEyOF8weDE2KG1lbSkKK1ZDTVBTU18xMjhfMHgxMyhtZW0pCiAgIGJlZm9yZQogICAgIGI4NTgyNWE2NzI4ZmFiYmUuZDBlOGIwMjMzNzU4MmMwMy4xYmVlM2RlZmRlZmRiNjc2Ljk2YTU4ZTFjYWJiZDM3YjYKICAgICA5YjdiM2Q2ODRjNzBkODI1LjM5N2E1ODFiMjFhZDI4MGUuM2Y2NGM1ZDUzMTZmNTRmMi5iMzliMGU4ZTQ4OWQ5NGQzCkBAIC0zNjM5LDExICszNjM5LDExIEBACiAgIGFmdGVyCiAgICAgYjg1ODI1YTY3MjhmYWJiZS5kMGU4YjAyMzM3NTgyYzAzLjFiZWUzZGVmZGVmZGI2NzYuOTZhNThlMWNhYmJkMzdiNgogICAgIDliN2IzZDY4NGM3MGQ4MjUuMzk3YTU4MWIyMWFkMjgwZS4zZjY0YzVkNTMxNmY1NGYyLmIzOWIwZThlNDg5ZDk0ZDMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2Y2NGM1ZDUzMTZmNTRmMi5iMzliMGU4ZWZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNmNjRjNWQ1MzE2ZjU0ZjIuYjM5YjBlOGUwMDAwMDAwMAogICAgIDY3YTk5ZDU3MDczMDI3YzkuZmIzYzBiOTYzNTljMTgyYi4wM2M1MGM2OGYyMDAyZTNjLjk0ZjRiNzk4MWI5MDJlZDEKICAgICAwZmVmZDkwOTg4YmJlMjBhCiAKLVZDTVBTU18xMjhfMHgxRShyZWcpCitWQ01QU1NfMTI4XzB4MTQocmVnKQogICBiZWZvcmUKICAgICAwZGQ4N2VhN2M4MThkNzRkLjA3NGNkZTVjMWYyN2MyNWUuMGMwNTBmZjA5ODRmODU5My41YTQ4YzNlZTk5MzdlMDYzCiAgICAgZThmZGEyZGU3NjMzNDY0OS45ZTA2Y2U0ZTJmZTlmOWIwLjBkMjJkNGVkNWIzOThmMWQuN2FiZDJjMmNlYTcyMTI3MQpAQCAtMzY1MSwxMiArMzY1MSwxMiBAQAogICAgIGE4MjY1OGM3OGRjZjg5MTcuMjJmM2IwYWVhNWZjMmUzOC40ZThjOTI4MDczZTM2ZTQ2Ljg2YWQwNTgxZjgyNWUxZjAKICAgICAyOWJmNmQ2ZmVkYjZmN2I5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBkMjJkNGVkNWIzOThmMWQuN2FiZDJjMmMwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZDIyZDRlZDViMzk4ZjFkLjdhYmQyYzJjZmZmZmZmZmYKICAgICBlOGZkYTJkZTc2MzM0NjQ5LjllMDZjZTRlMmZlOWY5YjAuMGQyMmQ0ZWQ1YjM5OGYxZC43YWJkMmMyY2VhNzIxMjcxCiAgICAgZmRhODQxMWEyZTk2NmVhOC4wOWE1ZWIxYjUyODE4OWVhLjVhZTE1NmY5MWJlNzc0NzUuM2ZmMGM0MGYwMGJlN2U5MQogICAgIGE4MjY1OGM3OGRjZjg5MTcuMjJmM2IwYWVhNWZjMmUzOC40ZThjOTI4MDczZTM2ZTQ2Ljg2YWQwNTgxZjgyNWUxZjAKICAgICAyOWJmNmQ2ZmVkYjZmN2I5Ci1WQ01QU1NfMTI4XzB4MUUobWVtKQorVkNNUFNTXzEyOF8weDE0KG1lbSkKICAgYmVmb3JlCiAgICAgMDVmNDc3YzZmYjdhN2IxOS40NmMzZTE1MjJmNmFkNDQxLmM2YmQ5YWYzNDM2NWEzYzcuNDc3MDgyZWUwMGJjYjkzZAogICAgIGY2MTY5ZjcwM2Y3ZjJhM2MuMzFjYWRhMjVhZmYxOGJkMy5kMWNmMjNkNjQ5YzhhNWMzLmEwZDkyNGFmNWRmYjkzMDYKQEAgLTM2NzAsNyArMzY3MCw3IEBACiAgICAgODc1NDNhNzFkNzdhZjg3OS42MTRhMGE1N2JhZjkyY2RkLjhjZmEwNzI2ZmFhZDQwYjEuZTE2OTZjZGJmOWUwZGZiYwogICAgIDgyMjgwOTFlNzA5ZWM5MDEKIAotVkNNUFNTXzEyOF8weDFFKHJlZykKK1ZDTVBTU18xMjhfMHgxNChyZWcpCiAgIGJlZm9yZQogICAgIGYyOWM0ODY0MjdmMzMxYzguZGYwOGE0YTA2Mzg4OTBlYi41ZTViMzg4ZTdkOTE4ZWFlLmY0YWI1OTZiZGU0ODUwZmEKICAgICA4ZjExMjQxOGJhNmI1M2JkLmJjZGExZGQzOTUwNjQxZDAuMTkwNmM2YmQ4ZjQ2NGI5Ni4zM2Q1M2JmZTlhMGNkZDYwCkBAIC0zNjc4LDEyICszNjc4LDEyIEBACiAgICAgYmMyZWEzN2ZlN2Y2YjVkZS43NTA3MmFmNTU5ODRlNWEyLjM5NWNmMGI4MGUzOGNhNWQuYTZiZmExYmYwNzQ1NWUzMwogICAgIDkyMTcxY2M1ZjFkMGM5ZjYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTkwNmM2YmQ4ZjQ2NGI5Ni4zM2Q1M2JmZTAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE5MDZjNmJkOGY0NjRiOTYuMzNkNTNiZmVmZmZmZmZmZgogICAgIDhmMTEyNDE4YmE2YjUzYmQuYmNkYTFkZDM5NTA2NDFkMC4xOTA2YzZiZDhmNDY0Yjk2LjMzZDUzYmZlOWEwY2RkNjAKICAgICBiM2QzOTlhOGM2OTM2YjhiLmZhOTUyMWY2ODkwMWNhNTQuZWU5OGFmNTI4YmE0YTE0Mi4yNTQyMmFjYzQ5MDdhMzBmCiAgICAgYmMyZWEzN2ZlN2Y2YjVkZS43NTA3MmFmNTU5ODRlNWEyLjM5NWNmMGI4MGUzOGNhNWQuYTZiZmExYmYwNzQ1NWUzMwogICAgIDkyMTcxY2M1ZjFkMGM5ZjYKLVZDTVBTU18xMjhfMHgxRShtZW0pCitWQ01QU1NfMTI4XzB4MTQobWVtKQogICBiZWZvcmUKICAgICBjNTE4MTdjOTIzYjZhMTg3LjA0NmQzZjA5YjcyMDZjNjQuMDhmYWI2YmMyMzliNTBlNi41NmEwODM1YmIzOGQwMzk0CiAgICAgMWE4YzBmYjdiODAyYTIxMC5lOWRlNjhiMmQ1OWRjZGM2LjkxM2I0MDM4MDM1M2M0NGUuYTFhZjY2YTcxNzJmODc5MwpAQCAtMzY5Nyw3ICszNjk3LDcgQEAKICAgICA5ZjAxZTIwMDdjZmUwZGJjLmY2ODE1MTEyNjVjMzdiZDUuZjJkNzNlZmE3M2QzYmUzNC4zMTVjMDllYjhhOGM2Mzk2CiAgICAgMmU5M2MxYmFkMTVmMzNmNAogCi1WQ01QU1NfMTI4XzB4MUUocmVnKQorVkNNUFNTXzEyOF8weDE0KHJlZykKICAgYmVmb3JlCiAgICAgYzljNWI5ZTM0NmFmM2VjOS44Njk5YjYzNWUzYzZmMDM3LmQ2NGMwOWExMTA4MjQxZDkuODJjOWFhMWEzYmI0YmIwYgogICAgIDVlM2VlYmQwODYwOGMxYzEuZmZkNTc3MDMxZTIzZWI1Yi5jMjc4M2ZmZTc3YzVhMTZhLjc2M2EwNTllODg2NWIzYjUKQEAgLTM3MDUsMTIgKzM3MDUsMTIgQEAKICAgICBlNTMzZjNhYmQ2MDYxZmNkLjFiNjhhYzFkN2VkMjFkNGMuMmYyMjEyZDZlYjA1MWVlNS5mZmM0NzU4MTI0Njg4MjMwCiAgICAgNGE3NjgzYjlhYWQyZDI1YQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMjc4M2ZmZTc3YzVhMTZhLjc2M2EwNTllMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzI3ODNmZmU3N2M1YTE2YS43NjNhMDU5ZWZmZmZmZmZmCiAgICAgNWUzZWViZDA4NjA4YzFjMS5mZmQ1NzcwMzFlMjNlYjViLmMyNzgzZmZlNzdjNWExNmEuNzYzYTA1OWU4ODY1YjNiNQogICAgIDQ4NDk1NWVmMmRmNmY4ODkuZTg4MDlmNTc0ODIzYmM1My4xNjUwZWU5NzM3MThkNzM1LmFjZjRjYTcxNzdmMjYxNWQKICAgICBlNTMzZjNhYmQ2MDYxZmNkLjFiNjhhYzFkN2VkMjFkNGMuMmYyMjEyZDZlYjA1MWVlNS5mZmM0NzU4MTI0Njg4MjMwCiAgICAgNGE3NjgzYjlhYWQyZDI1YQotVkNNUFNTXzEyOF8weDFFKG1lbSkKK1ZDTVBTU18xMjhfMHgxNChtZW0pCiAgIGJlZm9yZQogICAgIDZiZDY2ZTA1MjUzYzBkMDYuOTA0OWJmNzAxZGMzNzEzOS43NjU3MTk0MmRiM2FjYTcxLjY3MzhhNzI5MzAxYWIzMjcKICAgICAzY2FmYjQ1MWIyYjNlZTYxLmE0ZDViN2FhOWZiYTJiNzcuZDQxYjYyYjA3YzZhODFlZi4xYmRmYWFmYmExZTNkMWE3CkBAIC0zNzIwLDExICszNzIwLDExIEBACiAgIGFmdGVyCiAgICAgNmJkNjZlMDUyNTNjMGQwNi45MDQ5YmY3MDFkYzM3MTM5Ljc2NTcxOTQyZGIzYWNhNzEuNjczOGE3MjkzMDFhYjMyNwogICAgIDNjYWZiNDUxYjJiM2VlNjEuYTRkNWI3YWE5ZmJhMmI3Ny5kNDFiNjJiMDdjNmE4MWVmLjFiZGZhYWZiYTFlM2QxYTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDQxYjYyYjA3YzZhODFlZi4xYmRmYWFmYjAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ0MWI2MmIwN2M2YTgxZWYuMWJkZmFhZmJmZmZmZmZmZgogICAgIDYyMDAzZjlhNzBmNjk1ZDIuN2M4MTE4MmRjMjgzYzYyMC4wODRkNzkxY2Y3NGJmOGE0LjY3MTBlN2NjNzliZTljMGYKICAgICBiNzMxMTlhMzE3ZThjMDRmCiAKLVZNT1ZERFVQX1hNTW9yTUVNNjRfdG9fWE1NKHJlZykKK1ZDTVBTU18xMjhfMHgxNShyZWcpCiAgIGJlZm9yZQogICAgIGY0MTRhOGFhNTJmNjVkN2QuNmYwZjdiNmVkYWRhZDI0MC5mNjNhNzk0ZTliNmUxZmUyLjk2NTMzZmYxMGIxNTMwMzQKICAgICA3ODAzOTE0YmM2NzNiMDQ1LjljYzgwMmYzYzRmYWE2MGQuNGI5OWY2OTQxZmMyZDAyNy45NzVlZDFjMGQxZDU2MmNjCkBAIC0zNzMyLDEyICszNzMyLDEyIEBACiAgICAgYzgzOTVlMGZjNmViNjg1MS5jYTY4ZGViYzhlMWYwMzczLmYyN2QzMDQwOTZkNTI5ZWMuNjNhZjRhZmNlODY5OWVjNwogICAgIGU2OGQyOTQxNzE1NTIyODEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTc1ZWQxYzBkMWQ1NjJjYy45NzVlZDFjMGQxZDU2MmNjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRiOTlmNjk0MWZjMmQwMjcuOTc1ZWQxYzAwMDAwMDAwMAogICAgIDc4MDM5MTRiYzY3M2IwNDUuOWNjODAyZjNjNGZhYTYwZC40Yjk5ZjY5NDFmYzJkMDI3Ljk3NWVkMWMwZDFkNTYyY2MKICAgICBhMDRjY2ZmNDBlZWJmNTUyLmM2Zjc0ZjEzNGQ2MmNkNjUuZDVlYzg5NmNlOTBiMTU5Yy5lODM4YWM3NTY3OTg0ODk5CiAgICAgYzgzOTVlMGZjNmViNjg1MS5jYTY4ZGViYzhlMWYwMzczLmYyN2QzMDQwOTZkNTI5ZWMuNjNhZjRhZmNlODY5OWVjNwogICAgIGU2OGQyOTQxNzE1NTIyODEKLVZNT1ZERFVQX1hNTW9yTUVNNjRfdG9fWE1NKG1lbSkKK1ZDTVBTU18xMjhfMHgxNShtZW0pCiAgIGJlZm9yZQogICAgIDRiOWZjNDMwMWU2NzhlZjMuNGIxNjNhMGE4YmZlNDRlZC44MmU3MmJkOWE1M2MwMzY0LmZjOTllNzdlYzFhZDQ5YzUKICAgICA2ZmIxOTdiNjBhYWI5ZjRiLjg3MzE2MDUwZjhiMWM2ZDMuY2IzZmIzNTZhZWM2OGE2NC41MThiYTg5MTA3MWZiMWQwCkBAIC0zNzQ3LDExICszNzQ3LDExIEBACiAgIGFmdGVyCiAgICAgNGI5ZmM0MzAxZTY3OGVmMy40YjE2M2EwYThiZmU0NGVkLjgyZTcyYmQ5YTUzYzAzNjQuZmM5OWU3N2VjMWFkNDljNQogICAgIDZmYjE5N2I2MGFhYjlmNGIuODczMTYwNTBmOGIxYzZkMy5jYjNmYjM1NmFlYzY4YTY0LjUxOGJhODkxMDcxZmIxZDAKLSAgICAyZThlMWZiZDUxMmQxMWIyLmQ3ZDVjYTRjYWE4ZTJhYWYuODIzZGYxMWVjNGM3NTQ5ZS40YmExNzFlNDAzYjU5Y2JiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZjOTllNzdlYzFhZDQ5YzUuZmM5OWU3N2VjMWFkNDljNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYjNmYjM1NmFlYzY4YTY0LjUxOGJhODkxZmZmZmZmZmYKKyAgICA2NTA0ZDYzMzEwZmE5ZjU3Ljk3NGQ3NjZjM2QyNGFjMmMuODFhZDYxMjAwNDRlMWMzZS40NzI2M2NlNTUyZmQ0NzMyCiAgICAgYTI2NTA3ZmY4ZjgzZWVlMQogCi1WTU9WRERVUF9YTU1vck1FTTY0X3RvX1hNTShyZWcpCitWQ01QU1NfMTI4XzB4MTUocmVnKQogICBiZWZvcmUKICAgICBiNmFiY2U5ZTU2ZDFjZDczLmVlZGQzYTAzNjIxZDA2NjQuMjNlNjVmMWI0YmZjODdmNy5hNTViN2Y0NTg5NjRhMDcxCiAgICAgZTA0NDhiMmY0NDc1MWY5NC5hNmU2YzYxODY0YTMwMjA1LmQ3ZWQ4MmM2NzNhNGY4YmIuY2ExM2M3N2E2ZjE3OTk2MwpAQCAtMzc1OSwxMiArMzc1OSwxMiBAQAogICAgIGU3OWZkY2QyMDRlZDBmMzcuMTNiODQ3YzZlNjA1YTdiNi4yNjZmNjJiYjdiOTI4YmUwLjg3ZDBjN2M1ZDE4MmUxMzMKICAgICBkNzZkNzZiMjg0NTJhNzY4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNhMTNjNzdhNmYxNzk5NjMuY2ExM2M3N2E2ZjE3OTk2MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kN2VkODJjNjczYTRmOGJiLmNhMTNjNzdhZmZmZmZmZmYKICAgICBlMDQ0OGIyZjQ0NzUxZjk0LmE2ZTZjNjE4NjRhMzAyMDUuZDdlZDgyYzY3M2E0ZjhiYi5jYTEzYzc3YTZmMTc5OTYzCiAgICAgN2M3YzNjMWNmNWZiMjFmMi42OWViZjY2MDMxOTc0ZTY4LjBlYWJkOWQ3NGVhNzNhMjUuY2NhMWI2YWJkMzcyYzY0MAogICAgIGU3OWZkY2QyMDRlZDBmMzcuMTNiODQ3YzZlNjA1YTdiNi4yNjZmNjJiYjdiOTI4YmUwLjg3ZDBjN2M1ZDE4MmUxMzMKICAgICBkNzZkNzZiMjg0NTJhNzY4Ci1WTU9WRERVUF9YTU1vck1FTTY0X3RvX1hNTShtZW0pCitWQ01QU1NfMTI4XzB4MTUobWVtKQogICBiZWZvcmUKICAgICA5ODQ0M2Y2MDA4ZWVkNDBkLjdiZjg2N2JlMGRkOTI0MGYuODAxOTM0MzY5ZWZhYzkxZS43YTg0MThkZjkzZWYyNTlhCiAgICAgYTYyMTlmYjk3YTYzMjQ0Yi45NWQ1ZDk0YWFkNGI5ZTI3LjhjZDkzOTljNzU4MTcwY2EuNjUzNWY4YWQzNDRkNDVmYwpAQCAtMzc3NCwxMSArMzc3NCwxMSBAQAogICBhZnRlcgogICAgIDk4NDQzZjYwMDhlZWQ0MGQuN2JmODY3YmUwZGQ5MjQwZi44MDE5MzQzNjllZmFjOTFlLjdhODQxOGRmOTNlZjI1OWEKICAgICBhNjIxOWZiOTdhNjMyNDRiLjk1ZDVkOTRhYWQ0YjllMjcuOGNkOTM5OWM3NTgxNzBjYS42NTM1ZjhhZDM0NGQ0NWZjCi0gICAgZGRkMDExYWJmNWJjNTI1MS45MTgwMmZlNDdmY2ViNzJiLjEzYzZkMmU1ODlhNjU3ZTYuNDVkMGZjOTNmYTM1MjZiNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YTg0MThkZjkzZWYyNTlhLjdhODQxOGRmOTNlZjI1OWEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGNkOTM5OWM3NTgxNzBjYS42NTM1ZjhhZGZmZmZmZmZmCisgICAgMTkxZDExMjE5NjA1MWI0OS5jYjQ2NjRmNzIwZWVhYmM2LmYxYWE3YmZiZjM3NTNiYTAuNzU5ZjIyZmI4MDM1MDY2ZQogICAgIDUwZWY2NTUzNjNkODFmZDYKIAotVk1PVkREVVBfWE1Nb3JNRU02NF90b19YTU0ocmVnKQorVkNNUFNTXzEyOF8weDE1KHJlZykKICAgYmVmb3JlCiAgICAgMzQwY2MxMDYzZWFiYWQ5Ny4zNmQzMWIwNzc4NGEzYjVmLjlmNzM3NGVlMmIzN2I4YTUuMDI1MmIxY2JkMWZiZDgyMQogICAgIDdiNDEzMjgwYWQzOWVlNWUuMTBjMGFiNDliODk4NmRjMC42OTUzNWIzNzNkMzYxODczLjIyOGFlZjQyM2Y0NGVhOTgKQEAgLTM3ODYsMTIgKzM3ODYsMTIgQEAKICAgICBhNjI3NDU3OWI5Yjc3NGFjLjZiNmE0ZjkyYzA3ZGZhMTIuNGY1YjlmNmRlNDgzYzM4Zi5mZmRhNzNkMTM4NGI1YjEyCiAgICAgNzM4OWIxYzJmYzIzMzM2ZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMjhhZWY0MjNmNDRlYTk4LjIyOGFlZjQyM2Y0NGVhOTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjk1MzViMzczZDM2MTg3My4yMjhhZWY0MjAwMDAwMDAwCiAgICAgN2I0MTMyODBhZDM5ZWU1ZS4xMGMwYWI0OWI4OTg2ZGMwLjY5NTM1YjM3M2QzNjE4NzMuMjI4YWVmNDIzZjQ0ZWE5OAogICAgIDgzZGNiNTJkNGQwZTFjZDYuODNhZTNlZDM3MWZiNmU5OC44NTMxMTYzZGYxNzYwN2RkLjJkMWViMTRiNTg1YTJjMmYKICAgICBhNjI3NDU3OWI5Yjc3NGFjLjZiNmE0ZjkyYzA3ZGZhMTIuNGY1YjlmNmRlNDgzYzM4Zi5mZmRhNzNkMTM4NGI1YjEyCiAgICAgNzM4OWIxYzJmYzIzMzM2ZQotVk1PVkREVVBfWE1Nb3JNRU02NF90b19YTU0obWVtKQorVkNNUFNTXzEyOF8weDE1KG1lbSkKICAgYmVmb3JlCiAgICAgNjdmOGU4MDliZmVjNmY2Zi40MjcwZGVkMThlYmYzMThiLmE0YzA1YTcwYzAyY2NjNWIuMjMxYmY0MzFiMWVhODYzNAogICAgIGI2ZjM5MzkyOWViNGNjNDAuYjEwMTdjOWY2OGIyOTEyMC4wOTdjZGI1YjhlMTRhMjlmLjVkYmUxMGY2ZjUzNjhkNzgKQEAgLTM4MDEsMTEgKzM4MDEsMTEgQEAKICAgYWZ0ZXIKICAgICA2N2Y4ZTgwOWJmZWM2ZjZmLjQyNzBkZWQxOGViZjMxOGIuYTRjMDVhNzBjMDJjY2M1Yi4yMzFiZjQzMWIxZWE4NjM0CiAgICAgYjZmMzkzOTI5ZWI0Y2M0MC5iMTAxN2M5ZjY4YjI5MTIwLjA5N2NkYjViOGUxNGEyOWYuNWRiZTEwZjZmNTM2OGQ3OAotICAgIDNjNDYyZTQ5YjQ4NzA2MGUuNTAyNzFiNTBlMTFkY2UxNy43ODY5NGYzZDQ1M2YzNjA5LjU5OTBmMDI4NGJmNDE0MDkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjMxYmY0MzFiMWVhODYzNC4yMzFiZjQzMWIxZWE4NjM0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA5N2NkYjViOGUxNGEyOWYuNWRiZTEwZjYwMDAwMDAwMAorICAgIGQ0YmQzNjFhMWU2ZmQ4MDUuN2MyZGI4NTE5ODhiMjQxYi5jYzU1MzEwNDAxYmM0NGM2LjczZGQ4ZTM0NGZhZjU2OTEKICAgICAwNmYxZTg4NTllZjM5MGJjCiAKLVZNT1ZEX0lSRUdvck1FTTMyX3RvX1hNTShyZWcpCitWQ01QU1NfMTI4XzB4MTYocmVnKQogICBiZWZvcmUKICAgICA3MDE3Zjk4NmQ0NGNmZTM3LjVjMjQyNWYyZjc3YTAwNTAuOGY2MTRlMGQyNjg4ZDFkOS5lMDBhZmQ5YWRmOTQ4YTAxCiAgICAgMGM5ZGJkYTU4YzQ3ZGNhZS5hZTQ3NzliYjVjYjQzODFjLmU2MGRkOWVmMmFhMTBmZmQuOTI1NTJmZWRmYmQ1YzJlNwpAQCAtMzgxMywxMiArMzgxMywxMiBAQAogICAgIDQ5ZjQ0ZmVhZjM1MWQ2M2UuMjVlZjNkZDQzOGUyY2FlNS5kMDAxYmZkYWZkNTQzMTI0LjNjZGRiNjc3NWFiZmZhNjMKICAgICBlZGIxMDM4NmQ2ODE3MzUwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBkNjgxNzM1MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNjBkZDllZjJhYTEwZmZkLjkyNTUyZmVkMDAwMDAwMDAKICAgICAwYzlkYmRhNThjNDdkY2FlLmFlNDc3OWJiNWNiNDM4MWMuZTYwZGQ5ZWYyYWExMGZmZC45MjU1MmZlZGZiZDVjMmU3CiAgICAgMzZjZDMxNGQ2MjZmNjVjZC5hOGYxYWQ2MjY4MjgzYzk0LmRkN2Y1NTY1M2Q2MTFiMzIuYmQwMjQzZTg3MDhhYTlhNAogICAgIDQ5ZjQ0ZmVhZjM1MWQ2M2UuMjVlZjNkZDQzOGUyY2FlNS5kMDAxYmZkYWZkNTQzMTI0LjNjZGRiNjc3NWFiZmZhNjMKICAgICBlZGIxMDM4NmQ2ODE3MzUwCi1WTU9WRF9JUkVHb3JNRU0zMl90b19YTU0obWVtKQorVkNNUFNTXzEyOF8weDE2KG1lbSkKICAgYmVmb3JlCiAgICAgYWE0Y2E2MDJmZmRiY2U5OS5hMzVlMTVlOGRhNzg2YWIwLjAwMGRhNmZjZTdlZTljM2EuMWNlMDEyYmEwNjA3OGM4MAogICAgIDUxNzgxYmQ1ZjJkOWM3NjguOWU1NzdlYjNiNDcwNWZjZC4xNzE3NjJjNTkyNTk2ZmMxLjFiNjg0YTcxZjMwNTY5ZjIKQEAgLTM4MjgsMTEgKzM4MjgsMTEgQEAKICAgYWZ0ZXIKICAgICBhYTRjYTYwMmZmZGJjZTk5LmEzNWUxNWU4ZGE3ODZhYjAuMDAwZGE2ZmNlN2VlOWMzYS4xY2UwMTJiYTA2MDc4YzgwCiAgICAgNTE3ODFiZDVmMmQ5Yzc2OC45ZTU3N2ViM2I0NzA1ZmNkLjE3MTc2MmM1OTI1OTZmYzEuMWI2ODRhNzFmMzA1NjlmMgotICAgIGJjMDJkZWVjY2E4ODFjZTkuOTgyYTg3YjcxY2M2ZWY0Mi40NGQ5ZWYxZDU0MmVmZWEzLjJhZTQ2MzZiNjFkYTA0MjYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDA2MDc4YzgwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE3MTc2MmM1OTI1OTZmYzEuMWI2ODRhNzEwMDAwMDAwMAorICAgIGM5YjY2YzM0YTRmMzg3NDkuZWMyNTJhNjFhZjA0NTdiYS42NTFlYzhlZjQ5NzkwNzBlLmE1YTI1OTE1ZWIxMzk4YzcKICAgICBlOGVjMjlkOTJkM2I2MjgxCiAKLVZNT1ZEX0lSRUdvck1FTTMyX3RvX1hNTShyZWcpCitWQ01QU1NfMTI4XzB4MTYocmVnKQogICBiZWZvcmUKICAgICA0ZjBmY2UyNGM0ZGY5ZTAxLjUyNjA0MDk3OWIyN2M1YjQuZjU5MjY1MWIwOGI5ZDJlMi41NGI0NmEyNzhlNDc0NDJlCiAgICAgMzY1NzQ0NjM0Yzg5ODhmMy4zNGNjZDYwM2NjMmY5MTU1LjExYmUzMzUzYzQ2ZTllNjUuZWU2NTRmYjEzZmEzNzEyZgpAQCAtMzg0MCwxMiArMzg0MCwxMiBAQAogICAgIGY0ODY5NDY5OWMyNTU0ZGMuNzQxOTM5YTM0YWViYzdlYi5lZDgzNzllOWQzMGUxMzJmLjk0NGJkNzZjNTIzNzhmODIKICAgICA1NzE4NzE3NGVkODZmNzJjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBlZDg2ZjcyYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMWJlMzM1M2M0NmU5ZTY1LmVlNjU0ZmIxMDAwMDAwMDAKICAgICAzNjU3NDQ2MzRjODk4OGYzLjM0Y2NkNjAzY2MyZjkxNTUuMTFiZTMzNTNjNDZlOWU2NS5lZTY1NGZiMTNmYTM3MTJmCiAgICAgZjkxMDg3MDE2MGM4NWIwMy40Y2M2YWI2MzUyMTdhOTU5LjlhZjU5MDczN2ViMWY1ZjAuMTBmZWY1N2E3NzlhNGMzYwogICAgIGY0ODY5NDY5OWMyNTU0ZGMuNzQxOTM5YTM0YWViYzdlYi5lZDgzNzllOWQzMGUxMzJmLjk0NGJkNzZjNTIzNzhmODIKICAgICA1NzE4NzE3NGVkODZmNzJjCi1WTU9WRF9JUkVHb3JNRU0zMl90b19YTU0obWVtKQorVkNNUFNTXzEyOF8weDE2KG1lbSkKICAgYmVmb3JlCiAgICAgMzUzMTNmN2Y2MzkzNDA2Ny44MzA1NjUwOTlkMmVhZjJhLjg5OTJmZWFmY2ZiOGE3MzguNjdiM2U4MjA1ZTBmMzZjZAogICAgIDBiNjFiZTc3ZDE2YjI1NWUuMDFkOGY4NGNmZTZlYTg5YS42N2ZkNzU3M2ZkODkwNzZjLjYyZDNkYjg0YmM0Mjk4NzcKQEAgLTM4NTUsMTEgKzM4NTUsMTEgQEAKICAgYWZ0ZXIKICAgICAzNTMxM2Y3ZjYzOTM0MDY3LjgzMDU2NTA5OWQyZWFmMmEuODk5MmZlYWZjZmI4YTczOC42N2IzZTgyMDVlMGYzNmNkCiAgICAgMGI2MWJlNzdkMTZiMjU1ZS4wMWQ4Zjg0Y2ZlNmVhODlhLjY3ZmQ3NTczZmQ4OTA3NmMuNjJkM2RiODRiYzQyOTg3NwotICAgIGIzNzY2OTRhNTIxOTYzM2UuY2M0YzQ5OWU1YzcxN2FkOC5lYjI2MWFkYmYxNmJhMWIyLjNjMmQ0ZDgxODgzMzc2ZDkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDVlMGYzNmNkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY3ZmQ3NTczZmQ4OTA3NmMuNjJkM2RiODQwMDAwMDAwMAorICAgIDBhM2FiY2UzMDNhYWI2MzMuM2ZhZDUyNmI1MmM0NjI4Zi5lZmQ5NmFkM2M3NjkzMjM3LjRmMGUzYTgzNWU2YzBjOWUKICAgICBmOGMyOWZmNmRiN2I5NTcyCiAKLVZNT1ZEX0lSRUdvck1FTTMyX3RvX1hNTShyZWcpCitWQ01QU1NfMTI4XzB4MTYocmVnKQogICBiZWZvcmUKICAgICA5Mzk1Nzc0NjliZWM0ZTAzLmVjN2EzMzJlZmYyOWQ5NjguYjY0NzExMjA3ZGYyOWM2Yy41MGUyZGY0NzlhOGY3NjI2CiAgICAgN2NkM2JlZTAzOTQ5NzNmYS4zNTAyNGIxNzYzYTI4OTBhLjhjNjY4MDI3Nzg4ODYzMWIuZWEwY2Y3MjQ4NmVhMjhhYwpAQCAtMzg2NywxMiArMzg2NywxMiBAQAogICAgIGE5YmY4OTllODBmZGVmZDEuNmMxOTRiNzNkMWI0ODA0My5jYTYyNjRkZjUwMTk4YjlkLjM5ZjZmZWM1MWM2Y2M5MmMKICAgICBhNjRlZTQ2MmZkYWIyZjdlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBmZGFiMmY3ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44YzY2ODAyNzc4ODg2MzFiLmVhMGNmNzI0ZmZmZmZmZmYKICAgICA3Y2QzYmVlMDM5NDk3M2ZhLjM1MDI0YjE3NjNhMjg5MGEuOGM2NjgwMjc3ODg4NjMxYi5lYTBjZjcyNDg2ZWEyOGFjCiAgICAgMTBjODcwMmU1MTIwM2YwNi5jMTlkN2Y4YTRhMjI4MjQ0LjFmNTY5ZGVkZTAxMWY0NDcuOTkyNDJkNTRhODg0MDVmNQogICAgIGE5YmY4OTllODBmZGVmZDEuNmMxOTRiNzNkMWI0ODA0My5jYTYyNjRkZjUwMTk4YjlkLjM5ZjZmZWM1MWM2Y2M5MmMKICAgICBhNjRlZTQ2MmZkYWIyZjdlCi1WTU9WRF9JUkVHb3JNRU0zMl90b19YTU0obWVtKQorVkNNUFNTXzEyOF8weDE2KG1lbSkKICAgYmVmb3JlCiAgICAgYmNmODVkMTY2NzRmZjQxNi5hNDA1MDY5YTYxNmFiZjA4LjEyNDAyYmJlMTM2NDNlMzMuZThkN2NmNjg2NDJkNjRjOAogICAgIDU3YzBlNGNmNzc2NGQ0MjEuNWRlNmUyOTA5MWY1ZWI1Ni44ZmUwOWI1ODJjM2Y3OTNmLmQ3MDJkY2YzYjlkOGJhNzUKQEAgLTM4ODIsMTEgKzM4ODIsMTEgQEAKICAgYWZ0ZXIKICAgICBiY2Y4NWQxNjY3NGZmNDE2LmE0MDUwNjlhNjE2YWJmMDguMTI0MDJiYmUxMzY0M2UzMy5lOGQ3Y2Y2ODY0MmQ2NGM4CiAgICAgNTdjMGU0Y2Y3NzY0ZDQyMS41ZGU2ZTI5MDkxZjVlYjU2LjhmZTA5YjU4MmMzZjc5M2YuZDcwMmRjZjNiOWQ4YmE3NQotICAgIDUzNzFmNTc4NDhmNDhiY2IuMzBhZTE5ZWJhYjJhYWU2OC5iZmMzMTgyYjM5NTBlZDk0LmYxMmQ4NmVlZWJhNmNhNGYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDY0MmQ2NGM4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhmZTA5YjU4MmMzZjc5M2YuZDcwMmRjZjMwMDAwMDAwMAorICAgIDhjZDkwZGZkZjcwZGQ0M2YuNzlhOWE3MTc0Yzk0NDVlOS43ZWI2MWQyNTU2YTM1NjVkLjk0YTVjOWM0OTUyM2QwMDQKICAgICAxYmI1YTFlMTUzZGMwNzNkCiAKLVZNT1ZRX1hNTV9NRU02NChyZWcpCitWQ01QU1NfMTI4XzB4MTcocmVnKQogICBiZWZvcmUKICAgICBlMWFiMGJiMWMyNWRhY2E4LmRlYzJhNjRiOWZiYTZkYWEuOTQyMzg4ODAwZmJmZWM4Ni5hODg0MjYzMDllNDQ2ZmM3CiAgICAgNDNkMTAyYTA3ZTMwZmJmMS4yNGY5M2U0YzVjMDgwZjM3LmRkNjdiOTkyOTEzN2RmZWEuMTlmYmFmM2EyZDQwZjVmZApAQCAtMzg5NCwxMiArMzg5NCwxMiBAQAogICAgIDRjZTA4NzhjNGEwMTg2Y2MuMDE4MTU5MWI4OGI0NjU2YS42OTgxZjg2MTNmNDA5N2JhLjNmMTAzMmY4OTI3NzM3ODAKICAgICBhZDQ2MjQ4NGEwY2E2YjI1CiAgIGFmdGVyCi0gICAgZTFhYjBiYjFjMjVkYWNhOC5kZWMyYTY0YjlmYmE2ZGFhLjk0MjM4ODgwMGZiZmVjODYuYTg4NDI2MzA5ZTQ0NmZjNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZDY3Yjk5MjkxMzdkZmVhLjE5ZmJhZjNhZmZmZmZmZmYKICAgICA0M2QxMDJhMDdlMzBmYmYxLjI0ZjkzZTRjNWMwODBmMzcuZGQ2N2I5OTI5MTM3ZGZlYS4xOWZiYWYzYTJkNDBmNWZkCiAgICAgOWU3NDgyMWEyMmUzMzBjNC4zYzRhNTBlZDRjMDI3OTEzLmIwYzIzNWI5NmQ4OTU5YzMuYWNlNjM0MmUyMGEzYTQyZAogICAgIDRjZTA4NzhjNGEwMTg2Y2MuMDE4MTU5MWI4OGI0NjU2YS42OTgxZjg2MTNmNDA5N2JhLjNmMTAzMmY4OTI3NzM3ODAKICAgICBhZDQ2MjQ4NGEwY2E2YjI1Ci1WTU9WUV9YTU1fTUVNNjQobWVtKQorVkNNUFNTXzEyOF8weDE3KG1lbSkKICAgYmVmb3JlCiAgICAgZDI1NDg2YmU2NmE4ZmM0Ni5hYjYxMGQ2MDkzMTczYWI2LjRmNjlkM2MwMmUyYjkwNjcuNjRlZWZlZjdhNWU5ZDQ3ZQogICAgIDg5MDZkNDkyZmUxY2E1MGYuMTU0MzExMDQ5OGIwODgyZC4wMWQwM2NjYTVhNzJiNjM3LmZjNTU0NGU1MzgwZTRlYjkKQEAgLTM5MDcsMTMgKzM5MDcsMTMgQEAKICAgICAyMjg1MjZiOTFhZjYzMzRjLjdkNTk4MDY4NDg5Y2UwNzQuMDY0NmM4YjliMWExZTFmZS43ODQ2N2Q3ZTViMDJlNDQ1CiAgICAgMTM2NjY4ZmYyMmU4NzhlZgogICBhZnRlcgotICAgIGQyNTQ4NmJlNjZhOGZjNDYuYWI2MTBkNjA5MzE3M2FiNi40ZjY5ZDNjMDJlMmI5MDY3LmZjNTU0NGU1MzgwZTRlYjkKKyAgICBkMjU0ODZiZTY2YThmYzQ2LmFiNjEwZDYwOTMxNzNhYjYuNGY2OWQzYzAyZTJiOTA2Ny42NGVlZmVmN2E1ZTlkNDdlCiAgICAgODkwNmQ0OTJmZTFjYTUwZi4xNTQzMTEwNDk4YjA4ODJkLjAxZDAzY2NhNWE3MmI2MzcuZmM1NTQ0ZTUzODBlNGViOQotICAgIGIwMjg4YmVjODczMjI0YWQuZTdkMjhlZTJmNjU4YWJkZS5mNTgwMGYyNDI3OTY5MjA1LjhmMDRjNTk5OTYzZTNmMTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDFkMDNjY2E1YTcyYjYzNy5mYzU1NDRlNWZmZmZmZmZmCiAgICAgMjI4NTI2YjkxYWY2MzM0Yy43ZDU5ODA2ODQ4OWNlMDc0LjA2NDZjOGI5YjFhMWUxZmUuNzg0NjdkN2U1YjAyZTQ0NQogICAgIDEzNjY2OGZmMjJlODc4ZWYKIAotVk1PVlFfWE1NX01FTTY0KHJlZykKK1ZDTVBTU18xMjhfMHgxNyhyZWcpCiAgIGJlZm9yZQogICAgIGJiYjE4MjhhODc3YjM5YzAuYmFlYTIxZTNkNTc1OGUxNy4zNDI1ZTMwMTJiMDc2MzljLjBmZWVlNDc3MTVhMTVmNGQKICAgICBjZTczYzg4YTI3NDg2MTY1LjU2MjRmODU4ZDRiYWYzM2IuNjY4M2I0MTkzYTI2NzAwMi5lZTQ0ZGQ0OTZmYTJjODFmCkBAIC0zOTIxLDEyICszOTIxLDEyIEBACiAgICAgYTE4Y2M1OTk4NmJkZDhkYS4wNjQyMmJjZjBjYzdjNjNkLmFlMWY4ZDc2NGVhYzE2MzYuOWEyOTViZGE3MmQ0NDlmYgogICAgIDFmNTBkNzcwNTQxZGRhNWQKICAgYWZ0ZXIKLSAgICBiYmIxODI4YTg3N2IzOWMwLmJhZWEyMWUzZDU3NThlMTcuMzQyNWUzMDEyYjA3NjM5Yy4wZmVlZTQ3NzE1YTE1ZjRkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY2ODNiNDE5M2EyNjcwMDIuZWU0NGRkNDlmZmZmZmZmZgogICAgIGNlNzNjODhhMjc0ODYxNjUuNTYyNGY4NThkNGJhZjMzYi42NjgzYjQxOTNhMjY3MDAyLmVlNDRkZDQ5NmZhMmM4MWYKICAgICBhN2Y4MzU2YjlkZGEyYzhhLmQwZmQyNzAyMzJkMTFjZTQuNzBiZGVlMWMxMTgzNDI1MS43ZDEzMzExYmRhYWVkN2EwCiAgICAgYTE4Y2M1OTk4NmJkZDhkYS4wNjQyMmJjZjBjYzdjNjNkLmFlMWY4ZDc2NGVhYzE2MzYuOWEyOTViZGE3MmQ0NDlmYgogICAgIDFmNTBkNzcwNTQxZGRhNWQKLVZNT1ZRX1hNTV9NRU02NChtZW0pCitWQ01QU1NfMTI4XzB4MTcobWVtKQogICBiZWZvcmUKICAgICBlYTU1MjJjYTliOTc0NWYyLjFhN2E3NDgxN2Q3ZDlmMDIuZDJiZTdmYWE3ZGE3YWM3Mi43Y2Y3OGQ5MzhhMmQyODVjCiAgICAgZDUwNGI3ZDU2NDRkNDdlNS42YzEwM2Y4ZDFmYTdiZWFkLjEyM2Y5ZjdmYTE3ZThjYjEuMzY5MGVhZGY2MzkwYjM3MApAQCAtMzkzNCwxMyArMzkzNCwxMyBAQAogICAgIDdmOTBhZmFhZWE5ZTAwOTcuMGY1ZjE2YzVkMjY3ZjIzZS41OTdjMzRjNzc1M2UyNGY3LmRlMzNhZGI1NWIzMjI4MTEKICAgICA4NGQ2MGExN2IxODg4OGY2CiAgIGFmdGVyCi0gICAgZWE1NTIyY2E5Yjk3NDVmMi4xYTdhNzQ4MTdkN2Q5ZjAyLmQyYmU3ZmFhN2RhN2FjNzIuMzY5MGVhZGY2MzkwYjM3MAorICAgIGVhNTUyMmNhOWI5NzQ1ZjIuMWE3YTc0ODE3ZDdkOWYwMi5kMmJlN2ZhYTdkYTdhYzcyLjdjZjc4ZDkzOGEyZDI4NWMKICAgICBkNTA0YjdkNTY0NGQ0N2U1LjZjMTAzZjhkMWZhN2JlYWQuMTIzZjlmN2ZhMTdlOGNiMS4zNjkwZWFkZjYzOTBiMzcwCi0gICAgYmUyOTExN2JjYTRiOWM2Mi5mNTk4MjEyYTA3Yzc3MDg4LmEwOGYwNzNhOTU1NjIwMjQuMzgzNWExYzc3NTY0ZjUxZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMjNmOWY3ZmExN2U4Y2IxLjM2OTBlYWRmZmZmZmZmZmYKICAgICA3ZjkwYWZhYWVhOWUwMDk3LjBmNWYxNmM1ZDI2N2YyM2UuNTk3YzM0Yzc3NTNlMjRmNy5kZTMzYWRiNTViMzIyODExCiAgICAgODRkNjBhMTdiMTg4ODhmNgogCi1WTU9WUV9YTU1fTUVNNjQocmVnKQorVkNNUFNTXzEyOF8weDE3KHJlZykKICAgYmVmb3JlCiAgICAgODY2YWI0NTgxNGYxNTM3OC5mNTA1MGE0ZGRmNTEyZWFlLjE4YjExYWM5MWIxNTgwN2MuMWFkMGExMTI1YzNmNTY1NwogICAgIDQwM2JhOGUzMWZmOWMzNDQuZmM1M2EwNTBjNTcxZTNkMy42YWRhMjlhMTdmNWM1NmVlLmJkNThjYTA3NjY2NzcwNzAKQEAgLTM5NDgsMTIgKzM5NDgsMTIgQEAKICAgICA0Y2MzNWI4YzlmMTg4NDY5LjJlYWQ2OTI2ZDcyNWQxZmEuNWRlMDVhODIwNmU3YzkxYy4xYzMzNDBhMDU1NWE0ZjdiCiAgICAgOTExZjg2MWM3MjNjOGJjNQogICBhZnRlcgotICAgIDg2NmFiNDU4MTRmMTUzNzguZjUwNTBhNGRkZjUxMmVhZS4xOGIxMWFjOTFiMTU4MDdjLjFhZDBhMTEyNWMzZjU2NTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmFkYTI5YTE3ZjVjNTZlZS5iZDU4Y2EwN2ZmZmZmZmZmCiAgICAgNDAzYmE4ZTMxZmY5YzM0NC5mYzUzYTA1MGM1NzFlM2QzLjZhZGEyOWExN2Y1YzU2ZWUuYmQ1OGNhMDc2NjY3NzA3MAogICAgIDBlOTRlMTI2NmYyZDE1MDYuNzE0N2ViOWZiYTA5ZGIzMy42MzI2NDBiYjk5YzliMDNmLjFmZTAyYjkzYjBjMTJmNmQKICAgICA0Y2MzNWI4YzlmMTg4NDY5LjJlYWQ2OTI2ZDcyNWQxZmEuNWRlMDVhODIwNmU3YzkxYy4xYzMzNDBhMDU1NWE0ZjdiCiAgICAgOTExZjg2MWM3MjNjOGJjNQotVk1PVlFfWE1NX01FTTY0KG1lbSkKK1ZDTVBTU18xMjhfMHgxNyhtZW0pCiAgIGJlZm9yZQogICAgIDU4NmU3OGYyMjI3NmEwNzguNTUxMjEyODE0YzQ3NGQxYS4xMDUxOTZkMTNhZDE4MzUzLmI1NTY3MzYyNjE0MmRlMzEKICAgICA0ZWVkOTIwZDgyMTE0YWMwLjg3Y2UwMjcxMTI0NWFjYzQuZjNmZmVjOGNmZjFhYWE2Yi5jOGQyODdjNzQ2NjcyYTI5CkBAIC0zOTYxLDEzICszOTYxLDEzIEBACiAgICAgMzdhYjJmYzdjMDlmNGJiZC5kM2JkN2ZmMzU1ZGUxYmI1LjJjYTgwOGUzMWNiMTRlODYuOGEwZjkxZDEyMTNjNWI3NAogICAgIGYyNjc3ZjRkNGQwNWI2MWUKICAgYWZ0ZXIKLSAgICA1ODZlNzhmMjIyNzZhMDc4LjU1MTIxMjgxNGM0NzRkMWEuMTA1MTk2ZDEzYWQxODM1My5jOGQyODdjNzQ2NjcyYTI5CisgICAgNTg2ZTc4ZjIyMjc2YTA3OC41NTEyMTI4MTRjNDc0ZDFhLjEwNTE5NmQxM2FkMTgzNTMuYjU1NjczNjI2MTQyZGUzMQogICAgIDRlZWQ5MjBkODIxMTRhYzAuODdjZTAyNzExMjQ1YWNjNC5mM2ZmZWM4Y2ZmMWFhYTZiLmM4ZDI4N2M3NDY2NzJhMjkKLSAgICA0ZjY4NTA1YmFkMWI0NGM4LjNkNDMyOGM5OGI5ZWRkMTQuYjM4M2U5NDM0MTBjMDU2ZC5mMGExOTMxZDUyZTFlYmIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzZmZlYzhjZmYxYWFhNmIuYzhkMjg3YzdmZmZmZmZmZgogICAgIDM3YWIyZmM3YzA5ZjRiYmQuZDNiZDdmZjM1NWRlMWJiNS4yY2E4MDhlMzFjYjE0ZTg2LjhhMGY5MWQxMjEzYzViNzQKICAgICBmMjY3N2Y0ZDRkMDViNjFlCiAKLVZNT1ZEUUFfR3RvRV8yNTYocmVnKQorVkNNUFNTXzEyOF8weDE4KHJlZykKICAgYmVmb3JlCiAgICAgODRmNzU4ZmU3NWM3M2E1ZC5lMjgyYTkzZGQ2YWExYmNhLmE0ODcwMzVjMGM5MmEzNTQuM2IzYmM1NTZhZDE3NDJlMgogICAgIDlkMDkxOTUxMzMwZjIxZGIuMmNiODNjYWEwYzQ3NzAxYy4wZWVmYjA3MTRiNDViMTlkLmJhMDg5YzhhMGY0OTlkYWMKQEAgLTM5NzUsMTIgKzM5NzUsMTIgQEAKICAgICBjZmU3M2Y4OWUyNWQwYjQ2LjBkNzU5YjE0NDU2ODk3M2UuMTljNDc2NGJkM2RhNGVkYi43YjgwODllMWI5NDM3NzNjCiAgICAgNzVjMzk3ZGQzNzIyNmU1YQogICBhZnRlcgotICAgIDg0Zjc1OGZlNzVjNzNhNWQuZTI4MmE5M2RkNmFhMWJjYS5hNDg3MDM1YzBjOTJhMzU0LjNiM2JjNTU2YWQxNzQyZTIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGVlZmIwNzE0YjQ1YjE5ZC5iYTA4OWM4YTAwMDAwMDAwCiAgICAgOWQwOTE5NTEzMzBmMjFkYi4yY2I4M2NhYTBjNDc3MDFjLjBlZWZiMDcxNGI0NWIxOWQuYmEwODljOGEwZjQ5OWRhYwotICAgIGNmZTczZjg5ZTI1ZDBiNDYuMGQ3NTliMTQ0NTY4OTczZS4xOWM0NzY0YmQzZGE0ZWRiLjdiODA4OWUxYjk0Mzc3M2MKKyAgICA5N2VhYmNiMTIzNjdhODQ0LmYxMWI2NGY4N2Q4MjA1ZGYuNmMzZjgyOWNhZjg0ODEzYi44NmRiMGE2YTVmNTQxYjExCiAgICAgY2ZlNzNmODllMjVkMGI0Ni4wZDc1OWIxNDQ1Njg5NzNlLjE5YzQ3NjRiZDNkYTRlZGIuN2I4MDg5ZTFiOTQzNzczYwogICAgIDc1YzM5N2RkMzcyMjZlNWEKLVZNT1ZEUUFfR3RvRV8yNTYobWVtKQorVkNNUFNTXzEyOF8weDE4KG1lbSkKICAgYmVmb3JlCiAgICAgNGY2ZmIwNDlmOGZlYmM5Ny5hMTRhOWQ0NzBiN2Q4NThhLjVjOTM1ZmViODEwNGUyNjYuNzNjYTg3ZTk1M2QzNTUyOQogICAgIGU3NTI0ZTExMTVlMjFjMWUuNjk1ZmQyNTYzYjUyNTNiZi5iYTQxMmE2NzRkNjJhMjgyLmQ0OWRiMWUyY2NmY2QyZDAKQEAgLTM5ODgsMTMgKzM5ODgsMTMgQEAKICAgICBiZWU4MGU2NmQ5ZjMwNWJjLjRiZDNiMzE3MWU0YmRhYTYuMTM3ZGNiMDIwMjk2NmY0OS4xZmRhNDE5NTE4MGIxY2RiCiAgICAgYzFkYjlmMjcyMjBhNjI5NwogICBhZnRlcgotICAgIDE4MzZlZjIyYWNkYTRiMWMuODM3NGRiMjIwZDY4YjE4Zi4wMzRiN2E3NmM0OGY5MmJmLjlhODlmMGEyZGFlMDAwN2QKKyAgICA0ZjZmYjA0OWY4ZmViYzk3LmExNGE5ZDQ3MGI3ZDg1OGEuNWM5MzVmZWI4MTA0ZTI2Ni43M2NhODdlOTUzZDM1NTI5CiAgICAgZTc1MjRlMTExNWUyMWMxZS42OTVmZDI1NjNiNTI1M2JmLmJhNDEyYTY3NGQ2MmEyODIuZDQ5ZGIxZTJjY2ZjZDJkMAotICAgIDE4MzZlZjIyYWNkYTRiMWMuODM3NGRiMjIwZDY4YjE4Zi4wMzRiN2E3NmM0OGY5MmJmLjlhODlmMGEyZGFlMDAwN2QKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmE0MTJhNjc0ZDYyYTI4Mi5kNDlkYjFlMjAwMDAwMDAwCiAgICAgYmVlODBlNjZkOWYzMDViYy40YmQzYjMxNzFlNGJkYWE2LjEzN2RjYjAyMDI5NjZmNDkuMWZkYTQxOTUxODBiMWNkYgogICAgIGMxZGI5ZjI3MjIwYTYyOTcKIAotVk1PVkRRQV9HdG9FXzI1NihyZWcpCitWQ01QU1NfMTI4XzB4MTgocmVnKQogICBiZWZvcmUKICAgICBkYWQ5MDZjNDk1NjgwZTVjLmI1MzQyN2NhYjczODA1MmIuMWRjYTU1YTEwOTg4MGNiMi5jNWEyOTdmOTI0ODNmNTRiCiAgICAgYzcyMDcyZDkwY2IxNWJkNy5kOGU2YjYzYjYzYjUwOTk0LjU1YTNjMDJkNmFhYTgxNWMuZjc4NzVjNDY0NjYzZGZmMgpAQCAtNDAwMiwxMiArNDAwMiwxMiBAQAogICAgIDhlYjk0YTE3NzgzNmNiOWUuMTdhYjI3ZjA5Mjg5MDcwNy42NjJlZGFmNzAxY2UyNjQxLjQ4YzJiZTkyZjcyOWQyZGQKICAgICAxZWFlNTM2OWJmMjg1Mjc5CiAgIGFmdGVyCi0gICAgZGFkOTA2YzQ5NTY4MGU1Yy5iNTM0MjdjYWI3MzgwNTJiLjFkY2E1NWExMDk4ODBjYjIuYzVhMjk3ZjkyNDgzZjU0YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NWEzYzAyZDZhYWE4MTVjLmY3ODc1YzQ2MDAwMDAwMDAKICAgICBjNzIwNzJkOTBjYjE1YmQ3LmQ4ZTZiNjNiNjNiNTA5OTQuNTVhM2MwMmQ2YWFhODE1Yy5mNzg3NWM0NjQ2NjNkZmYyCi0gICAgOGViOTRhMTc3ODM2Y2I5ZS4xN2FiMjdmMDkyODkwNzA3LjY2MmVkYWY3MDFjZTI2NDEuNDhjMmJlOTJmNzI5ZDJkZAorICAgIGU1ZmNlMGQwMjQ3Mjg2YjQuMDVjOTM4YTNmODc3Y2IyNS40ZWFiZWQyNWRlM2U3NTUzLjg0Zjk5NWQ1ODI0MWVhNjkKICAgICA4ZWI5NGExNzc4MzZjYjllLjE3YWIyN2YwOTI4OTA3MDcuNjYyZWRhZjcwMWNlMjY0MS40OGMyYmU5MmY3MjlkMmRkCiAgICAgMWVhZTUzNjliZjI4NTI3OQotVk1PVkRRQV9HdG9FXzI1NihtZW0pCitWQ01QU1NfMTI4XzB4MTgobWVtKQogICBiZWZvcmUKICAgICBlNDhiZDE0N2Y2NDkyODZhLjFmYTJhZTE4YTU4OTY1NDIuZWE1NjAxMGQ0ZWY3N2I2OS5mODc3ODEwZDZlZTljZWQyCiAgICAgNzUyNGIzMTZiODk4MGVkYy5mNTA1MDc0MTQ2Zjg5MjRjLjU5OTc0MWU1NDhjZWUxNzQuNjBkNGUwZDVjMjE4YWFiMwpAQCAtNDAxNSwxMyArNDAxNSwxMyBAQAogICAgIDY3Yjg5MzNiNTBmMmZjZjEuZGI2NDg5Yjg1NjU3OGYzZi43ZjBiZTQ3YjYzZTQ3NTNjLjIxZjViNDI4OGNlN2VjMTQKICAgICAzMzUyMjE4YjNiOWZjYmVjCiAgIGFmdGVyCi0gICAgYWM0NDc1YzQyMzIyYzBmYS42YTJjNTJmZGY4MGU4YjY3LjQyM2E2NDY2OWIxOWY2NTcuZmE4ZmYzYmE5N2U5ZjU5MAorICAgIGU0OGJkMTQ3ZjY0OTI4NmEuMWZhMmFlMThhNTg5NjU0Mi5lYTU2MDEwZDRlZjc3YjY5LmY4Nzc4MTBkNmVlOWNlZDIKICAgICA3NTI0YjMxNmI4OTgwZWRjLmY1MDUwNzQxNDZmODkyNGMuNTk5NzQxZTU0OGNlZTE3NC42MGQ0ZTBkNWMyMThhYWIzCi0gICAgYWM0NDc1YzQyMzIyYzBmYS42YTJjNTJmZGY4MGU4YjY3LjQyM2E2NDY2OWIxOWY2NTcuZmE4ZmYzYmE5N2U5ZjU5MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OTk3NDFlNTQ4Y2VlMTc0LjYwZDRlMGQ1MDAwMDAwMDAKICAgICA2N2I4OTMzYjUwZjJmY2YxLmRiNjQ4OWI4NTY1NzhmM2YuN2YwYmU0N2I2M2U0NzUzYy4yMWY1YjQyODhjZTdlYzE0CiAgICAgMzM1MjIxOGIzYjlmY2JlYwogCi1WTU9WRFFBX0d0b0VfMjU2KHJlZykKK1ZDTVBTU18xMjhfMHgxOChyZWcpCiAgIGJlZm9yZQogICAgIDhiZjIzNTRmNDA5Y2NlYzQuODA0Yzg5Njk1ZDE0N2NlZC5hNGY5YWFkZWZkNjBkODgxLmVlZDUzZjEwYmQzYzFjNTAKICAgICA4NDIxZWNlMDM4NmEzMDQ3LmQ1Y2NkNDM5NjY5NWZkMTkuMjEzN2IwZGI4OGI0YTNkOS42OTY2ZjAxMmM1MmNhNWJlCkBAIC00MDI5LDEyICs0MDI5LDEyIEBACiAgICAgY2Q1YjMzMTk2ZmFhMDQwMC45ZmJmNTY2ZWRhZTJmMWIzLmE3ZGQ1YzBhYmM2ZWFmN2EuZjcwODQ1MDg0YzA1NGY1YQogICAgIGMyYjJlMWQ2MDMwN2U4ZTEKICAgYWZ0ZXIKLSAgICA4YmYyMzU0ZjQwOWNjZWM0LjgwNGM4OTY5NWQxNDdjZWQuYTRmOWFhZGVmZDYwZDg4MS5lZWQ1M2YxMGJkM2MxYzUwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIxMzdiMGRiODhiNGEzZDkuNjk2NmYwMTIwMDAwMDAwMAogICAgIDg0MjFlY2UwMzg2YTMwNDcuZDVjY2Q0Mzk2Njk1ZmQxOS4yMTM3YjBkYjg4YjRhM2Q5LjY5NjZmMDEyYzUyY2E1YmUKLSAgICBjZDViMzMxOTZmYWEwNDAwLjlmYmY1NjZlZGFlMmYxYjMuYTdkZDVjMGFiYzZlYWY3YS5mNzA4NDUwODRjMDU0ZjVhCisgICAgN2MyYjQyYWFiZTk1MmYyMi40MDA0ZWY5Njg2ODAzYWEyLmFlNmE5NzFiOTRkZjJjZjMuY2U4ODc0NmI5NWMxY2NiMwogICAgIGNkNWIzMzE5NmZhYTA0MDAuOWZiZjU2NmVkYWUyZjFiMy5hN2RkNWMwYWJjNmVhZjdhLmY3MDg0NTA4NGMwNTRmNWEKICAgICBjMmIyZTFkNjAzMDdlOGUxCi1WTU9WRFFBX0d0b0VfMjU2KG1lbSkKK1ZDTVBTU18xMjhfMHgxOChtZW0pCiAgIGJlZm9yZQogICAgIDA5NTJjM2JmZDlkMDU0NzEuZDVmZWJjOWFlNjM1ZWU4ZS5jY2NiODVhYzdkYzZkYzc5LjY4ZGVmOTE1OWNlYzY3MWEKICAgICBhOWI0NjdiMWU3NmU0ZTM4LmVlNjFkODk3YzBjMDI3NzcuYTRmMmY5M2Q4YjM4YjcxZi40ZGI3NmNhNmQxZTU5MTgwCkBAIC00MDQyLDEzICs0MDQyLDEzIEBACiAgICAgNjVlZGU2NWQyMTU3ZTAxYi5jNzkxYmFiYTBiMGI3OTBkLmM2YzQ5ZDAzNWFmNzMxYmUuZjMyNGMxMGVhODdhMmE0ZQogICAgIDZjNTA5Y2JkODMyZTExMGQKICAgYWZ0ZXIKLSAgICA3ZmE0NDk5NzRiZWM5NDYyLjc2Y2Q4MzdlOThkOWVjNjguMDQwMTJkMGIyMTQ0NDBkMi5iMmI1YjAyYmY2ZTY2OTU4CisgICAgMDk1MmMzYmZkOWQwNTQ3MS5kNWZlYmM5YWU2MzVlZThlLmNjY2I4NWFjN2RjNmRjNzkuNjhkZWY5MTU5Y2VjNjcxYQogICAgIGE5YjQ2N2IxZTc2ZTRlMzguZWU2MWQ4OTdjMGMwMjc3Ny5hNGYyZjkzZDhiMzhiNzFmLjRkYjc2Y2E2ZDFlNTkxODAKLSAgICA3ZmE0NDk5NzRiZWM5NDYyLjc2Y2Q4MzdlOThkOWVjNjguMDQwMTJkMGIyMTQ0NDBkMi5iMmI1YjAyYmY2ZTY2OTU4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE0ZjJmOTNkOGIzOGI3MWYuNGRiNzZjYTYwMDAwMDAwMAogICAgIDY1ZWRlNjVkMjE1N2UwMWIuYzc5MWJhYmEwYjBiNzkwZC5jNmM0OWQwMzVhZjczMWJlLmYzMjRjMTBlYTg3YTJhNGUKICAgICA2YzUwOWNiZDgzMmUxMTBkCiAKLVZNT1ZEUUFfR3RvRV8xMjgocmVnKQorVkNNUFNTXzEyOF8weDE5KHJlZykKICAgYmVmb3JlCiAgICAgNzk4NDNjYTMyMjhkNWE0MS4zODVjYjllZjg0YjllZThlLjNlZjg3N2I2YjRlMzA5MTEuYzcwN2M1MTE1MzVjNDcwZQogICAgIDc2MGU5ZDJjMjEyMzQwOTcuZDRiZDNlMzk5MTIxN2NlNy4zODRkYjhlMDJmZWNkYTIxLmU0OTYyMTIyMjg4MDNlZWYKQEAgLTQwNTYsMTIgKzQwNTYsMTIgQEAKICAgICBiMDRmOTJkN2IxMjVkNzU4LmQ4ODU0ZWE1MTYyYzAzZmUuMjBmNWI0NmIwZWMyMjkxNC5kZGM3NjdmOWQzMzJiZDEyCiAgICAgNzIwMTQ4OThlMWQ4YmVhZAogICBhZnRlcgotICAgIDc5ODQzY2EzMjI4ZDVhNDEuMzg1Y2I5ZWY4NGI5ZWU4ZS4zZWY4NzdiNmI0ZTMwOTExLmM3MDdjNTExNTM1YzQ3MGUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzg0ZGI4ZTAyZmVjZGEyMS5lNDk2MjEyMjAwMDAwMDAwCiAgICAgNzYwZTlkMmMyMTIzNDA5Ny5kNGJkM2UzOTkxMjE3Y2U3LjM4NGRiOGUwMmZlY2RhMjEuZTQ5NjIxMjIyODgwM2VlZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMGY1YjQ2YjBlYzIyOTE0LmRkYzc2N2Y5ZDMzMmJkMTIKKyAgICBiZjM4YmJjNDFkN2MwMWJiLjE2ZGNmMTI3NjM5ODQ0NTQuMGZkZTc4YTMxYWIyMjVlOS5mNzNjMmUyMWYzNmVkMThjCiAgICAgYjA0ZjkyZDdiMTI1ZDc1OC5kODg1NGVhNTE2MmMwM2ZlLjIwZjViNDZiMGVjMjI5MTQuZGRjNzY3ZjlkMzMyYmQxMgogICAgIDcyMDE0ODk4ZTFkOGJlYWQKLVZNT1ZEUUFfR3RvRV8xMjgobWVtKQorVkNNUFNTXzEyOF8weDE5KG1lbSkKICAgYmVmb3JlCiAgICAgOTJiNzRkZTkzYzZkOGY4OC5hNDlmMWZkMTdhYTlmZTFiLmY3ODRkMjlmYzdlODc1MTQuYzhkZjY2YTVhOWE3MjA0ZQogICAgIDE5YjVmM2Q4ZmRmY2VkZDAuZjk3NDVkMWYxMzk1YjRiMC40ZmE0ZjgwMjkyZDk1NWMwLjYxZTg4Y2JiODZlZDQ3NDUKQEAgLTQwNjksMTMgKzQwNjksMTMgQEAKICAgICBjY2I4MGU0MDI3M2E0MDU1LjMyZGNkYzYzMjdkMmI4ZmUuMWE3YTFiYWZlMzg3NTI4Yy5kOTg2MjEyZjc5Y2UxNTE0CiAgICAgNzBiNDg4NjRjNjgwMzM0NQogICBhZnRlcgotICAgIDkyYjc0ZGU5M2M2ZDhmODguYTQ5ZjFmZDE3YWE5ZmUxYi5iY2IyM2NiODkyMGE2MDJlLjQ4NWMyMTFhNDIyMWRhYTIKKyAgICA5MmI3NGRlOTNjNmQ4Zjg4LmE0OWYxZmQxN2FhOWZlMWIuZjc4NGQyOWZjN2U4NzUxNC5jOGRmNjZhNWE5YTcyMDRlCiAgICAgMTliNWYzZDhmZGZjZWRkMC5mOTc0NWQxZjEzOTViNGIwLjRmYTRmODAyOTJkOTU1YzAuNjFlODhjYmI4NmVkNDc0NQotICAgIGUzYzZiNDUxNDI5Mjk0YjAuMGExOTQ4MmIxOTc0MzNjMi5iY2IyM2NiODkyMGE2MDJlLjQ4NWMyMTFhNDIyMWRhYTIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGZhNGY4MDI5MmQ5NTVjMC42MWU4OGNiYjAwMDAwMDAwCiAgICAgY2NiODBlNDAyNzNhNDA1NS4zMmRjZGM2MzI3ZDJiOGZlLjFhN2ExYmFmZTM4NzUyOGMuZDk4NjIxMmY3OWNlMTUxNAogICAgIDcwYjQ4ODY0YzY4MDMzNDUKIAotVk1PVkRRQV9HdG9FXzEyOChyZWcpCitWQ01QU1NfMTI4XzB4MTkocmVnKQogICBiZWZvcmUKICAgICA2YTMwNTMyN2M1YzQ3MWUxLmIwNTU3YzkxYzcwMGFjZWIuY2YwNzE1MzFkOTNiN2UwZi40NWM4MGZkMmEyNWRlNjAzCiAgICAgMjE0NzdkZTMxMzI1MGE5Ni42YjZiN2IzMTNmZjE5NTlkLjNjZTdmMDAzY2MzY2MyYTIuMTk2ODk2MGRlYTk3ZDljMgpAQCAtNDA4MywxMiArNDA4MywxMiBAQAogICAgIDM5NzZkZWY1MGE2ZjQxZjUuZDYyZDE4MGEyNDgxY2UwNy5mNWY2Nzk2MGU0MzRiNGZjLjJjY2Q0YTdhODc2N2NjYzIKICAgICAyMzJiNmY4NTE0MTY0MzVkCiAgIGFmdGVyCi0gICAgNmEzMDUzMjdjNWM0NzFlMS5iMDU1N2M5MWM3MDBhY2ViLmNmMDcxNTMxZDkzYjdlMGYuNDVjODBmZDJhMjVkZTYwMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zY2U3ZjAwM2NjM2NjMmEyLjE5Njg5NjBkZmZmZmZmZmYKICAgICAyMTQ3N2RlMzEzMjUwYTk2LjZiNmI3YjMxM2ZmMTk1OWQuM2NlN2YwMDNjYzNjYzJhMi4xOTY4OTYwZGVhOTdkOWMyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY1ZjY3OTYwZTQzNGI0ZmMuMmNjZDRhN2E4NzY3Y2NjMgorICAgIGYyNDUwMjA0NGIzMDNjMGQuZDljNDg1MGFhYTE4Yjc5OC5kNGM4Njg0NDljNjFjMDYyLjcyMjYyYjRiZDg0MWU3ZjMKICAgICAzOTc2ZGVmNTBhNmY0MWY1LmQ2MmQxODBhMjQ4MWNlMDcuZjVmNjc5NjBlNDM0YjRmYy4yY2NkNGE3YTg3NjdjY2MyCiAgICAgMjMyYjZmODUxNDE2NDM1ZAotVk1PVkRRQV9HdG9FXzEyOChtZW0pCitWQ01QU1NfMTI4XzB4MTkobWVtKQogICBiZWZvcmUKICAgICAzMzBhMTc1OTlhNWEwYWVkLjUyMjUwZDI0ZWI3MTU2ZjguM2U3MWFmMWJjYTM5OTUxNy5mOWJkMjBjMzQwNDNkOTFjCiAgICAgMzgzN2JkZTAzNjNkZGFhMS45OWEwOGNmZDhiYmZiNmMyLmVkNWVjNzJiYjg0YmM5ZjQuM2U2ODU3ZDk0ZDE5NmQ2ZApAQCAtNDA5NiwxMyArNDA5NiwxMyBAQAogICAgIDkwYWJmM2JiMWUxNjhjMWYuMjAyNTY3NTg3NTc0NGE1ZS44ZjVmNjZmNWQ5YWU2N2MzLmY2OWU2YWNlZTg0Y2NjNTUKICAgICAyM2MwM2Q4NWFmYzAxMDQzCiAgIGFmdGVyCi0gICAgMzMwYTE3NTk5YTVhMGFlZC41MjI1MGQyNGViNzE1NmY4LmJmYmZkYTI1MDhjMzI2YzkuMWU0NTFjMGVhNzQzYWE5YworICAgIDMzMGExNzU5OWE1YTBhZWQuNTIyNTBkMjRlYjcxNTZmOC4zZTcxYWYxYmNhMzk5NTE3LmY5YmQyMGMzNDA0M2Q5MWMKICAgICAzODM3YmRlMDM2M2RkYWExLjk5YTA4Y2ZkOGJiZmI2YzIuZWQ1ZWM3MmJiODRiYzlmNC4zZTY4NTdkOTRkMTk2ZDZkCi0gICAgMGQ3ZWRkMDcwM2NkNzJhMy42OTMxNTZlYTg1ZTc5ZTAxLmJmYmZkYTI1MDhjMzI2YzkuMWU0NTFjMGVhNzQzYWE5YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZDVlYzcyYmI4NGJjOWY0LjNlNjg1N2Q5MDAwMDAwMDAKICAgICA5MGFiZjNiYjFlMTY4YzFmLjIwMjU2NzU4NzU3NDRhNWUuOGY1ZjY2ZjVkOWFlNjdjMy5mNjllNmFjZWU4NGNjYzU1CiAgICAgMjNjMDNkODVhZmMwMTA0MwogCi1WTU9WRFFBX0d0b0VfMTI4KHJlZykKK1ZDTVBTU18xMjhfMHgxOShyZWcpCiAgIGJlZm9yZQogICAgIGZmZjc5MmEwOTYyY2IyMTIuOWM4OTdjZTZhMjIyZTU0Mi4xOWM4YmNiNGY4ZjJmNjg4LjNiMGJlNjg3NDUxNzQ5MGQKICAgICBlNzhmNjM4OTM5MWJlZTcwLjBjZTZmMzc2YWJmZjM5MzguYjA2NjRmNjhhYWVlZGQyOS45ZThmZDZjNzY4MGE4OGQ0CkBAIC00MTEwLDEyICs0MTEwLDEyIEBACiAgICAgNGMxMTZlN2EyNWIzMjM4My44ZDQ4OWI3MmJmNWJjMDRiLjI4YzIyNDhjMDg4ZTRmODEuZjg0ZmY3MDE0NWMwMGM4OAogICAgIGE4MjIyMGQ0Mzc5YWM5Y2MKICAgYWZ0ZXIKLSAgICBmZmY3OTJhMDk2MmNiMjEyLjljODk3Y2U2YTIyMmU1NDIuMTljOGJjYjRmOGYyZjY4OC4zYjBiZTY4NzQ1MTc0OTBkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIwNjY0ZjY4YWFlZWRkMjkuOWU4ZmQ2YzcwMDAwMDAwMAogICAgIGU3OGY2Mzg5MzkxYmVlNzAuMGNlNmYzNzZhYmZmMzkzOC5iMDY2NGY2OGFhZWVkZDI5LjllOGZkNmM3NjgwYTg4ZDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjhjMjI0OGMwODhlNGY4MS5mODRmZjcwMTQ1YzAwYzg4CisgICAgMzhkM2FlYWUzNTE5MDAwNy5iZThjZDQ1NjU2Yjk0MzJjLjQxNGIxZWUyMjZmMzNjZWQuOTNiN2IyYTE1Zjk0ZGY0NAogICAgIDRjMTE2ZTdhMjViMzIzODMuOGQ0ODliNzJiZjViYzA0Yi4yOGMyMjQ4YzA4OGU0ZjgxLmY4NGZmNzAxNDVjMDBjODgKICAgICBhODIyMjBkNDM3OWFjOWNjCi1WTU9WRFFBX0d0b0VfMTI4KG1lbSkKK1ZDTVBTU18xMjhfMHgxOShtZW0pCiAgIGJlZm9yZQogICAgIDdlZmRhOTA0NTAyZmQyM2UuODA5M2EwNTlhNjc0OTQ5MS41NGU2YzRiNTAxZjE2Y2MxLmMwMTg1ZGQ0ZWQ0YTUyOTEKICAgICA1OGFkMGU3ZmFjOGFlNTA4LjMwYTYzZWI3NTNlODhlZGQuZjEzMmNjMGQzODg3MDNiOS42NzlhYzYyNTcxYjM4MGM4CkBAIC00MTIzLDEzICs0MTIzLDEzIEBACiAgICAgODRiNzVkMDJhMGMzMTQ1NS43NWFmYjNhMGEyMWIxMWRkLjE5MDM2NmFhZjdlNWUwZTEuNGU0ZDE0OTJjM2JkNTA1ZQogICAgIDQ3MTZmMjg2Y2E3NzY5MTQKICAgYWZ0ZXIKLSAgICA3ZWZkYTkwNDUwMmZkMjNlLjgwOTNhMDU5YTY3NDk0OTEuM2VmNzJlNjY4MTJhNDA2MC43ODkyNTllYjJmNTYxNmQzCisgICAgN2VmZGE5MDQ1MDJmZDIzZS44MDkzYTA1OWE2NzQ5NDkxLjU0ZTZjNGI1MDFmMTZjYzEuYzAxODVkZDRlZDRhNTI5MQogICAgIDU4YWQwZTdmYWM4YWU1MDguMzBhNjNlYjc1M2U4OGVkZC5mMTMyY2MwZDM4ODcwM2I5LjY3OWFjNjI1NzFiMzgwYzgKLSAgICAxMGZjY2IyZjY5YjhiYzU2LmI4OTY0NjAwYzg5YzRmMTIuM2VmNzJlNjY4MTJhNDA2MC43ODkyNTllYjJmNTYxNmQzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYxMzJjYzBkMzg4NzAzYjkuNjc5YWM2MjUwMDAwMDAwMAogICAgIDg0Yjc1ZDAyYTBjMzE0NTUuNzVhZmIzYTBhMjFiMTFkZC4xOTAzNjZhYWY3ZTVlMGUxLjRlNGQxNDkyYzNiZDUwNWUKICAgICA0NzE2ZjI4NmNhNzc2OTE0CiAKLVZNT1ZEUVVfR3RvRV8xMjgocmVnKQorVkNNUFNTXzEyOF8weDFBKHJlZykKICAgYmVmb3JlCiAgICAgYmQzYmYwMzNkZjBkOWVhMi44ZWE5M2ZlMzZmYjlhODMxLmMxM2Q4MTAzN2RmMjEwZTkuNWMyMGYwYzZiN2M0OWY2OQogICAgIDBlMDYwODA2OWYwZDJiYjMuMGNhMGVkYmVmMmE2MzYxNS5mOThiYWQ5NWY0YWI4YWUzLmU1MWI0OWE2ZGNkNDM4MjMKQEAgLTQxMzcsMTIgKzQxMzcsMTIgQEAKICAgICBhZGMyN2JjYThlNzkzYzEwLmNmYzk5ZTEyODE5MjJhYTcuOWQ5YjBiZjcyN2Y5ZGE1MC4zNWRiNTQ2NGM3YjVlYmUwCiAgICAgYjQzOGZmMThjNTllN2QzYQogICBhZnRlcgotICAgIGJkM2JmMDMzZGYwZDllYTIuOGVhOTNmZTM2ZmI5YTgzMS5jMTNkODEwMzdkZjIxMGU5LjVjMjBmMGM2YjdjNDlmNjkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjk4YmFkOTVmNGFiOGFlMy5lNTFiNDlhNmZmZmZmZmZmCiAgICAgMGUwNjA4MDY5ZjBkMmJiMy4wY2EwZWRiZWYyYTYzNjE1LmY5OGJhZDk1ZjRhYjhhZTMuZTUxYjQ5YTZkY2Q0MzgyMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ZDliMGJmNzI3ZjlkYTUwLjM1ZGI1NDY0YzdiNWViZTAKKyAgICA5NWM1Mzg2OWE1MDI0Y2Y0LmQ4NjZlMzdmNDQ5NTc4MmUuNzllNjMxYzNhNGQ0Yjk3Ny44ZWMwZWIzNzgzMjA2ODNjCiAgICAgYWRjMjdiY2E4ZTc5M2MxMC5jZmM5OWUxMjgxOTIyYWE3LjlkOWIwYmY3MjdmOWRhNTAuMzVkYjU0NjRjN2I1ZWJlMAogICAgIGI0MzhmZjE4YzU5ZTdkM2EKLVZNT1ZEUVVfR3RvRV8xMjgobWVtKQorVkNNUFNTXzEyOF8weDFBKG1lbSkKICAgYmVmb3JlCiAgICAgZThhMzY5NDE5OGU3ZDk3Ny5iMzRhY2Q5M2Y1ZmQzOGI0LmNlOTM5ODYzYzZhOTBhYWQuYzFmNDM2OWYxY2E1MjkxYgogICAgIGFlZTcwY2NhNWQ5Y2JjYzIuMDRhOTJhMzI3NzFhN2M4Yy5hZjkxNGY1ZjJmZTdkMjZjLjQxM2VhZjI1MWQ2NGUxODMKQEAgLTQxNTAsMTMgKzQxNTAsMTMgQEAKICAgICA1YjJkZjJhYzJhN2MwNjM1LmYzMWJmNzlmMzk1MWNhODYuOGI1OGUyMDRkYTA2MGRjMy5jNGQ0Nzc4MGI0NGM3ZmRkCiAgICAgODBiOGJmMmM4MjhkZGQyNgogICBhZnRlcgotICAgIGU4YTM2OTQxOThlN2Q5NzcuYjM0YWNkOTNmNWZkMzhiNC40ZjhmM2ZmMGQ2NTczZjBmLjc5YzQ3MGY3YzZjMjNmMzUKKyAgICBlOGEzNjk0MTk4ZTdkOTc3LmIzNGFjZDkzZjVmZDM4YjQuY2U5Mzk4NjNjNmE5MGFhZC5jMWY0MzY5ZjFjYTUyOTFiCiAgICAgYWVlNzBjY2E1ZDljYmNjMi4wNGE5MmEzMjc3MWE3YzhjLmFmOTE0ZjVmMmZlN2QyNmMuNDEzZWFmMjUxZDY0ZTE4MwotICAgIGUwZDE2NjlmMmZjYWUyNDguZmEyYThmMTJhZjVkNDM0My40ZjhmM2ZmMGQ2NTczZjBmLjc5YzQ3MGY3YzZjMjNmMzUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWY5MTRmNWYyZmU3ZDI2Yy40MTNlYWYyNTAwMDAwMDAwCiAgICAgNWIyZGYyYWMyYTdjMDYzNS5mMzFiZjc5ZjM5NTFjYTg2LjhiNThlMjA0ZGEwNjBkYzMuYzRkNDc3ODBiNDRjN2ZkZAogICAgIDgwYjhiZjJjODI4ZGRkMjYKIAotVk1PVkRRVV9HdG9FXzEyOChyZWcpCitWQ01QU1NfMTI4XzB4MUEocmVnKQogICBiZWZvcmUKICAgICAwOGJlNDQ2N2NkMTI5NGJjLmZiYzcyY2RkNmJiZmU2YjQuNDljNjVlNDViMjgyNGQwMS4zZGJhYjY4NTU1ZmZmN2I0CiAgICAgYjgzMDAyOWQzMDY1ZTE0ZC45YzZiOTExZTBlOWUzYmYyLjU5NzhjMDcwYjY3ZDA4NWYuNDI3ZjM2NjE2MzRlYmEwZApAQCAtNDE2NCwxMiArNDE2NCwxMiBAQAogICAgIGZmOGExYmFiYjBhYjJjMGEuNTIwMGM4ODFlNzYwM2I1YS4xODIxNjYwNWNjZmUxNDc2LmI1NjUyYWQ3YWExZmJhYTgKICAgICBkYjFlOTY0ODFhYmE2ZjQzCiAgIGFmdGVyCi0gICAgMDhiZTQ0NjdjZDEyOTRiYy5mYmM3MmNkZDZiYmZlNmI0LjQ5YzY1ZTQ1YjI4MjRkMDEuM2RiYWI2ODU1NWZmZjdiNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OTc4YzA3MGI2N2QwODVmLjQyN2YzNjYxMDAwMDAwMDAKICAgICBiODMwMDI5ZDMwNjVlMTRkLjljNmI5MTFlMGU5ZTNiZjIuNTk3OGMwNzBiNjdkMDg1Zi40MjdmMzY2MTYzNGViYTBkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE4MjE2NjA1Y2NmZTE0NzYuYjU2NTJhZDdhYTFmYmFhOAorICAgIGVjNWJmNjNhNDgxNWZmODMuMWJlNTljNWMyZTI1YzQxYi43ZjdkMWE4Y2UwY2QzNjRjLjc2NzRkZTgzMjFmZjEyZmEKICAgICBmZjhhMWJhYmIwYWIyYzBhLjUyMDBjODgxZTc2MDNiNWEuMTgyMTY2MDVjY2ZlMTQ3Ni5iNTY1MmFkN2FhMWZiYWE4CiAgICAgZGIxZTk2NDgxYWJhNmY0MwotVk1PVkRRVV9HdG9FXzEyOChtZW0pCitWQ01QU1NfMTI4XzB4MUEobWVtKQogICBiZWZvcmUKICAgICBjNDZiOWZjNThmZGFlZGY3LjRmMGI2ZDVhMDViNWEyOGYuMWU4OTk0N2I1NjVjNWRkYi43ZWIwYTI0ODE3OWRkZTg2CiAgICAgNGMxOGMwMzcyMjhkZjBlZi4zNzI4ZThiNGUyYmU5ZWJlLjViNGQ3OTM0OTcyNWU2Y2IuMGU3NWNhYmY1ZDM1Y2YyYgpAQCAtNDE3NywxMyArNDE3NywxMyBAQAogICAgIGE5YzAzYmFkMThkYTczNWMuM2U2YTRhMWJhNmZmMTdjOC45OGIwODI5OGZjNGExY2E4LjFjZDVjYWZkNDc4MTFhZGUKICAgICA1MjA3OWE5YzI0NGRlYTQ2CiAgIGFmdGVyCi0gICAgYzQ2YjlmYzU4ZmRhZWRmNy40ZjBiNmQ1YTA1YjVhMjhmLmU1MTVmNDlhYzVjNTkyNTYuMjRiZWQ4ZDgzOTUyMjUwZgorICAgIGM0NmI5ZmM1OGZkYWVkZjcuNGYwYjZkNWEwNWI1YTI4Zi4xZTg5OTQ3YjU2NWM1ZGRiLjdlYjBhMjQ4MTc5ZGRlODYKICAgICA0YzE4YzAzNzIyOGRmMGVmLjM3MjhlOGI0ZTJiZTllYmUuNWI0ZDc5MzQ5NzI1ZTZjYi4wZTc1Y2FiZjVkMzVjZjJiCi0gICAgNGZmMDc1OGJmMWRlMzM1Ny4xMjJmODkyNmU0NTM1YjQyLmU1MTVmNDlhYzVjNTkyNTYuMjRiZWQ4ZDgzOTUyMjUwZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41YjRkNzkzNDk3MjVlNmNiLjBlNzVjYWJmMDAwMDAwMDAKICAgICBhOWMwM2JhZDE4ZGE3MzVjLjNlNmE0YTFiYTZmZjE3YzguOThiMDgyOThmYzRhMWNhOC4xY2Q1Y2FmZDQ3ODExYWRlCiAgICAgNTIwNzlhOWMyNDRkZWE0NgogCi1WTU9WRFFVX0d0b0VfMTI4KHJlZykKK1ZDTVBTU18xMjhfMHgxQShyZWcpCiAgIGJlZm9yZQogICAgIDIyYTA0NjIwNmI0M2QyZjAuMzY1NDhjOGFiMjhjNmMyYS4xNTI2MjlmZmM0NGUwY2ZjLjUwZTk5ZTFhNTliZjQxZWMKICAgICBlOGVjY2FmNWI5ZWQwZjhiLmQyNzhlNjBjZGIwMGRhZWQuZjVhZjIxM2RkYmNkNzY4OS5lOThjYzQwY2Y3MzFiZDRlCkBAIC00MTkxLDEyICs0MTkxLDEyIEBACiAgICAgYzZjYzQ2NDJkODkzNzIzZS5hN2EwYTJiNDRkNjAwM2ZmLjNjNTc0ZDdjNjM4ODlkNjAuMmQzZTIwZjA2ODM5YTgxZgogICAgIDkxZTY0Y2JhNzJlODkwZTUKICAgYWZ0ZXIKLSAgICAyMmEwNDYyMDZiNDNkMmYwLjM2NTQ4YzhhYjI4YzZjMmEuMTUyNjI5ZmZjNDRlMGNmYy41MGU5OWUxYTU5YmY0MWVjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY1YWYyMTNkZGJjZDc2ODkuZTk4Y2M0MGNmZmZmZmZmZgogICAgIGU4ZWNjYWY1YjllZDBmOGIuZDI3OGU2MGNkYjAwZGFlZC5mNWFmMjEzZGRiY2Q3Njg5LmU5OGNjNDBjZjczMWJkNGUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2M1NzRkN2M2Mzg4OWQ2MC4yZDNlMjBmMDY4MzlhODFmCisgICAgMDAzNjIwODdhOWQ5ZGFjMS41OWY4YzQyMWIwNDM3OGQwLjM4NTEyZjQzODcwNzkzMWMuM2U2NDcxNWFmM2FiNGJmYgogICAgIGM2Y2M0NjQyZDg5MzcyM2UuYTdhMGEyYjQ0ZDYwMDNmZi4zYzU3NGQ3YzYzODg5ZDYwLjJkM2UyMGYwNjgzOWE4MWYKICAgICA5MWU2NGNiYTcyZTg5MGU1Ci1WTU9WRFFVX0d0b0VfMTI4KG1lbSkKK1ZDTVBTU18xMjhfMHgxQShtZW0pCiAgIGJlZm9yZQogICAgIDQ2Mjg3M2E0MmZjM2JlN2EuOTZmODM3OTJlMWE2MTFiMC45ODNiZmRiMGNkNjMzN2E3LjViMGU3OTU1MGJkY2QxMDIKICAgICAyOGQwMTE5YmI4ZDZmMDBhLmNjMDdlZmUzNjA5ZWY0YzAuMDc5NjUwMDM0YzU5Y2ZmNC5mM2MzYWUzODFjOTA2YWFkCkBAIC00MjA0LDEzICs0MjA0LDEzIEBACiAgICAgZTI4MTllNWNhNGQ2NGFjOS5kYWZlYTUzOTMzNmU3NTcxLmQ0YmRjZTViYjk0YjFlMmIuZjk1MjI0ZDBlNzQ2YmZkMQogICAgIDIxYzQ1YzVjZDk2MGYxYTEKICAgYWZ0ZXIKLSAgICA0NjI4NzNhNDJmYzNiZTdhLjk2ZjgzNzkyZTFhNjExYjAuZDI3ZTE3OThlNzRkODgxMS41ZWMwZTg5MjMxMzBhNjBlCisgICAgNDYyODczYTQyZmMzYmU3YS45NmY4Mzc5MmUxYTYxMWIwLjk4M2JmZGIwY2Q2MzM3YTcuNWIwZTc5NTUwYmRjZDEwMgogICAgIDI4ZDAxMTliYjhkNmYwMGEuY2MwN2VmZTM2MDllZjRjMC4wNzk2NTAwMzRjNTljZmY0LmYzYzNhZTM4MWM5MDZhYWQKLSAgICAxMmE5YTA4OTJiMmVlMGMwLmM0NDU2YWEyZjIwNzU3MWQuZDI3ZTE3OThlNzRkODgxMS41ZWMwZTg5MjMxMzBhNjBlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA3OTY1MDAzNGM1OWNmZjQuZjNjM2FlMzgwMDAwMDAwMAogICAgIGUyODE5ZTVjYTRkNjRhYzkuZGFmZWE1MzkzMzZlNzU3MS5kNGJkY2U1YmI5NGIxZTJiLmY5NTIyNGQwZTc0NmJmZDEKICAgICAyMWM0NWM1Y2Q5NjBmMWExCiAKLVZNT1ZEUUFfRXRvR18yNTYocmVnKQorVkNNUFNTXzEyOF8weDFDKHJlZykKICAgYmVmb3JlCiAgICAgMzA2NDhlYTRhNDBhN2EyYi43MzIyODZmZjNlZGFlYzUwLjZhN2U5YjE2YmU1ZThiNjguZTgxZmYxMzlkZjYwNGM2ZQogICAgIDgzN2NiNjEzZTNjZTk0MWEuYTA1OWQ0NWUxNTQ3ODA4Mi5jZjEwNDhhNDJmNjRkNWFmLmVjNzJmZDFjNzQ5N2QwMDUKQEAgLTQyMTgsMTIgKzQyMTgsMTIgQEAKICAgICA2NjQ4ZDMxNTJmZGE2ZWRhLjQyYjk5MzAwZWQ4YTcwOTYuOGQ5ZWI3ODIzNmRmZjRkYy4zMDE3YmNhNTVkOWNjNGUxCiAgICAgMjkwMTY5MjJlOTgyYWU3ZQogICBhZnRlcgotICAgIDMwNjQ4ZWE0YTQwYTdhMmIuNzMyMjg2ZmYzZWRhZWM1MC42YTdlOWIxNmJlNWU4YjY4LmU4MWZmMTM5ZGY2MDRjNmUKLSAgICA3NjVhY2UxNDMzM2E3YzFiLjQ3ZjIwNTY1NDYyOGMzOGEuNjcwMmE4NGUyMzBiOGZmMi5iYjgxNmNmMTk1ZmM2NDFkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNmMTA0OGE0MmY2NGQ1YWYuZWM3MmZkMWNmZmZmZmZmZgorICAgIDgzN2NiNjEzZTNjZTk0MWEuYTA1OWQ0NWUxNTQ3ODA4Mi5jZjEwNDhhNDJmNjRkNWFmLmVjNzJmZDFjNzQ5N2QwMDUKICAgICA3NjVhY2UxNDMzM2E3YzFiLjQ3ZjIwNTY1NDYyOGMzOGEuNjcwMmE4NGUyMzBiOGZmMi5iYjgxNmNmMTk1ZmM2NDFkCiAgICAgNjY0OGQzMTUyZmRhNmVkYS40MmI5OTMwMGVkOGE3MDk2LjhkOWViNzgyMzZkZmY0ZGMuMzAxN2JjYTU1ZDljYzRlMQogICAgIDI5MDE2OTIyZTk4MmFlN2UKLVZNT1ZEUUFfRXRvR18yNTYobWVtKQorVkNNUFNTXzEyOF8weDFDKG1lbSkKICAgYmVmb3JlCiAgICAgODAwYmVkNTY1NGJiZGMxZi5hZDkzYzI4MTc0MzhhNTAyLjZmN2FmYzFiMjU3NzQ0Y2YuOWMzMTcyYWIwMzZjNDExYQogICAgIDEzMDFjNjJjYmE1MTBiZjEuYTg4Nzk2YzQ5ZGUzNWU0MC5hODAwYmJhMjBhZmVmYjY0LmYyMDdkNDM1MjYzZmIxNTgKQEAgLTQyMzMsMTEgKzQyMzMsMTEgQEAKICAgYWZ0ZXIKICAgICA4MDBiZWQ1NjU0YmJkYzFmLmFkOTNjMjgxNzQzOGE1MDIuNmY3YWZjMWIyNTc3NDRjZi45YzMxNzJhYjAzNmM0MTFhCiAgICAgMTMwMWM2MmNiYTUxMGJmMS5hODg3OTZjNDlkZTM1ZTQwLmE4MDBiYmEyMGFmZWZiNjQuZjIwN2Q0MzUyNjNmYjE1OAotICAgIGJjYWY2ZjkwMzg1M2Y2MjAuYjM2ZjRiNGI0NjY0ZDU0MC5jYjE4NGM4MWI5Mjg1MTdlLmVhNmNkOThjM2NlNDgyNDEKLSAgICA4MDBiZWQ1NjU0YmJkYzFmLmFkOTNjMjgxNzQzOGE1MDIuNmY3YWZjMWIyNTc3NDRjZi45YzMxNzJhYjAzNmM0MTFhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE4MDBiYmEyMGFmZWZiNjQuZjIwN2Q0MzVmZmZmZmZmZgorICAgIDU5ZTE2NDZlZWFjYTViZDcuMmE5OWRlODAwYzQ5NDVhZC5iMjhmMmNhNTRkMDMwMjRjLmRmYWI3ZDFkZTBlNWVlODIKICAgICAyZjEyYmQ1MmFmZDAzMmM2CiAKLVZNT1ZEUUFfRXRvR18yNTYocmVnKQorVkNNUFNTXzEyOF8weDFDKHJlZykKICAgYmVmb3JlCiAgICAgMzRlYjkzOTg0NDMwODliYS5jNDYyMjFiMmViYzRmNDQzLjY5NGY0OWQwOGIxZGViMzMuM2IyZmQ2ZjhlMzlhYzlmOAogICAgIDRjODNmZDVjM2M5MjMxMDkuZGFmZjIzNDg1NzRjN2Q5MC5jY2RlOGFhODVlNmMwMzdmLjQwYzRjNjY4OTZmOTYzYWYKQEAgLTQyNDUsMTIgKzQyNDUsMTIgQEAKICAgICAyMTIwN2IwYWMzODk1ZTZiLjc4YmRlMjFhZTMzNzUzN2EuNmViNzdjOWM3MWFkNzgxOC4zMjAyNjg0YmM1NDFmZmVjCiAgICAgZDY0MTEzOTc3ODQyNzljYQogICBhZnRlcgotICAgIDM0ZWI5Mzk4NDQzMDg5YmEuYzQ2MjIxYjJlYmM0ZjQ0My42OTRmNDlkMDhiMWRlYjMzLjNiMmZkNmY4ZTM5YWM5ZjgKLSAgICBkMTI2ZjcwOTMyODE2NDYwLjc4ODRlNDFjNGI2ZWI0ZTkuYWY5MjljNzIyMWMzYzkzZC45ZjFjNzhkZjgzMmQ4YjljCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNjZGU4YWE4NWU2YzAzN2YuNDBjNGM2NjhmZmZmZmZmZgorICAgIDRjODNmZDVjM2M5MjMxMDkuZGFmZjIzNDg1NzRjN2Q5MC5jY2RlOGFhODVlNmMwMzdmLjQwYzRjNjY4OTZmOTYzYWYKICAgICBkMTI2ZjcwOTMyODE2NDYwLjc4ODRlNDFjNGI2ZWI0ZTkuYWY5MjljNzIyMWMzYzkzZC45ZjFjNzhkZjgzMmQ4YjljCiAgICAgMjEyMDdiMGFjMzg5NWU2Yi43OGJkZTIxYWUzMzc1MzdhLjZlYjc3YzljNzFhZDc4MTguMzIwMjY4NGJjNTQxZmZlYwogICAgIGQ2NDExMzk3Nzg0Mjc5Y2EKLVZNT1ZEUUFfRXRvR18yNTYobWVtKQorVkNNUFNTXzEyOF8weDFDKG1lbSkKICAgYmVmb3JlCiAgICAgNjdhNmYzYWZiYTNiYjU2My45NmJjODdjZDhhMzc1ZGQ1LmI3NzY5OTJmM2FiMjE3NzEuNjU5OTI0OTFlYWI3NGRiZAogICAgIGMyZmQ4NjdmYTQzODcxZTMuOGQ0ODE1YmQyMzE2OWI0Yi4xMjdiODM0NTZjZWNiY2Y3LmYwODQ5MmJkMjY2Yjg0ZDgKQEAgLTQyNjAsMTEgKzQyNjAsMTEgQEAKICAgYWZ0ZXIKICAgICA2N2E2ZjNhZmJhM2JiNTYzLjk2YmM4N2NkOGEzNzVkZDUuYjc3Njk5MmYzYWIyMTc3MS42NTk5MjQ5MWVhYjc0ZGJkCiAgICAgYzJmZDg2N2ZhNDM4NzFlMy44ZDQ4MTViZDIzMTY5YjRiLjEyN2I4MzQ1NmNlY2JjZjcuZjA4NDkyYmQyNjZiODRkOAotICAgIGMxMTI0OGYzNTQ0NTY3NzUuNjMwZTI0NDYyYmIyNTU3OS42Mzk3MWU0YTk2ZjBmZDNiLjZiYzNjMThjYzQ1ODU5MTQKLSAgICA2N2E2ZjNhZmJhM2JiNTYzLjk2YmM4N2NkOGEzNzVkZDUuYjc3Njk5MmYzYWIyMTc3MS42NTk5MjQ5MWVhYjc0ZGJkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEyN2I4MzQ1NmNlY2JjZjcuZjA4NDkyYmRmZmZmZmZmZgorICAgIDQxYjFiM2Y3ZTY2ZjU0NDYuNzI1Y2FkZDQzZTk4YzcwYS44Nzk4ZTQyOGQzY2E5NzY3LjMxYTNhZDZhNWUwNzA3MWUKICAgICBhMDcwNTJjMzkwMDZjYmExCiAKLVZNT1ZEUUFfRXRvR18yNTYocmVnKQorVkNNUFNTXzEyOF8weDFDKHJlZykKICAgYmVmb3JlCiAgICAgMTM3NmFkMDNmN2UwZTE0YS4xZWE2NDU3ODc1YzJmNDgxLjE3N2NhZGQzZjc1MzJjYWEuNWE0ODU0Y2Q0MDg3NDZhNwogICAgIGU2MDFiOTk2MmUyMjg0YzUuMzRiYzc5NjAxZDQ4MDI1My5hZmJhMjFiMGYyNmZjMTA3LmI4NzRlNzI0ZjgzMmM1MjkKQEAgLTQyNzIsMTIgKzQyNzIsMTIgQEAKICAgICAxYmQ1ZDQ2NjdkMGI2NGRmLjdiN2ZiNzE5MmEyMjViNmIuMjNjNTUyYWYyMWZjNmFhMi44NTZmNmE5OGJiODIyNjlkCiAgICAgYWNkNzUyOGRmZDQwODBlOAogICBhZnRlcgotICAgIDEzNzZhZDAzZjdlMGUxNGEuMWVhNjQ1Nzg3NWMyZjQ4MS4xNzdjYWRkM2Y3NTMyY2FhLjVhNDg1NGNkNDA4NzQ2YTcKLSAgICA3NDVkNzJlOWQxNTZmMWJkLjVmYzBjYjlkZmIwZjNiZTguOTQ2NDA0ZDVjYzc5YzJjYS43ZGU4MWExOTE4ZDdkMTE3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFmYmEyMWIwZjI2ZmMxMDcuYjg3NGU3MjRmZmZmZmZmZgorICAgIGU2MDFiOTk2MmUyMjg0YzUuMzRiYzc5NjAxZDQ4MDI1My5hZmJhMjFiMGYyNmZjMTA3LmI4NzRlNzI0ZjgzMmM1MjkKICAgICA3NDVkNzJlOWQxNTZmMWJkLjVmYzBjYjlkZmIwZjNiZTguOTQ2NDA0ZDVjYzc5YzJjYS43ZGU4MWExOTE4ZDdkMTE3CiAgICAgMWJkNWQ0NjY3ZDBiNjRkZi43YjdmYjcxOTJhMjI1YjZiLjIzYzU1MmFmMjFmYzZhYTIuODU2ZjZhOThiYjgyMjY5ZAogICAgIGFjZDc1MjhkZmQ0MDgwZTgKLVZNT1ZEUUFfRXRvR18yNTYobWVtKQorVkNNUFNTXzEyOF8weDFDKG1lbSkKICAgYmVmb3JlCiAgICAgY2VlYTRlZTVmYjFkOWEyMy4zNmI3ZGM3YmNlY2ExOWQ2LjY0YzNiYWMyYzc4ZTFkMDkuYjgyODA4YWI4Yjg0ZjYzOQogICAgIGM3NzZkYjhhZDEyMzMxN2MuMjA0ZDg0OTM1ZjIxNGI0Zi5mNjU4NGY4M2VlNWUzZWVkLmFmZGEyMDM0YTk5ZWEyM2IKQEAgLTQyODcsMTEgKzQyODcsMTEgQEAKICAgYWZ0ZXIKICAgICBjZWVhNGVlNWZiMWQ5YTIzLjM2YjdkYzdiY2VjYTE5ZDYuNjRjM2JhYzJjNzhlMWQwOS5iODI4MDhhYjhiODRmNjM5CiAgICAgYzc3NmRiOGFkMTIzMzE3Yy4yMDRkODQ5MzVmMjE0YjRmLmY2NTg0ZjgzZWU1ZTNlZWQuYWZkYTIwMzRhOTllYTIzYgotICAgIDczNDU3MzY5OWE2MDAxMWMuMzdlNGNhMTljZDliMzdmNS4wZDBjZjI0OGI5OWU3YTQ0LjY0Mjc5OGI1MTVkNWFhNTYKLSAgICBjZWVhNGVlNWZiMWQ5YTIzLjM2YjdkYzdiY2VjYTE5ZDYuNjRjM2JhYzJjNzhlMWQwOS5iODI4MDhhYjhiODRmNjM5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY2NTg0ZjgzZWU1ZTNlZWQuYWZkYTIwMzRmZmZmZmZmZgorICAgIGFlMjQ5NDZmNzNkZmM2MzIuZDVjOGE5N2JiM2M1MTk3NS44NWFhMWZmZDQ3NWI4ZDNhLjMzNWI2YjljNmJiNjQ5MzMKICAgICA3OGMyOTU1NDQ4Y2JiYzgxCiAKLVZNT1ZEUUFfRXRvR18xMjgocmVnKQorVkNNUFNTXzEyOF8weDFEKHJlZykKICAgYmVmb3JlCiAgICAgOGZhODEzNDk0N2EyM2ZlYS41NGRmYjk4Njc2YWQzYmU4LjU4NDQxZTI0YWQyYTJjN2IuM2FmZDUyOGViMWEwMzJmYQogICAgIGQ0NThkZmU3MDRjNzBlMWEuNDE0MTVlOWNjMmQ1MWQ2YS4xYWE2MjM4MDU4NTZhZGIyLjA4ZDIwOGU3MTY3OTI3YjEKQEAgLTQyOTksMTIgKzQyOTksMTIgQEAKICAgICA1ODRhNTZjZjJiMjg3ZTgyLjVmMmUxOTcyOWY2NDE3ODUuY2Y0N2QyMDIyZjM1ZTk2Ni41ZTMyZWFhMTNhMTllYmIyCiAgICAgOWY1NTBlZGIzM2Y3MzM1NQogICBhZnRlcgotICAgIDhmYTgxMzQ5NDdhMjNmZWEuNTRkZmI5ODY3NmFkM2JlOC41ODQ0MWUyNGFkMmEyYzdiLjNhZmQ1MjhlYjFhMDMyZmEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzkzOGI2ZmI0ZmQ2ZDhjNy5jYmY1YmNmNDhmZjMyNThhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFhYTYyMzgwNTg1NmFkYjIuMDhkMjA4ZTdmZmZmZmZmZgorICAgIGQ0NThkZmU3MDRjNzBlMWEuNDE0MTVlOWNjMmQ1MWQ2YS4xYWE2MjM4MDU4NTZhZGIyLjA4ZDIwOGU3MTY3OTI3YjEKICAgICBhMzFmZjc5YTFkYzU2NGJlLjUxMTgwMDljNzE2MzI4ZTUuNzkzOGI2ZmI0ZmQ2ZDhjNy5jYmY1YmNmNDhmZjMyNThhCiAgICAgNTg0YTU2Y2YyYjI4N2U4Mi41ZjJlMTk3MjlmNjQxNzg1LmNmNDdkMjAyMmYzNWU5NjYuNWUzMmVhYTEzYTE5ZWJiMgogICAgIDlmNTUwZWRiMzNmNzMzNTUKLVZNT1ZEUUFfRXRvR18xMjgobWVtKQorVkNNUFNTXzEyOF8weDFEKG1lbSkKICAgYmVmb3JlCiAgICAgNjkyOWE1OGM5NTlhYmE5ZS40ZjIzZjlmMGNjN2M5NzEyLjQ5NTAyNzBhNjllM2E3NzYuNzkyMDczZmY5NGZmMWIzYQogICAgIDk4N2MyOWEyN2QwZDNjYjkuZTRmNmRhNmI5YzRlZWQxOS5lYTRhYTY1MGVhZWM5NGUyLmQ0MGM5NjYwMTljMWFiZWYKQEAgLTQzMTQsMTEgKzQzMTQsMTEgQEAKICAgYWZ0ZXIKICAgICA2OTI5YTU4Yzk1OWFiYTllLjRmMjNmOWYwY2M3Yzk3MTIuNDk1MDI3MGE2OWUzYTc3Ni43OTIwNzNmZjk0ZmYxYjNhCiAgICAgOTg3YzI5YTI3ZDBkM2NiOS5lNGY2ZGE2YjljNGVlZDE5LmVhNGFhNjUwZWFlYzk0ZTIuZDQwYzk2NjAxOWMxYWJlZgotICAgIDA3MTgxODA4MDY1Yzc0ZDQuNzIxMWY3YWEzNjI5YmE0My4xZWU4MTAzMDNmOGM5OWY4LjNhNWEzNjhmNWEwNmQ1MzMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDk1MDI3MGE2OWUzYTc3Ni43OTIwNzNmZjk0ZmYxYjNhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVhNGFhNjUwZWFlYzk0ZTIuZDQwYzk2NjBmZmZmZmZmZgorICAgIDk0Y2FlZWFhNGM5NDFmMTkuNTdiZjRiMWIzNjlhM2IzZC5jMGY2ZTI5NzgzY2U3NGUyLjA4NTU0ZmZhZjQ1YWQ0YWYKICAgICA5YjQ4ZGQwYjgyNGFlNTEyCiAKLVZNT1ZEUUFfRXRvR18xMjgocmVnKQorVkNNUFNTXzEyOF8weDFEKHJlZykKICAgYmVmb3JlCiAgICAgNGQ4MWRjMzBhMDYxNDQwNi4xOTVlMjU3NDZjYzBmOWI0LmVlNGJkMjI5MzkyY2FiYjMuYWUzZjk5NmZkM2JmZGZjZAogICAgIDdiNGE0OWQ0ZWMyYjJkMzguNzRhMDNiNTI4MWVjYmVkMi45MzAyODk0MGRiNmI0ODUwLmMyOTFiMGE1NGE2OTk2ZTQKQEAgLTQzMjYsMTIgKzQzMjYsMTIgQEAKICAgICBiYmJlNTk0OTc3MGE4YjA0LjE4NWRmMGZhZmQ3NmY3NDYuNzYyMTczMzk2OTIxZjNiMi5kMDdiZWZkZDFmMWVkYzQ4CiAgICAgODJhYzBmYjViNTQwZTJlZQogICBhZnRlcgotICAgIDRkODFkYzMwYTA2MTQ0MDYuMTk1ZTI1NzQ2Y2MwZjliNC5lZTRiZDIyOTM5MmNhYmIzLmFlM2Y5OTZmZDNiZmRmY2QKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTEzMDZhY2NiN2UzNGNjMS5kYWI2YTMyNjA1ZGE1NzU0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkzMDI4OTQwZGI2YjQ4NTAuYzI5MWIwYTVmZmZmZmZmZgorICAgIDdiNGE0OWQ0ZWMyYjJkMzguNzRhMDNiNTI4MWVjYmVkMi45MzAyODk0MGRiNmI0ODUwLmMyOTFiMGE1NGE2OTk2ZTQKICAgICA4MWYwMWU2M2ZmMzVkYjUzLjgwNWNhYTMwYTgyNTI5OWYuYTEzMDZhY2NiN2UzNGNjMS5kYWI2YTMyNjA1ZGE1NzU0CiAgICAgYmJiZTU5NDk3NzBhOGIwNC4xODVkZjBmYWZkNzZmNzQ2Ljc2MjE3MzM5NjkyMWYzYjIuZDA3YmVmZGQxZjFlZGM0OAogICAgIDgyYWMwZmI1YjU0MGUyZWUKLVZNT1ZEUUFfRXRvR18xMjgobWVtKQorVkNNUFNTXzEyOF8weDFEKG1lbSkKICAgYmVmb3JlCiAgICAgY2ExNDdlOWNlMjRjMjQ2Zi44NTAyZjVmMmYwMzY3OWY2LjFhNzA4OTljOWFlY2U0ZjQuNmQyMTlmZjM4ZWIwN2JjZQogICAgIDg2ODFiYjdkYzI0ZTYwZmEuM2IwN2VmY2IwNTQ2ZTBkNi42MDYyZWYwMzllOTFhYmQ1LmUxN2NlYjY2YzExZDFlYzIKQEAgLTQzNDEsMTEgKzQzNDEsMTEgQEAKICAgYWZ0ZXIKICAgICBjYTE0N2U5Y2UyNGMyNDZmLjg1MDJmNWYyZjAzNjc5ZjYuMWE3MDg5OWM5YWVjZTRmNC42ZDIxOWZmMzhlYjA3YmNlCiAgICAgODY4MWJiN2RjMjRlNjBmYS4zYjA3ZWZjYjA1NDZlMGQ2LjYwNjJlZjAzOWU5MWFiZDUuZTE3Y2ViNjZjMTFkMWVjMgotICAgIDkwYmQzZjQ0NzI1MzUwYjguMzkxODQyM2U1MmM1ZmU1MC5jN2ZkYTAxOTIyNzQwOTE0LjMwN2Q1MWZlOWZmMzE5MzkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWE3MDg5OWM5YWVjZTRmNC42ZDIxOWZmMzhlYjA3YmNlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwNjJlZjAzOWU5MWFiZDUuZTE3Y2ViNjYwMDAwMDAwMAorICAgIGM2OTY4N2RkMGU2NmIwZDguZGI4MmU5Yjk3NDQwMGQwZi4yYzBkMTdjYzQ1OWViYWRkLmI0NzFjZjI4YzNiZWE3ZTAKICAgICBjYmE0NjA0ZWNhMGIwNTYyCiAKLVZNT1ZEUUFfRXRvR18xMjgocmVnKQorVkNNUFNTXzEyOF8weDFEKHJlZykKICAgYmVmb3JlCiAgICAgY2Y2MjAwZGU0ZjY1NmY2Yy4wMmQ2MTAzNWIxOTQzZTg0LjdkOTFlMmE2MDc0MTQ5YzAuNjk2MGQwMDYyMDFkN2E1ZQogICAgIDFkZjdhYzQzZWY1ODIxYWEuMjE0YTU1MzY3N2U3YjRlOS43YjkxMjk3M2E2NTZmMDBlLjViYzE0N2I1ZDJmYzA0YzAKQEAgLTQzNTMsMTIgKzQzNTMsMTIgQEAKICAgICAwOGQ1MTQzYmVkM2I0YzcwLjc5ZmQwNGU3ZGUzMjRiOGMuZmI5MzhkNWE3OWViNmEzMy5jZmRiNjExZjI0MGI2OWRlCiAgICAgMDgyZGZiYjJmZTU0YmJmMQogICBhZnRlcgotICAgIGNmNjIwMGRlNGY2NTZmNmMuMDJkNjEwMzViMTk0M2U4NC43ZDkxZTJhNjA3NDE0OWMwLjY5NjBkMDA2MjAxZDdhNWUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzFjZWI4OGJlZDBiM2NhNi5kZmZiZjljNDc0NDgxNTMyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdiOTEyOTczYTY1NmYwMGUuNWJjMTQ3YjUwMDAwMDAwMAorICAgIDFkZjdhYzQzZWY1ODIxYWEuMjE0YTU1MzY3N2U3YjRlOS43YjkxMjk3M2E2NTZmMDBlLjViYzE0N2I1ZDJmYzA0YzAKICAgICAxMmFmNWVlODQ1NzE1N2M3LmZmYmVkMmNkN2Q2ZWNmMzIuMzFjZWI4OGJlZDBiM2NhNi5kZmZiZjljNDc0NDgxNTMyCiAgICAgMDhkNTE0M2JlZDNiNGM3MC43OWZkMDRlN2RlMzI0YjhjLmZiOTM4ZDVhNzllYjZhMzMuY2ZkYjYxMWYyNDBiNjlkZQogICAgIDA4MmRmYmIyZmU1NGJiZjEKLVZNT1ZEUUFfRXRvR18xMjgobWVtKQorVkNNUFNTXzEyOF8weDFEKG1lbSkKICAgYmVmb3JlCiAgICAgNjZiZDQzNjkxZDJjYzk5Ni41ZGI3YzlhNzg0NDIzZDUxLjY5ZDU2NTZlYjc0MWUzMjIuMzUyZWEzNGJlNTgyYjU2MwogICAgIGM1NTdiNjMwOWRhMTRjZmEuNmI5Zjc5OThhNjEzNjUxNS5hYzEwNzM1MDIzYTY1NDIxLjNiZTlmNmNjY2U1YzVhZGYKQEAgLTQzNjgsMTEgKzQzNjgsMTEgQEAKICAgYWZ0ZXIKICAgICA2NmJkNDM2OTFkMmNjOTk2LjVkYjdjOWE3ODQ0MjNkNTEuNjlkNTY1NmViNzQxZTMyMi4zNTJlYTM0YmU1ODJiNTYzCiAgICAgYzU1N2I2MzA5ZGExNGNmYS42YjlmNzk5OGE2MTM2NTE1LmFjMTA3MzUwMjNhNjU0MjEuM2JlOWY2Y2NjZTVjNWFkZgotICAgIDAyYzdjZWY0OWJiZTAzNDguOGZkYTIxN2JlZTM5MDI2OC4xZTdiYTk3ODNmNmU1YWI1LjY4MTE4MzQ5Y2YwNjk1NTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjlkNTY1NmViNzQxZTMyMi4zNTJlYTM0YmU1ODJiNTYzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFjMTA3MzUwMjNhNjU0MjEuM2JlOWY2Y2NmZmZmZmZmZgorICAgIGY3ZDgwOTlmMzM5MGE4YWQuMjViNGJjYmFmODQwNGVmNy45YmUyODRkMjI2YTRiMDA5LjFhZjI0NDJjODUwYmEyNzIKICAgICBhY2Q4MzdlMjhiZjhiY2RmCiAKLVZNT1ZEUVVfRXRvR18xMjgocmVnKQorVkNNUFNTXzEyOF8weDFFKHJlZykKICAgYmVmb3JlCiAgICAgN2EwZjU3ZDg3ZTU4MjA0YS44MTU3ZTIxZjgwMjJmODU1LjhhNzg0NmMyNjFiNTg1NmUuZmYxMTdlNGFmNTU0MTM0YQogICAgIGRmZTJhMDc4ZjliNzBhNWYuN2MxMWQ2NWU5ZTgwYWY2Yi4xODc0YmIwMGM1MjNlNTc5LjI2ZDQxNWNjYzc4YTNmYTMKQEAgLTQzODAsMTIgKzQzODAsMTIgQEAKICAgICBlMjkwOWY2YWY5YTQ1ZjM1LjM1NjBmYmNlYmZkMTQxOTMuMjI0MDU3Y2FlYjFiMGJmOC4yZDQ1MDc5ZWU2YmJlMTUwCiAgICAgYzU4YjVhYzY2YWNjY2ZmYgogICBhZnRlcgotICAgIDdhMGY1N2Q4N2U1ODIwNGEuODE1N2UyMWY4MDIyZjg1NS44YTc4NDZjMjYxYjU4NTZlLmZmMTE3ZTRhZjU1NDEzNGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmNmMjE3ZGViZTE2YThjMy5lY2Y3YzQ0NGI5NTNmMDQxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE4NzRiYjAwYzUyM2U1NzkuMjZkNDE1Y2MwMDAwMDAwMAorICAgIGRmZTJhMDc4ZjliNzBhNWYuN2MxMWQ2NWU5ZTgwYWY2Yi4xODc0YmIwMGM1MjNlNTc5LjI2ZDQxNWNjYzc4YTNmYTMKICAgICAzOTllMGYzMDk5YTJiNmM5LmM0ZDA1ZjRhYWFiNzg5MWMuMmNmMjE3ZGViZTE2YThjMy5lY2Y3YzQ0NGI5NTNmMDQxCiAgICAgZTI5MDlmNmFmOWE0NWYzNS4zNTYwZmJjZWJmZDE0MTkzLjIyNDA1N2NhZWIxYjBiZjguMmQ0NTA3OWVlNmJiZTE1MAogICAgIGM1OGI1YWM2NmFjY2NmZmIKLVZNT1ZEUVVfRXRvR18xMjgobWVtKQorVkNNUFNTXzEyOF8weDFFKG1lbSkKICAgYmVmb3JlCiAgICAgOTA5NTNhYTk2Mjk0NzY2Zi4zODAyNGI5NGI1NDk0MjRmLmFiOGYyNWQ2ZmFkZDk0ZmQuNTZhODc2MmZlNmJkNGFjNgogICAgIDZhMmYyMjMxZWExZjkyZDcuOTY0MDEyMTk2YTFkOWJjMi4wMjI4NTk0ZTc2ZTQzZTg1LjI0Nzc3MDc5NGI4OGEwZDYKQEAgLTQzOTUsMTEgKzQzOTUsMTEgQEAKICAgYWZ0ZXIKICAgICA5MDk1M2FhOTYyOTQ3NjZmLjM4MDI0Yjk0YjU0OTQyNGYuYWI4ZjI1ZDZmYWRkOTRmZC41NmE4NzYyZmU2YmQ0YWM2CiAgICAgNmEyZjIyMzFlYTFmOTJkNy45NjQwMTIxOTZhMWQ5YmMyLjAyMjg1OTRlNzZlNDNlODUuMjQ3NzcwNzk0Yjg4YTBkNgotICAgIDJmMjU4ZTRjMWQ3N2RlNjAuNTc5OGVkNjViNGFkYTUzYi4xNmY2MTQyMjUwZjRmYTU5LmU4Zjg0MTEzYjcwOTRhZDcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWI4ZjI1ZDZmYWRkOTRmZC41NmE4NzYyZmU2YmQ0YWM2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyMjg1OTRlNzZlNDNlODUuMjQ3NzcwNzlmZmZmZmZmZgorICAgIGJiNDNmYWU1MTdhYTE3MzYuZDk1NWRhZTQyZTg1OWQ2NS5jMmM2ZDAzZWEzMTk4NWEyLmZlNzllNTZiYzVjYjg0NzMKICAgICBjMjQ0NTllZDExNWI4OTU2CiAKLVZNT1ZEUVVfRXRvR18xMjgocmVnKQorVkNNUFNTXzEyOF8weDFFKHJlZykKICAgYmVmb3JlCiAgICAgOTBhNzk4MDMzOTQ0OTcyZC5lYTU0ZTNlOGY1YzRmOTg0Ljc2YzJkMzAyNzQyZmJmZWQuZTQ2NDBiOGU4YzVkOWI4ZgogICAgIGM0ZWM5ZTFhZDYxMmU4YTQuOTcyNWMzNDFkMmNmM2Y3Ni44YjJjZDYyYzIzMzk0NzdlLjU3OWM0MGZmMjZjZWY3NGEKQEAgLTQ0MDcsMTIgKzQ0MDcsMTIgQEAKICAgICBjZDRmZjBmY2U1OGU0NTIxLmUwMzg1ZGE1ZmJlZWVhZmEuOGUyN2U4NGYyYTliNzc2ZS45ZjA5ODlmMGRmNjU3NWRiCiAgICAgMmRkNzk1NDgzNWEzMGQwYQogICBhZnRlcgotICAgIDkwYTc5ODAzMzk0NDk3MmQuZWE1NGUzZThmNWM0Zjk4NC43NmMyZDMwMjc0MmZiZmVkLmU0NjQwYjhlOGM1ZDliOGYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzVkZmRmY2NkNjJlNzBjNS5mNzNhZWM3YjhlNzg1N2ZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhiMmNkNjJjMjMzOTQ3N2UuNTc5YzQwZmZmZmZmZmZmZgorICAgIGM0ZWM5ZTFhZDYxMmU4YTQuOTcyNWMzNDFkMmNmM2Y3Ni44YjJjZDYyYzIzMzk0NzdlLjU3OWM0MGZmMjZjZWY3NGEKICAgICBiYTYwNjc5Zjg2NTFiODY3LmEwODMxOGRjY2JkOWE2M2EuNzVkZmRmY2NkNjJlNzBjNS5mNzNhZWM3YjhlNzg1N2ZmCiAgICAgY2Q0ZmYwZmNlNThlNDUyMS5lMDM4NWRhNWZiZWVlYWZhLjhlMjdlODRmMmE5Yjc3NmUuOWYwOTg5ZjBkZjY1NzVkYgogICAgIDJkZDc5NTQ4MzVhMzBkMGEKLVZNT1ZEUVVfRXRvR18xMjgobWVtKQorVkNNUFNTXzEyOF8weDFFKG1lbSkKICAgYmVmb3JlCiAgICAgN2M2ZThiNzFhZDNlZGRiNy41YjA0MzQ5ZjhlNTRjOTdlLjMzMTAwZjg4N2YxOGM2ZTIuMzM1MGVmMjJiYTBiOTgyNAogICAgIDY3OWJlNzU2NjM0MTlmMGYuYmZjZDJmZjIxZDMwODAyYi43NGQ5YTg3MTczNjVmODFmLmMxYTZlZmIwMjMwYTBlOTQKQEAgLTQ0MjIsMTEgKzQ0MjIsMTEgQEAKICAgYWZ0ZXIKICAgICA3YzZlOGI3MWFkM2VkZGI3LjViMDQzNDlmOGU1NGM5N2UuMzMxMDBmODg3ZjE4YzZlMi4zMzUwZWYyMmJhMGI5ODI0CiAgICAgNjc5YmU3NTY2MzQxOWYwZi5iZmNkMmZmMjFkMzA4MDJiLjc0ZDlhODcxNzM2NWY4MWYuYzFhNmVmYjAyMzBhMGU5NAotICAgIGNjMmEyNWUzNzJiODEwM2UuNTVmNGRkNjMyZmFjYThkNC44MTVlYTY0Y2YxZTEzYWRkLjkyNzRlNDY0MDAyNTE3NjkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzMxMDBmODg3ZjE4YzZlMi4zMzUwZWYyMmJhMGI5ODI0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc0ZDlhODcxNzM2NWY4MWYuYzFhNmVmYjBmZmZmZmZmZgorICAgIDg2ZTdjMjA0ZjZhZmViNmYuNzhjNzNhNWQ2MDU3N2IyNC4zNDZhODQwNjE3OTY0ODQ3LjAzMDdjYWFjZWVlN2VjNTAKICAgICA3MGFiOWVmMzg4ZGRjY2Y1CiAKLVZNT1ZEUVVfRXRvR18xMjgocmVnKQorVkNNUFNTXzEyOF8weDFFKHJlZykKICAgYmVmb3JlCiAgICAgMzVhYzVhYTU2YjkxZjEwMy43MDllMzlhNTBjMzNlZGNmLjg2OTA0MzRjNGJiYTM2YzguNmJjYWJlOGEwMTkzZTA4YQogICAgIGFmNTZmYzJlMzI5MTk4MjcuNjgxYTA2YjJjZjRmZDI4OS5kYTliZjM5YzhjNjMxNTZjLjAwNGFkMWMzY2FlMWJjZDIKQEAgLTQ0MzQsMTIgKzQ0MzQsMTIgQEAKICAgICAyZGQ0ZTA3NmRkYTM1YzVmLmVlOTU5M2MxY2U4MDM1YmQuYzNhYzM4MGY4MmI1MmQ2Mi5iOGRhNmUwOTZiYTUzMjFlCiAgICAgOTM4MmYxZWQ3YTMyNDU3YwogICBhZnRlcgotICAgIDM1YWM1YWE1NmI5MWYxMDMuNzA5ZTM5YTUwYzMzZWRjZi44NjkwNDM0YzRiYmEzNmM4LjZiY2FiZThhMDE5M2UwOGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2YzNjQ2YjljMGRkNTNiYi5kMWI2Mzc5ZjhmOGU5OTRhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRhOWJmMzljOGM2MzE1NmMuMDA0YWQxYzMwMDAwMDAwMAorICAgIGFmNTZmYzJlMzI5MTk4MjcuNjgxYTA2YjJjZjRmZDI4OS5kYTliZjM5YzhjNjMxNTZjLjAwNGFkMWMzY2FlMWJjZDIKICAgICAzOGY1ODBmYTc5NjlmZDBjLjQ4MjhhNTE3NWMwZjU2Y2EuY2YzNjQ2YjljMGRkNTNiYi5kMWI2Mzc5ZjhmOGU5OTRhCiAgICAgMmRkNGUwNzZkZGEzNWM1Zi5lZTk1OTNjMWNlODAzNWJkLmMzYWMzODBmODJiNTJkNjIuYjhkYTZlMDk2YmE1MzIxZQogICAgIDkzODJmMWVkN2EzMjQ1N2MKLVZNT1ZEUVVfRXRvR18xMjgobWVtKQorVkNNUFNTXzEyOF8weDFFKG1lbSkKICAgYmVmb3JlCiAgICAgM2M3OTNkMzdkOTQyOGM4ZS5lYTQxMWEwY2ZhY2VmMGNjLjM0MmI0YTlhNDJhZDJhOGYuMTA0OGM2MGI2Zjc2ZGYwYwogICAgIDkxOGNjY2QzYTRlMGMzODAuY2I4NjI5Mjk2YjczZjZmZS5mN2I2NDg5MGQzYTNmMjZjLjE0NThlYjE3MjJhY2E1NjYKQEAgLTQ0NDksMTEgKzQ0NDksMTEgQEAKICAgYWZ0ZXIKICAgICAzYzc5M2QzN2Q5NDI4YzhlLmVhNDExYTBjZmFjZWYwY2MuMzQyYjRhOWE0MmFkMmE4Zi4xMDQ4YzYwYjZmNzZkZjBjCiAgICAgOTE4Y2NjZDNhNGUwYzM4MC5jYjg2MjkyOTZiNzNmNmZlLmY3YjY0ODkwZDNhM2YyNmMuMTQ1OGViMTcyMmFjYTU2NgotICAgIDZjODcxY2FkZjYxOWE4N2YuMmNmMDA5M2FjYzIwYTlhMi4xNDA0MDg4ZDllNmM0ODdmLjI5MjZhM2ExMzhlNGJhMWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzQyYjRhOWE0MmFkMmE4Zi4xMDQ4YzYwYjZmNzZkZjBjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY3YjY0ODkwZDNhM2YyNmMuMTQ1OGViMTcwMDAwMDAwMAorICAgIGFhMzZhOGIxZWJmOGY1YjcuNjljYmI2YWFiYTYwNDc2My42NWUwMDc3ZmJlMTdlYWY1LmFkZmZlYTEzNGNhOTViZDgKICAgICBmYTJlYmNkYmZiODdjNDQ5CiAKLVZNT1ZBUERfR3RvRV8xMjgocmVnKQorVk1PVkREVVBfWE1Nb3JNRU02NF90b19YTU0ocmVnKQogICBiZWZvcmUKICAgICA2ZTAxMTY2NGUwMGIzMDE5LjI3NjVlY2NjYTA4OTY3NTMuZGQ2MzJjZTRkMGJmMGFlZS5jNzE1YmY1MTUwYWQ5MmZhCiAgICAgNjNjM2YzMWE5N2MwZGRmNS5jMGUwNjVlODMwZDhiOTgwLmU2MDM2ODU2YWJjYTJmZWYuMTY3MGFlZWY2ZjNjZmNiOQpAQCAtNDQ2MSwxMiArNDQ2MSwxMiBAQAogICAgIDQ0NDIyNmJkZWVlZWU0ODAuYjFlOWUyZDg1M2UyZjEzYi4yNDhmMWY4ZjFlMTI4ZTAxLmVjYzgxZTNmYzY3MzBhMTYKICAgICAyYTVkOThjOTM1MzMyNTBkCiAgIGFmdGVyCi0gICAgNmUwMTE2NjRlMDBiMzAxOS4yNzY1ZWNjY2EwODk2NzUzLmRkNjMyY2U0ZDBiZjBhZWUuYzcxNWJmNTE1MGFkOTJmYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNjcwYWVlZjZmM2NmY2I5LjE2NzBhZWVmNmYzY2ZjYjkKICAgICA2M2MzZjMxYTk3YzBkZGY1LmMwZTA2NWU4MzBkOGI5ODAuZTYwMzY4NTZhYmNhMmZlZi4xNjcwYWVlZjZmM2NmY2I5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI0OGYxZjhmMWUxMjhlMDEuZWNjODFlM2ZjNjczMGExNgorICAgIDM2YmY0ZjY5YmQzMjA0ODkuNGY3MjhkZjNiOGYyYTk2OS5kZmY5NjU2YmU3MGNmMTExLjJmYmQ0ZjQ1MzdjZmU2NWUKICAgICA0NDQyMjZiZGVlZWVlNDgwLmIxZTllMmQ4NTNlMmYxM2IuMjQ4ZjFmOGYxZTEyOGUwMS5lY2M4MWUzZmM2NzMwYTE2CiAgICAgMmE1ZDk4YzkzNTMzMjUwZAotVk1PVkFQRF9HdG9FXzEyOChtZW0pCitWTU9WRERVUF9YTU1vck1FTTY0X3RvX1hNTShtZW0pCiAgIGJlZm9yZQogICAgIGM1NDgzOGQwYTIxYmYzNmYuZTc5ODc1ODJjNTdmYjc4Ni5jMjBmZGY4MjFlYjU0ZTIyLjExMTI5MzJlZWY2NzNmNmEKICAgICA5OTU0N2EzZTI4MzcyZjY3LjdjMGQzNjI0ZGU3MWJhNDguNWViMTAxZGYzNDc2N2I0OS4wMmNlYmJiNWYzOTc0M2Y5CkBAIC00NDc0LDEzICs0NDc0LDEzIEBACiAgICAgNWMwM2Q0MDNmMjNlZTRjYS5lYzgzMDNiMDQ4YWE0MGIwLmE3OTlhMDVmYjNmMzM4MDkuNWYyMDFjMjYwYWI5MzAzOAogICAgIDg0NGY0Y2VhNTRjMzkxM2YKICAgYWZ0ZXIKLSAgICBjNTQ4MzhkMGEyMWJmMzZmLmU3OTg3NTgyYzU3ZmI3ODYuNjE5YmMyZGFiMjMxMzVkZC41MjBmOTU4ZWM5MmVkNTVhCisgICAgYzU0ODM4ZDBhMjFiZjM2Zi5lNzk4NzU4MmM1N2ZiNzg2LmMyMGZkZjgyMWViNTRlMjIuMTExMjkzMmVlZjY3M2Y2YQogICAgIDk5NTQ3YTNlMjgzNzJmNjcuN2MwZDM2MjRkZTcxYmE0OC41ZWIxMDFkZjM0NzY3YjQ5LjAyY2ViYmI1ZjM5NzQzZjkKICAgICA4MjRlZGEwMWU0OTQ5NjIxLjVmZWQ2NzEwZDY1MTI5NzIuNjE5YmMyZGFiMjMxMzVkZC41MjBmOTU4ZWM5MmVkNTVhCi0gICAgNWMwM2Q0MDNmMjNlZTRjYS5lYzgzMDNiMDQ4YWE0MGIwLmE3OTlhMDVmYjNmMzM4MDkuNWYyMDFjMjYwYWI5MzAzOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMTEyOTMyZWVmNjczZjZhLjExMTI5MzJlZWY2NzNmNmEKICAgICA4NDRmNGNlYTU0YzM5MTNmCiAKLVZNT1ZBUERfR3RvRV8xMjgocmVnKQorVk1PVkREVVBfWE1Nb3JNRU02NF90b19YTU0ocmVnKQogICBiZWZvcmUKICAgICAxY2U2MjI0NTQzZDkzMzFkLjAzM2RlNTMyNmQzZmQ0OGUuODAxZDA3NzJkMTA4M2FhZC4wYzc2MTY1YTU0Yzc0MGZhCiAgICAgODUzMjk5YTI3Mjg2NTM3Yy41M2M4ODc3OTcxYTUyMzk5Ljc1MDU2ZGMwMGRmODU0MTUuNmNmZmEwYjhiMGI5MDhkYwpAQCAtNDQ4OCwxMiArNDQ4OCwxMiBAQAogICAgIDM2MTk1YTE3MDJkNmZkNmUuNWUwNjc0ZmY4NmNlY2UzMS5mNWYyNTRiNTBiYmJkN2Q5LjhkNDZlMTQ5MGEyOGNiMjEKICAgICAwNjliOTA1NDQxYmUzZWRjCiAgIGFmdGVyCi0gICAgMWNlNjIyNDU0M2Q5MzMxZC4wMzNkZTUzMjZkM2ZkNDhlLjgwMWQwNzcyZDEwODNhYWQuMGM3NjE2NWE1NGM3NDBmYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42Y2ZmYTBiOGIwYjkwOGRjLjZjZmZhMGI4YjBiOTA4ZGMKICAgICA4NTMyOTlhMjcyODY1MzdjLjUzYzg4Nzc5NzFhNTIzOTkuNzUwNTZkYzAwZGY4NTQxNS42Y2ZmYTBiOGIwYjkwOGRjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY1ZjI1NGI1MGJiYmQ3ZDkuOGQ0NmUxNDkwYTI4Y2IyMQorICAgIDE5N2ZhZDZmN2U1NjJkMDguMjg3MjM4YzQxYjdiOGQxNi4yODg4MzMwODk2MDVjOTk1LmEzMDFiYTYzZTNkNTRkZGEKICAgICAzNjE5NWExNzAyZDZmZDZlLjVlMDY3NGZmODZjZWNlMzEuZjVmMjU0YjUwYmJiZDdkOS44ZDQ2ZTE0OTBhMjhjYjIxCiAgICAgMDY5YjkwNTQ0MWJlM2VkYwotVk1PVkFQRF9HdG9FXzEyOChtZW0pCitWTU9WRERVUF9YTU1vck1FTTY0X3RvX1hNTShtZW0pCiAgIGJlZm9yZQogICAgIGVhY2M0MzcyYTNhMTYxMzguMzY0YzljMDY5YTkxZmU1YS5kMTRmYjUxNmNmYTlhMTE3LjM4OGZjYzMzMDVhN2I4OGQKICAgICAxNWE0NzY4ZDRjZGZmMTYxLjc3NjM3MGE4ZTMxMzZlNzcuNWQxYTc5ZjUxMTE4YzRmNC40ZGFhOThlZTIzNTRhOTVjCkBAIC00NTAxLDEzICs0NTAxLDEzIEBACiAgICAgYjA3ZDRkNmZlNjlhNDdjOC4yODcxYmFiNWY2OWU4NWY3LjMwNjY3N2JjZjJlNGU0NDEuNWQ4ZTE5Y2IzNDIyYTlmYwogICAgIDEwZWVjNmM1NjE1YzMxMjYKICAgYWZ0ZXIKLSAgICBlYWNjNDM3MmEzYTE2MTM4LjM2NGM5YzA2OWE5MWZlNWEuZGUzMzNhODg2OTI4ZjBmMy45MDkxYjM1MmZlNGZlNWYyCisgICAgZWFjYzQzNzJhM2ExNjEzOC4zNjRjOWMwNjlhOTFmZTVhLmQxNGZiNTE2Y2ZhOWExMTcuMzg4ZmNjMzMwNWE3Yjg4ZAogICAgIDE1YTQ3NjhkNGNkZmYxNjEuNzc2MzcwYThlMzEzNmU3Ny41ZDFhNzlmNTExMThjNGY0LjRkYWE5OGVlMjM1NGE5NWMKICAgICA2M2YxYTY5MzU5ODRhOTgyLjUzYWNkMDY5NzhlOTg2NzIuZGUzMzNhODg2OTI4ZjBmMy45MDkxYjM1MmZlNGZlNWYyCi0gICAgYjA3ZDRkNmZlNjlhNDdjOC4yODcxYmFiNWY2OWU4NWY3LjMwNjY3N2JjZjJlNGU0NDEuNWQ4ZTE5Y2IzNDIyYTlmYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zODhmY2MzMzA1YTdiODhkLjM4OGZjYzMzMDVhN2I4OGQKICAgICAxMGVlYzZjNTYxNWMzMTI2CiAKLVZNT1ZBUERfR3RvRV8xMjgocmVnKQorVk1PVkREVVBfWE1Nb3JNRU02NF90b19YTU0ocmVnKQogICBiZWZvcmUKICAgICAwNGZkYjZhZDIwODZiOTFjLmQ3MTVlOTBkMGQyZjg1NWUuNTBmZjJhZjlmOWJlYTViMS4yZTdmYTk3YmM4NTg1YTBhCiAgICAgOTcwN2U2ZWQwZTJlN2M4OC5iNjg1ZjU1OWVkNGYyMDcxLjI4YTIxYTlmMWJkNjIzNGMuYjY0OTRkYjMwODkxMGY3OQpAQCAtNDUxNSwxMiArNDUxNSwxMiBAQAogICAgIDA3M2JmMjJhZTQyNmE2NzkuMDgxZDRlYWM0MjVkNWNiZC41OTU2NmZjNTMyMWIyOWQ4LmQwMjRkZDNhMzU3ZjI1ZmIKICAgICAxYmNjYzA2MjU5NGRmZTY2CiAgIGFmdGVyCi0gICAgMDRmZGI2YWQyMDg2YjkxYy5kNzE1ZTkwZDBkMmY4NTVlLjUwZmYyYWY5ZjliZWE1YjEuMmU3ZmE5N2JjODU4NWEwYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNjQ5NGRiMzA4OTEwZjc5LmI2NDk0ZGIzMDg5MTBmNzkKICAgICA5NzA3ZTZlZDBlMmU3Yzg4LmI2ODVmNTU5ZWQ0ZjIwNzEuMjhhMjFhOWYxYmQ2MjM0Yy5iNjQ5NGRiMzA4OTEwZjc5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU5NTY2ZmM1MzIxYjI5ZDguZDAyNGRkM2EzNTdmMjVmYgorICAgIDI0NTg1MGYzYzZkZmI3MTkuMjg5OWVlM2Y5ZjA0ZDMyYy4wZGE2ODgxNWZiNzEzYjc2LmEzOTJlMDRlY2U5YWJmYmIKICAgICAwNzNiZjIyYWU0MjZhNjc5LjA4MWQ0ZWFjNDI1ZDVjYmQuNTk1NjZmYzUzMjFiMjlkOC5kMDI0ZGQzYTM1N2YyNWZiCiAgICAgMWJjY2MwNjI1OTRkZmU2NgotVk1PVkFQRF9HdG9FXzEyOChtZW0pCitWTU9WRERVUF9YTU1vck1FTTY0X3RvX1hNTShtZW0pCiAgIGJlZm9yZQogICAgIDVmNTYwNmIyNTcwZjA2MjguOWNmZWM4ZmQwNThkODU1NS4zNGRjOTM4YWVmNjM3NTRkLjY5MDBjYjFkNWY2MTI4MjEKICAgICA3NzhlMjkxNjRiZDJmOTZjLjNlZWJjY2RhYzVhMzhmNTguODZhNDM4YzdjNTI0ZGEwYi45OWVlOTg4ODFiY2U3NWZiCkBAIC00NTI4LDEzICs0NTI4LDEzIEBACiAgICAgOTczN2ZiY2E4Mjg3OGUyYy4xZTc2NTM1ZjhmMDUxNzg2LjExN2E5MzBhNTUwNDdjYmIuY2FjOTc3NDdiNjRlZTgxNAogICAgIDgyNGU3ZjczY2M3OTg2YWIKICAgYWZ0ZXIKLSAgICA1ZjU2MDZiMjU3MGYwNjI4LjljZmVjOGZkMDU4ZDg1NTUuZGMzZmI5NGRkZGFiNDkyMC40NjZkZDM3MjA0ZWU0YjEyCisgICAgNWY1NjA2YjI1NzBmMDYyOC45Y2ZlYzhmZDA1OGQ4NTU1LjM0ZGM5MzhhZWY2Mzc1NGQuNjkwMGNiMWQ1ZjYxMjgyMQogICAgIDc3OGUyOTE2NGJkMmY5NmMuM2VlYmNjZGFjNWEzOGY1OC44NmE0MzhjN2M1MjRkYTBiLjk5ZWU5ODg4MWJjZTc1ZmIKICAgICA0MTQwYTc3YTUwYTA5MjVlLjRiNGZmYzJjYmVmMTAxMmYuZGMzZmI5NGRkZGFiNDkyMC40NjZkZDM3MjA0ZWU0YjEyCi0gICAgOTczN2ZiY2E4Mjg3OGUyYy4xZTc2NTM1ZjhmMDUxNzg2LjExN2E5MzBhNTUwNDdjYmIuY2FjOTc3NDdiNjRlZTgxNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42OTAwY2IxZDVmNjEyODIxLjY5MDBjYjFkNWY2MTI4MjEKICAgICA4MjRlN2Y3M2NjNzk4NmFiCiAKLVZNT1ZBUERfR3RvRV8yNTYocmVnKQorVk1PVkRfSVJFR29yTUVNMzJfdG9fWE1NKHJlZykKICAgYmVmb3JlCiAgICAgY2E0OGVhNjJlM2ZiNjE4My41NzQwYTJmMmZlOTNhOTAwLjEyYWJjZGRmZDI2YTBjMDguMDAyMTQwZTk0OTNjMzAwNgogICAgIGZlMDJiMTgwOTY2MWI3NDkuNWIyODE2ZGZkZmNmOWUwNi44NTNjNjYxOTIzYWQxZDYxLjg2MDAzZWQ1ZDQ1ZTIwMmUKQEAgLTQ1NDIsMTIgKzQ1NDIsMTIgQEAKICAgICA5YWVhNDhmYTQxMDZiZjRlLmEzYmY1YWI0NDIwNzA5NWIuNTQ5ZWU2NjY2MWZhODM0Yy5jODk1MWI4OTIwOTFhOGMzCiAgICAgM2NlM2YxMjgxYWJhYjY4OAogICBhZnRlcgotICAgIGNhNDhlYTYyZTNmYjYxODMuNTc0MGEyZjJmZTkzYTkwMC4xMmFiY2RkZmQyNmEwYzA4LjAwMjE0MGU5NDkzYzMwMDYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDFhYmFiNjg4CiAgICAgZmUwMmIxODA5NjYxYjc0OS41YjI4MTZkZmRmY2Y5ZTA2Ljg1M2M2NjE5MjNhZDFkNjEuODYwMDNlZDVkNDVlMjAyZQotICAgIDlhZWE0OGZhNDEwNmJmNGUuYTNiZjVhYjQ0MjA3MDk1Yi41NDllZTY2NjYxZmE4MzRjLmM4OTUxYjg5MjA5MWE4YzMKKyAgICA3YWNhZDIzYTgxMzZjMmE5LjgwYjlkNTdiNDI0NzJhNmIuZDE3NDFiNzcxZjU5ODYzZi44MGUyMDhiYzEyNzYwYTVlCiAgICAgOWFlYTQ4ZmE0MTA2YmY0ZS5hM2JmNWFiNDQyMDcwOTViLjU0OWVlNjY2NjFmYTgzNGMuYzg5NTFiODkyMDkxYThjMwogICAgIDNjZTNmMTI4MWFiYWI2ODgKLVZNT1ZBUERfR3RvRV8yNTYobWVtKQorVk1PVkRfSVJFR29yTUVNMzJfdG9fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgYjY5OTA4ODYxYmZlZjJkYS5iYWFmMGYyZTcyNWVlYWU0LjllMDgyMTc1ZmMxY2Y3MDEuNjgwN2M1NTM4NjFkNGYzNAogICAgIDEzODNkYjhkM2Y2ODE2ZTUuMzY2NTIzNDFhZmM5N2UxOS40ZjVmYTZhOThiOTFhZjhhLjZiZmJiM2E5Mjk0ZDI3YTQKQEAgLTQ1NTUsMTMgKzQ1NTUsMTMgQEAKICAgICBlNzIyYTY0YTYyZGUwOGQ0LmIyZDMyM2IzYmUwYWQ0MGEuM2U2NWRjMWY5YWNkNzBmMy5hOWIzYWUzZjViMDRlYWNiCiAgICAgOWUxMGIxNTgyMWE0NGRkYQogICBhZnRlcgotICAgIDMwNmRlNjJhYTMwNGRmZDQuNmE1NzgxOWU5NGQ0Yjg5Ny45MDhmNjYzZTBjNzNlZTIxLmI3YzZhZGQzZTYxNjQ3NDgKKyAgICBiNjk5MDg4NjFiZmVmMmRhLmJhYWYwZjJlNzI1ZWVhZTQuOWUwODIxNzVmYzFjZjcwMS42ODA3YzU1Mzg2MWQ0ZjM0CiAgICAgMTM4M2RiOGQzZjY4MTZlNS4zNjY1MjM0MWFmYzk3ZTE5LjRmNWZhNmE5OGI5MWFmOGEuNmJmYmIzYTkyOTRkMjdhNAogICAgIDMwNmRlNjJhYTMwNGRmZDQuNmE1NzgxOWU5NGQ0Yjg5Ny45MDhmNjYzZTBjNzNlZTIxLmI3YzZhZGQzZTYxNjQ3NDgKLSAgICBlNzIyYTY0YTYyZGUwOGQ0LmIyZDMyM2IzYmUwYWQ0MGEuM2U2NWRjMWY5YWNkNzBmMy5hOWIzYWUzZjViMDRlYWNiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4NjFkNGYzNAogICAgIDllMTBiMTU4MjFhNDRkZGEKIAotVk1PVkFQRF9HdG9FXzI1NihyZWcpCitWTU9WRF9JUkVHb3JNRU0zMl90b19YTU0ocmVnKQogICBiZWZvcmUKICAgICBmMDI3YjQ4YWQ2ODJhYzIwLjE1NzA5NWQ4OTkwMzRmMTAuNjkyMzA3ZWJjOGY3MGUyMC4zNWFkODQzODUxYWJmMDJjCiAgICAgZmM0NWIzNDExNjI4NDM0Yi45NjIxMzFiZjY0N2Y2ZWI2LmVkOTUyOGIyNGYyN2ExODIuNTEzM2RhNzU0ZTE5MmJmNwpAQCAtNDU2OSwxMiArNDU2OSwxMiBAQAogICAgIGIzYzY5MWVmYTQwMjA3ZjkuMDFkZjVkNGQyMmE4MjZlOS5jOTBhMTI5ZTQyODJjNGUxLjY5Mjk4MTBjODlkN2MyZjUKICAgICAxYzMwY2EzZGZlM2Y5NTgwCiAgIGFmdGVyCi0gICAgZjAyN2I0OGFkNjgyYWMyMC4xNTcwOTVkODk5MDM0ZjEwLjY5MjMwN2ViYzhmNzBlMjAuMzVhZDg0Mzg1MWFiZjAyYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwZmUzZjk1ODAKICAgICBmYzQ1YjM0MTE2Mjg0MzRiLjk2MjEzMWJmNjQ3ZjZlYjYuZWQ5NTI4YjI0ZjI3YTE4Mi41MTMzZGE3NTRlMTkyYmY3Ci0gICAgYjNjNjkxZWZhNDAyMDdmOS4wMWRmNWQ0ZDIyYTgyNmU5LmM5MGExMjllNDI4MmM0ZTEuNjkyOTgxMGM4OWQ3YzJmNQorICAgIDFmYjZhOGU5N2MyNDRkMDQuNDYwMmY1ZWRkZDVjMjJlZi45OTczODM3NGVlMjdjYWRmLjZmYzM1YWMzYWQyNGRkODEKICAgICBiM2M2OTFlZmE0MDIwN2Y5LjAxZGY1ZDRkMjJhODI2ZTkuYzkwYTEyOWU0MjgyYzRlMS42OTI5ODEwYzg5ZDdjMmY1CiAgICAgMWMzMGNhM2RmZTNmOTU4MAotVk1PVkFQRF9HdG9FXzI1NihtZW0pCitWTU9WRF9JUkVHb3JNRU0zMl90b19YTU0obWVtKQogICBiZWZvcmUKICAgICA2NGE1YjE0MzI5NjcxMzRlLjE1YzE2OWJkMmI0ZGFkZDYuYTM4NGU2Y2I0ZjZlMzdkMC5kOWE1ZDM5YWU2YzVjZDM0CiAgICAgMWQ1NWIyMDgyNTViZjg4YS5hMWYyMmNjMGFjOTE3YTQ3LjA5YmQwYjUzN2ZiYjExZDAuMjQ5MmMxZDU3NzdiMWY4NQpAQCAtNDU4MiwxMyArNDU4MiwxMyBAQAogICAgIDUyOTBmNDg0MDNkOWU2ZmUuYTgyYTY0MTcwZjM1N2M5Mi44YzFhMTkzMTVhMTcwZmM4LmRmOGUxNWI5Y2Q3MDkwZDAKICAgICAwNzM1NzMzYWNiYzgyODIyCiAgIGFmdGVyCi0gICAgMjMwYTRhN2EwZjI4MDA2MS5iM2E3ZDY2NWM0NWFhY2Y3LjBkNTY0OGQxY2Y5YTcwMTQuMDgxY2Q5YmM5MDMwZjc4MAorICAgIDY0YTViMTQzMjk2NzEzNGUuMTVjMTY5YmQyYjRkYWRkNi5hMzg0ZTZjYjRmNmUzN2QwLmQ5YTVkMzlhZTZjNWNkMzQKICAgICAxZDU1YjIwODI1NWJmODhhLmExZjIyY2MwYWM5MTdhNDcuMDliZDBiNTM3ZmJiMTFkMC4yNDkyYzFkNTc3N2IxZjg1CiAgICAgMjMwYTRhN2EwZjI4MDA2MS5iM2E3ZDY2NWM0NWFhY2Y3LjBkNTY0OGQxY2Y5YTcwMTQuMDgxY2Q5YmM5MDMwZjc4MAotICAgIDUyOTBmNDg0MDNkOWU2ZmUuYTgyYTY0MTcwZjM1N2M5Mi44YzFhMTkzMTVhMTcwZmM4LmRmOGUxNWI5Y2Q3MDkwZDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGU2YzVjZDM0CiAgICAgMDczNTczM2FjYmM4MjgyMgogCi1WTU9WQVBEX0d0b0VfMjU2KHJlZykKK1ZNT1ZEX0lSRUdvck1FTTMyX3RvX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIGRiNWRlZWFhMjZjNGY5MjIuODZiNTJjMTIxYjdhNjc4ZS5kYWM4ZDE0MTI3YWQyOWM1LjYxZDZmYTYwM2QzZmFiMTkKICAgICBiNjUyODI3NTc5ZWUzZjdiLjliNDQ2ZTEwNzYxODNmM2QuYTZjZDE5NTFhYjRlZWQzYy42YTU2Njg0ODkzMWQwMDMzCkBAIC00NTk2LDEyICs0NTk2LDEyIEBACiAgICAgZjVkMmU2Y2M3ODAxMWVlYS5kN2NlMDEwYzVmNzhlMmE2LjdjM2MyYmQwNjEzZGFkYTUuODVkMmQ4ZjcwOTJjYzQ3MAogICAgIDRmNjZkMjk2NjE3NGFiZWMKICAgYWZ0ZXIKLSAgICBkYjVkZWVhYTI2YzRmOTIyLjg2YjUyYzEyMWI3YTY3OGUuZGFjOGQxNDEyN2FkMjljNS42MWQ2ZmE2MDNkM2ZhYjE5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA2MTc0YWJlYwogICAgIGI2NTI4Mjc1NzllZTNmN2IuOWI0NDZlMTA3NjE4M2YzZC5hNmNkMTk1MWFiNGVlZDNjLjZhNTY2ODQ4OTMxZDAwMzMKLSAgICBmNWQyZTZjYzc4MDExZWVhLmQ3Y2UwMTBjNWY3OGUyYTYuN2MzYzJiZDA2MTNkYWRhNS44NWQyZDhmNzA5MmNjNDcwCisgICAgZjY2MDJiMDc2MGQ0MzhkOS42ZDA4MzY2YTJkYmUyOTM2LjY4ODUzOGIyMzRhNTA2YTMuODI2NmRlZDc3OGJkY2E0MQogICAgIGY1ZDJlNmNjNzgwMTFlZWEuZDdjZTAxMGM1Zjc4ZTJhNi43YzNjMmJkMDYxM2RhZGE1Ljg1ZDJkOGY3MDkyY2M0NzAKICAgICA0ZjY2ZDI5NjYxNzRhYmVjCi1WTU9WQVBEX0d0b0VfMjU2KG1lbSkKK1ZNT1ZEX0lSRUdvck1FTTMyX3RvX1hNTShtZW0pCiAgIGJlZm9yZQogICAgIGJjZWQ0ODlmOWRhNDNhZTAuMTFmNmFlMzA1ZDAyMmU1OC5iNzYyNGFlMjI1NTMyNmI4LjNlM2RlYzE3Y2JhMzIxZWUKICAgICBhODM0YjdmZWQ5YzYyZjc5LmE0MTY3ZjlmYWE2MmEzY2YuZTg5MDhkZDk5ZDVhYjA5OS4wOWQ1NzlmMzEwNjE5YzJiCkBAIC00NjA5LDEzICs0NjA5LDEzIEBACiAgICAgNmMzMzZkNmViZTEwMzY0OC5hMzdkMmM0ZmVkNzBiMDhiLmFkZTlmMmQ2MTIxZDhhNzcuMmZmYWU1MWI5YTFiOWEzMAogICAgIDQxMWZiYjNmMTcyZTk0NTAKICAgYWZ0ZXIKLSAgICBlZTA4OWE5ZjMwZTY0NGUyLjBiN2Y1NTg2ZmJhZGJiZmMuNDYyNDQ2ZGJlMzk5M2U3NS4zYjUwY2RkMWNjMDU1YjA4CisgICAgYmNlZDQ4OWY5ZGE0M2FlMC4xMWY2YWUzMDVkMDIyZTU4LmI3NjI0YWUyMjU1MzI2YjguM2UzZGVjMTdjYmEzMjFlZQogICAgIGE4MzRiN2ZlZDljNjJmNzkuYTQxNjdmOWZhYTYyYTNjZi5lODkwOGRkOTlkNWFiMDk5LjA5ZDU3OWYzMTA2MTljMmIKICAgICBlZTA4OWE5ZjMwZTY0NGUyLjBiN2Y1NTg2ZmJhZGJiZmMuNDYyNDQ2ZGJlMzk5M2U3NS4zYjUwY2RkMWNjMDU1YjA4Ci0gICAgNmMzMzZkNmViZTEwMzY0OC5hMzdkMmM0ZmVkNzBiMDhiLmFkZTlmMmQ2MTIxZDhhNzcuMmZmYWU1MWI5YTFiOWEzMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwY2JhMzIxZWUKICAgICA0MTFmYmIzZjE3MmU5NDUwCiAKLVZNT1ZBUFNfR3RvRV8xMjgocmVnKQorVk1PVlFfWE1NX01FTTY0KHJlZykKICAgYmVmb3JlCiAgICAgY2QwYjRkYTdkZWNhODYxNC5mZDgxYWM1N2EwNTFjMGQ3LmM2NWMwMTY4MWIzNmJlMjcuZjhhZDBjYjQ0N2YxNTBjYwogICAgIDJmMDk5NmMxOGI3YmFjMjcuN2NjMGQ0NDZmMWI0YTBiYS5kMTY3Y2YzYjIyOGIyMzdkLjA1M2EwZjYzOWQyMTRlOWYKQEAgLTQ2MjUsMTAgKzQ2MjUsMTAgQEAKICAgYWZ0ZXIKICAgICBjZDBiNGRhN2RlY2E4NjE0LmZkODFhYzU3YTA1MWMwZDcuYzY1YzAxNjgxYjM2YmUyNy5mOGFkMGNiNDQ3ZjE1MGNjCiAgICAgMmYwOTk2YzE4YjdiYWMyNy43Y2MwZDQ0NmYxYjRhMGJhLmQxNjdjZjNiMjI4YjIzN2QuMDUzYTBmNjM5ZDIxNGU5ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMDM1NDZjNDI5MTRkZDA1LmQxZTJjNmUxMWRjN2RkNzEKKyAgICBjMjY3OTJmOGJiY2U0MTM2LmM3YmI2MDI4Y2U0NTkwMWQuMjBlYzkyMzY5ZGZjMTkzOC5hZjVkN2FjZTMwYmEzZTFkCiAgICAgZTQ2ZjNlYjgwOTRlODNlYy5iOTNkY2NlNzUyMTE0YzJlLjEwMzU0NmM0MjkxNGRkMDUuZDFlMmM2ZTExZGM3ZGQ3MQogICAgIDQ5OTU3MTg4N2Y1NGU2YzgKLVZNT1ZBUFNfR3RvRV8xMjgobWVtKQorVk1PVlFfWE1NX01FTTY0KG1lbSkKICAgYmVmb3JlCiAgICAgZjE0MmY2YWY3MzZlMTY0ZS5mMDZlOTQ2ZDEyODhhY2Y2LjJkMTM5NDcxOTkyMzkyMTcuZmI4ZmU4NTE2MTVmYWI5MAogICAgIGE3YjRkMTQyMTUyMDI5MmUuNDFiMDkyODM3MjA3ZjgwMC4wMTA5MzViMGMxODcxYzA0LjNlNDY3MzQ5ZTE2YWJlODQKQEAgLTQ2MzYsMTMgKzQ2MzYsMTMgQEAKICAgICBhOTFiNzk1ZGQwN2RlOGFmLjI3MmM3NDgyYTQwNWVkYzEuMzU4NWVlMDIxZDc3ZWU5ZC4zY2ZhMzQyYTJjZWVhNjU5CiAgICAgYWY5MDYyZWIyZTdlZjI5MgogICBhZnRlcgotICAgIGYxNDJmNmFmNzM2ZTE2NGUuZjA2ZTk0NmQxMjg4YWNmNi4wZmViMjk5MmUzNGFhNzIyLjM1YTZlMzE4NDdjMDUzOGUKKyAgICBmMTQyZjZhZjczNmUxNjRlLmYwNmU5NDZkMTI4OGFjZjYuMmQxMzk0NzE5OTIzOTIxNy4zZTQ2NzM0OWUxNmFiZTg0CiAgICAgYTdiNGQxNDIxNTIwMjkyZS40MWIwOTI4MzcyMDdmODAwLjAxMDkzNWIwYzE4NzFjMDQuM2U0NjczNDllMTZhYmU4NAogICAgIDQ1Yjg3ZTJlN2Y3N2RiOTUuMzU4MTMzNjZjNDU3YTViNS4wZmViMjk5MmUzNGFhNzIyLjM1YTZlMzE4NDdjMDUzOGUKICAgICBhOTFiNzk1ZGQwN2RlOGFmLjI3MmM3NDgyYTQwNWVkYzEuMzU4NWVlMDIxZDc3ZWU5ZC4zY2ZhMzQyYTJjZWVhNjU5CiAgICAgYWY5MDYyZWIyZTdlZjI5MgogCi1WTU9WQVBTX0d0b0VfMTI4KHJlZykKK1ZNT1ZRX1hNTV9NRU02NChyZWcpCiAgIGJlZm9yZQogICAgIGVhYjI2YWM4ZTlmZTc0ZTUuYWRhNzNmYmMyMTQwMGJhNy43MmZmNGY0M2FmOWMwZGQyLjRkYTNmZmVjOGIxYmFmYTAKICAgICA0OWFlNDcyYmY4ZmE2OGZkLjJlMjg0YjM4OTFjYzAxYTkuNzQ0NGMyMTY4MGE4NDA5Mi4zNDEwZDkzYzQ4NDBhNDU4CkBAIC00NjUyLDEwICs0NjUyLDEwIEBACiAgIGFmdGVyCiAgICAgZWFiMjZhYzhlOWZlNzRlNS5hZGE3M2ZiYzIxNDAwYmE3LjcyZmY0ZjQzYWY5YzBkZDIuNGRhM2ZmZWM4YjFiYWZhMAogICAgIDQ5YWU0NzJiZjhmYTY4ZmQuMmUyODRiMzg5MWNjMDFhOS43NDQ0YzIxNjgwYTg0MDkyLjM0MTBkOTNjNDg0MGE0NTgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDg1NzVkOWVlNjUwZDNkMC5lMDBhZDRiZTIwNDMxYzk2CisgICAgMjhjZWY1ODJmN2ZkMGE4Ny4wOTZjMTliYzM5MmM4NWUzLjg3NDhjODY1YjRiNmM0YWQuYzc5OWY2ZGU3MGY1ODlmMAogICAgIGUzNWU3MDM3ODM5Mzk1MmUuMTgzZTI2MzMzODZjNTU3Zi4wODU3NWQ5ZWU2NTBkM2QwLmUwMGFkNGJlMjA0MzFjOTYKICAgICA1YzJmZWVjOTczMzgxNzczCi1WTU9WQVBTX0d0b0VfMTI4KG1lbSkKK1ZNT1ZRX1hNTV9NRU02NChtZW0pCiAgIGJlZm9yZQogICAgIDE4ZDRjMGU5ODZkZjM3YjUuZDZhY2I1YjgzNzQ4NDY5Zi4zODY5ZWM4YmE3OTgyYmE5LjU0YmQ3ZDJjYjIwNWE5YTcKICAgICBlZWM1YzYwYjc1NDUzNzg4LjVkMDNiZTcwYjBhOTU5ODYuNDZiYWU5YWZhNGJkYzM4ZS5jNWM2MjU3YWI1NWU4NGRkCkBAIC00NjYzLDEzICs0NjYzLDEzIEBACiAgICAgNWJiYTYwMDc1NDdiY2I5MC45N2ZhMTIzNTVmOWQ5NDY0Ljk3ZmU3NTBiYjcyMDJkMzguOGFlZmZhMGJjZjMyMzQxOAogICAgIDk1YTkxZjI1MWVjMzgyNzUKICAgYWZ0ZXIKLSAgICAxOGQ0YzBlOTg2ZGYzN2I1LmQ2YWNiNWI4Mzc0ODQ2OWYuMWNmZDk4OGI0YmU2ZGI1YS5iOWJkNTBmNjhiZTk5ZTFmCisgICAgMThkNGMwZTk4NmRmMzdiNS5kNmFjYjViODM3NDg0NjlmLjM4NjllYzhiYTc5ODJiYTkuYzVjNjI1N2FiNTVlODRkZAogICAgIGVlYzVjNjBiNzU0NTM3ODguNWQwM2JlNzBiMGE5NTk4Ni40NmJhZTlhZmE0YmRjMzhlLmM1YzYyNTdhYjU1ZTg0ZGQKICAgICBiYmNkN2QxYzVhNzRkNTE4LmQ0YWU4OWNiOGE0MTBhOGUuMWNmZDk4OGI0YmU2ZGI1YS5iOWJkNTBmNjhiZTk5ZTFmCiAgICAgNWJiYTYwMDc1NDdiY2I5MC45N2ZhMTIzNTVmOWQ5NDY0Ljk3ZmU3NTBiYjcyMDJkMzguOGFlZmZhMGJjZjMyMzQxOAogICAgIDk1YTkxZjI1MWVjMzgyNzUKIAotVk1PVkFQU19HdG9FXzEyOChyZWcpCitWTU9WUV9YTU1fTUVNNjQocmVnKQogICBiZWZvcmUKICAgICAzNzM1YmNiMTEzMmFjM2UyLmFhNTZlYmI4N2M2M2Q2MWMuMDEzNDUzMWFjZTQ3MzRiMy45Mzg5ZmQxYzA0NzY3NjU1CiAgICAgY2FkZmNjMTk0YWYzMzQwYS44NDZlOWExYWYxM2FiMWVhLjcwYTU0YWU2NzBjZTI2MjguZWM2YWFhYTg0ZmY0NzJkYwpAQCAtNDY3OSwxMCArNDY3OSwxMCBAQAogICBhZnRlcgogICAgIDM3MzViY2IxMTMyYWMzZTIuYWE1NmViYjg3YzYzZDYxYy4wMTM0NTMxYWNlNDczNGIzLjkzODlmZDFjMDQ3Njc2NTUKICAgICBjYWRmY2MxOTRhZjMzNDBhLjg0NmU5YTFhZjEzYWIxZWEuNzBhNTRhZTY3MGNlMjYyOC5lYzZhYWFhODRmZjQ3MmRjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNhNjQ0NmU0YzM5Y2VlMzMuMjU1YzY4ZTU0ZTlhNzFkYgorICAgIGFiZjU0YWNhNjBhODExOWEuYzZjZWVhMWJjYzBiMTkyMy4zZjljZjEwNmUzYmJhNTZmLjdlNmNmYTljYjRhN2RjZmEKICAgICAzNmMyMzUzMWYwZDc5NTNlLjRhNDI1NmE2MmJlM2NhZjYuY2E2NDQ2ZTRjMzljZWUzMy4yNTVjNjhlNTRlOWE3MWRiCiAgICAgYmQwNzcxNmUzOWQ5ZWRhYQotVk1PVkFQU19HdG9FXzEyOChtZW0pCitWTU9WUV9YTU1fTUVNNjQobWVtKQogICBiZWZvcmUKICAgICAyMjM3OGYyMjkyNzAwYjk0LmM3OTE4NmI4OTcwY2ZkYTEuZWQ5NTU5YTgyYWNkODA4ZC42YzQ4NDVlZWFiZmMzZDIwCiAgICAgMzBiODQwZWY3NDZjODhjNC5iYWFmM2JjZGYxZDI4NTZmLjhiOTU3MjBiZTRkNWY2MTQuODM5NmU4OGUzODY4Y2VlNApAQCAtNDY5MCwxMyArNDY5MCwxMyBAQAogICAgIGI3ZTI0ODgxNDVjMThmYTkuMzYwOGJkNGUyYjQxZTRmZi4yN2M3Y2ZhOGZiNzExNWE1LjdjOWIwZjQ1YWU5MWE0OWIKICAgICAxNmViOGEzM2QwNjc2MmU3CiAgIGFmdGVyCi0gICAgMjIzNzhmMjI5MjcwMGI5NC5jNzkxODZiODk3MGNmZGExLjAwMGMxYWJjNzYwOGU5YjguNjk5ODJkMzIwNTZiZGMyOQorICAgIDIyMzc4ZjIyOTI3MDBiOTQuYzc5MTg2Yjg5NzBjZmRhMS5lZDk1NTlhODJhY2Q4MDhkLjgzOTZlODhlMzg2OGNlZTQKICAgICAzMGI4NDBlZjc0NmM4OGM0LmJhYWYzYmNkZjFkMjg1NmYuOGI5NTcyMGJlNGQ1ZjYxNC44Mzk2ZTg4ZTM4NjhjZWU0CiAgICAgYzM1OGZmYzBmY2Q5MjA2Ny42YjY4NGVkYjk4YjU2OTU1LjAwMGMxYWJjNzYwOGU5YjguNjk5ODJkMzIwNTZiZGMyOQogICAgIGI3ZTI0ODgxNDVjMThmYTkuMzYwOGJkNGUyYjQxZTRmZi4yN2M3Y2ZhOGZiNzExNWE1LjdjOWIwZjQ1YWU5MWE0OWIKICAgICAxNmViOGEzM2QwNjc2MmU3CiAKLVZNT1ZBUFNfR3RvRV8yNTYocmVnKQorVk1PVkRRQV9HdG9FXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDk1ZDM5YTY4MDc3NzUxYjkuZTgyMTk4MWU2YzMyOTBiNS43N2RiODQ5MTQzMDMzMzE5LmRlOTIwYmI5OGYxYzM2MDcKICAgICA1M2ExM2M1MGVlNTBhZWJjLjMyZTI2OTgzOGMzOGUwYjguOGEyZDlkMTI3Zjg2OTI0ZS4wMDM5NGNkZDRmMTYwNzA5CkBAIC00NzA5LDcgKzQ3MDksNyBAQAogICAgIDAwMWIyM2U5M2Q4NmEyMDguODExYTgzNTYyOTJmNWQ1MS45NjdkYmE3Y2NjMDA2ZmJhLmY1NGFjYjBhYzIyNGFiOWUKICAgICAwMDFiMjNlOTNkODZhMjA4LjgxMWE4MzU2MjkyZjVkNTEuOTY3ZGJhN2NjYzAwNmZiYS5mNTRhY2IwYWMyMjRhYjllCiAgICAgODA0YzAxZWNhYzUxZjc4YQotVk1PVkFQU19HdG9FXzI1NihtZW0pCitWTU9WRFFBX0d0b0VfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZTU1YTJiOTAzMmZjZTNjNi5hNzVmNjA3MmRkZmRiMGE4LjNkMjljNDliZGUzYTAxM2YuNDcxM2I1M2MxNzBmNjU0YQogICAgIDAyNDBjNWUyNmYzMTJjN2YuZmRiODFlNWY5ZTZhMWMyOS44M2U5NzY1OWZjMDhlNGQ1LjNhNThmM2VhZjQxMDVhYTUKQEAgLTQ3MjMsNyArNDcyMyw3IEBACiAgICAgZDBjNDNhNDE4MDZiYzQxNy4yYWQ4MGYxMWYxNWNmZDgxLjE5YjAyMmVjZTQyMzU2YTMuNTYxZTJhYmNkNjE1MzU2ZgogICAgIDM2MzgxYWI4MTIzMTkyMzUKIAotVk1PVkFQU19HdG9FXzI1NihyZWcpCitWTU9WRFFBX0d0b0VfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYzkzMDNkNTI1MTZmZGU3Ny4zYWY5MGQyNThjODc4YjRlLmI4MzczOWFmYmJmN2VhYjAuMjI0ZTEzOWFlNzg2NWQzMwogICAgIDZhNTM4ZmY1MmU1YTU2ZTAuY2IzNzQwNjhiZjVlOWViMS42NmRjZDQ2MDE2YmEyNTcwLjI0Y2U2NjcwYzNkZjkzMWIKQEAgLTQ3MzYsNyArNDczNiw3IEBACiAgICAgNDU0YWIyMDYzNTY5YmFkYS5kMWY5YjZiNzBjNmE5Y2FkLjkyMjM0ZmFiZWRlNjc0NTUuODJhNDI0NDQ3NzljN2I5ZQogICAgIDQ1NGFiMjA2MzU2OWJhZGEuZDFmOWI2YjcwYzZhOWNhZC45MjIzNGZhYmVkZTY3NDU1LjgyYTQyNDQ0Nzc5YzdiOWUKICAgICA5NjkxODYxYTg3MTlhNTkxCi1WTU9WQVBTX0d0b0VfMjU2KG1lbSkKK1ZNT1ZEUUFfR3RvRV8yNTYobWVtKQogICBiZWZvcmUKICAgICAxNDkwM2FjOWUxYmFlZThiLjM4YjY3YTRjOTVhNDFlYzIuZmUxNmYyOWM1ZGI4ZmU5ZS5jODVlMjYxZGExNjgwMGQxCiAgICAgZDY2ZWJkM2JhMDhjMTFiNy5hODdkNjE0YjA1YmQ5ZDgxLmMzNmI3ZThmNDZmMDljNmMuOGYwZDVlNTI1NjQwY2E5MApAQCAtNDc1MCw3ICs0NzUwLDcgQEAKICAgICA5YWYxMWMxY2JmZjFkODU4LjczNGE3ZTI1N2ZiNmRlMzguODBlYzc2NGY0ZjUwODA0ZC4zYmZiZTJiNjMwMjcwNzgxCiAgICAgZDlkMTI2YmM4ZTRkZjIwZAogCi1WTU9WQVBTX0d0b0VfMjU2KHJlZykKK1ZNT1ZEUUFfR3RvRV8yNTYocmVnKQogICBiZWZvcmUKICAgICA3NzRjYmIzNjVkZmIwYTg5LjUzMzBmMjYzNTc5YmY0MjQuODZlOWFiZDhjMWFlMTg4Ni4zMmIwZGJmNGE2OGYzY2I5CiAgICAgNzBiODlkOGUzN2JjOGRhNC5jMjdkODUxZGM0YTdkYWQzLjg2MTNlN2YzODNiNDVlNWMuZWFkYzgwNTcwNWU4MjZiMQpAQCAtNDc2Myw3ICs0NzYzLDcgQEAKICAgICBlODkzM2E4ZDgzYThiZTYxLjJkNmZkNjlmOGYwZWY3ODkuYzEzODdkMTZmMDE4ZmU0Zi5lMDljN2EwODQ5MWE2ZmY3CiAgICAgZTg5MzNhOGQ4M2E4YmU2MS4yZDZmZDY5ZjhmMGVmNzg5LmMxMzg3ZDE2ZjAxOGZlNGYuZTA5YzdhMDg0OTFhNmZmNwogICAgIGQ1YzdjNzJkNjcwYjQ2OWMKLVZNT1ZBUFNfR3RvRV8yNTYobWVtKQorVk1PVkRRQV9HdG9FXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDQxOGI0NWMxZmM0NjNiN2YuMWU5OWViMGIyYmVjZTY1Yy5lMmFkOGMzZTI1ODJhNWU3LmIzY2FjZmY1ZDU4ZWNmYzQKICAgICAwMGIyNmZhZTI0ZDcwOGNhLjIwYzBkYjE4NTA3MjY3YTUuYmQyOWYxMDIwMDg3MGVkOS4wNDE4MjBlZGE4NDI5YzcwCkBAIC00Nzc3LDcgKzQ3NzcsNyBAQAogICAgIGU4NWRiNzQ4OWYyYzFjNGEuZjdhMTYxOGY3Zjc5NjdjZi41MDBiYjRhNGY2NzEwMTIzLjJlMTNhZmQ4OGE5MDE5MjAKICAgICBjMTU5ZTZhM2QwNDQ0MTdiCiAKLVZNT1ZBUFNfRXRvR18xMjgocmVnKQorVk1PVkRRQV9HdG9FXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDIxODkwYzM4NzU2NDU0YmUuYzg3N2NlY2MyYTA5ZGJkNy44NWYzZWZkMmMxMTI1ZDA5LmMxMDgwYjVjNDk2ZTAyZDQKICAgICBhYmYxMWQwMTE0N2U5MDk1LjZiMjY4MDVhYjg2YjYzN2MuNGY5NmFjNTNmMDFkOWQ0MC5jNzc0MDBlNzUyMmNhZWM3CkBAIC00Nzg2LDExICs0Nzg2LDExIEBACiAgICAgZWY0MDZjYmFjNjYwMGJlYQogICBhZnRlcgogICAgIDIxODkwYzM4NzU2NDU0YmUuYzg3N2NlY2MyYTA5ZGJkNy44NWYzZWZkMmMxMTI1ZDA5LmMxMDgwYjVjNDk2ZTAyZDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjBkNTkxN2ZhNzI5NjMyMS4zZTE5MGYzMzJkYjdjMTJhCi0gICAgYmJkYjE2NmM0YTFlMmZhYi5hZDM1NGJkZTY1NjA3MDY2LmIwZDU5MTdmYTcyOTYzMjEuM2UxOTBmMzMyZGI3YzEyYQorICAgIGFiZjExZDAxMTQ3ZTkwOTUuNmIyNjgwNWFiODZiNjM3Yy40Zjk2YWM1M2YwMWQ5ZDQwLmM3NzQwMGU3NTIyY2FlYzcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDZmZDliYzM4MmJmZWI1Ny4wMmM0YjUyYWY1MTlmNzI2CiAgICAgYWQ5NWYxZTNiMmNmNmVhYy42YTZmYWI0NDRlZjNiZGMxLjA2ZmQ5YmMzODJiZmViNTcuMDJjNGI1MmFmNTE5ZjcyNgogICAgIGVmNDA2Y2JhYzY2MDBiZWEKLVZNT1ZBUFNfRXRvR18xMjgobWVtKQorVk1PVkRRQV9HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGUxNWJiMmNlYmQ5N2JhYTAuZGQ2OWFjZDRlOTFkODk0NS43ZWExMWE3OThmMzEwN2I4LmFjNWJjNzhhMWU2ZDcwOGYKICAgICBiNGUwMDM1MmY1Y2JjMDc0LmE3YTQ0MmFhOGI5NGJiMjIuYzU5NzE1Njc0MzI1MGE3Ny5mZDM5MTA0MDE3YmUyZjc1CkBAIC00Nzk4LDEzICs0Nzk4LDEzIEBACiAgICAgNmQ1NmIyNWE5YTU3YmYyOS43OTdlZjBiNTdjMmY1NzU3LjViZmZhMTIyNzU2MDJhMDEuMTRhN2U5Mjg4ZDdiNGFmOAogICAgIDkyZDA3MjMzNDNmZTFlZWYKICAgYWZ0ZXIKLSAgICBlMTViYjJjZWJkOTdiYWEwLmRkNjlhY2Q0ZTkxZDg5NDUuN2VhMTFhNzk4ZjMxMDdiOC5hYzViYzc4YTFlNmQ3MDhmCisgICAgZTE1YmIyY2ViZDk3YmFhMC5kZDY5YWNkNGU5MWQ4OTQ1LjFhMWQxOWZjODZkYjgyMmMuNTdlMzcyNTAwODNmNjRiNAogICAgIGI0ZTAwMzUyZjVjYmMwNzQuYTdhNDQyYWE4Yjk0YmIyMi5jNTk3MTU2NzQzMjUwYTc3LmZkMzkxMDQwMTdiZTJmNzUKICAgICA0NDlhZDkzMjhiMDdkODk0LjY3OTFhZmQxMzJjMTQxZWYuMWExZDE5ZmM4NmRiODIyYy41N2UzNzI1MDA4M2Y2NGI0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdlYTExYTc5OGYzMTA3YjguYWM1YmM3OGExZTZkNzA4ZgorICAgIDZkNTZiMjVhOWE1N2JmMjkuNzk3ZWYwYjU3YzJmNTc1Ny41YmZmYTEyMjc1NjAyYTAxLjE0YTdlOTI4OGQ3YjRhZjgKICAgICA5MmQwNzIzMzQzZmUxZWVmCiAKLVZNT1ZBUFNfRXRvR18xMjgocmVnKQorVk1PVkRRQV9HdG9FXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDJiYTkwOGRlYzY1NTFjNDMuMGFlMDA5YjczZmM4MzE2Mi4zOWI2MDBjMjA1NmEzODA2LjYzMDkyYWM3MmNiZmJmMjIKICAgICAzZDdmYTc5M2IwMGI4MGEwLmY5MDQ1YTMzOTU2NWU5NjkuMDM4NGRhNjQ2OGZmMjJhOS4wZTA2MmVkNmM2MDRmY2JkCkBAIC00ODEzLDExICs0ODEzLDExIEBACiAgICAgNzhhZWZkYjcwMGIyMDIxNwogICBhZnRlcgogICAgIDJiYTkwOGRlYzY1NTFjNDMuMGFlMDA5YjczZmM4MzE2Mi4zOWI2MDBjMjA1NmEzODA2LjYzMDkyYWM3MmNiZmJmMjIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzMzNTdkMDc0Mjc5NGVlYy4zOGM0MmIzYjVmM2M5ZmZiCi0gICAgMjI5ZTRiYmZhMGFjODViMy4xNThlMjFiYmI4M2FhNTZhLjMzMzU3ZDA3NDI3OTRlZWMuMzhjNDJiM2I1ZjNjOWZmYgorICAgIDNkN2ZhNzkzYjAwYjgwYTAuZjkwNDVhMzM5NTY1ZTk2OS4wMzg0ZGE2NDY4ZmYyMmE5LjBlMDYyZWQ2YzYwNGZjYmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjUxNWUyMTgyZTY1ZmI3YS5iYzBkOWNlMjE0NzI2MjBiCiAgICAgMzc1MmYxY2YzMGM1NjgyOC4zYTQ5ZGIzY2M1NTQxZjkyLjI1MTVlMjE4MmU2NWZiN2EuYmMwZDljZTIxNDcyNjIwYgogICAgIDc4YWVmZGI3MDBiMjAyMTcKLVZNT1ZBUFNfRXRvR18xMjgobWVtKQorVk1PVkRRQV9HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDQ3NzNjYWE2NDAwOTNhNGIuZDllNzkzMmRmY2UxNjVhYS40MzAzMDJhMWQ4YmUxMzBkLjM1NzAwNjAxYzg0ZTY0MDAKICAgICAwNDI3ODA5YmVmODJjOGQ0LjYyYTkyZjQ3YTE4Y2I3ZTYuMGU4NjE0ZDUwYzg0M2YwNi5iZTkyZTYzMGFkYzBjNDJhCkBAIC00ODI1LDEzICs0ODI1LDEzIEBACiAgICAgYmQ5MDk0NDgwYzBiZDA5NC45Y2UyNDM1YmU0YzE0ZDNhLjU2MWFlNzVmNDg1NjJhMjUuYjA1OWM3MGNjNzcwNWIxOAogICAgIGQwOThjMTkyMzNjNjBhMzQKICAgYWZ0ZXIKLSAgICA0NzczY2FhNjQwMDkzYTRiLmQ5ZTc5MzJkZmNlMTY1YWEuNDMwMzAyYTFkOGJlMTMwZC4zNTcwMDYwMWM4NGU2NDAwCisgICAgNDc3M2NhYTY0MDA5M2E0Yi5kOWU3OTMyZGZjZTE2NWFhLjc2OWY4Y2M2N2RiMzVkYWEuMWVjNjdkMTA3OTQ3NTdhMwogICAgIDA0Mjc4MDliZWY4MmM4ZDQuNjJhOTJmNDdhMThjYjdlNi4wZTg2MTRkNTBjODQzZjA2LmJlOTJlNjMwYWRjMGM0MmEKICAgICA4ZDk4OWE4MzJhMjk2NmRlLjJmZTNjMDg4YmE1MzliODcuNzY5ZjhjYzY3ZGIzNWRhYS4xZWM2N2QxMDc5NDc1N2EzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQzMDMwMmExZDhiZTEzMGQuMzU3MDA2MDFjODRlNjQwMAorICAgIGJkOTA5NDQ4MGMwYmQwOTQuOWNlMjQzNWJlNGMxNGQzYS41NjFhZTc1ZjQ4NTYyYTI1LmIwNTljNzBjYzc3MDViMTgKICAgICBkMDk4YzE5MjMzYzYwYTM0CiAKLVZNT1ZBUFNfRXRvR18xMjgocmVnKQorVk1PVkRRQV9HdG9FXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGQ5Y2Q2NjBkNWFkNmExYTQuNmZkY2VhZDhiMjMzYzQyMy4wNWYzYjIyZWJhNjIwOWFiLjhjYzM5ZjhjODk3YTYxYTIKICAgICAyOTQ1YjFlOWQ4MmI1YzE0LjgxNDgxODFlMzdhZWZjYjcuYzc2MDBiNmNkOGMzMGE4NS5mMjY2MzIzOTViMjliZjRkCkBAIC00ODQwLDExICs0ODQwLDExIEBACiAgICAgZTQyMWUwNzk1MWZiMWIyMAogICBhZnRlcgogICAgIGQ5Y2Q2NjBkNWFkNmExYTQuNmZkY2VhZDhiMjMzYzQyMy4wNWYzYjIyZWJhNjIwOWFiLjhjYzM5ZjhjODk3YTYxYTIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2M3NTQ5ODFkYjZmOGQ3NS42NmNlMWI1MmRhNzEwMDU0Ci0gICAgMWI0YmExOTI0NzUxNzYyZi5jZGEwOWIwNWI3ODYzNTdiLjNjNzU0OTgxZGI2ZjhkNzUuNjZjZTFiNTJkYTcxMDA1NAorICAgIDI5NDViMWU5ZDgyYjVjMTQuODE0ODE4MWUzN2FlZmNiNy5jNzYwMGI2Y2Q4YzMwYTg1LmYyNjYzMjM5NWIyOWJmNGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzE4MDY4ZGE1ZmYyY2UyNi5jMmM4ZDdjNDIzNWVlMGUxCiAgICAgMGEyZDJmNzU0NmQ1MmNhMS4zMWIwZWU3YjUwYzkyYTliLmMxODA2OGRhNWZmMmNlMjYuYzJjOGQ3YzQyMzVlZTBlMQogICAgIGU0MjFlMDc5NTFmYjFiMjAKLVZNT1ZBUFNfRXRvR18xMjgobWVtKQorVk1PVkRRQV9HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGE2YTNiNDVmODE1NDZjM2UuNTQzNTU4ZmM2ZTQxYmExOC44NzQ0OGQ2YjFiODM5OTQ1LmIyY2M2NGUxZmZkOTA5NDUKICAgICBlNjFiY2U2MGNlNzU5MDY3LjUzYjExOTk0NWUyNDVjM2UuYWMyN2Y0YzEzNmJmM2NhMi42YmE0M2EwMzU4YWY3OTdlCkBAIC00ODUyLDEzICs0ODUyLDEzIEBACiAgICAgNGIxY2M0NjgzMTQxNDA4OC5lNDMwNTBhOTAwNzhjYTQ4LmQ0MGUwYzRmY2FlZDEwMmMuYTUyYjYxNDlhMjU5ZWFlYwogICAgIGRlNzJhYTQ1Y2M0NTY0NzkKICAgYWZ0ZXIKLSAgICBhNmEzYjQ1ZjgxNTQ2YzNlLjU0MzU1OGZjNmU0MWJhMTguODc0NDhkNmIxYjgzOTk0NS5iMmNjNjRlMWZmZDkwOTQ1CisgICAgYTZhM2I0NWY4MTU0NmMzZS41NDM1NThmYzZlNDFiYTE4LjdkMjZhMDY5YmM4OWNmZTEuNDg1NWU1YWQwNTAxNWI3YwogICAgIGU2MWJjZTYwY2U3NTkwNjcuNTNiMTE5OTQ1ZTI0NWMzZS5hYzI3ZjRjMTM2YmYzY2EyLjZiYTQzYTAzNThhZjc5N2UKICAgICA3ZTU0YWE2YTU1NmI0MmM2LjY1ZWI2ZGFhYWYwNzRkYmYuN2QyNmEwNjliYzg5Y2ZlMS40ODU1ZTVhZDA1MDE1YjdjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg3NDQ4ZDZiMWI4Mzk5NDUuYjJjYzY0ZTFmZmQ5MDk0NQorICAgIDRiMWNjNDY4MzE0MTQwODguZTQzMDUwYTkwMDc4Y2E0OC5kNDBlMGM0ZmNhZWQxMDJjLmE1MmI2MTQ5YTI1OWVhZWMKICAgICBkZTcyYWE0NWNjNDU2NDc5CiAKLVZNT1ZBUERfRXRvR18yNTYocmVnKQorVk1PVkRRVV9HdG9FXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDRmNzZiZDBjMWU1MTAzZDAuMjkzZDk5NDU3ZjA0NDRkOC4yZWNiYmZmY2VhMDMwZjg1LjhlYThiNDYwN2NmOGI5YjAKICAgICA1NDgyOTUwYTM1MDgwNDlkLmY1ODRhNGVmNWFiZjBhZTMuOWQwYWI0MTEwYjMyNTcyMS44OGMzMTQ4NmVkYjU4Nzk4CkBAIC00ODY3LDExICs0ODY3LDExIEBACiAgICAgODUwYjVlYjZkNDkzMjU2NAogICBhZnRlcgogICAgIDRmNzZiZDBjMWU1MTAzZDAuMjkzZDk5NDU3ZjA0NDRkOC4yZWNiYmZmY2VhMDMwZjg1LjhlYThiNDYwN2NmOGI5YjAKLSAgICA0OGU0MmVhYmFjZjZhMjhiLjg5YmQ2MTUxZGU3ZTUwZDUuOGUzODJkNTNmZjkzZTBjOS45YzJhYThhZjM5MzEzNTExCi0gICAgNDhlNDJlYWJhY2Y2YTI4Yi44OWJkNjE1MWRlN2U1MGQ1LjhlMzgyZDUzZmY5M2UwYzkuOWMyYWE4YWYzOTMxMzUxMQorICAgIDU0ODI5NTBhMzUwODA0OWQuZjU4NGE0ZWY1YWJmMGFlMy45ZDBhYjQxMTBiMzI1NzIxLjg4YzMxNDg2ZWRiNTg3OTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWVhMDI1MmU2MWIyZTMyOC5hN2E4ZWRjNTdkNzc4MTQ2CiAgICAgODllNjg0NWIyMGE3MWE0Ny5jMmI0NGM1ODI4NGRkMGQ5LjVlYTAyNTJlNjFiMmUzMjguYTdhOGVkYzU3ZDc3ODE0NgogICAgIDg1MGI1ZWI2ZDQ5MzI1NjQKLVZNT1ZBUERfRXRvR18yNTYobWVtKQorVk1PVkRRVV9HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDEyMWQ3NzZkNWI5MmRlOTcuNzJkNTkzODYyY2E4YTg3Yy43YzM1ZTFlZTU0Mzk0NzFjLjY3OGY5OTBlY2QxOTlmZWIKICAgICAyYmFiYjRkNjJkN2U2NzBhLjVmZmQ1ODk4NmQ4NDg4ZDcuOTMwYzlkMDA3ZDRkNzFjYS4wNjUxODM1ZmUwNTY0ZWJlCkBAIC00ODc5LDEzICs0ODc5LDEzIEBACiAgICAgNmM2YjhiNmUyNDUzZGM2Mi5iNDI3ZjEyMmZjZmYyZGFlLjQ5ZWI3NzQ5MzcxZmNjMTQuNzc3ZWFlMDU2YTgwNzg0MgogICAgIDAwODBlNjMxMTg4NTZiNGMKICAgYWZ0ZXIKLSAgICAxMjFkNzc2ZDViOTJkZTk3LjcyZDU5Mzg2MmNhOGE4N2MuN2MzNWUxZWU1NDM5NDcxYy42NzhmOTkwZWNkMTk5ZmViCisgICAgMTIxZDc3NmQ1YjkyZGU5Ny43MmQ1OTM4NjJjYThhODdjLmUzMDRmYjdiYmY5NjA5MGUuOTczMmUxOGUzNmY1MmQ0YwogICAgIDJiYWJiNGQ2MmQ3ZTY3MGEuNWZmZDU4OTg2ZDg0ODhkNy45MzBjOWQwMDdkNGQ3MWNhLjA2NTE4MzVmZTA1NjRlYmUKICAgICBhYTgxOTJkZDY3NjY3ZGVhLmFiYWFjZWZkN2VjOGY2MDMuZTMwNGZiN2JiZjk2MDkwZS45NzMyZTE4ZTM2ZjUyZDRjCi0gICAgMTIxZDc3NmQ1YjkyZGU5Ny43MmQ1OTM4NjJjYThhODdjLjdjMzVlMWVlNTQzOTQ3MWMuNjc4Zjk5MGVjZDE5OWZlYgorICAgIDZjNmI4YjZlMjQ1M2RjNjIuYjQyN2YxMjJmY2ZmMmRhZS40OWViNzc0OTM3MWZjYzE0Ljc3N2VhZTA1NmE4MDc4NDIKICAgICAwMDgwZTYzMTE4ODU2YjRjCiAKLVZNT1ZBUERfRXRvR18yNTYocmVnKQorVk1PVkRRVV9HdG9FXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDhmODY4NTdmZGQ5MDQxMTUuNGQzNDFkNzU4MDUzNDA5Zi5kNWMyYmQ3MTgyYjU2OTgxLjlmOGI4ZDU4MDBmNDc2MDkKICAgICA4MGRhODg1YTU0MmIzNzQ5LjI5YWFjM2RlOTk3MTY0Y2QuNjljNTJlNThhZDc3ZTgyYi5jMmIxYmE5MjM3MjJjMjE5CkBAIC00ODk0LDExICs0ODk0LDExIEBACiAgICAgOTAzZTlkODM4NTM1ZDBhMAogICBhZnRlcgogICAgIDhmODY4NTdmZGQ5MDQxMTUuNGQzNDFkNzU4MDUzNDA5Zi5kNWMyYmQ3MTgyYjU2OTgxLjlmOGI4ZDU4MDBmNDc2MDkKLSAgICAyZmM5ZWEyZDFhZTQ4ODk1LmRjOTdmYTk1ODhiYTA1MTcuY2U3ZDQxNDIxOGQwZTQ1Ni44ZTI4NzllNWY4YjQ2ZDcwCi0gICAgMmZjOWVhMmQxYWU0ODg5NS5kYzk3ZmE5NTg4YmEwNTE3LmNlN2Q0MTQyMThkMGU0NTYuOGUyODc5ZTVmOGI0NmQ3MAorICAgIDgwZGE4ODVhNTQyYjM3NDkuMjlhYWMzZGU5OTcxNjRjZC42OWM1MmU1OGFkNzdlODJiLmMyYjFiYTkyMzcyMmMyMTkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWYzNmYxOWE1ZjRjOWFhZS5kZmJlNDYzYzVkYjYzMzM4CiAgICAgZjg5ZmE3NjZjYTQ3NzJhNS40MmM4M2M4NzZiMzlkZmFhLjVmMzZmMTlhNWY0YzlhYWUuZGZiZTQ2M2M1ZGI2MzMzOAogICAgIDkwM2U5ZDgzODUzNWQwYTAKLVZNT1ZBUERfRXRvR18yNTYobWVtKQorVk1PVkRRVV9HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDdmNzNmYWE2ODkzY2ZmZDIuMzdhOGJiNzAwMWRmMmYyNS4zNjA5MDc5ZTVlZmFhZWIxLjc3M2MzYWNlMWY3NzQ2ZTAKICAgICA4NzJhZGE5MTg4ZDc3ZGZiLjQ4MmYyMmI3NWEzOGZjYzAuOTYyNmQ2Yzg3YzBhMmQ1OS43NGRiMTk0OWY0ZGUyMzk4CkBAIC00OTA2LDEzICs0OTA2LDEzIEBACiAgICAgNTI0ZTEwNzBlMGZiNTZlMC41MGViZGJhY2U0NWViNGY4LjA3MjM3MTAyYWE0NDJkM2IuODgxMzg1YzQ0YThlNjM0OAogICAgIDU5NDQwYjlkMDRlZjNlOTgKICAgYWZ0ZXIKLSAgICA3ZjczZmFhNjg5M2NmZmQyLjM3YThiYjcwMDFkZjJmMjUuMzYwOTA3OWU1ZWZhYWViMS43NzNjM2FjZTFmNzc0NmUwCisgICAgN2Y3M2ZhYTY4OTNjZmZkMi4zN2E4YmI3MDAxZGYyZjI1LjNkZWEyNWYwZTE3NDE5Y2UuYjA1ZTg4Nzc3OTBkNmY4MQogICAgIDg3MmFkYTkxODhkNzdkZmIuNDgyZjIyYjc1YTM4ZmNjMC45NjI2ZDZjODdjMGEyZDU5Ljc0ZGIxOTQ5ZjRkZTIzOTgKICAgICA4NDJmYjgzMTliMTMwNjQ2Ljg3ODJkOWE3NzJkZTE0MjIuM2RlYTI1ZjBlMTc0MTljZS5iMDVlODg3Nzc5MGQ2ZjgxCi0gICAgN2Y3M2ZhYTY4OTNjZmZkMi4zN2E4YmI3MDAxZGYyZjI1LjM2MDkwNzllNWVmYWFlYjEuNzczYzNhY2UxZjc3NDZlMAorICAgIDUyNGUxMDcwZTBmYjU2ZTAuNTBlYmRiYWNlNDVlYjRmOC4wNzIzNzEwMmFhNDQyZDNiLjg4MTM4NWM0NGE4ZTYzNDgKICAgICA1OTQ0MGI5ZDA0ZWYzZTk4CiAKLVZNT1ZBUERfRXRvR18yNTYocmVnKQorVk1PVkRRVV9HdG9FXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDdkM2UxNjZjNDJiYjNhMWUuY2M1MzVlM2I3MzliMjhmNS5mZmI3MjQzMzRkNDMxOGVlLmQwOWIzNWU5ZjI4NzI3Y2MKICAgICA1MjRkYTM5ZmExN2Y5NDg2LmQwMDkxZjdmNmYwMDM5YjAuZjAzMmIxYTY0ODFhN2NhZi43MzFmZWQ5M2Q2NDhjMWFmCkBAIC00OTIxLDExICs0OTIxLDExIEBACiAgICAgMThlYmE2NTYzZWY5YWNmMQogICBhZnRlcgogICAgIDdkM2UxNjZjNDJiYjNhMWUuY2M1MzVlM2I3MzliMjhmNS5mZmI3MjQzMzRkNDMxOGVlLmQwOWIzNWU5ZjI4NzI3Y2MKLSAgICAzMmJkYWNhMGJjYzY4ODdiLjM5M2VjZTI3ZjEzNTQ1M2UuN2VhODdjNzM3MTZkMWJlOC5jZTdiMTVlYzcxOTNiODBlCi0gICAgMzJiZGFjYTBiY2M2ODg3Yi4zOTNlY2UyN2YxMzU0NTNlLjdlYTg3YzczNzE2ZDFiZTguY2U3YjE1ZWM3MTkzYjgwZQorICAgIDUyNGRhMzlmYTE3Zjk0ODYuZDAwOTFmN2Y2ZjAwMzliMC5mMDMyYjFhNjQ4MWE3Y2FmLjczMWZlZDkzZDY0OGMxYWYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDc2NTgzMDQ2NWNiMzI0NS5iYzdiMjlkZWUwNzVjNzE1CiAgICAgN2FkOTJmZGQzMDFjNTJhYS5lM2JjZTcxZTE0NDYwN2NhLjA3NjU4MzA0NjVjYjMyNDUuYmM3YjI5ZGVlMDc1YzcxNQogICAgIDE4ZWJhNjU2M2VmOWFjZjEKLVZNT1ZBUERfRXRvR18yNTYobWVtKQorVk1PVkRRVV9HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGMwOTYwNjQwYTgyYjIxY2UuODZlZjI3YzA5ODBlMmRiZi5hOTUwZTY1MmY0NDAzYzgxLmU2YjRjMWM3YzBiZGZkNzEKICAgICA4ZjRhYzc4OTM5MThlMmQ3LmIzNDk5MWI3OTEyNzU2NjUuNjljNjQ3YWVhZTJlYTA4ZS43N2UzMzIyNzFkZDFiODE5CkBAIC00OTMzLDEzICs0OTMzLDEzIEBACiAgICAgMTFmODVhZTQ0MjUxM2MyMC5kYmZjYTc4ZWE0ZmY4MTE2LjQzODgyMThlMWUxN2U0NWQuMWUwYzllNmU0ZThkZWM4YgogICAgIGVkOWY5MTJkNWI0ZGRlYWUKICAgYWZ0ZXIKLSAgICBjMDk2MDY0MGE4MmIyMWNlLjg2ZWYyN2MwOTgwZTJkYmYuYTk1MGU2NTJmNDQwM2M4MS5lNmI0YzFjN2MwYmRmZDcxCisgICAgYzA5NjA2NDBhODJiMjFjZS44NmVmMjdjMDk4MGUyZGJmLmZkZWE4NzFlNWQxY2VmMWUuMTUzY2QzOTAxODkyOWVlOAogICAgIDhmNGFjNzg5MzkxOGUyZDcuYjM0OTkxYjc5MTI3NTY2NS42OWM2NDdhZWFlMmVhMDhlLjc3ZTMzMjI3MWRkMWI4MTkKICAgICA2MGQxNjUxYjBlY2JhZDM5LjViMzQ2NzJkYjZmNDA4NDguZmRlYTg3MWU1ZDFjZWYxZS4xNTNjZDM5MDE4OTI5ZWU4Ci0gICAgYzA5NjA2NDBhODJiMjFjZS44NmVmMjdjMDk4MGUyZGJmLmE5NTBlNjUyZjQ0MDNjODEuZTZiNGMxYzdjMGJkZmQ3MQorICAgIDExZjg1YWU0NDI1MTNjMjAuZGJmY2E3OGVhNGZmODExNi40Mzg4MjE4ZTFlMTdlNDVkLjFlMGM5ZTZlNGU4ZGVjOGIKICAgICBlZDlmOTEyZDViNGRkZWFlCiAKLVZNT1ZBUERfRXRvR18xMjgocmVnKQorVk1PVkRRQV9FdG9HXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGRkNDFhNzM5ZDk1ZWFmZmMuN2M4YjI0Y2ZmMmI1NGNiNy44ZmVkNGM0NmY2ZDZmYjc4LjE1NmI5MWVhMGQyYTNjNzYKICAgICA0YzNkZGNmZTY3NGM5YzIxLjdmNTYzZWM4MzkwMzk4MmIuZDM1MzUyYzI0ODA1YjIxZC41MTYwNTMxZjQ0NjJiMzk2CkBAIC00OTQ4LDExICs0OTQ4LDExIEBACiAgICAgMTFhNDVmMDRiZDVhMjdkNgogICBhZnRlcgogICAgIGRkNDFhNzM5ZDk1ZWFmZmMuN2M4YjI0Y2ZmMmI1NGNiNy44ZmVkNGM0NmY2ZDZmYjc4LjE1NmI5MWVhMGQyYTNjNzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDM3OWI2NmMzNzE2ZTRhZi5kMTM0ZTMxN2UyYzkwNGU5CisgICAgOTRlMTJkZTg5ZWE0ZTFjYi5mNDI0MjRiYjMzNDdkZWE3LjAzNzliNjZjMzcxNmU0YWYuZDEzNGUzMTdlMmM5MDRlOQogICAgIDk0ZTEyZGU4OWVhNGUxY2IuZjQyNDI0YmIzMzQ3ZGVhNy4wMzc5YjY2YzM3MTZlNGFmLmQxMzRlMzE3ZTJjOTA0ZTkKICAgICAxMzc3OTU2NDFkZjJiYWE0LmI5YzM1Mjk0ZmQ4ZWQ4NTguN2JhZDcyYjE1Zjk4Y2JkYS43M2IxYmVjMDAxNmRlYzlhCiAgICAgMTFhNDVmMDRiZDVhMjdkNgotVk1PVkFQRF9FdG9HXzEyOChtZW0pCitWTU9WRFFBX0V0b0dfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgODhkODQyZDEzMjliNzFjOC4yMzRjMTBkYzdkYzA2MjU4LmE4ZmQ0NTNmYjNlMzQyNjkuOTczOTg0ZmU1YjE0YTQ0YwogICAgIGI1MWJlNDEyN2UzYzg1OWQuMjJhYzlhYmU1ZDljMTY5NC45ZTlmNzdhODcwNTNkYTA3LmIzNmFlN2JkYzcxOGFiYWUKQEAgLTQ5NjMsMTAgKzQ5NjMsMTAgQEAKICAgICA4OGQ4NDJkMTMyOWI3MWM4LjIzNGMxMGRjN2RjMDYyNTguYThmZDQ1M2ZiM2UzNDI2OS45NzM5ODRmZTViMTRhNDRjCiAgICAgYjUxYmU0MTI3ZTNjODU5ZC4yMmFjOWFiZTVkOWMxNjk0LjllOWY3N2E4NzA1M2RhMDcuYjM2YWU3YmRjNzE4YWJhZQogICAgIDcyMzdiZmIzYmE0OTIwODAuNmFlMzJmNzU1NjExMTIwNC43Nzc1NjZiYjUwZTg1YTVlLjJiOGM5NzVjNDAyZjFiYWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYThmZDQ1M2ZiM2UzNDI2OS45NzM5ODRmZTViMTRhNDRjCisgICAgODhkODQyZDEzMjliNzFjOC4yMzRjMTBkYzdkYzA2MjU4LmE4ZmQ0NTNmYjNlMzQyNjkuOTczOTg0ZmU1YjE0YTQ0YwogICAgIDlmZDJkMGU3YzdjNzI5MzgKIAotVk1PVkFQRF9FdG9HXzEyOChyZWcpCitWTU9WRFFBX0V0b0dfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNTM4ZTUwYWEwZTYwM2UxOS4wZjJlMTVjNTc4ZDlkYTIzLjQ5MDU2YzExMDlmOGQwMmUuNDNlYzY5OTBlYmI3MDRlNQogICAgIGQzNmMwZGZlZDEzZGFlNDguYTg5Zjg3MGUzMTc0NzEzYS45Nzg4MGJjZmZhODEwYjQwLmVkMjY3NTJhZGUwOGE3NmQKQEAgLTQ5NzUsMTEgKzQ5NzUsMTEgQEAKICAgICA0ZTVhOTFjMzliMzE5MjJhCiAgIGFmdGVyCiAgICAgNTM4ZTUwYWEwZTYwM2UxOS4wZjJlMTVjNTc4ZDlkYTIzLjQ5MDU2YzExMDlmOGQwMmUuNDNlYzY5OTBlYmI3MDRlNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMDEyYTUxMjc1ZDQ3ZTM2LmVhYzMyZDFlNjRhZjIyNWUKKyAgICA3YWI2MDM0Y2FjZTliMzcwLjQxMWIyNDY3NGJhYjdmMTAuYTAxMmE1MTI3NWQ0N2UzNi5lYWMzMmQxZTY0YWYyMjVlCiAgICAgN2FiNjAzNGNhY2U5YjM3MC40MTFiMjQ2NzRiYWI3ZjEwLmEwMTJhNTEyNzVkNDdlMzYuZWFjMzJkMWU2NGFmMjI1ZQogICAgIGE2YjkyZjAxM2NmMDg5M2UuYjc2ZDY2YmNlMzhhYzBkMC5iZWVmMzc0NzE3N2M2NGJjLjE3OTEwZDU3OWFiOTMyZTQKICAgICA0ZTVhOTFjMzliMzE5MjJhCi1WTU9WQVBEX0V0b0dfMTI4KG1lbSkKK1ZNT1ZEUUFfRXRvR18yNTYobWVtKQogICBiZWZvcmUKICAgICA2Y2VhMzU0ZDg0MjNmZjVkLmIyYzE4Yzg5MWNkZTZlNWUuZTY2MGNiZmExNTFlZWZhNy40ZTZiYmJkODdjMDVmYTdkCiAgICAgNGQwZjc2ZTE3MDliMzVhOC5mOTE5MTY1MWU4NDA5YzdiLmFhYzJjZTBiZmM3MmM5YzEuYWNkMjJmMzIzZmZjN2MyNgpAQCAtNDk5MCwxMCArNDk5MCwxMCBAQAogICAgIDZjZWEzNTRkODQyM2ZmNWQuYjJjMThjODkxY2RlNmU1ZS5lNjYwY2JmYTE1MWVlZmE3LjRlNmJiYmQ4N2MwNWZhN2QKICAgICA0ZDBmNzZlMTcwOWIzNWE4LmY5MTkxNjUxZTg0MDljN2IuYWFjMmNlMGJmYzcyYzljMS5hY2QyMmYzMjNmZmM3YzI2CiAgICAgY2Q5NGNmNmI3Y2E2ZjAzOC5kOTBmYzljMzNlYTE1MDQyLmRmNWRlY2RkYjQ5MjBhNDkuMzU3MDhlYzJmY2VjMjU2MgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNjYwY2JmYTE1MWVlZmE3LjRlNmJiYmQ4N2MwNWZhN2QKKyAgICA2Y2VhMzU0ZDg0MjNmZjVkLmIyYzE4Yzg5MWNkZTZlNWUuZTY2MGNiZmExNTFlZWZhNy40ZTZiYmJkODdjMDVmYTdkCiAgICAgMzM3ZmZlMzBkNmU4ZGY0NgogCi1WTU9WQVBEX0V0b0dfMTI4KHJlZykKK1ZNT1ZEUUFfRXRvR18yNTYocmVnKQogICBiZWZvcmUKICAgICA2MTg5MDdlNzJiMGM2ODQ1LjFhZWNiYTEyNjFhM2UzZDYuZDAwMDliNTlmMTkyMzk3Yy4wYzcxNjU3MDA5NjdiMDU1CiAgICAgMjlmYWViODNlYTVhMDg4OC45ZjU4NDMwNjczYWQ5NDNjLmEwOTRiMjU1ODgzOWU2NDcuYmM4MWI5MGFkZTM1OGQzMQpAQCAtNTAwMiwxMSArNTAwMiwxMSBAQAogICAgIDgyNWVlMjI4NTViNzFjMmQKICAgYWZ0ZXIKICAgICA2MTg5MDdlNzJiMGM2ODQ1LjFhZWNiYTEyNjFhM2UzZDYuZDAwMDliNTlmMTkyMzk3Yy4wYzcxNjU3MDA5NjdiMDU1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc3ZjVlMmFjMTcxMDA4NmQuNGRmYzE3MTRmNGZlYzAyYworICAgIGU3MWVhNzZmYjA1ZGZjYmEuMzM1NGQ1YTExNTc5YmE5Ni43N2Y1ZTJhYzE3MTAwODZkLjRkZmMxNzE0ZjRmZWMwMmMKICAgICBlNzFlYTc2ZmIwNWRmY2JhLjMzNTRkNWExMTU3OWJhOTYuNzdmNWUyYWMxNzEwMDg2ZC40ZGZjMTcxNGY0ZmVjMDJjCiAgICAgZjc0MTM1MTkxOGExODA4OC5iMWFjZWJjZTYyMTQxMDExLmIzNmYyOGNhM2FhMmRkOTcuOWJhY2ZjN2E2OGQwMDc3MQogICAgIDgyNWVlMjI4NTViNzFjMmQKLVZNT1ZBUERfRXRvR18xMjgobWVtKQorVk1PVkRRQV9FdG9HXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGRkZGU0NzBiZDhiZGJjOGIuYjVhZTkzZWRiZmIyZDA5ZS5mNzJjMDE3ODc2ODk1M2Q5LmFlNGQ3ZTFiOGU3YjlmNzQKICAgICA4YWY4YTYwZDBjZjBhMmI4LjdkYjJiYzU1NDAxZDI3YTcuZTA5Zjk0OGQ2ZWU0M2UxOS5jNmRkZTIwYmFlMjg4YmFkCkBAIC01MDE3LDEwICs1MDE3LDEwIEBACiAgICAgZGRkZTQ3MGJkOGJkYmM4Yi5iNWFlOTNlZGJmYjJkMDllLmY3MmMwMTc4NzY4OTUzZDkuYWU0ZDdlMWI4ZTdiOWY3NAogICAgIDhhZjhhNjBkMGNmMGEyYjguN2RiMmJjNTU0MDFkMjdhNy5lMDlmOTQ4ZDZlZTQzZTE5LmM2ZGRlMjBiYWUyODhiYWQKICAgICA2NDc4N2MxYzBlNWM4Y2UwLmFiOWFhY2JlMzg2ZGMyNTAuNDhkMzFmZjg2NTMyOGZmZS41NTY5NGYwNzM3MzRkY2YxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY3MmMwMTc4NzY4OTUzZDkuYWU0ZDdlMWI4ZTdiOWY3NAorICAgIGRkZGU0NzBiZDhiZGJjOGIuYjVhZTkzZWRiZmIyZDA5ZS5mNzJjMDE3ODc2ODk1M2Q5LmFlNGQ3ZTFiOGU3YjlmNzQKICAgICA0Y2E4MzVjZWYzOWFhMTQ1CiAKLVZNT1ZVUERfR3RvRV8xMjgocmVnKQorVk1PVkRRQV9FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDZiZjNhNTczNWQwYzhiYWQuMGVkOTc5MGRlOTBiNTZjZS5hODQwZDI0NGZhZWRiMzMwLjA0YTkwZDgwYzNkNDRlNjUKICAgICA3MjZhMGZkM2EwMGRjY2NmLjk3NTI5OWM3ZmI2OGIwZWUuMzA5OGZmMzlmZDM2ODFjMC4xMWU0Njg3NTYwNDEzNDNmCkBAIC01MDI5LDExICs1MDI5LDExIEBACiAgICAgNDE2M2RiMjk0Njg1ZDQ3YgogICBhZnRlcgogICAgIDZiZjNhNTczNWQwYzhiYWQuMGVkOTc5MGRlOTBiNTZjZS5hODQwZDI0NGZhZWRiMzMwLjA0YTkwZDgwYzNkNDRlNjUKLSAgICA3MjZhMGZkM2EwMGRjY2NmLjk3NTI5OWM3ZmI2OGIwZWUuMzA5OGZmMzlmZDM2ODFjMC4xMWU0Njg3NTYwNDEzNDNmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFlY2M3ZGExNTM5MmY0N2EuZDNmNTUzNWUwNjhlYmMxZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZTAzZTRkZWU3OTM4MzlmLjBkMGVhYzcxNmVkMDcwNmYKKyAgICBiZTViNmU1OTU3MmE5ZTU2LmJkNjExZjNlNGIyY2ZjYjguOGUwM2U0ZGVlNzkzODM5Zi4wZDBlYWM3MTZlZDA3MDZmCiAgICAgYTkxMGJmNzMxZWVlM2VlZi41YmQyODg1ZGY0NjVmNzU4LjFlY2M3ZGExNTM5MmY0N2EuZDNmNTUzNWUwNjhlYmMxZQogICAgIDQxNjNkYjI5NDY4NWQ0N2IKLVZNT1ZVUERfR3RvRV8xMjgobWVtKQorVk1PVkRRQV9FdG9HXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDMxMjVjMGJmNGFjMzc2YWYuOTBkNmZjOGM5M2U1ZTc0Ni40ZjcxNGUxMDEyMWY1Y2ZiLjNiNDBjNGVkZGRiZTEyZmMKICAgICA4MTA3N2MwYjJkNTQ1Y2U5LmNmZjkyMzEwNGY5Y2Q3MDYuNzMwYWVmNDNjMjY1ZThjZC40M2FiYjcyZTIyYTQxN2QyCkBAIC01MDQxLDEzICs1MDQxLDEzIEBACiAgICAgYWQ1YjZlNzQwMjljZTYxYS5jNTg2MWMwOTEyNzc3NzczLmJmNTlhZmRhNDZjNTY1YWMuODA5NjhlM2Y0YmNiYzgyOQogICAgIDZlYWQ2YWU3NjgyNGVjMDEKICAgYWZ0ZXIKLSAgICAzMTI1YzBiZjRhYzM3NmFmLjkwZDZmYzhjOTNlNWU3NDYuYTU2OGU2ZTMxZjQzNTdmOS45MTU5NTFkMGJkY2YzZmE3CisgICAgMzEyNWMwYmY0YWMzNzZhZi45MGQ2ZmM4YzkzZTVlNzQ2LjRmNzE0ZTEwMTIxZjVjZmIuM2I0MGM0ZWRkZGJlMTJmYwogICAgIDgxMDc3YzBiMmQ1NDVjZTkuY2ZmOTIzMTA0ZjljZDcwNi43MzBhZWY0M2MyNjVlOGNkLjQzYWJiNzJlMjJhNDE3ZDIKICAgICAwYmQ1OGRmODBjNDM0MzUzLmMyYzUyZjZiZjA5ZTQ4ZGMuYTU2OGU2ZTMxZjQzNTdmOS45MTU5NTFkMGJkY2YzZmE3Ci0gICAgYWQ1YjZlNzQwMjljZTYxYS5jNTg2MWMwOTEyNzc3NzczLmJmNTlhZmRhNDZjNTY1YWMuODA5NjhlM2Y0YmNiYzgyOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZjcxNGUxMDEyMWY1Y2ZiLjNiNDBjNGVkZGRiZTEyZmMKICAgICA2ZWFkNmFlNzY4MjRlYzAxCiAKLVZNT1ZVUERfR3RvRV8xMjgocmVnKQorVk1PVkRRQV9FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGI1ZWNlMjM1YWU2N2U4ZGUuNDE2NTliNmEyYjZiMDM2OS4zNDg3ZTc1NzUwYjQ5Zjc4LjlmYTdjNzE1NTJmOGNlMTIKICAgICBiMzlkZjA5M2JjMjBmNzY5LmE1YmU5MGM2YTRiZDU0NmQuNmMxNThhYmY0NmUwZmQ5Ny4xZjFmYTk4MTYwZTc0ZDU2CkBAIC01MDU2LDExICs1MDU2LDExIEBACiAgICAgZmU3YWUzMWNhYTk3YWIxMQogICBhZnRlcgogICAgIGI1ZWNlMjM1YWU2N2U4ZGUuNDE2NTliNmEyYjZiMDM2OS4zNDg3ZTc1NzUwYjQ5Zjc4LjlmYTdjNzE1NTJmOGNlMTIKLSAgICBiMzlkZjA5M2JjMjBmNzY5LmE1YmU5MGM2YTRiZDU0NmQuNmMxNThhYmY0NmUwZmQ5Ny4xZjFmYTk4MTYwZTc0ZDU2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmExMDk0ZDkxY2QzNjRiZDEuNzNiY2JiOThmMDJhN2YyYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNzdkMDNhZjkxODdjZDdiLjFkOGRkMDA4OGI5ZjlmYTQKKyAgICBjMjBkOTI2ZjJiZDk1NzUxLmIzMzNjYTc0ODk5ZDk1NTEuYzc3ZDAzYWY5MTg3Y2Q3Yi4xZDhkZDAwODhiOWY5ZmE0CiAgICAgNDA4OGM0MzM5OTIwNDI0MC40ODkxYzM2MWY1MTg4NDQyLmExMDk0ZDkxY2QzNjRiZDEuNzNiY2JiOThmMDJhN2YyYQogICAgIGZlN2FlMzFjYWE5N2FiMTEKLVZNT1ZVUERfR3RvRV8xMjgobWVtKQorVk1PVkRRQV9FdG9HXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDliOTFjNjgwZDZlZmRkODguODc1YTgwNGRhMjgwZjRlMy40MWEyZjk3NzA0MzhkYjZjLjU4MDY2NWQzOTU3OGIyNDQKICAgICAyNGNlZGViMDhmNDBkMWI5LmY1Y2ZjNDI4ZTE4NmFiZTUuNzgzMmU3YTNkMzBjNTdmYS40N2JmNDVlMDg1ZGEzZjgxCkBAIC01MDY4LDEzICs1MDY4LDEzIEBACiAgICAgNmRlYWEzMjQxYWZiZjNmYi5iMWQxZDFkMTczYjExM2I4LjEzMDRkZGVlMWZmOWFkZjUuM2Q5OTUyMGE0ZjJiYmIwOAogICAgIGZjNTE3NjAwNjEzMjIxYWEKICAgYWZ0ZXIKLSAgICA5YjkxYzY4MGQ2ZWZkZDg4Ljg3NWE4MDRkYTI4MGY0ZTMuY2EwZjBhZDI3ZDlkYjMxOS5jYTgyZWIyMzNhZTcyZTM0CisgICAgOWI5MWM2ODBkNmVmZGQ4OC44NzVhODA0ZGEyODBmNGUzLjQxYTJmOTc3MDQzOGRiNmMuNTgwNjY1ZDM5NTc4YjI0NAogICAgIDI0Y2VkZWIwOGY0MGQxYjkuZjVjZmM0MjhlMTg2YWJlNS43ODMyZTdhM2QzMGM1N2ZhLjQ3YmY0NWUwODVkYTNmODEKICAgICA3NmZlYTk5OGYyOTU0NWQwLmU0MzI4YTMwZjNiZGExZjMuY2EwZjBhZDI3ZDlkYjMxOS5jYTgyZWIyMzNhZTcyZTM0Ci0gICAgNmRlYWEzMjQxYWZiZjNmYi5iMWQxZDFkMTczYjExM2I4LjEzMDRkZGVlMWZmOWFkZjUuM2Q5OTUyMGE0ZjJiYmIwOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MWEyZjk3NzA0MzhkYjZjLjU4MDY2NWQzOTU3OGIyNDQKICAgICBmYzUxNzYwMDYxMzIyMWFhCiAKLVZNT1ZVUERfR3RvRV8xMjgocmVnKQorVk1PVkRRQV9FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDYzZjc1MzcxMGI4OTlkYzUuZTU2MTQ2NDAyMzdjOTg2NC5iOGY2OTI3N2ZkZWYzY2UxLjJmZGNkYmU1ZDQyYmZmYjkKICAgICBjZGQ1ZTZjYWVhYmI2YjA2LmJiMmUxMGQ4MmEyN2VmMzcuNTZlZWNhOGUyZTAyNWExYS5mYjY0ODJhMmI5NDA2NjkxCkBAIC01MDgzLDExICs1MDgzLDExIEBACiAgICAgMGUxNDQxYjU5YzQ0NmU0ZgogICBhZnRlcgogICAgIDYzZjc1MzcxMGI4OTlkYzUuZTU2MTQ2NDAyMzdjOTg2NC5iOGY2OTI3N2ZkZWYzY2UxLjJmZGNkYmU1ZDQyYmZmYjkKLSAgICBjZGQ1ZTZjYWVhYmI2YjA2LmJiMmUxMGQ4MmEyN2VmMzcuNTZlZWNhOGUyZTAyNWExYS5mYjY0ODJhMmI5NDA2NjkxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMyODY5MWMwZjRkODYwNmEuMGViNGI5MWU4MTQwNjEzMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNTA1NzY4MmEyNzZhNzBlLjUxNjg0ZTExZTk0MzlkYWEKKyAgICA5ODM3MmE3NTk5NTVjNjE4LmM5MWM3Y2Q5NGIwNWI2YTEuZTUwNTc2ODJhMjc2YTcwZS41MTY4NGUxMWU5NDM5ZGFhCiAgICAgMWY2YjFiZGZiNWUyZWJhOS5lY2Y5MDYyZGEwMjRhN2NlLmMyODY5MWMwZjRkODYwNmEuMGViNGI5MWU4MTQwNjEzMAogICAgIDBlMTQ0MWI1OWM0NDZlNGYKLVZNT1ZVUERfR3RvRV8xMjgobWVtKQorVk1PVkRRQV9FdG9HXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJkNTM2MWMyNTc1OTgwMzIuYmRiYmI1NzVkOWVlMTY2Mi4wMDhmMmFjMjQ4OGY3ZmU5LjQ5YmYxN2IyYzBiM2MwZDkKICAgICA0NzNmOTUzMWNkOGU1MjA1LmQwNzVmNWEyYTIwNTgzZjIuZTFhYjY1ODM1ZDUzZjkxZi5kNmZhMDRjNmEzOTMwNDA4CkBAIC01MDk1LDEzICs1MDk1LDEzIEBACiAgICAgZGM0OTJhZTY1YjgxMjkyZS5jMTUyNTM3MDkwODcxMTQxLjdhYTQwZDM4M2YxM2M2OGEuNzNhYTA1MDAxYzk0Mjg1NQogICAgIDNhYjYxMGZmZWFjZDdmY2IKICAgYWZ0ZXIKLSAgICAyZDUzNjFjMjU3NTk4MDMyLmJkYmJiNTc1ZDllZTE2NjIuNmIxOTMyNWJmYjdiZDI5Yi5jNjg0NTU2NjM4MDU2OGEzCisgICAgMmQ1MzYxYzI1NzU5ODAzMi5iZGJiYjU3NWQ5ZWUxNjYyLjAwOGYyYWMyNDg4ZjdmZTkuNDliZjE3YjJjMGIzYzBkOQogICAgIDQ3M2Y5NTMxY2Q4ZTUyMDUuZDA3NWY1YTJhMjA1ODNmMi5lMWFiNjU4MzVkNTNmOTFmLmQ2ZmEwNGM2YTM5MzA0MDgKICAgICAzOGEyNTllZjFhZWNhMWY1LmIzZTNkNWQxYWJiNDZkMDIuNmIxOTMyNWJmYjdiZDI5Yi5jNjg0NTU2NjM4MDU2OGEzCi0gICAgZGM0OTJhZTY1YjgxMjkyZS5jMTUyNTM3MDkwODcxMTQxLjdhYTQwZDM4M2YxM2M2OGEuNzNhYTA1MDAxYzk0Mjg1NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDhmMmFjMjQ4OGY3ZmU5LjQ5YmYxN2IyYzBiM2MwZDkKICAgICAzYWI2MTBmZmVhY2Q3ZmNiCiAKLVZNT1ZTU19YTU1fTTMyKHJlZykKK1ZNT1ZEUVVfRXRvR18xMjgocmVnKQogICBiZWZvcmUKICAgICA3N2Y0NzJjZjNmM2FhYWIwLjBmMDA4MzA0YWM1OWE2ZGIuNTgwZTZhZWFlZTA4YWE1OS5lYTFhNzIwNTQ0Mjg5MTE3CiAgICAgODZiMjI4ZGNiNjZhZTViMS5hYzkzZTAzMzI4N2VkMzI5LmQyNjIxN2FiNjFjNTc2ZjcuOTY0NWRkYWUyN2M1ZWU3MApAQCAtNTExMCwxMSArNTExMCwxMSBAQAogICAgIGEzMDIxZDBhMTg0NmNmZjAKICAgYWZ0ZXIKICAgICA3N2Y0NzJjZjNmM2FhYWIwLjBmMDA4MzA0YWM1OWE2ZGIuNTgwZTZhZWFlZTA4YWE1OS5lYTFhNzIwNTQ0Mjg5MTE3Ci0gICAgODZiMjI4ZGNiNjZhZTViMS5hYzkzZTAzMzI4N2VkMzI5LmQyNjIxN2FiNjFjNTc2ZjcuOTY0NWRkYWUyN2M1ZWU3MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZDljNTQxZjg0NDlhZmM2LjVjZjJjYjIwMDNmNjlhYmUKICAgICBjMzNhMmM5MmVjZTY2YzdhLjkxY2RiZDYxZWJmZTZkNDQuOGQ5YzU0MWY4NDQ5YWZjNi41Y2YyY2IyMDAzZjY5YWJlCiAgICAgOGFkYTdjNWQ3YzNjN2FiNi45OTdjOTc3OTEyZTUyZjU3LmUzMDYxZmIyZjMyMTkyNzMuMTdlZGI3NDVmNWM4NTEzMAogICAgIGEzMDIxZDBhMTg0NmNmZjAKLVZNT1ZTU19YTU1fTTMyKG1lbSkKK1ZNT1ZEUVVfRXRvR18xMjgobWVtKQogICBiZWZvcmUKICAgICBkY2ZkNzk1Yzg4N2NjZjJhLjM2ZGMxM2E5MDNmNzRjMTIuYTA2YWU4NjdiOTNkZDc4Zi4zMWVlNzNkMDRiZDg1YmE5CiAgICAgOWRhYTQ4MjU2Mjc3MGUwYi4yNThkZWVlMzFjYTMxZDM5LjgyNjQyZTE3ZmExNDFmMTcuZDQ5ZTRjZTYyN2ZhNDUxNQpAQCAtNTEyMiwxMyArNTEyMiwxMyBAQAogICAgIDJjNDgyYmQxYzNlOTM4NzEuMzkyYjVjY2Q3NTAwYjA5Yi40NmFjODc2ZGMxNmQ4MWNhLjg0ODg3ZmE2ZGRiMTZmM2UKICAgICA0YjViY2YyOGVmNWQyNjUzCiAgIGFmdGVyCi0gICAgZGNmZDc5NWM4ODdjY2YyYS4zNmRjMTNhOTAzZjc0YzEyLmEwNmFlODY3YjkzZGQ3OGYuMzFlZTczZDAyN2ZhNDUxNQorICAgIGRjZmQ3OTVjODg3Y2NmMmEuMzZkYzEzYTkwM2Y3NGMxMi5hMDZhZTg2N2I5M2RkNzhmLjMxZWU3M2QwNGJkODViYTkKICAgICA5ZGFhNDgyNTYyNzcwZTBiLjI1OGRlZWUzMWNhMzFkMzkuODI2NDJlMTdmYTE0MWYxNy5kNDllNGNlNjI3ZmE0NTE1CiAgICAgYzRkNDA0NTNjMjQyNDhiZi5iMjM5MDc3NTYzY2QyYmQ4LjFhMzZlNDc1ZjQ3NmM0MWMuMjY2M2E3NWUyNDE0OGQ2MwotICAgIDJjNDgyYmQxYzNlOTM4NzEuMzkyYjVjY2Q3NTAwYjA5Yi40NmFjODc2ZGMxNmQ4MWNhLjg0ODg3ZmE2ZGRiMTZmM2UKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTA2YWU4NjdiOTNkZDc4Zi4zMWVlNzNkMDRiZDg1YmE5CiAgICAgNGI1YmNmMjhlZjVkMjY1MwogCi1WTU9WU1NfWE1NX00zMihyZWcpCitWTU9WRFFVX0V0b0dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZDUyNjk2NTJmNWE1ZWY0ZS5iMGQyMzk4YTgxNzk5YjRlLjE2YjFlODU2ZWVjOWU5MmQuZTE5MjkxZWI3ZDA3MTQ0YwogICAgIDdmMzdjZDhmOGMxNDA2ZGEuMmUzZWE4NmMxOWZkMmQ4Mi5hNDE1YTc3YjY5YjMxMTNiLmM2YjM4MGRjNDQ1MDM3Y2UKQEAgLTUxMzcsMTEgKzUxMzcsMTEgQEAKICAgICBkMTc3N2U5MWY4Yjc1YzEyCiAgIGFmdGVyCiAgICAgZDUyNjk2NTJmNWE1ZWY0ZS5iMGQyMzk4YTgxNzk5YjRlLjE2YjFlODU2ZWVjOWU5MmQuZTE5MjkxZWI3ZDA3MTQ0YwotICAgIDdmMzdjZDhmOGMxNDA2ZGEuMmUzZWE4NmMxOWZkMmQ4Mi5hNDE1YTc3YjY5YjMxMTNiLmM2YjM4MGRjNDQ1MDM3Y2UKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDFhNDk2YWE4MjRhNjU3MC5kM2RkY2YyYTM0NTNhNjdlCiAgICAgYTVkODcxNGI0ZjM2YTdhMy44MDU4ZjY2MmE3ODJhYTM4LjQxYTQ5NmFhODI0YTY1NzAuZDNkZGNmMmEzNDUzYTY3ZQogICAgIGE0NTY3ZmYyZGI5ODBkNTYuODRlYzlkNTg0NjEyY2Q5ZC40OGFhYWY0ZWQ2MWIyMTc5LmUyZGFmYWMzNjYxYzFmODYKICAgICBkMTc3N2U5MWY4Yjc1YzEyCi1WTU9WU1NfWE1NX00zMihtZW0pCitWTU9WRFFVX0V0b0dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgN2E4MGQ2ODIwNjMxMWE0Zi5kNmZkZjJmMGNiYzU3NTlmLjE0YzUxYjNiMTJiYjUzZGMuMTQ3M2YwZDMwMGIwODEwMQogICAgIGJiYzE3ZDgxYWI5NTE0NjkuOTgxOGM2YjFiYjRhMWIyYS4wZWIxZWNmNTI4ODlmODIyLjAzNGI1NGE1OWQ5OGMxYjYKQEAgLTUxNDksMTMgKzUxNDksMTMgQEAKICAgICA3MTFhYWU1OTJjNGNiMGUyLjNjZGU4MjJkMGU4ODEwYjMuYWNlZDczYTJhMGMxOGQ3MS5iNjU3NzZlMTllOGFjZjUxCiAgICAgMzMyMzJjMjIzYWFkMTU4ZgogICBhZnRlcgotICAgIDdhODBkNjgyMDYzMTFhNGYuZDZmZGYyZjBjYmM1NzU5Zi4xNGM1MWIzYjEyYmI1M2RjLjE0NzNmMGQzOWQ5OGMxYjYKKyAgICA3YTgwZDY4MjA2MzExYTRmLmQ2ZmRmMmYwY2JjNTc1OWYuMTRjNTFiM2IxMmJiNTNkYy4xNDczZjBkMzAwYjA4MTAxCiAgICAgYmJjMTdkODFhYjk1MTQ2OS45ODE4YzZiMWJiNGExYjJhLjBlYjFlY2Y1Mjg4OWY4MjIuMDM0YjU0YTU5ZDk4YzFiNgogICAgIDZlMDVmMjdhMDRlZjA4OGIuNDZmNWY4YTE0OGIxM2FhMi40YzdhOGE3M2EzODc3NzlhLjcwN2VkODMxNDk1YzFjNDEKLSAgICA3MTFhYWU1OTJjNGNiMGUyLjNjZGU4MjJkMGU4ODEwYjMuYWNlZDczYTJhMGMxOGQ3MS5iNjU3NzZlMTllOGFjZjUxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE0YzUxYjNiMTJiYjUzZGMuMTQ3M2YwZDMwMGIwODEwMQogICAgIDMzMjMyYzIyM2FhZDE1OGYKIAotVk1PVlNTX1hNTV9NMzIocmVnKQorVk1PVkRRVV9FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDQxMmZmNTYxYjk1MjJiYWEuOWVjYTJlMGEzZmI3Yzg5YS5kNjIwNjJiZmE4NWJkNzBhLjA4ZDYyMjZjM2E0M2Y2ZDMKICAgICAzZWM1Y2QwOWI2MDQ0ZDRjLmQyZTJlZjc5NWEzZDBlZGUuNzAwNzkzYzViMmI1Y2I1My4zZTAwMTNiZjhlMWE2ZWViCkBAIC01MTY0LDExICs1MTY0LDExIEBACiAgICAgOGIwMzRjMjBmYTExODUzNAogICBhZnRlcgogICAgIDQxMmZmNTYxYjk1MjJiYWEuOWVjYTJlMGEzZmI3Yzg5YS5kNjIwNjJiZmE4NWJkNzBhLjA4ZDYyMjZjM2E0M2Y2ZDMKLSAgICAzZWM1Y2QwOWI2MDQ0ZDRjLmQyZTJlZjc5NWEzZDBlZGUuNzAwNzkzYzViMmI1Y2I1My4zZTAwMTNiZjhlMWE2ZWViCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY2ZGYxMmFhYzkyMjJhM2EuMjgzOWMyODZiNzUxYjBlNgogICAgIDg0MzFiMTg1Y2U0ZmI3MjIuZWEyZTZjOTM5OGU5M2NkYS42NmRmMTJhYWM5MjIyYTNhLjI4MzljMjg2Yjc1MWIwZTYKICAgICA3MGMxOWI0MzljYzBhNWQ3LmMwN2EyMTQyMTZjNzBmYmIuMTRmNGQ5ZDk4OTJlMmU2YS5hMzRiYWNhZGQyZjU3OWYwCiAgICAgOGIwMzRjMjBmYTExODUzNAotVk1PVlNTX1hNTV9NMzIobWVtKQorVk1PVkRRVV9FdG9HXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGJkMmUxZWNiNGJiMThmZGUuNWZiZjg5YWViZGUyNTIxOC4zMTkyOGI3M2YwZTM0MmFkLmQ1OTJlNmMwOGM2NjEzOGYKICAgICAxMzk1OWU5YWUyZTE1NDFiLmFiNzk3NjMyY2M0MWZiOTAuMTk0MTI0MTM0MDRhOTNkYy4wNzA0MzRjYTcxNTUxNzU2CkBAIC01MTc2LDEzICs1MTc2LDEzIEBACiAgICAgOWU0Zjk5NTQ1MTIzZmZmZS5jZTRjM2UzNTI1ZTgzMGQ4LmJmOThkODRjYjgyNzdhOWUuMmI5Nzg0Zjc0Yjg5Njc3OQogICAgIGQ1NTA3ZGYzNzhlNzJjMmQKICAgYWZ0ZXIKLSAgICBiZDJlMWVjYjRiYjE4ZmRlLjVmYmY4OWFlYmRlMjUyMTguMzE5MjhiNzNmMGUzNDJhZC5kNTkyZTZjMDcxNTUxNzU2CisgICAgYmQyZTFlY2I0YmIxOGZkZS41ZmJmODlhZWJkZTI1MjE4LjMxOTI4YjczZjBlMzQyYWQuZDU5MmU2YzA4YzY2MTM4ZgogICAgIDEzOTU5ZTlhZTJlMTU0MWIuYWI3OTc2MzJjYzQxZmI5MC4xOTQxMjQxMzQwNGE5M2RjLjA3MDQzNGNhNzE1NTE3NTYKICAgICA2YTA3NDk3OWRiYWU5MDE3LmIxMzk1ZTNiNjU2YWRiZWMuNTQ1NDZhMGQyNTA3YmM3My4wNTk3YmY2M2QxODg3NDZiCi0gICAgOWU0Zjk5NTQ1MTIzZmZmZS5jZTRjM2UzNTI1ZTgzMGQ4LmJmOThkODRjYjgyNzdhOWUuMmI5Nzg0Zjc0Yjg5Njc3OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMTkyOGI3M2YwZTM0MmFkLmQ1OTJlNmMwOGM2NjEzOGYKICAgICBkNTUwN2RmMzc4ZTcyYzJkCiAKLVZNT1ZTRF9YTU1fTTY0KHJlZykKK1ZNT1ZBUERfR3RvRV8xMjgocmVnKQogICBiZWZvcmUKICAgICA1ZTBlYThjMWY3MmJmZTMzLjhiMzgwYzE4NjA0ZDVjZmIuNWNmZTExOGRhODQ3MzRmZi4zNGQ3ZWJiZTE4YjU4ODhiCiAgICAgMjQxZDAwY2U2MWUzMWEzNi4wZDkwMWRhZjI1Mzc2NDNhLmI4OWJkM2FkODkxNDIzMGUuOTBkZDFkNGU1ZWJkYTM2MwpAQCAtNTE5MiwxMCArNTE5MiwxMCBAQAogICBhZnRlcgogICAgIDVlMGVhOGMxZjcyYmZlMzMuOGIzODBjMTg2MDRkNWNmYi41Y2ZlMTE4ZGE4NDczNGZmLjM0ZDdlYmJlMThiNTg4OGIKICAgICAyNDFkMDBjZTYxZTMxYTM2LjBkOTAxZGFmMjUzNzY0M2EuYjg5YmQzYWQ4OTE0MjMwZS45MGRkMWQ0ZTVlYmRhMzYzCi0gICAgODJjODgxODc1NDlhYmNlMy4wMDIxNDkwN2JjZWRkM2U4LjNlNmU4MDAyNjRkYTNiYjAuYWY3OGVjZThhODRjODc1NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YWM1MTRmOWQ2MjViNjkyLjZkNzNkMzc5MTI2ZGYwOGIKICAgICBkMzVkMjg1NjZjZGQyMGU1LjQwYjgwYTBiM2Y3YzY1MzEuNGFjNTE0ZjlkNjI1YjY5Mi42ZDczZDM3OTEyNmRmMDhiCiAgICAgYTY5OTRlZWJiNzJjOTkzMQotVk1PVlNEX1hNTV9NNjQobWVtKQorVk1PVkFQRF9HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDM2YjdkOTJiYjQ5NTNmNzUuNzUyNmVmYTk0NDM3ODFlOS5hOTIxZGVhNmNkZWZkNTQxLjM4ZWE4Y2ZkN2E4MmQxNjAKICAgICBmOTlhZjEyNjI0YjU5ZTgwLmMyNzBkNGViNzkzNDFjOWEuMTcyNzQwYzY3ZjUyZTA0My42NDJhZTM3OWVkN2NjOGM1CkBAIC01MjAzLDEzICs1MjAzLDEzIEBACiAgICAgODhkOWI1ZjljZTQ4NzZhMi5kMWI2ZTZlYzY3NDhlZmI2LjcyM2U5ZjQyYzUxYWI2Y2UuZTYyYjFlOGVhZTc4MzgwNgogICAgIGY0ODNmYWZlMzQ5MjJhM2EKICAgYWZ0ZXIKLSAgICAzNmI3ZDkyYmI0OTUzZjc1Ljc1MjZlZmE5NDQzNzgxZTkuYTkyMWRlYTZjZGVmZDU0MS42NDJhZTM3OWVkN2NjOGM1CisgICAgMzZiN2Q5MmJiNDk1M2Y3NS43NTI2ZWZhOTQ0Mzc4MWU5LjY2OThhYzU2NzRiMjQxNjMuMmFkMTE1ZGJjYWEwZDY2ZQogICAgIGY5OWFmMTI2MjRiNTllODAuYzI3MGQ0ZWI3OTM0MWM5YS4xNzI3NDBjNjdmNTJlMDQzLjY0MmFlMzc5ZWQ3Y2M4YzUKICAgICBjYjBiMTFjNjIzOTg3MjgxLjE4ODdkMzg4YTY2MTJkYTYuNjY5OGFjNTY3NGIyNDE2My4yYWQxMTVkYmNhYTBkNjZlCiAgICAgODhkOWI1ZjljZTQ4NzZhMi5kMWI2ZTZlYzY3NDhlZmI2LjcyM2U5ZjQyYzUxYWI2Y2UuZTYyYjFlOGVhZTc4MzgwNgogICAgIGY0ODNmYWZlMzQ5MjJhM2EKIAotVk1PVlNEX1hNTV9NNjQocmVnKQorVk1PVkFQRF9HdG9FXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGIwMjdhNjk3Zjk3YWU3YjYuMGJjZjU5YTk0MWQzNjcwZi40YjRiMGE4MzU5Nzg5Zjc4LjE3ZTY5Mzc3OTE5NmY5YjAKICAgICA3NjYxMWRjNTk4YmJhYzI1LjMyYjg3YWM0OTY0NTAwZjUuZTA5MDNjYjkxNzdhNzk5OC4zMTVjMDZkZmYxMzNjNzM0CkBAIC01MjE5LDEwICs1MjE5LDEwIEBACiAgIGFmdGVyCiAgICAgYjAyN2E2OTdmOTdhZTdiNi4wYmNmNTlhOTQxZDM2NzBmLjRiNGIwYTgzNTk3ODlmNzguMTdlNjkzNzc5MTk2ZjliMAogICAgIDc2NjExZGM1OThiYmFjMjUuMzJiODdhYzQ5NjQ1MDBmNS5lMDkwM2NiOTE3N2E3OTk4LjMxNWMwNmRmZjEzM2M3MzQKLSAgICBhMjdlNWJmNWFlZTFiNTM0LmQ4NjI5MjM1ZWNhOGZmODAuZWVkMjc3ZmEzZWRjYjljMi45YjZjNzM2NzAzZmNkYjg3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNmNWRiOGIzNmEyYTlhYTEuMzNlMjU2ZmNlM2ZkZjNkNQogICAgIDkwY2E1YzkxZDY3ODNlOGUuZDk5NzFmZTg1ZDBhMWVkYi5jZjVkYjhiMzZhMmE5YWExLjMzZTI1NmZjZTNmZGYzZDUKICAgICBkNDhhMmM4OGFjNDNjOTQ5Ci1WTU9WU0RfWE1NX002NChtZW0pCitWTU9WQVBEX0d0b0VfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNWEyZjcwZjk3YmQ5MTkxMC45YzkxMWQwN2FjMGQ4MmUwLjEwMjQ5Y2M5MDU3NzFhMzMuZTA3ZGY5NGUzNWVlNTllMgogICAgIGEwOWU5ZTNhNmJjYmExNTUuMjIxZjk5YzFjZDJiYmZkNi41YmQ1ODZjNTAxZjlhZWI0LjdlN2UzODM5M2ViNjMyMzAKQEAgLTUyMzAsMTMgKzUyMzAsMTMgQEAKICAgICBlMDBhYThkYjFmZjU0NDBjLjBiYmViMmI2NWYzNDBlNWMuOTlkMjhkYjk2MzcyOTJkZi5jYzUyOWRhYjc0ODAyMGE1CiAgICAgMzZiZGJiMGJkOTlhYWUyNAogICBhZnRlcgotICAgIDVhMmY3MGY5N2JkOTE5MTAuOWM5MTFkMDdhYzBkODJlMC4xMDI0OWNjOTA1NzcxYTMzLjdlN2UzODM5M2ViNjMyMzAKKyAgICA1YTJmNzBmOTdiZDkxOTEwLjljOTExZDA3YWMwZDgyZTAuOTU3NTU3YzY2YzlmOTg4OS4wM2FjNzBkZTFlMGU2MDM4CiAgICAgYTA5ZTllM2E2YmNiYTE1NS4yMjFmOTljMWNkMmJiZmQ2LjViZDU4NmM1MDFmOWFlYjQuN2U3ZTM4MzkzZWI2MzIzMAogICAgIDg0YTMzMjM2OTgyNjFiNDUuN2RiZmNjMmRkNTVmMmUxYi45NTc1NTdjNjZjOWY5ODg5LjAzYWM3MGRlMWUwZTYwMzgKICAgICBlMDBhYThkYjFmZjU0NDBjLjBiYmViMmI2NWYzNDBlNWMuOTlkMjhkYjk2MzcyOTJkZi5jYzUyOWRhYjc0ODAyMGE1CiAgICAgMzZiZGJiMGJkOTlhYWUyNAogCi1WTU9WU0RfWE1NX002NChyZWcpCitWTU9WQVBEX0d0b0VfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOWIzYWM3NmFlYmU4NDY2MS45MjlmN2QxNDFiNDRkN2Q1LjI3Njk0N2M4MDczNjk5NDQuNDViNmEzOGIwMTgwNThlMQogICAgIDU4MTNiYjM0NDZmNDIzMDcuNzUyZTJjY2VhOTIwOTFjYy4yZDBhODhjZjZhZjEwYzgwLjczZWUxNTI2NjJkNGE4YmMKQEAgLTUyNDYsMTAgKzUyNDYsMTAgQEAKICAgYWZ0ZXIKICAgICA5YjNhYzc2YWViZTg0NjYxLjkyOWY3ZDE0MWI0NGQ3ZDUuMjc2OTQ3YzgwNzM2OTk0NC40NWI2YTM4YjAxODA1OGUxCiAgICAgNTgxM2JiMzQ0NmY0MjMwNy43NTJlMmNjZWE5MjA5MWNjLjJkMGE4OGNmNmFmMTBjODAuNzNlZTE1MjY2MmQ0YThiYwotICAgIGM5OTQ5NWQ1ODU0ZDgyYzMuNjQ4MjMxZjNlNTk0MmUxZi43OGVlNzAzNzIzZjJhM2JiLjAxNDc2MDc4YTQ3YTNjOWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjY2MGZiNmNjZmM1OTlhMi5jOThhZmU2Y2UwN2ZkMWFiCiAgICAgNGEwYjUxYjk0NTdjOWY0MC4zZDY5MDg3MGVhYWM2YWY3LjY2NjBmYjZjY2ZjNTk5YTIuYzk4YWZlNmNlMDdmZDFhYgogICAgIGE5ODY2ZGVkMzRlZTIyMTgKLVZNT1ZTRF9YTU1fTTY0KG1lbSkKK1ZNT1ZBUERfR3RvRV8xMjgobWVtKQogICBiZWZvcmUKICAgICA3YjA2MjhlOWJjZDRlZDBkLjM3YzNlOTRjMjEwZmI2MmIuZGFhZDJlMzFkNDc1MDE4My41MWFlMjVkYTA5ZjQyYmUxCiAgICAgMWRkNWFjNGI5MzNiZWNiNy5lYzA3NWJmYmI1OTEwMjMwLjE4MWIxZDIzYzBmYWFlZWQuOTcyMmViZWQ2ZTBkOTUyMwpAQCAtNTI1NywxMyArNTI1NywxMyBAQAogICAgIDNjOTRmYmYyOWZjMjc4ZDkuMWU2NmJhNTk3ODkzMmIzNi5lOGE0NGI0NjBiNmEzYzBkLmEwYjAzOGIzMjcyYmUwNjMKICAgICAxYjYxYjczZWIzNDgzOWI4CiAgIGFmdGVyCi0gICAgN2IwNjI4ZTliY2Q0ZWQwZC4zN2MzZTk0YzIxMGZiNjJiLmRhYWQyZTMxZDQ3NTAxODMuOTcyMmViZWQ2ZTBkOTUyMworICAgIDdiMDYyOGU5YmNkNGVkMGQuMzdjM2U5NGMyMTBmYjYyYi5kNDdmNTMzMGM5NDgyZTYyLjkyMGE0ODEyOTk5YjEzMTUKICAgICAxZGQ1YWM0YjkzM2JlY2I3LmVjMDc1YmZiYjU5MTAyMzAuMTgxYjFkMjNjMGZhYWVlZC45NzIyZWJlZDZlMGQ5NTIzCiAgICAgNjljMDczMDBkNTMxZGI0Mi5jNTI0YTEzMDllOGVjMGZhLmQ0N2Y1MzMwYzk0ODJlNjIuOTIwYTQ4MTI5OTliMTMxNQogICAgIDNjOTRmYmYyOWZjMjc4ZDkuMWU2NmJhNTk3ODkzMmIzNi5lOGE0NGI0NjBiNmEzYzBkLmEwYjAzOGIzMjcyYmUwNjMKICAgICAxYjYxYjczZWIzNDgzOWI4CiAKLVZNT1ZTU19NNjRfWE1NKHJlZykKK1ZNT1ZBUERfR3RvRV8yNTYocmVnKQogICBiZWZvcmUKICAgICA2MTY5YzExZWRhN2U1YWMxLjczMWJiZjBlMGRmOTdkYTguNTMxOTlmZTBkZTJiODE4Zi4zMTU4ODI1MGE0NmM5NjFiCiAgICAgY2MxMzUzYmUzNzVhN2UyOS5lODIxM2I0MTM5ZTJhN2RkLmMwODk0ZDMzNmNlM2ZjYjIuOGM2NTcyM2FhZDVhZjZiNwpAQCAtNTI3MywxMCArNTI3MywxMCBAQAogICBhZnRlcgogICAgIDYxNjljMTFlZGE3ZTVhYzEuNzMxYmJmMGUwZGY5N2RhOC41MzE5OWZlMGRlMmI4MThmLjMxNTg4MjUwYTQ2Yzk2MWIKICAgICBjYzEzNTNiZTM3NWE3ZTI5LmU4MjEzYjQxMzllMmE3ZGQuYzA4OTRkMzM2Y2UzZmNiMi44YzY1NzIzYWFkNWFmNmI3Ci0gICAgYjlhZDY4OGM2NzY3ZTI5ZC43ODc0ZWM3NTQyODliMWEyLmMxMDFjMWJkYmY0NWQ5NGIuZDM5ODk5ZjA0NDQxMTgwZQorICAgIDg1ODFmY2YzMDUzMWMyYzguZmZkZjRjOTg0MmZiNTkyMy5iMmNmZjZlYTcyZTA1MzA1LmUzYmU3MjVlODUyY2JhNGMKICAgICA4NTgxZmNmMzA1MzFjMmM4LmZmZGY0Yzk4NDJmYjU5MjMuYjJjZmY2ZWE3MmUwNTMwNS5lM2JlNzI1ZTg1MmNiYTRjCiAgICAgOThhMDc5NzA4YjI4OTY5YwotVk1PVlNTX002NF9YTU0obWVtKQorVk1PVkFQRF9HdG9FXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGNlMGQyYjEyNzI0MDY5MmIuOGFkYzBiNWZhZDQ1NWE1Ny41YTJkZDk5NDU1NDQ1OThkLmVlM2RlODI2MjIzZGE3OGQKICAgICA2MmQwMDMzMTU3ODBlZTI0LjI1MGE5MjNkZmMyZWU1ZjYuNjMyYjBlNTc5ODZlNmUwYy5kMzk4OTRkZDZhZWExMThlCkBAIC01Mjg0LDEzICs1Mjg0LDEzIEBACiAgICAgMGY4NzE1OTE4YWE5MDIwNy44ZTBmZjRmYWZlYjBjNzEyLmYyNjc2MWRmMWI5YWM1ZjcuMDU0NTA2NmQzNDYyMTZhZAogICAgIDA5MmZjNTFkZWU0NDJhMjMKICAgYWZ0ZXIKLSAgICBjZTBkMmIxMjcyNDA2OTJiLjhhZGMwYjVmYWQ0NTVhNTcuNWEyZGQ5OTQ1NTQ0NTk4ZC5lZTNkZTgyNjIyM2RhNzhkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAyMjNkYTc4ZAorICAgIDJlYjQ3Y2I3NTZmNWUzYjQuYjM1NzhiZjc4ZTc4YTA1MC5mN2E1NjdjYzI2ODc1M2NiLmJjMmNmNDdiZTc3MmNkYjUKKyAgICA2MmQwMDMzMTU3ODBlZTI0LjI1MGE5MjNkZmMyZWU1ZjYuNjMyYjBlNTc5ODZlNmUwYy5kMzk4OTRkZDZhZWExMThlCiAgICAgMmViNDdjYjc1NmY1ZTNiNC5iMzU3OGJmNzhlNzhhMDUwLmY3YTU2N2NjMjY4NzUzY2IuYmMyY2Y0N2JlNzcyY2RiNQogICAgIDBmODcxNTkxOGFhOTAyMDcuOGUwZmY0ZmFmZWIwYzcxMi5mMjY3NjFkZjFiOWFjNWY3LjA1NDUwNjZkMzQ2MjE2YWQKICAgICAwOTJmYzUxZGVlNDQyYTIzCiAKLVZNT1ZTU19NNjRfWE1NKHJlZykKK1ZNT1ZBUERfR3RvRV8yNTYocmVnKQogICBiZWZvcmUKICAgICAyNjM1MmRmOWIwYTc0MmMzLmUxMTM0N2FjMGZhYjA4NDguMTM3ZGM4YjNlODYxOTZlNy4zMDNkNzc3Yzk1YjQ4MGJiCiAgICAgYjdhNDNiNmIxNjE0OWQzOC44MDI1OGZmMzAyMDRiMGE0LjllZWYwNDhjZTkxNzQ4N2MuOGRmMjI1OGZhZGUwNDA0NApAQCAtNTMwMCwxMCArNTMwMCwxMCBAQAogICBhZnRlcgogICAgIDI2MzUyZGY5YjBhNzQyYzMuZTExMzQ3YWMwZmFiMDg0OC4xMzdkYzhiM2U4NjE5NmU3LjMwM2Q3NzdjOTViNDgwYmIKICAgICBiN2E0M2I2YjE2MTQ5ZDM4LjgwMjU4ZmYzMDIwNGIwYTQuOWVlZjA0OGNlOTE3NDg3Yy44ZGYyMjU4ZmFkZTA0MDQ0Ci0gICAgMTdjOGVhZTFiZDE5NzUyZi5jODg5NmE1MjdlYzJiNzQ2LjhiYWZhMmYzOWM1ZjFhN2QuZTU1NGU3MDQ4MTJhYzBiZQorICAgIGE0ZWQzNmM2NDE0MTA3NTQuOTUwYTUzYjRhMGYxZDk1Yi4zNjBhYTA1MzllYzQ0Nzk1LjE0MmQzOWM4MmQ5ZmJkNTQKICAgICBhNGVkMzZjNjQxNDEwNzU0Ljk1MGE1M2I0YTBmMWQ5NWIuMzYwYWEwNTM5ZWM0NDc5NS4xNDJkMzljODJkOWZiZDU0CiAgICAgZjY0YTk4YzVjYzRhZjMzMwotVk1PVlNTX002NF9YTU0obWVtKQorVk1PVkFQRF9HdG9FXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDY3Nzc3ZmU5N2EzNzFlODYuYjg1ZjFiODYzZDE5OGY1Mi5jMzc2YzYwNzgzOWJkMjBmLmZiNGNmOTE4OGFkMjBkNzEKICAgICA0MzgwNmExZTU0NzNmOTdhLmIxNmE5NThkNGQyYzQ4ZDYuMmU5NzQwMzc0NGNlNWQ4ZC4zNmMxYTlhZGZkMTZhNmJjCkBAIC01MzExLDEzICs1MzExLDEzIEBACiAgICAgYWI1NTNjNzBmYjA1YjFmNC5iZTdhMzkyMDFjMzQ0MDFlLjJhMmIzNWQ5Y2VmZDFjOTkuN2U3MzAwZmRlNjZlNDM1MgogICAgIDQzNDg5ZThlOTQ5YWJmZjQKICAgYWZ0ZXIKLSAgICA2Nzc3N2ZlOTdhMzcxZTg2LmI4NWYxYjg2M2QxOThmNTIuYzM3NmM2MDc4MzliZDIwZi5mYjRjZjkxODhhZDIwZDcxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4YWQyMGQ3MQorICAgIDY1MzBkNTUyNzYwOTQxM2EuZTk1YWExNDcwZTA2NzA4Yi5iMTNhM2MyZWZlOTUzNzAyLjQzYjRhZDgwOTIxYjRmMjMKKyAgICA0MzgwNmExZTU0NzNmOTdhLmIxNmE5NThkNGQyYzQ4ZDYuMmU5NzQwMzc0NGNlNWQ4ZC4zNmMxYTlhZGZkMTZhNmJjCiAgICAgNjUzMGQ1NTI3NjA5NDEzYS5lOTVhYTE0NzBlMDY3MDhiLmIxM2EzYzJlZmU5NTM3MDIuNDNiNGFkODA5MjFiNGYyMwogICAgIGFiNTUzYzcwZmIwNWIxZjQuYmU3YTM5MjAxYzM0NDAxZS4yYTJiMzVkOWNlZmQxYzk5LjdlNzMwMGZkZTY2ZTQzNTIKICAgICA0MzQ4OWU4ZTk0OWFiZmY0CiAKLVZNT1ZTU19NNjRfWE1NKHJlZykKK1ZNT1ZBUERfR3RvRV8yNTYocmVnKQogICBiZWZvcmUKICAgICBlZTgwODNhMDM5MmJmZmI2LmYwYjkxYzY0ZmY3NDA3ZDEuOGExNzViODQxMjQxZjczYS43NDM2YWEyNGNmMTFjODdmCiAgICAgZGI2N2FiYTA3MGFkM2Y0My4xMDI5ZjAxYTlmNjFmZDAwLmFhN2QwM2RmOGNiOWNmOGMuNmIyNzE0ZmMxZWRlZjZlMApAQCAtNTMyNywxMCArNTMyNywxMCBAQAogICBhZnRlcgogICAgIGVlODA4M2EwMzkyYmZmYjYuZjBiOTFjNjRmZjc0MDdkMS44YTE3NWI4NDEyNDFmNzNhLjc0MzZhYTI0Y2YxMWM4N2YKICAgICBkYjY3YWJhMDcwYWQzZjQzLjEwMjlmMDFhOWY2MWZkMDAuYWE3ZDAzZGY4Y2I5Y2Y4Yy42YjI3MTRmYzFlZGVmNmUwCi0gICAgNjY0OTEzZjhkNWFkYmE0OC5lNjcxMzQ3ZWY2ZDg1MGFiLjdiZjgyYjllMjcyOTA1YzAuZWFjYWYwNGJkNjZlNjNlNworICAgIGVhNzJiNTE2MDViNmFkNzEuNTA1ZDY1N2MyMWU2YmJmZS41N2Q0ZDEyYjdlMWNkNTgxLmNmZWFiYmZmMTNjZmNiYzEKICAgICBlYTcyYjUxNjA1YjZhZDcxLjUwNWQ2NTdjMjFlNmJiZmUuNTdkNGQxMmI3ZTFjZDU4MS5jZmVhYmJmZjEzY2ZjYmMxCiAgICAgZjU1NGYwMDNmMjBkZTk5OQotVk1PVlNTX002NF9YTU0obWVtKQorVk1PVkFQRF9HdG9FXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDM3ZDQwYjQzOGYzMjdhOWMuYzUyZDhmNjQ5YzU1NTQ2OS4yOWI5ZmQwMDNiOTZmYzI2LjliNWRmMGY0MmUxZTdiN2MKICAgICA3MzM2ODlhYTA1NGMzYWY1LjUyYzg5ZDUwMzUxNWViZGQuNGM1MDdhZjc2MWY0Y2Q0Zi5hNGRlODQ2NGQyYmMzMjVkCkBAIC01MzM4LDEzICs1MzM4LDEzIEBACiAgICAgNDVkMDlhYTNlZDhlMzY1Yy5mMWM5NDFhZmRlMjhkN2U3LmU0NjMxMGVhM2ZlYzExNTIuNzBmYmZjZTk2OGY5YzU3ZQogICAgIGVjMmZkN2Q2OTJiMTFhMTcKICAgYWZ0ZXIKLSAgICAzN2Q0MGI0MzhmMzI3YTljLmM1MmQ4ZjY0OWM1NTU0NjkuMjliOWZkMDAzYjk2ZmMyNi45YjVkZjBmNDJlMWU3YjdjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAyZTFlN2I3YworICAgIDg0NDZlNDI2NzA2N2U1ZDEuZWQ4ZGQ5NDU2YzgyYWQ3OC45N2YwNTc0YmFlMGRlYWE0LmNjYTQ4OWU3MDc4MTM3Y2YKKyAgICA3MzM2ODlhYTA1NGMzYWY1LjUyYzg5ZDUwMzUxNWViZGQuNGM1MDdhZjc2MWY0Y2Q0Zi5hNGRlODQ2NGQyYmMzMjVkCiAgICAgODQ0NmU0MjY3MDY3ZTVkMS5lZDhkZDk0NTZjODJhZDc4Ljk3ZjA1NzRiYWUwZGVhYTQuY2NhNDg5ZTcwNzgxMzdjZgogICAgIDQ1ZDA5YWEzZWQ4ZTM2NWMuZjFjOTQxYWZkZTI4ZDdlNy5lNDYzMTBlYTNmZWMxMTUyLjcwZmJmY2U5NjhmOWM1N2UKICAgICBlYzJmZDdkNjkyYjExYTE3CiAKLVZNT1ZTRF9NNjRfWE1NKHJlZykKK1ZNT1ZBUFNfR3RvRV8xMjgocmVnKQogICBiZWZvcmUKICAgICA5YzhjMTgxYTIwMzQ3MDQ2Ljk0OWYyNjBiOTdjZGVhYzEuYmNjOGQwZmEyNjk0YTVkNS4xMTc2MjJiZTJmOWRmYzg1CiAgICAgZGM1ZWJiMjFhZTBlMDNiNy40YjgxMDQ0YjhiMzBiZDJkLmE5ZDY4MjkyZTE1MTUyZWYuZjhmNTA3YjU5YTJkNjg2OApAQCAtNTM1NCwxMCArNTM1NCwxMCBAQAogICBhZnRlcgogICAgIDljOGMxODFhMjAzNDcwNDYuOTQ5ZjI2MGI5N2NkZWFjMS5iY2M4ZDBmYTI2OTRhNWQ1LjExNzYyMmJlMmY5ZGZjODUKICAgICBkYzVlYmIyMWFlMGUwM2I3LjRiODEwNDRiOGIzMGJkMmQuYTlkNjgyOTJlMTUxNTJlZi5mOGY1MDdiNTlhMmQ2ODY4Ci0gICAgMDhmMGJhNTdkOWNjMTExNS40NzQwYjE1MGU0YzQ2YWNjLjEzM2U1M2UzYWFlYzFiZTEuNzdhYzNkYmE5ZGE3MTAyNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ODRlM2Y1YTFlZjAzYzU2LjY4NjYzZmI5NTQxOGIyZjAKICAgICA3YzkwMTMyOTNkZjlkNDBjLjY1YTlhODA0YmY5NGFlYzkuNTg0ZTNmNWExZWYwM2M1Ni42ODY2M2ZiOTU0MThiMmYwCiAgICAgYTlmMThhOWVkYThhMDhlZAotVk1PVlNEX002NF9YTU0obWVtKQorVk1PVkFQU19HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDE0MTc5ODU1NGIwY2NlNGEuOTQ4OGMxMDE3NTIyODk0OS43Zjg4NjU1NTM3YWQ0NTUwLmQyNTA0MzYxZDhlOWYxZmIKICAgICA4NmE1ZTdjYWM0YTdjMjM0LmFjMjVjMDRkMWRkMTZjNzguNzNhODY0MmQ2OTE5ZWI4Zi5kZjkxNWE2Njc1NjQ3NTdjCkBAIC01MzY1LDEzICs1MzY1LDEzIEBACiAgICAgZjAyOTM1OWYzZDVkMWY1ZS40YzdlYTFlZDJmZjdhYTViLjU0ZGYxOTI3NjkyMDUyZGYuMWUwMGIyMTZjNjBkZGRjMAogICAgIDA4YzZlYTlhYjI1NDM4ZGIKICAgYWZ0ZXIKLSAgICAxNDE3OTg1NTRiMGNjZTRhLjk0ODhjMTAxNzUyMjg5NDkuN2Y4ODY1NTUzN2FkNDU1MC5kMjUwNDM2MWQ4ZTlmMWZiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDI1MDQzNjFkOGU5ZjFmYgorICAgIDE0MTc5ODU1NGIwY2NlNGEuOTQ4OGMxMDE3NTIyODk0OS4xYmQ3MjE3YTcwZTY1YmIwLmQ5NWQ4MGQzOTBlYzA1ODQKKyAgICA4NmE1ZTdjYWM0YTdjMjM0LmFjMjVjMDRkMWRkMTZjNzguNzNhODY0MmQ2OTE5ZWI4Zi5kZjkxNWE2Njc1NjQ3NTdjCiAgICAgZGM2N2YyZWE2MTY5OWVkNy4yMGIzMGM3N2QyOTRiODQ1LjFiZDcyMTdhNzBlNjViYjAuZDk1ZDgwZDM5MGVjMDU4NAogICAgIGYwMjkzNTlmM2Q1ZDFmNWUuNGM3ZWExZWQyZmY3YWE1Yi41NGRmMTkyNzY5MjA1MmRmLjFlMDBiMjE2YzYwZGRkYzAKICAgICAwOGM2ZWE5YWIyNTQzOGRiCiAKLVZNT1ZTRF9NNjRfWE1NKHJlZykKK1ZNT1ZBUFNfR3RvRV8xMjgocmVnKQogICBiZWZvcmUKICAgICBmNGZhMjZjYmYxNGM1MzgyLjlmYjcyY2Q3NzQ5MDAwZjYuOGNkMTdjMWFkMTg1N2U2Ni5mYThlYzcyMDZmZDI4YzQ5CiAgICAgM2ZlOTYxMTUxZTgxNmE2MC5jNWRjNTQ3YzIzMGRmZmNhLjNjZmE5ODZhNTRjYTZmMTMuZWFhZWE3NTE5ZjA4YzQxYQpAQCAtNTM4MSwxMCArNTM4MSwxMCBAQAogICBhZnRlcgogICAgIGY0ZmEyNmNiZjE0YzUzODIuOWZiNzJjZDc3NDkwMDBmNi44Y2QxN2MxYWQxODU3ZTY2LmZhOGVjNzIwNmZkMjhjNDkKICAgICAzZmU5NjExNTFlODE2YTYwLmM1ZGM1NDdjMjMwZGZmY2EuM2NmYTk4NmE1NGNhNmYxMy5lYWFlYTc1MTlmMDhjNDFhCi0gICAgNDNlMDk4ZTRkNTgwYjkyMi4zZjY1Mjg3YzY1ZTBkNjA3LmI4NDNmMTQ5NTI1MmJiMGUuZmUwYzM1YTYxNGNmYjc3ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41Y2Y5ODQyMzZhYWE5YzAyLjEzNzNlZDBiZWEzMTIxOWYKICAgICA1ZDI5YzVhNGIzZDQ3Yjc0LmU3MWYyNGMyNTcxNTQyZDkuNWNmOTg0MjM2YWFhOWMwMi4xMzczZWQwYmVhMzEyMTlmCiAgICAgMDViMTRjNmQzZTNkYmVhYgotVk1PVlNEX002NF9YTU0obWVtKQorVk1PVkFQU19HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGIwOTBjZGI2MmNmYzQ5Y2UuZTkxMGU2YzE1NDA5ZWQwMS45YWQ0YzQzYTE0YjlmZTZiLjgzNjg0YjY0MzU1ZDRlOWMKICAgICBmMGRlZWNkNGNlN2M3ZjM0LjQ0ZTNmNmE4NTJhYzRiNzYuMzQ1MTg1ZDBiOWQ3YzdlYS44YmRjNDQ3OTUxZjgwZjg4CkBAIC01MzkyLDEzICs1MzkyLDEzIEBACiAgICAgOWZmMmY1M2JhNWVkZGM3Ny5kMjc5ZDM4MGRjNjliOWM2LjhkZDI1NzA2MjhiMzcwNWQuYWEwMmJhY2FlYjEzYTkwNAogICAgIDdhNGMyZWUwYTFhY2ZhZWMKICAgYWZ0ZXIKLSAgICBiMDkwY2RiNjJjZmM0OWNlLmU5MTBlNmMxNTQwOWVkMDEuOWFkNGM0M2ExNGI5ZmU2Yi44MzY4NGI2NDM1NWQ0ZTljCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODM2ODRiNjQzNTVkNGU5YworICAgIGIwOTBjZGI2MmNmYzQ5Y2UuZTkxMGU2YzE1NDA5ZWQwMS45MTYxZTI3MDYxN2M1OTgxLmNmYTA2YWNjNWEwNjE5NzEKKyAgICBmMGRlZWNkNGNlN2M3ZjM0LjQ0ZTNmNmE4NTJhYzRiNzYuMzQ1MTg1ZDBiOWQ3YzdlYS44YmRjNDQ3OTUxZjgwZjg4CiAgICAgYTE2NTI1YjE0M2M4MWMwOC5jOGVkZjFjMzRjNDhkMDdlLjkxNjFlMjcwNjE3YzU5ODEuY2ZhMDZhY2M1YTA2MTk3MQogICAgIDlmZjJmNTNiYTVlZGRjNzcuZDI3OWQzODBkYzY5YjljNi44ZGQyNTcwNjI4YjM3MDVkLmFhMDJiYWNhZWIxM2E5MDQKICAgICA3YTRjMmVlMGExYWNmYWVjCiAKLVZNT1ZTRF9NNjRfWE1NKHJlZykKK1ZNT1ZBUFNfR3RvRV8xMjgocmVnKQogICBiZWZvcmUKICAgICA5YWNiYzQ3OTE3NWM0YWQ2LmM2NTFkNzVkMTBmNjdhYWMuYmVkNDk5NDk5ZTljNDJmYS4wNDZlNjA3ZTJiODhjN2FhCiAgICAgNjVjYjc3MDFlOWFmZDM2ZC5mMjRkNDcwM2ExZWZiM2Q0LmU4NGEzZThjMmY2Y2E3YzUuZDIwMjc5YzQ4NjA4MWI5MwpAQCAtNTQwOCwxMCArNTQwOCwxMCBAQAogICBhZnRlcgogICAgIDlhY2JjNDc5MTc1YzRhZDYuYzY1MWQ3NWQxMGY2N2FhYy5iZWQ0OTk0OTllOWM0MmZhLjA0NmU2MDdlMmI4OGM3YWEKICAgICA2NWNiNzcwMWU5YWZkMzZkLmYyNGQ0NzAzYTFlZmIzZDQuZTg0YTNlOGMyZjZjYTdjNS5kMjAyNzljNDg2MDgxYjkzCi0gICAgMzk5ODQzZTNiNDMxZDE1ZS5mZmI0YzExOTczZTU0MjFiLmFjMjdiZWI0MmE2NTIzZDQuZDM1YjFmYzU1NDNlMjg0NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42NmI3MTUyZDJjMTRmM2QyLmUzNDJjZDZiYjIzNmFhZWIKICAgICA3MDdlMjQ4ZDE0NmY4MjU1LmM5NTBjMThiYTNlM2U1YWMuNjZiNzE1MmQyYzE0ZjNkMi5lMzQyY2Q2YmIyMzZhYWViCiAgICAgZGU4NmZmYTRiYWZkNWNiMgotVk1PVlNEX002NF9YTU0obWVtKQorVk1PVkFQU19HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDlmZjIzMTViOGI5ZWZiYzYuNjhjODE3NmJhNGY1MjBmZC4yY2VlYzQ0NTRjZjU1NmI0LjcyNDY0MDYzZDAwNDUzNmMKICAgICAwNDUxZGY3YjNmMjU0MjUyLjdiYzQxN2U3MDA0ZGU4MDMuMDQ1YTQ1MzM4YjI4NTI1ZS4yYzFmMzljMmIzYzI3ZjRlCkBAIC01NDE5LDEzICs1NDE5LDEzIEBACiAgICAgMjcxY2ExYWJjMTE3YmM4NC42NmZkMmU2YzhlYThlNWQ4LjgyY2NiMTVjMzgxZWRhNGEuMWFlMzhhYWJhM2Q1Mjk5OAogICAgIDA2NjVkYTBlZWE0MjIwNTgKICAgYWZ0ZXIKLSAgICA5ZmYyMzE1YjhiOWVmYmM2LjY4YzgxNzZiYTRmNTIwZmQuMmNlZWM0NDU0Y2Y1NTZiNC43MjQ2NDA2M2QwMDQ1MzZjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzI0NjQwNjNkMDA0NTM2YworICAgIDlmZjIzMTViOGI5ZWZiYzYuNjhjODE3NmJhNGY1MjBmZC4yZDYwYzA0MTdiODc5NGQ3LmYwOGZmZWI2NzBkOGIyMjMKKyAgICAwNDUxZGY3YjNmMjU0MjUyLjdiYzQxN2U3MDA0ZGU4MDMuMDQ1YTQ1MzM4YjI4NTI1ZS4yYzFmMzljMmIzYzI3ZjRlCiAgICAgZTg3MTg2ZjJmMjlmZWY4My4wNmJjMjA2ZWM1MDUxNTEzLjJkNjBjMDQxN2I4Nzk0ZDcuZjA4ZmZlYjY3MGQ4YjIyMwogICAgIDI3MWNhMWFiYzExN2JjODQuNjZmZDJlNmM4ZWE4ZTVkOC44MmNjYjE1YzM4MWVkYTRhLjFhZTM4YWFiYTNkNTI5OTgKICAgICAwNjY1ZGEwZWVhNDIyMDU4CiAKLVZJTlNFUlRQU18weDM5XzEyOChyZWcpCitWTU9WQVBTX0d0b0VfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMGY2MWU4NDlkZWFkZDIxMC45YzFmYWM5MmM3OTk2NjgyLmY1ZDMzZDRlZjhjMzkyZmUuZTE2YTk1NmVkZmZhZGRlNAogICAgIDkzMjViMmNhMWRhMTdjNmMuMjU0NjIzOTQyMTMyYThhOC4xMDhhNGE3ZTlmZTE1ODMzLjI1MDVlNjY1OGMyNjVjZDEKQEAgLTU0MzMsMTIgKzU0MzMsMTIgQEAKICAgICA3OTMxNjc0YWViNTVhN2JlLmRmMmY0Nzk0M2ZkNmU4MWYuNWJjYTRiN2QxMDU3MjM3NC5jYjY1YzVhZjY1OWZiYTUyCiAgICAgZTZjMjQ5ZGFjYTA0MTEzZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDlmZTE1ODMzLjI1MDVlNjY1MDAwMDAwMDAKKyAgICAwZjYxZTg0OWRlYWRkMjEwLjljMWZhYzkyYzc5OTY2ODIuZjVkMzNkNGVmOGMzOTJmZS5lMTZhOTU2ZWRmZmFkZGU0CiAgICAgOTMyNWIyY2ExZGExN2M2Yy4yNTQ2MjM5NDIxMzJhOGE4LjEwOGE0YTdlOWZlMTU4MzMuMjUwNWU2NjU4YzI2NWNkMQotICAgIGVkZmMzM2ZjNDNhYjVhMTcuOWQ1YzgzOWJlYWVkNDAyMy4xNDZkNTA2YTFkOGU3NTIxLjI5NmEyMjJjNWFhZTEyM2QKKyAgICA3OTMxNjc0YWViNTVhN2JlLmRmMmY0Nzk0M2ZkNmU4MWYuNWJjYTRiN2QxMDU3MjM3NC5jYjY1YzVhZjY1OWZiYTUyCiAgICAgNzkzMTY3NGFlYjU1YTdiZS5kZjJmNDc5NDNmZDZlODFmLjViY2E0YjdkMTA1NzIzNzQuY2I2NWM1YWY2NTlmYmE1MgogICAgIGU2YzI0OWRhY2EwNDExM2YKLVZJTlNFUlRQU18weDM5XzEyOChtZW0pCitWTU9WQVBTX0d0b0VfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNTU0ZDJjOTlhNWU5ZDIyZS45MjExNGIyMmIxMmVhMTBjLmM5ODllYjZjM2JmYTVjYzcuNDJlYjM3MjIxNGM3OWZkOQogICAgIGY2ZDJlOGQ4MTE1YmJhNGMuOTZlOGQ5ZWYzMmJmODJhZS4zNjM3ZWIwZGZiNjQ1YTQ4LjI1MWQxMWM3YzQ2YjI0ZmMKQEAgLTU0NDYsMTMgKzU0NDYsMTMgQEAKICAgICAzYWY5ZTE4NjBkMTRlZmMzLmNiYWJlODE4ZDMzZWViOWMuMDhiZmYwNWYzNTNiZGY4NC41MGU0N2NiZTlhN2IzZDJhCiAgICAgNGYxMTA1ZTlmODAxNDg4ZAogICBhZnRlcgotICAgIDU1NGQyYzk5YTVlOWQyMmUuOTIxMTRiMjJiMTJlYTEwYy5jOTg5ZWI2YzNiZmE1Y2M3LjQyZWIzNzIyMTRjNzlmZDkKKyAgICBhMzFjZmM4MzJhNjU4NWM0LmUwMDIwZjFkMDk5Njg2NGYuMDEwNmMzNjU5YTIwOWNjZS42MGFjZDRkN2JkY2RmMDg4CiAgICAgZjZkMmU4ZDgxMTViYmE0Yy45NmU4ZDllZjMyYmY4MmFlLjM2MzdlYjBkZmI2NDVhNDguMjUxZDExYzdjNDZiMjRmYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNjM3ZWIwZDAwMDAwMDAwLjAwMDAwMDAwMTRjNzlmZDkKKyAgICBhMzFjZmM4MzJhNjU4NWM0LmUwMDIwZjFkMDk5Njg2NGYuMDEwNmMzNjU5YTIwOWNjZS42MGFjZDRkN2JkY2RmMDg4CiAgICAgM2FmOWUxODYwZDE0ZWZjMy5jYmFiZTgxOGQzM2VlYjljLjA4YmZmMDVmMzUzYmRmODQuNTBlNDdjYmU5YTdiM2QyYQogICAgIDRmMTEwNWU5ZjgwMTQ4OGQKIAotVklOU0VSVFBTXzB4MzlfMTI4KHJlZykKK1ZNT1ZBUFNfR3RvRV8yNTYocmVnKQogICBiZWZvcmUKICAgICBiYTdlNmJjMjcyZTk0YzVlLjk1MzMxNGNlZDU3M2I0NzQuYjUyZjYxNGQyYjQ0ZWI0MS4yNTMxZWRlN2U3YzBkZTk3CiAgICAgZWQ3OWFiYjZhNGMyODY0OS45MTk3MTI0NTlmOGU4ZjA0LmY4ZDk3NDI2YWUzM2MzZTkuMzUyNzM2ZTljY2JjNTczMgpAQCAtNTQ2MCwxMiArNTQ2MCwxMiBAQAogICAgIDFiNDRhNmEwYTM3MDhjMWIuZGQwYzVjNzRhNzI5Nzk3MC5mZGQyNWQ3OGEzZmRlYWY1LjlmY2U5ZDBiYTI0NmExYjIKICAgICBiMDE3YjMwM2M5ZWNlY2VmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwYWUzM2MzZTkuMzUyNzM2ZTkwMDAwMDAwMAorICAgIGJhN2U2YmMyNzJlOTRjNWUuOTUzMzE0Y2VkNTczYjQ3NC5iNTJmNjE0ZDJiNDRlYjQxLjI1MzFlZGU3ZTdjMGRlOTcKICAgICBlZDc5YWJiNmE0YzI4NjQ5LjkxOTcxMjQ1OWY4ZThmMDQuZjhkOTc0MjZhZTMzYzNlOS4zNTI3MzZlOWNjYmM1NzMyCi0gICAgNDQ0Y2MwMzIyYjE1MzJmOS4wYmYxNTZkOTg2NzEzZDlmLmYyZjYxZjEwZjc5N2FlNDEuMTU2YzQ3NTEwMTNhMDQ4MgorICAgIDFiNDRhNmEwYTM3MDhjMWIuZGQwYzVjNzRhNzI5Nzk3MC5mZGQyNWQ3OGEzZmRlYWY1LjlmY2U5ZDBiYTI0NmExYjIKICAgICAxYjQ0YTZhMGEzNzA4YzFiLmRkMGM1Yzc0YTcyOTc5NzAuZmRkMjVkNzhhM2ZkZWFmNS45ZmNlOWQwYmEyNDZhMWIyCiAgICAgYjAxN2IzMDNjOWVjZWNlZgotVklOU0VSVFBTXzB4MzlfMTI4KG1lbSkKK1ZNT1ZBUFNfR3RvRV8yNTYobWVtKQogICBiZWZvcmUKICAgICAyNTE0MDUyNTk1Mzk5ZjY1LmNlYWQ1OTZlYTY1ZWNmNWEuZTRiNmEwMDQxZGMxMDBhNC43N2I5MmFjOTRkZjBiMWIwCiAgICAgZDg5MDBmNWUyMDM4NzczZi5iOWQyZDYwN2QzNmIzODYzLmZkYjk5Zjc0MDU0NjhmNjcuYmFmNzgyNmU5MmZjM2YxZgpAQCAtNTQ3MywxMyArNTQ3MywxMyBAQAogICAgIDZiM2EzY2MxZTQ3ZTg1ZDEuYTY4NDFhNGExNTE0NmM4Mi5kMGZlYmJhNDk4NDRhZjQ3LjBmYTdjNTY5NWE5MWE0YzcKICAgICBkOGIyYTc5NjE3MzFmMjU4CiAgIGFmdGVyCi0gICAgMjUxNDA1MjU5NTM5OWY2NS5jZWFkNTk2ZWE2NWVjZjVhLmU0YjZhMDA0MWRjMTAwYTQuNzdiOTJhYzk0ZGYwYjFiMAorICAgIGE2NTk0ZDk4ODZmNjJmYWEuMzcwMTE3ZDdjNDI0MDNlMi4wMmUzZDRiMDdhYzJkZmU0LjI0ZDg2MmQ1MGRhZWQyZWQKICAgICBkODkwMGY1ZTIwMzg3NzNmLmI5ZDJkNjA3ZDM2YjM4NjMuZmRiOTlmNzQwNTQ2OGY2Ny5iYWY3ODI2ZTkyZmMzZjFmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZkYjk5Zjc0MDAwMDAwMDAuMDAwMDAwMDA0ZGYwYjFiMAorICAgIGE2NTk0ZDk4ODZmNjJmYWEuMzcwMTE3ZDdjNDI0MDNlMi4wMmUzZDRiMDdhYzJkZmU0LjI0ZDg2MmQ1MGRhZWQyZWQKICAgICA2YjNhM2NjMWU0N2U4NWQxLmE2ODQxYTRhMTUxNDZjODIuZDBmZWJiYTQ5ODQ0YWY0Ny4wZmE3YzU2OTVhOTFhNGM3CiAgICAgZDhiMmE3OTYxNzMxZjI1OAogCi1WSU5TRVJUUFNfMHgzOV8xMjgocmVnKQorVk1PVkFQU19HdG9FXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGRjNDMwNGM4ZGQxYmY3NGQuMDRmZTU3YzM1NWRjMzNlMS42MWE5ZGFjYzYzYzhhZWVmLjQzZDdkMDNjN2NkNWI5YmUKICAgICA3NWE3ZDk2YjRhZGFmMTUyLjRiNzIxYThjZjYxY2Y2MDYuYzRiYTU0Yzk0OWNiMDZkNy4zODM5OTA2NDQyODNiYTcyCkBAIC01NDg3LDEyICs1NDg3LDEyIEBACiAgICAgZDkxN2Q3YjU4NzA4YWYzYS41NjlhODkyMDM2NzVhOTNkLmYxZDI2MmU0NGZlZWU3YzIuMTNjY2ZkMTVlMTY0OTA0OAogICAgIGIyOTVhMzc2ZjNhZmRkYzAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA0OWNiMDZkNy4zODM5OTA2NDAwMDAwMDAwCisgICAgZGM0MzA0YzhkZDFiZjc0ZC4wNGZlNTdjMzU1ZGMzM2UxLjYxYTlkYWNjNjNjOGFlZWYuNDNkN2QwM2M3Y2Q1YjliZQogICAgIDc1YTdkOTZiNGFkYWYxNTIuNGI3MjFhOGNmNjFjZjYwNi5jNGJhNTRjOTQ5Y2IwNmQ3LjM4Mzk5MDY0NDI4M2JhNzIKLSAgICAwMDJhMjBlY2Y5ZmExYTEyLjFkNjIwMTA3ZTI0Yjg5NmIuMmIwNDgyYWQ2NGE5YjBlNC44OWYyNzUwOTA1NTk2ZDkyCisgICAgZDkxN2Q3YjU4NzA4YWYzYS41NjlhODkyMDM2NzVhOTNkLmYxZDI2MmU0NGZlZWU3YzIuMTNjY2ZkMTVlMTY0OTA0OAogICAgIGQ5MTdkN2I1ODcwOGFmM2EuNTY5YTg5MjAzNjc1YTkzZC5mMWQyNjJlNDRmZWVlN2MyLjEzY2NmZDE1ZTE2NDkwNDgKICAgICBiMjk1YTM3NmYzYWZkZGMwCi1WSU5TRVJUUFNfMHgzOV8xMjgobWVtKQorVk1PVkFQU19HdG9FXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDQyMTdlNDE2NTc0NjExMjguNWRiY2ZhMzM5MDhmZWI3NS5kMmU2MmNjMzBkYTQxMmE3Ljc0NzJlZmRiYTcyN2U4MWUKICAgICA5ZjFmM2FlMzI3MzZlN2E5LmU2NjM4M2QzYWYxYjBiNzAuNmQxMTY4ZGM4NGU2ODBkNi4wZjJmMjZmYzA3ZGZlZmE0CkBAIC01NTAwLDEzICs1NTAwLDEzIEBACiAgICAgMzBmMDFhYjE4MTRlNmNhZC43YWViYmIyNWEwNzRlNzU1LjcwMzg5OTIxYmZkMTU5MzIuZmMyZTdlNzE1MGZlZmVkYwogICAgIDA2MDk5ODliNzI3YzdlZTcKICAgYWZ0ZXIKLSAgICA0MjE3ZTQxNjU3NDYxMTI4LjVkYmNmYTMzOTA4ZmViNzUuZDJlNjJjYzMwZGE0MTJhNy43NDcyZWZkYmE3MjdlODFlCisgICAgYTU3OTIzYzg4MjhhMWM3Mi5kMTVhNzAwMDgwMzk0YmQ3LjAzZTliOTU4YjY0NmFlZjYuMWQ1NDAxYjUwYmEzMzdmZgogICAgIDlmMWYzYWUzMjczNmU3YTkuZTY2MzgzZDNhZjFiMGI3MC42ZDExNjhkYzg0ZTY4MGQ2LjBmMmYyNmZjMDdkZmVmYTQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmQxMTY4ZGMwMDAwMDAwMC4wMDAwMDAwMGE3MjdlODFlCisgICAgYTU3OTIzYzg4MjhhMWM3Mi5kMTVhNzAwMDgwMzk0YmQ3LjAzZTliOTU4YjY0NmFlZjYuMWQ1NDAxYjUwYmEzMzdmZgogICAgIDMwZjAxYWIxODE0ZTZjYWQuN2FlYmJiMjVhMDc0ZTc1NS43MDM4OTkyMWJmZDE1OTMyLmZjMmU3ZTcxNTBmZWZlZGMKICAgICAwNjA5OTg5YjcyN2M3ZWU3CiAKLVZQVU5QQ0tMRFFfMTI4KHJlZykKK1ZNT1ZBUFNfRXRvR18xMjgocmVnKQogICBiZWZvcmUKICAgICA5OTMxNGJhMTBjYWFmM2NiLjFjNTI5YjhhNDM4ZjkzODYuM2Q2MzYyYjBhYTU4MWE5Ny45MGNiODYyNGJjOTIzZGI3CiAgICAgMGZmMjkzZWViYTEzOWIzNS40NTY5MjMzZmUxNTc0YzJhLjc2MGQ2MTBjM2I3MjIxNDguM2Y2ZWZhNGVjOTk1MTZiMApAQCAtNTUxNCwxMiArNTUxNCwxMiBAQAogICAgIDE4NmVkNDBlYzVjNzZmNDkuYmRlOTM0ZWQyN2IyNjc4My5iYTJiNTNlNzYwNzY5YWFhLmI5MTM2ZGMzODA5Mzk1YjEKICAgICAzZGFlNjJlNzYzYTViMzEwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU5ZWQ3MzhhM2Y2ZWZhNGUuMDFlNzlmNGFjOTk1MTZiMAotICAgIDBmZjI5M2VlYmExMzliMzUuNDU2OTIzM2ZlMTU3NGMyYS43NjBkNjEwYzNiNzIyMTQ4LjNmNmVmYTRlYzk5NTE2YjAKKyAgICA5OTMxNGJhMTBjYWFmM2NiLjFjNTI5YjhhNDM4ZjkzODYuM2Q2MzYyYjBhYTU4MWE5Ny45MGNiODYyNGJjOTIzZGI3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgxMzdiMmE1ZWU0ZDM4MTUuNTllZDczOGEwMWU3OWY0YQogICAgIGM2OTc2ZGVlMTk0M2IwZDAuODYwMjJjYmM3YWI1NTRjNS44MTM3YjJhNWVlNGQzODE1LjU5ZWQ3MzhhMDFlNzlmNGEKICAgICAxODZlZDQwZWM1Yzc2ZjQ5LmJkZTkzNGVkMjdiMjY3ODMuYmEyYjUzZTc2MDc2OWFhYS5iOTEzNmRjMzgwOTM5NWIxCiAgICAgM2RhZTYyZTc2M2E1YjMxMAotVlBVTlBDS0xEUV8xMjgobWVtKQorVk1PVkFQU19FdG9HXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGMwODhkMGUxYzUyYWI3OTQuNjNjMWM0Yjg1OTJhMTM0Yi5jNWVhYjZiZjA2NWM0MThmLjdkMzczZjNmMmM3Nzg1YjIKICAgICAxZTZlMzI5ZGMzMmQ1YjY4LjAxZGQzOTU5NzFmOGRhODMuN2FkMTJmMWMzM2JmOWQxNS4yNmE1NzIxN2VlZGYzM2RhCkBAIC01NTI5LDExICs1NTI5LDExIEBACiAgIGFmdGVyCiAgICAgYzA4OGQwZTFjNTJhYjc5NC42M2MxYzRiODU5MmExMzRiLmM1ZWFiNmJmMDY1YzQxOGYuN2QzNzNmM2YyYzc3ODViMgogICAgIDFlNmUzMjlkYzMyZDViNjguMDFkZDM5NTk3MWY4ZGE4My43YWQxMmYxYzMzYmY5ZDE1LjI2YTU3MjE3ZWVkZjMzZGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2QzNzNmM2YyNmE1NzIxNy4yYzc3ODViMmVlZGYzM2RhCi0gICAgZGE4ZWMyMGIwMWRlNzViMy5hYTlmYTMzMTlmMDdiYzQ0LjVhODBmMjJiZTVkZGNlNDIuOTlkYTllZmJjNzBkY2EzOAorICAgIDMzMmMwNDA3NzhiYTVjYjkuNGYwZTJmNWVhYWJlZmU5ZC5iODZhMTlmMmM5ZTYzODQyLjEwYzJlOGRjNDMzN2UwY2QKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzVlYWI2YmYwNjVjNDE4Zi43ZDM3M2YzZjJjNzc4NWIyCiAgICAgMWMzODhmZGUxNWVjMmJjNwogCi1WUFVOUENLTERRXzEyOChyZWcpCitWTU9WQVBTX0V0b0dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZjUyYWI3ZjNjOTYxNDAyNS5mMTYwZTk5Njc5YTQ2NDgxLjZjZGU5MDQwZWQ1ZjRmMjUuM2VlMDM1YjVhMmIwMWE0MAogICAgIDgwZmExMmE1ODBmNjQ0ZmYuNTI2ZGY0OTJmZDE4ZTM0Zi5mMjE2ZjJmNTJmNTNmNGViLjNmNTY1ZTdiMWM2Y2Q5NjkKQEAgLTU1NDEsMTIgKzU1NDEsMTIgQEAKICAgICAxYjY4NTI5MDY2YjYwY2Q1LjY3NmNhNjkxOTczYzgzOWYuYmI5ZjA2MDYwMTNjNjRkOS4wN2I0NTM2YmJhY2NhMGViCiAgICAgODYzNDE3NmQxNDg5MWY5YgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zOGFlZTk2OTNmNTY1ZTdiLjcwMWNjN2U5MWM2Y2Q5NjkKLSAgICA4MGZhMTJhNTgwZjY0NGZmLjUyNmRmNDkyZmQxOGUzNGYuZjIxNmYyZjUyZjUzZjRlYi4zZjU2NWU3YjFjNmNkOTY5CisgICAgZjUyYWI3ZjNjOTYxNDAyNS5mMTYwZTk5Njc5YTQ2NDgxLjZjZGU5MDQwZWQ1ZjRmMjUuM2VlMDM1YjVhMmIwMWE0MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ODkyYzViZTAyNmVlNzQzLjM4YWVlOTY5NzAxY2M3ZTkKICAgICAxOGY2OWM2MGQ2M2E3NDAwLmRiODM1ZmVjYTg0N2FlNGIuOTg5MmM1YmUwMjZlZTc0My4zOGFlZTk2OTcwMWNjN2U5CiAgICAgMWI2ODUyOTA2NmI2MGNkNS42NzZjYTY5MTk3M2M4MzlmLmJiOWYwNjA2MDEzYzY0ZDkuMDdiNDUzNmJiYWNjYTBlYgogICAgIDg2MzQxNzZkMTQ4OTFmOWIKLVZQVU5QQ0tMRFFfMTI4KG1lbSkKK1ZNT1ZBUFNfRXRvR18xMjgobWVtKQogICBiZWZvcmUKICAgICA5M2Y5YjE1YjlkNWUwMTI3LmU0OWMyZmExY2NmODQ4MjkuZDFmNTQ1NmNlNTA0MWM3Ny5iNTg5YjAzOWM4NGFhNjU4CiAgICAgMDhkMTlkMjE2ZjU3MDJiOS5jZWUwMmZmZmE1OGI2NGE5LmY3ZWFiOTY4YWZhOTM2MDAuZTM5Y2JmYzNmNDIzZWE2ZApAQCAtNTU1NiwxMSArNTU1NiwxMSBAQAogICBhZnRlcgogICAgIDkzZjliMTViOWQ1ZTAxMjcuZTQ5YzJmYTFjY2Y4NDgyOS5kMWY1NDU2Y2U1MDQxYzc3LmI1ODliMDM5Yzg0YWE2NTgKICAgICAwOGQxOWQyMTZmNTcwMmI5LmNlZTAyZmZmYTU4YjY0YTkuZjdlYWI5NjhhZmE5MzYwMC5lMzljYmZjM2Y0MjNlYTZkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI1ODliMDM5ZTM5Y2JmYzMuYzg0YWE2NThmNDIzZWE2ZAotICAgIDllZTU1Y2U2NWZlNzRmYTAuNzljNDg5NTIxZWQ2MmFkYy5lMjQ3MGQ3ODI0YzBkY2Q0LjRiNmNmYzhkZWE2NzY3MDgKKyAgICBjMzg2NThhY2E2ODFkZDdkLjM3N2Y0ZTE2OGNmYzliMDEuYjMxNzdkNzMxMDNhOGM2Ni5hMTIzMmYxMTIxNTM2Y2M0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQxZjU0NTZjZTUwNDFjNzcuYjU4OWIwMzljODRhYTY1OAogICAgIDNkYzEyM2E0ZWNlYTE5ZTUKIAotVlBVTlBDS0xEUV8xMjgocmVnKQorVk1PVkFQU19FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGQzNmY5ZmMzYzI2OGJjMDguNzZiYTI3YmRiNTk2MTQ0ZS5mMmZkZGEyMGY2YTU0Y2U3LjYxNDhlNTYzMDg0OWUwNzcKICAgICA2OWMzNmM1NDA4NmU4YzFkLjI4ZDAzNDFiYzU5OWU4YjIuZmM3NDNmZWFiMWY2M2VjZS4wYWU0ODIyMGQ4ZTA1NDdhCkBAIC01NTY4LDEyICs1NTY4LDEyIEBACiAgICAgMDU4N2VhODE1NjQwYTdjYi44NWYzMDUyMTgwY2JhYjRlLjM3NGUzMzI3M2U0YjgyZGQuNGUyMGY4YzFhOTY5ODA1MwogICAgIGEwNThjOTdjZTM3M2FmODAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmJlODVmOWMwYWU0ODIyMC5hZjkxZjYwYWQ4ZTA1NDdhCi0gICAgNjljMzZjNTQwODZlOGMxZC4yOGQwMzQxYmM1OTllOGIyLmZjNzQzZmVhYjFmNjNlY2UuMGFlNDgyMjBkOGUwNTQ3YQorICAgIGQzNmY5ZmMzYzI2OGJjMDguNzZiYTI3YmRiNTk2MTQ0ZS5mMmZkZGEyMGY2YTU0Y2U3LjYxNDhlNTYzMDg0OWUwNzcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjU3NmI0MWVlYTU0M2MzYy5iYmU4NWY5Y2FmOTFmNjBhCiAgICAgNWIwNjg2YzU1Yjg3YzdjZi44ZWY1MDBlZWFhZmM4NmY5LmY1NzZiNDFlZWE1NDNjM2MuYmJlODVmOWNhZjkxZjYwYQogICAgIDA1ODdlYTgxNTY0MGE3Y2IuODVmMzA1MjE4MGNiYWI0ZS4zNzRlMzMyNzNlNGI4MmRkLjRlMjBmOGMxYTk2OTgwNTMKICAgICBhMDU4Yzk3Y2UzNzNhZjgwCi1WUFVOUENLTERRXzEyOChtZW0pCitWTU9WQVBTX0V0b0dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOGQ1YzRlYmE3OGJjM2ViZS5jMzkxOTJmNDk2MjQ2OGJkLmVhOThjMWEwNjQxMzEzZGUuMjA0YWJhNzA0ODY3NGM1ZgogICAgIGYyZjcwNDY1ODU0ZmViMzkuZjE2ZjdjODliNmJmNDg1MC45N2FlYWY1NzcyZGY3OWQ1LjBhYjU0NDY3YTQzNWQ1NmMKQEAgLTU1ODMsMTEgKzU1ODMsMTEgQEAKICAgYWZ0ZXIKICAgICA4ZDVjNGViYTc4YmMzZWJlLmMzOTE5MmY0OTYyNDY4YmQuZWE5OGMxYTA2NDEzMTNkZS4yMDRhYmE3MDQ4Njc0YzVmCiAgICAgZjJmNzA0NjU4NTRmZWIzOS5mMTZmN2M4OWI2YmY0ODUwLjk3YWVhZjU3NzJkZjc5ZDUuMGFiNTQ0NjdhNDM1ZDU2YwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMDRhYmE3MDBhYjU0NDY3LjQ4Njc0YzVmYTQzNWQ1NmMKLSAgICA4ZjI2ZjBiNzc1ODQ4YTkzLjBjZGEwNGNmMDg0YjUwMGIuM2M1ZjEyMWQ3YTM1MzJhNi41NDA2NTEwY2M1MTUxNmQ4CisgICAgYTlmNjY2NmIyNTM4NzAxYy5lYTZlYTRhZjUzOWQ4MTMxLjY5MDI0YzMyYzUzYzlhNWUuNTJkYWNkNzdlZjQxNWFiMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYTk4YzFhMDY0MTMxM2RlLjIwNGFiYTcwNDg2NzRjNWYKICAgICA2ZDg1Y2M5M2MxM2Y0NzkwCiAKLVZQQUNLU1NEV18xMjgocmVnKQorVk1PVkFQRF9FdG9HXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGY3YTMzYjc2N2Y0YjI3ODMuODA1MTFlMzU5MDNkZjRjYi5iMmZmOWE1NjcyNTRmMThiLmVjOTM3ZjA1YWJkNmZkZDkKICAgICA0ZmFjOTkyMjljYzRmMjVlLjU4NDQ2ZGQxOTM3MjZiZjAuMzgyOTYwYjAyYzQ1OWY1ZC41NTY4MGVkNDc3MmNiNjIyCkBAIC01NTk1LDEyICs1NTk1LDEyIEBACiAgICAgZDlhZTEzODY2MjJkM2Q3YS4yZGIxNWExM2JmNzk3MGIwLjUzYmI3MjhlMDIwYzE1YTUuYzIyOTgyZGI0YTI0ZTVhNwogICAgIDdlYWM2MGViOGFkZWQzM2MKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2ZmZjdmZmY4MDAwN2ZmZi43ZmZmN2ZmZjdmZmY3ZmZmCi0gICAgNGZhYzk5MjI5Y2M0ZjI1ZS41ODQ0NmRkMTkzNzI2YmYwLjM4Mjk2MGIwMmM0NTlmNWQuNTU2ODBlZDQ3NzJjYjYyMgorICAgIGY3YTMzYjc2N2Y0YjI3ODMuODA1MTFlMzU5MDNkZjRjYi5iMmZmOWE1NjcyNTRmMThiLmVjOTM3ZjA1YWJkNmZkZDkKKyAgICBkMWViZTIwNGI0MzZlNmNjLmYzY2E1Nzc3OTkyY2FiMmUuZjlhNDU0NGFkM2E5OTcyYy41M2FjM2I3OGY4NDExYWFkCiAgICAgZDFlYmUyMDRiNDM2ZTZjYy5mM2NhNTc3Nzk5MmNhYjJlLmY5YTQ1NDRhZDNhOTk3MmMuNTNhYzNiNzhmODQxMWFhZAogICAgIGQ5YWUxMzg2NjIyZDNkN2EuMmRiMTVhMTNiZjc5NzBiMC41M2JiNzI4ZTAyMGMxNWE1LmMyMjk4MmRiNGEyNGU1YTcKICAgICA3ZWFjNjBlYjhhZGVkMzNjCi1WUEFDS1NTRFdfMTI4KG1lbSkKK1ZNT1ZBUERfRXRvR18yNTYobWVtKQogICBiZWZvcmUKICAgICA2MzAxNGY5M2QzN2Q5Zjk3LmM0M2YyNjE2NDIzNjM0MTQuZTJjM2YxOTEyMDY0NzVhMi5hMWJjYjRlYTU2ZmE1NTczCiAgICAgNGRmM2NkYmY0MjBkMDZlNS5lY2ViMTkxZmYxZGMwNzQ1LmVlY2U5OWRlZDhmYTc3MzEuM2VmMTE4Yzg2YTAwOTI0MwpAQCAtNTYxMCwxMSArNTYxMCwxMSBAQAogICBhZnRlcgogICAgIDYzMDE0ZjkzZDM3ZDlmOTcuYzQzZjI2MTY0MjM2MzQxNC5lMmMzZjE5MTIwNjQ3NWEyLmExYmNiNGVhNTZmYTU1NzMKICAgICA0ZGYzY2RiZjQyMGQwNmU1LmVjZWIxOTFmZjFkYzA3NDUuZWVjZTk5ZGVkOGZhNzczMS4zZWYxMThjODZhMDA5MjQzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDA3ZmZmODAwMDdmZmYuODAwMDgwMDA3ZmZmN2ZmZgotICAgIGEwZTI2NDUzMDAyYzk0MDkuNjZjNDhjNGIyYTMwMmYxZS43YmZhMDg5MGMwNTQ2MmQ2LmQ5MmEzM2JmNDM4MmY2OTcKKyAgICAxODUwNTY1YmYyOThjMzUyLmFlZmVlNzBkMGFhYmYxYmEuMmQ5Y2NjZTQwNDQ2MzI4OS44OGE3OTk5NmRhYWEwOWMwCisgICAgNjMwMTRmOTNkMzdkOWY5Ny5jNDNmMjYxNjQyMzYzNDE0LmUyYzNmMTkxMjA2NDc1YTIuYTFiY2I0ZWE1NmZhNTU3MwogICAgIDhmYzVlMmFmNDExNjk0NzQKIAotVlBBQ0tTU0RXXzEyOChyZWcpCitWTU9WQVBEX0V0b0dfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMDRjNmEzZDI2ZmYxMjAwMi5jMTc2NzU5Mzg3ZDQzMzM3LjcwODgwNTQ4ZWNmNmZkMWUuYjRiM2M4Y2YyNzMxYzI0MgogICAgIDk2Nzc3MTk0NjlhMGQ2ZWUuNTdkODA0MDdhNDlkNWQwNy4yODk4NGM2ZGVkOGE5NjY2LmI0OTU4OThjNTVlODBmZmMKQEAgLTU2MjIsMTIgKzU2MjIsMTIgQEAKICAgICA3YzFkMjRhNjMzYTdhZjhmLjUxMzY4YzNjMGViZjQxNDAuMTFjNzM5ZTIxOTQ4MWM3Yy43ODAwZmEzMDc5MTU1ZjA1CiAgICAgZjUyMWEzZWZhNWEzZGFhYwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZmZmN2ZmZjdmZmY3ZmZmLjdmZmY4MDAwODAwMDdmZmYKLSAgICA5Njc3NzE5NDY5YTBkNmVlLjU3ZDgwNDA3YTQ5ZDVkMDcuMjg5ODRjNmRlZDhhOTY2Ni5iNDk1ODk4YzU1ZTgwZmZjCisgICAgMDRjNmEzZDI2ZmYxMjAwMi5jMTc2NzU5Mzg3ZDQzMzM3LjcwODgwNTQ4ZWNmNmZkMWUuYjRiM2M4Y2YyNzMxYzI0MgorICAgIDlmMjY0ODYyY2NhZWYyZTQuM2VkNDhkOWM3MjkyY2RhNi5lYTNlNWYyN2M4NzYzN2ExLjU2NmFjNWIzNjc4NTA0MmUKICAgICA5ZjI2NDg2MmNjYWVmMmU0LjNlZDQ4ZDljNzI5MmNkYTYuZWEzZTVmMjdjODc2MzdhMS41NjZhYzViMzY3ODUwNDJlCiAgICAgN2MxZDI0YTYzM2E3YWY4Zi41MTM2OGMzYzBlYmY0MTQwLjExYzczOWUyMTk0ODFjN2MuNzgwMGZhMzA3OTE1NWYwNQogICAgIGY1MjFhM2VmYTVhM2RhYWMKLVZQQUNLU1NEV18xMjgobWVtKQorVk1PVkFQRF9FdG9HXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGE5OWEzY2RjMGEzYjMyNTAuOGFhODAxY2QzYjE4NGE5Yi42ZWNhN2RkNTkzMzE3MjAwLmZiN2ZkNzBiN2Q4YzgxYTIKICAgICA2ZjM3NDFlM2MxZWEyMjFkLjIzMTVkYzQ0N2Y4Y2ZmYjYuNzA1YmRkNTExZGYzMWYxMy4wM2IyMzMwYzkwY2RhMWMwCkBAIC01NjM3LDExICs1NjM3LDExIEBACiAgIGFmdGVyCiAgICAgYTk5YTNjZGMwYTNiMzI1MC44YWE4MDFjZDNiMTg0YTliLjZlY2E3ZGQ1OTMzMTcyMDAuZmI3ZmQ3MGI3ZDhjODFhMgogICAgIDZmMzc0MWUzYzFlYTIyMWQuMjMxNWRjNDQ3ZjhjZmZiNi43MDViZGQ1MTFkZjMxZjEzLjAzYjIzMzBjOTBjZGExYzAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2ZmZjgwMDA4MDAwN2ZmZi43ZmZmN2ZmZjdmZmY4MDAwCi0gICAgYTUwYzgxZjA5YmJiYmVlMC42YWMxNzljZTJkYWVhNWMzLjkyYTdkN2E3YjM5OGQ5ZTAuZGRiODFhNGEzMDc2MDU5MworICAgIDI1YzMyZmYwZTliYjY4M2UuYTRhZmIwNzY5YzhmMDk4OS4zMmI2Mjc5ZWM5MTIwM2E0Ljg1YWM0YjUzZWQ5N2JhODIKKyAgICBhOTlhM2NkYzBhM2IzMjUwLjhhYTgwMWNkM2IxODRhOWIuNmVjYTdkZDU5MzMxNzIwMC5mYjdmZDcwYjdkOGM4MWEyCiAgICAgNjYyNDljNWZmNmY3YzE5ZgogCi1WUEFDS1NTRFdfMTI4KHJlZykKK1ZNT1ZBUERfRXRvR18yNTYocmVnKQogICBiZWZvcmUKICAgICA3ZTNhY2VmZGRiYTUyODU0LmNkZGNiM2NkZjZmNGUwMmUuY2Y5OTMzYmFjZjc0MGYwZS42YmZhNmE1OGY2OTM1ZWYyCiAgICAgODA0N2FiOTA3YTBkNzc1Yy43ODAxNDE3NTEzNzQ4YzU1LjMwODFkYmE1MWQ2ZDgzMTcuOTg3YjVhOWRhZTBmNGQwNwpAQCAtNTY0OSwxMiArNTY0OSwxMiBAQAogICAgIGIxNzU1NTQ1NTczOGJjMTYuYzY3NTYyZDIwOTc4NmRkYy41NmI0ZTIyODJmMmE3NzExLjYyMzY0NjkzZWZiNzVjZTkKICAgICBiNzA5M2ExY2IwZmJmNDBlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmZmY3ZmZmN2ZmZjgwMDAuN2ZmZjdmZmY4MDAwODAwMAotICAgIDgwNDdhYjkwN2EwZDc3NWMuNzgwMTQxNzUxMzc0OGM1NS4zMDgxZGJhNTFkNmQ4MzE3Ljk4N2I1YTlkYWUwZjRkMDcKKyAgICA3ZTNhY2VmZGRiYTUyODU0LmNkZGNiM2NkZjZmNGUwMmUuY2Y5OTMzYmFjZjc0MGYwZS42YmZhNmE1OGY2OTM1ZWYyCisgICAgYzc5NzJlODQ2ZmJhZWE2My44MTQ1YTdkMjEwNDc3YzgwLmU5YzY2Y2ZiYjQyNjNjODkuZjdmNjI1NjJmODE3NjM0YgogICAgIGM3OTcyZTg0NmZiYWVhNjMuODE0NWE3ZDIxMDQ3N2M4MC5lOWM2NmNmYmI0MjYzYzg5LmY3ZjYyNTYyZjgxNzYzNGIKICAgICBiMTc1NTU0NTU3MzhiYzE2LmM2NzU2MmQyMDk3ODZkZGMuNTZiNGUyMjgyZjJhNzcxMS42MjM2NDY5M2VmYjc1Y2U5CiAgICAgYjcwOTNhMWNiMGZiZjQwZQotVlBBQ0tTU0RXXzEyOChtZW0pCitWTU9WQVBEX0V0b0dfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZDAzOTdiZWE1N2YwZTdlNi45OTJmMWMzZmNkMTQyYTIxLjIxNWNlZDYwMTkxMzFhOTUuZDM5NjM5OTgyYTA2NzA1YQogICAgIDhiOTM4N2U3ZmVhMWYwOWMuZGExMDdkZGY2ZWQ5NzAyZi42ZmM4YzQ2ODVjMjQ0MWQ2LmJjYmE2ZGI4NDI0NDYzMTEKQEAgLTU2NjQsMTEgKzU2NjQsMTEgQEAKICAgYWZ0ZXIKICAgICBkMDM5N2JlYTU3ZjBlN2U2Ljk5MmYxYzNmY2QxNDJhMjEuMjE1Y2VkNjAxOTEzMWE5NS5kMzk2Mzk5ODJhMDY3MDVhCiAgICAgOGI5Mzg3ZTdmZWExZjA5Yy5kYTEwN2RkZjZlZDk3MDJmLjZmYzhjNDY4NWMyNDQxZDYuYmNiYTZkYjg0MjQ0NjMxMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZmZmN2ZmZjgwMDA3ZmZmLjdmZmY3ZmZmODAwMDdmZmYKLSAgICA1MmY0ZWQyM2MyNjgzNjU0LmRiNzUwMmJkOWY0ZjczMDcuNTU1YjQ3OTZlZWRhZTdhMy40MmYzNWViNDM4MWMyNTc4CisgICAgYzJlM2Q5MDFjMzFhY2M1ZC5kMjYzNzY4ZmQ1MTNjYWVkLjhkODM2M2Q2ZWZiODljY2MuNmQ2YTdiZjIxMzcyOGJlMgorICAgIGQwMzk3YmVhNTdmMGU3ZTYuOTkyZjFjM2ZjZDE0MmEyMS4yMTVjZWQ2MDE5MTMxYTk1LmQzOTYzOTk4MmEwNjcwNWEKICAgICA5N2ExMTI2ODRkY2Q2YzgwCiAKLVZQQUREV18xMjgocmVnKQorVk1PVkFQRF9FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGM4YzA5MzdjZWYxMTllYTUuMTg5NDNmMzgxNjk2ZWJhZS41MzkyMWRkMzY3MTdhODI4LmE1MWFlYTk0NzQ5N2UwODYKICAgICAzMTljZGU1YmJhNzRmNTk0LmVlOGQ0YzJlZGNiMWE4OTYuOTQwNmM0M2ZjYWZhYTVmYy41NzhkY2FiYzlkZjk0MWExCkBAIC01Njc2LDEyICs1Njc2LDEyIEBACiAgICAgMWJiYWJmMjkzOGM5MDQ3Zi4zZGJlODQ2YTJjZGIyNGMzLmU1MjJhMmM2Y2UzYWU1NzEuNTRiZTJmM2I0YWUyMmQzMgogICAgIDU4MTVhYzZhMDY4MDMxMDAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGYyMmI1YWIyZTdiNGIyZC5hMDBjMmViNzI0MDgwOGMzCi0gICAgMzE5Y2RlNWJiYTc0ZjU5NC5lZThkNGMyZWRjYjFhODk2Ljk0MDZjNDNmY2FmYWE1ZmMuNTc4ZGNhYmM5ZGY5NDFhMQorICAgIGM4YzA5MzdjZWYxMTllYTUuMTg5NDNmMzgxNjk2ZWJhZS41MzkyMWRkMzY3MTdhODI4LmE1MWFlYTk0NzQ5N2UwODYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmIxY2YxNmM2MzgxYTUzMS40ODdmNjNmYjg2MGZjNzIyCiAgICAgMmU4MGVlNzA0ODgzYWVmOC5iMWFkOGZmMDJmYzQyNjM5LmZiMWNmMTZjNjM4MWE1MzEuNDg3ZjYzZmI4NjBmYzcyMgogICAgIDFiYmFiZjI5MzhjOTA0N2YuM2RiZTg0NmEyY2RiMjRjMy5lNTIyYTJjNmNlM2FlNTcxLjU0YmUyZjNiNGFlMjJkMzIKICAgICA1ODE1YWM2YTA2ODAzMTAwCi1WUEFERFdfMTI4KG1lbSkKK1ZNT1ZBUERfRXRvR18xMjgobWVtKQogICBiZWZvcmUKICAgICAyZTRmNTU3M2Q2ZjQ4ZGI2LjU0OTQ0ZGYxMjRkMzM0ZDIuNmY4ZGE3ODhlZTAzNWM1Zi5hYzYyZDJiOWE4YjFhMTY4CiAgICAgYjMzOWE2NDFkNDRiZmU4MC4zNDViOTQzNWE4MmI3YWEwLjIxZTU3NDM3OTE0NjhiM2EuYWQyOTdkYjE4ZDcwMTVjMwpAQCAtNTY5MSwxMSArNTY5MSwxMSBAQAogICBhZnRlcgogICAgIDJlNGY1NTczZDZmNDhkYjYuNTQ5NDRkZjEyNGQzMzRkMi42ZjhkYTc4OGVlMDM1YzVmLmFjNjJkMmI5YThiMWExNjgKICAgICBiMzM5YTY0MWQ0NGJmZTgwLjM0NWI5NDM1YTgyYjdhYTAuMjFlNTc0Mzc5MTQ2OGIzYS5hZDI5N2RiMThkNzAxNWMzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkxNzIxYmJmN2Y0OWU3OTkuNTk4YjUwNmEzNjIxYjcyYgotICAgIDNhNGQzMGUxZDBjZjBkMDMuNWVlMDNmZGNlYWZiMzc1Ny43ODY0ZmVmM2VkNTNiZDViLmNlN2MzNjYwZTVmYzEzNTQKKyAgICBjMzlmMWJjMjFlOTAzZjhjLjE5NWI5MTVmNjE2MDEyOTMuMzA5NDY4NjEzMmIzNmM3Zi40NWMzYTAxYTE4MDU3YzJlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZmOGRhNzg4ZWUwMzVjNWYuYWM2MmQyYjlhOGIxYTE2OAogICAgIGE1YTAzYmYwOTFkZjE2ZTIKIAotVlBBRERXXzEyOChyZWcpCitWTU9WQVBEX0V0b0dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjY3YWFiMzRiODNjYzE4My5mNDBmNjI4YTA1MTQyNDE0LjVmMzY5YTE4ZGY4YTI3OTkuZDUyM2IyZGFkZDM0MzhmYQogICAgIGFkNTg4MjlhZjQ5ZjRmZTQuY2RiMDJjYTlkYTZjNDBlOS43N2E4OWU4MGRlOTgxYjA1LjIzOWIwMDAwMWU2MTlhODcKQEAgLTU3MDMsMTIgKzU3MDMsMTIgQEAKICAgICAzZDRiNTc3ODIyYTQwNjk1LjRjYzM3OWZhZDI4Mzc1OTEuNjAxNDkyODA2MzYzMDYwOS4wMmU5NWNiZTA1ZDEwMTFkCiAgICAgNGI1NjYxMmRlMzJiN2Y3ZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YzJiZTVmZjVmNGE2ZDRiLjYyMzQ2NTUzZWM0ODM4YjYKLSAgICBhZDU4ODI5YWY0OWY0ZmU0LmNkYjAyY2E5ZGE2YzQwZTkuNzdhODllODBkZTk4MWIwNS4yMzliMDAwMDFlNjE5YTg3CisgICAgMjY3YWFiMzRiODNjYzE4My5mNDBmNjI4YTA1MTQyNDE0LjVmMzY5YTE4ZGY4YTI3OTkuZDUyM2IyZGFkZDM0MzhmYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNDgzNDc3ZjgwYjI1MjQ2LjNlOTk2NTUzY2RlNzllMmYKICAgICA5Njg0YmQ4Y2U0OTNmZGIxLmExZmUwYTJiNmFlMzFjYWUuMDQ4MzQ3N2Y4MGIyNTI0Ni4zZTk5NjU1M2NkZTc5ZTJmCiAgICAgM2Q0YjU3NzgyMmE0MDY5NS40Y2MzNzlmYWQyODM3NTkxLjYwMTQ5MjgwNjM2MzA2MDkuMDJlOTVjYmUwNWQxMDExZAogICAgIDRiNTY2MTJkZTMyYjdmN2UKLVZQQUREV18xMjgobWVtKQorVk1PVkFQRF9FdG9HXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGY1YWVmMDhjODIwMmQ0N2UuZmVmOTRjYzk0YTVlYTgzZC5hYWNjZjMwNDJkNWEwN2JiLmU5YTU3YWYxMjMzNzc0ZmEKICAgICBkY2JiODVjN2ZmNjFiYjQ4LjM2ZGE5OGViZjk0ZTFkNTQuOTdlNWY2MzM5NzczOGU1Yi5mYTgyZmIzZDViYmJkOGM0CkBAIC01NzE4LDExICs1NzE4LDExIEBACiAgIGFmdGVyCiAgICAgZjVhZWYwOGM4MjAyZDQ3ZS5mZWY5NGNjOTRhNWVhODNkLmFhY2NmMzA0MmQ1YTA3YmIuZTlhNTdhZjEyMzM3NzRmYQogICAgIGRjYmI4NWM3ZmY2MWJiNDguMzZkYTk4ZWJmOTRlMWQ1NC45N2U1ZjYzMzk3NzM4ZTViLmZhODJmYjNkNWJiYmQ4YzQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDJiMWU5MzdjNGNkOTYxNi5lNDI3NzYyZTdlZjI0ZGJlCi0gICAgZDAyN2IzODEwMWU4MzJlYy43NTY0MjY1MjU5ZmQ3MjgyLjhlNzY4NGI0MGE5ZDY5YTcuMjI1NWI5MTZhNDAwNzE5NQorICAgIGRjNGE5ZGNhNzU1NGYxMDkuM2UzYTM3NGFjYWZmYTE4Ny5lZmRhZmQ3NTJkZGJjNTliLmVlZjkxMWQwYTc3OTZkMTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWFjY2YzMDQyZDVhMDdiYi5lOWE1N2FmMTIzMzc3NGZhCiAgICAgZjNlMWVlN2JlZGQ5MWRmNAogCi1WUEFERFdfMTI4KHJlZykKK1ZNT1ZBUERfRXRvR18xMjgocmVnKQogICBiZWZvcmUKICAgICBiYmVhYWM2YjFmOTJiMGRjLjk2MWU0M2Q5YmUyODNhMWUuMzZhNTYwNmY0NGQ1Y2FmMC40Zjg3MDhkZTRiYzUzNWFjCiAgICAgZDhiY2VmNTNkNmI3NjRmYS4wOWZiYzliY2M4MjBjNGNhLmRkNDllMTBkMjQxMmU2N2UuMTBkNzA0ZGUwYzYwZTdkNgpAQCAtNTczMCwxMiArNTczMCwxMiBAQAogICAgIDdjZWJmNWI3NDA3MTIyODcuNjU5NmE5ZDczNjZhNTE0My40ZGVhYTk3ZDM5ZWQ1OWE4LmZmNjc1NDEwN2IxZGU4NDcKICAgICBlNDNmYTAxYTYyNTZhZmU3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmEzZTU4NmE2YmI1M2U5NTUuYmQwYWY5N2U3NGQ5MjEyNgotICAgIGQ4YmNlZjUzZDZiNzY0ZmEuMDlmYmM5YmNjODIwYzRjYS5kZDQ5ZTEwZDI0MTJlNjdlLjEwZDcwNGRlMGM2MGU3ZDYKKyAgICBiYmVhYWM2YjFmOTJiMGRjLjk2MWU0M2Q5YmUyODNhMWUuMzZhNTYwNmY0NGQ1Y2FmMC40Zjg3MDhkZTRiYzUzNWFjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM2OWNhNTk5OTc0MTAyZDcuYWMzM2Y0YTA2ODc5Mzk1MAogICAgIGE0YTNiNDlkYWRkMjc2ZmEuMDU4YWMyMTgzY2RkOGQxZS5jNjljYTU5OTk3NDEwMmQ3LmFjMzNmNGEwNjg3OTM5NTAKICAgICA3Y2ViZjViNzQwNzEyMjg3LjY1OTZhOWQ3MzY2YTUxNDMuNGRlYWE5N2QzOWVkNTlhOC5mZjY3NTQxMDdiMWRlODQ3CiAgICAgZTQzZmEwMWE2MjU2YWZlNwotVlBBRERXXzEyOChtZW0pCitWTU9WQVBEX0V0b0dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzk4NzU1YWIzODMyNGM1Yi5iZGUwYjAwYjJjMjBhMzRlLjA3ZWNmYWU3ZDFkM2NiNjguY2U3ZmU4MjdhNWEyMjg5ZAogICAgIGQ5MGFlZGFkMWFiZDc5ZDAuYzFjZGUwMDcwYzY5MzdmYS5jNjU4MzEzMzJhMjViOGI3LmE0YTY1ZTAyNzdlY2FiNjEKQEAgLTU3NDUsMTEgKzU3NDUsMTEgQEAKICAgYWZ0ZXIKICAgICAzOTg3NTVhYjM4MzI0YzViLmJkZTBiMDBiMmMyMGEzNGUuMDdlY2ZhZTdkMWQzY2I2OC5jZTdmZTgyN2E1YTIyODlkCiAgICAgZDkwYWVkYWQxYWJkNzlkMC5jMWNkZTAwNzBjNjkzN2ZhLmM2NTgzMTMzMmEyNWI4YjcuYTRhNjVlMDI3N2VjYWI2MQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jZTQ0MmMxYWZiZjg4NDFmLjczMjU0NjI5MWQ4ZWQzZmUKLSAgICA2OWY1YmNiODZmMGM3NTZiLjg1YzI5MGE0MWFmZjgyYjQuMGFhMjQyMmY4M2IxZGI4NC5jNGRlZGZmYWMwNzFiYzA4CisgICAgOWY5NmU2MGUyMzAxZjI3MS5lNWZmODIxNjdjZGExODM4LjdkYTZjYWE3NWI2YmQ0NWMuMmRhZDA3Nzk0YzU4MWVhMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wN2VjZmFlN2QxZDNjYjY4LmNlN2ZlODI3YTVhMjI4OWQKICAgICBjNTg2ZTNmMDZlYzRjMjQzCiAKLVZQU1JMV18weDA1XzEyOChyZWcpCitWTU9WVVBEX0d0b0VfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOGJmMTBlYzdmMmRjNmNmZC4xMWY0ZTk5OTFiZWFiY2U5LmZkNjIwODFkN2Y2MmIzMTkuNDcxODE0YjdiYzA0ODg1YgogICAgIDc0NmI1Y2ViZTk0NWY1ZTMuNzU1ZmViOWM0M2E2ODQxOS5hOTJiZTVlZDQ5OTJlNTE0LjEyZDNiYzJiMjI2Zjk4MGMKQEAgLTU3NTcsMTIgKzU3NTcsMTIgQEAKICAgICAxYmJiNTJjYjllM2M5N2UyLmRkYTg1YmI3NzVlODg2MzguMGU2N2JmNDI3YjgyM2U3YS5iZTRjN2U4OGU3YmVkMGFmCiAgICAgNTdhMTkxNDg3ZWJiNzBmOAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDczMDVmYTAzZGMwMWYzLjA1ZjIwM2Y0MDczZDA2ODUKKyAgICA4YmYxMGVjN2YyZGM2Y2ZkLjExZjRlOTk5MWJlYWJjZTkuZmQ2MjA4MWQ3ZjYyYjMxOS40NzE4MTRiN2JjMDQ4ODViCiAgICAgNzQ2YjVjZWJlOTQ1ZjVlMy43NTVmZWI5YzQzYTY4NDE5LmE5MmJlNWVkNDk5MmU1MTQuMTJkM2JjMmIyMjZmOTgwYwotICAgIGRhM2ZjOWM5ZWU4YzlhYTEuNmYwMjNkYWMwMjRjODgyNC5lNjY5MjM4MDE0MTg1NDUwLjQ1YTFiNjc3ZDJmZmM3YzQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGU2N2JmNDI3YjgyM2U3YS5iZTRjN2U4OGU3YmVkMGFmCiAgICAgMWJiYjUyY2I5ZTNjOTdlMi5kZGE4NWJiNzc1ZTg4NjM4LjBlNjdiZjQyN2I4MjNlN2EuYmU0YzdlODhlN2JlZDBhZgogICAgIDU3YTE5MTQ4N2ViYjcwZjgKLVZQU1JMV18weDA1XzEyOChtZW0pCitWTU9WVVBEX0d0b0VfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZWQ2YzZhYTViMmZmNjNjYi45MTI5ZjI1ZTk0ZTEyODUzLjk5MWZjMWE4Yjc4NzM4ODEuN2U3M2IzYTAxYTViZGQzZQogICAgIDVkNzg4NThhYTA5ODY1NTYuOWFkNmE1ZWY2ZDA3ODhhMC44MDMxZWM2YmU0MzQ1YTJiLjkyZDdmZDA0OGUyZjZlNDcKQEAgLTU3NzAsMTMgKzU3NzAsMTMgQEAKICAgICAzNjg3NzI5YjE4Zjc4NDNlLmQxMWQzNGI3MzYwOWE4N2IuNDA1OTdkMTg3MWVhZTI1MC4xNmRhODA5MzY0ZmE1NWRhCiAgICAgM2QxMWIyOTRmZDA5MjNiYwogICBhZnRlcgotICAgIGVkNmM2YWE1YjJmZjYzY2IuOTEyOWYyNWU5NGUxMjg1My45OTFmYzFhOGI3ODczODgxLjdlNzNiM2EwMWE1YmRkM2UKKyAgICBlZDZjNmFhNWIyZmY2M2NiLjkxMjlmMjVlOTRlMTI4NTMuNmZhYjU2ZWQxOWZjYWE2MS5hNmUwOThkYzczOGIyZDQyCiAgICAgNWQ3ODg1OGFhMDk4NjU1Ni45YWQ2YTVlZjZkMDc4OGEwLjgwMzFlYzZiZTQzNDVhMmIuOTJkN2ZkMDQ4ZTJmNmU0NwogICAgIDgxOTM1ZmUyNjM5MTMxYzIuOTAwZTY3ZTljNDNiZjQ3NC42ZmFiNTZlZDE5ZmNhYTYxLmE2ZTA5OGRjNzM4YjJkNDIKICAgICAzNjg3NzI5YjE4Zjc4NDNlLmQxMWQzNGI3MzYwOWE4N2IuNDA1OTdkMTg3MWVhZTI1MC4xNmRhODA5MzY0ZmE1NWRhCiAgICAgM2QxMWIyOTRmZDA5MjNiYwogCi1WUFNSTFdfMHgwNV8xMjgocmVnKQorVk1PVlVQRF9HdG9FXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDc5ZDAyOTRkZGI0MmQzOTQuNTkyMjNjYTBkYWQ0MWFmNC5iNzRmMDljNzVlZmJkZjYzLmQwMDdkZGQ5MDkwYWJmMjMKICAgICAyNTY1ZTEyOTk5MzRhMDBkLmM0MmUzOGRkYzUzN2FlMTAuOWZlZmUxODRkODlmZDZkNi5mYjgxZjAxZGZkNjhmYzA3CkBAIC01Nzg0LDEyICs1Nzg0LDEyIEBACiAgICAgM2QzYzA0ZmEyNzZjODU5NC5lNWNiYjdiMDg5YjhjMzJlLmU2YWQ4YWI1MzUyYmY0MGUuOTMwODIzZGE2NjEwOGFiMAogICAgIGI3YWQzYzJjMTM3MjUyY2UKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDczNTA0NTUwMWE5MDdhMC4wNDk4MDExZTAzMzAwNDU1CisgICAgNzlkMDI5NGRkYjQyZDM5NC41OTIyM2NhMGRhZDQxYWY0LmI3NGYwOWM3NWVmYmRmNjMuZDAwN2RkZDkwOTBhYmYyMwogICAgIDI1NjVlMTI5OTkzNGEwMGQuYzQyZTM4ZGRjNTM3YWUxMC45ZmVmZTE4NGQ4OWZkNmQ2LmZiODFmMDFkZmQ2OGZjMDcKLSAgICA5ZDFhZDY5NGQ0NjhjOGQ0LjU0NzhlMjNlZjYyOWZkYzAuZTY0YWI4NWE0MTgxYzk4MC45ZTkyMzRjZjY3MTE1NzI3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU2YWQ4YWI1MzUyYmY0MGUuOTMwODIzZGE2NjEwOGFiMAogICAgIDNkM2MwNGZhMjc2Yzg1OTQuZTVjYmI3YjA4OWI4YzMyZS5lNmFkOGFiNTM1MmJmNDBlLjkzMDgyM2RhNjYxMDhhYjAKICAgICBiN2FkM2MyYzEzNzI1MmNlCi1WUFNSTFdfMHgwNV8xMjgobWVtKQorVk1PVlVQRF9HdG9FXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGU2NGVmOGIwOGQ0MjZhYWMuNjAxNzY4YzgyZmNiMTNmYS41M2Y1MzExZDk5ZWZiYzg2LmZjNjI1NDAxNGYyYjkyMmMKICAgICBmY2I3ZDQ1MmVkOGM4Zjc3LjY0ZjdmZDY4ODcxMmIwYjIuN2FjMGNlNzI0MmRiYTNmNS44NWI2MTBhYjJiMGRlMDg1CkBAIC01Nzk3LDEzICs1Nzk3LDEzIEBACiAgICAgNGQxMGRlYTBkNWMwZjA4Mi43Y2Y1YWFkMjk5ODUwMmM1LjY0NmQ1Zjg1ZDJmZjJlYzcuNWI2YTUzYzQ5Y2EzN2I5YQogICAgIDYxNjJkMjBkNjc3MTQwYWUKICAgYWZ0ZXIKLSAgICBlNjRlZjhiMDhkNDI2YWFjLjYwMTc2OGM4MmZjYjEzZmEuNTNmNTMxMWQ5OWVmYmM4Ni5mYzYyNTQwMTRmMmI5MjJjCisgICAgZTY0ZWY4YjA4ZDQyNmFhYy42MDE3NjhjODJmY2IxM2ZhLjM3ZmEwOTljYTE4NzM1YTcuZGJmNGJjMWQ2NjViMWFjNgogICAgIGZjYjdkNDUyZWQ4YzhmNzcuNjRmN2ZkNjg4NzEyYjBiMi43YWMwY2U3MjQyZGJhM2Y1Ljg1YjYxMGFiMmIwZGUwODUKICAgICBkNWIzNGRmZTUxNWQ3ZDVhLmE0MjdiZjQ3Y2NjYjk2NjcuMzdmYTA5OWNhMTg3MzVhNy5kYmY0YmMxZDY2NWIxYWM2CiAgICAgNGQxMGRlYTBkNWMwZjA4Mi43Y2Y1YWFkMjk5ODUwMmM1LjY0NmQ1Zjg1ZDJmZjJlYzcuNWI2YTUzYzQ5Y2EzN2I5YQogICAgIDYxNjJkMjBkNjc3MTQwYWUKIAotVlBTUkxXXzB4MDVfMTI4KHJlZykKK1ZNT1ZVUERfR3RvRV8xMjgocmVnKQogICBiZWZvcmUKICAgICA0OTI5MzM2MzY2NGZhNWFlLjQwOTgwMzI0OTRjMWEzMWIuNDdhYmJhNzM4YmM5MmY3YS5kZWU2NGExYmVmNTA0YTgyCiAgICAgNmYwYjc0MzEzM2NjZTY0NS44YTE5Mzk3N2FiNmM1MzUwLjYzOTZlYzk4M2QyNTVhMzAuODEzMTQ4NDkxNzg1NDQwMwpAQCAtNTgxMSwxMiArNTgxMSwxMiBAQAogICAgIGU1NTA4NGVhYThjY2VhZWEuOTMzMWM0MzY0ZWYzOWE0MC5mYTNiYTMxYjUyNTM5YTUwLmIxNmM2YTFkZjJjYmM0MDkKICAgICBmN2Y0ODc5YmRlZjVjM2U3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA3ZDEwNTE4MDI5MjA0ZDIuMDU4YjAzNTAwNzk2MDYyMAorICAgIDQ5MjkzMzYzNjY0ZmE1YWUuNDA5ODAzMjQ5NGMxYTMxYi40N2FiYmE3MzhiYzkyZjdhLmRlZTY0YTFiZWY1MDRhODIKICAgICA2ZjBiNzQzMTMzY2NlNjQ1LjhhMTkzOTc3YWI2YzUzNTAuNjM5NmVjOTgzZDI1NWEzMC44MTMxNDg0OTE3ODU0NDAzCi0gICAgMmY1NDkwZTU2YTcxM2UyMC4wNzVkZmE4MzM1Y2ViYzRlLjJhMDIzYmFjNGIyNGJmOTMuMjgxOWQ0ZmI2NGFhZDk3NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYTNiYTMxYjUyNTM5YTUwLmIxNmM2YTFkZjJjYmM0MDkKICAgICBlNTUwODRlYWE4Y2NlYWVhLjkzMzFjNDM2NGVmMzlhNDAuZmEzYmEzMWI1MjUzOWE1MC5iMTZjNmExZGYyY2JjNDA5CiAgICAgZjdmNDg3OWJkZWY1YzNlNwotVlBTUkxXXzB4MDVfMTI4KG1lbSkKK1ZNT1ZVUERfR3RvRV8xMjgobWVtKQogICBiZWZvcmUKICAgICBkNjdlYTU2MTQzMzQ5MDNhLmVkNGI0YWFjODg2ODI2NTAuMGE2MDEyN2ExM2U1YTg1My4yZDhkMjE1MWVlM2QyNzEzCiAgICAgMmFkNjQyNWIzZDkyZTgzMS5hMzkwZTA5N2E2ZDEyZWZlLjQ4Yjg2MDNkYTBiMmEzYjIuMjE0M2FmYmFiYTZlYTE4NwpAQCAtNTgyNCwxMyArNTgyNCwxMyBAQAogICAgIGEwMjBlNzljNjNlMTI3YjUuODkyYzY5OTkwZjNjOTBlMC44ODBmZWRlZDdmMGI0ZjA3LmI4MGZmMGQ1NTNkNzRlMzUKICAgICAxM2JjOWE2MDU4MjZmYWM2CiAgIGFmdGVyCi0gICAgZDY3ZWE1NjE0MzM0OTAzYS5lZDRiNGFhYzg4NjgyNjUwLjBhNjAxMjdhMTNlNWE4NTMuMmQ4ZDIxNTFlZTNkMjcxMworICAgIGQ2N2VhNTYxNDMzNDkwM2EuZWQ0YjRhYWM4ODY4MjY1MC4yODAzMmI2YTEwNjY0NjhiLjMwYWI0YmMyNTI3MzQ1NTkKICAgICAyYWQ2NDI1YjNkOTJlODMxLmEzOTBlMDk3YTZkMTJlZmUuNDhiODYwM2RhMGIyYTNiMi4yMTQzYWZiYWJhNmVhMTg3CiAgICAgY2ZjOGQ5NzZlYTFkODZmNi42MzZkNDExOGEwOTQzZDlmLjI4MDMyYjZhMTA2NjQ2OGIuMzBhYjRiYzI1MjczNDU1OQogICAgIGEwMjBlNzljNjNlMTI3YjUuODkyYzY5OTkwZjNjOTBlMC44ODBmZWRlZDdmMGI0ZjA3LmI4MGZmMGQ1NTNkNzRlMzUKICAgICAxM2JjOWE2MDU4MjZmYWM2CiAKLVZQU0xMV18weDA1XzEyOChyZWcpCitWTU9WU1NfWE1NX00zMihyZWcpCiAgIGJlZm9yZQogICAgIDllZmU0NmNkZmVlZDgzYjguN2JhYWU2YmJjNmU4ODc5Yi43MTFhNTQ4NzkxNTY2MzZjLjQzYTYyNGIyMGFhZjc4NTUKICAgICBiNjIxZWU4YWUwYjcyNWI5LjNiMzE1NGJkMmY0MDYyZDQuNzc4M2ZmNGZjMjZkZjFmMC4zNTk1NGNhNWNjNWU3ZTlmCkBAIC01ODM4LDEyICs1ODM4LDEyIEBACiAgICAgZjgzOTI3YTBjYTg1YTg5Mi5kOTZhNmExZjgwMTI3OGVkLjRjZjU4MTE5OWVjMjMxOGYuMmRhYTVhYzU2NzA5MTBkOAogICAgIGVjNjkzYWNiNzgxZjE0MjAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWVhMDIzMjBkODQwMzFlMC5iNTQwNThhMGUxMjAxYjAwCisgICAgOWVmZTQ2Y2RmZWVkODNiOC43YmFhZTZiYmM2ZTg4NzliLjcxMWE1NDg3OTE1NjYzNmMuNDNhNjI0YjIwYWFmNzg1NQogICAgIGI2MjFlZThhZTBiNzI1YjkuM2IzMTU0YmQyZjQwNjJkNC43NzgzZmY0ZmMyNmRmMWYwLjM1OTU0Y2E1Y2M1ZTdlOWYKICAgICBiNTcwOTAwMTliMTAxZTcyLmJjODJhYzkwYjlmNTc0OGIuZjdiMjY0NWIzZDBkNzcxOC4zOWE4ZGZiMmUyMjIxYzExCiAgICAgZjgzOTI3YTBjYTg1YTg5Mi5kOTZhNmExZjgwMTI3OGVkLjRjZjU4MTE5OWVjMjMxOGYuMmRhYTVhYzU2NzA5MTBkOAogICAgIGVjNjkzYWNiNzgxZjE0MjAKLVZQU0xMV18weDA1XzEyOChtZW0pCitWTU9WU1NfWE1NX00zMihtZW0pCiAgIGJlZm9yZQogICAgIDUxYWZmYWFlMzA2ZmU0MTQuZGJjNmIwZDIwYWExMDBjMy43MGIyMGE1NmExYTMyYjI2LmQ0OTY1MmY0ODIxOTVhMDEKICAgICAzYTRhMTY1Y2FjMDUzZWUxLmJiNjQyNTAzZjZmMDYxYjEuNWIyOTA5MjEzOGI0NDg2MS5lYWUyZDE1ODg1OWQzMDFjCkBAIC01ODUxLDEzICs1ODUxLDEzIEBACiAgICAgMDRhYTU0YzU1ZDM0N2JiNS5kZDAzYzgxMjQ0NTkzMjc4LmExZDAxMTIzMzU4OGIzOGYuMmZhYmNlNmI1NTVlY2RmNwogICAgIDE3YzA0M2YyNWJiMjBlMTAKICAgYWZ0ZXIKLSAgICA1MWFmZmFhZTMwNmZlNDE0LmRiYzZiMGQyMGFhMTAwYzMuNzBiMjBhNTZhMWEzMmIyNi5kNDk2NTJmNDgyMTk1YTAxCisgICAgNTFhZmZhYWUzMDZmZTQxNC5kYmM2YjBkMjBhYTEwMGMzLjcwYjIwYTU2YTFhMzJiMjYuZDQ5NjUyZjQ4NTlkMzAxYwogICAgIDNhNGExNjVjYWMwNTNlZTEuYmI2NDI1MDNmNmYwNjFiMS41YjI5MDkyMTM4YjQ0ODYxLmVhZTJkMTU4ODU5ZDMwMWMKICAgICA4MTA0MGJiZjA3ZWRkY2IzLmYyNWY4NDlmMmJmZjA5MGEuNzg5YWUyNmM1ZjUyOGNjYi5lOTI1ZmNiMTQyZGJlZDhhCiAgICAgMDRhYTU0YzU1ZDM0N2JiNS5kZDAzYzgxMjQ0NTkzMjc4LmExZDAxMTIzMzU4OGIzOGYuMmZhYmNlNmI1NTVlY2RmNwogICAgIDE3YzA0M2YyNWJiMjBlMTAKIAotVlBTTExXXzB4MDVfMTI4KHJlZykKK1ZNT1ZTU19YTU1fTTMyKHJlZykKICAgYmVmb3JlCiAgICAgZmNiMDU3YjJlZjY0ZWE4MS45ZDA3NmM1OWNiZTVkNjEzLmQ4OWNlZGM4ZGQ4YTE5YTcuYjQ5OTEyMzNkNDYyNzlkYQogICAgIDNjYzYwNzE3YWVmZTllZjUuMmFlOWQyNjc2ZDBjYWJmYi4zZjc1ZjAyZDkzMWZmOTQ0LjhiYmY2Mjg2NThlZDlhZDcKQEAgLTU4NjUsMTIgKzU4NjUsMTIgQEAKICAgICAzOTk3Mjc4MTFiMjA3ZDk5LjhiNjg3MGExYmFlZWFkMTMuYzExYjdjYjVjNWEzOTc3Ny5mOTU1ZGJhOTgxNDRkYjlhCiAgICAgNDc1Y2ZlNTE1ZTI4NzNiNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMzYwOTZhMGI0NjBlZWUwLjJhYTA3NTIwMjg4MDczNDAKKyAgICBmY2IwNTdiMmVmNjRlYTgxLjlkMDc2YzU5Y2JlNWQ2MTMuZDg5Y2VkYzhkZDhhMTlhNy5iNDk5MTIzM2Q0NjI3OWRhCiAgICAgM2NjNjA3MTdhZWZlOWVmNS4yYWU5ZDI2NzZkMGNhYmZiLjNmNzVmMDJkOTMxZmY5NDQuOGJiZjYyODY1OGVkOWFkNwogICAgIDMxNGY0ZDhlMzMwZjY1MTkuODUxYWZmZGI1ZWI2YjQ5Ny42ZWRjY2JhZTAyYTMwZmZiLjA0MGY3YjA5ZGUzNGQxYjMKICAgICAzOTk3Mjc4MTFiMjA3ZDk5LjhiNjg3MGExYmFlZWFkMTMuYzExYjdjYjVjNWEzOTc3Ny5mOTU1ZGJhOTgxNDRkYjlhCiAgICAgNDc1Y2ZlNTE1ZTI4NzNiNwotVlBTTExXXzB4MDVfMTI4KG1lbSkKK1ZNT1ZTU19YTU1fTTMyKG1lbSkKICAgYmVmb3JlCiAgICAgY2JmMjVlZWM5MGVjNTYzNy5hZWVhOTA1ZTAxYmYyMDIwLjE5OWRhMmE1OWVjMTU0OWMuOTQ3ZmZlYjA3OGE5Y2Q2NAogICAgIDVmZTE3OTY4MzM5YzQwNDYuZWU5NDg1OTA4Mjc4OGE1YS4wOTg2MTBkNDI2M2E2MzVlLjQzNTQ0ZTA5Yjg0M2VjNzAKQEAgLTU4NzgsMTMgKzU4NzgsMTMgQEAKICAgICAyYWZlY2NiMDNmZjIxOWJlLjNhMWNmZmEyYzI2NGE3OWIuODJhMzkxNWY4ZjRlYWIzYi5hNTgwNDQ4YTRkNjJkODhmCiAgICAgMGY2ZmUzODlkYmZlMWRmYwogICBhZnRlcgotICAgIGNiZjI1ZWVjOTBlYzU2MzcuYWVlYTkwNWUwMWJmMjAyMC4xOTlkYTJhNTllYzE1NDljLjk0N2ZmZWIwNzhhOWNkNjQKKyAgICBjYmYyNWVlYzkwZWM1NjM3LmFlZWE5MDVlMDFiZjIwMjAuMTk5ZGEyYTU5ZWMxNTQ5Yy45NDdmZmViMGI4NDNlYzcwCiAgICAgNWZlMTc5NjgzMzljNDA0Ni5lZTk0ODU5MDgyNzg4YTVhLjA5ODYxMGQ0MjYzYTYzNWUuNDM1NDRlMDliODQzZWM3MAogICAgIGUwZjdjOWIwNjQ0NWVkMGYuNTNlMTAxODIzOWQ1ZjlmNS4zOGVmMzYxODZjNjU5Nzg0LjJhZTU2NjJlMjFmZDMxNDUKICAgICAyYWZlY2NiMDNmZjIxOWJlLjNhMWNmZmEyYzI2NGE3OWIuODJhMzkxNWY4ZjRlYWIzYi5hNTgwNDQ4YTRkNjJkODhmCiAgICAgMGY2ZmUzODlkYmZlMWRmYwogCi1WUFNMTFdfMHgwNV8xMjgocmVnKQorVk1PVlNTX1hNTV9NMzIocmVnKQogICBiZWZvcmUKICAgICBjNjAwM2Y5NzY0NWQzYjM1LjFhYzNmZTU0ZGZiMDdmODAuMDA5MzdkNWJiYWIwZDFmOC5jNDcwOWI5M2E5MDI1ZGFlCiAgICAgMjU3ZDU0MjA4NzBjNmZlOS44YTExZDk4OTYxOGFkYzgxLmZmOTA3NzE5YmQ0NmIyYjkuZDgyMGQyYTJkNjhjNjcwYQpAQCAtNTg5MiwxMiArNTg5MiwxMiBAQAogICAgIDRhNmU5YjU0MDU4ODA4NmMuNWQ3YzdmNTE3OGMyNmFlZi4xYjRmY2I1NTUxN2U4ZDE2LmU5NWNiNWZkZGI1NDc1MmMKICAgICA5ZTgwNTgyMmVhYTlmMTRhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY5ZTA2YWEwMmZjMGEyYzAuMmI4MGJmYTA2YTgwYTU4MAorICAgIGM2MDAzZjk3NjQ1ZDNiMzUuMWFjM2ZlNTRkZmIwN2Y4MC4wMDkzN2Q1YmJhYjBkMWY4LmM0NzA5YjkzYTkwMjVkYWUKICAgICAyNTdkNTQyMDg3MGM2ZmU5LjhhMTFkOTg5NjE4YWRjODEuZmY5MDc3MTliZDQ2YjJiOS5kODIwZDJhMmQ2OGM2NzBhCiAgICAgODgzMzFmOTBkZDk2ZjVjMi41N2I2ZGIzOWUwOGNlYmVkLjk0NjBlNzQ5NjZiMTg4OGEuOWI4MGIxNzczM2Y5ODY3YgogICAgIDRhNmU5YjU0MDU4ODA4NmMuNWQ3YzdmNTE3OGMyNmFlZi4xYjRmY2I1NTUxN2U4ZDE2LmU5NWNiNWZkZGI1NDc1MmMKICAgICA5ZTgwNTgyMmVhYTlmMTRhCi1WUFNMTFdfMHgwNV8xMjgobWVtKQorVk1PVlNTX1hNTV9NMzIobWVtKQogICBiZWZvcmUKICAgICA5NmI4MThkMjdlMDViNjAwLmM5NzljNGQ2OTg2ZGU1OTQuNzgzMTQxYmU0NjM5MTNiMy5mMWE4MWVhYTFiMzdmZTBhCiAgICAgYWRjZjcwZjdiMDczODA3Yi42MGEyOTY4NDM0ZDFjOGU2Ljg0OWY5ZDZiNjVmZGEzNjYuNzBiOWRjYjU1ZjZhMTYxMQpAQCAtNTkwNSwxMyArNTkwNSwxMyBAQAogICAgIGE4Y2VkODUzNjRiNjExNmYuNDU3OTI2MTBmNjQ4OGZiNi5kZmQ5MTQzNDA4OTg2NjQ5LmRjMmY4YTk5Yzg2YzJlMGIKICAgICA4MTJjNzI0YjIzNTNhNjU1CiAgIGFmdGVyCi0gICAgOTZiODE4ZDI3ZTA1YjYwMC5jOTc5YzRkNjk4NmRlNTk0Ljc4MzE0MWJlNDYzOTEzYjMuZjFhODFlYWExYjM3ZmUwYQorICAgIDk2YjgxOGQyN2UwNWI2MDAuYzk3OWM0ZDY5ODZkZTU5NC43ODMxNDFiZTQ2MzkxM2IzLmYxYTgxZWFhNWY2YTE2MTEKICAgICBhZGNmNzBmN2IwNzM4MDdiLjYwYTI5Njg0MzRkMWM4ZTYuODQ5ZjlkNmI2NWZkYTM2Ni43MGI5ZGNiNTVmNmExNjExCiAgICAgYmY5M2RjN2U5ZWZmMGFlNy42YTMzMGVjODc1NDFlYzBkLjVkOTMxMDQzZjIxOGQ1MzQuZjVjYzAxZTBiYWEzMTJkOAogICAgIGE4Y2VkODUzNjRiNjExNmYuNDU3OTI2MTBmNjQ4OGZiNi5kZmQ5MTQzNDA4OTg2NjQ5LmRjMmY4YTk5Yzg2YzJlMGIKICAgICA4MTJjNzI0YjIzNTNhNjU1CiAKLVZQVU5QQ0tMUURRXzEyOChyZWcpCitWTU9WU0RfWE1NX002NChyZWcpCiAgIGJlZm9yZQogICAgIDQwMTBiNTYyNmFlNGI1NjMuNDQ0ZGUxNjMxZGEyNTE0MC40Y2MwZGNjNzU0NzJlYjhkLmU2M2MyNzI5YzQ4ODEyZDAKICAgICA3NTI2NGY0OTM2YWE5OGUwLjZmZGM3Mjk4ZTVkMjg2ODUuZGE1NDJiNTkyYTRiM2MzZC40ZThhYzUwZTQxZjU5NWY1CkBAIC01OTE5LDEyICs1OTE5LDEyIEBACiAgICAgYjExZDc5M2RkMzA1YzlkYS5lMjVhMWMyNjE1MjdiZDFlLmZmOTI4NWJlYWYzZGIxZGEuYjExMjhlNThmMDczMGVjYwogICAgIDYzZTZiMjk1NWE5ZDdkZDUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjM4ZDY4Y2Y5Y2VhYWFlNS40ZThhYzUwZTQxZjU5NWY1CisgICAgNDAxMGI1NjI2YWU0YjU2My40NDRkZTE2MzFkYTI1MTQwLjRjYzBkY2M3NTQ3MmViOGQuZTYzYzI3MjljNDg4MTJkMAogICAgIDc1MjY0ZjQ5MzZhYTk4ZTAuNmZkYzcyOThlNWQyODY4NS5kYTU0MmI1OTJhNGIzYzNkLjRlOGFjNTBlNDFmNTk1ZjUKICAgICA3Y2JjM2Q2ZjI2MzE4Yjc5LjA1NDcwN2UwZDk0ZjZiNmIuNGQ4MTEwMzIxNDYwYzA3Mi5mMzhkNjhjZjljZWFhYWU1CiAgICAgYjExZDc5M2RkMzA1YzlkYS5lMjVhMWMyNjE1MjdiZDFlLmZmOTI4NWJlYWYzZGIxZGEuYjExMjhlNThmMDczMGVjYwogICAgIDYzZTZiMjk1NWE5ZDdkZDUKLVZQVU5QQ0tMUURRXzEyOChtZW0pCitWTU9WU0RfWE1NX002NChtZW0pCiAgIGJlZm9yZQogICAgIGU3ZDI1MDczZjU3M2IzMmQuNzA5NDAxMjBkYmIzOTBhZS5lMmUwMmU1NWI0NjYzN2M5LjRlZDU4ODY5OTY2YzRjMWYKICAgICAxOGE1ZTRkY2RlMDE2YjAwLjE1NmVkMDg0ZGFjNjFhYTIuZTBhNmI3NWJkMjE2OTc5OS45NDk0MTQ5ZjY2N2JjY2VkCkBAIC01OTMyLDEzICs1OTMyLDEzIEBACiAgICAgZjAyY2RmMDMwNzc3NTRjNS44MTdiMzQ4MDJiNGM2OTk4LjRiMjIyMzk5ZmRmZmY0NTYuNzliOWI4NWQyZjY3NmZkNwogICAgIGNmYjdjN2JjNjE1YzA5NGEKICAgYWZ0ZXIKLSAgICBlN2QyNTA3M2Y1NzNiMzJkLjcwOTQwMTIwZGJiMzkwYWUuZTJlMDJlNTViNDY2MzdjOS40ZWQ1ODg2OTk2NmM0YzFmCisgICAgZTdkMjUwNzNmNTczYjMyZC43MDk0MDEyMGRiYjM5MGFlLmUyZTAyZTU1YjQ2NjM3YzkuOTQ5NDE0OWY2NjdiY2NlZAogICAgIDE4YTVlNGRjZGUwMTZiMDAuMTU2ZWQwODRkYWM2MWFhMi5lMGE2Yjc1YmQyMTY5Nzk5Ljk0OTQxNDlmNjY3YmNjZWQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGVkNTg4Njk5NjZjNGMxZi45NDk0MTQ5ZjY2N2JjY2VkCisgICAgZDIyYWViYmUzMDU0NjI3OS5mY2Y3ZTNkNjZiY2JhMzYxLmJhNzgzNTIzOGM0NTk3YjkuMmUxYzI1Y2NiYmY1NmZmMQogICAgIGYwMmNkZjAzMDc3NzU0YzUuODE3YjM0ODAyYjRjNjk5OC40YjIyMjM5OWZkZmZmNDU2Ljc5YjliODVkMmY2NzZmZDcKICAgICBjZmI3YzdiYzYxNWMwOTRhCiAKLVZQVU5QQ0tMUURRXzEyOChyZWcpCitWTU9WU0RfWE1NX002NChyZWcpCiAgIGJlZm9yZQogICAgIDhkNjE1MDU3ZWE2MDc4ZjcuNTA3ODNlOTk4MDc3ZmMwZi5mZjQ2YzFmMGI1ZDhhNmYyLjZlNzBmZWFhNDI0ZjY5OWIKICAgICAwZjA1NGU5OTY5MDBmOTg5LmNkZGI4MzZiYjc1ZTE3ODQuZDRhMzg1OTBhNWY4OTcxZC4wMTJlNDA0MDc2NDFiNGI1CkBAIC01OTQ2LDEyICs1OTQ2LDEyIEBACiAgICAgZDA2NjlhYzJiMjQyMjEwZi44ZDEwYjA3M2NjMTc5NjllLmVmNDdhMzE1MmEyOTgzOTAuZTMyOWVlYWYxZDNjYjYxNwogICAgIGViZmU1MTVmYzg1ZGU3YjcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGYyODY3NDhiNmUxOGZkMC4wMTJlNDA0MDc2NDFiNGI1CisgICAgOGQ2MTUwNTdlYTYwNzhmNy41MDc4M2U5OTgwNzdmYzBmLmZmNDZjMWYwYjVkOGE2ZjIuNmU3MGZlYWE0MjRmNjk5YgogICAgIDBmMDU0ZTk5NjkwMGY5ODkuY2RkYjgzNmJiNzVlMTc4NC5kNGEzODU5MGE1Zjg5NzFkLjAxMmU0MDQwNzY0MWI0YjUKICAgICBiMmVkYmVlZTc3YzdjOGFkLjQyMWUyYjY1YzczYTYxNTAuNWJkZjdjY2U5ODNhNzdjMi5kZjI4Njc0OGI2ZTE4ZmQwCiAgICAgZDA2NjlhYzJiMjQyMjEwZi44ZDEwYjA3M2NjMTc5NjllLmVmNDdhMzE1MmEyOTgzOTAuZTMyOWVlYWYxZDNjYjYxNwogICAgIGViZmU1MTVmYzg1ZGU3YjcKLVZQVU5QQ0tMUURRXzEyOChtZW0pCitWTU9WU0RfWE1NX002NChtZW0pCiAgIGJlZm9yZQogICAgIGQxNzMwZDQ2ZDI1MGRjZGMuYzZiY2UwODFiNmZiM2Y1YS44ODdjOTA4MWUzZmY3MTlhLmVlMjVmNGQxZjU1MmY3MzEKICAgICA3MzU0OWM0ZjU3MjI1MmIxLmYwM2I4Yjk3MWU4MDVmM2IuMTEyZDQ2N2IyNzAxYWY3Mi5iM2M2NmQ2ZTk4NDAwZjUxCkBAIC01OTU5LDEzICs1OTU5LDEzIEBACiAgICAgNTc4OTI4Nzc0NTkxYjAxZC41MGUzMDE3ODhjMWM5NDZkLjM5OTIyNWU0YTk3YzQzNjAuZmU4MGM1ZmJkMDliMWFjMQogICAgIDNkMzE5YmM0OWUyMTg0NjgKICAgYWZ0ZXIKLSAgICBkMTczMGQ0NmQyNTBkY2RjLmM2YmNlMDgxYjZmYjNmNWEuODg3YzkwODFlM2ZmNzE5YS5lZTI1ZjRkMWY1NTJmNzMxCisgICAgZDE3MzBkNDZkMjUwZGNkYy5jNmJjZTA4MWI2ZmIzZjVhLjg4N2M5MDgxZTNmZjcxOWEuYjNjNjZkNmU5ODQwMGY1MQogICAgIDczNTQ5YzRmNTcyMjUyYjEuZjAzYjhiOTcxZTgwNWYzYi4xMTJkNDY3YjI3MDFhZjcyLmIzYzY2ZDZlOTg0MDBmNTEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWUyNWY0ZDFmNTUyZjczMS5iM2M2NmQ2ZTk4NDAwZjUxCisgICAgYWI2ZDdjNjY3NGRlMDQ2My5hYTJmOTc3MDg3NWRiZDVkLjAyZjE0ZjRlYjUyNjBjNGYuOTk3NTA5NThhZDdmMDY5ZAogICAgIDU3ODkyODc3NDU5MWIwMWQuNTBlMzAxNzg4YzFjOTQ2ZC4zOTkyMjVlNGE5N2M0MzYwLmZlODBjNWZiZDA5YjFhYzEKICAgICAzZDMxOWJjNDllMjE4NDY4CiAKLVZQVU5QQ0tMUURRXzEyOChyZWcpCitWTU9WU0RfWE1NX002NChyZWcpCiAgIGJlZm9yZQogICAgIGIxZDY4OTFkYjI5ZDgzM2YuNTE3NjFkNmVlNTQ1MTAwYy4zZWE0YzMxY2M5NGMyMjE3LjkwZGQ0NjJiMWQwZTExY2YKICAgICBiN2I5OGE3NGE5OTk1MWYyLjc2ZmVkNTM3NzAwOWUwNWIuZDBiZmRiYzZkYjc2YTAwNi5lNTllMmQwZDMwZTgzMmM5CkBAIC01OTczLDEyICs1OTczLDEyIEBACiAgICAgZWE2YmI2YzhhZDQ2NGQ5OS5iMjEyODNlZmJhZWFjNGNjLjUwMmRmYmUwZWRlZDYzNjUuZjRiMTNkNTc5Y2E2NWMwYwogICAgIDY4OWI1Zjk1MmZhMmRkYWQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTJhMDU2NzhmYjE3NjI3OS5lNTllMmQwZDMwZTgzMmM5CisgICAgYjFkNjg5MWRiMjlkODMzZi41MTc2MWQ2ZWU1NDUxMDBjLjNlYTRjMzFjYzk0YzIyMTcuOTBkZDQ2MmIxZDBlMTFjZgogICAgIGI3Yjk4YTc0YTk5OTUxZjIuNzZmZWQ1Mzc3MDA5ZTA1Yi5kMGJmZGJjNmRiNzZhMDA2LmU1OWUyZDBkMzBlODMyYzkKICAgICBhYzI3OWEzMzFlYTMyYjJjLmEzZWVjZWJlMDNlNmRlMzcuNjI3ZTQ0ZTQ1ZTI4NGRlNy4xMmEwNTY3OGZiMTc2Mjc5CiAgICAgZWE2YmI2YzhhZDQ2NGQ5OS5iMjEyODNlZmJhZWFjNGNjLjUwMmRmYmUwZWRlZDYzNjUuZjRiMTNkNTc5Y2E2NWMwYwogICAgIDY4OWI1Zjk1MmZhMmRkYWQKLVZQVU5QQ0tMUURRXzEyOChtZW0pCitWTU9WU0RfWE1NX002NChtZW0pCiAgIGJlZm9yZQogICAgIDQ4MmMzNzIwY2YxNmExODkuY2ZkM2Q4OWVmNDBmZjNlNy44MDM2NzBiN2IwMjA0ZjQ1LmY2MWFmYTI4MjQ1MTIwMmQKICAgICA3MTJlNDFlMzk5MGU2M2NjLmI1YWFmZTIxOGM4OTU4YmYuZWEyNjEyMDAwMTk1M2FjZi5iMDkwM2YyN2EwZTFiZGViCkBAIC01OTg2LDEzICs1OTg2LDEzIEBACiAgICAgMGViN2RiYzIxOGJiZDQzNS5mOGQzNDNkZTI1YzE1MWM0LmZkOTk2MWM5MjY2OTI0YzQuZDA0NTg4ZmFkNWIzOGVmNwogICAgIGVkMWU4NGE2YzYwZDM5OWQKICAgYWZ0ZXIKLSAgICA0ODJjMzcyMGNmMTZhMTg5LmNmZDNkODllZjQwZmYzZTcuODAzNjcwYjdiMDIwNGY0NS5mNjFhZmEyODI0NTEyMDJkCisgICAgNDgyYzM3MjBjZjE2YTE4OS5jZmQzZDg5ZWY0MGZmM2U3LjgwMzY3MGI3YjAyMDRmNDUuYjA5MDNmMjdhMGUxYmRlYgogICAgIDcxMmU0MWUzOTkwZTYzY2MuYjVhYWZlMjE4Yzg5NThiZi5lYTI2MTIwMDAxOTUzYWNmLmIwOTAzZjI3YTBlMWJkZWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjYxYWZhMjgyNDUxMjAyZC5iMDkwM2YyN2EwZTFiZGViCisgICAgYmY2ZWY5Y2JhODk2ZTBhMS5mOTNiMjNiZDEzNDBiOWQwLmNhYWRlM2I4Y2E1MzQzOTUuZGFkYWM1NDlmYzI4Nzk0YQogICAgIDBlYjdkYmMyMThiYmQ0MzUuZjhkMzQzZGUyNWMxNTFjNC5mZDk5NjFjOTI2NjkyNGM0LmQwNDU4OGZhZDViMzhlZjcKICAgICBlZDFlODRhNmM2MGQzOTlkCiAKLVZQSU5TUkRfMTI4KHJlZykKK1ZNT1ZTU19NNjRfWE1NKHJlZykKICAgYmVmb3JlCiAgICAgOGZhZmI2Yjk2Y2MyYjZlOS4zYWQ3NjRiNTA2ODlmYmIzLjBjYmU1YmYwNWQ5NzVkNDguNWZiNDA3MjEzMmUwOWE4OAogICAgIDExNDQxOWEwNjI1ZTQwODcuMjA5ODBmOTE4ZTBhMTA0OC45MjQ4NjY1ZjU3NGUxYTA3LmNjY2I1MmFiMDljNjYwMGMKQEAgLTYwMDAsMTIgKzYwMDAsMTIgQEAKICAgICAyNGFlNjI5NWIwN2Q2ZTY2Ljg1MzFiYmIwZDk1YWY3NjYuNjU2ODQ1MDUwMzkxOTFlOC4zNzFjYzMwNThhMGRjZjA2CiAgICAgZWRlZmUyYWQ2Yjg2ZjBkNAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MjQ4NjY1ZjU3NGUxYTA3LmNjY2I1MmFiNmI4NmYwZDQKKyAgICA4ZmFmYjZiOTZjYzJiNmU5LjNhZDc2NGI1MDY4OWZiYjMuMGNiZTViZjA1ZDk3NWQ0OC41ZmI0MDcyMTMyZTA5YTg4CiAgICAgMTE0NDE5YTA2MjVlNDA4Ny4yMDk4MGY5MThlMGExMDQ4LjkyNDg2NjVmNTc0ZTFhMDcuY2NjYjUyYWIwOWM2NjAwYwogICAgIGNlMmJhOWM1NDU2ZTE0MjIuOWFjODU4NDBjYjRjZDAyMC5lNmJkNjA5OGIwNzNjMWFlLjIwYWFiYzUzYzgyNjMzN2QKICAgICAyNGFlNjI5NWIwN2Q2ZTY2Ljg1MzFiYmIwZDk1YWY3NjYuNjU2ODQ1MDUwMzkxOTFlOC4zNzFjYzMwNThhMGRjZjA2CiAgICAgZWRlZmUyYWQ2Yjg2ZjBkNAotVlBJTlNSRF8xMjgobWVtKQorVk1PVlNTX002NF9YTU0obWVtKQogICBiZWZvcmUKICAgICAxZWVkOTUzODg5OWQ1MTEzLjZlMWI0MTdkM2YxODhhMDEuYmRhMGI1Y2JkNTQxNDE0Ny42OTk3MTExNGVkMzVjNDYyCiAgICAgYTZlNDU4OTBmZDVmYWZlZS4wN2JjNDBlODhmY2FhMzlkLjFlZTFjMTdmZGEwYzY5ZWUuNGY5NGMxMmYwYWU5OTdjOApAQCAtNjAxNCwxMiArNjAxNCwxMiBAQAogICAgIGU1NWRmYjA5YTVlODI2MzYKICAgYWZ0ZXIKICAgICAxZWVkOTUzODg5OWQ1MTEzLjZlMWI0MTdkM2YxODhhMDEuYmRhMGI1Y2JkNTQxNDE0Ny42OTk3MTExNGVkMzVjNDYyCi0gICAgYTZlNDU4OTBmZDVmYWZlZS4wN2JjNDBlODhmY2FhMzlkLjFlZTFjMTdmZGEwYzY5ZWUuNGY5NGMxMmYwYWU5OTdjOAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZDM1YzQ2MmRhMGM2OWVlLjRmOTRjMTJmMGFlOTk3YzgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGVkMzVjNDYyCisgICAgNjE5ZWE4YTJlNWQ3YzY5Mi40ZGRlNWQ0MjNjMWZmNmU2Ljg0YmY1YmI3MDVjNzJjODguNzNhYzRmYzRmNDNiNDVjNQogICAgIDJiZTgwMDViNWQxMTUyMmEuOWFjZDkzZjZlMWE0YmY4OS5jYjA4ZmY1ZjcxN2Y0NTQxLjMxMmJiOTNlNGFiNzBjMDYKICAgICBlNTVkZmIwOWE1ZTgyNjM2CiAKLVZQSU5TUkRfMTI4KHJlZykKK1ZNT1ZTU19NNjRfWE1NKHJlZykKICAgYmVmb3JlCiAgICAgZWI4ZDBmOTFhNDVhZDAwMi5lMDhkZGNhNTgwMWEwZWUzLjRjZDRkZjcyMWFlNDM5MzIuY2U4NjI5NjMzYjNmNzI0NAogICAgIDlmMDlmMzQyZTA5OTQ1MTYuNWM1YmI4NmU2YWZkYjdlOS5iZDQxM2IyMjg0NmJhMThjLjZiMDY1NmFmN2UxMzZkYmUKQEAgLTYwMjcsMTIgKzYwMjcsMTIgQEAKICAgICA4MTEwMThjZjg1YjA4M2M0LjE4OWU2MTJhMDU4MmJmOGEuNTA3OTE4Yzk1YTgwMmIwNi5lMDNjYTZkMGUxMjliZmM1CiAgICAgNzA4YWMxN2MzODgyOGVhYgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZDQxM2IyMjg0NmJhMThjLjZiMDY1NmFmMzg4MjhlYWIKKyAgICBlYjhkMGY5MWE0NWFkMDAyLmUwOGRkY2E1ODAxYTBlZTMuNGNkNGRmNzIxYWU0MzkzMi5jZTg2Mjk2MzNiM2Y3MjQ0CiAgICAgOWYwOWYzNDJlMDk5NDUxNi41YzViYjg2ZTZhZmRiN2U5LmJkNDEzYjIyODQ2YmExOGMuNmIwNjU2YWY3ZTEzNmRiZQogICAgIDVkMWJhMjg4ZjczMmMyMWQuN2IxZDExYTEzOGM2MDg2Ny40YjVlYTU3MGJiYzYzMzQ0LjdkNTUwMTMwNTcwOGYzZGEKICAgICA4MTEwMThjZjg1YjA4M2M0LjE4OWU2MTJhMDU4MmJmOGEuNTA3OTE4Yzk1YTgwMmIwNi5lMDNjYTZkMGUxMjliZmM1CiAgICAgNzA4YWMxN2MzODgyOGVhYgotVlBJTlNSRF8xMjgobWVtKQorVk1PVlNTX002NF9YTU0obWVtKQogICBiZWZvcmUKICAgICAwODBhY2YyMTdhMjAxY2I3LjY2MzQ1MTg0MjVhMGM0YjYuMTFhYjI2ZjVlZTNjOTY3ZC4yYWRjOTA5OWZkMjVjNDdkCiAgICAgODY4NzRiYWFjMDBlMjUxNS42YWQzNGExMTc0OGNjMGEwLjQxMTBkYmVlMGUwMDRhNmQuMzNkNDBhNGQ0MTQyM2I1NQpAQCAtNjA0MSwxMiArNjA0MSwxMiBAQAogICAgIDA3MzA1NmYyZTdkYzJhZTEKICAgYWZ0ZXIKICAgICAwODBhY2YyMTdhMjAxY2I3LjY2MzQ1MTg0MjVhMGM0YjYuMTFhYjI2ZjVlZTNjOTY3ZC4yYWRjOTA5OWZkMjVjNDdkCi0gICAgODY4NzRiYWFjMDBlMjUxNS42YWQzNGExMTc0OGNjMGEwLjQxMTBkYmVlMGUwMDRhNmQuMzNkNDBhNGQ0MTQyM2I1NQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZDI1YzQ3ZDBlMDA0YTZkLjMzZDQwYTRkNDE0MjNiNTUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGZkMjVjNDdkCisgICAgYzVjZWIxMDIyODU4NjVmMy5lODM5ZmVlNDBkMDNiNTJkLjgzOTlmZDAxODJkYjk2ODYuYzhhYzgxNGZjMTYxY2MzYgogICAgIGEwYWM3ZDE3Y2UwYjk3N2IuM2NiMTY5Njg4YzhlZGMwYi5iNTEyMDYxYTY1ZDgzOGYzLjQ1YjJmMTBkMWExMWIyZGIKICAgICAwNzMwNTZmMmU3ZGMyYWUxCiAKLVZQSU5TUkRfMTI4KHJlZykKK1ZNT1ZTU19NNjRfWE1NKHJlZykKICAgYmVmb3JlCiAgICAgNjg3NGFjNjljNTRlNzBmOC5mNWViMmJkNGNjMzI3OGQ5LmMyODk4NzA4OGViYjc0ZTMuYjI0Njc0MjZkNDAzZTllMAogICAgIGM1YzhlZmUwNGZmM2MwY2MuOWU1NzM4MjU0MWQ5YzMzYS5kNTBiNTQzMmFmMTViNzY0LjU1MDJjMjBmZWE2OTY4N2IKQEAgLTYwNTQsMTIgKzYwNTQsMTIgQEAKICAgICBlM2QzMmU3Y2Q5MDg2YzVlLjYwZWE1YzMzZmFkOThhYjQuMTc0MGVkZDFiYjgyMzEwYi4wMTQzZWYyZDdkMTNiYzY1CiAgICAgYzI1ZmM1MzgzMjcwMDkwZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNTBiNTQzMmFmMTViNzY0LjU1MDJjMjBmMzI3MDA5MGQKKyAgICA2ODc0YWM2OWM1NGU3MGY4LmY1ZWIyYmQ0Y2MzMjc4ZDkuYzI4OTg3MDg4ZWJiNzRlMy5iMjQ2NzQyNmQ0MDNlOWUwCiAgICAgYzVjOGVmZTA0ZmYzYzBjYy45ZTU3MzgyNTQxZDljMzNhLmQ1MGI1NDMyYWYxNWI3NjQuNTUwMmMyMGZlYTY5Njg3YgogICAgIDdhNzkxY2MyMjI1ODU1MGIuNzliZTFmZjY0NzBkMzVjYS5kMzg0Y2Q1MTg5MjllMjM4LjdjMTM2Y2MzYzQxNTcwZWUKICAgICBlM2QzMmU3Y2Q5MDg2YzVlLjYwZWE1YzMzZmFkOThhYjQuMTc0MGVkZDFiYjgyMzEwYi4wMTQzZWYyZDdkMTNiYzY1CiAgICAgYzI1ZmM1MzgzMjcwMDkwZAotVlBJTlNSRF8xMjgobWVtKQorVk1PVlNTX002NF9YTU0obWVtKQogICBiZWZvcmUKICAgICA5OTMyNmNkMmZlMzcxMjEyLjVjMjEyMTc4MTA4ZjQxNzQuMzFhOTZiYzk3NzRhN2UyNS5mYzhiYjAxZWRmYWNkZjhhCiAgICAgNjQ4YTVmZTZmZDc1OTQ5Zi40MmIxZjIyMzY0N2ExMGY3LmM2YzVjOWEyZDk2YWNkNDkuZTBiMDEyYTU5MTMzMjk2MQpAQCAtNjA2OCwxMiArNjA2OCwxMiBAQAogICAgIDE2M2FjZGM2MTc3MjA2YWIKICAgYWZ0ZXIKICAgICA5OTMyNmNkMmZlMzcxMjEyLjVjMjEyMTc4MTA4ZjQxNzQuMzFhOTZiYzk3NzRhN2UyNS5mYzhiYjAxZWRmYWNkZjhhCi0gICAgNjQ4YTVmZTZmZDc1OTQ5Zi40MmIxZjIyMzY0N2ExMGY3LmM2YzVjOWEyZDk2YWNkNDkuZTBiMDEyYTU5MTMzMjk2MQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZmFjZGY4YWQ5NmFjZDQ5LmUwYjAxMmE1OTEzMzI5NjEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGRmYWNkZjhhCisgICAgZmQzMTFiNjA0YzM1NGNlMS5lZmNkOWNlOTcxNTQxNDkzLmZkMGJmMGFjM2Q0ODMyNGIuMWRmZDEwZDA2ZWE0NGIzYgogICAgIDQxZjUxYTJjMDc4M2YzMDMuYzBjMjFhMzdkMmE5OGFmNi5iMDQ3NWVkMWJlZWQ2YTU3LjExYmNhNTBjMTE4YTgxYzUKICAgICAxNjNhY2RjNjE3NzIwNmFiCiAKLVZNT1ZEX1hNTV90b19NRU0zMihyZWcpCitWTU9WU0RfTTY0X1hNTShyZWcpCiAgIGJlZm9yZQogICAgIDhhYzM4NDY5MWJlNzE3OTguMGRhMGRhMzY0OTZiNDgzMi4xMWRjNmE3NzIzMDZhZGM5LmJkNDU4ZWZmNzk2NzMwOWIKICAgICBjN2EzYzY2MGI5NzVmMDM4LjNiZmZkNjZiMmVmYTA1OWEuM2Q2Nzg4MTcwMWY2YmJiYi5mZWQwZmQyMTg5YzE0MTQwCkBAIC02MDg2LDcgKzYwODYsNyBAQAogICAgIDJiMjU5MDE5OGVhOWNjMzkuYThkZThhYjVkMzNiZTc2Ni5hMmFmNmU4MjA3MDZlZTc2LjUwYjUyNTIyMGIwODU5NzUKICAgICAxMDk3ZGRmZjM2MGVlODQ0LjMxMDg3MzAyNTMzYmE5YzMuOWIwMDFhMjRkMmMxODNhNi44ZmMxODRmMDFhNDYzNDY0CiAgICAgOThiZTk1NzZkMjhhOGUzYQotVk1PVkRfWE1NX3RvX01FTTMyKG1lbSkKK1ZNT1ZTRF9NNjRfWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgNDU3OWQ0YTE1MGRkMjIyMi5kMzQzYTk3ZTRjMzA4MDA4LmIwNGIwYjNjY2IwNTA5ZGQuODRhNTg3NjlmZWIzYjVmOAogICAgIDczYmRiZTViYjA0ZGFkNDkuZDE3NmYwMDI2ZDljZDAyZi4wMjcxZDA1MTU2YTVjMWRmLmI5ZWJiMWJkMjU2OGMxMTgKQEAgLTYwOTQsMTMgKzYwOTQsMTMgQEAKICAgICBjMjE1N2YzMDgzYjI5NzAyLmU5YTFlMGNhM2Q3Zjg2NTguOGY5OWNlYjkxNzk4MmI0Yy43NjhhMmQ0MmRhNGQ1NzcwCiAgICAgYjc3Yjc3NGI5Zjk1NTgwMQogICBhZnRlcgotICAgIDQ1NzlkNGExNTBkZDIyMjIuZDM0M2E5N2U0YzMwODAwOC5iMDRiMGIzY2NiMDUwOWRkLjg0YTU4NzY5ZTY2ZGUzYjIKLSAgICA3M2JkYmU1YmIwNGRhZDQ5LmQxNzZmMDAyNmQ5Y2QwMmYuMDI3MWQwNTE1NmE1YzFkZi5iOWViYjFiZDI1NjhjMTE4CisgICAgNDU3OWQ0YTE1MGRkMjIyMi5kMzQzYTk3ZTRjMzA4MDA4LmIwNGIwYjNjY2IwNTA5ZGQuODRhNTg3NjlmZWIzYjVmOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg0YTU4NzY5ZmViM2I1ZjgKICAgICBmZTU4Y2Q5MTBkZTVlYWRhLjY0N2NhZWY3MzRkZDEzNjYuMDM0NzNkMmMxMTI3OGVmNS45NjFlOTU4Y2U2NmRlM2IyCiAgICAgYzIxNTdmMzA4M2IyOTcwMi5lOWExZTBjYTNkN2Y4NjU4LjhmOTljZWI5MTc5ODJiNGMuNzY4YTJkNDJkYTRkNTc3MAogICAgIGI3N2I3NzRiOWY5NTU4MDEKIAotVk1PVkRfWE1NX3RvX01FTTMyKHJlZykKK1ZNT1ZTRF9NNjRfWE1NKHJlZykKICAgYmVmb3JlCiAgICAgYjQzZDZlMTRkMWQwMjQwZi45YmJmNTAyMjJmYmY2ZWVkLmJjMzE4MWU1MjUwZjY1YjIuODIzMzAwZTQ4NTAzNTUxMAogICAgIGM4MWIwZTA3MGI4YWY0NDcuNjUyM2JhNTUyZDE4MmNjNi4zOTc4OGRiNTg3MThlYjFmLmI4ZTE0ZTk5NzY3NWM4NmQKQEAgLTYxMTMsNyArNjExMyw3IEBACiAgICAgNTE2MzU0OTJlYTRmMDc1NC5mYzBkM2FiMzk3Y2E4Y2JhLmJjYzEwMWE3MDAyNjU2NGMuMGQ2ZTM0YzQwN2Y5NDA4ZQogICAgIGFhNWYzYjIwMDlhYzk3ZTMuM2M0OTRkMmE4Y2RmNGJmNC5hMjU5ZDcyNjJjYzZlMGU1LjVkYTgyZTUxNTM5Yjc4OWYKICAgICA4NDU5YjgyYzc2NjgyZGNkCi1WTU9WRF9YTU1fdG9fTUVNMzIobWVtKQorVk1PVlNEX002NF9YTU0obWVtKQogICBiZWZvcmUKICAgICA1ZTRlNGY0MjhkNmIxYjQ0LjJlNWNiZTFjMDQyZGUxYTAuMDFhMjZlYTUyNjY2MjVhMS40NThjMGQ5ZGE1ODNjNTk1CiAgICAgYzc1MzZlN2RiNGIwZmUzMC4zYmE2ZGNmNDc4NWMyMTM2LjI3ZTYxOTEwODE2OGQ2ZWQuMDJhNjllN2EwYWVhNDMwOQpAQCAtNjEyMSwxMyArNjEyMSwxMyBAQAogICAgIGI2YmQzNDE3OWYzMjkxMTQuNWM1MGQyZTUzYWY5NzE5Zi4wNjViZmU2NmVjMTNhYjEwLjNhYmZjMjEzMDJlM2Y0ZWIKICAgICA2ZDU1NGRhN2NkOGRhMWIyCiAgIGFmdGVyCi0gICAgNWU0ZTRmNDI4ZDZiMWI0NC4yZTVjYmUxYzA0MmRlMWEwLjAxYTI2ZWE1MjY2NjI1YTEuNDU4YzBkOWRmNDg1OTRlYwotICAgIGM3NTM2ZTdkYjRiMGZlMzAuM2JhNmRjZjQ3ODVjMjEzNi4yN2U2MTkxMDgxNjhkNmVkLjAyYTY5ZTdhMGFlYTQzMDkKKyAgICA1ZTRlNGY0MjhkNmIxYjQ0LjJlNWNiZTFjMDQyZGUxYTAuMDFhMjZlYTUyNjY2MjVhMS40NThjMGQ5ZGE1ODNjNTk1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDU4YzBkOWRhNTgzYzU5NQogICAgIDliMzQ5MWNiMDY0NDkxYmMuMmI4ODhlMTMwMWM3OTI1MS44YWRmY2I1N2JhZjMxOTAzLjM1ZjM4NjI4ZjQ4NTk0ZWMKICAgICBiNmJkMzQxNzlmMzI5MTE0LjVjNTBkMmU1M2FmOTcxOWYuMDY1YmZlNjZlYzEzYWIxMC4zYWJmYzIxMzAyZTNmNGViCiAgICAgNmQ1NTRkYTdjZDhkYTFiMgogCi1WTU9WRF9YTU1fdG9fTUVNMzIocmVnKQorVk1PVlNEX002NF9YTU0ocmVnKQogICBiZWZvcmUKICAgICAyYTAyMjI1MWYzMTFkNWVjLmY0YjlkMzRkOWM4NmI5NjUuMjg0OGEyZDdiZjdmZmFjYS43NzI0MzAyYTMzZDI0ODNmCiAgICAgY2MxMzQwN2IxMGZhY2Q0Ni4zMGY1ZWI1ODE4NGRjN2RiLmVkYmRmYzUzMmRlNDY5N2UuYjgwNmRjOGRhZDNlYWNiZApAQCAtNjE0MCw3ICs2MTQwLDcgQEAKICAgICBiMWQyYTA5MmJmZDRjNTZiLjQ4M2VmNzI2MzA5Mjc1YTEuMDVmYmRjYzYxZmI0Zjk2OC5hN2NmN2Y3YzczNjM5MmI1CiAgICAgMzQ4YjNmMDM5ZDJjZjgwOC4xNzVlNzNhMzAwNjE4MGU0LmNkNGUzYzlkMzI3Y2U3MzQuMWY0YTkzZTRhMzRiYjc1NAogICAgIGZjNDI5NmIwNTkwNGQ3YzYKLVZNT1ZEX1hNTV90b19NRU0zMihtZW0pCitWTU9WU0RfTTY0X1hNTShtZW0pCiAgIGJlZm9yZQogICAgIDE5ODQwM2NiYjA5YWFkMzcuYjE4YzFhMzg0NThkYTNjOC43OTIxZGJiOWEyYzdhM2QwLmEyMDIxYTQyMDJjNzZmOGQKICAgICA1NGRkNTYyM2M0MThmNmQxLjg0MjAyYzlmNTM4NDAyNTkuNDk1NWFjNTUzNWNmOWM5MC5kZTYzNzEyMzI5MjFjYzIwCkBAIC02MTQ4LDEzICs2MTQ4LDEzIEBACiAgICAgOTBmZTlmMzc5NmZjZDEzNy45YjJmZTZiMDEzNjFjYjk4LmE3M2M3NmQwOTdmNmZhM2UuZmU1YTdhNDVmMjM0ZjlhMgogICAgIDlhOGEyNTVmY2IwNDNmZWEKICAgYWZ0ZXIKLSAgICAxOTg0MDNjYmIwOWFhZDM3LmIxOGMxYTM4NDU4ZGEzYzguNzkyMWRiYjlhMmM3YTNkMC5hMjAyMWE0MjQ1MTczYzk4Ci0gICAgNTRkZDU2MjNjNDE4ZjZkMS44NDIwMmM5ZjUzODQwMjU5LjQ5NTVhYzU1MzVjZjljOTAuZGU2MzcxMjMyOTIxY2MyMAorICAgIDE5ODQwM2NiYjA5YWFkMzcuYjE4YzFhMzg0NThkYTNjOC43OTIxZGJiOWEyYzdhM2QwLmEyMDIxYTQyMDJjNzZmOGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMjAyMWE0MjAyYzc2ZjhkCiAgICAgODcxNzBjYTNiMjhhNmVjMy4wODkyNzFhMzY0OWM1MTY0LjY1YzU2MTYzZDI4NTI0NTEuZGViYzNkYWE0NTE3M2M5OAogICAgIDkwZmU5ZjM3OTZmY2QxMzcuOWIyZmU2YjAxMzYxY2I5OC5hNzNjNzZkMDk3ZjZmYTNlLmZlNWE3YTQ1ZjIzNGY5YTIKICAgICA5YThhMjU1ZmNiMDQzZmVhCiAKLVZQQU5ETl8xMjgocmVnKQorVklOU0VSVFBTXzB4MzlfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMGY5NjM4NjQ2ZDE0NGIxYi40YTYwOGRjYjhhN2JkYTVhLjk4NDM4NjMyZmQ2MGFkOWYuZWQ4NzY3ODZhMDJkZDk4NAogICAgIGI3Y2FiMWMwNzNlZjVhZTIuOTAwNzUxNGJhZDEyNDY1Ny41YTFhNGM5NWJlMjMzMzI1LjExNzJiMTczMDgzNzdjNGUKQEAgLTYxNjIsMTIgKzYxNjIsMTIgQEAKICAgICAxM2RmYzMyZTFkMzc2YmUwLjM0NTg0Y2MwZWFiOTM2OTEuYTI0MDQwYWUzMjJiMTk2MS42NzU4M2M5ZjY3ZjAwMDIxCiAgICAgNTFlYTc2YjY5NWI5NTk4MQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMDQwMDAyYTAwMDgwODQwLjY2MDgwYzhjNjdjMDAwMjEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBiZTIzMzMyNS4xMTcyYjE3MzAwMDAwMDAwCiAgICAgYjdjYWIxYzA3M2VmNWFlMi45MDA3NTE0YmFkMTI0NjU3LjVhMWE0Yzk1YmUyMzMzMjUuMTE3MmIxNzMwODM3N2M0ZQogICAgIGVmNzQ4Y2UwN2EyMmE1ZWEuM2ZjMTY3YTQxOWNkZDE1Yi4zZjAwMzc0NWYxMzk5OGQ3LmYxYzljZTgyZWMxZWEwYzkKICAgICAxM2RmYzMyZTFkMzc2YmUwLjM0NTg0Y2MwZWFiOTM2OTEuYTI0MDQwYWUzMjJiMTk2MS42NzU4M2M5ZjY3ZjAwMDIxCiAgICAgNTFlYTc2YjY5NWI5NTk4MQotVlBBTkROXzEyOChtZW0pCitWSU5TRVJUUFNfMHgzOV8xMjgobWVtKQogICBiZWZvcmUKICAgICA4OTRkZjliMzkzODQ2ODE2LjdmNTY1NDE3ZjhiY2U2NzAuNDk5OTdiOGQzZGUxMzIyNi5kZTI4NjQzYzFlODdmMjZlCiAgICAgZWQ0YjNmODI3ZDVkZTYwYy44ZjI2M2EwOGE4M2Q1MzQ1LjVjNTA3MGY1MmQ1MjgxNDYuNTEwMmEwNWM1MGQ4NWZhYgpAQCAtNjE3NywxMSArNjE3NywxMSBAQAogICBhZnRlcgogICAgIDg5NGRmOWIzOTM4NDY4MTYuN2Y1NjU0MTdmOGJjZTY3MC40OTk5N2I4ZDNkZTEzMjI2LmRlMjg2NDNjMWU4N2YyNmUKICAgICBlZDRiM2Y4MjdkNWRlNjBjLjhmMjYzYTA4YTgzZDUzNDUuNWM1MDcwZjUyZDUyODE0Ni41MTAyYTA1YzUwZDg1ZmFiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxODkwYjA4MTBhMTMyMjAuOGUyODQ0MjAwZTA3YTA0NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41YzUwNzBmNTAwMDAwMDAwLjAwMDAwMDAwMWU4N2YyNmUKICAgICBhNDRiMDk0NjgyNmEyNmM4LjBiMDFmNWFlZjU2MGYyNzAuZTc0ZjljNGI1NjNjMDdkNS40OGJmNGRmZWY4OGJlMzY0CiAgICAgODQzYWI3NTlhNTA0NzMzNwogCi1WUEFORE5fMTI4KHJlZykKK1ZJTlNFUlRQU18weDM5XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDY2ZDgyN2Y0MDlhMzg2ZWIuYjBlNTg0MTRkNmI2NWZlOC4yZmE0YzIzY2NiMWE5YzFlLjE5MmZjYzEwYzZjZGI2OWQKICAgICA0YmU0OWIzZGMwZjM1OTI5LjU4NGJiMzYzODU0MWY4MTcuNjdjZmQ1ODFlNTAwMjhjMi5iN2I2YjEyMTQ0ZDdhODlmCkBAIC02MTg5LDEyICs2MTg5LDEyIEBACiAgICAgODk3YTdkODY5NWQ3MmZmYS5lN2FhMWYzOTY2NDEzZTU5LjgyZjFiYWUwNTY3ZWQ1OWEuYWFlNDkwZDdkOTg0NDMwMwogICAgIGI3MjM4MDU0MjgzZjY1YmMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAzMDJhNjAxMjdlZDUxOC4wODQwMDBkNjk5MDA0MzAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwZTUwMDI4YzIuYjdiNmIxMjEwMDAwMDAwMAogICAgIDRiZTQ5YjNkYzBmMzU5MjkuNTg0YmIzNjM4NTQxZjgxNy42N2NmZDU4MWU1MDAyOGMyLmI3YjZiMTIxNDRkN2E4OWYKICAgICA4ZGFjMGU5ZjY1ODAyOGEwLjc2NDgxMzIxYWMxNmFmODQuMGVkMDI5ZTlkZjlkZDEwNy45ZWFlYzk2YWVjNjU5ODA3CiAgICAgODk3YTdkODY5NWQ3MmZmYS5lN2FhMWYzOTY2NDEzZTU5LjgyZjFiYWUwNTY3ZWQ1OWEuYWFlNDkwZDdkOTg0NDMwMwogICAgIGI3MjM4MDU0MjgzZjY1YmMKLVZQQU5ETl8xMjgobWVtKQorVklOU0VSVFBTXzB4MzlfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTIzOTE3Y2RmNGEyYmE2MS45YzliZTI1ZmViODNhOWU0Ljg3M2I1Mzk2ZDBjZTYyYzIuMWU3Zjg1ZDJlNTJkNmUyNgogICAgIDQ1ZjFkMDJmNTliOWZkMWMuMjA1YjNiOTQwMzEwZDMwOS4zMmM4MmIyNjA1Y2FkNmVkLjNlYzY4NDJiMjkzOWQ4NTgKQEAgLTYyMDQsMTEgKzYyMDQsMTEgQEAKICAgYWZ0ZXIKICAgICBhMjM5MTdjZGY0YTJiYTYxLjljOWJlMjVmZWI4M2E5ZTQuODczYjUzOTZkMGNlNjJjMi4xZTdmODVkMmU1MmQ2ZTI2CiAgICAgNDVmMWQwMmY1OWI5ZmQxYy4yMDViM2I5NDAzMTBkMzA5LjMyYzgyYjI2MDVjYWQ2ZWQuM2VjNjg0MmIyOTM5ZDg1OAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NTMzNTA5MGQwMDQyMDAyLjAwMzkwMWQwYzQwNDI2MjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzJjODJiMjYwMDAwMDAwMC4wMDAwMDAwMGU1MmQ2ZTI2CiAgICAgMjY3NTk4NWE2MDM2NDA4Ni5lZWU3YjZjNmViZmYyNmI2LjE5MDViOThjNDIzZGExMzMuNzlhZTEzYzMzZTkxMTM1ZAogICAgIDRkZTg5YWQ5NDdmNjViODcKIAotVlBBTkROXzEyOChyZWcpCitWSU5TRVJUUFNfMHgzOV8xMjgocmVnKQogICBiZWZvcmUKICAgICAxNDBhNDcwNzc0ZTc2NDA4LjFjZGFhMGZjM2FiMmI4OGMuZjA0YmQwOWFmMzc4Yzc5Ni4wZDRlNjUzYTgyY2M3MGE3CiAgICAgMmM2MTE1Yjc2MmVmNmI4YS4zYjExYmEzNTFkMTMwZTVhLmQ0N2ZjZTdjMmQwMzA4NjIuN2NjMmE3Y2JmZGY5N2Y4YgpAQCAtNjIxNiwxMiArNjIxNiwxMiBAQAogICAgIGJiZGUwNDUyZjA3NTYzNDIuNjQyNDE0MjE3MWIyNDZmOC5iMzgyNjMxN2FhN2Q1OTZjLjNiNWZkNjQxMTU1ZjUwNTYKICAgICA0MzFmYmIwMGViYWY4YTk1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIzODAyMTAzODI3YzUxMGMuMDMxZDUwMDAwMDA2MDA1NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDJkMDMwODYyLjdjYzJhN2NiMDAwMDAwMDAKICAgICAyYzYxMTViNzYyZWY2YjhhLjNiMTFiYTM1MWQxMzBlNWEuZDQ3ZmNlN2MyZDAzMDg2Mi43Y2MyYTdjYmZkZjk3ZjhiCiAgICAgZjAzOTAwNTdhZDlhYWNiOS41ZmU1NjJmMzI2NjRmZjFhLmY2Y2RhYmQ3MzYyYjI1YzUuNDIyZmY4MjljZmQxOGIwZAogICAgIGJiZGUwNDUyZjA3NTYzNDIuNjQyNDE0MjE3MWIyNDZmOC5iMzgyNjMxN2FhN2Q1OTZjLjNiNWZkNjQxMTU1ZjUwNTYKICAgICA0MzFmYmIwMGViYWY4YTk1Ci1WUEFORE5fMTI4KG1lbSkKK1ZJTlNFUlRQU18weDM5XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDM2M2EyNjUxNmNjZWY0ZjQuZWI5YzFkMTRjNzBhY2NkMS4yNTk4NGNhYjE4MDhhMTIxLjY1ZTlmMmE3MjM4M2UxMDIKICAgICBmMDdlOTAxZmI0Yzc0YjlmLmRhYmY0ODA5Y2ZlODIyMTEuODAwZjg3N2QzOTcyY2FjMS42OTUwNTRmNjNmY2JmOTM0CkBAIC02MjMxLDExICs2MjMxLDExIEBACiAgIGFmdGVyCiAgICAgMzYzYTI2NTE2Y2NlZjRmNC5lYjljMWQxNGM3MGFjY2QxLjI1OTg0Y2FiMTgwOGExMjEuNjVlOWYyYTcyMzgzZTEwMgogICAgIGYwN2U5MDFmYjRjNzRiOWYuZGFiZjQ4MDljZmU4MjIxMS44MDBmODc3ZDM5NzJjYWMxLjY5NTA1NGY2M2ZjYmY5MzQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjU5MDQ4ODIwMDA4MjEyMC4wNGE5YTIwMTAwMDAwMDAyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMGY4NzdkMDAwMDAwMDAuMDAwMDAwMDAyMzgzZTEwMgogICAgIDI4YWQ1NWU3MGM3OGFmOGMuNjk2MmMwM2RlMWE4ODc1Ni43MTMwZjNhYTU4YjQ3ODE1LmQ2NGE4Mzc5Y2Y1MGM4MWIKICAgICBmODc1NDc4NjdiYTRmNzI4CiAKLVZQU0xMRFFfMHgwNV8xMjgocmVnKQorVlBVTlBDS0xEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICBkY2NmY2YwMTM5NjlhNjgwLjVmMzBhOGI4NTI0ODM0MjYuYzA3YjA3NTMyMmE0MGViMy5iZjc0MWNkZDhlYTM3NTIwCiAgICAgZGVhNDE1NTRhNTJjMTBkMC5jZDBiZWJiN2QxMjI5NmJiLjQ4Mjk0ZTRjMDQxNjc0NzIuMTVlYTM4MDdhZGQ3MzE1MgpAQCAtNjI0MywxMiArNjI0MywxMiBAQAogICAgIGFiZWVkMDM2ZmFkYTA4MDcuYmRmOTMyZjBlNDI2ZGY4ZC41NjczZDE5OTE5OTJjN2M0LjRlOWEzNWY0MTczYmQ2ZGEKICAgICBlNzZlMTA4ZjliODQzNjg4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkyYzdjNDRlOWEzNWY0MTcuM2JkNmRhMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41MTVkYzExNjE1ZWEzODA3LmQxNWI2OGQ3YWRkNzMxNTIKICAgICBkZWE0MTU1NGE1MmMxMGQwLmNkMGJlYmI3ZDEyMjk2YmIuNDgyOTRlNGMwNDE2NzQ3Mi4xNWVhMzgwN2FkZDczMTUyCiAgICAgNWEzZjE3ZWQ1ZDc4NzJjMy40ZTBhOWFkMGEyMTM5MDdhLjViYjg5Mzk1MjI4Y2YyM2UuNTE1ZGMxMTZkMTViNjhkNwogICAgIGFiZWVkMDM2ZmFkYTA4MDcuYmRmOTMyZjBlNDI2ZGY4ZC41NjczZDE5OTE5OTJjN2M0LjRlOWEzNWY0MTczYmQ2ZGEKICAgICBlNzZlMTA4ZjliODQzNjg4Ci1WUFNMTERRXzB4MDVfMTI4KG1lbSkKK1ZQVU5QQ0tMRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZmFhM2NjZDI3ODQxNDQwZC4yZmZiM2M5ZDFhZGQwZDQ1LmY4YTMyZTAxYjA2NzNmMjEuOTVhODA0YzM4NGIyMmRiMAogICAgIDYyMDVlN2E5Y2E3ZmJlOTQuNDFiMzU4OGQ1ODBkYmYyYy5kOWQ1MGFmMDI1ZTM2YzYxLjc1YTEyODgxMDA3YTYxYWQKQEAgLTYyNTgsMTEgKzYyNTgsMTEgQEAKICAgYWZ0ZXIKICAgICBmYWEzY2NkMjc4NDE0NDBkLjJmZmIzYzlkMWFkZDBkNDUuZjhhMzJlMDFiMDY3M2YyMS45NWE4MDRjMzg0YjIyZGIwCiAgICAgNjIwNWU3YTljYTdmYmU5NC40MWIzNTg4ZDU4MGRiZjJjLmQ5ZDUwYWYwMjVlMzZjNjEuNzVhMTI4ODEwMDdhNjFhZAotICAgIGZhNjJkYjAwYWU0ODVlNDkuM2Q2MjFlNzI1MWY2NTg2NS4zZTVjNDJhYTVjYTUyMjdhLjUwYWIzYTNlMjg3NjllNjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTVhODA0YzM3NWExMjg4MS44NGIyMmRiMDAwN2E2MWFkCiAgICAgYTA4NDI2YzQzZmFiZTE1YS43ZTU0OGNiOGExMjUxNDlmLjAxMDI1MjFhNzNiYTFjOTguODMxMjM1NjY5ODMwMjI4YwogICAgIDZhMjIxNDY1ZWQzNjI3YzUKIAotVlBTTExEUV8weDA1XzEyOChyZWcpCitWUFVOUENLTERRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDYxMjdkNmE3YzMxNGVhYzEuMmUzOTQ0ZGY5YWIxMDNmMS42MmQ1OWRjYmUyMjYzMTg0LjAwOTRiNzJiODYyYzE3ZTYKICAgICBjNDZjNzQ5OWI1NTVhNjJhLjgxNGJhZjNlZGI2ODdmM2EuNDMzMTRlMTdiMzgzZTljMS4xNWRkZWNjYmIwMGFjZTkwCkBAIC02MjcwLDEyICs2MjcwLDEyIEBACiAgICAgM2VlYTM5Mzk1ZjMwZmNmNS5lN2I5NjE3OTdjMTY3OTk1LjcwYTg3YzBiNmY4NjFjZjEuZjVjOGI2NjViYjMzNjNhYgogICAgIDc4MDI0NDM3ZDM5N2I5NzQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODYxY2YxZjVjOGI2NjViYi4zMzYzYWIwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFlYWI2ZGU1MTVkZGVjY2IuMGU1ZGZlYzRiMDBhY2U5MAogICAgIGM0NmM3NDk5YjU1NWE2MmEuODE0YmFmM2VkYjY4N2YzYS40MzMxNGUxN2IzODNlOWMxLjE1ZGRlY2NiYjAwYWNlOTAKICAgICBlZjNmZWNhNTYwODU5OGFjLjc2ODdlNWNlMWNkYjEzNjIuN2ZiMzk5MDlhZGNhNzkwMS4xZWFiNmRlNTBlNWRmZWM0CiAgICAgM2VlYTM5Mzk1ZjMwZmNmNS5lN2I5NjE3OTdjMTY3OTk1LjcwYTg3YzBiNmY4NjFjZjEuZjVjOGI2NjViYjMzNjNhYgogICAgIDc4MDI0NDM3ZDM5N2I5NzQKLVZQU0xMRFFfMHgwNV8xMjgobWVtKQorVlBVTlBDS0xEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICA4MTIzOTI0ODczOTViYzQ5LjBkYmE1N2JmNGVlMzBlYWUuYjJhZDlmMmQxNDI2NmRmZS43NDVkZjI4YjkyNDQxMDNjCiAgICAgZWRmODFjODJiNjNhMjc1Ny5iOGZiNDJhNWNhMjkwOTg2LmIxMmUxYmQ1MDIxNmFjY2EuZTUxY2Y3ZjNiNThmOGY5MApAQCAtNjI4NSwxMSArNjI4NSwxMSBAQAogICBhZnRlcgogICAgIDgxMjM5MjQ4NzM5NWJjNDkuMGRiYTU3YmY0ZWUzMGVhZS5iMmFkOWYyZDE0MjY2ZGZlLjc0NWRmMjhiOTI0NDEwM2MKICAgICBlZGY4MWM4MmI2M2EyNzU3LmI4ZmI0MmE1Y2EyOTA5ODYuYjEyZTFiZDUwMjE2YWNjYS5lNTFjZjdmM2I1OGY4ZjkwCi0gICAgOTg0ZDVlZDJiOTkxYjdjOS45YmY5Zjc1NjZlOGYyYTI3LmMxMDk1MjVkNjJmM2YyMjQuMjEzMTg3YjE3MWYzZDU5NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NDVkZjI4YmU1MWNmN2YzLjkyNDQxMDNjYjU4ZjhmOTAKICAgICA1ZmVkZDQyNTk4YTcyN2NjLjEyZmY3MDNkZDc5ZmFkM2QuYmUwYmJmYjE0ZmM4ZmIzOS44MmVhOWYzMDY0ZmQyMGZjCiAgICAgNjY5MTNhZGMyYTM4YWE2ZQogCi1WUFNMTERRXzB4MDVfMTI4KHJlZykKK1ZQVU5QQ0tMRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjc3NDU0MjE1ZTMwYjA5OC4xY2E2ZmI2NTZkODczNThiLjc5NWJhYmM4YTBlN2NlNzUuODVmZWRlYmRlNmExODMzNQogICAgIDIyZGRlOTZiOWM3MjZkMjUuYWM0MjRlODA1NzNkOWIzMy4yYjU3YTM2MjY2ZjNjODdiLmYwYWYyYjZkNDI4YTQ1NDMKQEAgLTYyOTcsMTIgKzYyOTcsMTIgQEAKICAgICAzNzc0NzViZWE5MDEwMDFhLmI1NTY2OGY0ZDQ1YzYxZWQuZTU2MmJiNzQ1Nzg0M2E5Zi4yNTdhNDA2OWJhYmY2OTQ3CiAgICAgYTcyZDAwOGUwZjIxNDQ5NQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NDNhOWYyNTdhNDA2OWJhLmJmNjk0NzAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGNlOTIzYWRmMGFmMmI2ZC43ZjkwZmU5MDQyOGE0NTQzCiAgICAgMjJkZGU5NmI5YzcyNmQyNS5hYzQyNGU4MDU3M2Q5YjMzLjJiNTdhMzYyNjZmM2M4N2IuZjBhZjJiNmQ0MjhhNDU0MwogICAgIGIzMTlmNjI2ODE4OTFmYzEuZWI4ZTQ5NjE2ZmQ2MTVmMC44NjQwNTU3OGM0NGVkOGZhLmRjZTkyM2FkN2Y5MGZlOTAKICAgICAzNzc0NzViZWE5MDEwMDFhLmI1NTY2OGY0ZDQ1YzYxZWQuZTU2MmJiNzQ1Nzg0M2E5Zi4yNTdhNDA2OWJhYmY2OTQ3CiAgICAgYTcyZDAwOGUwZjIxNDQ5NQotVlBTTExEUV8weDA1XzEyOChtZW0pCitWUFVOUENLTERRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDNlY2RkZTA2OTljNDQ5YTYuMDgzYTY0YTBhZjY3NGRkYS5lNjY2MjgyNTlmZGUzOTU3LmE0MDlkM2MzYmEyMjI5MTYKICAgICBjNjI3NTdiZjc0YjMzNWE1LjgzYjZiZjM2MmY0NjQxYWQuNWE4YTAzZTBlZTY1NWE1OS4xZTgwOThkMThhYjJlMjBhCkBAIC02MzEyLDExICs2MzEyLDExIEBACiAgIGFmdGVyCiAgICAgM2VjZGRlMDY5OWM0NDlhNi4wODNhNjRhMGFmNjc0ZGRhLmU2NjYyODI1OWZkZTM5NTcuYTQwOWQzYzNiYTIyMjkxNgogICAgIGM2Mjc1N2JmNzRiMzM1YTUuODNiNmJmMzYyZjQ2NDFhZC41YThhMDNlMGVlNjU1YTU5LjFlODA5OGQxOGFiMmUyMGEKLSAgICAxYjA3ZTVhNGJkZmJjM2JmLjA0MzY4MGVlYzYyYTE5NDAuZWQ4ZTc3MTFkZGZmODAyMC5iMTE1MDcwYjYyYzNhMTI4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE0MDlkM2MzMWU4MDk4ZDEuYmEyMjI5MTY4YWIyZTIwYQogICAgIDE5MzkwNmEwOGZhN2IwMWYuZTcwNGE0MzIwZmEwMTEzZi43YjNkMDBhNDg3Yjg2NmQ4LmI4MTIxYWRjZGZkZWExMWIKICAgICA4ZWM0Y2ZhZjljOTEyMDkwCiAKLVZQU1JMRFFfMHgwNV8xMjgocmVnKQorVlBBQ0tTU0RXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDkxNzcyMWYyMzU2NzU4MzIuOWM4ODM1YTEwN2MzYjhmMi44ODZkMjg3MGE3MzM2NTU1LmUwNjQxODg2MDk5YWM5YWMKICAgICAxYjc3MGMxMDQ3ZWQ4NWFmLjgwYzJlZTkyNDA1Yzk3NjQuNDNiZDA3MTMyOTZmNTAyZi5mOGNmM2RhMTdlYjM2NWM5CkBAIC02MzI0LDEyICs2MzI0LDEyIEBACiAgICAgMzg4ZDllOGQ0NTM2YjJlNC5kYjIzZWZmNTY3MzJjOGQzLjc3NDFjNzM4NWQxNGRlZGQuYjFhMTlhMzZiMmI4Mzc4YwogICAgIDBhYTBjYzg4YWFiY2U1OGIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDc3NDFjNy4zODVkMTRkZWRkYjFhMTlhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmZmY3ZmZmODAwMDgwMDAuN2ZmZjdmZmY4MDAwN2ZmZgogICAgIDFiNzcwYzEwNDdlZDg1YWYuODBjMmVlOTI0MDVjOTc2NC40M2JkMDcxMzI5NmY1MDJmLmY4Y2YzZGExN2ViMzY1YzkKICAgICA4YTEwOGM3NTZlYWVlNWIwLmExYjFhZTVmNTc3ZDA4YTAuNzQ0MDNlODczMmUxMGY3OC45ZjRhZTllMzAyMGVmNTVhCiAgICAgMzg4ZDllOGQ0NTM2YjJlNC5kYjIzZWZmNTY3MzJjOGQzLjc3NDFjNzM4NWQxNGRlZGQuYjFhMTlhMzZiMmI4Mzc4YwogICAgIDBhYTBjYzg4YWFiY2U1OGIKLVZQU1JMRFFfMHgwNV8xMjgobWVtKQorVlBBQ0tTU0RXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDg2MTJmOWM0MDQyNmJiODIuODMzYzNkYzQ2ODEyMjlmNC4wYWUyMmYzZThkODg5MzI4LmE4MGVhMDkyNDc5NWY4MGEKICAgICAwMGM0OWZkNmRmMDM3NzlkLmM1Njc2NTg2NzRjZDg1OGYuMDliYmU5MjdlNDhhMjVjYy42M2YxYzQwMThiZWY5YmFhCkBAIC02MzM5LDExICs2MzM5LDExIEBACiAgIGFmdGVyCiAgICAgODYxMmY5YzQwNDI2YmI4Mi44MzNjM2RjNDY4MTIyOWY0LjBhZTIyZjNlOGQ4ODkzMjguYTgwZWEwOTI0Nzk1ZjgwYQogICAgIDAwYzQ5ZmQ2ZGYwMzc3OWQuYzU2NzY1ODY3NGNkODU4Zi4wOWJiZTkyN2U0OGEyNWNjLjYzZjFjNDAxOGJlZjliYWEKLSAgICA1NjgzMzlhYTU1NWVkMzBhLjViNWIxMjQwMDRmMzA0NWYuYjY3OTk5OWQ4OTQ0MzllYi4wNDM3MmZmMWM2YWUwMTY5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmZmY4MDAwODAwMDdmZmYuN2ZmZjgwMDA3ZmZmODAwMAogICAgIDYzMTk0MzJjODI0MzhjZjMuYTI2NDQwNWNiNTExZTAxMS5lY2VhYmM4YTk3YzM4Y2IwLmU3MmNkZGNmOTM1ZTY2ZjUKICAgICA2ODFjY2IwNThlOGMwOGY4CiAKLVZQU1JMRFFfMHgwNV8xMjgocmVnKQorVlBBQ0tTU0RXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGUzNTNmNDAxNTRjMzIxMWUuMDM1MjM5NDg4M2JmNWQ4NC5mNGNlZWM0ODIyYjI1NTUwLjg3ZDhjZGRjMmExMmRhNDgKICAgICBiMzFjNTQyZTgxOTBlZTE0LjExZmM5OGVhNzNkZDAzZWEuYWVlNDExNmVlODYyYTFjOS42MjExNDg3ZTVmM2RkZWRlCkBAIC02MzUxLDEyICs2MzUxLDEyIEBACiAgICAgYzc5OGE5Y2E3ZDE5OTIyMC5lYmNmN2U3MTkyMzBiZWU0LmNiNDhiNjFkZWQyMWE5MTcuNGQ4ZjZjNjExZTU5ZmJiNgogICAgIDEzNmMwZTdiZGY2MThjNTAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMGNiNDhiNi4xZGVkMjFhOTE3NGQ4ZjZjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDA4MDAwN2ZmZjdmZmYuODAwMDgwMDA3ZmZmN2ZmZgogICAgIGIzMWM1NDJlODE5MGVlMTQuMTFmYzk4ZWE3M2RkMDNlYS5hZWU0MTE2ZWU4NjJhMWM5LjYyMTE0ODdlNWYzZGRlZGUKICAgICAzNmM1ZTdmN2IwN2VhYTg2LjZiZTJkYmZmNmZhYTNhNTEuMmRmNGFiM2NhMmFlZmUyNy41YjVmYTk1YjUyNTE1NTlmCiAgICAgYzc5OGE5Y2E3ZDE5OTIyMC5lYmNmN2U3MTkyMzBiZWU0LmNiNDhiNjFkZWQyMWE5MTcuNGQ4ZjZjNjExZTU5ZmJiNgogICAgIDEzNmMwZTdiZGY2MThjNTAKLVZQU1JMRFFfMHgwNV8xMjgobWVtKQorVlBBQ0tTU0RXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDhiYzQwYTk1YjI3NmMzOTkuYzFlMjk3MTI4NWVkZTI4Yy42ZjkwZmQyZWY4N2Q0YmQwLmU1MmQyZjdkNjQ0N2RlNDUKICAgICA4ZjYxZGM5Y2IyYTM1ZGJjLjgyZWZhYzNiNjQ4N2Q2NzkuZDJmMWQ0MjBiZjlkOWM0MS5kN2VmMTFjOGE0YWRkODVjCkBAIC02MzY2LDExICs2MzY2LDExIEBACiAgIGFmdGVyCiAgICAgOGJjNDBhOTViMjc2YzM5OS5jMWUyOTcxMjg1ZWRlMjhjLjZmOTBmZDJlZjg3ZDRiZDAuZTUyZDJmN2Q2NDQ3ZGU0NQogICAgIDhmNjFkYzljYjJhMzVkYmMuODJlZmFjM2I2NDg3ZDY3OS5kMmYxZDQyMGJmOWQ5YzQxLmQ3ZWYxMWM4YTRhZGQ4NWMKLSAgICBmZDExMDA3YWZjZjUxNmU2LjY1MGFlNGIxYjQ3MmE5OTEuZWZiZTgwMzUwMDliNmU2Mi5mZGRhNTg2YTQ4ZGVkNDA5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmZmY4MDAwODAwMDdmZmYuODAwMDgwMDA4MDAwODAwMAogICAgIGFmOWVmMzFjYWI3NmE5NDMuYzU4MTNiZTExNDNiOTk4MS5hM2MzN2M1OGQ5ODM3YzVmLmIzM2EwMGNmZWM2NjBlZjcKICAgICA1NTVhMDU2NDJkZDJjMWQzCiAKLVZQU1JMRFFfMHgwNV8xMjgocmVnKQorVlBBQ0tTU0RXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDNmODc2NDkzYTdhZDJiNDkuODJkNTJmNmZkYzM1ZDNmZS4wMDllYWUzNTFkNmRkZmY0LmNiY2M0NDc1NjY2MTgzNjYKICAgICBjZDBlMThjOWY1ODQ4NTA0LjUzODIzMjVkYWEzYjUwNDQuNzBhZjM3MWE2ZTk0YmE5Ny40MWE0NTQ3OGMyNDIzZmExCkBAIC02Mzc4LDEyICs2Mzc4LDEyIEBACiAgICAgNDU1NTZmZmM3ZTUyMDBmYi41YTZkN2JiZjhmNTEzMjFmLjYzZDg4MTQ5NTJmMzFhMWMuOGJmNDNlZTA1ODNiYzY2NAogICAgIDE2MDQwZjFlY2E2YTA4NDUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDYzZDg4MS40OTUyZjMxYTFjOGJmNDNlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmZmY3ZmZmODAwMDdmZmYuN2ZmZjdmZmY3ZmZmODAwMAogICAgIGNkMGUxOGM5ZjU4NDg1MDQuNTM4MjMyNWRhYTNiNTA0NC43MGFmMzcxYTZlOTRiYTk3LjQxYTQ1NDc4YzI0MjNmYTEKICAgICA1YjM5MWQ3M2IzZTEwZWIxLmZjNzE3N2Q0MzI5NmRjNDAuNzNmZWQ0ZmRhMDNkNjQxNS5lMzE4Mjk0ZDA5MzE2YzNjCiAgICAgNDU1NTZmZmM3ZTUyMDBmYi41YTZkN2JiZjhmNTEzMjFmLjYzZDg4MTQ5NTJmMzFhMWMuOGJmNDNlZTA1ODNiYzY2NAogICAgIDE2MDQwZjFlY2E2YTA4NDUKLVZQU1JMRFFfMHgwNV8xMjgobWVtKQorVlBBQ0tTU0RXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDYxMTQxOGYxN2NjZGVmMGEuZTdhZDBiY2ZmMjYzOTk4Zi40YTQ0YjgwYWRlNzgwZjBjLjllODkzODY5MWQ0MjE4NTUKICAgICA0NmYwZDU0NjhhNmQzNmUwLjlkOGZlYjVhYWE5ZjEyMTkuYTZjMGFjYTEzYTE4MmYzNC43ZTVjZjdjYjlmYjc5OTZlCkBAIC02MzkzLDExICs2MzkzLDExIEBACiAgIGFmdGVyCiAgICAgNjExNDE4ZjE3Y2NkZWYwYS5lN2FkMGJjZmYyNjM5OThmLjRhNDRiODBhZGU3ODBmMGMuOWU4OTM4NjkxZDQyMTg1NQogICAgIDQ2ZjBkNTQ2OGE2ZDM2ZTAuOWQ4ZmViNWFhYTlmMTIxOS5hNmMwYWNhMTNhMTgyZjM0LjdlNWNmN2NiOWZiNzk5NmUKLSAgICBhMjYzYzMwYTBlNTg5YmYyLmMzNDUwZDA4NDI5MmFhNDQuNGJhZWQyNzBiZjNkNGRjMy42MDlmYjhkYTc0ZGRkYjEzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmZmY4MDAwODAwMDdmZmYuODAwMDdmZmY3ZmZmODAwMAogICAgIDUxM2I1ZDI4Mjc5OWQ4NmQuYjUxZDZkNDU1N2M4OWJiZC4xNWRhYTY2MzhhZjEyNmU0LmExOWM3YTAyMzc0MDE4ZjAKICAgICA5YmEwMzZhZjg0NmQ4Y2IwCiAKLVZQU1VCVVNCXzEyOChyZWcpCitWUEFERFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYWJmN2U5NGRmOGVmNzRmZi4yZjQyMWY4Y2VmM2RhOTdkLmNmNjEwNTdkODRjZTIyMmYuZTExMGE1NjZiNzQyNzZjNAogICAgIDJkZWQ5MDQ5MmY1MjBjOGIuMTg0NTg1MjE4MjRmY2M0ZC42YzVlZDMxZDY2MmY3YjQ3Ljg5MWI0YTY1NjEzYmY5OGUKQEAgLTY0MDUsMTIgKzY0MDUsMTIgQEAKICAgICBmOGU1YTcwNjUzZWQzYzA0LjdjNmUyZTkzN2JlZGYzZGYuYTRiMmZkNDBiNjM0OTExOC5lMGU0NzYwODlkNTc4NjkzCiAgICAgNDczOWY1ODQ2ODkxMDkyNQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDJmLjAwMDAwMDVkMDAwMDczMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTZiZGE0YWNmZWE3NWNmNy43M2U0NWJiMjA2MjQ2M2ZkCiAgICAgMmRlZDkwNDkyZjUyMGM4Yi4xODQ1ODUyMTgyNGZjYzRkLjZjNWVkMzFkNjYyZjdiNDcuODkxYjRhNjU2MTNiZjk4ZQogICAgIDdlY2UyNjBkYzQyMzkwZmUuZTgxMDBjZDVmY2RiZmIwYS5lYTVmZDE4Zjk4NzhlMWIwLmVhYzkxMTRkYTRlOTZhNmYKICAgICBmOGU1YTcwNjUzZWQzYzA0LjdjNmUyZTkzN2JlZGYzZGYuYTRiMmZkNDBiNjM0OTExOC5lMGU0NzYwODlkNTc4NjkzCiAgICAgNDczOWY1ODQ2ODkxMDkyNQotVlBTVUJVU0JfMTI4KG1lbSkKK1ZQQUREV18xMjgobWVtKQogICBiZWZvcmUKICAgICBmYjk0MGJhYzIwYTNhZjUyLmY4ODAxMGExNzkzYzRiNGEuYWUyZDY5NDgxODkyNzBmOS5mNWEyNTM5ZDVlZWZjNzI4CiAgICAgZDhjMTMyNmNlMTlhMzM0NS5kYWU5NWI0OWQxOWRmYTdjLjViMTczOGRlZjFkNjJkODQuM2I3YWNkMTAyOTM2YmY4ZgpAQCAtNjQyMCwxMSArNjQyMCwxMSBAQAogICBhZnRlcgogICAgIGZiOTQwYmFjMjBhM2FmNTIuZjg4MDEwYTE3OTNjNGI0YS5hZTJkNjk0ODE4OTI3MGY5LmY1YTI1MzlkNWVlZmM3MjgKICAgICBkOGMxMzI2Y2UxOWEzMzQ1LmRhZTk1YjQ5ZDE5ZGZhN2MuNWIxNzM4ZGVmMWQ2MmQ4NC4zYjdhY2QxMDI5MzZiZjhmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDk2ZDk0NDAwMDAuMDAwMDdhMDAwMDAwMDA2NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wOTQ0YTIyNjBhNjg5ZTdkLjMxMWMyMGFkODgyNTg2YjcKICAgICA3ZGMwYTk2M2YwNjVjNzMwLmI0NTg4YzZmODljMjI3NTIuOTVhMDgzNjFjNjY3NWE5Yi4xMjE1MjJlZDllOTVlMzBjCiAgICAgNWM3MGY0MmU3ZmM1ODg3YgogCi1WUFNVQlVTQl8xMjgocmVnKQorVlBBRERXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDA5ZTRkYjM2ZjRiMWRlZjAuZmQyYWVmNzM3NjUxNTA3Zi42NGY2NjljNjIxOWYxZDRlLmRiZDZmNzI1ZjljZTQxN2YKICAgICA3N2JjZDQ3MTlhZTUyMjE2LjE1OTczOGNjNzU1MmE3NDUuNjY5MjFhZGE1YmJkYTNlNi4wYzY4ZWY3Y2Q4MDI1YTg0CkBAIC02NDMyLDEyICs2NDMyLDEyIEBACiAgICAgMDFjY2U5MzBlNzUxNjQyNy44MmE1YzAwNDUwYmZiMWU0LmQwZjhlNGVhMjdlZDRkOTkuOWZjZjVjOGYwOTA3MGNhMAogICAgIGI5M2NjOTI0OTJlZTFmMGYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAzNDAwNTY0ZC4wMDAwOTMwMGNmMDA0ZTAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdkMGNiM2YxMzA2Njk4YWIuMTA4OWQ3Y2Q1NzEzYmE1YQogICAgIDc3YmNkNDcxOWFlNTIyMTYuMTU5NzM4Y2M3NTUyYTc0NS42NjkyMWFkYTViYmRhM2U2LjBjNjhlZjdjZDgwMjVhODQKICAgICAwMDQ1ZGE0YjBkZWI5MDlhLmEzZDFmZTU4MDk3Mjg5YWQuMTY3YTk5MTdkNGE5ZjRjNS4wNDIxZTg1MTdmMTE1ZmQ2CiAgICAgMDFjY2U5MzBlNzUxNjQyNy44MmE1YzAwNDUwYmZiMWU0LmQwZjhlNGVhMjdlZDRkOTkuOWZjZjVjOGYwOTA3MGNhMAogICAgIGI5M2NjOTI0OTJlZTFmMGYKLVZQU1VCVVNCXzEyOChtZW0pCitWUEFERFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMmQzNWFhZmIzN2Q0NTI0ZS5kNzliZmQ4ZGM3YTJkOTZhLjhlZGVmN2JkNjM0NWRjMTUuZjA1OWY2YmRmMTE4ZWEwYgogICAgIGQ5ODY3YjAwMTNjNTYyOGEuZGNmZjEyY2M0NzZiMmMwZi5hMzRhMjA2ZDYwMGVjNjZlLmQyZTljY2ZkY2RiMzA3Y2EKQEAgLTY0NDcsMTEgKzY0NDcsMTEgQEAKICAgYWZ0ZXIKICAgICAyZDM1YWFmYjM3ZDQ1MjRlLmQ3OWJmZDhkYzdhMmQ5NmEuOGVkZWY3YmQ2MzQ1ZGMxNS5mMDU5ZjZiZGYxMThlYTBiCiAgICAgZDk4NjdiMDAxM2M1NjI4YS5kY2ZmMTJjYzQ3NmIyYzBmLmEzNGEyMDZkNjAwZWM2NmUuZDJlOWNjZmRjZGIzMDdjYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNTAwMDAwMDAwMDAwMDU5LjAwOTAwMDQwMDA5YjAwYmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzIyODE4MmFjMzUzYTI4My5jMzQyYzNiYWJlY2JmMWQ1CiAgICAgNDU2MGRlNDVlMmY0MDdhOC5lN2I1MzFhNDk4OTI1YjJkLjU3ZTczYTY3ODc5ZmM3NDIuNGJjNmIwNzUyYzZlYWZkOQogICAgIDliYWFiNzg1ZThhNmIzODIKIAotVlBTVUJVU0JfMTI4KHJlZykKK1ZQQUREV18xMjgocmVnKQogICBiZWZvcmUKICAgICAxZGVlNzFiMjI2N2UyNzI3LmJlODA2NzVjMGQ0YzE1ZTEuYTQ5ZjMyMTVhMTA5YWZmZi5hZWIwMjI4N2U4N2Q1NTE2CiAgICAgMmRkY2RiNjg4Mjg1NDY3My5kZTI5ZDE1MmRmZGRmMGM4LjAxNGYyNDE5YmEyN2QxZTIuN2ZkYmVkNTBhM2QxOTFjMApAQCAtNjQ1OSwxMiArNjQ1OSwxMiBAQAogICAgIDY2ZTlhYjFmMDY0OTc4YjMuODI0MTM2ODdlYWUwZmM0YS4wYzJjY2Q4YThmODk2ZThjLmZiODYxODhiOTYwNDA3NDkKICAgICA1ZjlmNzFkNDA1ZmNiODdmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMjMwMDAwMmIwMDYzNTYuMDA1NWQ1MDAwZGNkOGE3NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41YjVlMjgzNTNiYTBjZjY0LjI1MGUwMmZkNzg3NWNiMmQKICAgICAyZGRjZGI2ODgyODU0NjczLmRlMjlkMTUyZGZkZGYwYzguMDE0ZjI0MTliYTI3ZDFlMi43ZmRiZWQ1MGEzZDE5MWMwCiAgICAgMjZjMWVmMTM5OTQ0NGQxMy44MDI1OTgxMTc1YjY1NDg2LjVhMGYwNDFjODE3OWZkODIuYTUzMzE1YWRkNGE0Mzk2ZAogICAgIDY2ZTlhYjFmMDY0OTc4YjMuODI0MTM2ODdlYWUwZmM0YS4wYzJjY2Q4YThmODk2ZThjLmZiODYxODhiOTYwNDA3NDkKICAgICA1ZjlmNzFkNDA1ZmNiODdmCi1WUFNVQlVTQl8xMjgobWVtKQorVlBBRERXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGFiNDk5Yzc1M2U5ODA4M2MuNDdhMDBhZjg2NjFmMDJmZS5iZTQ5Mjk5ZjVhNjlhNTNlLjcxZjI3YmNmODJlNTYxYWMKICAgICBiZDUxMTY1YTVjZTViMmFjLjI3MzEwOTBhNTU1MzI4YTEuMTIwOGVjNDRlMjVjMGE4Zi5lNmFjMGE1N2Y2MTkxMjhlCkBAIC02NDc0LDExICs2NDc0LDExIEBACiAgIGFmdGVyCiAgICAgYWI0OTljNzUzZTk4MDgzYy40N2EwMGFmODY2MWYwMmZlLmJlNDkyOTlmNWE2OWE1M2UuNzFmMjdiY2Y4MmU1NjFhYwogICAgIGJkNTExNjVhNWNlNWIyYWMuMjczMTA5MGE1NTUzMjhhMS4xMjA4ZWM0NGUyNWMwYThmLmU2YWMwYTU3ZjYxOTEyOGUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGMzMDA4ODAwMDA1MS43NTAwMDAwMDc0MDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwNTExNWUzM2NjNWFmY2QuNTg5ZTg2MjY3OGZlNzQzYQogICAgIDllYWJlNGEyYjljMDA4NTIuNTAxNWQzOGE0ZDAyMzg5ZC42ZGRmZDJlYWE5YjFmYmY2LjcwMzBiY2UxY2UzNjlkNDUKICAgICAzZDkxZDdiYTZiMzdlZjczCiAKLVZQU1VCU0JfMTI4KHJlZykKK1ZQU1JMV18weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDhhMTdjMzg3Zjk0MGVlMTMuMjc5NTMwZGIzMDY1MmFlMS41MmZmOTdjZjhlOTY5OTRlLjJlOGZlZWMzMWYyYmZmNjQKICAgICBiMzBlN2NiMjEzZGNkOGQxLmU0MGNiYTA5ZmNlYzk3ZDMuYzFmNGVhZmVjZWI3ODYwNy43NTI2YzlkOTFkNDBiMGRmCkBAIC02NDg2LDEyICs2NDg2LDEyIEBACiAgICAgMDg3ZjQ3ZDc1Y2ZlNTg1NC42ZWQ1N2FmMTA1Yzk0MjhmLjVhMmYyZWM2YmFkMWYzNDAuMDkzY2IyNzAyMDY4MDdhYgogICAgIDBkNTJiNmM4NWM5MzI1NTQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODBjNWJjMzgxNGU2OTNjNy42Y2VhMTc4MGZkZDhhOTM0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyZDEwMTc2MDVkNjA3OWEuMDA0OTA1OTMwMTAzMDAzZAogICAgIGIzMGU3Y2IyMTNkY2Q4ZDEuZTQwY2JhMDlmY2VjOTdkMy5jMWY0ZWFmZWNlYjc4NjA3Ljc1MjZjOWQ5MWQ0MGIwZGYKICAgICAxNGMyZmZhOTU1OTdlNzU4LmIyZGVmZjE3Mzk1ZTBiNTQuZmE0MGM5ODJhOWYxM2I3NC4xZjcxZTExOWJmZmJjOTkzCiAgICAgMDg3ZjQ3ZDc1Y2ZlNTg1NC42ZWQ1N2FmMTA1Yzk0MjhmLjVhMmYyZWM2YmFkMWYzNDAuMDkzY2IyNzAyMDY4MDdhYgogICAgIDBkNTJiNmM4NWM5MzI1NTQKLVZQU1VCU0JfMTI4KG1lbSkKK1ZQU1JMV18weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDA4ODE2YjBmOTA4OWUxYjkuZWQ5MDRmYThjMzljNjY3Mi5mMmJlYTc4Mzc5MzhmOGIwLjNiMGMxNzM4OWVlMmViMTgKICAgICBkNjkzNGMyZmQ3NTVmNTA4LjFlNDIxNjg4MjdmZTRlNWUuMWI2NTAyYjliM2I4ZThlNS5mYTI0N2Y0M2YwYjA1ZmE4CkBAIC02NTAxLDExICs2NTAxLDExIEBACiAgIGFmdGVyCiAgICAgMDg4MTZiMGY5MDg5ZTFiOS5lZDkwNGZhOGMzOWM2NjcyLmYyYmVhNzgzNzkzOGY4YjAuM2IwYzE3Mzg5ZWUyZWIxOAogICAgIGQ2OTM0YzJmZDc1NWY1MDguMWU0MjE2ODgyN2ZlNGU1ZS4xYjY1MDJiOWIzYjhlOGU1LmZhMjQ3ZjQzZjBiMDVmYTgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjk3ZjViMzY4MDgwZjAzNS5iZjE4NjgwYjUyY2U3NDkwCisgICAgNTM1NWQ1MTY0ZTA0MWQ2YS5mN2UxOTVlMzIzYWY0Y2MzLmM1OTYwNzdmY2Y1NGNmNTcuZjRjNDYyNTM0Y2M4OGI5YgogICAgIDViOTM4MmFmMTBhMTE3MGQuZDRiOWNhMjU1NDNiOWM0ZS5jYzFjMzNjMmU4MTg2ODM1LjgzMzZiZGQ1NGZiNWFhOWQKICAgICAwNGM2OGIzMzk1MDNmOTVjCiAKLVZQU1VCU0JfMTI4KHJlZykKK1ZQU1JMV18weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGQzYzJjOGRhYjkzZmI0ODEuY2IxOWNmZTYzYTM4OWQxZC4xMDE2YWZiYjU1MmU3OWFiLjBjYzUwMTZjMWExMDcxYTkKICAgICA0ZDc1NzAzNzU3ZjQxNmJiLjdkYjMzOWE3ZTdkNjZjYzYuMDk0NDQzMGZjMzE1MjE4NS42MTViZWQ2YTgyNDlhNGUwCkBAIC02NTEzLDEyICs2NTEzLDEyIEBACiAgICAgYWQyZWYyYmY3M2ZhYzMxOS4xYTUyNTE3NzNiNTRkNDkwLjllNDI2MGE1NTRlZGJjNjIuYmE4MTEwMTQ2MmFjN2E0NAogICAgIDc2YTkzZjk3MTNlZTk1Y2IKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmIwMmUzNmE4MDI4NjU4MC43ZjdmZGQ1NjgwN2Y4MDljCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA0ZjIwMzA1MDJhNzA1ZTMuMDVkNDAwODAwMzE1MDNkMgogICAgIDRkNzU3MDM3NTdmNDE2YmIuN2RiMzM5YTdlN2Q2NmNjNi4wOTQ0NDMwZmMzMTUyMTg1LjYxNWJlZDZhODI0OWE0ZTAKICAgICBjYzJhN2ZiNDBjYWU1ZGI0LjRlMmQzYmRlMzM4NjQwMzMuMWE4ZTdmOGYzOTdiY2Q4OS5hN2FiNzNhOTNiY2ZiZTA1CiAgICAgYWQyZWYyYmY3M2ZhYzMxOS4xYTUyNTE3NzNiNTRkNDkwLjllNDI2MGE1NTRlZGJjNjIuYmE4MTEwMTQ2MmFjN2E0NAogICAgIDc2YTkzZjk3MTNlZTk1Y2IKLVZQU1VCU0JfMTI4KG1lbSkKK1ZQU1JMV18weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGI3ZWY3YzFkNjhhMGNiYzQuNGNjZGM0YzMyOTYzODQ5NS5iZGVmZjg1ZjFiNGNlNTBhLmYzYWFlM2JmYWZmNjI4YmQKICAgICA1OTFlNDM5NDgwY2ZkODViLjA1NTNmMTJjYzk3NWRlZDUuMTJkMGFhODBlZTdiMmZjZC43MzEzMDM0OGU2MjI0ZTQ1CkBAIC02NTI4LDExICs2NTI4LDExIEBACiAgIGFmdGVyCiAgICAgYjdlZjdjMWQ2OGEwY2JjNC40Y2NkYzRjMzI5NjM4NDk1LmJkZWZmODVmMWI0Y2U1MGEuZjNhYWUzYmZhZmY2MjhiZAogICAgIDU5MWU0Mzk0ODBjZmQ4NWIuMDU1M2YxMmNjOTc1ZGVkNS4xMmQwYWE4MGVlN2IyZmNkLjczMTMwMzQ4ZTYyMjRlNDUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTVlMWIyODBkMzJmNGFjMy43ZjY5MjA3ZjM3MmMyNjdmCisgICAgMzgwMzEwZTg3NDg2NzdiZS4zNDBjNzU2NWYwYmQwYjg0LmY3YzFlNWM4ZDBlZDZkMDQuN2NjOWJjYWM5NmZlNmFhOAogICAgIDMwNmI2MDAzNjJkMTY1MTYuMzU0NDRjZGQzOWM2NDc0Zi40NzhlMjQyMWRlYWM1ZGRjLjY4MTcwYTU3NWIxNWI3OGYKICAgICA5NTRiZWFiNWQwZjM3MmE4CiAKLVZQU1VCU0JfMTI4KHJlZykKK1ZQU1JMV18weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDVkYWY1NzMyOTEyNWQ3OWYuMWQyMGFlZDI2NmJkNWU5Mi42NDQ2NzNmZDQxMWRkMGUxLmRlMDNlMzc5MzRjNmI5ODEKICAgICAxZTkwNGQzYTNiMzYyMjIwLmRiZWY3NjQxOWI1NTFlNWMuMWQ2MGU1MzJhMzRjZTBlOC45OGViOWZiYmVkNDczZDFlCkBAIC02NTQwLDEyICs2NTQwLDEyIEBACiAgICAgZjZmOWM1OWNiODI1NTg2ZS4zOTBhNjViMDBhYmFlMThiLjlkMDc5YThjZTc2ODg4ZmYuZTQ0OGZhYWRmOWFhYjFmMgogICAgIDJmNTQ5MzM1ODRhNjE4ODEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2Y1OTRiN2ZiY2U0NThlOS5iNGEzYTUwZWY0N2Y3ZjJjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA0ZTgwNGQ0MDczYjA0NDcuMDcyMjA3ZDUwN2NkMDU4ZgogICAgIDFlOTA0ZDNhM2IzNjIyMjAuZGJlZjc2NDE5YjU1MWU1Yy4xZDYwZTUzMmEzNGNlMGU4Ljk4ZWI5ZmJiZWQ0NzNkMWUKICAgICAzMjNiYzgzOTY5YjI4ZWQ2LjQ1YTMzNDNkMWVhNTYwYTAuYmNkYzllZThmY2UyYjQwZC41MTEzZDNkMzI1MzlhN2UwCiAgICAgZjZmOWM1OWNiODI1NTg2ZS4zOTBhNjViMDBhYmFlMThiLjlkMDc5YThjZTc2ODg4ZmYuZTQ0OGZhYWRmOWFhYjFmMgogICAgIDJmNTQ5MzM1ODRhNjE4ODEKLVZQU1VCU0JfMTI4KG1lbSkKK1ZQU1JMV18weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDBkMDMxNzU3ZTMzNzk3YjkuYzcxOTNlY2RjMzFjYmM5My45MmVlODQ4ODdiOWY1ZDQ5LjFiMmNkNjg4MDA2Yzk3NjgKICAgICA1OTIzMDRmZjMxNmJlYmM1LmZmZTYzMTNhMjcyM2Y1ZjIuMmIxZDBjYjA4ZTYwOGYwNS45NDk5NGQ0YWU0NzkxZWY0CkBAIC02NTU1LDExICs2NTU1LDExIEBACiAgIGFmdGVyCiAgICAgMGQwMzE3NTdlMzM3OTdiOS5jNzE5M2VjZGMzMWNiYzkzLjkyZWU4NDg4N2I5ZjVkNDkuMWIyY2Q2ODgwMDZjOTc2OAogICAgIDU5MjMwNGZmMzE2YmViYzUuZmZlNjMxM2EyNzIzZjVmMi4yYjFkMGNiMDhlNjA4ZjA1Ljk0OTk0ZDRhZTQ3OTFlZjQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2YyZjdmMjg4MDdmODBiYy44MDgwNzc3ZmU0MGQ3ZjhjCisgICAgZjE3ZmQ0MWE4YjRlZDBkMS5mYmFiOTk0ZTdmYzU0MTM2LmUyNjE3YzE0NWYwYTM0ZWMuNjM5OWZiM2MyZjFjNTk1MAogICAgIGIwZTIwNTkyMGNlYjAyMGIuMTdiNjczNzU2ODhlZGEwYy45Mjg3NGRhMDA5YTgwODJhLmU0NzdkY2NjN2NkZjg0MjgKICAgICA3MjgwZWM2NTY3NTFkYTI3CiAKLVZQU0xMRF8weDA1XzEyOChyZWcpCitWUFNMTFdfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICA2YjAwMjg3MzhkZmI5OGZhLjcxMTkxMzU1ZDE0ZTNkOWQuYjA1MWI5MWI3ZDBhZmMyMC4xNjVhZmQ0MGE4NDdjN2VhCiAgICAgMmE0MzhiNjI4OTZiZmE0ZC4xMmYwNzg0ZGY1ODMzY2IzLjIwYzk2OWFjNWJjNmU0MWQuNGNhODA3ZTA1OWYxMmM1OQpAQCAtNjU2NywxMiArNjU2NywxMiBAQAogICAgIDY5NDJiNjkzNzZjYjk4MjEuNjBhZTNjOTFjYzk1NzgxZS5mODdmZjQzZmRmMmJmNjg0LjNhZTExOWQwNWY5Y2RiZjIKICAgICBhYTY0MTlmOWVkYjQ5Yzc0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBmZmU4N2UwZTU3ZWQwODAuNWMyMzNhMDBmMzliN2U0MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZmUwODdlMGU1NjBkMDgwLjVjMjAzYTAwZjM4MDdlNDAKICAgICAyYTQzOGI2Mjg5NmJmYTRkLjEyZjA3ODRkZjU4MzNjYjMuMjBjOTY5YWM1YmM2ZTQxZC40Y2E4MDdlMDU5ZjEyYzU5CiAgICAgMGE5NTExOWVmODJjM2JjYi42ZDMzYjI2ODk1OTdiYzdhLmM0Njk3ZTk0OWQ0ZGNmYjAuMGUzY2U3NmMzOGI0ZjRhMgogICAgIDY5NDJiNjkzNzZjYjk4MjEuNjBhZTNjOTFjYzk1NzgxZS5mODdmZjQzZmRmMmJmNjg0LjNhZTExOWQwNWY5Y2RiZjIKICAgICBhYTY0MTlmOWVkYjQ5Yzc0Ci1WUFNMTERfMHgwNV8xMjgobWVtKQorVlBTTExXXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgM2M5MTY0ZDFmYjA4ZjQ1NS5hMTk1NzdhZTlkZDM0ZGZhLmM1MmQ5MmI0YjY4OTJkY2EuMTg1NmM3MTliZWVkOTg0NgogICAgIGNhMzQ3NTQ2YThhNDlmYzEuMTBkYjRmNTkwY2QwOTUwMy43OTdiMzBiZDcwODA5N2FiLjgwMzlmNDhmZDYxZWVmYTIKQEAgLTY1ODYsNyArNjU4Niw3IEBACiAgICAgNGUwYmRhYjM0OGU2ZGRlOC5mZjcwMzQxMzJiZGJkMjUzLjNmYjczNTMxYzJhNTdhYmIuOTg1NjQ5ZmIxZWZlYWZkNgogICAgIDAwMjg2OWM5ODdjNThmMDYKIAotVlBTTExEXzB4MDVfMTI4KHJlZykKK1ZQU0xMV18weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDIwMzdkM2UzOTkyYzE1ODAuZmJkODI1ODQ3NWE0ZThmYi4zNzU3MzlmYTE1MDAzZWYzLjA4M2Q5NDc1OTNlYjZhNDEKICAgICA1NGNlODJiNGVlYmU3ZGYwLjE1NGEyN2ExYWZkYTM2NGEuMTY2MTQ2MjJiNTRhMmQ3Mi45MWMzMmI0ZWEzNjNmZmFjCkBAIC02NTk0LDEyICs2NTk0LDEyIEBACiAgICAgNjdjODlmMmJkNzkzZTI2MC4wMTUwM2Q2ZmJjZGU4OTQ1LjM0MGQ2NWU1ODk4MDg3YzAuNGVmZWYzNzNmMTFhMDdlMQogICAgIDNiNGMxYTk3Njc3MWYyMDIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODFhY2JjYTAzMDEwZjgwMC5kZmRlNmU2MDIzNDBmYzIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgxYTBiY2EwMzAwMGY4MDAuZGZjMDZlNjAyMzQwZmMyMAogICAgIDU0Y2U4MmI0ZWViZTdkZjAuMTU0YTI3YTFhZmRhMzY0YS4xNjYxNDYyMmI1NGEyZDcyLjkxYzMyYjRlYTM2M2ZmYWMKICAgICBmODNiNzJhODI1MDcwMjAxLjc4MmU1YmY2MTM5NDgyZmUuZjZkOTU2ZjdhODQ2ZGM3ZC5iNDE1NzdhYTBlMTlmNDI4CiAgICAgNjdjODlmMmJkNzkzZTI2MC4wMTUwM2Q2ZmJjZGU4OTQ1LjM0MGQ2NWU1ODk4MDg3YzAuNGVmZWYzNzNmMTFhMDdlMQogICAgIDNiNGMxYTk3Njc3MWYyMDIKLVZQU0xMRF8weDA1XzEyOChtZW0pCitWUFNMTFdfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICA1N2M5NmEwMThkMmI3MWI3LmZmYzIwNWE5YTNlZjU3YjguOGE3YzRhZjhjNmM1MDc0Yi4yZDQ3NmY1OGY0ODI2YWU2CiAgICAgN2Y0MjVmOWQ3ZTUzNDIyZS4xYjc1YTE4ZTIyYTY5ZGI2LmYwN2RmYzdlNGU1NGI4M2MuM2JkNDcxYmM4NmRhYzA5YgpAQCAtNjYxMyw3ICs2NjEzLDcgQEAKICAgICA1ZTU4MjQxYjMzMWVjNTBjLjRlMzY2ODNlYWY1NzkwNTIuYzMzMjQ0MmQ0NzljYTE4Yy4wOTE2NDkwODhlYmJiODY1CiAgICAgODE2NDE4YzczYjViZDFkMgogCi1WUFNMTERfMHgwNV8xMjgocmVnKQorVlBTTExXXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODAzNGNmMjg3ZjgwNGU3ZS5jZThjZWRkNTJmZDlmMGNjLjFlZGI4YmUxZjQ2OGI0NDkuZTg3ZGQyMmVlZjZjNTI0NAogICAgIDYwZDQ2ODk1ZjViNzZiMTUuYjllYzRhNzE2NjMyNWJmYy5lMjY5ZDM5YTVlMDQ5OTk1LjVhY2VmNWRjODUxNTI2OTcKQEAgLTY2MjEsMTIgKzY2MjEsMTIgQEAKICAgICAzNmFmMzU0OGU5ODg3NGI3LjcwNjFiMTAwZjZmMGU0NWYuYjU3MWM0MDMwZjEwOTlkZi45NWIyZWZlY2U5MWYyNWJkCiAgICAgMTZkY2JkMjZlZjk5YzhlNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hZTM4ODA2MGUyMTMzYmUwLmI2NWRmZDgwMjNlNGI3YTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWUyMDgwNjBlMjAwM2JlMC5iNjQwZmQ4MDIzZTBiN2EwCiAgICAgNjBkNDY4OTVmNWI3NmIxNS5iOWVjNGE3MTY2MzI1YmZjLmUyNjlkMzlhNWUwNDk5OTUuNWFjZWY1ZGM4NTE1MjY5NwogICAgIDdlOGVlMTdjM2E4YjY0NDUuZmI0NWI4ZGJmNDM2YzNjYS5mNTJkM2RkNzg4Yjg3Y2UzLmY1ZjEyYjIyMjRhMmQ4YjEKICAgICAzNmFmMzU0OGU5ODg3NGI3LjcwNjFiMTAwZjZmMGU0NWYuYjU3MWM0MDMwZjEwOTlkZi45NWIyZWZlY2U5MWYyNWJkCiAgICAgMTZkY2JkMjZlZjk5YzhlNwotVlBTTExEXzB4MDVfMTI4KG1lbSkKK1ZQU0xMV18weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDU0M2MxMmJjNTMxYjdmNWMuZTQ4MjYwNjU5ZjNiZDgxYS5mMzBkYjNjYTg4NmM3OWVhLjdjODE2NDg5OGU5NjJjMzQKICAgICAyYjlmNjg5YTMwYjEwNDQ4LmU0NTU1ZjNmZjcyZmNjMTguNjIxNTM5MjdjNWI2NDA5NS5hOGFiMWFkN2ExZDg3MThmCkBAIC02NjQwLDcgKzY2NDAsNyBAQAogICAgIDEzOTkwY2RlYzc0YjZhMzMuNGEyN2M2ZGFmZjBiNTM5Ny43MTY4YzI0N2IxZTc0ZWZjLjliNzliNDc5ZjViZWZmMDUKICAgICAxYWI1OTFhNDZlN2FjMDc4CiAKLVZQU1JMRF8weDA1XzEyOChyZWcpCitWUFVOUENLTFFEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICA2ZDNhNzM0NmVjMjEyM2ExLmRkYzg1MjFkYjk2NmMzOGIuNjdiZTI2NzRlNzBiNWU2Zi5jOTRiYmNlMTk4ZTQwZjExCiAgICAgZjE1NDU3Y2MwOTQwNjQyYy5iMDJhODk1Mzk0YzZkYjA5LjQ3ODQ0OTdhZTE3ZGU4OTQuN2JiYTJiYmU5YmUwZjBmNgpAQCAtNjY0OCwxMiArNjY0OCwxMiBAQAogICAgIGY3NzcxMTMwOTYxMzcwMTYuZTBiM2JmNTk3NjgyMzcyOS5iZGNjYzk3ZTdjZTQ2ZDZmLjYyNmM1NmVmNjMwNDA0ZTMKICAgICA0ZDQ3MDkxYTYwNDNhZjQyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA1ZWU2NjRiMDNlNzIzNmIuMDMxMzYyYjcwMzE4MjAyNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42NTgxOGFjYWQ1ZTdhZWQ4LjdiYmEyYmJlOWJlMGYwZjYKICAgICBmMTU0NTdjYzA5NDA2NDJjLmIwMmE4OTUzOTRjNmRiMDkuNDc4NDQ5N2FlMTdkZTg5NC43YmJhMmJiZTliZTBmMGY2CiAgICAgMDA0ZjM3YTA2NDYyYmZjNC42Nzg5MmY2ZTc0NzY2ZWRhLjQ1YzUyYzU5ODllYzJmYjAuNjU4MThhY2FkNWU3YWVkOAogICAgIGY3NzcxMTMwOTYxMzcwMTYuZTBiM2JmNTk3NjgyMzcyOS5iZGNjYzk3ZTdjZTQ2ZDZmLjYyNmM1NmVmNjMwNDA0ZTMKICAgICA0ZDQ3MDkxYTYwNDNhZjQyCi1WUFNSTERfMHgwNV8xMjgobWVtKQorVlBVTlBDS0xRRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDRkZDIxMzdlOWIwNmIyMi4zMzE3ZTBlNzNlZTBiMmNlLmY2NzJiNTAwYjZmN2Y0MjMuMGJlNzFlNTQ1NmYxZGY3ZQogICAgIDYyZmMxOTMzMTk1OGY0YWUuMGU3Y2ExMzBmNTU0YzI5Ny44NDkzOGQ0ZjRmZTA1ZWYzLjhhNjAyNzQ2YjJhMGMwODkKQEAgLTY2NjMsMTEgKzY2NjMsMTEgQEAKICAgYWZ0ZXIKICAgICAwNGRkMjEzN2U5YjA2YjIyLjMzMTdlMGU3M2VlMGIyY2UuZjY3MmI1MDBiNmY3ZjQyMy4wYmU3MWU1NDU2ZjFkZjdlCiAgICAgNjJmYzE5MzMxOTU4ZjRhZS4wZTdjYTEzMGY1NTRjMjk3Ljg0OTM4ZDRmNGZlMDVlZjMuOGE2MDI3NDZiMmEwYzA4OQotICAgIDQyNmU2ZGY4MGQ0NjA2MTMuZTVmMjRlNzk1OWZiZGIxZC42OGUxYzQzMjVkNDkzNGM3Ljk4ODVkZWMyMmM3YzRlM2IKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGJlNzFlNTQ1NmYxZGY3ZS44YTYwMjc0NmIyYTBjMDg5CiAgICAgODIwMDlhNzRlMDg2NWM3Yy4xNGM1ZTUyZDA2NjIzYjBkLjdjMmFkNTk1ZmQzZjMwYzguOTBhMDQxMzM2MTEyYzM0MQogICAgIGNkZmQ0YjA1ZWNlZDViNDcKIAotVlBTUkxEXzB4MDVfMTI4KHJlZykKK1ZQVU5QQ0tMUURRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGFkZWFmOGE0NmE5OTU0ZjguZmM3ZTFiOTJhZjI1YjMxNi5mNzQxNjFiOTk3MTQxYzEzLjllMzkzYzY0NGFjZDBmMjUKICAgICA4YmIyNDQ3ZDc2YTNlODAxLjhlYjQ2YjNlOTUyZWM2MGQuZWFiMmJlODdhOTlkYmJkYi5hOGQ5NzU4YjYxMDA4ZDA3CkBAIC02Njc1LDEyICs2Njc1LDEyIEBACiAgICAgYjAwMmFhODlhYWZlZDNjOS42NTc3NmVmMDE3YWYxM2MwLjcwYTIwYzljYmQ2NjIxNWUuZThmZjRlOTI1YjgxNTUxMQogICAgIGQ1MWRlNjRhNzZlOTE2OTAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDM4NTEwNjQwNWViMzEwYS4wNzQ3ZmE3NDAyZGMwYWE4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc4ZDdmZGY3NWRlMjY1OWQuYThkOTc1OGI2MTAwOGQwNwogICAgIDhiYjI0NDdkNzZhM2U4MDEuOGViNDZiM2U5NTJlYzYwZC5lYWIyYmU4N2E5OWRiYmRiLmE4ZDk3NThiNjEwMDhkMDcKICAgICBjMmEwMmNmYWFkOTY1NDBkLjEyNmQwOTY0YWVhZTUyOGMuNDk2M2Y5MDRkNzhhNTMxMC43OGQ3ZmRmNzVkZTI2NTlkCiAgICAgYjAwMmFhODlhYWZlZDNjOS42NTc3NmVmMDE3YWYxM2MwLjcwYTIwYzljYmQ2NjIxNWUuZThmZjRlOTI1YjgxNTUxMQogICAgIGQ1MWRlNjRhNzZlOTE2OTAKLVZQU1JMRF8weDA1XzEyOChtZW0pCitWUFVOUENLTFFEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICAxY2ZkNDEwOWNiMjU2NzQ1LmFmMjJiYzk0MGE2N2EzZTAuNjQ5YzE3Y2VlYzQwYzVkNS5iYmI5ZjViY2Y4YmU2MTcyCiAgICAgOTc2YWQ5YmQ3NTQxMDI1ZC4xZDRkNWQ4OTY4NWVmZWZmLmU5YTk4MWVhNDg2YTI0ZjYuODZmNWFmY2UyNDFkNGZmOApAQCAtNjY5MCwxMSArNjY5MCwxMSBAQAogICBhZnRlcgogICAgIDFjZmQ0MTA5Y2IyNTY3NDUuYWYyMmJjOTQwYTY3YTNlMC42NDljMTdjZWVjNDBjNWQ1LmJiYjlmNWJjZjhiZTYxNzIKICAgICA5NzZhZDliZDc1NDEwMjVkLjFkNGQ1ZDg5Njg1ZWZlZmYuZTlhOTgxZWE0ODZhMjRmNi44NmY1YWZjZTI0MWQ0ZmY4Ci0gICAgMjMzMjJiNTE5MTQ5YTQwMy41NGNlOGFkMjYxNmYyMGQyLmQxNmEyNzMwNDczYmViNGYuMmRhMjM2NDBkYzBmMjY5YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iYmI5ZjViY2Y4YmU2MTcyLjg2ZjVhZmNlMjQxZDRmZjgKICAgICA5ZDFmYjRiMTNhNGEwOTY0LmIxZjMzZGRkOTAyNDQ3MDQuZjlhYjg1OGQwNmJlZDcwZS4wYzBjODc3ZGJjMjAyMzA5CiAgICAgN2Y3ZTlkZjE2MWRkODJlYgogCi1WUFNSTERfMHgwNV8xMjgocmVnKQorVlBVTlBDS0xRRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZTI0Njc0MDg2NmQxN2ZlZi5kZmZlZWZjOThjNGZlZGFjLjkxMDc3NDE1OTIwYmFkNDIuM2IzNzE4ZWJhMDAwYTM1YwogICAgIDkxYWUwODJlNjg4OTU1YzEuYzY5YjU5ODVhNDY1MGIwNi40ZTU1MmFlNjAyYjA4ZjM4Ljc0ZGM1YTM4MzIwYjBkNjgKQEAgLTY3MDIsMTIgKzY3MDIsMTIgQEAKICAgICA0MjkxNTg1N2QxNzI3ZTdkLmYzM2VhNjlhOTVmMWU3YTIuZDNkMjA0MDM5ZDYwYjZmOS4zYjljZTA0YmFjYjJhNTY1CiAgICAgODI1MDFjZWFjYzY1NGRhZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNjllOTAyMDA0ZWIwNWI3LjAxZGNlNzAyMDU2NTk1MmIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODA2NGM5NWVkN2VlY2Y1Yy43NGRjNWEzODMyMGIwZDY4CiAgICAgOTFhZTA4MmU2ODg5NTVjMS5jNjliNTk4NWE0NjUwYjA2LjRlNTUyYWU2MDJiMDhmMzguNzRkYzVhMzgzMjBiMGQ2OAogICAgIGU3MDM1NWNmMDI4ZjQxMGMuMmVjMjZjZDE5ZTk3MjA5Zi40NTJhNWNiYzdjOWQyODkxLjgwNjRjOTVlZDdlZWNmNWMKICAgICA0MjkxNTg1N2QxNzI3ZTdkLmYzM2VhNjlhOTVmMWU3YTIuZDNkMjA0MDM5ZDYwYjZmOS4zYjljZTA0YmFjYjJhNTY1CiAgICAgODI1MDFjZWFjYzY1NGRhZQotVlBTUkxEXzB4MDVfMTI4KG1lbSkKK1ZQVU5QQ0tMUURRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJmNGNmNzI3NTQxMjgxNjQuZmRhNDBjMzI3MGJiNGFjMC5mMWRkODJjYWE1ODAxZTNjLjUyOTkyMDI4MDE4NTczMWUKICAgICAxZjVjZWZlZTVmYzZmZWIyLjc0ODc2ZGNkN2NmOGRmODAuMDU2OTdjNGZlYjRmN2Y5OS4xZmNiYWI5NTQzOTY5YmE5CkBAIC02NzE3LDExICs2NzE3LDExIEBACiAgIGFmdGVyCiAgICAgMmY0Y2Y3Mjc1NDEyODE2NC5mZGE0MGMzMjcwYmI0YWMwLmYxZGQ4MmNhYTU4MDFlM2MuNTI5OTIwMjgwMTg1NzMxZQogICAgIDFmNWNlZmVlNWZjNmZlYjIuNzQ4NzZkY2Q3Y2Y4ZGY4MC4wNTY5N2M0ZmViNGY3Zjk5LjFmY2JhYjk1NDM5NjliYTkKLSAgICAyZTRjN2YyYjBhOGM4MGM1LjAyODg3NzkyOTBiNDdhNmEuMDlhZjEwMTM4MzZhYzdlNC45NmIzYTFiN2ZmMjE2YzQ5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUyOTkyMDI4MDE4NTczMWUuMWZjYmFiOTU0Mzk2OWJhOQogICAgIDM4ZTcyM2NiNzA3MGMyYzkuMDVmMTI3ZWY0ODdjNTYyOS5kYTdiYmIwNDg4ZGRiMTRhLjEzOWZmZWZiZDJiMjIwYTgKICAgICBmMmQ5YmZjYzU3ZDRmNDcyCiAKLVZQU1JBRF8weDA1XzEyOChyZWcpCitWUElOU1JEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDkwYWVkZjk1MmIxMzI0NTUuMTlmYTU3YjhhZDdmODFlOS5kNzBmNzc0ZjQxZGJiMTZhLjU0OTlmNzBkMTZiNWZhZjYKICAgICA0NzZhNWFjNGU5ZmJlYmZhLmFkNTE5OGRmZGVjNDc5NTEuZDYyZTY1MWQxNzVkYzVkOC41MmQ1NDIxYTRhZmU1ZTE1CkBAIC02NzI5LDEyICs2NzI5LDEyIEBACiAgICAgNzNjNjUyMDE5NWY4MzE0MS41ZGZiMmU4ZDhiMjEwM2FkLmM3OWYwOWI4YzdmYjBhZWUuNGZkNWYzZjAxMjBmNjY1YgogICAgIDA1MzM1MTkxZGVmMTgyZGEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmUzY2Y4NGRmZTNmZDg1Ny4wMjdlYWY5ZjAwOTA3YjMyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ2MmU2NTFkMTc1ZGM1ZDguNTJkNTQyMWFkZWYxODJkYQogICAgIDQ3NmE1YWM0ZTlmYmViZmEuYWQ1MTk4ZGZkZWM0Nzk1MS5kNjJlNjUxZDE3NWRjNWQ4LjUyZDU0MjFhNGFmZTVlMTUKICAgICA3NDU5MmNjNDJlMTk4NjEwLmNmYjg2MTJkMWY0YjY1MmYuNWQ5YWVjYzc2NThmY2UyMC5iMmZhMTgxNzNmYzI5OWQzCiAgICAgNzNjNjUyMDE5NWY4MzE0MS41ZGZiMmU4ZDhiMjEwM2FkLmM3OWYwOWI4YzdmYjBhZWUuNGZkNWYzZjAxMjBmNjY1YgogICAgIDA1MzM1MTkxZGVmMTgyZGEKLVZQU1JBRF8weDA1XzEyOChtZW0pCitWUElOU1JEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGIwZGVhZGU2YmY3MmE5N2IuOWZmZmM2ZTdiYjI0MjczOS4zMmU2N2JlYTNlNTEwZGY3LjcyODhiNjVjZGEzMGIzZWQKICAgICAyY2EzODNkY2QzYTA5NzZiLjU2NGU4NmUzM2IyYWE2YTYuMmE0NGM1MzI1NWU3M2YzYi5iOGEzZjEyMDNhYjcwNmNhCkBAIC02NzQ0LDExICs2NzQ0LDExIEBACiAgIGFmdGVyCiAgICAgYjBkZWFkZTZiZjcyYTk3Yi45ZmZmYzZlN2JiMjQyNzM5LjMyZTY3YmVhM2U1MTBkZjcuNzI4OGI2NWNkYTMwYjNlZAogICAgIDJjYTM4M2RjZDNhMDk3NmIuNTY0ZTg2ZTMzYjJhYTZhNi4yYTQ0YzUzMjU1ZTczZjNiLmI4YTNmMTIwM2FiNzA2Y2EKLSAgICA1NDRkNGY1ZDMzODcwN2Q2LmYzMDA4ZDVmYjI5NWU4MzEuMjFlMjg2NTBlYmYwNTdhMi5mNjNhYjU2ZTgyMWUzZTMxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRhMzBiM2VkNTVlNzNmM2IuYjhhM2YxMjAzYWI3MDZjYQogICAgIDA2YWE4ZDU3ZmQzMWI2ZTcuZDI2MWQ4YzhiYmYyMjk4OS5mMjhkM2MzMDFkNzcwZjViLjg5OWFmZWIzNGVmMTk5Y2QKICAgICBjYjBmYzk1YzNiYmE1MTRhCiAKLVZQU1JBRF8weDA1XzEyOChyZWcpCitWUElOU1JEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDE5ZTUxMGQzZTQwN2EyNTYuMWQ4NGJhYjQ0ZGFjNjBjYS40ZmJkNjE4YmYyY2NhNzU4LjdiMGY2MmJlMDc4ODI0OTAKICAgICBkMDY3ZDE4NmU2NjRjYTliLjc1YTk1MTYyM2UwNGMwYWQuYzY2MDI2MTJmNGFmOWM0YS45NzM0NzVlNmMzMzA1MTZkCkBAIC02NzU2LDEyICs2NzU2LDEyIEBACiAgICAgZTRhM2FmNGM2MzdhOGE4MS41N2ZmYWU1ZTc0Nzc5NTFkLjExYWE1MTIxYzhjMWRkNGEuZjc5YzRlYjUyNzcyZTZkMgogICAgIGY0NzUwZDMzMDcyNWM2YjEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDA4ZDUyODlmZTQ2MGVlYS5mZmJjZTI3NTAxM2I5NzM2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM2NjAyNjEyZjRhZjljNGEuOTczNDc1ZTYwNzI1YzZiMQogICAgIGQwNjdkMTg2ZTY2NGNhOWIuNzVhOTUxNjIzZTA0YzBhZC5jNjYwMjYxMmY0YWY5YzRhLjk3MzQ3NWU2YzMzMDUxNmQKICAgICA0YWUzMDdlMGRjNWIwM2M1LmU5ZTNjZTRjZWM0MzkzYmEuOTM5NTIyY2I1ZDI3NDUwYy4yMWNhZWY5NTcwN2E1MzFmCiAgICAgZTRhM2FmNGM2MzdhOGE4MS41N2ZmYWU1ZTc0Nzc5NTFkLjExYWE1MTIxYzhjMWRkNGEuZjc5YzRlYjUyNzcyZTZkMgogICAgIGY0NzUwZDMzMDcyNWM2YjEKLVZQU1JBRF8weDA1XzEyOChtZW0pCitWUElOU1JEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGYzMjJhOGZjMjk5ZWFmZTkuZmFmNGMzMzgxNjRkOWI3Yi45OWM4NmI4NGYyYWM4MjAzLjllZTliMDgwZDEwOGExYWYKICAgICBkMjZmOWNmYmFiZTk1Y2E2LmU4MjI0MTBmOTI1ZTcxNWUuOGQwYzgzYWE4MWVkMTU5OC45NTlmMzk1NDE1ODljZGU4CkBAIC02NzcxLDExICs2NzcxLDExIEBACiAgIGFmdGVyCiAgICAgZjMyMmE4ZmMyOTllYWZlOS5mYWY0YzMzODE2NGQ5YjdiLjk5Yzg2Yjg0ZjJhYzgyMDMuOWVlOWIwODBkMTA4YTFhZgogICAgIGQyNmY5Y2ZiYWJlOTVjYTYuZTgyMjQxMGY5MjVlNzE1ZS44ZDBjODNhYTgxZWQxNTk4Ljk1OWYzOTU0MTU4OWNkZTgKLSAgICA2YjI4NjMxYmE5MTM4YTEzLjBiNzkyNDNkNzIzYjQ5ZDcuMGQ5NjcxYmMzZDQ2MGIwNy41MTE4ZWEwOTJmY2Y5ZGExCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQxMDhhMWFmODFlZDE1OTguOTU5ZjM5NTQxNTg5Y2RlOAogICAgIDljMTk3YjRhM2UyN2Y0NWMuYmQ0NTY4MmY1MjcwNWY5MS5mNzMxYjJhNjQzYzMyMDdkLjMwYTBiZTBiYmM2NjRjODUKICAgICA4YzgyYjJjNjU3ZGIxODQxCiAKLVZQU1JBRF8weDA1XzEyOChyZWcpCitWUElOU1JEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGMzMGNjMGE2OWRiOTNhODAuM2YwZTVmNzM4NjMyNTdhZi41YmQxMGE0ZmNmODhlZTM5LjI1YWFjMDU1YWU3MTBmMjYKICAgICAyZjg4ZTYxODI5OGNmMWVmLjMxZDI4YzgyOWUzZjZmMzUuNDE2YjA0MGE4NTBmMzM3Yi43NWNkMTliMzliNWI5NTJkCkBAIC02NzgzLDEyICs2NzgzLDEyIEBACiAgICAgMWE4OTY3NWU4NTQyMDkwYi43M2ZhYWQwM2FkOGZhZTkxLjU1ZjRmNTAyMDk5YmNmN2IuZTY0MTk5MzA2OTE0NTYwNwogICAgIGMxMjliODI3ODJmYzA4MzEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDJhZmE3YTgwMDRjZGU3Yi5mZjMyMGNjOTAzNDhhMmIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxNmIwNDBhODUwZjMzN2IuNzVjZDE5YjM4MmZjMDgzMQogICAgIDJmODhlNjE4Mjk4Y2YxZWYuMzFkMjhjODI5ZTNmNmYzNS40MTZiMDQwYTg1MGYzMzdiLjc1Y2QxOWIzOWI1Yjk1MmQKICAgICAyZTQzMWY4Njk4ZTA3NzM5LjRmMzI3YzYzYTI1YWY4MWQuY2I1ZDU0Y2QwZjkxNmEwMi5jMTY2MzhhZTI1OGU2ZWJlCiAgICAgMWE4OTY3NWU4NTQyMDkwYi43M2ZhYWQwM2FkOGZhZTkxLjU1ZjRmNTAyMDk5YmNmN2IuZTY0MTk5MzA2OTE0NTYwNwogICAgIGMxMjliODI3ODJmYzA4MzEKLVZQU1JBRF8weDA1XzEyOChtZW0pCitWUElOU1JEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJjZWMxMjdlOGM0ZjQxNmIuNTFhNmJhMGI4ZDNlZTMxMS43YWY2OWE0Y2RiZWI0Y2JlLjNiN2NlNDE3MTBiODlkOTEKICAgICAwNDU0MjIyMWE1MWJiZGRmLjJkZTUxNWY5NGI1ZTQwZjYuNDFmMmJmMmI0OTc5OGZjZi5kODQwMWI3N2JmNzUxMmYxCkBAIC02Nzk4LDExICs2Nzk4LDExIEBACiAgIGFmdGVyCiAgICAgMmNlYzEyN2U4YzRmNDE2Yi41MWE2YmEwYjhkM2VlMzExLjdhZjY5YTRjZGJlYjRjYmUuM2I3Y2U0MTcxMGI4OWQ5MQogICAgIDA0NTQyMjIxYTUxYmJkZGYuMmRlNTE1Zjk0YjVlNDBmNi40MWYyYmYyYjQ5Nzk4ZmNmLmQ4NDAxYjc3YmY3NTEyZjEKLSAgICAyNTJlNjRmY2U2NmIzN2JhLjBjOTQ3MzkzNWMzMDVlNjcuYTJiYTk5OGQxMjQ2MzJmMS44YThlOTg4ZWIzNWM2NzQ3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEwYjg5ZDkxNDk3OThmY2YuZDg0MDFiNzdiZjc1MTJmMQogICAgIDZjNDY1NGZiNmQ0YzZjMjcuNDhmZGQwNDc1YjQwNzYxMC43YTE5YTI1YzUzNWRmMzRmLmFjYjA1NmM4ODhmYmRiM2UKICAgICA5YWY0NTE5MWQ4ZGVhODgyCiAKLVZQVU5QQ0tMV0RfMTI4KHJlZykKK1ZNT1ZEX1hNTV90b19NRU0zMihyZWcpCiAgIGJlZm9yZQogICAgIGIwYTQ4NTU1NDI5MDBiYzEuYjM2ODZlMGE1NmM5MTg1My4zZTZkMjg4MGU0MThjNzljLmE1ZGQ1ODg2MjdjYThjMTYKICAgICA0YTBkZWY4MDVmOWQ0MGE1LmQ3NWYyZjE2YmNlZWY3NjkuNGEzMDc4YWI5NDQ2OGJiNy4wMGQwMzZmNmFiOTliOTcyCkBAIC02ODEwLDEyICs2ODEwLDEyIEBACiAgICAgNzkzOTUyYmMyOGY5MGUwZC4yNjAwOTNkMTcwNjEzYzA2LjE1ZGZlYzgyZDdkMjVmNGQuYjE3NjViNTgzMThmYzM5NwogICAgIGMwYzE5YTIyNmJjZTE3YjgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjViZjAwZDBiODk4MzZmNi5mYWQ3YWI5OTM4OGViOTcyCisgICAgYjBhNDg1NTU0MjkwMGJjMS5iMzY4NmUwYTU2YzkxODUzLjNlNmQyODgwZTQxOGM3OWMuYTVkZDU4ODYyN2NhOGMxNgogICAgIDRhMGRlZjgwNWY5ZDQwYTUuZDc1ZjJmMTZiY2VlZjc2OS40YTMwNzhhYjk0NDY4YmI3LjAwZDAzNmY2YWI5OWI5NzIKICAgICBjMzdhOGE3ZWNkOTI4MmRhLmI0ZjkxMjA5YmJjN2M0OTYuYzk5MmJiMzIwNzU2ZmYwZi42NWJmYjg5OGZhZDczODhlCiAgICAgNzkzOTUyYmMyOGY5MGUwZC4yNjAwOTNkMTcwNjEzYzA2LjE1ZGZlYzgyZDdkMjVmNGQuYjE3NjViNTgzMThmYzM5NwogICAgIGMwYzE5YTIyNmJjZTE3YjgKLVZQVU5QQ0tMV0RfMTI4KG1lbSkKK1ZNT1ZEX1hNTV90b19NRU0zMihtZW0pCiAgIGJlZm9yZQogICAgIDZlNmJmMWUyYzU5ZmYwMWUuYzc5NTQzYTQwYjYxMjBlYS4wOTQxMmU1OGY2YzcxYmU0LjhiNjMwYTA4YTM0OGU3MjAKICAgICA5NzQyZGM4NDVhMGUwOWY1LjA4ZDk1YWE0MTM1M2Y0MWMuMzk4ODYwOGM2YTA2MWQ1ZC44NzY5MGUyZTA1NDRkMjMyCkBAIC02ODIzLDEzICs2ODIzLDEzIEBACiAgICAgY2FhMjVmMWZhN2Y4ZWVhNC5kNzRjZTY5OGZmMGFkMDMyLmYwNTg3NmE4OGEzYzc4Y2UuODEyZWJjMGZmY2ZiYzNjNQogICAgIDM3ODU1ZWExYzljZTQyOWQKICAgYWZ0ZXIKLSAgICA2ZTZiZjFlMmM1OWZmMDFlLmM3OTU0M2E0MGI2MTIwZWEuMDk0MTJlNThmNmM3MWJlNC44YjYzMGEwOGEzNDhlNzIwCisgICAgNmU2YmYxZTJjNTlmZjAxZS5jNzk1NDNhNDBiNjEyMGVhLjA5NDEyZTU4ZjZjNzFiZTQuOGI2MzBhMDg5OTUwNWQyZgogICAgIDk3NDJkYzg0NWEwZTA5ZjUuMDhkOTVhYTQxMzUzZjQxYy4zOTg4NjA4YzZhMDYxZDVkLjg3NjkwZTJlMDU0NGQyMzIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGI2Mzg3NjkwYTA4MGUyZS5hMzQ4MDU0NGU3MjBkMjMyCisgICAgMTcxMGQ3ZjU0NzI4MWY2OC45YTUyOTEyNmRiNWRjNTUwLjkyYTFhNDU4ZTgyOWZkOWMuNjUzZWY2NjI5OTUwNWQyZgogICAgIGNhYTI1ZjFmYTdmOGVlYTQuZDc0Y2U2OThmZjBhZDAzMi5mMDU4NzZhODhhM2M3OGNlLjgxMmViYzBmZmNmYmMzYzUKICAgICAzNzg1NWVhMWM5Y2U0MjlkCiAKLVZQVU5QQ0tMV0RfMTI4KHJlZykKK1ZNT1ZEX1hNTV90b19NRU0zMihyZWcpCiAgIGJlZm9yZQogICAgIGUzOGZkODg0OWQ1NzE0NjYuOGNjNGVmZjA5NjhhMzFkNC4xZDEzNTQ2NTFjZTc1MTZkLjJmNzg1MjY4NmY0YzQ5MWYKICAgICBlMTk4MjQyNDEzMjE3NmNhLjM4NDIwMzUyMzFlYmE2MjUuYzZmM2Q4ZjljZTdmODNhZS4yYmNlYjQ4NGIwNjQyZWJhCkBAIC02ODM3LDEyICs2ODM3LDEyIEBACiAgICAgNDNkNTI3NGI1N2E5ZDgxNS5jMzgxYTc3ZWQ5NDcxMGQ5LmI1MmQwZTI2NWUxMWVkZjAuYzk0ZGZjODBiY2RkMWY4MAogICAgIDI0MGRkOTM5YmU1NmEzMDMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzAyNzJiY2UxOWU4YjQ4NC42YzkwYjA2NGUxY2IyZWJhCisgICAgZTM4ZmQ4ODQ5ZDU3MTQ2Ni44Y2M0ZWZmMDk2OGEzMWQ0LjFkMTM1NDY1MWNlNzUxNmQuMmY3ODUyNjg2ZjRjNDkxZgogICAgIGUxOTgyNDI0MTMyMTc2Y2EuMzg0MjAzNTIzMWViYTYyNS5jNmYzZDhmOWNlN2Y4M2FlLjJiY2ViNDg0YjA2NDJlYmEKICAgICA4ZGViNDBlZGM4YjhhMzc1LmFjZTcxNzMzOTMyNjA3YzMuMzAzNzZjYzBiMDVlYTNhMC5jMDI3MTllODZjOTBlMWNiCiAgICAgNDNkNTI3NGI1N2E5ZDgxNS5jMzgxYTc3ZWQ5NDcxMGQ5LmI1MmQwZTI2NWUxMWVkZjAuYzk0ZGZjODBiY2RkMWY4MAogICAgIDI0MGRkOTM5YmU1NmEzMDMKLVZQVU5QQ0tMV0RfMTI4KG1lbSkKK1ZNT1ZEX1hNTV90b19NRU0zMihtZW0pCiAgIGJlZm9yZQogICAgIGFjMzIyY2ZkOGUwNzJhODAuNWZhMmQ1YWE1YzdmNTE1My41OWRhMzAxZjFmNWI3ZjkzLmIzMWZiOTk4NzUyMzlkNDkKICAgICAzZDhhNzJiYTQ3ZmQ3MDI0LjNkOWU0Njc3NzVjNzRhZGUuNGFiZjJkMDI3ZjZkMGUxZi44NDVhNjk4MDkwMjBlZTU4CkBAIC02ODUwLDEzICs2ODUwLDEzIEBACiAgICAgZTlmZmM0Y2JlNmU1Mjg5MC5hZjUzNjMwNzRjZGFhYTg1LmFjNWQ3NDNlMDRiYzdlNTcuMTNkYmNhNjY0NTBkNjY0NwogICAgIDg4Yjg3MTNjMTUxNDA0N2YKICAgYWZ0ZXIKLSAgICBhYzMyMmNmZDhlMDcyYTgwLjVmYTJkNWFhNWM3ZjUxNTMuNTlkYTMwMWYxZjViN2Y5My5iMzFmYjk5ODc1MjM5ZDQ5CisgICAgYWMzMjJjZmQ4ZTA3MmE4MC41ZmEyZDVhYTVjN2Y1MTUzLjU5ZGEzMDFmMWY1YjdmOTMuYjMxZmI5OTg0Yzk1MWRjOQogICAgIDNkOGE3MmJhNDdmZDcwMjQuM2Q5ZTQ2Nzc3NWM3NGFkZS40YWJmMmQwMjdmNmQwZTFmLjg0NWE2OTgwOTAyMGVlNTgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjMxZjg0NWFiOTk4Njk4MC43NTIzOTAyMDlkNDllZTU4CisgICAgYjJkZjI2NWEwNjQzMzExYi4zOTE1NzcxYzNiMGNmZTYwLjcxZmMxYTEzMTg4OTdhYTcuODUyYTFiNGI0Yzk1MWRjOQogICAgIGU5ZmZjNGNiZTZlNTI4OTAuYWY1MzYzMDc0Y2RhYWE4NS5hYzVkNzQzZTA0YmM3ZTU3LjEzZGJjYTY2NDUwZDY2NDcKICAgICA4OGI4NzEzYzE1MTQwNDdmCiAKLVZQVU5QQ0tMV0RfMTI4KHJlZykKK1ZNT1ZEX1hNTV90b19NRU0zMihyZWcpCiAgIGJlZm9yZQogICAgIDQxMGYwZjM4NWEzNzM0MWMuYmRiNGM4ZjgwM2YwMTNiMC5mYWE0MDZhMjQ0YmQ4YWZhLmQ2YWViNTZmNWYxMWQ3NWMKICAgICA5YTJhOWRjOGIwMDEzMmNiLjA5Y2JhZWNkN2E2ZmFiYTcuNzg1MzVjNWJiZTQyZGE2Yi5jYWJhNWI5MzQ2OTQ0MWUyCkBAIC02ODY0LDEyICs2ODY0LDEyIEBACiAgICAgOWRkZjdkNTFmZGJiODcwZS43ZDRlMTIxZmU0ZmFkOWM4Ljc5ZmUxMmQ0YTk2MGI4ZWYuODQzN2MzNjAyNTU2MzgxZgogICAgIDAyM2Y3ZWUxNTZhZDNjMmYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjY0ZmNhYmFlMTk0NWI5My5kNDUyNDY5NDc4MTQ0MWUyCisgICAgNDEwZjBmMzg1YTM3MzQxYy5iZGI0YzhmODAzZjAxM2IwLmZhYTQwNmEyNDRiZDhhZmEuZDZhZWI1NmY1ZjExZDc1YwogICAgIDlhMmE5ZGM4YjAwMTMyY2IuMDljYmFlY2Q3YTZmYWJhNy43ODUzNWM1YmJlNDJkYTZiLmNhYmE1YjkzNDY5NDQxZTIKICAgICBmMDU2MTg1N2IyZmUzYTM4LmFiMGZmMzM2NjY2ZmFmYTAuODRhZDYxOWQ1NmY0ZDU4My42NjRmZTE5NGQ0NTI3ODE0CiAgICAgOWRkZjdkNTFmZGJiODcwZS43ZDRlMTIxZmU0ZmFkOWM4Ljc5ZmUxMmQ0YTk2MGI4ZWYuODQzN2MzNjAyNTU2MzgxZgogICAgIDAyM2Y3ZWUxNTZhZDNjMmYKLVZQVU5QQ0tMV0RfMTI4KG1lbSkKK1ZNT1ZEX1hNTV90b19NRU0zMihtZW0pCiAgIGJlZm9yZQogICAgIGJhMzM4YzA1ODM2MTQxNmYuZmUxMWM3MjIyY2MzNTZmYS41ZDUzODc3NDEwMWVlNjRhLmI1OTI2YTZjNTIxMWJmNWIKICAgICA4YWRmNmJiN2M3ODAwMjBjLjZmMzdmMjM2ZGNhMmUzYTguMjVlOWNlMjEwNGU3OTI1My45M2I1NjVkMWVlOTMyNTcyCkBAIC02ODc3LDEzICs2ODc3LDEzIEBACiAgICAgZGU4ZThhNzUwNjJlYWIwYi5mMTkzZGNkODJjMTcyNmY3LmUxZmJjMzM0YmE5NWI2YTguYTRkNzM1YjM2ZDNiMDE1MwogICAgIDhmNmUwMTA3ODg3YWVmNzUKICAgYWZ0ZXIKLSAgICBiYTMzOGMwNTgzNjE0MTZmLmZlMTFjNzIyMmNjMzU2ZmEuNWQ1Mzg3NzQxMDFlZTY0YS5iNTkyNmE2YzUyMTFiZjViCisgICAgYmEzMzhjMDU4MzYxNDE2Zi5mZTExYzcyMjJjYzM1NmZhLjVkNTM4Nzc0MTAxZWU2NGEuYjU5MjZhNmMxODcyMjdlMQogICAgIDhhZGY2YmI3Yzc4MDAyMGMuNmYzN2YyMzZkY2EyZTNhOC4yNWU5Y2UyMTA0ZTc5MjUzLjkzYjU2NWQxZWU5MzI1NzIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjU5MjkzYjU2YTZjNjVkMS41MjExZWU5M2JmNWIyNTcyCisgICAgNGMwZTk2ZTMzZjE2M2MzMS40YzlmZmJmYWE4ZTU2YWMzLmIzZGQ2MzEzZGY2MDk4MGUuNmViMmZmNmYxODcyMjdlMQogICAgIGRlOGU4YTc1MDYyZWFiMGIuZjE5M2RjZDgyYzE3MjZmNy5lMWZiYzMzNGJhOTViNmE4LmE0ZDczNWIzNmQzYjAxNTMKICAgICA4ZjZlMDEwNzg4N2FlZjc1CiAKLVZQVU5QQ0tIV0RfMTI4KHJlZykKK1ZQQU5ETl8xMjgocmVnKQogICBiZWZvcmUKICAgICA4ZGM0NjFkOTA2YjkyY2YyLjFhMjljMTU5MzhkNDBiYzUuYmE2MTkzM2UwNWM1NTRmMS44ZDBmNjk3MmI0OTJhNTRkCiAgICAgZjgyNTUxOTM4Mjg2ZjU3Ny5kZGFjYjk3YmYyMTQxODhjLjAzNTMxYjk2Y2Y3OTJmNWQuOTFlNWQxYjhlNjY0MjQyOApAQCAtNjg5MSwxMiArNjg5MSwxMiBAQAogICAgIDg5MzhjZDc0ZTZmODFhNDguNjk5YWQ5MmE2Yzk0MjdmMC44NWQ1OGZkMWEzMjllMDM5LjE1MDZkODBiNjhiNWJkMzMKICAgICA0Y2U5NmZmMWVmNGM1MGJhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI4YjUwMzUzNzE0ZTFiOTYuMjRjMWNmNzlmNWU2MmY1ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NDg0ODQ0MTIwMDBjMDIwLjA0MDIwODAzMDg5MTk5MTMKICAgICBmODI1NTE5MzgyODZmNTc3LmRkYWNiOTdiZjIxNDE4OGMuMDM1MzFiOTZjZjc5MmY1ZC45MWU1ZDFiOGU2NjQyNDI4CiAgICAgMmVkZGNiYTM5OTZkODZiMC4wNGUzZWRjNzRmZmI4ZDhjLjI4YjU3MTRlMjRjMWY1ZTYuY2E0ODc4ZjE2ZjE2ZWQ2NgogICAgIDg5MzhjZDc0ZTZmODFhNDguNjk5YWQ5MmE2Yzk0MjdmMC44NWQ1OGZkMWEzMjllMDM5LjE1MDZkODBiNjhiNWJkMzMKICAgICA0Y2U5NmZmMWVmNGM1MGJhCi1WUFVOUENLSFdEXzEyOChtZW0pCitWUEFORE5fMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNGNiZWI4OGYyMGU3NjIyNy42NjgxNTI3MjA1YjVlZWVjLmU5OWNmYThlNjVlY2ExZTUuNzZmZTczOGFlNjNjMmQwMgogICAgIGYxNTEyZmQxMTY5MmFlYTguMjIwNTU2MDk5NDJmM2U0OC42MGI3Y2FlMTU0MGViOTk2LjU3N2IxOGU3ODk4NjE3ZWMKQEAgLTY5MDYsMTEgKzY5MDYsMTEgQEAKICAgYWZ0ZXIKICAgICA0Y2JlYjg4ZjIwZTc2MjI3LjY2ODE1MjcyMDViNWVlZWMuZTk5Y2ZhOGU2NWVjYTFlNS43NmZlNzM4YWU2M2MyZDAyCiAgICAgZjE1MTJmZDExNjkyYWVhOC4yMjA1NTYwOTk0MmYzZTQ4LjYwYjdjYWUxNTQwZWI5OTYuNTc3YjE4ZTc4OTg2MTdlYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lOTljNjBiN2ZhOGVjYWUxLjY1ZWM1NDBlYTFlNWI5OTYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODkwODMwMGUyMWUwMDA2MS4yMDg0NjMwODY2MzgyODAyCiAgICAgOWFlMDk4ZjJjMjRhZTY5MC5hMmVmY2JiMjZiOGM0MWQ1LmE0NjM2YzAwOGFlMGFkZGYuNThhNTk1M2I2MWYwYjVkNQogICAgIDMxZTg2NjA5Y2UyOGUxMmMKIAotVlBVTlBDS0hXRF8xMjgocmVnKQorVlBBTkROXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDZhYjFlODJhMGJjODlhNTUuNTc3NTgyYThiMTZmNGI1MC4xZmVjMzU5Y2VjODc2YzVmLjI4OGQzNWE1MDlhOTAzY2UKICAgICA1ZTRiMTcwYmI1NWIxZGZiLjI4Zjc4YWIzZDVkNGRhZDIuZWI1MzBlZDA0YzZlMDM1MS4xM2ZmOWZlOGVlNmRlNTJhCkBAIC02OTE4LDEyICs2OTE4LDEyIEBACiAgICAgZWIyMTZkYjliZDhiNzE3MC43OWY1ZTU3NDJkOGY2OGNmLmRiOTNmZWMyMTgzNjY0MWMuOGVlYjQzZjk2MDEyNDBkNwogICAgIGQ2ZmM3NTllMjQwYzMwODEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjA3MmViNTM1MmI4MGVkMC4yN2NmNGM2ZTQxNTcwMzUxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEwODBmMDAyMTAxMDY0MGMuOGMwMDQwMTEwMDEyMDBkNQogICAgIDVlNGIxNzBiYjU1YjFkZmIuMjhmNzhhYjNkNWQ0ZGFkMi5lYjUzMGVkMDRjNmUwMzUxLjEzZmY5ZmU4ZWU2ZGU1MmEKICAgICA2YjAxZWYxNjY3NmRhNmNiLmVhMzMyZGZkNGE4NTUwNDQuNjA3MjUyYjgyN2NmNDE1Ny40MTg1MjViNTU3MzYxMDFlCiAgICAgZWIyMTZkYjliZDhiNzE3MC43OWY1ZTU3NDJkOGY2OGNmLmRiOTNmZWMyMTgzNjY0MWMuOGVlYjQzZjk2MDEyNDBkNwogICAgIGQ2ZmM3NTllMjQwYzMwODEKLVZQVU5QQ0tIV0RfMTI4KG1lbSkKK1ZQQU5ETl8xMjgobWVtKQogICBiZWZvcmUKICAgICBmNTg1Mzc5MWMwMzE5ZDQ3LjNjZjU4YjVlNTQzZmI5OTcuYjEwOTMwMDM5OWZkZGZhMi5iODAzMGM1OGJiMmRhNjRjCiAgICAgYzc1MjA2YmY0ZjhjNDM1Ni5iOWNhNDc3M2M4MThiYmViLjZlM2I4OTk2YWJkYjcxZTcuNTMwZjdhZThhZDQyNDM5NQpAQCAtNjkzMywxMSArNjkzMywxMSBAQAogICBhZnRlcgogICAgIGY1ODUzNzkxYzAzMTlkNDcuM2NmNThiNWU1NDNmYjk5Ny5iMTA5MzAwMzk5ZmRkZmEyLmI4MDMwYzU4YmIyZGE2NGMKICAgICBjNzUyMDZiZjRmOGM0MzU2LmI5Y2E0NzczYzgxOGJiZWIuNmUzYjg5OTZhYmRiNzFlNy41MzBmN2FlOGFkNDI0Mzk1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIxMDk2ZTNiMzAwMzg5OTYuOTlmZGFiZGJkZmEyNzFlNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MTAwMzAwMTEwMjQ4ZTAwLmE4MDAwNDEwMTIyZGE0NDgKICAgICBmM2U4Yjg3OGI3MTUyOWZkLmE2YTY4NzlhYjQ2MmRjY2QuZTYyODU2NzgyZjE5ZDU3OC4zMzI1NjNhM2VjZjU4MjFjCiAgICAgMzBjOWQ3YTY3MWFhOWFiMwogCi1WUFVOUENLSFdEXzEyOChyZWcpCitWUEFORE5fMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNWIzNzk5NTJiNWFjZmYxMS4wNjQ5OTNkYmM5NWJlMWVlLmNlNDYwMjg0NjVlZDczYjIuNWE3YmMxOWZkOTkwMWYxZAogICAgIDEwYmRhNzEzNTM4OGViZTMuM2MxZDZhMjkzZDA3YzFkNy45MzE2MGI4ZDYzY2FiNDc1LmMzMWMyYjdhOTlhODc0ZTUKQEAgLTY5NDUsMTIgKzY5NDUsMTIgQEAKICAgICA4ODNjOTU4NTBlZmM0YjkzLjgxNTJmZTMzYzJjM2VkNDMuNWY3YWI1YWRiM2FmMjM0NC5lNDc3ZWFmZGM5ZTgyZThiCiAgICAgNTNjYTM2N2Q3MTI5MGJjMgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZjY0OTMxNjlkMjEwYjhkLjQ5ODc2M2NhZGJjMmI0NzUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGM2OGI0MjA5MDI1MDMwMC4yNDYzYzA4NTQwNDAwYTBhCiAgICAgMTBiZGE3MTM1Mzg4ZWJlMy4zYzFkNmEyOTNkMDdjMWQ3LjkzMTYwYjhkNjNjYWI0NzUuYzMxYzJiN2E5OWE4NzRlNQogICAgIGFiYTVmZDU2ZTdjOTliZDUuNzEzMmJhNGQzMjI2ODdlNS40ZjY0OWQyMTQ5ODdkYmMyLmZkZDcwZmY2OGE2YzkwZmEKICAgICA4ODNjOTU4NTBlZmM0YjkzLjgxNTJmZTMzYzJjM2VkNDMuNWY3YWI1YWRiM2FmMjM0NC5lNDc3ZWFmZGM5ZTgyZThiCiAgICAgNTNjYTM2N2Q3MTI5MGJjMgotVlBVTlBDS0hXRF8xMjgobWVtKQorVlBBTkROXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDI4OWE3MTYwOWUzYWUzY2MuMDNjZTZjMGQ2NGFiMzZjOC40NzRhYjJjNzA5ZWFiMDFlLjIwYTU0ZDliM2VjZmM5YTcKICAgICAzZWI1MTY5NDZkMjc3MWQ0Ljc3YTY3ZjViODQ2NTk5MjAuYTFlNjUyZjUyNGE4OGJhMS5lYzMwNjM1OTg1NzIwOTk5CkBAIC02OTYwLDExICs2OTYwLDExIEBACiAgIGFmdGVyCiAgICAgMjg5YTcxNjA5ZTNhZTNjYy4wM2NlNmMwZDY0YWIzNmM4LjQ3NGFiMmM3MDllYWIwMWUuMjBhNTRkOWIzZWNmYzlhNwogICAgIDNlYjUxNjk0NmQyNzcxZDQuNzdhNjdmNWI4NDY1OTkyMC5hMWU2NTJmNTI0YTg4YmExLmVjMzA2MzU5ODU3MjA5OTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDc0YWExZTZiMmM3NTJmNS4wOWVhMjRhOGIwMWU4YmExCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ2MDhhMDAyMDk0MjMwMWUuMDA4NTBjODIzYThkYzAyNgogICAgIDljZjc4ZjljNjBjN2EyOTEuYmY1YzQ2ZjU5MzIzYjdlYy43ZDM5NDhkMDQ0MTY3YzUyLjE4OWFmNmYxYjk3MjQ2ZDQKICAgICAzMTExNmJhNGRlZTdiYTc2CiAKLVZQQUREVVNCXzEyOChyZWcpCitWUFNMTERRXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYzUxODRlZDYyZjEwYjk1Ni45Y2I3NWE0OGJiOTFiZDlkLjRhZDFmMzFhYmI0MGU5YjcuYjg4ODk1NTU4MWRmMGFkOAogICAgIDMxZmM5OWYzNDg3NzdkMWYuNGVmMDgwZjQyODY4N2U1Ny4zZWJkY2JiNDFkOTc4MzU2LmY1YWJiZTIzMDI2ZWExYjUKQEAgLTY5NzIsMTIgKzY5NzIsMTIgQEAKICAgICAwMThhNWQ5ZTQ1MzU0NzFlLjM0MDFjYWZjYTY2YWU1ODkuZDUyYWVjZjcwMDIwZGViZi5lOTlkOTU0ZjNkMGZkODJiCiAgICAgNTgwNDNiODMzMDNhZjAxYgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmU3ZmZmZjFkYjdmZmZmLmZmZmZmZjcyM2Y3ZGZmZTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjBkZWJmZTk5ZDk1NGYzZC4wZmQ4MmIwMDAwMDAwMDAwCiAgICAgMzFmYzk5ZjM0ODc3N2QxZi40ZWYwODBmNDI4Njg3ZTU3LjNlYmRjYmI0MWQ5NzgzNTYuZjVhYmJlMjMwMjZlYTFiNQogICAgIGQxMDk0YTY3YzZhYTQzN2UuOGM3MDdjOGNjMjU3YTJlZC5mOTZjYzkyZjU1YjNjMDc1LjEyNmUzZjI4ZTJkMGZjMTgKICAgICAwMThhNWQ5ZTQ1MzU0NzFlLjM0MDFjYWZjYTY2YWU1ODkuZDUyYWVjZjcwMDIwZGViZi5lOTlkOTU0ZjNkMGZkODJiCiAgICAgNTgwNDNiODMzMDNhZjAxYgotVlBBRERVU0JfMTI4KG1lbSkKK1ZQU0xMRFFfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICAzOTZmYWRiMmQ3NWEwMTEzLjFkY2RjYzA1NjBhMmM1YWMuMjA3MGU3MzFlZmFlMDI1Ny4zMDQzMmQ3OWI5NmExN2UxCiAgICAgNmFhOTY3Yzc0ZDdkYzc0MC44MTFjOTUwNmI0ODBmOGQ0LjJlODk0ZTE1YmEyZWI2ODQuNjUwMjg5MWYxZDFlYTg4NgpAQCAtNjk4NywxMSArNjk4NywxMSBAQAogICBhZnRlcgogICAgIDM5NmZhZGIyZDc1YTAxMTMuMWRjZGNjMDU2MGEyYzVhYy4yMDcwZTczMWVmYWUwMjU3LjMwNDMyZDc5Yjk2YTE3ZTEKICAgICA2YWE5NjdjNzRkN2RjNzQwLjgxMWM5NTA2YjQ4MGY4ZDQuMmU4OTRlMTViYTJlYjY4NC42NTAyODkxZjFkMWVhODg2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRlZjlmZjQ2ZmZkY2I4ZGIuOTU0NWI2OThkNjg4YmZmZgorICAgIGM1N2ZlNmFmYWVhZWZlY2QuODljNGIyMGVkYzU4MWQ0MS4zODE4N2E5NjIyZjdiZDNjLmNmYjRmZDU3YzdjOGNjNWIKICAgICAyN2JlYTU1NDE3Zjk2MmU3LjkxMTEyMjhhNzRiODcwYTAuMWNlOWVhOWY0NDE0ZDNhYS5jY2E1ODQ4YjU0ZjJjMTBiCiAgICAgYjYyMTFhMjk1ZjJhYzE0MwogCi1WUEFERFVTQl8xMjgocmVnKQorVlBTTExEUV8weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGVhNzRiYzliODVmYjA4YWYuNmQyZjIwYTNhNDZiYWViYS5mNTRmZGVlNTE5MmIyYzljLmI0YzcxNzFiM2I5MWIzZmIKICAgICBjNWVhNjQ0ZjYxZjJkNGZhLjcxYTFkMzg4NmYwZjlmNzEuMTFjYWUzOGE2NjNkOGVlMi5kZDgwN2ZmODI0N2ExYTVhCkBAIC02OTk5LDEyICs2OTk5LDEyIEBACiAgICAgZGI2ZWJiMmFhYzdmZTZlMC4yNmI0ZDJjNjM2MWY1ZjNlLmUxYTZiYTY3NmE3MDMzZmIuNTNhZWVjODIzOWMyNmNmNQogICAgIDU3YmNlYjA3OWYzOWNmODgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjJmZmZmZjFkMGFkYzFmZi5mZmZmZmZmZjVkZmY4NmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjcwMzNmYjUzYWVlYzgyMzkuYzI2Y2Y1MDAwMDAwMDAwMAogICAgIGM1ZWE2NDRmNjFmMmQ0ZmEuNzFhMWQzODg2ZjBmOWY3MS4xMWNhZTM4YTY2M2Q4ZWUyLmRkODA3ZmY4MjQ3YTFhNWEKICAgICBhMWNlMTBiMDhmOWE1ZmQxLjEwZGYzYWYwOTdmMmYwMzkuNDFjZTJlZTdmODdiZDIxZC43M2RlOWMyMTFhZGNjNGY0CiAgICAgZGI2ZWJiMmFhYzdmZTZlMC4yNmI0ZDJjNjM2MWY1ZjNlLmUxYTZiYTY3NmE3MDMzZmIuNTNhZWVjODIzOWMyNmNmNQogICAgIDU3YmNlYjA3OWYzOWNmODgKLVZQQUREVVNCXzEyOChtZW0pCitWUFNMTERRXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNWNkNDEzOWQ2NTRjYTlkYS5kMDE0NjIyOTU0MmVhNWQyLjhmZWUxNmY1NjhhMmE2YWIuNGQ5ZjgzNzY1OWE5ZWYyNQogICAgIDNlYzFlMjJlYTkwN2I2MTYuZGEwZGZmMTkyMjMyZDc1My4yODU3ODI2YjRhODg4MWFjLmUwMDU4NjgwNjBiMTQwNGEKQEAgLTcwMTQsMTEgKzcwMTQsMTEgQEAKICAgYWZ0ZXIKICAgICA1Y2Q0MTM5ZDY1NGNhOWRhLmQwMTQ2MjI5NTQyZWE1ZDIuOGZlZTE2ZjU2OGEyYTZhYi40ZDlmODM3NjU5YTllZjI1CiAgICAgM2VjMWUyMmVhOTA3YjYxNi5kYTBkZmYxOTIyMzJkNzUzLjI4NTc4MjZiNGE4ODgxYWMuZTAwNTg2ODA2MGIxNDA0YQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iN2ZmOThmZmIyZmZmZmZmLmZmYTRmZmY2YjlmZmZmNmYKKyAgICBkOTUxZDNhNzg2NzdiMTY5LjU2YTU5MDY3YjIxN2I5MTAuY2JiYzkyMTNmN2RjYWU2ZS5mODI0YmRmMjFjMTQ2MjE0CiAgICAgMDk0ZTYyZjUxOWE3NTdmZi5hMDI3MTA3ZGExNmE4N2I1LjU1ZTljM2Q5OGJhYWU3MWQuZjA0ODI2MzYyODVlOTMyZgogICAgIDI0YmRiY2I5MjExYzBkNDgKIAotVlBBRERVU0JfMTI4KHJlZykKK1ZQU0xMRFFfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICBlZmNlN2JlOGEyZDkwZDBiLmFhODUwYjAzN2VhMzY0MDMuMTVlMTdiYzg4YmI2N2NlZS5hMmFhOGZhOTI0ZmVlOWU1CiAgICAgYWZjODYwMmQ0ODIyY2UyMy45OGMyNGJiY2QwNzc5NGEyLjBmMWRjZGI1MGI4OGQ1NjYuOGVjYTc0NmZkYmU1NzBmMQpAQCAtNzAyNiwxMiArNzAyNiwxMiBAQAogICAgIDdhYTg4OGFlNzA4NTg2MDUuY2I3ZTdjZTRhY2RhNGI1Zi4wNTRmMTgyMTNlZWFhM2M1LmIzNWI3NzhlMTk5YWZiODYKICAgICBhNDYzOGRiZWQ3ODA3ODY4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE0NmNlNWQ2NDlmZmZmZmYuZmZmZmViZmRmNGZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYWEzYzViMzViNzc4ZTE5LjlhZmI4NjAwMDAwMDAwMDAKICAgICBhZmM4NjAyZDQ4MjJjZTIzLjk4YzI0YmJjZDA3Nzk0YTIuMGYxZGNkYjUwYjg4ZDU2Ni44ZWNhNzQ2ZmRiZTU3MGYxCiAgICAgYmVmODY2ZjZhZTgyOGQzZC5hZmQxOWQwZTJiMzBhMjA3LmViMjkwM2FmYmQ2YWNlYzkuZjUxN2VlMTdjZTZiMzc2ZAogICAgIDdhYTg4OGFlNzA4NTg2MDUuY2I3ZTdjZTRhY2RhNGI1Zi4wNTRmMTgyMTNlZWFhM2M1LmIzNWI3NzhlMTk5YWZiODYKICAgICBhNDYzOGRiZWQ3ODA3ODY4Ci1WUEFERFVTQl8xMjgobWVtKQorVlBTTExEUV8weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGE0ZmJhYTk1MjQyODY5M2UuM2QyNGM1YzEyYmI4ZjUyNi5jODk0NjcyYTZlN2Y0YWQ2LmI5ZGMwODc5Mjk5NDhmMDMKICAgICA4ZWVmNGNmZDFkOWY4YzM1LjY1YmExNjliN2JhNjE2NGMuODJlMWQ3Y2M4ZTJkNWQ5Ny42MzFiY2YyMjFiZjNjZjMyCkBAIC03MDQxLDExICs3MDQxLDExIEBACiAgIGFmdGVyCiAgICAgYTRmYmFhOTUyNDI4NjkzZS4zZDI0YzVjMTJiYjhmNTI2LmM4OTQ2NzJhNmU3ZjRhZDYuYjlkYzA4NzkyOTk0OGYwMwogICAgIDhlZWY0Y2ZkMWQ5ZjhjMzUuNjViYTE2OWI3YmE2MTY0Yy44MmUxZDdjYzhlMmQ1ZDk3LjYzMWJjZjIyMWJmM2NmMzIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZjZmY2FjYTdmZi5mZmY3ZDc5YjQ0ZmZmZjM1CisgICAgNDAwYWVmZTRkZWYwOWI3OS40Y2I1NzlhOGZiZGIyNDI1LmQ1MmY0YWI2MjdmMDNlY2YuNWY1YTY5ODhhZjkzOWZmYwogICAgIDk1MWEwZDM1ODIyNzUyMzUuNTA2MGU4NTQ0N2U0NWM1Yi45ZDRiM2JkNDU2ZDJhYWE5LjA5ZTRkMzE3ODIwMDNiMGQKICAgICBiZDA0MDgzYzJmYzdkZTEyCiAKLVZQTVVMSFVXXzEyOChyZWcpCitWUFNSTERRXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZDcwNzA0NjE1MjczYzViNy42OWU5MjRkYzI1NTE2Zjk2LmNiMDg2MTBiZmM0Y2Y5OWEuYjUwMTI2MTMzNmUxNWM1MgogICAgIGIzMzljM2YzODg5MDJiYTguOTg0NGFmYzVlNDc5YWNjNy4xYmY5ZTAzYWI1OWYzODhmLmZiMWM4NzVkZTMyOTExZjYKQEAgLTcwNTMsMTIgKzcwNTMsMTIgQEAKICAgICAyMDVhN2MwZjljNGY2ODFiLjc2Y2UxMTBkMjRmNDc4NGMuYTVlNmRjYWNhNTM3OGM0YS43ZWI1OWNjNjE3OTA3NGRkCiAgICAgNzJjYjQ4YmRkNWM5OTk3OAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMjIwYzE0ODc1MzYxZWZlLjdjNDk1MmU1MTRlODA4MzIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMGE1ZTZkYy5hY2E1Mzc4YzRhN2ViNTljCiAgICAgYjMzOWMzZjM4ODkwMmJhOC45ODQ0YWZjNWU0NzlhY2M3LjFiZjllMDNhYjU5ZjM4OGYuZmIxYzg3NWRlMzI5MTFmNgogICAgIGFjZTY0MjVmNmRhYjRlOTAuZmRmNzJhZGNkYWFiYzZmNS45YTdmNWY0YjBmNjk1NWU2LjRhNmFkYmEwN2FiNDg1YzAKICAgICAyMDVhN2MwZjljNGY2ODFiLjc2Y2UxMTBkMjRmNDc4NGMuYTVlNmRjYWNhNTM3OGM0YS43ZWI1OWNjNjE3OTA3NGRkCiAgICAgNzJjYjQ4YmRkNWM5OTk3OAotVlBNVUxIVVdfMTI4KG1lbSkKK1ZQU1JMRFFfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICAwNDc2NWE3MGQwNjliMmJlLjZhZTA2ZDcxYjEwOWI2ZjYuZGU5NWUxNDRkZDVmN2ZmNy45OTdhNTJjNzE0OTUxOTY4CiAgICAgMGU4MzRmY2IyNTdlNzhkYS5lNmM1MTFmMDQ5NjQ3M2NkLjEwMTcxNTZlMjJmOTk3MjIuZDA4NmJkMGFmNzBlMzdlYgpAQCAtNzA2OCwxMSArNzA2OCwxMSBAQAogICBhZnRlcgogICAgIDA0NzY1YTcwZDA2OWIyYmUuNmFlMDZkNzFiMTA5YjZmNi5kZTk1ZTE0NGRkNWY3ZmY3Ljk5N2E1MmM3MTQ5NTE5NjgKICAgICAwZTgzNGZjYjI1N2U3OGRhLmU2YzUxMWYwNDk2NDczY2QuMTAxNzE1NmUyMmY5OTcyMi5kMDg2YmQwYWY3MGUzN2ViCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBkZmQxMmRiMWUzZDRiOGIuN2QwMzNkMjAxM2RjMDU4YworICAgIDZlYmVhMmJhZjAxNGFhZjkuZWY1NjY0ZjgwMGVjZGQ0Yi5lYTIyMjk3NTBlY2M3Y2ZiLmE3NTcxOWUwZWIyZTIzODAKICAgICBmZmYyY2UyOTRjMzYwMjQ3LmUzZGQ2M2Y1NzEyZTJlMWQuNDY4MDk5NDdiZWU2ZWFhYy43YTNhNjNiNThiODExOGQzCiAgICAgYTU3OTk1ZjU3NDk0NTQ4ZgogCi1WUE1VTEhVV18xMjgocmVnKQorVlBTUkxEUV8weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDg0NjBhZDBjNDFmMjExNjEuOWNlZDUxMDQ1NWYwM2RlZi4xZGE3MDk1MzM4YjRhMmVmLjAyZmVlMWNlNGQ1MzljNjEKICAgICA3NDNkYTc2NjhlMjc4Y2Y0LjIyNzlhNzM4Mjg0ZTE3MWUuZjhmZjUyN2VmMjBkNzc2Yy5mODY4N2VmOGQ3MWU0ZjQ3CkBAIC03MDgwLDEyICs3MDgwLDEyIEBACiAgICAgZjIwNTJkOTQxYjQ4YWExMC41YTc3Yjg1NjlhMjg5N2MwLjA1OGRiZWViYWQ2MTJmMTkuMDYyZmE0ZTI0ZmZlYTY1NQogICAgIGQ2MjUyNTdhNzQyY2MzZDUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDU2NjNkODVhM2VlMTVmOC4wNjAwNTFjNjQzMzczMzgyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwNThkYmUuZWJhZDYxMmYxOTA2MmZhNAogICAgIDc0M2RhNzY2OGUyNzhjZjQuMjI3OWE3MzgyODRlMTcxZS5mOGZmNTI3ZWYyMGQ3NzZjLmY4Njg3ZWY4ZDcxZTRmNDcKICAgICBjZjViN2Q2ZmY4YzAwMGY1LjZlNjM0YWFmZTA1ZDRiMDAuZDIzMzNhZTIzYWMyZTc0MC4wNjhhZWJiMDc5NTNiZThhCiAgICAgZjIwNTJkOTQxYjQ4YWExMC41YTc3Yjg1NjlhMjg5N2MwLjA1OGRiZWViYWQ2MTJmMTkuMDYyZmE0ZTI0ZmZlYTY1NQogICAgIGQ2MjUyNTdhNzQyY2MzZDUKLVZQTVVMSFVXXzEyOChtZW0pCitWUFNSTERRXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNTAzNmViNjQwNGU4ZDEzNi4zOTg4YjIzZjkyNGJjNmYwLmM0ODE2YzFhNzFiY2I0OGEuZWY1YmQ5MDZlNjc1OGFhMQogICAgIDUxMmY3MThjMWMzZjhjYTMuMDAzMDA4ZGVmOTU2OTA0Mi44NjRkZTJlNjgyMjM2MThjLmVhZTc4NzlkODI4YjM1ODQKQEAgLTcwOTUsMTEgKzcwOTUsMTEgQEAKICAgYWZ0ZXIKICAgICA1MDM2ZWI2NDA0ZThkMTM2LjM5ODhiMjNmOTI0YmM2ZjAuYzQ4MTZjMWE3MWJjYjQ4YS5lZjViZDkwNmU2NzU4YWExCiAgICAgNTEyZjcxOGMxYzNmOGNhMy4wMDMwMDhkZWY5NTY5MDQyLjg2NGRlMmU2ODIyMzYxOGMuZWFlNzg3OWQ4MjhiMzU4NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42NzE2NWZkMDM5ZDE0NGNiLmRiYTE3MmY3NzU4NDFjZmEKKyAgICBiNmRjMzNkZmQ4M2JhZjQ4LmEzNDkyYmRiZWRmNDQzYjEuN2RhNjk2YTVlODZjNThmMC41NDdlYzQxZTFjMmU2ZDZmCiAgICAgNTkwOWFkNDc1M2ViZjc1Mi43ZDFmMTdhNDBhYjIxY2VhLjg2NWEwNTQ1YmZhMDU2ZTIuODc2YzhjZjQ1MWVhNmIwZQogICAgIGUxZmNkYzhiYmM0YzZlMGMKIAotVlBNVUxIVVdfMTI4KHJlZykKK1ZQU1JMRFFfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICBiYzdjYWY0ZWY5ZGZiMDE2LjE3ODE1YmIyYTk1ODFmZWQuZWNmZGM5YTRlYjFiNTc5OS43YjMzYWFiMTI1Y2QxNzhmCiAgICAgNzUzNjAxYWJhNTJmNmVkNy5jYzEyYmEwYWY3OTBlNTQ1LjRiMzEzYzQ3MmNiYjMwNjkuMzlmZTAxZDUzM2ZlNTcyMwpAQCAtNzEwNywxMiArNzEwNywxMiBAQAogICAgIGYyOGIxM2UxYjkzODRkMzEuOGNhYjc4MzZlOThmMzVkOS40OWM2NTYyNjQwZDFhYTFlLjgwOWFiNWY2YmQ5ZDQyYWUKICAgICBjMjAyMGJjYTcwMjQ2NWZkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1YWIxNDQ4MGI1MzIwMmIuMWQyMTAxNGQyNjgyMTZiMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwNDljNjU2LjI2NDBkMWFhMWU4MDlhYjUKICAgICA3NTM2MDFhYmE1MmY2ZWQ3LmNjMTJiYTBhZjc5MGU1NDUuNGIzMTNjNDcyY2JiMzA2OS4zOWZlMDFkNTMzZmU1NzIzCiAgICAgNjk3N2NlMGQ1Y2M5ZTNmZC41NTg2NDUzZDU4OWUwMzg1LmY2MDU2Y2Y5NmExZWUyMDcuOWM4Nzg2OWQwNzQwZDFjOQogICAgIGYyOGIxM2UxYjkzODRkMzEuOGNhYjc4MzZlOThmMzVkOS40OWM2NTYyNjQwZDFhYTFlLjgwOWFiNWY2YmQ5ZDQyYWUKICAgICBjMjAyMGJjYTcwMjQ2NWZkCi1WUE1VTEhVV18xMjgobWVtKQorVlBTUkxEUV8weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDNjOGQwMzA2M2NkZWY4ZTMuNmRiZWNhOTE1ODA4ZTYyMS40ZTRiY2ZlMWM1NmUzOTZmLjlmYzBmNDNhNGI1ZmMzNWIKICAgICBjYjA1MTk5NzNlZDliNThjLjM2NWNmMThhZDZjNmVhNzkuNzczMmM3MjkwOTQ3Yzk3MC41NjNmNDRhMjI2NTU2YjZhCkBAIC03MTIyLDExICs3MTIyLDExIEBACiAgIGFmdGVyCiAgICAgM2M4ZDAzMDYzY2RlZjhlMy42ZGJlY2E5MTU4MDhlNjIxLjRlNGJjZmUxYzU2ZTM5NmYuOWZjMGY0M2E0YjVmYzM1YgogICAgIGNiMDUxOTk3M2VkOWI1OGMuMzY1Y2YxOGFkNmM2ZWE3OS43NzMyYzcyOTA5NDdjOTcwLjU2M2Y0NGEyMjY1NTZiNmEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjQ3NGExYjkwNzI3MmQzMS4zNWQxNDE3OTBiNDk1MWY3CisgICAgNGIzN2NhNjg5MTIwNTkyMy5hOWIwODMzOWNmZmQ5N2U1LmUzMmVkYWZkZDAyN2EyMGIuYzk4ZTQxYzg2ZDNlZGNmNgogICAgIDk4ZWY5MDY0NTJjMDlmZDUuMjMwODdkMDhkZTM5MjcxMC42ZTBhODY0NjM2MTg4MDZhLjUzZmJlNzFhYmVhNjUzYWIKICAgICA1MmQwMzMwMmIyMTkwYjM3CiAKLVZQQUREVVNXXzEyOChyZWcpCitWUFNVQlVTQl8xMjgocmVnKQogICBiZWZvcmUKICAgICAyMTVhMjBlZWU3MjQ0MjQ0LjhlZjllOTc5OWRjNDQ0Y2QuZmVhZWQ5NjU5ZjA3ZDdhNi5mNDkxNDZmMTU4MjkxZWI5CiAgICAgMWJlNWFhNDlmOTUzMzI3ZS4wOTIxNTA5MjhjMzgwNDM4Ljk3ZWY5NWJiYWZmMmUzNTQuNTE5MDk3ZWE1MjYzMzkyNgpAQCAtNzEzNCwxMiArNzEzNCwxMiBAQAogICAgIDA0MmU4NWZjMjE0OTJmMmMuZmRmYTM5ODBjY2EyYzQxNi43MzcyMWIwMjJhNTBmZGE4LjAwMjZkODc3M2M4OGQ1MDQKICAgICAwYTU1YzFlMzY0ODljZmNlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZiMGJkZGE0MmZmZmYuNTFiNmZmZmY4ZWViZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNDdkN2FiOTg1YTIwMDAwLjUxNmEwMDczMTYwMDAwMjIKICAgICAxYmU1YWE0OWY5NTMzMjdlLjA5MjE1MDkyOGMzODA0MzguOTdlZjk1YmJhZmYyZTM1NC41MTkwOTdlYTUyNjMzOTI2CiAgICAgOWViZGNkN2Y4MzMwMTc5Mi5lNTMyNDE5YjNlMjk5YjQyLjRhMTdhYzc2YTk4Nzg2YzYuNjFkM2YzMWUzZmQ0OGRkYQogICAgIDA0MmU4NWZjMjE0OTJmMmMuZmRmYTM5ODBjY2EyYzQxNi43MzcyMWIwMjJhNTBmZGE4LjAwMjZkODc3M2M4OGQ1MDQKICAgICAwYTU1YzFlMzY0ODljZmNlCi1WUEFERFVTV18xMjgobWVtKQorVlBTVUJVU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNWEyYzJiNGRkM2U1MzU2NC5hYjgzY2YyYzcwMjliNGY3LjJmNDNiMjJkNTVhZjNjZTEuNmU0YmRjY2JjZGRjODRhNQogICAgIGNlNzY5MGEwYTZhOGMzZjMuZWQwYWE2N2IwYzVkZTNhMC41NmRhMmE4ZmYyNWRiZmNlLjk3ZjBlZDNkMmViNDU2NjkKQEAgLTcxNDksMTEgKzcxNDksMTEgQEAKICAgYWZ0ZXIKICAgICA1YTJjMmI0ZGQzZTUzNTY0LmFiODNjZjJjNzAyOWI0ZjcuMmY0M2IyMmQ1NWFmM2NlMS42ZTRiZGNjYmNkZGM4NGE1CiAgICAgY2U3NjkwYTBhNmE4YzNmMy5lZDBhYTY3YjBjNWRlM2EwLjU2ZGEyYThmZjI1ZGJmY2UuOTdmMGVkM2QyZWI0NTY2OQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NjFkZGNiY2ZmZmZmY2FmLmZmZmZmZmZmZmM5MGRiMGUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjc5NzAwNjI5ZDAwODMwMC4yOWE1MTEwMDAwMDAwMDAwCiAgICAgOGY5NzQwYjZlNjhmNGJhYi5iNmQ5ZWIyNjk4ZWUyZTNiLmYzMjEwNDFkZGVjOWQ1YzAuZTJjOWVjY2M5ZDdkY2ZmOQogICAgIGJkOTZkMmMyZTI4NWVjMWQKIAotVlBBRERVU1dfMTI4KHJlZykKK1ZQU1VCVVNCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDM2NWVmODEwNTYwYjQ2YjcuOTMwNTgyNTA4YmNkYmMyYy5mNGJhNTE1YmMxNjRjMjg0LjIwNmE1ZjIzNjRhMGUwMWUKICAgICBhOTZkNTgyNDk0OWExNzc2LjJiMTdiMDg1MDRhMDQ1NTYuM2ZmYzM1NWVhNjVkZWY1Yy5iMzMwYTg4ZDcwNDdlNjRkCkBAIC03MTYxLDEyICs3MTYxLDEyIEBACiAgICAgZWM4ZmJjNGFkZjA1MTAwZS44MzU2YzI2YmUwM2I5MjUzLjY3ZDI2NDgzMTYwOTA4NjMuNzc2N2Y0M2M4NzM2ZDFkNQogICAgIDYxNmZlZjVhY2I5NjJmODQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTdjZTk5ZTFiYzY2ZjdiZi5mZmZmZmZmZmY3N2RmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMmEwMDAwOTA1NGU3MDAuM2MwMDAwNTEwMDExMTUwMAogICAgIGE5NmQ1ODI0OTQ5YTE3NzYuMmIxN2IwODUwNGEwNDU1Ni4zZmZjMzU1ZWE2NWRlZjVjLmIzMzBhODhkNzA0N2U2NGQKICAgICA3MjBlZjA2ODM4YmY5YzA0LjMyOTg0NzNmNmMxNmEzNTQuZjFlYTkyOWRlNDY1ZjM2Yy44NzQxNWI0NjFkY2FhMjdjCiAgICAgZWM4ZmJjNGFkZjA1MTAwZS44MzU2YzI2YmUwM2I5MjUzLjY3ZDI2NDgzMTYwOTA4NjMuNzc2N2Y0M2M4NzM2ZDFkNQogICAgIDYxNmZlZjVhY2I5NjJmODQKLVZQQUREVVNXXzEyOChtZW0pCitWUFNVQlVTQl8xMjgobWVtKQogICBiZWZvcmUKICAgICAyMDI1Yzk4YzA0ZjY3N2I2Ljc1M2FiNjM1MjVmOGIwM2YuZmMxYjlkZjY3YjE5Y2U3ZS5mZGZlYTc3Y2Q4ZDQ2YmViCiAgICAgOGY1NGZkYmU0ZjYzNjc5Ny42ODVjZGM5NWE1MjRiODQ0Ljc3YjQ1NGNhNWFiZjEzMDIuMGZiYjU4ZjRjODUyNThiMApAQCAtNzE3NiwxMSArNzE3NiwxMSBAQAogICBhZnRlcgogICAgIDIwMjVjOThjMDRmNjc3YjYuNzUzYWI2MzUyNWY4YjAzZi5mYzFiOWRmNjdiMTljZTdlLmZkZmVhNzdjZDhkNDZiZWIKICAgICA4ZjU0ZmRiZTRmNjM2Nzk3LjY4NWNkYzk1YTUyNGI4NDQuNzdiNDU0Y2E1YWJmMTMwMi4wZmJiNThmNGM4NTI1OGIwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmMmMwZDVkOGUxODAuZmZmZmZmZmZmZmZmYzQ5YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDk5MDAwMDAwYTYwMDAwLjAwMDAwMDc4MDAwMDAwMDAKICAgICBmMTUxNjNkMzg5OTIyOTE0LmZiMzU5OTY0YzQ1YWVmNzkuZTc5MjQ3MDI1MjhjYTZjMy4xODE4ZjExMTliOTliZWE1CiAgICAgYzY1MGQxOGViODc5YjAyYgogCi1WUEFERFVTV18xMjgocmVnKQorVlBTVUJVU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjA0ODBlM2E3MTNkMWI5Zi45YmI2OGU4ZGIxNmM3NTA4LjU0ODMyOGFiOWI3YTk3MDAuOTQ2ZjdiM2RhM2NjNmM1OQogICAgIDQyNGVhNTgyNjI3MDNjYWMuNjdjNTAyZjg1OTgyNTc1Yy44Njc5ZDMxODFkMDQ5NTBjLmIzNTA3YjcyYTcwMjJiZjcKQEAgLTcxODgsMTIgKzcxODgsMTIgQEAKICAgICA0ZWFmY2U5MjVmNTU5MDQ0LmQxMTFiYThkOWY5M2QwY2QuZTk4ODY5MTA5MDg0OGE1ZC5iYjRjZDA3YTNiODI4NGZlCiAgICAgNWIwMTFkMjUwMmU0OTZiZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmFkODhmZmZmLmZmZmZmZmZmZTI4NGIwZjUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDZhMDgwMDAwMGIwMC4wMDA0MDAwMDZjMDAwMDAwCiAgICAgNDI0ZWE1ODI2MjcwM2NhYy42N2M1MDJmODU5ODI1NzVjLjg2NzlkMzE4MWQwNDk1MGMuYjM1MDdiNzJhNzAyMmJmNwogICAgIGM4YWM5MWQwMjg5ZjRmMDAuMmY0YTNkZmVhMGUwOGMzOS5lZjYxOTQxNWU1ODMyODQ3LjIyMDBjMzhkN2IzYjlmY2EKICAgICA0ZWFmY2U5MjVmNTU5MDQ0LmQxMTFiYThkOWY5M2QwY2QuZTk4ODY5MTA5MDg0OGE1ZC5iYjRjZDA3YTNiODI4NGZlCiAgICAgNWIwMTFkMjUwMmU0OTZiZQotVlBBRERVU1dfMTI4KG1lbSkKK1ZQU1VCVVNCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGRmZTkyNTdhZWM2YzkwMzYuMzBhMzU4MzJhMjFlM2EyNy4yN2U1ZjY5MDc1YTZkZTQ0LmQyM2E0ZTczYjk5MmY4ZmIKICAgICAyMWQwNjc2NjE2MjYyZjk0LmNhZDMyYzFlOGQ4NjhhNTMuMGU5NDZiZjIzYjI2NzNjYS4wNGMzM2RhY2ZkMzlhZWNkCkBAIC03MjAzLDExICs3MjAzLDExIEBACiAgIGFmdGVyCiAgICAgZGZlOTI1N2FlYzZjOTAzNi4zMGEzNTgzMmEyMWUzYTI3LjI3ZTVmNjkwNzVhNmRlNDQuZDIzYTRlNzNiOTkyZjhmYgogICAgIDIxZDA2NzY2MTYyNjJmOTQuY2FkMzJjMWU4ZDg2OGE1My4wZTk0NmJmMjNiMjY3M2NhLjA0YzMzZGFjZmQzOWFlY2QKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzY3OWZmZmZiMGNjZmZmZi5kNmZkOGMxZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDYyMDAwMDAwODYuMDA4OTAwMzk0NDAwMDAwMAogICAgIDUyY2Y4MmFmOTg2MTRiYWMuOTUxYjllODdjZDY1MGMzOC4wMGFlZjU4ODBkOWEyMWIwLmI3ODkyZDRkNDM4NGUxYmIKICAgICBlZjVlMjY4ZDdlM2ZkNTJmCiAKLVZQTVVMTFdfMTI4KHJlZykKK1ZQU1VCU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZTEzYTFiNTI0NGM0MDI4Ny5mYTdmNTRlNDI4ZmE0MGJmLjdmY2IzNWRjNWFmNGI1NDguYzJiMjAxOTQ1MGE2YjI2YQogICAgIGVhNjkwNjA4MzA5ZWEyNmYuZDA1ZTRlNjA2OGY2Yzk2Ny45MWU3MDYyY2ZmNTFmNDUzLjg1YzAzOGFmZjQ0ZmJhZTEKQEAgLTcyMTUsMTIgKzcyMTUsMTIgQEAKICAgICBhY2YwYjNmOGViODIyZTlkLjc5ZGNhYWRhNjY0NDhiMjQuOWM5NjQyNmUwM2FiMjMwNC43ZTI5MTNjNmQyYTYxZWJkCiAgICAgNmMxY2IxOTk0MzZjZjI3OAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MTVhZmVlODdlMWIyYTRjLmViYzBkNDVhMzkzYTU2MWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjU1MWM0YmVmYzdmZDE0Zi44MDk3MjVlOTIyN2Y5YzI0CiAgICAgZWE2OTA2MDgzMDllYTI2Zi5kMDVlNGU2MDY4ZjZjOTY3LjkxZTcwNjJjZmY1MWY0NTMuODVjMDM4YWZmNDRmYmFlMQogICAgIDY0MzdlNTFiZGU1OWYyOTIuYjEzOWVjMGU3MzYwYTRjZi4yN2JjMGJlMzU5MGIwNTAzLjI1YTMxNWM2MTZhMGY1NDQKICAgICBhY2YwYjNmOGViODIyZTlkLjc5ZGNhYWRhNjY0NDhiMjQuOWM5NjQyNmUwM2FiMjMwNC43ZTI5MTNjNmQyYTYxZWJkCiAgICAgNmMxY2IxOTk0MzZjZjI3OAotVlBNVUxMV18xMjgobWVtKQorVlBTVUJTQl8xMjgobWVtKQogICBiZWZvcmUKICAgICBjYjQ5NjgyZDg1ZmUyZGEzLjFlZTA2YzA5ZjNhNDkyM2MuMDQxMzA1YjA1Y2FmM2I5MS40ZWMwYTYzNzlhYmY4YjAzCiAgICAgNzc3Y2I1NmNiNTY5OGI2Ny4xNjUyMGNiYzkwNGI1OTFhLjJlYTk3ODdjNzJhYzcwNDMuOTg4ODM0YWNiOWQyNzlhYwpAQCAtNzIzMCwxMSArNzIzMCwxMSBAQAogICBhZnRlcgogICAgIGNiNDk2ODJkODVmZTJkYTMuMWVlMDZjMDlmM2E0OTIzYy4wNDEzMDViMDVjYWYzYjkxLjRlYzBhNjM3OWFiZjhiMDMKICAgICA3NzdjYjU2Y2I1Njk4YjY3LjE2NTIwY2JjOTA0YjU5MWEuMmVhOTc4N2M3MmFjNzA0My45ODg4MzRhY2I5ZDI3OWFjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFhOGI0MTQwMzM5NDA2ZjMuZDYwMGQ4ZjRmN2FlZDEwNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yYTk2NzM3ZjE2ZmQzNTdmLjgwYzg3ZjgwMWYxMzdmYTkKICAgICAyNjI0MDNhMDRkZjc5ZTcxLjA5ZWZmM2I0MDA1YTAyNDQuY2YyNjk3YTc2YjhjNTcyNS42MzFkYmE0NjAxMjdkNmFhCiAgICAgOWQ4M2FiNDQ2MTgwYmQ1OAogCi1WUE1VTExXXzEyOChyZWcpCitWUFNVQlNCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGRlYjZiNTljYmEwOTFhNWYuZTEzMGZiNmNlZDMzY2IwZC5iYmIyMzFkMjA5ZGE1ZGU5LmZlYTQzYWRkODc4ODgyYWQKICAgICA4NDAyZDRiY2E4NGMyODZiLjU5NzM3YTk0ZWI3NzBjZjUuNjMyODQ2NDExOTBlMGI3ZS4zY2IyZTZiYTMzNDcyMTI5CkBAIC03MjQyLDEyICs3MjQyLDEyIEBACiAgICAgNmExNDQzMDJiMDM2NGE0Ni5mMGM5ZjlhOTZmNDdiNTUzLjA1NWNlNmMyYmJjODUyMjUuNTRhZDQ2MTVhODNhYWZhZgogICAgIGU3MzNmMzZjYWE4ODE0MTIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmE2MGEzNDJjY2YwMDUzNi42YzRhYzk0MjM2MTZiMjA3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVlY2M2MDdmNWU0NmI5NTkuZTgwNWEwYTU3ZjBkNzI3YQogICAgIDg0MDJkNGJjYTg0YzI4NmIuNTk3MzdhOTRlYjc3MGNmNS42MzI4NDY0MTE5MGUwYjdlLjNjYjJlNmJhMzM0NzIxMjkKICAgICBlOWIyMDUxMGM2ZDgyNDJhLjZhYjdmYjA0NjJjZjFiNTIuNWQ5ZDJmNmRjYjg0NDlhZS42NTFjMTYyODhhZDNmMmM2CiAgICAgNmExNDQzMDJiMDM2NGE0Ni5mMGM5ZjlhOTZmNDdiNTUzLjA1NWNlNmMyYmJjODUyMjUuNTRhZDQ2MTVhODNhYWZhZgogICAgIGU3MzNmMzZjYWE4ODE0MTIKLVZQTVVMTFdfMTI4KG1lbSkKK1ZQU1VCU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZjk3ODk4MTlhYmM3ZGYxOC42NDcyOGFmZjAzZjRkNjZiLmM2NzVmMjZkMmRlYzk1MjIuYjZiMjY5YWM4NzY1NjM5MAogICAgIDY2NDliMTA4YzgwNWNhZjAuMzExOWQ2NzM1YTllMDM0Ni5jYTg2NjIzZGI5Y2E3OGViLmNlZWNiMzk4YzhlN2I4OWIKQEAgLTcyNTcsMTEgKzcyNTcsMTEgQEAKICAgYWZ0ZXIKICAgICBmOTc4OTgxOWFiYzdkZjE4LjY0NzI4YWZmMDNmNGQ2NmIuYzY3NWYyNmQyZGVjOTUyMi5iNmIyNjlhYzg3NjU2MzkwCiAgICAgNjY0OWIxMDhjODA1Y2FmMC4zMTE5ZDY3MzVhOWUwMzQ2LmNhODY2MjNkYjljYTc4ZWIuY2VlY2IzOThjOGU3Yjg5YgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMzNlN2RmOWM4MzhkNjM2LmE4MTgwMjIwMTQyM2M4MzAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDQ4MDcwZDA4Y2RlN2ZjOS4xODNhODBlYzQxODI4MDBiCiAgICAgYzBiZjJmNWNjNGFjZjJjMC5iODcyNmU3MTg2ZTIzM2NkLmM5MGI5M2IzYTg1ZTM3MWUuYTAzNjhkMjExZmNiMWQzZgogICAgIDEyZTAxNTk4NmM0NWE1MzEKIAotVlBNVUxMV18xMjgocmVnKQorVlBTVUJTQl8xMjgocmVnKQogICBiZWZvcmUKICAgICA1YTlkNTRjMDlmZDU2MTcyLjY2ZmM4ZDlhZGMyZWE3MTEuMjliYmIyZDM5Mzk2YWRkMS43YjE3NGQyZjQ0MmM4YWRmCiAgICAgZDNiODQ2MDQ1NTA2OGRhZi5kNmY0NGVjOTdlZGQ2ZGUzLmRlN2VlYjVjMTQ2NGI5M2EuY2JiODZkNjgxZTYzZDE0YgpAQCAtNzI2OSwxMiArNzI2OSwxMiBAQAogICAgIGNkM2IzNDk1Yjk3YjIzY2IuODg0OWVmYWVkNmY3MWNiOC44NTlkMmQ5MmU0ODQ3N2VlLmIxZWNkMGJlZjkzOTI1ZDMKICAgICAwMDE2MGJiMzMzZjFhYjQ3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU5NDY2Njc4OTM5MDI5ZWMuMDVhMGIzMzAwZjBiNTdkMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OTdmYmU3ZjMwN2Y4MDRjLjFhY2M3ZjdmMjUyYWFjNzgKICAgICBkM2I4NDYwNDU1MDY4ZGFmLmQ2ZjQ0ZWM5N2VkZDZkZTMuZGU3ZWViNWMxNDY0YjkzYS5jYmI4NmQ2ODFlNjNkMTRiCiAgICAgZGI3ZWU4ZDIyYTY0NjQ5My5lZTc1ZjBkNmM4YzcwMDYxLjM0MDUxNTc4YTZkYTkzYjUuOTRiYjcwNDk1MTBlYzU4ZQogICAgIGNkM2IzNDk1Yjk3YjIzY2IuODg0OWVmYWVkNmY3MWNiOC44NTlkMmQ5MmU0ODQ3N2VlLmIxZWNkMGJlZjkzOTI1ZDMKICAgICAwMDE2MGJiMzMzZjFhYjQ3Ci1WUE1VTExXXzEyOChtZW0pCitWUFNVQlNCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDViMDc5YzE0MWE0MTE0MTUuMDQzYjI4Yjk5ZWQ4MDYwMy44MjNkYzUzY2MzNzk3YzE0LjJlOTIyZTE4NmJlY2EwOTAKICAgICBhMDg5ZmZjZWNiMzUxYzZhLmRlY2FiZmFiNzYwNzQ4ZTYuYjYxZGYwNmJhYzVhZGRhMC44YjMwMTQ3NmQ2YTA0YjQ4CkBAIC03Mjg0LDExICs3Mjg0LDExIEBACiAgIGFmdGVyCiAgICAgNWIwNzljMTQxYTQxMTQxNS4wNDNiMjhiOTllZDgwNjAzLjgyM2RjNTNjYzM3OTdjMTQuMmU5MjJlMTg2YmVjYTA5MAogICAgIGEwODlmZmNlY2IzNTFjNmEuZGVjYWJmYWI3NjA3NDhlNi5iNjFkZjA2YmFjNWFkZGEwLjhiMzAxNDc2ZDZhMDRiNDgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWVlOWIwMTQwNDhhZDA4MC4wMTYwMWYxMGJiODA1ODgwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM0ZTAyYjJmZTllMTgwOGMuODA3ZmU2NWU4MGI0N2Y3ZgogICAgIDUzNzMyZGY5ZjkzYmY4NTcuZTdjNGM3YTQ2ZDA3ZGM1Zi40MGQwMzI2MWRmNjY5MGZhLmQxOTY3ZjY1YzkxYjE2YTgKICAgICA3MmY2ZmRjZjhhZjlhZmE5CiAKLVZQU0hVRkhXXzB4MzlfMTI4KHJlZykKK1ZQU0xMRF8weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDM3MzA1MGMxOWY1MmI5NmYuN2I3M2VmNDJhZTY1NDM0OC5jZWM3MzA4NWM0ZjFhNjRkLjRlM2M0MWZmNjJhYTViMjAKICAgICA3YzhlNzRhNWE0YjM3MGE3LmZiMzU3Mzk0OWQ2MzFlNmYuYzg4OTJjZTI3ZWRkYmY5Ni4wNmMzOTVlZjUxN2MxNzI2CkBAIC03Mjk2LDEyICs3Mjk2LDEyIEBACiAgICAgZjZlODIwZjhmMWJiZDkxYi43NzJlYjIwMDk3MGI2ZjExLjYxN2FjZWM0ODllOGQxZWMuZTg1NWY4NzZlMGZjNTE4NQogICAgIGM5ZjgwMWU0YjljMTQ3MzUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDFlYzYxN2FjZWM0ODllOC5lODU1Zjg3NmUwZmM1MTg1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJmNTlkODgwM2QxYTNkODAuMGFiZjBlYzAxZjhhMzBhMAogICAgIDdjOGU3NGE1YTRiMzcwYTcuZmIzNTczOTQ5ZDYzMWU2Zi5jODg5MmNlMjdlZGRiZjk2LjA2YzM5NWVmNTE3YzE3MjYKICAgICA5ZDVkNjVlOTM2YTcxMmZjLmIwODQzNWRhZTE0MTQzZjkuMmY1NmI3MjkzNjU2NjRlNy40NTMyYTgxZWM3ZTk4MDM5CiAgICAgZjZlODIwZjhmMWJiZDkxYi43NzJlYjIwMDk3MGI2ZjExLjYxN2FjZWM0ODllOGQxZWMuZTg1NWY4NzZlMGZjNTE4NQogICAgIGM5ZjgwMWU0YjljMTQ3MzUKLVZQU0hVRkhXXzB4MzlfMTI4KG1lbSkKK1ZQU0xMRF8weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGM1ZTczZDU1NmQ0NDFkNzYuZTM3ZDlmM2U2Zjc5MDJiMC4yYWZkNjRmMWRhY2U1ZWU1LmI4NDE2YjIxMTIyMDQxNTAKICAgICBiOGVkMmFiMzE5OTI5MTczLmMwNjZlMDI3NGY2ZmM4NjYuYTZiZWNhOWNjNzk1Y2M5ZS45MmY2OGNhYjZkODlmMWMwCkBAIC03MzEwLDEyICs3MzEwLDEyIEBACiAgICAgYzFhOGRhOGY4NzY0ZDgwZAogICBhZnRlcgogICAgIGM1ZTczZDU1NmQ0NDFkNzYuZTM3ZDlmM2U2Zjc5MDJiMC4yYWZkNjRmMWRhY2U1ZWU1LmI4NDE2YjIxMTIyMDQxNTAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmFmZDVlZTVkYWNlNjRmMS5iODQxNmIyMTEyMjA0MTUwCisgICAgYjhlZDJhYjMxOTkyOTE3My5jMDY2ZTAyNzRmNmZjODY2LmE2YmVjYTljYzc5NWNjOWUuOTJmNjhjYWI2ZDg5ZjFjMAogICAgIDdmZDc0MmVjZDhiNzVkNTkuZTlmMWRmMWYyYTI5NjhlYS5jNzNkNWRlYTc5NmQ3NDZhLjQ5ZTcyY2NlMzdhZjFkZTcKICAgICBmNDcyMDRlYmM3YmQzZDU0LmI5Njg5NjkyOWYzMjFlZTcuNmE0NjlhYzgwYzYxMTM3NS4zYTVlNDdmNjBjMWYwMTcyCiAgICAgYzFhOGRhOGY4NzY0ZDgwZAogCi1WUFNIVUZIV18weDM5XzEyOChyZWcpCitWUFNMTERfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICAzYjExZTAwNjQ0MGFkZjYzLmY0ODhlOTljMDFiMmVmOGYuOGUxODAzZWM0NzE2MjYwYS42OWE0ZmUyMjlkN2Q2NGViCiAgICAgMDJlNDU1YzVlMDllNTIyMS41YmU1NmVlYmEzYTEyZDM3LmMzNGMyMDk5YzE2MmJiZmYuYTEyNTA0ZTU0N2NlMjVmNwpAQCAtNzMyMywxMiArNzMyMywxMiBAQAogICAgIGVhZmM3Y2NmMjNiZDZiODQuY2VhOTRhMTM4ZDlmNDA3Yy5iYzc0NjA5ZDk0NWY3ZjBjLjJjYmJlNjUyNTkzY2UyODIKICAgICAzNzY5YmJkNGY4NzE1NjVhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmMGNiYzc0NjA5ZDk0NWYuMmNiYmU2NTI1OTNjZTI4MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZThjMTNhMDhiZWZlMTgwLjk3N2NjYTQwMjc5YzUwNDAKICAgICAwMmU0NTVjNWUwOWU1MjIxLjViZTU2ZWViYTNhMTJkMzcuYzM0YzIwOTljMTYyYmJmZi5hMTI1MDRlNTQ3Y2UyNWY3CiAgICAgNzM2ZjM1MzlmN2FiNmNmMy4wNTU3MTBjNGM4OTdiNDc3LmIzNTJlYjA2YTZhMDFhNzEuZWU5MzI4ZmIyNzVlMTBjNQogICAgIGVhZmM3Y2NmMjNiZDZiODQuY2VhOTRhMTM4ZDlmNDA3Yy5iYzc0NjA5ZDk0NWY3ZjBjLjJjYmJlNjUyNTkzY2UyODIKICAgICAzNzY5YmJkNGY4NzE1NjVhCi1WUFNIVUZIV18weDM5XzEyOChtZW0pCitWUFNMTERfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICBlYjY5MjI2ZjIwMGIyOTc5LmMzZDkyN2YyMDM2MTg5ODAuOTJhNjk4YzQwZGM1OGM3Mi4zOTAwNzljYzI3MjgyNjdlCiAgICAgMjQ4Nzk3MGVlZTE2MTcwYS41YTUwMzAwZDMwMjIwMjk0LjJkMWI3N2MzNjQxNjU1ODQuODU0MDM0ZmVmYTg5NGE3MQpAQCAtNzMzNywxMiArNzMzNywxMiBAQAogICAgIGUzMzYwM2RkMGViMDAxMGIKICAgYWZ0ZXIKICAgICBlYjY5MjI2ZjIwMGIyOTc5LmMzZDkyN2YyMDM2MTg5ODAuOTJhNjk4YzQwZGM1OGM3Mi4zOTAwNzljYzI3MjgyNjdlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkyYTY4YzcyMGRjNTk4YzQuMzkwMDc5Y2MyNzI4MjY3ZQorICAgIDI0ODc5NzBlZWUxNjE3MGEuNWE1MDMwMGQzMDIyMDI5NC4yZDFiNzdjMzY0MTY1NTg0Ljg1NDAzNGZlZmE4OTRhNzEKICAgICBiZThlOTY5ZDdkOWNkYzM5LjBiYWU5NjhlNDk4YzEzNmMuN2JkNDYxZmRhZjlkNTdkZi5mZTgxOGM5ZWFhMGQyODkxCiAgICAgOTU0YzliMDhlYWFiMzMzMy4zMjNlNTJlMGU3MmNmOWI0LjU4OWRkNDVjMGE2NjRkYWUuZmUwZjdkMWFkMjQxZmM4YgogICAgIGUzMzYwM2RkMGViMDAxMGIKIAotVlBTSFVGSFdfMHgzOV8xMjgocmVnKQorVlBTTExEXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMDc0MTFiNTNmYmU2NzRiYy44NDhiMjMzYjUwNGVkOTI0LjJiNGU2MTZmYTk4ZGVkMTcuYTA0MjRiY2U5MDdlZjUxZQogICAgIGM4N2RjMGU5MzQ3MDkxNGIuNjkxOGE5MjNjYzkyOGEzNy41MjI4YzBhNzI4M2MyZTQxLjJlOGY0MjNlNWRmMDA5NWIKQEAgLTczNTAsMTIgKzczNTAsMTIgQEAKICAgICA4ZGI5YTEyMGZkYWRiOGIyLjgyNGI5ZmJlNzMyYWZjNzYuOWE2ZTViYzNkM2IxODI5ZC45MTUwYTFjODNmMTM2N2VhCiAgICAgMWQ1YzAxYmE4YWRjMjk5NAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MjlkOWE2ZTViYzNkM2IxLjkxNTBhMWM4M2YxMzY3ZWEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGRjYjc4NjA3NjMwNTNhMC4yYTE0MzkwMGUyNmNmZDQwCiAgICAgYzg3ZGMwZTkzNDcwOTE0Yi42OTE4YTkyM2NjOTI4YTM3LjUyMjhjMGE3MjgzYzJlNDEuMmU4ZjQyM2U1ZGYwMDk1YgogICAgIDgwMzdlZTA5NTZkOTk0NjMuMWZiZmE5YWE3OTgyMDI5OS4wMzFhNmFmNTAyYzRmNmRmLmUwNGYzNjk4OGVjODQ1OTAKICAgICA4ZGI5YTEyMGZkYWRiOGIyLjgyNGI5ZmJlNzMyYWZjNzYuOWE2ZTViYzNkM2IxODI5ZC45MTUwYTFjODNmMTM2N2VhCiAgICAgMWQ1YzAxYmE4YWRjMjk5NAotVlBTSFVGSFdfMHgzOV8xMjgobWVtKQorVlBTTExEXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNWY0MGQyNWE4ZTJmNDhiYi40OTUwZDU5YmMzNzkzYWUxLjZlOGEwODQ5ZDc5NzM1ZjkuNzM3MThmN2UzNjhmMGUyNgogICAgIDM1Yzg4ZTk0NjQxOTdmOGEuMTE0Nzg3ZTQ0N2M4NTY5ZS5iZTQ2NWUzOWMxZDQ2OTRmLmVhNmYwMzkzYzhlYmQ1MjcKQEAgLTczNjQsMTIgKzczNjQsMTIgQEAKICAgICA5YTQxYjExZmFiNjdlYWIwCiAgIGFmdGVyCiAgICAgNWY0MGQyNWE4ZTJmNDhiYi40OTUwZDU5YmMzNzkzYWUxLjZlOGEwODQ5ZDc5NzM1ZjkuNzM3MThmN2UzNjhmMGUyNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZThhMzVmOWQ3OTcwODQ5LjczNzE4ZjdlMzY4ZjBlMjYKKyAgICAzNWM4OGU5NDY0MTk3ZjhhLjExNDc4N2U0NDdjODU2OWUuYmU0NjVlMzljMWQ0Njk0Zi5lYTZmMDM5M2M4ZWJkNTI3CiAgICAgN2FiZmIyNTQyYmE1OGIyZS40MWVjYjI2OTIyMjY0Nzk1LjUwNGQxZjc4NGNlZTUzYTMuNWJiM2IyNmMyNDUwMTQ0YwogICAgIDA5ZjNiYjg2ZmNkZjI4ZDMuMzY4OTUyOTVmMzIwNGI3Mi5mZTY5YzdmNDk0ZWZiMDIyLjIxOGI5ODc3ZTY0YjA3NDAKICAgICA5YTQxYjExZmFiNjdlYWIwCiAKLVZQU0hVRkxXXzB4MzlfMTI4KHJlZykKK1ZQU1JMRF8weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDIxMjJmOWQwMGYzMGY4NDcuYzAyZTI0MTdmNmQ0MTJhNC40YTZjNjNkMzUzNDE5YmUwLmE2NjdkMDk4YjZlNTNjZjcKICAgICAxMTdiNmRmNmFjMzI2ZWIyLjdhM2Q2YWYyMzI4ZjA1Y2UuZGFkZmUyOTFlMDE1NzY4Yi4yMzEzYjg1MGNlZGNiMjUwCkBAIC03Mzc3LDEyICs3Mzc3LDEyIEBACiAgICAgYTFiZmM2NTEwODEzODFiMy42NjA3NzkzNWU2ODhmNGRjLmRlYTgxNzNhZjAwOGI4NGIuMGJhNDEyYWQ0ZGZhNTAzOAogICAgIDJlMjE3YzI5ZWQzOWVlMWYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGVhODE3M2FmMDA4Yjg0Yi41MDM4MGJhNDEyYWQ0ZGZhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA2ZjU0MGI5MDc4MDQ1YzIuMDA1ZDIwOTUwMjZmZDI4MQogICAgIDExN2I2ZGY2YWMzMjZlYjIuN2EzZDZhZjIzMjhmMDVjZS5kYWRmZTI5MWUwMTU3NjhiLjIzMTNiODUwY2VkY2IyNTAKICAgICBjODk1MDhmZDIxZmE4NzlkLjEyZWQwNzAyY2UxY2JjN2QuNDIyZmNhM2EzNjI5MTYyMS41MDM4ZjkwOGY3ZGZkMDU2CiAgICAgYTFiZmM2NTEwODEzODFiMy42NjA3NzkzNWU2ODhmNGRjLmRlYTgxNzNhZjAwOGI4NGIuMGJhNDEyYWQ0ZGZhNTAzOAogICAgIDJlMjE3YzI5ZWQzOWVlMWYKLVZQU0hVRkxXXzB4MzlfMTI4KG1lbSkKK1ZQU1JMRF8weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDk3N2NiNDY5ZjJhOTY4M2EuZjc0NGEzNWVmZDBhOTZhMC41MDVhM2I3Njk1ZGU2ODE4LjBhOTVjNWZlYWIzZTk4YjgKICAgICAyMDgxMzc1YTc5NTU3OGIzLjI4NmY5YzkwOWQ2YTAzMTIuYWRiMWM5YjFmODJiZDU1Yy4yMzQ0ZDBmMDAyNThmMjEyCkBAIC03MzkxLDEyICs3MzkxLDEyIEBACiAgICAgOGFjY2ZhMTljYTcxMzE2OQogICBhZnRlcgogICAgIDk3N2NiNDY5ZjJhOTY4M2EuZjc0NGEzNWVmZDBhOTZhMC41MDVhM2I3Njk1ZGU2ODE4LjBhOTVjNWZlYWIzZTk4YjgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTA1YTNiNzY5NWRlNjgxOC4wYTk1OThiOGFiM2VjNWZlCisgICAgMjA4MTM3NWE3OTU1NzhiMy4yODZmOWM5MDlkNmEwMzEyLmFkYjFjOWIxZjgyYmQ1NWMuMjM0NGQwZjAwMjU4ZjIxMgogICAgIGE2ZmM4MGU2OWQ0OWRiYjcuOGU4ZGFjNTQ4M2JmMDNiMy41YWQ3OWZkMjJhNzlmN2Q1LjgzZmYzNTdkOTFlMTAxMDUKICAgICAwNmI5MGJmYjdiOTI0ZDcxLjg3ZWJjZjE0NGM5NmQ0MmYuMzE5OTM5YzU0N2Q3OGFhZS44NzEzZWYxMmY1NjYwMjNmCiAgICAgOGFjY2ZhMTljYTcxMzE2OQogCi1WUFNIVUZMV18weDM5XzEyOChyZWcpCitWUFNSTERfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICBlYTc2NTIwMGFiOTBjOTMyLjFhODM1NDg0MmUzYjg5MGUuNmRkMzAxM2U5MzdhYjAzMy4xMGM0MTQ3NjZjNGU0YTE0CiAgICAgMDI1ZGY0MzIzNDRmMDc0NC5iZjI4ZDg2ZGQzNTE0Y2I5LjllOTEzZTNkZjRmN2QzNmIuZDEyMmFiZDFiNGVjZjIzMwpAQCAtNzQwNCwxMiArNzQwNCwxMiBAQAogICAgIGNhMTEwMzI3YjBkYTY0ZjQuMmQyZTdlMGY2MGYxNTZlYy40Y2MzY2I2OTc3ZWVlMjI1LjZjYTlmZTM2MWZjYmVjNGEKICAgICBmZjZiYjExODdhMjNiNzlhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRjYzNjYjY5NzdlZWUyMjUuZWM0YTZjYTlmZTM2MWZjYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMjY2MWU1YjAzYmY3NzExLjAzNjU0ZmYxMDBmZTVmNjIKICAgICAwMjVkZjQzMjM0NGYwNzQ0LmJmMjhkODZkZDM1MTRjYjkuOWU5MTNlM2RmNGY3ZDM2Yi5kMTIyYWJkMWI0ZWNmMjMzCiAgICAgMmVjZGRiMWIwMjM5Mjc0Yi5kMjcyMTJhMjg1ZGY1MjlmLjc0NzM4MzdkMGQ5YTdiODIuNTE3ZjdhYzMzY2JjM2YzNgogICAgIGNhMTEwMzI3YjBkYTY0ZjQuMmQyZTdlMGY2MGYxNTZlYy40Y2MzY2I2OTc3ZWVlMjI1LjZjYTlmZTM2MWZjYmVjNGEKICAgICBmZjZiYjExODdhMjNiNzlhCi1WUFNIVUZMV18weDM5XzEyOChtZW0pCitWUFNSTERfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICBlNDkwMTE1NDY5ZDM1YTUzLjMyNzY2OGMyZGJiZWZjZWIuYWQyODk4YTA4MTk0MTVjYi44M2NmMTI2ZmQwN2Y0NWZmCiAgICAgZjhlNTk5ZDUwNmU0OTFhMS5jMjQ4MDY1ODFlNzIyOGRjLjJlMmNkZDQxMDRkMjRiNjkuNzNlMTU0ZmJiNGRhZTBiZApAQCAtNzQxOCwxMiArNzQxOCwxMiBAQAogICAgIDM4MzlkNmYyYjUxYTU2MDUKICAgYWZ0ZXIKICAgICBlNDkwMTE1NDY5ZDM1YTUzLjMyNzY2OGMyZGJiZWZjZWIuYWQyODk4YTA4MTk0MTVjYi44M2NmMTI2ZmQwN2Y0NWZmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFkMjg5OGEwODE5NDE1Y2IuODNjZjQ1ZmZkMDdmMTI2ZgorICAgIGY4ZTU5OWQ1MDZlNDkxYTEuYzI0ODA2NTgxZTcyMjhkYy4yZTJjZGQ0MTA0ZDI0YjY5LjczZTE1NGZiYjRkYWUwYmQKICAgICAxNzM2YzY4OTcwNjQxYWFmLmQ1ZDNkYTU1MTY4MTI3NzEuOGMwNWM3ZGUwNGJhYjRmMS43OTQ2OGQ3N2JlOGFlZTBiCiAgICAgMWQ0ZjEyNWJjMDVlYWZhYS5jOTYzZGYyNTVlNzgzNDU5LmEzODFkNDY0OWQ1NTBiOTAuZjE0YWJhNTA4YTFiYWM5NAogICAgIDM4MzlkNmYyYjUxYTU2MDUKIAotVlBTSFVGTFdfMHgzOV8xMjgocmVnKQorVlBTUkxEXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYTg1ZWRkY2FkYTEyMjcwYS5lNmZjZmIzNzE0ZGYwZGJkLmY5NDQxMTM1OTNlMjhhM2UuNGY2YTdmYmRlY2IxMGQ3MgogICAgIDllMDdjYzQyOTY4ZjVjNGUuNGUwOGZjMDk4OGYyZjAxNS5jMGMxNmNlZjUwNGI2NmNkLjZjOGQ0NWQ3MGNkOTc2YzIKQEAgLTc0MzEsMTIgKzc0MzEsMTIgQEAKICAgICA4YzEwNGVjNzQxNGFlMjQ0LjZiNzEzNjQwM2VmZjMzNDMuODhjMzhlMTVkMzRiOWU5Ny42OWIxMGVmYTMyYmY2YzVlCiAgICAgMDE0YTBhZGM2ZTk0NzEwMgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44OGMzOGUxNWQzNGI5ZTk3LjZjNWU2OWIxMGVmYTMyYmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDQ0NjFjNzAwNjlhNWNmNC4wMzRkODg3NzAxOTVmYjYyCiAgICAgOWUwN2NjNDI5NjhmNWM0ZS40ZTA4ZmMwOTg4ZjJmMDE1LmMwYzE2Y2VmNTA0YjY2Y2QuNmM4ZDQ1ZDcwY2Q5NzZjMgogICAgIDc2N2U5ZGM4ODUxZTMxN2QuMzE0MTkxYmUzN2EzMTNkZS43YzI4ZWNjMTMxNDAwM2IxLmQ2YjZhMDlkMWFkYTAxYWQKICAgICA4YzEwNGVjNzQxNGFlMjQ0LjZiNzEzNjQwM2VmZjMzNDMuODhjMzhlMTVkMzRiOWU5Ny42OWIxMGVmYTMyYmY2YzVlCiAgICAgMDE0YTBhZGM2ZTk0NzEwMgotVlBTSFVGTFdfMHgzOV8xMjgobWVtKQorVlBTUkxEXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgN2E0YzEwMmVlZDY2Y2NjNS4zYzA5ZGFhYjY5OWZhYTRmLmQ4NjU2ODdjYjgxMTBjNzEuM2ZkZjRkNTlkMmZiNzMyYgogICAgIGIwODU5ZGRjYzg0MDNiZDIuZTJiNTNkZTA5NmFhYzY0YS41NGU5YTI1ZmMxZTU1OTkzLmZmYzgyNWY4YzlkOWJlMTgKQEAgLTc0NDUsMTIgKzc0NDUsMTIgQEAKICAgICAwNTQ3MWQyZjk5MDliOGIwCiAgIGFmdGVyCiAgICAgN2E0YzEwMmVlZDY2Y2NjNS4zYzA5ZGFhYjY5OWZhYTRmLmQ4NjU2ODdjYjgxMTBjNzEuM2ZkZjRkNTlkMmZiNzMyYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kODY1Njg3Y2I4MTEwYzcxLjNmZGY3MzJiZDJmYjRkNTkKKyAgICBiMDg1OWRkY2M4NDAzYmQyLmUyYjUzZGUwOTZhYWM2NGEuNTRlOWEyNWZjMWU1NTk5My5mZmM4MjVmOGM5ZDliZTE4CiAgICAgN2ZiZjJiZDMxZTJlNzg1Ni5kYTVmNzRkMjY3ZjY3MmUwLmJiYzk2MGQ0NzY4OGQ4ZDYuMjJjOTEyNWU1NDczYmEwYQogICAgIGMzYzczOGZkMDgzZDQwN2MuODA1NTdhZWQ3NTEwZWFiZC5lOWQwMWVjNmYyMDU0MzY2LjA2MzAxMWY3MTA1NWE1YWYKICAgICAwNTQ3MWQyZjk5MDliOGIwCiAKLVZDVlRQUzJEUV8xMjgocmVnKQorVlBTUkFEXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgN2M1YjMyNzM4YTFkMzJiYy41ODY5M2Y0N2E0Nzg0ZTcxLjMwZTE0YTlkNWU4MjY5OGUuYjljYzU5MjM1MjY4NTY2ZQogICAgIGM4Yjk0YzJkN2YxYzRkN2QuMTk3MGJkOWUwZWViNWY2MS40NjUwZTM0ZWJlZGIyY2ZmLjA5ODc4YmQ2YjJiZWNmMWIKQEAgLTc0NTgsMTIgKzc0NTgsMTIgQEAKICAgICA0YTdkODBiN2U3MGQ1OWQwLjk0ZTEwYTFmYmFhYjdhZGYuMTQwNzU5NjQ1MTZiNmQ2Zi45NjZkYzllZWRmNzBkZTEyCiAgICAgOGEzMGNkMmJlNWU1ZWNiNQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMzQzOTAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBhMDNhY2IwMjhiNWI2Yi5mY2IzNmU0ZmZlZmI4NmYwCiAgICAgYzhiOTRjMmQ3ZjFjNGQ3ZC4xOTcwYmQ5ZTBlZWI1ZjYxLjQ2NTBlMzRlYmVkYjJjZmYuMDk4NzhiZDZiMmJlY2YxYgogICAgIDQzYWE2OGNhMTU5MzQ2YTAuZTRhYTJjZWM2MWEzMmY3Ny4xZWVlM2U2ZDMwYTQ2ZWJiLmI0Y2UzMmNiMmQxMjY4OTgKICAgICA0YTdkODBiN2U3MGQ1OWQwLjk0ZTEwYTFmYmFhYjdhZGYuMTQwNzU5NjQ1MTZiNmQ2Zi45NjZkYzllZWRmNzBkZTEyCiAgICAgOGEzMGNkMmJlNWU1ZWNiNQotVkNWVFBTMkRRXzEyOChtZW0pCitWUFNSQURfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICA2ZWUzYjg2ZjVhN2M0ZmFjLjNhN2Q5MjVmOTIxNmMyYmEuMDRlM2QyMjIzNDBmZmJjNy44M2U3MmVhMWJjYmI2M2M3CiAgICAgMWM1MTA4YTQ1YjQxYzMyMy42ZGY1OTkyZGIxM2JiYzA5LjEyN2EwMGUwZWJkYzcwNTkuYzlkOWJiOGUwZDIxOGQ2ZQpAQCAtNzQ3MiwxMiArNzQ3MiwxMiBAQAogICAgIDM2MWE4NmI2ODA0OTk5ZjkKICAgYWZ0ZXIKICAgICA2ZWUzYjg2ZjVhN2M0ZmFjLjNhN2Q5MjVmOTIxNmMyYmEuMDRlM2QyMjIzNDBmZmJjNy44M2U3MmVhMWJjYmI2M2M3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDFjNTEwOGE0NWI0MWMzMjMuNmRmNTk5MmRiMTNiYmMwOS4xMjdhMDBlMGViZGM3MDU5LmM5ZDliYjhlMGQyMThkNmUKICAgICA3MjQ4MzhiODAzNDEwNDQ4LjQwMzM5MjhmZTEwNzg0NmEuOTk3MzEwNDdmYzFkOTJjMS40MTJiZmM5OWUxMjcyNjExCiAgICAgNGI5MmM0OTU2ZTg3Y2U0NS4wZjgxNzdmMGJkMDc1NTg5Ljc0OWE3ZjQyODJkZTIwMmMuNDcyN2ViMmRkNDVjNmM1YgogICAgIDM2MWE4NmI2ODA0OTk5ZjkKIAotVkNWVFBTMkRRXzEyOChyZWcpCitWUFNSQURfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICA2YzUwYzdhMDg0N2NlOTk3LjgyZmMyOTI5YmExZmRjNDYuMzcyYzQ2YmNlMmM1NmQxMS44MWJhYzhiZDlhMmNkNGM2CiAgICAgNDMxNGFkNTc3YTgwOWFlMC5mNTUyZTE1ZjAwMTZlYjc4LjEyN2ZmYTVmZWJjZjA2YWYuOWFhMTY3YTU2MDEyNmJiYQpAQCAtNzQ4NSwxMiArNzQ4NSwxMiBAQAogICAgIDQ5N2E1MGRkYWQyZDBhMjUuZmFmMTNmNjBmMDRmZmExZS41NDUyMDJkYjFhZjVhZGRiLjY0ZWY5ODY3NjNkODMxNjMKICAgICBjZGVmMjExYmQ5Y2ZkOTZmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMmEyOTAxNjAwZDdhZDZlLjAzMjc3Y2MzMDMxZWMxOGIKICAgICA0MzE0YWQ1NzdhODA5YWUwLmY1NTJlMTVmMDAxNmViNzguMTI3ZmZhNWZlYmNmMDZhZi45YWExNjdhNTYwMTI2YmJhCiAgICAgMTliNDMxNDdmZWUyZTY4MC43ZTYwNmEyMjVlNzdiNjA3LmZkYzg4ZjQ1NzRiMTVjMGUuOWQxOWQ4ZTRlZTlkYTEzNQogICAgIDQ5N2E1MGRkYWQyZDBhMjUuZmFmMTNmNjBmMDRmZmExZS41NDUyMDJkYjFhZjVhZGRiLjY0ZWY5ODY3NjNkODMxNjMKICAgICBjZGVmMjExYmQ5Y2ZkOTZmCi1WQ1ZUUFMyRFFfMTI4KG1lbSkKK1ZQU1JBRF8weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGIyZTVmMWVhNmM4ZTUyODUuMmViNDA3ODMyMmVkNDE3OS40NmQzZGQwNGQxYTk3M2VhLjczNjg0ZDhiNzkyYTMzYzIKICAgICBmMDlkODNjMjM4MjI1YmQzLjI2YWM1MWE3ZmFhZmM4MjguM2NkMGJlZmExZDkxZGQ5Ni5iNjU3NmVjMzJjZDkyYjZlCkBAIC03NDk5LDEyICs3NDk5LDEyIEBACiAgICAgZWYzMmE4Y2M1NzQzMTVjYwogICBhZnRlcgogICAgIGIyZTVmMWVhNmM4ZTUyODUuMmViNDA3ODMyMmVkNDE3OS40NmQzZGQwNGQxYTk3M2VhLjczNjg0ZDhiNzkyYTMzYzIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDY5ZWY4MDAwMDAwMC44MDAwMDAwMDgwMDAwMDAwCisgICAgZjA5ZDgzYzIzODIyNWJkMy4yNmFjNTFhN2ZhYWZjODI4LjNjZDBiZWZhMWQ5MWRkOTYuYjY1NzZlYzMyY2Q5MmI2ZQogICAgIDY0ZTI1NDhlNWI5NmFlODIuOGJhZjJhYjNkMGZlZGJkZi5iYWI1NjAyZmYxMTNmNDRmLjc5NmI2MGVkY2Y5MGQxOGMKICAgICBlODgyZGUzYWVlZjcwOGMxLmJhMDk4ZjE1NDA2NmI2NGEuOWE0ZTNlOGQ2ODNjNzM0MS4xOGYwMWY3N2ZmZGE2MGM3CiAgICAgZWYzMmE4Y2M1NzQzMTVjYwogCi1WQ1ZUUFMyRFFfMTI4KHJlZykKK1ZQU1JBRF8weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDU5N2NmNjU3NzQ1ODJjNDcuNTk0NzlmYjIwZjRmMjViYS4xMDA1N2EzOGU3NzQ5NTE0LmI5NjdkNDAxOWYxNzE3OTcKICAgICBiNDFjMDU4NmYyYTRlMWUzLjkzZmUxMmUyZGFhZGMxOWEuZTdmMWU5ODg2MWIzYjNlYS5mM2NjOWY3OGIyYjE5YjdlCkBAIC03NTEyLDEyICs3NTEyLDEyIEBACiAgICAgYWE4OTU2N2U3ZTEzMTMzMC5kMzcyZmYxYWRiYTQ2NGJkLjhjYzQ0MTVmM2NmNTllNjguMjlhOGMwMWJkOTRmMzdhZQogICAgIGRjYjkwZjIwMjU2YmM1NGUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZjNjYyMjBhMDFlN2FjZjMuMDE0ZDQ2MDBmZWNhNzliZAogICAgIGI0MWMwNTg2ZjJhNGUxZTMuOTNmZTEyZTJkYWFkYzE5YS5lN2YxZTk4ODYxYjNiM2VhLmYzY2M5Zjc4YjJiMTliN2UKICAgICA1YjVjZDFjNDZiYjQ2ZjRkLjczNzNiM2I2NmExYTk3OGMuOWMxN2Q3NzE0OWFmNGQ3Ny4yNTQ4MTlkY2JiMTViZDIyCiAgICAgYWE4OTU2N2U3ZTEzMTMzMC5kMzcyZmYxYWRiYTQ2NGJkLjhjYzQ0MTVmM2NmNTllNjguMjlhOGMwMWJkOTRmMzdhZQogICAgIGRjYjkwZjIwMjU2YmM1NGUKLVZDVlRQUzJEUV8xMjgobWVtKQorVlBTUkFEXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMWE0NTgzZDdiZTc2MjUyZi5mZGVmOTExZWM0NGQwODM5LjkwYzY3MWZhNGE1NmUzNTguMTE0NDIxYmVkNTEwZTQ2OQogICAgIGJmMTk5NjJjYmQ3YzExN2QuYWZkYTdkMTFkYmVlOGMxMy44NjNkODU0M2QzM2RkMjhhLjg4ZTM3NWZhYjA4YzU5MjUKQEAgLTc1MjYsMTIgKzc1MjYsMTIgQEAKICAgICAzMjcxZmIxNmU5YzEyZTc4CiAgIGFmdGVyCiAgICAgMWE0NTgzZDdiZTc2MjUyZi5mZGVmOTExZWM0NGQwODM5LjkwYzY3MWZhNGE1NmUzNTguMTE0NDIxYmVkNTEwZTQ2OQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMzViOGQ2LjAwMDAwMDAwODAwMDAwMDAKKyAgICBiZjE5OTYyY2JkN2MxMTdkLmFmZGE3ZDExZGJlZThjMTMuODYzZDg1NDNkMzNkZDI4YS44OGUzNzVmYWIwOGM1OTI1CiAgICAgYTcwMGM2MGI0MTg3NDY2NC4xZTk2MTZjNDVmODNkOTZjLjkxYTFiN2RmOTE2NGViN2YuNGRlZDM4ODA2YWY2Mzk0OQogICAgIGFlYzg4ZTYwNjNhNTgwMGYuYTU2ZTU4YTFlYjk3MmNlZC44ZGJmODNiY2EwZDdlYTYyLmJkYWQ2NmJhOWVkOWMyODAKICAgICAzMjcxZmIxNmU5YzEyZTc4CiAKLVZTVUJQU18xMjgocmVnKQorVlBVTlBDS0xXRF8xMjgocmVnKQogICBiZWZvcmUKICAgICAwOTgzZjRmZWU3M2JiYWRhLmIwM2I2YTE3NDFlMTdhYWEuOWZhZjNmMTYxY2I3YzA0NS41NjYzNjZjNTFkYTM4ZDYwCiAgICAgOWUzMDRjZTAzMmQyYTI1NC44OTI2ZDYxZGY3NDhmMTYyLjZhYTVjODhkOGQ2ZWQzMWUuYzg1OWRhZTUyM2QzOGVhNApAQCAtNzUzOSwxMiArNzUzOSwxMiBAQAogICAgIDcyOGIwOTNmMjU4ODc0NDAuMzA5NDUwYzI1OGM0NDVkOS5kZmUwYWQzNmEwZDI2MDA0LjE3NmE2YjFmM2M4ZjlkYjEKICAgICBhYzFlN2UxMDg3MzQyMmQxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZhYTVjODkxMjBkMjYwMDQuYzg1OWRhZTViYzhmOWRiMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZjZkYzg1OTVkMGFkYWU1LmNmNzMyM2QzYWE1YjhlYTQKICAgICA5ZTMwNGNlMDMyZDJhMjU0Ljg5MjZkNjFkZjc0OGYxNjIuNmFhNWM4OGQ4ZDZlZDMxZS5jODU5ZGFlNTIzZDM4ZWE0CiAgICAgNGRjNGZmMjc2OTEyMjE5Mi4xNTU2NGY1Y2EwZTVhMTYzLjYwOWRlZTc0ZGE0ODlmMjQuYmY2ZDVkMGFjZjczYWE1YgogICAgIDcyOGIwOTNmMjU4ODc0NDAuMzA5NDUwYzI1OGM0NDVkOS5kZmUwYWQzNmEwZDI2MDA0LjE3NmE2YjFmM2M4ZjlkYjEKICAgICBhYzFlN2UxMDg3MzQyMmQxCi1WU1VCUFNfMTI4KG1lbSkKK1ZQVU5QQ0tMV0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNWE1MzE0Y2FjYjZlZjZlNy42OWQwNjY5NDA1YmZkNzA4LmI2YWY1NTM5M2NmMjliZWYuNDFiZDAyM2Y3Yjk3NTQ2YQogICAgIGZjZDZhODM3MjU0N2Q1MjEuOGVlMTEzOTJhMjQ0ODU5OS44MzcyZGFhZjY4N2E1ZGQxLmU0N2ZlN2ZiMDYyM2I1MDEKQEAgLTc1NTQsMTEgKzc1NTQsMTEgQEAKICAgYWZ0ZXIKICAgICA1YTUzMTRjYWNiNmVmNmU3LjY5ZDA2Njk0MDViZmQ3MDguYjZhZjU1MzkzY2YyOWJlZi40MWJkMDIzZjdiOTc1NDZhCiAgICAgZmNkNmE4MzcyNTQ3ZDUyMS44ZWUxMTM5MmEyNDQ4NTk5LjgzNzJkYWFmNjg3YTVkZDEuZTQ3ZmU3ZmIwNjIzYjUwMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNmFmNTUzOTY4N2E1ZGQxLmU0N2ZlN2ZiZmI5NzU0NmEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDFiZGU0N2YwMjNmZTdmYi43Yjk3MDYyMzU0NmFiNTAxCiAgICAgOTFmNmJhZGU4OTBjYTNhYi5kMjkyNGEzYTg5NjViNmMxLjYxMWY1NTQ1MDVjOTE3YWMuNTllMDU2M2M5ZGMyYjA3NAogICAgIGUzMThkNzlhZTFlY2MzYTgKIAotVlNVQlBTXzEyOChyZWcpCitWUFVOUENLTFdEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDFkNjVkYTVhNDYwZDMzYmUuM2IyYTMwZWZjYjBlMGE1NC5hOWNiY2RiYjBhMTlhZmIwLjJiYTE0MzNkYWZhODg3ZmMKICAgICA2NDEzNTllYTY4YjIzYzYxLjQ5ZGQ5NTY1OTJlMjZjZDAuMWRmZjhlOTViYTRiZTUxNy5hY2ZiYTFlMzEwMTE1NGM5CkBAIC03NTY2LDEyICs3NTY2LDEyIEBACiAgICAgODRjMWMwMjY0ZmI3MGQwMS4wNmViMTkyYzIyMjkwZmVmLjUxODdiZjA2MTQ1NmYyZmMuNDI2NjllZTk2OWIzZjM4OQogICAgIDEwMTAzNTIyOTkwMzNlZDQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDE4N2JmMDZiYTRiZTUxNy5jMjY2OWVlOWU5YjNmMzg5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJmZjlhY2ZiZWMyM2ExZTMuNDUxMTEwMTEzOTNmNTRjOQogICAgIDY0MTM1OWVhNjhiMjNjNjEuNDlkZDk1NjU5MmUyNmNkMC4xZGZmOGU5NWJhNGJlNTE3LmFjZmJhMWUzMTAxMTU0YzkKICAgICAxMjZlNTJiNGUxNjcxYzNlLjk5ZDk2NDJiZmI5MTg0NGEuOGM3YThiMzUzNDg2OTJhMi5iZmY5ZWMyMzQ1MTEzOTNmCiAgICAgODRjMWMwMjY0ZmI3MGQwMS4wNmViMTkyYzIyMjkwZmVmLjUxODdiZjA2MTQ1NmYyZmMuNDI2NjllZTk2OWIzZjM4OQogICAgIDEwMTAzNTIyOTkwMzNlZDQKLVZTVUJQU18xMjgobWVtKQorVlBVTlBDS0xXRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAwNGMxMmNiOGYwMGVkNjRiLjE3NTlhMGFiNGUyZTRjNTUuNmJkZjMxNTYyMmI1YzllYi5jODc0MjY3M2Y3NDg0M2QyCiAgICAgZmM0NmZmOTk4YmRmNzcxYi4yNTgyZWNhZjc5NTgxNWU2LmE2ODEyNjk0MTc0MTZkNjkuNGM4YmJkZWE3OGU4YmZjZgpAQCAtNzU4MSwxMSArNzU4MSwxMSBAQAogICBhZnRlcgogICAgIDA0YzEyY2I4ZjAwZWQ2NGIuMTc1OWEwYWI0ZTJlNGM1NS42YmRmMzE1NjIyYjVjOWViLmM4NzQyNjczZjc0ODQzZDIKICAgICBmYzQ2ZmY5OThiZGY3NzFiLjI1ODJlY2FmNzk1ODE1ZTYuYTY4MTI2OTQxNzQxNmQ2OS40YzhiYmRlYTc4ZThiZmNmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmViZGYzMTU2YTJiNWM5ZTkuNGM4YzM3ZmQ3OTAwZTQyNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jODc0NGM4YjI2NzNiZGVhLmY3NDg3OGU4NDNkMmJmY2YKICAgICA2NGZjMmFlOGZhMDRjMjc0LjI1YjdiZGU0YzVmNzMzNzIuMGFmZTljZmQ1MjhiNjc5ZC5mMDZhNjdhM2M3NWUyYmYwCiAgICAgYzZjYTczYmVjYzRkOTI2ZAogCi1WU1VCUFNfMTI4KHJlZykKK1ZQVU5QQ0tMV0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMWI4NDlmOTFkZjFhMTVjMC44Y2M1N2EyZjA3NzBlNDU2LmNmNWIzOWVkMWU4MzAxYzUuZWI3MTE1ZmZkMDYwMzNhYgogICAgIDQ5ZTZlNTg5OWQ1MGYwOTguMjg5Mjk2NzBjOGQzZmY0MC42NWJmMTMyNjEzZjM0ODA1LjEyYzI1YmM1YjM2NmRiZWIKQEAgLTc1OTMsMTIgKzc1OTMsMTIgQEAKICAgICBhNGNkYjQ5OTg4Mjg5ZDgxLjI3NjcyMzkwZDNhYjEwZGYuYzVmYmNkZDM0MmFjMzRmZS45ZDJlNDM0ZTFhMzNhYWI0CiAgICAgYmJlMWRjZTlkNjEyNGE5NAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42NWJmMTMyNmMyYWMzNGZlLjFkMmU0MzU0YjM2NmRiZWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTliZDEyYzJlYzNjNWJjNS4xOGE4YjM2NjE5OGFkYmViCiAgICAgNDllNmU1ODk5ZDUwZjA5OC4yODkyOTY3MGM4ZDNmZjQwLjY1YmYxMzI2MTNmMzQ4MDUuMTJjMjViYzViMzY2ZGJlYgogICAgIGFlM2E0MzEzYTE3YjVmOWUuMTIyZWZiOTc1ODM4Y2Y1Zi40MzMxNDVmOTQwZDI0NWRlLjU5YmRlYzNjMThhODE5OGEKICAgICBhNGNkYjQ5OTg4Mjg5ZDgxLjI3NjcyMzkwZDNhYjEwZGYuYzVmYmNkZDM0MmFjMzRmZS45ZDJlNDM0ZTFhMzNhYWI0CiAgICAgYmJlMWRjZTlkNjEyNGE5NAotVlNVQlBTXzEyOChtZW0pCitWUFVOUENLTFdEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDhkYTEzM2Y4Njc1MWI0NTcuODllYjM0ODllZGUyZTdlYi40NDA3OGM0NzU2Mzg3ZWViLjQ3NmFhNjIxYjUwZTUxMGUKICAgICBmMDNjYzU2N2VhZmNhNTI5LmI3ZTBiZjRkNmMzNTc5ODkuNDNkYmIxYTlmZGVjZDRhZi4yNWNhY2Q0ZTMzODNkN2JkCkBAIC03NjA4LDExICs3NjA4LDExIEBACiAgIGFmdGVyCiAgICAgOGRhMTMzZjg2NzUxYjQ1Ny44OWViMzQ4OWVkZTJlN2ViLjQ0MDc4YzQ3NTYzODdlZWIuNDc2YWE2MjFiNTBlNTEwZQogICAgIGYwM2NjNTY3ZWFmY2E1MjkuYjdlMGJmNGQ2YzM1Nzk4OS40M2RiYjFhOWZkZWNkNGFmLjI1Y2FjZDRlMzM4M2Q3YmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzJjZDliOTRmZGVjZDRhZi5jNzZhYTYyMTM1MWVjYzA2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ3NmEyNWNhYTYyMWNkNGUuYjUwZTMzODM1MTBlZDdiZAogICAgIGRhMmU4NzE1MzRjODBiYTcuNjI3ZWU4MDYyYmQ3NjQwZi41YTRlMjAxOTI0ZjcyYTEyLjY1OGNmMWY0YzdkODExYTIKICAgICA3Zjg3ZTc0NjEzY2YzZDMxCiAKLVZBRERQU18xMjgocmVnKQorVlBVTlBDS0hXRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA2NGEyMWEyN2RjMDljMjBlLjE4MWVhZjJjMzMwMWY4YWMuOTZiZjdkZDJhMjNmMzQ0Zi4yYjg2NjEwMWRkNjZhMzA5CiAgICAgNzIyYTg2MDNiZDEzZGRlNC41NzE4MDE1MzkzZDY1YzcwLjg1MDgwZDIzYTQ2ZjNkNzMuNGUyMTRmNDMyOTJiZjQ2OApAQCAtNzYyMCwxMiArNzYyMCwxMiBAQAogICAgIDc2YjFmYjVkMzljNWM0MmUuNDg1OTE1ODJlOTg1NzhlNC5mZmRjMGYwNWI2NWRlNTE2LmZkYjMxZjg0ZWNlODEwMTAKICAgICA0MTQyZmE1YzliZjk1M2IwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZGMwZjA1YjY1ZGU1MTYuZmRiMzFmODRlY2U4MTAxMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44OWEzODUwODk1NjUwZDIzLmNjZjVhNDZmYjkyNzNkNzMKICAgICA3MjJhODYwM2JkMTNkZGU0LjU3MTgwMTUzOTNkNjVjNzAuODUwODBkMjNhNDZmM2Q3My40ZTIxNGY0MzI5MmJmNDY4CiAgICAgMDQ2YjI4NDc1Mzc4Y2E2MC43M2U3ZmE3NjcxNTNmMzFmLjg5YTM5NTY1Y2NmNWI5MjcuYTBlYzY1Y2IyNTUzZDk1YgogICAgIDc2YjFmYjVkMzljNWM0MmUuNDg1OTE1ODJlOTg1NzhlNC5mZmRjMGYwNWI2NWRlNTE2LmZkYjMxZjg0ZWNlODEwMTAKICAgICA0MTQyZmE1YzliZjk1M2IwCi1WQUREUFNfMTI4KG1lbSkKK1ZQVU5QQ0tIV0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNDg2NTcxM2U0ZDhmNWY2YS4yMzQ3ZmJiMjBjODUwOGY5LmIzMzhjZTYxMTU3NmE4ZWIuNDMwMTc5NmRmZjMxZmRlZAogICAgIGVlZTcwMDE3MWViOGYwNjguNjk3YjI0YjM2NzQ0ZDI2ZS44ZTUxYTEwMTE0MzUzZjYyLmIxNWRjZjBhNDIwMDNkNTcKQEAgLTc2MzUsMTEgKzc2MzUsMTEgQEAKICAgYWZ0ZXIKICAgICA0ODY1NzEzZTRkOGY1ZjZhLjIzNDdmYmIyMGM4NTA4ZjkuYjMzOGNlNjExNTc2YThlYi40MzAxNzk2ZGZmMzFmZGVkCiAgICAgZWVlNzAwMTcxZWI4ZjA2OC42OTdiMjRiMzY3NDRkMjZlLjhlNTFhMTAxMTQzNTNmNjIuYjE1ZGNmMGE0MjAwM2Q1NwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMzM4Y2U2MTE1OTFmYzYyLjQzMDE3OTZkZmYzMWZkZWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjMzODhlNTFjZTYxYTEwMS4xNTc2MTQzNWE4ZWIzZjYyCiAgICAgODczYzU2NTk5MGYxOGZlMi4yY2U4ZTI2NTI2ZjBlNzA0LjA3NjE4NzMxZjU0NjkxNGEuN2NlODJiOTUyOGI4MjM5NwogICAgIDkwYjAyOTU5MDNiYTQxYzQKIAotVkFERFBTXzEyOChyZWcpCitWUFVOUENLSFdEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDNlZGYwMzAzNDllNTc4MzUuMzJhNjE2OWM2ODE5MTZiNS42MmJhNmZlZmMzZjZhYTdkLjVjZjA5MTk4MTBiMWM0MTQKICAgICBlMmMxYjVmZTk0YzYwMjk1LmVjYTBkZTg0Y2YwMzExN2UuOWY1OTE1ZDQ1ODJhZTM1MS45M2U4YTU3MDZjMTk0ZGZjCkBAIC03NjQ3LDEyICs3NjQ3LDEyIEBACiAgICAgN2NjZDhkOTdhZmQ3MDFkNS5mZDczNzZmOGJkNGY1NzljLmEyMmQ5ZDVmZGI1MWE1YjQuMTQ0N2RjMjE1OTBkNTVkOQogICAgIDE2NDVmN2QxMjJiMjRiMjYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTIzMTAxYjZkYjRlZmEyNy4xM2E3MTJkMjZjMTk0ZGZjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxMTE5ZjU5ZDE4MDE1ZDQuODExYTU4MmFjZDI5ZTM1MQogICAgIGUyYzFiNWZlOTRjNjAyOTUuZWNhMGRlODRjZjAzMTE3ZS45ZjU5MTVkNDU4MmFlMzUxLjkzZThhNTcwNmMxOTRkZmMKICAgICBkOGEyMzliNjgyZTgxYzkxLjkxZjYyYWZmZTJiYzNlNjcuNDExMWQxODA4MTFhY2QyOS44NzE3M2ZhNTI2ODllYTJmCiAgICAgN2NjZDhkOTdhZmQ3MDFkNS5mZDczNzZmOGJkNGY1NzljLmEyMmQ5ZDVmZGI1MWE1YjQuMTQ0N2RjMjE1OTBkNTVkOQogICAgIDE2NDVmN2QxMjJiMjRiMjYKLVZBRERQU18xMjgobWVtKQorVlBVTlBDS0hXRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA2OWRkMGNhMTljODM4NzQwLjJhOTBhYzBlYjYyMGVlMGMuMGJlNTNlNWE3YmM4MTg0YS4yMGZiNzdkZDAyNWNhNzliCiAgICAgZThkYjk3N2VlMzhjYzY1Ni4zZTM1OTI4NTM0NGUxZmUzLjk5MTZmZjEzMzgzNDNmOWQuMTVjNTVhNjY5MWM2MGY4ZApAQCAtNzY2MiwxMSArNzY2MiwxMSBAQAogICBhZnRlcgogICAgIDY5ZGQwY2ExOWM4Mzg3NDAuMmE5MGFjMGViNjIwZWUwYy4wYmU1M2U1YTdiYzgxODRhLjIwZmI3N2RkMDI1Y2E3OWIKICAgICBlOGRiOTc3ZWUzOGNjNjU2LjNlMzU5Mjg1MzQ0ZTFmZTMuOTkxNmZmMTMzODM0M2Y5ZC4xNWM1NWE2NjkxYzYwZjhkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk5MTZmZjEzN2JjODE4NGEuMjBmYjc3ZTA5MWM2MGY4ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wYmU1OTkxNjNlNWFmZjEzLjdiYzgzODM0MTg0YTNmOWQKICAgICBkZjM4MDEwYjRiNzgzZDIxLjA3NTdhNDI3MDM4YjNjMWYuYTJlODU5MzcyMTEyYWFlMC5kODgwMmM0YTU4ZThmZjNkCiAgICAgNWQwOTEyN2RjOGI4MDA1MwogCi1WQUREUFNfMTI4KHJlZykKK1ZQVU5QQ0tIV0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgY2FiZWYyNmExMTE3NTYyMy4wZTJmZDc5NGEzNzNlYzJlLjc1NmRjODI5OGNiMWEwZGQuZDQyMWVhN2I4NTlkNjYyOQogICAgIDdjZWRjNzdmY2U5MjNlNTguZDliYzEzZDkzOGQ1OGZlNi5iOTk2YTNkZGZiZWMzOGVhLmY2NGE2NGM0NTg0YTc3YzYKQEAgLTc2NzQsMTIgKzc2NzQsMTIgQEAKICAgICAxYWU0NDFjZTE2MDliNGE0LmI3YzhhZTQ2OGMwNDliMDYuMzI0ZjZlMDhmZGQzZjNhMy43NjliMDAxOWJkM2I4OGFlCiAgICAgOGQ1YjFhZmM4Nzk3ZmY1MQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iOTk2YTIzZWZkZTJiNzMyLjc1ZDczNmRjNTg0YTc3YzYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmUxZGI5OTYzMWFlYTNkZC5lZGM5ZmJlYzQwZjMzOGVhCiAgICAgN2NlZGM3N2ZjZTkyM2U1OC5kOWJjMTNkOTM4ZDU4ZmU2LmI5OTZhM2RkZmJlYzM4ZWEuZjY0YTY0YzQ1ODRhNzdjNgogICAgIGNkZTA4ZTI3OWNiNGY0OWYuMWVhYjMxYzUyN2FjZGY3NS4yZTFkMzFhZWVkYzk0MGYzLmUzMmU0MmZmYjcyNTk5ZTQKICAgICAxYWU0NDFjZTE2MDliNGE0LmI3YzhhZTQ2OGMwNDliMDYuMzI0ZjZlMDhmZGQzZjNhMy43NjliMDAxOWJkM2I4OGFlCiAgICAgOGQ1YjFhZmM4Nzk3ZmY1MQotVkFERFBTXzEyOChtZW0pCitWUFVOUENLSFdEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDAyM2IwZDk2MzA0NmJjZjguYmY0NWRlZTBkODFlYjkxMi44MmRlMDU0ODgyZTc3ZGM1LjIwNzg1NzU3Yzg5NzhlYTcKICAgICBiMzA3NTNkMmQ0NTM3OGQxLjE4NGY2MGM5N2Y3ZTQwOTYuNTliYmIyYjUyNTY0NDJlMC41M2U0ZTcwN2VhYTA0ZGFhCkBAIC03Njg5LDExICs3Njg5LDExIEBACiAgIGFmdGVyCiAgICAgMDIzYjBkOTYzMDQ2YmNmOC5iZjQ1ZGVlMGQ4MWViOTEyLjgyZGUwNTQ4ODJlNzdkYzUuMjA3ODU3NTdjODk3OGVhNwogICAgIGIzMDc1M2QyZDQ1Mzc4ZDEuMTg0ZjYwYzk3ZjdlNDA5Ni41OWJiYjJiNTI1NjQ0MmUwLjUzZTRlNzA3ZWFhMDRkYWEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTliYmIyYjUyNTY0NDJlMC41M2U0ZTcwN2VhYTA0ZGFhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgyZGU1OWJiMDU0OGIyYjUuODJlNzI1NjQ3ZGM1NDJlMAogICAgIDM1OTJjZGRmODBiN2U0YzIuNTY4ZDA0ZDBlYjUwYzM4ZS45ZmY1ZmU4M2U0NTU2NGQ0LmZkYjVlYzNhYTBiMjI1NjAKICAgICAyYWIxNWE5NTZkZDNiNzZiCiAKLVZNVUxQU18xMjgocmVnKQorVlBBRERVU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMGUyMDVlMDIwMDY5NWQyNC5iZWVhZjk4OWJmMjcwYjM0LmYzNWExZGM3ZThkYTM4NWIuYzZlYjk2YmQzOGUyM2EwNgogICAgIDAzNGVmNmViZjUwMDUyM2EuZjI1ZDY4ODY2YTI1MjM4Ny5iNGZmMGM0NDM5ZTAxZWVkLjY5ZDc3NDEzYTkzN2UxNDMKQEAgLTc3MDEsMTIgKzc3MDEsMTIgQEAKICAgICA5NDE3ZDBlNjc4NjQxYzI4LmNjYzcwNDI0NzFmYzE1N2UuMTIwNDVhODQ0ODhkMmYxMi45N2MwZjNjMjU0NmI5OThjCiAgICAgZDk1NjhiZjRjNjYyMjFmMAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NzgzZGM4MTQyZjczNDdjLmMyMjI2NDM1YmUyOTNhMTMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzZmZjY2Yzg4MWZmNGRmZi5mZmZmZmZkNWZkYTJmZmNmCiAgICAgMDM0ZWY2ZWJmNTAwNTIzYS5mMjVkNjg4NjZhMjUyMzg3LmI0ZmYwYzQ0MzllMDFlZWQuNjlkNzc0MTNhOTM3ZTE0MwogICAgIDY3ODcxZWJlZWEyNWQzNTcuYWViODk4YzA5YmJlZThlNi5mNWM5Y2NiNTdhZWRiMWYxLjY1ODUxNDcwNTQ2MTE4YjYKICAgICA5NDE3ZDBlNjc4NjQxYzI4LmNjYzcwNDI0NzFmYzE1N2UuMTIwNDVhODQ0ODhkMmYxMi45N2MwZjNjMjU0NmI5OThjCiAgICAgZDk1NjhiZjRjNjYyMjFmMAotVk1VTFBTXzEyOChtZW0pCitWUEFERFVTQl8xMjgobWVtKQogICBiZWZvcmUKICAgICAwODExNWFmMmM1NTE2YzBmLmU3NGEwYWNmM2Q0NzY4NTguMjk1NjI4OWYwNmVlNjc3YS42N2ZiYjAxZjNlNGNkMmZkCiAgICAgMDBiZWRiYTg2ZDQ0MzYxNS5iZDZiYzZlNGQ1NWNmNDk0LmExMzE4MDFiNzY5ZDk5MDcuNTBmY2NjZjFmOWI3ZDY1ZQpAQCAtNzcxNiwxMSArNzcxNiwxMSBAQAogICBhZnRlcgogICAgIDA4MTE1YWYyYzU1MTZjMGYuZTc0YTBhY2YzZDQ3Njg1OC4yOTU2Mjg5ZjA2ZWU2NzdhLjY3ZmJiMDFmM2U0Y2QyZmQKICAgICAwMGJlZGJhODZkNDQzNjE1LmJkNmJjNmU0ZDU1Y2Y0OTQuYTEzMTgwMWI3NjlkOTkwNy41MGZjY2NmMWY5YjdkNjVlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhiMTQ3ZDQxM2UxMmMzZjguNzk3ODhhZGNmODkzMTY1NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYTg3YThiYTdjZmZmZjgxLmI3ZmZmZmZmZmZmZmZmZmYKICAgICBiYzFlZTRlYzJiNjczNTg0LjVkYWJiYTQ4ZWI0YWJjZGUuNTNmOWJlY2E1OTY3OTE4Mi40ZTQ4NDNlYTJjYmZmNTMwCiAgICAgMWIyYjk2ZTlkYzczODdmOQogCi1WTVVMUFNfMTI4KHJlZykKK1ZQQUREVVNCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGViNDc5ZmNmYzEwNDZiZTguMzc2ODYzNTM3OGIwZTI0NS5lMTYxZTg2ZGEyM2I2ZjQ1LjQ0ODA5YmQ1MDQ5YWNkYzkKICAgICAxY2U3NTkwOTc2ZmJkY2E4LmViZDU4NTIxZGUyY2ZmOWQuNTYzNjhhNmY5YzhlNTI2Ny5jMDgyOWM5MmZhYmJkYjUwCkBAIC03NzI4LDEyICs3NzI4LDEyIEBACiAgICAgMGRlOGQwMjVjMjUwNTg0ZS42ZTQzYTBhNjY3ZjI3M2MxLjg2NmMxN2JiYzY4Njk3OGUuYzkyOWZjZDIzOWY3NThkMAogICAgIDBlNjc1MTJkYjkyYjQwMjEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWQyODU4OGEyMzk1YTZjNy40YTJkNzRiM2Y1MzU4MWM2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRjYTJhMWZmZmZmZmU5ZjUuZmZhYmZmZmZmZmZmZmZmZgogICAgIDFjZTc1OTA5NzZmYmRjYTguZWJkNTg1MjFkZTJjZmY5ZC41NjM2OGE2ZjljOGU1MjY3LmMwODI5YzkyZmFiYmRiNTAKICAgICAwOTU5YzAwMTk4ZTYxN2U3LmI0MmZjNTQ0N2FlOTQ2YjguMTk3NTliYmE3NGNkYTFmMS5hM2NjM2VlZDU4ZDY3NTQ0CiAgICAgMGRlOGQwMjVjMjUwNTg0ZS42ZTQzYTBhNjY3ZjI3M2MxLjg2NmMxN2JiYzY4Njk3OGUuYzkyOWZjZDIzOWY3NThkMAogICAgIDBlNjc1MTJkYjkyYjQwMjEKLVZNVUxQU18xMjgobWVtKQorVlBBRERVU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNGU1MGJjZWFmNjdlZTg2My44NmRmODZkZjkxYzZkYjhjLmY1ZGQ5MDM1YzI1NDQ0ZTUuZjk2NWZiZGMyZjQ1NzJlYgogICAgIDY1YjFiNmY2MDlmYTBkYzEuY2Y4YmRjOWRhMGQzZGI0YS4yNWM5MTNkY2E3MWE3MzRmLmNlYWU0MThiNGE5NTZiYjQKQEAgLTc3NDMsMTEgKzc3NDMsMTEgQEAKICAgYWZ0ZXIKICAgICA0ZTUwYmNlYWY2N2VlODYzLjg2ZGY4NmRmOTFjNmRiOGMuZjVkZDkwMzVjMjU0NDRlNS5mOTY1ZmJkYzJmNDU3MmViCiAgICAgNjViMWI2ZjYwOWZhMGRjMS5jZjhiZGM5ZGEwZDNkYjRhLjI1YzkxM2RjYTcxYTczNGYuY2VhZTQxOGI0YTk1NmJiNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kYzJlMDc2YTJhMDAxMTBlLjdmODAwMDAwM2E2NjdkZTkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmEzZmZmZjZlYjdmZi5mZmZmZmZmZjc5ZGFkZGZmCiAgICAgODgwYzRiYTcyN2EyYmQ4My40MDMyNWRkMmVmZTM0NWZkLmYwYzZiZjIyN2MwM2RlYTguMGY1YmU4NDAwODE4YWUzOAogICAgIDMyNTc0MDFlZTM2NDcwNGIKIAotVk1VTFBTXzEyOChyZWcpCitWUEFERFVTQl8xMjgocmVnKQogICBiZWZvcmUKICAgICAyN2QzZWMzOWUwNzE0MDdhLjRjOWNkZjI0NjllNmMxM2YuMjBjNTgwMjE2OGZkMjY0OS40MzcwZTE5OWE0M2U5MWVlCiAgICAgNGExOWU2ZmQ5Y2NiNWQ3MS41N2Q1ZjJhMGYyODQzMWM3LjQxM2MzMzIzOTFlMDc1YzYuYWY5Yjg0ZDhjNzBkOTMyYgpAQCAtNzc1NSwxMiArNzc1NSwxMiBAQAogICAgIDg5MzdiOTMwYmY5ODY5NjUuYjE2ZTg5NDI0YmZmNDdlZS5iMTBhM2VmMDY0MmE0ZDA1LjQxYTc0MjVlNjc5OTc0MzgKICAgICAyMDIwNTU3ZTFlNmRjYTYxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIyY2I0M2FiYjY5NTUxYmQuYjFjYjM3ZjVlZjI5YmE3NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMjQ2NzFmZmY1ZmZjMmNiLmYwZmZjNmZmZmZhNmZmNjMKICAgICA0YTE5ZTZmZDljY2I1ZDcxLjU3ZDVmMmEwZjI4NDMxYzcuNDEzYzMzMjM5MWUwNzVjNi5hZjliODRkOGM3MGQ5MzJiCiAgICAgZjY3NzJjZDZiMmZmMDFkYi44NDgxMDEwNmRmODhjOTQ5LmZkZTU3NDQ0MDYxNTZlMjEuMGYxNDI2Y2JmZTdkYTA4YQogICAgIDg5MzdiOTMwYmY5ODY5NjUuYjE2ZTg5NDI0YmZmNDdlZS5iMTBhM2VmMDY0MmE0ZDA1LjQxYTc0MjVlNjc5OTc0MzgKICAgICAyMDIwNTU3ZTFlNmRjYTYxCi1WTVVMUFNfMTI4KG1lbSkKK1ZQQUREVVNCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDg4NGFkOTE1M2UwNjVmMzAuNWVhNjhhNzg1ZTIzZDFiYS5iOTY2MDU0MDUzZjQ2NWU1LmJhZjg4ZDk0NDZhYjRkMWYKICAgICA1NGYzNGMxMWU0NmZlZmQyLmQxMTA5OTE4MmIyYjc0ODcuNzgzNmYxZWMxMjczZTA1OC43MmZiNWU5YTQ5MjJhYjFiCkBAIC03NzcwLDExICs3NzcwLDExIEBACiAgIGFmdGVyCiAgICAgODg0YWQ5MTUzZTA2NWYzMC41ZWE2OGE3ODVlMjNkMWJhLmI5NjYwNTQwNTNmNDY1ZTUuYmFmODhkOTQ0NmFiNGQxZgogICAgIDU0ZjM0YzExZTQ2ZmVmZDIuZDExMDk5MTgyYjJiNzQ4Ny43ODM2ZjFlYzEyNzNlMDU4LjcyZmI1ZTlhNDkyMmFiMWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjIyNDYxMWEyNmU4ZDJlNi5lZTc0MGVhYTUwNTliMjk4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmOWNmNmZmNjVmZmZmZmYuZmZmZmViZmY4ZmNkZjgzYQogICAgIDhkZWRlY2U1MmZlMmVlM2QuMDEwNDY2MTRjMmUyNWUzOC44YThkMGFmZTI3NDFkYjYzLjYzNmY3MjgwMjAyODcwNjcKICAgICA1Mzc5YWYzODJjY2Q1MDEwCiAKLVZNQVhQU18xMjgocmVnKQorVlBNVUxIVVdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjNjNzVjMDNjOTlhN2M0YS5iMGQ3MTE5NTBkMDRkNjVlLjc1MjYxYjQ4YzNhYTFkNzQuOTZhZDJmM2RiNWE4ZDQ1NAogICAgIGVmYTY3NjRkOTIxYjMzYzEuYTk2ZjE1NTllMDI2YTgwMi5mODc0MDA4NTYyMWYwN2Q3LmM4ZDRiNGQ5NmFjODFhNzEKQEAgLTc3ODIsMTIgKzc3ODIsMTIgQEAKICAgICBlYzQ3ZTMwZTFhNjUyZDE5Ljg5ZDhhN2NkZDg5Y2ZlODIuOTdiZTQ2Y2FlZDQyNGVjNC4xMjZiY2VkZGJiNjk3Y2UyCiAgICAgZTI3MjVjMWI4ZjAxMGY4ZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45N2JlNDZjYTYyMWYwN2Q3LjEyNmJjZWRkNmFjODFhNzEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTM0NDAwMjQ1YWVmMDI2OS4wZTcyOTIyMjRlMmIwY2U2CiAgICAgZWZhNjc2NGQ5MjFiMzNjMS5hOTZmMTU1OWUwMjZhODAyLmY4NzQwMDg1NjIxZjA3ZDcuYzhkNGI0ZDk2YWM4MWE3MQogICAgIDUzNjJmYTgyMjRkYWFmMjIuNTI4MDczMWRjNTU1MjI1NS5lNTM4MGYzNzNjY2U1OTBlLmZlZDAxNWMwNjNhZjY4ZTcKICAgICBlYzQ3ZTMwZTFhNjUyZDE5Ljg5ZDhhN2NkZDg5Y2ZlODIuOTdiZTQ2Y2FlZDQyNGVjNC4xMjZiY2VkZGJiNjk3Y2UyCiAgICAgZTI3MjVjMWI4ZjAxMGY4ZAotVk1BWFBTXzEyOChtZW0pCitWUE1VTEhVV18xMjgobWVtKQogICBiZWZvcmUKICAgICA0OGIwM2E2OGZhODNlMDE0LjE0YTAyZDVkMTA0OGU5NTIuMjg0MTJkNTUzNDA4ZjhiNi42YzU0YTBhYTBmMDcyNGE3CiAgICAgMjJmM2U0YWYxOGZiYTlhNS4yOGJiZDVkYmEzMGUxZjc4LjBkODg4MmEyZjVhM2NlMWQuYmU0NTFhNDM0MWFhMTU2MApAQCAtNzc5NywxMSArNzc5NywxMSBAQAogICBhZnRlcgogICAgIDQ4YjAzYTY4ZmE4M2UwMTQuMTRhMDJkNWQxMDQ4ZTk1Mi4yODQxMmQ1NTM0MDhmOGI2LjZjNTRhMGFhMGYwNzI0YTcKICAgICAyMmYzZTRhZjE4ZmJhOWE1LjI4YmJkNWRiYTMwZTFmNzguMGQ4ODgyYTJmNWEzY2UxZC5iZTQ1MWE0MzQxYWExNTYwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI4NDEyZDU1MzQwOGY4YjYuNmM1NGEwYWE0MWFhMTU2MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMjIwMTcyMTMxZWNjODNlLjUwODMxMDdiMDNkYTAzMGYKICAgICA5ZGI0OGRkYmUwZmYxNjhmLjg0NjIyYjE1MGY3M2U3M2MuMTVlMDg1MzcxODljZjkzMS40ZTY3NWE1MTNmYjczYTBhCiAgICAgNDIzMDE5OWU0MzM5ZTc1MwogCi1WTUFYUFNfMTI4KHJlZykKK1ZQTVVMSFVXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDI0ODRlNzUzYzdjOTlmMjMuZjhjYTg0OThjMWEzMzI0MS44NDg4ZDJhOTFmMmJmMTMzLmYwODkyZDU3YjExMWM3MzgKICAgICA1MWFlYzFkZTY0ZjM5ZTI3LjM1MTQzNzAwYzU2ZDM2YWMuZTA5ZGM3MWIzY2Y2NjZjOC44MDNmOTJlYzIxZTY1ZjIxCkBAIC03ODA5LDEyICs3ODA5LDEyIEBACiAgICAgZjhiOTg1MjM1ZjQxNjU3OS5jOTczYzE3ZGE4YTNlODViLjFiY2M4NzRlMGNmNjdjNzkuMzAwNjg3MjJlZmUxZTA0YQogICAgIDA3YWUwZjliODcyMDQwZTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWJjYzg3NGUzY2Y2NjZjOC4zMDA2ODcyMjIxZTY1ZjIxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE4NjM2OTNiMDMxNjMxZjkuMTgwZTRkOGQxZmMzNTM1OAogICAgIDUxYWVjMWRlNjRmMzllMjcuMzUxNDM3MDBjNTZkMzZhYy5lMDlkYzcxYjNjZjY2NmM4LjgwM2Y5MmVjMjFlNjVmMjEKICAgICAyM2ZjYTFhYWI4NDEyMjBhLjMxNWQyMmZkMDk2OWRmZmIuZjRmMDA0ZDkwMjYxODBhNi5hMmQwMzJlMTgxMjg3ZTE4CiAgICAgZjhiOTg1MjM1ZjQxNjU3OS5jOTczYzE3ZGE4YTNlODViLjFiY2M4NzRlMGNmNjdjNzkuMzAwNjg3MjJlZmUxZTA0YQogICAgIDA3YWUwZjliODcyMDQwZTMKLVZNQVhQU18xMjgobWVtKQorVlBNVUxIVVdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDM5NDQ2Mzg2NGVlNWIwZS4yYTMwNjhiNWY0N2ZhNDFmLmQ3MjE5MTZhYmYyODBmZjcuYjM3YzRiZTZmNjQzOTVlZQogICAgIDAwODRhNmU1YTI1OWVkZjguMTZhZTQ2Y2MxMzg1MWJhOS4zODMyMGRiMjY5MDMwZWZjLjE3NGQ0YzBkNWRkNDA5YjEKQEAgLTc4MjQsMTEgKzc4MjQsMTEgQEAKICAgYWZ0ZXIKICAgICAwMzk0NDYzODY0ZWU1YjBlLjJhMzA2OGI1ZjQ3ZmE0MWYuZDcyMTkxNmFiZjI4MGZmNy5iMzdjNGJlNmY2NDM5NWVlCiAgICAgMDA4NGE2ZTVhMjU5ZWRmOC4xNmFlNDZjYzEzODUxYmE5LjM4MzIwZGIyNjkwMzBlZmMuMTc0ZDRjMGQ1ZGQ0MDliMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zODMyMGRiMjY5MDMwZWZjLjE3NGQ0YzBkNWRkNDA5YjEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmYzOTA3Yzc0ZTY5MDBlZi4xMDU2MTY4YzVhNDIwNWFkCiAgICAgNmViMWQ2MjBiNDM0NjViNy44ZGVmZTUzOTYyMWY5ZjE4LjYzYjBmOTAwZThlZDg2ZjAuYjM4MmY2YjgxMGVmZWNjZgogICAgIGEyN2U5NzE1OTQ5MmQ1ODMKIAotVk1BWFBTXzEyOChyZWcpCitWUE1VTEhVV18xMjgocmVnKQogICBiZWZvcmUKICAgICBjZWNiNjViMDA0YTcwNzM0Ljk2ODY5ZDg2YmZiY2MzZTUuY2Y0YTlkNjhjOWM5MjU1NS5lNWI1NjJkZWY1MTM3NzM3CiAgICAgOTJiNDVjZjdmZWJkYmU4Zi4yZjk1N2VhYjliMTA4ODgxLjNiZGI0MGNiMmE2ZGQyMjUuMmE0ZTY2YzYwNWMwMzE5NgpAQCAtNzgzNiwxMiArNzgzNiwxMiBAQAogICAgIDUxOGViNzM1ZjkxNWFmZjEuMjQ5MTdmZTczODRlMzZiNS4wMWQzMzhlMTRjZDE5NDMxLjZkNmIzNTY0YTBkY2VmNGYKICAgICAyMzg3ZjZmMjYyNjM2YjAwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNiZGI0MGNiNGNkMTk0MzEuNmQ2YjM1NjQwNWMwMzE5NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDZkMGU2NTBjYmE3OWE1LjEyMTQxNTZmMDM5YzJlNWEKICAgICA5MmI0NWNmN2ZlYmRiZThmLjJmOTU3ZWFiOWIxMDg4ODEuM2JkYjQwY2IyYTZkZDIyNS4yYTRlNjZjNjA1YzAzMTk2CiAgICAgNDk4Nzc5NTQxYjVkMzgzZi4xNWFhZjY3ZDY1M2Q2ZmI4LjJkZjBjYWQwMjI5N2UzMzUuMGU0NjgzYTQzNWZlNzAzYQogICAgIDUxOGViNzM1ZjkxNWFmZjEuMjQ5MTdmZTczODRlMzZiNS4wMWQzMzhlMTRjZDE5NDMxLjZkNmIzNTY0YTBkY2VmNGYKICAgICAyMzg3ZjZmMjYyNjM2YjAwCi1WTUFYUFNfMTI4KG1lbSkKK1ZQTVVMSFVXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDBjNjc0NDNiOThhMWEwN2EuMDQxNjExMDUzNDcwNjA1MC4zODE2OTdkNTMxNGY5N2E1LjEzZDE4NTZjNDVhYTIxYzQKICAgICAwNGQ3OTkyOTVlYTI0OWU4LmMwNmI4NjMwNjdmYjg3MDkuMmMwNGJhMzM2YjRjNGViNC5iZjM2YWRkY2E4YWJjNTliCkBAIC03ODUxLDExICs3ODUxLDExIEBACiAgIGFmdGVyCiAgICAgMGM2NzQ0M2I5OGExYTA3YS4wNDE2MTEwNTM0NzA2MDUwLjM4MTY5N2Q1MzE0Zjk3YTUuMTNkMTg1NmM0NWFhMjFjNAogICAgIDA0ZDc5OTI5NWVhMjQ5ZTguYzA2Yjg2MzA2N2ZiODcwOS4yYzA0YmEzMzZiNGM0ZWI0LmJmMzZhZGRjYThhYmM1OWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzgxNjk3ZDU2YjRjNGViNC4xM2QxODU2YzQ1YWEyMWM0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA5YTQ2ZTZmMTRhYTJlOWUuMGVjZDVhOWMyZGU2MWExMAogICAgIDkxOTY0ZWE5MDcxOWViNTMuYmZhYmFhNDcyNmNlMjYzOC4yOTRmMGRlZjE0NmRiMmRkLjU1NjQ3ZTFiMWU1YTQ1YzMKICAgICBmN2M2MjBjMjY5MWY5OTZkCiAKLVZNSU5QU18xMjgocmVnKQorVlBBRERVU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYTNiZThkZmU4ZTNlZjQwYS5kZTdlYTQxMjIzYTk1YWE3LmJhMmU1MTBiZWIyZjE1MDYuZTk0MzM2MjViYmE3ZDY0ZgogICAgIGI1OTljMTNjMmE0MjkzNDcuYTkyNWYzZDAzZTJhMmZhMC4yZWFmMDJkYTE3ZWY2YmRlLmZhZDE1OTdiMTMwZTQwOTAKQEAgLTc4NjMsMTIgKzc4NjMsMTIgQEAKICAgICA3YjI4NmY2OTM0MmI4YzRmLjJlZTM2OTAxZTQzNWY2MmYuZWNkNjcwNGExYmJkMzc1YS43ZWVhN2UzODQ4OTFkOTJlCiAgICAgYWEwZTc3Nzc1Y2M1ODBlMgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lY2Q2NzA0YTE3ZWY2YmRlLmZhZDE1OTdiMTMwZTQwOTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZjczMjQzM2FjYTMzOC5mZmZmZDdiMzViOWZmZmZmCiAgICAgYjU5OWMxM2MyYTQyOTM0Ny5hOTI1ZjNkMDNlMmEyZmEwLjJlYWYwMmRhMTdlZjZiZGUuZmFkMTU5N2IxMzBlNDA5MAogICAgIDg5YTNiOGU2ZDhiOGIxY2YuZDA1OGI2ZDE3NWFhMjQ2OS43NTc4YjkyMDQ5OWE2MjZiLjM4YzVmMmRlMzlhZWFkY2IKICAgICA3YjI4NmY2OTM0MmI4YzRmLjJlZTM2OTAxZTQzNWY2MmYuZWNkNjcwNGExYmJkMzc1YS43ZWVhN2UzODQ4OTFkOTJlCiAgICAgYWEwZTc3Nzc1Y2M1ODBlMgotVk1JTlBTXzEyOChtZW0pCitWUEFERFVTV18xMjgobWVtKQogICBiZWZvcmUKICAgICA5N2ZiNWI4NjkyNTY1ZDE2LmU3NzRlMTMyZGIyNzVlNzMuOWU5Mjg4NGFhNWQ1NjAxZC5mMDE0MjVjMjI5ZTMyNjU2CiAgICAgMjA3ZWE1NTEwNjRmMmVmNC4yOGQyMGFhYzY5Mzg2NGU2LmZlMzE5MDk5ZDc5ODFmNjAuZGI4MGQzZjYxMDk4NmIwYwpAQCAtNzg3OCwxMSArNzg3OCwxMSBAQAogICBhZnRlcgogICAgIDk3ZmI1Yjg2OTI1NjVkMTYuZTc3NGUxMzJkYjI3NWU3My45ZTkyODg0YWE1ZDU2MDFkLmYwMTQyNWMyMjllMzI2NTYKICAgICAyMDdlYTU1MTA2NGYyZWY0LjI4ZDIwYWFjNjkzODY0ZTYuZmUzMTkwOTlkNzk4MWY2MC5kYjgwZDNmNjEwOTg2YjBjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZlMzE5MDk5ZDc5ODFmNjAuZjAxNDI1YzIxMDk4NmIwYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmY3ZjdkLmZmZmZmOWI4M2E3YjkxNjIKICAgICA3YTc2NWNjYjE1YTk5NjVmLjllZjg3MTYyYTdjYmZiNmIuZmE2ZTQ4ZmFmN2I2OGM5NC5kOTBlMGEzZmQ2ZTFlNTU0CiAgICAgYTVjODhjMmJlZjhjOTIzZgogCi1WTUlOUFNfMTI4KHJlZykKK1ZQQUREVVNXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGM4ZGZmNjgzNGZmNzg2OTMuMDM4MmMxNTJlOTIzYTY0NS44OTU3YTg3NzkwNjUwM2Q1LjRmYTRmMGUzMWYyOGIxZGQKICAgICA5ZjlmNDZiMzk0YWRmYmZkLjk4NTU3YzQ1NmEzNTk5ODUuYmJmOTg2ZWRjZjQ0MzAzZS4wMmZhNzA4MzI2ZWMxYzJiCkBAIC03ODkwLDEyICs3ODkwLDEyIEBACiAgICAgZDk0OTg2NDYzYzJiNWFjMS41YTdiZTUyMGU1NTIxN2M1LjYwMzUyN2FkYzIwMWU1YzAuZjYzNmVhOTU0MzljYWU4NAogICAgIGVmYjNkYmRmOTA5ZjRlZTcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmJmOTg2ZWRjZjQ0MzAzZS5mNjM2ZWE5NTI2ZWMxYzJiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZhZTlhZmZmZmZmZmYuZjkzMGZmZmY2YTg4Y2FhZgogICAgIDlmOWY0NmIzOTRhZGZiZmQuOTg1NTdjNDU2YTM1OTk4NS5iYmY5ODZlZGNmNDQzMDNlLjAyZmE3MDgzMjZlYzFjMmIKICAgICA4NjUzNzgyNTVhM2EyZDI4LjE3YjkwYTkwYjVlYjJiNGMuOGYyYTA3MzEwMWY0YmQ1My5mMTNjNDVjNTI5MGY4NmE5CiAgICAgZDk0OTg2NDYzYzJiNWFjMS41YTdiZTUyMGU1NTIxN2M1LjYwMzUyN2FkYzIwMWU1YzAuZjYzNmVhOTU0MzljYWU4NAogICAgIGVmYjNkYmRmOTA5ZjRlZTcKLVZNSU5QU18xMjgobWVtKQorVlBBRERVU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjY4MTk0OGYyZDI1MjNmZi5mNGNiNmU4MmQ2MGJiYzc0LjNmNjc4YmRmMTc3NTFiMWUuOGM2OGUzY2VhY2Y4ZTUzMAogICAgIDI4NmE5MjkxMzYzOWU5ZjcuMzMyNjJiNDZjNTY3OTBlYy5hMDQ5NzdiYjY2NjFmMDgwLjZkMGQzNjAxNWU2NWY4NTAKQEAgLTc5MDUsMTEgKzc5MDUsMTEgQEAKICAgYWZ0ZXIKICAgICBiNjgxOTQ4ZjJkMjUyM2ZmLmY0Y2I2ZTgyZDYwYmJjNzQuM2Y2NzhiZGYxNzc1MWIxZS44YzY4ZTNjZWFjZjhlNTMwCiAgICAgMjg2YTkyOTEzNjM5ZTlmNy4zMzI2MmI0NmM1Njc5MGVjLmEwNDk3N2JiNjY2MWYwODAuNmQwZDM2MDE1ZTY1Zjg1MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMDQ5NzdiYjE3NzUxYjFlLjhjNjhlM2NlYWNmOGU1MzAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGZiMGZmZmY3ZGQ2ZmZmZi5mOTc1ZmZmZmZmZmZmZmZmCiAgICAgN2VjMDRhM2JmOTNkMzczYS44ZDk3MTQxMjExYmY3ZGRkLjRhMWUxMTc2Y2RjMTA0MTUuYzJlMDkxNDk4M2NkNGE0ZgogICAgIGVlYTY5MTM2MzBlMjAxODYKIAotVk1JTlBTXzEyOChyZWcpCitWUEFERFVTV18xMjgocmVnKQogICBiZWZvcmUKICAgICAzZjBlMTllNTEzOWJiYzFjLjE5YzVmY2JjZWM0NDM3ZGMuNjA0NTM4ZjNhNWQ1MGVhZS40YWFhYjgyZTFkNGRiYWEwCiAgICAgMTI2NjI0YzFjOTg2YjZiZS5kMDE2ZTIzZWJhMDkxNzBmLmM3ZmIyMjBiZmU5NjAxZjUuMzc1Yjk1YjJmYWQyMzNlNQpAQCAtNzkxNywxMiArNzkxNywxMiBAQAogICAgIGFmMTFiM2IwMWIyMDU5ZDQuZmRjYjNjZmE1OWZmNmJkNi5jMGIzMzU5MDZkNDlmYzkyLjQ5NWZlMWNlY2RmNTVkNGYKICAgICAyNTRhNDgzZWZhYWI4NmNiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM3ZmIyMjBiZmU5NjAxZjUuMzc1Yjk1YjJmYWQyMzNlNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmNTc5YmZmZmZmZTg3LjgwYmFmZmZmZmZmZjkxMzQKICAgICAxMjY2MjRjMWM5ODZiNmJlLmQwMTZlMjNlYmEwOTE3MGYuYzdmYjIyMGJmZTk2MDFmNS4zNzViOTViMmZhZDIzM2U1CiAgICAgYzRmOGFlMzZlZDJlMmMxNy43ZDdlNzlhZjgwOTk5NWZlLjFlMDdjZGM2Yjc4ZTkyNWQuZWVmZTI0ZWU4MTViMmIxMAogICAgIGFmMTFiM2IwMWIyMDU5ZDQuZmRjYjNjZmE1OWZmNmJkNi5jMGIzMzU5MDZkNDlmYzkyLjQ5NWZlMWNlY2RmNTVkNGYKICAgICAyNTRhNDgzZWZhYWI4NmNiCi1WTUlOUFNfMTI4KG1lbSkKK1ZQQUREVVNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDVlOGFkNjJiMjU4OTYxYjMuMzBmZDMwOWJmMGU3N2JhMS4yY2M3YTcwYTYyNDg1NWMzLjBiNGM1N2Q1YmI1NDdjNDIKICAgICBkMGVkMDY3ZjZhOWJhYzMxLmEzMDgxZjY0MDgwZmNjMjkuZTYzZjM2Y2RiNjdmMTFmMC41YTFlMmQwMTNlM2E0ZDE3CkBAIC03OTMyLDExICs3OTMyLDExIEBACiAgIGFmdGVyCiAgICAgNWU4YWQ2MmIyNTg5NjFiMy4zMGZkMzA5YmYwZTc3YmExLjJjYzdhNzBhNjI0ODU1YzMuMGI0YzU3ZDViYjU0N2M0MgogICAgIGQwZWQwNjdmNmE5YmFjMzEuYTMwODFmNjQwODBmY2MyOS5lNjNmMzZjZGI2N2YxMWYwLjVhMWUyZDAxM2UzYTRkMTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTYzZjM2Y2RiNjdmMTFmMC4wYjRjNTdkNWJiNTQ3YzQyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZkZGQ3ZmZmZjY3YjMuNjU2YTg0ZDZmOThlYzk1OQogICAgIGNmNDczYzEwYWY4ZTdjYTEuZDBhYjQ4M2I2ZWI0ZWQxYy42YmQyYjExOWIxZThlYWJjLjczOWRlYWJmNTFjOWQ2ZTEKICAgICBmNmUxYzgyODE5ODkwNTJmCiAKLVZTSFVGUFNfMHgzOV8xMjgocmVnKQorVlBNVUxMV18xMjgocmVnKQogICBiZWZvcmUKICAgICBlZDhlNGMyOTg2NTU3NTUyLjE0ZDczYjI1ZTg4NTdiZWEuNDFkYTdhMjNmNTQ5MzVkZi5lZTg2OTU3YTkwMzI4MGIzCiAgICAgYjNmMTcxMmQzM2I3NjRmNy4wMmI5Y2M1MmFhZTFkODdiLjE0NTgwZTk4MmU2ZTlkMGUuNmNlNThkM2UyYTlhZDY5YgpAQCAtNzk0NCwxMiArNzk0NCwxMiBAQAogICAgIDIwMDM4ZWVkYmU3M2E5NzYuNDlhMjk0YTQzYmY2OWYxZi41MDcxNTFkODI4OWViYzVlLmM5ZDhhYTlhMDFmNWI1ZWMKICAgICA2MDAzYzcwYzc1MDFiNWFkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxZjViNWVjNTA3MTUxZDguMmU2ZTlkMGU2Y2U1OGQzZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YWQ4Njg0MGQ3ZTRmMzI0LmFlMzgyMzRjNWY2MjZkZTQKICAgICBiM2YxNzEyZDMzYjc2NGY3LjAyYjljYzUyYWFlMWQ4N2IuMTQ1ODBlOTgyZTZlOWQwZS42Y2U1OGQzZTJhOWFkNjliCiAgICAgYTY1NDMzOWZiYzNlMGNjYS43NWI5NmI4MzEyYWQ1MDdlLmE1NzEwMjA1YjZiMTYxNTQuYzFiZDE2NGY5YjJkYTk5ZgogICAgIDIwMDM4ZWVkYmU3M2E5NzYuNDlhMjk0YTQzYmY2OWYxZi41MDcxNTFkODI4OWViYzVlLmM5ZDhhYTlhMDFmNWI1ZWMKICAgICA2MDAzYzcwYzc1MDFiNWFkCi1WU0hVRlBTXzB4MzlfMTI4KG1lbSkKK1ZQTVVMTFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNjIwOWU4OTAxNTVhNjcwZi43ZjRjN2U4MmQ1ZTQ3OWE4LjVhNDJjM2ExNDJjNzgwOGMuNzFhNGY3N2MyMWMwZWJkNwogICAgIGFiYjg4YTExZmMwZTg1M2UuMWQ3YTAwY2E5YzFkYjYwYi44NDYzNzU2NjQyMmNiMGVlLjY0NTZmMTVkM2NhMzJhNmMKQEAgLTc5NTksMTEgKzc5NTksMTEgQEAKICAgYWZ0ZXIKICAgICA2MjA5ZTg5MDE1NWE2NzBmLjdmNGM3ZTgyZDVlNDc5YTguNWE0MmMzYTE0MmM3ODA4Yy43MWE0Zjc3YzIxYzBlYmQ3CiAgICAgYWJiODhhMTFmYzBlODUzZS4xZDdhMDBjYTljMWRiNjBiLjg0NjM3NTY2NDIyY2IwZWUuNjQ1NmYxNWQzY2EzMmE2YwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41YTQyYzNhMTIxYzBlYmQ3LjY0NTZmMTVkNDIyY2IwZWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWY4Njg3MjZjODM0YzIyOC4zZDE4YTQwYzdkNDBjNGI0CiAgICAgODEzZDNkYmYxMmI1ZjdiMS44YWIzYTYyNGFiMTM2OTE2LjkyNWI0ZmY5OWZlNGVkNDguMzA2NWNlODc0YWRkYzc5OQogICAgIGMxNWJhOWE3NzU0YzljODkKIAotVlNIVUZQU18weDM5XzEyOChyZWcpCitWUE1VTExXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDk0MDBjN2I0MzJhZDcyNDQuYzdhYjQ3YzM3N2MwYzM0ZC4xMDU3YzQwZDJiZTk1ODE2LjJmY2E2ZjllMzM0ZTcxOTYKICAgICAwNWEwMjUxYjFkOGE4NDc3LmM0ZjFjMTc1OTU1NmVjNjYuNDcxMDYyNWFjY2I3YTRmOC41NWVhMDJiYzMxN2QzNDhiCkBAIC03OTcxLDEyICs3OTcxLDEyIEBACiAgICAgMzAwMThkYTNmMGVlNDlmNC41MjM0ZjY5NDY2NTA0M2JlLjMzZjExM2NjZGY2ODQ1MTAuYWI3MTZlMGZkYTU3NjYxOQogICAgIDk0NmYzZjFkYmMxYjRkMGEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGE1NzY2MTkzM2YxMTNjYy5jY2I3YTRmODU1ZWEwMmJjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE2MTAwZGI4OTM1ODI3ODAuM2E0YWYxMDQ0MzdiODM5MwogICAgIDA1YTAyNTFiMWQ4YTg0NzcuYzRmMWMxNzU5NTU2ZWM2Ni40NzEwNjI1YWNjYjdhNGY4LjU1ZWEwMmJjMzE3ZDM0OGIKICAgICA2Zjg3YmQ0NmQzNzIwZGNlLjUzZGIyN2MxODY4MTJkMjguODkyYTdlNzUyOTA4ODk2Ny5lMDg5ODMzZGI1N2NmMTUzCiAgICAgMzAwMThkYTNmMGVlNDlmNC41MjM0ZjY5NDY2NTA0M2JlLjMzZjExM2NjZGY2ODQ1MTAuYWI3MTZlMGZkYTU3NjYxOQogICAgIDk0NmYzZjFkYmMxYjRkMGEKLVZTSFVGUFNfMHgzOV8xMjgobWVtKQorVlBNVUxMV18xMjgobWVtKQogICBiZWZvcmUKICAgICA3NTRmNzI1Mzc4ZDM2MzUyLmEzNTk5MTlkMGY4Yzc2OTYuOWNjYWE4ZDg1MWNjZWE1NC5hMmIwMWRjYTg5NjQxMjlmCiAgICAgMmNkZDg0OWQyYThjNjMxYy4yNGRjYzNhMGNjZDdjZTVmLjBjNjdiYjdhNjUwM2RlMTguMzBiNDk4ZGFjNDg3MmRiZgpAQCAtNzk4NiwxMSArNzk4NiwxMSBAQAogICBhZnRlcgogICAgIDc1NGY3MjUzNzhkMzYzNTIuYTM1OTkxOWQwZjhjNzY5Ni45Y2NhYThkODUxY2NlYTU0LmEyYjAxZGNhODk2NDEyOWYKICAgICAyY2RkODQ5ZDJhOGM2MzFjLjI0ZGNjM2EwY2NkN2NlNWYuMGM2N2JiN2E2NTAzZGUxOC4zMGI0OThkYWM0ODcyZGJmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjljY2FhOGQ4ODk2NDEyOWYuMzBiNDk4ZGE2NTAzZGUxOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZDQ2M2VmMDcxNjRjZmUwLjYzYzA0ZTA0MDNiY2Q3YTEKICAgICA4ODMyMzIxZGRkMmUxNWU4LmJmOTNhNjcxOTJhNmYyMTguZDJlYWYyOGE3MWNmOWNkNC4xY2JiZDJlNTViNzMzYzYzCiAgICAgMzI1Njg5YjdlZjU0YTg0MAogCi1WU0hVRlBTXzB4MzlfMTI4KHJlZykKK1ZQTVVMTFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZDg2NmEyNGQ4MzhkNTI1Zi5lNTkxYzYyYjE3MmYzZDQyLjkxNWY0ZTE3ZDM0MTM1NjAuZTA2NzBlY2VhMzdkZGQyNQogICAgIDZhMzYxNzExYjRhODc1NmIuODhjZTI4ZmViNjYxNDFjZS5lMjg1MTU3NjIzYjk5NDgwLjg0MWI3YTIxNmMxNTVjNTMKQEAgLTc5OTgsMTIgKzc5OTgsMTIgQEAKICAgICBjMjRhMGFkNzVjYmExOWZiLjBjMTI0ODlmOTU4NWM4MmYuNmQxM2YxMTA1ZDczOTZmNi4wMjVjMzJhMTM1MzRmZmY0CiAgICAgOTQ4MTc3YTY2Y2QzOWNiZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNTM0ZmZmNDZkMTNmMTEwLjIzYjk5NDgwODQxYjdhMjEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzBkZjZkNjA0MTFiYjMwMC5hZmI0NDBjMTRkNDRhYzFjCiAgICAgNmEzNjE3MTFiNGE4NzU2Yi44OGNlMjhmZWI2NjE0MWNlLmUyODUxNTc2MjNiOTk0ODAuODQxYjdhMjE2YzE1NWM1MwogICAgIDQ0MTRlNjcwMWUzNDRlMTAuNGJiNWQ1ODBkN2NmZGJiOS4wZDUzZjhmYTFjOWI0YjIzLjljZDRiMjZlZTlhNGQzODkKICAgICBjMjRhMGFkNzVjYmExOWZiLjBjMTI0ODlmOTU4NWM4MmYuNmQxM2YxMTA1ZDczOTZmNi4wMjVjMzJhMTM1MzRmZmY0CiAgICAgOTQ4MTc3YTY2Y2QzOWNiZgotVlNIVUZQU18weDM5XzEyOChtZW0pCitWUE1VTExXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJjMGRmYjZhYWI4ZDY2MTguNDAyNTdmYjAwYWM4MTJkOC5hNWIxZmQ0NTBkOTBjMzViLjYwMTJmZTIyN2ZjYmIwYTUKICAgICBhN2NkM2NkNzBkNmQxODI4LjFhZjE0MTY5YzVlOTc0NTMuZjM1ZTcxNjA1YWZiOGE2YS40MDljMWE5ZTIwMzFkNmRiCkBAIC04MDEzLDExICs4MDEzLDExIEBACiAgIGFmdGVyCiAgICAgMmMwZGZiNmFhYjhkNjYxOC40MDI1N2ZiMDBhYzgxMmQ4LmE1YjFmZDQ1MGQ5MGMzNWIuNjAxMmZlMjI3ZmNiYjBhNQogICAgIGE3Y2QzY2Q3MGQ2ZDE4MjguMWFmMTQxNjljNWU5NzQ1My5mMzVlNzE2MDVhZmI4YTZhLjQwOWMxYTllMjAzMWQ2ZGIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTViMWZkNDU3ZmNiYjBhNS40MDljMWE5ZTVhZmI4YTZhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ5ZmU2ZWUwZWMzMGYxYWUuMGFmODRjZmNkNWRiMGIyNwogICAgIGI3MThlMzYwYWRjZjI2MjMuNTI4YjlkMjhkMDk1NjZkMC4xZjEwODJhMmU1MjM2N2RmLjNiODE3MDgxNGU1NTM1OGUKICAgICAwZDczYTJiZjEzMmJlNzYzCiAKLVZQQ01QRVFCXzEyOChyZWcpCitWUFNIVUZIV18weDM5XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDNlMjBkMzE3YzYzZTkzNmYuMDMzYzQxNTMyMTZhZmI2Ni42OGYyMmYwNjU5Mzg2ZTJiLmI0YWUxOGExNWFmN2Y1OWUKICAgICAyOGQ1MDBmNTAzMWI3ODVmLmEyYzM0YmExMmE1Y2E4MTEuNGE3OWZlNzM1ZDFmY2ZkNC42ZThhNWNjNDE1NWIzZWVmCkBAIC04MDI1LDEyICs4MDI1LDEyIEBACiAgICAgOWE4MjNhZWU4ZTYwZDg5YS40OTJkNTNmYjY1NzE3YzUxLmUxMWE0NGFhNGNlNjhmYmUuYzIyY2RmMjdjYzA2ZjFmYQogICAgIDEzODkxNjNlZmY2M2QyMGIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhmYmVlMTFhNDRhYTRjZTYuYzIyY2RmMjdjYzA2ZjFmYQogICAgIDI4ZDUwMGY1MDMxYjc4NWYuYTJjMzRiYTEyYTVjYTgxMS40YTc5ZmU3MzVkMWZjZmQ0LjZlOGE1Y2M0MTU1YjNlZWYKICAgICAyOGRjMjNjMzY3NGRkMGRmLjcwN2E3ZDM1ZTFhZmU5NTAuNTM2ZDA3ZGI3YmQ1YzY3Ni4yOTcwY2JmNzMyNWNmZWZmCiAgICAgOWE4MjNhZWU4ZTYwZDg5YS40OTJkNTNmYjY1NzE3YzUxLmUxMWE0NGFhNGNlNjhmYmUuYzIyY2RmMjdjYzA2ZjFmYQogICAgIDEzODkxNjNlZmY2M2QyMGIKLVZQQ01QRVFCXzEyOChtZW0pCitWUFNIVUZIV18weDM5XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGY5NTRlYjJhZTg4MTVlNWUuZGExMjQwZTIxM2UxY2MzZC4wOWE4NDlkZmNmYWQxYjNkLjRmY2NiMzRjNmZkZTY1NTgKICAgICA1MDU5ZGJkNWEzNmI1MTIwLjQ1ZGEzMTBjOTI1YmU4NzMuOGNiN2RjY2QzZDcwODM0My5mOWNlNGYyZTdkNGE4NWVmCkBAIC04MDM5LDEyICs4MDM5LDEyIEBACiAgICAgZjViMzBiODU0Y2JhZjg1ZQogICBhZnRlcgogICAgIGY5NTRlYjJhZTg4MTVlNWUuZGExMjQwZTIxM2UxY2MzZC4wOWE4NDlkZmNmYWQxYjNkLjRmY2NiMzRjNmZkZTY1NTgKLSAgICA1MDU5ZGJkNWEzNmI1MTIwLjQ1ZGEzMTBjOTI1YmU4NzMuOGNiN2RjY2QzZDcwODM0My5mOWNlNGYyZTdkNGE4NWVmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wOWE4MWIzZGNmYWQ0OWRmLjRmY2NiMzRjNmZkZTY1NTgKKyAgICBmNDY0NjAyZDRhMmU2NjdkLjM1MjQwOWQ2YTg1YjY3ZTkuYWUyNTg3YjFjYmM1NzA4ZC4zYTZlMTViYTE0YjUyYjMwCiAgICAgYzE0MWY4MWRmY2Q1NWJhMS4wNzNkYzVhZWYwNmI4NjRiLjRiYzBjNjc3OTRiODlkNDcuNzBmNmZmNWVkMGFjOTNjNgogICAgIGY1YjMwYjg1NGNiYWY4NWUKIAotVlBDTVBFUUJfMTI4KHJlZykKK1ZQU0hVRkhXXzB4MzlfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjdmMTM0OWEyNTZiOTdhMy45M2JjMWU5MWQyNmNlYWI3LjE3NzI2MGZmMDcxOTgwNDQuM2Y1MjE2MGNiNTU2Yzc5ZQogICAgIDYxZmM3NjBiZjY0Y2FjNDIuNDZhMDRlNzVlYjAwY2ZlYi5jMTBjZDYzNTg4ZjE5MzgxLjY2YThmMTVhNDlhYWFhYmUKQEAgLTgwNTIsMTIgKzgwNTIsMTIgQEAKICAgICA1YmE4MzZhZWYxY2IyNjNkLmJlZDdiZDNkNTA0YzhmNjAuNTNhNzQ0MDAzYTRjZWY3NS5iZGQwM2RkNTNiYTU4YTA4CiAgICAgYTUzYWE1ZGFkMjY0ZmY4OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWY3NTUzYTc0NDAwM2E0Yy5iZGQwM2RkNTNiYTU4YTA4CiAgICAgNjFmYzc2MGJmNjRjYWM0Mi40NmEwNGU3NWViMDBjZmViLmMxMGNkNjM1ODhmMTkzODEuNjZhOGYxNWE0OWFhYWFiZQogICAgIGZlMjBjZDQzNWJlODcyZTcuYjViYjA1YjU2MDljYzg2YS42MTVhMjNiYzEwN2VmOWFkLjljOGVkNTRmNmNjMDAxZDMKICAgICA1YmE4MzZhZWYxY2IyNjNkLmJlZDdiZDNkNTA0YzhmNjAuNTNhNzQ0MDAzYTRjZWY3NS5iZGQwM2RkNTNiYTU4YTA4CiAgICAgYTUzYWE1ZGFkMjY0ZmY4OQotVlBDTVBFUUJfMTI4KG1lbSkKK1ZQU0hVRkhXXzB4MzlfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzA5NzhhNDk0YjA5MWM4My5kNWUyYWNiODUzODIwNGYxLjNjYzFmNGY5ZDQxZGUxZjguZjMzZTMzNmRhM2U3YjA4NQogICAgIDM5YjQ2NzBlYzVhMTlmMjIuYzYxODJiY2UxZTk4NDhhZi4wYjQ1MjVkNjBhMWE3OTVmLjlkNmRlZTZmZTZkYzc5ODgKQEAgLTgwNjYsMTIgKzgwNjYsMTIgQEAKICAgICA2ZTc5YmEyY2U2NGE1YmZmCiAgIGFmdGVyCiAgICAgMzA5NzhhNDk0YjA5MWM4My5kNWUyYWNiODUzODIwNGYxLjNjYzFmNGY5ZDQxZGUxZjguZjMzZTMzNmRhM2U3YjA4NQotICAgIDM5YjQ2NzBlYzVhMTlmMjIuYzYxODJiY2UxZTk4NDhhZi4wYjQ1MjVkNjBhMWE3OTVmLjlkNmRlZTZmZTZkYzc5ODgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNjYzFlMWY4ZDQxZGY0ZjkuZjMzZTMzNmRhM2U3YjA4NQorICAgIDllNWRiNzE1NWEzNzQyOTEuOGM5N2FmNWFlZTk5MmQyMi4wNzJmY2RiZTBlNGYxNGMxLmFkN2U3MDcyYTBiNjg2MmIKICAgICAzYTVlZjk0YTI2ZDdjMmZkLjgxYWIzNGM5NWQxMWYwZjYuMGI0YTY2OWZmYmM5NmU0OS43ZmJlYjZlMzZjMDExMzE5CiAgICAgNmU3OWJhMmNlNjRhNWJmZgogCi1WUENNUEVRQl8xMjgocmVnKQorVlBTSFVGSFdfMHgzOV8xMjgocmVnKQogICBiZWZvcmUKICAgICBkOGZhN2FiYmFiMWM5Yjg5LmU5ODNhNjk5NDY4ZWRhOTIuMDJhMGI3ODgwYThkY2RkOS5mNTY0NmU2M2VlOTM0MzI0CiAgICAgMTg4ZmYxZmE1NzA0MGY2Mi44Njk4M2NlZWQ1Njc0NzdiLjZjYzEzMzAyOGU5OWZmNzUuYTA0NzYwZjgwMmI5NGU3ZApAQCAtODA3OSwxMiArODA3OSwxMiBAQAogICAgIDg5MjBmNTNkZDE0MzgyYjMuZmVjMTBmNWJiMmIwMTBmYi42NmJiMDZkNjkxOGU1NTg5LmE4OWJmMzQyZmU0YmY5NWIKICAgICBiZWE0OGJjZjFlY2UxMTM5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NTg5NjZiYjA2ZDY5MThlLmE4OWJmMzQyZmU0YmY5NWIKICAgICAxODhmZjFmYTU3MDQwZjYyLjg2OTgzY2VlZDU2NzQ3N2IuNmNjMTMzMDI4ZTk5ZmY3NS5hMDQ3NjBmODAyYjk0ZTdkCiAgICAgOGE4MjFiNTc4NThkZjMzNy5lZjY5MzUzNmYwNmVjNWU1LjE5NWNhNGEyODhiZmMzNzYuZTdjMGI4NDk1MzQ4NGQ4MQogICAgIDg5MjBmNTNkZDE0MzgyYjMuZmVjMTBmNWJiMmIwMTBmYi42NmJiMDZkNjkxOGU1NTg5LmE4OWJmMzQyZmU0YmY5NWIKICAgICBiZWE0OGJjZjFlY2UxMTM5Ci1WUENNUEVRQl8xMjgobWVtKQorVlBTSFVGSFdfMHgzOV8xMjgobWVtKQogICBiZWZvcmUKICAgICAwNGE2ZmVkY2QwZGU0ZjQ0LjczYjU3OTE4ZDhiM2Y5ODMuOTE2ZDQ2NGIzODM4ZTNlYS5hZjJiNTYwOTQ3OGZmMTVhCiAgICAgNTg2ZmM3NTUzMDg2NzBhYi5hMzhkYTU1NDM1Njc5NDUyLjgyMzk1NGYwOWQxMmZjZGQuNTBmODhmYTc0NjUwZDI5NApAQCAtODA5MywxMiArODA5MywxMiBAQAogICAgIGRjODQ4ODNjMGQ4NjcwNzQKICAgYWZ0ZXIKICAgICAwNGE2ZmVkY2QwZGU0ZjQ0LjczYjU3OTE4ZDhiM2Y5ODMuOTE2ZDQ2NGIzODM4ZTNlYS5hZjJiNTYwOTQ3OGZmMTVhCi0gICAgNTg2ZmM3NTUzMDg2NzBhYi5hMzhkYTU1NDM1Njc5NDUyLjgyMzk1NGYwOWQxMmZjZGQuNTBmODhmYTc0NjUwZDI5NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTE2ZGUzZWEzODM4NDY0Yi5hZjJiNTYwOTQ3OGZmMTVhCisgICAgOTRjOTYyMjY1OWQzMzA5Ny43NGY0NzQ1ZDg1ZWU4ZWNkLmFmZjFiNzM4ZmQ0YjE0MDEuYTU2ZWFkMWMyOTVjMzVlNAogICAgIDk1ODE0YzNjNjdjZjRhMzcuNDQzNmUzOWY2M2QxMjRhMC5mMjYxZWEwZTc1ZWVlYTgyLjBiZDlhY2Q0OGQzZjU2ZjUKICAgICBkYzg0ODgzYzBkODY3MDc0CiAKLVZNT1ZIUERfMTI4X1N0b3JlRm9ybShyZWcpCitWUFNIVUZMV18weDM5XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDc1YmQzZWJlNDViY2MxMGQuMzg2MzAwODE3Nzg5N2NiNS42ZDllZWM4NzZjOWU5Mjc2LjI5NTQ2OTVlMjEwODM4OGIKICAgICAzMmNlYzljOGQyNmQ4MzZiLjU3M2JmYWUzYTQwYTdmM2UuNGQ3OThkN2YzYmUwMTRmYy4yZTk4YjAxNDFjYTNiYjQ5CkBAIC04MTA2LDEyICs4MTA2LDEyIEBACiAgICAgODhhYjRlMjA1YTcyNGMyOC43ZGZkYjBhYWM3OTZlZjFmLjllYjg4NDUzOWRmNTQyYzcuMTYzZTg3NjI3MDkyNTA5MwogICAgIGIwMzkwZmQzMDJmZGQ5NzYKICAgYWZ0ZXIKLSAgICA3NWJkM2ViZTQ1YmNjMTBkLjM4NjMwMDgxNzc4OTdjYjUuNmQ5ZWVjODc2YzllOTI3Ni4yOTU0Njk1ZTIxMDgzODhiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjllYjg4NDUzOWRmNTQyYzcuNTA5MzE2M2U4NzYyNzA5MgogICAgIDMyY2VjOWM4ZDI2ZDgzNmIuNTczYmZhZTNhNDBhN2YzZS40ZDc5OGQ3ZjNiZTAxNGZjLjJlOThiMDE0MWNhM2JiNDkKICAgICA2ZjA0MjVjNDUwMjZmMjNiLmQwZDViNjRkMGI2MDEyZmQuM2UxM2MxZjU2ZDI0ZTVkZS5kZmY3M2MxYzgyY2UyZmU4CiAgICAgODhhYjRlMjA1YTcyNGMyOC43ZGZkYjBhYWM3OTZlZjFmLjllYjg4NDUzOWRmNTQyYzcuMTYzZTg3NjI3MDkyNTA5MwogICAgIGIwMzkwZmQzMDJmZGQ5NzYKLVZNT1ZIUERfMTI4X1N0b3JlRm9ybShtZW0pCitWUFNIVUZMV18weDM5XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDg5YjQ0ZjU5NTIxYTg3YmYuZDgwZTQxNDc4Y2RlY2JkZi4zYjdlNjVlOGY0YjhkM2NmLmM3YjRkMjA3NjhkZjY3NjQKICAgICA3ZTdiYzRlMTdmZjYxNTk3LmJkN2JmOGE0ODNmNWFiMGMuZTYyNTRmZjJhZmQzN2EzYS4xNzUzYTg3YzY5NmY4ZjYwCkBAIC04MTE5LDEzICs4MTE5LDEzIEBACiAgICAgMjcxYzM5YTlkYTE4YzVhYi5iMzlmYThiNTJlNTQ4Mjc1Ljc0MTViODFhM2UyMjAwZjAuOTdhOWQ5NTk3ZmFlZGIyNwogICAgIDgxZjgyYzk5Y2I3Njc3NGEKICAgYWZ0ZXIKLSAgICA4OWI0NGY1OTUyMWE4N2JmLmQ4MGU0MTQ3OGNkZWNiZGYuM2I3ZTY1ZThmNGI4ZDNjZi5lNjI1NGZmMmFmZDM3YTNhCi0gICAgN2U3YmM0ZTE3ZmY2MTU5Ny5iZDdiZjhhNDgzZjVhYjBjLmU2MjU0ZmYyYWZkMzdhM2EuMTc1M2E4N2M2OTZmOGY2MAorICAgIDg5YjQ0ZjU5NTIxYTg3YmYuZDgwZTQxNDc4Y2RlY2JkZi4zYjdlNjVlOGY0YjhkM2NmLmM3YjRkMjA3NjhkZjY3NjQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2I3ZTY1ZThmNGI4ZDNjZi5jN2I0Njc2NDY4ZGZkMjA3CiAgICAgNjk1OWU5NThhMzljNDEyZC45MjNjNzFhNWRhNDMyYTVhLjViYmVlY2I0MTRmM2EwOGMuZThlMDAxMWUzZDMwZjc2OAogICAgIDI3MWMzOWE5ZGExOGM1YWIuYjM5ZmE4YjUyZTU0ODI3NS43NDE1YjgxYTNlMjIwMGYwLjk3YTlkOTU5N2ZhZWRiMjcKICAgICA4MWY4MmM5OWNiNzY3NzRhCiAKLVZNT1ZIUERfMTI4X1N0b3JlRm9ybShyZWcpCitWUFNIVUZMV18weDM5XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDAwMWFmNzRhYmUxMzA2N2QuOTQ4ZTMyYmY0MTc2NWQzZS43Y2VlOTc0MTFhYjVmMDBiLjBlZjYyZDExNGE2ZTU3OTMKICAgICA3MTViMzVkOGY0MTFjNTZiLjhjN2M1MDg4ZjNjM2M3MTEuNDg3NjNjYjMzYmYxYjBjNi4wNTJkYzk4MzUyZTI2MGEwCkBAIC04MTMzLDEyICs4MTMzLDEyIEBACiAgICAgOTk2OWZhM2M5NjYyYzIyYS44ZGZiZTdlMGFhNThmYzI5LjVlNjA5NGZkOGEyYzE0NWMuN2FjYjYzOGNjZDc0N2NhYgogICAgIGIwY2I1OWZhNzZhOTA1MDAKICAgYWZ0ZXIKLSAgICAwMDFhZjc0YWJlMTMwNjdkLjk0OGUzMmJmNDE3NjVkM2UuN2NlZTk3NDExYWI1ZjAwYi4wZWY2MmQxMTRhNmU1NzkzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVlNjA5NGZkOGEyYzE0NWMuN2NhYjdhY2I2MzhjY2Q3NAogICAgIDcxNWIzNWQ4ZjQxMWM1NmIuOGM3YzUwODhmM2MzYzcxMS40ODc2M2NiMzNiZjFiMGM2LjA1MmRjOTgzNTJlMjYwYTAKICAgICAzMDA3ZTFiMDA4ZmRmMGMxLmViYjIwZGVmMGMwYWJkNTEuNzU4MzkxNzgyYzk1ZmQ1Mi4zNTg1MDc1ZDc1OGJkOTQ0CiAgICAgOTk2OWZhM2M5NjYyYzIyYS44ZGZiZTdlMGFhNThmYzI5LjVlNjA5NGZkOGEyYzE0NWMuN2FjYjYzOGNjZDc0N2NhYgogICAgIGIwY2I1OWZhNzZhOTA1MDAKLVZNT1ZIUERfMTI4X1N0b3JlRm9ybShtZW0pCitWUFNIVUZMV18weDM5XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGIzNTE2Njk1OGQzNzMyNzAuMDljZTc5ZWEzYmNjNzk1My40ZTI1NTk0OGU2Yjg0MGM2LjVmNWI0MWFjZjA0MjMxOTAKICAgICA1ZjI5MDU0ODJkMjhiZDI2LmRhODM1YzI0OTJjODRlZTguMGFmYWRmMTFkZTM2NDQ1My5kM2JlOTJmM2ZhNjM5MDk5CkBAIC04MTQ2LDEzICs4MTQ2LDEzIEBACiAgICAgMjJmZWU5YTY3YTY5ZTAxNy4xMjA4M2FmMWM4YTQ0OTA0LmUzZDkxODdhNzFiZTdmZjAuODhlZjE1ZjU2ZGY5MDJkZAogICAgIDgxNTUzZTg5MGQ4NDhlNmYKICAgYWZ0ZXIKLSAgICBiMzUxNjY5NThkMzczMjcwLjA5Y2U3OWVhM2JjYzc5NTMuNGUyNTU5NDhlNmI4NDBjNi4wYWZhZGYxMWRlMzY0NDUzCi0gICAgNWYyOTA1NDgyZDI4YmQyNi5kYTgzNWMyNDkyYzg0ZWU4LjBhZmFkZjExZGUzNjQ0NTMuZDNiZTkyZjNmYTYzOTA5OQorICAgIGIzNTE2Njk1OGQzNzMyNzAuMDljZTc5ZWEzYmNjNzk1My40ZTI1NTk0OGU2Yjg0MGM2LjVmNWI0MWFjZjA0MjMxOTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGUyNTU5NDhlNmI4NDBjNi41ZjViMzE5MGYwNDI0MWFjCiAgICAgOTAxZmIyZmY3MzhiNjM0Zi42OWQyOWQ1ODM4ZTE4MDk0LjlkNDhmNjI4YWVkZmM1ZmUuMThkNjg1M2M0NTFjNmMyNAogICAgIDIyZmVlOWE2N2E2OWUwMTcuMTIwODNhZjFjOGE0NDkwNC5lM2Q5MTg3YTcxYmU3ZmYwLjg4ZWYxNWY1NmRmOTAyZGQKICAgICA4MTU1M2U4OTBkODQ4ZTZmCiAKLVZNT1ZIUERfMTI4X1N0b3JlRm9ybShyZWcpCitWUFNIVUZMV18weDM5XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDVkNTRmYzY0YzE0YjRiODcuZjE5NDI2Mjk1ZmQwZWZhOS4zMTcwMmY1YmRmOWJlN2UzLmI4N2FjM2YxNDNkZjJkNTgKICAgICA3YTM3NGNmMjI2ZDk3NmQwLmQ5YWJlNjc0M2RjYzRkMzIuMjI1ODc2MDIxODU1OTNkZS5mOGY2NzI3YjQxNGY4ZDYwCkBAIC04MTYwLDEyICs4MTYwLDEyIEBACiAgICAgZTNkZDhmZDg3MjdjMDZhNy42MzhmZGMxMzU2YWZlNmQ3LmVhZDRlZmI3NjIzYjBjZDcuMjliNGNkNzQzMDQ5NGQwMQogICAgIGQxOGM3MGJjNThlYzI3ZjMKICAgYWZ0ZXIKLSAgICA1ZDU0ZmM2NGMxNGI0Yjg3LmYxOTQyNjI5NWZkMGVmYTkuMzE3MDJmNWJkZjliZTdlMy5iODdhYzNmMTQzZGYyZDU4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVhZDRlZmI3NjIzYjBjZDcuNGQwMTI5YjRjZDc0MzA0OQogICAgIDdhMzc0Y2YyMjZkOTc2ZDAuZDlhYmU2NzQzZGNjNGQzMi4yMjU4NzYwMjE4NTU5M2RlLmY4ZjY3MjdiNDE0ZjhkNjAKICAgICAzMjRjMjk5ZmQ4YmI0YmY3LmI2MTBhNDczMzE2N2I2ZGQuNDEwYjBkNTIxMDViOGNhMS43ZjFiYTEwMjg3MTk1OTM0CiAgICAgZTNkZDhmZDg3MjdjMDZhNy42MzhmZGMxMzU2YWZlNmQ3LmVhZDRlZmI3NjIzYjBjZDcuMjliNGNkNzQzMDQ5NGQwMQogICAgIGQxOGM3MGJjNThlYzI3ZjMKLVZNT1ZIUERfMTI4X1N0b3JlRm9ybShtZW0pCitWUFNIVUZMV18weDM5XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDU1NzAwOGM2MWMwZGExMzYuZTczNzdhMDc5MGE4ZTI4ZC5iZWY0MGEzZWM5YjA5ODRjLjc5MDAxODllYWI4MDUwMmQKICAgICA5MDJjMTA3ZTk3Yjg3OGY0LjliYTZlNjk5Y2ZjYzFjNTUuYTIwYWFiZTJhNTc0ODk2Ny40OWRiODQ3MTg2YjY5NDRlCkBAIC04MTczLDEzICs4MTczLDEzIEBACiAgICAgOWE1YzYxYTkyNGRlMmI5OC44NGYyMzM5NzFlMjk5OTM5Ljc0N2QzMjQxMDk3YjE3NDEuMjFjZTE3OGY2MzI3MGFhNAogICAgIGUwN2QzNWIyOWU3YWI1MzAKICAgYWZ0ZXIKLSAgICA1NTcwMDhjNjFjMGRhMTM2LmU3Mzc3YTA3OTBhOGUyOGQuYmVmNDBhM2VjOWIwOTg0Yy5hMjBhYWJlMmE1NzQ4OTY3Ci0gICAgOTAyYzEwN2U5N2I4NzhmNC45YmE2ZTY5OWNmY2MxYzU1LmEyMGFhYmUyYTU3NDg5NjcuNDlkYjg0NzE4NmI2OTQ0ZQorICAgIDU1NzAwOGM2MWMwZGExMzYuZTczNzdhMDc5MGE4ZTI4ZC5iZWY0MGEzZWM5YjA5ODRjLjc5MDAxODllYWI4MDUwMmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmVmNDBhM2VjOWIwOTg0Yy43OTAwNTAyZGFiODAxODllCiAgICAgNWU4YzA1ZDBlNmZhNjc1Yy41Yzc2ZDBmYmNhNzNmMGFhLmViOWYzOWU5MDYwOTc0NTQuYjhiMTMwOWQ4ZjZhMTNlNwogICAgIDlhNWM2MWE5MjRkZTJiOTguODRmMjMzOTcxZTI5OTkzOS43NDdkMzI0MTA5N2IxNzQxLjIxY2UxNzhmNjMyNzBhYTQKICAgICBlMDdkMzViMjllN2FiNTMwCiAKLVZQQU5EXzEyOChyZWcpCitWQ1ZUUFMyRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTAwYjg2NzFkYmVlNGYzNy4yMjY3YTJmMzZlNzA4MGQ1LjcwNjgwYmRiNjY3YjU0YWQuMWI3MTEyZDVjYWQ1MmM1OAogICAgIGNmYzUwNjNhYjYwZjE2NjcuZDA3YTQzOWNkZmJkMjIzZS43YzIyNTQzMjNmZjQ1ZGIzLmJiNDc1MzkxNjQyMzcwYzUKQEAgLTgxODcsMTIgKzgxODcsMTIgQEAKICAgICA2NmU4ODU5N2I4ODkxNWVjLjEyZTk5NmI3YThiNTNjNDcuNjU5NTJiYzkxMjhjNDgyNC41NWM4ZWMzMTk0Y2M3NDU0CiAgICAgMDcwYzNjZWQ2MjNmYWNjZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42NDAwMDAwMDEyODQ0ODIwLjExNDA0MDExMDQwMDcwNDQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMi4wMDAwMDAwMDgwMDAwMDAwCiAgICAgY2ZjNTA2M2FiNjBmMTY2Ny5kMDdhNDM5Y2RmYmQyMjNlLjdjMjI1NDMyM2ZmNDVkYjMuYmI0NzUzOTE2NDIzNzBjNQogICAgIGI4ZjViMjc4Y2M2OTQ0NmEuODI2MmMwOGU5NGQwY2MwMC4wNTZkMGIwODQ0MjBmMGY3LjJmY2I3MzYxZjM3MTllYjUKICAgICA2NmU4ODU5N2I4ODkxNWVjLjEyZTk5NmI3YThiNTNjNDcuNjU5NTJiYzkxMjhjNDgyNC41NWM4ZWMzMTk0Y2M3NDU0CiAgICAgMDcwYzNjZWQ2MjNmYWNjZAotVlBBTkRfMTI4KG1lbSkKK1ZDVlRQUzJEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICAyMzYxZGY4MjdhZDYwMjRkLjM3ZTk3YjA0MTdmYmM3OWEuNWVkYzQwMDIzNzc5MmIzZS5mOWU2YjBlMTQ0YzNhMmU3CiAgICAgODM5NDRmZGFmODllMzQwMC44NjQ2OTAyOTg0NDk5NDIwLjQwMDYzOTVhNWUyNzU4MTEuMWRhYzk2YmM3NjUxM2FlYwpAQCAtODIwMSwxMiArODIwMSwxMiBAQAogICAgIDgxYjI2ODE4Mjk4MWNjM2EKICAgYWZ0ZXIKICAgICAyMzYxZGY4MjdhZDYwMjRkLjM3ZTk3YjA0MTdmYmM3OWEuNWVkYzQwMDIzNzc5MmIzZS5mOWU2YjBlMTQ0YzNhMmU3Ci0gICAgODM5NDRmZGFmODllMzQwMC44NjQ2OTAyOTg0NDk5NDIwLjQwMDYzOTVhNWUyNzU4MTEuMWRhYzk2YmM3NjUxM2FlYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MDA0MDAwMjE2MjEwODEwLjE5YTQ5MGEwNDQ0MTIyZTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwNjFkCisgICAgMDQ3MTBhZTJmNmEyZmMxMS5hZTQ5YzE3MzljMDFiOTI5Ljk2MzUwMGFkMzljYzdkZWUuMmQzMmQ5Yzc0NWMzNGNkZQogICAgIDgzYzQ4Yjg3OTJlZjE3YWMuMGQ0MDA5NGZmYWFlNzE2Mi4zYTMzMGVlNmUzNzM1N2ZlLjg1YzU3NjZjNGRhNDEzNjkKICAgICA4MWIyNjgxODI5ODFjYzNhCiAKLVZQQU5EXzEyOChyZWcpCitWQ1ZUUFMyRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgN2Q0M2FiMzg3NWU1YjJmZC5kYTU5NGViNGU4OGY0MGZmLmZkNzU2MzI3M2JkZGZhNzcuMGFjZWUwZjI3ODI4YTI3MAogICAgIGQ1YzUzYjM3Y2U1YzAzNWQuZTZmY2NmNTQxMzkxMzUzMy5kYzM1Y2U2OWZhMTk4ZTEzLmUwZDBmM2JiMTVmNzFhNmUKQEAgLTgyMTQsMTIgKzgyMTQsMTIgQEAKICAgICAwOWNiMzM4MTE1YjRkMWE3LjhlOWFmZGEyNWFlNDZlZjUuZDI4NWMwZDc2NGU5Yzk5Mi4xMjNjYzkzN2Q2MTU3ZmMwCiAgICAgMjUzZDg1YzMzMTdjZTQ2YwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMDA1YzA0MTYwMDk4ODEyLjAwMTBjMTMzMTQxNTFhNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCiAgICAgZDVjNTNiMzdjZTVjMDM1ZC5lNmZjY2Y1NDEzOTEzNTMzLmRjMzVjZTY5ZmExOThlMTMuZTBkMGYzYmIxNWY3MWE2ZQogICAgIGU1ODMxNTgwY2Y3MmY5MDcuODQ3ODhiNTUzMGZlYjA3Ny4wNGNjNDM3ZmQ0ZWU2OWUyLjk5MDZjMjJlZDZlZDdhMjUKICAgICAwOWNiMzM4MTE1YjRkMWE3LjhlOWFmZGEyNWFlNDZlZjUuZDI4NWMwZDc2NGU5Yzk5Mi4xMjNjYzkzN2Q2MTU3ZmMwCiAgICAgMjUzZDg1YzMzMTdjZTQ2YwotVlBBTkRfMTI4KG1lbSkKK1ZDVlRQUzJEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICBhZmQ3NzBiZDA0MmQ2NzU0LjljZTc5M2E1M2NhZGM2ZTguZTEyZWExMjdhZTRlMmFkYS5hM2FlNDBkYzQ3OTVlOGNkCiAgICAgOGNkNDA4MTA2YTM0YzJhNS5mYzI0MzE1OGRlZWExNTc3LjU5MDBmM2QwNDc0OWExNTEuZDE5MWJmZmExODdlMDMzZgpAQCAtODIyOCwxMiArODIyOCwxMiBAQAogICAgIDI4OTQwZjIzM2EyMjkyOWMKICAgYWZ0ZXIKICAgICBhZmQ3NzBiZDA0MmQ2NzU0LjljZTc5M2E1M2NhZGM2ZTguZTEyZWExMjdhZTRlMmFkYS5hM2FlNDBkYzQ3OTVlOGNkCi0gICAgOGNkNDA4MTA2YTM0YzJhNS5mYzI0MzE1OGRlZWExNTc3LjU5MDBmM2QwNDc0OWExNTEuZDE5MWJmZmExODdlMDMzZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MTAwYTEwMDA2NDgyMDUwLjgxODAwMGQ4MDAxNDAwMGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDEyYmQyCisgICAgOTgwMWM4YWE4MDlkYjE4Yi44NGNmMDcwNjlhZjVmYWZmLmQzZGM3MDhhNDFlMDhmODcuYjk3YjM5OWQ3MzMxNTU5NQogICAgIGFmMmEyZDc2NjE3NWYyMzEuOTAzMjEzMWMwOTVkYjEyZC4yOThlOTIzZmI5MWZiMGE3LmI4YjhhYTMxZjUzOTFjN2IKICAgICAyODk0MGYyMzNhMjI5MjljCiAKLVZQQU5EXzEyOChyZWcpCitWQ1ZUUFMyRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjY1YjYzZGRkYzc5ZjRhNS5hZDFiYjE2MDJhYzgzZmM0LjdjOTk0ZjA0YzlhYjc2YWQuMzhlMWQ3ZGNjYjEyYmZkZQogICAgIGNlNThhMmNjN2FjOTdkNDEuNmZhMGQyNTRmNmEwNTU2Zi5hMzUyYmEyYjc2NmQ4NDJhLmRjYTJiYTRlOTJjNjc5NTgKQEAgLTgyNDEsMTIgKzgyNDEsMTIgQEAKICAgICA4ZDI4ZDJmYjE0ODVmN2U1LmFhOTVkODBhMDgxNGNiYzAuMTZlNjA1ZTcwNTdiNmRjZC41MzllNGI1ZGIwOWZkZGMzCiAgICAgZGU3MWYxZDMzZmRjMDAwYwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMjQyMDAyMzA0NjkwNDA4LjUwODIwYTRjOTA4NjU5NDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCiAgICAgY2U1OGEyY2M3YWM5N2Q0MS42ZmEwZDI1NGY2YTA1NTZmLmEzNTJiYTJiNzY2ZDg0MmEuZGNhMmJhNGU5MmM2Nzk1OAogICAgIGJjZDljOTVkYWU5ZTZhMWQuY2Y4NDBiM2VlMTBiZjA1Zi42M2E3NGRmZWFiMmUxNzUxLmYxOWRiODgwMmE0NzlhNDAKICAgICA4ZDI4ZDJmYjE0ODVmN2U1LmFhOTVkODBhMDgxNGNiYzAuMTZlNjA1ZTcwNTdiNmRjZC41MzllNGI1ZGIwOWZkZGMzCiAgICAgZGU3MWYxZDMzZmRjMDAwYwotVlBBTkRfMTI4KG1lbSkKK1ZDVlRQUzJEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICA2ZWUyMjVjZGY0MDliZDQ4LjliOTJiYjExNDkwOTYwNDQuZGI5ZGI1YTU4N2M4YTNiZC4xYTU5ZGY1NDFmZGZjMDRiCiAgICAgZGZiYzYzMzdlYTMzZDBhMy40MzYzN2YwZGU4YjdlMGU3LjQwNjkxZmY5NzkzMjM0ODMuY2E0ZGQ2YjA5NWU2NGQ3NgpAQCAtODI1NSwxMiArODI1NSwxMiBAQAogICAgIDc4MjY0Mjk2M2M0OGE3YzIKICAgYWZ0ZXIKICAgICA2ZWUyMjVjZGY0MDliZDQ4LjliOTJiYjExNDkwOTYwNDQuZGI5ZGI1YTU4N2M4YTNiZC4xYTU5ZGY1NDFmZGZjMDRiCi0gICAgZGZiYzYzMzdlYTMzZDBhMy40MzYzN2YwZGU4YjdlMGU3LjQwNjkxZmY5NzkzMjM0ODMuY2E0ZGQ2YjA5NWU2NGQ3NgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MDA5MTVhMTAxMDAyMDgxLjBhNDlkNjEwMTVjNjQwNDIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMGRjZDI4ZmQzZTY1Zjc0OC5lMWU3MWE1YThlMTliNDc5LmI0YzU5MWY0ZmI1ZTM5M2QuODEwZWU2NjcwNDFkNTBmYgogICAgIGQzZGZlZTBiMGJhYmVjNjMuZDE2OTg5NjRkNmJkMThhNy4xMzdkODc4MDI3NTk3MDE4LjlkZTcwYmU1MDgwZTA0ODYKICAgICA3ODI2NDI5NjNjNDhhN2MyCiAKLVZQTU9WTVNLQl8xMjgocmVnKQorVlNVQlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDcwMTU4NmU2M2M1NDcyNWMuMGZiZjMzNGQ2ZTEyNmMyMi42ZjM3YzY5NzVkMmY0ODFkLjM5NWQ3ZDhiMWMyZTkzNDAKICAgICBkZjAyZDM0MWE1YzBhNDAwLjljMzk3MmIwODJhNTMyYWYuMTY5YmNmNjBiZWZhN2Y4Ni4wMjMwZjAwMGY0ZTk1ZWUwCkBAIC04MjY4LDEyICs4MjY4LDEyIEBACiAgICAgOTYwMTc5YzkyMGU2MjgxMy4xOTJhY2Y4NTJlODA4M2U0LmY0NTgzMzVmODBjYmY0ZTMuZWNlMjM5ZDhiZTQzZTAzYQogICAgIGM2NTkwODEzZThmOTBlNGMKICAgYWZ0ZXIKLSAgICA3MDE1ODZlNjNjNTQ3MjVjLjBmYmYzMzRkNmUxMjZjMjIuNmYzN2M2OTc1ZDJmNDgxZC4zOTVkN2Q4YjFjMmU5MzQwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc0NTgzMzVmYmVmYTdmODYuNmNlMjM5ZDhmNGU5NWVlMAogICAgIGRmMDJkMzQxYTVjMGE0MDAuOWMzOTcyYjA4MmE1MzJhZi4xNjliY2Y2MGJlZmE3Zjg2LjAyMzBmMDAwZjRlOTVlZTAKICAgICAyMjM3MjUxNDEyMTg3NzU5LjU2MTkyNzFlNjM3MGZiMzYuMjRlMmEwMjk5NWFhZmE4Zi40YWMzNWFjYmNiOTc4ZjI0CiAgICAgOTYwMTc5YzkyMGU2MjgxMy4xOTJhY2Y4NTJlODA4M2U0LmY0NTgzMzVmODBjYmY0ZTMuZWNlMjM5ZDhiZTQzZTAzYQotICAgIDAwMDAwMDAwMDAwMDZkMmQKLVZQTU9WTVNLQl8xMjgobWVtKQorICAgIGM2NTkwODEzZThmOTBlNGMKK1ZTVUJQU18xMjgobWVtKQogICBiZWZvcmUKICAgICBiM2Y0NDQ2ODY2YzZkNDg2Ljk1YWJjOWNlNmJiOGYzZGMuYzAzYWU1Y2ZmZmUwODZlNS5lMjQ5ODU2ZjE4ZWFhYjJmCiAgICAgOGU3ZjY3YzM1M2I1ZWYxNS43YzgzMTM4ZDhkMWExNDVkLjI5MTNlNWVhZjE5Y2JmNjQuNGEwMTkzYzNmYjkyNTkxZgpAQCAtODI4MywxMSArODI4MywxMSBAQAogICBhZnRlcgogICAgIGIzZjQ0NDY4NjZjNmQ0ODYuOTVhYmM5Y2U2YmI4ZjNkYy5jMDNhZTVjZmZmZTA4NmU1LmUyNDk4NTZmMThlYWFiMmYKICAgICA4ZTdmNjdjMzUzYjVlZjE1LjdjODMxMzhkOGQxYTE0NWQuMjkxM2U1ZWFmMTljYmY2NC40YTAxOTNjM2ZiOTI1OTFmCi0gICAgMzVjNmVmMTFjY2QyMWIyNS5hN2QzNTI3NDI1OTZjNjQ1LjJlODI0YmMxMjBjMWViOGUuODhjYjU4YzljNTUwM2I1ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MDNhZTVjZmZmZTA4NmU1LjYyNDk4NTZmZmI5MjU5MWYKICAgICA4Mjk0NTczY2VjMmExNGUxLjczZTk4M2VlY2NiYTQ2M2UuYWQ1MzkzNDBhOTVhYzY4Zi5mN2Y1ZDBlYzExYWY4Yzk4CiAgICAgZjVjOWY4OTg3YjNiODk3YgogCi1WUE1PVk1TS0JfMTI4KHJlZykKK1ZTVUJQU18xMjgocmVnKQogICBiZWZvcmUKICAgICBkZDk0Y2IzOWEwODA2ZWIxLjUzYjYxYjMyZDBjODk1NzYuM2EwZmEwNjcyMDEyY2ZmNS44MTUyM2E1M2E4NzQwYzkyCiAgICAgMGFhMjQ0M2IxYjBiNzdlNi44M2Y4YjhkZDkzYjk1YzEwLjU5OTJhNzRiYmQyODlmMTUuODU0YWJiZTYzODE5NzhjNApAQCAtODI5NSwxMiArODI5NSwxMiBAQAogICAgIGE3YjYxZTEyODUyMWU0MDAuNmUwYzY5MDcyOGMxYTYwMC4wZmRlNjAwNDQwYzRmZTQyLjkxNTkzYjNkN2MzYWI1NjMKICAgICA1MTA3MzNkODY4Y2RmZDI4CiAgIGFmdGVyCi0gICAgZGQ5NGNiMzlhMDgwNmViMS41M2I2MWIzMmQwYzg5NTc2LjNhMGZhMDY3MjAxMmNmZjUuODE1MjNhNTNhODc0MGM5MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OTkyYTc0YmMwYzY0ZjgwLjExNTkzYjNjZmMzYWI1NjMKICAgICAwYWEyNDQzYjFiMGI3N2U2LjgzZjhiOGRkOTNiOTVjMTAuNTk5MmE3NGJiZDI4OWYxNS44NTRhYmJlNjM4MTk3OGM0CiAgICAgZGEzZjYyMGE4OTY3ZTBjNy5lZDI2YTgyYjUyMDcyMmRhLjJjYmU5MzA2M2U4YWYwNGIuOTcwOTkyZTU3NTU3Yzc1MAogICAgIGE3YjYxZTEyODUyMWU0MDAuNmUwYzY5MDcyOGMxYTYwMC4wZmRlNjAwNDQwYzRmZTQyLjkxNTkzYjNkN2MzYWI1NjMKLSAgICAwMDAwMDAwMDAwMDA2YWIxCi1WUE1PVk1TS0JfMTI4KG1lbSkKKyAgICA1MTA3MzNkODY4Y2RmZDI4CitWU1VCUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjFkZmY0YTM1NjFjNWNjYy5jZjU1NzViZmFjYzRjMDNjLmUzNzU3NjVkMzFmMGEyYjAuNWU0MDBhYjE1ZTYxMDdhNwogICAgIDhlYWRmYzhiNjEzMzhlN2IuYWQ2NjY0N2U5OWRjYWYyOC4yNjJmNGMxOThhYTJkMzE0Ljc1MmU4ZTdhMzRlZDQ1MjYKQEAgLTgzMTAsMTEgKzgzMTAsMTEgQEAKICAgYWZ0ZXIKICAgICBiMWRmZjRhMzU2MWM1Y2NjLmNmNTU3NWJmYWNjNGMwM2MuZTM3NTc2NWQzMWYwYTJiMC41ZTQwMGFiMTVlNjEwN2E3CiAgICAgOGVhZGZjOGI2MTMzOGU3Yi5hZDY2NjQ3ZTk5ZGNhZjI4LjI2MmY0YzE5OGFhMmQzMTQuNzUyZThlN2EzNGVkNDUyNgotICAgIGM1M2RjNjdiYTYxZjRmNjAuOWMzNmU2YjllOWY2ZWU3MC4xNTA0NjUyNzRmZTJmNTU4LmIwZjVlN2M5NWZmNGY1NmEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjM3NTc2NWRiMWYwYTJiMC43NTJlOGU3YWRlNjEwN2E3CiAgICAgMzA1YmNmNWY0MGViNWFhOC5mOTExZjdkZTM3OWRiOWJmLjhhYzEzZjczOWJiY2M0YTkuNmJlMTExMGM3YjAzNTMyMAogICAgIDAyM2UwOGFkMjJhNTlhZjMKIAotVlBNT1ZNU0tCXzEyOChyZWcpCitWU1VCUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZDE1OGM5MWFmMzY3MDc5MC5hY2QyOTEyMjRjYTQ2YzdmLjIxNDM5NDU4MjA1ZDRjYzEuNjIzMjU1ZWE4YTNkZmIzMwogICAgIDM0N2I0ZmJlODhkM2Q2YTIuMTY2ZjhhYjJlNTU1NDExMC42ZTE3Yjc5MzNmYzNlMzI0LjdhMjMyMzc2Mzk3MDU3MjEKQEAgLTgzMjIsMTIgKzgzMjIsMTIgQEAKICAgICAyNjBhOWE1YjZmZGY4OWQ4LjFmNGIwZWU3MmZjZjIzMTEuZWJkOTg0ZmI5MWFlMGJiNy5kNWI0ZDg4MTQ1MWU2ZGRiCiAgICAgZDFlZGI3ZDhkYWIwOWZmZgogICBhZnRlcgotICAgIGQxNThjOTFhZjM2NzA3OTAuYWNkMjkxMjI0Y2E0NmM3Zi4yMTQzOTQ1ODIwNWQ0Y2MxLjYyMzI1NWVhOGEzZGZiMzMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmUxZTgzYmIzZmMzZTMyNC43YTIzMjM3NmM1MWU2ZGRhCiAgICAgMzQ3YjRmYmU4OGQzZDZhMi4xNjZmOGFiMmU1NTU0MTEwLjZlMTdiNzkzM2ZjM2UzMjQuN2EyMzIzNzYzOTcwNTcyMQogICAgIDg3ZjI5NjA1N2Q3NzQyZDcuNDhmZTM1ZmEyNzBhOTU4Ny4zZWRiNWVmYTMxNWFiOTkyLmFjNjAyNjA1YzM2MjkzYTAKICAgICAyNjBhOWE1YjZmZGY4OWQ4LjFmNGIwZWU3MmZjZjIzMTEuZWJkOTg0ZmI5MWFlMGJiNy5kNWI0ZDg4MTQ1MWU2ZGRiCi0gICAgMDAwMDAwMDAwMDAwMzYwMAotVlBNT1ZNU0tCXzEyOChtZW0pCisgICAgZDFlZGI3ZDhkYWIwOWZmZgorVlNVQlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDdjZDUzZWY1OWYyNWU1MzguNmMwZjU3MmNmOTk2ZTU1NC43NzIyOTI2MzE5YjFhOGRhLmQyNWUyNjAyZmI0YzE0NDAKICAgICBiMjM5ZWFjNGFmODdmZGIxLmI3NGRjYWU0YjgyODkyZjUuMmM0ZjNjNWIwMGJiZGYwZS40ZmI2M2U3OTBjYmYxMmQ5CkBAIC04MzM3LDExICs4MzM3LDExIEBACiAgIGFmdGVyCiAgICAgN2NkNTNlZjU5ZjI1ZTUzOC42YzBmNTcyY2Y5OTZlNTU0Ljc3MjI5MjYzMTliMWE4ZGEuZDI1ZTI2MDJmYjRjMTQ0MAogICAgIGIyMzllYWM0YWY4N2ZkYjEuYjc0ZGNhZTRiODI4OTJmNS4yYzRmM2M1YjAwYmJkZjBlLjRmYjYzZTc5MGNiZjEyZDkKLSAgICA1MGU1MzUzMTI3ZTVhMTk3LjYyMTBlZWYwNDcyMmNlNjcuMWE5ZDg3YmMwMGZhODZkOC5iZjJkY2FjZDYwOTMzZjJkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY3MjI5MjYzOTliMWE4ZGEuNTI2M2Q3ZjY3YjRjMTQ0MAogICAgIDMwYTQ5ZDI4MjI0ODhlMTUuYzhhNGJmYmE0MzBlZDM1Ny4xZGQ5ZjI3MDM2Nzk1NzY0LjdjMGZjNTZhOTE1NWQ3ZTkKICAgICBlM2E4MmJiZDNlOTAxOGI4CiAKLVZDVlRUU1MyU0lfNjQocmVnKQorVkFERFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDUwNDNmODMwMDFkMDNjNDcuMmY0NDlkOTViZGJlODA1OC40NzU0MzliMDQ3N2JkZTcxLjExY2ZmNjY1YmU0NDBlZTAKICAgICAxZjJkMjkzMTc2YTI4MDQyLjI5OGZiMTY0MTM1MjMyOGMuM2E2ZTU4M2NlZmYyMmE2MC5kMjRiMTA4NWIyNjg2OTc1CkBAIC04MzQ5LDEyICs4MzQ5LDEyIEBACiAgICAgNTMxZWE0OGFlODI5NTcyYS43ZDVhMDZkOTYxMDZjOTc1LmViMGI3N2NiOWUzMzc5NzAuMmIwNTc4ZmI1NWU4ZjZhMQogICAgIDdiZGFiZDI4M2E1ZGExOGUKICAgYWZ0ZXIKLSAgICA1MDQzZjgzMDAxZDAzYzQ3LjJmNDQ5ZDk1YmRiZTgwNTguNDc1NDM5YjA0NzdiZGU3MS4xMWNmZjY2NWJlNDQwZWUwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmViMGI3N2NiZWZmMjJhNjAuZDI0YjEwODU1NWU4ZjZhMQogICAgIDFmMmQyOTMxNzZhMjgwNDIuMjk4ZmIxNjQxMzUyMzI4Yy4zYTZlNTgzY2VmZjIyYTYwLmQyNGIxMDg1YjI2ODY5NzUKICAgICBhY2IyYjkyYjNhOTEyMDU0LmZhNTM1NTgxNDAxMTYxZGMuZmMzYzE5Y2NkODAxZjVkMS4zYzE5YmRiZTMxZjAyMjUyCiAgICAgNTMxZWE0OGFlODI5NTcyYS43ZDVhMDZkOTYxMDZjOTc1LmViMGI3N2NiOWUzMzc5NzAuMmIwNTc4ZmI1NWU4ZjZhMQotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZDVlRUU1MyU0lfNjQobWVtKQorICAgIDdiZGFiZDI4M2E1ZGExOGUKK1ZBRERQU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwODY2MDkzMWZkNWFkZTQ2LjcwYmRlNmJhMWRmNzYyNmYuOTA3MTNmNTY5MjNkMjU4Mi42MTI3NmVhNWRjMTVmMmU4CiAgICAgYWU3M2Q3MDJiOWViNmFmNS41ZmRiN2IyNzc0ODY3ZGQwLjBlNjM3Y2U2ZWVjMzMzMzAuYmNkYmZiYzYyZTMyOWVlNQpAQCAtODM2NCwxMSArODM2NCwxMSBAQAogICBhZnRlcgogICAgIDA4NjYwOTMxZmQ1YWRlNDYuNzBiZGU2YmExZGY3NjI2Zi45MDcxM2Y1NjkyM2QyNTgyLjYxMjc2ZWE1ZGMxNWYyZTgKICAgICBhZTczZDcwMmI5ZWI2YWY1LjVmZGI3YjI3NzQ4NjdkZDAuMGU2MzdjZTZlZWMzMzMzMC5iY2RiZmJjNjJlMzI5ZWU1Ci0gICAgNDljZWEyODg4YTFkMDFjNi43Y2MzNjAzZDhhNjNlM2Y5LmQzZmUzOTc0OTFhM2FkYWIuNTY3NTE4OWEzMTE2YjcxNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MDYzMDc4OGVlYzMzMzMwLjYxMjc2ZWE1ZGMxNWYyZTgKICAgICBiNTQzZTlhZDhkZmI1ZmU2LjIzYzI5MDY4ZmExOWQyOTUuYmIwZGYyZWI5OGU5NGYxZS44ZDNmYzM4ZDgxNGU3YTIyCi0gICAgZmRhODM0NjAwMDAwMDAwMAorICAgIGJiODZmNzBiYjk2NTIyYjgKIAotVkNWVFRTUzJTSV82NChyZWcpCitWQUREUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgM2U5NmIwODE3NWU3ZWQ4NC5jZDllMjU1ZWRlOTEzZjgxLmIwMjUwNzE0NjAzNDgzNTEuYTI1YjI0MzkxZWEyZDdiNgogICAgIDcwYmJlYjU5NTI2MTE1MzIuNmZhYWQzODg5OGVjNWVjMi43ZjM2YzFhZTU5NDAzNWQ4LjYzYjU0YTQ5NDBkOWZmOWUKQEAgLTgzNzYsMTIgKzgzNzYsMTIgQEAKICAgICA1NTc0ZDNlM2RkNmE2ZWUyLmJkMDk3N2YzYjkxZTQ4ZTguNTM5NGYwNTg3MzVkODhmYS5lOGJkNjM2MGM2ZjIyMTEwCiAgICAgNjIwMzRkM2U2M2VjOTNmMwogICBhZnRlcgotICAgIDNlOTZiMDgxNzVlN2VkODQuY2Q5ZTI1NWVkZTkxM2Y4MS5iMDI1MDcxNDYwMzQ4MzUxLmEyNWIyNDM5MWVhMmQ3YjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2YzNmMxYWU3MzVkODhmYS5lOGJkMzYwZGM2ZjIxMzcwCiAgICAgNzBiYmViNTk1MjYxMTUzMi42ZmFhZDM4ODk4ZWM1ZWMyLjdmMzZjMWFlNTk0MDM1ZDguNjNiNTRhNDk0MGQ5ZmY5ZQogICAgIGFlNDFhMjAxZWI1ZWQ2NmQuNzYzNTcwMTZkODE3NzdkNi5lYzQxYmJhMDgxY2EyMmQ3LmRjZTdlMDA3MTk5YTg0MDMKICAgICA1NTc0ZDNlM2RkNmE2ZWUyLmJkMDk3N2YzYjkxZTQ4ZTguNTM5NGYwNTg3MzVkODhmYS5lOGJkNjM2MGM2ZjIyMTEwCi0gICAgMDAwMDAwMDAwMDAwMDAwNgotVkNWVFRTUzJTSV82NChtZW0pCisgICAgNjIwMzRkM2U2M2VjOTNmMworVkFERFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDI4ODQxYzhlMGE5NTk2ZDUuYmY5Zjc5NmRjMzEyMTczYy4yMmYzNjQwZDU3MGU4YjI1LjBmN2E1YzQwY2M4NmEwZWMKICAgICAxNTBkNGIzZGQ5ZjdlNmU1LjQ5MGY5MTBhM2FlMTBlMjguODBiZmI0NGZjZmYyZmRiOS43ZTNlZmJjNjI2ZDBhOTU5CkBAIC04MzkxLDExICs4MzkxLDExIEBACiAgIGFmdGVyCiAgICAgMjg4NDFjOGUwYTk1OTZkNS5iZjlmNzk2ZGMzMTIxNzNjLjIyZjM2NDBkNTcwZThiMjUuMGY3YTVjNDBjYzg2YTBlYwogICAgIDE1MGQ0YjNkZDlmN2U2ZTUuNDkwZjkxMGEzYWUxMGUyOC44MGJmYjQ0ZmNmZjJmZGI5LjdlM2VmYmM2MjZkMGE5NTkKLSAgICAwNDZiNTYzNWVjMjAzZTRjLjRmMTExNTI2ZGQ2MzhlNTIuYjIzOWUxYTUzZGQ2NTljZi5mYjJkY2E1NTIwYzdkZGVmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIyZjM2NDBkNTcwZTg5M2YuN2UzZWZiYzZjYzg2YTBlYwogICAgIGQzNjhiYTY0NWUxYzVjMzkuMmRlZjAzMmQ0ODI1ZDU2NS45NjJjNjlmYmJiYzc1ZDkzLmUxOTNjMzU5NTRmNzc5NTgKLSAgICBmZmZmZmZmZmZiY2FmOGEwCisgICAgOGViY2U0M2U1ZWVkYjk0MAogCi1WQ1ZUVFNTMlNJXzY0KHJlZykKK1ZBRERQU18xMjgocmVnKQogICBiZWZvcmUKICAgICA1ZGY0Mjg3MGRiMzRkODU0LjVjZDFmMWI1NGNmNmY5ZDYuM2ZmNTU2OGIxOGIyMWQwZS4wNjY2YzczZDY4ZDBjMzMzCiAgICAgYTk4NjhiNWI2NjU5MTM0MC43ZDcxNzkxNGQxYmFkNDUwLmUxNzEwYWFjZTk5NmEzZjguZTBiMTc3NTg1ZWZlNDdkOQpAQCAtODQwMywxMiArODQwMywxMiBAQAogICAgIDJjZWNhMDBkMTg2YWNkNGUuZjI4YTZhYWMxMTMxMmY4OS40NmY3ODZlOGZjOTU1NzQyLjNlYWRiZmM1OTZmNTlkZTgKICAgICA3YWY2NGVlZjEwZDhlNmFhCiAgIGFmdGVyCi0gICAgNWRmNDI4NzBkYjM0ZDg1NC41Y2QxZjFiNTRjZjZmOWQ2LjNmZjU1NjhiMThiMjFkMGUuMDY2NmM3M2Q2OGQwYzMzMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lMTcxMGFhY2ZjOTU1NzQyLmUwYjE3NzU4NWVmZTQ3ZDkKICAgICBhOTg2OGI1YjY2NTkxMzQwLjdkNzE3OTE0ZDFiYWQ0NTAuZTE3MTBhYWNlOTk2YTNmOC5lMGIxNzc1ODVlZmU0N2Q5CiAgICAgZDBjMDBhNmM5Y2U3YTZhZi4xMDE2Y2Q2ZDA5NzRhN2QyLjcwYWUxY2ZjNTY1ZWEyZDAuZmVkYWY2MzZiOTViYTdiMQogICAgIDJjZWNhMDBkMTg2YWNkNGUuZjI4YTZhYWMxMTMxMmY4OS40NmY3ODZlOGZjOTU1NzQyLjNlYWRiZmM1OTZmNTlkZTgKLSAgICA3ZjIzZWM4MDAwMDAwMDAwCi1WQ1ZUVFNTMlNJXzY0KG1lbSkKKyAgICA3YWY2NGVlZjEwZDhlNmFhCitWQUREUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOGY4MTFmYTI0NDBmM2QyMi4xYjU3NDlhYzc3NmZjM2M5LjAwOWJjYWJkMDVmYzI4YTAuYzA5OTQ2ZGE3NmM4ZmVmOQogICAgIDVhMWFhZWM5NGRhNjYwN2QuZjc0ZDAxYjM1NDgxYzVjYi4xNDEzNmI4YzAwZTI0ZTQ0LjNhZTA1NzQwNjA4MWQzYTIKQEAgLTg0MTgsMTEgKzg0MTgsMTEgQEAKICAgYWZ0ZXIKICAgICA4ZjgxMWZhMjQ0MGYzZDIyLjFiNTc0OWFjNzc2ZmMzYzkuMDA5YmNhYmQwNWZjMjhhMC5jMDk5NDZkYTc2YzhmZWY5CiAgICAgNWExYWFlYzk0ZGE2NjA3ZC5mNzRkMDFiMzU0ODFjNWNiLjE0MTM2YjhjMDBlMjRlNDQuM2FlMDU3NDA2MDgxZDNhMgotICAgIGI1OGM3ODRmNDdhOTA5ZTYuMWUxYWM0OTA0YzJjMGYwMC4wYmJmYzgwNTFlZWQ1Y2ExLjBmMThiNTg0NTc0ZTExZTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTQxMzZiOGMwNWZjNjEzNC5jMDk5MzhkNTc2YzhmZWY5CiAgICAgN2RhNGY4MjI0ZjI1ZjU4YS5lYTBhOGZhZWZhZmRkYzE2LmMyNmI1ZDE1N2MyYzBmZTIuOWQ4ZDVkMTRmNmJiZjU3OAotICAgIDgwMDAwMDAwMDAwMDAwMDAKKyAgICAzZjhhNGE1YmRhNTNiYmZlCiAKLVZQQUNLVVNXQl8xMjgocmVnKQorVk1VTFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDUxNWQ3OGM1OWVhMjlmMjUuOGUyZWFhMmQ4MTI1ZGY5NS5iODY4NWQ3OWZhN2Y2OWI3LjEzZTJhN2E2MzVhODIyMzQKICAgICAyZjUwZTNiZWRmMzRkYzlhLmM1ZjYwYTVkZjhiNjg0MzIuZTU4MjJhNWRlOTNlZjI4Zi5kYmYyMjBhNjY2NmY1M2MyCkBAIC04NDMwLDEyICs4NDMwLDEyIEBACiAgICAgYmVjOTYxMGQ0NjUzNTQxYy4xMDcwYzVkNzI3YjhlZmQ0LmM3MTViMjIwMDNhNWU3OTcuNDAwODk0OWY5ZTBjZjk0NQogICAgIDk1YTc4NjcxZGRmYWU4OTEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGZmMDBmZjAwMDAwMC4wMGZmMDAwMDAwZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZkMTgzYTc0YWQ3NzdlMjcuZGM4MTJkZTljNTAzY2FkNwogICAgIDJmNTBlM2JlZGYzNGRjOWEuYzVmNjBhNWRmOGI2ODQzMi5lNTgyMmE1ZGU5M2VmMjhmLmRiZjIyMGE2NjY2ZjUzYzIKICAgICAzNWIwODdiMjM4OTZhZjA4LmZjYzg5NDljZDFlM2EwOGUuY2JhMmYyYzY2M2M3YjM0Yi5mNjY1NDZmZjJhOGM1Y2JhCiAgICAgYmVjOTYxMGQ0NjUzNTQxYy4xMDcwYzVkNzI3YjhlZmQ0LmM3MTViMjIwMDNhNWU3OTcuNDAwODk0OWY5ZTBjZjk0NQogICAgIDk1YTc4NjcxZGRmYWU4OTEKLVZQQUNLVVNXQl8xMjgobWVtKQorVk1VTFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGQyMGU5OTYxMDQ2MmUzY2EuMjhlNzZjM2NhNGY4MDY4Mi5kZGI5MThmYjE2NDIyYzMxLjM2Mjc2NGQ3NjU2NGNiMWUKICAgICBkMTA5NDg1YjJlNTBhNzFjLmNlNTVhNGE5ZWYxMDAyZTUuM2Y3MDA5ZjJiYjhjMTRkMS43MjIzMDY1ODI2OTE5YjhkCkBAIC04NDQ1LDExICs4NDQ1LDExIEBACiAgIGFmdGVyCiAgICAgZDIwZTk5NjEwNDYyZTNjYS4yOGU3NmMzY2E0ZjgwNjgyLmRkYjkxOGZiMTY0MjJjMzEuMzYyNzY0ZDc2NTY0Y2IxZQogICAgIGQxMDk0ODViMmU1MGE3MWMuY2U1NWE0YTllZjEwMDJlNS4zZjcwMDlmMmJiOGMxNGQxLjcyMjMwNjU4MjY5MTliOGQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBmZmZmZmZmZmZmZmYwMC5mZmZmMDBmZmZmZmZmZjAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRkYWQ4ZTljOTI1NDdmZWEuNjhkNTMyYjY0YzgyMjIxMQogICAgIDg4ZWE2YTFlZmRmMTc5YjguM2Q1NThjZjFiYWNhYzg1NC4zMjU4YjYwZDk1OTBkNDg4LmM0MGQwODY0MzQ2MmVlZDEKICAgICA5MjkzNWZjN2I4MWZlOWZmCiAKLVZQQUNLVVNXQl8xMjgocmVnKQorVk1VTFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDllMzM5NmE0MGI3OWJmYzQuZjg2OGQ1YmVkOWJhZmY1Yi5iZjdlMzNhNDcyODMwOWI4LjdiMjE2YTA5MDI2MzI1ZjcKICAgICA0NDNhYTg2NmM4ZmNhZWNkLjlhYWFjZDE4MjkzYTNlYzcuZWMyOGY4NDY4NmUxODRjOS5jOTg4YWM4OTk1MjcxMDU5CkBAIC04NDU3LDEyICs4NDU3LDEyIEBACiAgICAgY2VhYzRlNDlmMmFmYzI1OS5lOWFhNTFhYzk0OGRkNmE4LmJiMmZjYTA3MzViNTE3YTUuZTQ1ZmNhYzU5YmFlYTZhNQogICAgIDY5Njc5ZjU5NDY4YmM5ZTcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGZmZmYwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMGZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY3ZTgwZTIxODAwMTNmMGYuNmU2ZWY1MTkwMDAwMDAwMAogICAgIDQ0M2FhODY2YzhmY2FlY2QuOWFhYWNkMTgyOTNhM2VjNy5lYzI4Zjg0Njg2ZTE4NGM5LmM5ODhhYzg5OTUyNzEwNTkKICAgICBlMGYzOTI3OThjMzVmMGM1LjRjN2NjZDE5MDk3ZGYxMjcuMjI5ZmQ2NDM5MzZkNzQzNC5mODU4Zjg3OTY5ZTY1MWRhCiAgICAgY2VhYzRlNDlmMmFmYzI1OS5lOWFhNTFhYzk0OGRkNmE4LmJiMmZjYTA3MzViNTE3YTUuZTQ1ZmNhYzU5YmFlYTZhNQogICAgIDY5Njc5ZjU5NDY4YmM5ZTcKLVZQQUNLVVNXQl8xMjgobWVtKQorVk1VTFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDYyM2RmMjIyODc4Nzc3Y2IuNmFhZmRhNDI5N2Y3NWYzNS40ZDAwZDViY2U2NzhhNzc2LjE1MjRjZWZlMDc0NWE3YzcKICAgICBhZGFkM2YwYTc5YjA2YjdlLjEwNGEzMWQwMTY5NzA0MDQuNTQ0OWQ1MzcxYzQ5MjBiYy44YWM5ZTA5NGE1YTc2MTQ3CkBAIC04NDcyLDExICs4NDcyLDExIEBACiAgIGFmdGVyCiAgICAgNjIzZGYyMjI4Nzg3NzdjYi42YWFmZGE0Mjk3Zjc1ZjM1LjRkMDBkNWJjZTY3OGE3NzYuMTUyNGNlZmUwNzQ1YTdjNwogICAgIGFkYWQzZjBhNzliMDZiN2UuMTA0YTMxZDAxNjk3MDQwNC41NDQ5ZDUzNzFjNDkyMGJjLjhhYzllMDk0YTVhNzYxNDcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmYwMDAwMDBmZjAwZmYwMC5mZjAwZmZmZjAwMDAwMGZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYxY2IyNjNjYzM0MzViNDcuODAwMDAwMDA4MDAwMDAwMAogICAgIGE2OGFiOGViZTJiNzE4MDAuZWE3MzMwNWMxMzE1NTYyZC5iYWU4M2IxYmEyY2ZmZTYyLjM5NTYxYjRkYjcxNjQyMTAKICAgICAyYWQ2M2Q0OTYzM2JlMWIwCiAKLVZQQUNLVVNXQl8xMjgocmVnKQorVk1VTFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGE4Mzc1YjkzNGI2MzlhNWYuMGI5MGRiYmM5MGFkNDkyNy5kNjlhZDEzMWNhMGE3YWRmLmQyZDU5ODVjMmI5Y2RhMWEKICAgICAwZGM1NzM5OTBjMWFhOGM2LjMyNWZlOTVjNjAwMGIwY2MuM2I4NzJjNGNjYjg4OTYzNS5mZGU1NjFiNzA2N2U0ZWZiCkBAIC04NDg0LDEyICs4NDg0LDEyIEBACiAgICAgZmY5NjdmODY4NzY3YjY3My4zMjhiYjRiZWQ1ZWExMzQyLmU1ZTcwNjAwMWM1MGE2N2EuZmJhMzI5NmMyOGI3ZjFlNQogICAgIDg3ZTcxZjlkYTcyNDk4NDgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBmZmZmMDAwMGZmZmYwMC5mZmZmMDAwMDAwZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUxZjNmODQ3YTg1ZWE1YmIuN2Y4MDAwMDAwMDAwMDAwMAogICAgIDBkYzU3Mzk5MGMxYWE4YzYuMzI1ZmU5NWM2MDAwYjBjYy4zYjg3MmM0Y2NiODg5NjM1LmZkZTU2MWI3MDY3ZTRlZmIKICAgICBiNmNiODBjNjQxZWQ0ODk0LmY2YzQ1ZWI5NmViYTBhMWMuNzc4ODNmMThiMjFjZTZkYS4xNmU2MTMxOTUyODMxNzMwCiAgICAgZmY5NjdmODY4NzY3YjY3My4zMjhiYjRiZWQ1ZWExMzQyLmU1ZTcwNjAwMWM1MGE2N2EuZmJhMzI5NmMyOGI3ZjFlNQogICAgIDg3ZTcxZjlkYTcyNDk4NDgKLVZQQUNLVVNXQl8xMjgobWVtKQorVk1VTFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDk1N2Y3MTk5ZThkOWM3ODMuNDQ3MjZhNDQ3OTE0MmUwZi5jNDgwNjk1N2IxOTk4NzZiLmUxZjE3YjcyYTViMzExYzMKICAgICAwMzM3OWI0YjA5ZGYzY2MyLmUyYWIzZjZlYjQ4MWViMTYuODY2ZmY3NzAxZmQ1MjFjMy5jNmYzOWNkOWU4Y2U2NDVmCkBAIC04NDk5LDExICs4NDk5LDExIEBACiAgIGFmdGVyCiAgICAgOTU3ZjcxOTllOGQ5Yzc4My40NDcyNmE0NDc5MTQyZTBmLmM0ODA2OTU3YjE5OTg3NmIuZTFmMTdiNzJhNWIzMTFjMwogICAgIDAzMzc5YjRiMDlkZjNjYzIuZTJhYjNmNmViNDgxZWIxNi44NjZmZjc3MDFmZDUyMWMzLmM2ZjM5Y2Q5ZThjZTY0NWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBmZjAwMDAwMGZmMDBmZi4wMDAwZmZmZjAwMDAwMGZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBiNzBiY2VjOTFmZmEzZDcuNjk2NWNjMjE0ZjEwNWU4MAogICAgIDZiMzc2OTgwNWExM2UyZmYuOTQ2NDk0YjQ3MmM5MjcwZi4wZTY5OTRkMzFmMjFiYWFlLmMwMDljZjM3MGQ2MWIxNDEKICAgICA4YmI3ZDkwNTI3ZjEyM2UwCiAKLVZDVlRTUzJTRF8xMjgocmVnKQorVk1BWFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGIxOGI3Zjc4NmM2YTZkODIuMWQxNzA0ZGNjMTU4OGM1NC42MTdiMGRhNzJmYmIxZDVhLjhjMGQ5OWY0ZWE0YTMwOWEKICAgICA4Y2QyYmJmZDc3NThjYmQ0LjllNDY2NzllNzgyMDZiNWUuZjYyMDVlYjVhMzllNGFiZS5hYWRjNjk0NmI1MmZiZDY0CkBAIC04NTExLDEyICs4NTExLDEyIEBACiAgICAgZDVlYWViZTk1MWM1YjEzNy43ZWM0NzcwNTQ1NjdiODQwLmU4M2Y3ZGQzMjU2MDMzODQuM2EyNTU3MjljMTVlMGM0NAogICAgIDYzMzk2ZDkzMzljMTQ1YjIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjYyMDVlYjVhMzllNGFiZS5jMDJiYzE4ODgwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU4M2Y3ZGQzMjU2MDMzODQuM2EyNTU3MjliNTJmYmQ2NAogICAgIDhjZDJiYmZkNzc1OGNiZDQuOWU0NjY3OWU3ODIwNmI1ZS5mNjIwNWViNWEzOWU0YWJlLmFhZGM2OTQ2YjUyZmJkNjQKICAgICA3YWQ5OGJmZWU1NDg3ODgyLmNiOTEwZmIyOWI3NjNiNDkuYWY5ZDg1NGI2Y2ZiZThlOS40NTlmN2ZiMzlmZGQxZDM4CiAgICAgZDVlYWViZTk1MWM1YjEzNy43ZWM0NzcwNTQ1NjdiODQwLmU4M2Y3ZGQzMjU2MDMzODQuM2EyNTU3MjljMTVlMGM0NAogICAgIDYzMzk2ZDkzMzljMTQ1YjIKLVZDVlRTUzJTRF8xMjgobWVtKQorVk1BWFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDlkYTYzZWRkMjMwZjg1YWUuZmE1MWQ1Mjg1ODViYjI5Zi45NGFiMWI4MTkyZmU5ZDZmLmZkNTI0M2JiNmI1ODY5M2UKICAgICBjNTM5NDVmMjlhNTY4ODY1LjQ2NWM0NzI5OTU5N2I2NjguZWExMjc3MTM5ZjQ3YTcwMy40YTIyZDE2ZWRhNmZjNGMxCkBAIC04NTI2LDExICs4NTI2LDExIEBACiAgIGFmdGVyCiAgICAgOWRhNjNlZGQyMzBmODVhZS5mYTUxZDUyODU4NWJiMjlmLjk0YWIxYjgxOTJmZTlkNmYuZmQ1MjQzYmI2YjU4NjkzZQogICAgIGM1Mzk0NWYyOWE1Njg4NjUuNDY1YzQ3Mjk5NTk3YjY2OC5lYTEyNzcxMzlmNDdhNzAzLjRhMjJkMTZlZGE2ZmM0YzEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWExMjc3MTM5ZjQ3YTcwMy40NTZiMGQyN2MwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk0YWIxYjgxOTJmZTlkNmYuNGEyMmQxNmU2YjU4NjkzZQogICAgIDRhMDFlNTMzYTFmZGM2YjMuYmY4YWFmMWUyMjJlYmFjNy5jMThmNDgyYTY3MjAxOTBhLmZiMjgzYWU1YTAyY2RiZDQKICAgICAxOGY2MGM4MTMwZWEwZmJiCiAKLVZDVlRTUzJTRF8xMjgocmVnKQorVk1BWFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGRkYjE5Nzk4NThmNzU5MWQuNjBjZTc3MzU2ODc1NzlhMi5hNDQ1OWZlYWFiYTIzMmI2LmZiM2ViNTg3NWJjOGY5ZDQKICAgICBhNmE1ZDg5NmI1ZGZmNWE0LmQzZjEyZWIzMmQxNWRlZmIuMWZkMzA1MjdkYWViOWRiNS5lNDljY2FhYTdkNTNlZGIyCkBAIC04NTM4LDEyICs4NTM4LDEyIEBACiAgICAgYjM2NzY5Zjg3YjcxMTFkMi40MTY3MDBkNDIwZmViMjllLjQ4OTgyOGE1OWIyZDNmOTEuMzQ5OGRkZjJjMTNmMDU1ZAogICAgIDUyY2RkMmVmMWFiOWEwODIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWZkMzA1MjdkYWViOWRiNS5jMDI3ZTBhYmEwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ4OTgyOGE1OWIyZDNmOTEuMzQ5OGRkZjI3ZDUzZWRiMgogICAgIGE2YTVkODk2YjVkZmY1YTQuZDNmMTJlYjMyZDE1ZGVmYi4xZmQzMDUyN2RhZWI5ZGI1LmU0OWNjYWFhN2Q1M2VkYjIKICAgICBjZTFlY2FlN2UyMmUxZWZjLjdmMzU4ODlhMGNlOWIzZWIuOGM4MGRmNDI0Yjk1Mzg2Zi41OTc2MDM3ZmViY2NiM2QyCiAgICAgYjM2NzY5Zjg3YjcxMTFkMi40MTY3MDBkNDIwZmViMjllLjQ4OTgyOGE1OWIyZDNmOTEuMzQ5OGRkZjJjMTNmMDU1ZAogICAgIDUyY2RkMmVmMWFiOWEwODIKLVZDVlRTUzJTRF8xMjgobWVtKQorVk1BWFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDhmZTM2MDYyMTM0NTQwNmIuYjBjZWIxMzMxZTMzMGFkMi5mMzU0MTM0Zjg1NjA5NzNmLmFkNjZkY2JkNjYzZWVkYzYKICAgICBjN2E0MDMzN2M3ZWZhMDQ0LjIwOWQ5ZjA2NjQwMTQ1YTcuNzJjNjNiZjY1ODE5MjBmYi4xODM4ZjdmNzQ3NTQ4MGJiCkBAIC04NTUzLDExICs4NTUzLDExIEBACiAgIGFmdGVyCiAgICAgOGZlMzYwNjIxMzQ1NDA2Yi5iMGNlYjEzMzFlMzMwYWQyLmYzNTQxMzRmODU2MDk3M2YuYWQ2NmRjYmQ2NjNlZWRjNgogICAgIGM3YTQwMzM3YzdlZmEwNDQuMjA5ZDlmMDY2NDAxNDVhNy43MmM2M2JmNjU4MTkyMGZiLjE4MzhmN2Y3NDc1NDgwYmIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzJjNjNiZjY1ODE5MjBmYi40NGM3ZGRiOGMwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjcyYzYzYmY2NTgxOTIwZmIuMTgzOGY3Zjc2NjNlZWRjNgogICAgIDk4NWI3NGI4ZDJjZTkzNzkuY2VhNjU5MjA0ZmVlNmY4My40NjZiYmY3N2I2YzUwOTcyLjcwMTM1NDdkYmNjMTNmOTQKICAgICAxNWI1OGRhMjg4MmZlNGQwCiAKLVZDVlRTUzJTRF8xMjgocmVnKQorVk1BWFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDMwOGExZDk4ZGJkMzVkN2IuZThlODNhM2I2MDFjOWQyZC5jMjc4MWU0MDJiMjZkN2UxLjU0MzcxMjJhNzlkMGUyODYKICAgICAxZGRkMDFjYjUwMzhlNjQyLmE0NTAwNWQxMWFiNzU5ODEuOWJlMzc5YTcxYjk5NzBjNC45ZmI4NmNiOTFhNjM0ZDY0CkBAIC04NTY1LDEyICs4NTY1LDEyIEBACiAgICAgZGQzMWIxOTkxMjc2MTdkMy5jZGU2OThlMzgwMGFkMWJhLjY3YjNkZGZiYWE2MTI4Y2QuNWMwYzIxMWM2NDUyY2MzMAogICAgIDg2Nzc3NWM3NDVjNjU4NzYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWJlMzc5YTcxYjk5NzBjNC40NDhhNTk4NjAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY3YjNkZGZiMWI5OTcwYzQuNWMwYzIxMWM2NDUyY2MzMAogICAgIDFkZGQwMWNiNTAzOGU2NDIuYTQ1MDA1ZDExYWI3NTk4MS45YmUzNzlhNzFiOTk3MGM0LjlmYjg2Y2I5MWE2MzRkNjQKICAgICAzOGZjMzNhNzg0ZWJiYmQxLmE3NjE1MTY1MWJhZDgxYTEuYjMzMjY0YzFiY2QzNzdkYS4wM2JiNDcxMGI0OGEwNzM5CiAgICAgZGQzMWIxOTkxMjc2MTdkMy5jZGU2OThlMzgwMGFkMWJhLjY3YjNkZGZiYWE2MTI4Y2QuNWMwYzIxMWM2NDUyY2MzMAogICAgIDg2Nzc3NWM3NDVjNjU4NzYKLVZDVlRTUzJTRF8xMjgobWVtKQorVk1BWFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDVjYzhjMGZmNzNmMjY2MzYuNjhjOTc2MGI5NjY3MzdmNS5mMmFhNTgzNzY1ZDgwN2Y4LjE0YjBkZmJmN2ZjZWJmNDkKICAgICBiY2NhN2NhZTBjZTNiMzllLjM1MTA3ZjZhYWQ0YTU3ZTIuZjE3YTBjNGRlNTI1ZGQ4Ni4xNDc2NjY3YWRhYTY3N2ZiCkBAIC04NTgwLDExICs4NTgwLDExIEBACiAgIGFmdGVyCiAgICAgNWNjOGMwZmY3M2YyNjYzNi42OGM5NzYwYjk2NjczN2Y1LmYyYWE1ODM3NjVkODA3ZjguMTRiMGRmYmY3ZmNlYmY0OQogICAgIGJjY2E3Y2FlMGNlM2IzOWUuMzUxMDdmNmFhZDRhNTdlMi5mMTdhMGM0ZGU1MjVkZDg2LjE0NzY2NjdhZGFhNjc3ZmIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjE3YTBjNGRlNTI1ZGQ4Ni43ZmY5ZDdlOTIwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYxN2EwYzRkNjVkODA3ZjguMTRiMGRmYmY3ZmNlYmY0OQogICAgIDg3MTUzYzI1ZTg0MWY5MTAuMDRkYjQ5YTAwMzEzODVjZi5mMjZlNDA2ZjI3NmE1YjQ1LjgxOGRmNTg2OGNjODNkYjAKICAgICBhNTc1ZjNhZjFjMmJjMjBiCiAKLVZDVlRTRDJTU18xMjgocmVnKQorVk1JTlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDhkNTc2ODdmYTAyODU5NGIuYTlmNTM3YzU2NWM3NmE3Mi5iZmY2MDM0Zjc5MTEwYzI4LmFhMmFiOTUzMjE3YTdiY2QKICAgICA5NjdkNGQ2MWI0NGUzZTFkLmM1Yjc5NDhkYmE0MTBhMmMuMmNmMWYwOWJmMjMxODJmYi5hZTIxMTZhYTI3MzkyYzU2CkBAIC04NTkyLDEyICs4NTkyLDEyIEBACiAgICAgNzZjODViMTBmZjNlZTEyNi41NzExNjY0NTYzNDJjNjUzLjhiYjI1NGJhNWMwNTJmYzYuMDZmNDZjNWRjNGYxMzAxOQogICAgIDEzNjc1ZDkxOTUwMmZjYWIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmNmMWYwOWJmMjMxODJmYi5hZTIxMTZhYTAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhiYjI1NGJhZjIzMTgyZmIuYWUyMTE2YWFjNGYxMzAxOQogICAgIDk2N2Q0ZDYxYjQ0ZTNlMWQuYzViNzk0OGRiYTQxMGEyYy4yY2YxZjA5YmYyMzE4MmZiLmFlMjExNmFhMjczOTJjNTYKICAgICAxYTM0OWZjM2Y2MjZhZDJkLmI1MjdkMDY5MDZiYzk0NjguYTYxNjBkZjAwYWZmMjVmNy5kOTIxZDM1ZTU0YjIyYTBiCiAgICAgNzZjODViMTBmZjNlZTEyNi41NzExNjY0NTYzNDJjNjUzLjhiYjI1NGJhNWMwNTJmYzYuMDZmNDZjNWRjNGYxMzAxOQogICAgIDEzNjc1ZDkxOTUwMmZjYWIKLVZDVlRTRDJTU18xMjgobWVtKQorVk1JTlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGRhNDYyM2U4ZTBmMjQ3ZWUuMDY4NTdjYjQ2ZDIxMTdiNS44NTQwZDIwZWVkZTE1YTE4LjM2MTFjMzY1ODRkMWRjMTQKICAgICAzOTVjMzk0ZGMzY2NkMDBlLjI2YjdmZTFjZGM1YjhiODUuMWQ4MTkwYWVjMWE1MGNlNC4wMjdlNTU1ZDFmZWU2YThlCkBAIC04NjA3LDExICs4NjA3LDExIEBACiAgIGFmdGVyCiAgICAgZGE0NjIzZThlMGYyNDdlZS4wNjg1N2NiNDZkMjExN2I1Ljg1NDBkMjBlZWRlMTVhMTguMzYxMWMzNjU4NGQxZGMxNAogICAgIDM5NWMzOTRkYzNjY2QwMGUuMjZiN2ZlMWNkYzViOGI4NS4xZDgxOTBhZWMxYTUwY2U0LjAyN2U1NTVkMWZlZTZhOGUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWQ4MTkwYWVjMWE1MGNlNC4wMjdlNTU1ZDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg1NDBkMjBlZWRlMTVhMTguMDI3ZTU1NWQ4NGQxZGMxNAogICAgIDJhNjE0NWYxYzA2Zjg3OTMuODZhODE2ZTMyYTA2MWM5Yi5mNzZhZjMyN2I1YzliZTNmLjcxYjZkM2U0MWM0ZDE0YjUKICAgICBjYzE5Yjc0Y2I2YTZhOGJhCiAKLVZDVlRTRDJTU18xMjgocmVnKQorVk1JTlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGI4YmFhZWIwMzM4MTBkOWIuNzZlODM0MDgxMTUwMmU1MS43ZTAxYTQxYzQyOGViMTM4LmYxYTg5MGQ3MGQ0MTM1MjcKICAgICA5M2U2YjQ3ZTJlNjk3ZDAzLmM4ZDY2M2RkNmE0YzAyOWIuNzZmZTgzYzdjYjllNzNjNy5jNDI5NmYxMDFmMGViYWM1CkBAIC04NjE5LDEyICs4NjE5LDEyIEBACiAgICAgODIwZWRlMDUxMDkwNzAxYS5mMjFhNzE3MmEyYzIxZjg1LmQ2MTYyNTI4OWQ4NDcyNjkuNjYyMGU0Y2FkZmQ1ZTJkNgogICAgIGVjMmU3MjIzYzVlN2ZjYTAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzZmZTgzYzdjYjllNzNjNy5jNDI5NmYxMDdmODAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ2MTYyNTI4Y2I5ZTczYzcuYzQyOTZmMTBkZmQ1ZTJkNgogICAgIDkzZTZiNDdlMmU2OTdkMDMuYzhkNjYzZGQ2YTRjMDI5Yi43NmZlODNjN2NiOWU3M2M3LmM0Mjk2ZjEwMWYwZWJhYzUKICAgICBiN2U5YzYyMTQ0ZWEzNDllLmZkZjg0ZTVjZTY2ZWJlOWQuY2FlY2IwNTI2MGMxYTBmMy40ZGI4MGRiZDA2M2IwYjQ2CiAgICAgODIwZWRlMDUxMDkwNzAxYS5mMjFhNzE3MmEyYzIxZjg1LmQ2MTYyNTI4OWQ4NDcyNjkuNjYyMGU0Y2FkZmQ1ZTJkNgogICAgIGVjMmU3MjIzYzVlN2ZjYTAKLVZDVlRTRDJTU18xMjgobWVtKQorVk1JTlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGJiYWUzMmI0ZDQ3ZDE0ZDAuNGVhM2ZhOTUyZWU4NmIyMC44MTA3NDgwOWJhNTRlMDdjLmY2Y2FlMGI1MWY3MjI2ZDUKICAgICBiMDZjYTE2OTI5YTNlNzk0Ljc4ZjIxNTNmM2I3ZTYyNWYuODc4ZDUwMGY0ODMxYmZiMS44NjUyZGM2NTgxMTdmN2UyCkBAIC04NjM0LDExICs4NjM0LDExIEBACiAgIGFmdGVyCiAgICAgYmJhZTMyYjRkNDdkMTRkMC40ZWEzZmE5NTJlZTg2YjIwLjgxMDc0ODA5YmE1NGUwN2MuZjZjYWUwYjUxZjcyMjZkNQogICAgIGIwNmNhMTY5MjlhM2U3OTQuNzhmMjE1M2YzYjdlNjI1Zi44NzhkNTAwZjQ4MzFiZmIxLjg2NTJkYzY1ODExN2Y3ZTIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODc4ZDUwMGY0ODMxYmZiMS44NjUyZGM2NWZmODAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg3OGQ1MDBmYmE1NGUwN2MuZjZjYWUwYjU4MTE3ZjdlMgogICAgIDc3ZDI3OGVmMTRkMWFlODIuNTdmMTM5OGY5MTkwMzMzMy42ODhmZTAxNDNjZmFjMTgwLjY1MTI4N2RlNTdiN2UzOTEKICAgICA2ZGUxMmY3ZjAzY2E3NjhiCiAKLVZDVlRTRDJTU18xMjgocmVnKQorVk1JTlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDU1YjQwOGYzZmZjNTE2ZDcuMDIxMWQ5OTllMWYxMTkwNS5jMzM5M2EwYzExMjY4NTIwLmZjYTQ2MGVjZGFmZTVlNzIKICAgICA3OGQ5MGVhN2U4MzMwMTIwLjIyYmVkODE2NjRkMTJmY2EuZmQ2YzJhNTJmMDI4YzNmNS43NjgxMDFlMjVlN2MwNzUxCkBAIC04NjQ2LDEyICs4NjQ2LDEyIEBACiAgICAgZTQ0NTkyN2JlZjk4YTI1Yi45MTkzYTEzZWZhMDI0YmNkLjRjYzJjN2VhMzlhNmYxMDUuOGZjMzkyZDg4ZTE4NzA4NAogICAgIGU2YmY3YmIxNzE0ZGE3MzEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmQ2YzJhNTJmMDI4YzNmNS43NjgxMDFlMjgwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZkNmMyYTUyZjAyOGMzZjUuOGZjMzkyZDg4ZTE4NzA4NAogICAgIDc4ZDkwZWE3ZTgzMzAxMjAuMjJiZWQ4MTY2NGQxMmZjYS5mZDZjMmE1MmYwMjhjM2Y1Ljc2ODEwMWUyNWU3YzA3NTEKICAgICAzNDliM2QwNTU5YTA3MDEyLmIzYTZmMTU0Yjk3ZGFjZmYuNjFkNTA1Y2VjYTI1Mjg1ZC5iM2YyM2RlMmU2ODE3OTQ4CiAgICAgZTQ0NTkyN2JlZjk4YTI1Yi45MTkzYTEzZWZhMDI0YmNkLjRjYzJjN2VhMzlhNmYxMDUuOGZjMzkyZDg4ZTE4NzA4NAogICAgIGU2YmY3YmIxNzE0ZGE3MzEKLVZDVlRTRDJTU18xMjgobWVtKQorVk1JTlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDk0YjM3NTU3YWMyZGRiN2EuZTMyNDA3NzQ0NWE4ZDFhNS45ODUxNjJiZjQ2NmJjYTYzLjE4N2Q2ZDE0ZGMzOTVhOTkKICAgICA3NTZiZmFiODVhYzJjODhiLjhmODQ5YTViZjc1YzNhOWMuYTRhZWIyYzViN2M0ZTNlYi4yMjUzZjJiNzRkNjk5ZmM0CkBAIC04NjYxLDExICs4NjYxLDExIEBACiAgIGFmdGVyCiAgICAgOTRiMzc1NTdhYzJkZGI3YS5lMzI0MDc3NDQ1YThkMWE1Ljk4NTE2MmJmNDY2YmNhNjMuMTg3ZDZkMTRkYzM5NWE5OQogICAgIDc1NmJmYWI4NWFjMmM4OGIuOGY4NDlhNWJmNzVjM2E5Yy5hNGFlYjJjNWI3YzRlM2ViLjIyNTNmMmI3NGQ2OTlmYzQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTRhZWIyYzViN2M0ZTNlYi4yMjUzZjJiNzAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE0YWViMmM1YjdjNGUzZWIuMTg3ZDZkMTRkYzM5NWE5OQogICAgIDNmNTc5YTU3ODA0MWJjYjkuNWFmNzA4YThlMmRjYTk0NC4zYjcxZWQwZDc5NzhkNTgzLjYwODA4OTE4MGFkMWFiOTEKICAgICA0YzZlOTNhZThlMjFlYjhiCiAKLVZNT1ZEX1hNTV90b19JUkVHMzIocmVnKQorVlNIVUZQU18weDM5XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGU2YTg2ZDZkNTAzZWY3Y2QuZTEyM2FkNmQzMTQyM2IyYy4zMWExZGFlNTUyYzEyODRjLjdlNmZkMDI4MDJlYTI2ZWEKICAgICA4YTc4MTJjMWVlYjUwYTAyLjI2ZTIzYmVlYzUyYTYyMTkuMjVmY2JhYzE4ZTdhY2ZiMi4zNTNiMzE3NjIwN2QwMWY1CkBAIC04NjczLDEyICs4NjczLDEyIEBACiAgICAgNWYwZGFkZDkyN2RmMzdmNy4wODZkYmRkZTA3ZGI5YzBiLmNmZjY5MjA3ZGM5NThjNDcuNzQ2ZDVkNWY4ZTMzNDlhMQogICAgIGIzNmEyMGQxMTU2ZjJkOWIKICAgYWZ0ZXIKLSAgICBlNmE4NmQ2ZDUwM2VmN2NkLmUxMjNhZDZkMzE0MjNiMmMuMzFhMWRhZTU1MmMxMjg0Yy43ZTZmZDAyODAyZWEyNmVhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhlMzM0OWExY2ZmNjkyMDcuOGU3YWNmYjIzNTNiMzE3NgogICAgIDhhNzgxMmMxZWViNTBhMDIuMjZlMjNiZWVjNTJhNjIxOS4yNWZjYmFjMThlN2FjZmIyLjM1M2IzMTc2MjA3ZDAxZjUKICAgICA5NDJiN2UxNjAxMTE2MWQ3LmVhNjFjMmM1NTgwM2VmYTkuOTA1NWEzYTkzMzkyZGQyMS4zZWExOGNlNGYxM2MyNGNlCiAgICAgNWYwZGFkZDkyN2RmMzdmNy4wODZkYmRkZTA3ZGI5YzBiLmNmZjY5MjA3ZGM5NThjNDcuNzQ2ZDVkNWY4ZTMzNDlhMQotICAgIDAwMDAwMDAwMDJlYTI2ZWEKLVZNT1ZEX1hNTV90b19JUkVHMzIobWVtKQorICAgIGIzNmEyMGQxMTU2ZjJkOWIKK1ZTSFVGUFNfMHgzOV8xMjgobWVtKQogICBiZWZvcmUKICAgICBkNjY2NTIyOGEyZmI4Y2U4LjQ5NmE5Yzc0ZmNhYWNhMGYuNWVkMGE4MjVlZGJlMjU2OS4zZjJjODE0ODI2MTAxOWNkCiAgICAgYmIyYjZlNGY1MGUzMjFiMy5hZDhlNDY1NTFiZmU1NGNhLmM3NTZmZjg2MjdiNzQ4ZWYuM2E0MjZlZDlhYzhlYzA2MQpAQCAtODY4OCwxMSArODY4OCwxMSBAQAogICBhZnRlcgogICAgIGQ2NjY1MjI4YTJmYjhjZTguNDk2YTljNzRmY2FhY2EwZi41ZWQwYTgyNWVkYmUyNTY5LjNmMmM4MTQ4MjYxMDE5Y2QKICAgICBiYjJiNmU0ZjUwZTMyMWIzLmFkOGU0NjU1MWJmZTU0Y2EuYzc1NmZmODYyN2I3NDhlZi4zYTQyNmVkOWFjOGVjMDYxCi0gICAgM2Q4NmYwMzEzYjM0YTkyOS5lN2M0YTdlNjIwNjcxMmQ2LjFmY2QzZmVlZDBkMmJmY2EuMWQ4NjU0MjUwYjliYmRhZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZWQwYTgyNTI2MTAxOWNkLjNhNDI2ZWQ5MjdiNzQ4ZWYKICAgICAzNzQzNTViYzgwZjllMDc2LjUzNWFiYjk1YTg3MjNmZGMuNDEwMGUzNDcwNTFiNDcyNi40NTQzMmY5N2RlYzQ0YjYzCiAgICAgMGNjNGZiOWRjMjk0YTcyOAogCi1WTU9WRF9YTU1fdG9fSVJFRzMyKHJlZykKK1ZTSFVGUFNfMHgzOV8xMjgocmVnKQogICBiZWZvcmUKICAgICBjZjU2YjVhMjUyOTcwY2FhLjg3MmUxN2RiM2IzZTgyYzUuNGM5YTdlY2Q0ZmFhMTg4Yi4wYmJhNjc3ZmUxOWY5YzJlCiAgICAgZWE0NTU3MTIyYjVhYjg5Ny4wNzEzYjQ3YTg2MTA0YTQyLjMwZDFlZGZhYjA5Y2Q5OGQuNTdjODQ3ODA4MTY5NzkwZgpAQCAtODcwMCwxMiArODcwMCwxMiBAQAogICAgIDk4Njk0OWUzMjU0ZGNmNWMuMGJmOTZkZTk0Mzg5M2Y3YS4yNTU0YmNlMzExZGIwMzNiLmU5MTAwYzkyN2EwMGJlMGIKICAgICBlN2UyZTk3OTBjZTU5ZTdkCiAgIGFmdGVyCi0gICAgY2Y1NmI1YTI1Mjk3MGNhYS44NzJlMTdkYjNiM2U4MmM1LjRjOWE3ZWNkNGZhYTE4OGIuMGJiYTY3N2ZlMTlmOWMyZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YTAwYmUwYjI1NTRiY2UzLmIwOWNkOThkNTdjODQ3ODAKICAgICBlYTQ1NTcxMjJiNWFiODk3LjA3MTNiNDdhODYxMDRhNDIuMzBkMWVkZmFiMDljZDk4ZC41N2M4NDc4MDgxNjk3OTBmCiAgICAgYjlkZGRmNTllODY4ZTU5OC45NWJkYTc4NjgwN2FmNTFiLjVhNGIwMzg4NjdkM2JlOGUuMDNmNmZmMzgwMDg1OWNmNQogICAgIDk4Njk0OWUzMjU0ZGNmNWMuMGJmOTZkZTk0Mzg5M2Y3YS4yNTU0YmNlMzExZGIwMzNiLmU5MTAwYzkyN2EwMGJlMGIKLSAgICAwMDAwMDAwMGUxOWY5YzJlCi1WTU9WRF9YTU1fdG9fSVJFRzMyKG1lbSkKKyAgICBlN2UyZTk3OTBjZTU5ZTdkCitWU0hVRlBTXzB4MzlfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZDczODEyZGJkMjQxZjY3OS5lMzM3OGYxZDdmOTZiNDhkLjQ3OTQ4MDkwZWI0N2UzOGIuZWYzNzE0Nzc0OTQxZTM0MAogICAgIDk3ZGQwM2EzZTcxZTgzMjguZjY5MWFmNzE5MmNlY2VkNy4yMzU4NWU2ODk1YzI5ZTdiLjEyNDIwOGIxYWM5MDliNDgKQEAgLTg3MTUsMTEgKzg3MTUsMTEgQEAKICAgYWZ0ZXIKICAgICBkNzM4MTJkYmQyNDFmNjc5LmUzMzc4ZjFkN2Y5NmI0OGQuNDc5NDgwOTBlYjQ3ZTM4Yi5lZjM3MTQ3NzQ5NDFlMzQwCiAgICAgOTdkZDAzYTNlNzFlODMyOC5mNjkxYWY3MTkyY2VjZWQ3LjIzNTg1ZTY4OTVjMjllN2IuMTI0MjA4YjFhYzkwOWI0OAotICAgIDAxOWUzOWJkNjc4YjAxYjkuMmRjNGEzNGRmOTgyNWFlOC43ZDExODI1YjVjMDYyYzc2LmVjYmY5M2ZiZDU1NDY2MDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDc5NDgwOTA0OTQxZTM0MC4xMjQyMDhiMTk1YzI5ZTdiCiAgICAgZjI0NzJmMTY2ZjkxMmI1Ni5lNDFjNmExYjUwM2Q5NDY5LjJmOGQ2ODU3NWQxZTQ5YTcuZDdmYmIxYzM2MTE5ODExNAogICAgIDMxNDI1ZTczZWI2YzI4MmYKIAotVk1PVkRfWE1NX3RvX0lSRUczMihyZWcpCitWU0hVRlBTXzB4MzlfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTRlMDk2NzkxMGQ5OTdmZC40N2E0NjA5ODFiM2ViZjJjLjc3ZTVmZDQ5MzQ4YmI3MDkuMTY5NzhjNDdiMzE2YjAzYgogICAgIDlkMjE1NjQwNmJlYTBhMmMuZGE4MTRiMzA4NTlkNzc2Ni40MjZiNTk0MjQxZjgwMDcyLjBmZmE2YjE3N2FmYTFlNWQKQEAgLTg3MjcsMTIgKzg3MjcsMTIgQEAKICAgICAxMmJhNWJjMTM0MmVlYTU3LjJkZWEzODU0MGFhMjQ0YjguZjBkZDVlNDQ0MzYxZjM1MC5hMmZlNDcwN2NlYjhmZWZlCiAgICAgZjUzNzNjZmY5MmFhZTlkNAogICBhZnRlcgotICAgIDU0ZTA5Njc5MTBkOTk3ZmQuNDdhNDYwOTgxYjNlYmYyYy43N2U1ZmQ0OTM0OGJiNzA5LjE2OTc4YzQ3YjMxNmIwM2IKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2ViOGZlZmVmMGRkNWU0NC40MWY4MDA3MjBmZmE2YjE3CiAgICAgOWQyMTU2NDA2YmVhMGEyYy5kYTgxNGIzMDg1OWQ3NzY2LjQyNmI1OTQyNDFmODAwNzIuMGZmYTZiMTc3YWZhMWU1ZAogICAgIDY5NTA5OTM0OTgyZGJjNjUuODhhYTY5Y2JjY2JiMGYzMS5hMWZhN2I3MTExMTFhYjUwLmY0ODM4MGIzY2ZkNzRmM2EKICAgICAxMmJhNWJjMTM0MmVlYTU3LjJkZWEzODU0MGFhMjQ0YjguZjBkZDVlNDQ0MzYxZjM1MC5hMmZlNDcwN2NlYjhmZWZlCi0gICAgMDAwMDAwMDBiMzE2YjAzYgotVk1PVkRfWE1NX3RvX0lSRUczMihtZW0pCisgICAgZjUzNzNjZmY5MmFhZTlkNAorVlNIVUZQU18weDM5XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGM5ZmFkYjg3MzhiOGNhZTkuZjVhYzk4NTNkYjc3Y2ZhYy5hNTBmMzNiNjViNjFkMzI4LjhiNjFmZTI2NzA3NTE2MWUKICAgICBmYTEzYTE4YmRiZWU1ZDY5LjZmNzA0ZDU2Mjg5NmE5MTEuY2RlM2Q2ZGZkYzAxNzVhZC5jZWQyNTg4NDM3ZDc0ZTY2CkBAIC04NzQyLDExICs4NzQyLDExIEBACiAgIGFmdGVyCiAgICAgYzlmYWRiODczOGI4Y2FlOS5mNWFjOTg1M2RiNzdjZmFjLmE1MGYzM2I2NWI2MWQzMjguOGI2MWZlMjY3MDc1MTYxZQogICAgIGZhMTNhMThiZGJlZTVkNjkuNmY3MDRkNTYyODk2YTkxMS5jZGUzZDZkZmRjMDE3NWFkLmNlZDI1ODg0MzdkNzRlNjYKLSAgICA2NTRkMDlmODk3NTk2MDdmLmRhNTI3NDM2YjcxN2IyMzEuN2YzMzlkYmFhODkwZTk3Mi4xNDdjNjZjODMxMTZkN2QyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE1MGYzM2I2NzA3NTE2MWUuY2VkMjU4ODRkYzAxNzVhZAogICAgIGU0NzU4ZmI4ODkwNDhkNTcuOTNhMDBiNjAyNTg0MjZiOS45OGNiMDQzM2RjMTllOWE0LmJiYWIyNjVmZmRiYmVmMTEKICAgICAxZWFiOTNiNjM0NTRkMGNkCiAKLVZQQ01QRVNUUk1fMHg0NV8xMjgocmVnKQorVlBDTVBFUUJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOThjN2E5Mzc3NDZjYjdiMy41NDU4YWZiOWNjZmJhMDFlLmY2YTUwZDNlMGU2YjQzNTQuZjQ3Nzg4MzY5M2E5MzI2ZQogICAgIDg3NGQ2NTUwNTk5MGRmNmUuOTFjMGU2ZTY3ZDRhNTcwMC41ZmFjNzczZTBjNTg0M2FmLjZmMDJhNGFmZTk0YjgwZmQKQEAgLTg3NTQsMTIgKzg3NTQsMTIgQEAKICAgICAzMGMyYmJmNjgwMjllNTE2LmUyNTE4NjczOTcyMzljYzMuYjRmMzZmNTBiZTcxZGY1NC4zMmU5OTViNGU1ZjYxOTE5CiAgICAgMzJkYzYxMTdjMjE3ZGRmZQogICBhZnRlcgotICAgIDk4YzdhOTM3NzQ2Y2I3YjMuNTQ1OGFmYjljY2ZiYTAxZS5mNmE1MGQzZTBlNmI0MzU0LmY0Nzc4ODM2OTNhOTMyNmUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgODc0ZDY1NTA1OTkwZGY2ZS45MWMwZTZlNjdkNGE1NzAwLjVmYWM3NzNlMGM1ODQzYWYuNmYwMmE0YWZlOTRiODBmZAogICAgIDQ2ODdjMjZiN2U0Yjg2YWIuNzc3OWFmMmFiN2ZlNmMyOS4yYjAyNDNjYWJlZDY2Mzc2LmU1MzlkNDhhZmIwYjhlN2QKLSAgICAzMGMyYmJmNjgwMjllNTE2LmUyNTE4NjczOTcyMzljYzMuMDAwMDAwMDAwMDAwMDAwMC4wMDAwZmZmZmZmZmYwMDAwCisgICAgMzBjMmJiZjY4MDI5ZTUxNi5lMjUxODY3Mzk3MjM5Y2MzLmI0ZjM2ZjUwYmU3MWRmNTQuMzJlOTk1YjRlNWY2MTkxOQogICAgIDMyZGM2MTE3YzIxN2RkZmUKLVZQQ01QRVNUUk1fMHg0NV8xMjgobWVtKQorVlBDTVBFUUJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzFkZmI2YTFhZTdhOTU1Ny5hMzRhNGY1Y2ZhYjYzYjVhLmFkMTNlN2FjMzljM2EzZmQuNTdjYmY2M2JhOGI1ZjJmNgogICAgIGJhYmUwZjNjYzYyY2ZmNTEuZjk2YTc3MDk4ODdmYzMyMy5iNjhhNGVjMWI3ZWMzYzAxLjcwZDZkNGY3MTkyZmQ5MDcKQEAgLTg3NjksMTEgKzg3NjksMTEgQEAKICAgYWZ0ZXIKICAgICBjMWRmYjZhMWFlN2E5NTU3LmEzNGE0ZjVjZmFiNjNiNWEuYWQxM2U3YWMzOWMzYTNmZC41N2NiZjYzYmE4YjVmMmY2CiAgICAgYmFiZTBmM2NjNjJjZmY1MS5mOTZhNzcwOTg4N2ZjMzIzLmI2OGE0ZWMxYjdlYzNjMDEuNzBkNmQ0ZjcxOTJmZDkwNwotICAgIGZiNDRlOGQ2MjYzOGQ0MTguOTA3MDMxNjljNzEwYjgxZi5kODgzMzg5ZjJmYWEyNGZjLjViNjAwNmYwYWM2YWQwMzQKLSAgICA1ZjNmYmU1YWU5YWFkM2Q3LmMyYTY3N2U4NTJmMzU3ZjcuZmZmZjAwMDAwMDAwZmZmZi5mZmZmMDAwMGZmZmYwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDVmM2ZiZTVhZTlhYWQzZDcuYzJhNjc3ZTg1MmYzNTdmNy5lZmNhMjAzMGJkMDcxNzE5Ljc0YjQ4NzkyZmRmMjEyMjkKICAgICAxNjIwNTI0OWFhNTRkYzkxCiAKLVZQQ01QRVNUUk1fMHg0NV8xMjgocmVnKQorVlBDTVBFUUJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOWZlZTY2ODI0YzFiNmExOS5jMjc5MGNiNDJiOGZiN2JhLmVjNTk0N2YzYzZiNmRiNWEuZDcyYjgyNjE3YzExZDE4NQogICAgIDZhNmJiY2E3ODFkNGY4NmMuMDBiZjRlZDAwOWYyM2JlZi42YmQ2OWRmNGJmZTU4MmYyLjZjNzJkYTFmODlkNDBkNmMKQEAgLTg3ODEsMTIgKzg3ODEsMTIgQEAKICAgICAzNmExMjI2OTEzNDkwMzI1LjdjOWY5ZWZlMDc2MzE1ZjkuZDM1OGM3OGNhZGIzMjM3My4wY2UxNWVlZWZhYjFmZDU5CiAgICAgZDBhMTgxZDg5N2U1MmFiNwogICBhZnRlcgotICAgIDlmZWU2NjgyNGMxYjZhMTkuYzI3OTBjYjQyYjhmYjdiYS5lYzU5NDdmM2M2YjZkYjVhLmQ3MmI4MjYxN2MxMWQxODUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNmE2YmJjYTc4MWQ0Zjg2Yy4wMGJmNGVkMDA5ZjIzYmVmLjZiZDY5ZGY0YmZlNTgyZjIuNmM3MmRhMWY4OWQ0MGQ2YwogICAgIGQzZTI1MjI1ZTUwYWMxMzcuZjRkZDAwOWE5ZWRmMWJhMC45OTY2NzM1OGQ3MGE4NjZjLjg5NmFhNTU0ZmY1YTg4ZjkKLSAgICAzNmExMjI2OTEzNDkwMzI1LjdjOWY5ZWZlMDc2MzE1ZjkuMDAwMGZmZmYwMDAwMDAwMC4wMDAwZmZmZmZmZmYwMDAwCisgICAgMzZhMTIyNjkxMzQ5MDMyNS43YzlmOWVmZTA3NjMxNWY5LmQzNThjNzhjYWRiMzIzNzMuMGNlMTVlZWVmYWIxZmQ1OQogICAgIGQwYTE4MWQ4OTdlNTJhYjcKLVZQQ01QRVNUUk1fMHg0NV8xMjgobWVtKQorVlBDTVBFUUJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjA3NzhhZmRmMjAwYzk0MC5lZmYzMmFkZWE3MWRmN2U0LjczZDFhNWU4NWY4OWUzMjcuNzZmNzk0ZmFkYTZjOTdiNAogICAgIDhhMmZmNTRiMjYxMDk3MWYuNTkyMzY2ZjAzZTEzZGMxZC5iNDNlOGY0NWMzNWQ0MjU2LmRjOGVkNjEwZmRiZjFjZGEKQEAgLTg3OTYsMTEgKzg3OTYsMTEgQEAKICAgYWZ0ZXIKICAgICBiMDc3OGFmZGYyMDBjOTQwLmVmZjMyYWRlYTcxZGY3ZTQuNzNkMWE1ZTg1Zjg5ZTMyNy43NmY3OTRmYWRhNmM5N2I0CiAgICAgOGEyZmY1NGIyNjEwOTcxZi41OTIzNjZmMDNlMTNkYzFkLmI0M2U4ZjQ1YzM1ZDQyNTYuZGM4ZWQ2MTBmZGJmMWNkYQotICAgIDM4OTUzZmFkNGYyMTRmODIuZDI3ZWQwMGE3NGI2ZWM3Zi4xZGI0ZGFmZjRlZWNlZWIxLjYyNmI4OTM5YWYzYWVmOTIKLSAgICA5ODc1ZTMxMDhhM2VhZjkyLmI1NTA2NjlhZTM5MzY0YjQuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDk4NzVlMzEwOGEzZWFmOTIuYjU1MDY2OWFlMzkzNjRiNC44OGZkMDIwNDFkNDFhMjY1LjY0ZDhhYWUxOGU2OTRiODgKICAgICAzZjIyMzM3NDM2ZDY2ZTY3CiAKLVZQQ01QRVNUUk1fMHg0NV8xMjgocmVnKQorVlBDTVBFUUJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNGQ5NDIyNWU0MjBmOTJkYy44NDlhNWQ1ZWYyNzM3MTdkLjVkZTUyMzBiMmEzNTgwNjguZDNlNjgxM2U0YjY4MWM5ZQogICAgIGViN2M3MzBiNGZhMGY0OTIuZGFkMTI5ODRhNGNjNTE2Zi4yODg5MDNjYWUzMjg3YjQ4LmQ4M2JkNTliZjQ2ZTE1ODcKQEAgLTg4MDgsMTIgKzg4MDgsMTIgQEAKICAgICA0N2RhMjc1ZmQ5Zjc2MDc0LjMwYTZhODA5NTQxYzVmMTcuOTMyZDFjZGQxYzMyMDEzYi44NDU4ZTk2YjJhNDU3YjFiCiAgICAgZTNiOWExYjZlZTJlNWYxZQogICBhZnRlcgotICAgIDRkOTQyMjVlNDIwZjkyZGMuODQ5YTVkNWVmMjczNzE3ZC41ZGU1MjMwYjJhMzU4MDY4LmQzZTY4MTNlNGI2ODFjOWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgZWI3YzczMGI0ZmEwZjQ5Mi5kYWQxMjk4NGE0Y2M1MTZmLjI4ODkwM2NhZTMyODdiNDguZDgzYmQ1OWJmNDZlMTU4NwogICAgIDc1MjUyMGU4ZjgxNGNmMzYuNzRlN2MzNmViYzU2MGQ5NC43MDg4MDI0MWFhZjk5MjAwLjc1Yzc3OTA2MzY1ZTRjNGQKLSAgICA0N2RhMjc1ZmQ5Zjc2MDc0LjMwYTZhODA5NTQxYzVmMTcuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgNDdkYTI3NWZkOWY3NjA3NC4zMGE2YTgwOTU0MWM1ZjE3LjkzMmQxY2RkMWMzMjAxM2IuODQ1OGU5NmIyYTQ1N2IxYgogICAgIGUzYjlhMWI2ZWUyZTVmMWUKLVZQQ01QRVNUUk1fMHg0NV8xMjgobWVtKQorVlBDTVBFUUJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNmNiNTFlZDM5ZDI1YjQ4MS5iZGU4ODNkZDhmZDVlM2Y3LmU4ZGE1MzNmOGIyYjA0MjUuZWNjNTRlMGJkNDYyMDRhNgogICAgIGZjMTlkYWFlNTQzNjM1NzEuMzM5YjMwY2ZiNjNiOTQ2Yy43OTUxNDBmZTdhOGRiN2U5LmQ2OWM5MzM1NmYxMmQ2ZWQKQEAgLTg4MjMsMTEgKzg4MjMsMTEgQEAKICAgYWZ0ZXIKICAgICA2Y2I1MWVkMzlkMjViNDgxLmJkZTg4M2RkOGZkNWUzZjcuZThkYTUzM2Y4YjJiMDQyNS5lY2M1NGUwYmQ0NjIwNGE2CiAgICAgZmMxOWRhYWU1NDM2MzU3MS4zMzliMzBjZmI2M2I5NDZjLjc5NTE0MGZlN2E4ZGI3ZTkuZDY5YzkzMzU2ZjEyZDZlZAotICAgIDcwYjE1MzM0MmY2ZWEwMWEuMDUzZjJhYTBlOWI0YWU3ZS5jMGQ2ZWMzMTNmNTEzNjkwLmFlZmVlN2M5ODhkMGI0YmIKLSAgICBhMjQ5MDU0ZjQ5ZDhhZmE3LjhmMjA2ZGJiYzRjYzZlZGEuMDAwMGZmZmYwMDAwMDAwMC4wMDAwZmZmZmZmZmYwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGEyNDkwNTRmNDlkOGFmYTcuOGYyMDZkYmJjNGNjNmVkYS45NzM0ZDFjNGY2ODAzYjQ1LmQxMzc0NzMxYmIyOGRhYmMKICAgICA5OTkzYWRkYmE2YTQ4MzllCiAKLVZNT1ZRX0lSRUdvck1FTTY0X3RvX1hNTShyZWcpCitWTU9WSFBEXzEyOF9TdG9yZUZvcm0ocmVnKQogICBiZWZvcmUKICAgICA2NDVkMTczMmUyZDJlYzBhLjZmYWM2YWVkYmU4MTFlNDUuMmM4OWY2OGVlNDEwMTAyYy5kYjM4NmRhM2JhMjg4MzM1CiAgICAgOGNlMzgwYTIwZDNlNTFhZi5iM2E4MDBmOGFiNzRhYTFmLjNhYzhjMDg0ZTQwYmQwMWYuNjlhZTNiYmFhODU0Yzk4YwpAQCAtODgzNSwxMiArODgzNSwxMiBAQAogICAgIDY3NGU0MDdkOWZmY2ZlNGYuMTE5NmFjMGE1YjY4MDkzYS4xNmYzMDg4OWY2NTg5ODlhLmNlMjA1ZTQwNmY2OTQyMWQKICAgICA1ZWI0YWE4ODgxNmJlZGFmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWViNGFhODg4MTZiZWRhZgorICAgIDY0NWQxNzMyZTJkMmVjMGEuNmZhYzZhZWRiZTgxMWU0NS4yYzg5ZjY4ZWU0MTAxMDJjLmRiMzg2ZGEzYmEyODgzMzUKICAgICA4Y2UzODBhMjBkM2U1MWFmLmIzYTgwMGY4YWI3NGFhMWYuM2FjOGMwODRlNDBiZDAxZi42OWFlM2JiYWE4NTRjOThjCiAgICAgNmU2ZmU1OTdjMzcyZWUzNy40YTA3NDE1ZTJiYmQxMDYyLjE0MjdjNzA5NjE0YWU5NjAuMWI2MmI3ZjVkYjExY2E3NQogICAgIDY3NGU0MDdkOWZmY2ZlNGYuMTE5NmFjMGE1YjY4MDkzYS4xNmYzMDg4OWY2NTg5ODlhLmNlMjA1ZTQwNmY2OTQyMWQKICAgICA1ZWI0YWE4ODgxNmJlZGFmCi1WTU9WUV9JUkVHb3JNRU02NF90b19YTU0obWVtKQorVk1PVkhQRF8xMjhfU3RvcmVGb3JtKG1lbSkKICAgYmVmb3JlCiAgICAgYTdlOTE5YjcyZDIwODY1OC5kMWNjOGZjMTNkNjhiZWEyLmUyMjFiYWU3NTY4MjU0ZDIuOWM3ODdkNzE0MGMxMTk3YQogICAgIDg1OGMyNmJhOGU5NmNhNDQuMDkzNGNkY2QzYTQwNmFkZC45YTc0ZThlMzM5MTZhYjU3LjAxMDIyNDJiZGExMmE3YWIKQEAgLTg4NDgsMTMgKzg4NDgsMTMgQEAKICAgICA3MDRkMGJlZWUwZjM0MjkzLjUzZjYwNmYxYmY2YTc1YjkuMmZhMjk2ZTYyNGRlNzBkNi5kZDU0ZjVjOTcwOTlkZGIzCiAgICAgMGFiNDE4ODRhM2U3ZmNlMgogICBhZnRlcgotICAgIGE3ZTkxOWI3MmQyMDg2NTguZDFjYzhmYzEzZDY4YmVhMi5lMjIxYmFlNzU2ODI1NGQyLjljNzg3ZDcxNDBjMTE5N2EKKyAgICBhN2U5MTliNzJkMjA4NjU4LmQxY2M4ZmMxM2Q2OGJlYTIuZTIyMWJhZTc1NjgyNTRkMi45YTc0ZThlMzM5MTZhYjU3CiAgICAgODU4YzI2YmE4ZTk2Y2E0NC4wOTM0Y2RjZDNhNDA2YWRkLjlhNzRlOGUzMzkxNmFiNTcuMDEwMjI0MmJkYTEyYTdhYgogICAgIGQ0NmE0ZTdlYzBkODc1OWUuNmJkNGY2MGYzMTEyM2VhYi4xNTViYjNlYTFmMzFjYmY0LmEzZGRmODI0NjFkNTdmZGIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45Yzc4N2Q3MTQwYzExOTdhCisgICAgNzA0ZDBiZWVlMGYzNDI5My41M2Y2MDZmMWJmNmE3NWI5LjJmYTI5NmU2MjRkZTcwZDYuZGQ1NGY1Yzk3MDk5ZGRiMwogICAgIDBhYjQxODg0YTNlN2ZjZTIKIAotVk1PVlFfSVJFR29yTUVNNjRfdG9fWE1NKHJlZykKK1ZNT1ZIUERfMTI4X1N0b3JlRm9ybShyZWcpCiAgIGJlZm9yZQogICAgIDg4NGE1Y2MzOTc0ZDFhMTIuMzUwMWRiZjYwOWYyZWY0ZS4xZGU4ZmFlMTgwZDI0Y2IzLmM0MTQwZGM0NjYyOTU1MjkKICAgICBiMTYwYmRmMWU4NTY3MWVmLmZmNTQzOTgxNThlMTM2ZmMuMjVmNGNkNDkwZWQ5ZmU0NC5iMDdlOTU3MGZlMWYzNzE4CkBAIC04ODYyLDEyICs4ODYyLDEyIEBACiAgICAgNzgzZWM2Y2EwZTgzYmM2My4xMjAzOTBkNmQ2YzE4NGUwLjVmOGMwMDM2MDdlZGU3ZGQuZmQ2YWM0ZTNhNjM5ZTE3YwogICAgIDE1ODQ2NDgyZWQ3NjIyNDkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNTg0NjQ4MmVkNzYyMjQ5CisgICAgODg0YTVjYzM5NzRkMWExMi4zNTAxZGJmNjA5ZjJlZjRlLjFkZThmYWUxODBkMjRjYjMuYzQxNDBkYzQ2NjI5NTUyOQogICAgIGIxNjBiZGYxZTg1NjcxZWYuZmY1NDM5ODE1OGUxMzZmYy4yNWY0Y2Q0OTBlZDlmZTQ0LmIwN2U5NTcwZmUxZjM3MTgKICAgICBlMzQyMzc3YTMxOGYzZDI2LmFhMTFhMTdkZThjZGQzYzkuYzc2NzdiOTcwODA4YzkxOS5jZmFjYThkNzBhY2JkMmQwCiAgICAgNzgzZWM2Y2EwZTgzYmM2My4xMjAzOTBkNmQ2YzE4NGUwLjVmOGMwMDM2MDdlZGU3ZGQuZmQ2YWM0ZTNhNjM5ZTE3YwogICAgIDE1ODQ2NDgyZWQ3NjIyNDkKLVZNT1ZRX0lSRUdvck1FTTY0X3RvX1hNTShtZW0pCitWTU9WSFBEXzEyOF9TdG9yZUZvcm0obWVtKQogICBiZWZvcmUKICAgICBmNWM2MDQ5ZmZiOGQ0ZTYzLmNlOWY2NzRkMWNiZTI4NTEuMTNmNzgwNzYzZGM5MDM2ZS40OWIxNTk5MmFhMTM5NDNkCiAgICAgNzhmYjIxMjVlZDhhMjRmNS4zZmIwMTQ2ZmY3Y2RiZTlkLjg5YjllZjRhM2FmMjBjOWUuZTEyMDgwMTc4YTA2MGVlNQpAQCAtODg3NSwxMyArODg3NSwxMyBAQAogICAgIGQ3NzJiZTIxZWI2OGJhMzMuZTYxNTg4NDE4MTk0NTdmZC40M2Q3MzgzZjYzZDRiMDk3LjhiMTAyZDRkNzc4NTU0YmEKICAgICA1NTI4YWJkNWJiMjk5OTQxCiAgIGFmdGVyCi0gICAgZjVjNjA0OWZmYjhkNGU2My5jZTlmNjc0ZDFjYmUyODUxLjEzZjc4MDc2M2RjOTAzNmUuNDliMTU5OTJhYTEzOTQzZAorICAgIGY1YzYwNDlmZmI4ZDRlNjMuY2U5ZjY3NGQxY2JlMjg1MS4xM2Y3ODA3NjNkYzkwMzZlLjg5YjllZjRhM2FmMjBjOWUKICAgICA3OGZiMjEyNWVkOGEyNGY1LjNmYjAxNDZmZjdjZGJlOWQuODliOWVmNGEzYWYyMGM5ZS5lMTIwODAxNzhhMDYwZWU1CiAgICAgN2FmMDM1MDJkZTdhNWYyYy4yOWJlY2M5YzNhM2JiOWYyLjRmMTU1ODNlZTg0NzVkOWQuODMyNzczMzI0NTUzOGY4MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ5YjE1OTkyYWExMzk0M2QKKyAgICBkNzcyYmUyMWViNjhiYTMzLmU2MTU4ODQxODE5NDU3ZmQuNDNkNzM4M2Y2M2Q0YjA5Ny44YjEwMmQ0ZDc3ODU1NGJhCiAgICAgNTUyOGFiZDViYjI5OTk0MQogCi1WTU9WUV9JUkVHb3JNRU02NF90b19YTU0ocmVnKQorVk1PVkhQRF8xMjhfU3RvcmVGb3JtKHJlZykKICAgYmVmb3JlCiAgICAgM2RiYmU3MzdhZWM5OTliZi42YTRiMzg2ZTJmNjBmMTM3LmQzMDE0NWM4Njk2NWQyNmEuNDBjYTA5MzdjOWE2YzJiNwogICAgIDlmMTRkZmRkZWJmNDkxZTAuMTE0NzFkZDZjNzZmYzI2My40ZGNlMDA5ZjhkMzk2N2U0LjIyYmM0OTE0MzNjODRmMjkKQEAgLTg4ODksMTIgKzg4ODksMTIgQEAKICAgICA0MDRjZjBhYWI0MTQ1OWJlLjA3ZGQxY2EyNjFmZjFkZTYuNTMzYTVkZTlmYjFiY2RiMi4wNGM4MDMyYTg5MmRjOGI3CiAgICAgYmM3Yjc1M2FhYzg4MmQyOQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJjN2I3NTNhYWM4ODJkMjkKKyAgICAzZGJiZTczN2FlYzk5OWJmLjZhNGIzODZlMmY2MGYxMzcuZDMwMTQ1Yzg2OTY1ZDI2YS40MGNhMDkzN2M5YTZjMmI3CiAgICAgOWYxNGRmZGRlYmY0OTFlMC4xMTQ3MWRkNmM3NmZjMjYzLjRkY2UwMDlmOGQzOTY3ZTQuMjJiYzQ5MTQzM2M4NGYyOQogICAgIGQ2ODE4ZTM1MGUzM2JkNTEuYTczNGVhNDNjZWEwZTdlNS5hZWM4YjQzMDhhOWM1MTE4LmM0Nzc3M2MxYmY0NjEyMWIKICAgICA0MDRjZjBhYWI0MTQ1OWJlLjA3ZGQxY2EyNjFmZjFkZTYuNTMzYTVkZTlmYjFiY2RiMi4wNGM4MDMyYTg5MmRjOGI3CiAgICAgYmM3Yjc1M2FhYzg4MmQyOQotVk1PVlFfSVJFR29yTUVNNjRfdG9fWE1NKG1lbSkKK1ZNT1ZIUERfMTI4X1N0b3JlRm9ybShtZW0pCiAgIGJlZm9yZQogICAgIGNhNWM0NmUwNDQ2NGZkOWUuMzhjMzAyYTg3OTIyYTBkMy4wZjBkMmVlMDliOTkyMDk1Ljk4NzFmNzM1N2Q0MTE3NWQKICAgICAwODM3ZjEwNTZlY2JmMzQyLjE5MzBiZTliZjdlYWNmM2EuOTk5MTlkZTc5OTc5YWIxYi5kYWI5N2Y4MGFiOWE2YmM1CkBAIC04OTAyLDEzICs4OTAyLDEzIEBACiAgICAgODgwOWM1N2ZlNjcwNDRjNS4wYjFlMjkxMDk1ZDVkNGI1LmE3YzU3ZTA1NGYzYzRjNjMuYzBhYzQ2YzM3ZDE3MWY3ZgogICAgIDFkZWY3ZDkzNTg1MmY4MjkKICAgYWZ0ZXIKLSAgICBjYTVjNDZlMDQ0NjRmZDllLjM4YzMwMmE4NzkyMmEwZDMuMGYwZDJlZTA5Yjk5MjA5NS45ODcxZjczNTdkNDExNzVkCisgICAgY2E1YzQ2ZTA0NDY0ZmQ5ZS4zOGMzMDJhODc5MjJhMGQzLjBmMGQyZWUwOWI5OTIwOTUuOTk5MTlkZTc5OTc5YWIxYgogICAgIDA4MzdmMTA1NmVjYmYzNDIuMTkzMGJlOWJmN2VhY2YzYS45OTkxOWRlNzk5NzlhYjFiLmRhYjk3ZjgwYWI5YTZiYzUKICAgICA1NGQ3ZjI5NjQ1Y2JjYzQwLjQxZTAyMmVmY2RmNzIyYTIuODMzNWUzYTU3NmFjN2NhNy43MzVlZjAzNjIyYjMwNDk4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTg3MWY3MzU3ZDQxMTc1ZAorICAgIDg4MDljNTdmZTY3MDQ0YzUuMGIxZTI5MTA5NWQ1ZDRiNS5hN2M1N2UwNTRmM2M0YzYzLmMwYWM0NmMzN2QxNzFmN2YKICAgICAxZGVmN2Q5MzU4NTJmODI5CiAKLVZNT1ZVUFNfWE1NX3RvX1hNTW9yTUVNKHJlZykKK1ZQQU5EXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGU2NzI5MTEyNTBmMWNhNDAuODI5YWU3YWQ2Y2M1MTZmZC5kMjM4ZDA2YWViMTAyMjIwLmUzMGRlOWYzM2YzN2RhN2MKICAgICA3NzgzN2ZhZDAxN2ZkMzcwLjFjNTRkMzBhZjRkNmZmMTMuZjQ3ODExNjk2YzM1NDg4ZS4xMWQ5YTA1YTYyYTllMDFkCkBAIC04OTE2LDEyICs4OTE2LDEyIEBACiAgICAgNjE3YWQ2ZTNmYjk5NzRjZS5hNDc1ZjkwNTc4NWQwNjhiLmI1OWU1NjA3NWQ2YjBiMjUuYjcyYmUyNDliNDFmNDdhOQogICAgIGU2NGE2NmE3MWEzYjFmZWMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjQ3ODExNjk2YzM1NDg4ZS4xMWQ5YTA1YTYyYTllMDFkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI0MTgxMDAxNGMyMTA4MDQuMTEwOWEwNDgyMDA5NDAwOQogICAgIDc3ODM3ZmFkMDE3ZmQzNzAuMWM1NGQzMGFmNGQ2ZmYxMy5mNDc4MTE2OTZjMzU0ODhlLjExZDlhMDVhNjJhOWUwMWQKICAgICAyYzZjNDJjZTA2ODk0YzY3LjM0MDMwNDg0OTlhZmJiMzMuY2IyY2VhN2FiM2QwODJhYy4wZmY0MWYyOWQ1OWQxYjczCiAgICAgNjE3YWQ2ZTNmYjk5NzRjZS5hNDc1ZjkwNTc4NWQwNjhiLmI1OWU1NjA3NWQ2YjBiMjUuYjcyYmUyNDliNDFmNDdhOQogICAgIGU2NGE2NmE3MWEzYjFmZWMKLVZNT1ZVUFNfWE1NX3RvX1hNTW9yTUVNKG1lbSkKK1ZQQU5EXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDc5MWQyNjJmMjNmZTYxNjguNzJmOTM3NTc3ZDNkODY1NC40OTc1MmI3YmFjZWI5YjQ0LjBjMWI1MTdlMDU5NDIwYTcKICAgICA0YTcwOWVjZWVjNzNjNzQ4LmJiMzU2Mjk1MjcwMWJkYTMuMDBjZTE4ZDE1MjY2Mzc4ZC4yZWVlZDc0YTQ3ZDZmZGRiCkBAIC04OTI5LDEzICs4OTI5LDEzIEBACiAgICAgMTljNWE3ZmQyY2E1ZjBlNy42NTEzMDIyNDY2MTY4YzRkLjBmYmUwZmNkNjE1MDczN2EuM2VjYjc2OTAwY2Q3ZmQwZgogICAgIGU2NmI4NmUzYzZhZDk5NjcKICAgYWZ0ZXIKLSAgICA3OTFkMjYyZjIzZmU2MTY4LjcyZjkzNzU3N2QzZDg2NTQuMGZiZTBmY2Q2MTUwNzM3YS4zZWNiNzY5MDBjZDdmZDBmCisgICAgNzkxZDI2MmYyM2ZlNjE2OC43MmY5Mzc1NzdkM2Q4NjU0LjQ5NzUyYjdiYWNlYjliNDQuMGMxYjUxN2UwNTk0MjBhNwogICAgIDRhNzA5ZWNlZWM3M2M3NDguYmIzNTYyOTUyNzAxYmRhMy4wMGNlMThkMTUyNjYzNzhkLjJlZWVkNzRhNDdkNmZkZGIKLSAgICAzNjBmNGI2ZTkwYTcwZGI5Ljk4Nzk1MTBiOTY3MDU1NjcuYTM0ZDNhZjM4NWQ5OTY5MC43NTY1ZTVkN2MxYmVkZDZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwNDQwODUxMDA2MjEzMDQuMGMwYTUxNGEwNTk0MjA4MwogICAgIDE5YzVhN2ZkMmNhNWYwZTcuNjUxMzAyMjQ2NjE2OGM0ZC4wZmJlMGZjZDYxNTA3MzdhLjNlY2I3NjkwMGNkN2ZkMGYKICAgICBlNjZiODZlM2M2YWQ5OTY3CiAKLVZNT1ZVUFNfWE1NX3RvX1hNTW9yTUVNKHJlZykKK1ZQQU5EXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGM3OTIxMTNjOGJjZGVkMjIuZDA2MDMwNjVkYjc5MmRmZC43ZDRkNzA0YzMxN2Y5YzAxLjIwZWQxMzRiMDNkNzhjNzYKICAgICAzZThjMTQwNWY2YzIzNGVjLjM1YWE2MTk0YmEyZjdkMjcuM2U3NDk4ZWY5NjM4YzIyZS5iMmE2YzA1OTg3N2I5YmIxCkBAIC04OTQzLDEyICs4OTQzLDEyIEBACiAgICAgNWYyOTZlOWEyZjVjOGU2MS43YzdlYWNmNDc2NzQ0ZDZhLjI4YjkwMjU3OTdjODNmYTYuY2FlNTBhZDZhMjQ4OGQ5MgogICAgIDA3MDM5ZTFkNzI4OWU4OTEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2U3NDk4ZWY5NjM4YzIyZS5iMmE2YzA1OTg3N2I5YmIxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI4MzAwMDQ3OTYwODAyMjYuODJhNDAwNTA4MjQ4ODk5MAogICAgIDNlOGMxNDA1ZjZjMjM0ZWMuMzVhYTYxOTRiYTJmN2QyNy4zZTc0OThlZjk2MzhjMjJlLmIyYTZjMDU5ODc3YjliYjEKICAgICBhOGE1ODlhYmEzMThhYjczLjI1NzBiNzc1ZTRkNDlmOTIuMDNkNDc0NzkyZWNjM2E4MS5hMmI1OTRlNDA4NDc1YzU2CiAgICAgNWYyOTZlOWEyZjVjOGU2MS43YzdlYWNmNDc2NzQ0ZDZhLjI4YjkwMjU3OTdjODNmYTYuY2FlNTBhZDZhMjQ4OGQ5MgogICAgIDA3MDM5ZTFkNzI4OWU4OTEKLVZNT1ZVUFNfWE1NX3RvX1hNTW9yTUVNKG1lbSkKK1ZQQU5EXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDM1ZGNjY2EzOTQxNjI5N2UuYzA2M2JmM2YzNTE5MTg2Mi4xNmEwYmVmZDhiMTk0NGRiLjA4NmUzZGYzNmRiNzBlNDgKICAgICAzMDNhMTE1NjIzZmMwZTg2LjI3YTE3NjA0NTJkYzg2MjMuY2ZhMTY4N2M0MGQxNDAxMC4wMTQxMjJiYjRiMjVlMzE0CkBAIC04OTU2LDEzICs4OTU2LDEzIEBACiAgICAgZmRiN2NjZjBmOTAwYWY5NS43NzU0MGFhMzNmYTBmZTk0LjBlNzQ3NDhkZjdhODM1NzcuYWE2Y2Q2N2I5MWFmOGVkOAogICAgIDEzNWQ5ZTRjMzBlNGRjMjgKICAgYWZ0ZXIKLSAgICAzNWRjY2NhMzk0MTYyOTdlLmMwNjNiZjNmMzUxOTE4NjIuMGU3NDc0OGRmN2E4MzU3Ny5hYTZjZDY3YjkxYWY4ZWQ4CisgICAgMzVkY2NjYTM5NDE2Mjk3ZS5jMDYzYmYzZjM1MTkxODYyLjE2YTBiZWZkOGIxOTQ0ZGIuMDg2ZTNkZjM2ZGI3MGU0OAogICAgIDMwM2ExMTU2MjNmYzBlODYuMjdhMTc2MDQ1MmRjODYyMy5jZmExNjg3YzQwZDE0MDEwLjAxNDEyMmJiNGIyNWUzMTQKLSAgICBkNGU5ZTcyMTNiNDY1MWQ0LmYwMmQ5MTU3MjIyZjE0NTAuODM0ZjI2NWRiMGE3ZmMzNS42ZTdjYWIxOWNlOWZmYWI1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA2YTAyODdjMDAxMTQwMTAuMDA0MDIwYjM0OTI1MDIwMAogICAgIGZkYjdjY2YwZjkwMGFmOTUuNzc1NDBhYTMzZmEwZmU5NC4wZTc0NzQ4ZGY3YTgzNTc3LmFhNmNkNjdiOTFhZjhlZDgKICAgICAxMzVkOWU0YzMwZTRkYzI4CiAKLVZNT1ZVUFNfWE1NX3RvX1hNTW9yTUVNKHJlZykKK1ZQQU5EXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDAzOWJmZmY4NDhjNzIwNTMuODc2ZjNjYWY3ODM3ZTRmNC4xODYyZGY1NDQ4YmI3ZjljLjRjZGRjZmY2MzJkZmE3MDIKICAgICBkODcyZjVlYjc1ZTY5NTAyLjRkZGNiMTRhZDVmNmFiMWYuMmZhMzBjZDZkNjBiZDQxMy4xOTU2YjI4NjdkNTgwZDAxCkBAIC04OTcwLDEyICs4OTcwLDEyIEBACiAgICAgOWQxYTkyNTY3YjA2MDVhMi4wMjA4OWZjNDk2M2RlMjgzLjJmZWQ1YWZkZjc3YWVhMDEuY2ZhNzAwYzdiMDQyYTgwZQogICAgIDcxMTg2NDUxZDFjYTU1NzMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmZhMzBjZDZkNjBiZDQxMy4xOTU2YjI4NjdkNTgwZDAxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJmYTEwOGQ0ZDYwYWMwMDEuMDkwNjAwODYzMDQwMDgwMAogICAgIGQ4NzJmNWViNzVlNjk1MDIuNGRkY2IxNGFkNWY2YWIxZi4yZmEzMGNkNmQ2MGJkNDEzLjE5NTZiMjg2N2Q1ODBkMDEKICAgICBlYzJkN2Q5MTUyY2Q3OGU0LjJkY2JhOWFkMmI0OWMxM2YuMTg2MjhiOTU4ODFjMzlhNi41MWFiOTkyN2YzMjAyNWExCiAgICAgOWQxYTkyNTY3YjA2MDVhMi4wMjA4OWZjNDk2M2RlMjgzLjJmZWQ1YWZkZjc3YWVhMDEuY2ZhNzAwYzdiMDQyYTgwZQogICAgIDcxMTg2NDUxZDFjYTU1NzMKLVZNT1ZVUFNfWE1NX3RvX1hNTW9yTUVNKG1lbSkKK1ZQQU5EXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDEyYzgzZmIxNzFjNWU3ZmQuNDU4MzMwYTY4ZDFmNzhlYi5hODVmMGY3YjM0ZGRjYTE1LmQwOGU3NDdhYzFiMjIyY2YKICAgICA4ZTg0MGZkM2FkM2UxOWQ3LjQxYjU1M2VlMjNhMzBjNjkuZmI5Yzc1YmYxZTM1MzQyMS41NzkyZDU3ODgyNGYxZWJjCkBAIC04OTgzLDEzICs4OTgzLDEzIEBACiAgICAgODY1MDdjMGQ2N2RiNGYyZS5hNmE0MTkxMjRlMWU4YWI2LjE3ZjcxNDlhNGMzZjgwNWEuODdmMzVkYTg1N2U5NTFhNwogICAgIGU3ZTg3Y2IyYTNmZjAwZmIKICAgYWZ0ZXIKLSAgICAxMmM4M2ZiMTcxYzVlN2ZkLjQ1ODMzMGE2OGQxZjc4ZWIuMTdmNzE0OWE0YzNmODA1YS44N2YzNWRhODU3ZTk1MWE3CisgICAgMTJjODNmYjE3MWM1ZTdmZC40NTgzMzBhNjhkMWY3OGViLmE4NWYwZjdiMzRkZGNhMTUuZDA4ZTc0N2FjMWIyMjJjZgogICAgIDhlODQwZmQzYWQzZTE5ZDcuNDFiNTUzZWUyM2EzMGM2OS5mYjljNzViZjFlMzUzNDIxLjU3OTJkNTc4ODI0ZjFlYmMKLSAgICBjMDE4NGZhM2ExNDFhNzJlLmVlZmNmNzk4ZGExZmZlYzkuZDY4YTRlN2E3MjUyZGRkNC4yMDQ1Nzk2NGQ1ZGUxYTc2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE4MWMwNTNiMTQxNTAwMDEuNTA4MjU0Nzg4MDAyMDI4YwogICAgIDg2NTA3YzBkNjdkYjRmMmUuYTZhNDE5MTI0ZTFlOGFiNi4xN2Y3MTQ5YTRjM2Y4MDVhLjg3ZjM1ZGE4NTdlOTUxYTcKICAgICBlN2U4N2NiMmEzZmYwMGZiCiAKLVZNT1ZOVERRXzEyOChyZWcpCitWUE1PVk1TS0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOWU2ZmQyZWM1NWE5NjMxZi5iYmY4MTBmZDFlMTdjYjAyLmM2ZjhiNGM2MTkyY2ViZGQuOTlhZDQ1MGFjNzA4ZGJkZQogICAgIDA3ZDY1YmM0MGE3NWI1YmYuM2FkYjg5NjBkZjAxZDhkNy5hYjQ2YzQyMmRhZDY1ZWU5LjM3Nzk1Y2I2ZmZiYWE4OGQKQEAgLTkwMDEsOCArOTAwMSw4IEBACiAgICAgMDdkNjViYzQwYTc1YjViZi4zYWRiODk2MGRmMDFkOGQ3LmFiNDZjNDIyZGFkNjVlZTkuMzc3OTVjYjZmZmJhYTg4ZAogICAgIDdlNjcxM2E1NWRlZTM0ODcuZTFjNzYyMjBjOGE2MzJkOC5hZmQ4NDU5MTJhYTcxZjg3LmNmMjdkNjhhMTE2MGE0OTMKICAgICA1ZTZmZjdmYmViYTExYTIxLjhhODYxNzJiZjUxMTk0MzIuMmZmYjM0N2ZhNzJiNmE2My4zYzgzMmQ3MjE5MDY4YTFiCi0gICAgNTk1OWRmNWEzMWI5MTg1MgotVk1PVk5URFFfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDBhZDFmCitWUE1PVk1TS0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDQ3NDY3MmU3ODg0MDg2My4wNTNhMDIzMjUwMTlhMzNjLjEzZTUyNTZjODE0ZmJjMTAuODdmYjhjNThlZGVmN2EyOAogICAgIDE3YTE0MmRhMDg3MzE2N2IuY2UxNDMwYjYyN2UyMGQ4Mi41NmIwMDZjZTg5NmE2MzlmLjEzMjQ0OTg4OTc3ZThjODMKQEAgLTkwMTAsMTMgKzkwMTAsMTMgQEAKICAgICBlOTYyZGQ2Yjc0ZWY4MDZlLjM1MjRlNjU2OWM5ODZmNDEuN2ViOTM2YWE3YTZkMjU3Zi4zNzIwZTI5ZDg5MmVhNmE5CiAgICAgODc4Y2I3NWIwODY3MjVjZAogICBhZnRlcgotICAgIDA0NzQ2NzJlNzg4NDA4NjMuMDUzYTAyMzI1MDE5YTMzYy41NmIwMDZjZTg5NmE2MzlmLjEzMjQ0OTg4OTc3ZThjODMKKyAgICAwNDc0NjcyZTc4ODQwODYzLjA1M2EwMjMyNTAxOWEzM2MuMTNlNTI1NmM4MTRmYmMxMC44N2ZiOGM1OGVkZWY3YTI4CiAgICAgMTdhMTQyZGEwODczMTY3Yi5jZTE0MzBiNjI3ZTIwZDgyLjU2YjAwNmNlODk2YTYzOWYuMTMyNDQ5ODg5NzdlOGM4MwogICAgIDZmYWRlYTRiZmQ5MzAwYzUuMTQ0ODdkZjMwYzg4OTJhMC4zMWIzMzgzZjI4NzE0ODBiLjJmYzI2NzdiNDI2NWRjMWYKICAgICBlOTYyZGQ2Yjc0ZWY4MDZlLjM1MjRlNjU2OWM5ODZmNDEuN2ViOTM2YWE3YTZkMjU3Zi4zNzIwZTI5ZDg5MmVhNmE5CiAgICAgODc4Y2I3NWIwODY3MjVjZAogCi1WTU9WTlREUV8xMjgocmVnKQorVlBNT1ZNU0tCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDdiNTBlMTFmNWM5Yzk2MzYuNWY4Yzk2Mjg4ODk0NTNhMi44YmYyNjU0OTcyOWVkZjEyLjFiOTA3ZGZiOWM2Y2I3MjgKICAgICA2ZmI5NWM1NzIxNTgzNDkxLmFmZjk5MTZjNTY4ZDM0OGMuNzRmZmY4M2EyYjI0MjBiZS5lMjAyODcxZWFhNzliYTMyCkBAIC05MDI4LDggKzkwMjgsOCBAQAogICAgIDZmYjk1YzU3MjE1ODM0OTEuYWZmOTkxNmM1NjhkMzQ4Yy43NGZmZjgzYTJiMjQyMGJlLmUyMDI4NzFlYWE3OWJhMzIKICAgICBiZjEzMjQ2ZGYxMjczZDg5LmIzNzQ0YTI1ZjllNmUxNTkuNGE5NzliOTM2MmI4NmNmMy5iMGRjZDJmZmJmYTBlOWM4CiAgICAgYzdhOTM2Y2Y2Yjk1ZWJjYi40OGM4M2UzZThkYWIxNDM1LjZhMDY0OGMyYjNlNWZmNWEuNjJlYWQ5OGJmN2VlMDIxNgotICAgIGQyZjgxOGFjNmY2ZWJmNGEKLVZNT1ZOVERRXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwNjFhYQorVlBNT1ZNU0tCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGRkZDEwYzUwNDIyZGRjOGQuZTNjOThjZTgyOTJmN2IwMy40YWMyZThhMzMwZTk4YTRiLjMxOTdmZDMyYmIzODE3YTEKICAgICA1ZjQzMmY2MThkMzYxNjBlLjZmYmQyNDI0Yzc4MDI4ZGMuOTYyZWM0NDBmYmFiZmVjNy5mOTk4YjU0ZjE2M2NlZTc0CkBAIC05MDM3LDEzICs5MDM3LDEzIEBACiAgICAgMzkxZGY3N2ZmOTU3ZDE3NC40NjU1MDhiNTE1NzljYzIzLjc3OGMwMmQyN2ZlZGQzYTQuMDAxNTFlNDAzMzg4Y2I2ZAogICAgIGY2MmFjN2VjMmRlODRhZWEKICAgYWZ0ZXIKLSAgICBkZGQxMGM1MDQyMmRkYzhkLmUzYzk4Y2U4MjkyZjdiMDMuOTYyZWM0NDBmYmFiZmVjNy5mOTk4YjU0ZjE2M2NlZTc0CisgICAgZGRkMTBjNTA0MjJkZGM4ZC5lM2M5OGNlODI5MmY3YjAzLjRhYzJlOGEzMzBlOThhNGIuMzE5N2ZkMzJiYjM4MTdhMQogICAgIDVmNDMyZjYxOGQzNjE2MGUuNmZiZDI0MjRjNzgwMjhkYy45NjJlYzQ0MGZiYWJmZWM3LmY5OThiNTRmMTYzY2VlNzQKICAgICAzNTE4ZmZjZDZiOTUyYWY3LmM3ZDNmYWVmZTIxNTJmMDMuMDZkODRlMDEwY2ZlMmRkNi4yMDUzNmM4NTVmN2RjMTdmCiAgICAgMzkxZGY3N2ZmOTU3ZDE3NC40NjU1MDhiNTE1NzljYzIzLjc3OGMwMmQyN2ZlZGQzYTQuMDAxNTFlNDAzMzg4Y2I2ZAogICAgIGY2MmFjN2VjMmRlODRhZWEKIAotVk1PVk5URFFfMTI4KHJlZykKK1ZQTU9WTVNLQl8xMjgocmVnKQogICBiZWZvcmUKICAgICA1ZWRlNjRmNWU5Mjk3OGE0LjQ4MWU5NDYzNTI4N2NhYjMuNGE5MDRjZTJmZDM4M2JlOS5jNTE2NWRhMDZmODRhYzVkCiAgICAgOTU3ZGYwYzgwNGQ4OTI0NC4zZWU3NTA2NTkzMzFjZmRkLjJlZDBjMGUzMzVkZWI3MDAuY2M0MWRhNTVmOGQwNzMyYwpAQCAtOTA1NSw4ICs5MDU1LDggQEAKICAgICA5NTdkZjBjODA0ZDg5MjQ0LjNlZTc1MDY1OTMzMWNmZGQuMmVkMGMwZTMzNWRlYjcwMC5jYzQxZGE1NWY4ZDA3MzJjCiAgICAgZjU1MzY3Y2YxOTgwZDM3OS5mNzQ0YTk3MWQ3NjE5ZDIxLjRlNjA2MjIyNWFmODdlMTYuNjhkYWY1ZGYzN2RiZTUzZAogICAgIGRiYWJjNjc4YzVhZTc4ZWQuNGYwMTFhNzMzYjI0ZjBhOS4wNThlMmUwZDA3MTFjOWQ0Ljc1YWUyYjI4NDdiNGJlYmQKLSAgICBjZjg3ZjYxZTQ1NjRiOWQ4Ci1WTU9WTlREUV8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDc2YWMKK1ZQTU9WTVNLQl8xMjgobWVtKQogICBiZWZvcmUKICAgICA1MjMxZDRhYzRkZjk5NGJhLmEzZDIwNzJkYTRlY2JkNGQuMjJlOTFmNTdkYTg2ODNhMS5iMWE0MWUwZWQ4YjZkN2U5CiAgICAgZGE3YTQwYmU3OTdmMDk4ZS5hOTE0Mjg1YzUwYzhkZTQ0LjRjYzkzNDA5ZDA5MTEzMzcuYWNlZjMwOTM2YTcyZTJmZQpAQCAtOTA2NCwxMyArOTA2NCwxMyBAQAogICAgIDY5MTViMjFlYjM4YWIzYmQuZGYxOWY3ZDU4NTg4YTJhOS4xNWExODA4ODM0ZDcxOWU3LjA0NTRhN2Q2NDA2MGUyZGYKICAgICAxNzA2MDQ2Y2JiYWE0ZTAyCiAgIGFmdGVyCi0gICAgNTIzMWQ0YWM0ZGY5OTRiYS5hM2QyMDcyZGE0ZWNiZDRkLjRjYzkzNDA5ZDA5MTEzMzcuYWNlZjMwOTM2YTcyZTJmZQorICAgIDUyMzFkNGFjNGRmOTk0YmEuYTNkMjA3MmRhNGVjYmQ0ZC4yMmU5MWY1N2RhODY4M2ExLmIxYTQxZTBlZDhiNmQ3ZTkKICAgICBkYTdhNDBiZTc5N2YwOThlLmE5MTQyODVjNTBjOGRlNDQuNGNjOTM0MDlkMDkxMTMzNy5hY2VmMzA5MzZhNzJlMmZlCiAgICAgNDMyZGI2NDBlODAwZDQ4MC40OWJkMjQ3MDY4Y2UxNjdmLmE5NmRkNjc2M2E1MzVjOTQuNTRiYjVmMDc1OWQxMjdjMgogICAgIDY5MTViMjFlYjM4YWIzYmQuZGYxOWY3ZDU4NTg4YTJhOS4xNWExODA4ODM0ZDcxOWU3LjA0NTRhN2Q2NDA2MGUyZGYKICAgICAxNzA2MDQ2Y2JiYWE0ZTAyCiAKLVZNT1ZMSFBTXzEyOChyZWcpCitWQ1ZUVFNTMlNJXzY0KHJlZykKICAgYmVmb3JlCiAgICAgZWIxYzczMzU2NzNiYTlkNi4yOGZmYjE0NGY4Mjg2MDcxLmM3NzQ5ZWY3NDU4NWJlNmYuNmMzMWFlMmRkOTJhMDg1YQogICAgIGRhZTRlZjlkZTBhMDJjMDguNWNiNzJlOWVkM2U3OTdjNy41ZDE5MTM0MjQ0NGVhNTdjLjg5ZTlkYzUwNDU1N2UyMTkKQEAgLTkwNzgsMTIgKzkwNzgsMTIgQEAKICAgICA3ZGI1ZmVmYWE2MTNhMTM0LjkyYzE5MjlmYjlmNjk3MGMuMDM3NDVjMDQ2ZDc5YzgxZS44YTAwMjliZmU1NzA0ZjJlCiAgICAgMjVmNzQwZTQ0Zjc0NThkYgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YTk0ODdkZDk1NmE2NjUxLjg5ZTlkYzUwNDU1N2UyMTkKKyAgICBlYjFjNzMzNTY3M2JhOWQ2LjI4ZmZiMTQ0ZjgyODYwNzEuYzc3NDllZjc0NTg1YmU2Zi42YzMxYWUyZGQ5MmEwODVhCiAgICAgZGFlNGVmOWRlMGEwMmMwOC41Y2I3MmU5ZWQzZTc5N2M3LjVkMTkxMzQyNDQ0ZWE1N2MuODllOWRjNTA0NTU3ZTIxOQogICAgIDQxYTg3NDEwYzE2MzE2NDMuZTAwOWE1MTk1ZmQyMTZlYy5mZDU1NTQyMjFkNzE5NTdlLjRhOTQ4N2RkOTU2YTY2NTEKICAgICA3ZGI1ZmVmYWE2MTNhMTM0LjkyYzE5MjlmYjlmNjk3MGMuMDM3NDVjMDQ2ZDc5YzgxZS44YTAwMjliZmU1NzA0ZjJlCi0gICAgMjVmNzQwZTQ0Zjc0NThkYgotVk1PVkxIUFNfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwZDdlCitWQ1ZUVFNTMlNJXzY0KG1lbSkKICAgYmVmb3JlCiAgICAgZjY0NjQ3MzhmMjgyM2Q4NS5lODU3ODljODJjMzkwYTg3LjRkYWE3MjFlZmM1ZGQ3NTIuY2JjMjI4NTJjZmYyN2EwYgogICAgIGRiYjliYmE1ZThhN2JjNTguZGZkYTEyZTRlZTYzOGRlNy5lZDkyYzA4MDQ0MTU5MmViLmIwOGJiMjc5ZTA2OWU5ZWYKQEAgLTkwOTUsOSArOTA5NSw5IEBACiAgICAgZGJiOWJiYTVlOGE3YmM1OC5kZmRhMTJlNGVlNjM4ZGU3LmVkOTJjMDgwNDQxNTkyZWIuYjA4YmIyNzllMDY5ZTllZgogICAgIGFmMWIxNjE4NGRlZThmN2YuYmY4OTk0YmM4OTFkNjUwMS40ZDQzZjhiM2FlMmE4MzAyLjEwMWJmOGU2M2I2OTRmNzYKICAgICA0ZDNhZDY3ZDNkNjQ3MzI3LmUyYjIwYmJiOThmMWQwODEuNGI4YTk2YTI1NmE2NjdjNC40NmJlZjUwNDdjN2ZlOTRkCi0gICAgYWViZmE1M2Y0MDM2ZjIyMAorICAgIGZmZmZmZmZlMWIwYmVhMDAKIAotVk1PVkxIUFNfMTI4KHJlZykKK1ZDVlRUU1MyU0lfNjQocmVnKQogICBiZWZvcmUKICAgICBhMzZiMDUwMjIyMWFhNzlhLjkzZTA3NmMxZDYxMzI0N2IuYTU5ZjczNGRiODZlMDgxMi5jMjMzMTYzOTU3OTdmYTVkCiAgICAgODMwZTBmYmJiZmI4NDQ2OC41YmRhNzJjZTMxMDk1ZGE4LjY0OWRjOWRkODQxZDQ5NjAuOGQwYWY1NjRjZDA5ZjhmOApAQCAtOTEwNSwxMiArOTEwNSwxMiBAQAogICAgIDcwNjkxNmJkOTg0ZjI1YWYuZTVmYTZmZjhhM2Y5NWEzYi40N2ZjMmNhZDkxNDZkYWU2LjkzNzFiZDI2OGI5ZDIzZTYKICAgICA4Njk5OWU5NTA5ZDdjOTkxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhhZGJhZTBmZDUwNzFjYzEuOGQwYWY1NjRjZDA5ZjhmOAorICAgIGEzNmIwNTAyMjIxYWE3OWEuOTNlMDc2YzFkNjEzMjQ3Yi5hNTlmNzM0ZGI4NmUwODEyLmMyMzMxNjM5NTc5N2ZhNWQKICAgICA4MzBlMGZiYmJmYjg0NDY4LjViZGE3MmNlMzEwOTVkYTguNjQ5ZGM5ZGQ4NDFkNDk2MC44ZDBhZjU2NGNkMDlmOGY4CiAgICAgYTlmNGMxZDViMzlhMDUzNi44M2Y0NDc5MjZjNTJkY2Q5LjdiZjgwOGQ5OTg4Y2QxMTguOGFkYmFlMGZkNTA3MWNjMQogICAgIDcwNjkxNmJkOTg0ZjI1YWYuZTVmYTZmZjhhM2Y5NWEzYi40N2ZjMmNhZDkxNDZkYWU2LjkzNzFiZDI2OGI5ZDIzZTYKLSAgICA4Njk5OWU5NTA5ZDdjOTkxCi1WTU9WTEhQU18xMjgobWVtKQorICAgIGZmZmZmZmZmZjc2MDcwODAKK1ZDVlRUU1MyU0lfNjQobWVtKQogICBiZWZvcmUKICAgICAzZDIwY2U0OTZlYzJjOWVlLjM2YjgwYmRkMGQ2MGUyODAuNWZiODY4ZWNmMTBhOTZmYS4yMmY0MzFjMzBiZDdhMDc2CiAgICAgOTVkMGM3MmNkMzY5ZTAyYS41NTJmOWFhMmFjNWI3NTU0LmNiZmFhZDVhNzM5MTRhNDEuNjkyZTEzODhhMWNjNjE3MwpAQCAtOTEyMiw5ICs5MTIyLDkgQEAKICAgICA5NWQwYzcyY2QzNjllMDJhLjU1MmY5YWEyYWM1Yjc1NTQuY2JmYWFkNWE3MzkxNGE0MS42OTJlMTM4OGExY2M2MTczCiAgICAgNmI3NjA3MmM1N2Q4Y2E3MS4yYjE4YzE3OTExY2IxZGQ4LjA3OGJiYjJlNDQ5YjMzM2QuNzhmNGNmNjhmMGIwNTc4OQogICAgIDk5ZGQwOTMzMTMxYzQzZWUuMTJjMDdiY2NkODNkMTRiNy5lZDM4MGM1NDgwMzMwZDFhLmFiOTQ2MGQwOTMwZmJmNjUKLSAgICA1ZTU4YzIyYjI2NzZkNWIzCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WTU9WTEhQU18xMjgocmVnKQorVkNWVFRTUzJTSV82NChyZWcpCiAgIGJlZm9yZQogICAgIGVkOGNmMWU0NDY3MGQ0MWYuZmNkMzRhMmYyNTQwMDZjZS42ODczYzQwOTlmM2M5NzllLjVhY2UxZWI4NDQ2NjkzMDMKICAgICBiNDdlZWE2OThlOGFmOTU0LjcxMjI0NDBiYTk1MWQwM2MuODc3ZDk5OWFmZjU0ZTIzOS4yYjE2NmM0NmFiM2U4MzI0CkBAIC05MTMyLDEyICs5MTMyLDEyIEBACiAgICAgNTljODI3ODQwODRiYTRjYS5mY2ZlNTgxMzc1Njc2ODc1Ljk0YzVkMzZkMDAwMWJmMzkuNjRmNGFkOTFkNTEzOGJjMgogICAgIDg1MjA5NzI2Y2UyNzFjOTUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2FkZjcyZWJkMmNhOTdhYi4yYjE2NmM0NmFiM2U4MzI0CisgICAgZWQ4Y2YxZTQ0NjcwZDQxZi5mY2QzNGEyZjI1NDAwNmNlLjY4NzNjNDA5OWYzYzk3OWUuNWFjZTFlYjg0NDY2OTMwMwogICAgIGI0N2VlYTY5OGU4YWY5NTQuNzEyMjQ0MGJhOTUxZDAzYy44NzdkOTk5YWZmNTRlMjM5LjJiMTY2YzQ2YWIzZTgzMjQKICAgICAwZTc5YTgyNTliNGY4MGZlLmQyOTc3NWIzYmE1YTVkNjUuY2QyYWY0ZWQ5NjEyMzEzMy4zYWRmNzJlYmQyY2E5N2FiCiAgICAgNTljODI3ODQwODRiYTRjYS5mY2ZlNTgxMzc1Njc2ODc1Ljk0YzVkMzZkMDAwMWJmMzkuNjRmNGFkOTFkNTEzOGJjMgotICAgIDg1MjA5NzI2Y2UyNzFjOTUKLVZNT1ZMSFBTXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVkNWVFRTUzJTSV82NChtZW0pCiAgIGJlZm9yZQogICAgIDdhMzFhZTk1ZGMxMTA3NTEuZjBiODYzZjI3MjBhYTM2NC5jYjIzNjkxN2Y1ODVhZjk3LjM5OWIzMTg2ZDhhZGM5ZjcKICAgICAxZGYxNmRjOTE4ZGUwNTIyLjJmOTY1OGRiNzQxOWI3NzcuMWNkMjI1YWI1NmJlZWNmOC4xOWY5MGFhNGJiYTM4YTE4CkBAIC05MTQ5LDkgKzkxNDksOSBAQAogICAgIDFkZjE2ZGM5MThkZTA1MjIuMmY5NjU4ZGI3NDE5Yjc3Ny4xY2QyMjVhYjU2YmVlY2Y4LjE5ZjkwYWE0YmJhMzhhMTgKICAgICA0YjJkNTBiMGExOTlkNTMzLjcyYWIwM2FiYWIwMzFjYjAuYzlkNzA3YmNiNTIxZGJjMy44ZTI5NWIzMzQzNmUzZjQ4CiAgICAgZTBiMWQ0MzU5MDRlMzFiMS4xNDQ2NWZjZWIyNTUxMGJiLmFmZmQ4YTM0MmViNzNhMjUuZjU3ODFmYTAwZjlhMjUzNQotICAgIGFhMzE1MjU1YjliNDc1ODgKKyAgICBmZmZhOTFiMDQ4MDAwMDAwCiAKLVZQQUJTRF8xMjgocmVnKQorVlBBQ0tVU1dCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDBhYTJmMGMwZGQ0NzZlZjAuYjg0OTc0NDQwMzA5ZDZjNy43M2IyNjhiMTI2OWFjZDQzLmFhMTIyZDAxZGM4ZWMzNGEKICAgICA2ZjE1ZjU0YjE4ZGY0YTE3LmFmYzBhY2M5MTZkNzgwYTIuZWEzYTFhYmVhMjVlOTBmNS45NmUwNjkwZGRiYjEzMjVkCkBAIC05MTU5LDEyICs5MTU5LDEyIEBACiAgICAgYmIzNTI2NzU0MTUwOWU1NC42YTdmZDRlNjhhZGFkMTU2LjhmZDI2YTBiMjQ5NDE2ODUuYjFkOWEwOTczZTBkYjZmZgogICAgIDk4OWQ5M2VjZGE1ZDQyZTYKICAgYWZ0ZXIKLSAgICAwYWEyZjBjMGRkNDc2ZWYwLmI4NDk3NDQ0MDMwOWQ2YzcuNzNiMjY4YjEyNjlhY2Q0My5hYTEyMmQwMWRjOGVjMzRhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJiZDM4ZTlkM2NkMjZiODQuNGYzNGJiNDY0ODJkNDU4YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGZmZmZmZjAwMDBmZjAwLjAwZmYwMDAwMDBmZjAwZmYKKyAgICA2ZjE1ZjU0YjE4ZGY0YTE3LmFmYzBhY2M5MTZkNzgwYTIuZWEzYTFhYmVhMjVlOTBmNS45NmUwNjkwZGRiYjEzMjVkCiAgICAgMzZkNzVlNjQwNTA5NDZhOS5hMWU0ZjhiMWU0YzRlYTZlLmQ0MmM3MTYzYzMyZDk0N2MuNGYzNGJiNDY0ODJkNDU4YgogICAgIGJiMzUyNjc1NDE1MDllNTQuNmE3ZmQ0ZTY4YWRhZDE1Ni44ZmQyNmEwYjI0OTQxNjg1LmIxZDlhMDk3M2UwZGI2ZmYKICAgICA5ODlkOTNlY2RhNWQ0MmU2Ci1WUEFCU0RfMTI4KG1lbSkKK1ZQQUNLVVNXQl8xMjgobWVtKQogICBiZWZvcmUKICAgICBlMDRiMTAzMTM3MmFhNTZjLjVhNzg0OWVjNjc0MThkYzEuZTY1ZWJkNTUyMzI3ZjE4Ny43NTc5MDAyMTYxMWY1MmJiCiAgICAgNjVhZTk0NTI3MjdmOWFiYy42ZmVmYzMzNDE0NjY1MDlmLmYxNGQyZWViY2JiNzA1MmMuZTQ2ZDJmMTMxNzU4ODRjYgpAQCAtOTE3MywxMiArOTE3MywxMiBAQAogICAgIGY3MGQyYzQ0MjQ5OTM0Y2QKICAgYWZ0ZXIKICAgICBlMDRiMTAzMTM3MmFhNTZjLjVhNzg0OWVjNjc0MThkYzEuZTY1ZWJkNTUyMzI3ZjE4Ny43NTc5MDAyMTYxMWY1MmJiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE5YTE0MmFiMjMyN2YxODcuNzU3OTAwMjE2MTFmNTJiYgotICAgIDAyOTM5YTNiYTY2OGRlMDMuNTZlNTkwYjllMzRkMjM5OC42NzE4YTM5MzlmOTRjYjcyLjM2ZjlmMzRjZTJjZGU4NjEKKyAgICA2NWFlOTQ1MjcyN2Y5YWJjLjZmZWZjMzM0MTQ2NjUwOWYuZjE0ZDJlZWJjYmI3MDUyYy5lNDZkMmYxMzE3NTg4NGNiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDBmZjAwZmYyMWZmZmYuMDBmZjAwZmYwMGZmZmYwMAogICAgIDk1YzY5ZGQ4ZjBmMjJkNmMuNmJhNWFkZTc3MTgyNDE1OC4yMzhhOTgzOGJiY2NmYzg0LmM5NmI0OTM4NWQwOWI5MjgKICAgICBmNzBkMmM0NDI0OTkzNGNkCiAKLVZQQUJTRF8xMjgocmVnKQorVlBBQ0tVU1dCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDFlMmQ5OGRhZDQwODk0ZmMuZjkxMzFiMTY2YjI4NDIyNC4wYTdkMTUyYjU5OTBlNzhkLjAzNzE4OWM4Mzk2YjU3OTAKICAgICA5ODE1ODk2NzA4ZTIxNzYwLjBhNDY5MGRmMzQxNmRiNTcuOGZiN2M0ZWYzODAzNTFlMC5lMjk3ZjMyZTM4N2I5N2JmCkBAIC05MTg2LDEyICs5MTg2LDEyIEBACiAgICAgZjk2ZmViMTc2ZTA5NzA3OS5hMjhkNGJjNjFkNGM4M2RjLmJhODRlOGFiNDg0OTYwOTcuMGNkMzFmMmMyMzI0YjMzZAogICAgIDEwODFkYTljNDhkMzA5ZTIKICAgYWZ0ZXIKLSAgICAxZTJkOThkYWQ0MDg5NGZjLmY5MTMxYjE2NmIyODQyMjQuMGE3ZDE1MmI1OTkwZTc4ZC4wMzcxODljODM5NmI1NzkwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU1YTBiNmEwNTY5ODQ1MDAuNjMzNmFlYWEyZGY1ODhjMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwZmZmZmZmZmZmZjAwLjAwMDBmZmZmMDAwMGZmMDAKKyAgICA5ODE1ODk2NzA4ZTIxNzYwLjBhNDY5MGRmMzQxNmRiNTcuOGZiN2M0ZWYzODAzNTFlMC5lMjk3ZjMyZTM4N2I5N2JmCiAgICAgYzIxMmZjNTg1ZGI0ZjdhNi5hMzJhNzYyMTY2YzliMjMwLjU1YTBiNmEwYTk2N2JiMDAuOWNjOTUxNTZkMjBhNzc0MAogICAgIGY5NmZlYjE3NmUwOTcwNzkuYTI4ZDRiYzYxZDRjODNkYy5iYTg0ZThhYjQ4NDk2MDk3LjBjZDMxZjJjMjMyNGIzM2QKICAgICAxMDgxZGE5YzQ4ZDMwOWUyCi1WUEFCU0RfMTI4KG1lbSkKK1ZQQUNLVVNXQl8xMjgobWVtKQogICBiZWZvcmUKICAgICA4MzlmZmM5MzVjMjUzMzVjLjk3N2E1NDEyZDg2ZGMwODYuZTIzOThhYmM3NmFiMGM4Ni4xOWFlNTU3YWIyMzQ3ZTUxCiAgICAgNDBmODAzZmI3YzI2ZWVkNy5mOTdkMzJiNDM2NmQyMTc4LjNlZmJhZmVlOGRmMzA3NWIuY2U2Y2Y5N2I4M2I1NGVkYgpAQCAtOTIwMCwxMiArOTIwMCwxMiBAQAogICAgIDg4MGQwOGRjNzMyZTRmMGYKICAgYWZ0ZXIKICAgICA4MzlmZmM5MzVjMjUzMzVjLjk3N2E1NDEyZDg2ZGMwODYuZTIzOThhYmM3NmFiMGM4Ni4xOWFlNTU3YWIyMzQ3ZTUxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFkYzY3NTQ0NzZhYjBjODYuMTlhZTU1N2E0ZGNiODFhZgotICAgIDI1NWE2YWMxYzNlMGY2N2UuN2JjNjgyNjgyNTk0ZDBmYy45NDlmMzc0ODdkMmYzMTg2LjM1MDhkMDE5NTY1NzBmZTEKKyAgICA0MGY4MDNmYjdjMjZlZWQ3LmY5N2QzMmI0MzY2ZDIxNzguM2VmYmFmZWU4ZGYzMDc1Yi5jZTZjZjk3YjgzYjU0ZWRiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDBmZmZmZmZmZjAwZmYuZmYwMDAwZmYwMDAwMDBmZgogICAgIDBkOGZhZGQyNGQ2MjA2N2UuN2E5ZjNlOWM0MDZlMDhiZS5iZmYxOWNiNjYyNmI0NTM0LmE5Y2ZkNmMwYzdhNmZiMGUKICAgICA4ODBkMDhkYzczMmU0ZjBmCiAKLVZQQUJTRF8xMjgocmVnKQorVlBBQ0tVU1dCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDJkMGU2MWQ5ZjY3YzQ3OTAuZDM2NDQ5MTkzOGI1ZGMwMy41MDU1NjRiYjI0ODgwNzY5LjlhYmQ1YzI0NTliNDAxOTEKICAgICBmMzFlZGQyM2VhMWMxZTNjLjU1YTViODgxOWRlNzMxMzguNWEzNGVmMzE2YzZkMDdhYS4wM2NlZjI3ZTdkMTUxZmM4CkBAIC05MjEzLDEyICs5MjEzLDEyIEBACiAgICAgNTY5YTJmNGU5YjdlNWNjNy5mODlhMDQ2OTRiMTU0ZjY0LjdhOWMyNWQzOWFjOWZjOWMuZWJmMzkxYTdiZTUxNzM3NwogICAgIDIyOWU5MjRkMTM0MzIxNDYKICAgYWZ0ZXIKLSAgICAyZDBlNjFkOWY2N2M0NzkwLmQzNjQ0OTE5MzhiNWRjMDMuNTA1NTY0YmIyNDg4MDc2OS45YWJkNWMyNDU5YjQwMTkxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBiNzgyNDk1NGI1NmJhZDQuMmIwZTI1NTAxNDY0YTRmYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmMDAwMDAwMDAwMGZmLmZmMDBmZmZmZmYwMGZmZmYKKyAgICBmMzFlZGQyM2VhMWMxZTNjLjU1YTViODgxOWRlNzMxMzguNWEzNGVmMzE2YzZkMDdhYS4wM2NlZjI3ZTdkMTUxZmM4CiAgICAgMzg4OTc4MjZlZTk4MTFjMC42ZDFlNzhmODlhMDNjNDQ5LmY0ODdkYjZiYjRhOTQ1MmMuZDRmMWRhYjBlYjliNWIwNgogICAgIDU2OWEyZjRlOWI3ZTVjYzcuZjg5YTA0Njk0YjE1NGY2NC43YTljMjVkMzlhYzlmYzljLmViZjM5MWE3YmU1MTczNzcKICAgICAyMjllOTI0ZDEzNDMyMTQ2Ci1WUEFCU0RfMTI4KG1lbSkKK1ZQQUNLVVNXQl8xMjgobWVtKQogICBiZWZvcmUKICAgICA1NmJmNTk5MDA1N2QyMjlmLmFiOWVmZDA4OTA1OTNiZmUuZDNlN2Q5YzBjYjJhOGZiMy40OGJkYzdkNmI3NTg2OWE2CiAgICAgNjQyMTYyNWJiMTBjMzFiMC45MWUxZGViZTY2YjZlOTEwLmQ4Y2Y3MWU5MzY0ZDQwNjIuYmEzN2JmZTFhOWUzYzhmNQpAQCAtOTIyNywxMiArOTIyNywxMiBAQAogICAgIDgwYjM3ZTYzOTJkZWU3M2MKICAgYWZ0ZXIKICAgICA1NmJmNTk5MDA1N2QyMjlmLmFiOWVmZDA4OTA1OTNiZmUuZDNlN2Q5YzBjYjJhOGZiMy40OGJkYzdkNmI3NTg2OWE2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJjMTgyNjQwMzRkNTcwNGQuNDhiZGM3ZDY0OGE3OTY1YQotICAgIDI2OTIyOTk5MzJmYjBjYTMuNjZhZmNlZGViYzIwYTNhYS5lNDFmNGFkMWE5OGIxZDllLjJjNTYwODVlMGJmNTU1MzYKKyAgICA2NDIxNjI1YmIxMGMzMWIwLjkxZTFkZWJlNjZiNmU5MTAuZDhjZjcxZTkzNjRkNDA2Mi5iYTM3YmZlMWE5ZTNjOGY1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwZmYwMDAwZmYuMDBmZmZmZmYwMDAwMDAwMAogICAgIDc5ZGMyYjM4YTU1NzZkYTQuODQ1NGM5ZDMyYjIzYTU3OC5kNGEzZGY2MjQwZWZlNDkzLmZhNjY5ZWJiN2ExYTRiMTQKICAgICA4MGIzN2U2MzkyZGVlNzNjCiAKLVZNT1ZITFBTXzEyOChyZWcpCitWQ1ZUU1MyU0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMWE4OWEzYzJlZWNlNjU1YS4zYWNjZTIyMzI1MmExMGUwLjQ4MWNjYzA5NTE0YzJhMjUuODIyN2FjODkxNTg1NGY2YwogICAgIDI0MzMwOTQ0MmE3NTAxMTkuNDMyZWNjNDZjZTgzYjM4My4wZjUyZDJlYmNhMjY2ZjVlLmNiNzYyZDMzNDc1OTFhNTYKQEAgLTkyNDAsMTIgKzkyNDAsMTIgQEAKICAgICBmNzM2ODg2MWI0MTk4MTJjLmEwNzgyN2U1MGVmMGU0YWMuMTEzY2Q3NjkyMjFlMjkyMy45ZmE5M2RiYzJjZWRjNDBiCiAgICAgZTEyNWMzNzQxOGM1MTkyZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZjUyZDJlYmNhMjY2ZjVlLjMzNDRkN2U3MzEzZGIwY2YKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGY1MmQyZWJjYTI2NmY1ZS4zZDlkYjg4MTYwMDAwMDAwCiAgICAgMjQzMzA5NDQyYTc1MDExOS40MzJlY2M0NmNlODNiMzgzLjBmNTJkMmViY2EyNjZmNWUuY2I3NjJkMzM0NzU5MWE1NgogICAgIGY5ZmVhYzU1ZTM2MGY2MjUuNzFjZTY1OGRiZDZiMTBiOC4zMzQ0ZDdlNzMxM2RiMGNmLjhiNWVkZjRhZjA3ODAyN2MKICAgICBmNzM2ODg2MWI0MTk4MTJjLmEwNzgyN2U1MGVmMGU0YWMuMTEzY2Q3NjkyMjFlMjkyMy45ZmE5M2RiYzJjZWRjNDBiCiAgICAgZTEyNWMzNzQxOGM1MTkyZgotVk1PVkhMUFNfMTI4KG1lbSkKK1ZDVlRTUzJTRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAyZTljZWQ1ZWNmMGJjMDEzLjc5Mjc5YWQ0M2EyZmRlZDguYWNmODkwMzhkYzFkZWI4YS4wNjg3Y2ZkYjNhNTQxNTA2CiAgICAgNjJkYTM4NjY2ZGNiNzNlNC5kYjFkZGQxYTEwMmI0OGQ1LjcxMTkxYjczNDNmZmUwN2YuNmM3MWI5YWExNTZiYjEyNgpAQCAtOTI1NSwxMSArOTI1NSwxMSBAQAogICBhZnRlcgogICAgIDJlOWNlZDVlY2YwYmMwMTMuNzkyNzlhZDQzYTJmZGVkOC5hY2Y4OTAzOGRjMWRlYjhhLjA2ODdjZmRiM2E1NDE1MDYKICAgICA2MmRhMzg2NjZkY2I3M2U0LmRiMWRkZDFhMTAyYjQ4ZDUuNzExOTFiNzM0M2ZmZTA3Zi42YzcxYjlhYTE1NmJiMTI2Ci0gICAgNTlhZDFmNzgxMDEyZWZjZC43ODY0NGRhMGQyOWJmY2QwLmNiYTk0NDgzNjBhMTgwYjcuYTA0NjkzNDI0ZWYwMzkyYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MTE5MWI3MzQzZmZlMDdmLjNmNGE4MmEwYzAwMDAwMDAKICAgICBlZmUwMWQ4MGQxZWJmMGZiLmFlNDdlNmQwMWUwYTM2NzUuOTY3Mjg3NTI0ZjBmODc1ZC5mZTUxNTgxMDgxNmVlOWM3CiAgICAgZTJkZjA1N2U0YjcxZmNhMQogCi1WTU9WSExQU18xMjgocmVnKQorVkNWVFNTMlNEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGE5M2Q5NGZhNDc4NmFmNjYuMDAzZWIxNmFjZTYyMzE5YS5kODEzYTQxODhkMDUzMTZmLmFlNDE2MWNlMmI1NmIwOWUKICAgICBhZGI1MDNlZjEyMzgzZGM0LjY4OTQ1NDIzMjM4MzZmZDUuNTExNTg0ZTNiZDE3MmI2Yi5lZmUxNGRlMjEwODFiOWE1CkBAIC05MjY3LDEyICs5MjY3LDEyIEBACiAgICAgZGYyNTZmZjQ4M2E0ZGVmNS5hZDU4YmJhZTQyZjZkMWQxLmE0ZTY5N2IxY2ZiMDA2MTguNWNjOTRiODI2N2IzNTViOAogICAgIDQwYTc1NWU2MTFkMzYyMWIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTExNTg0ZTNiZDE3MmI2Yi43Nzk3ODE5YzRhY2M1ZTE1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUxMTU4NGUzYmQxNzJiNmIuNDRmNjZhYjcwMDAwMDAwMAogICAgIGFkYjUwM2VmMTIzODNkYzQuNjg5NDU0MjMyMzgzNmZkNS41MTE1ODRlM2JkMTcyYjZiLmVmZTE0ZGUyMTA4MWI5YTUKICAgICA0Yjk0NGRjOTQ3MTRlNDY0LjAzYWU4NDk1ZWI1YjY2ZDkuNzc5NzgxOWM0YWNjNWUxNS4zNTIwYzc3YTFiOWM1YzlmCiAgICAgZGYyNTZmZjQ4M2E0ZGVmNS5hZDU4YmJhZTQyZjZkMWQxLmE0ZTY5N2IxY2ZiMDA2MTguNWNjOTRiODI2N2IzNTViOAogICAgIDQwYTc1NWU2MTFkMzYyMWIKLVZNT1ZITFBTXzEyOChtZW0pCitWQ1ZUU1MyU0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYmQ4NzYyOTIzNDA4M2RmNS5jNWI2NjNkYzYxNzY2NzIxLjQyNWU3ODU4NDU1ZTZlZWEuMzY0ZGMzOGRlODUwNjEyMQogICAgIGFmMzVlZDcyZWM1Y2EyNzEuNTk5MjI3ZWQ3ZTE2YmQ5NC45ZThjMzQ4MTEwYTFmNjUwLjg3MWFmZjljMzIzOGE5ZGIKQEAgLTkyODIsMTEgKzkyODIsMTEgQEAKICAgYWZ0ZXIKICAgICBiZDg3NjI5MjM0MDgzZGY1LmM1YjY2M2RjNjE3NjY3MjEuNDI1ZTc4NTg0NTVlNmVlYS4zNjRkYzM4ZGU4NTA2MTIxCiAgICAgYWYzNWVkNzJlYzVjYTI3MS41OTkyMjdlZDdlMTZiZDk0LjllOGMzNDgxMTBhMWY2NTAuODcxYWZmOWMzMjM4YTlkYgotICAgIGYyN2Q3MjczNTdkZDRmYmMuZjcwNGI2OTM3NTBmMWFmYy45Y2FkNmMxNGJlY2IyODJlLmY1OTc0OTRhNDlmMjFiZjMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWU4YzM0ODExMGExZjY1MC5jNTBhMGMyNDIwMDAwMDAwCiAgICAgNjEyYjZkN2Y4ZTk3ZmUwMS5mYTU5MGMzYWUzZWRiYjAyLjFhOGY5ZGZkNmJlNmJmYjEuZGExMTljMDRjNzBjZjIxNAogICAgIDkzZDRmNDM0NGIxMjZjZWIKIAotVk1PVkhMUFNfMTI4KHJlZykKK1ZDVlRTUzJTRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA3ZDJjNGU0NzZmOGVjMzI0LmRhMGE1Yjg0YWY5NDZjNmUuYzBkZDI1NGY2MzNjZGM1NS5mM2ZjNDIyODM0MDA3NjA0CiAgICAgZjI2NWE0YWFjZjBlMzQ2YS4zOGU4YjY2Y2Q2ZTM1NTJjLmE0ZGNmZTNjOTE4OWI4OWYuMDNjMWQ3ODEzNDI1MDk1NApAQCAtOTI5NCwxMiArOTI5NCwxMiBAQAogICAgIGYwYTkzOTBjYjU0ODUyZDAuMTJjY2E5OWFhM2EwODY1MS4zNjdhZGM1MjZhNGI5NGM5LjM3ODJjMjZkNGJiY2I3OTkKICAgICAxMzE3MTBkOTlhNDg0OWU3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE0ZGNmZTNjOTE4OWI4OWYuMDJhMjkxNmYwYTVmOGM4YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNGRjZmUzYzkxODliODlmLjQxNzc5NmYzMjAwMDAwMDAKICAgICBmMjY1YTRhYWNmMGUzNDZhLjM4ZThiNjZjZDZlMzU1MmMuYTRkY2ZlM2M5MTg5Yjg5Zi4wM2MxZDc4MTM0MjUwOTU0CiAgICAgNGZjYmY0YzgwODFlZmE2YS41NjhmZmMyNTFlOGQ3NDZhLjAyYTI5MTZmMGE1ZjhjOGMuMjVhYWQ4ZjQ4ODVmMzZjYwogICAgIGYwYTkzOTBjYjU0ODUyZDAuMTJjY2E5OWFhM2EwODY1MS4zNjdhZGM1MjZhNGI5NGM5LjM3ODJjMjZkNGJiY2I3OTkKICAgICAxMzE3MTBkOTlhNDg0OWU3Ci1WTU9WSExQU18xMjgobWVtKQorVkNWVFNTMlNEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDk3MzMzZTIyOTAwZWE4ZTEuMzI0YzcwZTQ3MjFhNzg0Ny40NzZiMzdiNzgyMjc0NzEwLjliYjFkYjUzNGNkODBjMDIKICAgICA5ZWEzYzgzNjRhMWE4ZmI0LjZmMDE5M2JiZGQyMGE4N2IuZDAzODI0NjhkNzJlNzNkMS44Zjk0ODhkZDRjOTIyZmUyCkBAIC05MzA5LDExICs5MzA5LDExIEBACiAgIGFmdGVyCiAgICAgOTczMzNlMjI5MDBlYThlMS4zMjRjNzBlNDcyMWE3ODQ3LjQ3NmIzN2I3ODIyNzQ3MTAuOWJiMWRiNTM0Y2Q4MGMwMgogICAgIDllYTNjODM2NGExYThmYjQuNmYwMTkzYmJkZDIwYTg3Yi5kMDM4MjQ2OGQ3MmU3M2QxLjhmOTQ4OGRkNGM5MjJmZTIKLSAgICAwMzMzMmFmZmUzNzhiYzhjLjA0MTJhMGZkOGZlNDFkMTkuOGJmZmVhOTliZGMyYzVjMS42ZDZkZTE1YzA3MDUzYTE2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwMzgyNDY4ZDcyZTczZDEuNDE5YjAxODA0MDAwMDAwMAogICAgIGE0YWZlMTZiNzczNWU4OTQuNGRjYjkyMTYyNmY0MTRjZC41MjhiMDczNjUwZWVmYTBiLjkwODllMTNjMThiZTY5NGEKICAgICA1NjMzODRlOTFjNDhmNzI5CiAKLVZNT1ZRX1hNTV90b19JUkVHNjQocmVnKQorVkNWVFNEMlNTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDFhYjljNmNmYWYzMDIxNjAuNWJlMzY4NjUyMzVjZDJmOS5hNjdhNjU3MjNlZGNjOTQzLjAzYWFmNzJiYWRiZWNlZGMKICAgICAzNzY1YTQ1YjZiMDEyMzlhLjA1OWIzYmQ5MDNmOTM0ZTYuNmI2YTE2N2U3MjI3NzcyNi43ODI2MzQ2NWVmM2ZmYzVmCkBAIC05MzIxLDEyICs5MzIxLDEyIEBACiAgICAgZjA2MzIwMTFkNDhmOWVjOS5hM2M1YjZkZmNjYzc1MzBhLmE5M2JmZTUyOWYxNmIxZTQuMjI2ODhhNTQ5NDgyNTkyZQogICAgIDBlYzU5YWUyMmY1YzAwZDEKICAgYWZ0ZXIKLSAgICAxYWI5YzZjZmFmMzAyMTYwLjViZTM2ODY1MjM1Y2QyZjkuYTY3YTY1NzIzZWRjYzk0My4wM2FhZjcyYmFkYmVjZWRjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZiNmExNjdlNzIyNzc3MjYuNzgyNjM0NjUwMDAwMDAwMAogICAgIDM3NjVhNDViNmIwMTIzOWEuMDU5YjNiZDkwM2Y5MzRlNi42YjZhMTY3ZTcyMjc3NzI2Ljc4MjYzNDY1ZWYzZmZjNWYKICAgICAwYjg1MThmN2VmNDczOTg0LjdmYTJkNmIzMzIxOWNiODguZjhlNjlmYTQ1ZTYxNWMyMi44ZmNjM2NjZTMzN2M0MWMxCiAgICAgZjA2MzIwMTFkNDhmOWVjOS5hM2M1YjZkZmNjYzc1MzBhLmE5M2JmZTUyOWYxNmIxZTQuMjI2ODhhNTQ5NDgyNTkyZQotICAgIDAzYWFmNzJiYWRiZWNlZGMKLVZNT1ZRX1hNTV90b19JUkVHNjQobWVtKQorICAgIDBlYzU5YWUyMmY1YzAwZDEKK1ZDVlRTRDJTU18xMjgobWVtKQogICBiZWZvcmUKICAgICAzMGIxZTg2MzFmMTZmMWQ3LjQzNGNiNzEzYjg2NDhmMTYuNGZkMTU2NDllZTEwODc5OS5kYWI1MmVmMmQxZDNiNTE4CiAgICAgNjJmNmYxYzU4MGJjZTk2Yy42MThjZGE2YjM3NTI0ODE3LjVkOTAzMmRlYjRmZjI1NjEuZTdhMDJjZjI4ZjIzYTI2YQpAQCAtOTMzNiwxMSArOTMzNiwxMSBAQAogICBhZnRlcgogICAgIDMwYjFlODYzMWYxNmYxZDcuNDM0Y2I3MTNiODY0OGYxNi40ZmQxNTY0OWVlMTA4Nzk5LmRhYjUyZWYyZDFkM2I1MTgKICAgICA2MmY2ZjFjNTgwYmNlOTZjLjYxOGNkYTZiMzc1MjQ4MTcuNWQ5MDMyZGViNGZmMjU2MS5lN2EwMmNmMjhmMjNhMjZhCi0gICAgODE2MTMwZjM3MDViYTRiYi5hNDZlODQ4NGVjZTYwNDc3LmFhY2VjNjg4MzlhMGU3OGQuMmM0OGYyYmQ3NTkyYjY4NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZDkwMzJkZWI0ZmYyNTYxLmU3YTAyY2YyZmY4MDAwMDAKICAgICA2OWJmMjFkOTA4ZmVkZGYwLjZhNDBiMGNhNzRhYjAwZTMuMTI1OThlMzQ5OWZmODk0YS4wNWY4N2ViZTIwYWQyYTE1CiAgICAgY2VmZWNiNjMyYmZmM2RjNwogCi1WTU9WUV9YTU1fdG9fSVJFRzY0KHJlZykKK1ZDVlRTRDJTU18xMjgocmVnKQogICBiZWZvcmUKICAgICBlM2E0ZDUxNzMzMTUyOTQ3LmY3ZDk0MDYzNjZiMjUyMzkuMGQ0YzVjYTk2YTJkNzgwNy43MmZiMDdjZmYxMjljOGMzCiAgICAgOWYzNzk4NDdkMzdhMmI0MC4wNTdlMGE3ZWE2ODJiZGJmLmVhZGY4NDhkNmFmOWE4OGUuYTQ4MmFjNDQ1YzJhNjAyNQpAQCAtOTM0OCwxMiArOTM0OCwxMiBAQAogICAgIDgxNTQzYmM2NGQ2MjYwNTAuMTQ5NThiMTIzOWE3NjczOS5jM2NhMzQxNGZiOWMxZTc3LmYxNmE2YTZiZGRkZDhiNTMKICAgICBjNDY0N2NmNjJiYTg5NTc3CiAgIGFmdGVyCi0gICAgZTNhNGQ1MTczMzE1Mjk0Ny5mN2Q5NDA2MzY2YjI1MjM5LjBkNGM1Y2E5NmEyZDc4MDcuNzJmYjA3Y2ZmMTI5YzhjMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYWRmODQ4ZDZhZjlhODhlLmE0ODJhYzQ0ZmY4MDAwMDAKICAgICA5ZjM3OTg0N2QzN2EyYjQwLjA1N2UwYTdlYTY4MmJkYmYuZWFkZjg0OGQ2YWY5YTg4ZS5hNDgyYWM0NDVjMmE2MDI1CiAgICAgNjAwMzExNWRhOGJhN2Y1Zi43MDc5ZjkxNGUzN2FkYWIxLjVlNDUyMmUyMTE5YWNiMjQuODViOGY5N2ZmNzBjMGQ5YwogICAgIDgxNTQzYmM2NGQ2MjYwNTAuMTQ5NThiMTIzOWE3NjczOS5jM2NhMzQxNGZiOWMxZTc3LmYxNmE2YTZiZGRkZDhiNTMKLSAgICA3MmZiMDdjZmYxMjljOGMzCi1WTU9WUV9YTU1fdG9fSVJFRzY0KG1lbSkKKyAgICBjNDY0N2NmNjJiYTg5NTc3CitWQ1ZUU0QyU1NfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZGE3MmE5MGJmYzdhZTgzMy41ZTc1MTJlZjVmZmMwYmJlLmNkYTAzYjY1YzUxMzFlODMuNzZiYWI1OTBjMzhjZGQzMAogICAgIDBmNWY2Zjk3NmM1ZTQwYjQuNTJiNDkyNDI3OTE3YmM1Ni43NzY0ODZmN2EyY2RiYmJkLmQzNjBhMWMwMDVmNTQzZmUKQEAgLTkzNjMsMTEgKzkzNjMsMTEgQEAKICAgYWZ0ZXIKICAgICBkYTcyYTkwYmZjN2FlODMzLjVlNzUxMmVmNWZmYzBiYmUuY2RhMDNiNjVjNTEzMWU4My43NmJhYjU5MGMzOGNkZDMwCiAgICAgMGY1ZjZmOTc2YzVlNDBiNC41MmI0OTI0Mjc5MTdiYzU2Ljc3NjQ4NmY3YTJjZGJiYmQuZDM2MGExYzAwNWY1NDNmZQotICAgIDNmZjk0YTg0OTg2MDU4MjYuYmI1YmI4MmQzODNjYWZjMy5lZWFlZTZiNmVkZGVmYzEwLjM2MGFmNDEyNWU2MzhkOGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzc2NDg2ZjdhMmNkYmJiZC5kMzYwYTFjMDdmODAwMDAwCiAgICAgNDYwYWI0YmY5YzhkZWRiNC5mM2I3N2UxYTM3ZjkxZmIyLjBlNGFkOThkYzI1NDliYWIuZmIwMmFiZjA2OTYzZjc4MwogICAgIDdlOTVjMWM4YzM4MGJkOTQKIAotVk1PVlFfWE1NX3RvX0lSRUc2NChyZWcpCitWQ1ZUU0QyU1NfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMWIwZjMyMDUwNzQ2MWE2Ny4wMDVmMmIzNTkzZjBiYjhiLjU4MTRlMjc3MTJkOTQ5Y2UuYjMwM2RhNjgzYjNiNTViOAogICAgIDJlYmNmYTEzZDI0MjRiYWIuNDljNDI5ZDA5YTk1N2RkNi40NGJlZGZhZjY2Njk2OWM0LmI5YTc2NTMzNzc5ZGU2NjMKQEAgLTkzNzUsMTIgKzkzNzUsMTIgQEAKICAgICAyNmRlODA1MjZiMGExOTMwLmY4ZWRiMDJhNDVkNmQwN2IuMjUyOTk1NjBlOGM2NzllZC41OGRiMGE0OWExMDc3YjQ2CiAgICAgYTgwNDFjNmNjOTI3ZjhkNgogICBhZnRlcgotICAgIDFiMGYzMjA1MDc0NjFhNjcuMDA1ZjJiMzU5M2YwYmI4Yi41ODE0ZTI3NzEyZDk0OWNlLmIzMDNkYTY4M2IzYjU1YjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDRiZWRmYWY2NjY5NjljNC5iOWE3NjUzMzdmODAwMDAwCiAgICAgMmViY2ZhMTNkMjQyNGJhYi40OWM0MjlkMDlhOTU3ZGQ2LjQ0YmVkZmFmNjY2OTY5YzQuYjlhNzY1MzM3NzlkZTY2MwogICAgIDEzZTcxNjVlYmZmZjhjMGEuZmQwNTJjN2VjYjg4ZjBjMi4xNTAxNzIyZWNmMzRiYTQwLmZjMDBmN2RhOGY4ODA5ZDkKICAgICAyNmRlODA1MjZiMGExOTMwLmY4ZWRiMDJhNDVkNmQwN2IuMjUyOTk1NjBlOGM2NzllZC41OGRiMGE0OWExMDc3YjQ2Ci0gICAgYjMwM2RhNjgzYjNiNTViOAotVk1PVlFfWE1NX3RvX0lSRUc2NChtZW0pCisgICAgYTgwNDFjNmNjOTI3ZjhkNgorVkNWVFNEMlNTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGNhNDdhODMwMjJmMzNiYjQuYzNlYjM2NWI3MWVlMmRjYi4xNTRhMmZiZjIyOGJkOTJjLmQyODE0NmIxNGRhY2UyNzgKICAgICA5OTcwMmI3ZmM5NzcwMjBjLjQ2NWIzM2U2NmUzNzA1ODQuMzJlNjI3MmI3ZWIxYzcwMi43NjU2ODA4ZTliNzEzMThkCkBAIC05MzkwLDExICs5MzkwLDExIEBACiAgIGFmdGVyCiAgICAgY2E0N2E4MzAyMmYzM2JiNC5jM2ViMzY1YjcxZWUyZGNiLjE1NGEyZmJmMjI4YmQ5MmMuZDI4MTQ2YjE0ZGFjZTI3OAogICAgIDk5NzAyYjdmYzk3NzAyMGMuNDY1YjMzZTY2ZTM3MDU4NC4zMmU2MjcyYjdlYjFjNzAyLjc2NTY4MDhlOWI3MTMxOGQKLSAgICBmMTRiMWY0N2Q5YzAwNzBiLjBiN2E3NDVkZmQ3MWRkMGEuMmE4ZTEzNTk3NjU3NTUyOC42ZmY0M2Y2MTZkYTFhMWQ3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMyZTYyNzJiN2ViMWM3MDIuNzY1NjgwOGVmZjgwMDAwMAogICAgIGFkYTMwMjcyNmVkOTA2ZGQuNmU5NGYzMmRiYTI5ZjAwNy5kOTBlNmYzNTI1ODYzZmNiLjE3YTc4MDk3NjBjOTZmMDIKICAgICBjYmJiM2Q5ZDBmNzRkN2JjCiAKLVZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKHJlZykKK1ZNT1ZEX1hNTV90b19JUkVHMzIocmVnKQogICBiZWZvcmUKICAgICBlODdiNzRkZTE3MmUxNGFmLmFiNDU0ZmVlYTZjZmJkYWQuY2JmNWFlYzM0MmVhN2IyNy4xYTMyYjdhY2E4NGM0MzE3CiAgICAgYzgzNTIwYzUxMzg0NjM4Ny5jNmZkODJhNjlhYWNlNmE4LjdkZThhMDhhMzE0MWJhMTcuY2JjNjY4YTgxYWI0MWIzNwpAQCAtOTQwMywxMSArOTQwMywxMSBAQAogICAgIDBmMThjM2Y5MjYzMmY4NGIKICAgYWZ0ZXIKICAgICBlODdiNzRkZTE3MmUxNGFmLmFiNDU0ZmVlYTZjZmJkYWQuY2JmNWFlYzM0MmVhN2IyNy4xYTMyYjdhY2E4NGM0MzE3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWEzMmI3YWNhODRjNDMxNworICAgIGM4MzUyMGM1MTM4NDYzODcuYzZmZDgyYTY5YWFjZTZhOC43ZGU4YTA4YTMxNDFiYTE3LmNiYzY2OGE4MWFiNDFiMzcKICAgICBjODMzM2VjMGEwMDEwMGYxLmQ5OTcxNzg2Njg3ZTNlZmEuZTJiYmM1ZWUyMmI5ZTg4My5jNzk1ZmQxNjk4Y2E4NDU3CiAgICAgNDRjMmM4M2E1OTMxMjc5OS5jMmRmOGI3YTJiNTE4MGNlLjU1YjgxYTVhYjFkZTQzMTYuZTk2ZGYyZTMzZDliM2FhNQotICAgIDBmMThjM2Y5MjYzMmY4NGIKLVZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKG1lbSkKKyAgICAwMDAwMDAwMGE4NGM0MzE3CitWTU9WRF9YTU1fdG9fSVJFRzMyKG1lbSkKICAgYmVmb3JlCiAgICAgMTM2M2VjNDY2ZTliN2M3NS45ODJlYmM5ZmRiYTExMzJhLjViYTE1OTZlMDAzMDZhNTAuMzIyYzk5M2M3YjNjMDU3ZAogICAgIGQzMWFlYWI1MzJlMzdmNTAuMjBjMzE1NWJjMWRjMDE1MS44MmE4ZmQ0ZTAzMjdiNmFlLmQ0NjM0MGZmMWI2MDZhNjQKQEAgLTk0MTYsMTIgKzk0MTYsMTIgQEAKICAgICBmODkxZjhjNzFiZTRjYWNkCiAgIGFmdGVyCiAgICAgMTM2M2VjNDY2ZTliN2M3NS45ODJlYmM5ZmRiYTExMzJhLjViYTE1OTZlMDAzMDZhNTAuMzIyYzk5M2M3YjNjMDU3ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMyMmM5OTNjN2IzYzA1N2QKKyAgICBkMzFhZWFiNTMyZTM3ZjUwLjIwYzMxNTViYzFkYzAxNTEuODJhOGZkNGUwMzI3YjZhZS5kNDYzNDBmZjFiNjA2YTY0CiAgICAgMjkwOTM4MzE4ZDE1YzAwOC4zOWNkY2ZkYWE3NmUyZGI5LjExYzJmMzA3NGU0MjIwMTIuOTlhOTBhMTAyZWQ1YjA3NgogICAgIGYzZmI1MmE4OWIzZWY5YzguM2Q5N2U3ODkyYWU0ZDMwZi5lNmI5Yjg4MzAwOGU2NmE4LmRiNDlmNGQ5NTAyODExNjAKICAgICBmODkxZjhjNzFiZTRjYWNkCiAKLVZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKHJlZykKK1ZNT1ZEX1hNTV90b19JUkVHMzIocmVnKQogICBiZWZvcmUKICAgICA0YWNiMTQ0NzJlOTUxNjZhLjBiYmViNDA1Nzk2OGU3YmQuODk2ZjU3ZDJlNmM5MmVmZi5kYjVhYzZhZjMyMTY0MjlkCiAgICAgMmY0NDQzYzMyMmM4MzNlMi40ZTFjZGIzNTQzYTI0NjEyLjc5OWYxZDIyNzZhYTdiMzQuY2Q3MTliNzgwM2U2NzExZApAQCAtOTQzMCwxMSArOTQzMCwxMSBAQAogICAgIDJhNzA5N2IyM2M4MjQ2OTMKICAgYWZ0ZXIKICAgICA0YWNiMTQ0NzJlOTUxNjZhLjBiYmViNDA1Nzk2OGU3YmQuODk2ZjU3ZDJlNmM5MmVmZi5kYjVhYzZhZjMyMTY0MjlkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGI1YWM2YWYzMjE2NDI5ZAorICAgIDJmNDQ0M2MzMjJjODMzZTIuNGUxY2RiMzU0M2EyNDYxMi43OTlmMWQyMjc2YWE3YjM0LmNkNzE5Yjc4MDNlNjcxMWQKICAgICAwMTQ4ODFhOTk1MDg1YmUyLjk5ZTI0MjIyMTNmNWQxZjQuNjk3NDM0ZTY3NjExZjU1Yi45OWM5YjJjOThjMGJhZTUzCiAgICAgMWUyM2NiNjMyM2UxY2ExNi5jNmRjNjViOTA4NmY0NjhmLmI1M2E5OTg5ODM4Y2RhMWYuMTkzMDg4OGRlYzkwYjc2YwotICAgIDJhNzA5N2IyM2M4MjQ2OTMKLVZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKG1lbSkKKyAgICAwMDAwMDAwMDMyMTY0MjlkCitWTU9WRF9YTU1fdG9fSVJFRzMyKG1lbSkKICAgYmVmb3JlCiAgICAgYTk1NjVkMjM5YWVjMTdmNS5lMDIwMWI1ZjY3ZTBiZTI5LmIyZDZjMGU3M2MxYjVmMGUuYjgzZDQ2NzYzOWE3NjQyZAogICAgIDcwYWY1NWNjMjJkYWU4YmUuYTQ4ZDZmMDhmZTkwNzFjOC4zOTljY2Y5NmNiMDZkODllLmQwYzgzOTFiMzJlZGQwMzEKQEAgLTk0NDMsMTIgKzk0NDMsMTIgQEAKICAgICAyODk4ODg4Y2QzM2FiNWI1CiAgIGFmdGVyCiAgICAgYTk1NjVkMjM5YWVjMTdmNS5lMDIwMWI1ZjY3ZTBiZTI5LmIyZDZjMGU3M2MxYjVmMGUuYjgzZDQ2NzYzOWE3NjQyZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI4M2Q0Njc2MzlhNzY0MmQKKyAgICA3MGFmNTVjYzIyZGFlOGJlLmE0OGQ2ZjA4ZmU5MDcxYzguMzk5Y2NmOTZjYjA2ZDg5ZS5kMGM4MzkxYjMyZWRkMDMxCiAgICAgNWM0NGZiOTllZjU5NzMxOS5jN2I0YzJjYTgzN2QyMDlmLjM4ZjkwZmI0ZDIzYTZlNmIuNTgyODZkZTMwZGVhNTlkNgogICAgIDQ5ZTRjYzc3MWQ3Mzc1MzMuYTNlMjEwMTE5MjM0MDY1OS44OWJhZmIyYjZjYzZkZGEwLmFjYWFkZTNhNjMyYTNjYzgKICAgICAyODk4ODg4Y2QzM2FiNWI1CiAKLVZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKHJlZykKK1ZNT1ZEX1hNTV90b19JUkVHMzIocmVnKQogICBiZWZvcmUKICAgICAyNzNmNjg0NmY2YTUwMDQ3LjEzNWE0MzUwYzkzN2FhMzguOTU2MzU2NDljODQwNjFhMi4wOWFjMGZlOWI2YjNlMTY5CiAgICAgMDdlYjc5ZDI2YmY4NTgyYS45NjcxZGMxMTBmYWVjZDUzLmZhODM4ZmRmYzEyZDZiMjguOTQ5OWM3ZDljYjBmMzZmMwpAQCAtOTQ1NywxMSArOTQ1NywxMSBAQAogICAgIDBmM2ZhMTBkZTgzMTcwY2UKICAgYWZ0ZXIKICAgICAyNzNmNjg0NmY2YTUwMDQ3LjEzNWE0MzUwYzkzN2FhMzguOTU2MzU2NDljODQwNjFhMi4wOWFjMGZlOWI2YjNlMTY5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDlhYzBmZTliNmIzZTE2OQorICAgIDA3ZWI3OWQyNmJmODU4MmEuOTY3MWRjMTEwZmFlY2Q1My5mYTgzOGZkZmMxMmQ2YjI4Ljk0OTljN2Q5Y2IwZjM2ZjMKICAgICAyM2U3Yjc5ZGNiYmVmYjBiLmFmZjcxM2E3MGFlNjliYjAuMmM4ZWI2M2QxODg4NjE5NC4wNjRkYTBlN2M4ZTU5NzZhCiAgICAgZDY4MTFlMTRiNDgzMjI5Ni4zOGI2NjRmZGQ2ZWFkMDdjLjg4ZDBjYWQxNjlkYzdlOTUuM2I5NjE0ZmZjODQyYzFmYQotICAgIDBmM2ZhMTBkZTgzMTcwY2UKLVZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKG1lbSkKKyAgICAwMDAwMDAwMGI2YjNlMTY5CitWTU9WRF9YTU1fdG9fSVJFRzMyKG1lbSkKICAgYmVmb3JlCiAgICAgNWUxM2MyZmQ0M2JlNWYxMi43ZTAzYWJhMmMyZDQwYzc2LjBlN2I0Y2ZlOTBjNzI3ZTMuNmE5NGM0MDU1MWI1ZmZkNQogICAgIDA0ZGZmNGJjZjVmNjRiZjMuNzZiYTU4YjI5MDNiZjM1OC4wZDEyNDU5ODUzODg1ZTEwLjJlMjdhMjQ3NmJhMDIwMDAKQEAgLTk0NzAsMTIgKzk0NzAsMTIgQEAKICAgICA1ZWIyNjY5MjAxNDA5OWMxCiAgIGFmdGVyCiAgICAgNWUxM2MyZmQ0M2JlNWYxMi43ZTAzYWJhMmMyZDQwYzc2LjBlN2I0Y2ZlOTBjNzI3ZTMuNmE5NGM0MDU1MWI1ZmZkNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZhOTRjNDA1NTFiNWZmZDUKKyAgICAwNGRmZjRiY2Y1ZjY0YmYzLjc2YmE1OGIyOTAzYmYzNTguMGQxMjQ1OTg1Mzg4NWUxMC4yZTI3YTI0NzZiYTAyMDAwCiAgICAgZGQ2ZmIxMzQxYmU0ZjA5ZC4xOWYyMjNiMmJiNDcxNGU4LjEwNDZjZGI2M2MzOTJlMzAuMzBkNTVlMDE1NDI4MWRjNAogICAgIGM1OGY3NzUzZDE5NDA5M2MuYzVmNzA3MGRkZTgxYWJkMS5mNWU1NjA0NDY2ZTc1NjZmLmNjZWFmNmExYTdkOTMxY2EKICAgICA1ZWIyNjY5MjAxNDA5OWMxCiAKLVZDVlRUU1MyU0lfMzIocmVnKQorVlBDTVBFU1RSTV8weDQ1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDQyNzlhODQwZmRlODkxNTMuOTgwYmMxMDMzMjEzNTNmYi5kNDE1MDEyZjk1NzdmM2MwLjk3Yjk3ODJlZWU5ZDkxZjgKICAgICBkNDhhYmExNzM4NWU1NDJjLjMyYWYwYzMyNWE2YzhhMDYuYTQ5NzBiODQ3ZGI0Mjk2MC5kMjhmOTM2MGVmNjc5YWY4CkBAIC05NDg2LDkgKzk0ODYsOSBAQAogICAgIDQyNzlhODQwZmRlODkxNTMuOTgwYmMxMDMzMjEzNTNmYi5kNDE1MDEyZjk1NzdmM2MwLjk3Yjk3ODJlZWU5ZDkxZjgKICAgICBkNDhhYmExNzM4NWU1NDJjLjMyYWYwYzMyNWE2YzhhMDYuYTQ5NzBiODQ3ZGI0Mjk2MC5kMjhmOTM2MGVmNjc5YWY4CiAgICAgNzAzMjk3ODQ0ZDJjMjBmOS42ZTQ2ZDJjYjY2YWI2YThhLjhmY2IyMzc4MzFjNTg5NWUuODIzMzJiYzY4NjUyMmQ5YQotICAgIDcyYmUzYmYxZDllMTJmNjYuMmE5ZTkxYmE3MWRkYWZiMy5mM2ZiNDQ3NzRlMzU0ZjY1LjgzNzFiZjRkY2U2OTA4MGIKLSAgICAwMDAwMDAwMDgwMDAwMDAwCi1WQ1ZUVFNTMlNJXzMyKG1lbSkKKyAgICA3MmJlM2JmMWQ5ZTEyZjY2LjJhOWU5MWJhNzFkZGFmYjMuZmZmZjAwMDBmZmZmMDAwMC5mZmZmZmZmZmZmZmZmZmZmCisgICAgYjAxNWM4ZGZlNGI4ZTU3NworVlBDTVBFU1RSTV8weDQ1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGU3ZWJjMzZhZTM0YzgxMDkuMzY3OGEyY2I3NzA2YmQxZi40MTgxYzRlYjk4MGQxNGFjLjJhNzQ2YWVlNzA5MGI2MjIKICAgICAwM2JlMmRkOWU3MzA5OGVlLjE4YWNjOTdmYzMyOTA4Y2YuOGZiY2U3NGFmNjQ3NTVhMi45MTgyOTI0NzMxNjNmYjQxCkBAIC05NDk5LDEwICs5NDk5LDEwIEBACiAgICAgZTdlYmMzNmFlMzRjODEwOS4zNjc4YTJjYjc3MDZiZDFmLjQxODFjNGViOTgwZDE0YWMuMmE3NDZhZWU3MDkwYjYyMgogICAgIDAzYmUyZGQ5ZTczMDk4ZWUuMThhY2M5N2ZjMzI5MDhjZi44ZmJjZTc0YWY2NDc1NWEyLjkxODI5MjQ3MzE2M2ZiNDEKICAgICBlMDViODExNzBkNzBlNTUxLjczYThhYjc3NWFkNTRhMjIuZWYxYjc2YzNhODk4MzBjMS44NTcxYjdmMDMwMzk1YTZkCi0gICAgNTk4ZTNiMTI3MTE5MjU1Zi5hNWI3NDQyMWQ4OTdjMGM1LjNmNjllZTQyYzkwYjVmMzQuNjA4Y2Q0NTMwNjllMGU1MwotICAgIDAwMDAwMDAwODAwMDAwMDAKKyAgICA1OThlM2IxMjcxMTkyNTVmLmE1Yjc0NDIxZDg5N2MwYzUuMDAwMGZmZmZmZmZmMDAwMC4wMDAwZmZmZmZmZmZmZmZmCisgICAgN2YyMWU4ZGU1MjFmNTU5ZQogCi1WQ1ZUVFNTMlNJXzMyKHJlZykKK1ZQQ01QRVNUUk1fMHg0NV8xMjgocmVnKQogICBiZWZvcmUKICAgICAzZTdhZWNmY2FkNDc2OWZiLjRjMjNkOGI1MmUzNjE0NDMuMDkyNDkwZThkOGY5YTU2NC41YTc0YzliNDc2YWM5ZjI4CiAgICAgZjllNGRkMTliNWEyODYxNi45M2U2ZDJlYzYwZDM2ZTJhLmZiM2M4YjM4ZjY4YTM2YWEuMWIwNjg1MDNjYTg4YWNjOApAQCAtOTUxMyw5ICs5NTEzLDkgQEAKICAgICAzZTdhZWNmY2FkNDc2OWZiLjRjMjNkOGI1MmUzNjE0NDMuMDkyNDkwZThkOGY5YTU2NC41YTc0YzliNDc2YWM5ZjI4CiAgICAgZjllNGRkMTliNWEyODYxNi45M2U2ZDJlYzYwZDM2ZTJhLmZiM2M4YjM4ZjY4YTM2YWEuMWIwNjg1MDNjYTg4YWNjOAogICAgIDBkYWJiOGExMDZiZGU5OWEuMGNhM2E3YTMyNGZkZWU0MC5kNjRiMzI3ZGNmZDNhZjQ0LjYwZWM5ZTFkZTJhYTQxNDEKLSAgICBkNDFiNzgwMDNiMjNjZjM0LjkxMjVkMmM2OTViZjUxYjAuZjg5ZDgwMjNmZTYyNGNkZS4wM2YzOGVlY2Q5MWUxYmJlCi0gICAgMDAwMDAwMDBmZmJiYTk5YwotVkNWVFRTUzJTSV8zMihtZW0pCisgICAgZDQxYjc4MDAzYjIzY2YzNC45MTI1ZDJjNjk1YmY1MWIwLjAwMDBmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIGUyZTRkMzVlY2NmMWY2NmMKK1ZQQ01QRVNUUk1fMHg0NV8xMjgobWVtKQogICBiZWZvcmUKICAgICBkNzhlZTg1ZWQ2MmU4ZTc3LmFiODAxOWEyZjE2MTcxOTAuMDAzYWNmNDJkMDI2NTNhNy5iYzdlNzE5NjIwYzI0ODIzCiAgICAgYzBiYzQ5ZDgxM2UyOWUwYS5lZTI1OThmM2MzMDEwZTU5LjMzYWMxYjAxZjAzY2FmNTEuN2QzOTAxNDJkMDgwZTFjMApAQCAtOTUyNiwxMCArOTUyNiwxMCBAQAogICAgIGQ3OGVlODVlZDYyZThlNzcuYWI4MDE5YTJmMTYxNzE5MC4wMDNhY2Y0MmQwMjY1M2E3LmJjN2U3MTk2MjBjMjQ4MjMKICAgICBjMGJjNDlkODEzZTI5ZTBhLmVlMjU5OGYzYzMwMTBlNTkuMzNhYzFiMDFmMDNjYWY1MS43ZDM5MDE0MmQwODBlMWMwCiAgICAgNzczOTcyYjhhMDE4ZTM1Mi5mOTU3ZjA2MDRkOTFlMDNiLjA4NDgzMWYxMTIxMDIyZDkuOTkxYzJkOTNhYjI3NTA2MAotICAgIGQ5ZDJlMGVhOTlkYzE5N2IuMjg2MzFjNTMyYzlkMjRlMy41OWRhOGRmYzUxYWI2ODZjLjZhNzFmMGY2NGM0M2Q0YjAKLSAgICAwMDAwMDAwMDAwMDAwMDAwCisgICAgZDlkMmUwZWE5OWRjMTk3Yi4yODYzMWM1MzJjOWQyNGUzLjAwMDBmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIDRlODU0NmQ1NTA2MWE3NWIKIAotVkNWVFRTUzJTSV8zMihyZWcpCitWUENNUEVTVFJNXzB4NDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOWZhNDJiOWU1MjBjMDYwZS5jMzU0MGQ1YTE5M2FmYmIwLmQ3OTMxYTNhZmNiMDE2ZmQuMDMyZGFiMTBjYTFiM2QzNQogICAgIGJiMWE5YmJjZWZkMDJkNzUuMGY4OTc3ZjUzYzNmNDcxZC42MjM0ZTY4MDU4NTZmMTM0LmUzMGYwNzE4OTg2YjVjNjEKQEAgLTk1NDAsOSArOTU0MCw5IEBACiAgICAgOWZhNDJiOWU1MjBjMDYwZS5jMzU0MGQ1YTE5M2FmYmIwLmQ3OTMxYTNhZmNiMDE2ZmQuMDMyZGFiMTBjYTFiM2QzNQogICAgIGJiMWE5YmJjZWZkMDJkNzUuMGY4OTc3ZjUzYzNmNDcxZC42MjM0ZTY4MDU4NTZmMTM0LmUzMGYwNzE4OTg2YjVjNjEKICAgICBmYzMzOTM5YmMyM2E1NzNiLjlhM2Q5YWE1MWZmNmI2ZjAuMjU5MTdhOTBkYzFiZjIzNS5kMzRhMWVmZmQ4YTg4MjFiCi0gICAgYmYzYTBlYTY2OGQ1YzIwZC40MDNlZjA1OGRkNmMwNzUyLjdjZjhkNGQ4MjU4YzU1YWMuYjBhYjZiYjNhNWRjNmI5MAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZDVlRUU1MyU0lfMzIobWVtKQorICAgIGJmM2EwZWE2NjhkNWMyMGQuNDAzZWYwNThkZDZjMDc1Mi5mZmZmZmZmZjAwMDBmZmZmLjAwMDBmZmZmZmZmZmZmZmYKKyAgICA1NmZmNmExZjFiMTZkMmVjCitWUENNUEVTVFJNXzB4NDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTIwZjk3MzA1ODVmNzU1YS42MTdkMDg0YjdjMmRhODk3LmRlNTdmN2Y4OTNhY2Y0NzIuYzJiM2VmYzNjZTM0NTU0NAogICAgIDZlYWE2ZWQwNzVjNTBlMDcuM2M0NjdkZjY5YWNlNDU4NC40ZTUzMmE3MzVjYzIzYTdhLjU1MTBjN2JkNzRhMDMwYWEKQEAgLTk1NTMsMTAgKzk1NTMsMTAgQEAKICAgICBhMjBmOTczMDU4NWY3NTVhLjYxN2QwODRiN2MyZGE4OTcuZGU1N2Y3Zjg5M2FjZjQ3Mi5jMmIzZWZjM2NlMzQ1NTQ0CiAgICAgNmVhYTZlZDA3NWM1MGUwNy4zYzQ2N2RmNjlhY2U0NTg0LjRlNTMyYTczNWNjMjNhN2EuNTUxMGM3YmQ3NGEwMzBhYQogICAgIDk3OWI2Y2VjOTA1MzU5MWUuYWRlMjY5MTE1ZjQ2ZDY4MC42ZGZmMDViNDU1YmE5NTk2LjkwNTk1OTMyYjI1YjIwODkKLSAgICBmOWFkMGM3MWM0MTYxM2NjLjEwOWRjOTA5NjcxZTk3MzguMTcyNzA0YTc5OWExYzFmNC5jZmRiOWY4ZTI1ZjE2MThlCi0gICAgMDAwMDAwMDBkMmVhYWYwMAorICAgIGY5YWQwYzcxYzQxNjEzY2MuMTA5ZGM5MDk2NzFlOTczOC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMGZmZmYKKyAgICA2ZGUxOTczZTY4ZWUzMTY1CiAKLVZQVU5QQ0tMQldfMTI4KHJlZykKK1ZNT1ZRX0lSRUdvck1FTTY0X3RvX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIGM4YjkzY2FjMThkZmNhYjkuNzBhZWNhNDkyZTE5ZjkzZC5jMmMyOTg0YTRkZTRjNDU4LjI4OTdhMzM4NDU4Mjc5YmQKICAgICAzYmFkOGE0NmQwNGY2OTM3LmQ4NjgyMjYyZWE2OGM0OWMuMWQ5ZmQyNDFhZDIzOTk4Yy43YzFiNWY1Mzc0NmE3YTIwCkBAIC05NTY0LDEyICs5NTY0LDEyIEBACiAgICAgZDgxZDEzYWFjOWRlYTc1Zi5lYjNhOTIwM2M1MWMwMGQ2LjQxYWQ3OGZkNGQzZDI5ZGQuNWQ4ZTFiZDdjZDdjNDY1ZQogICAgIGEyMTUxNDE4MmViZjg5OTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWY3YzdlMWJiMzVmZTQ1My40Mzc0NjQ2YTdmN2E0NzIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTIxNTE0MTgyZWJmODk5MwogICAgIDNiYWQ4YTQ2ZDA0ZjY5MzcuZDg2ODIyNjJlYTY4YzQ5Yy4xZDlmZDI0MWFkMjM5OThjLjdjMWI1ZjUzNzQ2YTdhMjAKICAgICAyMTBiN2U3NjJjY2I0OThhLjBkYTg5MWE2MTMxMDMzMTYuN2U3ZTc0NTgyNDY3NTE3Zi5lZjdlYjNlNDQzNjQ3ZjQ3CiAgICAgZDgxZDEzYWFjOWRlYTc1Zi5lYjNhOTIwM2M1MWMwMGQ2LjQxYWQ3OGZkNGQzZDI5ZGQuNWQ4ZTFiZDdjZDdjNDY1ZQogICAgIGEyMTUxNDE4MmViZjg5OTMKLVZQVU5QQ0tMQldfMTI4KG1lbSkKK1ZNT1ZRX0lSRUdvck1FTTY0X3RvX1hNTShtZW0pCiAgIGJlZm9yZQogICAgIDlhZTAxODk0ODMzODA1MGYuYmIzMDQ0NGQ0MzE0YmY2MS40ZWU5YTE2NDFkOThlODA5LmMyNzZkYzliYzUzMDVjNTQKICAgICAyMWJiYTUzNWU4ZjM3NTAxLjI1OTAxMGNiMzVmYWNkM2QuMTI4MzNhYjUzNjkwYTdkYi41ZDI2OWI5ZTI3Y2MyODhkCkBAIC05NTc5LDExICs5NTc5LDExIEBACiAgIGFmdGVyCiAgICAgOWFlMDE4OTQ4MzM4MDUwZi5iYjMwNDQ0ZDQzMTRiZjYxLjRlZTlhMTY0MWQ5OGU4MDkuYzI3NmRjOWJjNTMwNWM1NAogICAgIDIxYmJhNTM1ZThmMzc1MDEuMjU5MDEwY2IzNWZhY2QzZC4xMjgzM2FiNTM2OTBhN2RiLjVkMjY5YjllMjdjYzI4OGQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzI1ZDc2MjZkYzliOWI5ZS5jNTI3MzBjYzVjMjg1NDhkCi0gICAgNGNkMDQ3OWI0ZjYxMjRmMS4wMjY2NjIwOGYyMDNiYTMyLjJkYTNmYmQ3MWQyNzk4MGEuNTE2YTFiODMxYjMxNzZmYworICAgIDEzNzIzNmU5NzhmZDk2OTMuNzQ4OTcwOTAzYjFiMGQ5Zi4xM2QyZDllMjJkMTFmODc3LjZlMDhiMTcyMTA5ZWM3MzcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMjc2ZGM5YmM1MzA1YzU0CiAgICAgNjI5NmQ0M2RlNTEyNzA4OAogCi1WUFVOUENLTEJXXzEyOChyZWcpCitWTU9WUV9JUkVHb3JNRU02NF90b19YTU0ocmVnKQogICBiZWZvcmUKICAgICBmZGRhZDcwYzA5Y2JmMjg4LmE3YTM1NTM3OGEyYmRiNDguMmM3NGUwOWZmNjNmMTFhMy4zYmMyMWI4MTIzZGM0M2JmCiAgICAgN2U4MDIzNWMyNGVhMzhhOC4wMmI1ZGJhODQ1Njg3NmM0LjRmMDBlOGMxZTI1OTRkOWUuMWJmYmI1Y2E1YTNlYjRjMwpAQCAtOTU5MSwxMiArOTU5MSwxMiBAQAogICAgIGExMjU3ZTMwYWM4OWZmZjcuMjVjOTNmYmZhODY4NGJkOS5lY2JkODQ1N2UzNWQ2N2RmLmJlZWI0OGVkY2MzN2RjNjcKICAgICAzODM5Mzk5ZjQwZTYwOTVlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE4MWIxYWZiNDViNTlmY2EuZGU1YTU5M2VhOWI0NDJjMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM4MzkzOTlmNDBlNjA5NWUKICAgICA3ZTgwMjM1YzI0ZWEzOGE4LjAyYjVkYmE4NDU2ODc2YzQuNGYwMGU4YzFlMjU5NGQ5ZS4xYmZiYjVjYTVhM2ViNGMzCiAgICAgNDFkNWIxOWFkMWZiN2U5NC4zOGQzNTRkYzlhMjNiMzkwLmM1NTQ3NmRiNTJlMGFiY2UuYTgxYTQ1OWZkZTU5YTk0MgogICAgIGExMjU3ZTMwYWM4OWZmZjcuMjVjOTNmYmZhODY4NGJkOS5lY2JkODQ1N2UzNWQ2N2RmLmJlZWI0OGVkY2MzN2RjNjcKICAgICAzODM5Mzk5ZjQwZTYwOTVlCi1WUFVOUENLTEJXXzEyOChtZW0pCitWTU9WUV9JUkVHb3JNRU02NF90b19YTU0obWVtKQogICBiZWZvcmUKICAgICBmNGQxOTNhMDU1NzJlZTU1LmZjYmI4NzhjNTIyMGY5N2QuYTQ2MzE1M2I4ODQ0ZmRjYi4xZTg2MTBhMzMwNWViZDdmCiAgICAgY2Q3ZmQ1ZGUyN2U2NDU3Ni5hZGU1YzcxODVmNGNhNWQzLjkzNmQ1NDNkNTljMjgzOTEuYjhmZDE1MjlkNjZmZTk1NwpAQCAtOTYwNiwxMSArOTYwNiwxMSBAQAogICBhZnRlcgogICAgIGY0ZDE5M2EwNTU3MmVlNTUuZmNiYjg3OGM1MjIwZjk3ZC5hNDYzMTUzYjg4NDRmZGNiLjFlODYxMGEzMzA1ZWJkN2YKICAgICBjZDdmZDVkZTI3ZTY0NTc2LmFkZTVjNzE4NWY0Y2E1ZDMuOTM2ZDU0M2Q1OWMyODM5MS5iOGZkMTUyOWQ2NmZlOTU3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFlYjg4NmZkMTAxNWEzMjkuMzBkNjVlNmZiZGU5N2Y1NwotICAgIDQ1NGRmYWJlNzViNjNiZTcuODAyMGRkNzUxYjk2MGE5ZS4yZDAwZjk4NDM4ZDVmZTRiLjk1MjE3YTk4OWJlZGIxNjYKKyAgICA5ZTBmNzg0NGQzNGVjYmVkLjEwZWQzYTQyNmU5YTQyYTUuY2RiMjc2YjEzNGVlOWE1OC4xNjZjOGY1NzcwMWEyNjE2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWU4NjEwYTMzMDVlYmQ3ZgogICAgIDhmNjZkMzU4ZjI3NGM1ZjQKIAotVlBVTlBDS0xCV18xMjgocmVnKQorVk1PVlFfSVJFR29yTUVNNjRfdG9fWE1NKHJlZykKICAgYmVmb3JlCiAgICAgNjE4ODk0MDMxMjNhYTA2Yi45YzA1ZDYzODI4MmI1MzkwLjViY2JhYjFkMDNjYTNhNmIuOTEyMTU5YTA3ZTgyNmE5NwogICAgIDY3ZDNiYjA1OTZjYjdjNzguODEwMjg4OWUwOGI4Y2QxMy5mYzM3OWZhNmMxYzQwZWI4LmQzZTIxMGYzMjQwMjliNjcKQEAgLTk2MTgsMTIgKzk2MTgsMTIgQEAKICAgICA3ZjEzMjliZTNiN2YyOTAyLjYxZmY1ZWRmYzE0YmQ5NWEuZmY4YWVmMGIzMTM4OTA4MC42NTc0NzhlYmZmYTczYzQ2CiAgICAgNmRkYzIwNjg2YmU2MjNhYwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMWQzMGZlMjljMTA2OGYzLjQ2MjQ1ZjAyNGQ5YmU5NjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZGRjMjA2ODZiZTYyM2FjCiAgICAgNjdkM2JiMDU5NmNiN2M3OC44MTAyODg5ZTA4YjhjZDEzLmZjMzc5ZmE2YzFjNDBlYjguZDNlMjEwZjMyNDAyOWI2NwogICAgIGZkOTI0NGNhMWFiMzk2YzYuY2UxMjhjZGQzMjY5NjU5ZC5iZWIzYjg3Y2YyMGZjMTMwLmQxMGY5YzY4NDY1ZjRkZTkKICAgICA3ZjEzMjliZTNiN2YyOTAyLjYxZmY1ZWRmYzE0YmQ5NWEuZmY4YWVmMGIzMTM4OTA4MC42NTc0NzhlYmZmYTczYzQ2CiAgICAgNmRkYzIwNjg2YmU2MjNhYwotVlBVTlBDS0xCV18xMjgobWVtKQorVk1PVlFfSVJFR29yTUVNNjRfdG9fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgYzMxNTEwY2JhNzI3YmY0Ny40OWEwNjg0ZTk1YmE3MmQ4LjE0OTY3YjkyZDI2OWUzNzUuMTkwNzQxYzAxYmNhYjc1MwogICAgIDQ0ZTljNTAwY2Y3NmNjNDMuYjc4NmZiZTRjM2YwYWRmMy5jNWEzNWVlMDgwZDA0MDFhLjZhNzdhYjA1NGI1MTcyNTYKQEAgLTk2MzMsMTEgKzk2MzMsMTEgQEAKICAgYWZ0ZXIKICAgICBjMzE1MTBjYmE3MjdiZjQ3LjQ5YTA2ODRlOTViYTcyZDguMTQ5NjdiOTJkMjY5ZTM3NS4xOTA3NDFjMDFiY2FiNzUzCiAgICAgNDRlOWM1MDBjZjc2Y2M0My5iNzg2ZmJlNGMzZjBhZGYzLmM1YTM1ZWUwODBkMDQwMWEuNmE3N2FiMDU0YjUxNzI1NgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xOTZhMDc3NzQxYWJjMDA1LjFiNGJjYTUxYjc3MjUzNTYKLSAgICAzODk1NmE5MDUwNmYyODBjLmVmOGQxM2Q2MGM3ZmU4YWEuOGM0ZTY3MDIyNWE2ZTJiNS4xZDYxYjRmM2VmNmY5MjlhCisgICAgY2QyNWI5ZjNmZWRmMDVjYi4yNTExZTFlZTYxYWUxNjAwLjRlZjE4M2I3ZTg4YmFiNzcuNGMyNzI4NDg1ZTVhZmMzNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE5MDc0MWMwMWJjYWI3NTMKICAgICAzNzcxNGM3NDliMWY3MDM0CiAKLVZQVU5QQ0tIQldfMTI4KHJlZykKK1ZNT1ZVUFNfWE1NX3RvX1hNTW9yTUVNKHJlZykKICAgYmVmb3JlCiAgICAgZjhhNWVhMzZmZGYzZDFhZC42MjA1NTNjNGUyMzFlZTMxLjcxNDY4ZTBhNWZmMDYwOWUuNWM4NDg0YWM1MzJkOWYwMwogICAgIGJhNDc4Y2E1YjI3OWYyYjIuMjg0MWYxNzljZjMyMTY2Ny4wNzg4NGZmNWY3OGJiYTg3Ljk4NjE1OGEzOTAyZDllOGIKQEAgLTk2NDUsMTIgKzk2NDUsMTIgQEAKICAgICBiNTA5Y2EzYTgyYzk2NDBmLmYzNGIzODFhMmQxZTc3YjQuZGZkNTkwYTA2NDc1MDNlYi5jNzNiMTIyNmEwYzY1NmZiCiAgICAgNzJkMGYxODlhZDc3ODYzYgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZDA3OWU4ODUxNGYwM2Y1LjcwZjdkZjhiMzJiYTEzODcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDc4ODRmZjVmNzhiYmE4Ny45ODYxNThhMzkwMmQ5ZThiCiAgICAgYmE0NzhjYTViMjc5ZjJiMi4yODQxZjE3OWNmMzIxNjY3LjA3ODg0ZmY1Zjc4YmJhODcuOTg2MTU4YTM5MDJkOWU4YgogICAgIGRhYTUyZDJkNTUzZDBmZWYuNjQxNGJmOWQzNDdkNWFkOS4wZDllNTEwMzcwZGYzMjEzLjFkYWY1ZWQyZjViMTlkNzkKICAgICBiNTA5Y2EzYTgyYzk2NDBmLmYzNGIzODFhMmQxZTc3YjQuZGZkNTkwYTA2NDc1MDNlYi5jNzNiMTIyNmEwYzY1NmZiCiAgICAgNzJkMGYxODlhZDc3ODYzYgotVlBVTlBDS0hCV18xMjgobWVtKQorVk1PVlVQU19YTU1fdG9fWE1Nb3JNRU0obWVtKQogICBiZWZvcmUKICAgICBmYTNjNzVlODM3ZDBlOTY1LmE1YzA1ZDM4ZDZhYjJjYmUuYjFiM2RhZGVkNDIxMjkyNC5kODc5MDkzODcyZGI2YWJlCiAgICAgM2M0OTFjMzA1YWRkM2FhNi4wNzE2ZTQ5M2VkNmZhNGE5LjdhMTYyMWQ0NDc5MzJjNTQuNTZkNmI2MzczMzljYTMzNgpAQCAtOTY1OCwxMyArOTY1OCwxMyBAQAogICAgIDU5N2FjMTI3ZGQ0Njk5MWMuOTJjZWJiMTFkMWNhOTNlMy45ZGZmOGEwNjAwZjIxM2E2LjRkZWJhMTFiNDQ2MTc5YzYKICAgICA3ZjNhZDZkOGNiN2M4ZjM3CiAgIGFmdGVyCi0gICAgZmEzYzc1ZTgzN2QwZTk2NS5hNWMwNWQzOGQ2YWIyY2JlLmIxYjNkYWRlZDQyMTI5MjQuZDg3OTA5Mzg3MmRiNmFiZQorICAgIGZhM2M3NWU4MzdkMGU5NjUuYTVjMDVkMzhkNmFiMmNiZS45ZGZmOGEwNjAwZjIxM2E2LjRkZWJhMTFiNDQ2MTc5YzYKICAgICAzYzQ5MWMzMDVhZGQzYWE2LjA3MTZlNDkzZWQ2ZmE0YTkuN2ExNjIxZDQ0NzkzMmM1NC41NmQ2YjYzNzMzOWNhMzM2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIxN2FiMzE2ZGEyMWRlZDQuZDQ0NzIxOTMyOTJjMjQ1NAorICAgIDEyYzU2MTRiMzNhYjM2MmEuMzc1NzVhYjg2MjlmMDg3Yy4yYTQxODdlOGEyODAzYjcxLmI0Mzg5NTBhNDU0NWU5ZmYKICAgICA1OTdhYzEyN2RkNDY5OTFjLjkyY2ViYjExZDFjYTkzZTMuOWRmZjhhMDYwMGYyMTNhNi40ZGViYTExYjQ0NjE3OWM2CiAgICAgN2YzYWQ2ZDhjYjdjOGYzNwogCi1WUFVOUENLSEJXXzEyOChyZWcpCitWTU9WVVBTX1hNTV90b19YTU1vck1FTShyZWcpCiAgIGJlZm9yZQogICAgIGE1NzMzMWFiNzcyMjY2ZmQuZWQzNWI2YWU3NWI4MWVhOS43MmM5MDMwY2Q3Nzk4Mzg5LmFmMWVhNTFhN2VmNzZmMjAKICAgICAxYWUwYWQwMmUzZTAzY2M1LmFhYzJiZWNlMTcwZjgzZmMuMzQ5MjJmMTMwZjNhMTIxYS4zYzY4NTQxMTM3OWEwZDBiCkBAIC05NjcyLDEyICs5NjcyLDEyIEBACiAgICAgNjU4OWY4ZTk2Y2QyY2YwYS4wZTgxZjQ4NmU2OWFkN2E2LmNlYzEyMGZhODcxZmZmYjAuMzdiMTVmNTNjY2VjZmFlMgogICAgIDVkNDZiMzc4ZGZiMmMxMjYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzQzNDc2OTIzYTJmOTQxMy4xNjBmOTgzYTdjMTI0NDFhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM0OTIyZjEzMGYzYTEyMWEuM2M2ODU0MTEzNzlhMGQwYgogICAgIDFhZTBhZDAyZTNlMDNjYzUuYWFjMmJlY2UxNzBmODNmYy4zNDkyMmYxMzBmM2ExMjFhLjNjNjg1NDExMzc5YTBkMGIKICAgICAzY2NlNDY0OGFiNDE0YjNiLjZjZWM1NDcyZGQ1NjgxNDIuMzQ3NjNhOTQxNjk4N2M0NC4yMGFhMTRkNTQ4ZThhNzkyCiAgICAgNjU4OWY4ZTk2Y2QyY2YwYS4wZTgxZjQ4NmU2OWFkN2E2LmNlYzEyMGZhODcxZmZmYjAuMzdiMTVmNTNjY2VjZmFlMgogICAgIDVkNDZiMzc4ZGZiMmMxMjYKLVZQVU5QQ0tIQldfMTI4KG1lbSkKK1ZNT1ZVUFNfWE1NX3RvX1hNTW9yTUVNKG1lbSkKICAgYmVmb3JlCiAgICAgNmUzODhiMmY5ZTQ3Yjk4Yi5mMzVjYmY1MWMyMWUwNmRlLjZlNGIxYmY2NGJlNjQwNTYuNWViZmRkYjFmZjVjZDUwZAogICAgIDQ2NTI2MzYzMjRiNjllM2MuNDA5NTk4ZWM0OGIxMmE2NS42NzE3NDNhZTJiNDY3NzdiLjQwYmI2ZDI1MTlkYTNhMDUKQEAgLTk2ODUsMTMgKzk2ODUsMTMgQEAKICAgICBiYTJkMDRmN2Y4NTMxZTM1LjhiNjQ2YzZiNTVkZTJiMzYuOTRlNThiYTdjNTc0NDFkYi42YWUxZjhmNGE1Y2FhNTc3CiAgICAgNmFhMmVhMjg0ZTU0MjI0YQogICBhZnRlcgotICAgIDZlMzg4YjJmOWU0N2I5OGIuZjM1Y2JmNTFjMjFlMDZkZS42ZTRiMWJmNjRiZTY0MDU2LjVlYmZkZGIxZmY1Y2Q1MGQKKyAgICA2ZTM4OGIyZjllNDdiOThiLmYzNWNiZjUxYzIxZTA2ZGUuOTRlNThiYTdjNTc0NDFkYi42YWUxZjhmNGE1Y2FhNTc3CiAgICAgNDY1MjYzNjMyNGI2OWUzYy40MDk1OThlYzQ4YjEyYTY1LjY3MTc0M2FlMmI0Njc3N2IuNDBiYjZkMjUxOWRhM2EwNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZTY3NGIxNzFiNDNmNmFlLjRiMmJlNjQ2NDA3NzU2N2IKKyAgICBjMTVmYjgwMjhlMGIyYzY3LmFhN2U3ZDI2OWExODc4NDkuZDViMWVhOWI5ZmM3Mzg0NC5kMDAzY2RjMjcyMjU2YzQ0CiAgICAgYmEyZDA0ZjdmODUzMWUzNS44YjY0NmM2YjU1ZGUyYjM2Ljk0ZTU4YmE3YzU3NDQxZGIuNmFlMWY4ZjRhNWNhYTU3NwogICAgIDZhYTJlYTI4NGU1NDIyNGEKIAotVlBVTlBDS0hCV18xMjgocmVnKQorVk1PVlVQU19YTU1fdG9fWE1Nb3JNRU0ocmVnKQogICBiZWZvcmUKICAgICAyYjkyYTBjODBiNTAxZjY5LjBmODZjNTJlN2Q5OTMyZDUuNDE5NDYxMjcxNDhmODFkOS44MDdmYTNiZmI5NTk0YzZjCiAgICAgMGJmZDE0NDE3NTQ5ZDc3ZS45YjM3NzY5MzM5ZTkyMTcxLjI2NTc1NmM3NzRiOGI0ZGUuNzQ0YmFjZDA5NjgzMTYyNApAQCAtOTY5OSwxMiArOTY5OSwxMiBAQAogICAgIDk1NzMyYjcwYzY2MjZiNDEuYzdkMDk5OThjOGQ5ODc0ZS5mMGNlMzU1Zjg1OWZhM2JjLmU5YTc4Njg5N2RkNGQ2YjgKICAgICAyMGQwNGUwYWJlMTI0NGVjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk3MjZmYzU3NDk1NmI1YzcuMTE3NGU0YjgwMGI0ZjBkZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNjU3NTZjNzc0YjhiNGRlLjc0NGJhY2QwOTY4MzE2MjQKICAgICAwYmZkMTQ0MTc1NDlkNzdlLjliMzc3NjkzMzllOTIxNzEuMjY1NzU2Yzc3NGI4YjRkZS43NDRiYWNkMDk2ODMxNjI0CiAgICAgNjUyZjQ0MDAyYWNiODczOC4zOTBjOTQxMjQ5NTBhYTM1Ljk3ZmM0OWI1MTFlNDAwZjAuNGUxNDI0YzU3OWZkNWIyZgogICAgIDk1NzMyYjcwYzY2MjZiNDEuYzdkMDk5OThjOGQ5ODc0ZS5mMGNlMzU1Zjg1OWZhM2JjLmU5YTc4Njg5N2RkNGQ2YjgKICAgICAyMGQwNGUwYWJlMTI0NGVjCi1WUFVOUENLSEJXXzEyOChtZW0pCitWTU9WVVBTX1hNTV90b19YTU1vck1FTShtZW0pCiAgIGJlZm9yZQogICAgIGQxNWJmODMzNTljNTYxZjcuZjcxN2M1ZmRlNDliYmY0Ni4yMDUxMDMwZmQzOTA3NWU4LjhlMTgxNjMwNmY3NmQ3ZWQKICAgICBkNjE0MDFmMDY5ZjllOTA0LmU2NjUwZjEyMjAwMWJlZjIuMWY1OTRkNjQ4NTgyMzAyZS5jYjI4ZTg5NDY4ZjRkOTMwCkBAIC05NzEyLDEzICs5NzEyLDEzIEBACiAgICAgNTAzZjFkZDc1YjExMjhkNi5lMDMyOWY4OTY0ODZiMGYyLjgzMzI3MjVhNGY0NWZiNzEuOTVjNTUwYzRmZDE2MzY5YgogICAgIGRhZWFkZTZhZDBkMjA5MWIKICAgYWZ0ZXIKLSAgICBkMTViZjgzMzU5YzU2MWY3LmY3MTdjNWZkZTQ5YmJmNDYuMjA1MTAzMGZkMzkwNzVlOC44ZTE4MTYzMDZmNzZkN2VkCisgICAgZDE1YmY4MzM1OWM1NjFmNy5mNzE3YzVmZGU0OWJiZjQ2LjgzMzI3MjVhNGY0NWZiNzEuOTVjNTUwYzRmZDE2MzY5YgogICAgIGQ2MTQwMWYwNjlmOWU5MDQuZTY2NTBmMTIyMDAxYmVmMi4xZjU5NGQ2NDg1ODIzMDJlLmNiMjhlODk0NjhmNGQ5MzAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjAxZjUxNTkwMzRkMGY2NC5kMzg1OTA4Mjc1MzBlODJlCisgICAgMGRjN2U0MmQwYmI4OTc0MC5jMGFhMDMxZDE3MjFhNWYyLmEyYjVmMzg0ZmFiYTczNGQuMDQ0OGE4ZjYwZWE1ZTUzMQogICAgIDUwM2YxZGQ3NWIxMTI4ZDYuZTAzMjlmODk2NDg2YjBmMi44MzMyNzI1YTRmNDVmYjcxLjk1YzU1MGM0ZmQxNjM2OWIKICAgICBkYWVhZGU2YWQwZDIwOTFiCiAKLVZNVUxTU18xMjgocmVnKQorVk1PVk5URFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMmYwNTRlNTIyNDY1OWE1Yy43ZDRhMjhkODczMGQ1OGYzLmExNDhkZWMzYTRiYzFhOWQuYTA5OTQ1ZDFhMDJkODRjNQogICAgIGYxNjE5YWU5OTQ1YzI0MGIuNmViMjgyMWQ3MmJhZTJjMi42MTNhYmMzNTcyNTAyMDlmLmQzYjllN2Q3MDg4MWNhNzUKQEAgLTk3MjYsMTIgKzk3MjYsMTIgQEAKICAgICAyNzBhYmJkNTM5YTQxNjYyLjEwY2MwZjI0OGY1NGY3MjkuNGFkZTQ3NzUyYWJmZjA1Yy5lZjUwOGUzZDhmOTY3YjlkCiAgICAgOGY2MDg5NzVlNTcwNWY2YgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MTNhYmMzNTcyNTAyMDlmLmQzYjllN2Q3ODAwMDAwMDAKKyAgICAyZjA1NGU1MjI0NjU5YTVjLjdkNGEyOGQ4NzMwZDU4ZjMuYTE0OGRlYzNhNGJjMWE5ZC5hMDk5NDVkMWEwMmQ4NGM1CiAgICAgZjE2MTlhZTk5NDVjMjQwYi42ZWIyODIxZDcyYmFlMmMyLjYxM2FiYzM1NzI1MDIwOWYuZDNiOWU3ZDcwODgxY2E3NQogICAgIDdhNDljMDliYmM0MmU1ZDQuMDE0NGE1OTM3MTIzODM3MC43YTUyMzY0YzZiY2RmZWE2LmZhNWRkNzU3YTQ0YTg4YWYKICAgICAyNzBhYmJkNTM5YTQxNjYyLjEwY2MwZjI0OGY1NGY3MjkuNGFkZTQ3NzUyYWJmZjA1Yy5lZjUwOGUzZDhmOTY3YjlkCiAgICAgOGY2MDg5NzVlNTcwNWY2YgotVk1VTFNTXzEyOChtZW0pCitWTU9WTlREUV8xMjgobWVtKQogICBiZWZvcmUKICAgICBiNzU3NDVlY2MzZTRlZjQ2LjUzZjA4NzAyYTcwY2Y2NjIuNzgxNTNjYmVlNTVhZmExOC4yYjI4ZWIxYTRjYjIzMTZkCiAgICAgNDEwMjNkOGM0NGZmZTk1YS41YzQ3MjA4ZGEwMDliZjdmLjE2ZWRhNjRjOTI0MDQ3NmEuN2I3ZDFlYTk2YzMzZmU4NgpAQCAtOTczOSwxMyArOTczOSwxMyBAQAogICAgIGVmYTNkMmZiYTI1ODA1ZGIuNzI3N2FhNzJhYWViZmZjMy41Zjc2MjVmNDVhZGViMmU2LmQ0NzcyMjMxMTgwZDJiN2YKICAgICA5NWI1ZWIwM2RjN2UwM2I3CiAgIGFmdGVyCi0gICAgYjc1NzQ1ZWNjM2U0ZWY0Ni41M2YwODcwMmE3MGNmNjYyLjc4MTUzY2JlZTU1YWZhMTguMmIyOGViMWE0Y2IyMzE2ZAorICAgIGI3NTc0NWVjYzNlNGVmNDYuNTNmMDg3MDJhNzBjZjY2Mi4xNmVkYTY0YzkyNDA0NzZhLjdiN2QxZWE5NmMzM2ZlODYKICAgICA0MTAyM2Q4YzQ0ZmZlOTVhLjVjNDcyMDhkYTAwOWJmN2YuMTZlZGE2NGM5MjQwNDc2YS43YjdkMWVhOTZjMzNmZTg2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE2ZWRhNjRjOTI0MDQ3NmEuN2I3ZDFlYTk3OTdhOTM3MworICAgIDBhMmNlZDQyODVjZDA2ZDIuOWQ1YjgzZTRjMzI0YWY2Ni5jNDFlY2FiYWFmMTM5YjRiLjk0MjlkYzhjMjdjZTkzNTMKICAgICBlZmEzZDJmYmEyNTgwNWRiLjcyNzdhYTcyYWFlYmZmYzMuNWY3NjI1ZjQ1YWRlYjJlNi5kNDc3MjIzMTE4MGQyYjdmCiAgICAgOTViNWViMDNkYzdlMDNiNwogCi1WTVVMU1NfMTI4KHJlZykKK1ZNT1ZOVERRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDM0MmQzMzZlMGVhZDU3YTYuY2EzMjY2YTFiNWFlYTBhMC4zN2U5OTNhM2YxZTllZTQxLmM0YmYzMmU2YWZhZDQ3NjcKICAgICAwZDJjZjZkZTRhMjQ2M2ZhLjc4YTQyNzIyZGRkYTk0NGUuNDhmYjM5ZTMzNWFiYjY4ZC5jZGM2NmU3Y2M5OGMxOGZiCkBAIC05NzUzLDEyICs5NzUzLDEyIEBACiAgICAgZGVlZmRlN2U1MzIwOTE3YS5iZDY0MWU2MmQ2ZTY3NzE0LmJkMzJhZDQwMjJhOGM0M2QuM2UzZDVmNDRiZGFkNTgwYwogICAgIDVlNDUwZDRmZDAwNTQwZTAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDhmYjM5ZTMzNWFiYjY4ZC5jZGM2NmU3YzRlOTVjZjgwCisgICAgMzQyZDMzNmUwZWFkNTdhNi5jYTMyNjZhMWI1YWVhMGEwLjM3ZTk5M2EzZjFlOWVlNDEuYzRiZjMyZTZhZmFkNDc2NwogICAgIDBkMmNmNmRlNGEyNDYzZmEuNzhhNDI3MjJkZGRhOTQ0ZS40OGZiMzllMzM1YWJiNjhkLmNkYzY2ZTdjYzk4YzE4ZmIKICAgICA3ZGZlMzFiZjJkNzE2MjVjLmQ1YzY5MDY5MzNlOTlkMTEuMDFmYTk5OWUxMWJiOTQ1Mi41NzU2NTNhMmM0ODhkZmNlCiAgICAgZGVlZmRlN2U1MzIwOTE3YS5iZDY0MWU2MmQ2ZTY3NzE0LmJkMzJhZDQwMjJhOGM0M2QuM2UzZDVmNDRiZGFkNTgwYwogICAgIDVlNDUwZDRmZDAwNTQwZTAKLVZNVUxTU18xMjgobWVtKQorVk1PVk5URFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTMzY2Q5YWQxODllNTQ3Ni44ZDRiZmI4NTU2YmIyYzAwLjBjNGE0YmY5ZGZkZGRkODQuZGFlZjczMzUwM2ZiODFmYQogICAgIGI5ZWMzZjRjYjE4MzRkZmIuZTY1ZDg0NDJkNWQwNmU5YS45ZTQ0OTUxYTZjZGE4YzhjLmIzN2RlNmVhNTE0MjA4MzQKQEAgLTk3NjYsMTMgKzk3NjYsMTMgQEAKICAgICA0OGFhY2FmOTQ4NjNlNTgyLjA3ZDdjNThhYjE5N2RhYjcuZmJhMzZkYWE4MTE5YjQxNy4wODNhYzQ0MGExZGE2NGQxCiAgICAgM2QwMzI3YmFkYzQzYjA4YwogICBhZnRlcgotICAgIDkzM2NkOWFkMTg5ZTU0NzYuOGQ0YmZiODU1NmJiMmMwMC4wYzRhNGJmOWRmZGRkZDg0LmRhZWY3MzM1MDNmYjgxZmEKKyAgICA5MzNjZDlhZDE4OWU1NDc2LjhkNGJmYjg1NTZiYjJjMDAuOWU0NDk1MWE2Y2RhOGM4Yy5iMzdkZTZlYTUxNDIwODM0CiAgICAgYjllYzNmNGNiMTgzNGRmYi5lNjVkODQ0MmQ1ZDA2ZTlhLjllNDQ5NTFhNmNkYThjOGMuYjM3ZGU2ZWE1MTQyMDgzNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ZTQ0OTUxYTZjZGE4YzhjLmIzN2RlNmVhMTViZWEwOGYKKyAgICBhYzIyYmMxN2I4YzFlYTliLjQ1NzM3MzFmNmFlYjk0ZjMuNGYxZDc3YjE5OWVhM2Y1OS5hMzI3MDNjOWE3MDg5NTk3CiAgICAgNDhhYWNhZjk0ODYzZTU4Mi4wN2Q3YzU4YWIxOTdkYWI3LmZiYTM2ZGFhODExOWI0MTcuMDgzYWM0NDBhMWRhNjRkMQogICAgIDNkMDMyN2JhZGM0M2IwOGMKIAotVk1VTFNTXzEyOChyZWcpCitWTU9WTlREUV8xMjgocmVnKQogICBiZWZvcmUKICAgICA5ZGNjMjdhM2Y0Y2ZiNjc0LjY5NGZlN2UwN2U3NWZiZGIuODZkNjc3ZWQ0NzYwN2M5My43ZWEwZjNmMjQxNzFhNWYxCiAgICAgODZlMWMwNjY4NDBhYjIzNi5lYmRmOGZiNzc1MDRlOGQyLjFmYmM4NGI2YzdkMmI1MzMuYjRlMTg2NzNmNDAwY2YxNApAQCAtOTc4MCwxMiArOTc4MCwxMiBAQAogICAgIDVmMjRhZTJmN2RjMDdhZjcuODJlYjZjZTUxOGM2MzU0ZC4wZjZjYTAyN2Y3ZTNkZjZlLmE5NWZjMGQ0YTRmMWJjZTMKICAgICAyMDMzNWY4Y2RhNmJmOGU4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFmYmM4NGI2YzdkMmI1MzMuYjRlMTg2NzM2YjUzNDE0YQorICAgIDlkY2MyN2EzZjRjZmI2NzQuNjk0ZmU3ZTA3ZTc1ZmJkYi44NmQ2NzdlZDQ3NjA3YzkzLjdlYTBmM2YyNDE3MWE1ZjEKICAgICA4NmUxYzA2Njg0MGFiMjM2LmViZGY4ZmI3NzUwNGU4ZDIuMWZiYzg0YjZjN2QyYjUzMy5iNGUxODY3M2Y0MDBjZjE0CiAgICAgNTI5MGVlNzEyODgxZGY3ZS5hYTI0M2M2YTRhMWI2Nzk0LjJlZDVlOTUwY2U3YWMyNDMuNzkzMmExMWJiNmQxZWRhYgogICAgIDVmMjRhZTJmN2RjMDdhZjcuODJlYjZjZTUxOGM2MzU0ZC4wZjZjYTAyN2Y3ZTNkZjZlLmE5NWZjMGQ0YTRmMWJjZTMKICAgICAyMDMzNWY4Y2RhNmJmOGU4Ci1WTVVMU1NfMTI4KG1lbSkKK1ZNT1ZOVERRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGJhN2NmYjJlNzM0YjVkZTUuMDdlOGZiMGQxZjUxYmY0ZS40ZjAwOWExNWZjMTIwZTI4LjFlY2ZhN2E3ZGY5OTQ4NjAKICAgICA1MjA0MGVhNjhiOWVhNjA3LmE3MjlkMTc1YTljMmVhMmYuZWMyZjQyZTQxMTBhYWQ1Mi5iNzQ4ZjkzZDIxMjkzOGM2CkBAIC05NzkzLDEzICs5NzkzLDEzIEBACiAgICAgZjEwNDhlYzhhYWNhZDc2OC40MDUyMDg5N2U2NzJlMDNjLjBiMGJmMTEzNDAyZjMxNDIuZjZhZjZlNTYyNDA1YTA5ZQogICAgIDU1MzU4YWIzMWU2OThmNjYKICAgYWZ0ZXIKLSAgICBiYTdjZmIyZTczNGI1ZGU1LjA3ZThmYjBkMWY1MWJmNGUuNGYwMDlhMTVmYzEyMGUyOC4xZWNmYTdhN2RmOTk0ODYwCisgICAgYmE3Y2ZiMmU3MzRiNWRlNS4wN2U4ZmIwZDFmNTFiZjRlLmVjMmY0MmU0MTEwYWFkNTIuYjc0OGY5M2QyMTI5MzhjNgogICAgIDUyMDQwZWE2OGI5ZWE2MDcuYTcyOWQxNzVhOWMyZWEyZi5lYzJmNDJlNDExMGFhZDUyLmI3NDhmOTNkMjEyOTM4YzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWMyZjQyZTQxMTBhYWQ1Mi5iNzQ4ZjkzZGMxNGFhNThjCisgICAgYzY5ODE2ZTAzZjZmOTE3OS45YzMzMmNkNGI3OWYzNjQ1LjM3NDRlMDQwNzRiYWQwZjcuMzUyNDkyNTM1OTFlZWM0YwogICAgIGYxMDQ4ZWM4YWFjYWQ3NjguNDA1MjA4OTdlNjcyZTAzYy4wYjBiZjExMzQwMmYzMTQyLmY2YWY2ZTU2MjQwNWEwOWUKICAgICA1NTM1OGFiMzFlNjk4ZjY2CiAKLVZTVUJTU18xMjgocmVnKQorVk1PVkxIUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYWUwMmUwZDRlMmQ2ZjY1My5hZTE0ZjM0YWU5YmMzN2ZmLmYwZDI2MjI4ZDFjOTI0YzIuNDQ0ZmVmNGI5MTc0OGM2MAogICAgIDVkNjE2ZTI3MGRkODExMGYuZGI5NGJmNTIxNzUwNmI2Yi4wOWZmMzVmNTE1MzAzZDgwLmJkZGQ1OGQzODQ5NTlmN2MKQEAgLTk4MDcsMTIgKzk4MDcsMTIgQEAKICAgICAyYzA5MjAxMDA1Y2Q1MmE2LmYxMTM4MWE1YjI4ZjQyNzEuZTE4ZTM2ZWYxNjVhZTE1Yi5lMzA3NTk4MmJmOWRkODYxCiAgICAgNDgzYmU4ODIzZTliNzY4MQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wOWZmMzVmNTE1MzAzZDgwLmJkZGQ1OGQzYjU5ZjI0YzMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTQ4MWE3OTYzNTlmMjRjMy5iZGRkNThkMzg0OTU5ZjdjCiAgICAgNWQ2MTZlMjcwZGQ4MTEwZi5kYjk0YmY1MjE3NTA2YjZiLjA5ZmYzNWY1MTUzMDNkODAuYmRkZDU4ZDM4NDk1OWY3YwogICAgIGJkYTAzMDE3MzlmYzFiNDcuNTM0ZjcwY2Q1MTkzMzBkOC5lNTI0N2Q2OTRkMzE2ODI1LjU0ODFhNzk2MzU5ZjI0YzMKICAgICAyYzA5MjAxMDA1Y2Q1MmE2LmYxMTM4MWE1YjI4ZjQyNzEuZTE4ZTM2ZWYxNjVhZTE1Yi5lMzA3NTk4MmJmOWRkODYxCiAgICAgNDgzYmU4ODIzZTliNzY4MQotVlNVQlNTXzEyOChtZW0pCitWTU9WTEhQU18xMjgobWVtKQogICBiZWZvcmUKICAgICA1ZGU5ZDI4MmNmYTZiYzRmLjA1ZTkzYzdlMGJkOGYwZDkuOTNhYTZlYzg1NzUyNWM2My41OTg5NWRmNTBiMzdlNGNlCiAgICAgMDBkYzkyNmY4ZGM5NjRmOS5hMzhjN2ZjZGU3YTgzMThjLjEzZTFiNDIwNWJlODNiZGEuYWE2MWVkZTZjODUyYWMyYwpAQCAtOTgyMiwxMSArOTgyMiwxMSBAQAogICBhZnRlcgogICAgIDVkZTlkMjgyY2ZhNmJjNGYuMDVlOTNjN2UwYmQ4ZjBkOS45M2FhNmVjODU3NTI1YzYzLjU5ODk1ZGY1MGIzN2U0Y2UKICAgICAwMGRjOTI2ZjhkYzk2NGY5LmEzOGM3ZmNkZTdhODMxOGMuMTNlMWI0MjA1YmU4M2JkYS5hYTYxZWRlNmM4NTJhYzJjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEzZTFiNDIwNWJlODNiZGEuYWE2MWVkZTZjODUyYWMyYworICAgIDBiZTJhNTMzOTUxMTJhYTguNjQzZWU1NjkzNmM5NTM2YS40Zjg0Y2Q5YmRhNWM5YjAxLjJlNjJlMjJlZWIzOTc2MWUKICAgICA1Y2M1ODViYjAyODhjYzhiLmEzNGE2YWJlOTNjODkwMWYuMjE1ZjM3MjRmMWJhMzgwNS40MmQ4MzgzYTBkNzg3ZTUzCiAgICAgNDIwZWViNzRjYzlhMDA3NQogCi1WU1VCU1NfMTI4KHJlZykKK1ZNT1ZMSFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDhhNTJmODQ5YzQyYjM3MzAuY2Q1MmIwZjRmMTNkMDRjYy5iYmZlMGIzODliMmYyNTU5LjY3M2Q2ZGE3YmMwZWNkMTEKICAgICA3NmVlNWEyNjkwYjc2MDMyLjNjNTVhMWM4N2QzOThmOTguMGFhNGMyNDRlOThkNGRjMi5mYmVjZWMxMDU2NjUxNzUyCkBAIC05ODM0LDEyICs5ODM0LDEyIEBACiAgICAgYWE2MTBkYTQxNWYyNzdiNS43ZmVjYzVmNmRlM2I4ZDdmLmI5Zjk2OGJlYzk1NzRhZDIuODFlOGIxNDQ2ODRhYjkyMQogICAgIDJhY2VmMGU3MTllZjhhMDgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGFhNGMyNDRlOThkNGRjMi5mYmVjZWMxMDViY2FlZjk2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJhMzYyZTRiZGJjYWQyZjMuZmJlY2VjMTA1NjY1MTc1MgogICAgIDc2ZWU1YTI2OTBiNzYwMzIuM2M1NWExYzg3ZDM5OGY5OC4wYWE0YzI0NGU5OGQ0ZGMyLmZiZWNlYzEwNTY2NTE3NTIKICAgICA2MjJmMGQ3NWNjY2JiNjI0LjgzOTlkNDI1YzM4YTI4MWEuZWE4OThkNGMxYTZiNDYwNi5iYTM2MmU0YmRiY2FkMmYzCiAgICAgYWE2MTBkYTQxNWYyNzdiNS43ZmVjYzVmNmRlM2I4ZDdmLmI5Zjk2OGJlYzk1NzRhZDIuODFlOGIxNDQ2ODRhYjkyMQogICAgIDJhY2VmMGU3MTllZjhhMDgKLVZTVUJTU18xMjgobWVtKQorVk1PVkxIUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTJiNDY3MjEwOGM4ZmVkMy5hYWQwNTcxZTA2YjhkZDhmLjBkMThmMTI3ZWI1OTc4ZjIuZDE0MDRkMDU5M2RkOTVkMgogICAgIDk2NjY5M2RjNTRkZWQ0YWYuYmVjN2U1NGYzY2FhMjU1ZS4wN2ViZDNhNDA1ZWVhNWEwLjhmYWEzYThkMTM4NzY1YjEKQEAgLTk4NDksMTEgKzk4NDksMTEgQEAKICAgYWZ0ZXIKICAgICA5MmI0NjcyMTA4YzhmZWQzLmFhZDA1NzFlMDZiOGRkOGYuMGQxOGYxMjdlYjU5NzhmMi5kMTQwNGQwNTkzZGQ5NWQyCiAgICAgOTY2NjkzZGM1NGRlZDRhZi5iZWM3ZTU0ZjNjYWEyNTVlLjA3ZWJkM2E0MDVlZWE1YTAuOGZhYTNhOGQxMzg3NjViMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wN2ViZDNhNDA1ZWVhNWEwLjhmYWEzYThkMTQzMjdkYzIKKyAgICAxMGFmZWUwNjE3M2ZjNmM3LjQxOTRiNWEzNTI1MzhhZDAuNGEyZmU3NTk0OTA5ZDJiNS41MDgyMjljMWU1ZTNmNDFjCiAgICAgZGQ1Y2Y2OGE2ZGY2OTE0OC45MTgxYzM4NmU1NDA0OThlLmIyYjFhOTMyZDJiM2I5NWMuNmUxNTE5MGZhNzdkN2ZiZQogICAgIDQ2YjAwM2UzZjJkZjQxNDQKIAotVlNVQlNTXzEyOChyZWcpCitWTU9WTEhQU18xMjgocmVnKQogICBiZWZvcmUKICAgICAzNTlkZTRhNzY0OTc3ODVhLmQ5M2EyNjUzNzMxMGYxNWUuMDlkYjA5NjQ5MGZjOWU0Ny4xYjNjOTUxYmJjZmExN2MyCiAgICAgOTUyOGI5Yzg5ODMxNWVhYi5lMDEzZmI0ZjQ0OThhMjM0LjA1ZWU4NWE5ZjAxM2M1YTUuNjI5ZTI4MDAyNGU5YTgxMgpAQCAtOTg2MSwxMiArOTg2MSwxMiBAQAogICAgIDFiNGQyY2QyYjkzNzI5YjEuN2ZlODgwOGRiOTIzZTVkMy5mODZlMGIxOTNkODM3ODAxLmY1MTMzMDZmZGNmMTUxMjMKICAgICBmYWJlOWRkMTY1MjFlMjNiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA1ZWU4NWE5ZjAxM2M1YTUuNjI5ZTI4MDBhNTI1N2FlOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MWExZGRjZTI1OGQyNzc5LjYyOWUyODAwMjRlOWE4MTIKICAgICA5NTI4YjljODk4MzE1ZWFiLmUwMTNmYjRmNDQ5OGEyMzQuMDVlZTg1YTlmMDEzYzVhNS42MjllMjgwMDI0ZTlhODEyCiAgICAgYzM5ZjdkYjIyYjM3MmZlNC5jZWI0ZWY2OWZjOWE1ZmY3LmUwMDYzMWMxYTAxMWY5NTQuNjFhMWRkY2UyNThkMjc3OQogICAgIDFiNGQyY2QyYjkzNzI5YjEuN2ZlODgwOGRiOTIzZTVkMy5mODZlMGIxOTNkODM3ODAxLmY1MTMzMDZmZGNmMTUxMjMKICAgICBmYWJlOWRkMTY1MjFlMjNiCi1WU1VCU1NfMTI4KG1lbSkKK1ZNT1ZMSFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDRjNmZhMWRmZGIyYTk1ZWUuZjk3ZGMzOTJkZGJkODZiZC5jZjdkMjlhODk0M2RlZmYyLmE4NzQwZjFiNjJmNTdiNTgKICAgICBjN2YyYjc4NDVhMTYyODY3LmI5N2MzYzYwMzM1MzgzYjQuOWEzZDY2YTRhYmY3M2I4My40YjYyMzczNWFjZjE0MTA0CkBAIC05ODc2LDExICs5ODc2LDExIEBACiAgIGFmdGVyCiAgICAgNGM2ZmExZGZkYjJhOTVlZS5mOTdkYzM5MmRkYmQ4NmJkLmNmN2QyOWE4OTQzZGVmZjIuYTg3NDBmMWI2MmY1N2I1OAogICAgIGM3ZjJiNzg0NWExNjI4NjcuYjk3YzNjNjAzMzUzODNiNC45YTNkNjZhNGFiZjczYjgzLjRiNjIzNzM1YWNmMTQxMDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWEzZDY2YTRhYmY3M2I4My40YjYyMzczNWUyZjU3YjU4CisgICAgNDcxMjViYWVmZmY0NTRkMy5iNzk2OTVhNzU4ODc1YzQzLmJjZjViMzZlMWE1YTgzYjAuM2Y4NTgxZDJiNjA1MDRiMgogICAgIGE4OWQwOTQ4ZTVjZGQ4NWUuNGYxN2M5ZDNlN2U1NGMxNi4xMTcyOGRmM2ZjNzQ4NGE2LmRlMjllODVkMWNiYzAxMGUKICAgICA4NjlhNjg0NDdiYTM3NGMzCiAKLVZBRERTU18xMjgocmVnKQorVlBBQlNEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDkxMjRmZGYyNmY0NTk4N2QuYzU1ZDNkM2UyOWFmNmUzMy5kZDRiZDQ1MDdkZjg5MGQ5Ljc1N2U2ZjFkNmQ1MWY5OTAKICAgICA1ZDEyYTRkMzkzMmVhYWVhLjdjMWY3NDdkZTZhNmQ0N2YuYmQ3ZWIzOGFiNTRjNjQzNy5jNGU1ZDVkYThhZmI5ZjliCkBAIC05ODg4LDEyICs5ODg4LDEyIEBACiAgICAgYTQ0ZTE1ZGZkYzA3ODg4Ny4yNWQ5ZDg4MTNkZmZmYTJhLmUzMTBkOWU1N2RlOGFiNzUuOTNmODFkYjkzN2VjNmVjMwogICAgIGNhM2NmOGI0ZmU0OTBlMzgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmQ3ZWIzOGFiNTRjNjQzNy5jNGU1ZDVkYTZmODAzMmYzCi0gICAgNWQxMmE0ZDM5MzJlYWFlYS43YzFmNzQ3ZGU2YTZkNDdmLmJkN2ViMzhhYjU0YzY0MzcuYzRlNWQ1ZGE4YWZiOWY5YgorICAgIDkxMjRmZGYyNmY0NTk4N2QuYzU1ZDNkM2UyOWFmNmUzMy5kZDRiZDQ1MDdkZjg5MGQ5Ljc1N2U2ZjFkNmQ1MWY5OTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGJmYjYwZWQyYzZkMDNkYy4yNThhYzRlYzZmODAzMmYzCiAgICAgNDRiMjU4NTM4M2ViZTZiNC5hOGFmMjllZjM5YmNjMzZkLjRiZmI2MGVkMmM2ZDAzZGMuZGE3NTNiMTQ2ZjgwMzJmMwogICAgIGE0NGUxNWRmZGMwNzg4ODcuMjVkOWQ4ODEzZGZmZmEyYS5lMzEwZDllNTdkZThhYjc1LjkzZjgxZGI5MzdlYzZlYzMKICAgICBjYTNjZjhiNGZlNDkwZTM4Ci1WQUREU1NfMTI4KG1lbSkKK1ZQQUJTRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA1ZDBiNDdmMWUxYTVkMDdkLmQ3MzNkN2UxMzkwZWNiMTAuY2Y2OWZkMjAwZTdiMzNlMi5lMTA3MTlkZTQ0NDg5NmFlCiAgICAgMjczMjg2NWNmYjBjNmRiZi4zYWFkOWFjNzM3OGRlY2ZiLjgxMmIxNWI2YzkzYTJiYzAuYTEyZDFkNDUxZTFhMDAzMgpAQCAtOTkwMiwxMiArOTkwMiwxMiBAQAogICAgIDA0YjA5MjNlMzNhZTk3M2QKICAgYWZ0ZXIKICAgICA1ZDBiNDdmMWUxYTVkMDdkLmQ3MzNkN2UxMzkwZWNiMTAuY2Y2OWZkMjAwZTdiMzNlMi5lMTA3MTlkZTQ0NDg5NmFlCi0gICAgMjczMjg2NWNmYjBjNmRiZi4zYWFkOWFjNzM3OGRlY2ZiLjgxMmIxNWI2YzkzYTJiYzAuYTEyZDFkNDUxZTFhMDAzMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MTJiMTViNmM5M2EyYmMwLmExMmQxZDQ1NDQ0ODk2YWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzA5NjAyZTAwZTdiMzNlMi4xZWY4ZTYyMjQ0NDg5NmFlCisgICAgMDQ3ZDMyZTE2OTg4YTQyYS4yYTA4NWJmYjcxMGYyN2YzLjE5ZWE5YjMxOGE0YTllZjAuN2ZjZWRmODRhN2U4MjdhZQogICAgIGNmYjdjNTZkNDYyNzJmZTkuMDE4ZjE1ZWI4NDIwYjdhNS43MjczMGI3YzZjYjc0N2EwLmQ3MzU1ZDA5N2E0MTQ1Y2UKICAgICAwNGIwOTIzZTMzYWU5NzNkCiAKLVZBRERTU18xMjgocmVnKQorVlBBQlNEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDY0ODk3YTkxNmZiZDU4YTguNjZhZWJkZWFhZmY1Y2IyOC4xYzkwYzQwMTBiNGRkYWJjLjY3OTJlMTgyOGI4Y2UzZmEKICAgICA1MjBkMTI2ZGNhZjljNWJhLmEzMmM5NTQ2YmZmZDM0MTUuZDg1NTY0YWJhMzIxY2FlNS5kNjEzOTkzMTA0ZDUyZTJhCkBAIC05OTE1LDEyICs5OTE1LDEyIEBACiAgICAgNDc0NjNlNzA0YTJhOTM4Ni44M2YxZDY0NzQ2ZWI1YmEzLjllNWU2OTY4NzRlZjAyMWMuOGU2YmExMzc3M2Y0YzBiZgogICAgIDkwZDllODY3YTBlMjdmN2IKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDg1NTY0YWJhMzIxY2FlNS5kNjEzOTkzMWYzOWVlNDVkCi0gICAgNTIwZDEyNmRjYWY5YzViYS5hMzJjOTU0NmJmZmQzNDE1LmQ4NTU2NGFiYTMyMWNhZTUuZDYxMzk5MzEwNGQ1MmUyYQorICAgIDY0ODk3YTkxNmZiZDU4YTguNjZhZWJkZWFhZmY1Y2IyOC4xYzkwYzQwMTBiNGRkYWJjLjY3OTJlMTgyOGI4Y2UzZmEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzBkNDBkYWMxOGQ3M2MzNC42NTNkNGY4YzBjNjExYmEzCiAgICAgMmE4ODU0M2VkZmVmMWEyMC42NGZmYzk2YjkzNGIyNWRhLjhmMmJmMjU0ZTcyOGMzY2MuOWFjMmIwNzRmMzllZTQ1ZAogICAgIDQ3NDYzZTcwNGEyYTkzODYuODNmMWQ2NDc0NmViNWJhMy45ZTVlNjk2ODc0ZWYwMjFjLjhlNmJhMTM3NzNmNGMwYmYKICAgICA5MGQ5ZTg2N2EwZTI3ZjdiCi1WQUREU1NfMTI4KG1lbSkKK1ZQQUJTRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA3YWRhMDFlZTk3NzRkZGJlLjA3OTNjYjZmYTgzNjZiOTcuZGVjZjM2YzVmNGVhOTI5ZC42MTNhYzU1M2U1MDFjNDgyCiAgICAgMjkzODY4Yjk3M2I3OTViNC5jNGJiZjhhNzk0OWZlMGZmLjRmNjQ2N2QwYmE1Mzg2ZjQuMzQwYjAyODFkNmVhNDJhOQpAQCAtOTkyOSwxMiArOTkyOSwxMiBAQAogICAgIGE1MzJkOWQ3YzYyYjg5NjEKICAgYWZ0ZXIKICAgICA3YWRhMDFlZTk3NzRkZGJlLjA3OTNjYjZmYTgzNjZiOTcuZGVjZjM2YzVmNGVhOTI5ZC42MTNhYzU1M2U1MDFjNDgyCi0gICAgMjkzODY4Yjk3M2I3OTViNC5jNGJiZjhhNzk0OWZlMGZmLjRmNjQ2N2QwYmE1Mzg2ZjQuMzQwYjAyODFkNmVhNDJhOQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZjY0NjdkMGJhNTM4NmY0LjM0MGIwMjgxZTUwMWM0ODIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjEzMGM5M2IwYjE1NmQ2My42MTNhYzU1MzFhZmUzYjdlCisgICAgN2FjMDlhYjU1MWI2NjQ4OC5kYzA5YmY4NWFiZjIyYjZjLmI0N2VlNDU2YjQzMmYyZDMuNzMxYzFjNWZlNTM3YmIzZQogICAgIDQ3M2UxMmNjNGM3ZTA2NjYuYTljYTFlNzM4OGJiOGI4OC5lN2U3MmE0MmZkOTQ5MzY3LjdhYmIxMDU3YWI3MzY5ZWQKICAgICBhNTMyZDlkN2M2MmI4OTYxCiAKLVZBRERTU18xMjgocmVnKQorVlBBQlNEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDUwY2U3MzQ5ZDFlOTU3NDcuNmU3ZDRjZWM4MTFhMzc3Yy44OTRhMTBkZmM4ODQzYWZmLmM2NmRiMzgxYjE4NDI1ZGIKICAgICBkN2RiZGExYjY5M2IwZTRhLmM5NGJjNTAwMGI5NmIyZjQuZDZkNTkxMzMwNmRiNzU3ZS4yYmRhZmRmZGVkMGY2MzVkCkBAIC05OTQyLDEyICs5OTQyLDEyIEBACiAgICAgZTk3NzAwOGJhZmNhMmE1YS44ZWMwNjBiNDkwNWY3OWJiLjJiM2MzMTQ4ZWU2MTdlNDMuZmE5YmMxNWY2YzIzZDYzNAogICAgIDFkODgzNDFlZTZjNDgzZTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDZkNTkxMzMwNmRiNzU3ZS4yYmRhZmRmZGVkMGY2MzVkCi0gICAgZDdkYmRhMWI2OTNiMGU0YS5jOTRiYzUwMDBiOTZiMmY0LmQ2ZDU5MTMzMDZkYjc1N2UuMmJkYWZkZmRlZDBmNjM1ZAorICAgIDUwY2U3MzQ5ZDFlOTU3NDcuNmU3ZDRjZWM4MTFhMzc3Yy44OTRhMTBkZmM4ODQzYWZmLmM2NmRiMzgxYjE4NDI1ZGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTE0ODYxMjMyMGI0ODc0Zi4wYzA0N2M1ZDMyYmZmNGVhCiAgICAgOTZhNDBiYjgyYWFkZWIxNy4zNTcyZjdmNDA3ZmUzNGZhLmVlYjc5ZWRkZGY0Yjc4YjEuZjNmYjgzYTNjZDQwMGIxNgogICAgIGU5NzcwMDhiYWZjYTJhNWEuOGVjMDYwYjQ5MDVmNzliYi4yYjNjMzE0OGVlNjE3ZTQzLmZhOWJjMTVmNmMyM2Q2MzQKICAgICAxZDg4MzQxZWU2YzQ4M2UzCi1WQUREU1NfMTI4KG1lbSkKK1ZQQUJTRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAzNjhkNTZjYjU4MzBjYzRmLjJjOWViNzAyOTQxZTA2YmUuYjFmZjdiMmNjMmM0M2M2My5lYWFmNDhlMGNmYThjNWUxCiAgICAgMjI3NWE1NTFkZDcyNmVhMy5iYTY3MmM4ODc2MzViZGYwLjc4ZmNjNDQ4YmEzYTNiMWQuODg1ZWRlMTExZmFjODczNgpAQCAtOTk1NiwxMiArOTk1NiwxMiBAQAogICAgIDJjYzI3NDcyYmVhMTBhM2MKICAgYWZ0ZXIKICAgICAzNjhkNTZjYjU4MzBjYzRmLjJjOWViNzAyOTQxZTA2YmUuYjFmZjdiMmNjMmM0M2M2My5lYWFmNDhlMGNmYThjNWUxCi0gICAgMjI3NWE1NTFkZDcyNmVhMy5iYTY3MmM4ODc2MzViZGYwLjc4ZmNjNDQ4YmEzYTNiMWQuODg1ZWRlMTExZmFjODczNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43OGZjYzQ0OGJhM2EzYjFkLjg4NWVkZTExY2ZhOGM1ZTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGUwMDg0ZDQzZDNiYzM5ZC4xNTUwYjcyMDMwNTczYTFmCisgICAgYmQwZDljOWU5Mjk3MjUwYi5mMTFjNTk4YWYwOWM4OTliLmMwODJiOGY0OTRjYzJmMTYuNWY5M2VmNDc3YWZhMDBlZgogICAgIGUzMjFiNzlkOTJhYWFkYjUuMmMwYTNjNzI5ZmRlYTY2Yy42NTVmZDExYzZiODZkNzc5LmNjOWI3OGVlN2IxZDZkYjgKICAgICAyY2MyNzQ3MmJlYTEwYTNjCiAKLVZESVZTU18xMjgocmVnKQorVk1PVkhMUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZDk1M2RmNDBlMDEzMTMyOC43MDdkNzMzYWZhYjdjMWNhLmM3N2NjZmFkMWU4ODUyMGYuNDM1ZDhkYWQ1Yjc0ZWQ3MwogICAgIDMwOWNiNWMyN2RmZWM0MjguNDBlZDRiNjFlNWNiMWU3OS4xZGMwMTFhODA5MjVjNzJmLjM2NGE2NzkxODFhMzJmMzAKQEAgLTk5NjksMTIgKzk5NjksMTIgQEAKICAgICA0YzgyOTM5Njk1NzAwYzExLjE5MzgzZmZkYjYzNWEyNGYuNmZlYThhOGE5NjY5ZmU5OC5jYjFjNjYwN2RkZjIyMWExCiAgICAgMjU5YTgzNzA0YzJhNGFhZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZGMwMTFhODA5MjVjNzJmLjM2NGE2NzkxMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWRjMDExYTgwOTI1YzcyZi44YzIxZmJjZGZlNDE0Mjc4CiAgICAgMzA5Y2I1YzI3ZGZlYzQyOC40MGVkNGI2MWU1Y2IxZTc5LjFkYzAxMWE4MDkyNWM3MmYuMzY0YTY3OTE4MWEzMmYzMAogICAgIDhkZTdmMjY2MzBlZjU4ZTcuMmYzY2JiZmU2ZmYxN2ZlYy44YzIxZmJjZGZlNDE0Mjc4LjFhZjBkY2I2ZjgxZjU2ZGIKICAgICA0YzgyOTM5Njk1NzAwYzExLjE5MzgzZmZkYjYzNWEyNGYuNmZlYThhOGE5NjY5ZmU5OC5jYjFjNjYwN2RkZjIyMWExCiAgICAgMjU5YTgzNzA0YzJhNGFhZAotVkRJVlNTXzEyOChtZW0pCitWTU9WSExQU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwNDM1YWVkYzVmZDI4ZTJjLmM5Yjc5M2MwNDkwZjFiNTMuZGFhYjUzNGJkM2EzNDFjZi4yMTY4YmI0OTZmMjczODM5CiAgICAgNDRiYjYzMzkzNWY3YTk0YS42MGQzZWU0ZmU3NThjMzU5LjRlNjI3NGQyZTQ0ODE5OTguMDBlNzg5NzgyNTBhMmMwNwpAQCAtOTk4NCwxMSArOTk4NCwxMSBAQAogICBhZnRlcgogICAgIDA0MzVhZWRjNWZkMjhlMmMuYzliNzkzYzA0OTBmMWI1My5kYWFiNTM0YmQzYTM0MWNmLjIxNjhiYjQ5NmYyNzM4MzkKICAgICA0NGJiNjMzOTM1ZjdhOTRhLjYwZDNlZTRmZTc1OGMzNTkuNGU2Mjc0ZDJlNDQ4MTk5OC4wMGU3ODk3ODI1MGEyYzA3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRlNjI3NGQyZTQ0ODE5OTguMDBlNzg5NzgwMDAwMDAwMgorICAgIGMxZjYxZjcyZTdhNDU2MzIuNmQyMWEwYWYwY2Q2M2VjZi41MTI5MWQ4MDA1MzBlNWQ2LjY2YjNmMDgyNTM5YjE2YWYKICAgICA1N2IzNWM3NDk0ZTU1MjExLjRjZWZhNTRjNTMxNWM5NjAuYmZjY2NhM2Y1MTY1NjJiNC5iMTE4ZWNkMzk1NjgzMmRkCiAgICAgM2I2MTdhZDc4OGZjYmIzYwogCi1WRElWU1NfMTI4KHJlZykKK1ZNT1ZITFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDYyZGM5NWZhYzhlNGVlNzkuZTJiZTk4Mjk1NWM3NTkxMi41OTg3ZmE5MjU5YTE5ZmI4Ljc0MTZmN2ZkZTRmNTRjNWUKICAgICA4MGQzMzlhOWVmYWIwNjNmLjNkZTM0ZTdlNDg1NTI2NjIuZjAzNzlhZWRiOTA3ZmQ4NC40Y2Q1MjBhNWRiZWM1ZjAxCkBAIC05OTk2LDEyICs5OTk2LDEyIEBACiAgICAgMTU2ODBkNTY2OTA3ZDgxOS5kOGFiMTliOTMzYTYwNjlkLjJjMGFhYjkzZjg4ZjQxMjcuZDRkZDU4NjM2MzNiZWZlMQogICAgIDNkYmY1ZTUxMmNhZGUzNzYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjAzNzlhZWRiOTA3ZmQ4NC40Y2Q1MjBhNWNhMGU3YzllCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYwMzc5YWVkYjkwN2ZkODQuNmQ0OTgxY2EwZmQyMWY3MAogICAgIDgwZDMzOWE5ZWZhYjA2M2YuM2RlMzRlN2U0ODU1MjY2Mi5mMDM3OWFlZGI5MDdmZDg0LjRjZDUyMGE1ZGJlYzVmMDEKICAgICBmMjkzNjI0ZTljZGQ0MDNjLjQ2ZWVmYjYwODk5Yjc3MmMuNmQ0OTgxY2EwZmQyMWY3MC4yMmQzYzIyMzUxNTQ1NmM5CiAgICAgMTU2ODBkNTY2OTA3ZDgxOS5kOGFiMTliOTMzYTYwNjlkLjJjMGFhYjkzZjg4ZjQxMjcuZDRkZDU4NjM2MzNiZWZlMQogICAgIDNkYmY1ZTUxMmNhZGUzNzYKLVZESVZTU18xMjgobWVtKQorVk1PVkhMUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzk0NTUwZDljOWI0ZjFiNC40MzllMzQyZWYyYjQwYTg0LmNmZTUyNjc3NjM4MThmZTEuODljNjE1YjUxMGM4OWU1NgogICAgIGEzM2JhYmU3NTU1ZmQzYzYuZDk4MGQ1NDFkNDcwMTIyOS4wNjY5OWQ4NTM0MzhkMDI0LmRmYzhiYTlkZjIwYzczYTkKQEAgLTEwMDExLDExICsxMDAxMSwxMSBAQAogICBhZnRlcgogICAgIDM5NDU1MGQ5YzliNGYxYjQuNDM5ZTM0MmVmMmI0MGE4NC5jZmU1MjY3NzYzODE4ZmUxLjg5YzYxNWI1MTBjODllNTYKICAgICBhMzNiYWJlNzU1NWZkM2M2LmQ5ODBkNTQxZDQ3MDEyMjkuMDY2OTlkODUzNDM4ZDAyNC5kZmM4YmE5ZGYyMGM3M2E5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA2Njk5ZDg1MzQzOGQwMjQuZGZjOGJhOWRmZjgwMDAwMAorICAgIDU5NmNlYTY4ZWRiNzQ2ZDkuMzQ1Y2ViZmFhYWM4MmJiNC41YjAzZmFjZmMyZDg4MzkwLjhjNWU5NmI2M2FlNGZjY2IKICAgICAzNWE2ODk0NmFjY2EwNjE4LmFlN2M3M2M3MTA0NzkyZDAuYTk3ZmJhNDAyYTZjNjU1NC5lYmQyYTU2Yzg1ZGU3NTY5CiAgICAgNTg3MmUzMmE2Zjg1MTkyZQogCi1WRElWU1NfMTI4KHJlZykKK1ZNT1ZITFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDJlODg0ZDVlOTM2NjI1YzcuMTViMzA0NmZhZmEzY2ViMC5hNDJkNjcxM2E0Nzk4MjI5LmNiYTk1N2M2ODcwMTMxOWEKICAgICBjYjYxZGU3MzhkMGNkNWUwLmQzNjBkOGNkMTE0ZTViY2MuNzJiYmM1NGFmZmViMzk2ZC45ZjRkNGY0ZGY2YTFhNThmCkBAIC0xMDAyMywxMiArMTAwMjMsMTIgQEAKICAgICBjNjhiNjVmMTc1ZDcwZjNmLjVkY2E3N2RkNjQ0Y2I0NDMuMDY5ZGFjMjk4MGJkZTc2MC5jOTMyM2QwOTc4Mzg2ZjM0CiAgICAgZDcwYjJjMTdjNDQ2M2YzYwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MmJiYzU0YWZmZWIzOTZkLjlmNGQ0ZjRkN2Y4MDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzJiYmM1NGFmZmViMzk2ZC43NDcyODhkOGJmMjhmMTQ1CiAgICAgY2I2MWRlNzM4ZDBjZDVlMC5kMzYwZDhjZDExNGU1YmNjLjcyYmJjNTRhZmZlYjM5NmQuOWY0ZDRmNGRmNmExYTU4ZgogICAgIDhhNDg5MmQ2ZmEwMzY0MjQuNGQ3OTdmNGVlZmQ4Njk5OS43NDcyODhkOGJmMjhmMTQ1LmZmMzYxZGJmOTM1YjdiNWUKICAgICBjNjhiNjVmMTc1ZDcwZjNmLjVkY2E3N2RkNjQ0Y2I0NDMuMDY5ZGFjMjk4MGJkZTc2MC5jOTMyM2QwOTc4Mzg2ZjM0CiAgICAgZDcwYjJjMTdjNDQ2M2YzYwotVkRJVlNTXzEyOChtZW0pCitWTU9WSExQU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwNjhlNjVkNjkwOTBhNWEzLmRkNzQ1NDMxOWIxNTEyZGYuZTExZTNiNjY4Y2I3ZjdmNS44NDhhMmRhYWRkMzQ1NjY4CiAgICAgMzM4NzYzMzFmYjIyNWU5NS4yOTUxNWEwMzA3NDlhOWFlLmIzNDM0N2Q1ODQyM2VmZGMuNGE4MzA4YzU3MjFiN2IwOQpAQCAtMTAwMzgsMTEgKzEwMDM4LDExIEBACiAgIGFmdGVyCiAgICAgMDY4ZTY1ZDY5MDkwYTVhMy5kZDc0NTQzMTliMTUxMmRmLmUxMWUzYjY2OGNiN2Y3ZjUuODQ4YTJkYWFkZDM0NTY2OAogICAgIDMzODc2MzMxZmIyMjVlOTUuMjk1MTVhMDMwNzQ5YTlhZS5iMzQzNDdkNTg0MjNlZmRjLjRhODMwOGM1NzIxYjdiMDkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjM0MzQ3ZDU4NDIzZWZkYy40YTgzMDhjNWQ0NWNiNmQwCisgICAgMzhjMWE1MTMxZTA5MjUzZC4wODZjNzNkMTU2ZmQwZjU4LmIxMDMxODE2Njg5ZTU4MjQuYjRkNjM4ZTdkY2ZlOTJmMQogICAgIGYyMGFhNDZhMTg1MGI4YzguZDQxMjliMDkyM2JmODE4YS5iNTJiMjkxNTUzMzRlZGY4LjFlY2RiOTdkYjc2OGQ3YzkKICAgICBlNGI0ODdmMjllZTU4NTQwCiAKLVZVTlBDS0xQU18xMjgocmVnKQorVk1PVlFfWE1NX3RvX0lSRUc2NChyZWcpCiAgIGJlZm9yZQogICAgIDYyZDk5ZmIxMmQwMWQ5MDAuM2UyY2RlMjEwMjA0ZDE2Mi5lYjhlY2UxNTBiMWEzYmYwLjljODdmNmJmNjFmMDZjODQKICAgICBmNDg3ZmMyODAxNDkwZmI1LmY2ZjVjZDI0ZmEzMDJjMzYuYTcyZTA5NjNhOTliNzgzNS40MmUzZmJmZWFmZGU4ZWY2CkBAIC0xMDA1MCwxMiArMTAwNTAsMTIgQEAKICAgICBjNGFjNzVlYmU2OGIxMGIxLjFkYTdjMGJlODMyMDljM2UuODIwNjg0NzI3ODNjNmUwZS4zY2NhOWVlZjc5ODFiMjM2CiAgICAgNDdlZTM0NzkyZDRmMmI1ZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NDBiYjRjMDQyZTNmYmZlLjU4MGExMjc3YWZkZThlZjYKKyAgICA2MmQ5OWZiMTJkMDFkOTAwLjNlMmNkZTIxMDIwNGQxNjIuZWI4ZWNlMTUwYjFhM2JmMC45Yzg3ZjZiZjYxZjA2Yzg0CiAgICAgZjQ4N2ZjMjgwMTQ5MGZiNS5mNmY1Y2QyNGZhMzAyYzM2LmE3MmUwOTYzYTk5Yjc4MzUuNDJlM2ZiZmVhZmRlOGVmNgogICAgIGY2MDk5YWMyYjU0ODYzMGMuZjcyZmVmNWYxY2UwODc3MC42NTNkNDc1ZTk5Y2Q3NTA2Ljg0MGJiNGMwNTgwYTEyNzcKICAgICBjNGFjNzVlYmU2OGIxMGIxLjFkYTdjMGJlODMyMDljM2UuODIwNjg0NzI3ODNjNmUwZS4zY2NhOWVlZjc5ODFiMjM2Ci0gICAgNDdlZTM0NzkyZDRmMmI1ZAotVlVOUENLTFBTXzEyOChtZW0pCisgICAgOWM4N2Y2YmY2MWYwNmM4NAorVk1PVlFfWE1NX3RvX0lSRUc2NChtZW0pCiAgIGJlZm9yZQogICAgIDgxNDFmMjQ5OTE3ZTM5MTkuYmFiYzg5MGYyZjlkNTM1MC40NTI4YmEyZDRiZmQyOGM5LjU4ZDZiYzBiZTI3NTlmZmEKICAgICBjNjkwNTQ0YWMwMWM5ODk1LjMzODVkMzliMmQwYTY3OTMuNDk4MDViOTk5MTgyZTc0MC40NGY5ZWM5NTcyMDM0Mzc2CkBAIC0xMDA2NSwxMSArMTAwNjUsMTEgQEAKICAgYWZ0ZXIKICAgICA4MTQxZjI0OTkxN2UzOTE5LmJhYmM4OTBmMmY5ZDUzNTAuNDUyOGJhMmQ0YmZkMjhjOS41OGQ2YmMwYmUyNzU5ZmZhCiAgICAgYzY5MDU0NGFjMDFjOTg5NS4zMzg1ZDM5YjJkMGE2NzkzLjQ5ODA1Yjk5OTE4MmU3NDAuNDRmOWVjOTU3MjAzNDM3NgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OGQ2YmMwYjQ0ZjllYzk1LmUyNzU5ZmZhNzIwMzQzNzYKKyAgICBmMmE3ZDc2YWQ3MzQwM2ZlLjhkNTM0ZWY5N2I1ZThhMjkuMDY3OTFlZWM3MWJjOTRjZC5hMmJiMGU3ZGM0NzI5NzJkCiAgICAgZTE1MWY1OTVmMWQzMzc3Zi4yMzcyZjY5NmI2MjZmNmJjLjU4ZTE3ZjEzMDZiNmVjOWMuY2Y2ODIwMmQ3NTRmZDdjYwogICAgIDI1NGIxZDEzMjEyNTNlZmYKIAotVlVOUENLTFBTXzEyOChyZWcpCitWTU9WUV9YTU1fdG9fSVJFRzY0KHJlZykKICAgYmVmb3JlCiAgICAgMDFiMjAyOTk2MjgwMGE3MS43MDVjMmNiNTJiMDRlZjQ1LjUwMmRjN2RmNzllZGU4ZjkuMWI4MmZhZmI2YzdjYWJkYgogICAgIGJmZTdjOTJkZDdlZDc1Y2UuNzg5MmY4YjdhMGQzZTk3Yi43MmQyYmQzZjYxNDA5YjhiLjJiMjkwYzhmYzAxYjhjYjMKQEAgLTEwMDc3LDEyICsxMDA3NywxMiBAQAogICAgIDUxZWVmMjJiYzcyYjFhZmMuNmJiMzNiMTJhYzdkOGVlYS4wMTA1MGFmMzBkYjczODYxLmEyYjhlMjZiYTAxMWE3ZTUKICAgICBjMTM5OWU4YTY0ODE1OTk1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY0YTIzMGJiMmIyOTBjOGYuMWQ5ZTRkNTNjMDFiOGNiMworICAgIDAxYjIwMjk5NjI4MDBhNzEuNzA1YzJjYjUyYjA0ZWY0NS41MDJkYzdkZjc5ZWRlOGY5LjFiODJmYWZiNmM3Y2FiZGIKICAgICBiZmU3YzkyZGQ3ZWQ3NWNlLjc4OTJmOGI3YTBkM2U5N2IuNzJkMmJkM2Y2MTQwOWI4Yi4yYjI5MGM4ZmMwMWI4Y2IzCiAgICAgYmIzNzcwMzkxYWY3YmJjMy5kOGMxZDM4NzZjNGRkZjRmLmU0YWJkNTIxMDlhYTRkMWYuNjRhMjMwYmIxZDllNGQ1MwogICAgIDUxZWVmMjJiYzcyYjFhZmMuNmJiMzNiMTJhYzdkOGVlYS4wMTA1MGFmMzBkYjczODYxLmEyYjhlMjZiYTAxMWE3ZTUKLSAgICBjMTM5OWU4YTY0ODE1OTk1Ci1WVU5QQ0tMUFNfMTI4KG1lbSkKKyAgICAxYjgyZmFmYjZjN2NhYmRiCitWTU9WUV9YTU1fdG9fSVJFRzY0KG1lbSkKICAgYmVmb3JlCiAgICAgOWRlZmUwMDc4NmY5MWQ5MC5kZDU4NGI2ZTdiMTNjYzI1LjBkMzVhYTQyN2M2ZmIxN2IuMjcyYzU4MjAwYWY0OThmYwogICAgIDExYTcyNWNiMjE4NWIxMDIuYmJjMDc4NmVkMTNlMGRlOS45YTEyOWUwNWY3MzAwNTJjLmIwNmJiYzE0OWNlY2FiOWMKQEAgLTEwMDkyLDExICsxMDA5MiwxMSBAQAogICBhZnRlcgogICAgIDlkZWZlMDA3ODZmOTFkOTAuZGQ1ODRiNmU3YjEzY2MyNS4wZDM1YWE0MjdjNmZiMTdiLjI3MmM1ODIwMGFmNDk4ZmMKICAgICAxMWE3MjVjYjIxODViMTAyLmJiYzA3ODZlZDEzZTBkZTkuOWExMjllMDVmNzMwMDUyYy5iMDZiYmMxNDljZWNhYjljCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI3MmM1ODIwYjA2YmJjMTQuMGFmNDk4ZmM5Y2VjYWI5YworICAgIGZiMmRlOGMzNTIzMmNlMTcuNDc3NDc0OTc2NTM1MWJmNC5lZTE4OTM0NjM5Y2I0NjI5LmZhMTAzMDNiNWUyYmFiZWYKICAgICAzNjRkYTVkYjM0MGIzM2ZhLmRkYmUzYjU2ZDU4NjMwZjMuZTUxMTAzZjA1ZjRjMzA5Zi41ZjY1YjIwMWVjM2VkNTllCiAgICAgM2NiODNkZDJlM2FmNjQ1OAogCi1WVU5QQ0tMUFNfMTI4KHJlZykKK1ZNT1ZRX1hNTV90b19JUkVHNjQocmVnKQogICBiZWZvcmUKICAgICBlZTUzY2QxYmRlMGQ5NmM3LjllZDNkODAwZTQxYzlhZDcuZDllYmM5MTViYWJjODk5Mi41YmNiNmNmMTg0YzA3ZWJhCiAgICAgY2Y4MzVmNDY3YWUxYTU5OC4wZThiZmUxYzdkNzJjMGRiLjk3NDcxYTQxYjI2MzYyN2MuMmIxMDQ5MzRjNTMyZWVhNgpAQCAtMTAxMDQsMTIgKzEwMTA0LDEyIEBACiAgICAgOTJkMTc1ZjYwMzIxNGMwZS43YmJmMGZlZWRiMWEzODA3LmM4YmNmNjkxNGEzNjgyZTQuNGU2ZTRmMzEwOTQxMWU5ZQogICAgIDU3MWU3MWMyNDVmNjU3MDMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzNhZDE2YTUyYjEwNDkzNC4zZWFlMzk4ZGM1MzJlZWE2CisgICAgZWU1M2NkMWJkZTBkOTZjNy45ZWQzZDgwMGU0MWM5YWQ3LmQ5ZWJjOTE1YmFiYzg5OTIuNWJjYjZjZjE4NGMwN2ViYQogICAgIGNmODM1ZjQ2N2FlMWE1OTguMGU4YmZlMWM3ZDcyYzBkYi45NzQ3MWE0MWIyNjM2MjdjLjJiMTA0OTM0YzUzMmVlYTYKICAgICAzYzkzZWRjMTUyYjljZDc2LjY0NDA5MTFkMWIxODYxMzIuNzMxZTJiNDc1OTA4ZjY1ZS4zM2FkMTZhNTNlYWUzOThkCiAgICAgOTJkMTc1ZjYwMzIxNGMwZS43YmJmMGZlZWRiMWEzODA3LmM4YmNmNjkxNGEzNjgyZTQuNGU2ZTRmMzEwOTQxMWU5ZQotICAgIDU3MWU3MWMyNDVmNjU3MDMKLVZVTlBDS0xQU18xMjgobWVtKQorICAgIDViY2I2Y2YxODRjMDdlYmEKK1ZNT1ZRX1hNTV90b19JUkVHNjQobWVtKQogICBiZWZvcmUKICAgICAyYzhiZjc0NTBiZDlhMWU5LjJiODdmMjUzMjhhMzVjMGIuMmVkNGY0N2JkOTg1MDI4Ny5mNDZjNzk4ZDIxN2E0MmI5CiAgICAgYTc3ZjVkYTc3OWY3Yjg3Yi42NDAzNjE0MzVlY2QzYTFhLjViNGJiYWIwMzA2NDdiZGUuNTI3Y2IwYTY3YjVmNzI4YQpAQCAtMTAxMTksMTEgKzEwMTE5LDExIEBACiAgIGFmdGVyCiAgICAgMmM4YmY3NDUwYmQ5YTFlOS4yYjg3ZjI1MzI4YTM1YzBiLjJlZDRmNDdiZDk4NTAyODcuZjQ2Yzc5OGQyMTdhNDJiOQogICAgIGE3N2Y1ZGE3NzlmN2I4N2IuNjQwMzYxNDM1ZWNkM2ExYS41YjRiYmFiMDMwNjQ3YmRlLjUyN2NiMGE2N2I1ZjcyOGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjQ2Yzc5OGQ1MjdjYjBhNi4yMTdhNDJiOTdiNWY3MjhhCisgICAgYTZjODFmZDJhYjViNTdlNi45OThmYmMzMjQwMmIyMmU3LmRkZjBkZjc5ZmNjMzVmMzcuM2QzNjk1NDhmNDcxNGQwMgogICAgIDA0MzBiOWI0YmMxMTNiNTYuMjY3ODAxOGM2YjQ4NGYxZC44ZjhmZGRjMjVhYWY2OWJlLjEzZTcyNmRmMjczZDEwY2UKICAgICAyZmRiNWVkN2IwNGRmNzlhCiAKLVZDVlRTSTJTU18xMjgocmVnKQorVk1PVlFfWE1Nb3JNRU02NF90b19YTU0ocmVnKQogICBiZWZvcmUKICAgICBlYzVlMzk5YzJjMzAzZDExLjljODRhODM4YzkyNjIwZjYuNjgwYTJiYmQ3YWIwZmU2OS40ZmYzMzI3NzY1MzM1NmExCiAgICAgYThiYmIzOWEzNjZmMWZkZi40YjhmNjc0YWVkYTVjMmYyLmI5OTAzNjMxMDllZjZiNzYuZjdlYTVhODQzYTVjZTIwYQpAQCAtMTAxMzEsMTIgKzEwMTMxLDEyIEBACiAgICAgODkzNzc1ZjI2NjM2YTYzNC41ZmZlNDVjOGViMTIyYmIxLmZiYWNlMDkzMWEyNDZkODYuNzNiYzBmNTdiMGNhYzUxZgogICAgIGZlMzA5NWY1ODkyNzk1MjQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjk5MDM2MzEwOWVmNmI3Ni5mN2VhNWE4NGNlZWRiMGQ2Ci0gICAgYThiYmIzOWEzNjZmMWZkZi40YjhmNjc0YWVkYTVjMmYyLmI5OTAzNjMxMDllZjZiNzYuZjdlYTVhODQzYTVjZTIwYQorICAgIGVjNWUzOTljMmMzMDNkMTEuOWM4NGE4MzhjOTI2MjBmNi42ODBhMmJiZDdhYjBmZTY5LjRmZjMzMjc3NjUzMzU2YTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZmYzMzI3NzY1MzM1NmExCiAgICAgYmU0MGM4M2Q2Yjk4ZDliMi5lZTFmNzJkNjQ0OWJkYzc4Ljc2NTgxZjU0YjU5MmQxZjEuNjUzZWNmZDZmNDM0YzgyNQogICAgIDg5Mzc3NWYyNjYzNmE2MzQuNWZmZTQ1YzhlYjEyMmJiMS5mYmFjZTA5MzFhMjQ2ZDg2LjczYmMwZjU3YjBjYWM1MWYKICAgICBmZTMwOTVmNTg5Mjc5NTI0Ci1WQ1ZUU0kyU1NfMTI4KG1lbSkKK1ZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgZTM2NWRkOWE5YzU5ZjQ1Zi42NmVkYjUyM2M0ZDZjNDExLjdjZmE1ZDBjZmUxOTZiY2MuYTRkOTc3NThkMzMxN2JlMAogICAgIGZjMjk2MzM0MDQ2YjlkZmQuYjJhZTg0M2UyMDAzNmRmNi4xZmRkMzU4ZTk4Yjk1N2YzLmNkMmJkZjExN2M0NjM3YWMKQEAgLTEwMTQ1LDEyICsxMDE0NSwxMiBAQAogICAgIGRmZjZkNzI1MzMyOGQ0NzEKICAgYWZ0ZXIKICAgICBlMzY1ZGQ5YTljNTlmNDVmLjY2ZWRiNTIzYzRkNmM0MTEuN2NmYTVkMGNmZTE5NmJjYy5hNGQ5Nzc1OGQzMzE3YmUwCi0gICAgZmMyOTYzMzQwNDZiOWRmZC5iMmFlODQzZTIwMDM2ZGY2LjFmZGQzNThlOThiOTU3ZjMuY2QyYmRmMTE3YzQ2MzdhYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZmRkMzU4ZTk4Yjk1N2YzLmNkMmJkZjExY2UzMzNhMTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNGQ5Nzc1OGQzMzE3YmUwCisgICAgMjY0NmE0YWVkZTY5NGQyOS5jN2M2ZGZhZTE3NDlkZDhmLjI1NzQ0OTNhZDUwMGFkNTMuZDJlZTE0MjliMmVlZGM5NQogICAgIDNlOGExYmY0NDU2MGMwMTAuMDM4MGMwZGY0NDM1NTI4Ny42YjhiMTVmZGQyZjkyNjE3LjBmNmUxMzBiMTFiNmE4NDgKICAgICBkZmY2ZDcyNTMzMjhkNDcxCiAKLVZDVlRTSTJTU18xMjgocmVnKQorVk1PVlFfWE1Nb3JNRU02NF90b19YTU0ocmVnKQogICBiZWZvcmUKICAgICBhMGQ0NWNlMmI3ZDM5ZmJiLjFlYmY0NGYyNTY1Y2IxZGUuYzAyYTI1M2M0MzUyMDY4Yi5jYmVkMTVjMWFhYjE4MTZjCiAgICAgYWQ1MjllYWUzNjQwNDNkMy5hM2IyOWI5NDJjNjdkZWJlLjViMGUwOTMzYjEyYzM2NDYuMjI2OGM2NzQ3YTMyNzg3ZApAQCAtMTAxNTgsMTIgKzEwMTU4LDEyIEBACiAgICAgMWI2MTRhMjQ5Yjk1MDkxYi4wYzAxYzQ3NTk4ZGZkNjY3LjljYjczZjlkNDk0OWY5OTQuMjVkNDI4NTM3MGM1MmQ4NgogICAgIDg5NWVkMTU4Y2VlZTYzZDUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWIwZTA5MzNiMTJjMzY0Ni4yMjY4YzY3NGNlNDQ0NjcxCi0gICAgYWQ1MjllYWUzNjQwNDNkMy5hM2IyOWI5NDJjNjdkZWJlLjViMGUwOTMzYjEyYzM2NDYuMjI2OGM2NzQ3YTMyNzg3ZAorICAgIGEwZDQ1Y2UyYjdkMzlmYmIuMWViZjQ0ZjI1NjVjYjFkZS5jMDJhMjUzYzQzNTIwNjhiLmNiZWQxNWMxYWFiMTgxNmMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYmVkMTVjMWFhYjE4MTZjCiAgICAgNjJiZDk5ZjU0ZmZkZmQ2NC5hOTJlOWRjNmUzOGYwMGRkLjMxNzk2OTMwMmE1MDFlNjUuNGNjNmEzMDA1ZDhiYzg3NwogICAgIDFiNjE0YTI0OWI5NTA5MWIuMGMwMWM0NzU5OGRmZDY2Ny45Y2I3M2Y5ZDQ5NDlmOTk0LjI1ZDQyODUzNzBjNTJkODYKICAgICA4OTVlZDE1OGNlZWU2M2Q1Ci1WQ1ZUU0kyU1NfMTI4KG1lbSkKK1ZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgNTQzMDFiZmI5NDExMjU5MS4zMzhhYWNhNWI5OTVhMmEzLmE4ZjU4ZThiNjc2NDFhODcuZjkxNDg5ZTdhYWEzMDQ3ZQogICAgIDYzMTY4MDI4ZGQzYjMwZTUuMDg4NGJiZTU0Mjg4MDVhYS41OWQ4NzZmNjZhMjk4YTY5LmE0ZGM0MjdhZWFlYjdiZDAKQEAgLTEwMTcyLDEyICsxMDE3MiwxMiBAQAogICAgIDEyYWNlMDIzZjljYWJkZWIKICAgYWZ0ZXIKICAgICA1NDMwMWJmYjk0MTEyNTkxLjMzOGFhY2E1Yjk5NWEyYTMuYThmNThlOGI2NzY0MWE4Ny5mOTE0ODllN2FhYTMwNDdlCi0gICAgNjMxNjgwMjhkZDNiMzBlNS4wODg0YmJlNTQyODgwNWFhLjU5ZDg3NmY2NmEyOThhNjkuYTRkYzQyN2FlYWViN2JkMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OWQ4NzZmNjZhMjk4YTY5LmE0ZGM0MjdhY2VhYWI5ZjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mOTE0ODllN2FhYTMwNDdlCisgICAgOTBkYjdlY2JjNjc3M2ZmZS5mNTlhNzM1MWQ0ZmE2ZWQ5LmZiNzRmOWEwYzAzYWRmM2EuZmE1YjY2YzNhNWFjOTkzNQogICAgIGI4NGQ5MGQxNmFkMTEwMDguNTUxOWQwNTMwYjc3MTlkZi42YTk2OTE3NzgzYTNkODI2LjU1ZGNmMTJjNzU3MjliNWEKICAgICAxMmFjZTAyM2Y5Y2FiZGViCiAKLVZDVlRTSTJTU18xMjgocmVnKQorVk1PVlFfWE1Nb3JNRU02NF90b19YTU0ocmVnKQogICBiZWZvcmUKICAgICA4ZDE3MmUxM2NiM2YzYjkzLmI3MzYzMzI0ZTU1NjVkMmUuODY0ZWNmNTk4MjhjNDE2Ni44MjBhYmM2NmNmNzEyZjU4CiAgICAgMjI2OWQ3Njg4NzVlNTBmZi42ODYzZTFiMTU0MTFlMzlkLmUyODM2YmNlZDZjNDIzMWEuMWY5YmY1NTljMWIwYTFmZApAQCAtMTAxODUsMTIgKzEwMTg1LDEyIEBACiAgICAgMGFmMjJiZjEyZmM2MzJkMS41NWI5NTMyYTdkNWE4ODA0LjhmMWY2YmI1ODJjZjA0YmMuNTg0ODgyZmIwNWFkYzU0ZgogICAgIGFjZmJjZDgyOGY4NWVmNTQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTI4MzZiY2VkNmM0MjMxYS4xZjliZjU1OWNlZTBmNDIxCi0gICAgMjI2OWQ3Njg4NzVlNTBmZi42ODYzZTFiMTU0MTFlMzlkLmUyODM2YmNlZDZjNDIzMWEuMWY5YmY1NTljMWIwYTFmZAorICAgIDhkMTcyZTEzY2IzZjNiOTMuYjczNjMzMjRlNTU2NWQyZS44NjRlY2Y1OTgyOGM0MTY2LjgyMGFiYzY2Y2Y3MTJmNTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MjBhYmM2NmNmNzEyZjU4CiAgICAgMmRlZWQ3OGVjYWIxMzlkYS5hOWEwMTg2NWQzMGU1ZDgwLmM3MDRhMDFlYTJhY2ZiYTguMWQxN2I4M2M3NDZhZWE0MQogICAgIDBhZjIyYmYxMmZjNjMyZDEuNTViOTUzMmE3ZDVhODgwNC44ZjFmNmJiNTgyY2YwNGJjLjU4NDg4MmZiMDVhZGM1NGYKICAgICBhY2ZiY2Q4MjhmODVlZjU0Ci1WQ1ZUU0kyU1NfMTI4KG1lbSkKK1ZNT1ZRX1hNTW9yTUVNNjRfdG9fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgZjVmZDE3YmQyZmZjMjQ3Yi4xNWMwY2RmZDUyMjk3NzkwLjQ4N2EwZmVlNmUwMDIwNTUuOTgxZmM2ZmYxM2I5N2IwMQogICAgIDBmMTdkYjk4MDAyMDFmZjEuYWFhNWJiMWVkMTY1NDNjMi41ZWFlYzY5Y2MzMGNlMTllLjNjNGZhZjY4ZjBmNzljMjQKQEAgLTEwMTk5LDEyICsxMDE5OSwxMiBAQAogICAgIDY5ZmQ5MTk2NmIxYzUxNzYKICAgYWZ0ZXIKICAgICBmNWZkMTdiZDJmZmMyNDdiLjE1YzBjZGZkNTIyOTc3OTAuNDg3YTBmZWU2ZTAwMjA1NS45ODFmYzZmZjEzYjk3YjAxCi0gICAgMGYxN2RiOTgwMDIwMWZmMS5hYWE1YmIxZWQxNjU0M2MyLjVlYWVjNjljYzMwY2UxOWUuM2M0ZmFmNjhmMGY3OWMyNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZWFlYzY5Y2MzMGNlMTllLjNjNGZhZjY4NGQ5ZGNiZDgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ODFmYzZmZjEzYjk3YjAxCisgICAgZDUxODk1MDAxZWZkOWVlMi4yNWVkZjBjMDQ1MDZkMzE0LjczMjJmNjIwOTg4Yjg2MGIuZDlmYzIxNWNiNjE0YTNkMAogICAgIDI1Y2JjMmRmYTY5ZDViNzkuZTFlNDY5NTA0Yzk4NjIzMS42MmEyMWE2NjA3ODhjZGNhLmM5NzIxODQ4MDE5Y2NiYjIKICAgICA2OWZkOTE5NjZiMWM1MTc2CiAKLVZBTkRQU18xMjgocmVnKQorVkNWVFRTUzJTSV8zMihyZWcpCiAgIGJlZm9yZQogICAgIDE2ZTk4NmI0OTMxZjcxYzcuZGFmYmRkMjNiNDBlMTJlMy4zY2Q2MjAzODgyYTgyZWM2LjA5ZmFhZTVhMmYwZjZmMDUKICAgICAyYTgyZjUwYzEyMzE2NjUyLmNmNzU2MmI3NjM1YzgxNGIuOTEwZjEzZTY4MmMxNzE3Zi40M2Y2MmVlODJhMmQyYmU4CkBAIC0xMDIxMiwxMiArMTAyMTIsMTIgQEAKICAgICBmYWU5MmYxZjhiYjRjMmM1LmVlNzc5YTdmMTViYzcyYzcuOTk4NTlhNDA1MTQwNGUwYi5kZjBhZTQ4MzA5NWJkYzU5CiAgICAgZmFiOTExNjcyNzg0NGEzZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMDBiMTFjNDgwNDA2MDA3LjQzNjIwNmU4MDAyZDJiYTAKKyAgICAxNmU5ODZiNDkzMWY3MWM3LmRhZmJkZDIzYjQwZTEyZTMuM2NkNjIwMzg4MmE4MmVjNi4wOWZhYWU1YTJmMGY2ZjA1CiAgICAgMmE4MmY1MGMxMjMxNjY1Mi5jZjc1NjJiNzYzNWM4MTRiLjkxMGYxM2U2ODJjMTcxN2YuNDNmNjJlZTgyYTJkMmJlOAogICAgIDAyMTNkOTBjODdkZjZkYzMuZTIwNmNkODdjZjkxNjJkZS4zY2RiM2RjNGU4NzA2ODA3LmViNjIxN2ZjMTRlZGJiYTAKICAgICBmYWU5MmYxZjhiYjRjMmM1LmVlNzc5YTdmMTViYzcyYzcuOTk4NTlhNDA1MTQwNGUwYi5kZjBhZTQ4MzA5NWJkYzU5Ci0gICAgZmFiOTExNjcyNzg0NGEzZQotVkFORFBTXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVkNWVFRTUzJTSV8zMihtZW0pCiAgIGJlZm9yZQogICAgIDE3M2MxYTk2ODc3M2MwN2MuNmY1MWYxYjFiZDNjYTEwNC5jZTk3NDY4YjUxZTY2YzMzLjAzNWEyN2M1NTliZDYxMzYKICAgICAxNDVmN2JmYjQ3MzRmYjNmLmJiOTUxZDJlYjYwNDQ1MmUuNjAzMTRjOTc5ZTFkMGU0ZS5kOGE2ZGViZjliNzNkYjM1CkBAIC0xMDIyNywxMSArMTAyMjcsMTEgQEAKICAgYWZ0ZXIKICAgICAxNzNjMWE5Njg3NzNjMDdjLjZmNTFmMWIxYmQzY2ExMDQuY2U5NzQ2OGI1MWU2NmMzMy4wMzVhMjdjNTU5YmQ2MTM2CiAgICAgMTQ1ZjdiZmI0NzM0ZmIzZi5iYjk1MWQyZWI2MDQ0NTJlLjYwMzE0Yzk3OWUxZDBlNGUuZDhhNmRlYmY5YjczZGIzNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MDExNDQ4MzEwMDQwYzAyLjAwMDIwNjg1MTkzMTQxMzQKKyAgICBjYmVlYjE4MTgzZDRiN2IyLjNiMDFhZTAyMTQ5N2ViZWMuN2UxMDI4OGYxODZjMTI0My43M2I1YmQ5YWIzZWZmOGIzCiAgICAgMWFiNTM3MTY1NjVlYjAwMS40YmUzYTA5OTczODFjZmVkLjA2MDI1NjVmZGNkZjM0M2YuMmZkM2JmYzIzZWJkZjY1ZQotICAgIDZhNGJlMWEzZDc2NzBmZGYKKyAgICAwMDAwMDAwMDgwMDAwMDAwCiAKLVZBTkRQU18xMjgocmVnKQorVkNWVFRTUzJTSV8zMihyZWcpCiAgIGJlZm9yZQogICAgIDdlNmIxZGFhMWI3YjgwZTUuZGI3Zjg5YTVkZGRmYTE1YS40Nzg2ZjA1ZjZlNGYyZGRiLmQyZDE1M2Y0MDU4MzMyNmUKICAgICBjOTdkNzE0MWE1ODQ4NDE5LmViMWEyMzFhMzM2MjQ3ZTcuOGIzNTk4YzFhMThjNDA2Mi5jMDRhOTkzOGIwNjNjNmZiCkBAIC0xMDIzOSwxMiArMTAyMzksMTIgQEAKICAgICA3MGFhNGVkM2ZkYTczOWMyLjY5ZWUyMTY2YmQ5ZWExNGUuNWJlYWU1MDUyMjg0NzdlZS42ZDY5ZjU4MWZhMDhhMmUxCiAgICAgZTZhODAzNWVkMWU2NjM5MgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMzM1OTAwMWExODQ0MDIwLjgwMDg4MDE4YjAwMDg0MTMKKyAgICA3ZTZiMWRhYTFiN2I4MGU1LmRiN2Y4OWE1ZGRkZmExNWEuNDc4NmYwNWY2ZTRmMmRkYi5kMmQxNTNmNDA1ODMzMjZlCiAgICAgYzk3ZDcxNDFhNTg0ODQxOS5lYjFhMjMxYTMzNjI0N2U3LjhiMzU5OGMxYTE4YzQwNjIuYzA0YTk5MzhiMDYzYzZmYgogICAgIGE1Y2VkOGQ2MTIwZjU5MmEuMjc1MDgyNjE3NGYzNWVkNC43MzNkOTYyOWE5YzU0NTMwLmFhMzlhNjE5Zjg4Y2FkMTMKICAgICA3MGFhNGVkM2ZkYTczOWMyLjY5ZWUyMTY2YmQ5ZWExNGUuNWJlYWU1MDUyMjg0NzdlZS42ZDY5ZjU4MWZhMDhhMmUxCi0gICAgZTZhODAzNWVkMWU2NjM5MgotVkFORFBTXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVkNWVFRTUzJTSV8zMihtZW0pCiAgIGJlZm9yZQogICAgIGVmYzA0YTliOWEyZmFhNTEuODQ1ZGNmYTYwMmQ4NjA4ZS44ZWMwN2MxNjI5NzBjZTgxLjlmODg4MmJmYTc1ODE0NGIKICAgICA2NTdmNDgyNDcwZjEzMzRiLjNmMzM1OGJhYmYyZjBjMzkuNzM5MjBmNWJkNTc0OWU5OC45YjYzNjdjNWQ0Y2E1NmYxCkBAIC0xMDI1NCwxMSArMTAyNTQsMTEgQEAKICAgYWZ0ZXIKICAgICBlZmMwNGE5YjlhMmZhYTUxLjg0NWRjZmE2MDJkODYwOGUuOGVjMDdjMTYyOTcwY2U4MS45Zjg4ODJiZmE3NTgxNDRiCiAgICAgNjU3ZjQ4MjQ3MGYxMzM0Yi4zZjMzNThiYWJmMmYwYzM5LjczOTIwZjViZDU3NDllOTguOWI2MzY3YzVkNGNhNTZmMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMjgwMGMxMjAxNzA4ZTgwLjliMDAwMjg1ODQ0ODE0NDEKKyAgICAyNGFmNzhlNTZmMzdiY2FjLmZiNzdlNDdiY2QzNzc3NzAuZjIzMDU2MjNkZGI3ZDBjMC5hYmM2OTI4MjQ2Njg3YThjCiAgICAgMDkxZDU2Y2FiNDBlZmY5Zi4xNTc2NmY1NWNhN2NkZWRlLmU4NjVjZTU4NWI0NDFlMjQuMmJmZmZlNjI5OGJkYmJjOQotICAgIDc2NThhN2QxNjc1NjU2NTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwCiAKLVZBTkRQU18xMjgocmVnKQorVkNWVFRTUzJTSV8zMihyZWcpCiAgIGJlZm9yZQogICAgIGVhMWU4OTNiNGViZDg3ZDguZWU5NDVmYmY1YjgxYjk1MS5lYTdkZjViNDUyOGI3YzMwLjMxZmZmMmU4NmUyNzQ1ZjEKICAgICBlMjlkYTEwY2VhODE4YTAyLmIwZTIwZWIxN2Y5Y2E2ZWQuZDRkNjczMDQwMGVmOGYxMi5hOWM4M2ViZTJmNmMwMTUzCkBAIC0xMDI2NiwxMiArMTAyNjYsMTIgQEAKICAgICBjZGY1NjA5NGFmNDlmNGY3LjNiMmY0ZTM4YWZmYjA3OTYuNWFiMDQzMjgzZmU3ZmUzNC45NzFhM2VlYzMxNGYyNzg0CiAgICAgYzQzYWViMWNhOTAzMDlhYgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMGM2NjMwMDAwMjQwMTAyLjI4ODgyZTg2MmQyMDAwNTEKKyAgICBlYTFlODkzYjRlYmQ4N2Q4LmVlOTQ1ZmJmNWI4MWI5NTEuZWE3ZGY1YjQ1MjhiN2MzMC4zMWZmZjJlODZlMjc0NWYxCiAgICAgZTI5ZGExMGNlYTgxOGEwMi5iMGUyMGViMTdmOWNhNmVkLmQ0ZDY3MzA0MDBlZjhmMTIuYTljODNlYmUyZjZjMDE1MwogICAgIGJhMjFlYWIxZDYyYjlhN2UuMmJkMWRlOGEzYzZiODFhMC4zMGNlZTNiMTcwMzQ1MTJmLjJjOGQyZWM2YmQyMDBlNzUKICAgICBjZGY1NjA5NGFmNDlmNGY3LjNiMmY0ZTM4YWZmYjA3OTYuNWFiMDQzMjgzZmU3ZmUzNC45NzFhM2VlYzMxNGYyNzg0Ci0gICAgYzQzYWViMWNhOTAzMDlhYgotVkFORFBTXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVkNWVFRTUzJTSV8zMihtZW0pCiAgIGJlZm9yZQogICAgIDkwYmJiMDQyNDE0YTZmMTcuNzk2N2ZmMjMxMDY2ZDQxYS5iY2M2ZDdhNWYzNThmNGZhLmFlY2E4ZmQzMDg5M2Q0Y2MKICAgICBkNzY3MDk0YTE0MmYxN2Y0LjE5YzFjNGM4OTUwZjc2OTIuOGE2M2Y2YmYyNThjMDNmOS44ODY2YzEyMDY4YzQwZGE0CkBAIC0xMDI4MSwxMSArMTAyODEsMTEgQEAKICAgYWZ0ZXIKICAgICA5MGJiYjA0MjQxNGE2ZjE3Ljc5NjdmZjIzMTA2NmQ0MWEuYmNjNmQ3YTVmMzU4ZjRmYS5hZWNhOGZkMzA4OTNkNGNjCiAgICAgZDc2NzA5NGExNDJmMTdmNC4xOWMxYzRjODk1MGY3NjkyLjhhNjNmNmJmMjU4YzAzZjkuODg2NmMxMjA2OGM0MGRhNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ODQyZDZhNTIxMDgwMGY4Ljg4NDI4MTAwMDg4MDA0ODQKKyAgICA3NTBjNzMyMDNmYmZiYjZkLjA4NTBhOWYxZGJjZjE1MGMuODFkMjI4NzE2MWE1ZjFiZS40NWQxZDc3OWZiMDdlNjY4CiAgICAgNDU3NDY4YjFkZDA1MThhZi5hNDYwYWMwOTdlMzJlZTMzLjdkZGVlOGE3YzFhZTdhNzYuM2Y1OGNiNGM1YmU3OWJjMwotICAgIGQzNDQ5YjA0MjdmMTY3NjIKKyAgICAwMDAwMDAwMDAwMDAwMDAwCiAKLVZNSU5TU18xMjgocmVnKQorVlBVTlBDS0xCV18xMjgocmVnKQogICBiZWZvcmUKICAgICA1ZGU0NDMwZGY4YWY4N2YwLjI1NmM2NmU3MGEwZGU5ZTUuNDczZGM4N2MxOWM0M2RiNS41YTU1YjI0ZDY0YjQ1YTRkCiAgICAgMzk4M2JkZDM2ZGFmMzcxYS5mMGJmZThiMGUzZTRlYjNjLjRmMzNmYWI2NDgxMjNkM2IuZjQwMTAzNGY2M2MyNGM2ZQpAQCAtMTAyOTMsMTIgKzEwMjkzLDEyIEBACiAgICAgNTdlZDFjNDZhY2E0MzZmMS5iN2FhNjlhODA3MmM3MmZjLmZhOTk4YzJmZDUxMDQzMDkuY2UyYzI2MTdlYjI3NTk0MAogICAgIGM3NDFmMmI2YWI5NmVjNDkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGYzM2ZhYjY0ODEyM2QzYi5mNDAxMDM0ZmRkZTQwZTA2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI3ZjRhZjAxNTYwMzk5NGYuZGQ2M2U0YzIwZTRjMDY2ZQogICAgIDM5ODNiZGQzNmRhZjM3MWEuZjBiZmU4YjBlM2U0ZWIzYy40ZjMzZmFiNjQ4MTIzZDNiLmY0MDEwMzRmNjNjMjRjNmUKICAgICBjMzZjMDdjMjFmN2RiMjhjLjgyM2I2YWY3ODQ5NWRhZTAuMTY4ZDNjMjNhOGE4MmI3NC4yN2FmNTY5OWRkZTQwZTA2CiAgICAgNTdlZDFjNDZhY2E0MzZmMS5iN2FhNjlhODA3MmM3MmZjLmZhOTk4YzJmZDUxMDQzMDkuY2UyYzI2MTdlYjI3NTk0MAogICAgIGM3NDFmMmI2YWI5NmVjNDkKLVZNSU5TU18xMjgobWVtKQorVlBVTlBDS0xCV18xMjgobWVtKQogICBiZWZvcmUKICAgICBlZGJkMzM2MDM5M2Q4MTRjLjUwNTBmOGNjYjBiMGZkZjYuNmJkYTYwYWY4YmI2NmViZC41NWExZTU0NjZhZDhjMWE5CiAgICAgMWM2YjY2MDNiMDI5ZDU3Ny4wY2UyOTdiZWM2MmQ0MzQ2Ljc5OTVjYmY4MmEzZThjNGUuODRmMjQzZDQwMzhjZTBmZQpAQCAtMTAzMDgsMTEgKzEwMzA4LDExIEBACiAgIGFmdGVyCiAgICAgZWRiZDMzNjAzOTNkODE0Yy41MDUwZjhjY2IwYjBmZGY2LjZiZGE2MGFmOGJiNjZlYmQuNTVhMWU1NDY2YWQ4YzFhOQogICAgIDFjNmI2NjAzYjAyOWQ1NzcuMGNlMjk3YmVjNjJkNDM0Ni43OTk1Y2JmODJhM2U4YzRlLjg0ZjI0M2Q0MDM4Y2UwZmUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzk5NWNiZjgyYTNlOGM0ZS44NGYyNDNkNDAzOGNlMGZlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU1ODRhMWYyZTU0MzQ2ZDQuNmEwM2Q4OGNjMWUwYTlmZQogICAgIDA0OGI5NGUwY2JmZGE5ZWYuM2FjMjEwOWE5YWFjNDA3YS4xOGRmZWQwMDJhNzkxODkyLmNmOWYwMDA2YjNlNGY0NzkKICAgICBhMjkyNTU4MjAyYTI2MGY3CiAKLVZNSU5TU18xMjgocmVnKQorVlBVTlBDS0xCV18xMjgocmVnKQogICBiZWZvcmUKICAgICBiYWZmYTEyNWM1N2E1ZmRhLjc2OTc4NmYzYTZmZWExOTUuNjRhOWUxNWM4ZmM2NmViNS41ZjA1OWQ5N2MzNDRmZjllCiAgICAgNzEzMGRkNWI5OWZhMmFjZi42MDAzNWJhZWRiNzM0ODExLmJmZWU2NTNiMDc4MTBiZWMuNzJlOGIwMjBlODNkZjcyOQpAQCAtMTAzMjAsMTIgKzEwMzIwLDEyIEBACiAgICAgMmYxMTE5MzBlMjIwMWI5ZS4xMDMzOWFjY2MxZWE5MjNlLjdkYzU3N2ZmZWUwYTg1ZmMuNjgxMWY1Yjk0M2ViMDk3MgogICAgIDA0ZWYxZGExYjNiODliODgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmZlZTY1M2IwNzgxMGJlYy43MmU4YjAyMGU4M2RmNzI5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJjNzI1MmU4YTRiMDg4MjAuYjRlODcxM2RiY2Y3NjIyOQogICAgIDcxMzBkZDViOTlmYTJhY2YuNjAwMzViYWVkYjczNDgxMS5iZmVlNjUzYjA3ODEwYmVjLjcyZThiMDIwZTgzZGY3MjkKICAgICAyNDcyMDY5MDE5YWUwMDgyLmEwOWU4ZGZkODU2OTVhOTAuYTlkZTk4YTI5ZTY5NTRjYS4yYzUyYTQ4OGI0NzFiYzYyCiAgICAgMmYxMTE5MzBlMjIwMWI5ZS4xMDMzOWFjY2MxZWE5MjNlLjdkYzU3N2ZmZWUwYTg1ZmMuNjgxMWY1Yjk0M2ViMDk3MgogICAgIDA0ZWYxZGExYjNiODliODgKLVZNSU5TU18xMjgobWVtKQorVlBVTlBDS0xCV18xMjgobWVtKQogICBiZWZvcmUKICAgICBkYWI5OWEyYjFkZTIyZWNlLmVlNTkxMWE3OGZkZWI4ZDAuOGU4ZGZkMDdhYjA0YWQ0Ni45NmVmZmRiZDk2ZjFkYTJkCiAgICAgYzgzYWU3NDM5Zjc3N2U3MS5iZDk2ZWE2MWJjNzQxM2MzLmY0N2EzMjlhNWRjMzY3ZDUuNTJhODI2NDkzMGE5OGUwYgpAQCAtMTAzMzUsMTEgKzEwMzM1LDExIEBACiAgIGFmdGVyCiAgICAgZGFiOTlhMmIxZGUyMmVjZS5lZTU5MTFhNzhmZGViOGQwLjhlOGRmZDA3YWIwNGFkNDYuOTZlZmZkYmQ5NmYxZGEyZAogICAgIGM4M2FlNzQzOWY3NzdlNzEuYmQ5NmVhNjFiYzc0MTNjMy5mNDdhMzI5YTVkYzM2N2Q1LjUyYTgyNjQ5MzBhOThlMGIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjQ3YTMyOWE1ZGMzNjdkNS41MmE4MjY0OTk2ZjFkYTJkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk2NTJlZmE4ZmQyNmJkNDkuOTYzMGYxYTlkYThlMmQwYgogICAgIDU3OTVlMWNkNWExMTQzN2MuZmIxZTMwNGUwOTU1ZjI5Zi5lYzM4MDQ3OTkwNWRhNjM3LjFmZjY1Mjc2YWJiZTA2NzgKICAgICBlOTIzNGNmMWM0MzI0MjVmCiAKLVZNSU5TU18xMjgocmVnKQorVlBVTlBDS0xCV18xMjgocmVnKQogICBiZWZvcmUKICAgICBjNDBmZGFlODQwYThjZGEzLmIyMDc4NzE3Y2EyZDMxM2MuMjIwMTk1NWE2MGI4ZWVkZi4zNWEyOTg5ZDQ3NTBhNDYxCiAgICAgMGUwNmY4YzliYWFiZTRlZS45MzYwZWM5ZmMyZTNjYjA5LmM5MDljYjU5YTcyMzk4OTEuZDhjZGVlYzgzNzE4MzFjMwpAQCAtMTAzNDcsMTIgKzEwMzQ3LDEyIEBACiAgICAgNWE0NWQwZjUxYTg5YTU0Yi41YmZhZTkxYWI4NGZmNjc5LjA3Yjc5YmRmNzczZWU0ZjkuOTc5YWQxZTgzNTU1ZTZkOQogICAgIDZkZDQ1NmI0N2FlMjg3ZTYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzkwOWNiNTlhNzIzOTg5MS5kOGNkZWVjODM3MTgzMWMzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFmZDg4N2NkODJlZWU4YzguN2UzN2MwMTgwODMxODZjMwogICAgIDBlMDZmOGM5YmFhYmU0ZWUuOTM2MGVjOWZjMmUzY2IwOS5jOTA5Y2I1OWE3MjM5ODkxLmQ4Y2RlZWM4MzcxODMxYzMKICAgICAyMTU0YTBmZWNlYzdjM2VkLmQ3NmQ4ZTUxNWQ0MGNmMGYuNGM4MmNmYjY3YjIxMmI2MC5hZjg3ODJlODdlYzAwODg2CiAgICAgNWE0NWQwZjUxYTg5YTU0Yi41YmZhZTkxYWI4NGZmNjc5LjA3Yjc5YmRmNzczZWU0ZjkuOTc5YWQxZTgzNTU1ZTZkOQogICAgIDZkZDQ1NmI0N2FlMjg3ZTYKLVZNSU5TU18xMjgobWVtKQorVlBVTlBDS0xCV18xMjgobWVtKQogICBiZWZvcmUKICAgICAwYmZmOGQzODY5NzNhNmQ5LjE2MjQ4MzE5Mzc3Y2M4YjUuZjlkMjc3ZTRlZjFkZmY3NC41NmY2MmQzZjM4MDdmZjA4CiAgICAgNGVlOGYyNjAxZDE0MDFlMC5hZjNmYjVkNmMzMmM2NWQ2LjhlYzNiNjlkMWRiNWE0MmMuOTU4OTgwNDI1YTA3YjczOApAQCAtMTAzNjIsMTEgKzEwMzYyLDExIEBACiAgIGFmdGVyCiAgICAgMGJmZjhkMzg2OTczYTZkOS4xNjI0ODMxOTM3N2NjOGI1LmY5ZDI3N2U0ZWYxZGZmNzQuNTZmNjJkM2YzODA3ZmYwOAogICAgIDRlZThmMjYwMWQxNDAxZTAuYWYzZmI1ZDZjMzJjNjVkNi44ZWMzYjY5ZDFkYjVhNDJjLjk1ODk4MDQyNWEwN2I3MzgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGVjM2I2OWQxZGI1YTQyYy45NTg5ODA0MjM4MDdmZjA4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU2OTVmNjg5MmQ4MDNmNDIuMzg1YTA3MDdmZmI3MDgzOAogICAgIDMzMjMzNzRkNDViODU1ZDQuZWM1NDg2Y2I5N2Y1MDRmMC4wZDFiMzQ4OGNmNzRiNTgwLjUyZGY1OWUxMmVkZWYyYWQKICAgICA4OTM5ZDg1NTE4Y2NlYjRhCiAKLVZNQVhTU18xMjgocmVnKQorVlBVTlBDS0hCV18xMjgocmVnKQogICBiZWZvcmUKICAgICAyMDE4MDgxZGQzMjE3M2I4LjhkMGQwZmU5ZjJkM2M3MWEuNDdlNzFlZGMxNjI1N2Q0MC5iMDFiNmI5MzhiYjI5OTc1CiAgICAgNzNjN2U1YTNmYjZhYzRhNC5mZGU2MDVkYWQ0MmU2NDIzLmYwZTUyNTM1NzQ0MzYyZjguYjk2MzQyM2NhZWVjMDlkNwpAQCAtMTAzNzQsMTIgKzEwMzc0LDEyIEBACiAgICAgYmNjOTk3OWQwMDA2YjNhNi44YTkwM2M2N2E4ZDUwZjJjLjljNTA3MTczM2I3NjVmNGUuNzBmYWMyMTg5YzdkN2Y5MQogICAgIGQ2ZTI2MjI0OWVlZGZlNDAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjBlNTI1MzU3NDQzNjJmOC5iOTYzNDIzYzU2MmJjMmQyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQzZjA5OWU1OTcyNTQ0MzUuNGM3NGRhNDNlZjYyYzNmOAogICAgIDczYzdlNWEzZmI2YWM0YTQuZmRlNjA1ZGFkNDJlNjQyMy5mMGU1MjUzNTc0NDM2MmY4LmI5NjM0MjNjYWVlYzA5ZDcKICAgICBkZDk0NmI1NDJiMzMxYmJhLjVkNzg5NTBhMDdkNWU4MWEuNDM5OTk3NDQ0Y2RhZWZjMy4wNWJmMzY2ZjU2MmJjMmQyCiAgICAgYmNjOTk3OWQwMDA2YjNhNi44YTkwM2M2N2E4ZDUwZjJjLjljNTA3MTczM2I3NjVmNGUuNzBmYWMyMTg5YzdkN2Y5MQogICAgIGQ2ZTI2MjI0OWVlZGZlNDAKLVZNQVhTU18xMjgobWVtKQorVlBVTlBDS0hCV18xMjgobWVtKQogICBiZWZvcmUKICAgICAxMzQxOTM3ZDc4ODhmOTBjLjZhYjM2M2U5MTU3MWM5MTIuNjBmYTc1ZGNkMjM5OTQ4NC41NzU3YWQzMGRkYTRlZjQ1CiAgICAgMDNlNGNmMTA0NTU5MmQyMS40NTllY2RhNDA2ZmY5OWFkLmJhODFiYzU1YTIwZDM0NGYuZDBmODQ5ZTVjY2VmZGE1MwpAQCAtMTAzODksMTEgKzEwMzg5LDExIEBACiAgIGFmdGVyCiAgICAgMTM0MTkzN2Q3ODg4ZjkwYy42YWIzNjNlOTE1NzFjOTEyLjYwZmE3NWRjZDIzOTk0ODQuNTc1N2FkMzBkZGE0ZWY0NQogICAgIDAzZTRjZjEwNDU1OTJkMjEuNDU5ZWNkYTQwNmZmOTlhZC5iYTgxYmM1NWEyMGQzNDRmLmQwZjg0OWU1Y2NlZmRhNTMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmE4MWJjNTVhMjBkMzQ0Zi5kMGY4NDllNWNjZWZkYTUzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwYmFmYTgxNzViY2RjNTUuZDJhMjM5MGQ5NDM0ODQ0ZgogICAgIDZiMjY1ZDk2MjljZTJlZDQuZWVhNzY5MTZlZmI2NTcxYi42ZjFhNjQwM2EyMzdiNGVkLjZkM2I4ZWVjMDcwZGI1NjYKICAgICA0ODc0MzAxNThiZjgxY2MzCiAKLVZNQVhTU18xMjgocmVnKQorVlBVTlBDS0hCV18xMjgocmVnKQogICBiZWZvcmUKICAgICA1MDc5MjBlN2NjMzFjZWU4LjljNWRhNjVmNzk4YTc0Y2IuNzQ1YzkyYTYxZWY2YmM0Ni44MWM0YmUxMDBhYTQwYzE3CiAgICAgZTM5NDVjY2Y2ODQzMDg4MC5mMDA3ZWMxMzJjYWNlM2JhLjk3NDM0OTU2OTk4YWNiNGYuODhiYjE2ZDE4OGIyNmY2NQpAQCAtMTA0MDEsMTIgKzEwNDAxLDEyIEBACiAgICAgMTczZmE2OGMyMDIyMDRiYi43MGU3NWJlOTJjNTQyYjMyLjIwZDI0ZmMxZTVkYmQ1YTkuZTRjMmIwMjAzNGRlNDUxNwogICAgIGYyNmJlYjg2OWExNTMwZDQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTc0MzQ5NTY5OThhY2I0Zi44OGJiMTZkMTM3NmM5ODAxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIxOTdhNjQzODk0OTkwNTYuZmQ5OWZkOGFiZmNiZTE0ZgogICAgIGUzOTQ1Y2NmNjg0MzA4ODAuZjAwN2VjMTMyY2FjZTNiYS45NzQzNDk1Njk5OGFjYjRmLjg4YmIxNmQxODhiMjZmNjUKICAgICA1YzEyZGYzN2ZiYmEwNjM4LjQzZjFhYTlkNWU0MTM2Y2UuYjFhNjg5OTBmZGZkYmZlMS42MGNiZTgzMzM3NmM5ODAxCiAgICAgMTczZmE2OGMyMDIyMDRiYi43MGU3NWJlOTJjNTQyYjMyLjIwZDI0ZmMxZTVkYmQ1YTkuZTRjMmIwMjAzNGRlNDUxNwogICAgIGYyNmJlYjg2OWExNTMwZDQKLVZNQVhTU18xMjgobWVtKQorVlBVTlBDS0hCV18xMjgobWVtKQogICBiZWZvcmUKICAgICA2NTkxMTM0Zjg1MWMxNTY0LjcwNjdhYjNiNzQwODNkYjYuNTViNTdlZTNiMWYxN2IxMy4zZTEzOTU1NmVlYjE0OTUzCiAgICAgMTgwMWE2NjkxMmZmYjJmMi5jM2Q2ZWNhZTkyZjdlZWQ1LmNkMjc4Yzc3MGEyNWU1OWQuNjhiNTU5YjliNDBhNTc4YQpAQCAtMTA0MTYsMTEgKzEwNDE2LDExIEBACiAgIGFmdGVyCiAgICAgNjU5MTEzNGY4NTFjMTU2NC43MDY3YWIzYjc0MDgzZGI2LjU1YjU3ZWUzYjFmMTdiMTMuM2UxMzk1NTZlZWIxNDk1MwogICAgIDE4MDFhNjY5MTJmZmIyZjIuYzNkNmVjYWU5MmY3ZWVkNS5jZDI3OGM3NzBhMjVlNTlkLjY4YjU1OWI5YjQwYTU3OGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2QyNzhjNzcwYTI1ZTU5ZC42OGI1NTliOWI0MGE1NzhhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU1Y2RiNTI3N2U4Y2UzNzcuYjEwYWYxMjU3YmU1MTM5ZAogICAgIGIzZjBmYjNkODE4YmZmYmIuYzZiNzBmOTU5ZDIyYTgyZC5lNTI3NWQxZWE2ODBmMjU5LjUxNGI0ODllZTQ3NjMwNTIKICAgICBjN2Q3NmJmNjg2YTE3MzNhCiAKLVZNQVhTU18xMjgocmVnKQorVlBVTlBDS0hCV18xMjgocmVnKQogICBiZWZvcmUKICAgICBiOWY0ZmNjZTU1N2YzZjVmLjUxMDViNWNmOWE0YjI3NGQuMmZjM2VhZTBjMjc1MjhiZS4zZTRjMTgwOTIxYmUwZWU1CiAgICAgODNlZWY1OTFlZDlkZDI2ZS5hMTk1Yzg2MWM1MThmNzhlLjAyNDVmMGEwMjIwMTEwMjMuOTk0NWIwM2RlMGMzMzJjOQpAQCAtMTA0MjgsMTIgKzEwNDI4LDEyIEBACiAgICAgMTBhOTE0ODllNmM2MzdmYS5jMzUyZWYzNWJmMDc3OWNiLjU1ZGQ2YzJmMDJmNjA3MTguYzllMzYzMzQ5NzUxODU0YQogICAgIDU2MjA3N2NmYzhmMTJjNDAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDI0NWYwYTAyMjAxMTAyMy45OTQ1YjAzZGUwYzMzMmM5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjlhMDI4YTQ1MWNmMDQxYTAuNTkyMjUzMDE5YzEwMDcyMwogICAgIDgzZWVmNTkxZWQ5ZGQyNmUuYTE5NWM4NjFjNTE4Zjc4ZS4wMjQ1ZjBhMDIyMDExMDIzLjk5NDViMDNkZTBjMzMyYzkKICAgICA4MjExNTRhYmU5ODY2NjEzLjdkNmFiM2RmMWRmZDI5YTkuOWE4YTFjNDE1OTUzOWMwNy5kNGRlOWZhOGZlOWIxYjMxCiAgICAgMTBhOTE0ODllNmM2MzdmYS5jMzUyZWYzNWJmMDc3OWNiLjU1ZGQ2YzJmMDJmNjA3MTguYzllMzYzMzQ5NzUxODU0YQogICAgIDU2MjA3N2NmYzhmMTJjNDAKLVZNQVhTU18xMjgobWVtKQorVlBVTlBDS0hCV18xMjgobWVtKQogICBiZWZvcmUKICAgICA1NTYwNTc2NGFkODdjYjNlLjhhMDEzMjk1N2ZlYTgzY2UuNGQxN2Y5NTBjNjQwYTUxZi44ZDhjZGNkNmI5Nzc4ZWZmCiAgICAgYTM3MTdmZGY2MTIwMWY3MS40YzY2YTkzYzUwN2Q4NDNiLmY5ODY0ZTFhNGZiNjY3ZDIuYTBlMTY2YTMxYjYxNmQ2YgpAQCAtMTA0NDMsMTEgKzEwNDQzLDExIEBACiAgIGFmdGVyCiAgICAgNTU2MDU3NjRhZDg3Y2IzZS44YTAxMzI5NTdmZWE4M2NlLjRkMTdmOTUwYzY0MGE1MWYuOGQ4Y2RjZDZiOTc3OGVmZgogICAgIGEzNzE3ZmRmNjEyMDFmNzEuNGM2NmE5M2M1MDdkODQzYi5mOTg2NGUxYTRmYjY2N2QyLmEwZTE2NmEzMWI2MTZkNmIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjk4NjRlMWE0ZmI2NjdkMi5hMGUxNjZhMzFiNjE2ZDZiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRkZjkxNzg2Zjk0ZTUwMWEuYzY0ZjQwYjZhNTY3MWZkMgogICAgIDlkMzE5ODM4YTc4OWQ1MjUuMTg4ODkyMGMwZDIxOTg5My4yMjkyYzY3MDU1ODg5ZjA0LmMzYjFiZDVhNGVhMTIyN2MKICAgICA4YmMzODExZTU3MGY3MDdhCiAKLVZBTkROUFNfMTI4KHJlZykKK1ZNVUxTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA5ZWFjNTFiNzdhMTYwNmFjLjAwNzk4MWVkNzI3MGIwZmQuZGFkY2ZjMGQyZjRhMjJkNi41OWM2ZTFkMjBhZmI4ZWRiCiAgICAgNTZiNzI3OTE1NDQzMWZiZC4yM2MxYTIzODdjOGIyZWJhLjUzNmNhZjU5ZmIxMzUyNjIuMjBkNDM3OTViMWRhMDNjMQpAQCAtMTA0NTUsMTIgKzEwNDU1LDEyIEBACiAgICAgMjk2N2RhYjc5YzNjY2QyZS4xNDgwN2Q0MWJlODYwYTkzLmRmNzRlMjgyZmJiMjk0MDYuZDFhZjgxZWI0MzBlNzE2NwogICAgIDc0MTM2ZDU2NjY3YmUyODAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTA4MjAwMDQwMDA0MjQ4MS41NDA5NDAyMDQ0MjBiODIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUzNmNhZjU5ZmIxMzUyNjIuMjBkNDM3OTVkNzk4MzVjMwogICAgIDU2YjcyNzkxNTQ0MzFmYmQuMjNjMWEyMzg3YzhiMmViYS41MzZjYWY1OWZiMTM1MjYyLjIwZDQzNzk1YjFkYTAzYzEKICAgICAxMTMyMDExODgxMjFmODVhLmUwZDU3ODA2ZTFlMzBlODguZTE4NmE4NWMwYjA3NjRlMy41NDg5NDNhNDY1MzJiYWUxCiAgICAgMjk2N2RhYjc5YzNjY2QyZS4xNDgwN2Q0MWJlODYwYTkzLmRmNzRlMjgyZmJiMjk0MDYuZDFhZjgxZWI0MzBlNzE2NwogICAgIDc0MTM2ZDU2NjY3YmUyODAKLVZBTkROUFNfMTI4KG1lbSkKK1ZNVUxTU18xMjgobWVtKQogICBiZWZvcmUKICAgICAxNzgwODRkMmVhODRjYTU4LmZiYTNhZWRkNDIyMWRhZTYuOWI5MDJmZDcyZTdmZGYwNi5hOTgzNTkzNzY4YTAxZDc3CiAgICAgOTdjNDQwNDllYzM1ZTUxYi5lMzMyN2FmMzBlNWI1YTJlLjUxY2YwOWIzNGVkYjQ5MGQuOWIwMDBhZTdlZDVlM2NlMQpAQCAtMTA0NzAsMTEgKzEwNDcwLDExIEBACiAgIGFmdGVyCiAgICAgMTc4MDg0ZDJlYTg0Y2E1OC5mYmEzYWVkZDQyMjFkYWU2LjliOTAyZmQ3MmU3ZmRmMDYuYTk4MzU5Mzc2OGEwMWQ3NwogICAgIDk3YzQ0MDQ5ZWMzNWU1MWIuZTMzMjdhZjMwZTViNWEyZS41MWNmMDliMzRlZGI0OTBkLjliMDAwYWU3ZWQ1ZTNjZTEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGExMDI2NDQyMDI0OTYwMi4yMDgzNTExMDAwYTAwMTE2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUxY2YwOWIzNGVkYjQ5MGQuOWIwMDBhZTdmZjgwMDAwMAogICAgIDllZmQ5Y2RjZDhjMWEyMGYuNjY3OWU3YTI4OWZmYTYxYy5iYjBkMjZlZDBjZTljYjhhLjY2NmUwNmU4YjE3ODJiNTMKICAgICBmOGY5NGExMjI4ZWM3M2IyCiAKLVZBTkROUFNfMTI4KHJlZykKK1ZNVUxTU18xMjgocmVnKQogICBiZWZvcmUKICAgICAyMjIwYjdlNjI3NWY0MWJiLmRkOGEzNGNmZmJiM2JkOTkuYjhjODgwMTQ3MDgxZTkxYS4yNmEzNjEyM2UyYjM1YjU4CiAgICAgM2YzMTRhZDI0YTVlZDAxOS42OTFkNjE2ZjBiN2RmYWJlLjkwOWIwMDI2ZWU4ODkxNTguMzA5YWI0NGZkNzEwNmY2YQpAQCAtMTA0ODIsMTIgKzEwNDgyLDEyIEBACiAgICAgYzYzY2NlOWU2ZjJkMjU4Ni5kODg0NmY2MzYzY2NjZDg4LjQyZjhhN2RmMWQ1N2ZhNDMuOTFkNzkyM2E5MWIxMTcwYwogICAgIGEwYjUxNmQwOGQwZDIyZjMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGEyNDY0NDAxMTIxNDg4Mi44NTI0MGIxMDA4MGM4MDg0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkwOWIwMDI2ZWU4ODkxNTguMzA5YWI0NGY5ZjllZDkzMgogICAgIDNmMzE0YWQyNGE1ZWQwMTkuNjkxZDYxNmYwYjdkZmFiZS45MDliMDAyNmVlODg5MTU4LjMwOWFiNDRmZDcxMDZmNmEKICAgICBhZDc2ZmU0MTJlNzM1ZTc5LjFlODJhMWE3MjQyYzE2YWEuNGEzYzY0NDY5ZmExZDg4Mi5iNWJjOWI1ZDA4MGNjNWVjCiAgICAgYzYzY2NlOWU2ZjJkMjU4Ni5kODg0NmY2MzYzY2NjZDg4LjQyZjhhN2RmMWQ1N2ZhNDMuOTFkNzkyM2E5MWIxMTcwYwogICAgIGEwYjUxNmQwOGQwZDIyZjMKLVZBTkROUFNfMTI4KG1lbSkKK1ZNVUxTU18xMjgobWVtKQogICBiZWZvcmUKICAgICBiZDIzYTIwZDE4MmJhMWQwLmU4Y2ZiOTU3YTgxNTYxZWQuNzNmMTQ3OGZlMzY3ZGI4NC5kNDFiYzU1ZDA3MzYzNTQ4CiAgICAgYzZlY2IyZGI0ZjE4NTFjZC42ZDdhYjhkNzc1Yjk1MDVhLmNiOTNhNjE3YzEwYmZiY2IuNWNmMWJhMmNmNmNiYzMzYwpAQCAtMTA0OTcsMTEgKzEwNDk3LDExIEBACiAgIGFmdGVyCiAgICAgYmQyM2EyMGQxODJiYTFkMC5lOGNmYjk1N2E4MTU2MWVkLjczZjE0NzhmZTM2N2RiODQuZDQxYmM1NWQwNzM2MzU0OAogICAgIGM2ZWNiMmRiNGYxODUxY2QuNmQ3YWI4ZDc3NWI5NTA1YS5jYjkzYTYxN2MxMGJmYmNiLjVjZjFiYTJjZjZjYmMzM2MKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzA2MDQxODgyMjY0MDAwNC44MDBhNDU1MTAxMzQzNDQwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNiOTNhNjE3YzEwYmZiY2IuNWNmMWJhMmNiZTkxMDczNQogICAgIDA5YzQ0ZmRmMzA4YzM0ZDguMTQ0Y2U2ZGMzZTYzMzJmNC4yMWFhZTVlYjA1OWM2NGU5LmJlZTUxYTZkNTk0NWNhYTQKICAgICA1MDliN2RiNzA0NDFiYjZmCiAKLVZBTkROUFNfMTI4KHJlZykKK1ZNVUxTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA0ODM0YTcwMjI2MjRmMGRhLmZiNjlkM2VjMTEyY2RlM2YuZWUwYjBkM2E3MTgxOWQ3YS5kOGI1YmUxMGEzYTEyNTE4CiAgICAgMDJmYzk0YmI1YTc3YTU5MC40NzlhY2MzYjBlY2FhYTc2LjliMTIzYTBlYTg4YWFiYjUuYmMyNzBlNDAwZWRmZTg0MgpAQCAtMTA1MDksMTIgKzEwNTA5LDEyIEBACiAgICAgMmM0OWE5MjM2YWEyN2Q5MC42MmQwMGI0ZmNhMzE5MjA3LmUyMmE5MmNjOTQ4ZjlhZmMuN2E2Y2ZmNzViZTMyNjczNQogICAgIDBkZDc5OTUyM2E2MTlhNTYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjBhYzQ1YzAwMDAxMTQ0Mi4wMWM4NDEyOTYxMjAwMjkwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjliMTIzYTBlYTg4YWFiYjUuYmMyNzBlNDAzMmM0NDg3MAogICAgIDAyZmM5NGJiNWE3N2E1OTAuNDc5YWNjM2IwZWNhYWE3Ni45YjEyM2EwZWE4OGFhYmI1LmJjMjcwZTQwMGVkZmU4NDIKICAgICBkYTNmNDE0YzNkYzgxNTNlLmNiMjNiNWI4NDI3MzUxYWEuNzhhZTY3YzY4MDBiOTY1Mi5hOWNiNGY2OTYzNjA2YTkyCiAgICAgMmM0OWE5MjM2YWEyN2Q5MC42MmQwMGI0ZmNhMzE5MjA3LmUyMmE5MmNjOTQ4ZjlhZmMuN2E2Y2ZmNzViZTMyNjczNQogICAgIDBkZDc5OTUyM2E2MTlhNTYKLVZBTkROUFNfMTI4KG1lbSkKK1ZNVUxTU18xMjgobWVtKQogICBiZWZvcmUKICAgICAzZGQ5OTllYmYzZjdjMDIyLjUzNjVjOGFhN2Q5MjE5MzEuZTc2ZDQ4ZWNjMTEyMjdiOC4zM2Q0YjY4ZTgxYTJmNTYwCiAgICAgZTUzYzdiMmMwNjAyOTVjNC5hZGUxOWE0ZjEzMjIyNWNlLjM4YzVlYTdjNDQyMmNkZWEuYzhmNmNmNzZlMmQxZTEyOQpAQCAtMTA1MjQsMTEgKzEwNTI0LDExIEBACiAgIGFmdGVyCiAgICAgM2RkOTk5ZWJmM2Y3YzAyMi41MzY1YzhhYTdkOTIxOTMxLmU3NmQ0OGVjYzExMjI3YjguMzNkNGI2OGU4MWEyZjU2MAogICAgIGU1M2M3YjJjMDYwMjk1YzQuYWRlMTlhNGYxMzIyMjVjZS4zOGM1ZWE3YzQ0MjJjZGVhLmM4ZjZjZjc2ZTJkMWUxMjkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzcyODAwODA4MTEwMjIxMC4zMzAwMzA4ODAxMjIxNDQwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM4YzVlYTdjNDQyMmNkZWEuYzhmNmNmNzYyNTA1OTlhNwogICAgIDExNTdkNzU2YTlhNjNiM2QuNjYyNDQ4YTAzNjU4N2JhYS5hYWRhNGEyMTVjZmIzYjdmLjJmZDZkMTZkNzJiMDVmOWQKICAgICBiODJiYjE1M2Q4Nzk2ODlmCiAKLVZPUlBTXzEyOChyZWcpCitWU1VCU1NfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZjUyOTc3MTAyNDhkZjNiNy40ZGE3NDgxNzcwNTY4NDZjLjdlODQxYzI0ZmMxNTNkNDEuODQyZTAxMGUyOWRlN2IzYQogICAgIDQyMWIxZjEwZWY3OTNjOTAuNzE4YThiMzAwMWFhNmMyMC4zODczOTM3NWIzYTM2MDg0Ljk4NmUwYzllZjIxZmJjMjYKQEAgLTEwNTM2LDEyICsxMDUzNiwxMiBAQAogICAgIDdjMGYwMThhNzgwNWY2MzguZTUzNDc4MWJlZjcwMDdjZS4wMTJkNWIyZjZiNjRiNGJkLmUyZTEwZDU0ZTVlYjMwNDAKICAgICBkMGFjZmQ1MjQ4OGZkYmM2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmN2ZiYmZmZmJhZjdlOWYuZGM2ZmVlYmVmMmRmYmU2ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zODczOTM3NWIzYTM2MDg0Ljk4NmUwYzllZjIxZmJjMjYKICAgICA0MjFiMWYxMGVmNzkzYzkwLjcxOGE4YjMwMDFhYTZjMjAuMzg3MzkzNzViM2EzNjA4NC45ODZlMGM5ZWYyMWZiYzI2CiAgICAgZmI0ZmEzYzBkN2M3N2VkNy41YmNhMWQ4ZTc3YWZhZTg4LmVmM2NhOWZmZmE4ZjFlMWYuYzQ2NWU2YmNkMmNhYmE2ZgogICAgIDdjMGYwMThhNzgwNWY2MzguZTUzNDc4MWJlZjcwMDdjZS4wMTJkNWIyZjZiNjRiNGJkLmUyZTEwZDU0ZTVlYjMwNDAKICAgICBkMGFjZmQ1MjQ4OGZkYmM2Ci1WT1JQU18xMjgobWVtKQorVlNVQlNTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDY4OTQzMGEyMTdjMTc3MmQuMjFhODM0ZGM2ZGJmZTA1ZS5lZDk0MWFjNTg0ZmEzMzFmLmM4OTBhNDZmYTJhZTVkMGIKICAgICA4NzYzMjQzMDZjOGViZmEwLjQ2NjYzODIwNTI4MDc4ZjYuNGRiNjdlNzc1MzU3ZWVhNi5hMmIyODAyZDNiZmE1N2I1CkBAIC0xMDU1MSwxMSArMTA1NTEsMTEgQEAKICAgYWZ0ZXIKICAgICA2ODk0MzBhMjE3YzE3NzJkLjIxYTgzNGRjNmRiZmUwNWUuZWQ5NDFhYzU4NGZhMzMxZi5jODkwYTQ2ZmEyYWU1ZDBiCiAgICAgODc2MzI0MzA2YzhlYmZhMC40NjY2MzgyMDUyODA3OGY2LjRkYjY3ZTc3NTM1N2VlYTYuYTJiMjgwMmQzYmZhNTdiNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZGI2N2VmN2Q3ZmZmZmJmLmVhYjJhNDZmYmJmZTVmYmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGRiNjdlNzc1MzU3ZWVhNi5hMmIyODAyZDNiZmE1N2I1CiAgICAgY2JlOTNjYjcxZjI2NDY1Yy44MDgxYTMzMzVlNDdhMDJhLjg5NmU3ZGEyMGRjMGZmMDguZmI2M2UxY2YwNmM1MjhjYgogICAgIDMyODk1ZjhjNmY1ZDc5OGYKIAotVk9SUFNfMTI4KHJlZykKK1ZTVUJTU18xMjgocmVnKQogICBiZWZvcmUKICAgICBlYjlmNjA3NmFiMjUwOTVmLmE3Mzc1OTg3YjMwOWZkZmQuNGQ3NjAzZDliZDY2YTkxZi4xYzllMTBmNDMwZTNjZTNiCiAgICAgODNlZmUwZjk1NWFjMTVlNi43YTllMjU0NjNmYjc1MDVhLjA5YmYyNDIxN2NiYzUwMzUuNzhiZjU1ZmVmYzBhMWI1NQpAQCAtMTA1NjMsMTIgKzEwNTYzLDEyIEBACiAgICAgYmI3MDRlN2E2NTIwOTBjYy43NmUyYmYzZWFkYTJiZGZiLmMzODA5YTRkOGMzZjY2NzYuZmIwNmU2ZWIwMjk2MjJlYwogICAgIGRhYzUyYWE1NzMxMjU0YzEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWJiZjI2Nzk3Y2ZlZDAzZC43OWJmZGRmZWZlNGFiZmQ1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA5YmYyNDIxN2NiYzUwMzUuNzhiZjU1ZmVmYzBhMWI1NQogICAgIDgzZWZlMGY5NTVhYzE1ZTYuN2E5ZTI1NDYzZmI3NTA1YS4wOWJmMjQyMTdjYmM1MDM1Ljc4YmY1NWZlZmMwYTFiNTUKICAgICA1NGM2ZGI4MTBhN2JkOWQxLjIwZTgxZWRmZGUzYmZjYTAuMTJhOTAyNzkzOGQ2ZDAxOC43OTllYzlhYzhlNDJhNDgxCiAgICAgYmI3MDRlN2E2NTIwOTBjYy43NmUyYmYzZWFkYTJiZGZiLmMzODA5YTRkOGMzZjY2NzYuZmIwNmU2ZWIwMjk2MjJlYwogICAgIGRhYzUyYWE1NzMxMjU0YzEKLVZPUlBTXzEyOChtZW0pCitWU1VCU1NfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZjNhNjEwYzdmZGMyZjQyZC4xNDM5MzM1MDAyMjc3NzgyLjU2NTg4NTRlYzdmNzRmOTYuNzg5MGU2MDcxNTgzNGVmOQogICAgIDIwNzQxNDNlYmRiM2JmNWMuYmM2ZDg4NzA3ZTFiY2FhMC45ZDE2ZWFmZDQ5NDY2ZDllLjhkMjVlNDE0NmUyZWMzNGQKQEAgLTEwNTc4LDExICsxMDU3OCwxMSBAQAogICBhZnRlcgogICAgIGYzYTYxMGM3ZmRjMmY0MmQuMTQzOTMzNTAwMjI3Nzc4Mi41NjU4ODU0ZWM3Zjc0Zjk2Ljc4OTBlNjA3MTU4MzRlZjkKICAgICAyMDc0MTQzZWJkYjNiZjVjLmJjNmQ4ODcwN2UxYmNhYTAuOWQxNmVhZmQ0OTQ2NmQ5ZS44ZDI1ZTQxNDZlMmVjMzRkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRmNWVlZmZmY2ZmNzZmOWUuZmRiNWU2MTc3ZmFmY2ZmZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ZDE2ZWFmZDQ5NDY2ZDllLjhkMjVlNDE0NmUyZWMzNGQKICAgICAyOTBhNjdkNzRkODZjNmIxLjY0NDU3MDNhODFmYWEyYzIuZDA5OTg2ZTZmMzAzM2ZhMy40NjBkZTNkODAyZWI0NzFiCiAgICAgYTJmOWRkNjc3NTE1Y2VlYwogCi1WT1JQU18xMjgocmVnKQorVlNVQlNTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGNmOTk3OGY4MjhkNmQyM2YuYmQ2YWFkZDI1NjgwNzkyZi4xZDgxZmFiYzQwZmVhMDFmLjc0ZjdiNGY3NTM4YTZjZjkKICAgICAyODNhYjBmOWI3YmE5MGMwLmQ2ZTcwMmQxMDNlYTQ3MjAuOTQ1OGU0Mzg0ZTFmZmE5My5lZmNjNzI1NjhhM2ExNTZiCkBAIC0xMDU5MCwxMiArMTA1OTAsMTIgQEAKICAgICBjZGFlZTdmOGRjMWQyOWZhLjA2NmNjNzhiYmY0MDIzMGEuMmMwN2M2Y2JjNWU5YjA3Mi5kYTBlOTBhZmYwNGJjZDU1CiAgICAgMDExM2U3ODE1NmMyNTQyNQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNTVlZWQzOTRmZmZmYmRiLmZmZWQ3ZmY2YmYzYmY3NmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTQ1OGU0Mzg0ZTFmZmE5My5lZmNjNzI1NjM1MjFmNzI2CiAgICAgMjgzYWIwZjliN2JhOTBjMC5kNmU3MDJkMTAzZWE0NzIwLjk0NThlNDM4NGUxZmZhOTMuZWZjYzcyNTY4YTNhMTU2YgogICAgIDA4Mjg4MWQ1YmY0ZTQ0MWEuNGY0ZmUyYzA3M2QxZWNiMC4yNTE2MjkxOTQ3ZTllYmNiLjFkZTUzZGYwYjUyMWY3MjYKICAgICBjZGFlZTdmOGRjMWQyOWZhLjA2NmNjNzhiYmY0MDIzMGEuMmMwN2M2Y2JjNWU5YjA3Mi5kYTBlOTBhZmYwNGJjZDU1CiAgICAgMDExM2U3ODE1NmMyNTQyNQotVk9SUFNfMTI4KG1lbSkKK1ZTVUJTU18xMjgobWVtKQogICBiZWZvcmUKICAgICA3MGMwYmU1MTAzOTQ0OGMxLmQxMWFkZmNlYTliMzdjMGIuZDYwYzJmMWUwNjQzYTk1Yi4wNTc3YjViYTY2YWE4NTM1CiAgICAgMDJlMDkyMGExNGNkNjU1Ny43MmI2NjNjM2MyOWQ3OWZhLjliZjk5NTY1NjFlNzNhY2UuMGNiMWY0NTJjNmI5YTZjMApAQCAtMTA2MDUsMTEgKzEwNjA1LDExIEBACiAgIGFmdGVyCiAgICAgNzBjMGJlNTEwMzk0NDhjMS5kMTFhZGZjZWE5YjM3YzBiLmQ2MGMyZjFlMDY0M2E5NWIuMDU3N2I1YmE2NmFhODUzNQogICAgIDAyZTA5MjBhMTRjZDY1NTcuNzJiNjYzYzNjMjlkNzlmYS45YmY5OTU2NTYxZTczYWNlLjBjYjFmNDUyYzZiOWE2YzAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGZmZGJmN2Y2N2U3YmJkZi4wZGY3ZjVmYWU2YmJhN2Y1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjliZjk5NTY1NjFlNzNhY2UuMGNiMWY0NTJlNmFhODUzNQogICAgIGZmYWQxZGVjZDBhMDA5MWIuZjZiMTA1YmI0YTlhNjAyMC43NGVjNGJjMGM5M2Y2Y2NkLjE0Yjc0ZjJlMzFlZGJhZGMKICAgICBjZDFhNjM0OTc0MmMyNWM1CiAKLVZTUVJUU0RfMTI4KHJlZykKK1ZBRERTU18xMjgocmVnKQogICBiZWZvcmUKICAgICAyNDc3YjdiZWU1ZThjZDI2LjIxZjFjZGVjYjM1NDA3YTIuOTNhODE5OTVmMWM1YzJiMC4zZjhiOTNhYzBkMGM4NWIwCiAgICAgNzQxYzQ1ZjcyMWFkZWNhYi5kN2Q4NmE4NzZhOWQxZmQxLjNiMDBhYjNmNTQ3NGJlY2QuNzBhN2NhZmJkN2E5OTg2NQpAQCAtMTA2MTcsMTIgKzEwNjE3LDEyIEBACiAgICAgNzQ2YTA1NmE2OTgzODFjZi42YmM0NTczOWMyMjQ4OGRhLjFmMDIzNmFmYzA4YzcyNjAuNzA4YWYyNzc2YTg0YTBmOQogICAgIGY4ZThkYzdiNmNkYTBjMmUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2IwMGFiM2Y1NDc0YmVjZC5mZmY4MDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNiMDBhYjNmNTQ3NGJlY2QuNzBhN2NhZmJkN2E5OTg2NQogICAgIDc0MWM0NWY3MjFhZGVjYWIuZDdkODZhODc2YTlkMWZkMS4zYjAwYWIzZjU0NzRiZWNkLjcwYTdjYWZiZDdhOTk4NjUKICAgICAxYjU0MGI2MmM0MDdiZmZmLmZjMzA2ZWE3MTA4OTBiZDUuNGIwNWI2MjQxMDMzOGYyNC5lMjBkNmI5YjQyMjI2MzFhCiAgICAgNzQ2YTA1NmE2OTgzODFjZi42YmM0NTczOWMyMjQ4OGRhLjFmMDIzNmFmYzA4YzcyNjAuNzA4YWYyNzc2YTg0YTBmOQogICAgIGY4ZThkYzdiNmNkYTBjMmUKLVZTUVJUU0RfMTI4KG1lbSkKK1ZBRERTU18xMjgobWVtKQogICBiZWZvcmUKICAgICA1NGYzYTM5MzYzMzE2MmU2LmRiYWIyZDdhYWNhYzcwYzYuMDI1ZmEwMmE5Yjc5NTIwYi4xNDQ0Mjc0ZTAxMGRhMzJmCiAgICAgNjI3OWM1YWI2YzkzNjA0ZC5hYjYzODEwMDJhMGZjNjkxLjliY2VjNTY0Yjg5NDI0OTUuODQxODg2NmM2ZTQyNWUzYQpAQCAtMTA2MzIsMTEgKzEwNjMyLDExIEBACiAgIGFmdGVyCiAgICAgNTRmM2EzOTM2MzMxNjJlNi5kYmFiMmQ3YWFjYWM3MGM2LjAyNWZhMDJhOWI3OTUyMGIuMTQ0NDI3NGUwMTBkYTMyZgogICAgIDYyNzljNWFiNmM5MzYwNGQuYWI2MzgxMDAyYTBmYzY5MS45YmNlYzU2NGI4OTQyNDk1Ljg0MTg4NjZjNmU0MjVlM2EKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWJjZWM1NjRiODk0MjQ5NS4yYTE5NjUyN2Q1NjFmN2JjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjliY2VjNTY0Yjg5NDI0OTUuODQxODg2NmM2ZTQyNWUzYQogICAgIDAwMjIwODhjMjNhZTNlZDYuZmE2ODlhMWM0NWIwOTk1MS40NzU4OTQ2ODJjNGRkMzYzLjQ4YTA3YmQ1M2VmNTYwYmEKICAgICA1NGVlMDlmOGQ5OGIyMDg3CiAKLVZTUVJUU0RfMTI4KHJlZykKK1ZBRERTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA0Y2ZkZjQ0YjEwMDU1OTQxLjQ4ZGQyMDJjMDg3ZTk4NTEuMzE0YzU3ODkxYjA3OGU5Zi4xMjBiMzYwOWJiMDMyOGZlCiAgICAgOGMxODM5Mzg3ZmVlNDk5NC5iMjQyODM3YzZmOGE4ODJhLjQyZDgzMDFiOWFjN2RiNzAuNGZjMmE0YTNmZGFmNzVhMwpAQCAtMTA2NDQsMTIgKzEwNjQ0LDEyIEBACiAgICAgNTRhNWJlOTQ3NzNlMzhiOC41NzNhMTdkZTMwODcxY2E4LjYxMTMyMjVmMDliMzZiNGUuOTM2YWQ1NzgwZDFiZWFiNQogICAgIDUxZjQ5MDg5MTJmMzg5N2IKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDJkODMwMWI5YWM3ZGI3MC5mZmY4MDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQyZDgzMDFiOWFjN2RiNzAuNGZjMmE0YTNmZGFmNzVhMwogICAgIDhjMTgzOTM4N2ZlZTQ5OTQuYjI0MjgzN2M2ZjhhODgyYS40MmQ4MzAxYjlhYzdkYjcwLjRmYzJhNGEzZmRhZjc1YTMKICAgICA3MDhjZDMyY2MzZDIyYTJkLjE4MWRhYzY5NzNkZWNiOGQuODg1NjFmM2Y2MTdjYmI3MS5kYzQ4NWIyNDBmNWU3NzdiCiAgICAgNTRhNWJlOTQ3NzNlMzhiOC41NzNhMTdkZTMwODcxY2E4LjYxMTMyMjVmMDliMzZiNGUuOTM2YWQ1NzgwZDFiZWFiNQogICAgIDUxZjQ5MDg5MTJmMzg5N2IKLVZTUVJUU0RfMTI4KG1lbSkKK1ZBRERTU18xMjgobWVtKQogICBiZWZvcmUKICAgICBmM2IyMDc0NDNhZjExMmZhLjk0YWZmNmRiMzhiZGIxZTEuNGM2NDQwYzZjNDkwMzlhNC4yNzViMzRlOTMxZjYyN2IyCiAgICAgNTM3MGI2OTZhMjIxM2U1ZC44Y2Y2Nzg2Y2EyZGNjZjUyLmQxNjlhNDBmNDgwNmRjYjAuMzc3YTUyNDc3MmQ0MmI0YQpAQCAtMTA2NTksMTEgKzEwNjU5LDExIEBACiAgIGFmdGVyCiAgICAgZjNiMjA3NDQzYWYxMTJmYS45NGFmZjZkYjM4YmRiMWUxLjRjNjQ0MGM2YzQ5MDM5YTQuMjc1YjM0ZTkzMWY2MjdiMgogICAgIDUzNzBiNjk2YTIyMTNlNWQuOGNmNjc4NmNhMmRjY2Y1Mi5kMTY5YTQwZjQ4MDZkY2IwLjM3N2E1MjQ3NzJkNDJiNGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDE2OWE0MGY0ODA2ZGNiMC4zM2E0ZGQyZmNhMTZhZmU0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQxNjlhNDBmNDgwNmRjYjAuMzc3YTUyNDc3MmQ0MmI0YQogICAgIGMwMWJhZGFiYTA0ODc2ODEuMTQ2YTQ2MjFkZTI3ZWNjMy5mZjJmMGE3MTk2NjZhNmEzLmE2NmM5ZTM0YjU4YWZhYzQKICAgICBiY2Q4YzU5YWVlN2MzZGZlCiAKLVZTUVJUU0RfMTI4KHJlZykKK1ZBRERTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA4ZDRhZTg4NWIxMzZiNzFjLjg1YTFlZDQ2NmU1N2Y5OWEuNWMyZjhiMWNlOTZiNjMxYS41Zjg5MDQ2Mjk3Njg0NWUyCiAgICAgNzMwZjAxNjE5YjQ2YTZjYS43YTU2NTUyOGVjYzkxMTQ4LmNiNjEwYTEyMGM3ZjcwNmEuYzBlZDI4NjRmOTA3NWJlMApAQCAtMTA2NzEsMTIgKzEwNjcxLDEyIEBACiAgICAgZjFjMTBhOWQ1Mzk2Y2Q4NC41ZjgwOGU2ZTY2MDNlZjExLjkzM2NhMmEwMGM0NTNiYTguZjUwMmUwNDY1MzRhZGJjNwogICAgIDgxNGI2YjAwODIwNmJkMDkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2I2MTBhMTIwYzdmNzA2YS5mZmY4MDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNiNjEwYTEyMGM3ZjcwNmEuYzBlZDI4NjRmOTA3NWJlMAogICAgIDczMGYwMTYxOWI0NmE2Y2EuN2E1NjU1MjhlY2M5MTE0OC5jYjYxMGExMjBjN2Y3MDZhLmMwZWQyODY0ZjkwNzViZTAKICAgICBjYjczMGU5YjQ4Mzg0NGIzLjc5MDc2MTNjMzVhOTdhYjYuYmY0Y2JkNzBlNGVlNGY2MC5mZTI2ZjM2MWQ5NGVhNGM4CiAgICAgZjFjMTBhOWQ1Mzk2Y2Q4NC41ZjgwOGU2ZTY2MDNlZjExLjkzM2NhMmEwMGM0NTNiYTguZjUwMmUwNDY1MzRhZGJjNwogICAgIDgxNGI2YjAwODIwNmJkMDkKLVZTUVJUU0RfMTI4KG1lbSkKK1ZBRERTU18xMjgobWVtKQogICBiZWZvcmUKICAgICA3ZWNlMTA3YTgyOGUwNmI5LjQyNDdmMWQ1NThlZTdmZTguMDg4YzU3YWE5YWU0MmQ4NC5hMjdkYjQwZjIwMGY3MWVkCiAgICAgYzg1NzRjOWY3MGVmNzEwNC4xODRmYmZhZGY0Y2M5NDhjLjUwZjkzOGRjZWU1N2VmM2MuNGE1YWYwMmFiZWQ4MmRkYwpAQCAtMTA2ODYsMTEgKzEwNjg2LDExIEBACiAgIGFmdGVyCiAgICAgN2VjZTEwN2E4MjhlMDZiOS40MjQ3ZjFkNTU4ZWU3ZmU4LjA4OGM1N2FhOWFlNDJkODQuYTI3ZGI0MGYyMDBmNzFlZAogICAgIGM4NTc0YzlmNzBlZjcxMDQuMTg0ZmJmYWRmNGNjOTQ4Yy41MGY5MzhkY2VlNTdlZjNjLjRhNWFmMDJhYmVkODJkZGMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTBmOTM4ZGNlZTU3ZWYzYy5mZmY4MDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUwZjkzOGRjZWU1N2VmM2MuNGE1YWYwMmFiZWQ4MmRkYwogICAgIGIzYWE3NjlmODQ2OWEwMTkuYzYxOTAyZjI1ZjQ3ZGE0My4yZDIyMzJkMzYzMjRmMzJhLmQxMWJkMjEwMDE5ODI2NjYKICAgICA2OTk3NzFiNGUwYTdkYjU5CiAKLVZDTVBTRF8xMjhfMHgwKHJlZykKK1ZESVZTU18xMjgocmVnKQogICBiZWZvcmUKICAgICAwOGUwMjliM2I3ZTYwNmE2LjBjMGQ1YzUxZTI5YmRjM2MuNTY3MjZlMzU2NmZjODJhZS43YTc2NDQ2ZmJkOTVhY2I4CiAgICAgMGM0MmY2NzkyMmUwZTJmOS4yMmE1Yzg1ZjllZDUyYWE5LmRjN2RiMWNhNzQ2NzdlMDguZDY1YTVlYjJhN2NhZDkzYQpAQCAtMTA2OTgsMTIgKzEwNjk4LDEyIEBACiAgICAgYWY4MGMxMGEyNzM2YTA1Zi5mNWE4MjQ0MDllOTJlZjEzLjNhZGRhZDk3MTM4YzYxM2MuMmEwMTlhZDk5OGE5ODJjZAogICAgIGRiNWRiNDk2ZDg2ZDc2MzUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGM3ZGIxY2E3NDY3N2UwOC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRjN2RiMWNhNzQ2NzdlMDguZDY1YTVlYjJhYTdlNDg3NQogICAgIDBjNDJmNjc5MjJlMGUyZjkuMjJhNWM4NWY5ZWQ1MmFhOS5kYzdkYjFjYTc0Njc3ZTA4LmQ2NWE1ZWIyYTdjYWQ5M2EKICAgICBjZjA5ZDU3MmJlMjFhY2ZkLmQxNDAzN2I1ZDMyMzQ4OGMuYjQ4OGM4MWMyNDEzMGFmZS4xYzk5ZmM4NjNjY2MzN2RkCiAgICAgYWY4MGMxMGEyNzM2YTA1Zi5mNWE4MjQ0MDllOTJlZjEzLjNhZGRhZDk3MTM4YzYxM2MuMmEwMTlhZDk5OGE5ODJjZAogICAgIGRiNWRiNDk2ZDg2ZDc2MzUKLVZDTVBTRF8xMjhfMHgwKG1lbSkKK1ZESVZTU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwYjc4YzdhOTE3MjJjZTQxLjA2ZjRiNmFkZjdhYWZhY2IuNjlhYTBiZWExYTJkZGU2OC5jYWNhNWVhOGRjNWZjMTZkCiAgICAgOTYxZjRlZmU3MmQ2NDgxZi4zMmIxYjBjOGNkMDlmNWVjLjBiMTE2OGEwNjQwMGNmYjcuYzA5OWQ2YjkxYzE3NjQzZQpAQCAtMTA3MTMsMTEgKzEwNzEzLDExIEBACiAgIGFmdGVyCiAgICAgMGI3OGM3YTkxNzIyY2U0MS4wNmY0YjZhZGY3YWFmYWNiLjY5YWEwYmVhMWEyZGRlNjguY2FjYTVlYThkYzVmYzE2ZAogICAgIDk2MWY0ZWZlNzJkNjQ4MWYuMzJiMWIwYzhjZDA5ZjVlYy4wYjExNjhhMDY0MDBjZmI3LmMwOTlkNmI5MWMxNzY0M2UKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGIxMTY4YTA2NDAwY2ZiNy4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBiMTE2OGEwNjQwMGNmYjcuYzA5OWQ2Yjk4MDE1YTZhNwogICAgIDJjNDFhOTFlZWE2YThjZmIuNzQzNmE0MTJmNWJhYzFmZi40NjQyNzZlMmNmODBhYWY2LjRkMTAwYzhmNmU2ODY1NmUKICAgICA5ZDRmYzIyYmI5MTgzYjI2CiAKLVZDTVBTRF8xMjhfMHgwKHJlZykKK1ZESVZTU18xMjgocmVnKQogICBiZWZvcmUKICAgICBjM2EyMmY3OWViZGQ0NDJkLmYwNTQ3NGMxNDA2MWNmNTIuNDQ5Njk2MTk4MDIzMDk0OS45NmE0MWU0NDI5NDQwYjNlCiAgICAgMWI1MzRmZTQ5ZjQ0YmUzMC43ZTIyYTQ1NzIwODYyMzJhLjU3NmU3ZDQ4N2ZhOGU0ZjguODQ5YjJjNjNjMTcxNWYyZgpAQCAtMTA3MjUsMTIgKzEwNzI1LDEyIEBACiAgICAgZDAwMzk5YzFmZTI2ZjBkOC42YzIzMjAwOGY0OGNlZDBiLmI5YjkxYmNiNGIzMzNkMzguYTY3YTZiODUxODMzZDBjMwogICAgIDkyZmI5NDYwMTBlMTY0YmQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTc2ZTdkNDg3ZmE4ZTRmOC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU3NmU3ZDQ4N2ZhOGU0ZjguODQ5YjJjNjM0ZWQzMGUwNgogICAgIDFiNTM0ZmU0OWY0NGJlMzAuN2UyMmE0NTcyMDg2MjMyYS41NzZlN2Q0ODdmYThlNGY4Ljg0OWIyYzYzYzE3MTVmMmYKICAgICAwMGFmMWZkODcxZDhlM2RhLmI0NzhiNGNhYTllNjQ0YWUuMGEwYjU1MGE4ZmQ0OGJiOS5lYWY0MWMyYWIyMTI2MmY4CiAgICAgZDAwMzk5YzFmZTI2ZjBkOC42YzIzMjAwOGY0OGNlZDBiLmI5YjkxYmNiNGIzMzNkMzguYTY3YTZiODUxODMzZDBjMwogICAgIDkyZmI5NDYwMTBlMTY0YmQKLVZDTVBTRF8xMjhfMHgwKG1lbSkKK1ZESVZTU18xMjgobWVtKQogICBiZWZvcmUKICAgICA4YzQyMTNhN2I1MjdkYjExLmU2OThiYjBiZTJiOTIxZDUuODRlZDY1ZmMxZjg0ZGI2ZC5jMGM0Y2FmNzRmNTIzNDIwCiAgICAgNmUxYTY0NDcyNDExZjFlYy45ZGJkODAyMmI3MWRiMTdlLmQ2YTNmZDkxNDZkYmNhZmYuN2I3ODVlZmEzOGJjYWQxZQpAQCAtMTA3NDAsMTEgKzEwNzQwLDExIEBACiAgIGFmdGVyCiAgICAgOGM0MjEzYTdiNTI3ZGIxMS5lNjk4YmIwYmUyYjkyMWQ1Ljg0ZWQ2NWZjMWY4NGRiNmQuYzBjNGNhZjc0ZjUyMzQyMAogICAgIDZlMWE2NDQ3MjQxMWYxZWMuOWRiZDgwMjJiNzFkYjE3ZS5kNmEzZmQ5MTQ2ZGJjYWZmLjdiNzg1ZWZhMzhiY2FkMWUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDZhM2ZkOTE0NmRiY2FmZi4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ2YTNmZDkxNDZkYmNhZmYuN2I3ODVlZmEyOGU1Yzg1NAogICAgIDVlYjA2ZDNlY2UwM2U4ZTUuNjJlM2U0NjhhYThhZTE4My45YzAyMWI1M2Y1ZDQ5YTY1LjdlMGEyNTM1MjhhMjE1MGEKICAgICA3ZDgxNTE0NjY2MzY3YjUxCiAKLVZDTVBTRF8xMjhfMHgwKHJlZykKK1ZESVZTU18xMjgocmVnKQogICBiZWZvcmUKICAgICBhMGQwNTJkZGY5NDY1MzVkLjI0MDYxZDZkNDEyMzQyNWMuMjg3YzdiNmUwMGFhZjkzNy5jODQzOTk1N2I2OGRmMzkxCiAgICAgNDM0NDI0Njg3ZDVjZDlkYi40MjFlOGZhNWVlMTcyYjA5LmZmZDVhNWYxYjdjYjYwNDcuOWVhMTVhYWRlM2Q1M2Q5ZApAQCAtMTA3NTIsMTIgKzEwNzUyLDEyIEBACiAgICAgNzhjYjJjMDZjNWQwZGRkYi5mYWMzYWFkYzY0YWI5OGI4LjU0ZjFhMzIwYmU0MzBlMjkuYmNkZjlhMDBlZTQxOTMwOAogICAgIGJiNTgxMGQ0MDU3YzE2YmUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZkNWE1ZjFiN2NiNjA0Ny4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZDVhNWYxYjdjYjYwNDcuOWVhMTVhYWQ3ZjgwMDAwMAogICAgIDQzNDQyNDY4N2Q1Y2Q5ZGIuNDIxZThmYTVlZTE3MmIwOS5mZmQ1YTVmMWI3Y2I2MDQ3LjllYTE1YWFkZTNkNTNkOWQKICAgICBjMTI5YzM1MjhkMDc0ODc2Ljk1YzM0MGQxZjBlYjVlMTkuNDUzODVlNWU2ZTdhNTM1ZS5mYmU2ZGM0MTk3YjgzM2I2CiAgICAgNzhjYjJjMDZjNWQwZGRkYi5mYWMzYWFkYzY0YWI5OGI4LjU0ZjFhMzIwYmU0MzBlMjkuYmNkZjlhMDBlZTQxOTMwOAogICAgIGJiNTgxMGQ0MDU3YzE2YmUKLVZDTVBTRF8xMjhfMHgwKG1lbSkKK1ZESVZTU18xMjgobWVtKQogICBiZWZvcmUKICAgICBkNTFjYmFhYmY3NzY3YjA1LmMzNzU1OWYyYzI0NWQ0YjYuNGJlODRiYjQ2NTY0OTUxMS44YTRlNmVhMzQ1YjBjYzUzCiAgICAgZTZmOTE1NmZlMTM5N2MwOC5mZTc1NDg4MTFmZjE2OGIyLjY1ZmY5ZTQ0MTAyMTEwNTAuNDE5OWJkNTM5ZjRmY2I4OQpAQCAtMTA3NjcsMTEgKzEwNzY3LDExIEBACiAgIGFmdGVyCiAgICAgZDUxY2JhYWJmNzc2N2IwNS5jMzc1NTlmMmMyNDVkNGI2LjRiZTg0YmI0NjU2NDk1MTEuOGE0ZTZlYTM0NWIwY2M1MwogICAgIGU2ZjkxNTZmZTEzOTdjMDguZmU3NTQ4ODExZmYxNjhiMi42NWZmOWU0NDEwMjExMDUwLjQxOTliZDUzOWY0ZmNiODkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjVmZjllNDQxMDIxMTA1MC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY1ZmY5ZTQ0MTAyMTEwNTAuNDE5OWJkNTM5OTE2NzEwMgogICAgIDVlMjljYjczMGI1MDQ1ZjUuYjRhMjVhMzg2YjFmNWFiZi42NDMzNGIzZGQxZDk3MzMzLmE2MmRkNGVhMzk1MTc2YzcKICAgICAwYjBkOTVhOWIyY2M5YjI4CiAKLVZDTVBTRF8xMjhfMHgxKHJlZykKK1ZVTlBDS0xQU18xMjgocmVnKQogICBiZWZvcmUKICAgICA2MjBjYzk0NTZlYTlmMDQ0LjdjMTUxZThhODNiYjg1MzYuZTY2ODc1Mzk5MmJhMzAyOC4wMmU3OWM3ZDIwZWJkMzJmCiAgICAgMDc3NjZjMmEwODcyYjFjOC4wMTQ5MTIzZjYzMjA1MWU0Ljc5YjM0MDhjODliYjk0NjIuZDhiZTkwMjY4OTMyYTFjMQpAQCAtMTA3NzksMTIgKzEwNzc5LDEyIEBACiAgICAgYWNiYWVmODA0N2ZlNjZiNi5iMGI5Y2EzM2M5MGE3ZjM1LjJlMDdkY2RjNTkyNGY0ZmMuOWYwMDRmNWYxNjhjN2E1OQogICAgIDQ4MDQxMWM3NzNiN2ZkYjYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzliMzQwOGM4OWJiOTQ2Mi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMzODJhMjIyZDhiZTkwMjYuMjdiOTlhMTU4OTMyYTFjMQogICAgIDA3NzY2YzJhMDg3MmIxYzguMDE0OTEyM2Y2MzIwNTFlNC43OWIzNDA4Yzg5YmI5NDYyLmQ4YmU5MDI2ODkzMmExYzEKICAgICA1Njk2N2FjNTFjYjUxYTVmLmM5OTEyMjdlYzY4YzY2MmEuYzhjZWI5OWVlZGIwYzExYS5jMzgyYTIyMjI3Yjk5YTE1CiAgICAgYWNiYWVmODA0N2ZlNjZiNi5iMGI5Y2EzM2M5MGE3ZjM1LjJlMDdkY2RjNTkyNGY0ZmMuOWYwMDRmNWYxNjhjN2E1OQogICAgIDQ4MDQxMWM3NzNiN2ZkYjYKLVZDTVBTRF8xMjhfMHgxKG1lbSkKK1ZVTlBDS0xQU18xMjgobWVtKQogICBiZWZvcmUKICAgICA5YTVhNjY0ODU5NDdkZTViLjYzMmNjOGM5MjRkOGQyNzkuOTI4Yzg2NGE4N2E2NWEzMS4wOWE4YTNiMDZhYTQ2OGIzCiAgICAgNzFjZWM5Y2RlNTQ4ZGE3Mi5kODM5ZmYwYjUwY2Y5OTUzLjRiZDdkMmFmMWQ2ZGIxNDkuYjRmZTBjODhiYmJiNWFlYwpAQCAtMTA3OTQsMTEgKzEwNzk0LDExIEBACiAgIGFmdGVyCiAgICAgOWE1YTY2NDg1OTQ3ZGU1Yi42MzJjYzhjOTI0ZDhkMjc5LjkyOGM4NjRhODdhNjVhMzEuMDlhOGEzYjA2YWE0NjhiMwogICAgIDcxY2VjOWNkZTU0OGRhNzIuZDgzOWZmMGI1MGNmOTk1My40YmQ3ZDJhZjFkNmRiMTQ5LmI0ZmUwYzg4YmJiYjVhZWMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGJkN2QyYWYxZDZkYjE0OS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA5YThhM2IwYjRmZTBjODguNmFhNDY4YjNiYmJiNWFlYwogICAgIDFkM2VhYTkzNWRjOTEyYTcuNmM1NDdkMmEwMzQ1MmNmZS5iMjA1MGIxNDNlYTljNTdmLmU5ZjliMWYxOGVkZWE4OTMKICAgICAyYjM2ZTU1YTQ5MDM3YjU5CiAKLVZDTVBTRF8xMjhfMHgxKHJlZykKK1ZVTlBDS0xQU18xMjgocmVnKQogICBiZWZvcmUKICAgICBhZTU3YWI3NmI0ZjBiZDUwLmFiZDQxZmFjODE2M2M2MWUuNDNmOWJhZGZjMmRjNmYyNy4xODgwZjFlYzAyMzdmYWY1CiAgICAgY2NhYWZlYjE2YjJmYTcyNS4yZWI3OTM3YWJiOWM4NWI4LjQ4NmE0NzNkNDBjMGZkMTguYzRhMzU2YzIwZDFmOWMzOApAQCAtMTA4MDYsMTIgKzEwODA2LDEyIEBACiAgICAgNGQxMTNiMzUyZmQ5NmExNy44Mzk2NjZlMGRlMjExMzAyLjRiZGIzZWE0ZTdhMWVkMDAuNjMwZjkxMTc2YjJlMTZkMwogICAgIDBkZjI1ZjZmZjU2ZDY3ODMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDg2YTQ3M2Q0MGMwZmQxOC5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk0MzliNzgyYzRhMzU2YzIuN2M2ZDY3NzMwZDFmOWMzOAogICAgIGNjYWFmZWIxNmIyZmE3MjUuMmViNzkzN2FiYjljODViOC40ODZhNDczZDQwYzBmZDE4LmM0YTM1NmMyMGQxZjljMzgKICAgICBlMzc5ZGE3NzBiNGU3ODgzLjgyYjQ4MWU3MjY4MjBhOWYuZDdmMTFmYjAxODdlMTM3Yy45NDM5Yjc4MjdjNmQ2NzczCiAgICAgNGQxMTNiMzUyZmQ5NmExNy44Mzk2NjZlMGRlMjExMzAyLjRiZGIzZWE0ZTdhMWVkMDAuNjMwZjkxMTc2YjJlMTZkMwogICAgIDBkZjI1ZjZmZjU2ZDY3ODMKLVZDTVBTRF8xMjhfMHgxKG1lbSkKK1ZVTlBDS0xQU18xMjgobWVtKQogICBiZWZvcmUKICAgICA2ZGFjOWQ3NjM2MzYxM2IwLjY3YmUxZDU1NzQ1YWJhOGQuMGMyYmJjNTIwMDgzNWEwYi4wMjc0YTA4NjQ4YjZjNzRmCiAgICAgNjEwOWM3MTY0Yjk2ZDk4NS44ZWNjN2Q0NTc1NWZhNDkwLmZiM2QwMTI4YThiNjliZTcuNTcwODQyYzBkNzQ4ZGMxNgpAQCAtMTA4MjEsMTEgKzEwODIxLDExIEBACiAgIGFmdGVyCiAgICAgNmRhYzlkNzYzNjM2MTNiMC42N2JlMWQ1NTc0NWFiYThkLjBjMmJiYzUyMDA4MzVhMGIuMDI3NGEwODY0OGI2Yzc0ZgogICAgIDYxMDljNzE2NGI5NmQ5ODUuOGVjYzdkNDU3NTVmYTQ5MC5mYjNkMDEyOGE4YjY5YmU3LjU3MDg0MmMwZDc0OGRjMTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmIzZDAxMjhhOGI2OWJlNy4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyNzRhMDg2NTcwODQyYzAuNDhiNmM3NGZkNzQ4ZGMxNgogICAgIDcxZTFkMWQ0NWY0ODllZGEuNmUzYWE0NDExZDIzMzVlZi43NzBjNDVhZmY3YmRmZmM2LjRiNTAzM2YwZjIxM2FhYmIKICAgICBhMTlkN2FiZWI1NjVkYmYwCiAKLVZDTVBTRF8xMjhfMHgxKHJlZykKK1ZVTlBDS0xQU18xMjgocmVnKQogICBiZWZvcmUKICAgICAwNjE0ZjA5NTE2NjQzNzRlLjQ2ZjJhOGNiOTZiMzE2YjIuZTAzMjYzMjZmY2ZhNTRhMy5iZDYwM2MzOWQ3YTk5OTIyCiAgICAgZDUwMjkyZTFiMjlkZmI3Zi4xZGQ3NWIwYjEwZTQ5NmUyLmNlYmI5MDhhMDc4NWZjOTUuZDg2MTEyZDdhZDk2MWQwMApAQCAtMTA4MzMsMTIgKzEwODMzLDEyIEBACiAgICAgMjA3MjQ3ODgwOWVhYWEwYi40NTRkNDYxYjQwYzlhMWZiLjhmYjAyMTdmMTNlM2RiZTEuZmM5ZjQ4ZmZhOGEwZDZmNAogICAgIGJkNzJhMDYyMDZkNTgzNjIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2ViYjkwOGEwNzg1ZmM5NS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmEzZGQ0Mjc1ZDg2MTEyZDcuOTQ4ZjQ4OGNhZDk2MWQwMAogICAgIGQ1MDI5MmUxYjI5ZGZiN2YuMWRkNzViMGIxMGU0OTZlMi5jZWJiOTA4YTA3ODVmYzk1LmQ4NjExMmQ3YWQ5NjFkMDAKICAgICA2OWIzNWIwZTI0OWI2MzJmLmQ0NWM2NjgyZWFlN2RiOTYuOTUyMTI2ZDlkYjRlNmI3MC5hM2RkNDI3NTk0OGY0ODhjCiAgICAgMjA3MjQ3ODgwOWVhYWEwYi40NTRkNDYxYjQwYzlhMWZiLjhmYjAyMTdmMTNlM2RiZTEuZmM5ZjQ4ZmZhOGEwZDZmNAogICAgIGJkNzJhMDYyMDZkNTgzNjIKLVZDTVBTRF8xMjhfMHgxKG1lbSkKK1ZVTlBDS0xQU18xMjgobWVtKQogICBiZWZvcmUKICAgICBjMzIzYzc4OGM5M2IwYjAyLjU1OGQ1MmJjZmQxNzBkYmYuNGU3Njc2YzIyZDk1YTQzZC4xOWI0N2RlODRiZDA4ODk0CiAgICAgZWI3ZTM3NWYwZWRkMjkwMS42MzRlNzkxNDlhYWNjOGY2LmM5YTM3MjYzY2U1ODlmODcuOGY3ODM2ODAyMGEwYjAzNApAQCAtMTA4NDgsMTEgKzEwODQ4LDExIEBACiAgIGFmdGVyCiAgICAgYzMyM2M3ODhjOTNiMGIwMi41NThkNTJiY2ZkMTcwZGJmLjRlNzY3NmMyMmQ5NWE0M2QuMTliNDdkZTg0YmQwODg5NAogICAgIGViN2UzNzVmMGVkZDI5MDEuNjM0ZTc5MTQ5YWFjYzhmNi5jOWEzNzI2M2NlNTg5Zjg3LjhmNzgzNjgwMjBhMGIwMzQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzlhMzcyNjNjZTU4OWY4Ny5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE5YjQ3ZGU4OGY3ODM2ODAuNGJkMDg4OTQyMGEwYjAzNAogICAgIDBkNjJlOGNjOGMwNjE5Y2IuN2VmNjA4ZTQ0NTQ0MzVhMC44OTM3YmY0Mzk5ZjA3MGU1LmFmNzRiMWVlMTAxOTVjZWMKICAgICAxMTQzNmE5YzYyZGI1OTVkCiAKLVZDTVBTRF8xMjhfMHgyKHJlZykKK1ZDVlRTSTJTU18xMjgocmVnKQogICBiZWZvcmUKICAgICBjZjAzNzAyOGMxYjBiZjZiLmJmODIxZjNiZmRhNTY0ZWUuNDM3NDY4MzM4YTVlNWY2YS44NTM3MDg1YWZjZGRiZDUxCiAgICAgNDVmZmMwMDBjOTI0Y2JjMy4wMjdkOTEwYTYwYjEzNTFmLjUxYzlkMzU4ZWExMmQxNjcuNjU2YjBkMWI4MmYxZjQ3NgpAQCAtMTA4NjAsMTIgKzEwODYwLDEyIEBACiAgICAgYzhkZjJhNDE0MTFiYzUwMC5hYzJmMTI3ODY5M2Q1YjVlLmJjMjdiY2QxNjk3NDdiYWUuM2M5ZjNiNGM2YWJjMGE5OQogICAgIGVjMzY1ZDk0MDI4YjYyZjAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTFjOWQzNThlYTEyZDE2Ny4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUxYzlkMzU4ZWExMmQxNjcuNjU2YjBkMWI0YzIyZDhiYwogICAgIDQ1ZmZjMDAwYzkyNGNiYzMuMDI3ZDkxMGE2MGIxMzUxZi41MWM5ZDM1OGVhMTJkMTY3LjY1NmIwZDFiODJmMWY0NzYKICAgICBjZjg1NTU4ZjE0YzRiOTExLmIyMWRiODI0ZDAzNTQ4OGIuMDU0MDQ2YmUwMGVhYzY0NS4wMzlmNGE3MzQ4MzdjZTdmCiAgICAgYzhkZjJhNDE0MTFiYzUwMC5hYzJmMTI3ODY5M2Q1YjVlLmJjMjdiY2QxNjk3NDdiYWUuM2M5ZjNiNGM2YWJjMGE5OQogICAgIGVjMzY1ZDk0MDI4YjYyZjAKLVZDTVBTRF8xMjhfMHgyKG1lbSkKK1ZDVlRTSTJTU18xMjgobWVtKQogICBiZWZvcmUKICAgICBmMDMyMmIzNjJmYjA5M2FmLjhlNWIzZTgyZTliNjJhM2QuY2E3ZjFiZWY0OGQ2MjhjMy5kMGM4MzFmZGMwM2MyYzRlCiAgICAgMjI1ZDIxMWQwYTM3NTkwMi43YzQzOGFiZWFiMjAyNTczLmU5ZDk0ZDc2ODkwYTZjZTcuOWU3MGExYWVhMWNjMTVkMgpAQCAtMTA4NzUsMTEgKzEwODc1LDExIEBACiAgIGFmdGVyCiAgICAgZjAzMjJiMzYyZmIwOTNhZi44ZTViM2U4MmU5YjYyYTNkLmNhN2YxYmVmNDhkNjI4YzMuZDBjODMxZmRjMDNjMmM0ZQogICAgIDIyNWQyMTFkMGEzNzU5MDIuN2M0MzhhYmVhYjIwMjU3My5lOWQ5NGQ3Njg5MGE2Y2U3LjllNzBhMWFlYTFjYzE1ZDIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTlkOTRkNzY4OTBhNmNlNy4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU5ZDk0ZDc2ODkwYTZjZTcuOWU3MGExYWVjZTdmMGY0ZgogICAgIDgzNzM3NjZmNDA5ZDkzMTcuM2Y4OWJmZDhlNzkxY2M3ZC45YWRhMjE2NTllNzk0ODFhLmQ5MDU2MzRmNzQ3YTdkMzUKICAgICBmZDhhYWQxODlkYWU3NTZjCiAKLVZDTVBTRF8xMjhfMHgyKHJlZykKK1ZDVlRTSTJTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA0YjQ1ZTIxNWMwZGM5NDM2LjZhZjZjY2IxZDI5NDdmMzEuY2Q4MDlmOGQ5OWIxZjBhOC5lNDE5YmFhNGFiY2I1ODgyCiAgICAgMWY4NGZmYjQ3YTkwMTg0MC5mMGQ4M2JlOTg0MWRlZjhmLmYzMTRhOGVlZDRkMTlhN2QuOWY5MjZkYTQ4YWU5Y2Y1OApAQCAtMTA4ODcsMTIgKzEwODg3LDEyIEBACiAgICAgYzliOWRkODQyMWI2MzljMy40OWVkNTJlY2I2MTY0ZmM4Ljc2NDEyNjYwNTQzZDZmZDMuZDg2MjEyOTMyYmJiZTAwMAogICAgIDBlNTFmYzViMjY4NmYzMmEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjMxNGE4ZWVkNGQxOWE3ZC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzMTRhOGVlZDRkMTlhN2QuOWY5MjZkYTQ0ZTFhMWJjZAogICAgIDFmODRmZmI0N2E5MDE4NDAuZjBkODNiZTk4NDFkZWY4Zi5mMzE0YThlZWQ0ZDE5YTdkLjlmOTI2ZGE0OGFlOWNmNTgKICAgICBkNTkxZmU1ZjY2NTQzYTM2LmYxZTYzZjA0NzE0NGExNWQuMGM5MGQ2NjUzNDdiMDVhNy5hNzExYjc0ZjU1ZTA2OGM5CiAgICAgYzliOWRkODQyMWI2MzljMy40OWVkNTJlY2I2MTY0ZmM4Ljc2NDEyNjYwNTQzZDZmZDMuZDg2MjEyOTMyYmJiZTAwMAogICAgIDBlNTFmYzViMjY4NmYzMmEKLVZDTVBTRF8xMjhfMHgyKG1lbSkKK1ZDVlRTSTJTU18xMjgobWVtKQogICBiZWZvcmUKICAgICAyNWE5ZjE5MzYyNGU1ZDczLjU4NDg5NzhlNDY0MjRmOTQuZDRiN2YyOGU2ZTllYjZmYy44YzczOTM0YWQxYTIxMmFjCiAgICAgZjkzNzZiMjdmYzFlZDkwNi5kYzhhMjhlOTcyODNiYTU0LjZlMTE5OWQ3YjVlODkxMjUuYTk3MjE5OGY0NjM3MmFkZgpAQCAtMTA5MDIsMTEgKzEwOTAyLDExIEBACiAgIGFmdGVyCiAgICAgMjVhOWYxOTM2MjRlNWQ3My41ODQ4OTc4ZTQ2NDI0Zjk0LmQ0YjdmMjhlNmU5ZWI2ZmMuOGM3MzkzNGFkMWEyMTJhYwogICAgIGY5Mzc2YjI3ZmMxZWQ5MDYuZGM4YTI4ZTk3MjgzYmE1NC42ZTExOTlkN2I1ZTg5MTI1LmE5NzIxOThmNDYzNzJhZGYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmUxMTk5ZDdiNWU4OTEyNS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZlMTE5OWQ3YjVlODkxMjUuYTk3MjE5OGZjZTM5NzdiNQogICAgIDQ4MjZlMzE0YjcwN2ZhYmMuMzU1NmMxNDI0ZDU0Nzk1NC4zZWE0ZjIwYTYzZjQ5NjAzLjZjMDY2MWRhODkxZWFkMDIKICAgICBjOTM0MWJiODhmODk4ZjRhCiAKLVZDTVBTRF8xMjhfMHgyKHJlZykKK1ZDVlRTSTJTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA5ZjVlZGVhMWZlNTNkNjljLjdhMWVkODQ0MTEzODE3MzcuYzM3OGJmMTgzNGZkNDZlYi4yZDc2OWFjZDAwY2QzODExCiAgICAgNDhkMWE2MDE3MjA4YzBhMy5kYTdiNDM4MTM5YTEzNmFkLmI3N2Q4NmYwOTI4YjU3MjIuOWIwNzNiZTY5ZTk5M2VjNApAQCAtMTA5MTQsMTIgKzEwOTE0LDEyIEBACiAgICAgODdjMTM2ZDdkNjY1Njc4Mi45MTk4NmNjZTYxNGQ2ZDM4LjQxNjA1NzUyMjA4NzM0MWUuNjM5OTU1Y2E0NzM3NjljNwogICAgIDc2MzJjNjZkOGIyMjA2NzAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjc3ZDg2ZjA5MjhiNTcyMi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI3N2Q4NmYwOTI4YjU3MjIuOWIwNzNiZTZjZWU5YmJmMwogICAgIDQ4ZDFhNjAxNzIwOGMwYTMuZGE3YjQzODEzOWExMzZhZC5iNzdkODZmMDkyOGI1NzIyLjliMDczYmU2OWU5OTNlYzQKICAgICAyMmQ5NzA0NTg1MzU4NzBiLjQzMGJhMWI1NGE0ZjE0NDkuNmRiMTBmMzQwMjhiZThhNC42NDI0NTA0MTU3NjM2NjQ3CiAgICAgODdjMTM2ZDdkNjY1Njc4Mi45MTk4NmNjZTYxNGQ2ZDM4LjQxNjA1NzUyMjA4NzM0MWUuNjM5OTU1Y2E0NzM3NjljNwogICAgIDc2MzJjNjZkOGIyMjA2NzAKLVZDTVBTRF8xMjhfMHgyKG1lbSkKK1ZDVlRTSTJTU18xMjgobWVtKQogICBiZWZvcmUKICAgICA3OGJiMjAxNzNlMmZmNzZkLmQ0ZDdmNjI1ZmUyNDllYjEuOWZmMDIyYjY5OWE3ZmNhNS44ZmQ2NWJiNDg5MGU3ODNjCiAgICAgNDRmZmRlYjI3ZDZhZjllYi42NTY2YWI5YTljZmY2NjQ3LjRiZGQzZTViMGU2YTdlYmQuYjI1ZTE2YzhkOWE5ZjBhOQpAQCAtMTA5MjksMTEgKzEwOTI5LDExIEBACiAgIGFmdGVyCiAgICAgNzhiYjIwMTczZTJmZjc2ZC5kNGQ3ZjYyNWZlMjQ5ZWIxLjlmZjAyMmI2OTlhN2ZjYTUuOGZkNjViYjQ4OTBlNzgzYwogICAgIDQ0ZmZkZWIyN2Q2YWY5ZWIuNjU2NmFiOWE5Y2ZmNjY0Ny40YmRkM2U1YjBlNmE3ZWJkLmIyNWUxNmM4ZDlhOWYwYTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGJkZDNlNWIwZTZhN2ViZC5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRiZGQzZTViMGU2YTdlYmQuYjI1ZTE2YzhjZWVkZTMxMAogICAgIGFlZWM3NjZmMGQ5YzFmMTguYzQxZGU1YTlhNDM2OWM1My5lOWE4OTk4OTIyNTg0YjljLmVjZDhhMmIyOWI1MDZiMjIKICAgICBiYTYxNmI2MTQ2NzRlNjg2CiAKLVZDTVBTRF8xMjhfMHgzKHJlZykKK1ZBTkRQU18xMjgocmVnKQogICBiZWZvcmUKICAgICBjZDJkZGE3MTQ3ZGQ4NGU5LjA0MmM0ODY5OTZhYWJiMWYuNDlkZTYyMWI0NmFiODEyMS45NDFmZDBlYWY3OWMwZGJjCiAgICAgODM4OGVlNGYzYjE3ODNmOC45NDU4NmYwNDFhMTc1ODU3LjgyNDhjNDY0Y2Q2YmU4MDUuNGI1YzVkYjg3Yjc4YjIzNgpAQCAtMTA5NDEsMTIgKzEwOTQxLDEyIEBACiAgICAgNDQxYWVkMjA2YTJmOGZjOS5kNmEzYTlkMjg2M2M4NDA5LjgwNDYyODJiZjlmZDJiYmQuNTE1NjZhNDZmYTJhOTRlYgogICAgIDU3YWNlMmUwMmUxNzQ5N2QKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODI0OGM0NjRjZDZiZTgwNS4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgyMDAwNDYwYzUwMjA4MDAuNDgwODFkOTg0ODc4YjIzNgogICAgIDgzODhlZTRmM2IxNzgzZjguOTQ1ODZmMDQxYTE3NTg1Ny44MjQ4YzQ2NGNkNmJlODA1LjRiNWM1ZGI4N2I3OGIyMzYKICAgICAzNmJkYTA2NWJkYWUxZDVmLjNjM2I2NjJlYjZlZWIyZWMuY2JhNjA3ZjBkNTAyMGRhYS5lYzJhYmRkZGM4ZjlmNjM3CiAgICAgNDQxYWVkMjA2YTJmOGZjOS5kNmEzYTlkMjg2M2M4NDA5LjgwNDYyODJiZjlmZDJiYmQuNTE1NjZhNDZmYTJhOTRlYgogICAgIDU3YWNlMmUwMmUxNzQ5N2QKLVZDTVBTRF8xMjhfMHgzKG1lbSkKK1ZBTkRQU18xMjgobWVtKQogICBiZWZvcmUKICAgICBkYmY4YTA5NTdmY2NkMTFhLjA3ZTlkMmVkZGQyNjE0ZTMuNDA1YmI0ZGNhNTBjOGJkYi5mZDcyMjE4MmQ1ZTc3ZmVhCiAgICAgYjcwNjIwNTMwYTU2ZThlZC5kZDc3NGEzNmIzMWRlYTU5LjU0MmUwNDM4MmY2YTgzOGUuOWU3N2YwNWYwNjRjNDVkYwpAQCAtMTA5NTYsMTEgKzEwOTU2LDExIEBACiAgIGFmdGVyCiAgICAgZGJmOGEwOTU3ZmNjZDExYS4wN2U5ZDJlZGRkMjYxNGUzLjQwNWJiNGRjYTUwYzhiZGIuZmQ3MjIxODJkNWU3N2ZlYQogICAgIGI3MDYyMDUzMGE1NmU4ZWQuZGQ3NzRhMzZiMzFkZWE1OS41NDJlMDQzODJmNmE4MzhlLjllNzdmMDVmMDY0YzQ1ZGMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTQyZTA0MzgyZjZhODM4ZS4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQwMGEwNDE4MjUwODgzOGEuOWM3MjIwMDIwNDQ0NDVjOAogICAgIGViOTc1Nzk3M2IxN2IxZTcuMmUwMGU0ZjBmNjQwNzMwNi5lZTU4NjA5N2Y3MDEzNDQ0LmJjM2NmZDVmZDZiOTE2YzEKICAgICBmMTk0MzQ1YWFjZDk5OTBjCiAKLVZDTVBTRF8xMjhfMHgzKHJlZykKK1ZBTkRQU18xMjgocmVnKQogICBiZWZvcmUKICAgICBiYWY1MzA4YzQ3YTQ3ZWNjLmZhYjIwNmY1MWE2NmRjNjYuNjE5M2ZkMzk5Yjg0YTA5Ny4yYjQ3NjQ3MTZiNTI2NmExCiAgICAgNzNhYWVkNjE0MmE2MDFhZi5kMmJmNjcwYmEzYjk4NWNjLjE3MTQ5YWFmMTNmOTBjMzMuODM4MTljNGViYzYyNzk4ZApAQCAtMTA5NjgsMTIgKzEwOTY4LDEyIEBACiAgICAgMjQ0MzlhYTRjYTgwY2Y4OC40ZWRmMmYwZjIxOWM0NGZiLjc3MTQ0ZWQyZTlhNzk0M2QuZjUwYTlhYmQ1ZmVjMzBjOQogICAgIGM2ZjA1NzI4ZWE3ZTRkNmYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTcxNDlhYWYxM2Y5MGMzMy4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyMTA5MmFlMTEyOTA0MDIuODI4MDg0MDgwNDIwMjgwNQogICAgIDczYWFlZDYxNDJhNjAxYWYuZDJiZjY3MGJhM2I5ODVjYy4xNzE0OWFhZjEzZjkwYzMzLjgzODE5YzRlYmM2Mjc5OGQKICAgICA3NzAwNjc0NTNhNmI1ZDVlLjRmOGFmNmM1ZjExYzZhNDQuYWFkMGI2YmVmOTJiZjQ4Ni5kMmQ0ODUxODA0M2MyODM3CiAgICAgMjQ0MzlhYTRjYTgwY2Y4OC40ZWRmMmYwZjIxOWM0NGZiLjc3MTQ0ZWQyZTlhNzk0M2QuZjUwYTlhYmQ1ZmVjMzBjOQogICAgIGM2ZjA1NzI4ZWE3ZTRkNmYKLVZDTVBTRF8xMjhfMHgzKG1lbSkKK1ZBTkRQU18xMjgobWVtKQogICBiZWZvcmUKICAgICAyMjUyMzg0NWMwZmYzYjU3LmQ1YmY4M2VhOGY3MDkzZDcuYTk4OThmZDU0ZTQ0ZDIxYy5kYTJhNWM1NzgwZjgyNzA0CiAgICAgZTVmY2JhMDBmZDdiYjVhYS5lNmMwMWQ4NDI0YzhlNGY3LjNkNTY5MTA0OTQyMWNlZDQuMzA1ZWRlYmE1YWFhZWE4NgpAQCAtMTA5ODMsMTEgKzEwOTgzLDExIEBACiAgIGFmdGVyCiAgICAgMjI1MjM4NDVjMGZmM2I1Ny5kNWJmODNlYThmNzA5M2Q3LmE5ODk4ZmQ1NGU0NGQyMWMuZGEyYTVjNTc4MGY4MjcwNAogICAgIGU1ZmNiYTAwZmQ3YmI1YWEuZTZjMDFkODQyNGM4ZTRmNy4zZDU2OTEwNDk0MjFjZWQ0LjMwNWVkZWJhNWFhYWVhODYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2Q1NjkxMDQ5NDIxY2VkNC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI5MDA4MTA0MDQwMGMyMTQuMTAwYTVjMTIwMGE4MjIwNAogICAgIDEwNTg4ZDAwMWY5MDNmNDguOTc4MDU0NWYzMGRkMjA1ZC44MDg0NmI0OWRkYTcwM2I4LjIwNTUyYmM2NDQ2M2VmNmQKICAgICA3M2FlZWU0NzhkODJhOTJhCiAKLVZDTVBTRF8xMjhfMHgzKHJlZykKK1ZBTkRQU18xMjgocmVnKQogICBiZWZvcmUKICAgICAyODU2MTU1Njg4MzE4MzUzLjMwYTFkNzFkM2I0MmM4ZTkuZjBkOGU5N2FkZWIzODNmYS5lNzdlM2MzODE4NjliNDNjCiAgICAgOWI5OTliNWVkMmZlYjk5My4yNzYyYjI4OTJmMWZjZGE4LjE4ZTQyMDk4Y2UxZjYzMTkuZjdjYTlmM2VkYzhmYzMwNgpAQCAtMTA5OTUsMTIgKzEwOTk1LDEyIEBACiAgICAgMmIyMGI0MDhjMTIxMjcwYS4wYTdjMDdmYTBjODczZDJhLjQ5NGI2MThjZGRlZjhkOGMuODI4NzBiNDQ3MTM4ZWUxZgogICAgIGI1OTAwYzFiN2FkMjgxYzUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMThlNDIwOThjZTFmNjMxOS4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA4ZTAyMDAwODgxMDYxMDAuODQwMDEwMDg0NDA1YzEwMgogICAgIDliOTk5YjVlZDJmZWI5OTMuMjc2MmIyODkyZjFmY2RhOC4xOGU0MjA5OGNlMWY2MzE5LmY3Y2E5ZjNlZGM4ZmMzMDYKICAgICAyOGMzN2NjYTA2NzU4Njk3LmQxNjc5ODJlMTYzMjBiYWUuNmRmMWY0MjU5OWIwZmQ2Ni44YzM0MTA0OTQ2MjVlZDQzCiAgICAgMmIyMGI0MDhjMTIxMjcwYS4wYTdjMDdmYTBjODczZDJhLjQ5NGI2MThjZGRlZjhkOGMuODI4NzBiNDQ3MTM4ZWUxZgogICAgIGI1OTAwYzFiN2FkMjgxYzUKLVZDTVBTRF8xMjhfMHgzKG1lbSkKK1ZBTkRQU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwMDFjOTBiYjdjMDI2MzYyLjAwZmMzZjgzOWU4ZWQ4OTkuYWU2ZDdhZDcyZTJiMjA0Ni4wYTNkNjQzYjM1NmE0ZTM3CiAgICAgNDFmNTEyMGU5NGQxNTAyMS4wM2EyMWFhNzNhNDhkNWYwLjk4MDY2ZWIzOTgyOTcwMmUuMGExNWY3OWQzZWFjN2QxNQpAQCAtMTEwMTAsMTEgKzExMDEwLDExIEBACiAgIGFmdGVyCiAgICAgMDAxYzkwYmI3YzAyNjM2Mi4wMGZjM2Y4MzllOGVkODk5LmFlNmQ3YWQ3MmUyYjIwNDYuMGEzZDY0M2IzNTZhNGUzNwogICAgIDQxZjUxMjBlOTRkMTUwMjEuMDNhMjFhYTczYTQ4ZDVmMC45ODA2NmViMzk4Mjk3MDJlLjBhMTVmNzlkM2VhYzdkMTUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTgwNjZlYjM5ODI5NzAyZS4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg4MDQ2YTkzMDgyOTIwMDYuMGExNTY0MTkzNDI4NGMxNQogICAgIDEyYzAwMDgxNzQ4MjNhYjcuMDM4MGFkOWIxZGQ1YTFhNC5iMzVlYzUxNWIxNjQ0NjE1LjNiYTNjMjJiZDJiNzE1MTQKICAgICAyNGYxZjEyZTk0OTdmNThlCiAKLVZDTVBTRF8xMjhfMHg0KHJlZykKK1ZNSU5TU18xMjgocmVnKQogICBiZWZvcmUKICAgICBiYzUzYTI5NTc3NmYzM2VhLjU5NGI2NTc4NzQ3YmFmZTcuYjg0ZjVlNDI5Y2MwZTg1OS45YmI3MjE3Mzk5Yjk0NDZiCiAgICAgNjAxN2NmY2ExNmNhMGJkMy4wNjUzYjhkNGY5NDQxZWU4LjBiMTk0ZDQzNDkyNzZjODYuMzllN2VkN2YzODk4OWYzZQpAQCAtMTEwMjIsMTIgKzExMDIyLDEyIEBACiAgICAgM2RmMTkyNTNmYTNhNzdmZS5mZTBlMTg2NzA1NzdkZTE0LmZhY2RkYWZmYTA5ZjE2ZjcuMGNmZWM2NTEwZDI2NWIwYQogICAgIGY3N2VjYWYwN2JlYzM0NWIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGIxOTRkNDM0OTI3NmM4Ni5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBiMTk0ZDQzNDkyNzZjODYuMzllN2VkN2ZhYjBlMTNiYQogICAgIDYwMTdjZmNhMTZjYTBiZDMuMDY1M2I4ZDRmOTQ0MWVlOC4wYjE5NGQ0MzQ5Mjc2Yzg2LjM5ZTdlZDdmMzg5ODlmM2UKICAgICA2Yzg4NzYzYjBlMzRiOGY2LmY0YTY3NTgwMjBlOTQ1ZTkuNTgyOTc4MDhjMTk5NjdkNy42YmJhYTUyNWFiMGUxM2JhCiAgICAgM2RmMTkyNTNmYTNhNzdmZS5mZTBlMTg2NzA1NzdkZTE0LmZhY2RkYWZmYTA5ZjE2ZjcuMGNmZWM2NTEwZDI2NWIwYQogICAgIGY3N2VjYWYwN2JlYzM0NWIKLVZDTVBTRF8xMjhfMHg0KG1lbSkKK1ZNSU5TU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwYTA1MmZlYzEwNmQ1YWQ4LjJkYTAyMDdkNzc2Nzg0OTguMDI1ODFkNzdjM2Y5YTY5NS40ZjRmNmY5MzgxYzdiNDkyCiAgICAgMjA2MDcxMzNlOWI0ODhhZS45OWRmMWEyNzIwNDcxYjcwLmRiNGYwMTliNzY3YjU4OTkuYjJmYzM0MzAwMDljN2Y1NgpAQCAtMTEwMzcsMTEgKzExMDM3LDExIEBACiAgIGFmdGVyCiAgICAgMGEwNTJmZWMxMDZkNWFkOC4yZGEwMjA3ZDc3Njc4NDk4LjAyNTgxZDc3YzNmOWE2OTUuNGY0ZjZmOTM4MWM3YjQ5MgogICAgIDIwNjA3MTMzZTliNDg4YWUuOTlkZjFhMjcyMDQ3MWI3MC5kYjRmMDE5Yjc2N2I1ODk5LmIyZmMzNDMwMDA5YzdmNTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGI0ZjAxOWI3NjdiNTg5OS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRiNGYwMTliNzY3YjU4OTkuYjJmYzM0MzA4MWM3YjQ5MgogICAgIGM0YzI3ODRlZDRjNWVmMTQuNTU0MDQ3YTg2ODUyZDU4OC43Yjc5NTNkMDJkYjE2ZGQ5LjExMDczYTM1NGE3Zjg2MDMKICAgICBjNmZkNzQ3NTRkYTQzYzQ1CiAKLVZDTVBTRF8xMjhfMHg0KHJlZykKK1ZNSU5TU18xMjgocmVnKQogICBiZWZvcmUKICAgICBmODRlY2U2ZTVlYTYwZDVmLjBhNjEzNmZiMWZhOGEwZmIuNWRmOTcxNTgzZTk1NzEyMC5mYTQyYjliODY5N2M0ODZkCiAgICAgMDU0NTQyOGQxYTEyMzZmYy5jMzA0YzBhMjFlODA0OWViLjUxNzRmOTM2YjFiYTg2YTYuYmZlOWVlNjQwYjc4ZmUzMwpAQCAtMTEwNDksMTIgKzExMDQ5LDEyIEBACiAgICAgMWM1ODZkZTgwMTU2N2U3Mi5mZjg0Mjk4ZWE1NDQ3Njk2LjZkZGIwZjMwZGRlMDBmMmIuODYwMWIxYjllZTMxZTkwOAogICAgIDQyMGEzODNhNjcwNjk2NmUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTE3NGY5MzZiMWJhODZhNi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUxNzRmOTM2YjFiYTg2YTYuYmZlOWVlNjQwYjc4ZmUzMwogICAgIDA1NDU0MjhkMWExMjM2ZmMuYzMwNGMwYTIxZTgwNDllYi41MTc0ZjkzNmIxYmE4NmE2LmJmZTllZTY0MGI3OGZlMzMKICAgICA0NzJmY2UzYzFjNzRmMmM5LmNjNzY5MjJmZWM1YmE3MTAuOGVmYmQ5YWY1ZDRmNTJjNi5hNDNhNmNjMTJkYjA0YTU5CiAgICAgMWM1ODZkZTgwMTU2N2U3Mi5mZjg0Mjk4ZWE1NDQ3Njk2LjZkZGIwZjMwZGRlMDBmMmIuODYwMWIxYjllZTMxZTkwOAogICAgIDQyMGEzODNhNjcwNjk2NmUKLVZDTVBTRF8xMjhfMHg0KG1lbSkKK1ZNSU5TU18xMjgobWVtKQogICBiZWZvcmUKICAgICBiMjIwN2UyZmI2M2IwZmI3LmRlMGMxYmZlNjQ0NjE2YTIuMzlmYWZmYWI2NjQ3NzFhOC40ZDYwOTYyM2NkZjhmOTgyCiAgICAgYjMxMWZkODRmN2RjMGUwZi5lYjk3ZDRlOWUyY2ZmNjA1LjU3YTQ5MjcyNGI3MTU1NzIuODlkNjZiZjZjYTIzNGU3NgpAQCAtMTEwNjQsMTEgKzExMDY0LDExIEBACiAgIGFmdGVyCiAgICAgYjIyMDdlMmZiNjNiMGZiNy5kZTBjMWJmZTY0NDYxNmEyLjM5ZmFmZmFiNjY0NzcxYTguNGQ2MDk2MjNjZGY4Zjk4MgogICAgIGIzMTFmZDg0ZjdkYzBlMGYuZWI5N2Q0ZTllMmNmZjYwNS41N2E0OTI3MjRiNzE1NTcyLjg5ZDY2YmY2Y2EyMzRlNzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTdhNDkyNzI0YjcxNTU3Mi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU3YTQ5MjcyNGI3MTU1NzIuODlkNjZiZjZjZGY4Zjk4MgogICAgIGQ5YWY5YmZlYmQ5NDkwOTkuNTE2MTU5ZWU5ZGRlN2QxOC5hYWM0ZGRhZmVlNjhjOGUyLjg1YzRlYmU5NTllMzIzZTgKICAgICBmZGQ1OGZlMTI0OTAxZGJkCiAKLVZDTVBTRF8xMjhfMHg0KHJlZykKK1ZNSU5TU18xMjgocmVnKQogICBiZWZvcmUKICAgICA0MTA2NzA2ODZhODE3MGUwLmI1ZjViMWZiN2FjMzhiMjUuNjQzOTFjZTAxMjdiOWMxZS45OGQxOGRmZGU1NGRjZWRlCiAgICAgYWRhNDhhZWFjYTQxNTlmYy45MjQ1ZjIwODk4OGVmZDZlLjMwMTdkYTU3MTFlMmYyMDguZGE0M2U5YTU2Zjg4YWQ0MwpAQCAtMTEwNzYsMTIgKzExMDc2LDEyIEBACiAgICAgNmM1NzViOGY0MjVlZGNkMi5iZjMyZTEwMzZhMjkzNWVlLjY2MTgzODg0MjAzYjM3MzcuYzU4MTk1YjJhZTMxZTZmNwogICAgIDI3ZTZkZGYwOWJiOGI3OWUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzAxN2RhNTcxMWUyZjIwOC5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMwMTdkYTU3MTFlMmYyMDguZGE0M2U5YTVhOTI2MjEzZAogICAgIGFkYTQ4YWVhY2E0MTU5ZmMuOTI0NWYyMDg5ODhlZmQ2ZS4zMDE3ZGE1NzExZTJmMjA4LmRhNDNlOWE1NmY4OGFkNDMKICAgICA5Y2ZiZGFkM2RkNWMxNGJlLjRjNmFkODExMzQwMWEyYTMuMTI0ODkwYmYzNzllYmQ4Mi40YWU0NmQ5MmE5MjYyMTNkCiAgICAgNmM1NzViOGY0MjVlZGNkMi5iZjMyZTEwMzZhMjkzNWVlLjY2MTgzODg0MjAzYjM3MzcuYzU4MTk1YjJhZTMxZTZmNwogICAgIDI3ZTZkZGYwOWJiOGI3OWUKLVZDTVBTRF8xMjhfMHg0KG1lbSkKK1ZNSU5TU18xMjgobWVtKQogICBiZWZvcmUKICAgICA0Y2RmYzIzODhiYzQ1MTVkLjc4MDQwOThiOTJkNGVlZTMuYzc2Nzg5Yzg1NTEwNzM3Yy44OWQyZDAxMjY3NDY5Y2Q0CiAgICAgMTAzN2JmNzc5YTYzNmY2MS4xYjRkZTAzMTZiNDk4NjlkLjQwZDY0YTRlMTFjNTE4NzguZDVjNDU0ZDZhODRhMmEwNApAQCAtMTEwOTEsMTEgKzExMDkxLDExIEBACiAgIGFmdGVyCiAgICAgNGNkZmMyMzg4YmM0NTE1ZC43ODA0MDk4YjkyZDRlZWUzLmM3Njc4OWM4NTUxMDczN2MuODlkMmQwMTI2NzQ2OWNkNAogICAgIDEwMzdiZjc3OWE2MzZmNjEuMWI0ZGUwMzE2YjQ5ODY5ZC40MGQ2NGE0ZTExYzUxODc4LmQ1YzQ1NGQ2YTg0YTJhMDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDBkNjRhNGUxMWM1MTg3OC5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQwZDY0YTRlMTFjNTE4NzguZDVjNDU0ZDZhODRhMmEwNAogICAgIGU1MzhmMjg1ODg4ODJiZTcuOWJlN2ZhMzAyNzYyMzdjMC5mNTkyMGI0OTZlYzI4NTZjLjViN2MwY2FjOGE2ZWFjZDAKICAgICA0ZGRhMzg5NzYzYTYxOWMzCiAKLVZDTVBTRF8xMjhfMHg1KHJlZykKK1ZNQVhTU18xMjgocmVnKQogICBiZWZvcmUKICAgICBkOTlmNDA2N2E2MDg5ZGZhLmFlNzgxZjJlOWUyNjQwYzEuMmVjZjM1NWY0MTFkYzg3Zi5lOTc3MDM5NzQ3MjRjNmJjCiAgICAgNWIxNjIwODhmMDFlNzUyMC44NjQ4NTU3YzQ0ODZjOThmLmNhODM4OWVhNTQwOGNmOTguYmVjNTA1NTU2MTgxNWUyYQpAQCAtMTExMDMsMTIgKzExMTAzLDEyIEBACiAgICAgYjE0ZTU0NmQwNzljMTBlYy5kM2M3YzliYmFkYmUyYWI5Ljg5ODQ2ZGMxZDQ5YjJkODcuN2JkMDE4ZDJjYTYxODExMwogICAgIDFiMjQyMTY4NTFmYzg1ZTYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2E4Mzg5ZWE1NDA4Y2Y5OC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNhODM4OWVhNTQwOGNmOTguYmVjNTA1NTU2MTgxNWUyYQogICAgIDViMTYyMDg4ZjAxZTc1MjAuODY0ODU1N2M0NDg2Yzk4Zi5jYTgzODllYTU0MDhjZjk4LmJlYzUwNTU1NjE4MTVlMmEKICAgICAyZjhkZDI2NmRjNzdkZGUyLjQ5NzQwZjVkOTViNTgzN2UuYzk1MWYzM2NmY2FlODdiNy41MDQ5OGU2ZmQ5ZTcwOGU0CiAgICAgYjE0ZTU0NmQwNzljMTBlYy5kM2M3YzliYmFkYmUyYWI5Ljg5ODQ2ZGMxZDQ5YjJkODcuN2JkMDE4ZDJjYTYxODExMwogICAgIDFiMjQyMTY4NTFmYzg1ZTYKLVZDTVBTRF8xMjhfMHg1KG1lbSkKK1ZNQVhTU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwYzEyMjQxZTg5YzNkMDg3LjNkYTdhMTA5MGMxYjRjZTkuZmYwZjAwODRhOWFkN2E2ZS42NDY3ZjVlNTc4NWJmZGI1CiAgICAgMjk2NTllZTE4ZWMyMWQyMi4yZmUyYjVhNjg4N2ZjYTg2LmFiMTYyZmEzYTQ4ZjJlYzYuYjc0Nzg2MTU4NTdiMzNlZApAQCAtMTExMTgsMTEgKzExMTE4LDExIEBACiAgIGFmdGVyCiAgICAgMGMxMjI0MWU4OWMzZDA4Ny4zZGE3YTEwOTBjMWI0Y2U5LmZmMGYwMDg0YTlhZDdhNmUuNjQ2N2Y1ZTU3ODViZmRiNQogICAgIDI5NjU5ZWUxOGVjMjFkMjIuMmZlMmI1YTY4ODdmY2E4Ni5hYjE2MmZhM2E0OGYyZWM2LmI3NDc4NjE1ODU3YjMzZWQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWIxNjJmYTNhNDhmMmVjNi4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFiMTYyZmEzYTQ4ZjJlYzYuYjc0Nzg2MTU3ODViZmRiNQogICAgIDVjNmVlMzNhNzI5YWIwZjkuYjUzMTIzOTQ1MjI3ODQ0ZS5mMDk0NjU5MzA5NTliNTE2LjM2MmViNDQ1NDgwOWJmMjgKICAgICAxOWNkNDgxZDM3OGY4ZTg1CiAKLVZDTVBTRF8xMjhfMHg1KHJlZykKK1ZNQVhTU18xMjgocmVnKQogICBiZWZvcmUKICAgICBlNTk5ZDZiMWZkYTViMjlhLjI4YmNhN2E5ODg4YjZkOGMuMDBkYzc1YmRkOTgzMzZkMS40MGEzNjQzY2FiNWEwMDY0CiAgICAgZjRkZDU5NmIzOWQ1NjkxNi45MjlmZDFkM2RjZTMxZGNhLjIyOWI3ZTk2NDdmNTFiYTUuODBhMjRjZWNiYzdkOWYwNwpAQCAtMTExMzAsMTIgKzExMTMwLDEyIEBACiAgICAgNGUwMDJmMDY3Y2I5N2FlZC5hYzU2NDgwZGFiZmU0NmY2LjU4ODFhNTBkNDU0ODcyZWEuM2M5ZmMzMGQ5ZDVhY2NmYgogICAgIDcxMzU0YzU2YTUyY2QxYTQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjI5YjdlOTY0N2Y1MWJhNS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIyOWI3ZTk2NDdmNTFiYTUuODBhMjRjZWM1OWNmNGYyYgogICAgIGY0ZGQ1OTZiMzlkNTY5MTYuOTI5ZmQxZDNkY2UzMWRjYS4yMjliN2U5NjQ3ZjUxYmE1LjgwYTI0Y2VjYmM3ZDlmMDcKICAgICBhM2U2Y2ViOTg0YWRlY2EzLjc1ZTRkZWE2ODhiMDdjZGYuNzZiODNhOGQzNzA4NzE3My44YTVjOTc4ZDU5Y2Y0ZjJiCiAgICAgNGUwMDJmMDY3Y2I5N2FlZC5hYzU2NDgwZGFiZmU0NmY2LjU4ODFhNTBkNDU0ODcyZWEuM2M5ZmMzMGQ5ZDVhY2NmYgogICAgIDcxMzU0YzU2YTUyY2QxYTQKLVZDTVBTRF8xMjhfMHg1KG1lbSkKK1ZNQVhTU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwNGViYWM1NjhjNTExYjUyLjUyNzc3YWJlYmQ4NDRkYTIuMTVjMzhkZjU1ZmQ4MzYzYy4yMzQwYmM4MjBlNDI1YmI0CiAgICAgZDM4ZDYxZjg2ZmQ0NjYzMC4wOTk3YWE0ZGUyOWFhMjZiLjhhZjYyODQ4YzA0YTA5ZGMuMzU0MjdhNTgyZDgwNjg3ZApAQCAtMTExNDUsMTEgKzExMTQ1LDExIEBACiAgIGFmdGVyCiAgICAgMDRlYmFjNTY4YzUxMWI1Mi41Mjc3N2FiZWJkODQ0ZGEyLjE1YzM4ZGY1NWZkODM2M2MuMjM0MGJjODIwZTQyNWJiNAogICAgIGQzOGQ2MWY4NmZkNDY2MzAuMDk5N2FhNGRlMjlhYTI2Yi44YWY2Mjg0OGMwNGEwOWRjLjM1NDI3YTU4MmQ4MDY4N2QKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGFmNjI4NDhjMDRhMDlkYy5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhhZjYyODQ4YzA0YTA5ZGMuMzU0MjdhNTgyZDgwNjg3ZAogICAgIDkwYzRiN2QxOTYyNGVlMmUuMDMwMWFhYTE0YWQ4YzJmMC4wY2RjNTFlMmZiMjc0N2RjLjlhM2VkYmQ4ZGZmZWRjYmYKICAgICBhNmQwNzc1OWFhNTViYzhmCiAKLVZDTVBTRF8xMjhfMHg1KHJlZykKK1ZNQVhTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA2N2Q2YTllYjNiMjFiMDBmLjM4ZjI1MGUxMTMwYWEzYTYuZmVlNDcxM2RjNDE4MDQwMi5kMTI4ZDcwMjBkYWEyYTk0CiAgICAgM2I5YTZmZmIyZmVmZjNlYi44YTNiMmU0NGZjN2U0OWZlLjFkOWYwZTYxOTNkM2I4ZGIuMTI2YWEzM2QzY2Y1ZTA1NwpAQCAtMTExNTcsMTIgKzExMTU3LDEyIEBACiAgICAgODc4ZWE1NDFhZWJlNTk2NC5hMDUxYTVhZTdmNDE1NjAxLjM3ZDBiOGVkOWVlYzY1OGMuN2NmZmZkYjk2MzE1YjRhYwogICAgIDVjZWI4NGQxOTMwMjRhOTYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWQ5ZjBlNjE5M2QzYjhkYi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFkOWYwZTYxOTNkM2I4ZGIuMTI2YWEzM2QzY2Y1ZTA1NwogICAgIDNiOWE2ZmZiMmZlZmYzZWIuOGEzYjJlNDRmYzdlNDlmZS4xZDlmMGU2MTkzZDNiOGRiLjEyNmFhMzNkM2NmNWUwNTcKICAgICA3YzY5YzVmMzIxNGFjMmNlLjY0NmNjYmU0NmM4ZDliNjMuYmM3ZjdjNzc1Mzk2MTkyNC5hYzZlMzE4MWE1MTUyNTUwCiAgICAgODc4ZWE1NDFhZWJlNTk2NC5hMDUxYTVhZTdmNDE1NjAxLjM3ZDBiOGVkOWVlYzY1OGMuN2NmZmZkYjk2MzE1YjRhYwogICAgIDVjZWI4NGQxOTMwMjRhOTYKLVZDTVBTRF8xMjhfMHg1KG1lbSkKK1ZNQVhTU18xMjgobWVtKQogICBiZWZvcmUKICAgICAyOWZjNDBiNTUwZTdhMzNjLmI5NTcwZDUwNzFkOGYzNWIuMWJiNjM4OGU1MmE5MzYwMy5lYWRlYmMyZTEzNjJkNmJkCiAgICAgYmZmZmFmNTFiNmQwN2FjNy42YzBmZjc4YzA3MjNjZTVjLmIxNjZmZTcxMDBjZWY3OTYuMzBmNDg2YTY0YzgyYTk2MwpAQCAtMTExNzIsMTEgKzExMTcyLDExIEBACiAgIGFmdGVyCiAgICAgMjlmYzQwYjU1MGU3YTMzYy5iOTU3MGQ1MDcxZDhmMzViLjFiYjYzODhlNTJhOTM2MDMuZWFkZWJjMmUxMzYyZDZiZAogICAgIGJmZmZhZjUxYjZkMDdhYzcuNmMwZmY3OGMwNzIzY2U1Yy5iMTY2ZmU3MTAwY2VmNzk2LjMwZjQ4NmE2NGM4MmE5NjMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjE2NmZlNzEwMGNlZjc5Ni5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIxNjZmZTcxMDBjZWY3OTYuMzBmNDg2YTY0YzgyYTk2MwogICAgIGI3MGI5NDYxZjBkZjk1NDIuYzk3YTQ3M2IxOTdkMzEzMy45ZmRiMTdlYzVmODQwYTFkLmVhNmM1OWViN2JmNjYzYzEKICAgICAxNTY1NWE5MGE5NjFjM2QxCiAKLVZDTVBTRF8xMjhfMHg2KHJlZykKK1ZBTkROUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDQ5NzExMWMwY2E3NzUwNi5kMGFiMDJhZGZiMWU1MThhLjJhYzZhMzg2Y2VhNDMyNjAuYWUzNzYyNWQ0ODJkZDU2YQogICAgIGQyNGU3OWZiM2Y1NWI1MGMuMjI2ZTEyNjIxZjkwN2I2OC43ZDMxNzNhZWM2MmM2MzQ4LjQ4MGZkMjgwN2NjNDcxZjcKQEAgLTExMTg0LDEyICsxMTE4NCwxMiBAQAogICAgIDgwN2E0YzYzODcxNmNjM2UuZTE4ODA4YjMyNTQyMGM5Ny42YTkzNWM0NmVjOTE0NWZiLjhkNjMwZDhjMzdlYzBhODMKICAgICBmMDc3ZDE0ZGY2OTY3ZmRhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdkMzE3M2FlYzYyYzYzNDguMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMjA2ODAwMDE5ODIwMDkwLjAxMjAyMTQxMDAxMTg4MDAKICAgICBkMjRlNzlmYjNmNTViNTBjLjIyNmUxMjYyMWY5MDdiNjguN2QzMTczYWVjNjJjNjM0OC40ODBmZDI4MDdjYzQ3MWY3CiAgICAgMWRkNThlOWFkZmY2YmU5MC44OTFlNDA2YTc5NDNkMDA4LjFlMDdiMjIwOWJhMjAwOTguNDkyZmUxNDExODU1OTlmMQogICAgIDgwN2E0YzYzODcxNmNjM2UuZTE4ODA4YjMyNTQyMGM5Ny42YTkzNWM0NmVjOTE0NWZiLjhkNjMwZDhjMzdlYzBhODMKICAgICBmMDc3ZDE0ZGY2OTY3ZmRhCi1WQ01QU0RfMTI4XzB4NihtZW0pCitWQU5ETlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDRlMzZhOTcwNzA1ZmI2MjIuNTY4N2IwYzRkMzQxMWRjMS4wNjc4ZTcyODNkOWFlYjQxLmJiMjM2ZThlNTM4NTZkMWUKICAgICA4MzZkMTJlMmMxNTE2OTg2LmZkNDliNDI3NjAwNGViYzYuZDRiYTU4YjVlMDU2MjgzMi42ZTAxZTI2MjZjMGJiNWFkCkBAIC0xMTE5OSwxMSArMTExOTksMTEgQEAKICAgYWZ0ZXIKICAgICA0ZTM2YTk3MDcwNWZiNjIyLjU2ODdiMGM0ZDM0MTFkYzEuMDY3OGU3MjgzZDlhZWI0MS5iYjIzNmU4ZTUzODU2ZDFlCiAgICAgODM2ZDEyZTJjMTUxNjk4Ni5mZDQ5YjQyNzYwMDRlYmM2LmQ0YmE1OGI1ZTA1NjI4MzIuNmUwMWUyNjI2YzBiYjVhZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNGJhNThiNWUwNTYyODMyLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDI0MGE3MDgxZDg4YzM0MS45MTIyMGM4YzEzODQ0ODEyCiAgICAgZTI3MzgzNWY1YmU2MzU1NC4yYTFjOTFhOGFjODBmMTA1LmRiNjNlMGM2MzEyYmFmOTYuNmFkYWU1NjMyNmZiOTRiZAogICAgIDZiNmQ2YjY3ZmY3Y2EzOTYKIAotVkNNUFNEXzEyOF8weDYocmVnKQorVkFORE5QU18xMjgocmVnKQogICBiZWZvcmUKICAgICAzZTdlNDVhOGZhYmZjMjhiLmM0ZGE4NDQyZGI5ZmM2MTYuNjhjNTYyOWRhMjUxYTA5Ni5jYzYyZWYyNDE4NWM3MDYyCiAgICAgM2Y1YjZkOTJiNDUwMmM0OC5lZGU5MDUyNGEyYjNjNGE1LmU3NTJjMzQ1NDllOWJlNWEuZDZlNDgxNDlmODIxODAyNQpAQCAtMTEyMTEsMTIgKzExMjExLDEyIEBACiAgICAgM2JhNDljMTJkMjg5ZDRjOC44MzJlNzg5Mjc3MWFmNmQ4LjE0NGMyYTVmMTlhMDMxMjUuYTQ5YzFiOWIxNTk5N2MzZQogICAgIDIxNmExYmExODk2M2UxZWQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTc1MmMzNDU0OWU5YmU1YS4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDEzMDA4MzQxNDAwYTEuMDAxMzEwMjIwNTg2MWIwYQogICAgIDNmNWI2ZDkyYjQ1MDJjNDguZWRlOTA1MjRhMmIzYzRhNS5lNzUyYzM0NTQ5ZTliZTVhLmQ2ZTQ4MTQ5ZjgyMTgwMjUKICAgICBjYTRlZTE5MWM4YmExZTc4LjM4NmI4M2YwY2QyZGViMmMuMDExMWIyMGMzZGQ1ODRmYi5kNGIzMTEyMmVkODc5YjBhCiAgICAgM2JhNDljMTJkMjg5ZDRjOC44MzJlNzg5Mjc3MWFmNmQ4LjE0NGMyYTVmMTlhMDMxMjUuYTQ5YzFiOWIxNTk5N2MzZQogICAgIDIxNmExYmExODk2M2UxZWQKLVZDTVBTRF8xMjhfMHg2KG1lbSkKK1ZBTkROUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjdlYjhlMWU2N2YyODQ0Mi5lZWE5OWI3ZjcwNDk4YWUzLmE5ZmM2MmY2YmQ4NWEyZDQuN2E1MDI3YTg3OWQ2ZmY4NQogICAgIDkxZTllZTAwY2I1MTIxNmEuM2VhOWQ4NDYzYjg3N2I3Ni44NmEyYmMwOGJiN2JhYjRkLjkwNjlhNjU0ZmEwNDJiYzcKQEAgLTExMjI2LDExICsxMTIyNiwxMSBAQAogICBhZnRlcgogICAgIDI3ZWI4ZTFlNjdmMjg0NDIuZWVhOTliN2Y3MDQ5OGFlMy5hOWZjNjJmNmJkODVhMmQ0LjdhNTAyN2E4NzlkNmZmODUKICAgICA5MWU5ZWUwMGNiNTEyMTZhLjNlYTlkODQ2M2I4NzdiNzYuODZhMmJjMDhiYjdiYWI0ZC45MDY5YTY1NGZhMDQyYmM3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg2YTJiYzA4YmI3YmFiNGQuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yOTVjNDJmNjA0ODQwMDkwLjZhMTAwMWE4MDFkMmQ0MDAKICAgICAwNjkwNmJhMDkyYjAzZGUxLjJhYzkwMThlY2VhYjAxYjMuZDRhNWIxZTY0YzM0YzM2NC4zZDA5MTY4N2NkNzU4ZDlmCiAgICAgOGIyOTAxZTQ1N2QxM2E4ZAogCi1WQ01QU0RfMTI4XzB4NihyZWcpCitWQU5ETlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGY5OGQ1YzU1NzI1NDM1MGQuYzdkMDdlMzUyZWM4MzM4OC43ZDgyZTRlOGNjYTkwZWI0LmZkOWI0NDhiMTcxMTRhNWIKICAgICBlNDgyMjQ0NWI5OGFiOWNiLjVlYmQ3MGRmYzBlMDEzYjMuZGQ2NWY3NGE2YTU0NDZkZS40ZTk4Mzc4ZDBhYTcxZTdlCkBAIC0xMTIzOCwxMiArMTEyMzgsMTIgQEAKICAgICA5YzRmZWQ1MjNkNDE1MGFmLjdhZDNkZDIwMzM0Mjg0M2YuMzlkYzk5ZGJmMGUyMmE1Ny5kNGRhMmU1Y2Q3MzQ5YmZiCiAgICAgYzJiNzJhMDFlOTQyYmRhYwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZDY1Zjc0YTZhNTQ0NmRlLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjA5YTAwMjAwMDI4YTAwMS5hMDYxMDA1MjQxMDBlMDgwCiAgICAgZTQ4MjI0NDViOThhYjljYi41ZWJkNzBkZmMwZTAxM2IzLmRkNjVmNzRhNmE1NDQ2ZGUuNGU5ODM3OGQwYWE3MWU3ZQogICAgIGE2NTQ1NjIwYzgwMDA0NzIuYTUyNWJiOGE2MjA1OWE4Yi5hOGJmMzQyMjQyMzhlNmRiLmEyNjkwNmRhNDEwNWZhZmEKICAgICA5YzRmZWQ1MjNkNDE1MGFmLjdhZDNkZDIwMzM0Mjg0M2YuMzlkYzk5ZGJmMGUyMmE1Ny5kNGRhMmU1Y2Q3MzQ5YmZiCiAgICAgYzJiNzJhMDFlOTQyYmRhYwotVkNNUFNEXzEyOF8weDYobWVtKQorVkFORE5QU18xMjgobWVtKQogICBiZWZvcmUKICAgICA0NmNjNzViNDkyM2ExYzNhLjIyYmZlNTQ3YjFkOWQ5MmQuYjc5MjUyOGU0ZGE0OGRmOC5lYjA4MjFlMjExZGU0ZGZmCiAgICAgM2VlNThlNjFlZTI4NzNkMC45NGVmM2I2Y2MyNTVkZDk5LjNhMmY5NGMwY2MzNjcxZTUuMWM4ZWM5YTE0MGI2OGM3ZgpAQCAtMTEyNTMsMTEgKzExMjUzLDExIEBACiAgIGFmdGVyCiAgICAgNDZjYzc1YjQ5MjNhMWMzYS4yMmJmZTU0N2IxZDlkOTJkLmI3OTI1MjhlNGRhNDhkZjguZWIwODIxZTIxMWRlNGRmZgogICAgIDNlZTU4ZTYxZWUyODczZDAuOTRlZjNiNmNjMjU1ZGQ5OS4zYTJmOTRjMGNjMzY3MWU1LjFjOGVjOWExNDBiNjhjN2YKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2EyZjk0YzBjYzM2NzFlNS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg1OTA0MjBlMDE4MDhjMTguZTMwMDIwNDIxMTQ4NDE4MAogICAgIGY1NTExMjU5MzIxOGZjYzYuYWNjM2VkZjEyYTI3NDFlYS43ZDMzNzQyMjZiMWFiODA2LjY3ZGM2NWZiM2EyZjRlYjUKICAgICAzOTNiNTI2ZDNkZTg0OGM0CiAKLVZDTVBTRF8xMjhfMHg3KHJlZykKK1ZPUlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGZhMjU0ZTQ5YmVhZTRlNWEuNmUzZDc3N2M1MTMyYTU3ZS4wYWZlNDIyYmI4OTQxYTI3LmY3MzIwOTI4YzM4NTkzOTIKICAgICAwNGU2NTZmOTVhMGQ5YzIzLmM5NWQ5ODRhOTM3MjM3ZWYuYzQyYWU1NDQ1MzE2NWMwMS4yNTNlNWNhM2YwNTAzYTAxCkBAIC0xMTI2NSwxMiArMTEyNjUsMTIgQEAKICAgICA2NzFjNzY4YTUwYzhmZTAxLjk4NjlmZjkzZjI5NDA2YWEuYmM4NDAxYzIxZTgyMGUzZi4xMWIxMmVhNTNhMzdkNjM2CiAgICAgODZhZmE0MDQ5MDZjNDU1NQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNDJhZTU0NDUzMTY1YzAxLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjZiYWY1ZTdkNzM2NWMyNS5lNTNmZmVmZmZlZDg3ZjdmCiAgICAgMDRlNjU2Zjk1YTBkOWMyMy5jOTVkOTg0YTkzNzIzN2VmLmM0MmFlNTQ0NTMxNjVjMDEuMjUzZTVjYTNmMDUwM2EwMQogICAgIGI1Yzk2NGViYWM5MjZkY2QuZTM3ZGYxYWQxNWU0NmU0NC4zNjkyZDBhNzk2MzY0NDI1LmU0MjVlYTdlMGU4ODY3N2UKICAgICA2NzFjNzY4YTUwYzhmZTAxLjk4NjlmZjkzZjI5NDA2YWEuYmM4NDAxYzIxZTgyMGUzZi4xMWIxMmVhNTNhMzdkNjM2CiAgICAgODZhZmE0MDQ5MDZjNDU1NQotVkNNUFNEXzEyOF8weDcobWVtKQorVk9SUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjBlYmM4ODcyYjMwNmUwNi43NzI5ODc0MmU0M2I4YjZlLmM1ZWMzY2U2NDc4ZmJhNGMuYjI0YTczMDA4Njg1ZjVmYQogICAgIGJiMzExNzFhMjg5MTBlNzYuNDIzZDkzN2YwMTc4NTBiZS40NGQ0MjY5NDJmZTA0NzU3LjczMzIyMmNkNmJjYzM3MDMKQEAgLTExMjgwLDExICsxMTI4MCwxMSBAQAogICBhZnRlcgogICAgIDIwZWJjODg3MmIzMDZlMDYuNzcyOTg3NDJlNDNiOGI2ZS5jNWVjM2NlNjQ3OGZiYTRjLmIyNGE3MzAwODY4NWY1ZmEKICAgICBiYjMxMTcxYTI4OTEwZTc2LjQyM2Q5MzdmMDE3ODUwYmUuNDRkNDI2OTQyZmUwNDc1Ny43MzMyMjJjZDZiY2MzNzAzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ0ZDQyNjk0MmZlMDQ3NTcuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNWZjM2VmNjZmZWZmZjVmLmYzN2E3M2NkZWZjZGY3ZmIKICAgICA2NDBhMjIyMWI1NThhMjQxLjc0YWE4ZTM5NGI3ZDcwYjkuYWJmZWVmYWUyYWI2ZGM1Ny5jYjkzMjhjNTFhNTNiNmFkCiAgICAgMTlhNTc3YzcxY2FiNmRhNwogCi1WQ01QU0RfMTI4XzB4NyhyZWcpCitWT1JQU18xMjgocmVnKQogICBiZWZvcmUKICAgICBhMjA3ZjMwODBiNzc2ZDllLjJiMzVkNzZkN2VkNjBlZjUuOTQ5Yjc0OGRiMDVlNDRiYy40YmQ5YzVmMTc1NTI1YmE0CiAgICAgYzQwNzk4ZjU4MjQyZjMzZS42MjlhYTc3ODE4MjBlMTE3LmRlYzM0NTE3MTAzODNmNTIuYWU0ODM4NDBjMzc1YTMwOQpAQCAtMTEyOTIsMTIgKzExMjkyLDEyIEBACiAgICAgM2YwYzRlN2Y3YTA3ODAyZC45MzQyODQ4MDMxNGFhYTU3LjYxZTY5OTc5MmUwODlkZWEuMmQxMWUyYWFkYTdkN2RjZQogICAgIDAxMDMxMTllZGE3YTg3ODUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGVjMzQ1MTcxMDM4M2Y1Mi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZWZmZDU3MTZiZmJmN2EuYmU1ZWZiYzRmMzdmZWZiYgogICAgIGM0MDc5OGY1ODI0MmYzM2UuNjI5YWE3NzgxODIwZTExNy5kZWMzNDUxNzEwMzgzZjUyLmFlNDgzODQwYzM3NWEzMDkKICAgICBkYWVmNjNmOTFlOTkzYTM1LmU2MDUwYzMwYTA0M2Q2ZDQuYWY2ZGZkNDEwNjk3OWYyOC5iMDE2YzM4NDMxMmE2ZmIzCiAgICAgM2YwYzRlN2Y3YTA3ODAyZC45MzQyODQ4MDMxNGFhYTU3LjYxZTY5OTc5MmUwODlkZWEuMmQxMWUyYWFkYTdkN2RjZQogICAgIDAxMDMxMTllZGE3YTg3ODUKLVZDTVBTRF8xMjhfMHg3KG1lbSkKK1ZPUlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDA4YjljZDRkNGUyZTRhMDUuNTFhYTU3ZjUzMjE4ZmZkMi40NDFkOGE1NGU4NDExOWNkLjUxN2ExNDJhMjUxNjc4NDMKICAgICAxZWZmOTFhMTUyYTU4MTc5LjZhMTU3YWM2ZTM1OGYzZDEuZDc2MTlhOThlMDM0ZGY2Mi5kYjc1NmFiZjg2NGQ2YWUwCkBAIC0xMTMwNywxMSArMTEzMDcsMTEgQEAKICAgYWZ0ZXIKICAgICAwOGI5Y2Q0ZDRlMmU0YTA1LjUxYWE1N2Y1MzIxOGZmZDIuNDQxZDhhNTRlODQxMTljZC41MTdhMTQyYTI1MTY3ODQzCiAgICAgMWVmZjkxYTE1MmE1ODE3OS42YTE1N2FjNmUzNThmM2QxLmQ3NjE5YTk4ZTAzNGRmNjIuZGI3NTZhYmY4NjRkNmFlMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNzYxOWE5OGUwMzRkZjYyLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDc3ZDlhZGNlODc1ZGZlZi5kYjdmN2ViZmE3NWY3YWUzCiAgICAgZTc2YTIxZWQ3NzA4M2VmMC4yNTgxZmEyOTlmOTgyZThjLjEwNThjOTIwMDU0MTVlOTcuMmRkMDk3NGFmODY4ODY5NAogICAgIGFkYzc2NzE3NDE2NDI4MDQKIAotVkNNUFNEXzEyOF8weDcocmVnKQorVk9SUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzc1NTAyN2E2NGI5ZDE2Ny41MTI4ZTZiYmQxMGUzYzRhLjdmMWI0ZjkzZTFhZWVjYTAuNmVhMmUwM2M2YTcxOTA4ZgogICAgIDI2Yzc2NGRkZmRmM2JlNmEuM2JhNWEyZTAyYjA1OWU0OS41MGIxYWUwODhjMjQwZmJkLjFkODZmMTc4ODBjZTA5NTYKQEAgLTExMzE5LDEyICsxMTMxOSwxMiBAQAogICAgIGE4ODE2ZTU3MDQ0NzUzZmUuZmMwZmY0ZGM0Y2ZjODFlNC5jYjA0NzhjNDhiNWU3OGM1LmRkNGJmMjAxMzEzZGJlMDAKICAgICBhN2M0ZGEyNjAzNjc3MzNhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUwYjFhZTA4OGMyNDBmYmQuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNWIxYmZmZGJmYTZkZmJkLmZkY2ZmOWY5ZTRlZThkNWUKICAgICAyNmM3NjRkZGZkZjNiZTZhLjNiYTVhMmUwMmIwNTllNDkuNTBiMWFlMDg4YzI0MGZiZC4xZDg2ZjE3ODgwY2UwOTU2CiAgICAgZDg2Njg5YWRhOTllMmJiOC44MGFlZDM0NzlmZmIyMTE4LmY1OTAxM2Y1M2I4NmQ1OTEuZjhjZjc4YzE2NDY0ODQxOAogICAgIGE4ODE2ZTU3MDQ0NzUzZmUuZmMwZmY0ZGM0Y2ZjODFlNC5jYjA0NzhjNDhiNWU3OGM1LmRkNGJmMjAxMzEzZGJlMDAKICAgICBhN2M0ZGEyNjAzNjc3MzNhCi1WQ01QU0RfMTI4XzB4NyhtZW0pCitWT1JQU18xMjgobWVtKQogICBiZWZvcmUKICAgICAzMTA4YWMxYmY3ZWU1ZWY0LmYyNjMwZTQ1YTk3OTczZTcuOGE5NDgyOGM0YjEyN2FkOS4yYzU5ZGJlMzE3M2EzNDA3CiAgICAgNTllMWU0Y2MyOWRkM2M1OC4xMjU4NjVlNTM0YzFjNzIxLjA4MDlmNzQxYmI0YmM3MjIuNzVkYTM3YmM3Y2E2NDcwMwpAQCAtMTEzMzQsMTEgKzExMzM0LDExIEBACiAgIGFmdGVyCiAgICAgMzEwOGFjMWJmN2VlNWVmNC5mMjYzMGU0NWE5Nzk3M2U3LjhhOTQ4MjhjNGIxMjdhZDkuMmM1OWRiZTMxNzNhMzQwNwogICAgIDU5ZTFlNGNjMjlkZDNjNTguMTI1ODY1ZTUzNGMxYzcyMS4wODA5Zjc0MWJiNGJjNzIyLjc1ZGEzN2JjN2NhNjQ3MDMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDgwOWY3NDFiYjRiYzcyMi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhhOWRmN2NkZmI1YmZmZmIuN2RkYmZmZmY3ZmJlNzcwNwogICAgIGVmODU3NzEyYjQyM2MxY2YuNDNhOTI4ZTg2ZmMwZmEzMi40MGYyOGI2ZTU4NTU1MDYyLjMwOTRjYTUxM2Y1YTVkZDgKICAgICA1OTY0ZmFlNGQ1YmNkOTA4CiAKLVZDTVBTRF8xMjhfMHg4KHJlZykKK1ZTUVJUU0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZGE5MTEyZTJiNGRjOWFhMy4xNmU3Y2E3ZjQ2OTNkZjNiLjBkOWU4ZDIzNTY4ZjUxNjIuYjNmZWExYmRiZDNkMDNiMQogICAgIDBmNjcxMGI3Nzc0OGRkNTIuNDkxMDczNTg4NTliZTAwMS4xY2Q2OTliZjkzYTRjYjkxLjg0MmE5MGMzMDI3N2ZiMDQKQEAgLTExMzQ2LDEyICsxMTM0NiwxMiBAQAogICAgIDA1M2RhYzk2MWIzM2Q4YTMuNDdlMmI4ZmY3ZGE0N2E0ZS43ZTNlOTZjYTgxY2UxYzlmLmI0MTJlNWExOWIxM2FhNjkKICAgICBjYjY1NDQ1MTI3OGNkOGQyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFjZDY5OWJmOTNhNGNiOTEuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xY2Q2OTliZjkzYTRjYjkxLmZmZjgwMDAwMDAwMDAwMDAKICAgICAwZjY3MTBiNzc3NDhkZDUyLjQ5MTA3MzU4ODU5YmUwMDEuMWNkNjk5YmY5M2E0Y2I5MS44NDJhOTBjMzAyNzdmYjA0CiAgICAgNTQzMmYwY2ZiYjhjZGVjNC42NmNhZWU4OThlNDc4MDRlLmNlOWQ0ODI4YzM4YWE2NmMuOTE0MmQyNmI0MzEwZjQ4OAogICAgIDA1M2RhYzk2MWIzM2Q4YTMuNDdlMmI4ZmY3ZGE0N2E0ZS43ZTNlOTZjYTgxY2UxYzlmLmI0MTJlNWExOWIxM2FhNjkKICAgICBjYjY1NDQ1MTI3OGNkOGQyCi1WQ01QU0RfMTI4XzB4OChtZW0pCitWU1FSVFNEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGIwMDk2YzY3MDI4ODNiZjAuN2VkNTQyNzkzM2M5MDg5Yi5jYTI0NGJhNDZjYmQ4YjJjLjg3MDc4MDEyNmFmYjZhZDUKICAgICA0MGM4ZDdjZjQ4MTI4ZmVlLjFiNDdhY2UyYTBkYWFhNWEuYzk1YzI1NjY3YTlmNmYxNC40NzQyMDE2YTE5OWRjYmJiCkBAIC0xMTM2MSwxMSArMTEzNjEsMTEgQEAKICAgYWZ0ZXIKICAgICBiMDA5NmM2NzAyODgzYmYwLjdlZDU0Mjc5MzNjOTA4OWIuY2EyNDRiYTQ2Y2JkOGIyYy44NzA3ODAxMjZhZmI2YWQ1CiAgICAgNDBjOGQ3Y2Y0ODEyOGZlZS4xYjQ3YWNlMmEwZGFhYTVhLmM5NWMyNTY2N2E5ZjZmMTQuNDc0MjAxNmExOTlkY2JiYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jOTVjMjU2NjdhOWY2ZjE0LjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzk1YzI1NjY3YTlmNmYxNC5mZmY4MDAwMDAwMDAwMDAwCiAgICAgZDJjYTZiNDU4NzAyZjgzZC4zMWUzZjJmYmU3OWYzM2Q3LmFmZGQ5Y2VkNWNlYjlmYjUuNTg0MWI4ZmUzYjcyYmE0NgogICAgIDYxOWRlNjEyZTZiY2JlNDIKIAotVkNNUFNEXzEyOF8weDgocmVnKQorVlNRUlRTRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA5MDljOWNlN2M3YWNjNzlmLjhiYTU4YjJjYjg3Zjg2ZTUuNjJhN2M0ODFmYTZhOTJlZS40ZGJmMzA4YjZhNmQ2M2M2CiAgICAgNDI4OWQ1ZTk3YWNkMGYwNi41ZmNiZTAxNGM0YmFmNTFlLjI3NzQ1YzNmZDFlMTUzN2EuZDhjNmZiZjUwNWU4ZWE5MQpAQCAtMTEzNzMsMTIgKzExMzczLDEyIEBACiAgICAgOWE2MWMwMjRjOWQzNGVhOS5jOTJjMTU5YmUwOWM2NGYyLmRkNTdjYjEwM2MwMWVhYTQuMjY3NjIzZGQ1NGY3MmYwNwogICAgIGEwYjc3OTMzM2ZhMzY2MGEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjc3NDVjM2ZkMWUxNTM3YS4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI3NzQ1YzNmZDFlMTUzN2EuMzY1NjcwNWRkZjQ5ZGVmOAogICAgIDQyODlkNWU5N2FjZDBmMDYuNWZjYmUwMTRjNGJhZjUxZS4yNzc0NWMzZmQxZTE1MzdhLmQ4YzZmYmY1MDVlOGVhOTEKICAgICBkMWIxOGQ4NDljYWJkMzI2LjJiMGFlNGViYzhjMDAwMTQuZGM5NWI1YTAwODhmYjIyOC4yY2JmNzgxNzRhNjdlZjQzCiAgICAgOWE2MWMwMjRjOWQzNGVhOS5jOTJjMTU5YmUwOWM2NGYyLmRkNTdjYjEwM2MwMWVhYTQuMjY3NjIzZGQ1NGY3MmYwNwogICAgIGEwYjc3OTMzM2ZhMzY2MGEKLVZDTVBTRF8xMjhfMHg4KG1lbSkKK1ZTUVJUU0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNzc0ZGY1MDYyODc3NTA3Ny5mYWUzNmIzNTljZDBiZTNjLjE2ZmVlZTEyMjY1YmRkZTQuODUwNzliZmIwOGMyMzg5YQogICAgIDg3MDYxMjQwMmI3ZmE4N2IuNGI4NDg4MjNiMTJlNWQ4YS5lZTRkZWMzYmI5MDgyNzE3LjMyZWYxZmNlMDk1ZWQ4YjQKQEAgLTExMzg4LDExICsxMTM4OCwxMSBAQAogICBhZnRlcgogICAgIDc3NGRmNTA2Mjg3NzUwNzcuZmFlMzZiMzU5Y2QwYmUzYy4xNmZlZWUxMjI2NWJkZGU0Ljg1MDc5YmZiMDhjMjM4OWEKICAgICA4NzA2MTI0MDJiN2ZhODdiLjRiODQ4ODIzYjEyZTVkOGEuZWU0ZGVjM2JiOTA4MjcxNy4zMmVmMWZjZTA5NWVkOGI0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVlNGRlYzNiYjkwODI3MTcuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZTRkZWMzYmI5MDgyNzE3LmZmZjgwMDAwMDAwMDAwMDAKICAgICBjMjBjMjU5ZGVjNWU5NWY3LjMzNTIwZDQ3MTQzZjFhMDkuYWY4YzQzNTMyZjVkMWNmMC4wODk5MzhkNzE3NThmYzBiCiAgICAgZThmM2M0ZTc1ZWNmZjk5ZgogCi1WQ01QU0RfMTI4XzB4OChyZWcpCitWU1FSVFNEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDNkYjdmNjhkNDg1MDM4MDguYTVmMjEyOThlMzRiYTJjNy44MjE3NmQ1NDk5MDliMDkyLjUwMTY5NTFhNGMxZDNmZWQKICAgICA2MTJmYzkzNzczNjlmNGYzLjMxMmE5MGFiNjM5ZDBkZGQuMzMyYjJmZWZkMDY1NjY4Ny5lYzRiZmI0NDI0ZmIyNGRhCkBAIC0xMTQwMCwxMiArMTE0MDAsMTIgQEAKICAgICA4YjZlNDI0NGZiOTFkNmZlLmI0YmYzNWM5NzA5ZWYwOGUuMmM3MGNlN2NjNjAwMjE2My44NWU5ZjQ2Yzc3NDMxZjM3CiAgICAgM2FlYTdmNDQyOWM0YWRmZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMzJiMmZlZmQwNjU2Njg3LjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzMyYjJmZWZkMDY1NjY4Ny40ZmYzZmE0YTUwZjY2Y2UyCiAgICAgNjEyZmM5Mzc3MzY5ZjRmMy4zMTJhOTBhYjYzOWQwZGRkLjMzMmIyZmVmZDA2NTY2ODcuZWM0YmZiNDQyNGZiMjRkYQogICAgIGIyYTgzOTUwN2JhNTZhMGMuNDI4MDFkYzI4OTVmOTM2Ni5hM2RiNTE4MzU2ZGU3ODkzLjVmZjhmMWJiZDQwNDg1ZTQKICAgICA4YjZlNDI0NGZiOTFkNmZlLmI0YmYzNWM5NzA5ZWYwOGUuMmM3MGNlN2NjNjAwMjE2My44NWU5ZjQ2Yzc3NDMxZjM3CiAgICAgM2FlYTdmNDQyOWM0YWRmZgotVkNNUFNEXzEyOF8weDgobWVtKQorVlNRUlRTRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA1YWM3MGUyZTA3OTNlYzY3LjQ3Y2NlMDdmOGZiODczNzUuNjNiNTUyYWMzNTY1ZGY4MC4yYjM5YTI0NmJkNTg5ZWEyCiAgICAgYzE0YzFkMTUyY2JkOTg5Yi40NDEwMTA2ZGQ0YTY3ZTFmLjJiMmNmMjU3ZjNjMDFkNjguZmM4MWNhNGRkNjcxMmJmZApAQCAtMTE0MTUsMTEgKzExNDE1LDExIEBACiAgIGFmdGVyCiAgICAgNWFjNzBlMmUwNzkzZWM2Ny40N2NjZTA3ZjhmYjg3Mzc1LjYzYjU1MmFjMzU2NWRmODAuMmIzOWEyNDZiZDU4OWVhMgogICAgIGMxNGMxZDE1MmNiZDk4OWIuNDQxMDEwNmRkNGE2N2UxZi4yYjJjZjI1N2YzYzAxZDY4LmZjODFjYTRkZDY3MTJiZmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmIyY2YyNTdmM2MwMWQ2OC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJiMmNmMjU3ZjNjMDFkNjguMzU5NDQwODExMzc3ZDU5NAogICAgIGQzN2RhYzhmYmU1MDI2MWEuNmM3NjEyMTJkZjA5Y2ViNi43NWQwYThiNWNjNjQ3NWNlLjgzYmQwM2MyZTAxODY0YjYKICAgICBmMjQ5MGMwODA4YmQ4ODZjCiAKLVZDTVBTRF8xMjhfMHhBKHJlZykKK1ZDTVBTRF8xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgYTM4NDU4M2NjMzUzYWJlZC4zN2MxMjRmOTYyZDE4MGJjLjUxMzBkZWEyZGU5NThhZmMuYjA5NGI2NDExZWM0MDhhMgogICAgIGYyYmFlNGM4YWQ2NzBiZTYuNTJkZDBjMTFiZGRkMzdkYi5lNWZmMmE5NGZkMTlhNDI0Ljc0MGIzNjQ0ZGJlOWQ5MWQKQEAgLTExNDMyLDcgKzExNDMyLDcgQEAKICAgICAzYjM2YWExYTYxODRlMjAyLmZmOWRlMWMzZWM3ZjA3YTMuODUyZWY0NTZkODIwNThkOS45Y2ZmYTVhYzFjZGVhNDZiCiAgICAgZGE0NmE4OWM3YjM3NmRlZi4xY2NjMWRmYzBhYzNhYjNmLjhlMGIzNzUyMGMzNmUxYzguMDYzZTdlNjRmZmIwMjdiNwogICAgIDhkOTIzZDU4YTA2OTFjMmUKLVZDTVBTRF8xMjhfMHhBKG1lbSkKK1ZDTVBTRF8xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgMGNjODVmNzQxYTE3NDBmYy4yYTM0ZGFiYzk4MGFlNzU2Ljg0MzgzZWE2MzRiNWUwZGMuNWFlMGVmZjYzNGU4N2M5YwogICAgIDYxYWM1ZWE0ODljNjRlNGMuODk0ZDNhZTU1NDhjOGRlNi4xMmFiYmZhZTg1NjI2MmE1LjQ2ZmIxOGFkZWRjMTY1MDIKQEAgLTExNDQyLDExICsxMTQ0MiwxMSBAQAogICBhZnRlcgogICAgIDBjYzg1Zjc0MWExNzQwZmMuMmEzNGRhYmM5ODBhZTc1Ni44NDM4M2VhNjM0YjVlMGRjLjVhZTBlZmY2MzRlODdjOWMKICAgICA2MWFjNWVhNDg5YzY0ZTRjLjg5NGQzYWU1NTQ4YzhkZTYuMTJhYmJmYWU4NTYyNjJhNS40NmZiMThhZGVkYzE2NTAyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEyYWJiZmFlODU2MjYyYTUuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMmFiYmZhZTg1NjI2MmE1LjAwMDAwMDAwMDAwMDAwMDAKICAgICBmOWFkZThmMGI4NTQxYjI0LmUwMzA3OTAyMTZjNjRkMmIuMTRkOWQyOGEwZTFhM2I2ZC5lZTJlYWUwNDdmMTkxMDMzCiAgICAgNjNkZjEzN2M5MWIwNGE1NgogCi1WQ01QU0RfMTI4XzB4QShyZWcpCitWQ01QU0RfMTI4XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDY3MDRkYWI3YTQ5ZWMyYmEuZjQ2MjZhZTRiMDRiNTIwNC45MTkyNGZjZTU1OTdkZjM5LjQwMmM1YjM0N2QzZTBiYzQKICAgICA1N2ViZmQyMTUzNzBiMzBjLjM1ZjViYjlkMGQ3MzY0MTYuYmY0ZjQ0NTRhMjQ2OGMxZi4wMmI3MzVlZDg0NGMxOGY4CkBAIC0xMTQ1NCwxMiArMTE0NTQsMTIgQEAKICAgICA2YjJhNGMzM2Y2ZWRmNDI5LmY1ZTViNzBhNjg4MzA3ODMuMDYwODdjMzlkODZiMjkyMS5iY2E0Y2EzOWM5NTdkN2E1CiAgICAgNmI5ZTdjYTQzZTZkMDI3NwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZjRmNDQ1NGEyNDY4YzFmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmY0ZjQ0NTRhMjQ2OGMxZi4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNTdlYmZkMjE1MzcwYjMwYy4zNWY1YmI5ZDBkNzM2NDE2LmJmNGY0NDU0YTI0NjhjMWYuMDJiNzM1ZWQ4NDRjMThmOAogICAgIDhmZGU3YTI3M2FiMTViZjguOTYzMjU2MDVlY2Q3MGM4Ny5jOGIyNTVmZTlhNWU5MTg4LjM4NDZkYmEwM2Y1MTFkMzQKICAgICA2YjJhNGMzM2Y2ZWRmNDI5LmY1ZTViNzBhNjg4MzA3ODMuMDYwODdjMzlkODZiMjkyMS5iY2E0Y2EzOWM5NTdkN2E1CiAgICAgNmI5ZTdjYTQzZTZkMDI3NwotVkNNUFNEXzEyOF8weEEobWVtKQorVkNNUFNEXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICAyMjAxNmZjZWJiOWM1OWQ1LjQ3MWI2ZmIzMjNiMWJhNGMuMmNkYTVhOTY5ZTg0MTAzNS5kNzlkYjc3MmY5ZmE5MTk1CiAgICAgYmI5NzFlYTE1YmYyOTllYi43ZmZkZGYxMTVjODhlYjBjLjE4ZGNiYjk3YTllNWU1Y2EuOTViZDAxMTM5ODk2MDU5MgpAQCAtMTE0NzMsNyArMTE0NzMsNyBAQAogICAgIDA2OGVhMWY2Nzc0MWM0ZjIuNzJjNDk3MWM2M2ExNzgxNi44MDNiYTlhNWIwZjlkZDRjLjRjY2ViMzQyYzIyNjAxZDAKICAgICBmZDU2MTNhNzg0MzIwMDZiCiAKLVZDTVBTRF8xMjhfMHhBKHJlZykKK1ZDTVBTRF8xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgMGI5YTcyMjUzNTdiZmIzZS43MTg3NmM0ZjI5NTEyNjNiLmU2NDBkN2EwNjlmYTRlYjcuYjMyZjJkOGFlM2MzN2E5MAogICAgIGQzZTRjZDI4NzE4ZTJkZjQuMmVlNWU0MDM3MGI5NjFlYy4yNmRkNTRiM2VjOTY3ZGE2LjBiNjE1ZjkzNWMxZGQxNjgKQEAgLTExNDgxLDEyICsxMTQ4MSwxMiBAQAogICAgIDAyYmQ2MzZkZjczZjJhYmIuMTFmYmM4MjkyN2JhNTIzOC43YWFhZjYzNmQ3YzlkOTFjLjlhYWViZWMyOGZiNDlmN2UKICAgICA4YTYyZTNiZjgwMDc4ZjE1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI2ZGQ1NGIzZWM5NjdkYTYuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNmRkNTRiM2VjOTY3ZGE2LjAwMDAwMDAwMDAwMDAwMDAKICAgICBkM2U0Y2QyODcxOGUyZGY0LjJlZTVlNDAzNzBiOTYxZWMuMjZkZDU0YjNlYzk2N2RhNi4wYjYxNWY5MzVjMWRkMTY4CiAgICAgYjE4MTFlMWNkM2Y2ZDQzOS4xYTcyODRmZDY1ODIzMTMxLjhlZTcwYmMxODcwMjQyOGUuNjQ5ZGJiYWMzNzE0OWZmZAogICAgIDAyYmQ2MzZkZjczZjJhYmIuMTFmYmM4MjkyN2JhNTIzOC43YWFhZjYzNmQ3YzlkOTFjLjlhYWViZWMyOGZiNDlmN2UKICAgICA4YTYyZTNiZjgwMDc4ZjE1Ci1WQ01QU0RfMTI4XzB4QShtZW0pCitWQ01QU0RfMTI4XzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDBlODNhNjkxMjcxYjI5ZWUuMjBlNDk3ODg3YWY2NmIyNC5lZjRjMmQ3M2NmNmM3ZjJhLjQ1NzIxMzdmNzc3ODdkZmIKICAgICAwM2RlODMyMmEwZmIyYTM3LjY4NDFiNmQ3ZjhhNmQ1MjAuOTAzMTJlYzc3Y2E1NzUzNi40ZDhiNWQwNjA0OWE2YmQ5CkBAIC0xMTUwMCw3ICsxMTUwMCw3IEBACiAgICAgYjA3MjdkMzY3NTUxNGZjMy5lNmQxYTZjNTUyMjIwZjg0LjhiZTZmNDNkNGVkOWFiNDYuODBkZTY5ODI1MzY4MTUzYwogICAgIDY0YjIyMzRmNGQyYjQ4MTkKIAotVkNNUFNEXzEyOF8weEMocmVnKQorVkNNUFNEXzEyOF8weDEocmVnKQogICBiZWZvcmUKICAgICBmMzA2ZmEwYmEzOTNiNWE1LjIwNDM5MTkwMGFkZWVjNWYuZDQ5YjZmM2M2NzA2NTg0My45ZDRlYjEzN2FkZWQ2M2E0CiAgICAgOGIyN2VhMjJmMjI5OTg4YS43MDdkYWY1YWUwNjhlMDE5LjVjY2MxMzk4ZTYxM2I4NDYuZTI3YWZiZWM3ZmI3ZDRjOQpAQCAtMTE1MTMsNyArMTE1MTMsNyBAQAogICAgIDg2NjBlZjAwZDY3YjJjNzUuN2VlZTUzODAxNGZhZTYxZS5kYWIwOGU0NTZjZDY2YzM4LjM2MzY0ZDQ2ZTA0M2I5ZTQKICAgICA0MmZmMDYxMWVhMTRhZTExLjI1NjBmYWVlYzFhMGJiOWEuYWE5MmRkYWY5NGRhYjBjNi43NTRlMjMzM2VkOWVjZjFmCiAgICAgN2I4ZGY5OWVjMmQzZDJhNgotVkNNUFNEXzEyOF8weEMobWVtKQorVkNNUFNEXzEyOF8weDEobWVtKQogICBiZWZvcmUKICAgICAyNGMxNGI3MzdhZWU3ZWE2LjE5NGUyYWMxY2E4MTVhMGIuNDFhMDFmOTAwMzY3MWJiOS4yOGMwZmE0MmZhYWNiZjljCiAgICAgNGJiNDk2OWUzMWZjOGU0Yi42OTlhNTc3YzEzNGQ2YzBlLmFlN2EzZTUzZjg1YWMyYTUuYjA4NGUzNmEzY2Q2ZDc2NQpAQCAtMTE1MjcsNyArMTE1MjcsNyBAQAogICAgIDg4MGEwNGE2MGUxZWNkMzIuZGY1OWJjYzQ0ZTMzYjBlMi5lYTJiNWJlODY0ZjVkMzliLjRlMDEwNzJhYmQ2ODBjODIKICAgICAxYzUyMzk5YTM2ZTdhMzJlCiAKLVZDTVBTRF8xMjhfMHhDKHJlZykKK1ZDTVBTRF8xMjhfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgNjQ2YTI3NGVmOWVmMzE3ZC41NDA1MWY1YjZjNGI3NGNkLmJmNjRlZDI4Nzg2NTViMGEuNzI5YTUwOTIxNWI1YjZmYwogICAgIDgxOTRjY2I0YTIwZGYyMWMuMTBmMDIzMTYzOTlhNmZiYy44NjljMTc0ODdiMjY1YmVjLmJiZDQzMDBkZTdkMWNmZGIKQEAgLTExNTQwLDcgKzExNTQwLDcgQEAKICAgICBkMTFkMjQzN2NlY2IyNGI3Ljk3OTY4YmMzOTIxNzdiMmMuOTE0YzM2OGZmMjAzZWQzNC5hMGEzNzc0NGY2NTZkYjY1CiAgICAgYWY1MjJjNDIxOWI4MDFmYS5jNGM1ZDM0ZjkyY2Y1NDQ4LjNjYzE0NjY5N2E4NzRkOGQuZmZkNDlmMjM1ZjRmOTZjNgogICAgIGIyMzMyNjk2M2VjOGJjMjkKLVZDTVBTRF8xMjhfMHhDKG1lbSkKK1ZDTVBTRF8xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgOTc4Yjg3ODlhZGNlMDhiYS43NjdkZGU0MzFlNWRjNjhmLjc1NDc3N2E1NTZjZGI1M2QuZTQ0ODQ0NDJhZTNlYjdhMwogICAgIDg4YWEzZWU4Y2I2YzM3YTcuODRlYjM4YTU3OTQ4YWYyNS44NGU5ZjRiMGY5MWQ1YjM2LmUzMmIyYjg2MmJiNTY2MjQKQEAgLTExNTUwLDExICsxMTU1MCwxMSBAQAogICBhZnRlcgogICAgIDk3OGI4Nzg5YWRjZTA4YmEuNzY3ZGRlNDMxZTVkYzY4Zi43NTQ3NzdhNTU2Y2RiNTNkLmU0NDg0NDQyYWUzZWI3YTMKICAgICA4OGFhM2VlOGNiNmMzN2E3Ljg0ZWIzOGE1Nzk0OGFmMjUuODRlOWY0YjBmOTFkNWIzNi5lMzJiMmI4NjJiYjU2NjI0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg0ZTlmNGIwZjkxZDViMzYuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NGU5ZjRiMGY5MWQ1YjM2LjAwMDAwMDAwMDAwMDAwMDAKICAgICAwMjY4OWU5YjdlYTEyZDNmLmUxYmZkMjNkYTMxZWRiZmYuMzBiZDY1OWE0ZGU1NjZlNy41OTM3YTRmZjZkMTE4NjExCiAgICAgODhmOTJlMGM2YjBkNmZkNgogCi1WQ01QU0RfMTI4XzB4QyhyZWcpCitWQ01QU0RfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDdmNDc5MjM1MjJmOThkYjQuNDNhMDQwYzY0YzUxNmM0My5lOWJkMDk0YWFhMjE5NzliLjg1ODY1MjUwMzc3NTQyZjcKICAgICA5YTZlY2JlNDJkNjExZDU5LjAwY2UyODBlMzdjODdlNTIuYTYyZmQ4Njk3Nzk5NjdlNy5hOGEwMDc2YzcwODc1M2JhCkBAIC0xMTU2Nyw3ICsxMTU2Nyw3IEBACiAgICAgMzViYWQ1ODcyOGQwNWE2ZS4xNmJlZDI1ZDVjMTQxZjk3Ljc2NWYzYTA0YTcxMzg2OGUuNzZkNTAxZGExNDI3NTU1ZgogICAgIGFjNzdhYzg4YjBkMjgyYTIuNjIzYmJiYTFkNjQwMGEzZi5iMzlhMmI4OWQ1MWEzMTNlLmNjZjJiYjg2NDA2MTAzMTAKICAgICA4NGMzYjE1YzEwNDIxYWZhCi1WQ01QU0RfMTI4XzB4QyhtZW0pCitWQ01QU0RfMTI4XzB4MShtZW0pCiAgIGJlZm9yZQogICAgIDdiMTQ1ZjQ5OWZkNTU2NDguNWJmMTRkNTU2MWYzY2Y5Zi5iZTEzNWRjNWMxNTlmYzc1LmJiMmNhNzYyOWUzYWE0YTAKICAgICA4ZWIxNDEzNzA5Mjc3MzI3LjllNzNiMjU5ZDVjMDdlMTEuMDcxMDM2YjUzYjY5YjE2Ni5lODYwYWJmZDlkZmYxYTYyCkBAIC0xMTU4MSw3ICsxMTU4MSw3IEBACiAgICAgNzNmZDkzY2JlMDM1M2U0Ni40ZmMzYmRiNjdkOGNmMDA3LmQxYWM3YWE5NDVhNDUyMjguMjVlMjM4MjZhZWFiMDJiNgogICAgIGVjYzdiOThjZjlhOGVjOWYKIAotVkNNUFNEXzEyOF8weEQocmVnKQorVkNNUFNEXzEyOF8weDIocmVnKQogICBiZWZvcmUKICAgICA0OTdmYjI2M2VhN2JjOTk3LmZlNDZmYTQ3ODUwOTY1ZGYuNzYyODViZTdlN2EzMmNlMi4wOWUzZGU4NjBmZTZiNzUxCiAgICAgOTg1NjFlMTgxZGIwZDY0Yy4xNDBhODU3Njc1Y2M1ZGI4LmExYzZhZWZmODU5NWJhZTMuOWU2ZjY3ZGVkNjUwY2ZlNApAQCAtMTE1ODksMTIgKzExNTg5LDEyIEBACiAgICAgN2Q5MDNmYzhiYzZkNzA5Ny41MTM1Zjg5YWE4NGRhZWRjLjcyZGM2Mjk1ZDAzYmJiMDYuNGZiYWRkYjNjY2NlMDZmYgogICAgIDIzMTBjMjA3MzNmOTllZDYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTFjNmFlZmY4NTk1YmFlMy4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmExYzZhZWZmODU5NWJhZTMuZmZmZmZmZmZmZmZmZmZmZgogICAgIDk4NTYxZTE4MWRiMGQ2NGMuMTQwYTg1NzY3NWNjNWRiOC5hMWM2YWVmZjg1OTViYWUzLjllNmY2N2RlZDY1MGNmZTQKICAgICAzNjk4ZjgxNTJmZDI0ZjY4LjkxMTViMTQzY2Q4OWUxZmUuMmNlOWIxNmJmNWVlZDZiNi42YzFlOTM5ZWI2ZWY1NTBlCiAgICAgN2Q5MDNmYzhiYzZkNzA5Ny41MTM1Zjg5YWE4NGRhZWRjLjcyZGM2Mjk1ZDAzYmJiMDYuNGZiYWRkYjNjY2NlMDZmYgogICAgIDIzMTBjMjA3MzNmOTllZDYKLVZDTVBTRF8xMjhfMHhEKG1lbSkKK1ZDTVBTRF8xMjhfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgYzRlY2JjODgwODdkZDljYy5jYThjZWM5YjVlMGQ3NDg2LjMwMzVkODY3MjIyMzdmN2YuZDFlZGJkZWFiNDA3YTU4MAogICAgIDBlMWE0OTIxNjY2NDcyMDguNzlkNmZkZmNiNDNmOThlMS4wYWUwY2Q5NzU4MTcxMjEzLmE0NjZiY2Q3M2RkZmQyY2YKQEAgLTExNjA0LDExICsxMTYwNCwxMSBAQAogICBhZnRlcgogICAgIGM0ZWNiYzg4MDg3ZGQ5Y2MuY2E4Y2VjOWI1ZTBkNzQ4Ni4zMDM1ZDg2NzIyMjM3ZjdmLmQxZWRiZGVhYjQwN2E1ODAKICAgICAwZTFhNDkyMTY2NjQ3MjA4Ljc5ZDZmZGZjYjQzZjk4ZTEuMGFlMGNkOTc1ODE3MTIxMy5hNDY2YmNkNzNkZGZkMmNmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhZTBjZDk3NTgxNzEyMTMuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wYWUwY2Q5NzU4MTcxMjEzLjAwMDAwMDAwMDAwMDAwMDAKICAgICAwZDliMDk0YjMwOTFiMDA1LjZkODczNzE0ZTY4NjJmODkuMWY2YWUyY2M2NzhiNjliYy4xNWMzOWIyNmFjZTBlMDllCiAgICAgNmIzZjcyNWZjYTIyM2E3NwogCi1WQ01QU0RfMTI4XzB4RChyZWcpCitWQ01QU0RfMTI4XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIGE2NTRkZWUwZmM5ZmM1ZDQuN2E4NzM1YjRkMmVlY2UxZC42YTg2NWFhNGZiYjQxYTJlLjEyZTFmYWE5NzcyMmE1MjkKICAgICAyMDRlZGMxNGRmZTNiZjY0LjAwZjRlMmU1NmVlMDNhMmMuMzkwM2NmNzEzMmEzMTVlZi43MDM0MTc5OWIzMDg5MjM3CkBAIC0xMTYxNiwxMiArMTE2MTYsMTIgQEAKICAgICA0NTFmN2I0NjI2ZjFlYWM3LmM2ODRiNDUwMDNhZmVlZGQuYmRhYmE0NzM3OGY1Mjk3NC5kZDlkNGU1ZTFlZWU2ZmU1CiAgICAgYTM0YzYwMGM4NDA3ZDZkYwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zOTAzY2Y3MTMyYTMxNWVmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzkwM2NmNzEzMmEzMTVlZi4wMDAwMDAwMDAwMDAwMDAwCiAgICAgMjA0ZWRjMTRkZmUzYmY2NC4wMGY0ZTJlNTZlZTAzYTJjLjM5MDNjZjcxMzJhMzE1ZWYuNzAzNDE3OTliMzA4OTIzNwogICAgIDM3Nzg2NzY4MGU3YTYxZDAuN2JhZjhlY2EyMDcxYjE1ZC4zNjRjOTRlNzI3ZTA1Yjc4LjE1MmZiNTg2Mzc0OGVjMTEKICAgICA0NTFmN2I0NjI2ZjFlYWM3LmM2ODRiNDUwMDNhZmVlZGQuYmRhYmE0NzM3OGY1Mjk3NC5kZDlkNGU1ZTFlZWU2ZmU1CiAgICAgYTM0YzYwMGM4NDA3ZDZkYwotVkNNUFNEXzEyOF8weEQobWVtKQorVkNNUFNEXzEyOF8weDIobWVtKQogICBiZWZvcmUKICAgICA0NTA2NjY3Yzg2OWVkZTI1LmE3OGYxNDFiYzNkNDk0ZjMuYmYzZWQxNjEzNGE2YWZkOC4yYTZkZmI3ZmJlNzBiYjhmCiAgICAgOWU5OGRjOWEzZmJmNDNlYS5iYTE0MmU1NDdmYWQ5YzAxLjQxYWI1ZmViY2U2MGFlNzkuZDlkZTk1Nzg5N2RkNGQ3NwpAQCAtMTE2MzEsMTEgKzExNjMxLDExIEBACiAgIGFmdGVyCiAgICAgNDUwNjY2N2M4NjllZGUyNS5hNzhmMTQxYmMzZDQ5NGYzLmJmM2VkMTYxMzRhNmFmZDguMmE2ZGZiN2ZiZTcwYmI4ZgogICAgIDllOThkYzlhM2ZiZjQzZWEuYmExNDJlNTQ3ZmFkOWMwMS40MWFiNWZlYmNlNjBhZTc5LmQ5ZGU5NTc4OTdkZDRkNzcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDFhYjVmZWJjZTYwYWU3OS4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxYWI1ZmViY2U2MGFlNzkuZmZmZmZmZmZmZmZmZmZmZgogICAgIGU0NzMwOTkxNDhkMTEzOTkuNWU4Y2Q3OWVjYTc3YjY3MS40ZmNhYzMxNmFlNTM1ODVmLjZjZmQ4NGUyNzFiYTVmNTgKICAgICAwOTQyZDAyYmE5NDI1OGFhCiAKLVZDTVBTRF8xMjhfMHhEKHJlZykKK1ZDTVBTRF8xMjhfMHgyKHJlZykKICAgYmVmb3JlCiAgICAgNTg2NzRmMTFlNGVjNDE3OC44YTU1Yjg0MWQwZDlmNmRjLmE4MTg1ZDg4OTE3ZTNmMmIuOTQxNDkwOTAyZGEzN2JmYwogICAgIGI1YjZmZDAwYmU0MzU1NmQuNTYzZWM3NTA3ZjljMjY0Yi4xM2U4NTQ4NGU3YWQxNjc3LmQxNDBiZjMyODVlN2NkZWYKQEAgLTExNjQzLDEyICsxMTY0MywxMiBAQAogICAgIDA4MDVkOGE5YmMyYWYxN2YuZDQ1OGY1MzdjNDgxNWI2MC5iNzg3ODc2N2I2YjI5ZDc0LmE3NmQzNTllMzE3Y2VjOGEKICAgICBmODA3NzM0MGJlZTUzMjg5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEzZTg1NDg0ZTdhZDE2NzcuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xM2U4NTQ4NGU3YWQxNjc3LjAwMDAwMDAwMDAwMDAwMDAKICAgICBiNWI2ZmQwMGJlNDM1NTZkLjU2M2VjNzUwN2Y5YzI2NGIuMTNlODU0ODRlN2FkMTY3Ny5kMTQwYmYzMjg1ZTdjZGVmCiAgICAgN2I3Y2Q3NjRkMmQ0ZDEzNi4yNmZiYjJhODcyMjU1ZTEzLmY5NDliOTAwNmI5MDc2MDEuZTQxYWNkZThkMjJiMDk2NQogICAgIDA4MDVkOGE5YmMyYWYxN2YuZDQ1OGY1MzdjNDgxNWI2MC5iNzg3ODc2N2I2YjI5ZDc0LmE3NmQzNTllMzE3Y2VjOGEKICAgICBmODA3NzM0MGJlZTUzMjg5Ci1WQ01QU0RfMTI4XzB4RChtZW0pCitWQ01QU0RfMTI4XzB4MihtZW0pCiAgIGJlZm9yZQogICAgIGIxYjIwM2JhOTM3Mjk3OGYuYjY5ZGZjM2IxOWQxZjBmMy4zZTIxMGRlODkxYmFkOTVkLmE5ZWViYTI1NjY5ZmM1N2QKICAgICBiMDNiNjJmOWNmMzBkN2M4LmUzOGYzZjg2ODQ1NjBiM2YuM2UyMjc1YTZmN2RlOTQzNi4yYmNhNGVhNzE3ZTMyYWM3CkBAIC0xMTY1OCwxMSArMTE2NTgsMTEgQEAKICAgYWZ0ZXIKICAgICBiMWIyMDNiYTkzNzI5NzhmLmI2OWRmYzNiMTlkMWYwZjMuM2UyMTBkZTg5MWJhZDk1ZC5hOWVlYmEyNTY2OWZjNTdkCiAgICAgYjAzYjYyZjljZjMwZDdjOC5lMzhmM2Y4Njg0NTYwYjNmLjNlMjI3NWE2ZjdkZTk0MzYuMmJjYTRlYTcxN2UzMmFjNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZTIyNzVhNmY3ZGU5NDM2LmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2UyMjc1YTZmN2RlOTQzNi4wMDAwMDAwMDAwMDAwMDAwCiAgICAgZWMxNzc5NzJlNjZkZDY4MC4yNmI1MTRmOGY2Mjc4NTBkLjc0ZmIyNWZlZjcxNmFmMzAuNGYxMDhhYTJlOWEyOWZkMQogICAgIGE5MTIyYWY1NDMzNDI2ZTgKIAotVkNNUFNEXzEyOF8weEUocmVnKQorVkNNUFNEXzEyOF8weDMocmVnKQogICBiZWZvcmUKICAgICAwM2I5MWJiYTBlNGVkYmYxLmUxMDIyYjg1ZjkwNDBkNTkuZjU4MDljZjYzNThjNWJlNy42MTZiNjY2ZmNiNDE4OGE3CiAgICAgYjk1MTU5NWZlNTdiZjk5Ny44YmZhOWEwYmUyZmIxMDE0LmIxZDYzNTVlZjJmZDNkNDkuNTY0NGU3OWZhNTg2OGRhYgpAQCAtMTE2NzAsMTIgKzExNjcwLDEyIEBACiAgICAgYTk4M2FkZjYyODNmNjM2ZC42ZjQ1YTMyNWE1M2E2NGUxLjY0NTI4MzE5NTgzOTE0NTQuYzM1Yjk5ZTdlMjkwMGUwOQogICAgIGY1MzNjMmQ5N2I2ZDAyYmIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjFkNjM1NWVmMmZkM2Q0OS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIxZDYzNTVlZjJmZDNkNDkuMDAwMDAwMDAwMDAwMDAwMAogICAgIGI5NTE1OTVmZTU3YmY5OTcuOGJmYTlhMGJlMmZiMTAxNC5iMWQ2MzU1ZWYyZmQzZDQ5LjU2NDRlNzlmYTU4NjhkYWIKICAgICAyNzI2ZTE0ZjY0NDhiZDg3LmM3Y2Q0M2YyYmQ1ZTk5ZGQuYjcwM2Q4OWJjYTA5NjdkZi4yZDUwMjQ3OGE0ZjI3YjY4CiAgICAgYTk4M2FkZjYyODNmNjM2ZC42ZjQ1YTMyNWE1M2E2NGUxLjY0NTI4MzE5NTgzOTE0NTQuYzM1Yjk5ZTdlMjkwMGUwOQogICAgIGY1MzNjMmQ5N2I2ZDAyYmIKLVZDTVBTRF8xMjhfMHhFKG1lbSkKK1ZDTVBTRF8xMjhfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgOWRhMzFjMzk4Yzk0MTJhOS45YmI2YmJjMGNjZWYyNmY0LjYwMmYzNTkwYjc5YTJmNGMuMTIxMTMxNDQzODFiODE1NQogICAgIDk4NzYyMmYyMzAxMWZiMDAuNTkwOTA3MTllZGUxNDRjOS43NjU3NzYxZjBlOGJiNDQ5LjFlOGFkZTg4MDczYmVhOGUKQEAgLTExNjg1LDExICsxMTY4NSwxMSBAQAogICBhZnRlcgogICAgIDlkYTMxYzM5OGM5NDEyYTkuOWJiNmJiYzBjY2VmMjZmNC42MDJmMzU5MGI3OWEyZjRjLjEyMTEzMTQ0MzgxYjgxNTUKICAgICA5ODc2MjJmMjMwMTFmYjAwLjU5MDkwNzE5ZWRlMTQ0YzkuNzY1Nzc2MWYwZThiYjQ0OS4xZThhZGU4ODA3M2JlYThlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc2NTc3NjFmMGU4YmI0NDkuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NjU3NzYxZjBlOGJiNDQ5LjAwMDAwMDAwMDAwMDAwMDAKICAgICBmNzc4MjIyNGEzM2U0ODk4LmE4NDI0NTI4MTRjMDdiMGIuODI5MGYxNWFmYzRkZGVhYi5jMWRkMjUwYmUxNjE5ZjU1CiAgICAgMGY0ZmI4MjIyMzgxNjMzZAogCi1WQ01QU0RfMTI4XzB4RShyZWcpCitWQ01QU0RfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDJiYWMzYTAyYzQwZDEzMGIuMTMzZjE1NzRhYTA3MjMzMS5mMmMwMmZiNjUyYzUwZWQwLjJmM2EyNGRkY2MzNmZjNjgKICAgICA3MjQwYTcxODVmOTNlYTZlLmYyOWFhM2NlYjQ1NWM3ZTIuNzg4ZTQ4ODQ3ZDNkZWE5My43MTUxZjUzNTUxZTBjNDY4CkBAIC0xMTY5NywxMiArMTE2OTcsMTIgQEAKICAgICBlYzNiMzM5MmY2YmMwMDllLjY5M2I4NTUwNDNiNTU5M2YuYTc0ZWVmOGMwN2I2NmZjMy4yNGY5NjIxMGViYTU0NGRmCiAgICAgNGQyMmY1NmMzOGQ4NzRhZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ODhlNDg4NDdkM2RlYTkzLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzg4ZTQ4ODQ3ZDNkZWE5My4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNzI0MGE3MTg1ZjkzZWE2ZS5mMjlhYTNjZWI0NTVjN2UyLjc4OGU0ODg0N2QzZGVhOTMuNzE1MWY1MzU1MWUwYzQ2OAogICAgIDNlNTZmY2NlOTE5ZjI2MTAuNzA1NDRhMWVkZDM2ZWZkOC45NWZhODlmYzMwYjQ0YzAwLjI0YTJlMDRjYTc1N2YzZDYKICAgICBlYzNiMzM5MmY2YmMwMDllLjY5M2I4NTUwNDNiNTU5M2YuYTc0ZWVmOGMwN2I2NmZjMy4yNGY5NjIxMGViYTU0NGRmCiAgICAgNGQyMmY1NmMzOGQ4NzRhZQotVkNNUFNEXzEyOF8weEUobWVtKQorVkNNUFNEXzEyOF8weDMobWVtKQogICBiZWZvcmUKICAgICA3YmU5MTc0Y2FiZmIzZjcwLmQ4M2I0YWNmMjg3NmI3YzMuYjkxOWQxNTFmZmRmYmY0Mi4wOGQ3Nzc5ZmEwZDA5MTg2CiAgICAgOGExOTQ0OWM1ZjFiNjE1MS41ZWEyM2NmMWM2NTk4NTJjLjNjYmJhODBiMmZiZmRlMGUuMTZlMTFjYTA5NDhkZWNmOApAQCAtMTE3MTIsMTEgKzExNzEyLDExIEBACiAgIGFmdGVyCiAgICAgN2JlOTE3NGNhYmZiM2Y3MC5kODNiNGFjZjI4NzZiN2MzLmI5MTlkMTUxZmZkZmJmNDIuMDhkNzc3OWZhMGQwOTE4NgogICAgIDhhMTk0NDljNWYxYjYxNTEuNWVhMjNjZjFjNjU5ODUyYy4zY2JiYTgwYjJmYmZkZTBlLjE2ZTExY2EwOTQ4ZGVjZjgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2NiYmE4MGIyZmJmZGUwZS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNjYmJhODBiMmZiZmRlMGUuMDAwMDAwMDAwMDAwMDAwMAogICAgIGJhZThhYjNjZmM3Zjk4MWUuYThkNWEyOTRiMGNjNTk3OC40YjdiZWM1ZTVhZDIzNWFmLmE1YThhZDIxMDMyMjNmOTQKICAgICBkZWZjOTI3OGI0MTFhZjE2CiAKLVZDTVBTRF8xMjhfMHhFKHJlZykKK1ZDTVBTRF8xMjhfMHgzKHJlZykKICAgYmVmb3JlCiAgICAgMzQwMjg0NmUzM2Q0NDlmNi45NDFlZGU2NDFkZGMyNjYyLjI0MzgwZGVkMzQ3M2Q3YjMuOGYzMDUxY2Y4YzFkZTZkZAogICAgIDAxMDQ3ZjcwMWFmNjQ4ZGYuYmZlZTBiYWRlZjY1ZmI3NS5hYTMyNDRkYjkzNzQ1Y2UzLjc2ZGEzMWFhYTI0ZTQwODMKQEAgLTExNzI0LDEyICsxMTcyNCwxMiBAQAogICAgIDc0MmY4MDQ0OTE4ODY5N2YuNzc4YjQzNGUxODJjNjhiNy40NDFjMDQyNzUxYjI2ZWNjLjljMzg1NzRlZTg5NGRkZTkKICAgICA5NDg1OTRlZjUwYzA5OTAxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFhMzI0NGRiOTM3NDVjZTMuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYTMyNDRkYjkzNzQ1Y2UzLjAwMDAwMDAwMDAwMDAwMDAKICAgICAwMTA0N2Y3MDFhZjY0OGRmLmJmZWUwYmFkZWY2NWZiNzUuYWEzMjQ0ZGI5Mzc0NWNlMy43NmRhMzFhYWEyNGU0MDgzCiAgICAgYTM0ZjdmZTgwNTAzZWE3ZS4xNzIzYWUwMThmMjZkMjgyLjk2MTA0M2NhNjk1YTI1YjEuZGI0MzBhZGJiNzcyZmVjZQogICAgIDc0MmY4MDQ0OTE4ODY5N2YuNzc4YjQzNGUxODJjNjhiNy40NDFjMDQyNzUxYjI2ZWNjLjljMzg1NzRlZTg5NGRkZTkKICAgICA5NDg1OTRlZjUwYzA5OTAxCi1WQ01QU0RfMTI4XzB4RShtZW0pCitWQ01QU0RfMTI4XzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIDlmZjYzZGFhMGMwM2VlNDEuZDFmMDdmZWU1OTEwMDE4ZC5iZGYwNDc3ZWE2ODI3OTNkLjBmYTI4NDVjZTgwNzcyZGUKICAgICA5ODU3Y2Y2YjM3Njg5N2Q2LjE3ZGQ3NzU0ZmEyN2YwNTUuYzQyMDM1N2Y1NjM0YzA0My41NWYwYzBkN2M5ZTU2ZTkzCkBAIC0xMTczOSwxMSArMTE3MzksMTEgQEAKICAgYWZ0ZXIKICAgICA5ZmY2M2RhYTBjMDNlZTQxLmQxZjA3ZmVlNTkxMDAxOGQuYmRmMDQ3N2VhNjgyNzkzZC4wZmEyODQ1Y2U4MDc3MmRlCiAgICAgOTg1N2NmNmIzNzY4OTdkNi4xN2RkNzc1NGZhMjdmMDU1LmM0MjAzNTdmNTYzNGMwNDMuNTVmMGMwZDdjOWU1NmU5MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNDIwMzU3ZjU2MzRjMDQzLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzQyMDM1N2Y1NjM0YzA0My4wMDAwMDAwMDAwMDAwMDAwCiAgICAgYzgxODliYjA0Y2M5ZDhhZi5jOTZmNDMwMDM1MzRiZWMyLjg0MGNjMGExOGJkZWUzNzkuYmYxMDU5NGJkYTZkM2Q5OQogICAgIDlhN2FhZjFkNDMyZjg5NDEKIAotVkNNUFNEXzEyOF8weDExKHJlZykKK1ZDTVBTRF8xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgNjBkYmIwZTQ2NWFiYmMzZC5iNzEwY2QwYzZlZGRlNzQ5LmVlYWIwZTFmMDc0MTE1YmUuZjU2MTU0OWE0N2VlMzcwMgogICAgIDZjN2Y1NzBjZGY2YzEyMzkuMDQyOGQ3MWQ2ZjQ0M2JlOS42YjQ0YzNhOTIyMGViMzI0Ljk4YWZjMzEzOTU4OWIxYmEKQEAgLTExNzU2LDcgKzExNzU2LDcgQEAKICAgICAxOWIyYTMwMTRiZmVjOWUwLjhkMmMzNmQxNmMwODkwYjkuOWM4NjVkMGEyMTI2ZDJhMC40OGM0ODhmODkwYmUwZWNjCiAgICAgYzViZjhkMzA0NWVlMWJkZi4yY2U4NjUxMzgwMzhhMmU2LmRlYmRkOGFmYTAxNWFmZGUuZTA2YTIwMzY1NTk2MGE2NQogICAgIDNkNmUwNWI3ZmYxZjYwYjAKLVZDTVBTRF8xMjhfMHgxMShtZW0pCitWQ01QU0RfMTI4XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIDNjOWNiNTY4YWI2NGNkZGIuY2FmNDEyMDM2YWM3NDVlMS5iZjI3ZTBjZmM3ZGQyYzliLjhiMzQzMDAyM2M2ODg1ODkKICAgICBiN2MwYWIzNjc0NzEwZDBmLjg2OWIyZmU3NTUxNTgyOTMuMjBiNzIzZjE1ZTA1ZWIwNS4wMDM4NjI3MDkxYWE5MTRkCkBAIC0xMTc2NiwxMSArMTE3NjYsMTEgQEAKICAgYWZ0ZXIKICAgICAzYzljYjU2OGFiNjRjZGRiLmNhZjQxMjAzNmFjNzQ1ZTEuYmYyN2UwY2ZjN2RkMmM5Yi44YjM0MzAwMjNjNjg4NTg5CiAgICAgYjdjMGFiMzY3NDcxMGQwZi44NjliMmZlNzU1MTU4MjkzLjIwYjcyM2YxNWUwNWViMDUuMDAzODYyNzA5MWFhOTE0ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMGI3MjNmMTVlMDVlYjA1LjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjBiNzIzZjE1ZTA1ZWIwNS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgOTUxOTU5ZDVjZjE1ZjU0OC44ZjcyMWU5M2VmNDEyOWI1LmMwZjVmMzE3ZWIwYmY3YTYuYjIxODQxNGVkMzJjM2JkMwogICAgIGE3OGJlNjk2Zjk4NTUwZWQKIAotVkNNUFNEXzEyOF8weDExKHJlZykKK1ZDTVBTRF8xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgZDNiYTU1YTk0N2ZjOGJkMC5hZmU3MGE3Zjk5YzQxNWE1Ljk0M2FlOTMzZDUzODA5N2UuYjYzYzc3ZjQxODAyYmMzNgogICAgIDk0ZjM4OWYzNWExZjI4MjguYjZkYWYxZjVmMDZiZjhiYy5jMGE1M2E5NGYzZDNlZWE2LmViMDNiM2U2MDVhYmE2MmEKQEAgLTExNzgzLDcgKzExNzgzLDcgQEAKICAgICA0NTgwN2VkZmNlNzk2M2EyLjg3YmY4YTIzZjAxNjU5YjkuNmRmZTBmMjJlMmEwMTJkYS4zYzE2MjNkYmNkMTM3MWFmCiAgICAgNDJhZjMwZGMzZDk3NzdlYS5mYzYyNTFmNWI2ZDFmNWNhLmY4OTM2MzQ5NDAyYmIyYzYuODM0MDQ0YmQ4ZDQ1ZDhmMAogICAgIDlkNGU5MTdhNjA0ZDk4MWEKLVZDTVBTRF8xMjhfMHgxMShtZW0pCitWQ01QU0RfMTI4XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIDY2MGQ4NmZkNjMzODZkNTkuZTdjYTliNTM0NjAzYTFhYi5mMjhmYzI1ODVlYTk4ODE4LmJlYWUzMzc1YTlmZTA5MTUKICAgICBiYTQ3OWYzMWIxMTExM2Q4LjhmMWViY2IxODI0YzFkOTIuNDUxMTVhMzYwM2FhY2VkMi4xOTljNzkxMmI4YTc1NTczCkBAIC0xMTc5MywxMSArMTE3OTMsMTEgQEAKICAgYWZ0ZXIKICAgICA2NjBkODZmZDYzMzg2ZDU5LmU3Y2E5YjUzNDYwM2ExYWIuZjI4ZmMyNTg1ZWE5ODgxOC5iZWFlMzM3NWE5ZmUwOTE1CiAgICAgYmE0NzlmMzFiMTExMTNkOC44ZjFlYmNiMTgyNGMxZDkyLjQ1MTE1YTM2MDNhYWNlZDIuMTk5Yzc5MTJiOGE3NTU3MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NTExNWEzNjAzYWFjZWQyLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDUxMTVhMzYwM2FhY2VkMi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNzM1ZTJlNjFhMGJkYzA0OS41ZGEwMGRkMzA5OWVmOTgxLjcyNDhlYzE3YjU1MzYxMzQuMDEyMDVjNTAzOWE5YjcwZgogICAgIDQ2NGZmMGM4ZTMxYTQ1YTUKIAotVkNNUFNEXzEyOF8weDExKHJlZykKK1ZDTVBTRF8xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgOTI4MGViNjJhNDkxYjdmYS45MGQ0OWMzNTc5YTkzZjkxLjM5NjYzNTZlOGJjMGQyZTEuMDQ5NGRlZjJmYjE0MjczNgogICAgIDNmMDE0YTg4MTg5ODQ5YmEuYThmNTFlNmEwZGI0ODBjYi44YTk2MDJhMWIyZWVlYzE2LjYzNjZlN2Y4YWUyZTkwNTEKQEAgLTExODEwLDcgKzExODEwLDcgQEAKICAgICBhYTFjMDhhOGQ5YmUzNzkzLjk3OGUzMWVkNzhlODNkMjEuYWI3YTcxZDYxOWIzODVjZC42YjhhODIxN2VhYWM1N2I0CiAgICAgMmYxZTIxMmQ4NjhjYmMyZS4zOTZjNGZhYmQ3NTMzM2MwLmY3NWY3ZDdiNWM5YmQ3YjEuZjhjYzJiM2FjYzlhMzk4OQogICAgIGU2Zjc1ZTRkNmYwNWYxZmMKLVZDTVBTRF8xMjhfMHgxMShtZW0pCitWQ01QU0RfMTI4XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIDExZDk5NzNjZjBmODNkM2IuMmE1MjkxODNiODkwMTUzYS42YTU4ZjY4ZTQ2MDAxZGQzLmNjOTEyMmZiMTgzMjFlNmYKICAgICA1NTNjNTNmMzZhN2ZkNzZmLmY3MDY1NDE2MGU1NTdlNjEuMDYyMWExODRlMGZjYjg4Ny44NDVjNWRjMmU5MDU5OGIzCkBAIC0xMTgyMCwxMSArMTE4MjAsMTEgQEAKICAgYWZ0ZXIKICAgICAxMWQ5OTczY2YwZjgzZDNiLjJhNTI5MTgzYjg5MDE1M2EuNmE1OGY2OGU0NjAwMWRkMy5jYzkxMjJmYjE4MzIxZTZmCiAgICAgNTUzYzUzZjM2YTdmZDc2Zi5mNzA2NTQxNjBlNTU3ZTYxLjA2MjFhMTg0ZTBmY2I4ODcuODQ1YzVkYzJlOTA1OThiMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNjIxYTE4NGUwZmNiODg3LjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDYyMWExODRlMGZjYjg4Ny5mZmZmZmZmZmZmZmZmZmZmCiAgICAgOTdiODQxNmFiYjdiZTc2ZC43NzFhYzVhMzhmNTM2ZmIyLmVmNzZmNDU1MDYwZWYxODEuMTFlYjgxZDUzNzhkMTA3YgogICAgIDllNDk2M2ZhZWQ1YTg2NTgKIAotVkNNUFNEXzEyOF8weDEyKHJlZykKK1ZDTVBTRF8xMjhfMHg1KHJlZykKICAgYmVmb3JlCiAgICAgN2U2ZmNhMTUyNzkzMWY2YS40ZTY5NmIwMWM5MDdkNjhkLmUyMTI2YTc2ZjRhNDZmMzMuZjM5Yjk0MDljYTNkMDYxZgogICAgIDBlYWFiMzkzODJjMjE1NWQuOGVjYjA4MTE0MTU4MDM1NC44ZWI5NTIzNWViZTc2ZTgxLmQzY2IyODdmMmFlYWJjMGQKQEAgLTExODMyLDEyICsxMTgzMiwxMiBAQAogICAgIGFmOGVmNzZhMDkzODBhOWEuMThkNjg4NDhkZTc2MDk4Ni4xZTQzZGQyYjAxNzA1ZDJlLjk0N2YxYzYyMmNlZmZiOGMKICAgICAyYzlhNzVhNjA3NWZmYjc0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhlYjk1MjM1ZWJlNzZlODEuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZWI5NTIzNWViZTc2ZTgxLjAwMDAwMDAwMDAwMDAwMDAKICAgICAwZWFhYjM5MzgyYzIxNTVkLjhlY2IwODExNDE1ODAzNTQuOGViOTUyMzVlYmU3NmU4MS5kM2NiMjg3ZjJhZWFiYzBkCiAgICAgYWI0NTE4ZTE5YTc1YTVkZi4zM2FjOTM4NDNmNzkyYWVlLmQ5NWI3YTRlMTFhN2FhNDYuNmFkMzJjYTM0MjIxY2Y3OAogICAgIGFmOGVmNzZhMDkzODBhOWEuMThkNjg4NDhkZTc2MDk4Ni4xZTQzZGQyYjAxNzA1ZDJlLjk0N2YxYzYyMmNlZmZiOGMKICAgICAyYzlhNzVhNjA3NWZmYjc0Ci1WQ01QU0RfMTI4XzB4MTIobWVtKQorVkNNUFNEXzEyOF8weDUobWVtKQogICBiZWZvcmUKICAgICAxMGYyYjE1Y2VjN2U4YzVjLjc3Y2Y0Yjk5NmU5NTgxM2EuMWIxNjYzNDgzYTVjNWE0OS5iOWJmNzczYTU3Y2VjNGU2CiAgICAgMWE1MTRlNzFmYTU2NmE3Mi41ZjU2MTFkYzYyMWE0NjZjLjE2MzhhMDcwNzAzNmRhNjMuMDUxOTQ0ZTZiMDRlMWExYQpAQCAtMTE4NDcsMTEgKzExODQ3LDExIEBACiAgIGFmdGVyCiAgICAgMTBmMmIxNWNlYzdlOGM1Yy43N2NmNGI5OTZlOTU4MTNhLjFiMTY2MzQ4M2E1YzVhNDkuYjliZjc3M2E1N2NlYzRlNgogICAgIDFhNTE0ZTcxZmE1NjZhNzIuNWY1NjExZGM2MjFhNDY2Yy4xNjM4YTA3MDcwMzZkYTYzLjA1MTk0NGU2YjA0ZTFhMWEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTYzOGEwNzA3MDM2ZGE2My4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE2MzhhMDcwNzAzNmRhNjMuZmZmZmZmZmZmZmZmZmZmZgogICAgIDE0NTg5OTY0ZmE2N2ZiZDIuMDA2MWRmNGI2ZGNhYTkzNS42OTUxMzJlOGQ5Zjc1NTRhLjI1OWI2OGM0ZDllMjg2YTQKICAgICBhZjU5YjdjZmUyMGUxNDUzCiAKLVZDTVBTRF8xMjhfMHgxMihyZWcpCitWQ01QU0RfMTI4XzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDVjMjcyOTI4NWQ4YjgyMmQuYmM5NjNmMWIyNmI3Mjc3NS43MDdlZTA0ZmJiMGRiZjI0Ljc3ZTE3ZTEwNDNmNmM5NmYKICAgICA4NzUwYmEzOWU2ZTYwYmRmLmZhMGQzNWUwZTlmMTkwZjUuNzAwZjQyMTYwYWE4MTM1NC5lZjgyMWMxMWY3MWE1YzliCkBAIC0xMTg1OSwxMiArMTE4NTksMTIgQEAKICAgICBjNmUxMmIzNzk0NjM2MDc5LmFjZDIwMTQ0YTU1NDA3M2EuOTBjMTFhOWUxODEzNjQyYS44ODJhM2Y0OWFiZmVjZWI2CiAgICAgNjNjOWJjNWFlM2Q2MjVmZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MDBmNDIxNjBhYTgxMzU0LmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzAwZjQyMTYwYWE4MTM1NC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgODc1MGJhMzllNmU2MGJkZi5mYTBkMzVlMGU5ZjE5MGY1LjcwMGY0MjE2MGFhODEzNTQuZWY4MjFjMTFmNzFhNWM5YgogICAgIDhiMWY2NzZmMWFhOWVjMTQuYWM4OGY3OWU1ZjIxZjE3ZC41YzYyMDIwZGY1MjZlMDcyLmFiMDE4OGQ1MTA2ZGNhZjkKICAgICBjNmUxMmIzNzk0NjM2MDc5LmFjZDIwMTQ0YTU1NDA3M2EuOTBjMTFhOWUxODEzNjQyYS44ODJhM2Y0OWFiZmVjZWI2CiAgICAgNjNjOWJjNWFlM2Q2MjVmZQotVkNNUFNEXzEyOF8weDEyKG1lbSkKK1ZDTVBTRF8xMjhfMHg1KG1lbSkKICAgYmVmb3JlCiAgICAgMTZhYTdiZjNkNTAzOGFmYy45MmUzMDJmYmYxOWRhNGI5LmQ4YjlkMGJiZDc5NThlNTcuNjg3OTg4MzcxMGZiZDkyNwogICAgIDdlOThmOTAwOWM5MGJiZGQuNGQ2ZmU4MjljY2U1ZjQ4MS4wYTA3ZGVmMDEwZjE0MTAyLjQwZDY0NzQyNzk2YjdiMTYKQEAgLTExODc0LDExICsxMTg3NCwxMSBAQAogICBhZnRlcgogICAgIDE2YWE3YmYzZDUwMzhhZmMuOTJlMzAyZmJmMTlkYTRiOS5kOGI5ZDBiYmQ3OTU4ZTU3LjY4Nzk4ODM3MTBmYmQ5MjcKICAgICA3ZTk4ZjkwMDljOTBiYmRkLjRkNmZlODI5Y2NlNWY0ODEuMGEwN2RlZjAxMGYxNDEwMi40MGQ2NDc0Mjc5NmI3YjE2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhMDdkZWYwMTBmMTQxMDIuZmZmZmZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wYTA3ZGVmMDEwZjE0MTAyLjAwMDAwMDAwMDAwMDAwMDAKICAgICBkZWNmMWUyNTFiZmI2YmY3LmZiNTdkMjZmNmRjZGE4NTguZjMwYWFkNDUwODI3MWVhYi42MGFmYTk2MzBiMTAzYTc4CiAgICAgNjBjMzQ0NGY2ZDVlY2Q0NAogCi1WQ01QU0RfMTI4XzB4MTIocmVnKQorVkNNUFNEXzEyOF8weDUocmVnKQogICBiZWZvcmUKICAgICBjZmFiMjA1ZmFmNjM3ZmIxLjhkYWZiZTE2MGFmMjY0ODcuYTg0YmNlNjA2Yzg1ODNiZi42MzU4NjQzY2ZmMTljMDAzCiAgICAgMGJiNDM5ZmU2ZWFjOGE2Yi42MWNkMGMyYzNmNzgxN2FhLmIyZmJjOTZhNTk3YTVhNWUuNDkzZTRjYTI2ZTU2N2U5OApAQCAtMTE4ODYsMTIgKzExODg2LDEyIEBACiAgICAgNTc1OTEzOWFkMTM3OWU3YS5lOWYyYTM3MmVhNjY5ZDU5LjUxYmFhZDc5NmY0ZGViZjEuZWEwMDljNjcyMmRmNDEyNgogICAgIDVkNzVmYzlmOWY0M2JlNzkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjJmYmM5NmE1OTdhNWE1ZS4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIyZmJjOTZhNTk3YTVhNWUuZmZmZmZmZmZmZmZmZmZmZgogICAgIDBiYjQzOWZlNmVhYzhhNmIuNjFjZDBjMmMzZjc4MTdhYS5iMmZiYzk2YTU5N2E1YTVlLjQ5M2U0Y2EyNmU1NjdlOTgKICAgICA2ZjJhOGI5ODQ1YzQyYjIwLjM3ZjU4NTUxZDY5YjQxOGMuNzZiMWJmZjlkMTM5NjhlMC44Mjg3ZGY2MTcwZTkxNTk1CiAgICAgNTc1OTEzOWFkMTM3OWU3YS5lOWYyYTM3MmVhNjY5ZDU5LjUxYmFhZDc5NmY0ZGViZjEuZWEwMDljNjcyMmRmNDEyNgogICAgIDVkNzVmYzlmOWY0M2JlNzkKLVZDTVBTRF8xMjhfMHgxMihtZW0pCitWQ01QU0RfMTI4XzB4NShtZW0pCiAgIGJlZm9yZQogICAgIGI3YjI3Y2Y1MDQyMTQ3YjcuMWU4ZGNjNmVhZDkxMWUyNS41NDkyZTQ3Yzk3ZTZlOTNjLjlkNjI4ZDU3Y2Y0MzFkM2YKICAgICBkNDgzOTk1NTZjODU5OTBmLjIyMTJiMjgxNzY1ZmU4Y2UuNTQ5ZmMzNTlmYTI2ZGY2MS5iN2Y1NWRmZDhlYTUzYTczCkBAIC0xMTkwMSwxMSArMTE5MDEsMTEgQEAKICAgYWZ0ZXIKICAgICBiN2IyN2NmNTA0MjE0N2I3LjFlOGRjYzZlYWQ5MTFlMjUuNTQ5MmU0N2M5N2U2ZTkzYy45ZDYyOGQ1N2NmNDMxZDNmCiAgICAgZDQ4Mzk5NTU2Yzg1OTkwZi4yMjEyYjI4MTc2NWZlOGNlLjU0OWZjMzU5ZmEyNmRmNjEuYjdmNTVkZmQ4ZWE1M2E3MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NDlmYzM1OWZhMjZkZjYxLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTQ5ZmMzNTlmYTI2ZGY2MS4wMDAwMDAwMDAwMDAwMDAwCiAgICAgYzcxMDk3ZTNiNzEyODdiNy40ZDNlZjUxNjNjODU0YWM5LjgzMzM0YzQwNTAxNmJiMjQuYzUwYmJiNTU5N2UzMjk0NAogICAgIDcxMjY0MGRmMWFkNTcyMzcKIAotVkNNUFNEXzEyOF8weDE2KHJlZykKK1ZDTVBTRF8xMjhfMHg2KHJlZykKICAgYmVmb3JlCiAgICAgNWM1Y2E1ZTI2YTY1OTdjMy41NTY0NzFlYWQxNTE5YjYwLjJkN2Q0YjZlNzJmNTU5NzMuNmE1MmVlMjI3Y2RmMTkxYQogICAgIGUwZjllNWM5MjYxZmQzOTEuMTY3Y2Q2YWE2MDQ3NjhkMi5iOTNkYmViNjA1MDhhMmNiLjU2MGYxZTg4Y2M5OTEyMDIKQEAgLTExOTE4LDcgKzExOTE4LDcgQEAKICAgICA1YTQ5ZmQwMmU3OGU2MzUwLmU2MjQ0NDExN2QwMGE5MzkuNGNjYTRhNTk5MDRiNjE3Yy4yMzM1NTg1ZTVmNGU2MjA4CiAgICAgMjY5N2U3Zjg0YzNlODNhYS5hMTI4MzYwOTQ2ODYxYmMwLjQ0NmZlY2MzYWY0OWQxMzMuYWQ5MjE5OTA0ZTBjYzQ1OQogICAgIGNmZjBkYjBhYjdkZmY1MjEKLVZDTVBTRF8xMjhfMHgxNihtZW0pCitWQ01QU0RfMTI4XzB4NihtZW0pCiAgIGJlZm9yZQogICAgIDY3MWMxY2I5YjZkMWIxOGIuYTAzMWExMTdlZWJiNmU0Yi4yMzUzMjg4MGQ2ZTc3YTkzLmZiN2E5ZTYwZmY4ZTJmOWIKICAgICA1MGUyNTc4NzY2ZjBiNGM0LjIzNjEyNmNjNmI5MjYxZTEuNDg3Mzk3NjE0YTJmODJkZi5jZTM1NWU5YzFjYTdiNzYxCkBAIC0xMTkzMiw3ICsxMTkzMiw3IEBACiAgICAgODQ2YmFjMzQ0YmUzN2Q1Mi5iOWI2ODFhMzY1N2M0Zjk2LmVhYmRkODExNGNhMDdiOTEuMzllZmY1YTIyYTgyMzRiNQogICAgIDg5ODRjNTQzNTQ1ZGExOWMKIAotVkNNUFNEXzEyOF8weDE2KHJlZykKK1ZDTVBTRF8xMjhfMHg2KHJlZykKICAgYmVmb3JlCiAgICAgNjRmYjkxMzRiYTNiMjg5MC44OGM3YmVlYmI3Y2ZiY2ZmLjgzNzM1MDlmMWFhNmMxMGUuMjA4MGE0YjgxM2UzZTU0ZgogICAgIDI3OWY1N2RmZjlhODA0M2UuNGRlY2JhNzE0NTE4MzEyYS5jN2Y3ZDlkZjE5NWIyYzI5LjY5NjdkYjc5MmQzYmU4MzYKQEAgLTExOTQ1LDcgKzExOTQ1LDcgQEAKICAgICAyZWJiMTJiMmFjMzE3MjUxLmFlYTcxY2I0MTFjODk5MDAuZTE4ZDFhZDFmZTI0Yzk5NC5hMDNlZmE0MGI2YjYzZjcxCiAgICAgZDY5ZGJmMTg3MDYxYWU3Ny44OWM0NjE5ZjM2ZWViMGFjLjJjODMwZmUwNjY4ZmQ3ZmIuYTNkMDdlZmFjYjYwYTcyZAogICAgIDRjZWJlMjkxODc0M2RjOTUKLVZDTVBTRF8xMjhfMHgxNihtZW0pCitWQ01QU0RfMTI4XzB4NihtZW0pCiAgIGJlZm9yZQogICAgIDc5NTlhM2YzMDY2ZTk5ZDYuNzk4ZjU4N2RlMGM0ZjQ1OS5iOTBmMDMxZWQwOTMzMjVjLjA2MjNiMjc4ZWMyNzkwMDkKICAgICAwNWU3M2IwYjY1ZWE5YjFiLjc0ZGVkYjRkOThlNzdmYTUuMTk1MzgwMWRmY2M1ZGEzOS5jYWJhMDEwNTJkNzkzMTZiCkBAIC0xMTk1OSw3ICsxMTk1OSw3IEBACiAgICAgYTg5M2U1MGMzMjBhNWU2NC5lMmMyOGNkZTUzOWE1NzJiLmRkZmFmODRjNzhmZDhmMzAuN2ZmYzkwYWU0ZTc4MWFkYQogICAgIDI4NDBjOGEyNjczZGRhM2YKIAotVkNNUFNEXzEyOF8weDE2KHJlZykKK1ZDTVBTRF8xMjhfMHg2KHJlZykKICAgYmVmb3JlCiAgICAgMmNhYTljM2NhYWVjNzJhNy43OTQ4ZWVjZWQ4YzU5NmJmLjBkZjBiMzc3OGQ0MzFjYmMuZjlmNGVjNTMwMTFjMTNhMgogICAgIGU1ODgwNmU2YjMxMTFlYmYuMTg0ZWJmZjZjZDAzMDNjZi4wMGFhYjIyYzgwZGIxNjY2LmI1MThhYThiOGFmN2FlZjIKQEAgLTExOTcyLDcgKzExOTcyLDcgQEAKICAgICBiMTI0MDQwZDFlMzYxOTMyLjYzNmZkNTcwMmRjZjYxYzAuMTczZDg3NjdjN2VlODJkNi5lZTMyYWRkZTMyOWIxYzRkCiAgICAgZWFjYjkyMWU4OWU5YTBhZC4zNDc4YWEyODE1MzY2YmJkLmFlZjUyZDk2ZmUwOTliYjguODEwZTc0M2ExMjEyMTlkZQogICAgIDQ4Nzc3ODhhNDg2YjYwZDIKLVZDTVBTRF8xMjhfMHgxNihtZW0pCitWQ01QU0RfMTI4XzB4NihtZW0pCiAgIGJlZm9yZQogICAgIDIwM2IzN2I5ZjBhZmFlNTQuZWVjOWFhODQ4ZGI1ZWZkYy42ODM1YmMwYmEwNDNkZWYyLjIxMWVhMTI0YzJiNzlmYjgKICAgICBlNjI0MmJiNTI1ZWNiZjkxLjE3Njk0YWFiYzgyNzQxNmEuZGM3Mjg2MDNlYjAyNzY4ZC5jYzA0ZGQ3Y2FlODVjODgwCkBAIC0xMTk4Niw3ICsxMTk4Niw3IEBACiAgICAgYTc5OGE4YzJhODdmMThlYi40Y2MzMGVlYzUyMmFlMTU2LmVmOWIzM2U2MmZjNzA0OWYuM2EzNmEyM2Y3MGFlN2IxZgogICAgIGI1MWEyMjgxN2UyMTdkNGQKIAotVkNNUFNEXzEyOF8weDFFKHJlZykKK1ZDTVBTRF8xMjhfMHg3KHJlZykKICAgYmVmb3JlCiAgICAgZDdlYjViM2UyNGU0OTVmNC41YmJiMjdhYTJkZWRkOTYwLjBmMTQyY2RlZDlkNGE3MGIuNDcxZjBlYTk2MWU1NzI2ZgogICAgIGZlZjU0YWUzZmY4MmZmYzEuNmMzM2NkMGViMDgzNGQzZi42ODM4YzA0MTA2NTM2MGNmLjRlNTQ5MTMyYzFlNmY1NTQKQEAgLTExOTk5LDcgKzExOTk5LDcgQEAKICAgICA4NTg0ZWFkYWFhODhmNjYwLmI2Y2UxNWRiNGQ0ZDJmYjUuYjQ3YmM4ODE3NTMzNDk1MC5lMDA0Mzk2ZDZlZDU0OTc5CiAgICAgYzdlNDM3OTBjMjgxYjg3Yy4xNTU2N2JmYjFmNTgzY2VlLjRkMjkzZjBhYzMwMTllMzcuZDlmYzgwNDY4MWJlMjkwYgogICAgIDE2MDdlNGE5MThhZTUyMzUKLVZDTVBTRF8xMjhfMHgxRShtZW0pCitWQ01QU0RfMTI4XzB4NyhtZW0pCiAgIGJlZm9yZQogICAgIDcxZjNlMDgyNGZiMDdmMjQuMjI2MDJkNzJlMmY5N2VjMi42NTk4N2I1YzQyYjAzMDE1LjkwOGQyMTQ5OGI0ODliMzMKICAgICBjNzhhZjBiZDQxZDA2ZTA0LmYxNDVjOWVhYTc3ZDg3ZGQuODI2MDkyZThkMzVmYzc1Ny5kOWY1NmFhODZhOTU3YmVlCkBAIC0xMjAwOSwxMSArMTIwMDksMTEgQEAKICAgYWZ0ZXIKICAgICA3MWYzZTA4MjRmYjA3ZjI0LjIyNjAyZDcyZTJmOTdlYzIuNjU5ODdiNWM0MmIwMzAxNS45MDhkMjE0OThiNDg5YjMzCiAgICAgYzc4YWYwYmQ0MWQwNmUwNC5mMTQ1YzllYWE3N2Q4N2RkLjgyNjA5MmU4ZDM1ZmM3NTcuZDlmNTZhYTg2YTk1N2JlZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MjYwOTJlOGQzNWZjNzU3LjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODI2MDkyZThkMzVmYzc1Ny5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZDNlZDNkMGFjODliN2Q0NC41YTdiZGY1MThkZDY0ZDQ0LjkzYjJmMTM2YWRmN2NjZGEuZWRmYzIzN2JkYjZkZDY1MwogICAgIDcwMzQ4YWM2YTYxMmNhNTQKIAotVkNNUFNEXzEyOF8weDFFKHJlZykKK1ZDTVBTRF8xMjhfMHg3KHJlZykKICAgYmVmb3JlCiAgICAgNjk5ZjQ4ZTJmNmVjOTFjNi40MjUwNzJmMzk0NWYxNWZlLmFjNjI1MjE3ZTdjMzgzZTguM2ZkMzMzY2YyZWY4YjI3NAogICAgIDM0ODg1YTNiNjk4NzY3NTMuMWM4ZWFiZWY4YzcwNWU1OC5lM2UzNWIyNDU2ZWNlYTEyLjI4YWI3YTQ0OGQ4MTJjZDgKQEAgLTEyMDIxLDEyICsxMjAyMSwxMiBAQAogICAgIGIwMDg2NjU0MjczMTM0NzAuODFjZjFhY2Q2ZWFmZjM5ZC42Y2RmMWJjM2UwMjAzZWE2LjIxYWIwYzczNTM1Y2M3YjAKICAgICBlOTZjNGUwNGYyYzY2MDdjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUzZTM1YjI0NTZlY2VhMTIuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lM2UzNWIyNDU2ZWNlYTEyLmZmZmZmZmZmZmZmZmZmZmYKICAgICAzNDg4NWEzYjY5ODc2NzUzLjFjOGVhYmVmOGM3MDVlNTguZTNlMzViMjQ1NmVjZWExMi4yOGFiN2E0NDhkODEyY2Q4CiAgICAgMmQzZGJhM2Q5YjZmOGFhNy4zZDc1NjRlOWNjZGMxNDdlLjU5NDlmNGU0NzVkY2MwNmQuMmEwNDQ0ODFlNTllZjQzMwogICAgIGIwMDg2NjU0MjczMTM0NzAuODFjZjFhY2Q2ZWFmZjM5ZC42Y2RmMWJjM2UwMjAzZWE2LjIxYWIwYzczNTM1Y2M3YjAKICAgICBlOTZjNGUwNGYyYzY2MDdjCi1WQ01QU0RfMTI4XzB4MUUobWVtKQorVkNNUFNEXzEyOF8weDcobWVtKQogICBiZWZvcmUKICAgICA1ZDEzODYyMWRmZTg3ZGMzLjE5MzY1OWVjYWE1OGEyNTcuYzQ2YTQ3ODY5MWYzYjZlMS43NmYyY2IyZDM0NDNhMzY5CiAgICAgNWI2YjMxYjczNWNmZDdiMC5jNDEzOTA3MmJmNzExMDBiLmUxMTA2OTAyNGZiNjFhNzYuZDVjZTAwOGYwY2QxMjk2MQpAQCAtMTIwMzYsMTEgKzEyMDM2LDExIEBACiAgIGFmdGVyCiAgICAgNWQxMzg2MjFkZmU4N2RjMy4xOTM2NTllY2FhNThhMjU3LmM0NmE0Nzg2OTFmM2I2ZTEuNzZmMmNiMmQzNDQzYTM2OQogICAgIDViNmIzMWI3MzVjZmQ3YjAuYzQxMzkwNzJiZjcxMTAwYi5lMTEwNjkwMjRmYjYxYTc2LmQ1Y2UwMDhmMGNkMTI5NjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTExMDY5MDI0ZmI2MWE3Ni4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUxMTA2OTAyNGZiNjFhNzYuZmZmZmZmZmZmZmZmZmZmZgogICAgIDYxNjJjY2ZhOGQxOTNhMmUuNTAwYWI2ZjQxMWE2ZGE4NC4xZWIwN2FmMTBkZTdiNTQwLmZkMTFlYmU3YmE2MDhiYTIKICAgICA3ZjEwOTdiNWM4NzhkZjQzCiAKLVZDTVBTRF8xMjhfMHgxRShyZWcpCitWQ01QU0RfMTI4XzB4NyhyZWcpCiAgIGJlZm9yZQogICAgIGM2MDdiYTJiY2EyYzQ0YzkuMjI5OGI1ODBjODk1YjkxNy5lOGJiOWVjODg1ZGFhZmEyLmY0NDE2MDNiNDU2ZDYzY2UKICAgICAyYzQzNGRiNDVkMDdmN2UxLmRjYjAwMTJlZGMwNTY3NTYuMzM0Y2I5M2FmYzMwNzQzYy4xNjBmMmJmNzg5YTJhMjVkCkBAIC0xMjA0OCwxMiArMTIwNDgsMTIgQEAKICAgICBjOGJhYjdhZmE0NjMzNjc2LmFhYjVhZWIyMDBmMjNlODkuNGUzOTc5YTU2MTcwYmM5Mi5hYThlNWQ3NmEzNDZjMjJjCiAgICAgZDVkN2JkMTFiMWNkMWJjNQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMzRjYjkzYWZjMzA3NDNjLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzM0Y2I5M2FmYzMwNzQzYy5mZmZmZmZmZmZmZmZmZmZmCiAgICAgMmM0MzRkYjQ1ZDA3ZjdlMS5kY2IwMDEyZWRjMDU2NzU2LjMzNGNiOTNhZmMzMDc0M2MuMTYwZjJiZjc4OWEyYTI1ZAogICAgIDBlMTA0ZGJjMWM5NTMzMzcuNmE3NjJiZjBlNTc2ZmYxOC44YzA3MDRiNTExMzM2NGZkLjVmZTQ1NjEyZjQ5MTJlMTgKICAgICBjOGJhYjdhZmE0NjMzNjc2LmFhYjVhZWIyMDBmMjNlODkuNGUzOTc5YTU2MTcwYmM5Mi5hYThlNWQ3NmEzNDZjMjJjCiAgICAgZDVkN2JkMTFiMWNkMWJjNQotVkNNUFNEXzEyOF8weDFFKG1lbSkKK1ZDTVBTRF8xMjhfMHg3KG1lbSkKICAgYmVmb3JlCiAgICAgYmE4YmYxY2UzYTMzZjUwZS5iNjhkODZmOTkwZmMzYTRiLjc2M2IwODYwNDg4N2UwZDQuZDcyZTE2NzY4ODcyYjhhNwogICAgIDM3Nzg3NDk5NWI4MzBjMzMuMzRkNWI2MDY3ZGVkN2I2MS5hY2QyYjVlN2RhNDFhMTI2LjgyMzJkNjk0MjBjNTkzZTcKQEAgLTEyMDY3LDcgKzEyMDY3LDcgQEAKICAgICA2NDI5NWQwOWQ0MTJkZmM0LjUxZjMyYTFhYzcwM2E4MDMuYzI2NmY0MmM0YTUxNmY4ZS5hZDk2YjA2ODE5OGZkOTlhCiAgICAgZTU4ZWMyZjViMjFlYmM2NQogCi1WUFNIVUZCXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4OChyZWcpCiAgIGJlZm9yZQogICAgIGIwYzVlNzgwMmMyZjZlMGIuY2U4NmI5ODY2MzY5MTQ4OC5hNzYxNjZmODVkNDIwYmU2LjVhZmI3ZmMyNjBiZmY0ZmIKICAgICA2ODg3MWI3MzI2NGQyYzM5LjNlNGE1NmMxZmFkYjc1ZDguZmQ3NGYzNGE2MzA4OWNiYi5jYmQyNGNlMTMwODI4NzIwCkBAIC0xMjA3NSwxMiArMTIwNzUsMTIgQEAKICAgICAxM2RjYTE0NjAzZTFiYmRjLmE0Mzk0MDIyYWUzZGFlY2UuMThiOWYxZjYzMjU5MzZlOS5hOTc1OWQ2NzZjMzVjYjNjCiAgICAgY2RkOTE5YTYxMDNkZjI4YwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGJiMDAwOGQyMDAwMGYzLjAwMDAwMGUxMDAwMDAwZDIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmQ3NGYzNGE2MzA4OWNiYi4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNjg4NzFiNzMyNjRkMmMzOS4zZTRhNTZjMWZhZGI3NWQ4LmZkNzRmMzRhNjMwODljYmIuY2JkMjRjZTEzMDgyODcyMAogICAgIDZiMjA1YjNjMzkwNDMyOWIuOTE0MmFmYTZiNTczYmZlMS5hZTc4Y2U3YTc2ZTE5NjJkLmYyYjZkNzc0ZDVhNWU1MjYKICAgICAxM2RjYTE0NjAzZTFiYmRjLmE0Mzk0MDIyYWUzZGFlY2UuMThiOWYxZjYzMjU5MzZlOS5hOTc1OWQ2NzZjMzVjYjNjCiAgICAgY2RkOTE5YTYxMDNkZjI4YwotVlBTSFVGQl8xMjgobWVtKQorVkNNUFNEXzEyOF8weDgobWVtKQogICBiZWZvcmUKICAgICAzYWFmYzcxZGRkYzkxOTQzLmJkMDZlYmZkMjA2ZjA0YTkuNTFmZDg2MWYwNDQ1ZmVjYy45NjgyNWEyOTMyZmRiODlhCiAgICAgY2NjMzIzYjhmMWU1ZmE4Yy5jNmViMzRjZDJiM2E0OWFlLjc1NTlmYjhiZDE5ODZhMDYuODQyMTA0N2YxMjU4NTdlZQpAQCAtMTIwOTAsMTEgKzEyMDkwLDExIEBACiAgIGFmdGVyCiAgICAgM2FhZmM3MWRkZGM5MTk0My5iZDA2ZWJmZDIwNmYwNGE5LjUxZmQ4NjFmMDQ0NWZlY2MuOTY4MjVhMjkzMmZkYjg5YQogICAgIGNjYzMyM2I4ZjFlNWZhOGMuYzZlYjM0Y2QyYjNhNDlhZS43NTU5ZmI4YmQxOTg2YTA2Ljg0MjEwNDdmMTI1ODU3ZWUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTcwMDAwNzU3ZjA0MDAwMC4wMDAwOTg2YTU4MDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc1NTlmYjhiZDE5ODZhMDYuMDAwMDAwMDAwMDAwMDAwMAogICAgIGQwZDRkNjBhNTdmZmRjODYuNjAxN2I0Njg3Y2I5YjYwZC45MjA3Njc1YzQxNGQ4OWUxLjIwMGMwYjQ0ZTQ2NWUwMjkKICAgICA4NWYxNjE4YjBlMmU0MDY5CiAKLVZQU0hVRkJfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHg4KHJlZykKICAgYmVmb3JlCiAgICAgY2JkYmU4YTY4OGRlYWZmYS5mOTZhMjU5YWUyMTU1NjhmLmFhZjRlMzBiZmI4NDU2YzAuNDNmMjU2OWExY2M3YjRkOQogICAgIDRkMTU5Y2ZmZWUwMjY3ODkuYjc2ZDEyZmQyM2ViN2FkYi5jM2JkMDE3OGQ4YmRlMjViLmRjYTU2NGY2ZGViYmViYmUKQEAgLTEyMTAyLDEyICsxMjEwMiwxMiBAQAogICAgIDc0YWQ3YzFmZjFkNGE0NTAuNjJlZGI3ZjEzNjA4YjJlYS5jZDNmZmE1YzFkYTZhY2Y4LjMxOTJkMmI4OGE0MzZmZmQKICAgICBhNjY1MjlmN2FiZWUzNWIwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY0MDBiZGUyMDAwMDAwMDAuZGMwMGMzNzgwMGE1MDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jM2JkMDE3OGQ4YmRlMjViLjAwMDAwMDAwMDAwMDAwMDAKICAgICA0ZDE1OWNmZmVlMDI2Nzg5LmI3NmQxMmZkMjNlYjdhZGIuYzNiZDAxNzhkOGJkZTI1Yi5kY2E1NjRmNmRlYmJlYmJlCiAgICAgNjZlZDc5MDRkZTI1YTVjMi5lNmFhMWEyMTM2OGQwNTk1LjA1YmQwYTE5YWZlZjk1OGEuMzdlYzBmNWNhNTM2ZWJiYgogICAgIDc0YWQ3YzFmZjFkNGE0NTAuNjJlZGI3ZjEzNjA4YjJlYS5jZDNmZmE1YzFkYTZhY2Y4LjMxOTJkMmI4OGE0MzZmZmQKICAgICBhNjY1MjlmN2FiZWUzNWIwCi1WUFNIVUZCXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4OChtZW0pCiAgIGJlZm9yZQogICAgIDcyMmY5MDAzMjQ0NGY3ZmYuZDJhMjlmYmVjNTlhYTFlMC4wNzAyNjc1ODNmNjczZTA1Ljc3OTBjZWFiYmQ2ZjYzNTEKICAgICA3MGJkODRjOTEwNTA3MjE3LmRiMThlMDRjZjYwM2Q4MWUuYjFiNWE1NDQ2ZWI2NjUxMy41ZmZjODA3NDJjZDVmNjQzCkBAIC0xMjExNywxMSArMTIxMTcsMTEgQEAKICAgYWZ0ZXIKICAgICA3MjJmOTAwMzI0NDRmN2ZmLmQyYTI5ZmJlYzU5YWExZTAuMDcwMjY3NTgzZjY3M2UwNS43NzkwY2VhYmJkNmY2MzUxCiAgICAgNzBiZDg0YzkxMDUwNzIxNy5kYjE4ZTA0Y2Y2MDNkODFlLmIxYjVhNTQ0NmViNjY1MTMuNWZmYzgwNzQyY2Q1ZjY0MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZmQ1NWYxM2IxNWZiNTgwLjVmMDAwMDAwMDBiMTJjZjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjFiNWE1NDQ2ZWI2NjUxMy4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNzc1NTAwMzViMmJhODE1MC42MmI3YWFlNWRjZjBlNDUyLjg0MjRiYzU4YWM1NjczYjcuNTk1NTc0MjFlNWE5OWU5YwogICAgIDIzZGFhY2RkNjczMDJjNWMKIAotVlBTSFVGQl8xMjgocmVnKQorVkNNUFNEXzEyOF8weDgocmVnKQogICBiZWZvcmUKICAgICA5YmE5YjRjMjI4ODM4NjYzLjM3ZjY4MGIxYTEzMThlY2EuOTg3NzJhYzhjYThiMzBhMC42NTc4OGM1OGYzYmVkMmE0CiAgICAgMWQxMDg3M2NjMzMwZTc1ZS45YThjN2Q5ODczOGY0NGJjLmU5ZTliODRhODVmOWE2NGMuYmE5YWRiOGRkMDQ3YmMzNQpAQCAtMTIxMjksMTIgKzEyMTI5LDEyIEBACiAgICAgYWZkMTdlYTBmOWM1YjFlMC5iOGMyZGE1NDMxMmQ5OWJhLjUwMGVlY2RiY2Y4MWZmNmMuMzU3OGUzNDJiOWU5MjBlZAogICAgIDEyY2I5NTlhZmUxYjEyNmQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBiYWU5MDAwMDAwMDBiYy5iYzlhOGQwMGU5MDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU5ZTliODRhODVmOWE2NGMuMDAwMDAwMDAwMDAwMDAwMAogICAgIDFkMTA4NzNjYzMzMGU3NWUuOWE4YzdkOTg3MzhmNDRiYy5lOWU5Yjg0YTg1ZjlhNjRjLmJhOWFkYjhkZDA0N2JjMzUKICAgICAwNTU5MjFiOGQ1YzI4Y2Y5LjdjZTE3MWQ1NDRkZTVlNTIuYjI1NzRmZDdhN2M3ODEwMS42MTU2MjRlMTVlZmNlZDk0CiAgICAgYWZkMTdlYTBmOWM1YjFlMC5iOGMyZGE1NDMxMmQ5OWJhLjUwMGVlY2RiY2Y4MWZmNmMuMzU3OGUzNDJiOWU5MjBlZAogICAgIDEyY2I5NTlhZmUxYjEyNmQKLVZQU0hVRkJfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHg4KG1lbSkKICAgYmVmb3JlCiAgICAgZDMxZGI1ZDc0OTlkN2Y0MC43N2M0OWI2MmNiYzY5MWJlLjJjZmIzMzAxNTU4NWIxMWUuMWQ1YTg5YzM5N2IxNWEzOQogICAgIDU2MzhiZmUzYjU3YjIyOTEuYjg3ZDczNjhlODUwNjkzZi5iMzU4ZjljOGNkZjQ2MmFhLjc3ODcyNGY5OWJlNWNlMTMKQEAgLTEyMTQ0LDExICsxMjE0NCwxMSBAQAogICBhZnRlcgogICAgIGQzMWRiNWQ3NDk5ZDdmNDAuNzdjNDliNjJjYmM2OTFiZS4yY2ZiMzMwMTU1ODViMTFlLjFkNWE4OWMzOTdiMTVhMzkKICAgICA1NjM4YmZlM2I1N2IyMjkxLmI4N2Q3MzY4ZTg1MDY5M2YuYjM1OGY5YzhjZGY0NjJhYS43Nzg3MjRmOTliZTVjZTEzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM4MDA5YmNlMjQwMDAwNTguZjlmNDAwMDAwMDAwZjQ2MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMzU4ZjljOGNkZjQ2MmFhLjAwMDAwMDAwMDAwMDAwMDAKICAgICAwZWZjODExZDYxN2RmZDYwLjFhNzU0NGY1NzIzMWYwZGQuNjlhZGI4NTUyNzQ0N2RlZC4zZGIzNDEwNGM5ODdmNWEwCiAgICAgNjI0YWJiYjAyYjBkMWZhYgogCi1WQ1ZUVFNEMlNJXzMyKHJlZykKK1ZDTVBTRF8xMjhfMHhBKHJlZykKICAgYmVmb3JlCiAgICAgODNmMjIzNWIzOWM3NTI3NC5mYzNkMzIyMmRhYjhhZDM1LmYyNGIzNTUyMTY5ZjE4NTEuNTEzZWFhZjI0MTNlNjBmYgogICAgIGZkZjc3MzcxOGY0MGNjYTYuMWE3N2JkYTdlNDgwODMzOS5iMzE4ZDJhNTc1YzcyNzE5LmJiMjJmODVhMWY3ZWNiZTIKQEAgLTEyMTU2LDEyICsxMjE1NiwxMiBAQAogICAgIDY3NDhjMDhlODY5ZjgwZjcuNWEwYTUxZTIxY2U1OTQ3Yy42NGM3ZmRkYmQyNzJlYzU0Ljg5MTY5OTM3OTQwMTJjZWEKICAgICBhNWJlZTQ4NTY0NWM5YTYzCiAgIGFmdGVyCi0gICAgODNmMjIzNWIzOWM3NTI3NC5mYzNkMzIyMmRhYjhhZDM1LmYyNGIzNTUyMTY5ZjE4NTEuNTEzZWFhZjI0MTNlNjBmYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMzE4ZDJhNTc1YzcyNzE5LmZmZmZmZmZmZmZmZmZmZmYKICAgICBmZGY3NzM3MThmNDBjY2E2LjFhNzdiZGE3ZTQ4MDgzMzkuYjMxOGQyYTU3NWM3MjcxOS5iYjIyZjg1YTFmN2VjYmUyCiAgICAgMmFhNWE5NWVjYTA0YzdlZS40Njc4OWU5OTliZTAzYzk3LmJiMjgxNjU5MmIzMzU5ZTEuODUyNjFmNzhkYzEwN2JjZQogICAgIDY3NDhjMDhlODY5ZjgwZjcuNWEwYTUxZTIxY2U1OTQ3Yy42NGM3ZmRkYmQyNzJlYzU0Ljg5MTY5OTM3OTQwMTJjZWEKLSAgICAwMDAwMDAwMDAwMDAwMDAwCi1WQ1ZUVFNEMlNJXzMyKG1lbSkKKyAgICBhNWJlZTQ4NTY0NWM5YTYzCitWQ01QU0RfMTI4XzB4QShtZW0pCiAgIGJlZm9yZQogICAgIGIzZTk3YjRkNjgyZTgwNjQuMTAyYmI1NmQ1ZTllMzI2ZS4zNGZhNTM2ZjgyOTk0NjEzLjBjNDE4Mzk1MDkwZDFhMWYKICAgICA5MDY1ZGI3YmJiODE5YjFhLjgxOWM4MzY4ZWU4YzFhZmYuYWUxNDFlMmRlYTBhMGY4OS4wZWUxYTVmNDY5OTIyMGVkCkBAIC0xMjE3MSwxMSArMTIxNzEsMTEgQEAKICAgYWZ0ZXIKICAgICBiM2U5N2I0ZDY4MmU4MDY0LjEwMmJiNTZkNWU5ZTMyNmUuMzRmYTUzNmY4Mjk5NDYxMy4wYzQxODM5NTA5MGQxYTFmCiAgICAgOTA2NWRiN2JiYjgxOWIxYS44MTljODM2OGVlOGMxYWZmLmFlMTQxZTJkZWEwYTBmODkuMGVlMWE1ZjQ2OTkyMjBlZAotICAgIDE5ZmM3ZWZiNzk2NGE3YjAuMTZlNTI1ZTlkM2Y1NzQ1NS5hNTI0MzAwNjZmNDRhYjBhLmM1ZjQ1ZTY1OTE4YzM5NmIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWUxNDFlMmRlYTBhMGY4OS4wMDAwMDAwMDAwMDAwMDAwCiAgICAgMjg3YmUyYmFiZmUwNWY1My4yYjUzOWE1ZWE5NjY3YzFkLmY2ZjYwNGU4MmU1MmQ2YzEuOGZjNmFhNTIxYTg4YTM0NAotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICBjNmEzODUyOWEzMTE5ODI1CiAKLVZDVlRUU0QyU0lfMzIocmVnKQorVkNNUFNEXzEyOF8weEEocmVnKQogICBiZWZvcmUKICAgICBjN2Q3ZWI1NWM1YjM1NGJhLjlhYWU4MmEyYTkwMzgwMmYuMWMzMmRiMzEwYjZhNmQwMi43YjU1MTdiZTQyNDA0YmRiCiAgICAgZWZhZWQ5NDExZWZiMTVhZS40YzYxZGFhMDUyZDhjNjZmLjQ1Y2RlNWQwOTU4ZTg0YjEuMTEwZmUzNzRjNzFhYzc4NApAQCAtMTIxODMsMTIgKzEyMTgzLDEyIEBACiAgICAgMjA3NDNhMGVlNGFhOTE2Ni5kYjc2YTM4ZjUyYzliMGNkLmFlNmI0NjFmOTM2MzE0MWMuZTFiZjliMzA5N2M0YzMzMAogICAgIGQyNGU3ZTBlMTlhY2JiOGMKICAgYWZ0ZXIKLSAgICBjN2Q3ZWI1NWM1YjM1NGJhLjlhYWU4MmEyYTkwMzgwMmYuMWMzMmRiMzEwYjZhNmQwMi43YjU1MTdiZTQyNDA0YmRiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ1Y2RlNWQwOTU4ZTg0YjEuMDAwMDAwMDAwMDAwMDAwMAogICAgIGVmYWVkOTQxMWVmYjE1YWUuNGM2MWRhYTA1MmQ4YzY2Zi40NWNkZTVkMDk1OGU4NGIxLjExMGZlMzc0YzcxYWM3ODQKICAgICA5ODczNGE1YjRhNzQxNWFlLjE4NjA2N2ExZDY2Y2VkNDAuMDI3MmI1YTZlNDVjZmRkNi45NWVlZTZmNmRiZWQwNmU3CiAgICAgMjA3NDNhMGVlNGFhOTE2Ni5kYjc2YTM4ZjUyYzliMGNkLmFlNmI0NjFmOTM2MzE0MWMuZTFiZjliMzA5N2M0YzMzMAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZDVlRUU0QyU0lfMzIobWVtKQorICAgIGQyNGU3ZTBlMTlhY2JiOGMKK1ZDTVBTRF8xMjhfMHhBKG1lbSkKICAgYmVmb3JlCiAgICAgNDQ2NzBjN2M3ZGIwYWEyNy5lMWZiYTVjNjg4MmFjNDgxLjcxNzAwYzU4ZTFmZWNjNDMuYTcwNjk0YTczZjJjMDQzMAogICAgIDEzZDVjMDY2ZGVkYzRjMmQuMzg1NTg3ZWZkMzdmZWNhYi5iNjFiMWRlN2EwMTRmZGNlLjQ4OGQ5Y2FhODM0NTBhYmQKQEAgLTEyMTk4LDExICsxMjE5OCwxMSBAQAogICBhZnRlcgogICAgIDQ0NjcwYzdjN2RiMGFhMjcuZTFmYmE1YzY4ODJhYzQ4MS43MTcwMGM1OGUxZmVjYzQzLmE3MDY5NGE3M2YyYzA0MzAKICAgICAxM2Q1YzA2NmRlZGM0YzJkLjM4NTU4N2VmZDM3ZmVjYWIuYjYxYjFkZTdhMDE0ZmRjZS40ODhkOWNhYTgzNDUwYWJkCi0gICAgMWI2NjE1Yjk1ODNkNWNjOS44MWNlZGRmNjYxMzU0MzkxLjg3NDE1MjI4YWExOWZmOTkuZWQ0ZDU4OTRmYzM5NjI3MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNjFiMWRlN2EwMTRmZGNlLjAwMDAwMDAwMDAwMDAwMDAKICAgICAzOGU0OGE1ZjA4ZGU5NzI3LjE4YjFhMjQ1Y2RkOTA2ZGYuYmVhZjI4MDcxYzE4OGRkMS5mMTkxYzZkMjQ1OTU0N2Y1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMAorICAgIGIyYTdlMWNlZmJlNGY2ZjcKIAotVkNWVFRTRDJTSV8zMihyZWcpCitWQ01QU0RfMTI4XzB4QShyZWcpCiAgIGJlZm9yZQogICAgIDhiZGFhNWY1YjliMmFiMjMuNDcxYzk4NDYwOWNiYjk3NS41YTRjZDI0YWIzZjY3MDQxLjM4MzAxYTcwMTExZTY0YTEKICAgICBkNzc1MGZiNDFjOGJhMTI0LjIyZGFiYzU5NzgxMDdlZGMuYTFlOTZhNmZiMDE4YmU2Mi5kMTkyYTQ0ZmE1MzYzZjM2CkBAIC0xMjIxMCwxMiArMTIyMTAsMTIgQEAKICAgICAzYzE2YzFhNzNlOTA0NDU3LmFlMTgzOGIyMGVkNWRmYWMuYjE1ZGJlY2U1ZDlkZjY5My5kMDI1NzAyMDFkY2RmNTVlCiAgICAgZWVlZWFiZTkzODY0NDc0OQogICBhZnRlcgotICAgIDhiZGFhNWY1YjliMmFiMjMuNDcxYzk4NDYwOWNiYjk3NS41YTRjZDI0YWIzZjY3MDQxLjM4MzAxYTcwMTExZTY0YTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTFlOTZhNmZiMDE4YmU2Mi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZDc3NTBmYjQxYzhiYTEyNC4yMmRhYmM1OTc4MTA3ZWRjLmExZTk2YTZmYjAxOGJlNjIuZDE5MmE0NGZhNTM2M2YzNgogICAgIGY0YzUxYTc2YmZmYzE2YTcuYTVlYTczODM3MWJhYTE4Yi40YWQ2NjQyMjVmY2MyY2VlLjY1OWY0MjkwZjU2Y2RjYmMKICAgICAzYzE2YzFhNzNlOTA0NDU3LmFlMTgzOGIyMGVkNWRmYWMuYjE1ZGJlY2U1ZDlkZjY5My5kMDI1NzAyMDFkY2RmNTVlCi0gICAgMDAwMDAwMDA4MDAwMDAwMAotVkNWVFRTRDJTSV8zMihtZW0pCisgICAgZWVlZWFiZTkzODY0NDc0OQorVkNNUFNEXzEyOF8weEEobWVtKQogICBiZWZvcmUKICAgICA5YWM3NmVkOTYzM2Q4ZGE4LjBkYjQwM2IyMzZkNDY3ZTEuMTgyZjg3ZDE2ZTZiZjM2Yi4zMmNiNzNkZTQ1MTg1N2ZhCiAgICAgYjI3YjM1ZGFiOTY1ODRhOC5jMWViZDkwNTQzNTNiZGYxLmJmZmRkZGNjYWE4YTliZjUuMjk2YjdmYzBiNGM3OGNkMgpAQCAtMTIyMjUsMTEgKzEyMjI1LDExIEBACiAgIGFmdGVyCiAgICAgOWFjNzZlZDk2MzNkOGRhOC4wZGI0MDNiMjM2ZDQ2N2UxLjE4MmY4N2QxNmU2YmYzNmIuMzJjYjczZGU0NTE4NTdmYQogICAgIGIyN2IzNWRhYjk2NTg0YTguYzFlYmQ5MDU0MzUzYmRmMS5iZmZkZGRjY2FhOGE5YmY1LjI5NmI3ZmMwYjRjNzhjZDIKLSAgICAxMWQ4N2NkYTU2ZTdlODc1LmI2MDY0MTBjMDA5OTgwMzIuN2Y0Y2I1OTBlMTNlOTE3Ni5mMjhiZGZkZjQ1MzhkMWM1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJmZmRkZGNjYWE4YTliZjUuZmZmZmZmZmZmZmZmZmZmZgogICAgIDkzYThiZmM0NTdjZjc1M2EuNDY1MzM1MzEwOTMzZWQ1MS4zNGU5OGEwNzJjOTE5MjFhLmU5NzY4ZWE3OTVmNzYxN2YKLSAgICAwMDAwMDAwMDAwMDAwMDAwCisgICAgNmE3Nzg3ODUzZjhmN2FhZAogCi1WQ1ZUVFNEMlNJXzY0KHJlZykKK1ZDTVBTRF8xMjhfMHhDKHJlZykKICAgYmVmb3JlCiAgICAgZDFkYmM5ZTNlMDhjNTZmYi4xNGI5N2I4NGQ3MmFlNjI0LmNmMWNiM2UxZmJhYzNmZmEuYmFhMGRhMWVhOTkxNTkwYgogICAgIDdhZWU0ZDJlMTM3YTMxMTUuNmZkNTJiMDZmMzAzZjg1ZS5hYmFlYjc4ODcxOTBiNGQ4LmVjM2QyMWMyNzQ0YWE0NzgKQEAgLTEyMjM3LDEyICsxMjIzNywxMiBAQAogICAgIDAxNTAwZjNjYTA1YmQ4NWEuMjg2MTU4MDA2ZDYwZWY3NC5kMDVkM2Q2YzViY2JmMmU1LmM5NTg4MDVkNjIxM2IwNzEKICAgICAyYTZlOTEyZGJkM2RlYjU1CiAgIGFmdGVyCi0gICAgZDFkYmM5ZTNlMDhjNTZmYi4xNGI5N2I4NGQ3MmFlNjI0LmNmMWNiM2UxZmJhYzNmZmEuYmFhMGRhMWVhOTkxNTkwYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYmFlYjc4ODcxOTBiNGQ4LmZmZmZmZmZmZmZmZmZmZmYKICAgICA3YWVlNGQyZTEzN2EzMTE1LjZmZDUyYjA2ZjMwM2Y4NWUuYWJhZWI3ODg3MTkwYjRkOC5lYzNkMjFjMjc0NGFhNDc4CiAgICAgYzBmYzExZDM3NGU2NDlhNi44MmM5NGIzNmM2NjY2NzE1LjM3NTUzYjkzMDg2Yzg2OTcuYTg4YmQ5ZGRhOGM2MmM4YgogICAgIDAxNTAwZjNjYTA1YmQ4NWEuMjg2MTU4MDA2ZDYwZWY3NC5kMDVkM2Q2YzViY2JmMmU1LmM5NTg4MDVkNjIxM2IwNzEKLSAgICA4MDAwMDAwMDAwMDAwMDAwCi1WQ1ZUVFNEMlNJXzY0KG1lbSkKKyAgICAyYTZlOTEyZGJkM2RlYjU1CitWQ01QU0RfMTI4XzB4QyhtZW0pCiAgIGJlZm9yZQogICAgIGE5OWE4ODM4ZDU0ZTk4NjQuOTgzODQ1ZDczMzY2MWJkZS4zYzY4Y2M1MDAzZmM0YmE5LmQwMTFiODgxMDczOTMzNmIKICAgICAyMWE4ZTI2Y2M3NTU3NGNhLmUxZmVhZjBmYzg5MjRkZGUuOWNhYzI1MTNhNTQ2MzhkZC45NGJmYTgzZGE3NDM4NmQ4CkBAIC0xMjI1MiwxMSArMTIyNTIsMTEgQEAKICAgYWZ0ZXIKICAgICBhOTlhODgzOGQ1NGU5ODY0Ljk4Mzg0NWQ3MzM2NjFiZGUuM2M2OGNjNTAwM2ZjNGJhOS5kMDExYjg4MTA3MzkzMzZiCiAgICAgMjFhOGUyNmNjNzU1NzRjYS5lMWZlYWYwZmM4OTI0ZGRlLjljYWMyNTEzYTU0NjM4ZGQuOTRiZmE4M2RhNzQzODZkOAotICAgIDZkNjQxOWI0YWU1YjNhYjIuMzdmMDQ3NTBmYjZiYWIwNS4yM2Y3ZGUzMzZlNGI3MjNmLjc5YjEwOTBiZDg3NDI3ZDYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWNhYzI1MTNhNTQ2MzhkZC5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNmI5OWFiZmNhNzZlYTc0OC5mODU4MGIwNjY5N2Q3MTAwLmFjMTc3MzllN2IxNmI0ZjguZDkzNGQ4NTkzNTU4NTIxMgotICAgIDgwMDAwMDAwMDAwMDAwMDAKKyAgICAxMTk0MGY5MjViN2M0MjM3CiAKLVZDVlRUU0QyU0lfNjQocmVnKQorVkNNUFNEXzEyOF8weEMocmVnKQogICBiZWZvcmUKICAgICA3ZDFkYWMyM2U1NmIzNGYyLmY1MTUxMzMxY2U5OTc3YmEuN2Y4M2Y2OWRhZDU1ZGI3Yi4xNWQ2NjEzZWU3YjNiYjM3CiAgICAgNzkxYWFiNzY2ZmIxNjRlZS5lOWEyY2QzZDNkZTg2NjMyLjI3YmMwNDgxNjQ3ZjI1MjEuMzgwMTIyMDFjZjJmNDMyNgpAQCAtMTIyNjQsMTIgKzEyMjY0LDEyIEBACiAgICAgOTFhNGJiMTVmNjc0NmQ1Yy43YjIyMjk4ZTY5MjQ5MGU1LjRlOGM3OWUxOTlmNTQ2YTAuMjBjYTEyOWQ4MGYyYzVjNgogICAgIDljMDAzOTRlODI1MTM3Y2YKICAgYWZ0ZXIKLSAgICA3ZDFkYWMyM2U1NmIzNGYyLmY1MTUxMzMxY2U5OTc3YmEuN2Y4M2Y2OWRhZDU1ZGI3Yi4xNWQ2NjEzZWU3YjNiYjM3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI3YmMwNDgxNjQ3ZjI1MjEuZmZmZmZmZmZmZmZmZmZmZgogICAgIDc5MWFhYjc2NmZiMTY0ZWUuZTlhMmNkM2QzZGU4NjYzMi4yN2JjMDQ4MTY0N2YyNTIxLjM4MDEyMjAxY2YyZjQzMjYKICAgICA2MWQ5MDZmODk2ZGIwZGQ4LjIxMGQ1NjBkMTM2ODMwZGMuNGU1MTMxMWUyYTg1OGE5Zi5mMzYzMzRkMjRlOTUwOGYyCiAgICAgOTFhNGJiMTVmNjc0NmQ1Yy43YjIyMjk4ZTY5MjQ5MGU1LjRlOGM3OWUxOTlmNTQ2YTAuMjBjYTEyOWQ4MGYyYzVjNgotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZDVlRUU0QyU0lfNjQobWVtKQorICAgIDljMDAzOTRlODI1MTM3Y2YKK1ZDTVBTRF8xMjhfMHhDKG1lbSkKICAgYmVmb3JlCiAgICAgNDRkMzIzZDE3MGJlMWEzOC42NWM5YzUzYTJhMDliZDI1LmQxYWRjMmFhNWUyOTQzNzkuODViYmQ5MzQ1MDVhOTdkMQogICAgIGYyMGQ0ZTEyNjU0NTI5MmUuMzk5MjIwZDFjZTI0M2NlMC4wMDdhOWQ0ZjBiODEwNGMzLjRkMjg0Yzg1ZTg0MWI3ZGQKQEAgLTEyMjc5LDExICsxMjI3OSwxMSBAQAogICBhZnRlcgogICAgIDQ0ZDMyM2QxNzBiZTFhMzguNjVjOWM1M2EyYTA5YmQyNS5kMWFkYzJhYTVlMjk0Mzc5Ljg1YmJkOTM0NTA1YTk3ZDEKICAgICBmMjBkNGUxMjY1NDUyOTJlLjM5OTIyMGQxY2UyNDNjZTAuMDA3YTlkNGYwYjgxMDRjMy40ZDI4NGM4NWU4NDFiN2RkCi0gICAgODM3YjM1ZmU3ZGYzMjFkZC42OTRiYzg0ODdmNTQyNTM4LmU1NTQzNjY4OGYzYjkwZjAuMDQyMGNlM2VmZjM1ZTM3MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDdhOWQ0ZjBiODEwNGMzLmZmZmZmZmZmZmZmZmZmZmYKICAgICBkNGU5NTQ3ZmQ1ZDNiZTcwLjUxNDJiOTBhZDkyMmIzZGEuNWEwOTBhZTEwMzYwYTQyYi4wNGVlNWNjZDMxYzI1NzM5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMAorICAgIGFiZTBmMDlkMTk3NTRmZTAKIAotVkNWVFRTRDJTSV82NChyZWcpCitWQ01QU0RfMTI4XzB4QyhyZWcpCiAgIGJlZm9yZQogICAgIDUzNDE4ODFhNTRkOTA2MTMuYmYyMjI3ODI4OGYyYmMxNC40ZGMyZjA4Mzc2MWMyMjcxLjNjNjM5M2E2ODVmZWY5YTEKICAgICA1OTVjMWZiMDdkN2FiOTdkLjIxZjQyYmY0YjM1YmQ2ZjUuYjkxNjY4MWZmNWNkYjBhYi42NzJmNTBhMzMxMjA0ZTdlCkBAIC0xMjI5MSwxMiArMTIyOTEsMTIgQEAKICAgICBmMGYzM2JkNzBhYTUwMWE5LmJhOGViM2QyZGYzYjUxMWIuNTA2ZTBjNzAwMzg1MTRiMi4wOTRkNGVmNTc0MjJlMzFiCiAgICAgMzczNjg5MjI0NDE5OWIzMwogICBhZnRlcgotICAgIDUzNDE4ODFhNTRkOTA2MTMuYmYyMjI3ODI4OGYyYmMxNC40ZGMyZjA4Mzc2MWMyMjcxLjNjNjM5M2E2ODVmZWY5YTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjkxNjY4MWZmNWNkYjBhYi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNTk1YzFmYjA3ZDdhYjk3ZC4yMWY0MmJmNGIzNWJkNmY1LmI5MTY2ODFmZjVjZGIwYWIuNjcyZjUwYTMzMTIwNGU3ZQogICAgIDFhN2ViMmNiMzBlNWEzY2MuZDYyOWRiYzA3MTFhYzkzZS5mMDhiMWQ0YWYwYzI5NzMxLmI4MzliYWM0MjJkMzVkZWQKICAgICBmMGYzM2JkNzBhYTUwMWE5LmJhOGViM2QyZGYzYjUxMWIuNTA2ZTBjNzAwMzg1MTRiMi4wOTRkNGVmNTc0MjJlMzFiCi0gICAgODAwMDAwMDAwMDAwMDAwMAotVkNWVFRTRDJTSV82NChtZW0pCisgICAgMzczNjg5MjI0NDE5OWIzMworVkNNUFNEXzEyOF8weEMobWVtKQogICBiZWZvcmUKICAgICAxZWMyZTYzOGFlYzQ0MzYyLjM4MDdiODQwYTc0NjEwYzIuYWFlZjJmMTUxOGNiMmFiOS4zNDA4MmZmZGNhYTU2M2Q4CiAgICAgOWFiYmUxMjFjZDMwOTVkNC40ZTA2MjQ3MmEyNTUwOWMzLjgwMThjYzc3MzlkNTBmNDQuZjhhODg0NWRlM2FiYmY0ZgpAQCAtMTIzMDYsMTEgKzEyMzA2LDExIEBACiAgIGFmdGVyCiAgICAgMWVjMmU2MzhhZWM0NDM2Mi4zODA3Yjg0MGE3NDYxMGMyLmFhZWYyZjE1MThjYjJhYjkuMzQwODJmZmRjYWE1NjNkOAogICAgIDlhYmJlMTIxY2QzMDk1ZDQuNGUwNjI0NzJhMjU1MDljMy44MDE4Y2M3NzM5ZDUwZjQ0LmY4YTg4NDVkZTNhYmJmNGYKLSAgICA4N2VlZjZjYmJkNjg0ZWI0LjhlM2I3YmRhOTc1ZDJiNTguMTlkNTA1ZTM1ZDY2YmRlOC5mNzk5MDZmZGU3MjU2NWM0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMThjYzc3MzlkNTBmNDQuZmZmZmZmZmZmZmZmZmZmZgogICAgIGMxMjdhMjIxOWI3OTI5MmYuNTVmNGI5ZTIyM2VhYjAyYy41MWYxNTY0NmExODllZmQwLjhmMjZiMTQ3NzQ5ZTkxZTMKLSAgICAwMDAwMDAwMDAwMDAwMDAwCisgICAgMWI5ZDgyYTkyNmEzN2Y1NwogCi1WQ1ZUU0kyU1NfNjQocmVnKQorVkNNUFNEXzEyOF8weEQocmVnKQogICBiZWZvcmUKICAgICBmNjQ4NzQ4ZTk4YmY2YWNkLjI0MzI2MDBlODI2ZWUzNzAuZmQ3YmRiZjhlMTg5ZDVlYi4wNDNhM2I4YTIwNGE2MzI4CiAgICAgN2U3NDgzNjE2NzdlOGZmMS44Y2RiYWM4MDhmNTMzOGE0LmUzMWRkYzg3NmVjNWQ2NDIuMGU3YTMwOWNmNmI2ZDMxZApAQCAtMTIzMTgsMTIgKzEyMzE4LDEyIEBACiAgICAgMDE3ZWU4ODY4OTE2NzZmMC5kYjM2ZGVhMDg5MWZhMjk0LmQ5ZTI2YmMwNjM0NTVhNjguOTYxMjNiZGIxYWJjOTk4ZAogICAgIGNkMDI0YWUwOWY2ZjY3NjAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTMxZGRjODc2ZWM1ZDY0Mi4wZTdhMzA5Y2RlNGJmNmQ0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUzMWRkYzg3NmVjNWQ2NDIuMDAwMDAwMDAwMDAwMDAwMAogICAgIDdlNzQ4MzYxNjc3ZThmZjEuOGNkYmFjODA4ZjUzMzhhNC5lMzFkZGM4NzZlYzVkNjQyLjBlN2EzMDljZjZiNmQzMWQKICAgICAwZDZkYWI5MDJlNmMyYTZlLmQ1ZWQwMjYyZGQzNWU0ZjcuNjMyNmI4ZmI2NTJhZWVkZC40YjdlYjI2OTQwZDhmY2RiCiAgICAgMDE3ZWU4ODY4OTE2NzZmMC5kYjM2ZGVhMDg5MWZhMjk0LmQ5ZTI2YmMwNjM0NTVhNjguOTYxMjNiZGIxYWJjOTk4ZAogICAgIGNkMDI0YWUwOWY2ZjY3NjAKLVZDVlRTSTJTU182NChtZW0pCitWQ01QU0RfMTI4XzB4RChtZW0pCiAgIGJlZm9yZQogICAgIGNiMTk1ODYzZWJmYzIyODAuYjRmNTM3YWYxNTA4YjAyNS43YTgwYmQyN2FlMWQyZmE4LmExOWNmMTQyMDNhMTU2OGUKICAgICA2YzI1ZTI0ZjFiNmY4NjE4Ljg0MWM5Mjc4NmRjYzE0YjcuOGQ5ODFhZTE2OTNjNDc1ZS4xN2EyNDdlZGUyY2IxZGZiCkBAIC0xMjMzMywxMSArMTIzMzMsMTEgQEAKICAgYWZ0ZXIKICAgICBjYjE5NTg2M2ViZmMyMjgwLmI0ZjUzN2FmMTUwOGIwMjUuN2E4MGJkMjdhZTFkMmZhOC5hMTljZjE0MjAzYTE1NjhlCiAgICAgNmMyNWUyNGYxYjZmODYxOC44NDFjOTI3ODZkY2MxNGI3LjhkOTgxYWUxNjkzYzQ3NWUuMTdhMjQ3ZWRlMmNiMWRmYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZDk4MWFlMTY5M2M0NzVlLjE3YTI0N2VkZGViY2M2MWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGQ5ODFhZTE2OTNjNDc1ZS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgMDY0NzVjMTc5NTM5Mzc2Mi5lNmFlNjI5NWY0MDA0OWEzLjg0NjIzZWEyMGYwYTA3NjMuN2RiZDUwNmVjYmI2ZmY1ZAogICAgIDI0NmJmYzFkMGQ4ZjkyYWEKIAotVkNWVFNJMlNTXzY0KHJlZykKK1ZDTVBTRF8xMjhfMHhEKHJlZykKICAgYmVmb3JlCiAgICAgZWE5NDY2YTRmZDY2ZTBlZC5iOGY2NDNjYTE4YTdmZDZjLjMyYjBjZGMzNTk4NjkyNTYuMWZhYmZlODAzMmQyMjcwOQogICAgIDJhODQ4YzcxMzhjNjI3ZDUuN2RjOTk2OThlZDJjNWM5Zi4wOTkyMzYzZmZjMTBmNTE2LjllZjMyYjQzNWFlYWMyMDIKQEAgLTEyMzQ1LDEyICsxMjM0NSwxMiBAQAogICAgIDg3ZThmOTg5ZmU1MzhhM2YuYWYwYTcyMzAwM2E4ZDMyZC5jYzJhZWZkNTY2NWVmNzZmLmJkYWJjMjI0MmMzYjU3OWIKICAgICAxM2I0MjIxYjBkOGNjYTkzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA5OTIzNjNmZmMxMGY1MTYuOWVmMzJiNDM1ZDlkYTExMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wOTkyMzYzZmZjMTBmNTE2LmZmZmZmZmZmZmZmZmZmZmYKICAgICAyYTg0OGM3MTM4YzYyN2Q1LjdkYzk5Njk4ZWQyYzVjOWYuMDk5MjM2M2ZmYzEwZjUxNi45ZWYzMmI0MzVhZWFjMjAyCiAgICAgNDA4NjY5ZWU1YTNjYTAwYy4zMDhjZDI2YjMzZDMwZjI2LmM4YTI5ODc3NzYyYWFkOTAuZGYwNDQzZDZhNDVlOTM3OQogICAgIDg3ZThmOTg5ZmU1MzhhM2YuYWYwYTcyMzAwM2E4ZDMyZC5jYzJhZWZkNTY2NWVmNzZmLmJkYWJjMjI0MmMzYjU3OWIKICAgICAxM2I0MjIxYjBkOGNjYTkzCi1WQ1ZUU0kyU1NfNjQobWVtKQorVkNNUFNEXzEyOF8weEQobWVtKQogICBiZWZvcmUKICAgICBiZmViZTFhNjYzNWVhODhlLjVkZjQzOWFkYzA5NzFmMTkuZDUxMWYyZDQ3YmI4NjRlMi42Zjc4MzdjNzY1M2EwZjYwCiAgICAgOWIxYjc5YjI0YmJiYWNiOC4xZGY3MjNjNjNkOTQ5YzQ3LjdkNmJjZTQxYjcwZTdkNmYuMGVkNjZkYjgxMjRhMzEwZgpAQCAtMTIzNjAsMTEgKzEyMzYwLDExIEBACiAgIGFmdGVyCiAgICAgYmZlYmUxYTY2MzVlYTg4ZS41ZGY0MzlhZGMwOTcxZjE5LmQ1MTFmMmQ0N2JiODY0ZTIuNmY3ODM3Yzc2NTNhMGY2MAogICAgIDliMWI3OWIyNGJiYmFjYjguMWRmNzIzYzYzZDk0OWM0Ny43ZDZiY2U0MWI3MGU3ZDZmLjBlZDY2ZGI4MTI0YTMxMGYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2Q2YmNlNDFiNzBlN2Q2Zi4wZWQ2NmRiODVlZGVmMDcwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdkNmJjZTQxYjcwZTdkNmYuMDAwMDAwMDAwMDAwMDAwMAogICAgIDU3OWEyYWY4M2Y0YzE5NDcuY2ExMmVhODdkNmViM2Q0ZS5jNzRiOGIyYmU5YmQzYWMyLmIwZjU5MDQ3ZGYzMjgxNTUKICAgICA2YjRkNzViZTM5MjQyODQ0CiAKLVZDVlRTSTJTU182NChyZWcpCitWQ01QU0RfMTI4XzB4RChyZWcpCiAgIGJlZm9yZQogICAgIDkyZTczN2UzYWY3OWM5YTEuZWY4MDM5MGI4Mzk3ZjkwNS43MGMxYmYwODJiNWRkOTdlLjIxNjk2NDdlMTcyZTU2ZTEKICAgICA4MTBkZDMyM2RkYmQ5ZjE4LjI3OTAxMzRmYzk5ZWYwYTEuNmY5ODJlMmRhOWI4NGRiMy42ZDBhODk0Yzc4MTZlYTg4CkBAIC0xMjM3MiwxMiArMTIzNzIsMTIgQEAKICAgICAyNzMwODZhNWQ0NDNkYzAyLmViNWUxNTE2YzkxMTEzMjUuZWNlOWNmMTc5NjVhYWNkNi40ZjA5YTgwNzQ2Nzg2ZDIxCiAgICAgOWNmZTlhY2JlYTBhZDM2YQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42Zjk4MmUyZGE5Yjg0ZGIzLjZkMGE4OTRjZGVjNjAyY2EKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmY5ODJlMmRhOWI4NGRiMy5mZmZmZmZmZmZmZmZmZmZmCiAgICAgODEwZGQzMjNkZGJkOWYxOC4yNzkwMTM0ZmM5OWVmMGExLjZmOTgyZTJkYTliODRkYjMuNmQwYTg5NGM3ODE2ZWE4OAogICAgIDk0MGM0NGViNjA3Y2U3NTQuZGQ5NjMzYWYyYzZkYmE0Ny4yNWUxMzU2M2VmODhkNTk3Ljg4ZmM3NjgwMjk4MGIzZTQKICAgICAyNzMwODZhNWQ0NDNkYzAyLmViNWUxNTE2YzkxMTEzMjUuZWNlOWNmMTc5NjVhYWNkNi40ZjA5YTgwNzQ2Nzg2ZDIxCiAgICAgOWNmZTlhY2JlYTBhZDM2YQotVkNWVFNJMlNTXzY0KG1lbSkKK1ZDTVBTRF8xMjhfMHhEKG1lbSkKICAgYmVmb3JlCiAgICAgNGNhN2M4YjkzMTQzYTJlYi45NmM1OTViZmQ0OWRiY2NkLjJlYjQzNTcyYmI5NWI2NjUuMjJmY2Y4YjMzY2I5MGYxZAogICAgIDNjZDBhZWJlMzgyZTk2ZDEuM2QxNzZlYTRmYzE2YzE2Mi44MjYzMTBhZTFmMDY2MDMzLjIxNjZhY2E1N2QzMTNhMTgKQEAgLTEyMzg3LDExICsxMjM4NywxMSBAQAogICBhZnRlcgogICAgIDRjYTdjOGI5MzE0M2EyZWIuOTZjNTk1YmZkNDlkYmNjZC4yZWI0MzU3MmJiOTViNjY1LjIyZmNmOGIzM2NiOTBmMWQKICAgICAzY2QwYWViZTM4MmU5NmQxLjNkMTc2ZWE0ZmMxNmMxNjIuODI2MzEwYWUxZjA2NjAzMy4yMTY2YWNhNTdkMzEzYTE4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgyNjMxMGFlMWYwNjYwMzMuMjE2NmFjYTU1ZTBiZjNlMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MjYzMTBhZTFmMDY2MDMzLjAwMDAwMDAwMDAwMDAwMDAKICAgICA0N2QxOTNiOWY0NGNkYzdjLmEzMjE2YTdlMzY5NzJjOTkuY2VmZmU0NzZhYmRjYjgyYy5lZTZlYTczODNlOWVkNmQ4CiAgICAgNzNhNGU1YjFmNmFhYzBmNQogCi1WQ1ZUU0kyU0RfNjQocmVnKQorVkNNUFNEXzEyOF8weEUocmVnKQogICBiZWZvcmUKICAgICAzMjYxOWUyZmI4MDA2Mjc3LjFiNDI4YTg3ZTE5NmE2OTguMWE3MTg2NGQ4MGI3MGE5My43ZDg0ZDVkYTBiNTlkZWFlCiAgICAgODhmMWNmMWUyMTJiZjcwNy45ZjYyMjkxY2ZlYzM4NWM4LjM5YWU1Yzk2NjIyNmZlMDYuYWQ5MzcxY2U0Y2YzZmI2ZgpAQCAtMTIzOTksMTIgKzEyMzk5LDEyIEBACiAgICAgNjRiYTg1MDA1NzMxZWQwNy4yMmUyNTA0ODM2ZjM3MTE3LmRlMWYyMjQ5NjAyMTE3MGEuMDE3ZTk2MTdlM2FjMDk1YwogICAgIGRjZjIxODQzNzFlMzcyZTEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzlhZTVjOTY2MjI2ZmUwNi5jM2MxODZmM2RlNDcwZTQ3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM5YWU1Yzk2NjIyNmZlMDYuMDAwMDAwMDAwMDAwMDAwMAogICAgIDg4ZjFjZjFlMjEyYmY3MDcuOWY2MjI5MWNmZWMzODVjOC4zOWFlNWM5NjYyMjZmZTA2LmFkOTM3MWNlNGNmM2ZiNmYKICAgICBjZmEwNzJlYWNkYjdiYzUzLmFkZmVlYzYzNjZkZDM1M2EuNWIyNGU2YzY3OTcwNDQ5Zi4zYWY4MzIzZjhiYjVjYjlhCiAgICAgNjRiYTg1MDA1NzMxZWQwNy4yMmUyNTA0ODM2ZjM3MTE3LmRlMWYyMjQ5NjAyMTE3MGEuMDE3ZTk2MTdlM2FjMDk1YwogICAgIGRjZjIxODQzNzFlMzcyZTEKLVZDVlRTSTJTRF82NChtZW0pCitWQ01QU0RfMTI4XzB4RShtZW0pCiAgIGJlZm9yZQogICAgIGE4MjAzNWIwNTE2NmMyNTQuYTM4YjA0Y2E1YjI0YzZjZi5kYWQ5Y2ZiNzg5MGVmNjhlLjFkZWIwYjhjYjRjNmI1ZjIKICAgICA0MWQ0Njc0OTllNDJiNWUyLmU4NWVlOWI2NzYxYzgyNTYuYjFiMWU3OWM3YzNjN2ZjOS43M2QzOWVmOTEwZWI1NzAzCkBAIC0xMjQxNCwxMSArMTI0MTQsMTEgQEAKICAgYWZ0ZXIKICAgICBhODIwMzViMDUxNjZjMjU0LmEzOGIwNGNhNWIyNGM2Y2YuZGFkOWNmYjc4OTBlZjY4ZS4xZGViMGI4Y2I0YzZiNWYyCiAgICAgNDFkNDY3NDk5ZTQyYjVlMi5lODVlZTliNjc2MWM4MjU2LmIxYjFlNzljN2MzYzdmYzkuNzNkMzllZjkxMGViNTcwMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMWIxZTc5YzdjM2M3ZmM5LjQzYmRlYjBiOGNiNGM2YjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjFiMWU3OWM3YzNjN2ZjOS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNGFmZWZmYWVmMDMyNzJmZC5mNTNkZDlhMDVmNGQ5NTUyLjJjMzBkMDc5YWZmZjkxM2QuZDkyYmFlMDU1MmUxOWU1NAogICAgIDlmMzIyNDdjNmZjYmJhZWEKIAotVkNWVFNJMlNEXzY0KHJlZykKK1ZDTVBTRF8xMjhfMHhFKHJlZykKICAgYmVmb3JlCiAgICAgZWU4NTMzY2UwNTY1Y2M1YS43MTBiNWM1MzJkNWZiNGUzLjc0ZTFkYzc3NjU5ZDY1MjAuODg2Zjk5NDgyOGFjOTFjZAogICAgIDIwNzJkNzY3YjAzYTBmNTAuZDZjZmMwZDU0ODE0OGE5My42OWI4MzcxZmYyMjMwODVlLjczYmVlOTNlYjE5Yjg1ZDMKQEAgLTEyNDI2LDEyICsxMjQyNiwxMiBAQAogICAgIGExNDZkMDFlYjJjNjFiN2MuYzdhNzg5MWI4NjQ3ZGQwMy4yNTJlZTE5MjBmZmZiOWQ3LjY1YmIxNDRiNjA3MTNjZWIKICAgICAyNTAxZTUzYmJmNmY3NzU2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY5YjgzNzFmZjIyMzA4NWUuNDNjMjgwZjI5ZGRmYjdiYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42OWI4MzcxZmYyMjMwODVlLmZmZmZmZmZmZmZmZmZmZmYKICAgICAyMDcyZDc2N2IwM2EwZjUwLmQ2Y2ZjMGQ1NDgxNDhhOTMuNjliODM3MWZmMjIzMDg1ZS43M2JlZTkzZWIxOWI4NWQzCiAgICAgOTM0NDBkYjMwYWQ2YzE3Ny41NDE0YTUxZTVjNWRhZTNhLjMwMGVlNDA0YTE2YWJhYjcuYzhlODNlNDU2NWQ5MmE3OQogICAgIGExNDZkMDFlYjJjNjFiN2MuYzdhNzg5MWI4NjQ3ZGQwMy4yNTJlZTE5MjBmZmZiOWQ3LjY1YmIxNDRiNjA3MTNjZWIKICAgICAyNTAxZTUzYmJmNmY3NzU2Ci1WQ1ZUU0kyU0RfNjQobWVtKQorVkNNUFNEXzEyOF8weEUobWVtKQogICBiZWZvcmUKICAgICBlNDg4MmYwMTllZTA5NmU2LmE3YzUxYzE1NDI5NTVjMGIuMGI1NGU3YjhlMWRkZDIxYi5hMzY1MjkzNWQ3NmMzZjZiCiAgICAgN2UxYTZkODkxN2NmNTZjNi4wMjBkZWQwMjU2Y2ZiZWNmLmZjZTczY2UyODkyYjRhYWQuMDgwMGI4NWE5NjQwODkxZgpAQCAtMTI0NDEsMTEgKzEyNDQxLDExIEBACiAgIGFmdGVyCiAgICAgZTQ4ODJmMDE5ZWUwOTZlNi5hN2M1MWMxNTQyOTU1YzBiLjBiNTRlN2I4ZTFkZGQyMWIuYTM2NTI5MzVkNzZjM2Y2YgogICAgIDdlMWE2ZDg5MTdjZjU2YzYuMDIwZGVkMDI1NmNmYmVjZi5mY2U3M2NlMjg5MmI0YWFkLjA4MDBiODVhOTY0MDg5MWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmNlNzNjZTI4OTJiNGFhZC5jM2Q3MjZiNWIyOGEyNGYwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZjZTczY2UyODkyYjRhYWQuZmZmZmZmZmZmZmZmZmZmZgogICAgIGIyOTJiNThmNGQ1OGE5MjkuMjIyODBmNzI3Y2I2ZDhhOC41NGVlYjc4OTMzMjFiM2YyLmY0OGM5Y2Q2NjY0NjU4OTUKICAgICAzMzE3ZTkwNWIwOTE1NWIwCiAKLVZDVlRTSTJTRF82NChyZWcpCitWQ01QU0RfMTI4XzB4RShyZWcpCiAgIGJlZm9yZQogICAgIGM4MzU2ZDY2NjE3MjA2OWEuMDUwZmI4ZTU0MjBhYjMwMy5hMTkzNThjZGM2N2EwNzE0Ljc0ZmFkNmRmNmNlMDFjZmQKICAgICAwZTMxMjQ2NDE0NzNhNzAwLmEyYzk5ZmFlNDE2YTRlZGUuZTNmNjE2Y2UwNGRhNDk2Ny5iMDFjZGI3MTYyODhmNzMxCkBAIC0xMjQ1MywxMiArMTI0NTMsMTIgQEAKICAgICAyMmY2MWNlNmYxMGJhN2VlLjJlMjAwOTQ1ZDM2NjI2NDUuMjNkOGUyNzdjZTliZjA2Yy5mMGQyODhmOWY4YzBmNWNiCiAgICAgYWNmZDI4YzdjZjY5OTA4OAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lM2Y2MTZjZTA0ZGE0OTY3LmMzZDRjMGI1Y2UwYzI1OWMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTNmNjE2Y2UwNGRhNDk2Ny5mZmZmZmZmZmZmZmZmZmZmCiAgICAgMGUzMTI0NjQxNDczYTcwMC5hMmM5OWZhZTQxNmE0ZWRlLmUzZjYxNmNlMDRkYTQ5NjcuYjAxY2RiNzE2Mjg4ZjczMQogICAgIDYzNTgwYTZhNjUyMzczOGQuNjc4YWU2ZDQ2OTg1MzZlNS40NTllNDVlM2QzNjFkODRiLmU2MjA0MjJhMzIyNDAxYmQKICAgICAyMmY2MWNlNmYxMGJhN2VlLjJlMjAwOTQ1ZDM2NjI2NDUuMjNkOGUyNzdjZTliZjA2Yy5mMGQyODhmOWY4YzBmNWNiCiAgICAgYWNmZDI4YzdjZjY5OTA4OAotVkNWVFNJMlNEXzY0KG1lbSkKK1ZDTVBTRF8xMjhfMHhFKG1lbSkKICAgYmVmb3JlCiAgICAgZjQ2ZjllODFkMzJhOGUxZi5hNjU3NTU0MzUzYjk3ZmNmLmQ1NTU4NGViOWQxYWRiMjkuZDllZWU4ZjY5MjE1Y2Y3OAogICAgIGE2ZjI2NjEzMjExMGFiYmQuNGRjN2IxZWUyOGI4MzZkYi4zNmY2ZDRiNGUzYWIxMWJlLmM0MmM1M2NjYmE1YWFmMTgKQEAgLTEyNDY4LDExICsxMjQ2OCwxMSBAQAogICBhZnRlcgogICAgIGY0NmY5ZTgxZDMyYThlMWYuYTY1NzU1NDM1M2I5N2ZjZi5kNTU1ODRlYjlkMWFkYjI5LmQ5ZWVlOGY2OTIxNWNmNzgKICAgICBhNmYyNjYxMzIxMTBhYmJkLjRkYzdiMWVlMjhiODM2ZGIuMzZmNmQ0YjRlM2FiMTFiZS5jNDJjNTNjY2JhNWFhZjE4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM2ZjZkNGI0ZTNhYjExYmUuYzNjMzA4OGI4NGI2ZjUxOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNmY2ZDRiNGUzYWIxMWJlLmZmZmZmZmZmZmZmZmZmZmYKICAgICBiNDVlZGQ3MDA5NzczMWJkLjcwMDNjM2Q5OTlkYjM0MjYuOWFhYmUwNWM1MTlhZWZhYS5hNDU1NDgyZWE3NzY2NGNiCiAgICAgNTJkNmNiOTFhNTY1YjEzNAogCi1WQ1ZUU0kyU0RfMzIocmVnKQorVkNNUFNEXzEyOF8weDEwKHJlZykKICAgYmVmb3JlCiAgICAgYTRiMGEzZmM3NzRmZjBlNC5jOGRmODQxM2RiMTIxMjc2LmE1Njc3MGYzNmQxNmYzYmQuNTU1Nzk0MTNiMDBmMGY1OQogICAgIGY2MmZjY2Q5YjljMTVkODQuYjVhMjZkM2Q2NzAxMDFlNi42YjBhMzEwOTI0ZDM4MTJmLjNhYTAwZDljZmM5MmEwNjkKQEAgLTEyNDgwLDEyICsxMjQ4MCwxMiBAQAogICAgIDBhNGMwMjllZmY2YmFmNGIuOGIxZGY2ZGIxYjBiZmM5Yi4xZTNkZGRkZWE5MDBmZDU3LmY2MzQzYmQ1YzVmMzAzNTkKICAgICA4NDE4ZTg1YzdiZWE0ZTkzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZiMGEzMTA5MjRkMzgxMmYuNDFkZWZhOTNhNGMwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42YjBhMzEwOTI0ZDM4MTJmLjAwMDAwMDAwMDAwMDAwMDAKICAgICBmNjJmY2NkOWI5YzE1ZDg0LmI1YTI2ZDNkNjcwMTAxZTYuNmIwYTMxMDkyNGQzODEyZi4zYWEwMGQ5Y2ZjOTJhMDY5CiAgICAgYTQ5ZjQyOTYwODQ2MzNjMy41ODczMTVkY2M4NTBiYjM5LjFmMzgwMjg5NTk5ZDFiMjkuMjY1MGM2ZTM0ZjMwNWQwNQogICAgIDBhNGMwMjllZmY2YmFmNGIuOGIxZGY2ZGIxYjBiZmM5Yi4xZTNkZGRkZWE5MDBmZDU3LmY2MzQzYmQ1YzVmMzAzNTkKICAgICA4NDE4ZTg1YzdiZWE0ZTkzCi1WQ1ZUU0kyU0RfMzIobWVtKQorVkNNUFNEXzEyOF8weDEwKG1lbSkKICAgYmVmb3JlCiAgICAgYWRjNzQ5NjY4YzFlZmFkZC44MzgxMDY1YzNiYmIwZGM4LjJiNmQ4ZTI2N2IzZjgwMzcuYzI2NWMwNzNhZjg5NjI2NAogICAgIDRkMGZkYmRkMTU5ZGMyNjMuNmQ4YzRjM2U1OGMyODhlNy4xNTJmNThhOTA0ZjcwMzM5LjY5ZmJhNWI2MDhjMzg3ZmQKQEAgLTEyNDk1LDExICsxMjQ5NSwxMSBAQAogICBhZnRlcgogICAgIGFkYzc0OTY2OGMxZWZhZGQuODM4MTA2NWMzYmJiMGRjOC4yYjZkOGUyNjdiM2Y4MDM3LmMyNjVjMDczYWY4OTYyNjQKICAgICA0ZDBmZGJkZDE1OWRjMjYzLjZkOGM0YzNlNThjMjg4ZTcuMTUyZjU4YTkwNGY3MDMzOS42OWZiYTViNjA4YzM4N2ZkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1MmY1OGE5MDRmNzAzMzkuYzFkNDFkYTc2NzAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNTJmNThhOTA0ZjcwMzM5LjAwMDAwMDAwMDAwMDAwMDAKICAgICA2Mzk1N2ZjN2ZkYWE5OWQ2LjAxNGY4YzFjYTIyNmM5YmIuMzIzOTczMDcwNDI1ZjQyMi4yYmE1NmJmMzIwN2IwMTgxCiAgICAgZmY1MDQyYzUxODExY2RjNQogCi1WQ1ZUU0kyU0RfMzIocmVnKQorVkNNUFNEXzEyOF8weDEwKHJlZykKICAgYmVmb3JlCiAgICAgNDY5YTBkZjVkMzg4NDk0NC45MDZjODkxMTk0NTAyMDFhLjYzYTA3ZWVmMDc5YjA1YzcuMWUxOWJjYmJiMmIyZGE2MQogICAgIDVhY2VjN2VkZWM2ZGIxYWIuYTQwYmI0NzkxMzcwYjM0Yi5hNGY2YTA5NWJlZjg1MDI0LmMzOWEyNzU2ZjlmNGIwYjYKQEAgLTEyNTA3LDEyICsxMjUwNywxMiBAQAogICAgIDVjMjhmOWU5YTlhZTMzZTAuZjFkMDU5NTMzNzRmZWYyMi4zOGUwNmEwYjhiOTdmZTg0LmE4YjI1M2Y1YzRjNDE3NTQKICAgICBhMGUxMGRkMTgwNmEyMGY0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE0ZjZhMDk1YmVmODUwMjQuYzFkZmU1NzdjMzAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNGY2YTA5NWJlZjg1MDI0LjAwMDAwMDAwMDAwMDAwMDAKICAgICA1YWNlYzdlZGVjNmRiMWFiLmE0MGJiNDc5MTM3MGIzNGIuYTRmNmEwOTViZWY4NTAyNC5jMzlhMjc1NmY5ZjRiMGI2CiAgICAgOTgzYTZjMWJmZjRiNDBhNi43YjNlN2FlYjk1MTYwZjk0LjIyOWNmMDdhNjBjOGU0N2YuZmQ4OTMwYzZmNmY2MzA0ZAogICAgIDVjMjhmOWU5YTlhZTMzZTAuZjFkMDU5NTMzNzRmZWYyMi4zOGUwNmEwYjhiOTdmZTg0LmE4YjI1M2Y1YzRjNDE3NTQKICAgICBhMGUxMGRkMTgwNmEyMGY0Ci1WQ1ZUU0kyU0RfMzIobWVtKQorVkNNUFNEXzEyOF8weDEwKG1lbSkKICAgYmVmb3JlCiAgICAgYzFlMmQ4NDU0NmY1MDg1Yy4wMmU1NjhjNTg1MjNjNjA1LmUyOGZjYzlkMTQyNzExMjEuNDEwYzA4YjNkYmYxZDlkZQogICAgIGU3ODEzMjNkMzA3MThiYjYuZTZiZWI3MWEzMDM1MzVjMi4yYTQ1NTBiNTQ5YTgyZmJjLjliNmRjOGRkZWI2M2IyM2EKQEAgLTEyNTIyLDExICsxMjUyMiwxMSBAQAogICBhZnRlcgogICAgIGMxZTJkODQ1NDZmNTA4NWMuMDJlNTY4YzU4NTIzYzYwNS5lMjhmY2M5ZDE0MjcxMTIxLjQxMGMwOGIzZGJmMWQ5ZGUKICAgICBlNzgxMzIzZDMwNzE4YmI2LmU2YmViNzFhMzAzNTM1YzIuMmE0NTUwYjU0OWE4MmZiYy45YjZkYzhkZGViNjNiMjNhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJhNDU1MGI1NDlhODJmYmMuYzFjMjA3MTMxMTAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yYTQ1NTBiNTQ5YTgyZmJjLjAwMDAwMDAwMDAwMDAwMDAKICAgICBiMmM4ODE2OWU2Njg1MWYyLmQ4ZWVlMmRlNjE2MTk1YjQuMmZjOTc3MDAyOGRhNTE3OC5hZWZlOWI2Y2JjYmQ0ZWE3CiAgICAgMWZjNmE2YThiNmJkODkwZgogCi1WQ1ZUU0kyU0RfMzIocmVnKQorVkNNUFNEXzEyOF8weDEwKHJlZykKICAgYmVmb3JlCiAgICAgNTFmMmMzMTdlMDA0YjEyYS4wZjA4NmU3NWVhZmQwYzJiLjllZGZiNzI2MWY5M2ZmNDAuYTMyZjEzMGIwYmEzY2RmMQogICAgIDllZDBlZDI1ZDYxZjAzYTIuZTExNmQ4YjU4MmIxNTIwOC4xMjFhNWE5NzFjOTMzNTEzLmRmYmRiMDk0YjU0NjM2YjYKQEAgLTEyNTM0LDEyICsxMjUzNCwxMiBAQAogICAgIGZkY2Q1OGNmOThmZTEzNWEuNTNjYzE5ODJlNGFjNmU1OC43NGEyZmZhNTQxMmFmMzQxLjFjN2ZkOWNmZDE0YmJlZDcKICAgICBkNTRjNWU1YTdhYzU1NThiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEyMWE1YTk3MWM5MzM1MTMuNDFkZWIxNTU2MmMwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMjFhNWE5NzFjOTMzNTEzLjAwMDAwMDAwMDAwMDAwMDAKICAgICA5ZWQwZWQyNWQ2MWYwM2EyLmUxMTZkOGI1ODJiMTUyMDguMTIxYTVhOTcxYzkzMzUxMy5kZmJkYjA5NGI1NDYzNmI2CiAgICAgNjRhYTIwM2UzNTk5YmEyMy4wM2JlM2UxNWNjOTJkZmIzLjkwZWRjOTllZjNlYjcyZGEuYmUzZWM4ODY0M2NmNDhmNQogICAgIGZkY2Q1OGNmOThmZTEzNWEuNTNjYzE5ODJlNGFjNmU1OC43NGEyZmZhNTQxMmFmMzQxLjFjN2ZkOWNmZDE0YmJlZDcKICAgICBkNTRjNWU1YTdhYzU1NThiCi1WQ1ZUU0kyU0RfMzIobWVtKQorVkNNUFNEXzEyOF8weDEwKG1lbSkKICAgYmVmb3JlCiAgICAgYzQ3MWQzMTQ1YTQ5YzkzYi5jNjg1OTE0MjljZGI0YmYzLmFjMGJlNmU2ZTUwOWJjMjQuMWE4NmY5MTlhMWQ5ZjRmMwogICAgIGM3YmFiNGU3OGVlNGQ2MTMuMWMxZWM4MDVkZGJiOWI5OS5lOTQ5MjIyZmVjYjc4NTQzLmRlZTViMTY3YWY4NmIwOWQKQEAgLTEyNTQ5LDExICsxMjU0OSwxMSBAQAogICBhZnRlcgogICAgIGM0NzFkMzE0NWE0OWM5M2IuYzY4NTkxNDI5Y2RiNGJmMy5hYzBiZTZlNmU1MDliYzI0LjFhODZmOTE5YTFkOWY0ZjMKICAgICBjN2JhYjRlNzhlZTRkNjEzLjFjMWVjODA1ZGRiYjliOTkuZTk0OTIyMmZlY2I3ODU0My5kZWU1YjE2N2FmODZiMDlkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU5NDkyMjJmZWNiNzg1NDMuYzFkNzg5ODJjMzQwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lOTQ5MjIyZmVjYjc4NTQzLjAwMDAwMDAwMDAwMDAwMDAKICAgICA3NWU4YWI4YjYwOGRhOWVlLmRhMjIxZDI3ODNiNTdhYmUuODRlZGQ0MWQ3OTM0NzYyOC4yZjQzNTAzZDQ4MDg0Yzg4CiAgICAgNzVkYTJlOWUwYWY0YTMyMQogCi1WUE9SXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MTEocmVnKQogICBiZWZvcmUKICAgICA0OTFjYmM4OGVhMGZhNzYxLmQ5NjRiYTM1MzZiMmU4NDguZmIyNTMzNWYyMGU3ODA5NS45OGVjNDM5YTM4MWIxNzQ3CiAgICAgMDY1NWY0Njc4NWUyOTJmNS5iZjM0MjRhOGNmMWVhZjdiLjE5MzkzNzk2NmE0YzhmMmEuMDIxOTBmYWI2YzgzMjM2OApAQCAtMTI1NjEsMTIgKzEyNTYxLDEyIEBACiAgICAgYjBkYzU3YjQ1YWU1MGZjOC44NTAwZmQ5ZWJkZmFjODFiLmI3YzRmNmIxNzRlMWJjM2MuNDQyY2IzMzlhNjAzNmE2MgogICAgIGQ0YWE4MzhlZTIzMzFlOTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWZiYjM3YmVmZjdkZWYyYS45ZTNmYmZiZjdlZjc3N2Y4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE5MzkzNzk2NmE0YzhmMmEuMDAwMDAwMDAwMDAwMDAwMAogICAgIDA2NTVmNDY3ODVlMjkyZjUuYmYzNDI0YThjZjFlYWY3Yi4xOTM5Mzc5NjZhNGM4ZjJhLjAyMTkwZmFiNmM4MzIzNjgKICAgICAwYWQxZDRhNzc2ZmJhMDg5LjA1MjQ2NmQyNDlkZGJiYjMuOGVhYTI0MzhmZDcxZTUyOC45YzNmYjYzYzMyNzc1NWI4CiAgICAgYjBkYzU3YjQ1YWU1MGZjOC44NTAwZmQ5ZWJkZmFjODFiLmI3YzRmNmIxNzRlMWJjM2MuNDQyY2IzMzlhNjAzNmE2MgogICAgIGQ0YWE4MzhlZTIzMzFlOTMKLVZQT1JfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxMShtZW0pCiAgIGJlZm9yZQogICAgIDJhODZhMDI4MDUxNDJjNzYuNTNjMjdhZmFjYzJkMTk1ZS4xZDk0NjRmODQ5ODE5MmRmLmYwZDNhOTZkNmMyOTUxMTEKICAgICAyMDhjODhmMTI4YjE1MTM4LjUxY2UzN2U2Njk1ZWZiZjkuYTdhYjE3Y2MwOTdlZDQyZC45NTIyMzlkODgwZDNkZjU0CkBAIC0xMjU3NiwxMSArMTI1NzYsMTEgQEAKICAgYWZ0ZXIKICAgICAyYTg2YTAyODA1MTQyYzc2LjUzYzI3YWZhY2MyZDE5NWUuMWQ5NDY0Zjg0OTgxOTJkZi5mMGQzYTk2ZDZjMjk1MTExCiAgICAgMjA4Yzg4ZjEyOGIxNTEzOC41MWNlMzdlNjY5NWVmYmY5LmE3YWIxN2NjMDk3ZWQ0MmQuOTUyMjM5ZDg4MGQzZGY1NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZmJmNzdmYzQ5ZmZkNmZmLmY1ZjNiOWZkZWNmYmRmNTUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTdhYjE3Y2MwOTdlZDQyZC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNjA0NmE2YzRlNDUwZDAwOC5jYThjNzQ1YzkyYWMzNmU4LjA1OTY1MjkyOTIwY2IzMTEuOTNiNGUyNmM2ZDgzZDlkMwogICAgIGE0OGVmMjZkN2ZhMGJkNjcKIAotVlBPUl8xMjgocmVnKQorVkNNUFNEXzEyOF8weDExKHJlZykKICAgYmVmb3JlCiAgICAgOTFkOWNmY2QxYzUwOGExOC42MTkyZDRhNmI1NmJhMTZlLmZkZDRlYmJlNTZlMTA3OTUuOTAwMWQxNWM5NGI1YzcwMAogICAgIGI2ZTA3NmY3ZTMxZjdkOTMuNzQzN2JkNjhmNjcxNzk2Mi5mYjc0ZWU3NmI1MmY5ZmY2LjdmMjA4ZDUwMzkwMzQ0MjgKQEAgLTEyNTg4LDEyICsxMjU4OCwxMiBAQAogICAgIDE4NTYwZTVlNTk0Y2M1OTYuM2JiZmFkM2MzZTczMmRhNy5jM2U4ODQ5NWIyNDcxODgyLmY0YWFhYTY3ZGZjNDY5ZDEKICAgICAzM2FjMDM2MjE2NGU4OGFhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZjdmZmZmZmYyZmJmZjYuZmZiZjhmNWJiZjA3ZTZiYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYjc0ZWU3NmI1MmY5ZmY2LjAwMDAwMDAwMDAwMDAwMDAKICAgICBiNmUwNzZmN2UzMWY3ZDkzLjc0MzdiZDY4ZjY3MTc5NjIuZmI3NGVlNzZiNTJmOWZmNi43ZjIwOGQ1MDM5MDM0NDI4CiAgICAgNmZmMWUyNTk2ZTlhZDI4NC43MzAyZGNmNmM1NzAxNDExLjFlYjc3N2VmNGEyMjNjYjYuYWNiZjAyNWI5ZTA1ZTZiNAogICAgIDE4NTYwZTVlNTk0Y2M1OTYuM2JiZmFkM2MzZTczMmRhNy5jM2U4ODQ5NWIyNDcxODgyLmY0YWFhYTY3ZGZjNDY5ZDEKICAgICAzM2FjMDM2MjE2NGU4OGFhCi1WUE9SXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MTEobWVtKQogICBiZWZvcmUKICAgICA0NTkzODgzNjYyYWUwMDZjLjBjNWRmOTcyNDFjMjkxNzYuYTgzYWFjMjY3Yzg3ODE0Zi40NzU1MTBkNDg4MmE3MDA1CiAgICAgMDcyOWI1ZDFkY2YxOGQ0My5hOTUwOWMwMWMxODc3M2NmLjk2M2Y1NWEwOWJiNmNjMzYuMDQ0ODE3MTg2ODU1N2ZlYwpAQCAtMTI2MDMsMTEgKzEyNjAzLDExIEBACiAgIGFmdGVyCiAgICAgNDU5Mzg4MzY2MmFlMDA2Yy4wYzVkZjk3MjQxYzI5MTc2LmE4M2FhYzI2N2M4NzgxNGYuNDc1NTEwZDQ4ODJhNzAwNQogICAgIDA3MjliNWQxZGNmMThkNDMuYTk1MDljMDFjMTg3NzNjZi45NjNmNTVhMDliYjZjYzM2LjA0NDgxNzE4Njg1NTdmZWMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmUzZmZkYTZmZmI3Y2Q3Zi40NzVkMTdkY2U4N2Y3ZmVkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk2M2Y1NWEwOWJiNmNjMzYuZmZmZmZmZmZmZmZmZmZmZgogICAgIDA2OTVmNzA5ZDA0ZGQ1ZGUuNGIyZGZmNDFmYjJlNjg5Zi42NjE2OTdmNWVmOWIzNjcwLjlkZjM4ODVmYjliOWI2OTUKICAgICAzMDQzZTkzYTYwMDk1NWFmCiAKLVZQT1JfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxMShyZWcpCiAgIGJlZm9yZQogICAgIDZkNDliNWNiODNkMjliZGQuZmMwMjA1N2U4MTdmMDhmYS4wN2FlYjZjOWVkMjlmMzZkLmZmODAyN2E4NWI2OGNkMWEKICAgICBiMDUyZTg3Y2JjYTBjNWNhLjExNTBhYjY5ZDJjMjNmZGIuZGM0ZDE2N2RlN2EzODQ2NC44OWE0NTE5YTE4ODE0YmIzCkBAIC0xMjYxNSwxMiArMTI2MTUsMTIgQEAKICAgICBiODllNzVmM2UxN2RiNTkyLjA4YmJiMDUyYzJiMWFkOWIuM2QxMGMyMTU2NDQ2YTc4MS5lMDRhNjVmMGY3YzllYjYyCiAgICAgNjU2NDQ2MmI1MTBmODVjZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZDVkMWZmZmU3YWJkNjc2LmU5ZWVkM2JiNWJmMzZmZjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGM0ZDE2N2RlN2EzODQ2NC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgYjA1MmU4N2NiY2EwYzVjYS4xMTUwYWI2OWQyYzIzZmRiLmRjNGQxNjdkZTdhMzg0NjQuODlhNDUxOWExODgxNGJiMwogICAgIDU1YWI3ZmJiYTcwMDBmMjIuMjE0OTY1YjdkZTI1MzhhZC4yNTU0MWJjNzg1Mjk1NjMyLmUwNGU5MmI5NDNmMzZjNjcKICAgICBiODllNzVmM2UxN2RiNTkyLjA4YmJiMDUyYzJiMWFkOWIuM2QxMGMyMTU2NDQ2YTc4MS5lMDRhNjVmMGY3YzllYjYyCiAgICAgNjU2NDQ2MmI1MTBmODVjZgotVlBPUl8xMjgobWVtKQorVkNNUFNEXzEyOF8weDExKG1lbSkKICAgYmVmb3JlCiAgICAgNGI2N2IxNTY2Y2QyZjVkYS4zNTc4YzY5MDA1YTNmMmM2LmEyNzAwNjI3OTk3NDVhZDIuODJjZDA2ZDIyMDg2YjFmZAogICAgIDZkMjEyMjVkNjUxZGY5YjAuMjg4NTZlZmViMGZmMDM2YS5jYjM1ZTUyMzdmN2FmZDdkLjRlZDdlMzZhNTQ3NmIwNTMKQEAgLTEyNjMwLDExICsxMjYzMCwxMSBAQAogICBhZnRlcgogICAgIDRiNjdiMTU2NmNkMmY1ZGEuMzU3OGM2OTAwNWEzZjJjNi5hMjcwMDYyNzk5NzQ1YWQyLjgyY2QwNmQyMjA4NmIxZmQKICAgICA2ZDIxMjI1ZDY1MWRmOWIwLjI4ODU2ZWZlYjBmZjAzNmEuY2IzNWU1MjM3ZjdhZmQ3ZC40ZWQ3ZTM2YTU0NzZiMDUzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmViNzVlNzI3ZmY3ZWZmZmYuY2VkZmU3ZmE3NGY2YjFmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYjM1ZTUyMzdmN2FmZDdkLjAwMDAwMDAwMDAwMDAwMDAKICAgICBkYWU1MDhhZjVmN2NhODZjLmUwNjdiNGZkMDk4NjkwYWYuMzkxZTJiM2NlYjdiMTBlMi5lZjAxNTlkYjk1OTM4MTNjCiAgICAgN2NiYWVhOGNkYmQ4Y2EyNwogCi1WUFhPUl8xMjgocmVnKQorVkNNUFNEXzEyOF8weDEyKHJlZykKICAgYmVmb3JlCiAgICAgMDBlZjA0YzgwOWZkZjg5Yi5kYzg4NzRkMzk4YThjYmFhLjVkZDQ0YTY2ZWZjYTg1YTkuMzdkYjhiMzJhODkwZjlmMwogICAgIGQ4ZWRhM2ZjYmI4ZTQ5NDYuOGIxMWQ2ODIxZjhjNzE2My5jMGE0Mjc1MGNiNzMzZGMzLjM0ZDc2M2ZlZTQxNmM2MjgKQEAgLTEyNjQyLDEyICsxMjY0MiwxMiBAQAogICAgIGY1NzQ2MWY4MWQyMDNmZWEuNWYwNDZlMzU4NGFlMzZmNC5hODlkYTc1OGQ4MjZlODA1LjlhYmY2YmM4NGJhYmZmYjIKICAgICBiYzQzOTM5ZWFlZDBlMzVkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE1ODc2MDc4ZjA3ZGM5NmIuMzgwODRkNzI1ODBkZjI4NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMGE0Mjc1MGNiNzMzZGMzLjAwMDAwMDAwMDAwMDAwMDAKICAgICBkOGVkYTNmY2JiOGU0OTQ2LjhiMTFkNjgyMWY4YzcxNjMuYzBhNDI3NTBjYjczM2RjMy4zNGQ3NjNmZWU0MTZjNjI4CiAgICAgNjEwMGM0OTI4ZTE1ZjdkMS5jMjRiYWJhYTBmMzU1NmMyLjY1MjM0NzI4M2IwZWY0YTguMGNkZjJlOGNiYzFiMzRhZgogICAgIGY1NzQ2MWY4MWQyMDNmZWEuNWYwNDZlMzU4NGFlMzZmNC5hODlkYTc1OGQ4MjZlODA1LjlhYmY2YmM4NGJhYmZmYjIKICAgICBiYzQzOTM5ZWFlZDBlMzVkCi1WUFhPUl8xMjgobWVtKQorVkNNUFNEXzEyOF8weDEyKG1lbSkKICAgYmVmb3JlCiAgICAgNGQzNzI0ZmIwMDk4OWJkZC5mMTk0Nzg5ODA1M2I1YzNkLjNkMDY5YTExOWIwM2NkMjQuZTQ1ZTQyNGU0MDQ3NTM4NgogICAgIDI4NjY5OGM5NWUwZmU0NWUuYjJhZTA0ZTBlMWYwOGI3Ni4zNzFlYWUyOTcwNDFkNjdmLjc3YjExNDc0MGZmZDcyZDYKQEAgLTEyNjU3LDExICsxMjY1NywxMSBAQAogICBhZnRlcgogICAgIDRkMzcyNGZiMDA5ODliZGQuZjE5NDc4OTgwNTNiNWMzZC4zZDA2OWExMTliMDNjZDI0LmU0NWU0MjRlNDA0NzUzODYKICAgICAyODY2OThjOTVlMGZlNDVlLmIyYWUwNGUwZTFmMDhiNzYuMzcxZWFlMjk3MDQxZDY3Zi43N2IxMTQ3NDBmZmQ3MmQ2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhMTgzNDM4ZWI0MjFiNWIuOTNlZjU2M2E0ZmJhMjE1MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNzFlYWUyOTcwNDFkNjdmLjAwMDAwMDAwMDAwMDAwMDAKICAgICAzMGE5MWY2Y2FjMzcxODExLmVlZmI2YzE1ZTc1ZTBmNDcuZjNjMDc3YmRjMWE2MzA2NS4wZjQxNGQwNTRmNWFiYTk1CiAgICAgY2IxNWFkNDdmOTE5NWM1YwogCi1WUFhPUl8xMjgocmVnKQorVkNNUFNEXzEyOF8weDEyKHJlZykKICAgYmVmb3JlCiAgICAgNGVhYzM0NmE3OTlkYTJhMy4xNTU0MjgxOWQ0MDA3YjljLjIyYzc0MGRhNDgyZWRiMzkuNmRlMTI1MTE3NmU0Zjk0NwogICAgIGYzNTFkZWRhNmM3MmM3MTUuYjQ2YjA2ZTc3N2E4NWZkNy44YWJjNzlmNjBmYzlhOWJmLjc0NDlhOTUxNTgzYjI1MDUKQEAgLTEyNjY5LDEyICsxMjY2OSwxMiBAQAogICAgIDEyZjk4YzUyMTk0MWExMmMuOTQwYzJlOWJhMWMyOTkwZi42NjUwMGJlMzM4OTEzYTNlLjk3MTkyMzQ2MTU2Mzk2YmYKICAgICA2ZDFhMTJkMjI4NGI1MjE0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA4OWE2YTIzZGE3MjFjMzcuOTc4YmQ2MzhkYzhjNTVjZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44YWJjNzlmNjBmYzlhOWJmLjAwMDAwMDAwMDAwMDAwMDAKICAgICBmMzUxZGVkYTZjNzJjNzE1LmI0NmIwNmU3NzdhODVmZDcuOGFiYzc5ZjYwZmM5YTliZi43NDQ5YTk1MTU4M2IyNTA1CiAgICAgMTU1MmE3MDQ2ZDI1MDk1ZS5lYmI5MzRjNGIyM2E4MGVmLjgyMjYxM2Q1ZDViYmI1ODguZTNjMjdmNjk4NGI3NzBjOAogICAgIDEyZjk4YzUyMTk0MWExMmMuOTQwYzJlOWJhMWMyOTkwZi42NjUwMGJlMzM4OTEzYTNlLjk3MTkyMzQ2MTU2Mzk2YmYKICAgICA2ZDFhMTJkMjI4NGI1MjE0Ci1WUFhPUl8xMjgobWVtKQorVkNNUFNEXzEyOF8weDEyKG1lbSkKICAgYmVmb3JlCiAgICAgM2Y5MWM3ZmJkODdiNjFmNC40NDk0ODgzMTBiNTJjZTI5LjhkMmU3MDU4NWY0ZDY3NjQuOTI4NzViOGRkNGQ2NzY4ZAogICAgIGViNGFiZWFiNDIwMDdlOGEuMDk2ZDk3MGVlMGU0Y2EwMS5iMGVkNzdlNzA4ZTZhNjE5LjYyMTgwMTNkNDQxNmEyMjMKQEAgLTEyNjg0LDExICsxMjY4NCwxMSBAQAogICBhZnRlcgogICAgIDNmOTFjN2ZiZDg3YjYxZjQuNDQ5NDg4MzEwYjUyY2UyOS44ZDJlNzA1ODVmNGQ2NzY0LjkyODc1YjhkZDRkNjc2OGQKICAgICBlYjRhYmVhYjQyMDA3ZThhLjA5NmQ5NzBlZTBlNGNhMDEuYjBlZDc3ZTcwOGU2YTYxOS42MjE4MDEzZDQ0MTZhMjIzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNkYzMwN2JmNTdhYmMxN2QuZjA5ZjVhYjA5MGMwZDRhZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMGVkNzdlNzA4ZTZhNjE5LjAwMDAwMDAwMDAwMDAwMDAKICAgICAzY2IxNjM1NWIyMzdkNThhLmI3MGNkZTZlYTFiZTIyZjUuZTg2ZGMwMmM4ZTc0NjU1Ni41ZTczM2M2MzExYjljMWNlCiAgICAgNDJkNWNhYjFhNjM0MmMzYwogCi1WUFhPUl8xMjgocmVnKQorVkNNUFNEXzEyOF8weDEyKHJlZykKICAgYmVmb3JlCiAgICAgM2FjMTlkYjY4MGQ5Nzc5Zi45YWY3MDkyNmYwMDE4NzRjLjVhNjkwZmNhYzUxY2Y1NjguYjRjN2ZjYjlhMTgwNWUzNQogICAgIGEyODFiMWRlM2EzN2UxYTQuNDJhZmUxMmY1ODRmMzg3NS5mZTM2NDNkMzNiMmM4OTY3LjFiZWNlYmM5MTFjYWI4MjUKQEAgLTEyNjk2LDEyICsxMjY5NiwxMiBAQAogICAgIDMxYjE4YzQ3YzA0N2ZkNDQuZGJhNTE4OTkxM2E4ODVhYS5iZDRiYTQ5YzkwOTBkZWI3LjJiY2JkNjFlNzI0YTdkZTYKICAgICA4YjFjY2EzYzljOTg2MTEwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmOGIzNTI2OWE1NjkxZmEuZTI0NmUwOGZlOTk1OTY3NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZTM2NDNkMzNiMmM4OTY3LjAwMDAwMDAwMDAwMDAwMDAKICAgICBhMjgxYjFkZTNhMzdlMWE0LjQyYWZlMTJmNTg0ZjM4NzUuZmUzNjQzZDMzYjJjODk2Ny4xYmVjZWJjOTExY2FiODI1CiAgICAgZDY2MzAyOTU3MWQ3YTRmNy4wZWE1Njc1YzA1MmRhMzMwLjAxYmQ3NmY1YTE3YTE4OWQuZjlhYTBiNDZmODVmMmU1MQogICAgIDMxYjE4YzQ3YzA0N2ZkNDQuZGJhNTE4OTkxM2E4ODVhYS5iZDRiYTQ5YzkwOTBkZWI3LjJiY2JkNjFlNzI0YTdkZTYKICAgICA4YjFjY2EzYzljOTg2MTEwCi1WUFhPUl8xMjgobWVtKQorVkNNUFNEXzEyOF8weDEyKG1lbSkKICAgYmVmb3JlCiAgICAgZjY2OTYzOGM5MTU0OTVmYS4xMWI4NGM2MGM0MTIyODM1Ljg1N2I2ZWQzOWZjYjk5MGUuOGYyY2NhMzRhNmZjMTg2MQogICAgIDQ4N2UxYmZhNmU4YWQ3ZDEuZDFjMzNkNGQxOGM1NjA3OS5lOGYyZTdmNGM1YTM5ZDg5LmQzYWNlMjI5N2U0YTAzNDYKQEAgLTEyNzExLDExICsxMjcxMSwxMSBAQAogICBhZnRlcgogICAgIGY2Njk2MzhjOTE1NDk1ZmEuMTFiODRjNjBjNDEyMjgzNS44NTdiNmVkMzlmY2I5OTBlLjhmMmNjYTM0YTZmYzE4NjEKICAgICA0ODdlMWJmYTZlOGFkN2QxLmQxYzMzZDRkMThjNTYwNzkuZThmMmU3ZjRjNWEzOWQ4OS5kM2FjZTIyOTdlNGEwMzQ2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZkODk4OTI3NWE2ODA0ODcuNWM4MDI4MWRkOGI2MWIyNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lOGYyZTdmNGM1YTM5ZDg5LmZmZmZmZmZmZmZmZmZmZmYKICAgICAxMTJmZGRlMDRkOTY2ZmY0LjYwMTlhMjRmMjIxMGVhYTUuNDlmNjMwOWY0YzlmNjA3My4yMmI4ZGRkYmU3YjhkNjc0CiAgICAgZTRkZGI4NzBhZmYyMzcxNAogCi1WUFNVQkJfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxMyhyZWcpCiAgIGJlZm9yZQogICAgIDg4ZDA3NTExYTkzZDM4OWYuNDA2NGRlMzA4ODgzM2Y5OS5lOGZjMGUzYzEwYzBiNGU1LmZmMWJmNzAxZTZkYzk3M2EKICAgICA2YWRlMTIyYzcyMjUxNGMyLmM2OTBmMDRmMWIxYTBiZGEuYmYxMzljYWRiZTg4N2IyNy5kZTEyZDFmYjg5ZmRhZGM3CkBAIC0xMjcyMywxMiArMTI3MjMsMTIgQEAKICAgICA1ODdiZDk3ZGRmZmQ1MTgwLjQ3MDAzM2E2YjY3OTg5ZTIuY2YxMDBiYzhjYjhlZjM2MC44N2E1YWI2NzVjMWM2NmU2CiAgICAgMDlkYWE0YjFjNDMyODBjZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YzY4NTVhMGY2OTVmZjEwLjFjNmI5ODgyMzdlZjRmODAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmYxMzljYWRiZTg4N2IyNy4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNmFkZTEyMmM3MjI1MTRjMi5jNjkwZjA0ZjFiMWEwYmRhLmJmMTM5Y2FkYmU4ODdiMjcuZGUxMmQxZmI4OWZkYWRjNwogICAgIGU2NTM4YTJjYTUzNjA5MjkuN2Y4MDhkMjcyMTY4OGZlNC40M2FiNDcwZGM4ZjM3YzE3LmMyYTczOTc5NTIwZTVlNDcKICAgICA1ODdiZDk3ZGRmZmQ1MTgwLjQ3MDAzM2E2YjY3OTg5ZTIuY2YxMDBiYzhjYjhlZjM2MC44N2E1YWI2NzVjMWM2NmU2CiAgICAgMDlkYWE0YjFjNDMyODBjZgotVlBTVUJCXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MTMobWVtKQogICBiZWZvcmUKICAgICAyNDEwOWU0M2E1NWM2OTJmLjFjYTFmYzhiYmIwNTI5NzEuZmFkYzVkYjZmNzU3YjMwMS5iZThkZTU0YTYzZTQxYmFlCiAgICAgYjQxNDE3MDkxY2E2ZGQzMS44ZTEzZWVjMmQ2ZGFjY2FiLjczZTA4NzQ1MDAxMGNhNmQuNmQ3MGNmZmYyYjgxMzFhZgpAQCAtMTI3MzgsMTEgKzEyNzM4LDExIEBACiAgIGFmdGVyCiAgICAgMjQxMDllNDNhNTVjNjkyZi4xY2ExZmM4YmJiMDUyOTcxLmZhZGM1ZGI2Zjc1N2IzMDEuYmU4ZGU1NGE2M2U0MWJhZQogICAgIGI0MTQxNzA5MWNhNmRkMzEuOGUxM2VlYzJkNmRhY2NhYi43M2UwODc0NTAwMTBjYTZkLjZkNzBjZmZmMmI4MTMxYWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzkwNDJhOGYwOWI5MTc2Yy5hZmUzZWFiNWM4OWQxNjAxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjczZTA4NzQ1MDAxMGNhNmQuMDAwMDAwMDAwMDAwMDAwMAogICAgIGEyYjY3NGUyMzljZDU1Y2UuZWMwNjJmNWMzNjFkNjZhNS4yYzhlY2M4ZGQ3NDFhZWRhLjdjOTRjOGIyYmNjMjE3NzQKICAgICA5NDZkY2U4OGJkN2Q1ZTkxCiAKLVZQU1VCQl8xMjgocmVnKQorVkNNUFNEXzEyOF8weDEzKHJlZykKICAgYmVmb3JlCiAgICAgZGJkYmQ2NDI1ZmIwODMxMC5iOWViNGZjZDE4YzFkMWMwLjkwMjA3Njk2YjRhM2Q1YmQuMjNkMmRmMWVkZWQxZjMzMwogICAgIGFlMjlkYTRhM2RlNmMyOWMuYjUxZjk5OWJmZDA1YzgwNC41MWI1N2RhYWUxMjZmZmNkLjUwNmRlM2RkMWM2YzE1ODkKQEAgLTEyNzUwLDEyICsxMjc1MCwxMiBAQAogICAgIDY5OTljYmY5MWY4YzdjOGQuY2JhZjY3OTU0NmFlMTUzNi45ZjdmYjcwY2I1NTM3Nzg0LmMxZGFhOTk1YWZmMGRmZGIKICAgICBiYjQ1NjU2NzNjZjFmZjJlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM0YTQzZmE4ODlmNGRkNGMuYmY0MjkxMjc2ZTUwNDU4MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41MWI1N2RhYWUxMjZmZmNkLjAwMDAwMDAwMDAwMDAwMDAKICAgICBhZTI5ZGE0YTNkZTZjMjljLmI1MWY5OTliZmQwNWM4MDQuNTFiNTdkYWFlMTI2ZmZjZC41MDZkZTNkZDFjNmMxNTg5CiAgICAgNmFhNWQ4MGVmNGFiNTZlMi43MTFjY2QzYTAzYTVmNWM4LjhkMTEzZTAyNTgzMjIyODEuOTEyYjUyYjZhZTFjZDAwNwogICAgIDY5OTljYmY5MWY4YzdjOGQuY2JhZjY3OTU0NmFlMTUzNi45ZjdmYjcwY2I1NTM3Nzg0LmMxZGFhOTk1YWZmMGRmZGIKICAgICBiYjQ1NjU2NzNjZjFmZjJlCi1WUFNVQkJfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxMyhtZW0pCiAgIGJlZm9yZQogICAgIDVkMzcwMTE2NzAyZGVjMmYuMDg1M2IwNzc1YjE0NzA0YS45ZGE0ZTM5OGUzMmJlNDdhLmUzNGRlNDMzOTUxNjNkODMKICAgICA4MTdkZjk5MDY4YWY2MTA4LmEzMWQ4MWY0NDNjZjZlYzUuYzVjN2JlMmZmNjI4MWVjMS5iNGM1YmZlMjk0MDZhZTI5CkBAIC0xMjc2NSwxMSArMTI3NjUsMTEgQEAKICAgYWZ0ZXIKICAgICA1ZDM3MDExNjcwMmRlYzJmLjA4NTNiMDc3NWIxNDcwNGEuOWRhNGUzOThlMzJiZTQ3YS5lMzRkZTQzMzk1MTYzZDgzCiAgICAgODE3ZGY5OTA2OGFmNjEwOC5hMzFkODFmNDQzY2Y2ZWM1LmM1YzdiZTJmZjYyODFlYzEuYjRjNWJmZTI5NDA2YWUyOQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yODIzZGI5NzEzZmQzYTQ3LmQxNzhkYmFmZmZmMDcxYTYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzVjN2JlMmZmNjI4MWVjMS4wMDAwMDAwMDAwMDAwMDAwCiAgICAgYzMzNWVmOTExMWI2ZDZmMy4zZTE0ZGM5Yjg5MTA3NmEzLjgzYzY3ZWM5ZWJkNGMxMDcuNzJlNjc0OGQ1YzlmODQxZAogICAgIDE1Mjc0NTYxNWU1ZjYwYzIKIAotVlBTVUJCXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MTMocmVnKQogICBiZWZvcmUKICAgICBiNzQyYjU2ZGVlN2RkOGJlLjk5M2ZlM2YxZmM1MzRlNWUuZjVkODVkOWQxZmFkZjk1ZS5kMjNhNWJhNDA2OWFhMzVlCiAgICAgYjI4NWMxMWVhOTg0MjhiZi42MWNkMjVjYjE5NjczZTUxLjE4ZGViYzRlZDFhZTc2ODcuZTUwYzg3YzQwNjExZGY2OApAQCAtMTI3NzcsMTIgKzEyNzc3LDEyIEBACiAgICAgMjdhZTk5MjAwZTdkM2Y3YS4zYmEzN2I5ZDVlMjA3OTgxLjEyZGIwMDZlZmEwYTRjZDIuY2JmYWI4N2YyNzQwNTg0MgogICAgIDU1YWViN2YzODAxMDBkNmMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTU2ZWM5MzM5NjEwNGViZC40YzA0MGJiMWZlY2RhZDE4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE4ZGViYzRlZDFhZTc2ODcuMDAwMDAwMDAwMDAwMDAwMAogICAgIGIyODVjMTFlYTk4NDI4YmYuNjFjZDI1Y2IxOTY3M2U1MS4xOGRlYmM0ZWQxYWU3Njg3LmU1MGM4N2M0MDYxMWRmNjgKICAgICA2NDNhNjNlMTJhMDA4YzZlLmY5YWEyZTBiODZmYzYzZjkuMDM3MGYzMWIzYjllMjhjYS45OTA4N2MxMzA4NDQzMjUwCiAgICAgMjdhZTk5MjAwZTdkM2Y3YS4zYmEzN2I5ZDVlMjA3OTgxLjEyZGIwMDZlZmEwYTRjZDIuY2JmYWI4N2YyNzQwNTg0MgogICAgIDU1YWViN2YzODAxMDBkNmMKLVZQU1VCQl8xMjgobWVtKQorVkNNUFNEXzEyOF8weDEzKG1lbSkKICAgYmVmb3JlCiAgICAgMTRmMGYzNWEyZWMwMGNmNy41OTJkNWU0OWYwODg3ZThkLjA0ODQ4OTZkYmVkZjNiMTYuYTE2YmRlYjVhOTdjMWQ0YwogICAgIGU1OGJlYWEyNGU1YzEyMTIuNTQwM2FmYzc2ZGFkODU1NC4zMTE5ZDM2N2MyNDQ2NmU0LjBjNmM4YTVhZTU4M2Q5ZTMKQEAgLTEyNzkyLDExICsxMjc5MiwxMSBAQAogICBhZnRlcgogICAgIDE0ZjBmMzVhMmVjMDBjZjcuNTkyZDVlNDlmMDg4N2U4ZC4wNDg0ODk2ZGJlZGYzYjE2LmExNmJkZWI1YTk3YzFkNGMKICAgICBlNThiZWFhMjRlNWMxMjEyLjU0MDNhZmM3NmRhZDg1NTQuMzExOWQzNjdjMjQ0NjZlNC4wYzZjOGE1YWU1ODNkOWUzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJkOTU0YWZhMDQ2NTJiY2UuNmIwMWFjYTUzYzA3YmM5NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMTE5ZDM2N2MyNDQ2NmU0LjAwMDAwMDAwMDAwMDAwMDAKICAgICAyOGZmZjU4MjUxOGEyMmEzLjE5ZTNlMTcxYTU3MWQ5YWMuMjI4ZjBjOGEyMzMwZTdkOS5lNWYxMzg3MzczNzlmZDFiCiAgICAgMGMwYzMzYmVmYzgxZGQxMwogCi1WUFNVQkRfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxNChyZWcpCiAgIGJlZm9yZQogICAgIDdmYzhlYjE4ODI0Yzk3ZDkuNTM3MDAzZjI2ZDM0YTQ3MS45YTg1YmI3Njk5MmE5Zjk1LjlmMDdmMjhiYjlkMGI0NTkKICAgICA5YTcxNWNlZGEwNjc2NzE4LjAwNmJiYWYzNmJmYTFkN2UuNTZhZTExODA5ODJiMWRlMi5mMDY0MDU2NjYyNDdkYWMxCkBAIC0xMjgwNCwxMiArMTI4MDQsMTIgQEAKICAgICAzN2JhNWJiOTE2YmIzOGIzLjRiMmUxODUzN2EwYmUzMDMuZWFjNTFkNTQyNDNiMmY1Ny43OWY4YTA1OTVmZTYyMGZhCiAgICAgNmFjODFmNGFlYjI3YjkyNAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hZjAyMzM4NTViMjg4ZmEzLjAwZjM0NTYwMjZhOGM1ODQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTZhZTExODA5ODJiMWRlMi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgOWE3MTVjZWRhMDY3NjcxOC4wMDZiYmFmMzZiZmExZDdlLjU2YWUxMTgwOTgyYjFkZTIuZjA2NDA1NjY2MjQ3ZGFjMQogICAgIGI5NTM4M2E5ZjM1ZTg5N2QuMDliYzk4NmY2NmU4NDlmNS5hN2FiZGRmYjNkMDI4ZTNmLmVmNzBjMDA2M2I5ZjE1M2QKICAgICAzN2JhNWJiOTE2YmIzOGIzLjRiMmUxODUzN2EwYmUzMDMuZWFjNTFkNTQyNDNiMmY1Ny43OWY4YTA1OTVmZTYyMGZhCiAgICAgNmFjODFmNGFlYjI3YjkyNAotVlBTVUJEXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MTQobWVtKQogICBiZWZvcmUKICAgICA5ZWFiYmJjNWZhNmY5YWU3LjcyZjJlMDg3YTUwY2IyNjguYTI4ZWI2OGNjNDZkYThkNC43YjRiY2NmNWVhNjAzY2Q3CiAgICAgZjE2ZmVmYjdhOGM5N2Y2ZS5jNTQ2MGU4MDNlZGMzMDQ1LmVhYThlZTA0NWYxZDU0OTMuYjY4OGU2NGMyYmZmZjA2YQpAQCAtMTI4MTksMTEgKzEyODE5LDExIEBACiAgIGFmdGVyCiAgICAgOWVhYmJiYzVmYTZmOWFlNy43MmYyZTA4N2E1MGNiMjY4LmEyOGViNjhjYzQ2ZGE4ZDQuN2I0YmNjZjVlYTYwM2NkNwogICAgIGYxNmZlZmI3YThjOTdmNmUuYzU0NjBlODAzZWRjMzA0NS5lYWE4ZWUwNDVmMWQ1NDkzLmI2ODhlNjRjMmJmZmYwNmEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDgxYTM3Nzg5YWFmYWJiZi4zYjNkMTk1NzQxOWZiMzkzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVhYThlZTA0NWYxZDU0OTMuZmZmZmZmZmZmZmZmZmZmZgogICAgIDY0YzYwZmFiNTRlNDQ5NzkuMjI3NjU2YTVmNzJiMmYyZC5iZDNhMWQ2NmZiOTA1MDhkLjliNTU0Y2M4OGJkOTQxN2MKICAgICBmYzdlOTBjNmUzMmQ1NDUyCiAKLVZQU1VCRF8xMjgocmVnKQorVkNNUFNEXzEyOF8weDE0KHJlZykKICAgYmVmb3JlCiAgICAgNzc4ZTJmMjgyNTI5MDBlYy4zY2YxZjQ4Nzg5YmRhNDU2LmU0ZTk2OGE4NTFjMTI3OTAuMDA0YTBjMjczMjZkMTgyMAogICAgIDY4ZDEyNTVjZWU1YjdmZjUuYTMyYzYxODhjZWQ4ZjVhOC4yZmE5MTM4NTIzMDYxNWNjLmE0NDQ4NmQ4MmNjNWI2NTIKQEAgLTEyODMxLDEyICsxMjgzMSwxMiBAQAogICAgIDFjMWYwN2U3ODM4ZWU4MDcuOGQwMWMzYWRmNTA2NjQ1OC5jYzNmMjU4M2EwZDBjMTgxLjdlMjQwN2JhZDMxYjY4NDAKICAgICA2ZGEzMDdjM2I4MzFmMzU2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQyYTdiZWRiMTk3ZWUxM2UuMWU1MTgxNzMyYTFlY2UwNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yZmE5MTM4NTIzMDYxNWNjLmZmZmZmZmZmZmZmZmZmZmYKICAgICA2OGQxMjU1Y2VlNWI3ZmY1LmEzMmM2MTg4Y2VkOGY1YTguMmZhOTEzODUyMzA2MTVjYy5hNDQ0ODZkODJjYzViNjUyCiAgICAgMmI5MzZmY2RkOTRlMGQxYS43NTQyZDI5YzNlNDJmNjk5LjVkMDE1NGFhMDk4NzM0OGUuODVmMzA1NjUwMmE2ZTg0ZQogICAgIDFjMWYwN2U3ODM4ZWU4MDcuOGQwMWMzYWRmNTA2NjQ1OC5jYzNmMjU4M2EwZDBjMTgxLjdlMjQwN2JhZDMxYjY4NDAKICAgICA2ZGEzMDdjM2I4MzFmMzU2Ci1WUFNVQkRfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxNChtZW0pCiAgIGJlZm9yZQogICAgIDJkM2M4MTZkY2ZmMzQ0YmEuOTdjMmViMTc4N2E4NGE2Ny5jOTM0YjFhOTEwMzBmYjBmLmQ2YWQ4NDdhODQ2YmY4NTIKICAgICA5YWJiZjFhMjM0NmQxODk4LmY4YzkxNmM3ODEyNzcwZTcuMDRhNjE2N2JhYWNkNzZlYi5kOTk4NmNmYzRmZTYxNWFjCkBAIC0xMjg0NiwxMSArMTI4NDYsMTEgQEAKICAgYWZ0ZXIKICAgICAyZDNjODE2ZGNmZjM0NGJhLjk3YzJlYjE3ODdhODRhNjcuYzkzNGIxYTkxMDMwZmIwZi5kNmFkODQ3YTg0NmJmODUyCiAgICAgOWFiYmYxYTIzNDZkMTg5OC5mOGM5MTZjNzgxMjc3MGU3LjA0YTYxNjdiYWFjZDc2ZWIuZDk5ODZjZmM0ZmU2MTVhYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYjcxNjRkMjlhOWM3YmRjLjAyZWFlODgyY2I3YTFkNWEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDRhNjE2N2JhYWNkNzZlYi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZWE5YWE0NjE1NmJiMzk3NS5kYjJkMzI1YmNhODZmN2Y1LmU2N2EzYTUxY2Q4ZDBiYzAuMzUxNWM4NTIxMWFhZWZhZQogICAgIDQ4M2YzM2ZkM2UwYjI1YWQKIAotVlBTVUJEXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MTQocmVnKQogICBiZWZvcmUKICAgICBjMjE2MThlNGM0N2MzMGU2Ljg2OTJkZmMzNGJhN2ZlY2IuMTYyNDFiMTY1MDdkZDBkYy40Njc0ZjEyZDhlYzk5ZDEyCiAgICAgMDBlNTcyNzIzZTg3NGUwNS4zZWEwMDA2MWZkN2EzNTRjLmE3YWUzYjAzM2MwOTVkOTIuMTVkZTBmOTAzZWE3MDMzOApAQCAtMTI4NTgsMTIgKzEyODU4LDEyIEBACiAgICAgMzk5Zjc2MzI4MGExYWRhMi43NzJlZTUwMTBhMGJlYjdlLjNhYTkxMTIwYjkxMjgyMWQuNmYzMDc1OTdkZDdhM2ViMgogICAgIGIyYjJiNDEzMDQ4NzhhNWUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmQ5N2FjNzYxMDUxODJjZS5lNzVhZmQyYzQ0NzMwOGQ5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE3YWUzYjAzM2MwOTVkOTIuZmZmZmZmZmZmZmZmZmZmZgogICAgIDAwZTU3MjcyM2U4NzRlMDUuM2VhMDAwNjFmZDdhMzU0Yy5hN2FlM2IwMzNjMDk1ZDkyLjE1ZGUwZjkwM2VhNzAzMzgKICAgICA1ZWZhM2UxMjQ5YmFiOWI1LmYwOTA4NDI3ODk0MjlhMjQuZWExNjhlOGQyYmI3ZGFjNC4yZTgzMTI2NGZhMzNmYTVmCiAgICAgMzk5Zjc2MzI4MGExYWRhMi43NzJlZTUwMTBhMGJlYjdlLjNhYTkxMTIwYjkxMjgyMWQuNmYzMDc1OTdkZDdhM2ViMgogICAgIGIyYjJiNDEzMDQ4NzhhNWUKLVZQU1VCRF8xMjgobWVtKQorVkNNUFNEXzEyOF8weDE0KG1lbSkKICAgYmVmb3JlCiAgICAgZDVkMzRjYzY4YTY2OWI4ZS5lYjIxMTgzZDdmYzY2NzdhLmFlNDZhMWRiOWRlMGUyODcuZjViM2JlMjg4MWE3OTI0YQogICAgIGIyNjBiNzliOGMyNDJkNmYuZDFjYjFmYTBlM2I3MjRlNi43M2EzMzNhMTVlY2QzYzZhLjc2ODA5MzExMWYwMTQ2ZjYKQEAgLTEyODczLDExICsxMjg3MywxMSBAQAogICBhZnRlcgogICAgIGQ1ZDM0Y2M2OGE2NjliOGUuZWIyMTE4M2Q3ZmM2Njc3YS5hZTQ2YTFkYjlkZTBlMjg3LmY1YjNiZTI4ODFhNzkyNGEKICAgICBiMjYwYjc5YjhjMjQyZDZmLmQxY2IxZmEwZTNiNzI0ZTYuNzNhMzMzYTE1ZWNkM2M2YS43NjgwOTMxMTFmMDE0NmY2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM1NWM5MWM2YzBlYzU5ZTMuODBjY2Q0ZTk5ZDU5YjRhYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43M2EzMzNhMTVlY2QzYzZhLmZmZmZmZmZmZmZmZmZmZmYKICAgICAwZWVkZmI1YTcxNmJjM2YzLmE5Y2M0ZDE5NDkyYzkxMzEuMTM1ZmNhYTJkNzIwMDg3MC4zOTkzYTMzNjRmMzU4ODdlCiAgICAgMzM3MGQ1NGIxOTI2OGZiMgogCi1WUEFERERfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxNShyZWcpCiAgIGJlZm9yZQogICAgIDY0NDAxZmYwMjkwZTJhMTQuNDU4NWNjMWQ4ZDBiM2ZlZS41M2I5NmIwODgyYzdiYTY2LmE2NTdjN2I0Yzg5ZWYzZWIKICAgICAyNjRmN2M5MzFjNzY5NDUzLmE2YmE2MGIzOTViYjJjNGEuYTFmZmRmZmY5MDVkZDVlMS4zNmMzOGE2MzU2NjQzMGYxCkBAIC0xMjg4NSwxMiArMTI4ODUsMTIgQEAKICAgICBkMTVhNWY3ZjE5ZmNjODEzLjVhMjZjNjAzZDY3NDQ3ZDIuOTljNmI3YjE5YWFjZDA1OS5iZTJmNTI0NGJiZmE5MTRjCiAgICAgNmRjNTUwNGZjOWUyMmVmYQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MWVhODQ2NzlmZDhmNDJmLmQ3MzYxOWZkZjNlM2FjOWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTFmZmRmZmY5MDVkZDVlMS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgMjY0ZjdjOTMxYzc2OTQ1My5hNmJhNjBiMzk1YmIyYzRhLmExZmZkZmZmOTA1ZGQ1ZTEuMzZjMzhhNjM1NjY0MzBmMQogICAgIGQ3ZTllODllOGRlYzBhMTkuMGU1NjM1MDZhNDg0NDUzMi5lZmVhYTQ2ODBmN2IxZTRlLmEwNzI4ZjlhOWQ3ZjdiYWQKICAgICBkMTVhNWY3ZjE5ZmNjODEzLjVhMjZjNjAzZDY3NDQ3ZDIuOTljNmI3YjE5YWFjZDA1OS5iZTJmNTI0NGJiZmE5MTRjCiAgICAgNmRjNTUwNGZjOWUyMmVmYQotVlBBREREXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MTUobWVtKQogICBiZWZvcmUKICAgICA4YTAxMDRhNmU1NDIwZWUyLjcxZWVkZWExNWIzMDA5ZWMuNjRmNjhmOTY0ODk2ZWU1OC5mYmRmMTI0NWNkN2MyOGFkCiAgICAgZWZhZmVhMzUyYjI2ZWQzMC4xNGYwNjA3MGVmMTYwYTUxLjA5OTEwZGFjMTVmN2Y2ZWQuNzE4MGIzOTA0NTc4NjJmNgpAQCAtMTI5MDAsMTEgKzEyOTAwLDExIEBACiAgIGFmdGVyCiAgICAgOGEwMTA0YTZlNTQyMGVlMi43MWVlZGVhMTViMzAwOWVjLjY0ZjY4Zjk2NDg5NmVlNTguZmJkZjEyNDVjZDdjMjhhZAogICAgIGVmYWZlYTM1MmIyNmVkMzAuMTRmMDYwNzBlZjE2MGE1MS4wOTkxMGRhYzE1ZjdmNmVkLjcxODBiMzkwNDU3ODYyZjYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmU4NzlkNDI1ZThlZTU0NS42ZDVmYzVkNTEyZjQ4YmEzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA5OTEwZGFjMTVmN2Y2ZWQuZmZmZmZmZmZmZmZmZmZmZgogICAgIDA0OTEzY2FjYTJhYjk2YjEuY2U3MjVkYzU4MDI2M2M2ZC45NTVjMTQwZDMyYTMxN2ZiLjA4OGViNGZiNzIyMjZiMWEKICAgICBlMjkyMGNmMzVmZThiMjRjCiAKLVZQQURERF8xMjgocmVnKQorVkNNUFNEXzEyOF8weDE1KHJlZykKICAgYmVmb3JlCiAgICAgNDA0ZjlhNTIwMTA5Y2EyNC42YzVkYTE2YjBjNjVkODNjLjlmODlkMTIzYjQ2OGU0N2QuMzMyMzk2MzFiYTA2YTljYQogICAgIDdlMTE1OTg0ZjMxMWYxNGUuOGRjYTI4MTIxMGQyMGFkZC5lMTNmMzhkZWFhOGMzY2M4LmRjZTZiZDg3MGRkODhiNWIKQEAgLTEyOTEyLDEyICsxMjkxMiwxMiBAQAogICAgIDA5ZDM1YTEyMzkwOTU3NDYuNmFiYjhjY2E1M2ZhMjkxMy4yYmI3Y2YxYzRmYTZlYmMxLmJmOTBlNjc5ODZmNzMzNmQKICAgICBiMTBmZTFlZGU0NWM2ZjQ3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQzMWVjNjQwYTlhOGJkYzMuNDk1N2MxODI1NWZkMDczMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lMTNmMzhkZWFhOGMzY2M4LjAwMDAwMDAwMDAwMDAwMDAKICAgICA3ZTExNTk4NGYzMTFmMTRlLjhkY2EyODEyMTBkMjBhZGQuZTEzZjM4ZGVhYThjM2NjOC5kY2U2YmQ4NzBkZDg4YjViCiAgICAgZjcyNDQ1ZjZkMjhkNjE3NS40M2E1NGQ4ZWM5MDBlNmMwLmYxZGY4ZDYyZmYxYzgwZmIuNmM3MTAzZmI0ODI0N2JkNwogICAgIDA5ZDM1YTEyMzkwOTU3NDYuNmFiYjhjY2E1M2ZhMjkxMy4yYmI3Y2YxYzRmYTZlYmMxLmJmOTBlNjc5ODZmNzMzNmQKICAgICBiMTBmZTFlZGU0NWM2ZjQ3Ci1WUEFERERfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxNShtZW0pCiAgIGJlZm9yZQogICAgIDFlYjk3MDQzN2Q1ZmVkOTEuMGU2Yjk1NDZjNTBmMGU2Yy5kZWQ2NjJiMWNiY2Q4ZWZmLmViMTFmNzc2MzViNmJhYzcKICAgICBlMjViMGY2ODZkMGQ2Nzc5LjY0MzhmMGZkMTEyZGMzOTQuN2JjMjRhMzE0Yzg0ZDJiMy44ZTNiMDNkZTRkZDYyOWI5CkBAIC0xMjkyNywxMSArMTI5MjcsMTEgQEAKICAgYWZ0ZXIKICAgICAxZWI5NzA0MzdkNWZlZDkxLjBlNmI5NTQ2YzUwZjBlNmMuZGVkNjYyYjFjYmNkOGVmZi5lYjExZjc3NjM1YjZiYWM3CiAgICAgZTI1YjBmNjg2ZDBkNjc3OS42NDM4ZjBmZDExMmRjMzk0LjdiYzI0YTMxNGM4NGQyYjMuOGUzYjAzZGU0ZGQ2MjliOQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41YTk4YWNlMjE4NTI2MWIyLjc5NGNmYjU0ODM4Y2U0ODAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2JjMjRhMzE0Yzg0ZDJiMy5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZGZiNzZmY2JjNTk3NDFjZC42ZmExZmJhMzVhZGYxNzk5LmEwNDI0MGE5ZGJjZmU3MWQuZTgyYWIzODU4NTdjZDYwZgogICAgIDU4ODc1MTljZGQxOThjY2IKIAotVlBBREREXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MTUocmVnKQogICBiZWZvcmUKICAgICAxYWU0YzE3MGQ3ZjdkMjIzLmQwMDkyN2UxNjQ4YzE5OTIuZGRkNWEzNmI5MDhiMmVjZC5lMDZjNDY3OTIxN2IyZjJjCiAgICAgOGE4YjAxNmQwZmEyZTRjMy44NzgzZGY3NmNhNWJkZWEzLjBhNmU1YjY2ZjY3ZTMyYjQuYjk5ODRmOTFlMDNiNDZiMgpAQCAtMTI5MzksMTIgKzEyOTM5LDEyIEBACiAgICAgZTNlYmRlOTJhYzkxNWE4OS5iYzFkNDBjYTVkYjgxZTVjLjE1ZmRmMGE2YzM2YmYzNDUuYTYyNjU3NGEzYjI5ZDFkMQogICAgIDcxMjA0ZWMyMGY2ZWJjYzMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWYyNTdjNjcxZWMzOTNhYi5jMTJiMjY2ZTE1NTgyZjhjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhNmU1YjY2ZjY3ZTMyYjQuMDAwMDAwMDAwMDAwMDAwMAogICAgIDhhOGIwMTZkMGZhMmU0YzMuODc4M2RmNzZjYTViZGVhMy4wYTZlNWI2NmY2N2UzMmI0LmI5OTg0ZjkxZTAzYjQ2YjIKICAgICAwM2NhMGNmZjIzYTdmZDU2LmUyZjAxMzc1MTQxMDRjMmQuNTRiNzIxMDEyODQ1NjBmNy4wNzkyZDZkZDM1MWNlOGRhCiAgICAgZTNlYmRlOTJhYzkxNWE4OS5iYzFkNDBjYTVkYjgxZTVjLjE1ZmRmMGE2YzM2YmYzNDUuYTYyNjU3NGEzYjI5ZDFkMQogICAgIDcxMjA0ZWMyMGY2ZWJjYzMKLVZQQURERF8xMjgobWVtKQorVkNNUFNEXzEyOF8weDE1KG1lbSkKICAgYmVmb3JlCiAgICAgNDY0YjM4MzNjY2Y4NjZkYi44NTNiNzM5MzQ4ZWQzNzA3LmYxZDdlMTYxYzI1ZTExNWIuYWE4Y2M0YzI2MjdjMjg0OAogICAgIDAwNzU5MDg3OGVkMjhiNDYuNDUwNmM4NmM5MzQ1Y2Y3ZC41Y2U4NzIyNjVmMGVlMTU3LjcwYjA5YWMyYTIwNTNiYWQKQEAgLTEyOTU0LDExICsxMjk1NCwxMSBAQAogICBhZnRlcgogICAgIDQ2NGIzODMzY2NmODY2ZGIuODUzYjczOTM0OGVkMzcwNy5mMWQ3ZTE2MWMyNWUxMTViLmFhOGNjNGMyNjI3YzI4NDgKICAgICAwMDc1OTA4NzhlZDI4YjQ2LjQ1MDZjODZjOTM0NWNmN2QuNWNlODcyMjY1ZjBlZTE1Ny43MGIwOWFjMmEyMDUzYmFkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRlYzA1Mzg3MjE2Y2YyYjIuMWIzZDVmODQwNDgxNjNmNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41Y2U4NzIyNjVmMGVlMTU3LmZmZmZmZmZmZmZmZmZmZmYKICAgICA5MmYxN2E4ZDk0YTczNGMzLjhmM2M5ZjVhYTMxZjIzMDAuNDk0MTU1ZWFhZWJlMDdmNS5mYWU3MzgxYTczYWNlYjRiCiAgICAgNzc5MWZhNGEzY2UzZmZkYwogCi1WUE1PVlpYQldfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxNihyZWcpCiAgIGJlZm9yZQogICAgIDk1MDBhYzBlMTZjMWUxN2YuMjNkYzA0MTYwZmJhMzEyZS5kMDNmMTk0N2ExYjg1NjY1LjgxMjI5ZmMyOThkNWQ1ZWYKICAgICBhZTgwNGJkMTljZDJjY2UwLjA4ZjVlZDMzZmY0ZDk5OWIuYTBlZDQyYmRiZTdlMzY3MS42MThhYzk3NzJhMjc3MDk1CkBAIC0xMjk2NiwxMiArMTI5NjYsMTIgQEAKICAgICA0NGUzNDIwNDFlYmZiMThhLjQyZTBjOWQ5YjAyNTk4MmQuNTk3YTkzZjRjMmMzZTczMC44NTIyYWUyY2I1YTlmYjk3CiAgICAgODJlYTYwMDRlNmYyNjQ0YwogICBhZnRlcgotICAgIDk1MDBhYzBlMTZjMWUxN2YuMjNkYzA0MTYwZmJhMzEyZS5kMDNmMTk0N2ExYjg1NjY1LjgxMjI5ZmMyOThkNWQ1ZWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBjNDAwNDYwMDRmMDBmNy4wMDgwMDBiZjAwOTMwMDE0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmEwZWQ0MmJkYmU3ZTM2NzEuZmZmZmZmZmZmZmZmZmZmZgorICAgIGFlODA0YmQxOWNkMmNjZTAuMDhmNWVkMzNmZjRkOTk5Yi5hMGVkNDJiZGJlN2UzNjcxLjYxOGFjOTc3MmEyNzcwOTUKICAgICAxZjVkZDRmZjZiYTNmZWFhLjFmMDhiMGQwODE2ZDI3MzYuNWE5MzE3Mjg5NWZlZmRkMS5jNDQ2NGZmNzgwYmY5MzE0CiAgICAgNDRlMzQyMDQxZWJmYjE4YS40MmUwYzlkOWIwMjU5ODJkLjU5N2E5M2Y0YzJjM2U3MzAuODUyMmFlMmNiNWE5ZmI5NwogICAgIDgyZWE2MDA0ZTZmMjY0NGMKLVZQTU9WWlhCV18xMjgobWVtKQorVkNNUFNEXzEyOF8weDE2KG1lbSkKICAgYmVmb3JlCiAgICAgOTU2YWUzNmEyZWE1OGE1Yy43OTVlOTE0ZDUxYjIyMjJiLjRmNGFiNDNiYTk4MmE4YWEuZmJmMWIyOGRlMjU5MzIzYwogICAgIDliNmViMjRhYTljZjI4ZjUuMWExOWJlNDRhMTA5OGMzYS4yMDEzZWRlMDg3OGYxMmQ5LjlhNDM3MDYwOTA0YzE4OWUKQEAgLTEyOTgwLDEyICsxMjk4MCwxMiBAQAogICAgIDA1NTEzZjY1MGFjZmM5OGMKICAgYWZ0ZXIKICAgICA5NTZhZTM2YTJlYTU4YTVjLjc5NWU5MTRkNTFiMjIyMmIuNGY0YWI0M2JhOTgyYThhYS5mYmYxYjI4ZGUyNTkzMjNjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwZmIwMGYxMDBiMjAwOGQuMDBlMjAwNTkwMDMyMDAzYwotICAgIDcxYzE0YTkwNzQ3YmZiNDMuODM2MmMzNTZhYTRmMmM2My45MzA1ZjFiNTY3NTg5M2U3Ljk0YmJjYWQ3NjkyOWQ2MDUKKyAgICA5YjZlYjI0YWE5Y2YyOGY1LjFhMTliZTQ0YTEwOThjM2EuMjAxM2VkZTA4NzhmMTJkOS45YTQzNzA2MDkwNGMxODllCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIwMTNlZGUwODc4ZjEyZDkuZmZmZmZmZmZmZmZmZmZmZgogICAgIGYxMzAyNTI4YWJiNWJmNzIuMTA4MzllZjAwNzEwM2U1MS44MmVjM2JhNzY0ZTllNzAwLjQ0YTZiYjVmMDg3Y2E3MWEKICAgICAwNTUxM2Y2NTBhY2ZjOThjCiAKLVZQTU9WWlhCV18xMjgocmVnKQorVkNNUFNEXzEyOF8weDE2KHJlZykKICAgYmVmb3JlCiAgICAgMzQwNjUyNTMwYWIwNzYwNS5mOTg3YzFmZTY5ODkyZmFkLjFkYzk0YTdjNTRkOWZlYjEuY2E5NjQ3YTE5YjRmY2E0ZgogICAgIDJlMTFmMDk3YTVhYWVhMzIuNjM5Mjk5ZmZjYTA0MDgyMC4wNjgwYzQ2ODJlMzVhNzJlLjQ4Y2U5MjhlMjc5NWY3MDEKQEAgLTEyOTkzLDEyICsxMjk5MywxMiBAQAogICAgIGVmNWViZmNlMTkxYjFiNTYuZDBmNGVlMmVlNzFkZTU2Mi5kYzcwMGUwZGY3ZDhhNzMyLjUxMTZkMWY2YjBmMjIyM2MKICAgICA5NWJmYmU0OGU1MjI5NzFlCiAgIGFmdGVyCi0gICAgMzQwNjUyNTMwYWIwNzYwNS5mOTg3YzFmZTY5ODkyZmFkLjFkYzk0YTdjNTRkOWZlYjEuY2E5NjQ3YTE5YjRmY2E0ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGQ2MDA1ZjAwOTYwMDVjLjAwMjUwMGM4MDAyYjAwNDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDY4MGM0NjgyZTM1YTcyZS5mZmZmZmZmZmZmZmZmZmZmCisgICAgMmUxMWYwOTdhNWFhZWEzMi42MzkyOTlmZmNhMDQwODIwLjA2ODBjNDY4MmUzNWE3MmUuNDhjZTkyOGUyNzk1ZjcwMQogICAgIDRkYzAxNjljNzY0YTYzYmUuMGMxZDI5MTVlYjMxMDZmOS4yN2Y0MDYxZjMxYjE3Njc1LmQ2NWY5NjVjMjVjODJiNDEKICAgICBlZjVlYmZjZTE5MWIxYjU2LmQwZjRlZTJlZTcxZGU1NjIuZGM3MDBlMGRmN2Q4YTczMi41MTE2ZDFmNmIwZjIyMjNjCiAgICAgOTViZmJlNDhlNTIyOTcxZQotVlBNT1ZaWEJXXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MTYobWVtKQogICBiZWZvcmUKICAgICA3ZTI2ZDkzZWRmNjE0NzEyLjZlMzZlNzk5MmJhOTRmYTUuOGNlMjYyMzRkYmQzNjA4Ny44MTQyZDc5ZTFmMzY3NjEwCiAgICAgZTkxNzlmYzViYWJkZWU0NS4yNzk1OGE2OTQ4ODEzYTU4LjFhYjUwMzE1ZTI1ZjM0OTUuNzJiNDVkM2U0MzU3MWViYwpAQCAtMTMwMDcsMTIgKzEzMDA3LDEyIEBACiAgICAgYTRjODM3YjBiMWM4ODk0OAogICBhZnRlcgogICAgIDdlMjZkOTNlZGY2MTQ3MTIuNmUzNmU3OTkyYmE5NGZhNS44Y2UyNjIzNGRiZDM2MDg3LjgxNDJkNzllMWYzNjc2MTAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDA4MTAwNDIwMGQ3MDA5ZS4wMDFmMDAzNjAwNzYwMDEwCi0gICAgYjA1ZThhYzc5MzQxNDhlMi43NmM3YTRhYTBiMmUxYTFiLjU3Mzc0Y2JjMTljZDFkYjguMGExMzlkNTlmZmM4ZGNlMQorICAgIGU5MTc5ZmM1YmFiZGVlNDUuMjc5NThhNjk0ODgxM2E1OC4xYWI1MDMxNWUyNWYzNDk1LjcyYjQ1ZDNlNDM1NzFlYmMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWFiNTAzMTVlMjVmMzQ5NS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgYjBjNjE4MzE4NmZhMTAxNi5iODE4MzJjODEwM2MyOTk5LjFmMzViOTE0OWIyYWQ2MWIuYTdhYjkxNWJlZjE0ZWIyYwogICAgIGE0YzgzN2IwYjFjODg5NDgKIAotVlBNT1ZaWEJXXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MTYocmVnKQogICBiZWZvcmUKICAgICA1ZGI1OGFjNWRlNmZmMGUyLmM1MWNjNGYwYWRmMzAzMGQuNDdkNDJmMzBmNDM4YTM3Zi40ZTdiYzcwYjg1ODIxZGViCiAgICAgMmRjMDg2MDQxNDk1NWRhNi5jYjJkMGJlZjI3MzhkZGYyLjgwNDY5NzRjNTNhZGM2NzguYzBkNGYxOGRmMmRmYWM1MwpAQCAtMTMwMjAsMTIgKzEzMDIwLDEyIEBACiAgICAgODY1YjZhYjQwYThmMzg1YS4xYWFhNTY1YzdlZDgzNTM4LjYwODA5OTU0ZWYzM2YyNTYuZGRmMzg5ZGRjN2RkOTQ5ZQogICAgIDQwNTFlZjg0NjY5NjY1ZDgKICAgYWZ0ZXIKLSAgICA1ZGI1OGFjNWRlNmZmMGUyLmM1MWNjNGYwYWRmMzAzMGQuNDdkNDJmMzBmNDM4YTM3Zi40ZTdiYzcwYjg1ODIxZGViCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwNTEwMDBlMDBiMzAwODQuMDBmZjAwNGYwMDNmMDA4MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDQ2OTc0YzUzYWRjNjc4LjAwMDAwMDAwMDAwMDAwMDAKKyAgICAyZGMwODYwNDE0OTU1ZGE2LmNiMmQwYmVmMjczOGRkZjIuODA0Njk3NGM1M2FkYzY3OC5jMGQ0ZjE4ZGYyZGZhYzUzCiAgICAgNzIzMzI4ZGJlZmM2MGI0MC45ZWMzNjcxOTBlZDY1YWYyLmJmYmM2NzhhYzcyOGNjMzEuNTEwZWIzODRmZjRmM2Y4MAogICAgIDg2NWI2YWI0MGE4ZjM4NWEuMWFhYTU2NWM3ZWQ4MzUzOC42MDgwOTk1NGVmMzNmMjU2LmRkZjM4OWRkYzdkZDk0OWUKICAgICA0MDUxZWY4NDY2OTY2NWQ4Ci1WUE1PVlpYQldfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxNihtZW0pCiAgIGJlZm9yZQogICAgIDU2ZjI2MjY2Zjk4NTZlNWIuYzc4NDRhZmQwMjdjMWVhMy4xYmIwNTNhMzk0NGEyYmYxLmJmZGYyYjE4NjU1Yzc0OTIKICAgICBmYmEzNWQ2ZDljYjY2ZDUyLjhmZmFjNDIxNzIxN2Y5YzUuN2RhMGRhZGE2YjM4Zjc0OS4zODI1MTg0MWM1MmY4ZDkyCkBAIC0xMzAzNCwxMiArMTMwMzQsMTIgQEAKICAgICBkNzU4ZGI1MjdjMTZiZmRmCiAgIGFmdGVyCiAgICAgNTZmMjYyNjZmOTg1NmU1Yi5jNzg0NGFmZDAyN2MxZWEzLjFiYjA1M2EzOTQ0YTJiZjEuYmZkZjJiMTg2NTVjNzQ5MgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGJmMDBkZjAwMmIwMDE4LjAwNjUwMDVjMDA3NDAwOTIKLSAgICAwYjMwNWM4NzZhMzYxY2VhLjNjMDlkMjhjZjZlZTA3NmQuMWM0NTY4ZWQyMGFmNTc2Yi4yNzllNWMzYmFjMzc3YTAxCisgICAgZmJhMzVkNmQ5Y2I2NmQ1Mi44ZmZhYzQyMTcyMTdmOWM1LjdkYTBkYWRhNmIzOGY3NDkuMzgyNTE4NDFjNTJmOGQ5MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZGEwZGFkYTZiMzhmNzQ5LmZmZmZmZmZmZmZmZmZmZmYKICAgICA2MjY0ZGI5ZjdmMTAzODRlLjI4ZmM3MmFhMmI4YzgyNDYuZDQ2Yzc3YzhjZWJiMDU4NC5lODk1ZjQ3MmI1MDA3NzhjCiAgICAgZDc1OGRiNTI3YzE2YmZkZgogCi1WUE1PVlpYV0RfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxNyhyZWcpCiAgIGJlZm9yZQogICAgIDUwMzEwYzQ3OWYwNjkwYTUuZGIwZDU2YTBmODUwN2RhYy5iMTIxOWVlN2FjN2VhN2ZkLjgwZTE4NTU4OTI2NmJlYmYKICAgICBhZjZkODZiZWI3NWIyNDhiLjU0ZjU0YTc4ZjEwM2E2MmQuMzFjMjU0YjAxNjRmYjEzZC5mZTcwMGQ4Nzg3YmUzZDQ5CkBAIC0xMzA0NywxMiArMTMwNDcsMTIgQEAKICAgICA4ZjNlM2RkZTNjNjU4NzY1LmIzYjU4YTVhZDBlZjk3NGYuOGFhYjRjOTExM2JmNjgwYi5kZDBiN2M3Njc1YTM4MGY5CiAgICAgZjViMDViMGVhNzQ5YmM3NwogICBhZnRlcgotICAgIDUwMzEwYzQ3OWYwNjkwYTUuZGIwZDU2YTBmODUwN2RhYy5iMTIxOWVlN2FjN2VhN2ZkLjgwZTE4NTU4OTI2NmJlYmYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDI5ZTUwMDAwOGM0Mi4wMDAwYzljZjAwMDAzZjRlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMxYzI1NGIwMTY0ZmIxM2QuZmZmZmZmZmZmZmZmZmZmZgorICAgIGFmNmQ4NmJlYjc1YjI0OGIuNTRmNTRhNzhmMTAzYTYyZC4zMWMyNTRiMDE2NGZiMTNkLmZlNzAwZDg3ODdiZTNkNDkKICAgICA1MDU4NDIyMTYyYTFiNzNjLmE4ZTkzMjEyODQzNDcwMDAuMDYyYzkwNmYwNThiZGViMy4yOWU1OGM0MmM5Y2YzZjRlCiAgICAgOGYzZTNkZGUzYzY1ODc2NS5iM2I1OGE1YWQwZWY5NzRmLjhhYWI0YzkxMTNiZjY4MGIuZGQwYjdjNzY3NWEzODBmOQogICAgIGY1YjA1YjBlYTc0OWJjNzcKLVZQTU9WWlhXRF8xMjgobWVtKQorVkNNUFNEXzEyOF8weDE3KG1lbSkKICAgYmVmb3JlCiAgICAgNGY5ZWE0ZjU3YWNhYWZmMy5jODZiNzQ1ZmUwMzJjZWIyLjUwMjVjZTNkZWY0MWQ3NDYuMWE4Yjg2ODNkZjc2OGJmMAogICAgIGM2YTJkMzE5MGEzNDE0OWEuNTYyYWUyMTJlYTk1YzljZS41ZDA1N2JhNWZkMzVlYjEyLjEzMTczOWIwMDIzYzg1MGYKQEAgLTEzMDYxLDEyICsxMzA2MSwxMiBAQAogICAgIDAzYzIwMWQwOTk2M2NjN2QKICAgYWZ0ZXIKICAgICA0ZjllYTRmNTdhY2FhZmYzLmM4NmI3NDVmZTAzMmNlYjIuNTAyNWNlM2RlZjQxZDc0Ni4xYThiODY4M2RmNzY4YmYwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAxYThiMDAwMDg2ODMuMDAwMGRmNzYwMDAwOGJmMAotICAgIDM1ODg2NTY1NzQ5MmE3OTcuOTdjOTgzNjJmNzE5YjM2Ni5iNDIwMGM3ZjE2ZDc5MGRmLmNmOWQ2MTgzMWI5ZTkwMTQKKyAgICBjNmEyZDMxOTBhMzQxNDlhLjU2MmFlMjEyZWE5NWM5Y2UuNWQwNTdiYTVmZDM1ZWIxMi4xMzE3MzliMDAyM2M4NTBmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVkMDU3YmE1ZmQzNWViMTIuZmZmZmZmZmZmZmZmZmZmZgogICAgIDdhMWNkNGM1ZDRmMDI2MTcuZTY5MjU0YmFhMzRhYzkyNS4zMzQ0ZmRiODU4MzQ4MmQ4LmFiNjdmYTZhYzMyN2U5YWEKICAgICAwM2MyMDFkMDk5NjNjYzdkCiAKLVZQTU9WWlhXRF8xMjgocmVnKQorVkNNUFNEXzEyOF8weDE3KHJlZykKICAgYmVmb3JlCiAgICAgMzNmYTcwMjEzNmRmNzQzYS42ZjJhOWUyNTQ1NWI0YjQ2LjllZDI1MDg4ODliNTQ3YjguYjUzYmNhM2FkYzU3N2MyYQogICAgIDk3NWI0NWM5MzgyNjFlOGQuZjI3ZDNlNzFlM2RlZDM0Zi4xZGQ1NzIzODQ1ZTQ2OWNhLjE1ZDJmMGYzYzA0ZDNiMDEKQEAgLTEzMDc0LDEyICsxMzA3NCwxMiBAQAogICAgIDZjYzcwZmNmZGE0NjY3YTQuMGUyNmYxN2UxODVkZmJhMi5kYzUzMWVlOWIxYzQ4ODFlLmUzMGYzM2I3MTdkZWY4ZWIKICAgICAwODRlNDk5YWMyOTM2ZDU4CiAgIGFmdGVyCi0gICAgMzNmYTcwMjEzNmRmNzQzYS42ZjJhOWUyNTQ1NWI0YjQ2LjllZDI1MDg4ODliNTQ3YjguYjUzYmNhM2FkYzU3N2MyYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMzFkNTAwMDBlOWNlLjAwMDAyMDIwMDAwMDdiODgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWRkNTcyMzg0NWU0NjljYS5mZmZmZmZmZmZmZmZmZmZmCisgICAgOTc1YjQ1YzkzODI2MWU4ZC5mMjdkM2U3MWUzZGVkMzRmLjFkZDU3MjM4NDVlNDY5Y2EuMTVkMmYwZjNjMDRkM2IwMQogICAgIDhjMzE3YzM0M2JjNTA2MjIuZGRlMjMwOTZjYjg1N2E1Zi5iZWU2YjkzNDc0NjY2YTA4LjMxZDVlOWNlMjAyMDdiODgKICAgICA2Y2M3MGZjZmRhNDY2N2E0LjBlMjZmMTdlMTg1ZGZiYTIuZGM1MzFlZTliMWM0ODgxZS5lMzBmMzNiNzE3ZGVmOGViCiAgICAgMDg0ZTQ5OWFjMjkzNmQ1OAotVlBNT1ZaWFdEXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MTcobWVtKQogICBiZWZvcmUKICAgICA3ZDVkYTc2MzNjNGE5N2Y5Ljk0NmJmYzA0YjEzNzdlYmYuNWYxM2ZjMTdlNzcxMTQ0My5kNTY2OWVjMzk5OGNmY2I3CiAgICAgMWMwN2NhZmVhMTBmMzJmYS42MDY3M2Q0MTVkMjQ4NzIwLmFkNzVjYzRiNTNjZTdmNmUuMDM2ZDM2MmZjNzQ5MDU4MApAQCAtMTMwODgsMTIgKzEzMDg4LDEyIEBACiAgICAgNmIyOTYxMTAxMWI5ZWRiMQogICBhZnRlcgogICAgIDdkNWRhNzYzM2M0YTk3ZjkuOTQ2YmZjMDRiMTM3N2ViZi41ZjEzZmMxN2U3NzExNDQzLmQ1NjY5ZWMzOTk4Y2ZjYjcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGQ1NjYwMDAwOWVjMy4wMDAwOTk4YzAwMDBmY2I3Ci0gICAgYzMxOTJkNTcwZWVlZjk4OC4yYzA4ZDFmMDdhOThiZTczLmQ1MWFlMDA4Nzk3ZmY4NTEuYzRiMmUxOTdkODg4ZGQyNQorICAgIDFjMDdjYWZlYTEwZjMyZmEuNjA2NzNkNDE1ZDI0ODcyMC5hZDc1Y2M0YjUzY2U3ZjZlLjAzNmQzNjJmYzc0OTA1ODAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWQ3NWNjNGI1M2NlN2Y2ZS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNGM1ZjRjNWE5ZWY0YTljZi41MzlhYjE3ZmEzMWY1ZTY0LmIxY2RiMTM5NzQ5MDNjMTYuNzI4MjliNjk2N2Q0YzE1MQogICAgIDZiMjk2MTEwMTFiOWVkYjEKIAotVlBNT1ZaWFdEXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MTcocmVnKQogICBiZWZvcmUKICAgICAwOWYyMmRmNzcxYzQ5Y2YwLjk0YTVhM2Y0NmUyY2ZlZmEuMzM2OGRhNTk3NDQ1YTU5ZS4xZTU5YmRjOTYxMGQwN2U5CiAgICAgYTkyYmZkOGMyMzgwMGNiYi43N2I2YWUwZjlhYTNiNDM2LjI3YzA0OWU5OGE5N2NjY2QuZjk4YjdlYTY1YjAzMTVmNwpAQCAtMTMxMDEsMTIgKzEzMTAxLDEyIEBACiAgICAgNjAxODk3NmRmMDNjMTlhMy43ZjZkZDI3YzczN2IzMThmLmJiM2FlNmUwZjNlZGIxYmQuNjQxMTE1ZjVlNzg4ZTk3MwogICAgIGFkZmRlMTNlYjIyZjI3MzkKICAgYWZ0ZXIKLSAgICAwOWYyMmRmNzcxYzQ5Y2YwLjk0YTVhM2Y0NmUyY2ZlZmEuMzM2OGRhNTk3NDQ1YTU5ZS4xZTU5YmRjOTYxMGQwN2U5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAxYzJmMDAwMDcyYmIuMDAwMDdlN2QwMDAwMjI2YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yN2MwNDllOThhOTdjY2NkLmZmZmZmZmZmZmZmZmZmZmYKKyAgICBhOTJiZmQ4YzIzODAwY2JiLjc3YjZhZTBmOWFhM2I0MzYuMjdjMDQ5ZTk4YTk3Y2NjZC5mOThiN2VhNjViMDMxNWY3CiAgICAgYTgxZWNjM2FjNDc5NzdiZC5kMjYwZWE5OTNjNjQ4NmFlLjhiZWNmOTlkODBhMDEyOWUuMWMyZjcyYmI3ZTdkMjI2YwogICAgIDYwMTg5NzZkZjAzYzE5YTMuN2Y2ZGQyN2M3MzdiMzE4Zi5iYjNhZTZlMGYzZWRiMWJkLjY0MTExNWY1ZTc4OGU5NzMKICAgICBhZGZkZTEzZWIyMmYyNzM5Ci1WUE1PVlpYV0RfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxNyhtZW0pCiAgIGJlZm9yZQogICAgIGQzYmY1NDgzZmE3ZTk3ZTkuMmU2NTU4OTI0MjU0MmYxOS41YmFhZTJhNjU4ZjU3MTA1LjEzZjQwZDFmN2UwOWU2ZDUKICAgICBiMjIyZTliMWRiODJmN2IwLjZmNTEwZDEzNTY0ZGY1Y2EuNDJlMzk2MDIwYWRjMDEzYi5lZTY3NjhjNGJlODBlZDkzCkBAIC0xMzExNSwxMiArMTMxMTUsMTIgQEAKICAgICAzMTBkOTI1NmQwODE0MzY3CiAgIGFmdGVyCiAgICAgZDNiZjU0ODNmYTdlOTdlOS4yZTY1NTg5MjQyNTQyZjE5LjViYWFlMmE2NThmNTcxMDUuMTNmNDBkMWY3ZTA5ZTZkNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMTNmNDAwMDAwZDFmLjAwMDA3ZTA5MDAwMGU2ZDUKLSAgICAyNmYzMWNiMjcyNDUwMWJhLjdkMjhiMTVkYzliNGE3NjMuMTBlNDZiN2NhMjNmOWY1ZS5hYWRlZjUzYzRlZGUwMWEzCisgICAgYjIyMmU5YjFkYjgyZjdiMC42ZjUxMGQxMzU2NGRmNWNhLjQyZTM5NjAyMGFkYzAxM2IuZWU2NzY4YzRiZTgwZWQ5MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MmUzOTYwMjBhZGMwMTNiLmZmZmZmZmZmZmZmZmZmZmYKICAgICAwY2ZmNjk3NGRiZDY3MjMyLmI1MzU0MGRkMzcxNDgxOGYuYTE3OWRjMDAzZTI3MDU5OS5hMmE3YWZmM2NiYjA1ZmIwCiAgICAgMzEwZDkyNTZkMDgxNDM2NwogCi1WUEJMRU5EVkJfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxOChyZWcpCiAgIGJlZm9yZQogICAgIGI1NWI5YmQwZjlkZWU5NzMuM2UxMDRkZTEzMDNlMDU0NS43M2M2YjZmZDNhZjliZWZiLmQxNmU2NDdhZmFhMmVmMTkKICAgICA4OWRlYzVjY2U0NTI4YzgxLjk4ZjI0M2U3OTA4Yjc3MWUuMTMyNTEwMmI3MWYwOWI1My43YzhlODJkN2YxYmIxYjBhCkBAIC0xMzEyOCwxMiArMTMxMjgsMTIgQEAKICAgICA5MGIzNmNmZjY5YjBiYzUxLjM5NWU1NTZiZGIwMmU4ZDUuNjk4MDVkNWRlNTQyMjQ3NS5iMzgyNjllNTAyZjkyM2VkCiAgICAgZjdlZTJhNzA1MzM1NzkzNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMzlmMTAyYjc1ZjA5YjUzLjdlYTY4MjAxZjE3ZjFiOTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTMyNTEwMmI3MWYwOWI1My4wMDAwMDAwMDAwMDAwMDAwCiAgICAgODlkZWM1Y2NlNDUyOGM4MS45OGYyNDNlNzkwOGI3NzFlLjEzMjUxMDJiNzFmMDliNTMuN2M4ZTgyZDdmMWJiMWIwYQogICAgIDA4ZTIwY2I4MmE2OTY5M2MuZjg3M2M3NzExNGM5ODRlYS5mMTlmNDlkMjc1ODQ1MzQyLjdlYTZhZjAxNDA3ZjQzOTcKICAgICA5MGIzNmNmZjY5YjBiYzUxLjM5NWU1NTZiZGIwMmU4ZDUuNjk4MDVkNWRlNTQyMjQ3NS5iMzgyNjllNTAyZjkyM2VkCiAgICAgZjdlZTJhNzA1MzM1NzkzNwotVlBCTEVORFZCXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MTgobWVtKQogICBiZWZvcmUKICAgICAyNmI2NzA4YzUwNDBmZmEyLjdiOWRlMTBkM2RiMmMwNmMuMzc3ZTY5YzFmZTQ0NWUwYS5kNzE0NDgzYTVhYjQ0ODk3CiAgICAgMWNhNmI3MjcxNTI1NzI1YS4yN2ViNjg0ZTQwZmJiMjM4LmNlYTA4MDVmOWM5YWEzYjYuOTdhNzA2ZDQ3MzY5ZmM1NQpAQCAtMTMxNDMsMTEgKzEzMTQzLDExIEBACiAgIGFmdGVyCiAgICAgMjZiNjcwOGM1MDQwZmZhMi43YjlkZTEwZDNkYjJjMDZjLjM3N2U2OWMxZmU0NDVlMGEuZDcxNDQ4M2E1YWI0NDg5NwogICAgIDFjYTZiNzI3MTUyNTcyNWEuMjdlYjY4NGU0MGZiYjIzOC5jZWEwODA1ZjljOWFhM2I2Ljk3YTcwNmQ0NzM2OWZjNTUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2VhMDY5NWZmZTQ0NWViNi45NzE0NDgzYTVhYjRmYzU1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNlYTA4MDVmOWM5YWEzYjYuMDAwMDAwMDAwMDAwMDAwMAogICAgIGNjMmMzNDg3NjRhZTBlNWYuMmVlNzk4MTk0YTkzNTA5Ni4zNzFhYTQyNGIyYjQ4YTIxLjdkZjhlZGYwZmFjNTAyNTQKICAgICA1YjRmMGQ0OWEyODVjZGVkCiAKLVZQQkxFTkRWQl8xMjgocmVnKQorVkNNUFNEXzEyOF8weDE4KHJlZykKICAgYmVmb3JlCiAgICAgZmJkNWYxMGY1Y2I2MThkMS4zZjVjNjMyNDI3NmFhZjA0LjQxMmMzYjdjODdmYjczN2YuYzAwYWE5MjI2NDhmYTMzOAogICAgIGI5ZDY5M2FmYzVlNTFlYWQuZTllMzgyZWYyMTMwMmRhNi44NDA2ZGVjMTY1ZDk3NGM5LjUzMmJhMTE5ZmZhZjdiNzcKQEAgLTEzMTU1LDEyICsxMzE1NSwxMiBAQAogICAgIGZlNzgwNjI5MTE2YjRlZmMuNTEyODgxYmYyYzBjYWY4Zi4wYmE4MTlhNTcyMmRmZjM0LjAzMzQ1NjllNjJlYzU3MTcKICAgICBkOWIzMGQwNTYxMjBkM2QwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg0YzBkZTU2NjVkOThmYzkuNTMyYmExZjRmZjFmN2I3NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NDA2ZGVjMTY1ZDk3NGM5LjAwMDAwMDAwMDAwMDAwMDAKICAgICBiOWQ2OTNhZmM1ZTUxZWFkLmU5ZTM4MmVmMjEzMDJkYTYuODQwNmRlYzE2NWQ5NzRjOS41MzJiYTExOWZmYWY3Yjc3CiAgICAgZjA5ZWYxOTM3ODlkMWMyZC5hNThkMGRkNDZmMGQ0NDcwLjU0YzA3ZjU2N2ZiYjhmMjIuY2I0YjA2ZjRhMDFmY2UwNwogICAgIGZlNzgwNjI5MTE2YjRlZmMuNTEyODgxYmYyYzBjYWY4Zi4wYmE4MTlhNTcyMmRmZjM0LjAzMzQ1NjllNjJlYzU3MTcKICAgICBkOWIzMGQwNTYxMjBkM2QwCi1WUEJMRU5EVkJfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxOChtZW0pCiAgIGJlZm9yZQogICAgIDI4OTRhNTE0YmFjOWZlNjEuM2ViMmNlZGMyZGRhZjBjNy5jODdmNTk5ZDc1M2EyYjJmLjA2MDlhODFjZDliOTAxYWIKICAgICBjYmEzOWNiNzg4ZjM5NGY0LjBjOTY0NjE4Njg3NjNkMzkuZTU1ZDExNTg2NWExNzQ3Yi5hMTJlMjgyNjUxZWRkMTM0CkBAIC0xMzE3MCwxMSArMTMxNzAsMTEgQEAKICAgYWZ0ZXIKICAgICAyODk0YTUxNGJhYzlmZTYxLjNlYjJjZWRjMmRkYWYwYzcuYzg3ZjU5OWQ3NTNhMmIyZi4wNjA5YTgxY2Q5YjkwMWFiCiAgICAgY2JhMzljYjc4OGYzOTRmNC4wYzk2NDYxODY4NzYzZDM5LmU1NWQxMTU4NjVhMTc0N2IuYTEyZTI4MjY1MWVkZDEzNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jODdmMTE1ODc1YTE3NDJmLmExMDlhODFjZDllZDAxMzQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTU1ZDExNTg2NWExNzQ3Yi4wMDAwMDAwMDAwMDAwMDAwCiAgICAgODE3YTkzNjlmNmY3ZWZkMi5jMThmMzJkYmE4NjZjYmM0Ljg1ZTExMTFhYWM1MDViY2EuMjhmN2VjYTNlMjdjY2EyYgogICAgIGNiMzMyOGVlMzNlZTZiZjEKIAotVlBCTEVORFZCXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MTgocmVnKQogICBiZWZvcmUKICAgICA3ZTYzNDY3YzA0MzdjYTc4LjRjZGE4ZDUxY2RlOTJkNzUuNjEzYzlmM2FlNmQzODMzNS5jMDFmNTJmNzNhYWY3MjI0CiAgICAgOWRkNTQwYmFmMmU0MjM2ZC5kYjk5ZDQ3Yzg5OGNjNWNhLmZlYzNhYmQyYjI5Y2Q3ZmUuMTExNTYzNjNlMDc4NDZkYgpAQCAtMTMxODIsMTIgKzEzMTgyLDEyIEBACiAgICAgOGZhYWJkZjE5NDk3YjE1MC5iOTVlM2U0ZjIyMTJmNjNkLmEzOTM5MjVlNjY3NzQzNDYuNjk1OGU1OTVlMzc5MTMwZQogICAgIDI3M2Q0ZjMzNzdjOTg1ZTIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjY3MjUzZDJiMjljZDdmZS4xMTE1YzA0OWJhNzg0NmRiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZlYzNhYmQyYjI5Y2Q3ZmUuMDAwMDAwMDAwMDAwMDAwMAogICAgIDlkZDU0MGJhZjJlNDIzNmQuZGI5OWQ0N2M4OThjYzVjYS5mZWMzYWJkMmIyOWNkN2ZlLjExMTU2MzYzZTA3ODQ2ZGIKICAgICA4NGQzMTQxMjk5ODBiMTdjLjBjODFlNmQ4NDdlYjc0ZmUuZjY3MjUzMTBhOTRmMDNjYS41NjhmYzA0OWJhYjc5MjFhCiAgICAgOGZhYWJkZjE5NDk3YjE1MC5iOTVlM2U0ZjIyMTJmNjNkLmEzOTM5MjVlNjY3NzQzNDYuNjk1OGU1OTVlMzc5MTMwZQogICAgIDI3M2Q0ZjMzNzdjOTg1ZTIKLVZQQkxFTkRWQl8xMjgobWVtKQorVkNNUFNEXzEyOF8weDE4KG1lbSkKICAgYmVmb3JlCiAgICAgNmQwYTc5MGY5M2I0YTNjMy4xYWE3MzdjNDdmYjY1ZTk2LmJmZmU1OGNmMzYwZTA3YjIuNjM3MzY0MmE4NmExZDIxZQogICAgIDE1OGJkZjE2NTM0NDJhZGQuODExMzdlZjZmNzY4ZjZmOS5mYjJjYjA0M2ExZWE2MjhhLjkwNWVjNWRlYTQ1OGVkZmQKQEAgLTEzMTk3LDExICsxMzE5NywxMSBAQAogICBhZnRlcgogICAgIDZkMGE3OTBmOTNiNGEzYzMuMWFhNzM3YzQ3ZmI2NWU5Ni5iZmZlNThjZjM2MGUwN2IyLjYzNzM2NDJhODZhMWQyMWUKICAgICAxNThiZGYxNjUzNDQyYWRkLjgxMTM3ZWY2Zjc2OGY2ZjkuZmIyY2IwNDNhMWVhNjI4YS45MDVlYzVkZWE0NThlZGZkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJmMmNiMGNmMzZlYTA3OGEuNjM3M2M1MmFhNGExZDIxZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYjJjYjA0M2ExZWE2MjhhLjAwMDAwMDAwMDAwMDAwMDAKICAgICBmZWQ5NGY1MTJjODk2MzZhLjUzNzA2NDI2ZmNiNmQyYzkuODA2MDBjYjZlNTc0ZTkxMi5hNTg1MjViMzRjOWViNjgyCiAgICAgNDQ1ODFjYWIwZDQ1ZGM4MAogCi1WUE1JTlNEXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MTkocmVnKQogICBiZWZvcmUKICAgICBjMjY2OTIzYzNkYTk3ZTM1LmY4M2Q1MjVkN2U1NThjMzUuNzVmN2ZiZmRjMjZiOGU4ZC44MmZmMDc4ZWY4Mzk4YzE5CiAgICAgNzlmYzgzZDI3ODU3ZDg0ZS5jNDg2ODE0NGUzZjcwZWU5LmU0MWY0ZmUzODNlMjI0MWUuMmE1YzMwMGJkMDBlNmEzNApAQCAtMTMyMDksMTIgKzEzMjA5LDEyIEBACiAgICAgMDVlYWM3YmQ3Y2JlYTI1Yi40NWYyNTM1MDU4ZWYwY2JiLjE2ODIxZjhkNmM0YmNlNWIuZDc4MGZkOWY0MDFiYzc1MAogICAgIDk1ZGU5OTkwMTE2OWJkYWEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTQxZjRmZTM4M2UyMjQxZS4yYTVjMzAwYjg5MDAzZjhjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU0MWY0ZmUzODNlMjI0MWUuZmZmZmZmZmZmZmZmZmZmZgogICAgIDc5ZmM4M2QyNzg1N2Q4NGUuYzQ4NjgxNDRlM2Y3MGVlOS5lNDFmNGZlMzgzZTIyNDFlLjJhNWMzMDBiZDAwZTZhMzQKICAgICBjNjY0ZWNkOTU5ZGEyNTc3LjNmN2U1OGYxNzg3Y2E1YjIuZmIzNDVkNDRkZWE5ZDAyYS41MjQzMDQxNzg5MDAzZjhjCiAgICAgMDVlYWM3YmQ3Y2JlYTI1Yi40NWYyNTM1MDU4ZWYwY2JiLjE2ODIxZjhkNmM0YmNlNWIuZDc4MGZkOWY0MDFiYzc1MAogICAgIDk1ZGU5OTkwMTE2OWJkYWEKLVZQTUlOU0RfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxOShtZW0pCiAgIGJlZm9yZQogICAgIDY4MmE1M2Q0MTdmOGRlYzYuOTNkYzEyZWE3ZTkwOGJhNy5iMmFlZWY0ZDlmNWMwMTMxLjkwNTU5MzI4Y2M1NTU5NWQKICAgICAyYzMxYTg1OTZlZDNlNmQyLmNhODVjOGNkZmFkYjFiMDYuNjI3ZWE2ZDQ2YmNmM2UzZi5jN2Y5YjQ4Mjk3NTJhZWRkCkBAIC0xMzIyNCwxMSArMTMyMjQsMTEgQEAKICAgYWZ0ZXIKICAgICA2ODJhNTNkNDE3ZjhkZWM2LjkzZGMxMmVhN2U5MDhiYTcuYjJhZWVmNGQ5ZjVjMDEzMS45MDU1OTMyOGNjNTU1OTVkCiAgICAgMmMzMWE4NTk2ZWQzZTZkMi5jYTg1YzhjZGZhZGIxYjA2LjYyN2VhNmQ0NmJjZjNlM2YuYzdmOWI0ODI5NzUyYWVkZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMmFlZWY0ZDlmNWMwMTMxLjkwNTU5MzI4OTc1MmFlZGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjI3ZWE2ZDQ2YmNmM2UzZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZjc5YTBmZDI4MTlmOWE2NC5hNjJhNjY2MWQzMGQyNGIwLmZiODk1YTMwZmJmYTgyZDYuZDhlM2VlMjRlNDU1YTYwNgogICAgIDZiYzFmZjQ0OWQ3NGMwMDcKIAotVlBNSU5TRF8xMjgocmVnKQorVkNNUFNEXzEyOF8weDE5KHJlZykKICAgYmVmb3JlCiAgICAgMmFhMGFkZDMzMmI2OTQzNi5iNjk2MWE5Zjc1YTdiZTQzLjAzYmY0NmViNjYwYzEzNTIuOWM1YzRmZGRmOWM4MDFiNgogICAgIDcwY2NmNDNkNDBhODVlM2UuZDY3Y2FmNWMyYTJjYjhjMC43YTNiODFkYWU1YjU5YmI4LmYwNzM0ZmM1ZWFjZGI4ZGYKQEAgLTEzMjM2LDEyICsxMzIzNiwxMiBAQAogICAgIDA1M2EzZTUyMzZjOWMyOGIuYTkzNDY4NTY0OWRhMjI0Ny4yNjE4Zjk5NzExMzE2MDdlLjIxOWQ2NWYyMTZhYWMyYmEKICAgICBiNjQ3NzMxMDhhOWE4Y2M1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY3ZWExNDlhZTViNTliYjguZDM5YWQ4ZDJlYTE0NjU3YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YTNiODFkYWU1YjU5YmI4LmZmZmZmZmZmZmZmZmZmZmYKICAgICA3MGNjZjQzZDQwYTg1ZTNlLmQ2N2NhZjVjMmEyY2I4YzAuN2EzYjgxZGFlNWI1OWJiOC5mMDczNGZjNWVhY2RiOGRmCiAgICAgOWI5MGQwZWU2M2Q1NTljYy4zMzE3NGJmNWJkMzk0NjA5LjY3ZWExNDlhZTk5MmY2OGQuZDM5YWQ4ZDJlYTE0NjU3YwogICAgIDA1M2EzZTUyMzZjOWMyOGIuYTkzNDY4NTY0OWRhMjI0Ny4yNjE4Zjk5NzExMzE2MDdlLjIxOWQ2NWYyMTZhYWMyYmEKICAgICBiNjQ3NzMxMDhhOWE4Y2M1Ci1WUE1JTlNEXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MTkobWVtKQogICBiZWZvcmUKICAgICA2ZDY2N2MxODYxZjA3ZmM4LjBiMTQzOWQ1NTUxMWQ1MjguMTM5Zjg0NmNlYjFjMDlhOS4xMzEwMmUzZGY2MWUxNzM3CiAgICAgMjRjNGZlZjZiN2I5NTZmMC4wYTZjYmRlMzVkMzhjZTRlLjRmMjQxYTIxYmUwYWI2NTkuOGEyMGFlZjgzNmU0NTU2MwpAQCAtMTMyNTEsMTEgKzEzMjUxLDExIEBACiAgIGFmdGVyCiAgICAgNmQ2NjdjMTg2MWYwN2ZjOC4wYjE0MzlkNTU1MTFkNTI4LjEzOWY4NDZjZWIxYzA5YTkuMTMxMDJlM2RmNjFlMTczNwogICAgIDI0YzRmZWY2YjdiOTU2ZjAuMGE2Y2JkZTM1ZDM4Y2U0ZS40ZjI0MWEyMWJlMGFiNjU5LjhhMjBhZWY4MzZlNDU1NjMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTM5Zjg0NmNiZTBhYjY1OS44YTIwYWVmOGY2MWUxNzM3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRmMjQxYTIxYmUwYWI2NTkuZmZmZmZmZmZmZmZmZmZmZgogICAgIGZmNzA1YWU0NTJkMmEzNWQuNWZjMTUwNTE5NjU0NjBlOC5hYWFiYTUxYzY5MWI1NTU0Ljg2YjM3ZjVlMzYyYjU5YzYKICAgICBjMmNmYzllMDJlYzU5NjU1CiAKLVZQTUlOU0RfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxOShyZWcpCiAgIGJlZm9yZQogICAgIGY5MzE0ZDI4ZjA2ODRiMDguZGE1NjJjY2NjZjM5OTFmYi42ZDU2NTg4OTAwNjE3MmIzLjgwNDY5MjNhNzg1NmJmZjgKICAgICA4NjI3MDlhMTE4YTFiNDhhLjI1YWM2NzNhM2I0MzUzNmQuZTM5OWQ5ZmJjMTdkNTliOC45ODJhZTlhNzI5NmRkZjlhCkBAIC0xMzI2MywxMiArMTMyNjMsMTIgQEAKICAgICAxMWZhMTdkNTBkMDI5MWFkLjc3ZDcwNTU5NTI2ZTQ2N2YuNzg1NTM2NDJiZTE0OTkxZi5mYTAwYzUyM2UwNjEzNDhiCiAgICAgZmQ4YTQzMDkxZDU1ZTEzMQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lMzk5ZDlmYmMxN2Q1OWI4Ljk4MmFlOWE3OTg2ZDczNjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTM5OWQ5ZmJjMTdkNTliOC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgODYyNzA5YTExOGExYjQ4YS4yNWFjNjczYTNiNDM1MzZkLmUzOTlkOWZiYzE3ZDU5YjguOTgyYWU5YTcyOTZkZGY5YQogICAgIGM1ZmJmOWI2NDNmYjBkODguYmIzZDg2MWFiM2ZjYTZkZi4xZGQ0Y2YxNTc4MzU1M2EyLmNkMjQyNjUxOTg2ZDczNjcKICAgICAxMWZhMTdkNTBkMDI5MWFkLjc3ZDcwNTU5NTI2ZTQ2N2YuNzg1NTM2NDJiZTE0OTkxZi5mYTAwYzUyM2UwNjEzNDhiCiAgICAgZmQ4YTQzMDkxZDU1ZTEzMQotVlBNSU5TRF8xMjgobWVtKQorVkNNUFNEXzEyOF8weDE5KG1lbSkKICAgYmVmb3JlCiAgICAgYjA4ZTFiZWY2YzU2MzQ4NS5jODcwNjE2OTEwNDI3ZGE2LjM3NDQ2MGUxMzVhN2VlNzcuNGU2NjBiZWUzMWE2NmFkOAogICAgIGYxZDdjOWMyZTg2ZmVhYjUuNDVhOWQyZGVlYjQ4MGQxZS5kNTUxMTNhMDc3YjM1YmYzLmZjNTQ0OTg1NmQ3ODAwN2IKQEAgLTEzMjc4LDExICsxMzI3OCwxMSBAQAogICBhZnRlcgogICAgIGIwOGUxYmVmNmM1NjM0ODUuYzg3MDYxNjkxMDQyN2RhNi4zNzQ0NjBlMTM1YTdlZTc3LjRlNjYwYmVlMzFhNjZhZDgKICAgICBmMWQ3YzljMmU4NmZlYWI1LjQ1YTlkMmRlZWI0ODBkMWUuZDU1MTEzYTA3N2IzNWJmMy5mYzU0NDk4NTZkNzgwMDdiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ1NTExM2EwMzVhN2VlNzcuZmM1NDQ5ODUzMWE2NmFkOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNTUxMTNhMDc3YjM1YmYzLmZmZmZmZmZmZmZmZmZmZmYKICAgICA4OTZjOThkYWQ5MWE2ZTUzLjAwOTQxOTFjOTNkNDA3M2UuMWY3YjczNzA4OTcxNzQyYS41MGY2ZjAyNGFlMDk2ZTJmCiAgICAgYWU0MzUxMDRlYmUxYmU5NwogCi1WUE1BWFNEXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MUEocmVnKQogICBiZWZvcmUKICAgICA1NDljMGM4MDYwMjhjMzk4Ljk4NGZiMGY5ODZjNWI1MWEuZjZkZGU4YmM5OTcyZWEzZC44MzJmMTc1OTkyM2I5NzNjCiAgICAgOWU0ZTFjMDJhYTZiYmFkZi5hNWE3OGZiM2QwYjc0ZDZjLjIzMTljZGVkZTUwNTYwNmMuMzViNDAzMjg2YTA4NmY4MwpAQCAtMTMyOTAsMTIgKzEzMjkwLDEyIEBACiAgICAgOGVlZDJiY2MyYzEyNmRlZS4yNGViOTBhZGFkYTU2NzVmLjhlOWFjZmIzYzEzY2Y5MDkuZjc1Y2E1MjhmOGQ5MmQ1ZQogICAgIGJlMTg1MjMxZTdmNThiNGIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjMxOWNkZWQxNDFhYTc3Ny4zNWI0MDMyODZhMDg2ZjgzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIzMTljZGVkZTUwNTYwNmMuMDAwMDAwMDAwMDAwMDAwMAogICAgIDllNGUxYzAyYWE2YmJhZGYuYTVhNzhmYjNkMGI3NGQ2Yy4yMzE5Y2RlZGU1MDU2MDZjLjM1YjQwMzI4NmEwODZmODMKICAgICBlOGE1N2RmODY1MzRkZjE4LjhhNDJiMGY2ZDRmZWY1NzQuZTE5NGM2MWMxNDFhYTc3Ny4xMmQ0YjRjOTJkZTNiODJhCiAgICAgOGVlZDJiY2MyYzEyNmRlZS4yNGViOTBhZGFkYTU2NzVmLjhlOWFjZmIzYzEzY2Y5MDkuZjc1Y2E1MjhmOGQ5MmQ1ZQogICAgIGJlMTg1MjMxZTdmNThiNGIKLVZQTUFYU0RfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxQShtZW0pCiAgIGJlZm9yZQogICAgIDQ0ZDQzN2QxMTU0MzhlMWMuZWM3MjIzZWM5YjhlYTEwZS40ZjZkYTljNDc4Yjk2MDU4Ljg0NzdlMjIwODhmNzkzY2YKICAgICA2NTViZDBmMjllY2ZmMmZlLjVlN2Y1ZmMzNGYzNmI3MjQuZTg5NTc5Mjc1MDQ0OWM4Yy4yMTc3ZmRjZTA2ZDhiMDc0CkBAIC0xMzMwNSwxMSArMTMzMDUsMTEgQEAKICAgYWZ0ZXIKICAgICA0NGQ0MzdkMTE1NDM4ZTFjLmVjNzIyM2VjOWI4ZWExMGUuNGY2ZGE5YzQ3OGI5NjA1OC44NDc3ZTIyMDg4Zjc5M2NmCiAgICAgNjU1YmQwZjI5ZWNmZjJmZS41ZTdmNWZjMzRmMzZiNzI0LmU4OTU3OTI3NTA0NDljOGMuMjE3N2ZkY2UwNmQ4YjA3NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZjZkYTljNDc4Yjk2MDU4LjIxNzdmZGNlMDZkOGIwNzQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTg5NTc5Mjc1MDQ0OWM4Yy4wMDAwMDAwMDAwMDAwMDAwCiAgICAgZTlmZTEwNmMzM2QzY2JhNC5lZTY1OTg0NmY0Mzc3OGUwLmNmMDcyYjgxOTlmNWNjNTQuYmIwZjM3OWQ5NjM5NjYwZAogICAgIDcyM2Y1MDk2ZTBkMjc3NTkKIAotVlBNQVhTRF8xMjgocmVnKQorVkNNUFNEXzEyOF8weDFBKHJlZykKICAgYmVmb3JlCiAgICAgM2VjMjVmODA1MGMwZmIzNS4wM2IxYWU5Yjc3NjNiOWJmLmMzZDU4ZGNhMWRhOTliZGUuZDZlOTA2NTA0MTMyMzg0MAogICAgIDdjZTQ2MmM3ODI4ZjJmNGMuMjg2MGYwZmQ4NjYxZjc5Yi4xZGZlYjZiNWZiNzc4ZjgyLmJhYTE4NzFiNjcxN2Q2MTcKQEAgLTEzMzE3LDEyICsxMzMxNywxMiBAQAogICAgIGJlMzQzMTFkOWUwMjk2ZGQuMDNlMjUxMDc3N2Q4NTc0Ni5jY2FiOTk3MTQ0NTNkZTZiLjhhYzE2YjU2OWIwYjljMzMKICAgICAyZGMzYzY5ZWUyMzEzYmQxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU3MmMxMTc0MjkyYjkyNzguNThmYTI5Y2Y2NzE3ZDYxNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZGZlYjZiNWZiNzc4ZjgyLmZmZmZmZmZmZmZmZmZmZmYKICAgICA3Y2U0NjJjNzgyOGYyZjRjLjI4NjBmMGZkODY2MWY3OWIuMWRmZWI2YjVmYjc3OGY4Mi5iYWExODcxYjY3MTdkNjE3CiAgICAgODhmMDU0ZDgxM2NjNGY0Yi4zNGQ3NTM3ZDdkZDk0MzY0LjU3MmMxMTc0MjkyYjkyNzguNThmYTI5Y2YyN2IxNjQwNAogICAgIGJlMzQzMTFkOWUwMjk2ZGQuMDNlMjUxMDc3N2Q4NTc0Ni5jY2FiOTk3MTQ0NTNkZTZiLjhhYzE2YjU2OWIwYjljMzMKICAgICAyZGMzYzY5ZWUyMzEzYmQxCi1WUE1BWFNEXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MUEobWVtKQogICBiZWZvcmUKICAgICAxZGNhYjc5MjE2MzBmYzBhLjdiZmFmNTA0YzBiZDQxYWYuNzE0ZDY4ODc5MDY4ZWY2Yy5kYWM2NGIxYWU3N2FiMDA4CiAgICAgMzZhMmJiMWQ1MzEzOWMwYS4xOTkwOWRmNzE1OGE4YzZkLjVhZTMxM2VhZTU5OGM5MDIuZGNjYTIxZDlhZTJkNDNmYQpAQCAtMTMzMzIsMTEgKzEzMzMyLDExIEBACiAgIGFmdGVyCiAgICAgMWRjYWI3OTIxNjMwZmMwYS43YmZhZjUwNGMwYmQ0MWFmLjcxNGQ2ODg3OTA2OGVmNmMuZGFjNjRiMWFlNzdhYjAwOAogICAgIDM2YTJiYjFkNTMxMzljMGEuMTk5MDlkZjcxNThhOGM2ZC41YWUzMTNlYWU1OThjOTAyLmRjY2EyMWQ5YWUyZDQzZmEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzE0ZDY4ODdlNTk4YzkwMi5kY2NhMjFkOWU3N2FiMDA4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVhZTMxM2VhZTU5OGM5MDIuZmZmZmZmZmZmZmZmZmZmZgogICAgIDUyZmFlOWFkNWFiNTY5MGMuNmI1Nzg2YjZjNTg3ZjE1Yi4wZGMzMTYwNGIyMDEyZDMxLjJiYmUyZTRlMWI2NDlmOGYKICAgICAzMDQ0NWNkYmY4MDBlMDhhCiAKLVZQTUFYU0RfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxQShyZWcpCiAgIGJlZm9yZQogICAgIDlhZTQ5ZjJmNjk1OGQzOGIuMGUxMDBjODk1YzhkMGQ2Ny5kNzIwYmY1OTU4ZDA4M2UzLjhmYTU2Njk1NjI1NDMxMjIKICAgICBjM2U5ZjRiNjBiZjhiMzNkLjYzMjgzMWFkZDc3YTgwMzkuOTVlOWNjYjk4ZjVhYTUwNy5mY2UzM2FiOGJjNzQ2NTMzCkBAIC0xMzM0NCwxMiArMTMzNDQsMTIgQEAKICAgICBjNjUwYzEwZDUxM2MyYzY3LjQ4OGU3MTdlYWFiZmMzZjAuNzdhNzRlNjA1MjYzODhkMi4wN2EyNWY2M2U1NTE1MDY2CiAgICAgNWNiY2E4YzRlYTI0N2VlMQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWZkYTc0MjAzYjI5MzczLjMwNDkwZTU4ZGY2Zjg2OTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTVlOWNjYjk4ZjVhYTUwNy5mZmZmZmZmZmZmZmZmZmZmCiAgICAgYzNlOWY0YjYwYmY4YjMzZC42MzI4MzFhZGQ3N2E4MDM5Ljk1ZTljY2I5OGY1YWE1MDcuZmNlMzNhYjhiYzc0NjUzMwogICAgIDA5OWU1NmRjN2E2YWJkNGQuMmQwZWQzMDZlODg2N2VhZC4wMWZkYTc0MjAzYjI5MzczLjMwNDkwZTU4ZGY2Zjg2OTAKICAgICBjNjUwYzEwZDUxM2MyYzY3LjQ4OGU3MTdlYWFiZmMzZjAuNzdhNzRlNjA1MjYzODhkMi4wN2EyNWY2M2U1NTE1MDY2CiAgICAgNWNiY2E4YzRlYTI0N2VlMQotVlBNQVhTRF8xMjgobWVtKQorVkNNUFNEXzEyOF8weDFBKG1lbSkKICAgYmVmb3JlCiAgICAgMGQ2MTY1NjcwYmY2Y2QyYy41ODRiMzFiNTJjZmEzZDM2LjkwNzQ4NDAzMzkzMTBhMmUuNTMzNGJjODAxOGY5YzFkMQogICAgIGY1NWUxMjM4NjNkM2Y5NzQuMTlkYmEyNDFhODJlMmM2Ni5lMDhiODk3ZmIyZTYxMDkyLmYwZjBlZTBjZjAwMDc5MWIKQEAgLTEzMzU5LDExICsxMzM1OSwxMSBAQAogICBhZnRlcgogICAgIDBkNjE2NTY3MGJmNmNkMmMuNTg0YjMxYjUyY2ZhM2QzNi45MDc0ODQwMzM5MzEwYTJlLjUzMzRiYzgwMThmOWMxZDEKICAgICBmNTVlMTIzODYzZDNmOTc0LjE5ZGJhMjQxYTgyZTJjNjYuZTA4Yjg5N2ZiMmU2MTA5Mi5mMGYwZWUwY2YwMDA3OTFiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUwOGI4OTdmMzkzMTBhMmUuNTMzNGJjODAxOGY5YzFkMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lMDhiODk3ZmIyZTYxMDkyLmZmZmZmZmZmZmZmZmZmZmYKICAgICBkOThmMmQxNTJhZGFkN2FhLjliZWE3OWIxZjEyZTk0OWQuMGQ4MDViMTFkMTRmNDg3ZS5lMjI0OGExYzQ4OTM1YTQzCiAgICAgZWUzNWVkNzhmZjM3ZmE3OAogCi1WQU5EUERfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxQyhyZWcpCiAgIGJlZm9yZQogICAgIDJjYTQwM2YxMzk3YzA5YTkuOGU1YzkyZjhkMTFlMDFmMC4xNTAwZDY2ZWY2MTA4NGZhLmEwZjUxZmZkYWUxYWYyNWUKICAgICBmN2JmYzlmMjkxZWVjNTgxLmU5YjBkOGJhMWY5Y2Y4ZTIuMmVkYjI0YmUwYzlhNDI2OS5hZGNjYzY5MmU1NTk0YjE0CkBAIC0xMzM3MSwxMiArMTMzNzEsMTIgQEAKICAgICBhOTI0NTE0MjBlOGEyZWQ4LjA1MjBmNTg3MjI3NjNiN2MuYjAxMDg1YzdkOGQ0MTcyYy5hMWQwYTk2NGQwNjRmOWI1CiAgICAgNDA5NGRlN2FiYjQ4YzZmNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMmM4MjAwYzBjMTgwMDAwLjBjYzBjMjkyODAxODBiMDQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmVkYjI0YmUwYzlhNDI2OS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZjdiZmM5ZjI5MWVlYzU4MS5lOWIwZDhiYTFmOWNmOGUyLjJlZGIyNGJlMGM5YTQyNjkuYWRjY2M2OTJlNTU5NGIxNAogICAgIGFkZDAzOWU5YTQxOTY4YWQuYzg1ODdiNDUzMTYwNzdhZC40M2M4NjAwZGNlNTgwOTk2LjBlZDFjYWJiOTIxODBmY2UKICAgICBhOTI0NTE0MjBlOGEyZWQ4LjA1MjBmNTg3MjI3NjNiN2MuYjAxMDg1YzdkOGQ0MTcyYy5hMWQwYTk2NGQwNjRmOWI1CiAgICAgNDA5NGRlN2FiYjQ4YzZmNwotVkFORFBEXzEyOChtZW0pCitWQ01QU0RfMTI4XzB4MUMobWVtKQogICBiZWZvcmUKICAgICBjOWVhZTVlNzcwZDAzMmMwLjQ2MDYwYzY3NmFjYzU1YWYuN2VkNGM0NmEwZmViMDA3Yy5kMTAyOGY1OGM4OWNhNmQ4CiAgICAgMTY5ZjNiOTgwYTA5ZjgzYy5lMmM0NjdjNTU0NmMxN2RlLjBkNDA2M2RjMTNjYTgyZDkuMDJlOTdhMmMzNzNjZjM0NQpAQCAtMTMzODYsMTEgKzEzMzg2LDExIEBACiAgIGFmdGVyCiAgICAgYzllYWU1ZTc3MGQwMzJjMC40NjA2MGM2NzZhY2M1NWFmLjdlZDRjNDZhMGZlYjAwN2MuZDEwMjhmNThjODljYTZkOAogICAgIDE2OWYzYjk4MGEwOWY4M2MuZTJjNDY3YzU1NDZjMTdkZS4wZDQwNjNkYzEzY2E4MmQ5LjAyZTk3YTJjMzczY2YzNDUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGM0MDQwNDgwM2NhMDA1OC4wMDAwMGEwODAwMWNhMjQwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBkNDA2M2RjMTNjYTgyZDkuZmZmZmZmZmZmZmZmZmZmZgogICAgIDcwNTBjMTc3NWZiYzg1ZmIuODMwMGU5ZGQ0NGYzNWVmMi5lMTZmMDExYWQxZjdhYjU4LjA1YzVlNDRlMDgzMWI1MTUKICAgICA4ZTUyNWI3M2ExOWVhM2NmCiAKLVZBTkRQRF8xMjgocmVnKQorVkNNUFNEXzEyOF8weDFDKHJlZykKICAgYmVmb3JlCiAgICAgOTYwNGEzOGMyYTEzM2ZmYi4zNGU2ZTk3ZDUyNGVjNDk2LjQwMTYwOTZlODJmMzVjMzAuZGRjYWY5YmVjNDVkY2JkMwogICAgIDdiMjdiODAzNDAxYmM0NDQuMmUwYTRmNzc5YWMwNGQ5NC42YzM3YjhlOWJlODBlNTc1LjYxMGRiMGExM2Q1ZTk3NWEKQEAgLTEzMzk4LDEyICsxMzM5OCwxMiBAQAogICAgIDQ5ZWYzYWMwODExNTdjZGYuMmYyYWM3Zjc5Yjc1MzA2Ny43Y2M5YjQ0OWExNzI4YWM2LjZjN2I1MWNmMzg1ZTI2M2UKICAgICBhZDNlMzFmNGYwNzU2MWYyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwMjZiMGE5OTQwMDI1NjUuNDEwNGEwYTExOTA0ODQxOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42YzM3YjhlOWJlODBlNTc1LmZmZmZmZmZmZmZmZmZmZmYKICAgICA3YjI3YjgwMzQwMWJjNDQ0LjJlMGE0Zjc3OWFjMDRkOTQuNmMzN2I4ZTliZTgwZTU3NS42MTBkYjBhMTNkNWU5NzVhCiAgICAgOTgwNzk3NDY3ZTQyNmY1Ny4zODg3NzA1MTU0MWVkZDIwLjYxYWVmM2I5OTQyNjM1NmQuNDcwNGE0YWQ1YjA1Y2MxOQogICAgIDQ5ZWYzYWMwODExNTdjZGYuMmYyYWM3Zjc5Yjc1MzA2Ny43Y2M5YjQ0OWExNzI4YWM2LjZjN2I1MWNmMzg1ZTI2M2UKICAgICBhZDNlMzFmNGYwNzU2MWYyCi1WQU5EUERfMTI4KG1lbSkKK1ZDTVBTRF8xMjhfMHgxQyhtZW0pCiAgIGJlZm9yZQogICAgIGU0MThjMjA2YTA1NzM4NjQuZWEyZDlmZGRlNDFmMjc4YS5mMGJmZDA1NThiZDAwMTk1LjFhZDNmOTA3ODFlZjFlMmEKICAgICBlZWQ3N2VmMzYzMGY2OGJlLmQ3MGJjMjA5NDRlZGFiMDEuNTUxMjA3NTc0MTNjMGRkNS45NTE3YmQ1ZWNmMjkyZTQ1CkBAIC0xMzQxMywxMSArMTM0MTMsMTEgQEAKICAgYWZ0ZXIKICAgICBlNDE4YzIwNmEwNTczODY0LmVhMmQ5ZmRkZTQxZjI3OGEuZjBiZmQwNTU4YmQwMDE5NS4xYWQzZjkwNzgxZWYxZTJhCiAgICAgZWVkNzdlZjM2MzBmNjhiZS5kNzBiYzIwOTQ0ZWRhYjAxLjU1MTIwNzU3NDEzYzBkZDUuOTUxN2JkNWVjZjI5MmU0NQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41MDEyMDA1NTAxMTAwMTk1LjEwMTNiOTA2ODEyOTBlMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTUxMjA3NTc0MTNjMGRkNS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZWIyZjZkMGI5NDMzYzJkYy4wNGRhMmUzZTY5MDIzMDBhLjdlMjJmMGY3NmU3NGM2M2QuOTY4MGIzODgyNzA2YjE1MwogICAgIGQzM2RkZDMyNjhjMDljOWQKIAotVkFORFBEXzEyOChyZWcpCitWQ01QU0RfMTI4XzB4MUMocmVnKQogICBiZWZvcmUKICAgICA1ZTY1NzYyNTg4NjhmMjRmLjk2NjE5NjBlM2FiNjY1ZjcuZmQ2MzZmMjA2NjYxYWFmMi5mYTc2OWE2ZTFjNThlYWJkCiAgICAgOTM0MzdhY2UyMjg5ZjExNC44NGE3ZGM5YjYzNDA1MGFjLmIyYmM1ZWMwZDBiNGVkNTguOGJiODYyMzgwMDdkMzkwMApAQCAtMTM0MjUsMTIgKzEzNDI1LDEyIEBACiAgICAgNmM1NWI0ZWUzNjY3ZDU4YS45OTllYWMwM2IwOTZmMDhlLmJmMTIzNGVlNTk2NGMwNGQuNWMzNzNkN2FkOGI4NDg3ZAogICAgIDU0MGE0OGM4MDVlNjdmMGYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzIzMDU2ODA0MDg0MjQ0OC4wOWIwNDAwMDAwNmQyOTAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIyYmM1ZWMwZDBiNGVkNTguZmZmZmZmZmZmZmZmZmZmZgogICAgIDkzNDM3YWNlMjI4OWYxMTQuODRhN2RjOWI2MzQwNTBhYy5iMmJjNWVjMGQwYjRlZDU4LjhiYjg2MjM4MDA3ZDM5MDAKICAgICBjZTI1ZTU5N2QzYWZkMzk5LjkxY2NiYTllMmNkYzNmMjUuN2UzM2Y3OGM0Mjg3MzZlOC4wZGI1YzQ0MzM2ZWY2ZjMxCiAgICAgNmM1NWI0ZWUzNjY3ZDU4YS45OTllYWMwM2IwOTZmMDhlLmJmMTIzNGVlNTk2NGMwNGQuNWMzNzNkN2FkOGI4NDg3ZAogICAgIDU0MGE0OGM4MDVlNjdmMGYKLVZBTkRQRF8xMjgobWVtKQorVkNNUFNEXzEyOF8weDFDKG1lbSkKICAgYmVmb3JlCiAgICAgZDFmYzYxMWJkNzg0ZDExNC5jNzIwZTIzZWU4M2MzMzkyLjc4ZTcyZmI3MGI3YjFkMTUuZDBhNjEzNTRiMGQ5YzkzNAogICAgIGFmZDgwNDVlNmE5ZmY5YjguM2NkMjZiZjI4NWJhMjg1ZS4wYTc0YmRhNDVhOTU4MmUzLjBjM2I4ZjI5ZTM3MThiNDkKQEAgLTEzNDQwLDExICsxMzQ0MCwxMSBAQAogICBhZnRlcgogICAgIGQxZmM2MTFiZDc4NGQxMTQuYzcyMGUyM2VlODNjMzM5Mi43OGU3MmZiNzBiN2IxZDE1LmQwYTYxMzU0YjBkOWM5MzQKICAgICBhZmQ4MDQ1ZTZhOWZmOWI4LjNjZDI2YmYyODViYTI4NWUuMGE3NGJkYTQ1YTk1ODJlMy4wYzNiOGYyOWUzNzE4YjQ5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA4NjQyZGE0MGExMTAwMDEuMDAyMjAzMDBhMDUxODkwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wYTc0YmRhNDVhOTU4MmUzLmZmZmZmZmZmZmZmZmZmZmYKICAgICBmZTdjZDk2NTQ1NzliZjhiLmU0MWE3ZTNiZWNlM2NhZjAuYjc4YWVmZGQ0MzllZTgwYi43OTk4NGVjZjUwM2MyY2FiCiAgICAgNjJmNzhhN2FjMTg2ODM1MAogCi1WTVVMUERfMjU2KHJlZykKK1ZDTVBTRF8xMjhfMHgxRChyZWcpCiAgIGJlZm9yZQogICAgIGU2ODg1MzQzN2UyNDg0ZDMuMjdkZDAzMDBjNDUxZDQxMi5jZjQ5MDFhN2YwYTZlZTBmLjhhYWE4YTAxMTRhNDYwYmIKICAgICA2Mjk1YTU5NzI0YTE2YWRmLjIwNThhNzNiNzVkNWFmZTguNDQ4ZWNmMjk0ZTQxOWJhMS44MDNmMjIwZjQ5MTEwMTY0CkBAIC0xMzQ1MiwxMiArMTM0NTIsMTIgQEAKICAgICBiMzU2ZDQ5MTk5NjlkOTQ1LmY3Y2I0ZTQyZGMxMmFhMzAuM2I4ZDNjMWE4YTM1N2FkMC40NGYzMzU5OTRkNGNhYzUxCiAgICAgY2JhYmFhZWQ1NDM0MmZlYgogICBhZnRlcgotICAgIDU2MTI5ODMyNDczMjMxOTguYTgyMzc0YmNjZGVmMzkxOS5hMmQ2MGExYTZmYTlmNmE4LmI0NjJhZGNiYWNmNmE4MGEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDQ4ZWNmMjk0ZTQxOWJhMS4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNjI5NWE1OTcyNGExNmFkZi4yMDU4YTczYjc1ZDVhZmU4LjQ0OGVjZjI5NGU0MTliYTEuODAzZjIyMGY0OTExMDE2NAogICAgIDMzNmI3Y2UyNGU4OTczMjEuYzdiOTQxMDM3NDExMGQzOS45ZTM2ZTQyYmEzNDMwYjUzLjc0MTMzMmYzZmRlZjg2MzIKICAgICBiMzU2ZDQ5MTk5NjlkOTQ1LmY3Y2I0ZTQyZGMxMmFhMzAuM2I4ZDNjMWE4YTM1N2FkMC40NGYzMzU5OTRkNGNhYzUxCiAgICAgY2JhYmFhZWQ1NDM0MmZlYgotVk1VTFBEXzI1NihtZW0pCitWQ01QU0RfMTI4XzB4MUQobWVtKQogICBiZWZvcmUKICAgICBlNDA3MGFkYjJmYjJjYjJmLjNmYTJhYTBlYTBjY2Q4ZjYuOGI1YzQ4ZTZjYWUzNDJmOS43NmRmZDQ2M2EwYTUyNmM1CiAgICAgNmRkM2QzNGZmOWQyM2I0Ny4zNDlhZjljNzAwM2VhZWUxLjYxMzZhZGRhNTk5MDkwYzIuYWI3OGE3NzA4MDFlNDlkZQpAQCAtMTM0NjcsMTEgKzEzNDY3LDExIEBACiAgIGFmdGVyCiAgICAgZTQwNzBhZGIyZmIyY2IyZi4zZmEyYWEwZWEwY2NkOGY2LjhiNWM0OGU2Y2FlMzQyZjkuNzZkZmQ0NjNhMGE1MjZjNQogICAgIDZkZDNkMzRmZjlkMjNiNDcuMzQ5YWY5YzcwMDNlYWVlMS42MTM2YWRkYTU5OTA5MGMyLmFiNzhhNzcwODAxZTQ5ZGUKLSAgICBmZmYwMDAwMDAwMDAwMDAwLjM0NGY3N2I2NmM1MjYzNmQuYWNhNDBiYzljYjAzZWFjMC5lMjY4ODVkNzA3MzY5YzUxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYxMzZhZGRhNTk5MDkwYzIuMDAwMDAwMDAwMDAwMDAwMAogICAgIDNiZWE4YzdhY2MyOThhYTUuYzRjMmYzOWEzOTgxY2ExMy4zZmY4YTY2MWNiYjA0MWZlLjcyYWVlZThiMGY1Y2U2MjkKICAgICBiZGUzNWE3MGY2M2FkOGI1CiAKLVZNVUxQRF8yNTYocmVnKQorVkNNUFNEXzEyOF8weDFEKHJlZykKICAgYmVmb3JlCiAgICAgNzI4ZmYyY2ExODUwMzIxNC4zOWNkNzYwOTBkNzhlMDQzLjE4ODk5NThiNGE2OTg5YjMuMDA3ODMyY2RlNzNiMWNjYQogICAgIGVjZmViMTA1MTEyYzMwZjIuMTU1MGI3Y2RhZDk5ZmI2NS40NTJkYTE2ODI0OTEwZDNjLjcxNzIxNzM5MTNkMTlkNDUKQEAgLTEzNDc5LDEyICsxMzQ3OSwxMiBAQAogICAgIGE0NTQ5NGNlZjU2NDA3ZGUuZGI2NjMzYTk3YzgzNzBlOC45NTNjZTQ5NGExY2U1N2JiLmQ3MDJlMmMyMTI1NDg0ZjYKICAgICA4NDMyYmViNjFiNTg2MTg1CiAgIGFmdGVyCi0gICAgMzY4YjY4Njk1MDk5YjZiOS44MmEwOWQ4NzMxMDUwMDM5LmFiMzgyNDYxMjM2YTcwZWYuN2ZmMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NTJkYTE2ODI0OTEwZDNjLmZmZmZmZmZmZmZmZmZmZmYKICAgICBlY2ZlYjEwNTExMmMzMGYyLjE1NTBiN2NkYWQ5OWZiNjUuNDUyZGExNjgyNDkxMGQzYy43MTcyMTczOTEzZDE5ZDQ1CiAgICAgODk3YzkzOGQ3YjU5MGRmYy5hZDNmY2RiNGM5OTk5NzM5LmE1ZmExMjlkNjI4NDkzNWIuNzBiMWQ0OTI2ZTgxODE5YQogICAgIGE0NTQ5NGNlZjU2NDA3ZGUuZGI2NjMzYTk3YzgzNzBlOC45NTNjZTQ5NGExY2U1N2JiLmQ3MDJlMmMyMTI1NDg0ZjYKICAgICA4NDMyYmViNjFiNTg2MTg1Ci1WTVVMUERfMjU2KG1lbSkKK1ZDTVBTRF8xMjhfMHgxRChtZW0pCiAgIGJlZm9yZQogICAgIDUxMGJlNTViYTY5OGQ2NzIuOThkNGIxMzUxOWQ4NTc0My43ZDkwNjU5OGUyNjQ0MWExLjcxM2UxM2JhN2NmYzk0MDkKICAgICAxYzVhZDI5YmNlMjA5Y2U5LmMzNDZlNTJjODM0MTNjZDguNmQ4YmRmNmQxODQ2Yzc4ZC45NTRlOWM3YjhmOTk4N2YxCkBAIC0xMzQ5NCwxMSArMTM0OTQsMTEgQEAKICAgYWZ0ZXIKICAgICA1MTBiZTU1YmE2OThkNjcyLjk4ZDRiMTM1MTlkODU3NDMuN2Q5MDY1OThlMjY0NDFhMS43MTNlMTNiYTdjZmM5NDA5CiAgICAgMWM1YWQyOWJjZTIwOWNlOS5jMzQ2ZTUyYzgzNDEzY2Q4LjZkOGJkZjZkMTg0NmM3OGQuOTU0ZTljN2I4Zjk5ODdmMQotICAgIDJkNzc2MWYzNzM3NjU0NTYuMWMyZDljMGFkYzljYThjYi43ZmYwMDAwMDAwMDAwMDAwLmM2OWNjNTkzMjUxYjYxZmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmQ4YmRmNmQxODQ2Yzc4ZC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgMTc4OWVlYTE2NzNhMTIyOC4yOTMzODI3ZTliMjRiMDQxLmFiMWY5Yzc5NjM0M2UxYjUuMjVjM2E5N2ZjZjUxN2YzZAogICAgIDQ5YzEyNTlhMzQ4NGZiZjkKIAotVk1VTFBEXzI1NihyZWcpCitWQ01QU0RfMTI4XzB4MUQocmVnKQogICBiZWZvcmUKICAgICAyNWZiZWIwMDQyNTcxZGZmLjAxMDExNjNlMGZlNDM5NDguMWU0NmUzYjE4MGI1Yjg2Yy5iMDUxZDc4OWFmNzVlZDQ4CiAgICAgMTRiZmY2MWQ5NDU1MjFmYi41NzFmZjQyN2M1MDZhM2EyLmI4N2I0YzI1MWM2YzQzNzguNzQ4MzRhMmUzYmQ5OWViZgpAQCAtMTM1MDYsMTIgKzEzNTA2LDEyIEBACiAgICAgYTAxMWNiMmM3NTAyYmU4My5iYTdkYzI4ZGNhZTIyZmI2LjRmN2YyMzgwZTg3OWQ1ZGQuYWExNmNhZWI4MTY4ZGUwYgogICAgIGQzMGZjZGRiNzNhY2U1MzgKICAgYWZ0ZXIKLSAgICA0OTI3M2IyZTg4YjIyZThjLmZmZjAwMDAwMDAwMDAwMDAuY2RhYzg2ODg0ODg0N2I1Yi5mZmYwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI4N2I0YzI1MWM2YzQzNzguZmZmZmZmZmZmZmZmZmZmZgogICAgIDE0YmZmNjFkOTQ1NTIxZmIuNTcxZmY0MjdjNTA2YTNhMi5iODdiNGMyNTFjNmM0Mzc4Ljc0ODM0YTJlM2JkOTllYmYKICAgICA3NDU3NDI1ZGM2MGE0Mzk4LmY2YWYwNDQ4YTVhYzBjNjMuNTUyMGI4NDYwYmQ0OGYwZi5kNDgwNzI1NTIyN2NiMDQ3CiAgICAgYTAxMWNiMmM3NTAyYmU4My5iYTdkYzI4ZGNhZTIyZmI2LjRmN2YyMzgwZTg3OWQ1ZGQuYWExNmNhZWI4MTY4ZGUwYgogICAgIGQzMGZjZGRiNzNhY2U1MzgKLVZNVUxQRF8yNTYobWVtKQorVkNNUFNEXzEyOF8weDFEKG1lbSkKICAgYmVmb3JlCiAgICAgMmIzOGY5MTExNTUxODFmYS5mNDM3OGRmNjNjY2FjZjY3LjdmNTVhYmUyNTFiNWM5YzguMDNlNTg5M2Y0ZmU4NTQ4ZgogICAgIDhlNWVjYTc4ODI2NTZkN2MuY2MxNjg1MjdiOGVkYjJmMS4yMjAzMzkzMzU1MzE5NWM0LmNlOWVlN2VmZGRhYzQ2ZDEKQEAgLTEzNTIxLDExICsxMzUyMSwxMSBAQAogICBhZnRlcgogICAgIDJiMzhmOTExMTU1MTgxZmEuZjQzNzhkZjYzY2NhY2Y2Ny43ZjU1YWJlMjUxYjVjOWM4LjAzZTU4OTNmNGZlODU0OGYKICAgICA4ZTVlY2E3ODgyNjU2ZDdjLmNjMTY4NTI3YjhlZGIyZjEuMjIwMzM5MzM1NTMxOTVjNC5jZTllZTdlZmRkYWM0NmQxCi0gICAgODAwMDAwMDAwMDAwMDAwMC43ZmYwMDAwMDAwMDAwMDAwLjYxNmEwOTk2OWU5MGE3NDEuOTI5NGNjYzM4YTMzNGZkNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMjAzMzkzMzU1MzE5NWM0LjAwMDAwMDAwMDAwMDAwMDAKICAgICBlNWNiNDc4ZTJmMDgyOTcyLjc3MmUwNDZmM2M3NmRjYTYuNmQxMDM5N2E0NTUwYjcyZC4xNDM5NzdkMmRkNjQ3NmIzCiAgICAgNDhiM2EyZGU4NjcwMmNhYgogCi1WTU9WVVBEX0V0b0dfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxRShyZWcpCiAgIGJlZm9yZQogICAgIDAyYWZiNThiYzYwMTQ1ZTMuOTFhY2VjMTVhN2FmNmYzZS4wMzAwODM1ZDdlZjM5YzI5LmNlMDdhMzQ4NjkwYzg0ZjEKICAgICA5ZTdhYWE0NDM4YTRmZTA3LmI4YjgyNTdkNWFmNGY3N2IuODJiYTI3NjNlM2ZiMWUwMS43YzA0YTJjMjdiYTE3MzUwCkBAIC0xMzUzMywxMiArMTM1MzMsMTIgQEAKICAgICBlY2FkMmY4ZjI0NGQzZmMxLmU3ODQ0NGE0ZTI4YWI3ZjYuY2QxOWQwNjM4Y2RmNTY2Mi4yZjNmNTQ2OWQ3ODNhYThkCiAgICAgZWMxNmZlNmY1OWU5NmFjMwogICBhZnRlcgotICAgIDAyYWZiNThiYzYwMTQ1ZTMuOTFhY2VjMTVhN2FmNmYzZS4wMzAwODM1ZDdlZjM5YzI5LmNlMDdhMzQ4NjkwYzg0ZjEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODJiYTI3NjNlM2ZiMWUwMS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgOWU3YWFhNDQzOGE0ZmUwNy5iOGI4MjU3ZDVhZjRmNzdiLjgyYmEyNzYzZTNmYjFlMDEuN2MwNGEyYzI3YmExNzM1MAogICAgIDc4NjA3Zjc3NzllNDkyYzIuMzZiYzZlYjM2NGU0N2I1NC41MmE5ZWRlYzA5MWI5ZGRiLjUzZDJiNGQ0OTYxYTQxNzUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTJhOWVkZWMwOTFiOWRkYi41M2QyYjRkNDk2MWE0MTc1CisgICAgZWNhZDJmOGYyNDRkM2ZjMS5lNzg0NDRhNGUyOGFiN2Y2LmNkMTlkMDYzOGNkZjU2NjIuMmYzZjU0NjlkNzgzYWE4ZAogICAgIGVjMTZmZTZmNTllOTZhYzMKLVZNT1ZVUERfRXRvR18xMjgobWVtKQorVkNNUFNEXzEyOF8weDFFKG1lbSkKICAgYmVmb3JlCiAgICAgNjUyMjJmZDEzOTU3M2M0NS41NmFkYjZmOGQ2NmMzZmFmLmE3ZGMyMjNhZjBmMjY5OGMuNTE1NmNjMzYwN2QxODU0MwogICAgIDc4MzA2MTdjOTJkOWRkM2MuMTJhYzExMWUyYWNjY2YzOS41MjkwODQ2M2E5Mjk0YjQzLjM4YWNkZWQwMTY3ZjY1MmEKQEAgLTEzNTQ4LDExICsxMzU0OCwxMSBAQAogICBhZnRlcgogICAgIDY1MjIyZmQxMzk1NzNjNDUuNTZhZGI2ZjhkNjZjM2ZhZi5hN2RjMjIzYWYwZjI2OThjLjUxNTZjYzM2MDdkMTg1NDMKICAgICA3ODMwNjE3YzkyZDlkZDNjLjEyYWMxMTFlMmFjY2NmMzkuNTI5MDg0NjNhOTI5NGI0My4zOGFjZGVkMDE2N2Y2NTJhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE3ZGMyMjNhZjBmMjY5OGMuNTE1NmNjMzYwN2QxODU0MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41MjkwODQ2M2E5Mjk0YjQzLjAwMDAwMDAwMDAwMDAwMDAKICAgICBkOTgyYmQ1ODIxNGI3YzQwLmYwZDUyZjUxMmE4MDhkZDAuZDkzYmM1MWE4ZDMxOTJjMy5hM2QyMzAwYTYzM2QyYmI4CiAgICAgZGYzYTY5ODFkNzY1ODliOAogCi1WTU9WVVBEX0V0b0dfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxRShyZWcpCiAgIGJlZm9yZQogICAgIGVlZWJhNzZmNTE3ODg4NmQuZGY1ZWRmNjM4ZjUyZjFhMy5jYTk5ZWMzNjBlZWQzNDM1LjZjY2I5YjgxZjExYjZlZTMKICAgICAyZDMxZTc0MTZiMDM2NTgzLmVkNmJmMjY1ZTY5ZTI1MmQuNjY4YjZiODkwNGNhNWJlNS41YmU2ZTYyYTZmMDM2YmQ1CkBAIC0xMzU2MCwxMiArMTM1NjAsMTIgQEAKICAgICBhY2FiNTkzZGYwYWVhODg1Ljk2NGNlMDAzYzAzMmI5NjUuNTQyYmEzMjU5NzA5MTdkOS5iOWYwYzlmMzJmZmViOGQ5CiAgICAgZTE3NjU4ZWFhOTI5N2Y0NAogICBhZnRlcgotICAgIGVlZWJhNzZmNTE3ODg4NmQuZGY1ZWRmNjM4ZjUyZjFhMy5jYTk5ZWMzNjBlZWQzNDM1LjZjY2I5YjgxZjExYjZlZTMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjY4YjZiODkwNGNhNWJlNS5mZmZmZmZmZmZmZmZmZmZmCiAgICAgMmQzMWU3NDE2YjAzNjU4My5lZDZiZjI2NWU2OWUyNTJkLjY2OGI2Yjg5MDRjYTViZTUuNWJlNmU2MmE2ZjAzNmJkNQogICAgIGY5NTgyMzYxYzE5MTVjYTguZTE3Nzc0NGM0MjNhZDQwYS4yMGY3YWFiNGE4YTUzZDhkLjgxNTkyMTAxMjZmNTQ1YzMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjBmN2FhYjRhOGE1M2Q4ZC44MTU5MjEwMTI2ZjU0NWMzCisgICAgYWNhYjU5M2RmMGFlYTg4NS45NjRjZTAwM2MwMzJiOTY1LjU0MmJhMzI1OTcwOTE3ZDkuYjlmMGM5ZjMyZmZlYjhkOQogICAgIGUxNzY1OGVhYTkyOTdmNDQKLVZNT1ZVUERfRXRvR18xMjgobWVtKQorVkNNUFNEXzEyOF8weDFFKG1lbSkKICAgYmVmb3JlCiAgICAgZDRiOTRjZDNhZDgyNTczMC5hMzc4ODQ0MDkzZTc4NmM5LmU3YjdiMjc2N2M5MzkxNmIuNWQ3MjU0NDc2ZDgyMjU3NAogICAgIDZkODMyMDliNWExNmZjYzguM2EwOWExZDU0N2M3MzIxZS5iMjg0NjY5MDkxNjgxODQ4Ljk5MTdiOTg1YzU5ZGEzMGEKQEAgLTEzNTc1LDExICsxMzU3NSwxMSBAQAogICBhZnRlcgogICAgIGQ0Yjk0Y2QzYWQ4MjU3MzAuYTM3ODg0NDA5M2U3ODZjOS5lN2I3YjI3NjdjOTM5MTZiLjVkNzI1NDQ3NmQ4MjI1NzQKICAgICA2ZDgzMjA5YjVhMTZmY2M4LjNhMDlhMWQ1NDdjNzMyMWUuYjI4NDY2OTA5MTY4MTg0OC45OTE3Yjk4NWM1OWRhMzBhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU3YjdiMjc2N2M5MzkxNmIuNWQ3MjU0NDc2ZDgyMjU3NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMjg0NjY5MDkxNjgxODQ4LjAwMDAwMDAwMDAwMDAwMDAKICAgICAwNWRmNTk3NDE4MWM5YmFmLmI5YWE5ZDZhNGZhZGUzYWQuMjI3NDY2NmYzNzlmMjIzNS4xN2FlOGIwYTZjZTdkZGRiCiAgICAgMTAzOGYxMjhmNDJlMTI2YwogCi1WTU9WVVBEX0V0b0dfMTI4KHJlZykKK1ZDTVBTRF8xMjhfMHgxRShyZWcpCiAgIGJlZm9yZQogICAgIGFjNTFmYTEzNmQ0NmE2YTkuYmMwOWI2NWU2M2E3MGU1NS41ODUyNzU0MWRjY2I2MDNmLjgwMmVhOTBhMDAxOTFkOWQKICAgICA0NTQ0YTIzODc2YmNkNjNlLjg5ZWJlMmQ2YzU5YzNlNTcuMDdlZjJlNWNlYWMxOWI5Mi5jNjdhYmVmZDkzMzhiNjhjCkBAIC0xMzU4NywxMiArMTM1ODcsMTIgQEAKICAgICBlMmVjYzBkYmEyZWZmYTFlLmQ5MDY5ZDFmM2ZmNWMzMjMuMDUzNjM0MDlmNjYxM2EyZS43ZWY5NGY5Yzg1OTJiNmFkCiAgICAgYTdjM2MzMjAxZGU1OTQzOAogICBhZnRlcgotICAgIGFjNTFmYTEzNmQ0NmE2YTkuYmMwOWI2NWU2M2E3MGU1NS41ODUyNzU0MWRjY2I2MDNmLjgwMmVhOTBhMDAxOTFkOWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDdlZjJlNWNlYWMxOWI5Mi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNDU0NGEyMzg3NmJjZDYzZS44OWViZTJkNmM1OWMzZTU3LjA3ZWYyZTVjZWFjMTliOTIuYzY3YWJlZmQ5MzM4YjY4YwogICAgIDM5NWZlNTAxYTgxYmRlZDYuNGE1MTVjYzc1YTA4ZTZlMy4yMmNjYzUyNTE0MTljZjUzLmQxMjUyMjM0MGMwNmFiMmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjJjY2M1MjUxNDE5Y2Y1My5kMTI1MjIzNDBjMDZhYjJkCisgICAgZTJlY2MwZGJhMmVmZmExZS5kOTA2OWQxZjNmZjVjMzIzLjA1MzYzNDA5ZjY2MTNhMmUuN2VmOTRmOWM4NTkyYjZhZAogICAgIGE3YzNjMzIwMWRlNTk0MzgKLVZNT1ZVUERfRXRvR18xMjgobWVtKQorVkNNUFNEXzEyOF8weDFFKG1lbSkKICAgYmVmb3JlCiAgICAgMmE0ZWY5YWJlZDBkMDFmOS45ZTM4MmUzM2ZkYzU2NWMyLjE0ZDcyMmNhOTA3MjkxNDMuMGM3YTc5NzUyZDI1MTZjZQogICAgIGUxNjg2ZTJiMTMxNWI4MWQuYzc4ZjJiNzM1ODI4NWM2ZC5kNTkxNjhiMjY4ODgwYjcwLjkzZTI4ZmQzNTVmMDlmZTAKQEAgLTEzNjAyLDExICsxMzYwMiwxMSBAQAogICBhZnRlcgogICAgIDJhNGVmOWFiZWQwZDAxZjkuOWUzODJlMzNmZGM1NjVjMi4xNGQ3MjJjYTkwNzI5MTQzLjBjN2E3OTc1MmQyNTE2Y2UKICAgICBlMTY4NmUyYjEzMTViODFkLmM3OGYyYjczNTgyODVjNmQuZDU5MTY4YjI2ODg4MGI3MC45M2UyOGZkMzU1ZjA5ZmUwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE0ZDcyMmNhOTA3MjkxNDMuMGM3YTc5NzUyZDI1MTZjZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNTkxNjhiMjY4ODgwYjcwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA1ZTc0MDFiN2QwZjZmNzNkLmQ0OGVjMzYwNzdjNWRkOGEuNWNlYTI0ZWQxZWI0ZjZhMC45MTUwMWYxYWU1Y2JhYzA4CiAgICAgYzBlZjkxZGE4NmY0YTc3NgogCi1WQUREUERfMjU2KHJlZykKK1ZQU0hVRkJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZGZlMmM0M2Q4NzU0M2YwNy5kZGZmMTg5YjlmZThmNjkwLjZmY2Q1NmU0NzUxOGRmNTQuZGIyMzkzMTczNGUyZGZmYgogICAgIDQ5NzZiNGFmODU3OGIxNjQuMDA0ODVlMjMzM2U5MzBmNi5lOTQ3NjgwMWUxMjk1ZGQ1LjUwNzNiMTMwNDJkYTY0MTIKQEAgLTEzNjE0LDEyICsxMzYxNCwxMiBAQAogICAgIDczYjJiYzcwZTYzOTEzMzkuYTU0NDYzZDAxYjRkNDVhYi5lNTFkZmFiNjc0YjFiY2FmLjhmOGNlZmRiYjQ1ODM1MjcKICAgICAxMWVjMDc0NjUwZjdmODdjCiAgIGFmdGVyCi0gICAgNWNmODVkOWMxYmViMzkzYy5hNDFiNGQzYmE4MDc2MTliLmU5NDc2ODAxZTEyOTVkZDUuNTA3M2IxMzA0MmRhNjQxMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDVkMDA0MjUwMDAwMDAwLjAwMDAwMGRhMzAwMGRhZGEKICAgICA0OTc2YjRhZjg1NzhiMTY0LjAwNDg1ZTIzMzNlOTMwZjYuZTk0NzY4MDFlMTI5NWRkNS41MDczYjEzMDQyZGE2NDEyCiAgICAgNWNmODVkOWMxYmViMzkzYy5hNDFiNGQzYmE4MDc2MTliLjljNDlmNjIzNTc4MjkzYmEuOThhOGZjMjI2NGE4NDIxMgogICAgIDczYjJiYzcwZTYzOTEzMzkuYTU0NDYzZDAxYjRkNDVhYi5lNTFkZmFiNjc0YjFiY2FmLjhmOGNlZmRiYjQ1ODM1MjcKICAgICAxMWVjMDc0NjUwZjdmODdjCi1WQUREUERfMjU2KG1lbSkKK1ZQU0hVRkJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZmE5NGJlNGY1NDkwNDkzZS5lYWYwY2M5NzgxZWU3YTA3LmRmOGUxYmNjYThjODk3NTEuMjExMDcyMjZkNDQyMTU1ZgogICAgIDI2NTA5MmUyZGIzMGUyOTguMWMwMDg5N2U4OTk3YWI1My4yZWM3ZjExYzZhODMxNGI5LmFhNmQ1OWUwMTJjMGRhNzcKQEAgLTEzNjI5LDExICsxMzYyOSwxMSBAQAogICBhZnRlcgogICAgIGZhOTRiZTRmNTQ5MDQ5M2UuZWFmMGNjOTc4MWVlN2EwNy5kZjhlMWJjY2E4Yzg5NzUxLjIxMTA3MjI2ZDQ0MjE1NWYKICAgICAyNjUwOTJlMmRiMzBlMjk4LjFjMDA4OTdlODk5N2FiNTMuMmVjN2YxMWM2YTgzMTRiOS5hYTZkNTllMDEyYzBkYTc3Ci0gICAgZmE5NGJlNGY1NDkwNDkzZS5lYWYwY2M5NzgxZWU3YTA3LmRmOGUxYmNjYThjODk3NTEuYWE2ZDU5ZTAxMmMwZGE3NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwNmEwMDAwMDAwMGRhLmRhNzdjMDZkMDBjMDU5MmUKICAgICBiNzMzN2U1NmU0YjJkZWM3LjI2YzJmYTM4NGVmMzViMTQuN2IzMWU4NmFmZWVhN2Y4Mi4xNjk5NjRkZTk5YjM5NzhkCiAgICAgYjFmZjgxZmExYTQxMDdlNAogCi1WQUREUERfMjU2KHJlZykKK1ZQU0hVRkJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMGEwMWZkMTBlYWVjZDI1Mi5kNGYyOGUxMDllYWRiOWYzLmI0MGNhN2UzNDNiZTUxZTEuMzFmYjAwM2YwOGFkZTQzYgogICAgIDdkZThkNDhiYTQ0MDM2ODQuYTRmNWFiMDM0YmRlY2M2OC42ZjU3ZjFmZTE0YWMwMWRjLjZjZTIyNzE4YjhlMjY0NjYKQEAgLTEzNjQxLDEyICsxMzY0MSwxMiBAQAogICAgIDIxOWQ4NDYwNDgxNWIzZTIuY2RmN2Y5NDhlZjEzOGVkYi5kODFmNGQzMWJkMjM3ZTA5LmUxM2I5MDg2NzhjYmE0YzMKICAgICBkMzQ0Y2FmM2MwOTlkYzRlCiAgIGFmdGVyCi0gICAgN2RlOGQ0OGJhNDQwMzY4NC5hNGY1YWIwMzRiZGVjYzY4LjZmNTdmMWZlMTRhYzAxZGMuNmNlMjI3MThiOGUyNjQ2NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDU3YWMwMDAwLmRjMDAwMDAwMDEwMDAwNmYKICAgICA3ZGU4ZDQ4YmE0NDAzNjg0LmE0ZjVhYjAzNGJkZWNjNjguNmY1N2YxZmUxNGFjMDFkYy42Y2UyMjcxOGI4ZTI2NDY2CiAgICAgNjYwMzAyZDdlNWNhNmQyNS4wMzA4NTAxZDA3NTFkNTUxLmIxZWZkNGY0NWU0YWE3YjAuMDhiNGQ5ZTAyOTkyYmEyZgogICAgIDIxOWQ4NDYwNDgxNWIzZTIuY2RmN2Y5NDhlZjEzOGVkYi5kODFmNGQzMWJkMjM3ZTA5LmUxM2I5MDg2NzhjYmE0YzMKICAgICBkMzQ0Y2FmM2MwOTlkYzRlCi1WQUREUERfMjU2KG1lbSkKK1ZQU0hVRkJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYmE5YjAyMTQxZTA2MWZmYi4wYTAxNTQ5MjZhYWQ0NjY3LmRlOGQyMjcyMWUyZmI0MzIuM2UzNTU2MjFjY2MzYzM5NQogICAgIDcxMGNiNGQ1YWQyMDI4ZjcuN2Q3ZDcwZDllNjFmNjA1Zi4xMjk4NDg4NmIxYjEwMzgxLjQxN2JlZDMwMjdiNmIyZmUKQEAgLTEzNjU2LDExICsxMzY1NiwxMSBAQAogICBhZnRlcgogICAgIGJhOWIwMjE0MWUwNjFmZmIuMGEwMTU0OTI2YWFkNDY2Ny5kZThkMjI3MjFlMmZiNDMyLjNlMzU1NjIxY2NjM2MzOTUKICAgICA3MTBjYjRkNWFkMjAyOGY3LjdkN2Q3MGQ5ZTYxZjYwNWYuMTI5ODQ4ODZiMWIxMDM4MS40MTdiZWQzMDI3YjZiMmZlCi0gICAgNzEwY2I0ZDVhZDIwMjhmNy43ZDdkNzBkOWU2MWY2MDVmLmRlOGQyMjcyMWUyZmI0MzIuNDE3YmVkMzAyN2I2YjJmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwYjZiNjk4MTIwMGI2Ljk4ZWQ3YmIyMDAwMDAwMDAKICAgICBjNDZjNzZlOGQwODk3ZjhiLjcxZTg3YTU3NWViZjFjNWEuNTIzODc3MWM3MjE5MGFiOS44OWNiYjI1YzMzYzg3ZDE4CiAgICAgODg2Y2Q5NTAxY2ZkZDEyMgogCi1WQUREUERfMjU2KHJlZykKK1ZQU0hVRkJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOTI2ZDdjMTRjMWI2YmZiOS4xN2YyN2YxMjliZjA0NTdiLmFhNzA1ZjY2OTEwNTM1YjUuMTc2Njc5NzZkNzE2M2JmYQogICAgIDA0MWM5OTEzYmY3ZjgyOGEuYWFjMmYyOGMwODM0YzE2OS5kYzNlODAzOThmNTRjNjM0LjZmMzg2ODZhMTBhYTg1ZTMKQEAgLTEzNjY4LDEyICsxMzY2OCwxMiBAQAogICAgIDkxYjAyZjcxMzQ2ZDdhODguMDQ3MDA3MjAzNjgwY2VmMi5hMGUwNjNlMDViM2U0MDRiLjQ3ZjdmOWQxNmNjNDUyNjAKICAgICA3ZjdkOTQxYmM3NjM0ZTRjCiAgIGFmdGVyCi0gICAgM2JjMzJiYjhiMWUyNTg0MC41YmE4NGI0MjMzNjBiMTgyLjY1YTBkODNlZjQzODBiODIuNmYzODY4NmExMGFhODVlMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ODAwMDAzZTAwMzQ4ZjAwLjY4NTQwMDAwMzQwMDAwMDAKICAgICAwNDFjOTkxM2JmN2Y4MjhhLmFhYzJmMjhjMDgzNGMxNjkuZGMzZTgwMzk4ZjU0YzYzNC42ZjM4Njg2YTEwYWE4NWUzCiAgICAgM2JjMzJiYjhiMWUyNTg0MC41YmE4NGI0MjMzNjBiMTgyLjY1YTBkODNlZjQzODBiODIuMzU3YWJlZTQzOGUwYTNhMgogICAgIDkxYjAyZjcxMzQ2ZDdhODguMDQ3MDA3MjAzNjgwY2VmMi5hMGUwNjNlMDViM2U0MDRiLjQ3ZjdmOWQxNmNjNDUyNjAKICAgICA3ZjdkOTQxYmM3NjM0ZTRjCi1WQUREUERfMjU2KG1lbSkKK1ZQU0hVRkJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYmJkNjBiYjA2NWM4NTI4Zi42MzJkOWZhOWUzYWMyNzBlLjgzZTZhMDEyMzBhMGQ3ZTQuZTk0YjFlOGE2MGYxYTAzZAogICAgIGQ1Y2ZkYjdhNjMwMDFiNTguMGQ4Nzc5Y2M1YjJhOTk3ZC5iM2Q2OTQwNDNiY2Q4Njg0LjliMmQwM2FhYTBkZTY4MDIKQEAgLTEzNjgzLDExICsxMzY4MywxMSBAQAogICBhZnRlcgogICAgIGJiZDYwYmIwNjVjODUyOGYuNjMyZDlmYTllM2FjMjcwZS44M2U2YTAxMjMwYTBkN2U0LmU5NGIxZThhNjBmMWEwM2QKICAgICBkNWNmZGI3YTYzMDAxYjU4LjBkODc3OWNjNWIyYTk5N2QuYjNkNjk0MDQzYmNkODY4NC45YjJkMDNhYWEwZGU2ODAyCi0gICAgZDVjZmRiN2E2MzAwMWI1OC42MzJkOWZhOWUzYWMyNzBlLmIzZDY5NDA0M2JjZDg2ODQuZTk0YjFlOGE2MGYxYTAzZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDBkZTAyMDAwMDAwLjAwM2JkNjAwMDIwMDAwOTQKICAgICAxN2QxNzI2MmVlMTVlYzI3LjU5MDE1ODgzMTMxM2JmYzguOTU1MzdiOThmNTdiYzk4Mi5hZjg2NDBmYTNmOTMxZmI2CiAgICAgYzc5NTkwMDFkNzc0ODZmZQogCi1WU1VCUERfMjU2KHJlZykKK1ZDVlRUU0QyU0lfMzIocmVnKQogICBiZWZvcmUKICAgICBiYTRhZmEyZDE4YmU0NWM5LmY3NzEzMjU3YjMwYzZiODUuYjNiYTU2ZjA4Yzk3ZWJmYy5mZjc4NjUxM2RjMTVkNDM2CiAgICAgZTJmMjdjZWJhMWZkOTdjNC4yNWUyM2IzMjQ3MDU5ZjE4LjU1N2ZhY2Y3M2U4YWNjY2EuOGE0NzlhM2Q0NWViNzc0OQpAQCAtMTM2OTUsMTIgKzEzNjk1LDEyIEBACiAgICAgNDU0YmI1YzlmNDhiZThmOS5kZjYyMTQ0YTRkMmQxNThiLmUxNjA1NTg3YmFlZWEwZTIuNzQxMmQyNTIwYjdjNmYzYgogICAgIDhhYTdjZDE1YTA1MDNkNzIKICAgYWZ0ZXIKLSAgICBlMmYyN2NlYmExZmQ5N2M0LmZmZWUwN2RmYzYwYzQ0MGIuNTU3ZmFjZjczZThhY2NjYS45MzhjOTUwNDRiMGE2YmU3CisgICAgYmE0YWZhMmQxOGJlNDVjOS5mNzcxMzI1N2IzMGM2Yjg1LmIzYmE1NmYwOGM5N2ViZmMuZmY3ODY1MTNkYzE1ZDQzNgogICAgIGUyZjI3Y2ViYTFmZDk3YzQuMjVlMjNiMzI0NzA1OWYxOC41NTdmYWNmNzNlOGFjY2NhLjhhNDc5YTNkNDVlYjc3NDkKICAgICA5ZGRhMTFhNTBiYmRiYTliLjdmZWUwN2RmYzYwYzQ0MGIuOWI5ZDU4MDZjNDc4OWZkZC4xMzhjOTUwNDRiMGE2YmU3CiAgICAgNDU0YmI1YzlmNDhiZThmOS5kZjYyMTQ0YTRkMmQxNThiLmUxNjA1NTg3YmFlZWEwZTIuNzQxMmQyNTIwYjdjNmYzYgotICAgIDhhYTdjZDE1YTA1MDNkNzIKLVZTVUJQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZDVlRUU0QyU0lfMzIobWVtKQogICBiZWZvcmUKICAgICAzMjE1MDMzODI3OGY5MmI3LjM4OTQ2NGMyZjhmMzVkOGEuMjIwYWRkNjBmNzc1Y2ZjNC44MzE0YTBlOGJkNzcwYTg0CiAgICAgNDYyOWVmYTdiYjQ3MmEzNy5kMDAwMWJmYmIyN2Y1N2ZjLjI0YjJkZTBiZTFlZjJlZTEuZGQwNTMzOTQ2OWEwMWE3MApAQCAtMTM3MTAsMTEgKzEzNzEwLDExIEBACiAgIGFmdGVyCiAgICAgMzIxNTAzMzgyNzhmOTJiNy4zODk0NjRjMmY4ZjM1ZDhhLjIyMGFkZDYwZjc3NWNmYzQuODMxNGEwZThiZDc3MGE4NAogICAgIDQ2MjllZmE3YmI0NzJhMzcuZDAwMDFiZmJiMjdmNTdmYy4yNGIyZGUwYmUxZWYyZWUxLmRkMDUzMzk0NjlhMDFhNzAKLSAgICA0NjI5ZWZhN2JiNDcyYTM3LmQwMDAxYmZiYjI3ZjU3ZmMuMjRiMmRlMGJlMWVmMmI4NS5kZDA1MzM5NDY5YTAxYTcwCisgICAgYTNiMDBkNGU3ODgzYzExZS42YWRhZDVlMmJmYmQxMGY4LmMyMjU5NDM5MjdhOGVlMGYuNGI3ZjBjZjY1OGYzMGM1MgogICAgIDI1NzNkOTE5N2I1MDEyOTcuNjM3MDhlZTJiYTM5YzUyZC5kNjMxNzlkNGUzYWJjYTc5LjI5Y2QyNjdjMjlmZjFiZDUKLSAgICBkMzNjN2Q5MTc2NGQ4NWE2CisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WU1VCUERfMjU2KHJlZykKK1ZDVlRUU0QyU0lfMzIocmVnKQogICBiZWZvcmUKICAgICBhNDE4MGRhMmRiNmI4NDcwLmE5NDFjZmY0ZTBiOWRhY2YuMTUwYzQyNjczZjdkYjI0NS4zZGEwMGJjYTM0MDQ3ZjRjCiAgICAgZmFhZGQzMTlmNGU0NTRlMC4wOWU1NmNjY2MyY2FkNGYxLmRkZmJlZWRlZWIxNzEyZWQuZDM0MGM1MDYzM2JmYzliNApAQCAtMTM3MjIsMTIgKzEzNzIyLDEyIEBACiAgICAgYTIzMmVlZWRiNTE5NWI2MS5kMGRlODgxZjZlMTU1MmE2LjIwMDIxYTRkMjc3YjFlOWIuZmMzZGEyMDBiMThlMGJmMQogICAgIDQ3MzRiZDk2NjdiODdiMWYKICAgYWZ0ZXIKLSAgICBmYWFkZDMxOWY0ZTQ1NGUwLmEyMmEyYjhiM2Q4ZmJlMmEuZGRmYmVlZGVlYjE3MTJlZC5mNGRiMjM3NGZmZTk2M2RjCisgICAgYTQxODBkYTJkYjZiODQ3MC5hOTQxY2ZmNGUwYjlkYWNmLjE1MGM0MjY3M2Y3ZGIyNDUuM2RhMDBiY2EzNDA0N2Y0YwogICAgIGZhYWRkMzE5ZjRlNDU0ZTAuMDllNTZjY2NjMmNhZDRmMS5kZGZiZWVkZWViMTcxMmVkLmQzNDBjNTA2MzNiZmM5YjQKICAgICAzMDQ3Y2E2MzVmNDUzM2EyLjIyMmEyYjhiM2Q4ZmJlMmEuMTc4OThjYjE1YTkzMjJkMC43NGRiMjM3NGZmZTk2M2RjCiAgICAgYTIzMmVlZWRiNTE5NWI2MS5kMGRlODgxZjZlMTU1MmE2LjIwMDIxYTRkMjc3YjFlOWIuZmMzZGEyMDBiMThlMGJmMQotICAgIDQ3MzRiZDk2NjdiODdiMWYKLVZTVUJQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwODAwMDAwMDAKK1ZDVlRUU0QyU0lfMzIobWVtKQogICBiZWZvcmUKICAgICAzMThiZjAyMjNkNzU2ZjkxLmFiYjkzYjIxOTRlYzA5YzkuZWZjYmZmNzI3MTY4NGQ5MC41MmIxOTQxZmVlNWQ0MWY5CiAgICAgOTYwZGI3OTA0ZWQwYTU3My5hOTJhYWU2ZDk4NGE3ODg4LjViYmUwZDcyNjA5MjZhMTUuMGFlM2Y0OTE0Y2M1Yzg5NwpAQCAtMTM3MzcsMTEgKzEzNzM3LDExIEBACiAgIGFmdGVyCiAgICAgMzE4YmYwMjIzZDc1NmY5MS5hYmI5M2IyMTk0ZWMwOWM5LmVmY2JmZjcyNzE2ODRkOTAuNTJiMTk0MWZlZTVkNDFmOQogICAgIDk2MGRiNzkwNGVkMGE1NzMuYTkyYWFlNmQ5ODRhNzg4OC41YmJlMGQ3MjYwOTI2YTE1LjBhZTNmNDkxNGNjNWM4OTcKLSAgICBiMThiZjAyMjNkNzU2ZjkxLjJiYjkzYjIxOTRlYmZjNzIuNmZjYmZmNzI3MTY4NGQ5MC5kMmIxOTQxZmVlNWQ0MWY5CisgICAgNTI4NzhlY2NiN2Q2ZDdmMi5mNmNmNDEzYjVjYzBlNTQ4LmYwODMyZDBhNWFhMTY2NjAuYTRlNTM4MTFkYzNlZWYyMQogICAgIDQxYzVmMmMzOTM5MmMxM2EuZjBmNWYyZjk3ZGQ5OGNiNS44YWU1ZGIyNjc5YTBmZDllLjdjMDE1YTBhM2I1NGYyNDIKLSAgICBlZTg0NThlNzA0OTMwY2E3CisgICAgMDAwMDAwMDA4MDAwMDAwMAogCi1WU1VCUERfMjU2KHJlZykKK1ZDVlRUU0QyU0lfMzIocmVnKQogICBiZWZvcmUKICAgICA1NmJhMmUxNmQ0ODg3YWZiLjNmOTM1ZTVmZmUxMDIxNzYuZjJlOGJjMTI5NjIyYTk3Yy4wNWIyOTNiMmQ5OWNlYmZiCiAgICAgMTBlZWQ2MDI0NmJlNzhlYi4yOGJkNGU4ZTE1NWRiMWQzLjU3ZjM5Y2YyNDMyNjc4NDkuM2RiNGQxOWE5N2EwZWJhMgpAQCAtMTM3NDksMTIgKzEzNzQ5LDEyIEBACiAgICAgZWE4NDkxYzI4MjFlMTM0ZS4yYjU0YWE1MmI2OTE1NDlmLmJlODU4YWI3Y2I5MDFhYTMuNTM4YWQxMmU5YWYxMTQ4MAogICAgIGVhZjY4YWIyMTk1NmI1MGYKICAgYWZ0ZXIKLSAgICBmODZlNGUxN2Y3YzE0MjIzLjU4MGYzZTNiZjQ4NDJlN2QuZmQ2NDhjMDUyMTcxMzRjNy4zZGI0ZDE5YTk3YTBlYmEyCisgICAgNTZiYTJlMTZkNDg4N2FmYi4zZjkzNWU1ZmZlMTAyMTc2LmYyZThiYzEyOTYyMmE5N2MuMDViMjkzYjJkOTljZWJmYgogICAgIDEwZWVkNjAyNDZiZTc4ZWIuMjhiZDRlOGUxNTVkYjFkMy41N2YzOWNmMjQzMjY3ODQ5LjNkYjRkMTlhOTdhMGViYTIKICAgICA3ODZlNGUxN2Y3YzE0MjIzLmQ4MGYzZTNiZjQ4NDJlN2QuN2Q2NDhjMDUyMTcxMzRjNy4wZGI4MTJjYWNlYjhiYWMwCiAgICAgZWE4NDkxYzI4MjFlMTM0ZS4yYjU0YWE1MmI2OTE1NDlmLmJlODU4YWI3Y2I5MDFhYTMuNTM4YWQxMmU5YWYxMTQ4MAotICAgIGVhZjY4YWIyMTk1NmI1MGYKLVZTVUJQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZDVlRUU0QyU0lfMzIobWVtKQogICBiZWZvcmUKICAgICBhZWM4Yjk0MzY0ZjM1ODk5LmMyN2Q5YjZkODQ2MDI4MTkuZmM1YTBmYmU3NzkxZGU2Ni43N2EzOTE3NGRlMGU2NTg5CiAgICAgN2FjY2RiY2I5OWQ1YmE0OS41Y2E1Njg4NTk4MTRiYzJmLjI5ZWJlODZkNTQ4Zjg5ZmQuMDUwYTlkYTlmNjc3NTIyNApAQCAtMTM3NjQsMTEgKzEzNzY0LDExIEBACiAgIGFmdGVyCiAgICAgYWVjOGI5NDM2NGYzNTg5OS5jMjdkOWI2ZDg0NjAyODE5LmZjNWEwZmJlNzc5MWRlNjYuNzdhMzkxNzRkZTBlNjU4OQogICAgIDdhY2NkYmNiOTlkNWJhNDkuNWNhNTY4ODU5ODE0YmMyZi4yOWViZTg2ZDU0OGY4OWZkLjA1MGE5ZGE5ZjY3NzUyMjQKLSAgICA3YWNjZGJjYjk5ZDViYTQ5LjVjYTU2ODg1OTgxNGJjMmYuN2M1YTBmYmU3NzkxZGU2Ni5mN2EzOTE3NGRlMGU2NTg5CisgICAgMmNjZDZiMzhkNDA3OTc0Yy4xMzQ4ZjU3NzVhYzUwZDNkLjhkZDRiMTRiNjg5NzExOTEuYzIwNmFiYzBhZDU4MWQyMAogICAgIDlmOThlNTc1MzA5NWFhY2QuNDViMjNkYWU2N2ZmNTVlZS4wNGUxZTc0MmQwYjYzMjRlLjBiZTNiNjI3YTIzYzAyMmIKLSAgICAzZGVkYjk0ODZlYWYzZGVlCisgICAgMDAwMDAwMDA4MDAwMDAwMAogCi1WRElWUERfMjU2KHJlZykKK1ZDVlRUU0QyU0lfNjQocmVnKQogICBiZWZvcmUKICAgICBiMjZmYjM5MWIwM2UwOTE4LmFlZjljNTZlYzk4Y2IwZjkuNGQyZTNjOTU1YjRlZDFmMC42OWRkMDQzZmE3ZjdhNzVmCiAgICAgYzdiNjlkNmQwMTc0YTM1My4zN2JjODcwZmJjZjc2NWZiLjg3MDllZTlhZDEzZmJjZWMuOWE5Njg2MmUwYTY2MmRmMApAQCAtMTM3NzYsMTIgKzEzNzc2LDEyIEBACiAgICAgNDFjNDM1OGU0NjA2MzBhZS4yMzk4YTNmOTFlNWFjYjM0LjAwMGQ1Y2FiYjQzNWQzODkuY2M2YWE2OTNlMjAwNWI0NgogICAgIDg2MWUzZGUxOGY0MzdiNjEKICAgYWZ0ZXIKLSAgICAyZjk3MDFlMTc3MDJlY2QxLjYxZmVjN2YzNDA5YmRjNzQuODAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCisgICAgYjI2ZmIzOTFiMDNlMDkxOC5hZWY5YzU2ZWM5OGNiMGY5LjRkMmUzYzk1NWI0ZWQxZjAuNjlkZDA0M2ZhN2Y3YTc1ZgogICAgIGM3YjY5ZDZkMDE3NGEzNTMuMzdiYzg3MGZiY2Y3NjVmYi44NzA5ZWU5YWQxM2ZiY2VjLjlhOTY4NjJlMGE2NjJkZjAKICAgICBkODBmNzQ0ODAwZGQ0NjRiLjE1YWRhODQ0MjVlMzg0MDAuNGU5MDRmMjg2NTVkNTQ5MS43MWQ2ZThmYzE0MTA4MDJmCiAgICAgNDFjNDM1OGU0NjA2MzBhZS4yMzk4YTNmOTFlNWFjYjM0LjAwMGQ1Y2FiYjQzNWQzODkuY2M2YWE2OTNlMjAwNWI0NgotICAgIDg2MWUzZGUxOGY0MzdiNjEKLVZESVZQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZDVlRUU0QyU0lfNjQobWVtKQogICBiZWZvcmUKICAgICA3YWJlMjdkMTM3ZTM5Y2FkLjVmMjFkYmFiNzE3YTliMjUuM2Y0OGY0MWFjNjZhZjRjMi5mOGNkMTA4ZjU5NTI3NTgwCiAgICAgODUxNmUyNGZmN2VmN2E1Ni44Yzc0NjIwYjFkYzVjMzVmLjQzOGIxNzkzMzcxZmJiZDcuOTExYjY3NDBmMTQwNzgyMwpAQCAtMTM3OTEsMTEgKzEzNzkxLDExIEBACiAgIGFmdGVyCiAgICAgN2FiZTI3ZDEzN2UzOWNhZC41ZjIxZGJhYjcxN2E5YjI1LjNmNDhmNDFhYzY2YWY0YzIuZjhjZDEwOGY1OTUyNzU4MAogICAgIDg1MTZlMjRmZjdlZjdhNTYuOGM3NDYyMGIxZGM1YzM1Zi40MzhiMTc5MzM3MWZiYmQ3LjkxMWI2NzQwZjE0MDc4MjMKLSAgICA4MDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuNDQzMTVmMDg5NmRiNWQyZi4wMDAwMDAwMDAwMDAwMDAwCisgICAgODRmMmU5NDdlYjcwZDA4Ny4yNTA4YzcxYmU1NzRlNjA2LjBkMmI4ODUxOGQ4NGRlOWYuMjk0NTVkMmExODhjMTYxZQogICAgIDUxMWRiOWE1MmU3NDViNmQuODYyODA0NDU2NTEyM2VjNi43N2Y1YzQzZWU1YTUxNzQ1LjFhOTVlZmJhNjhjMThjMWMKLSAgICBjMjU5MTc1YTgwNmIxNWNhCisgICAgODAwMDAwMDAwMDAwMDAwMAogCi1WRElWUERfMjU2KHJlZykKK1ZDVlRUU0QyU0lfNjQocmVnKQogICBiZWZvcmUKICAgICA3YmRiZDM3OGY5MTZlZWQ0LmNhNjRjYzU1ZGMwNmQ3MzMuMGIyMTE3ZjYzYTJjMDg0ZC41ZWI1NDY0ODVhOGUyM2Y1CiAgICAgYTM2ODFmN2U3MTRmNTNlNS5jOTk0YTA0MzEyMzJmZjA3LjEwM2ZmYjliMDA0YzgwNDQuOWYzNjhhNTkwOTRjYmVkZApAQCAtMTM4MDMsMTIgKzEzODAzLDEyIEBACiAgICAgYWNkMjUzZjdjZDk5YjFjZS5jZGQ5Nzg4YTg0OGE0NjgyLjBhMWEyNzZkY2NkNDY4MzkuOWFhZjQ5NDU4Mjc1OGZmZgogICAgIDBlM2ViY2Y3ODVmODNlOTIKICAgYWZ0ZXIKLSAgICA0ZjBhYTdhOWZlZjRkYTczLmRlMGJkY2NlYmNkMjc0YzMuODAwMDAwMDAwMDAwMDAwMC5jYWUwNWFhZDNkMDk3YzZjCisgICAgN2JkYmQzNzhmOTE2ZWVkNC5jYTY0Y2M1NWRjMDZkNzMzLjBiMjExN2Y2M2EyYzA4NGQuNWViNTQ2NDg1YThlMjNmNQogICAgIGEzNjgxZjdlNzE0ZjUzZTUuYzk5NGEwNDMxMjMyZmYwNy4xMDNmZmI5YjAwNGM4MDQ0LjlmMzY4YTU5MDk0Y2JlZGQKICAgICA5NDRjZjVkYTg0YTI4MGE5LjJiNzdiMDViZWMwNTkwMTIuZjFjZWFkOWY1MjAxZTE1YS4xNDQ2MGQ1ZjBkZWFhMzI3CiAgICAgYWNkMjUzZjdjZDk5YjFjZS5jZGQ5Nzg4YTg0OGE0NjgyLjBhMWEyNzZkY2NkNDY4MzkuOWFhZjQ5NDU4Mjc1OGZmZgotICAgIDBlM2ViY2Y3ODVmODNlOTIKLVZESVZQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZDVlRUU0QyU0lfNjQobWVtKQogICBiZWZvcmUKICAgICA0YWMwZTE2MTMyN2Y2YjBjLjQ1NDgzNDQxZTljMjIxZmQuODk4ODc0YmFmOWNlZGQ4My5iNjZlNjc3MzBiNTM1MThkCiAgICAgMmJmZTM0NmZhNDE2ZDM5OC5iY2Y4OTQyNDczYTkwZGU1LjNjNGYyMWQ5NjVkYzEwNDEuNTMxODY4MWNhYTA5ZDgwMwpAQCAtMTM4MTgsMTEgKzEzODE4LDExIEBACiAgIGFmdGVyCiAgICAgNGFjMGUxNjEzMjdmNmIwYy40NTQ4MzQ0MWU5YzIyMWZkLjg5ODg3NGJhZjljZWRkODMuYjY2ZTY3NzMwYjUzNTE4ZAogICAgIDJiZmUzNDZmYTQxNmQzOTguYmNmODk0MjQ3M2E5MGRlNS4zYzRmMjFkOTY1ZGMxMDQxLjUzMTg2ODFjYWEwOWQ4MDMKLSAgICAyMTJjYTEyNzdkNjg0NmQwLmI3YTAzZjYyNThjNWU0OTYuZjJiNDVlMmIxYjE2N2UwOS5kYzk5YjAxMmJmZDJjYzRmCisgICAgOGRjNzMyMGRmOGNhMzI2My42ZTJmNmYwYzA3ZDhiMDMwLmMyZjlmYWQyZTRjMDljZTcuM2M2MjI2ZDQ0NjgyMzg0NwogICAgIDRjZTY1NTI4NDlhNjQ0OTguYjUzOWMxNjU0MmRkNDg4Yi5mNzUzN2I5MDkzODczZGExLmNkOTk5ZDA3N2E0YmFlMDUKLSAgICA2MjA5Y2EyMmUzZjA3NWU4CisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WRElWUERfMjU2KHJlZykKK1ZDVlRUU0QyU0lfNjQocmVnKQogICBiZWZvcmUKICAgICA1NmZlYTg4ZjFjZmJjYjljLjQ0MjYxYmFhYjNiN2M0NjQuZWU2Mjg3OWJjMDQ0MGZhMS5iNzI5MjAwMThkM2JhZTlkCiAgICAgMDdjMzMzYmJjMmZhZWFjZS41MTU1ZmY4MTUzMDg2ZmYzLjc1ZjZiYzFhMWM5NzQxMWYuZGU0NzY2MTBlZmViYWQwNApAQCAtMTM4MzAsMTIgKzEzODMwLDEyIEBACiAgICAgMGNmMTQxMDFjMjAyNzU1Yi4xYWFiMTJkYWEzOWIzNjA4LmRlOGU2NGE1ZGYzN2RhMDEuZDI4YWMyYjg1ODY4M2ZjYQogICAgIDU2NDhkMDJhOTg0ZTRjN2YKICAgYWZ0ZXIKLSAgICA4MDAwMDAwMDAwMDAwMDAwLjQyMDdkZGU0MzMwOGVjMDAuZmZmMDAwMDAwMDAwMDAwMC5kNGJkMGEzMjBhYjFkODYzCisgICAgNTZmZWE4OGYxY2ZiY2I5Yy40NDI2MWJhYWIzYjdjNDY0LmVlNjI4NzliYzA0NDBmYTEuYjcyOTIwMDE4ZDNiYWU5ZAogICAgIDA3YzMzM2JiYzJmYWVhY2UuNTE1NWZmODE1MzA4NmZmMy43NWY2YmMxYTFjOTc0MTFmLmRlNDc2NjEwZWZlYmFkMDQKICAgICBkMGE2NjcxMzcwNzgwZjJhLjRmM2Q3ZTk3NDRhNTAxNzAuYTc0MDVjNGZmMjY0MWNiMC40OTc5YzhhOWQ0YTBmNDA1CiAgICAgMGNmMTQxMDFjMjAyNzU1Yi4xYWFiMTJkYWEzOWIzNjA4LmRlOGU2NGE1ZGYzN2RhMDEuZDI4YWMyYjg1ODY4M2ZjYQotICAgIDU2NDhkMDJhOTg0ZTRjN2YKLVZESVZQRF8yNTYobWVtKQorICAgIDgwMDAwMDAwMDAwMDAwMDAKK1ZDVlRUU0QyU0lfNjQobWVtKQogICBiZWZvcmUKICAgICBiMDdkNmVlOWIwNWZkNTUxLjE5ZjFiYmYzNTYyMzVhMGUuOGU2YjM5MzU4YmY1YzllNi43NzJhY2U4NzdlOWFiOGJlCiAgICAgYmVmNjE5ZTJiYmE2OTY2Yy41MWYyZDM1NGM1NjdmOGVmLjg3NDg2ZTk0MTliZjc3MzcuY2U2MTk4NjM2YzFjZjI5MgpAQCAtMTM4NDUsMTEgKzEzODQ1LDExIEBACiAgIGFmdGVyCiAgICAgYjA3ZDZlZTliMDVmZDU1MS4xOWYxYmJmMzU2MjM1YTBlLjhlNmIzOTM1OGJmNWM5ZTYuNzcyYWNlODc3ZTlhYjhiZQogICAgIGJlZjYxOWUyYmJhNjk2NmMuNTFmMmQzNTRjNTY3ZjhlZi44NzQ4NmU5NDE5YmY3NzM3LmNlNjE5ODYzNmMxY2YyOTIKLSAgICA0ZTY4MDc0OTEwOGYwYjhmLjc3ZjBmYzBmODdjYmUyZjYuMzhjY2I3ZmJhNGYzMTU3Yy45NzI1MDEwNGQ1YTZlNDgwCisgICAgNWI3ZjRjMDJkNTJmNGRmYy4xMjQwODQ5MGFkNWE4YmE5LmUxMTAyZGUzNjgwNmZiMjcuM2Y3ZmJkYTQ0NDQ2YzMyYQogICAgIDYzZTQ4MzM0MWIwN2I0MmMuYjYyN2NiMTNhYTg5NTFlOC43ODhkZjMwZTk1ZDUxM2UxLjI2ZDAzOWI2YTNhNjY4MzEKLSAgICBkZjlmMDkwNTI0YzcxZDU0CisgICAgODAwMDAwMDAwMDAwMDAwMAogCi1WUENNUEVRUV8xMjgocmVnKQorVkNWVFNJMlNTXzY0KHJlZykKICAgYmVmb3JlCiAgICAgYzYzYTI3ZmQ2NDM1MWQzZi5iMmYwM2E2M2E5Mzk4ODI4LjliZjNhMjQ5NTY4MDg0NWEuMjg4YzNhMDFiYjM4Nzk5MgogICAgIDM3ZWI5MTBhZmU3ZGE2OWQuMjQ3MWVkN2Q5YWQxODUxZC4xYmVmMDc5ZTUwYzk2MWE5LmNkZDk4MGE4ZjczY2VhNjUKQEAgLTEzODU3LDEyICsxMzg1NywxMiBAQAogICAgIDI2YzIzNzE0YjJjOTNkNjQuZTBmZDM5MWYxNjY1ZThhMS42MGFhNjg1Njk4ODcwODhmLjY1OGRmN2MzMWY1NGRiMjMKICAgICAxMThjMWYwZjQzODFkNDY2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xYmVmMDc5ZTUwYzk2MWE5LmNkZDk4MGE4NWQ4YzYwZjgKICAgICAzN2ViOTEwYWZlN2RhNjlkLjI0NzFlZDdkOWFkMTg1MWQuMWJlZjA3OWU1MGM5NjFhOS5jZGQ5ODBhOGY3M2NlYTY1CiAgICAgOGVmZjQyOTg4ZjJhZjIxYi45NTMxMTk2ZDBhZGM2NjM3Ljk0NjhmNTdlMzJmMjIzODEuNDM0MDQwZjA2NGVjMjE4NwogICAgIDI2YzIzNzE0YjJjOTNkNjQuZTBmZDM5MWYxNjY1ZThhMS42MGFhNjg1Njk4ODcwODhmLjY1OGRmN2MzMWY1NGRiMjMKICAgICAxMThjMWYwZjQzODFkNDY2Ci1WUENNUEVRUV8xMjgobWVtKQorVkNWVFNJMlNTXzY0KG1lbSkKICAgYmVmb3JlCiAgICAgMjIwODM2YmVlYzdlYzg3Yy41ZDgwNmFlODAzZTVjNTI1LmUzYTFjOTdmZDk3OGM3ODguZGMwMTVkOTAxZjEyNGE3ZgogICAgIDczY2ViN2JlMzc1NzcyOTEuOGU4NWQ5ODIxZjBhYzQwOS43OWU5NDU3OTcwMjJiZjE4LjY1YjljZjlhNjIyMTI1ZmMKQEAgLTEzODcyLDExICsxMzg3MiwxMSBAQAogICBhZnRlcgogICAgIDIyMDgzNmJlZWM3ZWM4N2MuNWQ4MDZhZTgwM2U1YzUyNS5lM2ExYzk3ZmQ5NzhjNzg4LmRjMDE1ZDkwMWYxMjRhN2YKICAgICA3M2NlYjdiZTM3NTc3MjkxLjhlODVkOTgyMWYwYWM0MDkuNzllOTQ1Nzk3MDIyYmYxOC42NWI5Y2Y5YTYyMjEyNWZjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43OWU5NDU3OTcwMjJiZjE4LjY1YjljZjlhZGUwZmZhOGEKICAgICA0YTY4ZTc1ZTIyY2ZkYjY1LjRlOTM1OGI0MjdhMDE5ZWQuY2Q5NGYzZWM4ODY5ZThlMS4wOTdiMWFjYThlZjk5YTRmCiAgICAgZGQxZGViYzlhZmRhYWI3ZAogCi1WUENNUEVRUV8xMjgocmVnKQorVkNWVFNJMlNTXzY0KHJlZykKICAgYmVmb3JlCiAgICAgMmU1MDJhNDdmYzZmNDZlOS44NmQ0OGZkNmY5ODUxMjdkLjk0MzQ2MTI1NGEyOWU3NDUuNDM5MDFjM2M0MTFkOTI3MgogICAgIDU2NjBkMWIwMTI0MmE2M2UuNzRiYTkxNGVlMjQ4ZWY0NC40NTRjOTUwYmE4ZWMxZDcwLmJkNWYyMWQ3M2U5ODQ0NWMKQEAgLTEzODg0LDEyICsxMzg4NCwxMiBAQAogICAgIDllNDc0Y2YzMDZkOGE4NTUuZDIyMzkzZWU1ODIzOGU4ZC41NDExNmRlNjgzNGRiMGYwLjI5YTliMDlhNzExMmIzZTkKICAgICBkM2JjMzI5YmUwMjhlOGU1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NTRjOTUwYmE4ZWMxZDcwLmJkNWYyMWQ3ZGUzMTBmMzYKICAgICA1NjYwZDFiMDEyNDJhNjNlLjc0YmE5MTRlZTI0OGVmNDQuNDU0Yzk1MGJhOGVjMWQ3MC5iZDVmMjFkNzNlOTg0NDVjCiAgICAgYjI5OWRlNzA4Y2UxMDgyOS5lZWU1NjliMmY4MjMyZmU1LmJjMjdlZmQyZGM3NGY3MWEuMTZjZTdlYTg5YWU2YmJjYQogICAgIDllNDc0Y2YzMDZkOGE4NTUuZDIyMzkzZWU1ODIzOGU4ZC41NDExNmRlNjgzNGRiMGYwLjI5YTliMDlhNzExMmIzZTkKICAgICBkM2JjMzI5YmUwMjhlOGU1Ci1WUENNUEVRUV8xMjgobWVtKQorVkNWVFNJMlNTXzY0KG1lbSkKICAgYmVmb3JlCiAgICAgZjFkMjgwOTYwMzM0MTVlOS43NmI1MThhNTFkYjJjMTZmLmZhM2U4Y2VmMWU1MmM3NjcuNmI1NTBiYjQzODAzODY5ZQogICAgIDVkYjkxNjc3ZjU0M2Y3MjIuOTYzMTNkZjM2ZGZiOTAyMy40MzAzY2U5ZjY0YmY5OGEwLjViNDFjM2E2OTgyM2IyY2YKQEAgLTEzODk5LDExICsxMzg5OSwxMSBAQAogICBhZnRlcgogICAgIGYxZDI4MDk2MDMzNDE1ZTkuNzZiNTE4YTUxZGIyYzE2Zi5mYTNlOGNlZjFlNTJjNzY3LjZiNTUwYmI0MzgwMzg2OWUKICAgICA1ZGI5MTY3N2Y1NDNmNzIyLjk2MzEzZGYzNmRmYjkwMjMuNDMwM2NlOWY2NGJmOThhMC41YjQxYzNhNjk4MjNiMmNmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MzAzY2U5ZjY0YmY5OGEwLjViNDFjM2E2NWVkNmFhMTcKICAgICA5MzI1MGM5Y2I3OThjOWUyLjFlN2U4MTBmMjUwYjQwMDcuYTliYTIzYzBlNjdjZWNkZS4zYTNjNzZhYWM3Y2YwMzZkCiAgICAgZTFlNDY4OTRjZTczOWYzMQogCi1WUENNUEVRUV8xMjgocmVnKQorVkNWVFNJMlNTXzY0KHJlZykKICAgYmVmb3JlCiAgICAgZDE2MzY2NTJmMGIxODMyOC4xNDQzNjNiN2MwZjUzMWMwLjNlZTg5YWI1YzZlYTk4OGYuN2U0NTJjMDk1OWU1ZTgzYgogICAgIDY4MDQ2YTUyYzgxM2VhMDAuNTU2MWYyNjgwODg2M2U4NC4xNjhmZmJhNzBmNjg5NjYxLmUzYTk3MGIyYmViYTZiYTcKQEAgLTEzOTExLDEyICsxMzkxMSwxMiBAQAogICAgIGY2ZTA3OWM1MGM3ODM0ZmQuODJjY2E5M2RjNjZkMzY2OC41ZWMzOGExYzBjNzM3NDkyLmQwMzA5NWQ0Y2NkYWY2NTkKICAgICAxMGU5NzAyNWFkM2Q3NWY5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNjhmZmJhNzBmNjg5NjYxLmUzYTk3MGIyNWQ4NzRiODEKICAgICA2ODA0NmE1MmM4MTNlYTAwLjU1NjFmMjY4MDg4NjNlODQuMTY4ZmZiYTcwZjY4OTY2MS5lM2E5NzBiMmJlYmE2YmE3CiAgICAgMDAxNTcyZmZmMzI3MTI2Mi4zMDRiMzU5Y2FiNTRhYzU3LjAyYmVhMjUwOWQxMjc2MjkuYjViMzY5YTczMDA4MzE0ZAogICAgIGY2ZTA3OWM1MGM3ODM0ZmQuODJjY2E5M2RjNjZkMzY2OC41ZWMzOGExYzBjNzM3NDkyLmQwMzA5NWQ0Y2NkYWY2NTkKICAgICAxMGU5NzAyNWFkM2Q3NWY5Ci1WUENNUEVRUV8xMjgobWVtKQorVkNWVFNJMlNTXzY0KG1lbSkKICAgYmVmb3JlCiAgICAgNTJhZDc0ODZlZjNjNmI1Ni5hNmIyN2IxMGFmOTM4ZjdiLjI3YjFjOTM5NzRkYzk5ZTEuODVlOGFmNzdmNjE4Y2I0OQogICAgIDcwNDcxZmU0YWZlMzkzOWYuNmRkODc1NGM3OTAzNWQ4OS5mYmM3MTE3YmQyYWU5MWVmLmQ1N2EwZWNkZmE4Y2I4ZjkKQEAgLTEzOTI2LDExICsxMzkyNiwxMSBAQAogICBhZnRlcgogICAgIDUyYWQ3NDg2ZWYzYzZiNTYuYTZiMjdiMTBhZjkzOGY3Yi4yN2IxYzkzOTc0ZGM5OWUxLjg1ZThhZjc3ZjYxOGNiNDkKICAgICA3MDQ3MWZlNGFmZTM5MzlmLjZkZDg3NTRjNzkwMzVkODkuZmJjNzExN2JkMmFlOTFlZi5kNTdhMGVjZGZhOGNiOGY5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYmM3MTE3YmQyYWU5MWVmLmQ1N2EwZWNkZGVmNDJlYTEKICAgICBiMzJjNTc0MzE4NWI2ZDlmLmFiNGEzZTQ4ZjExMzQ1MDMuYTFiMDBhODEwY2E4MmY3OC41ZDE1NjYxYmJhMTE0M2Y3CiAgICAgNGNiNTU4ZWFhZTNiNTk5YwogCi1WU1VCUERfMTI4KHJlZykKK1ZDVlRTSTJTRF82NChyZWcpCiAgIGJlZm9yZQogICAgIGQ0ZjM3MzY1MmI2NWY1ZWEuOTAwZmRjMWNmODQzOTViMC5kYjMwMDVkZmQ2Y2JkN2M3LjJhMWRiMjFkMjBlODRkNGIKICAgICA1MDE5YjRmNmNkMTk1MzhmLmJhZjhmOGEyYzYwM2UxNWEuOTE5OGIzMTg1MjA5Y2NjYi41MmVhNzNhZjUzYmJlZjYzCkBAIC0xMzkzOCwxMiArMTM5MzgsMTIgQEAKICAgICA5MzUwOTQwZmVkNTQ0Mzg4LjY1MGJlMTYyOWEzZWQwMzAuMDAyMWI2MWM3ZDQzZDE0Mi5lZmQyMmU2Njg5NDhiMzExCiAgICAgMWI4NzIwNjJjMzFhNGJmZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYWNmNDU1ZTAwNTc2MWJiLjc1ZTJjOTIzYzMyZGQzZWMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTE5OGIzMTg1MjA5Y2NjYi40M2JiODcyMDYyYzMxYTRjCiAgICAgNTAxOWI0ZjZjZDE5NTM4Zi5iYWY4ZjhhMmM2MDNlMTVhLjkxOThiMzE4NTIwOWNjY2IuNTJlYTczYWY1M2JiZWY2MwogICAgIDFiNzQxNjBiMmZlNWFlMzUuMGRiMzI1YzA5ZGE4MGJjYy4yYWNmNDU1ZTAwNTc2MWJiLmY1ZTJjOTIzYzMyZGQzZWMKICAgICA5MzUwOTQwZmVkNTQ0Mzg4LjY1MGJlMTYyOWEzZWQwMzAuMDAyMWI2MWM3ZDQzZDE0Mi5lZmQyMmU2Njg5NDhiMzExCiAgICAgMWI4NzIwNjJjMzFhNGJmZQotVlNVQlBEXzEyOChtZW0pCitWQ1ZUU0kyU0RfNjQobWVtKQogICBiZWZvcmUKICAgICA1N2NhMTkwNThkYWY1OWUxLjEyZjkyZDZlYTRmMzRlMzUuOWVjZWE4NzRkOGNmZWNiMi43MGRhMDJjMDY0NTk1YTBkCiAgICAgN2U2YTk3MzkwMjExOTdlNC5mNmJiZGE5NGYwNGQwYWU4Ljk0YzZmNGUyNzQ2OTFhN2YuZDY0NjI1YjU1MjI0MzZjNwpAQCAtMTM5NTMsMTEgKzEzOTUzLDExIEBACiAgIGFmdGVyCiAgICAgNTdjYTE5MDU4ZGFmNTllMS4xMmY5MmQ2ZWE0ZjM0ZTM1LjllY2VhODc0ZDhjZmVjYjIuNzBkYTAyYzA2NDU5NWEwZAogICAgIDdlNmE5NzM5MDIxMTk3ZTQuZjZiYmRhOTRmMDRkMGFlOC45NGM2ZjRlMjc0NjkxYTdmLmQ2NDYyNWI1NTIyNDM2YzcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWVjZWE4NzRkOGNmZWNiMi5mMGRhMDJjMDY0NTk1YTBkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk0YzZmNGUyNzQ2OTFhN2YuNDNkYzM2ODBiMDE5MTY1NwogICAgIGZkZWQxMDA5NWU3MTk2ZmIuNTliOTY0ZTViNDYzODgwZS4yNjg4MTA4MjM0ZTY5ZmFhLmY0NjZlMTQyYjEwOWQ5YmIKICAgICA2NGIyNzJiMjVhM2MxODRjCiAKLVZTVUJQRF8xMjgocmVnKQorVkNWVFNJMlNEXzY0KHJlZykKICAgYmVmb3JlCiAgICAgMzllMmNhMjQ3YTU0OWI3ZC4wZDY5MDM3YzdkODdjZTY4LjkwOGQzOWU4NjUzN2MyZDkuN2JlYWQ3OGQ5MGUxNmU1ZgogICAgIGQxNDBlNTAyYWNkZTllZjkuNzc3MDZhMzFiODliMjdhNi45YmFhMTQ2MzFiZjY5ZDViLmZkYjIxNGEzYjkxNTNmMGUKQEAgLTEzOTY1LDEyICsxMzk2NSwxMiBAQAogICAgIGI3Yjg1NmI2Yjc3NTEyODQuY2U1Mjg0MTFmMGVlMmM0Mi45ZWVmYzg2YzAzNjcyOTJkLmY3YTNlMWE0ZTU1NGRhMGQKICAgICAyODY0Njk2NzFmNzkxYmI0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU3NWNlZmMwNzAyZDU2M2QuZmRiMjE0YTNiOTE1M2YwZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45YmFhMTQ2MzFiZjY5ZDViLjQzYzQzMjM0YjM4ZmJjOGUKICAgICBkMTQwZTUwMmFjZGU5ZWY5Ljc3NzA2YTMxYjg5YjI3YTYuOWJhYTE0NjMxYmY2OWQ1Yi5mZGIyMTRhM2I5MTUzZjBlCiAgICAgODcxOGMwYmE4YzY0NWM2ZC4xOWNmYzExNDJhYmE1ZGRmLmQ3NWNlZmMwNzAyZDU2M2QuODhhYzQ0YjJjZDhjY2ZlNAogICAgIGI3Yjg1NmI2Yjc3NTEyODQuY2U1Mjg0MTFmMGVlMmM0Mi45ZWVmYzg2YzAzNjcyOTJkLmY3YTNlMWE0ZTU1NGRhMGQKICAgICAyODY0Njk2NzFmNzkxYmI0Ci1WU1VCUERfMTI4KG1lbSkKK1ZDVlRTSTJTRF82NChtZW0pCiAgIGJlZm9yZQogICAgIGY2YmI1N2U2OTcwNTRmMDYuYmQ2YmEzNjRjOTlhZmNlYy43MWM0MzAxNDI1NDU0ZmY5LjRkYWU5YWQ0NmQzMDUxZDcKICAgICAzYzc0MjgwZDY4MDczMjJmLmY0N2NhMzJmNWQ2MTU2NGUuZTBmMzQwMGFlNmNiODMzMS40MWU3NjE2MzRkMTUwYmU3CkBAIC0xMzk4MCwxMSArMTM5ODAsMTEgQEAKICAgYWZ0ZXIKICAgICBmNmJiNTdlNjk3MDU0ZjA2LmJkNmJhMzY0Yzk5YWZjZWMuNzFjNDMwMTQyNTQ1NGZmOS40ZGFlOWFkNDZkMzA1MWQ3CiAgICAgM2M3NDI4MGQ2ODA3MzIyZi5mNDdjYTMyZjVkNjE1NjRlLmUwZjM0MDBhZTZjYjgzMzEuNDFlNzYxNjM0ZDE1MGJlNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMWM0MzAxNDI1NDU0ZmY5LmNkYWU5YWQ0NmQzMDUxZDcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTBmMzQwMGFlNmNiODMzMS40M2QzNmJhNmI1MWI0YzE0CiAgICAgYTQzYzVmMDM4Njk2ZjRiMy42YWViYWRjYjdjMDM0OGI3LjhlYjM3YzdiN2E5MTBkZDIuNjNmMmJmYTZkODYwMjVlNgogICAgIDRhNWQ0ZDMyYmRkZmZjMmYKIAotVlNVQlBEXzEyOChyZWcpCitWQ1ZUU0kyU0RfNjQocmVnKQogICBiZWZvcmUKICAgICBlNTcxYzE5NTg2YTk1NThjLjdlZTJiZWFhMGIzYzRiNjguNWZlMWFmNzYzZmY2NTkxNC44NmRlYTBjZTg1ZTlkYjk0CiAgICAgOTA3YTE3M2JkMDRhNmNhYy40MDFiZjBhOTVhODY0MGEzLmY3NjY1NGVkZjViYWM5MWQuYjhmMzE5YzQ4Y2EwYWE4NgpAQCAtMTM5OTIsMTIgKzEzOTkyLDEyIEBACiAgICAgODY5OTU1MDE1NDQzYzNkZi5mMDcxYjk2MGM0MzhmODVjLjdjNGM3OGYyYThlNmI5ZTIuM2UxM2Y3NDZmYjU4M2FhYwogICAgIDQ5YjQ1NGFhOWM3MjczMzcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjc2NjU0ZWRmNWJhYzkxZC5iOGYzMTljNDhjYTBhYTg2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY3NjY1NGVkZjViYWM5MWQuNDNkMjZkMTUyYWE3MWM5ZAogICAgIDkwN2ExNzNiZDA0YTZjYWMuNDAxYmYwYTk1YTg2NDBhMy5mNzY2NTRlZGY1YmFjOTFkLmI4ZjMxOWM0OGNhMGFhODYKICAgICBhN2MzNDk5MDM2NGY3YzM5LmM4YjE2ZmVkOGU4MTkxOTAuOGRjNjk4OWQzOWRiZDU3ZS4wMmMxNjI0OGFhYzEzNmQ0CiAgICAgODY5OTU1MDE1NDQzYzNkZi5mMDcxYjk2MGM0MzhmODVjLjdjNGM3OGYyYThlNmI5ZTIuM2UxM2Y3NDZmYjU4M2FhYwogICAgIDQ5YjQ1NGFhOWM3MjczMzcKLVZTVUJQRF8xMjgobWVtKQorVkNWVFNJMlNEXzY0KG1lbSkKICAgYmVmb3JlCiAgICAgMDA3MmY2NjBhOTFhOWRhNC44OTQ5MzZmOGM3YjI3YjRjLjk1Mjc0OWYwMTdiODMyMzMuMjI0NWVmNTlkZDY3YjFmNgogICAgIDNkMTc1ODU0M2Q1ZDczMWQuMGMxZGU4ZTMyYjI5ZTAyOS45NDllOWI4OGE0MGJmYjQwLmQ5ZmRmOTNjNzVlOGY4NjYKQEAgLTE0MDA3LDExICsxNDAwNywxMSBAQAogICBhZnRlcgogICAgIDAwNzJmNjYwYTkxYTlkYTQuODk0OTM2ZjhjN2IyN2I0Yy45NTI3NDlmMDE3YjgzMjMzLjIyNDVlZjU5ZGQ2N2IxZjYKICAgICAzZDE3NTg1NDNkNWQ3MzFkLjBjMWRlOGUzMmIyOWUwMjkuOTQ5ZTliODhhNDBiZmI0MC5kOWZkZjkzYzc1ZThmODY2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1MjczYWEyNTM2NjJjMzUuZDlmZGY5M2M3NWU4Zjg2NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NDllOWI4OGE0MGJmYjQwLjQzYzEyMmY3YWNlZWIzZDkKICAgICBiZDQ4NGNhNzZiZTExNmU1LjAyNjNhZjQxMzM1ZGE1ZWEuMGIwMzc2N2ZkYTYwMjhhZS5lZWRhYjYyYjNjMWY2NjA3CiAgICAgMDM5NzYyMGRhM2VkMDQ5MgogCi1WQUREUERfMTI4KHJlZykKK1ZDVlRTSTJTRF8zMihyZWcpCiAgIGJlZm9yZQogICAgIDliNDI5MTFkZGRlY2UyMjcuYjc2ZGQ2ZGQzZDNhNWI4Yy4yZDZlYmQ4ZDEwMzI3YzI0LjNkODlmN2I3YmI3OTA1NjcKICAgICAxMDI5M2ZjNjg1YTgzYzc1LmE4YWExMTAyMDc1ZTNjZWYuNDhjZDhjN2M0ZDNlZjA4MC4zNzAwMmFhNzQ1OTY2MDA3CkBAIC0xNDAxOSwxMiArMTQwMTksMTIgQEAKICAgICAwNWQ2MDk5NDkwODk1M2U3LmRmOWE4N2M1ZjEzNWM1OWMuYmRiYjVlZjM1OTJjYTI0ZC5mNmYzOTY2MGM3MGU4M2FhCiAgICAgNzMwOGM4MDBmNjgwYzMwNgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40OGNkOGM3YzRkM2VmMDgwLmQ2MzU4YjNiOTVjNGY2YjkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDhjZDhjN2M0ZDNlZjA4MC5jMWEyZmU3OWY0MDAwMDAwCiAgICAgMTAyOTNmYzY4NWE4M2M3NS5hOGFhMTEwMjA3NWUzY2VmLjQ4Y2Q4YzdjNGQzZWYwODAuMzcwMDJhYTc0NTk2NjAwNwogICAgIGJmOTY2ODc0MzdhZTRlMjYuNmNjYTc4MDFlNDU4NzYzYi5hZmNlMTg3YTg3MGQzZWFhLmQ2MzU4YjNiOTVjNGY2YjkKICAgICAwNWQ2MDk5NDkwODk1M2U3LmRmOWE4N2M1ZjEzNWM1OWMuYmRiYjVlZjM1OTJjYTI0ZC5mNmYzOTY2MGM3MGU4M2FhCiAgICAgNzMwOGM4MDBmNjgwYzMwNgotVkFERFBEXzEyOChtZW0pCitWQ1ZUU0kyU0RfMzIobWVtKQogICBiZWZvcmUKICAgICAyOTNlOWMwODNlMjY3MWY4LjNjMzUxYzkwMmNjNTg4NjMuZGRlNmJhM2M0OTAwZTQzZC5kMGUxNTg1MzYwMjY1ODE2CiAgICAgZjQ2MzhlNjViYzBkNGFhYy5jMWZlOWZkNWE1ZWYyOTQ3LjQzN2E4ZTUxMDljNTkxNGIuNDM4YjA0MDczNzg4OWJiMQpAQCAtMTQwMzQsMTEgKzE0MDM0LDExIEBACiAgIGFmdGVyCiAgICAgMjkzZTljMDgzZTI2NzFmOC4zYzM1MWM5MDJjYzU4ODYzLmRkZTZiYTNjNDkwMGU0M2QuZDBlMTU4NTM2MDI2NTgxNgogICAgIGY0NjM4ZTY1YmMwZDRhYWMuYzFmZTlmZDVhNWVmMjk0Ny40MzdhOGU1MTA5YzU5MTRiLjQzOGIwNDA3Mzc4ODliYjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGRlNmJhM2M0OTAwZTQzZC5kMGUxNTg1MzYwMjY1ODE2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQzN2E4ZTUxMDljNTkxNGIuNDFkODA5OTYwNTgwMDAwMAogICAgIDNhYTViZGNhYzhjYzZjMGQuMjUwMmUzZWJhNTNiOWVmNS5iMmE5MDUwNjJmNmY3ZjVjLmI4YTA1ZjE3YzdiMWJiMGIKICAgICA3M2ExMDc0YmI3OTAxMDIyCiAKLVZBRERQRF8xMjgocmVnKQorVkNWVFNJMlNEXzMyKHJlZykKICAgYmVmb3JlCiAgICAgZmQ1NzUwODNlODA3ZTJiYi42YjViZjJhYjhmYmMyZTExLmJjZDU5Yjk0NjI3NGU5MTguNzRkZGExN2RjZDZiM2FiOAogICAgIGI0MGUzNjJhZjZhMjZlODIuMjIyZTM1OTBmYjFjMGE4OC4xMTQyYjMzNjZlY2I5MTUyLjBkODhjZTQyNDI5MTcxMzAKQEAgLTE0MDQ2LDEyICsxNDA0NiwxMiBAQAogICAgIDE1YWZjOTc0MTY3MGEzNDcuOGY1ZmQ1MTYzMzVlMDI3ZS42NTFjZjExNGUxMDJlNGJkLjMzNzZjNzY3MjQ4ZTQ1MjYKICAgICA3OTUxOGM5ZmM4N2I1YWZjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjExNDJiMzM2NmVjYjkxNTIuNTk3NzA2NDJhYmVlZTBmMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMTQyYjMzNjZlY2I5MTUyLmMxY2JjMjUyODIwMDAwMDAKICAgICBiNDBlMzYyYWY2YTI2ZTgyLjIyMmUzNTkwZmIxYzBhODguMTE0MmIzMzY2ZWNiOTE1Mi4wZDg4Y2U0MjQyOTE3MTMwCiAgICAgZjIxMmI1YWM3Y2ViZjAyMi4zYWVjMDI2NTI4ZjliYzllLjgwOTYyNjNjNjRjY2QwNTAuNTk3NzA2NDJhYmVlZTBmMQogICAgIDE1YWZjOTc0MTY3MGEzNDcuOGY1ZmQ1MTYzMzVlMDI3ZS42NTFjZjExNGUxMDJlNGJkLjMzNzZjNzY3MjQ4ZTQ1MjYKICAgICA3OTUxOGM5ZmM4N2I1YWZjCi1WQUREUERfMTI4KG1lbSkKK1ZDVlRTSTJTRF8zMihtZW0pCiAgIGJlZm9yZQogICAgIDA2ZDNkMmQ0YjNjM2RjOWYuNzczMDZmZjE2MWJjYzQ5Zi5mZDU0MmI4ZjM3NTc5NjU1LjFjMjIwZTI5ODBmOTA2NDYKICAgICBiNmNhMTNmNDAyNzI4NzNhLjc2ZTJhMThjZjk1YzhmZDMuNjA5NzdmYmM1MGYxMzU0ZS4wMWYyN2JlOGRlM2Q3NTk3CkBAIC0xNDA2MSwxMSArMTQwNjEsMTEgQEAKICAgYWZ0ZXIKICAgICAwNmQzZDJkNGIzYzNkYzlmLjc3MzA2ZmYxNjFiY2M0OWYuZmQ1NDJiOGYzNzU3OTY1NS4xYzIyMGUyOTgwZjkwNjQ2CiAgICAgYjZjYTEzZjQwMjcyODczYS43NmUyYTE4Y2Y5NWM4ZmQzLjYwOTc3ZmJjNTBmMTM1NGUuMDFmMjdiZThkZTNkNzU5NwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZDU0MmI4ZjM3NTc5NjU1LjFjMjIwZTI5ODBmOTA2NDYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjA5NzdmYmM1MGYxMzU0ZS5jMWRmYzFiZTZlODAwMDAwCiAgICAgZWU0MjdiYTIzYTMxNDYwYS5iNzBhOWZjZjdkYzUxMjg2Ljc0MzcxMWUzMzQzNTgyNTkuYzUyNDMyMGY0NGRlMjUzZgogICAgIDVjMWQ3NDUwODY1MmRmZWUKIAotVkFERFBEXzEyOChyZWcpCitWQ1ZUU0kyU0RfMzIocmVnKQogICBiZWZvcmUKICAgICA5MTExZjZlYmY1NDRkNDE1LjJmNWM5OTA4NWM1YmQzOTcuYjExNzYxNTBhMmE3NDI1Yy5kZTJjNDhiNTM2ZjhhOWMyCiAgICAgYzA0YmIyNGIyZjNmNDE1Zi4wMzFhYTMwODUwMWE3OWNjLmI3ODRhMTlmODMwYzBjYmYuYWQ5ZTZkZWFiZThiY2JmZQpAQCAtMTQwNzMsMTIgKzE0MDczLDEyIEBACiAgICAgN2JjNWNlMDk3MzgyNzMwZi5kM2IxNmM4NzI0OGRmZWUxLjU4YjI4ODVjZWI5MDVkZGUuZTkyYzcxMzJjZDUyZWY5ZAogICAgIDBmZTA0ODFjOGQ5ZTY4NTgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjc4NGExOWY4MzBjMGNiZi5iYzVhZmM3MGU3ZmFhMzM4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI3ODRhMTlmODMwYzBjYmYuYzFkYzk4NjVlYTAwMDAwMAogICAgIGMwNGJiMjRiMmYzZjQxNWYuMDMxYWEzMDg1MDFhNzljYy5iNzg0YTE5ZjgzMGMwY2JmLmFkOWU2ZGVhYmU4YmNiZmUKICAgICA0NDE5YTZkYmQwZDA2Mjc5LjQ1NDgxNjhmMzU3Y2YzZDYuMjY5ZjVhMmFiZDgwYWI1Yy5iYzVhZmM3MGU3ZmFhMzM4CiAgICAgN2JjNWNlMDk3MzgyNzMwZi5kM2IxNmM4NzI0OGRmZWUxLjU4YjI4ODVjZWI5MDVkZGUuZTkyYzcxMzJjZDUyZWY5ZAogICAgIDBmZTA0ODFjOGQ5ZTY4NTgKLVZBRERQRF8xMjgobWVtKQorVkNWVFNJMlNEXzMyKG1lbSkKICAgYmVmb3JlCiAgICAgMDk0MmZlMWE0M2ViY2Q5Ni5jMDljMjQ0MGI0ZTFhZmNkLjg4MjMyNGRlM2I1ODU2MTguYWEwYjI3YTFhYWM3NWJmMgogICAgIGI1MWUwZTE4MDk0M2Q4ODMuNmZlYmE2ZWMzMDdhNTM1ZC4zZjY4Yjc3ZTk2ZTliNmE4Ljc4ZjQzNDY0OTViMWU0NDQKQEAgLTE0MDg4LDExICsxNDA4OCwxMSBAQAogICBhZnRlcgogICAgIDA5NDJmZTFhNDNlYmNkOTYuYzA5YzI0NDBiNGUxYWZjZC44ODIzMjRkZTNiNTg1NjE4LmFhMGIyN2ExYWFjNzViZjIKICAgICBiNTFlMGUxODA5NDNkODgzLjZmZWJhNmVjMzA3YTUzNWQuM2Y2OGI3N2U5NmU5YjZhOC43OGY0MzQ2NDk1YjFlNDQ0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNmNjhiNzdlOTZlOWI2YTguNzhmNDM0NjQ5NWIxZTQ0NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZjY4Yjc3ZTk2ZTliNmE4LmMxZDU0ZTI5MDM4MDAwMDAKICAgICA4ZjczMmNjNTNjNGFkMzE4LjdhMWIxYjUzNDc4N2MyYWEuMjc5ZTYyNGU4NjhlODE4Mi5mOGE5ODUxYTYxZDA4MjUwCiAgICAgNjMwY2MxZTM3OTFkMTA2MgogCi1WVU5QQ0tMUERfMTI4KHJlZykKK1ZQT1JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjkzMTVhZGIyZTRjMTg2Mi43NTg0MzM0YmRmMTAzYTE5LjhlOTYwNmU2MWExMzA1YmUuMTAyNzcyNTQ1M2JhNjQyNAogICAgIDU3NjI0ZDZlMWNlYmQ1ZmMuN2QzZjgzODEwNDEyMzk3OC43ZGI3MGQ5Zjk4MDlhMDU1LjZiYjM0ZTU1ZDNkYzNmY2UKQEAgLTE0MTAwLDEyICsxNDEwMCwxMiBAQAogICAgIGRiMWIyZTE2MTBhODYwYWMuNWVlMmYzYWY0MmZiZTkwMi41ODFmNWIyZjAzNjFjZGJlLmViMDg1YmY2NWYzNGQwZWMKICAgICBjNzY4ODM2ZGEyODJmZGI4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1MTA3MjNjMjMwMWNmYWQuNmJiMzRlNTVkM2RjM2ZjZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZGZmMmZmZmRjZmRlZTVkLjdmYjM3ZTdkZjNkZGZmZWYKICAgICA1NzYyNGQ2ZTFjZWJkNWZjLjdkM2Y4MzgxMDQxMjM5NzguN2RiNzBkOWY5ODA5YTA1NS42YmIzNGU1NWQzZGMzZmNlCiAgICAgOTllYzk1MDlkZTg2ODRkYi44MTcwOWE1NGM2NWM4OTYyLmExY2IyYWU4NWNmNGNlMWMuMTUxMDcyM2MyMzAxY2ZhZAogICAgIGRiMWIyZTE2MTBhODYwYWMuNWVlMmYzYWY0MmZiZTkwMi41ODFmNWIyZjAzNjFjZGJlLmViMDg1YmY2NWYzNGQwZWMKICAgICBjNzY4ODM2ZGEyODJmZGI4Ci1WVU5QQ0tMUERfMTI4KG1lbSkKK1ZQT1JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgODZmYzY4OGUwOGY2MTMzZC43OTNiMTQwMzRmZGRhNzFhLmYxNjMwYjdkOTNmYTEzODUuZmNmZDliZGUyOGRiZDdlOQogICAgIDA1OTA4NjQ1YWU5Y2NlYTYuY2U5ODQ0M2IzNmIxOTNkMi4xNGJkNWNhY2Q1NjZjNDE2LmViYjFlNzYzNjhlZTI4NDYKQEAgLTE0MTE1LDExICsxNDExNSwxMSBAQAogICBhZnRlcgogICAgIDg2ZmM2ODhlMDhmNjEzM2QuNzkzYjE0MDM0ZmRkYTcxYS5mMTYzMGI3ZDkzZmExMzg1LmZjZmQ5YmRlMjhkYmQ3ZTkKICAgICAwNTkwODY0NWFlOWNjZWE2LmNlOTg0NDNiMzZiMTkzZDIuMTRiZDVjYWNkNTY2YzQxNi5lYmIxZTc2MzY4ZWUyODQ2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZjZmQ5YmRlMjhkYmQ3ZTkuZWJiMWU3NjM2OGVlMjg0NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNWZmNWZmZGQ3ZmVkNzk3LmZmZmRmZmZmNjhmZmZmZWYKICAgICBhZWU3NTkyNzI4YWYyMmQ2LjEyMzg2ZTNjNmU2ODRjY2YuN2QzMDllZGE5ZmIyYWIxNS4xNWQwOGY5Y2E3MTE5MzRjCiAgICAgMGFkMWU0MjhkZTM4MjQ0ZAogCi1WVU5QQ0tMUERfMTI4KHJlZykKK1ZQT1JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjhkOTM1Mzk5ZjI5ZWQzMS45MTQyMDcyODM0MzQzM2Y1LmI4MTM2MWRkZjc2MzkyNmMuN2NlMDg2YjE1ZWFhNThkYQogICAgIDdjMzQ3YzNiODc2ZjI5YTQuYTNjZWRkNzBmMDFjZDlhOS44NjViOGU3OTk4MmQ2YzAyLjdiOTk5OTk5N2YzZjdjNWUKQEAgLTE0MTI3LDEyICsxNDEyNywxMiBAQAogICAgIGI3MTNlMWMzM2EyYmVkZWIuYzVhNGYxODJlNjQyZDM3ZS4wOTYyODI1Mjk0NWVkNGNiLmVjNWEyYzQ3NTQ2ZTE4NTEKICAgICAxNmZhYTZlNzQxMjAwODE5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU3Mjk1MjdjMWQ3Y2QyY2MuN2I5OTk5OTk3ZjNmN2M1ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNzVmZWY3ZGZlN2Y3ZDNlLjdmYjlkYmZkN2Y3ZmZlZGUKICAgICA3YzM0N2MzYjg3NmYyOWE0LmEzY2VkZDcwZjAxY2Q5YTkuODY1YjhlNzk5ODJkNmMwMi43Yjk5OTk5OTdmM2Y3YzVlCiAgICAgYjMyZWI3OWEzMTk2MTU1NC5jMTU1NTdlYTc3NzJjZjFkLmQ3NWNlZjdjZWU1MjE5M2UuNTcyOTUyN2MxZDdjZDJjYwogICAgIGI3MTNlMWMzM2EyYmVkZWIuYzVhNGYxODJlNjQyZDM3ZS4wOTYyODI1Mjk0NWVkNGNiLmVjNWEyYzQ3NTQ2ZTE4NTEKICAgICAxNmZhYTZlNzQxMjAwODE5Ci1WVU5QQ0tMUERfMTI4KG1lbSkKK1ZQT1JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjFkMzM5NDdmZjllNWU0Zi5lNTJlZjYyMDNlYjllYzE1LjhjODYyODI0NTg5OTlmZjcuNzdiOTQyNjgyN2RlZDg1NwogICAgIDk5YjI2MjUyYWJmNWQ4MjAuOTljZGYyMWZkOGNjNGY3Zi5mMmM5NzdiY2VhODJlZmI1LjdkYWMyYzI4NDI1ZDYyOGIKQEAgLTE0MTQyLDExICsxNDE0MiwxMSBAQAogICBhZnRlcgogICAgIGIxZDMzOTQ3ZmY5ZTVlNGYuZTUyZWY2MjAzZWI5ZWMxNS44Yzg2MjgyNDU4OTk5ZmY3Ljc3Yjk0MjY4MjdkZWQ4NTcKICAgICA5OWIyNjI1MmFiZjVkODIwLjk5Y2RmMjFmZDhjYzRmN2YuZjJjOTc3YmNlYTgyZWZiNS43ZGFjMmMyODQyNWQ2MjhiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc3Yjk0MjY4MjdkZWQ4NTcuN2RhYzJjMjg0MjVkNjI4YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZWNmN2ZiY2ZhOWJmZmY3LjdmYmQ2ZTY4NjdkZmZhZGYKICAgICBjMGIxNjgxZTNiNWIyMzQxLjAzYzI5MWFmM2ZiMzMxYzIuMGI5ZDRlN2ZkYjNiMGZhZi5jMDlhNmE1YjgyOGFmNmExCiAgICAgYjUyY2I3YTRkZTRmNzlkYgogCi1WVU5QQ0tMUERfMTI4KHJlZykKK1ZQT1JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjM4YjFkNDkzMzQ0NzI2ZS5iNzZhM2NiNjU4ODM2ZGVhLjcxYjEyYjE5NDQ5ZjI3ZjMuNzZjOGNkODE3MzIzNTU0MwogICAgIDE0MDI5OGI1MWRmNDFjMDcuNmI1ODk3YWFkMWIzYzlkZC5kNTUzOWNkNDUwM2Y3MTEzLmVmODI1NTJhOWJjZDExY2IKQEAgLTE0MTU0LDEyICsxNDE1NCwxMiBAQAogICAgIDczNmNiZjkzMWRiNTc2ZjkuNzkwNmNlNTY0ZDVjYWE1My5lZmRmZjRlZGViZDFmMWQzLjgwZDU2ZDFkMDg5OGQ2NmEKICAgICA0ZjA2ZjY0MDg2ZDI1OGQ4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU0OTc2MTY0NmU0NWZkNzQuZWY4MjU1MmE5YmNkMTFjYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZmYzZmRkY2ZlM2Y3YmRmLmZmOTc3NTZlZmZjZGZkZmYKICAgICAxNDAyOThiNTFkZjQxYzA3LjZiNTg5N2FhZDFiM2M5ZGQuZDU1MzljZDQ1MDNmNzExMy5lZjgyNTUyYTliY2QxMWNiCiAgICAgMzZkZjI1NTQzN2ViYjU1MS5iODQ4ZjRlNmM0ZjdmNDQ3LjhiZjNlMTRjZmUyMjRiY2YuNTQ5NzYxNjQ2ZTQ1ZmQ3NAogICAgIDczNmNiZjkzMWRiNTc2ZjkuNzkwNmNlNTY0ZDVjYWE1My5lZmRmZjRlZGViZDFmMWQzLjgwZDU2ZDFkMDg5OGQ2NmEKICAgICA0ZjA2ZjY0MDg2ZDI1OGQ4Ci1WVU5QQ0tMUERfMTI4KG1lbSkKK1ZQT1JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOWRmODc3YjkwNGZkM2VlYi4yOWY2NjJkYzZjZGY5ZWFhLjhjNWVhM2U3ODdlZGE3MmUuNWQ2MWQzMjNiMmRhOWVjYQogICAgIDQ1NzU2Yzc0OWMyNzQ1Y2UuYjJjYTBhOWNiZmY1NjcxMS5jYzFjZWY4MzhmYjZhNjAzLjMxYzY3OTVhZWZjODhmNjAKQEAgLTE0MTY5LDExICsxNDE2OSwxMSBAQAogICBhZnRlcgogICAgIDlkZjg3N2I5MDRmZDNlZWIuMjlmNjYyZGM2Y2RmOWVhYS44YzVlYTNlNzg3ZWRhNzJlLjVkNjFkMzIzYjJkYTllY2EKICAgICA0NTc1NmM3NDljMjc0NWNlLmIyY2EwYTljYmZmNTY3MTEuY2MxY2VmODM4ZmI2YTYwMy4zMWM2Nzk1YWVmYzg4ZjYwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVkNjFkMzIzYjJkYTllY2EuMzFjNjc5NWFlZmM4OGY2MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYzVlZWZlNzhmZmZhNzJmLjdkZTdmYjdiZmZkYTlmZWEKICAgICAxODQzYTI2MDkxYTdhNmI2LmIxN2E1YTMyZTMxMWNmYjAuNDJmOWQ4OTA3NjIyOWQ0ZS43YjY5MGI3YzNlODQyYzFkCiAgICAgYTgzZmVmM2Y4NzZhNTA5YQogCi1WVU5QQ0tIUERfMTI4KHJlZykKK1ZQWE9SXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGFjMjc4YWIzYjc2NmE4NjcuZjkyYmRjNjkyNDE0NzcxNC5kZWYwZmFlMGVjMzFlNjQwLjMxYjA2ZWQ5OGVkYzBjMWMKICAgICBlMjZmZDg0MzY4MDM2ZjMwLmE2ZDA3OTY1NDJhZjU5ZjEuNGZkZThmYjU2OTZiOGUzNi5iZGZkNmFkZWU0ZmY2ZTk0CkBAIC0xNDE4MSwxMiArMTQxODEsMTIgQEAKICAgICA1MzRhN2U2Y2M0NTAzZDY0LmQwN2RkMmUyOTJhMTNmZGUuNmU1Njg5ODMzMTYzODMwMS4xYjg5ODVjY2I3YWRmYTMzCiAgICAgYTU2MDljOGQ2ZDUxOWRiMwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MDkyMTUxY2Y3NGQwNDNkLjRmZGU4ZmI1Njk2YjhlMzYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmY0YzlhYTk5ZTI2OGEwYi43YzUxMjM1NTc3NjkxMTc2CiAgICAgZTI2ZmQ4NDM2ODAzNmYzMC5hNmQwNzk2NTQyYWY1OWYxLjRmZGU4ZmI1Njk2YjhlMzYuYmRmZDZhZGVlNGZmNmU5NAogICAgIGE2NjFkNjVkMzljZGUzYTEuZmFmY2Y3M2UwOTg1MDg3Yy42MDkyMTUxY2Y3NGQwNDNkLmMxYWM0OThiOTM5NjdmZTIKICAgICA1MzRhN2U2Y2M0NTAzZDY0LmQwN2RkMmUyOTJhMTNmZGUuNmU1Njg5ODMzMTYzODMwMS4xYjg5ODVjY2I3YWRmYTMzCiAgICAgYTU2MDljOGQ2ZDUxOWRiMwotVlVOUENLSFBEXzEyOChtZW0pCitWUFhPUl8xMjgobWVtKQogICBiZWZvcmUKICAgICAzZGZjMDliYWQxOGQyMjhkLjQ3NzZjZWRjYTUxOWJjMjguMDYxZDg0M2JmYjBmYmI0Ni5kMzc3ZTY1NWI0Mzg0OTJmCiAgICAgYmQyYjQ4NDBmZDZlNDVlZS5kZDMwYzExOTc5YjQ5Yjk3Ljc2YTg4YjM3NjBkYzM4ZGUuZWM0MDI4ZmUxYjU4OTA3MwpAQCAtMTQxOTYsMTEgKzE0MTk2LDExIEBACiAgIGFmdGVyCiAgICAgM2RmYzA5YmFkMThkMjI4ZC40Nzc2Y2VkY2E1MTliYzI4LjA2MWQ4NDNiZmIwZmJiNDYuZDM3N2U2NTViNDM4NDkyZgogICAgIGJkMmI0ODQwZmQ2ZTQ1ZWUuZGQzMGMxMTk3OWI0OWI5Ny43NmE4OGIzNzYwZGMzOGRlLmVjNDAyOGZlMWI1ODkwNzMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDYxZDg0M2JmYjBmYmI0Ni43NmE4OGIzNzYwZGMzOGRlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjcwYjUwZjBjOWJkMzgzOTguM2YzN2NlYWJhZjYwZDk1YwogICAgIGU5NmQyZTAyMjM0YjU5ZjQuNWU4MjgxYWI2ODhjNjcyOC43OGI0ODVjNThjYzEyNDUwLmFhZmY0Yjg2MDdhYTkzZWMKICAgICAwNzhiMjUzY2MzZjRjNzc4CiAKLVZVTlBDS0hQRF8xMjgocmVnKQorVlBYT1JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODhmMGQ0N2FkNGI5NmRjYS40ZDE5Y2MxODU1NjFjMWYwLjAxYjI0NmQ3YmJlMmNjYTIuYzFjYjcwMmY4YmYwMGI4MgogICAgIDg5N2E1NGFhZDU4NmMxOGUuMDk4NjJjMzZiZjRiYjgyNC5iN2EwOWU4MTcxM2E4MTc3LmI2ZmZhMGViZjVhZmUzOTQKQEAgLTE0MjA4LDEyICsxNDIwOCwxMiBAQAogICAgIDdiMmRiODk1MWE2NjYxMWIuZmNkNzIzMzliMWNiNDFkZS5jOGU5ZjhmYjc0MWRjYmU1LjBmZTliYjBhN2MwNjU0MGIKICAgICAyZDM3YTA0NGQxYjc2NmM3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRhOTk4NTE0MjUxZmMyNTUuYjdhMDllODE3MTNhODE3NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZDM5MWI5NTU0MjU0MzIyLjg3ZTUyZjBlMTJhODg0MjcKICAgICA4OTdhNTRhYWQ1ODZjMThlLjA5ODYyYzM2YmY0YmI4MjQuYjdhMDllODE3MTNhODE3Ny5iNmZmYTBlYmY1YWZlMzk0CiAgICAgNjY3NWExM2E2M2U2ZmU3MC5mYTgyY2E0NzdmMTVmOWI5LmRhOTk4NTE0MjUxZmMyNTUuMzExYThmZTVlNzA3NjdiMwogICAgIDdiMmRiODk1MWE2NjYxMWIuZmNkNzIzMzliMWNiNDFkZS5jOGU5ZjhmYjc0MWRjYmU1LjBmZTliYjBhN2MwNjU0MGIKICAgICAyZDM3YTA0NGQxYjc2NmM3Ci1WVU5QQ0tIUERfMTI4KG1lbSkKK1ZQWE9SXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDY1ZDJiODgxMDIyNzU5MTQuMjRlZDkzMjc5NTkwMjYzYi5lYzUzYjFmNzcwN2E0Y2JkLmRiZGJmMWE0ZjljMWQ4ZDUKICAgICA5NDg1ODFhYjI5NjBlODFlLmJjMDMzMDVjNzBmMzg5N2QuYTRjMGYyNmRkOTJkZDU4Mi43MGJkNmU3YTUwOTYyNGQxCkBAIC0xNDIyMywxMSArMTQyMjMsMTEgQEAKICAgYWZ0ZXIKICAgICA2NWQyYjg4MTAyMjc1OTE0LjI0ZWQ5MzI3OTU5MDI2M2IuZWM1M2IxZjc3MDdhNGNiZC5kYmRiZjFhNGY5YzFkOGQ1CiAgICAgOTQ4NTgxYWIyOTYwZTgxZS5iYzAzMzA1YzcwZjM4OTdkLmE0YzBmMjZkZDkyZGQ1ODIuNzBiZDZlN2E1MDk2MjRkMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYzUzYjFmNzcwN2E0Y2JkLmE0YzBmMjZkZDkyZGQ1ODIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDg5MzQzOWFhOTU3OTkzZi5hYjY2OWZkZWE5NTdmYzA0CiAgICAgNDc2MTEzN2JjZjYzY2QxNi4yZTVjOWU1ZmI4OGQxNzE2LmRmOWY3YjMyMTZkMTU0NzIuOTE3Y2UxNWRlNzA0NmI5YwogICAgIGQ0ZjJkMDQyNWViNWRmYzIKIAotVlVOUENLSFBEXzEyOChyZWcpCitWUFhPUl8xMjgocmVnKQogICBiZWZvcmUKICAgICAwOTg3MzIwNDE3Yzc4MmE1Ljg0MjNkNGY4ODY0NDlhNWQuYmYzODY3MDU1ZGRkYmFjNS4xYWFhYmI1ODIzZDljMmYzCiAgICAgOGQ4NzAzMTBhZmM3OTBlZS4yNzJkMzUxMmEzMWZmNTExLmFmOTllMGZlZDI5NWVjNDYuOGZkNjlkZTY0YTE2OWUwYgpAQCAtMTQyMzUsMTIgKzE0MjM1LDEyIEBACiAgICAgZWRmN2UyYjJlYmJlZTE2OS4xMjQ4YzlkMzg1ZjUzZjZmLjIxMTlkODlhOWU2YWU4NmMuOTJjNTM3ZWM1MzVjOTNhZgogICAgIGQ5MWZlODNhNmU3ZDIzOTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWNjYjA3YjdiMzNmZTc0NC5hZjk5ZTBmZWQyOTVlYzQ2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzNTJlNzQ5NjFhYTBiMDIuOTcyNzAwMmZlYzg1M2JlZAogICAgIDhkODcwMzEwYWZjNzkwZWUuMjcyZDM1MTJhMzFmZjUxMS5hZjk5ZTBmZWQyOTVlYzQ2LjhmZDY5ZGU2NGExNjllMGIKICAgICBiYTNkM2ZkMGMyNDA0NzRjLjBkNGJiM2I4NDQwMTk3NWUuNWNjYjA3YjdiMzNmZTc0NC4xOGYxOWRjOWE2OTNhNWU2CiAgICAgZWRmN2UyYjJlYmJlZTE2OS4xMjQ4YzlkMzg1ZjUzZjZmLjIxMTlkODlhOWU2YWU4NmMuOTJjNTM3ZWM1MzVjOTNhZgogICAgIGQ5MWZlODNhNmU3ZDIzOTMKLVZVTlBDS0hQRF8xMjgobWVtKQorVlBYT1JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzljYjJiYTExMjAzMTNiZC44MmZmZTkyMWM2Y2U5YmYyLjEyZjJmMzUwODEwN2E3NzAuNTlkMDRkMTUyYzlmMmE2OQogICAgIDNlOTQ3YzBjNWNmYTFkNWEuZDVhMjRlODhmMGZiYjE5Mi5lOTEzYWUxYjU1NDQ4ZDhlLjYyM2Q2NDkzZmI2Y2ViZTgKQEAgLTE0MjUwLDExICsxNDI1MCwxMSBAQAogICBhZnRlcgogICAgIGM5Y2IyYmExMTIwMzEzYmQuODJmZmU5MjFjNmNlOWJmMi4xMmYyZjM1MDgxMDdhNzcwLjU5ZDA0ZDE1MmM5ZjJhNjkKICAgICAzZTk0N2MwYzVjZmExZDVhLmQ1YTI0ZTg4ZjBmYmIxOTIuZTkxM2FlMWI1NTQ0OGQ4ZS42MjNkNjQ5M2ZiNmNlYmU4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEyZjJmMzUwODEwN2E3NzAuZTkxM2FlMWI1NTQ0OGQ4ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYmUxNWQ0YmQ0NDMyYWZlLjNiZWQyOTg2ZDdmM2MxODEKICAgICAyNmIxMzg5ZTUwNjc3MTljLjI1ZTkyOGYzOWZkZGRmYzkuOGNlZGMzNGNmMjZjYmRkMC41MzYzNjU0N2NiZmNkNDFiCiAgICAgZjRiNjQ3NTYwM2Q3NzYyNgogCi1WVU5QQ0tIUFNfMTI4KHJlZykKK1ZQU1VCQl8xMjgocmVnKQogICBiZWZvcmUKICAgICBkNGVlYmIxOGVjNzk4NTY0LjUyOWM5YzlkMzJmNzMzOTguZGEyNTkzY2U1Y2FhNzBiOC4wZjNlMTY4YWY0NzA4MDRjCiAgICAgNTA1NmJjZjkyMjZmM2U3ZS43M2Q1ZmU1MTJhMjYwMGI4LmJkMmI0ZTUyZDhjNTRjNmUuZGEzNmU5YzYzZWNlYjA5NQpAQCAtMTQyNjIsMTIgKzE0MjYyLDEyIEBACiAgICAgOGRlOTU1YzllMjg0OWRmZC4wNDYxYWM4M2NhOTdhOTBlLjdkYzhhMTA2N2ExMmQ4ZTIuYjU0ZjAwZTcxN2M5NDYzYwogICAgIDdjMDczY2E1ZGY3ZTI0ZjIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmE0ODU0ZWJiZDJiNGU1Mi5hZWI5YjE5OWQ4YzU0YzZlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkzZTNmYTY3MmEwYzliZDUuMTI5MzMwZGI1NDNjYTdiZgogICAgIDUwNTZiY2Y5MjI2ZjNlN2UuNzNkNWZlNTEyYTI2MDBiOC5iZDJiNGU1MmQ4YzU0YzZlLmRhMzZlOWM2M2VjZWIwOTUKICAgICBjNTNiNDY2NjNmNDRkYzIzLjY1MjhkYWE0NTMwMjkzMjYuMmE0ODU0ZWJhZWI5YjE5OS5jOGEzYjllYmVhOTIwOWQ2CiAgICAgOGRlOTU1YzllMjg0OWRmZC4wNDYxYWM4M2NhOTdhOTBlLjdkYzhhMTA2N2ExMmQ4ZTIuYjU0ZjAwZTcxN2M5NDYzYwogICAgIDdjMDczY2E1ZGY3ZTI0ZjIKLVZVTlBDS0hQU18xMjgobWVtKQorVlBTVUJCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGZiOTdlOTExNWViZDVmMjUuMDZhY2U1OGZhNWJjYmJiOS4yYjRjZjFkYmFhZWZmZTlkLjEyZjczMTBkZDk1YzAwZjgKICAgICAwZGNiODExOGIxOTNiMzAxLjhhZDBmMzI1MjQ3NzcyMDIuYjhiNDIzOTcwZjE4NGVmZi40NTIxMDE2ZTY3MjQ2NDg1CkBAIC0xNDI3NywxMSArMTQyNzcsMTEgQEAKICAgYWZ0ZXIKICAgICBmYjk3ZTkxMTVlYmQ1ZjI1LjA2YWNlNThmYTViY2JiYjkuMmI0Y2YxZGJhYWVmZmU5ZC4xMmY3MzEwZGQ5NWMwMGY4CiAgICAgMGRjYjgxMThiMTkzYjMwMS44YWQwZjMyNTI0Nzc3MjAyLmI4YjQyMzk3MGYxODRlZmYuNDUyMTAxNmU2NzI0NjQ4NQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yYjRjZjFkYmI4YjQyMzk3LmFhZWZmZTlkMGYxODRlZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGQ2ODMyYmM2NTI5NTA2Mi4zMzJhZDA2MThlYzg2NDhkCiAgICAgNTk0ZTY2YTI0MTMxOTQ2MS4yNjZhNzY2ZGM4YTc5ZmVkLjcwMmU0NGVhZGIwYmNlZWEuZjQ5NTRlZWE3ZDVjY2RiNQogICAgIDI5NzhjM2RlM2VlNDRjYjEKIAotVlVOUENLSFBTXzEyOChyZWcpCitWUFNVQkJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNmI4NTY3ZGI5ZTE5ZjZkNC40YzM2YWJmZmI2MTI5YTNmLmY3NzhlM2Y4MjUzNDhjZTcuNTRkODI5NWE3OWVkNzVjYwogICAgIDE4MDkzNzRjMzg4NzA4Y2IuNDFmMWNjYTU2ZWI5YTg3NS40MzE3YmUwMmFlNzQwMzFmLjBjMzBlZGRlMGNkMDA4MzAKQEAgLTE0Mjg5LDEyICsxNDI4OSwxMiBAQAogICAgIDFmYTY0ODQwOGI0MTUzZTQuYTUxMzk0ODExYThhY2Y5YS5iZjM4YWI0M2I1M2Y3ZGY3LjZjMTlmZWQyODNjNmRkMzAKICAgICBjYzQzNDUxYjlmZjE5ODI0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY3OTMwMmY3NDMxN2JlMDIuZmZmNDNmNDBhZTc0MDMxZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kYzg0YmMwYmFmODBjNGRmLjk2MmVlMzdjNWIxMWM3ZWQKICAgICAxODA5Mzc0YzM4ODcwOGNiLjQxZjFjY2E1NmViOWE4NzUuNDMxN2JlMDJhZTc0MDMxZi4wYzMwZWRkZTBjZDAwODMwCiAgICAgOGI1MDJlYTBhOGJiYmU0Mi4xNjRjNDY4Mjg3MzI3YjJmLjY3OTMwMmY3ZmZmNDNmNDAuNzYwMjBhNjJiMWJmNDE0MwogICAgIDFmYTY0ODQwOGI0MTUzZTQuYTUxMzk0ODExYThhY2Y5YS5iZjM4YWI0M2I1M2Y3ZGY3LjZjMTlmZWQyODNjNmRkMzAKICAgICBjYzQzNDUxYjlmZjE5ODI0Ci1WVU5QQ0tIUFNfMTI4KG1lbSkKK1ZQU1VCQl8xMjgobWVtKQogICBiZWZvcmUKICAgICA3MDRhNTkyNzIwNGQyZDRhLjMyNTY4MTk5N2NhMzA0NWUuY2MxMjMxOGU0NWNjNjBlMi5hNzUyYjU1MjZjZTFmOWVmCiAgICAgMzZmYmI4ZTQyM2U1NWFjZi4xZWFlZDYxNzE4NmYwZDViLjY1MTQ5Yzk1MjQwNWU5MzIuN2IyYzFjOTFiZjY3ZWVkNQpAQCAtMTQzMDQsMTEgKzE0MzA0LDExIEBACiAgIGFmdGVyCiAgICAgNzA0YTU5MjcyMDRkMmQ0YS4zMjU2ODE5OTdjYTMwNDVlLmNjMTIzMThlNDVjYzYwZTIuYTc1MmI1NTI2Y2UxZjllZgogICAgIDM2ZmJiOGU0MjNlNTVhY2YuMWVhZWQ2MTcxODZmMGQ1Yi42NTE0OWM5NTI0MDVlOTMyLjdiMmMxYzkxYmY2N2VlZDUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2MxMjMxOGU2NTE0OWM5NS40NWNjNjBlMjI0MDVlOTMyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk5MDI2YjA3ZGYzOTg5NTAuZDRkYTY3M2Y1Mzg2ZjVlNgogICAgIDkzOGE0NDFkMWRmYTY2YTUuZjU4MWMxMzNiZjczMTY5MC42MTU1YzQ0MTZiODlkNjlkLjU3NTRmMzRiYWE0ZDM2MWEKICAgICAxNzM5NWE5ZTdiYzQwMWQxCiAKLVZVTlBDS0hQU18xMjgocmVnKQorVlBTVUJCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDMzMGYwZWQxNTg1MDM1MjUuZTQwMTY5NzI0YzkwYmU0ZS45ODk1NGZhOTAyYzM4ZTIwLjdiMmI3YmJlMGNlY2IxMGYKICAgICAwNzIyMGM0ZmRkN2EwZmMzLmM1NTFjOTI2NmQ5MTlkMDYuODQ4MGU4ZjQ2MGFjNGVlNC43OTM1ZWVlNWQxNzY3NTM5CkBAIC0xNDMxNiwxMiArMTQzMTYsMTIgQEAKICAgICA0NzJlZDJkYjUxZGRhNThjLmFiYjAyNzYwZjIwOWUwNTAuYWIwYTJkYjhkYTdiOTViNi44YzE1ZjllMjM0MmRhODY4CiAgICAgNWE4Mjg4OTAwYjcyOGVjNQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNzhlODk3Zjg0ODBlOGY0Ljc0YmI5MTg3NjBhYzRlZTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmRmMjVmNzVlY2YxYmQ1ZC40NGY2NTU0MmZkNDQ5N2YxCiAgICAgMDcyMjBjNGZkZDdhMGZjMy5jNTUxYzkyNjZkOTE5ZDA2Ljg0ODBlOGY0NjBhYzRlZTQuNzkzNWVlZTVkMTc2NzUzOQogICAgIGVmYmQ0ZjgzYTdkMGNiNTcuMTM0OGRmMjc5YjBiYmZmOC4xNzhlODk3Zjc0YmI5MTg3LjM1M2Y5OWEzZDQzMmRlNDgKICAgICA0NzJlZDJkYjUxZGRhNThjLmFiYjAyNzYwZjIwOWUwNTAuYWIwYTJkYjhkYTdiOTViNi44YzE1ZjllMjM0MmRhODY4CiAgICAgNWE4Mjg4OTAwYjcyOGVjNQotVlVOUENLSFBTXzEyOChtZW0pCitWUFNVQkJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgN2I1M2M0OTc3NTBkNGQ4YS42YmJmOTRjMjc4MmRkODBmLjY3NTYxZGJlOGY5OGJiM2IuOWQ0MWQwMGEyZjc4OTMxZAogICAgIGNjNTUyOGU1OGYwYWExZTMuYjZiZDhlYTViNzRkYTE4Yi4yNDA1M2UyYjhlYzMwZGU1LjRhODA2ZWUxMGYzZmNhNjcKQEAgLTE0MzMxLDExICsxNDMzMSwxMSBAQAogICBhZnRlcgogICAgIDdiNTNjNDk3NzUwZDRkOGEuNmJiZjk0YzI3ODJkZDgwZi42NzU2MWRiZThmOThiYjNiLjlkNDFkMDBhMmY3ODkzMWQKICAgICBjYzU1MjhlNThmMGFhMWUzLmI2YmQ4ZWE1Yjc0ZGExOGIuMjQwNTNlMmI4ZWMzMGRlNS40YTgwNmVlMTBmM2ZjYTY3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY3NTYxZGJlMjQwNTNlMmIuOGY5OGJiM2I4ZWMzMGRlNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZGFmMjE2ZGZmMmI1MmFhLmFkM2Y5ZWQ3ZTBjNzM3NGEKICAgICA2OTE3NTkwMzQwNWNmNzA0LjM2MzAxZTBhZWYyYmU0MjAuMTFiMmVkZTYxZjFkMDUyNS40MDQwOGNjZmRkNThjZTU2CiAgICAgNDI1YjA0YmQwNGMzMTQ1MgogCi1WTU9WVVBTX0V0b0dfMTI4KHJlZykKK1ZQU1VCRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA2ZmFkNjdlMTI2Mjc4MmUzLjZlNmYxZWFiMTFjOTcwMjQuMjEzY2FkNjYyMDAxZDY5MS5mOTQ4NzQwYmVhNjUyMzEyCiAgICAgMjE4MWIyYTVkZTEwNTNiMy4xMjI4ZmI0OTAwYzg2Zjg4LmE1ZTY2NDZjZDlkNjRlYWMuNTIxNzE2ZjE4Nzc5YTc2ZQpAQCAtMTQzNDMsMTIgKzE0MzQzLDEyIEBACiAgICAgODdlMmVjYzI4MWEzMTBjMi5hN2U5ZWQxOGFlYWRlYmNlLmU0M2YzZTJhNTVhZmJmOGUuYzc5Mzk3YWNhNDM3ZDUyMwogICAgIDliZDc2ZjVhNWRmOGY2ZDMKICAgYWZ0ZXIKLSAgICA2ZmFkNjdlMTI2Mjc4MmUzLjZlNmYxZWFiMTFjOTcwMjQuMjEzY2FkNjYyMDAxZDY5MS5mOTQ4NzQwYmVhNjUyMzEyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFkNzg0MDhhYjczNzg4MWMuZjhlYzRkODIxMTY2NGY2NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ODZlMjNlMjIyOWVjNjkwLjU5MmFjOTZmNzYxMzU4MDkKKyAgICAyMTgxYjJhNWRlMTA1M2IzLjEyMjhmYjQ5MDBjODZmODguYTVlNjY0NmNkOWQ2NGVhYy41MjE3MTZmMTg3NzlhNzZlCiAgICAgYjUyNGRmNzdjODBiYzQ2Zi4zMTBjNmNjYTJiNjVhZTVjLjFkNzg0MDhhYjczNzg4MWMuZjhlYzRkODIxMTY2NGY2NQogICAgIDg3ZTJlY2MyODFhMzEwYzIuYTdlOWVkMThhZWFkZWJjZS5lNDNmM2UyYTU1YWZiZjhlLmM3OTM5N2FjYTQzN2Q1MjMKICAgICA5YmQ3NmY1YTVkZjhmNmQzCi1WTU9WVVBTX0V0b0dfMTI4KG1lbSkKK1ZQU1VCRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA1MDg2NTE3ODU3YjY2ZWExLmYzMDdkNGYxYTQ2NDc1NTkuNTA4OWZiMjBhNGFiZGYwNy41ODg3NTliYTRmY2EzMGFlCiAgICAgYzI2YWJhZjJhZjdjZjhiYS41NWRmOTM3MmNlZGIyZGRmLjA4YjkxMWNmMjk2YjQ5MzYuZDM5YzhkYTU0MjE0MTcyNwpAQCAtMTQzNTgsMTEgKzE0MzU4LDExIEBACiAgIGFmdGVyCiAgICAgNTA4NjUxNzg1N2I2NmVhMS5mMzA3ZDRmMWE0NjQ3NTU5LjUwODlmYjIwYTRhYmRmMDcuNTg4NzU5YmE0ZmNhMzBhZQogICAgIGMyNmFiYWYyYWY3Y2Y4YmEuNTVkZjkzNzJjZWRiMmRkZi4wOGI5MTFjZjI5NmI0OTM2LmQzOWM4ZGE1NDIxNDE3MjcKLSAgICBjZDUwMjRiNDgwNTY1MTRhLjA5YjYyNmIwOWE5Mzc1MDEuYWE0NGFiMTA1YWZhZTM4NS5iM2NhZDY1N2NhMWFhZmE2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUwODlmYjIwYTRhYmRmMDcuNTg4NzU5YmE0ZmNhMzBhZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iODJmMTZhZjg0YmY2YTJmLjdiMTUzM2ViZjI0OWU2NzkKKyAgICA0ZDA0MGRhYmU2NTEzNTdjLjZiZDc4ODE4YTUxOTg4NmEuMTRmODQ1Y2U1MzYzNmEyMC41MjVjMzEzYzgyNjgzNWQ2CiAgICAgMGVhMDk5YzAwNjg4ZTU2NAogCi1WTU9WVVBTX0V0b0dfMTI4KHJlZykKK1ZQU1VCRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA0MWUwMGE0ZmYzMDhmYmZiLjFkNTJmMGMxZmY3ODYwN2QuZDc5MGI0MTQ4YWY4YTNjOC4yMTlmNWNmNzJmYjI5YTM0CiAgICAgNDk2OTgwNTZlNDc0YjI0OC4xYjA2NGFlM2U0ZDc4ZDc5LmE5MmJhOTExZTViYzAyYzQuYWQwNzZhNzYwYWY0MmVlZApAQCAtMTQzNzAsMTIgKzE0MzcwLDEyIEBACiAgICAgNDM4NjZjNzg0NDNjZjZiMy4wZGNmNGZmZDg4NmZkZjEwLmVlM2FkNmJmNzAyNDdiNGQuYjE0NTYwMjYyZjdlNzVmYwogICAgIGUyYjQ0MDJmYjFkZmEwYWIKICAgYWZ0ZXIKLSAgICA0MWUwMGE0ZmYzMDhmYmZiLjFkNTJmMGMxZmY3ODYwN2QuZDc5MGI0MTQ4YWY4YTNjOC4yMTlmNWNmNzJmYjI5YTM0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNjZjU2MDdiNTNmMWUxMGQuOTRmYWVkMzcwMTM0ZTM3NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42YzM2NDg5NjkxY2EyMWI3LjE4MGM3ZDNmMDliZjRiNzcKKyAgICA0OTY5ODA1NmU0NzRiMjQ4LjFiMDY0YWUzZTRkNzhkNzkuYTkyYmE5MTFlNWJjMDJjNC5hZDA3NmE3NjBhZjQyZWVkCiAgICAgODA4N2Y4M2Y3NjU2NDdmNy4yMmVjOTVmZWIzN2I3OTliLjNjZjU2MDdiNTNmMWUxMGQuOTRmYWVkMzcwMTM0ZTM3NgogICAgIDQzODY2Yzc4NDQzY2Y2YjMuMGRjZjRmZmQ4ODZmZGYxMC5lZTNhZDZiZjcwMjQ3YjRkLmIxNDU2MDI2MmY3ZTc1ZmMKICAgICBlMmI0NDAyZmIxZGZhMGFiCi1WTU9WVVBTX0V0b0dfMTI4KG1lbSkKK1ZQU1VCRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAwMjEyMDczZmEyNjIxZmFlLmVlYjFkYTZiZWJiMmZhMjkuYmE3Y2YzY2I3ZWJmN2QwMy4xYTQ1MDg0OGQ3ZTAwZDMwCiAgICAgZWMyZDMzNDAxZjEzYWYzMi5kZTU2M2Q4NjA2NDI5MDA1LjA0YmZmZDU2YjE3ODBkYTEuMWM2NGYxODEyNGIyZDM2MwpAQCAtMTQzODUsMTEgKzE0Mzg1LDExIEBACiAgIGFmdGVyCiAgICAgMDIxMjA3M2ZhMjYyMWZhZS5lZWIxZGE2YmViYjJmYTI5LmJhN2NmM2NiN2ViZjdkMDMuMWE0NTA4NDhkN2UwMGQzMAogICAgIGVjMmQzMzQwMWYxM2FmMzIuZGU1NjNkODYwNjQyOTAwNS4wNGJmZmQ1NmIxNzgwZGExLjFjNjRmMTgxMjRiMmQzNjMKLSAgICA3ZWNmM2YxZjQzZmYwYzYyLjZkYmY5MjM0MzI3YWY0ZjIuYzY2NGU5ODkzZWE1NGMxNi41MGUxOGRkOGY0MjUwOTkyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJhN2NmM2NiN2ViZjdkMDMuMWE0NTA4NDhkN2UwMGQzMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YTQzMDk4YjMyYjg5MDllLjAyMWZlOTM5NGNkMmM2MzMKKyAgICA5MmM2YTdjOTJiMzFmMTZiLmY4MzlkM2UxMGFlNjYyOWMuZGUzNzM0NTA0MTUzZjU4ZC4xMTA5ZDliOGUzYzVlYTY4CiAgICAgYmQyOGQwOGQ4YzFlYjM5MgogCi1WTU9WVVBTX0V0b0dfMTI4KHJlZykKK1ZQU1VCRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBhZjhhNmRjMzhiYmRhMGJjLjA2ZGNlODI5ZjJiNjFiNzguZGIxMGZlZjkyYjEwMTViMC4yNjA0NTk5N2Q1OGNjNjMyCiAgICAgNDI3YmFmYzY3ZDJkZWM5MS5iNGRlN2MyYWI0OTg0NmI2LjcyOTAwZWU4MzA4NjRhZGEuN2M5NmQ0NGExNjVlNzkzMwpAQCAtMTQzOTcsMTIgKzE0Mzk3LDEyIEBACiAgICAgYmYzOTBhZTRhOGIyOTRlZS4zMmQ1OTJjNDljYTk4ZTc0LjJkYmFjZGZjNTc4NTI5MWYuYmUzZGJkYTUxMWZjNzdmMwogICAgIDYyZTkyMjI1MDNkZjNhMGIKICAgYWZ0ZXIKLSAgICBhZjhhNmRjMzhiYmRhMGJjLjA2ZGNlODI5ZjJiNjFiNzguZGIxMGZlZjkyYjEwMTViMC4yNjA0NTk5N2Q1OGNjNjMyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE5MDVmZjFhYjVkNDNkYzYuYmFiYjIxNTYyMWQ1Y2FiOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OThhMGZjZTdhYjIwZDE0LmMxZGJiMmY0ZjQ4OGFlN2EKKyAgICA0MjdiYWZjNjdkMmRlYzkxLmI0ZGU3YzJhYjQ5ODQ2YjYuNzI5MDBlZTgzMDg2NGFkYS43Yzk2ZDQ0YTE2NWU3OTMzCiAgICAgZDQ0NzhmMDJmZGZiZDRiZS43YTk3ZTFiYThlZTUyZTUxLjE5MDVmZjFhYjVkNDNkYzYuYmFiYjIxNTYyMWQ1Y2FiOQogICAgIGJmMzkwYWU0YThiMjk0ZWUuMzJkNTkyYzQ5Y2E5OGU3NC4yZGJhY2RmYzU3ODUyOTFmLmJlM2RiZGE1MTFmYzc3ZjMKICAgICA2MmU5MjIyNTAzZGYzYTBiCi1WTU9WVVBTX0V0b0dfMTI4KG1lbSkKK1ZQU1VCRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA4NDhiY2VjMDEyOGFkMDJlLjYxOWUxZGQ2MTlkZTY4Y2UuYmE2MjBjMzRmOWVmMjM0Yy4wOGZkNzVmOGIyMjU0YzkxCiAgICAgZmVlZTNjNjQ1YjBhZjQ4Ny4xNGMyYzM0NmVkMGM4YjA5LmVjMGNjOWY2YzFjM2E5MDUuMDcxOGYyN2I2MTQwZTBjOQpAQCAtMTQ0MTIsMTEgKzE0NDEyLDExIEBACiAgIGFmdGVyCiAgICAgODQ4YmNlYzAxMjhhZDAyZS42MTllMWRkNjE5ZGU2OGNlLmJhNjIwYzM0ZjllZjIzNGMuMDhmZDc1ZjhiMjI1NGM5MQogICAgIGZlZWUzYzY0NWIwYWY0ODcuMTRjMmMzNDZlZDBjOGIwOS5lYzBjYzlmNmMxYzNhOTA1LjA3MThmMjdiNjE0MGUwYzkKLSAgICBhZGUwZTlmY2Y5NmE2NDQzLjM2ZjFmODllYmZjNzNhNGMuYTU5ZDQ3ZjcxMTMxZGJjYS44NjU4NDBmMjAwNjMyMTczCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJhNjIwYzM0ZjllZjIzNGMuMDhmZDc1ZjhiMjI1NGM5MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMWFhYmRjMmM3ZDQ4NWI5LmZlMWI3YzgzYWYxYjk0MzgKKyAgICA2ZTJiNGY3NDA4YjdkYThkLjIxNzdiOTRjMmM5YmIxNDMuYzJlMjAxMjEwNTQ2NzZjNy5lMDA5NWJjODJjMTk0ZDNiCiAgICAgNzM3NjQwNjg4MWVlOWVjYwogCi1WQUREUFNfMjU2KHJlZykKK1ZQQURERF8xMjgocmVnKQogICBiZWZvcmUKICAgICA5YWVkZWE0MDk5NmY1MGQyLjFiOWRlY2I3YTZmYzEzOTIuMzNhMDAwYmJjZjE1MmI5OS4xZGE3NzM2MWI4MGQzNjJhCiAgICAgYjFiODU1YmIxMzI3YTFmYS45MTAwM2JiNGVjNDVjYTdlLmM2YjdjYjU3NDRjMGU1ZmIuOTNiNzFhYTQ0NjkzZDcxZApAQCAtMTQ0MjQsMTIgKzE0NDI0LDEyIEBACiAgICAgMWY3ZTVlNGE5NzZlMGI1Zi40OGNiZTA4NGU2MTRhNWI5LmUyZTNkYmM2MTdkYTA5OTIuNDBlY2YzZGY2NTA5YWE2NAogICAgIDMwYTgxZWIwMmUxMTU1MTEKICAgYWZ0ZXIKLSAgICBiMWI4NTViYjEzMjdhMWU2LmFjMjFiODU0Zjg5ZWJjN2MuYzZiN2NiNTc0NGMwZTVmYi45M2I3MWFhNGNjZTMwYjhmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZkYzFlMGUzNmNlOTAxMTAuOTQ5NzhiNzgxMzc2ZWJlOQogICAgIGIxYjg1NWJiMTMyN2ExZmEuOTEwMDNiYjRlYzQ1Y2E3ZS5jNmI3Y2I1NzQ0YzBlNWZiLjkzYjcxYWE0NDY5M2Q3MWQKICAgICAxNDI1N2Q0NTg5YTNjYmYwLmFjMjFiODU0Zjg5ZWJjN2MuMzcwYTE1OGMyODI4MWIxNS4wMGUwNzBkNGNjZTMxNGNjCiAgICAgMWY3ZTVlNGE5NzZlMGI1Zi40OGNiZTA4NGU2MTRhNWI5LmUyZTNkYmM2MTdkYTA5OTIuNDBlY2YzZGY2NTA5YWE2NAogICAgIDMwYTgxZWIwMmUxMTU1MTEKLVZBRERQU18yNTYobWVtKQorVlBBREREXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGFhZTA2ZTMzNDIwOGQwZmUuMmQxMGY1MzdkOTE0OWRmNC40MmNjMmUzMGQxYjI0MTYwLjI0OGYxNzcxYWM2MWVhMWUKICAgICA4YjYwNWQ1NGJlZmFkOTU4LjljMjYzZDc2ZWQyMWJjNWIuNzRlZTFlNDVkNTg1NGI5ZS41NzVhYzdmOTgzNDlmYjY3CkBAIC0xNDQzOSwxMSArMTQ0MzksMTEgQEAKICAgYWZ0ZXIKICAgICBhYWUwNmUzMzQyMDhkMGZlLjJkMTBmNTM3ZDkxNDlkZjQuNDJjYzJlMzBkMWIyNDE2MC4yNDhmMTc3MWFjNjFlYTFlCiAgICAgOGI2MDVkNTRiZWZhZDk1OC45YzI2M2Q3NmVkMjFiYzViLjc0ZWUxZTQ1ZDU4NTRiOWUuNTc1YWM3Zjk4MzQ5ZmI2NwotICAgIGFhZTA2ZTMzNDIwNmRiNGIuMmQxMGY1MzdlZDIxYmM1Yi43NGVlMWU0NWQ1ODVmZGRmLjU3NWFjN2Y5YWM2MWVhMWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjdiYTRjNzVhNzM3OGNmZS43YmU5ZGY2YTJmYWJlNTg1CiAgICAgZjI2NzBkMjA1YmZiN2YwMS4wOTEzZDA5ZWY0YTM5NDRkLmYzYzlkNDU2OWFmNzljOGUuMDM3YzcwNTE2YTZlOWNkYQogICAgIDM0NmI2MWY5YjBjMmE1NWQKIAotVkFERFBTXzI1NihyZWcpCitWUEFERERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYzhhYWI2MmRhYWE4Y2M0Yi4zMDg3YzVhM2I1MjM5NWE5LmMwODAxMzVlMjEyZWM1MzAuZjgxOTkzMmI5M2FmNWE5OAogICAgIDE5ODM2YTViZjJhYjUwNTIuNDUxZTBkNzRlNzc2Mjk2ZC40N2EyZjgyMjhlNTE3Mzk1LmE2YmJlMzE3MTZjYjc4ZTgKQEAgLTE0NDUxLDEyICsxNDQ1MSwxMiBAQAogICAgIDY1MzVkZjUyZGQzOTViNTUuNjRlNDNmYjE0MGNhYjVmYi4zNDM1OTU2MzlhOGQzOTkzLjZkMjQyY2U5Mjc2MGJlMGQKICAgICAzZDgzMWJhNmVkZjE2MDM5CiAgIGFmdGVyCi0gICAgMTk4MzZhNWJmMmFiNTA1Mi40NTFlMGQ3NGU3NzYyOTZkLmY5YzU3YTU1ZDg5N2RiMjcuZDk3YTQyMDgzZDU3YjBhYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MTY4NzI3NzY2ZTk0ZWJjLjgwMzYyNTFmNTQyMzI5OTMKICAgICAxOTgzNmE1YmYyYWI1MDUyLjQ1MWUwZDc0ZTc3NjI5NmQuNDdhMmY4MjI4ZTUxNzM5NS5hNmJiZTMxNzE2Y2I3OGU4CiAgICAgODQ0Mzc5ZWUyNDU3NmIxYi4wZGY5NjI4MDBjZmZmNDdhLmY5YzU3YTU1ZDg5N2RiMjcuZDk3YTQyMDgzZDU3YjBhYgogICAgIDY1MzVkZjUyZGQzOTViNTUuNjRlNDNmYjE0MGNhYjVmYi4zNDM1OTU2MzlhOGQzOTkzLjZkMjQyY2U5Mjc2MGJlMGQKICAgICAzZDgzMWJhNmVkZjE2MDM5Ci1WQUREUFNfMjU2KG1lbSkKK1ZQQURERF8xMjgobWVtKQogICBiZWZvcmUKICAgICAyNzY0OGQyYmFkMTY1MDVjLjE4YTc5OGYzYjhkYzU5YWEuMjVhYjIwZjVhMGU0MjYxZC41MjNlNDZiODcwYmVjODg1CiAgICAgMDY5M2ZjNjU4M2RjNGJhMS5mOWU0YTEzZDUxY2RhNGM2LjJlMTk4MTM3NDg1ODA0MGIuYjEyYjg3YzBmN2I2YzVhOApAQCAtMTQ0NjYsMTEgKzE0NDY2LDExIEBACiAgIGFmdGVyCiAgICAgMjc2NDhkMmJhZDE2NTA1Yy4xOGE3OThmM2I4ZGM1OWFhLjI1YWIyMGY1YTBlNDI2MWQuNTIzZTQ2Yjg3MGJlYzg4NQogICAgIDA2OTNmYzY1ODNkYzRiYTEuZjllNGExM2Q1MWNkYTRjNi4yZTE5ODEzNzQ4NTgwNDBiLmIxMmI4N2MwZjdiNmM1YTgKLSAgICAyNzY0OGQyYmFkMTY1MDVjLmY5ZTRhMTNkNTFjZGE0YzYuMmUxOTgxOGQ0ODU4MDQwYi41MjNlNDZiOGY3YjZjMmFkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUzYzRhMjJjZTkzYzJhMjguMDM2OWNlNzg2ODc1OGUyZAogICAgIDEzMGJjN2E0ZGY3ODUwNDQuYjRlZDkwN2MzMGM2MGMwNi44NTFlYjQ2NWRkN2ZmNmZlLjlkZTVhZTk5ODYyZGY5MzQKICAgICBlNDQ5OGI0M2M3YzNhN2Y0CiAKLVZBRERQU18yNTYocmVnKQorVlBBREREXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGRhYzJlYTRmMjc1MWIzOTUuZjhlYzE5ODE5ZDY3ZDNmOS40NzUyNmY0YWFkZTZhMjgyLjhiNGM3ZTI5MDM0YTgyNWIKICAgICBkZDljYzUyYjQ1NjI1OWM1LjQzNGE1YWMzZTAyNjUxODAuNzhiMjhjNzA1OTg0NzM3NS40NzUyYjg5YmUwOWY2YjM0CkBAIC0xNDQ3OCwxMiArMTQ0NzgsMTIgQEAKICAgICA3NWEyZTRmZjI1M2U2MjdjLjc3YjA5NjIyNjg0NTJkYjguMjQ5Mjc1NzlhYjY4Yjk3MS41NjE2NmQzOTMxMTk0MzBiCiAgICAgNWY2YmUwM2RkZDU1YWE2MgogICBhZnRlcgotICAgIGRkOWNjNTJiNDU2MjU5YzEuY2ZmMjA1NTRlMDI2NTE4MC43OGIyOGM3MDU5ODQ3MzcwLjQ3NTJiODliZTA5ZjZiMzQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWMwYjcxY2MyOGIwMzAwMC5kZjRmOTg0MjcyMmFkOGU5CiAgICAgZGQ5Y2M1MmI0NTYyNTljNS40MzRhNWFjM2UwMjY1MTgwLjc4YjI4YzcwNTk4NDczNzUuNDc1MmI4OWJlMDlmNmIzNAogICAgIDQ3MjIxYTQxYmE4MmQ0MmUuY2ZmMjA1NTRjNWMxODUwNy5hMzU4ZTU1Y2NmMmJiYzhiLjk3ZmNkZmE3OTE4YjZkYjUKICAgICA3NWEyZTRmZjI1M2U2MjdjLjc3YjA5NjIyNjg0NTJkYjguMjQ5Mjc1NzlhYjY4Yjk3MS41NjE2NmQzOTMxMTk0MzBiCiAgICAgNWY2YmUwM2RkZDU1YWE2MgotVkFERFBTXzI1NihtZW0pCitWUEFERERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTBjOWIzYTBiMDRjNWVlNS5jMzY2MjBkMDFmMjEzYzVjLjE5NTA4YTE4ZTRiZDAyYmYuNTZhYTM4MzI4YWM1YTVkMwogICAgIGMzZmE2MjRkYzcwOTFhYzEuOGRiYmM4MjA0N2I3YTE3YS44ZjllNWIyMjU1MzVjMzQ5Ljk3ZWUyYmY1MDhkMWJlNWMKQEAgLTE0NDkzLDExICsxNDQ5MywxMSBAQAogICBhZnRlcgogICAgIDkwYzliM2EwYjA0YzVlZTUuYzM2NjIwZDAxZjIxM2M1Yy4xOTUwOGExOGU0YmQwMmJmLjU2YWEzODMyOGFjNWE1ZDMKICAgICBjM2ZhNjI0ZGM3MDkxYWMxLjhkYmJjODIwNDdiN2ExN2EuOGY5ZTViMjI1NTM1YzM0OS45N2VlMmJmNTA4ZDFiZTVjCi0gICAgYzNmYTYyNGRjNzA5MWFjMS5jMzY2MjBkMDQ3YjdhMTdhLjE5NTA4YTA0ZTRiZDAyYmYuNTZhYTM4MzI4YWI4ODllZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hOGVlZTUzYTM5ZjJjNjA4LmVlOTg2NDI3OTM5NzY0MmYKICAgICBhMzA4NDUzNDJmMDY5ZDMzLjA2NDg1MWVkOGEyZWY3MWUuNmM3Mzg5MjM4OTU3ZjQ5NS5iMjI1OGQ0NjRlMWY2MTk2CiAgICAgNDViMGY1YWM0ZjdhNjU5ZQogCi1WU1VCUFNfMjU2KHJlZykKK1ZQTU9WWlhCV18xMjgocmVnKQogICBiZWZvcmUKICAgICA1Njk3N2NjYzVlYjM4NDdlLjA4N2Q3MTQ3Yjg1ZmRjMjAuNmMxNzI5NDJkZjI2NjFmYy44OTkzZGRmMTgyMThkZGFmCiAgICAgNDAyNDFmMTAxODU1ZmJlMS5kZmY1Njk1NGY0YWQxMzE3LmJlYTg1ZmM2ZDAwMjQ1YzguZWI5MDAwODNlMjBhYTBmYwpAQCAtMTQ1MDUsMTIgKzE0NTA1LDEyIEBACiAgICAgMTM2NGE2YjhmYjA1ZTBlMi41NzIyYWUwY2Y4NWQ1Y2NkLjk2M2NkMTBjZjc5MzY5ZDkuZWY1NGEwYTQ0MWFmYTdkYwogICAgIDQ5YjIxNTBiNzg3YTYzYzkKICAgYWZ0ZXIKLSAgICBlMWE1ZDllNTk4ODEwNzg0LmRmZjU2OTU0ZjRhZDEzMTcuZDg0NWVkZTY3OTRkZGUyZS5lZjM4OGRjN2UyMGFhMGZjCi0gICAgNDAyNDFmMTAxODU1ZmJlMS5kZmY1Njk1NGY0YWQxMzE3LmJlYTg1ZmM2ZDAwMjQ1YzguZWI5MDAwODNlMjBhYTBmYworICAgIDU2OTc3Y2NjNWViMzg0N2UuMDg3ZDcxNDdiODVmZGMyMC42YzE3Mjk0MmRmMjY2MWZjLjg5OTNkZGYxODIxOGRkYWYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDA2ZjAwMzcwMDZkMDBjNi4wMGMyMDAzODAwZmIwMGE3CiAgICAgNjFhNWQ5ZTUxOGVjMDU3NC4wNjNlYWE0NzAwZmVmZjQxLjU4NDVlZGU2Zjk0ZGRlMmUuNmYzNzZkYzZjMjM4ZmJhNwogICAgIDEzNjRhNmI4ZmIwNWUwZTIuNTcyMmFlMGNmODVkNWNjZC45NjNjZDEwY2Y3OTM2OWQ5LmVmNTRhMGE0NDFhZmE3ZGMKICAgICA0OWIyMTUwYjc4N2E2M2M5Ci1WU1VCUFNfMjU2KG1lbSkKK1ZQTU9WWlhCV18xMjgobWVtKQogICBiZWZvcmUKICAgICA1NzFmNDhlNjg1YTVlOTk4LmI0YWU4MmY0NWMyYmM2ZDguYWY2ZWYzOGZmNmQ2ZTVlNS5kNGQ3MDZhNjY2NjEyMTc2CiAgICAgZjY2NWI2MjE4NDNjZjY3NS45ZWNlNjkwNGQ4ZWFmMzAyLmViZWVmNGJjMTk3NjU3YjYuNmU2Mjg5MWVlMTQyNDRiMApAQCAtMTQ1MTksMTIgKzE0NTE5LDEyIEBACiAgICAgZmJhM2I3ZmJiNGQyN2RjOQogICBhZnRlcgogICAgIDU3MWY0OGU2ODVhNWU5OTguYjRhZTgyZjQ1YzJiYzZkOC5hZjZlZjM4ZmY2ZDZlNWU1LmQ0ZDcwNmE2NjY2MTIxNzYKLSAgICBmNjY1YjYyMTg0M2NmNjc1LjllY2U2OTA0ZDhlYWYzMDIuZWJlZWY0YmMxOTc2NTdiNi42ZTYyODkxZWUxNDI0NGIwCi0gICAgZjY2NWI2MjEwNThlNGFjOS4zNGFlODJmNGRjMmQ5Y2JlLmViZWVmNGJjNzZkNmU1ZTUuNmU2Mjg5MWVlNjYxNTIwNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGQ0MDBkNzAwMDYwMGE2LjAwNjYwMDYxMDAyMTAwNzYKKyAgICAwMjUyZGFhODkwNGM0NjhkLjJlMTI1ODU2MGFjZmE1MGIuZTU2ZTJkODA3YjQ4NmU2Yi5jMDJiNTRlMjA0YzMwYzM0CiAgICAgNThiMDMwNjdjNmUwOTUwYy5jMWM1NGE1NThlNjUxNmEwLjdhYmExYmM1Mzg1OWU2MzEuMjY3ZDY1NWQ2YzZmYjZhZQogICAgIGZiYTNiN2ZiYjRkMjdkYzkKIAotVlNVQlBTXzI1NihyZWcpCitWUE1PVlpYQldfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOWRlYTQ2Mjg3OTc4OWUzMS5kMjRjMzQ0YTQxMDU5ZTFkLmIxMzIzYjZkMDEzODgzNmQuODY5ZDM4Nzk2ZGI0N2EzMwogICAgIDY3OWYwZTUwNTZlZTU1OTQuNGRmMTYyM2QxZGM2MWVlZC41YmE2MjcwYWZmZDUyODFkLmU2ZTUwMjg3MzU2NWU3OWUKQEAgLTE0NTMyLDEyICsxNDUzMiwxMiBAQAogICAgIGUyN2QzYjQyY2E3ODc1ZjUuYjY4YTJlMDQ2YjRkNzI3OC40ZWQzZTE4MzA5OWEwOGQ4LjBkY2Y4YTYwZjBmYjNiNWUKICAgICA4ZDBhNDEwNDFiZjc5YjBiCiAgIGFmdGVyCi0gICAgNjc5ZjBlNTA2OGJmZGU5Yy40ZGYxNjIzZGY3MmZkMGE3LjViYTYyNzBhZmZkNTI4MWQuZjQ1Y2Y0ZGEzNTY1ZTg5OAotICAgIDY3OWYwZTUwNTZlZTU1OTQuNGRmMTYyM2QxZGM2MWVlZC41YmE2MjcwYWZmZDUyODFkLmU2ZTUwMjg3MzU2NWU3OWUKKyAgICA5ZGVhNDYyODc5Nzg5ZTMxLmQyNGMzNDRhNDEwNTllMWQuYjEzMjNiNmQwMTM4ODM2ZC44NjlkMzg3OTZkYjQ3YTMzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwNzQwMDVjMDBmNDAwZGEuMDBhZDAwNzkwMGU5MDA5ZQogICAgIGI1MGIwY2RmZThiZmRlOWMuYTU2ZDM3MmM3NzJmZDBhNy4xYzZkMGI5ODIzYzc0MDVjLjc0NWNmNGRhYWQ3OWU5OWUKICAgICBlMjdkM2I0MmNhNzg3NWY1LmI2OGEyZTA0NmI0ZDcyNzguNGVkM2UxODMwOTlhMDhkOC4wZGNmOGE2MGYwZmIzYjVlCiAgICAgOGQwYTQxMDQxYmY3OWIwYgotVlNVQlBTXzI1NihtZW0pCitWUE1PVlpYQldfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZDBkODk0YjI0OTc5YzJkMC40YzQwOTdlMzk5YTQ1NTRjLjVjMTZjM2FmMTQyYmJlOGMuNGUyNGE3Mzg0ZWRiYmMzYQogICAgIGIyMDdmZjU2OTc4ZTZmZGEuNGU5ZjFjMzBmMGNmYmE0ZC43M2RiNzIxYjhlZDU3MDBlLjc4YWI1OTIxOGUxNTk3MzEKQEAgLTE0NTQ2LDEyICsxNDU0NiwxMiBAQAogICAgIDhhODNjNzU0NDIxMzcwNDIKICAgYWZ0ZXIKICAgICBkMGQ4OTRiMjQ5NzljMmQwLjRjNDA5N2UzOTlhNDU1NGMuNWMxNmMzYWYxNDJiYmU4Yy40ZTI0YTczODRlZGJiYzNhCi0gICAgYjIwN2ZmNTY5NzhlNmZkYS40ZTlmMWMzMGYwY2ZiYTRkLjczZGI3MjFiOGVkNTcwMGUuNzhhYjU5MjE4ZTE1OTczMQotICAgIDUwZDg5NGIyYzk3OWMyZDAuNGU5OTE3NzFmMGNmYmE0ZC43M2RiNzIxYjk0MmJkOTNhLjc4YWI1OTIxY2VkYmJjM2EKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDA0ZTAwMjQwMGE3MDAzOC4wMDRlMDBkYjAwYmMwMDNhCisgICAgMGY2MWZlZGQyMDQyNWM1NS40M2U4Yzc5MzZiODVlMmEzLmQ3YTZiODMzZjY1NzQ2MmIuMjhiNmYxYWM2M2Q0ZDY2NwogICAgIGMzYjQwZDMxMDA5ZjQ3NmMuODk2NTkyN2FhODUzMDdmYi42NDQzMTBlMjY3YmVmYTBlLmJhOGY2YzQ0NmNhNWI1ODgKICAgICA4YTgzYzc1NDQyMTM3MDQyCiAKLVZTVUJQU18yNTYocmVnKQorVlBNT1ZaWEJXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGY1ZGVmZDRhODRhYTQyM2UuYWFjYWE5NDA1NGIzZTk0Yy43YTYzN2I1MDQwYzU2NjAxLmY2N2RmNjE2ZmUxNjQ5ZTQKICAgICA1NWVjMGI5MWNiZjc2ODJiLmEwNzA0ZGY0Mzg4OTAxMjAuNzQyZTdkODFkMTY1M2I2MC42OTIyZTZiYWQ2NjllZmQ5CkBAIC0xNDU1OSwxMiArMTQ1NTksMTIgQEAKICAgICA2NjUwOWJjMmRlZTFhMDgyLjI4OWI5ZGZmMWRhZDdlNTcuZWY1YWJkYTQ0YzY0MzZkYi42MmQ4ZDUwM2JiMzYyZWNlCiAgICAgYTA4M2NjN2YwMGM2NDAyNgogICBhZnRlcgotICAgIDU1ZWMwYjkxY2JmNzY4MmIuYTA3MDRkZjQ0NzJlNDkxNS43NDJlN2Q4MTc3YzFjMWM1LjY5MjJlNmJhZDY2OWVmZDkKLSAgICA1NWVjMGI5MWNiZjc2ODJiLmEwNzA0ZGY0Mzg4OTAxMjAuNzQyZTdkODFkMTY1M2I2MC42OTIyZTZiYWQ2NjllZmQ5CisgICAgZjVkZWZkNGE4NGFhNDIzZS5hYWNhYTk0MDU0YjNlOTRjLjdhNjM3YjUwNDBjNTY2MDEuZjY3ZGY2MTZmZTE2NDllNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDk5MDBmYzAwNWMwMGJhLjAwMGMwMGM1MDBhNzAwMTgKICAgICAwNmY4ZWI5NWI2ODUxZWIzLjgxNzE3NTNiYzcyZTQ5MTUuZDIxMTk1NzlmN2MxYzFjNS45OWZjNWNiYTBjYzVhNzE4CiAgICAgNjY1MDliYzJkZWUxYTA4Mi4yODliOWRmZjFkYWQ3ZTU3LmVmNWFiZGE0NGM2NDM2ZGIuNjJkOGQ1MDNiYjM2MmVjZQogICAgIGEwODNjYzdmMDBjNjQwMjYKLVZTVUJQU18yNTYobWVtKQorVlBNT1ZaWEJXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJlYzZiZDFiZjY4Mzk5NGQuZDAzZTE2ODRlMjk1Mjk0Ni43M2I4NDEyZTU3MTI1YzExLjI4NTNmMzZlNmZkYmQzNGYKICAgICBlYTcwMjRjNGJhNzlmNDZlLmEwMGY1ODQ4NWIyZmY2YTguM2Q5NmRlYjM5MDZhOWU2Zi5kYTRhMzI0M2ZhYjFkN2NjCkBAIC0xNDU3MywxMiArMTQ1NzMsMTIgQEAKICAgICA1NjExZmUzZTI1ZTc5YzM2CiAgIGFmdGVyCiAgICAgMmVjNmJkMWJmNjgzOTk0ZC5kMDNlMTY4NGUyOTUyOTQ2LjczYjg0MTJlNTcxMjVjMTEuMjg1M2YzNmU2ZmRiZDM0ZgotICAgIGVhNzAyNGM0YmE3OWY0NmUuYTAwZjU4NDg1YjJmZjZhOC4zZDk2ZGViMzkwNmE5ZTZmLmRhNGEzMjQzZmFiMWQ3Y2MKLSAgICBlYTcwMjRjNDc2ODM5OTRkLjUwM2UxNjg0NjI5NTJhYTYuZjNiODQxMmVkNzEyNWMxMS5kYTRhMzI0M2ZhYjFkN2NmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMjgwMDUzMDBmMzAwNmUuMDA2ZjAwZGIwMGQzMDA0ZgorICAgIGFmNGM3ZTY0NjdiMjBlYjYuMzIwZjVkNzhlNzNiNDI1Ny42MmZmZWY3YWU1YzAwMTlmLjVmODk3NjkwODk3MjdjZmYKICAgICA1OTI1NDZlOTE5M2NhMjUxLmUyOGEyMjgyMjI0NDRiZmQuYmRjMGYwNmY3MTIwNDFjYi4xNTVkYmNiZmI5YWJmZjk0CiAgICAgNTYxMWZlM2UyNWU3OWMzNgogCi1WTVVMUFNfMjU2KHJlZykKK1ZQTU9WWlhXRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA3ZmYzM2E3NzZhYjI4ZjkyLmMzYzhmNzNlZWQyMzZlNmIuMGNjY2ExZDBhN2Q2NGI0Ni4yY2E1NWQ3ZTUxOTcxYTFmCiAgICAgZWM0ZDZiZDgyMzk5MTM1My5jYjAyMTA0ZWZmNzEyYzJlLjBiMjBkOGQwMTI3ZDdmZGYuOGE3OWIzOTRhMDMwNDdjOApAQCAtMTQ1ODYsMTIgKzE0NTg2LDEyIEBACiAgICAgMDM5ZDlkYmY2M2U4YzBiNy4yMTY1NjM1NDRhNzg3MDY2LmZkMzI1YzkzMGQzZDcxYjAuODIyMjA3ODFmZGY5OTBjOAogICAgIGQ0OGZmZDMwNDM0MTIzNzcKICAgYWZ0ZXIKLSAgICA3ZjgwMDAwMGQxNDgzMDJkLmQ3MWU4ZTBmZmY4MDAwMDAuMDk4NWFlYTYwMDAwMDAwMC4wMDAxMGUwYmRjYWIyMWM2Ci0gICAgZWM0ZDZiZDgyMzk5MTM1My5jYjAyMTA0ZWZmNzEyYzJlLjBiMjBkOGQwMTI3ZDdmZGYuOGE3OWIzOTRhMDMwNDdjOAorICAgIDdmZjMzYTc3NmFiMjhmOTIuYzNjOGY3M2VlZDIzNmU2Yi4wY2NjYTFkMGE3ZDY0YjQ2LjJjYTU1ZDdlNTE5NzFhMWYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGIyMGEwMDAwNmQ5Yi4wMDAwN2JmODAwMDA4NWYyCiAgICAgZmE2ZDhlY2NlZDI3NjUyNi40YjljMGEwNzZhMzQ5OWM5LjNkZDRjM2VkMDBjNjIyNzQuYjIwYTZkOWI3YmY4ODVmMgogICAgIDAzOWQ5ZGJmNjNlOGMwYjcuMjE2NTYzNTQ0YTc4NzA2Ni5mZDMyNWM5MzBkM2Q3MWIwLjgyMjIwNzgxZmRmOTkwYzgKICAgICBkNDhmZmQzMDQzNDEyMzc3Ci1WTVVMUFNfMjU2KG1lbSkKK1ZQTU9WWlhXRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA4NjFiY2M5NjY4ZGNmYjJiLjY0MmE5NjFkMjI2OTYyYjEuMjgyODk2MjFiYzQ4NmYzMi5hNzg3YTEyZGQzNmNhODQwCiAgICAgNzI5M2VlOWU4OWQ1ZDQwZi43OTYwNzQ1MmM1MzU4NWMxLjNiYjAxZjViZGJiMDUwNTguOTYxZjhkMmFmMWUxMDNkMApAQCAtMTQ2MDAsMTIgKzE0NjAwLDEyIEBACiAgICAgYTE3MDE0OWM2ODU4NDIzNAogICBhZnRlcgogICAgIDg2MWJjYzk2NjhkY2ZiMmIuNjQyYTk2MWQyMjY5NjJiMS4yODI4OTYyMWJjNDg2ZjMyLmE3ODdhMTJkZDM2Y2E4NDAKLSAgICA3MjkzZWU5ZTg5ZDVkNDBmLjc5NjA3NDUyYzUzNTg1YzEuM2JiMDFmNWJkYmIwNTA1OC45NjFmOGQyYWYxZTEwM2QwCi0gICAgYjkzNDBmNjViMzM4OTQwOC43ZjgwMDAwMGE4MjU3Y2I3LjI0NjdmN2JhNTg4YTBiNWEuMDAwNTQ4N2U3ZjgwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwYTc4NzAwMDBhMTJkLjAwMDBkMzZjMDAwMGE4NDAKKyAgICA3NmMyZTEzM2MxMzg2YTUwLjllOGEzM2NhZThkOTY1OTMuMzhjYjdhZWNjNGJjY2YwNS4yODQ2MWNmMzAxMjdiZTBiCiAgICAgNmM3NjIwNDMyYzExNzgxOS4yZmY2ZDBmMTI4ZGY0MGQyLmY5NDMyM2MxOTI3OWFhNjQuYjc0NzRhZjU5ZmNiMTQ5ZQogICAgIGExNzAxNDljNjg1ODQyMzQKIAotVk1VTFBTXzI1NihyZWcpCitWUE1PVlpYV0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDAwYjc0NTVmNzVhODM3YS4zMjc5MjhiOWU3NmRiYjk3Ljg4ZWU0NTM0MjFkNTUwMmEuNWJlNTk3Yzc2MmYyOWJhMgogICAgIGYyNjU2ODhhZTk1ZTE0MWIuYTI5OTczODEwZTU3ZWZmNS4wNWJmOTBmZDZlNDdkMjQ4LjNiN2Q1MWU4NGYzNDVmZWIKQEAgLTE0NjEzLDEyICsxNDYxMywxMiBAQAogICAgIGZiODZmYTFkNjM5OTE2MjEuZjQ1YmM3YjgwZDA2MTgwNC5kYjFjOTZkNTc1Y2MxYjg1LmUwYmU4ODMwZjIzZjRmNGMKICAgICA1ZmZmZmMyZWUwMjJmM2JkCiAgIGFmdGVyCi0gICAgYzRiNWQ4OTE3ZjgwMDAwMC4wMDAwYzA2OThiYmE0MTIzLjAwMDAwMDAwZGE5NWRmZWUuNmZkNDhkNjQ3ZjgwMDAwMAotICAgIGYyNjU2ODhhZTk1ZTE0MWIuYTI5OTczODEwZTU3ZWZmNS4wNWJmOTBmZDZlNDdkMjQ4LjNiN2Q1MWU4NGYzNDVmZWIKKyAgICA0MDBiNzQ1NWY3NWE4MzdhLjMyNzkyOGI5ZTc2ZGJiOTcuODhlZTQ1MzQyMWQ1NTAyYS41YmU1OTdjNzYyZjI5YmEyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDA3M2Q2MDAwMGNkMTIuMDAwMDc2NDkwMDAwYjE2YQogICAgIDExY2FlY2E5ZDllZjMxYzQuOTlhMDdmODhiY2RjY2Y2MC4wMmI1YWNiYWFiYzAwMmQ4LjczZDZjZDEyNzY0OWIxNmEKICAgICBmYjg2ZmExZDYzOTkxNjIxLmY0NWJjN2I4MGQwNjE4MDQuZGIxYzk2ZDU3NWNjMWI4NS5lMGJlODgzMGYyM2Y0ZjRjCiAgICAgNWZmZmZjMmVlMDIyZjNiZAotVk1VTFBTXzI1NihtZW0pCitWUE1PVlpYV0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgY2E2N2E3Zjg1YmZkNWFlOC4wYWU0OTA1MTI1ZThmZmRkLjhkOTZjN2ZlMWVlNDg2MGMuZWM0MDQ4YmM2N2Y3NWFmYwogICAgIGZlYzAwNDdhN2ZkYzNmZjkuOWIzMmE4YjNiODY5MjdhNS40MTFjZmI0NzBhN2ZkNWE1LjkxNmRjMGRhMWVjZWZiZTkKQEAgLTE0NjI3LDEyICsxNDYyNywxMiBAQAogICAgIDhmMWY5ZWI2ZjZjZjgwMjgKICAgYWZ0ZXIKICAgICBjYTY3YTdmODViZmQ1YWU4LjBhZTQ5MDUxMjVlOGZmZGQuOGQ5NmM3ZmUxZWU0ODYwYy5lYzQwNDhiYzY3Zjc1YWZjCi0gICAgZmVjMDA0N2E3ZmRjM2ZmOS45YjMyYThiM2I4NjkyN2E1LjQxMWNmYjQ3MGE3ZmQ1YTUuOTE2ZGMwZGExZWNlZmJlOQotICAgIDdmODAwMDAwN2ZkYzNmZjkuODAwMDAwMDA5ZWQ0MzRmNS44ZjM4ZWJiZDAwMDAwMDAwLjNlMzI5NDMwNDc0N2ZlOWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGVjNDAwMDAwNDhiYy4wMDAwNjdmNzAwMDA1YWZjCisgICAgZDdkNzhmYTA2OWNjNWYxZS4wYmJhNDFhZWJhYThjYjI1LmVjYmJlMDdlZWVlNWMwZmEuMjZlZWY5OWIzNmRjMzlmNwogICAgIDMyNzdjNTU2MzVkNzc2ODAuYjRjOTU0YWVjNzJmMjYwOC42YjNkZjE4ZWU1MjEwNDM4LjA2MTBlZjZiNDlhZTUyZDMKICAgICA4ZjFmOWViNmY2Y2Y4MDI4CiAKLVZNVUxQU18yNTYocmVnKQorVlBNT1ZaWFdEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDFjNjcwM2U4ZDZjYmZmYTMuZTk2ZTIwODhmZTBjNDA0ZS5mM2FiZGUyMDdhOGM3NmZhLjk4NmZhYTY1MGM0MDVkOGIKICAgICAwOTM0MTk2ZTg4MmUwZGYwLmQ5ODYxZTIzZTA3NDc4YjIuMjVhY2RjNmU2ZjRiZjVhOS41MDFkODdlZTdlNGQ4NjFlCkBAIC0xNDY0MCwxMiArMTQ2NDAsMTIgQEAKICAgICA3MjhjNDgyMmNiNWJjMWFlLmQ0NGRmMTQwNjIxMjI1ZWUuY2QzYjIxNTI5MTFjNzJlOC5kMTFkOWZjNmI1NjEzYmI2CiAgICAgNTIwNmQwZWRiMjgxM2YxMwogICBhZnRlcgotICAgIDgwMDAyNTE2MDAwMDAwMDAuNzg5M2ZhMGE3ZjgwMDAwMC44YTRkYTg1ZjczYzRiMDUzLjdmODAwMDAwN2Y4MDAwMDAKLSAgICAwOTM0MTk2ZTg4MmUwZGYwLmQ5ODYxZTIzZTA3NDc4YjIuMjVhY2RjNmU2ZjRiZjVhOS41MDFkODdlZTdlNGQ4NjFlCisgICAgMWM2NzAzZThkNmNiZmZhMy5lOTZlMjA4OGZlMGM0MDRlLmYzYWJkZTIwN2E4Yzc2ZmEuOTg2ZmFhNjUwYzQwNWQ4YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwNmYxMzAwMDAwNTE1LjAwMDA1ODU0MDAwMDNkMWUKICAgICBiMWQyZGNiMmE1ODVlNGJhLmRlOGQzYTExZjgxZGRiZDguYTQxODQ5MDU0M2Y2ZGZiZS42ZjEzMDUxNTU4NTQzZDFlCiAgICAgNzI4YzQ4MjJjYjViYzFhZS5kNDRkZjE0MDYyMTIyNWVlLmNkM2IyMTUyOTExYzcyZTguZDExZDlmYzZiNTYxM2JiNgogICAgIDUyMDZkMGVkYjI4MTNmMTMKLVZNVUxQU18yNTYobWVtKQorVlBNT1ZaWFdEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGNlOWMxNzc2NmFjMDAzNjEuYTdhZjVhMjg5NjNkZGY3Ny45NzkzYmQ5YjM5NjAxMTFkLmZjNjA2MWJmZjY0NmU4ZDEKICAgICAyMWE5ZWQ0ZWY5Mjg0NWNiLmFiODgwYzMyYTFiNjdjYzIuMDMyYjFjMGQ5OTEyNWQ5NC44ZGQ0MDNiYTBlMDI3ZTI1CkBAIC0xNDY1NCwxMiArMTQ2NTQsMTIgQEAKICAgICAyNDAyMTYzMDlhMTU1NjYxCiAgIGFmdGVyCiAgICAgY2U5YzE3NzY2YWMwMDM2MS5hN2FmNWEyODk2M2RkZjc3Ljk3OTNiZDliMzk2MDExMWQuZmM2MDYxYmZmNjQ2ZThkMQotICAgIDIxYTllZDRlZjkyODQ1Y2IuYWI4ODBjMzJhMWI2N2NjMi4wMzJiMWMwZDk5MTI1ZDk0LjhkZDQwM2JhMGUwMjdlMjUKLSAgICBiMGNmMzg1Y2ZmODAwMDAwLjEzYmE2MDdmMDAwMDAwODcuODAwMDAwMDA5MzAwMWJhYS40YWI5ZDQzNmM0Y2FjODdiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDBmYzYwMDAwMDYxYmYuMDAwMGY2NDYwMDAwZThkMQorICAgIDI3ZmFkMDVmN2NjN2JlN2UuZGM2MTVjYWI4OTUyZDIzYS5mNGUwODk4NDlmMzRjMzdkLmRjZTMwNWFlNzNkYjcwOTIKICAgICBiYzViM2E5NzBmYTkyZGE1Ljk0ODY0NWZmZTg5ZTFkOGMuNDY4MDgwZWI2NmQzZmYwNC40NWQ5NjIwNmM0NWRmOWMxCiAgICAgMjQwMjE2MzA5YTE1NTY2MQogCi1WRElWUFNfMjU2KHJlZykKK1ZQQkxFTkRWQl8xMjgocmVnKQogICBiZWZvcmUKICAgICBkNWFhMWU5Nzk0OGVjMzFjLmJjOThhOWUwY2RkODRjNmQuMzE0NWM0OWE1ZDI1OWI2NC5kNWQ1N2UyZTBiZmFjZjU2CiAgICAgYjQxYzc0YTg0YjU0N2I5ZS4wMjdkOTkyOGQyNjJkODAyLjBkZTlkM2U4ODI3Mzg2NmQuN2NhY2ZkM2FhOWI1ZWQ5ZgpAQCAtMTQ2NjcsMTIgKzE0NjY3LDEyIEBACiAgICAgNmM5MmZmNzM2NmY5YmZhYS5kNTZkZTg2MjI0YjUyNjQxLmY2MGU5NjRkNGQ5NTk1YzUuODcxMDczNTg0MjE5MDVjNQogICAgIGEyMzU2MjQ0NzRkOTc3ZjkKICAgYWZ0ZXIKLSAgICBkNWYyOWNjNzJjZGU0MzA4LjAwMDAwMDAwZDY4OTQwNmYuYzY5ZGZlMjQwMDAwMDAwMC43ZjgwMDAwMDhjMjA4MGRlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg2ZTk3MGU4ODIxNDFiNTQuMTlhY2ZkM2FhOWI1ZWQwYgogICAgIGI0MWM3NGE4NGI1NDdiOWUuMDI3ZDk5MjhkMjYyZDgwMi4wZGU5ZDNlODgyNzM4NjZkLjdjYWNmZDNhYTliNWVkOWYKICAgICAxZGE1MTZjZDVkZjRiYzk1LjZjZDU4NDVhM2I1MzhkOGYuODZiZDcwNTVmMzE0MWI1NC4xOWQyN2JmOTVkMTExNjBiCiAgICAgNmM5MmZmNzM2NmY5YmZhYS5kNTZkZTg2MjI0YjUyNjQxLmY2MGU5NjRkNGQ5NTk1YzUuODcxMDczNTg0MjE5MDVjNQogICAgIGEyMzU2MjQ0NzRkOTc3ZjkKLVZESVZQU18yNTYobWVtKQorVlBCTEVORFZCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDQ1MGNjMmE3MTA1ZTI4ZDQuZmQyZDJjMDYwMWYwYzM4Yy4xOTExNDAyY2E3OTY2MDQzLmJhMjg0MTNjMmM4MjMyNmIKICAgICA0ZTYwMTE2ZjMyYjNkNDgyLjJjYzI5N2YzY2I2NDAzZTUuMTM4ZDA4YTRlMzAyZjdjMi4yZjU3NmU4ZjJhNjUyY2YyCkBAIC0xNDY4MiwxMSArMTQ2ODIsMTEgQEAKICAgYWZ0ZXIKICAgICA0NTBjYzJhNzEwNWUyOGQ0LmZkMmQyYzA2MDFmMGMzOGMuMTkxMTQwMmNhNzk2NjA0My5iYTI4NDEzYzJjODIzMjZiCiAgICAgNGU2MDExNmYzMmIzZDQ4Mi4yY2MyOTdmM2NiNjQwM2U1LjEzOGQwOGE0ZTMwMmY3YzIuMmY1NzZlOGYyYTY1MmNmMgotICAgIDQ4Y2JjMTcxNjFjZjM5MDkuODAwMDAwMDBmZjgwMDAwMC4zOWY4OTE1YzdhZGVmNWEwLmI0YTNlM2Q2M2Q2MTRlZjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTk4ZDQwYTRhNzk2Zjc0My5iYTU3NmU4ZjJjNjUyY2YyCiAgICAgZmViMzY5ZGE3NWZlMGMwNS5kMzBmMWM4NzU5ZjMyNGFkLjllM2RkOTRlZjBhNzJiZTYuOTcyNDNhMGRmOTQzMjk1NgogICAgIDQ0NTlkMzExMDI1NGE0OGIKIAotVkRJVlBTXzI1NihyZWcpCitWUEJMRU5EVkJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMTBkM2RjMjg5YThkNmQ1MS41ZTQ4NmE1NmNmMGMwZjMzLjA0NWQyZDA3NTYyNzdmNzUuZTUwOWRhNTlmOWZhNDBlMgogICAgIDU4ZGY1MmJkNWY3YWMwNTUuOTM4YzRhZTYxZjFhZmVlMy40M2Q2NmU5MGYyMDgwNTY0LjU0ZGMzYmMxMmIwNmEyMGMKQEAgLTE0Njk0LDEyICsxNDY5NCwxMiBAQAogICAgIGNjZDc3NzE3ZGY5ZGYyYzUuZWI0ZDk0ZjMwZTY4OGI3Yi41YTc5NmM2ZDc0MDM4NTZhLjE2Y2EwZDVjNzM3ZjNiOTQKICAgICAyMTdkNzc2N2MzMDNlYjRiCiAgIGFmdGVyCi0gICAgMWY4ZjgwZThiMTQwNWYxNy44MDAwMDAwMGRlYjkyN2IyLjk3OGEwN2JiNmE1NDYzZmIuY2VkNjZiNzVjYTllMTBjOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40M2Q2NmU5MGYyMDhmMzY0LjU0ODMzYmMxMmIwNmEyOGUKICAgICA1OGRmNTJiZDVmN2FjMDU1LjkzOGM0YWU2MWYxYWZlZTMuNDNkNjZlOTBmMjA4MDU2NC41NGRjM2JjMTJiMDZhMjBjCiAgICAgNzhjNzMyM2VlZGE2ZDg0Mi43ODRhODQ3NzgwMzU5MzQxLmViYzZkOThlYzcyM2YzMjcuYzU4Mzc4NzQ5ZmRhMGM4ZQogICAgIGNjZDc3NzE3ZGY5ZGYyYzUuZWI0ZDk0ZjMwZTY4OGI3Yi41YTc5NmM2ZDc0MDM4NTZhLjE2Y2EwZDVjNzM3ZjNiOTQKICAgICAyMTdkNzc2N2MzMDNlYjRiCi1WRElWUFNfMjU2KG1lbSkKK1ZQQkxFTkRWQl8xMjgobWVtKQogICBiZWZvcmUKICAgICBjNDY4MzE4MGFhNzFkOGRmLmIwNWQxZGIyZDJlYjRhODkuYzY2M2Y2NDdlNmMwYTJiYi5lYjNiMjI5OTkzMzRmNmQ4CiAgICAgZDk1NmI3OTM0NGQ1YmQ3Yi44MGE0MjE3YzYxMWQxYjNiLmU3NTYyNzVmMjM0ODkzMmQuZjk1N2Y4N2VjMDQzODMxZQpAQCAtMTQ3MDksMTEgKzE0NzA5LDExIEBACiAgIGFmdGVyCiAgICAgYzQ2ODMxODBhYTcxZDhkZi5iMDVkMWRiMmQyZWI0YTg5LmM2NjNmNjQ3ZTZjMGEyYmIuZWIzYjIyOTk5MzM0ZjZkOAogICAgIGQ5NTZiNzkzNDRkNWJkN2IuODBhNDIxN2M2MTFkMWIzYi5lNzU2Mjc1ZjIzNDg5MzJkLmY5NTdmODdlYzA0MzgzMWUKLSAgICA1NDZjYmI1ZWQ5ZTIzZjg5LjBmYmUwNjRlY2RhYWVmMTMuNjA3MDdlNTI4MDAwNDJhMy40ZDkzYjkzMzZjOGE0YTQzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU3NTZmNjQ3MjM0OGEyMmQuZjkzYjIyN2U5MzQzZjZkOAogICAgIGNkNmYxODU3MDRiMTYyN2QuNTRhMzJmNGVjNDVhMWIxOC42NjA2ZTI4YzNlMThmNjVhLjAwZDFmMDI0YjYyOGUxZTAKICAgICBiMWM2MGJiZGI3MTYyOWI0CiAKLVZESVZQU18yNTYocmVnKQorVlBCTEVORFZCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDRmNDYzNWJlMzYxMjdkMTAuNjMzMWViZTA2MTQxOTkzYi4xMGY0MzIyZGQxN2VjMjliLjdlNWI2Njc5NTQ3OWUwNmMKICAgICAzODlkNmI5NWNmYTgxOWEwLmRkMjc3YTE0ZTFmN2I5YjIuMjgzNjgzZWNlYWI1ZDJiYi40YWJkYTdkYTNmM2E5NDYxCkBAIC0xNDcyMSwxMiArMTQ3MjEsMTIgQEAKICAgICA1NmZmZTc3MmMyY2UxODBhLmU4ZGZiYzI5YmMwNWE0NzkuZGNiY2ZiYjdiMThkMjA4NC43MmRjNTRhODA2MGQ0ZGEyCiAgICAgODUzMGI4ZWQxOTM4Y2E0NwogICBhZnRlcgotICAgIGIyMDRkZGIyZWViZTNhZGUuZmY4MDAwMDA3ZjgwMDAwMC44MDAwMDAwMDdlYTU5YmY2LmUyNDJlMWFlNjM0ZDJhMWYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjhiNTFjZjZhYjhjZDIyNS40YWY5YTc5YjNmM2E5NDY0CiAgICAgMzg5ZDZiOTVjZmE4MTlhMC5kZDI3N2ExNGUxZjdiOWIyLjI4MzY4M2VjZWFiNWQyYmIuNGFiZGE3ZGEzZjNhOTQ2MQogICAgIGM2MTdhN2FkMjA2MjM4MGYuMTUxZDQxZGRhMWRmN2UwZC5mOGI1MWNmNmFiOGM4ODI1LmE3ZjkyMjliMWI2OGNmNjQKICAgICA1NmZmZTc3MmMyY2UxODBhLmU4ZGZiYzI5YmMwNWE0NzkuZGNiY2ZiYjdiMThkMjA4NC43MmRjNTRhODA2MGQ0ZGEyCiAgICAgODUzMGI4ZWQxOTM4Y2E0NwotVkRJVlBTXzI1NihtZW0pCitWUEJMRU5EVkJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYmRjMmNiNTY3MmYyMDE3ZS40NWEyMjY1MDUzNzhmMjNkLjMyMzg2OGUyNGY3NmU2MjIuMzA5OTFiOWI5NzQ3ZDY4NgogICAgIGY2NWQwN2NmMmQ0OWFmNzQuZWQ0ZDYwYjM2ZmVhMDU1My5kMGY2YzBmNjc1M2QwMTMzLjUwOTY3ODBlZmE0M2U1ZDQKQEAgLTE0NzM2LDExICsxNDczNiwxMSBAQAogICBhZnRlcgogICAgIGJkYzJjYjU2NzJmMjAxN2UuNDVhMjI2NTA1Mzc4ZjIzZC4zMjM4NjhlMjRmNzZlNjIyLjMwOTkxYjliOTc0N2Q2ODYKICAgICBmNjVkMDdjZjJkNDlhZjc0LmVkNGQ2MGIzNmZlYTA1NTMuZDBmNmMwZjY3NTNkMDEzMy41MDk2NzgwZWZhNDNlNWQ0Ci0gICAgNzgxMTNkNmIwMDAwMDM1NS5lNzIyMWZiZTViZjBhNmQzLmRlMmI0NWZmNjU0M2Y4YmYuNWY3Yjk2NzY3ZjgwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMDM4YzBlMjRmNzZlNjMzLjUwOTYxYjBlOTc0M2U1ZDQKICAgICBkYmUzZWZhMjM2ZmM1ZjRjLmRiZTZiN2I4YjU1Y2MxZDkuNzNjYzY0ZGJlY2ZmYjEzZS42MzIzZGE1MWE1MzYwMTBiCiAgICAgMGY0YmQ3ZjkyNTQ1ODU0YQogCi1WUENNUEdUUV8xMjgocmVnKQorVlBNSU5TRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBmN2MzMDFlMTkyYzY1Mzg3LjNmNjQ5MmQzYmQ3MGQ5ODUuZGE2Y2NiMzMxODcyZTNhMi4zMTdkYTk4NTc1MTFiZjkxCiAgICAgNzZkOTU0NzM4NzQ4YTc2ZS4xNDFmNGZjNTE1YjBiOTJkLjAyMmFjYWUyNzU4MjJkZmYuYjJjMTg5MzkwMWFhOTRmZApAQCAtMTQ3NDgsMTIgKzE0NzQ4LDEyIEBACiAgICAgYWUwYTY2NGE3YTc4ZDBlOC44MTczMDg5OWFiYzY5Zjc5LjQwNzk3YTkwOTBiZjI3MjIuNmQzNjBmNzA5NDllOGFjZAogICAgIDVmZmZhZGNhZDMxMTIzOGEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIwNmFiMDMzNjkxOGRhOWIuYjJjMTg5MzlhZGQ1ZWZhZAogICAgIDc2ZDk1NDczODc0OGE3NmUuMTQxZjRmYzUxNWIwYjkyZC4wMjJhY2FlMjc1ODIyZGZmLmIyYzE4OTM5MDFhYTk0ZmQKICAgICBlYWQ3Y2QxZGEwNTRiZGFhLjM2ZTBhMzYzNWJjOWJkNzAuYjA2YWIwMzM2OTE4ZGE5Yi5kMjY2ODJlNGFkZDVlZmFkCiAgICAgYWUwYTY2NGE3YTc4ZDBlOC44MTczMDg5OWFiYzY5Zjc5LjQwNzk3YTkwOTBiZjI3MjIuNmQzNjBmNzA5NDllOGFjZAogICAgIDVmZmZhZGNhZDMxMTIzOGEKLVZQQ01QR1RRXzEyOChtZW0pCitWUE1JTlNEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDg0OGJkNmRmODUzYjczMTAuMWRiZTFkNjViMTNmMWRkNC5kMWEzZmM1MjFmYjMxYzc1LjBlYTQyMzY3ODQwMzRmNDIKICAgICBiOGE3MDg5OWM2MjgzOThiLjk1M2ZlZWRjZTAzNmRmMTkuMDIzZWZiN2NkNjlkZjA5MC43NjM0YTcyM2U0NzA5MGE0CkBAIC0xNDc2MywxMSArMTQ3NjMsMTEgQEAKICAgYWZ0ZXIKICAgICA4NDhiZDZkZjg1M2I3MzEwLjFkYmUxZDY1YjEzZjFkZDQuZDFhM2ZjNTIxZmIzMWM3NS4wZWE0MjM2Nzg0MDM0ZjQyCiAgICAgYjhhNzA4OTljNjI4Mzk4Yi45NTNmZWVkY2UwMzZkZjE5LjAyM2VmYjdjZDY5ZGYwOTAuNzYzNGE3MjNlNDcwOTBhNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDFhM2ZjNTJkNjlkZjA5MC4wZWE0MjM2Nzg0MDM0ZjQyCiAgICAgYmNiZTc1YjE2Nzc3MTIwZC4wY2Q4Yzk4Yjk3ZTFiNjYwLjc3ZTEwNmQxNzc5NThiZDEuODRiYjMwZmE1MmY3NDhlNQogICAgIGUyNDgyZWVkOTgyODM3MWEKIAotVlBDTVBHVFFfMTI4KHJlZykKK1ZQTUlOU0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNGE2ZGY3NzViOWIzMmU0My40NTUyYTdlNWZmZjM5ZTZkLmMzODdjZDljNThhZTQyYmEuNzM4MTBiZDM5OWJiY2I0ZgogICAgIDE4NzQ4N2ZlNTEyMzY5MGMuNGRhNWQyNzA5NzYwOGU3Mi5mMjMzZGFiNzgxZGEzNDFkLmMwYmEwYWY1NmQwZTUyOWMKQEAgLTE0Nzc1LDEyICsxNDc3NSwxMiBAQAogICAgIDU2NWJlZGM0NTRlNDlhMmQuNDliYjAwMzgzNDQzOGQxOS4yOWIyMDBiZjdjODAzOGIxLmJjMmNlNjRhOWE2YTIzNTIKICAgICAyNGZiYmM1NTJiOGFlNTEzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMjMzZGFiNzgxZGEzNDFkLmMwYmEwYWY1MGY5YWRiZTQKICAgICAxODc0ODdmZTUxMjM2OTBjLjRkYTVkMjcwOTc2MDhlNzIuZjIzM2RhYjc4MWRhMzQxZC5jMGJhMGFmNTZkMGU1MjljCiAgICAgYThhYWRhZjVmYjA1MjQyMS5iMDg0NzEzZDRhY2M5ZjQ3LmY2MjhlZDQ5YWVmMWM3MzYuMzk1YTdmMjQwZjlhZGJlNAogICAgIDU2NWJlZGM0NTRlNDlhMmQuNDliYjAwMzgzNDQzOGQxOS4yOWIyMDBiZjdjODAzOGIxLmJjMmNlNjRhOWE2YTIzNTIKICAgICAyNGZiYmM1NTJiOGFlNTEzCi1WUENNUEdUUV8xMjgobWVtKQorVlBNSU5TRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA0Yzk0N2MzMGRkMDZkZjUyLjdkZDJiYmQ5Zjc0YzA4ZGMuZjYxNmZiNGU3MmNmMTQxNC5lODFkMTE4Mzg2MTJjMzM5CiAgICAgMTJjNGEyYzdjY2ViY2IzYy43YjVkNDA5ZjgwYzlhYWRiLjkyNjFkZjY5MWY3ZWVmNjMuOTBiNDFiMDM2OTMzYTM3YgpAQCAtMTQ3OTAsMTEgKzE0NzkwLDExIEBACiAgIGFmdGVyCiAgICAgNGM5NDdjMzBkZDA2ZGY1Mi43ZGQyYmJkOWY3NGMwOGRjLmY2MTZmYjRlNzJjZjE0MTQuZTgxZDExODM4NjEyYzMzOQogICAgIDEyYzRhMmM3Y2NlYmNiM2MuN2I1ZDQwOWY4MGM5YWFkYi45MjYxZGY2OTFmN2VlZjYzLjkwYjQxYjAzNjkzM2EzN2IKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkyNjFkZjY5MWY3ZWVmNjMuOTBiNDFiMDM4NjEyYzMzOQogICAgIGU0MTMxMWQ4ZDMxZDZiYmYuNjhkYTVmZWRiNjM0Nzk3OC4wNmY1NGY2MjM4NzQ5NGFmLjA2OWEwYWUzMjg1NDU1ZGIKICAgICA4ZDgwZTgxYzNjNmI5ZjUyCiAKLVZQQ01QR1RRXzEyOChyZWcpCitWUE1JTlNEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDZjYzNhZWMwOTg0MjJlMzIuYTljYzUyMmMyMzgzOThiMS4xMDY1ZjI0ZTliM2ExZTZlLjk3ZDhkMzE3ZGJkMmQ1MDQKICAgICAwMGFmNWEzYmRhNjQzZjI4LjdhNGFlOWViMjE4MWE3ZmQuZmUzMzJjMTBkNzg1ZTc2NC44NmRhMmY4MzVlODI1YjVkCkBAIC0xNDgwMiwxMiArMTQ4MDIsMTIgQEAKICAgICBiMmIxNTI2Nzc5YmFkNjA0LmI0YzkwYTVkOTQ3NjVkNTYuMWJjODg1NjhjMTFiZDNmZS5mMjZkNjEyZDczMGEyNmNlCiAgICAgMjY5NzJlNDIzZGY5ZTIzZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGQ5MDA5OWZkNzg1ZTc2NC44NmRhMmY4M2RkOTFlMmU3CiAgICAgMDBhZjVhM2JkYTY0M2YyOC43YTRhZTllYjIxODFhN2ZkLmZlMzMyYzEwZDc4NWU3NjQuODZkYTJmODM1ZTgyNWI1ZAogICAgIGEzOTBlOGZhOWI1ZDBlZGYuMzU1YjUzMDJlNzIzNTRkMC44ZDkwMDk5ZjA1YTEwZjA1LmIxYzhlMDkxZGQ5MWUyZTcKICAgICBiMmIxNTI2Nzc5YmFkNjA0LmI0YzkwYTVkOTQ3NjVkNTYuMWJjODg1NjhjMTFiZDNmZS5mMjZkNjEyZDczMGEyNmNlCiAgICAgMjY5NzJlNDIzZGY5ZTIzZAotVlBDTVBHVFFfMTI4KG1lbSkKK1ZQTUlOU0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMmExMGMzYmY1NjZiZDM2MS44OTYwOTZlZjEwMDZkNTQzLmQ0NjE4Y2U5NDE4NTdjYmEuMDMyNjlkZDVhODdkNmZmYQogICAgIGQ4YTY5ZDhkZGE2YmI1NjYuODRlN2FlZmZmYmNlNDU0Ny43MmVmNTQ5MTBkNWQ2ZTI5LmEwZjc0YzUzNTU1NjFmYTYKQEAgLTE0ODE3LDExICsxNDgxNywxMSBAQAogICBhZnRlcgogICAgIDJhMTBjM2JmNTY2YmQzNjEuODk2MDk2ZWYxMDA2ZDU0My5kNDYxOGNlOTQxODU3Y2JhLjAzMjY5ZGQ1YTg3ZDZmZmEKICAgICBkOGE2OWQ4ZGRhNmJiNTY2Ljg0ZTdhZWZmZmJjZTQ1NDcuNzJlZjU0OTEwZDVkNmUyOS5hMGY3NGM1MzU1NTYxZmE2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNDYxOGNlOTBkNWQ2ZTI5LmEwZjc0YzUzYTg3ZDZmZmEKICAgICBhNjU0MGRjZjk1NDczYWMwLjU2YjA1MDYzM2VmZjZhNTAuOTQxY2E2ZTQ2Yzk1YmFkNi42ZDIyNWYzNDczOTZhOWJjCiAgICAgNTQxNGJiNmQxYjE3ZmM3ZgogCi1WUEVYVFJRXzEyOF8weDAocmVnKQorVlBNQVhTRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA2MmE5OWY2OGZhM2M1MmExLjdkMDU5YjFjMDQzYTU2NmYuZTU4YWQwOTBjZTgwOTdhZC5kMDUzMjk2ODM3MGQ4YzZjCiAgICAgZjEyYzA2OTBhYzkzZThjZi42ZjAxNWQ2YTRmZWI1M2FkLjA3NmMxNmY0MjNhZDI1ODAuZjliMWUyYjg5MDdlMjFiZApAQCAtMTQ4MjksMTIgKzE0ODI5LDEyIEBACiAgICAgMDYzMDRkMTdmNzA1YzRmZS4xNTBlNmZiZGU2YmFkZThkLjc5N2NlMTExOGEzODU4MzYuODIwZGU2NmM1Yjc5ODIzZgogICAgIDliYTMyOWE4MDQxYmM3YzgKICAgYWZ0ZXIKLSAgICA2MmE5OWY2OGZhM2M1MmExLjdkMDU5YjFjMDQzYTU2NmYuZTU4YWQwOTBjZTgwOTdhZC5kMDUzMjk2ODM3MGQ4YzZjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFhYTMxZGZiMjNhZDI1ODAuZjliMWUyYjg5M2YzMzRmNQogICAgIGYxMmMwNjkwYWM5M2U4Y2YuNmYwMTVkNmE0ZmViNTNhZC4wNzZjMTZmNDIzYWQyNTgwLmY5YjFlMmI4OTA3ZTIxYmQKICAgICA1ZWViZWM1MWNjYThmYWI1LjU5MTZkMGE3OTA2N2VjYTkuMWFhMzFkZmJkODExNTI3NC5lYjAwNGRjMDkzZjMzNGY1CiAgICAgMDYzMDRkMTdmNzA1YzRmZS4xNTBlNmZiZGU2YmFkZThkLjc5N2NlMTExOGEzODU4MzYuODIwZGU2NmM1Yjc5ODIzZgotICAgIGQwNTMyOTY4MzcwZDhjNmMKLVZQRVhUUlFfMTI4XzB4MChtZW0pCisgICAgOWJhMzI5YTgwNDFiYzdjOAorVlBNQVhTRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAxMDkwOTM2MWFiZTViZmJiLjQzNDgyNjRlYzgzODgxNTYuODBiNmI2OWE2YWVlZTU4NS44MDQxNWZhMmQ1YWY3NDcxCiAgICAgYmU5ZjlmODE2Y2U0MjU0NS43MjdmNzE2MmRiY2Q2ZTZhLjc2ZGEyMTI5M2IxMWJjYmYuOGIzZjkxMWE1MzAxZTJkMgpAQCAtMTQ4NDIsMTMgKzE0ODQyLDEzIEBACiAgICAgMzU1MThkYWFhOWFlMmVjZC4xNzc5NTJkMjM5NDljNzc2LjczYzY1NDBkMmQ1MmNkYTMuMWMxNTA2NzA1ZTY4YTJiNQogICAgIDViODY0MDI1MjI5NDZkOGUKICAgYWZ0ZXIKLSAgICAxMDkwOTM2MWFiZTViZmJiLjQzNDgyNjRlYzgzODgxNTYuODBiNmI2OWE2YWVlZTU4NS5mNWMyNzVlNWEyYmJkZDA1CisgICAgMTA5MDkzNjFhYmU1YmZiYi40MzQ4MjY0ZWM4Mzg4MTU2LjgwYjZiNjlhNmFlZWU1ODUuODA0MTVmYTJkNWFmNzQ3MQogICAgIGJlOWY5ZjgxNmNlNDI1NDUuNzI3ZjcxNjJkYmNkNmU2YS43NmRhMjEyOTNiMTFiY2JmLjhiM2Y5MTFhNTMwMWUyZDIKLSAgICA4MTliYzlmNjYyMjJiNjkyLmVmMjEyY2MwY2Q0ZWM3ZTYuZDM0NjJkNTY3MjJlMjE2NC5mNWMyNzVlNWEyYmJkZDA1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc2ZGEyMTI5NmFlZWU1ODUuOGIzZjkxMWE1MzAxZTJkMgogICAgIDM1NTE4ZGFhYTlhZTJlY2QuMTc3OTUyZDIzOTQ5Yzc3Ni43M2M2NTQwZDJkNTJjZGEzLjFjMTUwNjcwNWU2OGEyYjUKICAgICA1Yjg2NDAyNTIyOTQ2ZDhlCiAKLVZQRVhUUlFfMTI4XzB4MChyZWcpCitWUE1BWFNEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDBkNWYyMDcyOGJjYzdhM2UuYjY4ZDY4OGI1ZTkxNDgyMy40NGQ1ZTAwNmJjNGFhY2M1LjMyMjUxNDNhODg4ODdmYTYKICAgICA5MGVkYTFjMjM0OWIwNDZmLmUwMWJkNTg0OWNkOWMyYmYuZDM3ZmQwYzdmMWRiYWY3Zi5lYzMxZThjOTllZGNmMTk5CkBAIC0xNDg1NiwxMiArMTQ4NTYsMTIgQEAKICAgICA3NTU4NzYxYWI3MmU4MjA1LjlmNWM1NTZlMjVjNmMwN2MuODdmMGNiOWZlNGUzMDZlNy5jMTdiYmRiZTZkMTAwODAyCiAgICAgOTQ1MmI2ZmM1ZDA3MjVkMAogICBhZnRlcgotICAgIDBkNWYyMDcyOGJjYzdhM2UuYjY4ZDY4OGI1ZTkxNDgyMy40NGQ1ZTAwNmJjNGFhY2M1LjMyMjUxNDNhODg4ODdmYTYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjBjNDIwODA3NThiMGY1Mi43ZGI0NGRhNzllZGNmMTk5CiAgICAgOTBlZGExYzIzNDliMDQ2Zi5lMDFiZDU4NDljZDljMmJmLmQzN2ZkMGM3ZjFkYmFmN2YuZWMzMWU4Yzk5ZWRjZjE5OQogICAgIDNlN2NiZjgwYjk4ZDQ4Y2QuOGZjNjUwODE4MDkyNTZjZS4yMGM0MjA4MDc1OGIwZjUyLjdkYjQ0ZGE3OGM1YmUxYWEKICAgICA3NTU4NzYxYWI3MmU4MjA1LjlmNWM1NTZlMjVjNmMwN2MuODdmMGNiOWZlNGUzMDZlNy5jMTdiYmRiZTZkMTAwODAyCi0gICAgMzIyNTE0M2E4ODg4N2ZhNgotVlBFWFRSUV8xMjhfMHgwKG1lbSkKKyAgICA5NDUyYjZmYzVkMDcyNWQwCitWUE1BWFNEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGQyMDViMzRiNzk0ZGYyM2UuOGZjZGMyZmJjYTBiZWRjMy5lY2E3NjAzN2E4ODNiZWY0LjY0NGZjZDhmZDg3MWQxZWQKICAgICA1NzYwMzA5OWRkZWMyYzc4LmVhMjZhMDhmOGRiMGM2YjIuNTE3NWVlYzgyNGQ0MGE2My4xMzJjMjNiY2VmYzBhYzBlCkBAIC0xNDg2OSwxMyArMTQ4NjksMTMgQEAKICAgICBhNTNjOWNkZmVhNmJkNjAzLmNmYjhmZTgxOTQ3ZWIyZDYuZDhjNDgwZjI3OTY0N2VkNC41Nzk0Yjg3ZGY1ZDI4MTUyCiAgICAgYTRiNmVmZWExY2FkZjNjZQogICBhZnRlcgotICAgIGQyMDViMzRiNzk0ZGYyM2UuOGZjZGMyZmJjYTBiZWRjMy5lY2E3NjAzN2E4ODNiZWY0LmYwZDVjODkyYzU1Y2QzZjYKKyAgICBkMjA1YjM0Yjc5NGRmMjNlLjhmY2RjMmZiY2EwYmVkYzMuZWNhNzYwMzdhODgzYmVmNC42NDRmY2Q4ZmQ4NzFkMWVkCiAgICAgNTc2MDMwOTlkZGVjMmM3OC5lYTI2YTA4ZjhkYjBjNmIyLjUxNzVlZWM4MjRkNDBhNjMuMTMyYzIzYmNlZmMwYWMwZQotICAgIGZlMmVhYWQxYTNmMzhmYWIuZTBiMTBhNDI5Y2E3NDk3Zi5hYzkwN2EwZGI2YzY2MWY0LmYwZDVjODkyYzU1Y2QzZjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTE3NWVlYzgyNGQ0MGE2My42NDRmY2Q4ZmVmYzBhYzBlCiAgICAgYTUzYzljZGZlYTZiZDYwMy5jZmI4ZmU4MTk0N2ViMmQ2LmQ4YzQ4MGYyNzk2NDdlZDQuNTc5NGI4N2RmNWQyODE1MgogICAgIGE0YjZlZmVhMWNhZGYzY2UKIAotVlBFWFRSUV8xMjhfMHgwKHJlZykKK1ZQTUFYU0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzM4NzY5NDNkNTdhNjUxNi4yNzU3ODJhZmNjNjNiZWFiLjExODg3OGI2MTBjMTNjNjIuYjFkZjdjNjQ4YWJhMWUyZQogICAgIDVmNTMyM2Y2YmRjMzEyZDQuNjA0OWQ4MmQ2NWU0MDNkMC4wMzZkNzI0ZWFkZmEyNGNmLjEzYWNlYjRkMDRkNWZkMzAKQEAgLTE0ODgzLDEyICsxNDg4MywxMiBAQAogICAgIDAzMGI0MzE2ODdmZjEwNjkuNjZlNGM1ZTMyZWI2OTM0MC42OGE1ZGI1OWI4ODRmZGZmLmUxOGEwZjM5YTQ4ODY3ZDYKICAgICAwNjM1YmMxMzAzMzc2YWQzCiAgIGFmdGVyCi0gICAgMzM4NzY5NDNkNTdhNjUxNi4yNzU3ODJhZmNjNjNiZWFiLjExODg3OGI2MTBjMTNjNjIuYjFkZjdjNjQ4YWJhMWUyZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMzZkNzI0ZTA2YjdhNmNiLjEzYWNlYjRkMDRkNWZkMzAKICAgICA1ZjUzMjNmNmJkYzMxMmQ0LjYwNDlkODJkNjVlNDAzZDAuMDM2ZDcyNGVhZGZhMjRjZi4xM2FjZWI0ZDA0ZDVmZDMwCiAgICAgODY2NjE3NmQ2ZjE3MzdiNy4yYmRlMWE0NWQyZmM2MTllLjAyYjNlYWI2MDZiN2E2Y2IuZDlmNjQ4OWIwM2MwZDcwMwogICAgIDAzMGI0MzE2ODdmZjEwNjkuNjZlNGM1ZTMyZWI2OTM0MC42OGE1ZGI1OWI4ODRmZGZmLmUxOGEwZjM5YTQ4ODY3ZDYKLSAgICBiMWRmN2M2NDhhYmExZTJlCi1WUEVYVFJRXzEyOF8weDAobWVtKQorICAgIDA2MzViYzEzMDMzNzZhZDMKK1ZQTUFYU0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjNjMWNiMTUzYmRiOWMyNi4zMjhmYTM1Y2EyMDlkODk3LmViMjY1M2Y0OTYxZTU2ZTMuOTI5MTQxYTI1ZWViNjYxYQogICAgIDE2ZmFiOTJiNjg4MGI5ZmMuNmUzZjMxYWI1YmMwY2RlYy45ODZmNDI2MjI1NDE2NmIyLmRjYzExOGZmOTU3YTFkYzYKQEAgLTE0ODk2LDEzICsxNDg5NiwxMyBAQAogICAgIGVhYTcxZjQzMTNmYWEyZTAuODI0ZWNjMTQxYTY3MjhiZS5kNjQ5MzEwYTJhZTU1Yjg2LjQxMjAwYWEyMjQzZTY0ODMKICAgICAxM2U3MWRjMGI0OGI2Y2VjCiAgIGFmdGVyCi0gICAgMjNjMWNiMTUzYmRiOWMyNi4zMjhmYTM1Y2EyMDlkODk3LmViMjY1M2Y0OTYxZTU2ZTMuYTM4MjVkZGJmOGJkNWViMAorICAgIDIzYzFjYjE1M2JkYjljMjYuMzI4ZmEzNWNhMjA5ZDg5Ny5lYjI2NTNmNDk2MWU1NmUzLjkyOTE0MWEyNWVlYjY2MWEKICAgICAxNmZhYjkyYjY4ODBiOWZjLjZlM2YzMWFiNWJjMGNkZWMuOTg2ZjQyNjIyNTQxNjZiMi5kY2MxMThmZjk1N2ExZGM2Ci0gICAgYjlhZTAxNDFhNzMxN2M4MS4xNTY1ZWI2ZTRmYjEyOTE1LjQ4OGMwZTFiZjgyYTdlZGEuYTM4MjVkZGJmOGJkNWViMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYjI2NTNmNDI1NDE2NmIyLmRjYzExOGZmNWVlYjY2MWEKICAgICBlYWE3MWY0MzEzZmFhMmUwLjgyNGVjYzE0MWE2NzI4YmUuZDY0OTMxMGEyYWU1NWI4Ni40MTIwMGFhMjI0M2U2NDgzCiAgICAgMTNlNzFkYzBiNDhiNmNlYwogCi1WUEVYVFJRXzEyOF8weDEocmVnKQorVkFORFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDc1MjM5MmExNDUzMGIyOTYuODNiMzhmMWRjOWU3ZTc0Ni4xMDQ1ZDAwNjU2NmUwODkyLjIwNzIyOTFhZDc3ZmI5ZTQKICAgICBjMzFmNjNiMjcyYjg3MjJlLjYyOWNjZGJjZTQwNTA2ZGYuMWQ5OGYzYjFhMjUyMDMzZC4wMGQzNzEzOTFjMDM1NDFkCkBAIC0xNDkxMCwxMiArMTQ5MTAsMTIgQEAKICAgICA5MzhiMGUxMDExYTE0ZWQ3LjVkMzhhNWY1YmIwMWM1NTcuMjA3ZTg3ZTNkNGU0M2NjYy5mNjZjZTE1MWRkZmEyZmQ2CiAgICAgYzMzYzAyMjI5MDg2ZThhZQogICBhZnRlcgotICAgIDc1MjM5MmExNDUzMGIyOTYuODNiMzhmMWRjOWU3ZTc0Ni4xMDQ1ZDAwNjU2NmUwODkyLjIwNzIyOTFhZDc3ZmI5ZTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE5MDMyODE4MDAwMDIyZC4wMDEzMDExMDE0MDI0NDFkCiAgICAgYzMxZjYzYjI3MmI4NzIyZS42MjljY2RiY2U0MDUwNmRmLjFkOThmM2IxYTI1MjAzM2QuMDBkMzcxMzkxYzAzNTQxZAogICAgIDU5Mjg4ZTVkZDdhZmU3NjAuNjEyZjU2MGE4MTVmYmNkNi4wMzkxMzI4MTk4YTA1NjZkLjUzMzc4NTUyMTU3ZWU3NWYKICAgICA5MzhiMGUxMDExYTE0ZWQ3LjVkMzhhNWY1YmIwMWM1NTcuMjA3ZTg3ZTNkNGU0M2NjYy5mNjZjZTE1MWRkZmEyZmQ2Ci0gICAgMTA0NWQwMDY1NjZlMDg5MgotVlBFWFRSUV8xMjhfMHgxKG1lbSkKKyAgICBjMzNjMDIyMjkwODZlOGFlCitWQU5EUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTg3NDYyYjE0YjJiY2QxMi5jZDkyZGYzNWJiMWJlMjNmLjMzODMzNjY3YWZmOGRkOGYuY2VhOWYwNDFmMmE4ZjMwNgogICAgIDRmZTA3ZmViMmFmNzliMmUuNjM4YWZkM2E3MmE4ZTE0Ni5iZGRiODY0ZTc4NGZiZmFhLjZiNWY2ODA5OTA3YWI1YzgKQEAgLTE0OTIzLDEzICsxNDkyMywxMyBAQAogICAgIGQ2ODRkZTBjYzEzMmUyNDIuMTM3YzExOTA3NjJjMGJkYi42MWU2NGYyOGZiNGZkNDM4LmRlOWI3NjgzYjU3NjRjOTMKICAgICA2Y2JhMDQwZTc2Yjg5OWY0CiAgIGFmdGVyCi0gICAgOTg3NDYyYjE0YjJiY2QxMi5jZDkyZGYzNWJiMWJlMjNmLjMzODMzNjY3YWZmOGRkOGYuZDgwZDBmOTUzMzEzMjhkNAorICAgIDk4NzQ2MmIxNGIyYmNkMTIuY2Q5MmRmMzViYjFiZTIzZi4zMzgzMzY2N2FmZjhkZDhmLmNlYTlmMDQxZjJhOGYzMDYKICAgICA0ZmUwN2ZlYjJhZjc5YjJlLjYzOGFmZDNhNzJhOGUxNDYuYmRkYjg2NGU3ODRmYmZhYS42YjVmNjgwOTkwN2FiNWM4Ci0gICAgYzU0Y2Q1YmE0N2Y1MGUzMC5iMWJlNjQ4YWQyZDQ4NTk2LmQ4MGQwZjk1MzMxMzI4ZDQuNTFlY2VjYTY0N2U2YmViZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMTgzMDY0NjI4NDg5ZDhhLjRhMDk2MDAxOTAyOGIxMDAKICAgICBkNjg0ZGUwY2MxMzJlMjQyLjEzN2MxMTkwNzYyYzBiZGIuNjFlNjRmMjhmYjRmZDQzOC5kZTliNzY4M2I1NzY0YzkzCiAgICAgNmNiYTA0MGU3NmI4OTlmNAogCi1WUEVYVFJRXzEyOF8weDEocmVnKQorVkFORFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDU4OTM5MWIyMjUzN2UyOGMuNWY1MzE4Y2JiMmI4ZDI5MC5lNTBlZmZiYWZhM2JhZWMzLjMyMzBjMWYzZWQwZjdmMDIKICAgICBmZjczMWFkYjVlODA2MjA5LjNhODdmZWU1MzY5NjliNDcuODJjMjJhNzNmYjhlYWJmNy4yOGI4ZTFlMjI0NjBlNDYwCkBAIC0xNDkzNywxMiArMTQ5MzcsMTIgQEAKICAgICBlOTc4MGM2ZGUxOWRmYjViLjU5NDliZWQ3Njk4M2E3OWYuOTJiYjI4NDNlMjJkYTNmYS5mM2IxMWNkZGQyZTJjZTgyCiAgICAgODBiYjJmYzA4MTJiY2M5ZgogICBhZnRlcgotICAgIDU4OTM5MWIyMjUzN2UyOGMuNWY1MzE4Y2JiMmI4ZDI5MC5lNTBlZmZiYWZhM2JhZWMzLjMyMzBjMWYzZWQwZjdmMDIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBjMjBhMjAxMDgwMmEyNi4wODA4MjBlMDI0NDBjMDYwCiAgICAgZmY3MzFhZGI1ZTgwNjIwOS4zYTg3ZmVlNTM2OTY5YjQ3LjgyYzIyYTczZmI4ZWFiZjcuMjhiOGUxZTIyNDYwZTQ2MAogICAgIGJiYTY5OWY2YmUxZTU3MTQuNDRlYTBjNDU2YWQ1Zjk5My40OGUyOGYyODE0YjAzZTI2LjFmNDkyY2UxYmM0Y2MwN2MKICAgICBlOTc4MGM2ZGUxOWRmYjViLjU5NDliZWQ3Njk4M2E3OWYuOTJiYjI4NDNlMjJkYTNmYS5mM2IxMWNkZGQyZTJjZTgyCi0gICAgZTUwZWZmYmFmYTNiYWVjMwotVlBFWFRSUV8xMjhfMHgxKG1lbSkKKyAgICA4MGJiMmZjMDgxMmJjYzlmCitWQU5EUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTIzMmUwNzhlNjM1NzRmZi5lNTM1NmVhZDYyOGE4YjhhLjU1NzA5MDg3NGZhYjYzOTguYmM5OGYzMzEwMDkxMTUxZgogICAgIDM2ZTNhY2VmMWQwYjgyY2QuMGIyOGJiMjNkZDcwNDI0ZC4xNDJhZmY0MTNhNWFlNmE5LjIxYzdlYjVmMGE2OWQyNDIKQEAgLTE0OTUwLDEzICsxNDk1MCwxMyBAQAogICAgIDFlMjM4MWNmNmU0ZGM0NjUuNDZlNDA3NWQzMzU4MTgzYy40YjhiYTE4Mzg4N2EzOGM2LjExNDc1MzI3NTVhMzE3MzEKICAgICA1MjMwYmI5OWNkMWQxODU1CiAgIGFmdGVyCi0gICAgYTIzMmUwNzhlNjM1NzRmZi5lNTM1NmVhZDYyOGE4YjhhLjU1NzA5MDg3NGZhYjYzOTguNzI0NTg2ZjE0MzliZWZmZgorICAgIGEyMzJlMDc4ZTYzNTc0ZmYuZTUzNTZlYWQ2MjhhOGI4YS41NTcwOTA4NzRmYWI2Mzk4LmJjOThmMzMxMDA5MTE1MWYKICAgICAzNmUzYWNlZjFkMGI4MmNkLjBiMjhiYjIzZGQ3MDQyNGQuMTQyYWZmNDEzYTVhZTZhOS4yMWM3ZWI1ZjBhNjlkMjQyCi0gICAgMTY5YTBkMTM0MWJhYjQzNi5iODlmZWYzOWVmZGM1ZDRmLjcyNDU4NmYxNDM5YmVmZmYuMWY5MjBkMzc5ZTQxMTMwZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNDIwOTAwMTBhMGE2Mjg4LjIwODBlMzExMDAwMTEwMDIKICAgICAxZTIzODFjZjZlNGRjNDY1LjQ2ZTQwNzVkMzM1ODE4M2MuNGI4YmExODM4ODdhMzhjNi4xMTQ3NTMyNzU1YTMxNzMxCiAgICAgNTIzMGJiOTljZDFkMTg1NQogCi1WUEVYVFJRXzEyOF8weDEocmVnKQorVkFORFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDQwOWE0MGZiYTIzYTUzMjcuMmM0OTgzMGZjMWQwNmY4Ny4xMjQ0ZmVmYTQ2NzJhZmMxLjdiY2FjZGUzMjUwNDdmMjkKICAgICAzNWQxZGViODZmODcwNDUyLjFiZGE4ZmJmNTU1MDcxYzcuNzgwYmQwN2JjM2I2NWQ4YS5kZWNjODRmZTM1NDQ3ZDU1CkBAIC0xNDk2NCwxMiArMTQ5NjQsMTIgQEAKICAgICBhOGQ1NTZmMzYyZGViNzY1LjBjNjliNjFmYjI3NDY4NTQuODJmZGY2ZGU2ZGU5ZjE5Ny5hZDRiODgxMTFmMTc5NWI2CiAgICAgZDE2MWNjZTIzMmMyMjY0MwogICBhZnRlcgotICAgIDQwOWE0MGZiYTIzYTUzMjcuMmM0OTgzMGZjMWQwNmY4Ny4xMjQ0ZmVmYTQ2NzJhZmMxLjdiY2FjZGUzMjUwNDdmMjkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTAwMTUwNGE0M2E2NWQwMi41MDRjMDRiZTE0NDQ3MTU1CiAgICAgMzVkMWRlYjg2Zjg3MDQ1Mi4xYmRhOGZiZjU1NTA3MWM3Ljc4MGJkMDdiYzNiNjVkOGEuZGVjYzg0ZmUzNTQ0N2Q1NQogICAgIDhmMjE5MTNjZDA4ZjY2ODIuYzdhMDIyY2I0N2Q4ODU1My5kNDg1Nzk0ZTQ3YWY1ZjQzLjUwNWU0NGJlZDQ0NmYxNzUKICAgICBhOGQ1NTZmMzYyZGViNzY1LjBjNjliNjFmYjI3NDY4NTQuODJmZGY2ZGU2ZGU5ZjE5Ny5hZDRiODgxMTFmMTc5NWI2Ci0gICAgMTI0NGZlZmE0NjcyYWZjMQotVlBFWFRSUV8xMjhfMHgxKG1lbSkKKyAgICBkMTYxY2NlMjMyYzIyNjQzCitWQU5EUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTc2YjhkMWQyODUzNjA0YS5kZTNhMjg0OWMxMDEzMGE1LmM2ZmZjOWE3YjMzMWQ2ZjkuZGVjMTQxOThkMmYwNGYzMgogICAgIGRkMzQ0NmFkMWRkN2ZlZjQuOGI5ZDAzYWI4NzgzMTBlZS5kMTJlZDY0ZjY1MWE4YjZjLjQ0MWI1OGU2MTE1MWI0YzEKQEAgLTE0OTc3LDEzICsxNDk3NywxMyBAQAogICAgIDU2MzY5MDgyNzZlNTU5ZTguYmU4OGM0M2ViZmQ1ZjA0ZS40OThjY2ZiMTRkYTFiODZkLjlkYzRkOGYxOGY0Zjg1NmIKICAgICA0OWFiMzg4NzA1MDM2YWRjCiAgIGFmdGVyCi0gICAgOTc2YjhkMWQyODUzNjA0YS5kZTNhMjg0OWMxMDEzMGE1LmM2ZmZjOWE3YjMzMWQ2ZjkuMDhjNDVhMDRlNDNiNDJkOQorICAgIDk3NmI4ZDFkMjg1MzYwNGEuZGUzYTI4NDljMTAxMzBhNS5jNmZmYzlhN2IzMzFkNmY5LmRlYzE0MTk4ZDJmMDRmMzIKICAgICBkZDM0NDZhZDFkZDdmZWY0LjhiOWQwM2FiODc4MzEwZWUuZDEyZWQ2NGY2NTFhOGI2Yy40NDFiNThlNjExNTFiNGMxCi0gICAgN2U4OTcyODAyZTU5YmQ3MC4wYzQ4ZTM4MzUzZjA5MWVkLjA4YzQ1YTA0ZTQzYjQyZDkuMGY1ODM2MzVjNzk3NWRmMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMDJlYzAwNzIxMTA4MjY4LjQ0MDE0MDgwMTA1MDA0MDAKICAgICA1NjM2OTA4Mjc2ZTU1OWU4LmJlODhjNDNlYmZkNWYwNGUuNDk4Y2NmYjE0ZGExYjg2ZC45ZGM0ZDhmMThmNGY4NTZiCiAgICAgNDlhYjM4ODcwNTAzNmFkYwogCi1WUFNSTFFfMHgwNV8xMjgocmVnKQorVk1VTFBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDZmNTk1NDYyYzY0MjQ2ZjIuNDAwNzE5OWQxMjg4OGU4OC5mYmE4YTM0OTY3YmQ2OWJjLjZmNTFiMzQxYmM1N2E4NTQKICAgICA2YjE5MjdlZDZlOTU1NjU3LjFhYzg4YmJlMWQ0ZDE3N2QuMjBmNjdiMGVlODM0MzhlNC41NWUxODFhMjRjNjlkMGI5CkBAIC0xNDk5MSwxMiArMTQ5OTEsMTIgQEAKICAgICA1NDAzZTNjOGUwYWMwMGMwLjBhNDgxNmMzZjI2ZTE4MTUuOTM0ODA2N2JlMzAxYzYxMC5kNjhkY2M4NDQwZDNiM2IwCiAgICAgMjc0MTQwZGRkZDQyZTY5OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNDlhNDAzM2RmMTgwZTMwLjA2YjQ2ZTY0MjIwNjlkOWQKKyAgICBjMzY0MmZhN2JkMTY0NTJhLjlhMWY0MzM1Y2YzYWU1NjkuODAwMDAwMDAwMDAwMDAwMC5lZWY4ZDkxYWJjZTg2MWZiCiAgICAgNmIxOTI3ZWQ2ZTk1NTY1Ny4xYWM4OGJiZTFkNGQxNzdkLjIwZjY3YjBlZTgzNDM4ZTQuNTVlMTgxYTI0YzY5ZDBiOQogICAgIDk4MzlhZDk2OTg4YWQ1YjguYmY0NDYwZDFiNDQwYjFmMy44YWJjNDhmYmRkYzc5ODcxLmQ5MDZiNWJmMTllNGVhYzkKICAgICA1NDAzZTNjOGUwYWMwMGMwLjBhNDgxNmMzZjI2ZTE4MTUuOTM0ODA2N2JlMzAxYzYxMC5kNjhkY2M4NDQwZDNiM2IwCiAgICAgMjc0MTQwZGRkZDQyZTY5OQotVlBTUkxRXzB4MDVfMTI4KG1lbSkKK1ZNVUxQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICBhYWYwOGZiNjBiM2U0MWIxLmZhYzRjM2VmZTM4ODEzMWMuZDlhMTI5N2VmNGUyMDcxMC45OGU0YjJmYTk1NmVmZDZkCiAgICAgMzk2NDM0ZmJlNmQyN2UyMy5lNWM4NGI3NzNkYTk0YTc4LjA2MTkxM2YwZDVhODNiMTAuZjVkZDQ3ZTQ4ZjliN2IzMwpAQCAtMTUwMDYsMTEgKzE1MDA2LDExIEBACiAgIGFmdGVyCiAgICAgYWFmMDhmYjYwYjNlNDFiMS5mYWM0YzNlZmUzODgxMzFjLmQ5YTEyOTdlZjRlMjA3MTAuOThlNGIyZmE5NTZlZmQ2ZAogICAgIDM5NjQzNGZiZTZkMjdlMjMuZTVjODRiNzczZGE5NGE3OC4wNjE5MTNmMGQ1YTgzYjEwLmY1ZGQ0N2U0OGY5YjdiMzMKLSAgICBiMjZiYWI5ODhiMGI1OTFjLjczNWI3NmNjODg5YmUxN2YuNmY3ZDUyMDRiMWNkNzA0MC4wNjdmYzFhNTZlMTM3YTBmCisgICAgYTQ2NGVhN2I1YjE1ZTY3YS43ZmYwMDAwMDAwMDAwMDAwLjlmY2FlNjM5ZjkwMTJkZGIuNGVkMmYwYjQwYjg1ZWYwZQogICAgIGVmY2Y3MTdhMTVmNDkwYzcuZmZjODQxNWE2M2VhMTNkZC5lZTk4NjFhNmE1NWM2MmNjLjI3MTUxY2E5Y2U2MjM2YWMKICAgICBiNGVkNTQ1ZDRhMTVlZGI3CiAKLVZQU1JMUV8weDA1XzEyOChyZWcpCitWTVVMUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMDk1MTY2MmI3ZmI3ZDlkYy5jZTVkMDE4YmExOTlkZDUxLmU0NWRhNjhlNjcyMzFkNDAuNjEzOGJjYzJjZDYyY2NlMgogICAgIDgyOGU0ZDgwMDdkNDM3YzYuMjllMWQ2Yjk0YTA2ZmRlNi44MDY0YTNkMjMzZDIzYTUyLmEyMjdkZjQ0NDRlYTZiYWMKQEAgLTE1MDE4LDEyICsxNTAxOCwxMiBAQAogICAgIDUwYzM4YTcxODdiMTM4OWIuYzdmYTQ1MTg2NTZhYTVkZi40OWZiNTIzZThkYmVhMDM0LjAyMjY2ZTJhOTBiMDM3MGQKICAgICBkOGNkZDI2NjllMDdkY2ZkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyNGZkYTkxZjQ2ZGY1MDEuMDAxMTMzNzE1NDg1ODFiOAorICAgIGJlOGU1ODc1ZTM5N2Y5ZWUuYzcxYTIxNzU4YzVjYjk3Mi44MDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA4MjhlNGQ4MDA3ZDQzN2M2LjI5ZTFkNmI5NGEwNmZkZTYuODA2NGEzZDIzM2QyM2E1Mi5hMjI3ZGY0NDQ0ZWE2YmFjCiAgICAgN2JmMDA1Yzk4MWY5NDMyMi5kZDI3NmZlZTJkNDhhYmIxLjJkMmEzMzk0NjA4MWE3YmYuOGUzMzQ3MTgyNjAwZmI1NgogICAgIDUwYzM4YTcxODdiMTM4OWIuYzdmYTQ1MTg2NTZhYTVkZi40OWZiNTIzZThkYmVhMDM0LjAyMjY2ZTJhOTBiMDM3MGQKICAgICBkOGNkZDI2NjllMDdkY2ZkCi1WUFNSTFFfMHgwNV8xMjgobWVtKQorVk1VTFBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGVkZjRlZWI5NmIxMGE2NTEuNWQ1M2Q5ZTNiNTg5NTNkZS5jMTI4ZDYyMjBmNzlhNTljLjJlMjNmYzNlNTMxNDYxNWQKICAgICAxZDY2M2YwZDEzZDg1MTM2LmZlZWNlYzhkYTgwY2QwOTcuYTg3YjljZjg0NjdmNjgxMy4zOWVkMmVmZjUwMTAyNmU1CkBAIC0xNTAzMywxMSArMTUwMzMsMTEgQEAKICAgYWZ0ZXIKICAgICBlZGY0ZWViOTZiMTBhNjUxLjVkNTNkOWUzYjU4OTUzZGUuYzEyOGQ2MjIwZjc5YTU5Yy4yZTIzZmMzZTUzMTQ2MTVkCiAgICAgMWQ2NjNmMGQxM2Q4NTEzNi5mZWVjZWM4ZGE4MGNkMDk3LmE4N2I5Y2Y4NDY3ZjY4MTMuMzllZDJlZmY1MDEwMjZlNQotICAgIDQ1ZjE0MDUwYjM2YTk4ZDcuOGZkOWMxZGFmYmM2ZWE3MS41OGMwMTU4NjI2OGJhOTcwLmM3YTdlM2VkMjAzZDJhNzkKKyAgICBjYjZkMWFiYzA5Mzk5YTcxLmZmZjAwMDAwMDAwMDAwMDAuMjliNTZlODE1NTU5NTlkMS4yODIyMzlmMjg4ZjMzZGNjCiAgICAgM2Y1ZjZjNmQ2NmQyMzg2MS42YzY3NTMzNjRiNDNkZjE5LmFlYzNiZGI4Y2NhNjI1ZTAuMzI5YjE3NzQ1ZTI3YWFjNAogICAgIGQ3MTZjNjAwYTY1YmUxNzMKIAotVlBTUkxRXzB4MDVfMTI4KHJlZykKK1ZNVUxQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICAxMzY1ZWRmZDk1NjQwZDMyLmU4N2Q0MTRmNDkxY2VkMDAuZjBlMjlmMGQzMzEwZTkzYS44NDUwMGU3YTU0ZGU5ODhmCiAgICAgNDBkMTg2ZDdjN2NlNjhhYy4xYzE3M2JlNDc3NTU3MmRmLjc5OTY5ZmNjNTBiODQ0ODEuYjczMjg2YjlkOTNlYmVhOQpAQCAtMTUwNDUsMTIgKzE1MDQ1LDEyIEBACiAgICAgZTAzODA0ZDM2MWY3OWQ4NC45NWVmOGFkNDI2YzJkZjBmLjA3ZDliMGFkOTdjYmUxMzAuYTQyOWQ4NWE0YmE4MTFjYgogICAgIDE2ZDVhYTk0NzBjOWI3MmMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAzZWNkODU2Y2JlNWYwOS4wNTIxNGVjMmQyNWQ0MDhlCisgICAgYmM4YzAwNmEyZmMzMWQ5Ny45NDIyYzBjODAzYjEwMWE4LjdmZjAwMDAwMDAwMDAwMDAuOWE3YjViNWNmNTc0ZDViNgogICAgIDQwZDE4NmQ3YzdjZTY4YWMuMWMxNzNiZTQ3NzU1NzJkZi43OTk2OWZjYzUwYjg0NDgxLmI3MzI4NmI5ZDkzZWJlYTkKICAgICBiYmE5OGZmYmQ3MjYyZThlLmI3ZjlkNDE3MGQ4ODg1MmIuNjJjZjUxZGQzZGM4MmU5YS4yMzM3YTA1Zjc3ZDM1MjU5CiAgICAgZTAzODA0ZDM2MWY3OWQ4NC45NWVmOGFkNDI2YzJkZjBmLjA3ZDliMGFkOTdjYmUxMzAuYTQyOWQ4NWE0YmE4MTFjYgogICAgIDE2ZDVhYTk0NzBjOWI3MmMKLVZQU1JMUV8weDA1XzEyOChtZW0pCitWTVVMUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNTUwNzkzZmIwMzQzZmZhOC4wYmM5ZGZjZDAyY2VlZjM5LjkyYzVkODA3ZGUwZTNmYjguYzNmZmI5YTlmOTRkOWFlZgogICAgIDNkOGIwZTdhMjAyMWE3NmIuOThhOTFlNTM1NTM1NjE1OS44YTQ2M2E5ZDUzNzg1ZjUyLmY0OGY2NjNiMDBkYTk0ODUKQEAgLTE1MDYwLDExICsxNTA2MCwxMSBAQAogICBhZnRlcgogICAgIDU1MDc5M2ZiMDM0M2ZmYTguMGJjOWRmY2QwMmNlZWYzOS45MmM1ZDgwN2RlMGUzZmI4LmMzZmZiOWE5Zjk0ZDlhZWYKICAgICAzZDhiMGU3YTIwMjFhNzZiLjk4YTkxZTUzNTUzNTYxNTkuOGE0NjNhOWQ1Mzc4NWY1Mi5mNDhmNjYzYjAwZGE5NDg1Ci0gICAgYWEyZDk3ZmRlMTZmNjlhMC5lMzI0YmJkM2Y3YmEyZjkxLjU5M2YyYzgwOWUwZGZkMDguZjRkM2I1ZDE0N2ZmMGQ5YworICAgIDUyYTNlZjg2ODQ2YzkwZTIuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc4OWYyMTM2ZjY3N2VkMzEKICAgICA3OGI4YWE3MDY1MzkwMTczLjQ5ODZiNGI4ODNlOTk0OGQuZGI3YzJiOWRkZGQ4ZDIwNy4yMTE4YTFkNjZhNDgzZmUwCiAgICAgZDZhYTI2YjYwNjNmNjZmZQogCi1WUE1VTFVEUV8xMjgocmVnKQorVk1PVlVQRF9FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDZlZDQ0MGRkYjc3MmMwYTIuODNmOWMzYmZjNThjMmQxMS4yNDFiMDU2ZTk2NGNjZGY5LmVjYzliMmUxMmNlNTlkN2EKICAgICA0NmU0ZWNiNzE4NmM4Nzc3LmE3YmQ1ZmQ2MjA3NGE3YTYuZDEyZmE4NjFjYjcyMTY4MC42OGYyM2QzN2E2NDExODhlCkBAIC0xNTA3MiwxMiArMTUwNzIsMTIgQEAKICAgICAyN2UxZTczNDViZTc0ZTY3LmE5ZjkwZDBkMzAyZjc3NjMuMTAwMmQ5YWUwZDMwYzY5MC4xMDA3NTBjODhjMTMxMTQ4CiAgICAgZjU4YmNmZGMzMGEyMDY0NgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ODdmZDgyMzAyYmYxYjAwLjQzODQ5OWY3ZTkzYmE1OTIKKyAgICA2ZWQ0NDBkZGI3NzJjMGEyLjgzZjljM2JmYzU4YzJkMTEuMjQxYjA1NmU5NjRjY2RmOS5lY2M5YjJlMTJjZTU5ZDdhCiAgICAgNDZlNGVjYjcxODZjODc3Ny5hN2JkNWZkNjIwNzRhN2E2LmQxMmZhODYxY2I3MjE2ODAuNjhmMjNkMzdhNjQxMTg4ZQogICAgIGJiMjQyNWIwYzViYWY4MmEuYmZjZWY5YTE4ZmZiMmM1ZC5hYjBkOWJmZGJmZTRhYWNlLjJiYzM0ODhhNjdmNzAwNmYKLSAgICAyN2UxZTczNDViZTc0ZTY3LmE5ZjkwZDBkMzAyZjc3NjMuMTAwMmQ5YWUwZDMwYzY5MC4xMDA3NTBjODhjMTMxMTQ4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFiMGQ5YmZkYmZlNGFhY2UuMmJjMzQ4OGE2N2Y3MDA2ZgogICAgIGY1OGJjZmRjMzBhMjA2NDYKLVZQTVVMVURRXzEyOChtZW0pCitWTU9WVVBEX0V0b0dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjUxYzQzYjI3MGFmOWM5NC5lODY4MmViMDc1N2ZjN2Q5LjQwMDkxNzA0MWYxYzQ1ZTQuNWI1YjVlZTA1MmUxYTY3MgogICAgIDJjODQyNzM2Njc0NjhmNWYuNTgwMmY2OGViMDBmOWQyYy42MGNjOTQ3NDc3Y2M1MjBiLmU4NjIyNjAwMjk4Mzg2MWYKQEAgLTE1MDg3LDExICsxNTA4NywxMSBAQAogICBhZnRlcgogICAgIGI1MWM0M2IyNzBhZjljOTQuZTg2ODJlYjA3NTdmYzdkOS40MDA5MTcwNDFmMWM0NWU0LjViNWI1ZWUwNTJlMWE2NzIKICAgICAyYzg0MjczNjY3NDY4ZjVmLjU4MDJmNjhlYjAwZjlkMmMuNjBjYzk0NzQ3N2NjNTIwYi5lODYyMjYwMDI5ODM4NjFmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBlOGVmOGZkMTI0YTA4Y2MuMGQ3MGI4OGM5NGM4ZDNjZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MDA5MTcwNDFmMWM0NWU0LjViNWI1ZWUwNTJlMWE2NzIKICAgICBhZTBiMzBmOWVjNDQ3YjFhLmI5YTdmYjI0Zjc0NDUyMjguYWE5N2QzNmJkNGFiMThmZC4zOGFjNzFiNmZlY2MzNThkCiAgICAgYjI4OGViMjUzNThiN2JhNQogCi1WUE1VTFVEUV8xMjgocmVnKQorVk1PVlVQRF9FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGRmNDI5ODMwNmU2YmIyMzkuNzJjMzRkMGZiMmMyZWM2My42MTQ4MmZiNDNiMDJhOTI5LjhkMzc4ZWNiMTBmMTQ5MjAKICAgICAxYTI3NzQ0NTQ1ZjgxNGY0LjVjODJjYTgzOWZmYmFhZDguMjkyZmQ0NTcxMGU3NGViYi42OGI5YWM1MzI2MmJhOTk5CkBAIC0xNTA5OSwxMiArMTUwOTksMTIgQEAKICAgICAyOWEyYWIzYTNmNGE0YzkyLjE2NDhkNTM3NjBjY2ZiZjkuODlmYTYzODZkYjU3NzE0NC43YTkyZmQ4YjRlYWNlNTQwCiAgICAgNjk4MjI5MTM5OTBiMzljNgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTI3YzczM2EwOTgwNGNlLjA3NWQ4ZjI4MmQ5ODMzYTYKKyAgICBkZjQyOTgzMDZlNmJiMjM5LjcyYzM0ZDBmYjJjMmVjNjMuNjE0ODJmYjQzYjAyYTkyOS44ZDM3OGVjYjEwZjE0OTIwCiAgICAgMWEyNzc0NDU0NWY4MTRmNC41YzgyY2E4MzlmZmJhYWQ4LjI5MmZkNDU3MTBlNzRlYmIuNjhiOWFjNTMyNjJiYTk5OQogICAgIGJmODM3Y2NmNTdiZmRlODMuNGExNTIzNDJkMGZhNzBhNi42ZGE2ZTc3OTExN2Y3YzhhLjE5ZThhOGVmMzE2NWY0OTYKLSAgICAyOWEyYWIzYTNmNGE0YzkyLjE2NDhkNTM3NjBjY2ZiZjkuODlmYTYzODZkYjU3NzE0NC43YTkyZmQ4YjRlYWNlNTQwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZkYTZlNzc5MTE3ZjdjOGEuMTllOGE4ZWYzMTY1ZjQ5NgogICAgIDY5ODIyOTEzOTkwYjM5YzYKLVZQTVVMVURRXzEyOChtZW0pCitWTU9WVVBEX0V0b0dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzA4M2E4NzMyYzhlYWM1MS5iNmQwZmRmMjlhMjg5OWNjLjllZTc1YjRkNmM3YjA3ZmMuZGE3NjQ0ZWEwOWZhNjc5MgogICAgIDVkNjJmNDk4MjY0MmY5MTAuYzA1OTZlNjQwNGUyMDJkZC5iY2JlMzA3MjBmMTU1MGRjLmJhNjg4NjExMzdmNTliMjMKQEAgLTE1MTE0LDExICsxNTExNCwxMSBAQAogICBhZnRlcgogICAgIGMwODNhODczMmM4ZWFjNTEuYjZkMGZkZjI5YTI4OTljYy45ZWU3NWI0ZDZjN2IwN2ZjLmRhNzY0NGVhMDlmYTY3OTIKICAgICA1ZDYyZjQ5ODI2NDJmOTEwLmMwNTk2ZTY0MDRlMjAyZGQuYmNiZTMwNzIwZjE1NTBkYy5iYTY4ODYxMTM3ZjU5YjIzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA2NjQzZGQzMTdlNTljOTAuMDIyZTVlZjE3NmFiOGVmNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ZWU3NWI0ZDZjN2IwN2ZjLmRhNzY0NGVhMDlmYTY3OTIKICAgICBkNWVhZThkZGI5NmIxNGQ1LmJmYWE5ZTIxNzIxZjE4MzguMmU0M2JkOTY4YjM5ODdlMS45YWRhMWU1OTA2MWZhYmI4CiAgICAgNTJmMjZjNTFkZTY4MDAxNgogCi1WUE1VTFVEUV8xMjgocmVnKQorVk1PVlVQRF9FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDBhYWYwYmJkMjYzODgzNjQuNjgyYjg3ZDU4YWY4NWEzMy42YzBiNTU0NmFlYmEzY2Q4LjM5ODk2YjZkOWRkYWVlNWUKICAgICAxZTVkZjcwODdiMWI2ZjUxLmIwNzllNDQyMzJlNTZhNzQuMDZmNzFjZDQ2OTYyNmMwMC40YzM3NWEwM2I2OTU4MTY4CkBAIC0xNTEyNiwxMiArMTUxMjYsMTIgQEAKICAgICBjOWJiYTdlYWJhNGI3NWIyLmQwNzBjYTI4NzAxMGRiNGQuNzVhMGM2ZGFjYjBhZGY5Ny5mNWZiZTgxNzZlOGIxZWQyCiAgICAgNDRhOTgwNmY0NWRlYTA4YQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xYTMyYjA0MDRiOGVkMDAwLmFjZWVlODYzZTM1ODg0NzgKKyAgICAwYWFmMGJiZDI2Mzg4MzY0LjY4MmI4N2Q1OGFmODVhMzMuNmMwYjU1NDZhZWJhM2NkOC4zOTg5NmI2ZDlkZGFlZTVlCiAgICAgMWU1ZGY3MDg3YjFiNmY1MS5iMDc5ZTQ0MjMyZTU2YTc0LjA2ZjcxY2Q0Njk2MjZjMDAuNGMzNzVhMDNiNjk1ODE2OAogICAgIGU5NDgyZDlkNzk5ZDAxODcuODlhMjdjMGZjYTNlMDFjMy5lYmJhZWQzNjNmYTNlNDVjLjQxMTkwNTQyZjI3N2ZkMmIKLSAgICBjOWJiYTdlYWJhNGI3NWIyLmQwNzBjYTI4NzAxMGRiNGQuNzVhMGM2ZGFjYjBhZGY5Ny5mNWZiZTgxNzZlOGIxZWQyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmViYmFlZDM2M2ZhM2U0NWMuNDExOTA1NDJmMjc3ZmQyYgogICAgIDQ0YTk4MDZmNDVkZWEwOGEKLVZQTVVMVURRXzEyOChtZW0pCitWTU9WVVBEX0V0b0dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMGJlZTQ3MzQ5NDdiM2U3ZS4xOTA0NjM1YWRkYjAwNzdmLjVmYjA0YTc5NDA2NmI0M2UuMDJmNGEyMmJhYTIyOWE1ZQogICAgIDI0OThiYjU0NzY2ZWI1ZGIuMzU2ZDVkNTk3YzU5ZjI5YS4xMzJlNzhlZTU1NGQ0N2MxLmVjMDQ3ZDk1Nzc3NzUxNWMKQEAgLTE1MTQxLDExICsxNTE0MSwxMSBAQAogICBhZnRlcgogICAgIDBiZWU0NzM0OTQ3YjNlN2UuMTkwNDYzNWFkZGIwMDc3Zi41ZmIwNGE3OTQwNjZiNDNlLjAyZjRhMjJiYWEyMjlhNWUKICAgICAyNDk4YmI1NDc2NmViNWRiLjM1NmQ1ZDU5N2M1OWYyOWEuMTMyZTc4ZWU1NTRkNDdjMS5lYzA0N2Q5NTc3Nzc1MTVjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1NzU4YWM5ZDYxMTE0YmUuNGY2NTYxZTk4YWY5MzdjOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZmIwNGE3OTQwNjZiNDNlLjAyZjRhMjJiYWEyMjlhNWUKICAgICBiZjQ2OTg1MjY1ODcxZDdmLjQxZDJmN2I0OWZhNGM2NjkuNWExM2NmZjViZmZiOGQyZi40YTgzMjA2NDRjMGFhMmIwCiAgICAgNzc4YmUxYTE4ZDVmYjQ1ZAogCi1WUFNMTFFfMHgwNV8xMjgocmVnKQorVkFERFBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDcxN2Q5MWE4MmMyMmIyZjIuZjllM2Y4MDhhYWM2ODcxZS5lODY2OGZlOTViNWUyNjc0LmE2MTNmMDVlNGRkYWI5NzIKICAgICA5NWE3MmNlM2M1ZGVkODFiLmY2MTNmNWM4ZjI4YWI4ZDUuY2M0YjU1NWMwMzhjZDA3ZC44NjgwYWY5YzkwN2E4ZmY4CkBAIC0xNTE1MywxMiArMTUxNTMsMTIgQEAKICAgICBjYmNmMTRhYTU3NzI4YWQ2LmE5NjBiMzE2ZmRkNjY2M2UuYjczNjU5YjA4YTcyZjEzOC43NWQ0Zjg0M2E2MmIyYjdiCiAgICAgM2M1MzdhODViMTU0NjlkMAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNmNiMzYxMTRlNWUyNzAwLmJhOWYwODc0YzU2NTZmNjAKKyAgICAzZjUzYWZjMGY1MWY2MTgzLmY2MTNmNWM4ZjI4YWI4ZDUuY2M0YjU1NWMwMzhjZDA3ZC5kNzI3ODk5OWE0ZTdjYmVjCiAgICAgOTVhNzJjZTNjNWRlZDgxYi5mNjEzZjVjOGYyOGFiOGQ1LmNjNGI1NTVjMDM4Y2QwN2QuODY4MGFmOWM5MDdhOGZmOAogICAgIDNmNTNhZmMwZjUxZjYxODMuOTJhNDBhN2U1YWUxNmZkMS40OGNjNDU3YjM0YjkwMDMwLmQ3Mjc4OTk5YTRlN2NiZWMKICAgICBjYmNmMTRhYTU3NzI4YWQ2LmE5NjBiMzE2ZmRkNjY2M2UuYjczNjU5YjA4YTcyZjEzOC43NWQ0Zjg0M2E2MmIyYjdiCiAgICAgM2M1MzdhODViMTU0NjlkMAotVlBTTExRXzB4MDVfMTI4KG1lbSkKK1ZBRERQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICAwODcwOGE0YmUyNmQ0MjE4Ljk1NjU1OTBjODg2MjhlYzEuMTcxNTZjN2RmNzc2NWI0Ny43N2Q2OGY2OWEwNDJlMTQyCiAgICAgYjRmNmE0ODE1NDgzNzI3Zi5mOTYyNzk1NDIzN2NhYmYwLmI4OGRiMjlkNjVjYzA3MTkuZTJmNmUyMTExM2I1MGFmYQpAQCAtMTUxNjgsMTEgKzE1MTY4LDExIEBACiAgIGFmdGVyCiAgICAgMDg3MDhhNGJlMjZkNDIxOC45NTY1NTkwYzg4NjI4ZWMxLjE3MTU2YzdkZjc3NjViNDcuNzdkNjhmNjlhMDQyZTE0MgogICAgIGI0ZjZhNDgxNTQ4MzcyN2YuZjk2Mjc5NTQyMzdjYWJmMC5iODhkYjI5ZDY1Y2MwNzE5LmUyZjZlMjExMTNiNTBhZmEKLSAgICAxZWIyNDUxMzI0YTFiNDMwLjUzMTE3MGVkYzU0YTFiMGYuNjg5NTAwNjQ2M2U0MjlkZi41NmUyNGUxNDdlNThhODBiCisgICAgYjRmNmE0ODE1NDgzNzI3Zi5mOTYyNzk1NDIzN2NhYmYwLmI4OGRiMjlkNjVjYzA3MTkuNzdkNjhmNjlhMDQyZTE0MgogICAgIDIxNzFlN2VkNmRkM2M1NTguZmZjMDNiNDMwOTViMWJjOS4wM2Y5ZDJiYzBjY2I3YmM2LjJkZThjZmRlN2RiNmY5MjEKICAgICBjNTUzNjJkYmFkNWIzN2VhCiAKLVZQU0xMUV8weDA1XzEyOChyZWcpCitWQUREUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNzg2ZTAyNzdhOWQzOWYxMC45OWZkMDhmYjRjMjY2MTIyLjU5YjlkNGMyOGMzOGU2Y2EuNjU4NGE0OTM3YzhjYmFmYQogICAgIGE0ODZhYjFlMGVhYjZjM2YuNjIyMzIzMmFkY2E1NDRiYi5iZDRhMzlkNmU5NmZiOWJmLjY5MDRmM2Q0ZDAzM2EyYTYKQEAgLTE1MTgwLDEyICsxNTE4MCwxMiBAQAogICAgIGQyZGQwODNlODFhOTI5NmIuNTY2YzM4OTc4MTU4Y2QwOS4xMzVmNTU2ZWEzMTg2NzM0LmNjMGVmNDQ0OTI2NTViMTgKICAgICBlMjMxOWY0YjM5MDdhNTM2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZiZWFhZGQ0NjMwY2U2ODAuODFkZTg4OTI0Y2FiNjMwMAorICAgIGE0ODZiMGY0NWUwOTg4MzYuNjIyMzIzMmFkY2E1NDRiYi5iZDRhMzlkNmU5NmZiOWJmLmVkNDMzOTZiMjNjZGVlZjcKICAgICBhNDg2YWIxZTBlYWI2YzNmLjYyMjMyMzJhZGNhNTQ0YmIuYmQ0YTM5ZDZlOTZmYjliZi42OTA0ZjNkNGQwMzNhMmE2CiAgICAgYTNlNzU5M2Q3ODZmZGMyNC41OGFlYjQ2NDNhNWMyOTRmLjg3YmQ2NmVjYmQ4YmQwNTQuZWQ0MzM5NmIyM2NkZWVmNwogICAgIGQyZGQwODNlODFhOTI5NmIuNTY2YzM4OTc4MTU4Y2QwOS4xMzVmNTU2ZWEzMTg2NzM0LmNjMGVmNDQ0OTI2NTViMTgKICAgICBlMjMxOWY0YjM5MDdhNTM2Ci1WUFNMTFFfMHgwNV8xMjgobWVtKQorVkFERFBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDBhNzhiNzZjMzJjMDg4N2QuOGViNGI1OGZjOGU3OTBiZi4zYTI3MmFhZGNkYTRlYjE1LmJkN2MwM2NhMzdhM2I5MGMKICAgICAyMmFmYjY5MzljOWJiZjE4LjMxYjg1YjlhZTdiNTRjY2QuZGZhZDA2OTQzYjRkNDFhMS5lMTVmNmQ2YTE2YjcwMzg4CkBAIC0xNTE5NSwxMSArMTUxOTUsMTEgQEAKICAgYWZ0ZXIKICAgICAwYTc4Yjc2YzMyYzA4ODdkLjhlYjRiNThmYzhlNzkwYmYuM2EyNzJhYWRjZGE0ZWIxNS5iZDdjMDNjYTM3YTNiOTBjCiAgICAgMjJhZmI2OTM5YzliYmYxOC4zMWI4NWI5YWU3YjU0Y2NkLmRmYWQwNjk0M2I0ZDQxYTEuZTE1ZjZkNmExNmI3MDM4OAotICAgIDA1YTExYWFkOTBhNDA3MzMuMTgzNGY2Y2Q3YTlkOWE0MC4yMGM4NDgzN2U3NWQ4OWQ3LmRhNTY4ZWJjZGNlMTgxNTMKKyAgICAyMmFmYjY5MzljOWJiZjE4LjMxYjg1YjlhZTdiNTRjY2QuZGZhZDA2OTQzYjRkNDFhMS5lMTVmNmQ2YTE2YjcwMzg4CiAgICAgOGUxYzVlYTQyY2U4MWJmYy45Zjc1ODI5MzFkMmRiNmM1LmRiNDU2YzgyZWNlMjgwZTMuMDZhYjYyMmIyNGFjNmYxYQogICAgIGMwYWNlNjIzOGFhNDA4ODgKIAotVlBTTExRXzB4MDVfMTI4KHJlZykKK1ZBRERQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICA2M2EzMTUwZmFiNTU4OTRhLjliZWFmZTY2OGM3MmI5OWQuMjNjN2ZjNTg2ZWYxZGMwOC5lYWVmZWY2MTY2ZThlMWYyCiAgICAgNGRkY2VhNWUyMjRjMmUwYy4wNmQ4NzdkZGNiNGY5YjQyLmZlNzY1Zjg4MDY3MzQ3YjQuMmI5NDRjYzA3Mjc5NmEzMApAQCAtMTUyMDcsMTIgKzE1MjA3LDEyIEBACiAgICAgNjI0OTdjY2Q4NTNhZDIzZC42YTQzZTA5ZjU4MmYxZDRiLjJjMWJkMGQ5ODFlN2RmZjkuYWZmYjg0YWVhZTcyZGVlNwogICAgIGFhNTU1ODE2MTZmMTQzYjkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODM3YTFiMzAzY2ZiZmYyMC5mZjcwOTVkNWNlNWJkY2UwCisgICAgZDlhNTY0Nzk4YzE1MzI3OS5hZGIyNDNmNzA2OGE3ZTE4LmZlNzY1Zjg4MDY3MzQ3YjQuNzhmZmZmOGIyYmE0ZDVjOAogICAgIDRkZGNlYTVlMjI0YzJlMGMuMDZkODc3ZGRjYjRmOWI0Mi5mZTc2NWY4ODA2NzM0N2I0LjJiOTQ0Y2MwNzI3OTZhMzAKICAgICBkOWE1NjQ3OThjMTUzMjc5LmFkYjI0M2Y3MDY4YTdlMTguOGRjZWE3OGY4MzQyMzQ3Ni43OGZmZmY4YjJiYTRkNWM4CiAgICAgNjI0OTdjY2Q4NTNhZDIzZC42YTQzZTA5ZjU4MmYxZDRiLjJjMWJkMGQ5ODFlN2RmZjkuYWZmYjg0YWVhZTcyZGVlNwogICAgIGFhNTU1ODE2MTZmMTQzYjkKLVZQU0xMUV8weDA1XzEyOChtZW0pCitWQUREUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNDdkOWY1YWQ4MDJjYmU2OS40NjEzMmZjNmE3NDk0YTA2LjFiNTljOWMxZGQ0YTM2MDYuMzdhOGQ2ZDI5YmYwODNlYQogICAgIDYwNTNkOTYxMDcyZjBjMjMuZGY1MDdhZDE5MWNkZDY3ZS45YWJmN2I0OWIyZTg4Mzc2LjBhYzNiNmU3NmRlODVlZjUKQEAgLTE1MjIyLDExICsxNTIyMiwxMSBAQAogICBhZnRlcgogICAgIDQ3ZDlmNWFkODAyY2JlNjkuNDYxMzJmYzZhNzQ5NGEwNi4xYjU5YzljMWRkNGEzNjA2LjM3YThkNmQyOWJmMDgzZWEKICAgICA2MDUzZDk2MTA3MmYwYzIzLmRmNTA3YWQxOTFjZGQ2N2UuOWFiZjdiNDliMmU4ODM3Ni4wYWMzYjZlNzZkZTg1ZWY1Ci0gICAgZDI4ZjdmMWRjODA3ZTgxNS44YjRkNTg1OGRjNTNiMTUxLmM0NDA3MDIzZjMxNGMxYzYuMDFiNjZiODI5NDViYWFjNQorICAgIDYwNTNkOTYxMDcyZjBjMjMuZGY1MDdhZDE5MWNkZDY3ZS4xYjU5YzFlMzBhZGQ3YmU1LjM3YThkNmQyOWJmMDgzZWEKICAgICA3YTU4NjRjY2RlYmYxMDY4LmE0NTRjNWM5MjY2NjE4MmMuNzZhOTI2M2JiYmRiYWIyMy43OGNlZjExMWFjZDZhMzA3CiAgICAgY2I1NzQ0ZmU1MGU0ODc2NgogCi1WUE1BWFVEXzEyOChyZWcpCitWU1VCUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNTY5ZDYxYjcxYzEyOTA4Zi4zMjdjMDI1YzY2NjQzZTRiLjg4YjFiZThmMGI5MjQ3YmIuOGFjNjE4N2UyNjQ3ZmViOQogICAgIDc1ZWI0M2E3YWRlYWZhMmUuZDdjNWQ3Yjg3YjAxMmZlOC45MWIyM2QxNTI2NjQ3OWE5LmRkNjNjMmQ2NTE2Nzc2YjMKQEAgLTE1MjM0LDEyICsxNTIzNCwxMiBAQAogICAgIGRlZDM0NmRjOGNjZWU1N2MuNTlmOTEzODRiZTUzNDgwMi44NmNjYzIxNjcwMjdkOTU0LmIxNGMyZjc5NTVlY2M0ODYKICAgICBlOTMwZWE5YzY2NmExMmI2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkxYjIzZDE1MjY2NDc5YTkuZGQ2M2MyZDY1NzQ0Y2YzZQorICAgIDc1ZWI0M2E3YWRlYWZhMmUuZDdjNWQ3Yjg3YjAxMmZlOC45Y2EyNDBjOTE0NjdlYmEzLmRkNjNjMmQ2NTE2Nzc2YjMKICAgICA3NWViNDNhN2FkZWFmYTJlLmQ3YzVkN2I4N2IwMTJmZTguOTFiMjNkMTUyNjY0NzlhOS5kZDYzYzJkNjUxNjc3NmIzCiAgICAgODM4ZmU2M2E5ZWZiMDNlZS40NjAwNWVjYzNhYTI5ZTZjLjFjYTI0MGM5MTQ2N2ViYTMuNGM0YmExMzA1NzQ0Y2YzZQogICAgIGRlZDM0NmRjOGNjZWU1N2MuNTlmOTEzODRiZTUzNDgwMi44NmNjYzIxNjcwMjdkOTU0LmIxNGMyZjc5NTVlY2M0ODYKICAgICBlOTMwZWE5YzY2NmExMmI2Ci1WUE1BWFVEXzEyOChtZW0pCitWU1VCUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZDBjNDRkODVhN2NiNzVmYS5lMTA0NWZmOTEyZjFkZDgzLmVkN2M3M2NkMjMyMWU5ZDcuMjk3ZGMwNjhkNjMxN2Y2OQogICAgIDQyZDRkNDFmMzMxYWE4N2YuZTg2ZTJlZmRjZGVmMjdiMC5kZTU0Zjk5MTg2MTgzZDE2LjYyMDEzNDJjZTMxMDE4OGUKQEAgLTE1MjQ5LDExICsxNTI0OSwxMSBAQAogICBhZnRlcgogICAgIGQwYzQ0ZDg1YTdjYjc1ZmEuZTEwNDVmZjkxMmYxZGQ4My5lZDdjNzNjZDIzMjFlOWQ3LjI5N2RjMDY4ZDYzMTdmNjkKICAgICA0MmQ0ZDQxZjMzMWFhODdmLmU4NmUyZWZkY2RlZjI3YjAuZGU1NGY5OTE4NjE4M2QxNi42MjAxMzQyY2UzMTAxODhlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVkN2M3M2NkODYxODNkMTYuNjIwMTM0MmNlMzEwMTg4ZQorICAgIDUwYzQ0ZDg1YTdjYjc1ZmEuZTg2ZTJlZmRjZGVmMjdiMC42ZDdjNzNjZDIzMjFlOWQ3LjYyMDEzNDJjZTMxMDE4OGUKICAgICAzNzk4NDAxYjllYjI3MWZjLjcxMWNkYjZiNTBhZDlmMmIuNDczNzY3M2ViNGFkZWM4NS4wN2IyNzNiNTYxN2UxNmI2CiAgICAgMmE3NjM1NTQwOTI1ZjIxMgogCi1WUE1BWFVEXzEyOChyZWcpCitWU1VCUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNTMzZTVlMTNjOGQxYjIyZC43MmU0MWM1NWI1MTQ3ZjRiLmFjZjliMWFkNTA4NjQ2ZDAuNzdkOTQ3ZmViODY0YzAwYwogICAgIGRlNTRlYjYwMzkwZjkyYjMuYThkYjBjZjA4Nzk1NGQ4YS41YTNlMmM4NWY0NjkyZjRjLjc0MDEzZGViMjk3NDM2YWUKQEAgLTE1MjYxLDEyICsxNTI2MSwxMiBAQAogICAgIDhhOWQxZTUwYTM2ZmExYjMuNzVmZDE5ZmRjZDIwMWM4Yi44NDMzMDNhYzliODJiNTczLjQ1MTM1ZGY5YzNjY2ZjZjEKICAgICBkMTk0N2VmMjI0MmRjMmViCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ5Mzg0OTYxZjQ2OTJmNGMuNzQwMTNkZWIyOTc0MzZhZQorICAgIGRlNTRlYjYwMzkwZjkyYjMuMzU0YThjZDkzMDNmOThlNi41YTNlMmM5ZTNkY2IwYTMxLjc0MDEzZGViMjk3NDM2YWUKICAgICBkZTU0ZWI2MDM5MGY5MmIzLmE4ZGIwY2YwODc5NTRkOGEuNWEzZTJjODVmNDY5MmY0Yy43NDAxM2RlYjI5NzQzNmFlCiAgICAgMjcwNWQ3YTZmOTZhY2U1MS5iNTRhOGNkOTMwM2Y5OGU2LmQ5Mzg0OTYxZGFlNDk1NDkuMWE3YmM2ZjAyM2U4MGM5NgogICAgIDhhOWQxZTUwYTM2ZmExYjMuNzVmZDE5ZmRjZDIwMWM4Yi44NDMzMDNhYzliODJiNTczLjQ1MTM1ZGY5YzNjY2ZjZjEKICAgICBkMTk0N2VmMjI0MmRjMmViCi1WUE1BWFVEXzEyOChtZW0pCitWU1VCUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOWFjYmE2Yzc2MzE2MWNhZi42MzY4YmNjY2Q0YTg0ODg1LmM0YzAyZTQ2N2E0Mzk1YTUuYjY3YjU2ZDJkNWQwY2I3NwogICAgIDdjODU1MDY0OWI5M2M0NjkuMGViMWFkODUyN2EzZmY3Mi43ZTVmNDdhMjUyYjViZTVmLmNkNWMzZTNmMjQ1OTEyMDEKQEAgLTE1Mjc2LDExICsxNTI3NiwxMSBAQAogICBhZnRlcgogICAgIDlhY2JhNmM3NjMxNjFjYWYuNjM2OGJjY2NkNGE4NDg4NS5jNGMwMmU0NjdhNDM5NWE1LmI2N2I1NmQyZDVkMGNiNzcKICAgICA3Yzg1NTA2NDliOTNjNDY5LjBlYjFhZDg1MjdhM2ZmNzIuN2U1ZjQ3YTI1MmI1YmU1Zi5jZDVjM2UzZjI0NTkxMjAxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM0YzAyZTQ2N2E0Mzk1YTUuY2Q1YzNlM2ZkNWQwY2I3NworICAgIDdjODU1MDY0OWI5M2M0NjkuZTM2OGJjY2NkNGE4NDg4NS43ZTVmNDdhMjUyYjViZTVmLmNkNWMzZTNmMjQ1OTEyMDEKICAgICBmYWFkMWFhNzY4N2JmMDczLjRhZjE3YTVmYTUwZThjNGUuYTM2MDc1M2ZmNGIzMTM2NC4xNjE4YmY5ZTZlNGQyNjU1CiAgICAgMDA4YjRmNjhhMmQwNmI3NwogCi1WUE1BWFVEXzEyOChyZWcpCitWU1VCUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgM2VjNzY0Mjk1YWJlZDFkMC40ZmIzMzIyNDM0ZmRlYzE5LjkzN2Y0ZDU3MDg5NWRhOTYuYzU1YTgzNTlmNzU4YjYwOAogICAgIDJkMThmYjRlMzNhNDk1MDkuMmQ2Y2JjMWE2YTQ0Mjc2Ni4xZWJjNjMzY2ZkMGQyOGE5LmMzNjE4NTM1OTQ3YmZhZmMKQEAgLTE1Mjg4LDEyICsxNTI4OCwxMiBAQAogICAgIDg5Mjg5YjcwYjY4NTI2ZDEuZjMyMzE4MWQ4MzRlNDlhNC42OTczNGE3ZjBlMDJiMmUzLmJmYzA1NmU0MTI2YzU1ODcKICAgICA3NmIyMWM4ZTJiNTJlMzc1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ3ZjRiOTdiZmQwZDI4YTkuYzM2MTg1MzVlYTI4OWI2ZAorICAgIDJkMThmYjRlMzNhNDk1MDkuZWZhMjM1NzMyNjViNWQ4Ni5jN2Y0Yjk3YjIwMDNiMTM0LmY4M2ZmN2JmZWEyODliNmQKICAgICAyZDE4ZmI0ZTMzYTQ5NTA5LjJkNmNiYzFhNmE0NDI3NjYuMWViYzYzM2NmZDBkMjhhOS5jMzYxODUzNTk0N2JmYWZjCiAgICAgMjdjYTBlNDFjODBkZjNkMC42ZmEyMzU3MzI2NWI1ZDg2LjQ3ZjRiOTdiMjAwM2IxMzQuNzgzZmY3YmZlYTI4OWI2ZAogICAgIDg5Mjg5YjcwYjY4NTI2ZDEuZjMyMzE4MWQ4MzRlNDlhNC42OTczNGE3ZjBlMDJiMmUzLmJmYzA1NmU0MTI2YzU1ODcKICAgICA3NmIyMWM4ZTJiNTJlMzc1Ci1WUE1BWFVEXzEyOChtZW0pCitWU1VCUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNzhlMGM3YWE0ZWU3MDI2NC5hZjgwOWQ0Njk4OTk2YmI4Ljk0YjllMTAzOWQyYWE4ZWQuZTI4NDEyYjM2Mzk3Njc2MQogICAgIGEwMTVkMjI1OWEzNTZkN2YuZjYxYzExMmYwYmQ0ZmUzMC4yZDMxMGQxMTkxZmEzNjhkLjBkNzUwZDg1YmE0ZDBiNWIKQEAgLTE1MzAzLDExICsxNTMwMywxMSBAQAogICBhZnRlcgogICAgIDc4ZTBjN2FhNGVlNzAyNjQuYWY4MDlkNDY5ODk5NmJiOC45NGI5ZTEwMzlkMmFhOGVkLmUyODQxMmIzNjM5NzY3NjEKICAgICBhMDE1ZDIyNTlhMzU2ZDdmLmY2MWMxMTJmMGJkNGZlMzAuMmQzMTBkMTE5MWZhMzY4ZC4wZDc1MGQ4NWJhNGQwYjViCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk0YjllMTAzOWQyYWE4ZWQuZTI4NDEyYjNiYTRkMGI1YgorICAgIGY4ZTBjN2FhNGVlNzAyNjQuZjYxYzExMmYwYmQ0ZmUzMC4yZDMxMGQxMTkxZmEzNjhkLjYyODQxMmIzNjM5NzY3NjEKICAgICBkNmM3ZjllNDE2MzIxYmViLjUyNTMzYmU5MTJmMGZkODUuYmJmNjdhNTU3NmE3Y2U4MC5lODIyOGRiMGRmNGMxNDcxCiAgICAgNTE3NzBhZTFlNWFlZWZlNgogCi1WUE1JTlVEXzEyOChyZWcpCitWRElWUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZGJkYWFhNWY1ZTYxYWI4Ni45Y2RjMGMwMTgwZjhkNTk0LjIwODZlYTk0ZGVlOWUxYjkuNjhkY2I0NjM5ZTljNTAyYgogICAgIGU0OTk2OTk2ZTVmMjgyZmQuZjgyOTcwMmI4MWE4Y2IxYS43ZTJlZmEwMWFhMzkwMzMwLjdkZDM0MDRhMTBiNmYxZGQKQEAgLTE1MzE1LDEyICsxNTMxNSwxMiBAQAogICAgIGRmNTczNmUwOGZkYjczMjQuZTY5YTE5NWJiYWY3NWY2Yi41YTBjMmVkNGI1MTBmMDkxLjUzMjc0MDRlNDA4NjdlMDQKICAgICBjYzFjYWI0NTM2NTRlM2QyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdlMmVmYTAxMTM2ZDlmOTQuN2RkMzQwNGExMGI2ZjFkZAorICAgIDVjOGFkZDhjZDE0ZjY2YWIuNmY5ZTkyNzkzY2NkZTM2Mi5mNTg2MWUxYWNjZWFjMGMxLmU1MTkwODYyN2RhNDBkY2IKICAgICBlNDk5Njk5NmU1ZjI4MmZkLmY4Mjk3MDJiODFhOGNiMWEuN2UyZWZhMDFhYTM5MDMzMC43ZGQzNDA0YTEwYjZmMWRkCiAgICAgYzdmZTQ0ZjMxN2VjYjFmOS5jODdhYTA1MDM2NGViYmE4LmM4OTY2ODlkMTM2ZDlmOTQuZDhhODliZjRlN2ZmNmNjMQogICAgIGRmNTczNmUwOGZkYjczMjQuZTY5YTE5NWJiYWY3NWY2Yi41YTBjMmVkNGI1MTBmMDkxLjUzMjc0MDRlNDA4NjdlMDQKICAgICBjYzFjYWI0NTM2NTRlM2QyCi1WUE1JTlVEXzEyOChtZW0pCitWRElWUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMWQ1MzU4YzRlNjc3NTc1Ni44YWVlM2JjYmVhNGMwNjJhLjJmNTY1NTM5MjlhZTc0OGYuOTBkYTRhMTMyYmFmMzNkNQogICAgIDIzOTdjM2I2NmJmYTk1YmQuMjIxMDRmMWVjM2NhYTRiOC44MDdhZDJkNGEwODBiNTNmLmM2NGRiN2M1MTFkNGEzMDkKQEAgLTE1MzMwLDExICsxNTMzMCwxMSBAQAogICBhZnRlcgogICAgIDFkNTM1OGM0ZTY3NzU3NTYuOGFlZTNiY2JlYTRjMDYyYS4yZjU2NTUzOTI5YWU3NDhmLjkwZGE0YTEzMmJhZjMzZDUKICAgICAyMzk3YzNiNjZiZmE5NWJkLjIyMTA0ZjFlYzNjYWE0YjguODA3YWQyZDRhMDgwYjUzZi5jNjRkYjdjNTExZDRhMzA5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJmNTY1NTM5MjlhZTc0OGYuOTBkYTRhMTMxMWQ0YTMwOQorICAgIDQ2MzNhNzRkY2QwZjNmZTkuZDcxMTQzMGUwMjU3OTRhNy45MTEzMzc5ZDc3MWM0ZDQ1Ljc1NjIxNjJjZDJmNGY5Y2IKICAgICBiZjdhYzRhODY2NTE2MmUzLjhkMjQ5NWIxNjExZWYzMWIuYTUyYTdjZjUxNGEyYWVmNS5hMjUxNzUzMTlmZTZmZWY4CiAgICAgMDA3YmJlYzQ3ZmVhNjAwOQogCi1WUE1JTlVEXzEyOChyZWcpCitWRElWUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgY2U3OTQ4N2E0MGE1ZGZiYy4wY2IwNTM3ZjEzM2U2OGY5LjE3YWZiZmM4NWUwYzFjNDguMzM0ZWExNTI0YTBhZGU1MgogICAgIDY4OTkwZmJmN2NhM2I4YmQuN2UyNDhmN2EwNmJhMmFhMy5mZmY0ZThmODQ5Mzc0MWFjLjM3MDlmNzFlZjZiZDJhZWQKQEAgLTE1MzQyLDEyICsxNTM0MiwxMiBAQAogICAgIDZmNmE0NWE2ZGI5YTY4NTcuNDJmNTAyOGQyZDk0Y2M1ZC41YWRmMjg1MzVhNzY2ZWNjLjE0NzgyM2FmMjYzMjA5ODcKICAgICBhNWMzZjE0ZGUyMGMxM2UwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmEyNDAwY2FkNDkzNzQxYWMuMzcwOWY3MWUzN2M2NGZmMAorICAgIDdmNjMwOWFmM2ZiMWIzMzguY2M3MTU5ZjdiOTNlM2NlNi5mZmZjZThmODQ5Mzc0MWFjLmU4Y2ZmZDVjOGFjNGZjMTgKICAgICA2ODk5MGZiZjdjYTNiOGJkLjdlMjQ4ZjdhMDZiYTJhYTMuZmZmNGU4Zjg0OTM3NDFhYy4zNzA5ZjcxZWY2YmQyYWVkCiAgICAgMjkyNTBmZmZkMjcxMjdiNy5mMWEyZjU4NjViZDM2MjBhLmEyNDAwY2FkYmUyYzlkZjQuOGUyOWY5NDMzN2M2NGZmMAogICAgIDZmNmE0NWE2ZGI5YTY4NTcuNDJmNTAyOGQyZDk0Y2M1ZC41YWRmMjg1MzVhNzY2ZWNjLjE0NzgyM2FmMjYzMjA5ODcKICAgICBhNWMzZjE0ZGUyMGMxM2UwCi1WUE1JTlVEXzEyOChtZW0pCitWRElWUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMWRkNmUwMDk4NDYwMmEyNC45NWIzYWMyMDM2YWJiNjQ5LjRiZWIzMTdjOTgwYTI2YzYuODQxZDM2NTZiOWExZWVkZgogICAgIDU4N2Q2YmNmMmEzYjBhODIuZjc0ZTQwZGE3YzJmNGYzOC5lOTRlZmU0MGI5NDAyYTcxLjdjNDYzNDIzNzYzYTVhZGEKQEAgLTE1MzU3LDExICsxNTM1NywxMSBAQAogICBhZnRlcgogICAgIDFkZDZlMDA5ODQ2MDJhMjQuOTViM2FjMjAzNmFiYjY0OS40YmViMzE3Yzk4MGEyNmM2Ljg0MWQzNjU2YjlhMWVlZGYKICAgICA1ODdkNmJjZjJhM2IwYTgyLmY3NGU0MGRhN2MyZjRmMzguZTk0ZWZlNDBiOTQwMmE3MS43YzQ2MzQyMzc2M2E1YWRhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRiZWIzMTdjOTgwYTI2YzYuN2M0NjM0MjM3NjNhNWFkYQorICAgIDdhOTQ5NDFlMDYwZTU3MTUuN2ZmMDAwMDAwMDAwMDAwMC5kZDUyM2M1YjJmZjc3OTQxLmZmZjAwMDAwMDAwMDAwMDAKICAgICA4N2I2NDUyOWYxYjMxNDM2LmRlYTZkZmJhM2ZjMTRjYmYuNTQ4ZTYzZjM4YjFkMjI0MC40Nzg4ZWVjNzdiZTNlNDM3CiAgICAgZDEzOWExNzZmYjBjN2JmMAogCi1WUE1JTlVEXzEyOChyZWcpCitWRElWUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgOTkwNTM0OWY0YWQyZWU0MS4zM2UwOGM5NjRhNjhiNmU2LjFiZmJlM2I5ZjNlNzI5YWYuZDkwM2YzYmI3NWRiOGViYwogICAgIGZiMzhhMmFkMDNjMTc4ZDYuMTJjZTYwYmMxNmQ0MTE1ZC4wNWQxMDRhNjA0YjA0MDRkLjYzMTYxMTA3ODM4Yjk1MmEKQEAgLTE1MzY5LDEyICsxNTM2OSwxMiBAQAogICAgIGZkMDMwMDI4MjU0Y2M0N2EuZDkyNjljZTc3OGZmZTE1Ny40YzMwOGVmZmFhNWMwYjQwLmY1NDRlN2RiODFlYTYzOGQKICAgICBiNmY5OTgzYmE5YjNhMmRiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA1ZDEwNGE2MDRiMDQwNGQuNjMxNjExMDc4MzhiOTUyYQorICAgIGU4MDk4MWQyY2JjOGRhYjYuNTI3MTM2YTFlYTcwNDk0NS44MDAwMDAwMDAwMDAwMDAwLmQ0NzM1ZjMxMjY4YTJhNWQKICAgICBmYjM4YTJhZDAzYzE3OGQ2LjEyY2U2MGJjMTZkNDExNWQuMDVkMTA0YTYwNGIwNDA0ZC42MzE2MTEwNzgzOGI5NTJhCiAgICAgNTMxZWU4MGNjMzY2NTY1YS4wMDRjM2M4OTcxMDNlMWNhLmY2NzQzZWVmMGRhOGNkNDQuY2U5MjM5YzNkNDM2ZjNiNgogICAgIGZkMDMwMDI4MjU0Y2M0N2EuZDkyNjljZTc3OGZmZTE1Ny40YzMwOGVmZmFhNWMwYjQwLmY1NDRlN2RiODFlYTYzOGQKICAgICBiNmY5OTgzYmE5YjNhMmRiCi1WUE1JTlVEXzEyOChtZW0pCitWRElWUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZWM3YmM3Y2Y2NTliNmNjYy41NTMyZTg2ZGM2MDBmZGUyLjc5MjdmY2M0NDZkNmNlMzAuNjE1MGVlNDI3ODU4MzhlZgogICAgIDczOTdmMDg0ZDNiMDdkOGEuYjdmODliNDc0MTBkM2YzZC5iYzFkZDgwYmY4OTQ2NDgyLjkzMjI1YzI1MTIyNjhkZmEKQEAgLTE1Mzg0LDExICsxNTM4NCwxMSBAQAogICBhZnRlcgogICAgIGVjN2JjN2NmNjU5YjZjY2MuNTUzMmU4NmRjNjAwZmRlMi43OTI3ZmNjNDQ2ZDZjZTMwLjYxNTBlZTQyNzg1ODM4ZWYKICAgICA3Mzk3ZjA4NGQzYjA3ZDhhLmI3Zjg5YjQ3NDEwZDNmM2QuYmMxZGQ4MGJmODk0NjQ4Mi45MzIyNWMyNTEyMjY4ZGZhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc5MjdmY2M0NDZkNmNlMzAuNjE1MGVlNDIxMjI2OGRmYQorICAgIGM3MGI5MzVjMWEzYmUwNGUuYTJiNGQyN2NiZDE1MTE2OS44MmUzZTgwYmRiM2E1NjViLjgwMDAwMDAwMDAwMDAwMDAKICAgICBlM2NjMjFmZDM0OGY2MjI0LjA5Nzk1MjZiMzc2MmM4N2UuOWExM2Y2ODc3N2YxNzk0MS5iYTA3NGY3NjFkNmVhNmRiCiAgICAgNjdiM2NkYmVjNGZlZTEwOAogCi1WUE1VTExEXzEyOChyZWcpCitWUENNUEVRUV8xMjgocmVnKQogICBiZWZvcmUKICAgICBhMDQwNDc1NGE5OTIzNjQyLjg1N2QyMDk5NWY3MWFlNTcuYjBjYzRmOGNlOWMzODliYy5lZWFjMmY5NDdiYWE3MTA0CiAgICAgYzJmOWJiYTY2NWI1ZTEzNi5lOGY5MGEwNmFiYjAzMjA4LmQyZTYwNmYzZTZhZDQxOWUuNTQ2OWQ0YmJkMzc4MDJmMQpAQCAtMTUzOTYsMTIgKzE1Mzk2LDEyIEBACiAgICAgMmMyMzdmMmFkOGRhMjdmYS42MDdkOGQwMDE3NzJjZDk3LmY0OWU5ODNmMzA0ZTg4ZmMuY2I3ZTU0MDhlZDg5ZGRmNAogICAgIDkyNmYyNjA1ZTdlMzlmNjIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmMyNTViNzFmZTY2ZDRjMi43OTZhNWY3OGM2ZjEwYTEyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAogICAgIGMyZjliYmE2NjViNWUxMzYuZThmOTBhMDZhYmIwMzIwOC5kMmU2MDZmM2U2YWQ0MTllLjU0NjlkNGJiZDM3ODAyZjEKICAgICAyNzJjMjQxZjk3ZjQxZDhmLmU3MGE1YjJmMzQ1N2E4NjQuY2ExMjc1MGJjYWFkMmRjZi5hYTE2NjJlODlhNjllNzMyCiAgICAgMmMyMzdmMmFkOGRhMjdmYS42MDdkOGQwMDE3NzJjZDk3LmY0OWU5ODNmMzA0ZTg4ZmMuY2I3ZTU0MDhlZDg5ZGRmNAogICAgIDkyNmYyNjA1ZTdlMzlmNjIKLVZQTVVMTERfMTI4KG1lbSkKK1ZQQ01QRVFRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGRkYjM1NGNkYTQ4M2ViYTkuMmQyYmM2MzVjNmY0M2EyMy4yZDFkMWU2NTZmMGQ1Y2NjLmFiZDQ2OWZkYjQxYzhmZDAKICAgICA4NjE3NWE0YTQyNzU3YmY0Ljg2OTBmN2FiZmRjYzk0YjUuMmNiODg4NGE1OTM1MTMyZi40ZDAxZTZiMGYzYTM3ZWY4CkBAIC0xNTQxMSwxMSArMTU0MTEsMTEgQEAKICAgYWZ0ZXIKICAgICBkZGIzNTRjZGE0ODNlYmE5LjJkMmJjNjM1YzZmNDNhMjMuMmQxZDFlNjU2ZjBkNWNjYy5hYmQ0NjlmZGI0MWM4ZmQwCiAgICAgODYxNzVhNGE0Mjc1N2JmNC44NjkwZjdhYmZkY2M5NGI1LjJjYjg4ODRhNTkzNTEzMmYuNGQwMWU2YjBmM2EzN2VmOAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNzI4NzEzMjgzOTMyZDc0LjdjM2YyYmYwOGJlM2IxODAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNjY2ZmUwMTg4YTgxNTk0OS5iMWEwMDQ4OWI0ZWMwN2M2LjJjMGJkZDQ1NTE1OWUzMzMuYmU3MGQxYTUxMDBlMDRmMwogICAgIDQ2NDkzN2MwMjYwYTEyMWQKIAotVlBNVUxMRF8xMjgocmVnKQorVlBDTVBFUVFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjc0YTM5N2Y2N2VmZjc0Yy41NWZhNTc0MDZlYjIyMGFiLjNhZTRkOWM4NmM0YjlhOWQuZTU1YmJlMzI5ODZlNzYyYQogICAgIGJmYmRkMTRmNmU0OWYxMjkuMTJkNjk2Y2VhMTY2MWJjMC44YmI0ODYyMmRjOTk2MjhlLjQwZDU2YTRmZTAzZjFmMDAKQEAgLTE1NDIzLDEyICsxNTQyMywxMiBAQAogICAgIDgwMmNiOWQ0NDA4ZTBmYTQuNmFhYzVlY2M2NTg1OWZiYS5mNTJjNWRkODU3MzM4NDZjLjQ4NzcxMGNiZTM0N2E1ZjgKICAgICBhZDM2MDIwMWQ4OTVmYjcyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxZTM0YTg4MTkyOGI1YjguMjRiNTQ4NDc5NjNmM2YwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBiZmJkZDE0ZjZlNDlmMTI5LjEyZDY5NmNlYTE2NjFiYzAuOGJiNDg2MjJkYzk5NjI4ZS40MGQ1NmE0ZmUwM2YxZjAwCiAgICAgNjhlZmZkOWRkOGE1M2E2My43YWNkMWFhZTNmYTgwN2I3LjAwNWQwOTA0YTE2MjljNDQuMTc0NTVjODk0NWQ5OWJlMQogICAgIDgwMmNiOWQ0NDA4ZTBmYTQuNmFhYzVlY2M2NTg1OWZiYS5mNTJjNWRkODU3MzM4NDZjLjQ4NzcxMGNiZTM0N2E1ZjgKICAgICBhZDM2MDIwMWQ4OTVmYjcyCi1WUE1VTExEXzEyOChtZW0pCitWUENNUEVRUV8xMjgobWVtKQogICBiZWZvcmUKICAgICAyMzUwYWYxNjNkY2Y1NzdhLjYxYzBmZjVmNDM5MGFjOTkuYmMzZmRlMTUyZTA4YTBmNi5jNTZhN2YwYzk5OTc1NWIxCiAgICAgODY4ZjkyZjgzMDAyNzYzZC42OWY3Y2RhYzdjMzg0ZGVkLjRkNTIxNjczYjczZGM2OTYuY2U2NjY5MGIwMzFhNGNjMApAQCAtMTU0MzgsMTEgKzE1NDM4LDExIEBACiAgIGFmdGVyCiAgICAgMjM1MGFmMTYzZGNmNTc3YS42MWMwZmY1ZjQzOTBhYzk5LmJjM2ZkZTE1MmUwOGEwZjYuYzU2YTdmMGM5OTk3NTViMQogICAgIDg2OGY5MmY4MzAwMjc2M2QuNjlmN2NkYWM3YzM4NGRlZC40ZDUyMTY3M2I3M2RjNjk2LmNlNjY2OTBiMDMxYTRjYzAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODE4MDkxNmZkYTJhOTQyNC43MDc3NjE4NGU1ZWFkMGMwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAogICAgIDg0YWZlYWQxMmY4MWViYTMuNTk3Y2VkMzkwMmE3ODk2NC45ZDI3OWYyMjc3ZWU3MGI0LmY4YzQ4YTFhYzFhZjliZWIKICAgICBkMWJlYjgwMjRkZDk2YzVmCiAKLVZQTVVMTERfMTI4KHJlZykKK1ZQQ01QRVFRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDUyYTU5ZjY1NzE1MjUyNGMuZDYyODU4OWY3MmU1YmE5ZS5mYjY0Mzk1MTg2ODc5Y2RmLjEzODFlODRiZTc4MjZjOGEKICAgICBkNmM1M2NhZmNhYTY4OTVmLjg1ZjZlYmU5YjM3MTNjMDMuMzIxZWZiZGFiMTNjYTQ2YS4zODhiZDkzYTg1Zjk3ZDc1CkBAIC0xNTQ1MCwxMiArMTU0NTAsMTIgQEAKICAgICA1Y2UwODVhOTg5MTBkZWE2LjZhYzU3NWEyOWUzMjQ3YmUuZDIzYWQ2ZjA2YjU2N2Q1ZS5mZmRmYTQxYWMxYmRjYzM4CiAgICAgNTljMTc1ZTM5NzIzODM2OAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yOThlYWM1YTNhNGJiNmUwLjYwNzBjMDllOThmNTVmMjAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgZDZjNTNjYWZjYWE2ODk1Zi44NWY2ZWJlOWIzNzEzYzAzLjMyMWVmYmRhYjEzY2E0NmEuMzg4YmQ5M2E4NWY5N2Q3NQogICAgIGJiNmE4YTRjZjM2MTRmNDMuNmRlNzIxOWMwZTMxMmNmZi41YmY2MzE0MTFmNTJkYmIwLmU4MTFlZWRiNzA1ZTVlYTAKICAgICA1Y2UwODVhOTg5MTBkZWE2LjZhYzU3NWEyOWUzMjQ3YmUuZDIzYWQ2ZjA2YjU2N2Q1ZS5mZmRmYTQxYWMxYmRjYzM4CiAgICAgNTljMTc1ZTM5NzIzODM2OAotVlBNVUxMRF8xMjgobWVtKQorVlBDTVBFUVFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZDI4M2RmMjIwYjliM2Y1ZC4xNDcyMjkzMDI3M2U3MzMxLjU4NWQ2NGU5N2Y4MDQ5NmIuZjMzNWU2NTQzMWQzYzgxZgogICAgIDQ2ZjA1ZWMzM2IzMWJiNDMuNDE2ZTczNGY2OTc4NDk5My4xMzdiNjg1YmNlMjVlZDMzLjFiMzI1ZGRhMGU1NWY2YTAKQEAgLTE1NDY1LDExICsxNTQ2NSwxMSBAQAogICBhZnRlcgogICAgIGQyODNkZjIyMGI5YjNmNWQuMTQ3MjI5MzAyNzNlNzMzMS41ODVkNjRlOTdmODA0OTZiLmYzMzVlNjU0MzFkM2M4MWYKICAgICA0NmYwNWVjMzNiMzFiYjQzLjQxNmU3MzRmNjk3ODQ5OTMuMTM3YjY4NWJjZTI1ZWQzMy4xYjMyNWRkYTBlNTVmNmEwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIxMjQ4NmQzZTBmZGFmNTEuODhmYWE3ODhjYWY1ZGQ2MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA4ZmZlODdkYzNlZThlNjkwLjY2Y2ZlNTAxNGMzZGFiODYuNjA3OWE0NzUyNGE5MGZjMi5lYjY1NzJmODdiOWFlZTkxCiAgICAgNGMzMzA3Njk0Mzc0MmY1OQogCi1WUE1BWFVXXzEyOChyZWcpCitWU1VCUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjMzNGYzYWI5Mjg0NDQ5MC4xYzM3MjkyYjQ4MjIwZDRmLjE3Y2QwNjZkMjRlMWFmNzAuYWFmMGQzZjQ2M2EwMDNlMgogICAgIGNjYjQzMzJhMDM1NTY5ZTMuMTQ0Y2QwOGQ3ZWE5ZTRhZi5hYjYzYmQyMDEwYzBlNWUwLjMxMWQwOTRmODAxZjhiY2MKQEAgLTE1NDc3LDEyICsxNTQ3NywxMiBAQAogICAgIDA0NjA5YjhmYmQ2YmQxOGMuYjUzOTFiMzZkZGQ0OTUwMS5mMDhiZDkwYjk3NjBkNTAwLjY2Y2E3NjRhYzJlNjQxYjAKICAgICBjYmUxYTZjMTFmNDZlOTAyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFiNjNiZDIwYWQ2NmU1ZTAuZDFjZGMwNzI5NjMyOGJjYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYjYzYmQyMDEwYzBlNWUwLjUxY2RjMDcyOTYzMjYxYWQKICAgICBjY2I0MzMyYTAzNTU2OWUzLjE0NGNkMDhkN2VhOWU0YWYuYWI2M2JkMjAxMGMwZTVlMC4zMTFkMDk0ZjgwMWY4YmNjCiAgICAgYTNmZWMxNTIzMzc0ZDlmZS41MzA5ZjhlZGZjOGIyOGRjLjgwZGYwNDg2YWQ2Njg4ODEuZDFjZGMwNzI5NjMyNjFhZAogICAgIDA0NjA5YjhmYmQ2YmQxOGMuYjUzOTFiMzZkZGQ0OTUwMS5mMDhiZDkwYjk3NjBkNTAwLjY2Y2E3NjRhYzJlNjQxYjAKICAgICBjYmUxYTZjMTFmNDZlOTAyCi1WUE1BWFVXXzEyOChtZW0pCitWU1VCUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZGVkZGNkYzRjYTVlMTNjZi40YTI0YmM0ZTNkYzk4ZDNhLjE1YWFiNzU2M2Q4ZWU2NGEuNTliNTM3MWM2OTM5MDcwOAogICAgIDdhOGM2NTQwZGUzYjdjNDIuZDM5NzIxZjk1MTE3NDliMy41MTI2NDczODM5YzdkOGU1LjE1YTcxYTIzYmY3ZDVjNDYKQEAgLTE1NDkyLDExICsxNTQ5MiwxMSBAQAogICBhZnRlcgogICAgIGRlZGRjZGM0Y2E1ZTEzY2YuNGEyNGJjNGUzZGM5OGQzYS4xNWFhYjc1NjNkOGVlNjRhLjU5YjUzNzFjNjkzOTA3MDgKICAgICA3YThjNjU0MGRlM2I3YzQyLmQzOTcyMWY5NTExNzQ5YjMuNTEyNjQ3MzgzOWM3ZDhlNS4xNWE3MWEyM2JmN2Q1YzQ2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUxMjZiNzU2M2Q4ZWU2NGEuNTliNTM3MWNiZjdkNWM0NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41MTI2NDczODM5YzdkOGU1LmQ5YjUzNzFjNjkzOTA3MDgKICAgICBiYzJmZGQ0ZmIyNzFmYWNjLjFiYjlhM2M3OWViOGIwYjkuY2E3MjMzZjM3M2U0OGZiYi5mYTE1NjFjNzY5Nzg1OTEzCiAgICAgZGEyYWJiM2NmNTQ2N2JmYQogCi1WUE1BWFVXXzEyOChyZWcpCitWU1VCUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgN2UzNzhjNTc3NWIwYWVjNy4xYmJiYjRiYmFiZTM4NzNiLjkyMDFiOWMyMTEyM2QyOWQuYmVkOTg4YTNlOWUxY2I0ZgogICAgIDQyOGFjZDg2ODY0MTJmMjUuNzIyOWVkNGY3ZDQ5NDMwMC5iYTI3MDI1YTg2YWVlNWZkLmZlN2RjMWM1NmI4Yjk4ZTQKQEAgLTE1NTA0LDEyICsxNTUwNCwxMiBAQAogICAgIDliMmQ5M2NkYzgwOTBhNDUuN2RkYTc3OWYxZDIyMzczZi45MjQwMWUxMWU3NWFjOWRmLmNlYTdjZjEwMDExYmQ0YmYKICAgICAxNmM2OWMxMTRkMThiYjVlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYxNzg3YmZiOTllOGU1ZmQuZmU3ZGMxYzU2YjhiYjFhNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MTc4N2JmYjk5ZTgyMzg0LmZlN2RjMWM1NmI4Yjk4ZTQKICAgICA0MjhhY2Q4Njg2NDEyZjI1LjcyMjllZDRmN2Q0OTQzMDAuYmEyNzAyNWE4NmFlZTVmZC5mZTdkYzFjNTZiOGI5OGU0CiAgICAgODI2ZDdiMzRjMzg1MzljMC45ZjQ0MDVmNzQ0YjBlYTQ4LmYxNzg3YmZiOTllODIzODQuNjQyODVhNDYxNGYwYjFhNQogICAgIDliMmQ5M2NkYzgwOTBhNDUuN2RkYTc3OWYxZDIyMzczZi45MjQwMWUxMWU3NWFjOWRmLmNlYTdjZjEwMDExYmQ0YmYKICAgICAxNmM2OWMxMTRkMThiYjVlCi1WUE1BWFVXXzEyOChtZW0pCitWU1VCUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMWE1MTNlMzQxNGY0MjNhZC5lNzE2MTBiZDMzNThkYzYwLmU3YjZiZjMzMjNhZWU3MTAuZjhjYmU5MDgwYjkyMTNiOQogICAgIGI0MTQzMDY1NzNiYWM3ZDguYzM3M2VlNzA5ZGZlZWNiZC5iYmEzNTlhMDczNWRiNmU4LjgxNjVkNzRjYTIxYjNjYzAKQEAgLTE1NTE5LDExICsxNTUxOSwxMSBAQAogICBhZnRlcgogICAgIDFhNTEzZTM0MTRmNDIzYWQuZTcxNjEwYmQzMzU4ZGM2MC5lN2I2YmYzMzIzYWVlNzEwLmY4Y2JlOTA4MGI5MjEzYjkKICAgICBiNDE0MzA2NTczYmFjN2Q4LmMzNzNlZTcwOWRmZWVjYmQuYmJhMzU5YTA3MzVkYjZlOC44MTY1ZDc0Y2EyMWIzY2MwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU3YjZiZjMzNzM1ZGU3MTAuZjhjYmU5MDhhMjFiM2NjMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42N2I2YmYzMzIzYWVlNzEwLjc4Y2JlOTA4MGI5MjEzYjkKICAgICAxZTcxZjRhMTY4MzViNzc2LjliYmRiZWQwZTQ4MWI0ZWEuMGNlMzc0YjE1ZjU5OWY1Yy42OGY1MGQ2Yjk3NTIxZWZmCiAgICAgN2Y4MzRkMWYyZDE3NGY4ZgogCi1WUE1BWFVXXzEyOChyZWcpCitWU1VCUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjc1MGEwY2ZhNjVlNGZmYy5hNmEzYmY4NDM1MDI3YTNmLjRmNDFhODU1Zjg3NWU1MTMuNDNjZWVkMmQzM2JkMzI1MAogICAgIGJlYTgwMmU5OWRiMjViZjAuMzQzZGNhMjUwYWVhNjk5NS4wMzZhZTM0YzdjZjE0NDJlLjUyZmJhODMyYzE3NmQ0ZmEKQEAgLTE1NTMxLDEyICsxNTUzMSwxMiBAQAogICAgIDI0MjllNDA3NzdiMjg2MWYuZDVkOTkwNTIzYjM4YmU5Ny5kYmRiM2Q0NTQ2YWY3YWU5LjZjNGFkNTgzNzkxNTMzMjIKICAgICAyZTA0M2ZhOGRiMTM2OWY4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEzODRlMzRjN2NmMTQ0MmUuNTJmYmE4MzJjMTc2ZDRmYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45Mzg0NmMyMzBkODAwY2U3LjUyZmJhODMyYzE3NmQ0ZmEKICAgICBiZWE4MDJlOTlkYjI1YmYwLjM0M2RjYTI1MGFlYTY5OTUuMDM2YWUzNGM3Y2YxNDQyZS41MmZiYTgzMmMxNzZkNGZhCiAgICAgOWVkNzcwZDhhZjlmYWYxOC5hNTBiOTE3MDAzZjg0MWE0LjEzODQ2YzIzMGQ4MDBjZTcuMTYzNTIyYWIyNDhmNDA4NwogICAgIDI0MjllNDA3NzdiMjg2MWYuZDVkOTkwNTIzYjM4YmU5Ny5kYmRiM2Q0NTQ2YWY3YWU5LjZjNGFkNTgzNzkxNTMzMjIKICAgICAyZTA0M2ZhOGRiMTM2OWY4Ci1WUE1BWFVXXzEyOChtZW0pCitWU1VCUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzkzMGRiMDU2Nzk1OWQzNS5hZGU5NWNlNDkyNzYxZGIyLmExNzM0M2I1Y2ViNjljOWIuYjdiYTU0MWRjNDA5Y2FlMAogICAgIDY5OWEyNTg3MzhhNzhkMDQuOTM2NWQzZGE5Yjc3YjA3Yy5lM2E0Mjc4N2Q5N2Y5NmRiLjAyNmZhYzE5MjIxYTM4NzkKQEAgLTE1NTQ2LDExICsxNTU0NiwxMSBAQAogICBhZnRlcgogICAgIDM5MzBkYjA1Njc5NTlkMzUuYWRlOTVjZTQ5Mjc2MWRiMi5hMTczNDNiNWNlYjY5YzliLmI3YmE1NDFkYzQwOWNhZTAKICAgICA2OTlhMjU4NzM4YTc4ZDA0LjkzNjVkM2RhOWI3N2IwN2MuZTNhNDI3ODdkOTdmOTZkYi4wMjZmYWMxOTIyMWEzODc5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUzYTQ0M2I1ZDk3ZjljOWIuYjdiYWFjMTljNDA5Y2FlMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lM2E0Mjc4N2Q5N2Y5NmRiLjM3YmE1NDFkYzQwOWNhZTAKICAgICBhOTU3YjVhNTFhYWU4YjBhLmVhYmNhZmMyZTg2MmI5NjguM2NmZjZmMjRjNTIwZDFjMi41YTg2MGYyYmYxOTI1YzQwCiAgICAgMWU4MTEzMTg5ODExOGJjNgogCi1WUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHgwKHJlZykKK1ZBRERQRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBjMTgxNDhkODkwNzhjNzllLjcwNDNmMjFiNjRiOTEzOTkuMTIzMDBjOGI2NTYzYTdlMS4wYmMwY2JjOGRlMTA4OWMwCiAgICAgYTFkMmFhZDg3NTUyNGQ3My5jYzljY2Q2NDYyODU0NTZiLjA4OGU1ODFkM2ZkMjgxNDIuYzE0OTQ4OGFkZjdhNGVhYgpAQCAtMTU1NTgsMTIgKzE1NTU4LDEyIEBACiAgICAgODQ5NWU2NDQ3NDhmMjZjNi5iM2M4NGUyM2YxOGU5OTg2LmNlM2NhZDRkODEyN2U4NmEuNTJlMjkxMTgwNmVlZWZmNgogICAgIGU1OGI1NmJkNjUwZjQyYWYKICAgYWZ0ZXIKLSAgICBjMTgxNDhkODkwNzhjNzllLjcwNDNmMjFiNjRiOTEzOTkuMTIzMDBjOGI2NTYzYTdlMS4wYmMwY2JjOGRlMTA4OWMwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI4MjQ4ZmU1MTUzYTgzMzYuYzE0OTQ4OGFkZjdhNGVhYgogICAgIGExZDJhYWQ4NzU1MjRkNzMuY2M5Y2NkNjQ2Mjg1NDU2Yi4wODhlNTgxZDNmZDI4MTQyLmMxNDk0ODhhZGY3YTRlYWIKICAgICAxOWJmMzU4MmUyMmI1OWYyLjk5MmZjMjZlMzMxZGRkYWIuMjgyNDhmZTUxNTNhODMzNi4zYTY2NjA1NmUzNmJkY2FlCiAgICAgODQ5NWU2NDQ3NDhmMjZjNi5iM2M4NGUyM2YxOGU5OTg2LmNlM2NhZDRkODEyN2U4NmEuNTJlMjkxMTgwNmVlZWZmNgotICAgIDAwMDAwMDAwMDAwMDg5YzAKLVZQRVhUUldfMTI4X0VyZWdPbmx5X3RvR18weDAobWVtKQorICAgIGU1OGI1NmJkNjUwZjQyYWYKK1ZBRERQRF8xMjgobWVtKQogICBiZWZvcmUKICAgICBjZjJiMmMyZjFjZGI5MjA0LjQwYTFiNzg4YzYwYmYyOWMuZjYzM2ViNzFiOGUzMzMyNy41NjI0YWZjMzFmMjZlZDhhCiAgICAgZWM4ZjhkNWI0NjVkOWIyMi5hODJkYTZiYzc0MmJmNzFmLjNlM2MxNzQzYTUyODY4YmIuMWQyNjhmYjI4Y2MyY2Q0MQpAQCAtMTU1NzMsMTEgKzE1NTczLDExIEBACiAgIGFmdGVyCiAgICAgY2YyYjJjMmYxY2RiOTIwNC40MGExYjc4OGM2MGJmMjljLmY2MzNlYjcxYjhlMzMzMjcuNTYyNGFmYzMxZjI2ZWQ4YQogICAgIGVjOGY4ZDViNDY1ZDliMjIuYTgyZGE2YmM3NDJiZjcxZi4zZTNjMTc0M2E1Mjg2OGJiLjFkMjY4ZmIyOGNjMmNkNDEKLSAgICAxODgzZjcyZWZmYTExOTM0LjE3ODVhZTRiMWI3OTcxZmQuNjdhZTRlODVkMzZhZjQ2ZS43ZDhmNGM4NTYzODdjNjNjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY2MzNlYjcxYjhlMzMzMjcuNTYyNGFmYzMxZjI2ZWQ4YQogICAgIDJmZDNlNTkzNjRiNGM3NjcuZWJmN2NjYTE1NzgzOWVkZi40ZDU2MGEyMzVmYjQ5MjZiLmQzYWFkZmFhNDEwMjEyMjYKICAgICA3YmM1NDU4Y2MxYmVlZGFjCiAKLVZQRVhUUldfMTI4X0VyZWdPbmx5X3RvR18weDAocmVnKQorVkFERFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGQwMmI3Yjk4ODA0ODk1N2EuMGQ0YWQ0NzU5MWExNjJlNy43ZWNlZmEyYWMzZDRiODczLmNiMDFjOTA5NjQxMmZmZGYKICAgICAzMDI3N2MzODE5MmE0NDNiLjhlYjYzZWMyYTE3NGE2ZGYuMmQ1NTM2NTJmYmY5ZmM2NS5iZjc5MDYyNGZmOTFmN2Y1CkBAIC0xNTU4NSwxMiArMTU1ODUsMTIgQEAKICAgICA3ZTE0Y2ZlNzRhMmNhYTQ4LmU4OTg3ODRhZGJmZTE3ZTkuNTBhNmM1MzA0MWVjZjExMi43NjAyZWFhNDY0MWY3N2I5CiAgICAgZjBhYzg5ZTM2NzQ3NzdjMAogICBhZnRlcgotICAgIGQwMmI3Yjk4ODA0ODk1N2EuMGQ0YWQ0NzU5MWExNjJlNy43ZWNlZmEyYWMzZDRiODczLmNiMDFjOTA5NjQxMmZmZGYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTVkOTdiODY5YzdkYTU2MS5iZjc5MDYyNGZmOTFmN2Y1CiAgICAgMzAyNzdjMzgxOTJhNDQzYi44ZWI2M2VjMmExNzRhNmRmLjJkNTUzNjUyZmJmOWZjNjUuYmY3OTA2MjRmZjkxZjdmNQogICAgIGY2MDY0NGQ5MjhmMjM3OWMuOGRlMWExNjViMDNhNGU3Yy41NWQ5N2I4NjljN2RhNTYxLjA0OGIzZDVlNGIzYzM1ZGEKICAgICA3ZTE0Y2ZlNzRhMmNhYTQ4LmU4OTg3ODRhZGJmZTE3ZTkuNTBhNmM1MzA0MWVjZjExMi43NjAyZWFhNDY0MWY3N2I5Ci0gICAgMDAwMDAwMDAwMDAwZmZkZgotVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4MChtZW0pCisgICAgZjBhYzg5ZTM2NzQ3NzdjMAorVkFERFBEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDUwNTM5NzA2NzBiZmYxMTguMjQ5ZDFhY2YxYjYzZDhlYy43YWE3M2Y1ZDNkY2NiZDUzLjdjMDgxMWJkODdkMzFhMjUKICAgICA3MWM1OGZmODlhOTNhM2YwLjQ0ZWMyMGZjMzYyM2ZlMzQuMWZkYTcyOGFmM2IxZmNlNS4zMzRiNWE5YTA5YmQ1ZDQ1CkBAIC0xNTYwMCwxMSArMTU2MDAsMTEgQEAKICAgYWZ0ZXIKICAgICA1MDUzOTcwNjcwYmZmMTE4LjI0OWQxYWNmMWI2M2Q4ZWMuN2FhNzNmNWQzZGNjYmQ1My43YzA4MTFiZDg3ZDMxYTI1CiAgICAgNzFjNThmZjg5YTkzYTNmMC40NGVjMjBmYzM2MjNmZTM0LjFmZGE3MjhhZjNiMWZjZTUuMzM0YjVhOWEwOWJkNWQ0NQotICAgIDJlY2NlZGE3MDFkMDQ3NzIuM2E0ZmRkZDkzOGY4NThjYi5iMmZkOGViZTE4Yjg4ZmNkLmQyYmI5YzMyNjQzNmY1MWYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2FhNzNmNWQzZGNjYmQ1My43YzA4MTFiZDg3ZDMxYTI1CiAgICAgNjUzNTJlZmVjMjgxOWFjYS42MTEwNGRkNGJiNmYyMjVlLjExZGIwZWUzYzllZDMzMzQuYjVhM2QzZjAzM2NiMWY1ZQogICAgIDM5NTBmYjQyMTMwNzE3YWYKIAotVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4MChyZWcpCitWQUREUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjgwZjExOTM5Zjc2MTliZS5mMWNjY2NlOWY5YjI1NzI1LjE3N2Q2YzU4NWUxNDk3OTguMTY0MjZlZTYyMTVkYTM0OQogICAgIDhmMjkwZjRmNzRhNTYwMzYuYWQ1YzQ1NTRjMTcwM2NhZi5iN2UwMzdkMWJiNzFmNDI2LjlmZmMyYWI0M2QxMzlkMzUKQEAgLTE1NjEyLDEyICsxNTYxMiwxMiBAQAogICAgIGI1YTZiOGI4Njc3MWIwMTMuMjk5YmI2NWI3NWMxNjhmZS4yNGJhYmU1MjE0ODg1NWVkLmE5OWNhNzVkMmU4MjFhNDkKICAgICBlMjFhNjAxMTNkNTMxNWM4CiAgIGFmdGVyCi0gICAgYjgwZjExOTM5Zjc2MTliZS5mMWNjY2NlOWY5YjI1NzI1LjE3N2Q2YzU4NWUxNDk3OTguMTY0MjZlZTYyMTVkYTM0OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iN2UwMzdkMWJiNzFmNDI2LjlmZmMyYWI0M2QxMzlkMzUKICAgICA4ZjI5MGY0Zjc0YTU2MDM2LmFkNWM0NTU0YzE3MDNjYWYuYjdlMDM3ZDFiYjcxZjQyNi45ZmZjMmFiNDNkMTM5ZDM1CiAgICAgMWFlZGYzZTIyZDFmMjljNC43N2IzMTQyYjM2YzYwMzkzLjljODZhOWFiNmUxNDc1YjMuODZkNmJlMzgzODFiZGIyNwogICAgIGI1YTZiOGI4Njc3MWIwMTMuMjk5YmI2NWI3NWMxNjhmZS4yNGJhYmU1MjE0ODg1NWVkLmE5OWNhNzVkMmU4MjFhNDkKLSAgICAwMDAwMDAwMDAwMDBhMzQ5Ci1WUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHgwKG1lbSkKKyAgICBlMjFhNjAxMTNkNTMxNWM4CitWQUREUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMGYxYjY1M2Y3ZTliOGFjZi5iYzlmNWIzZWJkMjUzMGQwLmExZTFhNWNlOTk2YjI5MWIuYTljYTcyMzI0ODVhZDE3ZAogICAgIDBhNmQzMmQzMGY2NDMzOGIuOGIyNmQ3ZGVjYmM5ZTdhNy5iOTUxNWY3MmJmZDMwMDE4Ljg5MDBjMmI4YTcxNTI1MTIKQEAgLTE1NjI3LDExICsxNTYyNywxMSBAQAogICBhZnRlcgogICAgIDBmMWI2NTNmN2U5YjhhY2YuYmM5ZjViM2ViZDI1MzBkMC5hMWUxYTVjZTk5NmIyOTFiLmE5Y2E3MjMyNDg1YWQxN2QKICAgICAwYTZkMzJkMzBmNjQzMzhiLjhiMjZkN2RlY2JjOWU3YTcuYjk1MTVmNzJiZmQzMDAxOC44OTAwYzJiOGE3MTUyNTEyCi0gICAgYjFkYTQ0YjkwY2JkY2QyNy43ZTg1MjcwNTJlZTkwZTQzLjRlYjc1ZjMxMDIwMmFhMWUuMWVhYWE5NGVjYzQ1OGQ1NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iOTUxNWY3MmJmZDMwMDE4LmE5Y2E3MjMyNDg1YWQxN2QKICAgICBkZTJmMTVkZThmYWYxM2QwLmYxMDk0OTIwODExMGU0NTEuM2RkZjIxZjk3ZjA2ZTI1Yi5jNjEyMjM2MjU0Nzc0NGY1CiAgICAgZGI4NTJjNWVkYTM1ODc5YwogCi1WUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHg3KHJlZykKK1ZVTlBDS0xQRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBiYjRlYzBiMGZiMGU5MmY3LjZlMzgyMzJjYjc0OGMyYjIuNDBmZTM5OWE2MWNhYTM3Yy42MDk0MjFiNTUxZWE2NmZiCiAgICAgYzBiYmRjYzM1MjhiYTBiMS4zZWMxZWE5MDllOTM5NmY4LmM3YjBmMWRlNmFhMzg5NzEuOTRhNGRjNTE5NWJhZjAyYQpAQCAtMTU2MzksMTIgKzE1NjM5LDEyIEBACiAgICAgYWRhZDk5ZGMxM2E3YjhmNC4wOTgyOGY0YjFhNzA5YzYyLmVkN2FhZTc5NjRlNGI0NjguYTAwMDcwZDllMDUxMDhlMgogICAgIDJmZTU0MTlkMjAyZTBlYzUKICAgYWZ0ZXIKLSAgICBiYjRlYzBiMGZiMGU5MmY3LjZlMzgyMzJjYjc0OGMyYjIuNDBmZTM5OWE2MWNhYTM3Yy42MDk0MjFiNTUxZWE2NmZiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI1ZDljZGI5NjY4MzNjMTMuOTRhNGRjNTE5NWJhZjAyYQogICAgIGMwYmJkY2MzNTI4YmEwYjEuM2VjMWVhOTA5ZTkzOTZmOC5jN2IwZjFkZTZhYTM4OTcxLjk0YTRkYzUxOTViYWYwMmEKICAgICA0ODE3N2IwMzdiM2FlZTc3LjI4OTVlNGY3NjA5ZDRiY2YuZTI2YTZmNWEzNzI4Y2ZkYy5iNWQ5Y2RiOTY2ODMzYzEzCiAgICAgYWRhZDk5ZGMxM2E3YjhmNC4wOTgyOGY0YjFhNzA5YzYyLmVkN2FhZTc5NjRlNGI0NjguYTAwMDcwZDllMDUxMDhlMgotICAgIDAwMDAwMDAwMDAwMDQwZmUKLVZQRVhUUldfMTI4X0VyZWdPbmx5X3RvR18weDcobWVtKQorICAgIDJmZTU0MTlkMjAyZTBlYzUKK1ZVTlBDS0xQRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAzZjU0YmNmMTQyMjgwYmU1LjRjY2EzMmJhYjY1YzNhZDUuYmQ1MjY2N2FlNzFiNDZkZS40NDJhYWFhNzhlNjQ3MmMyCiAgICAgYWMxODVlYzE2MTRhYmI3MS44MWJhNDIwOWZmZTdhZmM2LjIwZDJlNTZmZTRhNzA1NmYuNDJjNzYwNTA1MDMyNDY5NQpAQCAtMTU2NTQsMTEgKzE1NjU0LDExIEBACiAgIGFmdGVyCiAgICAgM2Y1NGJjZjE0MjI4MGJlNS40Y2NhMzJiYWI2NWMzYWQ1LmJkNTI2NjdhZTcxYjQ2ZGUuNDQyYWFhYTc4ZTY0NzJjMgogICAgIGFjMTg1ZWMxNjE0YWJiNzEuODFiYTQyMDlmZmU3YWZjNi4yMGQyZTU2ZmU0YTcwNTZmLjQyYzc2MDUwNTAzMjQ2OTUKLSAgICA1MmZmYTJmYTk5YTFkOTkzLmE5YzljNjM1OGFkNDU0NzIuMGVjZjg4MTYyYzIyOTQ0MC40NTlkY2FlMTQ3ZGQ2YzhlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ0MmFhYWE3OGU2NDcyYzIuNDJjNzYwNTA1MDMyNDY5NQogICAgIDBkZDMwNDg2MDczODIyNzguMWU0M2I5YWJmNGFkNjU4Ni42MzEyY2I1YmRjOTdiMDdlLmE4ZjhlNmM0MGVlZTFmNTgKICAgICBjNjIzYWY2NjQxZjM5Y2EwCiAKLVZQRVhUUldfMTI4X0VyZWdPbmx5X3RvR18weDcocmVnKQorVlVOUENLTFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGZkNmMyMTM0N2U3NzFmMTIuYjk2MTAwNTNjNzFiNTI0Yi4zZDczMTdkNWQ5MDExZGFkLmZiNmEyYjJhMGYxMzE1NTUKICAgICBhODFkMzk5OTVlMDdlNDU5LjMyNzUxMzRjZjM1NjI0MzguNjJhN2RkMjFkNDU5Yjk5NC5iM2EyMjM2ZmUyYTE3ZmYwCkBAIC0xNTY2NiwxMiArMTU2NjYsMTIgQEAKICAgICBjOWVhNDdkNzdkNzgyMjE5LmZiNWY2YjcxMDUwN2EyMTQuMmU0NjhkY2I3ZDRhOGQ1MS5lZGUwY2MwY2Q1MjQ1MDIzCiAgICAgMjk3Zjc0M2IyZTMxMzAxNAogICBhZnRlcgotICAgIGZkNmMyMTM0N2U3NzFmMTIuYjk2MTAwNTNjNzFiNTI0Yi4zZDczMTdkNWQ5MDExZGFkLmZiNmEyYjJhMGYxMzE1NTUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjU4NTJmMTY3MDRkYTk3Yi5iM2EyMjM2ZmUyYTE3ZmYwCiAgICAgYTgxZDM5OTk1ZTA3ZTQ1OS4zMjc1MTM0Y2YzNTYyNDM4LjYyYTdkZDIxZDQ1OWI5OTQuYjNhMjIzNmZlMmExN2ZmMAogICAgIDIyODNmMjAwN2YyZTI2MjIuNTRkYmI4NWNhYWY2NTY2ZC5lOTI5MDVmOTgxNDM3NWU3LjY1ODUyZjE2NzA0ZGE5N2IKICAgICBjOWVhNDdkNzdkNzgyMjE5LmZiNWY2YjcxMDUwN2EyMTQuMmU0NjhkY2I3ZDRhOGQ1MS5lZGUwY2MwY2Q1MjQ1MDIzCi0gICAgMDAwMDAwMDAwMDAwM2Q3MwotVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4NyhtZW0pCisgICAgMjk3Zjc0M2IyZTMxMzAxNAorVlVOUENLTFBEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGY0MmVhNTkwOTc4MDA1NzkuZjc5ZTM3ODlmMzcyMTRlOS4wM2NjYTg3NjIzOTNjNDU5LjhkNGE3MDAyNjNmYTNjN2YKICAgICAyYWI5ZGFmODJiMWU4YTdmLjBhZWJiYjgyN2RhNzM3M2YuNDhmMGViNTcxZGE4N2E2YS42MjgxYWEwYWQwZTBiZjFjCkBAIC0xNTY4MSwxMSArMTU2ODEsMTEgQEAKICAgYWZ0ZXIKICAgICBmNDJlYTU5MDk3ODAwNTc5LmY3OWUzNzg5ZjM3MjE0ZTkuMDNjY2E4NzYyMzkzYzQ1OS44ZDRhNzAwMjYzZmEzYzdmCiAgICAgMmFiOWRhZjgyYjFlOGE3Zi4wYWViYmI4MjdkYTczNzNmLjQ4ZjBlYjU3MWRhODdhNmEuNjI4MWFhMGFkMGUwYmYxYwotICAgIGE3ZWM4ZjVlMDYxNjdjNTIuNWMxY2QxMmViOGEzYzhjNi5hNjk1YjEwMDEyNTI3ZTcwLjA5MzYzODRmNWY4NzUyZDUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGQ0YTcwMDI2M2ZhM2M3Zi42MjgxYWEwYWQwZTBiZjFjCiAgICAgNDc5MjQxYWU0NTc0OTcxZC40YjdmNzNmOTQwZjIwMzJiLmY5ODg3NTVlMWI5YjhjOWEuZGViNzE1M2RhZDdiMzE1NgogICAgIDNkNGUzYzQwNTU0OTk3NGEKIAotVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4NyhyZWcpCitWVU5QQ0tMUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODI0OGFjYzRmMzdjYzE1ZS5lNjc5NmJkNDAzNDU5NjBkLjMxNWU5ZjRmYWYyMTI0MTkuMWQ5NWIzNWI1NjkxNjIxMgogICAgIDA5ZjE1ZTM2MjRhMWViM2QuNWY2Yjg5YmM1ZDk0MzY0ZC42YzA2NTE5ZGE0YmM2NjNkLmVkODdlN2U1ZGY0MGJhMDQKQEAgLTE1NjkzLDEyICsxNTY5MywxMiBAQAogICAgIDRkODA3YzkwYWVlZTJkMGYuNTRhMzkxODI1M2RkNDk3MC40Y2UxMzNjZDhhNjI0MGQ2LjA2NGUyMzRjNDlmNWUzMDkKICAgICAwNWJiMjIwMTYyMTUyYjczCiAgIGFmdGVyCi0gICAgODI0OGFjYzRmMzdjYzE1ZS5lNjc5NmJkNDAzNDU5NjBkLjMxNWU5ZjRmYWYyMTI0MTkuMWQ5NWIzNWI1NjkxNjIxMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NzJjOGVlNmQxYjI1MTlkLmVkODdlN2U1ZGY0MGJhMDQKICAgICAwOWYxNWUzNjI0YTFlYjNkLjVmNmI4OWJjNWQ5NDM2NGQuNmMwNjUxOWRhNGJjNjYzZC5lZDg3ZTdlNWRmNDBiYTA0CiAgICAgMmU5NTRmMDA4NDQzNTA5NC45MDM1MTc1MjZlNmQzMzBhLjU2YzM4MzRkYjk0ZDA2NDMuNDcyYzhlZTZkMWIyNTE5ZAogICAgIDRkODA3YzkwYWVlZTJkMGYuNTRhMzkxODI1M2RkNDk3MC40Y2UxMzNjZDhhNjI0MGQ2LjA2NGUyMzRjNDlmNWUzMDkKLSAgICAwMDAwMDAwMDAwMDAzMTVlCi1WUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHg3KG1lbSkKKyAgICAwNWJiMjIwMTYyMTUyYjczCitWVU5QQ0tMUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjIzZDA3ZjMzODFjZTYwOC5jMWZkZTA1MTNlMmViZTU5Ljg2ODA3NDM4MjdlZjMzYWEuYWFhYjVjODdiNDg3NGZhMwogICAgIDM4YTE0ZTBkZTgxOWQwZjQuZTg1YTc4YWVkMTkwM2UxZi4wNDlhM2E2MTA3YWZhZWU0LmNkNmZmYWU5ZDI0NjcwNTYKQEAgLTE1NzA4LDExICsxNTcwOCwxMSBAQAogICBhZnRlcgogICAgIDIyM2QwN2YzMzgxY2U2MDguYzFmZGUwNTEzZTJlYmU1OS44NjgwNzQzODI3ZWYzM2FhLmFhYWI1Yzg3YjQ4NzRmYTMKICAgICAzOGExNGUwZGU4MTlkMGY0LmU4NWE3OGFlZDE5MDNlMWYuMDQ5YTNhNjEwN2FmYWVlNC5jZDZmZmFlOWQyNDY3MDU2Ci0gICAgMjJiMzc0M2I4ZDE1YTU2Mi4xZGUxM2UxNTAzOWZlYjBjLmE4YmI2MWU3MGUyYTc1NGMuMGY3NzA5NWU4MTJkZGY5YQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYWFiNWM4N2I0ODc0ZmEzLmNkNmZmYWU5ZDI0NjcwNTYKICAgICBiZTNlZjQ2OTQ0MWUyMDdmLmJiZGYzMGYxNmZlOGZmY2QuNTBiMDY1Yjg1OTZiNDYwYy5jZDEwODY1MjVjYzhkODFiCiAgICAgNjM4NjZiMzFmZmExOTY4NgogCi1WUE1JTlVXXzEyOChyZWcpCitWVU5QQ0tIUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMmQyNWI2NjcwNzQ3NTY4Ny5lNjEwNGE4NDI5M2ZmZTc2LjIwYTA0OGFlYjFmNmI2MGQuZDc0NWMwYmUwMzdlZGI1MAogICAgIDg3Mzk2MzYwMTA0MzU0Y2EuNzhmM2YyNzY1Nzg0ZmI3NC5hNzcwODViODY2NTU0ZTc5LjE4NDZmMGU3Mjk3MGYxNDUKQEAgLTE1NzIwLDEyICsxNTcyMCwxMiBAQAogICAgIDVjZWZjZjRjOTM3MmY5YzMuNDUxZjI5OTNmZmFjNDAzMy44YTZjNTY2NDk3MzgwYzg0LjNjYmNiYzRmNTYxZjhmZjEKICAgICBkNmM4NTA2Njk2ZjQ4ZjAwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE3NzA4NWI4Mjk5MjAxYmQuMTg0NjcwMWUyOTcwNDMxNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYjlhZTA3YzI5OTIwMWJkLmE3NzA4NWI4NjY1NTRlNzkKICAgICA4NzM5NjM2MDEwNDM1NGNhLjc4ZjNmMjc2NTc4NGZiNzQuYTc3MDg1Yjg2NjU1NGU3OS4xODQ2ZjBlNzI5NzBmMTQ1CiAgICAgY2QwZDZjODhiNTIzY2NmYS40ZWI0NjgyY2VhZmFkMmE0LmFiOWFlMDdjMjk5MjAxYmQuZjA3ZjcwMWVlNjRjNDMxNwogICAgIDVjZWZjZjRjOTM3MmY5YzMuNDUxZjI5OTNmZmFjNDAzMy44YTZjNTY2NDk3MzgwYzg0LjNjYmNiYzRmNTYxZjhmZjEKICAgICBkNmM4NTA2Njk2ZjQ4ZjAwCi1WUE1JTlVXXzEyOChtZW0pCitWVU5QQ0tIUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOWM3MGE5NGZjMmQ3MDA2Zi44ZTI5ODcxNjQ0YmMxOGQyLjNhMDBiMDk1YjFhNzAxNGQuOWUzMGU0ZGQ0YmQzYWE3YgogICAgIDY4ODE0MWY2ZjVkNDlkNmMuYmYwODkwNTQ2NzhlNjRkMy4wNzIzNzkyMDFjZjVkMTFkLjQ1MzM4NTU0ZTJlZjE5NGUKQEAgLTE1NzM1LDExICsxNTczNSwxMSBAQAogICBhZnRlcgogICAgIDljNzBhOTRmYzJkNzAwNmYuOGUyOTg3MTY0NGJjMThkMi4zYTAwYjA5NWIxYTcwMTRkLjllMzBlNGRkNGJkM2FhN2IKICAgICA2ODgxNDFmNmY1ZDQ5ZDZjLmJmMDg5MDU0Njc4ZTY0ZDMuMDcyMzc5MjAxY2Y1ZDExZC40NTMzODU1NGUyZWYxOTRlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA3MjM3OTIwMWNmNTAxNGQuNDUzMzg1NTQ0YmQzMTk0ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYTAwYjA5NWIxYTcwMTRkLjA3MjM3OTIwMWNmNWQxMWQKICAgICA4NjA4MjQyZmUxNGU0ZWI5LjkzZTQ4NWQ4NmRmODc3NWEuOWQ1ZWMyN2U5MGMwOGM5MS5iODI2ZjFlODI3ZGQ1NDM2CiAgICAgM2NhZGIzZGUwZGM1OWFhMwogCi1WUE1JTlVXXzEyOChyZWcpCitWVU5QQ0tIUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYzJhNDc5ODE0NTVmOWY5Yy44ZjE4NjU5OGQyZTNkYTYzLmVkN2E2YWY3ODlhN2I1MzcuMWQwZTNhMjlkMDU0ZjA4ZQogICAgIGE3NTUzZTNkNmMzN2EwY2MuMGZiZmQ3NzAzYmMyODI0YS5iN2U0OTAzOTg1MGYxMGI2LmU2MzBlNDBjM2E2YzUyZjAKQEAgLTE1NzQ3LDEyICsxNTc0NywxMiBAQAogICAgIGY5MThiNmIwZjZjZDg1ODQuZTQwNjNiMTllMzhlMTk3Yy4wYjY4OTBkNjhmMzMxMDQ5LmM0ZmFiZjJhZjk1YTA0OTkKICAgICA5MDM5ZTczZDg3NDdjYTM4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRkNzA5MDM5ODUwZjEwYjYuZDQ5MDNjMTMzYTZjNTJmMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZDcwZjMwYWZlYjljNTgzLmI3ZTQ5MDM5ODUwZjEwYjYKICAgICBhNzU1M2UzZDZjMzdhMGNjLjBmYmZkNzcwM2JjMjgyNGEuYjdlNDkwMzk4NTBmMTBiNi5lNjMwZTQwYzNhNmM1MmYwCiAgICAgNDUwZGZmN2UxZWQ3ZDhlMC5lMmNiZjRhMjM3ZjcwMzk5LjRkNzBmMzBhZmViOWM1ODMuZDQ5MDNjMTNlOTE1NzBlNQogICAgIGY5MThiNmIwZjZjZDg1ODQuZTQwNjNiMTllMzhlMTk3Yy4wYjY4OTBkNjhmMzMxMDQ5LmM0ZmFiZjJhZjk1YTA0OTkKICAgICA5MDM5ZTczZDg3NDdjYTM4Ci1WUE1JTlVXXzEyOChtZW0pCitWVU5QQ0tIUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMTUxYjMyMzlhZmU4ODBlZC4xZmMyNjE0MDkwYTVlMTYzLmYxM2QyNWMzNWE5NDdmMjEuNGMxOTYxMDlkNTA4MmRiNQogICAgIDJmNmExYjA4OGM0YWUwZTQuMTQ1N2ZiOTg4OWU5MjkyYS5lNjNjMmY4YmI5MTVmMmIxLjZlY2Y2NDEwNmJjNTU3NzMKQEAgLTE1NzYyLDExICsxNTc2MiwxMSBAQAogICBhZnRlcgogICAgIDE1MWIzMjM5YWZlODgwZWQuMWZjMjYxNDA5MGE1ZTE2My5mMTNkMjVjMzVhOTQ3ZjIxLjRjMTk2MTA5ZDUwODJkYjUKICAgICAyZjZhMWIwODhjNGFlMGU0LjE0NTdmYjk4ODllOTI5MmEuZTYzYzJmOGJiOTE1ZjJiMS42ZWNmNjQxMDZiYzU1NzczCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU2M2MyNWMzNWE5NDdmMjEuNGMxOTYxMDk2YmM1MmRiNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMTNkMjVjMzVhOTQ3ZjIxLmU2M2MyZjhiYjkxNWYyYjEKICAgICA5MjgyYjhkNGQ2N2Y5MDRiLmQ2NzFlYzU0MDdlYjZiMWUuZjNjMTk1MjY5ZGI0ZWY0OS5jMTc5ZWQ0NmY5MjRjNTkzCiAgICAgYWIwNTZjNGQyOWRlODE0ZAogCi1WUE1JTlVXXzEyOChyZWcpCitWVU5QQ0tIUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZTVjNjBjZDgxOWIwM2EwOS45M2UzNjRhNzdiNmE1ODEzLjVjOGUzYzkwYzNjMGRlYTQuYzRlMGU4ZDA1YWViZjBhNwogICAgIGNhMDhjOTUyNjUyNTJkNzIuOTllMjllZmY0NjQ1YmJjZC4yMGM2NmI0NDRlMzIyZGMxLmVjZjY0YzQ4NmVjZGVlYTIKQEAgLTE1Nzc0LDEyICsxNTc3NCwxMiBAQAogICAgIDA5M2Y4YWMzODQyYWIwZmUuMjRlOWFkZWJiY2ZkNDFjOC5kMmI3NTZjOTNmMWU0ZDcyLmIwM2EzMzUzMGViZmQxMWYKICAgICAwNTAwYWZiZWQxZTgyZGY4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIwYzY2YjQ0NDNjZDJkYzEuNDZkMDNiN2I2ZWNkYTU2NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZTY1NzVkZTQzY2Q5MzIyLjIwYzY2YjQ0NGUzMjJkYzEKICAgICBjYTA4Yzk1MjY1MjUyZDcyLjk5ZTI5ZWZmNDY0NWJiY2QuMjBjNjZiNDQ0ZTMyMmRjMS5lY2Y2NGM0ODZlY2RlZWEyCiAgICAgYjgxNzlmMjdhYWNhOTYzNS44MDRhZTJjNzUyMWQ3NWE1LjdlNjU3NWRlNDNjZDkzMjIuNDZkMDNiN2JmNjY1YTU2NgogICAgIDA5M2Y4YWMzODQyYWIwZmUuMjRlOWFkZWJiY2ZkNDFjOC5kMmI3NTZjOTNmMWU0ZDcyLmIwM2EzMzUzMGViZmQxMWYKICAgICAwNTAwYWZiZWQxZTgyZGY4Ci1WUE1JTlVXXzEyOChtZW0pCitWVU5QQ0tIUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjFlZDJiYTY1YmViNzYxZC4xYmNiODc5MjhlZDFiODc4LjYwODk3OTU4OWZmMWRjNjIuNzgwODBhNzFkZGIwOTc1ZQogICAgIGUwY2YyNGY5YzlkNDY4YmIuNDgwOTkwMDA2NDRjZWE1MC4xMmY3YzRmODE4MDYwMjllLmNjYTM4ZTQyYmEwZmFjOTIKQEAgLTE1Nzg5LDExICsxNTc4OSwxMSBAQAogICBhZnRlcgogICAgIDIxZWQyYmE2NWJlYjc2MWQuMWJjYjg3OTI4ZWQxYjg3OC42MDg5Nzk1ODlmZjFkYzYyLjc4MDgwYTcxZGRiMDk3NWUKICAgICBlMGNmMjRmOWM5ZDQ2OGJiLjQ4MDk5MDAwNjQ0Y2VhNTAuMTJmN2M0ZjgxODA2MDI5ZS5jY2EzOGU0MmJhMGZhYzkyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEyZjc3OTU4MTgwNjAyOWUuNzgwODBhNzFiYTBmOTc1ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MDg5Nzk1ODlmZjFkYzYyLjEyZjdjNGY4MTgwNjAyOWUKICAgICBiNjlkNzk4ZGJmOGEzNTExLjY3YzZiYzZhZTZlYmJiYzkuNDU2Y2M1ODUzYWMwZGVhZi5lZWViZjMxMDllNjYyYjgwCiAgICAgNzQyZmNkZTRkZTc2MGI5MgogCi1WUEhNSU5QT1NVV18xMjgocmVnKQorVlVOUENLSFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDE4ZWQ2NTkyY2Q4M2E4OWMuODYyMmNmYTY4MDZlODkyMS4xMGRlZDUzZGNhMjhkMmMxLjdlMGM3MjQ5MWI3ZTBjZGIKICAgICAzNTczYjk4NDA2MTkzYzRhLjY5Y2I5MGQ5OTM2OTc1NWEuNDVkN2VjNjBlYTY4MDNjOC45YmE5OGVmMjAxOGNiNDVhCkBAIC0xNTgwMSwxMiArMTU4MDEsMTIgQEAKICAgICA0ZjAzODJlOWM3MTEzYjQwLmQ3Yjg0NzNlMjVkMTA5ZjUuYzQ5YjAxNDI1MDIyYTJhZC5mNjBlMDA5ZjRmYzk2NmZmCiAgICAgZWE2ZDRlN2NlZTEwZTc3ZAogICBhZnRlcgotICAgIDE4ZWQ2NTkyY2Q4M2E4OWMuODYyMmNmYTY4MDZlODkyMS4xMGRlZDUzZGNhMjhkMmMxLjdlMGM3MjQ5MWI3ZTBjZGIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDEwOWY2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYzZmNmYzNkNDVkN2VjNjAuZTMzNzg5ODhlYTY4MDNjOAorICAgIDM1NzNiOTg0MDYxOTNjNGEuNjljYjkwZDk5MzY5NzU1YS40NWQ3ZWM2MGVhNjgwM2M4LjliYTk4ZWYyMDE4Y2I0NWEKICAgICAyOTBjYzQyODI1YzQwNDQ3LjNhNjQzOTEzMTc4NmI3ZTcuNjNmY2ZjM2RlMzM3ODk4OC43YTExOTQ2YjA5ZjY5NDU3CiAgICAgNGYwMzgyZTljNzExM2I0MC5kN2I4NDczZTI1ZDEwOWY1LmM0OWIwMTQyNTAyMmEyYWQuZjYwZTAwOWY0ZmM5NjZmZgogICAgIGVhNmQ0ZTdjZWUxMGU3N2QKLVZQSE1JTlBPU1VXXzEyOChtZW0pCitWVU5QQ0tIUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzRmYWZiZWQwMmQ4ZDJmZi4wM2E1ZjAzMzg4OGIxZWUwLjFiOTUzNTQ4ZGM1NzI3YWYuYzVmZWY3ZGFjZWI0ODhlNAogICAgIGFlODA4MmRlYTgyYmU1YWUuYTAzZTA4NzIwM2JmZTlkNC5lMWM1N2YxYjU1MjNjZjQyLmMyNzJkYjcxZjg3OTc3ZDkKQEAgLTE1ODE2LDExICsxNTgxNiwxMSBAQAogICBhZnRlcgogICAgIDM0ZmFmYmVkMDJkOGQyZmYuMDNhNWYwMzM4ODhiMWVlMC4xYjk1MzU0OGRjNTcyN2FmLmM1ZmVmN2RhY2ViNDg4ZTQKICAgICBhZTgwODJkZWE4MmJlNWFlLmEwM2UwODcyMDNiZmU5ZDQuZTFjNTdmMWI1NTIzY2Y0Mi5jMjcyZGI3MWY4Nzk3N2Q5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDA3MWI5NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xYjk1MzU0OGUxYzU3ZjFiLmRjNTcyN2FmNTUyM2NmNDIKICAgICBhNmFiMGVmMTE4YTg2ZDQ5LjA5ODUyYjdmOTg4MjI2NjYuNjc1MTE5ZDEwM2JlYThhMS4yMWJkNWE0Y2MyY2U2NGFiCiAgICAgM2EyY2VkNjg5OTc1ZDhlMAogCi1WUEhNSU5QT1NVV18xMjgocmVnKQorVlVOUENLSFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGJmZGI1ZDMzOGQ4MDQ3ODMuZGNlNzBjZWExYWU5NWM4ZC44ZGNhMmUyNWVhMmExMTVkLmRmNDU1ZjhhNmZhNjUxYzYKICAgICAwYzE3YTcxYTNhN2FlYjQwLmIyNGRkMzE0MWVlNjYxYWYuNmIzN2NiNzA2N2JhZDI1Ny40OWJjZjNiZTBlMDM3NDczCkBAIC0xNTgyOCwxMiArMTU4MjgsMTIgQEAKICAgICA2ZTY3YjZlODJjNmNjNWI2LmIyYzdiMmE3OWE0NTlmM2YuYTRiNGM4YTY1MGM4Y2QwNy42NzY3ZWQ0NDU4NTExMjE4CiAgICAgZDIzMjRkNmYzYTU5MDc2NwogICBhZnRlcgotICAgIGJmZGI1ZDMzOGQ4MDQ3ODMuZGNlNzBjZWExYWU5NWM4ZC44ZGNhMmUyNWVhMmExMTVkLmRmNDU1ZjhhNmZhNjUxYzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDYwMGNkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZlMTYwMGNkNmIzN2NiNzAuYWFjMWE4MDE2N2JhZDI1NworICAgIDBjMTdhNzFhM2E3YWViNDAuYjI0ZGQzMTQxZWU2NjFhZi42YjM3Y2I3MDY3YmFkMjU3LjQ5YmNmM2JlMGUwMzc0NzMKICAgICA3ZDJkYzY4NzNiZjAwMWMyLjA1YTllMTU5M2ZhYjM5ZGMuZmUxNjAwY2RhYWMxYTgwMS44Mjg0NGU1OGZkZTNjYmQ1CiAgICAgNmU2N2I2ZTgyYzZjYzViNi5iMmM3YjJhNzlhNDU5ZjNmLmE0YjRjOGE2NTBjOGNkMDcuNjc2N2VkNDQ1ODUxMTIxOAogICAgIGQyMzI0ZDZmM2E1OTA3NjcKLVZQSE1JTlBPU1VXXzEyOChtZW0pCitWVU5QQ0tIUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTBiMWU5YzNiZjA4NjRlZS4zYjEyNzNhN2FhN2Q3MmM3LjkzNzJjMGU5NGFiZjUxMDUuYjc1ZDFmNjlmNDVkN2UxNAogICAgIGFlYjAzZDJkMDQ2OWU2ZGIuNDA3OWZhMzI1MWFjNDVhMi44NTc4ODkwYjZjMjYwOTU5Ljk0NWQwMTgxMzMwY2Y3ZDUKQEAgLTE1ODQzLDExICsxNTg0MywxMSBAQAogICBhZnRlcgogICAgIGEwYjFlOWMzYmYwODY0ZWUuM2IxMjczYTdhYTdkNzJjNy45MzcyYzBlOTRhYmY1MTA1LmI3NWQxZjY5ZjQ1ZDdlMTQKICAgICBhZWIwM2QyZDA0NjllNmRiLjQwNzlmYTMyNTFhYzQ1YTIuODU3ODg5MGI2YzI2MDk1OS45NDVkMDE4MTMzMGNmN2Q1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAyMWY2OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MzcyYzBlOTg1Nzg4OTBiLjRhYmY1MTA1NmMyNjA5NTkKICAgICBmNTVkZmVmNTNjNzM0ODkxLjYxYWY1MjU5ODc5OTRjNjUuMGRjMDM4OWY3NGU4N2Q1ZS4xZDkxNTg1ZmVmZTQzMDIxCiAgICAgODA1ZGM0ZmVhNTI3NjgwNAogCi1WUEhNSU5QT1NVV18xMjgocmVnKQorVlVOUENLSFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDFlYjFhYmEyNjZiMjU3NGIuZTdhMzYzMjk2NzMzYTBiMy4zNjE1MWNjZDRmNmVmOWE0LjVhOWIxOGU5OTI1YmIxNjYKICAgICA1MWQ3MGFiOGNkMTMzYWEyLjg4OWE3MDI0YzJkNjBkZWEuYjM2OWEwYmNhZjkzYmI1ZS4yODAwYTFjMzkxZWJkY2FkCkBAIC0xNTg1NSwxMiArMTU4NTUsMTIgQEAKICAgICBlOWNiMWNlNWZlODVjYzJlLjQ4YzU3MzFjNzZmMjE0NDUuMTQwNWMyYmNhOWZiNzBlZC5iNzk3YTNkOGE1OTAwNmE2CiAgICAgMzA2MTEzZWFmMGJkN2RiMQogICBhZnRlcgotICAgIDFlYjFhYmEyNjZiMjU3NGIuZTdhMzYzMjk2NzMzYTBiMy4zNjE1MWNjZDRmNmVmOWE0LjVhOWIxOGU5OTI1YmIxNjYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDczNGY1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM0ZjVkODkyYjM2OWEwYmMuNDQ5M2NlM2RhZjkzYmI1ZQorICAgIDUxZDcwYWI4Y2QxMzNhYTIuODg5YTcwMjRjMmQ2MGRlYS5iMzY5YTBiY2FmOTNiYjVlLjI4MDBhMWMzOTFlYmRjYWQKICAgICA3NjFjZGJhYTc2ZDY0ZWI0LmI0MGNhMmQxNjg2NjRhNjEuMzRmNWQ4OTI0NDkzY2UzZC41M2JhNTExOThlYTNiYTVlCiAgICAgZTljYjFjZTVmZTg1Y2MyZS40OGM1NzMxYzc2ZjIxNDQ1LjE0MDVjMmJjYTlmYjcwZWQuYjc5N2EzZDhhNTkwMDZhNgogICAgIDMwNjExM2VhZjBiZDdkYjEKLVZQSE1JTlBPU1VXXzEyOChtZW0pCitWVU5QQ0tIUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOWFlNTFkM2Q4ZTM2ZGJhYS4wNzMyYzlkNjAxYWVmM2JiLjFlOTM2MWYxMDc4MzI3YzEuYjFlNzU5YTQ3YTU2ZGIxYgogICAgIGQxZWYzZWJjOTkwOGRiYmUuMmE5YmRjZTcxOWRkZmQwOC4xMzQxZTczYzM4MjczZjAyLjY2ZTU5YWI4NTQzMDRjNzMKQEAgLTE1ODcwLDExICsxNTg3MCwxMSBAQAogICBhZnRlcgogICAgIDlhZTUxZDNkOGUzNmRiYWEuMDczMmM5ZDYwMWFlZjNiYi4xZTkzNjFmMTA3ODMyN2MxLmIxZTc1OWE0N2E1NmRiMWIKICAgICBkMWVmM2ViYzk5MDhkYmJlLjJhOWJkY2U3MTlkZGZkMDguMTM0MWU3M2MzODI3M2YwMi42NmU1OWFiODU0MzA0YzczCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDA1MDc4MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZTkzNjFmMTEzNDFlNzNjLjA3ODMyN2MxMzgyNzNmMDIKICAgICAxNmM1YjFlZDY3ZTRiNWU1LmYyYTcyODFlZmY3YWFjOTEuY2E2YmFiZTVlN2Q2NmM4Mi44NzY5MDYxMDkyOTMyZTRmCiAgICAgYWI4NjJhMmQyZTMzMTgyYwogCi1WUE1BWFNXXzEyOChyZWcpCitWTU9WVVBTX0V0b0dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNThmMGU3MjU0MjgyZjhlMi5kYzI4ZmQ3ODYyMDcwNTUxLjRmZTA1OTFhMDMwMGNhMjUuNDM4MGUyMWE5ZmY5ZmExOAogICAgIGU4ZjIzOTY0NmEwZDBhMWUuZGY0MjRlZGYzYmIyZTk4Ny4yMjRkZTJlODhlYmNiYjI4LjRjYTVhMTc2NjU1ZTdkMjQKQEAgLTE1ODgyLDEyICsxNTg4MiwxMiBAQAogICAgIDI1ZjI4ZTY3NjgwNWIyZDYuMGNjNmY0ZjJmNWQxNTcwMy45YWVmZThhOGE2MDMwODJlLjdiNGZhNzRmOTAyMDUwNDgKICAgICA1OTZiZTdhNTJkOTQxOWI5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIyNGRlMmU4M2IzOWJjNDcuNGNhNTY0ZTM2NTVlN2QyNAotICAgIGU4ZjIzOTY0NmEwZDBhMWUuZGY0MjRlZGYzYmIyZTk4Ny4yMjRkZTJlODhlYmNiYjI4LjRjYTVhMTc2NjU1ZTdkMjQKKyAgICA1OGYwZTcyNTQyODJmOGUyLmRjMjhmZDc4NjIwNzA1NTEuNGZlMDU5MWEwMzAwY2EyNS40MzgwZTIxYTlmZjlmYTE4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM3MzliZGYzM2IzOWJjNDcuYzBhNjY0ZTM1NzEyYjBkMAogICAgIGI5ZGExZDU2NDM2MDg5OGIuZmJkZDIyMGYwZGYxMWJiNC5jNzM5YmRmMzNiMzliYzQ3LmMwYTY2NGUzNTcxMmIwZDAKICAgICAyNWYyOGU2NzY4MDViMmQ2LjBjYzZmNGYyZjVkMTU3MDMuOWFlZmU4YThhNjAzMDgyZS43YjRmYTc0ZjkwMjA1MDQ4CiAgICAgNTk2YmU3YTUyZDk0MTliOQotVlBNQVhTV18xMjgobWVtKQorVk1PVlVQU19FdG9HXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDM2Yzg5ZWQxNGE3YmM2NGYuOGE4ODg4MDM3NjhhYzBhYS5lZWM5NDA3NTBlNWQ1YmExLmY3YmQ1ZTcxNmRhN2RjODgKICAgICBlZDMwNGFiZjAxZTAxNDM2LjQyZTYwNzk2MDk3YWYwYjQuN2NiMTgyODU3NGExZTFiYS4zYWVkMWJiYjI5YjA3NDAyCkBAIC0xNTg5NywxMSArMTU4OTcsMTEgQEAKICAgYWZ0ZXIKICAgICAzNmM4OWVkMTRhN2JjNjRmLjhhODg4ODAzNzY4YWMwYWEuZWVjOTQwNzUwZTVkNWJhMS5mN2JkNWU3MTZkYTdkYzg4CiAgICAgZWQzMDRhYmYwMWUwMTQzNi40MmU2MDc5NjA5N2FmMGI0LjdjYjE4Mjg1NzRhMWUxYmEuM2FlZDFiYmIyOWIwNzQwMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43Y2IxNDA3NTc0YTE1YmExLjNhZWQ1ZTcxNmRhNzc0MDIKLSAgICA1ZTU0NmY5MWI0NTU4MmE0LjFmMmM4NTUyMmJjZGE2MTkuMTE2NGQ5Zjg5YTgzNjYwYS5lMWE2NWI4M2Y2MjJkZjA0CisgICAgNWM3MDY2NWI3MWNmYmY5OS5hYTU5MDc4ZGJiNjI3ZmEwLjk0NGMzNzBjNDRhYWE2NzkuYmZjYzFiZjI3OGFiMGM0NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZWM5NDA3NTBlNWQ1YmExLmY3YmQ1ZTcxNmRhN2RjODgKICAgICBmZWM2ZDZkOTNlYTQyYmU1CiAKLVZQTUFYU1dfMTI4KHJlZykKK1ZNT1ZVUFNfRXRvR18xMjgocmVnKQogICBiZWZvcmUKICAgICA3MTdhODg1ZmVjYmEyOTk1LmNlYTdkZjRkZTY3ZDFiODQuZmJhZDdjNTNmMzQ3YTRjYy5jZWM3ZTYzNDkxMzhkYzliCiAgICAgOTYwYzZkODM5ZGYyMThjMS44YTM3MzQ3YzI0NTQ0NDY1LjliMjZlOGZiYWY1ZGIzNjQuYTkzZmQ5YWI0NWQ2YzU1NgpAQCAtMTU5MDksMTIgKzE1OTA5LDEyIEBACiAgICAgNjVmZGMxNTI3N2Y2YjQzYi41MjM5N2FkZjMxM2IzOGQ4Ljk4MzQxMGVmNzU4YmY2ZjYuMjVhMTYyZmY1N2ZhZTBmYgogICAgIDdmMjJmMGI0ZWM5OTg5M2UKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWNlNWU4ZmJmYjlhMTA4ZS43ZDk5MmY0YjQ1ZDZkZDY3Ci0gICAgOTYwYzZkODM5ZGYyMThjMS44YTM3MzQ3YzI0NTQ0NDY1LjliMjZlOGZiYWY1ZGIzNjQuYTkzZmQ5YWI0NWQ2YzU1NgorICAgIDcxN2E4ODVmZWNiYTI5OTUuY2VhN2RmNGRlNjdkMWI4NC5mYmFkN2M1M2YzNDdhNGNjLmNlYzdlNjM0OTEzOGRjOWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWNlNWM1YjZmYjlhMTA4ZS43ZDk5MmY0YmQzNjhkZDY3CiAgICAgYzhjOTgxYjBlZGQ3MzIxNC42ZGNlZTkwODg5ZTRiOTcyLjVjZTVjNWI2ZmI5YTEwOGUuN2Q5OTJmNGJkMzY4ZGQ2NwogICAgIDY1ZmRjMTUyNzdmNmI0M2IuNTIzOTdhZGYzMTNiMzhkOC45ODM0MTBlZjc1OGJmNmY2LjI1YTE2MmZmNTdmYWUwZmIKICAgICA3ZjIyZjBiNGVjOTk4OTNlCi1WUE1BWFNXXzEyOChtZW0pCitWTU9WVVBTX0V0b0dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNjVlYTU0NTRhZTUwOTU1Yi5jOGY0MjhkNWQ3ZGFkYWUxLjE3NDQ2NGViMzk2NTdiYzMuYWM2MGM0MTRiNmJhYTM0NwogICAgIGI1YzMwYmNjYmEyY2MwN2YuNGNmYWIyYTVhYTBmZGZiMy45NmJiMjExYWJkNmQzZjVlLmY0YjVkZDkxNWNiNTUxMmUKQEAgLTE1OTI0LDExICsxNTkyNCwxMSBAQAogICBhZnRlcgogICAgIDY1ZWE1NDU0YWU1MDk1NWIuYzhmNDI4ZDVkN2RhZGFlMS4xNzQ0NjRlYjM5NjU3YmMzLmFjNjBjNDE0YjZiYWEzNDcKICAgICBiNWMzMGJjY2JhMmNjMDdmLjRjZmFiMmE1YWEwZmRmYjMuOTZiYjIxMWFiZDZkM2Y1ZS5mNGI1ZGQ5MTVjYjU1MTJlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE3NDQ2NGViMzk2NTdiYzMuZjRiNWRkOTE1Y2I1NTEyZQotICAgIGZmZGI1ZWY1MWU3ZjYxOGIuMmI2MjIwZGQxNzlkNzk4YS4zNjFkMDk4ZWE3NDczOTU2LjkwMDkyZTNlNDYzZGEyNmQKKyAgICA0OTdhOGYwODJiMzdjNWQ2LjRmNWI1YjJlOGIyMTAwNWQuYWQ2YTJmNTdkODVmM2ZkNS5jYzdlNTdkMDAzMDgzZDU3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE3NDQ2NGViMzk2NTdiYzMuYWM2MGM0MTRiNmJhYTM0NwogICAgIDljYTA1ZjQ3YzFlM2JkMWMKIAotVlBNQVhTV18xMjgocmVnKQorVk1PVlVQU19FdG9HXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDRjOTBlNTU4MTE4M2NhMTEuYjFiMmYzN2VhZTEwNTBjYS4zZTVjZmIxY2U5MGY4NmU3LjBlOWYyY2FiNDUzMmU3MGEKICAgICBmYzI1YmNkY2QyYWIwNWY4LjNjY2JjYThlZjhmNTRlYzEuZTI5NmVhNTk5ZTAxNjIyMC4xMmJkMTI5YWNlMmIwNTIwCkBAIC0xNTkzNiwxMiArMTU5MzYsMTIgQEAKICAgICBjYzZlNGVlYzE0YzBmMzRhLjRlZjIyZmY4MjhlYjY1ODEuNTFmNGYyNzkxZjlhN2FkNC4wOWZlMWM5ZjEzNzg4NTFkCiAgICAgYjZiNzM3OGMwN2U1NWU1YwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NTU5ZWE1OWQxMDE2MjIwLjFjNDQzOTQ3NWYzZjUxYzIKLSAgICBmYzI1YmNkY2QyYWIwNWY4LjNjY2JjYThlZjhmNTRlYzEuZTI5NmVhNTk5ZTAxNjIyMC4xMmJkMTI5YWNlMmIwNTIwCisgICAgNGM5MGU1NTgxMTgzY2ExMS5iMWIyZjM3ZWFlMTA1MGNhLjNlNWNmYjFjZTkwZjg2ZTcuMGU5ZjJjYWI0NTMyZTcwYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NTU5ZTlmZWQxMDE0YWUwLjFjNDQzOTQ3NWYzZjUxYzIKICAgICAwOGFiZTAzZTlmZTZhOTdjLjdkZjE1ZjEzMTczYTE2OTkuNzU1OWU5ZmVkMTAxNGFlMC4xYzQ0Mzk0NzVmM2Y1MWMyCiAgICAgY2M2ZTRlZWMxNGMwZjM0YS40ZWYyMmZmODI4ZWI2NTgxLjUxZjRmMjc5MWY5YTdhZDQuMDlmZTFjOWYxMzc4ODUxZAogICAgIGI2YjczNzhjMDdlNTVlNWMKLVZQTUFYU1dfMTI4KG1lbSkKK1ZNT1ZVUFNfRXRvR18xMjgobWVtKQogICBiZWZvcmUKICAgICBmZDNkMDdmYzU3OGY5OGFjLmE0YmEwMDUxY2VjNjFmMGUuOGM5OGI1Mjk0NjE1ZjdhMy5kNGIyMDMzNTIzNTkyZGE3CiAgICAgYmI1YjA2ZDkxZDg0ZWUzOC5lY2RhZjRkOTY4ODM2OTczLjEzYjA2ZDkyOGRjMzg3MmMuNThkZTE2OWU3OWM5YTAwNgpAQCAtMTU5NTEsMTEgKzE1OTUxLDExIEBACiAgIGFmdGVyCiAgICAgZmQzZDA3ZmM1NzhmOThhYy5hNGJhMDA1MWNlYzYxZjBlLjhjOThiNTI5NDYxNWY3YTMuZDRiMjAzMzUyMzU5MmRhNwogICAgIGJiNWIwNmQ5MWQ4NGVlMzguZWNkYWY0ZDk2ODgzNjk3My4xM2IwNmQ5MjhkYzM4NzJjLjU4ZGUxNjllNzljOWEwMDYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTNiMDZkOTI0NjE1ZjdhMy41OGRlMTY5ZTc5YzkyZGE3Ci0gICAgMGM4ZDg2OGY4MTdkZTFiNy4zYmM5OTAwMmFlNTQ0NWQyLjZkNjY2M2JjMDlkZDk1MjEuZDdiNDM4Mjc4ZWVkYjYxNgorICAgIGNjZGNiMjExNzhjZjFkMmQuZmYxYjI2ZjA3Zjg0MGMyNi5jMDA2ZDMxZjFhMDJkMzQ3LjNhYzYyYTIwYmU3NjBmOWMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGM5OGI1Mjk0NjE1ZjdhMy5kNGIyMDMzNTIzNTkyZGE3CiAgICAgODlmNTNkMWY4NGI5ZDAyMAogCi1WUE1JTlNXXzEyOChyZWcpCitWQUREUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYWRkNTM2NzQzYzY2OWE2NS41ODNhZmYzZTU3OTlmNTAxLmZiMzAzMDdiOTI3ZjUwMjQuZjc5YjlhNTY3NTYwODllNQogICAgIDlmYTAxZTkzNTM4MTUwOTIuOGFhZjk3MGMxMzJmMTYzOC45YjljMDBjN2M2OTE2OGM4LjNhNzNmM2Q3N2E5ODZjYzAKQEAgLTE1OTYzLDEyICsxNTk2MywxMiBAQAogICAgIDVlMjZhY2RiMGMyZjZmNTIuMTMyMDE5YjNiM2ZhNmYxYi5lYWIyMjY4OTkwOWNiMmI0LjViMzdmYjQyYzI1NGVmNmEKICAgICBmMWJjYTMwNDNiZjAwNzkxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjliOWNmZTUzYzY5MWNhNjkuMTJiOGVhMmMzNTkwZmJkZQorICAgIGJiYTFmMWU2NjU5NTJkNTIuN2ZmOGNjZTVkMzRiMDA4Ny43NjU5ZmU1M2U3MTdjYTY5LjNhNzNmM2Q3N2E5ODZjYzAKICAgICA5ZmEwMWU5MzUzODE1MDkyLjhhYWY5NzBjMTMyZjE2MzguOWI5YzAwYzdjNjkxNjhjOC4zYTczZjNkNzdhOTg2Y2MwCiAgICAgYmJhMWYxZTY2NTk1MmQ1Mi43ZmI4Y2NlNWQzNGIwMDg3Ljc2NTlmZTUzZTcxN2NhNjkuMTJiOGVhMmMzNTkwZmJkZQogICAgIDVlMjZhY2RiMGMyZjZmNTIuMTMyMDE5YjNiM2ZhNmYxYi5lYWIyMjY4OTkwOWNiMmI0LjViMzdmYjQyYzI1NGVmNmEKICAgICBmMWJjYTMwNDNiZjAwNzkxCi1WUE1JTlNXXzEyOChtZW0pCitWQUREUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYjAxMzVkNWViZjcxZmQ3ZS5lMjc5NDlkY2U3ZDk1MDNlLjIyYjVmYTYzY2U0ODFlMjAuNTJmNTcyZDc1ZGFkNWI1NAogICAgIDc0MDhhNTNiNjhlMzhlNWUuYTRlN2M2NTc5MDIxMGNjMS44ODQxZWJlMTQxM2ZjYWMxLjA5NmNlMGE4ZWNkNTAzZjYKQEAgLTE1OTc4LDExICsxNTk3OCwxMSBAQAogICBhZnRlcgogICAgIGIwMTM1ZDVlYmY3MWZkN2UuZTI3OTQ5ZGNlN2Q5NTAzZS4yMmI1ZmE2M2NlNDgxZTIwLjUyZjU3MmQ3NWRhZDViNTQKICAgICA3NDA4YTUzYjY4ZTM4ZTVlLmE0ZTdjNjU3OTAyMTBjYzEuODg0MWViZTE0MTNmY2FjMS4wOTZjZTBhOGVjZDUwM2Y2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg4NDFlYmUxY2U0OGNhYzEuMDk2Y2UwYThlY2Q1MDNmNgorICAgIDc0MDhhNTNiNjhlMzhlNWUuZTI3OTQ5ZGNlN2Q5NTAzZS4yMmI1ZmE2M2NlNDgxZTIwLjUyZjU3MmQ3ZWNkNTAzZjYKICAgICA3YmZiY2YzNDk5YzY3MGE2LjUyNDQ0ZDY4YmRiYTA5M2UuYzg3MWVmZjg5YzVkMDk4OS5kODI5MGY4MmI5OWIzYWVlCiAgICAgYTgwNmM4NjQzMTUxNDM5ZAogCi1WUE1JTlNXXzEyOChyZWcpCitWQUREUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMzc0OTkzNzlkODRlMzlmZC43NjkxYWEyNjViNTEzOTY1LmY2Y2E1MGQ2NzkyMmMwOTAuNWJhZGY5NjliZDljMTMwOAogICAgIGUzM2M2YjJlNGQxZjU5YmIuZTVmNTAzNGNiMWZiOGRjOC40ODljMjE2ZDczNTc0NDJhLmI1MTAwMzU4YTZiNTBhZDQKQEAgLTE1OTkwLDEyICsxNTk5MCwxMiBAQAogICAgIGZkNjUzMjIzMGI2YTA2MDAuOTQ1NjFmZTU4ZmUyYzUyNC42NjRmMjJjNjk0NWE5ZWU0LjJlN2YwODVmM2RhNmFlMDAKICAgICAwNDIyZmI1MDI0OTZkM2JhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE0MDRiZTk5NDllNmNmYjcuYjI2ODg5YjBhNmI1YWExOAorICAgIGUzM2M2YjJlNGQxZjU5YmIuZTVmNTAzNGNiOWQyMjhmNS40ODljMjE2ZDczNTc0NDJhLmI1MTNhNTdmNzFiNGFhMTgKICAgICBlMzNjNmIyZTRkMWY1OWJiLmU1ZjUwMzRjYjFmYjhkYzguNDg5YzIxNmQ3MzU3NDQyYS5iNTEwMDM1OGE2YjUwYWQ0CiAgICAgMDYyYzRjZWQyYTRmZGU4My5hNmYzNTY5MmI5ZDIyN2Y5LmE0MDRiZTk5NDllNmNmYjcuYjI2ODg5YjA3MWI0YWExOAogICAgIGZkNjUzMjIzMGI2YTA2MDAuOTQ1NjFmZTU4ZmUyYzUyNC42NjRmMjJjNjk0NWE5ZWU0LjJlN2YwODVmM2RhNmFlMDAKICAgICAwNDIyZmI1MDI0OTZkM2JhCi1WUE1JTlNXXzEyOChtZW0pCitWQUREUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMTIxZGRlNmY0MjkxZDU3MC4yNTMzMTkzZDhkZmQwYmRlLjhiZWNkYjJmNGUzNTIxNzYuZTljOTRhNjFmMjQwZWQ1YwogICAgIDMzM2MyZWE5YjRhMTZmNGUuZDhlMmZlYTU0YjkzMjljYi42NjdmMDU1ZTEzZDlmNzFiLjhiYmUzMGQ0ZmYyMmY3Y2MKQEAgLTE2MDA1LDExICsxNjAwNSwxMSBAQAogICBhZnRlcgogICAgIDEyMWRkZTZmNDI5MWQ1NzAuMjUzMzE5M2Q4ZGZkMGJkZS44YmVjZGIyZjRlMzUyMTc2LmU5Yzk0YTYxZjI0MGVkNWMKICAgICAzMzNjMmVhOWI0YTE2ZjRlLmQ4ZTJmZWE1NGI5MzI5Y2IuNjY3ZjA1NWUxM2Q5ZjcxYi44YmJlMzBkNGZmMjJmN2NjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhiZWNkYjJmMTNkOWY3MWIuOGJiZTMwZDRmMjQwZWQ1YworICAgIDMzM2MyZWE5NDI5MWQ1NzAuZDhlMmZlYTU0YjkzMjljYi42NjdmMDU1ZTRlMzUyMTc2LmU5Yzk0YTYxZmYyMmY3Y2MKICAgICAxZDE1MDExOTAyMzY1ZjM1LjUzMTJhZjE0ZWRmOWE0N2MuM2RkMDkzMTgxYzQyMDUwYy45OTQ4MmJmNzkzMTAyZjQzCiAgICAgYmM3NTM3N2Q1MzMzZDVhMQogCi1WUE1JTlNXXzEyOChyZWcpCitWQUREUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNmU0ZWYzOGQzMjgzMjZhOC45ZjY4N2QyOTE2ZDEyYjk1LmQyMmI3M2YxMDllMTc4OTkuZWYyNWVmN2E5OTFmYjRiMQogICAgIDBhMWQ1OTkyY2I4ZDVmMDIuYTMwZTU1MDJlZWIzODFjZS40ZDU2MjVjZWQxZmM1Njc0LmY3YThhYTcyOGM3ZGNkNTgKQEAgLTE2MDE3LDEyICsxNjAxNywxMiBAQAogICAgIDZmY2YxODJiOWNmYzc4NjAuYTU4NjBhYzQ1NzdiYjY3YS5hNzBjNDAzNWQ3ZmQxZTEyLjc1NjcyYWNjNDFlOTMxNWUKICAgICBhMzNiZTcwNzNjMGZmMjE1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIwZGRjMDE2ZDFmYzU2NzQuZjdhOGFhNzI4YzdkY2Q1OAorICAgIGViMmY2N2Y4Y2I4ZDVmMDIuYTMwZTU1MDJlZWIzODFjZS40ZDU2MjVjZWUyZDc3OWI4LmY3YThhYTcyMGY2MzE2ZjkKICAgICAwYTFkNTk5MmNiOGQ1ZjAyLmEzMGU1NTAyZWViMzgxY2UuNGQ1NjI1Y2VkMWZjNTY3NC5mN2E4YWE3MjhjN2RjZDU4CiAgICAgZWIyZjY3ZjhiYWRjYmM1Yi4wN2Q0MDY5MmE1ZTgxYjBjLjIwZGRjMDE2ZTJkNzc5YjguMmYyNDNmZTkwZjY3MGUyZQogICAgIDZmY2YxODJiOWNmYzc4NjAuYTU4NjBhYzQ1NzdiYjY3YS5hNzBjNDAzNWQ3ZmQxZTEyLjc1NjcyYWNjNDFlOTMxNWUKICAgICBhMzNiZTcwNzNjMGZmMjE1Ci1WUE1JTlNXXzEyOChtZW0pCitWQUREUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOTc2ZGYyODcxY2U2MGY3ZS5mMTRiNjk5ODBjNzlkMGJkLjViZjBkZjg0MjE3ODBkNDUuM2UzMWExOTg0Y2ZhODEyZAogICAgIDJiYzljODM2ZmU3OTQyYzYuY2NlZDU0YTlhN2UwMDAxZC4wM2RkMDBiZTFmZWJkZTk4LjQxOTdkZmE5ZGU1YmRkYjYKQEAgLTE2MDMyLDExICsxNjAzMiwxMSBAQAogICBhZnRlcgogICAgIDk3NmRmMjg3MWNlNjBmN2UuZjE0YjY5OTgwYzc5ZDBiZC41YmYwZGY4NDIxNzgwZDQ1LjNlMzFhMTk4NGNmYTgxMmQKICAgICAyYmM5YzgzNmZlNzk0MmM2LmNjZWQ1NGE5YTdlMDAwMWQuMDNkZDAwYmUxZmViZGU5OC40MTk3ZGZhOWRlNWJkZGI2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAzZGRkZjg0MWZlYmRlOTguM2UzMWExOThkZTViODEyZAorICAgIDJiYzljODM2ZmU3OTQyYzYuZjE0YjY5OThhN2UwMDAxZC41YmYwZGY4NDIxOGFjNDhjLjQxOTk0MmVjZGU1YmRkYjYKICAgICBhNzJmYzJkNTM2MDRkY2EyLjAxZDdlZDZiY2M5YWQ3OTkuOWQ3NDE3NTAyNDY1ZDg4OC5mYjU0ZTQ4OWM4NzY3M2MxCiAgICAgNmE0NGEyMmY1NzQ5MjU5YgogCi1WUE1BWFVCXzEyOChyZWcpCitWU1VCUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYjVhNTJkMzU3M2FmYzA5Mi40NmQwZGY5ZGM0MTViYzhlLjEzYjY5MmY0OGUwNWY2MGMuNDZiNTA1ODA2NDg0N2I3ZAogICAgIDM4YzM4MjA2YjczNTgyNTMuZjZjY2I1NDVjMzExYTIwOS5lZWVjYzNkMWVhODlkZDMyLjUyYWEyZmRhNDg0OTg2YWIKQEAgLTE2MDQ0LDEyICsxNjA0NCwxMiBAQAogICAgIDU2NjU3NmI5MmFjZTY1ZTIuZmEwMDgxZTU4N2ZmNzI1OS43MzhjYjUzY2UzMGVmMTRiLjA0ZTAyOGJkNjlmNWM3NjAKICAgICA2MWI4ZWUxZWRmZjU3NDNmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVmZWNjM2QxZWFiM2RkYjkuOWVhYTJmZGFlYWMwYjZhYgorICAgIGNmZTk5YzBlNDA2NmE0NWMuZjZjY2I1NDVkMDA2NGEzZS42Zjg5NDk3Y2ZlYjNjN2I5LjUyYWEyZmRhNmFjMGI2M2QKICAgICAzOGMzODIwNmI3MzU4MjUzLmY2Y2NiNTQ1YzMxMWEyMDkuZWVlY2MzZDFlYTg5ZGQzMi41MmFhMmZkYTQ4NDk4NmFiCiAgICAgNGZlOTljMGVjMDY2YTQ4OS45NGVkYzJiOTUwMDY0YTNlLmVmYzQ3YTcwN2ViM2M3YjkuOWUxZjExNGJlYWMwYjYzZAogICAgIDU2NjU3NmI5MmFjZTY1ZTIuZmEwMDgxZTU4N2ZmNzI1OS43MzhjYjUzY2UzMGVmMTRiLjA0ZTAyOGJkNjlmNWM3NjAKICAgICA2MWI4ZWUxZWRmZjU3NDNmCi1WUE1BWFVCXzEyOChtZW0pCitWU1VCUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOTE3NGUxNTg2OGNiN2EwNy5hOTgxMGY3MzhmZjlmZjA3LjA1ZDE2ZWI1ODMwOWQ0ODguZDQ4ZTZmYTFiNzI2OTc5NAogICAgIDcwZTE3YzU5MjE4NDk1ZTQuYTQ4YTYwYTg4ZTc0YWZhNy45MTJjMDYxNTYxMmYyZGY0LjZmMTdhNDBiOTY4OGY1NDEKQEAgLTE2MDU5LDExICsxNjA1OSwxMSBAQAogICBhZnRlcgogICAgIDkxNzRlMTU4NjhjYjdhMDcuYTk4MTBmNzM4ZmY5ZmYwNy4wNWQxNmViNTgzMDlkNDg4LmQ0OGU2ZmExYjcyNjk3OTQKICAgICA3MGUxN2M1OTIxODQ5NWU0LmE0OGE2MGE4OGU3NGFmYTcuOTEyYzA2MTU2MTJmMmRmNC42ZjE3YTQwYjk2ODhmNTQxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkxZDE2ZWI1ODMyZmQ0ZjQuZDQ4ZWE0YTFiNzg4ZjU5NAorICAgIDcwZTE3YzU5ZThjYjdhMDcuMjk4MGVjZGIwZmRiNjkxMi45MTJjMDYxNzYxMmYyZGY0LjZmMTdhNDBiMzcyNjk3OTQKICAgICBhY2Y4OWI1ZDkwY2NmODhiLjAxOTMxZTMzYzQ4ODQwMDIuOWRhZjIzMzYzMGZmYjMzYS5jNGVlNzE5ZmUyNTdjNzc2CiAgICAgMzVkNDAwYTA4OGRkYjQ1NgogCi1WUE1BWFVCXzEyOChyZWcpCitWU1VCUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNTA3MGZhNTZhOGRjNDg0OS5jMDNjMTczODgwNzRiOWFkLjFjMmI4NDYyMzMzOTk5MTYuZDQ2ZmEyY2Y1YWMyNTg2YQogICAgIDcxMTA1YjJlZGZlMGMwZmMuZjM2MDJiODkwZTJkN2Y5NC40ZWRmOTJiYmFiNjlmODU0LmZjZTliYWE3ZDVkMWU0OGEKQEAgLTE2MDcxLDEyICsxNjA3MSwxMiBAQAogICAgIDM2ODc0NGYwMDAyOTRjNTEuMjY3NjBiM2U3YTA4MDg2MC42Y2NlOWFhMDI1NzdiN2ZjLjhmM2JhOWM5MzAwNWEwNDQKICAgICBiMmFiNzhlYTQ4NDE0NzM3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY1ZmM5MmJiYzhhNGY4NjcuZmNlOWU4YWNkNWQxZTRjMworICAgIDc0ZmY0MTQ5ZGZlMGMwZmMuZjM2MDJiODlkODA2MDU2Yy43NWZjNDVhYzQ4YTQ5OTY3LmZjZTliYWEzZDVkMWU0OGEKICAgICA3MTEwNWIyZWRmZTBjMGZjLmYzNjAyYjg5MGUyZDdmOTQuNGVkZjkyYmJhYjY5Zjg1NC5mY2U5YmFhN2Q1ZDFlNDhhCiAgICAgZjRmZTIwOTNjOTc2NTgxYi4yMTJmNTMzZDU4MDYwNTZjLmY1ZmM0NWFjYzhhNDk5NjcuZjFlOWU4YWNiZTM5MTJjMwogICAgIDM2ODc0NGYwMDAyOTRjNTEuMjY3NjBiM2U3YTA4MDg2MC42Y2NlOWFhMDI1NzdiN2ZjLjhmM2JhOWM5MzAwNWEwNDQKICAgICBiMmFiNzhlYTQ4NDE0NzM3Ci1WUE1BWFVCXzEyOChtZW0pCitWU1VCUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMzUwNGQxZmIyMWZhYzZjOC45MWY3YzNiMzIzODZkNzRiLmRlMDJkMDc5OGY0MTQ0OWQuMGVhMThjMDI1ZjZlOGZiZgogICAgIGY2MTQzMWU4ZDgzYmQ4MjQuNjI5YTk5NDdjYjE3MzZiNC4yNDljMWRkYmIzYmQ3NTRlLjM5YzExNzQwMTExMzVkNWIKQEAgLTE2MDg2LDExICsxNjA4NiwxMSBAQAogICBhZnRlcgogICAgIDM1MDRkMWZiMjFmYWM2YzguOTFmN2MzYjMyMzg2ZDc0Yi5kZTAyZDA3OThmNDE0NDlkLjBlYTE4YzAyNWY2ZThmYmYKICAgICBmNjE0MzFlOGQ4M2JkODI0LjYyOWE5OTQ3Y2IxNzM2YjQuMjQ5YzFkZGJiM2JkNzU0ZS4zOWMxMTc0MDExMTM1ZDViCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRlOWNkMGRiYjNiZDc1OWQuMzljMThjNDA1ZjZlOGZiZgorICAgIGY2MTQzMWU4ZDgzYmQ4MjQuNjI5YTk5NDdjYjE3MzZiNC41ZTAyZDA3OWIzYmQ3NTRlLjM5YzExNzQwZGY2ZThmYmYKICAgICA5Zjg0ZjIwNjRlODZhMmVkLmQ2YTgzYjkyMjAwYjYwODYuY2YzMjNmYzA5YmFhYTRiZi45NjE4ZTlmZDRlOWNjOWQwCiAgICAgODBlNjI4NTQxMTk4ZTAwMQogCi1WUE1BWFVCXzEyOChyZWcpCitWU1VCUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNjIzMWYwMzdiZDczZGRiYi4zZjdkNGMwZjQ1YThkNGIwLjMwYWJmZjIxMDQ4NWEyNDYuZWJjNDBjMWM5NjM1MWJkNgogICAgIDk5NDUzZDEwZWViOWZiYWIuOGI1YjlkYTU4YTgyODhlZi43MTExMGEzMmRmNjRhODI2LjA2OTc1MjRlMTAzMTc2MTIKQEAgLTE2MDk4LDEyICsxNjA5OCwxMiBAQAogICAgIDcxZjg1NzU4NGNiODhkZGMuOWNmYTEwMjQ2YjkwNjk4Yy4xNTM2ZTY4NmU4ODJlZmY0LmE4MmIzNmU0ZjNiMmNiYTcKICAgICBlODg1Y2MyMDk0NGQzYzU4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY0MjY1ODMyZGY2NGFlZDEuZmI5NzhjNGUyNmFjNzY5ZQorICAgIGZmNmUwYzRkZWViOWZiYWIuZTFlYzVmYjJiODIxN2JkNC43NDI4OWM1OGRmNjRhODI2LjdiNzU4YzQyYTZhYzcyOWUKICAgICA5OTQ1M2QxMGVlYjlmYmFiLjhiNWI5ZGE1OGE4Mjg4ZWYuNzExMTBhMzJkZjY0YTgyNi4wNjk3NTI0ZTEwMzE3NjEyCiAgICAgN2Y2ZTBjNGQzZWY3Nzc3ZC42MWVjNWZiMjM4MjE3YmQ0LmY0MjY1ODJmNGMzNGFlZDEuZmI3NThjNDIyNmFjNzI5ZQogICAgIDcxZjg1NzU4NGNiODhkZGMuOWNmYTEwMjQ2YjkwNjk4Yy4xNTM2ZTY4NmU4ODJlZmY0LmE4MmIzNmU0ZjNiMmNiYTcKICAgICBlODg1Y2MyMDk0NGQzYzU4Ci1WUE1BWFVCXzEyOChtZW0pCitWU1VCUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOTc0ZWNiZTIyNDhiODNkZi5jYzJmMWM5ZmIxODg3ODc1LjE4NTMyYmU2NDBkYjBkNDIuMzA4ZGFmYTE0ZWQ5YTgzYgogICAgIDkwNTRhZTE3YzA3ODVhNjUuZWE1ZTU2OGMwY2Y0NzVmMy5iMGMxMmNlNGQzMGYyNDIzLmExNzZhZmVlMWFjNjE1NTEKQEAgLTE2MTEzLDExICsxNjExMywxMSBAQAogICBhZnRlcgogICAgIDk3NGVjYmUyMjQ4YjgzZGYuY2MyZjFjOWZiMTg4Nzg3NS4xODUzMmJlNjQwZGIwZDQyLjMwOGRhZmExNGVkOWE4M2IKICAgICA5MDU0YWUxN2MwNzg1YTY1LmVhNWU1NjhjMGNmNDc1ZjMuYjBjMTJjZTRkMzBmMjQyMy5hMTc2YWZlZTFhYzYxNTUxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIwYzEyY2U2ZDNkYjI0NDIuYTE4ZGFmZWU0ZWQ5YTg1MQorICAgIDE3NGVjODhmYzA3ODVhNjUuZWE1ZTU2OGMzMTg4Nzg3NS5iMGMxMmNlNGQzMGYyNDIzLmIwOGRhZmExY2VkOWE4M2IKICAgICBkNDQyMTA4NjhhOGNhYTI0LmUyZDcxYTBkMGRjZDk1NTEuYTgwZmQxNDRhMDYwOWIxNS5mNDMyNDRjYjU3OGZmYTljCiAgICAgOGY5Y2QyMzNmZTg0ZWEyOQogCi1WUEVYVFJCX0d0b0VfMTI4XzB4MChyZWcpCitWTVVMUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZWZjOTg3N2M3ZDNkN2QzNS5kN2M0ODg5OWYwY2I5YmI1Ljc0Yjk5Yzc4ZWQ1MzJmODguYzA4NjZkN2UxMzk0NzI3ZAogICAgIDcyMDU1ZjEyNmU0OWYxNmQuOTRiMGQzY2RkMWU5MGRmNi4zYmM0ODMzYTMxYTRjYjU1LjY0NDRkZmE0YjNlMWFjYzEKQEAgLTE2MTI1LDEyICsxNjEyNSwxMiBAQAogICAgIDRkZDk2OWQ1MTc4MzY3MTAuYjBmZWQ3NGQ3N2VmNjMzYS5kMzg0NzA3NDU3ZDhmOTVmLmM0YzAzNjY1ZWRmNTM4ODcKICAgICAzODE3MTNkN2JkZDMwMjYyCiAgIGFmdGVyCi0gICAgZWZjOTg3N2M3ZDNkN2QzNS5kN2M0ODg5OWYwY2I5YmI1Ljc0Yjk5Yzc4ZWQ1MzJmODguYzA4NjZkN2UxMzk0NzI3ZAorICAgIDdmODAwMDAwN2Y4MDAwMDAuM2YxMzZjZjBkZDVjMTA3NC44ZDk3MTBkZjY4ODQ2MTRhLjdmODAwMDAwMTFiYTA1ZDUKICAgICA3MjA1NWYxMjZlNDlmMTZkLjk0YjBkM2NkZDFlOTBkZjYuM2JjNDgzM2EzMWE0Y2I1NS42NDQ0ZGZhNGIzZTFhY2MxCiAgICAgNzI5YjU2NjE2ZDMxODA3ZC5lOWQ1NmYxMDRhZjFiYjE0LjkxNDRjYmJmNzY0ZGE1NjMuNzIxM2EzYTI5ZDUzMDUwYgogICAgIDRkZDk2OWQ1MTc4MzY3MTAuYjBmZWQ3NGQ3N2VmNjMzYS5kMzg0NzA3NDU3ZDhmOTVmLmM0YzAzNjY1ZWRmNTM4ODcKLSAgICAwMDAwMDAwMDAwMDAwMGMxCi1WUEVYVFJCX0d0b0VfMTI4XzB4MChtZW0pCisgICAgMzgxNzEzZDdiZGQzMDI2MgorVk1VTFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGE4ZTRiNmU2MmNmOTFmYzguNWQwOTkzZGIwN2NhZTFkMy5jN2Y2ODg3MDczZjBiZjk1LjVkZDI2ZmMzNzBkMzAyZjUKICAgICBmMWYzOWI3YzUzNzQ0YmU0LjAwNzhkMGRkZGE5MzJjNzIuMDg4YWZjNjU1YWZmOGI1MC44Yjc4YzMxYTVlY2FmZGQwCkBAIC0xNjEzOCwxMyArMTYxMzgsMTMgQEAKICAgICA3ZjA2MWNmMjNmOTdiZWYwLjZiNDM3MzhhOTZkODFmZjEuN2NiNzIyNzY1Yzc5Njc5OS40M2ZmNWE4YzI4ZDliODA3CiAgICAgODU3ODk2ODAzYjA5ZjBiYgogICBhZnRlcgotICAgIGE4ZTRiNmU2MmNmOTFmYzguNWQwOTkzZGIwN2NhZTFkMy5jN2Y2ODg3MDczZjBiZjk1LjVkZDI2ZmMzNzBkMzAyZDAKKyAgICBhOGU0YjZlNjJjZjkxZmM4LjVkMDk5M2RiMDdjYWUxZDMuYzdmNjg4NzA3M2YwYmY5NS41ZGQyNmZjMzcwZDMwMmY1CiAgICAgZjFmMzliN2M1Mzc0NGJlNC4wMDc4ZDBkZGRhOTMyYzcyLjA4OGFmYzY1NWFmZjhiNTAuOGI3OGMzMWE1ZWNhZmRkMAotICAgIGYwMGYzZTg3NTA0ZjQxZTMuOTA3MjFjNDkyYjY5ODI5OC41MDg3YjExODQ5Mjk4NTk4LmI5YzM2OGUzYmQ0ODI1OWQKKyAgICA1YjU5YTQ4NjQwZWRiYzI1LjFlMDFkYjFiYTJlOTQ1Y2IuOTEwNWQ4OWM3ZjgwMDAwMC5hOWNjN2NhNTdmODAwMDAwCiAgICAgN2YwNjFjZjIzZjk3YmVmMC42YjQzNzM4YTk2ZDgxZmYxLjdjYjcyMjc2NWM3OTY3OTkuNDNmZjVhOGMyOGQ5YjgwNwogICAgIDg1Nzg5NjgwM2IwOWYwYmIKIAotVlBFWFRSQl9HdG9FXzEyOF8weDAocmVnKQorVk1VTFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGRhNzkxNzJhOTM2NTBhNjUuN2JhMmFmYTkzYjU3N2UzOC5lYjM2ZDIwYmI5NmQ0MTJiLjY2ZTZjYjY5YWVmYmVlN2UKICAgICBhMDUwZDlmOGNiNzg0MWIwLmMwYjA3NTk4NjE5YjNjZTcuNmU5OTM0M2EyZGIzMjJmMC5lYmUyMjhkZjViYmJkNjc0CkBAIC0xNjE1MiwxMiArMTYxNTIsMTIgQEAKICAgICBlY2FiMTBhZTRkZjRmOWRiLjk2NTI4OGNlOThlMGE2MjguZThkYWYxNGY3ZTgzMTNjYy4zNjZkZjAwMDM4MjdiNzQyCiAgICAgYjU5NDUyODRhMGViMjk3MQogICBhZnRlcgotICAgIGRhNzkxNzJhOTM2NTBhNjUuN2JhMmFmYTkzYjU3N2UzOC5lYjM2ZDIwYmI5NmQ0MTJiLjY2ZTZjYjY5YWVmYmVlN2UKKyAgICA5MzIzMDllZDBjYzk4OTBhLmFkMmU1NTgzZWU5MTVjNTEuN2RkYTg5MzU4MDA4MDBkZi43ZjgwMDAwMDlkMTFlODRkCiAgICAgYTA1MGQ5ZjhjYjc4NDFiMC5jMGIwNzU5ODYxOWIzY2U3LjZlOTkzNDNhMmRiMzIyZjAuZWJlMjI4ZGY1YmJiZDY3NAogICAgIDMyNDdkODU1ODBjZmQyNDkuMmJmY2VhYWJjYzZmYjYyOC40ZWI2OTU4MjkwMzZmZmVjLmU3NzZiNmMyODBjNmRhYTcKICAgICBlY2FiMTBhZTRkZjRmOWRiLjk2NTI4OGNlOThlMGE2MjguZThkYWYxNGY3ZTgzMTNjYy4zNjZkZjAwMDM4MjdiNzQyCi0gICAgMDAwMDAwMDAwMDAwMDA3NAotVlBFWFRSQl9HdG9FXzEyOF8weDAobWVtKQorICAgIGI1OTQ1Mjg0YTBlYjI5NzEKK1ZNVUxQU18yNTYobWVtKQogICBiZWZvcmUKICAgICAzZWI3NTgzYWQzMWRlYjYxLjJhYzg3ZTZkY2Y3NmYyMTMuZGU3ZGNkZWVlMmY5YzgxMi45ODUyNDUwZTkyMjU5YzNjCiAgICAgYWVhMjdmMGVlZWM5YmEzZS40N2VhMWRmZmExZGVmODlkLmRmNGIzNGY1YzZjN2Q5MTMuYmI2NzhiMjk2OGE4ZDRlNwpAQCAtMTYxNjUsMTMgKzE2MTY1LDEzIEBACiAgICAgYjNmZjFjYzA0OWMxNmY2ZS45MzZjZGU0ZGE3OTUxZTU0LjdjZmI1ODZjYzlhZmI4MDkuYzVhMGUyMjdjYzgzNDNhMAogICAgIDY1NWFlYmUxOTJmMmYyMDYKICAgYWZ0ZXIKLSAgICAzZWI3NTgzYWQzMWRlYjYxLjJhYzg3ZTZkY2Y3NmYyMTMuZGU3ZGNkZWVlMmY5YzgxMi45ODUyNDUwZTkyMjU5Y2U3CisgICAgM2ViNzU4M2FkMzFkZWI2MS4yYWM4N2U2ZGNmNzZmMjEzLmRlN2RjZGVlZTJmOWM4MTIuOTg1MjQ1MGU5MjI1OWMzYwogICAgIGFlYTI3ZjBlZWVjOWJhM2UuNDdlYTFkZmZhMWRlZjg5ZC5kZjRiMzRmNWM2YzdkOTEzLmJiNjc4YjI5NjhhOGQ0ZTcKLSAgICBlMTIxNDJlYzBjZmM1MjM0LmExNWNlOWQxNjBiYTQ5MjQuNzU4NjM5ZDE1ZjU1OTY1Ny5hYjY4YzEwZDlkOTlmNzdhCisgICAgYWRlOGMxYTc3ZjgwMDAwMC4zMzM3NWIwZTMxZDcxNWJlLjdlNDk3NmNjNmE0MmZlNTMuMTQzZTJlOWRiYjVhNzA4NAogICAgIGIzZmYxY2MwNDljMTZmNmUuOTM2Y2RlNGRhNzk1MWU1NC43Y2ZiNTg2Y2M5YWZiODA5LmM1YTBlMjI3Y2M4MzQzYTAKICAgICA2NTVhZWJlMTkyZjJmMjA2CiAKLVZQRVhUUkJfR3RvRV8xMjhfMHgwKHJlZykKK1ZNVUxQU18yNTYocmVnKQogICBiZWZvcmUKICAgICBlN2UzZDZhOThiNzM0MTU4LjAwMGE4Yzc2YzIyNGNjMTguNzg2NGY4ZTExMmZjYjZkYi5kMDc2MGViNDIxZTJmZTU2CiAgICAgYTc4N2ExZWE1MTkxNmM0MS5hNDBjMGJmYTkzMzIyNjVmLmFlOTEzNGY3M2U3YTRiNjMuNGRjM2Q2OTQ4MmY5MjI2OQpAQCAtMTYxNzksMTIgKzE2MTc5LDEyIEBACiAgICAgNTE1MGM0ODZiYWQ1NDQ4YS42MTI4MmExZGFiN2NjMTczLjc5YmFmZjVlNDhlYzVmMjcuMzIwMjhjY2NkMTA0Zjc5NAogICAgIDUyOGQ3MmZjZjcxMDFmMDMKICAgYWZ0ZXIKLSAgICBlN2UzZDZhOThiNzM0MTU4LjAwMGE4Yzc2YzIyNGNjMTguNzg2NGY4ZTExMmZjYjZkYi5kMDc2MGViNDIxZTJmZTU2CisgICAgODAwMDAwMDA5NWY3NGZiMi5lMDY1ZGQwZjJiYWFhNmIxLjAwMDZjYTcxYzY5N2E1YTUuZGUwNTNlM2Y4MDAwMDAwMAogICAgIGE3ODdhMWVhNTE5MTZjNDEuYTQwYzBiZmE5MzMyMjY1Zi5hZTkxMzRmNzNlN2E0YjYzLjRkYzNkNjk0ODJmOTIyNjkKICAgICAwMTkyNDcwZjgzZDlhZTZlLjdiZDIxNzM5ZDdmNTM5NmYuOGYzZjhkZmRjNzliMWE5OC5jZmFlMmNmODA5MDBlMTZmCiAgICAgNTE1MGM0ODZiYWQ1NDQ4YS42MTI4MmExZGFiN2NjMTczLjc5YmFmZjVlNDhlYzVmMjcuMzIwMjhjY2NkMTA0Zjc5NAotICAgIDAwMDAwMDAwMDAwMDAwNjkKLVZQRVhUUkJfR3RvRV8xMjhfMHgwKG1lbSkKKyAgICA1MjhkNzJmY2Y3MTAxZjAzCitWTVVMUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMGIxOTViNzQ5NjMwMTZlOS5mMzBkMTViYTk1MTM2YTQyLjMxZGFjMjk0MmFkMDc5OTguYzY0ZTg3ODY1ZGY4NTViYwogICAgIDM5NzNjMjIwY2I3MTk4NzEuNDMxNDM1MThhZDFmNWI0Mi5jOWIzNWI4OTcwZmYxZTBhLmQ0NDYxZmUxYTM0YjM5MDIKQEAgLTE2MTkyLDEzICsxNjE5MiwxMyBAQAogICAgIDYzYzFmYWM1NjQ4MzJjMWEuNWQzNGQyZmQwYWNlOTJjOC5iZTBlN2M5Y2MzMWMxZTgzLjlmOTY3NGUxMzFmN2JiNTQKICAgICAxNDg1Mjg1ZGIwNjlkMGI3CiAgIGFmdGVyCi0gICAgMGIxOTViNzQ5NjMwMTZlOS5mMzBkMTViYTk1MTM2YTQyLjMxZGFjMjk0MmFkMDc5OTguYzY0ZTg3ODY1ZGY4NTUwMgorICAgIDBiMTk1Yjc0OTYzMDE2ZTkuZjMwZDE1YmE5NTEzNmE0Mi4zMWRhYzI5NDJhZDA3OTk4LmM2NGU4Nzg2NWRmODU1YmMKICAgICAzOTczYzIyMGNiNzE5ODcxLjQzMTQzNTE4YWQxZjViNDIuYzliMzViODk3MGZmMWUwYS5kNDQ2MWZlMWEzNGIzOTAyCi0gICAgYjc2NzIzZWRiMWRlNjBjOC45ZGIyMjAwYWEwODQ1NTM1LjA0ODE2ZmU4OWExNTZjZjQuZmRmMGM1ZGJiNjcxNDdhNgorICAgIDA1MTIwNjFhMjIyNjJlNmQuZjZhMzViYTUwMmI3ODcxOC5iYzE5NDQ0NjVjNGZjMTk1LjViMWZkNjhhYzFjNTIzNDkKICAgICA2M2MxZmFjNTY0ODMyYzFhLjVkMzRkMmZkMGFjZTkyYzguYmUwZTdjOWNjMzFjMWU4My45Zjk2NzRlMTMxZjdiYjU0CiAgICAgMTQ4NTI4NWRiMDY5ZDBiNwogCi1WUEVYVFJCX0d0b0VfMTI4XzB4MShyZWcpCitWRElWUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYjkwOWRlYmNkMDUxYzM3Yi4xODRjYzQ5NjAxNmRiNjkyLmRmZTQ0NzVkODY4OTRlYTYuZDMyN2ZkOTMwODIyZjFlMgogICAgIGViNmU5MDZiMmMzZGQwNGUuYjFkNmZiNGFhNGE3YmE1ZC43ZjBlN2M5N2IxNDJjNzdjLjFlOTg2ZWI5ODQzM2ExM2UKQEAgLTE2MjA2LDEyICsxNjIwNiwxMiBAQAogICAgIDYxMGFkZDY1MGE0ZjI3Y2IuMDQxMmE2MTA2YTNjMjQ5YS44ODA1MTI0NTgxZGNkYmJmLmNiYjIxMTNkOTNhMzg3OWMKICAgICBlM2YyM2I3NDVlMWEzNWY1CiAgIGFmdGVyCi0gICAgYjkwOWRlYmNkMDUxYzM3Yi4xODRjYzQ5NjAxNmRiNjkyLmRmZTQ0NzVkODY4OTRlYTYuZDMyN2ZkOTMwODIyZjFlMgorICAgIGZmODAwMDAwMGEwMzMwOTAuZTUyMmI2ZDU4MDAwMzg4Mi5mZjgwMDAwMGNhM2M5MDg3LjAwMDAwMDAwODAwMDAwMDAKICAgICBlYjZlOTA2YjJjM2RkMDRlLmIxZDZmYjRhYTRhN2JhNWQuN2YwZTdjOTdiMTQyYzc3Yy4xZTk4NmViOTg0MzNhMTNlCiAgICAgMDRmZjNjZDU2MWI5MzJkOS4wYzI5MWRjZjY4M2RmNmE2Ljk5MDA2YjE2MjY4NDM3ZjYuN2QyZDRiZjg1NDVhZTljMwogICAgIDYxMGFkZDY1MGE0ZjI3Y2IuMDQxMmE2MTA2YTNjMjQ5YS44ODA1MTI0NTgxZGNkYmJmLmNiYjIxMTNkOTNhMzg3OWMKLSAgICAwMDAwMDAwMDAwMDAwMGExCi1WUEVYVFJCX0d0b0VfMTI4XzB4MShtZW0pCisgICAgZTNmMjNiNzQ1ZTFhMzVmNQorVkRJVlBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGEzYmI0NThhZDBjY2FmZmMuNWVkOTcwODljNDhkZTljZS43NDVkMTBmOWM0YWYwMTY0LmFhNjg2ZDkyNWZkNWVlODMKICAgICBlNWQ3YWI2OTA2YzRiM2RiLjU4YjllZmFjMmFmZmI0OGUuM2FkNmQ5NzY5NWEyNDgzMS41YTc2NzY2ODViZmJhZGYwCkBAIC0xNjIxOSwxMyArMTYyMTksMTMgQEAKICAgICA2MzNiN2MzNzJjYjc0NGQyLmFlZGNhNjlmNmNhYzU5ZjkuMzQ4MTc0ZGMwNjNhMDg4My5kM2MzODc1ZjIwZmYxZjZmCiAgICAgNTU5YTg2NTgyMGY2NDlkYQogICBhZnRlcgotICAgIGEzYmI0NThhZDBjY2FmZmMuNWVkOTcwODljNDhkZTljZS43NDVkMTBmOWM0YWYwMTY0LmFhNjg2ZDkyNWZkNWVlYWQKKyAgICBhM2JiNDU4YWQwY2NhZmZjLjVlZDk3MDg5YzQ4ZGU5Y2UuNzQ1ZDEwZjljNGFmMDE2NC5hYTY4NmQ5MjVmZDVlZTgzCiAgICAgZTVkN2FiNjkwNmM0YjNkYi41OGI5ZWZhYzJhZmZiNDhlLjNhZDZkOTc2OTVhMjQ4MzEuNWE3Njc2Njg1YmZiYWRmMAotICAgIDg3MTNlOWZmMWIwZWZiYmUuYTlmNjU4M2FkODJmYzViOS4zMDQ4N2I3M2Y3MjJiNzJkLmYzN2IyYjMzMTJkYTU0YjAKKyAgICA3ZjgwMDAwMDgwMDAwMDAyLjM5NWFlOGVkYTVlNmEyYmYuMDVmOGNjZmUxMDZkNjM1NS5lZjg3YmE5YjNiOTY5NWQ3CiAgICAgNjMzYjdjMzcyY2I3NDRkMi5hZWRjYTY5ZjZjYWM1OWY5LjM0ODE3NGRjMDYzYTA4ODMuZDNjMzg3NWYyMGZmMWY2ZgogICAgIDU1OWE4NjU4MjBmNjQ5ZGEKIAotVlBFWFRSQl9HdG9FXzEyOF8weDEocmVnKQorVkRJVlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGQ0NGMyNDhhYWU0OTEwOWQuNTcxYmRmZmQ1NGNhNDk0My5jM2I3ZDU0NzdmZmZhOWZhLjIwNGI0MDlkZGZmNmY3NjAKICAgICBhZTI0NWU2MjY3ODZhZDYzLjNkN2U4ZTNkYWY1NGM4M2MuNDRkMmUyOWZhZmI2ZjQ2OS5kMjczNTlhMzlkNjM0MmYwCkBAIC0xNjIzMywxMiArMTYyMzMsMTIgQEAKICAgICBkZjc5OTJiMGM4ZWM2MGFiLjUzMDFjMWRiNzFmYTFlNzkuZmFmYzgyMGFkNTdkNjY0MC5mNDBkNjcyYTNhN2VkN2Q2CiAgICAgMWMxNzUzODM1MTQ0OTk4NgogICBhZnRlcgotICAgIGQ0NGMyNDhhYWU0OTEwOWQuNTcxYmRmZmQ1NGNhNDk0My5jM2I3ZDU0NzdmZmZhOWZhLjIwNGI0MDlkZGZmNmY3NjAKKyAgICBiMDJmZWQ1NWMwYmFmZjIxLjg5YjcwNzEwOTQ3M2JkYjUuZjZkNzQ2ZTI1NmQ0NzM5ZS5lZDFkZWMxMzgwMTlkYWRhCiAgICAgYWUyNDVlNjI2Nzg2YWQ2My4zZDdlOGUzZGFmNTRjODNjLjQ0ZDJlMjlmYWZiNmY0NjkuZDI3MzU5YTM5ZDYzNDJmMAogICAgIDNkNmYyZTRhZTYzODVmZDkuZjMzMjA1ZTM1YTVmN2JlYS44ZDdhYzcxMTk4NWM3NGYyLjI0YzUzZGQ4NWQ4Y2EzNWUKICAgICBkZjc5OTJiMGM4ZWM2MGFiLjUzMDFjMWRiNzFmYTFlNzkuZmFmYzgyMGFkNTdkNjY0MC5mNDBkNjcyYTNhN2VkN2Q2Ci0gICAgMDAwMDAwMDAwMDAwMDA0MgotVlBFWFRSQl9HdG9FXzEyOF8weDEobWVtKQorICAgIDFjMTc1MzgzNTE0NDk5ODYKK1ZESVZQU18yNTYobWVtKQogICBiZWZvcmUKICAgICA3OWFlN2RkMWJkZWFhNzk4LmVlOGU4NWZlYTgyZGVkODQuM2FiODNkMTEwZjJlNmYxNC5lN2EyMGVmNzAyYTYwNmZmCiAgICAgZThhMDYyZmY5YjdjYmIzOC5jOGZhMDRhMjIyODc0MjEwLjg1MjNmNTcxNTAwOTI4ZTcuYjBiOTY3NDNiYzYyOGZkZApAQCAtMTYyNDYsMTMgKzE2MjQ2LDEzIEBACiAgICAgNjdjMDRhYWIxYTk2ZTdkNS40ODA2OTI5OTU3YjgzM2Y1LmIyNDUwOTYwMmRlMmM1ZTguNDY2OTcyYTc0NWM0NGZhMAogICAgIGNiOWExYjk4NGM4M2ZkZGYKICAgYWZ0ZXIKLSAgICA3OWFlN2RkMWJkZWFhNzk4LmVlOGU4NWZlYTgyZGVkODQuM2FiODNkMTEwZjJlNmYxNC5lN2EyMGVmNzAyYTYwNjhmCisgICAgNzlhZTdkZDFiZGVhYTc5OC5lZThlODVmZWE4MmRlZDg0LjNhYjgzZDExMGYyZTZmMTQuZTdhMjBlZjcwMmE2MDZmZgogICAgIGU4YTA2MmZmOWI3Y2JiMzguYzhmYTA0YTIyMjg3NDIxMC44NTIzZjU3MTUwMDkyOGU3LmIwYjk2NzQzYmM2MjhmZGQKLSAgICA0M2I3N2RmOTA2MDc5MTkzLmM3MDkwOTA3ZDM4NzlhZmQuMGUwZTY1ZTg1MTk2MDYxZi5iMThjOGE1OTllM2UzZTg0CisgICAgYWU2YjRlN2UxZDA5ZGM0YS4xOWUwOGE3MGI5YzcxNTNlLjg5ZTNkMjM5N2Y4MDAwMDAuMDg5MjcwNGZmOTJlYWI2ZAogICAgIDY3YzA0YWFiMWE5NmU3ZDUuNDgwNjkyOTk1N2I4MzNmNS5iMjQ1MDk2MDJkZTJjNWU4LjQ2Njk3MmE3NDVjNDRmYTAKICAgICBjYjlhMWI5ODRjODNmZGRmCiAKLVZQRVhUUkJfR3RvRV8xMjhfMHgxKHJlZykKK1ZESVZQU18yNTYocmVnKQogICBiZWZvcmUKICAgICA5YjZkODE5ODUwMDQ4NmVhLjMwODc0NTAxZjQzNjc3MjkuYTgzZjlhYzQ0OWE2NDdhNC40ZDkzNWVjNzAxZjcyMDZlCiAgICAgMTQyY2EwMTNlZGQ1MjQ3MC43YWQ4ZWJlN2IwZjJmZWJjLjQxZmUxZWY0NDZkZTEyYjcuYmJjNWRmMDhlOGU0ZDRkYwpAQCAtMTYyNjAsMTIgKzE2MjYwLDEyIEBACiAgICAgNmVhMGZiMmI1ZTk1OTE5Ny4wMjQ3MjQxNDNiZWZlMDRkLjkxNDE4NjEzY2U1OWMwYjguODEwNjU1Yzc2MTZmMzYyMgogICAgIDkwYWM0MzFlMmIyNjVjNTEKICAgYWZ0ZXIKLSAgICA5YjZkODE5ODUwMDQ4NmVhLjMwODc0NTAxZjQzNjc3MjkuYTgzZjlhYzQ0OWE2NDdhNC40ZDkzNWVjNzAxZjcyMDZlCisgICAgYzI4NjViMjU2ZmQzNWUyNy43ZjgwMDAwMDg2OTEzMTQ4LjEwZTFiYzE3OWM3MTEzYjcuMjE5NmJiMTVmZmYyOWQ1ZQogICAgIDE0MmNhMDEzZWRkNTI0NzAuN2FkOGViZTdiMGYyZmViYy40MWZlMWVmNDQ2ZGUxMmI3LmJiYzVkZjA4ZThlNGQ0ZGMKICAgICA5MTI0NzU3NmJkODExMzFiLjIyN2ViNjRhNjlkNjM4YjkuNzA5MDE4OTVlOWViZDFkYS5kOWE4MDgwZWZmYjI5ZDVlCiAgICAgNmVhMGZiMmI1ZTk1OTE5Ny4wMjQ3MjQxNDNiZWZlMDRkLjkxNDE4NjEzY2U1OWMwYjguODEwNjU1Yzc2MTZmMzYyMgotICAgIDAwMDAwMDAwMDAwMDAwZDQKLVZQRVhUUkJfR3RvRV8xMjhfMHgxKG1lbSkKKyAgICA5MGFjNDMxZTJiMjY1YzUxCitWRElWUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZTI2NTRjZmY3OGU0Y2IxYS4wNmVlMmU5ZjZjOWJkODkxLmY3ZmRiMDMzNDM0OGIzYTQuMDE1YzYzZGI5MmI1MWJmZQogICAgIDUzZmZlZTU2NjViNDNmYTcuYjc1OTBhM2Y4MjIyMjViNS5kZDZkZDc5MTlkZWQ2ZGU5LjFhMmZhYjU3ZDA4YTFlNTcKQEAgLTE2MjczLDEzICsxNjI3MywxMyBAQAogICAgIDAyMDFlYjE3OGNiYjI0YmYuZDBiNGFlYWYzOGRjYmYyOS5lY2FiZTJiZmI0NGM4NWVmLmJhMjk2ZDFmMmRkMDBhZjUKICAgICBmOWU4ZGY0MzgyNTk2YjkxCiAgIGFmdGVyCi0gICAgZTI2NTRjZmY3OGU0Y2IxYS4wNmVlMmU5ZjZjOWJkODkxLmY3ZmRiMDMzNDM0OGIzYTQuMDE1YzYzZGI5MmI1MWIxZQorICAgIGUyNjU0Y2ZmNzhlNGNiMWEuMDZlZTJlOWY2YzliZDg5MS5mN2ZkYjAzMzQzNDhiM2E0LjAxNWM2M2RiOTJiNTFiZmUKICAgICA1M2ZmZWU1NjY1YjQzZmE3LmI3NTkwYTNmODIyMjI1YjUuZGQ2ZGQ3OTE5ZGVkNmRlOS4xYTJmYWI1N2QwOGExZTU3Ci0gICAgYmY0NGE0MTAwZGEyNzMyNC5kYzJjOGM3NjNkYjNiM2FlLjkwNjMxMzFjNjNlYWM5NDkuMzkwNDVhZjUyNTY0MDQ3MAorICAgIGIxMGVkZDkxMmM0OWFlYzIuZWZlOTQ2YmQ4MDAwMDAwMC4yNGYwMDI2NzlhMTc2YzZhLjU4NGMwZGFiN2Q0MzNiNjQKICAgICAwMjAxZWIxNzhjYmIyNGJmLmQwYjRhZWFmMzhkY2JmMjkuZWNhYmUyYmZiNDRjODVlZi5iYTI5NmQxZjJkZDAwYWY1CiAgICAgZjllOGRmNDM4MjU5NmI5MQogCi1WUEVYVFJCX0d0b0VfMTI4XzB4MihyZWcpCitWUENNUEdUUV8xMjgocmVnKQogICBiZWZvcmUKICAgICA1MjhlYWNjY2MzOGM2NWYxLmY4MDMzZDU4ZmYwYTBlYTEuZjEzZDZlNTgwZjI4ODVkMi5jZDExYmY2NmFhMWY1YTA4CiAgICAgMjE2NmQwMjY4OWYzMzJjMC43ZDEzMThjMDgyOWJlZGY5Ljk5MTNjN2RjNWYyNDQxNTQuMGY2MDI2ZmQ2MTZkMDdjMApAQCAtMTYyODcsMTIgKzE2Mjg3LDEyIEBACiAgICAgOTFlMDBlZmQxYTkzMzc1ZS5hMzk1NTdiMTI1YjU3OGI1LmYyZDUzNTI1ZDk1OThhOTUuMjVlZDgzYWI4NGIwZDViYgogICAgIGIyYzI3MTlhMjdiYjZkNTYKICAgYWZ0ZXIKLSAgICA1MjhlYWNjY2MzOGM2NWYxLmY4MDMzZDU4ZmYwYTBlYTEuZjEzZDZlNTgwZjI4ODVkMi5jZDExYmY2NmFhMWY1YTA4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZgogICAgIDIxNjZkMDI2ODlmMzMyYzAuN2QxMzE4YzA4MjliZWRmOS45OTEzYzdkYzVmMjQ0MTU0LjBmNjAyNmZkNjE2ZDA3YzAKICAgICBjMmJlNDhiZDczMWMwZmFiLjZjMDBmNzNhMzA3YjdjZjEuMjY4MmI2YTdjNDViMmY1Yi44ZDY2OTQ3MGY2NDQ0NzQyCiAgICAgOTFlMDBlZmQxYTkzMzc1ZS5hMzk1NTdiMTI1YjU3OGI1LmYyZDUzNTI1ZDk1OThhOTUuMjVlZDgzYWI4NGIwZDViYgotICAgIDAwMDAwMDAwMDAwMDAwNmQKLVZQRVhUUkJfR3RvRV8xMjhfMHgyKG1lbSkKKyAgICBiMmMyNzE5YTI3YmI2ZDU2CitWUENNUEdUUV8xMjgobWVtKQogICBiZWZvcmUKICAgICAxMGIxZDkyYWZkNzNjZDQwLmVhMWEyMDUyMWNlM2U3ODQuZmQ5ZGIyMTM3ZTU1OWQ3Mi41YjU5NDJjMjNhYWI4ZmFjCiAgICAgMWI4NjM3NDUxZmU0YWZhNC4yOWI2NzkyODE1OTg1YmNhLjU2ZTY4NjRiNTY2OGE2NTQuYmI1YmQ4ZWE4NGRjNzk0YwpAQCAtMTYzMDAsMTMgKzE2MzAwLDEzIEBACiAgICAgYTcxMWM3ZDBiZDFkZWM4ZC5jOTQ3ZjEwODVhNjI3ZTY0Ljc0NjY4NmVkZjYxNDU3MzUuZDQwNDkwOGM0MTBjZWZkYQogICAgIDQ0NDNhOWRlZWMyM2YzMWYKICAgYWZ0ZXIKLSAgICAxMGIxZDkyYWZkNzNjZDQwLmVhMWEyMDUyMWNlM2U3ODQuZmQ5ZGIyMTM3ZTU1OWQ3Mi41YjU5NDJjMjNhYWI4ZmRjCisgICAgMTBiMWQ5MmFmZDczY2Q0MC5lYTFhMjA1MjFjZTNlNzg0LmZkOWRiMjEzN2U1NTlkNzIuNWI1OTQyYzIzYWFiOGZhYwogICAgIDFiODYzNzQ1MWZlNGFmYTQuMjliNjc5MjgxNTk4NWJjYS41NmU2ODY0YjU2NjhhNjU0LmJiNWJkOGVhODRkYzc5NGMKLSAgICBhZTBjMDhkOWFiMThkMGIwLmFhMDExNmVjYTAzZWNmZGIuOGEzYTRlNDVjYWY5NTA4Ni42ZjI1ZjMwYTUyNzg4NTIyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuMDAwMDAwMDAwMDAwMDAwMAogICAgIGE3MTFjN2QwYmQxZGVjOGQuYzk0N2YxMDg1YTYyN2U2NC43NDY2ODZlZGY2MTQ1NzM1LmQ0MDQ5MDhjNDEwY2VmZGEKICAgICA0NDQzYTlkZWVjMjNmMzFmCiAKLVZQRVhUUkJfR3RvRV8xMjhfMHgyKHJlZykKK1ZQQ01QR1RRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDFjMzAzYzZhZjA0OWNkOWUuZTE1ZmYwMTg3MGZmYmU2YS5lMWQzMDhlYWRlOGZhNTEwLmYyMzZhYTJmZjRjNjc2OGQKICAgICBiOTE2NDQ5ZWU4MGJiODAyLjM3YzNmZjljZTBjODAzNzEuNTBmMzU2ZmRjODUyODA4ZC5kZjc1MzdmOGUzMWE2YmI5CkBAIC0xNjMxNCwxMiArMTYzMTQsMTIgQEAKICAgICBhZGZiYTRhYjI2OTBiMzJjLmFiZmRjMDA4NmE0NWQ2YWUuYTAxYjg4NjU0MGM3NDFhNC43NTc0NzljYmZkZDljMTNmCiAgICAgZDZjYzI2YWQ2MjVjOWNmMQogICBhZnRlcgotICAgIDFjMzAzYzZhZjA0OWNkOWUuZTE1ZmYwMTg3MGZmYmU2YS5lMWQzMDhlYWRlOGZhNTEwLmYyMzZhYTJmZjRjNjc2OGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgYjkxNjQ0OWVlODBiYjgwMi4zN2MzZmY5Y2UwYzgwMzcxLjUwZjM1NmZkYzg1MjgwOGQuZGY3NTM3ZjhlMzFhNmJiOQogICAgIDc1NDBiZWU1NzFmNGYxZjguODcwOTcwNDgyYTg2NzdjZS43MWYxZDdhY2I1MzY0Yjg0LjE2ZjFhODMyZGMxY2YwZTYKICAgICBhZGZiYTRhYjI2OTBiMzJjLmFiZmRjMDA4NmE0NWQ2YWUuYTAxYjg4NjU0MGM3NDFhNC43NTc0NzljYmZkZDljMTNmCi0gICAgMDAwMDAwMDAwMDAwMDAxYQotVlBFWFRSQl9HdG9FXzEyOF8weDIobWVtKQorICAgIGQ2Y2MyNmFkNjI1YzljZjEKK1ZQQ01QR1RRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDE3YzMyYmM2MjZiMTNiMjcuYmQ5M2Y0NWNhNDZjM2M0OS44MTZhNmFjOGJhMTBkYjNkLjM4YmI2MzkzMDY5MTlmOTcKICAgICAxMjI1MDUwMDY2ZTU1YjBlLjAxNTRhOTY0ODYxM2M2ZmMuZTMxZWVhNzQzOWYzNDNhNi45NzFkNjZhMmEzMjFhMTA5CkBAIC0xNjMyNywxMyArMTYzMjcsMTMgQEAKICAgICBhYTVmMjU4Y2M3MTgwZDllLjk1ODAzMzI5ZThmM2NmZDIuYmY4NjVkNDEyZTMyMmJiOC4xNjVjZDIxNGNmYzE3ZjFkCiAgICAgZWZjZjMyNGU5N2U5ZDQxNgogICBhZnRlcgotICAgIDE3YzMyYmM2MjZiMTNiMjcuYmQ5M2Y0NWNhNDZjM2M0OS44MTZhNmFjOGJhMTBkYjNkLjM4YmI2MzkzMDY5MTlmMjEKKyAgICAxN2MzMmJjNjI2YjEzYjI3LmJkOTNmNDVjYTQ2YzNjNDkuODE2YTZhYzhiYTEwZGIzZC4zOGJiNjM5MzA2OTE5Zjk3CiAgICAgMTIyNTA1MDA2NmU1NWIwZS4wMTU0YTk2NDg2MTNjNmZjLmUzMWVlYTc0MzlmMzQzYTYuOTcxZDY2YTJhMzIxYTEwOQotICAgIGE1YzAyZjQ5M2QwM2I3ZDIuZDU4OWJmMmY2OTExOGVmMC5hZmUzYmNmODAxZmFjYTE2LjE3OGY4Y2ZlYjEwMjgyYTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi4wMDAwMDAwMDAwMDAwMDAwCiAgICAgYWE1ZjI1OGNjNzE4MGQ5ZS45NTgwMzMyOWU4ZjNjZmQyLmJmODY1ZDQxMmUzMjJiYjguMTY1Y2QyMTRjZmMxN2YxZAogICAgIGVmY2YzMjRlOTdlOWQ0MTYKIAotVlBFWFRSQl9HdG9FXzEyOF8weDIocmVnKQorVlBDTVBHVFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZmQzNmFhMTlhNTA2YmQzZi5mZmNkNjNiNTIxMmYxNzlmLjlkODNmZmJmOWY0NGM2NGUuZjFkMzQ3MzlkZGE2MjNiYQogICAgIDllZGIzNWUyOTVhNTc1NDQuN2VkODY2YjA2NzU0OTEwMS40OWRmMjE1YjJiOTFhZjBmLjFmOTZmOGNlMjk2MzZlNDUKQEAgLTE2MzQxLDEyICsxNjM0MSwxMiBAQAogICAgIDA0MTE3NDFhOGU5NjQ1OGYuNmVmMGE4Y2QyNGY5Yzk5NS5mZGQyNTU1YTMwNGM0NjEyLmUzYWQ5ZDdiMGFlNWVjYWMKICAgICAzMDlhODg2Y2Q2YzI5N2UwCiAgIGFmdGVyCi0gICAgZmQzNmFhMTlhNTA2YmQzZi5mZmNkNjNiNTIxMmYxNzlmLjlkODNmZmJmOWY0NGM2NGUuZjFkMzQ3MzlkZGE2MjNiYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLjAwMDAwMDAwMDAwMDAwMDAKICAgICA5ZWRiMzVlMjk1YTU3NTQ0LjdlZDg2NmIwNjc1NDkxMDEuNDlkZjIxNWIyYjkxYWYwZi4xZjk2ZjhjZTI5NjM2ZTQ1CiAgICAgMmMwYmNmMTQwNTUxMzlkMC4wNDRhYTk2YWI0OTMzOWVmLmY1ZTA5NDZiMjc2NGM2YzIuMjc5YmViZWIyZjczYzg4NwogICAgIDA0MTE3NDFhOGU5NjQ1OGYuNmVmMGE4Y2QyNGY5Yzk5NS5mZGQyNTU1YTMwNGM0NjEyLmUzYWQ5ZDdiMGFlNWVjYWMKLSAgICAwMDAwMDAwMDAwMDAwMDYzCi1WUEVYVFJCX0d0b0VfMTI4XzB4MihtZW0pCisgICAgMzA5YTg4NmNkNmMyOTdlMAorVlBDTVBHVFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZWEyYzJhYTliMDE4ODU0ZS44MzNiMjE2MmNlMDFkNDJmLjk2OTVkZmM2ZDQ5MWZlMjEuYmQwMTVlOTNlMmQyNmNhYwogICAgIGVlMzBmZTFlYjRmMjcxMjIuMDNkNGQxNTc2MTFkMjM1OS41OTA3Y2E0MmRmNjg5NGJkLjkxYjlhZDg0ZDg4NDc0M2MKQEAgLTE2MzU0LDEzICsxNjM1NCwxMyBAQAogICAgIDNmYmUyZDYxYTg2MzM2YWYuN2E4MTJhZjhlZTk5ZjEwMi4yMDdlYWU2Zjc4MDBkMWQ2LmU1ZjIwYTNiMDE5OTE5ZWMKICAgICAxYzBjMTBkOTZjMTUyZTY0CiAgIGFmdGVyCi0gICAgZWEyYzJhYTliMDE4ODU0ZS44MzNiMjE2MmNlMDFkNDJmLjk2OTVkZmM2ZDQ5MWZlMjEuYmQwMTVlOTNlMmQyNmM4NAorICAgIGVhMmMyYWE5YjAxODg1NGUuODMzYjIxNjJjZTAxZDQyZi45Njk1ZGZjNmQ0OTFmZTIxLmJkMDE1ZTkzZTJkMjZjYWMKICAgICBlZTMwZmUxZWI0ZjI3MTIyLjAzZDRkMTU3NjExZDIzNTkuNTkwN2NhNDJkZjY4OTRiZC45MWI5YWQ4NGQ4ODQ3NDNjCi0gICAgMTY3MjgwYjdmZDVkMTk4YS5lMTI3ODA2NWUyNzY2ZWJjLjkzMTFlNjJiNjI4OTQ2OTUuZDU0NTNkOThhZWVkOWE2ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLjAwMDAwMDAwMDAwMDAwMDAKICAgICAzZmJlMmQ2MWE4NjMzNmFmLjdhODEyYWY4ZWU5OWYxMDIuMjA3ZWFlNmY3ODAwZDFkNi5lNWYyMGEzYjAxOTkxOWVjCiAgICAgMWMwYzEwZDk2YzE1MmU2NAogCi1WUEVYVFJCX0d0b0VfMTI4XzB4MyhyZWcpCitWUEVYVFJRXzEyOF8weDAocmVnKQogICBiZWZvcmUKICAgICBkOGRmNGNkZjhjZWMxNDgyLjQ1ZGY4MDA2ZDAxMzg3YzAuMjgyZWNjN2MxZjExZTdkOC5kZDFiOWVmOTNlZDlmMWFjCiAgICAgNzRiN2I5YjdmY2FiMDlmMi4wNGEzZjQ5MzkxNzZjNmU3LjQ4N2E2MTVlMTQ2YThkZTkuYTRiNDMyYjVjZjIxNjE0MgpAQCAtMTYzNzIsOCArMTYzNzIsOCBAQAogICAgIDc0YjdiOWI3ZmNhYjA5ZjIuMDRhM2Y0OTM5MTc2YzZlNy40ODdhNjE1ZTE0NmE4ZGU5LmE0YjQzMmI1Y2YyMTYxNDIKICAgICA0Y2UwNTNjZTU5ZGQ0NzVmLjU4ZDQwOGY1MDg5YWIxNTAuMzZiMWU0MDg2NzMxMWZlMi41MjE1ZTc4ZjQ4ZTNkZWM1CiAgICAgYmJhNTE2OTEzZTBlMGI3NS4xZDNmMzUxNjUwOGEwMTI5LjRmMWU1NGU3YjRmMWQ4NmUuYzMwYTM3NzNjNDJjMjQ2MAotICAgIDAwMDAwMDAwMDAwMDAwY2YKLVZQRVhUUkJfR3RvRV8xMjhfMHgzKG1lbSkKKyAgICBkZDFiOWVmOTNlZDlmMWFjCitWUEVYVFJRXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICA1ZWRmOWQwOTM3ODBmYTkxLjFmNTRmZjZhNDdjYjkwZTIuMmZiMGY5ZTQ4NjUzNzU5Yi5lZDBmYWE2ODk4MzZmNjNhCiAgICAgNDA1N2FiOTQ2NWE0MDI3ZS5kMjM3MDhjNzExOWYxNDUwLjZhZjNjZTRhYzUwMGM3ZDUuNmRjZWU0ZjZhZThkYjNmMgpAQCAtMTYzODEsMTMgKzE2MzgxLDEzIEBACiAgICAgNzk1ZmU2YzMzOTFhZjlkZS45OWNjNmZiYTU3YmMwM2UwLmNiMWVhMDhlZDAzN2Y4NGIuODNlOWYwZThlMjllZmNkNAogICAgIGQxZGRiYzI1Mzg3MTAwNTYKICAgYWZ0ZXIKLSAgICA1ZWRmOWQwOTM3ODBmYTkxLjFmNTRmZjZhNDdjYjkwZTIuMmZiMGY5ZTQ4NjUzNzU5Yi5lZDBmYWE2ODk4MzZmNmFlCisgICAgNWVkZjlkMDkzNzgwZmE5MS4xZjU0ZmY2YTQ3Y2I5MGUyLjJmYjBmOWU0ODY1Mzc1OWIuMmJhOGZjZmM5MzgxNGI0MQogICAgIDQwNTdhYjk0NjVhNDAyN2UuZDIzNzA4YzcxMTlmMTQ1MC42YWYzY2U0YWM1MDBjN2Q1LjZkY2VlNGY2YWU4ZGIzZjIKICAgICA1NTkzNDRkODA3N2VjMzM0LjMyOWIyZjEzMzgxNmQxNmIuYWFkNDMyMzQyYTlkYjQwMS4yYmE4ZmNmYzkzODE0YjQxCiAgICAgNzk1ZmU2YzMzOTFhZjlkZS45OWNjNmZiYTU3YmMwM2UwLmNiMWVhMDhlZDAzN2Y4NGIuODNlOWYwZThlMjllZmNkNAogICAgIGQxZGRiYzI1Mzg3MTAwNTYKIAotVlBFWFRSQl9HdG9FXzEyOF8weDMocmVnKQorVlBFWFRSUV8xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgNzFjZjVhMWYzMDg1OTM3NC44ODg3MGMzZjE2ODU1ZmE5LjY1MTVjNTI4MGExZWU4NWIuYTk5Zjk1NDRkNGQ5NGVlMQogICAgIGJmMGRjODQyNjc2N2YzZGEuNWRkNjMyM2FiYWNhYjJjMC5mMGM0MmJjOWVlYzhiYTg3LjIwMjE4YzQyNTE4ZjczZWMKQEAgLTE2Mzk5LDggKzE2Mzk5LDggQEAKICAgICBiZjBkYzg0MjY3NjdmM2RhLjVkZDYzMjNhYmFjYWIyYzAuZjBjNDJiYzllZWM4YmE4Ny4yMDIxOGM0MjUxOGY3M2VjCiAgICAgMTdlMTAxZmE3OGEyNWEzMy5kNjFhZDU5ZjQyZjVhZTUxLjk4MjM5ZjA5OWY0NGI2MTEuMGM3MTAwNzQ2NDY2MjM5YgogICAgIGQ1OTgwMWI0MDBjMjA1MmMuY2UxZDcwNWFjYTEzMGU4NS5iNzdmMWM1NGI3MjAxN2E1LjQ4NWI3MGM3Mjg2OTE5MTgKLSAgICAwMDAwMDAwMDAwMDAwMDUxCi1WUEVYVFJCX0d0b0VfMTI4XzB4MyhtZW0pCisgICAgYTk5Zjk1NDRkNGQ5NGVlMQorVlBFWFRSUV8xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgMjUyYzJjN2MzNTI0Y2IyZC41NTdlYzRkYTlhNTMzMDcwLjIxYWM3ZjU3NmMyZjhmOGIuYWIyNTllMTdkNWU3MWJlZQogICAgIDdkYWM3MmI2YjVmNGZkMWUuZjJkZjQ3ZGFlMmUyMTZhYy5hYTkzN2U4MjQ3NTVlZDhkLmNlNWUyMmJjOTMyNmZjOTgKQEAgLTE2NDA4LDEzICsxNjQwOCwxMyBAQAogICAgIDRiZDQzODg4MzdiNWMzYTcuZjg0MTdhMTRlZjI4MDZiYi5kMzk5M2QxMjEyZjEyZjM2LjE1YzExYzYwNjAzOTQ3YzIKICAgICBmMDgxOGMzN2E3MjYyOTlhCiAgIGFmdGVyCi0gICAgMjUyYzJjN2MzNTI0Y2IyZC41NTdlYzRkYTlhNTMzMDcwLjIxYWM3ZjU3NmMyZjhmOGIuYWIyNTllMTdkNWU3MWI5MworICAgIDI1MmMyYzdjMzUyNGNiMmQuNTU3ZWM0ZGE5YTUzMzA3MC4yMWFjN2Y1NzZjMmY4ZjhiLjdkNzlhM2IxOGQ2OGY2NTAKICAgICA3ZGFjNzJiNmI1ZjRmZDFlLmYyZGY0N2RhZTJlMjE2YWMuYWE5MzdlODI0NzU1ZWQ4ZC5jZTVlMjJiYzkzMjZmYzk4CiAgICAgOTVmNWEyYzE1NzIwNjc4ZC4wYTA3ODUxZTc1ZmFmNDhiLjQ3OWVlOWM3NzQ5MmUzYjcuN2Q3OWEzYjE4ZDY4ZjY1MAogICAgIDRiZDQzODg4MzdiNWMzYTcuZjg0MTdhMTRlZjI4MDZiYi5kMzk5M2QxMjEyZjEyZjM2LjE1YzExYzYwNjAzOTQ3YzIKICAgICBmMDgxOGMzN2E3MjYyOTlhCiAKLVZQRVhUUkJfR3RvRV8xMjhfMHgzKHJlZykKK1ZQRVhUUlFfMTI4XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDZiMDdlY2ExZmZiYWQ5ODMuNzkxNWIxZjc3MGJlY2U5OC4xOGRiMjIyN2ViZjc4OGU1LjI5NGZmNDUwM2E3ZThiMzYKICAgICBlMjlkMzkwYTAzODI5MzI5LmZkODQ4N2ZhMWU0ODQzOGIuYzUxZjc5YzMwNWYzYjViOC4yNzhlOGM2YjBiNDZiM2UyCkBAIC0xNjQyNiw4ICsxNjQyNiw4IEBACiAgICAgZTI5ZDM5MGEwMzgyOTMyOS5mZDg0ODdmYTFlNDg0MzhiLmM1MWY3OWMzMDVmM2I1YjguMjc4ZThjNmIwYjQ2YjNlMgogICAgIGIxOTA3MGRlNGYwODkyM2EuYjJlYzM4N2Q1ZTVkZTBhZC41ZDVhN2M1NGRhYThjYWRlLmE3MjA4MTUxOWU1NDY1NjcKICAgICAzNDJjOGM4OTgwZGExMzVmLjczMWIzZjZjNGIwYjVmMjkuM2JkODI2NDYwNmEzMDMwMy44N2QyNGRlYzExYjU1YmYxCi0gICAgMDAwMDAwMDAwMDAwMDAwYgotVlBFWFRSQl9HdG9FXzEyOF8weDMobWVtKQorICAgIDI5NGZmNDUwM2E3ZThiMzYKK1ZQRVhUUlFfMTI4XzB4MChtZW0pCiAgIGJlZm9yZQogICAgIGQzYzY1ZmY2MDY5YzA1YzEuYzhiYzg5NzczMjg0NTI0Ny4xZWRiMThiMzAyNWU3YzJjLmJhZTQ3MzA1MjM2ZjliZDQKICAgICBmNzlmOWMzY2MwM2MzMjYxLmM3OGU2NDE0MDA5MDhhOWMuOGRmOTQwM2Y5ZjYxZjVlMS4zOGNjNWZmZGQwOTljZmZkCkBAIC0xNjQzNSwxMyArMTY0MzUsMTMgQEAKICAgICA4OTBlZWJlNjNkMGVlNGU5Ljc5MjNhMDBjNjEwNGQ4M2YuMmI3ZjZhZDJmOGE3ZTYxNC45ZDVjMDY0OTQ0MzRmYTA1CiAgICAgM2M5Y2I3NzQ0M2JlNmEzZAogICBhZnRlcgotICAgIGQzYzY1ZmY2MDY5YzA1YzEuYzhiYzg5NzczMjg0NTI0Ny4xZWRiMThiMzAyNWU3YzJjLmJhZTQ3MzA1MjM2ZjliZDAKKyAgICBkM2M2NWZmNjA2OWMwNWMxLmM4YmM4OTc3MzI4NDUyNDcuMWVkYjE4YjMwMjVlN2MyYy4wZmRiZTc5YWE2YWNkYjI5CiAgICAgZjc5ZjljM2NjMDNjMzI2MS5jNzhlNjQxNDAwOTA4YTljLjhkZjk0MDNmOWY2MWY1ZTEuMzhjYzVmZmRkMDk5Y2ZmZAogICAgIGViYzlhMWU4Yzg1ZTkzYjQuOGVlYzE3Y2Q4NzhkZjgwYS45ZDQxMzJmYTNjMjA4NDc1LjBmZGJlNzlhYTZhY2RiMjkKICAgICA4OTBlZWJlNjNkMGVlNGU5Ljc5MjNhMDBjNjEwNGQ4M2YuMmI3ZjZhZDJmOGE3ZTYxNC45ZDVjMDY0OTQ0MzRmYTA1CiAgICAgM2M5Y2I3NzQ0M2JlNmEzZAogCi1WUEVYVFJCX0d0b0VfMTI4XzB4NChyZWcpCitWUEVYVFJRXzEyOF8weDEocmVnKQogICBiZWZvcmUKICAgICA0YWU3Zjk4OTQyZDU2NTdjLmFlM2JmNDIyMzk1OGUzMmEuZTQ3ZmZhM2YyZDgzNjZlNC4xMTdmNjRiMmVjMDNkNmU5CiAgICAgMjE4OWM1ZjNkYTA1Mjg2ZS4zNzFjM2E4OWQ4NDk0YWE0LjJiNGMyMmQwODU5NWRkYTguMmMwYzljODUzNjNmMTIyMQpAQCAtMTY0NTMsOCArMTY0NTMsOCBAQAogICAgIDIxODljNWYzZGEwNTI4NmUuMzcxYzNhODlkODQ5NGFhNC4yYjRjMjJkMDg1OTVkZGE4LjJjMGM5Yzg1MzYzZjEyMjEKICAgICAxZmNkMTkxZGE5ZGJlZWMxLmZlN2QzOTA1MzdlY2Q2ODIuYTlkNjEyMmQwNWM2N2IzNS41OWY0OGYzOWYyNjg1NGU3CiAgICAgOWUwMWYwNzU0YmUyZjQxZS5lMDJhNmI4MzcxNGU0M2YxLmJjNjhjOGMxNGFhMzc5MzcuNzIwMWI4YjkzYjg5NTg2OAotICAgIDAwMDAwMDAwMDAwMDAwODUKLVZQRVhUUkJfR3RvRV8xMjhfMHg0KG1lbSkKKyAgICBlNDdmZmEzZjJkODM2NmU0CitWUEVYVFJRXzEyOF8weDEobWVtKQogICBiZWZvcmUKICAgICBkYmJkOWNjZGU2ZTM5YTRhLmZiNmY0NjY2NWJhNjc2MzQuYjllZTRlZjBhMzdhNGMxYy5iZjUwM2ZmOGVmYjcxNjViCiAgICAgZTQwNDRmM2E3ZjM1NGYwMy45MzY0MTc1Yzc1YjRiMGFkLjY2OTY1ZDM3ZTk3Y2FlMzAuMGVkODczM2U5MThmOGM0ZApAQCAtMTY0NjIsMTMgKzE2NDYyLDEzIEBACiAgICAgZTc1ZmE1NzJjNzVlOGRlMS5kZjEzMWIwODNhZGIzYTdhLmE3YzNlZjAyMWUzMzZjYzIuZmZmYjAzYTczYWI4ZjY0OQogICAgIDVhMmU1N2EzNzkyMTYxYWMKICAgYWZ0ZXIKLSAgICBkYmJkOWNjZGU2ZTM5YTRhLmZiNmY0NjY2NWJhNjc2MzQuYjllZTRlZjBhMzdhNGMxYy5iZjUwM2ZmOGVmYjcxNjNlCisgICAgZGJiZDljY2RlNmUzOWE0YS5mYjZmNDY2NjViYTY3NjM0LmI5ZWU0ZWYwYTM3YTRjMWMuYzFlZjE0NDQ1ZDYwMjU1OQogICAgIGU0MDQ0ZjNhN2YzNTRmMDMuOTM2NDE3NWM3NWI0YjBhZC42Njk2NWQzN2U5N2NhZTMwLjBlZDg3MzNlOTE4ZjhjNGQKICAgICA0OWEwMjkyMjE2YWZiNzI3LmMwMmM1ZmM0MzY5N2RkMzYuYzFlZjE0NDQ1ZDYwMjU1OS4wNTRkNjFmZmNiYjYxOGI5CiAgICAgZTc1ZmE1NzJjNzVlOGRlMS5kZjEzMWIwODNhZGIzYTdhLmE3YzNlZjAyMWUzMzZjYzIuZmZmYjAzYTczYWI4ZjY0OQogICAgIDVhMmU1N2EzNzkyMTYxYWMKIAotVlBFWFRSQl9HdG9FXzEyOF8weDQocmVnKQorVlBFWFRSUV8xMjhfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgNzEzMjU4NWQyNTdlOTY4Yy45YTBiM2YxN2FkNGQ4ZTVkLjRjNjU0Njk1MWMwZDAzMjYuZjRkZjZhNWY0NTAxNDA5OAogICAgIGEwNTIwMjQzZDk1YWQxOTYuM2U3MTczZmNlNDg4NzZjOC42MzZkZGNkODc4Yjg3M2U1Ljg0MGUwMjQ2ZjBkNDVkMDYKQEAgLTE2NDgwLDggKzE2NDgwLDggQEAKICAgICBhMDUyMDI0M2Q5NWFkMTk2LjNlNzE3M2ZjZTQ4ODc2YzguNjM2ZGRjZDg3OGI4NzNlNS44NDBlMDI0NmYwZDQ1ZDA2CiAgICAgNDJkYjUyYmYzMjQyNGU3NS5hZjVkYmUwYzg5MWMwMDRlLjgxNzlkYTNiZWI2OGM3NjQuMzMxZTMyYTQzYmJhN2YzOQogICAgIGI1MWE0MjNmY2JjMTQ4ZDYuYzk5YjliMzViNzE0ZWExYi4wMGQzM2EyYzEwYWEzYjRmLmRkZDk3NjYzNDFiZTYxNWQKLSAgICAwMDAwMDAwMDAwMDAwMDQ2Ci1WUEVYVFJCX0d0b0VfMTI4XzB4NChtZW0pCisgICAgNGM2NTQ2OTUxYzBkMDMyNgorVlBFWFRSUV8xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgOTI4NDJiYjhmMDUyNTgyNi41MzU5ZDAyZTQwNjNmYzY1LjY4Zjc4NjYyOGI3Y2VkNWEuM2RjOGZhMTY4NDA5MGI1MQogICAgIDU1MGI5NDI1ZDBmOWU1MjMuN2FlNGY4ZjgyZWI1YTZjZC42ODNjZmI3ZjIwNjFjODM3Ljk0YTQxNTY0ZTIxMTcyMTcKQEAgLTE2NDg5LDEzICsxNjQ4OSwxMyBAQAogICAgIGY3NzhlZTIzMmYzZmNjMmMuY2YxMzAxY2RlNDk2Y2FkYS5mYWI1NzQzOWZmY2ZmMjdlLjAwNDE0ZGUxY2U0ZWY4OWQKICAgICBjZDk5NjFlODk0OWI4ZmI2CiAgIGFmdGVyCi0gICAgOTI4NDJiYjhmMDUyNTgyNi41MzU5ZDAyZTQwNjNmYzY1LjY4Zjc4NjYyOGI3Y2VkNWEuM2RjOGZhMTY4NDA5MGI2NAorICAgIDkyODQyYmI4ZjA1MjU4MjYuNTM1OWQwMmU0MDYzZmM2NS42OGY3ODY2MjhiN2NlZDVhLmE1Mzg3Njc4OTNjZTM1ZGYKICAgICA1NTBiOTQyNWQwZjllNTIzLjdhZTRmOGY4MmViNWE2Y2QuNjgzY2ZiN2YyMDYxYzgzNy45NGE0MTU2NGUyMTE3MjE3CiAgICAgODM2ZDAxYTVkY2VmMjJjMS44NDA5YjQwOTMxNDI4MWJhLmE1Mzg3Njc4OTNjZTM1ZGYuNjFiMzg3ODRjNzRmYWQ0YwogICAgIGY3NzhlZTIzMmYzZmNjMmMuY2YxMzAxY2RlNDk2Y2FkYS5mYWI1NzQzOWZmY2ZmMjdlLjAwNDE0ZGUxY2U0ZWY4OWQKICAgICBjZDk5NjFlODk0OWI4ZmI2CiAKLVZQRVhUUkJfR3RvRV8xMjhfMHg0KHJlZykKK1ZQRVhUUlFfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDI0MDhjMTAzYjRjMGFkNDIuOGZmNmQ4OGFlNmY1OWY4Zi5iNTRkZGNiMGUzM2ViZGQ3LjQ1ODA3MGFlODE3MGI4M2YKICAgICA2MWRhNjk5ZmNiNGM4ZmVlLjI2YjUzYWM4MWQxZTU2MTcuOTQwNDQwMWVjYmM1OTY1ZC42MTY1ZTZjNDM0YmU0NjRmCkBAIC0xNjUwNyw4ICsxNjUwNyw4IEBACiAgICAgNjFkYTY5OWZjYjRjOGZlZS4yNmI1M2FjODFkMWU1NjE3Ljk0MDQ0MDFlY2JjNTk2NWQuNjE2NWU2YzQzNGJlNDY0ZgogICAgIGRmNWI1MzI4NzRjODcwNjUuOTg3ZjhmYzhlZmM1YWVlZi5jNjg0MmE4MzM3Yjc5MDE5LjJhMzA1MjY1MzRjNTU2ZGEKICAgICBmY2Q3N2MwYjRiYzI4ZTU0LmMwMjE1Njc2NzhmNjYzNDQuYTgxOTk0NGNjNGExZThiNy43YmFjMzE3ZjlmOTBhNTBiCi0gICAgMDAwMDAwMDAwMDAwMDBjNAotVlBFWFRSQl9HdG9FXzEyOF8weDQobWVtKQorICAgIGI1NGRkY2IwZTMzZWJkZDcKK1ZQRVhUUlFfMTI4XzB4MShtZW0pCiAgIGJlZm9yZQogICAgIDJhZWIzNGNhMWZhMmVmMTEuMTM5YWUxYjNlZGM1MjM2Ni43YzY3MDhiZmQ1YmUzMDQxLjk3MGY3Y2UzMGQwZWRhZTIKICAgICAzZTQ1NTJkNDZlMDI2MjNlLjgwZWY3ZDhiZjY1ZTZjNDkuYTcxYzIzOGQyMTI4ZDMxMy5lZGIyZGRiNmFmOGFhMTQ3CkBAIC0xNjUxNiwxMyArMTY1MTYsMTMgQEAKICAgICAyZjZiMmY0Y2IzYWE5MWM4LmNiODM0YjgwYWE3ZjA5MmMuYjkwNzgwNmNmODEzODVlNS40MTJkZmFiZDZjZTFhMTZkCiAgICAgZjg5ZWFmYzhiZmQzNTI4NwogICBhZnRlcgotICAgIDJhZWIzNGNhMWZhMmVmMTEuMTM5YWUxYjNlZGM1MjM2Ni43YzY3MDhiZmQ1YmUzMDQxLjk3MGY3Y2UzMGQwZWRhYjYKKyAgICAyYWViMzRjYTFmYTJlZjExLjEzOWFlMWIzZWRjNTIzNjYuN2M2NzA4YmZkNWJlMzA0MS4xYzBlMjFjZDc5NDAwNmU2CiAgICAgM2U0NTUyZDQ2ZTAyNjIzZS44MGVmN2Q4YmY2NWU2YzQ5LmE3MWMyMzhkMjEyOGQzMTMuZWRiMmRkYjZhZjhhYTE0NwogICAgIDRjODFkMTA2OTU1NjA0YzEuOWUyNDRjMDEwMTE3YTRhNi4xYzBlMjFjZDc5NDAwNmU2LjA3NGRiMzMwNDVhMjdhOTEKICAgICAyZjZiMmY0Y2IzYWE5MWM4LmNiODM0YjgwYWE3ZjA5MmMuYjkwNzgwNmNmODEzODVlNS40MTJkZmFiZDZjZTFhMTZkCiAgICAgZjg5ZWFmYzhiZmQzNTI4NwogCi1WUEVYVFJCX0d0b0VfMTI4XzB4OShyZWcpCitWUFNSTFFfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICA4NmVjY2NjMGRiMDVjODhhLmMyY2VlNjkyZTIwYmM0N2MuNjI1OTc1NzQ4ZTFmZDU4NS41OGQ1YmM1NGJhYWMwZTNkCiAgICAgNDg2MzRmMGU1YjAyNDAyMy5lMzc4NzVjNDNlODQ1YTBjLmJlZjJjNTQ5NDk4NTQ0NWQuZDc0MjRmNzNkZDE4NWIxYQpAQCAtMTY1MzAsMTIgKzE2NTMwLDEyIEBACiAgICAgZDhmYjc1NWZmODhlMjZjNS4zYmNjMDM5ZGVmZWY5ZTZhLjNhOWNjZDQ2YjFkMWZmM2QuZTEyYjZmMDJhZjk2MzMxMQogICAgIDI0NDBmMzRiOThjMDM3ODMKICAgYWZ0ZXIKLSAgICA4NmVjY2NjMGRiMDVjODhhLmMyY2VlNjkyZTIwYmM0N2MuNjI1OTc1NzQ4ZTFmZDU4NS41OGQ1YmM1NGJhYWMwZTNkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxZDRlNjZhMzU4ZThmZjkuMDcwOTViNzgxNTdjYjE5OAogICAgIDQ4NjM0ZjBlNWIwMjQwMjMuZTM3ODc1YzQzZTg0NWEwYy5iZWYyYzU0OTQ5ODU0NDVkLmQ3NDI0ZjczZGQxODViMWEKICAgICA5YTRmMzQxZmRiNTZmNmZkLjZjMzM1NWNmZTQyMTBmYTEuM2Q5YTNhNmI3NTNjOTQ2MS4xMDFiYjdiNDdhNjEyOWE3CiAgICAgZDhmYjc1NWZmODhlMjZjNS4zYmNjMDM5ZGVmZWY5ZTZhLjNhOWNjZDQ2YjFkMWZmM2QuZTEyYjZmMDJhZjk2MzMxMQotICAgIDAwMDAwMDAwMDAwMDAwNDQKLVZQRVhUUkJfR3RvRV8xMjhfMHg5KG1lbSkKKyAgICAyNDQwZjM0Yjk4YzAzNzgzCitWUFNSTFFfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICBiNzI0YmY3YTUwZWRlZjJhLjVlYjUxMDNhNGUzNTBiMjcuMmEwZmZjMWI3Y2Y5YzQ5MS4xMDQ2N2I0Nzk2Y2ZjMjljCiAgICAgNzRhNTUwN2NmMzI4MTczMS44OGM3ZmYxZDc4ZDdlMmNlLjE2YzhiYjM2YTY0YzNkNDMuMWRlMjQxZDhjM2MyMTgyYgpAQCAtMTY1NDMsMTMgKzE2NTQzLDEzIEBACiAgICAgZTBhOWFkYTQ2Y2Y5YWIxMi4zODI2Y2ZhN2I5M2U1NTlkLjU2Y2I3Y2VmNDNmYTE3ZjYuNDgyMzAyNWU1ZWI5NzE4OAogICAgIDFlNjBmNjJiMDZkNGVhYWQKICAgYWZ0ZXIKLSAgICBiNzI0YmY3YTUwZWRlZjJhLjVlYjUxMDNhNGUzNTBiMjcuMmEwZmZjMWI3Y2Y5YzQ5MS4xMDQ2N2I0Nzk2Y2ZjMjNkCisgICAgYjcyNGJmN2E1MGVkZWYyYS41ZWI1MTAzYTRlMzUwYjI3LjJhMGZmYzFiN2NmOWM0OTEuMTA0NjdiNDc5NmNmYzI5YwogICAgIDc0YTU1MDdjZjMyODE3MzEuODhjN2ZmMWQ3OGQ3ZTJjZS4xNmM4YmIzNmE2NGMzZDQzLjFkZTI0MWQ4YzNjMjE4MmIKICAgICAzODhkMjAzYjllN2Q2ZGM1LmIyN2U0MTczMTIwMWU2NjcuZGNjM2JjZDk4YWYzYzVhYi5iYmJkMWE2N2QxMzczZjk2CiAgICAgZTBhOWFkYTQ2Y2Y5YWIxMi4zODI2Y2ZhN2I5M2U1NTlkLjU2Y2I3Y2VmNDNmYTE3ZjYuNDgyMzAyNWU1ZWI5NzE4OAogICAgIDFlNjBmNjJiMDZkNGVhYWQKIAotVlBFWFRSQl9HdG9FXzEyOF8weDkocmVnKQorVlBTUkxRXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOWFjMGYwMzk2NDE1ZThiMy40NmM0NzJhNDdhYTc4ZTQzLjc2MGJhNjI3MDkxYjY5MWQuNjFhZTc1NjZlZTZkZjA0ZgogICAgIDE5OGVlZWY0MTUwNmE1NDMuNDdhY2VjMjVlNDk0ZDI4NS5jODc4YzM1ZTljMjM1ZjkzLmQ5MzYyNTI5YTY1OTBjZTMKQEAgLTE2NTU3LDEyICsxNjU1NywxMiBAQAogICAgIDhiYThlNDIxZGQyZTRlYjguOGIwZmViNWUzOTU4NmJlYS4xNzFlYmNhMTAyZTRkZjBmLjgxNjg5NzQzYWVjYWZjNmIKICAgICA2OGFhNTI3MzM3Njc0N2I3CiAgIGFmdGVyCi0gICAgOWFjMGYwMzk2NDE1ZThiMy40NmM0NzJhNDdhYTc4ZTQzLjc2MGJhNjI3MDkxYjY5MWQuNjFhZTc1NjZlZTZkZjA0ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGI4ZjVlNTA4MTcyNmY4LjA0MGI0NGJhMWQ3NjU3ZTMKICAgICAxOThlZWVmNDE1MDZhNTQzLjQ3YWNlYzI1ZTQ5NGQyODUuYzg3OGMzNWU5YzIzNWY5My5kOTM2MjUyOWE2NTkwY2UzCiAgICAgZjUxN2ViYzhiNDM2NWUwYy5iZjJjOTYxNWM0Y2IzMjAzLjg5YmIyMWI4MTFlMjcyYWEuOWIzMDA3MjQ4N2M5MjZkZQogICAgIDhiYThlNDIxZGQyZTRlYjguOGIwZmViNWUzOTU4NmJlYS4xNzFlYmNhMTAyZTRkZjBmLjgxNjg5NzQzYWVjYWZjNmIKLSAgICAwMDAwMDAwMDAwMDAwMDVmCi1WUEVYVFJCX0d0b0VfMTI4XzB4OShtZW0pCisgICAgNjhhYTUyNzMzNzY3NDdiNworVlBTUkxRXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMmNjMWIyOWUzZGFjYzZlZC4zODhiZDM2YjJkN2RiM2Y0Ljg1MjI2OWVlNWM0ODM5NjYuY2RlZTkxODUwYmI2ZTI2ZAogICAgIGE5N2IzNWIxZGNhNjMzM2EuNTYwY2I2MTI0MGFjYzc2Yi44YTMxOGNiMDRjYTU1N2EyLjA3Nzc5YWQwYzllM2I3NzEKQEAgLTE2NTcwLDEzICsxNjU3MCwxMyBAQAogICAgIDNlMDM5MjQxNThlNmNhYzguNTgxZDQ1MjgxY2RmZWViYy4yNTczYWQ3YWZkZGM3NjBjLjc2ZTMzZDRjZDE4MGM1MWEKICAgICA2NDVmY2U1NDU0MDc3NzE2CiAgIGFmdGVyCi0gICAgMmNjMWIyOWUzZGFjYzZlZC4zODhiZDM2YjJkN2RiM2Y0Ljg1MjI2OWVlNWM0ODM5NjYuY2RlZTkxODUwYmI2ZTI1NworICAgIDJjYzFiMjllM2RhY2M2ZWQuMzg4YmQzNmIyZDdkYjNmNC44NTIyNjllZTVjNDgzOTY2LmNkZWU5MTg1MGJiNmUyNmQKICAgICBhOTdiMzViMWRjYTYzMzNhLjU2MGNiNjEyNDBhY2M3NmIuOGEzMThjYjA0Y2E1NTdhMi4wNzc3OWFkMGM5ZTNiNzcxCiAgICAgYmJhMjU2OTkzMTVmNGNjYS40Mjc5ODg4M2IxNDljNmNhLjc2MDhjZTkwMjI3ZTgyY2IuMjAwNWQ1ZWVkN2Y4OTljNgogICAgIDNlMDM5MjQxNThlNmNhYzguNTgxZDQ1MjgxY2RmZWViYy4yNTczYWQ3YWZkZGM3NjBjLjc2ZTMzZDRjZDE4MGM1MWEKICAgICA2NDVmY2U1NDU0MDc3NzE2CiAKLVZQRVhUUkJfR3RvRV8xMjhfMHg5KHJlZykKK1ZQU1JMUV8weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDQ1YzM4NTc0ZmMxOWViNjkuMGU2YTYzOTQ2YjQ0NmM2MS5mNDQzZTk2ZjFlZmE3OWVlLjczM2RhNDVhZjZjZGVmOTIKICAgICA3NzVjNWQxNzY0NDM1Y2JkLjA3YTM0NzgwODk4N2VjYzAuNzIzODcxYzI1MjI3YTQwYy4zYzM0MmYxYzJiNWRhODg5CkBAIC0xNjU4NCwxMiArMTY1ODQsMTIgQEAKICAgICAzYTVkNjA5NWU2MGQyODE5LmU0YmEzNWQwNTBlYTc5ODMuODViZjFhNDFjMmU0YzliYS5hZmQ0ZjJmN2I4ODZjZDc4CiAgICAgMTExNjIyZTg0NzM4YjFjOAogICBhZnRlcgotICAgIDQ1YzM4NTc0ZmMxOWViNjkuMGU2YTYzOTQ2YjQ0NmM2MS5mNDQzZTk2ZjFlZmE3OWVlLjczM2RhNDVhZjZjZGVmOTIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDQyZGY4ZDIwZTE3MjY0ZC4wNTdlYTc5N2JkYzQzNjZiCiAgICAgNzc1YzVkMTc2NDQzNWNiZC4wN2EzNDc4MDg5ODdlY2MwLjcyMzg3MWMyNTIyN2E0MGMuM2MzNDJmMWMyYjVkYTg4OQogICAgIDU1NzY1MmE5MjkxMTA3YmUuMDU3YWI5ZjBjY2JiMDcxMi4yZjQ4ZDg4ZjU1ZjFhYmMxLjVjMjJjYWFkYjg5NjVlMWMKICAgICAzYTVkNjA5NWU2MGQyODE5LmU0YmEzNWQwNTBlYTc5ODMuODViZjFhNDFjMmU0YzliYS5hZmQ0ZjJmN2I4ODZjZDc4Ci0gICAgMDAwMDAwMDAwMDAwMDBhNAotVlBFWFRSQl9HdG9FXzEyOF8weDkobWVtKQorICAgIDExMTYyMmU4NDczOGIxYzgKK1ZQU1JMUV8weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDVlYjRkNjZhODJiOWM1MzkuODQ1ZDgzNDkzN2M1ZmE3YS44MDMxMzgwYzMyMjJmZDNlLmQxZTkzMzQ0MzY4ZDNiYTIKICAgICA3MTc5OGE2Yjg1MTRjNmY3LjhkYzFiODMwYjljNGJhOGMuYjVhOTNjOTA4ZDZlNTA3MC42ZjEyMWYwNDRjNzczZDI2CkBAIC0xNjU5NywxMyArMTY1OTcsMTMgQEAKICAgICA1ZWFjZTM5NzUwODk3ZTA4LjUwZTk0NDQ4YmVjOWY0NzUuNWFjZjNjMjEyMDc0NTJlNy4xMDkwNjI2YmQwM2ZlMGIxCiAgICAgY2M3ZGIwZWE3NjM1ZjkxMAogICBhZnRlcgotICAgIDVlYjRkNjZhODJiOWM1MzkuODQ1ZDgzNDkzN2M1ZmE3YS44MDMxMzgwYzMyMjJmZDNlLmQxZTkzMzQ0MzY4ZDNiNTAKKyAgICA1ZWI0ZDY2YTgyYjljNTM5Ljg0NWQ4MzQ5MzdjNWZhN2EuODAzMTM4MGMzMjIyZmQzZS5kMWU5MzM0NDM2OGQzYmEyCiAgICAgNzE3OThhNmI4NTE0YzZmNy44ZGMxYjgzMGI5YzRiYThjLmI1YTkzYzkwOGQ2ZTUwNzAuNmYxMjFmMDQ0Yzc3M2QyNgogICAgIDI4MzNiYmQ2NmI1NTcwMmQuYjJkN2Y5YjcwNzk3YTRmYy41ZmVmYmY0OTdkZGIyZTQ0LmJiODVkYmVkYTEyZjBhZjIKICAgICA1ZWFjZTM5NzUwODk3ZTA4LjUwZTk0NDQ4YmVjOWY0NzUuNWFjZjNjMjEyMDc0NTJlNy4xMDkwNjI2YmQwM2ZlMGIxCiAgICAgY2M3ZGIwZWE3NjM1ZjkxMAogCi1WUEVYVFJCX0d0b0VfMTI4XzB4RShyZWcpCitWUE1VTFVEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICA0YTk5YzFkNzJlOWQ5MWJhLmVmYjE4MDlhNTFiYmFkYjMuYzE0NDk1NTA3YWU2ZTVhNS44MTE1MzAwNThmNDU3YTg1CiAgICAgZTYzMDkyOWM5NDAyZTY1Yy5iNjBlMGRjYjg5ZjdiOTViLjYzMzRlNjNjZDU3YmI0MzUuYjI4YzE1ZTJlODViNjA0OQpAQCAtMTY2MTEsMTIgKzE2NjExLDEyIEBACiAgICAgZThmZTYxNjNkZGYzYjIzNy41YjAwZTg2NzEwYmY1NzUxLmE1MDI3ZDZjZGYzYWRiMmIuOWU0MWE3MzNjNzg0NThmNQogICAgIDEyMTY0YjgwODRhZWUyMzUKICAgYWZ0ZXIKLSAgICA0YTk5YzFkNzJlOWQ5MWJhLmVmYjE4MDlhNTFiYmFkYjMuYzE0NDk1NTA3YWU2ZTVhNS44MTE1MzAwNThmNDU3YTg1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjViY2I4MzM5Zjg2OTA4YWYuNDEyMTMzMzI5ODI4N2IxNwogICAgIGU2MzA5MjljOTQwMmU2NWMuYjYwZTBkY2I4OWY3Yjk1Yi42MzM0ZTYzY2Q1N2JiNDM1LmIyOGMxNWUyZTg1YjYwNDkKICAgICBmYzhkMWVhNzQ1ZjAzMmExLjkxOGYwNzE2MTU0YTVkMmMuOTAwNTM1NzY2ZTEzOWRkMy5jODAyNjlhMzQ3YzFjMDVmCiAgICAgZThmZTYxNjNkZGYzYjIzNy41YjAwZTg2NzEwYmY1NzUxLmE1MDI3ZDZjZGYzYWRiMmIuOWU0MWE3MzNjNzg0NThmNQotICAgIDAwMDAwMDAwMDAwMDAwMzQKLVZQRVhUUkJfR3RvRV8xMjhfMHhFKG1lbSkKKyAgICAxMjE2NGI4MDg0YWVlMjM1CitWUE1VTFVEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICBmZjRkZDE3NTliNGQxYjRiLjA1Y2Q1NzNiZjc5OGExYzcuZWYyYzJlYWI5NzYzNjFmNi5mZTc5YmE4OWM0N2RhY2U5CiAgICAgNDBiMmI2ZmUyODZkYmU2NC5iMTQ3ZmQ5ZDJmNmIzYzAwLjJiZTE1NGNjYzU0MDM3NDkuZjhiNGU4MzhiOTY3NDliOApAQCAtMTY2MjQsMTMgKzE2NjI0LDEzIEBACiAgICAgMzIzNThhN2MxMTVkMzY0ZS4yMjZjNDVhYzZiYzc2NjE3LjA3MTEzMTU5ODhkYjNiYTMuM2FhOTA4MDE0NjYxZGUzYgogICAgIDNiZmJmMmYyMTU4OTRkNDYKICAgYWZ0ZXIKLSAgICBmZjRkZDE3NTliNGQxYjRiLjA1Y2Q1NzNiZjc5OGExYzcuZWYyYzJlYWI5NzYzNjFmNi5mZTc5YmE4OWM0N2RhY2UxCisgICAgZmY0ZGQxNzU5YjRkMWI0Yi4wNWNkNTczYmY3OThhMWM3LmVmMmMyZWFiOTc2MzYxZjYuZmU3OWJhODljNDdkYWNlOQogICAgIDQwYjJiNmZlMjg2ZGJlNjQuYjE0N2ZkOWQyZjZiM2MwMC4yYmUxNTRjY2M1NDAzNzQ5LmY4YjRlODM4Yjk2NzQ5YjgKLSAgICBiMzEwNzUwNzQ1MTk4OWFjLjQ3Yjg0ZGY0MjJmNmJmOGMuZWFlOWQ2YjhiNzY0OTc3NC5lZDAwMDRlNzVjODRmMTQ0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc0YTU3M2VjNTBlMmM5MjYuOGU0ZTE5MWEwMzYxYjg3OAogICAgIDMyMzU4YTdjMTE1ZDM2NGUuMjI2YzQ1YWM2YmM3NjYxNy4wNzExMzE1OTg4ZGIzYmEzLjNhYTkwODAxNDY2MWRlM2IKICAgICAzYmZiZjJmMjE1ODk0ZDQ2CiAKLVZQRVhUUkJfR3RvRV8xMjhfMHhFKHJlZykKK1ZQTVVMVURRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDRjNDJiZTI3NjU4OTdhMTQuOWJlYjcxNGFhNjQ1ODE3Ny5hMGFmZTAzMWE3Njk2YzRlLjYwMjVlMDlkNTRiMGUwMDMKICAgICBjOWM5NjYwYWQxZWJhMTRmLmM4ZmZhNzViMjBkZTI4NTMuMWJjZDFhZjA3MjY5MGZkZC5jZmYxNWU2ZjM4ZWY0MWMwCkBAIC0xNjYzOCwxMiArMTY2MzgsMTIgQEAKICAgICA3N2NiM2Y4ZTZlMGJjYmJlLmUyNzFlY2ZhMzU1MDc1ZDEuN2RjODVkYzcyMmIwMTZiMS42M2UwYmQ2ZGI3ZGMyYmZmCiAgICAgM2Y5Yjk0NzE4OWEyMmFkOQogICBhZnRlcgotICAgIDRjNDJiZTI3NjU4OTdhMTQuOWJlYjcxNGFhNjQ1ODE3Ny5hMGFmZTAzMWE3Njk2YzRlLjYwMjVlMDlkNTRiMGUwMDMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmRiYWJlZjI4ZWM1NDhkMy4xMWVmNDQwZDY2ZGQ0OGMwCiAgICAgYzljOTY2MGFkMWViYTE0Zi5jOGZmYTc1YjIwZGUyODUzLjFiY2QxYWYwNzI2OTBmZGQuY2ZmMTVlNmYzOGVmNDFjMAogICAgIDBlZGVlODA4ZjUzZGZkYTMuOTYzZGE2OWQ5YzMzZTUwZC5mMTExZjA1MzY2NTI4ODZmLjMxNDAyYWJiNTBhNDFjMDUKICAgICA3N2NiM2Y4ZTZlMGJjYmJlLmUyNzFlY2ZhMzU1MDc1ZDEuN2RjODVkYzcyMmIwMTZiMS42M2UwYmQ2ZGI3ZGMyYmZmCi0gICAgMDAwMDAwMDAwMDAwMDBjZAotVlBFWFRSQl9HdG9FXzEyOF8weEUobWVtKQorICAgIDNmOWI5NDcxODlhMjJhZDkKK1ZQTVVMVURRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGEyM2UyY2IzZTMwM2Q3YzAuNjBkZDY3MDZkOGUwNDc0OS44NjY3ZjQ2MDA4NDI5M2NkLjFhM2U1ZGI5M2YxMGYzNGUKICAgICA2OTk1MDAyMGUxMDllY2UwLjI1NjA1Y2RlY2U0OGFjZjMuNjBlYTNiYmEzMDE0ZmQyYS4yNWJmZWM5NDViZmM1Y2Y0CkBAIC0xNjY1MSwxMyArMTY2NTEsMTMgQEAKICAgICA4ZThmNGQyNzM2M2E0MTc5LmIzZTg5ZTViY2YwMjI0NGUuMjFjYjcyZjlmMDhhOWZiZS5mNjEyYThiNGZmYWVjMTA1CiAgICAgNzQ3YmNkZDJiZjhiMzZjOAogICBhZnRlcgotICAgIGEyM2UyY2IzZTMwM2Q3YzAuNjBkZDY3MDZkOGUwNDc0OS44NjY3ZjQ2MDA4NDI5M2NkLjFhM2U1ZGI5M2YxMGYzZWEKKyAgICBhMjNlMmNiM2UzMDNkN2MwLjYwZGQ2NzA2ZDhlMDQ3NDkuODY2N2Y0NjAwODQyOTNjZC4xYTNlNWRiOTNmMTBmMzRlCiAgICAgNjk5NTAwMjBlMTA5ZWNlMC4yNTYwNWNkZWNlNDhhY2YzLjYwZWEzYmJhMzAxNGZkMmEuMjViZmVjOTQ1YmZjNWNmNAotICAgIDZlNmM4Y2EyOWVjMzI2NjQuMjI5ZjFhODFlY2NmMzc2Ni40YWM4M2JmM2M5ZDM2ZDE3LmZiOTcwNmMzMTIwMzhkNGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE4ZDI5MTUyMzAxZDhhMi4xNmE5MzIxMjZlNWZlZTU4CiAgICAgOGU4ZjRkMjczNjNhNDE3OS5iM2U4OWU1YmNmMDIyNDRlLjIxY2I3MmY5ZjA4YTlmYmUuZjYxMmE4YjRmZmFlYzEwNQogICAgIDc0N2JjZGQyYmY4YjM2YzgKIAotVlBFWFRSQl9HdG9FXzEyOF8weEUocmVnKQorVlBNVUxVRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgY2YyMDcxODllZDI2MjU0NC5hNWM5YmQ5OWM2N2NmODRiLjM0ODVlM2Q4MTI2Y2FlNTguYzFjMDViYjdjMTQ1NTE0YwogICAgIDY0NGI5MDQ1MjUwOWNkMjMuOTBlODVhZTY2OTk0MDgwNS4wMWM0ZTU2NDUyOWExMzMwLjA2NzM3MzFhNTcxMTNkZWMKQEAgLTE2NjY1LDEyICsxNjY2NSwxMiBAQAogICAgIGFkNjYzMDdkMjZkZDMzYmMuNGQwMDA5YmU1YTc4MjJlMi5lZTUzMTE1OTM3NmY1OGY4LmYwNDIxYzdhNDQwOWI2MTQKICAgICA0Y2Y3YTY1MWQyNGRiYWY0CiAgIGFmdGVyCi0gICAgY2YyMDcxODllZDI2MjU0NC5hNWM5YmQ5OWM2N2NmODRiLjM0ODVlM2Q4MTI2Y2FlNTguYzFjMDViYjdjMTQ1NTE0YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZDk0OGUwYzAyNTUxYjMwLjQ2YmI1NGVkMDMwOTlhMjQKICAgICA2NDRiOTA0NTI1MDljZDIzLjkwZTg1YWU2Njk5NDA4MDUuMDFjNGU1NjQ1MjlhMTMzMC4wNjczNzMxYTU3MTEzZGVjCiAgICAgOGY0OTI3NzIwNGMyNjgxMi4yOWI2OWZmOTNjOGYyZGQzLjc1ZWZhMTZiMmExNjhkODEuY2RiMDM0MGNjZmY4MjBjYgogICAgIGFkNjYzMDdkMjZkZDMzYmMuNGQwMDA5YmU1YTc4MjJlMi5lZTUzMTE1OTM3NmY1OGY4LmYwNDIxYzdhNDQwOWI2MTQKLSAgICAwMDAwMDAwMDAwMDAwMGM0Ci1WUEVYVFJCX0d0b0VfMTI4XzB4RShtZW0pCisgICAgNGNmN2E2NTFkMjRkYmFmNAorVlBNVUxVRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYmQ5OTRlN2I5NmQyZTk5Ny4xOGVkYTlkMDI2ZTQ2YWNlLmQ4OTIxMjIxZTA1YmE0NWUuYzczYzMzOWExNDJlYjI0MQogICAgIDFmZjU5MGU2YWJhM2ZmMjguMmQyYzhkZDhhMDY2NDlmMy5hNjM3MzgwZWU5NDQ2ZjczLjViZjUwMjliNWVlMWQ1MDcKQEAgLTE2Njc4LDEzICsxNjY3OCwxMyBAQAogICAgIDI2MGJkMzJiM2E1YmNmYzYuYzVmZTg3Yjk3NDA0ZWQyOS43YmVlYzgzNmY1NWJjZjE1LjI5MGI5ODg5YTc1MTY4YmMKICAgICAxOWZmNTc0ZmRlMjY1MDAzCiAgIGFmdGVyCi0gICAgYmQ5OTRlN2I5NmQyZTk5Ny4xOGVkYTlkMDI2ZTQ2YWNlLmQ4OTIxMjIxZTA1YmE0NWUuYzczYzMzOWExNDJlYjIzNworICAgIGJkOTk0ZTdiOTZkMmU5OTcuMThlZGE5ZDAyNmU0NmFjZS5kODkyMTIyMWUwNWJhNDVlLmM3M2MzMzlhMTQyZWIyNDEKICAgICAxZmY1OTBlNmFiYTNmZjI4LjJkMmM4ZGQ4YTA2NjQ5ZjMuYTYzNzM4MGVlOTQ0NmY3My41YmY1MDI5YjVlZTFkNTA3Ci0gICAgNGVkN2U5N2MyZWNkYjdkNC40ODZkZDkwMjMxZWMwYmQ4LjkzYmRmNjcxOTE0MDNmNGMuMDhjYzdiYzZiMDEzZmVmNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYzZmNjI5ZGJjNjc5ODNhLjA3N2FmMzQ5ZjBiN2Y0YzcKICAgICAyNjBiZDMyYjNhNWJjZmM2LmM1ZmU4N2I5NzQwNGVkMjkuN2JlZWM4MzZmNTViY2YxNS4yOTBiOTg4OWE3NTE2OGJjCiAgICAgMTlmZjU3NGZkZTI2NTAwMwogCi1WUEVYVFJCX0d0b0VfMTI4XzB4RihyZWcpCitWUFNMTFFfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICAzNmY0YjM4M2YxMWVmMjc4LjgzNWRjY2RlZWM1OTAwMmIuMDAyOTk1NjgwNjM5MmE5MS4zYTk4MmE0OTMxOWZkY2ZiCiAgICAgZGEzNmE4OTM3ZGM2OGFjNi40MTk4NTA4MTYwZDQwOTJmLjU1M2JmZTdkODIxNzAwYmQuYWM4NTk5OTc2MDFhMjIyYQpAQCAtMTY2OTIsMTIgKzE2NjkyLDEyIEBACiAgICAgMmJkMDRlZjQ2ZTUzOGI5Zi40ZmZkZTU0N2ZhNmU4ZmMxLmJkNDNkMjg2YWEwMDYyMGYuMTk1YThiOTAwOGUzNDgxMQogICAgIGNjZGIwNjE0YmE0OWEwMjIKICAgYWZ0ZXIKLSAgICAzNmY0YjM4M2YxMWVmMjc4LjgzNWRjY2RlZWM1OTAwMmIuMDAyOTk1NjgwNjM5MmE5MS4zYTk4MmE0OTMxOWZkY2ZiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE4N2E1MGQ1NDAwYzQxZTAuMmI1MTcyMDExYzY5MDIyMAogICAgIGRhMzZhODkzN2RjNjhhYzYuNDE5ODUwODE2MGQ0MDkyZi41NTNiZmU3ZDgyMTcwMGJkLmFjODU5OTk3NjAxYTIyMmEKICAgICA2MzExMzJlYTFlYTk1NDk5LjNjOGFkOTAwYjBkN2E0ZmQuMjA3ZmJmNjM4NTJiYTk1OC5hZDgyOTAwYTllZDg1ZGNlCiAgICAgMmJkMDRlZjQ2ZTUzOGI5Zi40ZmZkZTU0N2ZhNmU4ZmMxLmJkNDNkMjg2YWEwMDYyMGYuMTk1YThiOTAwOGUzNDgxMQotICAgIDAwMDAwMDAwMDAwMDAwNTUKLVZQRVhUUkJfR3RvRV8xMjhfMHhGKG1lbSkKKyAgICBjY2RiMDYxNGJhNDlhMDIyCitWUFNMTFFfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICBhMWNmN2U4MmNmMTUyMTJiLjkwYzFmNzFkMGM1MDZjODEuNThiZWVmNDM1YWE2ODNhOS44OGQyMzU1MjhlMjI2NjhlCiAgICAgNzYwNDZkYzU2MzU0ODY1OS5lYzJlMjlkMjkyMmQzMmVlLjMyOTk3M2RlZWI4YTNmZGYuZGQ3N2UzMzNjYzFlZjI4MApAQCAtMTY3MDUsMTMgKzE2NzA1LDEzIEBACiAgICAgOGQ1Y2E1ODA3YTU5ZWZkMi5mZGFmMTg4Y2M3YjU2MDE0LmM5Y2NkOWE1MTI4N2ZhZTYuOTUzNjEwZTVjOGQyOTI2ZgogICAgIGIwZTg4ODhlYmRhMjFkYzQKICAgYWZ0ZXIKLSAgICBhMWNmN2U4MmNmMTUyMTJiLjkwYzFmNzFkMGM1MDZjODEuNThiZWVmNDM1YWE2ODNhOS44OGQyMzU1MjhlMjI2NjMyCisgICAgYTFjZjdlODJjZjE1MjEyYi45MGMxZjcxZDBjNTA2YzgxLjU4YmVlZjQzNWFhNjgzYTkuODhkMjM1NTI4ZTIyNjY4ZQogICAgIDc2MDQ2ZGM1NjM1NDg2NTkuZWMyZTI5ZDI5MjJkMzJlZS4zMjk5NzNkZWViOGEzZmRmLmRkNzdlMzMzY2MxZWYyODAKICAgICAyNjQ0NTFjYjkzMTE4Y2Q3LjlkNjRlMDdkOWM3NjFhOTAuYjk1YWVkMDVjYTI2N2Q4Zi4xODdmZDg5NjAxN2Y0MjkxCiAgICAgOGQ1Y2E1ODA3YTU5ZWZkMi5mZGFmMTg4Y2M3YjU2MDE0LmM5Y2NkOWE1MTI4N2ZhZTYuOTUzNjEwZTVjOGQyOTI2ZgogICAgIGIwZTg4ODhlYmRhMjFkYzQKIAotVlBFWFRSQl9HdG9FXzEyOF8weEYocmVnKQorVlBTTExRXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYzVlMTNhZmI3ZDdiMjAzYy44NjE4ZTZjZTM1MzY2YTc2LjY5NWJjZTY5YWU3ODQwMjUuM2RiZGI0YTlkZmI4NzIxMAogICAgIDJmNmMyNDlhYTRlOWQ3ODQuZWY0MzhlYTJkZmI2YmJlZS4zZGIzZmQ4MmVlNGJmNjcwLmYzZjdmOWZjNGVjNWEwMzgKQEAgLTE2NzE5LDEyICsxNjcxOSwxMiBAQAogICAgIDc3NmM4ZTFiOTRiNjUwMzQuN2QxYTA4OGQ3MmNkYzkwYy44ZTliYjYxNGU3NGRkMjYyLjkxNzliMjQ0ODFhNTExMzUKICAgICAzMjU5MWQxMDdjOGZjYzYxCiAgIGFmdGVyCi0gICAgYzVlMTNhZmI3ZDdiMjAzYy44NjE4ZTZjZTM1MzY2YTc2LjY5NWJjZTY5YWU3ODQwMjUuM2RiZGI0YTlkZmI4NzIxMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMzc2YzI5Y2U5YmE0YzQwLjJmMzY0ODkwMzRhMjI2YTAKICAgICAyZjZjMjQ5YWE0ZTlkNzg0LmVmNDM4ZWEyZGZiNmJiZWUuM2RiM2ZkODJlZTRiZjY3MC5mM2Y3ZjlmYzRlYzVhMDM4CiAgICAgNGNkNjQyZDZjZDc5N2U0OC5hMmFiMWJlODk1ZTU5YzY3LmQ2MDVhMTQxMjJiOGJkYTAuYzY0NzI0OGM3YmJiNDE4YgogICAgIDc3NmM4ZTFiOTRiNjUwMzQuN2QxYTA4OGQ3MmNkYzkwYy44ZTliYjYxNGU3NGRkMjYyLjkxNzliMjQ0ODFhNTExMzUKLSAgICAwMDAwMDAwMDAwMDAwMDNkCi1WUEVYVFJCX0d0b0VfMTI4XzB4RihtZW0pCisgICAgMzI1OTFkMTA3YzhmY2M2MQorVlBTTExRXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgODNiMmUzZGM4OTg2MmQzYy4wYjc4MDZkNTk2MmQ4YWYyLjViNWVkMTdiOTM3ZDAwMGEuYzJjMjM5NjZkODk2NzA2MgogICAgIDYyNTI3Zjk0YzM5NWYxZjEuNjY0N2E1NzA2ZTY5NjgzMS4xNzQxZjNhMDEzZmVmYjhjLmNlYzYyNWEzOTIxZGQ1NGIKQEAgLTE2NzMyLDEzICsxNjczMiwxMyBAQAogICAgIDM2OTIyYTc5MzEyZDkxOWIuZGQ1ZDQ4ZjkxMjYxZmVkZC45ZDE2MmUzY2EyYTgyZmNmLmRlOTQyODhlY2UxYmRmOGEKICAgICA5YmY3MzcxNTg5YTlmYzM4CiAgIGFmdGVyCi0gICAgODNiMmUzZGM4OTg2MmQzYy4wYjc4MDZkNTk2MmQ4YWYyLjViNWVkMTdiOTM3ZDAwMGEuYzJjMjM5NjZkODk2NzAxNworICAgIDgzYjJlM2RjODk4NjJkM2MuMGI3ODA2ZDU5NjJkOGFmMi41YjVlZDE3YjkzN2QwMDBhLmMyYzIzOTY2ZDg5NjcwNjIKICAgICA2MjUyN2Y5NGMzOTVmMWYxLjY2NDdhNTcwNmU2OTY4MzEuMTc0MWYzYTAxM2ZlZmI4Yy5jZWM2MjVhMzkyMWRkNTRiCiAgICAgYTkwMzZlMjU0N2M5ZDRhZC5lMzI0Njc1OGI5ZjYyNTliLjhmOTBlOGU3MGU1ZTc3YmYuMGVmMzc2MzdiMDcxM2JjYQogICAgIDM2OTIyYTc5MzEyZDkxOWIuZGQ1ZDQ4ZjkxMjYxZmVkZC45ZDE2MmUzY2EyYTgyZmNmLmRlOTQyODhlY2UxYmRmOGEKICAgICA5YmY3MzcxNTg5YTlmYzM4CiAKLVZQRVhUUkJfR3RvRV8xMjhfMHhGKHJlZykKK1ZQU0xMUV8weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDlmNjZhMDM2N2RhNmNmODAuZTNjYjMxN2U5YmNkZTVlOC5iMjNjNDViZjE2MzUyZmEyLjFlYTE0MDhiZThlOGUxZTcKICAgICA0NzJmNWU1ZjQ1OWU5NDBkLjhkN2FmZTFlYTRiNThjYzAuYmMwZjU4MTc2MGZlZjQ5Ny5lZmZiOWJjMGZlMmI0NzM0CkBAIC0xNjc0NiwxMiArMTY3NDYsMTIgQEAKICAgICBmMmY5Yzk3NWMyYjFlM2E4LjQ5NmFkYWU0ZmM4ZmMyYmYuZTNiY2I2MjkzOGEwMjhjMC5lZDUwMTg4YzA4ZTgyMTFjCiAgICAgZDJlMjMzZmIzNTdhMGQwZQogICBhZnRlcgotICAgIDlmNjZhMDM2N2RhNmNmODAuZTNjYjMxN2U5YmNkZTVlOC5iMjNjNDViZjE2MzUyZmEyLjFlYTE0MDhiZThlOGUxZTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzc5NmM1MjcxNDA1MTgwMC5hYTAzMTE4MTFkMDQyMzgwCiAgICAgNDcyZjVlNWY0NTllOTQwZC44ZDdhZmUxZWE0YjU4Y2MwLmJjMGY1ODE3NjBmZWY0OTcuZWZmYjliYzBmZTJiNDczNAogICAgIGVmOWM2ZGZhN2QxZTg3OGMuMTE2YjBkNDc2NWYyNDI0ZS41OTIwN2Y2YjhkNDg4ODY3LmVhZjJiOWM3ZmY3YzFkZTIKICAgICBmMmY5Yzk3NWMyYjFlM2E4LjQ5NmFkYWU0ZmM4ZmMyYmYuZTNiY2I2MjkzOGEwMjhjMC5lZDUwMTg4YzA4ZTgyMTFjCi0gICAgMDAwMDAwMDAwMDAwMDBiYwotVlBFWFRSQl9HdG9FXzEyOF8weEYobWVtKQorICAgIGQyZTIzM2ZiMzU3YTBkMGUKK1ZQU0xMUV8weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDc2NzQ4NjAxYTEzZTllZTYuYWU5NDZmM2JhZmU0ZTUwZS4xMjQyZTJlMTg1OTljOTNmLmI4MmVmN2JjZmU5MjEwNGIKICAgICBiNWQxOGU4ODY4NDA5MGNkLjdlYjg1OWI3ZTE0MWM5NmEuNDljMGEwMjkxYjFhMTNmOS4zMmM0NDA4ZjdhYTg3YmI2CkBAIC0xNjc1OSwxMyArMTY3NTksMTMgQEAKICAgICA3NTIwYTljZTc5MzA4NTdmLmNhYzllZTg2ODJhZjI2YjIuNmNkZTJlNTBlMGI3NWZjYy44OTg4ZDZhYTA2NzZjZGRjCiAgICAgMWQ0ZTFkYzk0ZDQ0MmNlZQogICBhZnRlcgotICAgIDc2NzQ4NjAxYTEzZTllZTYuYWU5NDZmM2JhZmU0ZTUwZS4xMjQyZTJlMTg1OTljOTNmLmI4MmVmN2JjZmU5MjEwNDkKKyAgICA3Njc0ODYwMWExM2U5ZWU2LmFlOTQ2ZjNiYWZlNGU1MGUuMTI0MmUyZTE4NTk5YzkzZi5iODJlZjdiY2ZlOTIxMDRiCiAgICAgYjVkMThlODg2ODQwOTBjZC43ZWI4NTliN2UxNDFjOTZhLjQ5YzBhMDI5MWIxYTEzZjkuMzJjNDQwOGY3YWE4N2JiNgogICAgIDZjYzdjNTdlYTc4ZDllZjIuYmViMDg1NTdmNDU3Y2I2Ny5jOGIwOTBhYmRiMjE1YjE5LmFlYzk4YjEwNDk3MGE2YWQKICAgICA3NTIwYTljZTc5MzA4NTdmLmNhYzllZTg2ODJhZjI2YjIuNmNkZTJlNTBlMGI3NWZjYy44OTg4ZDZhYTA2NzZjZGRjCiAgICAgMWQ0ZTFkYzk0ZDQ0MmNlZQogCi1WUE1JTlVCXzEyOChyZWcpCitWUE1BWFVEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGM3Njc1YWRhYmI2OGZlOGYuYWRhOWI1NjNmYjM2MDFhMC5mZTUwOTFiMTJhZDcxN2Y2LjExMTZmNjA1NDZlYWQ4M2UKICAgICBlMzFmOGI0N2VjNmU4MDZkLmYwMmU2NTJiNDhhYWNkODMuYjU4ZTY4NDI4NTVhZDllMC45MzI0NjViNjJhYzU4NTliCkBAIC0xNjc3MywxMiArMTY3NzMsMTIgQEAKICAgICBlMjliYjZlOTA0NGM4MzhhLjA3NWNhMzAxYjUwZDQ4MzkuMjE2N2E3NGFjYWEyYzQ1NS45ZWYwMjViZGRiYTU2NmMzCiAgICAgZGY0NzZlZWJkZmMxMTNlOAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZDhlNjg0MjMyNWFhYTFiLjkzMjQ2NTUwMmE1NTIwMGUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjU4ZTY4NDI4NTVhZDllMC5jZWQzZjY1MGE4NTUyMDBlCiAgICAgZTMxZjhiNDdlYzZlODA2ZC5mMDJlNjUyYjQ4YWFjZDgzLmI1OGU2ODQyODU1YWQ5ZTAuOTMyNDY1YjYyYWM1ODU5YgogICAgIGNlYzJhYjdkN2JlMGVlMzIuMWE3YjM2MTE3ZDk4YTY1MS40ZGQyNzFhNjMyYzVhYTFiLmNlZDNmNjUwYTg1NTIwMGUKICAgICBlMjliYjZlOTA0NGM4MzhhLjA3NWNhMzAxYjUwZDQ4MzkuMjE2N2E3NGFjYWEyYzQ1NS45ZWYwMjViZGRiYTU2NmMzCiAgICAgZGY0NzZlZWJkZmMxMTNlOAotVlBNSU5VQl8xMjgobWVtKQorVlBNQVhVRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA2ZGE0NGVjNGQxYjZlM2E2LjdjZjhhOGY1MjQzZTdkMjIuOTM5YzI4ZTcwYzE0NmY2NS44Yzk4MDc5OGViODA2NDM3CiAgICAgMjRkMzQwMzZjYzhmOTEyYy5mODIzN2UwZjc2NDExNmE2LjlhMDk0MWIwYTBiOWQ2MDEuZWNiMzhiZmUzMWU4YzU3MApAQCAtMTY3ODgsMTEgKzE2Nzg4LDExIEBACiAgIGFmdGVyCiAgICAgNmRhNDRlYzRkMWI2ZTNhNi43Y2Y4YThmNTI0M2U3ZDIyLjkzOWMyOGU3MGMxNDZmNjUuOGM5ODA3OThlYjgwNjQzNwogICAgIDI0ZDM0MDM2Y2M4ZjkxMmMuZjgyMzdlMGY3NjQxMTZhNi45YTA5NDFiMGEwYjlkNjAxLmVjYjM4YmZlMzFlOGM1NzAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTMwOTI4YjAwYzE0NmYwMS44Yzk4MDc5ODMxODA2NDM3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjlhMDk0MWIwYTBiOWQ2MDEuZWNiMzhiZmVlYjgwNjQzNwogICAgIDdkZDY0YTkyNGYxZDdhM2EuMDYxNmMzMTkyMmFhMTcyMC44OTk1MjA5NmU4MGU1NzNjLmY3ZDJmNGJlOWE4YmJlOTEKICAgICA1YjZmZDBmMWY1ZGVjY2QyCiAKLVZQTUlOVUJfMTI4KHJlZykKK1ZQTUFYVURfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjIyNGMxZWJlNGVjOGQxOS5kNzQzNWE1NDBmZWIyYzFiLjUwNzYyYWUyYjQyOWY3NmUuMjk0ZGRlOGRkNmQ3ZTkzMwogICAgIGFhM2ZjNDE4MDQ0MTNiMTEuY2FiMTZkNWU0OGNlYWQ3My5lY2Q0NjU2OGU4ZTk2NjU4LmI0NjEyMDE2NmY2ZGFiNGEKQEAgLTE2ODAwLDEyICsxNjgwMCwxMiBAQAogICAgIDY5ZDNlZGJjNDVmMjUwYzYuZWJjMzg5ZmI5N2ZmMGIzNi44YWJlNDM1Y2E4NWRlNWFmLmZhY2MyMDhkMTMzNmIyODkKICAgICA2ZWJiZDc1NDU2N2Y2ZTBhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM2N2U2NTE4NWI3NjY2NTguMDY2MTIwMTY2ZjZkNWE0YQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lY2Q0NjU2OGU4ZTk2NjU4LmI0NjEyMDE2Y2ZkZTVhYWQKICAgICBhYTNmYzQxODA0NDEzYjExLmNhYjE2ZDVlNDhjZWFkNzMuZWNkNDY1NjhlOGU5NjY1OC5iNDYxMjAxNjZmNmRhYjRhCiAgICAgNGQwYWQ0ZTRmMDZhMTM2Ny4zMmVkZmU5ZDE3ZDBiOTZkLjM2N2U2ZTE4NWI3NmEyOGEuMDY5ZDYyMWNjZmRlNWFhZAogICAgIDY5ZDNlZGJjNDVmMjUwYzYuZWJjMzg5ZmI5N2ZmMGIzNi44YWJlNDM1Y2E4NWRlNWFmLmZhY2MyMDhkMTMzNmIyODkKICAgICA2ZWJiZDc1NDU2N2Y2ZTBhCi1WUE1JTlVCXzEyOChtZW0pCitWUE1BWFVEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDNkMzYwMjVkYjVjNzRiNWIuNThlNDBiMGE5ZjY1MzBkYi5kMGZmOGE2NmU1Njc2MWZhLjQ0ZTFkZmExNmMyOTZjNzMKICAgICA0MzA5MWQ5NDRiMWEwNWE5Ljc3OGEyYTNiOTg1MGVkNTIuYmY2YzdlYzgxYzEyNzVlNC5jMDMzM2Y1MzQyNjc3Mzg0CkBAIC0xNjgxNSwxMSArMTY4MTUsMTEgQEAKICAgYWZ0ZXIKICAgICAzZDM2MDI1ZGI1Yzc0YjViLjU4ZTQwYjBhOWY2NTMwZGIuZDBmZjhhNjZlNTY3NjFmYS40NGUxZGZhMTZjMjk2YzczCiAgICAgNDMwOTFkOTQ0YjFhMDVhOS43NzhhMmEzYjk4NTBlZDUyLmJmNmM3ZWM4MWMxMjc1ZTQuYzAzMzNmNTM0MjY3NzM4NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZjZjN2U2NjFjMTI2MWU0LjQ0MzMzZjUzNDIyOTZjNzMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDBmZjhhNjZlNTY3NjFmYS5jMDMzM2Y1MzZjMjk2YzczCiAgICAgNjNlNzE0M2Q4ZTBkZmZlYi5iNmM0NWRmOGRkYmJmMDE0LjI3MGQyYzI1YjY2N2M5ZGMuNmQ5NDM3YjA5NTY2ZWYzNwogICAgIDU3M2FjODMxNGIzZmRkMzIKIAotVlBNSU5VQl8xMjgocmVnKQorVlBNQVhVRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA3MzQwMGNkMDgzYmEzYjI5LjM1OGFlODg2NzNjN2I3MzcuOGRmMDY4NWE2MTU0YWViOC41OWQ4ZGVmODUyMjg4MTQyCiAgICAgMWRmMDAwZjhkOTYyNDRjOC5hZmI0OWNhZGZmYmIzYjJmLjA0ZTI2NDUwZjQ5NDNhNmQuMDQwNTcyNzM0NzVkZTg3ZgpAQCAtMTY4MjcsMTIgKzE2ODI3LDEyIEBACiAgICAgOGE4MWU0OTM1MTZiNDlhYi4wN2QwOTU0NzdlODE5YmQ1LjQzNDMyMWE1YmQzYWFiYmIuMzRiNDMyMTFhZDU0YjIyYgogICAgIDcxY2Y1NTBkNTYyZThkZjQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDRlMjRlNDUzNDA3M2E2ZC4wMzA1NjU3MzQ3MTJiOTdmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc3ZTQ0ZTQ1ZjQ5NDNhNmQuMDQwNTcyNzNiMTEyYjliZQogICAgIDFkZjAwMGY4ZDk2MjQ0YzguYWZiNDljYWRmZmJiM2IyZi4wNGUyNjQ1MGY0OTQzYTZkLjA0MDU3MjczNDc1ZGU4N2YKICAgICBiMDk3OWUxNWVhYzQzNWI5LmFjMzJhYzlmNGZmNTQ5MDAuNzdlNDRlNDUzNDA3ZDBkZi4wMzYwNjU4MmIxMTJiOWJlCiAgICAgOGE4MWU0OTM1MTZiNDlhYi4wN2QwOTU0NzdlODE5YmQ1LjQzNDMyMWE1YmQzYWFiYmIuMzRiNDMyMTFhZDU0YjIyYgogICAgIDcxY2Y1NTBkNTYyZThkZjQKLVZQTUlOVUJfMTI4KG1lbSkKK1ZQTUFYVURfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTg3YjRhNjBjOWFjMDY0My4wNWZhY2RkZWFiZTNiZTQ4LjllNWFkMTkwYTk2Y2VlZGMuYzI0YmQ5ZGMyYWI4MDhhZAogICAgIDgzODU4ZGY3MjFkYmRiNDQuN2Y0ZDU2NjI5M2I5Y2UzZC40YjljZGU2OGViYzFmZDNlLjUxNDc3MjU2MTgwZDIzNjEKQEAgLTE2ODQyLDExICsxNjg0MiwxMSBAQAogICBhZnRlcgogICAgIDk4N2I0YTYwYzlhYzA2NDMuMDVmYWNkZGVhYmUzYmU0OC45ZTVhZDE5MGE5NmNlZWRjLmMyNGJkOWRjMmFiODA4YWQKICAgICA4Mzg1OGRmNzIxZGJkYjQ0LjdmNGQ1NjYyOTNiOWNlM2QuNGI5Y2RlNjhlYmMxZmQzZS41MTQ3NzI1NjE4MGQyMzYxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRiNWFkMTY4YTk2Y2VlM2UuNTE0NzcyNTYxODBkMDg2MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ZTVhZDE5MGViYzFmZDNlLmMyNGJkOWRjMmFiODA4YWQKICAgICAxOWUzZWZhMmYyN2E4NDBmLmRjYjUzNGM2N2ZhY2IxZGQuNWI3NzU5NzIyNWRhNDNjOS4wZjRmMzhjNGU0NmU4MWJjCiAgICAgZjZmMjVkOGZmYjkyM2RiYwogCi1WUE1BWFNCXzEyOChyZWcpCitWUE1JTlVEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDVkYmE1MzRlMDNiY2E3MmUuN2JjZjA1OGVhMzAyZDAzMC43ODYxODI3ZWJiZTFmZGUwLjc1YThiZTdjNTZiNmYwNGEKICAgICBhMGYzMTY2Yzk3N2JmYWJlLjEzNDk1YTZlYTk2YTY4YjQuODExODVmMWVmNWE0ZDRlYi4xN2MxZTRjNTBlMmQ0YmQ3CkBAIC0xNjg1NCwxMiArMTY4NTQsMTIgQEAKICAgICAyYWU4ZjQ3NGQ0ZTE0ZWU1LjUwMTVhZGJhMjYwYjY2OTMuNGVkNmI3Y2JkNTAyMTVjOC41ZWRiNjBiZjg0MTlmNmM3CiAgICAgYmM3NGFlNGE3YWE2YmY4MgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NDI2NWYxZWY1YTQ3MmViLjFiYzE0NjM3Njk0YTRiZDcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTQyNmM4MTRjYTgxNzJhYS4xN2MxZTRjNTBlMmQ0YmQ3CiAgICAgYTBmMzE2NmM5NzdiZmFiZS4xMzQ5NWE2ZWE5NmE2OGI0LjgxMTg1ZjFlZjVhNGQ0ZWIuMTdjMWU0YzUwZTJkNGJkNwogICAgIDFiZTlhMzU0NTM1ODczMTcuYmIxYzY4MmUyMWJlMDZjNi41NDI2YzgxNGNhODE3MmFhLjFiOGU0NjM3Njk0YTBlOWQKICAgICAyYWU4ZjQ3NGQ0ZTE0ZWU1LjUwMTVhZGJhMjYwYjY2OTMuNGVkNmI3Y2JkNTAyMTVjOC41ZWRiNjBiZjg0MTlmNmM3CiAgICAgYmM3NGFlNGE3YWE2YmY4MgotVlBNQVhTQl8xMjgobWVtKQorVlBNSU5VRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAxMjI0YWRjMjY4ZmUyNGY5LjI4M2IwNzM3YjVhMWM3ZDUuYWUwMGE0ZmVkNDVjNDY0Ny5jOTc2MmFhZmIzYjVmN2YyCiAgICAgM2FiOWQ4MTU2OTJjZTI1OS43MzJmZDgwOTkzMjQxOTkzLmIyYTljOWU2NDhiZTYwMGQuMjM1MDFjMmNmZjI2NTVkNApAQCAtMTY4NjksMTEgKzE2ODY5LDExIEBACiAgIGFmdGVyCiAgICAgMTIyNGFkYzI2OGZlMjRmOS4yODNiMDczN2I1YTFjN2Q1LmFlMDBhNGZlZDQ1YzQ2NDcuYzk3NjJhYWZiM2I1ZjdmMgogICAgIDNhYjlkODE1NjkyY2UyNTkuNzMyZmQ4MDk5MzI0MTk5My5iMmE5YzllNjQ4YmU2MDBkLjIzNTAxYzJjZmYyNjU1ZDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjIwMGM5ZmU0ODVjNjA0Ny4yMzc2MmEyY2ZmMjY1NWYyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFlMDBhNGZlNDhiZTYwMGQuMjM1MDFjMmNiM2I1ZjdmMgogICAgIDczYmRhMmY5MTYzYzU4ODMuNWQyYWEwOGJiNGE1M2IyNy4xNzY1OGU1MmYxZTIzNTgxLmRmZTU2ZWExNTI2ZTc0NmQKICAgICBmYTM4YzY3MTkyNWZhZDdlCiAKLVZQTUFYU0JfMTI4KHJlZykKK1ZQTUlOVURfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjNmNjhkOGJiMDNjNTJmNS4zY2M1M2E2MmZhMzU4OGE1LmIzYzk4ZjEyMmZiYjgyNTYuMzEwZjI2YWY1ZGJkNjc4NwogICAgIDc3NmJiZjU5NDg5MzllODEuNDhlMGVlNTU2MTM1MDE1Zi5jNjM5MmM1ODE3YzQ5MzAyLjYwYTdkYzVmZmZkN2M0NTAKQEAgLTE2ODgxLDEyICsxNjg4MSwxMiBAQAogICAgIDBiYTg1NWM1NThkZDFlODMuOTk4MzlhODkyYTc3YmQ0ZS44ZmJhNWVkMzliZTAwMzgzLjZkZDE5MzZkNTRmZWVlZDkKICAgICAwM2ZiOGNhMTNlMjIzM2YxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYxMzk3MzU4MTc0Y2FhMDIuNjBmOTJkNWZmZjNmMDg1MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNjM5MmM1ODA3NGNhYWQ4LjYwYTdkYzVmZjMzZjA4MDcKICAgICA3NzZiYmY1OTQ4OTM5ZTgxLjQ4ZTBlZTU1NjEzNTAxNWYuYzYzOTJjNTgxN2M0OTMwMi42MGE3ZGM1ZmZmZDdjNDUwCiAgICAgOTBlMjU4NDlmN2YwY2VjYy43M2RjM2FiZTY4NDc3ZmRlLmYxYzU3M2NhMDc0Y2FhZDguODBmOTJkNTBmMzNmMDgwNwogICAgIDBiYTg1NWM1NThkZDFlODMuOTk4MzlhODkyYTc3YmQ0ZS44ZmJhNWVkMzliZTAwMzgzLjZkZDE5MzZkNTRmZWVlZDkKICAgICAwM2ZiOGNhMTNlMjIzM2YxCi1WUE1BWFNCXzEyOChtZW0pCitWUE1JTlVEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDFlNDM5M2RhY2ViNzkzN2MuNDQwOWIxM2IwOGU4Y2E1MS45NmEzOGFhM2MzZDI3OGRhLmZlNjVlYmRlNzAwYmQ5YjAKICAgICA5YTc0MjQwMzFmYzdjYWE2Ljk3NTE2ODE2YTI5ZDBkZTMuNDYwNjg3ZjY1MDYzNmNhZi45ODEwMTU1OTIyNTk2OTBhCkBAIC0xNjg5NiwxMSArMTY4OTYsMTEgQEAKICAgYWZ0ZXIKICAgICAxZTQzOTNkYWNlYjc5MzdjLjQ0MDliMTNiMDhlOGNhNTEuOTZhMzhhYTNjM2QyNzhkYS5mZTY1ZWJkZTcwMGJkOWIwCiAgICAgOWE3NDI0MDMxZmM3Y2FhNi45NzUxNjgxNmEyOWQwZGUzLjQ2MDY4N2Y2NTA2MzZjYWYuOTgxMDE1NTkyMjU5NjkwYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NjA2OGFmNjUwNjM3OGRhLmZlNjUxNTU5NzA1OTY5MGEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDYwNjg3ZjY1MDYzNmNhZi45ODEwMTU1OTIyNTk2OTBhCiAgICAgMjVjNWQ1ZDY3NjhkYWM4NS5mYmM2ZDdhYjA2MzI0YjAxLjJmYzc5NWZiYjU1N2VlZTIuYzI5ODMwNGM4YThmYTZmOAogICAgIDA4MGUxYTljNzk5MGNiZTMKIAotVlBNQVhTQl8xMjgocmVnKQorVlBNSU5VRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBlYWI0OTEwYmI1ZTM5YWFjLmViN2NlZDU3YjM1YmNlOTIuYzQ4YTg4M2QwODJhYmVlNS4yMGJlOWU4NWM0ZDNmNDk4CiAgICAgYzVkNzkxMDVkOTE2NGZmZi44MzRkN2Y3ODIzZDViOGVlLjE3NjU4NGU0NjRmY2I4M2UuMzMyOWEzZjkzN2I2MjM0OApAQCAtMTY5MDgsMTIgKzE2OTA4LDEyIEBACiAgICAgZDJjNDFjNGI0YTRhNTlmMS45NjZjMDI0YjA1ZmVjZjQyLmNiOTE0ZDIyOWM1YzMzZjkuMzQ4OTkzNGZiN2RkZWE0MAogICAgIGQ5MTc3NTA5ZmQzYmZiZTEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTA2NWM3MGM2NDMzNzYzZS40NjI5MjE0MzM3MGEzNjQ4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE3NjU4NGU0NjRmY2I4M2UuMzMyOWEzZjkyOTBhMzYxYgogICAgIGM1ZDc5MTA1ZDkxNjRmZmYuODM0ZDdmNzgyM2Q1YjhlZS4xNzY1ODRlNDY0ZmNiODNlLjMzMjlhM2Y5MzdiNjIzNDgKICAgICBmM2MzMTZmNzgxYjQyNTg3LmM4MDQwODI2ZGYwNzI0YzUuNTBhNGM3MGNiNjMzNzZiNS40NmQzMjE0MzI5MGEzNjFiCiAgICAgZDJjNDFjNGI0YTRhNTlmMS45NjZjMDI0YjA1ZmVjZjQyLmNiOTE0ZDIyOWM1YzMzZjkuMzQ4OTkzNGZiN2RkZWE0MAogICAgIGQ5MTc3NTA5ZmQzYmZiZTEKLVZQTUFYU0JfMTI4KG1lbSkKK1ZQTUlOVURfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMTA0OTQzNWQxNTJmMjQyYS5iYzI2YTA2ZmNmNjMyN2U4LmM4NTNlYmQ1YjFjNTc1OTIuZTM3ODEzOTBhZjAxMmRiNAogICAgIGI3ZWI3YTM3MWVjNTIzNDguMGUzNTlkY2RhZDhiY2ExOS4zYzgzM2VhZmZlNjlkMWUwLmY2YTcxNGM0OGRiMTllOTIKQEAgLTE2OTIzLDExICsxNjkyMywxMSBAQAogICBhZnRlcgogICAgIDEwNDk0MzVkMTUyZjI0MmEuYmMyNmEwNmZjZjYzMjdlOC5jODUzZWJkNWIxYzU3NTkyLmUzNzgxMzkwYWYwMTJkYjQKICAgICBiN2ViN2EzNzFlYzUyMzQ4LjBlMzU5ZGNkYWQ4YmNhMTkuM2M4MzNlYWZmZTY5ZDFlMC5mNmE3MTRjNDhkYjE5ZTkyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNjNTMzZWQ1ZmU2OTc1ZTAuZjY3ODE0YzRhZjAxMmRiNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYzgzM2VhZmIxYzU3NTkyLmUzNzgxMzkwOGRiMTllOTIKICAgICBjMWFkMTAyZTZjMDg4ZGIyLjViODhmMmVjZTIzYTgyZDcuNTZmMTEzMDJlYzc0OWUyOC43YTA5YjcyYTE5NWJkNzZhCiAgICAgYTJkNDUxMzVmZTZlMThiYgogCi1WUE1JTlNCXzEyOChyZWcpCitWUE1VTExEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDM1MTYxN2I1MWViYmMwZTAuZGQ2NzY3MjNlYmNkNzI1Ni4wZDY2NDM4NDcxZDkwZmJkLmI1Yzc4YzU0YzZmNTg3N2EKICAgICA4ZTFiMDQxNjE0Y2QwYjg1LmQ3YzAxNjRkYzk2NDFiN2YuOTcyMGZkMDdjOGI2NjE4Yy5jNDE2NjBhNmIxODExNjdiCkBAIC0xNjkzNSwxMiArMTY5MzUsMTIgQEAKICAgICAwMTlkNDMyY2Y0NzA3ZWZkLmQ5ODE2ZWY1MTQzYWFiMGQuYTM1YTljN2U0MTYwNDc5Ny42NjUzMDZmYjJiZjAxOTM4CiAgICAgYjFkOGQxZDVmMmVhMDQ0ZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NzAyZmRlMTg1YjZiNThjLmM0YWMwYWE2YjE4MTA4NTYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmNiOTI3MjdkNTlkZDBjYy4xZDUyZjA3ZWE5Y2U2NTUyCiAgICAgOGUxYjA0MTYxNGNkMGI4NS5kN2MwMTY0ZGM5NjQxYjdmLjk3MjBmZDA3YzhiNjYxOGMuYzQxNjYwYTZiMTgxMTY3YgogICAgIDA4MmYxNGM0N2QzMDM3NTUuOGQ4NTlhOWEyM2RhNDU1OC41NTAyMWNlMTg1NWZiNWYxLjYxYWMwYWU1YzkyNzA4NTYKICAgICAwMTlkNDMyY2Y0NzA3ZWZkLmQ5ODE2ZWY1MTQzYWFiMGQuYTM1YTljN2U0MTYwNDc5Ny42NjUzMDZmYjJiZjAxOTM4CiAgICAgYjFkOGQxZDVmMmVhMDQ0ZAotVlBNSU5TQl8xMjgobWVtKQorVlBNVUxMRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAxYzA3ZTY2MDNiMjA4NmMwLmQzYjM4ZWI4MTYxYTFkMjguOTk4MjBlNGFiODkxMGJjYy5kZDczNzk0YTlhNDM1MjJiCiAgICAgODVhY2MwODYyMTllNWJiZC5kY2JiZjBkNTdlYmE0ZjgzLmE3NTJmNjg1MmNlOTFmYmYuNWY5OGIwYjIyYzk3MTQ1OQpAQCAtMTY5NTAsMTEgKzE2OTUwLDExIEBACiAgIGFmdGVyCiAgICAgMWMwN2U2NjAzYjIwODZjMC5kM2IzOGViODE2MWExZDI4Ljk5ODIwZTRhYjg5MTBiY2MuZGQ3Mzc5NGE5YTQzNTIyYgogICAgIDg1YWNjMDg2MjE5ZTViYmQuZGNiYmYwZDU3ZWJhNGY4My5hNzUyZjY4NTJjZTkxZmJmLjVmOThiMGIyMmM5NzE0NTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTk4MmY2ODViODkxMGJiZi5kZDk4YjBiMjlhOTcxNDJiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk0MDA4ODcyMTE1MTgxMzQuZDc5ZDM1NzRiZjJmZWNmMwogICAgIGJjODhiOTU4MzZhNGVkMDkuZmZkNGU5NzQ5MjA4NWY3Ny4yMTkzOTA1ZGYzZDI1NWYyLmFiMzkxOTAyNjhiYmE3MzEKICAgICAyZDRkNDNjMzRiYTRmMjMzCiAKLVZQTUlOU0JfMTI4KHJlZykKK1ZQTVVMTERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjc5ZWI3Y2VkNjJjZTI3Zi40MzU2Y2ZkYjljNDQyMmFlLmQxN2Q3OGNjNzZjZmI1NjkuNDQ5YjM5ZDI3ZDdhZWY4YgogICAgIGI1Nzc3MDkxYTZlMGI0YzEuMzhjYTlhYWExMTVjOWE4ZS40YTQ5MGY2NjEwYmM4ZjNhLjI2YTMxYWRlNDc1NDJlMDgKQEAgLTE2OTYyLDEyICsxNjk2MiwxMiBAQAogICAgIGZjZjVhMWVjODNmYWVjZDUuZDdkNDQ1ZGM5MTI0NDJhZS45Yzc5NDIwZGQ4MzViZDJjLjk4ZTI3NTY3MDljZjhhNjAKICAgICBkZmIxZTdiZDM5ODkxZjkzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM0ODNhOWFkZmRiYzhmOTcuYTNhM2FmZGU0NzU0Y2U5NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42N2JiYmRlZTAxZmQ4YjM2LjYxZGRmY2NhODFjNTY4YjAKICAgICBiNTc3NzA5MWE2ZTBiNGMxLjM4Y2E5YWFhMTE1YzlhOGUuNGE0OTBmNjYxMGJjOGYzYS4yNmEzMWFkZTQ3NTQyZTA4CiAgICAgNzMyNjZhNzc1NjRiYTNhNC43NWIwOThiMWFlZjgxMGQ1LmM0ODNhOWFkZmQ1YTI4OTcuYTM3NmFmNmI2YzZkY2U5NgogICAgIGZjZjVhMWVjODNmYWVjZDUuZDdkNDQ1ZGM5MTI0NDJhZS45Yzc5NDIwZGQ4MzViZDJjLjk4ZTI3NTY3MDljZjhhNjAKICAgICBkZmIxZTdiZDM5ODkxZjkzCi1WUE1JTlNCXzEyOChtZW0pCitWUE1VTExEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDU1YjA4MTU4MTlhNDQ5NWIuYWUzMTExNWNjOTc4Y2JmZi4zYTAyMWIxN2Q2ZWRlOTQ2LjJmNzVkNmYyM2RkYTg5YTQKICAgICBkNmFiYmYyNmM0MmVjM2UzLmU0MjZiNzM0YzI1MTdjY2YuN2EwNjk4NGU5ODVmYzRjOC5kN2M0NjJjOGM5ZDRjYWFiCkBAIC0xNjk3NywxMSArMTY5NzcsMTEgQEAKICAgYWZ0ZXIKICAgICA1NWIwODE1ODE5YTQ0OTViLmFlMzExMTVjYzk3OGNiZmYuM2EwMjFiMTdkNmVkZTk0Ni4yZjc1ZDZmMjNkZGE4OWE0CiAgICAgZDZhYmJmMjZjNDJlYzNlMy5lNDI2YjczNGMyNTE3Y2NmLjdhMDY5ODRlOTg1ZmM0YzguZDdjNDYyYzhjOWQ0Y2FhYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYTAyOTgxNzk4ZWRjNGM4LmQ3YzRkNmM4YzlkNDg5YTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODU0M2U5MDIzMTcxZDZiMC5mZmEwOTExMDgxNjU1ODhjCiAgICAgNjljNTE4MDhlZGJkOWFlNS40YjZhOTJjNzQzNDU0MjBmLjAyYmU3NDYxMDQ2YTAxM2QuZDk4YTRlZjhjNGY4OTUxOQogICAgIGViOWFhNzI5NmMzYTk5ZDgKIAotVlBNSU5TQl8xMjgocmVnKQorVlBNVUxMRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA4NDJjZThmY2FhMDIwMGQ2LjMzN2IyYmY1YTNkYTZmYjcuMzU1MmJmNWMwMjc4ZDBkOC4wMTBiY2IxNWU2MWNkYzg3CiAgICAgZmU4ZDBiZGMxYWRhMDdiZi43ODVlZDNjMzk0OTU4NGZhLjEzMjIxMTA3ZTYzNzIwZjYuNGQ1ZWI5NzViNmE3ZGE2YwpAQCAtMTY5ODksMTIgKzE2OTg5LDEyIEBACiAgICAgMDhlZGVjNzIwMmYwZTQwNS5lM2Q2Y2ViNjk4MTc2MTgxLjFhYWQxNjU0OGE4NmY0ZTQuM2M0NjQ2ZTg4ZTc1MmRiNQogICAgIDk2NzJkZmQ0Y2ZkMWZiNzIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTMyMjg1MDc4YTBkMjBmNi5jMjgzYjg2YzkwYTdiNjE3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE0MTkzYTdhOGE0MzkzMjQuNGEyMTU1NWM0M2E1NjdiNAogICAgIGZlOGQwYmRjMWFkYTA3YmYuNzg1ZWQzYzM5NDk1ODRmYS4xMzIyMTEwN2U2MzcyMGY2LjRkNWViOTc1YjZhN2RhNmMKICAgICBiNjBhMGUzNDU5NTBlYTQxLjE0Mzg4YTVmZGNmYjk2ZDkuNDAyNzg1MzY4YTBkNmQxNi5jMjgzYjg2YzkwMTZiNjE3CiAgICAgMDhlZGVjNzIwMmYwZTQwNS5lM2Q2Y2ViNjk4MTc2MTgxLjFhYWQxNjU0OGE4NmY0ZTQuM2M0NjQ2ZTg4ZTc1MmRiNQogICAgIDk2NzJkZmQ0Y2ZkMWZiNzIKLVZQTUlOU0JfMTI4KG1lbSkKK1ZQTVVMTERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYWVkNWZkMWM2YzM1ZGI3OS41MDgyYTEwMWIyNDUzMmJhLmMxMDQxOWIyZTRmNWExMWQuZmIwMGMwY2Q4MzJmZjEwYgogICAgIDVmMzkxZWFkODNhZDhhZjcuZWExNzJhNGQwNGRiMTAwYS44YThlZTk0MWRiYTIxMWRhLjQxNmM3ZjBkMTE5MzlmMzgKQEAgLTE3MDA0LDExICsxNzAwNCwxMSBAQAogICBhZnRlcgogICAgIGFlZDVmZDFjNmMzNWRiNzkuNTA4MmExMDFiMjQ1MzJiYS5jMTA0MTliMmU0ZjVhMTFkLmZiMDBjMGNkODMyZmYxMGIKICAgICA1ZjM5MWVhZDgzYWQ4YWY3LmVhMTcyYTRkMDRkYjEwMGEuOGE4ZWU5NDFkYmEyMTFkYS40MTZjN2YwZDExOTM5ZjM4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhhOGVlOWIyZGJhMmExZGEuZmIwMGMwY2Q4MzkzOWYwYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMjI5ODgzMjBjMzgxZmIyLjgyMmI3ZDY5OWQ4MzhmNjgKICAgICBmYzM3NTY1NThlMGI0NDA2Ljg0NmRhNGNjMDBmYjZiMmQuNGNlNTA2YzQzYjk2NzQ2Ni42OGJlMmU5MjU5YmQwMTUyCiAgICAgMDEzYzE1YWY0YzliMmQ5NwogCi1WUEVSTTJGMTI4XzB4MDAocmVnKQorVlBNQVhVV18xMjgocmVnKQogICBiZWZvcmUKICAgICA2ZTAzMDE0NDQzNjRmYTkyLjlmNjk2NTQ2YmEwOGM4ZWYuM2NjNjhmZDhlMTlkNjA1Ny5mZTRhNGI5MWRkZjZkZThkCiAgICAgMGM1ZmVmYmJkYmE1YTVlZi40Y2NjNjcyZWNmNGEwYTAwLmI1NGUzYzUwZDViMWQ0Y2UuMGIzYzA0YTA5OTU0Njk4NApAQCAtMTcwMTYsMTIgKzE3MDE2LDEyIEBACiAgICAgNDYwNWJkMDM1Y2JjODQ3ZC4zMTU5MzA5ODI1Y2FiYTQ0LjVmMWFkMDM4NjU1YzJkNGQuYTVmMWMyMzRkNjNiZDE5NAogICAgIGViNGVjMDkyOGRkYzI3MDUKICAgYWZ0ZXIKLSAgICBiNTRlM2M1MGQ1YjFkNGNlLjBiM2MwNGEwOTk1NDY5ODQuYjU0ZTNjNTBkNWIxZDRjZS4wYjNjMDRhMDk5NTQ2OTg0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI1NGVhOWEyZDViMWQ0Y2UuNGY4NWFkZGQ5OTU0ZDE3OAogICAgIDBjNWZlZmJiZGJhNWE1ZWYuNGNjYzY3MmVjZjRhMGEwMC5iNTRlM2M1MGQ1YjFkNGNlLjBiM2MwNGEwOTk1NDY5ODQKICAgICAzNTljZDk4MmFmZTk2YTU5LmRlMmVkNmZiZTlkY2M2NjIuNGQ1MWE5YTI3OGMxMDUzYy40Zjg1YWRkZDhlYmNkMTc4CiAgICAgNDYwNWJkMDM1Y2JjODQ3ZC4zMTU5MzA5ODI1Y2FiYTQ0LjVmMWFkMDM4NjU1YzJkNGQuYTVmMWMyMzRkNjNiZDE5NAogICAgIGViNGVjMDkyOGRkYzI3MDUKLVZQRVJNMkYxMjhfMHgwMChtZW0pCitWUE1BWFVXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGZjNjcyMmUxY2ZhYjhkZjcuOWNlODk2YWM3ZGFiMzEwNy4yMDFhZjBmMDlmMjFhMGNmLjQ3ZjdhZjgwMzkwYjg5YWUKICAgICBiMzA3NjQwZmJhYjViZjk1LjkxOGY2MWU4YWY0MWFhYTIuODkzZDkzZjE3MmVjMzUzMi42MTMyNDJlNThlNWM1NDBiCkBAIC0xNzAzMSwxMSArMTcwMzEsMTEgQEAKICAgYWZ0ZXIKICAgICBmYzY3MjJlMWNmYWI4ZGY3LjljZTg5NmFjN2RhYjMxMDcuMjAxYWYwZjA5ZjIxYTBjZi40N2Y3YWY4MDM5MGI4OWFlCiAgICAgYjMwNzY0MGZiYWI1YmY5NS45MThmNjFlOGFmNDFhYWEyLjg5M2Q5M2YxNzJlYzM1MzIuNjEzMjQyZTU4ZTVjNTQwYgotICAgIDg5M2Q5M2YxNzJlYzM1MzIuNjEzMjQyZTU4ZTVjNTQwYi44OTNkOTNmMTcyZWMzNTMyLjYxMzI0MmU1OGU1YzU0MGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODkzZGYwZjA5ZjIxYTBjZi42MTMyYWY4MDhlNWM4OWFlCiAgICAgODcwZjc4YjRmNGE3N2I4OC5jYjVjYjljOWI0OTNmN2JjLjM1ZDg2ZTliOTQwZjViMmIuOWFmNTcwYjYzMjEyMmE2NwogICAgIDcyMTUwNGZhYjc4ZmFkYmYKIAotVlBFUk0yRjEyOF8weDAwKHJlZykKK1ZQTUFYVVdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZWJjNDNiMGIyZmRkOGZjMi41YzBmNDMwNDdkYTg3YzM0LmM4MWEzZjQ2YmY2NzQyOTQuMzBlOTlmMWQxYzdmNjQxOQogICAgIDYzNGUxMTU1MzU4ODBlMWQuNDdjN2RlZTExZDEzMzkzZC5kNWNkYTYwNjRiMTI0YjJlLjE1OGJhM2Y2NmM5NDBiOGUKQEAgLTE3MDQzLDEyICsxNzA0MywxMiBAQAogICAgIGJjMjE4YjQ1NWQyOGNkODkuZDM4ZTc0ZjcxNDU5ZGIxNC44ZjQxMDgwMDUzMWY4NjU1LjA5YjUxMDYxZGFkYTI3YmMKICAgICBkMGQ1NzJjYTMwMjMxM2NjCiAgIGFmdGVyCi0gICAgZDVjZGE2MDY0YjEyNGIyZS4xNThiYTNmNjZjOTQwYjhlLmQ1Y2RhNjA2NGIxMjRiMmUuMTU4YmEzZjY2Yzk0MGI4ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNWNkZWI3NWYzMjE0ZTM1LmJlOGJmNDEzYTM1ODBlYjUKICAgICA2MzRlMTE1NTM1ODgwZTFkLjQ3YzdkZWUxMWQxMzM5M2QuZDVjZGE2MDY0YjEyNGIyZS4xNThiYTNmNjZjOTQwYjhlCiAgICAgMzRmZTgyNDQ2NjFkNjM3Yi4yNjAyYzUzOWYxZjU3MGNlLjRlYzBlYjc1ZjMyMTRlMzUuYmU4YmY0MTNhMzU4MGViNQogICAgIGJjMjE4YjQ1NWQyOGNkODkuZDM4ZTc0ZjcxNDU5ZGIxNC44ZjQxMDgwMDUzMWY4NjU1LjA5YjUxMDYxZGFkYTI3YmMKICAgICBkMGQ1NzJjYTMwMjMxM2NjCi1WUEVSTTJGMTI4XzB4MDAobWVtKQorVlBNQVhVV18xMjgobWVtKQogICBiZWZvcmUKICAgICBmMGI3OTYzY2JlNDE4ZDEzLjU1MDQyN2MyYjczMzg2ZjIuMmIzNTY4MDhhMjRiMzYzYS5mNDlhZmIxMTA4OTgzMDNiCiAgICAgNDYyN2Y4YTJhMjNmNTNiZC41ZGYwNTIyOTBmY2NjYjYzLjBiYzQxYzU2YjhkNzNmNmQuZDkxOGJmMTZhZDE5ODg5MwpAQCAtMTcwNTgsMTEgKzE3MDU4LDExIEBACiAgIGFmdGVyCiAgICAgZjBiNzk2M2NiZTQxOGQxMy41NTA0MjdjMmI3MzM4NmYyLjJiMzU2ODA4YTI0YjM2M2EuZjQ5YWZiMTEwODk4MzAzYgogICAgIDQ2MjdmOGEyYTIzZjUzYmQuNWRmMDUyMjkwZmNjY2I2My4wYmM0MWM1NmI4ZDczZjZkLmQ5MThiZjE2YWQxOTg4OTMKLSAgICAwYmM0MWM1NmI4ZDczZjZkLmQ5MThiZjE2YWQxOTg4OTMuMGJjNDFjNTZiOGQ3M2Y2ZC5kOTE4YmYxNmFkMTk4ODkzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJiMzU2ODA4YjhkNzNmNmQuZjQ5YWZiMTFhZDE5ODg5MwogICAgIGZmZGY2OGZhZGIwY2FkZTkuMjUxYjQ2NjEyYmQ2ZTgwYy5jZWNhYjQ1Y2VhZWY0NmE5LjkzYjNhYmE4M2E2MTMwNDgKICAgICAyMDY3Y2IwZTU5NDBmOWZjCiAKLVZQRVJNMkYxMjhfMHgwMChyZWcpCitWUE1BWFVXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDlkNzFhYzE3ZDg1NjVmZDIuMWJjMDZkYzQ2OGY0YmJjMi45ZmYwMDcwYjI2NWYzOTljLjZiZDk5MGVkM2Y5M2JkMGEKICAgICA2NjFiNGEyZjU0MmZhMDc2LmRkNWZhMDMyYmFlYjAzYWYuZjYwMTQ3NGU5MWE1MDRlNC5mZWZmMWQ2YzhhMDFkMDI3CkBAIC0xNzA3MCwxMiArMTcwNzAsMTIgQEAKICAgICA0YjgyYWUzY2IxNWM5ZGQ2LmJlMDc4MWFhMWUzYjM0NmYuYWYwMjM1NTAyMDlhZmY0OS43OWM0MzdlMzc4NmJiZDQ4CiAgICAgMTlmYWJjYjQ1MzgwMGVhMwogICBhZnRlcgotICAgIGY2MDE0NzRlOTFhNTA0ZTQuZmVmZjFkNmM4YTAxZDAyNy5mNjAxNDc0ZTkxYTUwNGU0LmZlZmYxZDZjOGEwMWQwMjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjYwMTQ3NGU5MWE1ODg4Zi5mZWZmZDZjNGVhNDVkMDI3CiAgICAgNjYxYjRhMmY1NDJmYTA3Ni5kZDVmYTAzMmJhZWIwM2FmLmY2MDE0NzRlOTFhNTA0ZTQuZmVmZjFkNmM4YTAxZDAyNwogICAgIGQ3YjJhMWMyNjg1OGY2OTMuMWY4ODdkMzBlZGZmNDJkOS44Nzk4MDM5NjA1MzU4ODhmLjY0MGFkNmM0ZWE0NTNjMmQKICAgICA0YjgyYWUzY2IxNWM5ZGQ2LmJlMDc4MWFhMWUzYjM0NmYuYWYwMjM1NTAyMDlhZmY0OS43OWM0MzdlMzc4NmJiZDQ4CiAgICAgMTlmYWJjYjQ1MzgwMGVhMwotVlBFUk0yRjEyOF8weDAwKG1lbSkKK1ZQTUFYVVdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjA3OGUyMjM5NDhmZWM2Yi4yMGQ3NmMwYWNhYzhkM2ViLjk2YTcyNzhkNjlhYzk0OWIuYzg4YmRiZTY3ZDYwYTZjMAogICAgIDZhMDkyMzFjNTlhNTEzY2IuYjFmY2Q3OTY1MDI3ZDI3ZC44MzM1ZWJjM2U5NWQxZjg5LjJmN2ZmMGM1YjkxNGI5OWQKQEAgLTE3MDg1LDExICsxNzA4NSwxMSBAQAogICBhZnRlcgogICAgIDIwNzhlMjIzOTQ4ZmVjNmIuMjBkNzZjMGFjYWM4ZDNlYi45NmE3Mjc4ZDY5YWM5NDliLmM4OGJkYmU2N2Q2MGE2YzAKICAgICA2YTA5MjMxYzU5YTUxM2NiLmIxZmNkNzk2NTAyN2QyN2QuODMzNWViYzNlOTVkMWY4OS4yZjdmZjBjNWI5MTRiOTlkCi0gICAgODMzNWViYzNlOTVkMWY4OS4yZjdmZjBjNWI5MTRiOTlkLjgzMzVlYmMzZTk1ZDFmODkuMmY3ZmYwYzViOTE0Yjk5ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NmE3ZWJjM2U5NWQ5NDliLmM4OGJmMGM1YjkxNGI5OWQKICAgICAzNzk4ZWI1Y2RlMTMyYjA2Ljc2ZWFhNDljMTBlZTFkY2EuMGM0YmJlZGRmOWIwYTU1ZS41N2Q3NTcwZjNkNzMxMjQwCiAgICAgZDFkM2EyNTJiYzM3ZDA1YwogCi1WUEVSTTJGMTI4XzB4RkYocmVnKQorVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDA4NmE0YzhlOGExOGU5OTEuNzIyZTZhN2NkNjg0OTQzOC42MzRhZmZlZTgzNmZlMWRkLjYwNmJjNTk4YzE2YTE4OWQKICAgICA1OWU4NTEyZjQyYTM5Yjg4LjYwMDdmNGQ1YzEyYjM2YjMuN2JhYmY3YWZkMzE0NWYxZC4zOWE5ZGE1NjJmOTRhNjRlCkBAIC0xNzA5NywxMiArMTcwOTcsMTIgQEAKICAgICBiOWM4NWM0ZmUyZTRiNTczLmM1YjQxZWU2ZTE0YzE0MzIuYTBhMGFmMmU3N2Y2NzhkNy5lYWFlMWU5MDZiNjkwMmI4CiAgICAgN2EwZDQ2ZTQ3MTJkNDljOAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwODZhNGM4ZThhMThlOTkxLjcyMmU2YTdjZDY4NDk0MzguNjM0YWZmZWU4MzZmZTFkZC42MDZiYzU5OGMxNmExODlkCiAgICAgNTllODUxMmY0MmEzOWI4OC42MDA3ZjRkNWMxMmIzNmIzLjdiYWJmN2FmZDMxNDVmMWQuMzlhOWRhNTYyZjk0YTY0ZQogICAgIDIwOTlhZGEwODE2MjIwZjAuZGRmMDA3NTViYjE0Y2RhMi4xYzU5ODg0YjliNjdkMzM3LjczZDA3OTA1NWUzYTBiOWQKICAgICBiOWM4NWM0ZmUyZTRiNTczLmM1YjQxZWU2ZTE0YzE0MzIuYTBhMGFmMmU3N2Y2NzhkNy5lYWFlMWU5MDZiNjkwMmI4Ci0gICAgN2EwZDQ2ZTQ3MTJkNDljOAotVlBFUk0yRjEyOF8weEZGKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAxODlkCitWUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgZmZiYTZjZWI4ZDkwOTlmYy44MGMzNWJhODAyYjI5NWJkLmY0MjFiNjc2NGZkZWM4OGYuNjVjYjY2YzQwNDRjOGNhOAogICAgIDU0ODEwYzkyZGFhMGIxN2UuZDBkNGE1MTU3YzVhZmQ3Yy40NjAyNDlmMDFmZDZhNWU0LmM1MjhhYjc5ZGVmNjQ5NTcKQEAgLTE3MTEyLDExICsxNzExMiwxMSBAQAogICBhZnRlcgogICAgIGZmYmE2Y2ViOGQ5MDk5ZmMuODBjMzViYTgwMmIyOTViZC5mNDIxYjY3NjRmZGVjODhmLjY1Y2I2NmM0MDQ0YzhjYTgKICAgICA1NDgxMGM5MmRhYTBiMTdlLmQwZDRhNTE1N2M1YWZkN2MuNDYwMjQ5ZjAxZmQ2YTVlNC5jNTI4YWI3OWRlZjY0OTU3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDU3MmVhMmM2NzU2OTRiN2EuMDc0ODM2MDNlYzY3Mjk1OS45NjIyNTU0MDcwNDE2NjVlLjFkMDE3OWI5OWY3ZmViOTAKICAgICBlMzhjYWI3MTc5ZjUyNDFkLjgwNmIwYmRmZWY2NTU1MDMuYzI0ZTU1NTI1YzJhYzgyOC5jYWEzY2NmMGU2NzNhZmZlCiAgICAgMjY1YWExOGI0ZDVmZDE0ZAogCi1WUEVSTTJGMTI4XzB4RkYocmVnKQorVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDhlNzJmMmY0NzBjZThkMmIuZDM2OWEyODEwMjUyZjg5My45Nzg5MWUxMzIxZTFiYzI0LmE1NTJjNTEyZmY5ZDg3NmYKICAgICA1ZjM2YmQ5OWVjNGMxZjQyLjA1OGYwM2UxMmQ4YzgyMDcuYThlZTZkMGQxZDY2OWI2OC4xYWZhMjE2Yzc2YTc1ZTVmCkBAIC0xNzEyNCwxMiArMTcxMjQsMTIgQEAKICAgICBhN2Y2YWY0NDVkYTdiM2NjLjliZTlmMzQwZDhjNGFiOWMuMjdiYmFjZmZlNGJkYjEwYy4yZjY1OGY5ZjRlYWQ0OGU3CiAgICAgODVjMDk4NGZlN2MyZDFkOQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICA4ZTcyZjJmNDcwY2U4ZDJiLmQzNjlhMjgxMDI1MmY4OTMuOTc4OTFlMTMyMWUxYmMyNC5hNTUyYzUxMmZmOWQ4NzZmCiAgICAgNWYzNmJkOTllYzRjMWY0Mi4wNThmMDNlMTJkOGM4MjA3LmE4ZWU2ZDBkMWQ2NjliNjguMWFmYTIxNmM3NmE3NWU1ZgogICAgIGYzZjRmZGU1NWM2NmMyM2UuNTRjYjRhN2QxNmFlN2ZhNi4wZmU1ZjMzNzdmODEyZTdjLmZmMTJlNjRjZGM1MzBiMjMKICAgICBhN2Y2YWY0NDVkYTdiM2NjLjliZTlmMzQwZDhjNGFiOWMuMjdiYmFjZmZlNGJkYjEwYy4yZjY1OGY5ZjRlYWQ0OGU3Ci0gICAgODVjMDk4NGZlN2MyZDFkOQotVlBFUk0yRjEyOF8weEZGKG1lbSkKKyAgICAwMDAwMDAwMDAwMDA4NzZmCitWUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgZGZmMDdkNGFjMzlkNjQyMy5kNzg5Y2QyMjhhOWIyZDk4LmI4YjU3YjE4OGZkYWMyMTQuNGViZDk1ZDBlOGE2NWZjMwogICAgIDE3YmZiYTdhMDA0YmJiZjEuZGZmOTU1ZWI3ZmNmNmU0ZC44NWZhNWRmMTU4ZmQ3ZjNiLmRmMzVhODE2MjZjOTc1NGUKQEAgLTE3MTM5LDExICsxNzEzOSwxMSBAQAogICBhZnRlcgogICAgIGRmZjA3ZDRhYzM5ZDY0MjMuZDc4OWNkMjI4YTliMmQ5OC5iOGI1N2IxODhmZGFjMjE0LjRlYmQ5NWQwZThhNjVmYzMKICAgICAxN2JmYmE3YTAwNGJiYmYxLmRmZjk1NWViN2ZjZjZlNGQuODVmYTVkZjE1OGZkN2YzYi5kZjM1YTgxNjI2Yzk3NTRlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDBiZmFjY2NkYjdkNjkzNzAuMWM5MjQyMGJkOWNlYjA5OC5lMDg2MTViNTRlMzg5ZjNjLjM1NzBlMzNkM2FiMDJmNTkKICAgICA5NTZjMmUyZTA2NGNhN2NjLmU4YTA5MGVlMzQyNTJmMjQuYTMyMzFmNTE4ZTk3ZGU0NC5hZWI5NDFiMWMxZWFjODhmCiAgICAgYTQ1ZWJmZGU1NjAwN2Q5ZAogCi1WUEVSTTJGMTI4XzB4RkYocmVnKQorVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDc1YTk1NzMxOTY4MDhhMmUuOTNlMzVjODkwOWI5YjUzMC5hMDZlM2MwMDJiNWUyOTllLmFjOWVmOGIxMzMyN2Y3N2UKICAgICA3Y2U4MDcxNDFjZjUyYmVmLmRmMjlkMmNhZGIyODc3YzkuYTA0OTQwYWU1YjA3ZDhiMi5kNWMzMWFjMjVhZjNhNzE3CkBAIC0xNzE1MSwxMiArMTcxNTEsMTIgQEAKICAgICA5YTZkOWMzZTZjZjAxN2FmLmQ1NTY4N2FlNWQzYzA5NDguZTg1NzQ1OGFkM2Q4NDg1Ni5mYjNiMmVhMzljNzFiYzE1CiAgICAgYWYyNjE4NGNlZjNhOThkMgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICA3NWE5NTczMTk2ODA4YTJlLjkzZTM1Yzg5MDliOWI1MzAuYTA2ZTNjMDAyYjVlMjk5ZS5hYzllZjhiMTMzMjdmNzdlCiAgICAgN2NlODA3MTQxY2Y1MmJlZi5kZjI5ZDJjYWRiMjg3N2M5LmEwNDk0MGFlNWIwN2Q4YjIuZDVjMzFhYzI1YWYzYTcxNwogICAgIDE0NjVjYWY1ODVlYzliOGIuNTYwYzBkZGQ5OGE1YTljMi40NDdlOWE2MjVlYWM3OTBiLmZjNWUwMzZmMWUwOGFhM2IKICAgICA5YTZkOWMzZTZjZjAxN2FmLmQ1NTY4N2FlNWQzYzA5NDguZTg1NzQ1OGFkM2Q4NDg1Ni5mYjNiMmVhMzljNzFiYzE1Ci0gICAgYWYyNjE4NGNlZjNhOThkMgotVlBFUk0yRjEyOF8weEZGKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBmNzdlCitWUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgZjVlYTNiNTUzNDZmZmI5ZC42YjRjNzk1ZDZlOGRkYjA3LjM2ZDRiZTJhNDZmYTUxODcuZTgyMTNlOTA1NDE3ODAzZQogICAgIGE3NTQxNWFhODYxZGExYTMuZTE0ZDVlYmQyNjUwMjIzZS41NjUyMmUzYjZkZWEzZWFhLmEwMjc3ZmUyN2RmNTVlNzAKQEAgLTE3MTY2LDExICsxNzE2NiwxMSBAQAogICBhZnRlcgogICAgIGY1ZWEzYjU1MzQ2ZmZiOWQuNmI0Yzc5NWQ2ZThkZGIwNy4zNmQ0YmUyYTQ2ZmE1MTg3LmU4MjEzZTkwNTQxNzgwM2UKICAgICBhNzU0MTVhYTg2MWRhMWEzLmUxNGQ1ZWJkMjY1MDIyM2UuNTY1MjJlM2I2ZGVhM2VhYS5hMDI3N2ZlMjdkZjU1ZTcwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGEyMzAyMTM3MDE0ZjQ1MTAuNWFiZTQ2Y2EzMGM0MjkwMS4xMjliNTFjZmYxMTk4Y2RlLjZiYjcwNmViZWJmZjFlOTgKICAgICBjMjRhZGJlOGMyMTJhNTBmLjMwZTkyZGYwMjk3NTJjZmMuNDQ3ZGE1ZDBlYzkyZjY0Zi5hNzFiY2UxNzM5YzBmYzYxCiAgICAgYWZhMWQzZDIwNGM1MzM3NwogCi1WUEVSTTJGMTI4XzB4MzAocmVnKQorVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4NyhyZWcpCiAgIGJlZm9yZQogICAgIGRmOTMxMTg4ZTc5ODAwODguZTM2ZWMwYTllNTcxN2FjZC5jMDFiMGY5YmFkZjA2N2RhLmM5YzJhNTJjN2E2MTM5MjgKICAgICA5MzNlODVhNTdmYzg5ZTNlLmUyNjg0YjY3ODU3ODgzNzYuNjZhMGU5Mzc1N2MwMTU0Ny43ZDM3Y2RjZWI4OTIxMTk1CkBAIC0xNzE3OCwxMiArMTcxNzgsMTIgQEAKICAgICBmNmVlZmNjNTNjNjg0MTRhLmU1MGM0Mzg2YWRhZjFjMzYuNjVkMzcxZjM4ZTkwYmQ4MS5lMmUxODU5M2IxNGQ2ZWRlCiAgICAgNGJhZTBlOTBhNmVkNmMxMgogICBhZnRlcgotICAgIDI2ZWQyYTk2NjdkZTRiNDUuOTkwM2Y3MGNiZTMzN2EzNS42NmEwZTkzNzU3YzAxNTQ3LjdkMzdjZGNlYjg5MjExOTUKKyAgICBkZjkzMTE4OGU3OTgwMDg4LmUzNmVjMGE5ZTU3MTdhY2QuYzAxYjBmOWJhZGYwNjdkYS5jOWMyYTUyYzdhNjEzOTI4CiAgICAgOTMzZTg1YTU3ZmM4OWUzZS5lMjY4NGI2Nzg1Nzg4Mzc2LjY2YTBlOTM3NTdjMDE1NDcuN2QzN2NkY2ViODkyMTE5NQogICAgIDI2ZWQyYTk2NjdkZTRiNDUuOTkwM2Y3MGNiZTMzN2EzNS43ZmM0YjUzMGMzNzE3M2YxLjNjYTg5OWEyYzEzMjM5YzMKICAgICBmNmVlZmNjNTNjNjg0MTRhLmU1MGM0Mzg2YWRhZjFjMzYuNjVkMzcxZjM4ZTkwYmQ4MS5lMmUxODU5M2IxNGQ2ZWRlCi0gICAgNGJhZTBlOTBhNmVkNmMxMgotVlBFUk0yRjEyOF8weDMwKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBjMDFiCitWUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHg3KG1lbSkKICAgYmVmb3JlCiAgICAgNTNkYmFmODJiOTIwZWY4YS41ZThiZjc5Zjk5ZjFiZGY5LmEyNTBhOGJmNmVmODI1YTYuNzUxODE5ZWE1NGE4MmVhNgogICAgIGQ2MzNlNDU2MDhmMWIyNzIuYjkxMjE4OTExYjA2ZmFmZC5hYzk4YTNhNTFjMTg1MWIxLjBiZTFhNzgzYjA0NTA0MGEKQEAgLTE3MTkzLDExICsxNzE5MywxMSBAQAogICBhZnRlcgogICAgIDUzZGJhZjgyYjkyMGVmOGEuNWU4YmY3OWY5OWYxYmRmOS5hMjUwYThiZjZlZjgyNWE2Ljc1MTgxOWVhNTRhODJlYTYKICAgICBkNjMzZTQ1NjA4ZjFiMjcyLmI5MTIxODkxMWIwNmZhZmQuYWM5OGEzYTUxYzE4NTFiMS4wYmUxYTc4M2IwNDUwNDBhCi0gICAgNTNkYmFmODJiOTIwZWY4YS41ZThiZjc5Zjk5ZjFiZGY5LmFjOThhM2E1MWMxODUxYjEuMGJlMWE3ODNiMDQ1MDQwYQorICAgIGIwODMyYWY4YWY2ZDcyZjcuNjVjZDU5MDY1ZDMyMzYwMy5kZmIzYjEyM2QzMWQ1YjgzLjgzNzgxOTI4M2VmNDc5NTkKICAgICBiZDk3ZmI1NWM5OWZlYjQ1LmJjMDliODZhZmIwMWFiYjcuMTc2YzRkMjViMDEyMDA0Ny4zOTJhNjk0NzliNDBjOTQxCiAgICAgODk0Mzk1NGI2MmI2MzE2YgogCi1WUEVSTTJGMTI4XzB4MzAocmVnKQorVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4NyhyZWcpCiAgIGJlZm9yZQogICAgIGNmMGY5OWEwMzBlMGVlODYuZDkzYmQ1NTc3MjkzZDk4OC4xYzEyMzAyODkyMDA5NWM0LjMwOGZmMzk3Y2UwNGZjMjkKICAgICA2N2Q5NmZiMmEwNGMzOTNjLmUwM2IzM2VjYzc1NmY3ZWIuZGYzNGJlYWViZWJhMzJkNy4wNWU3MjA2NTRhZmUwYTU2CkBAIC0xNzIwNSwxMiArMTcyMDUsMTIgQEAKICAgICBmZDliODZiZGQ4MTk3MDJiLjFmN2U2YzdiZTQ3NmI2YzIuMDJmMTA4YzA0MjhmNzBiZC41ODY5ZmJjNWM5M2I0ZjQwCiAgICAgOGQyYmEyMmYwNjk2ZmQ1NQogICBhZnRlcgotICAgIGFkZWYxNWVkNGY4NjUxMzkuYWU2MzkxZmZlNGYzMDI5YS5kZjM0YmVhZWJlYmEzMmQ3LjA1ZTcyMDY1NGFmZTBhNTYKKyAgICBjZjBmOTlhMDMwZTBlZTg2LmQ5M2JkNTU3NzI5M2Q5ODguMWMxMjMwMjg5MjAwOTVjNC4zMDhmZjM5N2NlMDRmYzI5CiAgICAgNjdkOTZmYjJhMDRjMzkzYy5lMDNiMzNlY2M3NTZmN2ViLmRmMzRiZWFlYmViYTMyZDcuMDVlNzIwNjU0YWZlMGE1NgogICAgIGFkZWYxNWVkNGY4NjUxMzkuYWU2MzkxZmZlNGYzMDI5YS42M2JhNWM2NzFhYmJiYzliLjc0NDE0ZjdiM2YwY2U3ZmEKICAgICBmZDliODZiZGQ4MTk3MDJiLjFmN2U2YzdiZTQ3NmI2YzIuMDJmMTA4YzA0MjhmNzBiZC41ODY5ZmJjNWM5M2I0ZjQwCi0gICAgOGQyYmEyMmYwNjk2ZmQ1NQotVlBFUk0yRjEyOF8weDMwKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAxYzEyCitWUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHg3KG1lbSkKICAgYmVmb3JlCiAgICAgZWY1M2MwYTYwZjI5YWY2NS5iMzJhYmU4ZWQ3OTFkM2JiLjBlNTkzZjRlZTNlY2NlOGYuMWEyNmJkMjNkM2MzODllOAogICAgIDU5YWNjZjE0MDIwMTFmOWIuMmJlOGI5Y2RlOTdhYjY5OC41OWMxODY2M2ZlNjAwNzJjLjA1YTM3N2ZkNjhlMzQ1YzkKQEAgLTE3MjIwLDExICsxNzIyMCwxMSBAQAogICBhZnRlcgogICAgIGVmNTNjMGE2MGYyOWFmNjUuYjMyYWJlOGVkNzkxZDNiYi4wZTU5M2Y0ZWUzZWNjZThmLjFhMjZiZDIzZDNjMzg5ZTgKICAgICA1OWFjY2YxNDAyMDExZjliLjJiZThiOWNkZTk3YWI2OTguNTljMTg2NjNmZTYwMDcyYy4wNWEzNzdmZDY4ZTM0NWM5Ci0gICAgZWY1M2MwYTYwZjI5YWY2NS5iMzJhYmU4ZWQ3OTFkM2JiLjU5YzE4NjYzZmU2MDA3MmMuMDVhMzc3ZmQ2OGUzNDVjOQorICAgIGE5MDQ0ZDY3ZmIyOTA5MjQuYzEyMTc0ZTRhYTYxNTQ2Yy5kYjgwYmRhNjUwZGUxZGM2LjIwYjUzM2JiOWU3OWRlMGMKICAgICBiYTI1YjU4YTE1YWQyYjJiLmQxMjFlYTQxYjVkMWVhZTMuNmY2MjYwMDRmNjczY2I4OS5jOGE3ZWJjNzEwMTM5MDVjCiAgICAgNTdjNzlkOGY1YjNkOTk2NgogCi1WUEVSTTJGMTI4XzB4MzAocmVnKQorVlBFWFRSV18xMjhfRXJlZ09ubHlfdG9HXzB4NyhyZWcpCiAgIGJlZm9yZQogICAgIDJhNWY0NTdlMWE4MTMzZDUuNjdkYzgzNjk2YzlhM2ZkZC5iNjMzMTc0ZmE2NTdiNGFhLmYzMzVlYzY3MGIyYWNmYTAKICAgICA5ZGJkZGRmZmVhNmQ5YjU2LjhlZjUzNGYwMWRmYjAyNjUuY2VhNWY3NzkxYTdlZWU2ZC40MmM0ZGJiY2FjMGZlMzM4CkBAIC0xNzIzMiwxMiArMTcyMzIsMTIgQEAKICAgICBkNGY2ZDE2YzJiNmJjNDNkLmI2N2QyYmE2ZmM0YTgzYWEuMDNkNGMxZDZmYWRmYTA5NS5iMDQ0ZDhlZDAwOTUyZDk5CiAgICAgODdjZWRjYTFlYjRlZGJiYQogICBhZnRlcgotICAgIDBkMmI2MjgwNjY4ZDBkOTUuMDkzYzQyMGI0NGRkMmZmMS5jZWE1Zjc3OTFhN2VlZTZkLjQyYzRkYmJjYWMwZmUzMzgKKyAgICAyYTVmNDU3ZTFhODEzM2Q1LjY3ZGM4MzY5NmM5YTNmZGQuYjYzMzE3NGZhNjU3YjRhYS5mMzM1ZWM2NzBiMmFjZmEwCiAgICAgOWRiZGRkZmZlYTZkOWI1Ni44ZWY1MzRmMDFkZmIwMjY1LmNlYTVmNzc5MWE3ZWVlNmQuNDJjNGRiYmNhYzBmZTMzOAogICAgIDBkMmI2MjgwNjY4ZDBkOTUuMDkzYzQyMGI0NGRkMmZmMS43NGMxODYyZGFkZDJkM2Q3LjM3ZGFhYmYwZjQyZmMzN2MKICAgICBkNGY2ZDE2YzJiNmJjNDNkLmI2N2QyYmE2ZmM0YTgzYWEuMDNkNGMxZDZmYWRmYTA5NS5iMDQ0ZDhlZDAwOTUyZDk5Ci0gICAgODdjZWRjYTFlYjRlZGJiYQotVlBFUk0yRjEyOF8weDMwKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBiNjMzCitWUEVYVFJXXzEyOF9FcmVnT25seV90b0dfMHg3KG1lbSkKICAgYmVmb3JlCiAgICAgOWE0NDM1ZjdkMTY0OGEwYy40ZjZhMjUyZmQ0OTZmZGZiLjZmODM2YWFkNjE1MWJhYmYuZDkyYWEzZTA5ZDMyOTA1MwogICAgIGMzNzI1ZWRiY2ZlNmY1YmIuZGFkMjVhMzZmZDk3ZjQ3Yi4xMjFiN2IwYzkwZmI5MDU5LjUxMGYyOGI3MzM1N2UxYmMKQEAgLTE3MjQ3LDExICsxNzI0NywxMSBAQAogICBhZnRlcgogICAgIDlhNDQzNWY3ZDE2NDhhMGMuNGY2YTI1MmZkNDk2ZmRmYi42ZjgzNmFhZDYxNTFiYWJmLmQ5MmFhM2UwOWQzMjkwNTMKICAgICBjMzcyNWVkYmNmZTZmNWJiLmRhZDI1YTM2ZmQ5N2Y0N2IuMTIxYjdiMGM5MGZiOTA1OS41MTBmMjhiNzMzNTdlMWJjCi0gICAgOWE0NDM1ZjdkMTY0OGEwYy40ZjZhMjUyZmQ0OTZmZGZiLjEyMWI3YjBjOTBmYjkwNTkuNTEwZjI4YjczMzU3ZTFiYworICAgIGUwMjRkMzM5MDFkZGRhZjIuZDE3YzZkZWI0M2ZjZTQ2OC43OTEyZGJiMGE0NTZjMWE3LmM2Y2U0Y2M4NTdkOGNkN2QKICAgICBjYjI1MTBmZDgyNTdmM2RlLjkwYjI1OGJiNDI1MDBhNmUuODIzMjA1ODNiYTZkMDhkMy45NmI1MGM3ZGE2NDM5MTQxCiAgICAgMWIwZTYyNDNiYjIzNjhiNQogCi1WUEVSTTJGMTI4XzB4MjEocmVnKQorVlBNSU5VV18xMjgocmVnKQogICBiZWZvcmUKICAgICBiMzI2NGM4NzMzMDU5MDg0LjYxNDI5MjEzNmU1ZmZjYWIuNzNjMTE5MTM5NTFmYTIzYS4wNzQ3NzU3M2VkNGMyMjBhCiAgICAgYjg0OWM2YjRhOTc0NDM1Yi43ZjQ3ZDM2N2UyMDFiMzg0LmQ2ZjVhYjVkZDhmNmU4NzguZTYxZmE3NmE1YTAwY2E3NwpAQCAtMTcyNTksMTIgKzE3MjU5LDEyIEBACiAgICAgN2RkZjU2NzgwMTJhM2NkMC5iZTM5ODg3YWQxNDUxNjBjLjhjZmMzMzdjYTFlYTZjZjguMWQ0NDQyMjI0ZjE1YjhhNQogICAgIDJlMjlhMmJhMTE4ZTc0YmUKICAgYWZ0ZXIKLSAgICAxNTlhMGIwN2E4NjAxN2QzLmY5ODUxNzU2MWM5NGJlNDcuYjg0OWM2YjRhOTc0NDM1Yi43ZjQ3ZDM2N2UyMDFiMzg0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1OWEwYjA3YTg2MDE3ZDMuZTYxZjE3NTYxYzk0YmU0NwogICAgIGI4NDljNmI0YTk3NDQzNWIuN2Y0N2QzNjdlMjAxYjM4NC5kNmY1YWI1ZGQ4ZjZlODc4LmU2MWZhNzZhNWEwMGNhNzcKICAgICA4OGMzY2EzNWJhZmNiZGU2LmZmMDA1MWU1ZmE0YWQyOTUuMTU5YTBiMDdhODYwMTdkMy5mOTg1MTc1NjFjOTRiZTQ3CiAgICAgN2RkZjU2NzgwMTJhM2NkMC5iZTM5ODg3YWQxNDUxNjBjLjhjZmMzMzdjYTFlYTZjZjguMWQ0NDQyMjI0ZjE1YjhhNQogICAgIDJlMjlhMmJhMTE4ZTc0YmUKLVZQRVJNMkYxMjhfMHgyMShtZW0pCitWUE1JTlVXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDA5MDBiNTBhN2IwYmIwYmUuZjRlYjY0ZTgxYTg5ZmFjNi45OWJlZjIxMDgzZmYzYjEyLjk3NjcyMTI4NWQxZTIzOTMKICAgICA4ODk1ZjdmZWFiOTgyNmQwLjRhMzFmM2YxYTJhNTM0NzQuNmE1YTBkOTUyZDgzZmNkNi45MjI2ZDA3NzdiOGI3ODRmCkBAIC0xNzI3NCwxMSArMTcyNzQsMTEgQEAKICAgYWZ0ZXIKICAgICAwOTAwYjUwYTdiMGJiMGJlLmY0ZWI2NGU4MWE4OWZhYzYuOTliZWYyMTA4M2ZmM2IxMi45NzY3MjEyODVkMWUyMzkzCiAgICAgODg5NWY3ZmVhYjk4MjZkMC40YTMxZjNmMWEyYTUzNDc0LjZhNWEwZDk1MmQ4M2ZjZDYuOTIyNmQwNzc3YjhiNzg0ZgotICAgIDk5YmVmMjEwODNmZjNiMTIuOTc2NzIxMjg1ZDFlMjM5My44ODk1ZjdmZWFiOTgyNmQwLjRhMzFmM2YxYTJhNTM0NzQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmE1YTBkOTUyZDgzM2IxMi45MjI2MjEyODVkMWUyMzkzCiAgICAgZTUyOWY0ODNjYzE1YjNkYy5mZTlmN2M3ZTZlNDYwYmE1LjYxMGI0MzE4ZDcxYTQ1NDIuYzdkMzYxYWU0NzM5ZWFkYwogICAgIGJhNTkzYzZlMmU5MzgwMDUKIAotVlBFUk0yRjEyOF8weDIxKHJlZykKK1ZQTUlOVVdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMGQ2NGM4ODFlNTU1YTMwMC43YmJmYThlYmY0MWI0MTJlLjE2NWQ3MGRiZTllMjIwODIuM2ZiNzU2ZWYwZjQ1NDQ0NAogICAgIDFiNDAwMTU0MDgwOTkwNzguMjY0MzdhYTg1MjYyZmE0My43Yjg3ZDM4MDQzNmNhMWM1Ljg0YWIwOTY0YWY2YWQwYjIKQEAgLTE3Mjg2LDEyICsxNzI4NiwxMiBAQAogICAgIGRkOWE2YmU2MDU3ZGI4OTEuMmI0NjY5Y2QxZWUxZGM2NC45ZjRiZDc1NjAyNzdkNTM0LmIzOWE0MWQ4OTRkMzdmODMKICAgICA1NTJkYmRiMDEyMzAxOTNlCiAgIGFmdGVyCi0gICAgOGE2OGExZGExODZmYzkxZC4wY2IyZDk2M2QyOTVhNWI4LjFiNDAwMTU0MDgwOTkwNzguMjY0MzdhYTg1MjYyZmE0MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43Yjg3YTFkYTE4NmZhMWM1LjBjYjIwOTY0YWY2YWE1YjgKICAgICAxYjQwMDE1NDA4MDk5MDc4LjI2NDM3YWE4NTI2MmZhNDMuN2I4N2QzODA0MzZjYTFjNS44NGFiMDk2NGFmNmFkMGIyCiAgICAgNDIzOGUzNTEzNDNlODMxYS5jMjgyZTZhNDAxZjU5YTQ2LjhhNjhhMWRhMTg2ZmM5MWQuMGNiMmQ5NjNkMjk1YTViOAogICAgIGRkOWE2YmU2MDU3ZGI4OTEuMmI0NjY5Y2QxZWUxZGM2NC45ZjRiZDc1NjAyNzdkNTM0LmIzOWE0MWQ4OTRkMzdmODMKICAgICA1NTJkYmRiMDEyMzAxOTNlCi1WUEVSTTJGMTI4XzB4MjEobWVtKQorVlBNSU5VV18xMjgobWVtKQogICBiZWZvcmUKICAgICBjZTM5Y2FkNTY4YjYzMDE3LjQ3YjA5MzdlMTY1NDZhOGEuM2Q1YjdlMGVjNTMxN2RjOC4xNjdkNmY1ZmEwMTEwMWI2CiAgICAgZmE4OGUyMzRiMTczODAzNy5kZWM3NTk4NDA0NGVkNmIwLmQ0OGZhMTUzMTBmMTM5OWYuNGI0YTY3NjA4Y2M4ODk1MQpAQCAtMTczMDEsMTEgKzE3MzAxLDExIEBACiAgIGFmdGVyCiAgICAgY2UzOWNhZDU2OGI2MzAxNy40N2IwOTM3ZTE2NTQ2YThhLjNkNWI3ZTBlYzUzMTdkYzguMTY3ZDZmNWZhMDExMDFiNgogICAgIGZhODhlMjM0YjE3MzgwMzcuZGVjNzU5ODQwNDRlZDZiMC5kNDhmYTE1MzEwZjEzOTlmLjRiNGE2NzYwOGNjODg5NTEKLSAgICAzZDViN2UwZWM1MzE3ZGM4LjE2N2Q2ZjVmYTAxMTAxYjYuZmE4OGUyMzRiMTczODAzNy5kZWM3NTk4NDA0NGVkNmIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNkNWI3ZTBlMTBmMTM5OWYuMTY3ZDY3NjA4Y2M4MDFiNgogICAgIGRiMjIyODUxOGRjMGJhMDMuZmYyN2FkOGZlNGRkY2IzNi4wMTgwMDE5OTA4ZjNmMTU1LjVmZTU2NGZmYmZiZTliN2MKICAgICBmNjRiNjI3NDNlMTU5ZTY1CiAKLVZQRVJNMkYxMjhfMHgyMShyZWcpCitWUE1JTlVXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGJiN2JhZTkyN2JiYWVkMTUuNDgwNDRkZTc1OTY4MWMwNS40MTA5MzI2YjBmODljY2VkLjRmZDUzNzcyZWQ0YzY2OGMKICAgICAwYWMyNDZjNTE0MzhjMzM5LmQ4NWI2ZjY3ODg3NmE3MDAuMjAxYjQ1NjY4Njg5Nzc4Mi45Mjc4NmJmZmU2NDZlNGU1CkBAIC0xNzMxMywxMiArMTczMTMsMTIgQEAKICAgICBiNmM2NDgxYmMzZWZmNjhkLmQwOTM5NmQ1ODBmNjI2OTEuMjAwMzAyNmFjYmIyYmFmNS42NmQ4YmRlNjhhNGFmMmIwCiAgICAgYjAyY2Q0MTc2YzZkZjk3OQogICBhZnRlcgotICAgIGY2YWFlMWVkZTY2ODA4YTEuYTUzNTE5MmMxMWVjMmE4ZC4wYWMyNDZjNTE0MzhjMzM5LmQ4NWI2ZjY3ODg3NmE3MDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjAxYjQ1NjY4Njg5MDhhMS45Mjc4MTkyYzExZWMyYThkCiAgICAgMGFjMjQ2YzUxNDM4YzMzOS5kODViNmY2Nzg4NzZhNzAwLjIwMWI0NTY2ODY4OTc3ODIuOTI3ODZiZmZlNjQ2ZTRlNQogICAgIDNmNmQyNTdhYTIxYjVkN2QuNjZmMTA4YmQzNmY3MTYyMC5mNmFhZTFlZGU2NjgwOGExLmE1MzUxOTJjMTFlYzJhOGQKICAgICBiNmM2NDgxYmMzZWZmNjhkLmQwOTM5NmQ1ODBmNjI2OTEuMjAwMzAyNmFjYmIyYmFmNS42NmQ4YmRlNjhhNGFmMmIwCiAgICAgYjAyY2Q0MTc2YzZkZjk3OQotVlBFUk0yRjEyOF8weDIxKG1lbSkKK1ZQTUlOVVdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNWZmZmQ4YWRkNDYwZmIxNC5jYjE5YTkxNjEzNDFjYzE0LmYxMGQ5NTliODE3ZjkzN2QuZmI2ZmE1NGJkMGY0Y2EyYQogICAgIDRlMWI0NzkzZGQyZmIzYWYuZDliNDQ2ZDUyZDljMTliZS5hNTJiN2ZmYjU2OWYxODEzLmUxM2RjNWZhOTFiOTc0ZWUKQEAgLTE3MzI4LDExICsxNzMyOCwxMSBAQAogICBhZnRlcgogICAgIDVmZmZkOGFkZDQ2MGZiMTQuY2IxOWE5MTYxMzQxY2MxNC5mMTBkOTU5YjgxN2Y5MzdkLmZiNmZhNTRiZDBmNGNhMmEKICAgICA0ZTFiNDc5M2RkMmZiM2FmLmQ5YjQ0NmQ1MmQ5YzE5YmUuYTUyYjdmZmI1NjlmMTgxMy5lMTNkYzVmYTkxYjk3NGVlCi0gICAgZjEwZDk1OWI4MTdmOTM3ZC5mYjZmYTU0YmQwZjRjYTJhLjRlMWI0NzkzZGQyZmIzYWYuZDliNDQ2ZDUyZDljMTliZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNTJiN2ZmYjU2OWYxODEzLmUxM2RhNTRiOTFiOTc0ZWUKICAgICA2MDYxNTRmZjQzOTMzODhmLjU1ZWUyMTU0MzA5ZjBhMmUuMzU4MjA4M2FlYWQyNWVlOC40MjJiNmM3NmI5ZmQ4NGNkCiAgICAgNzRlNGViMWI1Nzk0NjM0MQogCi1WUEVSTTJGMTI4XzB4MTIocmVnKQorVlBITUlOUE9TVVdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjIyZGQ4M2YyM2RlY2NmMy4zYjIzZWE1ZGQ4M2Y3ZDJkLjdhMjU1OGViNTI1ZTI3NGIuYzk1NDlmZjBlMWZjOTU3ZgogICAgIGE4NTMyZDRlYjY2OGZhOGUuYzc1ZmQ5YmI3ZmY4Njg3YS4wOGQzYjlmN2FlNTZhYjNjLjYxZjkxMmYxMWNlZGQ2NmYKQEAgLTE3MzQwLDEyICsxNzM0MCwxMiBAQAogICAgIGFjNjUwNGRkYTc2OTk4MzEuNjE3M2I4Mjc3MWJmMjNjZi5kNGM0ZWUxZTg1MjNkYTQ5LjA5ZWY3ZTgwY2M1MzYxMDkKICAgICBkMWQ3NmRlNzc5ZGYyMzBhCiAgIGFmdGVyCi0gICAgYTg1MzJkNGViNjY4ZmE4ZS5jNzVmZDliYjdmZjg2ODdhLjVkNDQ0MmU0ZTAxNGQyYWQuZDczZWRlMjhiNmIxZGJlMwotICAgIGE4NTMyZDRlYjY2OGZhOGUuYzc1ZmQ5YmI3ZmY4Njg3YS4wOGQzYjlmN2FlNTZhYjNjLjYxZjkxMmYxMWNlZGQ2NmYKKyAgICAyMjJkZDgzZjIzZGVjY2YzLjNiMjNlYTVkZDgzZjdkMmQuN2EyNTU4ZWI1MjVlMjc0Yi5jOTU0OWZmMGUxZmM5NTdmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDA2NDJlNAogICAgIDYyYTFlOGI0YWViZDJhYmYuZGZlMDlmMDU1NGM5YjZhMS41ZDQ0NDJlNGUwMTRkMmFkLmQ3M2VkZTI4YjZiMWRiZTMKICAgICBhYzY1MDRkZGE3Njk5ODMxLjYxNzNiODI3NzFiZjIzY2YuZDRjNGVlMWU4NTIzZGE0OS4wOWVmN2U4MGNjNTM2MTA5CiAgICAgZDFkNzZkZTc3OWRmMjMwYQotVlBFUk0yRjEyOF8weDEyKG1lbSkKK1ZQSE1JTlBPU1VXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDBkYzQyYTQ4ZDk2MWRmMTUuZTJlYTdlMzYzY2Y5N2Y5MS4yN2U1OWUwZWY1ZTQ2YTMwLmM4OWZiYTExMzgxMGZkYmQKICAgICA5NzgwMmU4ZjA5ZTY0ZjUzLjYwN2I1MTI5MDlmODFkOGIuMGUwMGNmYTRmOTQ3NDhlZi45NzIwYTAyOTk2NjY3OGI0CkBAIC0xNzM1NSwxMSArMTczNTUsMTEgQEAKICAgYWZ0ZXIKICAgICAwZGM0MmE0OGQ5NjFkZjE1LmUyZWE3ZTM2M2NmOTdmOTEuMjdlNTllMGVmNWU0NmEzMC5jODlmYmExMTM4MTBmZGJkCiAgICAgOTc4MDJlOGYwOWU2NGY1My42MDdiNTEyOTA5ZjgxZDhiLjBlMDBjZmE0Zjk0NzQ4ZWYuOTcyMGEwMjk5NjY2NzhiNAotICAgIDk3ODAyZThmMDllNjRmNTMuNjA3YjUxMjkwOWY4MWQ4Yi4yN2U1OWUwZWY1ZTQ2YTMwLmM4OWZiYTExMzgxMGZkYmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDcyN2U1CiAgICAgMDk5OWZmODA0ODI3M2QxZi5hNGY0ZjE5MWJlNzQ2OGZiLmIwNjNmZjkxZjdmMGI5MzkuMzI0N2FmNzljMTdlNjRkZAogICAgIGI2ODVjZjg5YzY1ODRlNjcKIAotVlBFUk0yRjEyOF8weDEyKHJlZykKK1ZQSE1JTlBPU1VXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDg0OWFmYjZlZTZjYjgwMjUuYTg4ZGM0MDE4ZWZhMzMwNC4yMjc0YjhkZWRkMDk4ZmM5LjIyNDRmNmMwMjk0ZmMzMWIKICAgICBmOWQyMmQ5M2JjNjQzNmMyLjA2ODFjMTE4MTQwMWNlY2QuNTgzMWM3NzZhNDNlNWJlMS4yNmZlMjg0ZjRiMWI1NDBkCkBAIC0xNzM2NywxMiArMTczNjcsMTIgQEAKICAgICA0NGRhOTg1MmZiMzUxYzRjLjcwOTg1NGI5NGVkNGUyYmQuNWM5MWIyMzY5Y2I1ZDQ5ZS40ZjMwMmEzZGQ1MjdmYWNjCiAgICAgMmQ0MGYyNzQ3NDdmODhmMQogICBhZnRlcgotICAgIGY5ZDIyZDkzYmM2NDM2YzIuMDY4MWMxMTgxNDAxY2VjZC5hMjc2MWNjNWIwOWUwOWVlLjk2NWUxMDJhN2I1ZTI4MzkKLSAgICBmOWQyMmQ5M2JjNjQzNmMyLjA2ODFjMTE4MTQwMWNlY2QuNTgzMWM3NzZhNDNlNWJlMS4yNmZlMjg0ZjRiMWI1NDBkCisgICAgODQ5YWZiNmVlNmNiODAyNS5hODhkYzQwMThlZmEzMzA0LjIyNzRiOGRlZGQwOThmYzkuMjI0NGY2YzAyOTRmYzMxYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwNDA5ZWUKICAgICA2Zjc4NjM2NmU0YWVhYmViLjAwNDA3M2IyZjU0NWNhYTcuYTI3NjFjYzViMDllMDllZS45NjVlMTAyYTdiNWUyODM5CiAgICAgNDRkYTk4NTJmYjM1MWM0Yy43MDk4NTRiOTRlZDRlMmJkLjVjOTFiMjM2OWNiNWQ0OWUuNGYzMDJhM2RkNTI3ZmFjYwogICAgIDJkNDBmMjc0NzQ3Zjg4ZjEKLVZQRVJNMkYxMjhfMHgxMihtZW0pCitWUEhNSU5QT1NVV18xMjgobWVtKQogICBiZWZvcmUKICAgICAwYzVhZTViYjc0NzQ4YmQ1LmQyNDJjOGMzOWQ4NmM0OTAuMzM1M2UyMWIzYWI5ZDMzYy5lMmNjODUzNzA1MGZmOTlhCiAgICAgYzk0YTdkZmZmMjExYzJhMy43NmZkZjAyNjY1MmNlMTYzLjI1M2U5OGMzZDYwMTU5NTAuOGY3NDkyMzQ4NjM5YjQ5MQpAQCAtMTczODIsMTEgKzE3MzgyLDExIEBACiAgIGFmdGVyCiAgICAgMGM1YWU1YmI3NDc0OGJkNS5kMjQyYzhjMzlkODZjNDkwLjMzNTNlMjFiM2FiOWQzM2MuZTJjYzg1MzcwNTBmZjk5YQogICAgIGM5NGE3ZGZmZjIxMWMyYTMuNzZmZGYwMjY2NTJjZTE2My4yNTNlOThjM2Q2MDE1OTUwLjhmNzQ5MjM0ODYzOWI0OTEKLSAgICBjOTRhN2RmZmYyMTFjMmEzLjc2ZmRmMDI2NjUyY2UxNjMuMzM1M2UyMWIzYWI5ZDMzYy5lMmNjODUzNzA1MGZmOTlhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAxMDUwZgogICAgIDQ4ZGE5MTJhZDc3NWI3YjAuNzE5YjE1NmRkOGE4NjQ2OS4wNmQ0NmQ5NThjZTcxMmU1LmQzM2I0NmNkNDIyYmRiMWEKICAgICAyMWYyZTY0M2I1MGJiZjA1CiAKLVZQRVJNMkYxMjhfMHgxMihyZWcpCitWUEhNSU5QT1NVV18xMjgocmVnKQogICBiZWZvcmUKICAgICAwNjQ1YWY2M2IwZWEyOTlhLmMzMTQwNWU5NzU1M2VlNDYuN2YxNzBhMmJiYzk2NDRmNC5hZDE3ODQ5N2RlOWRiZWJlCiAgICAgZTA4MTllOWJkMDU1NTU4NC44YjUzMGU1NTAxMGE0ODc3LjEzMTVlNjg5MzUwOTg3YmUuZjNiYWIzOGY1MGU2ZWZkYwpAQCAtMTczOTQsMTIgKzE3Mzk0LDEyIEBACiAgICAgZGZlNWRhZmZlY2ZjZTEwYS43MjEyZDRlMTUxMzA1MzU4LjNkY2I0NWRhNWRiMDI5YzEuY2M0ZTQ5MTEwMTVmY2U5NgogICAgIDE3ZDhhOTc0NzlhN2Y1OGEKICAgYWZ0ZXIKLSAgICBlMDgxOWU5YmQwNTU1NTg0LjhiNTMwZTU1MDEwYTQ4NzcuODllM2E2ZjVlMjhlNmE3My5iNDg4NzY2OWZkY2U2MDZiCi0gICAgZTA4MTllOWJkMDU1NTU4NC44YjUzMGU1NTAxMGE0ODc3LjEzMTVlNjg5MzUwOTg3YmUuZjNiYWIzOGY1MGU2ZWZkYworICAgIDA2NDVhZjYzYjBlYTI5OWEuYzMxNDA1ZTk3NTUzZWU0Ni43ZjE3MGEyYmJjOTY0NGY0LmFkMTc4NDk3ZGU5ZGJlYmUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDA2MDZiCiAgICAgMDlmM2FlNTViMGQ3N2U3MC43YzYzMmE1OTk2YTQ4MDZlLjg5ZTNhNmY1ZTI4ZTZhNzMuYjQ4ODc2NjlmZGNlNjA2YgogICAgIGRmZTVkYWZmZWNmY2UxMGEuNzIxMmQ0ZTE1MTMwNTM1OC4zZGNiNDVkYTVkYjAyOWMxLmNjNGU0OTExMDE1ZmNlOTYKICAgICAxN2Q4YTk3NDc5YTdmNThhCi1WUEVSTTJGMTI4XzB4MTIobWVtKQorVlBITUlOUE9TVVdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNzFmMjExN2M4MWIyOTE3Mi5iZGEzMjEwNDIxNTBiYWZkLjQ5MmI4OGQ5NGRiNzdkNjAuOGIxYWJmYTQ0MmZiZmY1MQogICAgIGI2NjhmZDE3MzQ4YTVkN2IuZmU3YjdjZDBlYjYwNDRmNi5kZDc5YzMyZGE3NDdiOWI0LmNmMWIxMGJlMmVmYzI5ZDIKQEAgLTE3NDA5LDExICsxNzQwOSwxMSBAQAogICBhZnRlcgogICAgIDcxZjIxMTdjODFiMjkxNzIuYmRhMzIxMDQyMTUwYmFmZC40OTJiODhkOTRkYjc3ZDYwLjhiMWFiZmE0NDJmYmZmNTEKICAgICBiNjY4ZmQxNzM0OGE1ZDdiLmZlN2I3Y2QwZWI2MDQ0ZjYuZGQ3OWMzMmRhNzQ3YjliNC5jZjFiMTBiZTJlZmMyOWQyCi0gICAgYjY2OGZkMTczNDhhNWQ3Yi5mZTdiN2NkMGViNjA0NGY2LjQ5MmI4OGQ5NGRiNzdkNjAuOGIxYWJmYTQ0MmZiZmY1MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMTQyZmIKICAgICA3MTk3NTJiMzBjZDc3ODlmLjFkYTU2MjZkYWJlMjVlYTguYWJlN2JhOTllM2IwNWFlYS5hOTY3Mjg5ODg4NGU2ODUxCiAgICAgZjc0YWU3MmUzMGI3ZjZhOAogCi1WUEVSTTJGMTI4XzB4MDMocmVnKQorVlBNQVhTV18xMjgocmVnKQogICBiZWZvcmUKICAgICBhYjBmNmRjNTRkMDVjNzlmLjllZThiMjhjNjk2MjNlMTEuYjI4ZmU1MTdkYTZjNjZiOS45ZTlmNmY4YWZkYTEzNjI1CiAgICAgMjEwM2I2Y2E3ZGM0MTdlMi4yN2M2ODdhN2UyZWMyNTU1LjFjYzI2ZTM3MGRlMTBmODAuYmViZDliODZlNWNiMTY1YQpAQCAtMTc0MjEsMTIgKzE3NDIxLDEyIEBACiAgICAgYzJhNzgzY2E4NWM3MjhmOS5iYTUzN2U1Mzk2MmI0NWZkLmRhMzM3ZThkZjFiZTM3ZGYuZjQ1YTQ0NTM4Y2Y2Y2M2NQogICAgIGMzNzFiYWZjODQxMTFjOTIKICAgYWZ0ZXIKLSAgICAxY2MyNmUzNzBkZTEwZjgwLmJlYmQ5Yjg2ZTVjYjE2NWEuYjQ3MmJmYTc1YzgxMjQxYy5lN2ZiNGNmMDkyODFlOTk1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFjYzI2ZTM3MGRlMTBmODAuZTYwY2I4N2JlNWNiMTY1YQogICAgIDIxMDNiNmNhN2RjNDE3ZTIuMjdjNjg3YTdlMmVjMjU1NS4xY2MyNmUzNzBkZTEwZjgwLmJlYmQ5Yjg2ZTVjYjE2NWEKICAgICBiNDcyYmZhNzVjODEyNDFjLmU3ZmI0Y2YwOTI4MWU5OTUuYjU4YWY3M2FlMWNlOTZhOS5lNjBjYjg3YmI2MzhiNGI2CiAgICAgYzJhNzgzY2E4NWM3MjhmOS5iYTUzN2U1Mzk2MmI0NWZkLmRhMzM3ZThkZjFiZTM3ZGYuZjQ1YTQ0NTM4Y2Y2Y2M2NQogICAgIGMzNzFiYWZjODQxMTFjOTIKLVZQRVJNMkYxMjhfMHgwMyhtZW0pCitWUE1BWFNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJlMWU5NjYxYmE5NDVlNmEuYTZmMGZlOWQ5NDIzNWYyNi43YjljOTdiYzBhZjhmN2JhLmU4MDlmZTliZGEzZDJkY2YKICAgICAxMzJkNTQ2ZTQ5OGI0ZjE5LmJjOTcyYzhlMjYxZjA3NGYuMDhhMTE1MTcwOGY0YjlmOC4zOTU3NzNjZjM3ZDhiNjI0CkBAIC0xNzQzNiwxMSArMTc0MzYsMTEgQEAKICAgYWZ0ZXIKICAgICAyZTFlOTY2MWJhOTQ1ZTZhLmE2ZjBmZTlkOTQyMzVmMjYuN2I5Yzk3YmMwYWY4ZjdiYS5lODA5ZmU5YmRhM2QyZGNmCiAgICAgMTMyZDU0NmU0OThiNGYxOS5iYzk3MmM4ZTI2MWYwNzRmLjA4YTExNTE3MDhmNGI5ZjguMzk1NzczY2YzN2Q4YjYyNAotICAgIDA4YTExNTE3MDhmNGI5ZjguMzk1NzczY2YzN2Q4YjYyNC4yZTFlOTY2MWJhOTQ1ZTZhLmE2ZjBmZTlkOTQyMzVmMjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2I5YzE1MTcwYWY4ZjdiYS4zOTU3NzNjZjM3ZDgyZGNmCiAgICAgYjdhMTY4MzBlMzA2MmNhYS5lZDMzOTI3NzQyMmQ5NTQzLmYyMGQyZDU1MThhNjVmYTUuMTc4ZTJkNWViZjkwNmJiMAogICAgIDVjMGY2OTkwMjJjNDEwM2UKIAotVlBFUk0yRjEyOF8weDAzKHJlZykKK1ZQTUFYU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTYzOThiOTk2OTQ0MzdlMi4yZjlkYjViZDI2YTI5MWU0LmMxYmVjMjQ3MDM1NmY0NjcuMDcwZGMwMGU2MTc0YmI2ZAogICAgIDVmNTg4ZmU1MzA5YzFjNDcuOGYyYmQ0YTIzM2UyOTVhNS4zNmQ5OTVlNGI3NTBiMjM2LjU4ZjlhNjZhYTZhMTE4NjUKQEAgLTE3NDQ4LDEyICsxNzQ0OCwxMiBAQAogICAgIDExYTQyOWY3YjEwMTBmMDcuN2IyZTc5MjUxOTgwNjk2YS43N2ViMTUzNjY2ZTkzZTg3LjFhYzU2MGI4OTE0NWM0OTcKICAgICA0MzNjMmM4MjcwZDU4YjI5CiAgIGFmdGVyCi0gICAgMzZkOTk1ZTRiNzUwYjIzNi41OGY5YTY2YWE2YTExODY1LmQ0Yjc2ZmUxMTQ1NmZiMWEuYjUxODQyY2MyNWQzZjQxOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNmQ5MDdiYWY5YTgwYzVkLjU4Zjk1ZDU0MDIzODMxYjkKICAgICA1ZjU4OGZlNTMwOWMxYzQ3LjhmMmJkNGEyMzNlMjk1YTUuMzZkOTk1ZTRiNzUwYjIzNi41OGY5YTY2YWE2YTExODY1CiAgICAgZDRiNzZmZTExNDU2ZmIxYS5iNTE4NDJjYzI1ZDNmNDE4LmFhY2YwN2JhZjlhODBjNWQuYmY5ZDVkNTQwMjM4MzFiOQogICAgIDExYTQyOWY3YjEwMTBmMDcuN2IyZTc5MjUxOTgwNjk2YS43N2ViMTUzNjY2ZTkzZTg3LjFhYzU2MGI4OTE0NWM0OTcKICAgICA0MzNjMmM4MjcwZDU4YjI5Ci1WUEVSTTJGMTI4XzB4MDMobWVtKQorVlBNQVhTV18xMjgobWVtKQogICBiZWZvcmUKICAgICAxOGNmM2I5ZWJiZjM0MjliLjcyNjliODk0YTIyNjk1YjkuYmUzOWY3OWIyYWY2YjFjNy5mYjdiYmFjMjk5OWY4NDYxCiAgICAgNzM0YTBiZjg4ZGFjYTcxYS41MzUzMTgyNTgzNTNjOGRkLjViMDczNzE4NzUzZjg3NWEuOTBjOWYyY2MyZjU3MTk5NgpAQCAtMTc0NjMsMTEgKzE3NDYzLDExIEBACiAgIGFmdGVyCiAgICAgMThjZjNiOWViYmYzNDI5Yi43MjY5Yjg5NGEyMjY5NWI5LmJlMzlmNzliMmFmNmIxYzcuZmI3YmJhYzI5OTlmODQ2MQogICAgIDczNGEwYmY4OGRhY2E3MWEuNTM1MzE4MjU4MzUzYzhkZC41YjA3MzcxODc1M2Y4NzVhLjkwYzlmMmNjMmY1NzE5OTYKLSAgICA1YjA3MzcxODc1M2Y4NzVhLjkwYzlmMmNjMmY1NzE5OTYuMThjZjNiOWViYmYzNDI5Yi43MjY5Yjg5NGEyMjY5NWI5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjViMDczNzE4NzUzZmIxYzcuZmI3YmYyY2MyZjU3MTk5NgogICAgIDJlMjhkYjE3MzcxYzY2ZWUuMDRjNjNiY2Y4N2YyMjkyOS4wZTE4ZWVkYzI3ODBkMWQ1LjYxZDEwYjA2ZjJmYTIzYzQKICAgICA1NTI0ZTUwZjU3ZmUwZjE0CiAKLVZQRVJNMkYxMjhfMHgwMyhyZWcpCitWUE1BWFNXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGNhNjY0MjQ1OGUzMzNjNzAuNDcyM2Q0YjM0N2ViMzg5Yi44ZGU2ZjdjMWUyN2RjZWFhLmRkZjM1ZGZhYzY4ZmJiMTQKICAgICAxZGUyMWUxNDM0MjVlMzg0LjU2MzU3YzNlNGY4NWE4MDQuMDY1Yzc0NTY5ZTNmMTA0Yy43NmMwN2VkMDBlYTIyNTM5CkBAIC0xNzQ3NSwxMiArMTc0NzUsMTIgQEAKICAgICBjZWJiNDQyZDNjNzI5NjgxLmM5ZDJjZWNkYjU0ODRkYmQuMzg3NWEyMTlhNjlhNWVhNS43MTYwYzc1NDBjMDY2NGU4CiAgICAgOGNjYmU3ZGJmOTZlYjJjYQogICBhZnRlcgotICAgIDA2NWM3NDU2OWUzZjEwNGMuNzZjMDdlZDAwZWEyMjUzOS5hYmU1NzVlOGU1NjE0M2ZiLjM4MmM1MWEzNmFmNTcwNTYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDY1Yzc0NTY1NWM1MmRiYy43NmMwN2VkMDFkYzYyNTM5CiAgICAgMWRlMjFlMTQzNDI1ZTM4NC41NjM1N2MzZTRmODVhODA0LjA2NWM3NDU2OWUzZjEwNGMuNzZjMDdlZDAwZWEyMjUzOQogICAgIGFiZTU3NWU4ZTU2MTQzZmIuMzgyYzUxYTM2YWY1NzA1Ni5jYjcyYWVmYTU1YzUyZGJjLmIzNGJjZDRhMWRjNmM5NzEKICAgICBjZWJiNDQyZDNjNzI5NjgxLmM5ZDJjZWNkYjU0ODRkYmQuMzg3NWEyMTlhNjlhNWVhNS43MTYwYzc1NDBjMDY2NGU4CiAgICAgOGNjYmU3ZGJmOTZlYjJjYQotVlBFUk0yRjEyOF8weDAzKG1lbSkKK1ZQTUFYU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZTA1N2E5YzlmZjBhNmU0Mi5lM2IwODU0ZmQ1ZTQxOWMzLmU1ZjQ3MGFhNGI4OWZhNjQuYTliMTRhMjAyYTRhZTJiNAogICAgIDQ5ZDE4OTBjM2JlNzU1N2MuNDYxMDM2YmI0ZDQ0MDg2ZC42ODVlYjEyNTQ5YzQzNDc4Ljc5NzJhNDc5ODA2MWY0OTUKQEAgLTE3NDkwLDExICsxNzQ5MCwxMSBAQAogICBhZnRlcgogICAgIGUwNTdhOWM5ZmYwYTZlNDIuZTNiMDg1NGZkNWU0MTljMy5lNWY0NzBhYTRiODlmYTY0LmE5YjE0YTIwMmE0YWUyYjQKICAgICA0OWQxODkwYzNiZTc1NTdjLjQ2MTAzNmJiNGQ0NDA4NmQuNjg1ZWIxMjU0OWM0MzQ3OC43OTcyYTQ3OTgwNjFmNDk1Ci0gICAgNjg1ZWIxMjU0OWM0MzQ3OC43OTcyYTQ3OTgwNjFmNDk1LmUwNTdhOWM5ZmYwYTZlNDIuZTNiMDg1NGZkNWU0MTljMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ODVlNzBhYTRiODkzNDc4Ljc5NzI0YTIwMmE0YWY0OTUKICAgICBjYWMwOTQzZGM0OTI5M2U5LjY3NDBkNjFkNDhmYjE5YTguMTMzOTA1YTVlYjVhM2Y5NS5hYmIyNWJkNTBiZjZiMDdhCiAgICAgYzNjOWIxYjA3YThjZDJkOAogCi1WUEVSTTJGMTI4XzB4ODUocmVnKQorVlBNSU5TV18xMjgocmVnKQogICBiZWZvcmUKICAgICBhYzk1YTg4ZDI5Yjk3MmI3LjlhY2JiNjA0NDg3ODYyNzQuZGNhOGJjZWIwNDZiYjM5MC5mMzQyMGY4M2M3Y2M4N2Y3CiAgICAgYzA2MjNjZGFiNTA5Y2NjMy5lZmY1ZTdjZjcyY2U0YzcxLjBmYWIwMmIzMGRmOGE4OTAuYWFjNGE5YWU3YTY4NGM3NQpAQCAtMTc1MDIsMTIgKzE3NTAyLDEyIEBACiAgICAgZGQyZjJiNzFkMTQ0OWQxNS45OGQyNjQyMTI2ZmM2MDcyLjFmYjI5YmRlN2M5YTk3ODguMGQ1ZTdmOWZkODUxM2Q3NwogICAgIDcxMGZiMjNkYmFiNGUwNTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzA2MjNjZGFiNTA5Y2NjMy5lZmY1ZTdjZjcyY2U0YzcxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBmYWJhM2UwMDIyZWE4OTAuYWFjNGE5YWUyMTNiNGEzYwogICAgIGMwNjIzY2RhYjUwOWNjYzMuZWZmNWU3Y2Y3MmNlNGM3MS4wZmFiMDJiMzBkZjhhODkwLmFhYzRhOWFlN2E2ODRjNzUKICAgICA1ZDdjNjkwMmI5MDkxY2E5LmE1MDlhMzhhNWRhMTBkMGMuNWM5NWEzZTAwMjJlMzY1NC4xNDg5NTAxNDIxM2I0YTNjCiAgICAgZGQyZjJiNzFkMTQ0OWQxNS45OGQyNjQyMTI2ZmM2MDcyLjFmYjI5YmRlN2M5YTk3ODguMGQ1ZTdmOWZkODUxM2Q3NwogICAgIDcxMGZiMjNkYmFiNGUwNTMKLVZQRVJNMkYxMjhfMHg4NShtZW0pCitWUE1JTlNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDFjNjc2NWQ4ZTM3MmYwZmMuOWVjNjdmOTM5YTQ2OGRiMi5hNDFkYTg4MGU4ZWIwM2NmLmI0NGRlNzE5MWFjNzA4ZDcKICAgICBlYTM0MTU1ZTcwOTcyODlkLmZhOGY1ZmQ0YWY5YzI1MmQuYTViNmU5OTNjMDdiYWY0ZS43N2I0ODJmZDc1NDJjNGVkCkBAIC0xNzUxNywxMSArMTc1MTcsMTEgQEAKICAgYWZ0ZXIKICAgICAxYzY3NjVkOGUzNzJmMGZjLjllYzY3ZjkzOWE0NjhkYjIuYTQxZGE4ODBlOGViMDNjZi5iNDRkZTcxOTFhYzcwOGQ3CiAgICAgZWEzNDE1NWU3MDk3Mjg5ZC5mYThmNWZkNGFmOWMyNTJkLmE1YjZlOTkzYzA3YmFmNGUuNzdiNDgyZmQ3NTQyYzRlZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYTM0MTU1ZTcwOTcyODlkLmZhOGY1ZmQ0YWY5YzI1MmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTQxZGE4ODBjMDdiYWY0ZS5iNDRkODJmZDFhYzdjNGVkCiAgICAgNWU1ODU4ZDgyNDQyMDQ3OS5mN2UyYjk2NDMwNzE0NDZjLmY1MDI1ODg2MWZhYjE5NjUuZjcxMTk1NzBkODRmMTAyMQogICAgIDZiYTAwNWQ4MTdmOTE4OTcKIAotVlBFUk0yRjEyOF8weDg1KHJlZykKK1ZQTUlOU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgN2UyYWI1OTg4NTIxNWI4My5iZDQ4ZTRhNDg0ZTIxZjBjLjRmMDUyOThhZDIwOTQyODcuZmQ0YzdjM2VkZjY0NGU1NAogICAgIDhiZmI5ZjFlYmQ1MjE2OTQuYWZkYzVkMGFiNjE3NTI0Ny5iNDg5MTc4MDMyMjRkYTMxLjZhMTU4ZjU5MjVlZDdlMTYKQEAgLTE3NTI5LDEyICsxNzUyOSwxMiBAQAogICAgIDAzYTExNzI4ZmMwMGU0ZDAuYmIxZjAyNTUwNjc2ZjQ2OC4xMGUzNWE4ODk2MTRjN2RjLmUyNGY2ZjZkYjBhMGJkYzEKICAgICBhNjU5MzUzZDJlZTI0NTAzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhiZmI5ZjFlYmQ1MjE2OTQuYWZkYzVkMGFiNjE3NTI0NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MGI5MTc4MGU5NGVkYTMxLjE3Mjc4ZjU5MGM1MjY0ZDYKICAgICA4YmZiOWYxZWJkNTIxNjk0LmFmZGM1ZDBhYjYxNzUyNDcuYjQ4OTE3ODAzMjI0ZGEzMS42YTE1OGY1OTI1ZWQ3ZTE2CiAgICAgZWU1ZWMxZDU1YjE5ODU3NC4wZmUwM2RmN2Q5ZjA1YjU4LjgwYjk3ZWIwZTk0ZTQ4MTMuMTcyNzBjYzUwYzUyNjRkNgogICAgIDAzYTExNzI4ZmMwMGU0ZDAuYmIxZjAyNTUwNjc2ZjQ2OC4xMGUzNWE4ODk2MTRjN2RjLmUyNGY2ZjZkYjBhMGJkYzEKICAgICBhNjU5MzUzZDJlZTI0NTAzCi1WUEVSTTJGMTI4XzB4ODUobWVtKQorVlBNSU5TV18xMjgobWVtKQogICBiZWZvcmUKICAgICAzZTExZDgyMWEyMjViOGM3LjI1MGU5Yjg1M2M5NjZlNTMuOGQ2NzI3MTI1Y2I3ZDlhNi5jMDUxYTc3M2QyMDE5NDM2CiAgICAgODg0M2Q2MDUyNzczZDEzOS5iMmYyNGI1N2I1NjQ2MGFhLjYzODIyODE4ZjRiZWM4M2IuZWQ1MDYyZGQzYmExZWFjZApAQCAtMTc1NDQsMTEgKzE3NTQ0LDExIEBACiAgIGFmdGVyCiAgICAgM2UxMWQ4MjFhMjI1YjhjNy4yNTBlOWI4NTNjOTY2ZTUzLjhkNjcyNzEyNWNiN2Q5YTYuYzA1MWE3NzNkMjAxOTQzNgogICAgIDg4NDNkNjA1Mjc3M2QxMzkuYjJmMjRiNTdiNTY0NjBhYS42MzgyMjgxOGY0YmVjODNiLmVkNTA2MmRkM2JhMWVhY2QKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODg0M2Q2MDUyNzczZDEzOS5iMmYyNGI1N2I1NjQ2MGFhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhkNjcyNzEyZjRiZWM4M2IuYzA1MWE3NzNkMjAxOTQzNgogICAgIDllNDNkMTdkZDU2NmU4ZGIuNzk0ZTFjMGFjOWRkNmI4My44NzY0YWZiNDYwNGZhZjIxLjI5MzEwZWRlMDMyYzI1NjYKICAgICBmMWFiZjk0ZDlhMmU4MGJlCiAKLVZQRVJNMkYxMjhfMHg4NShyZWcpCitWUE1JTlNXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGE1ZTU0MGViY2QxNDU2MDQuMjJhYmM1ZWEzNjIyNWQ2MS42YzVmMzVjNDlhYTBmYzVjLjhkYzMyZDIwNmJmMTFmYzkKICAgICBhMTJkZTEyNTM4NjllMWU0LmM3YmMwNDA2MTkxYTY5NDYuMzgxNzZhYTIxNmNjZTViYS4wNzI1Nzc4NzI5ODk4OTc5CkBAIC0xNzU1NiwxMiArMTc1NTYsMTIgQEAKICAgICBlMTEyMWUxOTI5OTEwOTFmLmU1MGI1MDAwZDNlZjM2ZGMuY2ZhYTE0N2U3ZDkwYWVhZi5jMzI2NjBmMzMxY2QzNWEzCiAgICAgYmQ1Y2Y3ZDFiMjkxZjE3NQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMTJkZTEyNTM4NjllMWU0LmM3YmMwNDA2MTkxYTY5NDYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzgxN2I1MTFkOGVkZTViYS5jZjU4MGFkNGI3MjQ4OTc5CiAgICAgYTEyZGUxMjUzODY5ZTFlNC5jN2JjMDQwNjE5MWE2OTQ2LjM4MTc2YWEyMTZjY2U1YmEuMDcyNTc3ODcyOTg5ODk3OQogICAgIDQxY2RkNzY1NzhiOTVlMDkuNmE0MjA5YmY5OTVhYzhiNi4zYmMxYjUxMWQ4ZWQ2MjQ3LmNmNTgwYWQ0YjcyNGE3NWUKICAgICBlMTEyMWUxOTI5OTEwOTFmLmU1MGI1MDAwZDNlZjM2ZGMuY2ZhYTE0N2U3ZDkwYWVhZi5jMzI2NjBmMzMxY2QzNWEzCiAgICAgYmQ1Y2Y3ZDFiMjkxZjE3NQotVlBFUk0yRjEyOF8weDg1KG1lbSkKK1ZQTUlOU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOWFjNjRhNTg1NjdiOTUwMC5kZDQ4YjJhY2U2N2MxZGQ0LjE2ZTI1NWI0ZTJlNDZlZTUuNTIxZTgyNTRhMDQwMDY5ZgogICAgIDM3MzBkNTc1M2E5N2RlNmYuOTFiYTkwODk0YjA3ZDdkMi5kNzkyOTVjOWUzNDYyZGZjLjFlNjlmY2ZlZGQ4OWE2YzMKQEAgLTE3NTcxLDExICsxNzU3MSwxMSBAQAogICBhZnRlcgogICAgIDlhYzY0YTU4NTY3Yjk1MDAuZGQ0OGIyYWNlNjdjMWRkNC4xNmUyNTViNGUyZTQ2ZWU1LjUyMWU4MjU0YTA0MDA2OWYKICAgICAzNzMwZDU3NTNhOTdkZTZmLjkxYmE5MDg5NGIwN2Q3ZDIuZDc5Mjk1YzllMzQ2MmRmYy4xZTY5ZmNmZWRkODlhNmMzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM3MzBkNTc1M2E5N2RlNmYuOTFiYTkwODk0YjA3ZDdkMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNzkyOTVjOWUyZTQyZGZjLjFlNjk4MjU0YTA0MGE2YzMKICAgICAxYzMzODQyMzMwOTY0ZWFiLjkwODYxNmQ2N2YyYTJkNWIuN2NiMGIzYzMyODdlMmYwNy4wNWIzMDA4MzE4MTdhYzU1CiAgICAgZDc0YTgzMzU0ZDc1OGIxYgogCi1WUEVSTTJGMTI4XzB4NUEocmVnKQorVlBNQVhVQl8xMjgocmVnKQogICBiZWZvcmUKICAgICA2M2U4MDI2YzBkOWJhMmM2LjFkNjRhMDhhN2I5MmVkZDEuOTQ3OGI3MWQ4NmRhNDAzZC4xOGI2ODk4MGE1NmNlYTUyCiAgICAgMDZkOTc3OTRmMzE3MmNmZi40ZGM1ZTQzODc0ZWYyMThhLmMwZDY5MjVmYTU1YWU5MWEuYjZjNjg5NGU4NGY3MWM1YwpAQCAtMTc1ODMsMTIgKzE3NTgzLDEyIEBACiAgICAgZmNlNDM4NjhhMjQwOGNkMS5hYTQ3ZDUxNmU2MDEzNjZiLjAwMDhlMjg1OWRmOGVjNmYuNjMzM2Y5YzhkNTEyZDQ1YgogICAgIDJiMjg2MDRlODBiYWQyYTkKICAgYWZ0ZXIKLSAgICAwNmQ5Nzc5NGYzMTcyY2ZmLjRkYzVlNDM4NzRlZjIxOGEuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMwZWRhMTVmYTU1YWU5OWMuYjZjNjg5NGVlMGY3ODE1YwogICAgIDA2ZDk3Nzk0ZjMxNzJjZmYuNGRjNWU0Mzg3NGVmMjE4YS5jMGQ2OTI1ZmE1NWFlOTFhLmI2YzY4OTRlODRmNzFjNWMKICAgICAxYTY5ZTAxYTliNzU2Njc0Ljg4MjJjYzE4MzliYmE1MDQuNzBlZGExMDk3OTM1NjM5Yy4zMGFjMzAxN2UwMmE4MTUwCiAgICAgZmNlNDM4NjhhMjQwOGNkMS5hYTQ3ZDUxNmU2MDEzNjZiLjAwMDhlMjg1OWRmOGVjNmYuNjMzM2Y5YzhkNTEyZDQ1YgogICAgIDJiMjg2MDRlODBiYWQyYTkKLVZQRVJNMkYxMjhfMHg1QShtZW0pCitWUE1BWFVCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDY0NThlMTkzZmMyZTM3NjUuMDg5NTdiZWJhMzA0ZDljMi45MDAwN2ExZTk2Y2U5MGViLmNiNzU1MDQwYWUyZWJlNDAKICAgICBlYThkZjk4NTY2N2JiZmJjLjlhY2FhNTEwM2I0ZDhiZjIuMTQxOTM3MWM2NjJkNmZhZi4yZjdmZThhNzQ3NjMxNmJiCkBAIC0xNzU5OCwxMSArMTc1OTgsMTEgQEAKICAgYWZ0ZXIKICAgICA2NDU4ZTE5M2ZjMmUzNzY1LjA4OTU3YmViYTMwNGQ5YzIuOTAwMDdhMWU5NmNlOTBlYi5jYjc1NTA0MGFlMmViZTQwCiAgICAgZWE4ZGY5ODU2NjdiYmZiYy45YWNhYTUxMDNiNGQ4YmYyLjE0MTkzNzFjNjYyZDZmYWYuMmY3ZmU4YTc0NzYzMTZiYgotICAgIGVhOGRmOTg1NjY3YmJmYmMuOWFjYWE1MTAzYjRkOGJmMi4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTAxOTdhMWU5NmNlOTBlYi5jYjdmZThhN2FlNjNiZWJiCiAgICAgNGQzOGRiMWQ3MmNkMjZlOS5jMWViYTBlYzllYTAwOGMwLjY4OTllOWFiZDRkMmFhYjQuMmU5ODgyMjU4MmZiNDc1ZAogICAgIDgyNDA3ZDE1NWQ3Nzk4ZGQKIAotVlBFUk0yRjEyOF8weDVBKHJlZykKK1ZQTUFYVUJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZGRiNTkxNjAzMDIxNWViNi5lMjQ3OWQ5YjRkZWI3ZTE4LjBkNzA2ODdjYTJjMTRjYjcuZjE5OWQ3MTNhYTMwN2Y0ZQogICAgIDlkNDNiYTcyOTc4N2Q3OTQuMzQ4YmU1NzU4NDExZTg5MS40ZmE4MDc1ZGFiOThlNTllLjg5MjljZDIyMGY1MGM5ZGMKQEAgLTE3NjEwLDEyICsxNzYxMCwxMiBAQAogICAgIGI4ZDkzZDliOTRiNWNkMTMuN2VlNWY5ZWQ3Y2E2ZTUxMy4yNTYwYmJjMjQyOTYwMGU5LjU2MjljMWUxZjgwN2FhODcKICAgICA0MzMwYjc2YWI0YjdiOWZiCiAgIGFmdGVyCi0gICAgOWQ0M2JhNzI5Nzg3ZDc5NC4zNDhiZTU3NTg0MTFlODkxLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lM2RmN2FmYmFiYjBlNTllLjg5MjljZGMyMjA1MGM5ZGMKICAgICA5ZDQzYmE3Mjk3ODdkNzk0LjM0OGJlNTc1ODQxMWU4OTEuNGZhODA3NWRhYjk4ZTU5ZS44OTI5Y2QyMjBmNTBjOWRjCiAgICAgMWMzNWY1YjcyZjM0M2QyNS4xZWQxMzA5NzM2NGIyMTgxLmUzZGY3YWZiNThiMDBjMjAuMGMxNTQ3YzIyMDNmNDM4YgogICAgIGI4ZDkzZDliOTRiNWNkMTMuN2VlNWY5ZWQ3Y2E2ZTUxMy4yNTYwYmJjMjQyOTYwMGU5LjU2MjljMWUxZjgwN2FhODcKICAgICA0MzMwYjc2YWI0YjdiOWZiCi1WUEVSTTJGMTI4XzB4NUEobWVtKQorVlBNQVhVQl8xMjgobWVtKQogICBiZWZvcmUKICAgICBhZmY3YTY0OTcwNTkyZTE0LmNiNzk4ZThhNjE5NWMyMGEuMmY5M2JjNjQ3NDJkZWY3NC43MDc4YzgxZTA3ZDRmYmE2CiAgICAgNzU0YjA5NmE0N2Y5YzNmZC5iMjYyZTRmMTMyNjA1YWI3LjBkYTdmNWU2M2FlY2ZkZDAuMjI3MzljN2M0M2Y4M2EwMwpAQCAtMTc2MjUsMTEgKzE3NjI1LDExIEBACiAgIGFmdGVyCiAgICAgYWZmN2E2NDk3MDU5MmUxNC5jYjc5OGU4YTYxOTVjMjBhLjJmOTNiYzY0NzQyZGVmNzQuNzA3OGM4MWUwN2Q0ZmJhNgogICAgIDc1NGIwOTZhNDdmOWMzZmQuYjI2MmU0ZjEzMjYwNWFiNy4wZGE3ZjVlNjNhZWNmZGQwLjIyNzM5YzdjNDNmODNhMDMKLSAgICA3NTRiMDk2YTQ3ZjljM2ZkLmIyNjJlNGYxMzI2MDVhYjcuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJmYTdmNWU2NzRlY2ZkZDAuNzA3OGM4N2M0M2Y4ZmJhNgogICAgIDg0YzQxYjIyYjc2NDNmZjIuNmQzZjkwZDM1MmU5NWRlMi5iZjMwYmJiZjllNDQwZjI3LjI4NDI4YWVhOGUyMTczNGIKICAgICAzNGFlOWNkMmQ1M2RlNThmCiAKLVZQRVJNMkYxMjhfMHg1QShyZWcpCitWUE1BWFVCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDE2MmM2NTZjMDI2ZThiMjIuODM4M2MzOTE4ODQ3OWY1NS5mOGNhZGUyNmQ5YmU0MmI4LjRjM2QzZWVlNzRmNDhkN2EKICAgICAyOTBhZTEyM2IyNDFhMGIxLjRlZmVjZmYzZTU1ODBmMzguYzdjZjIxYTFkNGFmYjhmMy43NmUwMjlkOTg3MGRmZDc4CkBAIC0xNzYzNywxMiArMTc2MzcsMTIgQEAKICAgICA1NzExZTM5ODA5ZmIwYjcxLmI0NTYwMzNjYjAzNjExMzIuYTI3Mjc3YmM5ODEyNGE0Yi4xMDE4MjA5M2Q2YTdhNTIzCiAgICAgMzg0NTI1M2E0YTQxNTUyOQogICBhZnRlcgotICAgIDI5MGFlMTIzYjI0MWEwYjEuNGVmZWNmZjNlNTU4MGYzOC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzdjZjU1YWZlMGFmZmNmMy43NmU1ZjVkOWY0OWFmZDc4CiAgICAgMjkwYWUxMjNiMjQxYTBiMS40ZWZlY2ZmM2U1NTgwZjM4LmM3Y2YyMWExZDRhZmI4ZjMuNzZlMDI5ZDk4NzBkZmQ3OAogICAgIGNiOTIwZDYzODA0MTYyZTcuYzAwMGJiMzJlOWE0NGJjOS4zNzk4NTVhZmUwNDdmYzQwLjE4ZTVmNTZjZjQ5YTFjNGMKICAgICA1NzExZTM5ODA5ZmIwYjcxLmI0NTYwMzNjYjAzNjExMzIuYTI3Mjc3YmM5ODEyNGE0Yi4xMDE4MjA5M2Q2YTdhNTIzCiAgICAgMzg0NTI1M2E0YTQxNTUyOQotVlBFUk0yRjEyOF8weDVBKG1lbSkKK1ZQTUFYVUJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNmUzNzgwNGQ2YzczZTg4OS4yOGQzNjEyZWU5ZmFkN2ZiLjA4Y2MyNGZiNTgxYTFiOWYuNjVhOTgyMzQ5ODlkZGRiZgogICAgIDhjYmJhZGI5NTY0YTFhNzAuOWMyNDgyOTFiYmNhMDQzMC45NjJlOTg1ZGZhNWQyNjNkLmRjODk3MjgzN2U3M2YyNDkKQEAgLTE3NjUyLDExICsxNzY1MiwxMSBAQAogICBhZnRlcgogICAgIDZlMzc4MDRkNmM3M2U4ODkuMjhkMzYxMmVlOWZhZDdmYi4wOGNjMjRmYjU4MWExYjlmLjY1YTk4MjM0OTg5ZGRkYmYKICAgICA4Y2JiYWRiOTU2NGExYTcwLjljMjQ4MjkxYmJjYTA0MzAuOTYyZTk4NWRmYTVkMjYzZC5kYzg5NzI4MzdlNzNmMjQ5Ci0gICAgOGNiYmFkYjk1NjRhMWE3MC45YzI0ODI5MWJiY2EwNDMwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NmNjOThmYmZhNWQyNjlmLmRjYTk4MjgzOTg5ZGYyYmYKICAgICBmNGFhNmU0N2Y4MTM0YTgyLmQ5YTI5ZTZlYTYwZjZjNGQuZDRlNjZlYjdhMjJlMmViYi41NjczZjE1NjY1MzE5MTRkCiAgICAgMTExNTc5YjNhMDMxOTMyMAogCi1WUEVSTUlMUERfMjU2XzB4MChyZWcpCitWUEVYVFJCX0d0b0VfMTI4XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIGYwOTFkNjk2MmZhZDA3YjguZjVhYmZhNDNlODFmYzAwNC41YjY3OTFjMWY3OWIxZjhkLjNiZDNjODg3ZGZkM2EzZjMKICAgICA0ZjMxMDQ2ZGFlMzAyOWMyLjUwNmY0ODQ3MTBmZmM0YmUuZWVlYjE3OTBhYjI5MjMyOC40ZWRjNjVhOTg3MDgwODBiCkBAIC0xNzY2NSwxMSArMTc2NjUsMTEgQEAKICAgICAxZjk3YWYzNDFkNzIzNjUwCiAgIGFmdGVyCiAgICAgZjA5MWQ2OTYyZmFkMDdiOC5mNWFiZmE0M2U4MWZjMDA0LjViNjc5MWMxZjc5YjFmOGQuM2JkM2M4ODdkZmQzYTNmMwotICAgIGRmYzFkNTNlOGZiZjE0ZGEuZGZjMWQ1M2U4ZmJmMTRkYS5lN2NkYzMwOWI3ZDYxYjMxLmU3Y2RjMzA5YjdkNjFiMzEKKyAgICA0ZjMxMDQ2ZGFlMzAyOWMyLjUwNmY0ODQ3MTBmZmM0YmUuZWVlYjE3OTBhYjI5MjMyOC40ZWRjNjVhOTg3MDgwODBiCiAgICAgOGE0MWZmYTJiYTQ2MzRlOS5kZmMxZDUzZThmYmYxNGRhLmVmN2EyYzQ5NWQ0M2IyY2IuZTdjZGMzMDliN2Q2MWIzMQogICAgIGZkMGZjNGEzZWU3YjY1ZGEuN2Y2YzFiMTY3ZTZiNmE4NC5iYjYwY2M1N2E5NzgwODIyLmUzNzI1ZDk0OGE0Yjk2OGUKLSAgICAxZjk3YWYzNDFkNzIzNjUwCi1WUEVSTUlMUERfMjU2XzB4MChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwYgorVlBFWFRSQl9HdG9FXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICA3NTA4MzVkNjhjNThiNmEzLjA0ZTY0ZGRiZTc1Y2Y4NDEuMGQzZDk4YmFmYjEwODJlOS5hY2U5ZjQyNTJjNTE2M2Q4CiAgICAgYzI5MDZjNjdmMTA3ZDRiMy5mYjExOThiNjQxNzQyOWM5LjYzMDBjNzE2MjJiOTFhMzUuMjA2MDlmMjE4MjVjZmQ5YQpAQCAtMTc2NzcsMTMgKzE3Njc3LDEzIEBACiAgICAgYjExOWRhMDMxM2Y2ZDViNy4yODk3NjIwNTg1N2E1M2VlLmRhOGMyY2E3ZGI0OWI1MzAuZmM0YzZlNTAxNTM2ZTFmMAogICAgIDFlNTg4YjVjOGExZGEyZGQKICAgYWZ0ZXIKLSAgICA3NTA4MzVkNjhjNThiNmEzLjA0ZTY0ZGRiZTc1Y2Y4NDEuMGQzZDk4YmFmYjEwODJlOS5hY2U5ZjQyNTJjNTE2M2Q4Ci0gICAgMDRlNjRkZGJlNzVjZjg0MS4wNGU2NGRkYmU3NWNmODQxLmFjZTlmNDI1MmM1MTYzZDguMGQzZDk4YmFmYjEwODJlOQorICAgIDc1MDgzNWQ2OGM1OGI2YTMuMDRlNjRkZGJlNzVjZjg0MS4wZDNkOThiYWZiMTA4MmU5LmFjZTlmNDI1MmM1MTYzOWEKKyAgICBjMjkwNmM2N2YxMDdkNGIzLmZiMTE5OGI2NDE3NDI5YzkuNjMwMGM3MTYyMmI5MWEzNS4yMDYwOWYyMTgyNWNmZDlhCiAgICAgZTJmZGNmZDI2YjhlNGFhYi4zZWRkYTFhMDk2NTAzMzFmLjVlODEyNDE2MGU3M2VjOTMuNzExMmM5YjY0NjI1MTMxMwogICAgIGIxMTlkYTAzMTNmNmQ1YjcuMjg5NzYyMDU4NTdhNTNlZS5kYThjMmNhN2RiNDliNTMwLmZjNGM2ZTUwMTUzNmUxZjAKICAgICAxZTU4OGI1YzhhMWRhMmRkCiAKLVZQRVJNSUxQRF8yNTZfMHgwKHJlZykKK1ZQRVhUUkJfR3RvRV8xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgMzE4MjFiNDQ0MTY2OTM4NS4wYmIxMDllNTA4NGQzMDA1LjE3ODhkOTUxYTc4MWM1ZTMuYjNlZDU5YjNhNjQ3MzEzNwogICAgIDkyMTgxOTc1ZDc5YmYwOTUuY2Q5MWQ5NjY2MzllMThiZS42NmZmMDBmMTlhZWVjNGFhLmM1NmYyOTI3OGI3YTFiZDUKQEAgLTE3NjkyLDExICsxNzY5MiwxMSBAQAogICAgIGU5YmEzZTJkZTljM2NhZWYKICAgYWZ0ZXIKICAgICAzMTgyMWI0NDQxNjY5Mzg1LjBiYjEwOWU1MDg0ZDMwMDUuMTc4OGQ5NTFhNzgxYzVlMy5iM2VkNTliM2E2NDczMTM3Ci0gICAgZDE4NWM1NzE0MmY2NDkxMS5kMTg1YzU3MTQyZjY0OTExLmVjZGYxN2YwYTVlZDMwMzYuZWNkZjE3ZjBhNWVkMzAzNgorICAgIDkyMTgxOTc1ZDc5YmYwOTUuY2Q5MWQ5NjY2MzllMThiZS42NmZmMDBmMTlhZWVjNGFhLmM1NmYyOTI3OGI3YTFiZDUKICAgICA5ZDY1ODQ1Y2U3NGFmNGI5LmQxODVjNTcxNDJmNjQ5MTEuNzE0N2Q1NGZmYTRmOGRlZS5lY2RmMTdmMGE1ZWQzMDM2CiAgICAgYWViNDU1NjMwZWZmZGM5Yy5mNDU4NDhmM2MxNjA3ZjI4LjkzYWI1NGQ5NjIyZjVjNWIuMDQwYWEwZjkxMGFjMmM4NQotICAgIGU5YmEzZTJkZTljM2NhZWYKLVZQRVJNSUxQRF8yNTZfMHgwKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMGQ1CitWUEVYVFJCX0d0b0VfMTI4XzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDc3YmI2ZjdhNGIzZmM3OWYuMjE1MjhhZjhlODQ1ZTRlYS4xMmQ4ZTFkNmZiZTg3NTJmLjJhNzk3N2Y5NmYxYjZkOWYKICAgICA4YWRiYWVjYjUzMmNkZmMyLjUyOGIxZDg2MGZhODQ4NTAuMDdjZjA5MDcwZDliZTg1My45MGZiM2MxZGJjOWVmYjY0CkBAIC0xNzcwNCwxMyArMTc3MDQsMTMgQEAKICAgICBhZmE0NDcyOWMzODU0ZjEwLjVlZmU1MzNjYmFmNjEyMTQuZTU1NWZhMDQyNmFmMzVhMi4zZDRlOTkxZTg3OWE4MTIyCiAgICAgM2NiNjI5ZDMzZTJhZjA3NAogICBhZnRlcgotICAgIDc3YmI2ZjdhNGIzZmM3OWYuMjE1MjhhZjhlODQ1ZTRlYS4xMmQ4ZTFkNmZiZTg3NTJmLjJhNzk3N2Y5NmYxYjZkOWYKLSAgICAyMTUyOGFmOGU4NDVlNGVhLjIxNTI4YWY4ZTg0NWU0ZWEuMmE3OTc3Zjk2ZjFiNmQ5Zi4xMmQ4ZTFkNmZiZTg3NTJmCisgICAgNzdiYjZmN2E0YjNmYzc5Zi4yMTUyOGFmOGU4NDVlNGVhLjEyZDhlMWQ2ZmJlODc1MmYuMmE3OTc3Zjk2ZjFiNmQ2NAorICAgIDhhZGJhZWNiNTMyY2RmYzIuNTI4YjFkODYwZmE4NDg1MC4wN2NmMDkwNzBkOWJlODUzLjkwZmIzYzFkYmM5ZWZiNjQKICAgICBmZWU1NzcwYzFjOTRjZTg0LjlkYWIwYzc5MjJiNDQzN2EuYWUwYTNlNzMxMjg0OTRjMC4yMzdlOWViMGU1NDQ0MzU2CiAgICAgYWZhNDQ3MjljMzg1NGYxMC41ZWZlNTMzY2JhZjYxMjE0LmU1NTVmYTA0MjZhZjM1YTIuM2Q0ZTk5MWU4NzlhODEyMgogICAgIDNjYjYyOWQzM2UyYWYwNzQKIAotVlBFUk1JTFBEXzI1Nl8weDAocmVnKQorVlBFWFRSQl9HdG9FXzEyOF8weDAocmVnKQogICBiZWZvcmUKICAgICA3YTA0NGIzYmE1ODNjZGY3Ljc5ZTU5ODBlNjMwYjFmOTMuZjFkMGVjM2Q3NmY5ZjFjOS44NzdjYmJhODY2Mjk4NjI0CiAgICAgNTU4MmZhYzI1ODJlNTQ1OC4zODc0ZThhNzE5MzBmYTM4LmIyNmNkNWU4ZWY0OTFjNDUuNzA0YWZkNGFlZWZkNDQ3MgpAQCAtMTc3MTksMTEgKzE3NzE5LDExIEBACiAgICAgNmM5ZDlhNWI0OTBmNjJlMQogICBhZnRlcgogICAgIDdhMDQ0YjNiYTU4M2NkZjcuNzllNTk4MGU2MzBiMWY5My5mMWQwZWMzZDc2ZjlmMWM5Ljg3N2NiYmE4NjYyOTg2MjQKLSAgICBjODFkYjJlMTAwMDI5YzJjLmM4MWRiMmUxMDAwMjljMmMuN2M4ZDNhZDVkOTM3MmFiOS43YzhkM2FkNWQ5MzcyYWI5CisgICAgNTU4MmZhYzI1ODJlNTQ1OC4zODc0ZThhNzE5MzBmYTM4LmIyNmNkNWU4ZWY0OTFjNDUuNzA0YWZkNGFlZWZkNDQ3MgogICAgIDI3N2UzMmQ0ZjRiOWMxNDMuYzgxZGIyZTEwMDAyOWMyYy5mZDIwMDlhN2MzNzNjZTM1LjdjOGQzYWQ1ZDkzNzJhYjkKICAgICA0ZTQyZWZkZDE0YjA0ZjYzLjA0YWM3M2E2MzU4ZGMwOWEuMmUzNjg0ZTc4ZTAyNDQ0NS44NzBmZjAzNzQzZTRmNjI1Ci0gICAgNmM5ZDlhNWI0OTBmNjJlMQotVlBFUk1JTFBEXzI1Nl8weDAobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNzIKK1ZQRVhUUkJfR3RvRV8xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgMDkwM2I0MmQwNmM0MmIxYS4yNDFiMmQ0YTU1OWQzYjY0LmNhZWNhNWU0ZDNkYjIzYjAuYTFmYjQyMTVlYjgzYjkyMAogICAgIDM5MGRiYTlhOTcxMDBjZmMuMDY1NGU5ODU1MzBlYzFmMy5mNWFiYzY4NWY2ZmE4MTk3LmIyYmI0MDliNzc4MTZiNzMKQEAgLTE3NzMxLDEzICsxNzczMSwxMyBAQAogICAgIGMxM2M3Y2YwYTM5YTBhNjkuNWYxYWM4MWFmMmFhODk2Yi5lOWQxYzJhNTNlZDkxYzhlLjFkNWJlOTYzODkyNDcxMzAKICAgICAzMGQzOGM3ZDQ4ZTIzZGYyCiAgIGFmdGVyCi0gICAgMDkwM2I0MmQwNmM0MmIxYS4yNDFiMmQ0YTU1OWQzYjY0LmNhZWNhNWU0ZDNkYjIzYjAuYTFmYjQyMTVlYjgzYjkyMAotICAgIDI0MWIyZDRhNTU5ZDNiNjQuMjQxYjJkNGE1NTlkM2I2NC5hMWZiNDIxNWViODNiOTIwLmNhZWNhNWU0ZDNkYjIzYjAKKyAgICAwOTAzYjQyZDA2YzQyYjFhLjI0MWIyZDRhNTU5ZDNiNjQuY2FlY2E1ZTRkM2RiMjNiMC5hMWZiNDIxNWViODNiOTczCisgICAgMzkwZGJhOWE5NzEwMGNmYy4wNjU0ZTk4NTUzMGVjMWYzLmY1YWJjNjg1ZjZmYTgxOTcuYjJiYjQwOWI3NzgxNmI3MwogICAgIGQ3ODcyOThjMTdmZWMzYjIuNTEzYjFlZmNhODhmMWNiYy42MGIzNTE3N2JiZjY5NTdlLmJkYzE3OWU3Y2Q4ODk0ZWEKICAgICBjMTNjN2NmMGEzOWEwYTY5LjVmMWFjODFhZjJhYTg5NmIuZTlkMWMyYTUzZWQ5MWM4ZS4xZDViZTk2Mzg5MjQ3MTMwCiAgICAgMzBkMzhjN2Q0OGUyM2RmMgogCi1WUEVSTUlMUERfMjU2XzB4RihyZWcpCitWUEVYVFJCX0d0b0VfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDUxNzY1ZWEwYTU0ZDM1ZGIuZDJmYTJmYjM1NmYxOWQ0Yy44ZDNmZTM0YmNkZWQ0NGFiLjZiZDE5NWZiOWFiMmQyZjYKICAgICBkYzkwNWMzODNkZjI5NTk4LmU1OGJiZWJmNGQwZTNhODguMzdmNDZjZmJkNGU0ODkyOC5jMTdmNDc2NWViOGE3M2UwCkBAIC0xNzc0NiwxMSArMTc3NDYsMTEgQEAKICAgICA1YjkzNjk1NGI4OGQyZDY2CiAgIGFmdGVyCiAgICAgNTE3NjVlYTBhNTRkMzVkYi5kMmZhMmZiMzU2ZjE5ZDRjLjhkM2ZlMzRiY2RlZDQ0YWIuNmJkMTk1ZmI5YWIyZDJmNgotICAgIDJjNmQ4MWIxYWM1Yzk5ZDUuMmM2ZDgxYjFhYzVjOTlkNS5iOTg2NWU5NmE0MTk5MzkwLmI5ODY1ZTk2YTQxOTkzOTAKKyAgICBkYzkwNWMzODNkZjI5NTk4LmU1OGJiZWJmNGQwZTNhODguMzdmNDZjZmJkNGU0ODkyOC5jMTdmNDc2NWViOGE3M2UwCiAgICAgMmM2ZDgxYjFhYzVjOTlkNS5kOGJjYTUwMmEzZmQ5YjQ4LmI5ODY1ZTk2YTQxOTkzOTAuYzlhNzUzY2Y0ZTZmYmE3OQogICAgIDlmNTljOTc3OGMxNzdkM2QuODU1OTYxNjc3NGNiN2RiOS42ZjQxYjU4OGQ4MWI5ZjhjLjVkMTQzNTI1ZGU2YzY0ZWMKLSAgICA1YjkzNjk1NGI4OGQyZDY2Ci1WUEVSTUlMUERfMjU2XzB4RihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDA3MworVlBFWFRSQl9HdG9FXzEyOF8weDEobWVtKQogICBiZWZvcmUKICAgICA5ZGYxNmM0NmY3ZGZkMDEyLjhmYTAzMGY2N2NiMDdjN2MuY2EyZTZkZGFkZDgzOWIwNy5iNjcwNmQzZDBkNzNlOWNiCiAgICAgMDFmOGI4ZThiODZkMGExZC41YThkYjM5YjE2YjJkMzQwLjgxMDY0NTQ2ZmEzMmIzNWQuZTg2MTgyMjFkZWFmYWNmNwpAQCAtMTc3NTgsMTMgKzE3NzU4LDEzIEBACiAgICAgOWEzMzIxZWUyZTZlMzNmZi5lZDhjZmEwM2I4MjE3NzAxLmI5ZjM0YWJmYmRhMmJiZDQuODBiNGI1MjdjNTAwOTFjOAogICAgIDllYWZjYTIxMTQyZTI5YzQKICAgYWZ0ZXIKLSAgICA5ZGYxNmM0NmY3ZGZkMDEyLjhmYTAzMGY2N2NiMDdjN2MuY2EyZTZkZGFkZDgzOWIwNy5iNjcwNmQzZDBkNzNlOWNiCi0gICAgOWRmMTZjNDZmN2RmZDAxMi45ZGYxNmM0NmY3ZGZkMDEyLmNhMmU2ZGRhZGQ4MzliMDcuYjY3MDZkM2QwZDczZTljYgorICAgIDlkZjE2YzQ2ZjdkZmQwMTIuOGZhMDMwZjY3Y2IwN2M3Yy5jYTJlNmRkYWRkODM5YjA3LmI2NzA2ZDNkMGQ3M2U5YWMKKyAgICAwMWY4YjhlOGI4NmQwYTFkLjVhOGRiMzliMTZiMmQzNDAuODEwNjQ1NDZmYTMyYjM1ZC5lODYxODIyMWRlYWZhY2Y3CiAgICAgNjE3NGNiMjcxNjQ0OTdiMy41YTZkNGRkMGY2YTliZDMzLjg3YWY2NTlhZTZlMzdmZTguNjI1ZWYxYTFlNzVhMjZiYwogICAgIDlhMzMyMWVlMmU2ZTMzZmYuZWQ4Y2ZhMDNiODIxNzcwMS5iOWYzNGFiZmJkYTJiYmQ0LjgwYjRiNTI3YzUwMDkxYzgKICAgICA5ZWFmY2EyMTE0MmUyOWM0CiAKLVZQRVJNSUxQRF8yNTZfMHhGKHJlZykKK1ZQRVhUUkJfR3RvRV8xMjhfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgMTc5YjJjZjk2ZTZmMmM1Zi44OTAwMzQyODFiZmE5OTJlLjZkMzZiNjllZmFhNzNkNTcuZjE5ZjZmYTI5YzdiMjU0YwogICAgIDQ5YzRkODFkNzI1MGQ0NDMuMDhhNjgxYzNmYWYxODY2Yy4zOGI3N2QwZjU1Yzc0YmUxLjBjN2Y1MDJmOWY3Yjc3N2MKQEAgLTE3NzczLDExICsxNzc3MywxMSBAQAogICAgIDQ4NGUzNDBjOTNkOTNhMWEKICAgYWZ0ZXIKICAgICAxNzliMmNmOTZlNmYyYzVmLjg5MDAzNDI4MWJmYTk5MmUuNmQzNmI2OWVmYWE3M2Q1Ny5mMTlmNmZhMjljN2IyNTRjCi0gICAgOGY3NmM5ZjhiYTViNWQxYy44Zjc2YzlmOGJhNWI1ZDFjLmE4NWI0Y2MxNjcwYmRkNGEuYTg1YjRjYzE2NzBiZGQ0YQorICAgIDQ5YzRkODFkNzI1MGQ0NDMuMDhhNjgxYzNmYWYxODY2Yy4zOGI3N2QwZjU1Yzc0YmUxLjBjN2Y1MDJmOWY3Yjc3N2MKICAgICA4Zjc2YzlmOGJhNWI1ZDFjLmY0ZjI4NWFhZTY2MWI2ZTQuYTg1YjRjYzE2NzBiZGQ0YS5lNzVmNjk1M2UwYWQ2ZTkyCiAgICAgNDVmY2ZhZjZlMjFmMDU5Ny4yOWIwYmJjOWZjNTVlNGMyLjFhNmQxZTIwY2MwMTJlM2YuNWMwYTM2Zjg3ZTFlYzViNwotICAgIDQ4NGUzNDBjOTNkOTNhMWEKLVZQRVJNSUxQRF8yNTZfMHhGKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDc3CitWUEVYVFJCX0d0b0VfMTI4XzB4MShtZW0pCiAgIGJlZm9yZQogICAgIDg3ZjVkZTc5M2JlYTg3ZTUuYzdhMzZhODM4NzI1MDY2MC44NGFjYTAwZDU3ZGFjZDM0LmViM2JlZjk4MWYzNTdiNmIKICAgICBmNWNjYjAyZDkzNWQ2OTQ1LjcxYjcxMjBiNDRmYjlkMjMuZGZiMmFlNjAxM2ZiMmQ2My43NTBmYmI5NWZkMzFmZjdiCkBAIC0xNzc4NSwxMyArMTc3ODUsMTMgQEAKICAgICBjZjNhYmQxN2MxOWNkYTcyLmFjNTZmZWJkNzg0NTdjNDQuMDgwYjNhZTcyMDQxNDFhZi4yOGZjMzVjZWM3YjdhMGY2CiAgICAgMDhhY2RiZTNlYzU3MzNiOQogICBhZnRlcgotICAgIDg3ZjVkZTc5M2JlYTg3ZTUuYzdhMzZhODM4NzI1MDY2MC44NGFjYTAwZDU3ZGFjZDM0LmViM2JlZjk4MWYzNTdiNmIKLSAgICA4N2Y1ZGU3OTNiZWE4N2U1Ljg3ZjVkZTc5M2JlYTg3ZTUuODRhY2EwMGQ1N2RhY2QzNC5lYjNiZWY5ODFmMzU3YjZiCisgICAgODdmNWRlNzkzYmVhODdlNS5jN2EzNmE4Mzg3MjUwNjYwLjg0YWNhMDBkNTdkYWNkMzQuZWIzYmVmOTgxZjM1N2JmZgorICAgIGY1Y2NiMDJkOTM1ZDY5NDUuNzFiNzEyMGI0NGZiOWQyMy5kZmIyYWU2MDEzZmIyZDYzLjc1MGZiYjk1ZmQzMWZmN2IKICAgICA2ZmEwMjYxM2I2M2Y5YjY1LjllODRmMGZhYjYyYzA2OGEuMTc4ZTYzYWY0ZGM0YzA3ZS4xNTM2N2U4MzAxODNmODFiCiAgICAgY2YzYWJkMTdjMTljZGE3Mi5hYzU2ZmViZDc4NDU3YzQ0LjA4MGIzYWU3MjA0MTQxYWYuMjhmYzM1Y2VjN2I3YTBmNgogICAgIDA4YWNkYmUzZWM1NzMzYjkKIAotVlBFUk1JTFBEXzI1Nl8weEYocmVnKQorVlBFWFRSQl9HdG9FXzEyOF8weDEocmVnKQogICBiZWZvcmUKICAgICAxMjk0NmMyYzBiZjFlZjEwLmYyNjllZjI1Y2Y3ZWUyOTcuZjY3OTNiYmUyN2QwM2NmYi44ZWY3YWZmMmE5N2Y2ZDIyCiAgICAgYTJmZWU1MTdjMTExMGVhNi5iNGY4M2EyOWZjZjM2ZjAxLmQ3MzhhMDZhNWU1YzgyNWMuODUxYzNlYmUwNDhhMDAwNQpAQCAtMTc4MDAsMTEgKzE3ODAwLDExIEBACiAgICAgYThkZTYxZDkxNGVhNzlmYgogICBhZnRlcgogICAgIDEyOTQ2YzJjMGJmMWVmMTAuZjI2OWVmMjVjZjdlZTI5Ny5mNjc5M2JiZTI3ZDAzY2ZiLjhlZjdhZmYyYTk3ZjZkMjIKLSAgICAxNDM4NDAwZWE5NDJjZDI3LjE0Mzg0MDBlYTk0MmNkMjcuYWRlMDJhMmViOTcyOGExMi5hZGUwMmEyZWI5NzI4YTEyCisgICAgYTJmZWU1MTdjMTExMGVhNi5iNGY4M2EyOWZjZjM2ZjAxLmQ3MzhhMDZhNWU1YzgyNWMuODUxYzNlYmUwNDhhMDAwNQogICAgIDE0Mzg0MDBlYTk0MmNkMjcuZjFiMjFhMGY2NTA2M2NkYy5hZGUwMmEyZWI5NzI4YTEyLmM5NDc2NDM1NGM2Y2I2ODEKICAgICBjNDhjN2I3ZjYwMTA2ODQwLjg1NjQwOWM0MjZjNDA2NTMuZDNiZWQ2NzVkNWEwOGZjYS4zNjQzOWI0NTlkMzM0YWM1Ci0gICAgYThkZTYxZDkxNGVhNzlmYgotVlBFUk1JTFBEXzI1Nl8weEYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZQRVhUUkJfR3RvRV8xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgZmJlMzMyZGRjYzllZmY0Zi4wZTQ3OTFkNTgyMDcxYTlkLjRjZGE4NDMyNWEzODg5OTIuYTQxYzlmYWI0ZTcxY2UzMAogICAgIDBiMWQ4ODNkZTI1YTk3ZWYuNGViNDdlN2NhOWI0MjBlYS4yMWUwMDg0NzFkNmU4MWM3LjdlNDY4MTNiYmY3MjgzZWYKQEAgLTE3ODEyLDEzICsxNzgxMiwxMyBAQAogICAgIGQxNjNiOGMyOTYxYmYwYmQuMjBkOWNmNmQ3YzVkMTcwMS42YWNjMTkxMmMzNTJiZWJkLmI5MzM4MTFlZmEzMTNkMmEKICAgICBkMjhjOTc0OWZkMDhiYmZlCiAgIGFmdGVyCi0gICAgZmJlMzMyZGRjYzllZmY0Zi4wZTQ3OTFkNTgyMDcxYTlkLjRjZGE4NDMyNWEzODg5OTIuYTQxYzlmYWI0ZTcxY2UzMAotICAgIGZiZTMzMmRkY2M5ZWZmNGYuZmJlMzMyZGRjYzllZmY0Zi40Y2RhODQzMjVhMzg4OTkyLmE0MWM5ZmFiNGU3MWNlMzAKKyAgICBmYmUzMzJkZGNjOWVmZjRmLjBlNDc5MWQ1ODIwNzFhOWQuNGNkYTg0MzI1YTM4ODk5Mi5hNDFjOWZhYjRlNzFjZTgzCisgICAgMGIxZDg4M2RlMjVhOTdlZi40ZWI0N2U3Y2E5YjQyMGVhLjIxZTAwODQ3MWQ2ZTgxYzcuN2U0NjgxM2JiZjcyODNlZgogICAgIGI0NTllMWU1NzEyYWZlMDQuZTAyMTNmZTA3M2EyYjZkMi5lMjQyMTBlZDhjNzNhOTFjLmJiOGE3ODkzYzQyZWU5YjMKICAgICBkMTYzYjhjMjk2MWJmMGJkLjIwZDljZjZkN2M1ZDE3MDEuNmFjYzE5MTJjMzUyYmViZC5iOTMzODExZWZhMzEzZDJhCiAgICAgZDI4Yzk3NDlmZDA4YmJmZQogCi1WUEVSTUlMUERfMjU2XzB4QShyZWcpCitWUEVYVFJCX0d0b0VfMTI4XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDY0ZTJiNjdlNjczZTlmZGIuNDAwNzg5YmU2YzM4Mjg0NC42YTI3Mjk4ZjVmNzI4MTI0Ljk1NDk5ZGExZGQxNzdiZDgKICAgICBjOTgxZGEyYWQ3NWYyNDZlLmRjMTFkMGM2MGY4ZDY0YzUuMWE1ODRjYjJiOTZjMmRlNy4zZjg3MWE4NmY2Y2Y5ZTk2CkBAIC0xNzgyNywxMSArMTc4MjcsMTEgQEAKICAgICBjZWI2Mzk3MTU3MWNiOTY2CiAgIGFmdGVyCiAgICAgNjRlMmI2N2U2NzNlOWZkYi40MDA3ODliZTZjMzgyODQ0LjZhMjcyOThmNWY3MjgxMjQuOTU0OTlkYTFkZDE3N2JkOAotICAgIDVlYjUwMGJhZTdmODg3NjMuODE0YzBhYzc5YzI3NWU2ZC44Y2I4MzE0MzI1ZDg1YWY1LjQzNTAwYmFkMmI4NWUxMjYKKyAgICBjOTgxZGEyYWQ3NWYyNDZlLmRjMTFkMGM2MGY4ZDY0YzUuMWE1ODRjYjJiOTZjMmRlNy4zZjg3MWE4NmY2Y2Y5ZTk2CiAgICAgNWViNTAwYmFlN2Y4ODc2My44MTRjMGFjNzljMjc1ZTZkLjhjYjgzMTQzMjVkODVhZjUuNDM1MDBiYWQyYjg1ZTEyNgogICAgIDgwY2EyMjk4MzM5NDA0NjUuMGE4NmIxYWMyZjExZDI2OC4xYzkzZDVhYzNmNDE0M2ZiLjdmNzFlYzAyOTc0NTAxYjIKLSAgICBjZWI2Mzk3MTU3MWNiOTY2Ci1WUEVSTUlMUERfMjU2XzB4QShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDBjZgorVlBFWFRSQl9HdG9FXzEyOF8weDIobWVtKQogICBiZWZvcmUKICAgICAwYmVhNmZlNjg2MTVjNzZmLjg5MGMzZTMyNThiZmQ2MjEuNTU4OTQzNjBlMzU3N2VlMS4yNTM1MzU1YmE0MzMyM2E1CiAgICAgMTRkYjA5NGU0MTNjZTVmOS5kNmM2NGZmM2YxMDYzYTQyLjNkMjIzYmQxZDQwNjFjMDUuMDVlOTRjYmJmMDNhMzY5ZQpAQCAtMTc4MzksMTMgKzE3ODM5LDEzIEBACiAgICAgZjYxZjU5YTNjOTQ2NDMzZS5hY2Q2NDE5OWYxMTVhODY2LjUzNDY0ZTk3ZTBjZDIwZmQuYjdiYjkwM2RhYWI5ZTkyZgogICAgIDQwNzBiNTM4NTE0OTAwMWYKICAgYWZ0ZXIKLSAgICAwYmVhNmZlNjg2MTVjNzZmLjg5MGMzZTMyNThiZmQ2MjEuNTU4OTQzNjBlMzU3N2VlMS4yNTM1MzU1YmE0MzMyM2E1Ci0gICAgMGJlYTZmZTY4NjE1Yzc2Zi44OTBjM2UzMjU4YmZkNjIxLjU1ODk0MzYwZTM1NzdlZTEuNTU4OTQzNjBlMzU3N2VlMQorICAgIDBiZWE2ZmU2ODYxNWM3NmYuODkwYzNlMzI1OGJmZDYyMS41NTg5NDM2MGUzNTc3ZWUxLjI1MzUzNTViYTQzMzIzM2EKKyAgICAxNGRiMDk0ZTQxM2NlNWY5LmQ2YzY0ZmYzZjEwNjNhNDIuM2QyMjNiZDFkNDA2MWMwNS4wNWU5NGNiYmYwM2EzNjllCiAgICAgYzQ1MzgzOTNhMzllY2YyZi5jMzQ1NTI0NjliZjQ2Yzc1LjlkMWQxNmVhMWYyOTY5MDAuMTdmYzE2MzdiZWUzYmE5MwogICAgIGY2MWY1OWEzYzk0NjQzM2UuYWNkNjQxOTlmMTE1YTg2Ni41MzQ2NGU5N2UwY2QyMGZkLmI3YmI5MDNkYWFiOWU5MmYKICAgICA0MDcwYjUzODUxNDkwMDFmCiAKLVZQRVJNSUxQRF8yNTZfMHhBKHJlZykKK1ZQRVhUUkJfR3RvRV8xMjhfMHgyKHJlZykKICAgYmVmb3JlCiAgICAgMTA2ODgwOTQ0ZjFlM2IwZi44ODBiMDc2OWNlNDFmYjUyLmVlYzMxYTU3OGZmNjI5YzAuMzk2OTYxYzQzMmZjZmUyOAogICAgIDgyZWVmMGJkM2VjNGQ1YWEuNTRlMzBhZDBjZTk5YjQ5Ni5lMzU4ZDhlYzEyMjIyYzMwLjJkNTFjYTVkMzFjNGJmYWYKQEAgLTE3ODU0LDExICsxNzg1NCwxMSBAQAogICAgIGVkYTZlM2VhNTgyN2FiMTkKICAgYWZ0ZXIKICAgICAxMDY4ODA5NDRmMWUzYjBmLjg4MGIwNzY5Y2U0MWZiNTIuZWVjMzFhNTc4ZmY2MjljMC4zOTY5NjFjNDMyZmNmZTI4Ci0gICAgZjE1MGZlMjBiZGM4MGI5Yy4zODczZGRjNmU3NWMyOTM2LmU4ZTM3N2M1MTYyNWVkNjEuMDljYjA2NGZmYTMxMWZiYworICAgIDgyZWVmMGJkM2VjNGQ1YWEuNTRlMzBhZDBjZTk5YjQ5Ni5lMzU4ZDhlYzEyMjIyYzMwLjJkNTFjYTVkMzFjNGJmYWYKICAgICBmMTUwZmUyMGJkYzgwYjljLjM4NzNkZGM2ZTc1YzI5MzYuZThlMzc3YzUxNjI1ZWQ2MS4wOWNiMDY0ZmZhMzExZmJjCiAgICAgYmJkOGE3Mjc2NWI0MTk5My4wZTg3ZmMzNjMyOTYxODYwLjU5YWZmMzRjMzY4Y2E4MDAuYWJhNDhmODRhODRlZGE3YgotICAgIGVkYTZlM2VhNTgyN2FiMTkKLVZQRVJNSUxQRF8yNTZfMHhBKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMGM0CitWUEVYVFJCX0d0b0VfMTI4XzB4MihtZW0pCiAgIGJlZm9yZQogICAgIGFkOWU3ZDZiMjVjODRmYzIuM2FkNGU4M2ZkNTE3M2IzOS5iM2VhZTMwY2NkNTIzYjNkLjkyMDc0OWVlMGZlMjk4YjkKICAgICBjNTU3ZDlmNTJjM2U4MWExLmNjOGViY2Q1YTY3YWFjM2EuMDQ2OTBmMzRkMzljNGVmYy5lZjM4NzQxODNjYjRmYTM3CkBAIC0xNzg2NiwxMyArMTc4NjYsMTMgQEAKICAgICA3MDQwYzhkMDU2ZDc4M2IzLjk1NmUwZTI3ZTE3NjZlMDAuMTVlYjIzMmI5MzBiMzhjYi44NTU1MzliMDAzZjgwMzM0CiAgICAgNzZkOWNjZjdkNTg0MjIwYgogICBhZnRlcgotICAgIGFkOWU3ZDZiMjVjODRmYzIuM2FkNGU4M2ZkNTE3M2IzOS5iM2VhZTMwY2NkNTIzYjNkLjkyMDc0OWVlMGZlMjk4YjkKLSAgICBhZDllN2Q2YjI1Yzg0ZmMyLjNhZDRlODNmZDUxNzNiMzkuYjNlYWUzMGNjZDUyM2IzZC5iM2VhZTMwY2NkNTIzYjNkCisgICAgYWQ5ZTdkNmIyNWM4NGZjMi4zYWQ0ZTgzZmQ1MTczYjM5LmIzZWFlMzBjY2Q1MjNiM2QuOTIwNzQ5ZWUwZmUyOThiNAorICAgIGM1NTdkOWY1MmMzZTgxYTEuY2M4ZWJjZDVhNjdhYWMzYS4wNDY5MGYzNGQzOWM0ZWZjLmVmMzg3NDE4M2NiNGZhMzcKICAgICAxMjlmNzM3Mzg4OTRmZmUzLmNiNTMxZjU0Nzc2YmE5NDMuZGJkMWZiOWE2MTgwMGZjNy5jYzhlNzAzNDU5OGMwOTI3CiAgICAgNzA0MGM4ZDA1NmQ3ODNiMy45NTZlMGUyN2UxNzY2ZTAwLjE1ZWIyMzJiOTMwYjM4Y2IuODU1NTM5YjAwM2Y4MDMzNAogICAgIDc2ZDljY2Y3ZDU4NDIyMGIKIAotVlBFUk1JTFBEXzI1Nl8weEEocmVnKQorVlBFWFRSQl9HdG9FXzEyOF8weDIocmVnKQogICBiZWZvcmUKICAgICBmYjY1MjQ3NTZjYmJhMzU4LmJjMDc1M2ZhYjExMmM5M2UuODQyZDgzYmM4MjI1MzYxYy44Zjg2MDNkMTg0NDg4NjMzCiAgICAgNmY0NzNkOTY2MzI5YzFjNi5kMGMwOTBkY2I1NTE4ZmIwLmY1ZGI3YzdlZjYwNjNmNDQuMjM2ZDE3N2E1MDQ0YjQyYwpAQCAtMTc4ODEsMTEgKzE3ODgxLDExIEBACiAgICAgMTllMDY2YjhmMjI1ZGQzMgogICBhZnRlcgogICAgIGZiNjUyNDc1NmNiYmEzNTguYmMwNzUzZmFiMTEyYzkzZS44NDJkODNiYzgyMjUzNjFjLjhmODYwM2QxODQ0ODg2MzMKLSAgICAzMGM5MTNjNjU3NWFiOTAyLjg5MzdmYjYzN2ZhMDhmMzQuNDVjM2Y0ZDlkOGE1YzIyMy5hZTZiZGMxMDE0MGE4MGUxCisgICAgNmY0NzNkOTY2MzI5YzFjNi5kMGMwOTBkY2I1NTE4ZmIwLmY1ZGI3YzdlZjYwNjNmNDQuMjM2ZDE3N2E1MDQ0YjQyYwogICAgIDMwYzkxM2M2NTc1YWI5MDIuODkzN2ZiNjM3ZmEwOGYzNC40NWMzZjRkOWQ4YTVjMjIzLmFlNmJkYzEwMTQwYTgwZTEKICAgICA5OTM4YTI3MWUzZGJjN2I3LmMzMzgxMDc5MmIwYzg2ZjcuY2UzMmU4MzljNDhjZmU2Ni4wYzRlY2Q4MWViYTZhNDdmCi0gICAgMTllMDY2YjhmMjI1ZGQzMgotVlBFUk1JTFBEXzI1Nl8weEEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDQKK1ZQRVhUUkJfR3RvRV8xMjhfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgYjJlZTIzYTE0NDkxZTYyNS4wNmUwZTcwM2E0MzcyNzkyLjVhOGY0YzBiZDRhMDMwMjUuZWQ3NDUyMGE1NzQ5MmRiOQogICAgIGIxNDQ4MTI4ZmVmOTdjODUuZDIwZGRkZTgzNWZiMTUzZS4yYTA3MmEwNjk2Njk0OGU5LmZlZDUzMGI5MmQ2ODhjYzcKQEAgLTE3ODkzLDEzICsxNzg5MywxMyBAQAogICAgIDU0ZjcwY2MwMTdlNjNmM2EuZmMyNWNjNWMzOWU4ODhiYy5lNjhlYmNlM2Q3YzdiNWU0LjY3MjMzNTVjMGZmOGNhYzcKICAgICA3NmE5NTQyYTU0ODMyMDEwCiAgIGFmdGVyCi0gICAgYjJlZTIzYTE0NDkxZTYyNS4wNmUwZTcwM2E0MzcyNzkyLjVhOGY0YzBiZDRhMDMwMjUuZWQ3NDUyMGE1NzQ5MmRiOQotICAgIGIyZWUyM2ExNDQ5MWU2MjUuMDZlMGU3MDNhNDM3Mjc5Mi41YThmNGMwYmQ0YTAzMDI1LjVhOGY0YzBiZDRhMDMwMjUKKyAgICBiMmVlMjNhMTQ0OTFlNjI1LjA2ZTBlNzAzYTQzNzI3OTIuNWE4ZjRjMGJkNGEwMzAyNS5lZDc0NTIwYTU3NDkyZDY4CisgICAgYjE0NDgxMjhmZWY5N2M4NS5kMjBkZGRlODM1ZmIxNTNlLjJhMDcyYTA2OTY2OTQ4ZTkuZmVkNTMwYjkyZDY4OGNjNwogICAgIGYzYWVmYTM5M2I2NjViN2QuNWIwYTgwOGQzM2IyY2M2OS4xMDZlMjY1NDhlNzI4YjZmLjVlYTE3ZGIwZTE3MzU3M2QKICAgICA1NGY3MGNjMDE3ZTYzZjNhLmZjMjVjYzVjMzllODg4YmMuZTY4ZWJjZTNkN2M3YjVlNC42NzIzMzU1YzBmZjhjYWM3CiAgICAgNzZhOTU0MmE1NDgzMjAxMAogCi1WUEVSTUlMUERfMjU2XzB4NShyZWcpCitWUEVYVFJCX0d0b0VfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGU3N2RkNzg1NGI5ZTk2YzQuYjBlZDMyYTliMDg0ZTNlOC4xMGE4YmRjM2U0MmE4N2U2Ljg5MzQ2OTlkOGU3NTgxNzQKICAgICAxNmVjYjlkODkxZDc2NzkwLmUzNWFlOWUwMWY0ZDA0YjIuZjVlMDUwMmRjZjAzMDM5MS5kNTJiYTg3MGNmODdhYzRiCkBAIC0xNzkwOCwxMSArMTc5MDgsMTEgQEAKICAgICA0NmY2YTliMWUwOGZiZTJkCiAgIGFmdGVyCiAgICAgZTc3ZGQ3ODU0YjllOTZjNC5iMGVkMzJhOWIwODRlM2U4LjEwYThiZGMzZTQyYTg3ZTYuODkzNDY5OWQ4ZTc1ODE3NAotICAgIGM5MGJhYjUyODI0YzVlYzUuNWY0MmY2OTFjMWJhZDEyMC5hNjQxZjU0N2I0MDlmMjkzLjA2MTk4MDA1OTZmZjM5NjkKKyAgICAxNmVjYjlkODkxZDc2NzkwLmUzNWFlOWUwMWY0ZDA0YjIuZjVlMDUwMmRjZjAzMDM5MS5kNTJiYTg3MGNmODdhYzRiCiAgICAgNWY0MmY2OTFjMWJhZDEyMC5jOTBiYWI1MjgyNGM1ZWM1LjA2MTk4MDA1OTZmZjM5NjkuYTY0MWY1NDdiNDA5ZjI5MwogICAgIDFlY2I4YTFiNzhkMjBlMjAuM2RjY2Y2ZTlmNThkYWQ0Yy45ZTlmNDliOWQ2YWE2NTFiLmQ3NDFjYzBlNWMwODBmN2IKLSAgICA0NmY2YTliMWUwOGZiZTJkCi1WUEVSTUlMUERfMjU2XzB4NShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDBjZgorVlBFWFRSQl9HdG9FXzEyOF8weDMobWVtKQogICBiZWZvcmUKICAgICBjZTJkMDkxYzVmYWFiY2Q2LmFmZDI3MWUyNTFhYjViM2IuMWQ2OTQ1OTM5MzFkYWM3NC4xYmJlYThiNDJiOTFjMjUzCiAgICAgNGJiMjY3M2NmMjY2YzVhMS42ZWE1YTg1MmU5ZDFmMzFkLjQ0YWQxNDNiNzgwNzE4NjkuZDdjMTk3NjIzMDQwOGViYwpAQCAtMTc5MjAsMTMgKzE3OTIwLDEzIEBACiAgICAgOTNkNjBkNDZjYWVlZTc1MC5lNmRhZjNkZWM0MzZmN2U5LmQ3NWUyNDM0ODkxYTI2NjcuODBhNzFhODhiYjIyNWRkMwogICAgIDI0MjFhNWQ3Nzk2ZWQ5ZDkKICAgYWZ0ZXIKLSAgICBjZTJkMDkxYzVmYWFiY2Q2LmFmZDI3MWUyNTFhYjViM2IuMWQ2OTQ1OTM5MzFkYWM3NC4xYmJlYThiNDJiOTFjMjUzCi0gICAgYWZkMjcxZTI1MWFiNWIzYi5jZTJkMDkxYzVmYWFiY2Q2LjFiYmVhOGI0MmI5MWMyNTMuMWJiZWE4YjQyYjkxYzI1MworICAgIGNlMmQwOTFjNWZhYWJjZDYuYWZkMjcxZTI1MWFiNWIzYi4xZDY5NDU5MzkzMWRhYzc0LjFiYmVhOGI0MmI5MWMyMzAKKyAgICA0YmIyNjczY2YyNjZjNWExLjZlYTVhODUyZTlkMWYzMWQuNDRhZDE0M2I3ODA3MTg2OS5kN2MxOTc2MjMwNDA4ZWJjCiAgICAgOTk1MTNmZmJiN2NlOTViYi5iNzhlMmFkN2RiZDExMzczLjhlNjZlMGNkYzE1N2FjNTYuMmZmNjE0MmY4MTQxMDIwMwogICAgIDkzZDYwZDQ2Y2FlZWU3NTAuZTZkYWYzZGVjNDM2ZjdlOS5kNzVlMjQzNDg5MWEyNjY3LjgwYTcxYTg4YmIyMjVkZDMKICAgICAyNDIxYTVkNzc5NmVkOWQ5CiAKLVZQRVJNSUxQRF8yNTZfMHg1KHJlZykKK1ZQRVhUUkJfR3RvRV8xMjhfMHgzKHJlZykKICAgYmVmb3JlCiAgICAgNzliMGIyOGE1OGIyYjNjMS4xNzBjNGUwYTQ2ZDM3ODhiLjU3ZDUwMGQxM2Y4ZGRiMmEuZmE2MjVjNWVlZDViNDBjYQogICAgIGQ5YTAzYjBiZjM3OTI3MzYuMDBjMTdkMzI0ODg4MDQ5OS42NWNiNGIxZWU4NjBmYWUzLmQ1M2UwNDM3MDgyNmI3YTkKQEAgLTE3OTM1LDExICsxNzkzNSwxMSBAQAogICAgIDQ3ZDk3NTBiYmYzZWEwZTkKICAgYWZ0ZXIKICAgICA3OWIwYjI4YTU4YjJiM2MxLjE3MGM0ZTBhNDZkMzc4OGIuNTdkNTAwZDEzZjhkZGIyYS5mYTYyNWM1ZWVkNWI0MGNhCi0gICAgMmFiZjE2YTllYjE5NDZhNS5hMTNjM2VjOGU3NGY3MWU1LjQzYmU5OGE5Zjc4ODQ2MzAuNmUwOGQyMmY1YzNlOTFjMAorICAgIGQ5YTAzYjBiZjM3OTI3MzYuMDBjMTdkMzI0ODg4MDQ5OS42NWNiNGIxZWU4NjBmYWUzLmQ1M2UwNDM3MDgyNmI3YTkKICAgICBhMTNjM2VjOGU3NGY3MWU1LjJhYmYxNmE5ZWIxOTQ2YTUuNmUwOGQyMmY1YzNlOTFjMC40M2JlOThhOWY3ODg0NjMwCiAgICAgMmRkMmI2MmJjZmMxY2M3YS43MGQzOTU1ZDRiOTNmYmRjLmNkZDc5MDcyMzdiMGRjNmMuMWZhZTk1YTFkNThjYWI4YwotICAgIDQ3ZDk3NTBiYmYzZWEwZTkKLVZQRVJNSUxQRF8yNTZfMHg1KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDA4CitWUEVYVFJCX0d0b0VfMTI4XzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIDk2MGRiNmQ0ZDBhYmUxNzIuZGFhY2EwYTI0ODVhNzVhMC5iMGM5NzYzOTg1MDFkZjY5LmRlODY4MTUyMTQ0NDE3OTQKICAgICBlNzE0ZDRlNjI1ZGUyYzU0LjAyMTdmNjk4ZWRhN2E3MDMuYzQ2ZDM2MjliNDZmYWU3OS5mYzVmYTIzYjhmODU3ZGUzCkBAIC0xNzk0NywxMyArMTc5NDcsMTMgQEAKICAgICAwM2NlOTM5YTA5YzhjYmQyLjM2ZDBkYmIxMmQ4OTlhMzMuZGNlZTQwZjU2NDdkZmJkMS5kNGMyNjBkOGQyNDBiZGE5CiAgICAgNDRlNGY2NjRkMGQxMGU3NwogICBhZnRlcgotICAgIDk2MGRiNmQ0ZDBhYmUxNzIuZGFhY2EwYTI0ODVhNzVhMC5iMGM5NzYzOTg1MDFkZjY5LmRlODY4MTUyMTQ0NDE3OTQKLSAgICBkYWFjYTBhMjQ4NWE3NWEwLjk2MGRiNmQ0ZDBhYmUxNzIuZGU4NjgxNTIxNDQ0MTc5NC5kZTg2ODE1MjE0NDQxNzk0CisgICAgOTYwZGI2ZDRkMGFiZTE3Mi5kYWFjYTBhMjQ4NWE3NWEwLmIwYzk3NjM5ODUwMWRmNjkuZGU4NjgxNTIxNDQ0MTc4ZgorICAgIGU3MTRkNGU2MjVkZTJjNTQuMDIxN2Y2OThlZGE3YTcwMy5jNDZkMzYyOWI0NmZhZTc5LmZjNWZhMjNiOGY4NTdkZTMKICAgICAxOGJiNDkyZmQ5ZTQzYmJiLjAyNWZiNjc5NWIzMmEwNTEuOGE4YjUwMTlmNWVhMjMzOC44NWFmZWQ5OTQ1MDA0YjA2CiAgICAgMDNjZTkzOWEwOWM4Y2JkMi4zNmQwZGJiMTJkODk5YTMzLmRjZWU0MGY1NjQ3ZGZiZDEuZDRjMjYwZDhkMjQwYmRhOQogICAgIDQ0ZTRmNjY0ZDBkMTBlNzcKIAotVlBFUk1JTFBEXzI1Nl8weDUocmVnKQorVlBFWFRSQl9HdG9FXzEyOF8weDMocmVnKQogICBiZWZvcmUKICAgICAzMzYwYWJhOWRlM2Y3YjFjLjg2MTkyZDEzZDA5Njk3YzYuZmFiNjYxYWRmZjM4ZDE1OC45ODYzODJhYTFiMzVmMjcxCiAgICAgZmI4NDdjMTM5NTE3NDA0Ni43YjY3OTM4NjRhNWE1ZGMyLmFhNWM0NWQ3NmVjOTgzNmEuOThiNzkyMjIzOTFjYzM0NApAQCAtMTc5NjIsMTEgKzE3OTYyLDExIEBACiAgICAgY2ZkYjcxNWMwOTZlYjBhMwogICBhZnRlcgogICAgIDMzNjBhYmE5ZGUzZjdiMWMuODYxOTJkMTNkMDk2OTdjNi5mYWI2NjFhZGZmMzhkMTU4Ljk4NjM4MmFhMWIzNWYyNzEKLSAgICBjMDg2NDFkZjk0MjFkN2YzLmZhOWE2NDBmOTRlNTk5OWYuYmFiNGVkNGJkODQwMmI3NS5hMjEwODE5YzE2Y2JlYTE1CisgICAgZmI4NDdjMTM5NTE3NDA0Ni43YjY3OTM4NjRhNWE1ZGMyLmFhNWM0NWQ3NmVjOTgzNmEuOThiNzkyMjIzOTFjYzM0NAogICAgIGZhOWE2NDBmOTRlNTk5OWYuYzA4NjQxZGY5NDIxZDdmMy5hMjEwODE5YzE2Y2JlYTE1LmJhYjRlZDRiZDg0MDJiNzUKICAgICA4YWVmNWYwNzc0MzNjMWQzLjJmNDBiNDBhY2FmNmMxODQuM2UxYzEzNjk5MmM3NDMwNy5kODI3MGUwZjE0YWRlNjMxCi0gICAgY2ZkYjcxNWMwOTZlYjBhMwotVlBFUk1JTFBEXzI1Nl8weDUobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMzkKK1ZQRVhUUkJfR3RvRV8xMjhfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgN2M5ZTkzMWRkNThmNDRmOC4wOWNmNjk2OWQ0OGZmNThmLmE1NjI2NmYzMDdlNmQ5YTIuZGFjZGY2YTg3ZTRiY2FlOQogICAgIGI5M2FlZTNlOTExYzVmNWIuZDE4NjdlYTA0ZDg0NzE3Zi5mZWI4ZDU4NjY3ZmJkOTc5LmQyNmYyNmM3NzdlMmJhNmEKQEAgLTE3OTc0LDEzICsxNzk3NCwxMyBAQAogICAgIDU2MzE0NDUwNGZhYzE5ZmUuYjBhOGJiM2MwMDZiMmZhOS5jYTJmZDg1YjAyY2E4MzAwLjQ2YjU1ZjUyZmU3YWM4ZjMKICAgICA3YWYxNWY5NWM1OTM1ZDU0CiAgIGFmdGVyCi0gICAgN2M5ZTkzMWRkNThmNDRmOC4wOWNmNjk2OWQ0OGZmNThmLmE1NjI2NmYzMDdlNmQ5YTIuZGFjZGY2YTg3ZTRiY2FlOQotICAgIDA5Y2Y2OTY5ZDQ4ZmY1OGYuN2M5ZTkzMWRkNThmNDRmOC5kYWNkZjZhODdlNGJjYWU5LmRhY2RmNmE4N2U0YmNhZTkKKyAgICA3YzllOTMxZGQ1OGY0NGY4LjA5Y2Y2OTY5ZDQ4ZmY1OGYuYTU2MjY2ZjMwN2U2ZDlhMi5kYWNkZjZhODdlNGJjYTc3CisgICAgYjkzYWVlM2U5MTFjNWY1Yi5kMTg2N2VhMDRkODQ3MTdmLmZlYjhkNTg2NjdmYmQ5NzkuZDI2ZjI2Yzc3N2UyYmE2YQogICAgIDYzN2MwMGFhNWIyMmJkZjkuNDA1ZjliMTc3ZDlmNzA0ZS4xNzBlN2RiMDA3NDQ3ZTM0LjgyNGRhMDMxMTkxODUwMzQKICAgICA1NjMxNDQ1MDRmYWMxOWZlLmIwYThiYjNjMDA2YjJmYTkuY2EyZmQ4NWIwMmNhODMwMC40NmI1NWY1MmZlN2FjOGYzCiAgICAgN2FmMTVmOTVjNTkzNWQ1NAogCi1WUEVSTUlMUERfMTI4XzB4MChyZWcpCitWUEVYVFJCX0d0b0VfMTI4XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDdhNGY5YzY5MDhmMDRkMDMuNmYyMjM2MTk4OGM3MzA5NS43ZWFiZGE3YTcxNzRlYTNiLmY0ZTk2NDc1NzU5YmE2MDgKICAgICBhMTE5MTIzNzYzMWNkMmFiLjg4MWU1M2YyMjI3ZWJlZWIuMDdiNWY0M2Q2YzQ3ZGRiMS43MTA2OWNlOTdiYzJhMTc5CkBAIC0xNzk4OSwxMSArMTc5ODksMTEgQEAKICAgICA3M2FkMjQ5ODFiYjZmZWY4CiAgIGFmdGVyCiAgICAgN2E0ZjljNjkwOGYwNGQwMy42ZjIyMzYxOTg4YzczMDk1LjdlYWJkYTdhNzE3NGVhM2IuZjRlOTY0NzU3NTliYTYwOAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZTU0ZmNhMjMxNGMzMTdmLjFlNTRmY2EyMzE0YzMxN2YKKyAgICBhMTE5MTIzNzYzMWNkMmFiLjg4MWU1M2YyMjI3ZWJlZWIuMDdiNWY0M2Q2YzQ3ZGRiMS43MTA2OWNlOTdiYzJhMTc5CiAgICAgNGQ5Y2JlNmM3M2EzMjhmOS43ZWYwMTVjNzNhZGQ3ZjJiLmE1MTIwNmYyOGU2ZjQzYjcuMWU1NGZjYTIzMTRjMzE3ZgogICAgIGQ5MjQ5Yjc0ZDMxMThkOTkuMmQ2M2ZhODVlY2YxMmU4Mi5iNTBlMGEwMzczNzg1OWY4LmQ1OWQwMDhlYjI0NDExNDUKLSAgICA3M2FkMjQ5ODFiYjZmZWY4Ci1WUEVSTUlMUERfMTI4XzB4MChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDBlOQorVlBFWFRSQl9HdG9FXzEyOF8weDQobWVtKQogICBiZWZvcmUKICAgICBkNDUyZTVhYzg3YWViNGMzLmEwZmNhNWJjMWZmMzNiMzYuNzE0NTdkMTY1M2M1ODgxYy45M2Y1ZmVkZGI2ZWY1YjIxCiAgICAgZDQ1N2JlYjYxMzM5ZWZkMy4wMDcyZDhhZWY1ZDQ2ZjdkLjI2NjAxYjY4OGI2NTQ5MjQuOWMxM2RkZWRmMzVmODRkZApAQCAtMTgwMDEsMTMgKzE4MDAxLDEzIEBACiAgICAgMjFhZmE5NWRmODM2ZTI3MS5mNzYzYWE0NGE4YzU1OGI3LjUzNzQ5NGZiZTAzYWVmMzAuOWEyMjRkNWJjZDViM2VjMQogICAgIDQ4YWNkNjkyYTJmZjQ3NDAKICAgYWZ0ZXIKLSAgICBkNDUyZTVhYzg3YWViNGMzLmEwZmNhNWJjMWZmMzNiMzYuNzE0NTdkMTY1M2M1ODgxYy45M2Y1ZmVkZGI2ZWY1YjIxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkzZjVmZWRkYjZlZjViMjEuNzE0NTdkMTY1M2M1ODgxYworICAgIGQ0NTJlNWFjODdhZWI0YzMuYTBmY2E1YmMxZmYzM2IzNi43MTQ1N2QxNjUzYzU4ODFjLjkzZjVmZWRkYjZlZjViZWQKKyAgICBkNDU3YmViNjEzMzllZmQzLjAwNzJkOGFlZjVkNDZmN2QuMjY2MDFiNjg4YjY1NDkyNC45YzEzZGRlZGYzNWY4NGRkCiAgICAgNGY4NzJiYTNkYTYzNmE1NC41NGQwMzFiOGVlNDE2NDE5LjI4ODE0ZTY2YjFkZDJkYzcuMmFiM2E0OWRjNzU1MTJkOQogICAgIDIxYWZhOTVkZjgzNmUyNzEuZjc2M2FhNDRhOGM1NThiNy41Mzc0OTRmYmUwM2FlZjMwLjlhMjI0ZDViY2Q1YjNlYzEKICAgICA0OGFjZDY5MmEyZmY0NzQwCiAKLVZQRVJNSUxQRF8xMjhfMHgwKHJlZykKK1ZQRVhUUkJfR3RvRV8xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgOTA5ZDNhYWVlMWNkNjcwMy4yNjliYjJkMThhYzAxMzU3LjQ3Nzc0MWMwYmZlYzg1MDIuODMwNDY4MTUzNTg4NGM4YwogICAgIGNlNDE3NjFhMjc1MGRiYjUuM2ExN2M0ZWNhYzBjYjkzMS45ZTU4ZjE5N2NlNDMyN2E4Ljk0ZmY0NjlmY2JkMWZmMDcKQEAgLTE4MDE2LDExICsxODAxNiwxMSBAQAogICAgIGE0NjFmNjE2MmYxMDdiZTYKICAgYWZ0ZXIKICAgICA5MDlkM2FhZWUxY2Q2NzAzLjI2OWJiMmQxOGFjMDEzNTcuNDc3NzQxYzBiZmVjODUwMi44MzA0NjgxNTM1ODg0YzhjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYyMmZhYjg1YmYyM2M2Y2MuNjIyZmFiODViZjIzYzZjYworICAgIGNlNDE3NjFhMjc1MGRiYjUuM2ExN2M0ZWNhYzBjYjkzMS45ZTU4ZjE5N2NlNDMyN2E4Ljk0ZmY0NjlmY2JkMWZmMDcKICAgICA1ZWU0ODQ0NDBmMTRkZjAzLjM4ZWY1YTk5NzkyNzhmMmMuNWE1MmI3MzU3MTU1N2M1Mi42MjJmYWI4NWJmMjNjNmNjCiAgICAgOWNkMTYyOTgzNmE1YWY5OS5mZWVmZjBjMzBkMWM1Mjc0LmQ1YjA4ZDA2NDVhZWJlYWYuYzk2MTExYjMyYzhhNWIwOAotICAgIGE0NjFmNjE2MmYxMDdiZTYKLVZQRVJNSUxQRF8xMjhfMHgwKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDlmCitWUEVYVFJCX0d0b0VfMTI4XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIGQxZmJkNTk4ZTNjM2UxOTMuZTQ1NTBiODAzNzkwODYyMi42N2UyMDM1ODg1ZjdiZDM0LjZkYzA3MTc2ZTVkYjJhNjgKICAgICAyYmZiMmIyNzY1YWY0YjNiLjkyYmQ3YjY5YWY2MGExNGIuNGY5NjBlNDNmY2M1OGU5OS43Y2NjNWVmMmVlNjdmYjJjCkBAIC0xODAyOCwxMyArMTgwMjgsMTMgQEAKICAgICBkNTVjMjgxODQwNWUxNTI5LjhmNjNhMWVmNzFlMDkyMmIuMGI2Y2ZjY2I1YTY3NGQwMC43MzBiNDRiOWFhY2RjMDgwCiAgICAgMTJkNjM0ZGU5NGJmMmE2OAogICBhZnRlcgotICAgIGQxZmJkNTk4ZTNjM2UxOTMuZTQ1NTBiODAzNzkwODYyMi42N2UyMDM1ODg1ZjdiZDM0LjZkYzA3MTc2ZTVkYjJhNjgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmRjMDcxNzZlNWRiMmE2OC42N2UyMDM1ODg1ZjdiZDM0CisgICAgZDFmYmQ1OThlM2MzZTE5My5lNDU1MGI4MDM3OTA4NjIyLjY3ZTIwMzU4ODVmN2JkMzQuNmRjMDcxNzZlNWRiMmFmMgorICAgIDJiZmIyYjI3NjVhZjRiM2IuOTJiZDdiNjlhZjYwYTE0Yi40Zjk2MGU0M2ZjYzU4ZTk5LjdjY2M1ZWYyZWU2N2ZiMmMKICAgICA4ZTJkNzJhZGQwZGU3MzA5LjAxNTNhZWMwMzlhMjNjYmYuOTJkNThjNzA4ZjkxN2ZjZS42MDIxNTBlNGZjZGU2ZmE1CiAgICAgZDU1YzI4MTg0MDVlMTUyOS44ZjYzYTFlZjcxZTA5MjJiLjBiNmNmY2NiNWE2NzRkMDAuNzMwYjQ0YjlhYWNkYzA4MAogICAgIDEyZDYzNGRlOTRiZjJhNjgKIAotVlBFUk1JTFBEXzEyOF8weDAocmVnKQorVlBFWFRSQl9HdG9FXzEyOF8weDQocmVnKQogICBiZWZvcmUKICAgICA5OWNkMWViZTU3NDBlYjBhLmRlNTVjODUyZDIzYmVmYzkuOTczYjRlNjRmNGE5ZTAzYi45ODI3ZDc0MDc3NTRiMzVhCiAgICAgNjUzZWZkYzQ4ZWRkM2QxMS44NGU0Y2U0OWEyN2ZiYjEzLjc1MjZiMzg5NWU4NjYyOWEuMTRkMTliYmMwNTYzNmYwYQpAQCAtMTgwNDMsMTEgKzE4MDQzLDExIEBACiAgICAgYjg2ODJmOGE2MWQ2ZjVjYQogICBhZnRlcgogICAgIDk5Y2QxZWJlNTc0MGViMGEuZGU1NWM4NTJkMjNiZWZjOS45NzNiNGU2NGY0YTllMDNiLjk4MjdkNzQwNzc1NGIzNWEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWEzOGMyMjkxZGExM2IzOS41YTM4YzIyOTFkYTEzYjM5CisgICAgNjUzZWZkYzQ4ZWRkM2QxMS44NGU0Y2U0OWEyN2ZiYjEzLjc1MjZiMzg5NWU4NjYyOWEuMTRkMTliYmMwNTYzNmYwYQogICAgIGQwNzNjZTVlZDUyMTVkMmEuYTJkNWI3ZThjYjM4MzYzMy44NTZmY2NjYzRhMDU1M2Y1LjVhMzhjMjI5MWRhMTNiMzkKICAgICAzN2I5OGJmN2NhOTg4NjAxLjE2ZjRmZDFiNjk3MjFiNTYuMjI2MzkzOTg1NGIxZjFmNy40ODI2Y2E3NGRkMThkMzE2Ci0gICAgYjg2ODJmOGE2MWQ2ZjVjYQotVlBFUk1JTFBEXzEyOF8weDAobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwYmMKK1ZQRVhUUkJfR3RvRV8xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgODhjYTZiNTZjNGU3NWI4NC5mNjVjMzJmYjA2Y2ZmNjQxLmJhMGQxZWNlOTkzODI3YTguYWE0ZTA2NTkxOTE3NzY0ZAogICAgIDkyMThmY2MzMjM1NmMyNmUuNjlhOGJlZDYyNzUxZTc5Ny42Y2ViOTVlZTc2OTYxNjU0Ljc4N2MyMDdiMzRjMjFlYTIKQEAgLTE4MDU1LDEzICsxODA1NSwxMyBAQAogICAgIGM4YTgwYTM1NDI3ZTgyODQuZGI2YTc2YzI4NzY3M2UzMy42NjJhNzYyMGE5NGI4ZDZkLjU1ZDAzOTkyZGYxN2NiZmMKICAgICAxYzhmMzE2MGE1ZGE0NzU5CiAgIGFmdGVyCi0gICAgODhjYTZiNTZjNGU3NWI4NC5mNjVjMzJmYjA2Y2ZmNjQxLmJhMGQxZWNlOTkzODI3YTguYWE0ZTA2NTkxOTE3NzY0ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYTRlMDY1OTE5MTc3NjRkLmJhMGQxZWNlOTkzODI3YTgKKyAgICA4OGNhNmI1NmM0ZTc1Yjg0LmY2NWMzMmZiMDZjZmY2NDEuYmEwZDFlY2U5OTM4MjdhOC5hYTRlMDY1OTE5MTc3NjdiCisgICAgOTIxOGZjYzMyMzU2YzI2ZS42OWE4YmVkNjI3NTFlNzk3LjZjZWI5NWVlNzY5NjE2NTQuNzg3YzIwN2IzNGMyMWVhMgogICAgIGI0MWU1ZGJmOTkyZmU1YjUuZWNlOTJiZjRjOWFhOTZhZS4wNjVjZGU2NTFkOThhNDg3LmU3MzlkZDZhNDIzZTI3YTQKICAgICBjOGE4MGEzNTQyN2U4Mjg0LmRiNmE3NmMyODc2NzNlMzMuNjYyYTc2MjBhOTRiOGQ2ZC41NWQwMzk5MmRmMTdjYmZjCiAgICAgMWM4ZjMxNjBhNWRhNDc1OQogCi1WUEVSTUlMUERfMTI4XzB4MyhyZWcpCitWUEVYVFJCX0d0b0VfMTI4XzB4OShyZWcpCiAgIGJlZm9yZQogICAgIDlhYzBiZjNlMzMxM2Q2NjQuYWM4MTdmMTEzYjUwNTMwOC45Mzc4OTlhYWZkMTMxY2QyLjY2MjJkODBjMzdiYThjMzEKICAgICAyOWIwZTE5YTIyNGNiNmNjLjNhNzYzOTNmYTBiMDE0NmMuNmU2MDkyMWFjODNhNmMzNi5lNDEwN2YxM2UyZjI1ZWZmCkBAIC0xODA3MCwxMSArMTgwNzAsMTEgQEAKICAgICBlMjk0ZjUwYmFkYzIxYzYzCiAgIGFmdGVyCiAgICAgOWFjMGJmM2UzMzEzZDY2NC5hYzgxN2YxMTNiNTA1MzA4LjkzNzg5OWFhZmQxMzFjZDIuNjYyMmQ4MGMzN2JhOGMzMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jODZjNWM3Yzg0Njk2YTBjLmM4NmM1YzdjODQ2OTZhMGMKKyAgICAyOWIwZTE5YTIyNGNiNmNjLjNhNzYzOTNmYTBiMDE0NmMuNmU2MDkyMWFjODNhNmMzNi5lNDEwN2YxM2UyZjI1ZWZmCiAgICAgMjdhYjkzZGUxMDEzMjEzYi40ZjU0YjJhYzhjYWI4M2RkLmM4NmM1YzdjODQ2OTZhMGMuYmFiZmVhMjNjN2ZkYmUwNQogICAgIGVlZmRjZjc4OTlmMzUzNWUuYzhlNTY4NDIxYjRiNWE4Ny5mZmU5ZjQzZWNjMmI1MWZmLmM1ZmQ5MjI3MDFlYTZhNmMKLSAgICBlMjk0ZjUwYmFkYzIxYzYzCi1WUEVSTUlMUERfMTI4XzB4MyhtZW0pCisgICAgMDAwMDAwMDAwMDAwMDA2YworVlBFWFRSQl9HdG9FXzEyOF8weDkobWVtKQogICBiZWZvcmUKICAgICBlYjUxOGRiYmU2OTM5MDE0LmRjZjI5M2QzNTg3OThhZTAuN2ZmNWQ2ZWU2YTlmNTY5NS42ZTIyNTRjYjNjMGQ1ZWJjCiAgICAgYmQwMWQ4MjNjOTY4ODRhYi40YmQ1ZDk1YmVhMzAwMDZlLjUxNTI3OTlkOTRiMDMyMzQuNzE2NTdhOGU3MTlhY2RlZgpAQCAtMTgwODIsMTMgKzE4MDgyLDEzIEBACiAgICAgMmM2NDc1Y2JmYTRmZDczZi4xZjk5ZTFhMmY0NjI5YjVjLmI2MWY0YWIwZWIzZTdlZDQuYTMzNDA1NmI5OGU1YzA2NQogICAgIDhhNWE2MjVjYzJiY2JjMDAKICAgYWZ0ZXIKLSAgICBlYjUxOGRiYmU2OTM5MDE0LmRjZjI5M2QzNTg3OThhZTAuN2ZmNWQ2ZWU2YTlmNTY5NS42ZTIyNTRjYjNjMGQ1ZWJjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmZjVkNmVlNmE5ZjU2OTUuNmUyMjU0Y2IzYzBkNWViYworICAgIGViNTE4ZGJiZTY5MzkwMTQuZGNmMjkzZDM1ODc5OGFlMC43ZmY1ZDZlZTZhOWY1Njk1LjZlMjI1NGNiM2MwZDVlMzIKKyAgICBiZDAxZDgyM2M5Njg4NGFiLjRiZDVkOTViZWEzMDAwNmUuNTE1Mjc5OWQ5NGIwMzIzNC43MTY1N2E4ZTcxOWFjZGVmCiAgICAgMzQ2ZDUyMmY3MTRlYjI1Ni45OGY0YTA3Y2VhYTRmMmIzLjFhYzdjYzM5YjY4Y2FjOTAuNjRmYzYxZjUwNjVlZGE0MwogICAgIDJjNjQ3NWNiZmE0ZmQ3M2YuMWY5OWUxYTJmNDYyOWI1Yy5iNjFmNGFiMGViM2U3ZWQ0LmEzMzQwNTZiOThlNWMwNjUKICAgICA4YTVhNjI1Y2MyYmNiYzAwCiAKLVZQRVJNSUxQRF8xMjhfMHgzKHJlZykKK1ZQRVhUUkJfR3RvRV8xMjhfMHg5KHJlZykKICAgYmVmb3JlCiAgICAgNzRiODc1MzUyMTZlMGFjMS44MmIxYmZlMzgxN2FhZTkyLjNkMTE5OTM5YTVmNTM5MTUuMDIyNzcxZWQ1MGQzNjUyYwogICAgIGJmOWEzOTYwNTA4OGU1NTMuMTAxZmFiNjQyMmQ4ZjU3Yy40Y2E4YzVhZDk5ZTkwNjg5LmQ4YWJiZGRjMDA1NjFjYzUKQEAgLTE4MDk3LDExICsxODA5NywxMSBAQAogICAgIDM0MTY1MDBkZWVlYzdmY2QKICAgYWZ0ZXIKICAgICA3NGI4NzUzNTIxNmUwYWMxLjgyYjFiZmUzODE3YWFlOTIuM2QxMTk5MzlhNWY1MzkxNS4wMjI3NzFlZDUwZDM2NTJjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE5YTk2MDZiNmJjYjNmNjUuYTlhOTYwNmI2YmNiM2Y2NQorICAgIGJmOWEzOTYwNTA4OGU1NTMuMTAxZmFiNjQyMmQ4ZjU3Yy40Y2E4YzVhZDk5ZTkwNjg5LmQ4YWJiZGRjMDA1NjFjYzUKICAgICBjNjRlYWE0YWVjOTU4YTY0LmIzN2NiNTM4Zjc3NzY2MjkuYTlhOTYwNmI2YmNiM2Y2NS4xNTc3YTg2OTE4ZDM2MGNiCiAgICAgZTQxZWM0NjA5MDIxMzU5ZC40NzkyNTk0ZDFmNjJiZWM0LmIwNjI2NmRkYjcyNjFmNTQuOTU1N2IwODBiMzU3ZWQ2YQotICAgIDM0MTY1MDBkZWVlYzdmY2QKLVZQRVJNSUxQRF8xMjhfMHgzKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDA2CitWUEVYVFJCX0d0b0VfMTI4XzB4OShtZW0pCiAgIGJlZm9yZQogICAgIGNlODIwNGZjZTRhMWQxMjAuNzc1ODg0MGRkOWI4MjJhZC5hODJlMTQ4ZWI0YTZiODdhLmJkMWRkMzcxMWE4NmUzMDMKICAgICAzZjY1NDgzYWIxN2ZhMDkwLmRhNDZlNGJjNjJlNzhjM2QuYjIxYzYxZTZkMjRlMTE3Ni4yZDI3YTQ5MTJmNzhjNzFlCkBAIC0xODEwOSwxMyArMTgxMDksMTMgQEAKICAgICAxNmMzNzI0ZjQzZWNhNTc2LjdmNzE3OWQ1YTUzYmM5OTQuMzExZGExOTAxYmZiZDBmMi5hMTU5NWYyYWUxNDBkZTQ2CiAgICAgNWUxNzQxN2FiNjJkODlhYgogICBhZnRlcgotICAgIGNlODIwNGZjZTRhMWQxMjAuNzc1ODg0MGRkOWI4MjJhZC5hODJlMTQ4ZWI0YTZiODdhLmJkMWRkMzcxMWE4NmUzMDMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTgyZTE0OGViNGE2Yjg3YS5iZDFkZDM3MTFhODZlMzAzCisgICAgY2U4MjA0ZmNlNGExZDEyMC43NzU4ODQwZGQ5YjgyMmFkLmE4MmUxNDhlYjRhNmI4N2EuYmQxZGQzNzExYTg2ZTMxMQorICAgIDNmNjU0ODNhYjE3ZmEwOTAuZGE0NmU0YmM2MmU3OGMzZC5iMjFjNjFlNmQyNGUxMTc2LjJkMjdhNDkxMmY3OGM3MWUKICAgICA2MzhjOTliMTcyOTRhODQ5LjY4MzVlMmRiYzczYWIwZmMuNDEyN2JjNDM5NjY2ODVlNS41YWNkZDRhYjkzODcwNzUwCiAgICAgMTZjMzcyNGY0M2VjYTU3Ni43ZjcxNzlkNWE1M2JjOTk0LjMxMWRhMTkwMWJmYmQwZjIuYTE1OTVmMmFlMTQwZGU0NgogICAgIDVlMTc0MTdhYjYyZDg5YWIKIAotVlBFUk1JTFBEXzEyOF8weDMocmVnKQorVlBFWFRSQl9HdG9FXzEyOF8weDkocmVnKQogICBiZWZvcmUKICAgICBlZDU1NzcwN2FkZGQ0NDJjLjMzZDY0ZmZlM2Y5MTUyNDQuNzk0NWE2MTY5ODc4MTViMi41ZGM4OGNiOTdlMThhZGNiCiAgICAgYWE1ZGZiM2Q2M2Q5NGI3NS45ODkwYWNhYzgyOTE2Y2RmLmI0ZmY2MzBhM2I3Y2NlMDEuYTNmNWZhYWJkYWM5ZDk5OQpAQCAtMTgxMjQsMTEgKzE4MTI0LDExIEBACiAgICAgYTM4MDI4NjdkZmNmOGU4NQogICBhZnRlcgogICAgIGVkNTU3NzA3YWRkZDQ0MmMuMzNkNjRmZmUzZjkxNTI0NC43OTQ1YTYxNjk4NzgxNWIyLjVkYzg4Y2I5N2UxOGFkY2IKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGFlOWFlMWQyYWQ0MzEyZS44YWU5YWUxZDJhZDQzMTJlCisgICAgYWE1ZGZiM2Q2M2Q5NGI3NS45ODkwYWNhYzgyOTE2Y2RmLmI0ZmY2MzBhM2I3Y2NlMDEuYTNmNWZhYWJkYWM5ZDk5OQogICAgIGYxN2RjYjg4NzNhZmQ5MzEuMjBiZjA2NDQyOWY4YWU3Mi44YWU5YWUxZDJhZDQzMTJlLmRlNzA2NjUwNGMxYjEwOGIKICAgICAxZGZmZTI1NDdhZWEyYjBkLmE3MmRkN2IyNTBkMGQ2MmEuNTg1MTgyYmIwMjBiN2FlNC5lYTA1NGM5NWVmMTkwZWNiCi0gICAgYTM4MDI4NjdkZmNmOGU4NQotVlBFUk1JTFBEXzEyOF8weDMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwY2UKK1ZQRVhUUkJfR3RvRV8xMjhfMHg5KG1lbSkKICAgYmVmb3JlCiAgICAgZTRhZDc3YjAzOTRhNGRlNi44YzMwM2QwZTEzMTY3Y2I0LjA5YTc5ZGUyMTEyNzllMzIuN2I4MWRiNTE1ZWFkZTRkMAogICAgIDhiNTdiMzVlMTk5NTA3MWEuOTk1Y2Q2MjBkYWMwMGFkMy4yMWY5ZDNjMDhiMDljM2I3LjRkYzZiNjQ5ZGI0N2FjOWUKQEAgLTE4MTM2LDEzICsxODEzNiwxMyBAQAogICAgIDc3NTVlODk1ZDhjYzVhYTkuZmRkNGI3MDE2NWJjYzgyOC5lODU1ODAzNjE0OWExM2U3LjcyYmVkZTEzYTY5MDQ1OGUKICAgICA3YzA5MjViZDJjNTg4ZTA5CiAgIGFmdGVyCi0gICAgZTRhZDc3YjAzOTRhNGRlNi44YzMwM2QwZTEzMTY3Y2I0LjA5YTc5ZGUyMTEyNzllMzIuN2I4MWRiNTE1ZWFkZTRkMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wOWE3OWRlMjExMjc5ZTMyLjdiODFkYjUxNWVhZGU0ZDAKKyAgICBlNGFkNzdiMDM5NGE0ZGU2LjhjMzAzZDBlMTMxNjdjYjQuMDlhNzlkZTIxMTI3OWUzMi43YjgxZGI1MTVlYWRlNGMzCisgICAgOGI1N2IzNWUxOTk1MDcxYS45OTVjZDYyMGRhYzAwYWQzLjIxZjlkM2MwOGIwOWMzYjcuNGRjNmI2NDlkYjQ3YWM5ZQogICAgIDczNGI1YTVjOWFiYzc3NGMuYTBjZWFiZjg2YzczMGYxNi5jZGVmZjYzOGQ4ODAwMGU1LjJiNmIwZTExMTQ2NDBlZjkKICAgICA3NzU1ZTg5NWQ4Y2M1YWE5LmZkZDRiNzAxNjViY2M4MjguZTg1NTgwMzYxNDlhMTNlNy43MmJlZGUxM2E2OTA0NThlCiAgICAgN2MwOTI1YmQyYzU4OGUwOQogCi1WVU5QQ0tMUERfMjU2KHJlZykKK1ZQRVhUUkJfR3RvRV8xMjhfMHhFKHJlZykKICAgYmVmb3JlCiAgICAgYTY5YWRjN2E0MzQ3MjUxNS43NTQxZDdmN2YwZDA2YzVkLjBiYjhmNmE2NjAyNjcwYjYuNGRmNmVmYTc1YjYzYjZlOQogICAgIDRjYmIwMGI2ODZlOTQ2NWUuNDdkYmE1NmRmZWQ1Njk5My4yOGM3NjU1NWY5M2Q0NDZiLmRhYTBiZTc1Y2JlNmE1MTkKQEAgLTE4MTUwLDEyICsxODE1MCwxMiBAQAogICAgIDdkZTA4MTViMDI3ODE0NWEuZGI0OGNhNDY2OTBlMTIzNy5mYjk2YmY3ZTc3YTM2MGZjLmQ4M2E2ZGRjOGY0YTViYWQKICAgICAwMWMzNDU0ZDFkNDQ5OTZhCiAgIGFmdGVyCi0gICAgY2JlZmNjZTMxZGU1MGM3OC40N2RiYTU2ZGZlZDU2OTkzLjY5MWQ2OThlN2QyZjllYTEuZGFhMGJlNzVjYmU2YTUxOQorICAgIGE2OWFkYzdhNDM0NzI1MTUuNzU0MWQ3ZjdmMGQwNmM1ZC4wYmI4ZjZhNjYwMjY3MGI2LjRkZjZlZmE3NWI2M2I2ZTkKICAgICA0Y2JiMDBiNjg2ZTk0NjVlLjQ3ZGJhNTZkZmVkNTY5OTMuMjhjNzY1NTVmOTNkNDQ2Yi5kYWEwYmU3NWNiZTZhNTE5CiAgICAgY2JiOThlZGQ5MmNiMmM5MS5jYmVmY2NlMzFkZTUwYzc4LmFmNGRmZTc5Y2Q4ZTgwZjQuNjkxZDY5OGU3ZDJmOWVhMQogICAgIDdkZTA4MTViMDI3ODE0NWEuZGI0OGNhNDY2OTBlMTIzNy5mYjk2YmY3ZTc3YTM2MGZjLmQ4M2E2ZGRjOGY0YTViYWQKLSAgICAwMWMzNDU0ZDFkNDQ5OTZhCi1WVU5QQ0tMUERfMjU2KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMGM3CitWUEVYVFJCX0d0b0VfMTI4XzB4RShtZW0pCiAgIGJlZm9yZQogICAgIGMyODQ2Y2NjNDIyODEzMDQuYmY3YmQ1OWM3MjdkM2E2NS41NWI0MWI4MGZmNWMzN2ZkLjZhZWVhM2QwOTQwYjIwMzEKICAgICBmNTQ4NjE0NTFiMDI4N2E2LmVkZDg4NzBjN2Y2NGQ5NWQuMTNmZDM5N2VmYWRhMzZmNS41N2ExYTdkY2MwNGZmYjNjCkBAIC0xODE2MywxMyArMTgxNjMsMTMgQEAKICAgICAyNTBkOWRkNTU2Y2E0N2I1LjdkMDNmMTJhZGYwZTc2YzUuY2Y1OWQxNzc5MTk2YjUyZS4xYTQ2ZmJjZGIxYTBmNDhhCiAgICAgYThkMjQ0OGNiMGM1OGEyNQogICBhZnRlcgotICAgIGMyODQ2Y2NjNDIyODEzMDQuYmY3YmQ1OWM3MjdkM2E2NS41NWI0MWI4MGZmNWMzN2ZkLjZhZWVhM2QwOTQwYjIwMzEKKyAgICBjMjg0NmNjYzQyMjgxMzA0LmJmN2JkNTljNzI3ZDNhNjUuNTViNDFiODBmZjVjMzdmZC42YWVlYTNkMDk0MGIyMGZkCiAgICAgZjU0ODYxNDUxYjAyODdhNi5lZGQ4ODcwYzdmNjRkOTVkLjEzZmQzOTdlZmFkYTM2ZjUuNTdhMWE3ZGNjMDRmZmIzYwotICAgIGJmN2JkNTljNzI3ZDNhNjUuZWRkODg3MGM3ZjY0ZDk1ZC42YWVlYTNkMDk0MGIyMDMxLjU3YTFhN2RjYzA0ZmZiM2MKKyAgICA3OGRkOWRhNGMzZGZhZjdkLjYzNDE5MTE4YzViYjJmZWUuZjNmMGEyMmQ3Nzk0Y2M0Yy4xZGZhYzUwYzk1ZmQyZWNjCiAgICAgMjUwZDlkZDU1NmNhNDdiNS43ZDAzZjEyYWRmMGU3NmM1LmNmNTlkMTc3OTE5NmI1MmUuMWE0NmZiY2RiMWEwZjQ4YQogICAgIGE4ZDI0NDhjYjBjNThhMjUKIAotVlVOUENLTFBEXzI1NihyZWcpCitWUEVYVFJCX0d0b0VfMTI4XzB4RShyZWcpCiAgIGJlZm9yZQogICAgIDI1ZTg5Y2I0MmRmNzJjNDcuZDlhNWRlYzRmMWQwMGQ3OS45NzZhYTJiMDY5ZThlYThlLjg1MDM0MjRhNjVlZGFkYzYKICAgICBlYmQ0MDBiMGM1YzIxNjlkLjcxNzFkYjVlYWZmY2JiZjUuMGRjMmExMTUwMGQ1YzlmNS5lZmJjNzE5MTBlYTQ2ZjQxCkBAIC0xODE3NywxMiArMTgxNzcsMTIgQEAKICAgICBjNjYyZDhkOWI0NTViMTkzLmI4ZDVmYTNlMDdmNmMxYzguN2M3NTc1MmJjMzE5YjI0YS41Mjg2ZmIyYjUxNjQ0NDhmCiAgICAgMDQzMTRkNTYyMjg0Y2ViOQogICBhZnRlcgotICAgIGM3M2QxMDhkYWQ1YTBlNTYuNzE3MWRiNWVhZmZjYmJmNS5lYTRlZGIzOGE5YzhiOGNiLmVmYmM3MTkxMGVhNDZmNDEKKyAgICAyNWU4OWNiNDJkZjcyYzQ3LmQ5YTVkZWM0ZjFkMDBkNzkuOTc2YWEyYjA2OWU4ZWE4ZS44NTAzNDI0YTY1ZWRhZGM2CiAgICAgZWJkNDAwYjBjNWMyMTY5ZC43MTcxZGI1ZWFmZmNiYmY1LjBkYzJhMTE1MDBkNWM5ZjUuZWZiYzcxOTEwZWE0NmY0MQogICAgIDU3ZTQ2YWVlMTNiMzg0ZDIuYzczZDEwOGRhZDVhMGU1Ni4zYjU3ZThjNDQwNjE0ZGE1LmVhNGVkYjM4YTljOGI4Y2IKICAgICBjNjYyZDhkOWI0NTViMTkzLmI4ZDVmYTNlMDdmNmMxYzguN2M3NTc1MmJjMzE5YjI0YS41Mjg2ZmIyYjUxNjQ0NDhmCi0gICAgMDQzMTRkNTYyMjg0Y2ViOQotVlVOUENLTFBEXzI1NihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDBjMgorVlBFWFRSQl9HdG9FXzEyOF8weEUobWVtKQogICBiZWZvcmUKICAgICBkYTE4NGRhNTM5MzQxMzc2LjkyOWM0NWRkNDMzNGRhOGIuMjAwNDEzNWVkN2RkOTI3Ny4yZTY3NDNiNTI4ODgzNjkxCiAgICAgYjEwYTc4MDRiMjgxY2ZmMi4xOGRjYWQ2NjVjZGQzYTY3LmRiOTdkOWQ4M2MxYTNiOGUuYWM3YTRlY2UwODNiMTMyNgpAQCAtMTgxOTAsMTMgKzE4MTkwLDEzIEBACiAgICAgZDIzYjNiYTMzNzIwOWJkNi5jM2ExNjBiODlmYmE5MzdhLmJiMWE1YTg5MmZjODA3YTYuN2MzMzBjNWVhZjlhY2JlOAogICAgIDg1NzFiN2FjYWU1ZTFkNmUKICAgYWZ0ZXIKLSAgICBkYTE4NGRhNTM5MzQxMzc2LjkyOWM0NWRkNDMzNGRhOGIuMjAwNDEzNWVkN2RkOTI3Ny4yZTY3NDNiNTI4ODgzNjkxCisgICAgZGExODRkYTUzOTM0MTM3Ni45MjljNDVkZDQzMzRkYThiLjIwMDQxMzVlZDdkZDkyNzcuMmU2NzQzYjUyODg4MzY5NwogICAgIGIxMGE3ODA0YjI4MWNmZjIuMThkY2FkNjY1Y2RkM2E2Ny5kYjk3ZDlkODNjMWEzYjhlLmFjN2E0ZWNlMDgzYjEzMjYKLSAgICA5MjljNDVkZDQzMzRkYThiLjE4ZGNhZDY2NWNkZDNhNjcuMmU2NzQzYjUyODg4MzY5MS5hYzdhNGVjZTA4M2IxMzI2CisgICAgNjVkMjQ4NWZhODc2YmU1OS5iNTZmMGRlMDljZGIwZmQzLmM2NWJjNzk3NGZiYTc5MzkuNTJmYTkzZTIwMmJjODZiNAogICAgIGQyM2IzYmEzMzcyMDliZDYuYzNhMTYwYjg5ZmJhOTM3YS5iYjFhNWE4OTJmYzgwN2E2LjdjMzMwYzVlYWY5YWNiZTgKICAgICA4NTcxYjdhY2FlNWUxZDZlCiAKLVZVTlBDS0xQRF8yNTYocmVnKQorVlBFWFRSQl9HdG9FXzEyOF8weEUocmVnKQogICBiZWZvcmUKICAgICBjYjAwOGYzOTk4OTZiOWYxLmQ0MTNjY2JhN2M4YTIzOTUuOWZiZWEyNTgwMDA3MDIwOS45N2EwMGM5OWY1NTBhMmZlCiAgICAgYTkyYjkwNzIwYmNkZGIxZS40NzI0Nzg5MjkzYzAxMmMzLmE1MTFjZjJkNWI0ZDlhMmIuMzZiYjViYjNiZjVmMDY3MApAQCAtMTgyMDQsMTIgKzE4MjA0LDEyIEBACiAgICAgOWM4OWZlOTRmYjZhYTAyNC5mMDI0MGQzMWE0YzIxNDFjLjlmOGRkYjI4NzFmNTMwZGIuMmRkY2JkYjZjZTNmMTg0YwogICAgIDNkN2FjODc2NGIyODNlMTAKICAgYWZ0ZXIKLSAgICAwNzNiYjkxNjk2Y2YyNDhjLjQ3MjQ3ODkyOTNjMDEyYzMuNzQzNmMyYzRhOTAwZWYyNi4zNmJiNWJiM2JmNWYwNjcwCisgICAgY2IwMDhmMzk5ODk2YjlmMS5kNDEzY2NiYTdjOGEyMzk1LjlmYmVhMjU4MDAwNzAyMDkuOTdhMDBjOTlmNTUwYTJmZQogICAgIGE5MmI5MDcyMGJjZGRiMWUuNDcyNDc4OTI5M2MwMTJjMy5hNTExY2YyZDViNGQ5YTJiLjM2YmI1YmIzYmY1ZjA2NzAKICAgICA3YTQwYjdjMWEzOTBiZmEwLjA3M2JiOTE2OTZjZjI0OGMuMzFlOGUzYTQ0ZDE4OTU4ZC43NDM2YzJjNGE5MDBlZjI2CiAgICAgOWM4OWZlOTRmYjZhYTAyNC5mMDI0MGQzMWE0YzIxNDFjLjlmOGRkYjI4NzFmNTMwZGIuMmRkY2JkYjZjZTNmMTg0YwotICAgIDNkN2FjODc2NGIyODNlMTAKLVZVTlBDS0xQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMTEKK1ZQRVhUUkJfR3RvRV8xMjhfMHhFKG1lbSkKICAgYmVmb3JlCiAgICAgODBkZDYwZjEzYmM4MWQ5Yi42OTUzNjM1NmIwZTdiYjU1LmRlYWFlZmQxZDZhNTlmOWUuNGI0ZGIyMjQ2NDZmYTdjMAogICAgIGQyY2UwMDExYmEyYjcxMWMuM2ZlYWUyNzM1ZDk0NGNlMS5hZDliZGJlMTRiODU4MDNlLjkxNzQ2NDA2YzExMzM1ZTkKQEAgLTE4MjE3LDEzICsxODIxNywxMyBAQAogICAgIDEyOTI0OGY0ZDg2NjY2YWEuNzJhZTE5NmUxMGFiYmViMy41ZWU5YzIwMjY4NjkzODhiLjViMjY0OTI5MmIwNTg5YjUKICAgICA5NzRhNzU0MjcwNmRjNmIxCiAgIGFmdGVyCi0gICAgODBkZDYwZjEzYmM4MWQ5Yi42OTUzNjM1NmIwZTdiYjU1LmRlYWFlZmQxZDZhNTlmOWUuNGI0ZGIyMjQ2NDZmYTdjMAorICAgIDgwZGQ2MGYxM2JjODFkOWIuNjk1MzYzNTZiMGU3YmI1NS5kZWFhZWZkMWQ2YTU5ZjllLjRiNGRiMjI0NjQ2ZmE3OWIKICAgICBkMmNlMDAxMWJhMmI3MTFjLjNmZWFlMjczNWQ5NDRjZTEuYWQ5YmRiZTE0Yjg1ODAzZS45MTc0NjQwNmMxMTMzNWU5Ci0gICAgNjk1MzYzNTZiMGU3YmI1NS4zZmVhZTI3MzVkOTQ0Y2UxLjRiNGRiMjI0NjQ2ZmE3YzAuOTE3NDY0MDZjMTEzMzVlOQorICAgIDBmMWMyNGM0ZTU1YmY1YmQuNzg5OTc1NTc5ZWZiOGU3MS4zOWMxNGU0ZDFjNmQ3NTI5LmNkNGVlZDM5MjU2YjE3MDEKICAgICAxMjkyNDhmNGQ4NjY2NmFhLjcyYWUxOTZlMTBhYmJlYjMuNWVlOWMyMDI2ODY5Mzg4Yi41YjI2NDkyOTJiMDU4OWI1CiAgICAgOTc0YTc1NDI3MDZkYzZiMQogCi1WVU5QQ0tIUERfMjU2KHJlZykKK1ZQRVhUUkJfR3RvRV8xMjhfMHhGKHJlZykKICAgYmVmb3JlCiAgICAgZGQwNDZjZjA4ZjJlMGJhMC5iOWZiZTk4ZmFkNTg3ZjEwLjg3NzNjYjI0NGUyZDE4NTMuZjhkZmI1ZWE0ODg2ODY4ZgogICAgIDg5YTEyYWEwMjVkNDk0MmYuZGYyNTgxODA4MzNiZmUxYi4xNTM1ODZlNWY1MGZkOGZkLmUyNmZhMmYyZGFjZjFhNjIKQEAgLTE4MjMxLDEyICsxODIzMSwxMiBAQAogICAgIDgzYjRlY2IyMjMwMDYxZGIuMTdlNzhiMTQ5YzBhMTljZS4wN2UwMDgzOWVjMjE3ODFkLjFiOGQ1YjEzODMxNjA4MjQKICAgICAyMWIyMWYwNGQyMmNkODZiCiAgIGFmdGVyCi0gICAgZjc2ZGFiYmNjZGViOWQwOS44OWExMmFhMDI1ZDQ5NDJmLjc2NDA0NzFlYTFkZDM5NWMuMTUzNTg2ZTVmNTBmZDhmZAorICAgIGRkMDQ2Y2YwOGYyZTBiYTAuYjlmYmU5OGZhZDU4N2YxMC44NzczY2IyNDRlMmQxODUzLmY4ZGZiNWVhNDg4Njg2OGYKICAgICA4OWExMmFhMDI1ZDQ5NDJmLmRmMjU4MTgwODMzYmZlMWIuMTUzNTg2ZTVmNTBmZDhmZC5lMjZmYTJmMmRhY2YxYTYyCiAgICAgZjc2ZGFiYmNjZGViOWQwOS42MGRhOGViMzc0MWQ5ZGY2Ljc2NDA0NzFlYTFkZDM5NWMuZmE2NTA1MDczYTUwYjIzMAogICAgIDgzYjRlY2IyMjMwMDYxZGIuMTdlNzhiMTQ5YzBhMTljZS4wN2UwMDgzOWVjMjE3ODFkLjFiOGQ1YjEzODMxNjA4MjQKLSAgICAyMWIyMWYwNGQyMmNkODZiCi1WVU5QQ0tIUERfMjU2KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDE1CitWUEVYVFJCX0d0b0VfMTI4XzB4RihtZW0pCiAgIGJlZm9yZQogICAgIGU3YTFjZGM1NDI5ZWUwMzAuODljMmU4ZWNjNDllMWU1MS5lMjE4ZjU5MDE4MGMyZGNmLjI1NjFjN2E0NzU2OWQxZWIKICAgICA0YjI2ZTE0MWVmNzlkYWEwLjY0ZTI5YmQ4NGM1MjBkMTYuOWMzODQ2MTEwMzMyOTcyNC4yYTBmN2ZjOWQ1NDE3ZjczCkBAIC0xODI0NCwxMyArMTgyNDQsMTMgQEAKICAgICA1OTIyMmMxZjcyOTc5NjMwLjBlOGMxNjczN2UyOTc4M2YuNGM3OTkyZDY5ODEzNTc3Yy41ZDIwY2FmNjkwY2RjZDVmCiAgICAgNDIxZDU2ZDUyMjliZTUxYwogICBhZnRlcgotICAgIGU3YTFjZGM1NDI5ZWUwMzAuODljMmU4ZWNjNDllMWU1MS5lMjE4ZjU5MDE4MGMyZGNmLjI1NjFjN2E0NzU2OWQxZWIKKyAgICBlN2ExY2RjNTQyOWVlMDMwLjg5YzJlOGVjYzQ5ZTFlNTEuZTIxOGY1OTAxODBjMmRjZi4yNTYxYzdhNDc1NjlkMTljCiAgICAgNGIyNmUxNDFlZjc5ZGFhMC42NGUyOWJkODRjNTIwZDE2LjljMzg0NjExMDMzMjk3MjQuMmEwZjdmYzlkNTQxN2Y3MwotICAgIGU3YTFjZGM1NDI5ZWUwMzAuNGIyNmUxNDFlZjc5ZGFhMC5lMjE4ZjU5MDE4MGMyZGNmLjljMzg0NjExMDMzMjk3MjQKKyAgICAyNzBkZDc2NmY2Yzg4M2U3LjcyNjEwMWUxNTZhNzZkZDcuMjAxNWZjODQ3YTg1MTFmYS43MzM1MmMxNmFiMzNiZjYwCiAgICAgNTkyMjJjMWY3Mjk3OTYzMC4wZThjMTY3MzdlMjk3ODNmLjRjNzk5MmQ2OTgxMzU3N2MuNWQyMGNhZjY5MGNkY2Q1ZgogICAgIDQyMWQ1NmQ1MjI5YmU1MWMKIAotVlVOUENLSFBEXzI1NihyZWcpCitWUEVYVFJCX0d0b0VfMTI4XzB4RihyZWcpCiAgIGJlZm9yZQogICAgIDdmNzZjYTFmZmQyNzQyNDIuYmMzMTViNTk4MGYzZDBhNy45NGFkZDdmYTYxNjQ2YmZiLmZhMzE4NGYxNzllNzI3ZDcKICAgICA3MDc3MjQ0MGJjMDAyMTdlLjJiMDVlMGZlM2NlN2VkN2EuNWYxMTNmZTI5YWU1ODJiNi4wODBhNGZjMzNiMGQzYjM2CkBAIC0xODI1OCwxMiArMTgyNTgsMTIgQEAKICAgICBkZWE2NzhiNzU4YzI1NWU2LmExMzBkZDNjMmJjOGMwZGUuMzhkMWY0ODU4MGU3MGFkYy5iMDQ5NWMzOGNiODEyMWIzCiAgICAgMDI0OTk3YjRkM2U3NmMyOAogICBhZnRlcgotICAgIDcxNmU2MGE0ZmNhZmJlN2IuNzA3NzI0NDBiYzAwMjE3ZS5jZDAzNGE5N2M2MzhmODFkLjVmMTEzZmUyOWFlNTgyYjYKKyAgICA3Zjc2Y2ExZmZkMjc0MjQyLmJjMzE1YjU5ODBmM2QwYTcuOTRhZGQ3ZmE2MTY0NmJmYi5mYTMxODRmMTc5ZTcyN2Q3CiAgICAgNzA3NzI0NDBiYzAwMjE3ZS4yYjA1ZTBmZTNjZTdlZDdhLjVmMTEzZmUyOWFlNTgyYjYuMDgwYTRmYzMzYjBkM2IzNgogICAgIDcxNmU2MGE0ZmNhZmJlN2IuODQ2YzM3ZmJjMTdmYTlkMi5jZDAzNGE5N2M2MzhmODFkLjUwY2Q2ZDM3Zjc5MjUwYzYKICAgICBkZWE2NzhiNzU4YzI1NWU2LmExMzBkZDNjMmJjOGMwZGUuMzhkMWY0ODU4MGU3MGFkYy5iMDQ5NWMzOGNiODEyMWIzCi0gICAgMDI0OTk3YjRkM2U3NmMyOAotVlVOUENLSFBEXzI1NihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDA1ZgorVlBFWFRSQl9HdG9FXzEyOF8weEYobWVtKQogICBiZWZvcmUKICAgICAyNDk4OWI5NjJhY2VlYjUyLjEzNmE2YWU2NmNjNDIxNmIuNWYxZTRjYWU5N2NkZWRjOC5mZWM1M2ExODY1ODBmNDllCiAgICAgZjAwM2UyY2JlYzQ0NWE1ZC42YzA3MzA5YmQ1NDE1ZmI1LjliMDIwMjNiMjA5YmVkYmQuNzkyZDE3YmQxMDhlZjIxMApAQCAtMTgyNzEsMTMgKzE4MjcxLDEzIEBACiAgICAgZmE1ZTJlZDkyNDBjZmNjMy5mYWZjMmU0YjE1ZGUyMDRhLmY4ZGIzMTViZmJiZjU1NzYuMDI4NDg2ZTkyYTNiMThiMwogICAgIGM4MGMxMDQ5ZDFmMWI5M2MKICAgYWZ0ZXIKLSAgICAyNDk4OWI5NjJhY2VlYjUyLjEzNmE2YWU2NmNjNDIxNmIuNWYxZTRjYWU5N2NkZWRjOC5mZWM1M2ExODY1ODBmNDllCisgICAgMjQ5ODliOTYyYWNlZWI1Mi4xMzZhNmFlNjZjYzQyMTZiLjVmMWU0Y2FlOTdjZGVkYzguZmVjNTNhMTg2NTgwZjQ5YgogICAgIGYwMDNlMmNiZWM0NDVhNWQuNmMwNzMwOWJkNTQxNWZiNS45YjAyMDIzYjIwOWJlZGJkLjc5MmQxN2JkMTA4ZWYyMTAKLSAgICAyNDk4OWI5NjJhY2VlYjUyLmYwMDNlMmNiZWM0NDVhNWQuNWYxZTRjYWU5N2NkZWRjOC45YjAyMDIzYjIwOWJlZGJkCisgICAgNDM1N2VhM2QzNjU1Nzc3NC40NWM5Yzk0NDJmYzY0YTcxLjJmYTc3YWQxZTIzZDdiZTguMDc1Mzg3ZGUxZTllM2ZkZQogICAgIGZhNWUyZWQ5MjQwY2ZjYzMuZmFmYzJlNGIxNWRlMjA0YS5mOGRiMzE1YmZiYmY1NTc2LjAyODQ4NmU5MmEzYjE4YjMKICAgICBjODBjMTA0OWQxZjFiOTNjCiAKLVZVTlBDS0hQRF8yNTYocmVnKQorVlBFWFRSQl9HdG9FXzEyOF8weEYocmVnKQogICBiZWZvcmUKICAgICBiMzM2MjI2OWFlNGQ1ZDI0LmVmZTQyYThjZDA3NWE2NzguZTdlYzVjMWUyMzE2MWJlZC5kMzY4YTFjNTg0MmQzNTkyCiAgICAgMjA1MGI3Yjc1ZWRhNDExOC5mZmI3NWI0MDU5OWMzMGJkLjY4ZTQ1MDI4ZjZmODc4MDYuOWExYjQ4ZmI5Yjk0ZDc2OQpAQCAtMTgyODUsMTIgKzE4Mjg1LDEyIEBACiAgICAgZjE3ZjVhOGFhNGI4YjlkMi5lMTcwNDg1ZjZjNTdkOGE4Ljk1MjA3NzkxNTlmMDQ2NDguNWYyMzI4N2JlMjdiNTVmNwogICAgIDE1MTA1YTlkNDkxM2E4MDYKICAgYWZ0ZXIKLSAgICA2Y2E0Y2I5ZTdjMjRhMWMzLjIwNTBiN2I3NWVkYTQxMTguZDkzMjA1ZDUyOTEzNzI0MC42OGU0NTAyOGY2Zjg3ODA2CisgICAgYjMzNjIyNjlhZTRkNWQyNC5lZmU0MmE4Y2QwNzVhNjc4LmU3ZWM1YzFlMjMxNjFiZWQuZDM2OGExYzU4NDJkMzU5MgogICAgIDIwNTBiN2I3NWVkYTQxMTguZmZiNzViNDA1OTljMzBiZC42OGU0NTAyOGY2Zjg3ODA2LjlhMWI0OGZiOWI5NGQ3NjkKICAgICA2Y2E0Y2I5ZTdjMjRhMWMzLjA2YTIzYmUzZDk4ZTU4YmUuZDkzMjA1ZDUyOTEzNzI0MC4yYWMxYTFlOTVjZmZmOTI3CiAgICAgZjE3ZjVhOGFhNGI4YjlkMi5lMTcwNDg1ZjZjNTdkOGE4Ljk1MjA3NzkxNTlmMDQ2NDguNWYyMzI4N2JlMjdiNTVmNwotICAgIDE1MTA1YTlkNDkxM2E4MDYKLVZVTlBDS0hQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNjgKK1ZQRVhUUkJfR3RvRV8xMjhfMHhGKG1lbSkKICAgYmVmb3JlCiAgICAgMjk1M2IyM2NhZWQzYWQ3Zi4wYzJkNjFlODczMjFjNGYxLjZhZWVmZGEyMmYwMTZkYTcuZmFmYmEzYzgyMTFkMzBjOQogICAgIDc1YjdhYjQyMmRjODIyOGYuMWFmYWRhMjI4NWViZmZjYi43ZWU4ZDY5NzNkOWFkMmU2LjYzMGY4M2U2MWUyNTZjNzAKQEAgLTE4Mjk4LDEzICsxODI5OCwxMyBAQAogICAgIDI4MTY3NjM3ZTY3ZTQ3MjMuN2EyMDE3ZGVkZmQ0ZjU2Mi5iNzgwZTY0N2FjYzdmZmQ2LmIwMTI1NDg4MjVmN2M5ZGUKICAgICA0ZDk4M2NlNDY3ZGE2MWZlCiAgIGFmdGVyCi0gICAgMjk1M2IyM2NhZWQzYWQ3Zi4wYzJkNjFlODczMjFjNGYxLjZhZWVmZGEyMmYwMTZkYTcuZmFmYmEzYzgyMTFkMzBjOQorICAgIDI5NTNiMjNjYWVkM2FkN2YuMGMyZDYxZTg3MzIxYzRmMS42YWVlZmRhMjJmMDE2ZGE3LmZhZmJhM2M4MjExZDMwN2UKICAgICA3NWI3YWI0MjJkYzgyMjhmLjFhZmFkYTIyODVlYmZmY2IuN2VlOGQ2OTczZDlhZDJlNi42MzBmODNlNjFlMjU2YzcwCi0gICAgMjk1M2IyM2NhZWQzYWQ3Zi43NWI3YWI0MjJkYzgyMjhmLjZhZWVmZGEyMmYwMTZkYTcuN2VlOGQ2OTczZDlhZDJlNgorICAgIGQ2MGFjNDljZTFmY2MxNjIuNzUzMmMzYTU3NWEzYTYwZC5mOTJhNTAyYWIyMmRjNDkyLjJjYTgxNTU4ZWI5NTM1ZTgKICAgICAyODE2NzYzN2U2N2U0NzIzLjdhMjAxN2RlZGZkNGY1NjIuYjc4MGU2NDdhY2M3ZmZkNi5iMDEyNTQ4ODI1ZjdjOWRlCiAgICAgNGQ5ODNjZTQ2N2RhNjFmZQogCi1WU0hVRlBTXzB4MzlfMjU2KHJlZykKK1ZQTUlOVUJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNWU4N2NhZDY0ZGM3M2NmMy40N2E4M2VmZTU5NTc2ZmZmLjg1MTJkMzM3NjAwYTI3NzcuOTRiNTE0ZGE0NDczM2ZkZgogICAgIDNlMmJmOWNjNzQ0Yzk0NmEuMGY4Yzk5ZGQ1NTk1ZjYyMS5mMjUyZjExZTkzZDI3OWY4LjZjOTc1NmNmOTgzZDNmZDkKQEAgLTE4MzEyLDEyICsxODMxMiwxMiBAQAogICAgIGRmYzIyYTcxZjQ0Y2FlOGQuMGE3OWY1OTI1YTZlMTFlYS42MmVmNDg0MzgxNDU2Y2VjLjdkOGQwNzkwZTM1ZDcyNGUKICAgICA2ZTNhNmUzNDExY2ExZDIxCiAgIGFmdGVyCi0gICAgNWE2ZTExZWFkZmMyMmE3MS43NDRjOTQ2YTBmOGM5OWRkLmUzNWQ3MjRlNjJlZjQ4NDMuOTNkMjc5Zjg2Yzk3NTZjZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZDJkNmYxZTE1YjcyNjkwLjFiOTcyODEzOTgzMjNmZDkKICAgICAzZTJiZjljYzc0NGM5NDZhLjBmOGM5OWRkNTU5NWY2MjEuZjI1MmYxMWU5M2QyNzlmOC42Yzk3NTZjZjk4M2QzZmQ5CiAgICAgNGJkMGM1MzE3OGY0YTYwZi41YzhkMDJiZmY3NDQ5OGI2LjFkMmQ2ZmZlMTViNzI2OTAuMWJmMDI4MTNjNDMyYmNlZgogICAgIGRmYzIyYTcxZjQ0Y2FlOGQuMGE3OWY1OTI1YTZlMTFlYS42MmVmNDg0MzgxNDU2Y2VjLjdkOGQwNzkwZTM1ZDcyNGUKICAgICA2ZTNhNmUzNDExY2ExZDIxCi1WU0hVRlBTXzB4MzlfMjU2KG1lbSkKK1ZQTUlOVUJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgY2FjM2Q5ZTk2Yjg2Nzg5NS41ODRkMjRmODg0ZGZlNzkxLmY1MWFlZjQyOWIyMTFjZTguMWRlNDc4NTg3NDA5ODViNwogICAgIDZjZjNjNDlkMGQ5YzQwZDUuMTBiZGIwMzJjNTM5OGZjNi5mODNkNmJiOWQ1Njg3NmRkLmFhNTdmY2FiODk4ZWFlOWUKQEAgLTE4MzI3LDExICsxODMyNywxMSBAQAogICBhZnRlcgogICAgIGNhYzNkOWU5NmI4Njc4OTUuNTg0ZDI0Zjg4NGRmZTc5MS5mNTFhZWY0MjliMjExY2U4LjFkZTQ3ODU4NzQwOTg1YjcKICAgICA2Y2YzYzQ5ZDBkOWM0MGQ1LjEwYmRiMDMyYzUzOThmYzYuZjgzZDZiYjlkNTY4NzZkZC5hYTU3ZmNhYjg5OGVhZTllCi0gICAgY2FjM2Q5ZTk4NGRmZTc5MS4xMGJkYjAzMjBkOWM0MGQ1LmY1MWFlZjQyNzQwOTg1YjcuYWE1N2ZjYWJkNTY4NzZkZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNTFhNmI0MjliMjExY2RkLjFkNTc3ODU4NzQwOTg1OWUKICAgICBmNzdjMGJhZjk2MDcwNjZjLmIxN2E2YTZmYzk3NDE2NzUuYmIzOWQ5YWZhNmU0MDc1YS5hYWViZWRiOThiMGQxZTZmCiAgICAgZDVhMzUyNGJiMDFlZGViMQogCi1WU0hVRlBTXzB4MzlfMjU2KHJlZykKK1ZQTUlOVUJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDIwYWZhY2I2NzIwOWViZS45NzZjNWZlNWI2NzQ3YzFiLjUxNjA5MjRhYzM2YzZlNDcuMzJhYWMzMDc3NTMxYjUzYgogICAgIDRkNmNlMmEzNGNhMDk5NDMuZWQzNDIzYzk4ZDZiNGY0Ni5hMjViM2E4OWRlNWMyNGZiLjMxY2QxZmQ2YWQ0MWEyYzIKQEAgLTE4MzM5LDEyICsxODMzOSwxMiBAQAogICAgIGFjNTA1ZTBmMTM0ODMzNjQuMzA3Y2VjNGJkMjI5ZmJjMS5jMmMwZmZkZmU1NTE5YWI3LjNjNTcxZjhlYzllMDI4NzQKICAgICBmZTU3YmE0ZWU2ODUzOWY3CiAgIGFmdGVyCi0gICAgZDIyOWZiYzFhYzUwNWUwZi40Y2EwOTk0M2VkMzQyM2M5LmM5ZTAyODc0YzJjMGZmZGYuZGU1YzI0ZmIzMWNkMWZkNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMjViM2E4OWI1NWMyNDNjLjMxNmQxZjBhNmEyMjhhMWMKICAgICA0ZDZjZTJhMzRjYTA5OTQzLmVkMzQyM2M5OGQ2YjRmNDYuYTI1YjNhODlkZTVjMjRmYi4zMWNkMWZkNmFkNDFhMmMyCiAgICAgNTExNTA0NDFmYzI5MGNlYy5kN2EwZDQ0NzM4ZjkzYTE5LmZlYjc2MDk2YjVjZjc0M2MuOTY2ZDZhMGE2YTIyOGExYwogICAgIGFjNTA1ZTBmMTM0ODMzNjQuMzA3Y2VjNGJkMjI5ZmJjMS5jMmMwZmZkZmU1NTE5YWI3LjNjNTcxZjhlYzllMDI4NzQKICAgICBmZTU3YmE0ZWU2ODUzOWY3Ci1WU0hVRlBTXzB4MzlfMjU2KG1lbSkKK1ZQTUlOVUJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYmEzOWI4MzVkYzFmNzlkMC5iOTZiZWM3YjJjODg0YTU4LmQzOTNlOWMyNzgwNzRjNmEuNGJjMTEzY2YwOTZmZDExOAogICAgIDRiYzk5MzMxYzdiYWE0MmMuZDRiMGE4ZjBlMzc1OGM3My45ZWIzNDY5NjQ1YTBlOTNmLmYzMDc5OGQyYmViNDU2MGEKQEAgLTE4MzU0LDExICsxODM1NCwxMSBAQAogICBhZnRlcgogICAgIGJhMzliODM1ZGMxZjc5ZDAuYjk2YmVjN2IyYzg4NGE1OC5kMzkzZTljMjc4MDc0YzZhLjRiYzExM2NmMDk2ZmQxMTgKICAgICA0YmM5OTMzMWM3YmFhNDJjLmQ0YjBhOGYwZTM3NThjNzMuOWViMzQ2OTY0NWEwZTkzZi5mMzA3OThkMmJlYjQ1NjBhCi0gICAgYmEzOWI4MzUyYzg4NGE1OC5kNGIwYThmMGM3YmFhNDJjLmQzOTNlOWMyMDk2ZmQxMTguZjMwNzk4ZDI0NWEwZTkzZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ZTkzNDY5NjQ1MDc0YzNmLjRiMDcxM2NmMDk2ZjU2MGEKICAgICA1YjIyZDUxNmVlMjBhOTFjLmEzZWI5ZmE1OWQ4Nzg0ZDAuMTgzOTExMDljNjMwZmIyMC4xMzkyZTZjMTQ5ZTQzOTUyCiAgICAgNDM2ZmE3ODU1N2U3MGYwMQogCi1WU0hVRlBTXzB4MzlfMjU2KHJlZykKK1ZQTUlOVUJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMDNjMWNhMGM2NTQxMjJmMi45Mjg0MzNkNjYyMDNmYzA4LjEwNzlkMWJkZDhjNGIxNmEuN2YzODc2ODBiMTQwZTc4MwogICAgIGFmZDM0OWMyMTA3ZmIwZDAuMGVjMzYwNWIzYjE3MjkyNy5mYTYxMjI4ZTIxZGZmYWRjLjdlNmYyYzA1MzQzYTBmYzIKQEAgLTE4MzY2LDEyICsxODM2NiwxMiBAQAogICAgIDNiNmI1MDZjYWNkNTI4MDQuNDYwYjE0NjA4ZTAwMDRhYi5iOTczMTIwYzRmZGNkMGY2LmIwYjQ3OWU5NzExZDA3ODgKICAgICA5YjVhMDcyMDYyMWY0ZDY1CiAgIGFmdGVyCi0gICAgOGUwMDA0YWIzYjZiNTA2Yy4xMDdmYjBkMDBlYzM2MDViLjcxMWQwNzg4Yjk3MzEyMGMuMjFkZmZhZGM3ZTZmMmMwNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZjYxMjI4NTE1NjM5YmQxLjdlNmYyYzA1MzQyYjBmMGIKICAgICBhZmQzNDljMjEwN2ZiMGQwLjBlYzM2MDViM2IxNzI5MjcuZmE2MTIyOGUyMWRmZmFkYy43ZTZmMmMwNTM0M2EwZmMyCiAgICAgYTNmMzIyMTRmNDJjZjM0Ny5hY2FjZDc4Zjk2NjdlZGE0LmJmZjE4ZTg1MTU2MzliZDEuZWZhOWFlODQ2YjJiMzEwYgogICAgIDNiNmI1MDZjYWNkNTI4MDQuNDYwYjE0NjA4ZTAwMDRhYi5iOTczMTIwYzRmZGNkMGY2LmIwYjQ3OWU5NzExZDA3ODgKICAgICA5YjVhMDcyMDYyMWY0ZDY1Ci1WU0hVRlBTXzB4MzlfMjU2KG1lbSkKK1ZQTUlOVUJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOGQ2OGQ2MTU1YjNhYzFjZi5kMzg4Y2YzOGQ0MDQ4YmIzLmJhYWI5M2I4NDBlYzJhNmEuNDYzNGE5OTE2Y2Q3ZDRmNwogICAgIDYzYWE2MWI1Nzg3YzFkZjIuYzc5NjliZTIwOTQ3NTcwMC5lMjVhZDA4NWM3MzkxYTBiLmMwODA0ZjdlMDdkZmU0N2YKQEAgLTE4MzgxLDExICsxODM4MSwxMSBAQAogICBhZnRlcgogICAgIDhkNjhkNjE1NWIzYWMxY2YuZDM4OGNmMzhkNDA0OGJiMy5iYWFiOTNiODQwZWMyYTZhLjQ2MzRhOTkxNmNkN2Q0ZjcKICAgICA2M2FhNjFiNTc4N2MxZGYyLmM3OTY5YmUyMDk0NzU3MDAuZTI1YWQwODVjNzM5MWEwYi5jMDgwNGY3ZTA3ZGZlNDdmCi0gICAgOGQ2OGQ2MTVkNDA0OGJiMy5jNzk2OWJlMjc4N2MxZGYyLmJhYWI5M2I4NmNkN2Q0ZjcuYzA4MDRmN2VjNzM5MWEwYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iYTVhOTM4NTQwMzkxYTBiLjQ2MzQ0ZjdlMDdkN2Q0N2YKICAgICAyNmZhOWJhMjhiYTM3ZjExLjMzYjQwYjg1MDgzODFkMjEuYzExMTc2MmJjNjI1NGJhNC5lZmU5Yjk0NTI5NDcxN2Q2CiAgICAgNWI5ZDc1ZjZlOGJmYjJmZAogCi1WVU5QQ0tMUFNfMjU2KHJlZykKK1ZQTUFYU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjYwYzMwYzA5NTc0NDk1Yi5jYzlmNDNjN2JhYTBmZTY1LjYzNWRhNzU1MGJmZDhlNGUuMzFiMWQ2ZGM3NmRiMDNmNQogICAgIGFhODNlNzBmY2NmMzE4OWQuYzZhODk3NDc3Y2YzNTUyMi41ZjI2ODBiNDg5MDU1YWM5LmM1OGZlNGIxNmIyMjc2ZDgKQEAgLTE4MzkzLDEyICsxODM5MywxMiBAQAogICAgIDUwYjMzNWVjNGI3YzRjN2MuMjExNzMzMDUyYmNjN2Q4Ni4yYTRiZGFjZjZjMTBlZDU3LmNjMzRmYjc4OTU5MDdkMDYKICAgICBmNzkzZmM0MTAzY2Y4OGE5CiAgIGFmdGVyCi0gICAgZWVlMjEzMGRjNmE4OTc0Ny5lZWE4NDE3NDdjZjM1NTIyLjVhNzYxYzk2YzU4ZmU0YjEuYzEwNDYwN2E2YjIyNzZkOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZjVjOTMwZTIxMDU1YTNkLjVhNzYxY2IxNmIyMjc2N2EKICAgICBhYTgzZTcwZmNjZjMxODlkLmM2YTg5NzQ3N2NmMzU1MjIuNWYyNjgwYjQ4OTA1NWFjOS5jNThmZTRiMTZiMjI3NmQ4CiAgICAgNDQ0Yzk0NGYyYWM3NWE2Zi5lZWUyMTMwZGVlYTg0MTc0LjgzNWM5MzBlMjFkZGJiM2QuNWE3NjFjOTZjMTA0NjA3YQogICAgIDUwYjMzNWVjNGI3YzRjN2MuMjExNzMzMDUyYmNjN2Q4Ni4yYTRiZGFjZjZjMTBlZDU3LmNjMzRmYjc4OTU5MDdkMDYKICAgICBmNzkzZmM0MTAzY2Y4OGE5Ci1WVU5QQ0tMUFNfMjU2KG1lbSkKK1ZQTUFYU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjc2MTliZGYyNWNmM2U4Zi4yYjA2YzU1M2M5OWYyYTcxLjNiMTQ3NDFiNTA2YWM2ODUuYjIzZjUzNjQwODJiMmVjMwogICAgIGU4Njg1NDNjMWE5YjViZTMuMmY5MDQwZWU0M2JiMmZmOS4xOGE0NTEzYjc4OGZkODljLjc2ODNmOTM3OTFiOWI4MmMKQEAgLTE4NDA4LDExICsxODQwOCwxMSBAQAogICBhZnRlcgogICAgIGI3NjE5YmRmMjVjZjNlOGYuMmIwNmM1NTNjOTlmMmE3MS4zYjE0NzQxYjUwNmFjNjg1LmIyM2Y1MzY0MDgyYjJlYzMKICAgICBlODY4NTQzYzFhOWI1YmUzLjJmOTA0MGVlNDNiYjJmZjkuMThhNDUxM2I3ODhmZDg5Yy43NjgzZjkzNzkxYjliODJjCi0gICAgMmIwNmM1NTMyZjkwNDBlZS5jOTlmMmE3MTQzYmIyZmY5LmIyM2Y1MzY0NzY4M2Y5MzcuMDgyYjJlYzM5MWI5YjgyYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYjE0NzQzYjc4NmFkODljLjc2M2Y1MzY0MDgyYjJlMmMKICAgICAwZDU0MDZlOGU3YzliOTg3LjI1NzdlODc0OTUwZmExNzUuOGJiMWNmNDk0MjliNDZjNS4yMTJmYmQ0YmQ4NWY5OWE3CiAgICAgYzEyZWQzNjRjZThmNjkxMQogCi1WVU5QQ0tMUFNfMjU2KHJlZykKK1ZQTUFYU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMGNhZTA2NmMyMDYyNzIyOC5iOWQwZjYwZWY4NDI3MjJmLmNmNmQwZDM3YTY1Zjg2YzAuZDljNTY4MGYxZDliMWEyZQogICAgIDYwZmI1MmNlNmI2NGYwOTkuNDZiN2YwYTQ0YWI4ODFmNi4xM2NhMGRkZjIxZDg4MjRmLjVhOWU4ZTkwNmI1MWE3NjAKQEAgLTE4NDIwLDEyICsxODQyMCwxMiBAQAogICAgIDhmMmIyNjU2NWIyODNmMzguNzNmMWYzZDAyM2M4OTU4Zi5kOWU5OGY4ZWM3NzdiMmU3LjY1Yzk2ZTZmZDExMGRiY2QKICAgICBhNmI1MjBhNjIyMzFmYTYxCiAgIGFmdGVyCi0gICAgOTBkMzcwOTY0NmI3ZjBhNC5mYTM2YTQwNzRhYjg4MWY2LmVhMDViY2I2NWE5ZThlOTAuNDljOWE5ODY2YjUxYTc2MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZGRhMGRkZjIxMDdkMjRmLjVhMDViY2I2NmI1MWE5NjAKICAgICA2MGZiNTJjZTZiNjRmMDk5LjQ2YjdmMGE0NGFiODgxZjYuMTNjYTBkZGYyMWQ4ODI0Zi41YTllOGU5MDZiNTFhNzYwCiAgICAgMTc2MWIzZjg0YjIyMjExMC45MGQzNzA5NmZhMzZhNDA3LjRkZGFlNGQ4YTMwN2QyY2QuZWEwNWJjYjY0OWM5YTk4NgogICAgIDhmMmIyNjU2NWIyODNmMzguNzNmMWYzZDAyM2M4OTU4Zi5kOWU5OGY4ZWM3NzdiMmU3LjY1Yzk2ZTZmZDExMGRiY2QKICAgICBhNmI1MjBhNjIyMzFmYTYxCi1WVU5QQ0tMUFNfMjU2KG1lbSkKK1ZQTUFYU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOGI5NDRlNDY1NjM4YzE2ZC4yMmE3YTY1MjM3MDA4N2JlLmNiZGRmNDNlZTI3YjExYjkuMTM0MjA4NmQyYWI1NWU0OQogICAgIGVmMzQ3NTNkODkzMmVlMWUuMmQxZjJmNTk3YzM4MzQ0ZS43NDYzZWZjYzUyNWFkM2IyLjU3MzI0ZGUxNjc0YjExOWUKQEAgLTE4NDM1LDExICsxODQzNSwxMSBAQAogICBhZnRlcgogICAgIDhiOTQ0ZTQ2NTYzOGMxNmQuMjJhN2E2NTIzNzAwODdiZS5jYmRkZjQzZWUyN2IxMWI5LjEzNDIwODZkMmFiNTVlNDkKICAgICBlZjM0NzUzZDg5MzJlZTFlLjJkMWYyZjU5N2MzODM0NGUuNzQ2M2VmY2M1MjVhZDNiMi41NzMyNGRlMTY3NGIxMTllCi0gICAgMjJhN2E2NTIyZDFmMmY1OS4zNzAwODdiZTdjMzgzNDRlLjEzNDIwODZkNTczMjRkZTEuMmFiNTVlNDk2NzRiMTE5ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NDYzZjQzZTUyN2IxMWI5LjU3NDI0ZDZkNjc0YjVlNDkKICAgICBhM2UyOWJkZDVlMmM2NTFkLjFjMzY0YzM5YWZmNmIxMzkuMjg2ZGM0ZjliNmNkMWNiZi42ZDA4MjkzOWUxYjU3ZmQzCiAgICAgZjY4NGI3ZjQ1NWEwYjEwYgogCi1WVU5QQ0tMUFNfMjU2KHJlZykKK1ZQTUFYU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZmFjODAxZjUxNDE0ZGJlNy5hYzg5OTI1ZjM4NDUyN2MzLmI3NmRkOWU5ZDY5NGY3ZWUuZWM4ODk1NzBlMzc5MWIyYwogICAgIGQ0MWYwMmE3YmE5ZTM5MTIuYTQxZjcyZTY4MTgwM2ZiZS4zYmQwNWY1NWQ0YzE5NDVjLjcwNmQ1MWI3MzE4MTUxMTgKQEAgLTE4NDQ3LDEyICsxODQ0NywxMiBAQAogICAgIDc5MzQxYWNkMjgyMTgwMDcuZDA0Y2RhYjdkMjhkNWI2Mi42OTRlNDYwZGNiZmFiZTE0LjJkYzU3ODY1YTFkNzUwMWEKICAgICAxY2QwZGJhNGZjM2M5MTg5CiAgIGFmdGVyCi0gICAgNjY3MmI2NWZhNDFmNzJlNi41NmU5NjczYTgxODAzZmJlLjkyZTg3NGJhNzA2ZDUxYjcuYmNmMjc5YWQzMTgxNTExOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYmQwNWY1NTQ3MGFjMjVjLjcwNmQ3NGJhMzFmMjc5MTgKICAgICBkNDFmMDJhN2JhOWUzOTEyLmE0MWY3MmU2ODE4MDNmYmUuM2JkMDVmNTVkNGMxOTQ1Yy43MDZkNTFiNzMxODE1MTE4CiAgICAgZTBkNGI2NzVlMmM4MDYzOS42NjcyYjY1ZjU2ZTk2NzNhLjAyYWRkYWU4NDcwYWMyMmYuOTJlODc0YmFiY2YyNzlhZAogICAgIDc5MzQxYWNkMjgyMTgwMDcuZDA0Y2RhYjdkMjhkNWI2Mi42OTRlNDYwZGNiZmFiZTE0LjJkYzU3ODY1YTFkNzUwMWEKICAgICAxY2QwZGJhNGZjM2M5MTg5Ci1WVU5QQ0tMUFNfMjU2KG1lbSkKK1ZQTUFYU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgM2RkNTE3NjNlODJlZjkyNy5mZDhiMjgxYTI5MzJlMTI5LmJkN2E1YWQ4MTI3N2Q5NjMuY2MwMGEwMzJmYjFlYzNiNwogICAgIDZhOWZhYjhlODFiODQ0MWYuYzcyNWRlYzg4MDg5NjU0YS4wOGM5YjJiMDMxYjM5YjY5Ljg3MGZlM2MyNzQwMDBmYzMKQEAgLTE4NDYyLDExICsxODQ2MiwxMSBAQAogICBhZnRlcgogICAgIDNkZDUxNzYzZTgyZWY5MjcuZmQ4YjI4MWEyOTMyZTEyOS5iZDdhNWFkODEyNzdkOTYzLmNjMDBhMDMyZmIxZWMzYjcKICAgICA2YTlmYWI4ZTgxYjg0NDFmLmM3MjVkZWM4ODA4OTY1NGEuMDhjOWIyYjAzMWIzOWI2OS44NzBmZTNjMjc0MDAwZmMzCi0gICAgZmQ4YjI4MWFjNzI1ZGVjOC4yOTMyZTEyOTgwODk2NTRhLmNjMDBhMDMyODcwZmUzYzIuZmIxZWMzYjc3NDAwMGZjMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wODdhNWFkODMxNzdkOTY5LmNjMGZlMzMyNzQxZTBmYzMKICAgICA1Y2I2YzNkOTJjYzY3M2NmLjljNTIzMGY4YTIzN2NhM2MuMmNmNGRjMzI3ZTUzZGQzMi43Njc0MTRkNGFmMzQ2N2M4CiAgICAgNjE2MWZhMmRhOTljZWIxOQogCi1WVU5QQ0tIUFNfMjU2KHJlZykKK1ZQTUlOU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMTRkY2JhYTE1YmY1YTU4NC5kODlhNDFkMDc2NjFjZWRmLjVmN2NjMzUxYTVhNjIyNjQuYmM2YWE1YjRlM2NmZDY0ZAogICAgIGViMmY0ZjlkNjJjOGQxYjQuZDI3NDA1ZTRkZGM0ZmNmYS5kOTE5ZWViYjZlOGE4ZDNjLjFjMmYzNjljOThjZDAzMWQKQEAgLTE4NDc0LDEyICsxODQ3NCwxMiBAQAogICAgIDc1OTBlOGQ5ZGQxMTZlMTUuYWIzOTRmMGY3NDE0YmZmZi41ZWRjZjk3NGM0ZTM5MGFiLmI3ZGFhMjRlNjA3ZmViOGEKICAgICBhYzU3NzRmMGFjNGMxZTgwCiAgIGFmdGVyCi0gICAgNDJhN2I1OGJlYjJmNGY5ZC41YWEzYWI1NjYyYzhkMWI0LjY0NzVhY2EzZDkxOWVlYmIuOWE3MDQ5NzA2ZThhOGQzYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kOTE5YWNhMzlhOGE4ZDNjLjFjMTEwYzljOThjZDAzY2QKICAgICBlYjJmNGY5ZDYyYzhkMWI0LmQyNzQwNWU0ZGRjNGZjZmEuZDkxOWVlYmI2ZThhOGQzYy4xYzJmMzY5Yzk4Y2QwMzFkCiAgICAgNDJhN2I1OGI1YWEzYWI1Ni4yNDBmOGJmZjdlZmNiODRiLjY0NzVhY2EzOWE3MDQ5NzAuMjYxMTBjZDZiOTU5MjBjZAogICAgIDc1OTBlOGQ5ZGQxMTZlMTUuYWIzOTRmMGY3NDE0YmZmZi41ZWRjZjk3NGM0ZTM5MGFiLmI3ZGFhMjRlNjA3ZmViOGEKICAgICBhYzU3NzRmMGFjNGMxZTgwCi1WVU5QQ0tIUFNfMjU2KG1lbSkKK1ZQTUlOU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZGY1M2ZlYTliN2NiNzZkYS5lMDM1ZTVmMjhhOWU1NzllLjQ0YmNjZWZmZGMxOWNlNDIuMjE5YWQxOTk4OTZmOWU5YQogICAgIDJkOWNiYzYzOWQwOWFlYzUuZGVlNGE2NDJmYmQ3YTI5ZC5jOTY2ODNiYmQxMTU5ZTNmLjBiZmIzMTgwODRhMWIxZTgKQEAgLTE4NDg5LDExICsxODQ4OSwxMSBAQAogICBhZnRlcgogICAgIGRmNTNmZWE5YjdjYjc2ZGEuZTAzNWU1ZjI4YTllNTc5ZS40NGJjY2VmZmRjMTljZTQyLjIxOWFkMTk5ODk2ZjllOWEKICAgICAyZDljYmM2MzlkMDlhZWM1LmRlZTRhNjQyZmJkN2EyOWQuYzk2NjgzYmJkMTE1OWUzZi4wYmZiMzE4MDg0YTFiMWU4Ci0gICAgZGY1M2ZlYTkyZDljYmM2My5iN2NiNzZkYTlkMDlhZWM1LjQ0YmNjZWZmYzk2NjgzYmIuZGMxOWNlNDJkMTE1OWUzZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jOWJjODNiYmQxMTU5ZTNmLjBiOWFkMTgwODRhMTllOWEKICAgICA4YjQxYzY4ZTZjZWZiMmZjLjA4OGM2OTM3OWE3YjRkYWEuMGE1YTdmNDdkMzI4NzgxOS5iZmQ1NzY0MThlMjRkMTUzCiAgICAgNDNlNjUzZjNkNDhlNTZjOAogCi1WVU5QQ0tIUFNfMjU2KHJlZykKK1ZQTUlOU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNWNjYWE4MTZjMWNkZDA0ZC41MjM1MDlkNzhkYWZmNWExLmViMWQ2M2I0MDBmZTI1MTIuN2YzY2JmZWYxOTU2Zjk0ZAogICAgIDY3Y2Q2ZjE3ZjA2ZDc5OGQuYTRhNTcwZDJmOTVlMDg4Ni5kMmU3MTExODliNWM0ZjlmLjUwNzUyNDE0NWNhYzJjZWQKQEAgLTE4NTAxLDEyICsxODUwMSwxMiBAQAogICAgIGM0NWY0OTVlODcwMjRhZjAuNTkyOTliOGUyNGI3OTFjMi4xYjU1N2U0NmRlZGE4N2Q5Ljc5MTg1MjgxNGEwMjljMWIKICAgICA4OTFhMTNhMTJlMTk1MDAzCiAgIGFmdGVyCi0gICAgYzAzYWE2NjA2N2NkNmYxNy5mZWZiOGUzNWYwNmQ3OThkLjE4MzU3MWNmZDJlNzExMTguMDYyMTA2ZmQ5YjVjNGY5ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMmU3MTFjZjliMjEwNjlmLjUwY2YyNGEwYjhhY2NmZWQKICAgICA2N2NkNmYxN2YwNmQ3OThkLmE0YTU3MGQyZjk1ZTA4ODYuZDJlNzExMTg5YjVjNGY5Zi41MDc1MjQxNDVjYWMyY2VkCiAgICAgYzAzYWE2NjBmZWZiOGUzNS41ZDVkNzg2YmNkMDhhOGQ4LjE4MzU3MWNmMDYyMTA2ZmQuNWFjZjJjYTBiODM3Y2YyMwogICAgIGM0NWY0OTVlODcwMjRhZjAuNTkyOTliOGUyNGI3OTFjMi4xYjU1N2U0NmRlZGE4N2Q5Ljc5MTg1MjgxNGEwMjljMWIKICAgICA4OTFhMTNhMTJlMTk1MDAzCi1WVU5QQ0tIUFNfMjU2KG1lbSkKK1ZQTUlOU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNjZhMmU5ZWU3ZTg5YTYwNC5jZDg2NTI3ZTI2MGVlYTZiLjc0ZDQ1NzI3MWI3OTdmNzEuMzY5MjM1ZTdiZTEyMGVkZgogICAgIGVjN2M1MjUzNTk1ZDViNGQuMzhmZGJmMmI3N2FjYWE1Mi44YTJjMjgyM2NkNTkyZDExLmM0Mzc5MDIwNDI1NmQ2YmEKQEAgLTE4NTE2LDExICsxODUxNiwxMSBAQAogICBhZnRlcgogICAgIDY2YTJlOWVlN2U4OWE2MDQuY2Q4NjUyN2UyNjBlZWE2Yi43NGQ0NTcyNzFiNzk3ZjcxLjM2OTIzNWU3YmUxMjBlZGYKICAgICBlYzdjNTI1MzU5NWQ1YjRkLjM4ZmRiZjJiNzdhY2FhNTIuOGEyYzI4MjNjZDU5MmQxMS5jNDM3OTAyMDQyNTZkNmJhCi0gICAgNjZhMmU5ZWVlYzdjNTI1My43ZTg5YTYwNDU5NWQ1YjRkLjc0ZDQ1NzI3OGEyYzI4MjMuMWI3OTdmNzFjZDU5MmQxMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44YWQ0MjgyM2NkNTkyZDExLmM0OTI5MGU3YmUxMmQ2YmEKICAgICA2MzU1Y2ExNTFhNjJkMjYxLmE0MDZiMWRiYTFjYjc5MTIuMTcwZWY1ZWZkM2E1YmNkMi5hZGVjMjcwNmE5MmYxZGEyCiAgICAgYzA5NDVhOGNjM2RkMTIwNgogCi1WVU5QQ0tIUFNfMjU2KHJlZykKK1ZQTUlOU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjZkNTIyNTlmMWM2M2FmMC4wY2VjZDI0YTM4YWEwYjg1LjVkMzAzMGI3YjI2NTAwNDMuNDYzMWU5OTk2MDI4MTU0YgogICAgIGVkZmE3Y2Q5ZDA3NmNmMGIuY2QwNTViNDc1MTg4OTNhMC5lOGRhMDFkMGU1YzA5NzkwLmUwMzBlMjU1MThmYTFlNjUKQEAgLTE4NTI4LDEyICsxODUyOCwxMiBAQAogICAgIDhhMjRkM2EzMTA1ZDMyODYuMGNlZGU1NGFkZDJmODA2YS5lNGRhOGU2YTIzZWFlNDJkLmM0ZjFkMWIyN2FiODMyMmIKICAgICBjNzRiYmYyYzVjYmRiNjJmCiAgIGFmdGVyCi0gICAgYmY1MTYzNzllZGZhN2NkOS5mYzdhMGUwNGQwNzZjZjBiLmExNGUyMjkyZThkYTAxZDAuZDc2OTc5YTVlNWMwOTc5MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMWRhMDE5MmQ3YzA5NzkwLmMwZDZlMjBlMTdmYTk0NGMKICAgICBlZGZhN2NkOWQwNzZjZjBiLmNkMDU1YjQ3NTE4ODkzYTAuZThkYTAxZDBlNWMwOTc5MC5lMDMwZTI1NTE4ZmExZTY1CiAgICAgYmY1MTYzNzlmYzdhMGUwNC44NDZjZTNmODdlMDUyNmRlLmExNGUyMjkyZDc2OTc5YTUuYzBkNjVjMGUxNzI2OTQ0YwogICAgIDhhMjRkM2EzMTA1ZDMyODYuMGNlZGU1NGFkZDJmODA2YS5lNGRhOGU2YTIzZWFlNDJkLmM0ZjFkMWIyN2FiODMyMmIKICAgICBjNzRiYmYyYzVjYmRiNjJmCi1WVU5QQ0tIUFNfMjU2KG1lbSkKK1ZQTUlOU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTViMWExNjhkYTQwZGE4My5hOGMwYzhjNGE4YWI3OTNlLjQxNTRkZTI3OGExMjVjNzAuMGRjODQxYzI2NWQyMTJkNQogICAgIDNhZWZmMzUyMGY0ZDViNTQuNzY3MTNlNDk2MWYxMWRkOC5mZjZkNDg3ZGEwYjk3NzFkLjc3NjUzNzA3M2FhYTNmNDgKQEAgLTE4NTQzLDExICsxODU0MywxMSBAQAogICBhZnRlcgogICAgIGE1YjFhMTY4ZGE0MGRhODMuYThjMGM4YzRhOGFiNzkzZS40MTU0ZGUyNzhhMTI1YzcwLjBkYzg0MWMyNjVkMjEyZDUKICAgICAzYWVmZjM1MjBmNGQ1YjU0Ljc2NzEzZTQ5NjFmMTFkZDguZmY2ZDQ4N2RhMGI5NzcxZC43NzY1MzcwNzNhYWEzZjQ4Ci0gICAgYTViMWExNjgzYWVmZjM1Mi5kYTQwZGE4MzBmNGQ1YjU0LjQxNTRkZTI3ZmY2ZDQ4N2QuOGExMjVjNzBhMGI5NzcxZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZjU0ZGUyNzhhYjk1YzFkLjBkYzgzN2MyM2FhYTEyZDUKICAgICBmODIzZDhlMTEwMzc2MzFjLjkzNDE5ZjJiYTQ5MjZlNjAuODVlMzY0NDA3OTgzNTkxYi44M2RiZGUwOTBjNWY4YTQyCiAgICAgZGM0ZDg2OWU0MDU0MWYyMAogCi1WWE9SUERfMjU2KHJlZykKK1ZQRVJNMkYxMjhfMHgwMChyZWcpCiAgIGJlZm9yZQogICAgIGU3OWQ2MWQwNzc2OWEzN2EuZDliMDYzNWQxNDJiNjI2YS45OWY5ODE2MDY2MDY5M2E2LjA2ZDkwZDg2NzNiZjk4YzQKICAgICBmZjE5NmIwYjRkMmQ1M2ZiLmUyNDY0ZTM3M2ZkYWFkZTYuYmZmNWQ0YTliOWExMDY3ZS43ZmIxMThmNDQ3ZWYwNmM0CkBAIC0xODU1NSwxMiArMTg1NTUsMTIgQEAKICAgICBjYmJmZmU0YzQzZWIyNzI0LmQ4YjgzNGI3N2M5NzFiMTIuZGNlY2JmMjQ3ZjdkYzU5My5jZDM3NDZmOGViNWM1ZTc2CiAgICAgNWE3YzYwNjZmNGIxYzA4MgogICBhZnRlcgotICAgIDdkMTJjYWIwMTAwNDM4YWIuMGNlOTViNmI5MTk1YWY1Yy5kZDc3NDFkODgxNGUwNWVhLmIxODYxYTgyNTZmMDU5ODIKKyAgICBiZmY1ZDRhOWI5YTEwNjdlLjdmYjExOGY0NDdlZjA2YzQuYmZmNWQ0YTliOWExMDY3ZS43ZmIxMThmNDQ3ZWYwNmM0CiAgICAgZmYxOTZiMGI0ZDJkNTNmYi5lMjQ2NGUzNzNmZGFhZGU2LmJmZjVkNGE5YjlhMTA2N2UuN2ZiMTE4ZjQ0N2VmMDZjNAogICAgIDgyMGJhMWJiNWQyOTZiNTAuZWVhZjE1NWNhZTRmMDJiYS42MjgyOTU3MTM4ZWYwMzk0LmNlMzcwMjc2MTExZjVmNDYKICAgICBjYmJmZmU0YzQzZWIyNzI0LmQ4YjgzNGI3N2M5NzFiMTIuZGNlY2JmMjQ3ZjdkYzU5My5jZDM3NDZmOGViNWM1ZTc2CiAgICAgNWE3YzYwNjZmNGIxYzA4MgotVlhPUlBEXzI1NihtZW0pCitWUEVSTTJGMTI4XzB4MDAobWVtKQogICBiZWZvcmUKICAgICA0ZmQ0Y2NhYzQ2MmE0MTk0LjM1ODM3ZTJhOWNmZWMzMjQuN2UyZDI4MzNjNmJjYjUxYi44YTdmNGUyZTJiZDY4OTI4CiAgICAgOGEwOTA3YjdmZGQ0OWNkOC4xZWEyMWRjMTAzZWY3YWZjLmJhZGE2Y2JlYTdjZDhiMDEuYzg4NjNlZmNkODg2OGJmZgpAQCAtMTg1NzAsMTEgKzE4NTcwLDExIEBACiAgIGFmdGVyCiAgICAgNGZkNGNjYWM0NjJhNDE5NC4zNTgzN2UyYTljZmVjMzI0LjdlMmQyODMzYzZiY2I1MWIuOGE3ZjRlMmUyYmQ2ODkyOAogICAgIDhhMDkwN2I3ZmRkNDljZDguMWVhMjFkYzEwM2VmN2FmYy5iYWRhNmNiZWE3Y2Q4YjAxLmM4ODYzZWZjZDg4NjhiZmYKLSAgICBjNWRkY2IxYmJiZmVkZDRjLjJiMjE2M2ViOWYxMWI5ZDguYzRmNzQ0OGQ2MTcxM2UxYS40MmY5NzBkMmYzNTAwMmQ3CisgICAgYmFkYTZjYmVhN2NkOGIwMS5jODg2M2VmY2Q4ODY4YmZmLmJhZGE2Y2JlYTdjZDhiMDEuYzg4NjNlZmNkODg2OGJmZgogICAgIDNkM2RkNmM4MGNlOWQzYTkuZDkyMGE5Y2I2ZDk4MmJlMi42ODBiZDRhZTlmZGNkZjEyLjY0MjQzMjhmYTMxZDM4MjAKICAgICA3YTUyMmUyZWY5MWI1YmMzCiAKLVZYT1JQRF8yNTYocmVnKQorVlBFUk0yRjEyOF8weDAwKHJlZykKICAgYmVmb3JlCiAgICAgOTAyNjdiM2ZiZmExYWI1OC42ZmQzNjNhNjljNmMyNzhkLjYzMTc4ZTE1YTg2OTlkNDkuOTEyN2YxZWJlZmYzZDM5NQogICAgIDAyZTkxNTMwOTIzYTY2OGEuNTU3OGFmZjkwMTRmNDU1NC5kYzk5ODNjOTYxNDcxYjM3LmMyYWI0ZWU3NDYyNGY1YTUKQEAgLTE4NTgyLDEyICsxODU4MiwxMiBAQAogICAgIDZhNzQyMTVmY2RkNzA3NzguYjExYjcwYWJiYjY2ZDIzOS4wNzZkODkxYmJmNWEyYjVhLmE3MWJiOGM3N2EwNmFlMWIKICAgICAxNDlmYmQ4NThmY2ZiZGQ5CiAgIGFmdGVyCi0gICAgMmUwM2VjNWM5ZjQ5YTA4Yy45OThlOWI1NTU2ZDFhZjdkLjQyNjgwMTliNTRmOWZhNmYuMTdjODI5NmI4NjU4MGFjYgorICAgIGRjOTk4M2M5NjE0NzFiMzcuYzJhYjRlZTc0NjI0ZjVhNS5kYzk5ODNjOTYxNDcxYjM3LmMyYWI0ZWU3NDYyNGY1YTUKICAgICAwMmU5MTUzMDkyM2E2NjhhLjU1NzhhZmY5MDE0ZjQ1NTQuZGM5OTgzYzk2MTQ3MWIzNy5jMmFiNGVlNzQ2MjRmNWE1CiAgICAgMmNlYWY5NmMwZDczYzYwNi5jY2Y2MzRhYzU3OWVlYTI5LjllZjE4MjUyMzViZWUxNTguZDU2MzY3OGNjMDdjZmY2ZQogICAgIDZhNzQyMTVmY2RkNzA3NzguYjExYjcwYWJiYjY2ZDIzOS4wNzZkODkxYmJmNWEyYjVhLmE3MWJiOGM3N2EwNmFlMWIKICAgICAxNDlmYmQ4NThmY2ZiZGQ5Ci1WWE9SUERfMjU2KG1lbSkKK1ZQRVJNMkYxMjhfMHgwMChtZW0pCiAgIGJlZm9yZQogICAgIGY5YmFmM2IwMWNlMmVhZDQuMThkMjhiNzQ2ZGYyNjc4Yi5kZWIxZGVlMjQ5YjJiOGIwLjcxNTg5MzkyOWJhODM0ZTcKICAgICAzMDM5ZDUzNjNjNGJlZjM3LjkxNTEzMzFhOGE1MDIwZWMuMzA4NWZiM2QxYzhmNTliOS4zOWZkOWMyMjY2MzQzOWFiCkBAIC0xODU5NywxMSArMTg1OTcsMTEgQEAKICAgYWZ0ZXIKICAgICBmOWJhZjNiMDFjZTJlYWQ0LjE4ZDI4Yjc0NmRmMjY3OGIuZGViMWRlZTI0OWIyYjhiMC43MTU4OTM5MjliYTgzNGU3CiAgICAgMzAzOWQ1MzYzYzRiZWYzNy45MTUxMzMxYThhNTAyMGVjLjMwODVmYjNkMWM4ZjU5YjkuMzlmZDljMjI2NjM0MzlhYgotICAgIGM5ODMyNjg2MjBhOTA1ZTMuODk4M2I4NmVlN2EyNDc2Ny5lZTM0MjVkZjU1M2RlMTA5LjQ4YTUwZmIwZmQ5YzBkNGMKKyAgICAzMDg1ZmIzZDFjOGY1OWI5LjM5ZmQ5YzIyNjYzNDM5YWIuMzA4NWZiM2QxYzhmNTliOS4zOWZkOWMyMjY2MzQzOWFiCiAgICAgMDc5NDhkMDBhNzUwNzNlNi41OWUyMjljMWE5MDc5MDQ2LmIzMTYyZTEwMDIyOWJjMzQuNTRhODliM2UzODMyMjY4YgogICAgIDVlNDY4YWExNzZiZTg2ZmUKIAotVlhPUlBEXzI1NihyZWcpCitWUEVSTTJGMTI4XzB4MDAocmVnKQogICBiZWZvcmUKICAgICAzNmNmNjhjZDEzYjdkMTU5LjVmMDc1YzFjMmEwNTZhOGIuNWY4YzZmOWJlMzc4YmU5OC45YzZiM2Q1ZjRlZmZmNWZkCiAgICAgMzg4ZTMxMmZhYmE5NDU0Ny43YTBkYzY0MmIwM2YyYTQ5LmEwODdlM2I1MGE1YzM2ZTcuMWEyZmVhODM0Zjk0ZDkwOApAQCAtMTg2MDksMTIgKzE4NjA5LDEyIEBACiAgICAgMmJlMjc1NDEzOWE5OTM4Zi42OTA2NjA1YzM3NzdmNGJkLjQ4OWY0MzU1OGRhZGY0MmUuNDUyZjBmZjZlMTMxOTI5NwogICAgIGFhMDQ3ZTFlYWE1MGRlNzIKICAgYWZ0ZXIKLSAgICBmODVmZDMxZTcyODk1OTMyLjRlNzk4ZjFjZTYzMzQ1MDIuZGE5OTYyY2NiMzYzMDIwNy4xMzAzNWJlNTZlNjNmZDhhCisgICAgYTA4N2UzYjUwYTVjMzZlNy4xYTJmZWE4MzRmOTRkOTA4LmEwODdlM2I1MGE1YzM2ZTcuMWEyZmVhODM0Zjk0ZDkwOAogICAgIDM4OGUzMTJmYWJhOTQ1NDcuN2EwZGM2NDJiMDNmMmE0OS5hMDg3ZTNiNTBhNWMzNmU3LjFhMmZlYTgzNGY5NGQ5MDgKICAgICBjMGQxZTIzMWQ5MjAxYzc1LjM0NzQ0OTVlNTYwYzZmNGIuN2ExZTgxNzliOTNmMzRlMC4wOTJjYjE2NjIxZjcyNDgyCiAgICAgMmJlMjc1NDEzOWE5OTM4Zi42OTA2NjA1YzM3NzdmNGJkLjQ4OWY0MzU1OGRhZGY0MmUuNDUyZjBmZjZlMTMxOTI5NwogICAgIGFhMDQ3ZTFlYWE1MGRlNzIKLVZYT1JQRF8yNTYobWVtKQorVlBFUk0yRjEyOF8weDAwKG1lbSkKICAgYmVmb3JlCiAgICAgMTQ3NjdjY2E5OTYwYzU0MC5kMzBlZThjYTY4Y2ZlNjQwLmY1OTE4ODI5NmY4ZDc2Y2MuNjU1NDI3YjMyMTMzYjE3ZQogICAgIDVmNTM4NWU2Yzk2YjAyMmQuMTVhMTM2MzgwMTFlNTAzNS5iNGRmM2JhZjFiNTliMWE0LjJmOGEyODAxMTE1ZGE4N2IKQEAgLTE4NjI0LDExICsxODYyNCwxMSBAQAogICBhZnRlcgogICAgIDE0NzY3Y2NhOTk2MGM1NDAuZDMwZWU4Y2E2OGNmZTY0MC5mNTkxODgyOTZmOGQ3NmNjLjY1NTQyN2IzMjEzM2IxN2UKICAgICA1ZjUzODVlNmM5NmIwMjJkLjE1YTEzNjM4MDExZTUwMzUuYjRkZjNiYWYxYjU5YjFhNC4yZjhhMjgwMTExNWRhODdiCi0gICAgNGIyNWY5MmM1MDBiYzc2ZC5jNmFmZGVmMjY5ZDFiNjc1LjQxNGViMzg2NzRkNGM3NjguNGFkZTBmYjIzMDZlMTkwNQorICAgIGI0ZGYzYmFmMWI1OWIxYTQuMmY4YTI4MDExMTVkYTg3Yi5iNGRmM2JhZjFiNTliMWE0LjJmOGEyODAxMTE1ZGE4N2IKICAgICAwODc5YTQxZTVlYTc3MjEyLmQ3MmI1NDczZTM2OTVjOTkuM2JmNjM3OWEzZTQ0NDE1ZC4zNmE4NzExYTc4YzkzMzJmCiAgICAgMmIyOWIyYmQyNjI0M2YzZAogCi1WQlJPQURDQVNUU0RfMjU2KHJlZykKK1ZQRVJNMkYxMjhfMHhGRihyZWcpCiAgIGJlZm9yZQogICAgIDNkNWEwMGZmYTA1Mzc1YTkuMWU1YmIzMTJmYmYwMWM2Mi4wZmJiMWIxODY0N2Q3NTYxLmJiNTg3OGQ3ZWM3YjBlOTcKICAgICBjNjg5NTc0ZDgzZTExMTFmLjg1ZDdiYzI3NDk2NTBjODEuNTFlMWFlNTJiZmU5OTYxYy5kZGFkMzQ3ZTdlOTg4MzQ5CkBAIC0xODYzNiwxMiArMTg2MzYsMTIgQEAKICAgICBiMTBiMTBiOGYyNGI2OWQ2LmI1Y2RhYzYwNmEwNGIxZGIuNjIyMjI2MzY3NGZmZTAxZC43YzY0MTJiYWJjYjY1OWM3CiAgICAgYjA1ZDJiMjdhMWNlMzFlYgogICBhZnRlcgotICAgIDNkNWEwMGZmYTA1Mzc1YTkuMWU1YmIzMTJmYmYwMWM2Mi4wZmJiMWIxODY0N2Q3NTYxLmJiNTg3OGQ3ZWM3YjBlOTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgYzY4OTU3NGQ4M2UxMTExZi44NWQ3YmMyNzQ5NjUwYzgxLjUxZTFhZTUyYmZlOTk2MWMuZGRhZDM0N2U3ZTk4ODM0OQogICAgIDIzMDBiMzExNmE1YTRlNGEuMThiOTNiNDc2NTEyMDA5Yi5mOGVhMDg4ZDkwM2JmYjc3LjdmYzNlOTdiMTBhODVlYTAKICAgICBiMTBiMTBiOGYyNGI2OWQ2LmI1Y2RhYzYwNmEwNGIxZGIuNjIyMjI2MzY3NGZmZTAxZC43YzY0MTJiYWJjYjY1OWM3CiAgICAgYjA1ZDJiMjdhMWNlMzFlYgotVkJST0FEQ0FTVFNEXzI1NihtZW0pCitWUEVSTTJGMTI4XzB4RkYobWVtKQogICBiZWZvcmUKICAgICBmNjdhYjBhZWQ4ZmRhMTM4LmNhZjg2YmFmYjYzZjllNzEuMzdkZThjNWM3NDQ2ZGU2ZS5lYWQ1MDJiNzA3YzA4MGJiCiAgICAgMmM4NjFlM2I4MDRlNjdkOS5jYjEyYmY2MTUzYzIyOGM0Ljc5Yjk1NjI5YTBlNTQyN2YuZWM0ZjlhN2VlNDBhMTlmZApAQCAtMTg2NTAsMTIgKzE4NjUwLDEyIEBACiAgICAgNjU1ZDlkYTg1Mjk4MDc0ZgogICBhZnRlcgogICAgIGY2N2FiMGFlZDhmZGExMzguY2FmODZiYWZiNjNmOWU3MS4zN2RlOGM1Yzc0NDZkZTZlLmVhZDUwMmI3MDdjMDgwYmIKLSAgICBlYWQ1MDJiNzA3YzA4MGJiLmVhZDUwMmI3MDdjMDgwYmIuZWFkNTAyYjcwN2MwODBiYi5lYWQ1MDJiNzA3YzA4MGJiCi0gICAgMmM0ZmYwYmJiMmNlM2RmYi4xMWE0MDgzOTY0NjE0NDdlLjU5MmE4NmIyMGFlYjk4M2IuYzRkYmU5ZjVhNzY5ZTQ4ZQorICAgIDJjODYxZTNiODA0ZTY3ZDkuY2IxMmJmNjE1M2MyMjhjNC43OWI5NTYyOWEwZTU0MjdmLmVjNGY5YTdlZTQwYTE5ZmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgZDQ5ZmEyMTg4ZDg3ZGZjOS5mNmZjNDJhNTg2YTcyZTQ5LmIyZmQ5OWUzY2Q2NjlkY2QuY2RjN2ViOGFlZDZhMjAxYQogICAgIDY1NWQ5ZGE4NTI5ODA3NGYKIAotVkJST0FEQ0FTVFNEXzI1NihyZWcpCitWUEVSTTJGMTI4XzB4RkYocmVnKQogICBiZWZvcmUKICAgICBlN2VhZmFiYjcxODBkNmQ3LmZmNDRiMDQwMmE4NzBiNzAuZDc2NDZhMTA1NDIwMjJkMi41ZmZlMDlhODA1NjIwYzYyCiAgICAgYWViYWZkMmZlNmFkYzk1ZS44ODA4OTYxZGE3ZGE3YjFiLjEwMjk3YmU2NmI1OTViYzQuM2VmOTU0ZWRjZmVhYTIyNgpAQCAtMTg2NjMsMTIgKzE4NjYzLDEyIEBACiAgICAgODA1MmViZWE0NDA3MDkxYy4yODFmZGNhYmIwYTYxOTMwLmZhZjk0ODgzZTEzOThmOTUuZmUwYzY5YTc4N2NlMzNlOQogICAgIDk3YmMyYWY1YWU0M2E2NDEKICAgYWZ0ZXIKLSAgICBlN2VhZmFiYjcxODBkNmQ3LmZmNDRiMDQwMmE4NzBiNzAuZDc2NDZhMTA1NDIwMjJkMi41ZmZlMDlhODA1NjIwYzYyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAogICAgIGFlYmFmZDJmZTZhZGM5NWUuODgwODk2MWRhN2RhN2IxYi4xMDI5N2JlNjZiNTk1YmM0LjNlZjk1NGVkY2ZlYWEyMjYKICAgICAxODE4YTQ3MDRlYWIxYjkxLjRkYjhkMTlkMjA4YmVjZjcuZmQ5NzcxOTM2NmRkMTZjYy4yOWI5ZjU5ZTQ2MGExYjQ0CiAgICAgODA1MmViZWE0NDA3MDkxYy4yODFmZGNhYmIwYTYxOTMwLmZhZjk0ODgzZTEzOThmOTUuZmUwYzY5YTc4N2NlMzNlOQogICAgIDk3YmMyYWY1YWU0M2E2NDEKLVZCUk9BRENBU1RTRF8yNTYobWVtKQorVlBFUk0yRjEyOF8weEZGKG1lbSkKICAgYmVmb3JlCiAgICAgZDI5NmI2NzJkNTc0MmY3Ny40MWIzY2MwYTY1NGNjZmFhLmY2MGIzMzMzNzMzN2MwZjEuNjM5ZGZjMjM3OWY3MDJjYwogICAgIDg5NjY4ODBjMWE2ZDhiYjguYjk4NjQ1M2E0YzA2YTllOC45NDQ2NTIyMTg2NGI5YjY3Ljk0Y2Q4YWRkY2FhNWFhMWQKQEAgLTE4Njc3LDEyICsxODY3NywxMiBAQAogICAgIDZmYTMyMmU3MjZjNDNkNjAKICAgYWZ0ZXIKICAgICBkMjk2YjY3MmQ1NzQyZjc3LjQxYjNjYzBhNjU0Y2NmYWEuZjYwYjMzMzM3MzM3YzBmMS42MzlkZmMyMzc5ZjcwMmNjCi0gICAgNjM5ZGZjMjM3OWY3MDJjYy42MzlkZmMyMzc5ZjcwMmNjLjYzOWRmYzIzNzlmNzAyY2MuNjM5ZGZjMjM3OWY3MDJjYwotICAgIDk5ZjcxY2FlOTkzYjc1MmYuNDIxODUxZTg5NmMyZDI4Mi5kYzllYjY2MTA1ZWQ2NmJlLmU5ZDZlZDFmNmZjZmM0MzMKKyAgICA4OTY2ODgwYzFhNmQ4YmI4LmI5ODY0NTNhNGMwNmE5ZTguOTQ0NjUyMjE4NjRiOWI2Ny45NGNkOGFkZGNhYTVhYTFkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAogICAgIGRmMTdlZTQzNmRlOWFhMDkuM2FiNWVjN2VkZTBhODcyMy5hY2RkZDlkZjBiMmFkZjIxLmJlMDQyMTUzMDQwMDhiYmIKICAgICA2ZmEzMjJlNzI2YzQzZDYwCiAKLVZCUk9BRENBU1RTRF8yNTYocmVnKQorVlBFUk0yRjEyOF8weEZGKHJlZykKICAgYmVmb3JlCiAgICAgNThmZmVkNDY3MWE3MTRjZi4zNTkwN2JiOWIzODRlNzcxLmZiYTkxMzZhYzE2ZDA0NzcuZGVkMDM5ODdiNDBjYzBiYwogICAgIGQ1NjM3ZGRiN2YzNjRkYjMuNzgzMDNlZmI4NjE3ZTU5NC5lMjNmYzAxN2RhNzQ4NDJjLjRmNDI1MjQ2MWRhMmM2YmQKQEAgLTE4NjkwLDEyICsxODY5MCwxMiBAQAogICAgIGZiNzdkYzVjNWI4NmQzOGQuMzYxMDU2OTM0NTU2MWJiYS45Mzg1YTE2NDFmYTQ4MDYzLjVmZDg5YmI1OWQxMzMwOWIKICAgICBiNTkyYzQzZWVkMDcwY2QxCiAgIGFmdGVyCi0gICAgNThmZmVkNDY3MWE3MTRjZi4zNTkwN2JiOWIzODRlNzcxLmZiYTkxMzZhYzE2ZDA0NzcuZGVkMDM5ODdiNDBjYzBiYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBkNTYzN2RkYjdmMzY0ZGIzLjc4MzAzZWZiODYxN2U1OTQuZTIzZmMwMTdkYTc0ODQyYy40ZjQyNTI0NjFkYTJjNmJkCiAgICAgNDIxZGNlMTRlZmZjMjNiYS44NGMxYjNmNTAzYWU2MzllLjRjYzVmMWYxYzVhZDQ0ZWMuZGIwMTllMDY2MWY1YWM0ZAogICAgIGZiNzdkYzVjNWI4NmQzOGQuMzYxMDU2OTM0NTU2MWJiYS45Mzg1YTE2NDFmYTQ4MDYzLjVmZDg5YmI1OWQxMzMwOWIKICAgICBiNTkyYzQzZWVkMDcwY2QxCi1WQlJPQURDQVNUU0RfMjU2KG1lbSkKK1ZQRVJNMkYxMjhfMHhGRihtZW0pCiAgIGJlZm9yZQogICAgIGJhZmM5NThjNmJkZWZkMWIuNWJiZWEzMjA1ZjVlOTlkYi42OGU4YTNjMjY4MTljYTE1LjE0Y2NjY2RjODRlMzc0M2UKICAgICA0YWUyOGE4ZDM1YTNiZWE3LmMwM2UyMGNhOTgxM2IxNGUuZjcxNzE3NmM4OTA2MmJkYS4yY2U2NmZjNThmZjg1YjI5CkBAIC0xODcwNCwxMiArMTg3MDQsMTIgQEAKICAgICA4ZDFkZmE1ZmFmYWYyMGZlCiAgIGFmdGVyCiAgICAgYmFmYzk1OGM2YmRlZmQxYi41YmJlYTMyMDVmNWU5OWRiLjY4ZThhM2MyNjgxOWNhMTUuMTRjY2NjZGM4NGUzNzQzZQotICAgIDE0Y2NjY2RjODRlMzc0M2UuMTRjY2NjZGM4NGUzNzQzZS4xNGNjY2NkYzg0ZTM3NDNlLjE0Y2NjY2RjODRlMzc0M2UKLSAgICA0MTEwMWYyYzY3NjIwYzllLjg1NDM0ZWM3YTEyZTU2OTIuYmY2NzJkN2VjNDI2ZmMzNi4zNTFmODU4YmRjNmY3MmNmCisgICAgNGFlMjhhOGQzNWEzYmVhNy5jMDNlMjBjYTk4MTNiMTRlLmY3MTcxNzZjODkwNjJiZGEuMmNlNjZmYzU4ZmY4NWIyOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA3YjUyZDE1NTFjMjdhMzJmLjA2MTkyOTgzMTYzZGM2NTQuOWNhNjYxZTUzNDg3Zjc1NS44Y2MzMGE5YjA4ZDJmNWRkCiAgICAgOGQxZGZhNWZhZmFmMjBmZQogCi1WQ01QUERfMTI4XzB4NChyZWcpCitWUEVSTTJGMTI4XzB4MzAocmVnKQogICBiZWZvcmUKICAgICA5NDdiNTE0NTZiOTIyZWRmLmQ0NzMxYmY0NzFmZjNmODQuOWUwYmFkNmI5NWNiM2E0MC42YTllMmY4YmY1MzRkOTYyCiAgICAgZmQyNzBjYjdkYjA2NWMyYy4yODQxNzlmNjgxZjY5YmM5LmFiNjZkNmVhYjc2NWYxMDEuMDUxYzE0NWUyNDNhNWQ4YQpAQCAtMTg3MTcsMTIgKzE4NzE3LDEyIEBACiAgICAgNjU5YzliZjQ0MWQxMDdiOC4zMTBmNjJjZjQ0NmQ4NmQ2LjkwODgwOTVjNWFlYTEzYjUuMTJkOTEwMzgzYTdlM2VkOQogICAgIDNjYjExZjE3NTlkNTEzNTkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgMjQ2ZTI2MjM5OTk3ZTU5MC41Mzg2Njg0NTY5MTY3NDJjLmFiNjZkNmVhYjc2NWYxMDEuMDUxYzE0NWUyNDNhNWQ4YQogICAgIGZkMjcwY2I3ZGIwNjVjMmMuMjg0MTc5ZjY4MWY2OWJjOS5hYjY2ZDZlYWI3NjVmMTAxLjA1MWMxNDVlMjQzYTVkOGEKICAgICAyNDZlMjYyMzk5OTdlNTkwLjUzODY2ODQ1NjkxNjc0MmMuODc3N2ExNmIxYTk2MjU0NC40OWVjOGI0OWRjYTQ0MGY4CiAgICAgNjU5YzliZjQ0MWQxMDdiOC4zMTBmNjJjZjQ0NmQ4NmQ2LjkwODgwOTVjNWFlYTEzYjUuMTJkOTEwMzgzYTdlM2VkOQogICAgIDNjYjExZjE3NTlkNTEzNTkKLVZDTVBQRF8xMjhfMHg0KG1lbSkKK1ZQRVJNMkYxMjhfMHgzMChtZW0pCiAgIGJlZm9yZQogICAgIGEzM2UzNGQyNTZiNDdhYTMuMWRmZDY3OTY3MDQxZmM0Zi45ZWE4ZTU3ZTJlMDY4ZGY2LjIxZTUwYTI4MTJlZWY3ZmYKICAgICAyMzRkY2M1NTRjMjczMGU0LmE1ZGQ4Njc1YzE3MjAwMDIuNzYxZDZjNDA0NGVlNDRiNi45NWRjYTAzYmRlMmMwY2NmCkBAIC0xODczMiwxMSArMTg3MzIsMTEgQEAKICAgYWZ0ZXIKICAgICBhMzNlMzRkMjU2YjQ3YWEzLjFkZmQ2Nzk2NzA0MWZjNGYuOWVhOGU1N2UyZTA2OGRmNi4yMWU1MGEyODEyZWVmN2ZmCiAgICAgMjM0ZGNjNTU0YzI3MzBlNC5hNWRkODY3NWMxNzIwMDAyLjc2MWQ2YzQwNDRlZTQ0YjYuOTVkY2EwM2JkZTJjMGNjZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICBhMzNlMzRkMjU2YjQ3YWEzLjFkZmQ2Nzk2NzA0MWZjNGYuNzYxZDZjNDA0NGVlNDRiNi45NWRjYTAzYmRlMmMwY2NmCiAgICAgZGQyMTcyNjQ5NWZiNzlmOS45ZDQ4YWY5YTNiNDgyOTZiLmQ2Y2E3N2E5NjJkOGI0YzcuOWFjNDdkZTYyNDhjYmNhZgogICAgIGUyNGRiYjU2ZDZjNWNmMTcKIAotVkNNUFBEXzEyOF8weDQocmVnKQorVlBFUk0yRjEyOF8weDMwKHJlZykKICAgYmVmb3JlCiAgICAgN2Y5ZjdlYmUwZDZhMDNiNS5kMDdlNzhjNzFmNzM4MzI1LmM0NmNiMGI4OWIwNWM1NzkuMTc5YWYzMjlhM2YzZTY3MQogICAgIGNiMDZjMzg4NjQwNTk1MzUuNGM4ZGYxYTMxM2IwY2NmOS4yZDNmZjRjNDhlYjQ2MTUyLjMzNzY2MzZiN2Y4Y2I4NmIKQEAgLTE4NzQ0LDEyICsxODc0NCwxMiBAQAogICAgIGU0NDNiZmY2ZTM1M2MyODkuNGVlZjI5NzJhOGE2MGE0My4zNTIyMzc1MjljMTU4NzE4LjZiODIwZmU1Nzk2OTJlMDIKICAgICA0MDRhNDRmNmNmYzU0YmY2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIDIzY2U4NDIyNzcyNGMxNDIuMmMxOTU4ZTI4ZGJkMTA5ZS4yZDNmZjRjNDhlYjQ2MTUyLjMzNzY2MzZiN2Y4Y2I4NmIKICAgICBjYjA2YzM4ODY0MDU5NTM1LjRjOGRmMWEzMTNiMGNjZjkuMmQzZmY0YzQ4ZWI0NjE1Mi4zMzc2NjM2YjdmOGNiODZiCiAgICAgMjNjZTg0MjI3NzI0YzE0Mi4yYzE5NThlMjhkYmQxMDllLjM0MGQ3ODI4YjBlMDM4YTMuMDYyYTQzNWIxMmIwZTdlMgogICAgIGU0NDNiZmY2ZTM1M2MyODkuNGVlZjI5NzJhOGE2MGE0My4zNTIyMzc1MjljMTU4NzE4LjZiODIwZmU1Nzk2OTJlMDIKICAgICA0MDRhNDRmNmNmYzU0YmY2Ci1WQ01QUERfMTI4XzB4NChtZW0pCitWUEVSTTJGMTI4XzB4MzAobWVtKQogICBiZWZvcmUKICAgICA2MDRkNWM3ODMxZDBmOGViLjY4YjA2ZjcyNDMxY2Q2YjUuOGRkYmUwM2U4MTc4NzcxMi44YmM5MmRhZGVlZGY4YTVjCiAgICAgYTY1OWQ1NTliYTk0ZjEwYy4wYzYyOTEwMTMzMGQzNzczLmM0YTlmOTMyMzIzZTEzMzcuOTQ1MDU2YTQ0M2NiN2QxYgpAQCAtMTg3NTksMTEgKzE4NzU5LDExIEBACiAgIGFmdGVyCiAgICAgNjA0ZDVjNzgzMWQwZjhlYi42OGIwNmY3MjQzMWNkNmI1LjhkZGJlMDNlODE3ODc3MTIuOGJjOTJkYWRlZWRmOGE1YwogICAgIGE2NTlkNTU5YmE5NGYxMGMuMGM2MjkxMDEzMzBkMzc3My5jNGE5ZjkzMjMyM2UxMzM3Ljk0NTA1NmE0NDNjYjdkMWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgNjA0ZDVjNzgzMWQwZjhlYi42OGIwNmY3MjQzMWNkNmI1LmM0YTlmOTMyMzIzZTEzMzcuOTQ1MDU2YTQ0M2NiN2QxYgogICAgIDE4YjdkOGU0YjI3ZGJiODQuMjRjNTE3MDgzNjk1ZDI1NC44ZTFiNDM0MjkzZDdjNzM2LjJjMjkzMjFiNjUzNzIxYmUKICAgICA3MjE0ZGQ3MjY5Y2Y0YmY4CiAKLVZDTVBQRF8xMjhfMHg0KHJlZykKK1ZQRVJNMkYxMjhfMHgzMChyZWcpCiAgIGJlZm9yZQogICAgIGRiMGVhYjE2ZTBiODU0NWUuZmNhMjVhNjc1YWI5MDMzNC41MDBlNzQ1ODgwNDU4NGNmLmQ5NTY2YjM2NzljMjU3NjcKICAgICBjMTYyOTg3NDY1N2Y3OTljLjc2YzUyY2Y3OTlkZjg3YmYuMGRjYzMyNmJjYjRiNzM4Yi44Y2E0ZTUwMmE5ZDIwNjlmCkBAIC0xODc3MSwxMiArMTg3NzEsMTIgQEAKICAgICA3ODRjYzEwOTBiZDQwNzRlLmEwZTJiMGYzNGUxYTM3MWMuYTVkNmMyOGJkMThlZmM3OS45ZWE0YzBkMzU1OGVhZmQzCiAgICAgYjRlZjE5YjAwOTUyMjIyNgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICA4MjVlYTFmNjk1YWZmNjVkLjY0ZWJjYTgyOGNmYjA1NTMuMGRjYzMyNmJjYjRiNzM4Yi44Y2E0ZTUwMmE5ZDIwNjlmCiAgICAgYzE2Mjk4NzQ2NTdmNzk5Yy43NmM1MmNmNzk5ZGY4N2JmLjBkY2MzMjZiY2I0YjczOGIuOGNhNGU1MDJhOWQyMDY5ZgogICAgIDgyNWVhMWY2OTVhZmY2NWQuNjRlYmNhODI4Y2ZiMDU1My5iNTRhNGVhZGIyMzVkZDM1Ljg1Y2YyZDkzM2UxMThmMGEKICAgICA3ODRjYzEwOTBiZDQwNzRlLmEwZTJiMGYzNGUxYTM3MWMuYTVkNmMyOGJkMThlZmM3OS45ZWE0YzBkMzU1OGVhZmQzCiAgICAgYjRlZjE5YjAwOTUyMjIyNgotVkNNUFBEXzEyOF8weDQobWVtKQorVlBFUk0yRjEyOF8weDMwKG1lbSkKICAgYmVmb3JlCiAgICAgYTQ3YmI0MTU3NzZiYTQzMS4wMTc5ZjQxYTY0N2FlNzFiLjA3NzQ1YjM2ZmI0N2Q5NDYuMzliYThjNmZjNWUyMGQwMgogICAgIDQ4MTYwZWVkYmFlNGYwMWQuNzczMTM2OTQzYjJlZDM2Zi43NjZlNDUzOGIwOGZhOWZjLmNkNDNhN2M3MmFiZTRjN2QKQEAgLTE4Nzg2LDExICsxODc4NiwxMSBAQAogICBhZnRlcgogICAgIGE0N2JiNDE1Nzc2YmE0MzEuMDE3OWY0MWE2NDdhZTcxYi4wNzc0NWIzNmZiNDdkOTQ2LjM5YmE4YzZmYzVlMjBkMDIKICAgICA0ODE2MGVlZGJhZTRmMDFkLjc3MzEzNjk0M2IyZWQzNmYuNzY2ZTQ1MzhiMDhmYTlmYy5jZDQzYTdjNzJhYmU0YzdkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIGE0N2JiNDE1Nzc2YmE0MzEuMDE3OWY0MWE2NDdhZTcxYi43NjZlNDUzOGIwOGZhOWZjLmNkNDNhN2M3MmFiZTRjN2QKICAgICAyMGE1ZWJhYjMxMjdkOTRmLjllNzJkODcyZDVlZWJlNWUuZDdjYWNjMjRhMDlkYmViZS42NDc0YzE3ZmI0M2M0MmY3CiAgICAgMjBiM2I4YjgxMmY1NzI0ZgogCi1WQ1ZURFEyUERfMTI4KHJlZykKK1ZQRVJNMkYxMjhfMHgyMShyZWcpCiAgIGJlZm9yZQogICAgIDRjYzhmMDE0NTA2N2JmNDguMGIzMTY3Njg5YzBhZWRlYi4wNjkyMzBhZmNmMTIzNTUxLjgyYzQ1ZmU4MTQ3YjdiMjIKICAgICA0NGZkNjVmZjBiMWI2NzhmLjFiZmI5MTQ5NGQ3Y2JjMWIuY2Q2ZDg3MDViODc0YTg3Yi5hNTU1MjMxYWZlYTQ1NmMyCkBAIC0xODc5OCwxMiArMTg3OTgsMTIgQEAKICAgICAwN2ZhZjczMzY2N2ViMmI1LjFhNzhlMDI4ZjA0MjdiZTEuZTM4NTIzYWNjNjFlNzEyNy5iZTcwMmI3N2FhMDU1MTY5CiAgICAgNmQ5MTY3N2JhNDU1ZTljNwogICBhZnRlcgotICAgIDRjYzhmMDE0NTA2N2JmNDguMGIzMTY3Njg5YzBhZWRlYi4wNjkyMzBhZmNmMTIzNTUxLjgyYzQ1ZmU4MTQ3YjdiMjIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDFiYTRiOTJhNTAwMDAwMC40MWRmNDhjMjcyYzAwMDAwCisgICAgNGQ1MGQ5ZTAyYzllNTM4OS4xYTRiOTJhNTdkMjMwOWNiLjQ0ZmQ2NWZmMGIxYjY3OGYuMWJmYjkxNDk0ZDdjYmMxYgorICAgIDQ0ZmQ2NWZmMGIxYjY3OGYuMWJmYjkxNDk0ZDdjYmMxYi5jZDZkODcwNWI4NzRhODdiLmE1NTUyMzFhZmVhNDU2YzIKICAgICA2NDlmMTNlNWRlOWZhNGNmLjJjY2VlNjNiNjA4YjAyMDkuNGQ1MGQ5ZTAyYzllNTM4OS4xYTRiOTJhNTdkMjMwOWNiCiAgICAgMDdmYWY3MzM2NjdlYjJiNS4xYTc4ZTAyOGYwNDI3YmUxLmUzODUyM2FjYzYxZTcxMjcuYmU3MDJiNzdhYTA1NTE2OQogICAgIDZkOTE2NzdiYTQ1NWU5YzcKLVZDVlREUTJQRF8xMjgobWVtKQorVlBFUk0yRjEyOF8weDIxKG1lbSkKICAgYmVmb3JlCiAgICAgMDM3YWMzOWQ4NDFmOGUxMi44YjVhMGM1MzNlNDVjZmVkLmMxYzNmZGZkMTlhZWUyZDAuZWM1OTVmZDYyMjgwM2YwMAogICAgIDVjZjZiY2M5Njg3MGZjNzUuNGIwYTRlYjIwMzdlMzUyMi5mZTdkYjhhN2Y4ZGFmNDAyLmMyMTc4YmM4ZGQ0ZWY5YzEKQEAgLTE4ODEyLDEyICsxODgxMiwxMiBAQAogICAgIGIwY2M4MjhlNWRjMjA0MjkKICAgYWZ0ZXIKICAgICAwMzdhYzM5ZDg0MWY4ZTEyLjhiNWEwYzUzM2U0NWNmZWQuYzFjM2ZkZmQxOWFlZTJkMC5lYzU5NWZkNjIyODAzZjAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMxYjNhNmEwMmEwMDAwMDAuNDFjMTQwMWY4MDAwMDAwMAotICAgIDU0ZDNjZGViNmM1M2VmMWQuYTM1OGI5YmQ1MGI4MjEwMC5hYjcwOGUxMGE5ZDI2ZGEyLmMyMGRhMmVmOTMxNmRhMTUKKyAgICA1Y2Y2YmNjOTY4NzBmYzc1LjRiMGE0ZWIyMDM3ZTM1MjIuZmU3ZGI4YTdmOGRhZjQwMi5jMjE3OGJjOGRkNGVmOWMxCisgICAgYzFjM2ZkZmQxOWFlZTJkMC5lYzU5NWZkNjIyODAzZjAwLjVjZjZiY2M5Njg3MGZjNzUuNGIwYTRlYjIwMzdlMzUyMgogICAgIGM3ZGI3MmVmYWJkNDIyMzYuZWU4ZTQ5ZGVjMjdjY2UzNS5hNTY5ZjkyNjQ2YTMwOWRkLjQ4ODVhMWI4ZGU2NDFmYTkKICAgICBiMGNjODI4ZTVkYzIwNDI5CiAKLVZDVlREUTJQRF8xMjgocmVnKQorVlBFUk0yRjEyOF8weDIxKHJlZykKICAgYmVmb3JlCiAgICAgNTYyZTQzZGNhYWJmYzU0MC45MWRjMjhjMjQyZmY1MmViLjhhZjlmYjgzZjQ1ODc5NmIuYzgzNDc3ZDRlZTU4ODNkZQogICAgIDk2ZjdkZjEwNjFlNDlkOWIuOGVhMDY5NGU0Y2UxM2I2OS5kMWU1Y2ExNzgyZDc1ZTRlLmVmOWM4MzA2YmJmZDk4ZDIKQEAgLTE4ODI1LDEyICsxODgyNSwxMiBAQAogICAgIDU0ZWU5OWQ3N2ZkYjg1Y2IuOTFhMzgxNDUyYWY4Mjc2ZS5kNDcwYjBiYzI1ZjBjNmNlLmJlNzczNmE2MzU0ODgyNDIKICAgICAxZDgxZDRlYzFhMDdjZjE1CiAgIGFmdGVyCi0gICAgNTYyZTQzZGNhYWJmYzU0MC45MWRjMjhjMjQyZmY1MmViLjhhZjlmYjgzZjQ1ODc5NmIuYzgzNDc3ZDRlZTU4ODNkZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMTllNDE5OTYwMDAwMDAwLmMxY2IzMGZlMGUwMDAwMDAKKyAgICAyMTllYjIwNjA5ODZiOThiLmY4NmY5OWE4Yzk5ZTAzZTQuOTZmN2RmMTA2MWU0OWQ5Yi44ZWEwNjk0ZTRjZTEzYjY5CisgICAgOTZmN2RmMTA2MWU0OWQ5Yi44ZWEwNjk0ZTRjZTEzYjY5LmQxZTVjYTE3ODJkNzVlNGUuZWY5YzgzMDZiYmZkOThkMgogICAgIGNjNzM1Mzk1MWZiZmM5ZTUuOWFmNGIzODFlNTg2OTlkYi4yMTllYjIwNjA5ODZiOThiLmY4NmY5OWE4Yzk5ZTAzZTQKICAgICA1NGVlOTlkNzdmZGI4NWNiLjkxYTM4MTQ1MmFmODI3NmUuZDQ3MGIwYmMyNWYwYzZjZS5iZTc3MzZhNjM1NDg4MjQyCiAgICAgMWQ4MWQ0ZWMxYTA3Y2YxNQotVkNWVERRMlBEXzEyOChtZW0pCitWUEVSTTJGMTI4XzB4MjEobWVtKQogICBiZWZvcmUKICAgICBmMTU5ZjE2Njk0ZTVhNzhjLjhhYjNhZjQyMWRjNDBkZjkuNGY3YjRmODgzNzQ1YTI0ZC40OGE2YmVhNTcxYTFjMGMyCiAgICAgMTZjYjA4MDFjMWYwYzVkMS5jYTEwOTA0Mzk3MDc5YzFhLmFmNDY5YTM1Mjc3OWM1YTYuZDc4ZWRhMmQ4OTI2ZTQxNApAQCAtMTg4MzksMTIgKzE4ODM5LDEyIEBACiAgICAgYzU2MTU1YjhiNTIwYTJmMwogICBhZnRlcgogICAgIGYxNTlmMTY2OTRlNWE3OGMuOGFiM2FmNDIxZGM0MGRmOS40ZjdiNGY4ODM3NDVhMjRkLjQ4YTZiZWE1NzFhMWMwYzIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDFkMjI5YWZhOTQwMDAwMC40MWRjNjg3MDMwODAwMDAwCi0gICAgNjdhMzk2YTdiYTM0ZTYxMC43MDRmMzg0NDg2MmY2ZmRiLjhmZDJkYzM4MTY5ZTRlYTIuZGY3MmZmYzAwYTBhNmQ3MAorICAgIDE2Y2IwODAxYzFmMGM1ZDEuY2ExMDkwNDM5NzA3OWMxYS5hZjQ2OWEzNTI3NzljNWE2LmQ3OGVkYTJkODkyNmU0MTQKKyAgICA0ZjdiNGY4ODM3NDVhMjRkLjQ4YTZiZWE1NzFhMWMwYzIuMTZjYjA4MDFjMWYwYzVkMS5jYTEwOTA0Mzk3MDc5YzFhCiAgICAgYzJhZDE1NDY5ZGJiYzY3Ni5kOGJkYTNiMjg4YzljMmU3LmNhZTk5MzdkMjFjMmY3NzAuYmE5ZjI5Y2I4ZmQ5OTk4MQogICAgIGM1NjE1NWI4YjUyMGEyZjMKIAotVkNWVERRMlBEXzEyOChyZWcpCitWUEVSTTJGMTI4XzB4MjEocmVnKQogICBiZWZvcmUKICAgICA1ZDA0N2RmNTE3NmFjNDc0LjAyYjQwM2M4ODY5MzIxMmYuNWVhNmNlZmEzOTYwZDBlYi4zYzU4M2JmMDYzZjE3ZDNhCiAgICAgZGNkMzlmZWM1MjQzM2RhZC4wMzg1ZGIxYjkwYzhiMzY2LjVlNTViMzg2MzQ4MGQ2OTMuYzBlYjRlN2RmOTM1OWIyYwpAQCAtMTg4NTIsMTIgKzE4ODUyLDEyIEBACiAgICAgMDIyOWJmYmRjMWQ0MWZmZS5iN2I1MzllMTc4NzY2YTAxLjNiMzlhMTFmNzk4Y2I5N2MuNzNhY2E5OTY4ZjMyOTMzYgogICAgIDU4NzJlOWY5YzcwMmUzYWYKICAgYWZ0ZXIKLSAgICA1ZDA0N2RmNTE3NmFjNDc0LjAyYjQwM2M4ODY5MzIxMmYuNWVhNmNlZmEzOTYwZDBlYi4zYzU4M2JmMDYzZjE3ZDNhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxY2EzNmE0ODgwMDAwMDAuYzE3NjNmMDhkMDAwMDAwMAorICAgIDMzMTg1MGM0MTViNTEwOGEuMzQ2ZDQ5MTBmZTljMGY3My5kY2QzOWZlYzUyNDMzZGFkLjAzODVkYjFiOTBjOGIzNjYKKyAgICBkY2QzOWZlYzUyNDMzZGFkLjAzODVkYjFiOTBjOGIzNjYuNWU1NWIzODYzNDgwZDY5My5jMGViNGU3ZGY5MzU5YjJjCiAgICAgOWYxY2I2MGIwMTM4NDc0ZC5hMGVkMTkyYWQ3NjUzNzQ4LjMzMTg1MGM0MTViNTEwOGEuMzQ2ZDQ5MTBmZTljMGY3MwogICAgIDAyMjliZmJkYzFkNDFmZmUuYjdiNTM5ZTE3ODc2NmEwMS4zYjM5YTExZjc5OGNiOTdjLjczYWNhOTk2OGYzMjkzM2IKICAgICA1ODcyZTlmOWM3MDJlM2FmCi1WQ1ZURFEyUERfMTI4KG1lbSkKK1ZQRVJNMkYxMjhfMHgyMShtZW0pCiAgIGJlZm9yZQogICAgIGMxOGQ4NTI3YzMxOGJkZmMuNjI0N2I0NmUyZGEzMDA2Yy4yMmFjYjgyYzhmMDcwN2JjLmQxMDVhMDAzZmM5MDBmMTcKICAgICA4OGM3ZmEwYTllODBkYjRlLjE5YzI5MzhhZTIzMjI4NDUuYmY5ZDExZjczNjI1Y2JhNi41MGM4NGJkYzM5NGU0YzA1CkBAIC0xODg2NiwxMiArMTg4NjYsMTIgQEAKICAgICBlM2QzMjY1ZDY2NTdjOTdjCiAgIGFmdGVyCiAgICAgYzE4ZDg1MjdjMzE4YmRmYy42MjQ3YjQ2ZTJkYTMwMDZjLjIyYWNiODJjOGYwNzA3YmMuZDEwNWEwMDNmYzkwMGYxNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMWM3N2QyZmZlODAwMDAwLmMxOGI3Zjg3NDgwMDAwMDAKLSAgICA4YmVkYzM5MDc0NDdmYWQwLjg0ZTY1NzdkN2IwY2QxMzMuNjg1M2MwMmU4Y2RiNzJlYS4xNmNlOWQxNmNjNTFhY2YyCisgICAgODhjN2ZhMGE5ZTgwZGI0ZS4xOWMyOTM4YWUyMzIyODQ1LmJmOWQxMWY3MzYyNWNiYTYuNTBjODRiZGMzOTRlNGMwNQorICAgIDIyYWNiODJjOGYwNzA3YmMuZDEwNWEwMDNmYzkwMGYxNy44OGM3ZmEwYTllODBkYjRlLjE5YzI5MzhhZTIzMjI4NDUKICAgICBhNGNhNWJhNDYyNzhkNWFlLmZmZmZmY2IzOTRiZDM4ZTIuZmI5YzQxYmVhYjM1YjhiNS43ZTYzOTIxZDUyMjU2ZDhiCiAgICAgZTNkMzI2NWQ2NjU3Yzk3YwogCi1WRElWUERfMTI4KHJlZykKK1ZQRVJNMkYxMjhfMHgxMihyZWcpCiAgIGJlZm9yZQogICAgIGEzNjk1NjQyYTU3MWZkNzAuYjEyYzQxMzI4NDFmMmExNi5lNjU4N2Y5OGNhZDI5OGZmLjUyNDIxMTkxYWY0MDU5MzIKICAgICAxODcyMWMzOWFhMDI0NDE0LjhjZGRlZTI2ZjU0OWIzMzIuOTUzZmRhOTliOWQ2MmUzNi40YjEyYWE5NGI1MDcxMDhlCkBAIC0xODg3OSwxMiArMTg4NzksMTIgQEAKICAgICA5NTBkNWYwOTc4YjJmZjFiLjIwNjA5MWYwMzU1NDUzMzcuYmJlMjBkOWIyZmRjZWM5Zi44ZTVmMmRkYzM1ZmJiMjkyCiAgICAgOTI3NTBkZjdlNzNmMTU5MgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLmNhMjg1NmM2OTUwZDlhNDcKKyAgICAxODcyMWMzOWFhMDI0NDE0LjhjZGRlZTI2ZjU0OWIzMzIuNjhmZTBiMjBmYzU2MzYzMi5jMGQ4OGFiNGQ4OTc5YWY1CiAgICAgMTg3MjFjMzlhYTAyNDQxNC44Y2RkZWUyNmY1NDliMzMyLjk1M2ZkYTk5YjlkNjJlMzYuNGIxMmFhOTRiNTA3MTA4ZQogICAgIGEwM2E3NmFjMTI5M2RjMTQuMTJhYmRmNmNkMTAxMmMyZS42OGZlMGIyMGZjNTYzNjMyLmMwZDg4YWI0ZDg5NzlhZjUKICAgICA5NTBkNWYwOTc4YjJmZjFiLjIwNjA5MWYwMzU1NDUzMzcuYmJlMjBkOWIyZmRjZWM5Zi44ZTVmMmRkYzM1ZmJiMjkyCiAgICAgOTI3NTBkZjdlNzNmMTU5MgotVkRJVlBEXzEyOChtZW0pCitWUEVSTTJGMTI4XzB4MTIobWVtKQogICBiZWZvcmUKICAgICBhNmU0YThmMzBhNmY3ZjIxLjU1MzdkNGJiNzllYmU5ZDUuOTBjOTdmOWYzZDRkZTI3OS5lYTM3ZGQ3NGVmZjY4YjJiCiAgICAgYTc3YTc4YmJiYjk4YWM2YS4zYTA0ZDAyZGIwYzhkOGYwLjNmYjIyNTYzMDNmODk2MWYuNTE0ODc1MTlkODMwNTA4MApAQCAtMTg4OTQsMTEgKzE4ODk0LDExIEBACiAgIGFmdGVyCiAgICAgYTZlNGE4ZjMwYTZmN2YyMS41NTM3ZDRiYjc5ZWJlOWQ1LjkwYzk3ZjlmM2Q0ZGUyNzkuZWEzN2RkNzRlZmY2OGIyYgogICAgIGE3N2E3OGJiYmI5OGFjNmEuM2EwNGQwMmRiMGM4ZDhmMC4zZmIyMjU2MzAzZjg5NjFmLjUxNDg3NTE5ZDgzMDUwODAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWVkNmM1ZDdhZmMxMDgyNy5hNzAwNjVhYWVmNjY0M2EyCisgICAgYTc3YTc4YmJiYjk4YWM2YS4zYTA0ZDAyZGIwYzhkOGYwLjkwYzk3ZjlmM2Q0ZGUyNzkuZWEzN2RkNzRlZmY2OGIyYgogICAgIGUxNDZhZDVmMzYwMzNlZGIuZTdiNjRjMDYzMWEzYjBmMy5jYjMzOGFkZTQwOTU1YzQ5LjM2ZDJmMjc0OTIzMTNjMzcKICAgICA2ZGUzY2UwMjliMTBkYWYwCiAKLVZESVZQRF8xMjgocmVnKQorVlBFUk0yRjEyOF8weDEyKHJlZykKICAgYmVmb3JlCiAgICAgNGNlMDYzMGIzZTNmOGUyNC5kMTE0MDgxNDM4NWQxYjVjLjY2MzNjNjQ0YjRiOTExMzQuNWY2MzQxNmRlZDlmZTYyNQogICAgIDJmMTZhZWZiMTQ0OTk0N2QuMWUzOThhNDQzN2RmYWE0OC43YjgzYjZmNGRkYTQ2Nzg1LmEyNDNhMGMyY2E4Yzg1MTYKQEAgLTE4OTA2LDEyICsxODkwNiwxMiBAQAogICAgIDcwNWM1MzQxY2YyMDg0NGYuM2ZiNGYwYzk5ZDhjZDIwZS5kOGNiZWQ1NTkyMmFkZDA1LmE1NDM0NzZkODEzY2YwZTUKICAgICAxZGZiODc5ZDk1MTgzNTFiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZjAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDJmMTZhZWZiMTQ0OTk0N2QuMWUzOThhNDQzN2RmYWE0OC44MmYyMWE4MDQ4ZjFlYzkxLjcwOWYyNGM4ZjI2N2Y0NDcKICAgICAyZjE2YWVmYjE0NDk5NDdkLjFlMzk4YTQ0MzdkZmFhNDguN2I4M2I2ZjRkZGE0Njc4NS5hMjQzYTBjMmNhOGM4NTE2CiAgICAgNzFkMWFhM2ZiY2JiMjdhNy5hNDdmYWVkYzRmOTVhOWNhLjgyZjIxYTgwNDhmMWVjOTEuNzA5ZjI0YzhmMjY3ZjQ0NwogICAgIDcwNWM1MzQxY2YyMDg0NGYuM2ZiNGYwYzk5ZDhjZDIwZS5kOGNiZWQ1NTkyMmFkZDA1LmE1NDM0NzZkODEzY2YwZTUKICAgICAxZGZiODc5ZDk1MTgzNTFiCi1WRElWUERfMTI4KG1lbSkKK1ZQRVJNMkYxMjhfMHgxMihtZW0pCiAgIGJlZm9yZQogICAgIGI0OTI1ZjQyNDcwNjdmMTYuODcwNWE1NmZlYjA0ZTcyMS5jYmEyY2NmNjNjZDBlMjQxLmQ3NWMyYmUwNTZkZDc1OGMKICAgICA0NmQ2NGI0OWI1MTI4OTAyLjExMTY5ZDMzYWNmNDhiYzguMjQxNmJmNGU0OTZiOTQ4Zi5kY2VmZDA4YjMxOTZmMWQzCkBAIC0xODkyMSwxMSArMTg5MjEsMTEgQEAKICAgYWZ0ZXIKICAgICBiNDkyNWY0MjQ3MDY3ZjE2Ljg3MDVhNTZmZWIwNGU3MjEuY2JhMmNjZjYzY2QwZTI0MS5kNzVjMmJlMDU2ZGQ3NThjCiAgICAgNDZkNjRiNDliNTEyODkwMi4xMTE2OWQzM2FjZjQ4YmM4LjI0MTZiZjRlNDk2Yjk0OGYuZGNlZmQwOGIzMTk2ZjFkMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ODYzNWJkNjk4YTQ1MDQ2LjQ1ODIxMWI1ZGFiZmUyYmUKKyAgICA0NmQ2NGI0OWI1MTI4OTAyLjExMTY5ZDMzYWNmNDhiYzguY2JhMmNjZjYzY2QwZTI0MS5kNzVjMmJlMDU2ZGQ3NThjCiAgICAgY2I5MDUwMmUzNGI1ZDA1Yi5mM2EzNmIzMjhiMjU4YTQ4LmFkYmZkNjM0MWJkYmQxMmIuNjg0ZjQxZjY5YTQ2ODU1MAogICAgIGE3YjMwNDhkNjE1NzE0ZGUKIAotVkRJVlBEXzEyOChyZWcpCitWUEVSTTJGMTI4XzB4MTIocmVnKQogICBiZWZvcmUKICAgICA1YzQ5MWVmNGFkOWQ3N2RiLjc2OWY2MWUzN2M2NTg1MjAuMDFiNzNhNDRlMTdlNWI3OC45NThkZjQ5OTE4YzhkNGQwCiAgICAgZTM1ZjhjOWExZGE0ZWFmNC44YzhhNzZhYmYwNjJlYTg2LmY0NjQ5ZjlkNGIxMzVmMmQuYmExMDE3ZGFmMzNkNjk0MApAQCAtMTg5MzMsMTIgKzE4OTMzLDEyIEBACiAgICAgZDczNzUwNGJkMjI2ZWYyOS42OTIzOWQyMGNiNzliNmU0LmY1YjgxN2Q0Y2QxZmViZGEuMmE2OTYxYTBiMWYwM2MzMAogICAgIDJlZDU3ZmZlY2M0NmYyMDgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmMDAwMDAwMDAwMDAwMC4wMWU3YWZiMWMyNGY3NzQzCisgICAgZTM1ZjhjOWExZGE0ZWFmNC44YzhhNzZhYmYwNjJlYTg2LjI2ZjU5NGE5NjY3MGQwMTUuZjgxNWJkZTNjNzQ2NGRhNwogICAgIGUzNWY4YzlhMWRhNGVhZjQuOGM4YTc2YWJmMDYyZWE4Ni5mNDY0OWY5ZDRiMTM1ZjJkLmJhMTAxN2RhZjMzZDY5NDAKICAgICA5ODQwNDhlODRhZjhhOGQ1LmU5MWQwYjcxYWNiYWJjYjkuMjZmNTk0YTk2NjcwZDAxNS5mODE1YmRlM2M3NDY0ZGE3CiAgICAgZDczNzUwNGJkMjI2ZWYyOS42OTIzOWQyMGNiNzliNmU0LmY1YjgxN2Q0Y2QxZmViZGEuMmE2OTYxYTBiMWYwM2MzMAogICAgIDJlZDU3ZmZlY2M0NmYyMDgKLVZESVZQRF8xMjgobWVtKQorVlBFUk0yRjEyOF8weDEyKG1lbSkKICAgYmVmb3JlCiAgICAgZGYyODkzZTczNTU0MmE1Yi5mYzkxOWYyZjUxYjlmOTlkLmU3NjlhNmE2NjlhOTk2MzQuYmJmNzIzOGExZGFlZWIyOAogICAgIDE5MmQxYTQ5MDcyN2ExNTQuNjM5YTMyMDE2MjNlMDJkYy40MWJiYTRlZWEzNTgxNmQ0LmQ1ZmZiNDM3ZjJhODBlYWMKQEAgLTE4OTQ4LDExICsxODk0OCwxMSBAQAogICBhZnRlcgogICAgIGRmMjg5M2U3MzU1NDJhNWIuZmM5MTlmMmY1MWI5Zjk5ZC5lNzY5YTZhNjY5YTk5NjM0LmJiZjcyMzhhMWRhZWViMjgKICAgICAxOTJkMWE0OTA3MjdhMTU0LjYzOWEzMjAxNjIzZTAyZGMuNDFiYmE0ZWVhMzU4MTZkNC5kNWZmYjQzN2YyYTgwZWFjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjlhNDEzZTRhZTJiN2VkODEuNTlmNWVjMzBiOTM5YTZlNAorICAgIDE5MmQxYTQ5MDcyN2ExNTQuNjM5YTMyMDE2MjNlMDJkYy5lNzY5YTZhNjY5YTk5NjM0LmJiZjcyMzhhMWRhZWViMjgKICAgICA5NzdiNmQyNDU3NGEzYmVhLjY2ZTkxMDFiYWM0YjA1NmQuZjViMzZkNzU1OTYyZThiNi43NjlhNTYyNzk4MGZhODA1CiAgICAgYjRjNDVmNDJhMTkzOTczMgogCi1WQU5EUERfMjU2KHJlZykKK1ZQRVJNMkYxMjhfMHgwMyhyZWcpCiAgIGJlZm9yZQogICAgIGI2ZThkZDA0YTBiMzk4NDQuOTQ1ZTMyNzYwZWIxZDZkZi5iYmM2NTQzYjFjZWI3NjE4LjA4ZjEyZjhiMGRkNGIzNTAKICAgICBkOTUwY2RkOTJlZmFlN2U4Ljg5MjE1YWYwOWUwZGEwMmIuYzI4MmNiZjk4ZmFkZDYzZC42NjZiZDYxM2NkZjQwZWViCkBAIC0xODk2MCwxMiArMTg5NjAsMTIgQEAKICAgICBlZDFmZWY2YzZkMmU1ZTk1LmNmN2ZiZjBjYmFkMmIwNzUuNTVjODQzZmNlY2M1NTZhYy43MjQxYzAyYWRmNzA2NmQyCiAgICAgZDgzNmZjOTE2OWUzZGI3NwogICBhZnRlcgotICAgIDUxNDAwOTA5MjhmMGMwYzguMDAwMTVhNzAwMjA4MDAyOS5jMjAyNDJjMDgxMGM0MjA5LjYyNjhkNDEyODRjNDA0YTIKKyAgICBjMjgyY2JmOThmYWRkNjNkLjY2NmJkNjEzY2RmNDBlZWIuNzc0OTI5MmRlOWY1YzBjYS41NDkzNWY3ZTIzNmE1NWY5CiAgICAgZDk1MGNkZDkyZWZhZTdlOC44OTIxNWFmMDllMGRhMDJiLmMyODJjYmY5OGZhZGQ2M2QuNjY2YmQ2MTNjZGY0MGVlYgogICAgIDc3NDkyOTJkZTlmNWMwY2EuNTQ5MzVmN2UyMzZhNTVmOS5kNjZhNzJjMGExMWM2MjhiLmVhZWNkZGZhYjRjZmI1YjIKICAgICBlZDFmZWY2YzZkMmU1ZTk1LmNmN2ZiZjBjYmFkMmIwNzUuNTVjODQzZmNlY2M1NTZhYy43MjQxYzAyYWRmNzA2NmQyCiAgICAgZDgzNmZjOTE2OWUzZGI3NwotVkFORFBEXzI1NihtZW0pCitWUEVSTTJGMTI4XzB4MDMobWVtKQogICBiZWZvcmUKICAgICBmYTk3MGIxYTZlMzVkMWNjLjk3MWUxYTAyNTUzM2ZlZjYuZDhiMGY1ODY3ZTU0NmVjZC45YWU5M2MxOTBmMzNlZTRjCiAgICAgYjIzMDZiYjEwYjcxMDNmZS5kMTkyYTY1YjNlOTBkYzk4LjQ5ZjQ3ZWQ5OGNmOTRiMmEuMDAxODU4ODNhNGYyNjUxOApAQCAtMTg5NzUsMTEgKzE4OTc1LDExIEBACiAgIGFmdGVyCiAgICAgZmE5NzBiMWE2ZTM1ZDFjYy45NzFlMWEwMjU1MzNmZWY2LmQ4YjBmNTg2N2U1NDZlY2QuOWFlOTNjMTkwZjMzZWU0YwogICAgIGIyMzA2YmIxMGI3MTAzZmUuZDE5MmE2NWIzZTkwZGM5OC40OWY0N2VkOThjZjk0YjJhLjAwMTg1ODgzYTRmMjY1MTgKLSAgICBiMjEwMGIxMDBhMzEwMWNjLjkxMTIwMjAyMTQxMGRjOTAuNDhiMDc0ODAwYzUwNGEwOC4wMDA4MTgwMTA0MzI2NDA4CisgICAgNDlmNDdlZDk4Y2Y5NGIyYS4wMDE4NTg4M2E0ZjI2NTE4LmZhOTcwYjFhNmUzNWQxY2MuOTcxZTFhMDI1NTMzZmVmNgogICAgIDU4MzkwY2I5N2NkODBmYTcuNjUwN2QyMDc4MDdmNDE1Mi5kN2UwNzViNmY0ZTE1MGFhLmE0ZDRlYWVmOTU5NGUzZTMKICAgICA5OGY5NThjODI5OTA2MjNhCiAKLVZBTkRQRF8yNTYocmVnKQorVlBFUk0yRjEyOF8weDAzKHJlZykKICAgYmVmb3JlCiAgICAgMWU1Y2Q5OWZhMDBjYjA2ZC5mZDQxNDQwMjg3MWM1Zjc2Ljc3YTI2YTMxMTIyOTNmYzEuYWMyMWRjMTg4NzNiZjEyNAogICAgIDkzNGE2OWRlOTU5NjBhMjcuYWFiMWJkMDk5YTc5ZGRkMi44OWUxNTNjZjE1NWI2YzIyLjU5YTM4NTAzZDJlYWExNTQKQEAgLTE4OTg3LDEyICsxODk4NywxMiBAQAogICAgIGI2ZjZhNzQ5NmIwMmQyZTIuODdmOTVmMDI0N2IzNGVlMC4xZDdkMDkxM2RiODQzZjY4LmFmOWU4ZTIwMDY3NTFjODgKICAgICAwZmFmZTYyYjI2Njk2MGU0CiAgIGFmdGVyCi0gICAgMTEwYTAxZDI4NDkwMDgwNC4yODExYjAwODkwNzk0MWMyLjgxMDAwMjRiMDQwMDAwMjAuMTkyMDg0MDJkMmU4MDE0NAorICAgIDg5ZTE1M2NmMTU1YjZjMjIuNTlhMzg1MDNkMmVhYTE1NC41MTBlMDVmM2E0YjlhYzE0LjM5NTVmMmJhZDFmZDQzZTcKICAgICA5MzRhNjlkZTk1OTYwYTI3LmFhYjFiZDA5OWE3OWRkZDIuODllMTUzY2YxNTViNmMyMi41OWEzODUwM2QyZWFhMTU0CiAgICAgNTEwZTA1ZjNhNGI5YWMxNC4zOTU1ZjJiYWQxZmQ0M2U3LmY3MTA4YTRiMjRhMDAyMjAuYmIzNGVjNjJmM2Y5MWI2NwogICAgIGI2ZjZhNzQ5NmIwMmQyZTIuODdmOTVmMDI0N2IzNGVlMC4xZDdkMDkxM2RiODQzZjY4LmFmOWU4ZTIwMDY3NTFjODgKICAgICAwZmFmZTYyYjI2Njk2MGU0Ci1WQU5EUERfMjU2KG1lbSkKK1ZQRVJNMkYxMjhfMHgwMyhtZW0pCiAgIGJlZm9yZQogICAgIGI4MzE3MDZlNzBlMWEyYTcuMWM0ZDRkNGM4M2ZjYjczYS43MTY5ODFjYjE4YThiOWVhLjU3NzNjZTkyZDc5NDVjYTYKICAgICA4NmYxYThkNmZmZTk5ZmZjLmUwNWVmMjY4OGEzMzk4Y2IuZDE3MGQyMDM2MWU2NDIzMC4wMTNkZDQzNGIzNWI5ODg1CkBAIC0xOTAwMiwxMSArMTkwMDIsMTEgQEAKICAgYWZ0ZXIKICAgICBiODMxNzA2ZTcwZTFhMmE3LjFjNGQ0ZDRjODNmY2I3M2EuNzE2OTgxY2IxOGE4YjllYS41NzczY2U5MmQ3OTQ1Y2E2CiAgICAgODZmMWE4ZDZmZmU5OWZmYy5lMDVlZjI2ODhhMzM5OGNiLmQxNzBkMjAzNjFlNjQyMzAuMDEzZGQ0MzRiMzViOTg4NQotICAgIDgwMzEyMDQ2NzBlMTgyYTQuMDA0YzQwNDg4MjMwOTAwYS41MTYwODAwMzAwYTAwMDIwLjAxMzFjNDEwOTMxMDE4ODQKKyAgICBkMTcwZDIwMzYxZTY0MjMwLjAxM2RkNDM0YjM1Yjk4ODUuYjgzMTcwNmU3MGUxYTJhNy4xYzRkNGQ0YzgzZmNiNzNhCiAgICAgMDE1YTEzYzA1ZGRjYmEwZS5mM2UxMmE5YmQ0OGEzYzQzLjY2NzdmNjZjYzk3Mzk5MjMuMTQ4MTkzOTE3ZDQwNThkOAogICAgIDM2OTI0NTI0YTM3NTU1YTQKIAotVkFORFBEXzI1NihyZWcpCitWUEVSTTJGMTI4XzB4MDMocmVnKQogICBiZWZvcmUKICAgICAzOGE3Mjg4YjE5OTE1ZmMyLjY3OWIzZTFjNjVkZDRmMjMuZjllYmI1OGE0ZWMxNzk4Mi41MzBlYzE3NjIwZDlkZjI3CiAgICAgNzUwZTM4MzA3YzIxYjNkZC42MTRiMDc0YjIyOWY4ZjdiLmNkZTAyZjQzMjc2NmEwYTkuMjc2ZGFiOWU1ZmI5MzIxOApAQCAtMTkwMTQsMTIgKzE5MDE0LDEyIEBACiAgICAgMTVmZWQwZTg3NmNiMjliYy44NDIzNjRkNjJjOTQwMGEyLjUwYmFlMGJmNjQyOGEzNWQuZjRiMmQxZjgwMjE5ZWY2ZgogICAgIGE1MzAwNDAzYTBiMGQwMmUKICAgYWZ0ZXIKLSAgICA0MTAwMzAwMDY0MjA4MTgxLjQwMDAwMjBiMjAwZDA2NDEuY2MwMDA0MDAyMjA0YTAyMS4yNjRkMjI5MDAxMjAwMjAwCisgICAgY2RlMDJmNDMyNzY2YTBhOS4yNzZkYWI5ZTVmYjkzMjE4LjRiMTE3MTgwNjdiMDhkYTEuY2MzNGVhM2JiMDJkMzY0MQogICAgIDc1MGUzODMwN2MyMWIzZGQuNjE0YjA3NGIyMjlmOGY3Yi5jZGUwMmY0MzI3NjZhMGE5LjI3NmRhYjllNWZiOTMyMTgKICAgICA0YjExNzE4MDY3YjA4ZGExLmNjMzRlYTNiYjAyZDM2NDEuY2MwYjk0MzBmYTA0ZjA2My5iZTVmMzJkMGExMjA0ZTIxCiAgICAgMTVmZWQwZTg3NmNiMjliYy44NDIzNjRkNjJjOTQwMGEyLjUwYmFlMGJmNjQyOGEzNWQuZjRiMmQxZjgwMjE5ZWY2ZgogICAgIGE1MzAwNDAzYTBiMGQwMmUKLVZBTkRQRF8yNTYobWVtKQorVlBFUk0yRjEyOF8weDAzKG1lbSkKICAgYmVmb3JlCiAgICAgYWRhNzQ3ZGI5NGYyYWU4OS4yZTFmNGZkMzQ2ZmRjMmQ4LjY1ZTRmMDBhYjFkZmE4YzkuYjYzNzEwNWEwMTVjZjY0MwogICAgIGU4ZTExNzZkZmNlYTQ1YWQuZjRjMWVjYWQ3M2QyOTVhMS40YjQyMGFjMjVjMWFlYmUzLjVhY2YxZTZmNmIyZTI0YzAKQEAgLTE5MDI5LDExICsxOTAyOSwxMSBAQAogICBhZnRlcgogICAgIGFkYTc0N2RiOTRmMmFlODkuMmUxZjRmZDM0NmZkYzJkOC42NWU0ZjAwYWIxZGZhOGM5LmI2MzcxMDVhMDE1Y2Y2NDMKICAgICBlOGUxMTc2ZGZjZWE0NWFkLmY0YzFlY2FkNzNkMjk1YTEuNGI0MjBhYzI1YzFhZWJlMy41YWNmMWU2ZjZiMmUyNGMwCi0gICAgYThhMTA3NDk5NGUyMDQ4OS4yNDAxNGM4MTQyZDA4MDgwLjQxNDAwMDAyMTAxYWE4YzEuMTIwNzEwNGEwMTBjMjQ0MAorICAgIDRiNDIwYWMyNWMxYWViZTMuNWFjZjFlNmY2YjJlMjRjMC5hZGE3NDdkYjk0ZjJhZTg5LjJlMWY0ZmQzNDZmZGMyZDgKICAgICA2N2QwNGI3MDk3MmQ4ZGZlLmYzYjc2ZWRkNTE5N2Q4ZWQuOTUwOWQ4NmU5MjkyMzE5Zi5jYzgwY2FiNDFjZGIwNTMxCiAgICAgNTIzMDVlYmM5YmNkMmY3ZAogCi1WUE1PVlNYQldfMTI4KHJlZykKK1ZQRVJNMkYxMjhfMHg4NShyZWcpCiAgIGJlZm9yZQogICAgIDg2MmNjMmVkNTc4YzI0MTEuNjMxZWE3YjkwMTkwYjY4NC5lNGE0NGEwZDNiOWVjMGM3LmIyMDk4NTNhNTVlNmFjOTkKICAgICBjNGJlZjFiM2VlYTUyMTk4LjAyNjA4MDZjNGZkOTg3ODIuZjI0MTM0ZGJmMjc5ZDJmZi40NGQ4YjAzYmFlNWJiMjM1CkBAIC0xOTA0MSwxMiArMTkwNDEsMTIgQEAKICAgICBjZGQ3YTBhZjFjMTMyMzMxLjk4ZWU5NWMwMDU0ZjE1OTguZDFiZjFmMDQzNGQ4NjMzOC4zNzBkNzA4NzhmZDU0ZDA2CiAgICAgNGYwZGZlYWM1MWYzNWI5MgogICBhZnRlcgotICAgIDg2MmNjMmVkNTc4YzI0MTEuNjMxZWE3YjkwMTkwYjY4NC5lNGE0NGEwZDNiOWVjMGM3LmIyMDk4NTNhNTVlNmFjOTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAyNzAwM2ZmZmQ1MDA1Yi5mZmI4ZmZmY2ZmZmVmZmEwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM0YmVmMWIzZWVhNTIxOTguMDI2MDgwNmM0ZmQ5ODc4MgorICAgIGM0YmVmMWIzZWVhNTIxOTguMDI2MDgwNmM0ZmQ5ODc4Mi5mMjQxMzRkYmYyNzlkMmZmLjQ0ZDhiMDNiYWU1YmIyMzUKICAgICA2ODMzZTc3YWZjYTM2MmJmLjFmNjE1MDc1OWMxNWJlMjUuNzdkYzI3YjQxMWIzNGE0MS4yNzNmZDU1YmI4ZmNmZWEwCiAgICAgY2RkN2EwYWYxYzEzMjMzMS45OGVlOTVjMDA1NGYxNTk4LmQxYmYxZjA0MzRkODYzMzguMzcwZDcwODc4ZmQ1NGQwNgogICAgIDRmMGRmZWFjNTFmMzViOTIKLVZQTU9WU1hCV18xMjgobWVtKQorVlBFUk0yRjEyOF8weDg1KG1lbSkKICAgYmVmb3JlCiAgICAgNGQwYWZhYjUxNzYxZTQ3MC41MWY2MTliY2ViN2Y5ZjliLjQ4ZDNjYTM5YTU5MzQ5MDguNWEzNzE5MzhmODc1NWE5MAogICAgIDBjZDFlMDhkZmYyYmE0Y2UuNGZkYzRkMGYwNDc2MTRhOC4wYWRjNmNjYzk5ZWUxNWExLjZmOGYxMGJhZjgxNDZiZjYKQEAgLTE5MDU1LDEyICsxOTA1NSwxMiBAQAogICAgIDhmZDdiYjU0N2M4MThmMzMKICAgYWZ0ZXIKICAgICA0ZDBhZmFiNTE3NjFlNDcwLjUxZjYxOWJjZWI3ZjlmOWIuNDhkM2NhMzlhNTkzNDkwOC41YTM3MTkzOGY4NzU1YTkwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwNWEwMDM3MDAxOTAwMzguZmZmODAwNzUwMDVhZmY5MAotICAgIDY3MmYyYzIyMjU1ZTU2ZDYuMjNkNDM4MTMwMzgxYmIwNi5iY2Q1ZjU2NWZjNmIzNzhlLjZjMTUwMGY4ZDE0NGQxMTYKKyAgICAwY2QxZTA4ZGZmMmJhNGNlLjRmZGM0ZDBmMDQ3NjE0YTguMGFkYzZjY2M5OWVlMTVhMS42ZjhmMTBiYWY4MTQ2YmY2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBjZDFlMDhkZmYyYmE0Y2UuNGZkYzRkMGYwNDc2MTRhOAogICAgIDNjZWU1YTVmYTMwNWI3YjQuMjkyY2Q2MzM4NTJlZDM1ZS4zOTg5ZTNmMWViMTY2OGZiLmFlMTNlNTVkMWU4ZmM5OWMKICAgICA4ZmQ3YmI1NDdjODE4ZjMzCiAKLVZQTU9WU1hCV18xMjgocmVnKQorVlBFUk0yRjEyOF8weDg1KHJlZykKICAgYmVmb3JlCiAgICAgNmNhYjdlNGI4NmE2NWY4Ny42NWRhZTczMDk4MmM4Mjk1LmJjMmUyM2RkMjYwODk2NWYuNWNjNWIxNWE4MWZjNjcxNgogICAgIGExZGMyYmFkZDk4Yjc0NDYuYzBjMTRlODExZWUwNzRhNS4zYTI3MWM3YzgwOWM0MWIzLjAzNTZkYjhlZGIyOGVmMDkKQEAgLTE5MDY4LDEyICsxOTA2OCwxMiBAQAogICAgIDgzODQzMDYzYzdjMjYwYWYuNzhhYzlhNTQ0ZTFkYmQwMC42MzJlZmY0OWQ2MWYzZTA1LjQ5YTIzNDAzNDk4Mzg4MjgKICAgICBhMGY1NWIxZDk1Y2ExMWFkCiAgIGFmdGVyCi0gICAgNmNhYjdlNGI4NmE2NWY4Ny42NWRhZTczMDk4MmM4Mjk1LmJjMmUyM2RkMjYwODk2NWYuNWNjNWIxNWE4MWZjNjcxNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDA4MDAwNmZmZGUwMDc4LjAwMTRmZmE2ZmZiYjAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTFkYzJiYWRkOThiNzQ0Ni5jMGMxNGU4MTFlZTA3NGE1CisgICAgYTFkYzJiYWRkOThiNzQ0Ni5jMGMxNGU4MTFlZTA3NGE1LjNhMjcxYzdjODA5YzQxYjMuMDM1NmRiOGVkYjI4ZWYwOQogICAgIDhhYjZiZGU3MTBiYjBiMTkuMjc2ZDBiM2U1MTJjNDkwZi5mZTYzYmM3YzMyNzUxMDA2LjA4MDZkZTc4MTRhNmJiMDAKICAgICA4Mzg0MzA2M2M3YzI2MGFmLjc4YWM5YTU0NGUxZGJkMDAuNjMyZWZmNDlkNjFmM2UwNS40OWEyMzQwMzQ5ODM4ODI4CiAgICAgYTBmNTViMWQ5NWNhMTFhZAotVlBNT1ZTWEJXXzEyOChtZW0pCitWUEVSTTJGMTI4XzB4ODUobWVtKQogICBiZWZvcmUKICAgICBlYmNkY2ViMTE0ODgxM2JhLmU5OTQ4MThlOWIyZGFmYjIuOGQ0ODc4YWQzMGJkOGNhNC5jN2QzZTE1MDA4MjYwODVjCiAgICAgMDRmNDBhYWJlM2M4NGI3Yy4xNjMwYWJkNDI4ODczM2NlLjQ0MGUxZjM3MTQxYjcxMjYuODRhMDVmZmI2NTE3YWFiNgpAQCAtMTkwODIsMTIgKzE5MDgyLDEyIEBACiAgICAgNzFlNjUzMTQ5MmRhZjY5MwogICBhZnRlcgogICAgIGViY2RjZWIxMTQ4ODEzYmEuZTk5NDgxOGU5YjJkYWZiMi44ZDQ4NzhhZDMwYmQ4Y2E0LmM3ZDNlMTUwMDgyNjA4NWMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZjN2ZmZDNmZmUxMDA1MC4wMDA4MDAyNjAwMDgwMDVjCi0gICAgYzgzODg5ZjcxZTk2NzIxZS42N2E1YTlhMjA5NWMyOWIxLjc3Y2EwZGRjMTU0MDI5YjIuZjhkZjc0Yjc4ODdkNjBjMAorICAgIDA0ZjQwYWFiZTNjODRiN2MuMTYzMGFiZDQyODg3MzNjZS40NDBlMWYzNzE0MWI3MTI2Ljg0YTA1ZmZiNjUxN2FhYjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDRmNDBhYWJlM2M4NGI3Yy4xNjMwYWJkNDI4ODczM2NlCiAgICAgMTQ2M2M5ODFlMGZlNDdjZC4zODNmNzk2MmRhMzljYzA0LjA0NDhiZDhhNTAzYTZmNzYuN2RkZDFjZjEwZWU1NjUyNgogICAgIDcxZTY1MzE0OTJkYWY2OTMKIAotVlBNT1ZTWEJXXzEyOChyZWcpCitWUEVSTTJGMTI4XzB4ODUocmVnKQogICBiZWZvcmUKICAgICAyZTQ2MTU4YmIwZTg0ZmIzLmMyNDI0NTM2NDUwZDg0YjUuZTQ0YTE3ODIzOGE5NWE3Ni5jNTUzYWMyY2UwMTQwMDliCiAgICAgMTI0ODVmYzQwNTljYWIzNC5hZmExNzkwMDZhY2VlNjAxLmM5MTI3ZDZkYmUzOTBkYjEuOTdiODU0YWRlMmRiOTg1MApAQCAtMTkwOTUsMTIgKzE5MDk1LDEyIEBACiAgICAgYmE2Njc4MjljMzIzNWYwMy5iNzBlZmE4NzYyOTgwODc4LmFiMDg5NjU0YjVlNmQ0MzMuZGZjMWM0MDFhOTVkY2QxNQogICAgIDBjZmM4M2FjYTczMGUxN2QKICAgYWZ0ZXIKLSAgICAyZTQ2MTU4YmIwZTg0ZmIzLmMyNDI0NTM2NDUwZDg0YjUuZTQ0YTE3ODIzOGE5NWE3Ni5jNTUzYWMyY2UwMTQwMDliCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwNTYwMDQ0MDAzM2ZmZmIuMDA3MWZmOTlmZmYzZmZiZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMjQ4NWZjNDA1OWNhYjM0LmFmYTE3OTAwNmFjZWU2MDEKKyAgICAxMjQ4NWZjNDA1OWNhYjM0LmFmYTE3OTAwNmFjZWU2MDEuYzkxMjdkNmRiZTM5MGRiMS45N2I4NTRhZGUyZGI5ODUwCiAgICAgNzczYTJjMmEyZDgxNDdiZi5iODRiZTJjZDZhNGUyOGRlLjQyZTNhOThmMDk3NDIyNjEuNTY0NDMzZmI3MTk5ZjNiZgogICAgIGJhNjY3ODI5YzMyMzVmMDMuYjcwZWZhODc2Mjk4MDg3OC5hYjA4OTY1NGI1ZTZkNDMzLmRmYzFjNDAxYTk1ZGNkMTUKICAgICAwY2ZjODNhY2E3MzBlMTdkCi1WUE1PVlNYQldfMTI4KG1lbSkKK1ZQRVJNMkYxMjhfMHg4NShtZW0pCiAgIGJlZm9yZQogICAgIGJhYzBlZGU2ODcyMGVjMjQuMzgxOTNmMmQ2NDBmMmZhYS44OWI0M2YxYzZkYjg0MGZhLjYwY2U0MDI4NWMxYjYwZDMKICAgICBjNWRiN2M5YzY0MzhhOTM1LjRiOWY3ZGEyYWJkMGYyNjEuMGEwYTJjNzdhOGJhOGQ5MC5iZDgxYTQ3NzlkYTAwMmVkCkBAIC0xOTEwOSwxMiArMTkxMDksMTIgQEAKICAgICA1YjIwZmQ3ZjA4ODNjM2NhCiAgIGFmdGVyCiAgICAgYmFjMGVkZTY4NzIwZWMyNC4zODE5M2YyZDY0MGYyZmFhLjg5YjQzZjFjNmRiODQwZmEuNjBjZTQwMjg1YzFiNjBkMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDYwZmZjZTAwNDAwMDI4LjAwNWMwMDFiMDA2MGZmZDMKLSAgICAwOTE4YWViYjVhODVkNmRkLjUwNDQyZmY1MzRmMmU1ZDMuMTZkYzNkODQyZWFiYWE2Ny4xZDZkYmNhZDExMDBmNjJiCisgICAgYzVkYjdjOWM2NDM4YTkzNS40YjlmN2RhMmFiZDBmMjYxLjBhMGEyYzc3YThiYThkOTAuYmQ4MWE0Nzc5ZGEwMDJlZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNWRiN2M5YzY0MzhhOTM1LjRiOWY3ZGEyYWJkMGYyNjEKICAgICA2MjQyZmYyZDg2MTIyZDQ4LmEzNTQ1MDkwOWMwMjQ0YWQuODlmNmVmMmYxYzk2NTRhYi5kZWRlODYzNjU2Yzg3NzNjCiAgICAgNWIyMGZkN2YwODgzYzNjYQogCi1WUFNVQlVTV18xMjgocmVnKQorVlBFUk0yRjEyOF8weDVBKHJlZykKICAgYmVmb3JlCiAgICAgZWY3ZTFkZjJjMmJkMTM4Mi5hYzI2ZTllMDA0ZWI2YmExLmEwMWJkY2UwN2U4YjRhOWEuM2YyNGJkNjQ4ZDg4NDc4OAogICAgIGY4NDZlM2ZkMjEwMmE2MGYuYzM5MGU5YmVlZTFkNGIxNS5hM2U0ZDA1Mjc3MTkzNTQ3LjE0MzEyMzBmOWU4YzNmMjkKQEAgLTE5MTIyLDEyICsxOTEyMiwxMiBAQAogICAgIGQ1M2Y0ZDg3M2JlMDgwNWIuYzgyNTFkYjA3ZGI5ZTRmYy4yY2FmZGM0ODFjNzZhNDkwLjhiMWNhNzc3MGRmYjJjNjgKICAgICBlNTkxYmUwZGE0N2U5YTVmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc3MzUwMDAwNWFhMzAwMDAuMDAwMDAwMDA5MDkxMTJjMQorICAgIGY4NDZlM2ZkMjEwMmE2MGYuYzM5MGU5YmVlZTFkNGIxNS4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBmODQ2ZTNmZDIxMDJhNjBmLmMzOTBlOWJlZWUxZDRiMTUuYTNlNGQwNTI3NzE5MzU0Ny4xNDMxMjMwZjllOGMzZjI5CiAgICAgZDFjMjRhMGJjMGRmYjYxZS44MzRjN2NiNTYzYjI4YWNmLjA5ZmMyNjUxMjMzOTNmNjAuZTRlYjlkMWM2YWFlZjdiYQogICAgIGQ1M2Y0ZDg3M2JlMDgwNWIuYzgyNTFkYjA3ZGI5ZTRmYy4yY2FmZGM0ODFjNzZhNDkwLjhiMWNhNzc3MGRmYjJjNjgKICAgICBlNTkxYmUwZGE0N2U5YTVmCi1WUFNVQlVTV18xMjgobWVtKQorVlBFUk0yRjEyOF8weDVBKG1lbSkKICAgYmVmb3JlCiAgICAgY2UxNjVkYzg0YjQzZmRjYi42MjA5ZWJkZjJmOGY0MDcxLjZlZTk0ODliNTgzYjE1YzguNjk0OWVkYTUwMTVkYTI4NAogICAgIDIyNzcwMDk2MWQ1NzEwZDcuZDI2YjFkN2UzODdhMzEwYy41MTYyN2E2MjExNDZkODVlLjFjMTY1NWQzNmI3ODczZTcKQEAgLTE5MTM3LDExICsxOTEzNywxMSBAQAogICBhZnRlcgogICAgIGNlMTY1ZGM4NGI0M2ZkY2IuNjIwOWViZGYyZjhmNDA3MS42ZWU5NDg5YjU4M2IxNWM4LjY5NDllZGE1MDE1ZGEyODQKICAgICAyMjc3MDA5NjFkNTcxMGQ3LmQyNmIxZDdlMzg3YTMxMGMuNTE2MjdhNjIxMTQ2ZDg1ZS4xYzE2NTVkMzZiNzg3M2U3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAzMWM3MDAwMGMyOTYuMDAwMDAwMDA2YTFiMDAwMAorICAgIDIyNzcwMDk2MWQ1NzEwZDcuZDI2YjFkN2UzODdhMzEwYy4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA3YmZjNDIxOGIzOTkzODgwLmNmMmIzMTQyZjYzMjk5ODUuM2VhN2RmMzU4YTI1MDc5YS41NDc4MWM1MjQ0ODA4MGFkCiAgICAgOTFhNTcxN2NlYTg0MzQ2NwogCi1WUFNVQlVTV18xMjgocmVnKQorVlBFUk0yRjEyOF8weDVBKHJlZykKICAgYmVmb3JlCiAgICAgYjMzNjBmMjY4N2VkYWM0MS4zN2I4ZGFhM2FmZTBjNjc2LjE0MjAwYjNlZTQxNzg4YjkuZmYwOTBiMTg4NDExZWI5OAogICAgIDE4NzVlZmJkYjY0NzI0ZTYuY2Y4MTY2ZjE0N2E1ZjRiYy5hY2RlNmIzMTU2Njc5ODIzLjZlNTIyZTg3Y2FiNjUxMTAKQEAgLTE5MTQ5LDEyICsxOTE0OSwxMiBAQAogICAgIDE4MmY2OTYzM2MwMDAyNDMuMDA2NDRhODRiOWRhMjJlYi40OWU1YTlhZDM5N2EwZTQ4LmMzYzU0NWJiYjA1Nzk2MjEKICAgICA2MDg3MzI1Njg3NmRlYzEyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYyZjkwMDAwMWNlZDg5ZGIuMDAwMDAwMDAxYTVmMDAwMAorICAgIDE4NzVlZmJkYjY0NzI0ZTYuY2Y4MTY2ZjE0N2E1ZjRiYy4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICAxODc1ZWZiZGI2NDcyNGU2LmNmODE2NmYxNDdhNWY0YmMuYWNkZTZiMzE1NjY3OTgyMy42ZTUyMmU4N2NhYjY1MTEwCiAgICAgMWJhZTBlYWUxNDFmZDcwMy4xZTIxNjJlZTk3ZjQ3ZjdmLmY0YjE0Yjg4ZTlhZjA2NmYuNjY0ZGMyNmY3YTFlZjYyZgogICAgIDE4MmY2OTYzM2MwMDAyNDMuMDA2NDRhODRiOWRhMjJlYi40OWU1YTlhZDM5N2EwZTQ4LmMzYzU0NWJiYjA1Nzk2MjEKICAgICA2MDg3MzI1Njg3NmRlYzEyCi1WUFNVQlVTV18xMjgobWVtKQorVlBFUk0yRjEyOF8weDVBKG1lbSkKICAgYmVmb3JlCiAgICAgMWI2MDA1MmUxYjZiYjUyYy42YjQzZmI0YWNhNzdlMTU0LjUwMTg5YmEwY2M2MjliMmIuMDVjNjgwMGVlMDU0ZWI1YgogICAgIGNlMWEzYjJlODk1ZGFkOWUuNmYzNWMwY2U1YjBmYjBkZi5lYzA4ZDAyZWU5OThhMzZjLjg1OWZjYzE1N2NjYWRiNTMKQEAgLTE5MTY0LDExICsxOTE2NCwxMSBAQAogICBhZnRlcgogICAgIDFiNjAwNTJlMWI2YmI1MmMuNmI0M2ZiNGFjYTc3ZTE1NC41MDE4OWJhMGNjNjI5YjJiLjA1YzY4MDBlZTA1NGViNWIKICAgICBjZTFhM2IyZTg5NWRhZDllLjZmMzVjMGNlNWIwZmIwZGYuZWMwOGQwMmVlOTk4YTM2Yy44NTlmY2MxNTdjY2FkYjUzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjliZjAzNDhlMWQzNjA4NDEuN2ZkOTRjMDcwMDAwMDAwMAorICAgIGNlMWEzYjJlODk1ZGFkOWUuNmYzNWMwY2U1YjBmYjBkZi4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA5MTYzYmM1NjYxNGUxOTM1LmZmZTZkNTVkZjRkMzBjMWEuNzRjYWQ2NTFiNzQwNTg5Zi40MTZkYjRjYTAyYjdkZWE1CiAgICAgMzZmOTQ3NGYyNDQ3NmE1NgogCi1WUFNVQlVTV18xMjgocmVnKQorVlBFUk0yRjEyOF8weDVBKHJlZykKICAgYmVmb3JlCiAgICAgNWVhZDQwMmJhYWEyZjk5ZC41NzhhMDA1NjA0NjUwNWIyLjQxM2QxYjQwMzUxNjEyMjAuMTgzNWEwYmU5ZmNhN2JlOQogICAgIDE2ZDc5YmNiMzE1NWM0MjUuODZjNDk2MmZmMGEwMTAzNi5hNmEzODY3MGU4YWNmNzUyLjc4MGMzZDRkMDMzMTFmZTQKQEAgLTE5MTc2LDEyICsxOTE3NiwxMiBAQAogICAgIGE2Yjk2MzAyYWZlZjA1YWIuOTA5Y2FhMTgxNGI0NzEwMS40NWNiYjM2NzE1ZmE1MWU5LmQ4MmRlNTgxYWNjY2Q4OWMKICAgICA5MDEwZThmZTJhMTc2N2IxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwZDgwMDAwZDJiMmE1NjkuMDAwMDAwMDAwMDAwMDAwMAorICAgIDE2ZDc5YmNiMzE1NWM0MjUuODZjNDk2MmZmMGEwMTAzNi4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICAxNmQ3OWJjYjMxNTVjNDI1Ljg2YzQ5NjJmZjBhMDEwMzYuYTZhMzg2NzBlOGFjZjc1Mi43ODBjM2Q0ZDAzMzExZmU0CiAgICAgYmFjMjUyOTk1NGVhMGE5Yi5mYmRiZmJjYjQxMGNmNWVjLjg5NjMwZjU5YTkxZWY4NWMuNmUxYjJiZWFmZTgzZmZiYwogICAgIGE2Yjk2MzAyYWZlZjA1YWIuOTA5Y2FhMTgxNGI0NzEwMS40NWNiYjM2NzE1ZmE1MWU5LmQ4MmRlNTgxYWNjY2Q4OWMKICAgICA5MDEwZThmZTJhMTc2N2IxCi1WUFNVQlVTV18xMjgobWVtKQorVlBFUk0yRjEyOF8weDVBKG1lbSkKICAgYmVmb3JlCiAgICAgNzQ4ZWFlNGQ5NDcwNjUyNy4zNjA5Yzk3M2RmZjBmMjAwLjIzZDMxZjAwODRhNTQwYTEuMzgyNTZmMDdjN2NiM2VhNgogICAgIDVlNzRiNTVhMDVlMzkxMjkuYzZmZTgwNTY4MDc4MGQ0Ny44ZTRjZDY3MWFlZWExZWY3LmJjYmUzZWEzNWIxZWZhM2YKQEAgLTE5MTkxLDExICsxOTE5MSwxMSBAQAogICBhZnRlcgogICAgIDc0OGVhZTRkOTQ3MDY1MjcuMzYwOWM5NzNkZmYwZjIwMC4yM2QzMWYwMDg0YTU0MGExLjM4MjU2ZjA3YzdjYjNlYTYKICAgICA1ZTc0YjU1YTA1ZTM5MTI5LmM2ZmU4MDU2ODA3ODBkNDcuOGU0Y2Q2NzFhZWVhMWVmNy5iY2JlM2VhMzViMWVmYTNmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZhNzliNzcxMmE0NTAwMDAuODQ5OTAwMDAwMDAwYmI5OQorICAgIDVlNzRiNTVhMDVlMzkxMjkuYzZmZTgwNTY4MDc4MGQ0Ny4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBiN2E4NzM1ZjZkNDk1ZTgzLjU2MDdkMTI3ODI0ZGJiNTkuNjAzMmZiOWI5ZGEwZjU3OC5lYmRkMDY4NDljNzdkMmIyCiAgICAgNGRmYmY2OWY4MDk2NjVlNgogCi1WUFNVQlNXXzEyOChyZWcpCitWUEVSTUlMUERfMjU2XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIGIyODdlYTY4Yjc2NmI4YTQuZGY4ZTIyMmU5YzU0NzczMi4wZWIyNjRlYzFjYjNjNzdkLjdlMzk2MDJjOWIyYTY3ZmEKICAgICA3NGNmZGQ0YWRjNzMwNzliLjdkMGIwMjZjNDNhOWFlMWYuMzUzMzM4ZDQ5NmQwZjA0Mi5lNWIxZjhmNWMzMzhkN2UyCkBAIC0xOTIwMywxMiArMTkyMDMsMTIgQEAKICAgICA4M2JlYjEwYTYyNzY4OGRmLjhlZmU0MmUxNjc2MTYxNWQuNDVlMjk0YmQ5YzYwOGQ2MS5mZTI2YWZkZmZmMTJhNDk3CiAgICAgNjliY2M2ZDg0YmY1NzliYwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZjUxN2ZmZmZhNzA2MmUxLmU3OGI0OTE2YzQyNjMzNGIKLSAgICA3NGNmZGQ0YWRjNzMwNzliLjdkMGIwMjZjNDNhOWFlMWYuMzUzMzM4ZDQ5NmQwZjA0Mi5lNWIxZjhmNWMzMzhkN2UyCisgICAgYjI4N2VhNjhiNzY2YjhhNC5kZjhlMjIyZTljNTQ3NzMyLjBlYjI2NGVjMWNiM2M3N2QuN2UzOTYwMmM5YjJhNjdmYQorICAgIDZlZWQ4ZTA0N2Q1NGJkNzQuNmVlZDhlMDQ3ZDU0YmQ3NC43MTY3M2ZlMjMwZDcwMjVlLjcxNjczZmUyMzBkNzAyNWUKICAgICBmMDFkY2NiMThjNGE4ZTc1LjZlZWQ4ZTA0N2Q1NGJkNzQuMjlkNDQ5NGI4ZDMxNzQ1NS43MTY3M2ZlMjMwZDcwMjVlCiAgICAgODNiZWIxMGE2Mjc2ODhkZi44ZWZlNDJlMTY3NjE2MTVkLjQ1ZTI5NGJkOWM2MDhkNjEuZmUyNmFmZGZmZjEyYTQ5NwogICAgIDY5YmNjNmQ4NGJmNTc5YmMKLVZQU1VCU1dfMTI4KG1lbSkKK1ZQRVJNSUxQRF8yNTZfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgOGNmNGZmYmEzMDhjM2NmNy44N2ZlOGFiZmZhODMzMjg0LmI5MGI5YWYxMWNkZDU1MDguZTVhOTEzOTY2MGVjNzcxMwogICAgIDQ0OTlkNjZmY2JlNGFhNzQuNTkyODUyM2RmMWZlYzgxMS5jYmUwMTMxZmI5ZDQ1NjlmLjY0NzVjNDQyNzQ1ZTcwMTYKQEAgLTE5MjE3LDEyICsxOTIxNywxMiBAQAogICAgIGJiZWRkNjcyYWI5YTAzYzMKICAgYWZ0ZXIKICAgICA4Y2Y0ZmZiYTMwOGMzY2Y3Ljg3ZmU4YWJmZmE4MzMyODQuYjkwYjlhZjExY2RkNTUwOC5lNWE5MTM5NjYwZWM3NzEzCi0gICAgNDQ5OWQ2NmZjYmU0YWE3NC41OTI4NTIzZGYxZmVjODExLmNiZTAxMzFmYjlkNDU2OWYuNjQ3NWM0NDI3NDVlNzAxNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMmQ1NzgyZTljZjcwMTk3LjdlY2NiMGFjMTM3MmY5MDMKKyAgICA4N2ZlOGFiZmZhODMzMjg0Ljg3ZmU4YWJmZmE4MzMyODQuZTVhOTEzOTY2MGVjNzcxMy5iOTBiOWFmMTFjZGQ1NTA4CisgICAgNmQ3OGM3ZTUzNzA5N2Y2MS41NThhMDVmMWUyNzI4NTMxLmEwNDgyODU3NTk1MDIwNGUuMjA5MWEyMmU3NTQ0YjIxOAogICAgIGUzNWQ0ZjA3OTEwNTc3ZTcuZDc2ZTlmNDU2YTZiYTY5MS4xNDExNTQ4NTE5NWY2ZjQyLjc0NGJhOWM0ZmUyOTdhYzIKICAgICBiYmVkZDY3MmFiOWEwM2MzCiAKLVZQU1VCU1dfMTI4KHJlZykKK1ZQRVJNSUxQRF8yNTZfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgNTNjNDI0YTIxOTIyOGFjNS44MjE0ZTljMGY0ZTY0ZDM1LjNiMjIxZGE3MjQ3NjY3ZGQuMDMwNTE2OTYxNDBjZmVhNgogICAgIDk3MWM4ZmMyZTQ0ZDRiNzQuMjY2ODExZmU3ZGI3YmU3NS5kZGYwN2E4MmFkMWUwNGMwLjQ5ZjJlNzc0NjY2NDhhYTgKQEAgLTE5MjMwLDEyICsxOTIzMCwxMiBAQAogICAgIDkyN2ZhYzdmZmViZDZiOGMuZWMxYmZiYjY2ZjViNjA3Yy40YzBjYzE1MjlhNzZjMGZkLjRhZTJhYTRiODI0Mjg5MzAKICAgICBiZDdkOTUxYzgzZTE3MzBmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkxZTQ3ZmZmMTJhODQzYzMuZmYxMDNkMjk3ZmZmMDE3OAotICAgIDk3MWM4ZmMyZTQ0ZDRiNzQuMjY2ODExZmU3ZGI3YmU3NS5kZGYwN2E4MmFkMWUwNGMwLjQ5ZjJlNzc0NjY2NDhhYTgKKyAgICA1M2M0MjRhMjE5MjI4YWM1LjgyMTRlOWMwZjRlNjRkMzUuM2IyMjFkYTcyNDc2NjdkZC4wMzA1MTY5NjE0MGNmZWE2CisgICAgYWIyNzQzYWM0ODg1ODVkMy5hYjI3NDNhYzQ4ODU4NWQzLmMyYTI0NTBjMmM3MmNmNzEuYzJhMjQ1MGMyYzcyY2Y3MQogICAgIGUyNDExMzNkYTdhODgyN2QuYWIyNzQzYWM0ODg1ODVkMy4xYTI1YjI0MmExZjBiOGU3LmMyYTI0NTBjMmM3MmNmNzEKICAgICA5MjdmYWM3ZmZlYmQ2YjhjLmVjMWJmYmI2NmY1YjYwN2MuNGMwY2MxNTI5YTc2YzBmZC40YWUyYWE0YjgyNDI4OTMwCiAgICAgYmQ3ZDk1MWM4M2UxNzMwZgotVlBTVUJTV18xMjgobWVtKQorVlBFUk1JTFBEXzI1Nl8weDAobWVtKQogICBiZWZvcmUKICAgICBmNzQxN2Y2YTRiNWE0YTNhLjAxMjI1N2Y0ODYxYjQxNGMuYzcxMmI2MDgxMDQ1MDk5Yy5kMGYzYTMyMTM2M2U1OGFmCiAgICAgZDRmOWU1MjNmN2I5YzlkZS44Yzc1MGUwOGRiNGI0MTZhLjE3ZDZlZjhmNDc1MDNkNWYuMDEyNDU1MTgxMWQ0YmNhOQpAQCAtMTkyNDQsMTIgKzE5MjQ0LDEyIEBACiAgICAgNDM3MjFlMmMzMGRjMDVmYgogICBhZnRlcgogICAgIGY3NDE3ZjZhNGI1YTRhM2EuMDEyMjU3ZjQ4NjFiNDE0Yy5jNzEyYjYwODEwNDUwOTljLmQwZjNhMzIxMzYzZTU4YWYKLSAgICBkNGY5ZTUyM2Y3YjljOWRlLjhjNzUwZTA4ZGI0YjQxNmEuMTdkNmVmOGY0NzUwM2Q1Zi4wMTI0NTUxODExZDRiY2E5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUwYzQzOTg3MzcwYjMzYzMuMzAzMTdmZmZkYjk2ODAwMAorICAgIDAxMjI1N2Y0ODYxYjQxNGMuMDEyMjU3ZjQ4NjFiNDE0Yy5kMGYzYTMyMTM2M2U1OGFmLmM3MTJiNjA4MTA0NTA5OWMKKyAgICAyZjcwNDQzMmEzMGJhZTI3LjkwYzVjZjI4OThkYmE2OTEuYjgzMzIyMzUyZjg3YjdmMC4zZGVkZDJhNGM2YzMyNzk2CiAgICAgZTY3MzE3ODM2OTViYjM0MS42NzVlOTZiZTU5NTdhZDZlLjg2ZjdjYmU4ZTVmNjM0N2IuZGY5ODE2MzFmMjk3ZDYyMwogICAgIDQzNzIxZTJjMzBkYzA1ZmIKIAotVlBTVUJTV18xMjgocmVnKQorVlBFUk1JTFBEXzI1Nl8weDAocmVnKQogICBiZWZvcmUKICAgICBjNWM3ZTRmZjFjMWZlZmNiLmQ0Y2VkYTAyNjhiNTk1NTYuNmY4YzVkMzdiYjQ5OTNhZC41Y2VkNjc5Mjg0YWE3MDJkCiAgICAgYzFlMjY2MTg1NGViZDEzZS5kNTRkMDk5YmI5MjYwZjk1LjAyOWIyMjAwNTkzZjkxZjkuMThlMDcwMjEyOGFlMjczMgpAQCAtMTkyNTcsMTIgKzE5MjU3LDEyIEBACiAgICAgOTY5ZThiYzgxMTUwNmNjMC43ZmU2OWRjY2M3N2FiZTNjLjNjOGI5MzJlYmI2NWNjNmIuYWVmMWJmOWFmMmQ3ZjVlMwogICAgIDQxYTZmYjVkNGYxNDgzZTgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzYxMDdmZmY3ZmZmYzU4ZS42OWVmN2ZmZjM1ZDczMTRmCi0gICAgYzFlMjY2MTg1NGViZDEzZS5kNTRkMDk5YmI5MjYwZjk1LjAyOWIyMjAwNTkzZjkxZjkuMThlMDcwMjEyOGFlMjczMgorICAgIGM1YzdlNGZmMWMxZmVmY2IuZDRjZWRhMDI2OGI1OTU1Ni42ZjhjNWQzN2JiNDk5M2FkLjVjZWQ2NzkyODRhYTcwMmQKKyAgICBjNGJjMjEzYjdiYjlkZTI4LmM0YmMyMTNiN2JiOWRlMjguOTU5ZDY0N2ZlZTBlMTViNS45NTlkNjQ3ZmVlMGUxNWI1CiAgICAgOTIxMTlmZTE3MWNkZTcwMi5jNGJjMjEzYjdiYjlkZTI4LjdkZDZlMDg0ZDBjNWU2ZmYuOTU5ZDY0N2ZlZTBlMTViNQogICAgIDk2OWU4YmM4MTE1MDZjYzAuN2ZlNjlkY2NjNzdhYmUzYy4zYzhiOTMyZWJiNjVjYzZiLmFlZjFiZjlhZjJkN2Y1ZTMKICAgICA0MWE2ZmI1ZDRmMTQ4M2U4Ci1WUFNVQlNXXzEyOChtZW0pCitWUEVSTUlMUERfMjU2XzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDI5ODg5NmI0MjFkMjdkZWYuMjhkNjI3MzhjZjAwOWUyNy5lMDk4ZjkzYmJjNzY2YmZjLjljMDQzNzZjYjdhZDgwZTgKICAgICA0MTY1MGE4Yjg1MWI5ZDI0LmE0MDU2ZDlkNDg2OWI3ZTAuYzU5ZmIxNzU3M2I4YTE5NS5mNzhlYzlhOTVmMjkzZDIyCkBAIC0xOTI3MSwxMiArMTkyNzEsMTIgQEAKICAgICA4ODhhZTU5MjdhNDcwOWZjCiAgIGFmdGVyCiAgICAgMjk4ODk2YjQyMWQyN2RlZi4yOGQ2MjczOGNmMDA5ZTI3LmUwOThmOTNiYmM3NjZiZmMuOWMwNDM3NmNiN2FkODBlOAotICAgIDQxNjUwYThiODUxYjlkMjQuYTQwNTZkOWQ0ODY5YjdlMC5jNTlmYjE3NTczYjhhMTk1LmY3OGVjOWE5NWYyOTNkMjIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTUwN2I4M2E3ZmZmODAwMC41YjhhOTIzZDdmZmY3ZmZmCisgICAgMjhkNjI3MzhjZjAwOWUyNy4yOGQ2MjczOGNmMDA5ZTI3LjljMDQzNzZjYjdhZDgwZTguZTA5OGY5M2JiYzc2NmJmYworICAgIDY3MDdkNWNmOTZmZWEwYjUuNjU3NzViNjMxODE4ZjM5YS4wOGM1NDE2NTBhNGQxYjMzLmFhNzU0NDUxNGY2MzQxYzcKICAgICA3NTNjNzM2YTcxODQ0MmNjLmM5NzhlY2Y2ZDk5OTkwZmYuODdkNzI2ZjY5ZDNmOTYwMS4xMTA1YTNkMDI0ZTljNjgwCiAgICAgODg4YWU1OTI3YTQ3MDlmYwogCi1WUENNUEVRV18xMjgocmVnKQorVlBFUk1JTFBEXzI1Nl8weEYocmVnKQogICBiZWZvcmUKICAgICA2YjRmMDMwNGVjMDg0NWU1LjQ4Y2U1ZTQ5MzJiYjNlOTUuMmE1NDFkYzIyYTc2YzhiYy4xY2EwZGIxNjQ3OWRjZDJiCiAgICAgMTZhMmZiOTAxN2I4YjdlNy5iZDhhMTQ1OWYzYWU1MjNkLmU2NTZlODM0YTQzZGQ4N2MuYTVlZWRjYjAyNTcwN2RkZgpAQCAtMTkyODQsMTIgKzE5Mjg0LDEyIEBACiAgICAgMzQxZDY2YWEwNTE2MmRlOS5mOWIwY2ViOGViZjlhY2Q5LmRiMDA0MWI2ODliNzZmYjcuZmY0NWIzMDJlYWFhMzg4ZgogICAgIDg4ZTY4MTkzMGEyOGJiZTQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMTZhMmZiOTAxN2I4YjdlNy5iZDhhMTQ1OWYzYWU1MjNkLmU2NTZlODM0YTQzZGQ4N2MuYTVlZWRjYjAyNTcwN2RkZgorICAgIDZiNGYwMzA0ZWMwODQ1ZTUuNDhjZTVlNDkzMmJiM2U5NS4yYTU0MWRjMjJhNzZjOGJjLjFjYTBkYjE2NDc5ZGNkMmIKKyAgICBlNWNkYzhhNDk2ZTM5YmIwLmU1Y2RjOGE0OTZlMzliYjAuNTdjYjRiYjZlNjc5ZmJlYy41N2NiNGJiNmU2NzlmYmVjCiAgICAgZTVjZGM4YTQ5NmUzOWJiMC5hZTNjMTA4NGQzNjkzOGYwLjU3Y2I0YmI2ZTY3OWZiZWMuZmM4YmE1YjA1MmM2NjI0NgogICAgIDM0MWQ2NmFhMDUxNjJkZTkuZjliMGNlYjhlYmY5YWNkOS5kYjAwNDFiNjg5Yjc2ZmI3LmZmNDViMzAyZWFhYTM4OGYKICAgICA4OGU2ODE5MzBhMjhiYmU0Ci1WUENNUEVRV18xMjgobWVtKQorVlBFUk1JTFBEXzI1Nl8weEYobWVtKQogICBiZWZvcmUKICAgICA3NDNiOGI0ZGNkNGRhNjcyLjVmZGVkMTEwMDFkY2E4NDEuNzhiMWNhZTA1OTY5NmIyNS5jYzNmYzY5ZTJjODI2ZThiCiAgICAgOWYxMDRkMWQ1MDI0YjY2NC5jMjVjMDY0MTI1YzI0OTYyLjA4MGM4MWU4MzljNjMxZmYuODhkNGQ2ZGM2ODY2MzQxMQpAQCAtMTkyOTgsMTIgKzE5Mjk4LDEyIEBACiAgICAgMGU5NzIzY2NkNTIzOGY5MwogICBhZnRlcgogICAgIDc0M2I4YjRkY2Q0ZGE2NzIuNWZkZWQxMTAwMWRjYTg0MS43OGIxY2FlMDU5Njk2YjI1LmNjM2ZjNjllMmM4MjZlOGIKLSAgICA5ZjEwNGQxZDUwMjRiNjY0LmMyNWMwNjQxMjVjMjQ5NjIuMDgwYzgxZTgzOWM2MzFmZi44OGQ0ZDZkYzY4NjYzNDExCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDc0M2I4YjRkY2Q0ZGE2NzIuNzQzYjhiNGRjZDRkYTY3Mi43OGIxY2FlMDU5Njk2YjI1LmNjM2ZjNjllMmM4MjZlOGIKKyAgICBlNjMwNDNmMGFmYmFhNmU3LmI5ZTJmZmE4MGU1MjRjZjguODU4ZTZlYmNhNjFiYmE5NC42OTBkNmVkYmRiZjBmZmY3CiAgICAgMjM2OWVhYjAwNDFhMzQyNi5hMGJlYmFiMzU3MWFlZGIwLmNjMDEwZDQ4YmQ3NGMyMTAuY2QzNDg5MDcyMWFiMDllOQogICAgIDBlOTcyM2NjZDUyMzhmOTMKIAotVlBDTVBFUVdfMTI4KHJlZykKK1ZQRVJNSUxQRF8yNTZfMHhGKHJlZykKICAgYmVmb3JlCiAgICAgODk4MDM4OTY5M2U1Y2NhMC4zMzg1YmQ0YjZlNTAxYTRlLmQyM2EzMmNkOWRhNjY3MzYuYjczMmRhNzg5OWRkMDQ5ZQogICAgIDlhM2NjNWQxZjg3Y2ZlYmMuZjI1MTM4YWMwNjY5MTQ4Yi5hZGEzNjQ2MzdiODFmNzM1LjIzZWM1MjM4NTY2MzNkNmIKQEAgLTE5MzExLDEyICsxOTMxMSwxMiBAQAogICAgIGVmNWQzMzRiMjY1YTJjZDUuZWQyOTE3NzAzNjcxMzhmMi5jYjZjZTJhZTcxNTU0ODUxLmVlMzAyZjE5ZTZmNDgzNzAKICAgICAwNTUwOGQxMWYwMTcwODAxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAotICAgIDlhM2NjNWQxZjg3Y2ZlYmMuZjI1MTM4YWMwNjY5MTQ4Yi5hZGEzNjQ2MzdiODFmNzM1LjIzZWM1MjM4NTY2MzNkNmIKKyAgICA4OTgwMzg5NjkzZTVjY2EwLjMzODViZDRiNmU1MDFhNGUuZDIzYTMyY2Q5ZGE2NjczNi5iNzMyZGE3ODk5ZGQwNDllCisgICAgOWUxN2M0ZTlhMDc0NWY5NS45ZTE3YzRlOWEwNzQ1Zjk1LjhjNDU0YWRmOGUzN2Q5NWEuOGM0NTRhZGY4ZTM3ZDk1YQogICAgIDllMTdjNGU5YTA3NDVmOTUuM2M5OWQ3YmZlYjZmZTAwOC44YzQ1NGFkZjhlMzdkOTVhLmVjZmRlZjc0MTExMjI4YTIKICAgICBlZjVkMzM0YjI2NWEyY2Q1LmVkMjkxNzcwMzY3MTM4ZjIuY2I2Y2UyYWU3MTU1NDg1MS5lZTMwMmYxOWU2ZjQ4MzcwCiAgICAgMDU1MDhkMTFmMDE3MDgwMQotVlBDTVBFUVdfMTI4KG1lbSkKK1ZQRVJNSUxQRF8yNTZfMHhGKG1lbSkKICAgYmVmb3JlCiAgICAgMGQyYTg2NGE0Yjg2NzQ4MC5lYTU5MGU2MTI2YjlhMDI4LmUxY2Q3MmFiMDU3OGQ5NzQuYzU2MzI3M2NjMTY1ODFjNQogICAgIGUyOGE5NGFmMTQ0ZTgyMWEuZWI1OTRmOTkzZDFkZjgzYi5mNDUxNjY1Yzc0OTI3ZmJiLmQ4NzgxNmY2MTlmNmMwNjMKQEAgLTE5MzI1LDEyICsxOTMyNSwxMiBAQAogICAgIDM4NWFiMDVkNmMxYWY3ZWQKICAgYWZ0ZXIKICAgICAwZDJhODY0YTRiODY3NDgwLmVhNTkwZTYxMjZiOWEwMjguZTFjZDcyYWIwNTc4ZDk3NC5jNTYzMjczY2MxNjU4MWM1Ci0gICAgZTI4YTk0YWYxNDRlODIxYS5lYjU5NGY5OTNkMWRmODNiLmY0NTE2NjVjNzQ5MjdmYmIuZDg3ODE2ZjYxOWY2YzA2MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwZDJhODY0YTRiODY3NDgwLjBkMmE4NjRhNGI4Njc0ODAuZTFjZDcyYWIwNTc4ZDk3NC5jNTYzMjczY2MxNjU4MWM1CisgICAgNjAzYzM1MmI2NjdhZWZmYS40ZWE3ZjM1ZDA2MTM3MGJhLjAyODA2ZjZmOWVjYmU1ZjMuNWZmNWE5NDcxNjkxNDBkNgogICAgIDYzMGJlNGFjNWUxNjc3NGQuNmY5MGY3MWIxZTI2NDQ1MC5lNzI3MDdkMWEwMmRjODQ3LmI1MjdkZTlhNTNjNDNmY2IKICAgICAzODVhYjA1ZDZjMWFmN2VkCiAKLVZQQ01QRVFXXzEyOChyZWcpCitWUEVSTUlMUERfMjU2XzB4RihyZWcpCiAgIGJlZm9yZQogICAgIDQyZGExYmZiZmUyMGE0ZWEuYzdjNTFkMWQxNzJmZDYzZi5hYTYwNTYzZTIwZTJhZmFhLjdmMTJhYzZjOTVjNmU0ZTQKICAgICAzMWYzMWJlMGE1NjE4NDZiLjY4MzQ1ZDZhYWVkMGM3ZmIuNWI2MzBkMzJhOWQ0ZWU3My5hNjBkZDgyZTk5YTFmNGY1CkBAIC0xOTMzOCwxMiArMTkzMzgsMTIgQEAKICAgICAyYTFmY2MyZjlmYzVjOGFmLmQxNjVkZTQ5ZTRkYjUyODMuOGYzMTZmM2RiZTg4ZDcwNS4xMTYzYmJkMzQxNGZlNDI2CiAgICAgMGQ1NTY4OGYxYjM5M2E5ZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKLSAgICAzMWYzMWJlMGE1NjE4NDZiLjY4MzQ1ZDZhYWVkMGM3ZmIuNWI2MzBkMzJhOWQ0ZWU3My5hNjBkZDgyZTk5YTFmNGY1CisgICAgNDJkYTFiZmJmZTIwYTRlYS5jN2M1MWQxZDE3MmZkNjNmLmFhNjA1NjNlMjBlMmFmYWEuN2YxMmFjNmM5NWM2ZTRlNAorICAgIDVmZjBhZDc4ZmM2OWQxMWYuNWZmMGFkNzhmYzY5ZDExZi5kZWU0MTY2MzU0ODczZDU4LmRlZTQxNjYzNTQ4NzNkNTgKICAgICA1ZmYwYWQ3OGZjNjlkMTFmLjIyMjYxZTgwM2UwNTA3YWUuZGVlNDE2NjM1NDg3M2Q1OC4zOGU0MDkwMWM5Y2JiNmE3CiAgICAgMmExZmNjMmY5ZmM1YzhhZi5kMTY1ZGU0OWU0ZGI1MjgzLjhmMzE2ZjNkYmU4OGQ3MDUuMTE2M2JiZDM0MTRmZTQyNgogICAgIDBkNTU2ODhmMWIzOTNhOWQKLVZQQ01QRVFXXzEyOChtZW0pCitWUEVSTUlMUERfMjU2XzB4RihtZW0pCiAgIGJlZm9yZQogICAgIDA3ODc4ZTIxNzY5Njc2MzguZWNjYTc0NzEyYjAwYTRjYS41MGJlMThiMmJiNWQ2NGE3LmNhOTQxMzJjODI2MmZhMjUKICAgICBkZGM2YTg3NTZjNzE1MjI1LjAyM2VhMWFiM2JhNmEzMWEuN2RmYzQ4YThlMDk3Zjg0Ni5lYjVhZmU5YzNkYTFlMDY0CkBAIC0xOTM1MiwxMiArMTkzNTIsMTIgQEAKICAgICA0YWY2NDMyYzRiMzY4MDk5CiAgIGFmdGVyCiAgICAgMDc4NzhlMjE3Njk2NzYzOC5lY2NhNzQ3MTJiMDBhNGNhLjUwYmUxOGIyYmI1ZDY0YTcuY2E5NDEzMmM4MjYyZmEyNQotICAgIGRkYzZhODc1NmM3MTUyMjUuMDIzZWExYWIzYmE2YTMxYS43ZGZjNDhhOGUwOTdmODQ2LmViNWFmZTljM2RhMWUwNjQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDc4NzhlMjE3Njk2NzYzOC4wNzg3OGUyMTc2OTY3NjM4LjUwYmUxOGIyYmI1ZDY0YTcuY2E5NDEzMmM4MjYyZmEyNQorICAgIDZhZGMzMjc3MTlkNjhiOGUuYzljNzRmNDc2YzQ0ZmY0Yy4zM2VkZWIxNTZlOTZjYjhiLjRlY2YyY2ZhOGFkMWM1NzAKICAgICA4YTk1YTgxMzlhZDJkYzlmLjliYjE3YmIzNTk2NWY0MGIuNGU1YjdjZTc4MTY1OTlhMy40ZjNmOWFiMDA1N2ZlN2YzCiAgICAgNGFmNjQzMmM0YjM2ODA5OQogCi1WUEFEREJfMTI4KHJlZykKK1ZQRVJNSUxQRF8yNTZfMHhBKHJlZykKICAgYmVmb3JlCiAgICAgOWEzZjIzZDlmODgzY2QwZi4xOGJmODczNTBhNzAwMjg1LmQ1NDcyMDU5OWY5NWMwMDQuYTkxNDc3MDkzNjEwMWRiOQogICAgIDlkNjgzNjIyYTdmMTA5MDEuZjIyNTRhY2E4NmJkYjk2Yy5kNGQ3M2FhN2Q5NjE5ZGUyLjIyZTI1ODY2YTlhNDE0ZmEKQEAgLTE5MzY1LDEyICsxOTM2NSwxMiBAQAogICAgIDI4ODVlNjNkN2M2MDQxMDcuZjZkMzZjZjkwZjkwY2FlYi44YzEwYmVlODliZmE3ZDAwLmRhZWZiZDg2MzZiNDRiYWIKICAgICBkMmM3MzkyMDg5NDkwMjc0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM2ODJmZmFmN2RiNTY1MzQuYjY3NGYzNTI5ZWQwNGU4YgotICAgIDlkNjgzNjIyYTdmMTA5MDEuZjIyNTRhY2E4NmJkYjk2Yy5kNGQ3M2FhN2Q5NjE5ZGUyLjIyZTI1ODY2YTlhNDE0ZmEKKyAgICA5YTNmMjNkOWY4ODNjZDBmLjE4YmY4NzM1MGE3MDAyODUuZDU0NzIwNTk5Zjk1YzAwNC5hOTE0NzcwOTM2MTAxZGI5CisgICAgYWViYjc4NzVmNDBjNzExYi5mMjkyNmRiYzI5YzNiZDdmLmYyYWJjNTA4YTQ1NGM4NTIuOTQ5MjliZWNmNTJjM2E5MQogICAgIGFlYmI3ODc1ZjQwYzcxMWIuZjI5MjZkYmMyOWMzYmQ3Zi5mMmFiYzUwOGE0NTRjODUyLjk0OTI5YmVjZjUyYzNhOTEKICAgICAyODg1ZTYzZDdjNjA0MTA3LmY2ZDM2Y2Y5MGY5MGNhZWIuOGMxMGJlZTg5YmZhN2QwMC5kYWVmYmQ4NjM2YjQ0YmFiCiAgICAgZDJjNzM5MjA4OTQ5MDI3NAotVlBBRERCXzEyOChtZW0pCitWUEVSTUlMUERfMjU2XzB4QShtZW0pCiAgIGJlZm9yZQogICAgIDU2ZTQ4YmE3MDlmNjFjMTcuNjkxMjdiZTZkYjdhYjU3NC5kOWI0YzM2YjU2MzA5YmRjLmZlNTIyMGIzNWJlMGY3OTcKICAgICA0NDE0MmYwNWQzYzg1NWMxLmNjYWQzM2RjYWJlNTA4MGMuNzYwMWVmMDAxN2FlZWQ3ZC5hNGJkZTdkNTdmOTE3M2M0CkBAIC0xOTM3OSwxMiArMTkzNzksMTIgQEAKICAgICA2NmVhNzM3ZTVlZTA0YTg0CiAgIGFmdGVyCiAgICAgNTZlNDhiYTcwOWY2MWMxNy42OTEyN2JlNmRiN2FiNTc0LmQ5YjRjMzZiNTYzMDliZGMuZmU1MjIwYjM1YmUwZjc5NwotICAgIDQ0MTQyZjA1ZDNjODU1YzEuY2NhZDMzZGNhYmU1MDgwYy43NjAxZWYwMDE3YWVlZDdkLmE0YmRlN2Q1N2Y5MTczYzQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGZiNWIyNmI2ZGRlODg1OS5hMjBmMDc4OGRhNzE2YTViCisgICAgNTZlNDhiYTcwOWY2MWMxNy42OTEyN2JlNmRiN2FiNTc0LmQ5YjRjMzZiNTYzMDliZGMuZDliNGMzNmI1NjMwOWJkYworICAgIDc2MjFhMjI3MDJjOTY4OWUuYWNhNDBhOGM4YjJlNzg3Yy5hYTg2NmJhMzcwMTY3YmZhLmRhOWQwZmJhYTM5OTJkMzIKICAgICBjOWQ4NWVmYWIzMDgxMmQ5LjY3NDFmZDYwMTRlMDNlNmYuNTIwZmIzNDA3ZDc0MDI4MS5mYzNkOTRjZjY0ODU2MDhlCiAgICAgNjZlYTczN2U1ZWUwNGE4NAogCi1WUEFEREJfMTI4KHJlZykKK1ZQRVJNSUxQRF8yNTZfMHhBKHJlZykKICAgYmVmb3JlCiAgICAgNzRmMWE3MzQyYzM3MjRiZi4xYTA1ZTE2ODAxOGUwZjlmLjU3ZDIwNmM1ZTU4Nzk5OTIuNDg2NzQzYzM1OWQ1M2UzYwogICAgIDgyOWMyYzVlNmExNDJkZWMuNDM3NGE2NWYwOTY5MWIxYi5kYWExMjMyODk3YjBjMzkwLjZhNWI5ODE4MjA0NGViNTcKQEAgLTE5MzkyLDEyICsxOTM5MiwxMiBAQAogICAgIDBlMTAxYWJhYTk5NmI4Y2EuOTE0N2U3OTViNTRiNGVlNy4wNTJjODc5NDE0YjU3N2QwLjlkNDc3ZWU5ZTE3ZDg3NjAKICAgICA2OGQ3MDczYzEzNjBlZWE1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI0OWM3MzFjNjA5NmJjYTcuZmMxMmM1NDMwZjEyYjA1NgotICAgIDgyOWMyYzVlNmExNDJkZWMuNDM3NGE2NWYwOTY5MWIxYi5kYWExMjMyODk3YjBjMzkwLjZhNWI5ODE4MjA0NGViNTcKKyAgICA3NGYxYTczNDJjMzcyNGJmLjFhMDVlMTY4MDE4ZTBmOWYuNTdkMjA2YzVlNTg3OTk5Mi40ODY3NDNjMzU5ZDUzZTNjCisgICAgZWMzOGZlNjdiNTA1OWZiNi4yMWYwMmFjYWU2YTRmMTdhLjRhZmI1MGY0YzllNmY5MTcuOTJiNzJkMmJlZmNlYzVmZgogICAgIGVjMzhmZTY3YjUwNTlmYjYuMjFmMDJhY2FlNmE0ZjE3YS40YWZiNTBmNGM5ZTZmOTE3LjkyYjcyZDJiZWZjZWM1ZmYKICAgICAwZTEwMWFiYWE5OTZiOGNhLjkxNDdlNzk1YjU0YjRlZTcuMDUyYzg3OTQxNGI1NzdkMC45ZDQ3N2VlOWUxN2Q4NzYwCiAgICAgNjhkNzA3M2MxMzYwZWVhNQotVlBBRERCXzEyOChtZW0pCitWUEVSTUlMUERfMjU2XzB4QShtZW0pCiAgIGJlZm9yZQogICAgIGNkMzM0NDExYTE4MGI1ZmIuNDQ3MjdhYzVlMTUyYjFkNC42ZDQzNWJhYzkxNmJlZThmLjY1N2ZjNjc2MTZhYTc4NjkKICAgICBhOTI2YjI1NWE1ZWI5YThkLmVhYTgxY2YzZjljNWM5N2YuOTJiMTAxZmI5NjEwOGM5ZS5jNzQyMDcwNTZiNTAzYThlCkBAIC0xOTQwNiwxMiArMTk0MDYsMTIgQEAKICAgICA5MjFhYjhmODZmZTI1M2ZhCiAgIGFmdGVyCiAgICAgY2QzMzQ0MTFhMTgwYjVmYi40NDcyN2FjNWUxNTJiMWQ0LjZkNDM1YmFjOTE2YmVlOGYuNjU3ZmM2NzYxNmFhNzg2OQotICAgIGE5MjZiMjU1YTVlYjlhOGQuZWFhODFjZjNmOWM1Yzk3Zi45MmIxMDFmYjk2MTA4YzllLmM3NDIwNzA1NmI1MDNhOGUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmNDVjYTcyNzdiN2EyZC4yY2MxY2Q3YjgxZmFiMmY3CisgICAgY2QzMzQ0MTFhMTgwYjVmYi40NDcyN2FjNWUxNTJiMWQ0LjZkNDM1YmFjOTE2YmVlOGYuNmQ0MzViYWM5MTZiZWU4ZgorICAgIGQ4N2VjY2YzM2VhYzU3ODguNWMwMGZjYjA4ZTdiM2E3OC5kYzVkNTU2ZWUxNDRlNTNmLjg4YmY0OWFkYWUzM2Y3ZWIKICAgICAzNjA1MGVkNzg2ZDBhODE4LmY2YzQxNDY4M2IwMTQxNmEuMjgxM2Q0ZjE4ZTE1YjU5Zi4wMjQzODVkYTdiZTBlYjJiCiAgICAgOTIxYWI4Zjg2ZmUyNTNmYQogCi1WUEFEREJfMTI4KHJlZykKK1ZQRVJNSUxQRF8yNTZfMHhBKHJlZykKICAgYmVmb3JlCiAgICAgOTQ5MGRmNzQyNmM1NmIwNi45Zjg4ZjRlYzk5NjI0YjY4LjEzNDE2Mjg4OWRlMjFhMDIuNTA5ZWY5NzBiODhlYjhlOQogICAgIDY1ZjFmNWI4M2IxNjZmZjkuZWZkM2ZiMjA5MzZlZmFhNS4xMWMyZTA3YTRmYWIwMGViLjMxY2M0MGQ4N2JiY2E5NGEKQEAgLTE5NDE5LDEyICsxOTQxOSwxMiBAQAogICAgIGRmYTNkZjRjZjAyZjJhNDUuYjVmMDU4OTNhZjI1NmY5NC4xYzA1NjI4ODE1MjJlNjYzLjhlM2MyNDBmM2Y2NDQ4MDAKICAgICBjMjE3YmFiNzc3ZjY2ZWFkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVjNTc2YzI1M2M5MjMwYmUuZDgzMzY1ZWI2ZjY2ZWUzOAotICAgIDY1ZjFmNWI4M2IxNjZmZjkuZWZkM2ZiMjA5MzZlZmFhNS4xMWMyZTA3YTRmYWIwMGViLjMxY2M0MGQ4N2JiY2E5NGEKKyAgICA5NDkwZGY3NDI2YzU2YjA2LjlmODhmNGVjOTk2MjRiNjguMTM0MTYyODg5ZGUyMWEwMi41MDllZjk3MGI4OGViOGU5CisgICAgNWY4OGY2MzE0YTYwOWI3Zi4wM2IxOWQ1ZTkyMDA3MmZhLjRiOTU4Y2FiZWRlNzMwZDMuYTc2NzI1MTNmNGFhNDVlZQogICAgIDVmODhmNjMxNGE2MDliN2YuMDNiMTlkNWU5MjAwNzJmYS40Yjk1OGNhYmVkZTczMGQzLmE3NjcyNTEzZjRhYTQ1ZWUKICAgICBkZmEzZGY0Y2YwMmYyYTQ1LmI1ZjA1ODkzYWYyNTZmOTQuMWMwNTYyODgxNTIyZTY2My44ZTNjMjQwZjNmNjQ0ODAwCiAgICAgYzIxN2JhYjc3N2Y2NmVhZAotVlBBRERCXzEyOChtZW0pCitWUEVSTUlMUERfMjU2XzB4QShtZW0pCiAgIGJlZm9yZQogICAgIDFmYzQ2MWY3Yjg2ZDcyMjAuNDE4Y2FhNzRjODEwNTlmNy5lMjVhYTdhOTA4ZTlhYzlmLmUyNWQ1YzdiNjBlOTVlNGEKICAgICA4MTBmOTdiYTFmZDUxMTg2LmUxOTA1NTE0NmY4ZTYzNDAuNjViZDA3OGRiOTU2ZTY0Ni5mOGVhNzhmMjZjYzZkMzMxCkBAIC0xOTQzMywxMiArMTk0MzMsMTIgQEAKICAgICBiMGM3NmFhMTJiNjQ3ZGFiCiAgIGFmdGVyCiAgICAgMWZjNDYxZjdiODZkNzIyMC40MThjYWE3NGM4MTA1OWY3LmUyNWFhN2E5MDhlOWFjOWYuZTI1ZDVjN2I2MGU5NWU0YQotICAgIDgxMGY5N2JhMWZkNTExODYuZTE5MDU1MTQ2ZjhlNjM0MC42NWJkMDc4ZGI5NTZlNjQ2LmY4ZWE3OGYyNmNjNmQzMzEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDcxN2FlMzZjMTNmOTJlNS5kYTQ3ZDQ2ZGNjYWYzMTdiCisgICAgMWZjNDYxZjdiODZkNzIyMC40MThjYWE3NGM4MTA1OWY3LmUyNWFhN2E5MDhlOWFjOWYuZTI1YWE3YTkwOGU5YWM5ZgorICAgIGM0YzNkOGVlYzczODA2MGIuMWJmYmRiOWE4MDM1ODZjZC4xY2UzZjIyY2RkN2FkOWI2LmI5ZjhiMTU4ZDU0ODgyYzcKICAgICBjNGFkOWU3ZWNkYTQwZmRhLjRiMTkzODcxOTg5MmZjNDkuZTI5OWU2NzA5MDYxNDAxYS44M2QzMDMxOTM2ZjhhN2I2CiAgICAgYjBjNzZhYTEyYjY0N2RhYgogCi1WTU9WQVBTX0V0b0dfMjU2KHJlZykKK1ZQRVJNSUxQRF8yNTZfMHg1KHJlZykKICAgYmVmb3JlCiAgICAgOWUxZmUzNWM1MTE4NDE1MS41YzlhNjc1NzRjMjVlNjIwLmNkMzU2OTA1NTIzMDAyNjEuOTNhYjVlNDdlZjE1ZDk5ZgogICAgIGE3Mjg2OWI2NDQ5ZTJmNTUuNmE1NGFkNjM2MGM1NDgwOC5mZDlkNjhjMjRiOWNkM2MwLjBiZTRkNzljMTZhNDVlNzEKQEAgLTE5NDQ3LDExICsxOTQ0NywxMSBAQAogICAgIGI0NzgxOWM2NGVlN2QxNjkKICAgYWZ0ZXIKICAgICA5ZTFmZTM1YzUxMTg0MTUxLjVjOWE2NzU3NGMyNWU2MjAuY2QzNTY5MDU1MjMwMDI2MS45M2FiNWU0N2VmMTVkOTlmCi0gICAgMjgyZmY4MWI5ZTg0ODM2Mi5jOWE4ZWY4ZjI3OTJmMGJmLjM3OWIzMzE1MWU2MGFjMTQuMjYxMmNiNWEyMDFhOGJiYgorICAgIGM5YThlZjhmMjc5MmYwYmYuMjgyZmY4MWI5ZTg0ODM2Mi4yNjEyY2I1YTIwMWE4YmJiLjM3OWIzMzE1MWU2MGFjMTQKICAgICAyODJmZjgxYjllODQ4MzYyLmM5YThlZjhmMjc5MmYwYmYuMzc5YjMzMTUxZTYwYWMxNC4yNjEyY2I1YTIwMWE4YmJiCiAgICAgN2U3ZThjZjhmZTU1NzgyNS41NTYxYTZjOGJhOTg5YjcwLmQ3N2NjNTY4NjgwYmM5MDYuYzBmZmI4NmYyOTgxMWVhYQogICAgIGI0NzgxOWM2NGVlN2QxNjkKLVZNT1ZBUFNfRXRvR18yNTYobWVtKQorVlBFUk1JTFBEXzI1Nl8weDUobWVtKQogICBiZWZvcmUKICAgICBlMDQ5NmE0YmFhNTg2MTI1LjAzNjIyMWI3ZmU5ZTRiNGEuZWE0ZDRmZjgzN2UxMDU0OS4zOThjMWIyOGM0MjY2NjQ1CiAgICAgMWYzZTI3ZWI1YWRlODkwOS4xNDI2YjRjNjNhZWEzODdjLjYzMzY2NzBkYmE3YmVhNzMuYjkxNzJmYzJjZTNmYmU3YgpAQCAtMTk0NjAsMTIgKzE5NDYwLDEyIEBACiAgICAgODQ5MWMwZGQxZGYxODZhMgogICBhZnRlcgogICAgIGUwNDk2YTRiYWE1ODYxMjUuMDM2MjIxYjdmZTllNGI0YS5lYTRkNGZmODM3ZTEwNTQ5LjM5OGMxYjI4YzQyNjY2NDUKLSAgICAxZjNlMjdlYjVhZGU4OTA5LjE0MjZiNGM2M2FlYTM4N2MuNjMzNjY3MGRiYTdiZWE3My5iOTE3MmZjMmNlM2ZiZTdiCisgICAgMDM2MjIxYjdmZTllNGI0YS5lMDQ5NmE0YmFhNTg2MTI1LjM5OGMxYjI4YzQyNjY2NDUuMzk4YzFiMjhjNDI2NjY0NQogICAgIDRjMjNjZDkwNzk4NzA2NDMuMGUxODQwOGY0ZmM1N2E2OC45ZWVhNjlmMjVlNzIwNjFkLmIyNjlmZmEwMjNlMTBlNTQKLSAgICBlMDQ5NmE0YmFhNTg2MTI1LjAzNjIyMWI3ZmU5ZTRiNGEuZWE0ZDRmZjgzN2UxMDU0OS4zOThjMWIyOGM0MjY2NjQ1CisgICAgNDVjM2Q2MjcyNDVmOTRmYy40YjgyYzE4MGQ4YmM0ZWJhLjc1MzNkMTkyM2ZkMDE0NzEuODJjZDg2MzA1Zjk5OTI3ZAogICAgIDg0OTFjMGRkMWRmMTg2YTIKIAotVk1PVkFQU19FdG9HXzI1NihyZWcpCitWUEVSTUlMUERfMjU2XzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDE0ZmZhYTEzZjk3ODI1NmUuZTVlY2MwOWQ3NjcwZWY2My4yOGIyMzMwNDcxNWFmMDFkLmM2ZGUxY2RiN2FhNGQwOWIKICAgICA4ZDY0M2UzZTkwYjdhYzhlLjA3NjgwN2RjOGNjOWQzYTEuMDFmMjkzODdiODJjOWMzZC42Y2I2YzRiODJiZjdmOGM4CkBAIC0xOTQ3NCwxMSArMTk0NzQsMTEgQEAKICAgICBmMjRjY2IwMDE1NmI0NzE3CiAgIGFmdGVyCiAgICAgMTRmZmFhMTNmOTc4MjU2ZS5lNWVjYzA5ZDc2NzBlZjYzLjI4YjIzMzA0NzE1YWYwMWQuYzZkZTFjZGI3YWE0ZDA5YgotICAgIDRkMGM3YWNhN2QzYzU3YWUuODkwNDI1ZDI4MTczZmJlNS4zMzhmZGM3NTQ2YmM4ZGM3LjQyODk0NzE2NmRkNzQ2MjQKKyAgICA4OTA0MjVkMjgxNzNmYmU1LjRkMGM3YWNhN2QzYzU3YWUuNDI4OTQ3MTY2ZGQ3NDYyNC4zMzhmZGM3NTQ2YmM4ZGM3CiAgICAgNGQwYzdhY2E3ZDNjNTdhZS44OTA0MjVkMjgxNzNmYmU1LjMzOGZkYzc1NDZiYzhkYzcuNDI4OTQ3MTY2ZGQ3NDYyNAogICAgIGFlNDM1OTIzNWQ5MjYxNzkuNDU4Yzk4NmE3MTdjMjQ1OS4xOGQ1MGEzYWI5OTgwMDY3LjI2MjIyMGRmNWM0Zjc3ZGEKICAgICBmMjRjY2IwMDE1NmI0NzE3Ci1WTU9WQVBTX0V0b0dfMjU2KG1lbSkKK1ZQRVJNSUxQRF8yNTZfMHg1KG1lbSkKICAgYmVmb3JlCiAgICAgODRkNGM1NjViMzM4NzEwNy4wZTU0ZDhiNWNjNDYwNzljLjE5Y2JkYjhmNzllZjA5MmEuMGQwZjE5NDJhZDRjMzFjOQogICAgIGI2ODY4OWZiNTNjMWIzZDUuYzg4ZGYxZWM2NGUzODVjMi5kZjhmNmEyZmI1ZDg2NzgzLjZlOGIwNWY5YmQ2MjVjOTgKQEAgLTE5NDg3LDEyICsxOTQ4NywxMiBAQAogICAgIGIxN2FkMjcyYjA3MzBkNGUKICAgYWZ0ZXIKICAgICA4NGQ0YzU2NWIzMzg3MTA3LjBlNTRkOGI1Y2M0NjA3OWMuMTljYmRiOGY3OWVmMDkyYS4wZDBmMTk0MmFkNGMzMWM5Ci0gICAgYjY4Njg5ZmI1M2MxYjNkNS5jODhkZjFlYzY0ZTM4NWMyLmRmOGY2YTJmYjVkODY3ODMuNmU4YjA1ZjliZDYyNWM5OAorICAgIDBlNTRkOGI1Y2M0NjA3OWMuODRkNGM1NjViMzM4NzEwNy4wZDBmMTk0MmFkNGMzMWM5LjBkMGYxOTQyYWQ0YzMxYzkKICAgICA2NTJlOTNhZDEwMTNjN2FkLjM3MzhhMjM1YzRmNTE3OTguNzRhMmMxMzU0MDQ0ZmE5MS45NzkzY2JjYzg1NjliYzgwCi0gICAgODRkNGM1NjViMzM4NzEwNy4wZTU0ZDhiNWNjNDYwNzljLjE5Y2JkYjhmNzllZjA5MmEuMGQwZjE5NDJhZDRjMzFjOQorICAgIDZlOTg1ZjY2MDczODY5YmMuYjlhMmU2ZmE4NTA5ZjhjOS5iNWQyNWQ4ZTM2M2U3ZTdmLmU0NzQ2NjI1YTJlYThlMmUKICAgICBiMTdhZDI3MmIwNzMwZDRlCiAKLVZNT1ZBUFNfRXRvR18yNTYocmVnKQorVlBFUk1JTFBEXzI1Nl8weDUocmVnKQogICBiZWZvcmUKICAgICA1YWYxMGIxZDRhOGY3NzhjLmFiOGY2OTE0NTMzZjU2MmUuYTgxN2I5YTk0NWFhNjUwMi43Y2U5YjgyNGI0ZDNhZjdhCiAgICAgM2IyNTBlOTQwY2NhMDY5My5mOWUxMmVhMjEwMzE0YTJmLjYxZTMxOGFkYTA2NDlhZWYuYTZiNDUwZTRkNjBlNDhhZQpAQCAtMTk1MDEsMTEgKzE5NTAxLDExIEBACiAgICAgMGY0NDVhNWEyNzFjZTA1NAogICBhZnRlcgogICAgIDVhZjEwYjFkNGE4Zjc3OGMuYWI4ZjY5MTQ1MzNmNTYyZS5hODE3YjlhOTQ1YWE2NTAyLjdjZTliODI0YjRkM2FmN2EKLSAgICBhZjYyZDY0MjkzYjFmNzBmLjM1NTgyOWZjNWMxYzAxZWEuNDE1MmZkNzEzMWM0ZDIzYi4xMGZmYTFiYmI3ZmIwNjQ2CisgICAgMzU1ODI5ZmM1YzFjMDFlYS5hZjYyZDY0MjkzYjFmNzBmLjEwZmZhMWJiYjdmYjA2NDYuNDE1MmZkNzEzMWM0ZDIzYgogICAgIGFmNjJkNjQyOTNiMWY3MGYuMzU1ODI5ZmM1YzFjMDFlYS40MTUyZmQ3MTMxYzRkMjNiLjEwZmZhMWJiYjdmYjA2NDYKICAgICAxNGYzNWU5MzdhY2Y4NWFkLjM5YzFkNjBlNTAwYjM3OGIuYTJhZjY2NjM5NTU1NGE5My45NDk1MjU5MzczYTZhNDZmCiAgICAgMGY0NDVhNWEyNzFjZTA1NAotVk1PVkFQU19FdG9HXzI1NihtZW0pCitWUEVSTUlMUERfMjU2XzB4NShtZW0pCiAgIGJlZm9yZQogICAgIDVkZDZiYmZhZWU2ODc0MjMuYzUyNWE1ZjM1ZWIxZWQxOS5lMmU4YjFjNDBhMGJhNzQwLmUxNDc0ZWVlNjdhMzNlYTMKICAgICA1YTE4YzQ2MWU1OTcxYzA1LjFlNDRhNGNlZGFlMjZiZmUuMGM5OTM2MGFhNjI3MGUzMi41YjY3YjE3ZTQzM2JlYTE2CkBAIC0xOTUxNCwxMiArMTk1MTQsMTIgQEAKICAgICBiYWU1OTc4NTMwMzI5MzdjCiAgIGFmdGVyCiAgICAgNWRkNmJiZmFlZTY4NzQyMy5jNTI1YTVmMzVlYjFlZDE5LmUyZThiMWM0MGEwYmE3NDAuZTE0NzRlZWU2N2EzM2VhMwotICAgIDVhMThjNDYxZTU5NzFjMDUuMWU0NGE0Y2VkYWUyNmJmZS4wYzk5MzYwYWE2MjcwZTMyLjViNjdiMTdlNDMzYmVhMTYKKyAgICBjNTI1YTVmMzVlYjFlZDE5LjVkZDZiYmZhZWU2ODc0MjMuZTE0NzRlZWU2N2EzM2VhMy5lMTQ3NGVlZTY3YTMzZWEzCiAgICAgZTJkNmYxN2EyN2I0OTYyOC43YjljNTk5MDhiZWUzYjA5LjkzOWZlMmNkM2Y2YjI3OTAuNmE1OThjODBjNmE4ODk5OAotICAgIDVkZDZiYmZhZWU2ODc0MjMuYzUyNWE1ZjM1ZWIxZWQxOS5lMmU4YjFjNDBhMGJhNzQwLmUxNDc0ZWVlNjdhMzNlYTMKKyAgICBkMmRjYmUzMWQxY2I5Y2I4LjM3NzliZWE2MGM2MTk4ZTYuNTNjODMwZjdmMWUzYjA4NC42YjY5ZGE1ZThjNzY1OGQ3CiAgICAgYmFlNTk3ODUzMDMyOTM3YwogCi1WQ1ZURFEyUERfMjU2KHJlZykKK1ZQRVJNSUxQRF8xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgYjQxOGJmNjI0ZTY3NzUzNi4wNGY2YTg3MmZlZTllYmUxLmIwMjdkMjdhZmFjOGMwNDAuMjhkZTljNzVkOTljNjMzYgogICAgIGIzNGQ0ZTVmODNhMTNjYWYuNTVmMDJhMjljYTE5M2ZjZS40MWYxOGU3YWYwYWVlY2M0LmVlYWVhMjM0MTJhMmZkZTAKQEAgLTE5NTI4LDExICsxOTUyOCwxMSBAQAogICAgIDdlNzIyYjI4YmZmMzhhMWYKICAgYWZ0ZXIKICAgICBiNDE4YmY2MjRlNjc3NTM2LjA0ZjZhODcyZmVlOWViZTEuYjAyN2QyN2FmYWM4YzA0MC4yOGRlOWM3NWQ5OWM2MzNiCi0gICAgNDFkMTQ5N2JjNDAwMDAwMC5jMWRkMTdlOTM4YzAwMDAwLmMxZGZiZWQwMzg0MDAwMDAuYzFkMTgwMzE5ODQwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MTA0YmYxZmI5ZmYzOTlmLjgxMDRiZjFmYjlmZjM5OWYKICAgICAxNGQxNDFlYTZhNmQyMjk0LmExOTVjMDQyNTI2NzUzYWIuNDUyNWVmMTA4YmEwNWIxZC44MTA0YmYxZmI5ZmYzOTlmCiAgICAgMzNmMDkzNmVhMDU2NjM5MC5jNGIyZTdhYWIyZGZlNGE1LjFhMGRmMmFhNjYyOTQ3ZjguYmRhYzZlMjJlYWMxZDRhNgogICAgIDdlNzIyYjI4YmZmMzhhMWYKLVZDVlREUTJQRF8yNTYobWVtKQorVlBFUk1JTFBEXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICBhMDIxNzIxZjU3YTIxNzM2LjZjZjY0MDU3YzBlODNkNTAuOTkxMzE5NGIwNThlYWVlOC4xYWY2OTJiMzFkZDVlZDAwCiAgICAgZmY4NmJmZjNjYmQ5MzYxOS4xYjJmNDQxMDY3YjBlYTdmLmZlODRkNDEzNjc4MDZjOWYuYTMyY2NiOTc0ZDMxODllMwpAQCAtMTk1NDEsMTIgKzE5NTQxLDEyIEBACiAgICAgMDQ5MmU2OWRjOGQ4NzY1YQogICBhZnRlcgogICAgIGEwMjE3MjFmNTdhMjE3MzYuNmNmNjQwNTdjMGU4M2Q1MC45OTEzMTk0YjA1OGVhZWU4LjFhZjY5MmIzMWRkNWVkMDAKLSAgICBjMWQ5YmIzOWFkNDAwMDAwLjQxOTYzYWJiYTAwMDAwMDAuNDFiYWY2OTJiMzAwMDAwMC40MWJkZDVlZDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFhZjY5MmIzMWRkNWVkMDAuOTkxMzE5NGIwNThlYWVlOAogICAgIDc3NmU4ZjhlMzlhNGE0ZjEuOWNlNzliMDgzMDM5YTZjYS5jZWQxOTNlY2Y1YmZkY2Y3LjBmZmE5OWMyOTJjODU2NGEKICAgICBlNGEzNWRkZGJkMTAxZGVkLjRiNjk0MmE4YjgxMGFmZGMuZTVjNmQyYzRjYjU5YjgxYy5iY2FlZjlhMDg3MjY5MWUzCiAgICAgMDQ5MmU2OWRjOGQ4NzY1YQogCi1WQ1ZURFEyUERfMjU2KHJlZykKK1ZQRVJNSUxQRF8xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgNDVmMzVjMjVmMjY5NDE1Yi4yMmYyYTVjYzcyMjg1ZDM3Ljg0MDMzNDVkOWFiZjNmNjMuMWYyZTBlODYwNDVhYmMzOQogICAgIGQ5MWU1N2E0YTA2NTJkOTEuMGMyNmUzNDg3NWY4MWZmYi5hM2ZmNmQ5MzczZDU5MzA4LjU4ZDZjMjFlYmNjY2E2N2IKQEAgLTE5NTU1LDExICsxOTU1NSwxMSBAQAogICAgIDk0NDY4NjIyZmE0YTE2ZDQKICAgYWZ0ZXIKICAgICA0NWYzNWMyNWYyNjk0MTViLjIyZjJhNWNjNzIyODVkMzcuODQwMzM0NWQ5YWJmM2Y2My4xZjJlMGU4NjA0NWFiYzM5Ci0gICAgNDE5MmFiYTZkYzAwMDAwMC5jMWMwOTIwYzQzMDAwMDAwLjQxZGFlMmRhNWUwMDAwMDAuNDFiMGJkMzAwZDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42YjhiNjk3ODEwYmQzMDBkLjZiOGI2OTc4MTBiZDMwMGQKICAgICAxZDVjZDQ4NzZmNTg3N2E5LjgwMGQ5NDNiZTE4ZDIwNjYuMDRhYWU5YjdkZWRiZTc3YS42YjhiNjk3ODEwYmQzMDBkCiAgICAgNmVmY2NkMzhmYWNmNWI0ZS41OTcxMzM5M2QyZjIxY2E0LjAyNGZhNTMzNzc1Zjc2NjMuMzYxNzgyODAxYjM5MTcxYwogICAgIDk0NDY4NjIyZmE0YTE2ZDQKLVZDVlREUTJQRF8yNTYobWVtKQorVlBFUk1JTFBEXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICA2MGU2ZjM0YWM4ZmVlYTYwLjI2NDk0MDI1ZGU1NjE0MmQuNzIyMDNiM2I2NTMzY2VlMC5mYjNjOWM3NWRiZWM3ZDZmCiAgICAgNzhjMjQzZTVhMjYxNGZlYy5hMjhlMjhiOWI2NzhlMGYxLmE5ZTQyYjFmYjY1ZGYzNDcuNGFiY2NhZTdhNjBmMzg0YgpAQCAtMTk1NjgsMTIgKzE5NTY4LDEyIEBACiAgICAgZDJhMzc3OWU4NDZlZjc3NQogICBhZnRlcgogICAgIDYwZTZmMzRhYzhmZWVhNjAuMjY0OTQwMjVkZTU2MTQyZC43MjIwM2IzYjY1MzNjZWUwLmZiM2M5Yzc1ZGJlYzdkNmYKLSAgICA0MWRjODgwZWNlYzAwMDAwLjQxZDk0Y2YzYjgwMDAwMDAuYzE5MzBkOGUyYzAwMDAwMC5jMWMyMDljMTQ4ODAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZiM2M5Yzc1ZGJlYzdkNmYuNzIyMDNiM2I2NTMzY2VlMAogICAgIGI3YTVmNGRkYTM3ZTAxYTYuM2UxOTgyNjAxZmMxZjk0Ny5kOThhN2MyYmUwN2I0NzA1LjRiMWEyYmY3NzM1MmUzYTMKICAgICBmODVjODIyMGU4NjFiY2I4LjU3MzQ0ODg2YjRiZDliZGIuZGRkZGFjNGJmZjlhODY0NS41OWEzYmIxMGRlNDRiOTIyCiAgICAgZDJhMzc3OWU4NDZlZjc3NQogCi1WQ1ZURFEyUERfMjU2KHJlZykKK1ZQRVJNSUxQRF8xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgMTE2NjVhMGQwMDVlZDk0OC4xOWIzNjc5ODhjMTYzYjRlLjQ3MmM3ODk3MTJmOTAzNTguOTNhYjM2NmIzMGM0NmIzNAogICAgIDcxMzg2MGM5ZWY5ZjlhNDYuZjQ3NjIxMzNhY2FhM2I5NS42YjRjMGRmZmQ0MDA2ZTZiLmQ1YmY5Njc3OGYwN2IzZmQKQEAgLTE5NTgyLDExICsxOTU4MiwxMSBAQAogICAgIDgzOTQ5MzVjZDJkYjMzMzAKICAgYWZ0ZXIKICAgICAxMTY2NWEwZDAwNWVkOTQ4LjE5YjM2Nzk4OGMxNjNiNGUuNDcyYzc4OTcxMmY5MDM1OC45M2FiMzY2YjMwYzQ2YjM0Ci0gICAgNDFiZmUyMDMyYTAwMDAwMC5jMWRhNjg3YTkwNDAwMDAwLmMxZGY4NmVkZTk0MDAwMDAuNDFjYjM3OGQ2NjgwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MWU0NDg1YjM2NmYxYWNkLjgxZTQ0ODViMzY2ZjFhY2QKICAgICA1MDY1ODUzZWVkYmU3NzFjLjY3NzEyYmRjNjMyODc3YjkuMWZlMjAzMmE5NjVlMTViZi44MWU0NDg1YjM2NmYxYWNkCiAgICAgMDgzOGM2ZDk5NDQ2YWM3NS40YzcwMDE3ZmNkOWNhY2U1LmJmMzk1Njg0ZjVhMDM3MDEuNzFlN2M4MDQ0NDA3NWJjZgogICAgIDgzOTQ5MzVjZDJkYjMzMzAKLVZDVlREUTJQRF8yNTYobWVtKQorVlBFUk1JTFBEXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICA5MWI3MjQ1MWZmZjc1ZTFjLmY3ZmUxZTA0ODNjMzc0ZmUuODAzZTFmMDgwNzEzOTY0Ni5hNzljMDM3YThkNTEwZWRkCiAgICAgNzgxY2Y3Y2RlNDY4OThiZS43NzAzODkyZDUzYzIwZDYyLmUwYTgwMjYzMmQ5OGYxMDcuMzM1ODA1NzZmOWZkZDdmZQpAQCAtMTk1OTUsMTIgKzE5NTk1LDEyIEBACiAgICAgNDc5YWUyY2U1MDVmMzRiYgogICBhZnRlcgogICAgIDkxYjcyNDUxZmZmNzVlMWMuZjdmZTFlMDQ4M2MzNzRmZS44MDNlMWYwODA3MTM5NjQ2LmE3OWMwMzdhOGQ1MTBlZGQKLSAgICBjMWRmZjA3ODNlMDAwMDAwLjQxOWM0ZTU5MTgwMDAwMDAuYzFkNjE4ZmYyMTgwMDAwMC5jMWRjYWJiYzQ4YzAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE3OWMwMzdhOGQ1MTBlZGQuODAzZTFmMDgwNzEzOTY0NgogICAgIDE1OGU4OWJlOWYzOTljNDMuZTY5MzAzYmVhMmNlYjE0ZS40NjdhMjQ3YzU5Mzg3OTU2LmJmYjk1OGU2ZDUzMWNlMTEKICAgICA0MmRiNTQwZjRjNzcyN2Q2LjllZmE4ODI1MGM3MzlkNmUuOGY4MDAzNDBhYWZlZTk1Yy5hNzBiZjgzNGJlNzgyZWMxCiAgICAgNDc5YWUyY2U1MDVmMzRiYgogCi1WTU9WSFBEXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVSTUlMUERfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGZiYjExMTFmMjU3MTFjYWIuZGNjZGQ2YWMwNjJkZjVhNS5mZDg0MTVjZDJjM2QwYzZkLjk4ODYxYTk5M2FmNmZlNDcKICAgICAxZjllODE5M2RjM2EyMTNjLmJmMzE4YTgxZWE2N2MxZDkuNWQ3Y2E1MjI5ZmI5M2JmOC4zYjU4ZTY3NTI1MmM3MzQzCkBAIC0xOTYwOSwxMSArMTk2MDksMTEgQEAKICAgICA1ZThjNTk0YzI0YmU3MDUyCiAgIGFmdGVyCiAgICAgZmJiMTExMWYyNTcxMWNhYi5kY2NkZDZhYzA2MmRmNWE1LmZkODQxNWNkMmMzZDBjNmQuOTg4NjFhOTkzYWY2ZmU0NwotICAgIDFmOWU4MTkzZGMzYTIxM2MuYmYzMThhODFlYTY3YzFkOS41ZDdjYTUyMjlmYjkzYmY4LjNiNThlNjc1MjUyYzczNDMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWIzMDM0OTAwMDczNjZiYi4xYjMwMzQ5MDAwNzM2NmJiCiAgICAgMGVhYjJlOTYwZTQ2ODExYi5jOGQzZWM3YTEzMzE0OGEwLjFiMzAzNDkwMDA3MzY2YmIuNTVjMWUyYmU4OGFkMDY3YwogICAgIDI2MjUxNDk0NWEyMjc2ZjMuZDE3Zjc5ODM5ZDk4NDYyNi45NGVhYmU4M2ViZjVjOTYxLmMyOGY4OTYyN2U4NDcxMWQKICAgICA1ZThjNTk0YzI0YmU3MDUyCi1WTU9WSFBEXzEyOF9Mb2FkRm9ybShtZW0pCitWUEVSTUlMUERfMTI4XzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIDA2ODVjZTY4OTU2NmMxNDkuYzI1ODMwZjk1OTU5M2M3MS5iNzAwYWI4OWE1YTc3Nzk3LjIyZjc0MDY3ZmRjZDlmOTYKICAgICA5NDQ2NjJhMmVlODgxZTJiLjNlOTA3ZDMyYWE3ODExNDAuNTYyNDAwNzY0NzZiOTYxZS4yMmEzYjRhOGQyODcyNTA4CkBAIC0xOTYyMiwxMiArMTk2MjIsMTIgQEAKICAgICA2NzU3OWVkM2Y2NzMyZDc5CiAgIGFmdGVyCiAgICAgMDY4NWNlNjg5NTY2YzE0OS5jMjU4MzBmOTU5NTkzYzcxLmI3MDBhYjg5YTVhNzc3OTcuMjJmNzQwNjdmZGNkOWY5NgotICAgIDk0NDY2MmEyZWU4ODFlMmIuM2U5MDdkMzJhYTc4MTE0MC41NjI0MDA3NjQ3NmI5NjFlLjIyYTNiNGE4ZDI4NzI1MDgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjJmNzQwNjdmZGNkOWY5Ni4yMmEzYjRhOGQyODcyNTA4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI3MDBhYjg5YTVhNzc3OTcuMjJmNzQwNjdmZGNkOWY5NgorICAgIGU1OWI5M2U2NGEzMTQ0MjcuZjUxOWY3YTllNjBhMmYwZC44YWI1ZjMzODllZWY2MGU3LmYwMzkxOGIzMDVhZTk3NjAKICAgICBkNTRmZGMyMGM2NmNlZjY3LjQ1M2U5YWNjYWI5YmQzODQuMmY4MDAxYjljNjNmOTExZi5lODA3NjdmMjMyY2UzMDRkCiAgICAgNjc1NzllZDNmNjczMmQ3OQogCi1WTU9WSFBEXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVSTUlMUERfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGM3NzdiN2MwZWMyYWNhOTAuNDAyZmI5M2M3ZDQ1ZGExNy44OTRjNjIwNTk1YjczODUwLjIxNTFhNGU3ZGM2OGU1ZjIKICAgICA2NWIxYjAyN2IxN2U0MzQwLjAyMDhhNzI2OGJjOWMyNjUuMWM5MDRjYzIzZmViOWIxZS4zY2Y0NWFhZGZiNzUxNzhjCkBAIC0xOTYzNiwxMSArMTk2MzYsMTEgQEAKICAgICAxYmJmYzFjN2FhNmUzZWI3CiAgIGFmdGVyCiAgICAgYzc3N2I3YzBlYzJhY2E5MC40MDJmYjkzYzdkNDVkYTE3Ljg5NGM2MjA1OTViNzM4NTAuMjE1MWE0ZTdkYzY4ZTVmMgotICAgIDY1YjFiMDI3YjE3ZTQzNDAuMDIwOGE3MjY4YmM5YzI2NS4xYzkwNGNjMjNmZWI5YjFlLjNjZjQ1YWFkZmI3NTE3OGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWM1NDUzNmU0NmMzMzg5YS41YzU0NTM2ZTQ2YzMzODlhCiAgICAgOWQ1Mjg0NzNlMGZiZDMzMi5mN2E0MjBjYjBkMDM2MzdhLjVjNTQ1MzZlNDZjMzM4OWEuNWMzNTllZjc0MDcyZTQxOAogICAgIGNiYTUyZjEwMTYyZWI3MTUuZmFkMGEyMTUxZmZmNzg4NS5hM2U0NzM3NDQ1Yzk0YjZmLjVkZGZlY2IxYzY2YzA3YzIKICAgICAxYmJmYzFjN2FhNmUzZWI3Ci1WTU9WSFBEXzEyOF9Mb2FkRm9ybShtZW0pCitWUEVSTUlMUERfMTI4XzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIDcyYTI5NzI1MDc4NDQzMjMuNGJmOGFlNmFlZWEyMmI5My5lOTU4YThmMmRjYzliZmIwLjRmOGVhOTQyZDg4YjEwNGEKICAgICAzZDUyZWNiN2ZhYmJkMzMxLjc5OTVmY2VkMDVlMzZiNTguOWYwN2FlNGQ2MDZlZjIyNy5iYTlkZWY0NDljOTRjMmQ2CkBAIC0xOTY0OSwxMiArMTk2NDksMTIgQEAKICAgICAxNDFkMDJiMTIzZDRjMjVjCiAgIGFmdGVyCiAgICAgNzJhMjk3MjUwNzg0NDMyMy40YmY4YWU2YWVlYTIyYjkzLmU5NThhOGYyZGNjOWJmYjAuNGY4ZWE5NDJkODhiMTA0YQotICAgIDNkNTJlY2I3ZmFiYmQzMzEuNzk5NWZjZWQwNWUzNmI1OC45ZjA3YWU0ZDYwNmVmMjI3LmJhOWRlZjQ0OWM5NGMyZDYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGY4ZWE5NDJkODhiMTA0YS5iYTlkZWY0NDljOTRjMmQ2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU5NThhOGYyZGNjOWJmYjAuNGY4ZWE5NDJkODhiMTA0YQorICAgIDVhOWMzYjY5OWUxZWE5MGUuYjFjYTE1MDVmNjdlYjIxMi5mOGFiMzExMmM4ZmFjZDE3LjQyNWM0M2U0MmM3MTllYzAKICAgICBhNDRiMDEyODEwYjk4MmU2LjRlZTFmNTFmNWVmZTNkNmEuZDAwZWFiMmMyZjc3MGVhYy40MTE4YTA4ZjI1YWRkZmIzCiAgICAgMTQxZDAyYjEyM2Q0YzI1YwogCi1WTU9WSFBEXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVSTUlMUERfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDE4Yjc2NmI3YzA3MzgzNjcuZjcyZGI4ZGU2Yjk5MWFlNC5hZTI3OThhNWQ4ZjA0NzBmLjAyZmQ5YTg5YjJmMzZmMTEKICAgICBhNzMyYzYwYjliMTU1ZTdmLjJlMGNkZTc5Y2JjOTJkMzUuMmNlOGZiMDQwMGRmMGVhYi42YzQ0NzkxNTZjN2FhZDczCkBAIC0xOTY2MywxMSArMTk2NjMsMTEgQEAKICAgICA4YjIwOTAwMjAwYzNlYTNkCiAgIGFmdGVyCiAgICAgMThiNzY2YjdjMDczODM2Ny5mNzJkYjhkZTZiOTkxYWU0LmFlMjc5OGE1ZDhmMDQ3MGYuMDJmZDlhODliMmYzNmYxMQotICAgIGE3MzJjNjBiOWIxNTVlN2YuMmUwY2RlNzljYmM5MmQzNS4yY2U4ZmIwNDAwZGYwZWFiLjZjNDQ3OTE1NmM3YWFkNzMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjQ2ZjE4YTk3MzU3Y2NlYS4yNDZmMThhOTczNTdjY2VhCiAgICAgMWVkYTIwMWI0ZDQ2OGY1MS4yN2I2ZWVlNDRkNTU3NjA0LjI0NmYxOGE5NzM1N2NjZWEuZTlhZmM1YmE3YTE3ODNmZQogICAgIGRhZmE2ZjUyNzU5MzUxODkuYmRmNTY0MGIwZDRhYjM3ZS5mMjBhZWRmZmNkZTRiZTc5LjU0MGFmODY1ZjdkNmFlZGQKICAgICA4YjIwOTAwMjAwYzNlYTNkCi1WTU9WSFBEXzEyOF9Mb2FkRm9ybShtZW0pCitWUEVSTUlMUERfMTI4XzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIDY5YmYwODdlYjBlYmYzNDkuMzVkZmIwMWJhYzg3ZTFkMi5jYjk2YmNkYTI2YjM5ZGNlLmYxMDM3NjcxYTkxMzFmMDQKICAgICBjOWIxZGNjMzI0NTk4NTJlLjhjZDVkZGU0OTBhZTdhZDguMmY2NDczM2RiNDljZjMyMi43ZmE4YWQ2ZGEzNmYyZDM2CkBAIC0xOTY3NiwxMiArMTk2NzYsMTIgQEAKICAgICAxNDhkNDdjZjYxMGNiMzczCiAgIGFmdGVyCiAgICAgNjliZjA4N2ViMGViZjM0OS4zNWRmYjAxYmFjODdlMWQyLmNiOTZiY2RhMjZiMzlkY2UuZjEwMzc2NzFhOTEzMWYwNAotICAgIGM5YjFkY2MzMjQ1OTg1MmUuOGNkNWRkZTQ5MGFlN2FkOC4yZjY0NzMzZGI0OWNmMzIyLjdmYThhZDZkYTM2ZjJkMzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjEwMzc2NzFhOTEzMWYwNC43ZmE4YWQ2ZGEzNmYyZDM2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNiOTZiY2RhMjZiMzlkY2UuZjEwMzc2NzFhOTEzMWYwNAorICAgIDg5YzM4OWJmNzcxOTViMTcuM2IyOGY0MThiZDk1NWE0OC5jMzJkMDQyMGQ0MTI2ZmEzLmY3NDM5MDVlNTg4NTIyYmMKICAgICA4M2MxOGE1ZGM2MzgzMjMxLjllMjRmMDI0Y2VjN2JiY2UuNjViY2ViNmZhMTIwY2U4MC5iNDIwMWFiMDYzZTAzYTQyCiAgICAgMTQ4ZDQ3Y2Y2MTBjYjM3MwogCi1WQ1ZUUEQyUFNfMjU2KHJlZykKK1ZVTlBDS0xQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICA3MmQ1MTMyOGVkOTZjN2ZjLjk1Nzc1YTg5MmNjMWM1YTguMTExNWNkNzI2MGQwZGExNi5lZmRjYTQxNjM4ZDNjY2UyCiAgICAgMjk0MzdiMjVhNDA5YjM4OC45OWIwNzgyZmM1YzFkMWE3LmYwNDY4ODZmMGUzZGYyY2IuM2Y1YWFjMDJiNDM1MjRmOApAQCAtMTk2ODksMTIgKzE5Njg5LDEyIEBACiAgICAgMTZjNTBiYmYwMWRhMDI1Yi5lYmRmODY5OTAzNTM0NGYwLjYyOWM4NDI3MmY3MTAwMmQuOWNhMDk1NTVjZDNjZDVlYgogICAgIDYzMDA3MDk0YTJmOGE2MjAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC5mZjgwMDAwMDNhZDU2MDE2CisgICAgNmMzYTVkM2JhZTQyMTI1Yi45OWIwNzgyZmM1YzFkMWE3LjJmMDI3ZDFkMzI1NDk0ZWMuM2Y1YWFjMDJiNDM1MjRmOAogICAgIDI5NDM3YjI1YTQwOWIzODguOTliMDc4MmZjNWMxZDFhNy5mMDQ2ODg2ZjBlM2RmMmNiLjNmNWFhYzAyYjQzNTI0ZjgKICAgICA5NzI1NzkzNDIxZjFiMmM0LjZjM2E1ZDNiYWU0MjEyNWIuOTcwNTFiODc3NDk5NDA5OS4yZjAyN2QxZDMyNTQ5NGVjCiAgICAgMTZjNTBiYmYwMWRhMDI1Yi5lYmRmODY5OTAzNTM0NGYwLjYyOWM4NDI3MmY3MTAwMmQuOWNhMDk1NTVjZDNjZDVlYgogICAgIDYzMDA3MDk0YTJmOGE2MjAKLVZDVlRQRDJQU18yNTYobWVtKQorVlVOUENLTFBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDVlZWQ4OGM4Y2M5NGMxYjguMDQ3MDJjMzRkZjUxZGRmYS5mMDZjNzAzNWRmZmQyMzkxLmFkNThiZWI5ZGI1MDZlMzMKICAgICA2YTM1NWFkYzY4MWNlM2RlLmJiNzFkOWZkNThlMjdmNGQuNThhZDk2ZmI1ZTRlNmE2YS5kNDg1YzVhYjEzYzJjNTU3CkBAIC0xOTcwNCwxMSArMTk3MDQsMTEgQEAKICAgYWZ0ZXIKICAgICA1ZWVkODhjOGNjOTRjMWI4LjA0NzAyYzM0ZGY1MWRkZmEuZjA2YzcwMzVkZmZkMjM5MS5hZDU4YmViOWRiNTA2ZTMzCiAgICAgNmEzNTVhZGM2ODFjZTNkZS5iYjcxZDlmZDU4ZTI3ZjRkLjU4YWQ5NmZiNWU0ZTZhNmEuZDQ4NWM1YWIxM2MyYzU1NwotICAgIDY0YTI2M2JjOTE5ZGM4YmYuOTgxNjBjODgwNzE3MjZmZi4wMDZlNzRkODlkNTFkNmE5LjMzNmY5NjY4NzM1MzQyNDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2Y4MDAwMDAwMDAwMDAwMC5mZjgwMDAwMDgwMDAwMDAwCisgICAgMDQ3MDJjMzRkZjUxZGRmYS5iYjcxZDlmZDU4ZTI3ZjRkLmFkNThiZWI5ZGI1MDZlMzMuZDQ4NWM1YWIxM2MyYzU1NworICAgIDI2MDExZTU0NjMyMjJjODcuZjhhYWMzNDA4OTdlMGNiZC5jMjdhODdiNmI3MTMyMjc3LjI2NjEyYzVjOTg5MDIxYTYKICAgICAwOWE5ODNmMzFkMDQ5ZTJhCiAKLVZDVlRQRDJQU18yNTYocmVnKQorVlVOUENLTFBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDM4OTE5Nzk5OWYzY2Y0N2MuOGQxZTA4OTBmYmI4Y2E2MS4zNTc4Zjk5MTc5YTM2ZTMzLjdiOWY0OTgzYzk5ZTBjMDMKICAgICAwZTY2NjRiYWI5YzI2MDQ3Ljc1YzU5YjVjNzU2YTVmN2EuYWNjZGFiZTc3MzEwODcwYy4wN2E3MzgyOWVlMDE0ZTc3CkBAIC0xOTcxNiwxMiArMTk3MTYsMTIgQEAKICAgICAyNDA3MWIxZDI3ZWU2OWZiLjM4ZTBiMTU1N2M1MzVkMTcuYjkzYzZmNTNmOGY4ZDI5OS4wOTkzOGJiNWUzNzhjY2M5CiAgICAgMzYwZmU2NzJlYmE1ODBmZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDdmODAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBiYWMxNTVhNWVjNDRhNmZkLjc1YzU5YjVjNzU2YTVmN2EuNDI1ZmNmOTY0MzQ1YTQwMC4wN2E3MzgyOWVlMDE0ZTc3CiAgICAgMGU2NjY0YmFiOWMyNjA0Ny43NWM1OWI1Yzc1NmE1ZjdhLmFjY2RhYmU3NzMxMDg3MGMuMDdhNzM4MjllZTAxNGU3NwogICAgIGU5NzRlN2MyMDgyNTFkMzguYmFjMTU1YTVlYzQ0YTZmZC5iYWY1ZDNhZTE0NTM5NWY0LjQyNWZjZjk2NDM0NWE0MDAKICAgICAyNDA3MWIxZDI3ZWU2OWZiLjM4ZTBiMTU1N2M1MzVkMTcuYjkzYzZmNTNmOGY4ZDI5OS4wOTkzOGJiNWUzNzhjY2M5CiAgICAgMzYwZmU2NzJlYmE1ODBmZgotVkNWVFBEMlBTXzI1NihtZW0pCitWVU5QQ0tMUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYTY5ZjVlYjk3NmQ5N2RjZC4xYjZhZmMzOGIzYWI3ZTNiLmNjZWMyYjVhNDJhMjNlZjQuMDZlZTdhNDBiYTg5N2FhNAogICAgIDM1MGY2ZTc2YTExZjdmNjAuMjllYjg2N2Q0N2U3OTlhNS41MGIyM2Y5ZTVhM2QwNmJmLmZkNTZmMGUyZjY5NGNiYzQKQEAgLTE5NzMxLDExICsxOTczMSwxMSBAQAogICBhZnRlcgogICAgIGE2OWY1ZWI5NzZkOTdkY2QuMWI2YWZjMzhiM2FiN2UzYi5jY2VjMmI1YTQyYTIzZWY0LjA2ZWU3YTQwYmE4OTdhYTQKICAgICAzNTBmNmU3NmExMWY3ZjYwLjI5ZWI4NjdkNDdlNzk5YTUuNTBiMjNmOWU1YTNkMDZiZi5mZDU2ZjBlMmY2OTRjYmM0Ci0gICAgYmYyYTkyOTY4NzgzNDFlNC5hY2Q0YjY1YTdmMmZmNWU0LmExZmU2YTBmZGYzMDcwYTUuZmFjMmNkYTY0OWE1ZmZhMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLmZmODAwMDAwMDAwMDAwMDAKKyAgICAxYjZhZmMzOGIzYWI3ZTNiLjI5ZWI4NjdkNDdlNzk5YTUuMDZlZTdhNDBiYTg5N2FhNC5mZDU2ZjBlMmY2OTRjYmM0CisgICAgMjBiZDQ2MDM0NDEyODA4NC5mZTcyODYzYWY4MGVkMGE1LjliOWMyNjk4ZWQ4ODM5ZDEuNTk3YzBlZjc0ZTQ3NTNlZAogICAgIDc3ZDFhZTQwYTIwNjAzNTAKIAotVkNWVFBEMlBTXzI1NihyZWcpCitWVU5QQ0tMUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYWUwZGE5ZWZlMDZlNGE3NS4zNDk0MDdhYWY1ZDdmODZjLjdkMTFmNDg4NGUxMDY0OTMuMTk1OGYxMjVhMTUxMWQ3MAogICAgIDViN2NmYjZmYTUwYzY1MGIuZDY3YjUwNzhiNmRlNjRjYS44NGZkZmJiMjFjYzJlZDViLmY5ZmQ0N2EyMTY5NWQ4YWUKQEAgLTE5NzQzLDEyICsxOTc0MywxMiBAQAogICAgIDg2MjI5NTkyMzIxNzA2MzQuMzlhOTZhMzVkNWU0MGM5Mi45OWViYzU0NzkxNjNkMjI4LjRjMzY4MDFjYjVjNGMxYjUKICAgICA3NzYxNWNmMTE2YzU2OGQ2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmODAwMDAwZmY4MDAwMDAuODAwMDAwMDBmZjgwMDAwMAorICAgIGU0M2U5ZDU4YTIzNDgyYzguZDY3YjUwNzhiNmRlNjRjYS4xNjU4YTJmYjY5NjIyNWI2LmY5ZmQ0N2EyMTY5NWQ4YWUKICAgICA1YjdjZmI2ZmE1MGM2NTBiLmQ2N2I1MDc4YjZkZTY0Y2EuODRmZGZiYjIxY2MyZWQ1Yi5mOWZkNDdhMjE2OTVkOGFlCiAgICAgZGE2OWExMmM4YzZiOTBiYy5lNDNlOWQ1OGEyMzQ4MmM4LjZlODI5ODIzZmVhZWE5YTkuMTY1OGEyZmI2OTYyMjViNgogICAgIDg2MjI5NTkyMzIxNzA2MzQuMzlhOTZhMzVkNWU0MGM5Mi45OWViYzU0NzkxNjNkMjI4LjRjMzY4MDFjYjVjNGMxYjUKICAgICA3NzYxNWNmMTE2YzU2OGQ2Ci1WQ1ZUUEQyUFNfMjU2KG1lbSkKK1ZVTlBDS0xQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICA3M2E2YjI2N2FhNzNkNjQ2LmJkZjFkNTBlMzI5ZDA1MjEuYjE4NzM0ZmQ2Y2ZhYmU1Ni41Zjg2ODA4YjcxNmFhNTg1CiAgICAgMWJkMGZlNjg4YWRhYzYzMS5kYTIzNWMwYTI5ODhjNzJjLjI4YTU3NTliODI4MzU2M2QuMWQ5ZGM0NTkzOTUxNWQ2YwpAQCAtMTk3NTgsMTEgKzE5NzU4LDExIEBACiAgIGFmdGVyCiAgICAgNzNhNmIyNjdhYTczZDY0Ni5iZGYxZDUwZTMyOWQwNTIxLmIxODczNGZkNmNmYWJlNTYuNWY4NjgwOGI3MTZhYTU4NQogICAgIDFiZDBmZTY4OGFkYWM2MzEuZGEyMzVjMGEyOTg4YzcyYy4yOGE1NzU5YjgyODM1NjNkLjFkOWRjNDU5Mzk1MTVkNmMKLSAgICA0ZGFkYmNlMmQ0MDRmNWMyLjM5MDQyN2YzYjI2NTg4MDQuNzlkMGFiZmIzNDhhOGU3Ni4zMDdkOGQxZTg1YTQzODg4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmODAwMDAwYWY4ZWE4NzIuODAwMDAwMDA3ZjgwMDAwMAorICAgIGJkZjFkNTBlMzI5ZDA1MjEuZGEyMzVjMGEyOTg4YzcyYy41Zjg2ODA4YjcxNmFhNTg1LjFkOWRjNDU5Mzk1MTVkNmMKKyAgICBlNDA3NjliZmE0ZmYxZjI1LjM2ZTAzMDM2NjliZjg2NTMuODJkMjUxMDk5ZTFiMjMyYi5mMjcyZDg0N2YyZWQ3MDg1CiAgICAgYzBjODlmM2UxYmJhNDExMQogCi1WUFVOUENLSERRXzEyOChyZWcpCitWVU5QQ0tIUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZjdjYWUwNzE5ZDk3ZTlkNi5iY2FjODBlZDE1ZDdmZjg4LjJkMDM3NTNkZWIyMmZiYzUuMWU3N2U0YjFkYTQzZDA4OAogICAgIGYxYzY5NjRiMTMwZWEyODAuYjA2NjdkNTc0Mzk2NTIxNS43YWI4ZjE3NmQ0MWEyNDA3LjI4OGRkZWUwMDcwZDUyYmEKQEAgLTE5NzcwLDEyICsxOTc3MCwxMiBAQAogICAgIGExZDc1MmEzNGQwMDNhMzYuNjA0YjFhOGY0OWZmNDE1ZS44NTBjN2YyYjQ4ZmI4MGFhLmZiMzhmYzdlOWViOGM1NGMKICAgICA3YTY1MTdjNzQwYjEyZTA0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc4NGRhMDRjN2FiOGYxNzYuYmYzNDNjYzVkNDFhMjQwNworICAgIDBiMDZiZTM3MWFhZGE5YmMuZjFjNjk2NGIxMzBlYTI4MC43ODRkYTA0Y2JmMzQzY2M1LjdhYjhmMTc2ZDQxYTI0MDcKICAgICBmMWM2OTY0YjEzMGVhMjgwLmIwNjY3ZDU3NDM5NjUyMTUuN2FiOGYxNzZkNDFhMjQwNy4yODhkZGVlMDA3MGQ1MmJhCiAgICAgMGIwNmJlMzcxYWFkYTliYy45ZTAyZGRlOTRiNGFkNGY4Ljc4NGRhMDRjYmYzNDNjYzUuN2VkZmJkODAzZTg1NjVlZAogICAgIGExZDc1MmEzNGQwMDNhMzYuNjA0YjFhOGY0OWZmNDE1ZS44NTBjN2YyYjQ4ZmI4MGFhLmZiMzhmYzdlOWViOGM1NGMKICAgICA3YTY1MTdjNzQwYjEyZTA0Ci1WUFVOUENLSERRXzEyOChtZW0pCitWVU5QQ0tIUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZDkzMjhiNDY0MjdjNWI0MS4wZjg1NTBmYTQ5OTE5MDk5LmQ0MGZiMjM1NThjMDU0NzMuZmM0Mjg4N2YwY2ZjMmM2MwogICAgIGYyNmJkMmU2YzAyNjA5MmUuYjI1Y2IzYThhOWVlZTg5Mi5kNDE5MjBjNzk0OTljYTYyLjM4M2JiOWI0YTZjMjdjOWMKQEAgLTE5Nzg1LDExICsxOTc4NSwxMSBAQAogICBhZnRlcgogICAgIGQ5MzI4YjQ2NDI3YzViNDEuMGY4NTUwZmE0OTkxOTA5OS5kNDBmYjIzNTU4YzA1NDczLmZjNDI4ODdmMGNmYzJjNjMKICAgICBmMjZiZDJlNmMwMjYwOTJlLmIyNWNiM2E4YTllZWU4OTIuZDQxOTIwYzc5NDk5Y2E2Mi4zODNiYjliNGE2YzI3YzljCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ0MGZiMjM1ZDQxOTIwYzcuNThjMDU0NzM5NDk5Y2E2MgorICAgIGQ5MzI4YjQ2NDI3YzViNDEuZjI2YmQyZTZjMDI2MDkyZS5kNDBmYjIzNTU4YzA1NDczLmQ0MTkyMGM3OTQ5OWNhNjIKICAgICBjNjUxY2UzZTlkNDVkNmNhLjAyYjQ5OWJhMDYzYjhkZjQuZWMyZDZmNjAwNWM0Y2U4MS43M2E1ODE3MWNlY2VmNzNjCiAgICAgMmFhZjBmZDE5NDJjOTlmYgogCi1WUFVOUENLSERRXzEyOChyZWcpCitWVU5QQ0tIUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMTZhYmI1YzNhMDdmZDBlYS4zODk1N2JjZDM1ZDI2ZWQwLjY4Y2UxM2Y1M2M0MjUyYjYuYmNkMDQ4M2U3MjJlZDQwOAogICAgIDk1ZTY2ZWIxOGY1M2Q2YjQuZDY3NWViMmViOTZkNzczOC43MjQwZTMzODQ2NDQwOWJkLjg4ZTllN2I5N2NlMTJkMTkKQEAgLTE5Nzk3LDEyICsxOTc5NywxMiBAQAogICAgIGI4NDkwOTM2ODRiMTQyOGMuMDEzOTA5MTdmMmZlY2JkOS5lMjVmNzM4MjQ3NmIzYzRjLjg4YWM2NzMyZDk0ZmM3OGMKICAgICA3M2VmNDEwOTYzMjI4MDQ2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdjNTcwNGVkNzI0MGUzMzguYzBjZWVlYjY0NjQ0MDliZAorICAgIDAxYWMzNjA5ZmMzNWU4MDYuOTVlNjZlYjE4ZjUzZDZiNC43YzU3MDRlZGMwY2VlZWI2LjcyNDBlMzM4NDY0NDA5YmQKICAgICA5NWU2NmViMThmNTNkNmI0LmQ2NzVlYjJlYjk2ZDc3MzguNzI0MGUzMzg0NjQ0MDliZC44OGU5ZTdiOTdjZTEyZDE5CiAgICAgMDFhYzM2MDlmYzM1ZTgwNi43YWJkOWM0ZTQ0MjJhZDJjLjdjNTcwNGVkYzBjZWVlYjYuMmQ0NGM4YmI0MGU3OTVlMgogICAgIGI4NDkwOTM2ODRiMTQyOGMuMDEzOTA5MTdmMmZlY2JkOS5lMjVmNzM4MjQ3NmIzYzRjLjg4YWM2NzMyZDk0ZmM3OGMKICAgICA3M2VmNDEwOTYzMjI4MDQ2Ci1WUFVOUENLSERRXzEyOChtZW0pCitWVU5QQ0tIUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgY2JkN2QxMmNmYzZlN2MzYS4xNDA4ZTRhNGMyNTExZmYxLjQ4YjVhZTc2ZTAwYzhlNmEuZmZhMzJhNjI3NmE4MzEyYwogICAgIDZjMzE5Mzg3YmQzZTc2OTUuNzMzN2MyYmU1M2EzYmRlMi4yOWZkMDg1ODI5NTliMTBjLjMxNzEyN2Y5ZWEwZjA2MDIKQEAgLTE5ODEyLDExICsxOTgxMiwxMSBAQAogICBhZnRlcgogICAgIGNiZDdkMTJjZmM2ZTdjM2EuMTQwOGU0YTRjMjUxMWZmMS40OGI1YWU3NmUwMGM4ZTZhLmZmYTMyYTYyNzZhODMxMmMKICAgICA2YzMxOTM4N2JkM2U3Njk1LjczMzdjMmJlNTNhM2JkZTIuMjlmZDA4NTgyOTU5YjEwYy4zMTcxMjdmOWVhMGYwNjAyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ4YjVhZTc2MjlmZDA4NTguZTAwYzhlNmEyOTU5YjEwYworICAgIGNiZDdkMTJjZmM2ZTdjM2EuNmMzMTkzODdiZDNlNzY5NS40OGI1YWU3NmUwMGM4ZTZhLjI5ZmQwODU4Mjk1OWIxMGMKICAgICBmYTZiOWQ5NTJkOWM1NzJlLmE1MTA3N2FiZGI4YjI2MTcuMmMyMGM3NTEzZWRkMGIzMS40MWQ3ZTBmYzBmOTE0NzNkCiAgICAgZDcwNzk0NDBmOWMzMmFmYwogCi1WUFVOUENLSERRXzEyOChyZWcpCitWVU5QQ0tIUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZjFmMDdlZWI5NjUwZGY2MC45ZWUyZGUyMTEzNDFiNmM0LjMxNTM0NzU2MGIzOTZhYjIuMDc5MzI1NDE0MjJjYjgwZAogICAgIGVhZGQ5OTY5ODRjNWExMTUuZmJmYzQxOTQ5MjlhMDM3MS4zMDM1MGE1ZGZlYzk1ZThhLmVjMDIyNzYzMTFlYWI3YTkKQEAgLTE5ODI0LDEyICsxOTgyNCwxMiBAQAogICAgIGVlZjg1MjhmYzI5NDNmMjUuNTA0NDVkZTNjZDlhNWFiZi5mMjA2NTkzMzlhYmI0NjliLjQ3MDQwOWVkODJlMTk2ZDMKICAgICA3NTJlZTAyZDVjMzJlZmI5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZjMDJiYjJkMzAzNTBhNWQuNGVjNTNlNDhmZWM5NWU4YQorICAgIDIwMWNlMTI3NWZhY2FkYzguZWFkZDk5Njk4NGM1YTExNS5mYzAyYmIyZDRlYzUzZTQ4LjMwMzUwYTVkZmVjOTVlOGEKICAgICBlYWRkOTk2OTg0YzVhMTE1LmZiZmM0MTk0OTI5YTAzNzEuMzAzNTBhNWRmZWM5NWU4YS5lYzAyMjc2MzExZWFiN2E5CiAgICAgMjAxY2UxMjc1ZmFjYWRjOC5lZDgzNDJkY2M3YjRmYjYxLmZjMDJiYjJkNGVjNTNlNDguYjgzOTRhYTNjODIyYzIzMgogICAgIGVlZjg1MjhmYzI5NDNmMjUuNTA0NDVkZTNjZDlhNWFiZi5mMjA2NTkzMzlhYmI0NjliLjQ3MDQwOWVkODJlMTk2ZDMKICAgICA3NTJlZTAyZDVjMzJlZmI5Ci1WUFVOUENLSERRXzEyOChtZW0pCitWVU5QQ0tIUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMWU4NTRiNGY3MTIxODgxMC5hZmJjZTkwZjRhMDY5M2Q3LjAwMGIwZjk3YzE1OWRjYjguNmU4Y2RkZDk3YzM3YjEyZAogICAgIDFlZDNjNjQwZGViYjFlMDMuYzFiNWEwMTE5MjkwZTQ4Yi5kOWE0ZDNlM2JmZmMzYzc3LmNjZTE0NThkOTBjM2JjYWEKQEAgLTE5ODM5LDExICsxOTgzOSwxMSBAQAogICBhZnRlcgogICAgIDFlODU0YjRmNzEyMTg4MTAuYWZiY2U5MGY0YTA2OTNkNy4wMDBiMGY5N2MxNTlkY2I4LjZlOGNkZGQ5N2MzN2IxMmQKICAgICAxZWQzYzY0MGRlYmIxZTAzLmMxYjVhMDExOTI5MGU0OGIuZDlhNGQzZTNiZmZjM2M3Ny5jY2UxNDU4ZDkwYzNiY2FhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMGIwZjk3ZDlhNGQzZTMuYzE1OWRjYjhiZmZjM2M3NworICAgIDFlODU0YjRmNzEyMTg4MTAuMWVkM2M2NDBkZWJiMWUwMy4wMDBiMGY5N2MxNTlkY2I4LmQ5YTRkM2UzYmZmYzNjNzcKICAgICA5Mzg3ZGUzYjJkMWQzMDZmLjQ0NzY2MzUwZDMxYTcwYTguNzY3YjgxZjM0NjFmODhmYS45ZTI4YWRjY2MwNDFhMTE4CiAgICAgY2FiMmE3MmYxNDRhZjM2MQogCi1WQlJPQURDQVNUU1NfMTI4KHJlZykKK1ZTSFVGUFNfMHgzOV8yNTYocmVnKQogICBiZWZvcmUKICAgICA0ODNiNzM0ZjBhOTRkNTQ1LmJmODU3MjFkNDhmZTI1NDAuNmRkNjY3NjQwNTMyMjI2OS5mMjUxNjM4ZjA3YjdlZDE1CiAgICAgNzQwZTBmOTgzZmFiODI3MC5iM2FhMDY3ZTJhYjkwNjVlLjU3OWE3YmFiNjc5MWMyZGIuMDcyYTQ4NzM0MzYzMjBhNgpAQCAtMTk4NTEsMTIgKzE5ODUxLDEyIEBACiAgICAgNDZjNWE0NTVkMzcyMzA0ZS42MDlkMWY2YWI2ZWU3ZTJlLmRhODJjODgzMmM1NmJjODQuNmIxMDA4YzQ5NTI5ZTJkZQogICAgIDczYjVkYjA4ZTU1YWU5ZGIKICAgYWZ0ZXIKLSAgICA0ODNiNzM0ZjBhOTRkNTQ1LmJmODU3MjFkNDhmZTI1NDAuNmRkNjY3NjQwNTMyMjI2OS5mMjUxNjM4ZjA3YjdlZDE1CisgICAgYjZlZTdlMmU0NmM1YTQ1NS4zZmFiODI3MGIzYWEwNjdlLjk1MjllMmRlZGE4MmM4ODMuNjc5MWMyZGIwNzJhNDg3MwogICAgIDc0MGUwZjk4M2ZhYjgyNzAuYjNhYTA2N2UyYWI5MDY1ZS41NzlhN2JhYjY3OTFjMmRiLjA3MmE0ODczNDM2MzIwYTYKICAgICBhYTc4NzY3NjRlMWMzNzkwLjRhYzQxNjQ5ZjA1YThmZjQuNWMxMDlkOTE5NWM0OGNhYi45MGQwYWI4YjEzMzBkZWRiCiAgICAgNDZjNWE0NTVkMzcyMzA0ZS42MDlkMWY2YWI2ZWU3ZTJlLmRhODJjODgzMmM1NmJjODQuNmIxMDA4YzQ5NTI5ZTJkZQogICAgIDczYjVkYjA4ZTU1YWU5ZGIKLVZCUk9BRENBU1RTU18xMjgobWVtKQorVlNIVUZQU18weDM5XzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDg0OGRhMTQ1MWVkMGFmZmYuYTQ0MTk1YTI2YzNhYTk1OS5kMTAyOWNjZDk2ODA4ZDNhLjJiM2RmOGViYzdkMzhkMTMKICAgICA3OTYyZDU2NTVkOTZmMDc2LjIwMzg0NmM3YjJmZmRkNWIuNzhiZjA5NWVhZjFjNzk0Mi5hYzhkMmEzNjAzYzgzYzA0CkBAIC0xOTg2NSwxMiArMTk4NjUsMTIgQEAKICAgICBlOGYyOWVhMzkxZWFkM2Q3CiAgIGFmdGVyCiAgICAgODQ4ZGExNDUxZWQwYWZmZi5hNDQxOTVhMjZjM2FhOTU5LmQxMDI5Y2NkOTY4MDhkM2EuMmIzZGY4ZWJjN2QzOGQxMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jN2QzOGQxM2M3ZDM4ZDEzLmM3ZDM4ZDEzYzdkMzhkMTMKLSAgICAzMDAyZjM1NmJkYjg2NzZiLjE2ZjZiMjMyNDM0ZDA5MDAuMzNhMGUzMDkxYmNmZmQ3Mi5iYWJlNTlkMTdjYzAwNTAyCisgICAgNzk2MmQ1NjU1ZDk2ZjA3Ni4yMDM4NDZjN2IyZmZkZDViLjc4YmYwOTVlYWYxYzc5NDIuYWM4ZDJhMzYwM2M4M2MwNAorICAgIDg0OGRhMTQ1NmMzYWE5NTkuMjAzODQ2Yzc1ZDk2ZjA3Ni5kMTAyOWNjZGM3ZDM4ZDEzLmFjOGQyYTM2YWYxYzc5NDIKICAgICA4NDM3NzcwMzVhNDNkMjBiLmUxYzdkNTRkYmJiMDY5ZjUuZGQ3MWE0YmFmNmE0ZDZmNy5hZjFiODAyN2NjNDcyM2JhCiAgICAgZThmMjllYTM5MWVhZDNkNwogCi1WQlJPQURDQVNUU1NfMTI4KHJlZykKK1ZTSFVGUFNfMHgzOV8yNTYocmVnKQogICBiZWZvcmUKICAgICBjMThkYWNiMzY3MzQ1MTA2LjUwY2VkZDU4NTE0MmVhODIuZGZmNmFiODZiNWI1MzllNi41MWZkY2E1ZTVkYTdjMGZkCiAgICAgOTczOWE3YzJlOWIxZDlmMy43MjkyYTI0MWJkYzI2ZWZiLjZiZDAzMDQ4Y2RlN2I0N2UuNmQxMmQwZGY2YmU1NzdhZgpAQCAtMTk4NzgsMTIgKzE5ODc4LDEyIEBACiAgICAgYTVmNDU2OGQ2Mzc2ZjViNS4yNGQ2MzY3ZjY3NzFhNWE1LjljYjUzOTE3YzkwNDllNTYuMDkwMjZkMmNlZDQwM2JjYQogICAgIDQxNzZmYmQwOWE3NGMwOGEKICAgYWZ0ZXIKLSAgICBjMThkYWNiMzY3MzQ1MTA2LjUwY2VkZDU4NTE0MmVhODIuZGZmNmFiODZiNWI1MzllNi41MWZkY2E1ZTVkYTdjMGZkCisgICAgNjc3MWE1YTVhNWY0NTY4ZC5lOWIxZDlmMzcyOTJhMjQxLmVkNDAzYmNhOWNiNTM5MTcuY2RlN2I0N2U2ZDEyZDBkZgogICAgIDk3MzlhN2MyZTliMWQ5ZjMuNzI5MmEyNDFiZGMyNmVmYi42YmQwMzA0OGNkZTdiNDdlLjZkMTJkMGRmNmJlNTc3YWYKICAgICBjNDQyOGMzY2I0ZWVhNjQ5LmM0NTE0MWFhYmJjZDE4YTMuZTBhMTYxZmZhMGQzMTc2YS4wYjdhMzIyYjNjNjliNzNhCiAgICAgYTVmNDU2OGQ2Mzc2ZjViNS4yNGQ2MzY3ZjY3NzFhNWE1LjljYjUzOTE3YzkwNDllNTYuMDkwMjZkMmNlZDQwM2JjYQogICAgIDQxNzZmYmQwOWE3NGMwOGEKLVZCUk9BRENBU1RTU18xMjgobWVtKQorVlNIVUZQU18weDM5XzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDkxYTI1YTAyNWUxMzAxYTcuOTY5YTAxMjE5M2Q1MDJlMy42Y2VjZmRhY2RiYmFkMTJlLmZhNThiNGZjZTUwNjg0ZWQKICAgICBkMzUxMDVhZTU2MjliYjRjLmYzODI4YTY1ZGY5ODA5N2UuN2E2MDEyMWUzNmIzNTc2OS41NWQ1Y2UxYThmNjUwNmRjCkBAIC0xOTg5MiwxMiArMTk4OTIsMTIgQEAKICAgICBmNDY3YjAwNGZkMmM4YjZkCiAgIGFmdGVyCiAgICAgOTFhMjVhMDI1ZTEzMDFhNy45NjlhMDEyMTkzZDUwMmUzLjZjZWNmZGFjZGJiYWQxMmUuZmE1OGI0ZmNlNTA2ODRlZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNTA2ODRlZGU1MDY4NGVkLmU1MDY4NGVkZTUwNjg0ZWQKLSAgICBlNTUxNzljMDlkYzFhYWE2LjE4ZjZlYmMzZTM0YTQ1MzIuMjhmZWYyYmY5MTY4ZjU4My4wYjdhODRkZTY0YWU2MGNlCisgICAgZDM1MTA1YWU1NjI5YmI0Yy5mMzgyOGE2NWRmOTgwOTdlLjdhNjAxMjFlMzZiMzU3NjkuNTVkNWNlMWE4ZjY1MDZkYworICAgIDkxYTI1YTAyOTNkNTAyZTMuZjM4MjhhNjU1NjI5YmI0Yy42Y2VjZmRhY2U1MDY4NGVkLjU1ZDVjZTFhMzZiMzU3NjkKICAgICBhMTZjMzAyNDRmZTc4YWUwLjYxNDQyMmE5M2M3OGYzYWMuNTQ5MjE4N2QwYmU1NjRhOC43NjkxZDBiMmZmNmRjZTcwCiAgICAgZjQ2N2IwMDRmZDJjOGI2ZAogCi1WQlJPQURDQVNUU1NfMTI4KHJlZykKK1ZTSFVGUFNfMHgzOV8yNTYocmVnKQogICBiZWZvcmUKICAgICBkZjQ4MjAzZWY5NzlkNDcyLmU0NmZhOGM2ODlhNzE3MjcuMmFiNjJhODE4NmFjNGU5OC5kOGU4MDA0M2JkMzc2MzAzCiAgICAgOTU4MDFhY2U5MGUwZTUyYi44YjI2NWM5MjY2MGUwY2E3LmNmOTgwMGI5NWI3NDk0YTEuOTFjYjI3ZmNjNjY5YWNjMQpAQCAtMTk5MDUsMTIgKzE5OTA1LDEyIEBACiAgICAgY2QyNGExOWRmYzI4NGQ2Ny43MGRmNjk1OTdjZmYyMDAwLjFkZTEwMmY1MWRlZmNjYmQuMTM2YzFlZmM0NjlmMGYxNQogICAgIDkzYzFlNzFhZjdiYWExMDIKICAgYWZ0ZXIKLSAgICBkZjQ4MjAzZWY5NzlkNDcyLmU0NmZhOGM2ODlhNzE3MjcuMmFiNjJhODE4NmFjNGU5OC5kOGU4MDA0M2JkMzc2MzAzCisgICAgN2NmZjIwMDBjZDI0YTE5ZC45MGUwZTUyYjhiMjY1YzkyLjQ2OWYwZjE1MWRlMTAyZjUuNWI3NDk0YTE5MWNiMjdmYwogICAgIDk1ODAxYWNlOTBlMGU1MmIuOGIyNjVjOTI2NjBlMGNhNy5jZjk4MDBiOTViNzQ5NGExLjkxY2IyN2ZjYzY2OWFjYzEKICAgICA3MDViOWMxZjVkZWJmOTQzLjcwNWRjODc1MDMyNzI2OGIuYWMzODllYmM1YTVjZmY3NC41YzA5MDc5NjNmODhmYzBlCiAgICAgY2QyNGExOWRmYzI4NGQ2Ny43MGRmNjk1OTdjZmYyMDAwLjFkZTEwMmY1MWRlZmNjYmQuMTM2YzFlZmM0NjlmMGYxNQogICAgIDkzYzFlNzFhZjdiYWExMDIKLVZCUk9BRENBU1RTU18xMjgobWVtKQorVlNIVUZQU18weDM5XzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGI4ZDRkZWRjNmRlNTZkMDMuMDkyODI1YjQwYjIyMWQ0My42NzdhYjkyY2ViYTFiODMxLjdlZGUyN2QyNDBiOTM2MjcKICAgICA1ZTcxODAyZmM0MmQzMDQxLjdlYjQyNGQwMjM2NmE1ODIuMzFmODM2ZDk2ZjE5YTg0Yi4yYTdjMDliZTYwNDY3YTVmCkBAIC0xOTkxOSwxMiArMTk5MTksMTIgQEAKICAgICA5MTE0ZjcxNWMyZmJiOTkwCiAgIGFmdGVyCiAgICAgYjhkNGRlZGM2ZGU1NmQwMy4wOTI4MjViNDBiMjIxZDQzLjY3N2FiOTJjZWJhMWI4MzEuN2VkZTI3ZDI0MGI5MzYyNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MGI5MzYyNzQwYjkzNjI3LjQwYjkzNjI3NDBiOTM2MjcKLSAgICA2MTYzNDdmZDE5OWRhNWViLjg5MTI5YTVkZTI3ZjIwZDAuYWIyNjViNGIyMTczYWM3YS43ZjA4YTQyNjE4MjNkNDEwCisgICAgNWU3MTgwMmZjNDJkMzA0MS43ZWI0MjRkMDIzNjZhNTgyLjMxZjgzNmQ5NmYxOWE4NGIuMmE3YzA5YmU2MDQ2N2E1ZgorICAgIGI4ZDRkZWRjMGIyMjFkNDMuN2ViNDI0ZDBjNDJkMzA0MS42NzdhYjkyYzQwYjkzNjI3LjJhN2MwOWJlNmYxOWE4NGIKICAgICA5ZTc4YjEzMzg4NDI4YTJiLjg2OGY4NGM3ZTNmYWNiZGEuYWZkMGE0NzAyMGJjODJlOS5kOGNiZjU3NDA1ZGI4MGU3CiAgICAgOTExNGY3MTVjMmZiYjk5MAogCi1WUE1PVlNYRFFfMTI4KHJlZykKK1ZVTlBDS0xQU18yNTYocmVnKQogICBiZWZvcmUKICAgICAwNTJlYTY3NmVjMGViY2I2LmVmN2EzOWJlMmMyNzk5MmQuZDI3NmRkN2JjMzYxZTI0Yy4xYWMyOGUzMzg1MDBlNGM1CiAgICAgOTI2NGZlMDExZWEwYzUwNi4zMTM2NWM4ODIxNTg4ZjFmLmM3MTVhMWUzMWU0MmEwZDIuYzhjODk0ODA2ZTQ5OGYzOQpAQCAtMTk5MzIsMTIgKzE5OTMyLDEyIEBACiAgICAgNjM1ODlhNDkwYjcyZDhkMi5mODBjNWY4ZTcwZDAxZTdkLjFmYTY1YjgzYjJhMDA1YzcuNWQzZmU0NjkzYjFmYWY5YwogICAgIGZjNDgyNmRjNTdjNDljZTIKICAgYWZ0ZXIKLSAgICAwNTJlYTY3NmVjMGViY2I2LmVmN2EzOWJlMmMyNzk5MmQuZDI3NmRkN2JjMzYxZTI0Yy4xYWMyOGUzMzg1MDBlNGM1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmOTVhZTMyNDQuZmZmZmZmZmZmN2E1M2Y3MgorICAgIDQwNzg5NDdmMzEzNjVjODguODRlMjI3MmEyMTU4OGYxZi45NWFlMzI0NGM4Yzg5NDgwLmY3YTUzZjcyNmU0OThmMzkKKyAgICA5MjY0ZmUwMTFlYTBjNTA2LjMxMzY1Yzg4MjE1ODhmMWYuYzcxNWExZTMxZTQyYTBkMi5jOGM4OTQ4MDZlNDk4ZjM5CiAgICAgOTIwNGZjMjRmNDNlMTAyYi40MDc4OTQ3Zjg0ZTIyNzJhLmMyYjZjZDZkOGYyOTQzMTcuOTVhZTMyNDRmN2E1M2Y3MgogICAgIDYzNTg5YTQ5MGI3MmQ4ZDIuZjgwYzVmOGU3MGQwMWU3ZC4xZmE2NWI4M2IyYTAwNWM3LjVkM2ZlNDY5M2IxZmFmOWMKICAgICBmYzQ4MjZkYzU3YzQ5Y2UyCi1WUE1PVlNYRFFfMTI4KG1lbSkKK1ZVTlBDS0xQU18yNTYobWVtKQogICBiZWZvcmUKICAgICA0ZTk1NzU4YTY2OWZjMjcxLjYwYWRkNmRlZmZjYjVhYTYuMzViZTM4YTEwMjJlMzA0Mi4zYTMyNDk5MzI0MzUyMjkwCiAgICAgMmZmMjRjNWQ4NGJjZGM3NC5lNDRmYWM0ZTZiZDJkMjU0LmQzNTk5YmE0NTUwOTE5YTUuNmZhMzkyMDg4MDc0ZDgxYgpAQCAtMTk5NDYsMTIgKzE5OTQ2LDEyIEBACiAgICAgNDI1YTY4ZmQyYzlmZGUwYwogICBhZnRlcgogICAgIDRlOTU3NThhNjY5ZmMyNzEuNjBhZGQ2ZGVmZmNiNWFhNi4zNWJlMzhhMTAyMmUzMDQyLjNhMzI0OTkzMjQzNTIyOTAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAzYTMyNDk5My4wMDAwMDAwMDI0MzUyMjkwCi0gICAgN2EyYjI3NDNjZTI4YTgxOC40ZDg5MTYwNWViMTU3Yjg4LmFkYWIwNTgzODY2Yzk0ZDMuMWE0ODMyNGU2M2U4NjExNworICAgIDJmZjI0YzVkODRiY2RjNzQuZTQ0ZmFjNGU2YmQyZDI1NC5kMzU5OWJhNDU1MDkxOWE1LjZmYTM5MjA4ODA3NGQ4MWIKKyAgICA2MGFkZDZkZWU0NGZhYzRlLmZmY2I1YWE2NmJkMmQyNTQuM2EzMjQ5OTM2ZmEzOTIwOC4yNDM1MjI5MDgwNzRkODFiCiAgICAgMGQwYzgyMjY2MGVlZTA4OS5mNWE5MTE2ZjFjMjA5MmVkLmExN2VmMDJhYjA2MzVlZjguOTc2YzI2ZDE2ODFkZjkyZQogICAgIDQyNWE2OGZkMmM5ZmRlMGMKIAotVlBNT1ZTWERRXzEyOChyZWcpCitWVU5QQ0tMUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNzc2MGY2M2U0YWZiNGE1ZS5jMzYwZDlmNDU0MWE0MGYyLjNhZjk5YWY4OWE3ZDUzMzAuOGE5ZmRhODVmMGZiMzM0MAogICAgIDkyYzhjYzAxNWViYzdhZDAuNzhmNWE5OThjOWI5ODY4MC43NmM3YWMwYzAwYmFmYWZkLjQ0ZGEzZTgxNjEzZmNmZDUKQEAgLTE5OTU5LDEyICsxOTk1OSwxMiBAQAogICAgIGVhZjEzYmI4ZGI5ZTE1YzMuNGUwZGExMTJhMDdkYWZiOS40NzA4NWM4NmY1MDJlOGUyLjlhY2Q2NTA4NDhmYzRhOWQKICAgICBlZjFkMjA2YmY1OGRhMjI3CiAgIGFmdGVyCi0gICAgNzc2MGY2M2U0YWZiNGE1ZS5jMzYwZDlmNDU0MWE0MGYyLjNhZjk5YWY4OWE3ZDUzMzAuOGE5ZmRhODVmMGZiMzM0MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmFiZmE5OTA4LjAwMDAwMDAwMjAzYmVkZTYKKyAgICAwODk1NmRmZTc4ZjVhOTk4LmQ5ZDY2YzVlYzliOTg2ODAuYWJmYTk5MDg0NGRhM2U4MS4yMDNiZWRlNjYxM2ZjZmQ1CisgICAgOTJjOGNjMDE1ZWJjN2FkMC43OGY1YTk5OGM5Yjk4NjgwLjc2YzdhYzBjMDBiYWZhZmQuNDRkYTNlODE2MTNmY2ZkNQogICAgIGVmZGZlNGIwMDU2ZmFhMGUuMDg5NTZkZmVkOWQ2NmM1ZS4wNjVkNDQxOGVhNjJjMmZmLmFiZmE5OTA4MjAzYmVkZTYKICAgICBlYWYxM2JiOGRiOWUxNWMzLjRlMGRhMTEyYTA3ZGFmYjkuNDcwODVjODZmNTAyZThlMi45YWNkNjUwODQ4ZmM0YTlkCiAgICAgZWYxZDIwNmJmNThkYTIyNwotVlBNT1ZTWERRXzEyOChtZW0pCitWVU5QQ0tMUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgODViODQ1MWY0NGZhYjBhZi5kZTQ5Y2U4NjdiZDhmODliLjI4MjljMWMwM2JiYjBhYmMuOTMxM2YyYzRiYzI1YTg1NAogICAgIDM3Njg1MDBmNTE1MDMxNjIuMjkzNTk4ODU4MmE2OGY0My43MWI0NGFmNWM1OWIzYTk1LjQ3Y2MwMTNjZGM1NzNkZmUKQEAgLTE5OTczLDEyICsxOTk3MywxMiBAQAogICAgIDZjZmJkZDQxNjZjMzU4MTEKICAgYWZ0ZXIKICAgICA4NWI4NDUxZjQ0ZmFiMGFmLmRlNDljZTg2N2JkOGY4OWIuMjgyOWMxYzAzYmJiMGFiYy45MzEzZjJjNGJjMjVhODU0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmOTMxM2YyYzQuZmZmZmZmZmZiYzI1YTg1NAotICAgIGUzZmFiZTI3Mzc5YWUxNmMuMjZmZjk1MjA4YTk2MTY2Ny4wNDdjYjc5YjViMjlmYjZkLmJmN2Q4NTVjZjAyNWU1OGYKKyAgICAzNzY4NTAwZjUxNTAzMTYyLjI5MzU5ODg1ODJhNjhmNDMuNzFiNDRhZjVjNTliM2E5NS40N2NjMDEzY2RjNTczZGZlCisgICAgZGU0OWNlODYyOTM1OTg4NS43YmQ4Zjg5YjgyYTY4ZjQzLjkzMTNmMmM0NDdjYzAxM2MuYmMyNWE4NTRkYzU3M2RmZQogICAgIDYzM2EwOTUzMTJlNDdjZjguMzFmNGMyYzUzMjMzYzhiMi5iZjRiODRhMDE4NzIwOTczLjU4NzQ3YThmOTUxYWQ5YjEKICAgICA2Y2ZiZGQ0MTY2YzM1ODExCiAKLVZQTU9WU1hEUV8xMjgocmVnKQorVlVOUENLTFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDU4NWZhOGRlZmZhYTljNWEuOTVmM2FmN2ZmZjNiYmQzMi5hNTYwMWFkZjE0MGFlMmQxLjdjZWUyZGVlMTk4MTIwZDAKICAgICA3OGVjZDlkMmZkNWRlMjM5LjUzZjMyYjk3MTlhYTYxNDguZTA4Zjk4ZGFjY2E2OWY3MC4xOTMxMmU3Mzc5NjNmYmIzCkBAIC0xOTk4NiwxMiArMTk5ODYsMTIgQEAKICAgICBjNGIwNWI3MDk3NTU2NDY3LmU3ZjM5NjNjNDYwMWMxYjIuMTc2NmZjMjQzMDVkZjZkYy41ZmM3MmFjZWM3Y2RlZmI2CiAgICAgYzBiMjFjN2RlZTZkODAyZQogICBhZnRlcgotICAgIDU4NWZhOGRlZmZhYTljNWEuOTVmM2FmN2ZmZjNiYmQzMi5hNTYwMWFkZjE0MGFlMmQxLjdjZWUyZGVlMTk4MTIwZDAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA3MGUwMDQxYS4wMDAwMDAwMDU0MjI1NzQ2CisgICAgN2IwNGY5ODc1M2YzMmI5Ny43ZDNkMjQ2NDE5YWE2MTQ4LjcwZTAwNDFhMTkzMTJlNzMuNTQyMjU3NDY3OTYzZmJiMworICAgIDc4ZWNkOWQyZmQ1ZGUyMzkuNTNmMzJiOTcxOWFhNjE0OC5lMDhmOThkYWNjYTY5ZjcwLjE5MzEyZTczNzk2M2ZiYjMKICAgICAyOGVkNmM4OWZjNjg2NjU5LjdiMDRmOTg3N2QzZDI0NjQuM2NjZDNiMjJmNzkzM2QzYS43MGUwMDQxYTU0MjI1NzQ2CiAgICAgYzRiMDViNzA5NzU1NjQ2Ny5lN2YzOTYzYzQ2MDFjMWIyLjE3NjZmYzI0MzA1ZGY2ZGMuNWZjNzJhY2VjN2NkZWZiNgogICAgIGMwYjIxYzdkZWU2ZDgwMmUKLVZQTU9WU1hEUV8xMjgobWVtKQorVlVOUENLTFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDcxNmM1NjEyZTQxMGM2ZGIuYTg3ZmE0ZjE2YmIzMTcwZi43NThjN2RhMDkxMDFmNTVmLmNjYTVkODRhMTQ5MTA3MDEKICAgICA0Y2MyNTU3YWM1YzE3ZGU4LjMwYTc0MTc5MTMwYmJjZmMuZmY5YjI5YTE3OTRhN2M5Ny5iNmQ3Y2MwMjNlYmJhYjU2CkBAIC0yMDAwMCwxMiArMjAwMDAsMTIgQEAKICAgICA1MTE3MGJjNjdjNmU2NzJhCiAgIGFmdGVyCiAgICAgNzE2YzU2MTJlNDEwYzZkYi5hODdmYTRmMTZiYjMxNzBmLjc1OGM3ZGEwOTEwMWY1NWYuY2NhNWQ4NGExNDkxMDcwMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmNjYTVkODRhLjAwMDAwMDAwMTQ5MTA3MDEKLSAgICAyZTgxOTQ5ZmFlOGM2MTgyLmI4NzQzMTc1MmJlYjhmZGIuNjNlYzE5MmExYmU3MTI4NS4zMzQ4ZDNiNjRiNjUyMDg2CisgICAgNGNjMjU1N2FjNWMxN2RlOC4zMGE3NDE3OTEzMGJiY2ZjLmZmOWIyOWExNzk0YTdjOTcuYjZkN2NjMDIzZWJiYWI1NgorICAgIGE4N2ZhNGYxMzBhNzQxNzkuNmJiMzE3MGYxMzBiYmNmYy5jY2E1ZDg0YWI2ZDdjYzAyLjE0OTEwNzAxM2ViYmFiNTYKICAgICBmNDcyOGY2ZWJiN2UyZGQ1LjljMzI2ZDUwNTBkZWNiNTcuN2I0YWM2MjY5MmU0NzI1Ni45ZDQ0ZTlkNGQ2MWRhMDNlCiAgICAgNTExNzBiYzY3YzZlNjcyYQogCi1WUE1PVlNYV0RfMTI4KHJlZykKK1ZVTlBDS0hQU18yNTYocmVnKQogICBiZWZvcmUKICAgICBhYzBkMzNmYWQ4ZTViM2Y1Ljc4NjRjMmQzMDZhMjllMGMuMzgyZGYyNzUxZDcwYWQxZC4yNDgzYWU4M2ZiNGQ1OTM1CiAgICAgMDg3MTVmZGI4NjBkYmU0Yy45NzIyYTliYmFlMDU2ZjU0LmU4YjFiZDUyMmYyZTcxZDguM2E2MTRiMmM3MTJmODM0ZgpAQCAtMjAwMTMsMTIgKzIwMDEzLDEyIEBACiAgICAgMzdiN2IxNTQ0YmExMDQ0ZC4xNjMxODVjMDdmYjUyNWM2LmY0ODIxMmUxOTA1YzhlZTAuMWUzZjlhMTJmNjhjOGVlMwogICAgIGEzZDc0MjI4M2MxZmU4YjUKICAgYWZ0ZXIKLSAgICBhYzBkMzNmYWQ4ZTViM2Y1Ljc4NjRjMmQzMDZhMjllMGMuMzgyZGYyNzUxZDcwYWQxZC4yNDgzYWU4M2ZiNGQ1OTM1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmY5YWIxMDAwMDFiMGQuMDAwMDEwOTVmZmZmYWJkMAorICAgIGMyOTE4YWQ1MDg3MTVmZGIuMjM3MmM1ZGI4NjBkYmU0Yy4wODA5Yzk1MmU4YjFiZDUyLjIxYTM1MjM2MmYyZTcxZDgKKyAgICAwODcxNWZkYjg2MGRiZTRjLjk3MjJhOWJiYWUwNTZmNTQuZThiMWJkNTIyZjJlNzFkOC4zYTYxNGIyYzcxMmY4MzRmCiAgICAgYzI5MThhZDUyMzcyYzVkYi4yZDc3YzExMWNkYjI1ZWQ5LjA4MDljOTUyMjFhMzUyMzYuOWFiMTFiMGQxMDk1YWJkMAogICAgIDM3YjdiMTU0NGJhMTA0NGQuMTYzMTg1YzA3ZmI1MjVjNi5mNDgyMTJlMTkwNWM4ZWUwLjFlM2Y5YTEyZjY4YzhlZTMKICAgICBhM2Q3NDIyODNjMWZlOGI1Ci1WUE1PVlNYV0RfMTI4KG1lbSkKK1ZVTlBDS0hQU18yNTYobWVtKQogICBiZWZvcmUKICAgICAwNTQ0OTEzOTAwNWE3NTcxLmMxMzBjZWM0OTkyNWI2NGUuMmYxYTcxYjZlMTFiODA0Ny4wNzY4OTU2YjE3ZTQ1Zjg1CiAgICAgMjA1NDAyMzI1ZDRhZjA0NC5iZDQ4ZGY5MmE5OGExODhiLjUyZmYwMWRlMGVlZjJkODkuOWYwNzRjNWQ1M2M3MDFjZgpAQCAtMjAwMjcsMTIgKzIwMDI3LDEyIEBACiAgICAgMTYzMThhZDM1OTBjMmM0NgogICBhZnRlcgogICAgIDA1NDQ5MTM5MDA1YTc1NzEuYzEzMGNlYzQ5OTI1YjY0ZS4yZjFhNzFiNmUxMWI4MDQ3LjA3Njg5NTZiMTdlNDVmODUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDA3NjhmZmZmOTU2Yi4wMDAwMTdlNDAwMDA1Zjg1Ci0gICAgZDBkMTExMDA3MGZhMTY1YS44NzRhZGYyODE4NWQ2NmIwLjVjYWNiMjI0MjIzZGU2YjguMTdhYjM1MjFkZjkxYjI2YQorICAgIDIwNTQwMjMyNWQ0YWYwNDQuYmQ0OGRmOTJhOThhMTg4Yi41MmZmMDFkZTBlZWYyZDg5LjlmMDc0YzVkNTNjNzAxY2YKKyAgICAwNTQ0OTEzOTIwNTQwMjMyLjAwNWE3NTcxNWQ0YWYwNDQuMmYxYTcxYjY1MmZmMDFkZS5lMTFiODA0NzBlZWYyZDg5CiAgICAgZjE4ODNhOGU1NTc2YTNkZS43Yzg0Y2FmMzgyMjlkYjY5LjI5ZWRmZTc0M2IxMTY4MDAuY2JhMDRiMjQ1OGNmYWMwMwogICAgIDE2MzE4YWQzNTkwYzJjNDYKIAotVlBNT1ZTWFdEXzEyOChyZWcpCitWVU5QQ0tIUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNTZhYmVmOTg3ZmQ1NmRkZS41ZjQ1ZmFjNzI3Y2E1M2ZkLmY2NDA5YzYwODI3YmI0NjEuOTU4ZDYzYmE3Mjc4NmY4YwogICAgIGU1NWI3NWUxNjViNWFjNzguZjZkNGNjOTkwMjAzZTFlMi41MmNjNTJkYWI0ZGQyZDQ0LjdjNWE1ZGUyZTU3ZWI2ODgKQEAgLTIwMDQwLDEyICsyMDA0MCwxMiBAQAogICAgIDY0ODdkNGFjZTJlYjE0NjEuMGY5Nzk2YjU0NTUyODliMS4yMDdmNTdhNDIwMDdlZTdlLjJiYTZmYzg5ZWU5M2Y3ODMKICAgICBhYmJlOTllMGJiYmI2OGQ5CiAgIGFmdGVyCi0gICAgNTZhYmVmOTg3ZmQ1NmRkZS41ZjQ1ZmFjNzI3Y2E1M2ZkLmY2NDA5YzYwODI3YmI0NjEuOTU4ZDYzYmE3Mjc4NmY4YwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmYmExZTAwMDA2NmQ5LmZmZmZiMDJkZmZmZmZhMjEKKyAgICAyMThiMTcxOWU1NWI3NWUxLmE3MzgyNWMwNjViNWFjNzguZWM3MmU3Y2M1MmNjNTJkYS5iNWRkODJjMGI0ZGQyZDQ0CisgICAgZTU1Yjc1ZTE2NWI1YWM3OC5mNmQ0Y2M5OTAyMDNlMWUyLjUyY2M1MmRhYjRkZDJkNDQuN2M1YTVkZTJlNTdlYjY4OAogICAgIDIxOGIxNzE5YTczODI1YzAuOTIwMTJiZWYwMzJkMGFiYS5lYzcyZTdjY2I1ZGQ4MmMwLmJhMWU2NmQ5YjAyZGZhMjEKICAgICA2NDg3ZDRhY2UyZWIxNDYxLjBmOTc5NmI1NDU1Mjg5YjEuMjA3ZjU3YTQyMDA3ZWU3ZS4yYmE2ZmM4OWVlOTNmNzgzCiAgICAgYWJiZTk5ZTBiYmJiNjhkOQotVlBNT1ZTWFdEXzEyOChtZW0pCitWVU5QQ0tIUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMTUzMmJiYzgzNGIyMGI1MC4wYzlkYTUwNmIyNTliNTA3LjQ5NjQ4NmQ3ZTU4MDFjZjIuNGEzZTllY2Q5MmU2YWUyZAogICAgIDQ3Y2RkZTJmNzU4MzlhMTQuNzMxODg4OTNiMjBlNDM2MC4xYzMyNzk0MWZlYzM3ZGFhLmM2ZmRiOGIzYTYwNmZlNzcKQEAgLTIwMDU0LDEyICsyMDA1NCwxMiBAQAogICAgIGJlMmFkMzBjYzk2NmE0YjIKICAgYWZ0ZXIKICAgICAxNTMyYmJjODM0YjIwYjUwLjBjOWRhNTA2YjI1OWI1MDcuNDk2NDg2ZDdlNTgwMWNmMi40YTNlOWVjZDkyZTZhZTJkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDA0YTNlZmZmZjllY2QuZmZmZjkyZTZmZmZmYWUyZAotICAgIDFjNWQ3YzAwOTkzYWQxNTAuZjc0Mzc3YmY3ZTk3ZmIxNi42NGNlZWFkZmFkMjU2OTA0LmYwMDdhMmMyZjlmMzFhMDgKKyAgICA0N2NkZGUyZjc1ODM5YTE0LjczMTg4ODkzYjIwZTQzNjAuMWMzMjc5NDFmZWMzN2RhYS5jNmZkYjhiM2E2MDZmZTc3CisgICAgMTUzMmJiYzg0N2NkZGUyZi4zNGIyMGI1MDc1ODM5YTE0LjQ5NjQ4NmQ3MWMzMjc5NDEuZTU4MDFjZjJmZWMzN2RhYQogICAgIDcwYWMxMzI3YmNlNDZlMzEuZjI2YjcwZjZiMzdmMThkNS5mYzA0NTU5ZTBkYjQ5YjJkLjI0YTc1NzY3MjYzYTNkOGQKICAgICBiZTJhZDMwY2M5NjZhNGIyCiAKLVZQTU9WU1hXRF8xMjgocmVnKQorVlVOUENLSFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDFhZGMxMjFlN2YwMzhhMjMuMWY4NzFlOTBmYjhjMmJlMi5jMmRjNmZhNWVjNTJkNzRhLmMyOWYzNjY4M2E3Y2QwNTEKICAgICA5MzA5MTEwYWU0OWUyZDhiLjA0YmExOTI3NzEzZWM1OTAuYzFlMjZlMzZjNjljNzQyMS45MTZkMGEyYjUxODdjNDliCkBAIC0yMDA2NywxMiArMjAwNjcsMTIgQEAKICAgICA1MTAzM2MxYzI4ZmM5NWYxLmU1NThkMDhmNzRmMjdlOTIuYzBkZDYxYjJjYmM4MzhhMy5iOWNlNzc0OGFjOWNkODUzCiAgICAgY2JmOTA5N2IyN2JjNzExOQogICBhZnRlcgotICAgIDFhZGMxMjFlN2YwMzhhMjMuMWY4NzFlOTBmYjhjMmJlMi5jMmRjNmZhNWVjNTJkNzRhLmMyOWYzNjY4M2E3Y2QwNTEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDQ1MzgwMDAwNGJkMS4wMDAwNmVlMzAwMDAzMzM4CisgICAgODdmZGNiM2E5MzA5MTEwYS45M2MyYzc5NmU0OWUyZDhiLjRjYzk2YjE3YzFlMjZlMzYuZGNlYTJiMDVjNjljNzQyMQorICAgIDkzMDkxMTBhZTQ5ZTJkOGIuMDRiYTE5Mjc3MTNlYzU5MC5jMWUyNmUzNmM2OWM3NDIxLjkxNmQwYTJiNTE4N2M0OWIKICAgICA4N2ZkY2IzYTkzYzJjNzk2LmZkMTE4MGQ4M2IwN2Y3NjcuNGNjOTZiMTdkY2VhMmIwNS40NTM4NGJkMTZlZTMzMzM4CiAgICAgNTEwMzNjMWMyOGZjOTVmMS5lNTU4ZDA4Zjc0ZjI3ZTkyLmMwZGQ2MWIyY2JjODM4YTMuYjljZTc3NDhhYzljZDg1MwogICAgIGNiZjkwOTdiMjdiYzcxMTkKLVZQTU9WU1hXRF8xMjgobWVtKQorVlVOUENLSFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDU1ODY3ZTU2ZmM1MWI3YjUuNGQ2ODYwMWI0MGQ3ZDI0OC45NzVhODQzOTM5MGMxNjNkLjc3Njk0Yzc1MmVjMWQ2YTYKICAgICAzNTQxNTFjNTQ3Njc2OTU0LmQ2NzkzM2EzNzdkZmJjNDYuZjFlNTE4YzBhNTVmN2I5Ni5jZWJhMjhjYmEyNjE0MmJiCkBAIC0yMDA4MSwxMiArMjAwODEsMTIgQEAKICAgICAyYjQzM2M3Nzc4YTViMDFjCiAgIGFmdGVyCiAgICAgNTU4NjdlNTZmYzUxYjdiNS40ZDY4NjAxYjQwZDdkMjQ4Ljk3NWE4NDM5MzkwYzE2M2QuNzc2OTRjNzUyZWMxZDZhNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwNzc2OTAwMDA0Yzc1LjAwMDAyZWMxZmZmZmQ2YTYKLSAgICA0NmY1ZmRiNDIzMDk0MTIyLjRhODBiMjIwNjhhMThkOTguY2RjMzA4MTJkNWY5NjljNy4yMTFkZjIyMGMyMzRiNzhlCisgICAgMzU0MTUxYzU0NzY3Njk1NC5kNjc5MzNhMzc3ZGZiYzQ2LmYxZTUxOGMwYTU1ZjdiOTYuY2ViYTI4Y2JhMjYxNDJiYgorICAgIDU1ODY3ZTU2MzU0MTUxYzUuZmM1MWI3YjU0NzY3Njk1NC45NzVhODQzOWYxZTUxOGMwLjM5MGMxNjNkYTU1ZjdiOTYKICAgICA2MzcwMDAwZmFjNDNmYzRhLjA0Y2FkOGZlYWZhNzgxZWEuMDljMWQwMTllNGU2OWJmYy5jY2RjYTRlMDJiYzc3M2NhCiAgICAgMmI0MzNjNzc3OGE1YjAxYwogCi1WRElWUFNfMTI4KHJlZykKK1ZYT1JQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICA5YmEwYjY1MTQ1NWFhYjJmLjY5N2NkNmMzZmYyMTU2ZjkuNWZhMmExYTllOTgwZDZlNy43ZmFiZWRjM2VlMzFjZTYyCiAgICAgNzYzZTBjZGEyZjczOWZiMC4zNWU2ZjliYTM3YjAwYTViLmI5NTYwOThkYjFiNWM2M2IuMGQ0ZGRhZmIxMGU2YmQyNQpAQCAtMjAwOTQsMTIgKzIwMDk0LDEyIEBACiAgICAgZTA2YjQxYWFjOWZlNjVhYi44YjA0MWIyNWM4MGY3M2U1LmQ2N2VhOGIxNWQ2ODY5OWMuZGRlODE0YzUwYmJmYzI3MAogICAgIGQ3Nzk1YTJmMWJmYjUwNTEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjI1NzJhMTk5M2M4MzhmOS44MDAwMDAwMDQ0OWEwNGQwCisgICAgNmY1NjMwYTVmZDA4NTZmYi45NDljMWU1YjQ2NGJkY2MwLmQ1NjYwNDliMTU2MTQ4YWYuODAzZmM5NTY3NmY3OTg1NQogICAgIDc2M2UwY2RhMmY3MzlmYjAuMzVlNmY5YmEzN2IwMGE1Yi5iOTU2MDk4ZGIxYjVjNjNiLjBkNGRkYWZiMTBlNmJkMjUKICAgICAxOTY4M2M3ZmQyN2JjOTRiLmExN2FlN2UxNzFmYmQ2OWIuNmMzMDBkMTZhNGQ0OGU5NC44ZDcyMTNhZDY2MTEyNTcwCiAgICAgZTA2YjQxYWFjOWZlNjVhYi44YjA0MWIyNWM4MGY3M2U1LmQ2N2VhOGIxNWQ2ODY5OWMuZGRlODE0YzUwYmJmYzI3MAogICAgIGQ3Nzk1YTJmMWJmYjUwNTEKLVZESVZQU18xMjgobWVtKQorVlhPUlBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDU4ZjI2MGQ3YjNkMjhiM2UuMjc5MzE3YzliMDg5YWY3ZC5jZDUwMTE3MTU5ZjZhMDY3LjUxOGFkNmM4NzlmZTk0ZmYKICAgICAzZDFmYTJhYWVmNGUyZTYzLjRhMmNiYTQ2MjRhN2UyNmMuNDQyOTQ1YjAzZmJmMTc0Yi4zYmExOTNjOTkzMjE0YzZhCkBAIC0yMDEwOSwxMSArMjAxMDksMTEgQEAKICAgYWZ0ZXIKICAgICA1OGYyNjBkN2IzZDI4YjNlLjI3OTMxN2M5YjA4OWFmN2QuY2Q1MDExNzE1OWY2YTA2Ny41MThhZDZjODc5ZmU5NGZmCiAgICAgM2QxZmEyYWFlZjRlMmU2My40YTJjYmE0NjI0YTdlMjZjLjQ0Mjk0NWIwM2ZiZjE3NGIuM2JhMTkzYzk5MzIxNGM2YQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNjUwNDQ0ZTI1NDY1YThjLjI5OTRmNjkxODAwMDAwMDAKKyAgICA2NWVkYzI3ZDVjOWNhNTVkLjZkYmZhZDhmOTQyZTRkMTEuODk3OTU0YzE2NjQ5YjcyYy42YTJiNDUwMWVhZGZkODk1CiAgICAgOWVjNGNhN2RjMDZiOWUwOC45M2UwNTgwZjIyY2VmNjU0LjQyYjY1OWJjN2MyMGQ2ZWEuYzgxZmFiMzYzMzNmNGQwNwogICAgIDIzMWZmZTc5ZjA1MjBmOTEKIAotVkRJVlBTXzEyOChyZWcpCitWWE9SUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNWM1OWQwNTYxYzIyNGRkMi5kM2Q1YTk1NThlMjNlNGUwLjcyOTQ0YjMyZTNlZTRmYTQuODAwMTMwNjAwYWQxOTZmZQogICAgIGQwMWExZDM4NTMzYzQyNzguZGNjOWI0MDg2ZmIxODJhMC45ZGU4ZmI2NGExZDE4MWMyLjYzMGEzNWE4NWU5MzkwMjQKQEAgLTIwMTIxLDEyICsyMDEyMSwxMiBAQAogICAgIGQ0NjExOWJjNGY3YjQ1OWMuZDU4ZTNlYWNkYzgxYjg4YS40NmEzODNhNTgyMTI2MjE2Ljg5ODViYWQ1Yzc3NzI0NTgKICAgICA4MzkwMzI5MTEzYjEzN2JlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk2YjY2MTNiNWYzNzMyNGQuZmY4MDAwMDBkNjk4ZGExYworICAgIDA5YjRmZmI0NjMxNzZlNTQuNGZhN2QzODllZjkzYjZkNC5lZGMxOWU3NTU2ZDU0ODliLmE0OTdkMTI5Y2FlMzExYWQKICAgICBkMDFhMWQzODUzM2M0Mjc4LmRjYzliNDA4NmZiMTgyYTAuOWRlOGZiNjRhMWQxODFjMi42MzBhMzVhODVlOTM5MDI0CiAgICAgZDlhZWUyOGMzMDJiMmMyYy45MzZlNjc4MTgwMjIzNDc0LjcwMjk2NTExZjcwNGM5NTkuYzc5ZGU0ODE5NDcwODE4OQogICAgIGQ0NjExOWJjNGY3YjQ1OWMuZDU4ZTNlYWNkYzgxYjg4YS40NmEzODNhNTgyMTI2MjE2Ljg5ODViYWQ1Yzc3NzI0NTgKICAgICA4MzkwMzI5MTEzYjEzN2JlCi1WRElWUFNfMTI4KG1lbSkKK1ZYT1JQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICA5Mjg4YzhhMjk1MmM3NGU3LjFkN2ZjMDM1NGRiOWM5NzQuN2VmNWI2NzRhMGRhYzgwYi43ZGEyNTM4ZGRkODg4YWE1CiAgICAgOTIzYWY5ZjM2OGYzOThmZS4xMDUzZDI2NGM2NzBmNjYwLjZhNzE0OWM4ZTczYTIxMjYuNzA3MWQwMzNhNGYxN2JiMQpAQCAtMjAxMzYsMTEgKzIwMTM2LDExIEBACiAgIGFmdGVyCiAgICAgOTI4OGM4YTI5NTJjNzRlNy4xZDdmYzAzNTRkYjljOTc0LjdlZjViNjc0YTBkYWM4MGIuN2RhMjUzOGRkZDg4OGFhNQogICAgIDkyM2FmOWYzNjhmMzk4ZmUuMTA1M2QyNjRjNjcwZjY2MC42YTcxNDljOGU3M2EyMTI2LjcwNzFkMDMzYTRmMTdiYjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmFmYjYzZTg3ZjgwMDAwMC4zMjNlYWQ5ZTA2ZTI2MDc2CisgICAgMDBiMjMxNTFmZGRmZWMxOS4wZDJjMTI1MThiYzkzZjE0LjE0ODRmZmJjNDdlMGU5MmQuMGRkMzgzYmU3OTc5ZjExNAogICAgIGQ1ZmMxODA0NzQ5NzgzYTguNjU1MTI4OTA5NjdhMzYyMS43YmQ0YjViYzZmM2M5ZGQ0LmY5YjNjMjZkZTljY2FhZjIKICAgICA0OGJkMmZkOTllNTc2MTdmCiAKLVZESVZQU18xMjgocmVnKQorVlhPUlBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGMyYzgzOWI0MzAwNmQxMzkuZDBhNGZmOWRlMzhiYzM5My43ZTEyNjQ2NjI2ZTVjMjRmLjU4NTM4NjM1ZTlmNjM4YzEKICAgICBjNTIwZGM2YTNhNjMzNmNkLjJjMzU3MDI2MTVmY2RhMWQuYjFiYWZiYTFhMGZhZTU0MS5lODE2NjJlOTU2ZTcwY2Y1CkBAIC0yMDE0OCwxMiArMjAxNDgsMTIgQEAKICAgICBkMmU2ZGUxNzI3NWNkMzMyLjc2NDZlMWI4MmM4MjdiYmMuZDVlZTJiZjZjNDRmZTMyMC45MTk4MzBhZTdiOWM0ZWU5CiAgICAgNjFlZjFhOTg2YTc4MzRmZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xYjQ4ZmFiZjFjMWE3YjI0LjdmODAwMDAwMWFiZDM0YzUKKyAgICA2ZTMxYzgwZDYyOWZmODJhLmU4NDg5OGFkMzYwOTU5NmMuZWIyZjExMGMwMWI5MzllMi5lZmZmYTUyYjg1ZmNkODZhCiAgICAgYzUyMGRjNmEzYTYzMzZjZC4yYzM1NzAyNjE1ZmNkYTFkLmIxYmFmYmExYTBmYWU1NDEuZTgxNjYyZTk1NmU3MGNmNQogICAgIGFiMTExNDY3NThmY2NlZTcuYzQ3ZGU4OGIyM2Y1ODM3MS41YTk1ZWFhZGExNDNkY2EzLjA3ZTljN2MyZDMxYmQ0OWYKICAgICBkMmU2ZGUxNzI3NWNkMzMyLjc2NDZlMWI4MmM4MjdiYmMuZDVlZTJiZjZjNDRmZTMyMC45MTk4MzBhZTdiOWM0ZWU5CiAgICAgNjFlZjFhOTg2YTc4MzRmZgotVkRJVlBTXzEyOChtZW0pCitWWE9SUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNTViOWZmNmJiZGJiNDIwZS45NGVkMzVlNjQzMTA4MjViLjFkNWRkOTlhNDliMDdlMjkuN2UxM2JjZThhNWE3MzU2NAogICAgIDQ4YzQ1ZDE1OGY2ZjM2NDIuNGY3MDE1NDA0NmEzMTYwZS45NThlNGIxYjk4OGE0OGU1LmIxNGU5OGVmZTJkOTEwMWMKQEAgLTIwMTYzLDExICsyMDE2MywxMSBAQAogICBhZnRlcgogICAgIDU1YjlmZjZiYmRiYjQyMGUuOTRlZDM1ZTY0MzEwODI1Yi4xZDVkZDk5YTQ5YjA3ZTI5LjdlMTNiY2U4YTVhNzM1NjQKICAgICA0OGM0NWQxNThmNmYzNjQyLjRmNzAxNTQwNDZhMzE2MGUuOTU4ZTRiMWI5ODhhNDhlNS5iMTRlOThlZmUyZDkxMDFjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI3YTQzMjZmOGU0ODk0NmUuODAwMDAwMDA3Y2E2MmEwMQorICAgIDFkN2RhMjdlMzJkNDc0NGMuZGI5ZDIwYTYwNWIzOTQ1NS44OGQzOTI4MWQxM2EzNmNjLmNmNWQyNDA3NDc3ZTI1NzgKICAgICA5YWM4NzE5YjIyNjBiYmM3LjFiMWQ2MDQ2Nzg5N2UxYmYuNjc2ZDhlYWUzYjczMWZmOS4yNDM5MjFlZGQ5Zjg0Yjk4CiAgICAgMWQ4MWM3YmJjZGZlMjViMgogCi1WQU5EUFNfMjU2KHJlZykKK1ZCUk9BRENBU1RTRF8yNTYocmVnKQogICBiZWZvcmUKICAgICAxMDEwYTc0ZjhiMGQ3NmYxLmIyNWExZjUwMWJiM2M0NzEuZTZkZmM0YzlkZDEwOGUxNy43YWIzNTc5OGM3OWFhNWE4CiAgICAgNTkzMWJmMTNhZmIyN2JmZi4zOTViMzY4YTAzYTlhMmVmLjE4NGRhMTg4OWI5ODEyYTcuY2U0NDhhZDFmNDlkZTE1NwpAQCAtMjAxNzUsMTIgKzIwMTc1LDEyIEBACiAgICAgNWM1ZDg1ZTA5Y2ViOGYzYS4wM2RlOGM0MTEyYWNjZDE5LjI0NjFiNjY3OGYwNzhhMjYuYTg3MjFlZTVhMjY5NmU1ZgogICAgIGU3YTg3ODk3NWI0OTM2MTEKICAgYWZ0ZXIKLSAgICA1MTMwMGIxMTg2MzA2Yjg5LjA4MTkzMDAyMDMwODAwNmUuMDgwNWExODgwOTk4MDIwNi4wZTQwODI0MWQ0ODk4MDEwCisgICAgMTAxMGE3NGY4YjBkNzZmMS5iMjVhMWY1MDFiYjNjNDcxLmU2ZGZjNGM5ZGQxMDhlMTcuN2FiMzU3OThjNzlhYTVhOAogICAgIDU5MzFiZjEzYWZiMjdiZmYuMzk1YjM2OGEwM2E5YTJlZi4xODRkYTE4ODliOTgxMmE3LmNlNDQ4YWQxZjQ5ZGUxNTcKICAgICA1MzMyMGI3NWQ2Nzg2Zjg5LjBhOTkzMTM2Zjc0ZTExNmUuMGViNWYzZWU0ZGJjYTcxZS4zZWVhYTM0N2RlODk5MDMwCiAgICAgNWM1ZDg1ZTA5Y2ViOGYzYS4wM2RlOGM0MTEyYWNjZDE5LjI0NjFiNjY3OGYwNzhhMjYuYTg3MjFlZTVhMjY5NmU1ZgogICAgIGU3YTg3ODk3NWI0OTM2MTEKLVZBTkRQU18yNTYobWVtKQorVkJST0FEQ0FTVFNEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGQ2NTcyYzQ5MjYzNmE2NzIuY2ZmZjJiYzA5Yzk3MTdiZi5mZWY3YzM5NTcxZDI5MjFkLmI2OWVlNzVmZmYwNWY3NmIKICAgICA1MzRkYjZlNzFmM2I3OGFkLjA3NjRmODgxNzIwOTQzYzQuZDliMDUyMjAyZmM5MWJhNS4yMWI4ODE0MjM2NDMyOTliCkBAIC0yMDE4OSwxMiArMjAxODksMTIgQEAKICAgICAwNzJiOWRhNWE4ZjBiYTVhCiAgIGFmdGVyCiAgICAgZDY1NzJjNDkyNjM2YTY3Mi5jZmZmMmJjMDljOTcxN2JmLmZlZjdjMzk1NzFkMjkyMWQuYjY5ZWU3NWZmZjA1Zjc2YgotICAgIDUzNGRiNmU3MWYzYjc4YWQuMDc2NGY4ODE3MjA5NDNjNC5kOWIwNTIyMDJmYzkxYmE1LjIxYjg4MTQyMzY0MzI5OWIKLSAgICA1MjQ1MjQ0MTA2MzIyMDIwLjA3NjQyODgwMTAwMTAzODQuZDhiMDQyMDAyMWMwMTIwNS4yMDk4ODE0MjM2MDEyMTBiCisgICAgYjY5ZWU3NWZmZjA1Zjc2Yi5iNjllZTc1ZmZmMDVmNzZiLmI2OWVlNzVmZmYwNWY3NmIuYjY5ZWU3NWZmZjA1Zjc2YgorICAgIDM4NTQ5MjVlNjA2NTY4ZWYuNjJkOGU4OGZiYmNkNGVmNC42ZWQ1YjZjZDY5OWYyNWRlLmJmZmI4MDdjZDI0YzVkNjAKICAgICA2MjM5M2Q5ODA4YmYzNDYzLjNiYTZmNzU2MTI2ZDc2ZmIuOWIzMjZhODgzYTVmNmJmNC5lZGIzZTA3OTZmYWNjZjY2CiAgICAgMDcyYjlkYTVhOGYwYmE1YQogCi1WQU5EUFNfMjU2KHJlZykKK1ZCUk9BRENBU1RTRF8yNTYocmVnKQogICBiZWZvcmUKICAgICA2OWIxYjQ2ZDE5YTM1YmU3LmFlYzgzMTgzMzA1NTk2MzcuZWQxYzIyNDMxNDc3ZjQ4Ny4zYTkzZWEzZGJlMTVhYTEyCiAgICAgNmY4ZjIwM2I1ZjUyZWViYi5mNmNkZWMwOWY3MzM0Yjk0LmQ2ODQ2M2MwNWM3NjA3NDIuMjljM2IyZDgxMmNlOWU2NQpAQCAtMjAyMDIsMTIgKzIwMjAyLDEyIEBACiAgICAgZDc4NmU3OWRkOWQxZDllMi5lZTY4YTU5YmNjZjk5ZDlmLmI5NWQxZDFlMzA4NWQ3ZjYuNjJjNDBjNzA5OTc3OTU1OQogICAgIDY2MmM5NDQ1MDM3ZjBmNTEKICAgYWZ0ZXIKLSAgICA2NTAyMDAzOTE2MDBhZTNiLjEwMDRlODA4NzYyMjBiODAuNTAwMDIwMDAwNDc2MDE0MC4wMDgzMzI0MDEyODQwMjAxCisgICAgNjliMWI0NmQxOWEzNWJlNy5hZWM4MzE4MzMwNTU5NjM3LmVkMWMyMjQzMTQ3N2Y0ODcuM2E5M2VhM2RiZTE1YWExMgogICAgIDZmOGYyMDNiNWY1MmVlYmIuZjZjZGVjMDlmNzMzNGI5NC5kNjg0NjNjMDVjNzYwNzQyLjI5YzNiMmQ4MTJjZTllNjUKICAgICA3NTEyZGQ3ZDE2ODhhZjdmLjE4MTRlOTE4NzY2NjBmYTguNTAyYmI4M2I4N2Y3ZTlkOC40MjhmM2Y0NTUyOTUwMzE5CiAgICAgZDc4NmU3OWRkOWQxZDllMi5lZTY4YTU5YmNjZjk5ZDlmLmI5NWQxZDFlMzA4NWQ3ZjYuNjJjNDBjNzA5OTc3OTU1OQogICAgIDY2MmM5NDQ1MDM3ZjBmNTEKLVZBTkRQU18yNTYobWVtKQorVkJST0FEQ0FTVFNEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDI4OTM1NmIxYWRiOTJlMmYuZjEzNjNiMDk0NGI5YTk4ZS41NTk3OWE3ZDEyZjliMmE1LjZiNjY4Y2Q3ZjRhYzBkNDgKICAgICA4NWM3Y2I5ZWIyMzFhZDFkLjFmNzBkMzJjZjRjZDViMmYuMjk2YjQ2YWM2NjcxMGFlNS5jMzkxMDNkMTZlZjljNjc5CkBAIC0yMDIxNiwxMiArMjAyMTYsMTIgQEAKICAgICA0OGRkNmE3ZDNiMzc2MTAyCiAgIGFmdGVyCiAgICAgMjg5MzU2YjFhZGI5MmUyZi5mMTM2M2IwOTQ0YjlhOThlLjU1OTc5YTdkMTJmOWIyYTUuNmI2NjhjZDdmNGFjMGQ0OAotICAgIDg1YzdjYjllYjIzMWFkMWQuMWY3MGQzMmNmNGNkNWIyZi4yOTZiNDZhYzY2NzEwYWU1LmMzOTEwM2QxNmVmOWM2NzkKLSAgICAwMDgzNDI5MGEwMzEyYzBkLjExMzAxMzA4NDQ4OTA5MGUuMDEwMzAyMmMwMjcxMDJhNS40MzAwMDBkMTY0YTgwNDQ4CisgICAgNmI2NjhjZDdmNGFjMGQ0OC42YjY2OGNkN2Y0YWMwZDQ4LjZiNjY4Y2Q3ZjRhYzBkNDguNmI2NjhjZDdmNGFjMGQ0OAorICAgIDU5OTI3MWZhMmZmNDRhNDcuYmM3ZWFkNzI4NDk4MmI3My40N2IxMjQxM2U0NmQ2MDhiLjFlMmM3Yzc4M2FmNzQwMzYKICAgICA4MWMyYzNhZjNmMGRiZmRhLjI2YWVjNDQ3OTFhNzU0MDMuODkzNWIwOWZhN2Y5NzFjNS5kNjgxZjUzOGY1MzJiNDJhCiAgICAgNDhkZDZhN2QzYjM3NjEwMgogCi1WQU5EUFNfMjU2KHJlZykKK1ZCUk9BRENBU1RTRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBkMThjZDViM2E3OTE4MTZhLmQ3MjEzZGFiZmY4OWM4MDIuYjg0YTE1MTdiNjg0MTM4ZS5jY2MzNjczYWNiMjJmOWJjCiAgICAgY2JkYTM0NDZkNWNjNTEwZC4zODdjNWJkOThhNzMyM2VhLmNlOWY5YTRlOTBiZWE0YmUuZWMyNmM0ZDE2ZGYzYjQ5ZgpAQCAtMjAyMjksMTIgKzIwMjI5LDEyIEBACiAgICAgODU4M2JiMzRlYTE3ZjFiNy44YjU2NzQ3YjczYzJiYWFjLmY1YTMzNWEyZDE3MjJhYmUuMzM5ZjYwYTQ5YWJmYjFkMwogICAgIDEyNGM5N2I4NWNkMTZjN2UKICAgYWZ0ZXIKLSAgICA4MzEyMDAwMjQwNDQwMTA4LjAwMWMxOTAxODg1MzAyYWEuYzI5OTEwNDg5MDllMDAzZS5jNDI0NDA1MTI5NzExNDk4CisgICAgZDE4Y2Q1YjNhNzkxODE2YS5kNzIxM2RhYmZmODljODAyLmI4NGExNTE3YjY4NDEzOGUuY2NjMzY3M2FjYjIyZjliYwogICAgIGNiZGEzNDQ2ZDVjYzUxMGQuMzg3YzViZDk4YTczMjNlYS5jZTlmOWE0ZTkwYmVhNGJlLmVjMjZjNGQxNmRmM2I0OWYKICAgICA5MzEzODJhMzYyNzUwZDk4LjgwOWY5OTI1ZmRkNzhhYmYuYzNmOTUxNTliYWRlNDIzZi5jNTJjNDI1MWE5Nzk1ZDk4CiAgICAgODU4M2JiMzRlYTE3ZjFiNy44YjU2NzQ3YjczYzJiYWFjLmY1YTMzNWEyZDE3MjJhYmUuMzM5ZjYwYTQ5YWJmYjFkMwogICAgIDEyNGM5N2I4NWNkMTZjN2UKLVZBTkRQU18yNTYobWVtKQorVkJST0FEQ0FTVFNEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDNlZmY2NDc3MGNiYzRhYzIuZmQ3NWRiNjcwNzNlMzgxNS4zNTZjNjdjNzA5M2Y2ZmRlLmJmZWI0Mzk3NzAwNTk4ZTcKICAgICA5Mzg0NDRjZmM1OGIwNmNlLjU3MzZkZmE2NTg3NzFmNWUuNWFhZmVlZjZkYTVhNjQ4MS43YzFiNzVhMjM0MjRjODY1CkBAIC0yMDI0MywxMiArMjAyNDMsMTIgQEAKICAgICAwNTE5YzQ4NzcxM2MzOTlhCiAgIGFmdGVyCiAgICAgM2VmZjY0NzcwY2JjNGFjMi5mZDc1ZGI2NzA3M2UzODE1LjM1NmM2N2M3MDkzZjZmZGUuYmZlYjQzOTc3MDA1OThlNwotICAgIDkzODQ0NGNmYzU4YjA2Y2UuNTczNmRmYTY1ODc3MWY1ZS41YWFmZWVmNmRhNWE2NDgxLjdjMWI3NWEyMzQyNGM4NjUKLSAgICAxMjg0NDQ0NzA0ODgwMmMyLjU1MzRkYjI2MDAzNjE4MTQuMTAyYzY2YzYwODFhNjQ4MC4zYzBiNDE4MjMwMDQ4ODY1CisgICAgYmZlYjQzOTc3MDA1OThlNy5iZmViNDM5NzcwMDU5OGU3LmJmZWI0Mzk3NzAwNTk4ZTcuYmZlYjQzOTc3MDA1OThlNworICAgIGVkYTdiMmFiYTQ0YTVkY2MuZjAxMmMyNWY3NzRkZTEzZi5kNmU5ODZmMjAyMWY1NmMwLjhhODBjOTMxYjg1YWY1ZTUKICAgICAyODMzMmFmN2M0MDYwYWU4LjIyNTU4MGZkMDA0ZGJjNjQuODVlN2E5YTg5ZTliMDFjOC40NDY2M2FhZjk4MzM1YzEzCiAgICAgMDUxOWM0ODc3MTNjMzk5YQogCi1WWE9SUFNfMjU2KHJlZykKK1ZDTVBQRF8xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgMmJlNTYzMjdkZmZmYzcyNi4yMGY2Mjk5ZjQyY2FjYjUwLjRhNGIxNWVjOTAwMWVhNzkuNDM3NWQ1MDVjYWRhMjBjNAogICAgIDEwMTUxNGZiN2QwYjQzNjUuYjFiYTJhOGYzOWEyNWEyZC5jNDQwN2U5OGMyZjdhODI5LmVjNWY4NWYzYTFlNjcxZTEKQEAgLTIwMjU2LDEyICsyMDI1NiwxMiBAQAogICAgIDhiZDU5OWVhYmEyN2Y1YTYuMGQ3ODIxZjgwNGJmZDRmZC4xZDU1YjhkNzdlZDhjMjBiLjZlNzY2MjM3YzE5YjkzMmQKICAgICAwMDNiODc2NDQyNWFkZWIzCiAgIGFmdGVyCi0gICAgMDFlMmM2OTY5YWUyYWE2NC4wNmY2ODIzYmZmMzgyZTgzLjI4M2ZjYmY1ZjA0Yzk5MDkuYjcyZmIwOTM5ZTJiZGZhYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICAxMDE1MTRmYjdkMGI0MzY1LmIxYmEyYThmMzlhMjVhMmQuYzQ0MDdlOThjMmY3YTgyOS5lYzVmODVmM2ExZTY3MWUxCiAgICAgMTFmN2QyNmRlN2U5ZTkwMS5iNzRjYThiNGM2OWE3NGFlLmVjN2ZiNTZkMzJiYjMxMjAuNWI3MDM1NjAzZmNkYWU0YQogICAgIDhiZDU5OWVhYmEyN2Y1YTYuMGQ3ODIxZjgwNGJmZDRmZC4xZDU1YjhkNzdlZDhjMjBiLjZlNzY2MjM3YzE5YjkzMmQKICAgICAwMDNiODc2NDQyNWFkZWIzCi1WWE9SUFNfMjU2KG1lbSkKK1ZDTVBQRF8xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgZWQ4YzIwZDNkZjE4NDkwYi5kOGZjNjVkZTkxNTFhMjAxLjkxMDkxMTQ4MTAxZDM3NDYuYjUwZjgyNDMzZmRhOTc5NgogICAgIDEwMzVhOTcwYjRlMTkxNWYuNTZiODMyYjYwOWYxMmRiZS4xZWNkZjI5MTA1YmY1OWI2LjBmZjcxMDFiMTM0ZGVjNmMKQEAgLTIwMjcxLDExICsyMDI3MSwxMSBAQAogICBhZnRlcgogICAgIGVkOGMyMGQzZGYxODQ5MGIuZDhmYzY1ZGU5MTUxYTIwMS45MTA5MTE0ODEwMWQzNzQ2LmI1MGY4MjQzM2ZkYTk3OTYKICAgICAxMDM1YTk3MGI0ZTE5MTVmLjU2YjgzMmI2MDlmMTJkYmUuMWVjZGYyOTEwNWJmNTliNi4wZmY3MTAxYjEzNGRlYzZjCi0gICAgZmRiOTg5YTM2YmY5ZDg1NC44ZTQ0NTc2ODk4YTA4ZmJmLjhmYzRlM2Q5MTVhMjZlZjAuYmFmODkyNTgyYzk3N2JmYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICA2ZGJmN2NlNTczYzFhNmFjLjUwMWVjMWJlNGFjOWNjMGMuYzIxYTdjYmExYmZmYzliYS43OTgzNjRjMzYzYjgwNGFjCiAgICAgNDFjMDIzNmIxNmM4NDA2ZAogCi1WWE9SUFNfMjU2KHJlZykKK1ZDTVBQRF8xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgM2E1Yjk1MmY0Yzc5ZWMyYS41ZDM3YmQ5NDk1ZjBlY2ZlLjg1NjE3YWM3NGIxNzU4ZjUuOTIzYjFjNzM3NWI2OTBhNgogICAgIGMyYTFiNzdkYTE1NzQzOGUuZjUzOGRmMjE1ZjVhZmZmYy41YjY4MjQ2MzVkMGRiMmYwLmRiYmU5ZmQ0MjhlMTA0NjkKQEAgLTIwMjgzLDEyICsyMDI4MywxMiBAQAogICAgIGViNWVmNzY0MTVjYmU1ZmUuODkwMGI0ODc1YTBjN2JhZi41NWY1M2QwMzIyMWZiZmNiLjQ3MTkzYTNlMGFjNGVhMjIKICAgICAyMjhhNGIxZjcxOTRkMzcwCiAgIGFmdGVyCi0gICAgZjY3ZjM0YmQxMWI5YzFjOC5mYWI0ODE1OGIyNTA2NDJmLjc3ZTg5ODllNDYzYWE0NTkuYTNkMWUwMWQ3ODZkZTA0NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICBjMmExYjc3ZGExNTc0MzhlLmY1MzhkZjIxNWY1YWZmZmMuNWI2ODI0NjM1ZDBkYjJmMC5kYmJlOWZkNDI4ZTEwNDY5CiAgICAgMzRkZTgzYzBiMGVlODI0Ni4wZjhjNWU3OWVkMGE5YmQzLjJjODBiY2ZkMWIzNzE2YTkuNzg2ZjdmYzk1MDhjZTQyZQogICAgIGViNWVmNzY0MTVjYmU1ZmUuODkwMGI0ODc1YTBjN2JhZi41NWY1M2QwMzIyMWZiZmNiLjQ3MTkzYTNlMGFjNGVhMjIKICAgICAyMjhhNGIxZjcxOTRkMzcwCi1WWE9SUFNfMjU2KG1lbSkKK1ZDTVBQRF8xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgZTc4YzJlNTlhMjA4NWI0NS40NTZkMGVkNjZkN2FhNzYxLjNkNjA1ZjM2YzM2ZDVjYmIuMzIxM2EzZTEwZDUzZWEwMwogICAgIDcwZWM2MGQ2YjgyZDNkY2MuOWM1NmM1ODA1Mzg1MDUxYi4wOTc4ZGE3NDQzMzhmOTIzLjFmMjZlYTAxNzg1ZmQzZmMKQEAgLTIwMjk4LDExICsyMDI5OCwxMSBAQAogICBhZnRlcgogICAgIGU3OGMyZTU5YTIwODViNDUuNDU2ZDBlZDY2ZDdhYTc2MS4zZDYwNWYzNmMzNmQ1Y2JiLjMyMTNhM2UxMGQ1M2VhMDMKICAgICA3MGVjNjBkNmI4MmQzZGNjLjljNTZjNTgwNTM4NTA1MWIuMDk3OGRhNzQ0MzM4ZjkyMy4xZjI2ZWEwMTc4NWZkM2ZjCi0gICAgOTc2MDRlOGYxYTI1NjY4OS5kOTNiY2I1NjNlZmZhMjdhLjM0MTg4NTQyODA1NWE1OTguMmQzNTQ5ZTA3NTBjMzlmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICA0MmY2OWU0ZDA1YjgwMmEzLmI1ZWFmZjMwM2JlNDg1NDguNTVmZjMwNGFmOTNkNWFiYi45OTU5MGNiYTQxMmNjZWU0CiAgICAgZGUxM2RmMmNkNjA1NTgyYQogCi1WWE9SUFNfMjU2KHJlZykKK1ZDTVBQRF8xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgYTNmMTgzOTA1YmU2OGZlMi40MjM4YTIxZjc0MzY1ZDRhLjJmMmM3YjBkNzU1MDFlMTEuOGQwNjA0YmE2ODhmOTY0MQogICAgIDQ0NDBmNDU0NmQ1YWIxYjcuNzcwN2U0ZTUzODk0MDI1NC4xNjc5ODZkNGFkNDk0M2UyLjRjZjU5NzY5NWU3YzdmZDQKQEAgLTIwMzEwLDEyICsyMDMxMCwxMiBAQAogICAgIDhhNjAyZWE5YTYyY2ExNmIuZjE4MDEzZmMzMTIxMWQ0MC45ZjY0M2FjYzg5MTMyMDRiLmQwYmJmMDJmNTA1NDQ2ZDAKICAgICA0YzJhYWMyMDg0NTc5YzkxCiAgIGFmdGVyCi0gICAgNTkwYmRiYjdjNWI0NDllMS5jOTM2MDU2ZTU2NGFhY2I4LmRlNjQ5YjNiMmQxMjczODUuMjM2ZGYwMjhhOTczYWY3NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICA0NDQwZjQ1NDZkNWFiMWI3Ljc3MDdlNGU1Mzg5NDAyNTQuMTY3OTg2ZDRhZDQ5NDNlMi40Y2Y1OTc2OTVlN2M3ZmQ0CiAgICAgMWQ0YjJmZTNhOGVlZjg1Ni5iZTMxZTE4YjZlZGVhZWVjLmM4MWQxZGVmODA1YjMwNjcuNmY5ODY3NDFmNzBmZDBhMAogICAgIDhhNjAyZWE5YTYyY2ExNmIuZjE4MDEzZmMzMTIxMWQ0MC45ZjY0M2FjYzg5MTMyMDRiLmQwYmJmMDJmNTA1NDQ2ZDAKICAgICA0YzJhYWMyMDg0NTc5YzkxCi1WWE9SUFNfMjU2KG1lbSkKK1ZDTVBQRF8xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgYmZiMDE5ZmViMDI1OTAwZS5lN2M5ZWYxMjA2YTJlN2ExLmVkYzFmOTI3OWU2ODBiNzkuZjk5OWRiZDY2NGZjNTAzYgogICAgIDA2MWFiMWI3ZWZjYWRjNzQuOTBkNDZlOGE2MWRjMDdhNS44ZWMwMGNmNWQwYzAzM2M1LjMwMGFmYjc5YWVhMmZjZTIKQEAgLTIwMzI1LDExICsyMDMyNSwxMSBAQAogICBhZnRlcgogICAgIGJmYjAxOWZlYjAyNTkwMGUuZTdjOWVmMTIwNmEyZTdhMS5lZGMxZjkyNzllNjgwYjc5LmY5OTlkYmQ2NjRmYzUwM2IKICAgICAwNjFhYjFiN2VmY2FkYzc0LjkwZDQ2ZThhNjFkYzA3YTUuOGVjMDBjZjVkMGMwMzNjNS4zMDBhZmI3OWFlYTJmY2UyCi0gICAgYjlhYWE4NDk1ZmVmNGM3YS43NzFkODE5ODY3N2VlMDA0LjYzMDFmNWQyNGVhODM4YmMuYzk5MzIwYWZjYTVlYWNkOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICA3YmNiNTg2NzE4YzU2ZWFhLjM1ZmI5MjU3N2VjOWM1YzUuMzAyN2FkMmRmNGQwMjM0Ni5hOGNiYTkzYWZlNTdiNzA4CiAgICAgYTJiNDJmMzEzYjdkM2VkZQogCi1WT1JQU18yNTYocmVnKQorVkNWVERRMlBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGU5MDcyNDcwNTc5MTMxMWMuNjJhODVkMzYzYTM0MmNkMi5lYWFmMmY4NDc4OTVkYTNhLmU4MjgzMzcwMWVhMTY0ZDIKICAgICBkYTEyODQ2NGVlMWVjYjZlLjhjOWE3ZjhmZGZhYTMzOTIuNWEzNTdhNzFkZDUzYjkyYy5iNTE2ZDcwNjdlYjFjZjIwCkBAIC0yMDMzNywxMiArMjAzMzcsMTIgQEAKICAgICAyYTdjNzYxZGZhZDRlOGZiLjE5ZTkwNzhmMjRkODBiOGQuZTBlMzA4Mzc1ZWRiYzUzOS5mZWVjNmFkZjRmYzQxNWI1CiAgICAgMzI2YzUxZmFmN2RlNjg1NAogICBhZnRlcgotICAgIGRiMWZjZjdlZmViZWNiN2YuZGRmZTdmZGZmZmJhM2Y5Ny5mYmY3N2ZmOWRmZDNiZjZmLmY3YmVkN2RmN2ViZmVmN2QKLSAgICBkYTEyODQ2NGVlMWVjYjZlLjhjOWE3ZjhmZGZhYTMzOTIuNWEzNTdhNzFkZDUzYjkyYy5iNTE2ZDcwNjdlYjFjZjIwCisgICAgZTkwNzI0NzA1NzkxMzExYy42MmE4NWQzNjNhMzQyY2QyLmVhYWYyZjg0Nzg5NWRhM2EuZTgyODMzNzAxZWExNjRkMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MWRjZWY4NTc3NDAwMDAwLjQxYzgwNzkwYWU4MDAwMDAKICAgICBkMTFmNGI3YTlhYjA0YTdmLmQ1NmMzOTVlMjQzMjNmMTcuZTNkNzZmODg0YjkyOWU0Ny43M2JlMTVkZDMwMGYyMTVkCiAgICAgMmE3Yzc2MWRmYWQ0ZThmYi4xOWU5MDc4ZjI0ZDgwYjhkLmUwZTMwODM3NWVkYmM1MzkuZmVlYzZhZGY0ZmM0MTViNQogICAgIDMyNmM1MWZhZjdkZTY4NTQKLVZPUlBTXzI1NihtZW0pCitWQ1ZURFEyUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZWIwYTQ2MTk0NTY5ZDY2NS40MTczZmZiOGE3MTVlMThmLjM0ZGU2NjBlZmJhOTU0MWYuYWNhMzQzZTliMWJjNjlhYwogICAgIDA1OTFjNTI4NTQ2ZjFiMTQuNzI1MWU1Yjk0MGZmNzJlNy4wMjE3ZDBjOGM2YjBkNmZhLmE1NjQxYjA5ZTFjMGM3NGMKQEAgLTIwMzUxLDEyICsyMDM1MSwxMiBAQAogICAgIDJlYTQyYTNlYjIxOTkzZjcKICAgYWZ0ZXIKICAgICBlYjBhNDYxOTQ1NjlkNjY1LjQxNzNmZmI4YTcxNWUxOGYuMzRkZTY2MGVmYmE5NTQxZi5hY2EzNDNlOWIxYmM2OWFjCi0gICAgMDU5MWM1Mjg1NDZmMWIxNC43MjUxZTViOTQwZmY3MmU3LjAyMTdkMGM4YzZiMGQ2ZmEuYTU2NDFiMDllMWMwYzc0YwotICAgIGVmOWJjNzM5NTU2ZmRmNzUuNzM3M2ZmYjllN2ZmZjNlZi4zNmRmZjZjZWZmYjlkNmZmLmFkZTc1YmU5ZjFmY2VmZWMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzFkNGQ3MmYwNWMwMDAwMC5jMWQzOTBlNTk1MDAwMDAwCisgICAgNWNjZjRhMTM0MWZlZjI4ZS4xOTYxMjE4YjVlMWZkOGFmLjVmNjBjM2E3YTFmOTRjNDkuMjU3MjhjMDU4OTc0MWJjNgogICAgIGNiOGU1MmM2MjcyMTE4ZmYuOTJmMWIwOWFhMDAwNGM5Mi4yNzg1YmE5OWE3OTE3NDM5LjhhMTk5MjQ4NDU2M2EwYzYKICAgICAyZWE0MmEzZWIyMTk5M2Y3CiAKLVZPUlBTXzI1NihyZWcpCitWQ1ZURFEyUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNmY2MDRmNTQ2YjIzMzAwNi4zMDliNTgyZTIzZTU0OTkyLjM5NGI4ZjUyOWYyZjBkM2MuMzU1MjMxODlmNDgzMDhmNgogICAgIGE3OWFmZGY0MGQwY2IzOWUuNjZjMmQ4MzU1MDU1NDE3NC42YWJkYjkyMGY5Mzc1NTVhLjY3OTJhNTYzYTVkYmM0YWIKQEAgLTIwMzY0LDEyICsyMDM2NCwxMiBAQAogICAgIDcwYjNlNDg2N2FhYzU5MWMuYjU4ZDM3ZDRhZTZhNzRkNC5kYTE0ZGVhOTJkMDI2ZGExLmE0OWY3MDg1YTFlZmE4YWYKICAgICA2NjAzYzFhNTI1YzI0NzU2CiAgIGFmdGVyCi0gICAgYjc5ZWZkZmYzZDZjZjdmZi42ZmNlZGVmZGRhN2RmYmY1LmViYmRiYjZlZmJiNzc1ZGEuZmY5M2I1NzNmN2ZmZTZhZgotICAgIGE3OWFmZGY0MGQwY2IzOWUuNjZjMmQ4MzU1MDU1NDE3NC42YWJkYjkyMGY5Mzc1NTVhLjY3OTJhNTYzYTVkYmM0YWIKKyAgICA2ZjYwNGY1NDZiMjMzMDA2LjMwOWI1ODJlMjNlNTQ5OTIuMzk0YjhmNTI5ZjJmMGQzYy4zNTUyMzE4OWY0ODMwOGY2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMxZDlmYjFiZmI0MDAwMDAuYzFjNGFjY2NiZDgwMDAwMAogICAgIDM0OWMzMDhiMzQ2MDU3NmQuNDljZTRlYzljYTdkYmJkMS44MTkxMmE2ZTRhYTQ2MTk4Ljk4MTM5MDEzZDZhNjY2ODUKICAgICA3MGIzZTQ4NjdhYWM1OTFjLmI1OGQzN2Q0YWU2YTc0ZDQuZGExNGRlYTkyZDAyNmRhMS5hNDlmNzA4NWExZWZhOGFmCiAgICAgNjYwM2MxYTUyNWMyNDc1NgotVk9SUFNfMjU2KG1lbSkKK1ZDVlREUTJQRF8xMjgobWVtKQogICBiZWZvcmUKICAgICBiYzBiZmQ1ZjdiMmNmZWE1LmI4MmExNjRmN2U3YmY1NTkuODVjOTBkNDQxODI3MjhhYS5kMTkyZDIzZTNmZGViNDIyCiAgICAgODE4MmExOWZjMjM4OGFjOS42ODRmYzE1NGQ5NTk2NmQwLjk3NTA0ZTAzMjNjMTkyN2UuYzI1NjAxOTcxYmMzNzNjNwpAQCAtMjAzNzgsMTIgKzIwMzc4LDEyIEBACiAgICAgMDg0NWM4N2I4NjIzZDc0MgogICBhZnRlcgogICAgIGJjMGJmZDVmN2IyY2ZlYTUuYjgyYTE2NGY3ZTdiZjU1OS44NWM5MGQ0NDE4MjcyOGFhLmQxOTJkMjNlM2ZkZWI0MjIKLSAgICA4MTgyYTE5ZmMyMzg4YWM5LjY4NGZjMTU0ZDk1OTY2ZDAuOTc1MDRlMDMyM2MxOTI3ZS5jMjU2MDE5NzFiYzM3M2M3Ci0gICAgYmQ4YmZkZGZmYjNjZmVlZC5mODZmZDc1ZmZmN2JmN2Q5Ljk3ZDk0ZjQ3M2JlN2JhZmUuZDNkNmQzYmYzZmRmZjdlNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMWM3MzY5NmUxMDAwMDAwLjQxY2ZlZjVhMTEwMDAwMDAKKyAgICA5MDM2MmE1MTEzZjJhN2VlLmRkNmNlMTAwMmFkM2VhMmQuYzVlYzc2ZmZlYjQyNmY3ZC4wOGFlNjcyMjVkM2VlNjNiCiAgICAgYzdmMTEzNjI4ZDY3MTEzZi43MWNmNzJiZTBhNzRiYTFiLmVkNmFmZjIzOGRiODdiZDIuMDFlNDAwNGFhMmRhNDkyYgogICAgIDA4NDVjODdiODYyM2Q3NDIKIAotVk9SUFNfMjU2KHJlZykKK1ZDVlREUTJQRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA3ODFlYmMyMWEzYTVjZDJkLjAxODBkOWJkNDlhMjg0ZTkuODFjMjcxZmMxN2M4MTU0Ni5lYTk2Njc1YjI1MmY3MWFiCiAgICAgYWZiOGQ3YTg5OGVkNjY5OC4xOWIwZjY0ZDY1YWZiYjE4LjY5OTJkOTI1ZWQ1YzM1NWMuOTczYjI4OTNjZWIyMGYzMQpAQCAtMjAzOTEsMTIgKzIwMzkxLDEyIEBACiAgICAgZGU2NzcyMDk3NGZkNzU5Yi41NzFkMmFjMTJjNzE2N2IzLjMxZjhkNGU5NjI3MWI3ZjMuNzUyNGFiYjRjNDBjMmRmYQogICAgIDVlZmY2Mzc0NDlmYzI3OTUKICAgYWZ0ZXIKLSAgICBhZmZhZDdmY2ZmZWZlNmJlLmZkZmFmZTRkZmRiZmZiZmYuZWQ5YmZmYTVlZmZmNzc1ZS5kNzNmZTliYmVlZmYwZmIzCi0gICAgYWZiOGQ3YTg5OGVkNjY5OC4xOWIwZjY0ZDY1YWZiYjE4LjY5OTJkOTI1ZWQ1YzM1NWMuOTczYjI4OTNjZWIyMGYzMQorICAgIDc4MWViYzIxYTNhNWNkMmQuMDE4MGQ5YmQ0OWEyODRlOS44MWMyNzFmYzE3YzgxNTQ2LmVhOTY2NzViMjUyZjcxYWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzFjNmVjMWYyNDAwMDAwMC5jMWQ2ZWNiYzFiNDAwMDAwCiAgICAgMDg2MjE1N2NmZjg2ZTAyZS5lZDRhZTgwMGZkOWI3M2Y3Ljg1OGJhNmE1MjdiYjU3MDYuZDIyN2MxYjhhNDRkMGY5MwogICAgIGRlNjc3MjA5NzRmZDc1OWIuNTcxZDJhYzEyYzcxNjdiMy4zMWY4ZDRlOTYyNzFiN2YzLjc1MjRhYmI0YzQwYzJkZmEKICAgICA1ZWZmNjM3NDQ5ZmMyNzk1Ci1WT1JQU18yNTYobWVtKQorVkNWVERRMlBEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDY3ODQ2NmU1NTAyOGI3OGUuOGYxMmViYmI5NGRkNjI4ZC4zNGY0Mzg3YzBmM2U1NDc3LmNhMjc1ZjViMzkwYjkxY2QKICAgICA2ZDdmMmZmMWY0OWM5YTEyLjc1YjA3YmZmZmFiMmUyYWUuNjE5YThlMWRjMTBjZjY3MC5hYTYyNDQ2ODQ4MTQyMDQwCkBAIC0yMDQwNSwxMiArMjA0MDUsMTIgQEAKICAgICA5MTU5ZTE2YmUyNDM2OGVkCiAgIGFmdGVyCiAgICAgNjc4NDY2ZTU1MDI4Yjc4ZS44ZjEyZWJiYjk0ZGQ2MjhkLjM0ZjQzODdjMGYzZTU0NzcuY2EyNzVmNWIzOTBiOTFjZAotICAgIDZkN2YyZmYxZjQ5YzlhMTIuNzViMDdiZmZmYWIyZTJhZS42MTlhOGUxZGMxMGNmNjcwLmFhNjI0NDY4NDgxNDIwNDAKLSAgICA2ZmZmNmZmNWY0YmNiZjllLmZmYjJmYmZmZmVmZmUyYWYuNzVmZWJlN2RjZjNlZjY3Ny5lYTY3NWY3Yjc5MWZiMWNkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMxY2FlYzUwNTI4MDAwMDAuNDFjYzg1YzhlNjgwMDAwMAorICAgIDRkYmMzYTg2NTI2NThjNGMuZWU4ZTFlM2Y0MzA5MzNhYS5iOGRjYTg5MDVlZWEwOWM5LjJlZjY3ZTdkMmMxOWExZmEKICAgICBlMTA2MDM4Zjg1OGU0ODY5LjU0ZjZkMGU5MGE2ZDhmMmUuMTc4NzAzYzEwM2UxNDlhZi5iMTJmMDkwNDgxYTQ1MGE0CiAgICAgOTE1OWUxNmJlMjQzNjhlZAogCi1WQU5ETlBEXzI1NihyZWcpCitWRElWUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjljMDAzMWRlYjgyMjY3Zi4wNjJiMDdmOGFhMjQ4Yjk0LjA1MzQ4ZDY4ZWI2YTMyZTYuNTg2NTFhOWNjYmZmNzE0ZQogICAgIGQ1YjA2YTg2MzllY2M2MDYuOTlmNWMxYWRkYzMyMTFmYS41Yjk2NTIyODg0OGQ1YTdkLjU4NDI2OTBlZDM0ZjNlZDEKQEAgLTIwNDE4LDEyICsyMDQxOCwxMiBAQAogICAgIGQ5NTlmNzJkMTI3MTliYTYuNzRhYjQ3YWJkOGU3ZDQyNi42YWYyZTExYTQ3NzIyNGZhLjA2MmVhMDYzMTFiNmI2MzUKICAgICA2YmQzODAxZjgwZTZkOTZlCiAgIGFmdGVyCi0gICAgMjA0NDEwMTA0NjAxMDEyOS42NDAwMmMxMjIzYzQ4NDA1LmEwNjAwODk0NmE2MDAxODAuYTNhYzA0MDEyNDkwNDEyNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lODIwMjgzYjE3ZjIzMzllLmE0NDRiOWFhZmFlZmMwMzEKICAgICBkNWIwNmE4NjM5ZWNjNjA2Ljk5ZjVjMWFkZGMzMjExZmEuNWI5NjUyMjg4NDhkNWE3ZC41ODQyNjkwZWQzNGYzZWQxCiAgICAgZjE3NDEyMTI2NzBkODMyZi43NDMxYWQ5YTM3YzQ5NWM3LmIzNjYxYTk0NmU2MTQxYTAuZjNlYzZkMDEzNmRlNmI2NQogICAgIGQ5NTlmNzJkMTI3MTliYTYuNzRhYjQ3YWJkOGU3ZDQyNi42YWYyZTExYTQ3NzIyNGZhLjA2MmVhMDYzMTFiNmI2MzUKICAgICA2YmQzODAxZjgwZTZkOTZlCi1WQU5ETlBEXzI1NihtZW0pCitWRElWUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZmZhODg4MjA5ZDc3OTAzYy5lOWFiMTU0M2Q1YTU0NzE3Ljc1MmYwY2NjZGJhNThhNDQuZGE4NGEzMjZhYjRkM2YzOAogICAgIDllNzkzNTU0ODc3Nzk5Y2EuN2NiNjY5YzA0ZDM0YzYyYy41Mzg4NzZlOTViMGQ3MzRjLjYwNjk1YzIyMzU3ZGNkMDYKQEAgLTIwNDMzLDExICsyMDQzMywxMSBAQAogICBhZnRlcgogICAgIGZmYTg4ODIwOWQ3NzkwM2MuZTlhYjE1NDNkNWE1NDcxNy43NTJmMGNjY2RiYTU4YTQ0LmRhODRhMzI2YWI0ZDNmMzgKICAgICA5ZTc5MzU1NDg3Nzc5OWNhLjdjYjY2OWMwNGQzNGM2MmMuNTM4ODc2ZTk1YjBkNzM0Yy42MDY5NWMyMjM1N2RjZDA2Ci0gICAgNjE4MDg4MjAxODAwMDAzNC44MTA5MTQwMzkwODEwMTEzLjI0MjcwODA0ODBhMDg4MDAuOWE4NGEzMDQ4YTAwMzIzOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZTQ5MzY4N2JkNjA3Y2E3LmM1ZDNhOTUxNjkzMDQzZWEKICAgICA2ZDNmNmEwMjJiZjI4Y2Q4LmEwMjdhMGEwY2E5NTI5ZjkuMTZlZDJlYzg0MzA0Y2NjZC4xZjVjYTU5ZDJjMGQzNTAwCiAgICAgMGYwMTJjZjVkMTg1ODY4NQogCi1WQU5ETlBEXzI1NihyZWcpCitWRElWUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODUyYTliZWQwZDgyM2I0OS41NWNiZWI1NDFmODVlZmIwLmU3MjQ3YmRhMDc3ZTg1MDguYjM5MDc0NjJlM2FjYjU5ZAogICAgIGRkMjFlY2YzN2M5MTkwZjguYjg4NDAwODk0ZWI2OTJmOS4yMzBiN2IyYzY4ZjNhMjZjLjlkMzk0ZmE4NzEyZGMwMDgKQEAgLTIwNDQ1LDEyICsyMDQ0NSwxMiBAQAogICAgIGEzYWMyOWQ2NjAxMjA5Y2EuNWZhOGQ3NDdjZjI0OGI4Yy5lNmMyZGNjNDA5YWUxMmU2LmM4Y2RiOWU3YzVlNzMwNWQKICAgICBjMTRmM2ZiOWM0MzkwYmEwCiAgIGFmdGVyCi0gICAgMjIxMjExMDA4MDJjNDEwNy40MjMwMjUwMjkxMDAyMDA2LjhjMjQ4NDAwODIwYzFkOTIuMjA4NDMwMDUwODkyMmIzMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iM2QzNzFiYTBhZmFlNDFkLjJjNzQwMjJlMzU4NzIzMTcKICAgICBkZDIxZWNmMzdjOTE5MGY4LmI4ODQwMDg5NGViNjkyZjkuMjMwYjdiMmM2OGYzYTI2Yy45ZDM5NGZhODcxMmRjMDA4CiAgICAgNzMzMzFkNzJiODNkYzEzZi43MjM0MjU4YmQ1OTIzMmRlLmFmMjY5ZDAwOGE3ZWJkZDIuYjBiNDNkODUwOTkyYWIzOQogICAgIGEzYWMyOWQ2NjAxMjA5Y2EuNWZhOGQ3NDdjZjI0OGI4Yy5lNmMyZGNjNDA5YWUxMmU2LmM4Y2RiOWU3YzVlNzMwNWQKICAgICBjMTRmM2ZiOWM0MzkwYmEwCi1WQU5ETlBEXzI1NihtZW0pCitWRElWUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNzcwODRjZTcxZjkzZmEyZC5jOWQ4MGM4YjBkOWRhNTQ1LjViYWM5MWFhNTg3ODU4MmUuMjYyYjM0ZTM4MDBjZGQ1MwogICAgIGM2YzI1YTVlZjUwMWI3MzEuNDEwMmMzZmQ1ZTY5ZDE1Yi40MjBjY2Y5ZjhkOWI1N2YxLmM5YWNhMWM5OGIyNjU5YzUKQEAgLTIwNDYwLDExICsyMDQ2MCwxMSBAQAogICBhZnRlcgogICAgIDc3MDg0Y2U3MWY5M2ZhMmQuYzlkODBjOGIwZDlkYTU0NS41YmFjOTFhYTU4Nzg1ODJlLjI2MmIzNGUzODAwY2RkNTMKICAgICBjNmMyNWE1ZWY1MDFiNzMxLjQxMDJjM2ZkNWU2OWQxNWIuNDIwY2NmOWY4ZDliNTdmMS5jOWFjYTFjOThiMjY1OWM1Ci0gICAgMzEwODA0YTEwYTkyNDgwYy44OGQ4MGMwMjAxOTQyNDA0LjE5YTAxMDIwNTA2MDA4MGUuMjYwMzE0MjIwMDA4ODQxMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNjUwMjJiMzA3OTI3ODI4LmUzNzBkNjk4MWQ0ZmNlMTUKICAgICA5ZjZjNmVkMjdiNGI4ZDRjLjk3ODQ5OWM4NTVmNWM4MDkuNDAwZmM4ZWU2OTdiZDU4OS5hYzJhYWM5YWQwYmM1NzZiCiAgICAgYTNiZTQxNWU0MTUwNTFmNwogCi1WQU5ETlBEXzI1NihyZWcpCitWRElWUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNmY5Y2RiOThiNmNmZWMzOC5lMGYzNmNhOTY1M2UxZWJjLjJkNzNiMmY5MzVjZTBiZmEuMTA0YTdhMjE0OTUxY2ViNgogICAgIDZhMGQ3N2I1Y2NjNjY1ZGIuMmJhZDViNzczODc2NmU1Mi44NTkxOGQ5ODI3MTdjZDM2LjNiMTFhMTk2NDQyNWU3YjMKQEAgLTIwNDcyLDEyICsyMDQ3MiwxMiBAQAogICAgIDYxZTBhMTRhNDk0OWUxZjUuNGJlNjAxYWQwYmUyM2FhMi5lYThhN2RjY2IzMmVjMjQyLjExNzMzY2Y2ZmNmODZiZDAKICAgICA3NWE2YTdiYWYxMGY0ZTQ3CiAgIGFmdGVyCi0gICAgOTE2MDA4MDIxMjAwOTgwMC41MDQwYTAwODAxODgxMTI4LjdhMmEyMDA3Yzg0ODAwNDguODQyMDE4MjkzMjAyMTgwYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRkZDBkZjUxODJjMGNmYzgKICAgICA2YTBkNzdiNWNjYzY2NWRiLjJiYWQ1Yjc3Mzg3NjZlNTIuODU5MThkOTgyNzE3Y2QzNi4zYjExYTE5NjQ0MjVlN2IzCiAgICAgZjE2MDBmMjIxZWMwZjg4Yi41YjY0YjkyYTExZmUzOTNhLmZiMmEyODBmYzg1ZTRjNmEuOWQzMGI4Mzk3NjAzZGRhZAogICAgIDYxZTBhMTRhNDk0OWUxZjUuNGJlNjAxYWQwYmUyM2FhMi5lYThhN2RjY2IzMmVjMjQyLjExNzMzY2Y2ZmNmODZiZDAKICAgICA3NWE2YTdiYWYxMGY0ZTQ3Ci1WQU5ETlBEXzI1NihtZW0pCitWRElWUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTM5NDc3NmY3MjU0NDIzZS4xNGQ4Mjg5OGU4ZWU1YmM0LmQ5ZmRhZmViNDIyZjJmYjQuYjBmYzhhMzk4NDE0NmM2OQogICAgIDc5MGIyNzAzOWFkNDAzZTMuNjc5NmExN2E5ODNhYTNhNS5lMDc2M2ZkMmQzZjBkMTljLmE4Y2U0YmM0ZDg5YTg1OGMKQEAgLTIwNDg3LDExICsyMDQ4NywxMSBAQAogICBhZnRlcgogICAgIGEzOTQ3NzZmNzI1NDQyM2UuMTRkODI4OThlOGVlNWJjNC5kOWZkYWZlYjQyMmYyZmI0LmIwZmM4YTM5ODQxNDZjNjkKICAgICA3OTBiMjcwMzlhZDQwM2UzLjY3OTZhMTdhOTgzYWEzYTUuZTA3NjNmZDJkM2YwZDE5Yy5hOGNlNGJjNGQ4OWE4NThjCi0gICAgODI5NDUwNmM2MDAwNDAxYy4xMDQ4MDg4MDYwYzQ1ODQwLjE5ODk4MDI5MDAwZjJlMjAuMTAzMDgwMzkwNDA0Njg2MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NjY3ZmI5MDRjZmRhMTcyLjM3YzBmYzA1YzUwN2Q1ZTgKICAgICA4OWJmMTg3NDUxYjJkYmUxLjVlOGY1NWE3OTlmODhjNGMuYzhiZGY3NDg3MWZmMTNhMS45ZGJkZDVlMTc3YmNmODc0CiAgICAgNTM3Mzk2NGJmYjZmYzg5MgogCi1WQU5ETlBTXzI1NihyZWcpCitWQU5EUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYWFiN2ZjODI3MWYzZjk1Yi43Yzk1NTAyYTE3Mjk2YTkzLmI5NjI4OWNhMjI4MmE1NmEuNjEyNDE2YjBiNzY1MmExNQogICAgIDAwZDcwMGYyNzVkNWM1N2IuODUyMzU5NmRmNTBhYjVhMi4yNDJiOWUzMDJiZTQ3YjQ5LmU0MWMwNzZmYzU3MGUwMTAKQEAgLTIwNDk5LDEyICsyMDQ5OSwxMiBAQAogICAgIDE1ZDdkNjJlOTllMDIwNzQuNGQ5NmNjNGY2ODNjNzI4NS45YWNiNWM3NjMwNWQ1MmZkLjE0ZjI1MGE2YjBhMjE4NGEKICAgICA3OTY4YTBmNWMzZTExMWUwCiAgIGFmdGVyCi0gICAgYjAwODlmMDg4MDIwMjg4MC4wMDE0YTYwMjAyNjA0ODE5LmRiMTQwMTQ2NTAwODA0OTYuMGI2MjQwMTAzYTBiMTBhZQorICAgIDAwMTUwMDAwMjQ4MDQxMjAuODEyMDA4MjkwNTAyMzEyMC4yMDIxOTAwMDAxYTA0ODAwLjIwMTAwNzYyODAyMGUwMTAKICAgICAwMGQ3MDBmMjc1ZDVjNTdiLjg1MjM1OTZkZjUwYWI1YTIuMjQyYjllMzAyYmU0N2I0OS5lNDFjMDc2ZmM1NzBlMDEwCiAgICAgYjAxZDlmMDhhNGEwNjlhMC44MTM0YWUyYjA3NjI3OTM5LmZiMzU5MTQ2NTFhODRjOTYuMmI3MjQ3NzJiYTJiZjBiZQogICAgIDE1ZDdkNjJlOTllMDIwNzQuNGQ5NmNjNGY2ODNjNzI4NS45YWNiNWM3NjMwNWQ1MmZkLjE0ZjI1MGE2YjBhMjE4NGEKICAgICA3OTY4YTBmNWMzZTExMWUwCi1WQU5ETlBTXzI1NihtZW0pCitWQU5EUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMzdhMGIyNGQwZmY1OWFhZS44ZDRmYTBkMmYxMjIyN2EzLmMzMTMyZGM1MzRhNDVjYjEuNWQzYWZkMmU2MzhjY2EyOQogICAgIDJiNjUwMzk5YjJlOTZkZGQuNzJkMmY5NWU0N2YxYmFkYS5jMTc4NGY3YTg4YTZmM2VhLmEwY2U2ZmQ4ODZjM2YwYzcKQEAgLTIwNTE0LDExICsyMDUxNCwxMSBAQAogICBhZnRlcgogICAgIDM3YTBiMjRkMGZmNTlhYWUuOGQ0ZmEwZDJmMTIyMjdhMy5jMzEzMmRjNTM0YTQ1Y2IxLjVkM2FmZDJlNjM4Y2NhMjkKICAgICAyYjY1MDM5OWIyZTk2ZGRkLjcyZDJmOTVlNDdmMWJhZGEuYzE3ODRmN2E4OGE2ZjNlYS5hMGNlNmZkODg2YzNmMGM3Ci0gICAgMTQ4MGIwNDQwZDE0OTIyMi44ZDBkMDA4MGIwMDIwNTIxLjAyMDMyMDg1MzQwMDBjMTEuNWQzMDkwMjY2MTBjMGEyOAorICAgIDIzMjAwMjA5MDJlMTA4OGMuMDA0MmEwNTI0MTIwMjI4Mi5jMTEwMGQ0MDAwYTQ1MGEwLjAwMGE2ZDA4MDI4MGMwMDEKICAgICAyMGNhNGViZDY2YTJlNDE1LmY3Mjg0OWUzNWU2Nzc0MGYuYzAyYWMzNGMzNmFhMTYzMi4xNjk1YjdiNzBlNzYzNDA3CiAgICAgMDA1Zjg1YzJhYjBiY2IwMgogCi1WQU5ETlBTXzI1NihyZWcpCitWQU5EUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZGI3ZjE0NzFhOWQ3MDAxZS5kYTAxNDE2ZGIxODAwMDc1LjRlOTQzOGIzNTgyNjEyNjUuN2EwZjBlNDNjOWM0MWE5OQogICAgIDAyM2Y2MDJmYTI2NzBlMDguM2FmNjYyYzFjMTZkNTZlNy44MzNhYTYxY2MwYTIyYzcyLjJjMGIwODI3NTJhOGJjYmQKQEAgLTIwNTI2LDEyICsyMDUyNiwxMiBAQAogICAgIGE0ZDIyMDg5ZmIwMGE3ZjQuNTc0OTIwMDVhMWE5YTJiMy5mODY3ZjA2OTRjMDNjMzY0LmUzN2NmZTZiYmNmZWM0ZTkKICAgICBhMTg4ZjJhMmQ1ODlhNDRhCiAgIGFmdGVyCi0gICAgZDFjMDA1NDAxNTAwMzA2My4wMDAxMGMyNDMyMTJhMTE4LjcwNDUxMDgyMzM0OGQxODEuOTBlMDI3YzBhMDQyMDI0MAorICAgIDAwMmM2MDI5MjA0NjAyMDguMWE3NDIyODE4MDY1MDI4MC44MzIyODAwODAwMjAyYzYyLjIwMGIwODI2NTAyMGI0ODkKICAgICAwMjNmNjAyZmEyNjcwZTA4LjNhZjY2MmMxYzE2ZDU2ZTcuODMzYWE2MWNjMGEyMmM3Mi4yYzBiMDgyNzUyYThiY2JkCiAgICAgZDFlYzY1NjkzNTQ2MzI2Yi4xYTc1MmVhNWIyNzdhMzk4LmYzNjc5MDhhMzM2OGZkZTMuYjBlYjJmZTZmMDYyYjZjOQogICAgIGE0ZDIyMDg5ZmIwMGE3ZjQuNTc0OTIwMDVhMWE5YTJiMy5mODY3ZjA2OTRjMDNjMzY0LmUzN2NmZTZiYmNmZWM0ZTkKICAgICBhMTg4ZjJhMmQ1ODlhNDRhCi1WQU5ETlBTXzI1NihtZW0pCitWQU5EUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYzZkYzg1Nzc1NDBmMTAxOC5kNjNkOGNmYzkyMjFhYjRlLmNkNDBiNGNlYWExMDExNjUuZWY4NmM0MjVhN2ZmYjhhMAogICAgIDJlNDMzNWQ2NTg5YWM1N2YuYzU3OWE1MmY5NjM2NzgyNy41ODI0NjZlYWU4YjdhYWRhLjM0MTAwNzJiZTFlOTE4NDQKQEAgLTIwNTQxLDExICsyMDU0MSwxMSBAQAogICBhZnRlcgogICAgIGM2ZGM4NTc3NTQwZjEwMTguZDYzZDhjZmM5MjIxYWI0ZS5jZDQwYjRjZWFhMTAxMTY1LmVmODZjNDI1YTdmZmI4YTAKICAgICAyZTQzMzVkNjU4OWFjNTdmLmM1NzlhNTJmOTYzNjc4MjcuNTgyNDY2ZWFlOGI3YWFkYS4zNDEwMDcyYmUxZTkxODQ0Ci0gICAgYzA5YzgwMjEwNDA1MTAwMC4xMjA0MDhkMDAwMDE4MzQ4Ljg1NDA5MDA0MDIwMDExMjUuY2I4NmMwMDQwNjE2YTBhMAorICAgIDA2NDAwNTU2NTAwYTAwMTguYzQzOTg0MmM5MjIwMjgwNi40ODAwMjRjYWE4MTAwMDQwLjI0MDAwNDIxYTFlOTE4MDAKICAgICAzNzdlZDllMjU4ZjRmOWM1LjQ2OTJjZTgxNTM2YTVmMDAuMWRlNjE1ZDA3NGY2NGNiYi4xOTk0Y2FjMTYwYjQwZDczCiAgICAgNzAyNjQzMjlkZWFlMTk1NQogCi1WQU5ETlBTXzI1NihyZWcpCitWQU5EUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgODU1MzFiOGJhOWM1ODE0Zi45MGU5YzU2ODhlZGJmMGZkLjkxMDhkNzc4NDRhMWYyNTkuMGY1YzA5NzBmYWE2Y2Q3ZgogICAgIGI0Njc0ZTUyNjA4NTgwMGQuOWM5OWJlMjdiN2Y4MjA3ZS4wNzgwN2RkZjExZmIzZWRmLjg2ZjAwYzE1MjZjNjY5YjYKQEAgLTIwNTUzLDEyICsyMDU1MywxMiBAQAogICAgIGQwNzNiNWJmZmMzMjM2ODMuM2RmMmM0MDQ1MzA1MWEwYS5lOGEwOTFhYWIyNGFmMzI1LjczYTEyZDFiZGU4N2UxMmMKICAgICBhMTU2NDM1NWEyNDEzNWMyCiAgIGFmdGVyCi0gICAgNDk4ODkwYTg5YzdhNTMzMi4yMzQ2MDEwODQ4MDc0NDAwLjAwNDM4MDIwNDYwNDQxMjAuNTgwZDkyYWExMTIwOTQwOAorICAgIDEwMjY0ODQyMDAwMTAwMDkuMTQxMTNlMDVhNzUwMDA3NC4wNjAwM2MwMTExMDEzZTFmLjA2NjAwODAwMDI0MjQ4ODQKICAgICBiNDY3NGU1MjYwODU4MDBkLjljOTliZTI3YjdmODIwN2UuMDc4MDdkZGYxMWZiM2VkZi44NmYwMGMxNTI2YzY2OWI2CiAgICAgNTlhZWQ4ZWE5YzdiNTMzYi4zNzU3M2YwZGVmNTc0NDc0LjA2NDNiYzIxNTcwNTdmM2YuNWU2ZDlhYWExMzYyZGM4YwogICAgIGQwNzNiNWJmZmMzMjM2ODMuM2RmMmM0MDQ1MzA1MWEwYS5lOGEwOTFhYWIyNGFmMzI1LjczYTEyZDFiZGU4N2UxMmMKICAgICBhMTU2NDM1NWEyNDEzNWMyCi1WQU5ETlBTXzI1NihtZW0pCitWQU5EUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYzM1OTU3NDI3YzlhOTQ3Yy43NTA0ZTIzZDE5Mzc2NDk0LjhhMzVjOWZhZmYwZDVjNmMuMGJlMmY2ZTZiZDU2ZDQzYwogICAgIGI3NzZlNWNmODdhMGJhODQuYTRhYjVhZDA5MTE0MWIxOC5mOWViY2JkYTBlN2JjNmM3LmM5NTRlOTQxMTRiNjVmMzEKQEAgLTIwNTY4LDExICsyMDU2OCwxMSBAQAogICBhZnRlcgogICAgIGMzNTk1NzQyN2M5YTk0N2MuNzUwNGUyM2QxOTM3NjQ5NC44YTM1YzlmYWZmMGQ1YzZjLjBiZTJmNmU2YmQ1NmQ0M2MKICAgICBiNzc2ZTVjZjg3YTBiYTg0LmE0YWI1YWQwOTExNDFiMTguZjllYmNiZGEwZTdiYzZjNy5jOTU0ZTk0MTE0YjY1ZjMxCi0gICAgNDAwOTEyMDA3ODFhMDQ3OC41MTA0YTAyZDA4MjM2NDg0LjAyMTQwMDIwZjEwNDE4MjguMDJhMjE2YTZhOTQwODAwYworICAgIDgzNTA0NTQyMDQ4MDkwMDQuMjQwMDQyMTAxMTE0MDAxMC44ODIxYzlkYTBlMDk0NDQ0LjA5NDBlMDQwMTQxNjU0MzAKICAgICA4MjJkNWY3YWEyZTE0OTJmLjEwNmUxY2U2MDE4YzBlMmIuYjJlNGIyMDhjNmJiMDYxNy44YWZiNjYwNTE4OWY2MjYzCiAgICAgNDRjOGU5NDVmZDQwNTJmOQogCi1WT1JQRF8yNTYocmVnKQorVlBNT1ZTWEJXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDBiZjZlODU1OWY2NWRiMWMuMTA2MDQ0NzBlOTM1MmIyYi4wNDIyNWQ0MDMxM2VjNDEyLmIzYmU5MDJlYTdhNDUzNjQKICAgICAzOWQxNjE5Zjk4OWEzYjc5LmUwZGM5M2I2ZDI2NGMzMjUuZjMxZGRhNjAyYmY5ZjExZC40NjNjNWJlZTVjMjRiODVhCkBAIC0yMDU4MCwxMiArMjA1ODAsMTIgQEAKICAgICAzZWJjYWY5NjA1NjE2YjkwLmIyZTI2MGUxZjk4ODA4YzYuMmYxNzc1OWVlZWJiYTI0ZC45NzUzYTRlZGIwMTZiZGVmCiAgICAgMGI4NDFiMDM4N2ExZDVlNgogICBhZnRlcgotICAgIDNiZjU2ZjlmOWVmYWJmZmQuZWRmZWRiYjdmYjdjY2Y2Zi5mYmJmZGVmMWFiZjlmMWZmLjRmM2RkZmZlNWM2NmZhN2UKLSAgICAzOWQxNjE5Zjk4OWEzYjc5LmUwZGM5M2I2ZDI2NGMzMjUuZjMxZGRhNjAyYmY5ZjExZC40NjNjNWJlZTVjMjRiODVhCisgICAgMGJmNmU4NTU5ZjY1ZGIxYy4xMDYwNDQ3MGU5MzUyYjJiLjA0MjI1ZDQwMzEzZWM0MTIuYjNiZTkwMmVhN2E0NTM2NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDQ5MDAyOWZmOGQwMDM0LjAwMDAwMDQ2ZmZmMjAwMjQKICAgICAyYmE0NGY5MTg2NmFhY2JjLmNkNmVjODM3Nzk3Y2NlNGEuMzhhYThlYjE4YjQ5ZDFmNy40OTI5OGQzNDAwNDZmMjI0CiAgICAgM2ViY2FmOTYwNTYxNmI5MC5iMmUyNjBlMWY5ODgwOGM2LjJmMTc3NTllZWViYmEyNGQuOTc1M2E0ZWRiMDE2YmRlZgogICAgIDBiODQxYjAzODdhMWQ1ZTYKLVZPUlBEXzI1NihtZW0pCitWUE1PVlNYQldfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgODM4OTZlNjRhMmYyZjYzNi5jYzY1N2IxYWIwMGJiNGExLjZkMDRkNTlmNmU5NDJjYzQuMzNhZThjOTVlZmRiOWVjYQogICAgIGQ5MmYxYWZhMWMxNmRiMGEuMzJlYmIxODkyNGY1YzI5ZC5kODlmYTU1ZGY1YWRmODcxLmEyYmNjZDAxMmIzMzAyMWIKQEAgLTIwNTk0LDEyICsyMDU5NCwxMiBAQAogICAgIDAyYTc2ZTNjNTYwZGY0YmIKICAgYWZ0ZXIKICAgICA4Mzg5NmU2NGEyZjJmNjM2LmNjNjU3YjFhYjAwYmI0YTEuNmQwNGQ1OWY2ZTk0MmNjNC4zM2FlOGM5NWVmZGI5ZWNhCi0gICAgZDkyZjFhZmExYzE2ZGIwYS4zMmViYjE4OTI0ZjVjMjlkLmQ4OWZhNTVkZjVhZGY4NzEuYTJiY2NkMDEyYjMzMDIxYgotICAgIGRiYWY3ZWZlYmVmNmZmM2UuZmVlZmZiOWJiNGZmZjZiZC5mZDlmZjVkZmZmYmRmY2Y1LmIzYmVjZDk1ZWZmYjllZGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAzM2ZmYWVmZjhjZmY5NS5mZmVmZmZkYmZmOWVmZmNhCisgICAgZWIzZjk5YjMxMTE3NDE4Zi5jYzlhNGM0ZmZjYWFkMjJkLmQxODE0YjA4YTlkZTI2ZjguZDc4ZDM2NGUzZTUxMGFlYgogICAgIDkzODg2OTdhOWUwM2UzZjEuZjZiZTQ4ZDhkNWI2MjAwMC4zMjc0NDQ4YWE3MzM3Mjg2LjJkNmRjMmU5YzNjMGYxZTgKICAgICAwMmE3NmUzYzU2MGRmNGJiCiAKLVZPUlBEXzI1NihyZWcpCitWUE1PVlNYQldfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjA4OTM0YjQ5NGMzNGYxMy5hZmQ1MDUzYmRmZTY3ZTViLjBjYTJhMjkxNGFhNmU3YzAuZDk0NTBhZDAwYWI5OWE0NgogICAgIDk1NWQxMmJlMTg2ZTNlOTkuMTlmMWVhZTJlZmNiY2VmYS42YTk0NTRlNGY3MDU2NDE5LmEwYzAxYmM3ZWY3YjU4NjUKQEAgLTIwNjA3LDEyICsyMDYwNywxMiBAQAogICAgIDcwMGUwMzM0NjRkNWM2ZTYuNGJjYTdiOTJlZGNiN2Q4Ni42ZWNkYjUwYzZjNDE3MDQ5LjAyZTQwYjc0YWRlNTg5NmYKICAgICA1NDI0ZTIwM2JlYTQ3M2IyCiAgIGFmdGVyCi0gICAgOWY3ZDEzZmU3ZmZmZmVmZC5iZmZiZmFmYmVmZmZjZmZhLjZlZGU1Y2ZlZmY1ZmY3YjkuZTRmMWZiZGZmZmZmNzk2ZgotICAgIDk1NWQxMmJlMTg2ZTNlOTkuMTlmMWVhZTJlZmNiY2VmYS42YTk0NTRlNGY3MDU2NDE5LmEwYzAxYmM3ZWY3YjU4NjUKKyAgICBiMDg5MzRiNDk0YzM0ZjEzLmFmZDUwNTNiZGZlNjdlNWIuMGNhMmEyOTE0YWE2ZTdjMC5kOTQ1MGFkMDBhYjk5YTQ2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwNjRmZmIxZmZmMjAwNTkuMDA3MWZmODYwMDY5MDAwZgogICAgIDBiNzAwM2M0N2Y5YmZjZmMuYWVhYTkyNWJlYWJlOGZmYS42Y2RlNWMzZTc5NWZkM2I5LjY0YjFmMjU5NzE4NjY5MGYKICAgICA3MDBlMDMzNDY0ZDVjNmU2LjRiY2E3YjkyZWRjYjdkODYuNmVjZGI1MGM2YzQxNzA0OS4wMmU0MGI3NGFkZTU4OTZmCiAgICAgNTQyNGUyMDNiZWE0NzNiMgotVk9SUERfMjU2KG1lbSkKK1ZQTU9WU1hCV18xMjgobWVtKQogICBiZWZvcmUKICAgICAzNzNmZjRmMmMxY2ZlNDA0LjFlODMwZTc4NjNhOGQ4MDQuY2ExZTIwNzQxNGZmNTNjYS5jY2FkNWNiOTZhMzY3Njc4CiAgICAgODhmZmJjMmRkMTczOTg5MC43MzFiMjFmZTE5YTA2ZDAxLjA4NzFmZGViN2E2NWNlZjQuZTJjYTRiYjAxMmNiMjJmMApAQCAtMjA2MjEsMTIgKzIwNjIxLDEyIEBACiAgICAgMGI4NWE5OTIxM2JjNjFjOQogICBhZnRlcgogICAgIDM3M2ZmNGYyYzFjZmU0MDQuMWU4MzBlNzg2M2E4ZDgwNC5jYTFlMjA3NDE0ZmY1M2NhLmNjYWQ1Y2I5NmEzNjc2NzgKLSAgICA4OGZmYmMyZGQxNzM5ODkwLjczMWIyMWZlMTlhMDZkMDEuMDg3MWZkZWI3YTY1Y2VmNC5lMmNhNGJiMDEyY2IyMmYwCi0gICAgYmZmZmZjZmZkMWZmZmM5NC43ZjliMmZmZTdiYThmZDA1LmNhN2ZmZGZmN2VmZmRmZmUuZWVlZjVmYjk3YWZmNzZmOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmNjZmZhZDAwNWNmZmI5LjAwNmEwMDM2MDA3NjAwNzgKKyAgICAyMTMxYjZhMDBiOWI0YTgyLmM5MjEzNzMxMjI0YWMzOGEuZTE5MThmZTQzYjBhYTkyZC4wYzZmODA1ZmZlOGJiMDVkCiAgICAgZGZhMTVlMzc4YTU0YjcwNy43ZGUyNGM3ZDE5MzIxMzRhLjMyNDk1MDRjNzRmOWEyYTQuYTZlYWY2MzFjYTAyNWM2YwogICAgIDBiODVhOTkyMTNiYzYxYzkKIAotVk9SUERfMjU2KHJlZykKK1ZQTU9WU1hCV18xMjgocmVnKQogICBiZWZvcmUKICAgICA5OThkOTVlZTc0NDZmYzFmLjllMWIzMGRlNmFhOTliNGIuZWNhYjVjNGU5YmUyOWNlZS5kNTY0YmUwZTQwM2U3MzgzCiAgICAgYWI0ZWI3YjI4YTJiNjkxYi4zYTZhYTk4MWM4YTZiMjdhLjcwYzY2NDEwNDNlODk4MjIuYTdhZjU0MTZiY2U2ZDhmNgpAQCAtMjA2MzQsMTIgKzIwNjM0LDEyIEBACiAgICAgY2EyYThhMWQ0MzM4YTdiNC43YWJiN2Q2YzZjYzk2NzQ2LjJhMjQ0ODE4NzYyNGRjZTguNDgwNWU5YTczMjhjNTI0YgogICAgIGNmYThlMDA5NjRhMmRlODUKICAgYWZ0ZXIKLSAgICBiZjVlYmZmYWZhZmJlYjdiLmJmN2VlZDhkYzhmZWI3ZmYuNzZmZjdlMzBlZmY4ZGNiMy5hN2ZmZGU1ZmJmZmZkZmZmCi0gICAgYWI0ZWI3YjI4YTJiNjkxYi4zYTZhYTk4MWM4YTZiMjdhLjcwYzY2NDEwNDNlODk4MjIuYTdhZjU0MTZiY2U2ZDhmNgorICAgIDk5OGQ5NWVlNzQ0NmZjMWYuOWUxYjMwZGU2YWE5OWI0Yi5lY2FiNWM0ZTliZTI5Y2VlLmQ1NjRiZTBlNDAzZTczODMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmY4NGZmZjZmZjhlMDA0Zi4wMDAzZmZmYmZmOGYwMDJiCiAgICAgOWQxNDBhNDhmMGY4ZTM2OS44ZjVjNDQwZGMwNThiN2JmLjY2N2Y1ZTMwYWRkMDQ0OTEuODRmNjhlNGYwM2ZiOGYyYgogICAgIGNhMmE4YTFkNDMzOGE3YjQuN2FiYjdkNmM2Y2M5Njc0Ni4yYTI0NDgxODc2MjRkY2U4LjQ4MDVlOWE3MzI4YzUyNGIKICAgICBjZmE4ZTAwOTY0YTJkZTg1Ci1WT1JQRF8yNTYobWVtKQorVlBNT1ZTWEJXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGY1YWFlZjYyYjU0YmVmMDMuOTBkZTMzOWUxZTc3ZjFhOS5kNTU0ZDA4Y2ViMDg3ZTNkLjE4MDAxZTM1Mzk3MzljZDIKICAgICA5NmQ5OTI5YzQyOTI0MGYxLjRhN2EwMjM1MWQ0MWZkZjMuN2RmM2JhNTg1NzFlYjdjZC44ZDVlZGFmNDkzNDZiZmZjCkBAIC0yMDY0OCwxMiArMjA2NDgsMTIgQEAKICAgICBhNTgyNTIyZTQwNThkN2IwCiAgIGFmdGVyCiAgICAgZjVhYWVmNjJiNTRiZWYwMy45MGRlMzM5ZTFlNzdmMWE5LmQ1NTRkMDhjZWIwODdlM2QuMTgwMDFlMzUzOTczOWNkMgotICAgIDk2ZDk5MjljNDI5MjQwZjEuNGE3YTAyMzUxZDQxZmRmMy43ZGYzYmE1ODU3MWViN2NkLjhkNWVkYWY0OTM0NmJmZmMKLSAgICBmN2ZiZmZmZWY3ZGJlZmYzLmRhZmUzM2JmMWY3N2ZkZmIuZmRmN2ZhZGNmZjFlZmZmZC45ZDVlZGVmNWJiNzdiZmZlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMTgwMDAwMDAxZTAwMzUuMDAzOTAwNzNmZjljZmZkMgorICAgIDhlZmY0NWE0Mjc4NDhlN2QuNTM0YmYxNTBkZDIzMDYzZi40ZTY0YjZiY2NjMTlkMDI1LmUzOGI3YWMwMWYyYjgyMTIKICAgICBiOWU5ODU2NzdmMmM5NWQwLjA5OWRmZTVhZmFhOTQ5MzguMjM3MzQwYTM2NzA0ODM2Zi43N2QzZjgwNDdhYWQyMGJmCiAgICAgYTU4MjUyMmU0MDU4ZDdiMAogCi1WUEVSTUlMUFNfMjU2XzB4MEYocmVnKQorVlBTVUJVU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYzllNDg0YTkwYmI5ZTE5MC5mMzYzY2RjZjY2OTYxMDE5LmM2YmMyNGJmMGY1ZDAyOGMuZGFlYmQ0ZmI0M2VjOGNkNwogICAgIDNmNDU4OGUxNzk1YjdiMGMuMTgzOTk5Y2FmOWNmYmQ4Mi5lOGY0NjBlYmI4Y2Q2Y2U0LjRlOWFlZWIwN2RkY2E5OGEKQEAgLTIwNjYxLDEyICsyMDY2MSwxMiBAQAogICAgIDkxMzNmYjM5YWQ5MzRkODcuOTIyOGFkMjU5MmRiOTc2NS5jN2RlMDY0ODM5MGY0NjU2LmRkYzhhNmRjNzkwNTBhODEKICAgICBiMGUwM2IyYzczNTZjNjFiCiAgIGFmdGVyCi0gICAgYzllNDg0YTkwYmI5ZTE5MC5mMzYzY2RjZjY2OTYxMDE5LmM2YmMyNGJmMGY1ZDAyOGMuZGFlYmQ0ZmI0M2VjOGNkNwotICAgIDU0ZTI1NjM3NTRlMjU2MzcuNjNmMDVjNDI2M2YwNWM0Mi4zMGUwOTRiNDMwZTA5NGI0LmM5OTBhYzRhYzk5MGFjNGEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjExNjVhYTM3ZmJlMjY4ZS4wMDAwNDdkNDA0ZDc5ZjA5CisgICAgM2Y0NTg4ZTE3OTViN2IwYy4xODM5OTljYWY5Y2ZiZDgyLmU4ZjQ2MGViYjhjZDZjZTQuNGU5YWVlYjA3ZGRjYTk4YQogICAgIDYzZjA1YzQyMjZjYWUwZDAuMDQzNjY1NDM1NGUyNTYzNy5jOTkwYWM0YTkyODRjNGVmLjViNGEwYmFjMzBlMDk0YjQKICAgICA5MTMzZmIzOWFkOTM0ZDg3LjkyMjhhZDI1OTJkYjk3NjUuYzdkZTA2NDgzOTBmNDY1Ni5kZGM4YTZkYzc5MDUwYTgxCiAgICAgYjBlMDNiMmM3MzU2YzYxYgotVlBFUk1JTFBTXzI1Nl8weDBGKG1lbSkKK1ZQU1VCVVNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGFmNWU0Njg5M2FkZjg1YjEuMjU1ODYxMzBhYjQxZmVkZS5hMGQ5ZWU1ZWNmYzczZTM4LjNjMjg2OTUxNDhmOTJlYzgKICAgICBiODBkNDRkZGViYWQwMzZkLjdhYWM4YTk0YmI2MTJmODAuMDkxNmEzZDkyOGIxMDVkYi44NWJiZDFkMjViY2ViN2VmCkBAIC0yMDY3NSwxMiArMjA2NzUsMTIgQEAKICAgICBmMTIxMDE1NWM4NGE3NTVlCiAgIGFmdGVyCiAgICAgYWY1ZTQ2ODkzYWRmODViMS4yNTU4NjEzMGFiNDFmZWRlLmEwZDllZTVlY2ZjNzNlMzguM2MyODY5NTE0OGY5MmVjOAotICAgIGFiNDFmZWRlMjU1ODYxMzAuYWY1ZTQ2ODkzYWRmODViMS40OGY5MmVjODNjMjg2OTUxLmEwZDllZTVlY2ZjNzNlMzgKLSAgICBhNmJiYjAxNmEyY2JmYzdjLmVlN2E3M2QyN2E3ZTFiMWEuYTlhYjQ4ODJiOGE1YTk3Yi5mZmUzM2IzNTBmMWIxZTc4CisgICAgYjgwZDQ0ZGRlYmFkMDM2ZC43YWFjOGE5NGJiNjEyZjgwLjA5MTZhM2Q5MjhiMTA1ZGIuODViYmQxZDI1YmNlYjdlZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ5OTM2ODgxMTJkNTg5MjcKICAgICA1NTMyMDYxZjdhNDYyYjA5LmRjMTAxNzU0ODMyNGZmNTguNWI2NDU5NDY5Y2IwZTU0NC4wNGVjYTFlOGZmNmI5ZjBlCiAgICAgZjEyMTAxNTVjODRhNzU1ZQogCi1WUEVSTUlMUFNfMjU2XzB4MEYocmVnKQorVlBTVUJVU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjNkMDU2ZWEwNTQ1ZGQxMy5hMDNmYzJlNDhmMjg0ZTQxLmEwYjk3Mjg4NzJkZjE3ZTUuZmQwZDUzMGZlZmRkNzY2MQogICAgIGY0NDM5ZDEyNTNlNzEzZGEuNjVhZTYwNTBmZTdmMWU1MC45NWMwODBkOWU0M2M5ZjZlLjZhNzFiMWNhY2UzODE4ZmYKQEAgLTIwNjg4LDEyICsyMDY4OCwxMiBAQAogICAgIGU2YThlZGNiOGY1MWQ4NGQuYzllMTM0ZDM1OWJhYmNhMC44NzFiYTY4MmJmMGFlZDIyLjE0OWU4OWM3OWVhYTdlNmMKICAgICAwOWZlZmNlMWM3ZDliYjkzCiAgIGFmdGVyCi0gICAgMjNkMDU2ZWEwNTQ1ZGQxMy5hMDNmYzJlNDhmMjg0ZTQxLmEwYjk3Mjg4NzJkZjE3ZTUuZmQwZDUzMGZlZmRkNzY2MQotICAgIGUzNTc1YTYxZTM1NzVhNjEuYzFjN2QwMzljMWM3ZDAzOS41NGNlODc0OTU0Y2U4NzQ5LjE5NzIzZGIzMTk3MjNkYjMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGVhNTAwMDAyNTMyMDAwMC41NWQzMjgwMzJmOGUwMDAwCisgICAgZjQ0MzlkMTI1M2U3MTNkYS42NWFlNjA1MGZlN2YxZTUwLjk1YzA4MGQ5ZTQzYzlmNmUuNmE3MWIxY2FjZTM4MThmZgogICAgIGMxYzdkMDM5NGRiYzUzNWYuN2U0YjVkNTFlMzU3NWE2MS4xOTcyM2RiMzc0YzZkMjllLjdkNWVlZjY0NTRjZTg3NDkKICAgICBlNmE4ZWRjYjhmNTFkODRkLmM5ZTEzNGQzNTliYWJjYTAuODcxYmE2ODJiZjBhZWQyMi4xNDllODljNzllYWE3ZTZjCiAgICAgMDlmZWZjZTFjN2Q5YmI5MwotVlBFUk1JTFBTXzI1Nl8weDBGKG1lbSkKK1ZQU1VCVVNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDNhNGFjMjlkZWI2NmY3ZWMuYmYzMmVmMzRiNjMxZGY1MS4yMDNlNjFjMDdjYjcwMTNiLjNhMDdiNmIyNjE5MzJjYTUKICAgICA4MTRlNTllNzI4NWRmMWEwLmE4YjFkMmUwNWVlOGE0MTYuNjEyYzYwMDU2OTU3ZTU1Yy45MDgyNjlhZmY0ZWRjYWQ1CkBAIC0yMDcwMiwxMiArMjA3MDIsMTIgQEAKICAgICBmNTQzMmRhZDc3NWMzYzFmCiAgIGFmdGVyCiAgICAgM2E0YWMyOWRlYjY2ZjdlYy5iZjMyZWYzNGI2MzFkZjUxLjIwM2U2MWMwN2NiNzAxM2IuM2EwN2I2YjI2MTkzMmNhNQotICAgIGI2MzFkZjUxYmYzMmVmMzQuM2E0YWMyOWRlYjY2ZjdlYy42MTkzMmNhNTNhMDdiNmIyLjIwM2U2MWMwN2NiNzAxM2IKLSAgICBiY2Q1M2NhYTk3Y2E2M2RkLmZkNzA5MzNiMjIwMzYyNDkuNjY3OGFkOGUzYmE4MjMyZi5lNGQ4YmJlNTE3YTUwNDViCisgICAgODE0ZTU5ZTcyODVkZjFhMC5hOGIxZDJlMDVlZThhNDE2LjYxMmM2MDA1Njk1N2U1NWMuOTA4MjY5YWZmNGVkY2FkNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MGVlMDAwMDAwMDBlNDIxLjU2N2IwMDAwOTM1YTllMzAKICAgICBjNWFkZThkNDU2YmEwYWNmLjFhYmQyY2IyOWYwZDU3OTYuMGRlZWM1NDgwZmI1NzllMS45MTU0YTljMDY0NDYxNmU2CiAgICAgZjU0MzJkYWQ3NzVjM2MxZgogCi1WUEVSTUlMUFNfMjU2XzB4MEYocmVnKQorVlBTVUJVU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNmFmMTQ1MTZlYzczYjFiNS43OWEwZDc1MTgxMzhhMmEyLjViZTI5YmFmNzA5M2JkYTguMzA1YTIzMWUwMDhhYTA5ZQogICAgIDRlYWFlZDY5NjExOGIyNTIuYjU3Yjg3MGIzMjUxZTc4MS4xYzJjZGJhMDMxMjBkMDJjLmFjODg0M2ZiMmIzNDU3OTEKQEAgLTIwNzE1LDEyICsyMDcxNSwxMiBAQAogICAgIGNlNmRkOTdhYjQzYTQ3NTMuMzAxOTE3ZWE5ZDgxNjYxNS44ZTVlYmYwYWY1N2ZmMTM4LjIwNTliYTdmOWQzNTYwY2IKICAgICBjZjk0MDlmZDFjYTQyYjZhCiAgIGFmdGVyCi0gICAgNmFmMTQ1MTZlYzczYjFiNS43OWEwZDc1MTgxMzhhMmEyLjViZTI5YmFmNzA5M2JkYTguMzA1YTIzMWUwMDhhYTA5ZQotICAgIDg4MGY5NDk5ODgwZjk0OTkuZmJiYTFmMTFmYmJhMWYxMS5hYmJlNThlN2FiYmU1OGU3LmI5ZTdlOWVmYjllN2U5ZWYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDFjOTYwMDAwMDAwMC44YzJmMDAwMDAwMDAwMDAwCisgICAgNGVhYWVkNjk2MTE4YjI1Mi5iNTdiODcwYjMyNTFlNzgxLjFjMmNkYmEwMzEyMGQwMmMuYWM4ODQzZmIyYjM0NTc5MQogICAgIGZiYmExZjExNmZkNzdiYTMuNTMwYTczZWY4ODBmOTQ5OS5iOWU3ZTllZjdmNDBjZWNkLjVlNDNhMmNkYWJiZTU4ZTcKICAgICBjZTZkZDk3YWI0M2E0NzUzLjMwMTkxN2VhOWQ4MTY2MTUuOGU1ZWJmMGFmNTdmZjEzOC4yMDU5YmE3ZjlkMzU2MGNiCiAgICAgY2Y5NDA5ZmQxY2E0MmI2YQotVlBFUk1JTFBTXzI1Nl8weDBGKG1lbSkKK1ZQU1VCVVNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDQ3YzEwYTMzNDQxNzc1ZjAuMjQwZTE1MGZjY2NmNTMwZi4yODc0ZWZlNjhkYjAxODIyLmY3ZGY1YjVjMzA2YTc1MTkKICAgICA2NWFjMzkwZDMyOWFmOTg4LjU3ZWJkMjNlNTIyMmRiODIuMThlNjc4ZDE3NWFhNjhlYi41MGI0Yjg1MWNiOGM5ODFiCkBAIC0yMDcyOSwxMiArMjA3MjksMTIgQEAKICAgICA5MjJhMmUzYWY4YjcwYWEzCiAgIGFmdGVyCiAgICAgNDdjMTBhMzM0NDE3NzVmMC4yNDBlMTUwZmNjY2Y1MzBmLjI4NzRlZmU2OGRiMDE4MjIuZjdkZjViNWMzMDZhNzUxOQotICAgIGNjY2Y1MzBmMjQwZTE1MGYuNDdjMTBhMzM0NDE3NzVmMC4zMDZhNzUxOWY3ZGY1YjVjLjI4NzRlZmU2OGRiMDE4MjIKLSAgICAwMzIxMTM3NzAyM2E3NDVmLmM0NGUwOTczZTJiZDFiNTkuZGEzYzJkOTU3MDdhMTA5ZC5mNTJiZDI1NTYzNzI5NGViCisgICAgNjVhYzM5MGQzMjlhZjk4OC41N2ViZDIzZTUyMjJkYjgyLjE4ZTY3OGQxNzVhYTY4ZWIuNTBiNGI4NTFjYjhjOTgxYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDA1MGM5LjAwMDA1Y2Y1OWIyMjIzMDIKICAgICBmZWViMTI1ZWNmMDNhMWEwLmM4ODRiNzE4MTkyZTRlNDAuNGI0MzhhMjA5YjJkY2M2NC40MjhlYTVkNDkzYTZhNjM0CiAgICAgOTIyYTJlM2FmOGI3MGFhMwogCi1WUEVSTUlMUFNfMjU2XzB4RkEocmVnKQorVlBTVUJTV18xMjgocmVnKQogICBiZWZvcmUKICAgICA0MzRhNjhmNDJkMmVmYmUzLjMyZDhiNGFjYjVmZjNlNzguYmRkOWQ5OWE5MzAxYjFlMi40N2M1MGI1ZDExY2U1YTZiCiAgICAgYjAzYzRmNmNjZjk5YjZhMi43YmIyNzQ0ZmQxM2MwNTEzLjAwOTg2YTY1ZWJjMDgwZWMuYWE4ZjJkMzhlZjY5NzRkZgpAQCAtMjA3NDIsMTIgKzIwNzQyLDEyIEBACiAgICAgMmRjMjE1NGFjODc5N2E0Ny5iYzYwM2Y0MDE5YTcwMzQwLmUwODhjYTg3YTYzODUxZTYuMTUyYTQwNzg1MGJlM2ZiYwogICAgIGQ1OTMyYmI1MGQ5MTY3N2UKICAgYWZ0ZXIKLSAgICA0MzRhNjhmNDJkMmVmYmUzLjMyZDhiNGFjYjVmZjNlNzguYmRkOWQ5OWE5MzAxYjFlMi40N2M1MGI1ZDExY2U1YTZiCi0gICAgMzQ0YmRmMTAzNDRiZGYxMC43OTgzNzc4OTc5ODM3Nzg5LmVkMGY2NmU2ZWQwZjY2ZTYuYmRmOWY2MDliZGY5ZjYwOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMDEwN2ZmZjQ1ODg4MDAwLjk1NjVlY2MwOWVhYjM1MjMKKyAgICBiMDNjNGY2Y2NmOTliNmEyLjdiYjI3NDRmZDEzYzA1MTMuMDA5ODZhNjVlYmMwODBlYy5hYThmMmQzOGVmNjk3NGRmCiAgICAgMzQ0YmRmMTA3OTgzNzc4OS5iNTQ2Y2YzMTNlYzViMjljLmVkMGY2NmU2YmRmOWY2MDkuNTA2YzZiOWQ1MDBhZDdlYgogICAgIDJkYzIxNTRhYzg3OTdhNDcuYmM2MDNmNDAxOWE3MDM0MC5lMDg4Y2E4N2E2Mzg1MWU2LjE1MmE0MDc4NTBiZTNmYmMKICAgICBkNTkzMmJiNTBkOTE2NzdlCi1WUEVSTUlMUFNfMjU2XzB4RkEobWVtKQorVlBTVUJTV18xMjgobWVtKQogICBiZWZvcmUKICAgICA2Yzc0YTU0MWEwOGQwYzVjLmY2ZWVlYjg4NTcwNmZhODUuNmNjYzQyNjc3ZWVkYjIyYS4zNTUxOTBiNjQxMDhjYTJmCiAgICAgYjY5YTJjMDYyN2MwZWE4My5lYTFiNWYzNWMyYjYzNGYyLmExNTY1MzkyODdhMzdjODcuNDliNGI2ZGUyYmY1YTA4ZgpAQCAtMjA3NTYsMTIgKzIwNzU2LDEyIEBACiAgICAgOGU3NjNiNjRkN2U0OWZmNQogICBhZnRlcgogICAgIDZjNzRhNTQxYTA4ZDBjNWMuZjZlZWViODg1NzA2ZmE4NS42Y2NjNDI2NzdlZWRiMjJhLjM1NTE5MGI2NDEwOGNhMmYKLSAgICA2Yzc0YTU0MWEwOGQwYzVjLmY2ZWVlYjg4ZjZlZWViODguNmNjYzQyNjc3ZWVkYjIyYS4zNTUxOTBiNjM1NTE5MGI2Ci0gICAgOGZjZjNhZjJiZTM1YmMxZS42Nzk1NmNiZGE2MTY2NDM4LjM3YzllZWFkNTNkNjFkODMuNzZmZTM3NmJmZjhiMGRiMworICAgIGI2OWEyYzA2MjdjMGVhODMuZWExYjVmMzVjMmI2MzRmMi5hMTU2NTM5Mjg3YTM3Yzg3LjQ5YjRiNmRlMmJmNWEwOGYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDExMmI4MDAwN2ZmZi4xNDYzMjYyOGVhZWRkNjYwCiAgICAgZDNkZjRlZWY4MGY5NDA1YS5jN2E4MGY4YzlmYjBjNTA0LjBhZjM5MGE0ZmI5MTUwNDkuMTk3YTBmYzk1YTU3NGY0NgogICAgIDhlNzYzYjY0ZDdlNDlmZjUKIAotVlBFUk1JTFBTXzI1Nl8weEZBKHJlZykKK1ZQU1VCU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzEzY2I1YTgxM2JlM2M2Yy41ZTk4ZTFlYjg5MTczMDYyLjY4OWY0MjBlNDgxMzk0MDEuZjY5ZWIzNjM5ZWUwZDIwNgogICAgIDVkMWE3YjAxYTk3MjYwNTYuMGJjNDcwZDFmNjliNDg2NC5hNGM4MDNhZjNkYzgwZGRjLmQ2OTdkNWQ2NTVkMDVmZTUKQEAgLTIwNzY5LDEyICsyMDc2OSwxMiBAQAogICAgIGM1NDlkOWEzNTU5NjMwMzUuNDBhOTc0MGI2YTA3ZTQwMC42MWRiMWNmZjdkNWVlY2RhLmU3YTMwNDg5NzVjMDg5YmMKICAgICBjZjRkMDhhMDE1ZDk5ZTBiCiAgIGFmdGVyCi0gICAgMzEzY2I1YTgxM2JlM2M2Yy41ZTk4ZTFlYjg5MTczMDYyLjY4OWY0MjBlNDgxMzk0MDEuZjY5ZWIzNjM5ZWUwZDIwNgotICAgIDcwNWE4OGRiNzA1YTg4ZGIuMzY4YjQ4NjAzNjhiNDg2MC5kODZkNGRkYmQ4NmQ0ZGRiLjFiNWQ2YzQwMWI1ZDZjNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMGU2YjBjMDZhMjEwMi5lZWY0ZDE0ZGUwMTA3ZmZmCisgICAgNWQxYTdiMDFhOTcyNjA1Ni4wYmM0NzBkMWY2OWI0ODY0LmE0YzgwM2FmM2RjODBkZGMuZDY5N2Q1ZDY1NWQwNWZlNQogICAgIDcwNWE4OGRiMzY4YjQ4NjAuYjgzMTc4OGRlMjkyNDY4OS5kODZkNGRkYjFiNWQ2YzQwLjg4YWE3MWU5M2U2Y2IzMTMKICAgICBjNTQ5ZDlhMzU1OTYzMDM1LjQwYTk3NDBiNmEwN2U0MDAuNjFkYjFjZmY3ZDVlZWNkYS5lN2EzMDQ4OTc1YzA4OWJjCiAgICAgY2Y0ZDA4YTAxNWQ5OWUwYgotVlBFUk1JTFBTXzI1Nl8weEZBKG1lbSkKK1ZQU1VCU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMWI3NmZiMWMzYmMyYWUyZC5iODMzNjhjM2EyMWU1MzgyLjdmZjllMDM3YTkwNmRmZjMuOTk1ZTZkODUwMDU1Y2E1NgogICAgIGE5ZTg1OGU4MDI4Nzc0NGQuYTU2MzMzYTliYWFmZWVmMy41MGVkMzhmZGJjOWNmMjhlLmRkNDEzYmRiM2ZkMDQyNWYKQEAgLTIwNzgzLDEyICsyMDc4MywxMiBAQAogICAgIDhhMmE2YmVlODBjZDliODUKICAgYWZ0ZXIKICAgICAxYjc2ZmIxYzNiYzJhZTJkLmI4MzM2OGMzYTIxZTUzODIuN2ZmOWUwMzdhOTA2ZGZmMy45OTVlNmQ4NTAwNTVjYTU2Ci0gICAgMWI3NmZiMWMzYmMyYWUyZC5iODMzNjhjM2I4MzM2OGMzLjdmZjllMDM3YTkwNmRmZjMuOTk1ZTZkODU5OTVlNmQ4NQotICAgIDU0NzA5YmYwODYzNWFkOTguZTgyNzM1YmYzOWQ1M2QzMy45MTUwZjk0OWJlZDRkYWZlLjhhZDI4MTZiZDc1YjhmYTIKKyAgICBhOWU4NThlODAyODc3NDRkLmE1NjMzM2E5YmFhZmVlZjMuNTBlZDM4ZmRiYzljZjI4ZS5kZDQxM2JkYjNmZDA0MjVmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwZjQ1OGM2MTM5NjEyOWIuNDNlM2NlNTYzZjdiNzgwOQogICAgIGY3ZGE0MDIwZTRkNzE1MzkuZGNjOTZhNzNiYTFkN2NlZi4xZGYwOWUwOGNjYmI1MzZmLmZhNWMzZWEzNjM4MGVmY2IKICAgICA4YTJhNmJlZTgwY2Q5Yjg1CiAKLVZQRVJNSUxQU18yNTZfMHhGQShyZWcpCitWUFNVQlNXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDk2ODkwNWI4YzljZWQyN2MuNzBmMmM0NjQzNzc5Njc1ZC5kZjk3Y2YzMGQ5MTJlNmQyLmNmOTdhMzI0MDE1YjE5MGMKICAgICA3YWM1MDk2ZGRiMGRjZTVkLjk5ODNhMmE4OWMyODYxMzAuNGNkYjVlNjIzMzQxYjg4OS44NTEzODQ4YjdhYzJlNzAyCkBAIC0yMDc5NiwxMiArMjA3OTYsMTIgQEAKICAgICAzYjAzM2M0OGM3N2IwODhkLjZmNDQ1Y2UwMGJkYjM3OTEuZDNmN2VmZDUwNjdhODMyMi42OWI1Y2JlNmE2MTQ4ZWE4CiAgICAgNGY3MzI5YjM5MTE2ZGZhZgogICBhZnRlcgotICAgIDk2ODkwNWI4YzljZWQyN2MuNzBmMmM0NjQzNzc5Njc1ZC5kZjk3Y2YzMGQ5MTJlNmQyLmNmOTdhMzI0MDE1YjE5MGMKLSAgICA5MzJhNzI3OTkzMmE3Mjc5LjUxMThjY2Q0NTExOGNjZDQuN2VlMTE1NzU3ZWUxMTU3NS42NDM1MmRiZjY0MzUyZGJmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc4ZTQ2ZThkMmNjNzM1NjcuODAwMGI4YTU3ZmZmNTg1YQorICAgIDdhYzUwOTZkZGIwZGNlNWQuOTk4M2EyYTg5YzI4NjEzMC40Y2RiNWU2MjMzNDFiODg5Ljg1MTM4NDhiN2FjMmU3MDIKICAgICA5MzJhNzI3OTUxMThjY2Q0LjUwNWI1NmQ4MmZlZmJkZGQuN2VlMTE1NzU2NDM1MmRiZi4xOTJlYmQyODUyZmM3YjdkCiAgICAgM2IwMzNjNDhjNzdiMDg4ZC42ZjQ0NWNlMDBiZGIzNzkxLmQzZjdlZmQ1MDY3YTgzMjIuNjliNWNiZTZhNjE0OGVhOAogICAgIDRmNzMyOWIzOTExNmRmYWYKLVZQRVJNSUxQU18yNTZfMHhGQShtZW0pCitWUFNVQlNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGE5MzY1MzdhMmYwZTI4YzAuY2Y5ZTY0NDZkYWMxYmUzMy5kNDBiMzFhZDRjZjY4ZDc4LmE1NjhlOWVlYjg5ZGY0NWIKICAgICA1MWM4YzUyNzlkMDkyNjA1LmFiNDVlNWUwMjY3NjI5NzIuNTk3YzRmMjkwZjRmNzliZC41MjdmZmQyZDEzMjhiZDE5CkBAIC0yMDgxMCwxMiArMjA4MTAsMTIgQEAKICAgICAwYmE3YjZmZTNlYmM3ZTFlCiAgIGFmdGVyCiAgICAgYTkzNjUzN2EyZjBlMjhjMC5jZjllNjQ0NmRhYzFiZTMzLmQ0MGIzMWFkNGNmNjhkNzguYTU2OGU5ZWViODlkZjQ1YgotICAgIGE5MzY1MzdhMmYwZTI4YzAuY2Y5ZTY0NDZjZjllNjQ0Ni5kNDBiMzFhZDRjZjY4ZDc4LmE1NjhlOWVlYTU2OGU5ZWUKLSAgICAyNGY3ZmNhNmY3MTI5NWFhLjJiNDViYTgwNDYyNjg2ZjcuZGM2MzM0NDI2ZmVmYjg4Yy4zNThhMjlmY2I2YWExOTA1CisgICAgNTFjOGM1Mjc5ZDA5MjYwNS5hYjQ1ZTVlMDI2NzYyOTcyLjU5N2M0ZjI5MGY0Zjc5YmQuNTI3ZmZkMmQxMzI4YmQxOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZmZmMWQ3Y2MyNTk3ZmZmLjdmZmYxMzNmNWE4YmM4YmUKICAgICBmZjhkNzNlMzU4MzYzMWRjLmFiZWJlMTk0ZDY1ZTEwNmUuMzc4YzVjZTI4OGU0MDYxMy5hOWQzNjhjOTNhYWM0NmNlCiAgICAgMGJhN2I2ZmUzZWJjN2UxZQogCi1WUEVSTUlMUFNfMjU2XzB4QTMocmVnKQorVlBDTVBFUVdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjg1MTEwMDk1YjY2ZmRhMi5iYzU3YTZjYmRjODBiNWM3Ljg3ODA1Njg2NzNhOTA1ODMuNDdjMjQxZjc3ODM5MWU3YwogICAgIDBhMWY3MDU1MmYzNDAxMDUuMzgyMDExNDhhMGZjZGU5Ni4xYjUzMTNjNGI5OTQ5ZmUxLmU5ZDM2MTZjNThmYmJkZjMKQEAgLTIwODIzLDEyICsyMDgyMywxMiBAQAogICAgIDExNTMzNzYwNmI3MjgzMWEuZGVlNDgwYjU1NmJiMGU5Mi5kYWRmNWFkMWFkNzZiNDI5LjRlYjEzZTI2NWVmMzdmYmUKICAgICBjYTE3ZjU0M2JiNDExYTY5CiAgIGFmdGVyCi0gICAgYjg1MTEwMDk1YjY2ZmRhMi5iYzU3YTZjYmRjODBiNWM3Ljg3ODA1Njg2NzNhOTA1ODMuNDdjMjQxZjc3ODM5MWU3YwotICAgIDU2YjRjNGY0NTZiNGM0ZjQuYmZiNjY3NzY1ZjVjZDQ0ZS40M2E5MWIzNDQzYTkxYjM0LjQ2MzQ5ZmE1YzJhZjE2YjkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMGExZjcwNTUyZjM0MDEwNS4zODIwMTE0OGEwZmNkZTk2LjFiNTMxM2M0Yjk5NDlmZTEuZTlkMzYxNmM1OGZiYmRmMwogICAgIDVmNWNkNDRlNTZiNGM0ZjQuNTBiNjMwNDhiZmI2Njc3Ni5jMmFmMTZiOTQzYTkxYjM0LmY3ODkzNjJkNDYzNDlmYTUKICAgICAxMTUzMzc2MDZiNzI4MzFhLmRlZTQ4MGI1NTZiYjBlOTIuZGFkZjVhZDFhZDc2YjQyOS40ZWIxM2UyNjVlZjM3ZmJlCiAgICAgY2ExN2Y1NDNiYjQxMWE2OQotVlBFUk1JTFBTXzI1Nl8weEEzKG1lbSkKK1ZQQ01QRVFXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDQ3ODdkNTcwNzkyYzJjZDMuN2Q1MTk1ZjcwYWY4N2EyNC5iZjc1N2M3ZDgwMTY4ZDE3LmJlMzBkYjc4OTQ4N2E4NmMKICAgICBhMWNjNWM5YWI1YmY3MTI3LmZmYTJlYjdmZDBkNGU0YmUuY2YzNmEwOGI1YWQ0YTAzMS5jYWVlOTYxYTkzNjczMGE4CkBAIC0yMDgzNywxMiArMjA4MzcsMTIgQEAKICAgICA3NWFlZjQxYjNiNWFhNmVmCiAgIGFmdGVyCiAgICAgNDc4N2Q1NzA3OTJjMmNkMy43ZDUxOTVmNzBhZjg3YTI0LmJmNzU3YzdkODAxNjhkMTcuYmUzMGRiNzg5NDg3YTg2YwotICAgIDc5MmMyY2QzNDc4N2Q1NzAuN2Q1MTk1ZjcwYWY4N2EyNC44MDE2OGQxN2JmNzU3YzdkLmJlMzBkYjc4OTQ4N2E4NmMKLSAgICBiNWI0MDVhYjhiMDdhNDkyLmY0OTIzNDY0NTk5MmZlOTMuZWFmMzY4Y2JmZjAwMDUwYi41YTY1ODUyMzQ3YTI4YjhhCisgICAgYTFjYzVjOWFiNWJmNzEyNy5mZmEyZWI3ZmQwZDRlNGJlLmNmMzZhMDhiNWFkNGEwMzEuY2FlZTk2MWE5MzY3MzBhOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA1ZDA5NGM5MTE2MGY4MjQwLmI2NmQ2YzEzNDBiYzA0NTAuZWM3ODUxMjk4Y2E2NzZkMi5jOWUxYTYwMDRiYzVmNGJlCiAgICAgNzVhZWY0MWIzYjVhYTZlZgogCi1WUEVSTUlMUFNfMjU2XzB4QTMocmVnKQorVlBDTVBFUVdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjkxNzZiZTJiNWYwZGRjYS43Njk4YWQzNjcyZTNjNzVjLmEyN2U4ZmY2MjFlMDMxYTAuYjE5MWQ1OTExY2QzYjBiMQogICAgIGYwNmEwOGJmNTIxMGQ3ZmEuZGMyZGE1ODhiYzkwMmUxMy4xNDEzOTk3Yjk5OGFjMjMwLjE1MDk3MmVmY2M5MTZmZDUKQEAgLTIwODUwLDEyICsyMDg1MCwxMiBAQAogICAgIGFiZjlhMDcwNmIyM2ZmMGIuZmY5OTQ2ZTA4OGEyNTYwMC5mYWY0NTQxN2JjOWQwMGJmLjJhNGFlNTNkZjlmNjZhOWIKICAgICA5M2FhYjMwNmFmYjQxZjk1CiAgIGFmdGVyCi0gICAgYjkxNzZiZTJiNWYwZGRjYS43Njk4YWQzNjcyZTNjNzVjLmEyN2U4ZmY2MjFlMDMxYTAuYjE5MWQ1OTExY2QzYjBiMQotICAgIGIwNDhjZTJjYjA0OGNlMmMuMGYyMTc1OTA3OGYxYzYyMC40MzQ0ZjNhYzQzNDRmM2FjLmI3ZWY2ZTZhNjg3Njg3MGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgZjA2YTA4YmY1MjEwZDdmYS5kYzJkYTU4OGJjOTAyZTEzLjE0MTM5OTdiOTk4YWMyMzAuMTUwOTcyZWZjYzkxNmZkNQogICAgIDc4ZjFjNjIwYjA0OGNlMmMuNmI5NGFlNzIwZjIxNzU5MC42ODc2ODcwYzQzNDRmM2FjLmY0YWVhNDJmYjdlZjZlNmEKICAgICBhYmY5YTA3MDZiMjNmZjBiLmZmOTk0NmUwODhhMjU2MDAuZmFmNDU0MTdiYzlkMDBiZi4yYTRhZTUzZGY5ZjY2YTliCiAgICAgOTNhYWIzMDZhZmI0MWY5NQotVlBFUk1JTFBTXzI1Nl8weEEzKG1lbSkKK1ZQQ01QRVFXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDBiOWE4ODc0ZjUzNTQ4ODMuZTdjZTk1MWIxZTJlYTY0NC43MzA3ZTliZTQyMWY4ZDhmLjI2ZDlmYzA3OWYxZTI0MTYKICAgICA2ZWU2ZTI3NWU2ODNhMzkyLjg2YmI5ZThjNjVmNGZlODMuYTVhYzExZjg1YWE1ZDg2OC40ODcxN2I0ODg5NTU5YzVjCkBAIC0yMDg2NCwxMiArMjA4NjQsMTIgQEAKICAgICAwYTYxZGMyOTg1YjE1Mzg1CiAgIGFmdGVyCiAgICAgMGI5YTg4NzRmNTM1NDg4My5lN2NlOTUxYjFlMmVhNjQ0LjczMDdlOWJlNDIxZjhkOGYuMjZkOWZjMDc5ZjFlMjQxNgotICAgIGY1MzU0ODgzMGI5YTg4NzQuZTdjZTk1MWIxZTJlYTY0NC40MjFmOGQ4ZjczMDdlOWJlLjI2ZDlmYzA3OWYxZTI0MTYKLSAgICA5ODU5M2RmNDllYWNlYWVlLmU2MGViOTMyZGQwMTQ1NzMuNzA1MjNjN2FlYjQwZjFiOC5iYzA3Y2Q0NjE1Y2RhNDNlCisgICAgNmVlNmUyNzVlNjgzYTM5Mi44NmJiOWU4YzY1ZjRmZTgzLmE1YWMxMWY4NWFhNWQ4NjguNDg3MTdiNDg4OTU1OWM1YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA2NWMxMTNkZDNhYmNkOWMyLjYxMTFlMDc2MjJlMmI0YzEuYjBjNmU1MzAxMmZhOTVhYS5kZWU5ZWY2ZGUwMTI3ODY4CiAgICAgMGE2MWRjMjk4NWIxNTM4NQogCi1WUEVSTUlMUFNfMjU2XzB4QTMocmVnKQorVlBDTVBFUVdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOWNiYzkwZTdhMTM1NzI0Mi5iMGU4ZTIxYmQ1YmQyZTNiLjU1MTIxMWM1Y2UyMjhhMTkuNDFkNDg4MDZlYWUxN2Y2YgogICAgIGYwNDYwNzExY2YyYjEwNGEuNTc5YjI1OWM4Y2JkYTM4NC4xYzViNDg4YjgwNGQwMTI2LmZmNDhhMWU5OTAwMTZjMjYKQEAgLTIwODc3LDEyICsyMDg3NywxMiBAQAogICAgIDRlMTczMDVkZDI5YWJkZWUuMjVkNWY3MTViY2U4ZGYzOC45N2Y3YjQyZDYwOTZjNTExLjcxOTEyNjgyYjMxODNmM2QKICAgICBkZWZlOGExMTY5Mjk5Y2YxCiAgIGFmdGVyCi0gICAgOWNiYzkwZTdhMTM1NzI0Mi5iMGU4ZTIxYmQ1YmQyZTNiLjU1MTIxMWM1Y2UyMjhhMTkuNDFkNDg4MDZlYWUxN2Y2YgotICAgIGFiMWU2YjRhYWIxZTZiNGEuN2JjOGY1Y2E2MjRiM2UxNC5kMmYwNTY5NWQyZjA1Njk1LjFmNjQxODA5MTMzOTdmMzUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgZjA0NjA3MTFjZjJiMTA0YS41NzliMjU5YzhjYmRhMzg0LjFjNWI0ODhiODA0ZDAxMjYuZmY0OGExZTk5MDAxNmMyNgogICAgIDYyNGIzZTE0YWIxZTZiNGEuMzVhNjU4NGM3YmM4ZjVjYS4xMzM5N2YzNWQyZjA1Njk1LmM1ZWRhZGMzMWY2NDE4MDkKICAgICA0ZTE3MzA1ZGQyOWFiZGVlLjI1ZDVmNzE1YmNlOGRmMzguOTdmN2I0MmQ2MDk2YzUxMS43MTkxMjY4MmIzMTgzZjNkCiAgICAgZGVmZThhMTE2OTI5OWNmMQotVlBFUk1JTFBTXzI1Nl8weEEzKG1lbSkKK1ZQQ01QRVFXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGU3MDE1NDVjNWRhMmVkNGYuMGZmNWQ5NTdlMDJiNDNlMS4wNWY0N2ZlNDZlMmIxZWZiLjAyZTNlMmUxYzdjYjhhNDcKICAgICA2YTY2MDE0ZmFhOGZlYjgzLjAzMzMzNTZkNzA1ZTM4ZDAuYjBjZTZiYTVhYTlkNmUzZi5iMTQ3MDViY2EyMWNlMGUyCkBAIC0yMDg5MSwxMiArMjA4OTEsMTIgQEAKICAgICBlZjQyMDU2ZTA2MmFhNWNlCiAgIGFmdGVyCiAgICAgZTcwMTU0NWM1ZGEyZWQ0Zi4wZmY1ZDk1N2UwMmI0M2UxLjA1ZjQ3ZmU0NmUyYjFlZmIuMDJlM2UyZTFjN2NiOGE0NwotICAgIDVkYTJlZDRmZTcwMTU0NWMuMGZmNWQ5NTdlMDJiNDNlMS42ZTJiMWVmYjA1ZjQ3ZmU0LjAyZTNlMmUxYzdjYjhhNDcKLSAgICA0MWY5MGJkNjZjZmM1NWJhLjg1MWI0MDBkMWViZWRhNjYuMDEzMTM3NDU4ZTQ5OGIyZi4wMDcxMTkyYThkMTQwNDhmCisgICAgNmE2NjAxNGZhYThmZWI4My4wMzMzMzU2ZDcwNWUzOGQwLmIwY2U2YmE1YWE5ZDZlM2YuYjE0NzA1YmNhMjFjZTBlMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA0YTg1ZjBkZGMwZjZlNTIwLmYwZmFmN2EyODdkODYyNTAuZDZlNzVmYWUzNjNiMzBmOC40Y2FiMWI5NjI2M2YzMWZhCiAgICAgZWY0MjA1NmUwNjJhYTVjZQogCi1WUEVSTUlMUFNfMjU2XzB4NUEocmVnKQorVlBBRERCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDQ2ODJkNTFlY2I2MDlhYjguNWZkODJiNTBjMTg4NThlMC5hMjFjNTU5ODQ2MzcwZjM5LjA5YmQ1ZmNlYmQ3ZjFiYzYKICAgICBhZGI2ODcxMDExNmQ0YzYzLjVlYmMzOTFiOGNiZTZhMjcuZjZjZDU2NWNmODY3MWNjZS43ODdmYjQ5MDQwMjIwNWM0CkBAIC0yMDkwNCwxMiArMjA5MDQsMTIgQEAKICAgICAxYjJlN2Q2ZDhkM2VkYmFmLjg2NmFiYTZhZWU0ODVhZjkuZjMwYjMyZjlhMzZiNDRhYi43NmY2NGFhYWE3YjJjZDAyCiAgICAgYmQ0NDgzZGFjNGI4MjI5YQogICBhZnRlcgotICAgIDQ2ODJkNTFlY2I2MDlhYjguNWZkODJiNTBjMTg4NThlMC5hMjFjNTU5ODQ2MzcwZjM5LjA5YmQ1ZmNlYmQ3ZjFiYzYKLSAgICAyMWZlOTQyYjIxZmU5NDJiLjczZGVmOTdjNzNkZWY5N2MuZmRmOWQ5ZTBmZGY5ZDllMC4zOWY0YzRiYjM5ZjRjNGJiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNkMjU0Y2I0MzE1YmUwODkuNzU3ODhkNzAxYTUxYjJlMworICAgIGFkYjY4NzEwMTE2ZDRjNjMuNWViYzM5MWI4Y2JlNmEyNy5mNmNkNTY1Y2Y4NjcxY2NlLjc4N2ZiNDkwNDAyMjA1YzQKICAgICA4MDJjMTViMTczZGVmOTdjLjIxZmU5NDJiM2NhNWQ2MjAuNDc1OGY2NTgzOWY0YzRiYi5mZGY5ZDllMGRhMmZhZDFmCiAgICAgMWIyZTdkNmQ4ZDNlZGJhZi44NjZhYmE2YWVlNDg1YWY5LmYzMGIzMmY5YTM2YjQ0YWIuNzZmNjRhYWFhN2IyY2QwMgogICAgIGJkNDQ4M2RhYzRiODIyOWEKLVZQRVJNSUxQU18yNTZfMHg1QShtZW0pCitWUEFEREJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYWZhZDAxNWM0ZDRjNjgxMi5kYTA5YmFiMWZjMWEyZmE3LjY3Y2MyNmM2YmRiNGFmZGIuNTQzMDA1YWNkNTU4ZDc0YgogICAgIDI5ZmUzZjFjNWQ3YjViOTcuMTkwOWM4ZTc1Y2ZjMzExMS5hMWYwNTQyOWM2ZjQ5NGY0LmM4MTQ2YmRiNjg0NWJhNDcKQEAgLTIwOTE4LDEyICsyMDkxOCwxMiBAQAogICAgIDI2MzFlODkwOGE4ZTliMTcKICAgYWZ0ZXIKICAgICBhZmFkMDE1YzRkNGM2ODEyLmRhMDliYWIxZmMxYTJmYTcuNjdjYzI2YzZiZGI0YWZkYi41NDMwMDVhY2Q1NThkNzRiCi0gICAgZGEwOWJhYjFmYzFhMmZhNy5kYTA5YmFiMWRhMDliYWIxLjU0MzAwNWFjZDU1OGQ3NGIuNTQzMDA1YWM1NDMwMDVhYwotICAgIDA1MDNiOTA2MTA1MGI2NTUuMzQ3YWEzN2Q0ODcyMWM5OC4xMWExYzA4MTI0MTRjMzcwLmE5MDM2MGY0ZmFjMDI5NGEKKyAgICAyOWZlM2YxYzVkN2I1Yjk3LjE5MDljOGU3NWNmYzMxMTEuYTFmMDU0MjljNmY0OTRmNC5jODE0NmJkYjY4NDViYTQ3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA4YmM3YWVmODNhODQzY2YuMWM0NDcwODczZDlkOTE5MgogICAgIDIwODhlYjA3ODNkNzM2NzcuODdhODQ3ZGU1YzA4MmRlOS45MWFkZTdiOWY0MjBmOTdiLjU1NDllMDYxMjc1NTYwMDEKICAgICAyNjMxZTg5MDhhOGU5YjE3CiAKLVZQRVJNSUxQU18yNTZfMHg1QShyZWcpCitWUEFEREJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNzkwOTczZWNjMGY5MTUzOS41NzU5NTEwOWQxMWM5NjJhLjZlZGViMTc2MzU0OWEwYjAuZmVkZTQ0YmQ1MTI1ZjI0MAogICAgIGFiMWI3ZGUxNjQyMTBiMTIuODQ0MTY4ZmExNzJjOTQ5OS40NTZhZGNiMTZlYzFiMTk4LjM1MDE1Mzc5NTgyZTZhZWIKQEAgLTIwOTMxLDEyICsyMDkzMSwxMiBAQAogICAgIDE3MjBmZjQ2NjdkYTVhOWMuMzM4YTk2NTVmOWRiNTQ1ZS4zMmFmNjZjMDcyODc5YjdkLjZjNGQ3N2M5ZDE3ZWM1YTYKICAgICAyNTBkODUzNjdjZGMyMDBlCiAgIGFmdGVyCi0gICAgNzkwOTczZWNjMGY5MTUzOS41NzU5NTEwOWQxMWM5NjJhLjZlZGViMTc2MzU0OWEwYjAuZmVkZTQ0YmQ1MTI1ZjI0MAotICAgIDg0MGVhYmM1ODQwZWFiYzUuMTI5M2I4NGYxMjkzYjg0Zi4xMGUyOTBkOTEwZTI5MGQ5LmE0ZmM5YjRkYTRmYzliNGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWMwMGEwYWMxMmJkNGNlNS40NWUzZTM1MjdjNzY4Njk1CisgICAgYWIxYjdkZTE2NDIxMGIxMi44NDQxNjhmYTE3MmM5NDk5LjQ1NmFkY2IxNmVjMWIxOTguMzUwMTUzNzk1ODJlNmFlYgogICAgIDE2YjQwMmRiMTI5M2I4NGYuODQwZWFiYzU3MDEyZWFmMS42Nzk2YzRmYmE0ZmM5YjRkLjEwZTI5MGQ5MjQ0ODFjYWEKICAgICAxNzIwZmY0NjY3ZGE1YTljLjMzOGE5NjU1ZjlkYjU0NWUuMzJhZjY2YzA3Mjg3OWI3ZC42YzRkNzdjOWQxN2VjNWE2CiAgICAgMjUwZDg1MzY3Y2RjMjAwZQotVlBFUk1JTFBTXzI1Nl8weDVBKG1lbSkKK1ZQQUREQl8xMjgobWVtKQogICBiZWZvcmUKICAgICAxN2YwMzUwYTQxNmVlYjBjLjBhYWI2ZThmZmY4MjJiYTQuNmQ4MmE1OThjZDkyOTAwYi4wMTAxYmM2Yzc1ZWRlY2QyCiAgICAgMWVjMDAzMzMzYTQxZTBjYy40Y2ExNGQyMDc1MTg2NzE0LjBlYzI1NTc5MDk0MzU4MjUuMzBkOGM0NmI0OGJiY2NmOApAQCAtMjA5NDUsMTIgKzIwOTQ1LDEyIEBACiAgICAgOTQ3MWRiOTRiZDA4MTQwZAogICBhZnRlcgogICAgIDE3ZjAzNTBhNDE2ZWViMGMuMGFhYjZlOGZmZjgyMmJhNC42ZDgyYTU5OGNkOTI5MDBiLjAxMDFiYzZjNzVlZGVjZDIKLSAgICAwYWFiNmU4ZmZmODIyYmE0LjBhYWI2ZThmMGFhYjZlOGYuMDEwMWJjNmM3NWVkZWNkMi4wMTAxYmM2YzAxMDFiYzZjCi0gICAgMTY0YTZiOWI4NjYxYmI3Yy4zNzRlOTc2NjY1Mjc0Yzk3LmYyMTUyMGU0YzhmYjY5ZDcuMWE4MDc5MmE4ODdjNzU5YworICAgIDFlYzAwMzMzM2E0MWUwY2MuNGNhMTRkMjA3NTE4NjcxNC4wZWMyNTU3OTA5NDM1ODI1LjMwZDhjNDZiNDhiYmNjZjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2I0NGZhMTFkNmQ1ZTgzMC4zMWQ5ODBkN2JkYThiOGNhCiAgICAgZGI1YWVhMzAzZmQ4M2E0NS4yOGZkNDljZTZjM2MxNGRhLmY1NDk4NGM1MjdjNTdmNGUuMWQ0NGQ3MTNkMGJjMjQ2YQogICAgIDk0NzFkYjk0YmQwODE0MGQKIAotVlBFUk1JTFBTXzI1Nl8weDVBKHJlZykKK1ZQQUREQl8xMjgocmVnKQogICBiZWZvcmUKICAgICBkYTU0ODAxOGVhZWE4MzMyLjQ5YmNmYmRkODFiNDE3NTYuN2JmYjVkYzMyNWUxZmM4OS5mMzI4ZmMwOTQxYWQ1NWI2CiAgICAgNGQzN2MyMGFmM2YxYWI4NS4zYzNjMWE4ZTY5MDAwZmQ5LjhjOTRkMWIwMmRhNDQwNGYuYzg4MDA1OWEzMmMwYTgzYQpAQCAtMjA5NTgsMTIgKzIwOTU4LDEyIEBACiAgICAgMjYyZjBkZWQwYzk3MTg2My4yMWM1NzJhYzk5MWEzZmU3LjU4YzdjNjI3OThiM2NhZDIuNjdjNmI2NTcwYzk0YjQ0OAogICAgIGU5NGM1NzViMmM2ZGU2MmEKICAgYWZ0ZXIKLSAgICBkYTU0ODAxOGVhZWE4MzMyLjQ5YmNmYmRkODFiNDE3NTYuN2JmYjVkYzMyNWUxZmM4OS5mMzI4ZmMwOTQxYWQ1NWI2Ci0gICAgOTBhNWMzMmY5MGE1YzMyZi43NWE2YzhiMTc1YTZjOGIxLjUwMWIxOTY1NTAxYjE5NjUuMWYxMTFiZDkxZjExMWJkOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40M2E4NzFiMzRjYjU1YjI4LjE4OWIxZWZmNGFjOGRjNDEKKyAgICA0ZDM3YzIwYWYzZjFhYjg1LjNjM2MxYThlNjkwMDBmZDkuOGM5NGQxYjAyZGE0NDA0Zi5jODgwMDU5YTMyYzBhODNhCiAgICAgNDc2NjlkZDg3NWE2YzhiMS45MGE1YzMyZjEyYzlkZWZhLmI3MTRhMDAzMWYxMTFiZDkuNTAxYjE5NjUxODA4MzQwNwogICAgIDI2MmYwZGVkMGM5NzE4NjMuMjFjNTcyYWM5OTFhM2ZlNy41OGM3YzYyNzk4YjNjYWQyLjY3YzZiNjU3MGM5NGI0NDgKICAgICBlOTRjNTc1YjJjNmRlNjJhCi1WUEVSTUlMUFNfMjU2XzB4NUEobWVtKQorVlBBRERCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGIyN2I3OTVjOTNhMTg0ZDkuNDRkZDBmYjU1MzUwZDU0Ni5jYjY2YTRmMTE5ZmZlZmM5LmNiZjk0MDg4MzMxNjg5ZTcKICAgICA5ZTFkOTY0ODVlM2M0YTgwLmZmYmI5ZDlkZTY1YjNjMDcuNmE1NWQ0ZWFhZjg1YWFjZi42Y2Y1MDk5MjhkYzY5M2M0CkBAIC0yMDk3MiwxMiArMjA5NzIsMTIgQEAKICAgICBmYmEzMTZkZjI5MjBkMWJmCiAgIGFmdGVyCiAgICAgYjI3Yjc5NWM5M2ExODRkOS40NGRkMGZiNTUzNTBkNTQ2LmNiNjZhNGYxMTlmZmVmYzkuY2JmOTQwODgzMzE2ODllNwotICAgIDQ0ZGQwZmI1NTM1MGQ1NDYuNDRkZDBmYjU0NGRkMGZiNS5jYmY5NDA4ODMzMTY4OWU3LmNiZjk0MDg4Y2JmOTQwODgKLSAgICA4ODAwMmMwYWE5NDhmNjRjLmIxMTZiNTBmNjI0Njg4NTEuZDk1ZTdlODQ3NmI3MmMyMy45NzA4MWRiMjQxNTAyNjE0CisgICAgOWUxZDk2NDg1ZTNjNGE4MC5mZmJiOWQ5ZGU2NWIzYzA3LjZhNTVkNGVhYWY4NWFhY2YuNmNmNTA5OTI4ZGM2OTNjNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNWJiNzhkYmM4ODQ5OTk4LjM3ZWU0OTFhYzBkYzFjYWIKICAgICA0ZWVlYjY4ZThlZDM0MjY4LmI3M2E1Mzc4NjI5Y2Y3ZDEuZjY0ZDFlYTk4YWExMzBmMS5hODdlNzg1MmVjM2Y3Yjg0CiAgICAgZmJhMzE2ZGYyOTIwZDFiZgogCi1WUE1VTEhXXzEyOChyZWcpCitWTU9WQVBTX0V0b0dfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZWNjM2Y0YzY5NDdkNjM3Mi5jYmI0YjBjMDJjZTllYjAxLjZlNzM3MTQ1ODNlYWMzMzMuOWNlZDMxNDcwODUwNzM2NgogICAgIGQ2MmEwYzcxY2FlNTZjNDkuZGExZTk2OGM5ZDk0YWM0My4zMDBkMGRlMDYwYmIyODIyLmE3MGMzMjQ4MGNjZmIwYWUKQEAgLTIwOTg1LDEyICsyMDk4NSwxMiBAQAogICAgIDBhZmNlMGM4MDZmZmQ1MTEuMjMwZDE3YTM2OGRmNjk2Zi40OTkzYWMzNWMwMTdiMTVhLjViZjJlZTI4MTM2ZTBjNjUKICAgICBiYzUyYTFkZTRmYTZhMjJkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBkY2ZmYjc1ZTdkOWYzYWIuZTAwZGZjN2UwMGY4ZmMyOAotICAgIGQ2MmEwYzcxY2FlNTZjNDkuZGExZTk2OGM5ZDk0YWM0My4zMDBkMGRlMDYwYmIyODIyLmE3MGMzMjQ4MGNjZmIwYWUKKyAgICBlY2MzZjRjNjk0N2Q2MzcyLmNiYjRiMGMwMmNlOWViMDEuNmU3MzcxNDU4M2VhYzMzMy45Y2VkMzE0NzA4NTA3MzY2CisgICAgMTcyNDVjNGU2N2UxMjhlZi41OWY3ZTVkZmZkZTM0MjU5LjVhNTQyMmI3OTY5YjY0NGIuZjI3NDlkOWFiMTJhYTVmNAogICAgIDE3MjQ1YzRlNjdlMTI4ZWYuNTlmN2U1ZGZmZGUzNDI1OS41YTU0MjJiNzk2OWI2NDRiLmYyNzQ5ZDlhYjEyYWE1ZjQKICAgICAwYWZjZTBjODA2ZmZkNTExLjIzMGQxN2EzNjhkZjY5NmYuNDk5M2FjMzVjMDE3YjE1YS41YmYyZWUyODEzNmUwYzY1CiAgICAgYmM1MmExZGU0ZmE2YTIyZAotVlBNVUxIV18xMjgobWVtKQorVk1PVkFQU19FdG9HXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGYzNjAzM2E4ODFkZjIyNzcuMGJmZjkyNGI0M2NhYWQ1YS4xMzJhYWFjNWZjOTZkZGIzLjU3MTdhN2M1N2JiYTRjZmEKICAgICBkYmU3MWY3MmM0MjM0YTcwLjc1Nzk3MDQzYmJjZmVkNzcuMDcxYzFhMzJkMjEzNTk0Zi5lMTJkMTBkNTYyMTA3MWQ3CkBAIC0yMTAwMCwxMSArMjEwMDAsMTEgQEAKICAgYWZ0ZXIKICAgICBmMzYwMzNhODgxZGYyMjc3LjBiZmY5MjRiNDNjYWFkNWEuMTMyYWFhYzVmYzk2ZGRiMy41NzE3YTdjNTdiYmE0Y2ZhCiAgICAgZGJlNzFmNzJjNDIzNGE3MC43NTc5NzA0M2JiY2ZlZDc3LjA3MWMxYTMyZDIxMzU5NGYuZTEyZDEwZDU2MjEwNzFkNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDg4Zjc0NzAwOWNmNDA4LmY1ODNmYTMyMmY2NDIyM2EKLSAgICAyYzk0ZjViNmVlMDI3YzFkLmY4MDI5ZDQyY2FiNDk0ZGIuNjdhYTdkOTliYTkwNWM0MC5kOTM5MTgyMjI2MDc0N2ZiCisgICAgNGZiNWUxMjgzNDgxZDQ0My5hNmI2NzUxYzA5OTlkMTEzLmQ5YWRlMWQ1MDg2MjliNmYuNDMxZWUxZDAxMmE2NWI5ZQorICAgIGYzNjAzM2E4ODFkZjIyNzcuMGJmZjkyNGI0M2NhYWQ1YS4xMzJhYWFjNWZjOTZkZGIzLjU3MTdhN2M1N2JiYTRjZmEKICAgICBmZmM5YjEzODNhYzA3MTlhCiAKLVZQTVVMSFdfMTI4KHJlZykKK1ZNT1ZBUFNfRXRvR18yNTYocmVnKQogICBiZWZvcmUKICAgICAxMTE5YTY3Y2ViNWIxNDI2LjRmNTFkNzA5MGRiNDAwMjkuYzlhOGU0MjE5YWFjNzM3Yi44YmRlNjk2YzAzYTg1YmVlCiAgICAgNmI3N2Y1NWJkNTY3NmQ0Yi45MmI4MDQwYmFlYTIxYTk0Ljc0ZjY0NzI1MTMwZWFhOWUuMjMxNzIxMzkwMGI3NTJhNApAQCAtMjEwMTIsMTIgKzIxMDEyLDEyIEBACiAgICAgNjc4ODhlOWJjMWZiMzExMy5lY2I0MmNkMGU0NjMwMjM2LmM3YjU0ZDRkNzYzZTBmMjAuMWJjNGU2NzE4M2U2MWJkYQogICAgIDMzZDBlYWI1NDIyMDY1YjMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTY0NzE1N2IwOGNkZmFmNC4wM2NlZmNhZWZmYTcwOGZkCi0gICAgNmI3N2Y1NWJkNTY3NmQ0Yi45MmI4MDQwYmFlYTIxYTk0Ljc0ZjY0NzI1MTMwZWFhOWUuMjMxNzIxMzkwMGI3NTJhNAorICAgIDExMTlhNjdjZWI1YjE0MjYuNGY1MWQ3MDkwZGI0MDAyOS5jOWE4ZTQyMTlhYWM3MzdiLjhiZGU2OTZjMDNhODViZWUKKyAgICA2OTJkOTk0MjkzNmRiOGI2LmQzOTVmN2FhZWNkODg3OGEuNTQzNmMwYmJkNDY2NzVmMS4wOTFmMjFlY2NjYzdmZThmCiAgICAgNjkyZDk5NDI5MzZkYjhiNi5kMzk1ZjdhYWVjZDg4NzhhLjU0MzZjMGJiZDQ2Njc1ZjEuMDkxZjIxZWNjY2M3ZmU4ZgogICAgIDY3ODg4ZTliYzFmYjMxMTMuZWNiNDJjZDBlNDYzMDIzNi5jN2I1NGQ0ZDc2M2UwZjIwLjFiYzRlNjcxODNlNjFiZGEKICAgICAzM2QwZWFiNTQyMjA2NWIzCi1WUE1VTEhXXzEyOChtZW0pCitWTU9WQVBTX0V0b0dfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMmUxMGFiYTIyNDgwOTc0My5jMWQ0ZDBkNGZjOWMxMzBlLmJhZTEyMDZiYjE0ZTQ5YzUuMjdiZmU5NDk5NzI0YjVkNgogICAgIGU4NTBhNTI1NDYxMjZlYjguZDM1ZDVjNThlMGRjOWI1MS4xYWU3NGQ2NjcwYTYxNjYyLmQxYTA5MTFhZDNhM2EzYzAKQEAgLTIxMDI3LDExICsyMTAyNywxMSBAQAogICBhZnRlcgogICAgIDJlMTBhYmEyMjQ4MDk3NDMuYzFkNGQwZDRmYzljMTMwZS5iYWUxMjA2YmIxNGU0OWM1LjI3YmZlOTQ5OTcyNGI1ZDYKICAgICBlODUwYTUyNTQ2MTI2ZWI4LmQzNWQ1YzU4ZTBkYzliNTEuMWFlNzRkNjY3MGE2MTY2Mi5kMWEwOTExYWQzYTNhM2MwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY4YmMwOWNkZGQ1ZjA2NzMuZjhjYzA5ZDcxMjJiMWFiOQotICAgIDBhZmYzMDllYjhmZGZhMDEuOGY1NTNlZjExMDZiOGQ2Ni5mYmIxNDcyYzMxY2EzNDc5Ljc0MTZmMWVhMGE5ZTQ2ZGUKKyAgICAzZTViNTIyYmM0ZTJhNTNlLmY5NmUyYzkzMDc0ODA1OGIuZTY5MzMxYWQzYzc2MjYzYS4yMmE0M2YyY2M1NDgxNDg5CisgICAgMmUxMGFiYTIyNDgwOTc0My5jMWQ0ZDBkNGZjOWMxMzBlLmJhZTEyMDZiYjE0ZTQ5YzUuMjdiZmU5NDk5NzI0YjVkNgogICAgIDI1NDNhMmMyM2QzMTcyNmEKIAotVlBNVUxIV18xMjgocmVnKQorVk1PVkFQU19FdG9HXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDhmNzg0ZjIwZmE4ZWQ3ZGEuMjkwNmJhNmM0MTZmMjcyYy5mMTVjOGRkZTk0ZDI2ZThmLjM1MGQwYmNmNmNhZWZkNGEKICAgICAwZmZmZjI2ZWRlNDBhZmRhLjc3M2Q2YzgwNzg0MmU4ZWIuN2FkMDE2YzYzMjA4ZTViMS43MDczZmE4MjA5MmYzZGRhCkBAIC0yMTAzOSwxMiArMjEwMzksMTIgQEAKICAgICBjMTM1MGY4ZDhhZDRhYjM4LjEwNmIzODJhNjY0MDFhZDguNzYyZmMyMzcyNjExODQ5My41YThjNDVjOWQ2MzYxMWU2CiAgICAgYzBkNzlhMzUzZmQ0MWRiOQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zOGIyZmE4MDA3NzAwY2FmLjI3YzVmZTgwZmU4MDA0NTMKLSAgICAwZmZmZjI2ZWRlNDBhZmRhLjc3M2Q2YzgwNzg0MmU4ZWIuN2FkMDE2YzYzMjA4ZTViMS43MDczZmE4MjA5MmYzZGRhCisgICAgOGY3ODRmMjBmYThlZDdkYS4yOTA2YmE2YzQxNmYyNzJjLmYxNWM4ZGRlOTRkMjZlOGYuMzUwZDBiY2Y2Y2FlZmQ0YQorICAgIDAxMjU4OTE5ODVkMzM3MTUuZDA3MGMyYzY3Yzg0ZmI2Yy44OGZkZDMxNTgzOTkyZTc5Ljg5YWY4ZTMyMjM1OWIwNTUKICAgICAwMTI1ODkxOTg1ZDMzNzE1LmQwNzBjMmM2N2M4NGZiNmMuODhmZGQzMTU4Mzk5MmU3OS44OWFmOGUzMjIzNTliMDU1CiAgICAgYzEzNTBmOGQ4YWQ0YWIzOC4xMDZiMzgyYTY2NDAxYWQ4Ljc2MmZjMjM3MjYxMTg0OTMuNWE4YzQ1YzlkNjM2MTFlNgogICAgIGMwZDc5YTM1M2ZkNDFkYjkKLVZQTVVMSFdfMTI4KG1lbSkKK1ZNT1ZBUFNfRXRvR18yNTYobWVtKQogICBiZWZvcmUKICAgICA5NzVjMGE2MDdhM2U5MGZiLmFjN2Q4MDM3ODljZTQ3ZWUuMTNmYTRiOTg1NDgzMDI1ZS5hMGIxZGU5OWI0ZmQyNGFhCiAgICAgYmJlNzBmMzhhMTgxMjVkOC4xYzQ3ZDg4MTFmNGU0NmU0LmI1ZTg3NmZjNjI1ODZmMjguNjFkMTI0YTVjYmU4NGE2YgpAQCAtMjEwNTQsMTEgKzIxMDU0LDExIEBACiAgIGFmdGVyCiAgICAgOTc1YzBhNjA3YTNlOTBmYi5hYzdkODAzNzg5Y2U0N2VlLjEzZmE0Yjk4NTQ4MzAyNWUuYTBiMWRlOTliNGZkMjRhYQogICAgIGJiZTcwZjM4YTE4MTI1ZDguMWM0N2Q4ODExZjRlNDZlNC5iNWU4NzZmYzYyNTg2ZjI4LjYxZDEyNGE1Y2JlODRhNmIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmEzNzIzMjIyMDc3MDEwNy5kYjk1ZmIzNzBmNDMwYWE4Ci0gICAgNWEzZmNkOWMyOWJmYTkxMi5mZTk1MmZhYTdlMGM1ZjNmLjQ2MTUwNTU3NGNlOWM2MzkuMWMxNjFhNzAwM2VkMTc5OQorICAgIDA4NDQyN2E4ZDNhODlhN2MuNmVlMDE0ZDllN2RlZTVjNi5kMjAzMzU0MmFiY2IxYzYyLjE3ZDk4ZWM5MDc1ZjMyODEKKyAgICA5NzVjMGE2MDdhM2U5MGZiLmFjN2Q4MDM3ODljZTQ3ZWUuMTNmYTRiOTg1NDgzMDI1ZS5hMGIxZGU5OWI0ZmQyNGFhCiAgICAgY2VkNGMzMDU1YzFlMzY1ZQogCi1WUFVOUENLSFFEUV8xMjgocmVnKQorVkNWVERRMlBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDg4NWY4NWY2YWQ3ZmNiN2QuOGRhMzdkMDBjMmQzMGVjNi4yOGFmMjU2MDdmNjRmMmZjLmVkZWI2MDI1NjBiZDI5ZDkKICAgICBhNTAzNWNhZTkyOWIxMWEyLjdjM2ViNGMwYjdlZjg3YzUuNDg3ZGYyNjc4NzcxZDhhOC5hMzUxYzQ5YTAzNTMwMDZlCkBAIC0yMTA2NiwxMiArMjEwNjYsMTIgQEAKICAgICA3Y2M1M2IyMzhhMzVhM2FjLjAzNDRhMzA0MmI3MGEwNTMuZGE2MTAyMTgxYWRhOGY4MC5hY2ZkOTQyNTY5ZjdmZTI0CiAgICAgYjdkYWY5MTQ2MjFjOWI5ZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iYTRhOTMyYjMxYmY0ZWYwLjQ4N2RmMjY3ODc3MWQ4YTgKLSAgICBhNTAzNWNhZTkyOWIxMWEyLjdjM2ViNGMwYjdlZjg3YzUuNDg3ZGYyNjc4NzcxZDhhOC5hMzUxYzQ5YTAzNTMwMDZlCisgICAgODg1Zjg1ZjZhZDdmY2I3ZC44ZGEzN2QwMGMyZDMwZWM2LjI4YWYyNTYwN2Y2NGYyZmMuZWRlYjYwMjU2MGJkMjlkOQorICAgIGMxZDE2ZDViMzU0MDAwMDAuNDFjOGRmYTc3ODAwMDAwMC40MWQxMDRlYjI4MDAwMDAwLjQxZDRhZTAyNDhjMDAwMDAKICAgICA4MjBiNDU5OWE4ZmU0NTc4LjA1ZGFlY2M4MjcxZmNlM2IuYmE0YTkzMmIzMWJmNGVmMC40NDEzYWNhMDUyYjgwOTIzCiAgICAgN2NjNTNiMjM4YTM1YTNhYy4wMzQ0YTMwNDJiNzBhMDUzLmRhNjEwMjE4MWFkYThmODAuYWNmZDk0MjU2OWY3ZmUyNAogICAgIGI3ZGFmOTE0NjIxYzliOWUKLVZQVU5QQ0tIUURRXzEyOChtZW0pCitWQ1ZURFEyUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNDA3NzU2NTk1YzM0OWViZC5lZDdiM2FiOWQ1Y2I2N2VhLjUyNDg1NDYxZTFlZGI4M2EuMDQxMDNkOWFkZDRmZDgwMwogICAgIDI1YTAyNmUwNzE0YWMxYWMuMzM3YTNlYzUyNTRjY2NkZC5jZWIyN2NjOTY1YTJkMzFjLjk0YTEzZjFkMTdhOTY1MjYKQEAgLTIxMDgwLDEyICsyMTA4MCwxMiBAQAogICAgIDNmOWRjOWU2YTI4ZmZhMDQKICAgYWZ0ZXIKICAgICA0MDc3NTY1OTVjMzQ5ZWJkLmVkN2IzYWI5ZDVjYjY3ZWEuNTI0ODU0NjFlMWVkYjgzYS4wNDEwM2Q5YWRkNGZkODAzCi0gICAgMjVhMDI2ZTA3MTRhYzFhYy4zMzdhM2VjNTI1NGNjY2RkLmNlYjI3Y2M5NjVhMmQzMWMuOTRhMTNmMWQxN2E5NjUyNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41MjQ4NTQ2MWUxZWRiODNhLmNlYjI3Y2M5NjVhMmQzMWMKKyAgICA0MWQ0OTIxNTE4NDAwMDAwLmMxYmUxMjQ3YzYwMDAwMDAuNDE5MDQwZjY2ODAwMDAwMC5jMWMxNTgxM2ZlODAwMDAwCisgICAgNDEyMWU4OTViZDZhYzE5OC5hODBlNDNiNDE0NDQwZjMxLjUyNGQ5NTJhZDI5Y2FkMjQuZTY2MTA1MGU2Mzc0NzI5NAogICAgIDcwYzYxNTY0NWRhMTU5YWQuYTk4MzQ2ZjM0MTQwNmM5NC5iY2U3MWQ2ZTQ1ZTYwMjdmLjU1OWM4OWQ3NWQzZDNhZmEKICAgICAzZjlkYzllNmEyOGZmYTA0CiAKLVZQVU5QQ0tIUURRXzEyOChyZWcpCitWQ1ZURFEyUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZmZiMmMwYTVjZWY3ZWU1ZC44ZDViMmIzOTZjZmE0NjE2LjkzMjQ0MmVkNDVjYzFlYjAuZTc0YThmODNkOThjOGQ1OAogICAgIGYxMjU2YTgyN2MwMDUyYjIuNzZhY2E0MDEwNzgxNDQwMC5jMDNmMzMwZGJmNzI2MjMxLmFlNDM2NzU0YWE5YjBjZGMKQEAgLTIxMDkzLDEyICsyMTA5MywxMiBAQAogICAgIGRhNThjODQzY2YyNjU4ZmUuMThiMGI1MTY0ZjRiNjIwNS41NjBlZTU3NDdlNDI5MDE1Ljg1MjczYWRhNzUyMWQwOTQKICAgICA0YmE5MmQ2N2E3YjE4ZTFmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhkMWUxNWMxNDhjMTc0YzQuYzAzZjMzMGRiZjcyNjIzMQotICAgIGYxMjU2YTgyN2MwMDUyYjIuNzZhY2E0MDEwNzgxNDQwMC5jMDNmMzMwZGJmNzI2MjMxLmFlNDM2NzU0YWE5YjBjZGMKKyAgICBmZmIyYzBhNWNlZjdlZTVkLjhkNWIyYjM5NmNmYTQ2MTYuOTMyNDQyZWQ0NWNjMWViMC5lNzRhOGY4M2Q5OGM4ZDU4CisgICAgYzFkY2I4N2E4ZmMwMDAwMC40MWQyMzA1ZDMxMDAwMDAwLmMxYjA2MWRkMzMwMDAwMDAuYzFjNTcwZTNlNTAwMDAwMAogICAgIDcwNDNjNGU4NDgzNjYxYWUuMDU4NGZlYTY0OTQzMGY5Ni44ZDFlMTVjMTQ4YzE3NGM0LmVmOWUyMmNkZDUxZTM4MzYKICAgICBkYTU4Yzg0M2NmMjY1OGZlLjE4YjBiNTE2NGY0YjYyMDUuNTYwZWU1NzQ3ZTQyOTAxNS44NTI3M2FkYTc1MjFkMDk0CiAgICAgNGJhOTJkNjdhN2IxOGUxZgotVlBVTlBDS0hRRFFfMTI4KG1lbSkKK1ZDVlREUTJQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICAxZmYyNzY2MDg3ZDkyZjA2LjhhYjA3NGZmYWM1YTczNGQuODlmYzQzM2IzNGE1ZmI3OC43NzViOWU5MmZkODNmMWNmCiAgICAgZGJjYzkxYjEzMGE2NmY3Mi5kYjk3YzM4ODdjNjFlZDQ4LjM2MzQyNjAzMTQ1ZTkzMWMuNGM1MTNjODc2MDBmZDQ5ZgpAQCAtMjExMDcsMTIgKzIxMTA3LDEyIEBACiAgICAgOWMyMDRkYTlmY2VmZTA0OAogICBhZnRlcgogICAgIDFmZjI3NjYwODdkOTJmMDYuOGFiMDc0ZmZhYzVhNzM0ZC44OWZjNDMzYjM0YTVmYjc4Ljc3NWI5ZTkyZmQ4M2YxY2YKLSAgICBkYmNjOTFiMTMwYTY2ZjcyLmRiOTdjMzg4N2M2MWVkNDguMzYzNDI2MDMxNDVlOTMxYy40YzUxM2M4NzYwMGZkNDlmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg5ZmM0MzNiMzRhNWZiNzguMzYzNDI2MDMxNDVlOTMxYworICAgIGMxZGQ4MGVmMzE0MDAwMDAuNDFjYTUyZmRiYzAwMDAwMC40MWRkZDZlN2E0ODAwMDAwLmMxODNlMDcxODgwMDAwMDAKKyAgICA1YzA0ZmI0N2JlMjIwOTkyLjJiNTliMjRhZGFjNDAzOWIuZjkyNGQ5NTkwYzgxZTkxZC4zMjNjYmJiZjQ0NzI3NTMwCiAgICAgN2Y2NjJmMGM0ZTVjYmI5MC5kNDQxM2JiMjYzMTFmMWYxLmIwOTdkODI5MzgxYmI3YTYuODM2NzE3YTc0NDM5MGYyZgogICAgIDljMjA0ZGE5ZmNlZmUwNDgKIAotVlBVTlBDS0hRRFFfMTI4KHJlZykKK1ZDVlREUTJQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBkOWIxNTgzMzA5MjAyMjI2LjFlYmVhOWVlZmI1ZDNlOTkuMzQ5YzVjMmFiMmQzZjNmNy4zNTViOWY1ZmIzMzZiYWU0CiAgICAgOTY2NzM0YWYwNzU5MTE3Ni4xN2Q4ZTVkOGUyMzM1MWQ4LmE1YjYxMDIwNjQ5NzQ0NTkuNjYzYWFiZTc5OWUxYWUwMwpAQCAtMjExMjAsMTIgKzIxMTIwLDEyIEBACiAgICAgZmY3MTUwMzI0MzExZWExYS44MjgxOTQ3M2NiOGIxMmFhLjJlNTcyMTMyNWY1MmM2ZGYuMzc3YzdlOWUxOTEwNTg5MQogICAgIDkwNzczZWE0ZTlhZDg2NWEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODVkYjUzZmUxNGU4MjFjMi5hNWI2MTAyMDY0OTc0NDU5Ci0gICAgOTY2NzM0YWYwNzU5MTE3Ni4xN2Q4ZTVkOGUyMzM1MWQ4LmE1YjYxMDIwNjQ5NzQ0NTkuNjYzYWFiZTc5OWUxYWUwMworICAgIGQ5YjE1ODMzMDkyMDIyMjYuMWViZWE5ZWVmYjVkM2U5OS4zNDljNWMyYWIyZDNmM2Y3LjM1NWI5ZjVmYjMzNmJhZTQKKyAgICBjMWRlODkyYjAwODAwMDAwLjQxYjRlODIxYzIwMDAwMDAuNDFiZDAxNzZhZDAwMDAwMC40MTljOTUzY2I4MDAwMDAwCiAgICAgMmY4ZWRkOGI5MTI1ZWJlMy40NDgwNWZiNTFlZTlhZTdhLjg1ZGI1M2ZlMTRlODIxYzIuMWQwMTc2YWQwNzI1NGYyZQogICAgIGZmNzE1MDMyNDMxMWVhMWEuODI4MTk0NzNjYjhiMTJhYS4yZTU3MjEzMjVmNTJjNmRmLjM3N2M3ZTllMTkxMDU4OTEKICAgICA5MDc3M2VhNGU5YWQ4NjVhCi1WUFVOUENLSFFEUV8xMjgobWVtKQorVkNWVERRMlBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDA1YmUzM2FjOTYwOTk0YjIuNjQ1ZTg3MGZiYWE4NGFjNy5hZGE4ZmVmZDA2MjYzOTk1LmZlNzY3NzI3ZTA2MjZlNWIKICAgICA3MDFjZDhhMzNhMmY0MGM4LmI5OWY4MDkwOTE3NjQ5OTUuYTJjMTFiM2ZlYmM2ZGY2Ny40ZjgzNTA0OTM0YTM1NmUzCkBAIC0yMTEzNCwxMiArMjExMzQsMTIgQEAKICAgICBlNzNkYzZmNTM1MDZlNTc4CiAgIGFmdGVyCiAgICAgMDViZTMzYWM5NjA5OTRiMi42NDVlODcwZmJhYTg0YWM3LmFkYThmZWZkMDYyNjM5OTUuZmU3Njc3MjdlMDYyNmU1YgotICAgIDcwMWNkOGEzM2EyZjQwYzguYjk5ZjgwOTA5MTc2NDk5NS5hMmMxMWIzZmViYzZkZjY3LjRmODM1MDQ5MzRhMzU2ZTMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWRhOGZlZmQwNjI2Mzk5NS5hMmMxMWIzZmViYzZkZjY3CisgICAgYzFkNDk1YzA0MGMwMDAwMC40MTk4OThlNjU0MDAwMDAwLmMxNzg5ODhkOTAwMDAwMDAuYzFiZjlkOTFhNTAwMDAwMAorICAgIGFlNWZhODc0ZjEyYjQ0YzYuNWE4MjM3MjA2NTA3MjEzMC4zYjk4NjcyNTk1NzViZjRiLjdlY2NhODA0ZjZhMWJhMjIKICAgICA5YjUxMjEwYWQ4MDk1Y2Q5LmEzNTFhNjJjZDFlODBmNDYuNTVmOTVjOWMyMTQxOTY2ZS5lODliN2JjNGMyZTlkNmM1CiAgICAgZTczZGM2ZjUzNTA2ZTU3OAogCi1WUFNSQVdfMHgwNV8xMjgocmVnKQorVk1PVkhQRF8xMjhfTG9hZEZvcm0ocmVnKQogICBiZWZvcmUKICAgICBkOGZlODQwM2ViODQyNGU2LjEzYmZiZjUzMGFkNjQ2MmMuZWY1OWNiMWU3MmE0NGY4MS5jY2IwNzg4ZWE5MzUxZmZiCiAgICAgMTcyYWIwNWI3ZmYwY2ZiYy5mMjc1ZmMzYWEzOWRiY2VjLjljZTZhMDYzZTNjODFjOGQuN2M4ODM2ZTg0YzVlMTgxZgpAQCAtMjExNDcsMTIgKzIxMTQ3LDEyIEBACiAgICAgZjBmMTQ4OTViMmJmNTg0ZS41NWU4NDg5MzdkNGIzZjYxLjg2YmU1MDk3YTc3NTUwY2IuZjdjZTg4ODU0ZDdjNDRkYgogICAgIDdhZDQxNWEwZTQ4YWYxY2IKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmMzNTAyODRmZDNiMDI4Ni5mZmJlZmM0NDAyNmIwMjI2CisgICAgZDhmZTg0MDNlYjg0MjRlNi4xM2JmYmY1MzBhZDY0NjJjLmVmNTljYjFlNzJhNDRmODEuY2NiMDc4OGVhOTM1MWZmYgogICAgIDE3MmFiMDViN2ZmMGNmYmMuZjI3NWZjM2FhMzlkYmNlYy45Y2U2YTA2M2UzYzgxYzhkLjdjODgzNmU4NGM1ZTE4MWYKICAgICAwMDBjNDk2NzhkZDUyMWE1LjE0M2U1NmFiYzE2YjdiNDQuMDU0MzIzNjhjMWRmYjMxNy40MTRlMTI5NzI0YzczYjA2CiAgICAgZjBmMTQ4OTViMmJmNTg0ZS41NWU4NDg5MzdkNGIzZjYxLjg2YmU1MDk3YTc3NTUwY2IuZjdjZTg4ODU0ZDdjNDRkYgogICAgIDdhZDQxNWEwZTQ4YWYxY2IKLVZQU1JBV18weDA1XzEyOChtZW0pCitWTU9WSFBEXzEyOF9Mb2FkRm9ybShtZW0pCiAgIGJlZm9yZQogICAgIGE2MmMzNGQzMDRmYmZjMDEuNDEyNmFiNGY4OTNiYWQ2My45MTNkNGVkY2Y1NDljMzZlLjdhYTEyMTVlMzExNjJmNTQKICAgICA1N2EyNjEwYWNhZGUyMmFhLjUwZjU2YzAzYWZkNDVmOGYuYTQwYmU1NzM0NTcyYzQ5OS4zZjM5OTQyN2ZjNGY4YjVmCkBAIC0yMTE2MiwxMSArMjExNjIsMTEgQEAKICAgYWZ0ZXIKICAgICBhNjJjMzRkMzA0ZmJmYzAxLjQxMjZhYjRmODkzYmFkNjMuOTEzZDRlZGNmNTQ5YzM2ZS43YWExMjE1ZTMxMTYyZjU0CiAgICAgNTdhMjYxMGFjYWRlMjJhYS41MGY1NmMwM2FmZDQ1ZjhmLmE0MGJlNTczNDU3MmM0OTkuM2YzOTk0MjdmYzRmOGI1ZgotICAgIDY5MDExODMxNTEzYzFmZjIuNzlhYjg5MWNiZjE3YTg3Zi42YTFjODc0NTg4ZDFmZTBiLjJmZDJhNDYwYTRhY2ExOTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2FhMTIxNWUzMTE2MmY1NC4zZjM5OTQyN2ZjNGY4YjVmCiAgICAgYjgxN2Q1MzRiNjIzYWUwNC4xODkzZmUwNjU2OGVjNmRlLmJmM2RiMjNjZGE3MjJjZjMuYThiODRkNzRjNGI3YWRhYQogICAgIDA0Mzc4YmNmZjhmZWVhNDIKIAotVlBTUkFXXzB4MDVfMTI4KHJlZykKK1ZNT1ZIUERfMTI4X0xvYWRGb3JtKHJlZykKICAgYmVmb3JlCiAgICAgYTE5YTViZGRkZDBjOTUwYi4yMGFlMTVmZjE0OWY4YzBkLjg5ZmJjNTJkMGZjOGYyNTkuN2YzOWUxNDY1ODYyMGM3YgogICAgIGQ5MmZiODBhMGY2ZWVhYjIuN2Q5MzUzN2U4OGJhNzUzOC4yODJlZGNmZDg3NGU2YjljLjg2ZGU5MDRkMWVhYzU4Y2YKQEAgLTIxMTc0LDEyICsyMTE3NCwxMiBAQAogICAgIDhlMWEwOTcyYzc1YjgxNDguODU3N2I5NDkyMDAzNTdhNy42MDIzZTc0OTIyNzMyZjI4LmQ4NGY1ZjA3ZWY3ZjI2OGUKICAgICBkY2IzNzc5MTMzMjAyMDUxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAzMDFmZjNhMDExMzAxNzkuZmVjMjAyZjhmZjdiMDEzNAorICAgIGExOWE1YmRkZGQwYzk1MGIuMjBhZTE1ZmYxNDlmOGMwZC44OWZiYzUyZDBmYzhmMjU5LjdmMzllMTQ2NTg2MjBjN2IKICAgICBkOTJmYjgwYTBmNmVlYWIyLjdkOTM1MzdlODhiYTc1MzguMjgyZWRjZmQ4NzRlNmI5Yy44NmRlOTA0ZDFlYWM1OGNmCiAgICAgMGE0MDllYzMyOWFmMjVlMi5hYTkyMGI5ZTJkODIyNWIyLjUxNzczZWUyNTlhZTZiNTIuYjBmNzNjM2Y0NzVjY2MxYwogICAgIDhlMWEwOTcyYzc1YjgxNDguODU3N2I5NDkyMDAzNTdhNy42MDIzZTc0OTIyNzMyZjI4LmQ4NGY1ZjA3ZWY3ZjI2OGUKICAgICBkY2IzNzc5MTMzMjAyMDUxCi1WUFNSQVdfMHgwNV8xMjgobWVtKQorVk1PVkhQRF8xMjhfTG9hZEZvcm0obWVtKQogICBiZWZvcmUKICAgICA5N2VmZmZjOTJlNGI3NzhmLmMyMDlmNTg0ODZmZjNiOTAuZTkwZGRhNmQ3YzQ3Yzg0Mi5iMDdlZDM5YzdkMjlmM2M5CiAgICAgZTVjZjc0OWJmZDBkZTY3Ny4wMzU5NWY2NjAxMjY4ZjY1LmIyMjJlOGY0NWQ1YzMzYWYuOWZkNGZmNDgwNjVkZjJlMgpAQCAtMjExODksMTEgKzIxMTg5LDExIEBACiAgIGFmdGVyCiAgICAgOTdlZmZmYzkyZTRiNzc4Zi5jMjA5ZjU4NDg2ZmYzYjkwLmU5MGRkYTZkN2M0N2M4NDIuYjA3ZWQzOWM3ZDI5ZjNjOQogICAgIGU1Y2Y3NDliZmQwZGU2NzcuMDM1OTVmNjYwMTI2OGY2NS5iMjIyZThmNDVkNWMzM2FmLjlmZDRmZjQ4MDY1ZGYyZTIKLSAgICBhMTFmNTBmNGJiNzEyYTMzLmFiNTU0MjgyZDU1Y2I4NzQuYmI4MDYxY2NlMDRlNTYxYy44ODcxNjZiYTVhOWE2OTFmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIwN2VkMzljN2QyOWYzYzkuOWZkNGZmNDgwNjVkZjJlMgogICAgIGE5YWExMWJlODU4M2ZmZjAuMTc0YjlhNDY5ZDJlZjM2OC5lMmY0YzFlMDIxMjhlYmIzLmM3YTAwNDVkMTU2ZDk0MmIKICAgICBiN2FlZDU5Y2QyNjFhZWIyCiAKLVZQU1JBV18weDA1XzEyOChyZWcpCitWTU9WSFBEXzEyOF9Mb2FkRm9ybShyZWcpCiAgIGJlZm9yZQogICAgIGI2ZThkNWU1MmQwMmY1NjIuZDczZDMyZTc3NjUwMjFkOS5hMzg1NjMxZGY2Mjc3Y2VlLjAyNGE4MjFjM2JmNmFmYTAKICAgICAxZjk4MDFhM2MzZGNhM2U1LjA5YTUyZjU5YWJlMzRiMWIuYWM1MDlhNzM3YmQzOGZiMi5mNjRlMjI2YzRhYzQ1ZDEwCkBAIC0yMTIwMSwxMiArMjEyMDEsMTIgQEAKICAgICA5ZThjY2EyZjBlNmUyNjE1LmU1MWZhZmNkNGU4Y2FhNTkuYTBjOTNmNGM3Yjc2NDFhMi5jZThmZWJmOGI5OTI2YjI4CiAgICAgNmE2NDBlMGQ1MWE5NDEyOAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZDA2MDFmYTAzZGIwMjBkLmZlNzRmZjVmZmRjYzAzNTkKKyAgICBiNmU4ZDVlNTJkMDJmNTYyLmQ3M2QzMmU3NzY1MDIxZDkuYTM4NTYzMWRmNjI3N2NlZS4wMjRhODIxYzNiZjZhZmEwCiAgICAgMWY5ODAxYTNjM2RjYTNlNS4wOWE1MmY1OWFiZTM0YjFiLmFjNTA5YTczN2JkMzhmYjIuZjY0ZTIyNmM0YWM0NWQxMAogICAgIDRkMGI1NDQyMmY3Y2Y0ZTcuMTlhYzg1MDIzZjQ4M2JlMi44Y2Y4M2FiNGM5YmY2NzVmLjljY2IxYmJjNmI5ZmIzMmYKICAgICA5ZThjY2EyZjBlNmUyNjE1LmU1MWZhZmNkNGU4Y2FhNTkuYTBjOTNmNGM3Yjc2NDFhMi5jZThmZWJmOGI5OTI2YjI4CiAgICAgNmE2NDBlMGQ1MWE5NDEyOAotVlBTUkFXXzB4MDVfMTI4KG1lbSkKK1ZNT1ZIUERfMTI4X0xvYWRGb3JtKG1lbSkKICAgYmVmb3JlCiAgICAgNGExN2ZlZTU0ZmYxZjM1Yi42ZDY5NWZkNGZiM2M3MzFiLjQ3YzkyOGE1ZjViYTU3YWMuNDQwZmE1YTcyZDg0NTkyNwogICAgIDRiNzQzOTZkY2Q3NTNiZWMuMTVlYzEwOWU5Mzc0MThhNC4xZDc4NmY3ODUwZGZmYzA5LmQ0MTU2ODMyN2M3NmViOTkKQEAgLTIxMjE2LDExICsyMTIxNiwxMSBAQAogICBhZnRlcgogICAgIDRhMTdmZWU1NGZmMWYzNWIuNmQ2OTVmZDRmYjNjNzMxYi40N2M5MjhhNWY1YmE1N2FjLjQ0MGZhNWE3MmQ4NDU5MjcKICAgICA0Yjc0Mzk2ZGNkNzUzYmVjLjE1ZWMxMDllOTM3NDE4YTQuMWQ3ODZmNzg1MGRmZmMwOS5kNDE1NjgzMjdjNzZlYjk5Ci0gICAgNGE0NzNhOTJlOTQyZDYwNy5mNDYzZDhmYTcxYTE1MDVkLjQxZjZmZDMxN2EwNjU2OTkuYWMyODg1NTcwNGQ3MzJhNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NDBmYTVhNzJkODQ1OTI3LmQ0MTU2ODMyN2M3NmViOTkKICAgICAyMTVjN2QzZmJmNjI3ZmRhLjY0MThiMjUyMzI1MDU5ZjIuOTExMTRmYmQ4ZjNiMjE4Yi4yODk1Zjc4MzYwMzQ2YmY1CiAgICAgYTRhNmJhMjMyYzE4ZDEzOAogCi1WUENNUEdURF8xMjgocmVnKQorVkNWVFBEMlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDdjYThjYWEyMDUwZmEyMTguYWQ3ZjdlNWY2YWU0ZjQ4ZS5jMzU4OWQxNDcxMGM2ZDBlLmU3OTNlMjA2YWM4YTE5MDkKICAgICAwY2U2MjQ2Yjg2YTUxODQyLmNiN2JiYWUwMDdkMWVmNTIuNmI2ZjkyYWFjYjYxYzg1ZC4yMDQ5MzFmOWVkMDBmOTQwCkBAIC0yMTIyOCwxMiArMjEyMjgsMTIgQEAKICAgICBjMzRhYTI5MGYzZTBlNTIzLjI4MzFkMGIyODUyMTY5YjUuMGE1MThmMDczZTA4NDc0OC5hYzgwZjQ4ZTQ4OGY2Mzg3CiAgICAgYjY5YTVmMDg5YmMwNjZlZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZjAwMDAwMDAwLmZmZmZmZmZmMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBmZjgwMDAwMC43ZjgwMDAwMDAwMDAwMDAwCiAgICAgMGNlNjI0NmI4NmE1MTg0Mi5jYjdiYmFlMDA3ZDFlZjUyLjZiNmY5MmFhY2I2MWM4NWQuMjA0OTMxZjllZDAwZjk0MAogICAgIGIwYWVjMmVjNGM2NzcwNjIuNTUxZGFjYWRiMTM3MmQ1MC5iOWE4OGY4MmRiZGNhODhkLjE5ZmZiODgyNmRhODdlNWIKICAgICBjMzRhYTI5MGYzZTBlNTIzLjI4MzFkMGIyODUyMTY5YjUuMGE1MThmMDczZTA4NDc0OC5hYzgwZjQ4ZTQ4OGY2Mzg3CiAgICAgYjY5YTVmMDg5YmMwNjZlZgotVlBDTVBHVERfMTI4KG1lbSkKK1ZDVlRQRDJQU18yNTYobWVtKQogICBiZWZvcmUKICAgICAxMzE3NzdkYjgxNDc0MWMwLmEzMDdjMGMzMTU5ZGI0MzIuMjA4M2EyZGI5ZTljNjBhYy5iOGI0OGVhNThmNzFlMjNhCiAgICAgOWZjNGI3ZjUxNzMwYjAyNi5hYjMyMTZmMTUxMjgxOTNhLjFhZGY5ZjE1MThiM2NlNjIuMjAxZTg4Yzg2YWE0YjQxMApAQCAtMjEyNDMsMTEgKzIxMjQzLDExIEBACiAgIGFmdGVyCiAgICAgMTMxNzc3ZGI4MTQ3NDFjMC5hMzA3YzBjMzE1OWRiNDMyLjIwODNhMmRiOWU5YzYwYWMuYjhiNDhlYTU4ZjcxZTIzYQogICAgIDlmYzRiN2Y1MTczMGIwMjYuYWIzMjE2ZjE1MTI4MTkzYS4xYWRmOWYxNTE4YjNjZTYyLjIwMWU4OGM4NmFhNGI0MTAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCi0gICAgYjRkZWEwYWJjMTViM2U1Zi5hM2ZjNWVlZjgwZGU5NWU4LjdmZTQwNjY3YTJlNWZlYjkuOGYzNzVlNGUzMTk1ZjExNworICAgIDM2NmQ5YzQxNzg4ODcxNGMuMzcxNWEyODc0MDEwNTBlOC5mMDExNDE0YTEwNzI2ZjAyLjlmZGI3OWRjNmMyY2ZiNzYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC4wMDAwMDAwMDg1YTQ3NTJjCiAgICAgNGQ3ZTMyODg1MzZjZDNhMAogCi1WUENNUEdURF8xMjgocmVnKQorVkNWVFBEMlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDM1ZmJmMWY3NzEzY2RjYmMuZjZlMzQxMWYwZGIzZDQ4YS40YTM1NDk5NmFkMjAyM2U1LmEzMjU2OTU5ZTkxOTM4YjMKICAgICBhM2ZjOTgwODI1OTE0OTE4LmQ2NDdmYTg5Nzg5ZWVmZmEuOGEwYTVjZTk2MjYxMzY4Yy4zOGEwZTcwYjAxMWFkOTFiCkBAIC0yMTI1NSwxMiArMjEyNTUsMTIgQEAKICAgICA4MmI1OGFiY2MwZmMzZjNmLmUyNjBhNGYwMWU1YmEyNTguNDFiY2VlM2ZkNjEyZGY4Ni4yNTc0MjA1ZTE2YWYzZmU3CiAgICAgMzU2NWQ0ZDg0YjVjN2NhMwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGZmZmZmZmZmLmZmZmZmZmZmMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDBmZjgwMDAwMC44MDAwMDAwMDA1MDczODU4CiAgICAgYTNmYzk4MDgyNTkxNDkxOC5kNjQ3ZmE4OTc4OWVlZmZhLjhhMGE1Y2U5NjI2MTM2OGMuMzhhMGU3MGIwMTFhZDkxYgogICAgIGY0Y2IyMTI2MGJmODU2NjAuMzFkODQ3ZDUxZjI3NGFkYi5iZGM5OTQ1MjNjMmUwYzg4LjFhMjFmYTY4MDdmMjljMWUKICAgICA4MmI1OGFiY2MwZmMzZjNmLmUyNjBhNGYwMWU1YmEyNTguNDFiY2VlM2ZkNjEyZGY4Ni4yNTc0MjA1ZTE2YWYzZmU3CiAgICAgMzU2NWQ0ZDg0YjVjN2NhMwotVlBDTVBHVERfMTI4KG1lbSkKK1ZDVlRQRDJQU18yNTYobWVtKQogICBiZWZvcmUKICAgICAyNmJmOTJjMmMxMDYwZjdlLmFhMDZjZTM4ZGYyYTNmNjIuYzdhYzhlYzQ5MDQ1YjM5ZS43MTMwNjUxYmNjOTllYzMxCiAgICAgZDQ1MGQ3MDg5NWI4YjZhMy5jODBhZTkwNTA1MGM5Mzc0LmJiODg4MDNmOTJmMTM4ZDguYTg3MWY1NTJiYjUwNmYzNgpAQCAtMjEyNzAsMTEgKzIxMjcwLDExIEBACiAgIGFmdGVyCiAgICAgMjZiZjkyYzJjMTA2MGY3ZS5hYTA2Y2UzOGRmMmEzZjYyLmM3YWM4ZWM0OTA0NWIzOWUuNzEzMDY1MWJjYzk5ZWMzMQogICAgIGQ0NTBkNzA4OTViOGI2YTMuYzgwYWU5MDUwNTBjOTM3NC5iYjg4ODAzZjkyZjEzOGQ4LmE4NzFmNTUyYmI1MDZmMzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBmZmZmZmZmZi4wMDAwMDAwMDAwMDAwMDAwCi0gICAgZDY0MmUyNThjNTY1MmI3ZC41NjVhOTU0MmQ0MjIyNzE4LjQwMjA2Y2Q2YjNjMTkyZGIuOWY4OTUxODFmMzdiYzZmZAorICAgIDFhZTIxZDk2ZTI3ZTJiM2UuMzgwY2Q4OGZjZDMwNzcyMi45YWMwZjY0YjNlNmNlZjMzLjQ0Y2E5YTUwM2ZjMWEzNDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC5mZDY0NzYyNTdmODAwMDAwCiAgICAgMTdmODE1NTE3MzA3MTExNwogCi1WUENNUEdURF8xMjgocmVnKQorVkNWVFBEMlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDA2NjVlMjJjNWNmM2MzM2IuZTMzY2ExM2I1OTc4NzE4YS43ZDNlMWU4YmI1NmRkZTAxLjg5NzM1ZmNiMGJmY2RkZmIKICAgICBjOTFhYjQ3ZjQ5Y2IxNjE0LjFkOWNkNjI5YmFjM2JhOTEuMGIwNTZmZDQwYzlkZDk4YS41MTg2NDkxNjYyMmE4ZWJmCkBAIC0yMTI4MiwxMiArMjEyODIsMTIgQEAKICAgICAzYzhlNTgzOWEyNmI5Mjk3Ljg3YmQ5NGRhNTYzMzQ1NDAuYzk2YzU0MWE4ZmRkOGEyYS5jZDFjZjc1ZTdmOGMwZGU3CiAgICAgM2EzN2IzMzM3ZGQ5NTNhMQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwZmZmZmZmZmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmY4MDAwMDAwMDAwMDAwMC4wMDAwMDAwMDdmODAwMDAwCiAgICAgYzkxYWI0N2Y0OWNiMTYxNC4xZDljZDYyOWJhYzNiYTkxLjBiMDU2ZmQ0MGM5ZGQ5OGEuNTE4NjQ5MTY2MjJhOGViZgogICAgIGJkNjQ4OGI0ZDcxOTQ3NGUuNjAyZGZlMTAwNTUzYzJiZi41YmZiODI4YTc3M2U1MzVlLjczMjVhOGEzZDU1NjVmNTUKICAgICAzYzhlNTgzOWEyNmI5Mjk3Ljg3YmQ5NGRhNTYzMzQ1NDAuYzk2YzU0MWE4ZmRkOGEyYS5jZDFjZjc1ZTdmOGMwZGU3CiAgICAgM2EzN2IzMzM3ZGQ5NTNhMQotVlBDTVBHVERfMTI4KG1lbSkKK1ZDVlRQRDJQU18yNTYobWVtKQogICBiZWZvcmUKICAgICA5NTQyNTYwZWVhNDhlZWIwLmEzZTYyMjc4NDQ0ZDMzOTguNzAxNjE0NzVjODZmZmUzZi5iMWE0ZTJlZWYyMDViODlhCiAgICAgYmMwOTVlZGNlM2U1OWE0MC40ZWI2ZTFkZjVjNDk2NTAwLmY1MDVmYWNjNzcxNGFhZTkuNmZlZTI3NzQzYzQzMWE1OQpAQCAtMjEyOTcsMTEgKzIxMjk3LDExIEBACiAgIGFmdGVyCiAgICAgOTU0MjU2MGVlYTQ4ZWViMC5hM2U2MjI3ODQ0NGQzMzk4LjcwMTYxNDc1Yzg2ZmZlM2YuYjFhNGUyZWVmMjA1Yjg5YQogICAgIGJjMDk1ZWRjZTNlNTlhNDAuNGViNmUxZGY1YzQ5NjUwMC5mNTA1ZmFjYzc3MTRhYWU5LjZmZWUyNzc0M2M0MzFhNTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCi0gICAgZGFmOThhZmRlN2RiMTQ5MS5lMWYyMmZkMjU3YzU2ZWIwLjQ4ZDVlOTVlZmZjN2NiZWQuZGNlY2M3NDNmMjJlNjg3NgorICAgIDg5NTc0Njg3ODNiZDEzN2MuOWE0YzkyZDk4M2VkNjU3OS5mNDU2YzJjYjgwMmQwNTZhLjVlOTgxZjE3MDgyMmViMTMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMC43ZjgwMDAwMDgwMDAwMDAwCiAgICAgNDQzNzFhNjQ5N2YzY2QyYwogCi1WUE1PVlpYQkRfMTI4KHJlZykKK1ZQVU5QQ0tIRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZjFjNTEzZTY5MmZlNTZlMS44YWJiYTcyODJhNGM1YmFiLjgwZjViNjM2NzQ1YmJlNTAuY2M0ZGVhNzEwZmVjYjc5ZgogICAgIDQxZTJiMTM1ODBkYTNmNDIuNzQ2OTE3ZjY2OTFhYTFmNS5kM2ExMjI3MTc1M2Q4ZjA2LjVlOGM0MWYwY2NhYTg2YWIKQEAgLTIxMzA5LDEyICsyMTMwOSwxMiBAQAogICAgIDM2ZjhjNGVhYTMzNzFmYjcuNmFiOGU1Mjg0ODAzMjFjYi4wNTIzOTkxYzk1MTRhNjYyLjE4OGFlMmUzYmYyMGJjODMKICAgICBmOGUyMjMyZTJkZWY5YmE3CiAgIGFmdGVyCi0gICAgZjFjNTEzZTY5MmZlNTZlMS44YWJiYTcyODJhNGM1YmFiLjgwZjViNjM2NzQ1YmJlNTAuY2M0ZGVhNzEwZmVjYjc5ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDA1MzAwMDAwMDBkLjAwMDAwMGY0MDAwMDAwM2UKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzY0MTZmZWZkM2ExMjI3MS5mN2Y3MWQ3ZDc1M2Q4ZjA2CisgICAgNDFlMmIxMzU4MGRhM2Y0Mi43NDY5MTdmNjY5MWFhMWY1LmQzYTEyMjcxNzUzZDhmMDYuNWU4YzQxZjBjY2FhODZhYgogICAgIDhlZDllZGJkZmMxNGMzZmIuNzVjZjU4NTJiZjU0YTU5Yi4zNjQxNmZlZmY3ZjcxZDdkLmQ4NWM2YWM4NTMwZGY0M2UKICAgICAzNmY4YzRlYWEzMzcxZmI3LjZhYjhlNTI4NDgwMzIxY2IuMDUyMzk5MWM5NTE0YTY2Mi4xODhhZTJlM2JmMjBiYzgzCiAgICAgZjhlMjIzMmUyZGVmOWJhNwotVlBNT1ZaWEJEXzEyOChtZW0pCitWUFVOUENLSERRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDU1MzBhYjk2Yjg4NjRkZDYuOTQ4OTMzMjkxMGNmOGUyMy4yZGYyM2I2NDIxMzVkMmFmLjljOTE5ZDY1ZWIyMDY0NjEKICAgICAwYzQwZjUwNjdkZjI4ZTNiLjAzZDkzNWU0ZTA2OTRkZWIuOWM0N2Q0ZjI2NmY1NzQ3My41N2Q4NzYzNDk2YTc5NDI1CkBAIC0yMTMyMywxMiArMjEzMjMsMTIgQEAKICAgICBmOGJiZDgwNWFhOWEyNmNiCiAgIGFmdGVyCiAgICAgNTUzMGFiOTZiODg2NGRkNi45NDg5MzMyOTEwY2Y4ZTIzLjJkZjIzYjY0MjEzNWQyYWYuOWM5MTlkNjVlYjIwNjQ2MQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDBlYjAwMDAwMDIwLjAwMDAwMDY0MDAwMDAwNjEKLSAgICBmN2RlN2U2YTk3M2UxOTAzLmUwMzRjNjg5YWU5MDk4YmEuOTE4NDJlYmUzMjRmYzM0NC45MjQ0MjBmNzMyMzY3MjViCisgICAgMGM0MGY1MDY3ZGYyOGUzYi4wM2Q5MzVlNGUwNjk0ZGViLjljNDdkNGYyNjZmNTc0NzMuNTdkODc2MzQ5NmE3OTQyNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yZGYyM2I2NDljNDdkNGYyLjIxMzVkMmFmNjZmNTc0NzMKICAgICBmM2Q1YzBhZDIzNzdhYjVhLjg4ZTZlMzgzMTdkMGFiM2MuZTk3NWM0YjVhMTUwN2E0ZS5hOTIxOTcxODU5NTgzOWFlCiAgICAgZjhiYmQ4MDVhYTlhMjZjYgogCi1WUE1PVlpYQkRfMTI4KHJlZykKK1ZQVU5QQ0tIRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZGI1ZWRlMjliZjg2NzU1ZC5kZGYyMzliZDNjYTgwMDZiLjU1M2E4NjNlYjZiNmMyMWYuODFlNjEyYzFkMDAzNTZiYwogICAgIGFlNTVhNWYwMzRhYTYxMTIuOGYwMTY0ODVmZWRkZDQ2Mi5hNTdlYWQyNTI4Y2QxODBkLjMzYTM5NWQwZGE3NTEyYmIKQEAgLTIxMzM2LDEyICsyMTMzNiwxMiBAQAogICAgIDkzNzI2NjE3YjBjOTA0OGYuYmUyNWMxZWVmMDg0ZTdiNS4zOTAxNzUyZGYyYmY3M2JiLjU4MzAyNmEzZjFjMzFlMWEKICAgICA4Mzk4MmQ0MDM2YjhlNGQzCiAgIGFmdGVyCi0gICAgZGI1ZWRlMjliZjg2NzU1ZC5kZGYyMzliZDNjYTgwMDZiLjU1M2E4NjNlYjZiNmMyMWYuODFlNjEyYzFkMDAzNTZiYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDBkYzAwMDAwMGIxLjAwMDAwMDZjMDAwMDAwNzYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDJmYzUzYTZhNTdlYWQyNS4wOGExZWFiMjI4Y2QxODBkCisgICAgYWU1NWE1ZjAzNGFhNjExMi44ZjAxNjQ4NWZlZGRkNDYyLmE1N2VhZDI1MjhjZDE4MGQuMzNhMzk1ZDBkYTc1MTJiYgogICAgIGNkZWQyOWM2YTY5MjI4OTMuZTZjZWJkZjI4NjIyZTI2Yy5kMmZjNTNhNjA4YTFlYWIyLmRjNzdjN2NjZGNiMTZjNzYKICAgICA5MzcyNjYxN2IwYzkwNDhmLmJlMjVjMWVlZjA4NGU3YjUuMzkwMTc1MmRmMmJmNzNiYi41ODMwMjZhM2YxYzMxZTFhCiAgICAgODM5ODJkNDAzNmI4ZTRkMwotVlBNT1ZaWEJEXzEyOChtZW0pCitWUFVOUENLSERRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDM5N2M1OThmYzY5YTdjY2MuNWUzMDU5NGZlZmRiMzFiMC5mM2QyZWI2NjU3MGU5ZTY5LjM2ZDkwZDI0ODNiMmYxZDQKICAgICA1N2E4MjQ3Y2JlNzhhMDMyLjg5NzNmZGRiZmU1NWVkYTIuNjFhMGI2NDdkN2NkYzViMy4yNmQwMTlmODU3MDY5ZWE4CkBAIC0yMTM1MCwxMiArMjEzNTAsMTIgQEAKICAgICAzNzY2YzdkYjc4YzMxYjQyCiAgIGFmdGVyCiAgICAgMzk3YzU5OGZjNjlhN2NjYy41ZTMwNTk0ZmVmZGIzMWIwLmYzZDJlYjY2NTcwZTllNjkuMzZkOTBkMjQ4M2IyZjFkNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDA4MzAwMDAwMGIyLjAwMDAwMGYxMDAwMDAwZDQKLSAgICBiN2U3MGNmMzM5NWIwZDMwLjZmODc0ZTI1N2FjMTcyMTIuZTQ1Y2ExN2I4ZGNjMTZiZi42MzMyOTQxNTA4NDhiNmU0CisgICAgNTdhODI0N2NiZTc4YTAzMi44OTczZmRkYmZlNTVlZGEyLjYxYTBiNjQ3ZDdjZGM1YjMuMjZkMDE5Zjg1NzA2OWVhOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mM2QyZWI2NjYxYTBiNjQ3LjU3MGU5ZTY5ZDdjZGM1YjMKICAgICAzNjA3OGNlMDU0NTE3ZmYzLjZlYjc0ODliZmVhZWZkYWMuNThkMjI1ZjA5NTE3NGRiYi40YTRiN2FlODM1MDM3NzMzCiAgICAgMzc2NmM3ZGI3OGMzMWI0MgogCi1WUE1PVlpYQkRfMTI4KHJlZykKK1ZQVU5QQ0tIRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODZkMDc4NWM2ZDE1ZGZiZC5iMGQyMjAyZjJhNjViMWE3LmUxNTFlN2E3MjZhNWM5MWIuOTljZWJmOTAwOWJiMjhkMAogICAgIDkzZDU4OGQ2YjE4NGZmNGYuMDExNjQ0Y2NkN2E0NjA3Ny4yMzlmMjhiNzhmMzQxNDBjLjgzMWNlYzQ5MDhjMzYxMmQKQEAgLTIxMzYzLDEyICsyMTM2MywxMiBAQAogICAgIDU3ZTBiNTY1OTRlYTQxNmEuOTczNDJlYTEyOWQwMjQxZC44ODhhN2Q5MDkzNDgxMTIzLmMyZGRlY2IzMTEzMGUwNjkKICAgICBjZmU5YjgzYzU0YWQ5ZGExCiAgIGFmdGVyCi0gICAgODZkMDc4NWM2ZDE1ZGZiZC5iMGQyMjAyZjJhNjViMWE3LmUxNTFlN2E3MjZhNWM5MWIuOTljZWJmOTAwOWJiMjhkMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDBhYzAwMDAwMDNiLjAwMDAwMGI1MDAwMDAwZmMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTJlZTA2MzYyMzlmMjhiNy5kNWU2MTgyYjhmMzQxNDBjCisgICAgOTNkNTg4ZDZiMTg0ZmY0Zi4wMTE2NDRjY2Q3YTQ2MDc3LjIzOWYyOGI3OGYzNDE0MGMuODMxY2VjNDkwOGMzNjEyZAogICAgIGJhYzFmM2I1ZGY5Y2I2YTUuMDQ5ZDc1YTQ3ODE5NDg5MC45MmVlMDYzNmQ1ZTYxODJiLmYyODgyNzA2YWMzYmI1ZmMKICAgICA1N2UwYjU2NTk0ZWE0MTZhLjk3MzQyZWExMjlkMDI0MWQuODg4YTdkOTA5MzQ4MTEyMy5jMmRkZWNiMzExMzBlMDY5CiAgICAgY2ZlOWI4M2M1NGFkOWRhMQotVlBNT1ZaWEJEXzEyOChtZW0pCitWUFVOUENLSERRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGY1NzYwNjhkOTBiZWE5ZDAuYzY3ZWNhNTI2YmY5ZGM0Yi45NWE2ZWJiMTA1ZDZiMjRiLjYzYmU4YTMxNjVlNTNkYTAKICAgICAxMDUxNTE5M2UxNzBjMDIxLjYzZTYyZmU4MDE1NmMyZjQuZGFjMTI4YmYyODM2YWM0Ni43ZGQ4Mjc4NWU4NDlkNjUwCkBAIC0yMTM3NywxMiArMjEzNzcsMTIgQEAKICAgICBlNTc5M2ZlY2FjOWE4YzNmCiAgIGFmdGVyCiAgICAgZjU3NjA2OGQ5MGJlYTlkMC5jNjdlY2E1MjZiZjlkYzRiLjk1YTZlYmIxMDVkNmIyNGIuNjNiZThhMzE2NWU1M2RhMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDA2NTAwMDAwMGU1LjAwMDAwMDNkMDAwMDAwYTAKLSAgICBmYzQ2MTgzODY0Y2U5ZWMxLjhhNjVkZjkzZjE4YzMxMTAuNDI1MDYxYjZhZmZjY2UzOS4zNDIyNTJmOGI4MDExOWRkCisgICAgMTA1MTUxOTNlMTcwYzAyMS42M2U2MmZlODAxNTZjMmY0LmRhYzEyOGJmMjgzNmFjNDYuN2RkODI3ODVlODQ5ZDY1MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NWE2ZWJiMWRhYzEyOGJmLjA1ZDZiMjRiMjgzNmFjNDYKICAgICA5NDIxZDQ2OTM1ZTRmZWRjLjk3NDhkNmJmZDcyNzYyNGMuYTkxZTEzODRiNTM1ZDY1MS5lMmU5MDZmNjcwOTg0MWYzCiAgICAgZTU3OTNmZWNhYzlhOGMzZgogCi1WUE1PVlNYQkRfMTI4KHJlZykKK1ZCUk9BRENBU1RTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA5NzFlZmE0NDA5OTQzNDZkLmI2YWQwMjEzNmZiZjlkOWQuZTZkOTEwZDk1MGIzOTQ1My5lYWY4YjkxNDU3ZWM3ZWI5CiAgICAgNTUyNDMxNmMyMjExNzUyOC4zZGI4MWYyMTJmNmEzNjMxLmQzNjQ4YTRiZjhiZDAxZDIuZTNhYWNmNTJiMDJkODM5ZQpAQCAtMjEzOTEsMTEgKzIxMzkxLDExIEBACiAgICAgYWZjNzhiNTkyMWE4MTVmMAogICBhZnRlcgogICAgIDk3MWVmYTQ0MDk5NDM0NmQuYjZhZDAyMTM2ZmJmOWQ5ZC5lNmQ5MTBkOTUwYjM5NDUzLmVhZjhiOTE0NTdlYzdlYjkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZGQwMDAwMDAwNS5mZmZmZmZhMDAwMDAwMDJiCisgICAgNTUyNDMxNmMyMjExNzUyOC4zZGI4MWYyMTJmNmEzNjMxLmQzNjQ4YTRiZjhiZDAxZDIuZTNhYWNmNTJiMDJkODM5ZQogICAgIDdjZDdlMmNlOTQ5ZDhkMWQuMDQwY2E2N2U5MGYxODdjMy5iYTM3M2Y4MzZhZDBlNzc1LjZmMDBkMjJiZGQwNWEwMmIKICAgICA2NjgyMDhkOGZhYzViNmY3LmU5NzYxMzE4YWU2MTRhODAuZjY5ZDJiZWI0Mzc5N2ZlNy42OWM2M2M4OWZhN2Y5MjhlCiAgICAgYWZjNzhiNTkyMWE4MTVmMAotVlBNT1ZTWEJEXzEyOChtZW0pCitWQlJPQURDQVNUU1NfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMWNkMDNhODg3MDhhZTU4MC43MDcyYTBmNWYxMTQyZDYzLmM3YzJlM2RhYTZjNTNjOTQuZTVlMTRhZjExZDQzMDhkNAogICAgIDhiYWVjNTAwMDMzM2JkNjcuZjZmNGE0OTExNDE2MmQwZC43OWJjOTBiMDk0MjkxODJhLmUyNTA5OTAwOTdiYWJjZWEKQEAgLTIxNDA0LDEyICsyMTQwNCwxMiBAQAogICAgIGM0OTc3NzliZDJhNzM3Y2YKICAgYWZ0ZXIKICAgICAxY2QwM2E4ODcwOGFlNTgwLjcwNzJhMGY1ZjExNDJkNjMuYzdjMmUzZGFhNmM1M2M5NC5lNWUxNGFmMTFkNDMwOGQ0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDFkMDAwMDAwNDMuMDAwMDAwMDhmZmZmZmZkNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZDQzMDhkNDFkNDMwOGQ0LjFkNDMwOGQ0MWQ0MzA4ZDQKICAgICBkYTJiYTlhZmY1YWY1YmQ0LjU0NTIxMjE4ZmY1OGY0YTAuZGQyZjk4ODY5MjlhOWM2ZS40ODM2MTI4NDRiNmFkOGQzCiAgICAgZTMxNDYwODA2MzA5NzhmMS5lNmQ4ZTVmNjRmNjViY2M5LmNkZTk3NjQ4YmYyMzgyOGUuNzVkZmIzZTlkNWUwOTgzYgogICAgIGM0OTc3NzliZDJhNzM3Y2YKIAotVlBNT1ZTWEJEXzEyOChyZWcpCitWQlJPQURDQVNUU1NfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOTBhOTVhMDZkZDRjZjIzYi44NDM0Njg1ZjY4NGRkM2ViLjA4ZDQxOTk3YTBjOWMyMzMuMjdiNGE2ZTMzNWQxODZiNAogICAgIDM3NjM1OTk3OTM1YTA1MmEuOTc1OTNjMzgyMDg3MjZlZC4xNzkxYWI2NzhkMTE0MThiLmM1NWRhNTQxMTBhZTY2MGMKQEAgLTIxNDE4LDExICsyMTQxOCwxMSBAQAogICAgIGQ2ODQ0ZTJkMWJlMjdjZmQKICAgYWZ0ZXIKICAgICA5MGE5NWEwNmRkNGNmMjNiLjg0MzQ2ODVmNjg0ZGQzZWIuMDhkNDE5OTdhMGM5YzIzMy4yN2I0YTZlMzM1ZDE4NmI0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDZkZmZmZmZmYzguZmZmZmZmZGNmZmZmZmZjMworICAgIDM3NjM1OTk3OTM1YTA1MmEuOTc1OTNjMzgyMDg3MjZlZC4xNzkxYWI2NzhkMTE0MThiLmM1NWRhNTQxMTBhZTY2MGMKICAgICAxMzBmNmZiODhmNWRhYzQ5LmY5NGQ1OWY3YThjNDJlMjQuNmQ1YTk1ZDNiM2M4NzY3ZC44NWIwZWU1MDZkYzhkY2MzCiAgICAgODJmYTk4ZDc2ZWUyMjI0NC44N2RlMzk4ODFjMGZhN2JiLjY3N2NkNTQ1YWQ3YjlkYjQuNDE3OWZkZmE2NzJiYTUwNQogICAgIGQ2ODQ0ZTJkMWJlMjdjZmQKLVZQTU9WU1hCRF8xMjgobWVtKQorVkJST0FEQ0FTVFNTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDIxOWQ1ZGQ0YTRmOTFmZDguZGU3MGQwNWVjYjc0YTRjNi4xYmQ2NWFkNzk3NzU0ZGRmLjYxNDM2NjJiMTdiNGYyZGQKICAgICBmYzhmYTdkYTFlN2M0OGMxLjg1YmQxM2JiNDM5ZjZlN2IuOTIwMjM3ZDAzNTAwZGJiYy5iNmZiNDRlZjhlMDFiMGEzCkBAIC0yMTQzMSwxMiArMjE0MzEsMTIgQEAKICAgICA3OGMwODdiMDU1ZDViZTYwCiAgIGFmdGVyCiAgICAgMjE5ZDVkZDRhNGY5MWZkOC5kZTcwZDA1ZWNiNzRhNGM2LjFiZDY1YWQ3OTc3NTRkZGYuNjE0MzY2MmIxN2I0ZjJkZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAxN2ZmZmZmZmI0LmZmZmZmZmYyZmZmZmZmZGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTdiNGYyZGQxN2I0ZjJkZC4xN2I0ZjJkZDE3YjRmMmRkCiAgICAgNDQyN2E3MmRhNjc4YjRlNS5kMTJkNWU1OTcxZjBiYjExLmM5MmU0YzYwMTNiZjBlN2QuYzRmMDZjZmZhZGVlMTRiMwogICAgIGQ1MzFkOWI4NThmODFlNzAuMWYwYmFjYTRmMWYyYzgzMi45YTI1MTY3MTRjYmJhMTRmLmU2NmRkOWM2MTEwNjVhYjkKICAgICA3OGMwODdiMDU1ZDViZTYwCiAKLVZQTU9WU1hCRF8xMjgocmVnKQorVkJST0FEQ0FTVFNTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGQ2MzM3MjI5MTZlNzdiNTUuOGM3OWI5Njg0ZjA5NDM4ZC5jY2E1ZjkwODYwMzFkMThhLmUyYjUwZmYxZmQwMjUyNWQKICAgICA1YzEzOTY5ZGVmYzljZTQzLjQzY2JjMzI3YThiNmRmNjkuMzI0NTQxZjE1YTNhMTJjNi43ZGE4YjVjYTQxOWZkYmQ1CkBAIC0yMTQ0NSwxMSArMjE0NDUsMTEgQEAKICAgICBkOWQxODhhYzliZjVlMjY1CiAgIGFmdGVyCiAgICAgZDYzMzcyMjkxNmU3N2I1NS44Yzc5Yjk2ODRmMDk0MzhkLmNjYTVmOTA4NjAzMWQxOGEuZTJiNTBmZjFmZDAyNTI1ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAzNWZmZmZmZjlmLmZmZmZmZmY4ZmZmZmZmZTAKKyAgICA1YzEzOTY5ZGVmYzljZTQzLjQzY2JjMzI3YThiNmRmNjkuMzI0NTQxZjE1YTNhMTJjNi43ZGE4YjVjYTQxOWZkYmQ1CiAgICAgNjVhY2YwNzg3ZDA2ZjNkNy5kN2YzNzRlMjdlMGJhZTJmLmFlMzg4MWNiN2E5OGM2OTIuNDdjYjgzZWEzNTlmZjhlMAogICAgIDRmNGE3YjI3NWIyYjI1YmQuMjRiYzQ3ODZlZDE1NmIwYy45ZGNhYjMwMjVjZDcyYTk5LjFjZWFmNTNjZjQwZDY3YWMKICAgICBkOWQxODhhYzliZjVlMjY1Ci1WUE1PVlNYQkRfMTI4KG1lbSkKK1ZCUk9BRENBU1RTU18xMjgobWVtKQogICBiZWZvcmUKICAgICA1ODRjYjcyNjQ1NjMyNjM3Ljc1MzgzMzE0MjZjM2ExYTAuMDZmM2I4ZmQxMmRmZDMyYy41OTQ2ZDUwMzlkODQ3YTg4CiAgICAgNzYyN2ZlOTYwZjY0ZWY0ZC4zMmM0MTRhZDc5NWFhMzJjLjU5NjQ0MzM1MDg3NWEyYmEuM2ZmYWUyMzhkOTJhZjIwYQpAQCAtMjE0NTgsMTIgKzIxNDU4LDEyIEBACiAgICAgODU1NjY1NGY4MjZjOWViZgogICBhZnRlcgogICAgIDU4NGNiNzI2NDU2MzI2MzcuNzUzODMzMTQyNmMzYTFhMC4wNmYzYjhmZDEyZGZkMzJjLjU5NDZkNTAzOWQ4NDdhODgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmOWRmZmZmZmY4NC4wMDAwMDA3YWZmZmZmZjg4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjlkODQ3YTg4OWQ4NDdhODguOWQ4NDdhODg5ZDg0N2E4OAogICAgIDBmMmRkOWU5MTQwNGY4ZDMuZTQzODFiNWNmMTdkNjcwZi5mOWRiNjUxOGVjZTM5M2UzLmFiMzBkNzBmYWI1NWNkY2MKICAgICBmZjJiYzQwOTcwNGRmZWY2LmU2ZTE0MjhmMjliNjI4ZjMuYzIyNDk5OTRkOTM2NjRkMi5mOTM2YWVmMmFmOTI0ODdhCiAgICAgODU1NjY1NGY4MjZjOWViZgogCi1WUElOU1JCXzEyOF8xb2YzKHJlZykKK1ZQTU9WU1hEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICBhYmRkZjc5MWJmNmYwZDQ4LjIxZWQzY2UzNDA0ZGJkZTIuOTMwYjg3YjFiZDk0MjM4NC45MDBiNWI5NGVjN2FjZmI0CiAgICAgYzcxNjYxMjQwMzI4Y2ZjMC41MzNmYmM2NGEwMTBmMGMyLjQ5MDJlNTJlNGFhMDkzNmYuM2Y1YjI3MDQ0MGI5OTBiNQpAQCAtMjE0NzEsMTIgKzIxNDcxLDEyIEBACiAgICAgNTFkMmE5ZWQwZWVhM2UzMC41NGMzYzQwNzdkMGJhNjExLjNjODdkZGU5YmU3OGM2MDIuYjA2YWNlZTQxZDVlMDhjMgogICAgIDI5YzBhMTJkZGVkYTM2MjYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDkwMmU1MmU0YWEwOTM2Zi4zZjViMjcwNDQwYjk5MDI2Ci0gICAgYzcxNjYxMjQwMzI4Y2ZjMC41MzNmYmM2NGEwMTBmMGMyLjQ5MDJlNTJlNGFhMDkzNmYuM2Y1YjI3MDQ0MGI5OTBiNQorICAgIGFiZGRmNzkxYmY2ZjBkNDguMjFlZDNjZTM0MDRkYmRlMi45MzBiODdiMWJkOTQyMzg0LjkwMGI1Yjk0ZWM3YWNmYjQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZhYmUyNzlkMC5mZmZmZmZmZmYyMDE2NTAwCiAgICAgMzU0ZjlkNzRlOTIyMjFkNC43MGVkYzA3N2FiYTA1NWMzLjYyMTI1OTcyNmM2OGI2NjAuYWJlMjc5ZDBmMjAxNjUwMAogICAgIDUxZDJhOWVkMGVlYTNlMzAuNTRjM2M0MDc3ZDBiYTYxMS4zYzg3ZGRlOWJlNzhjNjAyLmIwNmFjZWU0MWQ1ZTA4YzIKICAgICAyOWMwYTEyZGRlZGEzNjI2Ci1WUElOU1JCXzEyOF8xb2YzKG1lbSkKK1ZQTU9WU1hEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICBmNGIwNmU5NTUwODNhYTU5Ljc3ZWQ4MGZiMGQwYTYzN2YuZGI4YzQ0MDIzMzVjOWZkNy4zMWFjNmZmZmRjNWEwMDAyCiAgICAgZWMwNmIxMDk5MDY1MjE4Ny4wM2VhMWUwYjgyMTFjYzZlLmUxMTViZDUzZTlhMGZlNDIuOWZjZTBhMjA2MzljYTAwYwpAQCAtMjE0ODUsMTIgKzIxNDg1LDEyIEBACiAgICAgNGYxYWVhZmU4MjE2MzkxYQogICBhZnRlcgogICAgIGY0YjA2ZTk1NTA4M2FhNTkuNzdlZDgwZmIwZDBhNjM3Zi5kYjhjNDQwMjMzNWM5ZmQ3LjMxYWM2ZmZmZGM1YTAwMDIKLSAgICBlYzA2YjEwOTkwNjUyMTg3LjAzZWExZTBiODIxMWNjNmUuZTExNWJkNTNlOWEwZmU0Mi45ZmNlMGEyMDYzOWNhMDBjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUxMTViZDUzZTlhMGZlNDIuOWZjZTBhMjAwMjljYTAwYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDMxYWM2ZmZmLmZmZmZmZmZmZGM1YTAwMDIKKyAgICBlZDhkZTc3NmI5OGE1N2RiLjUxMTY3Zjg3MGE4OGI1YTguNDEyYmFhZTZiOWUyN2Q3ZC5lMDM5YWFiOGVlYzllMWNiCiAgICAgZDIxMzhhYzdlNzAwMDg4Mi5iZGJkYTBkYzQxZmQ1OWRhLmQ5OTg4N2E3YzIyZmQ5YjUuNTEzOTRjMzQxYTZlMDBlYgogICAgIDRmMWFlYWZlODIxNjM5MWEKIAotVlBJTlNSQl8xMjhfMW9mMyhyZWcpCitWUE1PVlNYRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzQyODgyODRjMzRkYzcwMS43OTYyMThlNzM3ZDNlZmE3LmEyMmE3Yjc3YzJmYmY1YjAuODQyOGQwODIxZDkxY2QxNgogICAgIDVkYWUwZjMxNzhhMGU3NGYuYmQ0NzBkYzRjNTBkYzk3Ny41ZWFiMGVjMzI5MGZjNWQ1LjFkYTkwMjY0ZTkxNjE2Y2IKQEAgLTIxNDk4LDEyICsyMTQ5OCwxMiBAQAogICAgIGViNTVmOWFmYjBjN2NkY2EuOGIwMzE4NjIwOGVjNDZjNi5jODE0NGExZDFjYTZmMGJlLjhlYWEwZWU4M2ViNzk3ZTMKICAgICAxY2MyZTA2NGZmZWM0NjllCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVlYWIwZWMzMjkwZmM1ZDUuMWRhOTAyNjRlOTE2MTY5ZQotICAgIDVkYWUwZjMxNzhhMGU3NGYuYmQ0NzBkYzRjNTBkYzk3Ny41ZWFiMGVjMzI5MGZjNWQ1LjFkYTkwMjY0ZTkxNjE2Y2IKKyAgICAzNDI4ODI4NGMzNGRjNzAxLjc5NjIxOGU3MzdkM2VmYTcuYTIyYTdiNzdjMmZiZjViMC44NDI4ZDA4MjFkOTFjZDE2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmODJlNjk4MzcuMDAwMDAwMDAzZmNhNzAwMAogICAgIDI2Zjk4ZTcxM2U5YWQ1YWUuNzk4ZWUzNDlhY2JkNTIxZC40YzhhNTUyYjEzYzMwNWY1LjgyZTY5ODM3M2ZjYTcwMDAKICAgICBlYjU1ZjlhZmIwYzdjZGNhLjhiMDMxODYyMDhlYzQ2YzYuYzgxNDRhMWQxY2E2ZjBiZS44ZWFhMGVlODNlYjc5N2UzCiAgICAgMWNjMmUwNjRmZmVjNDY5ZQotVlBJTlNSQl8xMjhfMW9mMyhtZW0pCitWUE1PVlNYRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMGFmYThhOTZhMDcyM2I1ZC4wOTBlNGU1OTZiYjQwYTUxLmNkNzIyNmZiZjZhODYwOWUuMmQ5NmViMDRkZjQxYzNkYQogICAgIDMyMWU4OTY5M2Q1NzJmNGQuZGE3MDg4ZGIwYWVjYzllYy4xZGE2OGMwMDkxZmM1ZGQwLmQ5NTkzMzRjZjgyMmJhZjUKQEAgLTIxNTEyLDEyICsyMTUxMiwxMiBAQAogICAgIDE4MmVjZWEzNjNkZGNjZmQKICAgYWZ0ZXIKICAgICAwYWZhOGE5NmEwNzIzYjVkLjA5MGU0ZTU5NmJiNDBhNTEuY2Q3MjI2ZmJmNmE4NjA5ZS4yZDk2ZWIwNGRmNDFjM2RhCi0gICAgMzIxZTg5NjkzZDU3MmY0ZC5kYTcwODhkYjBhZWNjOWVjLjFkYTY4YzAwOTFmYzVkZDAuZDk1OTMzNGNmODIyYmFmNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZGE2OGMwMDkxZmM1ZGQwLmQ5NTkzMzRjZGEyMmJhZjUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAyZDk2ZWIwNC5mZmZmZmZmZmRmNDFjM2RhCisgICAgNzJmYTU4Y2JmMWE2ZTE5YS5iYmM3YTM5ZjI5ZmM0NjRhLjU1NmNjMzVlZjZmNGY5ODkuMjdhYzFlNjIwNGQ0MTBiYwogICAgIGE0NWE3M2E3ZDg2YjBiNmYuMDg1ZTljMTI2NjZlYmMxNS41MzkwNDhmZjQxOWRlZmY1LjcyZGFhOGIwOWVlNDAyZGIKICAgICAxODJlY2VhMzYzZGRjY2ZkCiAKLVZQSU5TUkJfMTI4XzFvZjMocmVnKQorVlBNT1ZTWERRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDczZjU4YWE4ZWU0YmFhY2YuYTUwOTU2ZTkwZmIzNmFmOS4xZDgzNmRhMDVhZDE2OWY5LmYxZGY5OGQxOGMwMmZjM2YKICAgICBlMTdjZGEyOWRjYmJkN2ZkLjUyZDQ3ZTdkYjI4OWJhNjQuNTY4MDE0YjZhM2FlODdhNC4wYzIyMmViZWY2MzBkYzkzCkBAIC0yMTUyNSwxMiArMjE1MjUsMTIgQEAKICAgICA2MWY0MjQ1MzRmY2UxMTFhLjFiZWU4YTRjYTkxMTFjOGEuYTQzNWQyMjZhMjBiMDhmOS4yYWJjMWM5ZTkwMTQwNDBkCiAgICAgZTRhOTZkNjhmYWUyYzQ4OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NjgwMTRiNmEzYWU4N2E0LjBjMjIyZWJlZjYzMGRjODkKLSAgICBlMTdjZGEyOWRjYmJkN2ZkLjUyZDQ3ZTdkYjI4OWJhNjQuNTY4MDE0YjZhM2FlODdhNC4wYzIyMmViZWY2MzBkYzkzCisgICAgNzNmNThhYThlZTRiYWFjZi5hNTA5NTZlOTBmYjM2YWY5LjFkODM2ZGEwNWFkMTY5ZjkuZjFkZjk4ZDE4YzAyZmMzZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZjgxMjg4NmI0LmZmZmZmZmZmOTgzMTRiMWYKICAgICBiYzBkYmE5NGM4Yjg5MDMyLjg1ODc2NjUwZGNmYWI3ZGIuMGZhMjhjYmVkYzkzNTJiZi44MTI4ODZiNDk4MzE0YjFmCiAgICAgNjFmNDI0NTM0ZmNlMTExYS4xYmVlOGE0Y2E5MTExYzhhLmE0MzVkMjI2YTIwYjA4ZjkuMmFiYzFjOWU5MDE0MDQwZAogICAgIGU0YTk2ZDY4ZmFlMmM0ODkKLVZQSU5TUkJfMTI4XzFvZjMobWVtKQorVlBNT1ZTWERRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDhjYmNmNGZkZjFhOTQ3YzAuMmQ3ZjE2ZDQwYzhhOTU2My5mMWQ1NjY1ZTM2ZGFhNjllLjcxODVlMDU5OTFhMmUzZmMKICAgICBmY2MxMmQ0YzkyNzQ0OWRlLjdhZjg4YTgyOWI3NzU5YjYuZTEwODc2NzM5ZTYxMTA0My5kMmRkYjRjMzQ0ZTUxZjc0CkBAIC0yMTUzOSwxMiArMjE1MzksMTIgQEAKICAgICAwNDE0YTY4MzBmMmE3ODU4CiAgIGFmdGVyCiAgICAgOGNiY2Y0ZmRmMWE5NDdjMC4yZDdmMTZkNDBjOGE5NTYzLmYxZDU2NjVlMzZkYWE2OWUuNzE4NWUwNTk5MWEyZTNmYwotICAgIGZjYzEyZDRjOTI3NDQ5ZGUuN2FmODhhODI5Yjc3NTliNi5lMTA4NzY3MzllNjExMDQzLmQyZGRiNGMzNDRlNTFmNzQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTEwODc2NzM5ZTYxMTA0My5kMmRkYjRjM2ZjZTUxZjc0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwNzE4NWUwNTkuZmZmZmZmZmY5MWEyZTNmYworICAgIDExODQ5NDNlZjg1MDg1MGUuYTZhZDdlYzk5OTIxOTljMi5jODUyMzc3NWZlYjMxOGE1LjIyOGI0OWQwNTc1ZmZhMGYKICAgICBhN2QxYTZjMDNmNDhiODdkLjBiZThlZTE1YTIxNTkxMzEuODI4MTI0NTI3MmRiNzhlZi5iZmQ5OWJlYzY3OWRhZTc2CiAgICAgMDQxNGE2ODMwZjJhNzg1OAogCi1WUElOU1JCXzEyOF8yb2YzKHJlZykKK1ZQTU9WU1hXRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA0ZDg4NjcwMWVjOTI5NDVmLjlhNzRkZGJlODQ2ODlkNTYuMDZmNmQ0ZDI1MWRlN2NiMC5lYjVmYjlmNTE0ZTZlYzRkCiAgICAgZjU4MWQ5ZDI5OTYxM2QzNy5jNjM4YjcyNWUzYmNmMmM2LmYzMjMyZTZkNDIwODk3ZWEuZTBiOTcyNGEwMmRmMzJlZApAQCAtMjE1NTIsMTIgKzIxNTUyLDEyIEBACiAgICAgZDczMWMwMWVkNTY2MjkwZC4zYTU3NDJkYTVjMzNkNjFhLjE0MDkyYmU4NWRiMTRjNDEuZDkxMDQxYmEzMWNjMWY5ZAogICAgIDk2YTY0ZmFkYWFkODNmMDYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjMyMzJlNmQ0MjA4OTdlYS5lMDA2NzI0YTAyZGYzMmVkCi0gICAgZjU4MWQ5ZDI5OTYxM2QzNy5jNjM4YjcyNWUzYmNmMmM2LmYzMjMyZTZkNDIwODk3ZWEuZTBiOTcyNGEwMmRmMzJlZAorICAgIDRkODg2NzAxZWM5Mjk0NWYuOWE3NGRkYmU4NDY4OWQ1Ni4wNmY2ZDRkMjUxZGU3Y2IwLmViNWZiOWY1MTRlNmVjNGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDNiNWJmZmZmY2MzZC4wMDAwNThkMjAwMDAwNGY4CiAgICAgNWE0YWY4NjNiMjI0YjA4ZC4wOGVhYWZkZjc3NTE3MWY5LjJmYmJmNzUwMTIyMDFlOGMuM2I1YmNjM2Q1OGQyMDRmOAogICAgIGQ3MzFjMDFlZDU2NjI5MGQuM2E1NzQyZGE1YzMzZDYxYS4xNDA5MmJlODVkYjE0YzQxLmQ5MTA0MWJhMzFjYzFmOWQKICAgICA5NmE2NGZhZGFhZDgzZjA2Ci1WUElOU1JCXzEyOF8yb2YzKG1lbSkKK1ZQTU9WU1hXRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA0ZWU3NzIwMmRlMDIxZjVmLmM3ODAyZTcxOWJiNGU0NjIuMzk0OWVhMDFhZjZjZGY1Ni5mZjViYzZhMmJlNDc1ZmI2CiAgICAgZGRhMTI0YTZlYTU2N2NkNi44ODg0M2NjN2EyOTkxYzM5LmUxOGMyNTNmOGIwYTQ2ZDguNGNmYmM1ZTlkMTZmOTA5NwpAQCAtMjE1NjYsMTIgKzIxNTY2LDEyIEBACiAgICAgMTdhZGVjNDM1MmM2M2M3NgogICBhZnRlcgogICAgIDRlZTc3MjAyZGUwMjFmNWYuYzc4MDJlNzE5YmI0ZTQ2Mi4zOTQ5ZWEwMWFmNmNkZjU2LmZmNWJjNmEyYmU0NzVmYjYKLSAgICBkZGExMjRhNmVhNTY3Y2Q2Ljg4ODQzY2M3YTI5OTFjMzkuZTE4YzI1M2Y4YjBhNDZkOC40Y2ZiYzVlOWQxNmY5MDk3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUxOGMyNTNmOGIwYWI2ZDguNGNmYmM1ZTlkMTZmOTA5NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmY1YmZmZmZjNmEyLmZmZmZiZTQ3MDAwMDVmYjYKKyAgICAxZjllZTM4M2U5ZTExMjk0Ljc1ODllODhiODZhMTBlM2UuMGRlZTZlODIwZDE4YzhjZC41NzM2MjMyODMzYjQxZThmCiAgICAgZWZhYjI5ODZmN2FmOWNjOC5lOWRiMmQyYmUyNTlmNjFjLjliM2E0MWI1NTBhMzIxNjEuN2M1OGRjY2Q3ZmEyNDM0YgogICAgIDE3YWRlYzQzNTJjNjNjNzYKIAotVlBJTlNSQl8xMjhfMm9mMyhyZWcpCitWUE1PVlNYV0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODQ4MDUwZjY0N2FiNDViZC4yYjkzNzQ5YzMxY2FkODljLjQyYzYwODEyNTI0YzBmN2YuNjYzYjFiYzQ3MWI2MGNiZgogICAgIDFmMWYwMjUyZmJkZTlhY2MuYWUyNDQwYjBiMjQwODAzYy5kYTk1NzNhYzczMDY5NjE1LjRhYmU3NjliOGI1ZDQ2MTQKQEAgLTIxNTc5LDEyICsyMTU3OSwxMiBAQAogICAgIDRmZWM0NWI2MGQ1YTE2ZjAuZjk2ZDQ3ODJmYzZiMDY5My4zYjEzZWVhYTM2MDFkZTg0LmNkN2FhNDUyMWM5OTk3NTEKICAgICAyMzRiNmYwYWNhNDUyNTkxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRhOTU3M2FjNzMwNjk2MTUuNGE5MTc2OWI4YjVkNDYxNAotICAgIDFmMWYwMjUyZmJkZTlhY2MuYWUyNDQwYjBiMjQwODAzYy5kYTk1NzNhYzczMDY5NjE1LjRhYmU3NjliOGI1ZDQ2MTQKKyAgICA4NDgwNTBmNjQ3YWI0NWJkLjJiOTM3NDljMzFjYWQ4OWMuNDJjNjA4MTI1MjRjMGY3Zi42NjNiMWJjNDcxYjYwY2JmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAyMzhmZmZmZmQwMjcuZmZmZmJiYTVmZmZmOGI4YgogICAgIDQ0ZDQwMGM0MDllOTc2NGUuNTQyOTA3YWU5NzFkNTBkNS4wZTk2NmM2NmUxMTRjNzg4LjIzOGZkMDI3YmJhNThiOGIKICAgICA0ZmVjNDViNjBkNWExNmYwLmY5NmQ0NzgyZmM2YjA2OTMuM2IxM2VlYWEzNjAxZGU4NC5jZDdhYTQ1MjFjOTk5NzUxCiAgICAgMjM0YjZmMGFjYTQ1MjU5MQotVlBJTlNSQl8xMjhfMm9mMyhtZW0pCitWUE1PVlNYV0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDNjZGFiMzllM2I2ZjI3OS45Y2IzY2U5NWE0YmRiNjVkLjc4YmQ3YjE4ZmMzODVjYTEuYmI1OWY1ZTUxMTU5MTZiNgogICAgIDQ4Y2VkNmNkODBmN2I5MzIuODY3NTk1Y2U2YTlkOTE0Mi5hZmU1MWY1Y2IzOTAwZjJjLmVjYjQ3ZTg0MGNhOGFjY2EKQEAgLTIxNTkzLDEyICsyMTU5MywxMiBAQAogICAgIDM0M2FmN2VhZDdkYmY4MDYKICAgYWZ0ZXIKICAgICAwM2NkYWIzOWUzYjZmMjc5LjljYjNjZTk1YTRiZGI2NWQuNzhiZDdiMThmYzM4NWNhMS5iYjU5ZjVlNTExNTkxNmI2Ci0gICAgNDhjZWQ2Y2Q4MGY3YjkzMi44Njc1OTVjZTZhOWQ5MTQyLmFmZTUxZjVjYjM5MDBmMmMuZWNiNDdlODQwY2E4YWNjYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hZmU1MWY1Y2IzOTBiNjJjLmVjYjQ3ZTg0MGNhOGFjY2EKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmJiNTlmZmZmZjVlNS4wMDAwMTE1OTAwMDAxNmI2CisgICAgY2UxODZiYjBiZjE0MzhlYi42YjdlOThjYmZhODZlNDRhLjc5YjFhZjNhM2U3ZGRhNjAuMjg3MDg0ZjFjMzdiZGM2YgogICAgIDcwNzhlNmQwYmMxYTI5Y2QuYTYxOWQyZmFmMDA0ZWIyMy5iMWVkYTg5ZWI4MGQ3YTY4LmNjZDgwMjlhZDM1ZWUxNDYKICAgICAzNDNhZjdlYWQ3ZGJmODA2CiAKLVZQSU5TUkJfMTI4XzJvZjMocmVnKQorVlBNT1ZTWFdEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGJkZTA1YzRjNmI4MTVkNTguMGNiYWMzMTg5MTE0NDkwNy45Mzk0M2ZjNmU5YTRlMTc2LjM1NjQ4NTc1M2U0Y2FiNzEKICAgICBjMTE3MmUyZTJkZDk0Y2U4LjdjYWE3Zjc0NWQwZjUzYzMuOGQzOWRjOWI4MWYyMDRmMi5lMGU0YzJhOWViNDUyOWE2CkBAIC0yMTYwNiwxMiArMjE2MDYsMTIgQEAKICAgICBhZDY4MGIxZmE0ZDRiNjcwLjRjYzM4MTE5NDQzNDE5NzMuMWQzNDkyMTBmYmM0YmIwZi4xYTJhNGNkYzJjOTVmYjQ2CiAgICAgNjE4OTkyYjNmNzA1YzYwOQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZDM5ZGM5YjgxZjIwNGYyLmUwMDljMmE5ZWI0NTI5YTYKLSAgICBjMTE3MmUyZTJkZDk0Y2U4LjdjYWE3Zjc0NWQwZjUzYzMuOGQzOWRjOWI4MWYyMDRmMi5lMGU0YzJhOWViNDUyOWE2CisgICAgYmRlMDVjNGM2YjgxNWQ1OC4wY2JhYzMxODkxMTQ0OTA3LjkzOTQzZmM2ZTlhNGUxNzYuMzU2NDg1NzUzZTRjYWI3MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmOGQzN2ZmZmZkYjI4LmZmZmZkYjA0ZmZmZmFmMzQKICAgICA5ZDJiNmFmYmI2NzEwMDYxLjllMTQ5NWQwM2ExNTA1MmUuZjI1NWEzZTU1Mzc4OGU0MS44ZDM3ZGIyOGRiMDRhZjM0CiAgICAgYWQ2ODBiMWZhNGQ0YjY3MC40Y2MzODExOTQ0MzQxOTczLjFkMzQ5MjEwZmJjNGJiMGYuMWEyYTRjZGMyYzk1ZmI0NgogICAgIDYxODk5MmIzZjcwNWM2MDkKLVZQSU5TUkJfMTI4XzJvZjMobWVtKQorVlBNT1ZTWFdEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDQwMWYyODk4NWE1ZmNmYTkuNGQxYTBkMDc5MzhlYWFjMC42NDg0YmYzOTk4Nzg0YmJmLjY5MjFhNDg4MTY2MWM5MDkKICAgICA5MWJhOGE3NzcxYWZkMDUxLmQ5OGM2ZDFkMWUyYzE4ZmUuYzAyNGNjMWQ1MWVjNTkzZC4zNDZhZDZiOTNmZGNmMmRiCkBAIC0yMTYyMCwxMiArMjE2MjAsMTIgQEAKICAgICAxZjVkZmRkYjJhZjQ2YzE2CiAgIGFmdGVyCiAgICAgNDAxZjI4OTg1YTVmY2ZhOS40ZDFhMGQwNzkzOGVhYWMwLjY0ODRiZjM5OTg3ODRiYmYuNjkyMWE0ODgxNjYxYzkwOQotICAgIDkxYmE4YTc3NzFhZmQwNTEuZDk4YzZkMWQxZTJjMThmZS5jMDI0Y2MxZDUxZWM1OTNkLjM0NmFkNmI5M2ZkY2YyZGIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzAyNGNjMWQ1MWVjMDkzZC4zNDZhZDZiOTNmZGNmMmRiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDA2OTIxZmZmZmE0ODguMDAwMDE2NjFmZmZmYzkwOQorICAgIDMxMjQzNDNjNTcwMjg2MmUuYWQwYjI1Y2VlMTM5M2JkNi4zZTZkMjJiMjhjOWNmZDFhLmQ4NTkyMjBmMTNjMDczMzAKICAgICBmZDJiYTNkMzI4NjNhZDZjLjI1ZTQzMzg3Nzk0MTUwZjMuYjgyYjNmZTI2NDk0ZjQ4Mi5iMzNjODZmNzJkOTk4N2I1CiAgICAgMWY1ZGZkZGIyYWY0NmMxNgogCi1WUElOU1JCXzEyOF8zb2YzKHJlZykKK1ZESVZQU18xMjgocmVnKQogICBiZWZvcmUKICAgICA3YTA5ODMyOWE1NWM1Y2ZlLmNmOTk1MjI4MDFkZjAxMzYuOWQ2MTkyYjI4MmQxOTIwMi4wYjJjOWU5YmY2ZTFmOWEwCiAgICAgMWU4YzE1NGMzYjVkOTMxOS44NDNiYmQyN2ZkODEzZGI4LjcxY2YzZmJkOTc3NDNmYWUuMTQzYmJjYzg1ZDhlY2FhMQpAQCAtMjE2MzMsMTIgKzIxNjMzLDEyIEBACiAgICAgYjU0NjQ5YzAyNTViY2E5Yi4wODRhYjdkNGQxNjc1Zjk3LjlkYWQ2ZjIwNTYyNWM1OTAuYjNiMTIxMmUxYzNhYmJmYgogICAgIDAyYjE2MTNmYWI1MDUzYWIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzFjZjNmYWI5Nzc0M2ZhZS4xNDNiYmNjODVkOGVjYWExCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmODAwMDAwODBiYzk4ODIuYTAwN2FhNjM3ZjgwMDAwMAogICAgIDFlOGMxNTRjM2I1ZDkzMTkuODQzYmJkMjdmZDgxM2RiOC43MWNmM2ZiZDk3NzQzZmFlLjE0M2JiY2M4NWQ4ZWNhYTEKICAgICA2OTMxYWRiMDg3ODM0ZjE1LmY5ZGQ2MGJkMzk1NTFlMjAuZmQ3OTM0MTM1NGI3OTFhNC5hZDIzMTM1NWI2YTgyMWIxCiAgICAgYjU0NjQ5YzAyNTViY2E5Yi4wODRhYjdkNGQxNjc1Zjk3LjlkYWQ2ZjIwNTYyNWM1OTAuYjNiMTIxMmUxYzNhYmJmYgogICAgIDAyYjE2MTNmYWI1MDUzYWIKLVZQSU5TUkJfMTI4XzNvZjMobWVtKQorVkRJVlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDc3ZWY1MDc0ODBmNmE2ZWYuNWYxNWU0ZWFiMjcxNDE1YS44ZTUwM2Y1YWRmYzRiZTRjLmFkYjVlYjUwMzg0YTE2MWQKICAgICBlYzM3NjhiOWI3Mzk3MGYwLmM0ZWI3YTlhY2E0ZmVmZmMuNjdiOTczM2E4Mjc3ZjU2OS44OGRmYTQwZjk3YjJjMWY4CkBAIC0yMTY0OCwxMSArMjE2NDgsMTEgQEAKICAgYWZ0ZXIKICAgICA3N2VmNTA3NDgwZjZhNmVmLjVmMTVlNGVhYjI3MTQxNWEuOGU1MDNmNWFkZmM0YmU0Yy5hZGI1ZWI1MDM4NGExNjFkCiAgICAgZWMzNzY4YjliNzM5NzBmMC5jNGViN2E5YWNhNGZlZmZjLjY3Yjk3MzNhODI3N2Y1NjkuODhkZmE0MGY5N2IyYzFmOAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZGI5NzMzYTgyNzdmNTY5Ljg4ZGZhNDBmOTdiMmMxZjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmY4MDAwMDAwMDAwMDAwMC4xYTlkNWIxMjllZTI3Mjk0CiAgICAgNDkxNDA4MjRiOGM0NThlMC4yYWRjODkzNzA4OTllNDliLjgzZTdjZmI3ZjExMWRkOGQuMTRjNGJlZWEzYTdkMTU0NgogICAgIDdjMTcxN2RlYjZmODM1MTIKIAotVlBJTlNSQl8xMjhfM29mMyhyZWcpCitWRElWUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMWZiYzlkMTIxZmU2YTBkYi5lOTQxODcyMWJiMjRlZTI1LmU0OGZmOWZkNjcxYmEyZjAuN2Q0NGYwMmRmNTBmMDZlYwogICAgIDViZmU0Y2YwMTBkMzhmNGQuZmFhOTIwZGY5MDUwZWJkYS5jODc4NTRmOWMxOTg4N2Q4LjNhMzVhY2FkZmQ5NGY4NjMKQEAgLTIxNjYwLDEyICsyMTY2MCwxMiBAQAogICAgIDBhODcxNjVmZmNkYmYwZTAuZGY1NDkxNGExZDNlMDkzZS43ZjIwYmMzZmQzYWNiOTE0LjZkMDJlYTdjODg2MDI2NGMKICAgICA5Yjc2NjRhMjQzYzBkYTE1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM4Nzg1NDE1YzE5ODg3ZDguM2EzNWFjYWRmZDk0Zjg2MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44OGM1YzFiNjJkNjIxMjc2LjBjYjFhMGM0N2Y4MDAwMDAKICAgICA1YmZlNGNmMDEwZDM4ZjRkLmZhYTkyMGRmOTA1MGViZGEuYzg3ODU0ZjljMTk4ODdkOC4zYTM1YWNhZGZkOTRmODYzCiAgICAgOGIyODIxZTYyNjRiNDExNi41ODE2NTA0OTUxNTUwYTI4LjMzZTU5Njk1YjA5OWQwMDAuOTY4NjgxMjMyNWFiNmYxZgogICAgIDBhODcxNjVmZmNkYmYwZTAuZGY1NDkxNGExZDNlMDkzZS43ZjIwYmMzZmQzYWNiOTE0LjZkMDJlYTdjODg2MDI2NGMKICAgICA5Yjc2NjRhMjQzYzBkYTE1Ci1WUElOU1JCXzEyOF8zb2YzKG1lbSkKK1ZESVZQU18xMjgobWVtKQogICBiZWZvcmUKICAgICBmY2FlNjk4MzcxZDU0N2E2LjM2NjcyOWM2MmUwZmQ5NTcuNmIzMTYxZDAwZTE3YTI0Ni4wOTc2YzE2MmM0NWM3ZWJmCiAgICAgNmI3Njc3MDkyZWFlMjgyZC42OTE0NTY4OTU5NzEzODI4LmQ4NzgzY2M2NDBlZDkxNmMuMmQzM2ExNmExZjM1NWFhZQpAQCAtMjE2NzUsMTEgKzIxNjc1LDExIEBACiAgIGFmdGVyCiAgICAgZmNhZTY5ODM3MWQ1NDdhNi4zNjY3MjljNjJlMGZkOTU3LjZiMzE2MWQwMGUxN2EyNDYuMDk3NmMxNjJjNDVjN2ViZgogICAgIDZiNzY3NzA5MmVhZTI4MmQuNjkxNDU2ODk1OTcxMzgyOC5kODc4M2NjNjQwZWQ5MTZjLjJkMzNhMTZhMWYzNTVhYWUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmY3ODNjYzY0MGVkOTE2Yy4yZDMzYTE2YTFmMzU1YWFlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFjYjMyMTMwNzI0ODhhNTQuNjMzYTVjM2U5YTUyOGU3OAogICAgIGU4ZTY5Y2I4YzhkNTNhYzcuNTgwNGU5ZDAwOWY0NDc4Ny5jNTcyZmZiM2Q5YmQ2NWM1LmIzMTFlMmQ5ODU5NDRhMDYKICAgICBjZGNiM2MxOGM3MzFkNmM4CiAKLVZQSU5TUkJfMTI4XzNvZjMocmVnKQorVkRJVlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGYxMWI2MWVjZTUyODY5N2QuYWQyNWFhYjlkYzNkZTEzNC5jY2RmNDkyY2M1MmQ2ZTZkLmZjYmVlMDgxNzdkMGMwNTAKICAgICA3YjRlNGRjMTc4MDQ0MGQyLmYxMjRiMTEwZWY5NmVlNDQuYjdiOGIyOTRlYWM1ZmM1Yy44NWE0YmI2ZmM4MGY2M2E5CkBAIC0yMTY4NywxMiArMjE2ODcsMTIgQEAKICAgICAzMDhkNmIxZjczOWRhOTBhLjY1OTM5NzcwODQ1MTI0MDQuNjY4ZjkwMzNkZDQzMzgwOC5mYTZkNGY1Y2VjNDI2Yzc2CiAgICAgOWRlOTAxMzNmOTRlNGI0MwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iN2I4YjI0M2VhYzVmYzVjLjg1YTRiYjZmYzgwZjYzYTkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTBhNGFjZDA0ZDAxZDA2Zi4wMDAwMDAwMDFiM2NjZDZiCiAgICAgN2I0ZTRkYzE3ODA0NDBkMi5mMTI0YjExMGVmOTZlZTQ0LmI3YjhiMjk0ZWFjNWZjNWMuODVhNGJiNmZjODBmNjNhOQogICAgIGM2YjBmYzA0MWU1Mjk2NzIuOGZiMDJjYTkxZWVlMWIyNi43NmQ5MjE3MjEzNDgyYjAyLjNiZjAwYzZhZTU4NjA4ZmMKICAgICAzMDhkNmIxZjczOWRhOTBhLjY1OTM5NzcwODQ1MTI0MDQuNjY4ZjkwMzNkZDQzMzgwOC5mYTZkNGY1Y2VjNDI2Yzc2CiAgICAgOWRlOTAxMzNmOTRlNGI0MwotVlBJTlNSQl8xMjhfM29mMyhtZW0pCitWRElWUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDIyZTlkZGEyN2I2NjA4ZS4xNDMxOTU4MDEyNzFiMzQ1LjRlOTk2ZTUxM2VjYWM3MGEuZTEyNWZkNDRlMzQxNWYxYwogICAgIDA0MDk5ZjNjOTI4NzY4ODQuY2VlNzc2OTE5NzVhZjFkMS4yNjkwMmUzOTY3NjViZTY1LjQ0ZTk2MzEwYzJjZWRjZWEKQEAgLTIxNzAyLDExICsyMTcwMiwxMSBAQAogICBhZnRlcgogICAgIDAyMmU5ZGRhMjdiNjYwOGUuMTQzMTk1ODAxMjcxYjM0NS40ZTk5NmU1MTNlY2FjNzBhLmUxMjVmZDQ0ZTM0MTVmMWMKICAgICAwNDA5OWYzYzkyODc2ODg0LmNlZTc3NjkxOTc1YWYxZDEuMjY5MDJlMzk2NzY1YmU2NS40NGU5NjMxMGMyY2VkY2VhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFjOTAyZTM5Njc2NWJlNjUuNDRlOTYzMTBjMmNlZGNlYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNzcwOTBkNDY4MTEwNWEyLmEzMzNmOGZkMWYwOGVlMzUKICAgICA0ZWIxYzZlNjkyOTE0MTIwLjMzYmQ0ZDc4YzY5ZGY3ODYuMTI3ZDU2Y2E3ODMyOWJjOS4zMzI3MGE4ODc5YzdjNjYzCiAgICAgNzYzOTQ0MGQ4OTRhYWI2NQogCi1WQ09NSVNEXzEyOChyZWcpCitWQU5EUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMTFhODY2ZmRlMjhkZDdkMi40ZTE2ZTMwNTVkZTM4OTFkLjk3NzQzYzI1YTcwZjM4MDguZGUwYmI2NGI5ODdjZjgyYQogICAgIDYwYzA2ZWM0MWYxYjg0NTMuNWM0MDU2OTFkN2NkYjQ3Ni40MTZlZDIzM2RlYzY5ZDg5LjBhYjllZTgzOTcxODliOTAKQEAgLTIxNzE0LDEyICsyMTcxNCwxMiBAQAogICAgIDhhMWExZTg4YjY0OTUzNDguMGUxNzJmOWI0MjlhYTJlNi5kNjVhZTMyMmMwMzRjMjNiLmVlYTVkOGM0YTM3ODlkMTgKICAgICA1ZTdiODFhNmU5NTQ3NTk0CiAgIGFmdGVyCi0gICAgMTFhODY2ZmRlMjhkZDdkMi40ZTE2ZTMwNTVkZTM4OTFkLjk3NzQzYzI1YTcwZjM4MDguZGUwYmI2NGI5ODdjZjgyYQorICAgIDIwYzA0OGM0MWMwMDg0MTMuNTA0MDE0MTAxMjRjMzQ1NC4wMDY2MDIwMjA4NDYwMDgwLjAwMTE2YTAxOTExMDE5MDAKICAgICA2MGMwNmVjNDFmMWI4NDUzLjVjNDA1NjkxZDdjZGI0NzYuNDE2ZWQyMzNkZWM2OWQ4OS4wYWI5ZWU4Mzk3MTg5YjkwCiAgICAgYmZjYzU4Y2VkYzgwZWU5Ny41MmZjOWM3NDFhNWM3ZTU1LjhjZjcwYjBlMDg0ZTYyYjYuNzA1MzdiNWQ5MTEzM2QyNgogICAgIDhhMWExZTg4YjY0OTUzNDguMGUxNzJmOWI0MjlhYTJlNi5kNjVhZTMyMmMwMzRjMjNiLmVlYTVkOGM0YTM3ODlkMTgKLSAgICAwMDAwMDAwMDAwMDAwMDAxCi1WQ09NSVNEXzEyOChtZW0pCisgICAgNWU3YjgxYTZlOTU0NzU5NAorVkFORFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDllYTBmMmVlN2ViMTgyYzMuMWRmNGJlNWM0OTAxZWQxMi42YTViOGRmMzZjOTVkZDU2Ljc5ZTU1N2RjYTMwM2ZhYzMKICAgICA4OGUxYTg4ODdlOWU4MGQ0LmQ0YTczMmI4MzAzNWY5YTMuNDQ5NDMxNjZiMzU5ZWJkMS5kM2UyNjJhNjRjNDc0NWZiCkBAIC0yMTcyOSwxMSArMjE3MjksMTEgQEAKICAgYWZ0ZXIKICAgICA5ZWEwZjJlZTdlYjE4MmMzLjFkZjRiZTVjNDkwMWVkMTIuNmE1YjhkZjM2Yzk1ZGQ1Ni43OWU1NTdkY2EzMDNmYWMzCiAgICAgODhlMWE4ODg3ZTllODBkNC5kNGE3MzJiODMwMzVmOWEzLjQ0OTQzMTY2YjM1OWViZDEuZDNlMjYyYTY0YzQ3NDVmYgotICAgIGY5MGExZTYxMDYyNDJhZjEuMGI3Zjc5MDYwNzcwYjNhNC43NjkwOTdlMjM0ZjE4ODgyLjNlOWUwMGVlNTg4Y2UwOGYKKyAgICA4OGEwYTA4ODdlOTA4MGMwLjE0YTQzMjE4MDAwMWU5MDIuNDAxMDAxNjIyMDExYzk1MC41MWUwNDI4NDAwMDM0MGMzCiAgICAgY2VlN2NmNjMzMjUxM2U0Ny4xZWM4OGNiNDZiM2U1NmM0LmRkMWEzYjUyMGE2OTZmOTYuMTg2NTJkMWU2MjVmMDcyYQotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICBiYjgzZTVhNDA3NGNmNjc4CiAKLVZDT01JU0RfMTI4KHJlZykKK1ZBTkRQU18yNTYocmVnKQogICBiZWZvcmUKICAgICA4NDQ0MjVlYmUyZGRlOTI3LmUxNDQzYTdiMWMzMDc2MDEuNjljZTY4MmRmODJiMWZhZC41NmZkOWFhMjUxY2Q1ZDM4CiAgICAgZDBmM2U4NWY4ZmEwMWJlMC4wZmVkZDg5NmUzY2U4ZTRjLjQ4ZGQwYWRjNDhjNDRhMGIuYmIwNjJmYmUyNjJhMGU5NQpAQCAtMjE3NDEsMTIgKzIxNzQxLDEyIEBACiAgICAgNWM0ZmU3N2VkMmVhMmUyNy4yYzUyYTI4MTcyNzQ1MjQzLjMyNDQ4ZDkxYTcyOGI1ZDkuYmNiYWViMGFlOWZkYTgyZgogICAgIDEwZmQwYTEyMGY4YjA5YzQKICAgYWZ0ZXIKLSAgICA4NDQ0MjVlYmUyZGRlOTI3LmUxNDQzYTdiMWMzMDc2MDEuNjljZTY4MmRmODJiMWZhZC41NmZkOWFhMjUxY2Q1ZDM4CisgICAgZDBkMTI4NGM4YjIwMDk0MC4wNGFkMDA5NmExMDQwMjQwLjAwNDAwODBjNDg4NDAyMGIuYTkwMDI2OTIyNDBhMGM5MQogICAgIGQwZjNlODVmOGZhMDFiZTAuMGZlZGQ4OTZlM2NlOGU0Yy40OGRkMGFkYzQ4YzQ0YTBiLmJiMDYyZmJlMjYyYTBlOTUKICAgICBmOWRkMmE2Y2FiMjFjOTUyLjM0YWQyNzlmYTEzNTQzNTMuMTc0MDZkMmZmYTk0MTI4Yi5lOTAxNzY5MmE1OGIzZGQ5CiAgICAgNWM0ZmU3N2VkMmVhMmUyNy4yYzUyYTI4MTcyNzQ1MjQzLjMyNDQ4ZDkxYTcyOGI1ZDkuYmNiYWViMGFlOWZkYTgyZgotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZDT01JU0RfMTI4KG1lbSkKKyAgICAxMGZkMGExMjBmOGIwOWM0CitWQU5EUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYzE5NjUwOTYzMjQxMWNjNC41NjkzMWMwMTlmODk4ODBjLmQ0YTZjNTJhNzM5NDc0NDguZjUzNTY3NmZlZTBhNmRhMQogICAgIGFjNTAzODgzNmUyYzlmNWEuNDFmNWMzNjFhZThhMTFhYy4wNjc2MGM4NWJmYTM2ODhkLmJiNWZmNTMzNjhjOTc2OGQKQEAgLTIxNzU2LDExICsyMTc1NiwxMSBAQAogICBhZnRlcgogICAgIGMxOTY1MDk2MzI0MTFjYzQuNTY5MzFjMDE5Zjg5ODgwYy5kNGE2YzUyYTczOTQ3NDQ4LmY1MzU2NzZmZWUwYTZkYTEKICAgICBhYzUwMzg4MzZlMmM5ZjVhLjQxZjVjMzYxYWU4YTExYWMuMDY3NjBjODViZmEzNjg4ZC5iYjVmZjUzMzY4Yzk3NjhkCi0gICAgYWJmODNlYzNlMDU3NGNiMi43YWMzZGEwYjljNzcwNWI0LjlmOGVmMzdlNzNhY2U4M2YuZTIwZTM1NGFiNGVlMGU0YworICAgIDgwMTAxMDgyMjIwMDFjNDAuNDA5MTAwMDE4ZTg4MDAwYy4wNDI2MDQwMDMzODA2MDA4LmIxMTU2NTIzNjgwODY0ODEKICAgICA5YjViZGU0NGEzY2VkZmY5LjVkNDg1YzY5MDVkZWEyY2YuN2JiYWY3MDFhYWJjYjE4OS5jNThlMjIyMTZiMDc2Zjg4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMAorICAgIGJmMmFiODIyMmI5ZmQ2ZWUKIAotVkNPTUlTRF8xMjgocmVnKQorVkFORFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDJlMzBmNGJiOTA0MzdlMjkuNTg0Mzk1ZjFkNDlkMTY1Yi40NmNmNDZlOTgzNGIyMmFhLjc2YzU5M2ZhODBkZTdmOTgKICAgICA2ZGVhZDE1NjM1N2VhNWU2LmJlN2NkZWI1OGVkMWFiMDQuOTJhNTkyZjViNTQ5YzJmMS42YzdjNDM1NTEyMWUwZDk4CkBAIC0yMTc2OCwxMiArMjE3NjgsMTIgQEAKICAgICBjYWFkNWU0N2IxZTk1YTk1LmY0MTYxNjM3MTA5NmUyZDguYmU2ZTQ1NjY5ZjI4NTE3MS5iOTFmZDBlMmQ5MmE1YzE5CiAgICAgYzhhMmE1ZWM0NTBkOTRmMgogICBhZnRlcgotICAgIDJlMzBmNGJiOTA0MzdlMjkuNTg0Mzk1ZjFkNDlkMTY1Yi40NmNmNDZlOTgzNGIyMmFhLjc2YzU5M2ZhODBkZTdmOTgKKyAgICA0NWEwNDA0MDM1NWM4NGMwLmE4NTQxNDM0OGU1MDBiMDQuOTIwNDEyZjEzNTQwODI0MS4yODJjMDA1NTEwMDgwODkwCiAgICAgNmRlYWQxNTYzNTdlYTVlNi5iZTdjZGViNThlZDFhYjA0LjkyYTU5MmY1YjU0OWMyZjEuNmM3YzQzNTUxMjFlMGQ5OAogICAgIGQ3YTU0YTYxYjdkYzg0ZDEuYTlkNDM1N2VlZTc2NWIxZS45YjE2M2VmYjM1NjRiZTRmLjM5YWM4NGZmN2M4OTE4YjQKICAgICBjYWFkNWU0N2IxZTk1YTk1LmY0MTYxNjM3MTA5NmUyZDguYmU2ZTQ1NjY5ZjI4NTE3MS5iOTFmZDBlMmQ5MmE1YzE5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMAotVkNPTUlTRF8xMjgobWVtKQorICAgIGM4YTJhNWVjNDUwZDk0ZjIKK1ZBTkRQU18yNTYobWVtKQogICBiZWZvcmUKICAgICA0MTAxN2UwN2RkM2Y3ZTZjLmEwNGQwNjc0YmYzMjYyZGUuN2QwZGZkY2MwZTNmZmI1Yy41N2Y5YTNhMjkwMjJiODAyCiAgICAgMDIwN2Q3MjFiZGNiZDNiMy5iN2QzNDA1NDdlNDNkNzVhLjFmODY2NzJhMDY3ZDYzZDcuYzIwMzU1MWJhM2RkMmZhZgpAQCAtMjE3ODMsMTEgKzIxNzgzLDExIEBACiAgIGFmdGVyCiAgICAgNDEwMTdlMDdkZDNmN2U2Yy5hMDRkMDY3NGJmMzI2MmRlLjdkMGRmZGNjMGUzZmZiNWMuNTdmOWEzYTI5MDIyYjgwMgogICAgIDAyMDdkNzIxYmRjYmQzYjMuYjdkMzQwNTQ3ZTQzZDc1YS4xZjg2NjcyYTA2N2Q2M2Q3LmMyMDM1NTFiYTNkZDJmYWYKLSAgICBlNjgyMmQyNTAwYmQ1MmYyLjY5ODkwNjUzODlhNmY2YjIuYjY0ZGNmM2IxNDVhZDY3NC41YmQ3NTYzZDc0ZTVmMTI0CisgICAgMDAwMTU2MDE5ZDBiNTIyMC5hMDQxMDA1NDNlMDI0MjVhLjFkMDQ2NTA4MDYzZDYzNTQuNDIwMTAxMDI4MDAwMjgwMgogICAgIGM5M2NmYmZmYzIyMmI2NTUuMTNiYzU2ZGU3ZGU5ZmE5NS4xZTJlYjFlYzUzZTQxMDYwLjdkYzNhMTc0YTFjNzNiMGMKLSAgICAwMDAwMDAwMDAwMDAwMDAxCisgICAgODYxMTM1MmRjMzBlNDkxNAogCi1WQ09NSVNTXzEyOChyZWcpCitWWE9SUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZDEwZTBiZDI3ODQ3NTdlNy44NzAyYmQ5YjIwMDViYTBhLjEyYjkyYzVmZjY5ODIxYWQuMzNmNTg5MmFlMDI3Y2NjNwogICAgIGJhMDUyMWQwNWNmZGEwMzIuZmJhMGVmZTUzNTcyMWEzYi5jMGM5ODI0MzhlM2RhNWE3LmQwNmRkNGRmZDYyZGM3ZDQKQEAgLTIxNzk1LDEyICsyMTc5NSwxMiBAQAogICAgIGQ2MTZmOTg5MWUxMGQ2ZGYuN2E5NDk0MzNmNjFjZTJjMi45ZDVhYTNlNTkxOWZiNmVmLjE3YTRiMDYzNmViODY5OTIKICAgICA3N2ZhMzkwODQ5NTM4ODliCiAgIGFmdGVyCi0gICAgZDEwZTBiZDI3ODQ3NTdlNy44NzAyYmQ5YjIwMDViYTBhLjEyYjkyYzVmZjY5ODIxYWQuMzNmNTg5MmFlMDI3Y2NjNworICAgIDI3NDE1MDQ0NTY0MWMyOTIuZjg0MmUyMmMyYjA0OGUyZi5iYWYyZDRiNDZhNWI2Nzg5LjAzMDlkOTI2ODcyOTdiNjAKICAgICBiYTA1MjFkMDVjZmRhMDMyLmZiYTBlZmU1MzU3MjFhM2IuYzBjOTgyNDM4ZTNkYTVhNy5kMDZkZDRkZmQ2MmRjN2Q0CiAgICAgOWQ0NDcxOTQwYWJjNjJhMC4wM2UyMGRjOTFlNzY5NDE0LjdhM2I1NmY3ZTQ2NmMyMmUuZDM2NDBkZjk1MTA0YmNiNAogICAgIGQ2MTZmOTg5MWUxMGQ2ZGYuN2E5NDk0MzNmNjFjZTJjMi45ZDVhYTNlNTkxOWZiNmVmLjE3YTRiMDYzNmViODY5OTIKLSAgICAwMDAwMDAwMDAwMDAwMDAxCi1WQ09NSVNTXzEyOChtZW0pCisgICAgNzdmYTM5MDg0OTUzODg5YgorVlhPUlBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGQxMzIyNGQ2ZmRlM2Q2ZmEuYzBjNmI1MWIzNTg2M2I5OC4zYjgxZmUxMGRhNzBjMTcxLjgzNzE2NTdiMzQ3MmJiOTUKICAgICBmZjE4ZWViOGE2NzQwZWRkLmI5YTE5ZmI1ZWJhOWNiN2EuMjQ3N2M5NGFlNTdmZWQ0Yy44OWNlOTgyNDY2NmQwZWNkCkBAIC0yMTgxMCwxMSArMjE4MTAsMTEgQEAKICAgYWZ0ZXIKICAgICBkMTMyMjRkNmZkZTNkNmZhLmMwYzZiNTFiMzU4NjNiOTguM2I4MWZlMTBkYTcwYzE3MS44MzcxNjU3YjM0NzJiYjk1CiAgICAgZmYxOGVlYjhhNjc0MGVkZC5iOWExOWZiNWViYTljYjdhLjI0NzdjOTRhZTU3ZmVkNGMuODljZTk4MjQ2NjZkMGVjZAotICAgIGRmNzgxMjliNjExMWVlNmQuMWNmM2I1YzVkYTA2YzMyZi4wZjQwNzFjZjM0NTQyMTgwLjBiYmIzOTRjYzUxY2VhNDMKKyAgICAyZTJhY2E2ZTViOTdkODI3Ljc5NjcyYWFlZGUyZmYwZTIuMWZmNjM3NWEzZjBmMmMzZC4wYWJmZmQ1ZjUyMWZiNTU4CiAgICAgNGIxZDBjNjk0OWM2MzBkOC40NDA4ZjJiNmExMjg1ZjYzLmRhYTk3MDg5ZTJmYjFiMzkuNjY4NTQyNWZlZDA5OGRhMgotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICBmNDc3YjFjOTc5YzIzMTk3CiAKLVZDT01JU1NfMTI4KHJlZykKK1ZYT1JQU18yNTYocmVnKQogICBiZWZvcmUKICAgICAxMmRmODJmNjA2ZDMxM2NkLjIxZDQ1ODBmN2I5ZjkwNGEuOGYyYzUyZjVkYTliZGFjMy41ZjdlNDQ2NjBiODE5NGEyCiAgICAgMWMwOGFmNTMyZmM3NmVmMS4zYjZhNzI3OTEzYTljY2VmLjU3YWJkMWVjMjFlYzcxZmIuN2M4YTY4NTFjZGYxNGJlOApAQCAtMjE4MjIsMTIgKzIxODIyLDEyIEBACiAgICAgNjRjYjEyNDhjNjg4ODJiMi5hZjVkMDI0YWUyN2VjMzgwLmQzZTgxZGI2NGI1NWUzYTEuZWE3YzkwMDE4NWMxNWViOQogICAgIGYzZjg4ZDllYjQzODMzOWMKICAgYWZ0ZXIKLSAgICAxMmRmODJmNjA2ZDMxM2NkLjIxZDQ1ODBmN2I5ZjkwNGEuOGYyYzUyZjVkYTliZGFjMy41ZjdlNDQ2NjBiODE5NGEyCisgICAgNzIzNTk5MTliZmVkMTE1ZS40Y2MzYTVlZDM4NDY1MjFkLmFkN2JiYWU0MzI0OTExNGQuNzcxMTMwNjc4Y2E5YjFkZQogICAgIDFjMDhhZjUzMmZjNzZlZjEuM2I2YTcyNzkxM2E5Y2NlZi41N2FiZDFlYzIxZWM3MWZiLjdjOGE2ODUxY2RmMTRiZTgKICAgICA2ZTNkMzY0YTkwMmE3ZmFmLjc3YTlkNzk0MmJlZjllZjIuZmFkMDZiMDgxM2E1NjBiNi4wYjliNTgzNjQxNThmYTM2CiAgICAgNjRjYjEyNDhjNjg4ODJiMi5hZjVkMDI0YWUyN2VjMzgwLmQzZTgxZGI2NGI1NWUzYTEuZWE3YzkwMDE4NWMxNWViOQotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZDT01JU1NfMTI4KG1lbSkKKyAgICBmM2Y4OGQ5ZWI0MzgzMzljCitWWE9SUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMDNkY2M5ZjllYmM5MzQwYy41YWZlM2ZiYTZkNmViM2E3LmMwNTQ2Zjg5NTE2MGY2YzQuM2QzZmUyNjA2Njg1MzU2OAogICAgIGY3ZjRjMmZmNDY4MTFmMzUuYWMyMmI5MGIyMDY3NGQzOS44NzU5OWIzYzk2YTRmNWViLjk1MjFiNjc0ZmZjMzkzYjYKQEAgLTIxODM3LDExICsyMTgzNywxMSBAQAogICBhZnRlcgogICAgIDAzZGNjOWY5ZWJjOTM0MGMuNWFmZTNmYmE2ZDZlYjNhNy5jMDU0NmY4OTUxNjBmNmM0LjNkM2ZlMjYwNjY4NTM1NjgKICAgICBmN2Y0YzJmZjQ2ODExZjM1LmFjMjJiOTBiMjA2NzRkMzkuODc1OTliM2M5NmE0ZjVlYi45NTIxYjY3NGZmYzM5M2I2Ci0gICAgYTkwY2Y0OWFlMDZiYWU0Mi5iNjgzN2NhNjdiZmY4ZDE1LmRlMzcwMDRmY2Q1MzdhMjAuMzhkYTk2NWNiMjliMzkzNworICAgIGY0MjgwYjA2YWQ0ODJiMzkuZjZkYzg2YjE0ZDA5ZmU5ZS40NzBkZjRiNWM3YzQwMzJmLmE4MWU1NDE0OTk0NmE2ZGUKICAgICBmNmVmZDliOGQ1OTQ5ZDYwLmQzNmM4NWY5MWJjM2FmZTcuYTJiYjFjYWUxMTdiNDI5MC44MGI2N2M4NjFkOTc2Mjk5Ci0gICAgMDAwMDAwMDAwMDAwMDA0NQorICAgIGNiMDA2NjVkZDk0NTRiODUKIAotVkNPTUlTU18xMjgocmVnKQorVlhPUlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDczMDY0ZjRkODQzMTMwYWEuYmE2YmVmNDM0MjA3YTliYS42MTJiY2Y2ZjliM2VlZjVhLmIwYjE2YTQ1N2YyNzA4NjcKICAgICBkNTEyMzRjMmJhZTU0ZGIyLmQxNGFiMDI5NDJkMDhmN2QuYmIwYTU2NzQ5OGZkODgxYi5lMmU1NjYwMDMyNjQ4OWQwCkBAIC0yMTg0OSwxMiArMjE4NDksMTIgQEAKICAgICAzODZmZGVlYzM0ZGIxZDFkLjY5NjQyOWIyNmQ5NWQzZWQuNDM1YjBjZGM3Nzc0YjgzNS4yNTM3NTk5M2Q4YmVhYzBhCiAgICAgZWVlYzQ4NDIwNGYzYzUzMwogICBhZnRlcgotICAgIDczMDY0ZjRkODQzMTMwYWEuYmE2YmVmNDM0MjA3YTliYS42MTJiY2Y2ZjliM2VlZjVhLmIwYjE2YTQ1N2YyNzA4NjcKKyAgICA5YjYzM2JlYWFjMGE5MGY4LmM5MTMyYjdjYjAyYjg3YTguODY1YzQxMDAzNTc2M2ZjZS5mN2M2ZWJjYjc0NTgwODI4CiAgICAgZDUxMjM0YzJiYWU1NGRiMi5kMTRhYjAyOTQyZDA4ZjdkLmJiMGE1Njc0OThmZDg4MWIuZTJlNTY2MDAzMjY0ODlkMAogICAgIDRlNzEwZjI4MTZlZmRkNGEuMTg1OTliNTVmMmZiMDhkNS4zZDU2MTc3NGFkOGJiN2Q1LjE1MjM4ZGNiNDYzYzgxZjgKICAgICAzODZmZGVlYzM0ZGIxZDFkLjY5NjQyOWIyNmQ5NWQzZWQuNDM1YjBjZGM3Nzc0YjgzNS4yNTM3NTk5M2Q4YmVhYzBhCi0gICAgMDAwMDAwMDAwMDAwMDAwMQotVkNPTUlTU18xMjgobWVtKQorICAgIGVlZWM0ODQyMDRmM2M1MzMKK1ZYT1JQU18yNTYobWVtKQogICBiZWZvcmUKICAgICA0YzBmZDVjNWU1ZTk4OTlmLmYwNTc5Yzc4YjEzMzQ5ZDguYTEzN2Q3MmVkMGE5YWFmMi4yODY1MzMxNjkxNDVjNmU2CiAgICAgMWI2ZDdkMDk5N2FiYjQ3OS5kMjc3NDUzYTI4ODU5ZDI2LjljOWUyMmI1MzY0NDRhMGYuNGFjMDg3OGY5ODg4MWU5NgpAQCAtMjE4NjQsMTEgKzIxODY0LDExIEBACiAgIGFmdGVyCiAgICAgNGMwZmQ1YzVlNWU5ODk5Zi5mMDU3OWM3OGIxMzM0OWQ4LmExMzdkNzJlZDBhOWFhZjIuMjg2NTMzMTY5MTQ1YzZlNgogICAgIDFiNmQ3ZDA5OTdhYmI0NzkuZDI3NzQ1M2EyODg1OWQyNi45YzllMjJiNTM2NDQ0YTBmLjRhYzA4NzhmOTg4ODFlOTYKLSAgICAzN2QwYmFmOTM3NDYwMWVlLjNhMTlkNTljMzY1ZDU0YjQuMzY2NTg1MzFiYjcxNmY3MS4wNGI3MDRiNDI3Y2NmY2VlCisgICAgNTc2MmE4Y2M3MjQyM2RlNi4yMjIwZDk0Mjk5YjZkNGZlLjNkYTlmNTliZTZlZGUwZmQuNjJhNWI0OTkwOWNkZDg3MAogICAgIDdjMDQwYTgxZTBjNTJlMjkuODQ4YjQ5MGM3NzQ1YWIyZS40YjU3N2M4ZjdkM2NkNDQ0LmIxOTdhN2VmZGE5YTliOWQKLSAgICAwMDAwMDAwMDAwMDAwMDAxCisgICAgYWZhZDZiYWU0ZTgwMzk0ZAogCi1WTU9WVVBTX1lNTV90b19ZTU1vck1FTShyZWcpCitWT1JQU18yNTYocmVnKQogICBiZWZvcmUKICAgICA1ODQzNGM1YzFmMDkxMGFhLmM2ZDdlODhjYWYzNGY1NTcuMGMxNzljZjQ4NWNjZGQzZi5iNzQxODRiYjk1YjIzNmIzCiAgICAgMGFhNTQ2NjVlOGMyNWM2MS5mMTE0ZDAwOGJmYTAxMmE0LjJlMGFjYWMyZmY3YjI4OTQuNTZlZjE3YTIyMWRlNTFlYgpAQCAtMjE4NzYsMTIgKzIxODc2LDEyIEBACiAgICAgZjUwMjc2MzhkM2YxNDc4Yy41YWZhYWYwMTE0OWM0MjQ5LmIwNTRhOGJkYTE4NmYzYjguOWNjN2QzNGQwNDg5YTE2NAogICAgIGZjODlmM2VhOTIyMDRkZmUKICAgYWZ0ZXIKLSAgICAwYWE1NDY2NWU4YzI1YzYxLmYxMTRkMDA4YmZhMDEyYTQuMmUwYWNhYzJmZjdiMjg5NC41NmVmMTdhMjIxZGU1MWViCisgICAgMWZhNTU3NzVlZGY2NWY3Zi5mOTk2ZmZlOWJmYjQ1M2JmLjZlYWZjZmUzZmZmYmVlZGMuNTZlZmI3YWUzZGRlZjFmZgogICAgIDBhYTU0NjY1ZThjMjVjNjEuZjExNGQwMDhiZmEwMTJhNC4yZTBhY2FjMmZmN2IyODk0LjU2ZWYxN2EyMjFkZTUxZWIKICAgICAxZjIxNTUzNTQ1MzY1YjFlLmQ5ODYzZmUxMmQxNDQzM2IuNDZhZmNmZTE3ZWUwYzZkOC4wNDJkYjMyZTNkY2NlMDE3CiAgICAgZjUwMjc2MzhkM2YxNDc4Yy41YWZhYWYwMTE0OWM0MjQ5LmIwNTRhOGJkYTE4NmYzYjguOWNjN2QzNGQwNDg5YTE2NAogICAgIGZjODlmM2VhOTIyMDRkZmUKLVZNT1ZVUFNfWU1NX3RvX1lNTW9yTUVNKG1lbSkKK1ZPUlBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGZmM2U5MGYwMDQ5ZGEzMTAuZTY5M2EzZGEyZTgwNWQ1OC41MDNjOWU1NTkxNDVjYmY5LmM4NDM0ZmMyMDFmOWVkZTAKICAgICA4MWIzMjQ0ZDc1MGQ1ZWM3LjUwMjFkYjg3ZjE2ZWQ4MmQuOTYxODg3YzliZjFhOWM3OC5lYWNhYzI1ZDNjYzZlZWZiCkBAIC0yMTg4OSwxMyArMjE4ODksMTMgQEAKICAgICA3MTBlMjdiOWM2ZjNmMGQyLmZhNjQ1NGIzMjA5OGYxYTUuODdjZDM4YzJhMDc5MDE5Mi5iY2NiZmEwMGIyOWNmOGJjCiAgICAgMjRkZWI2ZTIyNWJjNzhiYQogICBhZnRlcgotICAgIDcxMGUyN2I5YzZmM2YwZDIuZmE2NDU0YjMyMDk4ZjFhNS44N2NkMzhjMmEwNzkwMTkyLmJjY2JmYTAwYjI5Y2Y4YmMKKyAgICBmZjNlOTBmMDA0OWRhMzEwLmU2OTNhM2RhMmU4MDVkNTguNTAzYzllNTU5MTQ1Y2JmOS5jODQzNGZjMjAxZjllZGUwCiAgICAgODFiMzI0NGQ3NTBkNWVjNy41MDIxZGI4N2YxNmVkODJkLjk2MTg4N2M5YmYxYTljNzguZWFjYWMyNWQzY2M2ZWVmYgotICAgIDVlYjUyZGVjMDI3YjM5NGUuOGRmODE3YWNiODQ3ZjZiOC4wYTVhZTc0YWJhMjc2ZmYyLjcyMzNmY2Y4ZWU3ODMzYjUKKyAgICBmZmJmYjRmZDc1OWRmZmQ3LmY2YjNmYmRmZmZlZWRkN2QuZDYzYzlmZGRiZjVmZGZmOS5lYWNiY2ZkZjNkZmZlZmZiCiAgICAgNzEwZTI3YjljNmYzZjBkMi5mYTY0NTRiMzIwOThmMWE1Ljg3Y2QzOGMyYTA3OTAxOTIuYmNjYmZhMDBiMjljZjhiYwogICAgIDI0ZGViNmUyMjViYzc4YmEKIAotVk1PVlVQU19ZTU1fdG9fWU1Nb3JNRU0ocmVnKQorVk9SUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMDZiNzJlMDhlMjY3ZjA1Yi45ODhhOGNhMWRlODI0MTdlLmY0YjE4ZjBhYzRlYzA2OWYuZTkzZmY4MWY4YTFiMGU4NAogICAgIGJkYTQ1ZGUwODUyNjljNGMuYWVmN2Q5OGU2NTMzZTY4MC5kNTJiYzMxYjQxY2Y3MDUzLjBiN2FhMjRjOTYxOTUxZjYKQEAgLTIxOTAzLDEyICsyMTkwMywxMiBAQAogICAgIDFmZTZkMTUzZjAxNTdmY2UuMTZkMDFkMmIzMjJjMWYzMC5iZmQ0MDYyMDM0NzQzNjk4LjAzN2VhNGM1ODM1YjZjMDQKICAgICA5MWRmZjVlYjliYjdiY2Y5CiAgIGFmdGVyCi0gICAgYmRhNDVkZTA4NTI2OWM0Yy5hZWY3ZDk4ZTY1MzNlNjgwLmQ1MmJjMzFiNDFjZjcwNTMuMGI3YWEyNGM5NjE5NTFmNgorICAgIGJmZWY3ZmY1YWZhN2JjN2QuYWVmN2RiZWY3ZDMzZmU4MS5mZjNmZWY1ZjczY2Y3YzdmLmNiN2JiMjdkZjY5OWQ3ZjYKICAgICBiZGE0NWRlMDg1MjY5YzRjLmFlZjdkOThlNjUzM2U2ODAuZDUyYmMzMWI0MWNmNzA1My4wYjdhYTI0Yzk2MTk1MWY2CiAgICAgYTdlZjNmZDVhYjg3YjgzOS44ZTIwOGI2ZDc4MTI5YzAxLmZhMWRlYzU0MzJjZTZjNmQuY2I0YmIyMzVlMDgwODcxMgogICAgIDFmZTZkMTUzZjAxNTdmY2UuMTZkMDFkMmIzMjJjMWYzMC5iZmQ0MDYyMDM0NzQzNjk4LjAzN2VhNGM1ODM1YjZjMDQKICAgICA5MWRmZjVlYjliYjdiY2Y5Ci1WTU9WVVBTX1lNTV90b19ZTU1vck1FTShtZW0pCitWT1JQU18yNTYobWVtKQogICBiZWZvcmUKICAgICA0ZjNhMjA5MDQ1OWUzMjFkLjgwZDMwZGM2ZWU1ZDJlYjUuMjBkNDBjYjJiMDhjMmEzNi44MTljMGVlYmUyNGQwYTgwCiAgICAgMWI1YWExYTE5YzFlOGI5Yi4yODAzZjE5YTQ0ZWEwMTlkLjhhZjhkMmYwMGQzZjdiNDIuOWFjMWZmMjFkOWU2MjNkMwpAQCAtMjE5MTYsMTMgKzIxOTE2LDEzIEBACiAgICAgNDkxZDk2YjhjMzE4ZDU1OC5iOTViOWYxNTYyMDMwMTFiLmVhZDBkODNlZDZjYWQ5MTcuNDQ1MjhjN2UwZjg1MTc2NAogICAgIDhkNTUyMDdkODdhNDY5ZmIKICAgYWZ0ZXIKLSAgICA0OTFkOTZiOGMzMThkNTU4LmI5NWI5ZjE1NjIwMzAxMWIuZWFkMGQ4M2VkNmNhZDkxNy40NDUyOGM3ZTBmODUxNzY0CisgICAgNGYzYTIwOTA0NTllMzIxZC44MGQzMGRjNmVlNWQyZWI1LjIwZDQwY2IyYjA4YzJhMzYuODE5YzBlZWJlMjRkMGE4MAogICAgIDFiNWFhMWExOWMxZThiOWIuMjgwM2YxOWE0NGVhMDE5ZC44YWY4ZDJmMDBkM2Y3YjQyLjlhYzFmZjIxZDllNjIzZDMKLSAgICBjZjBjZjQwYWJkNDM4M2EwLjcyYzE3ODNiOGM0ODMzMzAuMmUwOGVkZDA2NjRmY2I3ZS42NzhmZDUyZWI0Y2FiZTNhCisgICAgNWY3YWExYjFkZDllYmI5Zi5hOGQzZmRkZWVlZmYyZmJkLmFhZmNkZWYyYmRiZjdiNzYuOWJkZGZmZWJmYmVmMmJkMwogICAgIDQ5MWQ5NmI4YzMxOGQ1NTguYjk1YjlmMTU2MjAzMDExYi5lYWQwZDgzZWQ2Y2FkOTE3LjQ0NTI4YzdlMGY4NTE3NjQKICAgICA4ZDU1MjA3ZDg3YTQ2OWZiCiAKLVZNT1ZVUFNfWU1NX3RvX1lNTW9yTUVNKHJlZykKK1ZPUlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDllZTY4ZTk4YjhiMmYyYWIuNjM1NzAyOTVjYmE5M2VlZS41YjFiNjA5NDYzYThhNzA5Ljk4MWMwZjI1NzliYzVmMzgKICAgICBkMzRmZDEzOTNkM2NlYjIyLmZiODZiMzhmZjAwMjdhOGUuYjI0ZmI5MjUyYWMzNjFhNy4xNmI3MGU3NDZjMzAxYTBlCkBAIC0yMTkzMCwxMiArMjE5MzAsMTIgQEAKICAgICAxOWRjYzZjMmI0ZjAyNTBmLjEwZjhkYTg2MDMzZTVhOWYuZjMzZTIwMjk3Yzg3ZmZhMi5lZDBkNTVmMmIxY2UxZTg3CiAgICAgMDA2MDk1ZmEzYTExZTA4MwogICBhZnRlcgotICAgIGQzNGZkMTM5M2QzY2ViMjIuZmI4NmIzOGZmMDAyN2E4ZS5iMjRmYjkyNTJhYzM2MWE3LjE2YjcwZTc0NmMzMDFhMGUKKyAgICBkYmRmZjVmZmJmZmNmYjJiLmZiZmViYjlmZmYzMjdmZWUuYmU0ZmJkMzc3ZWRmNmJhNy4zZWZmNWY3NGVmMzJkZWNlCiAgICAgZDM0ZmQxMzkzZDNjZWIyMi5mYjg2YjM4ZmYwMDI3YThlLmIyNGZiOTI1MmFjMzYxYTcuMTZiNzBlNzQ2YzMwMWEwZQogICAgIDg4ZGRlNWNlYjJjYzkzMDkuZWI3ODI4OTA0ZjMwNDU2Ni4xYzQxYTUzMjU0ZGU2YWEwLjNlNmU1MTE0Y2IzMmM2YzQKICAgICAxOWRjYzZjMmI0ZjAyNTBmLjEwZjhkYTg2MDMzZTVhOWYuZjMzZTIwMjk3Yzg3ZmZhMi5lZDBkNTVmMmIxY2UxZTg3CiAgICAgMDA2MDk1ZmEzYTExZTA4MwotVk1PVlVQU19ZTU1fdG9fWU1Nb3JNRU0obWVtKQorVk9SUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNTEzMzhkMTk4MzA2YzZlMy5lMjk4NzE4MGRlMzRkY2RlLjQ3ZDE0NzVjMjkzOTc2NjguOTU5MTI2NzUzZTQ5NWM1NgogICAgIGJkNTJiYTM5YTdiYThjZDQuM2Y1Y2UwNzZjZDIzZjQyMi42YWQwZTlmZWRjMmM1NWViLjVjODhiNDgyMzhiMWJjNmEKQEAgLTIxOTQzLDEzICsyMTk0MywxMyBAQAogICAgIDU3YTM5ZjMwZjI4Y2FjMTguMjQzMGZmYjc2ODMyM2JiYy5lNzcwYzI1NjVhMmE0YmQxLmNkOGU1NThlM2RhMDc4NjIKICAgICAyZTM1NjA2NzgyNDA0YzlkCiAgIGFmdGVyCi0gICAgNTdhMzlmMzBmMjhjYWMxOC4yNDMwZmZiNzY4MzIzYmJjLmU3NzBjMjU2NWEyYTRiZDEuY2Q4ZTU1OGUzZGEwNzg2MgorICAgIDUxMzM4ZDE5ODMwNmM2ZTMuZTI5ODcxODBkZTM0ZGNkZS40N2QxNDc1YzI5Mzk3NjY4Ljk1OTEyNjc1M2U0OTVjNTYKICAgICBiZDUyYmEzOWE3YmE4Y2Q0LjNmNWNlMDc2Y2QyM2Y0MjIuNmFkMGU5ZmVkYzJjNTVlYi41Yzg4YjQ4MjM4YjFiYzZhCi0gICAgMjA4ODk2NDhjMzM4ZWY4Mi44Yzc2MTEwZjFkNDlhYjg4LjU2YzEzZTU4MzgyM2IyNTUuYTU2ZWM1YmIwMzRhNWM4YQorICAgIGZkNzNiZjM5YTdiZWNlZjcuZmZkY2YxZjZkZjM3ZmNmZS42ZmQxZWZmZWZkM2Q3N2ViLmRkOTliNmY3M2VmOWZjN2UKICAgICA1N2EzOWYzMGYyOGNhYzE4LjI0MzBmZmI3NjgzMjNiYmMuZTc3MGMyNTY1YTJhNGJkMS5jZDhlNTU4ZTNkYTA3ODYyCiAgICAgMmUzNTYwNjc4MjQwNGM5ZAogCi1WRFBQRF8xMjhfMW9mNChyZWcpCitWQU5ETlBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDI1YWZlM2IwNmRiNTEzZTcuM2M2ZDUwZGY1MWMyN2NjMi42NWQ3YTdkYTRkNmJlMTY5LmY5YTllZmU0NWU0ZWRhOGMKICAgICAwZjQ4ZDhkNjlhOGIwYWVlLmFjYjMyNjQwZmJlNzFlYWQuYWFiNzAzZTQ2NTdmZDkzYy42OTM4NDNlZjVmOWExYmIxCkBAIC0yMTk1NywxMiArMjE5NTcsMTIgQEAKICAgICAyNzA2MGU2YTJjOGM3N2RkLjlkZTMyZGM4YTIyY2MzZjYuYWY1MWNjNWVhNDZhYWQwMy5jZTg2NGQyOGM5ZGNhN2VjCiAgICAgN2NkZmZiMmU2YmU5Njg1OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICA0MDA0MjUwMTI0NDQ2NTEwLjAzNDA5OTNmMDQwMDQwMDAuNDUwODEwMDIwYTgwMDZjMS4xMGMwMzgwMDIwMDFjNDRjCiAgICAgMGY0OGQ4ZDY5YThiMGFlZS5hY2IzMjY0MGZiZTcxZWFkLmFhYjcwM2U0NjU3ZmQ5M2MuNjkzODQzZWY1ZjlhMWJiMQogICAgIDQ2NGMzZDQ1YTY0ZjZkNWMuODM0MTliM2YwZDA3NGMwNS40ZjFjMTE0MjRlZmI1ZWUxLjExZTgzOTYxNzkxYmNjNmQKICAgICAyNzA2MGU2YTJjOGM3N2RkLjlkZTMyZGM4YTIyY2MzZjYuYWY1MWNjNWVhNDZhYWQwMy5jZTg2NGQyOGM5ZGNhN2VjCiAgICAgN2NkZmZiMmU2YmU5Njg1OQotVkRQUERfMTI4XzFvZjQobWVtKQorVkFORE5QRF8yNTYobWVtKQogICBiZWZvcmUKICAgICBmN2JkYzA2MTdhNGZjZGUxLjBlYzQ0NWFmYzljZjY1MWUuZDY2NDU3YzdkNzY0M2ZhYi4yOGE0MzFhNjAyNTgwMjRmCiAgICAgMWJlYzE2YWMxMjE5OTBhZi41N2QwZTA4MjE5YTI3M2NiLjBhOTI5NTI4YzdiYTdiNTAuMTU1ZjNhODQwNTUyOTk3MApAQCAtMjE5NzIsMTEgKzIxOTcyLDExIEBACiAgIGFmdGVyCiAgICAgZjdiZGMwNjE3YTRmY2RlMS4wZWM0NDVhZmM5Y2Y2NTFlLmQ2NjQ1N2M3ZDc2NDNmYWIuMjhhNDMxYTYwMjU4MDI0ZgogICAgIDFiZWMxNmFjMTIxOTkwYWYuNTdkMGUwODIxOWEyNzNjYi4wYTkyOTUyOGM3YmE3YjUwLjE1NWYzYTg0MDU1Mjk5NzAKLSAgICBjNDNhN2JmYjUwNTM2ZWYwLjVlNzdkOTRlYjY5M2RkOGYuMTUzNzYzZDg4ZTNiMzQxMi5kMWNmZTU2NjQ4ZTJhZDEzCisgICAgZTQxMWMwNDE2ODQ2NGQ0MC4wODA0MDUyZGMwNGQwNDE0LmQ0NjQ0MmM3MTA0NDA0YWIuMjhhMDAxMjIwMjA4MDIwZgogICAgIGNlNzI2YjNhNGYwYTIzY2YuN2YwNTJlN2YzZjJlZGUxNy5kMzIwM2VjMTQ5ZjIyNjFkLmJhNDAyZGI3Njc5NzdiZTMKICAgICAyYWZlMGVlM2ZmZmEzZjhlCiAKLVZEUFBEXzEyOF8xb2Y0KHJlZykKK1ZBTkROUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgN2Y1NTg0NTZhYzk5MzRiZC4xNDVmNjA1NTJjNDk2YTdhLjE2YzZkYjgxNGRmZWIzMGUuMjAxOWExZDExNGViMGM5YwogICAgIDEzOTA4YzdjMDkwMDk3MWYuNzRjZWQ4MzgwMjFjMDAxYS43ZjA1ZGFjMDdmOGY5ODIxLmQ4ZWUwOGYyMGEzM2E0YmMKQEAgLTIxOTg0LDEyICsyMTk4NCwxMiBAQAogICAgIDZjZTYzZjkxNDQ1Mjk3MjYuZWY2MjNlMDYwYmIwMDlmMC4zNzMxYzNhNWI4MjU4MTRhLmY4NWJkMzFjZThkZGQ0OGUKICAgICAxOThiMmVmYzA4NThlNjk4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDQ0NmQyMTgxYjJiOTIwNDAuODkwMTA2YzdlZDgwYTFjNC4wMDEwMjEyODAwNjA0MWRjLjA2MDBlNzAwNDVjNDAzMDEKICAgICAxMzkwOGM3YzA5MDA5NzFmLjc0Y2VkODM4MDIxYzAwMWEuN2YwNWRhYzA3ZjhmOTgyMS5kOGVlMDhmMjBhMzNhNGJjCiAgICAgNDRmZDIxYzFiMmI5YTQ1ZC5jOThiNGVjZmVkOTBhMWRlLjE2MTAyOWE4NmU2ZGM5ZmMuZDY2YWVmMTI0N2Q1YTdhOQogICAgIDZjZTYzZjkxNDQ1Mjk3MjYuZWY2MjNlMDYwYmIwMDlmMC4zNzMxYzNhNWI4MjU4MTRhLmY4NWJkMzFjZThkZGQ0OGUKICAgICAxOThiMmVmYzA4NThlNjk4Ci1WRFBQRF8xMjhfMW9mNChtZW0pCitWQU5ETlBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDE1Yzc3ZTllYzQ1MTk4ZjIuZTg5OGUyNTk1YTU2YWIyNC5jMjFmMjRjYTc1ODhmMzdjLjNlYjVhNDIzZjk0MmZkYjcKICAgICBjN2RiM2VlZTM4ZDRhNmM5LjE1NWYwNjgzOTE1MjFkMDQuMWQ4ZDdkMDU0OTI1MWNhZi44N2U4Yzg4ZmNjNTE3OWYxCkBAIC0yMTk5OSwxMSArMjE5OTksMTEgQEAKICAgYWZ0ZXIKICAgICAxNWM3N2U5ZWM0NTE5OGYyLmU4OThlMjU5NWE1NmFiMjQuYzIxZjI0Y2E3NTg4ZjM3Yy4zZWI1YTQyM2Y5NDJmZGI3CiAgICAgYzdkYjNlZWUzOGQ0YTZjOS4xNTVmMDY4MzkxNTIxZDA0LjFkOGQ3ZDA1NDkyNTFjYWYuODdlOGM4OGZjYzUxNzlmMQotICAgIDBkOTNlYmQ4N2VlZWNlNDkuNGQ4N2E4N2Q4NWQxMjk3MS5kZTdhYzNhNWEzOTIzZmI1LjZlMTYyYzUzY2VkYzMwYTIKKyAgICAxMDA0NDAxMGM0MDExODMyLmU4ODBlMDU4NGEwNGEyMjAuYzIxMjAwY2EzNDg4ZTM1MC4zODE1MjQyMDMxMDI4NDA2CiAgICAgYzJiYmZmNDhiNWFhY2E5ZC5lZDViYzNiMWQwNWYwYTE4LmUwYjA3NDk1OWVkYjFhYjkuNGU4YmNiZGQ5YTcyNWY3NgogICAgIDg1OTJhMTk3Y2M5YzQyMWEKIAotVkRQUERfMTI4XzFvZjQocmVnKQorVkFORE5QRF8yNTYocmVnKQogICBiZWZvcmUKICAgICA2ZTc5YWFlZjAxZTgxNDNhLmMxMWVmODJiZjYxNDU3ZjIuNTIyOTUzOGQxMTg5ZmRhNC5mZWZjMGJjMTU2MGQ2N2U4CiAgICAgNjU4YWUyNTBkNGUxMTM4Mi5lODhhNTE2YjVmMzkzMTczLmQ2M2I1NDdjZTFkYTNlYzIuMTYyYTA1MTVlODMzZTM2ZQpAQCAtMjIwMTEsMTIgKzIyMDExLDEyIEBACiAgICAgZWM1ZGQxZGRjNzBjODIzNy4xYWE4MTRiNzE4ZTJiYmFiLmFlNWU5YjQzYTQyMjk5NjMuYTA1YzBlZTUwODhjNTcyZAogICAgIGNiZjcxNjM5Y2ZkN2M3YmUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgODAxMDA0MjYyMjE0NjgxYy4xMTQxODY5NDAwMDQwMjBjLjAwYzQ4MzgyMWUwNDAxMWMuMDEwNGQ4NjgxMDQ4MDgxMAogICAgIDY1OGFlMjUwZDRlMTEzODIuZTg4YTUxNmI1ZjM5MzE3My5kNjNiNTQ3Y2UxZGEzZWMyLjE2MmEwNTE1ZTgzM2UzNmUKICAgICBjNTEyNDYyNmUyMTQ3OTljLjExYzk4NmY2MGMyNDEzNGQuZDZkZWMzZWFkZWRlMDkxZS4wMzA2ZGM3ZDcwNTk0OTc2CiAgICAgZWM1ZGQxZGRjNzBjODIzNy4xYWE4MTRiNzE4ZTJiYmFiLmFlNWU5YjQzYTQyMjk5NjMuYTA1YzBlZTUwODhjNTcyZAogICAgIGNiZjcxNjM5Y2ZkN2M3YmUKLVZEUFBEXzEyOF8xb2Y0KG1lbSkKK1ZBTkROUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNWVhNDcxNjVkZjQ2NTU1Ni4zNWI3N2ZlMTFlNTU2Y2ZkLmRkZjM3NTk5YTA3ZGUyYmEuYmEwN2Q4ZjNjZTMxMmIzZQogICAgIDM2MzA5OTU2NTRlNmJmMjAuZmI2YjRjOWU4MzdiNzE5Yi4zODc2Mjc4YWJmMDQ0N2E2LjU2MjU3NjY2Zjk5OGZiNWEKQEAgLTIyMDI2LDExICsyMjAyNiwxMSBAQAogICBhZnRlcgogICAgIDVlYTQ3MTY1ZGY0NjU1NTYuMzViNzdmZTExZTU1NmNmZC5kZGYzNzU5OWEwN2RlMmJhLmJhMDdkOGYzY2UzMTJiM2UKICAgICAzNjMwOTk1NjU0ZTZiZjIwLmZiNmI0YzllODM3YjcxOWIuMzg3NjI3OGFiZjA0NDdhNi41NjI1NzY2NmY5OThmYjVhCi0gICAgMzA2NTBjZjY0YmMyYmY0OS45Y2M3MzU4MTkzMGJjZWJjLjA1ZmNhNTc1OTE4MGE0OWEuZGUwMzcxMDhjMGUxNDU2NAorICAgIDQ4ODQ2MDIxOGIwMDQwNTYuMDQ5NDMzNjExYzA0MGM2NC5jNTgxNTAxMTAwNzlhMDE4LmE4MDI4ODkxMDYyMTAwMjQKICAgICAyNjBmNDUzM2RmZTcxMmZkLjcyMTUzNGY0ZTk5MWJlMGQuMjI1MzZjNDYzM2ZmYjZjMy5hZWVmYzY0NmJmOWE0NDA4CiAgICAgMjIzMzcwOGE5MzRmMzVmMQogCi1WRFBQRF8xMjhfMm9mNChyZWcpCitWQU5ETlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDk2MWM2YjQyZDg4YjUzY2MuZjZmY2MwZjcyZDYwNzM2Ny5kYmEyNDc2NTIyOTc3ZjM5LjY5NDVmNmU5YzE4YzM5NGQKICAgICA2NmY2YjNkODI4ZGFkYzQ0LjdhZjdmOTMwNTAzOWEwYjQuMzFiYTZhM2VkOWFiNGJlZS5iNzlmYzE0YTU2MzNlODYzCkBAIC0yMjAzOCwxMiArMjIwMzgsMTIgQEAKICAgICA4YWFjMWI1MzYwZTIxYWJlLjExNDU5N2FlODczYzQ5YTYuMThiYWNjZGQzMjJiZjY5Yy5kOWJiMDdmNzA2MDFiZWU1CiAgICAgNjQxNDdiMWI1OTQwNWJhOAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MGRkMGVmM2FhYmVkNWQ0LjAwMDAwMDAwMDAwMDAwMDAKKyAgICA4ODA4NDQyMjAyMDAwMjAyLjg1MDgwNGM5MjQ0NjUzMDAuYzAwMTk1YzEyMjUwMTQxMS40ODIwMDgxNDA4MDAwMTEwCiAgICAgNjZmNmIzZDgyOGRhZGM0NC43YWY3ZjkzMDUwMzlhMGI0LjMxYmE2YTNlZDlhYjRiZWUuYjc5ZmMxNGE1NjMzZTg2MwogICAgIGVlMGM0NWJhMjJjODBhMDYuOGZjYjZkYzk2NDdlNTMxMC5kMWE5OTdlZGFhNTg1ZWQ1LmU5MmQ0ODU2MGUwMTgxMzEKICAgICA4YWFjMWI1MzYwZTIxYWJlLjExNDU5N2FlODczYzQ5YTYuMThiYWNjZGQzMjJiZjY5Yy5kOWJiMDdmNzA2MDFiZWU1CiAgICAgNjQxNDdiMWI1OTQwNWJhOAotVkRQUERfMTI4XzJvZjQobWVtKQorVkFORE5QU18yNTYobWVtKQogICBiZWZvcmUKICAgICA2NjA2MWVhYzI0YzkxNWE5Ljk2MjAzMzBmN2ViMzQ3MTcuZGQzMWYzY2JkMjdlM2RhMi42MDNiMDQ3YTBkYWY0ZGVmCiAgICAgYmM1YjZlOTg4MmE4YTkxMi42ZWI2ODk1YTE5YzhjZWJlLmNkNWJmZDBjNjM1MWVjMzEuMDc3NjNiMzBkNjcwYTA3YQpAQCAtMjIwNTMsMTEgKzIyMDUzLDExIEBACiAgIGFmdGVyCiAgICAgNjYwNjFlYWMyNGM5MTVhOS45NjIwMzMwZjdlYjM0NzE3LmRkMzFmM2NiZDI3ZTNkYTIuNjAzYjA0N2EwZGFmNGRlZgogICAgIGJjNWI2ZTk4ODJhOGE5MTIuNmViNjg5NWExOWM4Y2ViZS5jZDViZmQwYzYzNTFlYzMxLjA3NzYzYjMwZDY3MGEwN2EKLSAgICA0MGUwZTZjYTkwZWFkMDBmLjZkYjgxN2EwY2NhY2ViNWUuYmU4ZjMxNWQ1NmMwMTI3Zi42N2I4NmQ2YjJhZmIyYWU4CisgICAgNDIwNDEwMjQyNDQxMTRhOS45MDAwMzIwNTY2MzMwMTAxLjEwMjAwMmMzOTAyZTExODIuNjAwOTA0NGEwOThmNGQ4NQogICAgIGNmNjEwMzJlNjk5YTQ5Y2UuZjE3M2RiNGQzNGViZGFhNC44Yzk5MGNhYmM2ZDc2YmI4LmRkNGQ5Njk3YTRkYjI5ZTUKICAgICBjNTgxYjMyMGUwOWNkNzFmCiAKLVZEUFBEXzEyOF8yb2Y0KHJlZykKK1ZBTkROUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgN2NhMGJmNzM3YmNiNzEzZi40NWFhM2ZiMDJhYzRjZTc4LjU1MzNjZmNlZWMxMWQ2M2IuMTM0NDA5ZTBjZmEzYjIwNwogICAgIDVjZjZiNmZhMTBmMzMyZjQuN2U4NzE4M2NlZTc0MWMzYy5mNTQzZjE4ZDkxYWIxZGQxLjJmNWRhNGVhOGUyZWE0OTgKQEAgLTIyMDY1LDEyICsyMjA2NSwxMiBAQAogICAgIDBhNzU1NjU4OWI1ZjFjYzguYTkyYzhlMjJmMTk5MDJiYy41ODg3YWQ3OTBmNjk3NmE0Ljk2MGFhNTI5OWNiNzc4MzMKICAgICA5OTM0MDMzNzI0Y2NkMzk1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFjMjAxM2EyNWUwMTRjODQuMDAwMDAwMDAwMDAwMDAwMAorICAgIDgyMDgwMTAxMmMwMDQ1MDguMDA0MDAxODIxMDgzZTM0MC4wOGIwMGM3MDJlNDRlMDBlLjkwYTA1YTExMTA4MTU5MDAKICAgICA1Y2Y2YjZmYTEwZjMzMmY0LjdlODcxODNjZWU3NDFjM2MuZjU0M2YxOGQ5MWFiMWRkMS4yZjVkYTRlYThlMmVhNDk4CiAgICAgYzJjZTk1MjMzY2ExNTdlOC41NmM0MDliZWQyYjdlZjQ0LjJjZjEzZGY4YmU0NGU4MGYuYmNiMTVhYjMxZTg3ZmQ5OAogICAgIDBhNzU1NjU4OWI1ZjFjYzguYTkyYzhlMjJmMTk5MDJiYy41ODg3YWQ3OTBmNjk3NmE0Ljk2MGFhNTI5OWNiNzc4MzMKICAgICA5OTM0MDMzNzI0Y2NkMzk1Ci1WRFBQRF8xMjhfMm9mNChtZW0pCitWQU5ETlBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGExZmRlZmM5ZDBkMmM4ZTkuOTAzN2Y3MDdjN2JiYmQzZi41MzhjMjM1NDY3MjQxMmQyLmQzNTIzZjdlMjFhNTAxMzkKICAgICA4YTMwZTVjYmJmZDMxMzViLmIwNjA3MzliNWY0MTc1ZmEuMzBiMDQ1NDE1MTY2ZGJhZi5mYjllZWU3MjkwODRjNjdkCkBAIC0yMjA4MCwxMSArMjIwODAsMTEgQEAKICAgYWZ0ZXIKICAgICBhMWZkZWZjOWQwZDJjOGU5LjkwMzdmNzA3YzdiYmJkM2YuNTM4YzIzNTQ2NzI0MTJkMi5kMzUyM2Y3ZTIxYTUwMTM5CiAgICAgOGEzMGU1Y2JiZmQzMTM1Yi5iMDYwNzM5YjVmNDE3NWZhLjMwYjA0NTQxNTE2NmRiYWYuZmI5ZWVlNzI5MDg0YzY3ZAotICAgIDMwOTg2MTI5MGFkZDcyMTguYzYzY2M2ODBmYzdiODFhNC4xYzY0NmZkM2NiNmExODgyLjJiYjdiNmMxZjc5MzAxMWEKKyAgICAyMWNkMGEwMDQwMDBjOGEwLjAwMTc4NDA0ODBiYTg4MDUuNDMwYzIyMTQyNjAwMDA1MC4wMDQwMTEwYzIxMjEwMTAwCiAgICAgNmYwMmUwY2ZjZmZiOWY0Yy4yZTE3ZWQyMjNjZjgxZGVhLmYzNzQxZGY4ZjAzZDg3NzUuYmVlOTkzZDdmMjVkZWRiZAogICAgIDEyN2Y4MjIwMWU2ZWM4MTEKIAotVkRQUERfMTI4XzJvZjQocmVnKQorVkFORE5QU18yNTYocmVnKQogICBiZWZvcmUKICAgICA4MWM3N2UwODE3NTNjYmMzLjIzM2FkZGE5MmEzYTU2MjIuNDQzY2UyZWRiYjQxODQ3Ny45MGFjY2I5YmRjZWFlMWI0CiAgICAgNjgwYjgzZmI3ODk2MzU3ZS4yNzBjZDRhNDM2YTU1NWM3LjY0ZjhhMzRkMTRlNGY0ZjkuZDFkN2Y2YThhYzdkZTU2YwpAQCAtMjIwOTIsMTIgKzIyMDkyLDEyIEBACiAgICAgMGZiYTk4YjNlMzZjMjljMi45NGFkYTFhOWQzMzAxNjJkLjMyNjU3NzdkYzY2NWQ5ODYuYWMzYWFmYWY2Njg3ZDdmNgogICAgIGZkMDkzNjgzODkxNTNjMjAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjNhYzk4ZTlmZGJlMzg4Zi4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDQ5MDBjMDQ4NTQwNDA4MS41ODQwMDEwYTAwNDgwMjIwLjhhMDcwOGEyZTAwODAzMDAuMDAwMDA4MDI1MDAyMGE4MQogICAgIDY4MGI4M2ZiNzg5NjM1N2UuMjcwY2Q0YTQzNmE1NTVjNy42NGY4YTM0ZDE0ZTRmNGY5LmQxZDdmNmE4YWM3ZGU1NmMKICAgICAyNDk4OGQ2NWRkYzY0MGVmLjU5NDQ0MWFhMTA0OTU2NjcuZWE5NzJiYWZlNDZjYTcxOS45MWMzMTgwYTdjMDM0ZWM5CiAgICAgMGZiYTk4YjNlMzZjMjljMi45NGFkYTFhOWQzMzAxNjJkLjMyNjU3NzdkYzY2NWQ5ODYuYWMzYWFmYWY2Njg3ZDdmNgogICAgIGZkMDkzNjgzODkxNTNjMjAKLVZEUFBEXzEyOF8yb2Y0KG1lbSkKK1ZBTkROUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNjJmYzJhNzBmZmJhM2I3My44NmJkYTE0ZjI1MTYyY2EyLmI0MTU2ZjhiOWI2ODUxNDYuOTdhZTgxMjQ1NzVjYzhlYQogICAgIGI2ZGUwNTYzZTQ4MThlMWEuZTZlY2EzYTc0MDUwODQzYy45NDQ2MjczZTg1ZmRjMmRkLjc3YmU0NzExMzJkY2FlZjEKQEAgLTIyMTA3LDExICsyMjEwNywxMSBAQAogICBhZnRlcgogICAgIDYyZmMyYTcwZmZiYTNiNzMuODZiZGExNGYyNTE2MmNhMi5iNDE1NmY4YjliNjg1MTQ2Ljk3YWU4MTI0NTc1Y2M4ZWEKICAgICBiNmRlMDU2M2U0ODE4ZTFhLmU2ZWNhM2E3NDA1MDg0M2MuOTQ0NjI3M2U4NWZkYzJkZC43N2JlNDcxMTMyZGNhZWYxCi0gICAgZDQ3ZDQ1NDg1NDc3ZjI0Mi44OTk1OWEyNmNmYTQ2ZjNjLjEyMGQ0NWFkYWRmOTI2MWYuMmRlMWM0YWZmMzcyYzg0OAorICAgIDQwMjAyYTEwMWIzYTMxNjEuMDAxMTAwNDgyNTA2Mjg4Mi4yMDExNDg4MTFhMDAxMTAyLjgwMDA4MDI0NDUwMDQwMGEKICAgICA5YWEzNjUwYzZkYTYyMzE2LmNjMDI4MjM4NmZhMTI3NGQuMDkzNjQ1YzQyZTZhMzkzOC4xNTYyZjQ2YTM3YTk1MTliCiAgICAgOGE4ZWQ0YWQ5OTBkODY5NQogCi1WRFBQRF8xMjhfM29mNChyZWcpCitWT1JQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBlYWIxNWVlNmI2MmJhM2UzLmUyMWRlMTk5NDgxY2RjYzMuMGI4MDU4NDhiYmQwZTgxYi41NDhkYTQ2ZjI0NWNiNzUzCiAgICAgOTAxNzkwODAyYThkZTQzMS44YWI3MzZkZDAzZTVkYjc0LmEyNWIxN2M0NGZiZmYwNTMuZDFkZWRkOWFhY2RhNWI5YwpAQCAtMjIxMTksMTIgKzIyMTE5LDEyIEBACiAgICAgMWRkYmRhODg4NDUzYzE3Yi42NjdiNTczNzg4OWQ5NTk1LjQ5NTc0MGFlYzIwYWJmYjEuY2Q5Y2NkMjBlMGFhMDg2YwogICAgIDA0YTM3ZDU0YzUxNTg4NDkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgZDcxZmY1ZThhZmNmZTQzYi5lZWJmZmVkZmJiZWRkYjc2LmVlZGZiZmRjY2ZmZmY5ZjMuZGJmZWZkYmJlZWZhZmJkZAogICAgIDkwMTc5MDgwMmE4ZGU0MzEuOGFiNzM2ZGQwM2U1ZGI3NC5hMjViMTdjNDRmYmZmMDUzLmQxZGVkZDlhYWNkYTViOWMKICAgICBkNzBjNjVlODhmYzI4NDJhLjZjM2RkZWMzYmEwY2Q5NTYuZWVkZmJiMThjOGY5NzlhMS41YWY0NmMzMWUyZjBlMjQxCiAgICAgMWRkYmRhODg4NDUzYzE3Yi42NjdiNTczNzg4OWQ5NTk1LjQ5NTc0MGFlYzIwYWJmYjEuY2Q5Y2NkMjBlMGFhMDg2YwogICAgIDA0YTM3ZDU0YzUxNTg4NDkKLVZEUFBEXzEyOF8zb2Y0KG1lbSkKK1ZPUlBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGRjZDNmNmI3YWEzYzFmMDUuYmNkMmU5Y2RhM2NlZDRjZi41MjNkMWMyNThhYTRjOTVjLjEwMTFhMmYzZDg3ZjAwMmUKICAgICAzMmY5YjYzN2FlMmI4OWNjLjEyM2I5MDI0ODhiZWZjZDMuMGU0ZWFhNzlkYjJlMzJkOC45ZjU3ZGU1M2E3ZTM3NmM0CkBAIC0yMjEzNCwxMSArMjIxMzQsMTEgQEAKICAgYWZ0ZXIKICAgICBkY2QzZjZiN2FhM2MxZjA1LmJjZDJlOWNkYTNjZWQ0Y2YuNTIzZDFjMjU4YWE0Yzk1Yy4xMDExYTJmM2Q4N2YwMDJlCiAgICAgMzJmOWI2MzdhZTJiODljYy4xMjNiOTAyNDg4YmVmY2QzLjBlNGVhYTc5ZGIyZTMyZDguOWY1N2RlNTNhN2UzNzZjNAotICAgIGUwZTAzOGJlZWFlZjgyYzkuNzk2M2NhZjdjZmIwNzMzMi43NDdiN2IxZjk3NDY4YzM1LjUyNzdlZjNiY2FjMjVlMjAKKyAgICBmZWZiZjZiN2FlM2Y5ZmNkLmJlZmJmOWVkYWJmZWZjZGYuNWU3ZmJlN2RkYmFlZmJkYy45ZjU3ZmVmM2ZmZmY3NmVlCiAgICAgYzM1NmY5M2E3YzkzYzUyOS40Zjk2OTNiNDE2MmY3Njk5LjYxOTEwZDAzZGJmOTkyOWUuODViYmQxMTZkZGE5ZjRlZQogICAgIDk0NmY4MDRmN2QyMzczZGEKIAotVkRQUERfMTI4XzNvZjQocmVnKQorVk9SUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZGJlMWY5NTQ0NWJkMTg4Zi5iODI1NzM5NjgwMjQwZjE3LmVlMjBlOGM1ZjZjNzQxYjQuYjI1OWRiMTFjMjUxMDIzZgogICAgIGI1NWMzNzkwZDIwMjFmYjkuOTkxYTI0YmUxMWFkMWNjMC5iNDRkYzM5ODBkMDUxMDJlLjQxYTI2MTM2Njk1ZDk2NDYKQEAgLTIyMTQ2LDEyICsyMjE0NiwxMiBAQAogICAgIDk3OWJmMjVkYTliZDQyMWYuOTJhNjE4MjI0Y2Q4NmVmMi4yMGJlMDAzMTRmYTBhOGYyLjhjZTM4NjcxNjViYTFiMzAKICAgICAwMTc0MWQ2MGYzMjQ4NjZjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGI1N2YzN2ZmZmY3ZWRmYmQuZGIxYmE3YmU1ZGJmYmZkMC5mZjZkZTM5OGZmNzUxZWJlLmViYjc3ZDdlZWQ3ZjllZGYKICAgICBiNTVjMzc5MGQyMDIxZmI5Ljk5MWEyNGJlMTFhZDFjYzAuYjQ0ZGMzOTgwZDA1MTAyZS40MWEyNjEzNjY5NWQ5NjQ2CiAgICAgODAyYjM2NmZiZjdlYzMwNS40MzAxODc5ZTRjM2FhNzUwLmZiNjgyMjk4Zjc3NDFlYjQuZWIzNzFjNWNlYzI2MGFkZAogICAgIDk3OWJmMjVkYTliZDQyMWYuOTJhNjE4MjI0Y2Q4NmVmMi4yMGJlMDAzMTRmYTBhOGYyLjhjZTM4NjcxNjViYTFiMzAKICAgICAwMTc0MWQ2MGYzMjQ4NjZjCi1WRFBQRF8xMjhfM29mNChtZW0pCitWT1JQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICAyNGI0NWMxNGFmNzEwNGJkLjU2Zjk2N2M2MmI0Y2Q2YjIuNjNkNTU0MzYyZDkxMmJkMy44MDljNTljZmIyMTZlOTkzCiAgICAgZDI3MGJmN2JiOGFjNTQ0ZS4xOThlOTIxNmUyYjZiYjZiLjkwNWFiNmM3MGM3NDlhMWUuNzU0YzJhZGViYTYxMWU0MwpAQCAtMjIxNjEsMTEgKzIyMTYxLDExIEBACiAgIGFmdGVyCiAgICAgMjRiNDVjMTRhZjcxMDRiZC41NmY5NjdjNjJiNGNkNmIyLjYzZDU1NDM2MmQ5MTJiZDMuODA5YzU5Y2ZiMjE2ZTk5MwogICAgIGQyNzBiZjdiYjhhYzU0NGUuMTk4ZTkyMTZlMmI2YmI2Yi45MDVhYjZjNzBjNzQ5YTFlLjc1NGMyYWRlYmE2MTFlNDMKLSAgICBlNzc0YzM4MDI3ZTEzMDRjLjNiYTk2ZWI5Njk4ODJmZjYuZjYwMGI5YmYwNThhNzkwMC41YzFiNmVjYjA2MGQ4NGIwCisgICAgZjZmNGZmN2ZiZmZkNTRmZi41ZmZmZjdkNmViZmVmZmZiLmYzZGZmNmY3MmRmNWJiZGYuZjVkYzdiZGZiYTc3ZmZkMwogICAgIDNmOGNlMzBmMWExYzU1ZTIuMWE5NWY3MWM1ZDRkNmNmZS43MTk1ZGMwYzMzZTE4MmE1LjkxNTQyMTAwMzBhNzU0ODMKICAgICA3MTQ1M2ZlYmQ0YmFjZDZiCiAKLVZEUFBEXzEyOF8zb2Y0KHJlZykKK1ZPUlBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDU2MzhjNGY2OGZkMjI5MTIuYjY4MzliMTRhZDZhN2YzZC4xMTlkMjlhOTU5OTFhZjMwLmRkZTM5ODk4YjI4NDcxMzgKICAgICA5ZDdhYWQ4ZmZjN2NhNTI0LjI4Mjc2NzdjZmJkNzY5ODkuN2IwZjAwY2VmYWUwMzMzNy4xNmI3NmE1MTlmODAwNGU2CkBAIC0yMjE3MywxMiArMjIxNzMsMTIgQEAKICAgICBjMTFiOTgxNzVlYjRlYzNjLjZkYTEyYzIwM2EzYTcwYTIuMWM1YzhmOGM5OGQyZjE3Ni41ZjIwNDJmNzMxYjAwMTQxCiAgICAgMjc0ZTNmYmMwZWZkZTQ0NwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBiZjdhZmRhZmZjN2ZmZDZmLjc5NjdlNzdkZmJmZmY5ZjkuZmYzZjc5ZmVmYmU3MzdmNy5mZWZmZWY3MzlmZTBmNWZlCiAgICAgOWQ3YWFkOGZmYzdjYTUyNC4yODI3Njc3Y2ZiZDc2OTg5LjdiMGYwMGNlZmFlMDMzMzcuMTZiNzZhNTE5ZjgwMDRlNgogICAgIGEyNThmNTIwYjg0MzdkNGYuNzE0MmMzMzEyMTZkZDBmMS5iNjM1NzlmNmRiYzczNWMwLmY4ZGNjZjIyMTVlMGY1ZGEKICAgICBjMTFiOTgxNzVlYjRlYzNjLjZkYTEyYzIwM2EzYTcwYTIuMWM1YzhmOGM5OGQyZjE3Ni41ZjIwNDJmNzMxYjAwMTQxCiAgICAgMjc0ZTNmYmMwZWZkZTQ0NwotVkRQUERfMTI4XzNvZjQobWVtKQorVk9SUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMmMzMTQzNWRjOWQyNTkxNy41NjEyOTJkZjhiNTkyZjlhLmY4MTAxZDM2NjI0YTA0YzcuMGJkMDNlZmVjZThiYTMwNgogICAgIDQ5OTZjOWM2N2QzYjFkZGUuYmQ4OGRmZTRkYWMwODIxMy5lZTViMTI1ZWI2YTc0YThkLmRkZGM4MmI3MTk4MDg3MWMKQEAgLTIyMTg4LDExICsyMjE4OCwxMSBAQAogICBhZnRlcgogICAgIDJjMzE0MzVkYzlkMjU5MTcuNTYxMjkyZGY4YjU5MmY5YS5mODEwMWQzNjYyNGEwNGM3LjBiZDAzZWZlY2U4YmEzMDYKICAgICA0OTk2YzljNjdkM2IxZGRlLmJkODhkZmU0ZGFjMDgyMTMuZWU1YjEyNWViNmE3NGE4ZC5kZGRjODJiNzE5ODA4NzFjCi0gICAgNWM0OTRjZTM0NzQ1ZWNjNy41MmM4N2M5MmU4NzUyMDUzLjJhNGQ4NzgzNTI1ZmZiMWYuZjBjZTU4MjMxNDNjZDg2MworICAgIDZkYjdjYmRmZmRmYjVkZGYuZmY5YWRmZmZkYmQ5YWY5Yi5mZTViMWY3ZWY2ZWY0ZWNmLmRmZGNiZWZmZGY4YmE3MWUKICAgICA0MDE2NGFhMTQyZmI4MWZmLjcxMjA2NDU2NTAwMzQ2MDguOGFiNGY4OTM1MDdlZDZhYi45ZWYwYmJhZjViNGNkMzg4CiAgICAgNDU5MGE3YzU4YjNiYjMzNwogCi1WRFBQRF8xMjhfNG9mNChyZWcpCitWUEVSTUlMUFNfMjU2XzB4MEYocmVnKQogICBiZWZvcmUKICAgICAzZmY4MThkMjNmOTViNjFiLmQxYzkzZmVhOGI2OTlhYjIuNzZkYTkzOWFhZmY2MzBkYi5lOTVhZTI3OWNmMGU5NjVhCiAgICAgZTk3NTBiNDMxNGU3MTZlMS5lYTJkYTVhYzNkOWNmMTBiLmJjNDMwNWNiYTBkYTFhN2IuMjMwY2MwMjFlOTFkZjY1YgpAQCAtMjIyMDAsMTIgKzIyMjAwLDEyIEBACiAgICAgYmVkZDYzZmQ4ZmEwZGZjMS4yOTNjYjk0NzRkN2U0YjYxLjgwNTFhNGE1YTlhN2RkY2MuOTdjNDQ5Njc1ZmU2ODhmZAogICAgIDhhNjJlYmRlZjNiODMyZjcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgZTk3NTBiNDMxNGU3MTZlMS5lYTJkYTVhYzNkOWNmMTBiLmJjNDMwNWNiYTBkYTFhN2IuMjMwY2MwMjFlOTFkZjY1YgorICAgIDNmZjgxOGQyM2Y5NWI2MWIuZDFjOTNmZWE4YjY5OWFiMi43NmRhOTM5YWFmZjYzMGRiLmU5NWFlMjc5Y2YwZTk2NWEKKyAgICA3NDlmNDIzNzc0OWY0MjM3LmEwNTI3YTgyYTA1MjdhODIuYmFiN2IyZDhiYWI3YjJkOC5hMWE3Yjc1NmExYTdiNzU2CiAgICAgYTA1MjdhODJhNWJjMGYzNC42OTEwZmFkMTc0OWY0MjM3LmExYTdiNzU2YmYzYzNmOTIuMTM5NjBlNzdiYWI3YjJkOAogICAgIGJlZGQ2M2ZkOGZhMGRmYzEuMjkzY2I5NDc0ZDdlNGI2MS44MDUxYTRhNWE5YTdkZGNjLjk3YzQ0OTY3NWZlNjg4ZmQKICAgICA4YTYyZWJkZWYzYjgzMmY3Ci1WRFBQRF8xMjhfNG9mNChtZW0pCitWUEVSTUlMUFNfMjU2XzB4MEYobWVtKQogICBiZWZvcmUKICAgICBjNzNiNzJjNjkzMzk2ZGYyLmEwNjBjMTFmNmQyMGMwMzMuMDU3ZTVlZjllNDQ2YzZiNi5iNThmYzgyNmZhYTgyZGQ2CiAgICAgMmMxZDU5MGM1YTczZjUxOS5hMjI5OTE1M2RjYzdlZjM3LmRiYTI2NmQzNTQwMjcwNjEuOWNhYjFmNDQ0ZGNhNmU1YwpAQCAtMjIyMTQsMTIgKzIyMjE0LDEyIEBACiAgICAgMTQzMTMwODQ2ZDZmMjY4YgogICBhZnRlcgogICAgIGM3M2I3MmM2OTMzOTZkZjIuYTA2MGMxMWY2ZDIwYzAzMy4wNTdlNWVmOWU0NDZjNmI2LmI1OGZjODI2ZmFhODJkZDYKLSAgICAyYzFkNTkwYzVhNzNmNTE5LmEyMjk5MTUzZGNjN2VmMzcuZGJhMjY2ZDM1NDAyNzA2MS45Y2FiMWY0NDRkY2E2ZTVjCisgICAgNmQyMGMwMzNhMDYwYzExZi5jNzNiNzJjNjkzMzk2ZGYyLmZhYTgyZGQ2YjU4ZmM4MjYuMDU3ZTVlZjllNDQ2YzZiNgogICAgIDk0ZDIxYzlkNjQ3NTg1OTkuMjE4MmNkMDc3NzIxYTc3OS44Njc0NGJjMWI5YmUwNDhmLjkwZjJhNTZiM2U5OWRhMDkKICAgICBkYTI3Mzg2NGNmNDhkYjllLjc3Yjg3M2E2ZGJiYjI2YTQuZTFjMDhiYWYzMDg3NDA2Yy5lZmIwNTcwNzZhYTFhZThhCiAgICAgMTQzMTMwODQ2ZDZmMjY4YgogCi1WRFBQRF8xMjhfNG9mNChyZWcpCitWUEVSTUlMUFNfMjU2XzB4MEYocmVnKQogICBiZWZvcmUKICAgICA1YWMxMmM0ZWUxOGY3ZGI3LmRjZTgyNzRjYjRmYWIwNTMuMDExNzdlOWNhMzIwYTY2NS5jYTUxYTE4OWQ0NjhkZTIzCiAgICAgMWZhYzQ3ZDE2NThiZjBiYi43NGUxNjc0MzMxOTZjM2U0LjFiZWFlYTU2NmJkYzY0NjcuMWJmNDA5M2JjMjZlOWFlMQpAQCAtMjIyMjcsMTIgKzIyMjI3LDEyIEBACiAgICAgOTJjMWNjYjMwNzRjMWFmOS5kYWFhYzgwYjYyYmQ4ZTRlLjZmMjBkNmMxNmU4Yjg4ZTEuNjlhMWMxZDhlYTE2NjAyMQogICAgIDFkNDIwODliNWNkMGUxZmEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMWZhYzQ3ZDE2NThiZjBiYi43NGUxNjc0MzMxOTZjM2U0LjFiZWFlYTU2NmJkYzY0NjcuMWJmNDA5M2JjMjZlOWFlMQorICAgIDVhYzEyYzRlZTE4ZjdkYjcuZGNlODI3NGNiNGZhYjA1My4wMTE3N2U5Y2EzMjBhNjY1LmNhNTFhMTg5ZDQ2OGRlMjMKKyAgICA2MjI4Y2U3ZjYyMjhjZTdmLmJkM2Q3ZTc5YmQzZDdlNzkuMTVhNDMyZDIxNWE0MzJkMi4yMTdmYjQzZTIxN2ZiNDNlCiAgICAgYmQzZDdlNzk5MmYxYmI0Mi43ZmRkNzMzNDYyMjhjZTdmLjIxN2ZiNDNlZDE3YzliNTcuYjI3NjQwYjIxNWE0MzJkMgogICAgIDkyYzFjY2IzMDc0YzFhZjkuZGFhYWM4MGI2MmJkOGU0ZS42ZjIwZDZjMTZlOGI4OGUxLjY5YTFjMWQ4ZWExNjYwMjEKICAgICAxZDQyMDg5YjVjZDBlMWZhCi1WRFBQRF8xMjhfNG9mNChtZW0pCitWUEVSTUlMUFNfMjU2XzB4MEYobWVtKQogICBiZWZvcmUKICAgICBhYjI0OTFlNjg4ZGY3MDhiLmY4ODQyZGU5NWQyOTQ4OGIuNWYxMmUwYjQ0ZDYwYmY3ZC42MTFhNGU0Y2UwOTY2N2IwCiAgICAgZWQxNWQ4YTQ4OTRlY2JmZS40ZGQyOWQ4OTMzMTM4MmE1LmViZTIzOTFjNDAxZTFjMzkuNTNiOTE3NDljMjI4NzQ3MQpAQCAtMjIyNDEsMTIgKzIyMjQxLDEyIEBACiAgICAgYzE2YzMyMmQyNTgxMDQxNQogICBhZnRlcgogICAgIGFiMjQ5MWU2ODhkZjcwOGIuZjg4NDJkZTk1ZDI5NDg4Yi41ZjEyZTBiNDRkNjBiZjdkLjYxMWE0ZTRjZTA5NjY3YjAKLSAgICBlZDE1ZDhhNDg5NGVjYmZlLjRkZDI5ZDg5MzMxMzgyYTUuZWJlMjM5MWM0MDFlMWMzOS41M2I5MTc0OWMyMjg3NDcxCisgICAgNWQyOTQ4OGJmODg0MmRlOS5hYjI0OTFlNjg4ZGY3MDhiLmUwOTY2N2IwNjExYTRlNGMuNWYxMmUwYjQ0ZDYwYmY3ZAogICAgIGMwZGY1YWMzN2MyYWFjN2YuZWJmNzE4ZmUyMjk2MDRmMy41YmU2NGUyZDU3MDI2M2FlLmExNDkyZDI2YjFjZGVhY2YKICAgICAwMTRmOTEyZTdjN2RjZjNiLjJmM2Y5YmI0YzgzZjA5MjAuODllYTliZDRhYzE4NGUwNy5hNzE2OGQ0ZTQ5MTEwNjc3CiAgICAgYzE2YzMyMmQyNTgxMDQxNQogCi1WRFBQRF8xMjhfNG9mNChyZWcpCitWUEVSTUlMUFNfMjU2XzB4MEYocmVnKQogICBiZWZvcmUKICAgICA0Yjk2MTgyZmUxYTgyMDU0LjhhMzFmYmQxYTU1NmYyNWUuNzZmNTIxMTZjMTk5Y2VkOS41MmI5OWNmZTVlNmM5OTcxCiAgICAgYTBlMTNiYzAxYTEzOTVlMC4zODUxMTQ5ODE0YmVjZjEzLjFhNjdhNjkyYTgzMDhmY2EuOTIyMWNlOTU4NzBiMDExNwpAQCAtMjIyNTQsMTIgKzIyMjU0LDEyIEBACiAgICAgMjAwYTI5M2Y3MWUyN2Q5My43MzdiM2Y0MzMzNzBhYWU1LmVkYWE5ZTg2YjE0N2Y0MDEuZThlOGIyYmZhZjU4MThjYQogICAgIGI1ZGY1YzI5ZTYxZTNmMmUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgYTBlMTNiYzAxYTEzOTVlMC4zODUxMTQ5ODE0YmVjZjEzLjFhNjdhNjkyYTgzMDhmY2EuOTIyMWNlOTU4NzBiMDExNworICAgIDRiOTYxODJmZTFhODIwNTQuOGEzMWZiZDFhNTU2ZjI1ZS43NmY1MjExNmMxOTljZWQ5LjUyYjk5Y2ZlNWU2Yzk5NzEKKyAgICBlNWMzMjM4N2U1YzMyMzg3LjFlOTk5NzRjMWU5OTk3NGMuNDMwMDQzMjY0MzAwNDMyNi43OGRmMjY5NDc4ZGYyNjk0CiAgICAgMWU5OTk3NGM2YjRjYTA2Ny5lNzdiNTY3MGU1YzMyMzg3Ljc4ZGYyNjk0MTk5MTg4OWUuMjZlY2FjODc0MzAwNDMyNgogICAgIDIwMGEyOTNmNzFlMjdkOTMuNzM3YjNmNDMzMzcwYWFlNS5lZGFhOWU4NmIxNDdmNDAxLmU4ZThiMmJmYWY1ODE4Y2EKICAgICBiNWRmNWMyOWU2MWUzZjJlCi1WRFBQRF8xMjhfNG9mNChtZW0pCitWUEVSTUlMUFNfMjU2XzB4MEYobWVtKQogICBiZWZvcmUKICAgICA2OTlkMjdiMTA0NWU3MjdmLjAyODBlYzA1Yzc1ZTY3MTAuYjgxYzRhZmUxYWQyMWY1YS5kMzE0MDhkNTBjZGUxMGExCiAgICAgZTBmMDhlNDMyNzI1NmVlOC4xZjQ3ZGMwYjA5NGU5YjhiLjkyMmNmMzhlYjdmNDNmMTIuODc2OTYyZWRjNWUzMTgyNwpAQCAtMjIyNjgsMTIgKzIyMjY4LDEyIEBACiAgICAgMTBlMGUzMjUzZWY5MGVlMQogICBhZnRlcgogICAgIDY5OWQyN2IxMDQ1ZTcyN2YuMDI4MGVjMDVjNzVlNjcxMC5iODFjNGFmZTFhZDIxZjVhLmQzMTQwOGQ1MGNkZTEwYTEKLSAgICBlMGYwOGU0MzI3MjU2ZWU4LjFmNDdkYzBiMDk0ZTliOGIuOTIyY2YzOGViN2Y0M2YxMi44NzY5NjJlZGM1ZTMxODI3CisgICAgYzc1ZTY3MTAwMjgwZWMwNS42OTlkMjdiMTA0NWU3MjdmLjBjZGUxMGExZDMxNDA4ZDUuYjgxYzRhZmUxYWQyMWY1YQogICAgIGY2YTMwY2NiNjg3ZWVmOTYuZDVhYWY1YmJkNTNkNTViMC5kZDc1YjZkZDI2ZTJjNjM4LjY1ZjRhNzNiNzhlMTQ4NDIKICAgICA4NzgxMjAzNWU1NzViMGI1LjdmZjYzMzgzYzRiOGQwMmEuNzVjNDEwZDk4MmE5NmZmOS5jOTAyZDQyOWMyNjRkYjljCiAgICAgMTBlMGUzMjUzZWY5MGVlMQogCi1WUElOU1JXXzEyOF8xb2Y0KHJlZykKK1ZQRVJNSUxQU18yNTZfMHhGQShyZWcpCiAgIGJlZm9yZQogICAgIDk0ZDhkMjlhODkyYjFjYmYuNmY1NzQzNmViYTE2NmU3MC43ODc4OTNjZTc0NGE0YWE2LjM2ZTQ3YzZkZTc1NGY4ODAKICAgICBiMjM3OWNmNDNlODc0M2RmLjhhZjFmMzYwMDI2ZWU1ZjQuMWU3YTEwMDc4MTdmZmRkMC5mY2EzNzY4NTcyZWYxYmZhCkBAIC0yMjI4MSwxMiArMjIyODEsMTIgQEAKICAgICAyYzU5YjIwNzU4ZTljNjljLmM5YTFlNzIzNWM3MWVkMDUuZGQzMDUyZjgxZjAzMDBkYy4wNzJhMDRmMTY4MjYyMTc2CiAgICAgMDQ4YTkxMWQwYmRiN2NkMAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZTdhMTAwNzgxN2ZmZGQwLmZjYTM3Njg1NzJlZjdjZDAKLSAgICBiMjM3OWNmNDNlODc0M2RmLjhhZjFmMzYwMDI2ZWU1ZjQuMWU3YTEwMDc4MTdmZmRkMC5mY2EzNzY4NTcyZWYxYmZhCisgICAgOTRkOGQyOWE4OTJiMWNiZi42ZjU3NDM2ZWJhMTY2ZTcwLjc4Nzg5M2NlNzQ0YTRhYTYuMzZlNDdjNmRlNzU0Zjg4MAorICAgIGM2NDgzZTlmYzY0ODNlOWYuZmE5N2JkZjBmYTk3YmRmMC5jYjQ5YTY5Y2NiNDlhNjljLjg2ZTMyNTUzODZlMzI1NTMKICAgICBjNjQ4M2U5ZmZhOTdiZGYwLmI0MWJhYWY5ZDk4OWQwNmMuY2I0OWE2OWM4NmUzMjU1My5hM2NjN2EwZDNlODY5NDkzCiAgICAgMmM1OWIyMDc1OGU5YzY5Yy5jOWExZTcyMzVjNzFlZDA1LmRkMzA1MmY4MWYwMzAwZGMuMDcyYTA0ZjE2ODI2MjE3NgogICAgIDA0OGE5MTFkMGJkYjdjZDAKLVZQSU5TUldfMTI4XzFvZjQobWVtKQorVlBFUk1JTFBTXzI1Nl8weEZBKG1lbSkKICAgYmVmb3JlCiAgICAgNzZiODljN2Q0M2FmNjFjYy40MGI1ZjY5OGY1MDk5YzhmLmE1NGYyM2NjYTczNGY1ZWIuYWU3ZDBlODdlOTZiYzgxNgogICAgIDM5ODBhMWZlMmViMDhlOTcuNWVhNzA1YmU2YzgyNzk3Ny4yM2YwZGJkZmQ1ZGVhNzQ5LjljN2FkOGI1ODBhNWJhYWUKQEAgLTIyMjk1LDEyICsyMjI5NSwxMiBAQAogICAgIGE0OGY1ZDMyMjZjMWUyNWYKICAgYWZ0ZXIKICAgICA3NmI4OWM3ZDQzYWY2MWNjLjQwYjVmNjk4ZjUwOTljOGYuYTU0ZjIzY2NhNzM0ZjVlYi5hZTdkMGU4N2U5NmJjODE2Ci0gICAgMzk4MGExZmUyZWIwOGU5Ny41ZWE3MDViZTZjODI3OTc3LjIzZjBkYmRmZDVkZWE3NDkuOWM3YWQ4YjU4MGE1YmFhZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yM2YwZGJkZmQ1ZGVhNzQ5LmM4MTZkOGI1ODBhNWJhYWUKKyAgICA3NmI4OWM3ZDQzYWY2MWNjLjQwYjVmNjk4NDBiNWY2OTguYTU0ZjIzY2NhNzM0ZjVlYi5hZTdkMGU4N2FlN2QwZTg3CisgICAgMjhhZTFjOGFlNWVhYmQ1Yy5lMTdjZGJlNTVhZTA5YWZkLjIxNTI4YzQ4MDI3OWJlNGMuMDE3NGFiZWY3ZTNmMTE0ZgogICAgIDIxMGQ4YTBmODY2N2FiNDkuMjc4MDc0N2E1YWFmM2JkMC43YTNmYjFmMzRiMTNmNTFmLjNhYjc4MzlmODJjNTBiYTYKICAgICBhNDhmNWQzMjI2YzFlMjVmCiAKLVZQSU5TUldfMTI4XzFvZjQocmVnKQorVlBFUk1JTFBTXzI1Nl8weEZBKHJlZykKICAgYmVmb3JlCiAgICAgOTk0ODMzMTUwNmMxZDMyNS5mZjZiNjU3NzJkMzYxNDg3LjhiZmZjZGU3MDg3Yzk3OWEuMGE4NGM2Y2NjYmI4MDhlZgogICAgIDc2MmUwM2IzYmY1MTE5YTUuOWQ5MjJiYjBmNTYwYjM0NS42OTQ1ZTA5YTAxZDJlYjA3LmFjZWQ0N2JmOWY3MmI1ZTcKQEAgLTIyMzA4LDEyICsyMjMwOCwxMiBAQAogICAgIDU5YWY3ZmNmMjk0ZDk3ODIuOGU2ZTY2NDI1OWZhODZlYi4wMjU0MmE3ZTQzNGI2YjdkLjlhNWE3ZmE0YjE1YmM4MDIKICAgICA5ZWY2MmQ2ZDI3YTFhNzdjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY5NDVlMDlhMDFkMmViMDcuYWNlZDQ3YmY5ZjcyYTc3YwotICAgIDc2MmUwM2IzYmY1MTE5YTUuOWQ5MjJiYjBmNTYwYjM0NS42OTQ1ZTA5YTAxZDJlYjA3LmFjZWQ0N2JmOWY3MmI1ZTcKKyAgICA5OTQ4MzMxNTA2YzFkMzI1LmZmNmI2NTc3MmQzNjE0ODcuOGJmZmNkZTcwODdjOTc5YS4wYTg0YzZjY2NiYjgwOGVmCisgICAgOTc4Y2M4Nzc5NzhjYzg3Ny5lY2ZiZjE4YmVjZmJmMThiLjFkOWRhYmZkMWQ5ZGFiZmQuZTEzZTczYzRlMTNlNzNjNAogICAgIDk3OGNjODc3ZWNmYmYxOGIuZDk0ZjU4YTVmYWYzNDVhYy4xZDlkYWJmZGUxM2U3M2M0LjNlNDViMWI4ZTI0ZmI2MzQKICAgICA1OWFmN2ZjZjI5NGQ5NzgyLjhlNmU2NjQyNTlmYTg2ZWIuMDI1NDJhN2U0MzRiNmI3ZC45YTVhN2ZhNGIxNWJjODAyCiAgICAgOWVmNjJkNmQyN2ExYTc3YwotVlBJTlNSV18xMjhfMW9mNChtZW0pCitWUEVSTUlMUFNfMjU2XzB4RkEobWVtKQogICBiZWZvcmUKICAgICAyNWU2MzcwMTYxMmQwZWNmLjE2ZTQyMjI2MTRkMzQ3MzYuOTdiYmQzNzMyZTgxMzIyYy43NmI3NTc4OGMzODUwZWRkCiAgICAgMGFmNjE5NGE3YTBiYmIyNy4yYjc1YWZlODQ2MTczYzU0LmQyMDIxOTI0OTQ5NTA0OWMuZDQxMDMwODdmZTc4OTk5MQpAQCAtMjIzMjIsMTIgKzIyMzIyLDEyIEBACiAgICAgMDFkYzk1N2EyNjIzMDA1YgogICBhZnRlcgogICAgIDI1ZTYzNzAxNjEyZDBlY2YuMTZlNDIyMjYxNGQzNDczNi45N2JiZDM3MzJlODEzMjJjLjc2Yjc1Nzg4YzM4NTBlZGQKLSAgICAwYWY2MTk0YTdhMGJiYjI3LjJiNzVhZmU4NDYxNzNjNTQuZDIwMjE5MjQ5NDk1MDQ5Yy5kNDEwMzA4N2ZlNzg5OTkxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQyMDIxOTI0OTQ5NTA0OWMuMGVkZDMwODdmZTc4OTk5MQorICAgIDI1ZTYzNzAxNjEyZDBlY2YuMTZlNDIyMjYxNmU0MjIyNi45N2JiZDM3MzJlODEzMjJjLjc2Yjc1Nzg4NzZiNzU3ODgKKyAgICAyYmYyNTAzNjhlNDg2N2FmLmY0YWUyMTgxNWRhN2IzODguMTkwZWI2NDFhNzQxYjk2Ni43N2FjYjBlNzhmYjE0ODQ1CiAgICAgNjJhNjU3YjBiYWVmZDE5NC5jZGRkNzQ1ZGY1MGZlODdlLjRhYWQyNmI2ODQ5MTBkYjcuYmRkNmQzMTQxM2JiNTZhNAogICAgIDAxZGM5NTdhMjYyMzAwNWIKIAotVlBJTlNSV18xMjhfMW9mNChyZWcpCitWUEVSTUlMUFNfMjU2XzB4RkEocmVnKQogICBiZWZvcmUKICAgICA5ZTA4ZjM4NjYyNzQ4MjE1LjhjZGVhYWE0MWEwY2IzMDEuMTI0ZGE1ZTlhOWRhMTZlMS4zZmE5ZTM3MDQ2OTJiYmJhCiAgICAgZjJhOGU3YTI2NjNhMTg3Zi44NjY1YzVmZWM5YWNjYTIzLjFmNDlhZThmMTU5NDdiNWQuZDZjZjZiNTkwYTRmODA5YwpAQCAtMjIzMzUsMTIgKzIyMzM1LDEyIEBACiAgICAgMmE2Zjg2YmUyZjU3NmUxMS41Njk0NDU5NDg1YTM4NjM0LjAxMTgzZGRkODgwNmQ0NTMuNTVjOGM5NmQwNjJmM2ZhYwogICAgIGY3MzQ5NzZlNzY2OWIwMzIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWY0OWFlOGYxNTk0N2I1ZC5kNmNmNmI1OTBhNGZiMDMyCi0gICAgZjJhOGU3YTI2NjNhMTg3Zi44NjY1YzVmZWM5YWNjYTIzLjFmNDlhZThmMTU5NDdiNWQuZDZjZjZiNTkwYTRmODA5YworICAgIDllMDhmMzg2NjI3NDgyMTUuOGNkZWFhYTQxYTBjYjMwMS4xMjRkYTVlOWE5ZGExNmUxLjNmYTllMzcwNDY5MmJiYmEKKyAgICA1NzA2NmYzYzU3MDY2ZjNjLmNiMDJmZDQ0Y2IwMmZkNDQuNTAxZThkYmQ1MDFlOGRiZC5kNmM5NTA5ZmQ2Yzk1MDlmCiAgICAgNTcwNjZmM2NjYjAyZmQ0NC4yYTA4MjVhYWUzZGFkMjI1LjUwMWU4ZGJkZDZjOTUwOWYuZTllYjM5NWZlYmQ1MTg4OQogICAgIDJhNmY4NmJlMmY1NzZlMTEuNTY5NDQ1OTQ4NWEzODYzNC4wMTE4M2RkZDg4MDZkNDUzLjU1YzhjOTZkMDYyZjNmYWMKICAgICBmNzM0OTc2ZTc2NjliMDMyCi1WUElOU1JXXzEyOF8xb2Y0KG1lbSkKK1ZQRVJNSUxQU18yNTZfMHhGQShtZW0pCiAgIGJlZm9yZQogICAgIGE5ZjkyMDUwNTc4ZjI4NDcuYzgyZjI5OTYyZWM1YTc5Mi5lNGQzYTFhOWNiMTJhNDdjLjhlODNiYjVkYzZkNjQxMjUKICAgICA0OGU0ZGZmZWM3YWU2MzE2LjhiOTE1MzJmNjNkOWUzNzIuYjE5MWI1ZDNkMDMzZTYyOC41M2FiMDFhODJjYzVkNWJmCkBAIC0yMjM0OSwxMiArMjIzNDksMTIgQEAKICAgICA4YTg3NjQ4MjZhYzhjODAyCiAgIGFmdGVyCiAgICAgYTlmOTIwNTA1NzhmMjg0Ny5jODJmMjk5NjJlYzVhNzkyLmU0ZDNhMWE5Y2IxMmE0N2MuOGU4M2JiNWRjNmQ2NDEyNQotICAgIDQ4ZTRkZmZlYzdhZTYzMTYuOGI5MTUzMmY2M2Q5ZTM3Mi5iMTkxYjVkM2QwMzNlNjI4LjUzYWIwMWE4MmNjNWQ1YmYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjE5MWI1ZDNkMDMzZTYyOC40MTI1MDFhODJjYzVkNWJmCisgICAgYTlmOTIwNTA1NzhmMjg0Ny5jODJmMjk5NmM4MmYyOTk2LmU0ZDNhMWE5Y2IxMmE0N2MuOGU4M2JiNWQ4ZTgzYmI1ZAorICAgIGIwYzI1MDY0ZGZkMTFjY2IuZDFlM2ZmZjU2YjFlNWY1ZS45OTljZmRmZmIwMTIwODY1LmFjZGIwZDI5NTc2MGM5ZDAKICAgICBiZTVjZWY2ZWJkMDUxMTk0LmY0NmYyYjU0ZTEyMDU3MDIuNzliZWY2MWE4OGJjYzc1ZS5mNTYxZGE0ZWUyMzI1YzAyCiAgICAgOGE4NzY0ODI2YWM4YzgwMgogCi1WUElOU1JXXzEyOF8yb2Y0KHJlZykKK1ZQRVJNSUxQU18yNTZfMHhBMyhyZWcpCiAgIGJlZm9yZQogICAgIGM2OWFhNzMyOGFhZDRhN2IuNGM4MTM5MDk3ZDU1ZmM5YS41MTgyZDNiODYxNmMwNzA5LjJiYzUxYjBmNzMzZGRmNDAKICAgICAwN2U2YTBjOGRmNmQxZTFhLjM3ZmNhODFmM2FjZDk5MGMuNDU2OGYxOGQ4ODhkYWExZi44YzdiZThjYThlOWYwYzM3CkBAIC0yMjM2MiwxMiArMjIzNjIsMTIgQEAKICAgICAwNTU4YTE1YTk2YWZhYTc5Ljk0MjNlYTcwMWM2NmRkZGUuNWRkZDg0M2IzYTdmYmMyYi5jYjI3NmI0MWMyM2I5NDEyCiAgICAgNjFiNTE4ZDYxMzhkNjc0ZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NTY4ZjE4ZDg4OGRhYTFmLjhjN2I2NzRlOGU5ZjBjMzcKLSAgICAwN2U2YTBjOGRmNmQxZTFhLjM3ZmNhODFmM2FjZDk5MGMuNDU2OGYxOGQ4ODhkYWExZi44YzdiZThjYThlOWYwYzM3CisgICAgYzY5YWE3MzI4YWFkNGE3Yi40YzgxMzkwOTdkNTVmYzlhLjUxODJkM2I4NjE2YzA3MDkuMmJjNTFiMGY3MzNkZGY0MAorICAgIDA0OTU3ZjhiMDQ5NTdmOGIuMTA3YWE2MTRhOGI3NGFiMS5mMjBmN2RmMmYyMGY3ZGYyLmY0ZjAwYTZlMmE2ZDgzM2YKICAgICBhOGI3NGFiMTA0OTU3ZjhiLjViOThiYTlkMTA3YWE2MTQuMmE2ZDgzM2ZmMjBmN2RmMi43OGFkZDkzNmY0ZjAwYTZlCiAgICAgMDU1OGExNWE5NmFmYWE3OS45NDIzZWE3MDFjNjZkZGRlLjVkZGQ4NDNiM2E3ZmJjMmIuY2IyNzZiNDFjMjNiOTQxMgogICAgIDYxYjUxOGQ2MTM4ZDY3NGUKLVZQSU5TUldfMTI4XzJvZjQobWVtKQorVlBFUk1JTFBTXzI1Nl8weEEzKG1lbSkKICAgYmVmb3JlCiAgICAgMTYyMjVlZTIwM2YxM2Y0Zi43OTE3YTEyZDMwNGFkYjkxLmJlNjdiNTgyNzlhMGZhOTguM2EwM2YwZWJmYzY4YTI3OQogICAgIGM2M2NiOTRmYWY3M2Q3NDEuNjIzZTQ3OTg2ZmVmNGU3ZS5iNTMxOTVjMTQ0MzFiYjZiLjFkMmRjM2JkZDU1NjZjODYKQEAgLTIyMzc2LDEyICsyMjM3NiwxMiBAQAogICAgIDgyYjI4MTMwZmViOTc5ZTIKICAgYWZ0ZXIKICAgICAxNjIyNWVlMjAzZjEzZjRmLjc5MTdhMTJkMzA0YWRiOTEuYmU2N2I1ODI3OWEwZmE5OC4zYTAzZjBlYmZjNjhhMjc5Ci0gICAgYzYzY2I5NGZhZjczZDc0MS42MjNlNDc5ODZmZWY0ZTdlLmI1MzE5NWMxNDQzMWJiNmIuMWQyZGMzYmRkNTU2NmM4NgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNTMxOTVjMTQ0MzFiYjZiLmEyNzljM2JkZDU1NjZjODYKKyAgICAwM2YxM2Y0ZjE2MjI1ZWUyLjc5MTdhMTJkMzA0YWRiOTEuNzlhMGZhOThiZTY3YjU4Mi4zYTAzZjBlYmZjNjhhMjc5CisgICAgNGRjZGEzMGEzMzIwZWM0Zi4xYTFhOGQwNWVlMmMzZWVkLjU1NGQwODE4OTkyN2RhODYuNjJhNWZhMWI2MGQ2NTZmZQogICAgIDg3YTI5YTAwYWEwMzNhYTYuZmZmNzcxZTI0OThjZTg4OS43YTg2ODk3MzkyOGUxNDEzLjY1Yjg5MDczM2E3MzljOGYKICAgICA4MmIyODEzMGZlYjk3OWUyCiAKLVZQSU5TUldfMTI4XzJvZjQocmVnKQorVlBFUk1JTFBTXzI1Nl8weEEzKHJlZykKICAgYmVmb3JlCiAgICAgMTVkZmM5YmU0OTM1MmFhNi41MDg3MTgxYjMxMjg3YzcxLjZiMjFlZTlhMWQ5Yzg4ZmYuMDBhYTk0YmU0ZTcwMjUzZQogICAgIDdhOGE2NTg5YjY3MmViODUuODQ0ODliNDllMjliNmZkZC5iY2U0MDE5OTA2ZTc1OWZiLmMzODNhNmU1ZTZkYmM4MzQKQEAgLTIyMzg5LDEyICsyMjM4OSwxMiBAQAogICAgIDJhOGU4NTg2Njg2MThjNDYuOWM4ZDllOGEzOTllNTg0Ny43OTY0ZDUxYzg0NWY4MTMzLjZmODdjYjc3MjA3YWI3MzEKICAgICAxMTRhZDdiYmY5YzY3YThmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJjZTQwMTk5MDZlNzU5ZmIuYzM4MzdhOGZlNmRiYzgzNAotICAgIDdhOGE2NTg5YjY3MmViODUuODQ0ODliNDllMjliNmZkZC5iY2U0MDE5OTA2ZTc1OWZiLmMzODNhNmU1ZTZkYmM4MzQKKyAgICAxNWRmYzliZTQ5MzUyYWE2LjUwODcxODFiMzEyODdjNzEuNmIyMWVlOWExZDljODhmZi4wMGFhOTRiZTRlNzAyNTNlCisgICAgZTJmZGY4MmJlMmZkZjgyYi5kYzY5Y2YxNjBkMDE0ZmZkLjlmZjk5ODI4OWZmOTk4MjguNzhkYWJhMjE0YzhjYTQ0YgogICAgIDBkMDE0ZmZkZTJmZGY4MmIuZmZiMDlmNzVkYzY5Y2YxNi40YzhjYTQ0YjlmZjk5ODI4LjlmZGUzOWQ0NzhkYWJhMjEKICAgICAyYThlODU4NjY4NjE4YzQ2LjljOGQ5ZThhMzk5ZTU4NDcuNzk2NGQ1MWM4NDVmODEzMy42Zjg3Y2I3NzIwN2FiNzMxCiAgICAgMTE0YWQ3YmJmOWM2N2E4ZgotVlBJTlNSV18xMjhfMm9mNChtZW0pCitWUEVSTUlMUFNfMjU2XzB4QTMobWVtKQogICBiZWZvcmUKICAgICA2MGYzZGE4YTIwY2FjMTY3LjJkN2UwMjkxZTUyYWU0N2YuMzlhOTE2NzYxNTQ0YzY5ZC45ZGI5OGY3OTUyYTQ1MGM4CiAgICAgMzg0ZTRlZDJiMDkzNDZlNi43MjFkYzM4OGY0ZTQzYzg1LmIxZDE4MjI0OGQ2YWQ0NDMuMTZkN2NlY2NhNDU0NDA5MgpAQCAtMjI0MDMsMTIgKzIyNDAzLDEyIEBACiAgICAgMGZkZTgzYzljZTYxMzNlYQogICBhZnRlcgogICAgIDYwZjNkYThhMjBjYWMxNjcuMmQ3ZTAyOTFlNTJhZTQ3Zi4zOWE5MTY3NjE1NDRjNjlkLjlkYjk4Zjc5NTJhNDUwYzgKLSAgICAzODRlNGVkMmIwOTM0NmU2LjcyMWRjMzg4ZjRlNDNjODUuYjFkMTgyMjQ4ZDZhZDQ0My4xNmQ3Y2VjY2E0NTQ0MDkyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIxZDE4MjI0OGQ2YWQ0NDMuNTBjOGNlY2NhNDU0NDA5MgorICAgIDIwY2FjMTY3NjBmM2RhOGEuMmQ3ZTAyOTFlNTJhZTQ3Zi4xNTQ0YzY5ZDM5YTkxNjc2LjlkYjk4Zjc5NTJhNDUwYzgKKyAgICA3NDI2YjE3ZGM1MmNjNTM4LjU1YjdjMmQ4MzExY2NmMDIuZTBkMTVlODBiYzE5M2U2Ni4zZTBhOGY4MjE3ZmM4ZTNkCiAgICAgZjI0ODdlNzk3ZGEyZmM4OC4zMjk4ZmRlZTM5NWRkYWEyLmExNzUyNjc3YmY1ZmMyMzIuNzI5ZWNjMDg0NjI3NzY3NwogICAgIDBmZGU4M2M5Y2U2MTMzZWEKIAotVlBJTlNSV18xMjhfMm9mNChyZWcpCitWUEVSTUlMUFNfMjU2XzB4QTMocmVnKQogICBiZWZvcmUKICAgICA2ZjE4YWYzMDRhMzcwMjQyLjhkODAzMWIxZjFmZmE1MDMuNjQwYjZmMzVhODM0OTkxMi5kMjg5NTdmM2IxNDcxYWQyCiAgICAgZWY5NjRkYWI1NzM0MWYyYy4yMDlhNDYxMTNmNTE3ZGQ1LjQ5NWUxNDE5MTkyYzQ3ZmUuNGVkODZjZTFhZmRkMDM3MgpAQCAtMjI0MTYsMTIgKzIyNDE2LDEyIEBACiAgICAgYmY5MWNiOGE5MmQ0MzI2NS5hMmE0ODhmOWQ3MDNhOTJiLjk5Y2ZlODY3NzJhZjY0ZjguOTY1YjMyYzQzZDQ1Nzc2NgogICAgIDFhMjZkYjkxMDUyZTdiMTAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDk1ZTE0MTkxOTJjNDdmZS40ZWQ4N2IxMGFmZGQwMzcyCi0gICAgZWY5NjRkYWI1NzM0MWYyYy4yMDlhNDYxMTNmNTE3ZGQ1LjQ5NWUxNDE5MTkyYzQ3ZmUuNGVkODZjZTFhZmRkMDM3MgorICAgIDZmMThhZjMwNGEzNzAyNDIuOGQ4MDMxYjFmMWZmYTUwMy42NDBiNmYzNWE4MzQ5OTEyLmQyODk1N2YzYjE0NzFhZDIKKyAgICA5MGU0YzY1NDkwZTRjNjU0LjgyYTQzZjI5ZWJhNTU3YTUuMjhkMTIyMTEyOGQxMjIxMS5kNDJlMzk0MDNjZGJlOTA1CiAgICAgZWJhNTU3YTU5MGU0YzY1NC44OTYyM2E4NTgyYTQzZjI5LjNjZGJlOTA1MjhkMTIyMTEuZjAzMGUxMmVkNDJlMzk0MAogICAgIGJmOTFjYjhhOTJkNDMyNjUuYTJhNDg4ZjlkNzAzYTkyYi45OWNmZTg2NzcyYWY2NGY4Ljk2NWIzMmM0M2Q0NTc3NjYKICAgICAxYTI2ZGI5MTA1MmU3YjEwCi1WUElOU1JXXzEyOF8yb2Y0KG1lbSkKK1ZQRVJNSUxQU18yNTZfMHhBMyhtZW0pCiAgIGJlZm9yZQogICAgIDVhNWQ1OTgwNDlmNmZlNmIuYzdhNmE0YzZmODhmYTAwYy40OTJiYWM1OTVhN2E3NTA5LmJiODYwZmFhOTI1MzQ5NWYKICAgICAzMGNjMjc3YzI0YThiZmEzLjYwMzBkZWM1NWVhMTRjZjQuNThjNTIyOTIyNTE1NWZlZC4wMDRjNTkzYjI1NDgwZmYxCkBAIC0yMjQzMCwxMiArMjI0MzAsMTIgQEAKICAgICAzMWVlZTNmMmE1ODhmNTY1CiAgIGFmdGVyCiAgICAgNWE1ZDU5ODA0OWY2ZmU2Yi5jN2E2YTRjNmY4OGZhMDBjLjQ5MmJhYzU5NWE3YTc1MDkuYmI4NjBmYWE5MjUzNDk1ZgotICAgIDMwY2MyNzdjMjRhOGJmYTMuNjAzMGRlYzU1ZWExNGNmNC41OGM1MjI5MjI1MTU1ZmVkLjAwNGM1OTNiMjU0ODBmZjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNThjNTIyOTIyNTE1NWZlZC40OTVmNTkzYjI1NDgwZmYxCisgICAgNDlmNmZlNmI1YTVkNTk4MC5jN2E2YTRjNmY4OGZhMDBjLjVhN2E3NTA5NDkyYmFjNTkuYmI4NjBmYWE5MjUzNDk1ZgorICAgIDdhM2VjMTczYjI1MTc4ZTMuZTQ3YTc2ZjQ2MTk3NzJjYS5hZDNjNjc4ZTU3ZTEyNTAzLmMyNmNjMzg0YzcxYmYwNWIKICAgICAxMjgxYTM1MDEwZmJlNjU4LmIwZDI2NmJkOWRmYzRkM2EuMjI1ZGY1M2EwOWU5ODE3OC41ZjM0NDdmMjEyNTcyOTQ4CiAgICAgMzFlZWUzZjJhNTg4ZjU2NQogCi1WUElOU1JXXzEyOF8zb2Y0KHJlZykKK1ZQRVJNSUxQU18yNTZfMHg1QShyZWcpCiAgIGJlZm9yZQogICAgIDk2ZTc5MmVlMTkzYjkyNWQuZDU1ZjRhMDA1YWI1YzUyZC4yMDgyYWM4ZGFkNWQxYWVmLjk0ZjQ0YTgzNWEzOTMwNzgKICAgICBlODZiNTA1NDBjZmIzYWRkLmEwYTUzMTZkYWE4OGQwOGYuOTBkNzQzZDEyZDQ0MTQ5Ni5lMGNjZTE1NDYzZGVlZDJlCkBAIC0yMjQ0MywxMiArMjI0NDMsMTIgQEAKICAgICBjNzQzZWEwYWRlZDM5ZDI0LmI5OTlhZjMyZDNhZTVlYTkuZGZhMDU1NjFmMGRhODM2OC43MTczYzYzZDEzNTU4NTZlCiAgICAgNzBkOTBjMmVmMTNmZDY1MAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MGQ3NDNkMTJkNDRkNjUwLmUwY2NlMTU0NjNkZWVkMmUKLSAgICBlODZiNTA1NDBjZmIzYWRkLmEwYTUzMTZkYWE4OGQwOGYuOTBkNzQzZDEyZDQ0MTQ5Ni5lMGNjZTE1NDYzZGVlZDJlCisgICAgOTZlNzkyZWUxOTNiOTI1ZC5kNTVmNGEwMDVhYjVjNTJkLjIwODJhYzhkYWQ1ZDFhZWYuOTRmNDRhODM1YTM5MzA3OAorICAgIDRkMWZkNDg0NGQxZmQ0ODQuMWE1NDI5OTExYTU0Mjk5MS5lMGIzMzc5OGUwYjMzNzk4LmJhM2Y3OWRhYmEzZjc5ZGEKICAgICA4NWM2MWE4ZTFhNTQyOTkxLjRkMWZkNDg0MWY4MmM1YWEuNWMxZDI4ZjRiYTNmNzlkYS5lMGIzMzc5ODQzZTM3NmM3CiAgICAgYzc0M2VhMGFkZWQzOWQyNC5iOTk5YWYzMmQzYWU1ZWE5LmRmYTA1NTYxZjBkYTgzNjguNzE3M2M2M2QxMzU1ODU2ZQogICAgIDcwZDkwYzJlZjEzZmQ2NTAKLVZQSU5TUldfMTI4XzNvZjQobWVtKQorVlBFUk1JTFBTXzI1Nl8weDVBKG1lbSkKICAgYmVmb3JlCiAgICAgYjdiMjg0NTdmOWFkMjc5OS4wYjMwYmUzM2Y1MDNkMDQzLmMwZGYzZTYxZTIxOTU3YjkuNzdhYmM4ODY2OWEwNmZlYwogICAgIDIzYzdhYWE0NDZhYzMyNzQuYWVkNzkxNzVmYTcwZmY5YS4zZmJjZmVmZjY5Y2Q2ZDA2LjdmOGI3Y2NlYzQxZDc4MTEKQEAgLTIyNDU3LDEyICsyMjQ1NywxMiBAQAogICAgIGNlMjJmN2IxMmQ1ODlmMDIKICAgYWZ0ZXIKICAgICBiN2IyODQ1N2Y5YWQyNzk5LjBiMzBiZTMzZjUwM2QwNDMuYzBkZjNlNjFlMjE5NTdiOS43N2FiYzg4NjY5YTA2ZmVjCi0gICAgMjNjN2FhYTQ0NmFjMzI3NC5hZWQ3OTE3NWZhNzBmZjlhLjNmYmNmZWZmNjljZDZkMDYuN2Y4YjdjY2VjNDFkNzgxMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZmJjZmVmZjZmZWM2ZDA2LjdmOGI3Y2NlYzQxZDc4MTEKKyAgICAwYjMwYmUzM2Y1MDNkMDQzLjBiMzBiZTMzMGIzMGJlMzMuNzdhYmM4ODY2OWEwNmZlYy43N2FiYzg4Njc3YWJjODg2CisgICAgOTBlN2ZiMDJmNDQ2YjQwZS4wYTg1NWYzYzg5YTc2NWQ0LjEwZmQ2YWY2ODNkOTVjYmIuNTM4ZDZkYTU5YWRkZGI4MwogICAgIGRhZGRmMjViMjA4YTY5OTMuN2M4NjI1ZjQzZjMzNDA5ZC4xMDZmZmUzNDRkNDZlMDA0LjRmZmI5Nzc3OGE2ZGQ0ZjAKICAgICBjZTIyZjdiMTJkNTg5ZjAyCiAKLVZQSU5TUldfMTI4XzNvZjQocmVnKQorVlBFUk1JTFBTXzI1Nl8weDVBKHJlZykKICAgYmVmb3JlCiAgICAgMmU0ZTg4YmQyMjJiNzc2NS5kZDc0MGI5Y2U2ODEwYzJlLjYxMjZkZTBhYjhhMGNhYTMuMWJkYzM2YTRlMjIyYjUwZQogICAgIGNhY2E0NjA4MDI3MTlhYzYuNzY3YWMyYjI2MTM5NWEwYi4xM2IxODVlODhmN2I0MDhmLjBkMTA4ZjMyNWY3ODk2MDUKQEAgLTIyNDcwLDEyICsyMjQ3MCwxMiBAQAogICAgIDI1ZTYzYTBkZjk4N2FiMzEuZDVmZWZiMDllNzFhZTYzZS41MWI3OTNiMGM4YThkZWQwLjE2MDI5MDU4N2ZjNDZmNjkKICAgICBlNTU2MzFjODVhZDFkZTJkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEzYjE4NWU4OGY3YmRlMmQuMGQxMDhmMzI1Zjc4OTYwNQotICAgIGNhY2E0NjA4MDI3MTlhYzYuNzY3YWMyYjI2MTM5NWEwYi4xM2IxODVlODhmN2I0MDhmLjBkMTA4ZjMyNWY3ODk2MDUKKyAgICAyZTRlODhiZDIyMmI3NzY1LmRkNzQwYjljZTY4MTBjMmUuNjEyNmRlMGFiOGEwY2FhMy4xYmRjMzZhNGUyMjJiNTBlCisgICAgN2ZiOTkzODg3ZmI5OTM4OC42YmI2NDFkMTZiYjY0MWQxLmMyZDk4M2NhYzJkOTgzY2EuNjA0ZmRkMTA2MDRmZGQxMAogICAgIGZkZTQyZGZmNmJiNjQxZDEuN2ZiOTkzODhhZGJkMGY1Ny5lZjczMTlmYzYwNGZkZDEwLmMyZDk4M2NhZGY1NTQwMTUKICAgICAyNWU2M2EwZGY5ODdhYjMxLmQ1ZmVmYjA5ZTcxYWU2M2UuNTFiNzkzYjBjOGE4ZGVkMC4xNjAyOTA1ODdmYzQ2ZjY5CiAgICAgZTU1NjMxYzg1YWQxZGUyZAotVlBJTlNSV18xMjhfM29mNChtZW0pCitWUEVSTUlMUFNfMjU2XzB4NUEobWVtKQogICBiZWZvcmUKICAgICAwYmEyZTMwNzhjODk0YThlLjlkMWQ2NzlkNDc2ZTEyOTMuNTQxNTc0MjMyYTViOWRlYi45NWNhZjE3MjYyMTM3ZjdiCiAgICAgNjRiMjIwZmYzMmY3NmZiOC5jMGQ1YjIxZGYyZmFiM2EzLmQ3Yzk3Y2MxOTM4Y2VkOGIuMTdmODJkYWNjYjFiZmNiZgpAQCAtMjI0ODQsMTIgKzIyNDg0LDEyIEBACiAgICAgYTkxY2Y3NmJmNDViZjBjZQogICBhZnRlcgogICAgIDBiYTJlMzA3OGM4OTRhOGUuOWQxZDY3OWQ0NzZlMTI5My41NDE1NzQyMzJhNWI5ZGViLjk1Y2FmMTcyNjIxMzdmN2IKLSAgICA2NGIyMjBmZjMyZjc2ZmI4LmMwZDViMjFkZjJmYWIzYTMuZDdjOTdjYzE5MzhjZWQ4Yi4xN2Y4MmRhY2NiMWJmY2JmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ3Yzk3Y2MxN2Y3YmVkOGIuMTdmODJkYWNjYjFiZmNiZgorICAgIDlkMWQ2NzlkNDc2ZTEyOTMuOWQxZDY3OWQ5ZDFkNjc5ZC45NWNhZjE3MjYyMTM3ZjdiLjk1Y2FmMTcyOTVjYWYxNzIKKyAgICBjYzUyNjY5ZTY4MjcwOGQ3LmVjNWExNmY4OTViNGNhMGMuM2NlODhmY2YzZGJhOTU0YS4zMzhkNDVjYzllNGM5MDQ1CiAgICAgMWY0ZTMwY2U0OTI2ZDIxNi43YmY4OTA5YWNjMmE5MjdiLjVlM2MyNzM5NDVmMDUwNTMuNDVkNTM1M2Q3ODMzNzhiYwogICAgIGE5MWNmNzZiZjQ1YmYwY2UKIAotVlBJTlNSV18xMjhfM29mNChyZWcpCitWUEVSTUlMUFNfMjU2XzB4NUEocmVnKQogICBiZWZvcmUKICAgICBiYmFkODljMmFmNTEzMzI3LjM5NzJmYjdkZjFmZjg5YTEuY2JmYTFhNmYzNGU3NDg5Yi4xOTkyYzJlYmM2M2FkOWQzCiAgICAgZDdkNWU2YWY0NDlmN2Y3NC5mNTg5NDE5NjdkYmVlOWE1LjM2YWViMmUzNjg3ODI4MTkuNDliNmRhZDFkZGE1ZWNmNQpAQCAtMjI0OTcsMTIgKzIyNDk3LDEyIEBACiAgICAgOWQxYmYxZjY2ZTc5MWM5YS5jOGM0MzNiNmFmMjA5M2M3LmQxNTdmOTU5YTc0MzU1ZGQuNzc5ODc3ZWEzYjBiYTRkMgogICAgIDJlZWVmMmY1YmExZmMwZTQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzZhZWIyZTM2ODc4YzBlNC40OWI2ZGFkMWRkYTVlY2Y1Ci0gICAgZDdkNWU2YWY0NDlmN2Y3NC5mNTg5NDE5NjdkYmVlOWE1LjM2YWViMmUzNjg3ODI4MTkuNDliNmRhZDFkZGE1ZWNmNQorICAgIGJiYWQ4OWMyYWY1MTMzMjcuMzk3MmZiN2RmMWZmODlhMS5jYmZhMWE2ZjM0ZTc0ODliLjE5OTJjMmViYzYzYWQ5ZDMKKyAgICAzMTYxODAwNTMxNjE4MDA1LjUwZDQwZTYxNTBkNDBlNjEuY2E3NGVlZDhjYTc0ZWVkOC4wNTY4NmVhMDA1Njg2ZWEwCiAgICAgNTllMTBhOWM1MGQ0MGU2MS4zMTYxODAwNTA4NzBhZTRlLjFhNWU1MzYyMDU2ODZlYTAuY2E3NGVlZDhhNTNjNDdlNgogICAgIDlkMWJmMWY2NmU3OTFjOWEuYzhjNDMzYjZhZjIwOTNjNy5kMTU3Zjk1OWE3NDM1NWRkLjc3OTg3N2VhM2IwYmE0ZDIKICAgICAyZWVlZjJmNWJhMWZjMGU0Ci1WUElOU1JXXzEyOF8zb2Y0KG1lbSkKK1ZQRVJNSUxQU18yNTZfMHg1QShtZW0pCiAgIGJlZm9yZQogICAgIGNhNDFkY2U0M2U4MzU3NDkuZmZjZjk4MmEzYTFjZTdjYS45NjdmZDY5NThkZGE1NDNkLmI4ZTVhMTMyZTg5NjFhN2MKICAgICAyNzVlYjBhMmU0NDMyNDJjLmRhNGJmYWEyNTE0OGE5OWQuNzY1ZWU1OGViZmFiYWZkYy4yYzU0NDY1YjY3ZWNmOTI4CkBAIC0yMjUxMSwxMiArMjI1MTEsMTIgQEAKICAgICA2NWRkZmJlNzY0N2E4ODM2CiAgIGFmdGVyCiAgICAgY2E0MWRjZTQzZTgzNTc0OS5mZmNmOTgyYTNhMWNlN2NhLjk2N2ZkNjk1OGRkYTU0M2QuYjhlNWExMzJlODk2MWE3YwotICAgIDI3NWViMGEyZTQ0MzI0MmMuZGE0YmZhYTI1MTQ4YTk5ZC43NjVlZTU4ZWJmYWJhZmRjLjJjNTQ0NjViNjdlY2Y5MjgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzY1ZWU1OGUxYTdjYWZkYy4yYzU0NDY1YjY3ZWNmOTI4CisgICAgZmZjZjk4MmEzYTFjZTdjYS5mZmNmOTgyYWZmY2Y5ODJhLmI4ZTVhMTMyZTg5NjFhN2MuYjhlNWExMzJiOGU1YTEzMgorICAgIDIwMTFlYTFkYzg2Y2U0YmEuOGNkYTEzY2M0ZjhhOWZjMC40NjJjZGQ4ZDYwOWU1ZWNmLjg3ZWZlMzNlYmRkMTJkOGUKICAgICA5MzI2MDc0MDA1MDk1MzFlLjcwYzdkZjEzY2Y2YzA0ZGYuZTFiNzM4N2Y4ZGJmMWU0My4yNjA0Nzc0OTg5ZDJmNDU5CiAgICAgNjVkZGZiZTc2NDdhODgzNgogCi1WUElOU1JXXzEyOF80b2Y0KHJlZykKK1ZQTVVMSFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYTBjNzZjODRlYzU1MjVkMS41YTY5ODFmN2I3MjYyZDg1LmUyNWY1YWUzNmQ3ZDE1YTUuMjJjOTc0NGU2MTFiYWI2MwogICAgIDM0MGVjNzhjYmRmMDA4ZDUuNTNhNmQ2MmVmYmQwMmQxYi4zZGVlODFhOGM2NDYwZWJmLmU3MmYwZGU4ZjliZGMwNWMKQEAgLTIyNTI0LDEyICsyMjUyNCwxMiBAQAogICAgIGQyZTMyODhkYTg5NDkwY2IuNDczZGZlY2RhN2Y5OTI4Mi4yMzIxYzBjMTE3MzVhNzllLjY5Mjc0MjI5ZTMwNDc1ODcKICAgICBkZTUxZDdhOTZkYzE4ZDEyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNkZWU4ZDEyYzY0NjBlYmYuZTcyZjBkZThmOWJkYzA1YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wODdmMWYzNmZhYzRmYWU4LmY1Y2UwMzk4MDBiNWUyYzgKICAgICAzNDBlYzc4Y2JkZjAwOGQ1LjUzYTZkNjJlZmJkMDJkMWIuM2RlZTgxYThjNjQ2MGViZi5lNzJmMGRlOGY5YmRjMDVjCiAgICAgN2JmZTA3NmI3MmQ2NmVlZi41OGE4ODFkMWVjMTIxMDBiLmRmYzA0ZmNlNzU1NTJiZDkuMGFiNjdkMzc3MGIxMWE1OQogICAgIGQyZTMyODhkYTg5NDkwY2IuNDczZGZlY2RhN2Y5OTI4Mi4yMzIxYzBjMTE3MzVhNzllLjY5Mjc0MjI5ZTMwNDc1ODcKICAgICBkZTUxZDdhOTZkYzE4ZDEyCi1WUElOU1JXXzEyOF80b2Y0KG1lbSkKK1ZQTVVMSFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNDdmZmI4YTMyYWY1MWQyNS45NTA4Mjc1ZWZhYjRhZDE0LmZhMmZjYTBjNDc4ZjZlYWMuNjQ1Y2QwZWQ0NzczYzBiYgogICAgIDdlZmM2MTAzMzdhYmUyZWQuMjBiYWZmNGIwNGM0ZmY3Ni40ZjRiNjA3Y2U5ZTM2MWI0LjAwYmY3Y2JlYTI5YWFmZGIKQEAgLTIyNTM5LDExICsyMjUzOSwxMSBAQAogICBhZnRlcgogICAgIDQ3ZmZiOGEzMmFmNTFkMjUuOTUwODI3NWVmYWI0YWQxNC5mYTJmY2EwYzQ3OGY2ZWFjLjY0NWNkMGVkNDc3M2MwYmIKICAgICA3ZWZjNjEwMzM3YWJlMmVkLjIwYmFmZjRiMDRjNGZmNzYuNGY0YjYwN2NlOWUzNjFiNC4wMGJmN2NiZWEyOWFhZmRiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMwYmI2MDdjZTllMzYxYjQuMDBiZjdjYmVhMjlhYWZkYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZTMyZWJhYWY5ZDEyYTNjLjAwNGFlOTBmZTVlZTEzY2UKICAgICBjYTE3ZmNhNWIwY2RmYTRiLmZlZjYyOTI1YjNlMzM1MzguNGEzMGRhOWJhMWVlN2MxMC5iNTI4OTUwMDQ3ZDQwNmQ2CiAgICAgODZjN2ZhNDljOWZmZTUwOQogCi1WUElOU1JXXzEyOF80b2Y0KHJlZykKK1ZQTVVMSFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjJiZGVhZTdlNjQzOGNmMC45NmNjZTZjMDUzNTJjNjM4LjA5MTc3NWViOGYwOTkwZWYuYWE5MmI2MjNlZmJlMWJiYwogICAgIGUzNTY2MjQ2MzkyZDM2MzYuYTEwMDg5ZjBiNjg5YjU4Yi40Y2Y0ODk3YjkzNGUxMTcwLjFhNGQ0ZDhhYWY3YmMxZjYKQEAgLTIyNTUxLDEyICsyMjU1MSwxMiBAQAogICAgIDQ4YTBkN2Y2ZjMyMDg3OTIuZTUxYWU2NDMyYTNmZjMwZC5lOTE2ZmVhZTg1Njc3NDdmLjlkMDI5OWFhZjJlOTExYzcKICAgICA2OTkyNDYzYmFmYjIzNGI1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRjZjQzNGI1OTM0ZTExNzAuMWE0ZDRkOGFhZjdiYzFmNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mOTFjMDA5YzM0MGQwN2VmLmY1ZDRlMTAwMDQxZGZiYjEKICAgICBlMzU2NjI0NjM5MmQzNjM2LmExMDA4OWYwYjY4OWI1OGIuNGNmNDg5N2I5MzRlMTE3MC4xYTRkNGQ4YWFmN2JjMWY2CiAgICAgMjZkZDVkZDE1ZjQ4MjE4OC5jNzgxNWYyM2Y0N2Y4NjZkLjIzZGI2MzQzNWMzZmY0NjcuNzcyZTFhYmVmYzJmMmFlYgogICAgIDQ4YTBkN2Y2ZjMyMDg3OTIuZTUxYWU2NDMyYTNmZjMwZC5lOTE2ZmVhZTg1Njc3NDdmLjlkMDI5OWFhZjJlOTExYzcKICAgICA2OTkyNDYzYmFmYjIzNGI1Ci1WUElOU1JXXzEyOF80b2Y0KG1lbSkKK1ZQTVVMSFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjVhZDlkNWI0Yzk4NGRlMi5hM2U5Y2MyMTkxNDFhNGZmLmQ1OTY5OTNlNzNkNWI5OTUuZmNmMzU2MjhhYjUzY2Y2NQogICAgIDVlMWUxYmY3ZTdhNjE4NzkuOTQwNTM4YmNkNjM5YjU3Yi43NGMyZjRmZmVjNGQ5NDMxLmI3YmM2ODFkNjk4ZTNmYzQKQEAgLTIyNTY2LDExICsyMjU2NiwxMSBAQAogICBhZnRlcgogICAgIGI1YWQ5ZDViNGM5ODRkZTIuYTNlOWNjMjE5MTQxYTRmZi5kNTk2OTkzZTczZDViOTk1LmZjZjM1NjI4YWI1M2NmNjUKICAgICA1ZTFlMWJmN2U3YTYxODc5Ljk0MDUzOGJjZDYzOWI1N2IuNzRjMmY0ZmZlYzRkOTQzMS5iN2JjNjgxZDY5OGUzZmM0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNmNjVmNGZmZWM0ZDk0MzEuYjdiYzY4MWQ2OThlM2ZjNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lY2E3MDQ2YWY3MTYxZGE3LjAwZGMyMzBhZGQxNmYzZTQKICAgICAzNzMxNzk1NDg1NmNiODk4LmE5ZTU2N2Y1YzRkN2EzNTMuMmY1YTkyODNkYzE1Nzg1OC45NDQ0YTYyOTFmMjE1MGEwCiAgICAgNmY5Y2NiMTc0ZjkyNjk3NAogCi1WUElOU1JXXzEyOF80b2Y0KHJlZykKK1ZQTVVMSFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjIxMDk5MzE4NzgyODg3Mi4xZjZiNTFlZGMxM2IwMzc3Ljg0NDIyMTZjYTQ5NmY4MDcuMDM1ZWNlMWU4YjdkZjkzYgogICAgIGM4ZWUwZGUxNjM3ZWU4NDUuZDQyYjQwYjE2YTYzZjI3MS42NWExNDMwMzliNWEzMDdhLmY2NDFhMjJmZGFmNzdlZTIKQEAgLTIyNTc4LDEyICsyMjU3OCwxMiBAQAogICAgIDYyMTNkM2I4N2FjNzVlMWMuMTU2YzUwNmY3NGViYTc2NC5hOTk5YWI0NjNjMjMzYjRmLmE5ZDgwMzYzYzU1Mjg4MmUKICAgICAyMTIzODc1ZjlhNGI4NDJhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY1YTE4NDJhOWI1YTMwN2EuZjY0MWEyMmZkYWY3N2VlMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZGIzZTlkMmU4NWIwYjNiLjAzNDdmZWMyMDg3ZGM0OWMKICAgICBjOGVlMGRlMTYzN2VlODQ1LmQ0MmI0MGIxNmE2M2YyNzEuNjVhMTQzMDM5YjVhMzA3YS5mNjQxYTIyZmRhZjc3ZWUyCiAgICAgZmY4MDIyOTU4MDExYzY5YS4zMjNkYzE4ZTljZWYzZmIxLmE4NTBjNzI4NDRiMDg4NTguZTRkMThhYTJlNDhmYzU3OQogICAgIDYyMTNkM2I4N2FjNzVlMWMuMTU2YzUwNmY3NGViYTc2NC5hOTk5YWI0NjNjMjMzYjRmLmE5ZDgwMzYzYzU1Mjg4MmUKICAgICAyMTIzODc1ZjlhNGI4NDJhCi1WUElOU1JXXzEyOF80b2Y0KG1lbSkKK1ZQTVVMSFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjg3ZTk0ODA3Zjg2NzQ5Yy40Y2YzMWZiNmVjMmRlYzc4LjU5ODY2OTQwMGQ2M2U2YjYuYzRjOWVhYzkxZTNmODcwOAogICAgIDlhYjVhNWI0OGYxMDE1YWUuMWI2Y2ZmZmI3MmNlYWM1YS5kYTU1ODhlZDg0NjRiN2QyLjU1MmI4MDFkODc5MWE2MzIKQEAgLTIyNTkzLDExICsyMjU5MywxMSBAQAogICBhZnRlcgogICAgIDI4N2U5NDgwN2Y4Njc0OWMuNGNmMzFmYjZlYzJkZWM3OC41OTg2Njk0MDBkNjNlNmI2LmM0YzllYWM5MWUzZjg3MDgKICAgICA5YWI1YTViNDhmMTAxNWFlLjFiNmNmZmZiNzJjZWFjNWEuZGE1NTg4ZWQ4NDY0YjdkMi41NTJiODAxZDg3OTFhNjMyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg3MDg4OGVkODQ2NGI3ZDIuNTUyYjgwMWQ4NzkxYTYzMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMmQzY2YwYmY5ODkwNzIxLmVjNGMwYTk5ZjFjNTJhNmYKICAgICAyZWU2YzQwMmExM2U1YTYzLmQzNTc2ZjBhMmRmMmIwNWUuMDI0NWNhOGM3YTJmMDIxYS40OWI5YTNlODVjMDU0ZjgzCiAgICAgNjQ3ZDI2MzcwMDNlNTEwMwogCi1WQlJPQURDQVNUU1NfMjU2KHJlZykKK1ZQVU5QQ0tIUURRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDY1YTNmMjA3OWJkZDE3YTMuMDk3OGNhZjNkY2ZiNzU1Zi43NjYzZjdhYzk5OGM2Y2Q5LjYyZmVlNDU1MzExMWYzOWUKICAgICBhODc4MDBjNWM4NmVkZDBmLmJmMTZjM2E3YjEzNjMyYWIuNmMzNzA1NDY4OTkzNGE4OS42ZjlkZjRhYTM1YWM2ODlkCkBAIC0yMjYwNSwxMiArMjI2MDUsMTIgQEAKICAgICA2MzVlZDZiNzQ5OTM1OGY4LjJiYTY4NDA2OWY1NzdjZTYuYzU2OTlmMGU2NzExNWMzYS5mZmJjZThhYTk3MzljOGI5CiAgICAgM2JkNGMyMmIyYzQ1MmQzMAogICBhZnRlcgotICAgIDY1YTNmMjA3OWJkZDE3YTMuMDk3OGNhZjNkY2ZiNzU1Zi43NjYzZjdhYzk5OGM2Y2Q5LjYyZmVlNDU1MzExMWYzOWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTMyMDkzNDI5YTkwODYxYS42YzM3MDU0Njg5OTM0YTg5CiAgICAgYTg3ODAwYzVjODZlZGQwZi5iZjE2YzNhN2IxMzYzMmFiLjZjMzcwNTQ2ODk5MzRhODkuNmY5ZGY0YWEzNWFjNjg5ZAogICAgIDg4NDg0ZGRiMjM3Y2RlZjIuMmM4YzJlMGEzZmZiNGE3NC4xMzIwOTM0MjlhOTA4NjFhLjA1ZWU3Nzc4YTMwYTFiNDIKICAgICA2MzVlZDZiNzQ5OTM1OGY4LjJiYTY4NDA2OWY1NzdjZTYuYzU2OTlmMGU2NzExNWMzYS5mZmJjZThhYTk3MzljOGI5CiAgICAgM2JkNGMyMmIyYzQ1MmQzMAotVkJST0FEQ0FTVFNTXzI1NihtZW0pCitWUFVOUENLSFFEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICA5NDAyODRlOTdlMzkwNGQxLjk0MDg5NmMzZDYzZjg0Y2UuOWEzMDQzODhmMDU1ODIyYy5kZjYwMjQxNDhkYTIwODkyCiAgICAgZTUxMmE3Y2ZhYTIxMGFjOC43NzkwODk2ZDY1MGRhMTIwLjU0ZjVlNTdjNGIwMTE5NzMuYmQ0ZjFlYzJhN2NkYzVkMQpAQCAtMjI2MTksMTIgKzIyNjE5LDEyIEBACiAgICAgODhlYmEzZWVjOTZkYmZhNgogICBhZnRlcgogICAgIDk0MDI4NGU5N2UzOTA0ZDEuOTQwODk2YzNkNjNmODRjZS45YTMwNDM4OGYwNTU4MjJjLmRmNjAyNDE0OGRhMjA4OTIKLSAgICA4ZGEyMDg5MjhkYTIwODkyLjhkYTIwODkyOGRhMjA4OTIuOGRhMjA4OTI4ZGEyMDg5Mi44ZGEyMDg5MjhkYTIwODkyCi0gICAgMGNkMGE5YzljYzA5ZmE0Mi42NzQzYWMyMDkyODllOTk5LjM0YzNlOGNmY2Y2OGZkZTYuYmM4NDg5ODM1MjIwZDBhMQorICAgIGU1MTJhN2NmYWEyMTBhYzguNzc5MDg5NmQ2NTBkYTEyMC41NGY1ZTU3YzRiMDExOTczLmJkNGYxZWMyYTdjZGM1ZDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWEzMDQzODhmMDU1ODIyYy41NGY1ZTU3YzRiMDExOTczCiAgICAgZTMwODA1YzNmZmZlOTI2Yi5jMjZlZmE0OGZhM2Q5OWU2LjE4NjRjODZiOTU5NWU5YjIuMzY0OTYyYzMyOTI3NjRhZgogICAgIDg4ZWJhM2VlYzk2ZGJmYTYKIAotVkJST0FEQ0FTVFNTXzI1NihyZWcpCitWUFVOUENLSFFEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICAwZWI2NGE3MGNkN2UxYjMzLjQ4ODUzN2E5NWYwYjhjNmUuZTM1YTZlNTEzOGI3ZWRiMy5kYWE1ZmYzZWJiOTU5YTAyCiAgICAgMjRmNTUzYjVkMWU2YjUwMS4xNTE1YmI2ODA5M2NhNDc4LjI1NTYwN2E3ZTk4MjIwYWIuNTg1MjBiMzM1ZDcyY2MwNApAQCAtMjI2MzIsMTIgKzIyNjMyLDEyIEBACiAgICAgNzAwMzc3Mzk0Y2VkOTExMy41Yjk5YWExZGE5M2MyMjUwLjgwYWE5MGViMTIzZDE2Y2UuZjQxZjhmMzM4MmY5YTJjNwogICAgIGNhZDhmZjE2M2ViYWJlZTIKICAgYWZ0ZXIKLSAgICAwZWI2NGE3MGNkN2UxYjMzLjQ4ODUzN2E5NWYwYjhjNmUuZTM1YTZlNTEzOGI3ZWRiMy5kYWE1ZmYzZWJiOTU5YTAyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU2YWRiZWI2YTgyYjZmN2IuMjU1NjA3YTdlOTgyMjBhYgogICAgIDI0ZjU1M2I1ZDFlNmI1MDEuMTUxNWJiNjgwOTNjYTQ3OC4yNTU2MDdhN2U5ODIyMGFiLjU4NTIwYjMzNWQ3MmNjMDQKICAgICAyNmY2YjgyOTcyMzJjOGJkLjI4ODIwZGVhMTg5ZTk4YjUuZTZhZGJlYjZhODJiNmY3Yi42YzM3NjczNjk2M2EzYmUxCiAgICAgNzAwMzc3Mzk0Y2VkOTExMy41Yjk5YWExZGE5M2MyMjUwLjgwYWE5MGViMTIzZDE2Y2UuZjQxZjhmMzM4MmY5YTJjNwogICAgIGNhZDhmZjE2M2ViYWJlZTIKLVZCUk9BRENBU1RTU18yNTYobWVtKQorVlBVTlBDS0hRRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgY2IyYzM0Y2JlNjg5NGI1ZS41ZTY5OGE0ZmZhYTM0Y2FlLjhjMjYwZGViZDcyM2ZmNzUuNTE5YTdhYjBjMjQ0NTE1MQogICAgIGQ0ZThhODNlOTU3MjA0NjYuNGM3NGYwZDkxOGUxMzUzYi45NWY0YjI0MmJmNWVlYTUyLmIzY2E3NzczNTVjZDViYWYKQEAgLTIyNjQ2LDEyICsyMjY0NiwxMiBAQAogICAgIGRmYzhiOWUxNzRlNmIwYTgKICAgYWZ0ZXIKICAgICBjYjJjMzRjYmU2ODk0YjVlLjVlNjk4YTRmZmFhMzRjYWUuOGMyNjBkZWJkNzIzZmY3NS41MTlhN2FiMGMyNDQ1MTUxCi0gICAgYzI0NDUxNTFjMjQ0NTE1MS5jMjQ0NTE1MWMyNDQ1MTUxLmMyNDQ1MTUxYzI0NDUxNTEuYzI0NDUxNTFjMjQ0NTE1MQotICAgIGJmZDhkOTViNjc4MmE3MjcuOTY3MGEyNDE0MzMyODc2NS41M2QxMTYwZDdjZjlhMTEwLjA0ODQ4MzllNjY2MjcxOTUKKyAgICBkNGU4YTgzZTk1NzIwNDY2LjRjNzRmMGQ5MThlMTM1M2IuOTVmNGIyNDJiZjVlZWE1Mi5iM2NhNzc3MzU1Y2Q1YmFmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhjMjYwZGViZDcyM2ZmNzUuOTVmNGIyNDJiZjVlZWE1MgogICAgIDY5Yzg0MjBmNzljNGVkY2MuOThhOTlkZjUxNjIzN2ZkOS5hMzg3YjMzNzJhMDBkZWRlLjllMTQ5YjlmOTI5MmNmYWYKICAgICBkZmM4YjllMTc0ZTZiMGE4CiAKLVZCUk9BRENBU1RTU18yNTYocmVnKQorVlBVTlBDS0hRRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjFlYWRiZDBhOWVjNTEyZC5hZjg0NjA0NGU2NDU5NTgyLmFlNmJkZTYwMmUzZTU5NDIuNWZlNDA3YWVlNzgwNWRlNgogICAgIGMxYzhmY2Q4Y2MzMGVlZWEuNmJkN2FlZThjYjEwNTk3NC4zNDAxNjBlZTI3MTI1MTRlLjY0YjI4ZDVkY2M4NGRjNTQKQEAgLTIyNjU5LDEyICsyMjY1OSwxMiBAQAogICAgIDhjZTMyY2UzNGQ5ZTBiYjkuYjg3NmM5Mjk2YmI0MjhiZi5mZmRjMTgyMzI5MGU4OWY5LmI5ZDMyMDE0ODQ0YWM1MTYKICAgICBjMWJmMjRmMzhlMjNhOGMwCiAgIGFmdGVyCi0gICAgMjFlYWRiZDBhOWVjNTEyZC5hZjg0NjA0NGU2NDU5NTgyLmFlNmJkZTYwMmUzZTU5NDIuNWZlNDA3YWVlNzgwNWRlNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NmI4MWYwYjliMjhhMmE2LjM0MDE2MGVlMjcxMjUxNGUKICAgICBjMWM4ZmNkOGNjMzBlZWVhLjZiZDdhZWU4Y2IxMDU5NzQuMzQwMTYwZWUyNzEyNTE0ZS42NGIyOGQ1ZGNjODRkYzU0CiAgICAgMWNhYzE5NjU3OTNjYzM4YS43YThlYTdlNTQ0MzFmNmNmLjg2YjgxZjBiOWIyOGEyYTYuOGViZWMxMzFmNzE5MTU1NgogICAgIDhjZTMyY2UzNGQ5ZTBiYjkuYjg3NmM5Mjk2YmI0MjhiZi5mZmRjMTgyMzI5MGU4OWY5LmI5ZDMyMDE0ODQ0YWM1MTYKICAgICBjMWJmMjRmMzhlMjNhOGMwCi1WQlJPQURDQVNUU1NfMjU2KG1lbSkKK1ZQVU5QQ0tIUURRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDgzNGM0YmJiMzFiMDc5ODEuNmViOTMzYmVlNGUyMDMyNC4wMTU5OTA5ZjVlYTZhYjZmLmZkYjk0NWEyNmE0ZjQyZjEKICAgICBkOTQ4MTA1NjhhZmVmNTg1LjFlN2EyOTYzZDk5MmU3NzcuMzEwNDc2MzMzOTEzM2EwYy5kYjliYTRmNWZjNzgwODNhCkBAIC0yMjY3MywxMiArMjI2NzMsMTIgQEAKICAgICA0YzU2YzAxNmFlZDUwNWI4CiAgIGFmdGVyCiAgICAgODM0YzRiYmIzMWIwNzk4MS42ZWI5MzNiZWU0ZTIwMzI0LjAxNTk5MDlmNWVhNmFiNmYuZmRiOTQ1YTI2YTRmNDJmMQotICAgIDZhNGY0MmYxNmE0ZjQyZjEuNmE0ZjQyZjE2YTRmNDJmMS42YTRmNDJmMTZhNGY0MmYxLjZhNGY0MmYxNmE0ZjQyZjEKLSAgICBhMDdkZjBiMmI0MTlkOGY3LmY5NzEwYTNjYzgzZGYyNWUuMjQ0MmY5ZDExNzA1OTJjMS5mNGNlMzA4NjdiMTQxODgxCisgICAgZDk0ODEwNTY4YWZlZjU4NS4xZTdhMjk2M2Q5OTJlNzc3LjMxMDQ3NjMzMzkxMzNhMGMuZGI5YmE0ZjVmYzc4MDgzYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTU5OTA5ZjVlYTZhYjZmLjMxMDQ3NjMzMzkxMzNhMGMKICAgICBiNGI4NjViOWNjMGJkZDA0LjU5ZWNkMmI3NGU2YzYyODQuYjZlMTk0NjUxNThhNmViYi5hNjlkZTVjMzgyYWZhZTcyCiAgICAgNGM1NmMwMTZhZWQ1MDViOAogCi1WUEFMSUdOUl8xMjhfMW9mMyhyZWcpCitWUFNSQVdfMHgwNV8xMjgocmVnKQogICBiZWZvcmUKICAgICA0MTQzYmNlZDlhMTM1YjAwLmYxYzVlZDU5ZWVlMmMyZDcuOWIzNTdlM2UwNmFkNzE5NS5jM2FiYzNkYzRlYWQ4YzI2CiAgICAgZTNiMWQ1YjNlMmY0ZWFmNi4zMzZmMDM3ZDM0YTk0MDlkLjFiOTkwOTNmOGQ4YjViM2YuMjc2ZDAzMjBkZjdiYTYyZApAQCAtMjI2ODYsMTIgKzIyNjg2LDEyIEBACiAgICAgOWEzZjRlYmNmOWQxYTU5OS4zNWNlY2EwMWEyMzlmZmIxLjQ1ZTJhYzVjNzY0ZmI0MDguNjQwOWEyYzM3NjQ1YzBjMQogICAgIGY1N2JmYWZhYjU1YTM4YTYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzU2NDZmMjU3ZTkyNWUyYi5iZWY0Y2UxZWUzZmY3OWZkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyMmZmZDYyMDNiMmZkYTAuMDMyMGZkMTYwM2IyZmUwNgogICAgIGUzYjFkNWIzZTJmNGVhZjYuMzM2ZjAzN2QzNGE5NDA5ZC4xYjk5MDkzZjhkOGI1YjNmLjI3NmQwMzIwZGY3YmE2MmQKICAgICA4Y2VjMDdkNDIzMDVlZTQ1LjU1ODQyMzExYmQ2ZDE2ODEuMzU2NDZmMjU3ZTkyNWUyYi5iZWY0Y2UxZWUzZmY3OWZkCiAgICAgOWEzZjRlYmNmOWQxYTU5OS4zNWNlY2EwMWEyMzlmZmIxLjQ1ZTJhYzVjNzY0ZmI0MDguNjQwOWEyYzM3NjQ1YzBjMQogICAgIGY1N2JmYWZhYjU1YTM4YTYKLVZQQUxJR05SXzEyOF8xb2YzKG1lbSkKK1ZQU1JBV18weDA1XzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDRkMTU1MmFlYmI0OTlkZDcuNjdmOGE3ZDdmZmU0NDlhMC5hZTFhNzIzOTAyMTliNjU2LmE3NWViYzUwMTA0ZDk5ODAKICAgICA0OGEyMjdjZGE1MWVhYjgyLjUxNjEwYzkxZDFjYjE3MDQuOWMzNDk5YTZmNjFhZjc5Zi5iNzI2OWM2ZGU5MTg0YjNmCkBAIC0yMjcwMSwxMSArMjI3MDEsMTEgQEAKICAgYWZ0ZXIKICAgICA0ZDE1NTJhZWJiNDk5ZGQ3LjY3ZjhhN2Q3ZmZlNDQ5YTAuYWUxYTcyMzkwMjE5YjY1Ni5hNzVlYmM1MDEwNGQ5OTgwCiAgICAgNDhhMjI3Y2RhNTFlYWI4Mi41MTYxMGM5MWQxY2IxNzA0LjljMzQ5OWE2ZjYxYWY3OWYuYjcyNjljNmRlOTE4NGIzZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xODRiM2ZhZTFhNzIzOTAyLjE5YjY1NmE3NWViYzUwMTAKKyAgICBjMWYwZjM0MjhmZTYxZGQwLmIyYzc3YjU2MGMxMTRhNzEuZGJlOGJhMzI5YzQ3ODBiNi5kMTg0NDcxZjljM2QwNGYyCiAgICAgOTZjOTM0Zjk5NGFjYjFmMC5lODc3ZjA5MjRiNDIyMDk0LjQ3MDI1MmNhMTBhYzBiYzcuNTFjNWI5ZDNjNTQ3MDE0NQogICAgIDkyMzVlZmYzMDJjMzdlZTQKIAotVlBBTElHTlJfMTI4XzFvZjMocmVnKQorVlBTUkFXXzB4MDVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZjIyMGUzZWNlYzNjYjY3OS5hMmZhNjVkZWQwN2MyMDBjLjRkYmE2NWIyMmJlYmQzMTkuYmI0ZWRiNWI2ZDU2NTVmZgogICAgIGNjZDI5MzJiMjEzZWU2YjMuYzA0ZjAzZGQ2MDYzMjk1MC4zZWRmZDgyMDQ4OTc5ZmFiLjE1OTdkM2QwZDA1MDFhOGEKQEAgLTIyNzEzLDEyICsyMjcxMywxMiBAQAogICAgIDVlYmExNDI4ZGIwZTFlYzEuYTc5NDcyZGFlYWEzZjQwMy4zNWZiYTU5YmE2Mjk3NmE4LmU3NTNmZDE1MTU2NTAzNDcKICAgICAxODVlMjdiZTMwOThhMGQyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE3MzE0NDRhM2NkMmMyZjcuMzBhYWI1MTQ1NGE3MTU5MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWFmZmQyY2ZkMzEwM2I1LmZmM2FmZmU4MDBhYjAwMWEKICAgICBjY2QyOTMyYjIxM2VlNmIzLmMwNGYwM2RkNjA2MzI5NTAuM2VkZmQ4MjA0ODk3OWZhYi4xNTk3ZDNkMGQwNTAxYThhCiAgICAgN2M5NmZhMWIzZDU1NGEzYy5jZTkzODhlMzVmNmM4NmU5LjE3MzE0NDRhM2NkMmMyZjcuMzBhYWI1MTQ1NGE3MTU5MwogICAgIDVlYmExNDI4ZGIwZTFlYzEuYTc5NDcyZGFlYWEzZjQwMy4zNWZiYTU5YmE2Mjk3NmE4LmU3NTNmZDE1MTU2NTAzNDcKICAgICAxODVlMjdiZTMwOThhMGQyCi1WUEFMSUdOUl8xMjhfMW9mMyhtZW0pCitWUFNSQVdfMHgwNV8xMjgobWVtKQogICBiZWZvcmUKICAgICA5ZDk3YjBmYmMwNGNhODVmLmNkODhkZWJkOTdmNDlkZWQuMjYxYzNjYWYxYzE1MmZjOS5mMjhiZjc3ZjFmMjdmODZiCiAgICAgNTRjYTEzYjhlMjhiZDYxYi4yNzRkNTI0ODBlOTQwNDZkLjI5Zjg2MjRmMTFjZGYyNjguYWIyYjM3NjE0NTU4ODRlYwpAQCAtMjI3MjgsMTEgKzIyNzI4LDExIEBACiAgIGFmdGVyCiAgICAgOWQ5N2IwZmJjMDRjYTg1Zi5jZDg4ZGViZDk3ZjQ5ZGVkLjI2MWMzY2FmMWMxNTJmYzkuZjI4YmY3N2YxZjI3Zjg2YgogICAgIDU0Y2ExM2I4ZTI4YmQ2MWIuMjc0ZDUyNDgwZTk0MDQ2ZC4yOWY4NjI0ZjExY2RmMjY4LmFiMmIzNzYxNDU1ODg0ZWMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTg4NGVjMjYxYzNjYWYxYy4xNTJmYzlmMjhiZjc3ZjFmCisgICAgMTdjMmNjZTJiMjY0ZTczMS5jNzU1NmUzNGRiNzk4ZmVkLjhhZjU2MWE1ZTZkOGZhMGMuYmMyODVmYWZiNDQ5NTVkNgogICAgIGM0NGQ1NzYzNGFlMDk3Y2UuMDhlYjJkZWU5YjJmNzkxOC4yN2RjYjQ5Y2I3NDAwM2UwLjgxY2Q2ZGQ1MDc4NWE4ZDYKICAgICA1NjY4NWQzZGRiOThiOTk3CiAKLVZQQUxJR05SXzEyOF8xb2YzKHJlZykKK1ZQU1JBV18weDA1XzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDk4NDQyOTU0Y2IwZmMzYzYuMzUzNTMxMjhjOTBkYTExZC40ODVkOGJlMGU5NDNmZjlhLmRhN2NkNjIyOWYxNGM5MTAKICAgICBhMWFjY2Y4NjczNzUwNDBmLjQ4NDdkNDFlNDhmNmMyNGIuZTFmNTg1Nzc2MjQwNWQyMS44MWEwNDYyMmJiNWQwN2NhCkBAIC0yMjc0MCwxMiArMjI3NDAsMTIgQEAKICAgICA3YTUzOTZlZDVlM2YxNTlkLmJmMTg2YjQ5YmMyZDM5ZjMuOTJjYjNhNDU0MzI1OTBlOC4xNmEzZjg0MGZjODNkZTg2CiAgICAgYmUxYTM0Mzc1YTc3ZWVlMQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMTAxMTYyMGExYjJjZjU3LmY2MTM3ZDg4MjYyOTdhMzgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmM5NjAxZDIwMjE5ZmM4Ny4wMGI1ZmZjMmZmZTRmZWY0CiAgICAgYTFhY2NmODY3Mzc1MDQwZi40ODQ3ZDQxZTQ4ZjZjMjRiLmUxZjU4NTc3NjI0MDVkMjEuODFhMDQ2MjJiYjVkMDdjYQogICAgIGNlZWQ0YTQwNzA1N2I1MWQuZDc0ZmJlMmZlNmE3YjY4NC4zMTAxMTYyMGExYjJjZjU3LmY2MTM3ZDg4MjYyOTdhMzgKICAgICA3YTUzOTZlZDVlM2YxNTlkLmJmMTg2YjQ5YmMyZDM5ZjMuOTJjYjNhNDU0MzI1OTBlOC4xNmEzZjg0MGZjODNkZTg2CiAgICAgYmUxYTM0Mzc1YTc3ZWVlMQotVlBBTElHTlJfMTI4XzFvZjMobWVtKQorVlBTUkFXXzB4MDVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzg0NWFjNTc1YjEyNjg3NS4wMzJhYWZmOGQ3YmM1ZTNhLmRkNzA1NTU3ZTk5MzA2YzUuNjJhMGVkNTRlMzI2ZGQ4MQogICAgIDExZWZkYzhkMWM2MDA1NmQuYzRiZTkyY2Y3YTU3Y2VhMS4wYjIxZjk0NTg2ZTZkYTI2LmZiY2MyYmI3MWU0MWYyY2UKQEAgLTIyNzU1LDExICsyMjc1NSwxMSBAQAogICBhZnRlcgogICAgIGM4NDVhYzU3NWIxMjY4NzUuMDMyYWFmZjhkN2JjNWUzYS5kZDcwNTU1N2U5OTMwNmM1LjYyYTBlZDU0ZTMyNmRkODEKICAgICAxMWVmZGM4ZDFjNjAwNTZkLmM0YmU5MmNmN2E1N2NlYTEuMGIyMWY5NDU4NmU2ZGEyNi5mYmNjMmJiNzFlNDFmMmNlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxZjJjZWRkNzA1NTU3ZTkuOTMwNmM1NjJhMGVkNTRlMworICAgIDc2ZTY0MWM2Yjk2Yjg0ZjYuMTk1YTM5ZGRlMTllOWU3ZS4yNmY5ZDRmZmIxMzE3MTQxLmJiOWFmMWRjOGYwMDBhN2EKICAgICBkMWY1NTVlYzRjNDE5ZjNiLjVlNGNhMjhlYTgxYzBkN2MuMGJjMjYxNzE4NjgwODY0Mi5mYzU4M2EyZWQzZjE2MjMyCiAgICAgMWI1MDAyMTk4NWEwMzZhMQogCi1WUEFMSUdOUl8xMjhfMm9mMyhyZWcpCitWUENNUEdURF8xMjgocmVnKQogICBiZWZvcmUKICAgICA3NGNmNDUwOTQxOTdjMjc1LmZmZTc5NmVkZjRlZDEzNjkuZWZkZWM4NGU2YzVlNTU0OC45NDQ5MWQ4NzIwZGZkNzU2CiAgICAgNjQyMTAwNmFhNDY0NDE1Ny5kYzg5N2ZiNGNhN2M5Y2FjLjI4NWRhODg5YzhlZWIzOGQuOWU1OTgyMmQ5YjViMWVhOQpAQCAtMjI3NjcsMTIgKzIyNzY3LDEyIEBACiAgICAgNzQ2ZWNhMzBjZGFlMGJmYi4xMzBkM2E0NDc2NzBkYzFmLjAxNTI4MjIwYmEyZWEwMzUuYTU0ODNjZGFhN2Q4N2ZiYgogICAgIDVhYmY4OGI4NmZmMTEzZDEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODIyZDliNWIxZWE5NjQxNS4zY2FiNTk1YjYzZjgwNWMwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAogICAgIDY0MjEwMDZhYTQ2NDQxNTcuZGM4OTdmYjRjYTdjOWNhYy4yODVkYTg4OWM4ZWViMzhkLjllNTk4MjJkOWI1YjFlYTkKICAgICA0NTkyMmRhOTRhOTNmMGY1LjQ0YTc4ZDJkZWRmOWY2MmYuNjQxNTNjYWI1OTViNjNmOC4wNWMwMGU0ZjE0MDAxNzY3CiAgICAgNzQ2ZWNhMzBjZGFlMGJmYi4xMzBkM2E0NDc2NzBkYzFmLjAxNTI4MjIwYmEyZWEwMzUuYTU0ODNjZGFhN2Q4N2ZiYgogICAgIDVhYmY4OGI4NmZmMTEzZDEKLVZQQUxJR05SXzEyOF8yb2YzKG1lbSkKK1ZQQ01QR1REXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDAwZWY2ZWQ3ODg1NjhjZDYuNGQwMGQzNmRjYzQzY2QxNS4yNTg3MDRlNTgzZWQwYmE3LjVhNjA3NTU1ODhmNWE3ZWYKICAgICA3M2E1NmIyMjBmMTRhOWY2LjJjOTY0MmNhZTFkZTczZWUuNTZlMDY2ZmMzMDdkM2VmNC5jYThhMTJiNDVlM2JiNGQyCkBAIC0yMjc4MiwxMSArMjI3ODIsMTEgQEAKICAgYWZ0ZXIKICAgICAwMGVmNmVkNzg4NTY4Y2Q2LjRkMDBkMzZkY2M0M2NkMTUuMjU4NzA0ZTU4M2VkMGJhNy41YTYwNzU1NTg4ZjVhN2VmCiAgICAgNzNhNTZiMjIwZjE0YTlmNi4yYzk2NDJjYWUxZGU3M2VlLjU2ZTA2NmZjMzA3ZDNlZjQuY2E4YTEyYjQ1ZTNiYjRkMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNGNhOGExMmI0NWUzYmI0LmQyMjU4NzA0ZTU4M2VkMGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi4wMDAwMDAwMGZmZmZmZmZmCiAgICAgMzBkMjk2ZWJkNWM4YmEzNi42ZGY5NDY5OGJlNTM1YjhlLjg1NjNlMjNkZDgwNGE0OGMuNjQ2NjM2YTU5Mzc2Y2ZjNwogICAgIDQ0YWZiNjBlMmI4MjU1MmYKIAotVlBBTElHTlJfMTI4XzJvZjMocmVnKQorVlBDTVBHVERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYWQ0NGNmNTEzYjNkZDE3MS4zMmUyYmU0MjRjZDcyN2FkLjg2NWZkM2UxYmU0NTE0YWUuM2IyNGY1M2UwYjEzNGUyZgogICAgIGY5NzM3ZGRjNWYzNDdlMzkuNzFhN2ViNzVhMTZlMjZlZi4xNWY4YjhmYjQ1NmRhMTNlLjgwZjU5MDY2NGQ2NGVjNDYKQEAgLTIyNzk0LDEyICsyMjc5NCwxMiBAQAogICAgIGFlY2I4YTc4NTYwNDVlMDkuMTY4MzQ5MjA1MzY1Y2Q4My4wNWYyNzY1MjU2OGMyNzViLjI3ZjY0ZWQ3NzFmZWY3ODMKICAgICA0MWJmNmFmOThhNWVkYzAwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkwNjY0ZDY0ZWM0Njc2MGYuZWY1MmVlNTYzZWU5MzBhMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGZmZmZmZmZmLjAwMDAwMDAwZmZmZmZmZmYKICAgICBmOTczN2RkYzVmMzQ3ZTM5LjcxYTdlYjc1YTE2ZTI2ZWYuMTVmOGI4ZmI0NTZkYTEzZS44MGY1OTA2NjRkNjRlYzQ2CiAgICAgODY4N2JkMWEzNGYzOTkzMi5jOWVlOWI3MGVmOTk3NDI4Ljc2MGZlZjUyZWU1NjNlZTkuMzBhMjJmOWZiYjA0M2JmZQogICAgIGFlY2I4YTc4NTYwNDVlMDkuMTY4MzQ5MjA1MzY1Y2Q4My4wNWYyNzY1MjU2OGMyNzViLjI3ZjY0ZWQ3NzFmZWY3ODMKICAgICA0MWJmNmFmOThhNWVkYzAwCi1WUEFMSUdOUl8xMjhfMm9mMyhtZW0pCitWUENNUEdURF8xMjgobWVtKQogICBiZWZvcmUKICAgICA1OWM3ZmRmMTIyMzFhNWEyLmNlOGNlMDYwNjBmNTA5NmEuMzMzMjcxNmZlOGRkZWMyZC4xZWViNDg2ODE4OWM5NzQxCiAgICAgNGRkYjg1YWI1NjgyMTA5NC40MzE2YmIzZmVlNTJkNTAwLmZlYzc4ZjRiY2IwZDhmNTIuMWM0NzYxZmVkMDExY2I0NwpAQCAtMjI4MDksMTEgKzIyODA5LDExIEBACiAgIGFmdGVyCiAgICAgNTljN2ZkZjEyMjMxYTVhMi5jZThjZTA2MDYwZjUwOTZhLjMzMzI3MTZmZThkZGVjMmQuMWVlYjQ4NjgxODljOTc0MQogICAgIDRkZGI4NWFiNTY4MjEwOTQuNDMxNmJiM2ZlZTUyZDUwMC5mZWM3OGY0YmNiMGQ4ZjUyLjFjNDc2MWZlZDAxMWNiNDcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTIxYzQ3NjFmZWQwMTFjYi40NzMzMzI3MTZmZThkZGVjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAogICAgIDM1NTc2MjE1MDBjZmI2MWEuOTdiNWYxOTMwODdjYzM3ZC4wYmQyOWU1NmU4Yzc0YmJiLjNjNTg1OTVlOTU1YzZlNjEKICAgICAxNWE1MmZmZmQ5NDk1NWNlCiAKLVZQQUxJR05SXzEyOF8yb2YzKHJlZykKK1ZQQ01QR1REXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDQ0ODQzZGQyODRjYmYwMGEuZTI1N2FlOWRhZWUzNmEwNi4zMDYyNDRlMGNjNjM1Y2JiLjA0ZTA4NzVlNWI2OGRlNTcKICAgICAyNDQzN2Y0MjMwNmY3YWMyLmRhOTJkZjk4NjhhNmFmZjMuOGMwNzBjZDQ4NGU0MDdlMC4xYjA0NTZhMThjZjJlMzFlCkBAIC0yMjgyMSwxMiArMjI4MjEsMTIgQEAKICAgICA2YzhjOGJhOTAyNGI0ZjU0LjFhZWRkZDkzNmU2NWRiN2UuMDA2Y2VjNjA0MmVhODM4OS4wZmJlOTc4ZDk1ZWUzNWRjCiAgICAgYTRlYzAxMGRhNjc5ZmIyYQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NmExOGNmMmUzMWUwOGYxLjQ1ZGFjZDhkMDA5NjJhMGEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgMjQ0MzdmNDIzMDZmN2FjMi5kYTkyZGY5ODY4YTZhZmYzLjhjMDcwY2Q0ODRlNDA3ZTAuMWIwNDU2YTE4Y2YyZTMxZQogICAgIDEzMmNlZmJiN2NjMDMxYTEuZjhkNjcwZjA0OTIyNDEwYy4wOGYxNDVkYWNkOGQwMDk2LjJhMGE4ODBkOTY3MDE3M2MKICAgICA2YzhjOGJhOTAyNGI0ZjU0LjFhZWRkZDkzNmU2NWRiN2UuMDA2Y2VjNjA0MmVhODM4OS4wZmJlOTc4ZDk1ZWUzNWRjCiAgICAgYTRlYzAxMGRhNjc5ZmIyYQotVlBBTElHTlJfMTI4XzJvZjMobWVtKQorVlBDTVBHVERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzc1ZjQxN2FlNDFjMjM1NC44YWFmNGU3ODVlOWIxMDg3LjFhYTRhMzZiZjI3YjNhNzUuZDFjNGZjZDE3Zjg1Y2I2NwogICAgIDUyZTVkNGJlNmNlNDY5ODMuY2JlMTM0OTQyZDNjYjJlNS5kNmM3M2M2NmYxNmYxYTFjLmQ1NDU3MTk5MjJlYzE1ZDkKQEAgLTIyODM2LDExICsyMjgzNiwxMSBAQAogICBhZnRlcgogICAgIGM3NWY0MTdhZTQxYzIzNTQuOGFhZjRlNzg1ZTliMTA4Ny4xYWE0YTM2YmYyN2IzYTc1LmQxYzRmY2QxN2Y4NWNiNjcKICAgICA1MmU1ZDRiZTZjZTQ2OTgzLmNiZTEzNDk0MmQzY2IyZTUuZDZjNzNjNjZmMTZmMWExYy5kNTQ1NzE5OTIyZWMxNWQ5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFjZDU0NTcxOTkyMmVjMTUuZDkxYWE0YTM2YmYyN2IzYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmMDAwMDAwMDAKICAgICAxNDU1ZGY3ZmM4MTA0M2E3LjIyYTE1YTYzOTJhMjg0ZDQuZWU4MGRjNzJkMzIxNGMyYy5lOWYxN2FkZjAzNGQ5ZjMwCiAgICAgYjFiNTA3MzQ3YjVlNTY2YgogCi1WUEFMSUdOUl8xMjhfM29mMyhyZWcpCitWUE1PVlpYQkRfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMWRkMWU5OTFjNzZhZmZlZC4wM2Q4NTBkM2Q0OGM0ZWYzLmYxYzc5MWVmNjA4MDJjYmQuMDJhZmRiNWJlZGY4MTZlZAogICAgIDg5OTIxYzYwODNmZWQ1NWYuY2E5YzAzYjA5YTVkNjdmNS41MTJjZGM3NzExZGVhNTgxLjQxNzk5ZDE2ZjJkZDUxMGUKQEAgLTIyODQ4LDEyICsyMjg0OCwxMiBAQAogICAgIGQxMzM2NjA5YmRlYmZjY2EuNTQxYjIwYjJjMjJjYjdjZC4zOGUzOWMzMDhhNTBmNDRkLmIxMTE1ZmIyMzAwMjA5MjMKICAgICA5OTc3NTY2YzlmNWJmZDZlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjExZGVhNTgxNDE3OTlkMTYuZjJkZDUxMGVhMDFjMzc2OQotICAgIDg5OTIxYzYwODNmZWQ1NWYuY2E5YzAzYjA5YTVkNjdmNS41MTJjZGM3NzExZGVhNTgxLjQxNzk5ZDE2ZjJkZDUxMGUKKyAgICAxZGQxZTk5MWM3NmFmZmVkLjAzZDg1MGQzZDQ4YzRlZjMuZjFjNzkxZWY2MDgwMmNiZC4wMmFmZGI1YmVkZjgxNmVkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMGZmMDAwMDAwZGQuMDAwMDAwYjgwMDAwMDBiYwogICAgIDUxNDQ5YzBmNGNhNTE2NzAuNDY2Zjc0MDEzNThlNGNkYS5hMDFjMzc2OTQwNGEyOWNkLjg4YWJhMDhmZmZkZGI4YmMKICAgICBkMTMzNjYwOWJkZWJmY2NhLjU0MWIyMGIyYzIyY2I3Y2QuMzhlMzljMzA4YTUwZjQ0ZC5iMTExNWZiMjMwMDIwOTIzCiAgICAgOTk3NzU2NmM5ZjViZmQ2ZQotVlBBTElHTlJfMTI4XzNvZjMobWVtKQorVlBNT1ZaWEJEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDFkYTkwMmE3NmJmMTUzY2EuNjVhYTc0YmE3MzVkYzQxOS5jZTZlODJhZjVjNDE2NGZiLjc2Y2QwOTM4OGE3YTQ0YWMKICAgICAxNzcyZGQ1MWFlZDJjNTYyLjY4ZjdjNDhlMDk4NmE5MGIuOTEzMjE2ZTQyMGRjMTE5MC5iNzI1NzhlY2RjNTY1Mzk3CkBAIC0yMjg2MiwxMiArMjI4NjIsMTIgQEAKICAgICAxY2MwYjM1MmRiOGE1NzU1CiAgIGFmdGVyCiAgICAgMWRhOTAyYTc2YmYxNTNjYS42NWFhNzRiYTczNWRjNDE5LmNlNmU4MmFmNWM0MTY0ZmIuNzZjZDA5Mzg4YTdhNDRhYwotICAgIDE3NzJkZDUxYWVkMmM1NjIuNjhmN2M0OGUwOTg2YTkwYi45MTMyMTZlNDIwZGMxMTkwLmI3MjU3OGVjZGM1NjUzOTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzIxNmU0MjBkYzExOTBiNy4yNTc4ZWNkYzU2NTM5N2NlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDhhMDAwMDAwN2EuMDAwMDAwNDQwMDAwMDBhYworICAgIDY0OWY2NTU1ODQwOTEwNjMuMzg2NDUyZjExY2YzZTg0OS43OTM0NTgzZDI5MDY3OGI3LjU1MzhlOGJhMWU3MDVlYjkKICAgICBlMGZkMTU5ZTBhYTNmMGY5LjMwM2UxODRmNDcyZmJkODIuNjIzZmM0YTY5M2NkNTY5ZC5hZDUzNTIwZWU5NTJhMGJmCiAgICAgMWNjMGIzNTJkYjhhNTc1NQogCi1WUEFMSUdOUl8xMjhfM29mMyhyZWcpCitWUE1PVlpYQkRfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZmNjYjA4ZjM4ZmE0YmQyNi42NzU2NmExYTViYWIyMTRmLmFjZDExNDE0MjdjNjY0NjAuMjkyMWQ3MGI3YjNjNjc2ZAogICAgIGFhYzI0YzVkYTIyYTBlZGYuZDU3N2RlYjQ5MzJkNWU5Mi4wNzY5NDBhYzU3NDQxODhmLmE4YTQwYzU5ZmM2MDY2NTQKQEAgLTIyODc1LDEyICsyMjg3NSwxMiBAQAogICAgIGUwYTA5MjNkNTRiMDY1YjguZDY0MDE4ZjMyYmQwZWU4ZC5jZmQ3MWUwNjE5Mjg5YTkzLjQxYzFjYzVjM2NmNDIxMTYKICAgICAxM2YyNTBlYTMyN2Q1NDQ5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU3NDQxODhmYThhNDBjNTkuZmM2MDY2NTQ5ZjUxOWE4NAotICAgIGFhYzI0YzVkYTIyYTBlZGYuZDU3N2RlYjQ5MzJkNWU5Mi4wNzY5NDBhYzU3NDQxODhmLmE4YTQwYzU5ZmM2MDY2NTQKKyAgICBmY2NiMDhmMzhmYTRiZDI2LjY3NTY2YTFhNWJhYjIxNGYuYWNkMTE0MTQyN2M2NjQ2MC4yOTIxZDcwYjdiM2M2NzZkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDMzMDAwMDAwNDQuMDAwMDAwMTAwMDAwMDA3ZQogICAgIDgyZjA3YmZkYjBhYTg4MmMuMDYyYmVmNThkMDM2NjRlZS45ZjUxOWE4NDc0MzYxN2JjLmJjOTZkZjdhMzM0NDEwN2UKICAgICBlMGEwOTIzZDU0YjA2NWI4LmQ2NDAxOGYzMmJkMGVlOGQuY2ZkNzFlMDYxOTI4OWE5My40MWMxY2M1YzNjZjQyMTE2CiAgICAgMTNmMjUwZWEzMjdkNTQ0OQotVlBBTElHTlJfMTI4XzNvZjMobWVtKQorVlBNT1ZaWEJEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDBlZjVlNjBmMzFlOTY3NDIuMjAxZjhiOGIyYWM2ZTIyZi4yMTgwZDU2ZmMyMGFiYTllLmYyNDVjNmEwZTNhNGUwYmYKICAgICAwZTk1MGFiOTU2NDcxMzJlLjllYjk2NDUyY2Y3YTNiM2UuYzNiOGEyYjliMWVkODI0Yi42NmU4OTBiZDZkMzgyM2VkCkBAIC0yMjg4OSwxMiArMjI4ODksMTIgQEAKICAgICAzODA3OGM1ZGE2ZjgzNzM4CiAgIGFmdGVyCiAgICAgMGVmNWU2MGYzMWU5Njc0Mi4yMDFmOGI4YjJhYzZlMjJmLjIxODBkNTZmYzIwYWJhOWUuZjI0NWM2YTBlM2E0ZTBiZgotICAgIDBlOTUwYWI5NTY0NzEzMmUuOWViOTY0NTJjZjdhM2IzZS5jM2I4YTJiOWIxZWQ4MjRiLjY2ZTg5MGJkNmQzODIzZWQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjhhMmI5YjFlZDgyNGI2Ni5lODkwYmQ2ZDM4MjNlZDIxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMGUzMDAwMDAwYTQuMDAwMDAwZTAwMDAwMDBiZgorICAgIGVmYTAzOGQzYmNhMDE3MzkuYjZiYTE4ZmVkZTU4YWI5MS45OGI1ZmNiZTEzODcwM2MxLjg1MGM3N2M4NTM2ZmEwYzkKICAgICA4Y2UwZWM0OTgwMDIyZDhlLmM0NmVhM2ZiZjRlYjZmZDQuN2M0MTVlNjgwNGU0ZjgyYi5hZGZkNzcyZjMyZDY5M2ZlCiAgICAgMzgwNzhjNWRhNmY4MzczOAogCi1WUEFMSUdOUl8xMjhfM29mMyhyZWcpCitWUE1PVlpYQkRfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODQ3NWIzYmU0YTYxYzkyNS5jMzIyYTMwOGJkNzkxMzVhLjI0MjEwMmI1YWNiZmMzYjIuNGIyODQ0YTVhMTBlMWViNgogICAgIGViOTVlN2JlYmE5ZTg1NmYuNmYzMmQ4ZmE5MDBmODJjOC4zMjFlMmY5OGEzNjBlMmQ3LmUxMzgyYTVmMDYxMzMxOGUKQEAgLTIyOTAyLDEyICsyMjkwMiwxMiBAQAogICAgIDdlMTY2NjRjNzBjMTZhY2IuOTZlY2FjMmI2NWNlZjIzZC5jODJhZTg4OWJiM2I3NWE5LmQxZmZlN2ZmOTVkYzBkZDMKICAgICBlNDRlYjZiY2Y4Yjg0Zjk4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmEzNjBlMmQ3ZTEzODJhNWYuMDYxMzMxOGU0YWIzMjgxMAotICAgIGViOTVlN2JlYmE5ZTg1NmYuNmYzMmQ4ZmE5MDBmODJjOC4zMjFlMmY5OGEzNjBlMmQ3LmUxMzgyYTVmMDYxMzMxOGUKKyAgICA4NDc1YjNiZTRhNjFjOTI1LmMzMjJhMzA4YmQ3OTEzNWEuMjQyMTAyYjVhY2JmYzNiMi40YjI4NDRhNWExMGUxZWI2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDRlMDAwMDAwZmYuMDAwMDAwZWQwMDAwMDBkZQogICAgIGNiYjEyNGNhOTMzYWE3YzIuNmNkYzA3MGMxNGQyMzkwNS40YWIzMjgxMDc0NWIwYWYwLjFhM2I4Yzg0NGVmZmVkZGUKICAgICA3ZTE2NjY0YzcwYzE2YWNiLjk2ZWNhYzJiNjVjZWYyM2QuYzgyYWU4ODliYjNiNzVhOS5kMWZmZTdmZjk1ZGMwZGQzCiAgICAgZTQ0ZWI2YmNmOGI4NGY5OAotVlBBTElHTlJfMTI4XzNvZjMobWVtKQorVlBNT1ZaWEJEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJlZjU3NWE3OTI5ZjZjNWEuNjExMGE5YjJlZWMwMGIzNi5jODJlNDQ0MWEwMGQ2YTliLjA4ZDA2YzcwMTU4ZDVmYWQKICAgICA4YmMwYTFhYzgwOWIyMzQ1LmQxZWJlYTY2YThjMmM2YWUuZTA2ZDRhM2NlMTlkNWQ0Yi42NmYxYWUyZjFlZGIwNmE5CkBAIC0yMjkxNiwxMiArMjI5MTYsMTIgQEAKICAgICBjYjJjYzliYzY2MzBiNzIzCiAgIGFmdGVyCiAgICAgMmVmNTc1YTc5MjlmNmM1YS42MTEwYTliMmVlYzAwYjM2LmM4MmU0NDQxYTAwZDZhOWIuMDhkMDZjNzAxNThkNWZhZAotICAgIDhiYzBhMWFjODA5YjIzNDUuZDFlYmVhNjZhOGMyYzZhZS5lMDZkNGEzY2UxOWQ1ZDRiLjY2ZjFhZTJmMWVkYjA2YTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmQ0YTNjZTE5ZDVkNGI2Ni5mMWFlMmYxZWRiMDZhOWM4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDE1MDAwMDAwOGQuMDAwMDAwNWYwMDAwMDBhZAorICAgIGQ2N2FiNGI4ZGRiYTJlODQuMjhmMjI0ZDYzYjUzZDZlMC5iOTc2M2EwNzQzOGE4NjdiLjNlZDhhYzM0NzFiNGE0NDkKICAgICBlZGYxMmNiNWM2MDg0YTQzLmMzNzM1MzZjNDIwMDc5NzcuMmUxNTkwOGRlMmRmYTI1NS5lYmQzNjFlOWFhYTE3NjM4CiAgICAgY2IyY2M5YmM2NjMwYjcyMwogCi1WTU9WU0RfUkVHX1hNTShyZWcpCitWUE1PVlNYQkRfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzkzMGUxMTg0MWVjYTRiNS5hYWVmODQ5MTU2OTAzM2IwLmZmYjg3Mzk2NWE1NGU5MjAuMWQxNmM4YmNkYmE4NmQwNQogICAgIDkxMmJhMzY5ZDY2Mjc5OWIuZWI0MjM4MzZhYTVlYTRmNS4zNjBlODFiZjFlZGI2Mjg3LjYxNDU1ZjdmNGFmMWEzYjgKQEAgLTIyOTMwLDExICsyMjkzMCwxMSBAQAogICAgIGMxZGQzMDc5NmU0NzFjOTkKICAgYWZ0ZXIKICAgICAzOTMwZTExODQxZWNhNGI1LmFhZWY4NDkxNTY5MDMzYjAuZmZiODczOTY1YTU0ZTkyMC4xZDE2YzhiY2RiYTg2ZDA1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmYjg3Mzk2NWE1NGU5MjAuNTc1Yzk3NzJmNzM1M2VkNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDA0YWZmZmZmZmM3LmZmZmZmZmZmZmZmZmZmOWEKICAgICAyZTY5MGQxYmMxMWQ3MjgxLjhhYjRjNTkyZGQ3ZTVhM2UuYzVjMTc4NTMyYjIyMjE1Ny5kNTZlZDBjMjRhYzdmZjlhCiAgICAgNmUzNjFhOWE5ZmE5Y2ExMi42NTEyYTU5MDBiZmQxMWI4LjA4MWQ1NGJlMWNiNDYzM2QuNTc1Yzk3NzJmNzM1M2VkNgogICAgIGMxZGQzMDc5NmU0NzFjOTkKLVZNT1ZTRF9SRUdfWE1NKG1lbSkKK1ZQTU9WU1hCRF8xMjgobWVtKQogICBiZWZvcmUKICAgICBmMGJiMTdjNGNhMGE1NDBmLmFiZGVjNzUyMGI5MmJmZmEuNTYyNzU2MWI1MWU2ODU4Zi41YjZlMTE2YzhkMWQ2MWU0CiAgICAgYzFjM2M5NDAyODg5YTM2My40M2FjMGViMGEyNjU4YWU3LjNiYzE1MzIxY2I0NTcxZWUuMWFmZmFiY2ExY2VhNWFmOQpAQCAtMjI5NDMsMTIgKzIyOTQzLDEyIEBACiAgICAgNzczMTgyMzQ4ODFjNzY4MgogICBhZnRlcgogICAgIGYwYmIxN2M0Y2EwYTU0MGYuYWJkZWM3NTIwYjkyYmZmYS41NjI3NTYxYjUxZTY4NThmLjViNmUxMTZjOGQxZDYxZTQKLSAgICBjMWMzYzk0MDI4ODlhMzYzLjQzYWMwZWIwYTI2NThhZTcuM2JjMTUzMjFjYjQ1NzFlZS4xYWZmYWJjYTFjZWE1YWY5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZjhkMDAwMDAwMWQuMDAwMDAwNjFmZmZmZmZlNAogICAgIDBlYzFjMWQ3YTNkMWM1YzEuOTBlZGVkMWVmZmFlNmE4My5lZWFhMTk4ZDk0Mjc5MjAyLmExMWUxZjQyNjJhNjg4MjgKICAgICBiNTgwN2I3NzU4ZWQ3NjU3LmYwZWQ1ZjBhYmZmNzk5N2EuNGRiMDIyNGNjODk3YTRmNi40YzE1Njg0MmZkZGUyODFjCiAgICAgNzczMTgyMzQ4ODFjNzY4MgogCi1WTU9WU0RfUkVHX1hNTShyZWcpCitWUE1PVlNYQkRfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgN2ViZTY5ODZhMGVlYWQwNS45MGNlNzQwYjYyZTk3MTRmLmJkZjg2MGRlN2RjZTU0NzkuMzI5ZGVjNDg4NGEyNjJmOAogICAgIGJkMDcxYWEzZTFlMDBhNTIuN2M3NTI2N2ZkZWQxNzNkNS41NTVhZWQwOGQ2YmVkNzJjLjdhM2VmMjZlZTQ1MzhhMzEKQEAgLTIyOTU3LDExICsyMjk1NywxMSBAQAogICAgIDNkNTA0NTE2ZWZjM2NiZWEKICAgYWZ0ZXIKICAgICA3ZWJlNjk4NmEwZWVhZDA1LjkwY2U3NDBiNjJlOTcxNGYuYmRmODYwZGU3ZGNlNTQ3OS4zMjlkZWM0ODg0YTI2MmY4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJkZjg2MGRlN2RjZTU0NzkuYTRjYmEzZTlmZGQ3MDJmZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwM2ZmZmZmZmI2LmZmZmZmZmQ1ZmZmZmZmY2YKICAgICA5MDVhOGZmNmU2N2RjOTE1LjU1NDMwZmJmZTdiMjM4MTYuMTI1ZjAwZjM2NTU0NWQzZS4wMTVlYjBhYTAzYjZkNWNmCiAgICAgNTMwMWM2ZWQ0YjUxMjVmOS5mODAyYWFiNzk5OTc3YjNlLjUxNTI5NzBiYzYxYjI0NWMuYTRjYmEzZTlmZGQ3MDJmZQogICAgIDNkNTA0NTE2ZWZjM2NiZWEKLVZNT1ZTRF9SRUdfWE1NKG1lbSkKK1ZQTU9WU1hCRF8xMjgobWVtKQogICBiZWZvcmUKICAgICBhOWI4MTQxY2Y0ODVlZGJlLjYxNGFiYmYzYWRlODVjYWIuM2Y3ZjczNTMxMThkZmE3OC42ZjgxYWRiYzk2OWY2NjMxCiAgICAgYzRkMDhiZTkyOTJhMjRhNi4xODdmNjg3NWE3Y2ZhOGQ2LjA3ODVlNzdmNmI5ZjZlZjEuYzYzNjNlNzI3MTZkNWY2YQpAQCAtMjI5NzAsMTIgKzIyOTcwLDEyIEBACiAgICAgYzA3NmFlZWI1NzA2ZjIyMwogICBhZnRlcgogICAgIGE5YjgxNDFjZjQ4NWVkYmUuNjE0YWJiZjNhZGU4NWNhYi4zZjdmNzM1MzExOGRmYTc4LjZmODFhZGJjOTY5ZjY2MzEKLSAgICBjNGQwOGJlOTI5MmEyNGE2LjE4N2Y2ODc1YTdjZmE4ZDYuMDc4NWU3N2Y2YjlmNmVmMS5jNjM2M2U3MjcxNmQ1ZjZhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZjk2ZmZmZmZmOWYuMDAwMDAwNjYwMDAwMDAzMQogICAgIDZhNjQyNjY4YTliZDJjZDAuZDNlZGNiZGRkNjkxNDUyNy4yY2UyODAyN2MyZDk5NmQ0LmIzYmU0Nzk5ZjIxMDRjYjMKICAgICA3NzQwNjI4NTkxNGFjMDY1LmVlZGZkZTk4ZDViYjcxNGEuOGE2MGJjMzgzMjQ3MmM0ZS45MzY1YzM5ZGI1MTQ2OWI3CiAgICAgYzA3NmFlZWI1NzA2ZjIyMwogCi1WTU9WU0RfUkVHX1hNTShyZWcpCitWUE1PVlNYQkRfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOTczZjA0ZWQ3NDcxMjNhMy5jNzMwYmEyY2ZjZGU5ZDk0LmM0YTNhMDEzNDBkODY2ZWEuZmRjZDE2OWNkOGY2ZWU4YgogICAgIDc0MGFjMTExYTdlMjM3ZTIuMzZmZmFhNDkwNjg0N2U4Ny5iMzg0MGFiOGI1NzQ2MWIzLjYxZjMwYjQxY2ZmMjk1YjYKQEAgLTIyOTg0LDExICsyMjk4NCwxMSBAQAogICAgIGNiYjg1ZGU3YjYyNTRkODcKICAgYWZ0ZXIKICAgICA5NzNmMDRlZDc0NzEyM2EzLmM3MzBiYTJjZmNkZTlkOTQuYzRhM2EwMTM0MGQ4NjZlYS5mZGNkMTY5Y2Q4ZjZlZThiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM0YTNhMDEzNDBkODY2ZWEuNmM5ZGIyZmIyM2ZkODk4OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAzNDAwMDAwMDQ1LmZmZmZmZmUwZmZmZmZmZmMKICAgICBiMzI1ZTJjMThjZTM2YjhjLmEwN2JhZWM4Y2Q0ODIxNmEuMTZjZDE5ZjVjZDFjOWQ1My45MjlmMTUxMjM0NDVlMGZjCiAgICAgYjBkYTYyNmJjMDAyZmE0ZS5lMTZlNDI5NjZhMzY0MDZhLjQ4Y2JjYTM0MjY1YTU3NzQuNmM5ZGIyZmIyM2ZkODk4OAogICAgIGNiYjg1ZGU3YjYyNTRkODcKLVZNT1ZTRF9SRUdfWE1NKG1lbSkKK1ZQTU9WU1hCRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA4YmJlOTJjNDBjY2FlODI1LmM3NzYzZDdhZGVjYjIyZDQuZDVhNWUzOWRmYjViOThiMy5hN2NhMThlMzVjYmRjYmMyCiAgICAgODg3OWNlN2QzZWY3MTU4ZC41NDQ0NmY1YTgzYzkxZGNhLjU4ZWMwY2NiOWNjM2U0NzEuOGQxNmZmNmQwYWNlMzVlYQpAQCAtMjI5OTcsMTIgKzIyOTk3LDEyIEBACiAgICAgMDliZjI0NjVmZjk3OGQzNAogICBhZnRlcgogICAgIDhiYmU5MmM0MGNjYWU4MjUuYzc3NjNkN2FkZWNiMjJkNC5kNWE1ZTM5ZGZiNWI5OGIzLmE3Y2ExOGUzNWNiZGNiYzIKLSAgICA4ODc5Y2U3ZDNlZjcxNThkLjU0NDQ2ZjVhODNjOTFkY2EuNThlYzBjY2I5Y2MzZTQ3MS44ZDE2ZmY2ZDBhY2UzNWVhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDVjZmZmZmZmYmQuZmZmZmZmY2JmZmZmZmZjMgogICAgIDllYjY4YmZmNmJiODkxZWMuYjM5MmY0Nzc0YTg4MjhkYi40NjBmMzkwYTY4NzhlMWNmLjU4ZmI3YjNlY2MxYmQxOTgKICAgICBhOTQxNDczNGFjMWExODZkLjQwYWFjOTNkZDA5NDdlYjMuN2JkOWU2NDg3Yjg4NGJmOS42MmM0ODljMjNmMmZkYTc3CiAgICAgMDliZjI0NjVmZjk3OGQzNAogCi1WTU9WU1NfUkVHX1hNTShyZWcpCitWUElOU1JCXzEyOF8xb2YzKHJlZykKICAgYmVmb3JlCiAgICAgYTczNjQ4OTRhNmRlMjU3YS44NGU2N2QwOTFmMjg2NTNkLjU3ZGFlOTE4YjA3YTVjZmYuZDMxODhmNzBmMmZmZGUxYwogICAgIDk5NzZmMWI5ZDM5MGRmZjcuMGQ3MWFhNmJlMGVlMzY4Ny41NDZjNTA3NTg2YzVmZTZiLjI5OTZiMTZlZThlNzU1NjQKQEAgLTIzMDEwLDEyICsyMzAxMCwxMiBAQAogICAgIGVhODFjMzk5Mjk2N2E5M2YuOTY2OGQ1ODJiYWQ0NGUzYy43MGU5ZTQ2MDg3YmI3ZDUxLjQ0ODI0ZDljYzM0MGUyMTEKICAgICBjMDg4YmZhNGUwYzc3MGNmCiAgIGFmdGVyCi0gICAgYTczNjQ4OTRhNmRlMjU3YS44NGU2N2QwOTFmMjg2NTNkLjU3ZGFlOTE4YjA3YTVjZmYuZDMxODhmNzBmMmZmZGUxYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41N2RhZTkxOGIwN2E1Y2ZmLmQzMTg4ZjcwYzM0MGUyMTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTQ2YzUwNzU4NmM1ZmU2Yi4yOTk2YjE2ZWU4ZTc1NWNmCisgICAgOTk3NmYxYjlkMzkwZGZmNy4wZDcxYWE2YmUwZWUzNjg3LjU0NmM1MDc1ODZjNWZlNmIuMjk5NmIxNmVlOGU3NTU2NAogICAgIDNjY2IxYzQxMjAzYWY3NTQuMWZhZTQ4NDQwYTc5NDU3OC45M2FkZmFiZWVmMDJhMGEyLjViMjBjNzJlN2E0ZTZlZmMKICAgICBlYTgxYzM5OTI5NjdhOTNmLjk2NjhkNTgyYmFkNDRlM2MuNzBlOWU0NjA4N2JiN2Q1MS40NDgyNGQ5Y2MzNDBlMjExCiAgICAgYzA4OGJmYTRlMGM3NzBjZgotVk1PVlNTX1JFR19YTU0obWVtKQorVlBJTlNSQl8xMjhfMW9mMyhtZW0pCiAgIGJlZm9yZQogICAgIGFhZmU5YTMyZWNmMmQyNjEuMDBlM2U0MmM4YmEzMzE2NC40ZDZjY2MxMDBiMGIwZmZmLjQ2NmIwOWM4ZTk3ZmQyMjQKICAgICBlMGFmNTkzMzA0Y2FjNWY0LmRiM2Y3YTY1ZTE3YmNhNmYuMjI4NmE5ZGExOTJiNDJlYi43MzgxNjU2MWIxZDdkYmM2CkBAIC0yMzAyNSwxMSArMjMwMjUsMTEgQEAKICAgYWZ0ZXIKICAgICBhYWZlOWEzMmVjZjJkMjYxLjAwZTNlNDJjOGJhMzMxNjQuNGQ2Y2NjMTAwYjBiMGZmZi40NjZiMDljOGU5N2ZkMjI0CiAgICAgZTBhZjU5MzMwNGNhYzVmNC5kYjNmN2E2NWUxN2JjYTZmLjIyODZhOWRhMTkyYjQyZWIuNzM4MTY1NjFiMWQ3ZGJjNgotICAgIDNjNjk3ODkxNDM1ZDA1YjMuZDVkZjgyYjJjNzdhYjEwYi5mMDgyZTljYjAxM2ZhNDJmLjUyNzVmNDk3N2M1MWQ0ZTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjI4NmE5ZGExOTJiNDJlYi43MzgxNjU2MTI0ZDdkYmM2CiAgICAgOWNmNjczM2FjNmI2NGRjYi40YjEwZjY3ZWRiMmMyMWU0LjkyMmMwNmQxZGU1NGYwZjUuM2Y5NWIyZDVlNjc4ZjgyOQogICAgIDk1MmI5Yzg5OGFkOTg0NDIKIAotVk1PVlNTX1JFR19YTU0ocmVnKQorVlBJTlNSQl8xMjhfMW9mMyhyZWcpCiAgIGJlZm9yZQogICAgIGIyODRhZDFlMDRmZmI0ZGIuZGEyM2M3MThhOGUxNWE2Ny45OTFlZDQzNWI2MWU1OGE4LmU2NTA3ZWQ4Y2Q3NGU0NmEKICAgICBmMWViZTEwMWYxNzZjMzlmLmQ0YmNlZTE5MDZlYmU4YjQuMWI1NTE3NDNmNmRiOTAwMC5jNmI5Y2NjYWVhYWUzYWI5CkBAIC0yMzAzNywxMiArMjMwMzcsMTIgQEAKICAgICA0NDE3YTM1YzkyODg3MTVhLjY4NjFhYTMxYTNjYTc2MTAuMmI2ZGJjMTUxNGU3ZjUyMy45ZThlZGIyMjFiOTlmZTk3CiAgICAgNGQ5MTk0NjE2NzYzZTQ3ZQogICBhZnRlcgotICAgIGIyODRhZDFlMDRmZmI0ZGIuZGEyM2M3MThhOGUxNWE2Ny45OTFlZDQzNWI2MWU1OGE4LmU2NTA3ZWQ4Y2Q3NGU0NmEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTkxZWQ0MzViNjFlNThhOC5lNjUwN2VkODFiOTlmZTk3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFiNTUxNzQzZjZkYjkwMDAuYzZiOWNjY2FlYWFlM2E3ZQorICAgIGYxZWJlMTAxZjE3NmMzOWYuZDRiY2VlMTkwNmViZThiNC4xYjU1MTc0M2Y2ZGI5MDAwLmM2YjljY2NhZWFhZTNhYjkKICAgICBhZGFlMzQ5Y2VjY2FlZTNhLjY0OGQ2NjI4ZmJkZmIzZGUuMmQwMGJiMTQzN2YwMDY5Yi4xMDM1NmM5NDRmMGJhZTBmCiAgICAgNDQxN2EzNWM5Mjg4NzE1YS42ODYxYWEzMWEzY2E3NjEwLjJiNmRiYzE1MTRlN2Y1MjMuOWU4ZWRiMjIxYjk5ZmU5NwogICAgIDRkOTE5NDYxNjc2M2U0N2UKLVZNT1ZTU19SRUdfWE1NKG1lbSkKK1ZQSU5TUkJfMTI4XzFvZjMobWVtKQogICBiZWZvcmUKICAgICBmYTBhMTIzYzUyNzUxZGYwLjEwNzQyOWFlN2UzYzg4YTkuYmEwNjM2MjAxYmI2ZWU3Ny43MWU2MTdiMDI5NGU5YTQ0CiAgICAgN2ZjNGQ0OWVmNWRjNjQxOC42ZjBmYzJmYzRkNzA2ZWQzLjM4NDY4N2UxN2ZiMWQ3M2YuNWJiOWM3NTIxM2IxMzFhYwpAQCAtMjMwNTIsMTEgKzIzMDUyLDExIEBACiAgIGFmdGVyCiAgICAgZmEwYTEyM2M1Mjc1MWRmMC4xMDc0MjlhZTdlM2M4OGE5LmJhMDYzNjIwMWJiNmVlNzcuNzFlNjE3YjAyOTRlOWE0NAogICAgIDdmYzRkNDllZjVkYzY0MTguNmYwZmMyZmM0ZDcwNmVkMy4zODQ2ODdlMTdmYjFkNzNmLjViYjljNzUyMTNiMTMxYWMKLSAgICBiOThkNTM3NTZmYTM3NzIzLmJiMzU2YWI0OWFiMjYwODUuYmNlZTE4NjBlYWM3ZWM5My40NTMwYzg2ODZlOWJmNjA0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM4NDY4N2UxN2ZiMWQ3M2YuNWJiOWM3NTI0NGIxMzFhYwogICAgIDg1MmYwZGFjZDlkNzEwM2QuNTIzMTFkNDAwMjhkOWE2Yi4yM2NhNjU4YTc4MDNlYjlmLjhiOTcxNjVkZDU5ODI0ZmIKICAgICA4OTNjYWU5Y2U0MzRmODNiCiAKLVZNT1ZTU19SRUdfWE1NKHJlZykKK1ZQSU5TUkJfMTI4XzFvZjMocmVnKQogICBiZWZvcmUKICAgICA5YjZhOGI5MzM4ZmNhZTcwLmJkNzg3YzJmNTE4M2ViOTEuOGU1MWQ4MGUyMDhlNTczMC40OWE2ZWE0OTQ2NzE4ZDkxCiAgICAgMWQ2Y2E5YWQ2YzdiODI0Ny4zZTMyMWVlYWYzYjNjNjRiLmNjZTA5Njg5OTA0MGQ0ODEuMGI0ZTIzOGI2ZjFkOTE5MgpAQCAtMjMwNjQsMTIgKzIzMDY0LDEyIEBACiAgICAgZTExZjk4ZmFlNmQwNzI4Yi44YzJiZTliODIyZDA2N2E0LmJmNzkwYjM2ZDllOGZlNzUuY2UzMWEzNDQ0NDYyYWE3OAogICAgIDg4MDRlMTk0MjgxMTM4YjQKICAgYWZ0ZXIKLSAgICA5YjZhOGI5MzM4ZmNhZTcwLmJkNzg3YzJmNTE4M2ViOTEuOGU1MWQ4MGUyMDhlNTczMC40OWE2ZWE0OTQ2NzE4ZDkxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhlNTFkODBlMjA4ZTU3MzAuNDlhNmVhNDk0NDYyYWE3OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jY2UwOTY4OTkwNDBkNDgxLjBiNGUyMzhiNmYxZDkxYjQKKyAgICAxZDZjYTlhZDZjN2I4MjQ3LjNlMzIxZWVhZjNiM2M2NGIuY2NlMDk2ODk5MDQwZDQ4MS4wYjRlMjM4YjZmMWQ5MTkyCiAgICAgNmI4ZjA0NTYxZDNlYWY2Yy5lNDJhNmZjOWRhNzM1Yjk5LjY5Mjk1MzFkZWYyZjRkMDkuNDM4ZDhkM2ExMDE0YjFkMQogICAgIGUxMWY5OGZhZTZkMDcyOGIuOGMyYmU5YjgyMmQwNjdhNC5iZjc5MGIzNmQ5ZThmZTc1LmNlMzFhMzQ0NDQ2MmFhNzgKICAgICA4ODA0ZTE5NDI4MTEzOGI0Ci1WTU9WU1NfUkVHX1hNTShtZW0pCitWUElOU1JCXzEyOF8xb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgNGRkM2MzMTVkNzJmMTdiMC5kYTY4NjIwNjY0YmQwNjRlLjEwMDMwYWE0ZThkNWE2OWIuMmIxY2JiNDBlOWY2MjI3MQogICAgIGY5NmFjNmI1NmVjNzAyOTkuYjRiNjVkZTQzMjkxYTk2NC40ZDdjNGQ3NzQ4OGZkM2E4LjA5NWU1ZGE4YmJlNWY2YTgKQEAgLTIzMDc5LDExICsyMzA3OSwxMSBAQAogICBhZnRlcgogICAgIDRkZDNjMzE1ZDcyZjE3YjAuZGE2ODYyMDY2NGJkMDY0ZS4xMDAzMGFhNGU4ZDVhNjliLjJiMWNiYjQwZTlmNjIyNzEKICAgICBmOTZhYzZiNTZlYzcwMjk5LmI0YjY1ZGU0MzI5MWE5NjQuNGQ3YzRkNzc0ODhmZDNhOC4wOTVlNWRhOGJiZTVmNmE4Ci0gICAgNjg5NDY0NjAwOGU2YjY5YS5jYTU1ODUwMWVkZDk5NTc3LjFmNjQyZTFlNWQwOWFiZjcuYjY4YmVmZDhlYzQyYjZjNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZDdjNGQ3NzQ4OGZkM2E4LjA5NWU1ZGE4NzFlNWY2YTgKICAgICA3NzFmMWIwMGMyOTdlZWUwLjc3OTBkNmNhMzAyMDA3MzQuNjI4NTI5ODY0MzRmZWFiNi44Y2VlNmMzZTE4OTg5ZDdhCiAgICAgZThkNWQxNDRkOTczZTk2YwogCi1WTU9WTFBEXzEyOF9NNjRfWE1NX1hNTShyZWcpCitWUElOU1JCXzEyOF8yb2YzKHJlZykKICAgYmVmb3JlCiAgICAgMjY4YTE4NThjZTYwZDQ0OS5mZmQ1Njc4MmI3ZTY2ODk2LjE5YjU0Y2FhOThmMzNhNDYuZjJhY2JiOWExNzZlNGIwZQogICAgIGEyNWEzZmU0OTFlYTlhYmUuZGY4NGMyZDIwM2UwZGVlYS4wYjBlZTQwY2MwZGQ2YzVhLmFiYTU1ZjQ2ZjQ3MThjMmUKQEAgLTIzMDkxLDEyICsyMzA5MSwxMiBAQAogICAgIGM0N2IxYTE5ZjIwNmFiMjAuMTRmODk5OGQxMzAyYjAxNi40ZThmNjcwYmMxMjdiNzM3LjA4M2NjZDE1M2I1NDk4NzAKICAgICA2NDcyOGYxMmRkNGNkY2ViCiAgIGFmdGVyCi0gICAgMjY4YTE4NThjZTYwZDQ0OS5mZmQ1Njc4MmI3ZTY2ODk2LjE5YjU0Y2FhOThmMzNhNDYuZjJhY2JiOWExNzZlNGIwZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wYjBlZTQwY2MwZGQ2YzVhLmFiZWI1ZjQ2ZjQ3MThjMmUKICAgICBhMjVhM2ZlNDkxZWE5YWJlLmRmODRjMmQyMDNlMGRlZWEuMGIwZWU0MGNjMGRkNmM1YS5hYmE1NWY0NmY0NzE4YzJlCiAgICAgYjg5MTQxNTZiZTllNzk3Ny5mMmY2YWFkZGMzOTAwZDA1LmE4ZTg5OTVlNDQ2YWQ3MWMuNjkzYjkxNzZmNzY0NjY0MAogICAgIGM0N2IxYTE5ZjIwNmFiMjAuMTRmODk5OGQxMzAyYjAxNi40ZThmNjcwYmMxMjdiNzM3LjA4M2NjZDE1M2I1NDk4NzAKICAgICA2NDcyOGYxMmRkNGNkY2ViCi1WTU9WTFBEXzEyOF9NNjRfWE1NX1hNTShtZW0pCitWUElOU1JCXzEyOF8yb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgNThhYTU0NTZmODU4ZjBkZC4yMjYzYzc5OWM4YjE2YzY0LjIxNTUwZGQwMGU0Mzg0NDcuNTc0ZTRiN2ZkMzlmNGE1NwogICAgIGMyYjA5N2NlYTk4NThkNzIuMmU5NzQzNDJkYzI4ZmFlZi5mNWRiODI5MWQwNWU0NWM0LjIxNzMzZjI2MTU1ZWNhMmEKQEAgLTIzMTA2LDExICsyMzEwNiwxMSBAQAogICBhZnRlcgogICAgIDU4YWE1NDU2Zjg1OGYwZGQuMjI2M2M3OTljOGIxNmM2NC4yMTU1MGRkMDBlNDM4NDQ3LjU3NGU0YjdmZDM5ZjRhNTcKICAgICBjMmIwOTdjZWE5ODU4ZDcyLjJlOTc0MzQyZGMyOGZhZWYuZjVkYjgyOTFkMDVlNDVjNC4yMTczM2YyNjE1NWVjYTJhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY1ZGI4MjkxZDA1ZTQ1YzQuNTc0ZTRiN2ZkMzlmNGE1NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNWRiODI5MWQwNWU1N2M0LjIxNzMzZjI2MTU1ZWNhMmEKICAgICA2NTU2ODcwYjNiNmY1OTMyLmMwMGU5OGMwMzFhZjY4OGQuNjI4ZTViM2MxYjUzN2Q1NS42MzFiNGNiZDlhZTI4MzkzCiAgICAgOTUzNjVjODYxNWMwMzU4MgogCi1WTU9WTFBEXzEyOF9NNjRfWE1NX1hNTShyZWcpCitWUElOU1JCXzEyOF8yb2YzKHJlZykKICAgYmVmb3JlCiAgICAgZjZlNjZlMzEzMTE0YzRkMy41NThlMmRhNzU0NDVmZmI2LmZlZWE2OTZjYTlkNmMxZjcuYjI1M2I4ZmZkYzQ1NmRjMQogICAgIGUzNzY3YzJjODk2YzZjMzEuMmJjMzQwMjg3MjZiMjA4ZC41YTQxZmFmMmQwZmJkNTU5LjNhNzAwNWYwZDU0MTM4MjgKQEAgLTIzMTE4LDEyICsyMzExOCwxMiBAQAogICAgIGQyNmE4MWJlNWY1NmZiYzYuZjU1N2EzODYzMGQ4YzFlMi5kYjhmNDgzODk4NmQyMWI0LjVlZTE2MDBkZGM4OTU2OWUKICAgICBiM2NlNjYxMDIyZWMyMDA0CiAgIGFmdGVyCi0gICAgZjZlNjZlMzEzMTE0YzRkMy41NThlMmRhNzU0NDVmZmI2LmZlZWE2OTZjYTlkNmMxZjcuYjI1M2I4ZmZkYzQ1NmRjMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41YTQxZmFmMmQwZmJkNTU5LjNhMDQwNWYwZDU0MTM4MjgKICAgICBlMzc2N2MyYzg5NmM2YzMxLjJiYzM0MDI4NzI2YjIwOGQuNWE0MWZhZjJkMGZiZDU1OS4zYTcwMDVmMGQ1NDEzODI4CiAgICAgYjkzNDg0ZTFiYTU0NmI0OS5jMmMyM2U3OWIyZWQ3N2UyLjJmNWY0NWJjNDFhOWUxNWYuZDViMWJlZmMyMDU0OWRiOQogICAgIGQyNmE4MWJlNWY1NmZiYzYuZjU1N2EzODYzMGQ4YzFlMi5kYjhmNDgzODk4NmQyMWI0LjVlZTE2MDBkZGM4OTU2OWUKICAgICBiM2NlNjYxMDIyZWMyMDA0Ci1WTU9WTFBEXzEyOF9NNjRfWE1NX1hNTShtZW0pCitWUElOU1JCXzEyOF8yb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgYWU0MjRjZjIxMDhhYjcxNi44YjY2NzAyZTE1MDA1OTU1LmEyNGVlOTNiMDczN2JhYjkuYjkxZmZmZDE3MmQyZDEwNQogICAgIDJkMGI4ZTlkYzI2ZWQ2MDEuNDA3MjRiOWQ3N2RlYzFhMi5hNDczOGU4NDUzMTYxZTkyLjI0NTk2NGYzNmI2NDJjZmQKQEAgLTIzMTMzLDExICsyMzEzMywxMSBAQAogICBhZnRlcgogICAgIGFlNDI0Y2YyMTA4YWI3MTYuOGI2NjcwMmUxNTAwNTk1NS5hMjRlZTkzYjA3MzdiYWI5LmI5MWZmZmQxNzJkMmQxMDUKICAgICAyZDBiOGU5ZGMyNmVkNjAxLjQwNzI0YjlkNzdkZWMxYTIuYTQ3MzhlODQ1MzE2MWU5Mi4yNDU5NjRmMzZiNjQyY2ZkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE0NzM4ZTg0NTMxNjFlOTIuYjkxZmZmZDE3MmQyZDEwNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNDczOGU4NDUzMTYwNTkyLjI0NTk2NGYzNmI2NDJjZmQKICAgICAyM2M3MTcwM2UwMzk5ZjExLjBmZWRiYTI4YjE2MzlkMjQuMTY3NmUxODJiYzg2MTVmYy4xNmZlMmQ4MjI3NDBkNjk1CiAgICAgNTMwMTg4YzcyM2EzOWM4YwogCi1WTU9WTFBEXzEyOF9NNjRfWE1NX1hNTShyZWcpCitWUElOU1JCXzEyOF8yb2YzKHJlZykKICAgYmVmb3JlCiAgICAgOGZkZTgyNDVhZDYyZmVkYS41MjUyNTY5NTg0MzhjMThkLmUwZjM0NTFjYzAyMjhhYjEuM2VlZDg5MGYxMTJmMjFlNQogICAgIDI1ZTMxNzY4NjIwYjM4MmQuNzU2MmUxYTE1YmFlNWI5My4xZDNiYWViZmVjNDU3MGFjLjJjYzE3ZWUxNGI4Nzg3ODAKQEAgLTIzMTQ1LDEyICsyMzE0NSwxMiBAQAogICAgIGNkOTAwNDRlYmI0OTIzOGMuMDMzZGNjZDcxNTJjZWFlNy40YmJjMDZjMzBhZTQxYTliLmM1YjM0NDAwZTA3YTU0N2YKICAgICAyYTY4MGMyNTczMmMzMzNhCiAgIGFmdGVyCi0gICAgOGZkZTgyNDVhZDYyZmVkYS41MjUyNTY5NTg0MzhjMThkLmUwZjM0NTFjYzAyMjhhYjEuM2VlZDg5MGYxMTJmMjFlNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZDNiYWViZmVjNDU3MGFjLjJjM2E3ZWUxNGI4Nzg3ODAKICAgICAyNWUzMTc2ODYyMGIzODJkLjc1NjJlMWExNWJhZTViOTMuMWQzYmFlYmZlYzQ1NzBhYy4yY2MxN2VlMTRiODc4NzgwCiAgICAgNzA1YTQ0OWRkZDI5ODUyZi42NmMxMzQxMzgyYTUyYTRjLjIyMGZlZjdlZDE1NzhjYzEuYmFiZjNlZTI4NzlkMDRmYQogICAgIGNkOTAwNDRlYmI0OTIzOGMuMDMzZGNjZDcxNTJjZWFlNy40YmJjMDZjMzBhZTQxYTliLmM1YjM0NDAwZTA3YTU0N2YKICAgICAyYTY4MGMyNTczMmMzMzNhCi1WTU9WTFBEXzEyOF9NNjRfWE1NX1hNTShtZW0pCitWUElOU1JCXzEyOF8yb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgYzNhYzEyM2Y1YmJlNWM1OC45OWQxNTNlOTk3ZjY0Y2YxLjI2YTAyNGQ5MmY0YzU2OGUuZjQ4ZWVlZmMzMzc5NTZlNwogICAgIDZkNDlkMzM5YjUzYzhjMDQuMmU2OTJlZDkwZWJjM2MwYS5hY2I3YjgwNWVjMTMyYzZlLjc5ZDFhMzk0ZTlhMTdiNTAKQEAgLTIzMTYwLDExICsyMzE2MCwxMSBAQAogICBhZnRlcgogICAgIGMzYWMxMjNmNWJiZTVjNTguOTlkMTUzZTk5N2Y2NGNmMS4yNmEwMjRkOTJmNGM1NjhlLmY0OGVlZWZjMzM3OTU2ZTcKICAgICA2ZDQ5ZDMzOWI1M2M4YzA0LjJlNjkyZWQ5MGViYzNjMGEuYWNiN2I4MDVlYzEzMmM2ZS43OWQxYTM5NGU5YTE3YjUwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFjYjdiODA1ZWMxMzJjNmUuZjQ4ZWVlZmMzMzc5NTZlNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hY2I3YjgwNWVjMTNlNzZlLjc5ZDFhMzk0ZTlhMTdiNTAKICAgICA2NWMyNzM3ZDJkMmZmMGI5LjI3Y2Q3NDY3M2FjNTY1MDYuNTIzMDg0OGNjMWM0MDA4Ny44NmQ5NjY5MDZhZGI3MzJjCiAgICAgYzczNzZiY2Q2ZTA2YmVmNgogCi1WTU9WTFBEXzEyOF9YTU1fTTY0KHJlZykKK1ZQSU5TUkJfMTI4XzNvZjMocmVnKQogICBiZWZvcmUKICAgICA1NDM1MmQxOTZkZjNlMjhlLjZhMzU0YTlmODNiYTlkMTkuNDIzMWQ4ZGUyODFmMTU0MS4yOTJiYjViZjExYzU3NzE4CiAgICAgODkyMGE4ZTAwNjMwMWM5Zi5mMDMxY2M1MWJhNjIzZmI4Ljk4MWNiODViMjFjMzdkZTAuZDMwOTEyY2I3NDllNDc5MgpAQCAtMjMxNzIsMTIgKzIzMTcyLDEyIEBACiAgICAgNWFlZGJiOTA3MGM4YzFkZS5lZmY4YmQxNjNlMzc1OTYyLjYwYjdkODEyYTExNjYzZjkuMTBhMTQwMjNlNTAxZTJmMAogICAgIDViZjMwYTQ2MmJhNDI0MmMKICAgYWZ0ZXIKLSAgICA1NDM1MmQxOTZkZjNlMjhlLjZhMzU0YTlmODNiYTlkMTkuNDIzMWQ4ZGUyODFmMTU0MS4yOTJiYjViZjExYzU3NzE4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk4MWNiODJjMjFjMzdkZTAuZDMwOTEyY2I3NDllNDc5MgogICAgIDg5MjBhOGUwMDYzMDFjOWYuZjAzMWNjNTFiYTYyM2ZiOC45ODFjYjg1YjIxYzM3ZGUwLmQzMDkxMmNiNzQ5ZTQ3OTIKICAgICBjMjQ0ZDk4ZmQyNDhhOGQ2LmQzODQ3MzgwZWYzMjk1YzIuODNkYTBlNDhjMDNjZDg4Zi4yYzk3MTc5ZTA3NTgyYzIxCiAgICAgNWFlZGJiOTA3MGM4YzFkZS5lZmY4YmQxNjNlMzc1OTYyLjYwYjdkODEyYTExNjYzZjkuMTBhMTQwMjNlNTAxZTJmMAogICAgIDViZjMwYTQ2MmJhNDI0MmMKLVZNT1ZMUERfMTI4X1hNTV9NNjQobWVtKQorVlBJTlNSQl8xMjhfM29mMyhtZW0pCiAgIGJlZm9yZQogICAgIGVhNTllZmYzZjQ0ZWFmMDAuYWY2NzRhNTA3OTNiYTQ2NS4yMDViMjUwMWMxN2M0OWM0LjhiZmYxMTI1NjFkZTVhY2IKICAgICA5NzllNmQxNjVkMGEzZTk5LjFjZmQ4MjNjOGIyZDhkMTQuNDI3NzI4MmI5NzBkMWUxNS42MWZlYjVlZTljMWZmOGIwCkBAIC0yMzE4NSwxMyArMjMxODUsMTMgQEAKICAgICBiZWY5MjI2ZjdjZTk1Y2M5LmFkYjFkZTQ0MzliZjYwYTEuYzkwZGViZjFhNjQ0NmUzMy43OTRmMmY0ZWYwM2QxYzY2CiAgICAgNzQzYWZkYmU0MjMyMWE4ZQogICBhZnRlcgotICAgIGVhNTllZmYzZjQ0ZWFmMDAuYWY2NzRhNTA3OTNiYTQ2NS4yMDViMjUwMWMxN2M0OWM0LjNjZmZjMGQ3ZWM2NTdhNTUKKyAgICBlYTU5ZWZmM2Y0NGVhZjAwLmFmNjc0YTUwNzkzYmE0NjUuMjA1YjI1MDFjMTdjNDljNC44YmZmMTEyNTYxZGU1YWNiCiAgICAgOTc5ZTZkMTY1ZDBhM2U5OS4xY2ZkODIzYzhiMmQ4ZDE0LjQyNzcyODJiOTcwZDFlMTUuNjFmZWI1ZWU5YzFmZjhiMAotICAgIDNmOTBmZjljODFlNDhmMjMuZmNmYzVmYmU0MjJhYjg5YS4zMTE5NDA4MmRhZjY5NzgxLjNjZmZjMGQ3ZWM2NTdhNTUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2I3NzI4MmI5NzBkMWUxNS42MWZlYjVlZTljMWZmOGIwCiAgICAgYmVmOTIyNmY3Y2U5NWNjOS5hZGIxZGU0NDM5YmY2MGExLmM5MGRlYmYxYTY0NDZlMzMuNzk0ZjJmNGVmMDNkMWM2NgogICAgIDc0M2FmZGJlNDIzMjFhOGUKIAotVk1PVkxQRF8xMjhfWE1NX002NChyZWcpCitWUElOU1JCXzEyOF8zb2YzKHJlZykKICAgYmVmb3JlCiAgICAgODkwYzI2OTM3ZWQxYWY3YS5lZmE2NTA3YzZiMjQ2MmI4Ljg5NjZmYTM5MGQ3N2MyZDUuZTYxZWE0NjQxODAzNjA1OAogICAgIDE0MTFhNjM5NDFhNDE4ZDUuYjA2MzA3YjA2YWExNWMxYi5lZTY3YWYwOTU5ZGYxYWUzLjY0MWFlN2M3NGIzZDI5MWMKQEAgLTIzMTk5LDEyICsyMzE5OSwxMiBAQAogICAgIGZjZTM5Y2E4YzkxYzU2OGIuNGYzZGZlMzkwNTkzMWZmMC5iZjgyZDVlYWNhZWM5YTNjLmYzZmVmYzBkNjY1ODJlMmYKICAgICBiYzgwYzZjODg2NGZlM2Q2CiAgIGFmdGVyCi0gICAgODkwYzI2OTM3ZWQxYWY3YS5lZmE2NTA3YzZiMjQ2MmI4Ljg5NjZmYTM5MGQ3N2MyZDUuZTYxZWE0NjQxODAzNjA1OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZTY3YWZkNjU5ZGYxYWUzLjY0MWFlN2M3NGIzZDI5MWMKICAgICAxNDExYTYzOTQxYTQxOGQ1LmIwNjMwN2IwNmFhMTVjMWIuZWU2N2FmMDk1OWRmMWFlMy42NDFhZTdjNzRiM2QyOTFjCiAgICAgNzE5NTdhMWMyNjM5OTE0Yy5kY2ZjYzJmNTk0NmQwNzFmLjM2MDJmYTIwYjk4MmEzNzcuMWZjYjMxMDY1YzAwODRhYQogICAgIGZjZTM5Y2E4YzkxYzU2OGIuNGYzZGZlMzkwNTkzMWZmMC5iZjgyZDVlYWNhZWM5YTNjLmYzZmVmYzBkNjY1ODJlMmYKICAgICBiYzgwYzZjODg2NGZlM2Q2Ci1WTU9WTFBEXzEyOF9YTU1fTTY0KG1lbSkKK1ZQSU5TUkJfMTI4XzNvZjMobWVtKQogICBiZWZvcmUKICAgICA1NjFhMGEyM2Q3ZjM1ZWNjLjExNDgwYTQ5YzhkOGEyM2QuZTVmMTM1NjdkYTFmNjBiOS5lMzMyM2VkMzI3YWEzYmRmCiAgICAgOWM5YjQ0MGI3NTUwNWQzZC4wYzEwYmY2YmJjZjliMjBmLjdhZTVlNTZiMmYxZTg1YTYuMDA1ZjMwNDc2ZDQ3YzIwYgpAQCAtMjMyMTIsMTMgKzIzMjEyLDEzIEBACiAgICAgYTE3ZThjMmUwYjYxZDEzZS4yM2Y5ZWZlM2Y5OWIwZGMxLjEwYmQ5ZGE1YzZhMjZlYTAuOTA2MGEwODEyMjRmNzBiMQogICAgIGJkY2MxNTFmY2FkMjEwODIKICAgYWZ0ZXIKLSAgICA1NjFhMGEyM2Q3ZjM1ZWNjLjExNDgwYTQ5YzhkOGEyM2QuZTVmMTM1NjdkYTFmNjBiOS43MDU1YTdiMzM4NGY2YTZkCisgICAgNTYxYTBhMjNkN2YzNWVjYy4xMTQ4MGE0OWM4ZDhhMjNkLmU1ZjEzNTY3ZGExZjYwYjkuZTMzMjNlZDMyN2FhM2JkZgogICAgIDljOWI0NDBiNzU1MDVkM2QuMGMxMGJmNmJiY2Y5YjIwZi43YWU1ZTU2YjJmMWU4NWE2LjAwNWYzMDQ3NmQ0N2MyMGIKLSAgICA2Y2NlZjE2YTdkNzA5YTU0LjQ4ODdiODdiNDMwYmMxYWMuZTllNTg5MzExZTliNGNlNS43MDU1YTdiMzM4NGY2YTZkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRmZTVlNTZiMmYxZTg1YTYuMDA1ZjMwNDc2ZDQ3YzIwYgogICAgIGExN2U4YzJlMGI2MWQxM2UuMjNmOWVmZTNmOTliMGRjMS4xMGJkOWRhNWM2YTI2ZWEwLjkwNjBhMDgxMjI0ZjcwYjEKICAgICBiZGNjMTUxZmNhZDIxMDgyCiAKLVZNT1ZMUERfMTI4X1hNTV9NNjQocmVnKQorVlBJTlNSQl8xMjhfM29mMyhyZWcpCiAgIGJlZm9yZQogICAgIDUxZTUwNGY3Yzk2NDg1OGQuMTY3ODkxNDIzYTJmYzAyNi5mOGIyNjIxMTc5MzRkMGZhLmNhMzk5ZGIzNDE0MGFhMDMKICAgICBhOWY2Njg3N2JlOTIwYzdlLmE5ODk3YzkyMjZlNDIxMzkuMjNmZTBjNmY1ZjYzNDcwMi5mMjI1MDY0N2FiODBiYTNiCkBAIC0yMzIyNiwxMiArMjMyMjYsMTIgQEAKICAgICAxNjM0ODAxY2Y0ZWY0MGJmLjk1MWFmNTk2YTgzOTJiOGUuZWE3ZGY2NzBkMGIwNDAzMS4wMTdjMDBiMmJlMTc0OWQ5CiAgICAgOWU3Zjg5NjE5ZTg2M2Y5NwogICBhZnRlcgotICAgIDUxZTUwNGY3Yzk2NDg1OGQuMTY3ODkxNDIzYTJmYzAyNi5mOGIyNjIxMTc5MzRkMGZhLmNhMzk5ZGIzNDE0MGFhMDMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjNmZTBjOTc1ZjYzNDcwMi5mMjI1MDY0N2FiODBiYTNiCiAgICAgYTlmNjY4NzdiZTkyMGM3ZS5hOTg5N2M5MjI2ZTQyMTM5LjIzZmUwYzZmNWY2MzQ3MDIuZjIyNTA2NDdhYjgwYmEzYgogICAgIDIxNGMzZTBhNDJlN2UxMDAuMzU3YWM5MGFlYzhmYjFhMi4wMDI4ZTk2YjQ4YjNhZDg2LjY2NGQ1MzRlMjA2ZTViNzQKICAgICAxNjM0ODAxY2Y0ZWY0MGJmLjk1MWFmNTk2YTgzOTJiOGUuZWE3ZGY2NzBkMGIwNDAzMS4wMTdjMDBiMmJlMTc0OWQ5CiAgICAgOWU3Zjg5NjE5ZTg2M2Y5NwotVk1PVkxQRF8xMjhfWE1NX002NChtZW0pCitWUElOU1JCXzEyOF8zb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgMWIyMjZhNDZkZWM3ZmFkYS5lMmY4MmMxOTZkMzc2NDY5LmE3MzQ3YjIyNzVmMDRkMjkuM2Y0OTJkZWE5MmU2M2FiMAogICAgIDUyMzEyMDRjOWFlNzM2Y2QuZTJlNDNkNmQ0YjRhOGFhNy40NTkzZDc5YTZmYmZkMTllLjVhZDg4YzQ1MmFlMmQ3YWUKQEAgLTIzMjM5LDEzICsyMzIzOSwxMyBAQAogICAgIDYyYzJmODcwZjRmMjIwNzUuZWU2OTdmY2FhNTAyY2M5Ni45OTU0MDJmZjVjZDZmMWM5LjUxNmViMDRlNGU1YWVlZGEKICAgICBlNTBlNmNkNTEyZWVkZjYwCiAgIGFmdGVyCi0gICAgMWIyMjZhNDZkZWM3ZmFkYS5lMmY4MmMxOTZkMzc2NDY5LmE3MzQ3YjIyNzVmMDRkMjkuOTY3NjBlZWQzNTMwNTVkOQorICAgIDFiMjI2YTQ2ZGVjN2ZhZGEuZTJmODJjMTk2ZDM3NjQ2OS5hNzM0N2IyMjc1ZjA0ZDI5LjNmNDkyZGVhOTJlNjNhYjAKICAgICA1MjMxMjA0YzlhZTczNmNkLmUyZTQzZDZkNGI0YThhYTcuNDU5M2Q3OWE2ZmJmZDE5ZS41YWQ4OGM0NTJhZTJkN2FlCi0gICAgMjE3ODI2NjFlZGYxYWY5Yy43MjQ2YWY4NDJhYjRlZTI4LjRkMDU4NWVhYjNiMjczMWEuOTY3NjBlZWQzNTMwNTVkOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMDkzZDc5YTZmYmZkMTllLjVhZDg4YzQ1MmFlMmQ3YWUKICAgICA2MmMyZjg3MGY0ZjIyMDc1LmVlNjk3ZmNhYTUwMmNjOTYuOTk1NDAyZmY1Y2Q2ZjFjOS41MTZlYjA0ZTRlNWFlZWRhCiAgICAgZTUwZTZjZDUxMmVlZGY2MAogCi1WU0hVRlBEXzEyOF8xb2YyKHJlZykKK1ZDT01JU0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjBhMDQwZWMxYzc3NjMxNC5mMmRkMTI2NWNhZjU0NjgyLmIyOThhN2FjNThiZjVmOWQuMDc0ZGM4YzM4NzM2MDVkNgogICAgIDBjNzEyNzAxMDk4MmI4YTUuYWU5M2YxMmM4YjA2ZGRlZi4xYTIwMjU5NGUwNzhlNGViLjcxYmM1NTI0NGZkZjZjNmUKQEAgLTIzMjUzLDEyICsyMzI1MywxMiBAQAogICAgIGViMDAxZWQxZjk0YmJmMDkuMTUwM2ViZTE0MDgzNGQ5Yy40NjZiMTEyYWRlMGJiMzA2LmFkMmJiMjY5MjgzOTIyZWQKICAgICAzNmMzNzkyNjcxMDJlOTJjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFkMmJiMjY5MjgzOTIyZWQuNzFiYzU1MjQ0ZmRmNmM2ZQorICAgIGIwYTA0MGVjMWM3NzYzMTQuZjJkZDEyNjVjYWY1NDY4Mi5iMjk4YTdhYzU4YmY1ZjlkLjA3NGRjOGMzODczNjA1ZDYKICAgICAwYzcxMjcwMTA5ODJiOGE1LmFlOTNmMTJjOGIwNmRkZWYuMWEyMDI1OTRlMDc4ZTRlYi43MWJjNTUyNDRmZGY2YzZlCiAgICAgNTdjZDFkN2U3NDlhMThiZC43MGIxMTBiMTU0MzFhMGU5LjgyNGRmNGYwZDliNzk2MjkuYjQ2YzI0MGNkMWRiZTFiYwogICAgIGViMDAxZWQxZjk0YmJmMDkuMTUwM2ViZTE0MDgzNGQ5Yy40NjZiMTEyYWRlMGJiMzA2LmFkMmJiMjY5MjgzOTIyZWQKLSAgICAzNmMzNzkyNjcxMDJlOTJjCi1WU0hVRlBEXzEyOF8xb2YyKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwCitWQ09NSVNEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJjMDJmNzJmYzc0NGYyYTYuMjY1NjI3NjUzNjIyZWIzNC43YTU1ZmVhNjZjMDc5ZDMzLmMyYzY3NmIwOGJmZDc1MmMKICAgICA2YmIyYTc3MDQ2MGFmYjg3LjYyMWEzM2E2YzRhYWQ2ZWIuNzk3M2M1ZWVmNGNhNGZkYi41MmE5MjFlZDdkMWIxOTQ3CkBAIC0yMzI2OCwxMSArMjMyNjgsMTEgQEAKICAgYWZ0ZXIKICAgICAyYzAyZjcyZmM3NDRmMmE2LjI2NTYyNzY1MzYyMmViMzQuN2E1NWZlYTY2YzA3OWQzMy5jMmM2NzZiMDhiZmQ3NTJjCiAgICAgNmJiMmE3NzA0NjBhZmI4Ny42MjFhMzNhNmM0YWFkNmViLjc5NzNjNWVlZjRjYTRmZGIuNTJhOTIxZWQ3ZDFiMTk0NwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMmM2NzZiMDhiZmQ3NTJjLjc5NzNjNWVlZjRjYTRmZGIKKyAgICBkMGEwMDVkNTBiNjFiZWZhLmZjOTkzZTAwNDE2ZmJkZDkuZWYyOGJkYTNmMmQ3MWRiZi41MjYyMGQ0ZDRmZjBkYTA0CiAgICAgMzU5NzhlNGEzMjU0ZjgyYy41MTIwNDRkZjQ5ZmVkYmFiLmI4NDI2MWIzODUzYWM0MGMuMWQzYjM2M2M5ZTA5ZjUwZgotICAgIDExODE5ODI2MDVmMGE2MTMKKyAgICAwMDAwMDAwMDAwMDAwMDAwCiAKLVZTSFVGUERfMTI4XzFvZjIocmVnKQorVkNPTUlTRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA4OTgwMzA3NzIxMzQyOWJkLjc3NjViZGJjZDZlZjY1NDguYmJmOTQyYWY3N2UyNmUwZC5iMDhiMmQwOWM2ZmYwMGVlCiAgICAgZTE4NGY5OWM4ZDVlYjliOS43MmQ0MGQxNTEzM2VjMDdiLjk3NzEzMmRjNjdhN2IwYWEuYjNkMDlkOTFkNDMzOGQ5MApAQCAtMjMyODAsMTIgKzIzMjgwLDEyIEBACiAgICAgYTBjYTBlMGVjNzk5ZjM1NS4wM2M5MDYzMGNhMmIzM2Q1LjE1NmRkZWZlZmYwNjMzNDcuNGI3ZDVhZTdjMDE2ODhjNgogICAgIDk3N2U5ZjhkZDhkZDZlYjIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGI3ZDVhZTdjMDE2ODhjNi5iM2QwOWQ5MWQ0MzM4ZDkwCisgICAgODk4MDMwNzcyMTM0MjliZC43NzY1YmRiY2Q2ZWY2NTQ4LmJiZjk0MmFmNzdlMjZlMGQuYjA4YjJkMDljNmZmMDBlZQogICAgIGUxODRmOTljOGQ1ZWI5YjkuNzJkNDBkMTUxMzNlYzA3Yi45NzcxMzJkYzY3YTdiMGFhLmIzZDA5ZDkxZDQzMzhkOTAKICAgICA3NGQ4ZWZmZmU2ZmM5M2IyLjAyYjJmZDQzMDY0ZWM2ZjEuNDFkMzEyZDNiNmRhZGQyZi45ZWRkMmQzN2M4ZTIyNjFmCiAgICAgYTBjYTBlMGVjNzk5ZjM1NS4wM2M5MDYzMGNhMmIzM2Q1LjE1NmRkZWZlZmYwNjMzNDcuNGI3ZDVhZTdjMDE2ODhjNgotICAgIDk3N2U5ZjhkZDhkZDZlYjIKLVZTSFVGUERfMTI4XzFvZjIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZDT01JU0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNWVhYTc4MTUyYjQyOTYwZi5jMGE0NTMzM2NjYzIxNTRkLjUxZTZhNWNhN2NkZmMyNTQuNmY4OTkwY2JkZmI3ZWM5ZgogICAgIDdjY2Y2MjZiZDY1MmJhMDguMmZiM2I4ZGM5MjAyMzQ0Ny5jOGQ1NTdmYzM4NzgzMDk5LmFjNzQyNmE0ZjI3YTQ1ZTMKQEAgLTIzMjk1LDExICsyMzI5NSwxMSBAQAogICBhZnRlcgogICAgIDVlYWE3ODE1MmI0Mjk2MGYuYzBhNDUzMzNjY2MyMTU0ZC41MWU2YTVjYTdjZGZjMjU0LjZmODk5MGNiZGZiN2VjOWYKICAgICA3Y2NmNjI2YmQ2NTJiYTA4LjJmYjNiOGRjOTIwMjM0NDcuYzhkNTU3ZmMzODc4MzA5OS5hYzc0MjZhNGYyN2E0NWUzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZmODk5MGNiZGZiN2VjOWYuYzhkNTU3ZmMzODc4MzA5OQorICAgIGNjYjdkNzdjZjQxODk3Y2EuNGI0MzNiNzRiNWU1OGRlZS40NDYxOTdiMjE4MDEzOWQxLjI2N2I5YWY3ZDJkYTdhYmUKICAgICAyYzJmNTUzMmExYTBlODgwLjZlYTBkNzY3ZDBmNzVjZjAuYTE1OGUxZDgzYjg3OTkyOC4zYWU3ZWEyZjFlNjRjNmRkCi0gICAgNDQwNzEyYjg2ZmEyNjZlYgorICAgIDAwMDAwMDAwMDAwMDAwMDEKIAotVlNIVUZQRF8xMjhfMW9mMihyZWcpCitWQ09NSVNEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGEwMjYwY2ZlNjQyMjk2OTUuNzcwMjU3N2JmYWY3NmE1Ny5mNjE2ODkyMTdmYzVkY2Y2LmJiODRiMjVhYmExNTBiYzkKICAgICBhYThmZDY2ZDk2NzA5MTg3Ljg5ZmU1OTQyMWIyOGQ5N2IuM2RmMDRiMGU1ZmRiNGFhZi42ZWIyODUyNGI0Yjc0ZGUxCkBAIC0yMzMwNywxMiArMjMzMDcsMTIgQEAKICAgICAzNzczYzc3NzI3YTNkY2YxLjcyOWQ0ZmZhMjI0OTZkNTguN2MwNGY0MzEyMTBiZTBlNC4wZTQ0MjE0MTgyNjkyYjI0CiAgICAgYjQ0MGUyNmI5MDkwNDBhNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZTQ0MjE0MTgyNjkyYjI0LjZlYjI4NTI0YjRiNzRkZTEKKyAgICBhMDI2MGNmZTY0MjI5Njk1Ljc3MDI1NzdiZmFmNzZhNTcuZjYxNjg5MjE3ZmM1ZGNmNi5iYjg0YjI1YWJhMTUwYmM5CiAgICAgYWE4ZmQ2NmQ5NjcwOTE4Ny44OWZlNTk0MjFiMjhkOTdiLjNkZjA0YjBlNWZkYjRhYWYuNmViMjg1MjRiNGI3NGRlMQogICAgIGJlOTA2YjcxYTMxNzk1NmMuM2VlZGQ4NzMxZTNmZjExNy5hMTdjMWI5YTBjYzNlMmM0Ljk1YWZkNTIyNDI3YTE4OWIKICAgICAzNzczYzc3NzI3YTNkY2YxLjcyOWQ0ZmZhMjI0OTZkNTguN2MwNGY0MzEyMTBiZTBlNC4wZTQ0MjE0MTgyNjkyYjI0Ci0gICAgYjQ0MGUyNmI5MDkwNDBhNwotVlNIVUZQRF8xMjhfMW9mMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVkNPTUlTRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA2MzZlOTU4ZTg3ZmMxNDUyLjczODVlNmU5YmRhMGEyYzEuMDBkODNhYzM0MTUxMGI2OS4yYmQ1ZDIzZjNhM2Y3ZmI5CiAgICAgZjY5OWI3OTQ4NGI4NjM0ZS5jZDEyYzUzNDAyOWIyNTg5LmM2NmIxNWJhOTc2Mzg0NzcuMGIzYmIyMzFmNGU5ZmNmMApAQCAtMjMzMjIsMTEgKzIzMzIyLDExIEBACiAgIGFmdGVyCiAgICAgNjM2ZTk1OGU4N2ZjMTQ1Mi43Mzg1ZTZlOWJkYTBhMmMxLjAwZDgzYWMzNDE1MTBiNjkuMmJkNWQyM2YzYTNmN2ZiOQogICAgIGY2OTliNzk0ODRiODYzNGUuY2QxMmM1MzQwMjliMjU4OS5jNjZiMTViYTk3NjM4NDc3LjBiM2JiMjMxZjRlOWZjZjAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmJkNWQyM2YzYTNmN2ZiOS5jNjZiMTViYTk3NjM4NDc3CisgICAgNGI4ZWMzNmJhMmQwZThjYS5hMTY1NWZjNTkxMWY5ZmY1LjlmMjI1Y2NiNDE4Yzk3YWQuNzY4MjhmNzFlYTk3OTMzNAogICAgIDNkMWEzNWZlZmQ1MTYwZjAuNGJjY2IwMDcwNmI5NGRiMC42NmM4OGNlMjVhZDdmZTM5LmM5ZjU2NDZkYjlkNTdmMzIKLSAgICA2MWUyMzA5MGZjMmRmZTk1CisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WU0hVRlBEXzEyOF8yb2YyKHJlZykKK1ZDT01JU1NfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOTg5M2VjNDY1MDJkNDkwYS5hNzA2OGEzOWIyNDY4N2VjLjI2OTFiNDY2ZmVmNDZhNjcuZjkyYjFmZWJmZjUwNzY0NAogICAgIGNiNTU5NWZiNTA2MTlmM2QuNjcyMTNjMDhkY2JjMTllYi45MDAxNjc0ZDE1NWMzM2M1LjMzMTU5M2QzNGIwNGJiZmQKQEAgLTIzMzM0LDEyICsyMzMzNCwxMiBAQAogICAgIDk1M2NhMDEyYzY5MTU3OGIuNTUxMGFjMTIwMjU3NmNhMS43ZDEyY2M2ODBkZTRiOTI4LjBiYjIwY2VjNGE0YjlhMjMKICAgICA2MWZjMDlmNjM0ZjVhZGU5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdkMTJjYzY4MGRlNGI5MjguMzMxNTkzZDM0YjA0YmJmZAorICAgIDk4OTNlYzQ2NTAyZDQ5MGEuYTcwNjhhMzliMjQ2ODdlYy4yNjkxYjQ2NmZlZjQ2YTY3LmY5MmIxZmViZmY1MDc2NDQKICAgICBjYjU1OTVmYjUwNjE5ZjNkLjY3MjEzYzA4ZGNiYzE5ZWIuOTAwMTY3NGQxNTVjMzNjNS4zMzE1OTNkMzRiMDRiYmZkCiAgICAgNTY3NDI4MWI5OTUzM2FkOS41NzM2Yzk1Nzk4YmRkMTE5LmU0NjhjNjJhZTU3ZGU0NzcuZWY1NDY0ODQ1YWZlODg4ZAogICAgIDk1M2NhMDEyYzY5MTU3OGIuNTUxMGFjMTIwMjU3NmNhMS43ZDEyY2M2ODBkZTRiOTI4LjBiYjIwY2VjNGE0YjlhMjMKLSAgICA2MWZjMDlmNjM0ZjVhZGU5Ci1WU0hVRlBEXzEyOF8yb2YyKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWQ09NSVNTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGNmZmRkNjhlMzYwYTdkMGMuZTRmOWY5NGM3M2E3MzJmZS4zYjdkNjEyNTM0OTZhNmIwLmI5NGI3NTc0MjcxY2VkODYKICAgICAyZjgzZWZhMDZjOTZjNWI3LjlmZjYzMDM1M2QyMDA3ZGYuZTc0NzY1N2Q0ZDg1M2E3Mi5mMzVmYmRiOGNmYjJiZTNhCkBAIC0yMzM0OSwxMSArMjMzNDksMTEgQEAKICAgYWZ0ZXIKICAgICBjZmZkZDY4ZTM2MGE3ZDBjLmU0ZjlmOTRjNzNhNzMyZmUuM2I3ZDYxMjUzNDk2YTZiMC5iOTRiNzU3NDI3MWNlZDg2CiAgICAgMmY4M2VmYTA2Yzk2YzViNy45ZmY2MzAzNTNkMjAwN2RmLmU3NDc2NTdkNGQ4NTNhNzIuZjM1ZmJkYjhjZmIyYmUzYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYjdkNjEyNTM0OTZhNmIwLmU3NDc2NTdkNGQ4NTNhNzIKKyAgICA1ZTU4ZDAxOGYxYTQ0MjE3LjIyODEzZjM5YzA4ODExZGEuMzMzYjMzMDQ2NzMwZTUxMi44Njk5YTFhMWEyMzE2NWYzCiAgICAgMzk0YWY2ZTJlMTQwYjA1Ny5jOWU0MjRjNTk3NmI4ZDlhLmZjMjU0N2E4OWVhMzYzYmMuZDA0NjFiOWMzYjI1MjE1YQotICAgIDJiYjIyOTEzMzcxYjJjMWUKKyAgICAwMDAwMDAwMDAwMDAwMDAxCiAKLVZTSFVGUERfMTI4XzJvZjIocmVnKQorVkNPTUlTU18xMjgocmVnKQogICBiZWZvcmUKICAgICBmNTI5Yzc3NDMxOWVjM2U5LjlhMjNkYmVhNTk3NmNhYTQuZjA2Y2RhNDQ1ZTU2YjdjYy4xZmQwMWQ1MzBlZWI3MDllCiAgICAgODhmN2VmMjljNTNhMjI2OC41ZWIwZmQxYzc0NTM0ZTJhLmYzNjU1ZTIxYjJkNGNhMWIuNzYwYTMxZjNkNTEzYzdlMQpAQCAtMjMzNjEsMTIgKzIzMzYxLDEyIEBACiAgICAgN2RjN2QyNDQyZWVmMjczMC44MDE1ZTZhZjA2MzA3ZThmLmZkZDliY2FhNmZiYTllYzMuMzQ1NzA1YmZkMTM1NDY0MQogICAgIDUyMDJiY2MzNDA0NmU1YjQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmRkOWJjYWE2ZmJhOWVjMy43NjBhMzFmM2Q1MTNjN2UxCisgICAgZjUyOWM3NzQzMTllYzNlOS45YTIzZGJlYTU5NzZjYWE0LmYwNmNkYTQ0NWU1NmI3Y2MuMWZkMDFkNTMwZWViNzA5ZQogICAgIDg4ZjdlZjI5YzUzYTIyNjguNWViMGZkMWM3NDUzNGUyYS5mMzY1NWUyMWIyZDRjYTFiLjc2MGEzMWYzZDUxM2M3ZTEKICAgICA0MTY4OWZhMDkxN2M4NDQ2LjYyYmRkODY1NGZlMmY1MTQuMmUxYWFhY2EyZTcxMDMzNC5kZTlkMDA3MzBjMjgyNWI0CiAgICAgN2RjN2QyNDQyZWVmMjczMC44MDE1ZTZhZjA2MzA3ZThmLmZkZDliY2FhNmZiYTllYzMuMzQ1NzA1YmZkMTM1NDY0MQotICAgIDUyMDJiY2MzNDA0NmU1YjQKLVZTSFVGUERfMTI4XzJvZjIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZDT01JU1NfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMTU2YmExNmI3NDY3YzAzYi45NjYyODQ4MTNhMWY0NGQxLjk1ODZhNWU4YjQ0OGEzYzcuYmNlYzhmMmQxMTNhZDY3MwogICAgIDU5NWQzMGEzODlhNTkwMDAuZTk4M2IxYzM1MTk5MWFkNi43ZGRhOGZmYjc1MzYyMWU3LmM3YTExZmJmYWU3ZWU5ZjEKQEAgLTIzMzc2LDExICsyMzM3NiwxMSBAQAogICBhZnRlcgogICAgIDE1NmJhMTZiNzQ2N2MwM2IuOTY2Mjg0ODEzYTFmNDRkMS45NTg2YTVlOGI0NDhhM2M3LmJjZWM4ZjJkMTEzYWQ2NzMKICAgICA1OTVkMzBhMzg5YTU5MDAwLmU5ODNiMWMzNTE5OTFhZDYuN2RkYThmZmI3NTM2MjFlNy5jN2ExMWZiZmFlN2VlOWYxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk1ODZhNWU4YjQ0OGEzYzcuN2RkYThmZmI3NTM2MjFlNworICAgIGZhYTZlNjU4OWMwYjE0MmYuZDM3NzU1NzYwZWU4ZTNlYi4xNGRlMjNkMzY2MDdiNDFiLjc5NDI2OGNjZTUxMTExZTgKICAgICBkNDEwM2U3NGM5YTYwNmY1LmFlOGE2ZDA3MGQ5OGRjYmIuMzc1ZWRhNWVhMmM1MTg5MC4zMDFjNjdjMDRmN2Y4YTA1Ci0gICAgNDc3YjE3MDg4YTU0OTJmMworICAgIDAwMDAwMDAwMDAwMDAwMDEKIAotVlNIVUZQRF8xMjhfMm9mMihyZWcpCitWQ09NSVNTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDFhYWE3NDBlMzIxZDYzNWYuYzQ2OWI0ZTUyYjgxMjM3ZS5kNzA4ZjRlMGViMzY0MWYzLmMwMjYzMTg3NDU3ZjA4NzIKICAgICAwNGY3N2EzZmUyNjYzYWY1LmE0N2JjNDk1ZGVhODI3ZjUuYWEzY2U2NmY0MzRkNGUzZS44YzAyYTUzYTZkM2U0MWVkCkBAIC0yMzM4OCwxMiArMjMzODgsMTIgQEAKICAgICA5MTE2NzJkNGNjYTRlODRkLmE3ZmRhNDY3YTkwY2QzNWYuYmVmYWZjNWJkNDE3NGVjMC41ZDI1ZDFlZmI1MDA3ZDViCiAgICAgMWEwNDgyYzgwZjFiZjhhNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZWZhZmM1YmQ0MTc0ZWMwLjhjMDJhNTNhNmQzZTQxZWQKKyAgICAxYWFhNzQwZTMyMWQ2MzVmLmM0NjliNGU1MmI4MTIzN2UuZDcwOGY0ZTBlYjM2NDFmMy5jMDI2MzE4NzQ1N2YwODcyCiAgICAgMDRmNzdhM2ZlMjY2M2FmNS5hNDdiYzQ5NWRlYTgyN2Y1LmFhM2NlNjZmNDM0ZDRlM2UuOGMwMmE1M2E2ZDNlNDFlZAogICAgIDYzYWMyNjA4MzdiOTUyNjEuNTExM2ViNzJmZjI4Y2U4Ny44MzczNDAxZWIyNjkzZTQ5Ljc3YmRiMTYzMzMxMDdlMmMKICAgICA5MTE2NzJkNGNjYTRlODRkLmE3ZmRhNDY3YTkwY2QzNWYuYmVmYWZjNWJkNDE3NGVjMC41ZDI1ZDFlZmI1MDA3ZDViCi0gICAgMWEwNDgyYzgwZjFiZjhhNwotVlNIVUZQRF8xMjhfMm9mMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVkNPTUlTU18xMjgobWVtKQogICBiZWZvcmUKICAgICA4YTI3M2VkYjVjNmNhYzNjLmVjODE1YzBmM2RiMjM4NjguODEwNDZiNjBmOTYwZjNhYS5iNzFiMTg5MDQzZTJiOTRlCiAgICAgODg1YTgzMTViOGZmNTQ0NS5jZjM5ZTAyNDI3NzA3ZTVjLmJkZjZiYzQ5MGEzMWVhOTMuY2IyMzhmMmI5ZTU2YmRhMApAQCAtMjM0MDMsMTEgKzIzNDAzLDExIEBACiAgIGFmdGVyCiAgICAgOGEyNzNlZGI1YzZjYWMzYy5lYzgxNWMwZjNkYjIzODY4LjgxMDQ2YjYwZjk2MGYzYWEuYjcxYjE4OTA0M2UyYjk0ZQogICAgIDg4NWE4MzE1YjhmZjU0NDUuY2YzOWUwMjQyNzcwN2U1Yy5iZGY2YmM0OTBhMzFlYTkzLmNiMjM4ZjJiOWU1NmJkYTAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODEwNDZiNjBmOTYwZjNhYS5iZGY2YmM0OTBhMzFlYTkzCisgICAgZjI2OWNjNjE0MGUxYWRlZi45NThhZjg4MTI2NjlmNmQ2LjM2OWQxMzBlZjk4YTczNDguNTQ1ZTVkOTc3ZTAwOTQ2MQogICAgIGEzMjA5NWFhMTAxZDczNjYuOWJiZmExOTFkNTI5ZGI4MS5jOGM3ZWQ5YmUxNzc0YmYyLmFmMTc3ZjQwODI2YjdiM2UKLSAgICAzNzljZWY5MjQzMjRhZGUzCisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WU0hVRlBEXzI1Nl8xb2YyKHJlZykKK1ZNT1ZVUFNfWU1NX3RvX1lNTW9yTUVNKHJlZykKICAgYmVmb3JlCiAgICAgNGEzN2FiZmE1ZmI2NjdmYi43NzRhNWJkZTQzYmY2MmQ1LjNlMjZkOGMxZDAzZDZhMGEuNGYzZWM1ZGNkZjA1MmVjMAogICAgIDQzMzVhZWUyNzJhZGU1MzMuNGFiNDk5ZThmNWQ0MzU2OS5kODA5OTg3YmI0MzBkZTFjLmE3Y2UxN2JlMGUzZmQ3ZGMKQEAgLTIzNDE1LDEyICsyMzQxNSwxMiBAQAogICAgIDU3OGE3YWU2ZWJmYjFjYjEuNWM3ODZkMmU0ODg0N2FhZS42NTc2YTQ0MWE1ZTQ2ODhlLjM5NmUxYTExNzFlODZmYWYKICAgICAyYzE0YzI1YWRjNmZkNGJmCiAgIGFmdGVyCi0gICAgNWM3ODZkMmU0ODg0N2FhZS40YWI0OTllOGY1ZDQzNTY5LjM5NmUxYTExNzFlODZmYWYuYTdjZTE3YmUwZTNmZDdkYworICAgIDQzMzVhZWUyNzJhZGU1MzMuNGFiNDk5ZThmNWQ0MzU2OS5kODA5OTg3YmI0MzBkZTFjLmE3Y2UxN2JlMGUzZmQ3ZGMKICAgICA0MzM1YWVlMjcyYWRlNTMzLjRhYjQ5OWU4ZjVkNDM1NjkuZDgwOTk4N2JiNDMwZGUxYy5hN2NlMTdiZTBlM2ZkN2RjCiAgICAgN2VlMmY1YjcxNzk1NjMzNi5mNzJhY2FiNDQzNjdhYTRkLmM3YjVkZTJjMWM4ZTc0NjQuYWI0NTVmMmI4YjMxMDQ3MgogICAgIDU3OGE3YWU2ZWJmYjFjYjEuNWM3ODZkMmU0ODg0N2FhZS42NTc2YTQ0MWE1ZTQ2ODhlLjM5NmUxYTExNzFlODZmYWYKICAgICAyYzE0YzI1YWRjNmZkNGJmCi1WU0hVRlBEXzI1Nl8xb2YyKG1lbSkKK1ZNT1ZVUFNfWU1NX3RvX1lNTW9yTUVNKG1lbSkKICAgYmVmb3JlCiAgICAgNWYwNGQ1ZjRlOWQyZjFjZC4yYTc5M2JkOTg5NmE0ZDUwLjU0NmFmYjQyMjEzODY0YjguMGY5OGU4MjRlYmJkZjY0NQogICAgIGIwMGJjZmNhYjQxZTgwMDYuNTJmYTMzZmU4ZDZmMzJiZS5iYWNjZjFkZGU5OGUyMjk2LjIyNjZhNTQzODhhNTVhMzYKQEAgLTIzNDI4LDEzICsyMzQyOCwxMyBAQAogICAgIDE4ODg2NGRhZjE5ZWU2YTguMTZlNmI5OGIzOTY4MDdiOS40NTBmMDc1NGI4NTEwZDgwLmVlM2E3YWUxM2RkNDkyNzUKICAgICA2MGQ3OGIzOThjMzJkZTFhCiAgIGFmdGVyCi0gICAgNWYwNGQ1ZjRlOWQyZjFjZC4yYTc5M2JkOTg5NmE0ZDUwLjU0NmFmYjQyMjEzODY0YjguMGY5OGU4MjRlYmJkZjY0NQorICAgIDE4ODg2NGRhZjE5ZWU2YTguMTZlNmI5OGIzOTY4MDdiOS40NTBmMDc1NGI4NTEwZDgwLmVlM2E3YWUxM2RkNDkyNzUKICAgICBiMDBiY2ZjYWI0MWU4MDA2LjUyZmEzM2ZlOGQ2ZjMyYmUuYmFjY2YxZGRlOThlMjI5Ni4yMjY2YTU0Mzg4YTU1YTM2Ci0gICAgNWYwNGQ1ZjRlOWQyZjFjZC5iMDBiY2ZjYWI0MWU4MDA2LjU0NmFmYjQyMjEzODY0YjguYmFjY2YxZGRlOThlMjI5NgorICAgIGZhZjMyYWM4NTg1ZTNlOTYuMmQ1YTVlYzA5NDk1MDdhOC42YzZhY2NlOWJkOTM3MTc0LmY4MmVkNzA5MWIyOWNmMGQKICAgICAxODg4NjRkYWYxOWVlNmE4LjE2ZTZiOThiMzk2ODA3YjkuNDUwZjA3NTRiODUxMGQ4MC5lZTNhN2FlMTNkZDQ5Mjc1CiAgICAgNjBkNzhiMzk4YzMyZGUxYQogCi1WU0hVRlBEXzI1Nl8xb2YyKHJlZykKK1ZNT1ZVUFNfWU1NX3RvX1lNTW9yTUVNKHJlZykKICAgYmVmb3JlCiAgICAgYWE1MTA0N2NhNGQwZjFhOS5lODk4ZjdlYzljZWIzNjY5LjY5ZTgzZmNiMTk3NDZmOWUuMjA4ODFmMDhmN2Q2YjFlNAogICAgIDI5ZjRlMzE2MjAzOTA1Y2UuNDRlZDYyZWE3NDUwZTgwNC44MWFkZWJlY2QwNDY3YjAyLmRiYTE4ZWYzOTUyZTFhY2MKQEAgLTIzNDQyLDEyICsyMzQ0MiwxMiBAQAogICAgIDMxZTRjMTAwYjY5ZDIyODkuMTQ5YWE4NWIxZDkzNjQ3YS43NGFmYWI4MTMwNmE2ZGZhLjVkZTM2NjFhNWY4NDJiZGIKICAgICBkY2EzYzYyZmM0OWE0YTU5CiAgIGFmdGVyCi0gICAgMTQ5YWE4NWIxZDkzNjQ3YS40NGVkNjJlYTc0NTBlODA0LjVkZTM2NjFhNWY4NDJiZGIuZGJhMThlZjM5NTJlMWFjYworICAgIDI5ZjRlMzE2MjAzOTA1Y2UuNDRlZDYyZWE3NDUwZTgwNC44MWFkZWJlY2QwNDY3YjAyLmRiYTE4ZWYzOTUyZTFhY2MKICAgICAyOWY0ZTMxNjIwMzkwNWNlLjQ0ZWQ2MmVhNzQ1MGU4MDQuODFhZGViZWNkMDQ2N2IwMi5kYmExOGVmMzk1MmUxYWNjCiAgICAgMzcwYzIzNzQ5ZGY5NTYzNS4wYTU1MWVjMDk2ZGFiOGE2LmJjODBiYjVhZjk2OTY2OTMuNTAyNmQyZmZhZTY0MDQ2NQogICAgIDMxZTRjMTAwYjY5ZDIyODkuMTQ5YWE4NWIxZDkzNjQ3YS43NGFmYWI4MTMwNmE2ZGZhLjVkZTM2NjFhNWY4NDJiZGIKICAgICBkY2EzYzYyZmM0OWE0YTU5Ci1WU0hVRlBEXzI1Nl8xb2YyKG1lbSkKK1ZNT1ZVUFNfWU1NX3RvX1lNTW9yTUVNKG1lbSkKICAgYmVmb3JlCiAgICAgYWEzNDZlMmFmOGIzMWUwYy43M2M5YjgyNzA3YjBhMzc2LjQwODk3ZGE1MjY4OWE2YWQuMDc4NGI1Y2UxMmQ0Y2NlNgogICAgIGE0NjBkYWY3MTdkYTYzMjAuNTkwODAzNTYyZGJmMTZhOS42OGVlMTg4Y2NjYzgzYjZiLmNmNGRkN2FiM2EzM2JmMDAKQEAgLTIzNDU1LDEzICsyMzQ1NSwxMyBAQAogICAgIDg3YmNmMGI4ODk4MzJmMTguODFiZjhiNzg2NmZkYzE5MS4yMDQ5OTBkZDYxNGU0ZDM2LjcyZTY1MGM5Y2UwMjRmNzUKICAgICAwNTRmYTBlMjcxODk2NTI3CiAgIGFmdGVyCi0gICAgYWEzNDZlMmFmOGIzMWUwYy43M2M5YjgyNzA3YjBhMzc2LjQwODk3ZGE1MjY4OWE2YWQuMDc4NGI1Y2UxMmQ0Y2NlNgorICAgIDg3YmNmMGI4ODk4MzJmMTguODFiZjhiNzg2NmZkYzE5MS4yMDQ5OTBkZDYxNGU0ZDM2LjcyZTY1MGM5Y2UwMjRmNzUKICAgICBhNDYwZGFmNzE3ZGE2MzIwLjU5MDgwMzU2MmRiZjE2YTkuNjhlZTE4OGNjY2M4M2I2Yi5jZjRkZDdhYjNhMzNiZjAwCi0gICAgYWEzNDZlMmFmOGIzMWUwYy5hNDYwZGFmNzE3ZGE2MzIwLjQwODk3ZGE1MjY4OWE2YWQuNjhlZTE4OGNjY2M4M2I2YgorICAgIGE0ZjQ4NzgzM2UxY2Q0YzAuM2ZlYmExZjdjNDU0YjdjZS42OTk1ZjVmYjJjNWJkZWRmLjJhNTQwYzg1NDUxNDgxZjcKICAgICA4N2JjZjBiODg5ODMyZjE4LjgxYmY4Yjc4NjZmZGMxOTEuMjA0OTkwZGQ2MTRlNGQzNi43MmU2NTBjOWNlMDI0Zjc1CiAgICAgMDU0ZmEwZTI3MTg5NjUyNwogCi1WU0hVRlBEXzI1Nl8xb2YyKHJlZykKK1ZNT1ZVUFNfWU1NX3RvX1lNTW9yTUVNKHJlZykKICAgYmVmb3JlCiAgICAgM2RkYWY2M2NjYjM2ZmViOC4yYTg0OTE4MzEzMWUyZDU1LjdhY2ZiZTQ0YjI0NjcxOWQuNjdkNzY2MjA4OGFkNDI5YwogICAgIDc4ZDU1MDQzNzg5NDU3ZDUuNjcxOGU3ZDFmOGY2OGRhMy44ODY5MzdjNzQyYmEwMzllLjFiMGNmMmFmYmM4NTc5M2MKQEAgLTIzNDY5LDEyICsyMzQ2OSwxMiBAQAogICAgIDYyNDZmZDA4Mzk5NDM5NjEuMjJkMzllYTI0NTkyNWUyMS41MDY2ZThhMjlmNTNiYzMyLjNiOTYxYzYxYmRjZWExZGIKICAgICA1ZTgzYjM1ZGMxNTcwOTMzCiAgIGFmdGVyCi0gICAgMjJkMzllYTI0NTkyNWUyMS42NzE4ZTdkMWY4ZjY4ZGEzLjNiOTYxYzYxYmRjZWExZGIuMWIwY2YyYWZiYzg1NzkzYworICAgIDc4ZDU1MDQzNzg5NDU3ZDUuNjcxOGU3ZDFmOGY2OGRhMy44ODY5MzdjNzQyYmEwMzllLjFiMGNmMmFmYmM4NTc5M2MKICAgICA3OGQ1NTA0Mzc4OTQ1N2Q1LjY3MThlN2QxZjhmNjhkYTMuODg2OTM3Yzc0MmJhMDM5ZS4xYjBjZjJhZmJjODU3OTNjCiAgICAgMTA4YWE5NjIxMzJmYWMyOS4xYjQzNmM4YzU1MTkwOTJlLjA2ZDdmMTZkYjJlNWIzNDEuMThiMmIwNzYxYWUxYjA0MgogICAgIDYyNDZmZDA4Mzk5NDM5NjEuMjJkMzllYTI0NTkyNWUyMS41MDY2ZThhMjlmNTNiYzMyLjNiOTYxYzYxYmRjZWExZGIKICAgICA1ZTgzYjM1ZGMxNTcwOTMzCi1WU0hVRlBEXzI1Nl8xb2YyKG1lbSkKK1ZNT1ZVUFNfWU1NX3RvX1lNTW9yTUVNKG1lbSkKICAgYmVmb3JlCiAgICAgNWU0N2VmNTQ0Mzg4YTQ3Ni5jYTU1NDk5ZTg1NGUzOTI5LjU4OTJmOGZlZTU2ZTQ4YTguYzI2MzE5ZDJhNDkxNWIxYwogICAgIDE3YWQ0ZTMzNWY2ZTJkY2YuYTUwMzg4OTE5M2U5ZTkyYy45YTRkZjc4YzUwYjg4M2YxLmI3MTg3ZTY5NWUyYWNiYWMKQEAgLTIzNDgyLDEzICsyMzQ4MiwxMyBAQAogICAgIDI0OGQ2MzVhZDI4NmZjNzQuMWY2YmNmM2Y2N2Y0NDg5NS5hZGU2ZDBlZWY5YzZkYTczLjlmZGNkOTdkNWY5ZjEyNmQKICAgICA0OTgzYzZkMWRlOTI2MGY2CiAgIGFmdGVyCi0gICAgNWU0N2VmNTQ0Mzg4YTQ3Ni5jYTU1NDk5ZTg1NGUzOTI5LjU4OTJmOGZlZTU2ZTQ4YTguYzI2MzE5ZDJhNDkxNWIxYworICAgIDI0OGQ2MzVhZDI4NmZjNzQuMWY2YmNmM2Y2N2Y0NDg5NS5hZGU2ZDBlZWY5YzZkYTczLjlmZGNkOTdkNWY5ZjEyNmQKICAgICAxN2FkNGUzMzVmNmUyZGNmLmE1MDM4ODkxOTNlOWU5MmMuOWE0ZGY3OGM1MGI4ODNmMS5iNzE4N2U2OTVlMmFjYmFjCi0gICAgNWU0N2VmNTQ0Mzg4YTQ3Ni4xN2FkNGUzMzVmNmUyZGNmLjU4OTJmOGZlZTU2ZTQ4YTguOWE0ZGY3OGM1MGI4ODNmMQorICAgIDY1ODA0YmU3MmYxNDYxNmEuNGQ5Y2I2NGQwMGYyODUxNy5jMmQwMTUzOGEzN2NjYTI1LjhkZDExNWQzNjhhYjRhOGUKICAgICAyNDhkNjM1YWQyODZmYzc0LjFmNmJjZjNmNjdmNDQ4OTUuYWRlNmQwZWVmOWM2ZGE3My45ZmRjZDk3ZDVmOWYxMjZkCiAgICAgNDk4M2M2ZDFkZTkyNjBmNgogCi1WU0hVRlBEXzI1Nl8yb2YyKHJlZykKK1ZEUFBEXzEyOF8xb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgZTYxNGQ5M2Q4MTExNmZkNC4zMGEwMTA3YTYyZDBiOTE5Ljc3YmVjZmQxNjU3YjcwNTMuMzc1ZGEzOWE2ZWEzNmUwNQogICAgIGQ0ZDkwZDJjZTVhNjdkYjQuNjU4NWQwMzJmYmZmNTU4NS5iMWRmYjM3MTk2MTQzN2ZkLjNjZmYwYTI4MWYxZjQ0MDcKQEAgLTIzNDk2LDEyICsyMzQ5NiwxMiBAQAogICAgIDBmMzJjODQyNWY0ODgwMjguYmFmNDc2MWFiYTNhMWE1Zi4zYmJlMTQ4OGZlYTk5NGMzLjI3Zjg4NTliYTQyMGExMGUKICAgICBjNGU2OTE1OGFmYmVhMDZiCiAgIGFmdGVyCi0gICAgMGYzMmM4NDI1ZjQ4ODAyOC42NTg1ZDAzMmZiZmY1NTg1LjNiYmUxNDg4ZmVhOTk0YzMuM2NmZjBhMjgxZjFmNDQwNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBkNGQ5MGQyY2U1YTY3ZGI0LjY1ODVkMDMyZmJmZjU1ODUuYjFkZmIzNzE5NjE0MzdmZC4zY2ZmMGEyODFmMWY0NDA3CiAgICAgNmQxZjVkMDlhNmUwYzQ0MS45ZjA3MWU2ZWJhMWY4Y2UzLjI5MWI3NjhhOTQ0YWQ5M2UuOTg5YTgxODUyODQ0MTZhNwogICAgIDBmMzJjODQyNWY0ODgwMjguYmFmNDc2MWFiYTNhMWE1Zi4zYmJlMTQ4OGZlYTk5NGMzLjI3Zjg4NTliYTQyMGExMGUKICAgICBjNGU2OTE1OGFmYmVhMDZiCi1WU0hVRlBEXzI1Nl8yb2YyKG1lbSkKK1ZEUFBEXzEyOF8xb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgNGQyZjIxYTY2NjJiZDBlOC4xNDVkNDc0MmFjNmNlZjE1LjkyMTY1NTIyMTg1ZWJhMjYuNDMxNDg5ZDc2ZGJlYTIzNwogICAgIDlkYTFiMTczZTU3MmVkYjEuZGFlZWQ4NzUyYWQ3NGJiMy4wMzNiMzU3MmVmOTcyYTY0LjlkNjhkMWUzODAxNDNmNDcKQEAgLTIzNTExLDExICsyMzUxMSwxMSBAQAogICBhZnRlcgogICAgIDRkMmYyMWE2NjYyYmQwZTguMTQ1ZDQ3NDJhYzZjZWYxNS45MjE2NTUyMjE4NWViYTI2LjQzMTQ4OWQ3NmRiZWEyMzcKICAgICA5ZGExYjE3M2U1NzJlZGIxLmRhZWVkODc1MmFkNzRiYjMuMDMzYjM1NzJlZjk3MmE2NC45ZDY4ZDFlMzgwMTQzZjQ3Ci0gICAgMTQ1ZDQ3NDJhYzZjZWYxNS45ZGExYjE3M2U1NzJlZGIxLjQzMTQ4OWQ3NmRiZWEyMzcuMDMzYjM1NzJlZjk3MmE2NAorICAgIDkwMDdiZWFhNDc5ZmIzZjMuYmIyZjc1NDc3NTE2ZDFhZi5lODJkOTRmNjVjZWYyMzQ0LmE1MDhlOTE4ZDAzOGE5OWYKICAgICAwMjJjYzIzN2E4YmZkZGRhLjE1NmUxYzI1MjhiNGJjYjUuMWZiOGVkOWI3YTc0NjRmMy5iNzNlY2NlMmZiYjQxYWVhCiAgICAgMmY1Nzc2YWQ5ZDE3Y2ZkNQogCi1WU0hVRlBEXzI1Nl8yb2YyKHJlZykKK1ZEUFBEXzEyOF8xb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgNjk5ZmUzZTY1MWVhMDQwYi5jZWRkM2IwNjI1ZGQyOTkxLjQyZjVjOTc5ZGYzZDRhNzAuODNhYWJkNGI2NTMyYTc5ZAogICAgIGMxNjIxMGY3YjRiYmY0MzkuZDJlNmE0MDNkOTA2NTA0NS45ZjExNzZiMTM3M2ViNThkLmYwY2U3ZWY0M2EzM2E5NmQKQEAgLTIzNTIzLDEyICsyMzUyMywxMiBAQAogICAgIDNhODg5NzU1ZjQ4NWY4MmMuZWUzMDM3Mzc1OGE1MjY1My41YTM3YzU3OTM4ZDUxNDliLjU0ZGFjOGRkMTEzNGQ5MzEKICAgICAwNDVjNDhmNjRhNGE3ZjdkCiAgIGFmdGVyCi0gICAgM2E4ODk3NTVmNDg1ZjgyYy5kMmU2YTQwM2Q5MDY1MDQ1LjVhMzdjNTc5MzhkNTE0OWIuZjBjZTdlZjQzYTMzYTk2ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBjMTYyMTBmN2I0YmJmNDM5LmQyZTZhNDAzZDkwNjUwNDUuOWYxMTc2YjEzNzNlYjU4ZC5mMGNlN2VmNDNhMzNhOTZkCiAgICAgOTNlY2Y4NGU2MTE1ZGMwYi5lOTEzN2ExYWUxNDQxMTIyLjg5MGQyMTM3Y2I0MjM5YjcuNDFlZmFlODAxNTg1MjY5MAogICAgIDNhODg5NzU1ZjQ4NWY4MmMuZWUzMDM3Mzc1OGE1MjY1My41YTM3YzU3OTM4ZDUxNDliLjU0ZGFjOGRkMTEzNGQ5MzEKICAgICAwNDVjNDhmNjRhNGE3ZjdkCi1WU0hVRlBEXzI1Nl8yb2YyKG1lbSkKK1ZEUFBEXzEyOF8xb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgMmMzZmFhYjdkZGQ1ZDQ5Zi4xNDg0ZTk3YTBhOTU4NDQ5LmJmMDg1OTQ3NWIzNTRjMDUuNmZkOTVlZTExOTg0ODBlNAogICAgIGFhNGY2YjBjZTZlMTk0YzUuN2MyYWVhMjgzZWQ0YmIwZC4zNzY4NWIzNDA1ZmUzZjYzLjI0NDFlOGRkMGJkYWJhM2YKQEAgLTIzNTM4LDExICsyMzUzOCwxMSBAQAogICBhZnRlcgogICAgIDJjM2ZhYWI3ZGRkNWQ0OWYuMTQ4NGU5N2EwYTk1ODQ0OS5iZjA4NTk0NzViMzU0YzA1LjZmZDk1ZWUxMTk4NDgwZTQKICAgICBhYTRmNmIwY2U2ZTE5NGM1LjdjMmFlYTI4M2VkNGJiMGQuMzc2ODViMzQwNWZlM2Y2My4yNDQxZThkZDBiZGFiYTNmCi0gICAgMTQ4NGU5N2EwYTk1ODQ0OS5hYTRmNmIwY2U2ZTE5NGM1LjZmZDk1ZWUxMTk4NDgwZTQuMzc2ODViMzQwNWZlM2Y2MworICAgIDU4NWEwNmUxODA3OTdhMTguY2RjNzk3Y2IyZGNiZGEyNS4zMTFkYjllYzczMGViYTlhLmQ2Yjk2MGQ4YTk2M2ZlNTgKICAgICAxNDJhZjcyMmM3YTk0M2M3LjY1YTdlYmNmNzMwODFjM2MuOGJmMWYwNTljMDcxN2FkNS5kZjhlYzAzZThmYWM4N2RhCiAgICAgOWMwYzA2N2I1YjQwOTI3MgogCi1WU0hVRlBEXzI1Nl8yb2YyKHJlZykKK1ZEUFBEXzEyOF8xb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgNjk3ZTJlZmJhNmFjNWJjYi5iODhkYmFiYmQ4N2RhYmZiLjlmMTZlMmEwYWExNmJmZmYuMWZiMTdiNjkwOTMyM2I0MQogICAgIGEyMzIzMjJiMGU3YTFkOTIuMjI0ZGNjOTljZTAyNmRlMy5kNjVmNzhhYTcxODJmZDFhLmNiMjhkNTA3Njk1ZGI5MGEKQEAgLTIzNTUwLDEyICsyMzU1MCwxMiBAQAogICAgIGM4OGJjMzQ3YTQ3MjdmMTkuYjQxN2M5ZDBkYjRkZjI3YS5hZmIzNzMxYTE5YTEzYzA2LmQ3NmZlYzlkZGYyMmRhNjEKICAgICBlZmQ3OWY2ZDJlZDRmNjQ4CiAgIGFmdGVyCi0gICAgYzg4YmMzNDdhNDcyN2YxOS4yMjRkY2M5OWNlMDI2ZGUzLmFmYjM3MzFhMTlhMTNjMDYuY2IyOGQ1MDc2OTVkYjkwYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBhMjMyMzIyYjBlN2ExZDkyLjIyNGRjYzk5Y2UwMjZkZTMuZDY1Zjc4YWE3MTgyZmQxYS5jYjI4ZDUwNzY5NWRiOTBhCiAgICAgYTM3MjEwNzUyZjM4MTU3My4yYzM3YTdhNmM2NDM0NmE5LjY4ZDBhYTVhNjJkNzEzMzguNjkyNDdjMWZmY2ZlYWY1YgogICAgIGM4OGJjMzQ3YTQ3MjdmMTkuYjQxN2M5ZDBkYjRkZjI3YS5hZmIzNzMxYTE5YTEzYzA2LmQ3NmZlYzlkZGYyMmRhNjEKICAgICBlZmQ3OWY2ZDJlZDRmNjQ4Ci1WU0hVRlBEXzI1Nl8yb2YyKG1lbSkKK1ZEUFBEXzEyOF8xb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgOGUyNjEzN2IwMzIxYmUzYi42ZGM5NDcwYjA5YjM5NzMxLjk0YjlhZDAyMmEyYTJkODEuMDk1NWNmNTgzMjZkYjYzMAogICAgIDkxMjljM2I0N2QxNGYwNjYuZWU3ODk4MmZmYjg3OTg2Ni5hOWU4ZDAyN2NlZTliMmViLmQwMDJiYTdlNGJjNmJiNjEKQEAgLTIzNTY1LDExICsyMzU2NSwxMSBAQAogICBhZnRlcgogICAgIDhlMjYxMzdiMDMyMWJlM2IuNmRjOTQ3MGIwOWIzOTczMS45NGI5YWQwMjJhMmEyZDgxLjA5NTVjZjU4MzI2ZGI2MzAKICAgICA5MTI5YzNiNDdkMTRmMDY2LmVlNzg5ODJmZmI4Nzk4NjYuYTllOGQwMjdjZWU5YjJlYi5kMDAyYmE3ZTRiYzZiYjYxCi0gICAgNmRjOTQ3MGIwOWIzOTczMS45MTI5YzNiNDdkMTRmMDY2LjA5NTVjZjU4MzI2ZGI2MzAuYTllOGQwMjdjZWU5YjJlYgorICAgIGQyYWMyYjAyYjZiOTQ1ZjcuYTdlNGIyMWUxNTdhYmY2NS5kMDcxYWMyZGU0OTMzZWUzLjYyMDYzMGZhZmQzODg3NDYKICAgICAyZTdhYzg1MmNhMWM3YzE4LmY0NTk5MjQ0ZjQxOTQ4ZGEuZTMyMWJmZmY4NzM2OGQ5Ni4xOWFjMmUzN2U2NTA1ODhhCiAgICAgNTI0MmFmYTFhMjk4NjhkYQogCi1WUEVSTUlMUFNfMTI4XzB4MDAocmVnKQorVkRQUERfMTI4XzJvZjQocmVnKQogICBiZWZvcmUKICAgICA2YTEyYWZhNGNjOWZmNGUxLjgxNjExNDkxZDY0YTRmZjUuMzAyMjMzMGMzM2VmNmY3MC5iZmMyODQ4OWQzZGQ1YTMwCiAgICAgYmI2OTJhYWMwMWVlMzg0Yy5hNzJiOGRhYWY1NGU3YmJiLmI5OGM5MWU0NmY4OTZmZDMuNDAyMTc4YjdlNTk1NjNkYwpAQCAtMjM1NzcsMTIgKzIzNTc3LDEyIEBACiAgICAgN2JkYzgyN2JmOTlhZDZmZC5kZDliZjQxOWRlMGFjZWIxLjFmNzM3NTcyNGMzNmVkYjQuYTE0OGQ5YjBjYTY1MTMxYwogICAgIDNhYTkzZjUyZDQ5NTMzMDgKICAgYWZ0ZXIKLSAgICA2YTEyYWZhNGNjOWZmNGUxLjgxNjExNDkxZDY0YTRmZjUuMzAyMjMzMGMzM2VmNmY3MC5iZmMyODQ4OWQzZGQ1YTMwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ5Njk2MWM3ZDk2OTYxYzcuZDk2OTYxYzdkOTY5NjFjNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MjNiNjQwZjhmY2I0ZTVlLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBiYjY5MmFhYzAxZWUzODRjLmE3MmI4ZGFhZjU0ZTdiYmIuYjk4YzkxZTQ2Zjg5NmZkMy40MDIxNzhiN2U1OTU2M2RjCiAgICAgYTI5MzFkMjVkYzEzNmZjNy43ZGE1YWU4OTQ0MzViYzk2LmVhZTNhOTM4NDM3Mjg1YjEuNDIwOTE1NzZkOTY5NjFjNwogICAgIDdiZGM4MjdiZjk5YWQ2ZmQuZGQ5YmY0MTlkZTBhY2ViMS4xZjczNzU3MjRjMzZlZGI0LmExNDhkOWIwY2E2NTEzMWMKICAgICAzYWE5M2Y1MmQ0OTUzMzA4Ci1WUEVSTUlMUFNfMTI4XzB4MDAobWVtKQorVkRQUERfMTI4XzJvZjQobWVtKQogICBiZWZvcmUKICAgICBlN2Y3YzM0OTE0MDY3ZWI3LmEzOTA1NzFiZjUwZWE5OWIuYTRkOWQ5NDhlMGQ5NmMzOS5iNDg4ZjNmZjI1NjFlMjg4CiAgICAgODVmZmUxODBhNmMzYjA1NC43NGZiOTc2ZjZiZmIyMzRjLmFlMmJkYjAxNjVhZjUzNTkuMDQ2ZTFlNGM2YjgwYTFkYQpAQCAtMjM1OTEsMTIgKzIzNTkxLDEyIEBACiAgICAgZjZmYzg3ZTNkZjA5ZjE3YQogICBhZnRlcgogICAgIGU3ZjdjMzQ5MTQwNjdlYjcuYTM5MDU3MWJmNTBlYTk5Yi5hNGQ5ZDk0OGUwZDk2YzM5LmI0ODhmM2ZmMjU2MWUyODgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjU2MWUyODgyNTYxZTI4OC4yNTYxZTI4OGI0ODhmM2ZmCisgICAgODVmZmUxODBhNmMzYjA1NC43NGZiOTc2ZjZiZmIyMzRjLmFlMmJkYjAxNjVhZjUzNTkuMDQ2ZTFlNGM2YjgwYTFkYQogICAgIGYwOGQxNmUyYTRkOTg1MGMuNGI2ODNmZTVmOGVkODFiZC5kNzVjNzUzMThhOTYzZTNlLjZkNzBmMmMzYjkxZTY2NTYKICAgICAwNDZkZGM1ZDJkNTNiODBhLjg0MjQ0OWU3Mzc3MWZmOWEuZmIzYTIzYzI2YTlkZWIxNC40OWRjNmNkMmFjYzg2ZGE3CiAgICAgZjZmYzg3ZTNkZjA5ZjE3YQogCi1WUEVSTUlMUFNfMTI4XzB4MDAocmVnKQorVkRQUERfMTI4XzJvZjQocmVnKQogICBiZWZvcmUKICAgICBjZjFkM2Y2NGVlNmQyZjdiLjlkNmFiMWRjNWEzZDA2N2IuN2I3YmIzZTNjNTEyZDk4ZS5mNjhmNjFhMTIxY2QxNDA2CiAgICAgMmY4YjkwYzA3NjgxNjM1NS45NjUyMTE0YjRhYTQyYjhiLjhjYjk3ODQ0M2U1YzRhNDYuYTQyOGFjYmJjYzM0NzY0MQpAQCAtMjM2MDQsMTIgKzIzNjA0LDEyIEBACiAgICAgZjg3ZGVlYjk2MGU2OWI0Ni4xZDBmNWVhOWRkMTZlODM2LjZjMWEwNGU1NWQxZGU0YjAuODg1NjU2NGM2ZGQ1ZDM0MAogICAgIDc3ODNhZDljOWEyNzQ3NWMKICAgYWZ0ZXIKLSAgICBjZjFkM2Y2NGVlNmQyZjdiLjlkNmFiMWRjNWEzZDA2N2IuN2I3YmIzZTNjNTEyZDk4ZS5mNjhmNjFhMTIxY2QxNDA2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg3ZGVjY2YwODdkZWNjZjAuODdkZWNjZjA4N2RlY2NmMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NjBhZmNlNGY4MWJmZTA5LjAwMDAwMDAwMDAwMDAwMDAKKyAgICAyZjhiOTBjMDc2ODE2MzU1Ljk2NTIxMTRiNGFhNDJiOGIuOGNiOTc4NDQzZTVjNGE0Ni5hNDI4YWNiYmNjMzQ3NjQxCiAgICAgNzQ5MTc2NjMxM2QwYzhiNS5jZGVmNzY5NjE2OTNlMjY1LjEzMmE5NTc2M2NkYzhmNmQuZTFkMTdmZmE4N2RlY2NmMAogICAgIGY4N2RlZWI5NjBlNjliNDYuMWQwZjVlYTlkZDE2ZTgzNi42YzFhMDRlNTVkMWRlNGIwLjg4NTY1NjRjNmRkNWQzNDAKICAgICA3NzgzYWQ5YzlhMjc0NzVjCi1WUEVSTUlMUFNfMTI4XzB4MDAobWVtKQorVkRQUERfMTI4XzJvZjQobWVtKQogICBiZWZvcmUKICAgICA4OTIzMDFkNTJiZTBlNDcyLjE5OTlmMjJlZjk1MDE4YjUuNjI3YzQ0NzBiODNhZjkyOS5mM2Q0YzNmZDNkYWM4NWJiCiAgICAgOWEwM2NjZTUzYjBhNjVhYi4zMTMyODEyZjdiOTg3YmFkLjc4MDJhNGQ4YzUwYWQwNmIuMDRhNWNkMmE3NzEzYWQzOQpAQCAtMjM2MTgsMTIgKzIzNjE4LDEyIEBACiAgICAgMGI5YTg2Njk1Y2RiYWMyMQogICBhZnRlcgogICAgIDg5MjMwMWQ1MmJlMGU0NzIuMTk5OWYyMmVmOTUwMThiNS42MjdjNDQ3MGI4M2FmOTI5LmYzZDRjM2ZkM2RhYzg1YmIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2RhYzg1YmIzZGFjODViYi4zZGFjODViYmYzZDRjM2ZkCisgICAgOWEwM2NjZTUzYjBhNjVhYi4zMTMyODEyZjdiOTg3YmFkLjc4MDJhNGQ4YzUwYWQwNmIuMDRhNWNkMmE3NzEzYWQzOQogICAgIDg2ZjA4Y2I3ZTdiMzg4MzYuOWQ5NDk0MjY4MTRkZmZkYi4zYjZmZmFjYjIwOTIyYjI4LmZiZGExZWQ5YThlMDk5ZDcKICAgICAyOGI0YmMzNzRhZTcwNjNkLmJhMGIyODgwYThmOGUxZWIuODY4ZWMyMzdlNGRmYzQ4Yi4zNGJkYjI3NDZiOWY4NDQwCiAgICAgMGI5YTg2Njk1Y2RiYWMyMQogCi1WUEVSTUlMUFNfMTI4XzB4MDAocmVnKQorVkRQUERfMTI4XzJvZjQocmVnKQogICBiZWZvcmUKICAgICBkYmJmOTQyMjE4MjA0YjI2LjVlMWJkOTUyODFiMDllZWMuZTJlMzNhYWE4YjI3NWQ4OC4zNzJhNzkwNjJlZmM1N2MwCiAgICAgMDI3N2RhMGQzYmZhOWVmYS4wM2YzNWRmMmE3MWMwYTcwLjcyNjhjNTBmYzc2NmFlNWYuMjkxMDlhMjYxOWY1YTJmNQpAQCAtMjM2MzEsMTIgKzIzNjMxLDEyIEBACiAgICAgYzJjZWZjMjUyMzlmNGZjMS4wOTIyOGY3NTMyMGM1MWE2LjNiYTczNjM5Yjg0MGMyNmEuM2ZlYjBiMDY0M2FkNGIwOQogICAgIDFiNzY1MjllYmE4NDIxNDEKICAgYWZ0ZXIKLSAgICBkYmJmOTQyMjE4MjA0YjI2LjVlMWJkOTUyODFiMDllZWMuZTJlMzNhYWE4YjI3NWQ4OC4zNzJhNzkwNjJlZmM1N2MwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMxZDc1ZjU0YzFkNzVmNTQuYzFkNzVmNTRjMWQ3NWY1NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMDJlYmVmYmRjMGFlN2UzLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMjc3ZGEwZDNiZmE5ZWZhLjAzZjM1ZGYyYTcxYzBhNzAuNzI2OGM1MGZjNzY2YWU1Zi4yOTEwOWEyNjE5ZjVhMmY1CiAgICAgZGIwZDU0OTU2MGY2ZTA0YS5mMjA3YzYwNGQ5MzcwN2Y1LmM2ZTVjNTFhZjczZjExMWIuMzcwZGExODJjMWQ3NWY1NAogICAgIGMyY2VmYzI1MjM5ZjRmYzEuMDkyMjhmNzUzMjBjNTFhNi4zYmE3MzYzOWI4NDBjMjZhLjNmZWIwYjA2NDNhZDRiMDkKICAgICAxYjc2NTI5ZWJhODQyMTQxCi1WUEVSTUlMUFNfMTI4XzB4MDAobWVtKQorVkRQUERfMTI4XzJvZjQobWVtKQogICBiZWZvcmUKICAgICBhOTdjZjQzNjQzNjY5ZjI4LjEyMDZkMDJiMjE4MjI1MGMuMjIxMTM0MmZjZmE3YTNiMC4yYmZiMTVkN2E1ZjVmZGY1CiAgICAgYzNjNzZjYmFmYTYxN2ZlOS4yOTAxY2IxMmY2MmE5ZWQ2LjFiYTAzMjIwY2IxNGJhM2YuZjMyYjVkNjA1YmU5ZmQ2YQpAQCAtMjM2NDUsMTIgKzIzNjQ1LDEyIEBACiAgICAgZjNlMDgzYjY0N2I4ZjhmYwogICBhZnRlcgogICAgIGE5N2NmNDM2NDM2NjlmMjguMTIwNmQwMmIyMTgyMjUwYy4yMjExMzQyZmNmYTdhM2IwLjJiZmIxNWQ3YTVmNWZkZjUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTVmNWZkZjVhNWY1ZmRmNS5hNWY1ZmRmNTJiZmIxNWQ3CisgICAgYzNjNzZjYmFmYTYxN2ZlOS4yOTAxY2IxMmY2MmE5ZWQ2LjFiYTAzMjIwY2IxNGJhM2YuZjMyYjVkNjA1YmU5ZmQ2YQogICAgIDQ3MjUzNzE3ZmE4MTdkYjEuNjEwYmU5NDczYzIzZjhjYy5jZTliMDMzMzQzNjA1MjdlLmVmODMwYTQwNzVhOGZmNzUKICAgICAwZjYwY2YzNzVmZDE1N2FjLjE4NmYyNjM0OTJmYTZkOWEuMTljZTI1NTQ1Mjk2Mjc5OS43YjUxMThlMzkwYmUzZmMyCiAgICAgZjNlMDgzYjY0N2I4ZjhmYwogCi1WUEVSTUlMUFNfMTI4XzB4RkUocmVnKQorVkRQUERfMTI4XzNvZjQocmVnKQogICBiZWZvcmUKICAgICBiMzdiNDgyMzM2MjE2OGNmLmY5NDViMjA3NDY1ZGM3MDUuYTk3YjdmNDY5MTNhM2FlYi5kNjA1MTM2ZTE0YzJmNGJlCiAgICAgMTc2ZjYyOTdmYTg1YzllOC5kZmEwNWI3NGNhMzE4YWU4LjZmNzllZWVhZDg2ZjlhNmMuZTMwYjRhNmZhNmYxNzYxNgpAQCAtMjM2NTgsMTIgKzIzNjU4LDEyIEBACiAgICAgM2I5Mjg1NDY2ZjcwNTA5Yy4xM2U3ZWZkMTFiZTNmOGZmLjBlN2UwMzk0YThlOTA2YWQuNThiNzdmZDRhOTg2ODgxNgogICAgIDdhZjU3NjBmNTEwNDkxMTUKICAgYWZ0ZXIKLSAgICBiMzdiNDgyMzM2MjE2OGNmLmY5NDViMjA3NDY1ZGM3MDUuYTk3YjdmNDY5MTNhM2FlYi5kNjA1MTM2ZTE0YzJmNGJlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM4YjY3MThhYzhiNjcxOGEuYzhiNjcxOGEwMDI2Y2FjOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAxNzZmNjI5N2ZhODVjOWU4LmRmYTA1Yjc0Y2EzMThhZTguNmY3OWVlZWFkODZmOWE2Yy5lMzBiNGE2ZmE2ZjE3NjE2CiAgICAgN2IwOGNkN2YyZTcxNTdmMy45ZTNkNDY2OTA3NWE1YjgzLmM4YjY3MThhMDAyNmNhYzkuMWFhZDQ0NDMyNDJlNjlkMAogICAgIDNiOTI4NTQ2NmY3MDUwOWMuMTNlN2VmZDExYmUzZjhmZi4wZTdlMDM5NGE4ZTkwNmFkLjU4Yjc3ZmQ0YTk4Njg4MTYKICAgICA3YWY1NzYwZjUxMDQ5MTE1Ci1WUEVSTUlMUFNfMTI4XzB4RkUobWVtKQorVkRQUERfMTI4XzNvZjQobWVtKQogICBiZWZvcmUKICAgICA1YTMzYTVlMTM5YjQzZGY4LmIzNTk4NzU3NTkwZmVlOGQuMTg2Y2QzOWExZmQ5MWI4Yi45ZTFkYTE3MjY5NDc4YWM1CiAgICAgZDUzZDg5MzQ3Y2EyNGJlYy4zZmE4Y2QyMDg3ZDg2ZTc1LjhhOTY2ZGFmMzE0NzgwNTEuZDVkZjQ2OTJlMWM5OTJiYwpAQCAtMjM2NzIsMTIgKzIzNjcyLDEyIEBACiAgICAgZjRlZDM3YjBhOGE5MTY5NwogICBhZnRlcgogICAgIDVhMzNhNWUxMzliNDNkZjguYjM1OTg3NTc1OTBmZWU4ZC4xODZjZDM5YTFmZDkxYjhiLjllMWRhMTcyNjk0NzhhYzUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTg2Y2QzOWExODZjZDM5YS4xODZjZDM5YTE4NmNkMzlhCisgICAgZDUzZDg5MzQ3Y2EyNGJlYy4zZmE4Y2QyMDg3ZDg2ZTc1LjhhOTY2ZGFmMzE0NzgwNTEuZDVkZjQ2OTJlMWM5OTJiYwogICAgIGM3ZGU5Y2Y2MzdkYjc1MWMuM2JjZDU1MGM5NTVhMGJmZS40NjMyMzlmYzZkMzllNTdlLjBkMGZlZDVmYWNmZDU5M2YKICAgICAwY2U0NWMxMTg1NmE3OGI1LjAzMTIxYTg3MjAxZTAyZDUuMjYwY2IzNmRlZWJiMDQzZC5hM2ZiOTQ0NTY1NmYxY2Y5CiAgICAgZjRlZDM3YjBhOGE5MTY5NwogCi1WUEVSTUlMUFNfMTI4XzB4RkUocmVnKQorVkRQUERfMTI4XzNvZjQocmVnKQogICBiZWZvcmUKICAgICA1YTMyZDAwYzEyMzk4NWM1LjgxMTk0NDczODM1YzEwZTMuZjJjNDE5ZmRjM2IyOGZhNS4wN2YwNTdlZmQwZGE5YWJiCiAgICAgMzIxNjVkYzYzZmFiYTMyZS4wMDRhZDAwNzRjYmNmOWQxLjY2MmY0Y2RiMWJhMWVlMWIuYzVhOWEyNmMzMGExNjMyMwpAQCAtMjM2ODUsMTIgKzIzNjg1LDEyIEBACiAgICAgYTllYTQwMDA0ZjYxZGU2My44ZmNmYzY3NWIxZjdhYzlmLjQ5NjA0MzdhNTdjMjEwYTguNDhjZTFhMGJkOTU5N2M2NAogICAgIGM1ZDEzZjA1NTk2MTQ1OTQKICAgYWZ0ZXIKLSAgICA1YTMyZDAwYzEyMzk4NWM1LjgxMTk0NDczODM1YzEwZTMuZjJjNDE5ZmRjM2IyOGZhNS4wN2YwNTdlZmQwZGE5YWJiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJhOWZiMThiYmE5ZmIxOGIuYmE5ZmIxOGJjMzc4NWFlMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAzMjE2NWRjNjNmYWJhMzJlLjAwNGFkMDA3NGNiY2Y5ZDEuNjYyZjRjZGIxYmExZWUxYi5jNWE5YTI2YzMwYTE2MzIzCiAgICAgZDhlNGQ5NDhjYTg5YWM3Zi42NjQzN2RiOWZkOTZlZWFjLmJhOWZiMThiYzM3ODVhZTMuM2MwNTBmZDEyYTFkMWFhMgogICAgIGE5ZWE0MDAwNGY2MWRlNjMuOGZjZmM2NzViMWY3YWM5Zi40OTYwNDM3YTU3YzIxMGE4LjQ4Y2UxYTBiZDk1OTdjNjQKICAgICBjNWQxM2YwNTU5NjE0NTk0Ci1WUEVSTUlMUFNfMTI4XzB4RkUobWVtKQorVkRQUERfMTI4XzNvZjQobWVtKQogICBiZWZvcmUKICAgICA4ZmRhZmJhYWM3NDIzMDVmLmZmNzI4ZTU4NmJiZjczODcuNTdiYzI3Mjc4NWVhZWVkNy43MWJkZmYxNTc1MGI0YzE3CiAgICAgODJiNWM5ZTgzZTA3ZmFmMC4zN2NhYzBiZWI5MmVhODk3LjlhZDQxY2JiOTQ3YjcyODAuOGQwM2RmYzdiNmRmNGFkYgpAQCAtMjM2OTksMTIgKzIzNjk5LDEyIEBACiAgICAgMmY0MzM4OWU2ZTE5MjVlMQogICBhZnRlcgogICAgIDhmZGFmYmFhYzc0MjMwNWYuZmY3MjhlNTg2YmJmNzM4Ny41N2JjMjcyNzg1ZWFlZWQ3LjcxYmRmZjE1NzUwYjRjMTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTdiYzI3Mjc1N2JjMjcyNy41N2JjMjcyNzU3YmMyNzI3CisgICAgODJiNWM5ZTgzZTA3ZmFmMC4zN2NhYzBiZWI5MmVhODk3LjlhZDQxY2JiOTQ3YjcyODAuOGQwM2RmYzdiNmRmNGFkYgogICAgIDdhMmQyNWFhZGJiYzVmNzQuYWQzY2QxOWRkNjNhYjkzZS4zNGU1MjExZWZhYjdmMmM1LmY4N2VlMWZiYjhjYjQ1YTEKICAgICA1MzEwOGJkY2I5NmUxYjE3LmJkMTViZDYwNWQ2ZmUxMjkuMDFiOWIzM2FkNGE4MmJkMy4xMDdhMDAxZjE3NWE3YTE0CiAgICAgMmY0MzM4OWU2ZTE5MjVlMQogCi1WUEVSTUlMUFNfMTI4XzB4RkUocmVnKQorVkRQUERfMTI4XzNvZjQocmVnKQogICBiZWZvcmUKICAgICBiMzI1ODVlNDU5OTM4MWI0LmU5Mjg3NzZhZjUyOGU5MDQuYzNhMDgwNzVlYjVhNWQwMy5kZDFkNGRmZDNlNWRkOGQ1CiAgICAgZjY2Y2U0NWQ3NTU0Y2IzOC4xODQzNjY0MGFhZjY4NzY3LjFiMmIxNzQ3MWI4NjY5NzkuYTNkYzZiNTE1M2RmYjZmOApAQCAtMjM3MTIsMTIgKzIzNzEyLDEyIEBACiAgICAgMmQ1N2M1OThhZWRkMTkwNi5iMGFkM2E3NWYxMDAxZDQzLjMxNmRhZGQzZDNkMjIwZTguNjJhMDIzNjFlZjgwZjU1MAogICAgIDEyM2JiNmY0YWViNWNkZGMKICAgYWZ0ZXIKLSAgICBiMzI1ODVlNDU5OTM4MWI0LmU5Mjg3NzZhZjUyOGU5MDQuYzNhMDgwNzVlYjVhNWQwMy5kZDFkNGRmZDNlNWRkOGQ1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIxMDA3YzQyMjEwMDdjNDIuMjEwMDdjNDI4YTdmNDAzNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBmNjZjZTQ1ZDc1NTRjYjM4LjE4NDM2NjQwYWFmNjg3NjcuMWIyYjE3NDcxYjg2Njk3OS5hM2RjNmI1MTUzZGZiNmY4CiAgICAgNTY2MzUwNzU1ZWU5M2YxYS5iYzJiZDM0YmY1ZTVhZTZlLjIxMDA3YzQyOGE3ZjQwMzcuMzFjNDg5MjQyZjNjODE2OAogICAgIDJkNTdjNTk4YWVkZDE5MDYuYjBhZDNhNzVmMTAwMWQ0My4zMTZkYWRkM2QzZDIyMGU4LjYyYTAyMzYxZWY4MGY1NTAKICAgICAxMjNiYjZmNGFlYjVjZGRjCi1WUEVSTUlMUFNfMTI4XzB4RkUobWVtKQorVkRQUERfMTI4XzNvZjQobWVtKQogICBiZWZvcmUKICAgICAxZDYyYmRjOTg5ZTljNzNhLmQ5OTQzZjMzMDRiYzk0YTcuZDI5NDE3YWJiYjUzOGUxMi5hN2JjYTU2NDkzMGE0MzM5CiAgICAgNWVlMWI0Y2M5YzI4OWM5NC5iNDY2YmFiMGZhMTNlZGE5LmZkYWVlN2RhNmVlYmJlMDguZGYzYTYxNjI2NWI0ZTVkNQpAQCAtMjM3MjYsMTIgKzIzNzI2LDEyIEBACiAgICAgYWFjNWZlMjQ2MmQwMjMyOAogICBhZnRlcgogICAgIDFkNjJiZGM5ODllOWM3M2EuZDk5NDNmMzMwNGJjOTRhNy5kMjk0MTdhYmJiNTM4ZTEyLmE3YmNhNTY0OTMwYTQzMzkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDI5NDE3YWJkMjk0MTdhYi5kMjk0MTdhYmQyOTQxN2FiCisgICAgNWVlMWI0Y2M5YzI4OWM5NC5iNDY2YmFiMGZhMTNlZGE5LmZkYWVlN2RhNmVlYmJlMDguZGYzYTYxNjI2NWI0ZTVkNQogICAgIGIzODQxOGU5MDE3ZDBiMTYuMWIxOTMzN2QyYzZkNjBiYS4wZGM1MjVlZDI2ZDM2OTUxLjM0MzNkYjNhZTU1YjQ0NjkKICAgICBmNzE3NjMwY2Q3ZjRjZWVkLjZiZjlhNTA0Mzc1NjI4ODQuZGRhNzRkY2YwMDE3NGExOS4wNGYyMTE1NmIwOGI5YWExCiAgICAgYWFjNWZlMjQ2MmQwMjMyOAogCi1WUEVSTUlMUFNfMTI4XzB4MzAocmVnKQorVkRQUERfMTI4XzRvZjQocmVnKQogICBiZWZvcmUKICAgICA4MmY2OWUwZjk2YjcxZGFiLjA1NjUxMzIyMzc5OWEyNDUuZmU1MTBjYjNiNjViODNiMy40YjFlZGI2ZTE4YzQxZThhCiAgICAgZTdkMmVlODNlOGNiYzJkNS5iYjNiYTMxNTQwNzk0MzQ5LjMxNmU2NGY1NDYwN2FhZjQuMzFmNzRiYjU4OWU1YTFkMwpAQCAtMjM3MzksMTIgKzIzNzM5LDEyIEBACiAgICAgY2RiYjhhYjY1OWFjMDBkMC44YmIwNTQ0N2I2MTdkYTA4LmU3MjdkOWUyMDY4NTUzNWIuZDlmZWMzZWJlN2I0YTM5OAogICAgIDUzYzVjMmIyMGM3YTlhNmMKICAgYWZ0ZXIKLSAgICA4MmY2OWUwZjk2YjcxZGFiLjA1NjUxMzIyMzc5OWEyNDUuZmU1MTBjYjNiNjViODNiMy40YjFlZGI2ZTE4YzQxZThhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZmODY4ZjFlNjA5Y2FhMzYuNmY4NjhmMWU2Zjg2OGYxZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBlN2QyZWU4M2U4Y2JjMmQ1LmJiM2JhMzE1NDA3OTQzNDkuMzE2ZTY0ZjU0NjA3YWFmNC4zMWY3NGJiNTg5ZTVhMWQzCiAgICAgMzdhNmU4ZWNmNTk5NGY1My5mMzY2OGZkMzBiOWY2YzI2LjYwOWNhYTM2ODJlNmRjZjMuNmRmZDFhOTA2Zjg2OGYxZQogICAgIGNkYmI4YWI2NTlhYzAwZDAuOGJiMDU0NDdiNjE3ZGEwOC5lNzI3ZDllMjA2ODU1MzViLmQ5ZmVjM2ViZTdiNGEzOTgKICAgICA1M2M1YzJiMjBjN2E5YTZjCi1WUEVSTUlMUFNfMTI4XzB4MzAobWVtKQorVkRQUERfMTI4XzRvZjQobWVtKQogICBiZWZvcmUKICAgICBiNTFkOTNkMmZiZTQzMGM3LjA0NjBjZjRkYWU5MDEwZjkuNWRlNjZjNWM1ZGVlNDkxYS4yMjViZWQ2NTZmNmY0Y2Q5CiAgICAgZGRkM2IyMzVkMGZmMjBkNC4zYWUwYjQxZDkzZDJiZDdhLjQ3ZDM1NTAwMWIyZjc1ODkuNmU4NGUyMmI1OTMwMDMxOApAQCAtMjM3NTMsMTIgKzIzNzUzLDEyIEBACiAgICAgNDdiM2UxNDgzMGY5ZjIxOAogICBhZnRlcgogICAgIGI1MWQ5M2QyZmJlNDMwYzcuMDQ2MGNmNGRhZTkwMTBmOS41ZGU2NmM1YzVkZWU0OTFhLjIyNWJlZDY1NmY2ZjRjZDkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmY2ZjRjZDk2ZjZmNGNkOS42ZjZmNGNkOTVkZTY2YzVjCisgICAgZGRkM2IyMzVkMGZmMjBkNC4zYWUwYjQxZDkzZDJiZDdhLjQ3ZDM1NTAwMWIyZjc1ODkuNmU4NGUyMmI1OTMwMDMxOAogICAgIGE1YjM5Y2M5YTVkNjI3YzAuYzk4NjMzOTNhMWZkNDBmZS4yMzQ1OGExZTBjZTcxOTgwLjI1ZWRiNGEwNWY1NWI0YzUKICAgICBlYjg5Y2M3ODk4NzYwMWI3LjBmOWY0YTE5Nzc5ZGQ4MzIuY2YwNjg4YTI0ZDIwZjIyYy5hNGU0NjAzMTFkNjk5YThjCiAgICAgNDdiM2UxNDgzMGY5ZjIxOAogCi1WUEVSTUlMUFNfMTI4XzB4MzAocmVnKQorVkRQUERfMTI4XzRvZjQocmVnKQogICBiZWZvcmUKICAgICA2YWE3MzM1MzM0OGZmODE2Ljg5MjFiZTMwYzVlYTZhZTQuNjY3OGY0MWNhZTNlYmZjMi4yNWU0Yzk3OGZhZThiY2I4CiAgICAgNjgwYzUyYmRjNGJhZTczMS41YzQ2ZWZkYzQ3M2UxZDc0LjJjNWIyZDA5ZTU2ZDMyNTkuMDJhOWNiOGMyZTRiMzI1MQpAQCAtMjM3NjYsMTIgKzIzNzY2LDEyIEBACiAgICAgNmE1OGU4NWRmOWY4NzM3MS4xMjZiZmFiZmJjYjc1NDZjLjcxNzEzZDRlYmNhM2FiNGUuYzIxYmZmMWY5YzBmMTU1OQogICAgIDVjNWYyOTc2MGU4OWZhMjAKICAgYWZ0ZXIKLSAgICA2YWE3MzM1MzM0OGZmODE2Ljg5MjFiZTMwYzVlYTZhZTQuNjY3OGY0MWNhZTNlYmZjMi4yNWU0Yzk3OGZhZThiY2I4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA1NTQxMjIzYmI5NGYyNGIuMDU1NDEyMjMwNTU0MTIyMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICA2ODBjNTJiZGM0YmFlNzMxLjVjNDZlZmRjNDczZTFkNzQuMmM1YjJkMDllNTZkMzI1OS4wMmE5Y2I4YzJlNGIzMjUxCiAgICAgOWYyZTNiZjE3YzAzZmMxNi40MWM2ZDk2NzNiN2VkNzkzLmJiOTRmMjRiYjViNjZkYTQuNDMyMjA5Y2IwNTU0MTIyMwogICAgIDZhNThlODVkZjlmODczNzEuMTI2YmZhYmZiY2I3NTQ2Yy43MTcxM2Q0ZWJjYTNhYjRlLmMyMWJmZjFmOWMwZjE1NTkKICAgICA1YzVmMjk3NjBlODlmYTIwCi1WUEVSTUlMUFNfMTI4XzB4MzAobWVtKQorVkRQUERfMTI4XzRvZjQobWVtKQogICBiZWZvcmUKICAgICBlZGJjMDRiYTc4Y2M3YmEzLjI1ZDg1NzZjZDYyNDg3ZWQuYWMwMmNkY2ZlN2Y0NGYyYi5hODNjMGM3ZTk2YzIyYTA0CiAgICAgNTFmYzBiZDlmNWU3NTUwZi4yY2Y4ODQ4YWIwMTQ3NjM2LmViNTdjZTg0ZDc0Mjg2ZmUuYmQ0MzVhNDdkZTlmMjM3MQpAQCAtMjM3ODAsMTIgKzIzNzgwLDEyIEBACiAgICAgYzlhZjE4NzA2NTFjNGZiZgogICBhZnRlcgogICAgIGVkYmMwNGJhNzhjYzdiYTMuMjVkODU3NmNkNjI0ODdlZC5hYzAyY2RjZmU3ZjQ0ZjJiLmE4M2MwYzdlOTZjMjJhMDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTZjMjJhMDQ5NmMyMmEwNC45NmMyMmEwNGFjMDJjZGNmCisgICAgNTFmYzBiZDlmNWU3NTUwZi4yY2Y4ODQ4YWIwMTQ3NjM2LmViNTdjZTg0ZDc0Mjg2ZmUuYmQ0MzVhNDdkZTlmMjM3MQogICAgIDY1ZWNiYWJlYTJlMzQ0OTAuZGIwNTY5MjMyMjUyNzlmYS5hYjM2N2FjOGE4YWNiMjBlLjBkZDAyMzE1MzBjNGQ1NDIKICAgICAwMzU4OGQ1NTlhY2UwNDUxLjhkNGIwNGE0Yzk2ZGNmZTMuYzk2YTRiODg3NzNlOTI4YS5mMjMwNjQ1NDI5YmY3YTIzCiAgICAgYzlhZjE4NzA2NTFjNGZiZgogCi1WUEVSTUlMUFNfMTI4XzB4MzAocmVnKQorVkRQUERfMTI4XzRvZjQocmVnKQogICBiZWZvcmUKICAgICBlZTk5M2JkNTdmNjU5MGMzLjA4MGMwMThhZmFiMzUwN2YuYTAxNjRmNzc0MGVlYjM5ZC4xZmMxYmZiMTYwMDVlMDljCiAgICAgYmQzOWM5ZjAxMzI4NzlkYS41MGQ0OTE0OWRkOWZlNTQ1LjZmYjE0ODA5MjQ2MzYwZDUuOGEwNTUxMmQ3ZTBjNTk3MApAQCAtMjM3OTMsMTIgKzIzNzkzLDEyIEBACiAgICAgY2FjZjE3ZjQxYjRiMzFmNC4xOWNmZjUxNTllYjlkOTRjLmIwOGIzMjFiYTE1NzA3NmUuMGY4N2MwZDJjYTBhYmMxMQogICAgIGUxNWQ5NWQzMzAxYTFkMzYKICAgYWZ0ZXIKLSAgICBlZTk5M2JkNTdmNjU5MGMzLjA4MGMwMThhZmFiMzUwN2YuYTAxNjRmNzc0MGVlYjM5ZC4xZmMxYmZiMTYwMDVlMDljCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVkNWZiOTM0NTU2YWViYzcuZWQ1ZmI5MzRlZDVmYjkzNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBiZDM5YzlmMDEzMjg3OWRhLjUwZDQ5MTQ5ZGQ5ZmU1NDUuNmZiMTQ4MDkyNDYzNjBkNS44YTA1NTEyZDdlMGM1OTcwCiAgICAgOTNkZGJlMmJiZWYxNDViMS5iNzdjYjk3ZTYwOWQ3ZWQwLjU1NmFlYmM3MTA1NzEzMzcuZTYwMzdlZWFlZDVmYjkzNAogICAgIGNhY2YxN2Y0MWI0YjMxZjQuMTljZmY1MTU5ZWI5ZDk0Yy5iMDhiMzIxYmExNTcwNzZlLjBmODdjMGQyY2EwYWJjMTEKICAgICBlMTVkOTVkMzMwMWExZDM2Ci1WUEVSTUlMUFNfMTI4XzB4MzAobWVtKQorVkRQUERfMTI4XzRvZjQobWVtKQogICBiZWZvcmUKICAgICAzODUxNzhkODNjOWI5OWNkLmJmNWNjZWI2YzdjMjc4NGUuNTI5YWMxZmFiNDAwYjBlNC5kYjYxMWI3MzcyZWU3OTI3CiAgICAgZjAyZWU1Y2QwOTk3ZWMwMi5jZWQwZTJkZDVkZTI1ODZjLjNlYTk5YTFhYmQ3ZGMwYzUuMzEzOGExM2ExZmE4YTUwZQpAQCAtMjM4MDcsMTIgKzIzODA3LDEyIEBACiAgICAgZDViYWJhNjE2YjIzZGM4YgogICBhZnRlcgogICAgIDM4NTE3OGQ4M2M5Yjk5Y2QuYmY1Y2NlYjZjN2MyNzg0ZS41MjlhYzFmYWI0MDBiMGU0LmRiNjExYjczNzJlZTc5MjcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzJlZTc5Mjc3MmVlNzkyNy43MmVlNzkyNzUyOWFjMWZhCisgICAgZjAyZWU1Y2QwOTk3ZWMwMi5jZWQwZTJkZDVkZTI1ODZjLjNlYTk5YTFhYmQ3ZGMwYzUuMzEzOGExM2ExZmE4YTUwZQogICAgIGU0YzE1OTllYjQxY2QxMDIuNTM3NzRjZDU3YTM4MGJmOS5iOWM4ZmE1ZmQ1M2NjNDFhLjEwNWNjMGRjNDUxMWM3Y2UKICAgICBmMmQ3NGUzNzU4MzYwNWY5LmFhOWMwOTBhYjk0ZmNlYTIuOWZjMzYwYjcxOTRhNzkxMC5kMjE5NzRjNTgwYjYxYTE0CiAgICAgZDViYWJhNjE2YjIzZGM4YgogCi1WUEVSTUlMUFNfMTI4XzB4MjEocmVnKQorVlBJTlNSV18xMjhfMW9mNChyZWcpCiAgIGJlZm9yZQogICAgIDczOGQ4ZDFjYTJlMjQ2ZTAuZjUzYTQyODUxMmVmNDQxMy4yZjhkMTZlOGI3YjNkYzEzLmNiNjY0NTBkYTRiMjliZDMKICAgICAwYWRjZTk2MmMyODE5N2JlLmM5YjdiMDcyZmQ1NTQ5N2EuM2U5NDZlZGIwZmYxNzJmNy4xYjdjMjY0ZDkzODBlNjhlCkBAIC0yMzgyMCwxMiArMjM4MjAsMTIgQEAKICAgICA4ZTIxMmM0MDJiOGRkOWM4LjUzMmVlYmRkZDc1Njk5ZTYuNjkxN2VmYjEzZjI5MjZjYS45NDM1Y2UzYTBjODBlNjllCiAgICAgNzQ2ZjhjYzFjZGM5MTI0YgogICBhZnRlcgotICAgIDczOGQ4ZDFjYTJlMjQ2ZTAuZjUzYTQyODUxMmVmNDQxMy4yZjhkMTZlOGI3YjNkYzEzLmNiNjY0NTBkYTRiMjliZDMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDJjMTE1NmU1ZTk0Y2NmYi4wMmMxMTU2ZTZhZDI4MDYyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNlOTQ2ZWRiMGZmMTcyZjcuMWI3YzI2NGQ5MzgwMTI0YgorICAgIDBhZGNlOTYyYzI4MTk3YmUuYzliN2IwNzJmZDU1NDk3YS4zZTk0NmVkYjBmZjE3MmY3LjFiN2MyNjRkOTM4MGU2OGUKICAgICBmNGY0Y2FhMDY2OGMwOWQyLjRhMTkxNWViMzU3NGQyNWQuMzJmZTBkNGY1ZTk0Y2NmYi42YWQyODA2MjAyYzExNTZlCiAgICAgOGUyMTJjNDAyYjhkZDljOC41MzJlZWJkZGQ3NTY5OWU2LjY5MTdlZmIxM2YyOTI2Y2EuOTQzNWNlM2EwYzgwZTY5ZQogICAgIDc0NmY4Y2MxY2RjOTEyNGIKLVZQRVJNSUxQU18xMjhfMHgyMShtZW0pCitWUElOU1JXXzEyOF8xb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgZTg0YzM2ZTE2MmE5NThhMC4zNWFmMGNiMGFjMTI0MzRiLmMyYzBiMDMzZmYwOTVhNDIuM2UyYjExNmI0ZTNiYmIxMQogICAgIGNiOWE0OTg3ZTYyYjcyY2IuNDNlOTY1NWE4NmE3ODMwOC43MjlkZGZkOGM4OTlkMzljLjBkODY2ZWViMjg1NmM4N2MKQEAgLTIzODM0LDEyICsyMzgzNCwxMiBAQAogICAgIGVkMzdiZjQwOGQ1NzE2NDkKICAgYWZ0ZXIKICAgICBlODRjMzZlMTYyYTk1OGEwLjM1YWYwY2IwYWMxMjQzNGIuYzJjMGIwMzNmZjA5NWE0Mi4zZTJiMTE2YjRlM2JiYjExCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRlM2JiYjExM2UyYjExNmIuNGUzYmJiMTFmZjA5NWE0MgotICAgIGY4MjQ0MDlmNzY1YjFkZjUuMTUxZDMzYWM1NGQ2ZDRhYS4zZThmZjRiYTRlMTBiZTIxLjMyNzMwMjliNjkwNjg5YjYKKyAgICBjYjlhNDk4N2U2MmI3MmNiLjQzZTk2NTVhODZhNzgzMDguNzI5ZGRmZDhjODk5ZDM5Yy4wZDg2NmVlYjI4NTZjODdjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjcyOWRkZmQ4Yzg5OWQzOWMuYmIxMTZlZWIyODU2Yzg3YwogICAgIDRkYjU5NzE2MmQ0NjE1NGQuMDc5NTcyMTFiMzJkNzNkZS4wNDYzNmJjNGFlN2NkOGZkLjA4NDBjOWU5YWNkODNhNmIKICAgICBlZDM3YmY0MDhkNTcxNjQ5CiAKLVZQRVJNSUxQU18xMjhfMHgyMShyZWcpCitWUElOU1JXXzEyOF8xb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgM2NhNWUxMGNhOTEwNWFmYS5hNDFhY2FkNjI3ZjcxNWZkLjc1OWUxZmY1M2UzODliNTAuOWZlNGMxZTIwNGU5ZGM1YgogICAgIDUwZDYyYWI5OWI4ZTQyMmEuZGIxZjU1Y2Q4MTdhZGEzMS5iYzg0MzVjNDkyODE4YWFiLmVhZTA3MTAwNmI2Mjg3NjcKQEAgLTIzODQ3LDEyICsyMzg0NywxMiBAQAogICAgIDNjYjAyMTY3NzQwYWVjYmEuNTUzOTY1MGRjNDI4YTNkOC40MDE3OGNkMzAyMDNhN2NmLjA0NzVjZmVkZGRhOGMyM2QKICAgICA4YWE2NzY5MzIwOGVjYTVkCiAgIGFmdGVyCi0gICAgM2NhNWUxMGNhOTEwNWFmYS5hNDFhY2FkNjI3ZjcxNWZkLjc1OWUxZmY1M2UzODliNTAuOWZlNGMxZTIwNGU5ZGM1YgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmYzOTU0ZjRhOTY3YTljLmZmZjM5NTRmYzMyMmY3MGEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmM4NDM1YzQ5MjgxOGFhYi5lYWUwNzEwMDZiNjJjYTVkCisgICAgNTBkNjJhYjk5YjhlNDIyYS5kYjFmNTVjZDgxN2FkYTMxLmJjODQzNWM0OTI4MThhYWIuZWFlMDcxMDA2YjYyODc2NwogICAgIDg3MTU5NmIzMDA1ZDA5ODYuY2M5MGI1ZTY1N2RjMjAxNi4zNjkzYjBlYTRhOTY3YTljLmMzMjJmNzBhZmZmMzk1NGYKICAgICAzY2IwMjE2Nzc0MGFlY2JhLjU1Mzk2NTBkYzQyOGEzZDguNDAxNzhjZDMwMjAzYTdjZi4wNDc1Y2ZlZGRkYThjMjNkCiAgICAgOGFhNjc2OTMyMDhlY2E1ZAotVlBFUk1JTFBTXzEyOF8weDIxKG1lbSkKK1ZQSU5TUldfMTI4XzFvZjQobWVtKQogICBiZWZvcmUKICAgICAzMjgxNjZlYWU1YjA2OGRjLmNhZjFjODNmOTExZjI3NzEuNTBlNmUxMmVlNTZiMWVhMi4zNjViYzVlYjU3NTM0ZmVmCiAgICAgZDZkMjFkZGM0NzFiNTllNi44ZjI2ODZhOGY2MmJmNjU4LjliNjJhNTM1ZDVhZjRlYTEuNzRhYzU4OWZlNTEyYWNhOApAQCAtMjM4NjEsMTIgKzIzODYxLDEyIEBACiAgICAgNzZlNmZmOTNmODYzNWUyNgogICBhZnRlcgogICAgIDMyODE2NmVhZTViMDY4ZGMuY2FmMWM4M2Y5MTFmMjc3MS41MGU2ZTEyZWU1NmIxZWEyLjM2NWJjNWViNTc1MzRmZWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTc1MzRmZWYzNjViYzVlYi41NzUzNGZlZmU1NmIxZWEyCi0gICAgNTQ2NTE3NTc2M2Q5NThhNi5lNTk5NTcwZjNjYjc5NDFiLjEwN2EyZTBlYjAwM2VmMDAuNTY1NzQwNTk0N2NjZmJhNworICAgIGQ2ZDIxZGRjNDcxYjU5ZTYuOGYyNjg2YThmNjJiZjY1OC45YjYyYTUzNWQ1YWY0ZWExLjc0YWM1ODlmZTUxMmFjYTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWI2MmE1MzVkNWFmNGVhMS40ZmVmNTg5ZmU1MTJhY2E4CiAgICAgODYwNWNlNDY1NGY4MjM0OS4yYTk3MzdkZTAxNTEzZTY1LjhjZmFmN2E1OTM3MGJjZWMuMzhhNjc5ODcxOTBlNzg5OAogICAgIDc2ZTZmZjkzZjg2MzVlMjYKIAotVlBFUk1JTFBTXzEyOF8weDIxKHJlZykKK1ZQSU5TUldfMTI4XzFvZjQocmVnKQogICBiZWZvcmUKICAgICA2YzYyY2ZlYjgwNTdlYWZlLjQ5ODBjMDk1Mzc4NDc0ZmEuYjg2YzIyODNlMTg1MzBlMi5lY2FlN2NlNjk5MDQ3MzkxCiAgICAgNzY2OGU0ZmE0Yjc3NThjYy43OWEwNjcyZjI3ODgwN2U2LmVjNjMxNTY5NzdkZGE1NDAuMGE2MjM5YmVkZmNhY2QxYQpAQCAtMjM4NzQsMTIgKzIzODc0LDEyIEBACiAgICAgMzUzZWNkZWQyMDY5YzlmOC45MTAyY2FmYTlmMjllNzFlLmI3ZWIwMGE4MzcyZjBiNDkuZjNmOTRjZGY5OTFlNjE4YgogICAgIDc3NzU5YTAxNDZjMzEyY2EKICAgYWZ0ZXIKLSAgICA2YzYyY2ZlYjgwNTdlYWZlLjQ5ODBjMDk1Mzc4NDc0ZmEuYjg2YzIyODNlMTg1MzBlMi5lY2FlN2NlNjk5MDQ3MzkxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgxY2Y4OWI0NjBlN2RhMjkuODFjZjg5YjRjM2UyYWExNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYzYzMTU2OTc3ZGRhNTQwLjBhNjIzOWJlZGZjYTEyY2EKKyAgICA3NjY4ZTRmYTRiNzc1OGNjLjc5YTA2NzJmMjc4ODA3ZTYuZWM2MzE1Njk3N2RkYTU0MC4wYTYyMzliZWRmY2FjZDFhCiAgICAgZWY0MjM5MmNmODRlZTQzYi5mMzMyNDEwMzQwMTA5YTM5LjIzY2EwYmZjNjBlN2RhMjkuYzNlMmFhMTc4MWNmODliNAogICAgIDM1M2VjZGVkMjA2OWM5ZjguOTEwMmNhZmE5ZjI5ZTcxZS5iN2ViMDBhODM3MmYwYjQ5LmYzZjk0Y2RmOTkxZTYxOGIKICAgICA3Nzc1OWEwMTQ2YzMxMmNhCi1WUEVSTUlMUFNfMTI4XzB4MjEobWVtKQorVlBJTlNSV18xMjhfMW9mNChtZW0pCiAgIGJlZm9yZQogICAgIDI5MjAxMDY4YTFjYTU4OWQuYTNhNjk5YTk2MjUzNDRhZS4zMGRjN2MwMTYwZGRhYmMyLjA1MTNmMGQ5OTgzZjc0NGQKICAgICBlNmM3MmEwMmM5NDBlZjMxLjk1Yzc5YmNjNTc5ODkwMGEuYWM4YmQ1MDQ5ZTNiYTI1MC42YThlZDdmYjIwYTU1MGUxCkBAIC0yMzg4OCwxMiArMjM4ODgsMTIgQEAKICAgICBiMmU4MzE0MGI3NGZmM2IxCiAgIGFmdGVyCiAgICAgMjkyMDEwNjhhMWNhNTg5ZC5hM2E2OTlhOTYyNTM0NGFlLjMwZGM3YzAxNjBkZGFiYzIuMDUxM2YwZDk5ODNmNzQ0ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ODNmNzQ0ZDA1MTNmMGQ5Ljk4M2Y3NDRkNjBkZGFiYzIKLSAgICA4YTM2NjViYWQ3MzA5MmIyLjY2ZWNjZWMzOWVjNGViYjguZTFkZDUwZjA3NTRjODdmNS40MGE4YjI3YTZiZWRkY2IwCisgICAgZTZjNzJhMDJjOTQwZWYzMS45NWM3OWJjYzU3OTg5MDBhLmFjOGJkNTA0OWUzYmEyNTAuNmE4ZWQ3ZmIyMGE1NTBlMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYzhiZDUwNDllM2JhMjUwLjc0NGRkN2ZiMjBhNTUwZTEKICAgICBmMTM5M2I3Y2U5YTdmZTRjLjc0NjMyZWY4ZDA2NDhmNjMuYWI5YzY5YWYwMjFlMTdkZC5lNGFkN2NjMzE0YTE1NDY3CiAgICAgYjJlODMxNDBiNzRmZjNiMQogCi1WUEVSTUlMUFNfMTI4XzB4RDcocmVnKQorVlBJTlNSV18xMjhfMm9mNChyZWcpCiAgIGJlZm9yZQogICAgIDA2YTdjZTVmZjE4M2Y3M2IuZjc5YjJhMzQxYmIwZWUyYS4xYTc3YjdkOThiMDRiOWI4LmU2OTU5YzJmNjFiYzBlMzMKICAgICAzYzM0NGQ4YTVkYzc5OWIxLjc4MjlhZWNmODg1NzIwNzguYjM3MzY1ZDA2YjJlYTQ2Mi42ZTk0NjY1YWFjMzMyNzI0CkBAIC0yMzkwMSwxMiArMjM5MDEsMTIgQEAKICAgICBiZmViZTZiOTNkYjVhZTBmLjViZmE2MTU5ODViMTM1MTcuMzM1NjIyYjUwODU1YjE2Ny5kNWQ0YWI2NjdkZDliMjg1CiAgICAgNmNhYzIwMWUzOTIxOWM0ZQogICBhZnRlcgotICAgIDA2YTdjZTVmZjE4M2Y3M2IuZjc5YjJhMzQxYmIwZWUyYS4xYTc3YjdkOThiMDRiOWI4LmU2OTU5YzJmNjFiYzBlMzMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWRhNDM1NGIxZjY1NDExZS4xZjY1NDExZTlkYTQzNTRiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIzNzM2NWQwNmIyZWE0NjIuNmU5NDljNGVhYzMzMjcyNAorICAgIDNjMzQ0ZDhhNWRjNzk5YjEuNzgyOWFlY2Y4ODU3MjA3OC5iMzczNjVkMDZiMmVhNDYyLjZlOTQ2NjVhYWMzMzI3MjQKICAgICBiMGRjYWMyZjk4YTkxOGJlLjUwYjA0MTM3NGRhOTRlNjMuOWRhNDM1NGIwYjcwOGUwZS4xZjY1NDExZTAyOGUxZmRiCiAgICAgYmZlYmU2YjkzZGI1YWUwZi41YmZhNjE1OTg1YjEzNTE3LjMzNTYyMmI1MDg1NWIxNjcuZDVkNGFiNjY3ZGQ5YjI4NQogICAgIDZjYWMyMDFlMzkyMTljNGUKLVZQRVJNSUxQU18xMjhfMHhENyhtZW0pCitWUElOU1JXXzEyOF8yb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgYzBiYTFhMzI1MzcxOTg2MS5jM2FkZjc5NGU5NzY5OTRmLjc1ZDQ4ODIyNGM3YjkwYzAuZDBkNTI4N2FmZDZhNDkxYQogICAgIGFkY2IxNzhlZTZkNTY0ZWIuMTk2ZGRjMmMzNzc4MTIyYi43YTBhMzQ3ZGJmMTQxYzg4LmQyNmQ0MzA2ODYzYTk0ZDMKQEAgLTIzOTE1LDEyICsyMzkxNSwxMiBAQAogICAgIGM2YzFlZDhjYjU4NmY1ZDcKICAgYWZ0ZXIKICAgICBjMGJhMWEzMjUzNzE5ODYxLmMzYWRmNzk0ZTk3Njk5NGYuNzVkNDg4MjI0YzdiOTBjMC5kMGQ1Mjg3YWZkNmE0OTFhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwZDUyODdhNGM3YjkwYzAuNzVkNDg4MjJmZDZhNDkxYQotICAgIDBmYTk5MjFmMGU1YWI5MTcuMWM3OTkwZWRjNDQ3NTg0Zi40NTY3ZTE1NWZhODc5NTllLjkzNjk3MGM1NDA1MWNjM2QKKyAgICBhZGNiMTc4ZWU2ZDU2NGViLjE5NmRkYzJjMzc3ODEyMmIuN2EwYTM0N2RiZjE0MWM4OC5kMjZkNDMwNjg2M2E5NGQzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdhMGEzNDdkYmYxNDFjODguNDkxYTQzMDY4NjNhOTRkMwogICAgIGMxMjEwN2NmZTgwYjU2MTIuMmExYjBlNDMyYjcwYTU2Ni5iNGI5MDk5ODE3ZTBiNzJjLjcwMTdhYTIzYzYzYzJlMDUKICAgICBjNmMxZWQ4Y2I1ODZmNWQ3CiAKLVZQRVJNSUxQU18xMjhfMHhENyhyZWcpCitWUElOU1JXXzEyOF8yb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgZWZiNDM1NmNhOWJiNWY1ZS5hMWZlZjI4YzkwZjRmNTA4LjllYTA1NTliMDk3ZTM2MWQuYTJjYTJhMzEzNTJjM2Q1ZgogICAgIDQ5M2M3ZjMwM2M2OGE2NDYuOGEwZWQwNDAyMTIyNTMyNC5kNDU0NWU1ZmY5ZmU0NzFmLmViNjdiZjBjNmU3NmU1NjIKQEAgLTIzOTI4LDEyICsyMzkyOCwxMiBAQAogICAgIGZiM2EwNTEwYjU1N2JkZWMuZTZmMzUxNDE3MDdhM2I4MC5mNjc5YWFkZjgwODFkN2I3LmZkNzUzNTM4YTIzNTg1OGIKICAgICA3ZjdlMGY2MmQ1YzJmNjA4CiAgIGFmdGVyCi0gICAgZWZiNDM1NmNhOWJiNWY1ZS5hMWZlZjI4YzkwZjRmNTA4LjllYTA1NTliMDk3ZTM2MWQuYTJjYTJhMzEzNTJjM2Q1ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yODgzMjZmZDZhNWM0NDE1LjZhNWM0NDE1Mjg4MzI2ZmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDQ1NDVlNWZmOWZlNDcxZi5lYjY3ZjYwODZlNzZlNTYyCisgICAgNDkzYzdmMzAzYzY4YTY0Ni44YTBlZDA0MDIxMjI1MzI0LmQ0NTQ1ZTVmZjlmZTQ3MWYuZWI2N2JmMGM2ZTc2ZTU2MgogICAgIDJlYTRjNTQyMGQxODA2M2QuNTgxYjFiZDliOGEwMmM5My4yODgzMjZmZDk3N2ExMzE5LjZhNWM0NDE1ZGVjYTY4NjIKICAgICBmYjNhMDUxMGI1NTdiZGVjLmU2ZjM1MTQxNzA3YTNiODAuZjY3OWFhZGY4MDgxZDdiNy5mZDc1MzUzOGEyMzU4NThiCiAgICAgN2Y3ZTBmNjJkNWMyZjYwOAotVlBFUk1JTFBTXzEyOF8weEQ3KG1lbSkKK1ZQSU5TUldfMTI4XzJvZjQobWVtKQogICBiZWZvcmUKICAgICBjYjQyNGQ3ZDk0N2Q3ODA2LjBjNDkzYTA1ZDNiMjA1MDIuMTI2MGVkNjY2NWJkM2QxOC45OTgxZTU3MzUwOWNjZmE0CiAgICAgYmY4ZjZiNzZmYTczYzdiMC5iZTFjNjE4ZDAwYjQxYjI5LmI2MmY2YzMzYjQ3NGVlODYuNmZlOWQ0MjRhMjU5Mzc4YwpAQCAtMjM5NDIsMTIgKzIzOTQyLDEyIEBACiAgICAgYjQ1MGE5MWNiZWQwNjNlNAogICBhZnRlcgogICAgIGNiNDI0ZDdkOTQ3ZDc4MDYuMGM0OTNhMDVkM2IyMDUwMi4xMjYwZWQ2NjY1YmQzZDE4Ljk5ODFlNTczNTA5Y2NmYTQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTk4MWU1NzM2NWJkM2QxOC4xMjYwZWQ2NjUwOWNjZmE0Ci0gICAgMzUyZmU1M2EyNGFmOWUzMy42YjAwNzQxNGRiZTkzYjBlLmIwMmI0ODk0NzlhYjBhZjcuZDNmYjcxNWQxMjQzNGExZAorICAgIGJmOGY2Yjc2ZmE3M2M3YjAuYmUxYzYxOGQwMGI0MWIyOS5iNjJmNmMzM2I0NzRlZTg2LjZmZTlkNDI0YTI1OTM3OGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjYyZjZjMzNiNDc0ZWU4Ni5jZmE0ZDQyNGEyNTkzNzhjCiAgICAgMGJlZjM3YjQyZDNkYmFiYS43MDQxNzEwNmZkZGVhMDVjLmRiMjJmZjc1Y2U2ZjRjOTcuMjEwNGJhOGMzZGU3NDUwMQogICAgIGI0NTBhOTFjYmVkMDYzZTQKIAotVlBFUk1JTFBTXzEyOF8weEQ3KHJlZykKK1ZQSU5TUldfMTI4XzJvZjQocmVnKQogICBiZWZvcmUKICAgICBlYTJiM2Q3YTMyOGFlMjczLjFiOWJkZWNmMzEyYWQ3NzIuMjkyYjUzY2YwNDFlODdjMC4xMmRmMGNjM2QyY2I3MTkxCiAgICAgMWRlMDZmMTAzNGExZmM1YS40M2ZlNTU3OTRkODFiMTg3LmYyMDkxNmRiOGMzNTJjZTUuMzMyZGVjNjg5ZmNjMzUxMgpAQCAtMjM5NTUsMTIgKzIzOTU1LDEyIEBACiAgICAgZWUwY2ExOTg1NDE5ZjNkZS40NzFlYTMyNzNjOWY4YTc2LjI0ZDUzMDZkOGMxYTllMjUuOWVhZjExNmIwNWVhODg1OAogICAgIGEyN2I0ZmEwZDYxZjkwNzUKICAgYWZ0ZXIKLSAgICBlYTJiM2Q3YTMyOGFlMjczLjFiOWJkZWNmMzEyYWQ3NzIuMjkyYjUzY2YwNDFlODdjMC4xMmRmMGNjM2QyY2I3MTkxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI3MjliNzk2MThkOTE5NTEuMThkOTE5NTEyNzI5Yjc5NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMjA5MTZkYjhjMzUyY2U1LjMzMmQ5MDc1OWZjYzM1MTIKKyAgICAxZGUwNmYxMDM0YTFmYzVhLjQzZmU1NTc5NGQ4MWIxODcuZjIwOTE2ZGI4YzM1MmNlNS4zMzJkZWM2ODlmY2MzNTEyCiAgICAgYWJiZDNjNGI2MWEyZWU0NC41ZGU2MTg5ZDlkNGYwMzI0LjI3MjliNzk2MzBiMGNhNzguMThkOTE5NTE1MTdkNTM0NgogICAgIGVlMGNhMTk4NTQxOWYzZGUuNDcxZWEzMjczYzlmOGE3Ni4yNGQ1MzA2ZDhjMWE5ZTI1LjllYWYxMTZiMDVlYTg4NTgKICAgICBhMjdiNGZhMGQ2MWY5MDc1Ci1WUEVSTUlMUFNfMTI4XzB4RDcobWVtKQorVlBJTlNSV18xMjhfMm9mNChtZW0pCiAgIGJlZm9yZQogICAgIGZlMDk0ZmRlZTEyOTI3YzguNDQxYTk5NjFhYTkwNDlkNC5kYjcxNzMwMzQ2N2QwMmE5LjQ1NWE3ZmNhM2RmZmU0OTcKICAgICA4ZjI0OGQxMDQxMTMwODdlLjA3MzMyMDE0ZmU5NTJhZDEuZjZhYzAzMWVkOGY1MjZlOC5lNjA1OWYxYmRmZWNkODdiCkBAIC0yMzk2OSwxMiArMjM5NjksMTIgQEAKICAgICA2MWQ4YmZmNzdlNTcxZDg3CiAgIGFmdGVyCiAgICAgZmUwOTRmZGVlMTI5MjdjOC40NDFhOTk2MWFhOTA0OWQ0LmRiNzE3MzAzNDY3ZDAyYTkuNDU1YTdmY2EzZGZmZTQ5NwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NTVhN2ZjYTQ2N2QwMmE5LmRiNzE3MzAzM2RmZmU0OTcKLSAgICAzMjlhODYyMjEyZWFmMGMyLjk1YTMzMzFiZWRiM2QyODEuNzU5YmNmNjIwZTE0YjM1Zi42MzFmOGNjYTBkNmNiNTdjCisgICAgOGYyNDhkMTA0MTEzMDg3ZS4wNzMzMjAxNGZlOTUyYWQxLmY2YWMwMzFlZDhmNTI2ZTguZTYwNTlmMWJkZmVjZDg3YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNmFjMDMxZWQ4ZjUyNmU4LmU0OTc5ZjFiZGZlY2Q4N2IKICAgICBjMTM1YjUwMDcxYjk5YmMxLjQ4YjZjY2U0MTI3NzdmOTIuMzIwYTUzYmMwMmU1NjUzYy4xOGY3NDM0NTYzMGNiODQ3CiAgICAgNjFkOGJmZjc3ZTU3MWQ4NwogCi1WUEVSTUlMUFNfMTI4XzB4QjUocmVnKQorVlBJTlNSV18xMjhfM29mNChyZWcpCiAgIGJlZm9yZQogICAgIDlhMGRmYzRjZjlkOTIwZWEuMTljMjk2OTY3YThjYzRhNy43ZWI3ZTlkYTBhNmM2YmFlLjBhYzQwYjE5ZDM3NWY4YTgKICAgICAxZWUzZjZiMDcxMWVmYzE5LjE2MGRhNWQwNDg2ZjI5OWYuOTFmMzg1Njk3MDFlZDM4MS5kOTk3NzQ2MzliY2YyN2QyCkBAIC0yMzk4MiwxMiArMjM5ODIsMTIgQEAKICAgICA3Y2EyMTI1NWM2MjMzMjkyLjcwMGMzZWUwYTU5NzkxNzcuYzE0ZDJiMDJmN2ViMDZmZi5jZGIzNDY3MzgxMTE0YzBhCiAgICAgYTk5NWE3MTBkNzEyYmE3MgogICBhZnRlcgotICAgIDlhMGRmYzRjZjlkOTIwZWEuMTljMjk2OTY3YThjYzRhNy43ZWI3ZTlkYTBhNmM2YmFlLjBhYzQwYjE5ZDM3NWY4YTgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTAxYWYzYjhkZWI3OWRmZC43YzRkMDk4ODdjNGQwOTg4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkxZjM4NTY5NzAxZWJhNzIuZDk5Nzc0NjM5YmNmMjdkMgorICAgIDFlZTNmNmIwNzExZWZjMTkuMTYwZGE1ZDA0ODZmMjk5Zi45MWYzODU2OTcwMWVkMzgxLmQ5OTc3NDYzOWJjZjI3ZDIKICAgICA0YmE2YTk4ZjgxYjNlZWMzLjk1ZTI1ZTlhZjg2ZjgzZDYuZGViNzlkZmRlMDFhZjNiOC43YzRkMDk4ODc2ZmZhZmU0CiAgICAgN2NhMjEyNTVjNjIzMzI5Mi43MDBjM2VlMGE1OTc5MTc3LmMxNGQyYjAyZjdlYjA2ZmYuY2RiMzQ2NzM4MTExNGMwYQogICAgIGE5OTVhNzEwZDcxMmJhNzIKLVZQRVJNSUxQU18xMjhfMHhCNShtZW0pCitWUElOU1JXXzEyOF8zb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgZWNiZmE5NGI5NDBlYjQ0NS4wZDIzMmM2ZmRiZmIwMzMyLjg0NTljMDhmNmJmNDBkYWYuOTcwMTJkZTU1MTFkNDkwMQogICAgIDcyZmRjNjEwZDYwZmY3YjIuNTk3NWYzNDc1ZGM2OWU1MC5hZDkzNjA5MTY3OTFiNGFhLmJhMjE5ZTEwODkzZGY4NmIKQEAgLTIzOTk2LDEyICsyMzk5NiwxMiBAQAogICAgIDhmZjk2NDgxN2ZhNGUyY2UKICAgYWZ0ZXIKICAgICBlY2JmYTk0Yjk0MGViNDQ1LjBkMjMyYzZmZGJmYjAzMzIuODQ1OWMwOGY2YmY0MGRhZi45NzAxMmRlNTUxMWQ0OTAxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk3MDEyZGU1NTExZDQ5MDEuNmJmNDBkYWY2YmY0MGRhZgotICAgIDE3MWI3YzRiYjYyMzNlZTMuYmVlMzYzNGFlNzEwM2Y5OC5jNzg3OWFkNGI0N2E0MjkzLjg3Zjg3YWYxM2JkNjRlZTgKKyAgICA3MmZkYzYxMGQ2MGZmN2IyLjU5NzVmMzQ3NWRjNjllNTAuYWQ5MzYwOTE2NzkxYjRhYS5iYTIxOWUxMDg5M2RmODZiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFkOTM2MDkxNDkwMWI0YWEuYmEyMTllMTA4OTNkZjg2YgogICAgIGI3ZTQ0NmU4NTI1NTQ3MDQuOTdiYjc4ZTUxNTY2MjJiNS5hZTAxZWI0MzZmYmM3Mzk3LjVhZDFiZGYyMDQ3NTg4MjUKICAgICA4ZmY5NjQ4MTdmYTRlMmNlCiAKLVZQRVJNSUxQU18xMjhfMHhCNShyZWcpCitWUElOU1JXXzEyOF8zb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgODJiYzZhMDk0OWYxOTg4ZS4yZTI1YTFkNGM2YjJjYzQzLjNmNDcyZjgzODU1MjgyNTQuM2VjZGNlYzliMzYyMDJlMQogICAgIDhmNjZjYmY1ZmRlOGU1MTIuNThhYTA3ZjkyZDQ1OGFjOS4xNGQ0ODM5MGQwNjM5YzIxLjUzYjdiZjU0OWQ3OGFjOWUKQEAgLTI0MDA5LDEyICsyNDAwOSwxMiBAQAogICAgIDY3OWY4ZWFlOTUwMTM3MTQuMzViMGU5YTI0NTNlOWY2MS5iMTIwZjNhNjZjMWRlZGYyLjdjMTNiYjI2ZDEyNTQwMjAKICAgICA0NzFmYmY0NjUzZDVhMjNkCiAgIGFmdGVyCi0gICAgODJiYzZhMDk0OWYxOTg4ZS4yZTI1YTFkNGM2YjJjYzQzLjNmNDcyZjgzODU1MjgyNTQuM2VjZGNlYzliMzYyMDJlMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NDIyYWNjNzcwYWU3MDc3LmM5OGEzYWNmYzk4YTNhY2YKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTRkNDgzOTBkMDYzYTIzZC41M2I3YmY1NDlkNzhhYzllCisgICAgOGY2NmNiZjVmZGU4ZTUxMi41OGFhMDdmOTJkNDU4YWM5LjE0ZDQ4MzkwZDA2MzljMjEuNTNiN2JmNTQ5ZDc4YWM5ZQogICAgIDEyNDM4M2IzMzgxNDA2MDUuMTEzZmY2NDVhMzFhM2NjNS43MGFlNzA3Nzk0MjJhY2M3LmM5OGEzYWNmNDgwYjJkZmEKICAgICA2NzlmOGVhZTk1MDEzNzE0LjM1YjBlOWEyNDUzZTlmNjEuYjEyMGYzYTY2YzFkZWRmMi43YzEzYmIyNmQxMjU0MDIwCiAgICAgNDcxZmJmNDY1M2Q1YTIzZAotVlBFUk1JTFBTXzEyOF8weEI1KG1lbSkKK1ZQSU5TUldfMTI4XzNvZjQobWVtKQogICBiZWZvcmUKICAgICAwODc4YzExOWViMjQwZjdjLmVhYzVlOTUyYjEzYmI0ZWIuOWZjOTVkZmUyZmJjNmZjOS4zMTc4MDY4OGY1ZGY5YzUwCiAgICAgOWFlYjNkOGNiNDIwNDIwYS5mNzAzOGYwYzI3NGZiODM1LjJkNTVjYzQ0N2NhMDY4MmEuNGUwMGE3OGFjYmY1ZjU4YgpAQCAtMjQwMjMsMTIgKzI0MDIzLDEyIEBACiAgICAgZTNiNmIxODAyZWEyNTIyNQogICBhZnRlcgogICAgIDA4NzhjMTE5ZWIyNDBmN2MuZWFjNWU5NTJiMTNiYjRlYi45ZmM5NWRmZTJmYmM2ZmM5LjMxNzgwNjg4ZjVkZjljNTAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzE3ODA2ODhmNWRmOWM1MC4yZmJjNmZjOTJmYmM2ZmM5Ci0gICAgZDk0M2FmOGNjYmQ1ZjkxMi5lYWEzN2M0Njk0Yzg4MDlmLmJhMjFiNDYwNDhmNzQ1YjAuNjIwNmQxMTY4OWVhMzQ0ZgorICAgIDlhZWIzZDhjYjQyMDQyMGEuZjcwMzhmMGMyNzRmYjgzNS4yZDU1Y2M0NDdjYTA2ODJhLjRlMDBhNzhhY2JmNWY1OGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmQ1NWNjNDQ5YzUwNjgyYS40ZTAwYTc4YWNiZjVmNThiCiAgICAgYTA0ZTk0MDM0YjRlZWVjMi4xZmYyYWQ2ZDkzMzM0N2Q0LjIyZmE5MDNlYjBjY2MzODYuY2JkNDgwOTljYjRhOTQ0OQogICAgIGUzYjZiMTgwMmVhMjUyMjUKIAotVlBFUk1JTFBTXzEyOF8weEI1KHJlZykKK1ZQSU5TUldfMTI4XzNvZjQocmVnKQogICBiZWZvcmUKICAgICAwN2ZhNWUzNTRkN2RhYThlLmNkZDY2N2RmNTA5N2RkNDMuZjIzYzFjZWVjMDFhNGI4MS40MGFhZGNjYWNmMmI5ZWQ5CiAgICAgOTNlYjg1MjZjNTY3ZDczMS4zYmE5YTQwYmY3YmM4NGM0LmJmY2NjNzMzYjgwY2M2NTIuZjJmZDE0ZjBjMjIxOTJkNQpAQCAtMjQwMzYsMTIgKzI0MDM2LDEyIEBACiAgICAgNTQwMzJmNjgyZTlhYTNkMy40OTViNGMwMjlhY2NlNTcwLmI2ZjJiZWJlNzgzYTEzMGQuN2VjMTM5YmI5MmZmYjM3NgogICAgIDExYzgxZTM3YTcwMDU5NzMKICAgYWZ0ZXIKLSAgICAwN2ZhNWUzNTRkN2RhYThlLmNkZDY2N2RmNTA5N2RkNDMuZjIzYzFjZWVjMDFhNGI4MS40MGFhZGNjYWNmMmI5ZWQ5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE3OTJmNWYyZTFmMGE5YWEuMTNjMWI1OWMxM2MxYjU5YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZmNjYzczM2I4MGM1OTczLmYyZmQxNGYwYzIyMTkyZDUKKyAgICA5M2ViODUyNmM1NjdkNzMxLjNiYTlhNDBiZjdiYzg0YzQuYmZjY2M3MzNiODBjYzY1Mi5mMmZkMTRmMGMyMjE5MmQ1CiAgICAgZTRkNDIxYmUzMWVkMTZiOS5jNTkxYzc3MjVjY2E5ZDZmLmUxZjBhOWFhMTc5MmY1ZjIuMTNjMWI1OWNhNGI5NWFhNQogICAgIDU0MDMyZjY4MmU5YWEzZDMuNDk1YjRjMDI5YWNjZTU3MC5iNmYyYmViZTc4M2ExMzBkLjdlYzEzOWJiOTJmZmIzNzYKICAgICAxMWM4MWUzN2E3MDA1OTczCi1WUEVSTUlMUFNfMTI4XzB4QjUobWVtKQorVlBJTlNSV18xMjhfM29mNChtZW0pCiAgIGJlZm9yZQogICAgIGE3YTNlMGZlMDBjNzA3YzkuNDBjMmE5OTI1N2ZhYmEyYi5hMmQyYjBhNmNkY2UxN2Y0Ljk5MWYwM2RiNzc4ZjVlNTEKICAgICAxYjFlZjlmYWI4NjE3YWEzLjA0NWU4ZGE3NDk5YTk2NmMuYWJjNDZlNGExMmRkZjAyNy5lNWMzNzI2ZGIxMWUwZjY4CkBAIC0yNDA1MCwxMiArMjQwNTAsMTIgQEAKICAgICBkZjcxOWQxOWQ1OTllYzVhCiAgIGFmdGVyCiAgICAgYTdhM2UwZmUwMGM3MDdjOS40MGMyYTk5MjU3ZmFiYTJiLmEyZDJiMGE2Y2RjZTE3ZjQuOTkxZjAzZGI3NzhmNWU1MQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45OTFmMDNkYjc3OGY1ZTUxLmNkY2UxN2Y0Y2RjZTE3ZjQKLSAgICA0YjA1ZTcxOWViZDg2ZTJmLmZjMjNkNjEzOWYwNTc0NDMuNDJmYzAyZGI4NDA0MmMzNC5mODJhMDllMGMxNzI2NWZlCisgICAgMWIxZWY5ZmFiODYxN2FhMy4wNDVlOGRhNzQ5OWE5NjZjLmFiYzQ2ZTRhMTJkZGYwMjcuZTVjMzcyNmRiMTFlMGY2OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYmM0NmU0YTVlNTFmMDI3LmU1YzM3MjZkYjExZTBmNjgKICAgICAxMTI0MjU0NmI2M2I5Zjk2Ljg0NWM4MDQzZjVjODkwNWIuNDE0NWU4NDM0MDRmODc0OC4yZGEwYzNhMDQ0MTc5YmMwCiAgICAgZGY3MTlkMTlkNTk5ZWM1YQogCi1WUEVSTUlMUFNfMTI4XzB4ODUocmVnKQorVlBJTlNSV18xMjhfNG9mNChyZWcpCiAgIGJlZm9yZQogICAgIDZjZTg5MWI4MTE4NTk1NzcuNGE0NzJmNmQzNTkzYzgwNi5mODU3ODhhMWU4NmQyNTYxLjg2NmM5ZDZmNjJjYmJkOGUKICAgICAyZTUyOWRlNzkzNjdkMWM0LmQzMzk4MTdhODNlZWE2YWIuYjU1ZWU4OWExNDgyNzEwMS5lYjNkOWI0YzA0ODM4OTM0CkBAIC0yNDA2MywxMiArMjQwNjMsMTIgQEAKICAgICBjNTJmZWFhOWRiMzlmNTlkLjQwYmRlZWY2ZmRkYTcwNDMuNzRjM2E1MGU4NDJiMThiZC44OTBkNjdjNTNlZDlkNTQ5CiAgICAgNzlhMzJkM2EwZDhlY2UxMgogICBhZnRlcgotICAgIDZjZTg5MWI4MTE4NTk1NzcuNGE0NzJmNmQzNTkzYzgwNi5mODU3ODhhMWU4NmQyNTYxLjg2NmM5ZDZmNjJjYmJkOGUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTQ5M2FlZTY0NTg0YTg2My40ZDg0NjBjNDRkODQ2MGM0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI1NWVjZTEyMTQ4MjcxMDEuZWIzZDliNGMwNDgzODkzNAorICAgIDJlNTI5ZGU3OTM2N2QxYzQuZDMzOTgxN2E4M2VlYTZhYi5iNTVlZTg5YTE0ODI3MTAxLmViM2Q5YjRjMDQ4Mzg5MzQKICAgICA4M2ZiYmMxM2Y4YzlkZGVkLjg2Yzc5ODU5YmM1N2Y1YjEuMTRiZTllOWIxNDkzYWVlNi40ZDg0NjBjNDQ1ODRhODYzCiAgICAgYzUyZmVhYTlkYjM5ZjU5ZC40MGJkZWVmNmZkZGE3MDQzLjc0YzNhNTBlODQyYjE4YmQuODkwZDY3YzUzZWQ5ZDU0OQogICAgIDc5YTMyZDNhMGQ4ZWNlMTIKLVZQRVJNSUxQU18xMjhfMHg4NShtZW0pCitWUElOU1JXXzEyOF80b2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgZmExNDJjMGZjZWFmNGRlYS41MjNhMjMxNGQ5NDI1NTgwLmRlZTcwMTNkNjI4NGQ0OGQuMzBiOWZhNjEwMWQ2ZWQzMQogICAgIGU5MmFlMjMwOWM0OTBlZmMuODQ2ODY0YzA4ZDcxMzk0NC4zYTExNGQxYjA2NjBkZGJkLmE0ZWM5N2ZmMjYyMDY3ZWYKQEAgLTI0MDc3LDEyICsyNDA3NywxMiBAQAogICAgIGU4ZTlmZmQzYTEzNDBmOWIKICAgYWZ0ZXIKICAgICBmYTE0MmMwZmNlYWY0ZGVhLjUyM2EyMzE0ZDk0MjU1ODAuZGVlNzAxM2Q2Mjg0ZDQ4ZC4zMGI5ZmE2MTAxZDZlZDMxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRlZTcwMTNkMzBiOWZhNjEuZGVlNzAxM2QwMWQ2ZWQzMQotICAgIDIwYjJjYTg5OTQ2N2NmNzQuYjgwNGE4MTk5NDUxZGM5My4zMTA3NGM3YTA1N2I0N2ZkLjJjYTc3YTU0OTA5NmMyYTMKKyAgICBlOTJhZTIzMDljNDkwZWZjLjg0Njg2NGMwOGQ3MTM5NDQuM2ExMTRkMWIwNjYwZGRiZC5hNGVjOTdmZjI2MjA2N2VmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVkMzE0ZDFiMDY2MGRkYmQuYTRlYzk3ZmYyNjIwNjdlZgogICAgIDdjNzg2MDA2ZDExNjRhODAuNGI1Y2ViOGI4OTZlN2IxOS45Zjk0N2M0ODdjZTBjZDc5LjI0Mzg5ZWNjZGJjMzNjZjgKICAgICBlOGU5ZmZkM2ExMzQwZjliCiAKLVZQRVJNSUxQU18xMjhfMHg4NShyZWcpCitWUElOU1JXXzEyOF80b2Y0KHJlZykKICAgYmVmb3JlCiAgICAgZDQwNzk5ZDU4MTc0NzgzNy5kOTQ4MjE5MzZmNjEzYzQ5Ljk3YmEyOTgyMDg1NTUxODMuNjE4NjU4NzA4NjliMmM1ZQogICAgIDQzZGU2OTNlMTQwZmIzNzkuMTNlZDg3MWM4YjU0NjFmZS5mOTZiNWY2YWFlOTE5YzdkLjUxYTc1Y2RkNDBiOTIwZDgKQEAgLTI0MDkwLDEyICsyNDA5MCwxMiBAQAogICAgIDFmZTc5OGY2Yzk4NzhkOWUuOGVlYTM4ZDNhYzYzMzJkNy43MGY1OWZiZGRlMzk3YmNmLjJlYTljYzNiMzI0YmI2MzkKICAgICBkMzIyMzEwM2EyZDdkMDc4CiAgIGFmdGVyCi0gICAgZDQwNzk5ZDU4MTc0NzgzNy5kOTQ4MjE5MzZmNjEzYzQ5Ljk3YmEyOTgyMDg1NTUxODMuNjE4NjU4NzA4NjliMmM1ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xN2FlOTZiMmM1NDQ2NTEyLjRjYzQwNDdkNGNjNDA0N2QKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjk2YmQwNzhhZTkxOWM3ZC41MWE3NWNkZDQwYjkyMGQ4CisgICAgNDNkZTY5M2UxNDBmYjM3OS4xM2VkODcxYzhiNTQ2MWZlLmY5NmI1ZjZhYWU5MTljN2QuNTFhNzVjZGQ0MGI5MjBkOAogICAgIDkzYmE2YTdhZjk5MWZiMGQuMDYzNTEwOGU0MWZjNzRjOS5jZGJiODdhZjE3YWU5NmIyLjRjYzQwNDdkYzU0NDY1MTIKICAgICAxZmU3OThmNmM5ODc4ZDllLjhlZWEzOGQzYWM2MzMyZDcuNzBmNTlmYmRkZTM5N2JjZi4yZWE5Y2MzYjMyNGJiNjM5CiAgICAgZDMyMjMxMDNhMmQ3ZDA3OAotVlBFUk1JTFBTXzEyOF8weDg1KG1lbSkKK1ZQSU5TUldfMTI4XzRvZjQobWVtKQogICBiZWZvcmUKICAgICAxN2ZhYWVjMjMxZjY2ZWZjLjQyYjBlZjFjMjI3Y2E1ZDguODdkOTc5ZDllODk4NTc1My4zYzY3YTMwMTlmYmQ4OTdmCiAgICAgZDZmZmJmNjJmZGIzNGVmMS41YTYyNmM1YWEwZmQ3ZjY5LmNkY2U1MDhiMTJhNDllNjkuOGU1YjhkZTVmN2M2ZmE2ZgpAQCAtMjQxMDQsMTIgKzI0MTA0LDEyIEBACiAgICAgNDA0MjhmOTI5ZDdiZmM3NQogICBhZnRlcgogICAgIDE3ZmFhZWMyMzFmNjZlZmMuNDJiMGVmMWMyMjdjYTVkOC44N2Q5NzlkOWU4OTg1NzUzLjNjNjdhMzAxOWZiZDg5N2YKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODdkOTc5ZDkzYzY3YTMwMS44N2Q5NzlkOTlmYmQ4OTdmCi0gICAgZWNmYmUxZDAxZjFiMmE4Mi5jMjRhMDkxYmRlOTU1NmZiLjNjOTUzYWQ0NDU5NWM0NDcuYzIxZjViZDc4MWUxMGI0YgorICAgIGQ2ZmZiZjYyZmRiMzRlZjEuNWE2MjZjNWFhMGZkN2Y2OS5jZGNlNTA4YjEyYTQ5ZTY5LjhlNWI4ZGU1ZjdjNmZhNmYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODk3ZjUwOGIxMmE0OWU2OS44ZTViOGRlNWY3YzZmYTZmCiAgICAgMzViYjhlZjliNTM5YmZkYy5kNWIyYzRjYTc4ZDA2NzNhLmIwZmFiMmEyOWU3Nzg1MTcuMzRmZDA3NDJkYTk5ZjhiZQogICAgIDQwNDI4ZjkyOWQ3YmZjNzUKIAotVlBFUk1JTFBTXzEyOF8weDg1KHJlZykKK1ZQSU5TUldfMTI4XzRvZjQocmVnKQogICBiZWZvcmUKICAgICA0MjM5ZWYzMzY3MTE1NDFiLjhkMGI0NGM3ZGIxOWM4MmEuZjFlNjk4ZDUwYjNiZWVkMy4wNWM4MzRlMDM4NTQ5ZDA1CiAgICAgOTYzMDIxOTFkM2VhM2M1ZC5kMGI3N2UyOGFjYzgwMjk5LjcwMzQ4MmE3MzM2MTI2NzIuMTdjYzNkN2EzMDNhYzczZgpAQCAtMjQxMTcsMTIgKzI0MTE3LDEyIEBACiAgICAgYTQ0YWYwMzQwMzhlYWI2NC44NjUyNmY0ZmMwYzBmOTg5LjBiNGE4NDUwYWYwZTljNzAuZTJhN2QwNzNhODRmNDQ0MQogICAgIDUzMTU1M2E5NjA5NjBmNjIKICAgYWZ0ZXIKLSAgICA0MjM5ZWYzMzY3MTE1NDFiLjhkMGI0NGM3ZGIxOWM4MmEuZjFlNjk4ZDUwYjNiZWVkMy4wNWM4MzRlMDM4NTQ5ZDA1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhiY2U0Y2MyYTEzNGMwZWUuYzJkMzQ3NWRjMmQzNDc1ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MDM0MGY2MjMzNjEyNjcyLjE3Y2MzZDdhMzAzYWM3M2YKKyAgICA5NjMwMjE5MWQzZWEzYzVkLmQwYjc3ZTI4YWNjODAyOTkuNzAzNDgyYTczMzYxMjY3Mi4xN2NjM2Q3YTMwM2FjNzNmCiAgICAgOTg3MTIzMTg3ZThmZWZlNy5kYThhYjgwNjQ0NTEyOTU0LmIwZTc3Y2FjOGJjZTRjYzIuYzJkMzQ3NWRhMTM0YzBlZQogICAgIGE0NGFmMDM0MDM4ZWFiNjQuODY1MjZmNGZjMGMwZjk4OS4wYjRhODQ1MGFmMGU5YzcwLmUyYTdkMDczYTg0ZjQ0NDEKICAgICA1MzE1NTNhOTYwOTYwZjYyCi1WUEVSTUlMUFNfMTI4XzB4ODUobWVtKQorVlBJTlNSV18xMjhfNG9mNChtZW0pCiAgIGJlZm9yZQogICAgIGYwZTg0ZGVjZTUxNWRjN2QuMTYwNTg0NTFmZjcyYTk4MS5iMmQ5MWVlZTNiMjIyZDYxLmRlYWE5NTAwM2NhZTUyMjgKICAgICA5N2VlMzgyNjU1ZDk2OGJmLjRhZWZkYmRjMGRjNzI4ZTkuMzllYzQwY2ZkMjgyODIwYi44NjUzYWIyNmNkM2FhOTk1CkBAIC0yNDEzMSwxMiArMjQxMzEsMTIgQEAKICAgICAwY2ZjZTU5Y2I0ZDhkMWQ1CiAgIGFmdGVyCiAgICAgZjBlODRkZWNlNTE1ZGM3ZC4xNjA1ODQ1MWZmNzJhOTgxLmIyZDkxZWVlM2IyMjJkNjEuZGVhYTk1MDAzY2FlNTIyOAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMmQ5MWVlZWRlYWE5NTAwLmIyZDkxZWVlM2NhZTUyMjgKLSAgICAyM2YxOTI0NWM5ZWQ2ZjU0LjljNTRmMjNmYzkxYTYzNDkuZjc1NzU0ZGVhMGVjYjRiMS41ZDkxYzMzMGZmM2NkZTYzCisgICAgOTdlZTM4MjY1NWQ5NjhiZi40YWVmZGJkYzBkYzcyOGU5LjM5ZWM0MGNmZDI4MjgyMGIuODY1M2FiMjZjZDNhYTk5NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41MjI4NDBjZmQyODI4MjBiLjg2NTNhYjI2Y2QzYWE5OTUKICAgICA2ZmJmZDYzNDVmNWVhYzY3LjY3N2ZjNGU4ZDBmNjk1NGMuYzdlNmQzMDdjMjZkN2Y3Zi5jMGIwZDc4ODZlNDIyZDQwCiAgICAgMGNmY2U1OWNiNGQ4ZDFkNQogCi1WUEVSTUlMUFNfMTI4XzB4MjkocmVnKQorVkJST0FEQ0FTVFNTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDliYzBlOGQ2NzA4ODA4ZDEuNTkyMjgwZGUzMzM2ZGMyNS4wOWJlNGQ0MWJlZThmYWEwLjg3NjUzYjM3NTMxMDllYTIKICAgICBjYTQ5ZGRhNDNiZTAwYmRlLmJjZTcwZDMxNWY4M2JiYmEuZGQ1Yjg5YjgyZTdiZDBlZS4xMTlmMDY1ODcwZTJjZTQ2CkBAIC0yNDE0NSwxMSArMjQxNDUsMTEgQEAKICAgICAwYmFlOWJhMTIzZTQxYWVkCiAgIGFmdGVyCiAgICAgOWJjMGU4ZDY3MDg4MDhkMS41OTIyODBkZTMzMzZkYzI1LjA5YmU0ZDQxYmVlOGZhYTAuODc2NTNiMzc1MzEwOWVhMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNGVkY2I5NmJjM2I1MWU1LmJjM2I1MWU1NDM2MmIyNTgKKyAgICBjYTQ5ZGRhNDNiZTAwYmRlLmJjZTcwZDMxNWY4M2JiYmEuZGQ1Yjg5YjgyZTdiZDBlZS4xMTlmMDY1ODcwZTJjZTQ2CiAgICAgZjVlM2JlNzFiMzZjMTlhOC43M2Q5ZjcxODAyNTEwNTUxLjNmYTQ3NGI4YmMzYjUxZTUuNDM2MmIyNTgzNGVkY2I5NgogICAgIDc5ZGE4OWE5NzRiNzZjZGQuNWNjNmJjODAzNmFiNzUxNy44YWUzMGJhZDA1YjViYTJmLmY4NzhiYjIxYmMzZjUwYmYKICAgICAwYmFlOWJhMTIzZTQxYWVkCi1WUEVSTUlMUFNfMTI4XzB4MjkobWVtKQorVkJST0FEQ0FTVFNTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDVhZDBkMGMzODZlN2U1NGIuYjA3YTM5YjgxOTRkNDEyNi41MTc5ZDc1MzE3OWRjODM3LjFjNjU0OTAzYTQ3MzQ3NzgKICAgICBiZmFhZDU3MjAwNTQ2ZDA1LmY3MGZjYTBiM2ZiYWQ0MzIuMzBiZGM0N2VjMjMzYmFkZS40Zjc1MmEyNjM2MDQzMzZkCkBAIC0yNDE1OCwxMiArMjQxNTgsMTIgQEAKICAgICA0ZWY5Nzg5NmIyMTQ4ZjBhCiAgIGFmdGVyCiAgICAgNWFkMGQwYzM4NmU3ZTU0Yi5iMDdhMzliODE5NGQ0MTI2LjUxNzlkNzUzMTc5ZGM4MzcuMWM2NTQ5MDNhNDczNDc3OAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNzlkYzgzNzFjNjU0OTAzLmE0NzM0Nzc4MTc5ZGM4MzcKKyAgICBhNDczNDc3OGE0NzM0Nzc4LmE0NzM0Nzc4YTQ3MzQ3NzguYTQ3MzQ3NzhhNDczNDc3OC5hNDczNDc3OGE0NzM0Nzc4CiAgICAgMTcwNzI2OWNhZDM3NmQ0OS5hYWU0MzkwYzgxOGI2MWFiLmQzNWYwMGVkNTI3YTA2MzcuODE2MWFhODM1NmYxYmJiYQogICAgIDNmYjUzZjJjYWE5ZGEyNDEuMjU0NzgwMjg3YjRiMjMzZC4xODJiMDY4ZGU0N2Q2OTZmLjBkNzNjNjg0YTFjODFiMGEKICAgICA0ZWY5Nzg5NmIyMTQ4ZjBhCiAKLVZQRVJNSUxQU18xMjhfMHgyOShyZWcpCitWQlJPQURDQVNUU1NfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYTIzZGJlMjYyNjYyNTI2Ni4xMTdlOWQwZjEzOTFjODE5LmM0ODI5ZGNjY2E4NjU3OTYuZDllZDUyNDg5MzQ4OWZiMgogICAgIDYzOGM5NDllOTgzZGExYzkuNmIyZmJhMmYwMzIwOWFmZS5lM2UyOGI2MjBhYzkzODVmLmYzNzE2MDBjN2NlODY0MmIKQEAgLTI0MTcyLDExICsyNDE3MiwxMSBAQAogICAgIGYwN2ZlZmMwYTczYTYyOTcKICAgYWZ0ZXIKICAgICBhMjNkYmUyNjI2NjI1MjY2LjExN2U5ZDBmMTM5MWM4MTkuYzQ4MjlkY2NjYTg2NTc5Ni5kOWVkNTI0ODkzNDg5ZmIyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJhNjg3MzA3ZDU5ZjA0NDcuZDU5ZjA0NDc0MzgyYWNjNAorICAgIDYzOGM5NDllOTgzZGExYzkuNmIyZmJhMmYwMzIwOWFmZS5lM2UyOGI2MjBhYzkzODVmLmYzNzE2MDBjN2NlODY0MmIKICAgICBlZTMxZjQ2Y2E1MzFiOGRmLjI3OTQxNDc5OTY1NGQ1MWMuZGViMzQ3NThkNTlmMDQ0Ny40MzgyYWNjNGJhNjg3MzA3CiAgICAgYTA3YWRjZmJlOGNiZDI1Ni4yMjc5MjdkOWU5M2MzNTllLjExNDFjYjE5Y2E5NWY1ZjguYTNlZWIzNWM2YWQ1ODk3MQogICAgIGYwN2ZlZmMwYTczYTYyOTcKLVZQRVJNSUxQU18xMjhfMHgyOShtZW0pCitWQlJPQURDQVNUU1NfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMDYwMmRlZGM4ZGEzYjlhMi5kM2IyNDZiN2ZlOTYyZGQ3LjM4YTk2ZDNjMTdlMTc2YjEuZDdkNzE1MTE4MzM1NDgxZQogICAgIGMyNDNmYzljMzkxZDRiYzAuZTQyNDMxMGM4MjFlMDIxMS40NmYyNjQ4ZDNkNTE1MzgwLjhlYzMyMGFiOWMwZTM4NjcKQEAgLTI0MTg1LDEyICsyNDE4NSwxMiBAQAogICAgIGViN2FhMDg3NDM1YTE0YzEKICAgYWZ0ZXIKICAgICAwNjAyZGVkYzhkYTNiOWEyLmQzYjI0NmI3ZmU5NjJkZDcuMzhhOTZkM2MxN2UxNzZiMS5kN2Q3MTUxMTgzMzU0ODFlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE3ZTE3NmIxZDdkNzE1MTEuODMzNTQ4MWUxN2UxNzZiMQorICAgIDgzMzU0ODFlODMzNTQ4MWUuODMzNTQ4MWU4MzM1NDgxZS44MzM1NDgxZTgzMzU0ODFlLjgzMzU0ODFlODMzNTQ4MWUKICAgICBmZTBlYzNlY2M3YjJkNDFkLjMwMWQ5NjY2MTBmMDkwYWUuMjYxZTg2Yjc3Njk3ODkzOC45MTRmZTg1NmIyYTkwMjdjCiAgICAgOTcyZWIxYjg1MjcxMTBlNS4xMWU5NzIzMTQ1OTcxMTViLmI1ZmE1MWE4ZGZjMGQ0MDUuM2NjODY5N2I2MDk0ZTIwYwogICAgIGViN2FhMDg3NDM1YTE0YzEKIAotVlBFUk1JTFBTXzEyOF8weDI5KHJlZykKK1ZCUk9BRENBU1RTU18yNTYocmVnKQogICBiZWZvcmUKICAgICBmOWIxODhlNmY2ODhkNDQ3LjY5NzE0MWVkZjY2M2JhNDMuZTRkNGMyZDliZDlmYzJjMy5jZjUyNDE0YjkzZDdmMDEyCiAgICAgYzRiODFkMDUxNmE5NWQ0Yi41MGExZWY3NWQwOTY4ZjYzLjA1MmE4MWNiMTI5NWRmOTMuNTBmMmQwOGNhZmU4OTg4YwpAQCAtMjQxOTksMTEgKzI0MTk5LDExIEBACiAgICAgZDU3OTE4M2I4NzcyMzUzZAogICBhZnRlcgogICAgIGY5YjE4OGU2ZjY4OGQ0NDcuNjk3MTQxZWRmNjYzYmE0My5lNGQ0YzJkOWJkOWZjMmMzLmNmNTI0MTRiOTNkN2YwMTIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGVmZjg5OWVlMzA0YTQ3Ni5lMzA0YTQ3NjE0YTY3YzU3CisgICAgYzRiODFkMDUxNmE5NWQ0Yi41MGExZWY3NWQwOTY4ZjYzLjA1MmE4MWNiMTI5NWRmOTMuNTBmMmQwOGNhZmU4OTg4YwogICAgIGE3ZGQ1YjRlM2U0OWViNzkuMjg4YjM3M2VmYzE1NGI3Mi5kMTM2YWI3MWUzMDRhNDc2LjE0YTY3YzU3NGVmZjg5OWUKICAgICBmZDZhM2YyZjBhZjRiYzdjLmNkZmI5NjMzOTRlZGFhOWMuYTI0NjNkMzljYTc4NGMxOS5mNzNhYzA5ODhkMjk3ZTc1CiAgICAgZDU3OTE4M2I4NzcyMzUzZAotVlBFUk1JTFBTXzEyOF8weDI5KG1lbSkKK1ZCUk9BRENBU1RTU18yNTYobWVtKQogICBiZWZvcmUKICAgICA4YTMwMDEyZDU4ZTQ2ODIxLjI0YWNjMzEyMTczNzBhMDEuMWJiZDg3NDBiNzI5NjcwZC5kNWE0MzE4ZDYzN2UxNDI4CiAgICAgZjIyYmY1NTgxZDhkZDQ0ZS43NmVmZTU2NTAxOWQxMmI0LmVlOWQ4NjUwN2ZkNTNmZjAuYzY5ZDg1ZGI0YmExMzc0ZQpAQCAtMjQyMTIsMTIgKzI0MjEyLDEyIEBACiAgICAgYTUyMTk0ZDNmMTMyMjEwNgogICBhZnRlcgogICAgIDhhMzAwMTJkNThlNDY4MjEuMjRhY2MzMTIxNzM3MGEwMS4xYmJkODc0MGI3Mjk2NzBkLmQ1YTQzMThkNjM3ZTE0MjgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjcyOTY3MGRkNWE0MzE4ZC42MzdlMTQyOGI3Mjk2NzBkCisgICAgNjM3ZTE0Mjg2MzdlMTQyOC42MzdlMTQyODYzN2UxNDI4LjYzN2UxNDI4NjM3ZTE0MjguNjM3ZTE0Mjg2MzdlMTQyOAogICAgIGU5MzY3MmFhZjI3OTM0ZWYuNTE3ZmEwOTM2M2IzMTA0MC4yMjY2MGY1MTA4ZmVlZTcxLmQxN2QzNDhlMWQ2ZWYzMzgKICAgICA0YjFkZjMwZGYyYjI0NTMxLjBmYThmMTA4ZDkwNDNmNTEuOTNlNTllMmY2ZmFmMmZiZC41MjkwM2ExMjc2NmY4MjkxCiAgICAgYTUyMTk0ZDNmMTMyMjEwNgogCi1WQkxFTkRQU18xMjhfMW9mMyhyZWcpCitWUEFMSUdOUl8xMjhfMW9mMyhyZWcpCiAgIGJlZm9yZQogICAgIDI2N2UzYzNkMmI0MzBiNDMuZjRhY2Y0NmYzOTQ2YzM0MC4wZWI1ZDIzMDAwMWNkZDk1LjFkZTdiMGQ0Y2ZmNGJmMDAKICAgICAzMWYxMzBiY2JmMmQ3ZGYzLmJmYWVmMmJiZTQ0MDZhNDcuYThmNDQxNzc3NDg4MjNiNi45YjM2YzAyZDQ0ZGE1YTY1CkBAIC0yNDIyNSwxMiArMjQyMjUsMTIgQEAKICAgICA1NTRjZWFhYTY3YmNlOTVlLjMwM2ZkMWMxZDQ5ODIxZWYuMjEzM2I2MTNiMDg5OWU0MC5lOGVkY2FhY2UwYjZhMDQ4CiAgICAgNmVlZWJkYTkzZWM1YzMxZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hOGY0NDE3Nzc0ODgyM2I2LjliMzZjMDJkNDRkYTVhNjUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2JhZjM5NGFkMGQzNTA2MC5lYjlmNGEyNmVjNmNiYjE5CiAgICAgMzFmMTMwYmNiZjJkN2RmMy5iZmFlZjJiYmU0NDA2YTQ3LmE4ZjQ0MTc3NzQ4ODIzYjYuOWIzNmMwMmQ0NGRhNWE2NQogICAgIDIyYzc2YmJkNDk3Y2IzYzMuOGFmMTY3ZGQwZWFkZjU3My4zYmFmMzk0YWQwZDM1MDYwLmViOWY0YTI2ZWM2Y2JiMTkKICAgICA1NTRjZWFhYTY3YmNlOTVlLjMwM2ZkMWMxZDQ5ODIxZWYuMjEzM2I2MTNiMDg5OWU0MC5lOGVkY2FhY2UwYjZhMDQ4CiAgICAgNmVlZWJkYTkzZWM1YzMxZAotVkJMRU5EUFNfMTI4XzFvZjMobWVtKQorVlBBTElHTlJfMTI4XzFvZjMobWVtKQogICBiZWZvcmUKICAgICA1ODZjOWQwYjIyYTRlMGM1LjI1Y2NhN2YxYjI3YTVhNzEuOGQ2NWFiNTM1MjBlYWFlOC5iN2NjYjUzZmIxMzc0YTAyCiAgICAgODQzNWU4YmRhNzVmYjU2Yi5mMDkzYTBmY2M4NDE0M2E3LjdjMmY3MjdmYTIxOTRjODkuNWFjNjMxM2I2ZTY4OTA1MQpAQCAtMjQyNDAsMTEgKzI0MjQwLDExIEBACiAgIGFmdGVyCiAgICAgNTg2YzlkMGIyMmE0ZTBjNS4yNWNjYTdmMWIyN2E1YTcxLjhkNjVhYjUzNTIwZWFhZTguYjdjY2I1M2ZiMTM3NGEwMgogICAgIDg0MzVlOGJkYTc1ZmI1NmIuZjA5M2EwZmNjODQxNDNhNy43YzJmNzI3ZmEyMTk0Yzg5LjVhYzYzMTNiNmU2ODkwNTEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2MyZjcyN2ZhMjE5NGM4OS5iN2NjYjUzZmIxMzc0YTAyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY4OTA1MThkNjVhYjUzNTIuMGVhYWU4YjdjY2I1M2ZiMQogICAgIDBlZDNhZGMwMDU5YjcyNjMuZTQyNTMzMTNjMzFjNmQyZi44NGRlYjM1NjJlMjRjOTc2LjMyMGM5MDRmOGU4NGQ5NDgKICAgICAyMGYwNmI0MDI5ODc1NDQ4CiAKLVZCTEVORFBTXzEyOF8xb2YzKHJlZykKK1ZQQUxJR05SXzEyOF8xb2YzKHJlZykKICAgYmVmb3JlCiAgICAgOGI2NWIzYjBmMDNkNTg4Ni4yNTQwMWZlYTE3MzNkMjBlLmM0ODhjNmY1ZTE0NzI1ZDkuNTU1YjI2ZDhhMTNhMWQxOQogICAgIGNkYjc2NTBiN2YzMzIzYWQuZWMyOGVhMTUzOWQ4ZDk2Ni4wZjYyODM0ZDM5YWI0NTU2LjI5YWM3NWE1NTgxODc5MTUKQEAgLTI0MjUyLDEyICsyNDI1MiwxMiBAQAogICAgIDQ5MjJmNDMyNjgwY2Y4NjguZmU5NTgxMTkyNDc3Y2NkMy41MmFiNzAwZDA4NTFhYzdhLjQ5ZmE5OWNjMDA1NTNjYzcKICAgICA0ZDhmNjRmZjI5Y2QxYmQ1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBmNjI4MzRkMzlhYjQ1NTYuMjlhYzc1YTU1ODE4NzkxNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMGZmNjg4NjY3ZDUwOTUyLmRiOWQxZGE3NmVjNzlhOTYKICAgICBjZGI3NjUwYjdmMzMyM2FkLmVjMjhlYTE1MzlkOGQ5NjYuMGY2MjgzNGQzOWFiNDU1Ni4yOWFjNzVhNTU4MTg3OTE1CiAgICAgNDMzMjdjYmQ3NGY0ZWY2YS40MTU2OGMyYjhhOTU0MzlhLjIwZmY2ODg2NjdkNTA5NTIuZGI5ZDFkYTc2ZWM3OWE5NgogICAgIDQ5MjJmNDMyNjgwY2Y4NjguZmU5NTgxMTkyNDc3Y2NkMy41MmFiNzAwZDA4NTFhYzdhLjQ5ZmE5OWNjMDA1NTNjYzcKICAgICA0ZDhmNjRmZjI5Y2QxYmQ1Ci1WQkxFTkRQU18xMjhfMW9mMyhtZW0pCitWUEFMSUdOUl8xMjhfMW9mMyhtZW0pCiAgIGJlZm9yZQogICAgIGM1MjhmZDJjMDUzYmYyZWIuM2JkMmNhZDdmOTA4N2M1NC4wMWIyNDNjYjIzODkzMDQwLjAzYjE5ODRjYjdhOTZiN2EKICAgICA4YjkwZGQzZmIxYWM3ZTM2Ljc1OTBmOTE2YzM3M2I1ZGEuMjQ3OTUwMmVhNGQ3MmEwYi44ZDVmZGFiMDExNmI4MmZkCkBAIC0yNDI2NywxMSArMjQyNjcsMTEgQEAKICAgYWZ0ZXIKICAgICBjNTI4ZmQyYzA1M2JmMmViLjNiZDJjYWQ3ZjkwODdjNTQuMDFiMjQzY2IyMzg5MzA0MC4wM2IxOTg0Y2I3YTk2YjdhCiAgICAgOGI5MGRkM2ZiMWFjN2UzNi43NTkwZjkxNmMzNzNiNWRhLjI0Nzk1MDJlYTRkNzJhMGIuOGQ1ZmRhYjAxMTZiODJmZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNDc5NTAyZWE0ZDcyYTBiLjAzYjE5ODRjYjdhOTZiN2EKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmI4MmZkMDFiMjQzY2IyMy44OTMwNDAwM2IxOTg0Y2I3CiAgICAgNzUwMDY2YzdlOGM1YTQxOS4zMTYxNTExNjZmYzczOTYyLjNlMzUzOGIzOWE1OGQyNmQuYTBkZWExOTgzNDViYTczZgogICAgIGUxNDgxZGY0MzVhMTJkNTUKIAotVkJMRU5EUFNfMTI4XzFvZjMocmVnKQorVlBBTElHTlJfMTI4XzFvZjMocmVnKQogICBiZWZvcmUKICAgICA2Yjg5YTUyNDUxODBmYjllLjUwYTAwNzE1YWE4NWI2MGEuNmIwZDc0YWY4YWM5ZmJiYy5lY2MxMGJhZTQ3YTNmOTVjCiAgICAgOWNlYzMzOTYyMzg1NGNjOC5lYTQwZTBmOGFjNzc2ZGRmLjVkZjVkZjkyNGQ2OTYzNjAuMmIyODE5MDllNTViYTY1OQpAQCAtMjQyNzksMTIgKzI0Mjc5LDEyIEBACiAgICAgNWU0YzU2ZWQ1YjJlNmE2OS5jY2FmMmIzMWRlMjJiOWU3LmQ5YWQ4MmViM2RiODE0MzUuY2RiMmQzOGY2NzNmODQzMAogICAgIGU3NmU3NzkyODI4MzJkNjEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWRmNWRmOTI0ZDY5NjM2MC4yYjI4MTkwOWU1NWJhNjU5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYzNjc5MDJkNTUzNWFkZmEuZDgzNGRkYjA5MThhOTU5MQogICAgIDljZWMzMzk2MjM4NTRjYzguZWE0MGUwZjhhYzc3NmRkZi41ZGY1ZGY5MjRkNjk2MzYwLjJiMjgxOTA5ZTU1YmE2NTkKICAgICBjZWJmYzViNTQ3M2I1ZDdjLjFmYWM2ZTVlMDlhNzg1YzUuNjM2NzkwMmQ1NTM1YWRmYS5kODM0ZGRiMDkxOGE5NTkxCiAgICAgNWU0YzU2ZWQ1YjJlNmE2OS5jY2FmMmIzMWRlMjJiOWU3LmQ5YWQ4MmViM2RiODE0MzUuY2RiMmQzOGY2NzNmODQzMAogICAgIGU3NmU3NzkyODI4MzJkNjEKLVZCTEVORFBTXzEyOF8xb2YzKG1lbSkKK1ZQQUxJR05SXzEyOF8xb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgMDIzNDQ2YTVmZjY0NGQ1MS5hOWUwZTJhYWY4ZWJhZjM5LmNiMTc5NTVmNDZmM2M2NzIuMWExNWIxMzhhMjdmZDZiZQogICAgIGZhY2ZiYWI1ZjllZGEwMmIuMDljNzY2NThiY2ZkNjc5OS5mOWFlMjdkMzVlMjc2ODkyLjg0ZTkxYTgwMWYxNDJkNDAKQEAgLTI0Mjk0LDExICsyNDI5NCwxMSBAQAogICBhZnRlcgogICAgIDAyMzQ0NmE1ZmY2NDRkNTEuYTllMGUyYWFmOGViYWYzOS5jYjE3OTU1ZjQ2ZjNjNjcyLjFhMTViMTM4YTI3ZmQ2YmUKICAgICBmYWNmYmFiNWY5ZWRhMDJiLjA5Yzc2NjU4YmNmZDY3OTkuZjlhZTI3ZDM1ZTI3Njg5Mi44NGU5MWE4MDFmMTQyZDQwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY5YWUyN2QzNWUyNzY4OTIuMWExNWIxMzhhMjdmZDZiZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNDJkNDBjYjE3OTU1ZjQ2LmYzYzY3MjFhMTViMTM4YTIKICAgICBmMmI4ODY3OGQ1MjljZDUwLjdiYmU0MzM4Mjc1MTIzYjcuNTI5Y2I0M2MwY2U1NWEzZi40MDA4ODZiMmQzZGU4Y2UyCiAgICAgNDllYTgyNzM0MjJhMGM1OQogCi1WQkxFTkRQU18xMjhfMm9mMyhyZWcpCitWUEFMSUdOUl8xMjhfMm9mMyhyZWcpCiAgIGJlZm9yZQogICAgIGViNmFhN2UwMzk3NTEyNzkuYTk5ZGQ2MDNlZmYzMjBmMi40NTY2OTQ0MjA3YWI5ZWNkLjM1OGJhNzBiZGE4ODIyMjQKICAgICA4MWQyZjI2NDU1NGNkOWYwLmFkODhiYjNiZjc5Njk1MmYuOTY5MGNjZWM3ZDhhN2UyMy5iN2Q5YjJjZmM4YmQ2ZTRlCkBAIC0yNDMwNiwxMiArMjQzMDYsMTIgQEAKICAgICBmODhkZTY2MDY5Y2I5ZThkLjBiYTAzOTVmM2Y5NGQ4MjguMzg5ZGUzZDU5YzA5NTczZS4wOGM2MDBlOTcxMGQ4NjIwCiAgICAgOGZmYzNjMTg2NTQxYzkyMAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NjkwY2NlYzI1N2JmYzY1LmI0NTQ1MTc1YzhiZDZlNGUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjJjZmM4YmQ2ZTRlYzg4OS5lOGE0MjU3YmZjNjViNDU0CiAgICAgODFkMmYyNjQ1NTRjZDlmMC5hZDg4YmIzYmY3OTY5NTJmLjk2OTBjY2VjN2Q4YTdlMjMuYjdkOWIyY2ZjOGJkNmU0ZQogICAgIDY2NmY1ZDZhMzEzYTlmNjguZGE0NWIzMGIwODFkZTkzMi5jODg5ZThhNDI1N2JmYzY1LmI0NTQ1MTc1ZjE5MGZjZTkKICAgICBmODhkZTY2MDY5Y2I5ZThkLjBiYTAzOTVmM2Y5NGQ4MjguMzg5ZGUzZDU5YzA5NTczZS4wOGM2MDBlOTcxMGQ4NjIwCiAgICAgOGZmYzNjMTg2NTQxYzkyMAotVkJMRU5EUFNfMTI4XzJvZjMobWVtKQorVlBBTElHTlJfMTI4XzJvZjMobWVtKQogICBiZWZvcmUKICAgICAyNWMyODBlY2U5Mzg4MDE0LjkxNzg4OWIxOWE4YjEyMGMuMWU2NGM5MjNiNzA3MWUzZC40MjE4YjllYTdkYzBjOTViCiAgICAgYTZlNDQ4NTMxOGZjNjgyOS44ZjdjNDBjOTYwMDczOTkxLmVlNWZlMDQzOGQ4Mzc2OWMuNDI0NjY2NTE2NTJkOTA2NwpAQCAtMjQzMjEsMTEgKzI0MzIxLDExIEBACiAgIGFmdGVyCiAgICAgMjVjMjgwZWNlOTM4ODAxNC45MTc4ODliMTlhOGIxMjBjLjFlNjRjOTIzYjcwNzFlM2QuNDIxOGI5ZWE3ZGMwYzk1YgogICAgIGE2ZTQ0ODUzMThmYzY4MjkuOGY3YzQwYzk2MDA3Mzk5MS5lZTVmZTA0MzhkODM3NjljLjQyNDY2NjUxNjUyZDkwNjcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWU2NGM5MjM4ZDgzNzY5Yy40MjQ2NjY1MTdkYzBjOTViCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjljNDI0NjY2NTE2NTJkOTAuNjcxZTY0YzkyM2I3MDcxZQogICAgIGQ4NmI1NTg2ZTgyMWJiNjUuMjZmZWRlZmUxODYxOGI1Yi4zNTI1OGY0N2MxYzQ0ZmVhLjk0ZWEzNmMyYjg1NzA3ZmYKICAgICA5ZWY4NTFhNTViMmMzMGUyCiAKLVZCTEVORFBTXzEyOF8yb2YzKHJlZykKK1ZQQUxJR05SXzEyOF8yb2YzKHJlZykKICAgYmVmb3JlCiAgICAgMGRlYTMzODg3NGU2OWQ2NS40MjY4OTEyYmMyOTg5ZGU0Ljc3MTRiZGYzNDM1NzJlZjguNjQ4OTIwMDM1N2ExNDgzMQogICAgIDNmMDlkOGQ4YTAxMThhMzMuMDdmMTQyMTJiNjBlYTAzMy45YzczYTI2MDcyMzk3NDRjLmJmNTIyN2NjYmJiNzQzNzMKQEAgLTI0MzMzLDEyICsyNDMzMywxMiBAQAogICAgIDU5MDY1ZDcwYTBlY2QyNjIuMTFkN2YxNTc2MjI1ZjlmNC5kMzNjNmE0ZTRlZWRkM2MyLjZlNDc4OTMxNWFiYTMyOTUKICAgICA3ODBiZGJhNmNlYzE5ZGNmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjljNzNhMjYwNDI5MTk3MDAuMjQ0ZTIxOGNiYmI3NDM3MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yN2NjYmJiNzQzNzNmMjY3Ljg3YWY0MjkxOTcwMDI0NGUKICAgICAzZjA5ZDhkOGEwMTE4YTMzLjA3ZjE0MjEyYjYwZWEwMzMuOWM3M2EyNjA3MjM5NzQ0Yy5iZjUyMjdjY2JiYjc0MzczCiAgICAgOGZhNDNkMDI3YjNhMzJmOS4wM2QyZTMyN2UzOGY4MDdmLmYyNjc4N2FmNDI5MTk3MDAuMjQ0ZTIxOGMwODEwZmRkYgogICAgIDU5MDY1ZDcwYTBlY2QyNjIuMTFkN2YxNTc2MjI1ZjlmNC5kMzNjNmE0ZTRlZWRkM2MyLjZlNDc4OTMxNWFiYTMyOTUKICAgICA3ODBiZGJhNmNlYzE5ZGNmCi1WQkxFTkRQU18xMjhfMm9mMyhtZW0pCitWUEFMSUdOUl8xMjhfMm9mMyhtZW0pCiAgIGJlZm9yZQogICAgIDIwNjQ5M2Q3ODAzMGZiYjMuZjk3YjM0OTBhYmI0YTYxYy4wZmNjZTY4YzUyZGVjNmJkLjljM2Q0NmE3MzNkOTY2M2UKICAgICA0MTFmMmRiMDhiMTMwODZkLmNhNGViZWNkMzkxZGU5ZDAuZDg3YzQwYjNjY2M2YTQwNi5hYWI4MTcyODhjZGY4YTIwCkBAIC0yNDM0OCwxMSArMjQzNDgsMTEgQEAKICAgYWZ0ZXIKICAgICAyMDY0OTNkNzgwMzBmYmIzLmY5N2IzNDkwYWJiNGE2MWMuMGZjY2U2OGM1MmRlYzZiZC45YzNkNDZhNzMzZDk2NjNlCiAgICAgNDExZjJkYjA4YjEzMDg2ZC5jYTRlYmVjZDM5MWRlOWQwLmQ4N2M0MGIzY2NjNmE0MDYuYWFiODE3Mjg4Y2RmOGEyMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZmNjZTY4Y2NjYzZhNDA2LmFhYjgxNzI4MzNkOTY2M2UKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDZhYWI4MTcyODhjZGY4YS4yMDBmY2NlNjhjNTJkZWM2CiAgICAgNWRlYWY5MGExZDY2MWUxNi43NDQxZGM0ZTRkMDJiMGRkLjNhNDExMDg4ZDQ1MDgyY2MuMDA0Nzg5NGYwYzZmNzhjMwogICAgIDAxZjQyMWNkNmIwZmI5ZGUKIAotVkJMRU5EUFNfMTI4XzJvZjMocmVnKQorVlBBTElHTlJfMTI4XzJvZjMocmVnKQogICBiZWZvcmUKICAgICBiNjRhOWYyMmFlZmI3YzBkLjEwOTMyMjYzZGNlZTlmNWMuMDNmOTY4NmEwYTk3YWE4Yy44YmVkN2YwZTk5MGFmYTlmCiAgICAgN2I5NWZmYmE3MmJmZmRmZi5hZGNkMWQxNDY1MWFiZjI5LjM1NDA5NzUzYmFmZDA1ZTcuMTg4NTQxMzY1YTIzNzNhMwpAQCAtMjQzNjAsMTIgKzI0MzYwLDEyIEBACiAgICAgYTUzODUxNjRlYWZjMjdkNi4xMTI3N2EyZjQzOTBjYTA3LmVlYWFjZjNkNjE2ZWM5NTAuNTJhOGIzMWMzZTlmNTdlZAogICAgIGI3Y2M1YmIyOTkxYjNhOGIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzU0MDk3NTNmOGMxZmI5YS5iYmQ1ZDRlYzVhMjM3M2EzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxMzY1YTIzNzNhMzY1NjEuNjU3NWY4YzFmYjlhYmJkNQogICAgIDdiOTVmZmJhNzJiZmZkZmYuYWRjZDFkMTQ2NTFhYmYyOS4zNTQwOTc1M2JhZmQwNWU3LjE4ODU0MTM2NWEyMzczYTMKICAgICBhYzIwM2IwMTUyZTY3NzVlLjBlNjU2NzBhZDRmNzM5YTkuNjU2MTY1NzVmOGMxZmI5YS5iYmQ1ZDRlYzMyYTZhOTA0CiAgICAgYTUzODUxNjRlYWZjMjdkNi4xMTI3N2EyZjQzOTBjYTA3LmVlYWFjZjNkNjE2ZWM5NTAuNTJhOGIzMWMzZTlmNTdlZAogICAgIGI3Y2M1YmIyOTkxYjNhOGIKLVZCTEVORFBTXzEyOF8yb2YzKG1lbSkKK1ZQQUxJR05SXzEyOF8yb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgYzcwYjQ2OWE1ZjI1MGUwOS5jMjJhM2I0ZGQ3OGQ0OTE1LjkwZGZkNDcxZDFmMjJlNmYuMmU2NWQwMTU5MDkwYWFiNgogICAgIDVmMzJmMmMwYWRjYThlOTQuNWY0MGY4MmFiNDI2MTljNC42ODU5ZjBiYTk3MjgyMTBmLjdmZGY2NDZhMjJiNGRjNzgKQEAgLTI0Mzc1LDExICsyNDM3NSwxMSBAQAogICBhZnRlcgogICAgIGM3MGI0NjlhNWYyNTBlMDkuYzIyYTNiNGRkNzhkNDkxNS45MGRmZDQ3MWQxZjIyZTZmLjJlNjVkMDE1OTA5MGFhYjYKICAgICA1ZjMyZjJjMGFkY2E4ZTk0LjVmNDBmODJhYjQyNjE5YzQuNjg1OWYwYmE5NzI4MjEwZi43ZmRmNjQ2YTIyYjRkYzc4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkwZGZkNDcxOTcyODIxMGYuN2ZkZjY0NmE5MDkwYWFiNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZjdmZGY2NDZhMjJiNGRjLjc4OTBkZmQ0NzFkMWYyMmUKICAgICA5MjY4N2E3NzRmMTI4NTgwLjg5MGFkMzZjYjE5ZGIxMjkuOTRjMjVmMTY0MTQwYTJhMS5jODQwMzUzZGRkMmYxZGJkCiAgICAgNzdiZjZiOTIzZTlmYTY5YQogCi1WQkxFTkRQU18xMjhfM29mMyhyZWcpCitWUEFMSUdOUl8xMjhfM29mMyhyZWcpCiAgIGJlZm9yZQogICAgIGE5MmMyNDE0NzE0MDZlODEuZTYwZTRmZGZkYmNkNzQzOS5jZTU3ZWJhYTA4OTRmMjM1LjlmNDlhYTAwNWMzYmE5ZWMKICAgICBiOGQ0NWMyZjEzOWViMjIxLjMyY2RkMzM2NWY1M2ZmYWYuMDNmOGM0OGJiZmMyZDE2My43M2MyYTdhMjIxM2EyZTFlCkBAIC0yNDM4NywxMiArMjQzODcsMTIgQEAKICAgICBlMTA2M2FlMDEzYzM5ZDM3LjFkYzFkZDVkYmRlZWRjN2YuYWM2YWFhZTZiZmY1NTdkNS5lN2JhYThiZTE2NzZhNWU1CiAgICAgM2VkMGE0MTE3ZmNhMGZkMgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NDNhNWE3YjczYjQ4OTVmLjczYzJhN2EyMjEzYTJlMWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmZjMmQxNjM3M2MyYTdhMi4yMTNhMmUxZTg0M2E1YTdiCiAgICAgYjhkNDVjMmYxMzllYjIyMS4zMmNkZDMzNjVmNTNmZmFmLjAzZjhjNDhiYmZjMmQxNjMuNzNjMmE3YTIyMTNhMmUxZQogICAgIDAxMDQwZjRmYzA0NmFkMjQuNTA2Zjg0NjZmN2FmZTMwZC44NDNhNWE3YjczYjQ4OTVmLmVkZjlkMmU4YWI0YWVlNjIKICAgICBlMTA2M2FlMDEzYzM5ZDM3LjFkYzFkZDVkYmRlZWRjN2YuYWM2YWFhZTZiZmY1NTdkNS5lN2JhYThiZTE2NzZhNWU1CiAgICAgM2VkMGE0MTE3ZmNhMGZkMgotVkJMRU5EUFNfMTI4XzNvZjMobWVtKQorVlBBTElHTlJfMTI4XzNvZjMobWVtKQogICBiZWZvcmUKICAgICBjZTA5NDFjYjAyNTJlNzU2LmIyMjdkNzRlYThhMWJjMDUuNzU5MDViMDZkMDFiYTYzMi5kOWQyYWUzOTQwMTE3NzZmCiAgICAgNzMyZmZlZGFiYTFiZWE5ZC5kMWIyZTQwNTFjNmQ0NzNiLjM0YTU3ODRkNDk0MmZjNTIuNjZiZTY0ZGU5MTk0MjRkYwpAQCAtMjQ0MDIsMTEgKzI0NDAyLDExIEBACiAgIGFmdGVyCiAgICAgY2UwOTQxY2IwMjUyZTc1Ni5iMjI3ZDc0ZWE4YTFiYzA1Ljc1OTA1YjA2ZDAxYmE2MzIuZDlkMmFlMzk0MDExNzc2ZgogICAgIDczMmZmZWRhYmExYmVhOWQuZDFiMmU0MDUxYzZkNDczYi4zNGE1Nzg0ZDQ5NDJmYzUyLjY2YmU2NGRlOTE5NDI0ZGMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzU5MDViMDZkMDFiYTYzMi5kOWQyYWUzOTQwMTE3NzZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE1Nzg0ZDQ5NDJmYzUyNjYuYmU2NGRlOTE5NDI0ZGM3NQogICAgIDZjNzVjMWEzM2E5ZTYxMjIuNjkzYTNjZmYxMGZjOGY4ZC41N2Q5ODQ2NWUzYjAzZTg4LjBmNTZkM2QyMTUwMjE4ZGEKICAgICBlNDlhODVmODdmMDNkN2MzCiAKLVZCTEVORFBTXzEyOF8zb2YzKHJlZykKK1ZQQUxJR05SXzEyOF8zb2YzKHJlZykKICAgYmVmb3JlCiAgICAgODg5MmQ4MjIyYTljMTMyZS43ODJkYmYzNjNhNzA0Y2I4LjlhY2U3ZTFhYzdkOGM1MDIuNzM4ZTZhMGYzYjBlYTNmNQogICAgIDU5OGJjOGJiYjI1ODA5YzcuMDkwM2NjY2RlMGIyNTJjMS44YWZlMjAyZWNkZDE1NzhlLjY2YmJlMDA2NmI5Nzg0N2YKQEAgLTI0NDE0LDEyICsyNDQxNCwxMiBAQAogICAgIGVlYWY2ZmVhYzY2YjEyMzAuMmEzODAxYjc4Y2I4OWVkYi4xMjVjNzFmMTM0NGI3ZDlkLjQxYWQ2ZThmYzA1N2FjOWEKICAgICBlMTBhN2RmOTFlYTY2YjgyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkzMTMxZGE3YmQ3MzgwZGUuNjZiYmUwMDY2Yjk3ODQ3ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jZGQxNTc4ZTY2YmJlMDA2LjZiOTc4NDdmOTMxMzFkYTcKICAgICA1OThiYzhiYmIyNTgwOWM3LjA5MDNjY2NkZTBiMjUyYzEuOGFmZTIwMmVjZGQxNTc4ZS42NmJiZTAwNjZiOTc4NDdmCiAgICAgYjJkMTUxMmZiMmM0ZjUzOS5mYmMyNjQ1NDQ3NzEyZjY5LjkzMTMxZGE3YmQ3MzgwZGUuMGMyYzYzMzc4ZTU2OWU1MgogICAgIGVlYWY2ZmVhYzY2YjEyMzAuMmEzODAxYjc4Y2I4OWVkYi4xMjVjNzFmMTM0NGI3ZDlkLjQxYWQ2ZThmYzA1N2FjOWEKICAgICBlMTBhN2RmOTFlYTY2YjgyCi1WQkxFTkRQU18xMjhfM29mMyhtZW0pCitWUEFMSUdOUl8xMjhfM29mMyhtZW0pCiAgIGJlZm9yZQogICAgIGM4MGYwYzYwYzM1MDk3MzYuNmI3MzFmNTg4YmQ5OWQ1YS43MjJmMjFlMmNhOTM1YzQzLjYzMjQxOTc4Y2RlNDhhNzgKICAgICBkMTg3OTdiMmNjNjFlY2UzLjgzNjc1YmU1OWQ5YmQyNjAuYWU3NDNlYzExZTBmMjVjZi5lMWI2MTBhODI1Y2JlMzFiCkBAIC0yNDQyOSwxMSArMjQ0MjksMTEgQEAKICAgYWZ0ZXIKICAgICBjODBmMGM2MGMzNTA5NzM2LjZiNzMxZjU4OGJkOTlkNWEuNzIyZjIxZTJjYTkzNWM0My42MzI0MTk3OGNkZTQ4YTc4CiAgICAgZDE4Nzk3YjJjYzYxZWNlMy44MzY3NWJlNTlkOWJkMjYwLmFlNzQzZWMxMWUwZjI1Y2YuZTFiNjEwYTgyNWNiZTMxYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MjJmMjFlMmNhOTM1YzQzLjYzMjQxOTc4Y2RlNDhhNzgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzQzZWMxMWUwZjI1Y2ZlMS5iNjEwYTgyNWNiZTMxYjcyCiAgICAgYmUwNDkzYzQ3OWU0ZmZkNy5mODEzNmQwZDE1NDgyOWI3Ljc3MTc2NTRjNzUxN2M3ZmQuZDk2Y2RiYjM3ZmIwNjc2NwogICAgIDBhMjdhNzY3YmFjNjBhNjgKIAotVkJMRU5EUFNfMTI4XzNvZjMocmVnKQorVlBBTElHTlJfMTI4XzNvZjMocmVnKQogICBiZWZvcmUKICAgICBkOWRkYjM3MzI0NWFlYWUxLjU5YTBmYjVjNTQ3MDM2NzYuMGM2MjM5N2ZiNDRjYzM1Zi5iYjBlNjVjZmIyYmMxOGY4CiAgICAgYTJkOWY5NDU1OGY3NDE3ZC44NmUwNTA4ZTAzOTI4NmJlLjJjMTE4M2MxMGZkM2Y3OTQuNjM4MjU0Yjc3MzMxNjNjNgpAQCAtMjQ0NDEsMTIgKzI0NDQxLDEyIEBACiAgICAgOTFkNzI5ZTc4ZjdkNDZkMS4wYjdiYWQ3MTRiYzg1ZmY3LjAxYzM3ZTYxNmI5YjFiNTcuNTQxNWVjNjNmN2JjZGI4OQogICAgIDUzY2I4ZWZmZjFlYTdmZDcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjU2ZTQ2M2RjMzY5MDAwMy42MzgyNTRiNzczMzE2M2M2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBmZDNmNzk0NjM4MjU0YjcuNzMzMTYzYzZiNTZlNDYzZAogICAgIGEyZDlmOTQ1NThmNzQxN2QuODZlMDUwOGUwMzkyODZiZS4yYzExODNjMTBmZDNmNzk0LjYzODI1NGI3NzMzMTYzYzYKICAgICBjMTY5Nzc0N2YyMmE0Y2VhLjIzOGYwYzQ3YTE1NmFhZGEuYjU2ZTQ2M2RjMzY5MDAwMy40ZDQxYWRlZmQ2ODM2NjkyCiAgICAgOTFkNzI5ZTc4ZjdkNDZkMS4wYjdiYWQ3MTRiYzg1ZmY3LjAxYzM3ZTYxNmI5YjFiNTcuNTQxNWVjNjNmN2JjZGI4OQogICAgIDUzY2I4ZWZmZjFlYTdmZDcKLVZCTEVORFBTXzEyOF8zb2YzKG1lbSkKK1ZQQUxJR05SXzEyOF8zb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgMjgyZjBkYWZlMDE5MGRhNy43MDcwMDk5MGNiN2Y2Y2UxLjE5NmVhZWY5MWNmNTYxNDAuNmQ1ZTI3OThhNGY0ODQzZAogICAgIGFkMGNlNzVmZTE1MzQyMjYuYjk4MDE1YWU0MWI5ZmFjMy4yYjM1OGJjYzMwZTg2YmUyLjU1ODkzZTRlMDkwMDc3NjEKQEAgLTI0NDU2LDExICsyNDQ1NiwxMSBAQAogICBhZnRlcgogICAgIDI4MmYwZGFmZTAxOTBkYTcuNzA3MDA5OTBjYjdmNmNlMS4xOTZlYWVmOTFjZjU2MTQwLjZkNWUyNzk4YTRmNDg0M2QKICAgICBhZDBjZTc1ZmUxNTM0MjI2LmI5ODAxNWFlNDFiOWZhYzMuMmIzNThiY2MzMGU4NmJlMi41NTg5M2U0ZTA5MDA3NzYxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE5NmVhZWY5MWNmNTYxNDAuNmQ1ZTI3OThhNGY0ODQzZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNThiY2MzMGU4NmJlMjU1Ljg5M2U0ZTA5MDA3NzYxMTkKICAgICAzYjY1OTk2Zjg3MWU5MWRmLmY4MzU5ZWY5NGMwYTNlYjQuYzc2ZmNhZmY5NDUxOGFkZi4wYWMyYTJlN2M4NjNlOTExCiAgICAgOGU2N2U5YTI1YmQxZTFmNQogCi1WQkxFTkRQRF8xMjhfMW9mMihyZWcpCitWTU9WU0RfUkVHX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIGZlY2U4YzhjOGEyMzUyYzcuZmM3ODZhYTg2NGM2MjM3MS5hNjcyMTNmZjE5Mzk2YjFhLjA5N2EyNDM4MWJkZjE3OTMKICAgICBiNjQxODkxMmYxZTQ3YTMzLmRkMzU4NTkwYzNhYTRiNjIuMmY1NWE0Mjk5MWQxZjAwMy5iZjg5NGE2YjU2NjQ5YzRmCkBAIC0yNDQ2OCwxMiArMjQ0NjgsMTIgQEAKICAgICA2ZTdlN2U5ZWRhZTRkOTg3LjczZGQ4OTIxNzU1NzRmMTAuM2U0MDA2OWRmMDZkZjAxMC5mMmUxZWI2ZjU1ODA4MTkyCiAgICAgMjljNDVlMTk1MjJmNTg3MAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yZjU1YTQyOTkxZDFmMDAzLmJmODk0YTZiNTY2NDljNGYKLSAgICBiNjQxODkxMmYxZTQ3YTMzLmRkMzU4NTkwYzNhYTRiNjIuMmY1NWE0Mjk5MWQxZjAwMy5iZjg5NGE2YjU2NjQ5YzRmCisgICAgZmVjZThjOGM4YTIzNTJjNy5mYzc4NmFhODY0YzYyMzcxLmE2NzIxM2ZmMTkzOTZiMWEuMDk3YTI0MzgxYmRmMTc5MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNjcyMTNmZjE5Mzk2YjFhLmYyZTFlYjZmNTU4MDgxOTIKICAgICAxMjBkZGI5ZTJkYTA5M2U0LmJjNjg2NjE1YmZkNmM2ZGUuZWQyYjRiZTQ0ZjVlMDgxYy5jMzY3Yjk4NDYwZWFkNjQwCiAgICAgNmU3ZTdlOWVkYWU0ZDk4Ny43M2RkODkyMTc1NTc0ZjEwLjNlNDAwNjlkZjA2ZGYwMTAuZjJlMWViNmY1NTgwODE5MgogICAgIDI5YzQ1ZTE5NTIyZjU4NzAKLVZCTEVORFBEXzEyOF8xb2YyKG1lbSkKK1ZNT1ZTRF9SRUdfWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgNDJkYThkNmM3MjA1MTgwNi4yNmUwNmU3YzkzM2I4YWM3LmRmNWY2YWEyMDAzOGE0MjUuN2NlMGQwYmUwZjg5ZTQ4ZAogICAgIDFhZWZmNDU1ZDIwZDdkODIuOTY3ZmE4YTZmNDMyZTA1MS5kZGJjODY4MzdkODY3ZjQ5LjA1NTdhNmI1NDkzZTIwM2MKQEAgLTI0NDgzLDExICsyNDQ4MywxMSBAQAogICBhZnRlcgogICAgIDQyZGE4ZDZjNzIwNTE4MDYuMjZlMDZlN2M5MzNiOGFjNy5kZjVmNmFhMjAwMzhhNDI1LjdjZTBkMGJlMGY4OWU0OGQKICAgICAxYWVmZjQ1NWQyMGQ3ZDgyLjk2N2ZhOGE2ZjQzMmUwNTEuZGRiYzg2ODM3ZDg2N2Y0OS4wNTU3YTZiNTQ5M2UyMDNjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRkYmM4NjgzN2Q4NjdmNDkuN2NlMGQwYmUwZjg5ZTQ4ZAorICAgIDhkZDExMGMxOGU1NDQzMGQuMTlhNzI2ODc5YTU0MTdkMS40N2JlNThiMDA3NGM5Y2E3LjMzZjE4MmVkMzkxOWUwY2IKICAgICA3ODRhNWI5YWMwZTQyNWQ2LjBkYTNlNjhiMjAyZDZkZjIuZmEzMjVjMTViYTk2Yjk2Yi42NGY5NjJkMjdiYTU1ZmU2CiAgICAgZjJiZDQxZDBhYzZlZGEzOQogCi1WQkxFTkRQRF8xMjhfMW9mMihyZWcpCitWTU9WU0RfUkVHX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIDNhODcxYzUzNjgwMThjNmYuYjUyODUzY2U4N2NjZTAwNy5jZGMwZTMxZTIzNDkxYzYxLmQyZTQwZTllYjM3MDkwYzMKICAgICA5OGE0ZWRjNzRhZTliMzM0LjIxMzU3MzQ4ZmMxNTMwY2MuYjU0YTFhYWMzZTM1NjFjOS5hYmEwZWEzNzBlZTdkZWQ4CkBAIC0yNDQ5NSwxMiArMjQ0OTUsMTIgQEAKICAgICAwNzA3NjYzM2YxZTk0YTFmLmY2MGYxY2JlNjZmZjdlYzUuNmNkNTIyNmEyZWFiOWMzNi5kMTY1MTI0YTU3ZGFjZWYwCiAgICAgZDUwNjU1OWM3ZTZlZTg0OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNTRhMWFhYzNlMzU2MWM5LmFiYTBlYTM3MGVlN2RlZDgKLSAgICA5OGE0ZWRjNzRhZTliMzM0LjIxMzU3MzQ4ZmMxNTMwY2MuYjU0YTFhYWMzZTM1NjFjOS5hYmEwZWEzNzBlZTdkZWQ4CisgICAgM2E4NzFjNTM2ODAxOGM2Zi5iNTI4NTNjZTg3Y2NlMDA3LmNkYzBlMzFlMjM0OTFjNjEuZDJlNDBlOWViMzcwOTBjMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jZGMwZTMxZTIzNDkxYzYxLmQxNjUxMjRhNTdkYWNlZjAKICAgICA2OTYwYjI5OGVlYjI4OTM2Ljk4M2UzN2Y0M2VjZGQxNTMuMjE4ZDg1YTEwZTdjNzhkNy42MTMxNmRjZGU2MDc1ZWQ5CiAgICAgMDcwNzY2MzNmMWU5NGExZi5mNjBmMWNiZTY2ZmY3ZWM1LjZjZDUyMjZhMmVhYjljMzYuZDE2NTEyNGE1N2RhY2VmMAogICAgIGQ1MDY1NTljN2U2ZWU4NDkKLVZCTEVORFBEXzEyOF8xb2YyKG1lbSkKK1ZNT1ZTRF9SRUdfWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgNGFlMWIyYWQ3N2NlNjkxMi5jZmU0MDUwMmVmMTkzNDliLjE3NzQ5ZDkyOTNiOGY0NTEuZjQ2ZWVjNzEzYjRkMGE5NAogICAgIDBjYzJhNjZiNWMwNzBjNzQuMWQ0NDhiNzM4MmNlODE1Ny5kNzM4MzY1Y2RlMDNlZTIxLjE0YTNlMDI0ZDBlZWZlOWEKQEAgLTI0NTEwLDExICsyNDUxMCwxMSBAQAogICBhZnRlcgogICAgIDRhZTFiMmFkNzdjZTY5MTIuY2ZlNDA1MDJlZjE5MzQ5Yi4xNzc0OWQ5MjkzYjhmNDUxLmY0NmVlYzcxM2I0ZDBhOTQKICAgICAwY2MyYTY2YjVjMDcwYzc0LjFkNDQ4YjczODJjZTgxNTcuZDczODM2NWNkZTAzZWUyMS4xNGEzZTAyNGQwZWVmZTlhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ3MzgzNjVjZGUwM2VlMjEuZjQ2ZWVjNzEzYjRkMGE5NAorICAgIGY3NzVhY2MxNGMyNDhlOWUuNGQ3NGY1ZjA0OTk1NmVmZi4xMjI5NjMwODY1ZWMyYTYxLjI3YzFmOGVkOGExYmI0ZjcKICAgICBlN2M2NDA5YjYxMzFhYmJhLmJiYmUzZWU3ZGVmOTM3M2UuYTQxMWEwODI0NDgwNjIzZi44YjE1MzIzYTA0NWU2NzU0CiAgICAgOWFlOTg5NzZkYTQ2NTQ2MAogCi1WQkxFTkRQRF8xMjhfMW9mMihyZWcpCitWTU9WU0RfUkVHX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIGIyOGFmOTBkYTk1Y2I3YzUuYjc4MGRlZTViNzNiMWZmNC5jMzZmNjJjM2RkODYxN2MxLjY5YmQ2YWI3OTZjYTUzZTQKICAgICAyZDQzN2U2YjBkMmVjYjMwLjQ1NzEwMjhiNmI0ZGE1NzkuYzFkMzVkZjBlM2M5NGIzMy4zZGY5M2M5MTc3ZDZiODdmCkBAIC0yNDUyMiwxMiArMjQ1MjIsMTIgQEAKICAgICBjMDMxYjkyYzAxMzRmOWM2LjA4MjNjZTliNWFiYWRhMTQuMGZlM2M5ZWQ3MTlmOWU5Ny44MjUwZThlOTU5NjZkMTQxCiAgICAgYWIwNGJhM2U5MTAxZmRjMQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMWQzNWRmMGUzYzk0YjMzLjNkZjkzYzkxNzdkNmI4N2YKLSAgICAyZDQzN2U2YjBkMmVjYjMwLjQ1NzEwMjhiNmI0ZGE1NzkuYzFkMzVkZjBlM2M5NGIzMy4zZGY5M2M5MTc3ZDZiODdmCisgICAgYjI4YWY5MGRhOTVjYjdjNS5iNzgwZGVlNWI3M2IxZmY0LmMzNmY2MmMzZGQ4NjE3YzEuNjliZDZhYjc5NmNhNTNlNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMzZmNjJjM2RkODYxN2MxLjgyNTBlOGU5NTk2NmQxNDEKICAgICA2OTYyMTVmY2ExNDdjZDRjLjZjNjMyOTc5OTg3M2ZhNzUuMTEzNTJjZGE4YjRkMGY0MS5mYzkxOTJmZTA0YjE0ZTNhCiAgICAgYzAzMWI5MmMwMTM0ZjljNi4wODIzY2U5YjVhYmFkYTE0LjBmZTNjOWVkNzE5ZjllOTcuODI1MGU4ZTk1OTY2ZDE0MQogICAgIGFiMDRiYTNlOTEwMWZkYzEKLVZCTEVORFBEXzEyOF8xb2YyKG1lbSkKK1ZNT1ZTRF9SRUdfWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgNTI3Nzg1ZTljODhmOGRlNi45MGZkNjY2N2NhODA4YjQ5LmY1N2Q2ZGRlY2YyZDAxODAuMTcyNzMyOTUzMzQ5MzZlMAogICAgIDU1NzZjNGQ2MWIxYjNlZGMuMzMxMjE4MTk5N2I3YmU4Mi4wZjNjODIyYzEwZDgyYWU4Ljg1NGU2MjNmNmFkYTEwYzgKQEAgLTI0NTM3LDExICsyNDUzNywxMSBAQAogICBhZnRlcgogICAgIDUyNzc4NWU5Yzg4ZjhkZTYuOTBmZDY2NjdjYTgwOGI0OS5mNTdkNmRkZWNmMmQwMTgwLjE3MjczMjk1MzM0OTM2ZTAKICAgICA1NTc2YzRkNjFiMWIzZWRjLjMzMTIxODE5OTdiN2JlODIuMGYzYzgyMmMxMGQ4MmFlOC44NTRlNjIzZjZhZGExMGM4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBmM2M4MjJjMTBkODJhZTguMTcyNzMyOTUzMzQ5MzZlMAorICAgIDhmY2RmM2YxYTViMWNjY2QuMDZiY2NiYWYwNTY2Y2YxZC4zMTJlOGE3MzNiYzgxMjc2LmI1YTQ1NjU1YjRkYjZiZmQKICAgICBkYjQ4OGUyNjgzNWVmM2U4LjY2NDc3YzkzYWYxOGZhYzUuMzkxZGZmOWQ2YzA4NzU1Ny4wMzc1MDg0NWFkZGE4MjI5CiAgICAgY2IwZDc2NzlmMDYyOTBmOAogCi1WQkxFTkRQRF8xMjhfMm9mMihyZWcpCitWTU9WU1NfUkVHX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIDY4Yjc5YjVmMTkwMGQxMTcuMTdiMzEyNjFkMDJkNmU1Ny5hZGZmMjYzMzMyNTk3YTI3LjAyZDc1Zjk4YmVhNDBlYjYKICAgICAzOGMwNzM2MmM1M2U4MzMyLjFlZDlmYThlYTkyYWZhNDcuMzgyZmM1ZmEyOWI2OGNlZi42NzI2MjY0ZjRkYTk5YWMwCkBAIC0yNDU0OSwxMiArMjQ1NDksMTIgQEAKICAgICBkZDIwMmQ2ZTE1ZDAyNTBhLmZjOGFlNjcwNmRlMDM0NTguOGIyYmQzYWRlNWYxNTY1ZS43OWI2ZDVhMTk1MWI3Yjg0CiAgICAgZGU4ZWI2MTQ4NGExNDc5NQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MzI0NTU1NDMxYmE2Y2M4LjY3MjYyNjRmNGRhOTlhYzAKLSAgICAzOGMwNzM2MmM1M2U4MzMyLjFlZDlmYThlYTkyYWZhNDcuMzgyZmM1ZmEyOWI2OGNlZi42NzI2MjY0ZjRkYTk5YWMwCisgICAgNjhiNzliNWYxOTAwZDExNy4xN2IzMTI2MWQwMmQ2ZTU3LmFkZmYyNjMzMzI1OTdhMjcuMDJkNzVmOThiZWE0MGViNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hZGZmMjYzMzMyNTk3YTI3LjAyZDc1Zjk4OTUxYjdiODQKICAgICA5Njc1ZmJlZDkwYWJlMGY1LmNiODhjMjlhMjk2MjUzZTMuNjMyNDU1NTQzMWJhNmNjOC40NmQ3Y2VhZTM2MjJkNWExCiAgICAgZGQyMDJkNmUxNWQwMjUwYS5mYzhhZTY3MDZkZTAzNDU4LjhiMmJkM2FkZTVmMTU2NWUuNzliNmQ1YTE5NTFiN2I4NAogICAgIGRlOGViNjE0ODRhMTQ3OTUKLVZCTEVORFBEXzEyOF8yb2YyKG1lbSkKK1ZNT1ZTU19SRUdfWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgNGYyZGVkZjMyMmJmZjYwMi42YjBlMDc1MGYwM2I4ZTIwLjhiYWNlM2ZiOTBiMDVhZDEuMGE4ZTNhNzFlMmU4ODU1ZgogICAgIGFhNWRmNjJhODk4MjQ0ZjUuOWI4YTg0MDBiZTc3NTZlMS41NmJhMzMyOWFlZGY4MTdjLjNkOTk4NjBjYzMyYTM2NzQKQEAgLTI0NTY0LDExICsyNDU2NCwxMSBAQAogICBhZnRlcgogICAgIDRmMmRlZGYzMjJiZmY2MDIuNmIwZTA3NTBmMDNiOGUyMC44YmFjZTNmYjkwYjA1YWQxLjBhOGUzYTcxZTJlODg1NWYKICAgICBhYTVkZjYyYTg5ODI0NGY1LjliOGE4NDAwYmU3NzU2ZTEuNTZiYTMzMjlhZWRmODE3Yy4zZDk5ODYwY2MzMmEzNjc0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhiYWNlM2ZiOTBiMDVhZDEuMGE4ZTNhNzFlMmU4ODU1ZgorICAgIGM5ZWI0ZGE2ZDVmNGVjOWEuYzhlMmExZTgxYTExYmFmYS4zNzgwNTRlNWU0Nzg2NTgyLjgwOWFiM2VhMjQ0NGE1NGMKICAgICA4YWEzNmY1MTIzMjRhYjFlLjUwNjA1ODc1YTE5NGY2MTYuMGNjOWMxMWI0ZTg4YzExMi4yZmRjYmQ3N2EyYzAwZTkxCiAgICAgYTZhYWExMjBkOTJjYWNlZgogCi1WQkxFTkRQRF8xMjhfMm9mMihyZWcpCitWTU9WU1NfUkVHX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIDQxNTE1YTRmNjQxNGJjMTQuYzc1MWQ3MTk4ZTFiM2RhZC44ZDUyYTcxNGVlOGM0NmUyLmFmNjNmNmI3MDcxYTUyNTUKICAgICA1YzFkZTQ3MmRmMDM3OWE5LjVkYzEwMWU4MzNlNzVlNzIuZGQwMjg5MmY5ZTg2ZTUwOS5mZDE4NzBhNTJiM2FkNDdhCkBAIC0yNDU3NiwxMiArMjQ1NzYsMTIgQEAKICAgICA4MjU0NWM0MDE4MjZlZWRhLjA1MTY4YzUwOTgyYzNiNTAuMjJjZmY2OGQ5NWFkMDMxYi4wYjA2MjAyNzI3NTU5OTE1CiAgICAgODJkNzRlOTQzNjY4NTVlMwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45YWJkZmEzNDRjMGQxMDM5LmZkMTg3MGE1MmIzYWQ0N2EKLSAgICA1YzFkZTQ3MmRmMDM3OWE5LjVkYzEwMWU4MzNlNzVlNzIuZGQwMjg5MmY5ZTg2ZTUwOS5mZDE4NzBhNTJiM2FkNDdhCisgICAgNDE1MTVhNGY2NDE0YmMxNC5jNzUxZDcxOThlMWIzZGFkLjhkNTJhNzE0ZWU4YzQ2ZTIuYWY2M2Y2YjcwNzFhNTI1NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZDUyYTcxNGVlOGM0NmUyLmFmNjNmNmI3Mjc1NTk5MTUKICAgICA1MzVhM2JmM2U3ODUyMTVkLjI5YmU2YWFjMmQ5M2M5OWEuOWFiZGZhMzQ0YzBkMTAzOS5kM2I1YWFkMWQ3ZjQwMmFiCiAgICAgODI1NDVjNDAxODI2ZWVkYS4wNTE2OGM1MDk4MmMzYjUwLjIyY2ZmNjhkOTVhZDAzMWIuMGIwNjIwMjcyNzU1OTkxNQogICAgIDgyZDc0ZTk0MzY2ODU1ZTMKLVZCTEVORFBEXzEyOF8yb2YyKG1lbSkKK1ZNT1ZTU19SRUdfWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgMTVmNGIwMDIyMDNhZjI0Mi40NTU2NDFjNDBjNzMxZGNjLmNlOTNlNWMwOTJiYzcwYzEuY2Y4MzdhYTgxNGYyZjk1ZAogICAgIDllMjhjMzVmMDJkNjJiNWQuZjhhZWU4ZWI2MmY3ZTllMC42MTAyZjBlODM0NTIyMzE5LmZlMjc4MWYwNjU2OTJmYWIKQEAgLTI0NTkxLDExICsyNDU5MSwxMSBAQAogICBhZnRlcgogICAgIDE1ZjRiMDAyMjAzYWYyNDIuNDU1NjQxYzQwYzczMWRjYy5jZTkzZTVjMDkyYmM3MGMxLmNmODM3YWE4MTRmMmY5NWQKICAgICA5ZTI4YzM1ZjAyZDYyYjVkLmY4YWVlOGViNjJmN2U5ZTAuNjEwMmYwZTgzNDUyMjMxOS5mZTI3ODFmMDY1NjkyZmFiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNlOTNlNWMwOTJiYzcwYzEuY2Y4MzdhYTgxNGYyZjk1ZAorICAgIGZhNDAwMjk2Zjc0OGJkNjEuZjZhNjRjMjFiNDNmOGZjMi45ODJmMjliNDljZjcxMTgzLjBjMDUwN2QxMjU5ZWUxYjEKICAgICAwNTA5ZTk5MjFjOWM2NDdhLjlkOGI2YWQyOWVkNjRiMWQuNTBlNjBkMTFlNmI5ZjYyYy41MzZhMDhiN2YwMWI0YjFhCiAgICAgMzBhMjgxMGU2MTZlYTg5MgogCi1WQkxFTkRQRF8xMjhfMm9mMihyZWcpCitWTU9WU1NfUkVHX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIGZmZjk2ZDQzMTQyMzM1YzcuOWI0ZGY0NDE4Y2RmZGNkMy40OGE5M2Q2YWJjNDg1OTllLjY1ZjIxNmU5MmRhMzhlM2YKICAgICAxZGJiYzdjMGE2YzUyZTYzLjk4ZDhhMDhlNjQxY2UwOTkuNTM0Y2MwNTZhYzIxZjVmMS5iMzIxYzIyOThkYzI5NGU5CkBAIC0yNDYwMywxMiArMjQ2MDMsMTIgQEAKICAgICBiMWFmYmI0NmQ1MDA1MzgxLjM3ZjhjN2IyYjliNjdlMWEuZjg1MGNjZDU2YjNhYzRiYi42YTEzZjE5MjBhY2NkZGIxCiAgICAgOGI2ZjZiOTM1ZmQwOTgyNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xOWJmZjEwMDA3ZWU1YWMxLmIzMjFjMjI5OGRjMjk0ZTkKLSAgICAxZGJiYzdjMGE2YzUyZTYzLjk4ZDhhMDhlNjQxY2UwOTkuNTM0Y2MwNTZhYzIxZjVmMS5iMzIxYzIyOThkYzI5NGU5CisgICAgZmZmOTZkNDMxNDIzMzVjNy45YjRkZjQ0MThjZGZkY2QzLjQ4YTkzZDZhYmM0ODU5OWUuNjVmMjE2ZTkyZGEzOGUzZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40OGE5M2Q2YWJjNDg1OTllLjY1ZjIxNmU5MGFjY2RkYjEKICAgICBlNDMzOGVmM2IzZTBjZjEyLmQ4Nzg2NzY1YmY2MDJkZjcuMTliZmYxMDAwN2VlNWFjMS4xNjNkOGNiZTIzMjFjNTU2CiAgICAgYjFhZmJiNDZkNTAwNTM4MS4zN2Y4YzdiMmI5YjY3ZTFhLmY4NTBjY2Q1NmIzYWM0YmIuNmExM2YxOTIwYWNjZGRiMQogICAgIDhiNmY2YjkzNWZkMDk4MjcKLVZCTEVORFBEXzEyOF8yb2YyKG1lbSkKK1ZNT1ZTU19SRUdfWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgNTUxZDc4YWMzZDM3YjFlMy5lMDc5NGMyN2FiYjJmNzVjLjkxMjMzYzYyNmYyYTkxMmUuNGI0OTRiNDI3NDkyNzE4YQogICAgIGE0ZTk5M2M5YzExMGU1MTIuY2RkZTNiMDFjZjgxZjY0ZS5jMmM2NDA1ZmZkYzkyMDVlLjZkZjc2Y2IyYmQ4MTliZGIKQEAgLTI0NjE4LDExICsyNDYxOCwxMSBAQAogICBhZnRlcgogICAgIDU1MWQ3OGFjM2QzN2IxZTMuZTA3OTRjMjdhYmIyZjc1Yy45MTIzM2M2MjZmMmE5MTJlLjRiNDk0YjQyNzQ5MjcxOGEKICAgICBhNGU5OTNjOWMxMTBlNTEyLmNkZGUzYjAxY2Y4MWY2NGUuYzJjNjQwNWZmZGM5MjA1ZS42ZGY3NmNiMmJkODE5YmRiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkxMjMzYzYyNmYyYTkxMmUuNGI0OTRiNDI3NDkyNzE4YQorICAgIDU0OWUzOGQ2MDc2NGVmZTAuZDQyYTg2M2ZkZGY5OGUwNC5hNmFkNTE5NzdlOWVlOGQ3LmJjYTYyYTkxZTM5MzdmNTkKICAgICA0MTBhZTRiZjI5NDE4ZDc4LjUxYTkyOTRmNzJhN2Y5MjkuMTlhNGU5ZjQwZWI1YTRjNC45MmEyODE0YTgxNTU1OWIyCiAgICAgNGQzNzZkNGIzMzUyNjQ4ZgogCi1WQkxFTkRQRF8yNTZfMW9mMyhyZWcpCitWTU9WTFBEXzEyOF9NNjRfWE1NX1hNTShyZWcpCiAgIGJlZm9yZQogICAgIDQ3YjFlYmZmOTYxNmRlOWYuNDdmNzExNzA0NWIzNzkwNy5hMGE2MWU5YzI5MTY3NDZhLmY3Nzc4NjY0Y2ExYjExNTIKICAgICBkZTViZjZkMzQ1MmQwMDhiLjQyMzIzZGQ1NzdjNDcwYjguMWQ2ZjYzOTI5ZWQzM2E3My4xY2YyYTRkMWNlZGJlYmFjCkBAIC0yNDYzMCwxMiArMjQ2MzAsMTIgQEAKICAgICA0ZTcyYTM4NmZhODczM2FlLjg2YzE4MDZjOGJmOTZlMzMuMTE5MGNhMmEzNTYzOWE4YS5hYTBmNGY1NzFiOWFkNTc3CiAgICAgY2M0OWQ1NDc5ZGIxNWQ0MAogICBhZnRlcgotICAgIGRlNWJmNmQzNDUyZDAwOGIuNDIzMjNkZDU3N2M0NzBiOC4xZDZmNjM5MjllZDMzYTczLjFjZjJhNGQxY2VkYmViYWMKKyAgICA0N2IxZWJmZjk2MTZkZTlmLjQ3ZjcxMTcwNDViMzc5MDcuYTBhNjFlOWMyOTE2NzQ2YS5mNzc3ODY2NGNhMWIxMTUyCiAgICAgZGU1YmY2ZDM0NTJkMDA4Yi40MjMyM2RkNTc3YzQ3MGI4LjFkNmY2MzkyOWVkMzNhNzMuMWNmMmE0ZDFjZWRiZWJhYwogICAgIDZjODI4YTMxZGQyNDA5MDIuMGQ4N2UzZGJkYTgyMmRiOC4yNDRlZjM5ZTZmNjg4OGVmLjY0ZTBiZDI5MzUwMWVlMDAKICAgICA0ZTcyYTM4NmZhODczM2FlLjg2YzE4MDZjOGJmOTZlMzMuMTE5MGNhMmEzNTYzOWE4YS5hYTBmNGY1NzFiOWFkNTc3CiAgICAgY2M0OWQ1NDc5ZGIxNWQ0MAotVkJMRU5EUERfMjU2XzFvZjMobWVtKQorVk1PVkxQRF8xMjhfTTY0X1hNTV9YTU0obWVtKQogICBiZWZvcmUKICAgICBhNTViY2JlNWQ2NTI0Mjg1LmUxNzczZDNmMzZlMGJiM2MuODhhZThlNzZhNTMzZWQ1NC40MDgxZTRhMzhlNTBhY2YyCiAgICAgMTAxMWFkMWRlMzhhNDA3Mi43ZmRkNTVjNjMwYmRkZDU3LmVlMTg4YmUzNDQzZTY2NDguMGQ2ZDNlNzYxNmJhZjlkMQpAQCAtMjQ2NDUsMTEgKzI0NjQ1LDExIEBACiAgIGFmdGVyCiAgICAgYTU1YmNiZTVkNjUyNDI4NS5lMTc3M2QzZjM2ZTBiYjNjLjg4YWU4ZTc2YTUzM2VkNTQuNDA4MWU0YTM4ZTUwYWNmMgogICAgIDEwMTFhZDFkZTM4YTQwNzIuN2ZkZDU1YzYzMGJkZGQ1Ny5lZTE4OGJlMzQ0M2U2NjQ4LjBkNmQzZTc2MTZiYWY5ZDEKLSAgICAxMDExYWQxZGUzOGE0MDcyLjdmZGQ1NWM2MzBiZGRkNTcuODhhZThlNzZhNTMzZWQ1NC40MDgxZTRhMzhlNTBhY2YyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVlMTg4YmUzNDQzZTY2NDguNDA4MWU0YTM4ZTUwYWNmMgogICAgIDExOTgyNzBjZTdlYzc1ZjcuNGZmYmVjZjNjODMxZGVlNi41Yjk3M2Y5Yjg0ZjYzYTU3LmYwNjU5ZmQ2MjAzNTM3YTUKICAgICBiZjBhOWUzY2RiNWZhMGYzCiAKLVZCTEVORFBEXzI1Nl8xb2YzKHJlZykKK1ZNT1ZMUERfMTI4X002NF9YTU1fWE1NKHJlZykKICAgYmVmb3JlCiAgICAgOWNkOWNjYWIzNTM2MzQ2OC41ZDAxYjY5YjE2MmYyNWU2LjNhNGI2MzZmOWVlMDM1YjIuMTg0M2VlYmQ1Y2JhMGNjYQogICAgIGUyMWYyNjhmYzk0NzMwYjEuYWQzZTIxNzM4OTM4ZGQyZS5hMDJjNDg2YmEyNDMxNWJjLmFiOWQ3Y2YzMjk3ZWM4YzAKQEAgLTI0NjU3LDEyICsyNDY1NywxMiBAQAogICAgIDFkNDA0YjY2MTA0NDRmNmUuYzU2NDdjYjNhOGNkNTg3OC41MGQxNDk5MDlkNTI2NDM4LmJmOGEyMjRiMTUzOGYxZTQKICAgICBmOGI1MzI0NTZhNDVkNjZhCiAgIGFmdGVyCi0gICAgZTIxZjI2OGZjOTQ3MzBiMS5hZDNlMjE3Mzg5MzhkZDJlLmEwMmM0ODZiYTI0MzE1YmMuYWI5ZDdjZjMyOTdlYzhjMAorICAgIDljZDljY2FiMzUzNjM0NjguNWQwMWI2OWIxNjJmMjVlNi4zYTRiNjM2ZjllZTAzNWIyLjE4NDNlZWJkNWNiYTBjY2EKICAgICBlMjFmMjY4ZmM5NDczMGIxLmFkM2UyMTczODkzOGRkMmUuYTAyYzQ4NmJhMjQzMTViYy5hYjlkN2NmMzI5N2VjOGMwCiAgICAgZWYyOGE3NTQzMzFkZDA3YS5kYjFiZTQ4MjViMTQ1YWZiLmRlZWE5NjUyNmRlNWJjYWYuZWU3MDY0MjkwODRmMmI2NQogICAgIDFkNDA0YjY2MTA0NDRmNmUuYzU2NDdjYjNhOGNkNTg3OC41MGQxNDk5MDlkNTI2NDM4LmJmOGEyMjRiMTUzOGYxZTQKICAgICBmOGI1MzI0NTZhNDVkNjZhCi1WQkxFTkRQRF8yNTZfMW9mMyhtZW0pCitWTU9WTFBEXzEyOF9NNjRfWE1NX1hNTShtZW0pCiAgIGJlZm9yZQogICAgIDc3YmUxMTA0MjY4Mzk2MjMuY2FiMjBlMzFmYjQ5ZWEzYS40NWU1NjRmMThlNzE5M2QxLjUyMmQ1ZDkyY2UxNjQ5MDIKICAgICAxNjcxMzk3MjYyZmRlYzNhLjUxY2NlZDIyOTFiN2RkODkuMzk2YTE4MmEyNjBjYzYzNC40MDQ5Y2VjMjliYmVhOWJhCkBAIC0yNDY3MiwxMSArMjQ2NzIsMTEgQEAKICAgYWZ0ZXIKICAgICA3N2JlMTEwNDI2ODM5NjIzLmNhYjIwZTMxZmI0OWVhM2EuNDVlNTY0ZjE4ZTcxOTNkMS41MjJkNWQ5MmNlMTY0OTAyCiAgICAgMTY3MTM5NzI2MmZkZWMzYS41MWNjZWQyMjkxYjdkZDg5LjM5NmExODJhMjYwY2M2MzQuNDA0OWNlYzI5YmJlYTliYQotICAgIDE2NzEzOTcyNjJmZGVjM2EuNTFjY2VkMjI5MWI3ZGQ4OS40NWU1NjRmMThlNzE5M2QxLjUyMmQ1ZDkyY2UxNjQ5MDIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzk2YTE4MmEyNjBjYzYzNC41MjJkNWQ5MmNlMTY0OTAyCiAgICAgMjgwNTVhMTBkMGQ3NGMzNC41YzIzZWIyMTJjZmZiYTYyLmU4YWVkNTNhZTI1NDA3YzIuNTBmNWI5NjA3YWU3YzVhMwogICAgIDJhMWMyYWE1YzU4MWZhMmMKIAotVkJMRU5EUERfMjU2XzFvZjMocmVnKQorVk1PVkxQRF8xMjhfTTY0X1hNTV9YTU0ocmVnKQogICBiZWZvcmUKICAgICA2MDM0ZThjYTFjMmU5ODUyLjUyN2Q0OTE2Mzk0ZWNmNmYuOThmOTA0MDk2OWYwMWM0NC41ZDA3ZDZlYTNjMTk4YzQ2CiAgICAgNGU4OWYwM2ExYjdiZGNjMi4wZWQwNzI3ZDk0MzFkOGI4LjFlYTYyN2M2YzE3Y2M2NWEuYjQ5MzkzNDNiYjA1ZmE4MwpAQCAtMjQ2ODQsMTIgKzI0Njg0LDEyIEBACiAgICAgYzIxOWNhYWI4MzIyNDUyZi5hNzMyNjQxYjhlNmQ2ZTI3Ljc5YjQ4MDZmMmY4ZWUwZDAuN2M3NjMxYTQ5MjgwODFkNgogICAgIGE0NjYwYjg0MjMyNzExNDQKICAgYWZ0ZXIKLSAgICA0ZTg5ZjAzYTFiN2JkY2MyLjBlZDA3MjdkOTQzMWQ4YjguMWVhNjI3YzZjMTdjYzY1YS5iNDkzOTM0M2JiMDVmYTgzCisgICAgNjAzNGU4Y2ExYzJlOTg1Mi41MjdkNDkxNjM5NGVjZjZmLjk4ZjkwNDA5NjlmMDFjNDQuNWQwN2Q2ZWEzYzE5OGM0NgogICAgIDRlODlmMDNhMWI3YmRjYzIuMGVkMDcyN2Q5NDMxZDhiOC4xZWE2MjdjNmMxN2NjNjVhLmI0OTM5MzQzYmIwNWZhODMKICAgICA1MDY2M2M2MTVmZjIwMjI4LjM2Yzg1MjMwZmM4ZDIzM2MuNGI3NTUyYzRjZjJjZjM0Zi5jYTFlODgzMjc5MjMwZGE0CiAgICAgYzIxOWNhYWI4MzIyNDUyZi5hNzMyNjQxYjhlNmQ2ZTI3Ljc5YjQ4MDZmMmY4ZWUwZDAuN2M3NjMxYTQ5MjgwODFkNgogICAgIGE0NjYwYjg0MjMyNzExNDQKLVZCTEVORFBEXzI1Nl8xb2YzKG1lbSkKK1ZNT1ZMUERfMTI4X002NF9YTU1fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgMWZiOTkxYmQ0NzI0N2ExYi4wMGVjOTY4NDI0OTRlMzg0LjNkZGEyNTJhNjVkZTczYTQuMDVhZGFkMzM3ZTJlYzk4OQogICAgIGM5M2MzZjNkMWI4Mzc4ODcuNjUyYzlhNThkZGQ2MTZkMi5kNDhjMGY0YTlkZWJlZmUwLjRjYWRkNTdjNTg5NmVhMjUKQEAgLTI0Njk5LDExICsyNDY5OSwxMSBAQAogICBhZnRlcgogICAgIDFmYjk5MWJkNDcyNDdhMWIuMDBlYzk2ODQyNDk0ZTM4NC4zZGRhMjUyYTY1ZGU3M2E0LjA1YWRhZDMzN2UyZWM5ODkKICAgICBjOTNjM2YzZDFiODM3ODg3LjY1MmM5YTU4ZGRkNjE2ZDIuZDQ4YzBmNGE5ZGViZWZlMC40Y2FkZDU3YzU4OTZlYTI1Ci0gICAgYzkzYzNmM2QxYjgzNzg4Ny42NTJjOWE1OGRkZDYxNmQyLjNkZGEyNTJhNjVkZTczYTQuMDVhZGFkMzM3ZTJlYzk4OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNDhjMGY0YTlkZWJlZmUwLjA1YWRhZDMzN2UyZWM5ODkKICAgICAxYTAyMDRiZjQxOWEyMmNjLjE5MjMzZWExMDlmODJkMGIuNzYzZDUzNjhhMzA5M2I0My43NmYyMDc0ZDFhZjRjMmI4CiAgICAgMTJjZjA5YWQzYjAwZjIwNgogCi1WQkxFTkRQRF8yNTZfMm9mMyhyZWcpCitWTU9WTFBEXzEyOF9YTU1fTTY0KHJlZykKICAgYmVmb3JlCiAgICAgZDllM2Y2NDM1NjA2NDllOS43OWRkMTI5OWNiNjg0NmZkLjFmNzFkN2VmYjRmMDg5NGUuMzhkNGE0NDBhODMzODNjMwogICAgIDI1NzljYjc5MDg5MjA1MGIuNzcxNzM5Njk3NGM5ZWU3My5iYzVkOThlN2U3ZTc2YjNiLjZiYTUwZmQ3N2UyYTMyYjEKQEAgLTI0NzExLDEyICsyNDcxMSwxMiBAQAogICAgIGJmNWUxOTdhOWY2OTk2YmUuYzBkY2MwOWM5NjcyYmVkZC4yZjNhODY4YTU3MDNiMGMxLjk0MjUyNGY3MGZhYmIzODkKICAgICA0MjZjYzY1NzAyNGVmZWNiCiAgIGFmdGVyCi0gICAgMjU3OWNiNzkwODkyMDUwYi5mMDdlZjQxYjVhYzhkODVhLjRlMzE3ZWY3M2U2OTBlN2UuNmJhNTBmZDc3ZTJhMzJiMQorICAgIGQ5ZTNmNjQzNTYwNjQ5ZTkuNzlkZDEyOTljYjY4NDZmZC4xZjcxZDdlZmI0ZjA4OTRlLjM4ZDRhNDQwYTgzMzgzYzMKICAgICAyNTc5Y2I3OTA4OTIwNTBiLjc3MTczOTY5NzRjOWVlNzMuYmM1ZDk4ZTdlN2U3NmIzYi42YmE1MGZkNzdlMmEzMmIxCiAgICAgNTNkZTgyYmRlZDJmNWYxOS5mMDdlZjQxYjVhYzhkODVhLjRlMzE3ZWY3M2U2OTBlN2UuZWI3YzExMWI0MmY4MDMzYQogICAgIGJmNWUxOTdhOWY2OTk2YmUuYzBkY2MwOWM5NjcyYmVkZC4yZjNhODY4YTU3MDNiMGMxLjk0MjUyNGY3MGZhYmIzODkKICAgICA0MjZjYzY1NzAyNGVmZWNiCi1WQkxFTkRQRF8yNTZfMm9mMyhtZW0pCitWTU9WTFBEXzEyOF9YTU1fTTY0KG1lbSkKICAgYmVmb3JlCiAgICAgZDExYzczMjczNmVlYTAyYy5jNTQ1OGIxY2JkY2NlNGE3LmMzZmUxN2Q2NDZkMjVkMjkuYmRjNGFiMGJjYjQwOGJiMwogICAgIDFjMDNhNTUzYzg5NjU0ZDcuYzFkZmQ0MGZlMGU1ODY3Zi5kNWIwNzdiNzg2ZjQ3MDY5LjUyMWJlOWU4MzhhZGRiZmUKQEAgLTI0NzI0LDEzICsyNDcyNCwxMyBAQAogICAgIDViYTE4ZDZmNzQyZmU1YmQuMGI1YmRjOThhYjY2YjZhZS45NmYzNDAxYTIzYjBlNTc4LjA1NWZhMTYzNmI0NGNlNTEKICAgICBkYmU1MTNkOTZhODdlOGIxCiAgIGFmdGVyCi0gICAgZDExYzczMjczNmVlYTAyYy5jNTQ1OGIxY2JkY2NlNGE3LmMzZmUxN2Q2NDZkMjVkMjkuYmRjNGFiMGJjYjQwOGJiMworICAgIGQxMWM3MzI3MzZlZWEwMmMuYzU0NThiMWNiZGNjZTRhNy5jM2ZlMTdkNjQ2ZDI1ZDI5LjRjOGIzYzhjM2FkNWRlNGYKICAgICAxYzAzYTU1M2M4OTY1NGQ3LmMxZGZkNDBmZTBlNTg2N2YuZDViMDc3Yjc4NmY0NzA2OS41MjFiZTllODM4YWRkYmZlCi0gICAgZDExYzczMjczNmVlYTAyYy5jMWRmZDQwZmUwZTU4NjdmLmQ1YjA3N2I3ODZmNDcwNjkuYmRjNGFiMGJjYjQwOGJiMworICAgIDAxZWJkYWM3ZDM1MmQ3ZjkuMGY3OGYxYmZhNzNmYjhmMy5kMmJlNWIyOTcxZTViNGNhLjRjOGIzYzhjM2FkNWRlNGYKICAgICA1YmExOGQ2Zjc0MmZlNWJkLjBiNWJkYzk4YWI2NmI2YWUuOTZmMzQwMWEyM2IwZTU3OC4wNTVmYTE2MzZiNDRjZTUxCiAgICAgZGJlNTEzZDk2YTg3ZThiMQogCi1WQkxFTkRQRF8yNTZfMm9mMyhyZWcpCitWTU9WTFBEXzEyOF9YTU1fTTY0KHJlZykKICAgYmVmb3JlCiAgICAgMjg2NzhlNWJkMTI5NjcxYS4wNmYxM2EzOGM2MzgzYTUwLjExZDU5MzA2OGFlN2JiNWUuZmQxZGEwNzViOTYxYmY5ZQogICAgIDRhMzIwZTUzM2NiNjg5MzkuZGVhNjVkMGNlNjc5OTFkZC43ZDMzMTI3NWUwNGQwNGFjLmUyMDZmOTI2NGUwNWZkNjkKQEAgLTI0NzM4LDEyICsyNDczOCwxMiBAQAogICAgIDc4ZDMwZTU5OTBjM2EwNDguODQ3M2Y2ODlmZGQ1Mzg5OC5mNmM1NTMwNzVmZmE1MWQ5LjliNDg4MzNhZTc1Mzk4OWMKICAgICAyNjM5YWM3NTIzMTY2ZDVjCiAgIGFmdGVyCi0gICAgNGEzMjBlNTMzY2I2ODkzOS5iZThlNzJkOWVmZmZhNzkyLmFiYmY1MzUyNDgyNWNkNDcuZTIwNmY5MjY0ZTA1ZmQ2OQorICAgIDI4Njc4ZTViZDEyOTY3MWEuMDZmMTNhMzhjNjM4M2E1MC4xMWQ1OTMwNjhhZTdiYjVlLmZkMWRhMDc1Yjk2MWJmOWUKICAgICA0YTMyMGU1MzNjYjY4OTM5LmRlYTY1ZDBjZTY3OTkxZGQuN2QzMzEyNzVlMDRkMDRhYy5lMjA2ZjkyNjRlMDVmZDY5CiAgICAgOWI5MjhmMmY0OGJiODhiYS5iZThlNzJkOWVmZmZhNzkyLmFiYmY1MzUyNDgyNWNkNDcuMjM3YmM2MTlmZmE3NWMwNAogICAgIDc4ZDMwZTU5OTBjM2EwNDguODQ3M2Y2ODlmZGQ1Mzg5OC5mNmM1NTMwNzVmZmE1MWQ5LjliNDg4MzNhZTc1Mzk4OWMKICAgICAyNjM5YWM3NTIzMTY2ZDVjCi1WQkxFTkRQRF8yNTZfMm9mMyhtZW0pCitWTU9WTFBEXzEyOF9YTU1fTTY0KG1lbSkKICAgYmVmb3JlCiAgICAgOWYxYWJlYjZjZWZiOTY3MS4zZTQwODYzZmIxNWEwZjkwLjBiMjM2NDBhMmQwN2ZmMWUuYmM5MzBmMDJjMDU4Y2QwZQogICAgIGU0YjYzNGVhMDUwZWQwMDcuNDcyN2YzNGI0NjBkMGYzZS4yZTY4Mzg0NzliYTJiOTRlLjU4NzQ4MmFkMDdjYjdkOTMKQEAgLTI0NzUxLDEzICsyNDc1MSwxMyBAQAogICAgIDNlNTMzY2Q3ODVmMDY2NjQuOTU4ZTlkOGEzZWY0YjQ3OS5iY2U0MDNhNTllNDFmNjVkLjgxOWQ3ZWM4YmEyMjY4M2MKICAgICBjNzdlZmYwZjVjMWUxYmI4CiAgIGFmdGVyCi0gICAgOWYxYWJlYjZjZWZiOTY3MS4zZTQwODYzZmIxNWEwZjkwLjBiMjM2NDBhMmQwN2ZmMWUuYmM5MzBmMDJjMDU4Y2QwZQorICAgIDlmMWFiZWI2Y2VmYjk2NzEuM2U0MDg2M2ZiMTVhMGY5MC4wYjIzNjQwYTJkMDdmZjFlLjI2YjNhODc2ZDFlMDljMTQKICAgICBlNGI2MzRlYTA1MGVkMDA3LjQ3MjdmMzRiNDYwZDBmM2UuMmU2ODM4NDc5YmEyYjk0ZS41ODc0ODJhZDA3Y2I3ZDkzCi0gICAgOWYxYWJlYjZjZWZiOTY3MS40NzI3ZjM0YjQ2MGQwZjNlLjJlNjgzODQ3OWJhMmI5NGUuYmM5MzBmMDJjMDU4Y2QwZQorICAgIGNmZGI4YWZiZTM1Y2Q3NGEuZjBkMjUyZWJlYzY3ZGRmZC5jYjBmZWYyYzYyYjEyMjU0LjI2YjNhODc2ZDFlMDljMTQKICAgICAzZTUzM2NkNzg1ZjA2NjY0Ljk1OGU5ZDhhM2VmNGI0NzkuYmNlNDAzYTU5ZTQxZjY1ZC44MTlkN2VjOGJhMjI2ODNjCiAgICAgYzc3ZWZmMGY1YzFlMWJiOAogCi1WQkxFTkRQRF8yNTZfMm9mMyhyZWcpCitWTU9WTFBEXzEyOF9YTU1fTTY0KHJlZykKICAgYmVmb3JlCiAgICAgNTNhMjI2Yjc1NjVmZjEzNC4wYmViYzY2ODA2ZDczYTg0LjkyYTdkMjk0ZDk0MWQyNWYuZGZiMmYyOWU2YzVjZjA5NQogICAgIDgwNTVmMjJjNDI3MTI4NWIuMTQ2ZmE1OWM4MzFiMGZkNC40MzY5ZWM3NTU4ZDk3MTViLjBmNDczNzAzZTcxMWNkMjcKQEAgLTI0NzY1LDEyICsyNDc2NSwxMiBAQAogICAgIDMxOTc2MTJlNjEzYWE0NWMuNDY2YTRmOWFkZWYwYWJiNi4zMjE3YmY2ZDczMWIyNDQ0LjA0ZjFiNGMyNTY3MjFmMGIKICAgICA4MzlmZTRmMzgyMzcwY2I2CiAgIGFmdGVyCi0gICAgODA1NWYyMmM0MjcxMjg1Yi4zM2FiNTQ1ZTE3Y2JhMTgxLjA1MjBlNzlhNTc0OGNlMTkuMGY0NzM3MDNlNzExY2QyNworICAgIDUzYTIyNmI3NTY1ZmYxMzQuMGJlYmM2NjgwNmQ3M2E4NC45MmE3ZDI5NGQ5NDFkMjVmLmRmYjJmMjllNmM1Y2YwOTUKICAgICA4MDU1ZjIyYzQyNzEyODViLjE0NmZhNTljODMxYjBmZDQuNDM2OWVjNzU1OGQ5NzE1Yi4wZjQ3MzcwM2U3MTFjZDI3CiAgICAgYWNlMjVjZGJiY2UxZmFkYS4zM2FiNTQ1ZTE3Y2JhMTgxLjA1MjBlNzlhNTc0OGNlMTkuMjc2ZDRmYzEyYzY5NDk0MAogICAgIDMxOTc2MTJlNjEzYWE0NWMuNDY2YTRmOWFkZWYwYWJiNi4zMjE3YmY2ZDczMWIyNDQ0LjA0ZjFiNGMyNTY3MjFmMGIKICAgICA4MzlmZTRmMzgyMzcwY2I2Ci1WQkxFTkRQRF8yNTZfMm9mMyhtZW0pCitWTU9WTFBEXzEyOF9YTU1fTTY0KG1lbSkKICAgYmVmb3JlCiAgICAgN2U0MzVhNDFjYmM0Y2M2YS42ZGJlZmU5MmNjMDg2MThlLjI3N2ExMjNjZjU5OGVhYTAuMjc5YjcxNWI0OGRkYjA4OAogICAgIGQzYTk5Mjk3NGUyNjFiNTUuYmFhNDJlNzQ5YWQ3NmYxYi5iNGE1MWEzMDc4Y2UxYTZhLjQwZjlmOGQxNzExYmFlOTIKQEAgLTI0Nzc4LDEzICsyNDc3OCwxMyBAQAogICAgIGY2ZWEzOTBhNzA5NzU0ODAuZmJkZDM4NWVjY2FiNjhmOS4zZDdmZTZiZjJmMTUzYjUxLjRlNmU3NTAxMzAzOGVmYTgKICAgICBmYTFkNjQ5NGZlMmZhYTBiCiAgIGFmdGVyCi0gICAgN2U0MzVhNDFjYmM0Y2M2YS42ZGJlZmU5MmNjMDg2MThlLjI3N2ExMjNjZjU5OGVhYTAuMjc5YjcxNWI0OGRkYjA4OAorICAgIDdlNDM1YTQxY2JjNGNjNmEuNmRiZWZlOTJjYzA4NjE4ZS4yNzdhMTIzY2Y1OThlYWEwLmQ5N2I1MDM5OGE1ZjVhMGUKICAgICBkM2E5OTI5NzRlMjYxYjU1LmJhYTQyZTc0OWFkNzZmMWIuYjRhNTFhMzA3OGNlMWE2YS40MGY5ZjhkMTcxMWJhZTkyCi0gICAgN2U0MzVhNDFjYmM0Y2M2YS5iYWE0MmU3NDlhZDc2ZjFiLmI0YTUxYTMwNzhjZTFhNmEuMjc5YjcxNWI0OGRkYjA4OAorICAgIDVjOWMwOGUwMjY2OGI0YTMuNzY5NWVkM2U2NjM0MDhiMC5jN2I4ZTI2MjgyOWVmNjQxLmQ5N2I1MDM5OGE1ZjVhMGUKICAgICBmNmVhMzkwYTcwOTc1NDgwLmZiZGQzODVlY2NhYjY4ZjkuM2Q3ZmU2YmYyZjE1M2I1MS40ZTZlNzUwMTMwMzhlZmE4CiAgICAgZmExZDY0OTRmZTJmYWEwYgogCi1WQkxFTkRQRF8yNTZfM29mMyhyZWcpCitWU0hVRlBEXzEyOF8xb2YyKHJlZykKICAgYmVmb3JlCiAgICAgM2JkNjE4NWU5MWQyYzdlMy43ZDVkYTAwMDQ3YmViNzE3LmE3YzgwOTNmNmFjNmNkYTEuZjJjNmEyMzE5YzNlYTVjNQogICAgIDZjZTM4ZGNhODVhYzgyZGQuY2VjMmI5YWVjN2U5OTg5NC5kNGExNWU0ZGQ5MTM3MTU1LmMzNTk5MmE2ZTQyNmYwY2EKQEAgLTI0NzkyLDEyICsyNDc5MiwxMiBAQAogICAgIDBlMmRhYTNlZmQzNmMwZTYuMzk5MmYxZTMzNTdjYzdmMy4yNTUxODJhMGEwNzE2ODkwLjI0OTEwMDQ1Nzc2MDE3MzUKICAgICA2ZGQwNzU0OGZhY2I2Y2Y0CiAgIGFmdGVyCi0gICAgZTk5MmJmNDc3NDRhMTZhNS5jM2U1MDAwMDBkMjRiNDI1LmQ0YTE1ZTRkZDkxMzcxNTUuYzM1OTkyYTZlNDI2ZjBjYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNDkxMDA0NTc3NjAxNzM1LmMzNTk5MmE2ZTQyNmYwY2EKICAgICA2Y2UzOGRjYTg1YWM4MmRkLmNlYzJiOWFlYzdlOTk4OTQuZDRhMTVlNGRkOTEzNzE1NS5jMzU5OTJhNmU0MjZmMGNhCiAgICAgZTk5MmJmNDc3NDRhMTZhNS5jM2U1MDAwMDBkMjRiNDI1LmRmYjYzMmY0YjcxZTkxYzEuOGEwMzMzMDgyNGQ4ZDc4YgogICAgIDBlMmRhYTNlZmQzNmMwZTYuMzk5MmYxZTMzNTdjYzdmMy4yNTUxODJhMGEwNzE2ODkwLjI0OTEwMDQ1Nzc2MDE3MzUKICAgICA2ZGQwNzU0OGZhY2I2Y2Y0Ci1WQkxFTkRQRF8yNTZfM29mMyhtZW0pCitWU0hVRlBEXzEyOF8xb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgNDE4YTBlZmNjODI0OTJmMy4zNjAxNGIxY2I5ZmZiYzRkLjBjOTQwOTQxNWFmZDhkMmQuMDBiZjQ4YmQyZjlhMzQ2ZQogICAgIDdjOGI0NzRmZmU3NzQ0NWYuYmY1OTlkNGQ0NzJlNDU4Ni4xOGI5YzMwNzk4YjFjMWZkLmNkNGM4MmI3MDAyNTJmMDkKQEAgLTI0ODA3LDExICsyNDgwNywxMSBAQAogICBhZnRlcgogICAgIDQxOGEwZWZjYzgyNDkyZjMuMzYwMTRiMWNiOWZmYmM0ZC4wYzk0MDk0MTVhZmQ4ZDJkLjAwYmY0OGJkMmY5YTM0NmUKICAgICA3YzhiNDc0ZmZlNzc0NDVmLmJmNTk5ZDRkNDcyZTQ1ODYuMThiOWMzMDc5OGIxYzFmZC5jZDRjODJiNzAwMjUyZjA5Ci0gICAgNDE4YTBlZmNjODI0OTJmMy4zNjAxNGIxY2I5ZmZiYzRkLjBjOTQwOTQxNWFmZDhkMmQuMDBiZjQ4YmQyZjlhMzQ2ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGJmNDhiZDJmOWEzNDZlLjE4YjljMzA3OThiMWMxZmQKICAgICA5Nzk3OGI4MDEwM2MzZTJjLjYwYzk0NDU5NDJmM2YxMWMuNGI5NzBkN2RkMmU3NjYxMS5hZGYyM2ZmM2RhOGRhNDIwCiAgICAgNzlhM2JhMGQxYjg0OTZmNQogCi1WQkxFTkRQRF8yNTZfM29mMyhyZWcpCitWU0hVRlBEXzEyOF8xb2YyKHJlZykKICAgYmVmb3JlCiAgICAgYTZhNDk5YjMwZjBiYTgzNS4yZjM4OGQzNTI0YzdmZmU2LjMxNzk5MTBjZTlhMThiZDEuMmFlOTk2MDMwNTgxNGZhYwogICAgIDkxM2ZkNzUzNTBiMTE2OGUuOWU1MTIwMzgwZjdiM2NiYy5kMmRkODBjMWQwZTZhNDA4LmIyOGRiMWEyYzE3Zjk2OGYKQEAgLTI0ODE5LDEyICsyNDgxOSwxMiBAQAogICAgIDExNzU2MDJlMmY4M2Y0MzUuNzExYmU1ZDlkZDkzMWM2ZS5mM2Y0MzFlNmNmNjUzZGFhLjJkZmE4ZGQ4NDZkODMwZDcKICAgICBkODVjNDY0NzQ3NGJmYzk2CiAgIGFmdGVyCi0gICAgOTZjMTcwNTg3ZGZmMWJhOS5jMGFmYmU3NmVlNjZiMmRiLmQyZGQ4MGMxZDBlNmE0MDguYjI4ZGIxYTJjMTdmOTY4ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yZGZhOGRkODQ2ZDgzMGQ3LmIyOGRiMWEyYzE3Zjk2OGYKICAgICA5MTNmZDc1MzUwYjExNjhlLjllNTEyMDM4MGY3YjNjYmMuZDJkZDgwYzFkMGU2YTQwOC5iMjhkYjFhMmMxN2Y5NjhmCiAgICAgOTZjMTcwNTg3ZGZmMWJhOS5jMGFmYmU3NmVlNjZiMmRiLjllNDIwY2U2OTM0ZTc2NmMuYmY0ZmRhNDUyM2VkZjhlNAogICAgIDExNzU2MDJlMmY4M2Y0MzUuNzExYmU1ZDlkZDkzMWM2ZS5mM2Y0MzFlNmNmNjUzZGFhLjJkZmE4ZGQ4NDZkODMwZDcKICAgICBkODVjNDY0NzQ3NGJmYzk2Ci1WQkxFTkRQRF8yNTZfM29mMyhtZW0pCitWU0hVRlBEXzEyOF8xb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgOWMzZjgyN2U0MTUyMTY0YS41ZWE5YTM0MTA1YzhkZGRjLjhkNjQxMDRmZjcwZjM3YTIuMmIzZmVjMmQyMGI4Mzc2ZQogICAgIDU1NzBiYzY5NTBmYTNiMjIuZDlhNzM2ZmQ5ODVhMTI0YS5mMDU1YmJjMzU4ZTViZmEzLmE0NmUzNzI3MjFkMzllNjMKQEAgLTI0ODM0LDExICsyNDgzNCwxMSBAQAogICBhZnRlcgogICAgIDljM2Y4MjdlNDE1MjE2NGEuNWVhOWEzNDEwNWM4ZGRkYy44ZDY0MTA0ZmY3MGYzN2EyLjJiM2ZlYzJkMjBiODM3NmUKICAgICA1NTcwYmM2OTUwZmEzYjIyLmQ5YTczNmZkOTg1YTEyNGEuZjA1NWJiYzM1OGU1YmZhMy5hNDZlMzcyNzIxZDM5ZTYzCi0gICAgOWMzZjgyN2U0MTUyMTY0YS41ZWE5YTM0MTA1YzhkZGRjLjhkNjQxMDRmZjcwZjM3YTIuMmIzZmVjMmQyMGI4Mzc2ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yYjNmZWMyZDIwYjgzNzZlLmYwNTViYmMzNThlNWJmYTMKICAgICAxNWVjMWEwYzIwNWE5NWU4LmM5MzUzOTIxNmI5NzRlMmUuZmE1ZTgzNTQ2MWQwMDViYS5jNWFjNzJlNWE0OGRhNTkzCiAgICAgMjU1MjU5ODA1ZTQ2YmUyNQogCi1WQkxFTkRQRF8yNTZfM29mMyhyZWcpCitWU0hVRlBEXzEyOF8xb2YyKHJlZykKICAgYmVmb3JlCiAgICAgMzUwZGMyN2UzOWY1MzQ5OC5kNWNlMzc5YzE4MmI0MjJmLmY1NWNhMTYwZTI1YWNkZmMuNWEwZTk3NGE0MWZkM2IyOAogICAgIDUyMjhhNzRjZDEyODQ0OWEuZmEyZjQyOGY5NmNjZTk0OS5jMDdlNDlmOTg4OWE4OTQxLjcxOTYxYmVlZDliNGNlMTMKQEAgLTI0ODQ2LDEyICsyNDg0NiwxMiBAQAogICAgIDFlYjJkYTA0YTU0ODIwZjUuZTI5OTEyNTM5MWFmMTlhNC5hMGUyNDZlNWNlYzFhM2UxLjMzNWQ2NGYxOWVmMmZhMGYKICAgICA5NzM1MjAyNzAzOTEwYjc3CiAgIGFmdGVyCi0gICAgZDZmMTA2NTVjMDZiMjlkNS41ZmQ5YjdkM2I1NDk0ODYxLmMwN2U0OWY5ODg5YTg5NDEuNzE5NjFiZWVkOWI0Y2UxMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMzVkNjRmMTllZjJmYTBmLjcxOTYxYmVlZDliNGNlMTMKICAgICA1MjI4YTc0Y2QxMjg0NDlhLmZhMmY0MjhmOTZjY2U5NDkuYzA3ZTQ5Zjk4ODlhODk0MS43MTk2MWJlZWQ5YjRjZTEzCiAgICAgZDZmMTA2NTVjMDZiMjlkNS41ZmQ5YjdkM2I1NDk0ODYxLjg1ZTYyYzU2ZjhlM2JjYTkuMWJjMjhiMmQ0MzAyN2FhNwogICAgIDFlYjJkYTA0YTU0ODIwZjUuZTI5OTEyNTM5MWFmMTlhNC5hMGUyNDZlNWNlYzFhM2UxLjMzNWQ2NGYxOWVmMmZhMGYKICAgICA5NzM1MjAyNzAzOTEwYjc3Ci1WQkxFTkRQRF8yNTZfM29mMyhtZW0pCitWU0hVRlBEXzEyOF8xb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgMjExNDNkYmM5MWU5NjkwZC44NmI5MjBjNzE5NGQ2NWE3LjVkM2JjZmZiNDcwOTE5M2UuNmNiYzkzMTFhN2MxNzk5NQogICAgIGFmYzczNzlhNjEwOGNmZmIuNmI1MGQyMDliYTA2MzQ5Ny5hZThiNmJiN2YzNjMwMzVhLjQ3YzEwZjQ1MWU2ZTdiNzAKQEAgLTI0ODYxLDExICsyNDg2MSwxMSBAQAogICBhZnRlcgogICAgIDIxMTQzZGJjOTFlOTY5MGQuODZiOTIwYzcxOTRkNjVhNy41ZDNiY2ZmYjQ3MDkxOTNlLjZjYmM5MzExYTdjMTc5OTUKICAgICBhZmM3Mzc5YTYxMDhjZmZiLjZiNTBkMjA5YmEwNjM0OTcuYWU4YjZiYjdmMzYzMDM1YS40N2MxMGY0NTFlNmU3YjcwCi0gICAgMjExNDNkYmM5MWU5NjkwZC44NmI5MjBjNzE5NGQ2NWE3LjVkM2JjZmZiNDcwOTE5M2UuNmNiYzkzMTFhN2MxNzk5NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42Y2JjOTMxMWE3YzE3OTk1LmFlOGI2YmI3ZjM2MzAzNWEKICAgICA0M2Q5YWVlNjNkY2FhNjkwLjE3NjE2ZmJhZjJjMDVlZGYuM2U2NDJkMWI5YTQ5ODhjYS45NjdjODY3YTU5MDFmMzRlCiAgICAgYzNjYTc4NTM1NGZlZTFhOAogCi1WUEJMRU5EV18xMjhfMHgwMChyZWcpCitWU0hVRlBEXzEyOF8yb2YyKHJlZykKICAgYmVmb3JlCiAgICAgNmU3Mzg5ZTQ1ZGQ5ZWFkYS4wMWQwMjQyYjgwODQ4ZjkwLjk3NzI1MTAxYzFkYjMyOGYuMzY4NTRiOWNjZWVkOWI3NgogICAgIGYyYzJiNjlhMTExYzRiOGYuMzNjYjY2Njk3NjM0NzA5OC4wMzQ1OTE3ODJjZDk3ZjJkLjcyODQzN2UwNjdjMDg5NTQKQEAgLTI0ODczLDEyICsyNDg3MywxMiBAQAogICAgIGY5ODY1MTI2ZTgxMDAzMzQuNWZmYzNmODZlZWE4MGQ3Mi4wZjVjMTdhMjQ3YWU3OGUyLjJhNGM2YjY1M2EyOWU0NTkKICAgICA1ZGFkYWE3ZWFjZDZjOWQ3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAzNDU5MTc4MmNkOTdmMmQuNzI4NDM3ZTA2N2MwODk1NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZjVjMTdhMjQ3YWU3OGUyLjcyODQzN2UwNjdjMDg5NTQKICAgICBmMmMyYjY5YTExMWM0YjhmLjMzY2I2NjY5NzYzNDcwOTguMDM0NTkxNzgyY2Q5N2YyZC43Mjg0MzdlMDY3YzA4OTU0CiAgICAgYWQwNGZhZTIwYjU2M2Y3NC5iMzk1ZjA4ZjNjZTcwNmQ1LmI3MjQyOTg5Y2Y0NjgzNjUuY2YyZDZlZDQ4MmQxMGQ5MQogICAgIGY5ODY1MTI2ZTgxMDAzMzQuNWZmYzNmODZlZWE4MGQ3Mi4wZjVjMTdhMjQ3YWU3OGUyLjJhNGM2YjY1M2EyOWU0NTkKICAgICA1ZGFkYWE3ZWFjZDZjOWQ3Ci1WUEJMRU5EV18xMjhfMHgwMChtZW0pCitWU0hVRlBEXzEyOF8yb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgNDUxYmE4MGJmM2UzN2EzOC4zNDkyYjdkNDQzZDhkMzdjLjExY2FjZDNiYTc4NDQwOWQuNjczOTU2MmQzMDllOWE1MQogICAgIGJmNjRkZmY3MmI1Y2IxYTcuYjg3NDI4NTZiODNhZWJmOC5hNmNjMTg5YTgzODU1YzdmLjFiMDdlMjk4MjRhMTI3NWQKQEAgLTI0ODg4LDExICsyNDg4OCwxMSBAQAogICBhZnRlcgogICAgIDQ1MWJhODBiZjNlMzdhMzguMzQ5MmI3ZDQ0M2Q4ZDM3Yy4xMWNhY2QzYmE3ODQ0MDlkLjY3Mzk1NjJkMzA5ZTlhNTEKICAgICBiZjY0ZGZmNzJiNWNiMWE3LmI4NzQyODU2YjgzYWViZjguYTZjYzE4OWE4Mzg1NWM3Zi4xYjA3ZTI5ODI0YTEyNzVkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE2Y2MxODlhODM4NTVjN2YuMWIwN2UyOTgyNGExOWE1MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMWNhY2QzYmE3ODQ0MDlkLmE2Y2MxODlhODM4NTVjN2YKICAgICBkNGIyZWRhMWUxYzVhMzYyLjBmZWUxZDhiNjNmOGUyM2EuZWE5YmQzMDcxNjJjM2YxZS4wN2E2ZDNiYWE0MTE2Y2ZmCiAgICAgZjYwZTJmNGE2Njk2OWVlYwogCi1WUEJMRU5EV18xMjhfMHgwMChyZWcpCitWU0hVRlBEXzEyOF8yb2YyKHJlZykKICAgYmVmb3JlCiAgICAgYjI5N2M4NjlhNTVmMjkyNi4yODUwYmIzNzk2Y2JkNjA1Ljk5MWU5ODE1ZDA2ZDM5NTkuNTAwMTNiZWQwNWU5N2QzMwogICAgIDk2OGQ5YTgzZmNmNzRhNWIuN2VmOGI0ZGNhZDZlODA2Ny5kZDU0MGUyNGM4YWNjNzViLjA5Y2E0ZTJjODdmYzk0YjAKQEAgLTI0OTAwLDEyICsyNDkwMCwxMiBAQAogICAgIDQ1ZjBkYjU5NjRjNDNkNjAuOWI5NTEzMDc2ZWI5MjgxNy4wNDA1ZGM4MmM2YjY3Y2JhLmU0Yjg2YjZhYjY1NjNkOTQKICAgICBiZTc1NmI0MDliYjQ0NjUyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRkNTQwZTI0YzhhY2M3NWIuMDljYTRlMmM4N2ZjOTRiMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNDA1ZGM4MmM2YjY3Y2JhLjA5Y2E0ZTJjODdmYzk0YjAKICAgICA5NjhkOWE4M2ZjZjc0YTViLjdlZjhiNGRjYWQ2ZTgwNjcuZGQ1NDBlMjRjOGFjYzc1Yi4wOWNhNGUyYzg3ZmM5NGIwCiAgICAgZmUzY2EyMDUwOGVhM2QzNS5iMDc1NTI3ZDQxYjk1Y2I0LjM4ZGQ3YzI0ZTY0MGNhZWMuZjFjMzhiYjJiOTcyNDBjMQogICAgIDQ1ZjBkYjU5NjRjNDNkNjAuOWI5NTEzMDc2ZWI5MjgxNy4wNDA1ZGM4MmM2YjY3Y2JhLmU0Yjg2YjZhYjY1NjNkOTQKICAgICBiZTc1NmI0MDliYjQ0NjUyCi1WUEJMRU5EV18xMjhfMHgwMChtZW0pCitWU0hVRlBEXzEyOF8yb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgNWJjNjA4MjA4Mzk4MTgyYS5jOWY1NDFlY2FkMTI4Nzg5LjFiMjI3MjY0NTE3OTllYmMuOWUxODJjYTgwNTk4MTk2ZQogICAgIDk3NzZiZGY2OGIwZjZlNDYuZTU5NmQwMmI3ZTYwNTc1Yy4wY2U5ZWM4MjA1MDU3YmQwLjYyNjE2NzA0M2U3NGRmYjcKQEAgLTI0OTE1LDExICsyNDkxNSwxMSBAQAogICBhZnRlcgogICAgIDViYzYwODIwODM5ODE4MmEuYzlmNTQxZWNhZDEyODc4OS4xYjIyNzI2NDUxNzk5ZWJjLjllMTgyY2E4MDU5ODE5NmUKICAgICA5Nzc2YmRmNjhiMGY2ZTQ2LmU1OTZkMDJiN2U2MDU3NWMuMGNlOWVjODIwNTA1N2JkMC42MjYxNjcwNDNlNzRkZmI3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBjZTllYzgyMDUwNTdiZDAuNjI2MTY3MDQzZTc0MTk2ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xYjIyNzI2NDUxNzk5ZWJjLjBjZTllYzgyMDUwNTdiZDAKICAgICA1YzI3NjAzNTY4ZTQ5YWZiLjU0ZTA1YTU5MjkyODc4YWUuYjE1NTFkYWQ1M2IyNThmNS5kOGM5OGYwYTExNDhkMWIyCiAgICAgNDM3Zjc0OGRlMTU4NzZiZQogCi1WUEJMRU5EV18xMjhfMHgwMChyZWcpCitWU0hVRlBEXzEyOF8yb2YyKHJlZykKICAgYmVmb3JlCiAgICAgNDc5YzM0ZjQxZDkyMzIwYy45ZGJmNDU3NTc3NWFlN2VkLjYwMjA0ZDIxM2NiYjQxODYuMWQ5MmNkOTMyM2VjZDE1ZAogICAgIDQxNmNjY2FkNWU4MTQyNGIuZWRlNzMzNWMxNDkzYThkNC43MzJkNTk0NDQ3N2U4MGI3LjZhMzg4N2U5MzYyMWExZTMKQEAgLTI0OTI3LDEyICsyNDkyNywxMiBAQAogICAgIDg3NTQ3MGMyNjVhZTRkNDYuMmExNjE3Y2I2ZDdhNzkyZS4yMmRkYWQ0YmI2YzE0ZWQ2LjE2ZjMwYTk1OGViMjM0ZmMKICAgICAyZTlmY2JjNDBkMjQ3MGU2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjczMmQ1OTQ0NDc3ZTgwYjcuNmEzODg3ZTkzNjIxYTFlMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMmRkYWQ0YmI2YzE0ZWQ2LjZhMzg4N2U5MzYyMWExZTMKICAgICA0MTZjY2NhZDVlODE0MjRiLmVkZTczMzVjMTQ5M2E4ZDQuNzMyZDU5NDQ0NzdlODBiNy42YTM4ODdlOTM2MjFhMWUzCiAgICAgOGQzYTM2MjM0M2IxZTIyNS4yODZiYTVkNDVkOTk5YWRiLmViNTI3YjJlZTZmYzcwZWUuNzQxNWM4OWJhNTVmODNiNAogICAgIDg3NTQ3MGMyNjVhZTRkNDYuMmExNjE3Y2I2ZDdhNzkyZS4yMmRkYWQ0YmI2YzE0ZWQ2LjE2ZjMwYTk1OGViMjM0ZmMKICAgICAyZTlmY2JjNDBkMjQ3MGU2Ci1WUEJMRU5EV18xMjhfMHgwMChtZW0pCitWU0hVRlBEXzEyOF8yb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgOTdlNTg2MTIzZGMzZjM5Zi44YTA0NzVmNzYyMDVjMDVjLmNmYjYwNjJjNjE0MjAxZmEuNzUxOGVkMDc1MzVhNTYxYwogICAgIDJkOTFiODZjM2I5Yjc4NTMuZjQ5NzQxMmNkNjQxNzcxMC5mMzE1ZWRlMzU1ZmJlZDZiLjQxNTAzNmNlNTg1MmM0NmIKQEAgLTI0OTQyLDExICsyNDk0MiwxMSBAQAogICBhZnRlcgogICAgIDk3ZTU4NjEyM2RjM2YzOWYuOGEwNDc1Zjc2MjA1YzA1Yy5jZmI2MDYyYzYxNDIwMWZhLjc1MThlZDA3NTM1YTU2MWMKICAgICAyZDkxYjg2YzNiOWI3ODUzLmY0OTc0MTJjZDY0MTc3MTAuZjMxNWVkZTM1NWZiZWQ2Yi40MTUwMzZjZTU4NTJjNDZiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzMTVlZGUzNTVmYmVkNmIuNDE1MDM2Y2U1ODUyNTYxYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jZmI2MDYyYzYxNDIwMWZhLmYzMTVlZGUzNTVmYmVkNmIKICAgICA0ZjRhNmRmNjBlMjI3YjVhLjZhOTYxZjRhOTE5OWEwMDkuMjc0MzkzMDNhYTc2ZTRlYS5iMGU3ZDQyZTBiOTBjMGQ3CiAgICAgMGJkZTIwOWZmMWVlYzc0YgogCi1WUEJMRU5EV18xMjhfMHhGRShyZWcpCitWU0hVRlBEXzI1Nl8xb2YyKHJlZykKICAgYmVmb3JlCiAgICAgNGUwMjY2Y2FiMGRiMjM3OS45NGVmZTlmYzFjZWI3MDA1LjJlOWEyODBhMTBjZThiYTQuZjBhYTRhNDQ0NDRlNjc1MQogICAgIGQ1OWVhMTFkZTNlNDExMGMuNzUyYWNiYmY2ODFiNTg1Yi5jOGIwZTk3Yzc1MTdhODhmLmE3MDFlOThiNGQ0OTNlMGMKQEAgLTI0OTU0LDEyICsyNDk1NCwxMiBAQAogICAgIDIwNzJlN2U4MTc3NzkzMTQuODA5MmIyMjkyN2U2ZjFiNy5lZDQ2ODEyMzYzMWE2ZjA0LjUzYWVkMWRjMWVkNmRiMzAKICAgICAwMDljMTJiZTFkODExOGYxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkzMjY1ZTBiNWQwMjM2NzYuMmExM2VkYzVlMjczM2UwYworICAgIDgwOTJiMjI5MjdlNmYxYjcuNzUyYWNiYmY2ODFiNTg1Yi41M2FlZDFkYzFlZDZkYjMwLmE3MDFlOThiNGQ0OTNlMGMKICAgICBkNTllYTExZGUzZTQxMTBjLjc1MmFjYmJmNjgxYjU4NWIuYzhiMGU5N2M3NTE3YTg4Zi5hNzAxZTk4YjRkNDkzZTBjCiAgICAgZmQwMGNlMDMyNzk0Y2RiMi5kMGM3OTAyYTBkYzFlZjg3LjkzMjY1ZTBiNWQwMjM2NzYuMmExM2VkYzVlMjczMjY0OAogICAgIDIwNzJlN2U4MTc3NzkzMTQuODA5MmIyMjkyN2U2ZjFiNy5lZDQ2ODEyMzYzMWE2ZjA0LjUzYWVkMWRjMWVkNmRiMzAKICAgICAwMDljMTJiZTFkODExOGYxCi1WUEJMRU5EV18xMjhfMHhGRShtZW0pCitWU0hVRlBEXzI1Nl8xb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgMGNhYTJhNTZmYzdkOWFiNi45YjQxZWEzODRmMWE5ZWUwLjYwNTZhZmE4ZDM5ODE5MTQuMzE1ZDUwMzAyNGVjOTBlNgogICAgIDUyYTQ5NzhmZDdkODFkYWMuY2FiOGQyNWY2ZDA4MmJjMi40ZWUxMDI5MzJkZTIyNGNkLmJhYjdjNjllM2MwM2Q1YzgKQEAgLTI0OTY5LDExICsyNDk2OSwxMSBAQAogICBhZnRlcgogICAgIDBjYWEyYTU2ZmM3ZDlhYjYuOWI0MWVhMzg0ZjFhOWVlMC42MDU2YWZhOGQzOTgxOTE0LjMxNWQ1MDMwMjRlYzkwZTYKICAgICA1MmE0OTc4ZmQ3ZDgxZGFjLmNhYjhkMjVmNmQwODJiYzIuNGVlMTAyOTMyZGUyMjRjZC5iYWI3YzY5ZTNjMDNkNWM4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwNTZhZmE4ZDM5ODE5MTQuMzE1ZDUwMzAyNGVjOTBlNgorICAgIDBjYWEyYTU2ZmM3ZDlhYjYuNTJhNDk3OGZkN2Q4MWRhYy42MDU2YWZhOGQzOTgxOTE0LjRlZTEwMjkzMmRlMjI0Y2QKICAgICAwMDhiNWQ5OWVmZDgxNWRhLmI0ZDM0MmUyYzRmNmJiNzcuYzA3NzliNWU1ODZmZDJmZC4wZjYzOTc0ZGRlMzBiOTNhCiAgICAgOTM0ZGViNjdhMTVmZDEyMgogCi1WUEJMRU5EV18xMjhfMHhGRShyZWcpCitWU0hVRlBEXzI1Nl8xb2YyKHJlZykKICAgYmVmb3JlCiAgICAgY2NhYmQ1OTEyYTA0ZmRiYS4xZjExYWU0MTY0OTYwMjZhLjI3MGRjMTE3MzcwZTM1YTEuZmMxYmQ5MTY2MWNhZWRjZAogICAgIDE4Yzc1MzM4MTVhOTc4YWQuZWFiMjQ0M2I0NGUyZTBkYi5iZTIwMTZkMmZlYTEyMTkxLmI1YjU1Y2U5ODllZWRiYTgKQEAgLTI0OTgxLDEyICsyNDk4MSwxMiBAQAogICAgIDU1NmNmOWFmODQyODRlNTcuZWY3ODJiZDZiNzU2NWQwZC5jODAxMzA4ZmY5NmEzZTczLjBmZmEyNzk1OWZiZTFmMmQKICAgICA2NzNlNjY0NGM3ODJlZDJmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ1NTgzYzgxYjUzY2JhZjMuYzgxMWEzYzVlOWU1ZGJhOAorICAgIGVmNzgyYmQ2Yjc1NjVkMGQuZWFiMjQ0M2I0NGUyZTBkYi4wZmZhMjc5NTlmYmUxZjJkLmI1YjU1Y2U5ODllZWRiYTgKICAgICAxOGM3NTMzODE1YTk3OGFkLmVhYjI0NDNiNDRlMmUwZGIuYmUyMDE2ZDJmZWExMjE5MS5iNWI1NWNlOTg5ZWVkYmE4CiAgICAgZDFlZTYxYzkwMGRjN2ZhOC4zYjNiOTk3M2FjYzk2YTU4LmQ1NTgzYzgxYjUzY2JhZjMuYzgxMWEzYzVlOWU1NThiOQogICAgIDU1NmNmOWFmODQyODRlNTcuZWY3ODJiZDZiNzU2NWQwZC5jODAxMzA4ZmY5NmEzZTczLjBmZmEyNzk1OWZiZTFmMmQKICAgICA2NzNlNjY0NGM3ODJlZDJmCi1WUEJMRU5EV18xMjhfMHhGRShtZW0pCitWU0hVRlBEXzI1Nl8xb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgYWRhN2RhYzA3YzNmN2VlYy5mZThjMTk1NjNmMWEyMDY1LmUzMzU3NTRlODI5NTc1MjguZjM2N2VjNjc2NWI4ZTdiYgogICAgIGJiMDIwMWY0ZGIwMDhkOTAuMmE5Y2JiMmFjZDNkMzI3Zi5mMTNlZjRjOTI5OTI2ZWQyLmIyZDU2ZTc3OTZiMWYyN2EKQEAgLTI0OTk2LDExICsyNDk5NiwxMSBAQAogICBhZnRlcgogICAgIGFkYTdkYWMwN2MzZjdlZWMuZmU4YzE5NTYzZjFhMjA2NS5lMzM1NzU0ZTgyOTU3NTI4LmYzNjdlYzY3NjViOGU3YmIKICAgICBiYjAyMDFmNGRiMDA4ZDkwLjJhOWNiYjJhY2QzZDMyN2YuZjEzZWY0YzkyOTkyNmVkMi5iMmQ1NmU3Nzk2YjFmMjdhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUzMzU3NTRlODI5NTc1MjguZjM2N2VjNjc2NWI4ZTdiYgorICAgIGFkYTdkYWMwN2MzZjdlZWMuYmIwMjAxZjRkYjAwOGQ5MC5lMzM1NzU0ZTgyOTU3NTI4LmYxM2VmNGM5Mjk5MjZlZDIKICAgICBhMmJlNTYzNTA0YzAxODNiLjc2Yjc3YjA5ZDA0NzA2ODYuY2U2MjdkNzQ3OGY4ZjE4YS41Y2ZkYjFlY2I1ZDQxYzA4CiAgICAgZmU0ZTZhMjlkYjE3YjQyZgogCi1WUEJMRU5EV18xMjhfMHhGRShyZWcpCitWU0hVRlBEXzI1Nl8xb2YyKHJlZykKICAgYmVmb3JlCiAgICAgYTVkOGQ5NGUzNjM1OWU3Yy4zM2I2N2MxOTA3ZDYwYzlhLjRmNWI4ZmVjN2Q0NjNmY2EuNTUxNzgwN2Q1ODc5ZjRlZgogICAgIGFjZTdmOWM1NjFiYjE1OWIuZmRkMTQ0NjYyNDIwNmU5MC4xYjFlMTdhYzZjYTZhOGNiLjY3NDdhODM4ODVlOGM4OTQKQEAgLTI1MDA4LDEyICsyNTAwOCwxMiBAQAogICAgIDQ5YzMzYzVkOTkyYzlkZmQuYWM5YmFhZTcxOTgzNmZmMC5mNzMwNzA3NDgyYmJmYWFlLjlkNGE1Mzc0MmZjMWQxNTAKICAgICA3OGI2Y2ZjZGU2NDM3ZWJmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM0NGMwZWI1M2FmNDdkMzIuZTBiZjZmOTExODUxYzg5NAorICAgIGFjOWJhYWU3MTk4MzZmZjAuZmRkMTQ0NjYyNDIwNmU5MC45ZDRhNTM3NDJmYzFkMTUwLjY3NDdhODM4ODVlOGM4OTQKICAgICBhY2U3ZjljNTYxYmIxNTliLmZkZDE0NDY2MjQyMDZlOTAuMWIxZTE3YWM2Y2E2YThjYi42NzQ3YTgzODg1ZThjODk0CiAgICAgNmVjN2M2ZmJmOTM0NTczNy5kY2Q5MmEwNjc2YWJmYjQ5LjM0NGMwZWI1M2FmNDdkMzIuZTBiZjZmOTExODUxMjhhNgogICAgIDQ5YzMzYzVkOTkyYzlkZmQuYWM5YmFhZTcxOTgzNmZmMC5mNzMwNzA3NDgyYmJmYWFlLjlkNGE1Mzc0MmZjMWQxNTAKICAgICA3OGI2Y2ZjZGU2NDM3ZWJmCi1WUEJMRU5EV18xMjhfMHhGRShtZW0pCitWU0hVRlBEXzI1Nl8xb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgNGVjZDVmODg1OGUzZWQxZi45ODI4NTg1NWRlMzAyNjk4LjQ5ZTM0MWYzMmFiMjg2YjIuYzAxODM5NTNlMTg4NWFlOQogICAgIGZhNWM3ZjkxYTJhZGQ4OWIuYjY0MzE0NTE2M2NhMmNiNS44ZjdkNjkxOGM0NDZmYmJhLmViNGU2NmMwZjJlNWRhOGYKQEAgLTI1MDIzLDExICsyNTAyMywxMSBAQAogICBhZnRlcgogICAgIDRlY2Q1Zjg4NThlM2VkMWYuOTgyODU4NTVkZTMwMjY5OC40OWUzNDFmMzJhYjI4NmIyLmMwMTgzOTUzZTE4ODVhZTkKICAgICBmYTVjN2Y5MWEyYWRkODliLmI2NDMxNDUxNjNjYTJjYjUuOGY3ZDY5MThjNDQ2ZmJiYS5lYjRlNjZjMGYyZTVkYThmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ5ZTM0MWYzMmFiMjg2YjIuYzAxODM5NTNlMTg4NWFlOQorICAgIDRlY2Q1Zjg4NThlM2VkMWYuZmE1YzdmOTFhMmFkZDg5Yi40OWUzNDFmMzJhYjI4NmIyLjhmN2Q2OTE4YzQ0NmZiYmEKICAgICA0OTEzNjEzZTJiZjIxNDk5LmQzYzU2MTAyOWVmNmEyMjMuODZkNjYyNWEwNWNiZjE0Zi5kN2Q3ZDlmMTlkODUyOWNmCiAgICAgNTBjMjE3OGQ2ZGRmNzBjMQogCi1WUEJMRU5EV18xMjhfMHgzMChyZWcpCitWU0hVRlBEXzI1Nl8yb2YyKHJlZykKICAgYmVmb3JlCiAgICAgOWIyYmE5NjY2MGZhYzZjZS5hM2QxMWFiYWEzODNkZDczLjhhYzZlYThmOGQ5Zjg5Y2QuZWYyZTI5NGZlNGQ0ZWIzMwogICAgIDE0NjA4OWU4MTI2MjY5YTIuNDQzODUzMzQ2MzZmMTMxOS44MGFjMDNjZjJjMGZkZmE4LjcxMDc3MzBjYmM3MTMzMGUKQEAgLTI1MDM1LDEyICsyNTAzNSwxMiBAQAogICAgIDAwNTkyODk3MjE0YjgxNTIuY2IyZDM2ZDEyODg2YjU3Yy45ZDU1ZGExOGViNzZjMmE0LjMwNmY3ZDhmYzk5OTlmNTcKICAgICAyNDk2MzUyYzM2M2IzYzFlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwYWMwM2NmMTdkM2RkNjEuNzEwNzczMGNiYzcxMzMwZQorICAgIDAwNTkyODk3MjE0YjgxNTIuNDQzODUzMzQ2MzZmMTMxOS45ZDU1ZGExOGViNzZjMmE0LjcxMDc3MzBjYmM3MTMzMGUKICAgICAxNDYwODllODEyNjI2OWEyLjQ0Mzg1MzM0NjM2ZjEzMTkuODBhYzAzY2YyYzBmZGZhOC43MTA3NzMwY2JjNzEzMzBlCiAgICAgMTdhYmI1N2YxZWE0OTNlYi4wODEyODk5ODg1YzI3MmI4LjEzYzJhYTJlMTdkM2RkNjEuZTgyZWJiN2VhYWFmODYwYgogICAgIDAwNTkyODk3MjE0YjgxNTIuY2IyZDM2ZDEyODg2YjU3Yy45ZDU1ZGExOGViNzZjMmE0LjMwNmY3ZDhmYzk5OTlmNTcKICAgICAyNDk2MzUyYzM2M2IzYzFlCi1WUEJMRU5EV18xMjhfMHgzMChtZW0pCitWU0hVRlBEXzI1Nl8yb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgYTI2ZTYwNDIwY2EyMTY4Yi4yYmI2ZGY5ZGI2ZTQ2Zjg2LjY4NTNkOGNkNjZjOTk5OTEuN2NiMThmZmE0Mzg0YzgxYwogICAgIDg1YzU3OGJjNjdkOWVjY2EuZjQwZWQ0ZmI3OWY5OTgzMS5iZDUxZWE3ODViOTdkYTIxLjBhMjJjNjNlYmM4YTJjNzUKQEAgLTI1MDUwLDExICsyNTA1MCwxMSBAQAogICBhZnRlcgogICAgIGEyNmU2MDQyMGNhMjE2OGIuMmJiNmRmOWRiNmU0NmY4Ni42ODUzZDhjZDY2Yzk5OTkxLjdjYjE4ZmZhNDM4NGM4MWMKICAgICA4NWM1NzhiYzY3ZDllY2NhLmY0MGVkNGZiNzlmOTk4MzEuYmQ1MWVhNzg1Yjk3ZGEyMS4wYTIyYzYzZWJjOGEyYzc1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJkNTFlYTc4NWI5N2RhMjEuMGEyMmM2M2U0Mzg0YzgxYworICAgIDJiYjZkZjlkYjZlNDZmODYuODVjNTc4YmM2N2Q5ZWNjYS43Y2IxOGZmYTQzODRjODFjLmJkNTFlYTc4NWI5N2RhMjEKICAgICBlOTFiNjQ4YjFmZTg3ODcyLmNmZGU2ZDczZmNjZDhlOWQuZmIwNDRmODZkYzAwNjI2OS5hNjczYTZhMDdmYWJmZTdlCiAgICAgNmRlYTQ5OTYwMWRmZTM4NAogCi1WUEJMRU5EV18xMjhfMHgzMChyZWcpCitWU0hVRlBEXzI1Nl8yb2YyKHJlZykKICAgYmVmb3JlCiAgICAgNTNhNjVjOWYxNDNhMTYxYy4yM2IzMzBiOWIzZDhhNjMxLjlhZWYwODY1ZjNhM2QzYjcuOWQ1MjlhYzJhMGI1MjE3OAogICAgIGI1ZjNkYzI3NTM0OGQyZjIuMzFmOWRhZmIzY2M5YmU3My43MzJhZDM2MDg4MjY0M2Y4LjY2YTc0NTVkOGIyNDJkYjMKQEAgLTI1MDYyLDEyICsyNTA2MiwxMiBAQAogICAgIDVkNzAxNTY0YzdhZmQ5MDYuM2RiZWI3NmI5ZmRhOWYyZi5iZTUxZTUyMWZmNjU5N2EyLmRjOWFhYzVjNDg2MDFhNjAKICAgICA0MWNlNjA5OTUxNDY3NDI5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjczMmFkMzYwNThlMzFiMGQuNjZhNzQ1NWQ4YjI0MmRiMworICAgIDVkNzAxNTY0YzdhZmQ5MDYuMzFmOWRhZmIzY2M5YmU3My5iZTUxZTUyMWZmNjU5N2EyLjY2YTc0NTVkOGIyNDJkYjMKICAgICBiNWYzZGMyNzUzNDhkMmYyLjMxZjlkYWZiM2NjOWJlNzMuNzMyYWQzNjA4ODI2NDNmOC42NmE3NDU1ZDhiMjQyZGIzCiAgICAgZWYxZGM2OWE1Yjk2NTViMS5mMWI4ZGQzZGQ3YzU3ZDY0LmI1ZGNjOGQwNThlMzFiMGQuMzFkMWNjNDFiYTU5NDE0NwogICAgIDVkNzAxNTY0YzdhZmQ5MDYuM2RiZWI3NmI5ZmRhOWYyZi5iZTUxZTUyMWZmNjU5N2EyLmRjOWFhYzVjNDg2MDFhNjAKICAgICA0MWNlNjA5OTUxNDY3NDI5Ci1WUEJMRU5EV18xMjhfMHgzMChtZW0pCitWU0hVRlBEXzI1Nl8yb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgM2UzYjYzZTRmMjE2MGJjZS41YjM4YzVmMTM0MjA5YTljLmYzZDVlNDcyYjExNGUwMDEuZTlkNTI1YmYxNzM4ZjI2MgogICAgIGFkYWMzNDI5NDdkYzlhN2QuNDZjMGQzYWQzZDczZDYyMC5lZGNhZGUzYzI4N2VmYzA2LjkxYjM4NTE3M2ZlODY5ZmEKQEAgLTI1MDc3LDExICsyNTA3NywxMSBAQAogICBhZnRlcgogICAgIDNlM2I2M2U0ZjIxNjBiY2UuNWIzOGM1ZjEzNDIwOWE5Yy5mM2Q1ZTQ3MmIxMTRlMDAxLmU5ZDUyNWJmMTczOGYyNjIKICAgICBhZGFjMzQyOTQ3ZGM5YTdkLjQ2YzBkM2FkM2Q3M2Q2MjAuZWRjYWRlM2MyODdlZmMwNi45MWIzODUxNzNmZTg2OWZhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVkY2FkZTNjMjg3ZWZjMDYuOTFiMzg1MTcxNzM4ZjI2MgorICAgIDViMzhjNWYxMzQyMDlhOWMuYWRhYzM0Mjk0N2RjOWE3ZC5lOWQ1MjViZjE3MzhmMjYyLmVkY2FkZTNjMjg3ZWZjMDYKICAgICA1NWM5Mjg1MTdhN2M5M2EzLjRlNDRmNTYzOTRmNWFhYTEuMjE3ZTJlY2RiNzEyYjM1Ni5jY2IxOTFhMDI5MTE5YjYwCiAgICAgMTc2ODM2YWIyM2EyY2Q4NgogCi1WUEJMRU5EV18xMjhfMHgzMChyZWcpCitWU0hVRlBEXzI1Nl8yb2YyKHJlZykKICAgYmVmb3JlCiAgICAgNGZhYWVhMWU5ZDQwMGIzNC40NTBkNDUwYzkxNmU3NDczLjI0ZDcwMjM1MWEzYmJiZjYuMTJkNTdiNmMwNzU1YzZmYgogICAgIGQyYzNhYTY3MzA3NzkxMTYuMTg4NTFlNzFjYzg2M2VmYy41NTViNWRlNWFkOTQzNWU4LmI5Mzk4NjdmMmNmOGE0ODEKQEAgLTI1MDg5LDEyICsyNTA4OSwxMiBAQAogICAgIDI0YTkzYTI4MTdlMjYzMjQuZDg0MGY1ZWExYjU4N2RlNy4zZDY1ZTk5NDY5YjA1NzU1Ljk0NWNjOGIxNjc5MGIxZTcKICAgICA4MWIyZjZhOGI0OWM1ODFlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU1NWI1ZGU1ZTk4YzU1MjQuYjkzOTg2N2YyY2Y4YTQ4MQorICAgIDI0YTkzYTI4MTdlMjYzMjQuMTg4NTFlNzFjYzg2M2VmYy4zZDY1ZTk5NDY5YjA1NzU1LmI5Mzk4NjdmMmNmOGE0ODEKICAgICBkMmMzYWE2NzMwNzc5MTE2LjE4ODUxZTcxY2M4NjNlZmMuNTU1YjVkZTVhZDk0MzVlOC5iOTM5ODY3ZjJjZjhhNDgxCiAgICAgZmFmZjcwZjE3YWQ0OWFkNy5hYmZjMmY2ZDQ1ZDBhZDY5LjNmMWMwMGUxZTk4YzU1MjQuZjA3OGNjZjI0MzA4MGExNwogICAgIDI0YTkzYTI4MTdlMjYzMjQuZDg0MGY1ZWExYjU4N2RlNy4zZDY1ZTk5NDY5YjA1NzU1Ljk0NWNjOGIxNjc5MGIxZTcKICAgICA4MWIyZjZhOGI0OWM1ODFlCi1WUEJMRU5EV18xMjhfMHgzMChtZW0pCitWU0hVRlBEXzI1Nl8yb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgOTM0NmQyYzM0ODM4YjllNy5hZDBlMDM3OGEyMmQyOGE5LjdjMWNlYWQ2NjgyYjY5YTEuYWI4NDEzNmFjOThiNzYyOQogICAgIGE3ZTRkOGVlM2M3MTkxNmYuZWY3YmM3NGRiNzQyMjUxMS43MzViOGMxYzQ4NTUyZWM0LmU1YzM3YWNmYTZhYWYwNDkKQEAgLTI1MTA0LDExICsyNTEwNCwxMSBAQAogICBhZnRlcgogICAgIDkzNDZkMmMzNDgzOGI5ZTcuYWQwZTAzNzhhMjJkMjhhOS43YzFjZWFkNjY4MmI2OWExLmFiODQxMzZhYzk4Yjc2MjkKICAgICBhN2U0ZDhlZTNjNzE5MTZmLmVmN2JjNzRkYjc0MjI1MTEuNzM1YjhjMWM0ODU1MmVjNC5lNWMzN2FjZmE2YWFmMDQ5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjczNWI4YzFjNDg1NTJlYzQuZTVjMzdhY2ZjOThiNzYyOQorICAgIGFkMGUwMzc4YTIyZDI4YTkuYTdlNGQ4ZWUzYzcxOTE2Zi5hYjg0MTM2YWM5OGI3NjI5LjczNWI4YzFjNDg1NTJlYzQKICAgICA0MDZkNTQyNWI5ZTg5NTZhLjExOTczMjM2ZjJmN2I1M2IuY2EzNWM1NjUzM2RhMzNmNC4yY2Q0ZjBmNjQ1ZTFkZjI0CiAgICAgZjIzZWY3OTEzZjExY2UzNQogCi1WUEJMRU5EV18xMjhfMHgyMShyZWcpCitWUEVSTUlMUFNfMTI4XzB4MDAocmVnKQogICBiZWZvcmUKICAgICBmNGY4MmI2YTI1YjUwNjQ0LjdlZjBjMTA4N2EzZTM5MzYuYWFlMGQwMjM0ZmIwYzE1Ni5lMzY4NTM0MTc1NGVlYTU5CiAgICAgOGQ1MDg4ZWY5NTU4YzRmZC4yZGFkNDlhYzBkNjA0NDcwLjZjNjA1OTQ0YTY2MmY0MDUuYmUyZjdlMjdiYzQ5NmFkNgpAQCAtMjUxMTYsMTIgKzI1MTE2LDEyIEBACiAgICAgZjkwNWFlYTk3Y2NkYzAxYi40ZTA1OTZlMzE2M2E3ZGUwLmRlMzMxZGQ2YjRlMmMyY2MuMmRhODk4YzJjMjAxYjRjYgogICAgIDc5ZjI3ZjRlYmJkN2Y2OWEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmM2MDU5NDQ5NDk5ZjQwNS5iZTJmN2UyN2JjNDk2ZTk4Ci0gICAgOGQ1MDg4ZWY5NTU4YzRmZC4yZGFkNDlhYzBkNjA0NDcwLjZjNjA1OTQ0YTY2MmY0MDUuYmUyZjdlMjdiYzQ5NmFkNgorICAgIGY0ZjgyYjZhMjViNTA2NDQuN2VmMGMxMDg3YTNlMzkzNi5hYWUwZDAyMzRmYjBjMTU2LmUzNjg1MzQxNzU0ZWVhNTkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjFkNjZlOTgyMWQ2NmU5OC4yMWQ2NmU5ODIxZDY2ZTk4CiAgICAgMWI5MDBiOGEyODg3NDMwYi4yOTcwNjZmYzhkNWI3MTQ1LmI0NjJjOTA3OTQ5OThiZjMuMzg1NWMxMDMyMWQ2NmU5OAogICAgIGY5MDVhZWE5N2NjZGMwMWIuNGUwNTk2ZTMxNjNhN2RlMC5kZTMzMWRkNmI0ZTJjMmNjLjJkYTg5OGMyYzIwMWI0Y2IKICAgICA3OWYyN2Y0ZWJiZDdmNjlhCi1WUEJMRU5EV18xMjhfMHgyMShtZW0pCitWUEVSTUlMUFNfMTI4XzB4MDAobWVtKQogICBiZWZvcmUKICAgICBmNzAwZjM5NDI3NjNmMTMyLjgyZmI2ZmI3MmRiNjc3ZDkuNzgzODU0NGZjNTA5MjQ2ZS40NjFmNGYxZmEzYzhkNTNlCiAgICAgODU5ZTZmODEyMmIxNjBiZS4xNGJlNGEyMGQ2Y2ZhNGYwLjgzZDQxYzJiYjVkNTIyMWIuNDg3MjVlNGRmY2Q4ZmZmMgpAQCAtMjUxMzAsMTIgKzI1MTMwLDEyIEBACiAgICAgODJjYzgzNmQ5Zjc2NjU1ZQogICBhZnRlcgogICAgIGY3MDBmMzk0Mjc2M2YxMzIuODJmYjZmYjcyZGI2NzdkOS43ODM4NTQ0ZmM1MDkyNDZlLjQ2MWY0ZjFmYTNjOGQ1M2UKLSAgICA4NTllNmY4MTIyYjE2MGJlLjE0YmU0YTIwZDZjZmE0ZjAuODNkNDFjMmJiNWQ1MjIxYi40ODcyNWU0ZGZjZDhmZmYyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgzZDQxYzJiYjVkNTI0NmUuNDg3MjVlNGRhM2M4ZmZmMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hM2M4ZDUzZWEzYzhkNTNlLmEzYzhkNTNlNDYxZjRmMWYKKyAgICBmZTk4NmYwMGM5Y2QwMDZiLjA5OWEzOTUwMTNhMzgzMGQuNGJhNzZiNjMwM2E5MzIxMi40MDc4NDNjYzVjOWM3ZDk3CiAgICAgM2ViOTZmZmMzOGM0OGQ2NS5iZmRhMzliMzgxYmU0ZmRiLmFjN2JiYmUzY2E5MTExN2YuOGE3ZGZiMDg1ZWEzOGJkNwogICAgIDgyY2M4MzZkOWY3NjY1NWUKIAotVlBCTEVORFdfMTI4XzB4MjEocmVnKQorVlBFUk1JTFBTXzEyOF8weDAwKHJlZykKICAgYmVmb3JlCiAgICAgODRiM2Q2NjdiYWEzNDZkOS4yMWNmZWM2MzhhYTJjM2Q3LjkwY2M0N2I1YmNhYzQ1MDcuODExZDhhOTgyNzlhN2I5MAogICAgIGVjN2NmMDYzNGNiNTZiZjQuODNhNDYwMjBkYjcxNWRlZC5kOWJhNWVjMjVlZmFhMDNjLmE4NTk1MzZjMzVjZjJjNmYKQEAgLTI1MTQzLDEyICsyNTE0MywxMiBAQAogICAgIDVlZTc2YTBkNDJiOTcwYjkuMzNiZTIyNGNlYzE4YjBiOS40NGJkOThhZTRlZTQ3OTc0LjU5Y2VjNDI1ZDVlZTUxNDgKICAgICA5YWEwNjRlMmEwZjAzZTliCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ5YmE1ZWMyMDYzNGEwM2MuYTg1OTUzNmMzNWNmZGY0OAotICAgIGVjN2NmMDYzNGNiNTZiZjQuODNhNDYwMjBkYjcxNWRlZC5kOWJhNWVjMjVlZmFhMDNjLmE4NTk1MzZjMzVjZjJjNmYKKyAgICA4NGIzZDY2N2JhYTM0NmQ5LjIxY2ZlYzYzOGFhMmMzZDcuOTBjYzQ3YjViY2FjNDUwNy44MTFkOGE5ODI3OWE3YjkwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEwM2NkZjQ4MTAzY2RmNDguMTAzY2RmNDgxMDNjZGY0OAogICAgIDE2NzRjZGNiZjAzODEwNWIuM2YwNTQ5MWY0ODQwMThkNS5mN2YxN2I0NjA2MzQ5ZTI3LmZjZmI5MjRkMTAzY2RmNDgKICAgICA1ZWU3NmEwZDQyYjk3MGI5LjMzYmUyMjRjZWMxOGIwYjkuNDRiZDk4YWU0ZWU0Nzk3NC41OWNlYzQyNWQ1ZWU1MTQ4CiAgICAgOWFhMDY0ZTJhMGYwM2U5YgotVlBCTEVORFdfMTI4XzB4MjEobWVtKQorVlBFUk1JTFBTXzEyOF8weDAwKG1lbSkKICAgYmVmb3JlCiAgICAgOWQzYmVlNmU4YzRlNjE2Yy4xZjIwYzI5M2RmYzNjOGJhLjNhOWI2ODkzZTQwN2UxYzUuMWU2YWIzNjRkMjk4NmRjZQogICAgIDNkNmNkZWI3YjUxNTc3ZTguYjc2ZGQxY2I2M2UzNTQwYi4yZjY4OTVlMTRiMTg2NjI2LmRmNDNjN2Q2MmZkY2I4ZTIKQEAgLTI1MTU3LDEyICsyNTE1NywxMiBAQAogICAgIDJhZDViMmM2NzA3YWYxMmYKICAgYWZ0ZXIKICAgICA5ZDNiZWU2ZThjNGU2MTZjLjFmMjBjMjkzZGZjM2M4YmEuM2E5YjY4OTNlNDA3ZTFjNS4xZTZhYjM2NGQyOTg2ZGNlCi0gICAgM2Q2Y2RlYjdiNTE1NzdlOC5iNzZkZDFjYjYzZTM1NDBiLjJmNjg5NWUxNGIxODY2MjYuZGY0M2M3ZDYyZmRjYjhlMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yZjY4OTVlMTRiMThlMWM1LmRmNDNjN2Q2ZDI5OGI4ZTIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDI5ODZkY2VkMjk4NmRjZS5kMjk4NmRjZTFlNmFiMzY0CisgICAgNTVmZmIwYTgzODUwM2MzYi44MTE4OTMyMDY5YTQ0ZjU4LmYwZjAyNzIwM2U1N2ZjMDguZTQ5NmQwNmYwMDNhOTQ1YgogICAgIGMzYzBlMTJkMzEwYjZjOTAuZDk2ZTA0ZmQ4ZDkyZjc0Yy41ODAxOTkzZGQ4ZDE1Zjk2Ljg5YWRjYTliZTI0MDNlZTYKICAgICAyYWQ1YjJjNjcwN2FmMTJmCiAKLVZQQkxFTkRXXzEyOF8weDIxKHJlZykKK1ZQRVJNSUxQU18xMjhfMHgwMChyZWcpCiAgIGJlZm9yZQogICAgIDI0NWE4MjVjNDY3M2ViZTEuNjE3YWVjMzJiYjUzYzIxNC4xYWJiMjFkMDZjM2E4Njk0LjQyNjU2NzI1MzY5MTRhZmQKICAgICBkMTg4MzhjOTAxYjc2NmE5LjBkZmI0ZGE0ZjIzM2ZiZjIuYTI0YmU1MDRhMjI2MzhkYy44Y2U5MGVjMzczYTM3YTY5CkBAIC0yNTE3MCwxMiArMjUxNzAsMTIgQEAKICAgICBiNzBlNDRkODk1NTFkMTI5LmZiN2QwMjdhZDllYzA1NmUuZjM2NDUyNDA4MDAwZjkxYS5hYzgxZDNkMGZiZWY5OWZlCiAgICAgM2EyY2VhMTg3ZjQxZmY3ZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMjRiZTUwNGM5ZTUzOGRjLjhjZTkwZWMzNzNhM2FiMDUKLSAgICBkMTg4MzhjOTAxYjc2NmE5LjBkZmI0ZGE0ZjIzM2ZiZjIuYTI0YmU1MDRhMjI2MzhkYy44Y2U5MGVjMzczYTM3YTY5CisgICAgMjQ1YTgyNWM0NjczZWJlMS42MTdhZWMzMmJiNTNjMjE0LjFhYmIyMWQwNmMzYTg2OTQuNDI2NTY3MjUzNjkxNGFmZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYjE0YWIwNWFiMTRhYjA1LmFiMTRhYjA1YWIxNGFiMDUKICAgICA4ZWFiY2Y3OTNkZDI5ZjMyLmExMGQ4MDZkZjNiOGQzNTcuY2I2YTRjMDZjOWU1NGJjZi4xMDU5MDgwMmFiMTRhYjA1CiAgICAgYjcwZTQ0ZDg5NTUxZDEyOS5mYjdkMDI3YWQ5ZWMwNTZlLmYzNjQ1MjQwODAwMGY5MWEuYWM4MWQzZDBmYmVmOTlmZQogICAgIDNhMmNlYTE4N2Y0MWZmN2YKLVZQQkxFTkRXXzEyOF8weDIxKG1lbSkKK1ZQRVJNSUxQU18xMjhfMHgwMChtZW0pCiAgIGJlZm9yZQogICAgIDk3MjhjYWM2NTIxNDlhYjUuYThmZjkyNTNhNWJmMzkzYS5mNTE3NGRiOGMxZGQ0ZTY0Ljc1ODRmNDFmNjAwNTdmNjgKICAgICBhMDNmZWRjNjkwNzcyNmNiLmJkYzhiNDU0MGFhODEzMTAuNmNhN2RmMTFjNjk3NmE2NS5hYzE3MmQxMDA4N2YxODY2CkBAIC0yNTE4NCwxMiArMjUxODQsMTIgQEAKICAgICAyZTdhM2E4MGJjMjZiMzM1CiAgIGFmdGVyCiAgICAgOTcyOGNhYzY1MjE0OWFiNS5hOGZmOTI1M2E1YmYzOTNhLmY1MTc0ZGI4YzFkZDRlNjQuNzU4NGY0MWY2MDA1N2Y2OAotICAgIGEwM2ZlZGM2OTA3NzI2Y2IuYmRjOGI0NTQwYWE4MTMxMC42Y2E3ZGYxMWM2OTc2YTY1LmFjMTcyZDEwMDg3ZjE4NjYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmNhN2RmMTFjNjk3NGU2NC5hYzE3MmQxMDYwMDUxODY2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwMDU3ZjY4NjAwNTdmNjguNjAwNTdmNjg3NTg0ZjQxZgorICAgIDJmM2VkMTA1NTY3MzVlZWUuNTJiNmE5NDk2MDk5OWI1OC4zZGY5MzM3MzA1MjUxNTljLmY2NjlmOTdkMTFmYjAyYmYKICAgICAyMWYxZjE2ZGMwMTZmZjRhLmMzMTU2YTljNDIxZDBjYmQuNDJkOGM2Yzk5OTkzMGEzNi5hZGM2NTRkNDFhMDQ3NzIwCiAgICAgMmU3YTNhODBiYzI2YjMzNQogCi1WUEJMRU5EV18xMjhfMHhENyhyZWcpCitWUEVSTUlMUFNfMTI4XzB4RkUocmVnKQogICBiZWZvcmUKICAgICBkNmQxYThlYzk1ZWVmNGE5LjUzMjRjOWViZTk2YmM1MGEuNmMzMGY0YmI0Y2MxYTNlYy41ODEyMTJmZjllZWQwNjVmCiAgICAgZmYxNjk5ODY0MWU3NzQyOS45ZmEzZDY2Y2VkN2Y2YzViLmE5NTU0NDExMWIwZjljOTEuNWM3MTk1MDEzMjQwYzU0MgpAQCAtMjUxOTcsMTIgKzI1MTk3LDEyIEBACiAgICAgNDg5ZWY0ZjE3ZjlkMjNmYy5mOGIzN2IyM2Y4MTE0YjVlLjRlZTkyMzEyNzZkZmEzZWIuOTlkMTJkMTk3MGZmN2FlNwogICAgIDhiNmEzYjA3NTQ4M2U5MDIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDVjZTU1MGExYjBmMzM1Ny41YzcxY2FiYjZlOTcwMjBiCi0gICAgZmYxNjk5ODY0MWU3NzQyOS45ZmEzZDY2Y2VkN2Y2YzViLmE5NTU0NDExMWIwZjljOTEuNWM3MTk1MDEzMjQwYzU0MgorICAgIGQ2ZDFhOGVjOTVlZWY0YTkuNTMyNGM5ZWJlOTZiYzUwYS42YzMwZjRiYjRjYzFhM2VjLjU4MTIxMmZmOWVlZDA2NWYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDVjZTU1MGFkNWNlNTUwYS5kNWNlNTUwYTRhOTYzMzU3CiAgICAgMDc5NzA5Yjk1YjlkNzA2MS5lMjM5OTJkYWU5NWNhZjY4LmQ1Y2U1NTBhNGE5NjMzNTcuMjhjMmNhYmI2ZTk3MDIwYgogICAgIDQ4OWVmNGYxN2Y5ZDIzZmMuZjhiMzdiMjNmODExNGI1ZS40ZWU5MjMxMjc2ZGZhM2ViLjk5ZDEyZDE5NzBmZjdhZTcKICAgICA4YjZhM2IwNzU0ODNlOTAyCi1WUEJMRU5EV18xMjhfMHhENyhtZW0pCitWUEVSTUlMUFNfMTI4XzB4RkUobWVtKQogICBiZWZvcmUKICAgICBkYTU4NmY3MTM1MmYwYjg4LjFmNzg1NjlhNGE3MmNiYTYuYmRkZTBjMzIzN2E3ZmM2OS42ZmYwYWI5NTNhNzgyOWY4CiAgICAgNjI2OTQ0NDQyZjEwOWJhNC5lODcxMmMyMTU4YThhMjBjLjBlODRjMWYzYzEyYzdlYjQuOTQzMGU3ZmYzM2VjMDEyYgpAQCAtMjUyMTEsMTIgKzI1MjExLDEyIEBACiAgICAgYjIzZGI0ZTA3MGU1Y2E1ZQogICBhZnRlcgogICAgIGRhNTg2ZjcxMzUyZjBiODguMWY3ODU2OWE0YTcyY2JhNi5iZGRlMGMzMjM3YTdmYzY5LjZmZjBhYjk1M2E3ODI5ZjgKLSAgICA2MjY5NDQ0NDJmMTA5YmE0LmU4NzEyYzIxNThhOGEyMGMuMGU4NGMxZjNjMTJjN2ViNC45NDMwZTdmZjMzZWMwMTJiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBlODQwYzMyMzdhNzdlYjQuNmZmMGFiOTUzM2VjMDEyYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZGRlMGMzMmJkZGUwYzMyLmJkZGUwYzMyYmRkZTBjMzIKKyAgICBmZjY3Mzk2YTVmMzE1NjgyLmZmZDQ3MWYwNDRjY2U1ZGEuYzU3MjE3NTJiM2FiOGM2Yy4xOGY0ZDViZGZjYzg2NjMwCiAgICAgOGUxZmM3ZDFlMDllZjg1MC5jMWVmMjE3NWFhNjljZmJjLmJmNzM4OTNiMjgzMWUzYmMuNTk4YTcwMzkzMjk3OTViMgogICAgIGIyM2RiNGUwNzBlNWNhNWUKIAotVlBCTEVORFdfMTI4XzB4RDcocmVnKQorVlBFUk1JTFBTXzEyOF8weEZFKHJlZykKICAgYmVmb3JlCiAgICAgN2U1ODllMWY1MzNlNDBkZi5lOTVkNmI2NGNmNjMzZDM3Ljg4MGMzOTFhMjcwYjlkNWQuZDg1NTkzOWEzY2M5M2VkMQogICAgIDFiMjgyOTYxNzYyZjM1ZTIuZWNlZGEyMGU0ODhkZTA2Ni5iMTc5YjM0ZDU2M2Y4YjY5LmVjZTJiMTViMGM3ZjViZDcKQEAgLTI1MjI0LDEyICsyNTIyNCwxMiBAQAogICAgIDM0MTcxMjlkZWQwNzg2MWMuNWYzMmI2NWM0NTNlMzI0Ni45OTZlYzIwOTNjOGJiNjc1Ljc1MzExYWI0NGY3N2M2NjQKICAgICBhMThhNWQyNGZhZDA4YzQzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk4ODA4ZDc5NTYzZmQ1OGUuZWNlMjVmNmJiNDYwZjRmOQotICAgIDFiMjgyOTYxNzYyZjM1ZTIuZWNlZGEyMGU0ODhkZTA2Ni5iMTc5YjM0ZDU2M2Y4YjY5LmVjZTJiMTViMGM3ZjViZDcKKyAgICA3ZTU4OWUxZjUzM2U0MGRmLmU5NWQ2YjY0Y2Y2MzNkMzcuODgwYzM5MWEyNzBiOWQ1ZC5kODU1OTM5YTNjYzkzZWQxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk4ODA4ZDc5OTg4MDhkNzkuOTg4MDhkNzlkNDkwZDU4ZQogICAgIGUzZjk1MDEyNzU0M2UzMTIuNzU5YmU3YmQ2NTI4OWUwNy45ODgwOGQ3OWQ0OTBkNThlLmQ3ZTg1ZjZiYjQ2MGY0ZjkKICAgICAzNDE3MTI5ZGVkMDc4NjFjLjVmMzJiNjVjNDUzZTMyNDYuOTk2ZWMyMDkzYzhiYjY3NS43NTMxMWFiNDRmNzdjNjY0CiAgICAgYTE4YTVkMjRmYWQwOGM0MwotVlBCTEVORFdfMTI4XzB4RDcobWVtKQorVlBFUk1JTFBTXzEyOF8weEZFKG1lbSkKICAgYmVmb3JlCiAgICAgMzliZWE0YTVkMDc4MDNjMy42OGNlNjg3MDdhMDY1Y2FjLjg2ODA4Y2Q3MDFkZDVhNTAuMTA4ZTRlNmIyYmJhNmJjZAogICAgIDE4OWI2YjI1ZWQ3YWU3MTAuZGQ2OTUwZjdiN2NjOWY2ZC5jNjRmZTQxYmI4MTFkMDUxLjU5MmUyZTBhM2NhYjMwNDAKQEAgLTI1MjM4LDEyICsyNTIzOCwxMiBAQAogICAgIGI4ZmU5ODhlNTc3ZjM1ZjYKICAgYWZ0ZXIKICAgICAzOWJlYTRhNWQwNzgwM2MzLjY4Y2U2ODcwN2EwNjVjYWMuODY4MDhjZDcwMWRkNWE1MC4xMDhlNGU2YjJiYmE2YmNkCi0gICAgMTg5YjZiMjVlZDdhZTcxMC5kZDY5NTBmN2I3Y2M5ZjZkLmM2NGZlNDFiYjgxMWQwNTEuNTkyZTJlMGEzY2FiMzA0MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNjRmOGNkNzAxZGRkMDUxLjEwOGU0ZTZiM2NhYjMwNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODY4MDhjZDc4NjgwOGNkNy44NjgwOGNkNzg2ODA4Y2Q3CisgICAgMWFlYjJlOGY2ZWUyZjQ1NS5lZDM2YzQ5YzQwZTY4YzBjLmZiNmMzOTEyODNlNDUxNzUuZDA5OTVkNTIwY2VhNDA3YQogICAgIDFiN2M2YWNmNmViZGU1YmYuZjY3ZmMyY2NiMmRmNWUzNS4wMWEzMDlhOTgwNjQ5OGU2LmQxMWFkNmIwMzYwMmQ5MjgKICAgICBiOGZlOTg4ZTU3N2YzNWY2CiAKLVZQQkxFTkRXXzEyOF8weEQ3KHJlZykKK1ZQRVJNSUxQU18xMjhfMHhGRShyZWcpCiAgIGJlZm9yZQogICAgIGUxOTE5YzU5MGFlZDkwOTAuZjYxODlhZDEwYTE2Nzc3OS41MjkxNDZmM2E4NDM1MzkzLmIzYzBkMGNkY2I5ZDYzZDMKICAgICBhNzFmZTA3ZWViZDkyOGExLjg5OGMzYTgxNWRmOTY2YjAuNWViODRhN2ViZjlmYTVkMi5lZjhlMDg2ODdmOTk2YjY2CkBAIC0yNTI1MSwxMiArMjUyNTEsMTIgQEAKICAgICA3ZjViMTQ4MmFhNTlmYWQ5LjQzMmJiYjliOWE4ZjRhNDQuZjc3NGM3NmNiZTZjNTJhNi43MTcxYzBiODk0MTAyYTMwCiAgICAgNzAxZDM3NDMyY2ExNTdiZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NzQwY2NkN2JmOWY5MWEwLmVmOGUyZjY4Yjk2NjZmY2MKLSAgICBhNzFmZTA3ZWViZDkyOGExLjg5OGMzYTgxNWRmOTY2YjAuNWViODRhN2ViZjlmYTVkMi5lZjhlMDg2ODdmOTk2YjY2CisgICAgZTE5MTljNTkwYWVkOTA5MC5mNjE4OWFkMTBhMTY3Nzc5LjUyOTE0NmYzYTg0MzUzOTMuYjNjMGQwY2RjYjlkNjNkMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NzQwY2NkNzc3NDBjY2Q3Ljc3NDBjY2Q3OTI3ZTkxYTAKICAgICA2OGYzNWU2Nzk3Y2UzN2Q1LmFmYTRjN2NiODQ3MzZlOGYuNzc0MGNjZDc5MjdlOTFhMC45MGRiMmY2OGI5NjY2ZmNjCiAgICAgN2Y1YjE0ODJhYTU5ZmFkOS40MzJiYmI5YjlhOGY0YTQ0LmY3NzRjNzZjYmU2YzUyYTYuNzE3MWMwYjg5NDEwMmEzMAogICAgIDcwMWQzNzQzMmNhMTU3YmYKLVZQQkxFTkRXXzEyOF8weEQ3KG1lbSkKK1ZQRVJNSUxQU18xMjhfMHhGRShtZW0pCiAgIGJlZm9yZQogICAgIDY4YWIxMWY3OWUyOGIzYTUuNDhhMWZlM2FiZjA1YWM1OS4yM2VmOTRkZWJjNTliN2Y4LjNiYTIzN2E4ZGVmNjI1OTMKICAgICAzNGU3YzhiZjA1YWVmOTBkLjFlMTMxNmZiNzI1ZThhMDAuMmFiYWNkN2UwNWRlNzFkYS5hMDE0MThmNjhmYTc0NjExCkBAIC0yNTI2NSwxMiArMjUyNjUsMTIgQEAKICAgICAyNDAwM2I4ZTFjMWVkM2FkCiAgIGFmdGVyCiAgICAgNjhhYjExZjc5ZTI4YjNhNS40OGExZmUzYWJmMDVhYzU5LjIzZWY5NGRlYmM1OWI3ZjguM2JhMjM3YThkZWY2MjU5MwotICAgIDM0ZTdjOGJmMDVhZWY5MGQuMWUxMzE2ZmI3MjVlOGEwMC4yYWJhY2Q3ZTA1ZGU3MWRhLmEwMTQxOGY2OGZhNzQ2MTEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmFiYTk0ZGViYzU5NzFkYS4zYmEyMzdhODhmYTc0NjExCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIzZWY5NGRlMjNlZjk0ZGUuMjNlZjk0ZGUyM2VmOTRkZQorICAgIGIyOWNkYTg3N2U0MWU2MjMuNWZmYjVhMzE2MGYwZDA3Yi4zMzVhZTI2OTkyMjkzMzEzLjgwMTc2N2M0NmMwYmYxY2QKICAgICBiYzk4YzIzYzI1ZWMzNjE1LjY2YTZjNTQ4MjQ0OGJhNzYuMWM5OTUwODk3ZTQ2YmFkMi4zOGY3MWU3ZDEyYWY2MTcyCiAgICAgMjQwMDNiOGUxYzFlZDNhZAogCi1WUEJMRU5EV18xMjhfMHhCNShyZWcpCitWUEVSTUlMUFNfMTI4XzB4MzAocmVnKQogICBiZWZvcmUKICAgICBhMDdkYmE2MTI2ZTQ4MzI5LjMwYTVmY2M4MTRiYmE1MGQuOGU1ZjUzYWM1YmYyODQ5Yy5iZjQ0OTFjY2U2NDJjMjQxCiAgICAgMDhiYzk1NjNjZDhlYWM5My5lODkwMDUxODZhYmJlZjM3LjM1NzQwMGM5YTE3ODY5OWEuZmEyNjIzMWRlNTI4MDc4ZApAQCAtMjUyNzgsMTIgKzI1Mjc4LDEyIEBACiAgICAgMGNhYzU0YTU2MWJjNWNlMC45ODMwNzFiNWI1N2MwMmQ0LjZjZGVhOGRmYzc0ZDc2Y2MuYTNjMzI4OTkxOWU0MzY2YQogICAgIGNiMTY5MjljODdkMTk5NTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjUyZjAwYzk5MDY4YTUxYi5mYTI2ODE2OGU1Mjg0NGUxCi0gICAgMDhiYzk1NjNjZDhlYWM5My5lODkwMDUxODZhYmJlZjM3LjM1NzQwMGM5YTE3ODY5OWEuZmEyNjIzMWRlNTI4MDc4ZAorICAgIGEwN2RiYTYxMjZlNDgzMjkuMzBhNWZjYzgxNGJiYTUwZC44ZTVmNTNhYzViZjI4NDljLmJmNDQ5MWNjZTY0MmMyNDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTcwNTQ0ZTFiNTJmYzgwYy45NzA1NDRlMTk3MDU0NGUxCiAgICAgYjgwN2NhMDBhZGE3OGM5Ny5jMjI1NTgxOTQwZjdjZmMwLmI1MmZjODBjOTA2OGE1MWIuYTcwZDgxNjg5NzA1NDRlMQogICAgIDBjYWM1NGE1NjFiYzVjZTAuOTgzMDcxYjViNTdjMDJkNC42Y2RlYThkZmM3NGQ3NmNjLmEzYzMyODk5MTllNDM2NmEKICAgICBjYjE2OTI5Yzg3ZDE5OTUzCi1WUEJMRU5EV18xMjhfMHhCNShtZW0pCitWUEVSTUlMUFNfMTI4XzB4MzAobWVtKQogICBiZWZvcmUKICAgICBmOWQwM2Q1ZGZjZDgyOGM5LjYwZjUyZmJjODU1NzViMWIuNDc3ZGNjZGFlMjU0NDM5ZS5iNGNiOWJiMGRmYjQxNjU4CiAgICAgMGFiZWE0Yzk5NDA2YTBmOC4xMDJlNTdiM2I2MDdjNGYzLmFjZDdlNTczZTY4ZTRmNGIuZWI0MzlkZTk3NjI4YzI2YwpAQCAtMjUyOTIsMTIgKzI1MjkyLDEyIEBACiAgICAgYmFlNGQ3NDU0YjRjNjU4ZQogICBhZnRlcgogICAgIGY5ZDAzZDVkZmNkODI4YzkuNjBmNTJmYmM4NTU3NWIxYi40NzdkY2NkYWUyNTQ0MzllLmI0Y2I5YmIwZGZiNDE2NTgKLSAgICAwYWJlYTRjOTk0MDZhMGY4LjEwMmU1N2IzYjYwN2M0ZjMuYWNkN2U1NzNlNjhlNGY0Yi5lYjQzOWRlOTc2MjhjMjZjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFjZDdjY2RhZTY4ZTRmNGIuYjRjYjlkZTlkZmI0YzI2YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZmI0MTY1OGRmYjQxNjU4LmRmYjQxNjU4NDc3ZGNjZGEKKyAgICBkYmFjNDNjYTZjNjZiZDBiLjc4YTVjOGY1OTA1NWQyMTUuYTEwYzM5NmNkYTMzZTMwNi42YjkxYWJmODI4MzViNmI0CiAgICAgNDY2NTk2NGQ5ZjA1M2IyZi5mNGE1N2ZlZWFkY2ZjMTJjLjAzZTY0MmIxZGM1MWI4ZmMuOTIwM2JmNDg5MDY4MmVkYgogICAgIGJhZTRkNzQ1NGI0YzY1OGUKIAotVlBCTEVORFdfMTI4XzB4QjUocmVnKQorVlBFUk1JTFBTXzEyOF8weDMwKHJlZykKICAgYmVmb3JlCiAgICAgNDA3ZmVlNWJmNDZkOTg3OC4yOGI3MWEzZjRhZWVkNTkwLmUwNzk3NzBhYWMwMGNmZTYuYWUzMjdmMmUwOGYzOGQ1OQogICAgIDgxMjEwMWY2Mjc1ODAyNDcuNWQ2YzRhOGI4ODJkNDg1OS45NzZlYWNiNTI3NzUzNmVjLjdmYmM2OWNmNzkyNjFjNDgKQEAgLTI1MzA1LDEyICsyNTMwNSwxMiBAQAogICAgIDlmYWEwNzZiOWViOTZmM2QuMzEzMjllZTAyZmRlYTlkNC5kYmViYmU2ODAxNTgwMjkzLmZlYjkzODJkOWI2YzVhOGUKICAgICA2NWM1MTVjMzg1OTc4MjNkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc3ZDFhY2I1YmFiODMzZWQuN2ZiYzdkODA3OTI2MjJmNgotICAgIDgxMjEwMWY2Mjc1ODAyNDcuNWQ2YzRhOGI4ODJkNDg1OS45NzZlYWNiNTI3NzUzNmVjLjdmYmM2OWNmNzkyNjFjNDgKKyAgICA0MDdmZWU1YmY0NmQ5ODc4LjI4YjcxYTNmNGFlZWQ1OTAuZTA3OTc3MGFhYzAwY2ZlNi5hZTMyN2YyZTA4ZjM4ZDU5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRiZjUyMmY2NzdkMTFiNWIuNGJmNTIyZjY0YmY1MjJmNgogICAgIGQ3MTYwYTgyODE5OGUwYTQuYzE1MWEyMWQ3NmNlNTBiNi43N2QxMWI1YmJhYjgzM2VkLjUwNTA3ZDgwNGJmNTIyZjYKICAgICA5ZmFhMDc2YjllYjk2ZjNkLjMxMzI5ZWUwMmZkZWE5ZDQuZGJlYmJlNjgwMTU4MDI5My5mZWI5MzgyZDliNmM1YThlCiAgICAgNjVjNTE1YzM4NTk3ODIzZAotVlBCTEVORFdfMTI4XzB4QjUobWVtKQorVlBFUk1JTFBTXzEyOF8weDMwKG1lbSkKICAgYmVmb3JlCiAgICAgNjEzZTkwMmMyNDgzNTQyZi4zNTI5ZjMxZDE5NDhlOGJlLjg3ZGJiYmMyZDA2ODBlZGYuMWYwYjkzNDg5YWRlZGU4YQogICAgIGNlZjEyNTU2OTQzYjhkOGYuZjVkZWNhMDU4ZWQwOGFkMy5hMDE4NzRhZTc0NzkzYzAzLjllN2M5NTY4MWVkODA0N2YKQEAgLTI1MzE5LDEyICsyNTMxOSwxMiBAQAogICAgIDFkYWI4Mzc5NGZmMjg5MDgKICAgYWZ0ZXIKICAgICA2MTNlOTAyYzI0ODM1NDJmLjM1MjlmMzFkMTk0OGU4YmUuODdkYmJiYzJkMDY4MGVkZi4xZjBiOTM0ODlhZGVkZThhCi0gICAgY2VmMTI1NTY5NDNiOGQ4Zi5mNWRlY2EwNThlZDA4YWQzLmEwMTg3NGFlNzQ3OTNjMDMuOWU3Yzk1NjgxZWQ4MDQ3ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMDE4YmJjMjc0NzkzYzAzLjFmMGI5NTY4OWFkZTA0N2YKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWFkZWRlOGE5YWRlZGU4YS45YWRlZGU4YTg3ZGJiYmMyCisgICAgODhhYTUxMmNmMmNjZTg4YS4zYzE3ODg4ZDlhZGQ4ZjI3LjU4YjQ0NTkxMzgxY2VlNmIuYjY4OWMwMzIyYmQxYjAxZQogICAgIDZiMzU4Zjk5NTk0MTIyNGIuNjQxZTJhMjNkOGZjMzQ2Ni44YjdkYWE1NTM3NWRlMjQzLmMyODAxMTE0NWQ1NjFlMTIKICAgICAxZGFiODM3OTRmZjI4OTA4CiAKLVZQQkxFTkRXXzEyOF8weEI1KHJlZykKK1ZQRVJNSUxQU18xMjhfMHgzMChyZWcpCiAgIGJlZm9yZQogICAgIDI1NTcxMmNjOWUzMTJlYWMuNTM1ZTViOGJlNmE2ZjdmZi5jYTQwYWIzMmU1YjhiNTNkLjE1M2QxZmU3OGQ0OWQyYjgKICAgICAzNGQwYmE3YmU1OWY0OWE5LjFjZjAzMWVkYjQwODIzZDIuY2FjOTA3MjY1YzlkNGQ1OC5kMmMxMjEzNDU3ZWI3YmY2CkBAIC0yNTMzMiwxMiArMjUzMzIsMTIgQEAKICAgICBkYjU4NDY5YWNjM2JjZjYwLmMxODNlY2IyODVmMDZlODMuMDgzZjQwNmRmYTE0YjUwOS41NDQ1YjlhYmI2ODJlNjdiCiAgICAgZDJkYzQ3YWU4MjhmMjExYgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMDA1MDcyNmRhMzgzOTYzLmQyYzEyYTI2NTdlYjk4MjgKLSAgICAzNGQwYmE3YmU1OWY0OWE5LjFjZjAzMWVkYjQwODIzZDIuY2FjOTA3MjY1YzlkNGQ1OC5kMmMxMjEzNDU3ZWI3YmY2CisgICAgMjU1NzEyY2M5ZTMxMmVhYy41MzVlNWI4YmU2YTZmN2ZmLmNhNDBhYjMyZTViOGI1M2QuMTUzZDFmZTc4ZDQ5ZDJiOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMTRmOTgyOGMwMDUzYTZiLmIxNGY5ODI4YjE0Zjk4MjgKICAgICBhODYxNzdmMWMwYzkxNWFiLmEyYjk4ZGFiZTA3MjYxZWYuYzAwNTNhNmJkYTM4Mzk2My45ZGQ1MmEyNmIxNGY5ODI4CiAgICAgZGI1ODQ2OWFjYzNiY2Y2MC5jMTgzZWNiMjg1ZjA2ZTgzLjA4M2Y0MDZkZmExNGI1MDkuNTQ0NWI5YWJiNjgyZTY3YgogICAgIGQyZGM0N2FlODI4ZjIxMWIKLVZQQkxFTkRXXzEyOF8weEI1KG1lbSkKK1ZQRVJNSUxQU18xMjhfMHgzMChtZW0pCiAgIGJlZm9yZQogICAgIGYzNjg1MTFhMzI4MjA1MzMuMmJmZjIxZTNhNDdmYjM3Mi41NDFiYzllY2MwOGYwNmI5LmZlYzUxNjk4NTliZWZjZjYKICAgICA5M2IzNTRkZGUxNjg0ZGYwLmYyYTQwNzM2ZTUyM2ZkOGQuMzk0ZGEwNDZhYzVhZTViZS5mZWUxYjc1ODkyYzE0YmQ3CkBAIC0yNTM0NiwxMiArMjUzNDYsMTIgQEAKICAgICBkMWI3MzU0Zjc0NTliZmU4CiAgIGFmdGVyCiAgICAgZjM2ODUxMWEzMjgyMDUzMy4yYmZmMjFlM2E0N2ZiMzcyLjU0MWJjOWVjYzA4ZjA2YjkuZmVjNTE2OTg1OWJlZmNmNgotICAgIDkzYjM1NGRkZTE2ODRkZjAuZjJhNDA3MzZlNTIzZmQ4ZC4zOTRkYTA0NmFjNWFlNWJlLmZlZTFiNzU4OTJjMTRiZDcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzk0ZGM5ZWNhYzVhZTViZS5mZWM1Yjc1ODU5YmU0YmQ3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU5YmVmY2Y2NTliZWZjZjYuNTliZWZjZjY1NDFiYzllYworICAgIDhkOGFjYmUyYWM0Y2I2N2QuOGQ5MWYxMDAyYmIzZTg1ZS40YmU1ZWRhZDY2NWRjNmJlLjY0ZTAxZjE5NDJhOWRlNTgKICAgICBiZmI5MzIxNWFmM2FmYzA3LjU5MTNkY2FlMTBiOWIxOTEuNjZhZTJkMGIwOWE1NjZlNC44YjBlNGI0ODA0MDJmMTI1CiAgICAgZDFiNzM1NGY3NDU5YmZlOAogCi1WUEJMRU5EV18xMjhfMHg4NShyZWcpCitWUEVSTUlMUFNfMTI4XzB4MjEocmVnKQogICBiZWZvcmUKICAgICA5MTI3ZGI5YzJmMzk4NjUwLjA0MGMwNTYzMDQzZmRiYmEuYjA3NWM1YWEzM2MzOTRkMS42NTc2ZGE0ZWIxM2Q4MTVkCiAgICAgMjdhOTM4OTlkMTJmN2YwNy4zNzRmYzFiNmNhNjYwZWMxLmVmMDVhNzYyMmQ1ZGNjY2IuMjYwNzcyNjE3YjMxZDI1NApAQCAtMjUzNTksMTIgKzI1MzU5LDEyIEBACiAgICAgNDQxNzA4NTgzNzhhZmUxNC5kY2Q0ZTExZjEyNGI2MzdkLjk2ZGI0NmIyMWM2ZDJlOWIuNWFiNzUxYTZlNDVmMDk2ZQogICAgIDg2NmU5MGIxYmFiMTY3ZTkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzMwZGE3NjIyZDVkY2NjYi4yNjA3NzEyZjdiMzExNmY2Ci0gICAgMjdhOTM4OTlkMTJmN2YwNy4zNzRmYzFiNmNhNjYwZWMxLmVmMDVhNzYyMmQ1ZGNjY2IuMjYwNzcyNjE3YjMxZDI1NAorICAgIDkxMjdkYjljMmYzOTg2NTAuMDQwYzA1NjMwNDNmZGJiYS5iMDc1YzVhYTMzYzM5NGQxLjY1NzZkYTRlYjEzZDgxNWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODM4ZTE2ZjY5ZDExOTYyYS44MzhlMTZmNjg0MmU3MTJmCiAgICAgZWU4YjQ4YjRmNWM2ZTliYS4zNjRkZTFmYjFhYmI1MjQ4LjczMGQ3ZTQwOWQxMTk2MmEuODQyZTcxMmY4MzhlMTZmNgogICAgIDQ0MTcwODU4Mzc4YWZlMTQuZGNkNGUxMWYxMjRiNjM3ZC45NmRiNDZiMjFjNmQyZTliLjVhYjc1MWE2ZTQ1ZjA5NmUKICAgICA4NjZlOTBiMWJhYjE2N2U5Ci1WUEJMRU5EV18xMjhfMHg4NShtZW0pCitWUEVSTUlMUFNfMTI4XzB4MjEobWVtKQogICBiZWZvcmUKICAgICBlMjFlYTgzZDIyOGVlYjkzLjg0OWE3MmYxMzQwN2ZiYzIuMDRhZTNkMGNjZTIxZmM4YS5iNWI5ZmMyMzQ5ZmRkMGNhCiAgICAgNGM5NTE4MzQzNzA0NTI5Ny4wOTYwODRlYjg3Y2ExYzcwLjhjYTg3MWIwNjk0YWRhOWIuMmNmNDliZmZiZDRiYjc2MgpAQCAtMjUzNzMsMTIgKzI1MzczLDEyIEBACiAgICAgMzljYWM2NGVlNjJjNjg1YwogICBhZnRlcgogICAgIGUyMWVhODNkMjI4ZWViOTMuODQ5YTcyZjEzNDA3ZmJjMi4wNGFlM2QwY2NlMjFmYzhhLmI1YjlmYzIzNDlmZGQwY2EKLSAgICA0Yzk1MTgzNDM3MDQ1Mjk3LjA5NjA4NGViODdjYTFjNzAuOGNhODcxYjA2OTRhZGE5Yi4yY2Y0OWJmZmJkNGJiNzYyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA0YWUzZDBjNjk0YWZjOGEuYjViOWZjMjNiZDRiYjc2MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40OWZkZDBjYWI1YjlmYzIzLjQ5ZmRkMGNhY2UyMWZjOGEKKyAgICA5ZTlkNTk4MzE2MWY1ODIyLjMxYjUzOWIyY2Q1ZTljYzkuNGU4ZWZhZjYwMGQwYjlkZC41N2Q4MWZiMjE2ZTUyMDEwCiAgICAgYjYwM2U4MTZkYWVhYjg2MC41N2U0OGViM2EyNTBiODc5LjI4MmM1M2M5YWVjMTU1N2MuOTJiMDg0YTlmMDU3NDc3ZgogICAgIDM5Y2FjNjRlZTYyYzY4NWMKIAotVlBCTEVORFdfMTI4XzB4ODUocmVnKQorVlBFUk1JTFBTXzEyOF8weDIxKHJlZykKICAgYmVmb3JlCiAgICAgYTg3MGUyMGU5NGYwYmU1My42ZTkzNDJkYWEwNzEyZjdjLmQ2M2I3ZDU4YTAyYmFjMmUuZjQ0ZGY4MTc4ZjI5NjlhMwogICAgIDNiZWZkMzU2OTcyZjg2MGYuYTQxOWUyYmE4M2MwNzlhMi4wYzA0MDQwZTY2N2JiNDkyLjhmYmY2NWNiYzAxM2IyN2YKQEAgLTI1Mzg2LDEyICsyNTM4NiwxMiBAQAogICAgIDNkYTgyNDJhMGI1MDViODguZjUzN2U0N2QxMmU4NzVjMC4wOTFmYzc1ZWIzYWNlZTE4LmEzYzE4OTE2ODE5ZGQyMDUKICAgICBkM2VhMzc4NDQ4NTYyMTA2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUzOGMwNDBlNjY3YmI0OTIuOGZiZjE3ZDJjMDEzZWMzYwotICAgIDNiZWZkMzU2OTcyZjg2MGYuYTQxOWUyYmE4M2MwNzlhMi4wYzA0MDQwZTY2N2JiNDkyLjhmYmY2NWNiYzAxM2IyN2YKKyAgICBhODcwZTIwZTk0ZjBiZTUzLjZlOTM0MmRhYTA3MTJmN2MuZDYzYjdkNThhMDJiYWMyZS5mNDRkZjgxNzhmMjk2OWEzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVkOGJlYzNjOGRjZDBiNTEuNWQ4YmVjM2NkNjRjMTdkMgogICAgIDRlOTM5NTkwOGI3NmZiM2QuMzI2MTQ0YTFhMGU0NTIwMC41MzhjMWU0MjhkY2QwYjUxLmQ2NGMxN2QyNWQ4YmVjM2MKICAgICAzZGE4MjQyYTBiNTA1Yjg4LmY1MzdlNDdkMTJlODc1YzAuMDkxZmM3NWViM2FjZWUxOC5hM2MxODkxNjgxOWRkMjA1CiAgICAgZDNlYTM3ODQ0ODU2MjEwNgotVlBCTEVORFdfMTI4XzB4ODUobWVtKQorVlBFUk1JTFBTXzEyOF8weDIxKG1lbSkKICAgYmVmb3JlCiAgICAgNDM5MzlkMDljZmMxOTU2Yy42NDdhN2Q4ZmIzNDllMDlkLmM5NjYzZjM5ZjZkOTlmMGUuODgwOWZiZDA3NGE0OTk5MwogICAgIGNkODgzNzhmMzFlYmVhNjMuMWY1NTlhMmIyMGVlYzcyOC44YmJiZDBjMTY3YzI4YzE3LjJkOTViNzAzNmI0MjQ3NmQKQEAgLTI1NDAwLDEyICsyNTQwMCwxMiBAQAogICAgIDk5MDRlZDVhYWY3M2MxZjIKICAgYWZ0ZXIKICAgICA0MzkzOWQwOWNmYzE5NTZjLjY0N2E3ZDhmYjM0OWUwOWQuYzk2NjNmMzlmNmQ5OWYwZS44ODA5ZmJkMDc0YTQ5OTkzCi0gICAgY2Q4ODM3OGYzMWViZWE2My4xZjU1OWEyYjIwZWVjNzI4LjhiYmJkMGMxNjdjMjhjMTcuMmQ5NWI3MDM2YjQyNDc2ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jOTY2M2YzOTY3YzI5ZjBlLjg4MDlmYmQwNmI0MjQ3NmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzRhNDk5OTM4ODA5ZmJkMC43NGE0OTk5M2Y2ZDk5ZjBlCisgICAgNGU5NDgyMDQ4YmRmZGIxNy5jYTg0Nzk2OWVkY2E0YmQ0LjE1MDIxMzAxODJhZmY3MDcuNTUxMWY2NjMzNTExMzU1MwogICAgIGEyODVmOTUyZjhhOTI1YjMuYzE1NDE1YjhiNzZhYTk0ZS40NDA3ODRlNTYyYWM5ZDA5LjVhYzdiNDVjNmQ5ZDlmZjAKICAgICA5OTA0ZWQ1YWFmNzNjMWYyCiAKLVZQQkxFTkRXXzEyOF8weDg1KHJlZykKK1ZQRVJNSUxQU18xMjhfMHgyMShyZWcpCiAgIGJlZm9yZQogICAgIDZmMTQ5ZWM5OTgxZWQ2MDIuYTYyNTE4Njc5NTU2ODQ2My42MDExNmI4MTE5NTkxZDQxLmY0OTZhMDU5MjNjNjNhNGEKICAgICAzNjQzYzExNWM0MmExYmNlLjM0NDE1YjJlN2RmMGI0NTUuMDIwNzc1MzFiMDIzZTM1YS4wMTdiZTE0YWUyMDg4YWY1CkBAIC0yNTQxMywxMiArMjU0MTMsMTIgQEAKICAgICAwYTJlNTNmNTUyOTcyNTRhLjYxMWMzZTgyYTAyMTc1YTkuYzRjZTlhZjdlYjc5NTRhZC5hMzc1Yzc0ZWM4MzYzMTNjCiAgICAgZWYyMzY0M2IyODM5MDEyZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNTgyNzUzMWIwMjNlMzVhLjAxN2JjNWEyZTIwODQ4MzcKLSAgICAzNjQzYzExNWM0MmExYmNlLjM0NDE1YjJlN2RmMGI0NTUuMDIwNzc1MzFiMDIzZTM1YS4wMTdiZTE0YWUyMDg4YWY1CisgICAgNmYxNDllYzk5ODFlZDYwMi5hNjI1MTg2Nzk1NTY4NDYzLjYwMTE2YjgxMTk1OTFkNDEuZjQ5NmEwNTkyM2M2M2E0YQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iYTdmNDgzNzE3NTQzNjQ1LmJhN2Y0ODM3NDg4MWM1YTIKICAgICA0YmRkNTRhYmNlMjRjYzAyLjI5YTUzZjkzY2Q4NjcwYjIuMDU4MjMxMzQxNzU0MzY0NS40ODgxYzVhMmJhN2Y0ODM3CiAgICAgMGEyZTUzZjU1Mjk3MjU0YS42MTFjM2U4MmEwMjE3NWE5LmM0Y2U5YWY3ZWI3OTU0YWQuYTM3NWM3NGVjODM2MzEzYwogICAgIGVmMjM2NDNiMjgzOTAxMmYKLVZQQkxFTkRXXzEyOF8weDg1KG1lbSkKK1ZQRVJNSUxQU18xMjhfMHgyMShtZW0pCiAgIGJlZm9yZQogICAgIDA4NTcxNjU0ZjU5NTc0M2QuY2Y4MWI4NjFlZDBmNjE1MS5iODc0ZDZlNzEzY2Y3ZTY0LjlhMzZhZGU0YzcxZTc2M2UKICAgICBjYWRkNWI4NTRiNTU0NTkxLmY2MjM4MTU5M2ExOWJkYzMuMGE3NzgzYWU0MTliNDkwZi5lNTA3NjQ2OTQ3Y2RkYmE2CkBAIC0yNTQyNywxMiArMjU0MjcsMTIgQEAKICAgICAxNWU4NDJiOWJjOThlYjk1CiAgIGFmdGVyCiAgICAgMDg1NzE2NTRmNTk1NzQzZC5jZjgxYjg2MWVkMGY2MTUxLmI4NzRkNmU3MTNjZjdlNjQuOWEzNmFkZTRjNzFlNzYzZQotICAgIGNhZGQ1Yjg1NGI1NTQ1OTEuZjYyMzgxNTkzYTE5YmRjMy4wYTc3ODNhZTQxOWI0OTBmLmU1MDc2NDY5NDdjZGRiYTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjg3NGQ2ZTc0MTliN2U2NC45YTM2YWRlNDQ3Y2RkYmE2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM3MWU3NjNlOWEzNmFkZTQuYzcxZTc2M2UxM2NmN2U2NAorICAgIDExODFhZWI5NDc4NTMxNTguZGM2MGE4NGJkNjQwNzQ0ZC4zM2YzYmZjNDQ2OTI5MGQ4LjAwOGViZGYwMDkxNGJkOGYKICAgICBiODBlOGJkZTA0MzJmM2JlLmRiODQyYmEyNWMxMGM0OWIuMGZiMjA4MTMzZmJmMTBlOC40NjE1YjNlN2E2N2U1OWE1CiAgICAgMTVlODQyYjliYzk4ZWI5NQogCi1WUEJMRU5EV18xMjhfMHgyOShyZWcpCitWUEVSTUlMUFNfMTI4XzB4RDcocmVnKQogICBiZWZvcmUKICAgICBjNzU1NjZkMmU3ZWRhZTBiLjlkNTI2ZmUwOWY2NzQ5ZWUuNTBkYjA2Y2E2OTE2ZTc1OS43YTgxZDg4OTQ4MmU4NDZlCiAgICAgYmFhNzFjOWVjMTA5ZTBiMi45YjE3ZDRhOTMzMzBlZDE1Ljk3YjEzMzJmOThkZDE5MzIuNGYyYmFkMTA3Y2VjYTk5NApAQCAtMjU0NDAsMTIgKzI1NDQwLDEyIEBACiAgICAgY2UyODJiMDBmOWM4N2I0Ni41MjU3MTY0M2I4YjAxMWY2LjBhMDg3ODYwY2VkZjllZTYuYWM0NDU0MDZkNjgyZjY3MQogICAgIGViNGIxZTRjMzU3Mzk1ODEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTdiMTMzMmY4NmYyMTkzMi42YzdlYWQxMDdjZWMzYjg2Ci0gICAgYmFhNzFjOWVjMTA5ZTBiMi45YjE3ZDRhOTMzMzBlZDE1Ljk3YjEzMzJmOThkZDE5MzIuNGYyYmFkMTA3Y2VjYTk5NAorICAgIGM3NTU2NmQyZTdlZGFlMGIuOWQ1MjZmZTA5ZjY3NDllZS41MGRiMDZjYTY5MTZlNzU5LjdhODFkODg5NDgyZTg0NmUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGM1MWIwM2Q2YzdlMDM5Ni42YzdlMDM5NjBjNTFiMDNkCiAgICAgNDgyOTVmODllOTc5YmEzNy44ZTJhMzgyNmRkOWE5YzVlLjBjNTFiMDNkODZmMjk4ZDIuNmM3ZTAzOTZmNzA0M2I4NgogICAgIGNlMjgyYjAwZjljODdiNDYuNTI1NzE2NDNiOGIwMTFmNi4wYTA4Nzg2MGNlZGY5ZWU2LmFjNDQ1NDA2ZDY4MmY2NzEKICAgICBlYjRiMWU0YzM1NzM5NTgxCi1WUEJMRU5EV18xMjhfMHgyOShtZW0pCitWUEVSTUlMUFNfMTI4XzB4RDcobWVtKQogICBiZWZvcmUKICAgICAwNTVkZGM1NDJlZTJkNWUxLmE5ZjA3YzZkOGQ4MjVkOGEuYzM2YWViZWRlMDdlMDkwOC5lZjIzODcwNTBkMzM2ODFhCiAgICAgZDU0NzBhMGFlMGRiNzJiZS4zM2NkNGUzZDQyMzQ5ZGFmLmJjMmUzMTBlNzIxMTQwYzIuMTZlY2Q5OTZkZTc3MzIxOQpAQCAtMjU0NTQsMTIgKzI1NDU0LDEyIEBACiAgICAgYWY1ODNjMTFkODY1ZTU5NQogICBhZnRlcgogICAgIDA1NWRkYzU0MmVlMmQ1ZTEuYTlmMDdjNmQ4ZDgyNWQ4YS5jMzZhZWJlZGUwN2UwOTA4LmVmMjM4NzA1MGQzMzY4MWEKLSAgICBkNTQ3MGEwYWUwZGI3MmJlLjMzY2Q0ZTNkNDIzNDlkYWYuYmMyZTMxMGU3MjExNDBjMi4xNmVjZDk5NmRlNzczMjE5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMzNmEzMTBlNzIxMTA5MDguMTZlY2Q5OTYwZDMzMzIxOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZjIzODcwNWUwN2UwOTA4LmMzNmFlYmVkMGQzMzY4MWEKKyAgICAzOWQ1MjQ1YTY0NmIyODQ0LmM5MGI5ZWRkYjM2OTc3NjMuMWI3MTY2OTQ4YTc0NzI0ZC5kYmFmNmI4MWRkMzkzNzkwCiAgICAgMGNkMmE3MzBkOTlkYjI5ZS5jOGY2NjdiODdkYWQyNjRmLmJiZmQwNTZhNDNiMzViZDguOWFiYTM4MzBhNzA0YjQyYgogICAgIGFmNTgzYzExZDg2NWU1OTUKIAotVlBCTEVORFdfMTI4XzB4MjkocmVnKQorVlBFUk1JTFBTXzEyOF8weEQ3KHJlZykKICAgYmVmb3JlCiAgICAgNzVkNDczOGYwYmU2MDY3Yi4yOTBjMGU3OTU4N2RjZGY5LjhhZDlhNTM5M2I4ZGU4MjIuNzc5ZjhhN2NiOWRiYjY4YwogICAgIDRhN2JkOTE1ZGMxNjUyODguNmU0ZGQ1MWYwMDE4MzU4MC42YzAxNTRjZThhOTRmNzg2LjJkMjM3MWI1MDlmNzQwOTgKQEAgLTI1NDY3LDEyICsyNTQ2NywxMiBAQAogICAgIDhkN2EyNGVlY2FhYzVlY2EuZGMxODczMzYzNGFkZGFjNC4wMDUxZjdlMTQ5NDhlZWIzLmYzMDA1NzUyYTYzY2NmNjMKICAgICBiYmYyNGQ4YzJhN2Q0ZDdhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZjMDE1NGNlMDU0ZWY3ODYuYjc1NTcxYjUwOWY3YjQyNgotICAgIDRhN2JkOTE1ZGMxNjUyODguNmU0ZGQ1MWYwMDE4MzU4MC42YzAxNTRjZThhOTRmNzg2LjJkMjM3MWI1MDlmNzQwOTgKKyAgICA3NWQ0NzM4ZjBiZTYwNjdiLjI5MGMwZTc5NTg3ZGNkZjkuOGFkOWE1MzkzYjhkZTgyMi43NzlmOGE3Y2I5ZGJiNjhjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNhYmI3MWUyYjc1NTM3MDQuYjc1NTM3MDRjYWJiNzFlMgogICAgIDg5OTk2YjExZTg3ZTA2NjkuYjU2Mzc4MTBlYTc5YTU2MC5jYWJiNzFlMjA1NGU4ZjI3LmI3NTUzNzA0NGYxM2I0MjYKICAgICA4ZDdhMjRlZWNhYWM1ZWNhLmRjMTg3MzM2MzRhZGRhYzQuMDA1MWY3ZTE0OTQ4ZWViMy5mMzAwNTc1MmE2M2NjZjYzCiAgICAgYmJmMjRkOGMyYTdkNGQ3YQotVlBCTEVORFdfMTI4XzB4MjkobWVtKQorVlBFUk1JTFBTXzEyOF8weEQ3KG1lbSkKICAgYmVmb3JlCiAgICAgZWRmNTk1OWVmOGUzZWE5OC5iNDZhMDAxOTFmMmI5NTU2LmJkMzk0MzdmZmFiZTkwZDkuNmIwZmUyMzdmMTBkNGVkMwogICAgIDYzZDZhYzc1MmI3ODYyZTguNThiNGZiZmM4Mjg4ZThiOS4zNjkxNjNkNjU3YmI4M2NiLjY1NDMyZTUwOTkyOWViMzYKQEAgLTI1NDgxLDEyICsyNTQ4MSwxMiBAQAogICAgIDRiOTMzMjY3YWUwMjhmOWYKICAgYWZ0ZXIKICAgICBlZGY1OTU5ZWY4ZTNlYTk4LmI0NmEwMDE5MWYyYjk1NTYuYmQzOTQzN2ZmYWJlOTBkOS42YjBmZTIzN2YxMGQ0ZWQzCi0gICAgNjNkNmFjNzUyYjc4NjJlOC41OGI0ZmJmYzgyODhlOGI5LjM2OTE2M2Q2NTdiYjgzY2IuNjU0MzJlNTA5OTI5ZWIzNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZDM5NjNkNjU3YmI5MGQ5LjY1NDMyZTUwZjEwZGViMzYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmIwZmUyMzdmYWJlOTBkOS5iZDM5NDM3ZmYxMGQ0ZWQzCisgICAgZmI2MTBjZmJlMDRhNzA5OC5kN2E2MTIwNDkwNGU5M2ExLjIxZWU0ZjI3NjhhZDZlYzUuNGIzOGQ3OTlkZTI5MDM4NgogICAgIDhmNjIzMzFlMzI2NWQxZDEuOGM4YTNmOWVlNDA5ZDJiOC41YzFhODM1ZTQ3YTIwZWY0Ljc5MzlkYTdjNWM5OGQwNmYKICAgICA0YjkzMzI2N2FlMDI4ZjlmCiAKLVZQQkxFTkRXXzEyOF8weDI5KHJlZykKK1ZQRVJNSUxQU18xMjhfMHhENyhyZWcpCiAgIGJlZm9yZQogICAgIDFkOTJkYmM0NzBmNDdjYmYuZmNhNTljYzgzZWQ0NDBjMS5kMmFkODAzNDFiNDZlMGFhLmMxZTM3YzY3MTNhNTFmODQKICAgICA0YjgyZDEwMTNmZjlkMjdlLjFmZjZjNGU3MWZhMzdhOTQuMDY1YmQxMzRkMDkwZmEyNC4yZDEzYjUyZWU2YzM1Y2EwCkBAIC0yNTQ5NCwxMiArMjU0OTQsMTIgQEAKICAgICAyYTY0OTVjNzcyNmVhYzgzLmYyZjAzZDMxZDI5MjNmOTIuYTk4ODhmMWUyNjdjNDE1Zi44YmRiZDdhNzEyN2Q0ZDJlCiAgICAgMzQwYWI4MzFhMzMxNzlmOAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNjViZDEzNGEwNzNmYTI0LjdkNzdiNTJlZTZjMzgyNzQKLSAgICA0YjgyZDEwMTNmZjlkMjdlLjFmZjZjNGU3MWZhMzdhOTQuMDY1YmQxMzRkMDkwZmEyNC4yZDEzYjUyZWU2YzM1Y2EwCisgICAgMWQ5MmRiYzQ3MGY0N2NiZi5mY2E1OWNjODNlZDQ0MGMxLmQyYWQ4MDM0MWI0NmUwYWEuYzFlMzdjNjcxM2E1MWY4NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NWUwMmMwOTdkNzdhYWEwLjdkNzdhYWEwODVlMDJjMDkKICAgICAzMWFmMTE4OWI2OWVjZTg2LmQyMjAyNTY2ZjJkZTNiNzYuODVlMDJjMDlhMDczNWNkMi43ZDc3YWFhMGRjMDY4Mjc0CiAgICAgMmE2NDk1Yzc3MjZlYWM4My5mMmYwM2QzMWQyOTIzZjkyLmE5ODg4ZjFlMjY3YzQxNWYuOGJkYmQ3YTcxMjdkNGQyZQogICAgIDM0MGFiODMxYTMzMTc5ZjgKLVZQQkxFTkRXXzEyOF8weDI5KG1lbSkKK1ZQRVJNSUxQU18xMjhfMHhENyhtZW0pCiAgIGJlZm9yZQogICAgIDU0ZDJjYTI4YWMzMGMxZmUuOTRlZjViMjkwZmY1YTcyMi41YzMyODczNGRiY2E0MjE0LmQwOWVmNGUxZmYzNmU2NzgKICAgICBjN2ZkODg3YTQ5ODVlMjZkLmNhOWE1ZjFhMjdiZmZkMGYuZWFiMjdmNWIyYTkzZmYyYS41NDZmNWFiZGM2MmQ4N2M4CkBAIC0yNTUwOCwxMiArMjU1MDgsMTIgQEAKICAgICBhZDNkNWMyMGNhZmJhOGJmCiAgIGFmdGVyCiAgICAgNTRkMmNhMjhhYzMwYzFmZS45NGVmNWIyOTBmZjVhNzIyLjVjMzI4NzM0ZGJjYTQyMTQuZDA5ZWY0ZTFmZjM2ZTY3OAotICAgIGM3ZmQ4ODdhNDk4NWUyNmQuY2E5YTVmMWEyN2JmZmQwZi5lYWIyN2Y1YjJhOTNmZjJhLjU0NmY1YWJkYzYyZDg3YzgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWMzMjdmNWIyYTkzNDIxNC41NDZmNWFiZGZmMzY4N2M4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwOWVmNGUxZGJjYTQyMTQuNWMzMjg3MzRmZjM2ZTY3OAorICAgIDZhNTg2ZTEyOTQzZDk4NzEuMjhiMjliMDc1OTU5ZThmNi43OTNjYTI5MmRiZjgzM2ZkLjkyNDhiYTFlMTdlZTYwZmMKICAgICAxN2FmZjhkY2FiNjM5ZjM1LjBhODMwZDVhM2U0ZWE0ODIuZTU5YzZiYzYwOTA1OTliYy5lNjczMTE3MDhmMDRhY2MwCiAgICAgYWQzZDVjMjBjYWZiYThiZgogCi1WTU9WVVBTX0V0b0dfMjU2KHJlZykKK1ZQRVJNSUxQU18xMjhfMHhCNShyZWcpCiAgIGJlZm9yZQogICAgIDQxZjE5Njk4NjM2MDkwYTYuYWJjZWEzYzRhYTAzYjJlNi5jYjU5YWY4MDc1MmI2ZjVmLjBhOWQ1NmUxZDBjN2VmOTEKICAgICBmZmRkYmI0NmY2YmU5ZjIxLjAyODFlOWI2YWMyOThlYWYuYzk3ZjdmZTU5NzdiODMzYS5jNDBjZGZkMTRkNDllZmE4CkBAIC0yNTUyMiwxMSArMjU1MjIsMTEgQEAKICAgICAwOGU1MDdkMDFkYzg0NzM3CiAgIGFmdGVyCiAgICAgNDFmMTk2OTg2MzYwOTBhNi5hYmNlYTNjNGFhMDNiMmU2LmNiNTlhZjgwNzUyYjZmNWYuMGE5ZDU2ZTFkMGM3ZWY5MQotICAgIGZmZGRiYjQ2ZjZiZTlmMjEuMDI4MWU5YjZhYzI5OGVhZi5jOTdmN2ZlNTk3N2I4MzNhLmM0MGNkZmQxNGQ0OWVmYTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDJjYTFkYmY1ZjQzNzlmNi5lZmI1ODI4MGVmYjU4MjgwCiAgICAgNDM0YmM4OTQyMGExMTJkYi5mODkzNDg5ZWNlZTJlZWJkLjVmNDM3OWY2NDJjYTFkYmYuZWZiNTgyODA5Yjk3NTYyZgotICAgIDQzNGJjODk0MjBhMTEyZGIuZjg5MzQ4OWVjZWUyZWViZC41ZjQzNzlmNjQyY2ExZGJmLmVmYjU4MjgwOWI5NzU2MmYKKyAgICA2OTg4YjdmMDdjOTYyNTgwLjY5ZDIzYjY4MmIzYTkwM2MuZThlZjk3MWUxMmE0Nzg5OS42NzY0YmNkY2Q3YmRkZjRmCiAgICAgMDhlNTA3ZDAxZGM4NDczNwotVk1PVlVQU19FdG9HXzI1NihtZW0pCitWUEVSTUlMUFNfMTI4XzB4QjUobWVtKQogICBiZWZvcmUKICAgICBhZTA0ZTE0ODg3YzQ0YTExLmNkZTE4NmM1YTcyODE0YmQuMzEwODNmMDBlMDNiMmU1Ny5jMmQwZDdjOGEyOTZkMTc1CiAgICAgMzU4Y2M2MzAzNGJiYTQwOS5jYjlmMzA3ZTNjZTMxYTNlLjJjMDJjZTUzMDhmMzg1M2IuNDczMjM0NjI4ZTJjNjRmZgpAQCAtMjU1MzUsMTIgKzI1NTM1LDEyIEBACiAgICAgNzg1NWQyMDI5NzM3ZDA2NQogICBhZnRlcgogICAgIGFlMDRlMTQ4ODdjNDRhMTEuY2RlMTg2YzVhNzI4MTRiZC4zMTA4M2YwMGUwM2IyZTU3LmMyZDBkN2M4YTI5NmQxNzUKLSAgICAzNThjYzYzMDM0YmJhNDA5LmNiOWYzMDdlM2NlMzFhM2UuMmMwMmNlNTMwOGYzODUzYi40NzMyMzQ2MjhlMmM2NGZmCi0gICAgYWUwNGUxNDg4N2M0NGExMS5jZGUxODZjNWE3MjgxNGJkLjMxMDgzZjAwZTAzYjJlNTcuYzJkMGQ3YzhhMjk2ZDE3NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMmQwZDdjOGEyOTZkMTc1LmUwM2IyZTU3ZTAzYjJlNTcKKyAgICA3OTRiMzA3NDNkYmIxMDRkLmJmMTFiMTg5ZDg1NDc0YWYuMzY4YzY2NGJiZjZkNTAxMy5kNTYxYWE1NzczZjA2ZGUyCiAgICAgNTYwYjlkMDBjMWQwNGIwNi4wNTgyMDY1MTE2MDY1ZWJiLjJhNzI4MmQ2MjJiNjRjMGMuYzZhOTM1MTNlZDcwMjhjYQogICAgIDc4NTVkMjAyOTczN2QwNjUKIAotVk1PVlVQU19FdG9HXzI1NihyZWcpCitWUEVSTUlMUFNfMTI4XzB4QjUocmVnKQogICBiZWZvcmUKICAgICA0NWIzN2M5MDBkZDJhMjVkLmE4OTk4N2MwZDkwNDExNjMuZjkzZDI5NDI5Mzg2MTQwZS5lNjgwOWZkZjRjZDkzNTUxCiAgICAgOGIwZDJmMjllY2NjZDk1ZS40YWMxNmRhMGEzNjUxZThlLmY3OTAxOGM5ZWE1ZWQxNTUuNDU4MTM3NTE1YWUyYzcxMApAQCAtMjU1NDksMTEgKzI1NTQ5LDExIEBACiAgICAgY2IzNGMyNWZmMWRjYzhkNgogICBhZnRlcgogICAgIDQ1YjM3YzkwMGRkMmEyNWQuYTg5OTg3YzBkOTA0MTE2My5mOTNkMjk0MjkzODYxNDBlLmU2ODA5ZmRmNGNkOTM1NTEKLSAgICA4YjBkMmYyOWVjY2NkOTVlLjRhYzE2ZGEwYTM2NTFlOGUuZjc5MDE4YzllYTVlZDE1NS40NTgxMzc1MTVhZTJjNzEwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI4MWRkMjNjNWJjNWNlNTAuMjM0MmM4MWEyMzQyYzgxYQogICAgIGE0YjBlNzNhY2ZiMWIyMTUuMWE0ZmM4OGQzYmZmMmRiMy41YmM1Y2U1MGI4MWRkMjNjLjIzNDJjODFhNjhkZWJkNzIKLSAgICBhNGIwZTczYWNmYjFiMjE1LjFhNGZjODhkM2JmZjJkYjMuNWJjNWNlNTBiODFkZDIzYy4yMzQyYzgxYTY4ZGViZDcyCisgICAgZWRlOGEwMmQ1MzBlNmEyZS5mMzBlMTU3MWJjZGNmYmZmLjgxMjk0ODQ0OTg0YzUzNmUuNWM4ZmNkMjU5MWQ4ZDRhNgogICAgIGNiMzRjMjVmZjFkY2M4ZDYKLVZNT1ZVUFNfRXRvR18yNTYobWVtKQorVlBFUk1JTFBTXzEyOF8weEI1KG1lbSkKICAgYmVmb3JlCiAgICAgNGVmZDIzYjJhNWY3NTUyZS5jMzAxNTc3MDE0NmUzYTU0LmIwY2NkMTNhNDMwYTQ0OWUuYzUwODgwMTIyNjc5OGY5OAogICAgIGMwYjY2ZDBiYzgzNDM2ZGIuODA0NjA3NmRhYzVkNjEzNC4yZjUzNzdkM2ViOTVjM2JiLjgzYWQ3NDI0ZmYyZmMzNjYKQEAgLTI1NTYyLDEyICsyNTU2MiwxMiBAQAogICAgIDMwM2Y4YjMzNjEwMjg2NWMKICAgYWZ0ZXIKICAgICA0ZWZkMjNiMmE1Zjc1NTJlLmMzMDE1NzcwMTQ2ZTNhNTQuYjBjY2QxM2E0MzBhNDQ5ZS5jNTA4ODAxMjI2Nzk4Zjk4Ci0gICAgYzBiNjZkMGJjODM0MzZkYi44MDQ2MDc2ZGFjNWQ2MTM0LjJmNTM3N2QzZWI5NWMzYmIuODNhZDc0MjRmZjJmYzM2NgotICAgIDRlZmQyM2IyYTVmNzU1MmUuYzMwMTU3NzAxNDZlM2E1NC5iMGNjZDEzYTQzMGE0NDllLmM1MDg4MDEyMjY3OThmOTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzUwODgwMTIyNjc5OGY5OC40MzBhNDQ5ZTQzMGE0NDllCisgICAgZmMyYjFhNTY3N2EwMjgwOS44MTA1YWM5MmJhNjgxOTc5LjRiNzA4MzI4ZDA4NzM1ODMuMTY2NjFmZThiZmZiMmI4MwogICAgIGUwMjdhOTgwY2Q0NWU3ZTMuMjI4ODQyNGFkNzFhOWZkMC5kZmVmNzIyNTBmZWU1NjIyLmRjN2Q3ZGM5MDE2NzAyOWMKICAgICAzMDNmOGIzMzYxMDI4NjVjCiAKLVZNT1ZVUFNfRXRvR18yNTYocmVnKQorVlBFUk1JTFBTXzEyOF8weEI1KHJlZykKICAgYmVmb3JlCiAgICAgNmRmODQzOTI3YzU1ZjE3MC40Njc3OTM3M2U2MzEyZTk2LmMwMWNjNjAxYTFmZjJlZTUuYzk5Y2JlYjZjM2Q2ZTJjMwogICAgIGYxZjRhMzUyZWRlZTdmODQuMGNlNzU1MWRlMDcwYmE0ZS5iNTBkMzMyM2I0YTQwNDYzLmUzNDJlNWM3MDk0YTk0OTMKQEAgLTI1NTc2LDExICsyNTU3NiwxMSBAQAogICAgIGYxMDk0ZjMzNWM2N2ViZDEKICAgYWZ0ZXIKICAgICA2ZGY4NDM5MjdjNTVmMTcwLjQ2Nzc5MzczZTYzMTJlOTYuYzAxY2M2MDFhMWZmMmVlNS5jOTljYmViNmMzZDZlMmMzCi0gICAgZjFmNGEzNTJlZGVlN2Y4NC4wY2U3NTUxZGUwNzBiYTRlLmI1MGQzMzIzYjRhNDA0NjMuZTM0MmU1YzcwOTRhOTQ5MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYjk0NWJmNzVlYTc4NTFjLjBiYWY2MjQ0MGJhZjYyNDQKICAgICAxNzdmYTZkZjUxNTg2ZTQzLjBjNDM2YzY5ZDQwZDQ3MzYuNWVhNzg1MWNhYjk0NWJmNy4wYmFmNjI0NGZkNTYyOWJkCi0gICAgMTc3ZmE2ZGY1MTU4NmU0My4wYzQzNmM2OWQ0MGQ0NzM2LjVlYTc4NTFjYWI5NDViZjcuMGJhZjYyNDRmZDU2MjliZAorICAgIDNhZTU0OWE1NDMyMGY4NTkuMjQ1NzUzNDNlMDE0OTE3YS4xNzM2Yjg1ODIzNWM3MDRjLjFiYWRiMjE5YjkwNjVkNmUKICAgICBmMTA5NGYzMzVjNjdlYmQxCi1WTU9WVVBTX0V0b0dfMjU2KG1lbSkKK1ZQRVJNSUxQU18xMjhfMHhCNShtZW0pCiAgIGJlZm9yZQogICAgIDY3OGZiNzdjZmY4NDkwMTMuYjg3MTg2MTE2MGQxNWE3NC4yZWVlODY5NzIwOTE1MzQ4LjNjMDVjODQzYjc4NjdlMGYKICAgICA1YjBiNjVlMmMxNmEwODYwLmViNzA1YjhkNDNmN2NmM2UuMDhkNjgxNTFhZjkxNGFjOS4yOTYyYjI0YTAzYTBjMmVjCkBAIC0yNTU4OSwxMiArMjU1ODksMTIgQEAKICAgICAzOGJjNWUzODUzMDMyOWQzCiAgIGFmdGVyCiAgICAgNjc4ZmI3N2NmZjg0OTAxMy5iODcxODYxMTYwZDE1YTc0LjJlZWU4Njk3MjA5MTUzNDguM2MwNWM4NDNiNzg2N2UwZgotICAgIDViMGI2NWUyYzE2YTA4NjAuZWI3MDViOGQ0M2Y3Y2YzZS4wOGQ2ODE1MWFmOTE0YWM5LjI5NjJiMjRhMDNhMGMyZWMKLSAgICA2NzhmYjc3Y2ZmODQ5MDEzLmI4NzE4NjExNjBkMTVhNzQuMmVlZTg2OTcyMDkxNTM0OC4zYzA1Yzg0M2I3ODY3ZTBmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNjMDVjODQzYjc4NjdlMGYuMjA5MTUzNDgyMDkxNTM0OAorICAgIGE3NDlkNTRmYmIyMzBmZTMuMzEyZmMzODc4OTFmOTU2My44Y2Q5YzE1ZGE5MWYzMjJjLjNhOTc3MWQ3YTQzNjc4OGUKICAgICAyODE1ODNiMTBjYmU2MGM5LmU0ZjdiYTY5Y2RkNGU2OTAuOTdjNGMwYTcyYjQ4YzY5Yi5jYmYxMDE1ODM2ZDNkY2EyCiAgICAgMzhiYzVlMzg1MzAzMjlkMwogCi1WU1FSVFNTXzEyOChyZWcpCitWUEVSTUlMUFNfMTI4XzB4ODUocmVnKQogICBiZWZvcmUKICAgICBkZDQzODVlMjlhNTI5Y2NlLmJiM2FlY2YzY2Q0NGI4M2QuNjIxNzNkYTFhY2EyZmU3MS4wNjYzZmMxYjUwMTZjMzQzCiAgICAgMTZkNDcxYzRhNTRkNzEzZi4zYTg1OGIwMTFjYzNkMzZjLjA1ZGE0NjlhYzExNTFiYjEuYjM4MmYxYTYzNTk4ZTU0ZgpAQCAtMjU2MDIsMTIgKzI1NjAyLDEyIEBACiAgICAgYjM0MDg4ZGQ3ODc1MzAzMS42ZmJkNWIzMWQzZGE0MGFhLjJlNzhkZjdmZmYxZDRmMDAuM2E2ZmYyYWRhZGUxODc0NQogICAgIGNjZDZmNzAxNzljMTdmODcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDVkYTQ2OWFjMTE1MWJiMS5iMzgyZjFhNmZmYzAwMDAwCi0gICAgMTZkNDcxYzRhNTRkNzEzZi4zYTg1OGIwMTFjYzNkMzZjLjA1ZGE0NjlhYzExNTFiYjEuYjM4MmYxYTYzNTk4ZTU0ZgorICAgIGRkNDM4NWUyOWE1MjljY2UuYmIzYWVjZjNjZDQ0YjgzZC42MjE3M2RhMWFjYTJmZTcxLjA2NjNmYzFiNTAxNmMzNDMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTliYTc3ZmRmNmQ3ZThlYy43YmVkMTkzMjdiZWQxOTMyCiAgICAgM2ZiOTFkNDkxMDdmZTRkMS44MmMyZGNjNzE1NDY2YzgyLjJhOGJkM2MwYTliYTc3ZmQuN2JlZDE5MzJmNmQ3ZThlYwogICAgIGIzNDA4OGRkNzg3NTMwMzEuNmZiZDViMzFkM2RhNDBhYS4yZTc4ZGY3ZmZmMWQ0ZjAwLjNhNmZmMmFkYWRlMTg3NDUKICAgICBjY2Q2ZjcwMTc5YzE3Zjg3Ci1WU1FSVFNTXzEyOChtZW0pCitWUEVSTUlMUFNfMTI4XzB4ODUobWVtKQogICBiZWZvcmUKICAgICAwZWVjYTQxYzczODQ4Y2RlLmQwYjNhYmVjNzhiYTkyMGEuZGQ0Mjg0MmI3Mjg5MGIxMS42YmViNjY0MzVmYzhkZTY3CiAgICAgZGE3ZTc1ZTliYTM1Njk3NS5mMTVmODRlM2FkZGE0NjA5LmE5MWRkNGEyMGY2Mjg5ZTMuM2UzMTY1Nzg2NjQ5NjJkZQpAQCAtMjU2MTYsMTIgKzI1NjE2LDEyIEBACiAgICAgZDRlYzA0ZjY3YTQ1ZmE1OAogICBhZnRlcgogICAgIDBlZWNhNDFjNzM4NDhjZGUuZDBiM2FiZWM3OGJhOTIwYS5kZDQyODQyYjcyODkwYjExLjZiZWI2NjQzNWZjOGRlNjcKLSAgICBkYTdlNzVlOWJhMzU2OTc1LmYxNWY4NGUzYWRkYTQ2MDkuYTkxZGQ0YTIwZjYyODllMy4zZTMxNjU3ODY2NDk2MmRlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE5MWRkNGEyMGY2Mjg5ZTMuM2UzMTY1Nzg0ZmEwNThkZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZDQyODQyYjZiZWI2NjQzLmRkNDI4NDJiNWZjOGRlNjcKKyAgICAwZDU4ZTY1NDY3ZTBkNDc5LjcyOTAwZTJjYjI2MTg3ZGEuYWQxOWM2ODBjNjZlNzU0Yi4wNDk2ZDc4YWIwMmMxNTEwCiAgICAgODM0NTc0NDk5ODkyODcxNS5hZTkxNDUzNDI0ZGM5MjI4LmM2MDNkNmIzYjJiYjhjNzUuMTc2NmI4ZTVkN2ZjMzRhYQogICAgIGQ0ZWMwNGY2N2E0NWZhNTgKIAotVlNRUlRTU18xMjgocmVnKQorVlBFUk1JTFBTXzEyOF8weDg1KHJlZykKICAgYmVmb3JlCiAgICAgOTc3NWI3MjczMzkzYTRjNS4xODEzOWFiNDY5NTUzZTc2LjAzYjAyNTY4OWVkNmEzOWYuZDBhNzgwMjVlZjU0OGE4ZQogICAgIGJjNGVjZWU2OWU3MzZlOWQuYTg4Y2Q0ODJmNTM4YjdjOC5jYzM3YWEzMmJjZGNmNWVkLmE3ZDE0MWM0OWE0NjJiYzIKQEAgLTI1NjI5LDEyICsyNTYyOSwxMiBAQAogICAgIDljMWIxNWJiZmMxNjUxNDEuMjliMzc1ZjJiMDg3ZDllZC4yOWIwOTUzZDU3Mzk1MGI4LjJjZTdmNTM2YTg2MjQ0MmEKICAgICA5MjZhZTBlMTQzYTUzNGI1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNjMzdhYTMyYmNkY2Y1ZWQuYTdkMTQxYzRmZmMwMDAwMAotICAgIGJjNGVjZWU2OWU3MzZlOWQuYTg4Y2Q0ODJmNTM4YjdjOC5jYzM3YWEzMmJjZGNmNWVkLmE3ZDE0MWM0OWE0NjJiYzIKKyAgICA5Nzc1YjcyNzMzOTNhNGM1LjE4MTM5YWI0Njk1NTNlNzYuMDNiMDI1Njg5ZWQ2YTM5Zi5kMGE3ODAyNWVmNTQ4YThlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFiNzljNmJjY2U5YzJhM2QuMjc0ZDk0N2IyNzRkOTQ3YgogICAgIDlmYzE0NDllNTg3MDk0OGQuMGY3ZTlmOWQ1OTQ0YWMzNi42NDczZDEwMDFiNzljNmJjLjI3NGQ5NDdiY2U5YzJhM2QKICAgICA5YzFiMTViYmZjMTY1MTQxLjI5YjM3NWYyYjA4N2Q5ZWQuMjliMDk1M2Q1NzM5NTBiOC4yY2U3ZjUzNmE4NjI0NDJhCiAgICAgOTI2YWUwZTE0M2E1MzRiNQotVlNRUlRTU18xMjgobWVtKQorVlBFUk1JTFBTXzEyOF8weDg1KG1lbSkKICAgYmVmb3JlCiAgICAgMzRhNGQxNjhiYzcwYjgwYi4wZmE4M2RhOTI3ZjJlMjY1LmQyZjhkNDZlMTYwZGZjMTguNzUzYWYyNTUwYmE5Y2Y4ZQogICAgIGYwNWY0NWI3MmVjZjhhNTguNTRiM2I4ZDQ3NDhmODNhNC5lNTE4MzdmY2E4ZTBjZmU0LmE2NWRlNGI0ZDM1NDgxZWEKQEAgLTI1NjQzLDEyICsyNTY0MywxMiBAQAogICAgIDI3NTIxM2IzYzAzMDE3ZDYKICAgYWZ0ZXIKICAgICAzNGE0ZDE2OGJjNzBiODBiLjBmYTgzZGE5MjdmMmUyNjUuZDJmOGQ0NmUxNjBkZmMxOC43NTNhZjI1NTBiYTljZjhlCi0gICAgZjA1ZjQ1YjcyZWNmOGE1OC41NGIzYjhkNDc0OGY4M2E0LmU1MTgzN2ZjYThlMGNmZTQuYTY1ZGU0YjRkMzU0ODFlYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNTE4MzdmY2E4ZTBjZmU0LmE2NWRlNGI0MjU5MzZlM2IKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDJmOGQ0NmU3NTNhZjI1NS5kMmY4ZDQ2ZTBiYTljZjhlCisgICAgYTE2OGI3YmFiNmNmNjdjNy5jNzhhODNhODgwNzk2ZmFhLjQwZTExYTg3ODIwZTBmN2QuMTY2NDY4YzY0Y2M2YTA3NwogICAgIDIzOGJhMzVlNmY3YjBhODUuYzQ3Nzk5OTFlNjNkZTQyNC5iZTFlZmFmZGJmYTM3ODBlLjIzOWQ3OWY3MTI4YjY5ZTIKICAgICAyNzUyMTNiM2MwMzAxN2Q2CiAKLVZTUVJUU1NfMTI4KHJlZykKK1ZQRVJNSUxQU18xMjhfMHg4NShyZWcpCiAgIGJlZm9yZQogICAgIDdmZDAzMjY3ZjI0MWU4MDEuNTI5NDg1OGQ3NmRmMzBiZS5hN2M3ZjZmYjQyNjYxY2JlLjNiOWE1MjQ5N2JhOWM1YzMKICAgICA4ODYzZDM3ZDQ1NDgxNjBjLjA5NGVkYTM1ZTYwODk1OWQuY2NjNjk2NTMzMjgxNTMyMy45MzIyOWQ1N2QzMmViM2NhCkBAIC0yNTY1NiwxMiArMjU2NTYsMTIgQEAKICAgICAxOGY3ODc4M2JjNmU3Yjc4Ljg0MDljOTljNzJkNjBjZmYuNGIwMTkxNzkzN2JhYjIwMS40Mzg2MDI2OWM1ZTM2Mjc4CiAgICAgNTRmYTEzNDY5NzJiOWE3OAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jY2M2OTY1MzMyODE1MzIzLjkzMjI5ZDU3ZmZjMDAwMDAKLSAgICA4ODYzZDM3ZDQ1NDgxNjBjLjA5NGVkYTM1ZTYwODk1OWQuY2NjNjk2NTMzMjgxNTMyMy45MzIyOWQ1N2QzMmViM2NhCisgICAgN2ZkMDMyNjdmMjQxZTgwMS41Mjk0ODU4ZDc2ZGYzMGJlLmE3YzdmNmZiNDI2NjFjYmUuM2I5YTUyNDk3YmE5YzVjMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZjE5YzcwMGUyM2VmZTRkLmExODI1YTEzYTE4MjVhMTMKICAgICA5YzU3ZjA2MzU0ZDNkZWE1LjI2ODcxZDQwZGIwMWY1NGYuOGZjMDc2MDM0ZjE5YzcwMC5hMTgyNWExM2UyM2VmZTRkCiAgICAgMThmNzg3ODNiYzZlN2I3OC44NDA5Yzk5YzcyZDYwY2ZmLjRiMDE5MTc5MzdiYWIyMDEuNDM4NjAyNjljNWUzNjI3OAogICAgIDU0ZmExMzQ2OTcyYjlhNzgKLVZTUVJUU1NfMTI4KG1lbSkKK1ZQRVJNSUxQU18xMjhfMHg4NShtZW0pCiAgIGJlZm9yZQogICAgIGFmYTkwNzk0NzUyMjYzNzkuNTk5MTkzNGIxOGEzMmEzMS5mZWExNWQzNGM3OTQ5NWRhLjVlZDRlMzFmODZmMDUxZDEKICAgICAzMjYwNWM0MDdhZDM3OWE2LmI5NmYxMTI2MDUwMDI3N2IuNzIxYjUyZjRmNTQ2NGQwYi4yMzg2Njg2M2Q3NDhkZjFkCkBAIC0yNTY3MCwxMiArMjU2NzAsMTIgQEAKICAgICAzNWNmMDMxNWYwOTA4MTllCiAgIGFmdGVyCiAgICAgYWZhOTA3OTQ3NTIyNjM3OS41OTkxOTM0YjE4YTMyYTMxLmZlYTE1ZDM0Yzc5NDk1ZGEuNWVkNGUzMWY4NmYwNTFkMQotICAgIDMyNjA1YzQwN2FkMzc5YTYuYjk2ZjExMjYwNTAwMjc3Yi43MjFiNTJmNGY1NDY0ZDBiLjIzODY2ODYzZDc0OGRmMWQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzIxYjUyZjRmNTQ2NGQwYi4yMzg2Njg2M2ZmYzAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZlYTE1ZDM0NWVkNGUzMWYuZmVhMTVkMzQ4NmYwNTFkMQorICAgIGI3ZWM4ZTM3YzM0YTk3MmMuOTVkZWZiODAxZTExYWUwMi5iYTQzMjZjODE4ZjllZmMwLmY2NjQxY2IwYzY0ZDk5OTAKICAgICAxYzE3MTc2NDZiOTM3YTM3LjQ5MmE0ZmM1ZmY2MWZhNzQuYjRlNDU0OWM0ZGI3MzgyMi4zMmI4ZmM3MmYwOGNiYmQ3CiAgICAgMzVjZjAzMTVmMDkwODE5ZQogCi1WU1FSVFBTXzEyOChyZWcpCitWUEVSTUlMUFNfMTI4XzB4MjkocmVnKQogICBiZWZvcmUKICAgICA1YWY0MmQwNTYzZTUyNjkwLjNiYWU3NWIyOGViYmRlZjIuMzE5ZjA4NjE0NjdjNDg3YS4zYmNjNTg1Y2FmOGVlNDYwCiAgICAgZmM3NTc2YWZlNDE4ZTg1OS5mMjdjMjMwZjQ5Y2Q3ZjhhLmE5ODkyMmMwOGNlZWQ0YzMuMmFjNWFlZjQ1YjhhYWZhMwpAQCAtMjU2ODQsMTEgKzI1Njg0LDExIEBACiAgICAgMDYxNDc2MDYyZmNlMjA0ZgogICBhZnRlcgogICAgIDVhZjQyZDA1NjNlNTI2OTAuM2JhZTc1YjI4ZWJiZGVmMi4zMTlmMDg2MTQ2N2M0ODdhLjNiY2M1ODVjYWY4ZWU0NjAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjY1NjZjZWY1NzYwN2M2Yy40ZjBkYWUwNjU2MThjNTA1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZjYjY1NTFhNmY0NGQ5ZjkuNmY0NGQ5Zjk1ZTljZDI1MQogICAgIDc5OWNkYjdkMTBiNDAwYTcuMWI0ZjlkNjZiOGQ1MTgyYS4wZDMzOWE0ZTZmNDRkOWY5LjVlOWNkMjUxNmNiNjU1MWEKICAgICAyYmI3NTdkYzgyNDVhZDI0Ljk0ZjE1ZmEzZjZlMDY2ZmYuYjllYTZhNzg4YjA5OTVjOC5iNDFkNDE1ZGZmMWU5MWVmCiAgICAgMDYxNDc2MDYyZmNlMjA0ZgotVlNRUlRQU18xMjgobWVtKQorVlBFUk1JTFBTXzEyOF8weDI5KG1lbSkKICAgYmVmb3JlCiAgICAgMzI0ZGVkMzYxOWQzYmQ2NS43MDEwZTYzOWQ3NTcyOTdjLjM3MzBlNmIyMWZmOTI1MzQuMDlmYjkwYTg3YmM5NDFkZQogICAgIDEyOTQyM2RiZDgzODI1NWUuYTJmNDg0ZmVhYTc3YjE1Yy5lMWQ2YWM4MDUwMmQxMGY2LjU5YjAwNzRjZGIxMTFjZTQKQEAgLTI1Njk3LDEyICsyNTY5NywxMiBAQAogICAgIGUxYTQyYzIxYjc4YzE2NWEKICAgYWZ0ZXIKICAgICAzMjRkZWQzNjE5ZDNiZDY1LjcwMTBlNjM5ZDc1NzI5N2MuMzczMGU2YjIxZmY5MjUzNC4wOWZiOTBhODdiYzk0MWRlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNiNTRjZTg0MmZiMjk0NTMuMjRiMzcxY2I1ZGEwODA4YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZmY5MjUzNDA5ZmI5MGE4LjdiYzk0MWRlMWZmOTI1MzQKICAgICA4M2I0OTJlMDg5MGExNDY1LjFlYWYyZDk5OTgzMTgxNzAuNmZiMDJmZjdhNTg3ZTQ3MS4wNTU2Y2JjZTQ4NmM2MDg5CiAgICAgNjE3YWI4MzE0NzU0NDZhNy40MThjZGU3NTNjMGZkNDYzLmJiOGFlYjA0MzgxMzVkZDAuNjkzOGQ5OWM1ZDY3NGI3NwogICAgIGUxYTQyYzIxYjc4YzE2NWEKIAotVlNRUlRQU18xMjgocmVnKQorVlBFUk1JTFBTXzEyOF8weDI5KHJlZykKICAgYmVmb3JlCiAgICAgYzllNGMwYzlmMTZhMDBkZi44OWIyMTBiYTJmMjI3NzUwLjY1ZDk5MmZlMzI5ZmU4ZTIuYTIyZjVhOTQyOGRkMzc0MAogICAgIDdkNDY5MTAwYTg4YTQzYjIuZDUyODE2Njc1YzgwNjI4Yi5lOGUwNDVhMDE4NmRmNzk4LjAwNmRmYTkxOGZmMjJkZWMKQEAgLTI1NzExLDExICsyNTcxMSwxMSBAQAogICAgIDdkYWNkMjU3YTg2NzE0MTUKICAgYWZ0ZXIKICAgICBjOWU0YzBjOWYxNmEwMGRmLjg5YjIxMGJhMmYyMjc3NTAuNjVkOTkyZmUzMjlmZThlMi5hMjJmNWE5NDI4ZGQzNzQwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMyMmVlMzYyZmZjMDAwMDAuZmZjMDAwMDBmZmMwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44OTVkZmMwMTg3MDMzZDMyLjg3MDMzZDMyYjIwZTQ1ZTkKICAgICA1ODE0OWIzMjc3N2ExYzdmLjIyYTg0NzI0ZWE3YmM0ODUuMjRlZWYzYzc4NzAzM2QzMi5iMjBlNDVlOTg5NWRmYzAxCiAgICAgYjg5YmRiY2JmYmM1YzdmMC40Y2ZlMWRkZWY2MWU1ODY5Ljc2NGY5OWRmMWRlZmY3NWMuOTJkZmI5ODczMzJiNjBhYgogICAgIDdkYWNkMjU3YTg2NzE0MTUKLVZTUVJUUFNfMTI4KG1lbSkKK1ZQRVJNSUxQU18xMjhfMHgyOShtZW0pCiAgIGJlZm9yZQogICAgIDRmNDEwYTQ1MDUxZGQ2NmMuZjgyNjRjMzhjZmY4N2ZiNC4yZmY1MTY3ZjljNzZkYzY0LjNhNGYzMTU0NzViZDYyYzEKICAgICBlNDZhZGYzZDY1NWE2MGRiLjc0MDNlYWUzOTA5ZTgxNzUuYTc1YWFkZjVmNjhlMGFhMi5jZDNhYjk5MzJjZjdiNzBlCkBAIC0yNTcyNCwxMiArMjU3MjQsMTIgQEAKICAgICBlZjczYzQzY2EwYjA5NzFhCiAgIGFmdGVyCiAgICAgNGY0MTBhNDUwNTFkZDY2Yy5mODI2NGMzOGNmZjg3ZmI0LjJmZjUxNjdmOWM3NmRjNjQuM2E0ZjMxNTQ3NWJkNjJjMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zN2IxMWU4YmZmYzAwMDAwLjNjZTY0ZTlhNWE5YmIyNDkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWM3NmRjNjQzYTRmMzE1NC43NWJkNjJjMTljNzZkYzY0CiAgICAgMThmMmNjMmJlNDI5NmU4Zi44NzdjYjEzYWQ5NDMwOWUwLjkwZjk1ZjJhMjM3MjlmNGUuODk1YjJjMDZkZTJiMzVlZgogICAgIGM3YTc0ZGZiOWY5NmJlYjQuOGZkZjlkYTc0NzczNTNhMC5jNjllYTYwYzNkMmY1Njk1LmNiMDA4NzFiMjZlNTE2MGYKICAgICBlZjczYzQzY2EwYjA5NzFhCiAKLVZTUVJUUFNfMTI4KHJlZykKK1ZQRVJNSUxQU18xMjhfMHgyOShyZWcpCiAgIGJlZm9yZQogICAgIDUxMDFlMWQ3ZTkxOGYzYmQuY2Q1M2RmOWFiMmFkMGE3NS5lNjc2YWI5ODc1YmI5YTYyLjI1MTUwMDg2NjBkMGVjYTIKICAgICA0ZGY2ZDk1NzljYTk2OGE0LjA2YzNmY2YyMzg3YjBlZmYuZWE4ZWQ2NzhmZmE2MWJkMi44OTJhZTg4NGE5NjExZGEyCkBAIC0yNTczOCwxMSArMjU3MzgsMTEgQEAKICAgICA2YjEzY2RjZTdjMmZhODBhCiAgIGFmdGVyCiAgICAgNTEwMWUxZDdlOTE4ZjNiZC5jZDUzZGY5YWIyYWQwYTc1LmU2NzZhYjk4NzViYjlhNjIuMjUxNTAwODY2MGQwZWNhMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmMwMDAwMGZmYzAwMDAwLmZmYzAwMDAwMzlhZjI0NzcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzNlZmE1YzE4MmMxMTI5Yi44MmMxMTI5YmNlYThkYWYyCiAgICAgM2Y5ZWE4Mjg1NmYwMzA3Yi40ZWMzMjJmMTRkMGM4ODdkLmY2NzMxYWIzODJjMTEyOWIuY2VhOGRhZjIzM2VmYTVjMQogICAgIDgzNDQ0YmI2YjI3ODg4ZWMuODExZmNjODEwZTZhMzIxYy42NTcwNzRiNTlhOTdiYTY5LmQwNWQ1M2JjMWI4NTNmMmEKICAgICA2YjEzY2RjZTdjMmZhODBhCi1WU1FSVFBTXzEyOChtZW0pCitWUEVSTUlMUFNfMTI4XzB4MjkobWVtKQogICBiZWZvcmUKICAgICA3Yjk3YzYxNDczZjk5YzhjLjc1MzZiZDZkNGRjZGFiYTYuN2FhMzc2OTA5N2EzYzkwOC45NGQzZGVlYWUyYjQ1MGVhCiAgICAgZGJiNWI5N2IxYmYxZDdkZC43MWJlZmFiOWMyN2NkNjUzLjE3MWE5ZDA5MDNjMzA5NmMuZTBlNjU2YmVmNmE1MTBjNwpAQCAtMjU3NTEsMTIgKzI1NzUxLDEyIEBACiAgICAgMDIzZWU1MmQxNmUzYTI0YgogICBhZnRlcgogICAgIDdiOTdjNjE0NzNmOTljOGMuNzUzNmJkNmQ0ZGNkYWJhNi43YWEzNzY5MDk3YTNjOTA4Ljk0ZDNkZWVhZTJiNDUwZWEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWQxMGE2MTlmZmMwMDAwMC5mZmMwMDAwMGZmYzAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk3YTNjOTA4OTRkM2RlZWEuZTJiNDUwZWE5N2EzYzkwOAogICAgIDY5MzkyM2VkOTAyMDE0MjkuZDMyOWZlMDdhZDEwNDVhMC4zMzUxYmJkODZlZDRhZDc1LmEzZjdkNzlkNzNmNTM2YWYKICAgICAwMGVlN2U1OGVmOTQxMDliLmY3YzNjNWMxYWIxNjM0MzguYWExNTRlZTlmNWU0NzI0ZS4zYjUwNWRmM2Y0MzBmZDRjCiAgICAgMDIzZWU1MmQxNmUzYTI0YgogCi1WU1FSVFBTXzI1NihyZWcpCitWQkxFTkRQU18xMjhfMW9mMyhyZWcpCiAgIGJlZm9yZQogICAgIDU1MGM2OWI1NzQ5OTYxNTcuN2NhMjQ4YTY1NDU4ODc1Zi4zOGQ4NGM1NTU4MTlkZWM4LjU3MzBkMjI4YjNmZjE0MjQKICAgICA5MTA4ZTdmOWFiZGU3NTFkLmI4MWZmY2M1ZGE3ODM0YTMuZjRiNDhkMmQ0ZmE1ODFmYy4xODZlYzE4MWM1MmY0ZjIyCkBAIC0yNTc2NCwxMiArMjU3NjQsMTIgQEAKICAgICAyZmI2YmY2MjEyNDc4Zjg1LmU0YTcxMjIzYmFmZTIzNTUuNGFmMDMzNWU4Yzg5OWNmZS40Mjg4ZDQzMjUzMDQ3ZTQ5CiAgICAgNjRmYWYwNjEwN2MwZWJjYQogICBhZnRlcgotICAgIDU1MGM2OWI1NzQ5OTYxNTcuN2NhMjQ4YTY1NDU4ODc1Zi4zOGQ4NGM1NTU4MTlkZWM4LjU3MzBkMjI4YjNmZjE0MjQKLSAgICAyN2ZlMmI4NTRhZGQyZmEzLmZmYzAwMDAwZmZjMDAwMDAuZmZjMDAwMDAzNWUxNTRmYy5mZmMwMDAwMDQzMDFlYjhiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY0YjQ4ZDJkNGZhNTgxZmMuMTg2ZWMxODFjNTJmNGYyMgorICAgIDkxMDhlN2Y5YWJkZTc1MWQuYjgxZmZjYzVkYTc4MzRhMy5mNGI0OGQyZDRmYTU4MWZjLjE4NmVjMTgxYzUyZjRmMjIKICAgICAxMDdjNWE2NDU2M2YxYjQ4LjkyMzIxNmEwOWQwMWQ0OTEuODZhMjg2YjcyYzQ2NTY3Zi5jODlkOThlMDQ2ODNkZTc2CiAgICAgMmZiNmJmNjIxMjQ3OGY4NS5lNGE3MTIyM2JhZmUyMzU1LjRhZjAzMzVlOGM4OTljZmUuNDI4OGQ0MzI1MzA0N2U0OQogICAgIDY0ZmFmMDYxMDdjMGViY2EKLVZTUVJUUFNfMjU2KG1lbSkKK1ZCTEVORFBTXzEyOF8xb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgMDhjMDY4NWI3ZmMyZTAyMy40YTAwMTA1ZjdhODIwZDgwLjhjNGE2ZDNhNGQ3YmRkMWMuOWJlODhlOGQwYmY5OGQyNAogICAgIDBjYTZiOTBhZDYxNjFhODAuYmRhNzRiYzcyYjdkZDBlNC42NWU2YTJkMTcxODViZDEyLmQ3ZDc5NWIyNDQyMzY2OWUKQEAgLTI1Nzc4LDEyICsyNTc3OCwxMiBAQAogICAgIDllNjU4NDE4NjU3MGI3YjkKICAgYWZ0ZXIKICAgICAwOGMwNjg1YjdmYzJlMDIzLjRhMDAxMDVmN2E4MjBkODAuOGM0YTZkM2E0ZDdiZGQxYy45YmU4OGU4ZDBiZjk4ZDI0Ci0gICAgMjQxY2VmMDU3ZmMyZTAyMy40NGI1MTA4NjVkMDEwNWI0LmZmYzAwMDAwNDY3ZGVjNjYuZmZjMDAwMDAyNWIyYjk4ZgotICAgIDRhNzg1ZTVjMjhjOTU1MGUuZTVmNzZiMDZjMGMzMTU1ZS40YTQ5MmRkNDQyMjc4MDYyLjU5MDk0MzM4ZDM5MjYzMTgKKyAgICAwY2E2YjkwYWQ2MTYxYTgwLmJkYTc0YmM3MmI3ZGQwZTQuNjVlNmEyZDE3MTg1YmQxMi5kN2Q3OTViMjQ0MjM2NjllCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY1ZTZhMmQxNzE4NWJkMTIuOWJlODhlOGQwYmY5OGQyNAogICAgIGEwMDJkMjNjOTNlNjRkZjkuMWMzYjZjODhkNmUwMTg5OS4xOTNkOGEyZmRkNmRlMjM5LjdjY2E5NDhjNTVkMmJmM2QKICAgICA5ZTY1ODQxODY1NzBiN2I5CiAKLVZTUVJUUFNfMjU2KHJlZykKK1ZCTEVORFBTXzEyOF8xb2YzKHJlZykKICAgYmVmb3JlCiAgICAgMTkyODEwNDlhMGY3ODczYS5lODEwOTQ5NjMwN2FiZDZjLmJmYzE0YmI5MDg2MTE1NDIuYWM4ZjM2Y2Y1ZDY0OWVjMwogICAgIDRiNWQzMjhjYTFmMzZiNjkuMDA2ZDFkNTYxZDhmNjI5NC4yYWQzMDIwNmYyZDE0NzA1LmUwMGJhYjllZGYxNzcxMmIKQEAgLTI1NzkxLDEyICsyNTc5MSwxMiBAQAogICAgIDQwNTAyZGY0Njc3YjVkODguMGI0Nzc4Yjg1NTcyM2FiMS5jOGNlZWRhMDYwYWYzYzg3LjljYjFlNjdlNTdlMzRjNDcKICAgICBkYjczYTI2NTg1MTNjYjUyCiAgIGFmdGVyCi0gICAgMTkyODEwNDlhMGY3ODczYS5lODEwOTQ5NjMwN2FiZDZjLmJmYzE0YmI5MDg2MTE1NDIuYWM4ZjM2Y2Y1ZDY0OWVjMwotICAgIGZmYzAwMDAwMjJhZjdmNzAuZmZjMDAwMDA1YTU2YTUzMy5mZmMwMDAwMDM4OWJlYTdhLmZmYzAwMDAwNWYwOTM2ZTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmFkMzAyMDZmMmQxNDcwNS5lMDBiYWI5ZWRmMTc3MTJiCisgICAgNGI1ZDMyOGNhMWYzNmI2OS4wMDZkMWQ1NjFkOGY2Mjk0LjJhZDMwMjA2ZjJkMTQ3MDUuZTAwYmFiOWVkZjE3NzEyYgogICAgIDhlNTFlODRiMDVmMDllZjUuYzJlNmVhNjg3NTMzZjg5Yy5iOWJlOGZkOTMxYmRlYjhkLjkyN2Q2NzhhN2U5MzE3OWQKICAgICA0MDUwMmRmNDY3N2I1ZDg4LjBiNDc3OGI4NTU3MjNhYjEuYzhjZWVkYTA2MGFmM2M4Ny45Y2IxZTY3ZTU3ZTM0YzQ3CiAgICAgZGI3M2EyNjU4NTEzY2I1MgotVlNRUlRQU18yNTYobWVtKQorVkJMRU5EUFNfMTI4XzFvZjMobWVtKQogICBiZWZvcmUKICAgICAyYzhlMTkyZDI1MmY1MWVkLmJiYTZmZWYyNjQyMGU0Y2YuYjg1YzQyMzJkOTU3ZTVmZi5iMzRmMTljNTFjMzY3ODllCiAgICAgNjljZmM1YzE1MjQ0OWE0Mi41ZDllNTViMDk3Njk2ZTc1LmEzZjFjNGMzMWNlZWI1YjEuZDU4ZDBkYjYwMWRiZDk3ZgpAQCAtMjU4MDUsMTIgKzI1ODA1LDEyIEBACiAgICAgMjZhYjdhODNiOWZmMzY5NAogICBhZnRlcgogICAgIDJjOGUxOTJkMjUyZjUxZWQuYmJhNmZlZjI2NDIwZTRjZi5iODVjNDIzMmQ5NTdlNWZmLmIzNGYxOWM1MWMzNjc4OWUKLSAgICAzNjA2ZGQ3NTMyNTNkYTgyLmZmYzAwMDAwNTFjYWYzNDQuZmZjMDAwMDBmZmMwMDAwMC5mZmMwMDAwMDJkZDgyMThhCi0gICAgNmYwMjI0MGQyODVkNjE3ZS44MDg2MzA5YzljZTQzODI3LmE5ZDI3YjU1M2E0MzY2ZjQuOGNkNGM3ZGVhYTJjOWNkNgorICAgIDY5Y2ZjNWMxNTI0NDlhNDIuNWQ5ZTU1YjA5NzY5NmU3NS5hM2YxYzRjMzFjZWViNWIxLmQ1OGQwZGI2MDFkYmQ5N2YKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTNmMWM0YzMxY2VlYjViMS5iMzRmMTljNTFjMzY3ODllCiAgICAgMWFmM2IyZmRjNDg3NjNjYy44MWE4OGEyMTEwMWQ3ZTkwLmE2Y2FlMWQ2NTA2M2IzZjQuMzM2ZjQyYTliM2I0ZmM0ZQogICAgIDI2YWI3YTgzYjlmZjM2OTQKIAotVlNRUlRQU18yNTYocmVnKQorVkJMRU5EUFNfMTI4XzFvZjMocmVnKQogICBiZWZvcmUKICAgICBjMWQ0NmJkODU3OWE4NjUzLjQ3NmVlOTdlNDJjZDVjNTkuYmQ1MTYwYWI4ZjllN2M1ZC43N2E3NzQzMTc5NWE1OWRjCiAgICAgNjAzNjEyMTQyYTExMjgzOC5kMDNmNDc3YWJkM2IwODUwLjhlY2VhY2E2YjRmNTZkM2EuZjYzM2FmNTFkMjMyMTRkOApAQCAtMjU4MTgsMTIgKzI1ODE4LDEyIEBACiAgICAgMTlkNTZmZjJkY2JmNTEyMy42OTExNjU5NzFiYzA2NzJmLjYyNmU5YmEwNjE1MzFiZDIuNzE4YjBlOTU4MmJhYjhiZgogICAgIDI1ZWUyYTkwMTE4MjE5MDIKICAgYWZ0ZXIKLSAgICBjMWQ0NmJkODU3OWE4NjUzLjQ3NmVlOTdlNDJjZDVjNTkuYmQ1MTYwYWI4ZjllN2M1ZC43N2E3NzQzMTc5NWE1OWRjCi0gICAgNGVjOGJlYzZmZmMwMDAwMC5mZmMwMDAwMDQ4YTg5ZjQ2LjQ4NzNlZDVmMmQ5NTdhMjUuMWZhZGU0M2Y1YjMyYmZmYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZWNlYWNhNmI0ZjU2ZDNhLmY2MzNhZjUxZDIzMjE0ZDgKKyAgICA2MDM2MTIxNDJhMTEyODM4LmQwM2Y0NzdhYmQzYjA4NTAuOGVjZWFjYTZiNGY1NmQzYS5mNjMzYWY1MWQyMzIxNGQ4CiAgICAgNWUxZDZhYTRjZGVlNTdlZS45MjMxNDdkZTUxZGUyMmRlLjUxNjg2YzdmMWJhZThlZDIuMDAzYjBmMjQ3NmY5OWYxNQogICAgIDE5ZDU2ZmYyZGNiZjUxMjMuNjkxMTY1OTcxYmMwNjcyZi42MjZlOWJhMDYxNTMxYmQyLjcxOGIwZTk1ODJiYWI4YmYKICAgICAyNWVlMmE5MDExODIxOTAyCi1WU1FSVFBTXzI1NihtZW0pCitWQkxFTkRQU18xMjhfMW9mMyhtZW0pCiAgIGJlZm9yZQogICAgIGY4MzJkZTAyM2Y1YzdlMDkuZWNhOTFkNmJmNTBmNGY4MC4zMWFiMWQ4ZjM2ZjA5MzZlLjFkMmIzNTc3MjI3MjRmZTUKICAgICBjNjIxYTZkNTJhNTRhNTAwLjMyZTc3MTdjYjE2YjkwYjQuYzZjYmVjYjRiZjc3NjJjOC5kZmVhMzY2ZWY5OTc2OGI4CkBAIC0yNTgzMiwxMiArMjU4MzIsMTIgQEAKICAgICBkZTMxN2U1MzFjOWM1ZjY3CiAgIGFmdGVyCiAgICAgZjgzMmRlMDIzZjVjN2UwOS5lY2E5MWQ2YmY1MGY0ZjgwLjMxYWIxZDhmMzZmMDkzNmUuMWQyYjM1NzcyMjcyNGZlNQotICAgIGZmYzAwMDAwM2Y2ZDk1NzAuZmZjMDAwMDBmZmMwMDAwMC4zODkzZmVmMjNiMmY3YjNjLjJlNTE1YWQ5MzBmOTBmZTEKLSAgICA2Yjg5ZmVmNmViNzc0ODE0LjQ5ZDk2NTkwYWU1ZTRlNjguMDQzZDRjZjFkMjYzOGY2OC4wMmY4OWJmMzgyNGNhMGY3CisgICAgYzYyMWE2ZDUyYTU0YTUwMC4zMmU3NzE3Y2IxNmI5MGI0LmM2Y2JlY2I0YmY3NzYyYzguZGZlYTM2NmVmOTk3NjhiOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNmNiZWNiNGJmNzc2MmM4LjFkMmIzNTc3MjI3MjRmZTUKICAgICBjMzM0NjM1MmEwZDAyMzcxLjhiY2NmNzEzODg3NGM2NGIuYzdjZGJiMzI4OWMwZDc3Yi5lM2ExNWY3MTVhMjAzMzRkCiAgICAgZGUzMTdlNTMxYzljNWY2NwogCi1WU1FSVFBEXzEyOChyZWcpCitWQkxFTkRQU18xMjhfMm9mMyhyZWcpCiAgIGJlZm9yZQogICAgIDRmZjRmNDA3NjU0ZTVlZjAuYWFlZjUwZDM2NTZiZjQ0My41NjBjMjI3MGRhMzkzNDA3LmViNDdiNTYzMDM5OGY1MmQKICAgICA5MjM2YmVmOGQwYzE2Yzk1LmZjODU0MTY3NTU1NTc1YjQuMDRlNGUzMTU0MDNhZDM0OS40Yzc2YjQ3MDU5ZjlhN2E5CkBAIC0yNTg0NSwxMiArMjU4NDUsMTIgQEAKICAgICBmZTY1M2E0MjdlMWJhOWUyLjUwNzcyMDc0Mjc0MzdhMmEuN2Q5MDEzZTViYjFlOTcwZC4zNDI2YjZjZTBmODRiMmIxCiAgICAgNzQzZmIwZjhhNmM2ODM5NQogICBhZnRlcgotICAgIDRmZjRmNDA3NjU0ZTVlZjAuYWFlZjUwZDM2NTZiZjQ0My41NjBjMjI3MGRhMzkzNDA3LmViNDdiNTYzMDM5OGY1MmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmODAwMDAwMDAwMDAwMC5mZmY4MDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA0ZTRlMzE1NTcwM2UwYmMuYzUyNzM2NDU1OWY5YTdhOQorICAgIDkyMzZiZWY4ZDBjMTZjOTUuZmM4NTQxNjc1NTU1NzViNC4wNGU0ZTMxNTQwM2FkMzQ5LjRjNzZiNDcwNTlmOWE3YTkKICAgICAwMzQyZDY5MmZhODFjNzAyLjk0YzRiMmY4OGM5OTYzZjMuZjNhMjM0NmU1NzAzZTBiYy5jNTI3MzY0NWFhZWVhNzFiCiAgICAgZmU2NTNhNDI3ZTFiYTllMi41MDc3MjA3NDI3NDM3YTJhLjdkOTAxM2U1YmIxZTk3MGQuMzQyNmI2Y2UwZjg0YjJiMQogICAgIDc0M2ZiMGY4YTZjNjgzOTUKLVZTUVJUUERfMTI4KG1lbSkKK1ZCTEVORFBTXzEyOF8yb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgNjEzZWEwYWQ4YmMwZDdmMy5kZmVjZTU3MmY4MWE0ZmUyLjBiNjkwNWM2NDE2MDc1ODYuMDBmYjdiZTcwNjE5MzRlNwogICAgIGQ2ZWUwM2RiZDk3ZjZhZjguMDEyMWQ0OGYwNTBiZjVhZC5hMTY3ZGZkYWY3ZmIxMTMyLmQ2MmY2OGUwZDc4MGYyZjcKQEAgLTI1ODU5LDEyICsyNTg1OSwxMiBAQAogICAgIGU5NzkyN2NmN2JhZjRmMjEKICAgYWZ0ZXIKICAgICA2MTNlYTBhZDhiYzBkN2YzLmRmZWNlNTcyZjgxYTRmZTIuMGI2OTA1YzY0MTYwNzU4Ni4wMGZiN2JlNzA2MTkzNGU3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI1YWM0YzBhMGExOWU2ZjMuMjA3NGY4NTY5Yzg2NmViZgotICAgIGIxMWQ1MzZjYWQwZWY4ZDAuYzI1MDAxMDY0MTc5ZDZmMC5lZDNkMjk5YzY0MjAwYTViLjVjNzhkNzNkYzhkZDBlZTkKKyAgICBkNmVlMDNkYmQ5N2Y2YWY4LjAxMjFkNDhmMDUwYmY1YWQuYTE2N2RmZGFmN2ZiMTEzMi5kNjJmNjhlMGQ3ODBmMmY3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBiNjkwNWM2ZjdmYjExMzIuZDYyZjY4ZTAwNjE5MzRlNwogICAgIGNkOTUwZTRlMjI3YTNkYTYuN2RjNzZhNDE0N2YwMmY1Ny5jZGI3NjBmOGE1ZGMxYzJkLmVmMjJjMjY4NzViZWM0NjgKICAgICBlOTc5MjdjZjdiYWY0ZjIxCiAKLVZTUVJUUERfMTI4KHJlZykKK1ZCTEVORFBTXzEyOF8yb2YzKHJlZykKICAgYmVmb3JlCiAgICAgYTdjODAxZGQ3NTNhZWRjMC4wNTIzYWY2YzU0Y2RmNGE3LjhlZDEwYWFlYjNmYzNjOGQuMWNhMWZlZGJkNTNhMDJkMwogICAgIDg1NWQ0ZGZkMDBlZGQ4ZjAuMzc5M2IzYjI2MDE1ZDlmZi41MWI5ZGRiODIyMmEzOTNmLmI1YzY4MTJmMTE0Njc5N2EKQEAgLTI1ODcyLDEyICsyNTg3MiwxMiBAQAogICAgIDEyODQyNzI4MzZmOTg2YjUuZjU0OWQwNjY3NGIzMjE2Mi41YzU2MGQ1Mzc4MWFmMWM1LjM5ZjUyM2RlMWI5YTA5NzkKICAgICBkYzk2M2IxMTIxZjk5YTI5CiAgIGFmdGVyCi0gICAgYTdjODAxZGQ3NTNhZWRjMC4wNTIzYWY2YzU0Y2RmNGE3LjhlZDEwYWFlYjNmYzNjOGQuMWNhMWZlZGJkNTNhMDJkMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMGRlNjYyNGUwNjhhZTNjLjViNzE5ZDkwNjBiYTZiMDkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTFiOWRkYjgzMDA1NjExOC43NmYzNjRlMjExNDY3OTdhCisgICAgODU1ZDRkZmQwMGVkZDhmMC4zNzkzYjNiMjYwMTVkOWZmLjUxYjlkZGI4MjIyYTM5M2YuYjVjNjgxMmYxMTQ2Nzk3YQogICAgIGUwODIwNTlkYjc1NDRjNWQuM2ViMTk0MGM2MTVlYWFkOS4yMWNjZTBjYjMwMDU2MTE4Ljc2ZjM2NGUyNzQwZDNkNGQKICAgICAxMjg0MjcyODM2Zjk4NmI1LmY1NDlkMDY2NzRiMzIxNjIuNWM1NjBkNTM3ODFhZjFjNS4zOWY1MjNkZTFiOWEwOTc5CiAgICAgZGM5NjNiMTEyMWY5OWEyOQotVlNRUlRQRF8xMjgobWVtKQorVkJMRU5EUFNfMTI4XzJvZjMobWVtKQogICBiZWZvcmUKICAgICAzOWEzMjY2NmEzMzdhYzhhLjc4YWVhZTBiMWE2YWMzYTEuM2EyNmUyYWNiNTIwZmJjNS41ZGEzNjJiYzk2ZjQyNWYxCiAgICAgMmVlNzYyYzhiYzVmZmJjOC42ZTRlOTZiMGZmMzMzY2QwLmU3MTU0N2NhM2ViMWY0MmYuN2ZmZmRhNzIyNzFmMzg0YQpAQCAtMjU4ODYsMTIgKzI1ODg2LDEyIEBACiAgICAgNGI2M2VlOWJhMDAxMDkwZgogICBhZnRlcgogICAgIDM5YTMyNjY2YTMzN2FjOGEuNzhhZWFlMGIxYTZhYzNhMS4zYTI2ZTJhY2I1MjBmYmM1LjVkYTM2MmJjOTZmNDI1ZjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2QwYjBmY2EwNjVlOGZkMi40ZWM4ZTgxYjVjMThlNWE4Ci0gICAgOTUzMDZhMjU4ODdlNDIwZS41MGFmZGM4NDgwZGYzMGVjLmRhZTI3OWFkMmU3M2M3Y2IuMjBiNjcyZTFjNjI4Njc3OQorICAgIDJlZTc2MmM4YmM1ZmZiYzguNmU0ZTk2YjBmZjMzM2NkMC5lNzE1NDdjYTNlYjFmNDJmLjdmZmZkYTcyMjcxZjM4NGEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2EyNmUyYWMzZWIxZjQyZi43ZmZmZGE3Mjk2ZjQyNWYxCiAgICAgNGM0OGJiNjgyNDllM2U4OS43YTFjN2FmMzM5ZmFkOWExLmVkNWFmNjNmOWY3MTMyYzYuOWExMzI0NzYxMDk5ZWUyZAogICAgIDRiNjNlZTliYTAwMTA5MGYKIAotVlNRUlRQRF8xMjgocmVnKQorVkJMRU5EUFNfMTI4XzJvZjMocmVnKQogICBiZWZvcmUKICAgICA4ZGYyY2JiZTEzZTlmM2NlLjJkZmRjZjdlYWNjZWFiNjUuNDhlMjZlNmFjNzEwNzQ5Yy5mZDQ2Mzk2ZWFkYjdlZjRjCiAgICAgYmUwY2I3NDkwNGRmZTkxNC4xNTE5MjQ1MTNiMTc0NGNkLjE2NGRiMzUzYzZhZTNkODkuZTc3NWJlMjU3NDUyYmE4OApAQCAtMjU4OTksMTIgKzI1ODk5LDEyIEBACiAgICAgNTgxMWFkNGNkMjIzZThlNy42YmI5N2VlMWRmMjllZGYzLjIyNDIyMTMwODRhZjQ3ZTguYjRjODdmZGFhMGI1NmRkNQogICAgIDUxODRiM2IxM2M5NWNkM2QKICAgYWZ0ZXIKLSAgICA4ZGYyY2JiZTEzZTlmM2NlLjJkZmRjZjdlYWNjZWFiNjUuNDhlMjZlNmFjNzEwNzQ5Yy5mZDQ2Mzk2ZWFkYjdlZjRjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQwNGM3MDUzYmE4NjFiYjQuZmZmODAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNjRkYjM1M2QxNWY2ZjE0Ljg1YjIwMTRmNzQ1MmJhODgKKyAgICBiZTBjYjc0OTA0ZGZlOTE0LjE1MTkyNDUxM2IxNzQ0Y2QuMTY0ZGIzNTNjNmFlM2Q4OS5lNzc1YmUyNTc0NTJiYTg4CiAgICAgMzhmZGFlYWExMDZmMjc4ZS5lMTY5MzVjZWVkODdjNmVkLjQwYTk0NjFjZDE1ZjZmMTQuODViMjAxNGYxMjRkNTBhNwogICAgIDU4MTFhZDRjZDIyM2U4ZTcuNmJiOTdlZTFkZjI5ZWRmMy4yMjQyMjEzMDg0YWY0N2U4LmI0Yzg3ZmRhYTBiNTZkZDUKICAgICA1MTg0YjNiMTNjOTVjZDNkCi1WU1FSVFBEXzEyOChtZW0pCitWQkxFTkRQU18xMjhfMm9mMyhtZW0pCiAgIGJlZm9yZQogICAgIDM2YjIxOWMwMDJmOTJjMGIuN2I5M2FmOWJlNjg5NjljYy45MGQ0N2M3NzJjMGE3NTA4LjE4NjM0MmZiN2MyYjAxYjEKICAgICA0MDFlMmRmMzBkZWU0NTZjLmZiZDFiMDAzZTkyY2U2ZTguMmM4OGE5N2JmMTM0MTk1Yi43ZDVhYTRlOTU0NWVkODFjCkBAIC0yNTkxMywxMiArMjU5MTMsMTIgQEAKICAgICBlNzMyMjliZDM4YmM2OWRmCiAgIGFmdGVyCiAgICAgMzZiMjE5YzAwMmY5MmMwYi43YjkzYWY5YmU2ODk2OWNjLjkwZDQ3Yzc3MmMwYTc1MDguMTg2MzQyZmI3YzJiMDFiMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmY4MDAwMDAwMDAwMDAwLjJjMjhkM2FjZGI1MGIzZjEKLSAgICA0Yjk0NmIzNzc5N2VkNThjLjM1MTVhY2YwNzc5OTliZTguMWM5ZjgzZDg0OWI2OTYxNi5hZjcxNDM2NmE5ZDUwYWQ1CisgICAgNDAxZTJkZjMwZGVlNDU2Yy5mYmQxYjAwM2U5MmNlNmU4LjJjODhhOTdiZjEzNDE5NWIuN2Q1YWE0ZTk1NDVlZDgxYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MGQ0N2M3N2YxMzQxOTViLjdkNWFhNGU5N2MyYjAxYjEKICAgICAzM2UwNTA3NjYzYjg5Nzk3Ljg2YWNhMGNlMmI1YmMzNzguM2FlNjg1N2M1MTk5YTg2NS4wOWY1MWJkZTE2MWJkMTg3CiAgICAgZTczMjI5YmQzOGJjNjlkZgogCi1WU1FSVFBEXzI1NihyZWcpCitWQkxFTkRQU18xMjhfM29mMyhyZWcpCiAgIGJlZm9yZQogICAgIGE1NzQ2ODZmYWE0NDEwODkuZDRjZDU3OWRlN2E1NDliOC40OGUyODcwOWExZmY5YjQzLjYzMjkyYzUyMjRlYjBhNzYKICAgICA5ZTA3ZDQ2MTA5NDAwMDMwLjBhMjhmYzk5MjA1M2E1MWIuZDgwMjVjMGQ3NjBmNWZmNi43MzM0ZjI0NmRmYjc3YTcyCkBAIC0yNTkyNiwxMiArMjU5MjYsMTIgQEAKICAgICBiNTRlMjRiMWZjYzJhZDI3LmE1NTkxMWJjMjIyMDRkNWEuZDIzNGM2MjFhY2E5OTljMi5iOGQyZDAzODdiZWY2ZWUyCiAgICAgYTVmY2RmMGU5NDcyNmNhYwogICBhZnRlcgotICAgIGE1NzQ2ODZmYWE0NDEwODkuZDRjZDU3OWRlN2E1NDliOC40OGUyODcwOWExZmY5YjQzLjYzMjkyYzUyMjRlYjBhNzYKLSAgICAzODEyZWZmODVlYjg4ODc3LmZmZjgwMDAwMDAwMDAwMDAuZmZmODAwMDAwMDAwMDAwMC40MzYxOTY3NzU4NjUzNjk2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkyNWExZTQ3NDYxOTRhM2MuNzMzNGYyNDZkZmI3N2E3MgorICAgIDllMDdkNDYxMDk0MDAwMzAuMGEyOGZjOTkyMDUzYTUxYi5kODAyNWMwZDc2MGY1ZmY2LjczMzRmMjQ2ZGZiNzdhNzIKICAgICAzMDM2NjlmZGYwM2M3NjgxLmIxYmViYjU1MmFjZDY4ZWUuOTI1YTFlNDc0NjE5NGEzYy40NmQzNTU0NDlkMGFiMjg4CiAgICAgYjU0ZTI0YjFmY2MyYWQyNy5hNTU5MTFiYzIyMjA0ZDVhLmQyMzRjNjIxYWNhOTk5YzIuYjhkMmQwMzg3YmVmNmVlMgogICAgIGE1ZmNkZjBlOTQ3MjZjYWMKLVZTUVJUUERfMjU2KG1lbSkKK1ZCTEVORFBTXzEyOF8zb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgZTkxZWZlYjMwNGEwNjYxNC44YjliZmZlOGM4NjBlMmNmLmMyYzU3OWJjMjM1NzExOGUuZjVkZTUyMDk0NDQ5ODgzNAogICAgIDYwMDRhYTExZTg4NDE4NDMuMGQ2OWY4MGRmMGExNTEyNC5lNGQwNmY0MDRhN2U3MGI0LjU1YTJiYzZhYWI4NzUzM2QKQEAgLTI1OTQwLDEyICsyNTk0MCwxMiBAQAogICAgIDgxODcxMDliY2U2YTMxOWUKICAgYWZ0ZXIKICAgICBlOTFlZmViMzA0YTA2NjE0LjhiOWJmZmU4Yzg2MGUyY2YuYzJjNTc5YmMyMzU3MTE4ZS5mNWRlNTIwOTQ0NDk4ODM0Ci0gICAgZmZmODAwMDAwMDAwMDAwMC5mZmY4MDAwMDAwMDAwMDAwLmZmZjgwMDAwMDAwMDAwMDAuZmZmODAwMDAwMDAwMDAwMAotICAgIGU2N2E1ZTE2NWMyYTQwNjguOTYwNDBhOGUxMTEyMzZkNC5lNzQ1NmYzNGIyYTIyNmY4LjRmY2QwMmIwN2NlZjM1OGEKKyAgICA2MDA0YWExMWU4ODQxODQzLjBkNjlmODBkZjBhMTUxMjQuZTRkMDZmNDA0YTdlNzBiNC41NWEyYmM2YWFiODc1MzNkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMyYzU3OWJjMjM1NzExOGUuZjVkZTUyMDk0NDQ5ODgzNAogICAgIDU3NGM5NmFjN2I5Zjk4YWQuODRiODMyZDZjNzNlY2Q4OC5hN2VmZjU4NDc4Y2VlZTg3LjNmYWEyMDQ3NTQwYzZiYzYKICAgICA4MTg3MTA5YmNlNmEzMTllCiAKLVZTUVJUUERfMjU2KHJlZykKK1ZCTEVORFBTXzEyOF8zb2YzKHJlZykKICAgYmVmb3JlCiAgICAgNzFhZWQwMTg4Njk1YzNiZS44ZTQ2Y2VjMTYxZWVkZDNlLjMxZDE2YTUxYWRiMTUxZWYuMDA5YjdlMWNiNzBlODU4ZAogICAgIDZhNmQ1YjJhMWExYTVjZDEuNjkzMzgyNDAyYjIzY2I0OC5mYjlhYjA2YzVmZjhmZmIyLmNlMTU4NWU4OGM2ZmE3MzUKQEAgLTI1OTUzLDEyICsyNTk1MywxMiBAQAogICAgIGVjZGVjMmJlM2Y2MDk2ODIuNzgxYTUwMmNkOTcxOTA3Ni41MTZmNTMyZDk5MmZjNzAzLjM4YTNmZGNkNjZjMTdiMWUKICAgICA4ZDRlNjdiZWEzY2JhNWI2CiAgIGFmdGVyCi0gICAgNzFhZWQwMTg4Njk1YzNiZS44ZTQ2Y2VjMTYxZWVkZDNlLjMxZDE2YTUxYWRiMTUxZWYuMDA5YjdlMWNiNzBlODU4ZAotICAgIGZmZjgwMDAwMDAwMDAwMDAuZmZmODAwMDAwMDAwMDAwMC4zZTI3NTI5OTNjMWViYjk2LmZmZjgwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2M2MGZmOTE3YTllMTI4MC5jZTE1ODVlODhjNmZhNzM1CisgICAgNmE2ZDViMmExYTFhNWNkMS42OTMzODI0MDJiMjNjYjQ4LmZiOWFiMDZjNWZmOGZmYjIuY2UxNTg1ZTg4YzZmYTczNQogICAgIGNhMGVhZDNkMjM4NDM5ODQuYzNlMDJmMTVmNDRiMWRmNy4zYzYwZmY5MTdhOWUxMjgwLmVkMjk4NmQ1MTJmYzEwYWMKICAgICBlY2RlYzJiZTNmNjA5NjgyLjc4MWE1MDJjZDk3MTkwNzYuNTE2ZjUzMmQ5OTJmYzcwMy4zOGEzZmRjZDY2YzE3YjFlCiAgICAgOGQ0ZTY3YmVhM2NiYTViNgotVlNRUlRQRF8yNTYobWVtKQorVkJMRU5EUFNfMTI4XzNvZjMobWVtKQogICBiZWZvcmUKICAgICBjN2Y4M2Y5MmU1MjU0YWExLjJjMjk5NzE3MGEzOGFlNzguNjNhYjYxNzFmNmExZTBmMi45NzEzYTlhZDU5Mzg1YWU4CiAgICAgYzE2YjAxMzc0OWRiMjUwYS5lNjNhMjdiNjFmOWJiZTEyLjYyNWZkZmQwNjVlOGM5OTcuNjg5OGZjN2I1NTQ0MDdkYQpAQCAtMjU5NjcsMTIgKzI1OTY3LDEyIEBACiAgICAgYmM2M2JiZjljZGY0MDBiYQogICBhZnRlcgogICAgIGM3ZjgzZjkyZTUyNTRhYTEuMmMyOTk3MTcwYTM4YWU3OC42M2FiNjE3MWY2YTFlMGYyLjk3MTNhOWFkNTkzODVhZTgKLSAgICBmZmY4MDAwMDAwMDAwMDAwLjM2MGM5ZGJlODkzYjMzM2EuNTFjZDk5YjA3NGFjYzY3NC5mZmY4MDAwMDAwMDAwMDAwCi0gICAgNTk3NDI5OThlYmZhZjMxZS43NjVmNmUwNTFhMTIwMmZiLjUwMDQ0NDM1NDU1MTA2OTAuMjE0YTQ3MDUyYWRmMGE4NgorICAgIGMxNmIwMTM3NDlkYjI1MGEuZTYzYTI3YjYxZjliYmUxMi42MjVmZGZkMDY1ZThjOTk3LjY4OThmYzdiNTU0NDA3ZGEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjNhYjYxNzFmNmExZTBmMi45NzEzYTlhZDU5Mzg1YWU4CiAgICAgNmFkZjMzYTFlNjhkNzAwOS4zN2UyNjg3Mjk4MmJiNWUwLjA4NjUwZThkYWZlODU0MGEuMWU3NDg5YjU3Mzk2OWU5NwogICAgIGJjNjNiYmY5Y2RmNDAwYmEKIAotVlNRUlRQRF8yNTYocmVnKQorVkJMRU5EUFNfMTI4XzNvZjMocmVnKQogICBiZWZvcmUKICAgICA1NTYzZGEzY2QzODU2YjliLmNmNzg5YzNlNTZhMDU4ZjYuODcxMDExNjgzNTcxMTU2Yy42ODRkYjhjMmMxYmE2ZjMwCiAgICAgNDZjMGUzZWEyMmQ2MWRlNS42NjBiZGY1YjU4NDA2NjExLmMxMzY2NjUzOGM3MTVjNGMuNGI4OWJlYzI5N2QyMTIyZgpAQCAtMjU5ODAsMTIgKzI1OTgwLDEyIEBACiAgICAgYTBjMWEwMzgwOGU1NDE2Ni45NjRkZTNjNjgwNTVlNzg1LjYyOTQwMWI4ZDljYzkxYjcuMDkyZGNmY2ZmZDA1ZTM2NwogICAgIDljMmRkMmI1YzUzODg5ZjcKICAgYWZ0ZXIKLSAgICA1NTYzZGEzY2QzODU2YjliLmNmNzg5YzNlNTZhMDU4ZjYuODcxMDExNjgzNTcxMTU2Yy42ODRkYjhjMmMxYmE2ZjMwCi0gICAgZmZmODAwMDAwMDAwMDAwMC4yNGE4ZjY1MmEwMmQ4Mjg0LjQwNDVhZWVhNGFkNmVmOTQuZmZmODAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MDlkNjI5ZjM5YjZjNjJiLjRiODliZWMyOTdkMjEyMmYKKyAgICA0NmMwZTNlYTIyZDYxZGU1LjY2MGJkZjViNTg0MDY2MTEuYzEzNjY2NTM4YzcxNWM0Yy40Yjg5YmVjMjk3ZDIxMjJmCiAgICAgZWJjNmQxNmY1NTcyNTA0NS4wOTYzNzhlNDA3Nzg1Nzg4LjQwOWQ2MjlmMzliNmM2MmIuOGNlNTlkNzc0YzNjZmEzMgogICAgIGEwYzFhMDM4MDhlNTQxNjYuOTY0ZGUzYzY4MDU1ZTc4NS42Mjk0MDFiOGQ5Y2M5MWI3LjA5MmRjZmNmZmQwNWUzNjcKICAgICA5YzJkZDJiNWM1Mzg4OWY3Ci1WU1FSVFBEXzI1NihtZW0pCitWQkxFTkRQU18xMjhfM29mMyhtZW0pCiAgIGJlZm9yZQogICAgIDIyYjEyMTE1YzBlMmE3MTAuYzFmYzRkYWZkOGJjMmJmNS5lNzk2OWNlYmRlZTJkMTM0LjgxNjYzZjBiMDczZmY3OTkKICAgICA3ODg0MzlkYjBiMGVmYWRlLmFhYzVkMjQxNjE4MjRiOWUuZGEwODIwNDAzZTJiZDJjMi5mYjVlMTkwMjYwOWMzNTgwCkBAIC0yNTk5NCwxMiArMjU5OTQsMTIgQEAKICAgICAxYjI5MjFmZTgxYTM1NTAwCiAgIGFmdGVyCiAgICAgMjJiMTIxMTVjMGUyYTcxMC5jMWZjNGRhZmQ4YmMyYmY1LmU3OTY5Y2ViZGVlMmQxMzQuODE2NjNmMGIwNzNmZjc5OQotICAgIDMxNTA4ZTE0MGU2NTAxMWEuZmZmODAwMDAwMDAwMDAwMC5mZmY4MDAwMDAwMDAwMDAwLmZmZjgwMDAwMDAwMDAwMDAKLSAgICA3ODczOTRmM2MyYzgzZThkLmI3NjYyZDViM2VjM2RkMGMuNDk2ZmVhYjJiYjNjYTY1Yi4yYmM5OGEwYTdmNmY4NjE1CisgICAgNzg4NDM5ZGIwYjBlZmFkZS5hYWM1ZDI0MTYxODI0YjllLmRhMDgyMDQwM2UyYmQyYzIuZmI1ZTE5MDI2MDljMzU4MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNzk2OWNlYmRlZTJkMTM0LjgxNjYzZjBiMDczZmY3OTkKICAgICAwMDRhYjA0OTAwMWMyZTQ4LjQ0MmM1OTY3MGIwYzFkZWMuMTE5OTc2MmM3MjIyMDkyYS42Y2Y0OGU5MDAxNDIyODA3CiAgICAgMWIyOTIxZmU4MWEzNTUwMAogCi1WUlNRUlRTU18xMjgocmVnKQorVkJMRU5EUERfMTI4XzFvZjIocmVnKQogICBiZWZvcmUKICAgICA5NWI0M2ZjMjljMWQ0OWFkLmVhZDUwOGNhZTExNzg3M2IuYWQ2MzUzZDM2NWU4NDZlOS4wZjUxNDE5OTdlZThiNjVjCiAgICAgMzRlM2U1NDdlZDNkNDJiOS4xM2UwMTg2MDgyYzQwNTk0LjRlNTcxNTBhZThlNDk1YjAuMWQ2MmM1ZTdmYzliNmExYwpAQCAtMjYwMDcsMTIgKzI2MDA3LDEyIEBACiAgICAgNTU1OWI2NDRhMjljMmVhMC45M2E1NTE3ZjcyNjY1ZjIyLmE4YTVlNjg5ZDY2OTk1NGIuZGNjMmVkZDNiY2Y1ZDZmOQogICAgIDQ1YTk4ODQ5MzZiNDA2NmQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGU1NzE1MGFlOGU0OTViMC4xZDYyYzVlNzViOTE5MDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRlNTcxNTBhZThlNDk1YjAuMWQ2MmM1ZTdmYzliNmExYwogICAgIDM0ZTNlNTQ3ZWQzZDQyYjkuMTNlMDE4NjA4MmM0MDU5NC40ZTU3MTUwYWU4ZTQ5NWIwLjFkNjJjNWU3ZmM5YjZhMWMKICAgICA1NjAxMGVmOTEwOGU3YWQxLjU3Mzc1ZGY5ZmUzMDY0N2QuODM1MzlkNzgyZThiNDZlZC4xODk5ODAwMTA3NDVlMTk3CiAgICAgNTU1OWI2NDRhMjljMmVhMC45M2E1NTE3ZjcyNjY1ZjIyLmE4YTVlNjg5ZDY2OTk1NGIuZGNjMmVkZDNiY2Y1ZDZmOQogICAgIDQ1YTk4ODQ5MzZiNDA2NmQKLVZSU1FSVFNTXzEyOChtZW0pCitWQkxFTkRQRF8xMjhfMW9mMihtZW0pCiAgIGJlZm9yZQogICAgIDMwMWFjZTUwOTE5MDJkMjAuOGUzOGQ5OTQzZmY0OTlkMy5hMWY4NzJlMGY5NzJiM2IwLjE5OTdlY2E5N2EwYWJkNzcKICAgICA3N2UxMzlkMmVhOTQwNzNkLjVkZWE3MzU1ODIyMWY5MTYuNWVmYTNiMDdiMDYwMWM1My4zMTc2YWM0NGI2ZmJmYjFjCkBAIC0yNjAyMiwxMSArMjYwMjIsMTEgQEAKICAgYWZ0ZXIKICAgICAzMDFhY2U1MDkxOTAyZDIwLjhlMzhkOTk0M2ZmNDk5ZDMuYTFmODcyZTBmOTcyYjNiMC4xOTk3ZWNhOTdhMGFiZDc3CiAgICAgNzdlMTM5ZDJlYTk0MDczZC41ZGVhNzM1NTgyMjFmOTE2LjVlZmEzYjA3YjA2MDFjNTMuMzE3NmFjNDRiNmZiZmIxYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZWZhM2IwN2IwNjAxYzUzLjMxNzZhYzQ0MjIyZGU4MDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWVmYTNiMDdiMDYwMWM1My4xOTk3ZWNhOTdhMGFiZDc3CiAgICAgOGM5ZjczZmIwNDQ2YzI2OC4yZWY3ZmVkYjZiMmI4MjdhLjU1M2ViNjU2MWMxNTFjODYuY2IyYjQ2OWI2OGZiYTg4MwogICAgIDA0OTgxOTMwMTUyMjhmOWQKIAotVlJTUVJUU1NfMTI4KHJlZykKK1ZCTEVORFBEXzEyOF8xb2YyKHJlZykKICAgYmVmb3JlCiAgICAgNTQyMzk1ZWZjYmM4N2NlMS4xMjMwM2E3YWZlMGIxY2NkLmU3ZTllNjc3NGEyMDI1ZjMuNDcxNzYwNTgwOWYyMmI2ZQogICAgIDE5MTZiNzQ2MjY3OWFhZmIuNjU0NjE2MjQ2NTI5MTk0ZC5hNmRmMzYzNTNlMWJhYjJjLjU4ZDFhMmNmOTZlMjNlMWIKQEAgLTI2MDM0LDEyICsyNjAzNCwxMiBAQAogICAgIDZlNjdkOTY4MzkyZmJkNWUuZTIzMzAyYWVlYjlkZWE0Yy5hNjAyZmFjM2RjNGY1MzhkLjQ3MTRkZWNmZmQyOTY0NzMKICAgICBkZDM1ZDEzMTEwOThlZDc2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE2ZGYzNjM1M2UxYmFiMmMuNThkMWEyY2ZmZmMwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNmRmMzYzNTNlMWJhYjJjLjU4ZDFhMmNmOTZlMjNlMWIKICAgICAxOTE2Yjc0NjI2NzlhYWZiLjY1NDYxNjI0NjUyOTE5NGQuYTZkZjM2MzUzZTFiYWIyYy41OGQxYTJjZjk2ZTIzZTFiCiAgICAgYWRiZTc5OWZjMWMyNTc5NS42MWFkODVlNzU1YWI3NDEzLmM3MjNlODdmZTZhNjUxZDEuNjQzNmY4YThkZWYwMTNiOQogICAgIDZlNjdkOTY4MzkyZmJkNWUuZTIzMzAyYWVlYjlkZWE0Yy5hNjAyZmFjM2RjNGY1MzhkLjQ3MTRkZWNmZmQyOTY0NzMKICAgICBkZDM1ZDEzMTEwOThlZDc2Ci1WUlNRUlRTU18xMjgobWVtKQorVkJMRU5EUERfMTI4XzFvZjIobWVtKQogICBiZWZvcmUKICAgICAwMjY2NGNiODMzNDk2Y2VkLmI2NWRkMzBjMjk0YTE4MDAuYzRhMzA5NjU0MjBiMzYyNC45ZmM4Njc2Y2JjYTJlYzBkCiAgICAgOTI3M2NiNTI4MTQ5OWIwNS5lM2VjNjFmNzJkYTFhNjI4LmUzYzgxN2Y4NzcwMjE2YzYuMGVjMTJiZTYyMzJhNTlmYwpAQCAtMjYwNDksMTEgKzI2MDQ5LDExIEBACiAgIGFmdGVyCiAgICAgMDI2NjRjYjgzMzQ5NmNlZC5iNjVkZDMwYzI5NGExODAwLmM0YTMwOTY1NDIwYjM2MjQuOWZjODY3NmNiY2EyZWMwZAogICAgIDkyNzNjYjUyODE0OTliMDUuZTNlYzYxZjcyZGExYTYyOC5lM2M4MTdmODc3MDIxNmM2LjBlYzEyYmU2MjMyYTU5ZmMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTNjODE3Zjg3NzAyMTZjNi4wZWMxMmJlNmZmYzAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUzYzgxN2Y4NzcwMjE2YzYuOWZjODY3NmNiY2EyZWMwZAogICAgIDYyNTBjNTZiMGY2M2ZjYzcuNTgwNDJkNTJlMzMxNDZiOC40NzY0MzQ2M2U5Yjk3ZDFhLmJlN2JhYWZkZjMwOTllZGEKICAgICBiN2Q0NWI3Mjk2NzllZjIwCiAKLVZSU1FSVFNTXzEyOChyZWcpCitWQkxFTkRQRF8xMjhfMW9mMihyZWcpCiAgIGJlZm9yZQogICAgIDk2OTA1NTY5MmU0ZTAzODYuNWJiODM5YzM4ODk2YTVjOC41ODI1NjM5YmNkODJkMDc4LjQ1NzMzYzEyNWU5MTdjMjQKICAgICBiN2ZiOTE0YzU5MTQxNmI3LjJmMmNhMWRkOWI0N2VmMWIuYWQwZjFmZGEzYzNlN2Q2ZS5mMDY4M2I0ZDIwMjJmZWE5CkBAIC0yNjA2MSwxMiArMjYwNjEsMTIgQEAKICAgICAyZjBlYzM4YWQ3YTUyZDJkLmQ3NjgzZDA4MDY1NDU2NjEuYzE2ZTE1ZWUxNjI5MmFhYi5iYzMzMGExOWZlOWM3YmQyCiAgICAgOTZhMWQzODA1MTlkZWVjZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hZDBmMWZkYTNjM2U3ZDZlLmYwNjgzYjRkMzkwMjY4MDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWQwZjFmZGEzYzNlN2Q2ZS5mMDY4M2I0ZDIwMjJmZWE5CiAgICAgYjdmYjkxNGM1OTE0MTZiNy4yZjJjYTFkZDliNDdlZjFiLmFkMGYxZmRhM2MzZTdkNmUuZjA2ODNiNGQyMDIyZmVhOQogICAgIDc2NjEwYzg5YjM1ODY2NjAuYmE3ODc5YTU2NzgyOTZlYS5iMTBlNWI3Y2NhZjI4NzQ2LjI0MGVhYjAxNGM3NmJmZDQKICAgICAyZjBlYzM4YWQ3YTUyZDJkLmQ3NjgzZDA4MDY1NDU2NjEuYzE2ZTE1ZWUxNjI5MmFhYi5iYzMzMGExOWZlOWM3YmQyCiAgICAgOTZhMWQzODA1MTlkZWVjZQotVlJTUVJUU1NfMTI4KG1lbSkKK1ZCTEVORFBEXzEyOF8xb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgOGQyNTgyMjQ2MTg3ZDNmNS4zZDRkYjFiZDYxODhhOGM5LjY0Yzg2YWYwOTRjOGVhYWQuM2E3YTQ4OWJiOTZmYTQ0YQogICAgIDdjOGI5NGYwNGI2NWU2NzIuZmU2Y2QyOGRlZThjMTJlMS4zYjYzN2I0YTJkZWEwZmZhLjc2ODBmMGVlNTI1MTJmY2YKQEAgLTI2MDc2LDExICsyNjA3NiwxMSBAQAogICBhZnRlcgogICAgIDhkMjU4MjI0NjE4N2QzZjUuM2Q0ZGIxYmQ2MTg4YThjOS42NGM4NmFmMDk0YzhlYWFkLjNhN2E0ODliYjk2ZmE0NGEKICAgICA3YzhiOTRmMDRiNjVlNjcyLmZlNmNkMjhkZWU4YzEyZTEuM2I2MzdiNGEyZGVhMGZmYS43NjgwZjBlZTUyNTEyZmNmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNiNjM3YjRhMmRlYTBmZmEuNzY4MGYwZWVmZmMwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYjYzN2I0YTJkZWEwZmZhLjNhN2E0ODliYjk2ZmE0NGEKICAgICBiNjJkY2RiMDFjMmU4YTIxLjA1NzU5ZmIzODAyOGE2MzMuM2M3ZTM5MDVmMzZhZmI0NS5hYWE1OTAzYmQwMTY2YjM4CiAgICAgNWE1ZDdmMGNlZDEyOTM3NQogCi1WUlNRUlRQU18xMjgocmVnKQorVkJMRU5EUERfMTI4XzJvZjIocmVnKQogICBiZWZvcmUKICAgICAzZTNlZDQzNDZmZDliZDQ4LmI5MDBlZDdjM2EzMTkyYWEuMDRmODQxZTNiY2Q3NDhjNS4xYzk1ZGYzZTU3ZTAzYTljCiAgICAgYjM5NDhiMWZmMmY4MjU1ZC4yNGU1NWYyMWEyNThiOTNhLjI1ODkwODVmNmJkOWM5ODMuYjgxODU4OTkzNzMzZmFhMwpAQCAtMjYwODgsMTIgKzI2MDg4LDEyIEBACiAgICAgYmJjZTBiZWY2ODZhOWRmYS5hNjE2MmJhMmJlNDQ1MzFlLjNjMDllZGVlOTBmZjViMzIuOGY5MWI4NjVkOWE2ZWM3MwogICAgIDg0MjA5NmFlZDNkZDk2OTQKICAgYWZ0ZXIKLSAgICAzZTNlZDQzNDZmZDliZDQ4LmI5MDBlZDdjM2EzMTkyYWEuMDRmODQxZTNiY2Q3NDhjNS4xYzk1ZGYzZTU3ZTAzYTljCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmYzAwMDAwNGFkNWQ4MDAuZmZjMDAwMDBmZmMwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMzc2ZWQ5NDI4Yjc2NzE5LmI4MTg1ODk5MzczM2ZhYTMKKyAgICBiMzk0OGIxZmYyZjgyNTVkLjI0ZTU1ZjIxYTI1OGI5M2EuMjU4OTA4NWY2YmQ5Yzk4My5iODE4NTg5OTM3MzNmYWEzCiAgICAgMTNhYTllM2ExMWY5MDY1Zi5kNWE5YTA4OTZmYjBiYWZkLmMzNzZlZDk0MjhiNzY3MTkuZWFkMjIyMDJhZTcxZjc4NgogICAgIGJiY2UwYmVmNjg2YTlkZmEuYTYxNjJiYTJiZTQ0NTMxZS4zYzA5ZWRlZTkwZmY1YjMyLjhmOTFiODY1ZDlhNmVjNzMKICAgICA4NDIwOTZhZWQzZGQ5Njk0Ci1WUlNRUlRQU18xMjgobWVtKQorVkJMRU5EUERfMTI4XzJvZjIobWVtKQogICBiZWZvcmUKICAgICBhMzRhMzljOWI4MjJiMTE1LjA3NGFjY2FjOTRkNzI2ZGIuNzRmODdiNTZhYTIxM2VjOS5lYTkwMDVkYTNlM2NlNDdiCiAgICAgY2FkYzFjYTJhNTgxZjgyMy41MzZiZTBkYjMxY2JkZGFlLjFjMWQwZjkzNTA1MjM3MmMuMmI1NTMwYzJjZmZiM2NhMApAQCAtMjYxMDIsMTIgKzI2MTAyLDEyIEBACiAgICAgZjAxNWZjYTJlOGI3N2JlYgogICBhZnRlcgogICAgIGEzNGEzOWM5YjgyMmIxMTUuMDc0YWNjYWM5NGQ3MjZkYi43NGY4N2I1NmFhMjEzZWM5LmVhOTAwNWRhM2UzY2U0N2IKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjRiN2MwMDBmZmMwMDAwMC5mZmMwMDAwMDQwMTUwMDAwCi0gICAgZDNhMmJiMjViNTA3MjhlYS5mYTdkNDBlYWRhZDJmZDFmLjc4NTA2MDQ0Y2JlM2ZiNzEuNTlhNTZhMTRkZWM3YTA0YworICAgIGNhZGMxY2EyYTU4MWY4MjMuNTM2YmUwZGIzMWNiZGRhZS4xYzFkMGY5MzUwNTIzNzJjLjJiNTUzMGMyY2ZmYjNjYTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzRmODdiNTZhYTIxM2VjOS5lYTkwMDVkYTNlM2NlNDdiCiAgICAgOWI2ODkyM2YwNWJmZmQ5NS41YWNiZTk0NDJiNzhjNGQ5LjY1NWNlYzU0MzhlMDQ2YzQuZDJjY2IwM2IwODJjNGMyYwogICAgIGYwMTVmY2EyZThiNzdiZWIKIAotVlJTUVJUUFNfMTI4KHJlZykKK1ZCTEVORFBEXzEyOF8yb2YyKHJlZykKICAgYmVmb3JlCiAgICAgMTBjZTRjYjcxYWYzNmIzNi5mZWY5MWRkYWIxYjYzMzUxLmNlYTNkODU0YzE0YTZiODguYzAwZTJkYjFiMjU2ZDQ1MgogICAgIDhmNDE5YmU1M2I2YzU2YjguZDkyM2Q5ZTRkM2Y3ODU0OS5iMjRmMDg4ODM3ZDMzMWQ5LjYzMzJhMTQ2NTU1MDYxNDcKQEAgLTI2MTE1LDEyICsyNjExNSwxMiBAQAogICAgIDE1ODgyNzNkYjk0NzBlMTQuNjI2ZGQxZjFlZjg4NzBhMC4zYTU3MWMwYTM1M2MwNTEwLmY0MDAxMGM5ODkwMjY2MTQKICAgICA5YTQyMDM4ZTUxZDE1NjQ0CiAgIGFmdGVyCi0gICAgMTBjZTRjYjcxYWYzNmIzNi5mZWY5MWRkYWIxYjYzMzUxLmNlYTNkODU0YzE0YTZiODguYzAwZTJkYjFiMjU2ZDQ1MgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yZTIzMzgwMDQ5ZTRjMDAwLjQ5NmQ3MDAwM2ZjMzY4MDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjIxZDc1NGIyYWEwNTA3OC42MzMyYTE0NjU1NTA2MTQ3CisgICAgOGY0MTliZTUzYjZjNTZiOC5kOTIzZDllNGQzZjc4NTQ5LmIyNGYwODg4MzdkMzMxZDkuNjMzMmExNDY1NTUwNjE0NwogICAgIGM3YmJlNjk4ZTdhZjc4MWUuMDZiMDQxNDc4YThlYjBhYS42MjFkNzU0YjJhYTA1MDc4LjJiOTRjNDAwM2VkYmE4Y2UKICAgICAxNTg4MjczZGI5NDcwZTE0LjYyNmRkMWYxZWY4ODcwYTAuM2E1NzFjMGEzNTNjMDUxMC5mNDAwMTBjOTg5MDI2NjE0CiAgICAgOWE0MjAzOGU1MWQxNTY0NAotVlJTUVJUUFNfMTI4KG1lbSkKK1ZCTEVORFBEXzEyOF8yb2YyKG1lbSkKICAgYmVmb3JlCiAgICAgZjkyNTE4M2NiMjU1MzY4Yi5kNmY0NWMzZTRkYzA1NDQ1LmM5MjYwNWNkMjFlZjgwNTYuOTU0YWY3MmZmNTMzOGM0ZQogICAgIGVkNzZjYmJkYzk5OGMwMTUuNjQ0YjgwMDg0MGE3ODY1ZS4xN2E3NWFjNzM5ZDI5ZWY5LmQxNDEwNDI3MDUxMTIwZGUKQEAgLTI2MTI5LDEyICsyNjEyOSwxMiBAQAogICAgIDVjM2UyYTNiMzA5MTg4MmUKICAgYWZ0ZXIKICAgICBmOTI1MTgzY2IyNTUzNjhiLmQ2ZjQ1YzNlNGRjMDU0NDUuYzkyNjA1Y2QyMWVmODA1Ni45NTRhZjcyZmY1MzM4YzRlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmYzAwMDAwNGUzYjIwMDAuZmZjMDAwMDBmZmMwMDAwMAotICAgIDUzMDI5OGZmYjJhOWIxMGQuMWNkODhmMDgyZTg3ZTAwYS4yOGJjNGJjYjU1M2E4NGI0LjQ5OGEzZTVlMDI2M2ZlNmIKKyAgICBlZDc2Y2JiZGM5OThjMDE1LjY0NGI4MDA4NDBhNzg2NWUuMTdhNzVhYzczOWQyOWVmOS5kMTQxMDQyNzA1MTEyMGRlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM5MjYwNWNkMjFlZjgwNTYuOTU0YWY3MmZmNTMzOGM0ZQogICAgIDA1OTNmY2VjODc5MWM0YTAuNWFlOTg1YThiMWVjOWRmNi5kODMxNTNjNTkxMzVlZWI0LjU4NzBhMTQxODdiNDYyYTIKICAgICA1YzNlMmEzYjMwOTE4ODJlCiAKLVZSU1FSVFBTXzEyOChyZWcpCitWQkxFTkRQRF8xMjhfMm9mMihyZWcpCiAgIGJlZm9yZQogICAgIGIwNDFkNGI3OWI4NWFiYmMuZGZmNTcyNzI2NzVlYjZmOS43YWM4NWY1NjY4NjNmYWNlLjAzZDFmMWEyMDhjZTlhMjUKICAgICBhZmM1OWIyMzYxMWMwOGY3LmJmZjY3NjdjNmIxYzQzNDUuZDhjMjE4N2RlYzc3MzIzZC44NTY5OWU0Y2Q3MTI0MjMyCkBAIC0yNjE0MiwxMiArMjYxNDIsMTIgQEAKICAgICAyMjgwNzA3ODc0NjU1ZjI3LmZlMDExOGNjNTU5NzFkNjUuYmUzNzE3ZTVkMWE3Mjc5Mi5mZWIxMTliYmVhYzg3OGQyCiAgICAgYWRmOWRmNTc2NzUzN2ViZAogICBhZnRlcgotICAgIGIwNDFkNGI3OWI4NWFiYmMuZGZmNTcyNzI2NzVlYjZmOS43YWM4NWY1NjY4NjNmYWNlLjAzZDFmMWEyMDhjZTlhMjUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZjMDAwMDBmZmMwMDAwMC40MWNkZjAwMDUyYWNhODAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwMjNhYzg4ZGNiNTgzZjAuODU2OTllNGNkNzEyNDIzMgorICAgIGFmYzU5YjIzNjExYzA4ZjcuYmZmNjc2N2M2YjFjNDM0NS5kOGMyMTg3ZGVjNzczMjNkLjg1Njk5ZTRjZDcxMjQyMzIKICAgICBiNzE2N2JlYTIwZTNkYjhjLjgwNjE4NGY2YjJkNTI3YjAuZDAyM2FjODhkY2I1ODNmMC4zYWM1ZDhiMDE5MGNhMjA4CiAgICAgMjI4MDcwNzg3NDY1NWYyNy5mZTAxMThjYzU1OTcxZDY1LmJlMzcxN2U1ZDFhNzI3OTIuZmViMTE5YmJlYWM4NzhkMgogICAgIGFkZjlkZjU3Njc1MzdlYmQKLVZSU1FSVFBTXzEyOChtZW0pCitWQkxFTkRQRF8xMjhfMm9mMihtZW0pCiAgIGJlZm9yZQogICAgIDIzNjlhNjcyYWNiODcxZjUuNGU0ZTc3MzlmNzJlZDE3My4xNWEzYWZlYTczNmRlMjkxLmZlNGE1NWZmNmFkYzViZDAKICAgICAzYmNjZThmN2QzMDMwZGE1Ljk1Y2U4YTk5NDhjYTZkMWQuYTExM2M0M2QyNTY0MzI1Zi5lY2E3NjM0MjQwZGQ1YTU2CkBAIC0yNjE1NiwxMiArMjYxNTYsMTIgQEAKICAgICA2Mjc4NDAzYTUzMjk3NzRjCiAgIGFmdGVyCiAgICAgMjM2OWE2NzJhY2I4NzFmNS40ZTRlNzczOWY3MmVkMTczLjE1YTNhZmVhNzM2ZGUyOTEuZmU0YTU1ZmY2YWRjNWJkMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NDYyNjAwMDI1ODRjODAwLmZmYzAwMDAwMjljMzIwMDAKLSAgICBkM2VmMjNkMmZiNDEwZGZhLjU1NGFhNzA0MDFjNjZmZDEuN2UxZGQzYWY4OTg3YzlmYy5lNDliM2MxYmYxMzg2MWNmCisgICAgM2JjY2U4ZjdkMzAzMGRhNS45NWNlOGE5OTQ4Y2E2ZDFkLmExMTNjNDNkMjU2NDMyNWYuZWNhNzYzNDI0MGRkNWE1NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNWEzYWZlYTczNmRlMjkxLmZlNGE1NWZmNmFkYzViZDAKICAgICBjNjlmZDJlZjNlN2QyZTFmLmU4MGZjYWU3YmVhZTEyM2EuODc4ZDU4MmRiYmUyNjI5My40MjcyZGNmNDE5NzhhY2U4CiAgICAgNjI3ODQwM2E1MzI5Nzc0YwogCi1WUlNRUlRQU18yNTYocmVnKQorVkJMRU5EUERfMjU2XzFvZjMocmVnKQogICBiZWZvcmUKICAgICBhMGY5NjI1YTNjZDhmZGE4LmYwYTY3MTNhYjhjMzJjNDEuYWI2OWVkYWMxYzBjOTMwNC45YTJlZDBhNGQ2ODJiYTUyCiAgICAgNTc0MTQwYmU2ZjEwN2JhOC4yY2QwN2M5Zjg2MjBjMzhiLmZiYTMwZWMxYjY2ZTJlZGQuOTJjZWI1ZmZmNzcyOGQ2MgpAQCAtMjYxNjksMTIgKzI2MTY5LDEyIEBACiAgICAgYTU1NTFkMDcyNDRkNGY0Mi40ZmMyYzg2ODhjNGRhYTRhLmFkZWMzNzg3MTA2Y2EwNjYuYTAzNmJjMTBiODczOTIyYgogICAgIDZmOTdkNDlmOTE5YzNkM2MKICAgYWZ0ZXIKLSAgICBhMGY5NjI1YTNjZDhmZGE4LmYwYTY3MTNhYjhjMzJjNDEuYWI2OWVkYWMxYzBjOTMwNC45YTJlZDBhNGQ2ODJiYTUyCi0gICAgZmZjMDAwMDBmZmMwMDAwMC4zMmJjYzAwMGZmYzAwMDAwLjQ2MmQ5ODAwNGE4OGQwMDAuM2ExNzI4MDA0MjUxNDAwMAorICAgIDU3NDE0MGJlNmYxMDdiYTguMmNkMDdjOWY4NjIwYzM4Yi5mYmEzMGVjMWI2NmUyZWRkLjkyY2ViNWZmZjc3MjhkNjIKKyAgICA1NzQxNDBiZTZmMTA3YmE4LjJjZDA3YzlmODYyMGMzOGIuZmJhMzBlYzFiNjZlMmVkZC45MmNlYjVmZmY3NzI4ZDYyCiAgICAgZTU5YmQ1ZDQ4ODVlMmRmNy41OGViNzAwYWMzOWZhZTJhLjMyMGIyODkwMjk2MDFlNmYuNGEzNzg1MjkzOWJmOTZmMgogICAgIGE1NTUxZDA3MjQ0ZDRmNDIuNGZjMmM4Njg4YzRkYWE0YS5hZGVjMzc4NzEwNmNhMDY2LmEwMzZiYzEwYjg3MzkyMmIKICAgICA2Zjk3ZDQ5ZjkxOWMzZDNjCi1WUlNRUlRQU18yNTYobWVtKQorVkJMRU5EUERfMjU2XzFvZjMobWVtKQogICBiZWZvcmUKICAgICA5MjI2NGJjMmRmNDY1MzRmLmYzYjkxNWMzZGY2OTFjMzQuZWMyMDAwYTNmYzM0NzMxNi5jODkxMzcxMTA4MjBmMDZmCiAgICAgZTdhZjliNjViZjdjOGY5MS4yYTE0Yjc3NDUzM2ZkMTdhLjBkZDI5NGE5MmY2MmM0YmIuZGY0NzI1OWFhYzA4NGEzNgpAQCAtMjYxODMsMTIgKzI2MTgzLDEyIEBACiAgICAgYTVjNjU1NjdiYjZhZTliMwogICBhZnRlcgogICAgIDkyMjY0YmMyZGY0NjUzNGYuZjNiOTE1YzNkZjY5MWMzNC5lYzIwMDBhM2ZjMzQ3MzE2LmM4OTEzNzExMDgyMGYwNmYKLSAgICBmZmMwMDAwMGZmYzAwMDAwLmZmYzAwMDAwZmZjMDAwMDAuZmZjMDAwMDBmZmMwMDAwMC5mZmMwMDAwMDViMjE3MDAwCi0gICAgNDhmZDQyNzQ0ZDRhYWUyZC5hOGIyMDE4NjFmNTlhYWJmLjhjYTQwMDY1NDNlMzVhNjUuNGY1YWZiOGU5OWFmZTk2NgorICAgIGU3YWY5YjY1YmY3YzhmOTEuMmExNGI3NzQ1MzNmZDE3YS4wZGQyOTRhOTJmNjJjNGJiLmRmNDcyNTlhYWMwODRhMzYKKyAgICBlN2FmOWI2NWJmN2M4ZjkxLjJhMTRiNzc0NTMzZmQxN2EuZWMyMDAwYTNmYzM0NzMxNi5jODkxMzcxMTA4MjBmMDZmCiAgICAgOTNkZGJjZGNhNGJjNmM1MC5jOGRmZWU2NWRkNDZlMmIwLjQ3NjJjMWMyNTFjMmYxM2YuNzIxNmI3NTk2YWExMGFhYwogICAgIGE1YzY1NTY3YmI2YWU5YjMKIAotVlJTUVJUUFNfMjU2KHJlZykKK1ZCTEVORFBEXzI1Nl8xb2YzKHJlZykKICAgYmVmb3JlCiAgICAgNDRiOGNmMjUyOTk3YzIyOC5hMjFjODM4N2UwZGY4NDI1LmU1ZTY3YTdkMjk4ZmI2ZjkuMThkODUyYWU3NzBiNDU3NgogICAgIGFiMzYyM2ZkNTBiM2QwYjcuNTM4NDE1NjMxZWJlYjNkOS41ZDE1YTIzYmEwYzI2MjQ1LmRkZDIyZjE0ZDFjYTExMzUKQEAgLTI2MTk2LDEyICsyNjE5NiwxMiBAQAogICAgIDQxMGE0NmFmMzZlOTdkZDEuMDYwMTg3NWEwZGUxNDY4ZC5jYTE2YjM1NTdkMTQzMTk5LmFlODBiZWZlOGVkYzA0ZmQKICAgICA3NGNkNjg1YTJhNDdhMjVlCiAgIGFmdGVyCi0gICAgNDRiOGNmMjUyOTk3YzIyOC5hMjFjODM4N2UwZGY4NDI1LmU1ZTY3YTdkMjk4ZmI2ZjkuMThkODUyYWU3NzBiNDU3NgotICAgIDQzZjNhODAwZmZjMDAwMDAuZmZjMDAwMDAyMjg3MjAwMC5mZmMwMDAwMGZmYzAwMDAwLjI3MjQxMDAwMjIyZDEwMDAKKyAgICBhYjM2MjNmZDUwYjNkMGI3LjUzODQxNTYzMWViZWIzZDkuNWQxNWEyM2JhMGMyNjI0NS5kZGQyMmYxNGQxY2ExMTM1CisgICAgYWIzNjIzZmQ1MGIzZDBiNy41Mzg0MTU2MzFlYmViM2Q5LjVkMTVhMjNiYTBjMjYyNDUuZGRkMjJmMTRkMWNhMTEzNQogICAgIDM2OGQ0YzVjY2I0YTUwMGIuODBlMWVkNWE3OTY1YjU5OC44YWI2NjEwOWRkNmEyMjQxLjcwMWJkNGUwN2EwYzEyYTkKICAgICA0MTBhNDZhZjM2ZTk3ZGQxLjA2MDE4NzVhMGRlMTQ2OGQuY2ExNmIzNTU3ZDE0MzE5OS5hZTgwYmVmZThlZGMwNGZkCiAgICAgNzRjZDY4NWEyYTQ3YTI1ZQotVlJTUVJUUFNfMjU2KG1lbSkKK1ZCTEVORFBEXzI1Nl8xb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgOWNjZTRlZTE2YTU3YTlmOC4yOGY2MGQ2MTJlMWI5NWI0LmMyYWY1ZjRlZjgzZDIxZTUuNzc4MTk0ODkxYjRiY2NmOAogICAgIDAzNGZlYzdkNjgxYmQ1ZjYuNDdhMDlkZGQ0ZTZkZDI2MS44ZWI2ZjIyMTUzODYwM2NjLmVlNDMwMDEzNTM5YjJmMGIKQEAgLTI2MjEwLDEyICsyNjIxMCwxMiBAQAogICAgIGE5ODk2MWU3YjQ5YzVkMzAKICAgYWZ0ZXIKICAgICA5Y2NlNGVlMTZhNTdhOWY4LjI4ZjYwZDYxMmUxYjk1YjQuYzJhZjVmNGVmODNkMjFlNS43NzgxOTQ4OTFiNGJjY2Y4Ci0gICAgZmZjMDAwMDAyYTBiNzAwMC40YWI4YTAwMDQ4MjQzMDAwLmZmYzAwMDAwZmZjMDAwMDAuMjM3ZTcwMDA1MThmNzgwMAotICAgIDg1MWNiZTFjNDM5Y2UyODUuZmE1M2YzOTEzMzY5NzE4NC40N2UzYmJjMTNjYzdhODZkLjhjYThmNDVlYzM5MTk1N2QKKyAgICAwMzRmZWM3ZDY4MWJkNWY2LjQ3YTA5ZGRkNGU2ZGQyNjEuOGViNmYyMjE1Mzg2MDNjYy5lZTQzMDAxMzUzOWIyZjBiCisgICAgMDM0ZmVjN2Q2ODFiZDVmNi40N2EwOWRkZDRlNmRkMjYxLmMyYWY1ZjRlZjgzZDIxZTUuNzc4MTk0ODkxYjRiY2NmOAogICAgIGZmMDA0MWE4MTVlODhiZDAuOWM1YTBhZTg3OTllYWRjOC5jOTAyMzYxOWNmMGNjYmY0LmFiZmI2YmQ2MDRiODNiZmIKICAgICBhOTg5NjFlN2I0OWM1ZDMwCiAKLVZSU1FSVFBTXzI1NihyZWcpCitWQkxFTkRQRF8yNTZfMW9mMyhyZWcpCiAgIGJlZm9yZQogICAgIGUwOWZkMmZkNmZjYTM3YzkuNGJjOWYwMGZmYTBhOGQwNC44YjAyZGU0ZWJhOTVjM2Q5LmYxZGZkZjE2Mjc2MTI5OGYKICAgICBhZDg3YmI4NGQwY2QwNDcyLjQ2NDE0NzNjMGYwZmE0NGQuMjI5NzZjMmY5NWRjZWY2NS45OTQ2MzNhMjYwZDM3ZTY3CkBAIC0yNjIyMywxMiArMjYyMjMsMTIgQEAKICAgICA3YWZmZTE5NWY1ODM2YWEyLmI5NzFkZTk4MzZlZjAwY2MuYjdiOGEyMTM4Mzg4Nzg5OC5kY2UxYzgxYmU4M2NmYzg1CiAgICAgMmZhZDAyZGY2ZTRiOWQyMQogICBhZnRlcgotICAgIGUwOWZkMmZkNmZjYTM3YzkuNGJjOWYwMGZmYTBhOGQwNC44YjAyZGU0ZWJhOTVjM2Q5LmYxZGZkZjE2Mjc2MTI5OGYKLSAgICAyOGYzZDgwMDI1OTllODAwLmZmYzAwMDAwMjdiMzM4MDAuZmZjMDAwMDBmZmMwMDAwMC5mZmMwMDAwMGZmYzAwMDAwCisgICAgYWQ4N2JiODRkMGNkMDQ3Mi40NjQxNDczYzBmMGZhNDRkLjIyOTc2YzJmOTVkY2VmNjUuOTk0NjMzYTI2MGQzN2U2NworICAgIGFkODdiYjg0ZDBjZDA0NzIuNDY0MTQ3M2MwZjBmYTQ0ZC4yMjk3NmMyZjk1ZGNlZjY1Ljk5NDYzM2EyNjBkMzdlNjcKICAgICA2YzhkMTZlODczMzEwMWQ2LmNjMzVjMjFiNmYwMjhiZDYuYmQ2NWFlZjhhM2ZlNmQxNi45ZTAzYWNhYTk3NmU4NmFiCiAgICAgN2FmZmUxOTVmNTgzNmFhMi5iOTcxZGU5ODM2ZWYwMGNjLmI3YjhhMjEzODM4ODc4OTguZGNlMWM4MWJlODNjZmM4NQogICAgIDJmYWQwMmRmNmU0YjlkMjEKLVZSU1FSVFBTXzI1NihtZW0pCitWQkxFTkRQRF8yNTZfMW9mMyhtZW0pCiAgIGJlZm9yZQogICAgIDczMzRkN2U0NDVhNjI1YWQuMzEyODE3ZjhmMTRlN2E4MS5lOWMxMTU5ZjgyZTJiZDVhLjZlZGM0M2VkY2UwNTRkOTgKICAgICA4NDQwYzExNDhhNWE1MDUyLmVlNTNiNTdjMDQxZTZmMjAuMzhmMGU1MWM2Y2U4N2VhZC4zZDFjOGVmMzIyMDEyOGMyCkBAIC0yNjIzNywxMiArMjYyMzcsMTIgQEAKICAgICBkMTgzM2MzZTY5NjkzM2YxCiAgIGFmdGVyCiAgICAgNzMzNGQ3ZTQ0NWE2MjVhZC4zMTI4MTdmOGYxNGU3YTgxLmU5YzExNTlmODJlMmJkNWEuNmVkYzQzZWRjZTA1NGQ5OAotICAgIDI1OTg1MDAwM2M2MGE4MDAuNDY5ZGY4MDBmZmMwMDAwMC5mZmMwMDAwMGZmYzAwMDAwLjI3YzMyMDAwZmZjMDAwMDAKLSAgICAzZTlkM2U1ZDU4NzJkOTNmLjBkY2RiNThjY2E4MDgzMmIuODJjY2M5ZmIxMjBkMDFmMS43ZmM2N2Q4ZjFiMDg0NWMxCisgICAgODQ0MGMxMTQ4YTVhNTA1Mi5lZTUzYjU3YzA0MWU2ZjIwLjM4ZjBlNTFjNmNlODdlYWQuM2QxYzhlZjMyMjAxMjhjMgorICAgIDg0NDBjMTE0OGE1YTUwNTIuZWU1M2I1N2MwNDFlNmYyMC5lOWMxMTU5ZjgyZTJiZDVhLjZlZGM0M2VkY2UwNTRkOTgKICAgICA3ZDE5YzlhYWNjZmE3ZDllLmVhZTIxNTk2ZGRmZmYyNGQuYTMxZjNlMjg5MDViMDA1MS45MjI0MGUyZjU0YTdkZjQyCiAgICAgZDE4MzNjM2U2OTY5MzNmMQogCi1WTU9WRFFVX0d0b0VfMjU2KHJlZykKK1ZCTEVORFBEXzI1Nl8yb2YzKHJlZykKICAgYmVmb3JlCiAgICAgOTcyZjAzMjhmN2RiN2Q3OS4xZDdmZGVlNzAxZmZmNzliLmUxZGVkMDA1ZGMyOGZhMzMuNzdiNmJlOTAwMWUwMzdmYQogICAgIDQyNzM1ZjU5OWE4OGY4ODcuZmE5YWZhMDAxNDhjMDU2NC40ZTBkZTM0NTYwODVkNTg4LmRhNWRjNzFkODFhNzY0MTcKQEAgLTI2MjUwLDEyICsyNjI1MCwxMiBAQAogICAgIGIyZjdjODQwOGNjNDc0ZTMuZGEyMjMzNzc0MjZmYzgwNC5mYTMzZmRlODZkMTFmNjMyLmJkMGE2MjViMjEyZDhiNjAKICAgICBmNGE5ZWJlMzc4MDNmZWUzCiAgIGFmdGVyCi0gICAgOTcyZjAzMjhmN2RiN2Q3OS4xZDdmZGVlNzAxZmZmNzliLmUxZGVkMDA1ZGMyOGZhMzMuNzdiNmJlOTAwMWUwMzdmYQorICAgIDQyNzM1ZjU5OWE4OGY4ODcuZjAzNzk3ZTEyMGFkNjEyMi44ZGJiNDhjMjA4YTRiZmY5LmRhNWRjNzFkODFhNzY0MTcKICAgICA0MjczNWY1OTlhODhmODg3LmZhOWFmYTAwMTQ4YzA1NjQuNGUwZGUzNDU2MDg1ZDU4OC5kYTVkYzcxZDgxYTc2NDE3Ci0gICAgYjJmN2M4NDA4Y2M0NzRlMy5kYTIyMzM3NzQyNmZjODA0LmZhMzNmZGU4NmQxMWY2MzIuYmQwYTYyNWIyMTJkOGI2MAorICAgIDJjOWQ0ZDNkZWRmY2UxYzYuZjAzNzk3ZTEyMGFkNjEyMi44ZGJiNDhjMjA4YTRiZmY5LmE4ZTBkNGJkMmRiZDQxZDUKICAgICBiMmY3Yzg0MDhjYzQ3NGUzLmRhMjIzMzc3NDI2ZmM4MDQuZmEzM2ZkZTg2ZDExZjYzMi5iZDBhNjI1YjIxMmQ4YjYwCiAgICAgZjRhOWViZTM3ODAzZmVlMwotVk1PVkRRVV9HdG9FXzI1NihtZW0pCitWQkxFTkRQRF8yNTZfMm9mMyhtZW0pCiAgIGJlZm9yZQogICAgIDJiODdlZDQxNGU0YzU1OGIuMzFjZmNjY2UxNDZiZWQ4OS45NjI3NDlhYzk1ZGRmNTM0LmYxYzNmZDIzMmQ1N2I0ZGUKICAgICAzZDcxZTM2MWMwMTM0ZDgzLjAzNmY1NTU0MjE3ZDg3NjUuZmYxMjU1NmQzNjAzYTVkZS5jZWI1NDRkZmU0MDIzNmFhCkBAIC0yNjI2MywxMyArMjYyNjMsMTMgQEAKICAgICA2MTk5OWI5N2U2NGMxMDE2LjE0MzllN2Y0MzcxNDExNmUuNDdjOTQxNDVjZmE5N2U1My5hOWYyOTg4YmE1Yjg3NTUwCiAgICAgNjBkNDljNTNlN2RiYWE4MwogICBhZnRlcgotICAgIDA2MzM0OTJmZTk2NWEyZjguODYyNDVmM2M0ZDg3N2YyMy5mMWFlZDRhNzQwZWU5NDJmLmVkNTZjZTg5MmQ5ZWI4NDEKKyAgICAyYjg3ZWQ0MTRlNGM1NThiLjMxY2ZjY2NlMTQ2YmVkODkuOTYyNzQ5YWM5NWRkZjUzNC5mMWMzZmQyMzJkNTdiNGRlCiAgICAgM2Q3MWUzNjFjMDEzNGQ4My4wMzZmNTU1NDIxN2Q4NzY1LmZmMTI1NTZkMzYwM2E1ZGUuY2ViNTQ0ZGZlNDAyMzZhYQotICAgIDA2MzM0OTJmZTk2NWEyZjguODYyNDVmM2M0ZDg3N2YyMy5mMWFlZDRhNzQwZWU5NDJmLmVkNTZjZTg5MmQ5ZWI4NDEKKyAgICAyYjg3ZWQ0MTRlNGM1NThiLjAzNmY1NTU0MjE3ZDg3NjUuZmYxMjU1NmQzNjAzYTVkZS5mMWMzZmQyMzJkNTdiNGRlCiAgICAgNjE5OTliOTdlNjRjMTAxNi4xNDM5ZTdmNDM3MTQxMTZlLjQ3Yzk0MTQ1Y2ZhOTdlNTMuYTlmMjk4OGJhNWI4NzU1MAogICAgIDYwZDQ5YzUzZTdkYmFhODMKIAotVk1PVkRRVV9HdG9FXzI1NihyZWcpCitWQkxFTkRQRF8yNTZfMm9mMyhyZWcpCiAgIGJlZm9yZQogICAgIDZkNGFkODRjOGY5NDkzODUuMmM2ZjU2ODVkMmQ2NTIwOC4wYWZjZThlNjc4YjA3OGYzLmRmMmQxODMyMDA0MDFlNzUKICAgICAyYzllNDhlMTNhNmU2YzAzLjQyODBmNWU1Y2EwZjI1ZmEuYzRiNzVlODBhZmU4ZjI1ZC45NGE3ZDU1Y2VmYzAzMmMyCkBAIC0yNjI3NywxMiArMjYyNzcsMTIgQEAKICAgICAyZjEzYjA5NDA3YjVkYzIxLmJlODdjZmFjNGNiYTZkOTIuZjU0OTlhNTk2ODU5MDk5My5jNDBkZjIxNDc0YThhMDhjCiAgICAgZjc5MTRhN2E0MzI5NzM2MAogICBhZnRlcgotICAgIDZkNGFkODRjOGY5NDkzODUuMmM2ZjU2ODVkMmQ2NTIwOC4wYWZjZThlNjc4YjA3OGYzLmRmMmQxODMyMDA0MDFlNzUKKyAgICAyYzllNDhlMTNhNmU2YzAzLjdlOWFmNGE0ZTkwMTQ1MWEuOWZiODQ1MmQ3NTQ3Yjg1YS45NGE3ZDU1Y2VmYzAzMmMyCiAgICAgMmM5ZTQ4ZTEzYTZlNmMwMy40MjgwZjVlNWNhMGYyNWZhLmM0Yjc1ZTgwYWZlOGYyNWQuOTRhN2Q1NWNlZmMwMzJjMgotICAgIDJmMTNiMDk0MDdiNWRjMjEuYmU4N2NmYWM0Y2JhNmQ5Mi5mNTQ5OWE1OTY4NTkwOTkzLmM0MGRmMjE0NzRhOGEwOGMKKyAgICBmODFkZTY4MDg0ZjU3MGE4LjdlOWFmNGE0ZTkwMTQ1MWEuOWZiODQ1MmQ3NTQ3Yjg1YS40MTAzZjRhZWI3MzQ3MzY2CiAgICAgMmYxM2IwOTQwN2I1ZGMyMS5iZTg3Y2ZhYzRjYmE2ZDkyLmY1NDk5YTU5Njg1OTA5OTMuYzQwZGYyMTQ3NGE4YTA4YwogICAgIGY3OTE0YTdhNDMyOTczNjAKLVZNT1ZEUVVfR3RvRV8yNTYobWVtKQorVkJMRU5EUERfMjU2XzJvZjMobWVtKQogICBiZWZvcmUKICAgICBiODVhNzhjZDNmYzJhOTEwLjJjY2NhMTg5NjIzYmVjMTkuZGMxNDAyZWIwZTQ2NWE4ZS4yM2I3NTg3MDI0YWIxZmI2CiAgICAgZTEzNWY4Zjc4NTgwZmVjNi40YTk0YjVjYjJmMTNkYjNkLmI2MGQwYTRjNGJiMGM4M2IuODU0ZTdiZGU0NGM4Mzg2ZgpAQCAtMjYyOTAsMTMgKzI2MjkwLDEzIEBACiAgICAgZGY1MmRmODQ1ZDk4ZjRmNS41ZDgwMzdlNzkwZTU0OWI4LjBhNzI4NjI0YTk0ZTE2NTcuNTUyNmUwNmYyMjk0NWQ1MgogICAgIDdiZmYxYjZiMTc1YmUyZDMKICAgYWZ0ZXIKLSAgICA1MGVmNDdlNTMwNmQyZGFlLmU3YjdlOGM3MGFjN2U2MzkuMjYzZTYyYmIyMDA0NzNjNS43NzU5ZmYwZjY1M2M4ZDZhCisgICAgYjg1YTc4Y2QzZmMyYTkxMC4yY2NjYTE4OTYyM2JlYzE5LmRjMTQwMmViMGU0NjVhOGUuMjNiNzU4NzAyNGFiMWZiNgogICAgIGUxMzVmOGY3ODU4MGZlYzYuNGE5NGI1Y2IyZjEzZGIzZC5iNjBkMGE0YzRiYjBjODNiLjg1NGU3YmRlNDRjODM4NmYKLSAgICA1MGVmNDdlNTMwNmQyZGFlLmU3YjdlOGM3MGFjN2U2MzkuMjYzZTYyYmIyMDA0NzNjNS43NzU5ZmYwZjY1M2M4ZDZhCisgICAgYjg1YTc4Y2QzZmMyYTkxMC40YTk0YjVjYjJmMTNkYjNkLmI2MGQwYTRjNGJiMGM4M2IuMjNiNzU4NzAyNGFiMWZiNgogICAgIGRmNTJkZjg0NWQ5OGY0ZjUuNWQ4MDM3ZTc5MGU1NDliOC4wYTcyODYyNGE5NGUxNjU3LjU1MjZlMDZmMjI5NDVkNTIKICAgICA3YmZmMWI2YjE3NWJlMmQzCiAKLVZNT1ZEUVVfR3RvRV8yNTYocmVnKQorVkJMRU5EUERfMjU2XzJvZjMocmVnKQogICBiZWZvcmUKICAgICA0NTMxYWI2ZGUxMWU1OTlhLjZjMmEzZWJlMjcwYTBjYzcuMGEzYzljOTg1Y2Y4M2Y2Ny4zYzc3ZjI3MzAxOWI2ZTFlCiAgICAgMGYwODhjZTMxYzY3ZmU1My5kMTQ1ZGY4MWFiZDEzNDRmLjQ4MzcxNTQ3MGI4ZDA2ZjIuOTkxNzIzOTQ0NGY2Mzc0NQpAQCAtMjYzMDQsMTIgKzI2MzA0LDEyIEBACiAgICAgMTNkNTMyZDc1MmMxYzA0OS45NjcwZDg0ZjRmOGM5ZjMzLmViMWEzMTRiN2Y2YWYyNGEuNDU1YmMxZmNmZTA4MGE2NgogICAgIDRiOTcyNjFjYWNkNjhkYjcKICAgYWZ0ZXIKLSAgICA0NTMxYWI2ZGUxMWU1OTlhLjZjMmEzZWJlMjcwYTBjYzcuMGEzYzljOTg1Y2Y4M2Y2Ny4zYzc3ZjI3MzAxOWI2ZTFlCisgICAgMGYwODhjZTMxYzY3ZmU1My5lYjZlM2ZiODA0ZjgyNmJhLjc1YmQ5ZTVlMzgyZmQ4MDQuOTkxNzIzOTQ0NGY2Mzc0NQogICAgIDBmMDg4Y2UzMWM2N2ZlNTMuZDE0NWRmODFhYmQxMzQ0Zi40ODM3MTU0NzBiOGQwNmYyLjk5MTcyMzk0NDRmNjM3NDUKLSAgICAxM2Q1MzJkNzUyYzFjMDQ5Ljk2NzBkODRmNGY4YzlmMzMuZWIxYTMxNGI3ZjZhZjI0YS40NTViYzFmY2ZlMDgwYTY2CisgICAgMzVkMGJhMzc2M2M1MGNhOS5lYjZlM2ZiODA0ZjgyNmJhLjc1YmQ5ZTVlMzgyZmQ4MDQuZmUxZjk0NzM4ZjZjMmNmOQogICAgIDEzZDUzMmQ3NTJjMWMwNDkuOTY3MGQ4NGY0ZjhjOWYzMy5lYjFhMzE0YjdmNmFmMjRhLjQ1NWJjMWZjZmUwODBhNjYKICAgICA0Yjk3MjYxY2FjZDY4ZGI3Ci1WTU9WRFFVX0d0b0VfMjU2KG1lbSkKK1ZCTEVORFBEXzI1Nl8yb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgZWM5ZTNmYmRiNWUyNzExOS4wNTYyZWUyZTg2ZTk1NmRmLmFmMTgyODMyYTc5NzViZTcuMDg5YWNjNzk3ZGNiOGY2ZgogICAgIDA1M2U4OWNkMzYzOTcxYjguNjdjNWVjYTg5YWM4MDkxNi4xMDMyYWE0ZDI5MjgxNjAyLjI2ODg2OTU0Y2VkZGVjMjAKQEAgLTI2MzE3LDEzICsyNjMxNywxMyBAQAogICAgIDBhNzQ5ZGU2MGVmNmI4NWEuZWEzODljYjVkNGRjYmExOS4xZGVjMzVkYjE4MDU3NzFiLmQ5ZTI5ZmMxZDc0NWQ2ZDQKICAgICAyNWU1MmUyYmM3YjNkYTMwCiAgIGFmdGVyCi0gICAgNzA0MTdmMzc0YWU2NGFiZi45NTQ4MjdiMTJiZWExNzliLjk2OGFkYThjZjA0ODhiYWYuYTIzMjA2NDgwZDJjNDUwOAorICAgIGVjOWUzZmJkYjVlMjcxMTkuMDU2MmVlMmU4NmU5NTZkZi5hZjE4MjgzMmE3OTc1YmU3LjA4OWFjYzc5N2RjYjhmNmYKICAgICAwNTNlODljZDM2Mzk3MWI4LjY3YzVlY2E4OWFjODA5MTYuMTAzMmFhNGQyOTI4MTYwMi4yNjg4Njk1NGNlZGRlYzIwCi0gICAgNzA0MTdmMzc0YWU2NGFiZi45NTQ4MjdiMTJiZWExNzliLjk2OGFkYThjZjA0ODhiYWYuYTIzMjA2NDgwZDJjNDUwOAorICAgIGVjOWUzZmJkYjVlMjcxMTkuNjdjNWVjYTg5YWM4MDkxNi4xMDMyYWE0ZDI5MjgxNjAyLjA4OWFjYzc5N2RjYjhmNmYKICAgICAwYTc0OWRlNjBlZjZiODVhLmVhMzg5Y2I1ZDRkY2JhMTkuMWRlYzM1ZGIxODA1NzcxYi5kOWUyOWZjMWQ3NDVkNmQ0CiAgICAgMjVlNTJlMmJjN2IzZGEzMAogCi1WQ1ZUUFMyUERfMjU2KHJlZykKK1ZCTEVORFBEXzI1Nl8zb2YzKHJlZykKICAgYmVmb3JlCiAgICAgZTM4N2IxZjI3OTAyOGVjNy5hZmEzNWZjODlkNzQ3NmI2LmM0ZTE0NTIwMzIyYTJlM2QuODEyNDM2MjZiZTZhOTU3MgogICAgIDZmMTMyMzgzOGFiZjJlNDYuM2I5YTQyYzgxNDZjNDJmZi43ZThmMjA1ZmUwNWViMWIzLjlmZmQ1ODVhZmU4NGEzZGYKQEAgLTI2MzMxLDEyICsyNjMzMSwxMiBAQAogICAgIDYyMWRjNGFmMzdiMDIwYWEuNzgxMDU3ZDIyN2ZiZWUwNy4wMTI5NWEwNTllYWRjZjQzLjc0YzZmNTI5YjkwNDdhYWMKICAgICBlNDRkNjY5ZDZkODNiYjY1CiAgIGFmdGVyCi0gICAgZTM4N2IxZjI3OTAyOGVjNy5hZmEzNWZjODlkNzQ3NmI2LmM0ZTE0NTIwMzIyYTJlM2QuODEyNDM2MjZiZTZhOTU3MgorICAgIDI1ZDc4MDQ4OTU3NWY1NTguOGEyNWMwZDI4ZWViZDY2MS43ZThmMjA1ZmUwNWViMWIzLjlmZmQ1ODVhZmU4NGEzZGYKICAgICA2ZjEzMjM4MzhhYmYyZTQ2LjNiOWE0MmM4MTQ2YzQyZmYuN2U4ZjIwNWZlMDVlYjFiMy45ZmZkNTg1YWZlODRhM2RmCi0gICAgMzgyNTJiNDBhMDAwMDAwMC5iYmQ1YjllODYwMDAwMDAwLjQ2OThkZWE1MjAwMDAwMDAuYmYyMDhmNTU4MDAwMDAwMAorICAgIDI1ZDc4MDQ4OTU3NWY1NTguOGEyNWMwZDI4ZWViZDY2MS43MzhlMjhkYzdiMDY3ZDI2LjUxNDQxYTYxZjI1ZTViOGUKICAgICA2MjFkYzRhZjM3YjAyMGFhLjc4MTA1N2QyMjdmYmVlMDcuMDEyOTVhMDU5ZWFkY2Y0My43NGM2ZjUyOWI5MDQ3YWFjCiAgICAgZTQ0ZDY2OWQ2ZDgzYmI2NQotVkNWVFBTMlBEXzI1NihtZW0pCitWQkxFTkRQRF8yNTZfM29mMyhtZW0pCiAgIGJlZm9yZQogICAgIDdkYTVlYWE4MmFlNmRiZTUuODAzM2VjMjIwY2ZkZWJlOC5lMTI2ODJiNWZjYWI0ODFkLjgzYWRiMDQ0ZTVlMGUyYjUKICAgICAxYjljZmMzODBkMzk5NjU2LmRjNjNmMzBmYWVlNzkyYmQuYTEzNGJlNjUyOTA0OWVkMC41NDY3MjgwN2VkMmFmMzI5CkBAIC0yNjM0NiwxMSArMjYzNDYsMTEgQEAKICAgYWZ0ZXIKICAgICA3ZGE1ZWFhODJhZTZkYmU1LjgwMzNlYzIyMGNmZGViZTguZTEyNjgyYjVmY2FiNDgxZC44M2FkYjA0NGU1ZTBlMmI1CiAgICAgMWI5Y2ZjMzgwZDM5OTY1Ni5kYzYzZjMwZmFlZTc5MmJkLmExMzRiZTY1MjkwNDllZDAuNTQ2NzI4MDdlZDJhZjMyOQotICAgIGM0MjRkMDU2YTAwMDAwMDAuYzc5NTY5MDNhMDAwMDAwMC5iODc1YjYwODgwMDAwMDAwLmM0YmMxYzU2YTAwMDAwMDAKKyAgICA3ZGE1ZWFhODJhZTZkYmU1LjgwMzNlYzIyMGNmZGViZTguZTEyNjgyYjVmY2FiNDgxZC44M2FkYjA0NGU1ZTBlMmI1CiAgICAgZDU5M2JiOTRiM2UwY2NjMi5iZTQzOGUwNGNmYzM2MmRlLjk2Njg1NWUwZjllNzMwYmQuNTdhNzZiYzZhZjMzZmZjNQogICAgIDQxYzcyZTlhYTAwYjcyNDYKIAotVkNWVFBTMlBEXzI1NihyZWcpCitWQkxFTkRQRF8yNTZfM29mMyhyZWcpCiAgIGJlZm9yZQogICAgIGVhNGMwM2ExYzIyYmQyNzguYWEyYjYwMzhhZTRkYmYxNC5mYzhjMWJlNDg2Y2QwNDgyLjgzMjZhOTgzZDM4N2U0NGUKICAgICBiMDgxZTU0N2IxMWQ1YzA4LmY0OTE4MjExM2ZkOTNkMDguZTgyMDc2ZWQ3YWE1NzI2ZS4zNzBjZmRhMzc2MDI4NTJiCkBAIC0yNjM1OCwxMiArMjYzNTgsMTIgQEAKICAgICBmZjJlYzAyMDYzYWRkY2YxLjU3ZjczMzBlOTA4NGM5ODkuM2E1NzhiMmI4ZmVjYTBjYy42MzdmOTcwZjgxYjc3ZDdjCiAgICAgOTRhNGQ0MzIyMjA5NGM0NwogICBhZnRlcgotICAgIGVhNGMwM2ExYzIyYmQyNzguYWEyYjYwMzhhZTRkYmYxNC5mYzhjMWJlNDg2Y2QwNDgyLjgzMjZhOTgzZDM4N2U0NGUKKyAgICBlZGIzZDBmODA4NmY0YmEyLjhmOTFhMDA5ODE5MjAyY2IuZTgyMDc2ZWQ3YWE1NzI2ZS4zNzBjZmRhMzc2MDI4NTJiCiAgICAgYjA4MWU1NDdiMTFkNWMwOC5mNDkxODIxMTNmZDkzZDA4LmU4MjA3NmVkN2FhNTcyNmUuMzcwY2ZkYTM3NjAyODUyYgotICAgIDNmNGFmMTY1NjAwMDAwMDAuYjlmZDk0MTk4MDAwMDAwMC40NDZmZjJlMWUwMDAwMDAwLmI4MzZlZmFmODAwMDAwMDAKKyAgICBlZGIzZDBmODA4NmY0YmEyLjhmOTFhMDA5ODE5MjAyY2IuZGU0YTlkOGI0OWQ2ZTc0ZC44ZWU1Y2UyZWZjNjRjZjgxCiAgICAgZmYyZWMwMjA2M2FkZGNmMS41N2Y3MzMwZTkwODRjOTg5LjNhNTc4YjJiOGZlY2EwY2MuNjM3Zjk3MGY4MWI3N2Q3YwogICAgIDk0YTRkNDMyMjIwOTRjNDcKLVZDVlRQUzJQRF8yNTYobWVtKQorVkJMRU5EUERfMjU2XzNvZjMobWVtKQogICBiZWZvcmUKICAgICBmYzIxMDE4M2ZhNjZmODBmLjQwM2ViMTJjNWY2MTRiYTEuMjc4ZWI4MGE4OWI5NGY2ZC41NzkzM2QzN2U3NzNkODk2CiAgICAgNzZjMjlhZWUyNmQ4M2QwMC4wZDJmYTA4Njk3MTlkNDYwLmRkMjRhY2ViODgzZjUwYTQuOTM0YWFkMWRlZWY4Y2Q1OApAQCAtMjYzNzMsMTEgKzI2MzczLDExIEBACiAgIGFmdGVyCiAgICAgZmMyMTAxODNmYTY2ZjgwZi40MDNlYjEyYzVmNjE0YmExLjI3OGViODBhODliOTRmNmQuNTc5MzNkMzdlNzczZDg5NgogICAgIDc2YzI5YWVlMjZkODNkMDAuMGQyZmEwODY5NzE5ZDQ2MC5kZDI0YWNlYjg4M2Y1MGE0LjkzNGFhZDFkZWVmOGNkNTgKLSAgICAzY2YxZDcwMTQwMDAwMDAwLmI5MzcyOWVkYTAwMDAwMDAuNDJmMjY3YTZlMDAwMDAwMC5jNGVlN2IxMmMwMDAwMDAwCisgICAgZmMyMTAxODNmYTY2ZjgwZi40MDNlYjEyYzVmNjE0YmExLjI3OGViODBhODliOTRmNmQuNTc5MzNkMzdlNzczZDg5NgogICAgIDE1OWYwMWMzZTgzMTgwMGIuYmNlMzY1ZDkyZGMzMjNiNS42Nzc4Y2UwODA1NmRiMWI5LmQ1NThiYzIzNzYyYWQ5NzMKICAgICA5MzQ3NTIxYzMwZWY2ODI0CiAKLVZDVlRQUzJQRF8yNTYocmVnKQorVkJMRU5EUERfMjU2XzNvZjMocmVnKQogICBiZWZvcmUKICAgICBkZWUyOTg5ZDA4ZTFhNDdjLmYwNzNjNzA1YjYyZmY3N2QuNTUzZTMzYTljM2NkNjFhNC5mNGNmZjUxZGJjMmM4YWVmCiAgICAgMTQ3Mzg4MTQ5YjhjYzcyOC40ZjliZWExMDQ4NzNmNmM4LmVhYWJlZjc4MDUwYmE4NTEuZDU1NDc5YzZlOTZiY2UyOQpAQCAtMjYzODUsMTIgKzI2Mzg1LDEyIEBACiAgICAgYWRhOTViOTI2MTNmYjQyYS4wNTE3MzMzNTI2ZmU3Zjk3Ljc4ZTUxZWMzZmY0ZjQ1OTMuMDcxNzhkODUxMjliODU1MgogICAgIDEwZWQxNDcyNDdhMzcxOWIKICAgYWZ0ZXIKLSAgICBkZWUyOTg5ZDA4ZTFhNDdjLmYwNzNjNzA1YjYyZmY3N2QuNTUzZTMzYTljM2NkNjFhNC5mNGNmZjUxZGJjMmM4YWVmCisgICAgOTA0NzIwZWQ4NTdkMGRkMy4wY2UzZTRkMmI5MDkzYTE3LmVhYWJlZjc4MDUwYmE4NTEuZDU1NDc5YzZlOTZiY2UyOQogICAgIDE0NzM4ODE0OWI4Y2M3MjguNGY5YmVhMTA0ODczZjZjOC5lYWFiZWY3ODA1MGJhODUxLmQ1NTQ3OWM2ZTk2YmNlMjkKLSAgICA0NzFjYTNkODYwMDAwMDAwLmM3ZTllOGIyNjAwMDAwMDAuMzhlMmYxYjBhMDAwMDAwMC4zYTUzNzBhYTQwMDAwMDAwCisgICAgOTA0NzIwZWQ4NTdkMGRkMy4wY2UzZTRkMmI5MDkzYTE3LmQ3NzM5NGIyOGYwNzM2NjcuZThkM2Q4ZWZhNzM3Mzg5MAogICAgIGFkYTk1YjkyNjEzZmI0MmEuMDUxNzMzMzUyNmZlN2Y5Ny43OGU1MWVjM2ZmNGY0NTkzLjA3MTc4ZDg1MTI5Yjg1NTIKICAgICAxMGVkMTQ3MjQ3YTM3MTliCi1WQ1ZUUFMyUERfMjU2KG1lbSkKK1ZCTEVORFBEXzI1Nl8zb2YzKG1lbSkKICAgYmVmb3JlCiAgICAgZGQyMmVhYTM2MTVjYjc5Ny5jOWU3MzY3MGNiNWZmNmQ5LjE0MDM1MjI3YWE1ZDgxNzQuMjk0Yzg5MTdlZTZmMTI4MAogICAgIDRjODA4YTA1N2RkMTE0NzEuM2U0YmFiZjM2MDY4MTA4Yi4xNzczYmQ5MzYxMzJmYmQ5LjQ2ZjNkMTFhZmFmMmQ4ZGIKQEAgLTI2NDAwLDExICsyNjQwMCwxMSBAQAogICBhZnRlcgogICAgIGRkMjJlYWEzNjE1Y2I3OTcuYzllNzM2NzBjYjVmZjZkOS4xNDAzNTIyN2FhNWQ4MTc0LjI5NGM4OTE3ZWU2ZjEyODAKICAgICA0YzgwOGEwNTdkZDExNDcxLjNlNGJhYmYzNjA2ODEwOGIuMTc3M2JkOTM2MTMyZmJkOS40NmYzZDExYWZhZjJkOGRiCi0gICAgM2E4MDZhNDRlMDAwMDAwMC5iZDRiYjAyZTgwMDAwMDAwLjNkMjk5MTIyZTAwMDAwMDAuYzVjZGUyNTAwMDAwMDAwMAorICAgIGRkMjJlYWEzNjE1Y2I3OTcuYzllNzM2NzBjYjVmZjZkOS4xNDAzNTIyN2FhNWQ4MTc0LjI5NGM4OTE3ZWU2ZjEyODAKICAgICA3YmU5MTgwODI5MjEwMzcxLmE3Yjk1ODk5Nzk2NmJiYWIuNjQwZDY4ODlkYjcwNGFlZS4zNTM1ZWFkZWQ4NTE0MjhhCiAgICAgYmQ2N2IyNzdlMTQ2NWUzNgogCi1WQ1ZUVFBTMkRRXzEyOChyZWcpCitWUEJMRU5EV18xMjhfMHgwMChyZWcpCiAgIGJlZm9yZQogICAgIDIyMGE0NzZlNzdjZTYzZmYuZjU4ZGZlODJmMTEzMGNlZi41MzVhODc5NDM1NzNjNDcwLjY4ZDA5ZmVjZDRmMTk2ZjUKICAgICBiZjZhYTYzMTM1NzU4ZTkyLjdmOGE5ZmRjMmJmMTFjZmIuYzg1MTQyZTQ4Yjk5OTRlOC5jZTQ3MTM3ODcyMTg0YjM0CkBAIC0yNjQxMiwxMiArMjY0MTIsMTIgQEAKICAgICAxMTkwYWVjODliNTI0NmM1LjM3YzJmZmUwNjJhMzQwNzAuODE3NjQ4MzI3ODYyN2RhNS4zNDgxYTBiZjA3ODhlMDBkCiAgICAgZWJkYmIxNTEzN2VhMzdmZgogICBhZnRlcgotICAgIDIyMGE0NzZlNzdjZTYzZmYuZjU4ZGZlODJmMTEzMGNlZi41MzVhODc5NDM1NzNjNDcwLjY4ZDA5ZmVjZDRmMTk2ZjUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzg1MTQyZTQ4Yjk5OTRlOC5jZTQ3MTM3ODcyMTg0YjM0CiAgICAgYmY2YWE2MzEzNTc1OGU5Mi43ZjhhOWZkYzJiZjExY2ZiLmM4NTE0MmU0OGI5OTk0ZTguY2U0NzEzNzg3MjE4NGIzNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBmMGQyYzkyYmI4YzgxYjlhLmY2YWQ3NjAyZjJjOGVmYzIuNjNlYzgzZjQxODY1NjljMS43MzNlNDAxYWNmZjEyNWQ5CiAgICAgMTE5MGFlYzg5YjUyNDZjNS4zN2MyZmZlMDYyYTM0MDcwLjgxNzY0ODMyNzg2MjdkYTUuMzQ4MWEwYmYwNzg4ZTAwZAogICAgIGViZGJiMTUxMzdlYTM3ZmYKLVZDVlRUUFMyRFFfMTI4KG1lbSkKK1ZQQkxFTkRXXzEyOF8weDAwKG1lbSkKICAgYmVmb3JlCiAgICAgNzUxYWVkYmU3YTIyZTdkOS43ZWVlNTE3NDdiYTA0YWJjLjFjOTViNjYyOTg4ZmNjMzAuN2MzYThjMDk0NjFjMGQ0MAogICAgIGFlMDhkM2YxZWQzZGFjYzcuOTMzOWFjOWJmMzNkNjQyZS44MmYyMTc3NGIwOTc0ZjJmLmIxODU0YmU1MWYyMDU0M2YKQEAgLTI2NDI3LDExICsyNjQyNywxMSBAQAogICBhZnRlcgogICAgIDc1MWFlZGJlN2EyMmU3ZDkuN2VlZTUxNzQ3YmEwNGFiYy4xYzk1YjY2Mjk4OGZjYzMwLjdjM2E4YzA5NDYxYzBkNDAKICAgICBhZTA4ZDNmMWVkM2RhY2M3LjkzMzlhYzliZjMzZDY0MmUuODJmMjE3NzRiMDk3NGYyZi5iMTg1NGJlNTFmMjA1NDNmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMjcwMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MmYyMTc3NGIwOTc0ZjJmLmIxODU0YmU1MWYyMDBkNDAKICAgICA5ZDI0ODU1OWQxNDk2NDkyLjI0YzY3ZTBiMWQ5NGM5MmQuNDE3OWM5ZjlmMzJiMjk5OC4zYWUwMmM1ZDVmMzNmYjE4CiAgICAgNDU4ODQ1ZDBmZjViZDE0YQogCi1WQ1ZUVFBTMkRRXzEyOChyZWcpCitWUEJMRU5EV18xMjhfMHgwMChyZWcpCiAgIGJlZm9yZQogICAgIGZhZTZjOWY5MTlmYzUwOGYuMGJlYTRiNjY3YTUzY2ZjNy41OTlmZWQyYjA3Njc4YzEzLjUyM2IxMTQzNTdkMGY4NWIKICAgICBiNTQ4YjQ0MjRhYTJiMjk0Ljk4OGZhOWU5YzM2ZjNlYzAuYTU5NjA2NzdmOWJhNTUyMy41NGI4ZjNjZTBkYzJhZTBjCkBAIC0yNjQzOSwxMiArMjY0MzksMTIgQEAKICAgICBhZTQzYjFlOTVmMmYxMjhkLjdmYWExZTAyYTIwZTFjYjAuZjcwOTIyM2Y2NzBjZTg2Zi45YjBkNzc1M2RjYjliZWVhCiAgICAgOTg3ZjEwMjYyZWQ3OTA2ZgogICBhZnRlcgotICAgIGZhZTZjOWY5MTlmYzUwOGYuMGJlYTRiNjY3YTUzY2ZjNy41OTlmZWQyYjA3Njc4YzEzLjUyM2IxMTQzNTdkMGY4NWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTU5NjA2NzdmOWJhNTUyMy41NGI4ZjNjZTBkYzJhZTBjCiAgICAgYjU0OGI0NDI0YWEyYjI5NC45ODhmYTllOWMzNmYzZWMwLmE1OTYwNjc3ZjliYTU1MjMuNTRiOGYzY2UwZGMyYWUwYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDgwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICBkM2Y4MDMxOTJkZGEzNDA1LjIwZTExYmNlYzdhOTZmYTkuNjZmNWMzNTk5MDE3NWYwOC4yM2JhZWM4NTJmMGIwN2Q4CiAgICAgYWU0M2IxZTk1ZjJmMTI4ZC43ZmFhMWUwMmEyMGUxY2IwLmY3MDkyMjNmNjcwY2U4NmYuOWIwZDc3NTNkY2I5YmVlYQogICAgIDk4N2YxMDI2MmVkNzkwNmYKLVZDVlRUUFMyRFFfMTI4KG1lbSkKK1ZQQkxFTkRXXzEyOF8weDAwKG1lbSkKICAgYmVmb3JlCiAgICAgZjZkYjMzZTk0MTcyMzg5My5hMzc1YmExZDdjMmQ4N2Q5LjkxYjcyYzZmNzFhODAxZmUuYjMxZTFlOTQxYTI0MmEwNAogICAgIDkxZWM1Yzg4MzE5NTc0ODEuMGVkYTFhMjMxZTYxZDA5NC4zMmQ0YzMwMzUwODZkY2MyLmY4ODBiM2MzNDZlYzYxNzIKQEAgLTI2NDU0LDExICsyNjQ1NCwxMSBAQAogICBhZnRlcgogICAgIGY2ZGIzM2U5NDE3MjM4OTMuYTM3NWJhMWQ3YzJkODdkOS45MWI3MmM2ZjcxYTgwMWZlLmIzMWUxZTk0MWEyNDJhMDQKICAgICA5MWVjNWM4ODMxOTU3NDgxLjBlZGExYTIzMWU2MWQwOTQuMzJkNGMzMDM1MDg2ZGNjMi5mODgwYjNjMzQ2ZWM2MTcyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMmQ0YzMwMzUwODZkY2MyLmY4ODBiM2MzNDZlYzJhMDQKICAgICBlZTYwYjIwYjFiYTQ5MzZkLmI2NmNkMDUyNjc5OWNkMGEuOTE2ZDc5NGNhYjM3NWY1Ni44OTVhOTk2NTc4YjlhMjhiCiAgICAgOGQ2YmUyYWViNWQ3MjM4ZQogCi1WQ1ZUVFBTMkRRXzEyOChyZWcpCitWUEJMRU5EV18xMjhfMHgwMChyZWcpCiAgIGJlZm9yZQogICAgIDg5ZjhiNDgyZGJkNDg5MWEuNjc1YmQ2YzY0Y2E4ZWVjMy5hYjMxMWU1NDQ1YjRmYTFjLjA3ODI5MWRhNjAyNDgwN2YKICAgICBkYTRlMGI0ZDg1M2MxMmRjLjhlM2NmMDBlY2I2NGNjOTQuODU1OWIzZDYxYTM2ZWE0ZS43YmQ2MjEzZTk0ODI4NWNkCkBAIC0yNjQ2NiwxMiArMjY0NjYsMTIgQEAKICAgICBlNjg1Mzk3OWQ3N2Y3N2IxLjUyZGZmN2YxMjEzNjAxNTQuNWQwMmEzMGUxNzk4MDVjMC5kMjZlOTkzOGViYzcyZTg2CiAgICAgNmI0YTc5YTY0NmM1NGE0YQogICBhZnRlcgotICAgIDg5ZjhiNDgyZGJkNDg5MWEuNjc1YmQ2YzY0Y2E4ZWVjMy5hYjMxMWU1NDQ1YjRmYTFjLjA3ODI5MWRhNjAyNDgwN2YKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODU1OWIzZDYxYTM2ZWE0ZS43YmQ2MjEzZTk0ODI4NWNkCiAgICAgZGE0ZTBiNGQ4NTNjMTJkYy44ZTNjZjAwZWNiNjRjYzk0Ljg1NTliM2Q2MWEzNmVhNGUuN2JkNjIxM2U5NDgyODVjZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAKKyAgICBkYWI5ZTM3YzUwOWNmODgwLjNlY2U3ZGNkYjNlNWU5MGIuYTIzMDhiNDU4MWE4ZDk0Yi5jYjM2YTQ2NDY0NWYyYjZjCiAgICAgZTY4NTM5NzlkNzdmNzdiMS41MmRmZjdmMTIxMzYwMTU0LjVkMDJhMzBlMTc5ODA1YzAuZDI2ZTk5MzhlYmM3MmU4NgogICAgIDZiNGE3OWE2NDZjNTRhNGEKLVZDVlRUUFMyRFFfMTI4KG1lbSkKK1ZQQkxFTkRXXzEyOF8weDAwKG1lbSkKICAgYmVmb3JlCiAgICAgNzQ5NmMyOWE5MDY1M2FlMi41YmZkMDhiMmI3NzFjZDFjLmE4MzlkYzY1MzA2M2NmOWQuMTIxYmY2OWI3NzkxYTg1OQogICAgIGM4MWRlZTAxZTZiM2JiN2IuOTM2ZjRjOTI4YmZmMzQ2Yy4xYmE5YTgxNGZjNzkxMTEwLjFkYzY4MDVhM2QyMGZmYzEKQEAgLTI2NDgxLDExICsyNjQ4MSwxMSBAQAogICBhZnRlcgogICAgIDc0OTZjMjlhOTA2NTNhZTIuNWJmZDA4YjJiNzcxY2QxYy5hODM5ZGM2NTMwNjNjZjlkLjEyMWJmNjliNzc5MWE4NTkKICAgICBjODFkZWUwMWU2YjNiYjdiLjkzNmY0YzkyOGJmZjM0NmMuMWJhOWE4MTRmYzc5MTExMC4xZGM2ODA1YTNkMjBmZmMxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xYmE5YTgxNGZjNzkxMTEwLjFkYzY4MDVhM2QyMGE4NTkKICAgICBjMDEwZTVkNDI0OGI1ZjVlLmJmNmMyNGY2ODExYzI4NmUuYzdmYmUxZDgzZThlZGIyNS5hNDA2MjkxYjZkMmRiN2IwCiAgICAgZDkzMjQxZjUwZmMzOTE4ZgogCi1WQ1ZUVFBTMkRRXzI1NihyZWcpCitWUEJMRU5EV18xMjhfMHhGRShyZWcpCiAgIGJlZm9yZQogICAgIGQzMjE4MGIwODgxZjBmZWQuMWMxM2E2MTg0NDJjZmEwMC42YzkwYjA1M2RiYzQyYzc3LmI4NzU0NmM0ZWFhNGRjMjAKICAgICBmMDFmZTJiODcyY2M2Yzc3LjM0ODIzYzdmZTBhYzE2NTQuNGNkZGExMDg5OTM3MzIxNi4zNzM0ODM5ZGM1ZDQ0MGY1CkBAIC0yNjQ5MywxMiArMjY0OTMsMTIgQEAKICAgICBmZjc3MDA2MDEwNGJiNmJlLjA0ZDNkNDYzZjk3N2MwYmMuMTgyMWEyMjViM2FmMzNjNC40YmI1NmRjMTcyYWIyMGUwCiAgICAgOTgwZTE0ZTY3ZDZiMTU0ZAogICBhZnRlcgotICAgIGQzMjE4MGIwODgxZjBmZWQuMWMxM2E2MTg0NDJjZmEwMC42YzkwYjA1M2RiYzQyYzc3LmI4NzU0NmM0ZWFhNGRjMjAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmM5ZmYzN2Y1ODAxNzZmNi4xZTA1MTE0ZGU5Mjc0MGY1CiAgICAgZjAxZmUyYjg3MmNjNmM3Ny4zNDgyM2M3ZmUwYWMxNjU0LjRjZGRhMTA4OTkzNzMyMTYuMzczNDgzOWRjNWQ0NDBmNQotICAgIDgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxNmFkYjgyODAwMDAwMDAKKyAgICA4Yjc3NjM3OTZjNTdlNmQ5LmUyMjkyMmY0MTMxNjZmODMuYmM5ZmYzN2Y1ODAxNzZmNi4xZTA1MTE0ZGU5MjdjM2QxCiAgICAgZmY3NzAwNjAxMDRiYjZiZS4wNGQzZDQ2M2Y5NzdjMGJjLjE4MjFhMjI1YjNhZjMzYzQuNGJiNTZkYzE3MmFiMjBlMAogICAgIDk4MGUxNGU2N2Q2YjE1NGQKLVZDVlRUUFMyRFFfMjU2KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEZFKG1lbSkKICAgYmVmb3JlCiAgICAgZTNkZDgxYTYyNTczNWI0NC5hYTY5YjRkN2ZhMzQxYmQzLjc0NGVjZWI4YWZkOWM2MjguYmNiMWFiNjY0NmNjYTYyYwogICAgIDA2ZWQzMGVmODdkMGIxZjMuZTY5YTdiNGNjNjlmNGZjNC4wZjY0OGRkZjUxNGEzZGY2LjA0OTkwOWFmYWVlNDBiZDkKQEAgLTI2NTA4LDExICsyNjUwOCwxMSBAQAogICBhZnRlcgogICAgIGUzZGQ4MWE2MjU3MzViNDQuYWE2OWI0ZDdmYTM0MWJkMy43NDRlY2ViOGFmZDljNjI4LmJjYjFhYjY2NDZjY2E2MmMKICAgICAwNmVkMzBlZjg3ZDBiMWYzLmU2OWE3YjRjYzY5ZjRmYzQuMGY2NDhkZGY1MTRhM2RmNi4wNDk5MDlhZmFlZTQwYmQ5Ci0gICAgODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwNjY1MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NDRlY2ViOGFmZDljNjI4LmJjYjFhYjY2NDZjY2E2MmMKICAgICA0ODA0NDVjOWU2Yjc3ODIzLjg1ZTkzMmRjNzcyODE3ZTcuMzc5NDQ2NTRjNjg4NmM2My5mMGE0YjQwNTZiMzc5YWI0CiAgICAgNGM1ZWZhZWJmOThhM2MzYQogCi1WQ1ZUVFBTMkRRXzI1NihyZWcpCitWUEJMRU5EV18xMjhfMHhGRShyZWcpCiAgIGJlZm9yZQogICAgIGJiYTI4NTg4Y2IwOGMwYjYuMWVhMmEzMzIxYzU5NjJmZC45ZjllMWJkMDkzNWYyMjczLjdiNDYzOTc5ZDI2YzlkNWEKICAgICA5YmJhNTE0ODdkM2Q2MmQzLjNkYjIzM2QzN2M3ZjRiM2UuYmNjMzA3NzEwMjQ3ZWU4YS41YmMzZTEyMDM5OGYyZjYyCkBAIC0yNjUyMCwxMiArMjY1MjAsMTIgQEAKICAgICAxYjlhOWNlMWYzZmRlZWEyLmM2NThkYTZkMjg4ODA4YTMuNmE4OGQ4NmE0NjViYjMwYS41YTUyM2NhNjhhYmY2NDUzCiAgICAgMzJmYmU4NWNhY2U0ODA5NQogICBhZnRlcgotICAgIGJiYTI4NTg4Y2IwOGMwYjYuMWVhMmEzMzIxYzU5NjJmZC45ZjllMWJkMDkzNWYyMjczLjdiNDYzOTc5ZDI2YzlkNWEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzZhMmYyMmI1ZjZjYjRkOC5iMWQ5YjkzNjE4ZmIyZjYyCiAgICAgOWJiYTUxNDg3ZDNkNjJkMy4zZGIyMzNkMzdjN2Y0YjNlLmJjYzMwNzcxMDI0N2VlOGEuNWJjM2UxMjAzOThmMmY2MgotICAgIDAwMDAwMDAwODAwMDAwMDAuZmZmZmM5Y2EwMDAwMDAwMC44MDAwMDAwMDAwMDAzNmVjLjgwMDAwMDAwMDAwMDAwMDAKKyAgICA0N2Y0NWE5N2FjYjU1ZDNlLjgxMDA3MTk4MjEzNWVlMTEuMzZhMmYyMmI1ZjZjYjRkOC5iMWQ5YjkzNjE4ZmJkZGE2CiAgICAgMWI5YTljZTFmM2ZkZWVhMi5jNjU4ZGE2ZDI4ODgwOGEzLjZhODhkODZhNDY1YmIzMGEuNWE1MjNjYTY4YWJmNjQ1MwogICAgIDMyZmJlODVjYWNlNDgwOTUKLVZDVlRUUFMyRFFfMjU2KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEZFKG1lbSkKICAgYmVmb3JlCiAgICAgMTVhMTM5NDM5OTc4ZWM5Ny43M2Y5MTQ5MmVmYTA1MWFjLmU5ODZlODNlYWM4NDU0MWYuYjVjMWI2OWE1NDlmMjVjYwogICAgIGRmMGRhOTQ5NmU4NjY2ODYuYWE1ZGJkMTYzYjJiYzEwOC5jNDU1MTlmOGM5MzM5MGIyLjcxOTk4NjI3MjVjNDQ3YzkKQEAgLTI2NTM1LDExICsyNjUzNSwxMSBAQAogICBhZnRlcgogICAgIDE1YTEzOTQzOTk3OGVjOTcuNzNmOTE0OTJlZmEwNTFhYy5lOTg2ZTgzZWFjODQ1NDFmLmI1YzFiNjlhNTQ5ZjI1Y2MKICAgICBkZjBkYTk0OTZlODY2Njg2LmFhNWRiZDE2M2IyYmMxMDguYzQ1NTE5ZjhjOTMzOTBiMi43MTk5ODYyNzI1YzQ0N2M5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDgwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lOTg2ZTgzZWFjODQ1NDFmLmI1YzFiNjlhNTQ5ZjI1Y2MKICAgICA5ODZmZGI2MDNlNDI2ZWQ5LjJhNjM5MjQ4MzUyNmJiNjQuMTUwYWQyZDM0MGRmYzNjYy5hZjU2ZjEwOTdkZTM4YjI2CiAgICAgZTlkMjg0MzYzZGY0MjRkZQogCi1WQ1ZUVFBTMkRRXzI1NihyZWcpCitWUEJMRU5EV18xMjhfMHhGRShyZWcpCiAgIGJlZm9yZQogICAgIDA1MWRmOTZmMmYxNzVkODIuM2ZmYjk0NDg3MTA3NzY5Ni4yOTlkYjZjZTFhYWViZGJjLjQzODc1MWNkZDJmNDMyYWIKICAgICA1ZjgzNGUyMmYwZDc3MWJkLjNkN2Y1ZGZlZmI3NzdhZWYuNzkwY2ZjZDdjMDRlYmMxNi45YWQ1ZTM1ZjZkZWQ4MDUwCkBAIC0yNjU0NywxMiArMjY1NDcsMTIgQEAKICAgICAzZGQwODVhMzRkNWYxZWFhLmFlOWYxMTg1ODc4NTY4MjcuNzhiOWRiMjFiZTA0YTQ3ZS4zMzE5MmRmYTMwYmNhOTllCiAgICAgMmNhNWRlZGM5MGFhZmJhMAogICBhZnRlcgotICAgIDA1MWRmOTZmMmYxNzVkODIuM2ZmYjk0NDg3MTA3NzY5Ni4yOTlkYjZjZTFhYWViZGJjLjQzODc1MWNkZDJmNDMyYWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzRmYzVmY2VjMzkyZjUxZC5mNmMyMDM3NDJlZDY4MDUwCiAgICAgNWY4MzRlMjJmMGQ3NzFiZC4zZDdmNWRmZWZiNzc3YWVmLjc5MGNmY2Q3YzA0ZWJjMTYuOWFkNWUzNWY2ZGVkODA1MAotICAgIDAwMDAwMDAwMGRmMWVhYTAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICA1MzUwN2ViYTFiYzA5ZTNjLjZlYzdiMzZmZjk5ZDM2MTEuNzRmYzVmY2VjMzkyZjUxZC5mNmMyMDM3NDJlZDY2OWU4CiAgICAgM2RkMDg1YTM0ZDVmMWVhYS5hZTlmMTE4NTg3ODU2ODI3Ljc4YjlkYjIxYmUwNGE0N2UuMzMxOTJkZmEzMGJjYTk5ZQogICAgIDJjYTVkZWRjOTBhYWZiYTAKLVZDVlRUUFMyRFFfMjU2KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEZFKG1lbSkKICAgYmVmb3JlCiAgICAgYmYzMzkwMDc2OWFjMWMxNy43OTRmNjA0OTIxM2YyZWI0LmQ5ZDNmMzJlYzAzY2NhNWUuZGY4ZjZkM2I0ZDMyMDRlNQogICAgIGM3OGZjMTY1ZDhjZmM4MzIuNjMxODBhMTgzNGVkMDkwNi5jYjJmZDU1NWMwY2QxOWUyLjA3YzkwZjg4MGRhNzUyZmQKQEAgLTI2NTYyLDExICsyNjU2MiwxMSBAQAogICBhZnRlcgogICAgIGJmMzM5MDA3NjlhYzFjMTcuNzk0ZjYwNDkyMTNmMmViNC5kOWQzZjMyZWMwM2NjYTVlLmRmOGY2ZDNiNGQzMjA0ZTUKICAgICBjNzhmYzE2NWQ4Y2ZjODMyLjYzMTgwYTE4MzRlZDA5MDYuY2IyZmQ1NTVjMGNkMTllMi4wN2M5MGY4ODBkYTc1MmZkCi0gICAgMDAwMDAwMDA4MDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwZmZmZmZmZmUuODAwMDAwMDAwYjIwNGU1MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kOWQzZjMyZWMwM2NjYTVlLmRmOGY2ZDNiNGQzMjA0ZTUKICAgICBhNmUxOGU2ZWU2YTViMGZlLmIxYmNiYmUxODVlMDEzMzAuNzM4ZThhY2M4OGFlNmQ3ZS4wNjlkNzg2YzhlOThhOGYzCiAgICAgOTVjZTM2ZGE4ODJiMjcyOAogCi1WQ1ZURFEyUFNfMTI4KHJlZykKK1ZQQkxFTkRXXzEyOF8weDMwKHJlZykKICAgYmVmb3JlCiAgICAgNTQ5NGY2MmMyMjM2ODRiZS4zNDZlMjFmMGJkNzE2NDA4LmNkMmViYWI0ZmIzZGJhNjAuZTIyOTU1ZjU4NjE2ZWFmMAogICAgIGEwM2JiMmNjZjg0NGZiNjMuYThmYTIzNTc5OThkOTM2NS4wNzFhNzk1ZjFmOTgxYzg4Ljg4MWMxMDRjYmQ4ODQ0NWUKQEAgLTI2NTc0LDEyICsyNjU3NCwxMiBAQAogICAgIDRhNWIxM2FiY2E5YTI1ODQuYWUzYTYxODFkM2U2NTBjNi40NDk1MjNmMmU0NzUwNDZmLmU4Mzk0NzM1NDBiYzdlZGYKICAgICA1YmZjYmI5ZWM0OTVkNjRiCiAgIGFmdGVyCi0gICAgNTQ5NGY2MmMyMjM2ODRiZS4zNDZlMjFmMGJkNzE2NDA4LmNkMmViYWI0ZmIzZGJhNjAuZTIyOTU1ZjU4NjE2ZWFmMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNzFhNzk1ZjhlN2M3NjU0Ljg4MWMxMDRjYmQ4ODQ0NWUKICAgICBhMDNiYjJjY2Y4NDRmYjYzLmE4ZmEyMzU3OTk4ZDkzNjUuMDcxYTc5NWYxZjk4MWM4OC44ODFjMTA0Y2JkODg0NDVlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRlODkyYTQ4Y2RkYzU3ZGQuY2RiZTM1YzY0ZTgxNzhmZQorICAgIGQzMGU2ODI4YTdlMWM3YzAuZGQ0ZjBmOGU5NzA1Zjg0MC5iYmNlZjI1MDhlN2M3NjU0LjQwMzMzOGJlNDYxMTM3ZjQKICAgICA0YTViMTNhYmNhOWEyNTg0LmFlM2E2MTgxZDNlNjUwYzYuNDQ5NTIzZjJlNDc1MDQ2Zi5lODM5NDczNTQwYmM3ZWRmCiAgICAgNWJmY2JiOWVjNDk1ZDY0YgotVkNWVERRMlBTXzEyOChtZW0pCitWUEJMRU5EV18xMjhfMHgzMChtZW0pCiAgIGJlZm9yZQogICAgIDc0NDYwZmU2ZjFhOWZiNjMuNjE2Y2IwYzBmZWZhNTE1OS5mOTg3OTUxYjY4M2I1NzIzLjAwYmEwOGIwYmMxMDAyODUKICAgICAxMWU0YmZmN2UwMDNhODU0Ljc1OGUzOWQ1ZGU4ZDg3ZWMuOTgwMjI4NGE3MjEwYzg4Mi40YThhOWJmOGIyZDlhYjQ0CkBAIC0yNjU4OSwxMSArMjY1ODksMTEgQEAKICAgYWZ0ZXIKICAgICA3NDQ2MGZlNmYxYTlmYjYzLjYxNmNiMGMwZmVmYTUxNTkuZjk4Nzk1MWI2ODNiNTcyMy4wMGJhMDhiMGJjMTAwMjg1CiAgICAgMTFlNGJmZjdlMDAzYTg1NC43NThlMzlkNWRlOGQ4N2VjLjk4MDIyODRhNzIxMGM4ODIuNGE4YTliZjhiMmQ5YWI0NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jY2NmMGQ1ZDRlZDA3NmFlLjRiM2EwOGIwY2U4N2RmZmIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTgwMjI4NGE3MjEwYzg4Mi40YThhOWJmOGJjMTAwMjg1CiAgICAgNDM0YzI1Mjk3YWJhOGQ3MC5mZjM1MDRhYzEzN2VmZmZhLjQ3YjE1ODE1NTc2Y2RjZjguZjc1YmMwZDM2YjIxZjE2NwogICAgIDEzZjQ0OTNlNjRiOTA1MjQKIAotVkNWVERRMlBTXzEyOChyZWcpCitWUEJMRU5EV18xMjhfMHgzMChyZWcpCiAgIGJlZm9yZQogICAgIDJjNjc3MWUzZWRhZmI1MzkuOTBhZWQxMjE1YzJmM2RmMi4yZTUyM2Q0N2ExZjRiYWNkLjBkN2RlZDg4NmEwYmY1NjcKICAgICBhMDAyMzQyYzlmOGUzZDUxLmQxOTRjYjkyNzExYjY1ZmUuYzlhZjU0OTA0YmNjNmUwZS45OGE4ZDEzZjYzNTk2YTg4CkBAIC0yNjYwMSwxMiArMjY2MDEsMTIgQEAKICAgICAwNWRiN2Q1ZWY0MzhjNDNkLjliMWE5MTk1YTc4NTEwNWUuYjM1ZDA4ZTA2NGQ4YjU4OS42ZTQ2NzIyYjc0Mzg1MzkzCiAgICAgNzE1MTI4MzZjNGUwNDBkNAogICBhZnRlcgotICAgIDJjNjc3MWUzZWRhZmI1MzkuOTBhZWQxMjE1YzJmM2RmMi4yZTUyM2Q0N2ExZjRiYWNkLjBkN2RlZDg4NmEwYmY1NjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzlhZjU0OTBhZDk0NTk2OS45OGE4ZDEzZjYzNTk2YTg4CiAgICAgYTAwMjM0MmM5ZjhlM2Q1MS5kMTk0Y2I5MjcxMWI2NWZlLmM5YWY1NDkwNGJjYzZlMGUuOThhOGQxM2Y2MzU5NmE4OAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jZTk5NDVlZTRlYzliMTZiLjRlZGM4Y2U0NGVlODcwYTcKKyAgICBjOTBmOGY4NjE5ZTJkOTE5LmUwYzk4YzZhZDY4OGMyYmUuMmM5OTQzZjRhZDk0NTk2OS5jNWZjN2UyNzVjNjVmNTg4CiAgICAgMDVkYjdkNWVmNDM4YzQzZC45YjFhOTE5NWE3ODUxMDVlLmIzNWQwOGUwNjRkOGI1ODkuNmU0NjcyMmI3NDM4NTM5MwogICAgIDcxNTEyODM2YzRlMDQwZDQKLVZDVlREUTJQU18xMjgobWVtKQorVlBCTEVORFdfMTI4XzB4MzAobWVtKQogICBiZWZvcmUKICAgICBhOGViMWQzNjZhNjg3Nzc4LmFlYjJmYTFlY2YxYjNiNjguZGM1NDU3ZmRmZjFiMGEwYi5iYTQ1OWViZTBjMjNiZTFiCiAgICAgZjBkZWNiMTY4MmRkYjVhYi4yMmUwMDMzNDQzMTc3YTQ2LjgwNDE1OThmZmE1ODZkZjEuOWQ5ZDAxZmM0MDAxYjJjYQpAQCAtMjY2MTYsMTEgKzI2NjE2LDExIEBACiAgIGFmdGVyCiAgICAgYThlYjFkMzY2YTY4Nzc3OC5hZWIyZmExZWNmMWIzYjY4LmRjNTQ1N2ZkZmYxYjBhMGIuYmE0NTllYmUwYzIzYmUxYgogICAgIGYwZGVjYjE2ODJkZGI1YWIuMjJlMDAzMzQ0MzE3N2E0Ni44MDQxNTk4ZmZhNTg2ZGYxLjlkOWQwMWZjNDAwMWIyY2EKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2UwZWFlYTBjYjY0ZjVmNS5jZThiNzRjMzRkNDIzYmUyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwNDE1OThmZmE1ODZkZjEuOWQ5ZDAxZmMwYzIzYmUxYgogICAgIDI0MDI0NzI2NzZiYjM1NmIuZDY3MGE1MGY2YzhiM2VjZi42MjY2MDJlMjRiZjU1ZTE2LjY3ZDIyMDQ1YmRhNzQ2MzEKICAgICAwNjQ1ZDMyODNlODc1ZTQyCiAKLVZDVlREUTJQU18xMjgocmVnKQorVlBCTEVORFdfMTI4XzB4MzAocmVnKQogICBiZWZvcmUKICAgICBmMDU5NDMxYWJjMmI1MDFmLmM3Y2IwZDJlOGEzY2VmNTEuZDA2YTM3YWM1ODFjM2NkMC41NzM2YTA3YmQ5NmQ2M2FkCiAgICAgODM1YjZjODdkMjFlNTg3Ny5lYjFlN2NjNjdmZGFhMDc2LjAzZWM0NTRlNGVmNWYyMzUuMWZlYjZiZWQ3YmJiYzEyZApAQCAtMjY2MjgsMTIgKzI2NjI4LDEyIEBACiAgICAgMTE1M2RiODIzODIxOTk0Mi4yNjkxNGE1NzdmOWJkNjJjLjg4YjNjMTUxY2JiNTc0ZGEuOTgyZjc2MTE2NzBhNzc5NwogICAgIDAxNTdhZDlhZWIyMzQ4ZDkKICAgYWZ0ZXIKLSAgICBmMDU5NDMxYWJjMmI1MDFmLmM3Y2IwZDJlOGEzY2VmNTEuZDA2YTM3YWM1ODFjM2NkMC41NzM2YTA3YmQ5NmQ2M2FkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAzZWM0NTRlZWJhNDliYWEuMWZlYjZiZWQ3YmJiYzEyZAogICAgIDgzNWI2Yzg3ZDIxZTU4NzcuZWIxZTdjYzY3ZmRhYTA3Ni4wM2VjNDU0ZTRlZjVmMjM1LjFmZWI2YmVkN2JiYmMxMmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2VlZTk4N2RjZTUxMmEyZC5jZWNmYTExNDRlY2UxNGVmCisgICAgMWE5NTRiZGIxZGVjYjJmNC42Y2M3MTJkYjcyYTAwNDA2LmNjNDBjOTYxZWJhNDliYWEuOTY0ZmRlMjY0YmViMzRjMgogICAgIDExNTNkYjgyMzgyMTk5NDIuMjY5MTRhNTc3ZjliZDYyYy44OGIzYzE1MWNiYjU3NGRhLjk4MmY3NjExNjcwYTc3OTcKICAgICAwMTU3YWQ5YWViMjM0OGQ5Ci1WQ1ZURFEyUFNfMTI4KG1lbSkKK1ZQQkxFTkRXXzEyOF8weDMwKG1lbSkKICAgYmVmb3JlCiAgICAgYWQ5MzAxYWRmMjQzNjFiMy5jM2UzMThlOWMwNGE0YTBlLmY1NGFhMDI3YzFkNmQzMTQuOTE5MDI4OGI4OWIzYjk3MgogICAgIDc4YWVlZDM2OTk3NTdlNTIuOGU4ZmZlN2E1MGYyMDEwNC5iNWJjOTAzODU0NWRiN2ViLjQ0MjVmYTc5YzEyYWE1MWQKQEAgLTI2NjQzLDExICsyNjY0MywxMSBAQAogICBhZnRlcgogICAgIGFkOTMwMWFkZjI0MzYxYjMuYzNlMzE4ZTljMDRhNGEwZS5mNTRhYTAyN2MxZDZkMzE0LjkxOTAyODhiODliM2I5NzIKICAgICA3OGFlZWQzNjk5NzU3ZTUyLjhlOGZmZTdhNTBmMjAxMDQuYjViYzkwMzg1NDVkYjdlYi40NDI1ZmE3OWMxMmFhNTFkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNkMmI1NWZlY2U3OGE0YjQuY2VkY2RmYWZjZWVjOTg4ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNWJjOTAzODU0NWRiN2ViLjQ0MjVmYTc5ODliM2I5NzIKICAgICBkYmI1N2Q1YjM1NDBiODhlLmRiNmZiNmNlZmFmMTcwMWMuNzhmZTJmY2FkZjgwMjMxNi4xOGEyZDAyNTExYjQ2NjVmCiAgICAgZjEyNGNjYmI2MWRmYjE0ZAogCi1WQ1ZURFEyUFNfMjU2KHJlZykKK1ZQQkxFTkRXXzEyOF8weDIxKHJlZykKICAgYmVmb3JlCiAgICAgZTQ4YjIzYjY5YmIzOTVmZi4yYjM4MWFjZTYyZjE0YjgzLjE2M2E4MDY5NGI1ZmEwOTcuMzM2NWQ2MjMwZjM1MjNjMQogICAgIDRkMjZkMTgyNWNiZDRjMjAuMGFjYjNmNjg5ZWU0ZDRlYy5kODUyZTNkZjE1N2RjNmViLjRmYjcwODZiMDA2NWY5MGEKQEAgLTI2NjU1LDEyICsyNjY1NSwxMiBAQAogICAgIGYxMjQyMzNkZTFhMDI1NjIuZTU1MDExYmRiNWMyYjNjZC42NTk4NjUwYzgzZjZlMmQwLjFhNDdmOTdlOTc2YzFiMjkKICAgICA4MTFlYjExZjc1NTlkZTU2CiAgIGFmdGVyCi0gICAgZTQ4YjIzYjY5YmIzOTVmZi4yYjM4MWFjZTYyZjE0YjgzLjE2M2E4MDY5NGI1ZmEwOTcuMzM2NWQ2MjMwZjM1MjNjMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kODUyZTNkZmY0ZDZjNmViLjRmYjcwODZiMDA2NTYzMWUKICAgICA0ZDI2ZDE4MjVjYmQ0YzIwLjBhY2IzZjY4OWVlNGQ0ZWMuZDg1MmUzZGYxNTdkYzZlYi40ZmI3MDg2YjAwNjVmOTBhCi0gICAgY2Q2ZGJkY2NjZGYyZmVkNS5jZGQ1N2Y3MmNlOTQ3YTk4LjRlY2IzMGNhY2VmODEyM2EuNGRkMjNmY2NjZWQxMjdjYQorICAgIDg4NDBkMzhiM2Y4ODEyNWQuNTQzYTY4MTMwNjI2MGRmNi43ZjAyZGM5Y2Y0ZDYxZGM0LmE4YmUzZjkxY2YxZTYzMWUKICAgICBmMTI0MjMzZGUxYTAyNTYyLmU1NTAxMWJkYjVjMmIzY2QuNjU5ODY1MGM4M2Y2ZTJkMC4xYTQ3Zjk3ZTk3NmMxYjI5CiAgICAgODExZWIxMWY3NTU5ZGU1NgotVkNWVERRMlBTXzI1NihtZW0pCitWUEJMRU5EV18xMjhfMHgyMShtZW0pCiAgIGJlZm9yZQogICAgIGI4MGZlMzYwODRmMzY3ZDIuZTQyMGJmMDRkZDkyYmZkYS45OWRiYjc1MWM4YzQ4MjljLmU4NWU3YzliNWU2OTUxYjkKICAgICA5ZGU2MGIyZWUwNDY3M2M5LmJkN2VhMjRkZDBlOTFkNzIuNGJhNWQ0YmI1YjM5MzU5MC42MmEyMWNiNjIyYmNhNjJiCkBAIC0yNjY3MCwxMSArMjY2NzAsMTEgQEAKICAgYWZ0ZXIKICAgICBiODBmZTM2MDg0ZjM2N2QyLmU0MjBiZjA0ZGQ5MmJmZGEuOTlkYmI3NTFjOGM0ODI5Yy5lODVlN2M5YjVlNjk1MWI5CiAgICAgOWRlNjBiMmVlMDQ2NzNjOS5iZDdlYTI0ZGQwZTkxZDcyLjRiYTVkNGJiNWIzOTM1OTAuNjJhMjFjYjYyMmJjYTYyYgotICAgIGNlOGZlMDM5Y2VmNjE5MzAuY2RkZWZhMDhjZTA5YjUwMS5jZWNjNDg5MWNlNWNlZGY2LmNkYmQwYzFiNGViY2QyYTMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGJhNWQ0YmI1YjM5ODI5Yy42MmEyMWNiNjVlNjlhNjJiCiAgICAgZGU3NTJlMWRmMjQzMDRkNi45MTkzMmUxMTA4ZjgxNGIwLjFlMjk2OGMxNmVhOTNhOTUuYWZjZmU4M2JkMzMwZjA1ZAogICAgIDM5NTAwYjdmZjg2OTVlNzQKIAotVkNWVERRMlBTXzI1NihyZWcpCitWUEJMRU5EV18xMjhfMHgyMShyZWcpCiAgIGJlZm9yZQogICAgIDJiN2ZhOGZlNzZiMmExYzUuZjFjNTIxMTdkZjA3MDA0NC40M2UxY2Y2NDg2YzcyNWFmLmY2N2JkNzM1MjdiZDA0ZmUKICAgICBlMmE2YmEyM2U4OTVmN2ZiLjIyMmJmYTRkOGFiMzcwZGQuNGNjM2E3ZTk2YjJiZWE3ZC4zYzNkYWQyZmNmNzNhMjNkCkBAIC0yNjY4MiwxMiArMjY2ODIsMTIgQEAKICAgICAwYTEwMmUxNDFhNWZjNmM5LjRhNjk0ZjFkODdmMzk2M2YuZDA2ZWVkMzVkN2U0N2YzOC44NjQwODM2NjVlZjY0ZGU3CiAgICAgNDIxOTdhN2I3Y2RiZDFhYQogICBhZnRlcgotICAgIDJiN2ZhOGZlNzZiMmExYzUuZjFjNTIxMTdkZjA3MDA0NC40M2UxY2Y2NDg2YzcyNWFmLmY2N2JkNzM1MjdiZDA0ZmUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGNjM2E3ZTk1MmIxZWE3ZC4zYzNkYWQyZmNmNzNkMTdiCiAgICAgZTJhNmJhMjNlODk1ZjdmYi4yMjJiZmE0ZDhhYjM3MGRkLjRjYzNhN2U5NmIyYmVhN2QuM2MzZGFkMmZjZjczYTIzZAotICAgIDRkMjEwMmUxNGRkMmZlMzYuNGU5NGQyOWVjZWYwMThkNC5jZTNlNDQ0YmNlMjA2ZTAzLmNlZjM3ZWY5NGViZGVjOWMKKyAgICBiODEzM2U1Y2ViYTA5OWMzLjRiNzMzNmFiMGQ1MzBkY2QuMDc4M2IyMGI1MmIxOWZjNi5jZTNhNjg5YzgzZDdkMTdiCiAgICAgMGExMDJlMTQxYTVmYzZjOS40YTY5NGYxZDg3ZjM5NjNmLmQwNmVlZDM1ZDdlNDdmMzguODY0MDgzNjY1ZWY2NGRlNwogICAgIDQyMTk3YTdiN2NkYmQxYWEKLVZDVlREUTJQU18yNTYobWVtKQorVlBCTEVORFdfMTI4XzB4MjEobWVtKQogICBiZWZvcmUKICAgICBkYzkyY2FjNWZhOTMxYWYzLjM0ZWE4OGI3MTI1ZGI4YjguZmFkOWMzOGYxMmEwYzU1Zi4wMmQwNTJkNTk3NTFjNzdkCiAgICAgMzI3N2VkMzJmNDI4ZTRlYy45MmVkNDdiMTZlMjZhYzNkLjM2OGUwZGVkY2E2NTU3NWIuZmJmNWRmNTcyZDgzYjI0MQpAQCAtMjY2OTcsMTEgKzI2Njk3LDExIEBACiAgIGFmdGVyCiAgICAgZGM5MmNhYzVmYTkzMWFmMy4zNGVhODhiNzEyNWRiOGI4LmZhZDljMzhmMTJhMGM1NWYuMDJkMDUyZDU5NzUxYzc3ZAogICAgIDMyNzdlZDMyZjQyOGU0ZWMuOTJlZDQ3YjE2ZTI2YWMzZC4zNjhlMGRlZGNhNjU1NzViLmZiZjVkZjU3MmQ4M2IyNDEKLSAgICBjZTBkYjRkNWNjYWQ5Y2EyLjRlNTNhYTIzNGQ5MmVkYzYuY2NhNGM3OGU0ZDk1MDYyYi40YzM0MTRiNWNlZDE1YzcxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM2OGUwZGVkY2E2NWM1NWYuZmJmNWRmNTc5NzUxYjI0MQogICAgIDdlYjRhMTIyY2ExZmVhYTAuNWE5ZGU1NWJjMzRhOGFiNy5jNmZiMTQxZTMzNjg5MzkxLmFlYjg1ZmFjNGU2NzY1ZjkKICAgICAyMWVkNDk1ODBmMzFhNDQ0CiAKLVZDVlREUTJQU18yNTYocmVnKQorVlBCTEVORFdfMTI4XzB4MjEocmVnKQogICBiZWZvcmUKICAgICBjOTE1NGI5NjE4ZjA3NmJmLjJjYTUyYTdkZGU5ODllYjMuN2NlMmJiZTJmNWJkZWIwNS5kMTRhYzljODFjYmViNjI0CiAgICAgMDQ3ZDYwZDAwMjMwMTkxNi4wNjMxNzZhYWRkMWZjMzI2LjQyODBlNzcxZmIyYjNlOTguZGEwZjQ0MGZhMjVkMmE0MgpAQCAtMjY3MDksMTIgKzI2NzA5LDEyIEBACiAgICAgOWYzN2IzZWRlZjY2YmMwNS5hOTRkNGMyYjBlODg0ZWRmLjJhZjcyZjUzZjQyYWE5M2YuNTEyYTdjMjBmN2EzZmNjZAogICAgIDc5MTgzMmMzZmU2MmQxOTIKICAgYWZ0ZXIKLSAgICBjOTE1NGI5NjE4ZjA3NmJmLjJjYTUyYTdkZGU5ODllYjMuN2NlMmJiZTJmNWJkZWIwNS5kMTRhYzljODFjYmViNjI0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQyODBlNzcxNzEyMTNlOTguZGEwZjQ0MGZhMjVkYWUxNgogICAgIDA0N2Q2MGQwMDIzMDE5MTYuMDYzMTc2YWFkZDFmYzMyNi40MjgwZTc3MWZiMmIzZTk4LmRhMGY0NDBmYTI1ZDJhNDIKLSAgICBjZWMxOTA5OGNkODRjYTIwLmNlYWQ2NTY4NGQ2ODg0ZWUuNGUyYmRjYmRjZDNkNTU2Yy40ZWEyNTRmOGNkMDVjMDMzCisgICAgMmM2ZTg0NzQ2YjdlYzdmNC5lNjI1MDM5NWU0YzAxNDI2LjA4YzM2NDcyNzEyMWJmMWQuYmIxNTAxZGRlMjRmYWUxNgogICAgIDlmMzdiM2VkZWY2NmJjMDUuYTk0ZDRjMmIwZTg4NGVkZi4yYWY3MmY1M2Y0MmFhOTNmLjUxMmE3YzIwZjdhM2ZjY2QKICAgICA3OTE4MzJjM2ZlNjJkMTkyCi1WQ1ZURFEyUFNfMjU2KG1lbSkKK1ZQQkxFTkRXXzEyOF8weDIxKG1lbSkKICAgYmVmb3JlCiAgICAgMGRhYzllYjIxMjlhZTk5Mi5iNzIzZWFhNjI5NzIzNmY3LjJiNzVjZDU2Nzg4MjJkN2MuMDQ2ODQyN2YyMGQzMzlhYgogICAgIGVhYjMzY2Q5NGY1NjAwZjkuZDE3ZDI0MGRiNjMwNmY3My40OTY4MDMwNDNlYmI2ZDJhLmYyNjI5YjYxOGZhNmFiMGQKQEAgLTI2NzI0LDExICsyNjcyNCwxMSBAQAogICBhZnRlcgogICAgIDBkYWM5ZWIyMTI5YWU5OTIuYjcyM2VhYTYyOTcyMzZmNy4yYjc1Y2Q1Njc4ODIyZDdjLjA0Njg0MjdmMjBkMzM5YWIKICAgICBlYWIzM2NkOTRmNTYwMGY5LmQxN2QyNDBkYjYzMDZmNzMuNDk2ODAzMDQzZWJiNmQyYS5mMjYyOWI2MThmYTZhYjBkCi0gICAgNGQ1YWM5ZWI0ZDk0ZDc0ZC5jZTkxYjgyYjRlMjVjOGRjLjRlMmRkNzM1NGVmMTA0NWIuNGM4ZDA4NTA0ZTAzNGNlNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40OTY4MDMwNDNlYmIyZDdjLmYyNjI5YjYxMjBkM2FiMGQKICAgICBmMDQ0ZmU3ZmI3OGMxOWFhLjdjYWY5MTkyMzZmMDExYzAuYzRlMzdhOTU0YjE3ZmU2Ny43YTFmMGNmY2FkMDAyNDYxCiAgICAgY2I3YjFjOGQ5MjllYTNhYgogCi1WQ1ZUVFBEMkRRXzEyOChyZWcpCitWUEJMRU5EV18xMjhfMHhENyhyZWcpCiAgIGJlZm9yZQogICAgIGExOTA2Mjg0MmI5N2YzOWIuZDA2ODFiZDcxOTFkOTM0Yy5jNDFlYmQ4OTYyMGFmMWU4LmRhMDNiNDUxY2E1MmM4NGYKICAgICA1N2FhZDk0ZTE2Nzg1MmRkLjY5MmQ1YTE2MTQ2MmZkMDUuN2UyY2RiZGM1MTA2ODE0Yi5mYjFlOTIzZjE2ZmNlMmY3CkBAIC0yNjczNiwxMiArMjY3MzYsMTIgQEAKICAgICBkMjFjNGEwYzRiMWYyODA0LjM2Y2UyZWZkNDgzYjhjNmIuYjk1NGUzNGFlNWQwYTA3NC5jZTc3MmM2MTdlY2JmYTNhCiAgICAgMzg0ZWRmNmRkNDA4NmUyYwogICBhZnRlcgotICAgIGExOTA2Mjg0MmI5N2YzOWIuZDA2ODFiZDcxOTFkOTM0Yy5jNDFlYmQ4OTYyMGFmMWU4LmRhMDNiNDUxY2E1MmM4NGYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDcyNWU5Zjg1MTA2ZmQ5Ni5mYjFlOTE0YjQ4MjEwYThjCiAgICAgNTdhYWQ5NGUxNjc4NTJkZC42OTJkNWExNjE0NjJmZDA1LjdlMmNkYmRjNTEwNjgxNGIuZmIxZTkyM2YxNmZjZTJmNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICA0OTE1N2Q1OGVjY2NmYTFjLjk3NjEzNzJhYzU2ODExMDEuMDcyNWU5Zjg5ZTZlZmQ5Ni4wMzAwOTE0YjQ4MjEwYThjCiAgICAgZDIxYzRhMGM0YjFmMjgwNC4zNmNlMmVmZDQ4M2I4YzZiLmI5NTRlMzRhZTVkMGEwNzQuY2U3NzJjNjE3ZWNiZmEzYQogICAgIDM4NGVkZjZkZDQwODZlMmMKLVZDVlRUUEQyRFFfMTI4KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEQ3KG1lbSkKICAgYmVmb3JlCiAgICAgMWQ1MDI2NWI2NWUzMjQ4ZS41MDBkM2RkOGNmZmQxNzQzLjIyNDFiYzdkYjdlNTI5NzAuZjEwNmMzM2NjM2I4YTc5MgogICAgIDU5NGE3ZDE3NGU2OWQ2OGQuMWQzMjUwMjYxM2YzMDQ4My4zNzg2NWM5NTMxNzRhNTNiLjBiODg4NzNjZDNiMTRlOWMKQEAgLTI2NzUxLDExICsyNjc1MSwxMSBAQAogICBhZnRlcgogICAgIDFkNTAyNjViNjVlMzI0OGUuNTAwZDNkZDhjZmZkMTc0My4yMjQxYmM3ZGI3ZTUyOTcwLmYxMDZjMzNjYzNiOGE3OTIKICAgICA1OTRhN2QxNzRlNjlkNjhkLjFkMzI1MDI2MTNmMzA0ODMuMzc4NjVjOTUzMTc0YTUzYi4wYjg4ODczY2QzYjE0ZTljCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNzg2YmM3ZGI3ZTVhNTNiLmYxMDZjMzNjZDNiMTRlOWMKICAgICA0NjU2NGRhYTk1YTMyMDExLjE5NGJjYmZkNGQ1NWM4YjcuNGNiNWMyM2RiMDZmMmFkNi41NTI3YTcxMmZiMDY2YjIyCiAgICAgM2RkZGZkYzE0YjdiNTlmNgogCi1WQ1ZUVFBEMkRRXzEyOChyZWcpCitWUEJMRU5EV18xMjhfMHhENyhyZWcpCiAgIGJlZm9yZQogICAgIDc3OTEyNTJkM2QzMWQ3NjYuYWYwMGJkNTkyYzcwMzBlZS5mZWQ2MmI1ZDdhZDkxNzA0LjA0Mzc4MGE1ZWVmM2FhZmQKICAgICA1ZjkxMWRjMjZlYjQyMTFlLmRmZDIyZDg2OGIxNzJkMTguYTRjNzliZjBkOGE0NTMwMi41NGJiNDE1NWE1OGJmOTliCkBAIC0yNjc2MywxMiArMjY3NjMsMTIgQEAKICAgICBhOWEwNmExOGZiNTMwNzE0LjAzMWRmZTA5MGUyNGRkMDEuOWUwNmEwNWY5NTQxODRjNC4zMWY5YjkzZGYwMjlmNGVhCiAgICAgNzU0YjY4NGViYjQ2MTdmNAogICBhZnRlcgotICAgIDc3OTEyNTJkM2QzMWQ3NjYuYWYwMGJkNTkyYzcwMzBlZS5mZWQ2MmI1ZDdhZDkxNzA0LjA0Mzc4MGE1ZWVmM2FhZmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjU2ODE5MjJkOGE0Yjk1ZS41NGJiODAzOWYxNDRkM2RiCiAgICAgNWY5MTFkYzI2ZWI0MjExZS5kZmQyMmQ4NjhiMTcyZDE4LmE0Yzc5YmYwZDhhNDUzMDIuNTRiYjQxNTVhNThiZjk5YgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICA1MTI3ZTBlZDc5OTE3MmM5LmIyOTcxOTFkY2RhNGQzYmEuNjU2ODE5MjIwMjQzYjk1ZS4xYTBkODAzOWYxNDRkM2RiCiAgICAgYTlhMDZhMThmYjUzMDcxNC4wMzFkZmUwOTBlMjRkZDAxLjllMDZhMDVmOTU0MTg0YzQuMzFmOWI5M2RmMDI5ZjRlYQogICAgIDc1NGI2ODRlYmI0NjE3ZjQKLVZDVlRUUEQyRFFfMTI4KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEQ3KG1lbSkKICAgYmVmb3JlCiAgICAgYzFjZjBhNTY3MGE4ZjkyNC5jMzQ4YjdiMDhmODcxYmFhLmIwMmU1NzM4NmJhMjA4MTguYWNlZDJjMTQyZDJhZjFkZgogICAgIGYzNTAxYTQzMmI1YTU2YTcuZmE2YmM0MjJkMWI4ZWMzOC45NDk3YTA5NmZmMmExMDJjLmU5NjliYWFiNjQ4YjNjNWIKQEAgLTI2Nzc4LDExICsyNjc3OCwxMSBAQAogICBhZnRlcgogICAgIGMxY2YwYTU2NzBhOGY5MjQuYzM0OGI3YjA4Zjg3MWJhYS5iMDJlNTczODZiYTIwODE4LmFjZWQyYzE0MmQyYWYxZGYKICAgICBmMzUwMWE0MzJiNWE1NmE3LmZhNmJjNDIyZDFiOGVjMzguOTQ5N2EwOTZmZjJhMTAyYy5lOTY5YmFhYjY0OGIzYzViCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NDk3NTczODZiYTIxMDJjLmFjZWQyYzE0NjQ4YjNjNWIKICAgICA3NTdjNzQ3OTIwZGY2ZjU0LjM0NTEwYjQwZDI0MWIwZWIuNzBhMGYzOGEzZThhYTZmYS42NDUwYzgzMzI1ZTI1YzI5CiAgICAgNTk1MjQyZmNlN2YxYThkMwogCi1WQ1ZUVFBEMkRRXzEyOChyZWcpCitWUEJMRU5EV18xMjhfMHhENyhyZWcpCiAgIGJlZm9yZQogICAgIGVlMTlhYzU4YjhhN2MyOGUuN2ViZmI2OWE5M2NhYTRkNi5lZWFjM2RjNWM4YjIxYjY3LjIxZDlmNWY5MjE3OWFjMGIKICAgICA3ZmYyMDNiMzM3OTBlNTA2LmRjMzA1NzRmN2MzNjQzNWIuMzViMzFlZDNkYzUwMzM4Yy43ODk5ZDc0N2FiYTM3ZmNhCkBAIC0yNjc5MCwxMiArMjY3OTAsMTIgQEAKICAgICAwNjA0NmExNmE4MmQzYWUwLjA2Y2JhMzI1MWRiZGIzMWQuZGZmMGRmM2FkMDQ1NTQ3Yi44ZGUxMmMyYzI2ZDY3YWZjCiAgICAgMDEwMTk2OWM0ZWY2MWJjOAogICBhZnRlcgotICAgIGVlMTlhYzU4YjhhN2MyOGUuN2ViZmI2OWE5M2NhYTRkNi5lZWFjM2RjNWM4YjIxYjY3LjIxZDlmNWY5MjE3OWFjMGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjdiMGFiZDZkYzUwMzIwNC43ODk5MTU1ZWY5MTNkYTYxCiAgICAgN2ZmMjAzYjMzNzkwZTUwNi5kYzMwNTc0ZjdjMzY0MzViLjM1YjMxZWQzZGM1MDMzOGMuNzg5OWQ3NDdhYmEzN2ZjYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICA2ODI3NDQ3OWZkMzk0ZmU5LjZhOWJkMjg0ZjUyZDBhMGYuNjdiMGFiZDZhYmE4MzIwNC41M2FkMTU1ZWY5MTNkYTYxCiAgICAgMDYwNDZhMTZhODJkM2FlMC4wNmNiYTMyNTFkYmRiMzFkLmRmZjBkZjNhZDA0NTU0N2IuOGRlMTJjMmMyNmQ2N2FmYwogICAgIDAxMDE5NjljNGVmNjFiYzgKLVZDVlRUUEQyRFFfMTI4KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEQ3KG1lbSkKICAgYmVmb3JlCiAgICAgOGNkOWQxOWE4ZTgyNzlmMS5iM2Q3NzFmNmQ0ZjhlMjlhLjhhOGU0NjFlMGVmMmZhYjIuZjhiZWI2NmJlOGIzZDc5ZQogICAgIDBiMzU1ODEyMDI4MzRmYTIuY2NlYjU2ODYxYzI3ODVjMS5kNGFlMzc1Y2U0ZDc5ZGZhLjEwNjgyY2Q1OGY3ZmY1MTkKQEAgLTI2ODA1LDExICsyNjgwNSwxMSBAQAogICBhZnRlcgogICAgIDhjZDlkMTlhOGU4Mjc5ZjEuYjNkNzcxZjZkNGY4ZTI5YS44YThlNDYxZTBlZjJmYWIyLmY4YmViNjZiZThiM2Q3OWUKICAgICAwYjM1NTgxMjAyODM0ZmEyLmNjZWI1Njg2MWMyNzg1YzEuZDRhZTM3NWNlNGQ3OWRmYS4xMDY4MmNkNThmN2ZmNTE5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNGFlNDYxZTBlZjI5ZGZhLmY4YmViNjZiOGY3ZmY1MTkKICAgICA1MWE3M2IyMGYzMTk1NjRlLmIyMDRhNjYxNzFkZmE3MDguMjUzOGY1NTNiMWUxZTI1MC5hOTdjZTYwNWY3NWVmNGM1CiAgICAgZTI3ZTIyYTNmMDg5NGQ0ZgogCi1WQ1ZUVFBEMkRRXzI1NihyZWcpCitWUEJMRU5EV18xMjhfMHhCNShyZWcpCiAgIGJlZm9yZQogICAgIDhhOGJlZTI5ZTg0MjMyZTAuZDA1NzhmOGVhOWM1ZmVhMi4zN2EyMGE4NmI3N2Y5ZjdmLmU2MzliOWU0ZTAxZmZkYjgKICAgICBmYmVmNDQwNTdiMTVkZjI0LmIyYmExZjI2MDMxODBmMmQuOThiMTNjMGE4OWI0ODAxNS5kYmM5YmM2YTY0M2Q2MjgyCkBAIC0yNjgxNywxMiArMjY4MTcsMTIgQEAKICAgICBhY2ViODM2Y2UwMzU4MDc4LjEwY2JlMzg1MTBlMTVjOWUuNWQ1MWY2ZGU0MjA2ZjA0OC5kNWMxNmIwMmRjNGJmZGVkCiAgICAgOTFjMzEwZWMwOTUyYWFlNwogICBhZnRlcgotICAgIDhhOGJlZTI5ZTg0MjMyZTAuZDA1NzhmOGVhOWM1ZmVhMi4zN2EyMGE4NmI3N2Y5ZjdmLmU2MzliOWU0ZTAxZmZkYjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzE3ZDNjMGE4MzA3ODc3NC5kYmM5NzhkMDY0M2RjZWRhCiAgICAgZmJlZjQ0MDU3YjE1ZGYyNC5iMmJhMWYyNjAzMTgwZjJkLjk4YjEzYzBhODliNDgwMTUuZGJjOWJjNmE2NDNkNjI4MgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAKKyAgICA5M2Y1MjJhMjQ0OGM5MGM5LmQ0OWM2N2Q1MWIxZDQ1MWQuMzE3ZDM2NTg4MzA3ODc3NC5lMWIyNzhkMDU5NDhjZWRhCiAgICAgYWNlYjgzNmNlMDM1ODA3OC4xMGNiZTM4NTEwZTE1YzllLjVkNTFmNmRlNDIwNmYwNDguZDVjMTZiMDJkYzRiZmRlZAogICAgIDkxYzMxMGVjMDk1MmFhZTcKLVZDVlRUUEQyRFFfMjU2KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEI1KG1lbSkKICAgYmVmb3JlCiAgICAgZjI4MWUzN2FmYjY5OTJmMy5hMzFiNjNjZmVhOWNlY2UwLjQzMTIxMDI0ZmM2ZjBmZGMuN2E3Yjc3MDc2MTNjZjczZQogICAgIGQ0Y2E2MTk4Y2Y5ZDcxM2UuZDVkMmJlMzdmZTRiMGZhYi40OTNjNjk5ZGZiZDMxYjAyLmUzNDViNTNmN2QzNWQ3MDIKQEAgLTI2ODMyLDExICsyNjgzMiwxMSBAQAogICBhZnRlcgogICAgIGYyODFlMzdhZmI2OTkyZjMuYTMxYjYzY2ZlYTljZWNlMC40MzEyMTAyNGZjNmYwZmRjLjdhN2I3NzA3NjEzY2Y3M2UKICAgICBkNGNhNjE5OGNmOWQ3MTNlLmQ1ZDJiZTM3ZmU0YjBmYWIuNDkzYzY5OWRmYmQzMWIwMi5lMzQ1YjUzZjdkMzVkNzAyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40OTNjMTAyNGZiZDMxYjAyLjdhN2JiNTNmNjEzY2Q3MDIKICAgICA4YjI5NGEzNThhOGEwMzNmLjU1MDVkNmM2YjdiNzZlMWMuM2U2YzhmY2NhNDRlMmRiOC4wOWVjNTk4ZDFhYTMxNGEzCiAgICAgN2Q2MWI3N2FkMzJlZWFkNwogCi1WQ1ZUVFBEMkRRXzI1NihyZWcpCitWUEJMRU5EV18xMjhfMHhCNShyZWcpCiAgIGJlZm9yZQogICAgIGFlYTZjMjI2ZjlhZDg5ODkuMThkOGFlOGNhYTViMmU0ZS41YzE5OGJjNTkzOGEyMDFhLmU1MGE1NTViODY3ZWFjOWYKICAgICBmNzA5NzZmZTI3YWIyZTY1Ljk2NDBhZDIyMWI3ODQwNGIuMGVlM2FiN2FlOWQ3N2IyYi5kMGJjMzc3NGViYjM3MzIwCkBAIC0yNjg0NCwxMiArMjY4NDQsMTIgQEAKICAgICA0MDU0Y2FkZTBkNTY3OTQ5LmQ1NmU2OGMwNjJjODA4YzEuZGVjZDFkYjI3NTBkMTczOS5kZDhiM2ZmNWFmNjFjYjlhCiAgICAgYjc0MDVkMzQ0N2YyZDRlYwogICBhZnRlcgotICAgIGFlYTZjMjI2ZjlhZDg5ODkuMThkOGFlOGNhYTViMmU0ZS41YzE5OGJjNTkzOGEyMDFhLmU1MGE1NTViODY3ZWFjOWYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzViMWFiN2E1NjJhYjlmYy5kMGJjYjEwM2ViYjMzZTY1CiAgICAgZjcwOTc2ZmUyN2FiMmU2NS45NjQwYWQyMjFiNzg0MDRiLjBlZTNhYjdhZTlkNzdiMmIuZDBiYzM3NzRlYmIzNzMyMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDA1MzgwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAKKyAgICBiM2Q0ZDA2Y2Y5YjUxNDE2LmUxMmVjMWU1ZmFlZWY1NjMuYzViMTMzNTA1NjJhYjlmYy5kOTRkYjEwM2VmZmIzZTY1CiAgICAgNDA1NGNhZGUwZDU2Nzk0OS5kNTZlNjhjMDYyYzgwOGMxLmRlY2QxZGIyNzUwZDE3MzkuZGQ4YjNmZjVhZjYxY2I5YQogICAgIGI3NDA1ZDM0NDdmMmQ0ZWMKLVZDVlRUUEQyRFFfMjU2KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEI1KG1lbSkKICAgYmVmb3JlCiAgICAgNDUzOTg4YWRkMmI5MTU4Ny5mOGQ1NjJiZmZjMWE5N2FhLjRlY2IxZDlmNzAxMjM2OTIuYjU4NDY3MGVlMzBmZDE4ZAogICAgIDYyNDIzYjRkNmNjMjRjOTcuMzlhMzkzN2I2NDhkYWFlNC4yODEzNWM2ZTNmZDkzYTAyLmE2MjIwY2NmM2JiOTIyYTUKQEAgLTI2ODU5LDExICsyNjg1OSwxMSBAQAogICBhZnRlcgogICAgIDQ1Mzk4OGFkZDJiOTE1ODcuZjhkNTYyYmZmYzFhOTdhYS40ZWNiMWQ5ZjcwMTIzNjkyLmI1ODQ2NzBlZTMwZmQxOGQKICAgICA2MjQyM2I0ZDZjYzI0Yzk3LjM5YTM5MzdiNjQ4ZGFhZTQuMjgxMzVjNmUzZmQ5M2EwMi5hNjIyMGNjZjNiYjkyMmE1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yODEzMWQ5ZjNmZDkzYTAyLmI1ODQwY2NmZTMwZjIyYTUKICAgICBiOWIzMjlhZTQwY2M4N2MzLmMyNTZiMTM0MGRiM2EzOTUuNmY4ZjY5OGM5MjBiYjg2ZC40NjQyNTgzMDFiM2E3Y2NmCiAgICAgYWQ1ZGY2YThkYjI4ZmMzYQogCi1WQ1ZUVFBEMkRRXzI1NihyZWcpCitWUEJMRU5EV18xMjhfMHhCNShyZWcpCiAgIGJlZm9yZQogICAgIDllOGVlMDM1ZjVmMDA1MTguYWJiNDVjNDhiMWU0MDQzOC5jMmQyOTYwOTg3N2MwMDY0Ljk0NWMyZmIzNGU4ZmE5YzAKICAgICA3NTIyMTE0MzA2MWRkMTE2LjljZjQwOGI4YTE2ZjY1ZDIuYmJjYjA0NjllOTI1NDJiYy44YTQzNmY3YjNiYmY2MDYyCkBAIC0yNjg3MSwxMiArMjY4NzEsMTIgQEAKICAgICA0NGEzMzk5MzdhZDhhNDIwLmVhNjRiOGNhNzAwYmM2MjMuMDM2NDZjN2JkNjQ1NjliYS41ODhmNGU5YTFhNTQxMzQxCiAgICAgZTk4YmU1Yzk0M2QxODdkNwogICBhZnRlcgotICAgIDllOGVlMDM1ZjVmMDA1MTguYWJiNDVjNDhiMWU0MDQzOC5jMmQyOTYwOTg3N2MwMDY0Ljk0NWMyZmIzNGU4ZmE5YzAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDc4ZDA0NjljZjNhYTc0YS44YTQzYTZjZTNiYmY5YTdlCiAgICAgNzUyMjExNDMwNjFkZDExNi45Y2Y0MDhiOGExNmY2NWQyLmJiY2IwNDY5ZTkyNTQyYmMuOGE0MzZmN2IzYmJmNjA2MgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDgwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICA4ZDY1ODYzZmE5M2M5Y2RmLjY3NDBhOGVhMmQ3ODY3YmMuMDc4ZGY3YzFjZjNhYTc0YS4yYzEwYTZjZTc2YTc5YTdlCiAgICAgNDRhMzM5OTM3YWQ4YTQyMC5lYTY0YjhjYTcwMGJjNjIzLjAzNjQ2YzdiZDY0NTY5YmEuNTg4ZjRlOWExYTU0MTM0MQogICAgIGU5OGJlNWM5NDNkMTg3ZDcKLVZDVlRUUEQyRFFfMjU2KG1lbSkKK1ZQQkxFTkRXXzEyOF8weEI1KG1lbSkKICAgYmVmb3JlCiAgICAgYmFkMWU2NDkwZTJhYjE2Yy5mNTI4MjhhZDE2N2QyMzg0LjAwMmNiNDQ0ODczNTNlMzMuMGM5YzVlMDU5OWQ0YzRiNwogICAgIGE5MmRjZDA1OTc2YzRmMmEuZmMzZjRlZjgxOWI3NTViOS44NDY0MTk0NThkMDE4YTE3LjdjODFjOWM5YjU3M2Y2ZWUKQEAgLTI2ODg2LDExICsyNjg4NiwxMSBAQAogICBhZnRlcgogICAgIGJhZDFlNjQ5MGUyYWIxNmMuZjUyODI4YWQxNjdkMjM4NC4wMDJjYjQ0NDg3MzUzZTMzLjBjOWM1ZTA1OTlkNGM0YjcKICAgICBhOTJkY2QwNTk3NmM0ZjJhLmZjM2Y0ZWY4MTliNzU1YjkuODQ2NDE5NDU4ZDAxOGExNy43YzgxYzljOWI1NzNmNmVlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NDY0YjQ0NDhkMDE4YTE3LjBjOWNjOWM5OTlkNGY2ZWUKICAgICA0ZDU3M2VlMTUwZDhkMWQ4LjdiNTczMGQwYzExY2M2NDAuNGE1MzBiODdkOGIwOTEwZC4wNDgwZmFiNDY2MGRjYWI4CiAgICAgZDUzM2I5YjIzMzIyZTVhNAogCi1WQ1ZUUEQyRFFfMTI4KHJlZykKK1ZQQkxFTkRXXzEyOF8weDg1KHJlZykKICAgYmVmb3JlCiAgICAgN2RjM2UwOWJjOTc1YzU3OS5iYmJkYzBkOWI5MWIyZTFmLmFjZWZlNDM2OWY1ZjdjZWIuNDRhMjkwYTI1NWFiYzM3NwogICAgIDU5N2M2ZGRiYzM5NGE3ZTQuYjU2ODE4YmQ0Zjc2ZWU0MC5hMzRhYmU3ZDUzNjdkNjE1LjFkOTE2ZGYzMzE3OWJhNjUKQEAgLTI2ODk4LDEyICsyNjg5OCwxMiBAQAogICAgIDFkOThhNzEwNTQ2NTYwMmEuYzFjMTNiZmE3NWE1ODZjMi41Mjc4ZGE1ZmFmZjY2NTk5LmRhN2YyMWU2NzdiYmU3ODAKICAgICA3ODE1ZWY2MTFhNDc5NDA0CiAgIGFmdGVyCi0gICAgN2RjM2UwOWJjOTc1YzU3OS5iYmJkYzBkOWI5MWIyZTFmLmFjZWZlNDM2OWY1ZjdjZWIuNDRhMjkwYTI1NWFiYzM3NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iYmI0YmU3ZDUzNjdkNjE1LjFkOTExZjY1MzE3OTMyMDQKICAgICA1OTdjNmRkYmMzOTRhN2U0LmI1NjgxOGJkNGY3NmVlNDAuYTM0YWJlN2Q1MzY3ZDYxNS4xZDkxNmRmMzMxNzliYTY1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMAorICAgIGM1YWE1YmRlYmQwYmM3OTAuMTkyNmMyNzkyZmY2Y2Q2OC5iYmI0YmMxMTdhYzAwZjZiLmIwZWMxZjY1ODgyNTMyMDQKICAgICAxZDk4YTcxMDU0NjU2MDJhLmMxYzEzYmZhNzVhNTg2YzIuNTI3OGRhNWZhZmY2NjU5OS5kYTdmMjFlNjc3YmJlNzgwCiAgICAgNzgxNWVmNjExYTQ3OTQwNAotVkNWVFBEMkRRXzEyOChtZW0pCitWUEJMRU5EV18xMjhfMHg4NShtZW0pCiAgIGJlZm9yZQogICAgIDY0N2MwNWMyOGNkNmY2YmQuYmQ5NDRjZGUyNDJlYWY1ZS44YTA2ZmQyYTNiOTJkNzdiLmMyZTQxMmQxOGY5NjExNGEKICAgICA3YzdlZTBmNWU5NzNjOWQ3LjAxZTg0NWIyYzhmMmYwZDcuNTFjMTg2ZjdhMGM2NzliZi42OTQyNjJkNGI1MmM1MjJiCkBAIC0yNjkxMywxMSArMjY5MTMsMTEgQEAKICAgYWZ0ZXIKICAgICA2NDdjMDVjMjhjZDZmNmJkLmJkOTQ0Y2RlMjQyZWFmNWUuOGEwNmZkMmEzYjkyZDc3Yi5jMmU0MTJkMThmOTYxMTRhCiAgICAgN2M3ZWUwZjVlOTczYzlkNy4wMWU4NDViMmM4ZjJmMGQ3LjUxYzE4NmY3YTBjNjc5YmYuNjk0MjYyZDRiNTJjNTIyYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGEwNmZkMmFhMGM2ZDc3Yi5jMmU0MTJkMWI1MmM1MjJiCiAgICAgOWI4NmQyODJkNzA4YjBkYi5lNWNiMjkyMGZkOWQzNzRhLjQ1YzhkYjE0YjAzOGE3OTYuYzgwNzM3M2Y0NTY2N2UyYwogICAgIDM4MDZiNTdkZTcyNGUyYTMKIAotVkNWVFBEMkRRXzEyOChyZWcpCitWUEJMRU5EV18xMjhfMHg4NShyZWcpCiAgIGJlZm9yZQogICAgIDRmMjczOWZkM2YwNmM5ZmIuNWMyNGUxYjM5ZjE5M2QxZi4zZGYyMGE5MmM2OWJiNTljLjJhYWM5ZjNkOTU4ZGFhODIKICAgICA2N2I4YzEyYWVhOWE3MWRkLmI3OGVhNDY3YzI2NzJiNzIuYTlhMTMxYmJkNGM1MTVlNC43YzM2MThiMjg3NWJmMGE4CkBAIC0yNjkyNSwxMiArMjY5MjUsMTIgQEAKICAgICAwZDU1Y2EzYmE2MDZlZWY2LmFlZjQzODA0OGJlZjE4ZmMuMmNjYjNlZTIyZGNiNmEwNC5kNzZjMWYzMDA0OTAzNDU0CiAgICAgOTliMGEzMTFjNjBmYWEzMQogICBhZnRlcgotICAgIDRmMjczOWZkM2YwNmM5ZmIuNWMyNGUxYjM5ZjE5M2QxZi4zZGYyMGE5MmM2OWJiNTljLjJhYWM5ZjNkOTU4ZGFhODIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODUyNjMxYmJkNGM1MTVlNC43YzM2YzQ1Zjg3NWIzNTM0CiAgICAgNjdiOGMxMmFlYTlhNzFkZC5iNzhlYTQ2N2MyNjcyYjcyLmE5YTEzMWJiZDRjNTE1ZTQuN2MzNjE4YjI4NzViZjBhOAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICBkZDAzNDg3MDgzNmIxM2Y4Ljg5OGY5ODg4NWQwMDM1MDMuODUyNjk5MDdjM2E2OTNjZC4xNzMzYzQ1ZmEzYWQzNTM0CiAgICAgMGQ1NWNhM2JhNjA2ZWVmNi5hZWY0MzgwNDhiZWYxOGZjLjJjY2IzZWUyMmRjYjZhMDQuZDc2YzFmMzAwNDkwMzQ1NAogICAgIDk5YjBhMzExYzYwZmFhMzEKLVZDVlRQRDJEUV8xMjgobWVtKQorVlBCTEVORFdfMTI4XzB4ODUobWVtKQogICBiZWZvcmUKICAgICAzN2NhY2VlZjA2MzY1MmZhLjU0ZmI0NGY3ZjBmNjNjODQuMDI4YTAwYzY2OTQxOTA4YS5mY2RkMWRiOGIxYmZkNzM0CiAgICAgOGU4NTFiYjRlMDEyZWFkOS4wYzNlYjExMGZkYzczYTRkLjYxMWI2Y2JhMTIwMTU4ZDguNTBhODMwZjVlODBlMTYwYQpAQCAtMjY5NDAsMTEgKzI2OTQwLDExIEBACiAgIGFmdGVyCiAgICAgMzdjYWNlZWYwNjM2NTJmYS41NGZiNDRmN2YwZjYzYzg0LjAyOGEwMGM2Njk0MTkwOGEuZmNkZDFkYjhiMWJmZDczNAogICAgIDhlODUxYmI0ZTAxMmVhZDkuMGMzZWIxMTBmZGM3M2E0ZC42MTFiNmNiYTEyMDE1OGQ4LjUwYTgzMGY1ZTgwZTE2MGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyOGEwMGM2MTIwMTkwOGEuZmNkZDFkYjhlODBlMTYwYQogICAgIGQ3MTIwYmE3Y2YxNmQ0OGIuNDJkMzU0MGFjZDNlMzY0Mi5iMTYwMjFlODM3ZmJjYzY2LmYzOThlNzU1ZTVlZWY4NTcKICAgICBmYjU2ODI1MGUyOTgxNDI1CiAKLVZDVlRQRDJEUV8xMjgocmVnKQorVlBCTEVORFdfMTI4XzB4ODUocmVnKQogICBiZWZvcmUKICAgICBmN2ZjNDM2MTA0Y2NmMjRhLjgxN2JhN2FkMWQ1NmEwYjUuNzhiYjgyYzNjOWZjYWJjNi41OWFkNjJmYWVhNGVlZWZlCiAgICAgNDJkNzI1ZjZlNjE4Y2Q3MC41NGI2NTQ0Yjc0N2I0YWE3LjkxNzI5NDg5ZjdjYWMwMzYuN2MyNTM4ZWVkYTQwNTIwNwpAQCAtMjY5NTIsMTIgKzI2OTUyLDEyIEBACiAgICAgMzk1YzNjNTk1YjI2NmQ3MC5lNWQxZDdmZmFmYTIyYjhkLmQ3N2Q1MWViNWJjY2I5ODguYTJjYThmMmRkYTJkY2ExOQogICAgIDVlOGQwODUwMjQ0MjU4N2MKICAgYWZ0ZXIKLSAgICBmN2ZjNDM2MTA0Y2NmMjRhLjgxN2JhN2FkMWQ1NmEwYjUuNzhiYjgyYzNjOWZjYWJjNi41OWFkNjJmYWVhNGVlZWZlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU3NDQ5NDg5ZjdjYWMwMzYuN2MyNTFkYjFkYTQwYjJhYwogICAgIDQyZDcyNWY2ZTYxOGNkNzAuNTRiNjU0NGI3NDdiNGFhNy45MTcyOTQ4OWY3Y2FjMDM2LjdjMjUzOGVlZGE0MDUyMDcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCisgICAgM2EzMzIzN2EyNDA3ZTI0My4yYzhlOTA2ZGYxOTE4ZjhiLmU3NDQ4NWM3ZjQzNmIwM2QuZjY5NTFkYjEyMGRiYjJhYwogICAgIDM5NWMzYzU5NWIyNjZkNzAuZTVkMWQ3ZmZhZmEyMmI4ZC5kNzdkNTFlYjViY2NiOTg4LmEyY2E4ZjJkZGEyZGNhMTkKICAgICA1ZThkMDg1MDI0NDI1ODdjCi1WQ1ZUUEQyRFFfMTI4KG1lbSkKK1ZQQkxFTkRXXzEyOF8weDg1KG1lbSkKICAgYmVmb3JlCiAgICAgMDVhZDA2MDQxOTI0MTZmZi45ZDllNjlmZjI3MDBhOWEzLjViNDlhM2VkY2JiY2Q5ZGEuYmQ2OWY0NjBjOTE3MTVjMgogICAgIDczZjUwNTM3ZDVlMWMxY2UuYzA0NGE4ZDgyMzIxZDM4Ny42OWMzNzIyMzYwZWI1NjllLmY1NTQ2YTkyZDlhMzAxOTgKQEAgLTI2OTY3LDExICsyNjk2NywxMSBAQAogICBhZnRlcgogICAgIDA1YWQwNjA0MTkyNDE2ZmYuOWQ5ZTY5ZmYyNzAwYTlhMy41YjQ5YTNlZGNiYmNkOWRhLmJkNjlmNDYwYzkxNzE1YzIKICAgICA3M2Y1MDUzN2Q1ZTFjMWNlLmMwNDRhOGQ4MjMyMWQzODcuNjljMzcyMjM2MGViNTY5ZS5mNTU0NmE5MmQ5YTMwMTk4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41YjQ5YTNlZDYwZWJkOWRhLmJkNjlmNDYwZDlhMzAxOTgKICAgICAxNDJjZjJjNzE0MWFjZDAzLmI3ZjA0OGQzMWM2YWUxMTQuYzJlZDA2MTg2N2I0YWQzYS5jYjU1YzFkZDUxYWY3N2M3CiAgICAgMjAwNTk5Y2ZmMTQ3N2E3OAogCi1WQ1ZUUEQyRFFfMjU2KHJlZykKK1ZQQkxFTkRXXzEyOF8weDI5KHJlZykKICAgYmVmb3JlCiAgICAgMzhlMzM0MmRhMzUxZmQ3NC5mZWIzZDlmY2NmYWVhNmMxLjQyOGRhM2NlNTJhOTNjMTYuYzQzNWMzYWUxMDY4ZmU2OQogICAgIDZlM2I4ZjY1MDM1NzNiNjguMjA5MmIwNWZjMTRkNWM3YS5mZWJmZmVhYjI3NjA3NTc4LmNmYWY3MzNkYTQ1ZjBlYmYKQEAgLTI2OTc5LDEyICsyNjk3OSwxMiBAQAogICAgIGE0OGU3MjBmNDA4ZGRiZTcuNzg4NzFmNWZiY2Q4NGU5NC43NDExYTliZjI0NjM3MDEyLjZmNjc5OGYyZjY0YzVhOGYKICAgICBiZDNlMDZmMWVlNTgwZTYxCiAgIGFmdGVyCi0gICAgMzhlMzM0MmRhMzUxZmQ3NC5mZWIzZDlmY2NmYWVhNmMxLjQyOGRhM2NlNTJhOTNjMTYuYzQzNWMzYWUxMDY4ZmU2OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZWJmZmVhYjNhMWE3NTc4LmJlMjY3MzNkYTQ1Zjk5NjgKICAgICA2ZTNiOGY2NTAzNTczYjY4LjIwOTJiMDVmYzE0ZDVjN2EuZmViZmZlYWIyNzYwNzU3OC5jZmFmNzMzZGE0NWYwZWJmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMAorICAgIDFlNWJhNWUxYWVlODcxZmYuNTU5NWYzZGMwNzAxYWI1ZC40NWQyNTdkNzNhMWFjOGU4LmJlMjY5MGFmM2NhNzk5NjgKICAgICBhNDhlNzIwZjQwOGRkYmU3Ljc4ODcxZjVmYmNkODRlOTQuNzQxMWE5YmYyNDYzNzAxMi42ZjY3OThmMmY2NGM1YThmCiAgICAgYmQzZTA2ZjFlZTU4MGU2MQotVkNWVFBEMkRRXzI1NihtZW0pCitWUEJMRU5EV18xMjhfMHgyOShtZW0pCiAgIGJlZm9yZQogICAgIDgzNzc1Nzk4M2ZkYTcxMGEuNWIxZmYyNWE1NGQ0YjVjOS42NzM2YWZkNWZkZGUwMjRjLmU4Y2FmMGNlODRjOGFhYTIKICAgICA5ZmRlMDVkMzA1ZGIzZWI1LmExNWIyMTJlODY0ODNhNTQuZmQ2YzFmMjhlNTFkODNiMC5mYjQ3Mjg3MGYzZDRiMjQzCkBAIC0yNjk5NCwxMSArMjY5OTQsMTEgQEAKICAgYWZ0ZXIKICAgICA4Mzc3NTc5ODNmZGE3MTBhLjViMWZmMjVhNTRkNGI1YzkuNjczNmFmZDVmZGRlMDI0Yy5lOGNhZjBjZTg0YzhhYWEyCiAgICAgOWZkZTA1ZDMwNWRiM2ViNS5hMTViMjEyZTg2NDgzYTU0LmZkNmMxZjI4ZTUxZDgzYjAuZmI0NzI4NzBmM2Q0YjI0MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjczNjFmMjhlNTFkMDI0Yy5mYjQ3Mjg3MDg0YzhiMjQzCiAgICAgNDU2NTZkYjU2MjhmMGFjMy40NjA0N2UyMWI2ZTkzODBmLjhkYTE4ZjE5MWM3Y2RhMmYuNzFjMDVjMWQ3NDEyMWI2YQogICAgIDhjNTQ1MDAwYmQ1Y2Y0NDcKIAotVkNWVFBEMkRRXzI1NihyZWcpCitWUEJMRU5EV18xMjhfMHgyOShyZWcpCiAgIGJlZm9yZQogICAgIGI3ZGQyNjI2ODc3ZDhiZTcuODcxZTFmMzQzMTU5N2Y3ZS41ZTA5YTMxOGVjMmQyODk4LjNmMzY4ODhmYTNiMzI5YTEKICAgICA0ZWE2ZDhmYjZkMDIxYmY0LjhmMzQxZWY4ZTVkNDUwZWIuNzRlOTY3NDhiMGNlYjQ3OS4wOTg0NTE5MzQxNTQzNTZmCkBAIC0yNzAwNiwxMiArMjcwMDYsMTIgQEAKICAgICAzMDJjYzU2M2ZlNjUxYTA3LjVjYWFmOGZiNmUwYmYxOGUuMDk2OGJlMDQ1NDVhOTBmMS41MDc3NDNmNTMzMDU3MmQyCiAgICAgODdiNTY1MmJjMDJkMWNiZgogICBhZnRlcgotICAgIGI3ZGQyNjI2ODc3ZDhiZTcuODcxZTFmMzQzMTU5N2Y3ZS41ZTA5YTMxOGVjMmQyODk4LjNmMzY4ODhmYTNiMzI5YTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzRlOTY3NDg5ZjU5YjQ3OS5jNTU2NTE5MzQxNTRiOWM3CiAgICAgNGVhNmQ4ZmI2ZDAyMWJmNC44ZjM0MWVmOGU1ZDQ1MGViLjc0ZTk2NzQ4YjBjZWI0NzkuMDk4NDUxOTM0MTU0MzU2ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICBhZGZjNjRlYzBiNzZlMjFhLjM3NzRlOGViOWIwYjM3MzcuZTNlZmM3MWQ5ZjU5MTg1ZC5jNTU2NjYxMTEyNmJiOWM3CiAgICAgMzAyY2M1NjNmZTY1MWEwNy41Y2FhZjhmYjZlMGJmMThlLjA5NjhiZTA0NTQ1YTkwZjEuNTA3NzQzZjUzMzA1NzJkMgogICAgIDg3YjU2NTJiYzAyZDFjYmYKLVZDVlRQRDJEUV8yNTYobWVtKQorVlBCTEVORFdfMTI4XzB4MjkobWVtKQogICBiZWZvcmUKICAgICA0NGRhNDc5ZmQ0ZjA3MmI4LjMzODBmN2NlZTI1Y2ZmNjQuZGJhMWNhMTM3YmRlM2ExYi40MGEwNDg2NzZjNWI1N2UxCiAgICAgNjRiMzY1M2Q4YjU5MzFlYS4xMjQ1ZjY5NzUyZTZjZmUwLjhlMjdkYTFlZGQ5M2NkMGIuZTZlMzYxYjQ4MmVhYWFkOApAQCAtMjcwMjEsMTEgKzI3MDIxLDExIEBACiAgIGFmdGVyCiAgICAgNDRkYTQ3OWZkNGYwNzJiOC4zMzgwZjdjZWUyNWNmZjY0LmRiYTFjYTEzN2JkZTNhMWIuNDBhMDQ4Njc2YzViNTdlMQogICAgIDY0YjM2NTNkOGI1OTMxZWEuMTI0NWY2OTc1MmU2Y2ZlMC44ZTI3ZGExZWRkOTNjZDBiLmU2ZTM2MWI0ODJlYWFhZDgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwODI0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRiYTFkYTFlZGQ5MzNhMWIuZTZlMzYxYjQ2YzViYWFkOAogICAgIDNlYjA0NWE4NTQ0ZGRhYTcuZDQ1MTRjZjg0N2U1MWJkZi4wNDBjYTZjMjEyY2NjNGMyLmVhYmEzMWI4MWFlMGUzOGQKICAgICAwMmU1ZTA0OGQ0NWY0MWEyCiAKLVZDVlRQRDJEUV8yNTYocmVnKQorVlBCTEVORFdfMTI4XzB4MjkocmVnKQogICBiZWZvcmUKICAgICBmNzRjMGU3MWZjOWIxYjcwLmFmNmQwMDRkOWVmMTNiOGEuNmYzMDliNjcwNDcxMGZiYi43ZTAzNTkzMjFjNjk5ZmUyCiAgICAgMjYzOWI3OWYyZTIxYWRhMS5mMzBkZTdjY2ZiNmJmNTU2LjU2YjFhN2U1YmVjMGRkNjUuOWRiODNhNDZlYzE3YjUxNApAQCAtMjcwMzMsMTIgKzI3MDMzLDEyIEBACiAgICAgYTNkODZiYmIyMzM4ZTdkZS42NDI5MjkwNzYwMTM2MzU4Ljc3YzRlN2JlOTdkOWY3ZDEuM2E4Yjc3MGI0ZGQzODI2MQogICAgIDcwNDFjYjkzMTVmOWIwZDMKICAgYWZ0ZXIKLSAgICBmNzRjMGU3MWZjOWIxYjcwLmFmNmQwMDRkOWVmMTNiOGEuNmYzMDliNjcwNDcxMGZiYi43ZTAzNTkzMjFjNjk5ZmUyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU2YjFhN2U1MTA1ZmRkNjUuM2RmNjNhNDZlYzE3YzI4NQogICAgIDI2MzliNzlmMmUyMWFkYTEuZjMwZGU3Y2NmYjZiZjU1Ni41NmIxYTdlNWJlYzBkZDY1LjlkYjgzYTQ2ZWMxN2I1MTQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCisgICAgZWNmOWQ4M2YwNzdjMzJlMi5lNjVkNzYxMDg4YzhjNDM3LmU0MWU2ZGRlMTA1ZmMxODguM2RmNmM1ZWI5ZWUxYzI4NQogICAgIGEzZDg2YmJiMjMzOGU3ZGUuNjQyOTI5MDc2MDEzNjM1OC43N2M0ZTdiZTk3ZDlmN2QxLjNhOGI3NzBiNGRkMzgyNjEKICAgICA3MDQxY2I5MzE1ZjliMGQzCi1WQ1ZUUEQyRFFfMjU2KG1lbSkKK1ZQQkxFTkRXXzEyOF8weDI5KG1lbSkKICAgYmVmb3JlCiAgICAgYmJlNjNkNzAxMzYwMDkwNy5hODIxNmU4MDFjZTIwODQyLjRhM2Q3ZDljYTA1ODkwZTYuNmFlZTEzZjJlZWJiYmFlYwogICAgIGY4NDQ0YThjNjMxNDQ5MmEuNTcyMmRjZmI5MTA1ZDBiOS43MjY1ZWNiYjYzYTQwNTBjLjE5ZWFlY2U0YjI5MDQ3ODQKQEAgLTI3MDQ4LDExICsyNzA0OCwxMSBAQAogICBhZnRlcgogICAgIGJiZTYzZDcwMTM2MDA5MDcuYTgyMTZlODAxY2UyMDg0Mi40YTNkN2Q5Y2EwNTg5MGU2LjZhZWUxM2YyZWViYmJhZWMKICAgICBmODQ0NGE4YzYzMTQ0OTJhLjU3MjJkY2ZiOTEwNWQwYjkuNzI2NWVjYmI2M2E0MDUwYy4xOWVhZWNlNGIyOTA0Nzg0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YTNkZWNiYjYzYTQ5MGU2LjE5ZWFlY2U0ZWViYjQ3ODQKICAgICBiMjVlMjEzNjY2OGY2ZGVjLjIzNzhlYWJmNTllNzQ4OTMuZmIyMDEwNDhlNDdlYjlkMy4xYTg0OTZiNmVlNDNhZmRkCiAgICAgMjRiYTVmNmU5ZjNhMDFmNgogCi1WTU9WU0xEVVBfMTI4KHJlZykKK1ZNT1ZVUFNfRXRvR18yNTYocmVnKQogICBiZWZvcmUKICAgICA1YmYxYzU5NTJkNTUwZDNkLmU5YjFlNDliNTI2ZmM5ZTMuZjg2NTgyZTFlNWJlNzA0ZC4xNDRiYmQ4ZGQ5MjQ3MGNiCiAgICAgMTk3NWM0OTczMzFlMGY1ZC44MWVmMzFmMGZmY2NmYjc5LmU3Mzk3NTY3NWIzZjJmY2IuZTBiYTc1MGRjMjAxNWYwYwpAQCAtMjcwNjIsMTAgKzI3MDYyLDEwIEBACiAgIGFmdGVyCiAgICAgNWJmMWM1OTUyZDU1MGQzZC5lOWIxZTQ5YjUyNmZjOWUzLmY4NjU4MmUxZTViZTcwNGQuMTQ0YmJkOGRkOTI0NzBjYgogICAgIDE5NzVjNDk3MzMxZTBmNWQuODFlZjMxZjBmZmNjZmI3OS5lNzM5NzU2NzViM2YyZmNiLmUwYmE3NTBkYzIwMTVmMGMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzc2YzY1YzE3NzZjNjVjMS5kZjhlZDkxN2RmOGVkOTE3Ci0gICAgOWU5MzdlZGMxOGVmZTNkYS40NDU3NWExYTBlMmFkNTMwLjgzYzU1ZDU0Nzc2YzY1YzEuMDA5NGZiNmFkZjhlZDkxNworICAgIGJjOTI1OGRmNGQyMzQyMDIuNTZlMjg0MjE4YWIxYzFkOS40YzNmYzBiZjU4ZjVjM2I4LjNhMzliNmIyYmIyMTQ0YzEKKyAgICBiYzkyNThkZjRkMjM0MjAyLjU2ZTI4NDIxOGFiMWMxZDkuNGMzZmMwYmY1OGY1YzNiOC4zYTM5YjZiMmJiMjE0NGMxCiAgICAgMGQ5NmMxMWY0YTU2ZGIzYQotVk1PVlNMRFVQXzEyOChtZW0pCitWTU9WVVBTX0V0b0dfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgM2QwZDgyYmYxOTg1MDY1NS4xZGM1MzBmNzMwMGYyZThlLjI3MWEyZWM3YTc0NGY0YTkuZTgxNTRhOTM1NTMwNTQ5MgogICAgIDZjYzNiYzM1NjcyNTE1OTQuOTM3NTZjOWQzMDBlNWZjZC5kYmY3N2MxNTczMGFkOTcxLmQ3N2Q4MmU2OGRjZWNhZDYKQEAgLTI3MDc1LDExICsyNzA3NSwxMSBAQAogICBhZnRlcgogICAgIDNkMGQ4MmJmMTk4NTA2NTUuMWRjNTMwZjczMDBmMmU4ZS4yNzFhMmVjN2E3NDRmNGE5LmU4MTU0YTkzNTUzMDU0OTIKICAgICA2Y2MzYmMzNTY3MjUxNTk0LjkzNzU2YzlkMzAwZTVmY2QuZGJmNzdjMTU3MzBhZDk3MS5kNzdkODJlNjhkY2VjYWQ2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE3NDRmNGE5YTc0NGY0YTkuNTUzMDU0OTI1NTMwNTQ5MgorICAgIDNkMGQ4MmJmMTk4NTA2NTUuMWRjNTMwZjczMDBmMmU4ZS4yNzFhMmVjN2E3NDRmNGE5LmU4MTU0YTkzNTUzMDU0OTIKICAgICAzNjFmODg1M2YzZWVkMjMyLmQ4N2E3MDNiNTlkYTYxOTcuMjUyZjc3NDAwZGNiZTg5ZC5jM2MwYzM3YjdkYzUzZTY5CiAgICAgNzgzNGM1OTY2YzM3YjMxMAogCi1WTU9WU0xEVVBfMTI4KHJlZykKK1ZNT1ZVUFNfRXRvR18yNTYocmVnKQogICBiZWZvcmUKICAgICAyN2VlMDE3NjI2YjJhMGRhLjhhNWQxMmQzNjcyZGY4ZTcuNWU2NzMwMGFiYWJmYWI3YS43NDIxMWNmNTE1ZGU4YTU5CiAgICAgMmIzYzc1ODY0N2MzNDE3NC40YzBiMDVkYWNjMGZmMjcxLjRkMDI2OTE1NzRiM2NhOTcuMDM1ZDJiZmJiZWNkZTIxMwpAQCAtMjcwODksMTAgKzI3MDg5LDEwIEBACiAgIGFmdGVyCiAgICAgMjdlZTAxNzYyNmIyYTBkYS44YTVkMTJkMzY3MmRmOGU3LjVlNjczMDBhYmFiZmFiN2EuNzQyMTFjZjUxNWRlOGE1OQogICAgIDJiM2M3NTg2NDdjMzQxNzQuNGMwYjA1ZGFjYzBmZjI3MS40ZDAyNjkxNTc0YjNjYTk3LjAzNWQyYmZiYmVjZGUyMTMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjFmYTdhMmQ2MWZhN2EyZC42NDcxYTczMzY0NzFhNzMzCi0gICAgYTdiZmYzZWIyYmQ0OGVjOC44ZmU2MTMyOWQyZWI1NWIzLmQxNmUzNjhjNjFmYTdhMmQuNTZlMzc3YTc2NDcxYTczMworICAgIGUyNjgxZDM0NmFmNWQyOGEuNWFmNGRiNTIzYmEwN2RmYy5mZjk1MTdjNzIyNDNmYzk5LmIwYWYyMDNkMjRhNWFlZjgKKyAgICBlMjY4MWQzNDZhZjVkMjhhLjVhZjRkYjUyM2JhMDdkZmMuZmY5NTE3YzcyMjQzZmM5OS5iMGFmMjAzZDI0YTVhZWY4CiAgICAgZDBjNWFkMjU5YTNlOGNmMQotVk1PVlNMRFVQXzEyOChtZW0pCitWTU9WVVBTX0V0b0dfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZmMyMTNkYTNlMDE2MTc1ZS5kNjhlZjUxNzI3ZWRiMmQ4LmM2YWIyNjQ5YWRmYzM1YzMuMWZkN2MzY2ZjYzY0ODNmZgogICAgIGI0YzJhMzBkNTUwNzA1YTUuY2ExZTFlMjRmOWNhNzk2OS5kZDEwOTFhMGU3ZGZkYTU4LjQ1MWRiOWZlZmYwZTUxYmEKQEAgLTI3MTAyLDExICsyNzEwMiwxMSBAQAogICBhZnRlcgogICAgIGZjMjEzZGEzZTAxNjE3NWUuZDY4ZWY1MTcyN2VkYjJkOC5jNmFiMjY0OWFkZmMzNWMzLjFmZDdjM2NmY2M2NDgzZmYKICAgICBiNGMyYTMwZDU1MDcwNWE1LmNhMWUxZTI0ZjljYTc5NjkuZGQxMDkxYTBlN2RmZGE1OC40NTFkYjlmZWZmMGU1MWJhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFkZmMzNWMzYWRmYzM1YzMuY2M2NDgzZmZjYzY0ODNmZgorICAgIGZjMjEzZGEzZTAxNjE3NWUuZDY4ZWY1MTcyN2VkYjJkOC5jNmFiMjY0OWFkZmMzNWMzLjFmZDdjM2NmY2M2NDgzZmYKICAgICAzYzA3ZTI1NjM2NjNmOTc0Ljc1YjlkNTkxOTEwNmU0YjkuMTdlYTYxOWZlYTRkNjNiZi44YTZmZDBjZTMwNTAyZjlkCiAgICAgNjAxNGU5NDY2NWZmYjcxZAogCi1WTU9WU0xEVVBfMTI4KHJlZykKK1ZNT1ZVUFNfRXRvR18yNTYocmVnKQogICBiZWZvcmUKICAgICA3ZWM1NWM1OWQzMWVmNDM3LmM0NDJiMjBjZGJlNTc4NTMuZTQ1YTVjY2E4ZjdjZmZkMC5mMmY2YmQyMGVhZWZiZWU5CiAgICAgNDBjZjI0NzQxNTM5MjM5Ni40OGYzNDk1ZjFkYWY0OGJkLjg4ZWVmOTkzZDNlN2FkMTcuMWNkMzYxODdiYTk0Y2U0OApAQCAtMjcxMTYsMTAgKzI3MTE2LDEwIEBACiAgIGFmdGVyCiAgICAgN2VjNTVjNTlkMzFlZjQzNy5jNDQyYjIwY2RiZTU3ODUzLmU0NWE1Y2NhOGY3Y2ZmZDAuZjJmNmJkMjBlYWVmYmVlOQogICAgIDQwY2YyNDc0MTUzOTIzOTYuNDhmMzQ5NWYxZGFmNDhiZC44OGVlZjk5M2QzZTdhZDE3LjFjZDM2MTg3YmE5NGNlNDgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWZjZWI2ZTQ5ZmNlYjZlNC4zOTE1ZmM1MzM5MTVmYzUzCi0gICAgMjAxZWEzNmU4NjkwNDZkNS5iOGU2YmE4OGVhNGRkMmUwLmUzMjA2YTg5OWZjZWI2ZTQuY2UyYjcyYjgzOTE1ZmM1MworICAgIDAyN2UzZDAxYzdkYjdmZTcuYTVlNTIyM2ExOWNlMjhkZC5iZmMyYWE1YWZhZDQyYzM5LjcyNGJjYWMxNzY0NzRmMDcKKyAgICAwMjdlM2QwMWM3ZGI3ZmU3LmE1ZTUyMjNhMTljZTI4ZGQuYmZjMmFhNWFmYWQ0MmMzOS43MjRiY2FjMTc2NDc0ZjA3CiAgICAgMGQzZmQ3NTkxZjA5OTI1OAotVk1PVlNMRFVQXzEyOChtZW0pCitWTU9WVVBTX0V0b0dfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMGM1Mzc1OTA0NTJmY2Q0MS5mNWZiNTMyNmVkZTRiMjBkLjViYzA4YjM3YWMzOTAzZjEuNTI1NDM2OGU1ZjYxODdjMQogICAgIGE1MzNjNjRhYzY5MzY5M2IuZGY2MTQ3OTU5OTY0MDAzYi42YjQxMTMzMjdjOWQ3NzNkLjY2YWMwOWQ0ZDUxYWRkN2UKQEAgLTI3MTI5LDExICsyNzEyOSwxMSBAQAogICBhZnRlcgogICAgIDBjNTM3NTkwNDUyZmNkNDEuZjVmYjUzMjZlZGU0YjIwZC41YmMwOGIzN2FjMzkwM2YxLjUyNTQzNjhlNWY2MTg3YzEKICAgICBhNTMzYzY0YWM2OTM2OTNiLmRmNjE0Nzk1OTk2NDAwM2IuNmI0MTEzMzI3YzlkNzczZC42NmFjMDlkNGQ1MWFkZDdlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFjMzkwM2YxYWMzOTAzZjEuNWY2MTg3YzE1ZjYxODdjMQorICAgIDBjNTM3NTkwNDUyZmNkNDEuZjVmYjUzMjZlZGU0YjIwZC41YmMwOGIzN2FjMzkwM2YxLjUyNTQzNjhlNWY2MTg3YzEKICAgICAxODg1NzZmMzRiNDdiMjEwLjVmZjZmMDQ4MmUxNjMxMjcuNDM2MzM1YmNiNWZkMTczNS5mMWY0YjNkMzU1MmIwMzQ4CiAgICAgMWY3Yzg0NjQ5NjljNGNhYwogCi1WTU9WU0xEVVBfMjU2KHJlZykKK1ZTUVJUU1NfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjM1NzRiZTZmZTYyMDg5Zi5hYTkxY2NiYjg3YWZkODQ0LmFkYmU5ZDY0NGY2MDhiM2QuYzI5Y2M4MjQ1NjEyYmIzOQogICAgIDFhZDEwNmM1MjgwOTc0Y2YuNDg5OGM2YjU4ZTg1NGUzOC43ZTNmN2VlNzI1MDViOGY5LjFlYWMwMTg3NzRjZjkxMjcKQEAgLTI3MTQxLDEyICsyNzE0MSwxMiBAQAogICAgIDRjZDE0NTRiMzUyYzRiOTAuMTNjOTk3ZWY2ZmFjMWUxMi4xZTljZDFkMzVlOTE3NzEyLmRkN2Q1NWYyOTg3M2M3NzQKICAgICBmOGQ2NjhkMmQ2NzE5ZDJhCiAgIGFmdGVyCi0gICAgNjM1NzRiZTZmZTYyMDg5Zi5hYTkxY2NiYjg3YWZkODQ0LmFkYmU5ZDY0NGY2MDhiM2QuYzI5Y2M4MjQ1NjEyYmIzOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZTNmN2VlNzI1MDViOGY5LjFlYWMwMTg3MzU1ZTc5YTAKICAgICAxYWQxMDZjNTI4MDk3NGNmLjQ4OThjNmI1OGU4NTRlMzguN2UzZjdlZTcyNTA1YjhmOS4xZWFjMDE4Nzc0Y2Y5MTI3Ci0gICAgMzUyYzRiOTAzNTJjNGI5MC42ZmFjMWUxMjZmYWMxZTEyLjVlOTE3NzEyNWU5MTc3MTIuOTg3M2M3NzQ5ODczYzc3NAorICAgIDllMzZiMDZlYjExZWNjZTYuY2M2N2UwY2Q3ZGQ1ZDIxOS4zMGM1OTEzZDRiOTFmMzA2LjMzNWQ1YmQyMmI0MTU3MmMKICAgICA0Y2QxNDU0YjM1MmM0YjkwLjEzYzk5N2VmNmZhYzFlMTIuMWU5Y2QxZDM1ZTkxNzcxMi5kZDdkNTVmMjk4NzNjNzc0CiAgICAgZjhkNjY4ZDJkNjcxOWQyYQotVk1PVlNMRFVQXzI1NihtZW0pCitWU1FSVFNTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDYwMzUxMTVkMDI0ODk3N2IuODBmMGMxY2E0ZmJmMmU3YS5mOThjNjYwNzgxMTVlZTUwLmE0MGYzYjEzZjk5MDgxYzYKICAgICBmMTY2Y2Q4MTM3MDM2ZjkyLjk2ZGQyMTU1OWI2NGIxNTAuNWE3YWM5MDFjZTFjMDBmZi4xZDZjYzk2YmI5MWI0Y2QxCkBAIC0yNzE1NiwxMSArMjcxNTYsMTEgQEAKICAgYWZ0ZXIKICAgICA2MDM1MTE1ZDAyNDg5NzdiLjgwZjBjMWNhNGZiZjJlN2EuZjk4YzY2MDc4MTE1ZWU1MC5hNDBmM2IxM2Y5OTA4MWM2CiAgICAgZjE2NmNkODEzNzAzNmY5Mi45NmRkMjE1NTliNjRiMTUwLjVhN2FjOTAxY2UxYzAwZmYuMWQ2Y2M5NmJiOTFiNGNkMQotICAgIDAyNDg5NzdiMDI0ODk3N2IuNGZiZjJlN2E0ZmJmMmU3YS44MTE1ZWU1MDgxMTVlZTUwLmY5OTA4MWM2Zjk5MDgxYzYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWE3YWM5MDFjZTFjMDBmZi4xZDZjYzk2YmZmYzAwMDAwCiAgICAgZmU2ZDZiNDEyZjU2YWNjNS5kODU0N2E0NDNiMTI4NjZlLmZkMGIzYzRjOGEzNmQ0NWUuNWMwZjQ2MGYxNTAyMTg5NgogICAgIGRhZWUyYzM0ZWE3NzkxYTkKIAotVk1PVlNMRFVQXzI1NihyZWcpCitWU1FSVFNTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGJiZTUyNzIwNTRhN2JiYzIuMzJkYjQ2YjUyODA2ODgzOC5iYzc2NmI3ZmM3MzI1MDBlLmY2NDU0NDc1MzI2MDEwNjYKICAgICA1ZDQyMzQzZmVlMWVkNDhjLmZmNGIyMzcxOWJjYTMzMjIuZjI5NjMwNzdmNTk1YWE0YS5kYmRhZDAyZjg1NTg3YzhmCkBAIC0yNzE2OCwxMiArMjcxNjgsMTIgQEAKICAgICA1MDU5NzFjNzIzMTJiZGU1LmQzNjFkMjcyNWVjMGU2MDkuYzQwNDIyNGVhOTRkZmQ0NS5kNjQ5NjUwYjlkZTVkN2YzCiAgICAgYTRiYjY2MDQ5YjkwM2Q4NgogICBhZnRlcgotICAgIGJiZTUyNzIwNTRhN2JiYzIuMzJkYjQ2YjUyODA2ODgzOC5iYzc2NmI3ZmM3MzI1MDBlLmY2NDU0NDc1MzI2MDEwNjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjI5NjMwNzdmNTk1YWE0YS5kYmRhZDAyZmZmYzAwMDAwCiAgICAgNWQ0MjM0M2ZlZTFlZDQ4Yy5mZjRiMjM3MTliY2EzMzIyLmYyOTYzMDc3ZjU5NWFhNGEuZGJkYWQwMmY4NTU4N2M4ZgotICAgIDIzMTJiZGU1MjMxMmJkZTUuNWVjMGU2MDk1ZWMwZTYwOS5hOTRkZmQ0NWE5NGRmZDQ1LjlkZTVkN2YzOWRlNWQ3ZjMKKyAgICAxYTRmNGVmZTU0NjgxNWI0LjQwODk3ZDYxYTRhZjY5YWUuZDYwMmMzOTg2MmM0ZDBjZS44Nzk4NWM2ODlmMmJkNTA1CiAgICAgNTA1OTcxYzcyMzEyYmRlNS5kMzYxZDI3MjVlYzBlNjA5LmM0MDQyMjRlYTk0ZGZkNDUuZDY0OTY1MGI5ZGU1ZDdmMwogICAgIGE0YmI2NjA0OWI5MDNkODYKLVZNT1ZTTERVUF8yNTYobWVtKQorVlNRUlRTU18xMjgobWVtKQogICBiZWZvcmUKICAgICBjY2I4ZGIzZmIzM2FjNGU5LjU5YWQ5OTA3ZjZhODA2Y2MuOTM5ZjllOGVlNjA5NjU1ZS4xOGU5NDgwNTY2YmI2ZTViCiAgICAgMmMwZDQwYTgwNGVmMjg0OS45Mjk0YzIyYjZhYjQyZDE1LjVjMGY1YmEzNTc5N2EzZGIuMmVmZDMyMmEzNjlhNWViZQpAQCAtMjcxODMsMTEgKzI3MTgzLDExIEBACiAgIGFmdGVyCiAgICAgY2NiOGRiM2ZiMzNhYzRlOS41OWFkOTkwN2Y2YTgwNmNjLjkzOWY5ZThlZTYwOTY1NWUuMThlOTQ4MDU2NmJiNmU1YgogICAgIDJjMGQ0MGE4MDRlZjI4NDkuOTI5NGMyMmI2YWI0MmQxNS41YzBmNWJhMzU3OTdhM2RiLjJlZmQzMjJhMzY5YTVlYmUKLSAgICBiMzNhYzRlOWIzM2FjNGU5LmY2YTgwNmNjZjZhODA2Y2MuZTYwOTY1NWVlNjA5NjU1ZS42NmJiNmU1YjY2YmI2ZTViCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVjMGY1YmEzNTc5N2EzZGIuMmVmZDMyMmE1MzFhZTQwZgogICAgIDAwZWVjYmI0YmJhNzc2YWYuMDU1MzA5Y2JhMzY0MDU3Yi43OGIzOWQ2NDY1YWY0YmY3LjBmZTIzZTZhN2VkZGFmMTUKICAgICA5MzRhNTk1ZTJlNTk4NzYyCiAKLVZNT1ZTTERVUF8yNTYocmVnKQorVlNRUlRTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA0OTEyMjc2ZTVmNzZjZWFiLjJkMTNlODMwNTljMmQ4MGMuZjZjMTFlMjBhMDFlMmRmMS44NDgwMTllOTNiNTIyZGVmCiAgICAgOGQ4NGE1MDhiMGMwYzI5Yy4wMWJmZTY4OWEwMTgwNzE3Ljg3ZjUyNDA3YWU4MDIzNzguMDhhZjc4MTY2YTY5YmViZApAQCAtMjcxOTUsMTIgKzI3MTk1LDEyIEBACiAgICAgMmU5OTlkODcxYzBjOWIyMy4wZGUwNzM4NjkyYTJiYWUxLmZhZGFmNTQwNmI2YjY4NmEuZWM2M2NiMTg0NDI0ZGM4ZQogICAgIDA0N2ZiOGM1MjhlMGUxZTgKICAgYWZ0ZXIKLSAgICA0OTEyMjc2ZTVmNzZjZWFiLjJkMTNlODMwNTljMmQ4MGMuZjZjMTFlMjBhMDFlMmRmMS44NDgwMTllOTNiNTIyZGVmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg3ZjUyNDA3YWU4MDIzNzguMDhhZjc4MTYyNmI1ODdmOQogICAgIDhkODRhNTA4YjBjMGMyOWMuMDFiZmU2ODlhMDE4MDcxNy44N2Y1MjQwN2FlODAyMzc4LjA4YWY3ODE2NmE2OWJlYmQKLSAgICAxYzBjOWIyMzFjMGM5YjIzLjkyYTJiYWUxOTJhMmJhZTEuNmI2YjY4NmE2YjZiNjg2YS40NDI0ZGM4ZTQ0MjRkYzhlCisgICAgYmFlZGNkOTdiYmMzOWNkZi41N2MwNDFhZGE5YjRiZWY5LjE1MzkxOGVlNjgxNjIyYmMuZTIwYzM0ZDcwZTAwYjk4ZQogICAgIDJlOTk5ZDg3MWMwYzliMjMuMGRlMDczODY5MmEyYmFlMS5mYWRhZjU0MDZiNmI2ODZhLmVjNjNjYjE4NDQyNGRjOGUKICAgICAwNDdmYjhjNTI4ZTBlMWU4Ci1WTU9WU0xEVVBfMjU2KG1lbSkKK1ZTUVJUU1NfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDQyZTc3Y2JkNDQxODRjOS40NGQzMTA0NDcwMjdmYTEyLmZkZWJmYTAyNzdlZmI3ZjkuOTMyM2I3Njk1MjBiMmYyZQogICAgIGNhM2E4NTE0Njc1MTgzNWQuNTdlOTIzM2I1MjllZjQ1OS4wNWFmNTEwYzczYTY3MTZlLjNjNjI1YWQ2YmE4MmIzYjQKQEAgLTI3MjEwLDExICsyNzIxMCwxMSBAQAogICBhZnRlcgogICAgIDA0MmU3N2NiZDQ0MTg0YzkuNDRkMzEwNDQ3MDI3ZmExMi5mZGViZmEwMjc3ZWZiN2Y5LjkzMjNiNzY5NTIwYjJmMmUKICAgICBjYTNhODUxNDY3NTE4MzVkLjU3ZTkyMzNiNTI5ZWY0NTkuMDVhZjUxMGM3M2E2NzE2ZS4zYzYyNWFkNmJhODJiM2I0Ci0gICAgZDQ0MTg0YzlkNDQxODRjOS43MDI3ZmExMjcwMjdmYTEyLjc3ZWZiN2Y5NzdlZmI3ZjkuNTIwYjJmMmU1MjBiMmYyZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNWFmNTEwYzczYTY3MTZlLjNjNjI1YWQ2NDhiY2MzMjIKICAgICAxNDljN2IyM2FjYjQ4MDRiLmU4ZDUxNTgyMzJkNWFiOWQuYzg4ZTVmN2EyMjgzMGExZC4yZWVlMzQyNzdhMjdlNmIzCiAgICAgMmZkMzYzZTUwYjZjMGM4NQogCi1WTU9WU0hEVVBfMTI4KHJlZykKK1ZTUVJUUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjBkZDYzOTU4Y2I5ZTBjOS41MDg5NWJjMTk2MWVmN2ZmLjFlNDNlZGFjNjhhZGUwZjIuM2Q0MjBmYjYwY2MyNjJhZgogICAgIDBkNTgzMGE1OWE5OTlkMmIuYzEwNTc5NTJkNjY4YjgxNC5jMWJjNTRiZjljMTJhMTUwLjM4ZGQ3ZTMwN2U5YTY2NGUKQEAgLTI3MjIzLDExICsyNzIyMywxMSBAQAogICAgIGVjMTUyNzRjMTkzYWQ4MmYKICAgYWZ0ZXIKICAgICBiMGRkNjM5NThjYjllMGM5LjUwODk1YmMxOTYxZWY3ZmYuMWU0M2VkYWM2OGFkZTBmMi4zZDQyMGZiNjBjYzI2MmFmCi0gICAgMGQ1ODMwYTU5YTk5OWQyYi5jMTA1Nzk1MmQ2NjhiODE0LmMxYmM1NGJmOWMxMmExNTAuMzhkZDdlMzA3ZTlhNjY0ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMmZlYzA0ZmMyZmVjMDRmLjM0ZmE4ZjhmMzRmYThmOGYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzc4NWZmOTg1NTg3ZDdhZi5mZmMwMDAwMGZmYzAwMDAwCisgICAgYTI5MGM3ODBkMTk5ODA1Ni40M2RhNTJjNDg4OWU4MGI5LjJmOGM0NzI2NmI5MDJhNjAuOTYyYzJhZDU5MzE5ZDMyNgogICAgIGNiZDAyMjkyY2M0M2M1ZjYuYjNkNjYwMDJjN2NkMGIxOC5jMmZlYzA0ZjcwYjRiN2QwLjM0ZmE4ZjhmNjg0YTY1NjIKICAgICBlYzE1Mjc0YzE5M2FkODJmCi1WTU9WU0hEVVBfMTI4KG1lbSkKK1ZTUVJUUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOWI0ODcwZjZjMGYzZTdiOS5lMzY2M2Y0NzI3MjZhOGI4LmViYzMyMWY4YjAwMDE0NWQuZDc2MGJkYTU0NzA5ODM0YwogICAgIDFkNWVlNDdiN2M4NDRmMmIuNDg5YzFhMGI3ZmNiNjQ0OC5jODZlMTE5MzVlNDQ1OGI2LmNiZmMzOTk0OGQxYmNiODAKQEAgLTI3MjM2LDEyICsyNzIzNiwxMiBAQAogICAgIDcwMmE4MTJmMGUzYWUxMjAKICAgYWZ0ZXIKICAgICA5YjQ4NzBmNmMwZjNlN2I5LmUzNjYzZjQ3MjcyNmE4YjguZWJjMzIxZjhiMDAwMTQ1ZC5kNzYwYmRhNTQ3MDk4MzRjCi0gICAgMWQ1ZWU0N2I3Yzg0NGYyYi40ODljMWEwYjdmY2I2NDQ4LmM4NmUxMTkzNWU0NDU4YjYuY2JmYzM5OTQ4ZDFiY2I4MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYmMzMjFmOGViYzMyMWY4LmQ3NjBiZGE1ZDc2MGJkYTUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZjMDAwMDBmZmMwMDAwMC5mZmMwMDAwMDQzM2JhMDFiCisgICAgNGUyNDAyYzY2NmY2Y2NiMS41NWJmYWQ0YTZmYzAzNjUxLjI2YTJhYWJkZWRhNDkzNGQuZjgxZjMwODhkZTc3Y2ExNwogICAgIDBiNjY0M2MzOWQ1NzE5NzguNjYxYmY2NzA5NDkwNTk4MC5lMTJkNmE2MzdhMmM4MTRlLmJiMTU5ZmVkZDVhOGJlYmQKICAgICA3MDJhODEyZjBlM2FlMTIwCiAKLVZNT1ZTSERVUF8xMjgocmVnKQorVlNRUlRQU18xMjgocmVnKQogICBiZWZvcmUKICAgICA3NGFhZDJiYjI2YmE2ZmU5LjJlZjAyNDVkM2FiMmY0YWMuZDZmY2VmZTk4OWM4MGI4MS5kNmQ5Y2M3MTIxZTlkZGU2CiAgICAgMjFlMDhlZmJiOWIzYTZjNy45NDhlMjI4MzViMTQxNjc5LjAzYWU5NjIyZWFmMjg2ZmYuZGY3NDRjZDRmZGU2NjQ0MQpAQCAtMjcyNTAsMTEgKzI3MjUwLDExIEBACiAgICAgMTBjZTVhMmNlOWQ2NTI5OAogICBhZnRlcgogICAgIDc0YWFkMmJiMjZiYTZmZTkuMmVmMDI0NWQzYWIyZjRhYy5kNmZjZWZlOTg5YzgwYjgxLmQ2ZDljYzcxMjFlOWRkZTYKLSAgICAyMWUwOGVmYmI5YjNhNmM3Ljk0OGUyMjgzNWIxNDE2NzkuMDNhZTk2MjJlYWYyODZmZi5kZjc0NGNkNGZkZTY2NDQxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwYjNkYzgwMDBiM2RjODAuYTBhMjk3NDVhMGEyOTc0NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40M2ZlNzI4ZTRhOGRjNjFiLmZmYzAwMDAwMzRkNDI4MjkKKyAgICBkNDFhYjE1ZDYyYjFjMDY0LjE5MGJiODFlMWM4ODNlMGEuNDg3Y2U3ODU1NTlkMDdhNy5kOWM4NjY3NzJhMmZkMjhhCiAgICAgZTlhMjM4NGNiZDQxZmE2ZC45OTM1NjIxYjk4MWEyNjhiLjAwYjNkYzgwNjM1MmM5MjQuYTBhMjk3NDVjNWQwZTJlZQogICAgIDEwY2U1YTJjZTlkNjUyOTgKLVZNT1ZTSERVUF8xMjgobWVtKQorVlNRUlRQU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwNTE3MmIxN2IzNGRkY2I1LmJjYzUxZDMzNjdlZTkwOGQuZjBkNjlkNjZlY2Q3OGMyOS44OWEwNzM3ZWIyOWYwYTIzCiAgICAgNWE0Yjg2ZjIzZTNmM2M3MC5hOWNmNWU4MGZiNDViZDcxLmZhYmJlM2VjMzNjYTI5MTAuM2U4ZGE3ZWFkZTBmMDQ0ZgpAQCAtMjcyNjMsMTIgKzI3MjYzLDEyIEBACiAgICAgZmI1MWNhMDNhM2FjYTQ5ZgogICBhZnRlcgogICAgIDA1MTcyYjE3YjM0ZGRjYjUuYmNjNTFkMzM2N2VlOTA4ZC5mMGQ2OWQ2NmVjZDc4YzI5Ljg5YTA3MzdlYjI5ZjBhMjMKLSAgICA1YTRiODZmMjNlM2YzYzcwLmE5Y2Y1ZTgwZmI0NWJkNzEuZmFiYmUzZWMzM2NhMjkxMC4zZThkYTdlYWRlMGYwNDRmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYwZDY5ZDY2ZjBkNjlkNjYuODlhMDczN2U4OWEwNzM3ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmMwMDAwMGZmYzAwMDAwLmZmYzAwMDAwZmZjMDAwMDAKKyAgICBlZDM0ZTdhOWE3YmEzMGY3LjBjMGNmNzllMTZkMGJlYzQuOTNiMGIyOTc4OWZmYmM2Yi43YWM2NzQzMjgyMmZmMzU2CiAgICAgOTk5ZmNiMjgwOWNhNzI3My40MWM4ZTJmOTUzMWRjZjMzLjk2ODE4NTU1MGI4M2ZmNjcuOWI5OWQ2YzEzYThhMTVlMQogICAgIGZiNTFjYTAzYTNhY2E0OWYKIAotVk1PVlNIRFVQXzEyOChyZWcpCitWU1FSVFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGY3Mzk0YjY0NTkyMmRkMzkuM2E1OGFkNWM4MTc5YmYxMy5hNDRlMWRmZDRmYjgyYjY5LmUxZjlkODExZDU2MWFmMzAKICAgICBlYzllNTU1MWY2NzdmYjVlLmFjMmIwOTJmMmFkNWQyMDEuOTFlYmEzMTZhNTJjMTAxNC40ZmU2MjhiNjAxYTU4OGYxCkBAIC0yNzI3NywxMSArMjcyNzcsMTEgQEAKICAgICAwMjVhZDg1Y2Y1NTA1ZWMwCiAgIGFmdGVyCiAgICAgZjczOTRiNjQ1OTIyZGQzOS4zYTU4YWQ1YzgxNzliZjEzLmE0NGUxZGZkNGZiODJiNjkuZTFmOWQ4MTFkNTYxYWYzMAotICAgIGVjOWU1NTUxZjY3N2ZiNWUuYWMyYjA5MmYyYWQ1ZDIwMS45MWViYTMxNmE1MmMxMDE0LjRmZTYyOGI2MDFhNTg4ZjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzk5YTgwMzg3OTlhODAzOC4wMzRhYWI3MDAzNGFhYjcwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUyMmQ5OTI2ZmZjMDAwMDAuZmZjMDAwMDBmZmMwMDAwMAorICAgIDM0Y2NlNDM0MTkzNzNjYjguY2JlNDViOGUyMWVhNjg2OS42NGViNzBiMWYxMDViN2RkLmJjMTJlZjMyYWU1YzQ1ZDcKICAgICAyZDBmZjQ3YTVjZWZkYWY0LjcyNGYyMDY2ODFjMjNkNzguNzk5YTgwMzhkMGNmNWY3My4wMzRhYWI3MGY2OTFhMzBkCiAgICAgMDI1YWQ4NWNmNTUwNWVjMAotVk1PVlNIRFVQXzEyOChtZW0pCitWU1FSVFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDk0MGVmMGUzYzhhNjMyMWMuMzFiMzgyOTA1YjJhMTFiZC43ZjM3ZDJhMjY2NmIwZDVhLjJjNDRkMDE5ZGUxNzQzODAKICAgICA5NTMyNzBlZjhhOWVkYTRjLjlkMDQ4OWUxYjM3NDFmYzAuY2Q2OWVmMmRlZGYxOTMzYS5kODM1NWJiZWI2Njg5ZWIwCkBAIC0yNzI5MCwxMiArMjcyOTAsMTIgQEAKICAgICA1MmE4MzY4NjE1MGNkNWNmCiAgIGFmdGVyCiAgICAgOTQwZWYwZTNjOGE2MzIxYy4zMWIzODI5MDViMmExMWJkLjdmMzdkMmEyNjY2YjBkNWEuMmM0NGQwMTlkZTE3NDM4MAotICAgIDk1MzI3MGVmOGE5ZWRhNGMuOWQwNDg5ZTFiMzc0MWZjMC5jZDY5ZWYyZGVkZjE5MzNhLmQ4MzU1YmJlYjY2ODllYjAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2YzN2QyYTI3ZjM3ZDJhMi4yYzQ0ZDAxOTJjNDRkMDE5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVmNThlZTE2NTJmNTRkNzUuMzVlMDc2Y2FmZmMwMDAwMAorICAgIGUwOTFkNTZkNTg0NDEzN2MuY2Q0ZDA1ZDhmZjVhM2VhOC4zN2IxZjNmNTMyNWU4ZDQ1LmRiYjgxZDk1ZjQ0ZmFjYjAKICAgICA1M2Y5OWE0YTRkYTU5OWRhLjFlZGJmMmUzZGM2N2FiMjIuOWJkYjU4ZTU1MGMwYjRhNy45MDFiMTIwOTM1NTdhYjJjCiAgICAgNTJhODM2ODYxNTBjZDVjZgogCi1WTU9WU0hEVVBfMjU2KHJlZykKK1ZTUVJUUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgN2ZhYzg2NzcyZmZhNjc0Ni5jODM0M2I3MDg1Y2MyNzkwLmVhZmE0ZDZkZTUyN2EyZGEuZDNiMzljZTk2MzIzYzc4YgogICAgIDcyNzNmZDRiMWZhZTlkM2QuMWQwZjM1Y2QxZWM1N2FjYS44ZWY2MTFlMmI2Mjc1ZTdiLmJkMDUzOWVkODg5MjgwMWUKQEAgLTI3MzA0LDExICsyNzMwNCwxMSBAQAogICAgIDM3Y2QwODMyNzdhMGVjYTUKICAgYWZ0ZXIKICAgICA3ZmFjODY3NzJmZmE2NzQ2LmM4MzQzYjcwODVjYzI3OTAuZWFmYTRkNmRlNTI3YTJkYS5kM2IzOWNlOTYzMjNjNzhiCi0gICAgNzI3M2ZkNGIxZmFlOWQzZC4xZDBmMzVjZDFlYzU3YWNhLjhlZjYxMWUyYjYyNzVlN2IuYmQwNTM5ZWQ4ODkyODAxZQotICAgIDE5Nzk1MDQ0MTk3OTUwNDQuZDNkNTIwZDlkM2Q1MjBkOS5jZWI1YzQzZGNlYjVjNDNkLjEzNDY3NGE2MTM0Njc0YTYKKyAgICBmZmMwMDAwMGZmYzAwMDAwLjM1ZWExMTFlMzg4ZGU2MmIuNTJjNzU4N2JmZmMwMDAwMC4zOThkOWQ4ZGZmYzAwMDAwCisgICAgODY0OTk3NmI4MmI0YjI1Zi4yYzU2MDM0YzMxOWQ0ZWI1LjY2MWIzYWFlZWNmMjFjYjIuMzM5Y2FkZGRkYTE5OWM4YgogICAgIDE5Nzk1MDQ0ZjM5NmUzNTkuZDNkNTIwZDlkYzVmNWY3ZC5jZWI1YzQzZDIzMTQxODJhLjEzNDY3NGE2NzZjNGQ3ZmYKICAgICAzN2NkMDgzMjc3YTBlY2E1Ci1WTU9WU0hEVVBfMjU2KG1lbSkKK1ZTUVJUUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgN2RmZWU3NmZmYWI4OTlhYS44NTUxMjU0MjBmZTI2Y2Q2LmVjNTcwYjYwM2IxODY4NGQuMjIwZmFiZmNmNjFhOGQ5MAogICAgIGJmYTU4YzQ3MWExOTk3M2EuMjgxYjExZDI3MTIzODk4My41NWFhM2RjZDY5ZDMyNjUyLmJlNzdlYzU1MDE4ZmI4OTAKQEAgLTI3MzE3LDEyICsyNzMxNywxMiBAQAogICAgIGRhZjI5ZDNjOGYwM2Q0ZTAKICAgYWZ0ZXIKICAgICA3ZGZlZTc2ZmZhYjg5OWFhLjg1NTEyNTQyMGZlMjZjZDYuZWM1NzBiNjAzYjE4Njg0ZC4yMjBmYWJmY2Y2MWE4ZDkwCi0gICAgYmZhNThjNDcxYTE5OTczYS4yODFiMTFkMjcxMjM4OTgzLjU1YWEzZGNkNjlkMzI2NTIuYmU3N2VjNTUwMThmYjg5MAotICAgIDdkZmVlNzZmN2RmZWU3NmYuODU1MTI1NDI4NTUxMjU0Mi5lYzU3MGI2MGVjNTcwYjYwLjIyMGZhYmZjMjIwZmFiZmMKKyAgICA1ZWI0YTFhNmZmYzAwMDAwLmZmYzAwMDAwMjdhYTNlMDMuZmZjMDAwMDAzZDQ1ODY4My4zMGJmYzdmNWZmYzAwMDAwCisgICAgZGE4ZDczYThmNGNkYTU4MC41YzI0MTA1ZWI2ZTY3NTBiLmU4OTgzMzBjODI5YzU1YjguZmUzNzgyYjZlMTAwZDVkNQogICAgIGFiODQxODdkYTNlMzdkYTkuN2ZiODFlNTQ3OWI2NmQxYi44MmVlNmEwOWEzN2ZiMGFhLjNlOWM2OTg5MzJmNzIwMGMKICAgICBkYWYyOWQzYzhmMDNkNGUwCiAKLVZNT1ZTSERVUF8yNTYocmVnKQorVlNRUlRQU18yNTYocmVnKQogICBiZWZvcmUKICAgICAyZTg1MWIzYTk0YWQyZWZlLjBjNTRmOGIxNDQ2NGRjZTEuZWIyMzM3MWY1NzFmYWQ1Zi4wMDc4NWRiMGU4ODlmNDU0CiAgICAgOTZhMGRlZWVkZTgzNmExMi5kYWNiOGUzMmYyNWU3ZTUzLmZlYjE1ODJhZWJhZTcwODIuM2MwMjg4ZWU2YmM1ZGRlMwpAQCAtMjczMzEsMTEgKzI3MzMxLDExIEBACiAgICAgMDI5NjMzNjI4YzIwY2NhNQogICBhZnRlcgogICAgIDJlODUxYjNhOTRhZDJlZmUuMGM1NGY4YjE0NDY0ZGNlMS5lYjIzMzcxZjU3MWZhZDVmLjAwNzg1ZGIwZTg4OWY0NTQKLSAgICA5NmEwZGVlZWRlODM2YTEyLmRhY2I4ZTMyZjI1ZTdlNTMuZmViMTU4MmFlYmFlNzA4Mi4zYzAyODhlZTZiYzVkZGUzCi0gICAgMTJhMjIzMmQxMmEyMjMyZC4yZWQ5Y2NjOTJlZDljY2M5Ljg0NjQ5ZmI1ODQ2NDlmYjUuNjE0NTc3ZGI2MTQ1NzdkYgorICAgIDU3MDhhNjE2MjNjMDgzMDMuZmZjMDAwMDBmZmMwMDAwMC4yOTE1MDRhZGZmYzAwMDAwLjI5NmI1ZjljNDU1ZGNhYTYKKyAgICA2ZTkxZTFjNjA4MTBjNGM3LmYyYjM1NmViYzlkYzFmMmIuMTJhZDdjZTNkMWVlZjQzMS4xMzU4NjhhZDRiNDAyNzgzCiAgICAgMTJhMjIzMmRhZmUwNzdjYS4yZWQ5Y2NjOWU2ZWI3YTk2Ljg0NjQ5ZmI1YTY2YjcyMTguNjE0NTc3ZGJhMjA1OGQ2MAogICAgIDAyOTYzMzYyOGMyMGNjYTUKLVZNT1ZTSERVUF8yNTYobWVtKQorVlNRUlRQU18yNTYobWVtKQogICBiZWZvcmUKICAgICBkMzE4MTczMDI2OWRhMDdlLmRkMjA5ZDkwNmU4MGMwYzYuNmIwODZkYjY2NTk2NGNjMC5iMTIzYmQwYzA2YjIyOWUyCiAgICAgYWU5NWEwMzA4Yjg5YzQxOS4yZDU3NGQ1OWUyN2JkYjY4Ljg1MGViMzlmNjFlOTUwZDUuZjMzNGQyNTU4YzRlNTMzYgpAQCAtMjczNDQsMTIgKzI3MzQ0LDEyIEBACiAgICAgZDY1MGI2MGMxZDlhZTE1ZQogICBhZnRlcgogICAgIGQzMTgxNzMwMjY5ZGEwN2UuZGQyMDlkOTA2ZTgwYzBjNi42YjA4NmRiNjY1OTY0Y2MwLmIxMjNiZDBjMDZiMjI5ZTIKLSAgICBhZTk1YTAzMDhiODljNDE5LjJkNTc0ZDU5ZTI3YmRiNjguODUwZWIzOWY2MWU5NTBkNS5mMzM0ZDI1NThjNGU1MzNiCi0gICAgZDMxODE3MzBkMzE4MTczMC5kZDIwOWQ5MGRkMjA5ZDkwLjZiMDg2ZGI2NmIwODZkYjYuYjEyM2JkMGNiMTIzYmQwYworICAgIGZmYzAwMDAwMzMwZTBiMDkuZmZjMDAwMDA1NzAwNjAzZi41NTNhZTI1YzUyOGFiM2Q1LmZmYzAwMDAwMjMxNzAzNTcKKyAgICA3MGRhNDg0ZWQ3ZWZmNjlmLjVkOTMyZGY1YTY1ZTAzNWIuNThiNTFjNzFmNmYwNDQwMC5hN2UzZGJmYWQ0Y2IyZGQxCiAgICAgZjViMjhkNzYyOGRjZWYzZi5jODFmM2NkMTU3YjQ3NTRjLmMwY2IyMzE2NDFiOGUyNmQuMjk3ZWQzNjg3YmI2ZjM0ZAogICAgIGQ2NTBiNjBjMWQ5YWUxNWUKIAotVk1PVlNIRFVQXzI1NihyZWcpCitWU1FSVFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDA4YTQ4MTUwNTUwMzMyYWUuMTllYmVhOTQ5NzViNmUyMy5jYzQ5NzM1NzkwMDk2ZGU3Ljk5MWE0NTdjNWU0Y2U2NDkKICAgICAxY2M3MmVhMmJmN2UyM2VhLmI4NGZkYjk1NDI3ODJkNzcuYzQ1YmNmZjVlZWVhMjdkNy5iZjZmZmM4ZDY4YjkwZWMwCkBAIC0yNzM1OCwxMSArMjczNTgsMTEgQEAKICAgICA5Nzg5ODAwMzJlODlhZDdjCiAgIGFmdGVyCiAgICAgMDhhNDgxNTA1NTAzMzJhZS4xOWViZWE5NDk3NWI2ZTIzLmNjNDk3MzU3OTAwOTZkZTcuOTkxYTQ1N2M1ZTRjZTY0OQotICAgIDFjYzcyZWEyYmY3ZTIzZWEuYjg0ZmRiOTU0Mjc4MmQ3Ny5jNDViY2ZmNWVlZWEyN2Q3LmJmNmZmYzhkNjhiOTBlYzAKLSAgICA1YWFhMjMxYzVhYWEyMzFjLmQ3Y2M2YWViZDdjYzZhZWIuZmY2YWU4MjVmZjZhZTgyNS42MjVhMWU2NTYyNWExZTY1CisgICAgNTZiOTA3MzdmZmMwMDAwMC5mZmMwMDAwMDQyNWUzYjA0LjI1OTAyMjNlMjYyYTY4ZDQuMjcwYWViZDY1ZDNjMDM2NgorICAgIDZlMDViYjZkZjg5NmVmYmQuYWVhY2RjNjM0NTQwZWE2OS4wYmEyNGQxNTBjZTJkZWM5LjBlOTZjNjM3N2IwYTE0ZmUKICAgICA1YWFhMjMxYzliZDdkNGQ0LmQ3Y2M2YWViYmJiZTVlMjIuZmY2YWU4MjU4NjdkY2Y2OS42MjVhMWU2NWI0NGJiNTJlCiAgICAgOTc4OTgwMDMyZTg5YWQ3YwotVk1PVlNIRFVQXzI1NihtZW0pCitWU1FSVFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDg5ZWQ2OWZkMDZjZmI3MTUuM2MwMjYyMWQ0NWNlMGNkYS4wZjdjMDAxYWMwZmU0OGQxLmZhZmY5YzkwZjk0NzM2NjIKICAgICAxNDUzNTMzZjU3Mjk5MDI1LjcwNTk3NWRiOTEwNmQ0N2MuMzE4NzFhZGI3MTBkNjJhMC41YWFkNjVjMjAxY2Q0ZTYxCkBAIC0yNzM3MSwxMiArMjczNzEsMTIgQEAKICAgICA2ODQzMTkzYWFhM2IxYTM2CiAgIGFmdGVyCiAgICAgODllZDY5ZmQwNmNmYjcxNS4zYzAyNjIxZDQ1Y2UwY2RhLjBmN2MwMDFhYzBmZTQ4ZDEuZmFmZjljOTBmOTQ3MzY2MgotICAgIDE0NTM1MzNmNTcyOTkwMjUuNzA1OTc1ZGI5MTA2ZDQ3Yy4zMTg3MWFkYjcxMGQ2MmEwLjVhYWQ2NWMyMDFjZDRlNjEKLSAgICA4OWVkNjlmZDg5ZWQ2OWZkLjNjMDI2MjFkM2MwMjYyMWQuMGY3YzAwMWEwZjdjMDAxYS5mYWZmOWM5MGZhZmY5YzkwCisgICAgZmZjMDAwMDAyMzIzMGU4Zi4zZGI2YjI2MDQyYTI2NmVkLjI3N2RmZTA5ZmZjMDAwMDAuZmZjMDAwMDBmZmMwMDAwMAorICAgIDE0ODdiY2I2M2RhNGY0ZDcuNTJmYTU3YzMxYzBjNjc2NS4xYmJiMzQxOWVhZjY2OWJiLjc5YmY0MDI3Mzk5YjU0MTEKICAgICA2NDU1MWY0Y2Q2NGI5ZjU4LjNlMzMwMzNmODE2YjAyNDMuYThlMmNiYzI0NmM1MTk0Zi5iNTgzMjgyYjNkM2I4NDFmCiAgICAgNjg0MzE5M2FhYTNiMWEzNgogCi1WUEVSTUlMUFNfVkFSXzEyOChyZWcpCitWU1FSVFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGYwNGMwZmMxMWIyNzUxMDMuZTI4OWY5ZWUzYjJhNGNkNC45MDRlNzhiYzVjYWZlMWJmLmI0Y2E1OWMxYTE4NzJkODgKICAgICBhN2VhMDcyYTJkODk2NjMyLjY5ZWZjNDg5OGE0ZWI4NzYuYTM5OGFmYTY0YTY0NDA4OC4xYjNkNWMwMjE4NDc2MjkxCkBAIC0yNzM4NCwxMiArMjczODQsMTIgQEAKICAgICAxNTE0ZTk1NmEyZTUxOTY0LjAxN2YyMjU2NTU5MmJjZGUuODFlODU3NzNjZTUzNmNhYi42OWY3YWZmYWM4ZjIxZmM2CiAgICAgMDlkNWY2OGEzOWY1MWU0OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YTY0NDA4ODE4NDc2MjkxLjFiM2Q1YzAyYTM5OGFmYTYKLSAgICBhN2VhMDcyYTJkODk2NjMyLjY5ZWZjNDg5OGE0ZWI4NzYuYTM5OGFmYTY0YTY0NDA4OC4xYjNkNWMwMjE4NDc2MjkxCisgICAgZjA0YzBmYzExYjI3NTEwMy5lMjg5ZjllZTNiMmE0Y2Q0LjkwNGU3OGJjNWNhZmUxYmYuYjRjYTU5YzFhMTg3MmQ4OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmY4MDAwMDAwMDAwMDAwLmZmZjgwMDAwMDAwMDAwMDAKICAgICBlYTY5ZmJlMzdiZWY5NTZlLmQ0NTJmZTA4ZGZjMjllNmIuZDU1ZGE1NmFlNzE3NWE0OC5iODA4NGY3MWM2MTE3NDk3CiAgICAgMTUxNGU5NTZhMmU1MTk2NC4wMTdmMjI1NjU1OTJiY2RlLjgxZTg1NzczY2U1MzZjYWIuNjlmN2FmZmFjOGYyMWZjNgogICAgIDA5ZDVmNjhhMzlmNTFlNDkKLVZQRVJNSUxQU19WQVJfMTI4KG1lbSkKK1ZTUVJUUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNzM3MGEyMGIzNjI2MmU0ZC44NTM5Y2NmMTNkZjUyZmMwLmNiNDJhYzYxMDhjYmNjZmMuMDM4N2MwMmM5YmE1YjI1ZQogICAgIDg1OTIyZTZhZGE5MjBiZmQuOTQyMmExMWZlOWFkMTMyZC4wZDY3MTgxNDE1Nzg4YmYxLmI3ODRkYzAzZWI5ODY4MGQKQEAgLTI3Mzk4LDEyICsyNzM5OCwxMiBAQAogICAgIDk2YWQzYzZlMDJiMDdmYjcKICAgYWZ0ZXIKICAgICA3MzcwYTIwYjM2MjYyZTRkLjg1MzljY2YxM2RmNTJmYzAuY2I0MmFjNjEwOGNiY2NmYy4wMzg3YzAyYzliYTViMjVlCi0gICAgODU5MjJlNmFkYTkyMGJmZC45NDIyYTExZmU5YWQxMzJkLjBkNjcxODE0MTU3ODhiZjEuYjc4NGRjMDNlYjk4NjgwZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNzg0ZGMwM2ViOTg2ODBkLmViOTg2ODBkMTU3ODhiZjEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmODAwMDAwMDAwMDAwMC4yMWJiOTE4OGJhM2M0OWVmCisgICAgMTkwOTE2OTQ0MjQ0NzA4Ni45ZjFjNjI0YzQxOTkwMTU3LmE1YmFlMzViOThhNmI0ZTguZjgyY2E4NjM1YWI4Yzk2MwogICAgIDBkOWZkNzc0ODk0OTFhMTMuMDI3MzBkZTRlMjQzMzRlYi42ZDA3ODgyMmFjNWYwNTBkLjI0Y2IxZmI4ODM5MTEyMGQKICAgICA5NmFkM2M2ZTAyYjA3ZmI3CiAKLVZQRVJNSUxQU19WQVJfMTI4KHJlZykKK1ZTUVJUUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYTkxZWZlZjE3NGEwNGIwYy4zYjIxZWJmNWNiYWJjNWQxLjE5NzM5ZDUzNjczOWU5OTUuNDMxOTgzNTU2ZGIxMzg4ZQogICAgIGJiNmE1ZWFkNzRlZWIzYjkuODE1YWQwMDUyNTc4MmRlYy40MDY4MGUwNTZjMDc1YzAxLjAxYmU1MGUxZjhhODA5OTQKQEAgLTI3NDExLDEyICsyNzQxMSwxMiBAQAogICAgIDQ4YzFlYzgxOTBkMTQ3YzkuYzEyNWZiN2Y5MDgyMjJlNy4yZjYwODRlMzY5NTg2YmNjLmE5ZWM1MWIwZGFiMjc5ZTYKICAgICA0YjBlN2RjYjY5ZGQ4Zjg5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQwNjgwZTA1NmMwNzVjMDEuZjhhODA5OTQ2YzA3NWMwMQotICAgIGJiNmE1ZWFkNzRlZWIzYjkuODE1YWQwMDUyNTc4MmRlYy40MDY4MGUwNTZjMDc1YzAxLjAxYmU1MGUxZjhhODA5OTQKKyAgICBhOTFlZmVmMTc0YTA0YjBjLjNiMjFlYmY1Y2JhYmM1ZDEuMTk3MzlkNTM2NzM5ZTk5NS40MzE5ODM1NTZkYjEzODhlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZjgwMDAwMDAwMDAwMDAuZmZmODAwMDAwMDAwMDAwMAogICAgIDI2ZGM1OTBmOWYyNWYzNjkuYjkxODAxOGZiM2JjMGQ4Zi5kNDlkNWM2NzhlMzhjOGRhLjg1YzA2Y2IwNjg0ZjM2NGUKICAgICA0OGMxZWM4MTkwZDE0N2M5LmMxMjVmYjdmOTA4MjIyZTcuMmY2MDg0ZTM2OTU4NmJjYy5hOWVjNTFiMGRhYjI3OWU2CiAgICAgNGIwZTdkY2I2OWRkOGY4OQotVlBFUk1JTFBTX1ZBUl8xMjgobWVtKQorVlNRUlRQRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA0NWYxNmJlZjMyZGQzMzYyLjdiNjUxMjcxZTQ3ZmVhODQuNzM0ZjM4YzFkOGQ2MjgyMC5hZWZiODFlNjk4ZjM3Zjg0CiAgICAgNzQ2Mzk4MDc1MGJkMjM5ZS4xZDE0Yzc0OTM2YmExOTQ3LmFjNjAzNjQyYThjNGRhNjUuYWRiYjRmZGRiNzk2NDBhZQpAQCAtMjc0MjUsMTIgKzI3NDI1LDEyIEBACiAgICAgNDFkMDc5YWJkMDIyZWY4ZAogICBhZnRlcgogICAgIDQ1ZjE2YmVmMzJkZDMzNjIuN2I2NTEyNzFlNDdmZWE4NC43MzRmMzhjMWQ4ZDYyODIwLmFlZmI4MWU2OThmMzdmODQKLSAgICA3NDYzOTgwNzUwYmQyMzllLjFkMTRjNzQ5MzZiYTE5NDcuYWM2MDM2NDJhOGM0ZGE2NS5hZGJiNGZkZGI3OTY0MGFlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFkYmI0ZmRkYjc5NjQwYWUuYThjNGRhNjViNzk2NDBhZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OTlmOWJjM2YwODI0ZTM1LmZmZjgwMDAwMDAwMDAwMDAKKyAgICBiNTJlN2VmZmRmOGExOTY4Ljg4MWEwODc3MjMwZTEwYmUuNDkyNTcwZWMxYzU5ZjVlMi44N2VjZWEzMzYzY2NlY2Y2CiAgICAgZTIyMDliYzJmZDRmZDJlZC4xYWMzY2Y2NjQ2MDgwYTk0LjI0NmE2MmFjNGZhMDM1YzUuOWFkOTRmNTMzODIxYmQwNwogICAgIDQxZDA3OWFiZDAyMmVmOGQKIAotVlBFUk1JTFBTX1ZBUl8xMjgocmVnKQorVlNRUlRQRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBkODFiNjRhNmNhNWFjMDM1LmQ4MDM2YTNmYzMxODA5NTkuMmQ1YTFhODIzYjMzNDQ3Ni4xYWZhODk2ZjVkYTY1NjM4CiAgICAgYmIwODBjYjBjMDU2NmFhYi43M2E0Njc1ZjRmZjE3YmQ3LjFlMmRlNDM3OWYxYmZhMTAuMDdhMzVmMWY2Mzc2MTM2NwpAQCAtMjc0MzgsMTIgKzI3NDM4LDEyIEBACiAgICAgZDRmMzg0YTIxMGM3M2NhZi4wOTRmZGQzYjI4MDUwMGJiLjBiYjJlNjFjMjM1NGM5MTkuMzc2YjBkZmJjNWE0NTRhYwogICAgIDMxMjNkZGZlNTkxYjRmMTkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDdhMzVmMWYwN2EzNWYxZi45ZjFiZmExMDFlMmRlNDM3Ci0gICAgYmIwODBjYjBjMDU2NmFhYi43M2E0Njc1ZjRmZjE3YmQ3LjFlMmRlNDM3OWYxYmZhMTAuMDdhMzVmMWY2Mzc2MTM2NworICAgIGQ4MWI2NGE2Y2E1YWMwMzUuZDgwMzZhM2ZjMzE4MDk1OS4yZDVhMWE4MjNiMzM0NDc2LjFhZmE4OTZmNWRhNjU2MzgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDRiYWEyNGIwZDVjNWVkYy5mZmY4MDAwMDAwMDAwMDAwCiAgICAgNDZlMTZkMzU0ZWExMmE5YS44ZmNlMGYwZmJkZTdlNDk0LjQ5ODYyYWYxMGU0ZDY4MGQuYzcyZjYyYWE3YzFjMjk3ZgogICAgIGQ0ZjM4NGEyMTBjNzNjYWYuMDk0ZmRkM2IyODA1MDBiYi4wYmIyZTYxYzIzNTRjOTE5LjM3NmIwZGZiYzVhNDU0YWMKICAgICAzMTIzZGRmZTU5MWI0ZjE5Ci1WUEVSTUlMUFNfVkFSXzEyOChtZW0pCitWU1FSVFBEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDkyMjM0YzlmNTU4ZGQ4ZjMuYzM4OTRjNjFhNDU0ZGI5Ni5iYmYxNGRkMGFjNTg4YTc5LmJlZmQxNjI0N2FiYzVhZTIKICAgICAzNjM3ZDhjYWQ0MDRhODY1LjZlZjFjMWRmYTNkNTQ0ZmEuODI4MmRiYjg2NmViM2ZmYS5iZmIyYjU3NmIwMTI1NzExCkBAIC0yNzQ1MiwxMiArMjc0NTIsMTIgQEAKICAgICAyZjRkMDU1OGExMWIyYmM2CiAgIGFmdGVyCiAgICAgOTIyMzRjOWY1NThkZDhmMy5jMzg5NGM2MWE0NTRkYjk2LmJiZjE0ZGQwYWM1ODhhNzkuYmVmZDE2MjQ3YWJjNWFlMgotICAgIDM2MzdkOGNhZDQwNGE4NjUuNmVmMWMxZGZhM2Q1NDRmYS44MjgyZGJiODY2ZWIzZmZhLmJmYjJiNTc2YjAxMjU3MTEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjAxMjU3MTFiZmIyYjU3Ni5iMDEyNTcxMTY2ZWIzZmZhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZjgwMDAwMDAwMDAwMDAuZmZmODAwMDAwMDAwMDAwMAorICAgIGY5MmFmYzZiZjI4ZTdlOWMuMzA3NmRmODlhYmQ2YjM4OC4zYWNjMDNlMTcxY2FkYjY5LjZhMWZiZjdjNjFlMWZiNTUKICAgICBiN2NhMzQ2ZWNjMzYxNGM0LjY3NjNhMmM5NThlMTY0ZWIuYmY5YzQyMzZlYTAyMTlmMy4xYjhlMzBhNDI3YjU4NDU4CiAgICAgMmY0ZDA1NThhMTFiMmJjNgogCi1WUEVSTUlMUERfVkFSXzEyOChyZWcpCitWU1FSVFBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDAwYTYzOTA2Njk5ZTJmNGQuNGNlMWZjYmY3ZTA5MjgwOC42ZTA1MDcwZDQ1ODQ5MmQwLmVkYmUxMmEyZWQ5ZWI3YzMKICAgICBlYmU2YzgxOTFiY2FjYTk2Ljk0M2NkMTRiMjMxMjczOTUuYTBhODA5YzAwZjRhN2FlMi5hMGZkZjExMzk0YWE2ZjA2CkBAIC0yNzQ2NSwxMiArMjc0NjUsMTIgQEAKICAgICA3ZjRhZTcxZWFmNGZiODI1LmFjZWU4ZmMwYjdmN2E1MzguZjkyMWQ1MjNhNzcxNjc0MC4wNDA2Y2FiMTQ0NDQxZjk0CiAgICAgNmU2N2JjYjY4NGU5OGYzNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMGE4MDljMDBmNGE3YWUyLmEwZmRmMTEzOTRhYTZmMDYKLSAgICBlYmU2YzgxOTFiY2FjYTk2Ljk0M2NkMTRiMjMxMjczOTUuYTBhODA5YzAwZjRhN2FlMi5hMGZkZjExMzk0YWE2ZjA2CisgICAgMDBhNjM5MDY2OTllMmY0ZC40Y2UxZmNiZjdlMDkyODA4LjZlMDUwNzBkNDU4NDkyZDAuZWRiZTEyYTJlZDllYjdjMworICAgIDQ2MjNkZjdlMWQwMGJiNTUuNTVjYjNjYzMzY2M4YTU0OC40ZGMzZGIzMGE3NDczOTdkLmZmZjgwMDAwMDAwMDAwMDAKICAgICA0YzU4YWVmZDU0MmMzYTUwLjZiYTcyZWZjZDc1ZGI0OTYuNWI5OGE0NGU1MWMwNThjZS5iNDI3NWI3NGZlMzNmZGU4CiAgICAgN2Y0YWU3MWVhZjRmYjgyNS5hY2VlOGZjMGI3ZjdhNTM4LmY5MjFkNTIzYTc3MTY3NDAuMDQwNmNhYjE0NDQ0MWY5NAogICAgIDZlNjdiY2I2ODRlOThmMzcKLVZQRVJNSUxQRF9WQVJfMTI4KG1lbSkKK1ZTUVJUUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgY2QxNmFiNzBkYTJmMGFmYy5lMDA3NzBlOGM4YzA4M2MxLjM1ZGM3MDgyZGZlYjAzYTYuZDg4ZTk2YWJhZWU5ZTRlMwogICAgIGZkZGYxNmM5NjEyMTRiMTAuY2JkYTQ0YzczZDA5ZDVkMi5lMTNmNGQyZTZhNDU4YTBlLjUyMmRlNTUyMDFiNTBiNjQKQEAgLTI3NDc5LDEyICsyNzQ3OSwxMiBAQAogICAgIDAxMjVmOTNhZGU4NGQyZDAKICAgYWZ0ZXIKICAgICBjZDE2YWI3MGRhMmYwYWZjLmUwMDc3MGU4YzhjMDgzYzEuMzVkYzcwODJkZmViMDNhNi5kODhlOTZhYmFlZTllNGUzCi0gICAgZmRkZjE2Yzk2MTIxNGIxMC5jYmRhNDRjNzNkMDlkNWQyLmUxM2Y0ZDJlNmE0NThhMGUuNTIyZGU1NTIwMWI1MGI2NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lMTNmNGQyZTZhNDU4YTBlLmUxM2Y0ZDJlNmE0NThhMGUKKyAgICBmZmY4MDAwMDAwMDAwMDAwLmZmZjgwMDAwMDAwMDAwMDAuM2FlNTU0ZGJiZDQ4NDU4MS5mZmY4MDAwMDAwMDAwMDAwCisgICAgZGE4ZTc2YWYzNmNiMGY5Zi45YjEwNWYyN2E3YjllYjAxLjhjZTFhM2IwNzQxMmY1OTkuYzQ0OGJkODQzZDYwMTg2ZgogICAgIDNmZWY0ODBjNzQzYTEyZDQuYWVmNWJlNzVhNDU5MDFmZC4xMjhmZWRmNDFhNWQwMTc2LjhiMmMxYWFlZmU3NjQ2YWYKICAgICAwMTI1ZjkzYWRlODRkMmQwCiAKLVZQRVJNSUxQRF9WQVJfMTI4KHJlZykKK1ZTUVJUUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgODQ3ZjU0OTY3YzE1Zjg4MC4wYWNkMDljZTM3NzkxMGRiLjVmZDU1YjFiZDA3NzUyNzAuNGUxNWE3ZTY3NzMyNmFjZgogICAgIDZlODUyOTJjNzFiNWYzNjkuMTZmNTM0ZGY5Yzk0YzRlMi4wYWZiMzQ4N2M2OWUxYjA2LjFlM2Y0ZTcyYTg5ZWVjZDAKQEAgLTI3NDkyLDEyICsyNzQ5MiwxMiBAQAogICAgIGVhYzkyZmJiZDY1NDViOTcuNjA1M2I5YTNiYjkwNDE5YS5iZDRkODc1ZDgxMzgwNDRlLmU2YWU0ZjA4ZjQ2ODI5N2QKICAgICA5NzhjYTJlYjQ3ZGY1ZDgwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFlM2Y0ZTcyYTg5ZWVjZDAuMGFmYjM0ODdjNjllMWIwNgotICAgIDZlODUyOTJjNzFiNWYzNjkuMTZmNTM0ZGY5Yzk0YzRlMi4wYWZiMzQ4N2M2OWUxYjA2LjFlM2Y0ZTcyYTg5ZWVjZDAKKyAgICA4NDdmNTQ5NjdjMTVmODgwLjBhY2QwOWNlMzc3OTEwZGIuNWZkNTViMWJkMDc3NTI3MC40ZTE1YTdlNjc3MzI2YWNmCisgICAgMmUzYTMzMjJkYzFiZjUzNC4zZjExOGYyNDRlNDM5MDUzLjI1ZDI3MjMzZmU5MTU5ZmQuNGVlNDI0ZGZlYjg0NDUyNQogICAgIDFjODU3MzZhNWNmMTAxMzcuM2UzMzQ1MmRiZjk4ZWMxMy4wYmI1NDQyNDIyNWI5ODZjLjVkZDk1Yzg0YzhhYzQyYTYKICAgICBlYWM5MmZiYmQ2NTQ1Yjk3LjYwNTNiOWEzYmI5MDQxOWEuYmQ0ZDg3NWQ4MTM4MDQ0ZS5lNmFlNGYwOGY0NjgyOTdkCiAgICAgOTc4Y2EyZWI0N2RmNWQ4MAotVlBFUk1JTFBEX1ZBUl8xMjgobWVtKQorVlNRUlRQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICA0YTNkZDExOGRlMWM5OWRjLjM0OWU1NzhiN2U2YTQwMzUuNTYyMTBhMmRhYzg4ODJhNC43ZTExZmFhMDdmYzQ5ZDU3CiAgICAgZGQ4ZTU5N2FkNDJjOWFiZC41NzUwZTk0NmVkYzBlYWJjLmZlNjliNmI3YWY4ZDY5NWQuYTk0Yjk3NThiNzg4OWQzNApAQCAtMjc1MDYsMTIgKzI3NTA2LDEyIEBACiAgICAgM2RiYTRiNzdkNWE2NjM3OQogICBhZnRlcgogICAgIDRhM2RkMTE4ZGUxYzk5ZGMuMzQ5ZTU3OGI3ZTZhNDAzNS41NjIxMGEyZGFjODg4MmE0LjdlMTFmYWEwN2ZjNDlkNTcKLSAgICBkZDhlNTk3YWQ0MmM5YWJkLjU3NTBlOTQ2ZWRjMGVhYmMuZmU2OWI2YjdhZjhkNjk1ZC5hOTRiOTc1OGI3ODg5ZDM0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE5NGI5NzU4Yjc4ODlkMzQuZmU2OWI2YjdhZjhkNjk1ZAorICAgIDQ1MTVkNzg2YjhjNjQwZjIuM2E0NjA4OGUyNzA3NWU3MC40YjA3NTlkZjdjYjhmYjczLjVmMDBmNWVlMzE5ZDhmYWYKKyAgICAyYTRiYjRmZjQ2MTkxYzRlLmFkMmJlMDU4YzFlMTk2ZDkuMzNmNjM4MmVlMGFhYjNmMC45OTQ4NWNmMWM1MTI0MDkxCiAgICAgMGY0MDYwOTI0ZmYyZGJiYi45MzdhMzgyZDk2NTk4MDM3LmQwOTYwYzdjNTllYjFjOGEuYWM1MzQ0ZDc0NmVkYzQxOQogICAgIDNkYmE0Yjc3ZDVhNjYzNzkKIAotVlBFUk1JTFBEX1ZBUl8xMjgocmVnKQorVlNRUlRQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBhN2M3NmUzYjBmYzg1YTVjLjY2MzhkODFmMGJjMDkyMzIuNjU4YmVlMzEwN2I1ZTQ4My5iMjEzYWY4ZTM5NWQ1ZjU3CiAgICAgNDhjOGE4OTA4ZmRmZTQ2Zi4wZDAxOTk5Mjk3OTFmZWRjLjdmYThmY2QxYjA4MGZkNjkuYjYzYTljNTE5OTBiM2E4MgpAQCAtMjc1MTksMTIgKzI3NTE5LDEyIEBACiAgICAgOWJkMTUxOWZkMzFlYTVkMy5iNjMxZTJkYThkNjllNDgwLmZiM2ExNTkxMWQ5NDQwYjEuOTBiNTQ0OTY0ZjRkYTJhNAogICAgIDFlYTJmN2YxZGNmOGE4ZjMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjYzYTljNTE5OTBiM2E4Mi43ZmE4ZmNkMWIwODBmZDY5Ci0gICAgNDhjOGE4OTA4ZmRmZTQ2Zi4wZDAxOTk5Mjk3OTFmZWRjLjdmYThmY2QxYjA4MGZkNjkuYjYzYTljNTE5OTBiM2E4MgorICAgIGE3Yzc2ZTNiMGZjODVhNWMuNjYzOGQ4MWYwYmMwOTIzMi42NThiZWUzMTA3YjVlNDgzLmIyMTNhZjhlMzk1ZDVmNTcKKyAgICA1Y2ZiYjBhNDE0NTRlOGQ2LmZmZjgwMDAwMDAwMDAwMDAuM2U4NjY3ZWZmZjVjN2MwMC5mZmY4MDAwMDAwMDAwMDAwCiAgICAgN2EwN2Y1ZTNmMjc4M2Y1ZC5kZTY1MWRkNzBmNzBkYmU4LjNkMWY2MDc3MmU0NjA4OTQuYjZkNzRmYWY5ODAyNjYzNwogICAgIDliZDE1MTlmZDMxZWE1ZDMuYjYzMWUyZGE4ZDY5ZTQ4MC5mYjNhMTU5MTFkOTQ0MGIxLjkwYjU0NDk2NGY0ZGEyYTQKICAgICAxZWEyZjdmMWRjZjhhOGYzCi1WUEVSTUlMUERfVkFSXzEyOChtZW0pCitWU1FSVFBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDNkNjhlNWFjNWIwZjM1NTAuMDU3MWI4MmZjZjVkNTI3ZC43MjMxNjM4NzMwODlkNmQxLjE1NDUxODg5MThmNWUzNmIKICAgICBjOWQ1ODliM2U3OWYwNWU4LjE1MzUyNzAxODFjMjg0MDYuZWMzMTFjY2IxMmRiNmQwNi5lNzhlNjNjZGJiZjYyYjZmCkBAIC0yNzUzMywxMiArMjc1MzMsMTIgQEAKICAgICA0NGNkZDU5M2IwMmIzZGVjCiAgIGFmdGVyCiAgICAgM2Q2OGU1YWM1YjBmMzU1MC4wNTcxYjgyZmNmNWQ1MjdkLjcyMzE2Mzg3MzA4OWQ2ZDEuMTU0NTE4ODkxOGY1ZTM2YgotICAgIGM5ZDU4OWIzZTc5ZjA1ZTguMTUzNTI3MDE4MWMyODQwNi5lYzMxMWNjYjEyZGI2ZDA2LmU3OGU2M2NkYmJmNjJiNmYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTc4ZTYzY2RiYmY2MmI2Zi5lYzMxMWNjYjEyZGI2ZDA2CisgICAgM2VhYzM5ZGQ4ZDk3NTkxZi4yMmIwZDY3YTYxMDhjZTZjLjU5MTBhZTEwYzFmZTc1OTMuMmE5OWZiNjdhNzY4ZTQ1YgorICAgIDlmYjM1ZmYyOWRiM2Q0ZTcuMjg2ODk5ODA4NWQ4NzUxYi4wMWZkOGE5MDRmNmM2NTRjLmNkNjBmNGM4YTMyMjU1NjkKICAgICA5OWNmZTM1NTk4NTg1ZDc4Ljk4NTUwYTE4NzgyYjYyNjguOGQ2MDI3YzQwNDQ3NzljZS4yMjA2YzZlNjZiMDU5YzA0CiAgICAgNDRjZGQ1OTNiMDJiM2RlYwogCi1WUEVSTUlMUFNfVkFSXzI1NihyZWcpCitWUlNRUlRTU18xMjgocmVnKQogICBiZWZvcmUKICAgICA4ZTAyMWQzYjBkMjE3NGNmLjk0ZjQ5MWM4ZjQ5OTVkYzguYzI0OTc2MzVmNjQ4ODc5OC42ZDI4NzE1MjRjNzg2NmI5CiAgICAgNWNlZTliNGExZjcyN2Q1Ny42Y2YwZTYzN2NlODI4ZjAyLjAzOTBkYTQzOWFiYTFmNTcuN2IxZmUzMjU0NDBjZTgzOQpAQCAtMjc1NDYsMTIgKzI3NTQ2LDEyIEBACiAgICAgZjMyMzI2NGVkMDU3ZjQwNy4yMzk5NzJiYTZiN2U3ZGU3LjM1NDc3NmUzYzVjZTliMzUuOTRjZDMwNGZiMjhhOWFhNgogICAgIDU3MWIwMzdkNjA4YzQxZWIKICAgYWZ0ZXIKLSAgICA2Y2YwZTYzN2NlODI4ZjAyLjVjZWU5YjRhNWNlZTliNGEuOWFiYTFmNTcwMzkwZGE0My4wMzkwZGE0MzdiMWZlMzI1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAzOTBkYTQzOWFiYTFmNTcuN2IxZmUzMjU1YmFiNzAwMAogICAgIDVjZWU5YjRhMWY3MjdkNTcuNmNmMGU2MzdjZTgyOGYwMi4wMzkwZGE0MzlhYmExZjU3LjdiMWZlMzI1NDQwY2U4MzkKICAgICAwOWUwNGEyZDgxYWI5NDMwLmZkOGQ1ZDhmNDIyMGIxNTMuYjU3NjMwYWUwMDBkNjc1My45NDEyZjkyYjA3MGViYTc5CiAgICAgZjMyMzI2NGVkMDU3ZjQwNy4yMzk5NzJiYTZiN2U3ZGU3LjM1NDc3NmUzYzVjZTliMzUuOTRjZDMwNGZiMjhhOWFhNgogICAgIDU3MWIwMzdkNjA4YzQxZWIKLVZQRVJNSUxQU19WQVJfMjU2KG1lbSkKK1ZSU1FSVFNTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGI5Y2FlZWExMmUyMTZlNzUuNzUwMjJiMWJhNzAyZDk4OC5iYWRlYTFhNjY1YThhZmU5LmRmNGVhODRjODU4OGY2YWMKICAgICA5NmE0NmRhODM3NTVkYjcwLmVhY2I1NmZlYTIzODgxNWUuOWUyOTY3M2U0ZGFhMDU4Ni4wZmQ5YzA1N2RhYzdiNTYyCkBAIC0yNzU2MSwxMSArMjc1NjEsMTEgQEAKICAgYWZ0ZXIKICAgICBiOWNhZWVhMTJlMjE2ZTc1Ljc1MDIyYjFiYTcwMmQ5ODguYmFkZWExYTY2NWE4YWZlOS5kZjRlYTg0Yzg1ODhmNmFjCiAgICAgOTZhNDZkYTgzNzU1ZGI3MC5lYWNiNTZmZWEyMzg4MTVlLjllMjk2NzNlNGRhYTA1ODYuMGZkOWMwNTdkYWM3YjU2MgotICAgIGVhY2I1NmZlZWFjYjU2ZmUuOTZhNDZkYThhMjM4ODE1ZS40ZGFhMDU4NjBmZDljMDU3LmRhYzdiNTYyZGFjN2I1NjIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWUyOTY3M2U0ZGFhMDU4Ni4wZmQ5YzA1N2ZmYzAwMDAwCiAgICAgMzEwZDE4MGI2YmM2Njg2Ny4yMTQ2MGFiYjc3NzgwNWJjLmJkMDBhNTIxNTU2OTA4M2YuNzFhNjk2ZmZiOTA2NGYzZAogICAgIDVjODE0Yzc1N2IxZGExYjkKIAotVlBFUk1JTFBTX1ZBUl8yNTYocmVnKQorVlJTUVJUU1NfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgM2MwZmRhM2M0MmVhNDcyNi5hNzMzM2MzZmNmMWMwMGJiLjliOTE4YzZjODg5ODVhOWIuYjAyNTE1NDVhZDNjMmViNAogICAgIDZkOWIzYWMwYWRmODdkMmUuMDhiNGU0MDZkZTQxYzgzMC43OWY0MjRlNDJlNzQ2MDgwLjYwN2YwYmM1NjMxODY2NzMKQEAgLTI3NTczLDEyICsyNzU3MywxMiBAQAogICAgIDM3ZTE2NWFmZDkwODg4YzEuZmFmYmIwZjk2ZTI1ZGIyYy5jZjM2ODJkOWE2OGU3MjBhLjY3MDY3YjhhNTcxOWZmODEKICAgICA3NWM5ZWNhNmNkNTZkODI4CiAgIGFmdGVyCi0gICAgMDhiNGU0MDYwOGI0ZTQwNi5hZGY4N2QyZWFkZjg3ZDJlLjc5ZjQyNGU0MmU3NDYwODAuMmU3NDYwODA2MDdmMGJjNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43OWY0MjRlNDJlNzQ2MDgwLjYwN2YwYmM1ZmZjMDAwMDAKICAgICA2ZDliM2FjMGFkZjg3ZDJlLjA4YjRlNDA2ZGU0MWM4MzAuNzlmNDI0ZTQyZTc0NjA4MC42MDdmMGJjNTYzMTg2NjczCiAgICAgNGQ3MzZhNmQ1NWQ0N2Y3ZC4yZjVlOGM0YWI0NDA3ZGYyLjE2YmRjYzhmMDM5NzU1MTYuYTlkYjA0OGU5MjA5NmRhOQogICAgIDM3ZTE2NWFmZDkwODg4YzEuZmFmYmIwZjk2ZTI1ZGIyYy5jZjM2ODJkOWE2OGU3MjBhLjY3MDY3YjhhNTcxOWZmODEKICAgICA3NWM5ZWNhNmNkNTZkODI4Ci1WUEVSTUlMUFNfVkFSXzI1NihtZW0pCitWUlNRUlRTU18xMjgobWVtKQogICBiZWZvcmUKICAgICBiMWYzZDNjZjExY2NiM2M5Ljg3MzIyN2YzZDIyMmQ1YTMuNDQ1OWNkZmUyN2ZkOWQwYS4wMWFkNDEyZWIxZTRmNjA3CiAgICAgZjY0ZmFkZWYzZTg1NGQ5MS45OWIyYWNhM2RlYWVhMWQyLmU5NDI1ZTQ1ZmNkMzgwYmEuMDY2YzA1ZmJjMDI1MWJiYQpAQCAtMjc1ODgsMTEgKzI3NTg4LDExIEBACiAgIGFmdGVyCiAgICAgYjFmM2QzY2YxMWNjYjNjOS44NzMyMjdmM2QyMjJkNWEzLjQ0NTljZGZlMjdmZDlkMGEuMDFhZDQxMmViMWU0ZjYwNwogICAgIGY2NGZhZGVmM2U4NTRkOTEuOTliMmFjYTNkZWFlYTFkMi5lOTQyNWU0NWZjZDM4MGJhLjA2NmMwNWZiYzAyNTFiYmEKLSAgICBmNjRmYWRlZjk5YjJhY2EzLmY2NGZhZGVmZjY0ZmFkZWYuZmNkMzgwYmFmY2QzODBiYS5mY2QzODBiYWU5NDI1ZTQ1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU5NDI1ZTQ1ZmNkMzgwYmEuMDY2YzA1ZmJmZmMwMDAwMAogICAgIDBhY2IyNmM5YzRmNmFkNDYuNzM2ZmYwZmI5ZTQ5YWFjMS5iM2U4Y2M0OTY4YWE5OTNhLmZkZjQ4ZGE5NWM5YTNiZjEKICAgICBhNjU2NDk2MjIxZTVhZWNkCiAKLVZQRVJNSUxQU19WQVJfMjU2KHJlZykKK1ZSU1FSVFNTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDkzMzBmYTQzNWE0Y2IyMGUuOTI4NWJmNTk1NmM0ZWI4OS5mMjQzYTc3Yjg5NzA1ZWRhLjkxM2NhMmRmMzdjMzQ2NjMKICAgICAyMWQwOWRiN2E0NWE4NDYxLjkyOWYzOTkyNDEwN2Q4YTQuYTQ3NzEyMThmNzM5ODFlZi4zOTRkZGM2NjkyMGIwNDBkCkBAIC0yNzYwMCwxMiArMjc2MDAsMTIgQEAKICAgICA4YjhkYTUwOGQ5OWM4MWVjLjZmMmJjNWFjOTMxYmFlMGQuMGUyYWYwNThjYWRmMDdiYi41YmQyNmNmYjVhNTRhMjkyCiAgICAgOGRkZWJiZTFmZjZmZmFjNgogICBhZnRlcgotICAgIGE0NWE4NDYxYTQ1YTg0NjEuMjFkMDlkYjc5MjlmMzk5Mi5mNzM5ODFlZmE0NzcxMjE4LjkyMGIwNDBkYTQ3NzEyMTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTQ3NzEyMThmNzM5ODFlZi4zOTRkZGM2NmZmYzAwMDAwCiAgICAgMjFkMDlkYjdhNDVhODQ2MS45MjlmMzk5MjQxMDdkOGE0LmE0NzcxMjE4ZjczOTgxZWYuMzk0ZGRjNjY5MjBiMDQwZAogICAgIGFhODAyYzJhOWE5YjVmNzIuZThlODEyNWZhMWNiMmZjMS5lNDU1MmIzZTg0MzA1MGFiLjg5ZTVmNmNjOTQ4YzhmNjMKICAgICA4YjhkYTUwOGQ5OWM4MWVjLjZmMmJjNWFjOTMxYmFlMGQuMGUyYWYwNThjYWRmMDdiYi41YmQyNmNmYjVhNTRhMjkyCiAgICAgOGRkZWJiZTFmZjZmZmFjNgotVlBFUk1JTFBTX1ZBUl8yNTYobWVtKQorVlJTUVJUU1NfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZjlkNjVkNjlhMGU4NTMyYS4yMDQzMDNiZGZjZTgyNDdjLjAyMzNjZTY2MzIwMzBmYjMuN2Q0MjVjZDU2OGQ0ZTJjYgogICAgIDdkODVkMDdlNThjYjY5ZWIuYzVlZDQyYjU5ZjBjODRjZS43ZmNlYTk3NzliOGYwZWUwLjhmZTk2YjFlZjg5YTFkODYKQEAgLTI3NjE1LDExICsyNzYxNSwxMSBAQAogICBhZnRlcgogICAgIGY5ZDY1ZDY5YTBlODUzMmEuMjA0MzAzYmRmY2U4MjQ3Yy4wMjMzY2U2NjMyMDMwZmIzLjdkNDI1Y2Q1NjhkNGUyY2IKICAgICA3ZDg1ZDA3ZTU4Y2I2OWViLmM1ZWQ0MmI1OWYwYzg0Y2UuN2ZjZWE5Nzc5YjhmMGVlMC44ZmU5NmIxZWY4OWExZDg2Ci0gICAgYzVlZDQyYjU1OGNiNjllYi5jNWVkNDJiNTlmMGM4NGNlLjliOGYwZWUwN2ZjZWE5NzcuOGZlOTZiMWU3ZmNlYTk3NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZmNlYTk3NzliOGYwZWUwLjhmZTk2YjFlMmFjNjc4MDAKICAgICAzOTNjMTcwNDdlMDBiYTMyLmFmNTE1NDFmZDgwODZmNjUuYTJlOGM2NTIzOWM1ZGE3ZC4wODEzNjNjNzVmY2JhMWFmCiAgICAgMjcyZTQzMDA2ZTRkNjI3NQogCi1WUEVSTUlMUERfVkFSXzI1NihyZWcpCitWUlNRUlRQU18xMjgocmVnKQogICBiZWZvcmUKICAgICA1OTA4YjdiNWUwZDE3Mzk2LjI5ZGNlMjRjMjU2YTZlMTAuYWNhMjFmNjhhNWZhNzEwMy4wMjAwMDBmM2E2ODcxZTQ2CiAgICAgZjhlZGJiNTQ1MGUyMTBiZi5hMDYzNmVkMzUzNmZjZWZiLjI5MThiYmE1NjJmMzIxMTMuYmFkOWZjOWQ0ZDFjZjA0NQpAQCAtMjc2MjcsMTIgKzI3NjI3LDEyIEBACiAgICAgZjEwNzVmZmM5Y2RiZGVkOC45NDU5YjY0OWI1Nzc4NWE3LjEzYTM1N2E3MWUyYTc5MzcuYTYwMjJiYjliN2Y1MzI5OAogICAgIDkxZWE1NjAzYjI1MDE5NDMKICAgYWZ0ZXIKLSAgICBhMDYzNmVkMzUzNmZjZWZiLmY4ZWRiYjU0NTBlMjEwYmYuYmFkOWZjOWQ0ZDFjZjA0NS4yOTE4YmJhNTYyZjMyMTEzCi0gICAgZjhlZGJiNTQ1MGUyMTBiZi5hMDYzNmVkMzUzNmZjZWZiLjI5MThiYmE1NjJmMzIxMTMuYmFkOWZjOWQ0ZDFjZjA0NQorICAgIDU5MDhiN2I1ZTBkMTczOTYuMjlkY2UyNGMyNTZhNmUxMC5hY2EyMWY2OGE1ZmE3MTAzLjAyMDAwMGYzYTY4NzFlNDYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZjMDAwMDBmZmMwMDAwMC5mZmMwMDAwMDNhNmZhODAwCiAgICAgNjIyOTQ5NDg1YTBjNzU5Yy43YjllMzY4MzI0MTk5NzFmLjgyZmYyNTQwYWM3ZmJhNDAuYTc0MTM3M2I0OTkyMGVhNwogICAgIGYxMDc1ZmZjOWNkYmRlZDguOTQ1OWI2NDliNTc3ODVhNy4xM2EzNTdhNzFlMmE3OTM3LmE2MDIyYmI5YjdmNTMyOTgKICAgICA5MWVhNTYwM2IyNTAxOTQzCi1WUEVSTUlMUERfVkFSXzI1NihtZW0pCitWUlNRUlRQU18xMjgobWVtKQogICBiZWZvcmUKICAgICA0NWMzMzMwNTU2YWY3ZWQ0LjAyZDVmN2RlYWZkYzg2MjAuYzg1ZjZhMTIyMTkyNTRjMC4zODUwNGY0NTU1ODE5YWE0CiAgICAgOWU1YTNlYWJjMDFmMWU3OS5mMmRkMTA1OTMxOWJhYTIwLmYzN2VjZmM5ODU3OGJmOTUuNGQ1MTA4ODZlZDBmNTgzMgpAQCAtMjc2NDEsMTIgKzI3NjQxLDEyIEBACiAgICAgYzM0YTkyNTMwZDdlOWU1ZQogICBhZnRlcgogICAgIDQ1YzMzMzA1NTZhZjdlZDQuMDJkNWY3ZGVhZmRjODYyMC5jODVmNmExMjIxOTI1NGMwLjM4NTA0ZjQ1NTU4MTlhYTQKLSAgICA5ZTVhM2VhYmMwMWYxZTc5LmYyZGQxMDU5MzE5YmFhMjAuZjM3ZWNmYzk4NTc4YmY5NS40ZDUxMDg4NmVkMGY1ODMyCi0gICAgZjJkZDEwNTkzMTliYWEyMC5mMmRkMTA1OTMxOWJhYTIwLjRkNTEwODg2ZWQwZjU4MzIuNGQ1MTA4ODZlZDBmNTgzMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmMwMDAwMDRlNmY3MDAwLjQzMGRlODAwMzQ3ZTcwMDAKKyAgICA3OTdhZjRlMTBjYWFiNTViLjFiNmNhM2Q5YmVhMjg1ODMuZjI4MDYwNTlmYzM0ODM1My5hZGYzN2VkNjgwNjFmMThlCiAgICAgYjBmMWNmOTM1NTVmZmZhOS5kYWNlYWRjYmYxN2Y1NWY1LjlmMzI5OWIwYTNkMzVjMjYuYjY4MmFkYTFhZDAyOWY2MwogICAgIGMzNGE5MjUzMGQ3ZTllNWUKIAotVlBFUk1JTFBEX1ZBUl8yNTYocmVnKQorVlJTUVJUUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzA5NzI4NTkzZjYxMmMyYi4yMDg5NGRhZWI3NDdiNzhkLjhjNGYyYjk5NjZiZTU0MjQuZDc2MGY2Yjk5NTYwMDUzOQogICAgIDU4YjU2YjFkZGMzODgzNzUuYTUxMGU5MWM0ZjcwOWEzMy44YjNiMThiMGJhZTliZWI5Ljc2ZDZmNDYwZWZlNzNjYjkKQEAgLTI3NjU0LDEyICsyNzY1NCwxMiBAQAogICAgIDRlOTJlOTkzY2RmMDdlMzIuNWUxNjZjYTY5MGIzZDA3OC5lMzgzMzA2YTZkMzljN2NjLjU5YzliZjM4NDkxNDNlYWUKICAgICA1NWRmODY0MTgxZDM4MjdjCiAgIGFmdGVyCi0gICAgYTUxMGU5MWM0ZjcwOWEzMy5hNTEwZTkxYzRmNzA5YTMzLjhiM2IxOGIwYmFlOWJlYjkuNzZkNmY0NjBlZmU3M2NiOQotICAgIDU4YjU2YjFkZGMzODgzNzUuYTUxMGU5MWM0ZjcwOWEzMy44YjNiMThiMGJhZTliZWI5Ljc2ZDZmNDYwZWZlNzNjYjkKKyAgICAzMDk3Mjg1OTNmNjEyYzJiLjIwODk0ZGFlYjc0N2I3OGQuOGM0ZjJiOTk2NmJlNTQyNC5kNzYwZjZiOTk1NjAwNTM5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ0YzIzMDAwZmZjMDAwMDAuMzMwOGQwMDBmZmMwMDAwMAogICAgIDk5ZWY1NzBkODI4ZWUwZTkuMWI1MDIwY2IzOWU1NjRjOS4zNGRlNzA3ZDg4OGZkMTYzLjU4NjAwZTkxY2M3NGJhZDEKICAgICA0ZTkyZTk5M2NkZjA3ZTMyLjVlMTY2Y2E2OTBiM2QwNzguZTM4MzMwNmE2ZDM5YzdjYy41OWM5YmYzODQ5MTQzZWFlCiAgICAgNTVkZjg2NDE4MWQzODI3YwotVlBFUk1JTFBEX1ZBUl8yNTYobWVtKQorVlJTUVJUUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjg2Y2RjOTk5MGJiNDQ2Ni5kMmViMWIxZDU4ZTk5YmZkLjRhMmU0Yjk4NzBlNTljNmYuZjQ3NzUyZTUwNTc1ZGRhMAogICAgIGFlM2QzZjJhOTNkYTNkOTkuODM0NGViMTZjMDA1NzFmNS5iYjYzMzg4ZmY2ODc4MmQ4LmMzMDZkNDU5ZWFjZTRmOGQKQEAgLTI3NjY4LDEyICsyNzY2OCwxMiBAQAogICAgIDNjNGQ2ZGMyOGIwMTIyOTcKICAgYWZ0ZXIKICAgICAyODZjZGM5OTkwYmI0NDY2LmQyZWIxYjFkNThlOTliZmQuNGEyZTRiOTg3MGU1OWM2Zi5mNDc3NTJlNTA1NzVkZGEwCi0gICAgYWUzZDNmMmE5M2RhM2Q5OS44MzQ0ZWIxNmMwMDU3MWY1LmJiNjMzODhmZjY4NzgyZDguYzMwNmQ0NTllYWNlNGY4ZAotICAgIGFlM2QzZjJhOTNkYTNkOTkuODM0NGViMTZjMDA1NzFmNS5iYjYzMzg4ZmY2ODc4MmQ4LmMzMDZkNDU5ZWFjZTRmOGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2ExYjIwMDAyNmJmMjgwMC5mZmMwMDAwMDVjODJhMDAwCisgICAgYzMxZTI5ZTJhNjNjMmM0MC5iYmU5NTRlYTlmZDEzY2M3LjhkODNhZjc2M2RhNjNlZGYuYWM3Y2IxMzFiYmQwNTgzYwogICAgIDQzZGIxOGFiZTRlYmNiODguZDgyODUzMDU5NGQ4M2ExZi45YzU4MmQzOTYyNGQ4ZWIxLjBiMjVlNWRiMTEwODM1NWMKICAgICAzYzRkNmRjMjhiMDEyMjk3CiAKLVZQRVJNSUxQRF9WQVJfMjU2KHJlZykKK1ZSU1FSVFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDliM2Y0MzUzYzI0NzVhOTkuMDk0MDg4NzM2OWY1ZDc5ZC4zNDRjZTJkMzM5YTZhNWE4LmMzYWYyY2M1ODA4ODJjN2EKICAgICA4NDQ4NjVmODU0NjcxYjEwLmYzMThmMzI1NTI2NjBjYWEuMmRhMGZmYzAyYWM3YmEwZi5lMDU1MmEwNGI0NjRkNTY2CkBAIC0yNzY4MSwxMiArMjc2ODEsMTIgQEAKICAgICA2NGQwN2IzMWY4NjMyMjA3LmEwNTRhZmY3YmVhOWRmNWUuNjEwYmQwYTc2MzM1ZDEyNi42OWI4MTE0ZmNiMmMzNjU0CiAgICAgOGMwZmYxMzJlNzMxNjdhZgogICBhZnRlcgotICAgIGYzMThmMzI1NTI2NjBjYWEuZjMxOGYzMjU1MjY2MGNhYS5lMDU1MmEwNGI0NjRkNTY2LmUwNTUyYTA0YjQ2NGQ1NjYKLSAgICA4NDQ4NjVmODU0NjcxYjEwLmYzMThmMzI1NTI2NjBjYWEuMmRhMGZmYzAyYWM3YmEwZi5lMDU1MmEwNGI0NjRkNTY2CisgICAgOWIzZjQzNTNjMjQ3NWE5OS4wOTQwODg3MzY5ZjVkNzlkLjM0NGNlMmQzMzlhNmE1YTguYzNhZjJjYzU4MDg4MmM3YQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41MDgzYzAwMDVjY2M3MDAwLmZmYzAwMDAwNTIzYzY4MDAKICAgICA1M2I1Y2UxZWRkZWM5ZWE1LmRjMzBkN2FkYmI0ODI1ZGMuMWQ3MWE1MzgwNGM4YjQwMC5jZTEzYTJlMzE5ZWM0NGEwCiAgICAgNjRkMDdiMzFmODYzMjIwNy5hMDU0YWZmN2JlYTlkZjVlLjYxMGJkMGE3NjMzNWQxMjYuNjliODExNGZjYjJjMzY1NAogICAgIDhjMGZmMTMyZTczMTY3YWYKLVZQRVJNSUxQRF9WQVJfMjU2KG1lbSkKK1ZSU1FSVFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDE1ZTNjMDdhODkwNjkzZGQuMTNlNTY2OWU0MjU3ZTJlMC4xYTUwZjdlZjdhOTVmNjVkLjU2YmE3ZDdhZTE5ODRiMmQKICAgICBkZjAxZjkxMmNjYjc3NTA5LmJjNDI4ZGQwNTY1NDE5ZGMuMjhmMDJiODEwODE2MjYwNC41NmNhYTcxYjFkN2Y1ZWMzCkBAIC0yNzY5NSwxMiArMjc2OTUsMTIgQEAKICAgICAzNzM2ZWIxMzUxYzA4YzhjCiAgIGFmdGVyCiAgICAgMTVlM2MwN2E4OTA2OTNkZC4xM2U1NjY5ZTQyNTdlMmUwLjFhNTBmN2VmN2E5NWY2NWQuNTZiYTdkN2FlMTk4NGIyZAotICAgIGRmMDFmOTEyY2NiNzc1MDkuYmM0MjhkZDA1NjU0MTlkYy4yOGYwMmI4MTA4MTYyNjA0LjU2Y2FhNzFiMWQ3ZjVlYzMKLSAgICBiYzQyOGRkMDU2NTQxOWRjLmJjNDI4ZGQwNTY1NDE5ZGMuNTZjYWE3MWIxZDdmNWVjMy41NmNhYTcxYjFkN2Y1ZWMzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUyMGRiMDAwMjFlYzg4MDAuMzNkNDIwMDBmZmMwMDAwMAorICAgIGM1MzYxOGU1Y2M1MWNiNjAuYmEzMmViMzJkMGU2MDNhOC5hNTAwYzg5OTg3M2EyYTgxLmJlODc0OWY4YjA3NjQ4OTEKICAgICBhNTRiOTllMWE2ZGY0ZTBlLjZiMDA3YzMyNGQ5YWRlZjAuNmM0YzQ5MjQxMDBkYmZmZC5lYjNjNjI3YzM5MDc0MzQ2CiAgICAgMzczNmViMTM1MWMwOGM4YwogCi1WUFNMTFdfMTI4KHJlZykKK1ZSU1FSVFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGZmYzJlMTI4OTYyZDVmMTAuNWEwZmY5ZjE3NjZkYmQzZS4yYWY5M2QzYjY5ZmJlNDVmLjViOWYyYTBjYzI5OWExYTcKICAgICA5ZjJhNDEyOWE0ZDlmNzdkLmJmNGRiMzAyNTcwOGQyMWMuNTI2OTI4YjliZTk2NTJhMi40Y2M2ZTczZmI2ZWQ4YmE5CkBAIC0yNzcwOSwxMSArMjc3MDksMTEgQEAKICAgICBjYjJiMjBjYjQxMDRkNzdhCiAgIGFmdGVyCiAgICAgZmZjMmUxMjg5NjJkNWYxMC41YTBmZjlmMTc2NmRiZDNlLjJhZjkzZDNiNjlmYmU0NWYuNWI5ZjJhMGNjMjk5YTFhNwotICAgIDlmMmE0MTI5YTRkOWY3N2QuYmY0ZGIzMDI1NzA4ZDIxYy41MjY5MjhiOWJlOTY1MmEyLjRjYzZlNzNmYjZlZDhiYTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDBhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE0MDBlNDAwNTgwMDg4MDAuMTgwMGZjMDBiNDAwYTQwMAotICAgIDAwMDAwMDAwMDAwMDAwMGEKLVZQU0xMV18xMjgobWVtKQorICAgIDI1NTQ1ODAwNTQwZGQwMDAuZmZjMDAwMDAyYzUzYTAwMC4zZTY3YzAwMGZmYzAwMDAwLjUwNzMxODAwNWEyOTYwMDAKKyAgICA3M2JhMDY4MjE2NTA5MTgwLmIyZDA0M2ZlNjViYjRhZDYuNDE5YzNiMThlYmY2NjQ2NS4xZDhkZmNhNzBhMTIzYTJmCisgICAgZDdjMDJjOWQ4OTFlNjljNC4wZDY2MjVkMmJkOTNlMTk2LjUyZGU3MWM0OGFhNzU1NTMuYThjMGU2MzJkYTE2NmE2NgorICAgIGNiMmIyMGNiNDEwNGQ3N2EKK1ZSU1FSVFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDYwOTkyNjVlNWJlODNjOTYuMjc4N2IwZTc5OGQwYmFmNi5hZWQ5ZDY2YTdhOWI1Mjg4LmUwN2FjNzI5MzczNjYyMTkKICAgICA0NWQ4NzRkNzQ1Y2Y1NmU3LmJmNWE4Y2NjZGZmMWMxYzIuNmZmNmQwYjNiOWRmNWJkOS40OWJlMzdiNDhmMmVjNzYyCkBAIC0yNzcyMiwxMiArMjc3MjIsMTIgQEAKICAgICAzNjY5MDQ2OWFkMDU1YzBiCiAgIGFmdGVyCiAgICAgNjA5OTI2NWU1YmU4M2M5Ni4yNzg3YjBlNzk4ZDBiYWY2LmFlZDlkNjZhN2E5YjUyODguZTA3YWM3MjkzNzM2NjIxOQotICAgIDQ1ZDg3NGQ3NDVjZjU2ZTcuYmY1YThjY2NkZmYxYzFjMi42ZmY2ZDBiM2I5ZGY1YmQ5LjQ5YmUzN2I0OGYyZWM3NjIKKyAgICAyZWVhMDAwMDMxM2UxMDAwLjRiNzhhODAwZmZjMDAwMDAuZmZjMDAwMDAyMWU4NjgwMC5mZmMwMDAwMDQzOTdhMDAwCiAgICAgNTRiMjg3MjIxYmM0ZTE5OC5mYjg2YmViOWZiMGRiYWQzLjJkODk5MTk3OTU2YmI1YjUuZTdmNGJmY2YyZDFiYzBkYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMDAwOTgwMGY4MDBjODAwLmYwMDBhMDAwNzAwMDEwMDAKKyAgICA2YWY0ZGEyYmY4ZDQ5OGQ2LjM3NTc0MTE4ODhiMWUxZDYuYzU1ZTk1MDQyYjRjMWY0Ny4xODY5NWFlOGFlODk4ODJmCiAgICAgMzY2OTA0NjlhZDA1NWMwYgogCi1WUFNMTFdfMTI4KHJlZykKK1ZSU1FSVFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDlmNDBiYWMwYzYxYjc4MWIuNjQ2YWU5ZGZmODBhMzhjZC5jZjE5MTI1NzIxNjg3MTc2LjExNDA1NmU1OTY4ZDUzYmMKICAgICBhZDNhNzY1ODk3NTUxNzBhLjFjZTAzMDI4Mzg3MjdkYTguMWYxODJiZTE2MmJmYTc2MC5lZWZjNTEyNmYyM2IwZTNmCkBAIC0yNzczNiwxMSArMjc3MzYsMTEgQEAKICAgICA4NDQ1N2E2MWM5NDVjMGQ5CiAgIGFmdGVyCiAgICAgOWY0MGJhYzBjNjFiNzgxYi42NDZhZTlkZmY4MGEzOGNkLmNmMTkxMjU3MjE2ODcxNzYuMTE0MDU2ZTU5NjhkNTNiYwotICAgIGFkM2E3NjU4OTc1NTE3MGEuMWNlMDMwMjgzODcyN2RhOC4xZjE4MmJlMTYyYmZhNzYwLmVlZmM1MTI2ZjIzYjBlM2YKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDA5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMwMDBjMjAwN2UwMGMwMDAuZjgwMDRjMDA3NjAwN2UwMAotICAgIDAwMDAwMDAwMDAwMDAwMDkKLVZQU0xMV18xMjgobWVtKQorICAgIGZmYzAwMDAwZmZjMDAwMDAuMjdhMGQwMDBmZmMwMDAwMC5mZmMwMDAwMGZmYzAwMDAwLjQyODkyMDAwMzA4OGQwMDAKKyAgICBiZGEyMzY5ZGI5NDE3Nzg1LjZmMjIyYmY0ZDMxODIzOTQuODM5ZjhhMjJlODQwYmYzZi4zOTVmMDNiMzVkNjAwY2ZkCisgICAgMmNjNWY1ZmJjYTZiZDEzOC4zOWZiNTcyZGU2MDllNWJkLjU3ZmMyYTg2NGU3YWY1YzEuY2MzM2U3NzhmMDBiMDkyMgorICAgIDg0NDU3YTYxYzk0NWMwZDkKK1ZSU1FSVFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDNkNjAzNjVhMDQxY2VlNGYuNTRmMGFmZGU2NjVkNjRjZS41NzM5MmZjMThjNTA4MDRlLmY3NzkwNzc5MzFmNjg0OGYKICAgICBkMzUyOTk0ZmJjOWI0ZWFmLjkyNmQ2MWIyMjhhNTZhZjMuYTNhNjJmOWJlMmZhYjA3My5iZjYzMWU2NzJjNDJhOTU4CkBAIC0yNzc0OSwxMiArMjc3NDksMTIgQEAKICAgICA5ZWE2OTA0Y2M5NzlmMjQyCiAgIGFmdGVyCiAgICAgM2Q2MDM2NWEwNDFjZWU0Zi41NGYwYWZkZTY2NWQ2NGNlLjU3MzkyZmMxOGM1MDgwNGUuZjc3OTA3NzkzMWY2ODQ4ZgotICAgIGQzNTI5OTRmYmM5YjRlYWYuOTI2ZDYxYjIyOGE1NmFmMy5hM2E2MmY5YmUyZmFiMDczLmJmNjMxZTY3MmM0MmE5NTgKKyAgICA0MDg4YzgwMDVkMjM3ODAwLjM0YmFiMDAwMmMwOWEwMDAuMzM5NjgwMDBmZmMwMDAwMC5mZmMwMDAwMDQ2Mzg3MDAwCiAgICAgMjJlNjFlMmQwZGNmOWUyNy40Mjg5MDZlM2FjY2YyMDU0LmZhMGZkM2E2MDMxMjMwNTkuMGEwNjY5YmNkY2U5YTBjNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZTk4YmU2YzhiZThjMWNjLmZkOGM3OTljYjEwOGE1NjAKKyAgICAwNmU3NDFkZTE0YzM5OGUwLmMxOGY5YWRlOGY2NWMyOWQuMzg0MDk4ZDAwY2E0YmUyYy4zNmFlZTZlNGRjNzhhNDg1CiAgICAgOWVhNjkwNGNjOTc5ZjI0MgogCi1WUFNMTFdfMTI4KHJlZykKK1ZSU1FSVFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDlkM2M2MzVlM2U3YmM2YTkuNWIyMjdlNTBlYzgzZjgwOC42OWNkMTkwZDZjZjU4YzdhLjM5MDRmODA0MThiZDEzMTgKICAgICA5MWJhNWM4OGQ3MDc1YzY1LmZkNjM1MjZlYjIxYzdjY2IuOTc4ZDdmZGVlMDBiYjk5Ni5kOTI5NzEyZjQ0NjhlZTQ4CkBAIC0yNzc2MywxMSArMjc3NjMsMTEgQEAKICAgICAwYmNlNDVhYTljNGVmMjJiCiAgIGFmdGVyCiAgICAgOWQzYzYzNWUzZTdiYzZhOS41YjIyN2U1MGVjODNmODA4LjY5Y2QxOTBkNmNmNThjN2EuMzkwNGY4MDQxOGJkMTMxOAotICAgIDkxYmE1Yzg4ZDcwNzVjNjUuZmQ2MzUyNmViMjFjN2NjYi45NzhkN2ZkZWUwMGJiOTk2LmQ5Mjk3MTJmNDQ2OGVlNDgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDBiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY4MDBmMDAwNTgwMGIwMDAuNDgwMDc4MDA0MDAwNDAwMAotICAgIDAwMDAwMDAwMDAwMDAwMGIKLVZQU0xMV18xMjgobWVtKQorICAgIGZmYzAwMDAwNDY1Y2UwMDAuZmZjMDAwMDBmZmMwMDAwMC5mZmMwMDAwMGZmYzAwMDAwLmZmYzAwMDAwZmZjMDAwMDAKKyAgICBkNTZkNzUzNTMxYWJlZjIzLmM4NzYzNzI0ODI5OWRlNTQuYTcxY2M5YmI4NzMyODY5ZC5mNDc5N2UzYmFiYjEwOWU4CisgICAgYzRhMWFjZDBlOGYyYmM4Zi45ODI2YWI1ZDc2MDZkYmQwLmY1YzdmMjEyZmJmNjJlM2QuNjZjMjljMTU2YWE0MjIyNQorICAgIDBiY2U0NWFhOWM0ZWYyMmIKK1ZSU1FSVFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGJmNmFmN2U0NWRiYjM4MjYuYmNhMmZkYzc5NzY5ZmU1NC40OTQxMmEwN2FkNzAyZjZiLmRkZDdmNjRlZGJlM2VmMWYKICAgICA1ZTYxMmRiMWNhZjVhZTQwLjE3YmM2Mjg1ZGE5YmYzMWYuYjc5MTJlMGU0MGUxOTU1MC5iYjliZDFkYmMwODYwM2YyCkBAIC0yNzc3NiwxMiArMjc3NzYsMTIgQEAKICAgICBiMTEwNDZhMGIwMjY4ZGJlCiAgIGFmdGVyCiAgICAgYmY2YWY3ZTQ1ZGJiMzgyNi5iY2EyZmRjNzk3NjlmZTU0LjQ5NDEyYTA3YWQ3MDJmNmIuZGRkN2Y2NGVkYmUzZWYxZgotICAgIDVlNjEyZGIxY2FmNWFlNDAuMTdiYzYyODVkYTliZjMxZi5iNzkxMmUwZTQwZTE5NTUwLmJiOWJkMWRiYzA4NjAzZjIKKyAgICBmZmMwMDAwMDMwNTNiMDAwLmZmYzAwMDAwZmZjMDAwMDAuM2E5MzU4MDBmZmMwMDAwMC5mZmMwMDAwMGZmYzAwMDAwCiAgICAgYzM4MTY0ZmNmZTBhMTFhOC4zMzNiZDg3NjRlMTRkNTliLmJlZTQzNTVjNGU2OGNhYWMuZWI1ZTdmMjU0OTZhYTc2MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MDAwODAwMDQwMDAwMDAwLmMwMDBjMDAwODAwMDgwMDAKKyAgICBjYzk1MTZiMDE2MDYxZDg4LjZhNmE1YzA3OGY2MWUxNzUuM2EwNGJhZGVmMDBlOGFhYS5jOTZiZmQ5ODBmMWIxNjE1CiAgICAgYjExMDQ2YTBiMDI2OGRiZQogCi1WUFNSTFdfMTI4KHJlZykKK1ZNT1ZEUVVfR3RvRV8yNTYocmVnKQogICBiZWZvcmUKICAgICBmZjk3NTZhOWM4MTY0ODA3LjU0NjhjMWJiMmVmMzhkMGQuMTk5NmU5YTIzODBkNTM1OC4wN2JkMzk4MDQ0ZTE5MTc3CiAgICAgMGY0ZDI5MjBmMjc4ODM5Yy4zN2M3ZTAwODYxZGYxZTYyLjlkMGI3Y2I0ZTVhNDY2ZjEuMDBkZDJlMmY2NmVkOWEzZgpAQCAtMjc3OTEsMTAgKzI3NzkxLDEwIEBACiAgIGFmdGVyCiAgICAgZmY5NzU2YTljODE2NDgwNy41NDY4YzFiYjJlZjM4ZDBkLjE5OTZlOWEyMzgwZDUzNTguMDdiZDM5ODA0NGUxOTE3NwogICAgIDBmNGQyOTIwZjI3ODgzOWMuMzdjN2UwMDg2MWRmMWU2Mi45ZDBiN2NiNGU1YTQ2NmYxLjAwZGQyZTJmNjZlZDlhM2YKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDBkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDQwMDAzMDAwNzAwMDMuMDAwMDAwMDEwMDAzMDAwNAotICAgIDAwMDAwMDAwMDAwMDAwMGQKLVZQU1JMV18xMjgobWVtKQorICAgIGU0NzUwYTA0ZWViZjY3NTcuN2Q1OTZhMTk4OWUyOTMyZi44ZjAwYTBlZWJkYzU2MmY0LmViN2U2YjYwODJkZGE0NmUKKyAgICBlNDc1MGEwNGVlYmY2NzU3LjdkNTk2YTE5ODllMjkzMmYuOGYwMGEwZWViZGM1NjJmNC5lYjdlNmI2MDgyZGRhNDZlCisgICAgOTM5N2FiYmJiNGQ5MWUyZAorVk1PVkRRVV9HdG9FXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGQ5NDc1MWQyMjMzZThhOTcuNjI4MDBmNGFmN2JjODlkNi45OTI0Y2ViNGI2MTFlZWZlLmI3MTcyYWVlMjA2NmMyYjYKICAgICA5ODU4ZGE5MGVjMTdhNWQ3LjEyZTljN2FjODM1YjFiNTEuN2ZhYTk2NDE2ZjZmNWE0ZS4yMmE4YTkxNWY3MjNiNGRkCkBAIC0yNzgwMiwxMyArMjc4MDIsMTMgQEAKICAgICBmMGNmODFiN2ZhNTZkNzhjLjc3MDg0MTc5OTJhZDdkZTkuMWUxYjQyZTJmMmU1NTQxZi4zNDYzNzc4NzczMWUzZTBkCiAgICAgOTMyNmJkYWI0Zjc1NGQ2ZAogICBhZnRlcgotICAgIGQ5NDc1MWQyMjMzZThhOTcuNjI4MDBmNGFmN2JjODlkNi45OTI0Y2ViNGI2MTFlZWZlLmI3MTcyYWVlMjA2NmMyYjYKKyAgICBhYjk2YzBlMzJhNzAyYTFhLjRmZmQyZTk4MmQyNzU4NzMuMGRiODNlYWRjZjA3OTM0YS4yZGZkMTljZWRmODc3NDE2CiAgICAgOTg1OGRhOTBlYzE3YTVkNy4xMmU5YzdhYzgzNWIxYjUxLjdmYWE5NjQxNmY2ZjVhNGUuMjJhOGE5MTVmNzIzYjRkZAogICAgIGFiOTZjMGUzMmE3MDJhMWEuNGZmZDJlOTgyZDI3NTg3My4wZGI4M2VhZGNmMDc5MzRhLjJkZmQxOWNlZGY4Nzc0MTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMzAwMDQwMDAzMDAwMi4wMDAxMDAwNTAwMDcwMDA1CisgICAgZjBjZjgxYjdmYTU2ZDc4Yy43NzA4NDE3OTkyYWQ3ZGU5LjFlMWI0MmUyZjJlNTU0MWYuMzQ2Mzc3ODc3MzFlM2UwZAogICAgIDkzMjZiZGFiNGY3NTRkNmQKIAotVlBTUkxXXzEyOChyZWcpCitWTU9WRFFVX0d0b0VfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYTc5MmU5YTYxMTE3ZGVlMy40MWNkOThmNjc4ZDQ2NjU4LmU1NTZmYmJiNGU3OGM2NWYuOGQ5ZDFlY2VmNTE1NWFmOAogICAgIGNhZjNmN2U1NTI5MDJkMWEuN2M1ZTgyOGRiZWY2OTNhYi5mNDMzNThjYWZjMTQ2ZTgwLjM4MGI0ZjVjZjRhNDYxMDIKQEAgLTI3ODE4LDEwICsyNzgxOCwxMCBAQAogICBhZnRlcgogICAgIGE3OTJlOWE2MTExN2RlZTMuNDFjZDk4ZjY3OGQ0NjY1OC5lNTU2ZmJiYjRlNzhjNjVmLjhkOWQxZWNlZjUxNTVhZjgKICAgICBjYWYzZjdlNTUyOTAyZDFhLjdjNWU4MjhkYmVmNjkzYWIuZjQzMzU4Y2FmYzE0NmU4MC4zODBiNGY1Y2Y0YTQ2MTAyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDBmMDAwNTAwMGYwMDA2LjAwMDMwMDA0MDAwZjAwMDYKLSAgICAwMDAwMDAwMDAwMDAwMDBjCi1WUFNSTFdfMTI4KG1lbSkKKyAgICBiMGMzYTVkYWM3MzlmNDdlLjFiNjRiYjc0MTg1OGJiOTUuNmFjOWVjMDA5ZmYwY2U3NS5hZGRhOWQwZDU0MGM2MTU4CisgICAgYjBjM2E1ZGFjNzM5ZjQ3ZS4xYjY0YmI3NDE4NThiYjk1LjZhYzllYzAwOWZmMGNlNzUuYWRkYTlkMGQ1NDBjNjE1OAorICAgIDMxZDNiMjBhZWRmZWQyZmMKK1ZNT1ZEUVVfR3RvRV8yNTYobWVtKQogICBiZWZvcmUKICAgICA1ZmU5MGM1OGYxN2UzNDgxLjJiY2EzZDZhMzI4MWU0MDIuMzk3MjAzOWM2NGIwMmQ4NC44NzFhMWJmZWNjNDlmZWExCiAgICAgMTRlNjI2ZTQ3ZDk5NDIxMi4yNmY2YThlYzhkY2Y4MWY4LmFmNDIwZGNiZThkYzJkYTkuYjcyYmRkN2E1Y2EyN2QyOApAQCAtMjc4MjksMTMgKzI3ODI5LDEzIEBACiAgICAgODRjODhhNjc5YmNkNTUwYS4wY2VkZGY3Yjg1YjNiNmU4LjE3NTY1OGYzMGVlMGNiNDcuYmJiNzBhOTgxMjhhNWJmYQogICAgIDQ5Y2M2ZTEzNzEyZjMxOWMKICAgYWZ0ZXIKLSAgICA1ZmU5MGM1OGYxN2UzNDgxLjJiY2EzZDZhMzI4MWU0MDIuMzk3MjAzOWM2NGIwMmQ4NC44NzFhMWJmZWNjNDlmZWExCisgICAgMmQ5NzdjOWFhYzVhYjlkYi5mZDkzZGZjZTc1YjIwOTBiLjViOWY1NWVmYzNlODc5MzEuNTQ0NTJlZGZlYTg5ODhiNwogICAgIDE0ZTYyNmU0N2Q5OTQyMTIuMjZmNmE4ZWM4ZGNmODFmOC5hZjQyMGRjYmU4ZGMyZGE5LmI3MmJkZDdhNWNhMjdkMjgKICAgICAyZDk3N2M5YWFjNWFiOWRiLmZkOTNkZmNlNzViMjA5MGIuNWI5ZjU1ZWZjM2U4NzkzMS41NDQ1MmVkZmVhODk4OGI3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMGEwMDAwMDAwZTAwMDIuMDAwYjAwMGQwMDA1MDAwNworICAgIDg0Yzg4YTY3OWJjZDU1MGEuMGNlZGRmN2I4NWIzYjZlOC4xNzU2NThmMzBlZTBjYjQ3LmJiYjcwYTk4MTI4YTViZmEKICAgICA0OWNjNmUxMzcxMmYzMTljCiAKLVZQU1JMV18xMjgocmVnKQorVk1PVkRRVV9HdG9FXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDU4Y2Y1NWJiYTMwNjQ3NGEuZjY0NGNjMzU2NmZlZDJjOC5hZTRmYTU1ZjVhNjBjNDNiLmMwMzQ5MWMzZTdkMWUwMTgKICAgICA0NTBlYmJmYzQzOWJkOWIwLjYwZDliZmYyMjdmYWViNDQuNDEwNjJjZTY4ZjQ0NzFhZi4zMjAzN2M0YjZhYzY3M2QwCkBAIC0yNzg0NSwxMCArMjc4NDUsMTAgQEAKICAgYWZ0ZXIKICAgICA1OGNmNTViYmEzMDY0NzRhLmY2NDRjYzM1NjZmZWQyYzguYWU0ZmE1NWY1YTYwYzQzYi5jMDM0OTFjM2U3ZDFlMDE4CiAgICAgNDUwZWJiZmM0MzliZDliMC42MGQ5YmZmMjI3ZmFlYjQ0LjQxMDYyY2U2OGY0NDcxYWYuMzIwMzdjNGI2YWM2NzNkMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEwNDAwYjMwMjNkMDFjNi4wMGM4MDFmMTAxYWIwMWNmCi0gICAgMDAwMDAwMDAwMDAwMDAwNgotVlBTUkxXXzEyOChtZW0pCisgICAgMmE2YmY1ZjkzZjJiNjA1MS44Nzc5YTVlNTAxODFlNDIwLmE3YTQ2ZThkOGNlMjkzYWMuZTJhNjU4MzNkYmVlMDZhMworICAgIDJhNmJmNWY5M2YyYjYwNTEuODc3OWE1ZTUwMTgxZTQyMC5hN2E0NmU4ZDhjZTI5M2FjLmUyYTY1ODMzZGJlZTA2YTMKKyAgICBkNzEzNDI2YzAyMzg3ZTE2CitWTU9WRFFVX0d0b0VfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMDVhMmNlMGM0M2I3NjQyMC5kOTIyYzA4ZGQyNDBjZGU1LmZkMWQ5MGY0NTIyNDNiZGEuMzIyMjIwODU4YWI0ODE4ZAogICAgIDQ4MWU3ODAxYjk3NTc1ZWQuZDY0NGZiNmI0NDQxYTZlMS5kYTA5MWNhMTA5YzEyMGZmLjFjMjU4NGQwNTllZWZjNDAKQEAgLTI3ODU2LDEzICsyNzg1NiwxMyBAQAogICAgIDdkMTAxNzk2YjVlNDA3N2UuMmJmOGFmYjEzMzNkOGJjMC4zOWU4MDM4NTFmMWI3ZTQxLjgyZTk0ZjEwZDljNzhjYzkKICAgICBiNDQyYWZkZGMyN2YxOWY5CiAgIGFmdGVyCi0gICAgMDVhMmNlMGM0M2I3NjQyMC5kOTIyYzA4ZGQyNDBjZGU1LmZkMWQ5MGY0NTIyNDNiZGEuMzIyMjIwODU4YWI0ODE4ZAorICAgIDdjNTRiYzM1ODA4MTZkYTguN2UxY2ExZmQzMGJjMjZmMS5mYTA5YzNkODQ0NjU0Y2JlLmMzZjg5NWRiOTUxYjQxNzAKICAgICA0ODFlNzgwMWI5NzU3NWVkLmQ2NDRmYjZiNDQ0MWE2ZTEuZGEwOTFjYTEwOWMxMjBmZi4xYzI1ODRkMDU5ZWVmYzQwCiAgICAgN2M1NGJjMzU4MDgxNmRhOC43ZTFjYTFmZDMwYmMyNmYxLmZhMDljM2Q4NDQ2NTRjYmUuYzNmODk1ZGI5NTFiNDE3MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDZkMDAwZTAwMDQwMDEwLjAwMGUwMDQyMDAyYzAwN2UKKyAgICA3ZDEwMTc5NmI1ZTQwNzdlLjJiZjhhZmIxMzMzZDhiYzAuMzllODAzODUxZjFiN2U0MS44MmU5NGYxMGQ5Yzc4Y2M5CiAgICAgYjQ0MmFmZGRjMjdmMTlmOQogCi1WUFNSQVdfMTI4KHJlZykKK1ZDVlRQUzJQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBiNzUwYjBhZGViY2UyM2FhLjI3MWUwNDBmNzNhYzAxOWEuM2EyMjFmZjJlODRlMGVmYS43Mzc0NTc5NGI1ZWY3MGI0CiAgICAgZTU1ZjRlZWJmMDQwZTc4OC41NjQ5ZmY4Y2Q3ZTUxNTI5LjA3ZTdlZjJiZWM3ZWVlNGQuODQ3NzNjZjIyM2VlZTA0NQpAQCAtMjc4NzIsMTAgKzI3ODcyLDEwIEBACiAgIGFmdGVyCiAgICAgYjc1MGIwYWRlYmNlMjNhYS4yNzFlMDQwZjczYWMwMTlhLjNhMjIxZmYyZTg0ZTBlZmEuNzM3NDU3OTRiNWVmNzBiNAogICAgIGU1NWY0ZWViZjA0MGU3ODguNTY0OWZmOGNkN2U1MTUyOS4wN2U3ZWYyYmVjN2VlZTRkLjg0NzczY2YyMjNlZWUwNDUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDE5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDBmZmZmZmZmZmZmZmYuZmZmZjAwMDAwMDAwZmZmZgotICAgIDAwMDAwMDAwMDAwMDAwMTkKLVZQU1JBV18xMjgobWVtKQorICAgIDQxNmU1Mzg3NDAwMDAwMDAuNDFlYzk2MWQwMDAwMDAwMC5iYjYyYjRhOGUwMDAwMDAwLmM2OTM0NDhkNjAwMDAwMDAKKyAgICAzNmIwNTE2NjAxYmU4YzdlLmIzMmEwZjQyZmZkNjdkNGYuNGI3MjljM2E0ZjY0YjBlOC45YjE1YTU0N2Y0OWEyNDZiCisgICAgNTk0ODIyMTY5MDYwNzE1OQorVkNWVFBTMlBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDVlMjMxZmU0NzQ3ZjJiMTMuMTE4OWFmN2E0NGUzZTVlZC45ODc4MWQ1M2ZiYTc0OTNlLjdhY2Y3MmU3ZTYzMzBiODkKICAgICA4NTcxMTk5Y2JhMDYwZWM2Ljg3OTQ5OWFkZDM1YWU4M2EuNzMxMzI5MTgwZDE5MjA0Zi5kN2Y4OTczZDNjNGZiMmYxCkBAIC0yNzg4NSwxMSArMjc4ODUsMTEgQEAKICAgYWZ0ZXIKICAgICA1ZTIzMWZlNDc0N2YyYjEzLjExODlhZjdhNDRlM2U1ZWQuOTg3ODFkNTNmYmE3NDkzZS43YWNmNzJlN2U2MzMwYjg5CiAgICAgODU3MTE5OWNiYTA2MGVjNi44Nzk0OTlhZGQzNWFlODNhLjczMTMyOTE4MGQxOTIwNGYuZDdmODk3M2QzYzRmYjJmMQotICAgIGFjZmY4YjJhODFmZWQ1OWUuZjYxYjBkNmM0YmIxZDExMS4xZmM3YWY3ZDUwMzdiZGFmLmJlMzcwN2E4ZWM0NWUwY2QKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzk4OTE0OGMwNjhjMTAyNy5lYmZjY2I5ZTFlMjdkOTc4CisgICAgYmIwZjAzYWE2MDAwMDAwMC5jNzc0ZTkyN2MwMDAwMDAwLjQ3NTllZTVjZTAwMDAwMDAuYzRjNjYxNzEyMDAwMDAwMAorICAgIGFlOWFmMTdhZTM3NjNkYzYuYjg2YjA3MjE0Nzc0ZGIxZC43ODYyMmI2ZmUxMGRkZDg5LjhiZDliZTk1OTNhMGQyYzkKICAgICA5YTJhYjg2ZWNjZWRjNDkxCiAKLVZQU1JBV18xMjgocmVnKQorVkNWVFBTMlBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDQ2NzZmMmExMzRiNmYxY2YuNjcwY2M3NzhmYzc3MDI2Yi4yYWQwODEzOTY0MmQ0MzBhLjVhYWYxYWQ4ZGJhODNjMGIKICAgICBlZDA5NjY5ODY2OGE5NjMyLmIyMjE4OTEwZTkwZmUwYjkuYTk5Njc5MjEzZDZhNDU4Ni5hMDc5ZjdhNjVhMTM5NjVlCkBAIC0yNzg5OSwxMCArMjc4OTksMTAgQEAKICAgYWZ0ZXIKICAgICA0Njc2ZjJhMTM0YjZmMWNmLjY3MGNjNzc4ZmM3NzAyNmIuMmFkMDgxMzk2NDJkNDMwYS41YWFmMWFkOGRiYTgzYzBiCiAgICAgZWQwOTY2OTg2NjhhOTYzMi5iMjIxODkxMGU5MGZlMGI5LmE5OTY3OTIxM2Q2YTQ1ODYuYTA3OWY3YTY1YTEzOTY1ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDRjYjNjOTAxZWI1MjJjMy5kMDNjZmJkMzJkMDljYjJmCi0gICAgMDAwMDAwMDAwMDAwMDAwMQotVlBTUkFXXzEyOChtZW0pCisgICAgM2YyZTlhMDFhMDAwMDAwMC5iYWIzYzBiYWEwMDAwMDAwLmMxYjcwZDYzYzAwMDAwMDAuNDM1MTQ1MjVjMDAwMDAwMAorICAgIDk5MzJmMjg3OTk3YzM3MTIuNzI2OWMyYmZhZDMxZDVmZS4zOTc0ZDAwZDk1OWUwNWQ1LmNkYjg2YjFlNWE4YTI5MmUKKyAgICA2YWM0ZmFhMDEyYWVkYjAxCitWQ1ZUUFMyUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZGQ3ZDY4MzZiZmQzNzg1Ny41NTYyMDA1NmQyYjNhY2U3LjlmMzIzMWFkYmNkNDY1NGQuMDMyNDI3ZWE0Y2FkM2MwMQogICAgIDAwYjEzMGNjN2UwNGJiNWMuN2MwODNhOTk0NjI0ODg5MC5jZmNmN2RlNjBmM2RmZGY1LjRhNjVlYzQ2MmY3MGZkNmIKQEAgLTI3OTEyLDExICsyNzkxMiwxMSBAQAogICBhZnRlcgogICAgIGRkN2Q2ODM2YmZkMzc4NTcuNTU2MjAwNTZkMmIzYWNlNy45ZjMyMzFhZGJjZDQ2NTRkLjAzMjQyN2VhNGNhZDNjMDEKICAgICAwMGIxMzBjYzdlMDRiYjVjLjdjMDgzYTk5NDYyNDg4OTAuY2ZjZjdkZTYwZjNkZmRmNS40YTY1ZWM0NjJmNzBmZDZiCi0gICAgYjEyYWNlNGU2YTRkNjEzYi42OTcxOWJiZjkxNWEwN2I5LmRkMGMyMDU1YzE3ODVhMjEuNjg4MzE5OGRkYjcxODNiZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lN2U3M2VmMzA3OWVmZWZhLjI1MzJmNjIzMTdiOGZlYjUKKyAgICBiYmU2NDYzNWEwMDAwMDAwLmJmOWE4Y2E5YTAwMDAwMDAuMzg2NDg0ZmQ0MDAwMDAwMC40MTk1YTc4MDIwMDAwMDAwCisgICAgY2FiNmJlYThhMGJhMjYyMS43N2U4MWYzMTRkZTE2NzBkLmE3YjU5OGU1ZWU5MjM4ZmYuYmFjYWFjMmJlYjNlMGJhNwogICAgIDljODZhMThjZmM2M2QxZDEKIAotVlBTUkFXXzEyOChyZWcpCitWQ1ZUUFMyUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNmEwMmYyMWRhOTZiMTFlOS4yOTFmN2NjNzNiNThjNTNhLjA0YmJjMjVjMTk0NWUyMzguMDc5NjYwODRiMzk2NTNiOAogICAgIDgwOGI5ZDQ4OGVlMjA2OWIuYTgzMjg1OTU1ODMyZmJiMS42YTM0ODFhYzhmMTNiNWU4LmRhN2FmNDFkMmM5MTY2N2EKQEAgLTI3OTI2LDEwICsyNzkyNiwxMCBAQAogICBhZnRlcgogICAgIDZhMDJmMjFkYTk2YjExZTkuMjkxZjdjYzczYjU4YzUzYS4wNGJiYzI1YzE5NDVlMjM4LjA3OTY2MDg0YjM5NjUzYjgKICAgICA4MDhiOWQ0ODhlZTIwNjliLmE4MzI4NTk1NTgzMmZiYjEuNmEzNDgxYWM4ZjEzYjVlOC5kYTdhZjQxZDJjOTE2NjdhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAzZmZmY2ZmZmNmZmZkLmZmZmVmZmZmMDAwMTAwMDMKLSAgICAwMDAwMDAwMDAwMDAwMDBkCi1WUFNSQVdfMTI4KG1lbSkKKyAgICAzZWE5ODdlZDgwMDAwMDAwLmM1MjM2YTUwMjAwMDAwMDAuNDE0ZmVlM2RhMDAwMDAwMC5iY2YzMmNmOTIwMDAwMDAwCisgICAgZjRmNWVlMjA3MjRlMDE3YS43YTg2NjVmMjg2Y2IxYzZhLjM1NGMzZjZjZTkxYjUyODEuNGE3ZjcxZWRhNzk5NjdjOQorICAgIDlmMzc1MWZjZTJiZWNjYWQKK1ZDVlRQUzJQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICBkNjIzZWViNjQxMGExYTQ5LjBhNmQ4Y2E1YTk1YjgwMDEuODQ1ZTM1NTljZmEyN2UwNS41MjgyMzdiNDA3NmQ5NGMzCiAgICAgY2MwZmM0MDVkZTg4MGRjYi5kODIxNzM3NTg5MDdhNGQxLjFmMTAzZTIwMGFlNjY3YWYuYjg4ZjNiZDEzZTU5MWQzOQpAQCAtMjc5MzksMTEgKzI3OTM5LDExIEBACiAgIGFmdGVyCiAgICAgZDYyM2VlYjY0MTBhMWE0OS4wYTZkOGNhNWE5NWI4MDAxLjg0NWUzNTU5Y2ZhMjdlMDUuNTI4MjM3YjQwNzZkOTRjMwogICAgIGNjMGZjNDA1ZGU4ODBkY2IuZDgyMTczNzU4OTA3YTRkMS4xZjEwM2UyMDBhZTY2N2FmLmI4OGYzYmQxM2U1OTFkMzkKLSAgICA1ZGM3NGRkN2Q4NDU2MTVkLmJhNWZhMGZiYWRkZmFhOTYuMjg2OWZlMzM1MmEyOTM5My5jNWJlNDUyZTJjNjkyYjhlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwM2UwMDdjMDAxNTAwY2YuZmY3MTAwNzcwMDdjMDAzYQorICAgIGI4OGJjNmFiMjAwMDAwMDAuYzFmNDRmYzBhMDAwMDAwMC40MjUwNDZmNjgwMDAwMDAwLjM4ZWRiMjk4NjAwMDAwMDAKKyAgICA2NjE2MDcxNjQ5NGJkMTJiLjBjNzEwZWE1YjE2ZWNkZmUuNzkzM2YwN2VjNGUyYmVkZC5kMzVkNTMzOTZkMmJmODZmCiAgICAgM2ZiNjYwNWQ5YzJhYzE4NwogCi1WUFNMTERfMTI4KHJlZykKK1ZDVlRUUFMyRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjYxNjY5MDY1NWYzYzE4NC5jMWNhNmRiMDRkYTkxYTYyLjI5YTViOWRlMzI0MTRhYjIuZWYzYjkwZWQ3YmIzYTNiYgogICAgIGEyYzk2OGExMzUxMTM2MGYuNGJhZGZiOTAwMTY4ZjgyZS42ZjQ1OWUxM2NiZTM1ZDYxLjY2NGM1YjZjOTMxZmZmNTcKQEAgLTI3OTUzLDEwICsyNzk1MywxMCBAQAogICBhZnRlcgogICAgIDY2MTY2OTA2NTVmM2MxODQuYzFjYTZkYjA0ZGE5MWE2Mi4yOWE1YjlkZTMyNDE0YWIyLmVmM2I5MGVkN2JiM2EzYmIKICAgICBhMmM5NjhhMTM1MTEzNjBmLjRiYWRmYjkwMDE2OGY4MmUuNmY0NTllMTNjYmUzNWQ2MS42NjRjNWI2YzkzMWZmZjU3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAxYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YzAwMDAwMDg0MDAwMDAwLmIwMDAwMDAwNWMwMDAwMDAKLSAgICAwMDAwMDAwMDAwMDAwMDFhCi1WUFNMTERfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC5mZmZlODM0NDgwMDAwMDAwCisgICAgY2M1ODNkNThkOTdkNmE4NS41YzMzN2ZkMmU2M2U2MjMzLmUzZmIwMjFjYjdjNDM0NWEuYzdiZTVlNGI1OGZlMGI3YQorICAgIDY5YjU4ZjgzM2Q4ODMzNWEKK1ZDVlRUUFMyRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgN2RlNmRiN2FmNGRlYzFhOC43MmNiMGE0ZWQ0ZTNhMWM4LjliNmQ2ZTBjNTE2ZDY1YzQuYzhhYTdhY2E0MTFjNzFmZAogICAgIGRkMWRiYzFlOTgwZDczOTEuOWZjMmJlZTQ2NmNmM2M0YS43OTA4NzUzY2RhMmVlZTlhLjQ2ZjUxYzIyNTU3NDMyNGEKQEAgLTI3OTY2LDExICsyNzk2NiwxMSBAQAogICBhZnRlcgogICAgIDdkZTZkYjdhZjRkZWMxYTguNzJjYjBhNGVkNGUzYTFjOC45YjZkNmUwYzUxNmQ2NWM0LmM4YWE3YWNhNDExYzcxZmQKICAgICBkZDFkYmMxZTk4MGQ3MzkxLjlmYzJiZWU0NjZjZjNjNGEuNzkwODc1M2NkYTJlZWU5YS40NmY1MWMyMjU1NzQzMjRhCi0gICAgNjUyNmIwNWE0NTIwMDM0MC5hZDg3NTY4ODJhY2I3N2I3LmQyY2UxMDRlOWY4ZGI3ZTEuYjgyYWUyOTI4YzU2YjZlYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNDIxZDRmMDY4YmJiYTY4LjFiZDQ3MDg4NTVkMGM5MjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC5mZmZhYWMyYTAwMDAwMDA5CisgICAgZjNjYzMyMWExODIzMmVlMi5mOTY3Y2RhNWJkNjU4ZWJjLjgyOGRiYzJlYmM5NzdlYzQuNzk5M2NhODQ4NDUwMzc5MAogICAgIGU3N2RjZjY2ZDllZGYyZTIKIAotVlBTTExEXzEyOChyZWcpCitWQ1ZUVFBTMkRRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDVjMzRlZGEzMjZiYTIzOGQuNjJkZGJlNGEyYzIzYjBhMi5kZmFlMWZhNmJhMjliYzA1LjY1MGZmM2M5NGM1N2ZjNzAKICAgICAzNjA0MjBhNzA3NDIwNTNkLjhlMjNkMWQ2OWUyYjQ0YWUuYmJhODQ4ZjliZWEyM2UzZS41NzIxMzMwOTZiZDlmMDEwCkBAIC0yNzk4MCwxMCArMjc5ODAsMTAgQEAKICAgYWZ0ZXIKICAgICA1YzM0ZWRhMzI2YmEyMzhkLjYyZGRiZTRhMmMyM2IwYTIuZGZhZTFmYTZiYTI5YmMwNS42NTBmZjNjOTRjNTdmYzcwCiAgICAgMzYwNDIwYTcwNzQyMDUzZC44ZTIzZDFkNjllMmI0NGFlLmJiYTg0OGY5YmVhMjNlM2UuNTcyMTMzMDk2YmQ5ZjAxMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzUwOTFmMjBkNDQ3YzdjMC5lNDI2NjEyMDdiM2UwMjAwCi0gICAgMDAwMDAwMDAwMDAwMDAwNQotVlBTTExEXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZlMzdlMDAxYzY1YzUuODAwMDAwMDBmZmYyYWRhMworICAgIDg1MWRiN2I0ZjhiNGNmNjAuOGQ4Mjc4YjIwYTg0OTU1NC5jNWU0MTA0MzQ5ZTMyZTJkLmQ4MjRiYjJkYzk1NTI1ZGUKKyAgICAxZWFlZmNlODNmNjZkZjY1CitWQ1ZUVFBTMkRRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGU0ZjczNWY4YjQ2YWZkOGYuYjIwMDEyOTYzZWI2MmYyOS4xODMxMDVkYTNjZWRjYTQ3LmFiYmVhNzExMDhjNDEzM2MKICAgICAwNWNjZTE0YjQ1NmMzYzhiLmIzMmI3MmVlOGFhMzMwYTguY2Y0NzA5MGYzYjhlMDEzNC5mNjdiMDVlMDNlOGEzY2ViCkBAIC0yNzk5MywxMSArMjc5OTMsMTEgQEAKICAgYWZ0ZXIKICAgICBlNGY3MzVmOGI0NmFmZDhmLmIyMDAxMjk2M2ViNjJmMjkuMTgzMTA1ZGEzY2VkY2E0Ny5hYmJlYTcxMTA4YzQxMzNjCiAgICAgMDVjY2UxNGI0NTZjM2M4Yi5iMzJiNzJlZThhYTMzMGE4LmNmNDcwOTBmM2I4ZTAxMzQuZjY3YjA1ZTAzZThhM2NlYgotICAgIDVkZjk3ZmNkMGQ3ODU4ODMuZTVlYmQzMjk3NjA4MGY4OS45MDhmZmUzYzI0NzRmNzQ4LjA0NjcyNzFjODZjMmU0ZTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTEyMWUwMDBjMDI2ODAwMC42MGJjMDAwMDQ3OWQ2MDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGM3NGE4ODY4Mjk5YjBkYTMuYTI4YjMyYjQ5ZTcwMDg3Ny4zNmQ0NjI0YzEzYWE2N2FmLjMwY2UwNzMyN2NmNjQ5ZDcKICAgICBkNmZjYTM4ZGJkYjVhNTZkCiAKLVZQU0xMRF8xMjgocmVnKQorVkNWVFRQUzJEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICA1MjNjZjY5OGU1ODgzNTUyLjIxOGI3YTA5YjRlMDE2MTguNDc1OThhZjk5ZjY3NTcxZi45Y2U0YjAyZDIzM2MwZjk0CiAgICAgZmZkY2ZjYzE4ZmZkMzQzMy40Njg3Y2Y5Y2NiNTMzMDBlLjMxOWZkNzY2MTQ3YTM3MmMuYTA4OTY0Y2E3MDM3YTkyNApAQCAtMjgwMDcsMTAgKzI4MDA3LDEwIEBACiAgIGFmdGVyCiAgICAgNTIzY2Y2OThlNTg4MzU1Mi4yMThiN2EwOWI0ZTAxNjE4LjQ3NTk4YWY5OWY2NzU3MWYuOWNlNGIwMmQyMzNjMGY5NAogICAgIGZmZGNmY2MxOGZmZDM0MzMuNDY4N2NmOWNjYjUzMzAwZS4zMTlmZDc2NjE0N2EzNzJjLmEwODk2NGNhNzAzN2E5MjQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDBjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZkNzY2MDAwYTM3MmMwMDAuOTY0Y2EwMDA3YTkyNDAwMAotICAgIDAwMDAwMDAwMDAwMDAwMGMKLVZQU0xMRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMWZkNzk4ZjYwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICA2MTY3MTIxYWRhZmI3Mjk3LjYwZTQ5ODQ5MGJmNTg2MmIuM2ZjNzQxNjVjYzIxOWMyOC5lZWM0ZWZlODM0OTVhNWY0CisgICAgZjFmM2JlNDFlMjExODA4YworVkNWVFRQUzJEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICAwMGU3ZTMwNjNkMjUzZDdlLmNjZWIxYTIyYjQ5YzI5NzMuMGRkYzAyM2I2YzNiM2FhYi4xYzQwNTZjZjQ2Y2U5YTZlCiAgICAgZjk2ZWRhMjM2MmRlOThmNy5kYWZlYzVmNzdmMGU0MGZhLmY2YzBjMWNmYzhlMGVmNWIuYWQ2MjUwMTBhNWM2MTljYQpAQCAtMjgwMjAsMTEgKzI4MDIwLDExIEBACiAgIGFmdGVyCiAgICAgMDBlN2UzMDYzZDI1M2Q3ZS5jY2ViMWEyMmI0OWMyOTczLjBkZGMwMjNiNmMzYjNhYWIuMWM0MDU2Y2Y0NmNlOWE2ZQogICAgIGY5NmVkYTIzNjJkZTk4ZjcuZGFmZWM1Zjc3ZjBlNDBmYS5mNmMwYzFjZmM4ZTBlZjViLmFkNjI1MDEwYTVjNjE5Y2EKLSAgICBiNjUyMjA4NTZjNDc0ZjIyLmU2ZWIxMDA1ZGFkZGYyZDguZjU1YjUwZjEzY2VmNjE2Ny40ZTc4MmI5NDg1OTU1NWU3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU3ODAwMDAwYWQ4MDAwMDAuMDgwMDAwMDBlNTAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwLjAwMDAwMDAwMDAwMDY3NGQKKyAgICAxNTYwMzAxNjc4NmMxYzJjLjRiMDBmNWI5NWU5NjdjYmIuZTg3YjJiOGRlNDc1NGJmZC41YmQwZTNjODgxYzg4YzcyCiAgICAgMzBiNDc1MTYzNmVhZjgxNwogCi1WUFNSTERfMTI4KHJlZykKK1ZDVlRUUFMyRFFfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMjk3MWRjZWIzZTg3ZDY4MS5mMDY0ODVjNGExNTliYzQxLjY3ODc3MjdkYWFjNTE5NGQuYTllYWNlOGZkYjdkNmE0NwogICAgIGEyNTMxNGI0MzgyYzYyNWQuMjQyYTllNzkwNDFiZWE4Yy45NGNkODJiZjU3ZjQwNjNhLjE1NzZiNmUzM2QxMzdhNzEKQEAgLTI4MDM0LDEwICsyODAzNCwxMCBAQAogICBhZnRlcgogICAgIDI5NzFkY2ViM2U4N2Q2ODEuZjA2NDg1YzRhMTU5YmM0MS42Nzg3NzI3ZGFhYzUxOTRkLmE5ZWFjZThmZGI3ZDZhNDcKICAgICBhMjUzMTRiNDM4MmM2MjVkLjI0MmE5ZTc5MDQxYmVhOGMuOTRjZDgyYmY1N2Y0MDYzYS4xNTc2YjZlMzNkMTM3YTcxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDA5NGNkODAwMDU3ZjQwLjAwMDE1NzZiMDAwM2QxMzcKLSAgICAwMDAwMDAwMDAwMDAwMDBjCi1WUFNSTERfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDgwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAuMDAwMDAwMDAwMDQzZTA2Yy44MDAwMDAwMDAwMDAwMDAwCisgICAgODRiNmU4Y2U2Y2JjNzIxOS4wODJiMDVhZGU2NGNlNDc3Ljk1YzY0YjY5NGE4N2MwZDguNWYxMDQxMzFiNTFhNWIxOAorICAgIGY0YjdkZDA0MDJhM2E1ZWMKK1ZDVlRUUFMyRFFfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYTRhOWFlZDgyYWViZDA1MS5hNWNmN2JmOGRmYmY2ZjUyLjZmZmU0YjAzOWRkMjI3NmUuMjAxMGZkYWFjNzAzMDVlMAogICAgIDRjYjQyZjliNGFmZDk3NzIuYjYzY2QwYzViMmY5MDlhYy45ZmMzNDQxMWZkNWVlODRiLjJlNGEzMjE4MTdiMDg5ZjQKQEAgLTI4MDQ3LDExICsyODA0NywxMSBAQAogICBhZnRlcgogICAgIGE0YTlhZWQ4MmFlYmQwNTEuYTVjZjdiZjhkZmJmNmY1Mi42ZmZlNGIwMzlkZDIyNzZlLjIwMTBmZGFhYzcwMzA1ZTAKICAgICA0Y2I0MmY5YjRhZmQ5NzcyLmI2M2NkMGM1YjJmOTA5YWMuOWZjMzQ0MTFmZDVlZTg0Yi4yZTRhMzIxODE3YjA4OWY0Ci0gICAgYzZhMmRiMzg3ZGU1Yjc3Yy4xMzRhZTJhMTgyZjY3ZWQ0Ljc1NDY2Y2MzMjNmOWU0M2IuMTliZWU2MWZkNTFhODliZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDA0ZmUxYTAwMDdlYWY3LjAwMDE3MjUxMDAwMGJkODQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGZmZmY3Y2ZiCisgICAgZWY0MDMwOWFlMGFmZWM5Yi4xNzQ1YWVmOGVhNDMwODc1LmNiNTMzZDA1MmJiMWQ3NmEuM2ViOTE1MmI5ZGNlNDBlZQogICAgIGZhODhiY2E4MGM1N2VjMmQKIAotVlBTUkxEXzEyOChyZWcpCitWQ1ZUVFBTMkRRXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGE3NzRkNTAyYmU0MWM3MjcuYTM1YWFhYWY4ZTY4ZjFmYS4yMDc5MmUzNzg3NmJlMzNjLjdlYjUzNWM0MzA5MTdkMDQKICAgICBhMmNjNWVhNjRlMTkwZDg5LmJlYmNjMzYyYTQxYjg0YzYuODkzMjYwYzhmNGZiNGRkNS42YTNhY2ZlYTRlYTY5MTM0CkBAIC0yODA2MSwxMCArMjgwNjEsMTAgQEAKICAgYWZ0ZXIKICAgICBhNzc0ZDUwMmJlNDFjNzI3LmEzNWFhYWFmOGU2OGYxZmEuMjA3OTJlMzc4NzZiZTMzYy43ZWI1MzVjNDMwOTE3ZDA0CiAgICAgYTJjYzVlYTY0ZTE5MGQ4OS5iZWJjYzM2MmE0MWI4NGM2Ljg5MzI2MGM4ZjRmYjRkZDUuNmEzYWNmZWE0ZWE2OTEzNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTEyNjRjMTkxZTlmNjliYS4wZDQ3NTlmZDA5ZDRkMjI2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMwotVlBTUkxEXzEyOChtZW0pCisgICAgODAwMDAwMDA4MDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAxMzllYworICAgIGYyZWNhZTc4NzljMWNlMzQuOTk4OGM3NTI3NWExM2U1My5lYTYyYzg5NGIwODBiOTJhLjVkZDhkOTFmNDc5Y2Y2MDcKKyAgICAxYzhhNDIwNjVhOTZiZTAzCitWQ1ZUVFBTMkRRXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDg0OGUzZDA1ZjdmNGU2NDYuZmY0YzZkN2U0Y2E4YzBkNC4xMTg5YTk2ODZhOGJkZTZkLjliNzJmNWE2Mzc4ZDMzNDAKICAgICA3MWIwNDYwODM4YzIyOGZiLmNhNDc4YTdlNmVhZDBlOGMuNjAwMjFiY2IzNWEwZmNhMy4xYjM2YzRiY2ZlMzIyY2Q3CkBAIC0yODA3NCwxMSArMjgwNzQsMTEgQEAKICAgYWZ0ZXIKICAgICA4NDhlM2QwNWY3ZjRlNjQ2LmZmNGM2ZDdlNGNhOGMwZDQuMTE4OWE5Njg2YThiZGU2ZC45YjcyZjVhNjM3OGQzMzQwCiAgICAgNzFiMDQ2MDgzOGMyMjhmYi5jYTQ3OGE3ZTZlYWQwZThjLjYwMDIxYmNiMzVhMGZjYTMuMWIzNmM0YmNmZTMyMmNkNwotICAgIGJmYmJkOWZiM2MwYzQwNGUuYjAyOTAzZTM3YTVjZjMwOC42MmJmOWE2OGY0ZWI1MTIyLmM4ZmIzMDQxYTFmYmRlOWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDMwMDAwMDAwMS4wMDAwMDAwMDAwMDAwMDA3CisgICAgMDAwMDAwMDA4MDAwMDAwMC44MDAwMDAwMDA1NDYwNmEwLjAwMDAwMDAwODAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDRhN2M3MmNhMWNkZmVjNmMuMGIzZWQ0MTkwZDNmYWNmNC5mMzhjYTEyY2MzNzg5YzE1LmZkMGQzNWExYmQ3Mjg1MzkKICAgICAxNWI3Y2Y0OGVlMjU1ZjVkCiAKLVZQU1JMRF8xMjgocmVnKQorVkNWVFRQUzJEUV8yNTYocmVnKQogICBiZWZvcmUKICAgICA2ZDQ3ZmJhMmNmOWZhNmIyLmVlYzA4ZTYxZjc0N2U2ODEuMzhkMmY3OGNjMmU1NzVmYi5lZjM1YWMwMmJkNTQ5N2E5CiAgICAgNjIwN2I0MWJmYzZkOTdlNS44NjUxYThhY2U2NGVlYmI4LjkyMzA2YWE4MzZkNzg5YzkuMzI4NjM3ZDVmZThhZmYwYQpAQCAtMjgwODgsMTAgKzI4MDg4LDEwIEBACiAgIGFmdGVyCiAgICAgNmQ0N2ZiYTJjZjlmYTZiMi5lZWMwOGU2MWY3NDdlNjgxLjM4ZDJmNzhjYzJlNTc1ZmIuZWYzNWFjMDJiZDU0OTdhOQogICAgIDYyMDdiNDFiZmM2ZDk3ZTUuODY1MWE4YWNlNjRlZWJiOC45MjMwNmFhODM2ZDc4OWM5LjMyODYzN2Q1ZmU4YWZmMGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDBmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDEyNDYwMDAwMDZkYWYuMDAwMDY1MGMwMDAxZmQxNQotICAgIDAwMDAwMDAwMDAwMDAwMGYKLVZQU1JMRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC4wMDAwMDAzZmZmZTU2ZjUzLjgwMDAwMDAwZmZmZjRhZmIKKyAgICA4ZjRiYmQxYmFjMzI2Njk0LjA3OGNjNjBmNzY2ZjA0M2YuNDI3ZTJkOGJjOWQ0ODU2ZC5mYzRlYmUyN2M3MzUwNWUxCisgICAgM2M1ZmIyN2Q4N2MyMWJhZgorVkNWVFRQUzJEUV8yNTYobWVtKQogICBiZWZvcmUKICAgICAzMzQ3MTY4MWZlZDk4ZWZhLjdmNjUwNTc5Njc0MmJjNjcuYTdjZmMzZmY0ZTlmOTFlNi40ZjA1NzUyYjIwZjZlNTlhCiAgICAgYmNkMjY3MWY0OTg3MWFlZC43YmUxY2JhN2RlZDVhYmM4LmFiOGZhZDUyYWNhMDE5NjAuZmE4NmZkMjNhNTk2ODAzZgpAQCAtMjgxMDEsMTEgKzI4MTAxLDExIEBACiAgIGFmdGVyCiAgICAgMzM0NzE2ODFmZWQ5OGVmYS43ZjY1MDU3OTY3NDJiYzY3LmE3Y2ZjM2ZmNGU5ZjkxZTYuNGYwNTc1MmIyMGY2ZTU5YQogICAgIGJjZDI2NzFmNDk4NzFhZWQuN2JlMWNiYTdkZWQ1YWJjOC5hYjhmYWQ1MmFjYTAxOTYwLmZhODZmZDIzYTU5NjgwM2YKLSAgICBiNWNlMWY0NDgzZDc3YWI1LmUwMGEwYTBmYWU3NzcxNjMuZjE5YTAyZjZhYjdlNTdkOC45ZjRmYzBlMWY1M2Y5NDA4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwYWI4MDAwMDBhY2EuMDAwMDBmYTgwMDAwMGE1OQorICAgIDAwMDAwMDAwODAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMC4wMDAwMDAwMDRmYzhmMzAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBmOTA2YmNkYWM5ZDU2YjdlLjA4MmJiZTFmNzJiNTQ4ZTQuNTRiYTNkZDY2NzQ0MDg3Yi45OWFiYmFkMGFjN2U1YWEwCiAgICAgNDZlNWU3NWI2NWRlMTFiNAogCi1WUFNSQURfMTI4KHJlZykKK1ZDVlREUTJQU18xMjgocmVnKQogICBiZWZvcmUKICAgICAwMTRhNDNmMGJjZWJmM2VmLjYzNDViOWNlMzY4ZWE5NzMuNTA5MmUzNDJjNzFhNmRmNi5hZmJjZGJkZWZkZmVlODc0CiAgICAgMjYyNmNiZmE0ZTMyM2RmZS5kMTU4OTIwZGU3MGRlZmMxLjE0ODk3NmU0NDgzMjFiNDUuZTA2YjU3ZmE4OGI4YjNmMQpAQCAtMjgxMTUsMTAgKzI4MTE1LDEwIEBACiAgIGFmdGVyCiAgICAgMDE0YTQzZjBiY2ViZjNlZi42MzQ1YjljZTM2OGVhOTczLjUwOTJlMzQyYzcxYTZkZjYuYWZiY2RiZGVmZGZlZTg3NAogICAgIDI2MjZjYmZhNGUzMjNkZmUuZDE1ODkyMGRlNzBkZWZjMS4xNDg5NzZlNDQ4MzIxYjQ1LmUwNmI1N2ZhODhiOGIzZjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDBjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDE0ODk3MDAwNDgzMjEuZmZmZTA2YjVmZmY4OGI4YgotICAgIDAwMDAwMDAwMDAwMDAwMGMKLVZQU1JBRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jZWZkNGM1OTRlODE1YTBkLjRlNDAxNzYwY2Q3YTEwN2UKKyAgICAxZDczNGMxZDkxOWJmODQ3LjI1MmFjYTE4ODM4ZTg2MTcuODE1OWQzNTU0MGFkMDY0ZC4zMDA1ZDgxZWYwNWVmODIxCisgICAgMDc4NmQ3ZmUwMzYxZWIyYworVkNWVERRMlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDI0ZTVhM2EzN2Q5NWI4NmIuYTc3YzNkMGY3YmQ1ZTFkOC5jMzgxMWZiZGE2YTg0Zjc3LmUxY2I5NWZjZWUyOGJhNWUKICAgICA2MWVlYmFmNzc3MDUxYzA4LjBjMmI0YTI1MGU3OTIyZWUuZDVkYzQyNWM3Y2I5MTBkZi4yZGZlYjRkMjM5ODVlNzVjCkBAIC0yODEyOCwxMSArMjgxMjgsMTEgQEAKICAgYWZ0ZXIKICAgICAyNGU1YTNhMzdkOTViODZiLmE3N2MzZDBmN2JkNWUxZDguYzM4MTFmYmRhNmE4NGY3Ny5lMWNiOTVmY2VlMjhiYTVlCiAgICAgNjFlZWJhZjc3NzA1MWMwOC4wYzJiNGEyNTBlNzkyMmVlLmQ1ZGM0MjVjN2NiOTEwZGYuMmRmZWI0ZDIzOTg1ZTc1YwotICAgIDljNmQ5N2U4MTBiZWQzMzAuYTZjZDZkY2NlOTEyZjczMy4zNTA2YWNlMTIyY2M4NjdjLmMxM2QyZDQ0YmQ1MmNhZjMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmYwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNlNzFmYjgxY2ViMmFmNjEuY2RmMWEzNTBjZDhlYmEyZAorICAgIGFmMmViNjYwNjFjYjk5MGUuZDNhZWE0NzFhNTJkOWI1My5jMGNjZGEzOGI0ZWQ2ZDc5LmY5ZDVmYmJjMTUxYjlmZDEKICAgICAzMTEyMWFhOGRkNmJhMjlmCiAKLVZQU1JBRF8xMjgocmVnKQorVkNWVERRMlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGM1NDA4NjczYjJjZTBlMGMuNzdmYzkzNGQ4OTM4MjljZi5lZDFhZWI3ZmUwNTU0YmZiLjUzZmE0OTRlNGQyODgwMDMKICAgICAxMGFiM2M4ODMwZDAyMGMyLmQwYTVhYjlhYTExMTQwOWUuNTI1ZDNjNjEzNjE2NDNkNy5jODVjNzQwZDA5OGE3YzQ2CkBAIC0yODE0MiwxMCArMjgxNDIsMTAgQEAKICAgYWZ0ZXIKICAgICBjNTQwODY3M2IyY2UwZTBjLjc3ZmM5MzRkODkzODI5Y2YuZWQxYWViN2ZlMDU1NGJmYi41M2ZhNDk0ZTRkMjg4MDAzCiAgICAgMTBhYjNjODgzMGQwMjBjMi5kMGE1YWI5YWExMTE0MDllLjUyNWQzYzYxMzYxNjQzZDcuYzg1Yzc0MGQwOThhN2M0NgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMjkwMDAwMDAxYi5mZmZmZmZlNDAwMDAwMDA0Ci0gICAgMDAwMDAwMDAwMDAwMDAxOQotVlBTUkFEXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRlZDMyZmUzY2ViY2Q0MGMuY2U1MDRjNDM0ZWI5ZTIzZgorICAgIDQwNjc3MjQ1OTRlMzI2YmEuYTZiMzc5MDQxNzM5ZjMxOS42OTk3ZjE1NmExOTVmOWQ5LmNiZWNlZjNhNWNmMTFmYTUKKyAgICAxMmIxMzY3ZjJiMGUzZDE5CitWQ1ZURFEyUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYWJkYjJhMWY4ZDgxMzRmNi5kYzUwZWNjNGIzMGM5MTU1LmRhYjEyN2Y5YWNhMDA2MWMuZDMyNzRjNDBlZTZhMzA1NwogICAgIDczMzQ0NjA1OWY1N2MwNjguYTBhNjllM2VlYTAzOTJlYS4wZmI5ZmZmZmEyYTM5MGRlLmY3YmRhMmFmYzUwOTlmYjkKQEAgLTI4MTU1LDExICsyODE1NSwxMSBAQAogICBhZnRlcgogICAgIGFiZGIyYTFmOGQ4MTM0ZjYuZGM1MGVjYzRiMzBjOTE1NS5kYWIxMjdmOWFjYTAwNjFjLmQzMjc0YzQwZWU2YTMwNTcKICAgICA3MzM0NDYwNTlmNTdjMDY4LmEwYTY5ZTNlZWEwMzkyZWEuMGZiOWZmZmZhMmEzOTBkZS5mN2JkYTJhZmM1MDk5ZmI5Ci0gICAgNDY4OTA3MWQ3YzlhOWM5YS5lOGI1ODYxZmQ2NTc2NTI0LjIxOTY3ZTAwMTY0ZTRjOGEuMzFhNmVmMGZjM2ZkODFhYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwN2RjZmZmZmQxNTFjLmZmZmZiZGVkZmZmZTI4NGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2UxNTNiNjBjZWE2YmZmNC5jZTMzNjJjZmNkOGNhZTdkCisgICAgMDBhNmU3NTM0MTU5ODZiOS4wZmM5OWVkNDEyOTE0NWFmLmVkMTYxZmU5MjRhZGY4NGQuZGUyZTMwY2M4NGQyMTNkOAogICAgIDU4YTA2MDUzYTMxNTkxZWQKIAotVlBTUkFEXzEyOChyZWcpCitWQ1ZURFEyUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZmM0YTdiMGViYzUxMzc5Ni43ZDU2NjQ5MzA5OWQzN2YwLjczMmVlNGM3M2EzZjZmMzguNGQwMzVlYTdlN2NkNGU1MwogICAgIDI2NzY3ZTZiNmMxMjQwN2UuOTk2N2Y5YzlmMTc0NmU2Yy42ZjJmNTQ2NmViZWMxZjZiLjFlMmFiODI0N2JiYTBhYzcKQEAgLTI4MTY5LDEwICsyODE2OSwxMCBAQAogICBhZnRlcgogICAgIGZjNGE3YjBlYmM1MTM3OTYuN2Q1NjY0OTMwOTlkMzdmMC43MzJlZTRjNzNhM2Y2ZjM4LjRkMDM1ZWE3ZTdjZDRlNTMKICAgICAyNjc2N2U2YjZjMTI0MDdlLjk5NjdmOWM5ZjE3NDZlNmMuNmYyZjU0NjZlYmVjMWY2Yi4xZTJhYjgyNDdiYmEwYWM3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAxMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMGRlNWZmZmZmZDdkLjAwMDAwM2M1MDAwMDBmNzcKLSAgICAwMDAwMDAwMDAwMDAwMDEzCi1WUFNSQURfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2VjMzhjYzM0ZWFlZWEwMS5jZWY5NTJhZWNlZWZiMGFmCisgICAgN2M4ODI4YjdmZjU1NmRiYy4xZWQ4NWJjODhlMDk1YWUyLjllMzk5ZTU0NTc3NTAwN2QuODM1NmE5MTA4ODI3YThhYgorICAgIGNmZjMzOTU2MzljMDAxNzMKK1ZDVlREUTJQU18xMjgobWVtKQogICBiZWZvcmUKICAgICBmYmY5ZDMwYzJiNTZiMTVhLjYwMDVjODdmMWFlZjBhNmIuM2ZkMDIxNjg3Y2RmODYzNC44OWQ5NzE3YzRhNjhhOWI1CiAgICAgZTUzNWY0MWU3YmY0NzM4Yi4zYTM0M2Y5ODNjM2RmYTBhLjZmNThlZmFmZmE3NzI4N2EuN2Q0NTVkZmYzNThiYzc0NgpAQCAtMjgxODIsMTEgKzI4MTgyLDExIEBACiAgIGFmdGVyCiAgICAgZmJmOWQzMGMyYjU2YjE1YS42MDA1Yzg3ZjFhZWYwYTZiLjNmZDAyMTY4N2NkZjg2MzQuODlkOTcxN2M0YTY4YTliNQogICAgIGU1MzVmNDFlN2JmNDczOGIuM2EzNDNmOTgzYzNkZmEwYS42ZjU4ZWZhZmZhNzcyODdhLjdkNDU1ZGZmMzU4YmM3NDYKLSAgICA2ODc0MTY3ODQ0YTYwNDMzLjY2NjM4YTZlMDBjZTdhNDQuOGEzYzQxODcyM2RlZmFlMS5kNGNiNWU0OWI0Njk5OGRjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMGRlYjFkZmZmZjRlZTUuMDAwZmE4YWIwMDA2YjE3OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZTdmNDA4NjRlZjliZjBjLmNlZWM0ZDFkNGU5NGQxNTMKKyAgICA2MDgwYjcwNmEzNzkyMDdkLjQwZGNhMzZkMDMyYmM1YzUuNmM0NzkzZGUxMzFmYjk5NS5lY2I2NzFjNjY0OGU1NjI1CiAgICAgMWY1MTkxZTJlMDg2M2VjYgogCi1WUFNMTFFfMTI4KHJlZykKK1ZDVlREUTJQU18yNTYocmVnKQogICBiZWZvcmUKICAgICBjYmU5YmEwOWM1ZGU4YjdhLmE5MjY1MmI1YjM3ODgzOTYuMjRlZDg4MDFlMGUyMTgzYS5mMDQ3NjI5ZmU3NDYyMWMxCiAgICAgNGFjYWU4YThhZjIyN2JkZi4xZjMxNjM2ZjkxYWZlOGFhLjZlZTAzNTk3MzQ3ZWFmNGYuZjQwNjI4YjZiYTYwZWQ5MgpAQCAtMjgxOTYsMTAgKzI4MTk2LDEwIEBACiAgIGFmdGVyCiAgICAgY2JlOWJhMDljNWRlOGI3YS5hOTI2NTJiNWIzNzg4Mzk2LjI0ZWQ4ODAxZTBlMjE4M2EuZjA0NzYyOWZlNzQ2MjFjMQogICAgIDRhY2FlOGE4YWYyMjdiZGYuMWYzMTYzNmY5MWFmZThhYS42ZWUwMzU5NzM0N2VhZjRmLmY0MDYyOGI2YmE2MGVkOTIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDE4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk3MzQ3ZWFmNGYwMDAwMDAuYjZiYTYwZWQ5MjAwMDAwMAotICAgIDAwMDAwMDAwMDAwMDAwMTgKLVZQU0xMUV8xMjgobWVtKQorICAgIDRlNTY1ZDE0Y2FjYmExMGMuNGJkNTZjZGM0ZTEzZGVhYS5jZWI2YzA1YmNlYTJkMmQwLmNkYjA1YjhiY2UzZDk1NmQKKyAgICAzNTk3NDRmYWZmOWEyZjdhLjAxYWFkOWI4MjRmN2FhNzAuYTQ5ZmQyNzVhZTk2OTgwNy5lOWY0OGU5NmQwOWFhNGQxCisgICAgOTFiYjI2Mzc0OWQzMDc5OAorVkNWVERRMlBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDI5NzJhNWRlMzMyZWJlYjMuNTgxYjZhODU5ZWU4NmIwOC4yNmIwMzUxZjEyMjA4MDdjLjQ4MDJiYzk1MGQyYTYyMDMKICAgICA4Y2U0ODk3OGE3Yjc4NjRlLmJmMTc4NTM4YjE1MDM5ZmIuZTc0YmY3NDIzZWIwNDgzMi5jMTc5NWQ2NzUzZDQ2MDRlCkBAIC0yODIwOSwxMSArMjgyMDksMTEgQEAKICAgYWZ0ZXIKICAgICAyOTcyYTVkZTMzMmViZWIzLjU4MWI2YTg1OWVlODZiMDguMjZiMDM1MWYxMjIwODA3Yy40ODAyYmM5NTBkMmE2MjAzCiAgICAgOGNlNDg5NzhhN2I3ODY0ZS5iZjE3ODUzOGIxNTAzOWZiLmU3NGJmNzQyM2ViMDQ4MzIuYzE3OTVkNjc1M2Q0NjA0ZQotICAgIDk1ZGY0ZGVmYzM3YjFhOTcuYzZkODkxN2VkNDYwZDUwMC4yMjQ4OWIwZGMzYjViZmJlLjZkNGViMTU2MWIxZmNlOTUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTk3ZWU4NDdkNjA5MDY0MC4yZjJiYWNlYTdhOGMwOWMwCisgICAgNGUyNWNhOTc0ZTRjYmFmYi40ZWIwMzZkNWNlYzIyZjJhLjRlMWFjMGQ0NGQ5MTA0MDQuNGU5MDA1Nzk0ZDUyYTYyMAorICAgIDIyMmQ2ZDMxYTM4NTM4YjguY2FhYThiYzNhNWE0N2JjMy5iMTcyOWU2Y2JkM2JhMDRkLmE3Y2ZiNWNlMDE5N2U3ODMKICAgICBjYTQ2NjQzYWEyYzhlOGM1CiAKLVZQU0xMUV8xMjgocmVnKQorVkNWVERRMlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDM0ZmZiOTA5OTkzZjBkMDcuMGQ5YjY2Mjg2MmUyOWFkZC4yNWQ5NmU3M2JkYTY2NmVmLjcyOTc3YjRiNDk0Y2E5MGIKICAgICA0MDQ4YjNhNDgzODg5MWY0LjM0ZjViMmMyMWQ5ZGZkMzMuMzRiMTM2ZmFiYWY1ZDMzMS4zZjgyYWU5NjgyZjc5NDIzCkBAIC0yODIyMywxMCArMjgyMjMsMTAgQEAKICAgYWZ0ZXIKICAgICAzNGZmYjkwOTk5M2YwZDA3LjBkOWI2NjI4NjJlMjlhZGQuMjVkOTZlNzNiZGE2NjZlZi43Mjk3N2I0YjQ5NGNhOTBiCiAgICAgNDA0OGIzYTQ4Mzg4OTFmNC4zNGY1YjJjMjFkOWRmZDMzLjM0YjEzNmZhYmFmNWQzMzEuM2Y4MmFlOTY4MmY3OTQyMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGIxMzZmYWJhZjVkMzMxMC5mODJhZTk2ODJmNzk0MjMwCi0gICAgMDAwMDAwMDAwMDAwMDAwNAotVlBTTExRXzEyOChtZW0pCisgICAgY2VhNDkzMDJjZWMyODZhZC5jZWJhYzc4ZmNkM2EyNGFlLmNlMDVkMjZiY2UzNTczNzUuNGVlM2IwMGU0ZWRhODgwNAorICAgIGFkYjY3ZWYxOWViY2E5ODEuYTI5YzM4OGNmNDVkYjUyMS5kZThiNjUzZGQyYTMyMmE1LjcxZDgwNzIxNmQ0NDAyMTQKKyAgICA4ZWRjMjQzODU3ZmZmZDQ0CitWQ1ZURFEyUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMjdkNjg4NmM1ZTgyY2I3ZS5jNjczNDk3YzA4YzBiNTc5LmExODI2YTk0NDk3YjgyMTEuMzEyNmM1ZDIyNDFiN2QzMAogICAgIDE5OTJhZWE4OWZkYTI3ZjAuZjJmMGE3ODNkM2M2MTBjYy40YjgzZGZlZTBhMjc0MGUxLmE4OTlmYWVkY2IwZTQ5ODAKQEAgLTI4MjM2LDExICsyODIzNiwxMSBAQAogICBhZnRlcgogICAgIDI3ZDY4ODZjNWU4MmNiN2UuYzY3MzQ5N2MwOGMwYjU3OS5hMTgyNmE5NDQ5N2I4MjExLjMxMjZjNWQyMjQxYjdkMzAKICAgICAxOTkyYWVhODlmZGEyN2YwLmYyZjBhNzgzZDNjNjEwY2MuNGI4M2RmZWUwYTI3NDBlMS5hODk5ZmFlZGNiMGU0OTgwCi0gICAgNDFkYjEzZDczNTEyY2ZjMy44Yjc3OTQ3NDlkNTlmNzI3LjdkNmMxNTg2NTI2ZWFhYmUuOWYzMTAwZmM2MzA5YzI0MgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZjdmYjgyODlkMDM4NDAwLjY3ZWJiNzJjMzkyNjAwMDAKKyAgICA0ZTFmNWEyMjRlYmQwNTk3LmNlNjYzMmRhNGQwYzBiNTguY2ViY2ZiMmI0ZTkyZjcwNC40ZTQ0OWIxNzRlMTA2ZGY1CisgICAgNzk3ZjMxZTczZDM3N2QyNi5lZjU0MGRiYTAyMDVhNjM2LjExMDk4NzQ5M2Q1YTdkZDQuNzIzYWQzNjk4Nzk3MjYyMQogICAgIDdkMDA3MGEyZDM0NWFmY2EKIAotVlBTTExRXzEyOChyZWcpCitWQ1ZURFEyUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMWNjZWQyMTJlNDlkOTllOS45ZTQ4ODZjM2QyNTRlZTQzLjc4ZDUwY2MwOWQ1NzU4YTQuZTQyNmIxMjFlOGZhNzU0ZQogICAgIGFhZjJmNTI1NTUyZTIyMjkuOGQwMzhkNTcxMTc1ZGQ0Ny44MzQ1OGZmNDBiZGE0YTFlLmQzOGUxMGZiNmU1NzRlNTkKQEAgLTI4MjUwLDEwICsyODI1MCwxMCBAQAogICBhZnRlcgogICAgIDFjY2VkMjEyZTQ5ZDk5ZTkuOWU0ODg2YzNkMjU0ZWU0My43OGQ1MGNjMDlkNTc1OGE0LmU0MjZiMTIxZThmYTc1NGUKICAgICBhYWYyZjUyNTU1MmUyMjI5LjhkMDM4ZDU3MTE3NWRkNDcuODM0NThmZjQwYmRhNGExZS5kMzhlMTBmYjZlNTc0ZTU5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAxNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZTgxN2I0OTQzYzAwMDAwLjFmNmRjYWU5Y2IyMDAwMDAKLSAgICAwMDAwMDAwMDAwMDAwMDE1Ci1WUFNMTFFfMTI4KG1lbSkKKyAgICA0ZDA2NzZlZWNlNWI2YzBkLjRlNTFmZTg5Y2NhMTdhZWEuY2VkZmJmZTFjZTQ5NmM4NC40ZWUwZTZiMzRlZmFmYjI0CisgICAgMDg2NzZlZTRjOTI0ZmNiZS4zNDdmYTI1OGZhZjQyOGIyLjkwMjAwZjkzY2RhNGRlZTQuNzA3MzU5Njc3ZDdkOTFkMQorICAgIGQ3ODczY2QwM2U1ZTc0OTUKK1ZDVlREUTJQU18yNTYobWVtKQogICBiZWZvcmUKICAgICBjOTE3NDNlYTRhMmQyNzlhLjhmNTFiZDY4MDRhMmM2NmIuYTVkN2E4OWNkZDZiZmM3MS40OTI0MDNkNzVhMDNmNzg5CiAgICAgMjJlZmViYTNiZWY2NjcwYy43NmMwYmQ0MDBmODgxZGU5LjRmNTI0ZjQ4ZGExNTNlYzcuZjQ0NzZiZjcyYWMzNDBlOQpAQCAtMjgyNjMsMTEgKzI4MjYzLDExIEBACiAgIGFmdGVyCiAgICAgYzkxNzQzZWE0YTJkMjc5YS44ZjUxYmQ2ODA0YTJjNjZiLmE1ZDdhODljZGQ2YmZjNzEuNDkyNDAzZDc1YTAzZjc4OQogICAgIDIyZWZlYmEzYmVmNjY3MGMuNzZjMGJkNDAwZjg4MWRlOS40ZjUyNGY0OGRhMTUzZWM3LmY0NDc2YmY3MmFjMzQwZTkKLSAgICBiZWRiYWZlNmI1YzVmMDE3LjE4ZmY2YWQ2ODc2MDNlZTYuMGViYTE2NDkwYjAwYWJlMC5lZWQ1NDI2MGQ4NzFmNWIxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1M2VjNzAwMDAwMDAwMDAuYzM0MGU5MDAwMDAwMDAwMAorICAgIGNlNWJhMmYwNGU5NDVhNGYuY2VlMTVjODU0Yzk0NThjZC5jZWI0NTBhZmNlMGE1MDBlLjRlOTI0ODA4NGViNDA3ZWYKKyAgICA3OWE3MGJhMDRjYTc3ZWU2LmQzNWNjMDk4MDdiOTY1MGIuYmVkYzc2ODk4ZjM3ZmZlNy45MTE5ODQ3ZjAwOTg1MThkCiAgICAgM2E2MTJkYmUzZmM0OTEyOAogCi1WUFNSTFFfMTI4KHJlZykKK1ZDVlRUUEQyRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDVmNzNhOGIzMDgyZjEyZS4yZjFlN2JiYjllYThjY2E1LjAxMjFiYmYwMmIxY2NlMDcuM2I4NGVjZjY4MGM3ZjUwOQogICAgIDBlMjhhNjUxNzA1ZGFkNGMuYmMwZDdiMjRjN2QyOTc4MS4wMDliNTg0YzkxMTdiNDg0LjYxN2VmNTdiZmFiYjRiNzEKQEAgLTI4Mjc3LDEwICsyODI3NywxMCBAQAogICBhZnRlcgogICAgIDQ1ZjczYThiMzA4MmYxMmUuMmYxZTdiYmI5ZWE4Y2NhNS4wMTIxYmJmMDJiMWNjZTA3LjNiODRlY2Y2ODBjN2Y1MDkKICAgICAwZTI4YTY1MTcwNWRhZDRjLmJjMGQ3YjI0YzdkMjk3ODEuMDA5YjU4NGM5MTE3YjQ4NC42MTdlZjU3YmZhYmI0YjcxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMjZkNjEzMjQ0NWVkLjAwMTg1ZmJkNWVmZWFlZDIKLSAgICAwMDAwMDAwMDAwMDAwMDBhCi1WUFNSTFFfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCisgICAgNGE4YjhiNzc0YjliMjc4MC5jYjgzMWQ5MTExZDY5NDQwLmRkZGU2NWJkOGMwM2VhYjIuMTg5N2FkN2RmYjAwMDFjNgorICAgIDYxNGU1NWQyYmE2OWRiMGEKK1ZDVlRUUEQyRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzM4ODdmZWY3MjY2MDM0NC43NTU0ZmNiMDFlMTY1ZWVkLjA1YTJiNjZkNjljODNkN2EuNzQzZmNkYWE1YjBjYjFiYwogICAgIDFhMGZhNmMwNDAwNDM1YTIuY2VlOWJkOTNiMGRmZTEyMS44NjY5Y2Y0NjA4MTQ1MzgwLjRhODRjNzRhZDlkY2U2ZjcKQEAgLTI4MjkwLDExICsyODI5MCwxMSBAQAogICBhZnRlcgogICAgIGMzODg3ZmVmNzI2NjAzNDQuNzU1NGZjYjAxZTE2NWVlZC4wNWEyYjY2ZDY5YzgzZDdhLjc0M2ZjZGFhNWIwY2IxYmMKICAgICAxYTBmYTZjMDQwMDQzNWEyLmNlZTliZDkzYjBkZmUxMjEuODY2OWNmNDYwODE0NTM4MC40YTg0Yzc0YWQ5ZGNlNmY3Ci0gICAgNDFiMDQ5MzIzZjRlMmY0ZS5iMTk0Yzk4YTljODFlYmM5LjJhYTNlNDBhMGJjNjkyN2YuYmRmYjRlMDlhNTAwYzUxMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDEwY2QzOWU4YzEwMjhhLjAwMDk1MDk4ZTk1YjNiOWMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwCisgICAgMTYzNmUxMmY4YjUwYWI3NC43YWEyMWMwMjdmODhiOTkxLmNjMWQ3MmE0OGVlYmI1YTMuMjdlZTVlNTM1OTAzOGFiMgogICAgIGU1YWFmMzk0OTE3MTcwOGIKIAotVlBTUkxRXzEyOChyZWcpCitWQ1ZUVFBEMkRRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDU0N2IwYTM5ZWFkN2I0NDQuNzQ2ZmViYTU0MTE3NjY0MS44NTVmYjI2N2Y0ODA4NzI0LjRhYTRmNDAwYWI4ZTc5MTcKICAgICBjZWFkOWRhY2ZmYzA5MjhiLjM2MjVlNDdlN2RhZTFjZTEuMmUxNzg4MjY5N2Y2OTAyZi43ZjAyZTYwYTgxYmI5YTA4CkBAIC0yODMwNCwxMCArMjgzMDQsMTAgQEAKICAgYWZ0ZXIKICAgICA1NDdiMGEzOWVhZDdiNDQ0Ljc0NmZlYmE1NDExNzY2NDEuODU1ZmIyNjdmNDgwODcyNC40YWE0ZjQwMGFiOGU3OTE3CiAgICAgY2VhZDlkYWNmZmMwOTI4Yi4zNjI1ZTQ3ZTdkYWUxY2UxLjJlMTc4ODI2OTdmNjkwMmYuN2YwMmU2MGE4MWJiOWEwOAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwM2YKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMDAwMDAwMDAwMDAwMDAzZgotVlBTUkxRXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMAorICAgIDU2NjMyY2IxY2Y0YzBhNzMuNWIzYzkwMGVmNDdkNjc0OC5jOWE3ZTE1ZWRhOGE0NjVjLjdkNzUwYmQ5YzJlNWUyMTAKKyAgICBmZjIzMzY3NTY1ZmE4MTdmCitWQ1ZUVFBEMkRRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGE3ZDhjMTcwMzFjODZjMWEuMWQ3ZjIwMWFjMjA3MWQ2Yi43NDM0M2M5YzY4Y2Q3NTY4Ljc0MTg1Y2IwYjFjMDZhZDYKICAgICA1MzYxMjhiNDNmNWQ2MTBlLjVmMmM4MDAxZTE3NWJhYTAuNjNkOWM1M2VkMjFkNmUwYS4yZGIzMDYwYjI2YTNiYjc3CkBAIC0yODMxNywxMSArMjgzMTcsMTEgQEAKICAgYWZ0ZXIKICAgICBhN2Q4YzE3MDMxYzg2YzFhLjFkN2YyMDFhYzIwNzFkNmIuNzQzNDNjOWM2OGNkNzU2OC43NDE4NWNiMGIxYzA2YWQ2CiAgICAgNTM2MTI4YjQzZjVkNjEwZS41ZjJjODAwMWUxNzViYWEwLjYzZDljNTNlZDIxZDZlMGEuMmRiMzA2MGIyNmEzYmI3NwotICAgIGRkOGFlODJmYWRjNTFhODYuNzliNjRhZDRjOTIzMWNjMC4wMmY5YTllMDRkN2EwZDViLjRmYzVkY2RiZDZiZjczZWMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzFlY2UyOWY2OTBlYjcwNS4xNmQ5ODMwNTkzNTFkZGJiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMAorICAgIDIzMWY3YmNjOTcwYjU0YWYuYzc2OTc5ZmYxNTljODA3NC4yZjVmNjM2ZWY1ZWYwZjg2LjM4OWFkOThjNWNhMWNlZTEKICAgICA0MjdkZjk4YTU1ZDQwYTAxCiAKLVZQU1JMUV8xMjgocmVnKQorVkNWVFRQRDJEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICBjYmJjMzg0MTVjZTU2MWY4LmZmZWM1Zjc2MTgzYmNhYjUuYTU5MTA5ZWM2MTZjMjI2Yi5jNGQ2NmZkNWU3ODkzMGI4CiAgICAgMmVhMTkzMWUwZTVmMTA3NC40ZmJkMGYxYjRkNjEzYWMzLjZmNzlmNzA4NGEyMDNlNGYuOWYyYjRhZmYzZTUyMmIxYwpAQCAtMjgzMzEsMTAgKzI4MzMxLDEwIEBACiAgIGFmdGVyCiAgICAgY2JiYzM4NDE1Y2U1NjFmOC5mZmVjNWY3NjE4M2JjYWI1LmE1OTEwOWVjNjE2YzIyNmIuYzRkNjZmZDVlNzg5MzBiOAogICAgIDJlYTE5MzFlMGU1ZjEwNzQuNGZiZDBmMWI0ZDYxM2FjMy42Zjc5ZjcwODRhMjAzZTRmLjlmMmI0YWZmM2U1MjJiMWMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDMxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDM3YmMuMDAwMDAwMDAwMDAwNGY5NQotICAgIDAwMDAwMDAwMDAwMDAwMzEKLVZQU1JMUV8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBmMTkxOGFmNmUxYmY2NWE1LmI2OTljNDA0NDBjMWYzYWEuMzdiZGQ5N2U2MjYyZDI5MC45MzlmNWE1MDhkYTdhMjJkCisgICAgNjQ1Njg3NGZiZDRhOTYzMQorVkNWVFRQRDJEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICBlYTFhNzJjMWMyNGQ1NDE4LjA5MzMxZWM5M2FiZDgzYjMuODczZGMxMWYzNzEzYjRkYS5lZGIwYzZiMGM4MDdjMjQ0CiAgICAgMDJiOTk4OTRiOWJkOTkwZS42YmFjYmQ3MmFlNTRlOGY1LjNhMTU3YWU0NTE4YTVlYzIuZmY5NDAwYzAzYmMxMWQ5NwpAQCAtMjgzNDQsMTEgKzI4MzQ0LDExIEBACiAgIGFmdGVyCiAgICAgZWExYTcyYzFjMjRkNTQxOC4wOTMzMWVjOTNhYmQ4M2IzLjg3M2RjMTFmMzcxM2I0ZGEuZWRiMGM2YjBjODA3YzI0NAogICAgIDAyYjk5ODk0YjliZDk5MGUuNmJhY2JkNzJhZTU0ZThmNS4zYTE1N2FlNDUxOGE1ZWMyLmZmOTQwMGMwM2JjMTFkOTcKLSAgICA4NmZkNzNiM2JkYTQyMTNlLjc0NDc2NDVjZDgxMWQyMTYuYWNlZDZiNDBhYjM1YWQ5MC5jOWI0ODQxYzU2MTkxZDMzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwNzQuMDAwMDAwMDAwMDAwMDFmZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICA1M2IzODIwYWVhMTFhN2Q0LjdlNTIwZWYzNTU3ZjdiYzMuYmE5MTEwMWQ2MTFkNWQ2ZC5hNzVlNGQyZmI2OWRmZmM0CiAgICAgZjVkYzU3NjVmN2Q4ZmVmNwogCi1WUk9VTkRQU18xMjhfMHgwKHJlZykKK1ZDVlRUUEQyRFFfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMGY3YzllMmFiMzU2NTc3OC40NWE3M2U4NTVkMGRlOWZlLmU2MTdiN2EzYzAyYTIwYTcuM2VjY2U2Njk4ZDUwMjk4OAogICAgIDUwODgxZWVhODlhNDQ2ZjIuMzhhNTI0MTEzMmE2YTFlNS4wOWUzNWJkOGI1OWZmYzZmLjE1NmM2ODBlNGVkOWNlMGIKQEAgLTI4MzU4LDEwICsyODM1OCwxMCBAQAogICBhZnRlcgogICAgIDBmN2M5ZTJhYjM1NjU3NzguNDVhNzNlODU1ZDBkZTlmZS5lNjE3YjdhM2MwMmEyMGE3LjNlY2NlNjY5OGQ1MDI5ODgKICAgICA1MDg4MWVlYTg5YTQ0NmYyLjM4YTUyNDExMzJhNmExZTUuMDllMzViZDhiNTlmZmM2Zi4xNTZjNjgwZTRlZDljZTBiCi0gICAgMTY0ZGQ0MTExMjRkMDcxMi4wOTc4YjE5ODg0ZTc4YmI4LjQxMDJmN2ZlZDE2OTRkYzcuMWIzYjEyZmFiZGM1MDgyMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwLjAwMDAwMDAwNGVkOWNlMGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCisgICAgYmMxNmJiMGJlZGRlZDU4NC45MmVlNjAwNzZmZGQ2NWExLmViYzA4NTgxYjAxNDRkNWEuMmMwNjYwMThmOTFmOTJmYgogICAgIDI0OTljZjU0MWJmMzI5YmYKLVZST1VORFBTXzEyOF8weDAobWVtKQorVkNWVFRQRDJEUV8yNTYobWVtKQogICBiZWZvcmUKICAgICBkZmMwZGE5YTQxNGU4OTlkLjllMzFjZjQ1YjNlMmVlZjMuYjBkMWFkNGIxMDkzZTljYy42MzY5MDNjZWVkMmQzOWQ1CiAgICAgMzk0NmZkZDY4NzNhNmViZi4xN2U5MGMyOTAyZTU4YjBjLjNmZWUxNDRmODIxNWQzNjcuMDY0ODZjNGYyNDNmNGNlMwpAQCAtMjgzNzEsMTEgKzI4MzcxLDExIEBACiAgIGFmdGVyCiAgICAgZGZjMGRhOWE0MTRlODk5ZC45ZTMxY2Y0NWIzZTJlZWYzLmIwZDFhZDRiMTA5M2U5Y2MuNjM2OTAzY2VlZDJkMzlkNQogICAgIDM5NDZmZGQ2ODczYTZlYmYuMTdlOTBjMjkwMmU1OGIwYy4zZmVlMTQ0ZjgyMTVkMzY3LjA2NDg2YzRmMjQzZjRjZTMKLSAgICAwZWY5YjRmNDA4YzY5MzUxLjg1ODk2ZTI1NzY3NGViN2EuMWIxMTEyZmVlMjcwZTE5Yi4yZWFiYmQ3MmYyZDZjMzMyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuNjM2OTAzY2VlZDJkMzlkNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICAzYWEzN2JlMWUxZmJiNTgxLjQyNWVmMmE0YWExYTQ4ZWEuMjAwNjIyNDY0Y2FlY2Q5Ny4zOGRjZjBhMWYyN2ZkYTZiCiAgICAgODAyODAzNGFjMWM1Y2QzYwogCi1WUk9VTkRQU18xMjhfMHgwKHJlZykKK1ZDVlRUUEQyRFFfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNjJkYmYxZDhmYTM0ZDc1MS45OTExY2Y4NzJkZTc5MDc4LmFjYjQ5MzExM2I2M2RmMDguMmE5OWMwMTJkYWRlNTQ4NQogICAgIDNhNDFiN2I3M2E1OTM1NTUuMDcwZjJiZDQwODk2ZTA2NS4xZGQ3NGRkYWM0ZGJlYzdmLjE1OTU2ODRlYWIwOTMyOTEKQEAgLTI4Mzg1LDEwICsyODM4NSwxMCBAQAogICBhZnRlcgogICAgIDYyZGJmMWQ4ZmEzNGQ3NTEuOTkxMWNmODcyZGU3OTA3OC5hY2I0OTMxMTNiNjNkZjA4LjJhOTljMDEyZGFkZTU0ODUKICAgICAzYTQxYjdiNzNhNTkzNTU1LjA3MGYyYmQ0MDg5NmUwNjUuMWRkNzRkZGFjNGRiZWM3Zi4xNTk1Njg0ZWFiMDkzMjkxCi0gICAgNjRhNjRmNTMxY2JmMjNmNS42MDY5MGJiMjhmMTI2MDcyLmYzMTMxZDZhZTEwZmFhZmIuYmNjNzk2ZTZkODNkMjJlOAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGM0ZGJlMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwCisgICAgM2M1NWI3MTgzZGYzZGNkZC44MGVhZWIwZmRkNjljZGNiLjg4YjNmZDJkMmY4YjU3MmEuZmRmY2M3YzY4MDg2ZTFiNgogICAgIGIzZmU3NmRhYmNlZTJiMjcKLVZST1VORFBTXzEyOF8weDAobWVtKQorVkNWVFRQRDJEUV8yNTYobWVtKQogICBiZWZvcmUKICAgICBiYTlhMWYwZmFhODNiYzY1LjFlOWJlYTcyMzg4MDllYjguNDM2MDQ3ZDYwZmE3ZTM5ZC4zYTA1ZWI5MDQ5ZDkyY2I1CiAgICAgZWU5YjNlNGY2NjUxNGY5Zi42NmM0ZTRjZGFhZjJhMzMzLjg0OTU5Y2YzNDFkNjVkMTQuNjM1M2UyZmRjYzg3Njg0YgpAQCAtMjgzOTgsMTEgKzI4Mzk4LDExIEBACiAgIGFmdGVyCiAgICAgYmE5YTFmMGZhYTgzYmM2NS4xZTliZWE3MjM4ODA5ZWI4LjQzNjA0N2Q2MGZhN2UzOWQuM2EwNWViOTA0OWQ5MmNiNQogICAgIGVlOWIzZTRmNjY1MTRmOWYuNjZjNGU0Y2RhYWYyYTMzMy44NDk1OWNmMzQxZDY1ZDE0LjYzNTNlMmZkY2M4NzY4NGIKLSAgICAyYWNmNTA4ODBiNjJhMWZmLjcwMWNhMTk2MmVkNTI3ZjkuMjE1NjY1NTI4ZTA0Zjg1Yy42MWVhZGVlMTU0MjE0NTk2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQzNjAwMDAwMDAwMDAwMDAuMDAwMDAwMDA0OWQ5MmNiOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICA0YzAwY2ZhNGI2YzQ2ZGIyLjk3ZWYxZTM3NjBiNjY4YjcuZjU2ZjFlZGYxMjNkNzA5Zi44ZTE2ZGNhOTdiMzEwMDQzCiAgICAgNDcyM2Q2YmZlMDQ1ZDVmZAogCi1WUk9VTkRQU18xMjhfMHgwKHJlZykKK1ZDVlRUUEQyRFFfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZTk1Y2NhOTExY2U4MDA3MS4yZmZjMzk5MTgyODM3MWUzLjM5ODk1NTFlZGQyMGEwMTkuZGJhYzQzODZlYThiODEwYwogICAgIGNlMGZiMzhhY2VhN2JjNGEuYWU4ZDBhM2E4YmFhNjdiZi5iMTM1NDRiNjQxYTAwY2NhLmIxZDk1MTMzMzFmY2U2Y2QKQEAgLTI4NDEyLDEwICsyODQxMiwxMCBAQAogICBhZnRlcgogICAgIGU5NWNjYTkxMWNlODAwNzEuMmZmYzM5OTE4MjgzNzFlMy4zOTg5NTUxZWRkMjBhMDE5LmRiYWM0Mzg2ZWE4YjgxMGMKICAgICBjZTBmYjM4YWNlYTdiYzRhLmFlOGQwYTNhOGJhYTY3YmYuYjEzNTQ0YjY0MWEwMGNjYS5iMWQ5NTEzMzMxZmNlNmNkCi0gICAgNTM4NjhlMTU4ZjBkNDYzNS5hNzgwYmM4YmVlNDUwYzcyLjViNDFlNzZhMjdjMWU3NzcuNTJjMWMzZDMwNDljNWMwZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDQxYTAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgZDQwZTU1YTBmZGE3ZDlkZS5mNGEwY2Q3MGM2NjAxYjI3LjkyZjczOGE4MmIwZjZlY2IuOTkzMjE1NTA3ZTc2OWVmZAogICAgIDY0ZjZjMzk4YmI5NjZhYzQKLVZST1VORFBTXzEyOF8weDAobWVtKQorVkNWVFRQRDJEUV8yNTYobWVtKQogICBiZWZvcmUKICAgICA4ZGRhNDk5NWQ5MDg3YThmLmFkZjMwNjk2YjRmZmIzZjAuNzNiYmI3ZDUzMDA4NTIwYS5iNGE0MzVkYmVhMTZkZDczCiAgICAgZjJhYTI0MzVmMWQ5OGI4Yy4zYTgxOWM2MzRmYTMwZTE4LmZmOWNmOWE2NDg0ODZiNDkuMWM5NGQ5NmZmZjYzNzAxYQpAQCAtMjg0MjUsMTEgKzI4NDI1LDExIEBACiAgIGFmdGVyCiAgICAgOGRkYTQ5OTVkOTA4N2E4Zi5hZGYzMDY5NmI0ZmZiM2YwLjczYmJiN2Q1MzAwODUyMGEuYjRhNDM1ZGJlYTE2ZGQ3MwogICAgIGYyYWEyNDM1ZjFkOThiOGMuM2E4MTljNjM0ZmEzMGUxOC5mZjljZjlhNjQ4NDg2YjQ5LjFjOTRkOTZmZmY2MzcwMWEKLSAgICA2ZDMyY2Y2MzIxMTQ1OGU0LmQ4MDMxMzc0NmIxZjI2MDEuNzMwZTBjZDAyODJjMjIwZS4yNTEzMjBkMDA3ODE2MzZlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjczYmJiN2Q1MDAwMDAwMDAuODAwMDAwMDBlYTE2ZGQ3MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBkYzNkYzYwYjg1YzU5ZmM2LmUxYzc2ODMzYTNmZTM5NTguYWNkZTZkM2RlZmMxMzU4NS4yZDZjMDY2YjlkZmRmMTE4CiAgICAgOGVlZDg4YWE1ZTYyNTZjNwogCi1WUk9VTkRQU18xMjhfMHgxKHJlZykKK1ZDVlRQRDJEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICBhNmUwYTBmYWU1M2NkMDI0LjE5OTk4NTE5MzhmOTFhNWIuYjIxNzk1MGQ5M2NjODFjOS44N2Q4OTlkYWI3MTI1ZWRiCiAgICAgY2Y5MjRjYzhjZjE4OTlkZS4wMTEwODk3OTU2YmI4NmQyLmE3NDA5ODZmZDgxNTNiZmYuZGVjODBiOTQ5YzJjNWEzYwpAQCAtMjg0MzksMTAgKzI4NDM5LDEwIEBACiAgIGFmdGVyCiAgICAgYTZlMGEwZmFlNTNjZDAyNC4xOTk5ODUxOTM4ZjkxYTViLmIyMTc5NTBkOTNjYzgxYzkuODdkODk5ZGFiNzEyNWVkYgogICAgIGNmOTI0Y2M4Y2YxODk5ZGUuMDExMDg5Nzk1NmJiODZkMi5hNzQwOTg2ZmQ4MTUzYmZmLmRlYzgwYjk0OWMyYzVhM2MKLSAgICA2NzRmODg3ZmI3ODFlZTlmLjcxNmY0ZDE3ZmMxODllNTUuMWM4ZjZjYzMwZTY2YTNhNy44ZjdhM2Y1NmJhMWFlNGQzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJmODAwMDAwZDgxNTNiZmYuZGVjODBiOTRiZjgwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAKKyAgICBjODYzNGU4YTNhMDMwYjE0LjQzODI0ZGUwNDUxYjFmMTEuNmM0ZDBlNzdkMDRhZjQ2Yy43NGI5YjEwYzJmZThiYWNkCiAgICAgNmE1M2RlYTExNGEyOTY1NQotVlJPVU5EUFNfMTI4XzB4MShtZW0pCitWQ1ZUUEQyRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNGQxMjQxMDM4NzU1MzU5OC41MDFhOWM1N2YzMmIyY2U4LjU0MTUwNWJlNGVkMGM1MzEuZjVjOTc4ZjZiYTRkNmJmYgogICAgIGZhYzM1NjFkYTQwYzUyYzIuNTliZjZjNTE3Zjg0OGNjOC44MWYzZjE5ZjMzNDM0Y2UyLjEyNGVhOGFjNjlmYzQ0MDAKQEAgLTI4NDUyLDExICsyODQ1MiwxMSBAQAogICBhZnRlcgogICAgIDRkMTI0MTAzODc1NTM1OTguNTAxYTljNTdmMzJiMmNlOC41NDE1MDViZTRlZDBjNTMxLmY1Yzk3OGY2YmE0ZDZiZmIKICAgICBmYWMzNTYxZGE0MGM1MmMyLjU5YmY2YzUxN2Y4NDhjYzguODFmM2YxOWYzMzQzNGNlMi4xMjRlYThhYzY5ZmM0NDAwCi0gICAgNGIzMjk5ZGM4NmQ0YWFmZS40MDlmYmNlNDc5OWE2ODVmLmE0ZWE4ZTZkMGU4MTZmNGYuMWYyNzk5MDU3OGUyYmEyNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NDE1MDViZTRlZDBjNTMxLmY1Yzk3OGY2YmY4MDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDgwMDAwMDAwCisgICAgMWQyYjg3MmE0OWI4Zjk3OS42MjA3ODg3YzdkZmFmYjVhLjlhYzQ1NzE2ZmU5NWViYTUuNzhhMTQ3NmQ4NDhjMGIxYQogICAgIDc5MDhhZTUwMjg4NTcxODcKIAotVlJPVU5EUFNfMTI4XzB4MShyZWcpCitWQ1ZUUEQyRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgN2RhOGNiMWEwMTU5MjgxYS40Yzc5OWFmNDBhYzRmYjVlLjE5NDFjYTg1MjgyZjgzNjUuM2Y0ZWM4ODUxYzhjN2MxMAogICAgIGUyY2Q5OTM3YWE5NDZlN2UuYjRlYTUwMjdlNTA0NmJkYS5jMjk5ODA2YzE2YzUzYTJiLjZmNTQ1ZGE2ODc3MWRkYmIKQEAgLTI4NDY2LDEwICsyODQ2NiwxMCBAQAogICBhZnRlcgogICAgIDdkYThjYjFhMDE1OTI4MWEuNGM3OTlhZjQwYWM0ZmI1ZS4xOTQxY2E4NTI4MmY4MzY1LjNmNGVjODg1MWM4YzdjMTAKICAgICBlMmNkOTkzN2FhOTQ2ZTdlLmI0ZWE1MDI3ZTUwNDZiZGEuYzI5OTgwNmMxNmM1M2EyYi42ZjU0NWRhNjg3NzFkZGJiCi0gICAgMDNjMzE0MTRjMGMzN2Q2MS4zMTQ4MjRhZGY1ODUwNjE5LmI5NWRhNTliZTI0OTVjNTkuMDZhMjkzNjU1ODUwY2JkMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMjlhMDAwMDAwMDAwMDAwLjZmNTQ1ZGE2YmY4MDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDgwMDAwMDAwCisgICAgM2JkNTM4MWJkZTcxOTI2Yy45ZjYwOTM3NDU2NTM4ODQ2LjVhZDgzNTdmMjg0NjI3OWEuZTAwNGU0YWVhZTM2MDI4MwogICAgIGQ5NDZjZTZkYTIyZTNlZjgKLVZST1VORFBTXzEyOF8weDEobWVtKQorVkNWVFBEMkRRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGNkMzNjZDhlNTI0NDNhNWUuZTg1MTAyYmFhMDJiZTg0ZS5kYWZlMTc2NjI1NzhhYzhlLjAyNTUyYzg1ODU0OGQ1OWIKICAgICA5ODk4NWJmZGRhODRiM2UwLjY1ODE2YzVjYTM3Y2JjYjAuYmVlZTJlNzE3ZDAyMzAxYy4wYjIxODcxODk0ZGNhMzA4CkBAIC0yODQ3OSwxMSArMjg0NzksMTEgQEAKICAgYWZ0ZXIKICAgICBjZDMzY2Q4ZTUyNDQzYTVlLmU4NTEwMmJhYTAyYmU4NGUuZGFmZTE3NjYyNTc4YWM4ZS4wMjU1MmM4NTg1NDhkNTliCiAgICAgOTg5ODViZmRkYTg0YjNlMC42NTgxNmM1Y2EzN2NiY2IwLmJlZWUyZTcxN2QwMjMwMWMuMGIyMTg3MTg5NGRjYTMwOAotICAgIDE2NDFmNmE3NTVmYjY1YWIuMGRiMjc0NmM4M2YwNGE0MS4yN2ZjNTM4MDdiZmNjZTFkLmQyODg0MWEzZjI4ZGNkOGMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGFmZTE3NjYwMDAwMDAwMC4wMDAwMDAwMGJmODAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDIzZmExODc2ZGZiNTBjZWEuM2UzMDE1NThkYjE0Y2VhYi5mMWYzMDI3ZjNhNzM0MmJkLmIzZDY1Njk0M2FlNzhlZDQKICAgICAwYTU3YzI1NjA5NzcyMzhiCiAKLVZST1VORFBTXzEyOF8weDEocmVnKQorVkNWVFBEMkRRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDMzNTc4MjU1ZmFjOGM4NWUuOWI4ZjNmNTg5NWJjNjNjYS41MjQ2NGM4YjQ3NzM4NDliLmY4YTBiODVhZDc3MjRhMjcKICAgICA4YTIxOTBmZGFhNjdiOGY5LjVhY2NlNzM4OTMxZTI3NzcuYTc0MjEzNzE2NDk5YTdiYy4xOGQwZWZmZDZkMDVhMDg4CkBAIC0yODQ5MywxMCArMjg0OTMsMTAgQEAKICAgYWZ0ZXIKICAgICAzMzU3ODI1NWZhYzhjODVlLjliOGYzZjU4OTViYzYzY2EuNTI0NjRjOGI0NzczODQ5Yi5mOGEwYjg1YWQ3NzI0YTI3CiAgICAgOGEyMTkwZmRhYTY3YjhmOS41YWNjZTczODkzMWUyNzc3LmE3NDIxMzcxNjQ5OWE3YmMuMThkMGVmZmQ2ZDA1YTA4OAotICAgIDZiMDNlYWJhYjRkZTMwMDcuM2M3YzhhMDFmNGU3MTQxYy45NzZlNjg3NmNlMTM3NGJiLjJkNGQyNTU1MTkzOTAwMGIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmY4MDAwMDA2NDk5YTdiYy4wMDAwMDAwMDZkMDVhMDg4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDMxNDc4YmY5YjRiYzZjMzUuMWM2ZGE2YTFkNDIxZTVlNS44MDE4NDYwNzIwNmMyNjQzLjEyZTRkNTRjZjYxOTI4ZGQKICAgICBhNTYwN2NjZjIxYjFkMjJhCi1WUk9VTkRQU18xMjhfMHgxKG1lbSkKK1ZDVlRQRDJEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICBjMThmOTRjYmI1MGViYjFkLjNhM2E3MDI0NDg4YWE4MmUuZDg2OWI2MDM1MGRhNTcwMC5iYzhhYTk4ZWY2MzBmYjAxCiAgICAgNDIzYjliMmJjZTNiOWZlMy5lMTI4OTNhOTA5ZDYxZjlmLjRiM2QzNjEzODMxZTI2OTcuYTgxMThlNzhlZGVjMmRhMQpAQCAtMjg1MDYsMTEgKzI4NTA2LDExIEBACiAgIGFmdGVyCiAgICAgYzE4Zjk0Y2JiNTBlYmIxZC4zYTNhNzAyNDQ4OGFhODJlLmQ4NjliNjAzNTBkYTU3MDAuYmM4YWE5OGVmNjMwZmIwMQogICAgIDQyM2I5YjJiY2UzYjlmZTMuZTEyODkzYTkwOWQ2MWY5Zi40YjNkMzYxMzgzMWUyNjk3LmE4MTE4ZTc4ZWRlYzJkYTEKLSAgICAwMzMyMGNkYTg5NDQzOWE3LjgyNWNmMmYyOTUyYjBmMzQuNTFiNWEyYmU4YWY3MGVkNi5hMWY4ZjAzMmEwMmJmOGNlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ4NjliNjAzNTBkYTU3MDAuYmY4MDAwMDBmNjMwZmIwMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBlMjNlNjNjNjAyMzY0Njk2Ljc5MjQ4ODZkODgxNmIxOTguYzU5Yzc3ZWU4MDc0Y2FlYS4wMThkY2EyN2FjNzk5YTM1CiAgICAgMjUxYTFiYzJhYzYzNGQ4MgogCi1WUk9VTkRQU18xMjhfMHgyKHJlZykKK1ZDVlRQRDJEUV8yNTYocmVnKQogICBiZWZvcmUKICAgICA2OWVkZGM3MTNkNzQ0ZTYwLmI5MmMxY2RhNTQxYzgyZGIuMjFjYTUxODU3ZDIxNDQ3OC44NWMwMzA5MDgyOWUxN2ZmCiAgICAgMjk1MDBhOWZmYTM4ZDg3Yi42NmM3YjQwMjliMDNhOWEzLmQ4OWI0YWE2MTBkYjAyN2YuNmJlYjQ5OTFhYjgzYjA0MApAQCAtMjg1MjAsMTAgKzI4NTIwLDEwIEBACiAgIGFmdGVyCiAgICAgNjllZGRjNzEzZDc0NGU2MC5iOTJjMWNkYTU0MWM4MmRiLjIxY2E1MTg1N2QyMTQ0NzguODVjMDMwOTA4MjllMTdmZgogICAgIDI5NTAwYTlmZmEzOGQ4N2IuNjZjN2I0MDI5YjAzYTlhMy5kODliNGFhNjEwZGIwMjdmLjZiZWI0OTkxYWI4M2IwNDAKLSAgICBjMjkwYTJiODdmM2MyOTgwLmM0ZGRhNjJhZjRmNTc2MWEuZjllMzZkM2NkZWNkMjg1YS41NWVhM2VkYjE4MmU1M2RhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ4OWI0YWE2M2Y4MDAwMDAuNmJlYjQ5OTE4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICA4ZWY5OWYyODZhMGI3YjFiLmFlMzk2ZTNlN2EwMWE2NmIuZGZlZWI4YjM4Mjg1ZjJiNC4xZDg5OGI1Y2U0YWJiYWY5CiAgICAgYTE5NGFkZmYyYjA3YTJjOAotVlJPVU5EUFNfMTI4XzB4MihtZW0pCitWQ1ZUUEQyRFFfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYmJkNzFmYjAwYTRkYzY3My5lYWQ2ZmQ1YjU0MzEwYmY4LjAyYTY4ODJiNGEzMGY1YzMuZTgwODI2Nzc5OThlOWIzYgogICAgIDQ5MWU1ZDViOWQ4YWU0MjguMzI3NWI5YmVkYjNiMTRjMi45YWYxNzFkYjdmOTAxZTRlLjZmN2RiNGY0YmU3NTYwOTgKQEAgLTI4NTMzLDExICsyODUzMywxMSBAQAogICBhZnRlcgogICAgIGJiZDcxZmIwMGE0ZGM2NzMuZWFkNmZkNWI1NDMxMGJmOC4wMmE2ODgyYjRhMzBmNWMzLmU4MDgyNjc3OTk4ZTliM2IKICAgICA0OTFlNWQ1YjlkOGFlNDI4LjMyNzViOWJlZGIzYjE0YzIuOWFmMTcxZGI3ZjkwMWU0ZS42ZjdkYjRmNGJlNzU2MDk4Ci0gICAgMjUzNGUzZWNmZmM4YjYxMS5jMjIwY2RiYjliYjRkMzI1LjUzZTZhMzNjMzYyY2RlMzcuY2Y5ODVjOTY4ZWM1N2Q3YQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZjgwMDAwMDRhMzBmNWM0LmU4MDgyNjc3ODAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwCisgICAgMmRlNjJlNGY0YzE1Zjk1YS5mNjI0MzdjMDJmMjg4NGNlLjBhNTE5YzM4OGExMGYxYWIuNjZhNjFjY2FhNDBhMmU4YQogICAgIDhlZjNlZmZhOWRkMWFlNzcKIAotVlJPVU5EUFNfMTI4XzB4MihyZWcpCitWQ1ZUUEQyRFFfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYTVjYmQxOTQxNGE1M2FlYi4zYjAwYjk3MGExN2Q2ODMwLjJhY2RmMjM3MzMyNDYzNjkuOTlmZWQ3YmQ5ODQ5MTNkNQogICAgIDA1N2FiZjAzYTYxMjBlOTMuMmM0ZTAwM2IxYTBiYzBiZi5iYTY3ZmI4ZTQ0MzNhYmEyLmRkYjhkMWI2N2JlMmZmZTIKQEAgLTI4NTQ3LDEwICsyODU0NywxMCBAQAogICBhZnRlcgogICAgIGE1Y2JkMTk0MTRhNTNhZWIuM2IwMGI5NzBhMTdkNjgzMC4yYWNkZjIzNzMzMjQ2MzY5Ljk5ZmVkN2JkOTg0OTEzZDUKICAgICAwNTdhYmYwM2E2MTIwZTkzLjJjNGUwMDNiMWEwYmMwYmYuYmE2N2ZiOGU0NDMzYWJhMi5kZGI4ZDFiNjdiZTJmZmUyCi0gICAgMGI0Y2IzYjJlZWE1NjUxYS5kYzljN2Y5ZGQyY2JiZDMyLjAyM2U0YzMwZmRlMjk5MjQuYjM0ZDA0MGU1MGU4NzJmZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDQ0MzNjMDAwLmRkYjhkMWI2N2JlMmZmZTIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDgwMDAwMDAwCisgICAgMTQ4Y2FiMGY4OWU5N2MyZC4yOGI2YjI4MGU1YzkxYmI2LjVlOWRlMzg4ZmJiYzY5OWIuZjU4N2VlYjMzMjY2Mjg1MwogICAgIDgwMzMwYTkwM2U2OGRjMTAKLVZST1VORFBTXzEyOF8weDIobWVtKQorVkNWVFBEMkRRXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDMwMWRkNDkyOGZmYTRjNWYuN2E4OGEyODUxMjZhOGY3Ny5lYTY3MTZkMjcwMTI5NTc2LjI5ZDJiYjA0ZDk0ZDU3YjQKICAgICBlMjExYzlhMzQxMjkzMjZkLjlhOGE5NDgwMjViNWRhYTUuZmY3ZDI2N2Q4ZWIyZTg5Zi5jMTI3ZDAwZjM0MjE5ZTFiCkBAIC0yODU2MCwxMSArMjg1NjAsMTEgQEAKICAgYWZ0ZXIKICAgICAzMDFkZDQ5MjhmZmE0YzVmLjdhODhhMjg1MTI2YThmNzcuZWE2NzE2ZDI3MDEyOTU3Ni4yOWQyYmIwNGQ5NGQ1N2I0CiAgICAgZTIxMWM5YTM0MTI5MzI2ZC45YThhOTQ4MDI1YjVkYWE1LmZmN2QyNjdkOGViMmU4OWYuYzEyN2QwMGYzNDIxOWUxYgotICAgIDcwZGE2NGIwNzEwMTRhNjUuZDFkZjdlNmQ1ZjU1OTg2My40M2MyNWU2ZjVjYjNkMDVkLjgxZTkxZTE2YThjNTdiN2IKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWE2NzE2ZDI3MDEyOTU3Ni4zZjgwMDAwMGQ5NGQ1N2I0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwODAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIGI3NDYyMWE2M2I4YzUyNzQuNzlkMzViYjY1Y2Q2MDY1Yy45MjAzM2E5M2Y1MjMwOGRiLmM1NjRhMjgzY2ZjNDJhODEKICAgICBlOGU0NTdjMzQ3YWJlNmQ5CiAKLVZST1VORFBTXzEyOF8weDIocmVnKQorVkNWVFBEMkRRXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDQ4YjUzOTQzYWMwNWVjMmUuOTMxZjdjNmZiOWQ4MDRjNi5lZmIxMjdjOGI2YzU2MDNkLmM4MGMzN2Q1NzYwZDRkNDYKICAgICA0MDIyNDQ2ZDk5NWU3ODJkLmUwMzJmMWY5MGFmMDFjODYuOGZjN2RlMTAwY2FkZTJiMS5jMWE5Y2YyMWZhN2U1YmM5CkBAIC0yODU3NCwxMCArMjg1NzQsMTAgQEAKICAgYWZ0ZXIKICAgICA0OGI1Mzk0M2FjMDVlYzJlLjkzMWY3YzZmYjlkODA0YzYuZWZiMTI3YzhiNmM1NjAzZC5jODBjMzdkNTc2MGQ0ZDQ2CiAgICAgNDAyMjQ0NmQ5OTVlNzgyZC5lMDMyZjFmOTBhZjAxYzg2LjhmYzdkZTEwMGNhZGUyYjEuYzFhOWNmMjFmYTdlNWJjOQotICAgIDJiNzg3NWFmYWI0MmM1ODEuN2E0YmZkMmU0OGUxNThlMS5iNTVmN2NmOGY4MWFjNzY1LjU5YTU4MDYzOWQ4MWVlOTEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAzZjgwMDAwMC5jMWE4MDAwMGZhN2U1YmM5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMAorICAgIDY3MDRjNjczN2QzZTExZDcuM2QzNjFhZmM4ZmI2NzIwMi5iZGM3ZmVlZTE2OTk0YzA1LjZjY2VjNTg4N2MyMmMxY2EKICAgICBkNmVlMWI3YWIzNmU5MTlmCi1WUk9VTkRQU18xMjhfMHgyKG1lbSkKK1ZDVlRQRDJEUV8yNTYobWVtKQogICBiZWZvcmUKICAgICA3M2QyZmMyNjVkNzAxYTNkLjRmMTAzNTI3YWJkZTk2ZGEuMDViZmM2NGVmYzdiMjcxNi4wNDQ5NWU1ZDAzYjVhYzNjCiAgICAgMWY0NmU2Nzk5NjM0MThjZi4zZWU4YmQzNmQyYWM5MDM4LmFlYjE3ZDEwYWEzZDMzNDkuZTQzMjliYjA1YWZhMjViNwpAQCAtMjg1ODcsMTEgKzI4NTg3LDExIEBACiAgIGFmdGVyCiAgICAgNzNkMmZjMjY1ZDcwMWEzZC40ZjEwMzUyN2FiZGU5NmRhLjA1YmZjNjRlZmM3YjI3MTYuMDQ0OTVlNWQwM2I1YWMzYwogICAgIDFmNDZlNjc5OTYzNDE4Y2YuM2VlOGJkMzZkMmFjOTAzOC5hZWIxN2QxMGFhM2QzMzQ5LmU0MzI5YmIwNWFmYTI1YjcKLSAgICBiNjE2NTQ1ZTdiYzc0NjgyLjkyZGE1YjBjOGUzNjNkOWEuMTRkOWI5MmViNjA3NTFjNi5iYWNkYWU1NWI4ZjVmMTIxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNmODAwMDAwZmM3YjI3MTYuM2Y4MDAwMDAzZjgwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDgwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAxNDBkYzNjMDI4MzQ2MTgyLmE1MzEwOTE1N2EwN2Q3YWUuMTIwNGY4OTQzYmU1M2ViYS5lMjY4OTRiN2I4MzE0YzI3CiAgICAgYjc0ZTRhNDNmNzNiNzQ3NQogCi1WUk9VTkRQU18xMjhfMHgzKHJlZykKK1ZNT1ZTTERVUF8xMjgocmVnKQogICBiZWZvcmUKICAgICA5N2NhY2I2MzEwOWRhM2I2LjE1ZjlhZDhkYjg4NzI1ZmEuZDQzOGM1YmQzMmFjOWIyMC44NmZjYjUyZjU2ZTRiNjUwCiAgICAgZGQyOTEzODQ5ZmU1MTY5Ny45NGE0OTBiMDQ3Y2Q0ZDE3LjdjM2M4YTcxNTNiMGM0OWMuNGI4ZTZjZTkyMjBmNzRiNQpAQCAtMjg2MDEsMTAgKzI4NjAxLDEwIEBACiAgIGFmdGVyCiAgICAgOTdjYWNiNjMxMDlkYTNiNi4xNWY5YWQ4ZGI4ODcyNWZhLmQ0MzhjNWJkMzJhYzliMjAuODZmY2I1MmY1NmU0YjY1MAogICAgIGRkMjkxMzg0OWZlNTE2OTcuOTRhNDkwYjA0N2NkNGQxNy43YzNjOGE3MTUzYjBjNDljLjRiOGU2Y2U5MjIwZjc0YjUKLSAgICBlNWI3MWUxMjQxOWYwOWMzLjZmZGJlNzE1ZjIxMTk2MDQuZjc4OTU0OWI3ODlmOTBjZC4zZDg1OTlhZmJiNzIzNjE0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdjM2M4YTcxNTNiMGM0OWMuNGI4ZTZjZTkwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZTA2Mzk2MDNlMDYzOTYwLjNlMWFiNjliM2UxYWI2OWIKKyAgICAwYmMwZTk3YTkyNTZiN2U3LjgxNmEyZWE4ZDQ1ZmJjZWUuYTM2YjIwYTgzZTA2Mzk2MC4zN2FmYjg2ZTNlMWFiNjliCiAgICAgMTdkNjQ2MTFjNzEyYjA3MwotVlJPVU5EUFNfMTI4XzB4MyhtZW0pCitWTU9WU0xEVVBfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjhjOGJlODM3MTY2ZTJjYi5hYjhmNmYyNzJkOTY1ZGFmLmE2MWRlMTU1MGFjNDdiMDAuZGEyZWU5MDU0MDcwZmMwMAogICAgIGY1NGY5Y2IyNTgyMzA2Y2QuMjE3MmFjODRhZmViMzdjNi5iOWMwN2QwOWFmNGI4ZTY4LmY5MWVhYjFkMWI2OTE0NWEKQEAgLTI4NjE0LDExICsyODYxNCwxMSBAQAogICBhZnRlcgogICAgIGI4YzhiZTgzNzE2NmUyY2IuYWI4ZjZmMjcyZDk2NWRhZi5hNjFkZTE1NTBhYzQ3YjAwLmRhMmVlOTA1NDA3MGZjMDAKICAgICBmNTRmOWNiMjU4MjMwNmNkLjIxNzJhYzg0YWZlYjM3YzYuYjljMDdkMDlhZjRiOGU2OC5mOTFlYWIxZDFiNjkxNDVhCi0gICAgYWMzODVkODk5OTU0ZDlhNS5jOGIzOWNmZmIyZTI4MWQ5Ljk4MWU3ZGFlZTAwMGIyNGYuNWM4NjYyNWI2YTdlYmUxOQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLmRhMmVlOTA1NDA0MDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGFjNDdiMDAwYWM0N2IwMC40MDcwZmMwMDQwNzBmYzAwCisgICAgYjg0ZjdiZjQ1MDA1MTY4MC5mZWEwM2IwM2Q1MDc3NjkzLjFkMDU1ZDMxYjhmMGEyZTQuNjBiMzBhMmRjYTNhMzZlYQogICAgIDVmZjJhMGZlZDYyOWI4NzkKIAotVlJPVU5EUFNfMTI4XzB4MyhyZWcpCitWTU9WU0xEVVBfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjY4YzFlM2EyYmQ4N2Y3MS5mNDVmNzRkZjk4NDM3YjhhLjFlODM4NmZjYjJlNDUzYTEuMjYzZjk5N2Y1NDI2MWM1MAogICAgIGMxZDA4MjRkNjRkMmM4N2YuM2UzNmMzMzY4ZDE5YzJlZS44M2E5Nzg1NmU1MDc1NGFlLjhkOTlhZDgzY2ZhZWRhYzIKQEAgLTI4NjI4LDEwICsyODYyOCwxMCBAQAogICBhZnRlcgogICAgIGI2OGMxZTNhMmJkODdmNzEuZjQ1Zjc0ZGY5ODQzN2I4YS4xZTgzODZmY2IyZTQ1M2ExLjI2M2Y5OTdmNTQyNjFjNTAKICAgICBjMWQwODI0ZDY0ZDJjODdmLjNlMzZjMzM2OGQxOWMyZWUuODNhOTc4NTZlNTA3NTRhZS44ZDk5YWQ4M2NmYWVkYWMyCi0gICAgZGMwOWM3YTMxZWE0Y2Y0ZS43MDllZTVlNjRjOTRhN2Q5LjhiNWQwZDdkMGJmYmI0NjguMzBkZjE2Mjg0NTk1OTk2NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMGU1MDc1NGFlLjgwMDAwMDAwY2ZhZWRhYzIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmY0ZGIwNzhiZjRkYjA3OC5kNGU2MTQ2M2Q0ZTYxNDYzCisgICAgNjM4MmVhYTlmNGQ4Y2Y4Yi42ODY0NTRkOWYwYmVlODc2LjkwZWQ0MWRkYmY0ZGIwNzguZTlkZDRmNWNkNGU2MTQ2MwogICAgIDk2NWVkNDBhOTVhZTA5ZWEKLVZST1VORFBTXzEyOF8weDMobWVtKQorVk1PVlNMRFVQXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDExMzAyMTFlYTZmNzMyMjYuYjI4OWU2Yzk4MmZjMDZlMi4wMDU0OGVmZDk2YTYzZmYzLmYwYTMxMWUzOWU4ODg0OGQKICAgICAzODFkYjM4NDIzZDA0YzQyLjI1NjhiNjcwNjU5Y2FkZmUuMTUzYTBlM2M1OTU1Njk3OS4wNWNkNzhmOTQzMzg2YzUwCkBAIC0yODY0MSwxMSArMjg2NDEsMTEgQEAKICAgYWZ0ZXIKICAgICAxMTMwMjExZWE2ZjczMjI2LmIyODllNmM5ODJmYzA2ZTIuMDA1NDhlZmQ5NmE2M2ZmMy5mMGEzMTFlMzllODg4NDhkCiAgICAgMzgxZGIzODQyM2QwNGM0Mi4yNTY4YjY3MDY1OWNhZGZlLjE1M2EwZTNjNTk1NTY5NzkuMDVjZDc4Zjk0MzM4NmM1MAotICAgIGU1ZjIwNDI5MjY0MjEyNmIuMTg2YzU4MGIzODQzMDM4Yy44NGUyNTA4NDU2ZDkyMTM2LjJkYjU3MjhkNGJlYWEzNzAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC5mMGEzMTFlMzgwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk2YTYzZmYzOTZhNjNmZjMuOWU4ODg0OGQ5ZTg4ODQ4ZAorICAgIGY1N2I5MmY3Y2U1YjQxY2QuZTdlMWM4MDU5ODdkNDIzNy4yNzE3ZDBjMGE4M2QyNTU2LmMyYThmYjA5NTEyODY2OTcKICAgICAyMmYxMGZkYmYyODFmMTcyCiAKLVZST1VORFBTXzEyOF8weDMocmVnKQorVk1PVlNMRFVQXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGE3ZGVhYjZlYzk3ZTdmYWMuNDU4NGQ5ZGIzNTI2OTU5My5lZTEzMDBjOTIxZDZhOGFjLmRiYTcwYmRjNmM4ZDJmMDUKICAgICBhZmJhY2EyZTcyYWQ0ZGYyLmFmZDg1M2MyNzdiMGNhZWEuODk0ZGZlYzU2ZWRiNmU5Ny43YzVjN2NjNGJkZDZmYjZlCkBAIC0yODY1NSwxMCArMjg2NTUsMTAgQEAKICAgYWZ0ZXIKICAgICBhN2RlYWI2ZWM5N2U3ZmFjLjQ1ODRkOWRiMzUyNjk1OTMuZWUxMzAwYzkyMWQ2YThhYy5kYmE3MGJkYzZjOGQyZjA1CiAgICAgYWZiYWNhMmU3MmFkNGRmMi5hZmQ4NTNjMjc3YjBjYWVhLjg5NGRmZWM1NmVkYjZlOTcuN2M1YzdjYzRiZGQ2ZmI2ZQotICAgIDk0ZDA2ODg3OGE5YTk3ZWYuMTA0NTdlOTZiMTAzOWJmZC4xNGRkYmQ2NDFiMTdkM2EzLmU3MDM5ZjY0YjcyNDQ3YmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA2ZWRiNmU5Ny43YzVjN2NjNDgwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM1MTcxMTdkYzUxNzExN2QuNzc4MWNkMjA3NzgxY2QyMAorICAgIGIzNmQ4MWU1YWRjZjk5NTAuNDQ5NWQ1NDVmZTJlYzVmOS5lYjBkMzkxMmM1MTcxMTdkLmY2NjhmMGE4Nzc4MWNkMjAKICAgICA4NjU3ZWI3YzE5ZmI0YWMwCi1WUk9VTkRQU18xMjhfMHgzKG1lbSkKK1ZNT1ZTTERVUF8xMjgobWVtKQogICBiZWZvcmUKICAgICA3MzliMGRjY2I4OWQ3YWNjLjY4ZGQxMWI0NzZkYThlYzEuMjc5NWQ0YmE3YjNhMDQwYS42OTJhNmYzYjA3NjU2NWQwCiAgICAgOTkwMmQxODU3MDc0MTg2ZS4xMDZjMTU2MDgxNDdiM2VkLjk1MTJmN2UxNDMzNTEzNWIuZWM4MDU5NGM3ZTkwMGI0OQpAQCAtMjg2NjgsMTEgKzI4NjY4LDExIEBACiAgIGFmdGVyCiAgICAgNzM5YjBkY2NiODlkN2FjYy42OGRkMTFiNDc2ZGE4ZWMxLjI3OTVkNGJhN2IzYTA0MGEuNjkyYTZmM2IwNzY1NjVkMAogICAgIDk5MDJkMTg1NzA3NDE4NmUuMTA2YzE1NjA4MTQ3YjNlZC45NTEyZjdlMTQzMzUxMzViLmVjODA1OTRjN2U5MDBiNDkKLSAgICBkNDU2YjM5MTVlOGJlMWQzLjA1NjY4ODU2NmJhMDQ0ODEuNmFkNWJhYTY3MzJhYWYxOS5jZjViZjVhZmM1MjEzZTkzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwN2IzYTA0MGEuNjkyYTZmM2IwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YjNhMDQwYTdiM2EwNDBhLjA3NjU2NWQwMDc2NTY1ZDAKKyAgICAwMDY0MmZkZTllZWU5MTI2LmE0MTY2NjAwZDA3NDdjMjguODJhZDlhZjUyNjI2OTQ3MC42ZDA2M2VkMTc4YTYzYjViCiAgICAgMjRjZjMwMWYzNWFhM2U0ZAogCi1WUk9VTkRQU18xMjhfMHg0KHJlZykKK1ZNT1ZTTERVUF8yNTYocmVnKQogICBiZWZvcmUKICAgICA0ZjAwYzgwNDk1YmE4MzE0LmY5ZjhjMjU3NGFhOWUzOTMuNDljYWFjY2M0YjRjOTg4Zi5iYTY1MTJiYTc5MzQ3ZThiCiAgICAgNDllNjAxZWIzNjYxNDU1ZC45YmRlZTdlNzgxYzk5NTQ4LjUwY2M1NDI0NzhiNmQ0NjIuZWNjODllZTE4NzYwMjg5NgpAQCAtMjg2ODIsMTAgKzI4NjgyLDEwIEBACiAgIGFmdGVyCiAgICAgNGYwMGM4MDQ5NWJhODMxNC5mOWY4YzI1NzRhYTllMzkzLjQ5Y2FhY2NjNGI0Yzk4OGYuYmE2NTEyYmE3OTM0N2U4YgogICAgIDQ5ZTYwMWViMzY2MTQ1NWQuOWJkZWU3ZTc4MWM5OTU0OC41MGNjNTQyNDc4YjZkNDYyLmVjYzg5ZWUxODc2MDI4OTYKLSAgICA3MGNkZDY0MmI0MmJjMWQ0LmMyZTIxYTdjNWM1YTYxNmYuMTU2OTVjNzZmNDNkNmM0Yy5mNGEzYmI1NzZjYjc0ZmJlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUwY2M1NDI0NzhiNmQ0NjIuZWNjODllZTE4MDAwMDAwMAorICAgIGFhYTUzMzI0YWFhNTMzMjQuZmE2NjAzMzRmYTY2MDMzNC41YTZkOWJmYTVhNmQ5YmZhLjQ1NDRhZjJmNDU0NGFmMmYKKyAgICAxZTAxNDY3NGFhYTUzMzI0LjRhY2ZkNzAxZmE2NjAzMzQuZjRlZGJmMmQ1YTZkOWJmYS5iMGMyZTMwNjQ1NDRhZjJmCiAgICAgZmJmMTk0ZGIyZTEzMDQxNAotVlJPVU5EUFNfMTI4XzB4NChtZW0pCitWTU9WU0xEVVBfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYjFmYzQ5YzM0MjMxMDk5YS5iMWNlNGFlZGI0NWFkNmZhLjBmNzM5YTYyNzRmYjM5YzUuNDlhNDc5YjU0N2QzOWUxNwogICAgIGFlYWY3ZWE5OWRhOTdiZWQuODM3ZmUwMTk2ZmQ2ZTcwMS5lZDk4ZTA4YmU5MjViZDRiLjcwZDk4NzdhNTZmYWIxNTAKQEAgLTI4Njk1LDExICsyODY5NSwxMSBAQAogICBhZnRlcgogICAgIGIxZmM0OWMzNDIzMTA5OWEuYjFjZTRhZWRiNDVhZDZmYS4wZjczOWE2Mjc0ZmIzOWM1LjQ5YTQ3OWI1NDdkMzllMTcKICAgICBhZWFmN2VhOTlkYTk3YmVkLjgzN2ZlMDE5NmZkNmU3MDEuZWQ5OGUwOGJlOTI1YmQ0Yi43MGQ5ODc3YTU2ZmFiMTUwCi0gICAgY2VkNWIwNzk1Yzg3MTYzOC5mMjYyMDI2NDc3YTVhMmU2LmMwMGIyNDY5NzJlZTRiZjUuYzVkYWU0ZTgyNDZlMTA1MQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDc0ZmIzOWM1LjQ5YTQ3OWI4NDdkMzllMDAKKyAgICA0MjMxMDk5YTQyMzEwOTlhLmI0NWFkNmZhYjQ1YWQ2ZmEuNzRmYjM5YzU3NGZiMzljNS40N2QzOWUxNzQ3ZDM5ZTE3CisgICAgZWQzYzVhMWY5YWQ4OTVhOC41OGMxYWUzYTY2NTQ0MzU0LjY0OThlMmU2MmQ2NGExZWQuYTRmMThiNmI0Y2JjZjZjNQogICAgIDY5NmI3YjZmNmE2ZmEwNTkKIAotVlJPVU5EUFNfMTI4XzB4NChyZWcpCitWTU9WU0xEVVBfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNzA5NGFkNjExYjE0NGFiOC5lNmFlZjg4Nzc0YTdiNTY4LjEzZTllMDA4ZGI2ZjA1ZjguYjQwYTk2ZjAzNjkzNzk1ZgogICAgIDE1YjgxZWFiZmIzNjJmOGYuOTdmODA2OWQwNTAwMzJhNS43ZDI2OTIzODcwODAyNTdlLjhlMmZiZDcxYTg4NTkwNzgKQEAgLTI4NzA5LDEwICsyODcwOSwxMCBAQAogICBhZnRlcgogICAgIDcwOTRhZDYxMWIxNDRhYjguZTZhZWY4ODc3NGE3YjU2OC4xM2U5ZTAwOGRiNmYwNWY4LmI0MGE5NmYwMzY5Mzc5NWYKICAgICAxNWI4MWVhYmZiMzYyZjhmLjk3ZjgwNjlkMDUwMDMyYTUuN2QyNjkyMzg3MDgwMjU3ZS44ZTJmYmQ3MWE4ODU5MDc4Ci0gICAgYjQyM2NiYmJhNTYxOGM4YS5kYmU2MDA0ZDZhZjBjODhiLmYzYzRjMjM4YzExNWRmOTEuY2RkMWQyNTdhMDQ4YTI2NAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZDI2OTIzODcwODAyNTdlLjgwMDAwMDAwODAwMDAwMDAKKyAgICBiNTIxOWQ1NGI1MjE5ZDU0LmJlODIzMjQ1YmU4MjMyNDUuNmJiYTZlZGU2YmJhNmVkZS4zOWU4NmE0ZTM5ZTg2YTRlCisgICAgYTgyMGFmZmNiNTIxOWQ1NC44ZDQzNjM4M2JlODIzMjQ1LmQxMGU2YjcyNmJiYTZlZGUuNGNiZTUxOGMzOWU4NmE0ZQogICAgIGU5YzBiNmZlOGY2ZmE1NjMKLVZST1VORFBTXzEyOF8weDQobWVtKQorVk1PVlNMRFVQXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDdmYTQ3ZDk4YmZlYzBmY2YuNGZmZGM3ZDljODAzOWQ5YS44YmRkYTkyYzFlYzIyZGZmLjc0NTI4OTU0MDlmOTBmMTEKICAgICBlOTM2MjM0NmU0Njg2NGJkLjA0MDQwZGMwN2E5MmNhMDcuYWY3ZTUwMzJhNWJkNzRlNy4zNmRhMTg0OTM4NjBmZWQ1CkBAIC0yODcyMiwxMSArMjg3MjIsMTEgQEAKICAgYWZ0ZXIKICAgICA3ZmE0N2Q5OGJmZWMwZmNmLjRmZmRjN2Q5YzgwMzlkOWEuOGJkZGE5MmMxZWMyMmRmZi43NDUyODk1NDA5ZjkwZjExCiAgICAgZTkzNjIzNDZlNDY4NjRiZC4wNDA0MGRjMDdhOTJjYTA3LmFmN2U1MDMyYTViZDc0ZTcuMzZkYTE4NDkzODYwZmVkNQotICAgIDA1NDEyM2Y0MWJmMTVmNWEuMjI4MjdmMWM2NjViNWU0OC5kN2YzZDQ4MzcwN2VjNTI3Ljc0ZjMxNWJkOTM3Yjc3ZDYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC43NDUyODk1NDAwMDAwMDAwCisgICAgYmZlYzBmY2ZiZmVjMGZjZi5jODAzOWQ5YWM4MDM5ZDlhLjFlYzIyZGZmMWVjMjJkZmYuMDlmOTBmMTEwOWY5MGYxMQorICAgIGFkOTNmOThmODA5MmJkZDEuMDdjMzE3NTkyOGU5OTUwOC5kZTA4YWYwOTlhMTFkYWViLjhhZTk3YTFjYjZkNGI1YzEKICAgICBkNDA4NDVkMjNlZmFmNTQyCiAKLVZST1VORFBTXzEyOF8weDQocmVnKQorVk1PVlNMRFVQXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGFlOWM3MjRiYzc3NjczMDUuYmZmNjIxMDEyZTU3M2E0Zi4wZTEzZDRlMzVkYzhhZGY0LjlmODk1ZmIyNDA4MzcwNjAKICAgICA3NGYwZmJmM2VjZDY2YmI1LjE1MzcxNzM3NDE0ZDkxZmYuOTJiZGFmMjdhMDg1ZTBiOC5mNzQyNWY2OTdkZGY0MmIyCkBAIC0yODczNiwxMCArMjg3MzYsMTAgQEAKICAgYWZ0ZXIKICAgICBhZTljNzI0YmM3NzY3MzA1LmJmZjYyMTAxMmU1NzNhNGYuMGUxM2Q0ZTM1ZGM4YWRmNC45Zjg5NWZiMjQwODM3MDYwCiAgICAgNzRmMGZiZjNlY2Q2NmJiNS4xNTM3MTczNzQxNGQ5MWZmLjkyYmRhZjI3YTA4NWUwYjguZjc0MjVmNjk3ZGRmNDJiMgotICAgIDgzNTJkZTM3NGFhNTE4ZmUuOGMyMjU4MWVkNjdmN2YwZS5mMTBmYTU4ZjhlYWI2YmZmLmMzZmYyYjFhNmQzMjBlMGMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMC5mNzQyNWY2OTdkZGY0MmIyCisgICAgN2I2ZmI3OGQ3YjZmYjc4ZC4wOGZhYzBhODA4ZmFjMGE4LmMyYzY4OTc2YzJjNjg5NzYuMmQ4NzhlOWIyZDg3OGU5YgorICAgIDM1MGMxNjgxN2I2ZmI3OGQuMDE4MzVmYTAwOGZhYzBhOC44NTUzYjM4OGMyYzY4OTc2LmRkOGIzZmIxMmQ4NzhlOWIKICAgICAyM2IzMTgxYWQ5ZWE3ZjhhCi1WUk9VTkRQU18xMjhfMHg0KG1lbSkKK1ZNT1ZTTERVUF8yNTYobWVtKQogICBiZWZvcmUKICAgICA2ZjQ0MzA0MThjNjc5YzA3LmU2NmI5ZjNmMWVjMTgzMGUuNGUyNmE4YWJmM2M4MTBmOC5hY2Q2ZDQ3ZmQ5NjI3OGM5CiAgICAgOWUwNzA1MTI2MjBiYTIzYi5mNGJiNzVkY2NkMjZiYTJkLjUxZDZiMDJhYjVmODJhMmIuYzBlNDA0ZGY2ZTBjNzJhMwpAQCAtMjg3NDksMTEgKzI4NzQ5LDExIEBACiAgIGFmdGVyCiAgICAgNmY0NDMwNDE4YzY3OWMwNy5lNjZiOWYzZjFlYzE4MzBlLjRlMjZhOGFiZjNjODEwZjguYWNkNmQ0N2ZkOTYyNzhjOQogICAgIDllMDcwNTEyNjIwYmEyM2IuZjRiYjc1ZGNjZDI2YmEyZC41MWQ2YjAyYWI1ZjgyYTJiLmMwZTQwNGRmNmUwYzcyYTMKLSAgICA4ZGNiMTM3YTc4ZTE0ZDU0LmJhNDc5NGMzMjQyYjk2OTUuZTQ2MWYxMDk2NzkzY2I2Yy4xZmM5NDAxMzFlNTBiM2IxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRlMjZhOGFiZjNjODEwZjguODAwMDAwMDBkOTYyNzhjOQorICAgIDhjNjc5YzA3OGM2NzljMDcuMWVjMTgzMGUxZWMxODMwZS5mM2M4MTBmOGYzYzgxMGY4LmQ5NjI3OGM5ZDk2Mjc4YzkKKyAgICAxNjViZDQ2M2U5ZjY1OTdlLjk0NWRmOTYyYzA1YTU0ZjIuZTQ5MWU5MzQyN2E3YWZlOS4yM2QwODI4OTg0Yjg3OTllCiAgICAgMjk0N2M4YWMzY2QyZmUxNwogCi1WUk9VTkRQU18yNTZfMHgwKHJlZykKK1ZNT1ZTSERVUF8xMjgocmVnKQogICBiZWZvcmUKICAgICA4ZTc4MGRlOGUzMmE3ZmM3LjE2ODJjNmJiZDI1NTgxZTUuZGU0NzlmMjQzYzQyMmZmMS4yZDMzMTM5NzExM2Y5MWNiCiAgICAgYWNiMDRlYTkxNTRhMzc1Yi42OTBlNjM2ZDRlMGE4MmI0LmY0NTM4Mjc1MzU2YzY0M2UuOWIxM2ViMWU0MDY4MmY0MApAQCAtMjg3NjMsMTAgKzI4NzYzLDEwIEBACiAgIGFmdGVyCiAgICAgOGU3ODBkZThlMzJhN2ZjNy4xNjgyYzZiYmQyNTU4MWU1LmRlNDc5ZjI0M2M0MjJmZjEuMmQzMzEzOTcxMTNmOTFjYgogICAgIGFjYjA0ZWE5MTU0YTM3NWIuNjkwZTYzNmQ0ZTBhODJiNC5mNDUzODI3NTM1NmM2NDNlLjliMTNlYjFlNDA2ODJmNDAKLSAgICBlMDNiODU1YjZkYzA2NDdmLmViYzkyYTY0N2EyMTE4MTcuMzJjYjlmYzE0NjY2MmY4NC4wYmZkZWViNWQwMmQ0Mzc0Ci0gICAgODAwMDAwMDAwMDAwMDAwMC42OTBlNjM2ZDRlMGE4MmI0LmY0NTM4Mjc1MDAwMDAwMDAuODAwMDAwMDA0MDgwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mM2ZjZjA3NGYzZmNmMDc0LjU3YmM5NjQ4NTdiYzk2NDgKKyAgICA4NjY1YjA2Yjg3MTg0MGRlLjc4ODA5NDhlNzFhN2ZlM2MuZjNmY2YwNzQwY2JiY2M3MC41N2JjOTY0OGRlOWE4OTkzCiAgICAgNWMxZTYxYzQ4NmJiYmZjOAotVlJPVU5EUFNfMjU2XzB4MChtZW0pCitWTU9WU0hEVVBfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZjZlZGNhMTNlMzlkOWYzZi5mYjdhY2E0MzAwZGMwODI1LmVkZmYxZWQ2NTBhOGYxNGMuOTUzMjczZmIyMmY4NzZhZQogICAgIDAxZjY0ZTIzMTE0Y2U1MjUuOTljNmNmNTA3NDlhZjdmZi4yNDEyNDUyODMyMmVhZDc2LjczYjgyM2MwMjVhNzZiZTkKQEAgLTI4Nzc2LDExICsyODc3NiwxMSBAQAogICBhZnRlcgogICAgIGY2ZWRjYTEzZTM5ZDlmM2YuZmI3YWNhNDMwMGRjMDgyNS5lZGZmMWVkNjUwYThmMTRjLjk1MzI3M2ZiMjJmODc2YWUKICAgICAwMWY2NGUyMzExNGNlNTI1Ljk5YzZjZjUwNzQ5YWY3ZmYuMjQxMjQ1MjgzMjJlYWQ3Ni43M2I4MjNjMDI1YTc2YmU5Ci0gICAgNTkwNTY3ZGYyZGQyNGZhNi5iZDk0YmJmZjdlZGU0YTE5LmZhODQ4NDcxMzQ0N2VlZTQuZThkY2ZjMzFiMDU3ZTRjZQotICAgIGY2ZWRjYTEzZTM5ZDlmM2YuZmI3YWNhNDMwMDAwMDAwMC5lZGZmMWVkNjUwYThmMTRjLjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWRmZjFlZDZlZGZmMWVkNi45NTMyNzNmYjk1MzI3M2ZiCisgICAgZGFlNjkzMzI1MjNkOTdlZS5jMzMxOGJiYmJhMzMzZDFmLjRiMjM1NzliNzFmZTZmYzIuNTJlOGZiYjg2MDkxMjAwOAogICAgIDBjMjkxYmMzZDBlMzU5NDQKIAotVlJPVU5EUFNfMjU2XzB4MChyZWcpCitWTU9WU0hEVVBfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNzFlYjU4YmQ5Y2Q4Y2MyZC42MDY1NGQwYTlkOTg3YTI4LjA3ZTkzYWVmYzUyNTBjYmMuZjNiOTNiOTMwNTYwZWQzZAogICAgIGRmN2FhZTEyNjFmZGI1NzAuYzc0ZDExNTIyOWYwYjQ4MC5lNTA4YzQwOTNhNDBmMjlkLmNkMTNhYTQ2MGQ3ODI0ODEKQEAgLTI4NzkwLDEwICsyODc5MCwxMCBAQAogICBhZnRlcgogICAgIDcxZWI1OGJkOWNkOGNjMmQuNjA2NTRkMGE5ZDk4N2EyOC4wN2U5M2FlZmM1MjUwY2JjLmYzYjkzYjkzMDU2MGVkM2QKICAgICBkZjdhYWUxMjYxZmRiNTcwLmM3NGQxMTUyMjlmMGI0ODAuZTUwOGM0MDkzYTQwZjI5ZC5jZDEzYWE0NjBkNzgyNDgxCi0gICAgYjAyMjE5MmViYmRkNGZiOS5lYjZjNWNmNjEzNTAwMDIzLmI5ZGEyNTc0YjYxMTJjNmQuYjdmZDIyOWVhNTUyZDBiYQotICAgIGRmN2FhZTEyNjFmZGI1NzAuYzc0ZDExMDAwMDAwMDAwMC5lNTA4YzQwOTAwMDAwMDAwLmNkMTNhYTQ2MDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGZhYjU5OWNkZmFiNTk5Yy44YzQzMWU4OThjNDMxZTg5CisgICAgNDIyZTk2N2Q0NTA0ZDdiMy5hNzhjYThlMzc2YzQxYjNkLmRmYWI1OTljZDQyM2Y2ZDkuOGM0MzFlODllOGZiYWMxMwogICAgIDI4YjAxYWYxZjI3ZTc1YjgKLVZST1VORFBTXzI1Nl8weDAobWVtKQorVk1PVlNIRFVQXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDY3MTI5M2M0ZTBlN2U3ZDYuZWZlYzFmNmI5YmZmODkwYi5kOTdhNzMwMzZmNTljMWY5LmIzYzY1ZGVkMzEwMjhiOGQKICAgICAyNTMzMDNlZGNkNDNiZDk5LjE0YTZiMjY0NWE1OWExNmQuNWMwMjM4NDMxOTFhYWQ4NC45MTc4MmNkMzY4M2IyOTM0CkBAIC0yODgwMywxMSArMjg4MDMsMTEgQEAKICAgYWZ0ZXIKICAgICA2NzEyOTNjNGUwZTdlN2Q2LmVmZWMxZjZiOWJmZjg5MGIuZDk3YTczMDM2ZjU5YzFmOS5iM2M2NWRlZDMxMDI4YjhkCiAgICAgMjUzMzAzZWRjZDQzYmQ5OS4xNGE2YjI2NDVhNTlhMTZkLjVjMDIzODQzMTkxYWFkODQuOTE3ODJjZDM2ODNiMjkzNAotICAgIDNkZTBlODU4ZDY5ZGI0MmMuMGVhOTRiZDUxZDllNWE4NC4wY2VmNzQ5MDkxMTM5ZDBhLmQ1MGVjMmJiMTU1OTBhN2IKLSAgICA2NzEyOTNjNGUwZTdlN2Q2LmVmZWMxZjZiODAwMDAwMDAuZDk3YTczMDM2ZjU5YzFmOS44MDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ5N2E3MzAzZDk3YTczMDMuYjNjNjVkZWRiM2M2NWRlZAorICAgIDhkZTViZWYxMTcwMTg4YmMuMzc0MWU0Mjg4MTViZjFmYy5jNTBmYTFkNGYyNTE0YmI2LmRiZDIxYzBmZDVlOTZhMGQKICAgICBmZjEwMzQzZDQ0NzY4Nzk3CiAKLVZST1VORFBTXzI1Nl8weDAocmVnKQorVk1PVlNIRFVQXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDljMTYwOGFmZmQ4YzliYzUuZjAwZWZmYTRhYTdjZjQ3NS5lY2JhN2JjYjIxMWJhMjgzLjYyMmMzZGZkNThkZjczYjUKICAgICAxMDJmOTNkMzljYjdlMzQyLjQxMjcyODVlYWUxOWI2ODIuOGE1ZjBiMjg5YTZhYThjMy5jMTE0YzNmNmUwYzlkMzMyCkBAIC0yODgxNywxMCArMjg4MTcsMTAgQEAKICAgYWZ0ZXIKICAgICA5YzE2MDhhZmZkOGM5YmM1LmYwMGVmZmE0YWE3Y2Y0NzUuZWNiYTdiY2IyMTFiYTI4My42MjJjM2RmZDU4ZGY3M2I1CiAgICAgMTAyZjkzZDM5Y2I3ZTM0Mi40MTI3Mjg1ZWFlMTliNjgyLjhhNWYwYjI4OWE2YWE4YzMuYzExNGMzZjZlMGM5ZDMzMgotICAgIGI2YTZkMTE0YmU4NDlhYmIuNWVmYmI2MDkzY2U0ODgxMC42YjdlOTBhZDg3ZDU0MTY4LmJkOTFhZmFhYTYxYzI1NWEKLSAgICAwMDAwMDAwMDgwMDAwMDAwLjQxMjAwMDAwODAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMC5jMTEwMDAwMGUwYzlkMzMyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVjNjEwNmM1ZWM2MTA2YzUuMzE3MDdkMDczMTcwN2QwNworICAgIGVhYzhiZmRlZmY3ZWZkZGIuMjI1ODI0OTM3M2VhMjY0YS5lYzYxMDZjNTg1ZTdhNzFmLjMxNzA3ZDA3YzVlMzI2NTgKICAgICBmYjdkYWFmODU5MmI5MTVhCi1WUk9VTkRQU18yNTZfMHgwKG1lbSkKK1ZNT1ZTSERVUF8xMjgobWVtKQogICBiZWZvcmUKICAgICBmNTgzYjE2OTdmZmUyNDg5LjA3ZTE1NzlkZmEzMjQ4NGYuNjgwOGVlZTY2YzM2NGU1ZC42OTU1NmFkYzJmMmMxNjk0CiAgICAgZmQ1MDBlNDc1MjZhOTkxNC42YjNkOTdiZDRiMmJiN2MyLjBlZDg5MWYwNDVkNWJhNzQuM2ZhNmI3NWUyMjMxY2M3MgpAQCAtMjg4MzAsMTEgKzI4ODMwLDExIEBACiAgIGFmdGVyCiAgICAgZjU4M2IxNjk3ZmZlMjQ4OS4wN2UxNTc5ZGZhMzI0ODRmLjY4MDhlZWU2NmMzNjRlNWQuNjk1NTZhZGMyZjJjMTY5NAogICAgIGZkNTAwZTQ3NTI2YTk5MTQuNmIzZDk3YmQ0YjJiYjdjMi4wZWQ4OTFmMDQ1ZDViYTc0LjNmYTZiNzVlMjIzMWNjNzIKLSAgICBlZGFlM2Q3Y2VmN2JhYzI0LjcwMjg3YWFhOGZmNTg1ZTEuZWU5NDg4OWMxYWQxMjdiYy5jOGEwZTliN2Y5ODEwMzY2Ci0gICAgZjU4M2IxNjk3ZmZlMjQ4OS4wMDAwMDAwMGZhMzI0ODRmLjY4MDhlZWU2NmMzNjRlNWQuNjk1NTZhZGMwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ODA4ZWVlNjY4MDhlZWU2LjY5NTU2YWRjNjk1NTZhZGMKKyAgICBhMzZhYmJmNTcxM2MxYmU4Ljc0ZWRmZGQwNjExZGYwNTguZTYwODRlZDUwNjM5NTA2MS42MThmZmM1MzUwYThmNzFiCiAgICAgNjZiZWVjOWVjNDMzZTYzZQogCi1WUk9VTkRQU18yNTZfMHgxKHJlZykKK1ZNT1ZTSERVUF8yNTYocmVnKQogICBiZWZvcmUKICAgICAzMzdhYjYwNWYxYWQwYTdiLmY5NTAwMjlmZjViOWEwOGEuZDJkYTFhOWI1ZTJkMzFkMi5kMGZmNjI4OTI1MTZmMzhlCiAgICAgMjQxMDU1ZjI3MmEzYTA3ZC5jYzJjOTA2NDk2ZmVmODM3LmU1MzljZjc4MjFiNDg3ZmMuODk0NzNkYTM5NDc2Y2E3MApAQCAtMjg4NDQsMTAgKzI4ODQ0LDEwIEBACiAgIGFmdGVyCiAgICAgMzM3YWI2MDVmMWFkMGE3Yi5mOTUwMDI5ZmY1YjlhMDhhLmQyZGExYTliNWUyZDMxZDIuZDBmZjYyODkyNTE2ZjM4ZQogICAgIDI0MTA1NWYyNzJhM2EwN2QuY2MyYzkwNjQ5NmZlZjgzNy5lNTM5Y2Y3ODIxYjQ4N2ZjLjg5NDczZGEzOTQ3NmNhNzAKLSAgICA5NWNhYzVkM2UzOWZlNGYxLmY5Y2FlMTMyNzExOGRlMWEuMGI1NzE3ZDE0NzNiMmM4Mi5lZWFhNWMwZjZmNjQ5MTMzCi0gICAgMDAwMDAwMDA3MmEzYTA3ZC5jYzJjOTA2NGJmODAwMDAwLmU1MzljZjc4MDAwMDAwMDAuYmY4MDAwMDBiZjgwMDAwMAorICAgIGUyZjUwMjEyZTJmNTAyMTIuNWFmNTZmZjQ1YWY1NmZmNC45ZTgwZWUxNDllODBlZTE0LmQ5ZjUzY2JhZDlmNTNjYmEKKyAgICBlMmY1MDIxMmUxMzAxMTgyLjVhZjU2ZmY0YTExMjEwNjAuOWU4MGVlMTQ2YjUwNWQwZi5kOWY1M2NiYWQxZWMwNjAyCiAgICAgMjdmNDU4OGVkNjFiZTMwOQotVlJPVU5EUFNfMjU2XzB4MShtZW0pCitWTU9WU0hEVVBfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYjU3MzJjNzg5YmZjZTU3Ni42N2RjMDkxZDA4ZGY2NGRkLmNjN2JiODk2NDNmOTQ4MzQuZmIwMDUwYWMyYTdmNTY1MAogICAgIDVkM2QzNTY1M2I5Y2M4NzIuN2ZjZGQ0NWZmMjNhMTlhZS4yYzI2MzYwNDcyZDg0MmMzLjdmMjMzYTA0MWY1MjUzZjAKQEAgLTI4ODU3LDExICsyODg1NywxMSBAQAogICBhZnRlcgogICAgIGI1NzMyYzc4OWJmY2U1NzYuNjdkYzA5MWQwOGRmNjRkZC5jYzdiYjg5NjQzZjk0ODM0LmZiMDA1MGFjMmE3ZjU2NTAKICAgICA1ZDNkMzU2NTNiOWNjODcyLjdmY2RkNDVmZjIzYTE5YWUuMmMyNjM2MDQ3MmQ4NDJjMy43ZjIzM2EwNDFmNTI1M2YwCi0gICAgZmMyMGVkNDBkMzA2NDcyYy44ODEyNjE0NDNlY2M2YmEwLjU0YzM2NzJhNGJiYmJjMzkuODQzNGE3OGFlNjU3OGY5YwotICAgIGJmODAwMDAwYmY4MDAwMDAuNjdkYzA5MWQwMDAwMDAwMC5jYzdiYjg5NjQzZjkwMDAwLmZiMDA1MGFjMDAwMDAwMDAKKyAgICBiNTczMmM3OGI1NzMyYzc4LjY3ZGMwOTFkNjdkYzA5MWQuY2M3YmI4OTZjYzdiYjg5Ni5mYjAwNTBhY2ZiMDA1MGFjCisgICAgNmVlNmQyZjQ3ZTQ2MWZjZS5kZGY4YWIzODg2MjE5ODVmLjIxMWVjN2Y0ZTlhZTcwYzEuNjc4MDkzYTkxYzFhNDdmZgogICAgIDg1NTRmYWNkNWQyNWI2YzYKIAotVlJPVU5EUFNfMjU2XzB4MShyZWcpCitWTU9WU0hEVVBfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMzhmYWQ5NjM0NDA2MTk5ZC44ZjVkNWY2ZjU5NjkwYzg1LmRhY2NhZmE3NjZjNmRhOTkuNmYwM2QwNGU2OGJlMWI4OAogICAgIGRkYmYyYWQ1NmQ0OWFkMmYuM2I0ZjExOWM3Zjc5Yzk3Yy5kYmQ4NjdmZDdiNDY2ZGY4LjFhM2QwMDI0ZTVmNjc5YjkKQEAgLTI4ODcxLDEwICsyODg3MSwxMCBAQAogICBhZnRlcgogICAgIDM4ZmFkOTYzNDQwNjE5OWQuOGY1ZDVmNmY1OTY5MGM4NS5kYWNjYWZhNzY2YzZkYTk5LjZmMDNkMDRlNjhiZTFiODgKICAgICBkZGJmMmFkNTZkNDlhZDJmLjNiNGYxMTljN2Y3OWM5N2MuZGJkODY3ZmQ3YjQ2NmRmOC4xYTNkMDAyNGU1ZjY3OWI5Ci0gICAgZDBlZWViOTA3NTc4YWIyOS40Zjg4NjI2NzBkODUxM2UwLjNiNjhkMWE3NjAyZThmMjguZmU5YWQyNjM3YzYzNDU4MQotICAgIGRkYmYyYWQ1NmQ0OWFkMmYuMDAwMDAwMDA3Zjc5Yzk3Yy5kYmQ4NjdmZDdiNDY2ZGY4LjAwMDAwMDAwZTVmNjc5YjkKKyAgICA2ZWQ1MTgwMTZlZDUxODAxLmE1ZDZkMGJjYTVkNmQwYmMuNThjYWU4MGY1OGNhZTgwZi5mN2U0YzJmNWY3ZTRjMmY1CisgICAgNmVkNTE4MDFmODIxNTIzNi5hNWQ2ZDBiYzFlOTZhNmRjLjU4Y2FlODBmYjEwOTdhZDYuZjdlNGMyZjU0NzEwM2MwYwogICAgIGUxZTg0Y2M4NjUwOTFhODUKLVZST1VORFBTXzI1Nl8weDEobWVtKQorVk1PVlNIRFVQXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDk4NzJlZGM3ZjA1YjlhMTkuMTFiZWFiOTI5MGQwZGMwMy4xYTA0ZDY4N2NmYmEzZTlkLjhkNDhhOWEzMGI2MzZiYWUKICAgICBmODRlMWZkZTA0MTE3YWYzLjE2ZjZhMmIxZGMwZjg2M2MuOGFkZGYwYjQzYmZjOTY0Zi4zNTMwMGVjZDBhYzk5ZDViCkBAIC0yODg4NCwxMSArMjg4ODQsMTEgQEAKICAgYWZ0ZXIKICAgICA5ODcyZWRjN2YwNWI5YTE5LjExYmVhYjkyOTBkMGRjMDMuMWEwNGQ2ODdjZmJhM2U5ZC44ZDQ4YTlhMzBiNjM2YmFlCiAgICAgZjg0ZTFmZGUwNDExN2FmMy4xNmY2YTJiMWRjMGY4NjNjLjhhZGRmMGI0M2JmYzk2NGYuMzUzMDBlY2QwYWM5OWQ1YgotICAgIGRkNDg2MGY4YmUzNzc0NDAuZDljYWY3Yzk3NjZkOGI4Yy5kMTJlOWEzMDdlNjk2YjFkLmFlY2MxNWZiNDljNjRkOGEKLSAgICBiZjgwMDAwMGYwNWI5YTE5LjAwMDAwMDAwYmY4MDAwMDAuMDAwMDAwMDBjZmJhM2U5ZC5iZjgwMDAwMDAwMDAwMDAwCisgICAgOTg3MmVkYzc5ODcyZWRjNy4xMWJlYWI5MjExYmVhYjkyLjFhMDRkNjg3MWEwNGQ2ODcuOGQ0OGE5YTM4ZDQ4YTlhMworICAgIDIzMmIyYzAzMzlkYTQ0MmMuYjY4M2E4NDVmYTczMjlhMC5jYWMzNTFlNWI2MGM3OTMzLjUyNjliOTk4NjVlNmI3ZTcKICAgICA3ZjUzZjYxMGY5YjUxNzFkCiAKLVZST1VORFBTXzI1Nl8weDEocmVnKQorVk1PVlNIRFVQXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDhmZDVjOGNmYTFjMGE5ZDkuYTZjNWZkZWE5MjA1YThlMi4wOTcwYjE5MzA1YWY5YTIzLjUzNjg5MGMxZmNmMTdjYmYKICAgICBlMDNkMmM0MWZhOTNhOGM2LjQyZTA1MTlhZTRjNDVhOGYuMmVkYzBjMWUzMmFjMWJjMi40N2U5ZDNhZTZlMjUyZmViCkBAIC0yODg5OCwxMCArMjg4OTgsMTAgQEAKICAgYWZ0ZXIKICAgICA4ZmQ1YzhjZmExYzBhOWQ5LmE2YzVmZGVhOTIwNWE4ZTIuMDk3MGIxOTMwNWFmOWEyMy41MzY4OTBjMWZjZjE3Y2JmCiAgICAgZTAzZDJjNDFmYTkzYThjNi40MmUwNTE5YWU0YzQ1YThmLjJlZGMwYzFlMzJhYzFiYzIuNDdlOWQzYWU2ZTI1MmZlYgotICAgIGNjZDUxZGQyOWZiODUxOTEuZDM0OWEzZmQ0YzI0MTY1ZS44MTEyYjc1MzFkZjZlNzI5LjgyMTI5NjlhMjdiMzRmZTMKLSAgICBlMDNkMmM0MWZhOTNhOGM2LjQyZTAwMDAwZTRjNDVhOGYuMDAwMDAwMDAwMDAwMDAwMC40N2U5ZDM4MDZlMjUyZmViCisgICAgYjFlYjk3ZWViMWViOTdlZS4zNWNjNmYwMDM1Y2M2ZjAwLjVlNjBhZDljNWU2MGFkOWMuZTBhZTU2NzBlMGFlNTY3MAorICAgIGIxZWI5N2VlMmRiZGRmZTUuMzVjYzZmMDBlNTMwOWE3Yy41ZTYwYWQ5YzY0MWEzYjAzLmUwYWU1NjcwNDRhNzk4ZDQKICAgICAzZDhiOGQxY2UxMGVjNWVhCi1WUk9VTkRQU18yNTZfMHgxKG1lbSkKK1ZNT1ZTSERVUF8yNTYobWVtKQogICBiZWZvcmUKICAgICA3NDczYjk4YTE4ZjM5MzUxLmU5Yzk5NjAxNDAyZDhmNmYuNDMzNDMxOTBjYmY0YTAxNS4yMTEwZWE2NmEwYTM1M2ZkCiAgICAgNjMzMzU1YTYwODYyYmUzNC5kMWJjMTY3ODcyOTU5ZWRiLmRiNGY2Njk3MWI3ZGU1NTQuMjY2ZjZhMWQ2ZjFlNmJjMgpAQCAtMjg5MTEsMTEgKzI4OTExLDExIEBACiAgIGFmdGVyCiAgICAgNzQ3M2I5OGExOGYzOTM1MS5lOWM5OTYwMTQwMmQ4ZjZmLjQzMzQzMTkwY2JmNGEwMTUuMjExMGVhNjZhMGEzNTNmZAogICAgIDYzMzM1NWE2MDg2MmJlMzQuZDFiYzE2Nzg3Mjk1OWVkYi5kYjRmNjY5NzFiN2RlNTU0LjI2NmY2YTFkNmYxZTZiYzIKLSAgICBlNTk3ZGU1Y2NiNjgwMWJmLmM2MGYxNGJkNjI4MDQ1ZDQuZDhlNzg4MDNmMWQ2MjU2NS5jOGM5MmEyZTZkMTViZWZmCi0gICAgNzQ3M2I5OGEwMDAwMDAwMC5lOWM5OTYwMTQwMDAwMDAwLjQzMzQwMDAwY2JmNGEwMTUuMDAwMDAwMDBiZjgwMDAwMAorICAgIDc0NzNiOThhNzQ3M2I5OGEuZTljOTk2MDFlOWM5OTYwMS40MzM0MzE5MDQzMzQzMTkwLjIxMTBlYTY2MjExMGVhNjYKKyAgICBkNTZhY2U5ODdkMTAxYTFmLjIyMTA4YjNlYWE3YWMzMDcuMTVjYTE1YmY2ODBiMWI3Ni42NTY5MjUwNDM1MTc4YTYwCiAgICAgNTg5ZDU3MGE2M2FkMDg5MAogCi1WUk9VTkRQU18yNTZfMHgyKHJlZykKK1ZQRVJNSUxQU19WQVJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZmRhZmJjYWU5NDY1NzczYy4xMTdhYTM0NzNiNjdjMzgwLjQyMDk3NzY2ZTYxMDUyMWYuNzBjMjg4YjY5YzI5ODRiMQogICAgIGFmZWM1MDViNjRjYTExMGYuNzQ5MWQ4NTMyMDc3YjgwZC44MzQ4ZDRhMWIyY2QyZmM5LmM0OWM1ZWQ2YWEzYjFjNDIKQEAgLTI4OTIzLDEyICsyODkyMywxMiBAQAogICAgIGFmMTdmNzgwNGVjZGI5ZGMuMWUwNzUzMzZkMGY4N2E1ZS5kM2MzZDNmZjZkZWRjMjgyLmM2MjUxZjNmYzM2Y2M4MTkKICAgICAyYzZkMDM1ZjA1YTM1NGI2CiAgIGFmdGVyCi0gICAgZmRhZmJjYWU5NDY1NzczYy4xMTdhYTM0NzNiNjdjMzgwLjQyMDk3NzY2ZTYxMDUyMWYuNzBjMjg4YjY5YzI5ODRiMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMmNkMmZjOWM0OWM1ZWQ2LmIyY2QyZmM5YjJjZDJmYzkKICAgICBhZmVjNTA1YjY0Y2ExMTBmLjc0OTFkODUzMjA3N2I4MGQuODM0OGQ0YTFiMmNkMmZjOS5jNDljNWVkNmFhM2IxYzQyCiAgICAgY2NhMDEwN2Q2ZTY5MTNiNi5kOTdjZTlhYTQ4NGViN2YzLjNmMTc5ZjVhYWMzZTk1YjEuZWMyNDExMGFhZTRkOWY1NgotICAgIDgwMDAwMDAwNjRjYTExMGYuNzQ5MWQ4NTMzZjgwMDAwMC44MDAwMDAwMDgwMDAwMDAwLmM0OWM0MDAwODAwMDAwMDAKKyAgICBhZjE3Zjc4MDRlY2RiOWRjLjFlMDc1MzM2ZDBmODdhNWUuZDNjM2QzZmY2ZGVkYzI4Mi5jNjI1MWYzZmMzNmNjODE5CiAgICAgMmM2ZDAzNWYwNWEzNTRiNgotVlJPVU5EUFNfMjU2XzB4MihtZW0pCitWUEVSTUlMUFNfVkFSXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGZjYzYzYTU3OTFmZmZmNWEuYjM5ZDAxZDBhMTgyM2UyZS4xZGZlOTBlNWQ0ODBiZTc5LjliOTg2Y2ZjOTM2OGYwZTkKICAgICAxMGZkM2UxMzgyOGE4NDMxLjM2N2UyYWQ5MDIxNGRmNTguYjQyZDFlYTI2ZmYyM2U3MC5mM2UxNjZiYmJhM2I1YzkyCkBAIC0yODkzOCwxMSArMjg5MzgsMTEgQEAKICAgYWZ0ZXIKICAgICBmY2M2M2E1NzkxZmZmZjVhLmIzOWQwMWQwYTE4MjNlMmUuMWRmZTkwZTVkNDgwYmU3OS45Yjk4NmNmYzkzNjhmMGU5CiAgICAgMTBmZDNlMTM4MjhhODQzMS4zNjdlMmFkOTAyMTRkZjU4LmI0MmQxZWEyNmZmMjNlNzAuZjNlMTY2YmJiYTNiNWM5MgotICAgIDQ2ZGU4ZDgwZjU1MmEwNjYuOTIwNTZmMDgwZTEwZDgwNS5iZDYwNzg1OWJlNWFiODcxLjM3ZWNiZGE5N2RmMDQxMjgKLSAgICBmY2M2M2E1NzgwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAuM2Y4MDAwMDBkNDgwYmU3OS44MDAwMDAwMDgwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzZTE2NmJiZjNlMTY2YmIuYmEzYjVjOTJmM2UxNjZiYgorICAgIDc4MzVhMjg5MDU2MzBmMjUuMjU3ZmNhYzc2MDAyNjVlMi4xNTYyMWJmNmRjYzVlNmE1LmMzMDM2ZTMyNzgxNmRjNTcKICAgICBmMzczNzRjMzQ4MzY2OWNjCiAKLVZST1VORFBTXzI1Nl8weDIocmVnKQorVlBFUk1JTFBTX1ZBUl8xMjgocmVnKQogICBiZWZvcmUKICAgICAyMzg4Y2JjNzg5ZGUyNDMzLjgzY2VmOTE5Y2ZjODhkOWMuNDkzOTM5ODQ5NTc0YzE5Yi45OTAwODE2NWU1M2U4NDNiCiAgICAgYWY4ZTZmYTlkNjk5NDgzNy40NDc0MGUxZTZlOGRkNWY0LjVjN2NiOGE5NDhmNDI5ZGIuMjMwNzI4OTJmNmQyNTA1ZApAQCAtMjg5NTAsMTIgKzI4OTUwLDEyIEBACiAgICAgNGI5ZDhmYmMwNTc5YmVjOS41MzFiNjQzNDlkNjhiNmZlLmJiZDVkMmUwOWE0YzBjYTIuYmQ3YTI2ZDc5ZTc4NWRmNwogICAgIDg0ODA3NmM3NmVhMjE3YzcKICAgYWZ0ZXIKLSAgICAyMzg4Y2JjNzg5ZGUyNDMzLjgzY2VmOTE5Y2ZjODhkOWMuNDkzOTM5ODQ5NTc0YzE5Yi45OTAwODE2NWU1M2U4NDNiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY2ZDI1MDVkNWM3Y2I4YTkuNDhmNDI5ZGJmNmQyNTA1ZAogICAgIGFmOGU2ZmE5ZDY5OTQ4MzcuNDQ3NDBlMWU2ZThkZDVmNC41YzdjYjhhOTQ4ZjQyOWRiLjIzMDcyODkyZjZkMjUwNWQKICAgICBmM2QxNWRkN2NiZjMxMjg1Ljk1ZjU1ZTgzZmZiZWE0NWMuYjg5NzQxYTQxNjBkZDk0Zi45MDQxOGI2YTJhOGIwNDM4Ci0gICAgODAwMDAwMDBkNjk5NDgzNy40NDc0NDAwMDZlOGRkNWY0LjVjN2NiOGE5NDhmNDI5ZTAuM2Y4MDAwMDBmNmQyNTA1ZAorICAgIDRiOWQ4ZmJjMDU3OWJlYzkuNTMxYjY0MzQ5ZDY4YjZmZS5iYmQ1ZDJlMDlhNGMwY2EyLmJkN2EyNmQ3OWU3ODVkZjcKICAgICA4NDgwNzZjNzZlYTIxN2M3Ci1WUk9VTkRQU18yNTZfMHgyKG1lbSkKK1ZQRVJNSUxQU19WQVJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzIxZWY1MjRiNDE3ZWRkMy4xMzNkMDNjNDFmYjY4OGFlLjVhYjM5YzFkNjQ5NmM2MDcuYmY4MTY1Yzk3MDNjZmY4MQogICAgIDUzMWYyMWRjOGZlMjljNDguYTZmZWI1NWJiNjM3YWJlMS44Nzg5ODIyYTcxNTU5MmEyLjIxZTlmOWNiMzU2OWVlOTcKQEAgLTI4OTY1LDExICsyODk2NSwxMSBAQAogICBhZnRlcgogICAgIGMyMWVmNTI0YjQxN2VkZDMuMTMzZDAzYzQxZmI2ODhhZS41YWIzOWMxZDY0OTZjNjA3LmJmODE2NWM5NzAzY2ZmODEKICAgICA1MzFmMjFkYzhmZTI5YzQ4LmE2ZmViNTViYjYzN2FiZTEuODc4OTgyMmE3MTU1OTJhMi4yMWU5ZjljYjM1NjllZTk3Ci0gICAgMTM1MDc1ZGExODEwZTA1Mi42MjJjOWZlZDY1ODc2NDBkLmI0Njk5MjQ3ZTBiMGQ0ZmMuM2U1Nzg3NTI4NTYwMTU5MQotICAgIGMyMWMwMDAwODAwMDAwMDAuM2Y4MDAwMDAzZjgwMDAwMC41YWIzOWMxZDY0OTZjNjA3LmJmODAwMDAwNzAzY2ZmODEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjFlOWY5Y2I4Nzg5ODIyYS4yMWU5ZjljYjIxZTlmOWNiCisgICAgZGY3ZDZlMDk2ZWFjNzQxYy5hMjEzYmZlNmM5MzJlZmRmLmJlMWU0OTYxY2NiMzQ4NDAuNzAxODBjY2FmYmFjYWYxYgogICAgIDE0Nzg4NTlmMzNkOWY5ZTAKIAotVlJPVU5EUFNfMjU2XzB4MihyZWcpCitWUEVSTUlMUFNfVkFSXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDg2YzNlZDNlY2E3NDJmOGQuOTE3Mjg2NTdhYWMyMTVkMy5jMmZmMGZiMjdkYzQ4NzAzLjgxNzYyMjYyNTE2YmFiOWIKICAgICAyMjQ0NDAxMTVjMDg4Y2NkLjA2ZmIzYmIwZWE1ZTdmYTIuMWQzYzhkYmUxZWNhNjkyNC5kOTNiOTkzNzhjZTNiYTM5CkBAIC0yODk3NywxMiArMjg5NzcsMTIgQEAKICAgICA0OTFjOTgwN2RlNGNhZmI5LmE5Zjg2OTJlZTU1YjlkM2IuZjlkODAxNDI5NDYwZmEwZi5iODNmNTIwZjkyNDNjNmVjCiAgICAgZjcxNjhjZTk5NjQ0M2M1OQogICBhZnRlcgotICAgIDg2YzNlZDNlY2E3NDJmOGQuOTE3Mjg2NTdhYWMyMTVkMy5jMmZmMGZiMjdkYzQ4NzAzLjgxNzYyMjYyNTE2YmFiOWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGNlM2JhMzkxZDNjOGRiZS5kOTNiOTkzN2Q5M2I5OTM3CiAgICAgMjI0NDQwMTE1YzA4OGNjZC4wNmZiM2JiMGVhNWU3ZmEyLjFkM2M4ZGJlMWVjYTY5MjQuZDkzYjk5Mzc4Y2UzYmEzOQogICAgIDQ1NDk3Yjg2ODMyMjRlNGQuMWFlMzA4ZmU0YThkNmViNi4xMTE1MzU3NDQ3Y2ZkMWVmLmEyM2EyYWNkOTkyNzJlNDUKLSAgICAzZjgwMDAwMDVjMDg4Y2NkLjNmODAwMDAwZWE1ZTdmYTIuM2Y4MDAwMDAzZjgwMDAwMC5kOTNiOTkzNzgwMDAwMDAwCisgICAgNDkxYzk4MDdkZTRjYWZiOS5hOWY4NjkyZWU1NWI5ZDNiLmY5ZDgwMTQyOTQ2MGZhMGYuYjgzZjUyMGY5MjQzYzZlYwogICAgIGY3MTY4Y2U5OTY0NDNjNTkKLVZST1VORFBTXzI1Nl8weDIobWVtKQorVlBFUk1JTFBTX1ZBUl8xMjgobWVtKQogICBiZWZvcmUKICAgICAzYjhiNTQ0NmJmMzY0ZGI5LjhiMGE5NTAyMDcxNGViYmMuOGYwNGRhMmNkOGQyYzk1Yy4zMGNmZWY5M2EzMDgyMjMxCiAgICAgNjA2OTI2MTQyOTIzYjUzOC42NzVmNmRlMjlhMDY0MDAzLmE4ZDRkOGU1M2UwMGFlNDYuMTQ0N2ZhZDMwZDUzODMwMApAQCAtMjg5OTIsMTEgKzI4OTkyLDExIEBACiAgIGFmdGVyCiAgICAgM2I4YjU0NDZiZjM2NGRiOS44YjBhOTUwMjA3MTRlYmJjLjhmMDRkYTJjZDhkMmM5NWMuMzBjZmVmOTNhMzA4MjIzMQogICAgIDYwNjkyNjE0MjkyM2I1MzguNjc1ZjZkZTI5YTA2NDAwMy5hOGQ0ZDhlNTNlMDBhZTQ2LjE0NDdmYWQzMGQ1MzgzMDAKLSAgICA0MjdlN2UzZmYwMTkyZjAxLjM5NjcxYzEzMzRhZGU4MzkuY2YzNGRlNDMzM2YwMDgyNC5mZjhjMWU2ZDcwY2U1OTI5Ci0gICAgM2Y4MDAwMDA4MDAwMDAwMC44MDAwMDAwMDNmODAwMDAwLjgwMDAwMDAwZDhkMmM5NWMuM2Y4MDAwMDA4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZDUzODMwMDBkNTM4MzAwLmE4ZDRkOGU1MTQ0N2ZhZDMKKyAgICBiZDk0ZDliMTMyMjQ3ODQwLjVkNmQ5ZjAxNzA5NTFmMGIuZTJmMDY4MzRkNGFmOTIyMy40ZmU5NTdjZjY4MDRlMjU4CiAgICAgNWVhY2EyNjQ4ZjgxNTgzOAogCi1WUk9VTkRQU18yNTZfMHgzKHJlZykKK1ZQRVJNSUxQRF9WQVJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOGExZmZhOTk4NGQyZjg3Ni5hYzc4YjI1NzA4NGU0YzIzLjJmYmZmMDE4ZWE0YTIzMjUuYmNkM2YyYTMzZDQ4MDk2ZgogICAgIDJkOGY1YmQ4ZTE4MmZkYmUuZWRmNjg1MWQ5MGE1NjZkNC4wYmE3MGRjNDQwNTkyZTMyLjM5YWJmODdiODhjNzI5MzMKQEAgLTI5MDA0LDEyICsyOTAwNCwxMiBAQAogICAgIDRjOTYyODI4NDQzMDJhMTkuZDJlZjBhYmEyNTA4NjA1MS41MDZjOTk4Y2U5YjM0Y2Q3LjhiNjU2YTFiM2JhOTUyZDUKICAgICAxOWUwY2RiYWQ5MjRkNDBiCiAgIGFmdGVyCi0gICAgOGExZmZhOTk4NGQyZjg3Ni5hYzc4YjI1NzA4NGU0YzIzLjJmYmZmMDE4ZWE0YTIzMjUuYmNkM2YyYTMzZDQ4MDk2ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wYmE3MGRjNDQwNTkyZTMyLjBiYTcwZGM0NDA1OTJlMzIKICAgICAyZDhmNWJkOGUxODJmZGJlLmVkZjY4NTFkOTBhNTY2ZDQuMGJhNzBkYzQ0MDU5MmUzMi4zOWFiZjg3Yjg4YzcyOTMzCiAgICAgYTQ0OGMxOGU0MjFkYTViYi41YmQ5Y2VmMGU2MzU4NDdmLjRkNzJmMTcxMGI0ZDdkZGYuMzU0MmY3YWFkNDM5YWQ5YgotICAgIDAwMDAwMDAwZTE4MmZkYmUuZWRmNjg1MWQ4MDAwMDAwMC4wMDAwMDAwMDQwNDAwMDAwLjAwMDAwMDAwODAwMDAwMDAKKyAgICA0Yzk2MjgyODQ0MzAyYTE5LmQyZWYwYWJhMjUwODYwNTEuNTA2Yzk5OGNlOWIzNGNkNy44YjY1NmExYjNiYTk1MmQ1CiAgICAgMTllMGNkYmFkOTI0ZDQwYgotVlJPVU5EUFNfMjU2XzB4MyhtZW0pCitWUEVSTUlMUERfVkFSXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGJhN2Y5ZDc0Y2JiNGVlNjkuN2ZjNThkMTA4MjQ2Yzg4Ni4yZDAyYjQ2OTZhMmNiNjc2LjcyZTFmZjdmNzYxNWQ2YzcKICAgICA0OTBlNTQzMzJjNjc1ZTFjLjlhMjFlYmI0OTllYmJkYWIuNGFlMDQ4ZThkMGFkNDQxOS4wZTFkMjFiODRkMDI1ODViCkBAIC0yOTAxOSwxMSArMjkwMTksMTEgQEAKICAgYWZ0ZXIKICAgICBiYTdmOWQ3NGNiYjRlZTY5LjdmYzU4ZDEwODI0NmM4ODYuMmQwMmI0Njk2YTJjYjY3Ni43MmUxZmY3Zjc2MTVkNmM3CiAgICAgNDkwZTU0MzMyYzY3NWUxYy45YTIxZWJiNDk5ZWJiZGFiLjRhZTA0OGU4ZDBhZDQ0MTkuMGUxZDIxYjg0ZDAyNTg1YgotICAgIGE0NTg3MGU0MTk0OWRlNTAuZmFmNTNlN2YyNGFjNDMzNy4wNDUzNDIyMzczOTVjNDY3LjgwNmJmYWEyMGEwMzBlM2UKLSAgICA4MDAwMDAwMGNiYjRlZTY5LjdmYzU4ZDEwODAwMDAwMDAuMDAwMDAwMDA2YTJjYjY3Ni43MmUxZmY3Zjc2MTVkNmM3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRhZTA0OGU4ZDBhZDQ0MTkuNGFlMDQ4ZThkMGFkNDQxOQorICAgIGE2MmI2Yzc0YWQ2NDJhMzAuZjk4ZTgyZGNjMDE0OTdkNC4zNjI4MWUwNTcwZjJmMzhjLjIzMTg4NmE4NGFhNjM0MWMKICAgICA1NTcxYzIzOGE5NzYwNWEzCiAKLVZST1VORFBTXzI1Nl8weDMocmVnKQorVlBFUk1JTFBEX1ZBUl8xMjgocmVnKQogICBiZWZvcmUKICAgICA3MWMwYThiZGMyMDBiZTdkLjJhNTFjNGNkMDVjNjAwZTkuZjQzOWI0MzkwOGFmZjUyZi5iZTJiNTk3ZGUzZDA4Y2IzCiAgICAgZDI1MjM2YTMzMWNmOWI1Ni4wZTk3ZjVkZDNjN2IxYWE3LjQ3NDBjZjAxOTkwYTk4ZjMuNzYyNzZlNzRlNjNhNGQwOQpAQCAtMjkwMzEsMTIgKzI5MDMxLDEyIEBACiAgICAgZDg2ZTM4NDM4MzZjYWZiOC42MmIzY2VjZmI4MGIwY2UwLjY1OTRiMDgzMDMyZGEwNjguZWEzZTE2OTIxM2UyMzFmMAogICAgIDVlZjBhMTkyNzMzOWNlZDkKICAgYWZ0ZXIKLSAgICA3MWMwYThiZGMyMDBiZTdkLjJhNTFjNGNkMDVjNjAwZTkuZjQzOWI0MzkwOGFmZjUyZi5iZTJiNTk3ZGUzZDA4Y2IzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc2Mjc2ZTc0ZTYzYTRkMDkuNzYyNzZlNzRlNjNhNGQwOQogICAgIGQyNTIzNmEzMzFjZjliNTYuMGU5N2Y1ZGQzYzdiMWFhNy40NzQwY2YwMTk5MGE5OGYzLjc2Mjc2ZTc0ZTYzYTRkMDkKICAgICBkNjcyNjc1NjkzNmZkN2RiLjJjYzk3OThmNmU4ZTM1OTUuNGVlZmNmYTAwZWIwYmRjZC4zY2VhZDlkNzk4M2NmMGI5Ci0gICAgZDI1MjM2YTMwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ3NDBjZjAwODAwMDAwMDAuNzYyNzZlNzRlNjNhNGQwOQorICAgIGQ4NmUzODQzODM2Y2FmYjguNjJiM2NlY2ZiODBiMGNlMC42NTk0YjA4MzAzMmRhMDY4LmVhM2UxNjkyMTNlMjMxZjAKICAgICA1ZWYwYTE5MjczMzljZWQ5Ci1WUk9VTkRQU18yNTZfMHgzKG1lbSkKK1ZQRVJNSUxQRF9WQVJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNzJjY2Y3YzFkNTRjODFhMS4zMzkwYTNkNDllNTM1Zjk4LjhhMjA2Zjg5MzZmZTVkYjMuZTg3YTZlMTQxNTBlN2M3MQogICAgIDA0OWU5MzBkNTQyODA3NzQuNDUyNmE2NzY3ZmIwMjMyOC44MWRlZDlhOTAzNzRlMjNiLjMzZWMwNmMwZTBkZThmOTQKQEAgLTI5MDQ2LDExICsyOTA0NiwxMSBAQAogICBhZnRlcgogICAgIDcyY2NmN2MxZDU0YzgxYTEuMzM5MGEzZDQ5ZTUzNWY5OC44YTIwNmY4OTM2ZmU1ZGIzLmU4N2E2ZTE0MTUwZTdjNzEKICAgICAwNDllOTMwZDU0MjgwNzc0LjQ1MjZhNjc2N2ZiMDIzMjguODFkZWQ5YTkwMzc0ZTIzYi4zM2VjMDZjMGUwZGU4Zjk0Ci0gICAgZWUzMmYxNjAwZGQ3MWI3ZC42ODdhM2M5NmMzMGQzNjE0LjI0Yjc4NjFiM2I3ODU3YTMuYTIzNzczZjRmZjI5MTI3YwotICAgIDcyY2NmN2MxZDU0YzgxYTEuMDAwMDAwMDA4MDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLmU4N2E2ZTE0MDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODFkZWQ5YTkwMzc0ZTIzYi4zM2VjMDZjMGUwZGU4Zjk0CisgICAgMGQ1MzhlYTgxYjY4N2JlOS5mYWQ5NjE5ZjA1ZjhkNTA3LjRkNzhmNGNiZmIxNzdhMTguOTFhN2IxMWEwZTdjNDRkNgogICAgIDVjODhiY2EwYWE2MjVmNGQKIAotVlJPVU5EUFNfMjU2XzB4MyhyZWcpCitWUEVSTUlMUERfVkFSXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDVmMjY5MWYxNmU2OGExOGUuM2RjZmU0ZDA5YWU0ZTFlNC41NThmMTJmY2UxZmMzY2FkLmQ5ZWQ5ZWE1NWY1YzA1YzYKICAgICBmNmNjMmI3OWY3MTk0MzQ0LjViNzA3MWM0YTc1OTA5OTkuZDZlNzQ5MWJmNWE2YTZiNC5hNWUyMDA5NjgxNTNiNWQ4CkBAIC0yOTA1OCwxMiArMjkwNTgsMTIgQEAKICAgICA1MDY0OWVkZWM2YWM5ZWMyLmNjNTQxZGMwZGE1YzkzZTMuYmJiMTNlNGMyZTE5NzY4Zi42ODdiZGQ2OTc2ODg3M2RhCiAgICAgMThiNzUwMjM3ZmRlZjkyMgogICBhZnRlcgotICAgIDVmMjY5MWYxNmU2OGExOGUuM2RjZmU0ZDA5YWU0ZTFlNC41NThmMTJmY2UxZmMzY2FkLmQ5ZWQ5ZWE1NWY1YzA1YzYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDZlNzQ5MWJmNWE2YTZiNC5kNmU3NDkxYmY1YTZhNmI0CiAgICAgZjZjYzJiNzlmNzE5NDM0NC41YjcwNzFjNGE3NTkwOTk5LmQ2ZTc0OTFiZjVhNmE2YjQuYTVlMjAwOTY4MTUzYjVkOAogICAgIDdkYzg4NWE0ZTEwMTg0MWQuNDEwM2IwNzA1ZWQyYjEzNC5kYTJmMDQ2N2RhODE1MGM2LjhiMjM5Nzg4ODAwODQ2N2IKLSAgICBmNmNjMmI3OWY3MTk0MzQ0LjViNzA3MWM0ODAwMDAwMDAuZDZlNzQ5MWJmNWE2YTZiNC44MDAwMDAwMDgwMDAwMDAwCisgICAgNTA2NDllZGVjNmFjOWVjMi5jYzU0MWRjMGRhNWM5M2UzLmJiYjEzZTRjMmUxOTc2OGYuNjg3YmRkNjk3Njg4NzNkYQogICAgIDE4Yjc1MDIzN2ZkZWY5MjIKLVZST1VORFBTXzI1Nl8weDMobWVtKQorVlBFUk1JTFBEX1ZBUl8xMjgobWVtKQogICBiZWZvcmUKICAgICA3N2E0NmJhNGI4MTc5NDdmLmNiZWQ2ZjkzNDVhN2NlZTIuZDgyZjM1YTAzODAyNmNjZi5kNmJhZjMzNjhkZmI1NGJjCiAgICAgNjIwY2FhZDczYzNlZmYxYy40OWFmZjYyZmY3N2Q1MDI3LjQxNWY3MmZkOTJkMGY4MjcuODg5NjIwOTE5MmIyMjVmOQpAQCAtMjkwNzMsMTEgKzI5MDczLDExIEBACiAgIGFmdGVyCiAgICAgNzdhNDZiYTRiODE3OTQ3Zi5jYmVkNmY5MzQ1YTdjZWUyLmQ4MmYzNWEwMzgwMjZjY2YuZDZiYWYzMzY4ZGZiNTRiYwogICAgIDYyMGNhYWQ3M2MzZWZmMWMuNDlhZmY2MmZmNzdkNTAyNy40MTVmNzJmZDkyZDBmODI3Ljg4OTYyMDkxOTJiMjI1ZjkKLSAgICBiM2JiOGFhODI3NWZmNzI2LjI4ZjYyZDFlN2JiYjVmM2QuZTRiMjUyYzEwN2QyZjIxNS4yYjkxYzBjYWQ5Y2EyNmYxCi0gICAgNzdhNDZiYTQ4MDAwMDAwMC5jYmVkNmY5MzQ1YTdjODAwLmQ4MmYzNWEwMDAwMDAwMDAuZDZiYWYzMzY4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MTVmNzJmZDkyZDBmODI3Ljg4OTYyMDkxOTJiMjI1ZjkKKyAgICA0NzdmODYwMzk3ODczOGM4LmMzMGUxM2NkNmFlYzM4ZDEuOWJmMjUxZGFiMTE1MTdjNS4xY2Y3Y2Y0YmZmZDA5MzUxCiAgICAgYjcxMzQ5ODE5ZjRmYTdjNAogCi1WUk9VTkRQU18yNTZfMHg0KHJlZykKK1ZQRVJNSUxQU19WQVJfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNTgzMzJhZDk1NmQzOWZmNy5mYTIzMWFkNGE1YzA3ZTJmLjc1NDJhMWE2NjI5YzE3OGYuNDNlY2U5MzJhY2E0MjM2NQogICAgIDViYTE2ZmJlYzBlOWI3OTYuYTg3MmMyMDg2ZjE5ODQ4Ny45Y2RmZDQxN2ZmNTczODIyLmI4NmM5N2I3MTU4Y2QxMWUKQEAgLTI5MDg1LDEyICsyOTA4NSwxMiBAQAogICAgIGY4OWExMmRlMWFmOTM2YzYuNjU0NTNmNDRhNjU0YzNiOC5iNTg0MWI2ZDk2MjEyZTdhLjc5MmUyN2Y1OWY5NDA2OTIKICAgICA3YzA3MDA4NmY4Y2QwNWEzCiAgIGFmdGVyCi0gICAgNTgzMzJhZDk1NmQzOWZmNy5mYTIzMWFkNGE1YzA3ZTJmLjc1NDJhMWE2NjI5YzE3OGYuNDNlY2U5MzJhY2E0MjM2NQorICAgIDViYTE2ZmJlNmYxOTg0ODcuYTg3MmMyMDg1YmExNmZiZS45Y2RmZDQxNzljZGZkNDE3LjE1OGNkMTFlOWNkZmQ0MTcKICAgICA1YmExNmZiZWMwZTliNzk2LmE4NzJjMjA4NmYxOTg0ODcuOWNkZmQ0MTdmZjU3MzgyMi5iODZjOTdiNzE1OGNkMTFlCiAgICAgMWRhYTEzOWI3NzFjMmI0Yy4yZDM5ZmE4OTExOWIwN2ZiLjkzMzFhOThiZGNhYWQ2MzcuZDYzZWQ4NTQwN2Q4ZGYxZgotICAgIDViYTE2ZmJlYzBlMDAwMDAuODAwMDAwMDA2ZjE5ODQ4Ny44MDAwMDAwMGZmNTczODIyLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBmODlhMTJkZTFhZjkzNmM2LjY1NDUzZjQ0YTY1NGMzYjguYjU4NDFiNmQ5NjIxMmU3YS43OTJlMjdmNTlmOTQwNjkyCiAgICAgN2MwNzAwODZmOGNkMDVhMwotVlJPVU5EUFNfMjU2XzB4NChtZW0pCitWUEVSTUlMUFNfVkFSXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGJkOTdlMGYzMmY4ZTk3N2YuNDliZDY4ZjI0MjBhMTVhZi4yYjVmMGMyNjRhNTA3NGU5LjYwMjQyNjJiYzg0NjdjOTYKICAgICAxN2E4NDEyODVmZTM3NzUyLjZjNWUxMTQzOGVkZTA0YjQuNWQ1NmRkMTkxYTk5ZDViYi5lZTVkYzYzMDBlYTdmYjM4CkBAIC0yOTEwMCwxMSArMjkxMDAsMTEgQEAKICAgYWZ0ZXIKICAgICBiZDk3ZTBmMzJmOGU5NzdmLjQ5YmQ2OGYyNDIwYTE1YWYuMmI1ZjBjMjY0YTUwNzRlOS42MDI0MjYyYmM4NDY3Yzk2CiAgICAgMTdhODQxMjg1ZmUzNzc1Mi42YzVlMTE0MzhlZGUwNGI0LjVkNTZkZDE5MWE5OWQ1YmIuZWU1ZGM2MzAwZWE3ZmIzOAotICAgIDY2MDdhMTExYTVkOTYxNDguYmRjYjBhM2Q5N2ZlM2Y4MS5kNmY1MmUwYjMyM2RhMzVhLmJkN2JmOGU4MDVjZmU4MGIKLSAgICA4MDAwMDAwMDAwMDAwMDAwLjQ5YmQ2OGYwNDIwYzAwMDAuMDAwMDAwMDA0YTUwNzRlOC42MDI0MjYyYmM4NDY3YzgwCisgICAgMTdhODQxMjgxN2E4NDEyOC41ZmUzNzc1MjE3YTg0MTI4LjFhOTlkNWJiZWU1ZGM2MzAuNWQ1NmRkMTkxYTk5ZDViYgorICAgIDg2ODA3YjlhMWM3YjEzOGIuOTc0ZTRlNGNmYmY4MDFjMS43MjA3N2JlN2FkNDg5YWYxLjI3YzliN2JmNDg0YjdmYmMKICAgICA4OTk0ZmYyMjc0YTZmY2Y2CiAKLVZST1VORFBTXzI1Nl8weDQocmVnKQorVlBFUk1JTFBTX1ZBUl8yNTYocmVnKQogICBiZWZvcmUKICAgICA0MDI4Y2M3YjI1NmM5YTY2LjUyZGU0Y2IwZTFkNTQ3NGEuNTgzNGQ5ZGQ1NjU3ODcyMS4wZDVhNDE5OWE3YzQ3NWFkCiAgICAgYTZkMTFiMzhmNTJhOTZiOC5hOGVmOGUzZDBmZjRiYWFmLjViYzlhNzVhNDNhNzBkNGMuODJiOGZiMGQzZGJmZjFiOQpAQCAtMjkxMTIsMTIgKzI5MTEyLDEyIEBACiAgICAgZjM5MjJiOGE2OGJiOTdiMC41ZjU2NWE3MTE3YWU0YzFkLjk3MzBmZWNjNDU0YzA3YjYuNmZjODNiZWJhYjYwYmI3MwogICAgIDllMTFiYTJkYmIxZTgyN2EKICAgYWZ0ZXIKLSAgICA0MDI4Y2M3YjI1NmM5YTY2LjUyZGU0Y2IwZTFkNTQ3NGEuNTgzNGQ5ZGQ1NjU3ODcyMS4wZDVhNDE5OWE3YzQ3NWFkCisgICAgYTZkMTFiMzhhNmQxMWIzOC5hNmQxMWIzOGE2ZDExYjM4LjgyYjhmYjBkNWJjOWE3NWEuNWJjOWE3NWE0M2E3MGQ0YwogICAgIGE2ZDExYjM4ZjUyYTk2YjguYThlZjhlM2QwZmY0YmFhZi41YmM5YTc1YTQzYTcwZDRjLjgyYjhmYjBkM2RiZmYxYjkKICAgICAxOGRiZTZjMzgzNmIyYzk3LjYzN2RiZjJmYzJlMzI4ZTcuZmM1OWI1MzE1Zjc1Y2VlZi5hZmVlMjUyZjhhNDVjYTQyCi0gICAgODAwMDAwMDBmNTJhOTZiOC44MDAwMDAwMDAwMDAwMDAwLjViYzlhNzVhNDNhNzAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIGYzOTIyYjhhNjhiYjk3YjAuNWY1NjVhNzExN2FlNGMxZC45NzMwZmVjYzQ1NGMwN2I2LjZmYzgzYmViYWI2MGJiNzMKICAgICA5ZTExYmEyZGJiMWU4MjdhCi1WUk9VTkRQU18yNTZfMHg0KG1lbSkKK1ZQRVJNSUxQU19WQVJfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMTc5NzFkZTJkNzhiZDk4MC45MTQxZTVmNzQzYTcxNGFlLjc3NDRkYmVmMmE2MmUzN2UuODg5OTdlOTk5MWI5ZjQ0YwogICAgIGI4MjRlMGY0MWFiMjdjYjQuNGYzNTExNzhhZGJhZGYzZS44OTE0YmY5NTE2MGFhOTM2LjJhZTIzMTAzZTA0N2QwNWQKQEAgLTI5MTI3LDExICsyOTEyNywxMSBAQAogICBhZnRlcgogICAgIDE3OTcxZGUyZDc4YmQ5ODAuOTE0MWU1Zjc0M2E3MTRhZS43NzQ0ZGJlZjJhNjJlMzdlLjg4OTk3ZTk5OTFiOWY0NGMKICAgICBiODI0ZTBmNDFhYjI3Y2I0LjRmMzUxMTc4YWRiYWRmM2UuODkxNGJmOTUxNjBhYTkzNi4yYWUyMzEwM2UwNDdkMDVkCi0gICAgNWI4NTdmNTFhMTlmMjkzZi44OWJhYTk3ODQ0ODAzNDBjLjZmOTI4MDRmZjdiMzVhNzAuZGI1NTEzNzZjZTgyZDk5NwotICAgIDAwMDAwMDAwZDc4YmQ5ODAuODAwMDAwMDA0M2E3MDAwMC43NzQ0ZGJlZjAwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAKKyAgICAxYWIyN2NiNGFkYmFkZjNlLmI4MjRlMGY0MWFiMjdjYjQuODkxNGJmOTUxNjBhYTkzNi4yYWUyMzEwM2UwNDdkMDVkCisgICAgZGU4Nzc3ZTQ4NzVlOWE1MC45YjFjYWI2M2E0ODY0ZWMzLjA3ODk5YzA5ZWE2N2IxNTguZjYzZjIxNWVmNWY3NDlhNAogICAgIGQ2ZWM1NjI3ZjQzMDVjMzAKIAotVlJPVU5EUFNfMjU2XzB4NChyZWcpCitWUEVSTUlMUFNfVkFSXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGQ5YThhZTNkNjViYzUwZTguMWJmMzQyOThlOGZjOGMxMS5lMmE3MTJhNTY4NTc2YTEwLjJiYzc4ZWFmMGEzNDZiMWMKICAgICA1OWJlMjUwY2U0MjQ1Zjc4LmYwOTg1ZTViZTE4NGJhYWYuYjhhN2RhYWEyZDgwYzQ5ZS5iOTE2ZDIyZDc0MjY0NGU2CkBAIC0yOTEzOSwxMiArMjkxMzksMTIgQEAKICAgICA0NDJjNjI4NjdlYmRjMGNlLmNlYjk3N2JiMGE4M2JlMzAuODQzNTdlYWUyNzA2MjEzMC43ZjFhNDI2Mjk0YTY0MTNkCiAgICAgNmY2NzY1ZjE4MzRjZGUyMwogICBhZnRlcgotICAgIGQ5YThhZTNkNjViYzUwZTguMWJmMzQyOThlOGZjOGMxMS5lMmE3MTJhNTY4NTc2YTEwLjJiYzc4ZWFmMGEzNDZiMWMKKyAgICBlMTg0YmFhZjU5YmUyNTBjLmUxODRiYWFmZjA5ODVlNWIuYjhhN2RhYWEyZDgwYzQ5ZS43NDI2NDRlNjJkODBjNDllCiAgICAgNTliZTI1MGNlNDI0NWY3OC5mMDk4NWU1YmUxODRiYWFmLmI4YTdkYWFhMmQ4MGM0OWUuYjkxNmQyMmQ3NDI2NDRlNgogICAgIGI0N2NiODAwMGVmNmM2OGIuMzc0MTQ2MTg4ZTAyZTI1NS43YTY3ZmZkZjhlOGI5ODFhLjhiNDNlNTcwNDQ0OGY3ZTIKLSAgICA1OWJlMjUwY2U0MjQ1Zjc4LmYwOTg1ZTViZTE4NGJhYWYuODAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDc0MjY0NGU2CisgICAgNDQyYzYyODY3ZWJkYzBjZS5jZWI5NzdiYjBhODNiZTMwLjg0MzU3ZWFlMjcwNjIxMzAuN2YxYTQyNjI5NGE2NDEzZAogICAgIDZmNjc2NWYxODM0Y2RlMjMKLVZST1VORFBTXzI1Nl8weDQobWVtKQorVlBFUk1JTFBTX1ZBUl8yNTYobWVtKQogICBiZWZvcmUKICAgICAzOGY2Y2EwNzJhNDc4YWJmLjY3MWIxZjA4ZDEwNjhiZWQuOGZjZDZiMzA3MTEyMGE2Yi4zMjViNTI4NTk1N2Q5YzhiCiAgICAgYjc5MmVkOTJhN2EyMDAzZS43Nzk1ZWJmNGEyNWM2MTkzLjU3NGFhMDYzZTBiYzg0MzMuZTAyNjc3Y2U3NDdiNDRkOApAQCAtMjkxNTQsMTEgKzI5MTU0LDExIEBACiAgIGFmdGVyCiAgICAgMzhmNmNhMDcyYTQ3OGFiZi42NzFiMWYwOGQxMDY4YmVkLjhmY2Q2YjMwNzExMjBhNmIuMzI1YjUyODU5NTdkOWM4YgogICAgIGI3OTJlZDkyYTdhMjAwM2UuNzc5NWViZjRhMjVjNjE5My41NzRhYTA2M2UwYmM4NDMzLmUwMjY3N2NlNzQ3YjQ0ZDgKLSAgICBjNjA5NGI3ZDE2NmFmZGNiLmQyZTZjMmI1OGQ0YjdlNmMuMDNmYTkxNDE3MzhjZTZiNC5lYWUyZTlmNzVmOGM1N2MyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC42NzFiMWYwOGQxMDY4YmVkLjgwMDAwMDAwNzExMjBhNmIuMDAwMDAwMDA4MDAwMDAwMAorICAgIGI3OTJlZDkyYjc5MmVkOTIuYTI1YzYxOTM3Nzk1ZWJmNC43NDdiNDRkODU3NGFhMDYzLmUwMjY3N2NlNTc0YWEwNjMKKyAgICA0MjI1NWViNDkyYWEzZDkzLmQyNTlhMWI2MzA2MDIwMjYuNmRhOWJhYjQ0NThlZWQxOS5hY2RiYTU2YmYyM2MwZmY2CiAgICAgODE1Y2E2OTVjYTE4YTkyMAogCi1WUk9VTkRQRF8xMjhfMHgwKHJlZykKK1ZQRVJNSUxQRF9WQVJfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYzdiM2U4ZTM4MmFiNjBlYi4wN2IzYTQyMzM4NmU3YmMyLmQ1M2M4MzY1MjQyNjgxNmIuNzIyNTk3YWE3MmNlNTU4ZgogICAgIGQ5MmE2N2MwYjc4MjcxMDQuZjI3Zjk5YjYyM2MyNzU4My4zNWQ5NjQyZDA3MjlkZWU3LmVlMzlhNTBkMTc1OWQ5NDIKQEAgLTI5MTY2LDEyICsyOTE2NiwxMiBAQAogICAgIGQxYWIwZGQ4MDYyOTkxY2UuYTUwMDdjZjkzOTRjODc2ZC43Zjc1MTRiOTA5MTg3YjM3LmJjNTc0MWNmMzc3ZTI4MGMKICAgICBjNWZhYzcwNWVhMzA2YTdjCiAgIGFmdGVyCi0gICAgYzdiM2U4ZTM4MmFiNjBlYi4wN2IzYTQyMzM4NmU3YmMyLmQ1M2M4MzY1MjQyNjgxNmIuNzIyNTk3YWE3MmNlNTU4ZgorICAgIGQ5MmE2N2MwYjc4MjcxMDQuZDkyYTY3YzBiNzgyNzEwNC4zNWQ5NjQyZDA3MjlkZWU3LmVlMzlhNTBkMTc1OWQ5NDIKICAgICBkOTJhNjdjMGI3ODI3MTA0LmYyN2Y5OWI2MjNjMjc1ODMuMzVkOTY0MmQwNzI5ZGVlNy5lZTM5YTUwZDE3NTlkOTQyCiAgICAgMTMwZTFmOTkwNDI3MTgxNi5kZDU1Yjc1OTZmYjNlNTAzLjRmN2Q0MDdhNzVmNjcyNDcuYmRiMDVmY2I0ZjNhMzY1ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVlMzlhNTBkMTc1OWQ5NDIKKyAgICBkMWFiMGRkODA2Mjk5MWNlLmE1MDA3Y2Y5Mzk0Yzg3NmQuN2Y3NTE0YjkwOTE4N2IzNy5iYzU3NDFjZjM3N2UyODBjCiAgICAgYzVmYWM3MDVlYTMwNmE3YwotVlJPVU5EUERfMTI4XzB4MChtZW0pCitWUEVSTUlMUERfVkFSXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGI1NjU2ZTU5ODU1Y2I5ZDkuNmU0ZDJjZWE1ODExMTdkOC4yNjRlNjM4MDlkOWExOGVlLjIyMGFkYTU0NWYxYjMzNjIKICAgICA2ODY0YjFiNzIzMGZkMTRmLjQ4M2Y3ODNjOTc2ZGU4ZGYuM2MwOWU4ZGNiNmE4NTViMi45MjhiOTBiODE0OGNkNjc1CkBAIC0yOTE4MSwxMSArMjkxODEsMTEgQEAKICAgYWZ0ZXIKICAgICBiNTY1NmU1OTg1NWNiOWQ5LjZlNGQyY2VhNTgxMTE3ZDguMjY0ZTYzODA5ZDlhMThlZS4yMjBhZGE1NDVmMWIzMzYyCiAgICAgNjg2NGIxYjcyMzBmZDE0Zi40ODNmNzgzYzk3NmRlOGRmLjNjMDllOGRjYjZhODU1YjIuOTI4YjkwYjgxNDhjZDY3NQotICAgIGJhYzIwYjBiZTA1NDZlMDkuYmFjZmVkMzg1ZWM4M2Q4Zi5jM2ZlODdmN2EwODJmN2U0LjJjNDMzMTUyYzNmNmEyMWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgNDgzZjc4M2M5NzZkZThkZi40ODNmNzgzYzk3NmRlOGRmLjNjMDllOGRjYjZhODU1YjIuM2MwOWU4ZGNiNmE4NTViMgorICAgIDg3NGRmYjQxZDkzNzRiMzMuMWY0Nzg3NGM0OWFmNTU5Ni45N2Y5YmRiZjc4MzViZGIxLjRjN2RiYThjMDllNWQxMDEKICAgICA0ZTg2MjVkNDgyZTZhMGQzCiAKLVZST1VORFBEXzEyOF8weDAocmVnKQorVlBFUk1JTFBEX1ZBUl8yNTYocmVnKQogICBiZWZvcmUKICAgICA4ZWFhNzA5NWM4ODQ0YjNjLmFiY2ZmYTQ1MmFjNTI1ZmEuZDVmNDQzZTJmNWFkNmE5ZS45NGM2MDUxZjU5Y2M2MTQ0CiAgICAgNjgzNTk2M2E3YTRjMGRlOS4wMjE1ODYwNGVlMDhiODhhLjM2MjIxYzY4ZmU0ZWI5NTMuOTYzMWRiMDM2MDUzYTBjYQpAQCAtMjkxOTMsMTIgKzI5MTkzLDEyIEBACiAgICAgNWFiMDY0ZTU4Yzg2YzliZC5iODFkMzE1ZjQxZTNmOGIzLjZkMzExNmYxOTRhYmY0NzcuMTkxMDIxMDc0ZTYzZGU1ZQogICAgIDUyMWM4YWZmNmQwMzU1YzQKICAgYWZ0ZXIKLSAgICA4ZWFhNzA5NWM4ODQ0YjNjLmFiY2ZmYTQ1MmFjNTI1ZmEuZDVmNDQzZTJmNWFkNmE5ZS45NGM2MDUxZjU5Y2M2MTQ0CisgICAgMDIxNTg2MDRlZTA4Yjg4YS42ODM1OTYzYTdhNGMwZGU5LjM2MjIxYzY4ZmU0ZWI5NTMuMzYyMjFjNjhmZTRlYjk1MwogICAgIDY4MzU5NjNhN2E0YzBkZTkuMDIxNTg2MDRlZTA4Yjg4YS4zNjIyMWM2OGZlNGViOTUzLjk2MzFkYjAzNjA1M2EwY2EKICAgICAzODczOTMzMTMxYzgyMzg1LjY4ZWIxOTY4NDIwZmMwMGUuYTAxZDBlNDlmZjFmN2U2Mi43OTA1YmI1N2E4ZDczNjZmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDVhYjA2NGU1OGM4NmM5YmQuYjgxZDMxNWY0MWUzZjhiMy42ZDMxMTZmMTk0YWJmNDc3LjE5MTAyMTA3NGU2M2RlNWUKICAgICA1MjFjOGFmZjZkMDM1NWM0Ci1WUk9VTkRQRF8xMjhfMHgwKG1lbSkKK1ZQRVJNSUxQRF9WQVJfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMDBmNjcxMmIyMmM0NTdjYy4yYTM3MDRjMzI0MTIzYTNkLmQwNzY0YWQ0MDc5MjFkYTUuZmJhOTJlY2M1YTdlNTgzZAogICAgIGZlNmE1Mjc4ODhiMTlmYTMuMDQ1NTZmMzU5N2Y3YjRiMC44YmM0ZGViM2IxMjhlYjBmLmE0ZDM1NDQ2ZWQyNGU2NjEKQEAgLTI5MjA4LDExICsyOTIwOCwxMSBAQAogICBhZnRlcgogICAgIDAwZjY3MTJiMjJjNDU3Y2MuMmEzNzA0YzMyNDEyM2EzZC5kMDc2NGFkNDA3OTIxZGE1LmZiYTkyZWNjNWE3ZTU4M2QKICAgICBmZTZhNTI3ODg4YjE5ZmEzLjA0NTU2ZjM1OTdmN2I0YjAuOGJjNGRlYjNiMTI4ZWIwZi5hNGQzNTQ0NmVkMjRlNjYxCi0gICAgMmE0NGE5ZDBiYmQ2ZWI3NS40NDU3YTFhODgxYzE3MWMzLmM1ZDE2YmU3NWFhZjFkMWUuYzZmOTgzY2NlODJhZGE4ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMDc2NGFkNDA3OTIxZGE1LmZiYTkyZWNjNWE3ZTU4M2QKKyAgICAwNDU1NmYzNTk3ZjdiNGIwLjA0NTU2ZjM1OTdmN2I0YjAuYTRkMzU0NDZlZDI0ZTY2MS5hNGQzNTQ0NmVkMjRlNjYxCisgICAgNWY0ZmYzMjFkODQwZjU2ZC40Njg3OTY4ODdkZmNhZDIxLjVhNmE2YzVlMWYzNTcwZmQuYmI2OGI3YzhlNzFjNmY3MgogICAgIGUwNmNlZGE3ODc4NGUyYjYKIAotVlJPVU5EUERfMTI4XzB4MChyZWcpCitWUEVSTUlMUERfVkFSXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDkyNTExZmQ2NjNmMDZmMDkuNzg1OWFhNTVmYmZhNzliOC42NjMxNGI0MjI4MzVhNjc3LjI1NWI1ZDA0MWJjNmEwZDkKICAgICAyYjYyNGJjMDE4ZWM1MTE0LjUzMmM0YzVhM2YxMDM1ODEuMDBhM2JhNDExZGY3OTY3MS4wNDcwYmFjMzZiNmQ2OGRlCkBAIC0yOTIyMCwxMiArMjkyMjAsMTIgQEAKICAgICA4NTNjN2Y3NDdiYzAwODA5LmJiNjAzZjg0OWI4MjQwM2YuMTEwYmJjYmQ1NjQ4NGRmZS42YTM1YWEzZjc1MmRiNDEwCiAgICAgYWE3ZTM0ZDU2NzVmYWU5NwogICBhZnRlcgotICAgIDkyNTExZmQ2NjNmMDZmMDkuNzg1OWFhNTVmYmZhNzliOC42NjMxNGI0MjI4MzVhNjc3LjI1NWI1ZDA0MWJjNmEwZDkKKyAgICAyYjYyNGJjMDE4ZWM1MTE0LjUzMmM0YzVhM2YxMDM1ODEuMDBhM2JhNDExZGY3OTY3MS4wMGEzYmE0MTFkZjc5NjcxCiAgICAgMmI2MjRiYzAxOGVjNTExNC41MzJjNGM1YTNmMTAzNTgxLjAwYTNiYTQxMWRmNzk2NzEuMDQ3MGJhYzM2YjZkNjhkZQogICAgIDA4ZWQ2Y2QwNDEwMmM2ODYuY2I5NTU1MWJjMThmZTNmNS42ZjI4ZTFmMGY4Y2ZiYWJhLmQyNzUwMDg4MmEzNjg2MzcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgODUzYzdmNzQ3YmMwMDgwOS5iYjYwM2Y4NDliODI0MDNmLjExMGJiY2JkNTY0ODRkZmUuNmEzNWFhM2Y3NTJkYjQxMAogICAgIGFhN2UzNGQ1Njc1ZmFlOTcKLVZST1VORFBEXzEyOF8weDAobWVtKQorVlBFUk1JTFBEX1ZBUl8yNTYobWVtKQogICBiZWZvcmUKICAgICA2YzFhMWEzNDFkZDczMmY2LmZmOWM3ZTE3NjFiMjUzNDkuMDE1OTg4ODFlY2Y1MDc4Yy40MTk5NDUxM2QyZWU4Y2ViCiAgICAgOGVkNmQ4NGFiMmExZmE1OS5kMDU5NjcyNThmNjJlNGY0Ljc3NGJhYWZlY2VmNWY2MDguNWExZTdhNWUwOTRkYjMyYgpAQCAtMjkyMzUsMTEgKzI5MjM1LDExIEBACiAgIGFmdGVyCiAgICAgNmMxYTFhMzQxZGQ3MzJmNi5mZjljN2UxNzYxYjI1MzQ5LjAxNTk4ODgxZWNmNTA3OGMuNDE5OTQ1MTNkMmVlOGNlYgogICAgIDhlZDZkODRhYjJhMWZhNTkuZDA1OTY3MjU4ZjYyZTRmNC43NzRiYWFmZWNlZjVmNjA4LjVhMWU3YTVlMDk0ZGIzMmIKLSAgICBlYTdlZWIwMjQzY2FjM2VkLjU1YmYzNTBhYTM1ZmY4YjQuZmIwNDIzZTc1ZDhkYzdkZS5iYWU2NTYwYTk3ZjJmZTZhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDE5OTQ1MTNkNDAwMDAwMAorICAgIDhlZDZkODRhYjJhMWZhNTkuZDA1OTY3MjU4ZjYyZTRmNC41YTFlN2E1ZTA5NGRiMzJiLjc3NGJhYWZlY2VmNWY2MDgKKyAgICA1ZWRlY2U0OGViNWQ0OGRlLmVhMWFlNDMyMzYzMmM4MzUuNjc0ZTZmMjhiNmM5MzYzYi5iYzNkZDU4MzE3NjlhODU1CiAgICAgYmI2ZmYzMzUyNTNjZWY5OAogCi1WUk9VTkRQRF8xMjhfMHgxKHJlZykKK1ZQU0xMV18xMjgocmVnKQogICBiZWZvcmUKICAgICAxNWM3YWQ4ZDVlZjkwY2RlLmM0YzFmZDA4YzY2NzQ3NTcuZWJiNTcxMGFlNjY5OTMyNC45OWY2MDhhZWY0YjYwMTRiCiAgICAgMjQ5MmZkZjU1ZDJiM2VkNC5mYWY1ZjQyZWYxZjI3YTg1LmI0ZGRkNmZjNGY4ZjkzMmQuNmJjODZjNjMzNDVmZTIzOQpAQCAtMjkyNDksMTAgKzI5MjQ5LDEwIEBACiAgIGFmdGVyCiAgICAgMTVjN2FkOGQ1ZWY5MGNkZS5jNGMxZmQwOGM2Njc0NzU3LmViYjU3MTBhZTY2OTkzMjQuOTlmNjA4YWVmNGI2MDE0YgogICAgIDI0OTJmZGY1NWQyYjNlZDQuZmFmNWY0MmVmMWYyN2E4NS5iNGRkZDZmYzRmOGY5MzJkLjZiYzg2YzYzMzQ1ZmUyMzkKLSAgICA0NjFjZTFkYmJmNWZiZjI2LmRhNDQzMGE2ODgwZDlkOTQuYTFkZjExNzUwYzMwMDVmYi5iYjkwMTYzNTkxZDE5NjMxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJmZjAwMDAwMDAwMDAwMDAuNmJjODZjNjMzNDVmZTIzOQotICAgIDQwMzEyY2RjMTQzZDY2ZjMKLVZST1VORFBEXzEyOF8weDEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTZlOGI3ZTA3Yzc4OTk2OC41ZTQwNjMxOGEyZjgxMWM4CisgICAgMDAwMDAwMDAwMDAwMDAwMworVlBTTExXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJmYTM5MThhNzI0ZmZhMTMuMmY5ZDUzY2QxOWZhYTE4Yi4wYzY2NjQzYzY3MWNhNzAyLjU3OWNmNmFlZjMxNTJlOTgKICAgICAwYTNhMmMwNDVkNWE1MGVlLmFlMmNkOGIyNGE3YTc5ZjguMTVkMTU0MzNlODI5MDViYS5kOGVmOTk0NDU1NzE1ZGJmCkBAIC0yOTI2MywxMCArMjkyNjMsMTAgQEAKICAgICAyZmEzOTE4YTcyNGZmYTEzLjJmOWQ1M2NkMTlmYWExOGIuMGM2NjY0M2M2NzFjYTcwMi41NzljZjZhZWYzMTUyZTk4CiAgICAgMGEzYTJjMDQ1ZDVhNTBlZS5hZTJjZDhiMjRhN2E3OWY4LjE1ZDE1NDMzZTgyOTA1YmEuZDhlZjk5NDQ1NTcxNWRiZgogICAgIGFlYzM3OTM2ZjE2OTI2YjAuYWZhOWUxYzQ0ZTJiOTI3MC4zOTg4NzgyYjQ0ZjU0NDAzLmVkNGMwMTEyN2M3N2VlNWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NzljZjZhZWYzMTUyZTk4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJhMjA4NjYwMDUyMGI3NDAuMWRlMDI4ODBhZTIwYjdlMAogICAgIDQyNTAxMDAzODdiNzI1YTUKIAotVlJPVU5EUERfMTI4XzB4MShyZWcpCitWUFNMTFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgM2I4ZmFmZmVhNDA4NDNhYi5jMWRiMWE3Mjg3YzUzZDk3LmE4YTE2ZDFmM2Q1MTcxMzIuNDIwODRlZDNmZmY3NTNmNwogICAgIDM4MDcwNGUxZjQzNGIyZDYuZTkwMTY1NTVjMDI5ZjcxNC41N2IzZTc0MDYwZGViMGQ1LmUwNmJmNzU5OTY0NTljZjkKQEAgLTI5Mjc2LDEwICsyOTI3NiwxMCBAQAogICBhZnRlcgogICAgIDNiOGZhZmZlYTQwODQzYWIuYzFkYjFhNzI4N2M1M2Q5Ny5hOGExNmQxZjNkNTE3MTMyLjQyMDg0ZWQzZmZmNzUzZjcKICAgICAzODA3MDRlMWY0MzRiMmQ2LmU5MDE2NTU1YzAyOWY3MTQuNTdiM2U3NDA2MGRlYjBkNS5lMDZiZjc1OTk2NDU5Y2Y5Ci0gICAgOTUwMzBhMTYxNWM4YjBkMi40OTRhNTM5ZjEyYzIxZjI4LmY4ZTRkNTNlYzVjYzFmMzMuMDg0OWM0OTI3ODgyYjUzZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41N2IzZTc0MDYwZGViMGQ1LmUwNmJmNzU5OTY0NTljZjkKLSAgICA2OWE4YmJjYThmZjc0YTM1Ci1WUk9VTkRQRF8xMjhfMHgxKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDA1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY2NjBlODAwMWJjMDFhYTAuMGQ2MGViMjBjOGEwOWYyMAorICAgIDAwMDAwMDAwMDAwMDAwMDUKK1ZQU0xMV18xMjgobWVtKQogICBiZWZvcmUKICAgICA1YWMyZGRhMWZjNDczZTQyLmRlYmMxOTJhMzk1NTQ0ZjAuMjQ3MDA2MWM3NGMwYWNjNC44MWQyZmE4MmM3ZmQ3ZGQyCiAgICAgNDY4NzEzZGIyNGI1ZjIzZi44MzBmMWJlMTc0NjY1MjY5LjU3ZTZjMjI3YmEzZDg4YTQuMjAyNzI5YTA5YzU3ZTM2YgpAQCAtMjkyOTAsMTAgKzI5MjkwLDEwIEBACiAgICAgNWFjMmRkYTFmYzQ3M2U0Mi5kZWJjMTkyYTM5NTU0NGYwLjI0NzAwNjFjNzRjMGFjYzQuODFkMmZhODJjN2ZkN2RkMgogICAgIDQ2ODcxM2RiMjRiNWYyM2YuODMwZjFiZTE3NDY2NTI2OS41N2U2YzIyN2JhM2Q4OGE0LjIwMjcyOWEwOWM1N2UzNmIKICAgICAwOWM0ZGE2MjIzNGUyMzVhLmY3MTdiZDlhZWYwZmRlNjQuMzNhZTExNGE4YjFmYzRjYS4yMWNjYmM0YTI0NDM2OTcwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmZmMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MDAwNzAwMGQwMDA0MDAwLjcwMDAwMDAwNzAwMGIwMDAKICAgICBiOTMxZmJmN2JhZmZjNDZjCiAKLVZST1VORFBEXzEyOF8weDEocmVnKQorVlBTTExXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDA4ODk5ZmQxMDBlNjExYmIuODRkNjA3MGIxOTJlZWM5NC5jMDc2ZDZjNzE2NTc2MDhmLjU2NjM1NTg4Mzg0MDQ2OWIKICAgICAyOTYxOTdlODZhOGY2ZTI2LmYzNDM2NjA1NDc4ZWZiMGMuY2Q2NTQ1MTJmYjBlY2UxNi41NGU5NDM3YjRkOTcwNjlkCkBAIC0yOTMwMywxMCArMjkzMDMsMTAgQEAKICAgYWZ0ZXIKICAgICAwODg5OWZkMTAwZTYxMWJiLjg0ZDYwNzBiMTkyZWVjOTQuYzA3NmQ2YzcxNjU3NjA4Zi41NjYzNTU4ODM4NDA0NjliCiAgICAgMjk2MTk3ZTg2YThmNmUyNi5mMzQzNjYwNTQ3OGVmYjBjLmNkNjU0NTEyZmIwZWNlMTYuNTRlOTQzN2I0ZDk3MDY5ZAotICAgIDc4MDNkZGE4OTE4NjE2NTkuYWE1ODQ2ZmNiYzQ4Nzc1MC4xOTM4NDQxMDkwOGNhOWQwLjZjZjBiMjM2NWI4MzE0OTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2Q2NTQ1MTJmYjBlY2UxNi41NGU5NDM3YjRkOTcwNjlkCi0gICAgNTdiNDA4YjVkNDQ2MGMxYgotVlJPVU5EUERfMTI4XzB4MShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yODAwOTAwMDcwMDBiMDAwLjQ4MDBkODAwYjgwMGU4MDAKKyAgICAwMDAwMDAwMDAwMDAwMDBiCitWUFNMTFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZTIwOWU2NTA3NjM3NmVmZi4xMGQ5NDhkMzhjOGIzYWM1LjVkYTk3NTk2ZWRmYmE1ZWYuZTJiZWU3ZDUzYjBmOTg4NwogICAgIGY1MGYzNzY0ODJlYjBmOGIuMTFhNDY1MTc5N2IxMmU1Ni4xMTdkYmQxMGUxMGNjZmExLjE2MDg4Mjc1ODkyYjI0ZGQKQEAgLTI5MzE3LDEwICsyOTMxNywxMCBAQAogICAgIGUyMDllNjUwNzYzNzZlZmYuMTBkOTQ4ZDM4YzhiM2FjNS41ZGE5NzU5NmVkZmJhNWVmLmUyYmVlN2Q1M2IwZjk4ODcKICAgICBmNTBmMzc2NDgyZWIwZjhiLjExYTQ2NTE3OTdiMTJlNTYuMTE3ZGJkMTBlMTBjY2ZhMS4xNjA4ODI3NTg5MmIyNGRkCiAgICAgNmU5NDc2ZGIxNDcwYWJlOC5iMDZhYzBiM2QxNTU1ZDVmLjdiMjk3NTM4OGRhNzU2ZDAuZmI2NzlmNzdmODNmMGUxNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZGE5NzU5NmVkZmJhNWVmLmUyYmVlN2Q1M2IwZjk4ODcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmEwMDIwMDAxODAwNDIwMC4xMDAwZWEwMDU2MDBiYTAwCiAgICAgNDM5MzRiNTVhNzdjZWNkOQogCi1WUk9VTkRQRF8xMjhfMHgyKHJlZykKK1ZQU1JMV18xMjgocmVnKQogICBiZWZvcmUKICAgICA2MGY5ZDMwOTFmYmU1N2JkLmZlNDZhZWE3MzcxYmMyY2MuMzcxNjI1YTgzZjQ1NWY4OC5lNjM4MjY0MzdhYWQ2YTU0CiAgICAgOWNhM2NkZDAyODI3MTAzMy5jZTBjOWZkMzAxNTliNmE5LmQ4OTQyNmQ3YWNhOWFhZmYuOWQzNDE3ZmRmMzJmNmYwMQpAQCAtMjkzMzAsMTAgKzI5MzMwLDEwIEBACiAgIGFmdGVyCiAgICAgNjBmOWQzMDkxZmJlNTdiZC5mZTQ2YWVhNzM3MWJjMmNjLjM3MTYyNWE4M2Y0NTVmODguZTYzODI2NDM3YWFkNmE1NAogICAgIDljYTNjZGQwMjgyNzEwMzMuY2UwYzlmZDMwMTU5YjZhOS5kODk0MjZkN2FjYTlhYWZmLjlkMzQxN2ZkZjMyZjZmMDEKLSAgICA1NGRlMzMxNjVkNDM1MmU3LjcyODA2ZjEzYzE5ODk1MDkuODczZTU3MTBiN2JhMjA5Zi43YzM3NjgxNjk0NmNjMGRhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ4OTQyNmQ3YWNhOWFhZmYuODAwMDAwMDAwMDAwMDAwMAotICAgIDFlODYxYTExYmQ0NDNhYzIKLVZST1VORFBEXzEyOF8weDIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzYyNTA5YjUyYjJhMmFiZi4yNzRkMDVmZjNjY2IxYmMwCisgICAgMDAwMDAwMDAwMDAwMDAwMgorVlBTUkxXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDk5Njg3NGNiN2RmOGRhMjkuYTgzNzM4Y2ZiZGM2NjViNy5hYWExOTk3ZjkwNDYwMjAxLjdlNDAzNTRkMWExNDgwMDQKICAgICBhYzgzMWU5NGQ0OTZiNjZkLmZjZWNjZTFhMjA0NGFkMmIuZjZlNmViODNkOGNkMDlmMS43ZTMyZGIyOWE4NzVlMTIyCkBAIC0yOTM0NCwxMCArMjkzNDQsMTAgQEAKICAgICA5OTY4NzRjYjdkZjhkYTI5LmE4MzczOGNmYmRjNjY1YjcuYWFhMTk5N2Y5MDQ2MDIwMS43ZTQwMzU0ZDFhMTQ4MDA0CiAgICAgYWM4MzFlOTRkNDk2YjY2ZC5mY2VjY2UxYTIwNDRhZDJiLmY2ZTZlYjgzZDhjZDA5ZjEuN2UzMmRiMjlhODc1ZTEyMgogICAgIDMxYTI5NDU3ZGUyYjhjYjkuM2M2M2MyOTQxZmE2NmU4ZC44NjA5MGM0Yzg1ODVlYTEzLmZkN2ZhMWJmNDZiNDVlMTgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC43ZTQwMzU0ZDFhMTQ4MDA0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwM2QwMDNhMDAzNjAwMDIuMDAxZjAwMzYwMDJhMDAzOAogICAgIGU0NTk3OWM0MWNmOTljM2EKIAotVlJPVU5EUERfMTI4XzB4MihyZWcpCitWUFNSTFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMDU3ZTg0MGQ4YzE4ZDRiZi4wNTFiZDU3YjdlNjcxMDFjLmYwYzJiMGM2NjI0NDRlY2EuZTYxOWE3ZDk4MGI2MmRhMAogICAgIDEzMmU5ZWJmN2M0NDE4Y2IuMGIwZDk4YjU0YjI2Mzg4YS4xYzQzYTM1NmRlOTdlNWZkLjZlOWUxYTc2MDY0NjA3NjIKQEAgLTI5MzU3LDEwICsyOTM1NywxMCBAQAogICBhZnRlcgogICAgIDA1N2U4NDBkOGMxOGQ0YmYuMDUxYmQ1N2I3ZTY3MTAxYy5mMGMyYjBjNjYyNDQ0ZWNhLmU2MTlhN2Q5ODBiNjJkYTAKICAgICAxMzJlOWViZjdjNDQxOGNiLjBiMGQ5OGI1NGIyNjM4OGEuMWM0M2EzNTZkZTk3ZTVmZC42ZTllMWE3NjA2NDYwNzYyCi0gICAgNmJiNGMzNDU4NTA5YTQwYS5mNTMzMTc5ODNiMGM0OGIwLmE0YjVlNGM1NjdmZmU1Y2QuYWEzMDRjODY2MTM4YWIwNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZmYwMDAwMDAwMDAwMDAwLjZlOWUxYTc2MDY0NjA3NjIKLSAgICBiMWFmZDliNDA3NmI0NGE5Ci1WUk9VTkRQRF8xMjhfMHgyKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDA5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMGUwMDUxMDA2ZjAwNzIuMDAzNzAwMGQwMDAzMDAwMworICAgIDAwMDAwMDAwMDAwMDAwMDkKK1ZQU1JMV18xMjgobWVtKQogICBiZWZvcmUKICAgICAzNTMzMmRhOThiYzViMGZkLjZhNzcyMDgyNTg5MDgyZDQuZTA0YTM5MGRmNjdiMTNkOC4zODljM2NlZjBmMzcxM2Y3CiAgICAgZGRmNTJmYzI1NGIwZDhlNS5jODRhNGYxMDU5Njk0ZGI3LjlhZDRkNTc2ZjkxYzQ1MzAuZmNhODRjODM2NTIwYjlhOApAQCAtMjkzNzEsMTAgKzI5MzcxLDEwIEBACiAgICAgMzUzMzJkYTk4YmM1YjBmZC42YTc3MjA4MjU4OTA4MmQ0LmUwNGEzOTBkZjY3YjEzZDguMzg5YzNjZWYwZjM3MTNmNwogICAgIGRkZjUyZmMyNTRiMGQ4ZTUuYzg0YTRmMTA1OTY5NGRiNy45YWQ0ZDU3NmY5MWM0NTMwLmZjYTg0YzgzNjUyMGI5YTgKICAgICA4NmMxNWNlYzdmMzY3NThhLmUxMjQ3OTIzZTUwYzUwN2QuYTdjMTFkM2E4ZjEzNTBmMS44Y2Q1OTlhNjM4NGNiOGE3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUwNGEzOTBkZjY3YjEzZDguM2ZmMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDA0MDAwNjAwMDcwMDAyLjAwMDcwMDAyMDAwMzAwMDUKICAgICA3ZmMyZGI0YWMzOWZiMzNkCiAKLVZST1VORFBEXzEyOF8weDIocmVnKQorVlBTUkxXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDliMWFjOGEyYjNkZTI4MmQuNGJhNjIzMWU2ODQ5MDVjMi5hZjFkYjA4OTBiZGRlYzY0LjJiZjdhMTgwZTYzNGUwNWQKICAgICBmM2MzZTIzOTkwOTBlNjFhLjFmNTdiNzAwNWZlZDcwYWIuMWRkNGIzYjNkZTI0ZmVkZC41OWQ4ZDZkYWRmNzZkZDYwCkBAIC0yOTM4NCwxMCArMjkzODQsMTAgQEAKICAgYWZ0ZXIKICAgICA5YjFhYzhhMmIzZGUyODJkLjRiYTYyMzFlNjg0OTA1YzIuYWYxZGIwODkwYmRkZWM2NC4yYmY3YTE4MGU2MzRlMDVkCiAgICAgZjNjM2UyMzk5MDkwZTYxYS4xZjU3YjcwMDVmZWQ3MGFiLjFkZDRiM2IzZGUyNGZlZGQuNTlkOGQ2ZGFkZjc2ZGQ2MAotICAgIGUyMDgyNTdjZjU0MTJhYjAuNjQ0MjY0YTEyNzVkNDAwNC5iNmMxYTMxMmFiNjQzN2U5LjRhNGRhNjNlZGIzZmEzN2IKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2ZmMDAwMDAwMDAwMDAwMC41OWQ4ZDZkYWRmNzZkZDYwCi0gICAgZTUyMjBjZDQ0ZTkzNzlhYwotVlJPVU5EUERfMTI4XzB4MihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAxMDAwYjAwMGQwMDBmLjAwMDUwMDBkMDAwZDAwMGQKKyAgICAwMDAwMDAwMDAwMDAwMDBjCitWUFNSTFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNDcxYTlhZGZmYzM3MDExOS5mOTlhMTdiMmM4ZDIzMzhiLmIxZjZmZGQ1OWNkMzA2YjAuZDQ3MTMzMjFhNTAwMTI2ZAogICAgIGRjZDZiM2EzMWU5MTQyNGYuZDk3ZWJlN2U2ZmM5NzAyNi43MTU3ZTEzZjgxZjA3MzVjLjEyY2JjYmE3MGE3NDJhM2MKQEAgLTI5Mzk4LDEwICsyOTM5OCwxMCBAQAogICAgIDQ3MWE5YWRmZmMzNzAxMTkuZjk5YTE3YjJjOGQyMzM4Yi5iMWY2ZmRkNTljZDMwNmIwLmQ0NzEzMzIxYTUwMDEyNmQKICAgICBkY2Q2YjNhMzFlOTE0MjRmLmQ5N2ViZTdlNmZjOTcwMjYuNzE1N2UxM2Y4MWYwNzM1Yy4xMmNiY2JhNzBhNzQyYTNjCiAgICAgODAyMmQ1MGVkMGFkZjg3OS5jMDJmN2VhNTBlZWYyMjFiLjEyMjFjZjE5YTcwYTM3MjYuZWE4YzNmMTNkOTExNWI0ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLmQ0NzEzMzIxYTUwMDEyNmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDEwMDAxMDAwMC4wMDAwMDAwMTAwMDAwMDAwCiAgICAgZDg3MmE5NGEyN2Y4ZjJlZgogCi1WUk9VTkRQRF8xMjhfMHgzKHJlZykKK1ZQU1JBV18xMjgocmVnKQogICBiZWZvcmUKICAgICBhNjMwOTdlZGRlNWFkMmQ1LjY0OTkyMTg1NTE1ZGIxNWIuMTcyNzNhYjRhNWZiZDljMi42NzI0YmJjZDI4NjJiMmM3CiAgICAgN2U4NDUwMjU2ZjE1YjlhZS41ZDVkNDQ2YTU5MDgyZDZjLjNmMDYyZTc0ZDZmNzU1Y2MuZDNmNGFmN2ZiYmI5ZTJmNgpAQCAtMjk0MTEsMTAgKzI5NDExLDEwIEBACiAgIGFmdGVyCiAgICAgYTYzMDk3ZWRkZTVhZDJkNS42NDk5MjE4NTUxNWRiMTViLjE3MjczYWI0YTVmYmQ5YzIuNjcyNGJiY2QyODYyYjJjNwogICAgIDdlODQ1MDI1NmYxNWI5YWUuNWQ1ZDQ0NmE1OTA4MmQ2Yy4zZjA2MmU3NGQ2Zjc1NWNjLmQzZjRhZjdmYmJiOWUyZjYKLSAgICBiY2JiZDA1Zjc3YjVlNDI3LmQ1ZTA1ZmE1NjFhNjBkMjAuZGVlMjJiM2Y2ZTUzMzZlMC44ZjVlOWY1MmZmM2M1OGYzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDNmNGFmN2ZiYmI5ZTJmNgotICAgIDZjMmY1YjA3MGNmNzBhMDgKLVZST1VORFBEXzEyOF8weDMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAzZjAwMmVmZmQ2MDA1NS5mZmQzZmZhZmZmYmJmZmUyCisgICAgMDAwMDAwMDAwMDAwMDAwOAorVlBTUkFXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDQ0MmYyMWMxMGM0N2JjNzkuZDkwMjE2ODU1OWQ1ZjVhNy5iMTU2NmRjZGRlZThlYzI4LmY1YzEzMWE3NGE1OTFiZDMKICAgICBkY2Y4ZDE0YzJlZjNhNjY4LjcxYWFkNDQ5NmM2ZDUzMDYuY2VlMTU4OTI4YmE1NjJkMi4yNDVjMzIxY2M0MWI5NTBiCkBAIC0yOTQyNSwxMCArMjk0MjUsMTAgQEAKICAgICA0NDJmMjFjMTBjNDdiYzc5LmQ5MDIxNjg1NTlkNWY1YTcuYjE1NjZkY2RkZWU4ZWMyOC5mNWMxMzFhNzRhNTkxYmQzCiAgICAgZGNmOGQxNGMyZWYzYTY2OC43MWFhZDQ0OTZjNmQ1MzA2LmNlZTE1ODkyOGJhNTYyZDIuMjQ1YzMyMWNjNDFiOTUwYgogICAgIDEyNTdlNzkzOGUwODgyMDIuZGY2NDQ5YmY2NjFiZTViNi5kYTVjMmM1ZGE5ODQyZWQxLjNjMjQyYjRiMTc2YzY2ZmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC5mNWMxMzFhNzRhNTkxYmQzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmYwMDAxZmZmZTAwMDEuMDAwMDAwMDBmZmZmZmZmZQogICAgIDkyNmFmYjhjYjZlZGY4YmUKIAotVlJPVU5EUERfMTI4XzB4MyhyZWcpCitWUFNSQVdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODk4MGM4NzUzYTM1MzJlNC5jNDA3MzYwNTc1OWIwMmU2LmFjNDI0ODZlN2NlNjk0YjMuMmU1MTdiYjZhMmQ5YjI3ZAogICAgIGQ4ZjM3ZmM5MDYzYmIxNzUuZjllZjY3MDgzNTMwMWY4OC5jNGZkY2I3ZmQxMWIyOTU5LjJlNjNmMDFjYjU2N2U0ODIKQEAgLTI5NDM4LDEwICsyOTQzOCwxMCBAQAogICBhZnRlcgogICAgIDg5ODBjODc1M2EzNTMyZTQuYzQwNzM2MDU3NTliMDJlNi5hYzQyNDg2ZTdjZTY5NGIzLjJlNTE3YmI2YTJkOWIyN2QKICAgICBkOGYzN2ZjOTA2M2JiMTc1LmY5ZWY2NzA4MzUzMDFmODguYzRmZGNiN2ZkMTFiMjk1OS4yZTYzZjAxY2I1NjdlNDgyCi0gICAgZGIwZjFiZjRiNzhkYjIxYS4zYTllZWU3N2EyNWUxZTg0LjIyZmJmNWYxN2Q5NmUyZmUuOGU5NTNjMzdhODQ4NWE4YwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNGZkY2I3ZmQxMWIyOTU5LjAwMDAwMDAwMDAwMDAwMDAKLSAgICBkYTg5NGU0MTlkMmYwNDVjCi1WUk9VTkRQRF8xMjhfMHgzKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDFjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZjAwMDAuMDAwMGZmZmZmZmZmZmZmZgorICAgIDAwMDAwMDAwMDAwMDAwMWMKK1ZQU1JBV18xMjgobWVtKQogICBiZWZvcmUKICAgICA3ZWUyMGIwN2Q3NGZiMTdjLjZlNzFmMzdmMzc0MzI5NTcuNTQ3Y2VmNGFmNmI0YjQzYy4xZmVmMmVhODQ3OGNhZWY4CiAgICAgZjI4YzkwMzM1ZmYxOTI0Zi5iNTRmMjZiODNlYzAxNzQ1LmU0NDQ2MTg1MTNmM2MzNTAuNzY3ZTM2YzU5ZDFmM2FhNApAQCAtMjk0NTIsMTAgKzI5NDUyLDEwIEBACiAgICAgN2VlMjBiMDdkNzRmYjE3Yy42ZTcxZjM3ZjM3NDMyOTU3LjU0N2NlZjRhZjZiNGI0M2MuMWZlZjJlYTg0NzhjYWVmOAogICAgIGYyOGM5MDMzNWZmMTkyNGYuYjU0ZjI2YjgzZWMwMTc0NS5lNDQ0NjE4NTEzZjNjMzUwLjc2N2UzNmM1OWQxZjNhYTQKICAgICAxMDUxNWFiMTU0MjE2MzA0LjIwMDYyZjc3OThiNzc3ZmEuZjIwMjE5ZGQ0ZmZhYTU2Zi44NDdmZDVmNGJiMjdkOTAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU0N2NlZjRhZjZiNGI0M2MuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmM4MDBjMzAwMjdmZjg2LjAwZWMwMDZkZmYzYTAwNzUKICAgICAzMTBhYzgzNGI5Yzg0NDc3CiAKLVZST1VORFBEXzEyOF8weDMocmVnKQorVlBTUkFXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDg4MmMxNDFlZDE3ODg3ZTkuYmU1ZmE5NTRlZjVjYzliZi5kMjJmYjEzYmJjNDg3YzYzLmYzOGY0YjkwOGQ5MmQxN2MKICAgICAwNmYwZThjODIwY2VjZGJjLjA1NDAyODUwY2U3ZmQ1MWQuZDAzOTIxMThiY2Y5OWE3MC5hMGY3YmVjNGM5M2I5M2MyCkBAIC0yOTQ2NSwxMCArMjk0NjUsMTAgQEAKICAgYWZ0ZXIKICAgICA4ODJjMTQxZWQxNzg4N2U5LmJlNWZhOTU0ZWY1Y2M5YmYuZDIyZmIxM2JiYzQ4N2M2My5mMzhmNGI5MDhkOTJkMTdjCiAgICAgMDZmMGU4YzgyMGNlY2RiYy4wNTQwMjg1MGNlN2ZkNTFkLmQwMzkyMTE4YmNmOTlhNzAuYTBmN2JlYzRjOTNiOTNjMgotICAgIDA1YTQzZmEwNDI1NTUzOTkuNjc2ZGRhNGU4ODYxYzIwYy42MzRiNTcyYzgxNTYxOGYyLjM5ODQ2N2M0OTJkYzE3YzMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDAzOTIxMThiY2Y5OWE3MC44MDAwMDAwMDAwMDAwMDAwCi0gICAgYTI0MDRiZDgzZDM2NTlhNQotVlJPVU5EUERfMTI4XzB4MyhtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZTgxMDEwOGZkZTdmY2QzLmZkMDdmZGY2ZmU0OWZjOWUKKyAgICAwMDAwMDAwMDAwMDAwMDA1CitWUFNSQVdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMmIwNzdlYzU1NjA4OGVkZS5mYTA3NjY4NzZjMjcwZjI4LmVkZDljYzAyMDA4ZjJkNGIuYjViYjAyYTljODQyMmIwOAogICAgIDEwMjNkODJkNmQwMjc2ODIuYTc0ZjJlNmZhZDhhYmMzMS5jOGIyMDM4ZmY0ZjMyNGY0LjJjYjA3MGVhODJlOTM3ZjQKQEAgLTI5NDc5LDEwICsyOTQ3OSwxMCBAQAogICAgIDJiMDc3ZWM1NTYwODhlZGUuZmEwNzY2ODc2YzI3MGYyOC5lZGQ5Y2MwMjAwOGYyZDRiLmI1YmIwMmE5Yzg0MjJiMDgKICAgICAxMDIzZDgyZDZkMDI3NjgyLmE3NGYyZTZmYWQ4YWJjMzEuYzhiMjAzOGZmNGYzMjRmNC4yY2IwNzBlYTgyZTkzN2Y0CiAgICAgMmU2MmQ0ZmQ5ZTMxY2NiYy40NmI2NmEzMzMxNGU5OWY1LjJlMDY1ZWNkMzU0NmViZGQuYTZkZTkyMTI3MTZiOTUwNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZGQ5Y2MwMjAwOGYyZDRiLjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmY5MTAwMDdmZmU5MDA0OS4wMDU5MDBlMWZmMDUwMDZmCiAgICAgMTgxNWU3Yzg1YzMxMzU0NwogCi1WUk9VTkRQRF8xMjhfMHg0KHJlZykKK1ZQU0xMRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBjN2I1MTEyZTkwOGRmMGQxLjg1NzRhMjg3YmI1YmI1YTMuY2ExMDJiMDM2ZjJiZDI2MC4wYjUxNzExMTA3ZTdkYzIxCiAgICAgZTliZWUxMmE2OWY1ZWQzMC43NmUwNmQxN2UwNmZiZmE5LjY4OWNhOWU2NjI1YmE2NWYuM2FlMTIxZWZkMjRkN2VkNApAQCAtMjk0OTIsMTAgKzI5NDkyLDEwIEBACiAgIGFmdGVyCiAgICAgYzdiNTExMmU5MDhkZjBkMS44NTc0YTI4N2JiNWJiNWEzLmNhMTAyYjAzNmYyYmQyNjAuMGI1MTcxMTEwN2U3ZGMyMQogICAgIGU5YmVlMTJhNjlmNWVkMzAuNzZlMDZkMTdlMDZmYmZhOS42ODljYTllNjYyNWJhNjVmLjNhZTEyMWVmZDI0ZDdlZDQKLSAgICBkYzdkNTEyYTgyZjQ2NzExLjEwOWVjYWMwOGVlNzI5ZjYuNjc3Njg5NTcwNzFkOWFjYS42NDFjZTUyZTU4ZDFlMDc4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY4OWNhOWU2NjI1YmE2NWYuMDAwMDAwMDAwMDAwMDAwMAotICAgIDE5Yzc5YTgzMDc2NWQ3NDEKLVZST1VORFBEXzEyOF8weDQobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDEzOTUzY2NjNGI3NGNiZS43NWMyNDNkZWE0OWFmZGE4CisgICAgMDAwMDAwMDAwMDAwMDAwMQorVlBTTExEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDVjY2U4MzcwNjc4Y2U0YmUuYTE0NzA3ZTNlNWU4YzUwOC5hZjNmMmEwYWY3MzQwNzEyLmZiNDc2NDhmZDk4NGQxOTIKICAgICAwYWIwNzA3MGYzMDJhMWRjLjJiZWM0Mzc0NjhmNTIwNzUuNmNiYjI1ODNlYTIxZjQzYS40OGQ2NTYyZjNlNDI4YzQ3CkBAIC0yOTUwNiwxMCArMjk1MDYsMTAgQEAKICAgICA1Y2NlODM3MDY3OGNlNGJlLmExNDcwN2UzZTVlOGM1MDguYWYzZjJhMGFmNzM0MDcxMi5mYjQ3NjQ4ZmQ5ODRkMTkyCiAgICAgMGFiMDcwNzBmMzAyYTFkYy4yYmVjNDM3NDY4ZjUyMDc1LjZjYmIyNTgzZWEyMWY0M2EuNDhkNjU2MmYzZTQyOGM0NwogICAgIGZlM2JkZDZlYzZkMmNiYzcuZjY3NjEwYjg5YmM5ZTkxNS40MWI4YTNjNGQ2YTIzMTU5LjY3ZTQ5YzBjYzVjMTU3MTgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC5mYjQ3NjQ4ZmQ5ODRkMTkyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwMDAwMDAwNDAwMDAwMDAuZTAwMDAwMDBlMDAwMDAwMAogICAgIDhiYWIxMDJlYWIzMzBjYmQKIAotVlJPVU5EUERfMTI4XzB4NChyZWcpCitWUFNMTERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDhmZDM4NGE0MjNmNmVlOS4yZDc4MjkxM2I0YjE1NWIyLmJiNjc0ZjA5ODJmOGI1OTguYTg2ODE1NGYwYjkxODUyYQogICAgIDQ2ZmVhMjUzNmIzYmNmZTAuMWZjMmZlOTMwNmQ4MmQwYS42ZDY3YjllZTZlNmEyZmQ0LmYxYjMwMTcwOGIxODE1MzUKQEAgLTI5NTE5LDEwICsyOTUxOSwxMCBAQAogICBhZnRlcgogICAgIDQ4ZmQzODRhNDIzZjZlZTkuMmQ3ODI5MTNiNGIxNTViMi5iYjY3NGYwOTgyZjhiNTk4LmE4NjgxNTRmMGI5MTg1MmEKICAgICA0NmZlYTI1MzZiM2JjZmUwLjFmYzJmZTkzMDZkODJkMGEuNmQ2N2I5ZWU2ZTZhMmZkNC5mMWIzMDE3MDhiMTgxNTM1Ci0gICAgZTNmYTRiYjZjMmI1NmQ0Zi5jN2U0NDVjMTBmODk2MmRmLmNmN2NhMzM3N2JkNDA3ZjIuYzJhZjYwMGE3NjYzZTRlNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZDY3YjllZTZlNmEyZmQ0LmYxYjMwMTcwOGIxODE1MzUKLSAgICA3MWVlNjM1NWY2NzUyZWVjCi1WUk9VTkRQRF8xMjhfMHg0KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDBjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdiOWVlMDAwYTJmZDQwMDAuMzAxNzAwMDA4MTUzNTAwMAorICAgIDAwMDAwMDAwMDAwMDAwMGMKK1ZQU0xMRF8xMjgobWVtKQogICBiZWZvcmUKICAgICAwNWM4MDFkZmM1NTUyMTk5LjY3MTI0YzM2NmQ1MTRiNDQuYWVkZjEyZDhiOGJiZDJhZS4xNDE1ZWNhMTY2YmRjMDgyCiAgICAgOTM4NDAwOTE2YzI5NDM5Yy4wNWM3OWIyY2Y4OGEwMzIxLmEzNTE5MDk4OTA1Mzg1MDEuYWUzMDQyOWI3YzU1MTk0YwpAQCAtMjk1MzMsMTAgKzI5NTMzLDEwIEBACiAgICAgMDVjODAxZGZjNTU1MjE5OS42NzEyNGMzNjZkNTE0YjQ0LmFlZGYxMmQ4YjhiYmQyYWUuMTQxNWVjYTE2NmJkYzA4MgogICAgIDkzODQwMDkxNmMyOTQzOWMuMDVjNzliMmNmODhhMDMyMS5hMzUxOTA5ODkwNTM4NTAxLmFlMzA0MjliN2M1NTE5NGMKICAgICBmNmVlZGU1NzBhZmQ1MDIzLmIyYTYxYTJiMjE3MmU4MjcuYzBjYTZmYjc4ZmE2ODQ4MC42ODkwMDlhODIzMTRjMGE4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42YTMyMTMwMDBhNzBhMDIwLmM2MDg1MzYwOGFhMzI5ODAKICAgICBhZDRmZGJhYjkyMzhlN2M1CiAKLVZST1VORFBEXzEyOF8weDQocmVnKQorVlBTTExEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGVmNDZkZTc5OTJiNWRmZGUuYWFmYjI0Y2Y5NWQ3MTk2Ny5hNTE1OTRmNGMwNzgyMzU4LmRlMDUzZWJlNzRhYjVhYjUKICAgICBjMWIyNDMwYTkyODkxNTM4LmIzMzY4NDVhYmJmNDRlN2MuYTQzZDg5OTY2Y2FmZjNkYy45NzVlMjY3ZjkxNzRhOGMyCkBAIC0yOTU0NiwxMCArMjk1NDYsMTAgQEAKICAgYWZ0ZXIKICAgICBlZjQ2ZGU3OTkyYjVkZmRlLmFhZmIyNGNmOTVkNzE5NjcuYTUxNTk0ZjRjMDc4MjM1OC5kZTA1M2ViZTc0YWI1YWI1CiAgICAgYzFiMjQzMGE5Mjg5MTUzOC5iMzM2ODQ1YWJiZjQ0ZTdjLmE0M2Q4OTk2NmNhZmYzZGMuOTc1ZTI2N2Y5MTc0YThjMgotICAgIDdmZGUwNGNhMmY0MWM1ODAuMDI0ZmIyYTg0NjQyNWRjNS4yMWJmOWNmMTI4YzRkZTM4LmU4ZWU1ZTRkNDYyOTMyYWMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCi0gICAgYmVlN2FlYzVlNzgwZWVjNQotVlJPVU5EUERfMTI4XzB4NChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44N2IxMzJjMDk1ZmU3YjgwLmViYzRjZmUwMmU5NTE4NDAKKyAgICAwMDAwMDAwMDAwMDAwMDA1CitWUFNMTERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZmJlOGJmNDcwYTNiOTY0Yy4yZmFhOGU4OGFmOGE4MTg5LmRkNGI2YTQxZmQ5ZmZjOWUuMDQwNTEwODMzYWI1ZjcyNgogICAgIDNmNTAwZjg2MzUxMDZjNjAuZDllMTUwNWVjOTM0MDVhMi4yM2M2ZWI2NDYxYzYwNDg2LjIyNjA2OTkyYzhhYTllMTEKQEAgLTI5NTYwLDEwICsyOTU2MCwxMCBAQAogICAgIGZiZThiZjQ3MGEzYjk2NGMuMmZhYThlODhhZjhhODE4OS5kZDRiNmE0MWZkOWZmYzllLjA0MDUxMDgzM2FiNWY3MjYKICAgICAzZjUwMGY4NjM1MTA2YzYwLmQ5ZTE1MDVlYzkzNDA1YTIuMjNjNmViNjQ2MWM2MDQ4Ni4yMjYwNjk5MmM4YWE5ZTExCiAgICAgNjdlYzFjNmY4MzBjMmEyZC5kZjA5NWUxMmYwZjFmNDU4LjFkNGUyYmZhOWE0ZGQ2NTEuMmY0NmQxMDlkNWFjNTA4MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZDRiNmE0MWZkOWZmYzllLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmFkOTAwMDA4MTIxODAwMC4xYTY0ODAwMGE3ODQ0MDAwCiAgICAgODFlM2JmZTRkYjA4YzdhZQogCi1WUk9VTkRQRF8yNTZfMHgwKHJlZykKK1ZQU1JMRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA4MDMxM2QxZjBjNzkwNGJlLmNlZWY1YmYwZmJhNzUxYTAuNmY1YjUyYzlkM2Q2ZmU0ZS5hMGI5ZDQzNGZkYWNjYjNlCiAgICAgZGMzYWJhNzMyYjI5M2QwNy5jNmVmODU2MDViNWUzMTllLmIwMWUzMGEzYzgxNTkxZTUuZTIzMzM2YWY1ZTljNjViOQpAQCAtMjk1NzMsMTAgKzI5NTczLDEwIEBACiAgIGFmdGVyCiAgICAgODAzMTNkMWYwYzc5MDRiZS5jZWVmNWJmMGZiYTc1MWEwLjZmNWI1MmM5ZDNkNmZlNGUuYTBiOWQ0MzRmZGFjY2IzZQogICAgIGRjM2FiYTczMmIyOTNkMDcuYzZlZjg1NjA1YjVlMzE5ZS5iMDFlMzBhM2M4MTU5MWU1LmUyMzMzNmFmNWU5YzY1YjkKLSAgICBmMjRiMzM0Y2Q0YTFhZDMzLjEyNTI1YTI5NTA2YmVhMDUuYmUwMTRiMGMzOTk3N2VjYS40OGViNDY0ZTA1MWRiYmM2Ci0gICAgZGMzYWJhNzMyYjI5M2QwNy5jNmVmODU2MDViNWUzMTllLjgwMDAwMDAwMDAwMDAwMDAuZTIzMzM2YWY1ZTljNjViOQotICAgIGYzNDQ2MWE5OTRmZjg1NDgKLVZST1VORFBEXzI1Nl8weDAobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBiMDFlMzAwMGM4MTU5MS4wMGUyMzMzNjAwNWU5YzY1CisgICAgMDAwMDAwMDAwMDAwMDAwOAorVlBTUkxEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGYwN2U2NDNjYjM3OTcyMTUuYmRhZjA1M2QzNzFmMjZlNi4xMTc0ZmI3YjYzYjhkNmJkLmFlNWEyOTNiMDA5NjU2MmMKICAgICA4MjI1MDVhNDg4YjIwYjI1LjI5OWM1NzJlMjgzY2E1YzUuN2RjYmJkZGJiOTExODE2Ni40NzY4ZTRkOThlMmJiODAxCkBAIC0yOTU4NywxMCArMjk1ODcsMTAgQEAKICAgICBmMDdlNjQzY2IzNzk3MjE1LmJkYWYwNTNkMzcxZjI2ZTYuMTE3NGZiN2I2M2I4ZDZiZC5hZTVhMjkzYjAwOTY1NjJjCiAgICAgODIyNTA1YTQ4OGIyMGIyNS4yOTljNTcyZTI4M2NhNWM1LjdkY2JiZGRiYjkxMTgxNjYuNDc2OGU0ZDk4ZTJiYjgwMQogICAgIDg1MDZjMWNjMmZiOTA5YTMuYmZjMDk0NTMxMzUyNGQzNy5hY2I2MWM0NTE0ZWZmNTI3LjFkYzZjY2I3MDgzMzY0ZDUKLSAgICBmMDdlNjQzY2IzNzk3MjE1LjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA3ZGNiYmRkMGI5MTE4MTYuMDQ3NjhlNGQwOGUyYmI4MAogICAgIGVjYTYxNGRmMzNjYzhhMjQKIAotVlJPVU5EUERfMjU2XzB4MChyZWcpCitWUFNSTERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOWViZjZjMDIxYjc2N2JmOC40ZWE2NzYwYjYwNWEyYjliLmQ5ZGJjMGVkNDk5YTAzODcuYzM3NzllZTc0MjcwMjdhNAogICAgIGZjNTllMTE0NjBjNGE2NzkuY2NmZDY4ZmIyMzBlYzY2ZC4xNjZiYTczYWNjZTQ4YWJjLjYzZTViOWY4NGYyOTVkYjcKQEAgLTI5NjAwLDEwICsyOTYwMCwxMCBAQAogICBhZnRlcgogICAgIDllYmY2YzAyMWI3NjdiZjguNGVhNjc2MGI2MDVhMmI5Yi5kOWRiYzBlZDQ5OWEwMzg3LmMzNzc5ZWU3NDI3MDI3YTQKICAgICBmYzU5ZTExNDYwYzRhNjc5LmNjZmQ2OGZiMjMwZWM2NmQuMTY2YmE3M2FjY2U0OGFiYy42M2U1YjlmODRmMjk1ZGI3Ci0gICAgNjFjMDZmODA5ZDQwNDc1NC4yYmJkNjQ1YjI3YmRiODVlLmVjNjI2OTZjYjk1NzI4MzUuMzYxNzYxYzJjZjk5NGM5MwotICAgIGZjNTllMTE0NjBjNGE2NzkuY2NmZDY4ZmIyMzBlYzY2ZC4wMDAwMDAwMDAwMDAwMDAwLjYzZTViOWY4NGYyOTVkYjcKLSAgICBlNWY3NDUzNTk5Y2M0NDU0Ci1WUk9VTkRQRF8yNTZfMHgwKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDE0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMTY2MDAwMDBjY2UuMDAwMDA2M2UwMDAwMDRmMgorICAgIDAwMDAwMDAwMDAwMDAwMTQKK1ZQU1JMRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA3ODNjNzliNjFjYTdjNTkyLmI0MjRjNzFiNzBmN2Q5YzcuZmNhYzZiMWI2NDQxOGY0Yi5kNmI1NmUyZjQzZWE5Y2ExCiAgICAgYWY3NjJhYTE4MjY4ZWY0OC41OWJhODgyMjNlNGE0M2I3LjI2NzI2ZTU0ZDQyZWVkOWYuYTJhOGFhOTgxODIyZTllZApAQCAtMjk2MTQsMTAgKzI5NjE0LDEwIEBACiAgICAgNzgzYzc5YjYxY2E3YzU5Mi5iNDI0YzcxYjcwZjdkOWM3LmZjYWM2YjFiNjQ0MThmNGIuZDZiNTZlMmY0M2VhOWNhMQogICAgIGFmNzYyYWExODI2OGVmNDguNTliYTg4MjIzZTRhNDNiNy4yNjcyNmU1NGQ0MmVlZDlmLmEyYThhYTk4MTgyMmU5ZWQKICAgICA2NTZmZDJlMmU3MWM3ZGEzLjc3NGM1MzMzNzVmYzEzYjAuYTFkMjZiYWNmNzQ3OTFjMi43NzMzYjE5NmM3YjIzZjJjCi0gICAgNzgzYzc5YjYxY2E3YzU5Mi44MDAwMDAwMDAwMDAwMDAwLmZjYWM2YjFiNjQ0MThmNGIuZDZiNTZlMmY0M2VhOWNhMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDEzMzAwMDAwNmExLjAwMDAwNTE1MDAwMDAwYzEKICAgICBiMTNjMTAwMjI1MTBmMDM1CiAKLVZST1VORFBEXzI1Nl8weDAocmVnKQorVlBTUkxEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGNkNTM2MTQ3MGJmNWM1NTcuYmRkMWZjMTYyMDhhYjhmNi44YTk3ZjUyNzhjYWVkMzcwLmY5OGY0NDZkYmYyZTlmMjQKICAgICA2MzMwNmRkMjNjNjM5MTFjLjE4ZDI3NmUxMmM1ZGRjNDcuMzdlOGM0ZTFhNWM2M2M4ZS44Zjg1MThhZTllMTQ3ZmJhCkBAIC0yOTYyNywxMCArMjk2MjcsMTAgQEAKICAgYWZ0ZXIKICAgICBjZDUzNjE0NzBiZjVjNTU3LmJkZDFmYzE2MjA4YWI4ZjYuOGE5N2Y1Mjc4Y2FlZDM3MC5mOThmNDQ2ZGJmMmU5ZjI0CiAgICAgNjMzMDZkZDIzYzYzOTExYy4xOGQyNzZlMTJjNWRkYzQ3LjM3ZThjNGUxYTVjNjNjOGUuOGY4NTE4YWU5ZTE0N2ZiYQotICAgIGNmMjEzMDBlNTRlNjkxMzIuNjJjM2Q3YjJhNzUyNTZlYy5jYzY1OGM1Nzk2NmRmYTY2LmU1NDRkNmJlOWU1Nzk3ZDAKLSAgICA2MzMwNmRkMjNjNjM5MTFjLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCi0gICAgNDY1MDAwMDA3MjIwNWEyNgotVlJPVU5EUERfMjU2XzB4MChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGRmYTMxMzAyOTcxOGYyLjAyM2UxNDYyMDI3ODUxZmUKKyAgICAwMDAwMDAwMDAwMDAwMDA2CitWUFNSTERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDczNTY1MDk3ZmMwN2RiZi45ODZhY2M0OGE2NWUxYmZiLjMyYTQ0MzE3NWNkMzM2ZTQuMWYxN2Y3MjM3MDlhNjhmMwogICAgIGZhMTNhNDkyMWNlY2M4ODcuYWU1YjljMWYxOTY5MWUwNy43MTJjNDU4M2NlNzcxNjhmLjk0ZTM5MzUyOTMzNzkwZmYKQEAgLTI5NjQxLDEwICsyOTY0MSwxMCBAQAogICAgIDA3MzU2NTA5N2ZjMDdkYmYuOTg2YWNjNDhhNjVlMWJmYi4zMmE0NDMxNzVjZDMzNmU0LjFmMTdmNzIzNzA5YTY4ZjMKICAgICBmYTEzYTQ5MjFjZWNjODg3LmFlNWI5YzFmMTk2OTFlMDcuNzEyYzQ1ODNjZTc3MTY4Zi45NGUzOTM1MjkzMzc5MGZmCiAgICAgZjliODM5ODc2OGIwZjVhOS4wOThmMTQ1N2UyYmE0NTEyLjBlZDQyMGE0MWY2ZTNhM2UuNjEwYzE3ZWNmZDk0ZmQ3NgotICAgIDAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGUyNTgwMDAxOWNlZS4wMDAxMjljNzAwMDEyNjZmCiAgICAgNzNhNWNkMTIxY2JjOTk0ZgogCi1WUk9VTkRQRF8yNTZfMHgxKHJlZykKK1ZQU1JBRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA3MGFjZjU3NTA4OWU0MDBhLjhmODI1NjY2NzczMWU3YWUuMDJmMGU5OWJlOTVjZWVkOC5kNmI0NGRiYWNmODI0MDViCiAgICAgMzU0MWY3ZjNhYzcwMWNkZS5kZDQwZDUyODczMDYyNGU4LjU4YjQzZjdlNWRjNWU3ZWEuYjg4Mzk5ODY2N2I3OWIyMApAQCAtMjk2NTQsMTAgKzI5NjU0LDEwIEBACiAgIGFmdGVyCiAgICAgNzBhY2Y1NzUwODllNDAwYS44ZjgyNTY2Njc3MzFlN2FlLjAyZjBlOTliZTk1Y2VlZDguZDZiNDRkYmFjZjgyNDA1YgogICAgIDM1NDFmN2YzYWM3MDFjZGUuZGQ0MGQ1Mjg3MzA2MjRlOC41OGI0M2Y3ZTVkYzVlN2VhLmI4ODM5OTg2NjdiNzliMjAKLSAgICAxZWFlY2VmOWE1YmU2YTc5LmE5ZjQ5YjA1OGNhMzM0MmMuNjRlYjJjNzI5OWEzZjVhYy42YWEzYWNiODRlNmYyYTlhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC5kZDQwZDUyODczMDYyNGU4LjU4YjQzZjdlNWRjNWU3ZWEuYmZmMDAwMDAwMDAwMDAwMAotICAgIGE5MDExYmZlN2E5NmQ2NWIKLVZST1VORFBEXzI1Nl8weDEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMGIwMDAwMDAwYi5mZmZmZmZmNzAwMDAwMDBjCisgICAgMDAwMDAwMDAwMDAwMDAxYgorVlBTUkFEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGYwZDg2ZmViZjgxYzZiZmIuY2M0M2ViNDkwNWZiNGJhZS4yNzZkZWFjNTg3NjdiYzg1LjBjZTJiYjNmZDJlZjNiZWYKICAgICA3NTJmN2JlZDM1NTYyNWZmLjQ5MDIyOTZjYTMwMjU2YTEuOTFjYjZhN2VhMGE2YWNmMi42MjNhNTVlZTA5NzZlY2M3CkBAIC0yOTY2OCwxMCArMjk2NjgsMTAgQEAKICAgICBmMGQ4NmZlYmY4MWM2YmZiLmNjNDNlYjQ5MDVmYjRiYWUuMjc2ZGVhYzU4NzY3YmM4NS4wY2UyYmIzZmQyZWYzYmVmCiAgICAgNzUyZjdiZWQzNTU2MjVmZi40OTAyMjk2Y2EzMDI1NmExLjkxY2I2YTdlYTBhNmFjZjIuNjIzYTU1ZWUwOTc2ZWNjNwogICAgIDE1ZDJiY2YyNGQ0ZGMwOTQuNWFjYjJkYzYwNmI1YzMwOS5lODRlMjEwNDQ3ZGQ1ZTE5LmRkMzU3NzVmNzZhMWEwMDAKLSAgICBmMGQ4NmZlYmY4MWM2YmZiLmNjNDNlYjQ5MDVmYjRiYWUuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuMDAwMDAwMDAwMDAwMDAwMAogICAgIGI2NDM0MDM0NjQxOTA0M2YKIAotVlJPVU5EUERfMjU2XzB4MShyZWcpCitWUFNSQURfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgY2JlZWRmNzAxYzdjMmM5ZS4xNzJiYzliMTgwYTc4NzIwLmE4YTc3NGNmODk0ZGIyZWIuY2RmNjIyMjVhZTY0ZmM0NwogICAgIDc2NmNmNjFkN2JiNTQ3MGQuMzA3OThlNDRkMzIyMmM2ZS45YzUyYjA1NmUxNDlhY2JjLjE0YjM2Mzk3YTZjYjVmYTYKQEAgLTI5NjgxLDEwICsyOTY4MSwxMCBAQAogICBhZnRlcgogICAgIGNiZWVkZjcwMWM3YzJjOWUuMTcyYmM5YjE4MGE3ODcyMC5hOGE3NzRjZjg5NGRiMmViLmNkZjYyMjI1YWU2NGZjNDcKICAgICA3NjZjZjYxZDdiYjU0NzBkLjMwNzk4ZTQ0ZDMyMjJjNmUuOWM1MmIwNTZlMTQ5YWNiYy4xNGIzNjM5N2E2Y2I1ZmE2Ci0gICAgMTQwOTdmYTgxZDUwOTIzNy5kNDQzNzg4OTcxOGJhMWZkLjk1MzZhMGM0NmUyMmY3YjMuYjdjNWNiODU5YjVjNzU2ZgotICAgIDc2NmNmNjFkN2JiNTQ3MGQuMDAwMDAwMDAwMDAwMDAwMC5iZmYwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKLSAgICA4NDFjZmQ4NmVkMjVhOGYyCi1WUk9VTkRQRF8yNTZfMHgxKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDEyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZlNzE0ZmZmZmY4NTIuMDAwMDA1MmNmZmZmZTliMgorICAgIDAwMDAwMDAwMDAwMDAwMTIKK1ZQU1JBRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA2NmY4YmY3MTgyNzYzZTAzLjk0Y2ZkYzAzOTdkOWE4NmUuMmQ3YWE3ZDkwMDU3ZWU4ZS4wMmQ4OTEwNjk1OTQ3NGMyCiAgICAgMTU1YTk4ODc4NTIwNzYyZi4yZjkwYThhZGE4ZGZlYWQzLjlhODBlNWJjMjhkMzNlZTcuMmYyZjhhYjE2NzQ2MWQzMgpAQCAtMjk2OTUsMTAgKzI5Njk1LDEwIEBACiAgICAgNjZmOGJmNzE4Mjc2M2UwMy45NGNmZGMwMzk3ZDlhODZlLjJkN2FhN2Q5MDA1N2VlOGUuMDJkODkxMDY5NTk0NzRjMgogICAgIDE1NWE5ODg3ODUyMDc2MmYuMmY5MGE4YWRhOGRmZWFkMy45YTgwZTViYzI4ZDMzZWU3LjJmMmY4YWIxNjc0NjFkMzIKICAgICA2ZDBlMDJiNjExMmUwZWExLjJjYTFkNmU0NmI3NzRjYTQuMDIzMTM3MDEwYzZlNGUzMC5kMGVlMjdmNGRlMDQwNzc3Ci0gICAgNjZmOGJmNzE4Mjc2M2UwMy5iZmYwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZjM1MDAwMDAwNTFhLjAwMDAwNWU1MDAwMDBjZTgKICAgICBkZGQ3NDJlZTI4ZDE5MTMzCiAKLVZST1VORFBEXzI1Nl8weDEocmVnKQorVlBTUkFEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDAxOTliNzdlMzRmOWE5MDEuODg5YjdmMGMzN2E3NDgwYS5iY2RlNGRhODc5OGE1ZjM4LjMzYzgwODYyNzcyZGExNDUKICAgICAwYWY0YzE1NTU1NWNmMzU0LjAzMGQ4ODBiMDcyYTYzNTguMDdhMjhlMGVmYzFlODg1My5iNDQ1N2Y1NTM1NmI1YzY5CkBAIC0yOTcwOCwxMCArMjk3MDgsMTAgQEAKICAgYWZ0ZXIKICAgICAwMTk5Yjc3ZTM0ZjlhOTAxLjg4OWI3ZjBjMzdhNzQ4MGEuYmNkZTRkYTg3OThhNWYzOC4zM2M4MDg2Mjc3MmRhMTQ1CiAgICAgMGFmNGMxNTU1NTVjZjM1NC4wMzBkODgwYjA3MmE2MzU4LjA3YTI4ZTBlZmMxZTg4NTMuYjQ0NTdmNTUzNTZiNWM2OQotICAgIDUyMzM1ZGRmMjU4NmFhZGEuOTYwMDE0ZDJkMTQxY2U5Yy4yNGU2MjFiMWExNzNjMThhLmEwOWRmYTViMWZmNmM3MmMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZmYwMDAwMDAwMDAwMDAwCi0gICAgMjgxMmVkNGRlNjI4YTA0NgotVlJPVU5EUERfMjU2XzB4MShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDFlOGEzOGZmZjA3YTIxLmZlZDExNWZkMDBkNWFkNzEKKyAgICAwMDAwMDAwMDAwMDAwMDA2CitWUFNSQURfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgN2RjNzVjMTBmYWU3ODVmNC4xMzkxMzhiZDQ5NjA1MTI5Ljc5OWNhMjY5YzI1ZDdlYmEuNDQxYTMyNWVjMzkxNTFmYgogICAgIGFkODdjMDk2YWEyNDBiZjIuNDQ0NzZmZThkMzI5Yjk0Yi44MGRkOWMxMDIxNzkzY2VhLmZmYTJhNzQxNzg3MjIxOGMKQEAgLTI5NzIyLDEwICsyOTcyMiwxMCBAQAogICAgIDdkYzc1YzEwZmFlNzg1ZjQuMTM5MTM4YmQ0OTYwNTEyOS43OTljYTI2OWMyNWQ3ZWJhLjQ0MWEzMjVlYzM5MTUxZmIKICAgICBhZDg3YzA5NmFhMjQwYmYyLjQ0NDc2ZmU4ZDMyOWI5NGIuODBkZDljMTAyMTc5M2NlYS5mZmEyYTc0MTc4NzIyMThjCiAgICAgOTQxZjk0Y2IxMWVjZWU2ZC4yNDEyMjc3NzdlZTg3ZjRmLjEwY2YwODMwZTk1YTM5YzEuZmNkOTVmMTBiZjQ1ZjFlYQotICAgIDdkYzc1YzEwZmFlNzg1ZjQuMDAwMDAwMDAwMDAwMDAwMC43OTljYTI2OWMyNWQ3ZWJhLjQ0MWEzMjVlYzM5MTUxZmIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmMDEwMDAwMDA0Mi5mZmZmZmZmZjAwMDAwMGYwCiAgICAgMmM4NDg5MjY3NGVlN2ZiNwogCi1WUk9VTkRQRF8yNTZfMHgyKHJlZykKK1ZQU0xMUV8xMjgocmVnKQogICBiZWZvcmUKICAgICAxNjhmZjM0NTFiZGNiNjdmLmY2MDY3ZGVkNzY0OWJhODkuNjQxNjBjNmRhNTdlMTVhYi4zYWZhMjg4NzI1OThkZjEzCiAgICAgYjM3OTkxMDFjNGVjZGRjMy4yOWVlOGFiM2FjZjgxYjgyLjdkZTgzMGFjNTk2YjVjNWIuOGRjYWQzOTdkMjBlMDBlNgpAQCAtMjk3MzUsMTAgKzI5NzM1LDEwIEBACiAgIGFmdGVyCiAgICAgMTY4ZmYzNDUxYmRjYjY3Zi5mNjA2N2RlZDc2NDliYTg5LjY0MTYwYzZkYTU3ZTE1YWIuM2FmYTI4ODcyNTk4ZGYxMwogICAgIGIzNzk5MTAxYzRlY2RkYzMuMjllZThhYjNhY2Y4MWI4Mi43ZGU4MzBhYzU5NmI1YzViLjhkY2FkMzk3ZDIwZTAwZTYKLSAgICA1ZThmNWRjNjBiYTkyZjJmLjg0ZGRmN2Q4MDk2MGM4YTcuYjVmZWM1ZmY5ZTgwZjE5ZC5kODdjZTFjZjU4Nzg1MDEwCi0gICAgODAwMDAwMDAwMDAwMDAwMC4zZmYwMDAwMDAwMDAwMDAwLjdkZTgzMGFjNTk2YjVjNWIuODAwMDAwMDAwMDAwMDAwMAotICAgIGNhYjUxMjY3NjA1OTZjMTcKLVZST1VORFBEXzI1Nl8weDIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTYyY2I1YWUyZDgwMDAwMC5jYmU5MDcwMDczMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAxNworVlBTTExRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDI5ZDUyZTlmMWFlOGIwNGMuNGQ2YTc0MWJlNTVjNDcyYy4xZTA0ZTJlYmFhOTFmYTI3LmY1MjkzNDhlNDk1MGY0ODYKICAgICBmMDA2OWRiMDFlOWMxMzg4LjRhYzdiNjgzYjA2OTg0MTYuMTZkMzU3YjIyNTcxZjZkYS5iNWQ2MDVhMmU3MjRkYTg1CkBAIC0yOTc0OSwxMCArMjk3NDksMTAgQEAKICAgICAyOWQ1MmU5ZjFhZThiMDRjLjRkNmE3NDFiZTU1YzQ3MmMuMWUwNGUyZWJhYTkxZmEyNy5mNTI5MzQ4ZTQ5NTBmNDg2CiAgICAgZjAwNjlkYjAxZTljMTM4OC40YWM3YjY4M2IwNjk4NDE2LjE2ZDM1N2IyMjU3MWY2ZGEuYjVkNjA1YTJlNzI0ZGE4NQogICAgIGZkMTVkOTg0ODg4MDUwZjYuYzQ4MDE3YTQ4OTU0ZGRkOC5hNGQ5MWQ4NzM5M2IyZTZhLjA1ZjczNzc5ODU0ZWZlYzUKLSAgICAzZmYwMDAwMDAwMDAwMDAwLjRkNmE3NDFiZTU1YzQ3MmMuM2ZmMDAwMDAwMDAwMDAwMC5mNTI5MzQ4ZTQ5NTBmNDg2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwMDAwMDAwMDAwMDAwMDAuMjgwMDAwMDAwMDAwMDAwMAogICAgIGM2YzlhZjIxMzRkOWVlYmIKIAotVlJPVU5EUERfMjU2XzB4MihyZWcpCitWUFNMTFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZWUxMmVkY2E3YzUxMzNjOC41NGZkYWQyOWZiMDg0YjFiLmEzMzIyN2MyZDdmMWQzOTIuZjZiZThhMGI5NWJlNDZjZgogICAgIDE2ZmY3Y2U1MzQ1MWE2YzcuNTg2ZTNjZDIzY2M1ODEyOS5jMGMzY2U5Njg0YmJlN2UyLjcxMzUyODkyMTY4ZjljZmQKQEAgLTI5NzYyLDEwICsyOTc2MiwxMCBAQAogICBhZnRlcgogICAgIGVlMTJlZGNhN2M1MTMzYzguNTRmZGFkMjlmYjA4NGIxYi5hMzMyMjdjMmQ3ZjFkMzkyLmY2YmU4YTBiOTViZTQ2Y2YKICAgICAxNmZmN2NlNTM0NTFhNmM3LjU4NmUzY2QyM2NjNTgxMjkuYzBjM2NlOTY4NGJiZTdlMi43MTM1Mjg5MjE2OGY5Y2ZkCi0gICAgOTlkYzU4ZTBmOTY0ODI2My4xMGVkODllZjUzZTI4MTFhLmNhZGY4NWQ0YWY5MzA3YmIuZjQxMzA3ZDc5ZjdiMjBiNwotICAgIDNmZjAwMDAwMDAwMDAwMDAuNTg2ZTNjZDIzY2M1ODEyOS5jMGMzY2U4MDAwMDAwMDAwLjcxMzUyODkyMTY4ZjljZmQKLSAgICA3ZDM3NzU0YzM4ZDE5ZDgxCi1WUk9VTkRQRF8yNTZfMHgyKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgxODc5ZDJkMDk3N2NmYzQuZTI2YTUxMjQyZDFmMzlmYQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZQU0xMUV8xMjgobWVtKQogICBiZWZvcmUKICAgICAzYzE0ZmQ1MzdmNTMwZmU4LjI1OWJlODIyMThmNDY4MjUuMTA0MzRmMzQ3MjZkZDI1NC4xOWU3MGYzYWYxOWI1YWIxCiAgICAgNzM4YWI0YzkzZTIwOWQ4ZC5lNTEzOTQ0MmFiOGFlYWEyLjBmYjNiZjM2YjJmNDlhZjQuMTU2Y2RhM2I0MGUzMDUyOApAQCAtMjk3NzYsMTAgKzI5Nzc2LDEwIEBACiAgICAgM2MxNGZkNTM3ZjUzMGZlOC4yNTliZTgyMjE4ZjQ2ODI1LjEwNDM0ZjM0NzI2ZGQyNTQuMTllNzBmM2FmMTliNWFiMQogICAgIDczOGFiNGM5M2UyMDlkOGQuZTUxMzk0NDJhYjhhZWFhMi4wZmIzYmYzNmIyZjQ5YWY0LjE1NmNkYTNiNDBlMzA1MjgKICAgICBmYzYzMTg5OTkwNDMwNDlhLjcxYWM3ZGYxYjk2MmM1NmQuMzM2MWRkNWIzNzBhMWUyNy43MGFiYTU1NTdkNjlhY2Q3Ci0gICAgM2ZmMDAwMDAwMDAwMDAwMC4zZmYwMDAwMDAwMDAwMDAwLjNmZjAwMDAwMDAwMDAwMDAuM2ZmMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jZWZjZGFjYmQyNmJkMDAwLmIzNjhlZDAzOGMxNGEwMDAKICAgICBhZThhMjk4NTMyNWJkZDhhCiAKLVZST1VORFBEXzI1Nl8weDIocmVnKQorVlBTTExRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDRhYzJkYTcyZTNlMWRmZTguNzc3MWQ0ZjY1ZmJkNGM5ZS41YzcxZjdhZGJjMGQ3ODliLjVhYTcxNGMxODExODQ0ZjYKICAgICBiNWU1N2EyOGYyZDNjZDJkLjIxM2UyNTVjMTQyYmE1ZWMuNzQzNTgwOTFlOWY4Yzk1Ni4xNWQ2MjVkYjdmMjg1ZmU5CkBAIC0yOTc4OSwxMCArMjk3ODksMTAgQEAKICAgYWZ0ZXIKICAgICA0YWMyZGE3MmUzZTFkZmU4Ljc3NzFkNGY2NWZiZDRjOWUuNWM3MWY3YWRiYzBkNzg5Yi41YWE3MTRjMTgxMTg0NGY2CiAgICAgYjVlNTdhMjhmMmQzY2QyZC4yMTNlMjU1YzE0MmJhNWVjLjc0MzU4MDkxZTlmOGM5NTYuMTVkNjI1ZGI3ZjI4NWZlOQotICAgIDQ5M2UwNTE0ZmJiZmUyMDUuOGU5ZjEyY2NjYzIwYzc1NC5jODRhMzZiNTAxNTU2MzEwLjY1NzNkNGM4MzJmODI1MWUKLSAgICA4MDAwMDAwMDAwMDAwMDAwLjNmZjAwMDAwMDAwMDAwMDAuNzQzNTgwOTFlOWY4Yzk1Ni4zZmYwMDAwMDAwMDAwMDAwCi0gICAgMzQyN2ZkY2YyODA5YTIwMQotVlJPVU5EUERfMjU2XzB4MihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lODZiMDEyM2QzZjE5MmFjLjJiYWM0YmI2ZmU1MGJmZDIKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWUFNMTFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNmJkNjZmYzFhMzYyZDAwNy41ZmM2Y2QzYTZkYjQ3NTIxLjIxNGNiMDdiYjdjYzU1MWMuOTM5NjFhNjk2ODliNjQyYgogICAgIGE3MjM2ZjM3NDRhYjk5ZmYuOTk4YzAyNGQwZWQ0NjliYy5mZjMwNTk5MTIxOWIzOWQ2LmMzNjU0MGQxZWU5YjQ0ZTQKQEAgLTI5ODAzLDEwICsyOTgwMywxMCBAQAogICAgIDZiZDY2ZmMxYTM2MmQwMDcuNWZjNmNkM2E2ZGI0NzUyMS4yMTRjYjA3YmI3Y2M1NTFjLjkzOTYxYTY5Njg5YjY0MmIKICAgICBhNzIzNmYzNzQ0YWI5OWZmLjk5OGMwMjRkMGVkNDY5YmMuZmYzMDU5OTEyMTliMzlkNi5jMzY1NDBkMWVlOWI0NGU0CiAgICAgYzRkOTc5MWQyNmYwYjkxNS42ZGI5MTI0NDE5MWQ3NjliLjEwZDg4ZjYxZmYyMWQ2NTcuOWViNTgzMjlkMTNlNWQ0YwotICAgIDZiZDY2ZmMxYTM2MmQwMDcuNWZjNmNkM2E2ZGI0NzUyMS4zZmYwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTkxMjE5YjM5ZDYwMDAwMC4wZDFlZTliNDRlNDAwMDAwCiAgICAgYzkwNzUwNTYxYjlmMmNkNAogCi1WUk9VTkRQRF8yNTZfMHgzKHJlZykKK1ZQU1JMUV8xMjgocmVnKQogICBiZWZvcmUKICAgICBkMWEyZDMwM2JiNzQ1YTRjLjExYjQ5Y2U5MWZhMWVjNGUuNTM3N2I0OTNkZjVjYzVkMy4zYmE0OGZlMTg2ODAyYTY1CiAgICAgZjRlZDYzNGYyNzFkYjIyMi5mOTcwYWRhODZlMjM3OGM4LjFkYTEzZGMzZDI2OTgxODUuMGQ2MDUxNjc2NjcxNTk0OApAQCAtMjk4MTYsMTAgKzI5ODE2LDEwIEBACiAgIGFmdGVyCiAgICAgZDFhMmQzMDNiYjc0NWE0Yy4xMWI0OWNlOTFmYTFlYzRlLjUzNzdiNDkzZGY1Y2M1ZDMuM2JhNDhmZTE4NjgwMmE2NQogICAgIGY0ZWQ2MzRmMjcxZGIyMjIuZjk3MGFkYTg2ZTIzNzhjOC4xZGExM2RjM2QyNjk4MTg1LjBkNjA1MTY3NjY3MTU5NDgKLSAgICA5MDM2ZmNhN2ZjMjU2ZjAxLjMyYzZiODg2NmVkMjRhMTEuZjE2MTkyODc5ZmQwNDQyYS44MTBmOGY1ODJhNDkzMWE0Ci0gICAgZjRlZDYzNGYyNzFkYjIyMi5mOTcwYWRhODZlMjM3OGM4LjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAotICAgIGM0Nzk3MTI4Y2NkYWNhNzYKLVZST1VORFBEXzI1Nl8weDMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMzYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDA3Ni4wMDAwMDAwMDAwMDAwMDM1CisgICAgMDAwMDAwMDAwMDAwMDAzNgorVlBTUkxRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDRhY2MwY2RmZTJhZDA0NDQuOWVlZDM5MjY0ZjgzMGM4ZC4wNjZmYWQ1M2YzZTViNGJmLjI3ZDY4ZTdlMzlkYWQyZmYKICAgICBlMjQzMTRiMDRjOTVkNjNiLmNhZjNkNjI3MDZmMTYyOTEuNWE1YjhmMWFhZjYyYzI3Yy40MTIzMmM4YTNkOTUxNDg3CkBAIC0yOTgzMCwxMCArMjk4MzAsMTAgQEAKICAgICA0YWNjMGNkZmUyYWQwNDQ0LjllZWQzOTI2NGY4MzBjOGQuMDY2ZmFkNTNmM2U1YjRiZi4yN2Q2OGU3ZTM5ZGFkMmZmCiAgICAgZTI0MzE0YjA0Yzk1ZDYzYi5jYWYzZDYyNzA2ZjE2MjkxLjVhNWI4ZjFhYWY2MmMyN2MuNDEyMzJjOGEzZDk1MTQ4NwogICAgIDZhYWEwMzg4MjVhMGZlODYuZGQyNzZjZTM5NGVlMGY0Zi42ZTEwNWJiMDhkM2EwOGI3LmQ0Mzc4NmRiOGNkOTRlYjIKLSAgICA0YWNjMGNkZmUyYWQwNDQ0LjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDVhNWI4ZjEuMDAwMDAwMDAwNDEyMzJjOAogICAgIGRhZTM1YmZiN2EyZDlhYTQKIAotVlJPVU5EUERfMjU2XzB4MyhyZWcpCitWUFNSTFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMDQxM2NmYTM1MDU1MjNjMy5iNjc3OGJmODk2NGUzYWNhLjJiNDU3MzNiYWJjNzU5YTguNGIwOGExZmUxZTMwMjc1YQogICAgIDE3M2FlZDQwZTEzNzk0MzQuMzM3NTFiNmE2NjA4YzgxYi4xZWM3ZGRiMDZiYmE2ZjlhLmNhZTMxNDhkMDg2NTc4MTkKQEAgLTI5ODQzLDEwICsyOTg0MywxMCBAQAogICBhZnRlcgogICAgIDA0MTNjZmEzNTA1NTIzYzMuYjY3NzhiZjg5NjRlM2FjYS4yYjQ1NzMzYmFiYzc1OWE4LjRiMDhhMWZlMWUzMDI3NWEKICAgICAxNzNhZWQ0MGUxMzc5NDM0LjMzNzUxYjZhNjYwOGM4MWIuMWVjN2RkYjA2YmJhNmY5YS5jYWUzMTQ4ZDA4NjU3ODE5Ci0gICAgNzFhNGIzM2VjODVlMjhhNi4wZTkzODQ5MjE1MTQ5YTcwLjZhYTYzMDkwNzQ2ZGNhZjYuN2JiNzYxOWM4NDI3ZjEwNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNhZTMxNDhkMDg2NTc4MTkKLSAgICBkZjdlNzllYmEwN2Y0NTFlCi1WUk9VTkRQRF8yNTZfMHgzKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDFlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwN2IxZjc2YzEuMDAwMDAwMDMyYjhjNTIzNAorICAgIDAwMDAwMDAwMDAwMDAwMWUKK1ZQU1JMUV8xMjgobWVtKQogICBiZWZvcmUKICAgICA0YTA4M2MwMjc4MmU5YTlmLjY2NzAyNTBkMGFhY2FkMzguNTI1ZmNkYjM4MjU0ZmNkOS43OGFhODE0MWNmNDA0MjljCiAgICAgNTdiY2NhNGE1Mjk5MDVmZi5iYTZiYzhiNzlkZWExNWIwLjczYTRhNjg1Nzc5ZjA1NDQuZjM2ODc3ZWI1OTc5ZDYzZApAQCAtMjk4NTcsMTAgKzI5ODU3LDEwIEBACiAgICAgNGEwODNjMDI3ODJlOWE5Zi42NjcwMjUwZDBhYWNhZDM4LjUyNWZjZGIzODI1NGZjZDkuNzhhYTgxNDFjZjQwNDI5YwogICAgIDU3YmNjYTRhNTI5OTA1ZmYuYmE2YmM4Yjc5ZGVhMTViMC43M2E0YTY4NTc3OWYwNTQ0LmYzNjg3N2ViNTk3OWQ2M2QKICAgICBlMDY2OWVhZDQ5Y2Q0MzZhLmMzZDgwMzcxZjY5ZjkwZDguNjIzYTQ4YmRiYzZkNDI2NC4zNmIyNDdhZjliYTFhMGY3Ci0gICAgNGEwODNjMDI3ODJlOWE5Zi42NjcwMjUwZDBhYWNhZDM4LjUyNWZjZGIzODI1NGZjZDkuNzhhYTgxNDFjZjQwNDI5YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMzlkMjUzLjAwMDAwMDAwMDA3OWI0M2IKICAgICA4NDFkNjIzOWJhZWZjNjY5CiAKLVZST1VORFBEXzI1Nl8weDMocmVnKQorVlBTUkxRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDQ3ZDZhNWQ3Y2UyZTk5NzkuZGFjYzA5NzkwMGJkMjcwZi42ODNiMmVjOTZjOTdiM2U2LjFlODRkMzEwYTVjMDRhNzIKICAgICA0MjRjYjIzZjBhOGI5MjUyLjAyMWY5N2I5Zjg5MTQ1YTEuYmJjOTE3M2ZjMWY0ZDEyNS5hMmQxYjUwMjgwNWQ4ZGI4CkBAIC0yOTg3MCwxMCArMjk4NzAsMTAgQEAKICAgYWZ0ZXIKICAgICA0N2Q2YTVkN2NlMmU5OTc5LmRhY2MwOTc5MDBiZDI3MGYuNjgzYjJlYzk2Yzk3YjNlNi4xZTg0ZDMxMGE1YzA0YTcyCiAgICAgNDI0Y2IyM2YwYThiOTI1Mi4wMjFmOTdiOWY4OTE0NWExLmJiYzkxNzNmYzFmNGQxMjUuYTJkMWI1MDI4MDVkOGRiOAotICAgIGQxY2I4M2RmMGI5NGVkYTAuMTc5ODVjYzU3ZDVlMjVlZS4zNWY5ODY3NjRjZjVmNGMzLjY1OWU0ZjBhMWJhY2Y1NjIKLSAgICA0MjRjYjIzZjBhOGI4MDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCi0gICAgMTllNzljMGRmZjkxMjM5NAotVlJPVU5EUERfMjU2XzB4MyhtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAxNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMGJiYzkxNzNmYzFmLjAwMDAwYTJkMWI1MDI4MDUKKyAgICAwMDAwMDAwMDAwMDAwMDE0CitWUFNSTFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzFmYzQ3ZTA4MDNmNjE3NC4xYTEyNjc3NGNhZDdiODRlLjc5MmM3OGYxOWYxMTFmNjguMGE3M2ViZDc3NjE5MzRjZgogICAgIDE4YzA5YTc5MzFkMGI0NjkuOGQ3MzcwNDFjMDJhYTAwNS43ZGRmYzhlOTc1MGZiMGVkLjFkNTRkOGQ5NGM1MmNhOTQKQEAgLTI5ODg0LDEwICsyOTg4NCwxMCBAQAogICAgIGMxZmM0N2UwODAzZjYxNzQuMWExMjY3NzRjYWQ3Yjg0ZS43OTJjNzhmMTlmMTExZjY4LjBhNzNlYmQ3NzYxOTM0Y2YKICAgICAxOGMwOWE3OTMxZDBiNDY5LjhkNzM3MDQxYzAyYWEwMDUuN2RkZmM4ZTk3NTBmYjBlZC4xZDU0ZDhkOTRjNTJjYTk0CiAgICAgZmEwMDExYzQyZDRmZDc5ZS4wNDBkMmZmNmViNThkYWUyLmRlZTgzZDVkNDgzNWY0ZGMuYzYwODNkNGNjOTYxNTM2OAotICAgIGMxZmM0N2UwODAzMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43OTJjNzhmMTlmMTExZjY4LjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwN2RkZi4wMDAwMDAwMDAwMDAxZDU0CiAgICAgNGExOTVjMzYyNzJmMzFmMAogCi1WUk9VTkRQRF8yNTZfMHg0KHJlZykKK1ZST1VORFBTXzEyOF8weDAocmVnKQogICBiZWZvcmUKICAgICBkZTBlMGU4NDNmMDZmZGZjLmNmMjM1ZDIwNzg0ODgwN2EuNmQxY2JiYzM0ZTc3MzJiZC4yNzJhOGI2YTU2MmE4M2FiCiAgICAgNzcwNTI3ZjQ2ZWUzYWRjNy43YTlmMjkwOWZmZGE3ZTc5LjE4Mjg4MmI1YmU3ZmM5MTMuYzdmYzVjZGJjYTEyNDdlMgpAQCAtMjk4OTgsOSArMjk4OTgsOSBAQAogICAgIGRlMGUwZTg0M2YwNmZkZmMuY2YyMzVkMjA3ODQ4ODA3YS42ZDFjYmJjMzRlNzczMmJkLjI3MmE4YjZhNTYyYTgzYWIKICAgICA3NzA1MjdmNDZlZTNhZGM3LjdhOWYyOTA5ZmZkYTdlNzkuMTgyODgyYjViZTdmYzkxMy5jN2ZjNWNkYmNhMTI0N2UyCiAgICAgNzI0YmE0ZjA0ZjUwN2RmZS4yMGM2MDk1NDQxOGEzYzY5LjM2OWRlZDNlZDI5M2EyM2UuMzQ1NDQyNzhhYjUxYWQzNAotICAgIDc3MDUyN2Y0NmVlM2FkYzcuN2E5ZjI5MDlmZmRhN2U3OS4wMDAwMDAwMDAwMDAwMDAwLmM3ZmM1Y2RiY2ExMjQ3ZTIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC5jN2ZjNWQwMGNhMTI0N2UwCiAgICAgZTVjNjQyZTUyNTBhNTJkNwotVlJPVU5EUERfMjU2XzB4NChtZW0pCitWUk9VTkRQU18xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgZTE3NzUzOGVmNjlhMDk4MS5mZWY0Yjc0MTk5MTA2YzVlLmNkNDlmNmMxNjc3NmViY2EuM2ZmM2E0YzQ1OTBjMDhjNQogICAgIDFhZGY2YjEzYTViMzUyZjUuNDdlZjQ1NmQzYTdhMDNkZi44YzNjZmJiYjg0Yzk1NDkzLmUyNmJlNzlhMDM4OTBlN2EKQEAgLTI5OTExLDEwICsyOTkxMSwxMCBAQAogICAgIGUxNzc1MzhlZjY5YTA5ODEuZmVmNGI3NDE5OTEwNmM1ZS5jZDQ5ZjZjMTY3NzZlYmNhLjNmZjNhNGM0NTkwYzA4YzUKICAgICAxYWRmNmIxM2E1YjM1MmY1LjQ3ZWY0NTZkM2E3YTAzZGYuOGMzY2ZiYmI4NGM5NTQ5My5lMjZiZTc5YTAzODkwZTdhCiAgICAgNmNjODA0NjE0ZDYwZWI2MC42MjY5MjZkNmZkYTVhYTdjLmI2MGEwNGM2Y2M2YTZkZmQuNjk3YmJmYjdjMTQyNDViMwotICAgIGUxNzc1MzhlZjY5YTA5ODEuZmVmNGI3NDE5OTEwNmM1ZS5jZDQ5ZjZjMTY3NzZlYmNhLjNmZjAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2Q0OWY2YzE2Nzc2ZWJjYS40MDAwMDAwMDU5MGMwOGM1CiAgICAgOTE5NzIwNzZlYzk2Mzk2NwogCi1WUk9VTkRQRF8yNTZfMHg0KHJlZykKK1ZST1VORFBTXzEyOF8weDAocmVnKQogICBiZWZvcmUKICAgICBlYzNhYTBmMDkwNDk2ZTNhLmNhNTBhZTAzZmFhOGY3YzkuN2UwOGQzMGY1YjZmMTdiOS5iYTZjMTJjNDRlYzlhMjYzCiAgICAgOWFhNmE1NjJiODY3YzQ0Mi44Zjg3YjczMTM2NWFlMzIwLjM3Yzc5NmI3MmQyNjU1YjAuNGQ5NjEwOGVjMDlkMzViNgpAQCAtMjk5MjUsOSArMjk5MjUsOSBAQAogICAgIGVjM2FhMGYwOTA0OTZlM2EuY2E1MGFlMDNmYWE4ZjdjOS43ZTA4ZDMwZjViNmYxN2I5LmJhNmMxMmM0NGVjOWEyNjMKICAgICA5YWE2YTU2MmI4NjdjNDQyLjhmODdiNzMxMzY1YWUzMjAuMzdjNzk2YjcyZDI2NTViMC40ZDk2MTA4ZWMwOWQzNWI2CiAgICAgZjkyNzJiMzYwMTdkNzgyYy5kZDZmMzFkNmRjZDEwZTFkLjMyMzQ5YzRkOTNjZjkyNzQuYmJjYzAyMWFjZWYwNjk1YgotICAgIDgwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRkOTYxMDhlYzA5ZDM1YjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZDk2MTA4ZWMwYTAwMDAwCiAgICAgOTc4Y2IyMjgyYzQyYTM0NQotVlJPVU5EUERfMjU2XzB4NChtZW0pCitWUk9VTkRQU18xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgYmVhZTY5ODJiNTU4MjJlMy4zNTk4YWNiODY0YmVlOTU0LjgzODY2ZDNhZDUzYzEwYmIuNWQ0YTYzZWY4NDI0ZmQwZAogICAgIDMwMGIwNDRmNDgxYzMxODIuY2IxZjllM2ViNjAyMWVlYS45NDRjMjZjZjVmNDc1ZmI0LjQ2OGMxYmQ0NDllOGEyM2IKQEAgLTI5OTM4LDEwICsyOTkzOCwxMCBAQAogICAgIGJlYWU2OTgyYjU1ODIyZTMuMzU5OGFjYjg2NGJlZTk1NC44Mzg2NmQzYWQ1M2MxMGJiLjVkNGE2M2VmODQyNGZkMGQKICAgICAzMDBiMDQ0ZjQ4MWMzMTgyLmNiMWY5ZTNlYjYwMjFlZWEuOTQ0YzI2Y2Y1ZjQ3NWZiNC40NjhjMWJkNDQ5ZThhMjNiCiAgICAgYzg3MGZmNzkwMzliOGM0ZC44MmViMDFkNzk5NmRhMTEyLjlkZjQ0MjhkYzM0N2RkMDMuZTFhYzA2NTUxMGNlMzZlNQotICAgIDgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLjVkNGE2M2VmODQyNGZkMGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDBkNTNjMTBiYi41ZDRhNjNlZjgwMDAwMDAwCiAgICAgOWNiOTY2ZTAxNTJlMWY1YgogCi1WUk9VTkRQRF8yNTZfMHg0KHJlZykKK1ZST1VORFBTXzEyOF8weDAocmVnKQogICBiZWZvcmUKICAgICA3NTNlZDNjMThiYzBlYTgwLmRlODMwNTk4NjBmNzFhMWEuYmU4MzBjZjI3ZmU5ODBjNy4wYjE5OGYzMTg4NTQ1NTU2CiAgICAgNmZkMjYzZWY3NGEzOTZkMC4xNGM4MDk2NTNhZWRjNDczLmZjZTVhYjRjYmMxMjU0YWMuMjgyZmI5ZjAyMDdhYzdiMQpAQCAtMjk5NTIsOSArMjk5NTIsOSBAQAogICAgIDc1M2VkM2MxOGJjMGVhODAuZGU4MzA1OTg2MGY3MWExYS5iZTgzMGNmMjdmZTk4MGM3LjBiMTk4ZjMxODg1NDU1NTYKICAgICA2ZmQyNjNlZjc0YTM5NmQwLjE0YzgwOTY1M2FlZGM0NzMuZmNlNWFiNGNiYzEyNTRhYy4yODJmYjlmMDIwN2FjN2IxCiAgICAgZThjMDEyZDc2YjYzNWRmOC5lMDQ0NWQ0MGFiY2RhYWE4LmNhYmRhYjY5Zjg5MzY2ZDIuYWQ1NjM1ODYwMmMzNTgxMwotICAgIDZmZDI2M2VmNzRhMzk2ZDAuMDAwMDAwMDAwMDAwMDAwMC5mY2U1YWI0Y2JjMTI1NGFjLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmNlNWFiNGM4MDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNjMwYTE1ZWIxMmYzYzU5YgotVlJPVU5EUERfMjU2XzB4NChtZW0pCitWUk9VTkRQU18xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgNGMyZjZmOTE3OGYxMWExOC5jM2RlYmY4MGY1YWQyZTdlLmFlMTVlNWQwYzM3YzFlNWEuODZmYmJmOWRlM2NhMzM5NAogICAgIDBkOTYwZGMwOTg0NDdlNGQuZGRhNWI0MWJjMDRkYjAzNC42NzAyMTI1ZGEzNjQyMjJkLjJjZjljYjhiYzk5ODY2ODcKQEAgLTI5OTY1LDEwICsyOTk2NSwxMCBAQAogICAgIDRjMmY2ZjkxNzhmMTFhMTguYzNkZWJmODBmNWFkMmU3ZS5hZTE1ZTVkMGMzN2MxZTVhLjg2ZmJiZjlkZTNjYTMzOTQKICAgICAwZDk2MGRjMDk4NDQ3ZTRkLmRkYTViNDFiYzA0ZGIwMzQuNjcwMjEyNWRhMzY0MjIyZC4yY2Y5Y2I4YmM5OTg2Njg3CiAgICAgODMwYjY4NjM4ZGY3YWM2NC5lNmY3YjgxZjA5ZmIzZTcyLjI4NTY3ZmE4OGE2NTU0OGQuZDI5YzI4ZWQxZmVlYzY2YwotICAgIDRjMmY2ZjkxNzhmMTFhMTguYzNkZWJmODBmNWFkMmU3ZS44MDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDBjMzdjMDAwMC44MDAwMDAwMGUzY2EzMzk0CiAgICAgOGUwMWM2Yjk4ZDVmMDFiYQogCi1WUk9VTkRTU18weDAocmVnKQorVlJPVU5EUFNfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDVjNWFmZmZjZGQ5MzUzN2MuZmY0ZDQ5YjU2OGFmNTllOS4zMTZjZGUxMTg3YWY2ZTM1LjJkNjYwOTI5ZGVlNzJkYTMKICAgICA5YTg5Nzk2MjBkN2VjMmRmLmJjYjNjNzNjODVjYjRmYjAuMmIyNmY4ZDhmNGNkODcxMi4yYWI5MWUzNjgzODA0ZGIxCkBAIC0yOTk3OSw5ICsyOTk3OSw5IEBACiAgICAgNWM1YWZmZmNkZDkzNTM3Yy5mZjRkNDliNTY4YWY1OWU5LjMxNmNkZTExODdhZjZlMzUuMmQ2NjA5MjlkZWU3MmRhMwogICAgIDlhODk3OTYyMGQ3ZWMyZGYuYmNiM2M3M2M4NWNiNGZiMC4yYjI2ZjhkOGY0Y2Q4NzEyLjJhYjkxZTM2ODM4MDRkYjEKICAgICBhM2Q4MzA1N2JhYWQ4YjkwLjllNTdmNGU3ZTg3NzAxMDkuODM5YzExYjg0ZjI4OWMyNy45ZmE1NjRiMmEwNjI4OWZiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgzOWMxMWI4NGYyODljMjcuOWZhNTY0YjI4MDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGY0Y2Q4NzEyLjAwMDAwMDAwYmY4MDAwMDAKICAgICA1YzczNzBhM2IwMzc0OGY2Ci1WUk9VTkRTU18weDAobWVtKQorVlJPVU5EUFNfMTI4XzB4MShtZW0pCiAgIGJlZm9yZQogICAgIDVkZWUyZWYxZGI0MTQyZmUuOGIwOTQ2OWZmOTA0MWI4YS40MTg5NDc1OWVmYjI4MzIzLmJlZTczMTczNDBjN2E5YTYKICAgICA0NTMxMGQ1ZGVlYzU0OWYzLjIxODM5ZGM5YzM0NDU5MmIuYmFhZTY2ZjljYTU3Y2MzYy41ODU1MmYyNzBmMjIxOTZhCkBAIC0yOTk5MiwxMCArMjk5OTIsMTAgQEAKICAgICA1ZGVlMmVmMWRiNDE0MmZlLjhiMDk0NjlmZjkwNDFiOGEuNDE4OTQ3NTllZmIyODMyMy5iZWU3MzE3MzQwYzdhOWE2CiAgICAgNDUzMTBkNWRlZWM1NDlmMy4yMTgzOWRjOWMzNDQ1OTJiLmJhYWU2NmY5Y2E1N2NjM2MuNTg1NTJmMjcwZjIyMTk2YQogICAgIGYwMDg4N2QzMDRkMDE5MDAuZjI0ZDIxMzI3YWY4ZTFjYS5jOTQxMjM2YzViYmRjMDk4LmMwYWQxZGEzM2JlYjc0MTQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODM5YzExYjg0ZjI4OWMyNy45ZmE1NjRiMjQwYzAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQxODgwMDAwZWZiMjgzMjMuYmY4MDAwMDA0MGMwMDAwMAogICAgIDZiNGZiN2E3MjFmNWRmZDEKIAotVlJPVU5EU1NfMHgwKHJlZykKK1ZST1VORFBTXzEyOF8weDEocmVnKQogICBiZWZvcmUKICAgICA2NTMwNWEwNzExNGQ2NjNhLmZmYTE0MjhlYWJhODAzMTUuYmEwNWEwNzIxZGVhYmZiMS4xNGUxNjg4MDBkZmE5OWM3CiAgICAgOWQyZGRkZGZkMDQzYzkzYy4xYmZiNzlhYTczOGU5NTc0LjY3OGE5NDIxNDE0MDhjNTEuMDk4NmU3Zjc2N2U5ZjVmMgpAQCAtMzAwMDYsOSArMzAwMDYsOSBAQAogICAgIDY1MzA1YTA3MTE0ZDY2M2EuZmZhMTQyOGVhYmE4MDMxNS5iYTA1YTA3MjFkZWFiZmIxLjE0ZTE2ODgwMGRmYTk5YzcKICAgICA5ZDJkZGRkZmQwNDNjOTNjLjFiZmI3OWFhNzM4ZTk1NzQuNjc4YTk0MjE0MTQwOGM1MS4wOTg2ZTdmNzY3ZTlmNWYyCiAgICAgNmY5MDNiOWRmOTYzNDM4MC42YTE5M2Q4MWFmMmFlMDljLmMxOTBhNWJmYzEzOTkzOWYuMDNjOWY1ZjNlNWM4ZWMxMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMTkwYTViZmMxMzk5MzlmLjAzYzlmNWYzNjdlOWY1ZjIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjc4YTk0MjE0MTQwMDAwMC4wMDAwMDAwMDY3ZTlmNWYyCiAgICAgNzU1OGFjMjdjMzg4OWFkNAotVlJPVU5EU1NfMHgwKG1lbSkKK1ZST1VORFBTXzEyOF8weDEobWVtKQogICBiZWZvcmUKICAgICBhNjNjNGQzODVhODBjOWQyLjUxYmE3OTc4ZmI0ZTZmODUuMTFkMTU4MGNmMmI1OTBmNS5lODRmMGU3ODQ4NDYzZWYzCiAgICAgNGNlZTZjN2M4Nzk5ODM3Mi4xOTE5NTE2ZDBjMzE5ODljLjIxMDNhOTk4MzBiYzZkN2YuNmRhMDVmNmI4NjcxNWE1MQpAQCAtMzAwMTksMTAgKzMwMDE5LDEwIEBACiAgICAgYTYzYzRkMzg1YTgwYzlkMi41MWJhNzk3OGZiNGU2Zjg1LjExZDE1ODBjZjJiNTkwZjUuZTg0ZjBlNzg0ODQ2M2VmMwogICAgIDRjZWU2YzdjODc5OTgzNzIuMTkxOTUxNmQwYzMxOTg5Yy4yMTAzYTk5ODMwYmM2ZDdmLjZkYTA1ZjZiODY3MTVhNTEKICAgICA0MzNhODVlMDY1ZGU4M2UxLmViMTBmM2Y3Zjc2ZWNhYTguZDMyODc1OGY1MmE5ZjM4MS4wZmExYmRmZDkwNzBhMDBkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMxOTBhNWJmYzEzOTkzOWYuMDNjOWY1ZjM0ODQ2M2YwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGYyYjU5MGY1LmU4NGYwZTc4NDg0NjNlYzAKICAgICAxNWU2OTBhZjdhMTc5OTRkCiAKLVZST1VORFNTXzB4MChyZWcpCitWUk9VTkRQU18xMjhfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgMzNjMmZlYTY5MmQ4YzQyYS45M2NmOTZiOWE2MWQ0OWRiLjFjZjE4YjdiY2MyNDMzNDkuOTI3ZjczNmJiMDY3ZTg5ZgogICAgIGRjN2Y2OGVkZTY5YzA5MTQuYTViMTg1MDY0MDJmODViZC4zNDc0Nzg0ZGVmYjRlNDM3LjU2NDg5YzI4MjU0ZmQwMTMKQEAgLTMwMDMzLDkgKzMwMDMzLDkgQEAKICAgICAzM2MyZmVhNjkyZDhjNDJhLjkzY2Y5NmI5YTYxZDQ5ZGIuMWNmMThiN2JjYzI0MzM0OS45MjdmNzM2YmIwNjdlODlmCiAgICAgZGM3ZjY4ZWRlNjljMDkxNC5hNWIxODUwNjQwMmY4NWJkLjM0NzQ3ODRkZWZiNGU0MzcuNTY0ODljMjgyNTRmZDAxMwogICAgIDZkNjhjY2VlMTNlZmEzYjguNzg1YzVmMjNmYzlkZjkxZi5jNmJkMWY2MzVjY2Y4Y2M4LjJjMzQzMWZmZWQ0ZTUwYWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzZiZDFmNjM1Y2NmOGNjOC4yYzM0MzFmZjAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwZWZiNGU0MzcuNTY0ODljMjgwMDAwMDAwMAogICAgIDgzYWE5MWFjZTZiZTBjMTIKLVZST1VORFNTXzB4MChtZW0pCitWUk9VTkRQU18xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgYmFjYTUzNWE1MTQ4YmUzMC5iOGYyNzBkMzY2NzRjOWRkLmQwNDBjMjdjNDliZjc0MGQuYzhkNTkxMTA4NWNmYjM4NgogICAgIDc1M2U3MWQxN2UxOGZhMjcuMjkyYWE3OGVjNGJkY2RiNS4wZDExNDI5MTExOGFmM2YyLmVmM2I1MjdlN2FjZGFhMGEKQEAgLTMwMDQ2LDEwICszMDA0NiwxMCBAQAogICAgIGJhY2E1MzVhNTE0OGJlMzAuYjhmMjcwZDM2Njc0YzlkZC5kMDQwYzI3YzQ5YmY3NDBkLmM4ZDU5MTEwODVjZmIzODYKICAgICA3NTNlNzFkMTdlMThmYTI3LjI5MmFhNzhlYzRiZGNkYjUuMGQxMTQyOTExMThhZjNmMi5lZjNiNTI3ZTdhY2RhYTBhCiAgICAgOGVkMjY3ZmY4YjNhN2EyMy5mMmJmYzhiNDZiYzYxNmY3LjdjZGI5ZDI2NmJlMjlhMDYuMDE5OGJmZTEyOTg1ODllMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNmJkMWY2MzVjY2Y4Y2M4LjJjMzQzMWZmODAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDA0MGMyN2M0OWJmNzQwOC5jOGQ1OTEyMGJmODAwMDAwCiAgICAgNTI2NzhhMzYyNjUwZWUzZAogCi1WUk9VTkRTU18weDEocmVnKQorVlJPVU5EUFNfMTI4XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDRhNzFlMDAwYWM3YmVkMTguNGU4YWNkMmNiNGE2MzhkOC5mYzMwYjVmMTAyNDU2YTY5LjVjOGVkMjgxNDM2NzRhNjkKICAgICA5YmExZDE2ZjVkOTBjMmY2LmFkNDUzNDA0MDgwOGVmZTkuZjVhMzdhZTAyYWQ0ZWRmMC44NTBlYTMxZWZhYWJjZDEwCkBAIC0zMDA2MCw5ICszMDA2MCw5IEBACiAgICAgNGE3MWUwMDBhYzdiZWQxOC40ZThhY2QyY2I0YTYzOGQ4LmZjMzBiNWYxMDI0NTZhNjkuNWM4ZWQyODE0MzY3NGE2OQogICAgIDliYTFkMTZmNWQ5MGMyZjYuYWQ0NTM0MDQwODA4ZWZlOS5mNWEzN2FlMDJhZDRlZGYwLjg1MGVhMzFlZmFhYmNkMTAKICAgICBhMzQ0NWFmMGQ0MWJhYzg0LmRhNTE2MzQyYWJlY2RhYWYuYjZhNDE3ZWIwYTUyYTU5MC41MGI4M2ZlY2IxYWQ2Njk3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI2YTQxN2ViMGE1MmE1OTAuNTBiODNmZWNmYWFiY2QxMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNWEzN2FlMDNmODAwMDAwLjgwMDAwMDAwZmFhYmNkMTAKICAgICAzN2JhYzVjNzk1MTRjY2VlCi1WUk9VTkRTU18weDEobWVtKQorVlJPVU5EUFNfMTI4XzB4MihtZW0pCiAgIGJlZm9yZQogICAgIDBkYWFhN2FkZjk5MjEyMTguNDQxMzIxZDQ4NmJmYWE1ZS4xMjg3MGJhMTRmNmEzZTA4LjAwN2JjZTAxNjQ0Y2E3Y2UKICAgICBmM2YzNDQ3M2NmZmQ1ZWQxLjk1ZDc1ODEwZjlmMTM3MDMuZDQ0YTdiOTk4ODFkMmZmNC40MWVhZGZlNDE2ZTA2OGM0CkBAIC0zMDA3MywxMCArMzAwNzMsMTAgQEAKICAgICAwZGFhYTdhZGY5OTIxMjE4LjQ0MTMyMWQ0ODZiZmFhNWUuMTI4NzBiYTE0ZjZhM2UwOC4wMDdiY2UwMTY0NGNhN2NlCiAgICAgZjNmMzQ0NzNjZmZkNWVkMS45NWQ3NTgxMGY5ZjEzNzAzLmQ0NGE3Yjk5ODgxZDJmZjQuNDFlYWRmZTQxNmUwNjhjNAogICAgIGM2NjIxNzA1MzI1ZjZjNDQuMGMzZTE1MGNhMmM5YzcwNy5kNThkYTNhNzgxODI0NTQ0LmJhMTZiYTkzZjE5NDRmODMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjZhNDE3ZWIwYTUyYTU5MC41MGI4M2ZlYzY0NGNhN2NlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNmODAwMDAwNGY2YTNlMDguM2Y4MDAwMDA2NDRjYTdjZQogICAgIGM0ZDRiYjAyOGY4OTdlMGQKIAotVlJPVU5EU1NfMHgxKHJlZykKK1ZST1VORFBTXzEyOF8weDIocmVnKQogICBiZWZvcmUKICAgICAwZGZlZDk5YThiZTIzZjMxLmE0ZTI0ZjNkMTEzZWMyMGEuZGQyNDE2ZjkwODk4ZTNkZi4wNWMyMGNiNzIxOTRjZmMyCiAgICAgZmUxNWIwYWQxZjhiMTVjZS42NjhiYWNiYmM0ZDI4MWI0LmVlM2I1MmMxZmNhOGU3MGEuZWI0ZDQ1OGYwMTU4YmI0OApAQCAtMzAwODcsOSArMzAwODcsOSBAQAogICAgIDBkZmVkOTlhOGJlMjNmMzEuYTRlMjRmM2QxMTNlYzIwYS5kZDI0MTZmOTA4OThlM2RmLjA1YzIwY2I3MjE5NGNmYzIKICAgICBmZTE1YjBhZDFmOGIxNWNlLjY2OGJhY2JiYzRkMjgxYjQuZWUzYjUyYzFmY2E4ZTcwYS5lYjRkNDU4ZjAxNThiYjQ4CiAgICAgZjI2NTNkYTdlODBmM2M5MS44NThhMzBiNTc1OGVmM2NhLjk2MjUwNGZiOTc4ZGRlNDQuODA4NzI2MmUwZmZlYmNlMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NjI1MDRmYjk3OGRkZTQ0LjgwODcyNjJlMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWUzYjUyYzFmY2E4ZTcwYS5lYjRkNDU4ZjNmODAwMDAwCiAgICAgMjczYmQxNmUyYjIyZWIwNgotVlJPVU5EU1NfMHgxKG1lbSkKK1ZST1VORFBTXzEyOF8weDIobWVtKQogICBiZWZvcmUKICAgICBmMTRjOTJlNzcwYjg5MmU2LjU4ZGY2NjAxODdkYTcxMzguNGFiODlhY2U0MGIwZGVlNC4xNmEyYmY3MDMwMDc5ODk4CiAgICAgZGEzZWVjZDY1NTYwM2U4Yi44MGEyZmEzOTk1MzhmNjc0LmE4ODA3OWM1OTEyZGQwNDIuYTdjY2JmODU2N2I0ZDMwYQpAQCAtMzAxMDAsMTAgKzMwMTAwLDEwIEBACiAgICAgZjE0YzkyZTc3MGI4OTJlNi41OGRmNjYwMTg3ZGE3MTM4LjRhYjg5YWNlNDBiMGRlZTQuMTZhMmJmNzAzMDA3OTg5OAogICAgIGRhM2VlY2Q2NTU2MDNlOGIuODBhMmZhMzk5NTM4ZjY3NC5hODgwNzljNTkxMmRkMDQyLmE3Y2NiZjg1NjdiNGQzMGEKICAgICBiZWRiNWEyN2Y1MjZhYTIxLjFkY2QzMzA3NDdhMWJjODUuZDNjZTZkZTg1MDAzNjRiOS4zZWZhMjZiYWI0NjZmMTNiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk2MjUwNGZiOTc4ZGRlNDQuODA4NzI2MmUwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YWI4OWFjZTQwYzAwMDAwLjNmODAwMDAwM2Y4MDAwMDAKICAgICBlZjhkMWIzOTAxMGJjODhjCiAKLVZST1VORFNTXzB4MShyZWcpCitWUk9VTkRQU18xMjhfMHgyKHJlZykKICAgYmVmb3JlCiAgICAgYzA4YmEwNWEzOTE2ZmEwMy5lNzRhNjNhMGQ4M2ViNWNlLjIyOGU4NjFhMGFjN2ZlZDguMDAyYzg5NjE4NmU3NjVhOQogICAgIDA3YmM3YzRiZjg1NWZmZWIuZTRiM2Y2YTA1MmE3Y2MzZC40M2JjOTczNjUyOWFmMjcyLmJhZDNhODkwMzUwZDRhNzgKQEAgLTMwMTE0LDkgKzMwMTE0LDkgQEAKICAgICBjMDhiYTA1YTM5MTZmYTAzLmU3NGE2M2EwZDgzZWI1Y2UuMjI4ZTg2MWEwYWM3ZmVkOC4wMDJjODk2MTg2ZTc2NWE5CiAgICAgMDdiYzdjNGJmODU1ZmZlYi5lNGIzZjZhMDUyYTdjYzNkLjQzYmM5NzM2NTI5YWYyNzIuYmFkM2E4OTAzNTBkNGE3OAogICAgIDIwNmJhYjdhZDk1NzE0ZWUuNGNmNzhkYjFmODVmOTM0ZC40NzgzM2U5OWFlYTkxNzkyLmIxMzFjZDliYzJiY2MxMTMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDc4MzNlOTlhZWE5MTc5Mi5iMTMxY2Q5YjAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQzYmQwMDAwNTI5YWYyNzIuODAwMDAwMDAzZjgwMDAwMAogICAgIGM2M2QxYmY2ZTRlMzU4NTcKLVZST1VORFNTXzB4MShtZW0pCitWUk9VTkRQU18xMjhfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgOWI4NDNiMWRiMTczZjA1OS4zNzc3ZjQ0MDczY2Q1Y2Y3LmNkNDViOGJiMzZlOTI0ZmYuNmMwYjNhZTQxNWE5ZTgxMgogICAgIDFlYjE1MWQxY2NiYzBhZDUuZWU2YjA1YWU2MzVhMDg1NC45ZGU1NDQ4YjA3ZDQ2NWY5LjQ0NjQ4OGE0NTZiMjBhY2IKQEAgLTMwMTI3LDEwICszMDEyNywxMCBAQAogICAgIDliODQzYjFkYjE3M2YwNTkuMzc3N2Y0NDA3M2NkNWNmNy5jZDQ1YjhiYjM2ZTkyNGZmLjZjMGIzYWU0MTVhOWU4MTIKICAgICAxZWIxNTFkMWNjYmMwYWQ1LmVlNmIwNWFlNjM1YTA4NTQuOWRlNTQ0OGIwN2Q0NjVmOS40NDY0ODhhNDU2YjIwYWNiCiAgICAgMmE4ZmRhZmM1MGM4NjNmOC5lNzBlNWEwYWU2ZDhiNDdlLjQ5OTFjNDFkNzMzZDQ3NDMuNzE4NjViNWIxZDI2NGViOQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NzgzM2U5OWFlYTkxNzkyLmIxMzFjZDliMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2Q0NWI4YmIzZjgwMDAwMC42YzBiM2FlNDNmODAwMDAwCiAgICAgMzU1NTgxNWZhNzgxMmNlNgogCi1WUk9VTkRTU18weDIocmVnKQorVlJPVU5EUFNfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDg2OTljYzg0YTM3ZjNlN2QuNGM5MjMyNmMwNDVmYzFlMi4wZjkxYmMzODE0ZDlmYWUzLmExM2Q5MDM3OGRiYWRkN2EKICAgICA5YWQ3OGM1MDkzMTk2MWY5LjFiNGVmOTg4NmQwMTNlMDEuZjYwOGMyZTJmNjc0MGQ3Ny4wNmQ1ZDU5NzczZTYwYWJlCkBAIC0zMDE0MSw5ICszMDE0MSw5IEBACiAgICAgODY5OWNjODRhMzdmM2U3ZC40YzkyMzI2YzA0NWZjMWUyLjBmOTFiYzM4MTRkOWZhZTMuYTEzZDkwMzc4ZGJhZGQ3YQogICAgIDlhZDc4YzUwOTMxOTYxZjkuMWI0ZWY5ODg2ZDAxM2UwMS5mNjA4YzJlMmY2NzQwZDc3LjA2ZDVkNTk3NzNlNjBhYmUKICAgICBjZTU5YmUyZjE0ZGFkMjA3LmUyZWMyMmNiYWY5N2VhNzcuOGU1ZWZiMmFkYjMwMTA4Ny5iNmE4ZmU2YTY1YzBjNzAyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhlNWVmYjJhZGIzMDEwODcuYjZhOGZlNmE3M2U2MGFiZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNjA4YzJlMmY2NzQwZDc3LjAwMDAwMDAwNzNlNjBhYmUKICAgICA2NjMzZWMxNWRhYjBlMzNlCi1WUk9VTkRTU18weDIobWVtKQorVlJPVU5EUFNfMTI4XzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIDFlODJhOWM1OTdkZWJhOGMuMDY1YzY0ZDYzNjAyOGQ4OC5jY2ZkOGM3YzJmZDBiZTE2LjQ2ZDhmNzQxMWQzY2Q0YzkKICAgICA5MjNkM2I5OGNlZTkxMjhiLmMzNzVkMTc2MTA4MTRmNTMuYTcwOWM0YzBhNThiNWU5Ny4xYzkzYjJlOGIxYTMwZTU0CkBAIC0zMDE1NCwxMCArMzAxNTQsMTAgQEAKICAgICAxZTgyYTljNTk3ZGViYThjLjA2NWM2NGQ2MzYwMjhkODguY2NmZDhjN2MyZmQwYmUxNi40NmQ4Zjc0MTFkM2NkNGM5CiAgICAgOTIzZDNiOThjZWU5MTI4Yi5jMzc1ZDE3NjEwODE0ZjUzLmE3MDljNGMwYTU4YjVlOTcuMWM5M2IyZThiMWEzMGU1NAogICAgIDljMmYxZDc5OWRkZmE2NjcuMGYwMzlmZDllYjU4NGU1Zi5lYTI2NGVkYzY1NmExZDFmLjE1NWM5MGRjYjg1ZDI3MGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGU1ZWZiMmFkYjMwMTA4Ny5iNmE4ZmU2YTNmODAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNjZmQ4YzdjMDAwMDAwMDAuNDZkOGY2MDAwMDAwMDAwMAogICAgIGRjNGNhNjVjOGRmM2U5YTkKIAotVlJPVU5EU1NfMHgyKHJlZykKK1ZST1VORFBTXzEyOF8weDMocmVnKQogICBiZWZvcmUKICAgICA2MzBiZDZiZjkzZTgwYWVhLmU2ZWNjMTE1NzJiYjc2NjQuYzdhYzRmOTkxMjNhZjdlZC4xY2M2NDk0ZDMxYzZlNmYyCiAgICAgN2IwODE5MjA3YzVmZmEwNi5kZDRmN2NhOGFmYjgyOGRkLmViNjEyOWNkOTU1ZjE4YzYuYzNlMWIyN2E3NTViNjk5NgpAQCAtMzAxNjgsOSArMzAxNjgsOSBAQAogICAgIDYzMGJkNmJmOTNlODBhZWEuZTZlY2MxMTU3MmJiNzY2NC5jN2FjNGY5OTEyM2FmN2VkLjFjYzY0OTRkMzFjNmU2ZjIKICAgICA3YjA4MTkyMDdjNWZmYTA2LmRkNGY3Y2E4YWZiODI4ZGQuZWI2MTI5Y2Q5NTVmMThjNi5jM2UxYjI3YTc1NWI2OTk2CiAgICAgODE5MDZiZTllM2UzZjZhYS5kYzE5NzZmOWY0Y2YwOGUzLjBmYmE1NDc1OGEwYjY3OTEuNDIzZTVkMmU3MzQ0ZmJmMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZmJhNTQ3NThhMGI2NzkxLjQyM2U1ZDJlNzU1YjY5OTYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWI2MTI5Y2Q4MDAwMDAwMC5jM2UxODAwMDc1NWI2OTk2CiAgICAgM2NlZDZhZTAwYjQyM2E3OAotVlJPVU5EU1NfMHgyKG1lbSkKK1ZST1VORFBTXzEyOF8weDMobWVtKQogICBiZWZvcmUKICAgICA2ZWQ3YzRiNWRkNzA2MGZlLmM4NzAyZDY4OWQ0MzAxMzkuNWQxNTFkODYwNDdkM2Q0NS5jNzhhOGVjZDM0Mjg3ZGFiCiAgICAgZTkzMzUwYzJkODIyODRlYi5jMTYxOTVmNTI3Mzc4ODdjLjk5ZGVjMDlhMDgyYzBiZjkuMTI5YTk1NTYyMmIyYmQ1MwpAQCAtMzAxODEsMTAgKzMwMTgxLDEwIEBACiAgICAgNmVkN2M0YjVkZDcwNjBmZS5jODcwMmQ2ODlkNDMwMTM5LjVkMTUxZDg2MDQ3ZDNkNDUuYzc4YThlY2QzNDI4N2RhYgogICAgIGU5MzM1MGMyZDgyMjg0ZWIuYzE2MTk1ZjUyNzM3ODg3Yy45OWRlYzA5YTA4MmMwYmY5LjEyOWE5NTU2MjJiMmJkNTMKICAgICA4OWNkOGFmMzE5NjU2NDZhLjE3MGNmYzliYTA2ODBiZjcuNGI0MDk0MWI4MzI1ZjVlYS5jZTdlZGQwMmYwZjMxYjljCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBmYmE1NDc1OGEwYjY3OTEuNDIzZTVkMmUzZjgwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZDE1MWQ4NjAwMDAwMDAwLmM3OGE4ZTgwMDAwMDAwMDAKICAgICAwNmY2MjA3MzllY2IxZmMzCiAKLVZST1VORFNTXzB4MihyZWcpCitWUk9VTkRQU18xMjhfMHgzKHJlZykKICAgYmVmb3JlCiAgICAgM2EyMTE0MTBiNjdiM2RmOS5hOWViZmE3MmRjY2I0MmQxLjRkYzNiOGUyY2ViM2Y0NDIuODRmYWJjMTk0ZjI1MTAzMAogICAgIDRkNTAzOTgxMWUxMTZhODAuZTAwNjI2OTc5NTA2YjkxMC5lNjY3MDQ1YmJhZTRkMjZjLmMzZWIwODZkZDg0NWI4ZGUKQEAgLTMwMTk1LDkgKzMwMTk1LDkgQEAKICAgICAzYTIxMTQxMGI2N2IzZGY5LmE5ZWJmYTcyZGNjYjQyZDEuNGRjM2I4ZTJjZWIzZjQ0Mi44NGZhYmMxOTRmMjUxMDMwCiAgICAgNGQ1MDM5ODExZTExNmE4MC5lMDA2MjY5Nzk1MDZiOTEwLmU2NjcwNDViYmFlNGQyNmMuYzNlYjA4NmRkODQ1YjhkZQogICAgIDlkZDE4YjMwNzMxYmUwMDUuYWM4ZmYyOTEwNDAyZGI5MS40Y2Y2NDA5ZTA1ODM5YzdjLmU5YTQ3NGRlNDhlMDZkNzkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGNmNjQwOWUwNTgzOWM3Yy5lOWE0NzRkZWQ4NDViOGRlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU2NjcwNDViODAwMDAwMDAuYzNlYjAwMDBkODQ1YjhkZQogICAgIDVhOWU5ZWNkNTBiM2VlMjUKLVZST1VORFNTXzB4MihtZW0pCitWUk9VTkRQU18xMjhfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgNWQ3NjUzMjExZjA0MzE4ZC42MGY1YTdmYzUyYjk5OWI4LjczMWI1MmIwNzM2YjEwMGMuZjIwNDc2MmUyNzM4ZTMwNQogICAgIGI3NDYxOTQzNDYwMDcxOTIuOGMzMDY4ZjExNDY1NTUzZS4yNmI2ZTBhZWFhZjA5YTVlLmVhMWI2ODUzMzU2N2Q4ZDQKQEAgLTMwMjA4LDEwICszMDIwOCwxMCBAQAogICAgIDVkNzY1MzIxMWYwNDMxOGQuNjBmNWE3ZmM1MmI5OTliOC43MzFiNTJiMDczNmIxMDBjLmYyMDQ3NjJlMjczOGUzMDUKICAgICBiNzQ2MTk0MzQ2MDA3MTkyLjhjMzA2OGYxMTQ2NTU1M2UuMjZiNmUwYWVhYWYwOWE1ZS5lYTFiNjg1MzM1NjdkOGQ0CiAgICAgNDRkYTZhMjBlMGIyNmE2MC42M2VjNDdkNTMyYjQ0YTcyLmRlZWZmYzMwMDc2NWJmYTIuMjA0ZDM4ZjIxMjMzYTgzYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40Y2Y2NDA5ZTA1ODM5YzdjLmU5YTQ3NGRlM2Y4MDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzMxYjUyYjA3MzZiMTAwYy5mMjA0NzYyZTAwMDAwMDAwCiAgICAgYjYzMjY4NGJhN2QzY2Q4MQogCi1WUk9VTkRTU18weDMocmVnKQorVlJPVU5EUFNfMTI4XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIGNlN2NiZWRkOTdiZjk4YjcuNjc3ZWEyYjdkZTY5NzYwNi44NjE3NGQxOWY1NmRkMTkyLmNjNmFjZjcwYTE1MWM5YjEKICAgICA5NDEyZTQ5OGM2NzkzMDM0LmI1MjY4MDRhN2I4NjAxMzUuOGExZDZiNTJkMWVlZGJkNi5iYjQ0N2UwNjE2ZGYyNmQ1CkBAIC0zMDIyMiw5ICszMDIyMiw5IEBACiAgICAgY2U3Y2JlZGQ5N2JmOThiNy42NzdlYTJiN2RlNjk3NjA2Ljg2MTc0ZDE5ZjU2ZGQxOTIuY2M2YWNmNzBhMTUxYzliMQogICAgIDk0MTJlNDk4YzY3OTMwMzQuYjUyNjgwNGE3Yjg2MDEzNS44YTFkNmI1MmQxZWVkYmQ2LmJiNDQ3ZTA2MTZkZjI2ZDUKICAgICA2NDNlZDVlOGNmOGNjZmE2LmE2YzFkYjQ2ZmI4OTM1ZGQuYTlkNDk3MmI3OTQyMGY3OC4xZmVjYWFkMDIwOGUwZTliCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE5ZDQ5NzJiNzk0MjBmNzguMWZlY2FhZDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMGQxZWVkYmQ2LjgwMDAwMDAwMDAwMDAwMDAKICAgICBiNmQ2NmZiMTY2N2M2ZWMwCi1WUk9VTkRTU18weDMobWVtKQorVlJPVU5EUFNfMTI4XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIGEwYWZmZTlmZDlkNDVlNzYuOTI4YjA4ZjhlMGVkMTUxMy5lMDA0ZjUyZTE1NzM4NjQ3LmFjODYwNjY4OWY5NmU0ODQKICAgICA3MDg3ZmM3MjUyN2NjODdmLmE4NDQ0MzhmMjE1NDMzNjcuZTI0M2FjZjFlNzcxMWM2MS40NzE4NDJhNjU1YWNmZDQ3CkBAIC0zMDIzNSwxMCArMzAyMzUsMTAgQEAKICAgICBhMGFmZmU5ZmQ5ZDQ1ZTc2LjkyOGIwOGY4ZTBlZDE1MTMuZTAwNGY1MmUxNTczODY0Ny5hYzg2MDY2ODlmOTZlNDg0CiAgICAgNzA4N2ZjNzI1MjdjYzg3Zi5hODQ0NDM4ZjIxNTQzMzY3LmUyNDNhY2YxZTc3MTFjNjEuNDcxODQyYTY1NWFjZmQ0NwogICAgIDAxMjhlNDE1ZWM4MDZhMDYuMzhjNDM5NmNhYzQ0NDk1ZS5mNmE1Y2ZjZjBkODY0YWE0LjZmOGE3YTMyNDdjNjJmMTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTlkNDk3MmI3OTQyMGY3OC4xZmVjYWFkMDgwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUwMDRmNTJlMDAwMDAwMDAuODAwMDAwMDA4MDAwMDAwMAogICAgIGQxNDJkNGU5NTEzNGQyOTAKIAotVlJPVU5EU1NfMHgzKHJlZykKK1ZST1VORFBTXzEyOF8weDQocmVnKQogICBiZWZvcmUKICAgICBjNDIwZWNlYWExYTBiYTkxLmQ1Zjg2MzdiZjRjZTQxNDAuMzU0ODQ2YTQxMWYxNGRlOC5jOTA3NGE4N2MzMjI2MjUzCiAgICAgYjQwZWYxZWI5ZDQwYWM1MC5kMGJmZjExNjliMzBlZTRjLjViZTQ1NWQ4MjRjNWIyZDIuM2U5ZDlhM2I4YmMyYzIxNwpAQCAtMzAyNDksOSArMzAyNDksOSBAQAogICAgIGM0MjBlY2VhYTFhMGJhOTEuZDVmODYzN2JmNGNlNDE0MC4zNTQ4NDZhNDExZjE0ZGU4LmM5MDc0YTg3YzMyMjYyNTMKICAgICBiNDBlZjFlYjlkNDBhYzUwLmQwYmZmMTE2OWIzMGVlNGMuNWJlNDU1ZDgyNGM1YjJkMi4zZTlkOWEzYjhiYzJjMjE3CiAgICAgZmI1OWUwNTdlMjllZTM3OC5mZDgwNWEzMWQzMWRjMjg1LjZhNzcxMDAxZjE1MmZmMTAuMzc4NzQ3YjgxN2E4YWNiNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42YTc3MTAwMWYxNTJmZjEwLjM3ODc0N2I4ODAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWJlNDU1ZDgwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwCiAgICAgMjE4N2E0YzJlODc3MDkyNwotVlJPVU5EU1NfMHgzKG1lbSkKK1ZST1VORFBTXzEyOF8weDQobWVtKQogICBiZWZvcmUKICAgICBjYTM1NGQyNjY2NzlmNDU2LjAxMzU2OTIxYjRjYTEzYjYuNTkxZWFhOTc2N2NlY2YzNC5iOGIyNzdlMjJhY2E0MDM3CiAgICAgNjc2NzQyMDQxOGYwNTkwZC43ODVmZmM1NjdhYWY4MzIzLjQwOTU4YWJiZmJhOTgwMDIuYWRmMTFiNzNjZWNiYWM3OApAQCAtMzAyNjIsMTAgKzMwMjYyLDEwIEBACiAgICAgY2EzNTRkMjY2Njc5ZjQ1Ni4wMTM1NjkyMWI0Y2ExM2I2LjU5MWVhYTk3NjdjZWNmMzQuYjhiMjc3ZTIyYWNhNDAzNwogICAgIDY3Njc0MjA0MThmMDU5MGQuNzg1ZmZjNTY3YWFmODMyMy40MDk1OGFiYmZiYTk4MDAyLmFkZjExYjczY2VjYmFjNzgKICAgICBkMmU4ZmY0ODE5ZWFmMjc5LmI3MTU2N2E2Zjk4MzI5YTkuYzkzNTM0MGU5MTQwNDdhZS5mZDU4NWJhODlkYjZmMGJjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZhNzcxMDAxZjE1MmZmMTAuMzc4NzQ3YjgwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41OTFlYWE5NzY3Y2VjZjM0LjgwMDAwMDAwMDAwMDAwMDAKICAgICAxYWM5OWJiMjJhNzhlZmZmCiAKLVZST1VORFNTXzB4MyhyZWcpCitWUk9VTkRQU18xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgOWY2Yzk1NWYyMDY3MjI1Ni44NjBhYzJiMjc5OTRiMjFmLmZkNThiYTQ4OGYyOTA3YjMuMmQyMmQ2ZjUzMWQzMDk1MgogICAgIGVmNjYxOTYwYjE2ZjFjNjEuODY0M2MwYjAxMTVkNTFiMC5iYzdkOWE3MmRmMTNiNjhlLmMwMDhjNjYxNzNlNzdkYTIKQEAgLTMwMjc2LDkgKzMwMjc2LDkgQEAKICAgICA5ZjZjOTU1ZjIwNjcyMjU2Ljg2MGFjMmIyNzk5NGIyMWYuZmQ1OGJhNDg4ZjI5MDdiMy4yZDIyZDZmNTMxZDMwOTUyCiAgICAgZWY2NjE5NjBiMTZmMWM2MS44NjQzYzBiMDExNWQ1MWIwLmJjN2Q5YTcyZGYxM2I2OGUuYzAwOGM2NjE3M2U3N2RhMgogICAgIDY0MDIyNTIzNzgxZDFiY2IuYzVmYzc3YzU2OGQ4MTVhNy5iMzVmNDI2NzU4MWQ4YjMzLjY0NDc3MWFkMjZlOGY3ODAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjM1ZjQyNjc1ODFkOGIzMy42NDQ3NzFhZDczZTc3ZGEyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwZGYxM2I2OGUuYzAwMDAwMDA3M2U3N2RhMgogICAgIDUwMDNlNDk1NTJkZWVmOTkKLVZST1VORFNTXzB4MyhtZW0pCitWUk9VTkRQU18xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgNGYxOGE2MDkwMmViZTUyYi4zMTU0YzI5YzE5OTgxMzZmLjcxMWRmY2UwYzQxNmZiNzEuYjk4OWRmNjIzMmJlOTc4YQogICAgIGNmYjcxMTBkOTQxNWQyZmMuNDBhMjRiMmEyYzdlODUwMC45NTFlYzJiZTAxZjA5NTlkLjdmNjljYjQwY2M2ZDQ1OTQKQEAgLTMwMjg5LDEwICszMDI4OSwxMCBAQAogICAgIDRmMThhNjA5MDJlYmU1MmIuMzE1NGMyOWMxOTk4MTM2Zi43MTFkZmNlMGM0MTZmYjcxLmI5ODlkZjYyMzJiZTk3OGEKICAgICBjZmI3MTEwZDk0MTVkMmZjLjQwYTI0YjJhMmM3ZTg1MDAuOTUxZWMyYmUwMWYwOTU5ZC43ZjY5Y2I0MGNjNmQ0NTk0CiAgICAgYWNhY2EzOGUyMzY4NzIzNy5lNWMyNGIyOWU1MzllYWEwLjY4Y2UzMjYzNmVhZDQ0ZGQuZWUzNjcwOTlmZTZjMDkxNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMzVmNDI2NzU4MWQ4YjMzLjY0NDc3MWFkMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzExZGZjZTBjNDE3MDAwMC44MDAwMDAwMDAwMDAwMDAwCiAgICAgMzRjN2Q3NmM5Yzg4YzIzYgogCi1WUk9VTkRTU18weDQocmVnKQorVlJPVU5EUFNfMjU2XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIGMyMjM5MGJmM2ZiYzJmMzMuZWRjNjI5YjNhOWI1Yjk5ZS42MmFhYTIyYmJhNWY4MGMwLjhiNmVmOGFmNDZmZGNmNGQKICAgICA2OTliZjIzY2ViNzFhMjU1LjA5ODUxNTJmZDhjOGQ5MjEuZjEwYmYwMDUwZmUyMjg5OC45M2Y1NDgyZWU5YTgyNGQzCkBAIC0zMDMwMyw5ICszMDMwMyw5IEBACiAgICAgYzIyMzkwYmYzZmJjMmYzMy5lZGM2MjliM2E5YjViOTllLjYyYWFhMjJiYmE1ZjgwYzAuOGI2ZWY4YWY0NmZkY2Y0ZAogICAgIDY5OWJmMjNjZWI3MWEyNTUuMDk4NTE1MmZkOGM4ZDkyMS5mMTBiZjAwNTBmZTIyODk4LjkzZjU0ODJlZTlhODI0ZDMKICAgICA4NDdkZmE1MTNjMzA1NzRjLmYyYzkxOGQ4NzUzNDliYmYuODY2ZWE2MDE3OTZhYjQyZi5iYTVkMzAyMzJiNjY3ZTFlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg2NmVhNjAxNzk2YWI0MmYuYmE1ZDMwMjNlOWE4MjRkMworICAgIDY5OWJmMjNjZWI3MWEyNTUuMDAwMDAwMDBkOGM4ZDkyMS5mMTBiZjAwNTAwMDAwMDAwLjgwMDAwMDAwZTlhODI0ZDMKICAgICBkNWZjYjkyMGZmNDkyZmIyCi1WUk9VTkRTU18weDQobWVtKQorVlJPVU5EUFNfMjU2XzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDgxY2I1MWZmYzg4NmZmNTIuODVhYWU4ZWYzYjAxNzU2Yi45YjEyNTA1ZTY3NDRmOGZhLjMyNmQzNjBiMDNiYjY4NGMKICAgICBiY2FhNzIwNWExMDVjNDY4LjIzOGVjNzUxMjEyYjU3ZWIuMTNiMDdkMTNmNTAxMGJmMC4wMWExMDlmMjU5OWMwNzI5CkBAIC0zMDMxNiwxMCArMzAzMTYsMTAgQEAKICAgICA4MWNiNTFmZmM4ODZmZjUyLjg1YWFlOGVmM2IwMTc1NmIuOWIxMjUwNWU2NzQ0ZjhmYS4zMjZkMzYwYjAzYmI2ODRjCiAgICAgYmNhYTcyMDVhMTA1YzQ2OC4yMzhlYzc1MTIxMmI1N2ViLjEzYjA3ZDEzZjUwMTBiZjAuMDFhMTA5ZjI1OTljMDcyOQogICAgIDYyNjU5NzFjYTRkMzM5MWUuYTYwYTNjZmExYjkwNmFmMS5jODAzYjBhNDVmNDZiMGIwLjQ2MDgzM2FhMzZiMTdhNzcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODY2ZWE2MDE3OTZhYjQyZi5iYTVkMzAyMzAwMDAwMDAwCisgICAgODAwMDAwMDBjODg2ZmY2MC44MDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwNjc0NGY4ZmEuMDAwMDAwMDAwMDAwMDAwMAogICAgIGEyOWU3ZDNkZjJhZGNjMTAKIAotVlJPVU5EU1NfMHg0KHJlZykKK1ZST1VORFBTXzI1Nl8weDAocmVnKQogICBiZWZvcmUKICAgICA3MTY1OTVmMDBiYWIyMmI0LjVmOWVkZTMyOWY4OTI2MWIuYzdmZWQ0ZDFiZDNjMTYzZC41OWZiMWEwYTNkOTlhMzQwCiAgICAgMjY5MGY0MjUxOTBlM2M3OC42ZGI0ZjcwOGNkOGExNWJiLjFkMGRmMGQ4OWQ5YjI3ZGMuZWMzODQ4YjdlOGJmNjk2OApAQCAtMzAzMzAsOSArMzAzMzAsOSBAQAogICAgIDcxNjU5NWYwMGJhYjIyYjQuNWY5ZWRlMzI5Zjg5MjYxYi5jN2ZlZDRkMWJkM2MxNjNkLjU5ZmIxYTBhM2Q5OWEzNDAKICAgICAyNjkwZjQyNTE5MGUzYzc4LjZkYjRmNzA4Y2Q4YTE1YmIuMWQwZGYwZDg5ZDliMjdkYy5lYzM4NDhiN2U4YmY2OTY4CiAgICAgMWQ2OTk3NDZiYTYyNTUwOC41N2Q2MDVhMDk3MDlhNWFjLmM3ZTY5MWQ1MDI2NTU5YjAuMmQ1YjZjZjFlMTlkYjEwYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jN2U2OTFkNTAyNjU1OWIwLjJkNWI2Y2YxZThiZjY5NjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjZkYjRmNzA4Y2Q4YTE1YmIuMDAwMDAwMDA4MDAwMDAwMC5lYzM4NDhiN2U4YmY2OTY4CiAgICAgMjY4Mjg3YjgyYmIzYmE2ZgotVlJPVU5EU1NfMHg0KG1lbSkKK1ZST1VORFBTXzI1Nl8weDAobWVtKQogICBiZWZvcmUKICAgICA5NTFlNzYxZWI0MDJmMjhhLjQwNTc5NTAwMjQwZjc4MzkuMmM2ZWVlYzY2ZGIyOTcyZS44ODIwNTQ2NWM4NmMxM2E5CiAgICAgMjJkMDRjYzBmYTNhOWRjZi4yNTA1ZTk3MTI0ODBmOTMzLmNlN2NjMDJkYjFmNDcyMTguNTYxYjZkZDA2MmMwMTIyNQpAQCAtMzAzNDMsMTAgKzMwMzQzLDEwIEBACiAgICAgOTUxZTc2MWViNDAyZjI4YS40MDU3OTUwMDI0MGY3ODM5LjJjNmVlZWM2NmRiMjk3MmUuODgyMDU0NjVjODZjMTNhOQogICAgIDIyZDA0Y2MwZmEzYTlkY2YuMjUwNWU5NzEyNDgwZjkzMy5jZTdjYzAyZGIxZjQ3MjE4LjU2MWI2ZGQwNjJjMDEyMjUKICAgICBhNzY0ODM4YTFhNjY3NzZhLmJjOTE3MDdmMjcxMjY5YTkuYmNjNTc3MDUwMWU1ZGQwMy5lOTBlZmJlMWYwYjAyMzg4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM3ZTY5MWQ1MDI2NTU5YjAuMmQ1YjZjZjFjODZjMTNjMAorICAgIDgwMDAwMDAwODAwMDAwMDAuNDA0MDAwMDAwMDAwMDAwMC4wMDAwMDAwMDZkYjI5NzJlLjgwMDAwMDAwYzg2YzEzYzAKICAgICBjOTEwNjdhYTVhOTE2YmFlCiAKLVZST1VORFNTXzB4NChyZWcpCitWUk9VTkRQU18yNTZfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgY2ZiNjNjMzk2ZDliMTljOS4wZTYyMDg0NjU2Y2JhNzU1LjZmNzYwODIyYTVjOTBhYjcuZTgzYzgxYmMzMzAwNTU4YQogICAgIDA5ODQ3NzFmZTU3MGM5N2EuYTY2MzRlMTBhYjFjNzVmYy40NDY3MTE4ZjU3MDdiMWE4LmRlMDFjZDczNGQ0NGRhN2UKQEAgLTMwMzU3LDkgKzMwMzU3LDkgQEAKICAgICBjZmI2M2MzOTZkOWIxOWM5LjBlNjIwODQ2NTZjYmE3NTUuNmY3NjA4MjJhNWM5MGFiNy5lODNjODFiYzMzMDA1NThhCiAgICAgMDk4NDc3MWZlNTcwYzk3YS5hNjYzNGUxMGFiMWM3NWZjLjQ0NjcxMThmNTcwN2IxYTguZGUwMWNkNzM0ZDQ0ZGE3ZQogICAgIGQzYzgxM2M4NWU5Y2I3NmMuYTg3NmU3YjI0ODkyNjJhYS4zYjY3M2Q0OTdjOTYzOWM0LjkwMzJlZDRiZTM2NmUwMjQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2I2NzNkNDk3Yzk2MzljNC45MDMyZWQ0YjRkNDRkYTdlCisgICAgMDAwMDAwMDBlNTcwYzk3YS44MDAwMDAwMDgwMDAwMDAwLjQ0NjcwMDAwNTcwN2IxYTguZGUwMWNkNzM0ZDQ0ZGE3ZQogICAgIDk0MDc5OTEzZjA3NDVlMzAKLVZST1VORFNTXzB4NChtZW0pCitWUk9VTkRQU18yNTZfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgOWU0MzFkZGFhMDc5NGVlZS44N2RlNjAxNGMwMmIzY2M2LjU1MDNmZTJmZDAxYTg3Y2EuZmVjM2VmNTQ4ZGQ5ZDcyZgogICAgIGQ0MWM2NTczM2M4Y2FlMGUuMjk0ODA3OGZlMmE2NGI4NS5iYTEzNzVlMmYzNDQzODkzLjgyYjc2ZDdlYjFhNDY1ZDYKQEAgLTMwMzcwLDEwICszMDM3MCwxMCBAQAogICAgIDllNDMxZGRhYTA3OTRlZWUuODdkZTYwMTRjMDJiM2NjNi41NTAzZmUyZmQwMWE4N2NhLmZlYzNlZjU0OGRkOWQ3MmYKICAgICBkNDFjNjU3MzNjOGNhZTBlLjI5NDgwNzhmZTJhNjRiODUuYmExMzc1ZTJmMzQ0Mzg5My44MmI3NmQ3ZWIxYTQ2NWQ2CiAgICAgMTA1Y2VlY2JkZmJhM2NiYS5jYjU3MDA3Yzc1YTc4NzM2LmY3NjYyZTFjY2VjM2Y4MTQuOTllYWZlYTRiOGYxYzM1OAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYjY3M2Q0OTdjOTYzOWM0LjkwMzJlZDRiODAwMDAwMDAKKyAgICA4MDAwMDAwMDgwMDAwMDAwLjgwMDAwMDAwYzA0MDAwMDAuNTUwM2ZlMmZkMDFhODdjYS5mZWMzZWY1NDgwMDAwMDAwCiAgICAgZWIzZDRhOTlkZDNlZGZhMAogCi1WUk9VTkRTU18weDUocmVnKQorVlJPVU5EUFNfMjU2XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIGUwZjVmYzNlMzM1NzE1YmQuMGQ0NGIwNjNhYjk0Y2Q2OC43Zjk0ZDY2MTViNzE3YTFjLjZkMDE1N2RhMjJlZTkzZTgKICAgICBkNjFiYjI5MWRiMjEwYTY2Ljg3ODNlMjdkMGM1ODQ5YzIuNDk1OWFiMzBlNzUxYThhOS41ZGUxYmYzNWQyYjFlNzk0CkBAIC0zMDM4NCw5ICszMDM4NCw5IEBACiAgICAgZTBmNWZjM2UzMzU3MTViZC4wZDQ0YjA2M2FiOTRjZDY4LjdmOTRkNjYxNWI3MTdhMWMuNmQwMTU3ZGEyMmVlOTNlOAogICAgIGQ2MWJiMjkxZGIyMTBhNjYuODc4M2UyN2QwYzU4NDljMi40OTU5YWIzMGU3NTFhOGE5LjVkZTFiZjM1ZDJiMWU3OTQKICAgICAyYmZkNjdmZDcyMjhmYjQ3Ljc3NWI0MzA0ZTU2N2UxNTguODNmNGMxMjE1M2U4ZjNkOS45NjMzNTljOGFjZmEzOWE3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgzZjRjMTIxNTNlOGYzZDkuOTYzMzU5YzhkMmIxZTc5NAorICAgIGQ2MWJiMjkxZGIyMTBhNjYuYmY4MDAwMDAwMDAwMDAwMC40OTU5YWIzMGU3NTFhOGE5LjVkZTFiZjM1ZDJiMWU3OTQKICAgICA1MzVkMTQ0NjRiNDdjYWIwCi1WUk9VTkRTU18weDUobWVtKQorVlJPVU5EUFNfMjU2XzB4MShtZW0pCiAgIGJlZm9yZQogICAgIDkwY2QyYzBhNDk2NDgxZmUuNWQyMGJmZDFkYzFmYzA1ZS4yYzAxODcwZTZkOTQ1OGViLmI2ZDdhMTFmM2Q2Y2QzY2MKICAgICA4NWRlNjdiNWUxMzYyNjYzLmYzZmE1YTEwZTYyNjBjZWQuYTk2ODYyNjg1NGNhYWUzZi42OGI4NjIwMmYzNzFlMGU4CkBAIC0zMDM5NywxMCArMzAzOTcsMTAgQEAKICAgICA5MGNkMmMwYTQ5NjQ4MWZlLjVkMjBiZmQxZGMxZmMwNWUuMmMwMTg3MGU2ZDk0NThlYi5iNmQ3YTExZjNkNmNkM2NjCiAgICAgODVkZTY3YjVlMTM2MjY2My5mM2ZhNWExMGU2MjYwY2VkLmE5Njg2MjY4NTRjYWFlM2YuNjhiODYyMDJmMzcxZTBlOAogICAgIDBmNWQ0MDM1MmVjODc2MGIuNThiZWU0MTg0ZjliNDM2NC4wZDk3NWNlMDIzN2ExMTgwLmZhOWU1NWI4Zjk1ZWZhNTUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODNmNGMxMjE1M2U4ZjNkOS45NjMzNTljODAwMDAwMDAwCisgICAgYmY4MDAwMDA0OTY0ODFmMC41ZDIwYmZkMWRjMWZjMDVlLjAwMDAwMDAwNmQ5NDU4ZWIuYmY4MDAwMDAwMDAwMDAwMAogICAgIDJkYThiZTRlNjcxZDQ4ZDUKIAotVlJPVU5EU1NfMHg1KHJlZykKK1ZST1VORFBTXzI1Nl8weDEocmVnKQogICBiZWZvcmUKICAgICA4NzY0MmQwNjA3MDhmNDNmLjUyZDZiZDYwNTg1ZDA3ZDIuZmEzOGI1MzRhY2ZjNjZiOS5mYTdkYTJkYWU3NzllZTc3CiAgICAgMzA1NmJkNDA2NzBhOWRhYi5jMzY2NTllNDZkNzdiZjQ5LmYwODZmNTIwZDkwMWM5ZWUuM2JjYmU1MzQxNGUxZGY4NgpAQCAtMzA0MTEsOSArMzA0MTEsOSBAQAogICAgIDg3NjQyZDA2MDcwOGY0M2YuNTJkNmJkNjA1ODVkMDdkMi5mYTM4YjUzNGFjZmM2NmI5LmZhN2RhMmRhZTc3OWVlNzcKICAgICAzMDU2YmQ0MDY3MGE5ZGFiLmMzNjY1OWU0NmQ3N2JmNDkuZjA4NmY1MjBkOTAxYzllZS4zYmNiZTUzNDE0ZTFkZjg2CiAgICAgODZjODY5NmEyM2FmODBjNS4zOTk1ODNlY2E4ODMxMmIzLjI0ZWUxNDg1ZDRhMzA4YmMuZDMxMTM4NWM5OGYyY2QzMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNGVlMTQ4NWQ0YTMwOGJjLmQzMTEzODVjMDAwMDAwMDAKKyAgICAwMDAwMDAwMDY3MGE5ZGFiLmMzNjcwMDAwNmQ3N2JmNDkuZjA4NmY1MjBkOTAxYzllZS4wMDAwMDAwMDAwMDAwMDAwCiAgICAgNzhiNTAwYzcxODQ1OTAwZAotVlJPVU5EU1NfMHg1KG1lbSkKK1ZST1VORFBTXzI1Nl8weDEobWVtKQogICBiZWZvcmUKICAgICAzZGFiNmNlMjRiOWRkYzk2LmE1NWUwYjNiMjIxM2UzYjEuYTRmYzcyMzhmZTlhNzgwZi5iNjNlZGY2OWE1ZWYwOGNkCiAgICAgYzljOWQ4N2I0NWQwMTU2Yy4yNzFiZjhiYTljZWJkYmRiLjUwY2MyZTU0NTFiZjAzNTguY2NiZjgzYzFiM2IxNDI2OQpAQCAtMzA0MjQsMTAgKzMwNDI0LDEwIEBACiAgICAgM2RhYjZjZTI0YjlkZGM5Ni5hNTVlMGIzYjIyMTNlM2IxLmE0ZmM3MjM4ZmU5YTc4MGYuYjYzZWRmNjlhNWVmMDhjZAogICAgIGM5YzlkODdiNDVkMDE1NmMuMjcxYmY4YmE5Y2ViZGJkYi41MGNjMmU1NDUxYmYwMzU4LmNjYmY4M2MxYjNiMTQyNjkKICAgICBmOGRhYzE3ZTIzZWFmN2JhLmM0ODhmMWQ4ZTI5NWZkNjMuNzI2YTY5YTQzYTAzMTk0NS45MDhhZjc0M2ZmNDE0NzRjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI0ZWUxNDg1ZDRhMzA4YmMuZDMxMTM4NWM4MDAwMDAwMAorICAgIDAwMDAwMDAwNGI5ZGRjOTYuYmY4MDAwMDAwMDAwMDAwMC5iZjgwMDAwMGZlOWE3ODBmLmJmODAwMDAwYmY4MDAwMDAKICAgICA5MjMyM2M3MGM0ZjhhNjlhCiAKLVZST1VORFNTXzB4NShyZWcpCitWUk9VTkRQU18yNTZfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgODhhNjA1ZjU3NDM3NzY1ZC5hZTA5ZjY3MmY5ZmZhNDcwLmMzYTVmZGEyNDQ5NGFlM2IuODU0MDRhOTEzYzFlZDViNQogICAgIDliOTU4ZTUyZDM3NDAzMTcuZWViZTNiM2IyOTE0ZTgzMC5kY2VkMDYyNTk4MDFiNWU0LjJkMGZlNzA2OGQwYmYzOTEKQEAgLTMwNDM4LDkgKzMwNDM4LDkgQEAKICAgICA4OGE2MDVmNTc0Mzc3NjVkLmFlMDlmNjcyZjlmZmE0NzAuYzNhNWZkYTI0NDk0YWUzYi44NTQwNGE5MTNjMWVkNWI1CiAgICAgOWI5NThlNTJkMzc0MDMxNy5lZWJlM2IzYjI5MTRlODMwLmRjZWQwNjI1OTgwMWI1ZTQuMmQwZmU3MDY4ZDBiZjM5MQogICAgIDI5NGFkMmY1N2MzYTg3NzQuNDE5NmVkMWVhZDNlYzQxOC44MTE2MGRmODI4NzFkNjlhLmJiZGRmMzVlZTM0OThiYzAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODExNjBkZjgyODcxZDY5YS5iYmRkZjM1ZTgwMDAwMDAwCisgICAgYmY4MDAwMDBkMzc0MDMxNy5lZWJlM2IzYjAwMDAwMDAwLmRjZWQwNjI1YmY4MDAwMDAuMDAwMDAwMDBiZjgwMDAwMAogICAgIGY1YTE0NTZjMTFlNzFkYzUKLVZST1VORFNTXzB4NShtZW0pCitWUk9VTkRQU18yNTZfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgNWEzMDgzZjkyMDVlOGVmNC4yMzNhN2JiOTFkOTI2NmNhLjhmZTQ4NGUyMWYwNzM4MTMuZTAzYTAyM2E2ZThiNTVkZgogICAgIDE0ZWQyMDFhYTQ1NTY5MjUuNDYwZGQ4YjM0ZTNkMzkxYS40MmYwNjI5YzQ1YmM0NjdkLjUxY2RlODgyNWM0ZDJhYzYKQEAgLTMwNDUxLDEwICszMDQ1MSwxMCBAQAogICAgIDVhMzA4M2Y5MjA1ZThlZjQuMjMzYTdiYjkxZDkyNjZjYS44ZmU0ODRlMjFmMDczODEzLmUwM2EwMjNhNmU4YjU1ZGYKICAgICAxNGVkMjAxYWE0NTU2OTI1LjQ2MGRkOGIzNGUzZDM5MWEuNDJmMDYyOWM0NWJjNDY3ZC41MWNkZTg4MjVjNGQyYWM2CiAgICAgZmVhNDk3YmJiYWQ5NmI4NS41NGQ2ZTFhMjM5YTBmNGJlLjc5NTA5YzIwMmZiOWRlYzAuYmU3MWJjYzlmNjQzMGE2YgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MTE2MGRmODI4NzFkNjlhLmJiZGRmMzVlNmU4YjU1ZGYKKyAgICA1YTMwODNmOTAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmY4MDAwMDAwMDAwMDAwMC5lMDNhMDIzYTZlOGI1NWRmCiAgICAgZmQxYzFhMDRhMGY3ZDY5ZAogCi1WUk9VTkRTRF8weDAocmVnKQorVlJPVU5EUFNfMjU2XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDg2YmI5ZWQwZTdjZjNiODIuZDYyZTAzMmQwYWI1ZDQ4MC45ZDdjZTQwZmFlYzMxMWIxLmRmM2MxNTM1YmRiNDk3ODAKICAgICA3YjlhZmU0YzRiMDk5YWQ1LjdjOWJmMWQ3N2MyNmIzNzMuOTFmMmQ2NjU3MDliZWI1OC5jNjYwNGM5Zjk5Y2IzMDU0CkBAIC0zMDQ2NSw5ICszMDQ2NSw5IEBACiAgICAgODZiYjllZDBlN2NmM2I4Mi5kNjJlMDMyZDBhYjVkNDgwLjlkN2NlNDBmYWVjMzExYjEuZGYzYzE1MzViZGI0OTc4MAogICAgIDdiOWFmZTRjNGIwOTlhZDUuN2M5YmYxZDc3YzI2YjM3My45MWYyZDY2NTcwOWJlYjU4LmM2NjA0YzlmOTljYjMwNTQKICAgICAzODA3MzhlMjY4MzQyZTQyLmMyMzFhOGIwZjA1M2E4NDUuZGU4ZTY0NjE1ZDVjOWQwMi5hMTA4Y2Y4M2E4NTg0M2IyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRlOGU2NDYxNWQ1YzlkMDIuYzY2MDRjOWY5OWNiMzA1NAorICAgIDdiOWFmZTRjNGIwOTlhZDUuN2M5YmYxZDc3YzI2YjM3My44MDAwMDAwMDcwOWJlYjU4LmM2NjA0YzAwODAwMDAwMDAKICAgICA5ZjEyYWE2OWQyMDZjMWI2Ci1WUk9VTkRTRF8weDAobWVtKQorVlJPVU5EUFNfMjU2XzB4MihtZW0pCiAgIGJlZm9yZQogICAgIDdhMGRmYTQzMjQzZmE2YjUuN2FiNjI3MTAzYTg2ZTcxOC5hMjBhNjZhMzRjMTJjNjM1LmY3NmM0MWY3MjZjYTc4MTEKICAgICBiOGJjODY0NzE5MWVmM2VkLmI3OTFkNDgwMjhjNjg1ZDkuZjNlNjY1OTU2Y2JkNjhhYi43YjQ1ODg2OTNhOGYxOWNlCkBAIC0zMDQ3OCwxMCArMzA0NzgsMTAgQEAKICAgICA3YTBkZmE0MzI0M2ZhNmI1LjdhYjYyNzEwM2E4NmU3MTguYTIwYTY2YTM0YzEyYzYzNS5mNzZjNDFmNzI2Y2E3ODExCiAgICAgYjhiYzg2NDcxOTFlZjNlZC5iNzkxZDQ4MDI4YzY4NWQ5LmYzZTY2NTk1NmNiZDY4YWIuN2I0NTg4NjkzYThmMTljZQogICAgIDM1ZWJjYTYyY2VhZjY1ODkuMmIyOTRhYmEzZTI1NDg2NC41NTFiMWQ2N2ZlNTMxMGIwLmM4NzQ1YTMxZTk2ZDgyM2YKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGU4ZTY0NjE1ZDVjOWQwMi5mNzZjNDFmNzI2Y2E3ODExCisgICAgN2EwZGZhNDMzZjgwMDAwMC43YWI2MjcxMDNmODAwMDAwLjgwMDAwMDAwNGMxMmM2MzUuZjc2YzQxZjczZjgwMDAwMAogICAgIDMxMDk5MTcwODVhNjliZWIKIAotVlJPVU5EU0RfMHgwKHJlZykKK1ZST1VORFBTXzI1Nl8weDIocmVnKQogICBiZWZvcmUKICAgICAwNDA1ZWRiZmFiMThjMjdmLjVkZjg2Yjg5ZTYxOGE3OWYuMmRiZjgzNDE1NTcyMmY4Ny5iZGMzYWQ1YmU1NzU2NDE0CiAgICAgMTI4OGM0MTNkY2Q0YTI3Ni5iZjZmYzA2ZTgxMDhlZjcxLjcyNTUzZDY1OGM3OGNjNzcuN2FjZTdjNTU3NDE5ODhjYwpAQCAtMzA0OTIsOSArMzA0OTIsOSBAQAogICAgIDA0MDVlZGJmYWIxOGMyN2YuNWRmODZiODllNjE4YTc5Zi4yZGJmODM0MTU1NzIyZjg3LmJkYzNhZDViZTU3NTY0MTQKICAgICAxMjg4YzQxM2RjZDRhMjc2LmJmNmZjMDZlODEwOGVmNzEuNzI1NTNkNjU4Yzc4Y2M3Ny43YWNlN2M1NTc0MTk4OGNjCiAgICAgYjVkZTEzZDhiMzY1NzU3Yy5kMDk1YmQxODRjZGI0YzU4LjVmZDhiMTA0NWRjZDdkZTAuYjg2M2Y2ZGZlM2Q5YTNjMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ZmQ4YjEwNDVkY2Q3ZGUwLjdhY2U3YzU1NzQxOTg4Y2MKKyAgICAzZjgwMDAwMGRjZDRhMjc2LjgwMDAwMDAwODAwMDAwMDAuNzI1NTNkNjU4MDAwMDAwMC43YWNlN2M1NTc0MTk4OGNjCiAgICAgMjc1YWQ4NTRkNmRkYWQxZAotVlJPVU5EU0RfMHgwKG1lbSkKK1ZST1VORFBTXzI1Nl8weDIobWVtKQogICBiZWZvcmUKICAgICAxMDU0MzgxNzkyM2ExNGQ3LjJkMzMwNTY2YzQzN2U3NjguNmYyMWEwNzBlMDU3MzMxMy5hMGQ1YjM2NDM3OTQxM2QwCiAgICAgZWEwOTMyMTlhMGU0NjI4MC5iYWM5YTEwNjM2OTBmZWE2LmI1MWY3ZWY1ZTExOTM2M2YuYWRlNjNhZmM3ODFmNmVhZQpAQCAtMzA1MDUsMTAgKzMwNTA1LDEwIEBACiAgICAgMTA1NDM4MTc5MjNhMTRkNy4yZDMzMDU2NmM0MzdlNzY4LjZmMjFhMDcwZTA1NzMzMTMuYTBkNWIzNjQzNzk0MTNkMAogICAgIGVhMDkzMjE5YTBlNDYyODAuYmFjOWExMDYzNjkwZmVhNi5iNTFmN2VmNWUxMTkzNjNmLmFkZTYzYWZjNzgxZjZlYWUKICAgICA5MTQzNDM0ODFiZTU1MjQ0LjRlNjNhNWM4YmZlZWY4YTMuMWFmY2Y0ZjA4MmVkM2UzMC5kMjE1NmFjMGMyMjljZmI1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVmZDhiMTA0NWRjZDdkZTAuODAwMDAwMDAwMDAwMDAwMAorICAgIDNmODAwMDAwODAwMDAwMDAuM2Y4MDAwMDBjNDM3YzAwMC42ZjIxYTA3MGUwNTczMzEzLjgwMDAwMDAwM2Y4MDAwMDAKICAgICBkM2Y4Yjc3OGUwZWM5MWYyCiAKLVZST1VORFNEXzB4MChyZWcpCitWUk9VTkRQU18yNTZfMHgyKHJlZykKICAgYmVmb3JlCiAgICAgNjc0NWNiNDVlY2JjNmI3ZS5iNjc4OTZkYWM5MjEwYmNjLmY2Y2VkMTVlODRlYjg3OGIuYjE4Nzk4ZjkxMWZiNGIxMAogICAgIDg0ZGY3OGVkNzAzYzNiZTQuZWMwY2QyMTUzNDc0NGNlNy5jMzM4ZjIwYmY5YTE5NWNmLjliY2NiZmRmMzg0ZWM5NTcKQEAgLTMwNTE5LDkgKzMwNTE5LDkgQEAKICAgICA2NzQ1Y2I0NWVjYmM2YjdlLmI2Nzg5NmRhYzkyMTBiY2MuZjZjZWQxNWU4NGViODc4Yi5iMTg3OThmOTExZmI0YjEwCiAgICAgODRkZjc4ZWQ3MDNjM2JlNC5lYzBjZDIxNTM0NzQ0Y2U3LmMzMzhmMjBiZjlhMTk1Y2YuOWJjY2JmZGYzODRlYzk1NwogICAgIDg0MTJiYWRjMDhmNzNjZDAuNWY1NTEzMmM3ZDRmMWZjZC4wNmQ1NmE4OWYzOGQ3NjgzLjE0MjE2ZWVhNmZlNDNjMTIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDZkNTZhODlmMzhkNzY4My44MDAwMDAwMDAwMDAwMDAwCisgICAgODAwMDAwMDA3MDNjM2JlNC5lYzBjZDIxNTNmODAwMDAwLmMzMzgwMDAwZjlhMTk1Y2YuODAwMDAwMDAzZjgwMDAwMAogICAgIDIzMmE1NDIzN2EwNWVmOTcKLVZST1VORFNEXzB4MChtZW0pCitWUk9VTkRQU18yNTZfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgNzE3Nzg0Mjk4N2FhYTdiOC5hMTcyZWUzZmU2NGZjNGU4LjZjMzk5ODllMTdjZTZlYTkuNWVkNzUxYThlYzM1YTNlOAogICAgIGJlMDMyYjA1MTRjMDQ1ZmUuNzYzN2Q4OGI2NDA0YzM2ZC5iZTZjZDVkMmEwOGE2MmY3LjJiZDRiNzIxMjIwODY3ZjIKQEAgLTMwNTMyLDEwICszMDUzMiwxMCBAQAogICAgIDcxNzc4NDI5ODdhYWE3YjguYTE3MmVlM2ZlNjRmYzRlOC42YzM5OTg5ZTE3Y2U2ZWE5LjVlZDc1MWE4ZWMzNWEzZTgKICAgICBiZTAzMmIwNTE0YzA0NWZlLjc2MzdkODhiNjQwNGMzNmQuYmU2Y2Q1ZDJhMDhhNjJmNy4yYmQ0YjcyMTIyMDg2N2YyCiAgICAgZTU5YmM3YTMzYjU1ODM5NC45ZWM1NDhjZjY3MjRlMzI3LmJjODUwNzkxNzZmZWQ4YzAuZGUzNDY0MWI0ZjQyZWYxYwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNmQ1NmE4OWYzOGQ3NjgzLjVlZDc1MWE4ZWMzNWEzZTgKKyAgICA3MTc3ODQyOTgwMDAwMDAwLjgwMDAwMDAwZTY0ZmM0ZTguNmMzOTk4OWUzZjgwMDAwMC41ZWQ3NTFhOGVjMzVhM2U4CiAgICAgNjU0ZDg0NDNmYzE0M2E3ZQogCi1WUk9VTkRTRF8weDEocmVnKQorVlJPVU5EUFNfMjU2XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGYyOWVlZTQ5YjRjNTc1MGYuMzYxZmNjZDVjZDJhZDE2Mi41YjZjYTZlYjY5ZDc3OWVjLjMxOTgzZTY0N2M0MDNkNzEKICAgICBkNTgxOTA4MGQyMGM2NDZmLjE2YTMyYzQyNzA4MzVhZjMuYTcxYzhkOWJhMDgxNjc0ZS41ZTJhM2I1MGUzMjVhM2IxCkBAIC0zMDU0Niw5ICszMDU0Niw5IEBACiAgICAgZjI5ZWVlNDliNGM1NzUwZi4zNjFmY2NkNWNkMmFkMTYyLjViNmNhNmViNjlkNzc5ZWMuMzE5ODNlNjQ3YzQwM2Q3MQogICAgIGQ1ODE5MDgwZDIwYzY0NmYuMTZhMzJjNDI3MDgzNWFmMy5hNzFjOGQ5YmEwODE2NzRlLjVlMmEzYjUwZTMyNWEzYjEKICAgICA2YTQ0NjY1M2YzNzM0MzRiLjQyNjI3MTIwMWQ4OTczODMuYjdjNmU5ZjNjZGM3NjY5Ny5hOWQyMWU3ODA3ZjM3YzFjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI3YzZlOWYzY2RjNzY2OTcuNWUyYTNiNTBlMzI1YTNiMQorICAgIGQ1ODE5MDgwZDIwYzY0NmYuMDAwMDAwMDA3MDgzNWFmMy44MDAwMDAwMDgwMDAwMDAwLjVlMmEzYjUwZTMyNWEzYjEKICAgICAwNTk0ODcyY2Y5Nzg3NzIyCi1WUk9VTkRTRF8weDEobWVtKQorVlJPVU5EUFNfMjU2XzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIGNmNDYwNTkwZmU0NjEwMTQuMTk5NTlhODJhY2Q3YmYyNS5lYWM1OTdlMzBiZDE0NzU2Ljk0MzNmMTQ4NzI1NDg5ODgKICAgICAyNTNkNTllMDMwMmQwY2UyLmVjYmNmMWI1N2RlYmQ1N2MuMWYwMDcxYTA4MzJhN2FmMS4xODhmOTUxZDI0YjQyNjhhCkBAIC0zMDU1OSwxMCArMzA1NTksMTAgQEAKICAgICBjZjQ2MDU5MGZlNDYxMDE0LjE5OTU5YTgyYWNkN2JmMjUuZWFjNTk3ZTMwYmQxNDc1Ni45NDMzZjE0ODcyNTQ4OTg4CiAgICAgMjUzZDU5ZTAzMDJkMGNlMi5lY2JjZjFiNTdkZWJkNTdjLjFmMDA3MWEwODMyYTdhZjEuMTg4Zjk1MWQyNGI0MjY4YQogICAgIGU1NDYwMDA4YWMzOTI3YjYuZTBmMTZiMzVjMDUwY2FmZS4wZWE3MWU3Zjc3NjIyZTNjLmQwMTQ5ZDQ5M2FkZmM0MjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjdjNmU5ZjNjZGM3NjY5Ny5iZmYwMDAwMDAwMDAwMDAwCisgICAgY2Y0NjA1OTBmZTQ2MTAxNC4wMDAwMDAwMDgwMDAwMDAwLmVhYzU5N2UzMDAwMDAwMDAuODAwMDAwMDA3MjU0ODk4OAogICAgIDRjYzhjZjU2MDRjN2Y1YmYKIAotVlJPVU5EU0RfMHgxKHJlZykKK1ZST1VORFBTXzI1Nl8weDMocmVnKQogICBiZWZvcmUKICAgICBjODkwZjAxMGVmOWMwMDFmLjBlYmYzMzkxZjBlZGE4MjEuOWZiYWI5Y2QwZDNmNDQzNS44ZTY4ZTY1MjQwOWMwODk0CiAgICAgZThiMDY2ZDBhZjZjZmRjNC4zMWM1YjhjYWYwYWQ4NzExLjIyZTQ4NGJjNGZlMDQxNDIuZDYxYmY5MWY0ZWI3YTZmOQpAQCAtMzA1NzMsOSArMzA1NzMsOSBAQAogICAgIGM4OTBmMDEwZWY5YzAwMWYuMGViZjMzOTFmMGVkYTgyMS45ZmJhYjljZDBkM2Y0NDM1LjhlNjhlNjUyNDA5YzA4OTQKICAgICBlOGIwNjZkMGFmNmNmZGM0LjMxYzViOGNhZjBhZDg3MTEuMjJlNDg0YmM0ZmUwNDE0Mi5kNjFiZjkxZjRlYjdhNmY5CiAgICAgMDg3NTJkMDRlMGM0Mjg1YS4yYzBlN2Y4YmFhYzI3NWI3LjM2NGQ2M2E5NzQwMzBkMmEuNGE2OWNmYmU0OGUwYjRiZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNjRkNjNhOTc0MDMwZDJhLmQ2MWJmOTFmNGViN2E2ZjkKKyAgICBlOGIwNjZkMDgwMDAwMDAwLjAwMDAwMDAwZjBhZDg3MTEuMDAwMDAwMDA0ZmUwNDE0Mi5kNjFiZjkxZjRlYjdhNmY5CiAgICAgMjEwOWI5MjM2ZDhlMTQxYgotVlJPVU5EU0RfMHgxKG1lbSkKK1ZST1VORFBTXzI1Nl8weDMobWVtKQogICBiZWZvcmUKICAgICAzZWYzYzRjMGQxMmFkZDBhLmI4MWQ5Zjc0MDIzYWY2MGQuMWU5NWM0NTRiYTE5NmNkNy44NTBjNGIyOWQ0ZmMwNTNlCiAgICAgZjVhODg0ZTA5MDA0MDYwYS4wMDk5NDE4OTJjNzAxMjgwLmNjNmIzYTM1NDg3M2VlYTkuNzdmOTRjOTU0OWVhYThjMQpAQCAtMzA1ODYsMTAgKzMwNTg2LDEwIEBACiAgICAgM2VmM2M0YzBkMTJhZGQwYS5iODFkOWY3NDAyM2FmNjBkLjFlOTVjNDU0YmExOTZjZDcuODUwYzRiMjlkNGZjMDUzZQogICAgIGY1YTg4NGUwOTAwNDA2MGEuMDA5OTQxODkyYzcwMTI4MC5jYzZiM2EzNTQ4NzNlZWE5Ljc3Zjk0Yzk1NDllYWE4YzEKICAgICAyM2Y2NzM2ZWM3Mjk0ZDQ2LmI3ZTkyNWMxMzY1ZDRjOTYuYzNiM2UyNGVmZjUxNmVlMi42YzU2NGZhZTBmOGEwYmQwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM2NGQ2M2E5NzQwMzBkMmEuYmZmMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwZDEyYWRkMGEuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDgwMDAwMDAwLjgwMDAwMDAwZDRmYzA1M2UKICAgICBjYThiNTE5NzA0MGUwMTQxCiAKLVZST1VORFNEXzB4MShyZWcpCitWUk9VTkRQU18yNTZfMHgzKHJlZykKICAgYmVmb3JlCiAgICAgZWRmYzQ2M2Y2YTBhMGJmYS41NDg4ZDM4MzBiODIyMDI1LmU3MzlhMTRhNWM4ZDA4NTUuZmRjOWI4ZDk1YmNhNWIzNwogICAgIDgxMGMyZjQ1OTJlOGM1ZWYuMGY2NTNiZTM1MGNlMjQxZi4xN2QwMzA3NGIwZTgwMjU3LmY3MmZkZjIyMzc3ZDQwYWIKQEAgLTMwNjAwLDkgKzMwNjAwLDkgQEAKICAgICBlZGZjNDYzZjZhMGEwYmZhLjU0ODhkMzgzMGI4MjIwMjUuZTczOWExNGE1YzhkMDg1NS5mZGM5YjhkOTViY2E1YjM3CiAgICAgODEwYzJmNDU5MmU4YzVlZi4wZjY1M2JlMzUwY2UyNDFmLjE3ZDAzMDc0YjBlODAyNTcuZjcyZmRmMjIzNzdkNDBhYgogICAgIGUzMDcwNzEzMTkzMzZiY2MuYjEwYWM0NjE3ZDk0MzUwNi4yNzZiZjE3MDU0MmIwYmFhLmFhMzYyODUzYWNlNTEzMzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjc2YmYxNzA1NDJiMGJhYS5mNzJmZGYyMjM3N2Q0MGFiCisgICAgODAwMDAwMDA4MDAwMDAwMC4wMDAwMDAwMDUwY2UyNDFmLjAwMDAwMDAwODAwMDAwMDAuZjcyZmRmMjIwMDAwMDAwMAogICAgIGFiNWIxMDFlZDMwMTc2NDAKLVZST1VORFNEXzB4MShtZW0pCitWUk9VTkRQU18yNTZfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgYjExMGE4OTBiZGNlN2UxNy44MWVkNzRiYmIyNDA2YWVkLjFiZGMyNjY3ZmRjMDZlNGEuNTZlMmY3OTJmZTk2MzVmNgogICAgIGUwOTY1MjlhYjE3ZjY0YjQuNzY3MDAyNmRmZDFiM2E4OC45YWEwZjdjNzg4M2QwZGZlLjJkNTQzMzhmM2JkNmNlNDYKQEAgLTMwNjEzLDEwICszMDYxMywxMCBAQAogICAgIGIxMTBhODkwYmRjZTdlMTcuODFlZDc0YmJiMjQwNmFlZC4xYmRjMjY2N2ZkYzA2ZTRhLjU2ZTJmNzkyZmU5NjM1ZjYKICAgICBlMDk2NTI5YWIxN2Y2NGI0Ljc2NzAwMjZkZmQxYjNhODguOWFhMGY3Yzc4ODNkMGRmZS4yZDU0MzM4ZjNiZDZjZTQ2CiAgICAgMTRiYjhhMjhjOTIwZTU0NC5hODBlNmY5NzE1OTNlN2JiLjZmNWNkOGY2NmI2NWE5NGYuNTVmYjkxMTAzOTJlNjY5OAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNzZiZjE3MDU0MmIwYmFhLjU2ZTJmNzkyZmU5NjM1ZjYKKyAgICA4MDAwMDAwMDgwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAuMDAwMDAwMDBmZGMwNmU0YS41NmUyZjc5MmZlOTYzNWY2CiAgICAgMDQxOGEwNGJlNzU0N2RmMQogCi1WUk9VTkRTRF8weDIocmVnKQorVlJPVU5EUFNfMjU2XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDQ0MjY0OWRkY2UzYTc2NGYuZmIwZTk0ODBkYjY0YTdlYy4zNmNiZDYwODIyOGJjNDk5LjkwZWNiYzZkYTZlM2M4NzcKICAgICA0Mzk4MDRhMmU2Njc1YzYwLjY1ZDQ1ZjIyMGQxZTYwNWMuNGE4MmM5MjY0ZjIzNmI5Yi45MzU4YjY4ZDM3NTJjMmE2CkBAIC0zMDYyNyw5ICszMDYyNyw5IEBACiAgICAgNDQyNjQ5ZGRjZTNhNzY0Zi5mYjBlOTQ4MGRiNjRhN2VjLjM2Y2JkNjA4MjI4YmM0OTkuOTBlY2JjNmRhNmUzYzg3NwogICAgIDQzOTgwNGEyZTY2NzVjNjAuNjVkNDVmMjIwZDFlNjA1Yy40YTgyYzkyNjRmMjM2YjliLjkzNThiNjhkMzc1MmMyYTYKICAgICA1ZmJjY2MwNmNiNjg2Y2NlLjQ1NjhhOGY4ZDNmOWE0NmUuMGM4MzhhNmRiOTg5ZGZlNC41ZGVjYjAyYzhmOWFhOTIyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBjODM4YTZkYjk4OWRmZTQuODAwMDAwMDAwMDAwMDAwMAorICAgIDQzOTgwMDAwZTY2NzVjNjAuNjVkNDVmMjIwMDAwMDAwMC40YTgyYzkyNjRmMjM2YjliLjgwMDAwMDAwMDAwMDAwMDAKICAgICBiNmJhOTU5NDA3ZWMyZGFmCi1WUk9VTkRTRF8weDIobWVtKQorVlJPVU5EUFNfMjU2XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIGZjOGU3ODM1NWUwYzQyMTguNTk0NTczNWM2OTEzZjk3Mi5kNDJhYTRmMTkxM2ZiYzJiLjA5OTY2YjI3YmFlYjE5ZmUKICAgICA3YWI5NGIwNGVjMzYzNDdlLmYxNDM0YTI1NWJkNmVlMDEuM2JlZjUwZWNjMGMzMDgyZC5mZDQwODM3MTg4MDE1ODI2CkBAIC0zMDY0MCwxMCArMzA2NDAsMTAgQEAKICAgICBmYzhlNzgzNTVlMGM0MjE4LjU5NDU3MzVjNjkxM2Y5NzIuZDQyYWE0ZjE5MTNmYmMyYi4wOTk2NmIyN2JhZWIxOWZlCiAgICAgN2FiOTRiMDRlYzM2MzQ3ZS5mMTQzNGEyNTViZDZlZTAxLjNiZWY1MGVjYzBjMzA4MmQuZmQ0MDgzNzE4ODAxNTgyNgogICAgIDBiMDc4YWVkY2U3N2JlMGQuMTQyMjFmM2U4OTljZmM5ZC44NmIzNmFjYWY1OTdjZTgyLjBmNjU1OTk1MDUxNDUyNDYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGM4MzhhNmRiOTg5ZGZlNC4zZmYwMDAwMDAwMDAwMDAwCisgICAgZmM4ZTc4MzU1ZTBjNDIxOC41OTQ1NzM1YzY5MTNmOTcyLmQ0MmFhNGYxODAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMAogICAgIGZkNGYzNDE3Nzk2MTZhMWQKIAotVlJPVU5EU0RfMHgyKHJlZykKK1ZST1VORFBTXzI1Nl8weDQocmVnKQogICBiZWZvcmUKICAgICA5MGFkMzA0ZWE5YjRmZjJjLmQ1NDEzZWJlZmM2YjhlNTMuNmViMmIwMGMwYjYyNTdhZS4zZDYzZDhlNGRlNjBiY2QzCiAgICAgYjJiNWRjMGVmNzM0NDFlMi5jN2MzYWE3ZDgwMzc0YTY0LjVlZmI2NDlhOTc3YTFiN2IuNWZlODI0ZjdjYjZkNWIyNwpAQCAtMzA2NTQsOSArMzA2NTQsOSBAQAogICAgIDkwYWQzMDRlYTliNGZmMmMuZDU0MTNlYmVmYzZiOGU1My42ZWIyYjAwYzBiNjI1N2FlLjNkNjNkOGU0ZGU2MGJjZDMKICAgICBiMmI1ZGMwZWY3MzQ0MWUyLmM3YzNhYTdkODAzNzRhNjQuNWVmYjY0OWE5NzdhMWI3Yi41ZmU4MjRmN2NiNmQ1YjI3CiAgICAgYmViNDMyYzMwMDZlNmFlYy4zYjk5NzIwN2M3NDk5MDRkLjQ5NTUwNjI3Y2ZjNWU5MDYuZDc5YmNmOWUyZGZhNjQ3ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40OTU1MDYyN2NmYzVlOTA2LjVmZTgyNGY3Y2I2ZDViMjcKKyAgICA4MDAwMDAwMGY3MzQ0MWUyLmM3YzNhYTgwODAwMDAwMDAuNWVmYjY0OWE4MDAwMDAwMC41ZmU4MjRmN2NiNmQ1YjI3CiAgICAgMzViYTJmNThjM2M2YTdlNAotVlJPVU5EU0RfMHgyKG1lbSkKK1ZST1VORFBTXzI1Nl8weDQobWVtKQogICBiZWZvcmUKICAgICBkM2JlZGM0NDJkMWQ1OTRiLjAzYzdkMWJjYjIzZDYzYWIuMWQ3MTA3MjgxMTcwYTU1OC44MzZjMDFlZWI1MjY5MTA0CiAgICAgMzcyMWQ3NzM3ZTIzNjY2NS5mNTcyMTJkODkyZWJhYmI3LjQzMGJjYzk4NGI5ZGVjZDMuOGFjMDUyMDA5YTU0ZTRjZgpAQCAtMzA2NjcsMTAgKzMwNjY3LDEwIEBACiAgICAgZDNiZWRjNDQyZDFkNTk0Yi4wM2M3ZDFiY2IyM2Q2M2FiLjFkNzEwNzI4MTE3MGE1NTguODM2YzAxZWViNTI2OTEwNAogICAgIDM3MjFkNzczN2UyMzY2NjUuZjU3MjEyZDg5MmViYWJiNy40MzBiY2M5ODRiOWRlY2QzLjhhYzA1MjAwOWE1NGU0Y2YKICAgICAzYmFkOWRkMmNmZTY4OTVkLjQwNDVlZDk5OWQ4MmNiYzguNWIyOWRkODJiOTQxYWRkNi5mZDU2ODBjMTljZTQzMDA4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ5NTUwNjI3Y2ZjNWU5MDYuODAwMDAwMDAwMDAwMDAwMAorICAgIGQzYmVkYzQ0MDAwMDAwMDAuMDAwMDAwMDA4MDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwODAwMDAwMDAKICAgICA5Nzc0NjUwMTY2NjBhNjczCiAKLVZST1VORFNEXzB4MihyZWcpCitWUk9VTkRQU18yNTZfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgNzY5NDEzNTg2NTYzNDhmZC45NzcyNzdkMmU3ZDIwMzk5LjU1OGU2NmJiYTI5YzgyYTMuZDUxZmQ0NzQ5ZTFiODcyNgogICAgIDMxMjQ4ZTBkZjFmOWQzYTQuYTY0NDg0NDllNjEyZDMzNS5kNjlkZmJmNGQ0MzY5MWM2LmVlOTBiMjU0NGU2OTFhY2MKQEAgLTMwNjgxLDkgKzMwNjgxLDkgQEAKICAgICA3Njk0MTM1ODY1NjM0OGZkLjk3NzI3N2QyZTdkMjAzOTkuNTU4ZTY2YmJhMjljODJhMy5kNTFmZDQ3NDllMWI4NzI2CiAgICAgMzEyNDhlMGRmMWY5ZDNhNC5hNjQ0ODQ0OWU2MTJkMzM1LmQ2OWRmYmY0ZDQzNjkxYzYuZWU5MGIyNTQ0ZTY5MWFjYwogICAgIDI0NzJkMzhlYTVhZTg0MTUuYzY2ZjRhYTE1NTNlYTk1Zi4yMjAzMWI4MmEwZWI2NzlkLjZhYjVjYzVmYTE1ZTE1YTkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjIwMzFiODJhMGViNjc5ZC5lZTkwYjI1NDRlNjkxYWNjCisgICAgMDAwMDAwMDBmMWY5ZDNhNC44MDAwMDAwMGU2MTJkMzM1LmQ2OWRmYmY0ZDQzNjkxYzYuZWU5MGIyNTQ0ZTY5MWFjYwogICAgIGZjNGJhNGExYTM2YjM1YmUKLVZST1VORFNEXzB4MihtZW0pCitWUk9VTkRQU18yNTZfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgYzk1MzViYjI4ODlhZDM0ZS4yMjc0YTdhMWY4YTc0ODA0LmFhMDNmNmExZjk4YzU5MTAuODcwM2VlNGM3OWNmNWMxNQogICAgIDY5NDAzZTlkODJhMWM5YzYuZTVjMDMwMGJjZDAzZDJkYS4yNTA0ZDMyMTY1YzZhYmVlLjU4MzU5ODYxYmQxOGYyMGUKQEAgLTMwNjk0LDEwICszMDY5NCwxMCBAQAogICAgIGM5NTM1YmIyODg5YWQzNGUuMjI3NGE3YTFmOGE3NDgwNC5hYTAzZjZhMWY5OGM1OTEwLjg3MDNlZTRjNzljZjVjMTUKICAgICA2OTQwM2U5ZDgyYTFjOWM2LmU1YzAzMDBiY2QwM2QyZGEuMjUwNGQzMjE2NWM2YWJlZS41ODM1OTg2MWJkMThmMjBlCiAgICAgYjhkY2M5NGVhYTg5ZDQ1Mi40ZmZhNzFmMDNjYWQ3MjI5LjIxOGY1YjMyYjIxY2Y0MGIuNjNlZmJkN2IwY2E5NDA2YgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMjAzMWI4MmEwZWI2NzlkLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBjOTUzNWJiMDgwMDAwMDAwLjAwMDAwMDAwZjhhNzQ4MDQuODAwMDAwMDBmOThjNTkxMC44MDAwMDAwMDc5Y2Y1YzE1CiAgICAgOTgyNTZhNmYzOGQ5ZjIwMAogCi1WUk9VTkRTRF8weDMocmVnKQorVlJPVU5EUERfMTI4XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDc5M2JlODIwNGU4ZWNmOTAuZDQ1NGM4YjFmYTMxMTc1OS44ZDYyMGZkYzUxMjFlM2U1LjBjNzI1OGIyNjI0ZDVhYjAKICAgICAwNDA4ZDM4N2RlYmQ1MzM0LjU4YzgzNDNjNTkwOWM4MmMuMTgyYTY0YmEzMTAyMmNhOS5iMzYyYzZmYmZjNDBlZjkxCkBAIC0zMDcwOCw5ICszMDcwOCw5IEBACiAgICAgNzkzYmU4MjA0ZThlY2Y5MC5kNDU0YzhiMWZhMzExNzU5LjhkNjIwZmRjNTEyMWUzZTUuMGM3MjU4YjI2MjRkNWFiMAogICAgIDA0MDhkMzg3ZGViZDUzMzQuNThjODM0M2M1OTA5YzgyYy4xODJhNjRiYTMxMDIyY2E5LmIzNjJjNmZiZmM0MGVmOTEKICAgICA5NWQ3MjQwZTg1ZjJiYjk3LmZiMWIzNzNlNThmMzdlYzMuYmEwZTYzYzQxOTYyN2I5Ni40YjBkY2Y4NGU3N2Y2YjYwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJhMGU2M2M0MTk2MjdiOTYuODAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKICAgICBiZWJlOWUwNTIyMTIwNjdhCi1WUk9VTkRTRF8weDMobWVtKQorVlJPVU5EUERfMTI4XzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDUxNWU1ZGQ2YWE3ZjllMWQuMzlhZWVjMzE4NjliMjc0Yi4wZTkyZjg1MmE0MmVlN2VlLmI3NWU0YjA4NzNkMTFhOWYKICAgICA0NWU4YTY5N2YzNjcwZDVmLjA0NGU1YmE0MTkyN2EyZjUuMzU0ZGFkM2UyOTk3MTNkYi5jYTYxMmQxYjFjZjdlMjExCkBAIC0zMDcyMSwxMCArMzA3MjEsMTAgQEAKICAgICA1MTVlNWRkNmFhN2Y5ZTFkLjM5YWVlYzMxODY5YjI3NGIuMGU5MmY4NTJhNDJlZTdlZS5iNzVlNGIwODczZDExYTlmCiAgICAgNDVlOGE2OTdmMzY3MGQ1Zi4wNDRlNWJhNDE5MjdhMmY1LjM1NGRhZDNlMjk5NzEzZGIuY2E2MTJkMWIxY2Y3ZTIxMQogICAgIDc2MjdmNjM0MWFkODBlNmIuNDUyMTIyZTczMWU5ZjEwZi5lYzE4ZTk0ZmJkNDIzNDNkLjY0YjFhODA5M2VjZGEwNWQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmEwZTYzYzQxOTYyN2I5Ni44MDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAogICAgIGExNjc1YTI2NWNiNmVjMzIKIAotVlJPVU5EU0RfMHgzKHJlZykKK1ZST1VORFBEXzEyOF8weDAocmVnKQogICBiZWZvcmUKICAgICBmYzY1ODkyZDhmZTFmMzEzLmZmZjc5N2IyNzA4M2I5OTMuOTk4ZmE0OTM2NjNjZmI0MC43NzBkZWM5NTg1OTA0MzBkCiAgICAgNGVlMTQxYmZhYmVjZTA3ZS4wZjIwZTE2Y2Q3ZDVkYjA3LjY0YzM1OGQyYmFlNjJkYjAuMDNkMGE5YTBmMDRhYTlkNApAQCAtMzA3MzUsOSArMzA3MzUsOSBAQAogICAgIGZjNjU4OTJkOGZlMWYzMTMuZmZmNzk3YjI3MDgzYjk5My45OThmYTQ5MzY2M2NmYjQwLjc3MGRlYzk1ODU5MDQzMGQKICAgICA0ZWUxNDFiZmFiZWNlMDdlLjBmMjBlMTZjZDdkNWRiMDcuNjRjMzU4ZDJiYWU2MmRiMC4wM2QwYTlhMGYwNGFhOWQ0CiAgICAgZjUyNTdlNDg0YjYzZWUxZS5jYjJmMjJiMThjZTA3ZmY1LjE1NTk1MzkyMDVmNTIzNDAuOGVkMmRmODJkYTc3ZjVjMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNTU5NTM5MjA1ZjUyMzQwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjRjMzU4ZDJiYWU2MmRiMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgMTBjNmEzNzg5ZDU3MmFiNQotVlJPVU5EU0RfMHgzKG1lbSkKK1ZST1VORFBEXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICBjMDUwMjk2NWFlMjM4YjE3LmFkMzc3OGYwOGFjMTYwYWUuYmMyZTc1OTA0ZDRkNDBmMi45OWRlMGY0NmVlNzQ0YTZlCiAgICAgZGU0YTE4ZDdhZTkxYzI0ZC43ODllMmRlNzVmYzIzYmY3LmE3YjY4MDAyOTJjOWQ0NTkuMjQ2NGM4MTJjNGZiZjM2NQpAQCAtMzA3NDgsMTAgKzMwNzQ4LDEwIEBACiAgICAgYzA1MDI5NjVhZTIzOGIxNy5hZDM3NzhmMDhhYzE2MGFlLmJjMmU3NTkwNGQ0ZDQwZjIuOTlkZTBmNDZlZTc0NGE2ZQogICAgIGRlNGExOGQ3YWU5MWMyNGQuNzg5ZTJkZTc1ZmMyM2JmNy5hN2I2ODAwMjkyYzlkNDU5LjI0NjRjODEyYzRmYmYzNjUKICAgICA0ODdmZWJiYmJhYWQ4OTg0LjA2ZmQ1Nzg1Mjk1ZDI4MjYuYjA1NDcxYjA5NTJjZGJlOS4wNDdlYjgwZTAwMTc1MDJiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1NTk1MzkyMDVmNTIzNDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKICAgICAzODk5MmQ0YjFjNDAxNGQ2CiAKLVZST1VORFNEXzB4MyhyZWcpCitWUk9VTkRQRF8xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgNDMzM2FiNjMzNDY1ZjQxMy42Y2NlMmQ4YTY0MjFiOWEzLmRlZDdmYjY2MGI5NzI4ZTMuODgwMmY2NzA0MmRkMzIzYgogICAgIDEzOTA1MDVjMjM0Zjc4ZDAuZGY3Zjk0NGQzYTkwOWFlMy5lMGU5NmQ4MTViNGNiMmNiLjEwYWE4MjVhMjU0MmY5NTQKQEAgLTMwNzYyLDkgKzMwNzYyLDkgQEAKICAgICA0MzMzYWI2MzM0NjVmNDEzLjZjY2UyZDhhNjQyMWI5YTMuZGVkN2ZiNjYwYjk3MjhlMy44ODAyZjY3MDQyZGQzMjNiCiAgICAgMTM5MDUwNWMyMzRmNzhkMC5kZjdmOTQ0ZDNhOTA5YWUzLmUwZTk2ZDgxNWI0Y2IyY2IuMTBhYTgyNWEyNTQyZjk1NAogICAgIDA2ZmMxOGEyODM4YWRjYjguMGM5Y2QwMzI4YmRlZmNkNC4xNjI0NDRmMzBmY2UzZTQ3LjI0OTdlNDMwMzViZjIzNDcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTYyNDQ0ZjMwZmNlM2U0Ny4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUwZTk2ZDgxNWI0Y2IyY2IuMDAwMDAwMDAwMDAwMDAwMAogICAgIDY0NzQxYjUxNGUzMjhmNmQKLVZST1VORFNEXzB4MyhtZW0pCitWUk9VTkRQRF8xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgNDhmYmU3NzM4ZjQwNDlmOC5jMTMwMDJjNjBkMjUzMmJiLjA4NDliNDExMTE0NTMyNzguOGY0NDExOGMxNTYyNGJiMgogICAgIDI4Zjc3YTMyNmQ5NzU2MGUuNDE5MDFjN2I2ZDljOWMyZS44ZTcyNTRlNTdkNzY3ZTgzLjg5YzEwMDhjOWU4ZDQ1ZjcKQEAgLTMwNzc1LDEwICszMDc3NSwxMCBAQAogICAgIDQ4ZmJlNzczOGY0MDQ5ZjguYzEzMDAyYzYwZDI1MzJiYi4wODQ5YjQxMTExNDUzMjc4LjhmNDQxMThjMTU2MjRiYjIKICAgICAyOGY3N2EzMjZkOTc1NjBlLjQxOTAxYzdiNmQ5YzljMmUuOGU3MjU0ZTU3ZDc2N2U4My44OWMxMDA4YzllOGQ0NWY3CiAgICAgZTEzNjUwNzkwNTQxNzJkYS41NDJmNDkyZWFmOTRkNjdjLjQwMzZiOThhZDRiNTNhZWYuMjc5NzQ0OTJmY2IzMzA4MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNjI0NDRmMzBmY2UzZTQ3LjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCiAgICAgYmU3ZWJiNjRhNTIyY2IxYQogCi1WUk9VTkRTRF8weDQocmVnKQorVlJPVU5EUERfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDcwMjdlNzA4Mjk4M2YzN2UuNGZhOWIwNGVkMWM0YzU0Ny45ZjVhY2MzYTRjM2FhYTVjLjkzYzJiZmZhYjY4ZWY2OTcKICAgICAzNjU5NTg2M2YxMGVmY2Q3LmJiNzUzNGI1M2RiNDc1M2YuOGY3ZTFiNmNkZWZlYmM0NS5lZTIyNTg5ZTc3NDA2ZDJkCkBAIC0zMDc4OSw5ICszMDc4OSw5IEBACiAgICAgNzAyN2U3MDgyOTgzZjM3ZS40ZmE5YjA0ZWQxYzRjNTQ3LjlmNWFjYzNhNGMzYWFhNWMuOTNjMmJmZmFiNjhlZjY5NwogICAgIDM2NTk1ODYzZjEwZWZjZDcuYmI3NTM0YjUzZGI0NzUzZi44ZjdlMWI2Y2RlZmViYzQ1LmVlMjI1ODllNzc0MDZkMmQKICAgICA2YzVmMDllMTk5NTIyNGQyLjcwYjNlYTU0ZDMyODIzOWQuODExMDZkNGJjMzc0OGRiYS5lMzRkYTVjMzk1MzE0NGQyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgxMTA2ZDRiYzM3NDhkYmEuZWUyMjU4OWU3NzQwNmQyZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZmYwMDAwMDAwMDAwMDAwLmVlMjI1ODllNzc0MDZkMmQKICAgICAwZTM4NGQ0NDUyZmQwNjAwCi1WUk9VTkRTRF8weDQobWVtKQorVlJPVU5EUERfMTI4XzB4MShtZW0pCiAgIGJlZm9yZQogICAgIGZjOGY5Zjc4MmFmMDY4ZTAuOTgxYTIxZjZmYjJlYmM1ZS4yNmI1ZGRlYmVhY2U2YzNlLmRjYjIwYWMwZjRhNDVlZjYKICAgICBmNmUzOTVkZWNkNTIxYTgwLjQ1Njc3ZjY1ZWRkZmE1NDUuZGUxMTEyYmFhNDE3N2ZkOS5mYzU5NGQyZTc4NzZkNzE2CkBAIC0zMDgwMiwxMCArMzA4MDIsMTAgQEAKICAgICBmYzhmOWY3ODJhZjA2OGUwLjk4MWEyMWY2ZmIyZWJjNWUuMjZiNWRkZWJlYWNlNmMzZS5kY2IyMGFjMGY0YTQ1ZWY2CiAgICAgZjZlMzk1ZGVjZDUyMWE4MC40NTY3N2Y2NWVkZGZhNTQ1LmRlMTExMmJhYTQxNzdmZDkuZmM1OTRkMmU3ODc2ZDcxNgogICAgIGQ2ZmRhYzYyNTgyZmQ5MGQuZDNiOTBkYTgyZjc4OWI3Zi40ZjBlNjk3MmY3MTQ4MDhhLjhmOWY4NGY5YmUyYWZmNzEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODExMDZkNGJjMzc0OGRiYS5kY2IyMGFjMGY0YTQ1ZWY2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGNiMjBhYzBmNGE0NWVmNgogICAgIDc5MzdiYjU3MDI2NDRlOGIKIAotVlJPVU5EU0RfMHg0KHJlZykKK1ZST1VORFBEXzEyOF8weDEocmVnKQogICBiZWZvcmUKICAgICA4OTIxYjRjMjM4MDRlZGExLmJiYmIyOTc0OTM4NjZlOWMuZmU5YmFmNTUxNThmYTE5Ny5jYzFmNmQ0OWRiNWQzZmUwCiAgICAgN2JkYjhmMzlhMGI1MmNhMi43OGY1ODlkYTdjMTliYmY3LjU0YzNiOTk5ZjAyNTI5Y2QuOTBjYTEzNDBhM2JmNzVkYwpAQCAtMzA4MTYsOSArMzA4MTYsOSBAQAogICAgIDg5MjFiNGMyMzgwNGVkYTEuYmJiYjI5NzQ5Mzg2NmU5Yy5mZTliYWY1NTE1OGZhMTk3LmNjMWY2ZDQ5ZGI1ZDNmZTAKICAgICA3YmRiOGYzOWEwYjUyY2EyLjc4ZjU4OWRhN2MxOWJiZjcuNTRjM2I5OTlmMDI1MjljZC45MGNhMTM0MGEzYmY3NWRjCiAgICAgYWJhZjRhMmFkNzAzNDczYi44YzI3ZjgwZmJkNTcwNWVlLmZhMjFlNTYwOGNkM2FlMDUuN2Q0NmNhZDA3NDA2ODlhMAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYTIxZTU2MDhjZDNhZTA1LjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTRjM2I5OTlmMDI1MjljZC5iZmYwMDAwMDAwMDAwMDAwCiAgICAgNDJlNjYxNjhhMzcxM2UyYQotVlJPVU5EU0RfMHg0KG1lbSkKK1ZST1VORFBEXzEyOF8weDEobWVtKQogICBiZWZvcmUKICAgICBkMmEwMzc0ODM5YWQ1NjRhLjM1ZDc0ZDI3MjBhN2ZmZTUuMjhhM2Y3OTJiNDAxODA2Mi5hNWE5OTAyNjc2YTVhMjJhCiAgICAgZmI1YzEwNzA0OGZkM2RkZi40N2M0OGUwYjZhMTUxNTRkLjY5ODU3ZmI4YTM4NjI4MzcuNjI2ZDA3ZmVmYmUxODg2ZQpAQCAtMzA4MjksMTAgKzMwODI5LDEwIEBACiAgICAgZDJhMDM3NDgzOWFkNTY0YS4zNWQ3NGQyNzIwYTdmZmU1LjI4YTNmNzkyYjQwMTgwNjIuYTVhOTkwMjY3NmE1YTIyYQogICAgIGZiNWMxMDcwNDhmZDNkZGYuNDdjNDhlMGI2YTE1MTU0ZC42OTg1N2ZiOGEzODYyODM3LjYyNmQwN2ZlZmJlMTg4NmUKICAgICA5OGU2NjdjZGVkNmVhZjE4LjA3ZmM5ZTE4ZjM1MGY2ZmMuNzE4ZjA4NWQ1YWU1YmQ1OC5lMDk2OTAwOWIxNjQ1YzY1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZhMjFlNTYwOGNkM2FlMDUuODAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJmZjAwMDAwMDAwMDAwMDAKICAgICA4YjQ1YzU2OTFlNzFiZTE2CiAKLVZST1VORFNEXzB4NChyZWcpCitWUk9VTkRQRF8xMjhfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgNzA2NDY5OTUwZTEyYzMyOS5hMzk0N2ZkMTY2ZTAyMzIwLjAxN2IxYjVkMzA1ZjBjZTIuNDY0YTA5ZDE4ZDYyOWQzMQogICAgIDg1MTgwZmE1OWUyYmE2OWUuYzg0ZjM5NTI3M2ZhOWQ0OC5mMzViODA2ZTFjNGJiOTcwLmNhOTM3YTc4NDI5ODYwNDEKQEAgLTMwODQzLDkgKzMwODQzLDkgQEAKICAgICA3MDY0Njk5NTBlMTJjMzI5LmEzOTQ3ZmQxNjZlMDIzMjAuMDE3YjFiNWQzMDVmMGNlMi40NjRhMDlkMThkNjI5ZDMxCiAgICAgODUxODBmYTU5ZTJiYTY5ZS5jODRmMzk1MjczZmE5ZDQ4LmYzNWI4MDZlMWM0YmI5NzAuY2E5MzdhNzg0Mjk4NjA0MQogICAgIDI3YWRiMTAzNmE0N2EzMjAuZDEwOTYwYjc4NjY0OTFjMy4wM2I2YTQ1N2I2MzQyMmY2Ljg2MzRkYjRkMmVkODAwNGQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDNiNmE0NTdiNjM0MjJmNi5jYTkzN2E3ODQyOTg2MDQxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzNWI4MDZlMWM0YmI5NzAuY2E5MzdhNzg0Mjk4NjA0MQogICAgIDEyYWQ1ZTMxMWRhOGM2MGEKLVZST1VORFNEXzB4NChtZW0pCitWUk9VTkRQRF8xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgOWIxZTc4MTk1ODRmNjQxNC43ZGE5ZGU1ZTI4YjlkOWZkLjA0YTVlYWRjMmI1OWRiNjAuZWMwYzFiNjY2NzJkMTU5OQogICAgIGNiMTY3MmRlM2EzMWNlY2EuZWFhODYxMzE1MjI3OGJiMC5lNDIwNDU3NWY2ZmNhOGRiLjdlOWY2NTYyYjU1NjE5MGUKQEAgLTMwODU2LDEwICszMDg1NiwxMCBAQAogICAgIDliMWU3ODE5NTg0ZjY0MTQuN2RhOWRlNWUyOGI5ZDlmZC4wNGE1ZWFkYzJiNTlkYjYwLmVjMGMxYjY2NjcyZDE1OTkKICAgICBjYjE2NzJkZTNhMzFjZWNhLmVhYTg2MTMxNTIyNzhiYjAuZTQyMDQ1NzVmNmZjYThkYi43ZTlmNjU2MmI1NTYxOTBlCiAgICAgN2Q2MmM4NmVlMDU5YzI1OS41M2I5ZDAwNDI4Yzg0NzIxLjFhYzlmZGEyMzcyMGRmNTguOWVkZTVmZTgyMWFjYzgyYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wM2I2YTQ1N2I2MzQyMmY2LmVjMGMxYjY2NjcyZDE1OTkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYzBjMWI2NjY3MmQxNTk5CiAgICAgZjc4YjRmM2ZjNjExMWEwYQogCi1WUk9VTkRTRF8weDUocmVnKQorVlJPVU5EUERfMTI4XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIGU5OTEzZmU4MzUzNzM0MjUuZGIyNjc5OWJlNWFjMzNiMS44YTNiNjc1NzQ5ZDVjYmViLmY0ZDQ3OTY4ODgxNzdlMGEKICAgICBkODczY2RjYjM0YmJlYTk3LjNmMzZjYzExN2VlZjI4ZDEuMGY0Njg2YjBjZDU4MGM5Yy41MGNlMzVkYWQxMDQ1ZTk3CkBAIC0zMDg3MCw5ICszMDg3MCw5IEBACiAgICAgZTk5MTNmZTgzNTM3MzQyNS5kYjI2Nzk5YmU1YWMzM2IxLjhhM2I2NzU3NDlkNWNiZWIuZjRkNDc5Njg4ODE3N2UwYQogICAgIGQ4NzNjZGNiMzRiYmVhOTcuM2YzNmNjMTE3ZWVmMjhkMS4wZjQ2ODZiMGNkNTgwYzljLjUwY2UzNWRhZDEwNDVlOTcKICAgICAyMjdiZjY1MjVjMjc3ODBlLjk1Y2E2YjAxNDlhOTk3N2IuMDA5MjgyYjc2ZDNmNDdiYi43MjI3M2U4ZmZmYTE5OWQ2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwOTI4MmI3NmQzZjQ3YmIuNTBjZTM1ZGFkMTA0NWU5NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZmYwMDAwMDAwMDAwMDAwLjUwY2UzNWRhZDEwNDVlOTcKICAgICA3NDIxMmM3NjdjMWIwZTFkCi1WUk9VTkRTRF8weDUobWVtKQorVlJPVU5EUERfMTI4XzB4MihtZW0pCiAgIGJlZm9yZQogICAgIDBjNWEwODgwMDMxMWMwN2MuMzMzMTBiMDA5ZGVkMGJiNS44YmFjN2VmZmVhYWZjZDE3Ljk2MWIwMzgzNzM2Nzk5ZjIKICAgICBkOTIyMjI3ZWRmZTdiZTNlLmIyNzZlZWZmZWU1ZTg4M2UuZTI5NGVhZTVmODEzMGU2Mi5mM2YxN2YxZjEwYmYyODYyCkBAIC0zMDg4MywxMCArMzA4ODMsMTAgQEAKICAgICAwYzVhMDg4MDAzMTFjMDdjLjMzMzEwYjAwOWRlZDBiYjUuOGJhYzdlZmZlYWFmY2QxNy45NjFiMDM4MzczNjc5OWYyCiAgICAgZDkyMjIyN2VkZmU3YmUzZS5iMjc2ZWVmZmVlNWU4ODNlLmUyOTRlYWU1ZjgxMzBlNjIuZjNmMTdmMWYxMGJmMjg2MgogICAgIGI3NDNmNzViMmRhYWMyOGUuZmMxMTVkNTJkOGU5Y2Q3Yi45YzJlOTJmNmFhMWViN2U2LjJjMzhjODFiM2FhYmEyZWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDA5MjgyYjc2ZDNmNDdiYi44MDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAogICAgIGEyNDhiM2UwYTM2ZTQyMTMKIAotVlJPVU5EU0RfMHg1KHJlZykKK1ZST1VORFBEXzEyOF8weDIocmVnKQogICBiZWZvcmUKICAgICA5NmFhNGM4MTFhNWNlMDAxLjE3YzNiZjY3OGMyNGNlOGIuNWM3ZWNiYTllZDc5OWViZi5hYWIwODY0NTY3NTczMzQ3CiAgICAgZDdhY2EyMzE4ZTBkNThiZC41MGJhYWE2ZWQ2ZjM0ZThmLjJjZTZjMzg0NGY5OGExMWUuYjUyZWNiNWJhYjlkN2Y3YwpAQCAtMzA4OTcsOSArMzA4OTcsOSBAQAogICAgIDk2YWE0YzgxMWE1Y2UwMDEuMTdjM2JmNjc4YzI0Y2U4Yi41YzdlY2JhOWVkNzk5ZWJmLmFhYjA4NjQ1Njc1NzMzNDcKICAgICBkN2FjYTIzMThlMGQ1OGJkLjUwYmFhYTZlZDZmMzRlOGYuMmNlNmMzODQ0Zjk4YTExZS5iNTJlY2I1YmFiOWQ3ZjdjCiAgICAgYzA5YmIxNWM5YTBlZTZmMi4wYTNiM2YwNDAyZGZjNWQyLjM1ZDUzNzY0YmJmZjVkZTEuOTM5MTNjNGMwMmI5MjM5YQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNWQ1Mzc2NGJiZmY1ZGUxLjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2ZmMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCiAgICAgMzkzMTkyNmM1YmE0NjU0MAotVlJPVU5EU0RfMHg1KG1lbSkKK1ZST1VORFBEXzEyOF8weDIobWVtKQogICBiZWZvcmUKICAgICBiODA3NzA3Mzk1OGM3YjIwLmY5NzBlY2QzZWMyZTM0NzkuNzEwYTU5OTE2ZDNjODdjNC42NTc4N2ZlNDI0ZGJlYjQyCiAgICAgN2FmMTY5MDQ1Mjc5ZGE5OC4wMmVkMGZmODZhNjU2YjI0LmQ3ZjFkNTVmZTVjNTRhY2EuNDVjNDRjNWI1ODY2MzYzOApAQCAtMzA5MTAsMTAgKzMwOTEwLDEwIEBACiAgICAgYjgwNzcwNzM5NThjN2IyMC5mOTcwZWNkM2VjMmUzNDc5LjcxMGE1OTkxNmQzYzg3YzQuNjU3ODdmZTQyNGRiZWI0MgogICAgIDdhZjE2OTA0NTI3OWRhOTguMDJlZDBmZjg2YTY1NmIyNC5kN2YxZDU1ZmU1YzU0YWNhLjQ1YzQ0YzViNTg2NjM2MzgKICAgICA1YmJhZmIwYmFlNzkzZWQ1LjIzODhkYjQ3ZjAxYmE3ZjcuMmQ5MWViNmVhZTlhZjRiZi5jZWM2ODQ4NzA2NmIyOTQyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM1ZDUzNzY0YmJmZjVkZTEuNjU3ODdmZTQyNGRiZWI0MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MTBhNTk5MTZkM2M4N2M0LjY1Nzg3ZmU0MjRkYmViNDIKICAgICA0ZTIwMjZiMDQyMTFmNTNmCiAKLVZST1VORFNEXzB4NShyZWcpCitWUk9VTkRQRF8xMjhfMHgyKHJlZykKICAgYmVmb3JlCiAgICAgZmQwZjg4ODMwOGNhNDY4Yi5lYTFkZDgyYmI2ZTAwMzRkLjFjNDM1ZjE4ODYzNjIyY2MuMWMyZWQ3ZmJhNjVhZWIyNgogICAgIGM2ZTU0NWJjYjgyZDMwOWIuNTA0ZTFhMWQ5OTVmZGRlMC5hZGZjMGY3MGNkYjJkODI0LjZkYzRhNDUyMGI1Y2IxZWUKQEAgLTMwOTI0LDkgKzMwOTI0LDkgQEAKICAgICBmZDBmODg4MzA4Y2E0NjhiLmVhMWRkODJiYjZlMDAzNGQuMWM0MzVmMTg4NjM2MjJjYy4xYzJlZDdmYmE2NWFlYjI2CiAgICAgYzZlNTQ1YmNiODJkMzA5Yi41MDRlMWExZDk5NWZkZGUwLmFkZmMwZjcwY2RiMmQ4MjQuNmRjNGE0NTIwYjVjYjFlZQogICAgIDA1ZWU1OWM2ZWZjNWVkMWIuNDQ4ZmU1MzQ4YzIwYWNlNy5jNTAyNThhNDhkZGQ4NDU2LjFlNDRmYjk5MzNkYjRlNTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzUwMjU4YTQ4ZGRkODQ1Ni42ZGM0YTQ1MjBiNWNiMWVlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuNmRjNGE0NTIwYjVjYjFlZQogICAgIDE1MzAzOGE3MzY3ZGZiYjEKLVZST1VORFNEXzB4NShtZW0pCitWUk9VTkRQRF8xMjhfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgMTIzNTE2NDc0OWI5ODRmYy41NWM4NzdmZDYwYzRkMjE4LjRiNzAwMzg2MGY5YTE3MDQuZmUyNGE2NGRlNzczYWRmNwogICAgIGUwNTQ2ZTg2OGVhMWQ0OTYuMWUzMTc5MDJkMjQ0NzJlZS4xNWE5NGY5OGQ4NmEyYjcxLmQ2ZDlhMzlhYjhmNGExYmUKQEAgLTMwOTM3LDEwICszMDkzNywxMCBAQAogICAgIDEyMzUxNjQ3NDliOTg0ZmMuNTVjODc3ZmQ2MGM0ZDIxOC40YjcwMDM4NjBmOWExNzA0LmZlMjRhNjRkZTc3M2FkZjcKICAgICBlMDU0NmU4NjhlYTFkNDk2LjFlMzE3OTAyZDI0NDcyZWUuMTVhOTRmOThkODZhMmI3MS5kNmQ5YTM5YWI4ZjRhMWJlCiAgICAgNWE1OWJjNTEyMTQxYTZhYi5jZGZkYzI4OTNiMjlkNmU0LmRlMjExMzdmMjBhZDI1MDIuYTcwYTI5NzM3MjU1N2MwZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNTAyNThhNDhkZGQ4NDU2LmZlMjRhNjRkZTc3M2FkZjcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGI3MDAzODYwZjlhMTcwNC5mZTI0YTY0ZGU3NzNhZGY3CiAgICAgYTAxM2MxNzUwZmU1ZDJmYwogCi1WUFRFU1RfMTI4XzEocmVnKQorVlJPVU5EUERfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDgwODNjYTc2MmEyY2M2ZjEuYzc0NDJjM2Q5ZmRiYzNmNC40Y2VlMWFjOTVmNTNkOWRlLmRjMDFmMzgyOWZiOWI2NDQKICAgICBjODlmNGRiMzllODI5MDIwLjcxYzI0NTM0YzJlYzg1ODAuZDVhYjIxNWE1M2IxZjAzYi5jYTAxMDc3NDBlOWJjNTRiCkBAIC0zMDk1MSw5ICszMDk1MSw5IEBACiAgICAgODA4M2NhNzYyYTJjYzZmMS5jNzQ0MmMzZDlmZGJjM2Y0LjRjZWUxYWM5NWY1M2Q5ZGUuZGMwMWYzODI5ZmI5YjY0NAogICAgIGM4OWY0ZGIzOWU4MjkwMjAuNzFjMjQ1MzRjMmVjODU4MC5kNWFiMjE1YTUzYjFmMDNiLmNhMDEwNzc0MGU5YmM1NGIKICAgICBkNGI1NDU5NjA2NzQ2YjM1LjM3NTY0NDY4YTJlNmJhMzcuYjRmYTVmMWRhZWEzYmI2Ny4yNjcxODRlYzZjMWZhYTI3Ci0gICAgMDEwZmFmOGRmZjhkOTRkYi5mN2NjYTVjNDVjZDQxZTQ0LjQ1MjlkMDdkMGJiNzc2MGYuY2UxY2U0ZDZkNjUxMWYwNAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZQVEVTVF8xMjhfMShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ1YWIyMTVhNTNiMWYwM2IuY2EwMTA3NzQwZTliYzU0YgorICAgIDlkZDBhNTFmNjczZWUwMGQKK1ZST1VORFBEXzEyOF8weDMobWVtKQogICBiZWZvcmUKICAgICA2ZTU3NDNiMTNjZjFhYjZmLmE5ZmE4NTAzMjQ1YTQ2YmUuOGJmMGU1MzQwYmMyNmRkNC5lMzgyNzFlNjA2Nzg1Y2RlCiAgICAgMWY3ZTM4N2E3MDc3M2E1Ni4yOWMyYzU2NDEyNjViZjhjLmQxOGU3ZmE0Y2NiZDYyMTMuZWM1MjNjYzQzYzczYWE4MQpAQCAtMzA5NjQsMTAgKzMwOTY0LDEwIEBACiAgICAgNmU1NzQzYjEzY2YxYWI2Zi5hOWZhODUwMzI0NWE0NmJlLjhiZjBlNTM0MGJjMjZkZDQuZTM4MjcxZTYwNjc4NWNkZQogICAgIDFmN2UzODdhNzA3NzNhNTYuMjljMmM1NjQxMjY1YmY4Yy5kMThlN2ZhNGNjYmQ2MjEzLmVjNTIzY2M0M2M3M2FhODEKICAgICA4YTExMDI2NTIwZGI0YWVkLmRkYjM2YTFjNjQzYzM5ZWUuYTM3MWVmMDBiYmQwYmEyYy5iYmU1MmY4MzQ5MzM5Y2E0Ci0gICAgOGRkYzFjNWU2NzI5OTY2MS4yMTE5NzA5OGI2NmJmMDkzLmRmNjZiMTM1ZjIwODMxNGMuYWI4NzQ1OGZjNzQ0NmRmMgotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC5lMzgyNzFlNjA2Nzg1Y2RlCisgICAgMWE4MzdhNTQ1NTMyNWExNwogCi1WUFRFU1RfMTI4XzEocmVnKQorVlJPVU5EUERfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDYyMjdjYjNlOGM4YTlmYzEuMDJhYTAyNTE2MTZkZGNkZC41MTNmZDQ0MmE1N2MyMjI1LjVmM2E0MTJkOTA2ZjgyOWYKICAgICBlMWJkMzNiYTBiZDg3ODlhLmM3NDkzMDJhMmJiNGQ2OGUuYzk3MzkwODdjZGZlMDk1MC4wMWI3MWNkNmFmMTM2YTUwCkBAIC0zMDk3OCw5ICszMDk3OCw5IEBACiAgICAgNjIyN2NiM2U4YzhhOWZjMS4wMmFhMDI1MTYxNmRkY2RkLjUxM2ZkNDQyYTU3YzIyMjUuNWYzYTQxMmQ5MDZmODI5ZgogICAgIGUxYmQzM2JhMGJkODc4OWEuYzc0OTMwMmEyYmI0ZDY4ZS5jOTczOTA4N2NkZmUwOTUwLjAxYjcxY2Q2YWYxMzZhNTAKICAgICBmMTkyYWUzMjZiYTYyMDRlLmI2ODMyM2Q1ZTEwOTQwOWYuZTVmZmEyZDRjOTdhZTJjMi45ZmFhYmQxYTZiMDBhNThjCi0gICAgZjBmMjM4MTQ0YjgyZDQ4YS5hYzI1NTUzZTllNzlkODNkLjAxMzAwNTkzMzU3ZWU5MjQuMTZkZWEwZTdlMDQxZWY3ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZQVEVTVF8xMjhfMShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM5NzM5MDg3Y2RmZTA5NTAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDQzMjE0MjI4MmNlMjAzNTMKK1ZST1VORFBEXzEyOF8weDMobWVtKQogICBiZWZvcmUKICAgICAwMDNkMWRjOTY4ZWY5ZTM2LjM4MjljZGNiNDRmN2QwZmEuODVmYjQ0NTE3ZTBlNTg5NC43OTUyYjUzMmFlOTU1OTI1CiAgICAgMmFmZmFmYjViMjc1N2M1NC4yNzgyNmFjMmY0OTI0ZjQ5LjFlZDE2Y2ZiOWVkNzdkY2YuYTliMGFmMWNkMDRiNmY2ZgpAQCAtMzA5OTEsMTAgKzMwOTkxLDEwIEBACiAgICAgMDAzZDFkYzk2OGVmOWUzNi4zODI5Y2RjYjQ0ZjdkMGZhLjg1ZmI0NDUxN2UwZTU4OTQuNzk1MmI1MzJhZTk1NTkyNQogICAgIDJhZmZhZmI1YjI3NTdjNTQuMjc4MjZhYzJmNDkyNGY0OS4xZWQxNmNmYjllZDc3ZGNmLmE5YjBhZjFjZDA0YjZmNmYKICAgICA5ZDM0NzNkYjI2N2Y1OGQ5LjE3NGIwYTY3ZjdkZThlMjQuNTE3MjQ3MjYxOWRkMDIxYi5lZDk4ZWViZDM1MmQ2N2FlCi0gICAgMzZhNWU1MjRkZjFhZWZmMC42NWNlYTkyNWU4NjdjOTM2LmZiYWM1M2MwMGMyZWE1YTMuYTE1NDZlODA3Y2M2N2M4ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC43OTUyYjUzMmFlOTU1OTI1CisgICAgMjEzMjJiZDQzZmEzZWNiZQogCi1WUFRFU1RfMTI4XzEocmVnKQorVlJPVU5EUERfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGM4N2MyMTIyMWE0ZmYxZTYuY2YyMTgyN2RmOTUxZmRjNi42ZTU4NDM2ODYzYmEzYzJjLmY4NDkwYmI0OTJkNTIwOTQKICAgICBmNDdmNGRkN2FhNTZjN2I0LjQ1NzNjNGQyOTEzMDNlODYuOGMzNWQ1OWQwNTYyMjJiMi4yNTE3ZWJlZGM4ZGYzMDFhCkBAIC0zMTAwNSw5ICszMTAwNSw5IEBACiAgICAgYzg3YzIxMjIxYTRmZjFlNi5jZjIxODI3ZGY5NTFmZGM2LjZlNTg0MzY4NjNiYTNjMmMuZjg0OTBiYjQ5MmQ1MjA5NAogICAgIGY0N2Y0ZGQ3YWE1NmM3YjQuNDU3M2M0ZDI5MTMwM2U4Ni44YzM1ZDU5ZDA1NjIyMmIyLjI1MTdlYmVkYzhkZjMwMWEKICAgICAwMDg3YWE1ZjhhNDRhY2Q0Ljc0NjYyOTEwYzNjNDZkNWQuMWNiMTU5MmU2YWViYjg3My41Y2UwNmY1OWM5NTc5MDYwCi0gICAgNDdkZjM0Mjc1NmE2ZGFmMS4zOGM4MmMyMWFhMTg0Nzc3LjdhMThjZDg4MmRlMjNhMWMuN2E3MDEzZTNiMjQ5ZmQ5MwotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZQVEVTVF8xMjhfMShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDViOTU1NDc3OWVjMTMzZGUKK1ZST1VORFBEXzEyOF8weDMobWVtKQogICBiZWZvcmUKICAgICBkYjFhYWQwMWFhY2NlZTZlLjI3ZDVlNzk5YWMwNzhlYjguNmQ2MzRhZjM2MjM4ODhmZi4wM2I2MmMxOGVhZDJlMzU4CiAgICAgZDZjYTlhNmVmMTc2ZTk2Zi5mYmIzYzAyMzI1ZjQwM2Q0LmVmMDRmZDcxMDgzMGVjMjIuMTFkNjczNDgzZTQ4ZjFkNApAQCAtMzEwMTgsMTAgKzMxMDE4LDEwIEBACiAgICAgZGIxYWFkMDFhYWNjZWU2ZS4yN2Q1ZTc5OWFjMDc4ZWI4LjZkNjM0YWYzNjIzODg4ZmYuMDNiNjJjMThlYWQyZTM1OAogICAgIGQ2Y2E5YTZlZjE3NmU5NmYuZmJiM2MwMjMyNWY0MDNkNC5lZjA0ZmQ3MTA4MzBlYzIyLjExZDY3MzQ4M2U0OGYxZDQKICAgICAyODcyOThhODhmYzllMTBjLjFlYzZiOTJmNWZmODc3ZjIuOWE3N2MzODZiNzBkMmUwYi4wMWM1OWM4NmM0Y2U5ZDNjCi0gICAgYWRkZTIxOWNhMWQzOTI3Mi5lZTVhZDAyYmY2OWYyNGJkLjRhODcxNzIwOGNkYjBiZTcuMmZjZmE1M2QxOWYyMjYzYgotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmQ2MzRhZjM2MjM4ODhmZi4wMDAwMDAwMDAwMDAwMDAwCisgICAgZjc0MDg5ZDlkODQwYzY3ZQogCi1WUFRFU1RfMTI4XzIocmVnKQorVlJPVU5EUERfMTI4XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIGI1NjQ0NWM1OWU0M2JhYjAuNDFkYWIzMzc0MzlmYjhjYy5jNWJiMDA4Mjg1NzY0NmUzLmRiMDI3NTJhYTJhNDNlZTIKICAgICBjNTg3ZDM2ZjA2ODczZTdlLmJmMzJjOTY0OTAzYTBlNDcuMDEzNTQ2YTBhODA4MWIwZC4yOWIyNWE5MDE2NzY4NTI3CkBAIC0zMTAzMCwxMSArMzEwMzAsMTEgQEAKICAgICAxOGZlMDQyM2JhOTYyMDZlCiAgIGFmdGVyCiAgICAgYjU2NDQ1YzU5ZTQzYmFiMC40MWRhYjMzNzQzOWZiOGNjLmM1YmIwMDgyODU3NjQ2ZTMuZGIwMjc1MmFhMmE0M2VlMgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYzEzOWNmMWZjZTFkZGVhLjEwNjQ0MDNlMDM1ZDlhZTMKKyAgICBjNTg3ZDM2ZjA2ODczZTdlLmJmMzJjOTY0OTAzYTBlNDcuMDEzNTQ2YTBhODA4MWIwZC4yOWIyNWE5MDE2NzY4NTI3CiAgICAgODNmNDMxNDNhZDk4OGU5NC4wNWIyZGYwZWE0YWY1MTBmLmZjMTM5Y2YxZmNlMWRkZWEuMTA2NDQwM2UwMzVkOWFlMwotICAgIDRiZjg1YWFiMmUwM2U1OWQuZWUyNTcyMjM5YzBhM2M0Zi4xNGEzMDBlMTFjOGVjOTIzLjZiZTRhNTIxODY2MzNhNDEKLSAgICAwMDAwMDAwMDAwMDAwMDAxCi1WUFRFU1RfMTI4XzIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAxOGZlMDQyM2JhOTYyMDZlCitWUk9VTkRQRF8xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgZjI3ZWRhMzJiYzAyMGE5Ni43OWUwNGExNDI2NTM4MDQ2LjU2NTlmZDhlOTM1ODhkMzQuYTMyZjZkZGRhNTlhMWE2NwogICAgIGQ1MzBhMTM4YTdiMWIyZTQuNjhmNmZkZWIzMDE1OWIzYS4xOTE4ZmIzYmE2YTRmZWU5LjA3MDRkZjRmMzM5MTBlNjAKQEAgLTMxMDQzLDEyICszMTA0MywxMiBAQAogICAgIGMwMzAyZGE5MGU3MzBhNDUKICAgYWZ0ZXIKICAgICBmMjdlZGEzMmJjMDIwYTk2Ljc5ZTA0YTE0MjY1MzgwNDYuNTY1OWZkOGU5MzU4OGQzNC5hMzJmNmRkZGE1OWExYTY3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE5YTYwMjcxNmNhNzcyY2IuNWNkMDkyMjI1YTY1ZTU5OAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKLSAgICAyNTU4ZjdkZGE5MGUyZWE0LmZlZGU5ZDhmZWIxYzNmYjYuMWY2YTQ2MGI4ZTY3MzI3NS5iOWI5YzM0OWNiNzJjOTIzCi0gICAgMDAwMDAwMDAwMDAwMDA0MAorICAgIGQ1MzBhMTM4YTdiMWIyZTQuNjhmNmZkZWIzMDE1OWIzYS4xOTE4ZmIzYmE2YTRmZWU5LjA3MDRkZjRmMzM5MTBlNjAKKyAgICA5Y2RmZDcyMzk3YjFkNDg0Ljc2ODY3MDlhZThkMzcxMjYuMTIyZmViMTZmMWZhNGM5Yi45YTZlNTNhNDYxMDBkZmJiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU2NTlmZDhlOTM1ODhkMzQuODAwMDAwMDAwMDAwMDAwMAorICAgIGMwMzAyZGE5MGU3MzBhNDUKIAotVlBURVNUXzEyOF8yKHJlZykKK1ZST1VORFBEXzEyOF8weDQocmVnKQogICBiZWZvcmUKICAgICAwYzIxOGMyZmM1OTBkY2NjLjRiNjc3ZDU0ZjlkMjdhNmUuNWM0OTgyMzRkNTc5NDE5NS4xYjk0OGEwNzljZjY2ZWE1CiAgICAgZjdkNmRkNDk4YzU0N2M2NS5lOWQ4ZTY3M2EyMGI3NTBlLmVjMTIxYmY3NDE3OGIyNzAuZTE3YjMxZjQzNGI0YmE1NApAQCAtMzEwNTcsMTEgKzMxMDU3LDExIEBACiAgICAgOGY4ZDVhYTE1YjdhNWExZgogICBhZnRlcgogICAgIDBjMjE4YzJmYzU5MGRjY2MuNGI2NzdkNTRmOWQyN2E2ZS41YzQ5ODIzNGQ1Nzk0MTk1LjFiOTQ4YTA3OWNmNjZlYTUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDk4NjYyNDNjYmE0ZDBmMi40ZmU5YjliZjc0YWJkMmIxCisgICAgZjdkNmRkNDk4YzU0N2M2NS5lOWQ4ZTY3M2EyMGI3NTBlLmVjMTIxYmY3NDE3OGIyNzAuZTE3YjMxZjQzNGI0YmE1NAogICAgIGRlOWMxYTYyMDE0YjI1YmMuZGQ3N2FjMjZjMGM1ZGFiMS4wOTg2NjI0M2NiYTRkMGYyLjRmZTliOWJmNzRhYmQyYjEKLSAgICAxZGJmNDFlNmJkMDIxNTdjLjAxMTA0ZDU5NzAwYjY2ODMuMTFmMTU1ODQxMDhhZDVjOC4zZmFiOWU1NTc4ZTk3NGU1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMQotVlBURVNUXzEyOF8yKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWMxMjFiZjc0MTc4YjI3MC5lMTdiMzFmNDM0YjRiYTU0CisgICAgOGY4ZDVhYTE1YjdhNWExZgorVlJPVU5EUERfMTI4XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIDE5NWI2YjhlM2E2OTQxODkuMTA4YjRkNDE1ZTA0ODY1Mi4zMzZlNDRmOWNkZTlkNWFmLjVmOWZlZjI2YWJiNWZkOWQKICAgICBiYmUxNGMwYTMwYzJlNDUwLjEzNGMzYWRmODBkZGI1ZTkuNGQ1ZjBkZjBmNDZiZTM2Mi40ZWRjMmM5NTM5YjE4NjFmCkBAIC0zMTA3MCwxMiArMzEwNzAsMTIgQEAKICAgICA4MWUzOGVlOWFhMDZiNTVmCiAgIGFmdGVyCiAgICAgMTk1YjZiOGUzYTY5NDE4OS4xMDhiNGQ0MTVlMDQ4NjUyLjMzNmU0NGY5Y2RlOWQ1YWYuNWY5ZmVmMjZhYmI1ZmQ5ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYzkxYmIwNjMyMTYyYTUwLmEwNjAxMGQ5NTQ0YTAyNjIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCi0gICAgYjM0NDZlNWNkMmUzNTJhMy5iYWRiYTg5NWI0NDYzYjBkLmFkMjUwNzk3MGU4ZGNiMGMuODMzMjgwOGI5YzRkYTZkNAotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICBiYmUxNGMwYTMwYzJlNDUwLjEzNGMzYWRmODBkZGI1ZTkuNGQ1ZjBkZjBmNDZiZTM2Mi40ZWRjMmM5NTM5YjE4NjFmCisgICAgNGZlYjc5MDA1OTkxMDE5Zi44MjRkMDUyZGJlMWFkZGVlLjJkYWQyNTJiMDA5ZTRjYzguM2NmMzA4M2Q1NjBhYWFmNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVmOWZlZjI2YWJiNWZkOWQKKyAgICA4MWUzOGVlOWFhMDZiNTVmCiAKLVZQVEVTVF8xMjhfMihyZWcpCitWUk9VTkRQRF8xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgOTA1MzMwYzUxOWJmMTU0Ny5jMWI5YTgwYWI3YzM5Mzg3LjE1NDMyMTg1ZmZlZDBiZjEuYWI5MzJlMWUzOTQ1MWQ1YQogICAgIDBlY2U2Mjg5ODcwNjAwMzYuNTYxN2ExZjcyMzNlODI3OC5lZmNmNmI2NzNiOWM4OTQ3LjAxYzIxOWFlOWVkMGZkZTAKQEAgLTMxMDg0LDExICszMTA4NCwxMSBAQAogICAgIGIyZDQzY2M2M2RlNjRmNmYKICAgYWZ0ZXIKICAgICA5MDUzMzBjNTE5YmYxNTQ3LmMxYjlhODBhYjdjMzkzODcuMTU0MzIxODVmZmVkMGJmMS5hYjkzMmUxZTM5NDUxZDVhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE2Y2M4M2E5MDNkZWYwYmEuOGM4MDQxMzI1ODNkMjljNworICAgIDBlY2U2Mjg5ODcwNjAwMzYuNTYxN2ExZjcyMzNlODI3OC5lZmNmNmI2NzNiOWM4OTQ3LjAxYzIxOWFlOWVkMGZkZTAKICAgICA1NWEwMWVhMzkwNjZiMmQ5LjRmMjhkNzBkMzI1ZWQ5YTIuYTZjYzgzYTkwM2RlZjBiYS44YzgwNDEzMjU4M2QyOWM3Ci0gICAgYzMxNTYyN2VjZjZjNjlkYi44NmI4YzUzOTAxMzI1NTMwLjk1ODU2M2I2ZjM0MDdkZjcuMjk5NzI0OTY4NDk1NWIzZQotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZQVEVTVF8xMjhfMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVmY2Y2YjY3M2I5Yzg5NDcuMDAwMDAwMDAwMDAwMDAwMAorICAgIGIyZDQzY2M2M2RlNjRmNmYKK1ZST1VORFBEXzEyOF8weDQobWVtKQogICBiZWZvcmUKICAgICAwNDA0MDdhZWEwM2JjMzg2LmIyNzgyODg2ZTFhMzVmZTkuZDg5NWU4NjhhYmMzYjE0Zi4xODQ4MDlmOWE4NGQ2Y2FhCiAgICAgZmJmMDAxM2FjOGExNzFiMS43ZjE3NmYyNzYxOTdkMWFlLjIxOGFiYjg0NGQxZmFiMmIuOGI1ZjcwZTBiZDkxZjk3ZQpAQCAtMzEwOTcsMTIgKzMxMDk3LDEyIEBACiAgICAgMWI5YjA0YTA1ODIxYTk3YwogICBhZnRlcgogICAgIDA0MDQwN2FlYTAzYmMzODYuYjI3ODI4ODZlMWEzNWZlOS5kODk1ZTg2OGFiYzNiMTRmLjE4NDgwOWY5YTg0ZDZjYWEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjc2YTE3OTc1NDNjNGViMC5lN2I3ZjYwNjU3YjI5MzU1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgotICAgIDQ5MzQ2ZWVlZDhjZDZkZWQuMjQzNDY4ZTQxY2U4MTgxMC4wOWVhNjAzOGU3NjY2NGM3LmIxYmQ3MTQ3NzllZmRiM2IKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgZmJmMDAxM2FjOGExNzFiMS43ZjE3NmYyNzYxOTdkMWFlLjIxOGFiYjg0NGQxZmFiMmIuOGI1ZjcwZTBiZDkxZjk3ZQorICAgIDczNjdhNDU2ZDEyMjE2MWEuODYzYzMwY2RlYmQ1ZmFkNy4zZDYyYjk3YjAyNTFmZGVmLjRhMTc5NGQ2Y2Y5ODVmMjAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDg5NWU4NjhhYmMzYjE0Zi4wMDAwMDAwMDAwMDAwMDAwCisgICAgMWI5YjA0YTA1ODIxYTk3YwogCi1WUFRFU1RfMjU2XzEocmVnKQorVlJPVU5EUERfMjU2XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIGU2ZmQ0ODRiMDdiYjA0OGUuNTcyMmRhZWZmOWFiMzQ1Ny5iMzRiMTRkODkwNWM2NTA0LjVmZWUyY2E3MTc2OTliZTAKICAgICA2ZDMxMzliNTIzNDgyOTFmLjdhZmY2NDQzNGVjYTI1ODQuOTBjYzJmMTZlMmJlMWU2MC4xYzNhOTdiNGFmNjY1ZjY2CkBAIC0zMTExMyw5ICszMTExMyw5IEBACiAgICAgZTZmZDQ4NGIwN2JiMDQ4ZS41NzIyZGFlZmY5YWIzNDU3LmIzNGIxNGQ4OTA1YzY1MDQuNWZlZTJjYTcxNzY5OWJlMAogICAgIDZkMzEzOWI1MjM0ODI5MWYuN2FmZjY0NDM0ZWNhMjU4NC45MGNjMmYxNmUyYmUxZTYwLjFjM2E5N2I0YWY2NjVmNjYKICAgICAwYjgxZDM0YjQ3NTQ1NGQ4LjhlOTU4OGQ4ZjYzNWZkOWYuMTcwNWI1MDhhZTk5N2VjZi4xYzlhMWY0YmNhNmE2Yzg1Ci0gICAgMWUzYjEzNzgxMDZiYzE2OC42ZmIxYzM5OTBiZjk3N2Q1LmE0NDBhMjFjOTE3OWMyZmUuM2JkOTNmNTg4NTdmN2U2OAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZQVEVTVF8yNTZfMShtZW0pCisgICAgNmQzMTM5YjUyMzQ4MjkxZi43YWZmNjQ0MzRlY2EyNTg0LjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDU1YzU3M2M3ZmJiNDUwM2IKK1ZST1VORFBEXzI1Nl8weDAobWVtKQogICBiZWZvcmUKICAgICA0NjI4Mzc4NTQ4MTI5ZjJiLjAxYTlmM2E3MTkxYWFiNzguZjkxZjkwNzFhOTIxNTA1MS45NGNhZjNiYzI2ZWIyNjk5CiAgICAgZWFjZjA4N2M4OWE3Mjc2NC4wZjE4NzE0NmZlZWQ0ZmI3LjA4YWE2YjRlZWRiOTQ0NDAuNDFmMGEzNTYwYTdhZTY0YgpAQCAtMzExMjYsMTAgKzMxMTI2LDEwIEBACiAgICAgNDYyODM3ODU0ODEyOWYyYi4wMWE5ZjNhNzE5MWFhYjc4LmY5MWY5MDcxYTkyMTUwNTEuOTRjYWYzYmMyNmViMjY5OQogICAgIGVhY2YwODdjODlhNzI3NjQuMGYxODcxNDZmZWVkNGZiNy4wOGFhNmI0ZWVkYjk0NDQwLjQxZjBhMzU2MGE3YWU2NGIKICAgICAxZDg2NjE5YWRhN2ZhNDExLmE2ZDQ4OGMwNWM2ZWU4Y2YuNzgyMGQwMWJmMmNlMGZjZC4wOGZjYWU1NWQ4YjMzZGMxCi0gICAgYmExOWJlYzk1NmE0ZDE1Zi4yMDI4MzU4MWNmMmJiNDZkLjI0NGIzYmM0ZDU2YjZjMjYuNDUzYTEwMjUyZDIwNjhhNgotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICA0NjI4Mzc4NTQ4MTI5ZjJiLjAwMDAwMDAwMDAwMDAwMDAuZjkxZjkwNzFhOTIxNTA1MS44MDAwMDAwMDAwMDAwMDAwCisgICAgNTRmOGM2MzJhNDUwYTNhNwogCi1WUFRFU1RfMjU2XzEocmVnKQorVlJPVU5EUERfMjU2XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDkxODBjYWU4ZGFjYzJhNzAuOWY1MzliZjcxOTI0NmI3YS5kYjYyNzJmNWYyYWZlZDNjLmVhZjgyOTM2YjE5YzE4NzQKICAgICA1ODIwMWFiMzZhMjIzOGFjLmE3MDI3NTBmNDAwYjJkOGQuMzFjYzNkODg2MTg3ZDBlOS5hNWYzMTU1YmEzNmVjZmU2CkBAIC0zMTE0MCw5ICszMTE0MCw5IEBACiAgICAgOTE4MGNhZThkYWNjMmE3MC45ZjUzOWJmNzE5MjQ2YjdhLmRiNjI3MmY1ZjJhZmVkM2MuZWFmODI5MzZiMTljMTg3NAogICAgIDU4MjAxYWIzNmEyMjM4YWMuYTcwMjc1MGY0MDBiMmQ4ZC4zMWNjM2Q4ODYxODdkMGU5LmE1ZjMxNTViYTM2ZWNmZTYKICAgICAwNDIyYjFmZmYxZGQwYTA4LmFlZjBjNmZkZTc2M2Q1YzUuN2ZiNDkxYTZiOTNlOTkxZi4zMTA4N2IyMGM2ZWM0ZGE2Ci0gICAgZjNkMzhjMzkwYTg5ZGIyZi45MGVhMGNhZDI4M2ExZDRkLjIyNjQ2YWJjOTU2MDgzOGIuNmEwM2Q3NzIzNjIyNGRlMAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZQVEVTVF8yNTZfMShtZW0pCisgICAgNTgyMDFhYjM2YTIyMzhhYy44MDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDJiYjBhNjNiMTAxZDhjYzEKK1ZST1VORFBEXzI1Nl8weDAobWVtKQogICBiZWZvcmUKICAgICA1MmRhNjI2OTcwZThjNjc1LjgwN2ZhNWNiNTFiM2U5Y2UuMjhiY2MyMGIyMjljYzI1Mi43NDI5YzUzNDkyN2FjYmQ5CiAgICAgYmE0ZTg5ZTc3MThmYjYyNy4wNzcxZmEyMzYzZTY2ZTkxLjU0MzI2NTAzZWY5MzdmMDAuZDI0ZTlkN2M0YjE3YWRiNApAQCAtMzExNTMsMTAgKzMxMTUzLDEwIEBACiAgICAgNTJkYTYyNjk3MGU4YzY3NS44MDdmYTVjYjUxYjNlOWNlLjI4YmNjMjBiMjI5Y2MyNTIuNzQyOWM1MzQ5MjdhY2JkOQogICAgIGJhNGU4OWU3NzE4ZmI2MjcuMDc3MWZhMjM2M2U2NmU5MS41NDMyNjUwM2VmOTM3ZjAwLmQyNGU5ZDdjNGIxN2FkYjQKICAgICAzZWQ4OTdhMDJmMWYxOTA0LmU0Zjc4NmFjZGNhZmE3MjMuZWYxODZmODFhYjJkMTI4Mi45OTIxZWRmZTVkYzM2NGM5Ci0gICAgYmM0NDA2ODJjN2EzYWIzOC43MjViNDVkMTU3OTljZjMxLmQ0Mzk1ZTcyNzI3NjM1MDQuMjNlY2I0Mjg2MzBiMmRjNAotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICA1MmRhNjI2OTcwZThjNjc1LjgwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NDI5YzUzNDkyN2FjYmQ5CisgICAgY2RmZGViNjVmYTdhNDQ1MAogCi1WUFRFU1RfMjU2XzEocmVnKQorVlJPVU5EUERfMjU2XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIGYzOWU4ZjIxYmQ5Y2U1MTkuMGU1ZTU0Nzg1NTI4MjhlZS4wZmVhMzQwMDcwMzAyMzY2LmUxNjNhZGMwNjI3OWE0YjQKICAgICBmMjFjOWRjODQ5ZmU0YmNjLjEyZjJmYjZlZjRiODRiNTMuMTZmMDRkYTRjNDAxZGY2Zi5mMDYwZDg1OTk0NDIxZGJjCkBAIC0zMTE2Nyw5ICszMTE2Nyw5IEBACiAgICAgZjM5ZThmMjFiZDljZTUxOS4wZTVlNTQ3ODU1MjgyOGVlLjBmZWEzNDAwNzAzMDIzNjYuZTE2M2FkYzA2Mjc5YTRiNAogICAgIGYyMWM5ZGM4NDlmZTRiY2MuMTJmMmZiNmVmNGI4NGI1My4xNmYwNGRhNGM0MDFkZjZmLmYwNjBkODU5OTQ0MjFkYmMKICAgICAyNGMzMTBjNjM5MmJiMzE1LmEyY2I3OTUxYzA2MWQxOTIuZTJiOThlMjllZTk2M2ZmNy5kZmZkNWMyNzI2ZGQ1YTQ4Ci0gICAgZTZkZWU0ODcyOWIwNTlhMC45Y2I3NGEwYmQ2MmY3NmQ4LmQxOTFmMmZiOGI3ZTdmYWMuODgwNmI0MTgzNDU3MTg4NQotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZQVEVTVF8yNTZfMShtZW0pCisgICAgZjIxYzlkYzg0OWZlNGJjYy4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjA2MGQ4NTk5NDQyMWRiYworICAgIGM5NDc1YjE3ZDliYjEyOWYKK1ZST1VORFBEXzI1Nl8weDAobWVtKQogICBiZWZvcmUKICAgICA3YzhiZDAxMDMyMTUwNmMxLjk0YmIxNjc3YjYxNzc4MTguZGE4MGU4ODk1MTJkZjU1MC4zZWM0NzY4NzM3NDJkYTM3CiAgICAgN2ZhMDhjZWY1YTcyYWUxOC44YWE0YTAwMzdjZWU0ZTI5LjNhZjNkMWI4NGU2NzBiMjcuODQ5ZDE0Mzc4YzcwOGQ0NwpAQCAtMzExODAsMTAgKzMxMTgwLDEwIEBACiAgICAgN2M4YmQwMTAzMjE1MDZjMS45NGJiMTY3N2I2MTc3ODE4LmRhODBlODg5NTEyZGY1NTAuM2VjNDc2ODczNzQyZGEzNwogICAgIDdmYTA4Y2VmNWE3MmFlMTguOGFhNGEwMDM3Y2VlNGUyOS4zYWYzZDFiODRlNjcwYjI3Ljg0OWQxNDM3OGM3MDhkNDcKICAgICBhYzUwMGNhMDZkZGRjNmQwLjI0ZTY4MDk1MTZjMTE1ODAuOTZkYzgwODJlOGU5NzQ4OS4wMTY5Y2E3ODI4OTNkMzg1Ci0gICAgZTA2OGNkMGY4ODYzMGMxNC5iZWNkYjE5YjIwMWIwOWM5LmNjMDY3MWQ1M2NjMGVjYTEuMGY3NTkzYjdhNzM4ZTlhMAotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICA3YzhiZDAxMDMyMTUwNmMxLjgwMDAwMDAwMDAwMDAwMDAuZGE4MGU4ODk1MTJkZjU1MC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMGMwYjZiNWZhNGVhMGI0MgogCi1WUFRFU1RfMjU2XzIocmVnKQorVlJPVU5EUERfMjU2XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDUyNzc0ZmRiYmMzNTc1MTguZjhiNDRhMjljNjBmM2ExMC5iNGE1MzA4MDM3ODg2OGIwLmI2M2YyMDljNjVmNzJlOWMKICAgICAzZTA3Mzk5OThhYTY2M2NkLmNlMDBmZmQ4NDRlZDBkZjEuNjJiYWY3YWZmNzk0NmNlMC4zMTUxMGFjMzgwOWJmN2E2CkBAIC0zMTE5MiwxMSArMzExOTIsMTEgQEAKICAgICBhMTliZmNiMDkwODdkMmQxCiAgIGFmdGVyCiAgICAgNTI3NzRmZGJiYzM1NzUxOC5mOGI0NGEyOWM2MGYzYTEwLmI0YTUzMDgwMzc4ODY4YjAuYjYzZjIwOWM2NWY3MmU5YworICAgIDNlMDczOTk5OGFhNjYzY2QuY2UwMGZmZDg0NGVkMGRmMS42MmJhZjdhZmY3OTQ2Y2UwLjMxNTEwYWMzODA5YmY3YTYKICAgICAyZDA1MjcwNGFiYzgxMDBlLjNmMTg2OTA5MWUwOTQwZTMuMjM1ODA0OTZmYWNjNTEwNS4xOTA5YWEzNmE4YjcwM2VhCi0gICAgMmQwNTI3MDRhYmM4MTAwZS4zZjE4NjkwOTFlMDk0MGUzLjIzNTgwNDk2ZmFjYzUxMDUuMTkwOWFhMzZhOGI3MDNlYQotICAgIDc5YmYxNDg4YmEyN2I5ODYuMjdjNzAyYTk2ZTcwOTExMi41NWNhNTJhMGRmYmI1NWNjLjRiMzQ3Y2UxZjk1NzBkOTQKLSAgICAwMDAwMDAwMDAwMDAwMDAxCi1WUFRFU1RfMjU2XzIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuY2UwMGZmZDg0NGVkMGRmMS42MmJhZjdhZmY3OTQ2Y2UwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBhMTliZmNiMDkwODdkMmQxCitWUk9VTkRQRF8yNTZfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgZjgwZGE3OGY4OTU0MGVjZC43ZjdmZmM5MTUzNTA5OWUyLjYyZGE0OGEzNTMyZGJhYTkuNTM1ZGRkMzkzZmVlYjJlMQogICAgIDJjNTVmNzZhZmZjOTdkYjQuOWM5MmRjOGIxM2NlZWVjZS5jZDFlYjZlMmU2NGQ3OGQ0Ljc5NWRhMmNkYjllZmE1ZWYKQEAgLTMxMjA1LDEyICszMTIwNSwxMiBAQAogICAgIDcyZTMxZWE0Y2Y0OTU4YWMKICAgYWZ0ZXIKICAgICBmODBkYTc4Zjg5NTQwZWNkLjdmN2ZmYzkxNTM1MDk5ZTIuNjJkYTQ4YTM1MzJkYmFhOS41MzVkZGQzOTNmZWViMmUxCi0gICAgMDdmMjU4NzA3NmFiZjEzMi44MDgwMDM2ZWFjYWY2NjFkLjlkMjViNzVjYWNkMjQ1NTYuYWNhMjIyYzZjMDExNGQxZQotICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKLSAgICA5Yjk2N2JjNWQzZGRlMmYwLjg2ZTE3MTAzNzdmYWUxMDQuOWU2M2ZiZTQ4Y2UzYTE5OS5hY2Q0YzY5NzY1OTEzY2E5Ci0gICAgMDAwMDAwMDAwMDAwMDA0MAorICAgIDJjNTVmNzZhZmZjOTdkYjQuOWM5MmRjOGIxM2NlZWVjZS5jZDFlYjZlMmU2NGQ3OGQ0Ljc5NWRhMmNkYjllZmE1ZWYKKyAgICAxOTNlNmEyZTBlZjNkYWIxLjJhNDRhZmUzOTYyZGYyZjUuNDI1ZGM5NTQ0NmRiODZjMS4yMzE2OWJjOWU2NGQ2YWEzCisgICAgZjgwZGE3OGY4OTU0MGVjZC43ZjdmZmM5MTUzNTA5OWUyLjYyZGE0OGEzNTMyZGJhYTkuNTM1ZGRkMzkzZmVlYjJlMQorICAgIDcyZTMxZWE0Y2Y0OTU4YWMKIAotVlBURVNUXzI1Nl8yKHJlZykKK1ZST1VORFBEXzI1Nl8weDEocmVnKQogICBiZWZvcmUKICAgICBkMDhlOWY1ZGMyMDBmYTU5LjhlMjdhNzFkNmE5MzUxOWUuMGNiNDFlNTg1MmMwZjlhNi5iZGZlY2E3ZWQ2NzI4NThiCiAgICAgMjEyMzQ2MmNkYTQzNWU1Yi5jZWJlNjgyMWVkMjJlM2U3LjE4MGJiMjRmYzQwYjc0ODguN2JmOWIxMGY0MDkzZWVjMQpAQCAtMzEyMTksMTEgKzMxMjE5LDExIEBACiAgICAgMDcyMGNmYmM1MmRiOWNiNgogICBhZnRlcgogICAgIGQwOGU5ZjVkYzIwMGZhNTkuOGUyN2E3MWQ2YTkzNTE5ZS4wY2I0MWU1ODUyYzBmOWE2LmJkZmVjYTdlZDY3Mjg1OGIKKyAgICAyMTIzNDYyY2RhNDM1ZTViLmNlYmU2ODIxZWQyMmUzZTcuMTgwYmIyNGZjNDBiNzQ4OC43YmY5YjEwZjQwOTNlZWMxCiAgICAgYzNlYzBkN2ZiMjlkYmY1Zi4zNzI3M2NiYzdiOTU1M2Y3LjA2MzAyYTUzNjg2ODhmNTYuYjQxZjJjODFlNTUyOTc2NwotICAgIGMzZWMwZDdmYjI5ZGJmNWYuMzcyNzNjYmM3Yjk1NTNmNy4wNjMwMmE1MzY4Njg4ZjU2LmI0MWYyYzgxZTU1Mjk3NjcKLSAgICAxMDM2ZjJjMWU3OWE1YTEwLmE1MmQ5ZWRjMmRmODVlZjkuMzI3MDgxY2ZkYjYyODZiYi40NDNkYjdjMWUyYmIzZGFiCi0gICAgMDAwMDAwMDAwMDAwMDAwMQotVlBURVNUXzI1Nl8yKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLmNlYmU2ODIxZWQyMmUzZTcuMDAwMDAwMDAwMDAwMDAwMC43YmY5YjEwZjQwOTNlZWMxCisgICAgMDcyMGNmYmM1MmRiOWNiNgorVlJPVU5EUERfMjU2XzB4MShtZW0pCiAgIGJlZm9yZQogICAgIGQ5OTFlZjVjNTFiZTcwYjcuNjY0ZGYxNWUxNGM3NmIxYy5mNDllMGE2YzIyNThiZjE5LmY4MTdiMzMxYjg4Njk0NjQKICAgICA5NjVmOTM4ZmZjNmU3NGQ4LjFmN2MwNGMyZDVhZTJkMmMuMDA0NGZkNTg3M2MwMzQ4NC5iNDcxYmNlNDljNWVmNmZjCkBAIC0zMTIzMiwxMiArMzEyMzIsMTIgQEAKICAgICA0NGE3YmIxYjg2YTE2YTFiCiAgIGFmdGVyCiAgICAgZDk5MWVmNWM1MWJlNzBiNy42NjRkZjE1ZTE0Yzc2YjFjLmY0OWUwYTZjMjI1OGJmMTkuZjgxN2IzMzFiODg2OTQ2NAotICAgIDI2NmUxMGEzYWU0MThmNDguOTliMjBlYTFlYjM4OTRlMy4wYjYxZjU5M2RkYTc0MGU2LjA3ZTg0Y2NlNDc3OTZiOWIKLSAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCi0gICAgNDAzZTU4NWFjNDZiZmUyYi4yZTU2NWE4Zjg1ZTBiNzBlLmJmNjI2NGY1OWZkOTQ1ZWEuN2U2ZDQ0ZWRlNzYwYTVhYwotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICA5NjVmOTM4ZmZjNmU3NGQ4LjFmN2MwNGMyZDVhZTJkMmMuMDA0NGZkNTg3M2MwMzQ4NC5iNDcxYmNlNDljNWVmNmZjCisgICAgMTk1NTM3M2Y2ZmY5NjU0NS45OTExMjg1OWM3ZGVkZGVlLmE1ZWNmMThkM2YzYzc3NjYuYzJjOTk4NTQyMjc4ZTgzMAorICAgIGQ5OTFlZjVjNTFiZTcwYjcuNjY0ZGYxNWUxNGM3NmIxYy5mNDllMGE2YzIyNThiZjE5LmY4MTdiMzMxYjg4Njk0NjQKKyAgICA0NGE3YmIxYjg2YTE2YTFiCiAKLVZQVEVTVF8yNTZfMihyZWcpCitWUk9VTkRQRF8yNTZfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgNzBjNGY5NGI5Y2M3NzMyYS5lNmU4NzBjYjFhY2VmZGI2LjNjOTg5NWQwYWM0MmY3MzguMjk3MmQxN2RiMWEyNTkzZAogICAgIDVlMTBmYWU3YzQ1ZWZjODQuZTcxZGZkN2U4YjMwMWMxMS4xZDIzZDY4OWQ4OTBkODE3LmMxZThiNDEyOTFhMzcxOGIKQEAgLTMxMjQ2LDExICszMTI0NiwxMSBAQAogICAgIDJlYTRmYzUwMTk3MTFmMGIKICAgYWZ0ZXIKICAgICA3MGM0Zjk0YjljYzc3MzJhLmU2ZTg3MGNiMWFjZWZkYjYuM2M5ODk1ZDBhYzQyZjczOC4yOTcyZDE3ZGIxYTI1OTNkCisgICAgNWUxMGZhZTdjNDVlZmM4NC5lNzFkZmQ3ZThiMzAxYzExLjFkMjNkNjg5ZDg5MGQ4MTcuYzFlOGI0MTI5MWEzNzE4YgogICAgIDZhZDdiYjVkOWFmMzQwZDYuMWVhYTdhNWYzMzlkMTg2OS4yZTQzMTcyNGEzNTQ5NzU4LjYyOTA4YTllNWFlOTQ3ZmYKLSAgICA2YWQ3YmI1ZDlhZjM0MGQ2LjFlYWE3YTVmMzM5ZDE4NjkuMmU0MzE3MjRhMzU0OTc1OC42MjkwOGE5ZTVhZTk0N2ZmCi0gICAgZjA2NTM3MTdiYjExN2RjYy42OTViNjQ1YjJmMWZhY2VhLmNjNDQ1NjBmYWMxYzcwYTYuZTgzNWNlMGYyOTdmOTdjNgotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZQVEVTVF8yNTZfMihtZW0pCisgICAgNWUxMGZhZTdjNDVlZmM4NC5lNzFkZmQ3ZThiMzAxYzExLjAwMDAwMDAwMDAwMDAwMDAuYzFlOGI0MTI5MWMwMDAwMAorICAgIDJlYTRmYzUwMTk3MTFmMGIKK1ZST1VORFBEXzI1Nl8weDEobWVtKQogICBiZWZvcmUKICAgICAxMmE5OTA0YzQ2Y2M5OWZiLjRiMDU2YTgzYzM0NWVjMTEuYTNmYjM1NWM5YWM1OTZiZi41MTcyOGViNDhjNzQ5ZWFlCiAgICAgNmUxMDA2ZjFjZDliYzJjMi5kOTA0NTAwYzRkMWFjYzUyLmE3NTg2YjRmOTE5ODkwMTUuMWExOGJiODFlMmU2NWUxYgpAQCAtMzEyNTksMTIgKzMxMjU5LDEyIEBACiAgICAgYTZkOWQ5MGFiNDVhNjE3ZAogICBhZnRlcgogICAgIDEyYTk5MDRjNDZjYzk5ZmIuNGIwNTZhODNjMzQ1ZWMxMS5hM2ZiMzU1YzlhYzU5NmJmLjUxNzI4ZWI0OGM3NDllYWUKLSAgICBlZDU2NmZiM2I5MzM2NjA0LmI0ZmE5NTdjM2NiYTEzZWUuNWMwNGNhYTM2NTNhNjk0MC5hZThkNzE0YjczOGI2MTUxCi0gICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgotICAgIDAzMzQ4YWU0NTdjNjBmODIuZmI1MDI2MjU1OGQ3Y2E3Ni44MTc0ZjNiYzkwZmFhNmYyLmU5MDBlNTQwNTk0ZTg0ZDcKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgNmUxMDA2ZjFjZDliYzJjMi5kOTA0NTAwYzRkMWFjYzUyLmE3NTg2YjRmOTE5ODkwMTUuMWExOGJiODFlMmU2NWUxYgorICAgIDIwYTVkYjJhYzllYTU1OGIuZjVhZmU1MWVmNTFjNTczYS41MzNjODEyMTJmYTY1NjE3Ljg0ODNkOWUxNDcwMGVjOWEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjRiMDU2YTgzYzM0NWVjMTEuYmZmMDAwMDAwMDAwMDAwMC41MTcyOGViNDhjNzQ5ZWFlCisgICAgYTZkOWQ5MGFiNDVhNjE3ZAogCi1WVEVTVFBTXzEyOF8xKHJlZykKK1ZST1VORFBEXzI1Nl8weDIocmVnKQogICBiZWZvcmUKICAgICAxNzVhYjNhYmYzYjNjMDM5LmYyODg4ZjA5OTMzYWFjZDUuNDYzNDBlOGQxMWQ4NjFiMS4wZmNkM2UwZWQyYTAzYWQxCiAgICAgOThkMTZmOGZiM2UyZGRiNi5jYjZmNjY4Njk4NTJlOGFkLjM0YTY5OWMyYmRhYjU3OTguZDcxMGRjMDIwZWE1Y2ZlMQpAQCAtMzEyNzUsOSArMzEyNzUsOSBAQAogICAgIDE3NWFiM2FiZjNiM2MwMzkuZjI4ODhmMDk5MzNhYWNkNS40NjM0MGU4ZDExZDg2MWIxLjBmY2QzZTBlZDJhMDNhZDEKICAgICA5OGQxNmY4ZmIzZTJkZGI2LmNiNmY2Njg2OTg1MmU4YWQuMzRhNjk5YzJiZGFiNTc5OC5kNzEwZGMwMjBlYTVjZmUxCiAgICAgODU4OTA3MjI4Zjc1ZjRhMS42OGIzOGM0NzgyMWI3ZjM5LjFmZjRjMzMwZjdkYWU5ZDcuYjcwYzRiODM2MjE0MjA0ZQotICAgIDNhY2Q3OWQxMjNmNzQwYTYuYTYyMTdiMzk2ZWEwMmNhMy42NTY4ODk0MzVjZjM1MzE5Ljg5OGMwNjdmZWFmYWViNDMKLSAgICAwMDAwMDAwMDAwMDAwMDAxCi1WVEVTVFBTXzEyOF8xKG1lbSkKKyAgICA4MDAwMDAwMDAwMDAwMDAwLmNiNmY2Njg2OTg1MmU4YWQuM2ZmMDAwMDAwMDAwMDAwMC5kNzEwZGMwMjBlYTVjZmUxCisgICAgMmI1YjhhZTFjMTYxZWFlZAorVlJPVU5EUERfMjU2XzB4MihtZW0pCiAgIGJlZm9yZQogICAgIDc3NDY1MTk2MDM1N2Q5NzguMTNlYWJmMDYwY2Y0ZmU3MC42Mjg1YjE0Njc3ZWVhYzE4LjYwNTBlNjY4ODc4MWQxMGIKICAgICA0YTFhZDk4OGNkZTg3NjBmLjZjMmNkODJmZTZmOTY5YWMuNzZhYWE5NWNiOTEwYmFjMy42ZWY2ZDYwOTE1MTE5ZTU5CkBAIC0zMTI4OCwxMCArMzEyODgsMTAgQEAKICAgICA3NzQ2NTE5NjAzNTdkOTc4LjEzZWFiZjA2MGNmNGZlNzAuNjI4NWIxNDY3N2VlYWMxOC42MDUwZTY2ODg3ODFkMTBiCiAgICAgNGExYWQ5ODhjZGU4NzYwZi42YzJjZDgyZmU2Zjk2OWFjLjc2YWFhOTVjYjkxMGJhYzMuNmVmNmQ2MDkxNTExOWU1OQogICAgIDgxYTE5ZGE0M2IxZjdiZGUuYTFkZmJkYjY0YzkxYmYwNS5iZjVlZTA2NjUyMTIxNGQxLmU5YTc1NTk0YTEyZWY3YWUKLSAgICBmNmE3MTlkNzY3MDhhNTEzLjBlNGY2YjA5ZGE0OTNhMjguMWE2YmQwNTA1YjAwNzQ2ZC4yZmFmNWY3NGM4NjQxOGI3Ci0gICAgMDAwMDAwMDAwMDAwMDA0MAorICAgIDc3NDY1MTk2MDM1N2Q5NzguM2ZmMDAwMDAwMDAwMDAwMC42Mjg1YjE0Njc3ZWVhYzE4LjYwNTBlNjY4ODc4MWQxMGIKKyAgICA5YTU5ZjExNDI1NDAzYzFmCiAKLVZURVNUUFNfMTI4XzEocmVnKQorVlJPVU5EUERfMjU2XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDg3ZjMwNmUyNTU0ZGEwOTMuODZmYWNhMGI3MGFmYWZkOC4wZmM3ZGY5MzJkYWIxN2MxLjYxOWVmNzA2ZjJlNzk2YzQKICAgICA1M2M3OWE0OWYzMTc4MGJlLjBkNjUyYTJlNzAyMTU3NTkuMDA5NTE0YzBlMDQ2OTE3Yi43MWM0ZDA3NDMzZDIzODAyCkBAIC0zMTMwMiw5ICszMTMwMiw5IEBACiAgICAgODdmMzA2ZTI1NTRkYTA5My44NmZhY2EwYjcwYWZhZmQ4LjBmYzdkZjkzMmRhYjE3YzEuNjE5ZWY3MDZmMmU3OTZjNAogICAgIDUzYzc5YTQ5ZjMxNzgwYmUuMGQ2NTJhMmU3MDIxNTc1OS4wMDk1MTRjMGUwNDY5MTdiLjcxYzRkMDc0MzNkMjM4MDIKICAgICA1ODIyYTliNTliMmIxODRkLjY4YjNiNzJhODM2YTU3YzMuM2MwMzA2ZmM5MGEzZTUwMy4yNmE2ZDc4NjM5Y2UxNDUyCi0gICAgZjM1MDMwOTNlYTE0YTNlYy43MWIxZWNlZGM2OTQ2YzQyLjIxNWViMmIzZDg1MDRmMDQuNWMxMzg5MjgyMGU2ZTdlMQotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUFNfMTI4XzEobWVtKQorICAgIDUzYzc5YTQ5ZjMxNzgwYmUuM2ZmMDAwMDAwMDAwMDAwMC4zZmYwMDAwMDAwMDAwMDAwLjcxYzRkMDc0MzNkMjM4MDIKKyAgICBmMGQ2NjE0NzA1MjY2Y2RhCitWUk9VTkRQRF8yNTZfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgYmNiYWRhY2QwNDliNjE2YS44MTlkMjk0ZDdjNWU1ZTQ2LjA1MmI0NTYyNTRhZDUxMDEuMGFmMjEyNTE1NWQ4MGIyYgogICAgIDlkOGQ3M2E3Mzg0ZjgwYmQuNWM1NTkyNTBlYzk2ODUwOC4wMGVkM2Y3NTQ5YzBjMzJkLjUzMGIyNDQzYTJjODU0MjMKQEAgLTMxMzE1LDEwICszMTMxNSwxMCBAQAogICAgIGJjYmFkYWNkMDQ5YjYxNmEuODE5ZDI5NGQ3YzVlNWU0Ni4wNTJiNDU2MjU0YWQ1MTAxLjBhZjIxMjUxNTVkODBiMmIKICAgICA5ZDhkNzNhNzM4NGY4MGJkLjVjNTU5MjUwZWM5Njg1MDguMDBlZDNmNzU0OWMwYzMyZC41MzBiMjQ0M2EyYzg1NDIzCiAgICAgNmYxOWE1YzJiZDUxODZmZS5lMWMzNjYwOWQ2NDc1NGRkLjNlYzM1NTEyYzNkYTdlZjEuNTdmNWUzZjM1Y2FhNjg5OQotICAgIDBlMmJlZDA5YjBhYTJlNWEuNmMzNWEyZTJkN2ZkMDY3Mi45Yjc4MDMyNWRiMDYzZTdhLjc0ZmI0YmNmMWUwZDgwMzkKLSAgICAwMDAwMDAwMDAwMDAwMDQxCisgICAgODAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLjNmZjAwMDAwMDAwMDAwMDAuM2ZmMDAwMDAwMDAwMDAwMAorICAgIDA1NmE1OTQxODQ3YWRiYWUKIAotVlRFU1RQU18xMjhfMShyZWcpCitWUk9VTkRQRF8yNTZfMHgyKHJlZykKICAgYmVmb3JlCiAgICAgNjU4ZTA4YjcyYjdmYjNhNS41NjhmYzg2ODJjNjgzNWZjLjU5ZjU0MDQ5OGE0NWQ4NzMuZjNkYWM1OWFhZjUwYmVmNAogICAgIGYyYjM1NDljYWZhNzQ1Y2EuMjMxMGIxY2E0ZTk3NTcxMS4wNDUwM2VhOThjYWEwNThiLjIyYjMxNzVlNWJjNWJiOGEKQEAgLTMxMzI5LDkgKzMxMzI5LDkgQEAKICAgICA2NThlMDhiNzJiN2ZiM2E1LjU2OGZjODY4MmM2ODM1ZmMuNTlmNTQwNDk4YTQ1ZDg3My5mM2RhYzU5YWFmNTBiZWY0CiAgICAgZjJiMzU0OWNhZmE3NDVjYS4yMzEwYjFjYTRlOTc1NzExLjA0NTAzZWE5OGNhYTA1OGIuMjJiMzE3NWU1YmM1YmI4YQogICAgIDA2MjUzOTVjYWI3ZmNkYzguNTE3YzI0MWQzMTQxNTBjNS5jOTkyOTc2ZTc4YjhjYjY3LjA0ZDA3NjViZmE3MGYxNjkKLSAgICBmZjMwYjM2M2JiOTI4NjRjLmJjOWQ5ZTRkZjI3NGRiNDMuMDQwNzQ3MDNlYmZjNjRiMi43NWZkNWQ3ZmE4NWQxY2JjCi0gICAgMDAwMDAwMDAwMDAwMDA0MAotVlRFU1RQU18xMjhfMShtZW0pCisgICAgZjJiMzU0OWNhZmE3NDVjYS4zZmYwMDAwMDAwMDAwMDAwLjNmZjAwMDAwMDAwMDAwMDAuM2ZmMDAwMDAwMDAwMDAwMAorICAgIDUxMDY0OGI0ODI5OWY3YjAKK1ZST1VORFBEXzI1Nl8weDIobWVtKQogICBiZWZvcmUKICAgICA3M2I2YjNlOGE0MmYzZjcwLjM3MjBiZjFkN2M2Y2FlMDEuM2Y0MDlhNDRhYzNiYjViOC4xMWZhNGJkNjgwMDEwZDE5CiAgICAgYjlkYjFhMDYyOTJiYWYyYS4wYzQwNTdmNjhhOWE3ZTk0LmI4MzE5M2VmN2NhMzlhNGYuNGNiOTllNTNkNDU0MDE0OApAQCAtMzEzNDIsMTAgKzMxMzQyLDEwIEBACiAgICAgNzNiNmIzZThhNDJmM2Y3MC4zNzIwYmYxZDdjNmNhZTAxLjNmNDA5YTQ0YWMzYmI1YjguMTFmYTRiZDY4MDAxMGQxOQogICAgIGI5ZGIxYTA2MjkyYmFmMmEuMGM0MDU3ZjY4YTlhN2U5NC5iODMxOTNlZjdjYTM5YTRmLjRjYjk5ZTUzZDQ1NDAxNDgKICAgICBmZTNmZmFmYTJkOWEwNTA3LmQ4ZGQ3OTVhODBhNzM1YjAuMDIzYzA4M2E3ZGI3NDYzNS4xMThlM2NlNDgyODA3ZGVhCi0gICAgMWVhZmNlYjBjZDg3ZmIzNi5mODQzMjFiNWZhMWYwZDAyLmY5MmQ3MjEyY2M4NDc0OTYuYmNjNjIxZjYyNzExYmRhYwotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICA3M2I2YjNlOGE0MmYzZjcwLjNmZjAwMDAwMDAwMDAwMDAuM2ZmMDAwMDAwMDAwMDAwMC4zZmYwMDAwMDAwMDAwMDAwCisgICAgYTlhZDQ5ZjY1ZTkzZmQzOQogCi1WVEVTVFBTXzEyOF8yKHJlZykKK1ZST1VORFBEXzI1Nl8weDMocmVnKQogICBiZWZvcmUKICAgICAzNDhmYjE0ZWMzOTM3ODNlLmY0ZjcxMjE0MjRmZTRlZTEuYzliZTQ5NzQ5NThmNDMzNi43OGQwNGU2MTg0MTRlMTlkCiAgICAgYjhiODUzNmNmMzljNmI2Ny41ZWUzNDMxMjRmMGNiOTM0LmE1OWFlZjAxZWM4MjEzZjcuNWRmMDE5MTVjMTc1NDk3NwpAQCAtMzEzNTQsMTEgKzMxMzU0LDExIEBACiAgICAgMDEzY2U3YzBiM2YyYjhhYgogICBhZnRlcgogICAgIDM0OGZiMTRlYzM5Mzc4M2UuZjRmNzEyMTQyNGZlNGVlMS5jOWJlNDk3NDk1OGY0MzM2Ljc4ZDA0ZTYxODQxNGUxOWQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTkyMzBlY2E5Yzg0YjlmMi44MzVhNGUxOWEwYjM2NzRmCisgICAgYjhiODUzNmNmMzljNmI2Ny41ZWUzNDMxMjRmMGNiOTM0LmE1OWFlZjAxZWM4MjEzZjcuNWRmMDE5MTVjMTc1NDk3NwogICAgIDkzNzMyZGJhOGEzYjEyNWYuMzczZmRiOTY2OWJjZmE1Yy5lOTIzMGVjYTljODRiOWYyLjgzNWE0ZTE5YTBiMzY3NGYKLSAgICAyMDBlM2JhNjIzZmJhOWQzLjVhZDY1ODhkOGYxYWNiODUuZjJhNGEyM2E0MDIyNzBkMy5jNWRhNjk1OTNkZDhmODUyCi0gICAgMDAwMDAwMDAwMDAwMDAwMQotVlRFU1RQU18xMjhfMihtZW0pCisgICAgODAwMDAwMDAwMDAwMDAwMC41ZWUzNDMxMjRmMGNiOTM0LjgwMDAwMDAwMDAwMDAwMDAuNWRmMDE5MTVjMTc1NDk3NworICAgIDAxM2NlN2MwYjNmMmI4YWIKK1ZST1VORFBEXzI1Nl8weDMobWVtKQogICBiZWZvcmUKICAgICAxMjRjNDIzYzFlMGQ2Mzg3LmJiZDM3NzliNWE2ODZiNmUuYTU3NjM1ZTFkYzMzZThkYS4xYTZhYTdiZDc1ZTc3NTQ1CiAgICAgZDNkNmY4Yjk5YjM0YjQxMi5iZjBmZGYwNWNjMGU5NWRkLmYyZTllZTgwNmQxMjBmODguYmVjMTFhYmZkNjVmMDNmNApAQCAtMzEzNjcsMTIgKzMxMzY3LDEyIEBACiAgICAgMmEyNGQ5ZjcxYzc0NDEyZAogICBhZnRlcgogICAgIDEyNGM0MjNjMWUwZDYzODcuYmJkMzc3OWI1YTY4NmI2ZS5hNTc2MzVlMWRjMzNlOGRhLjFhNmFhN2JkNzVlNzc1NDUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWE4OWNhMWUyM2NjMTcyNS5lNTk1NTg0MjhhMTg4YWJhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgotICAgIGQ5ODc2MjYxMzlkNjNiZTMuNzcxYzIwZThjZjM3MTBlNS4wNjdiZTU0YmM4NTM2NjllLmVhNTIzNmYwOGU5YWFlYmMKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgZDNkNmY4Yjk5YjM0YjQxMi5iZjBmZGYwNWNjMGU5NWRkLmYyZTllZTgwNmQxMjBmODguYmVjMTFhYmZkNjVmMDNmNAorICAgIDIyYTU4NDIxNDU3MzY4NzcuOGEwZTZlNTAxNDdhNjNjYi4xZmZjMDA1NDVkYzNmYWJiLjNhZjVmNWFjMDAxNzU4OGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMmEyNGQ5ZjcxYzc0NDEyZAogCi1WVEVTVFBTXzEyOF8yKHJlZykKK1ZST1VORFBEXzI1Nl8weDMocmVnKQogICBiZWZvcmUKICAgICA1NmI2ZDgyZDQ3MzI0ZjhiLmQ1NDYwZjY2OTI2YWU4ODIuZTE4NGYxMzk5OGQyZDlkNy44NTMyMWI1MGNiY2QwZTVkCiAgICAgY2E1NjMxZmZhYjVmMTI4Mi5mM2FmMDYxYTZkM2EyYzdmLjI2OTRkZGIwMGNkNmZhNGMuNzZlYzFkNGY4MjNlYjAyNgpAQCAtMzEzODEsMTEgKzMxMzgxLDExIEBACiAgICAgOTQyYmM1NjBmMmNkYzA2YQogICBhZnRlcgogICAgIDU2YjZkODJkNDczMjRmOGIuZDU0NjBmNjY5MjZhZTg4Mi5lMTg0ZjEzOTk4ZDJkOWQ3Ljg1MzIxYjUwY2JjZDBlNWQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTA5NmUxYjdjNmNmYWZmMS5iNzc3NjgzNDA4YjAwNjIzCisgICAgY2E1NjMxZmZhYjVmMTI4Mi5mM2FmMDYxYTZkM2EyYzdmLjI2OTRkZGIwMGNkNmZhNGMuNzZlYzFkNGY4MjNlYjAyNgogICAgIGUyNGVkZmQ3ZTM4OGM3YmYuMGQ4ZWMzNmJlNTUzYzMwNi5hMDk2ZTFiN2M2Y2ZhZmYxLmI3Nzc2ODM0MDhiMDA2MjMKLSAgICBmYWViZGUyMzhiMzdhYWVlLjAxYWVjMjQzMTdiZjY5NDUuYWRkN2Y4YmM2MzRhMzM3Mi4yMjlkNzZlYjc5MzJjYzgwCi0gICAgMDAwMDAwMDAwMDAwMDAwMQotVlRFU1RQU18xMjhfMihtZW0pCisgICAgY2E1NjMxZmZhYjVmMTI4Mi5mM2FmMDYxYTZkM2EyYzdmLjAwMDAwMDAwMDAwMDAwMDAuNzZlYzFkNGY4MjNlYjAyNgorICAgIDk0MmJjNTYwZjJjZGMwNmEKK1ZST1VORFBEXzI1Nl8weDMobWVtKQogICBiZWZvcmUKICAgICBlYWVkZDA4MDhmOGY5YzBkLjZlNzkyYTRkNDBmYWY2YmIuYTlkZDdmOTAxZThjZDk2Ni5hN2EzMWUyOTdlZDJjMzdhCiAgICAgZmVhZjEzMzU2YjgzMWQ5NC45YTQ0YmZjMzlkNWRlOGQxLmUyZTU3NzNkMTdjNmQwOTUuZWM0NjUwNmNiNGYzOWJiNgpAQCAtMzEzOTQsMTIgKzMxMzk0LDEyIEBACiAgICAgMGQyZmZmNmIwYzY3Mjg1NgogICBhZnRlcgogICAgIGVhZWRkMDgwOGY4ZjljMGQuNmU3OTJhNGQ0MGZhZjZiYi5hOWRkN2Y5MDFlOGNkOTY2LmE3YTMxZTI5N2VkMmMzN2EKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTYyMjgwNmZlMTczMjY5OS41ODVjZTFkNjgxMmQzYzg1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgotICAgIGQzNjIzMjEyNTEzM2ZkMDAuOGFjMGI2NDBjMjMwYWQ4OS43OGI0MDU2NzRkYWU0MmQwLmMyNDBjNDIxZGYzMjExNzgKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgZmVhZjEzMzU2YjgzMWQ5NC45YTQ0YmZjMzlkNWRlOGQxLmUyZTU3NzNkMTdjNmQwOTUuZWM0NjUwNmNiNGYzOWJiNgorICAgIGFkM2QwYTZkYTJiNmZlMmMuZGE5NzlhZjAzZmViYmNkYy44ODk0MjUzNjFkNzgwYWZmLmQ2MGM4OGYwYTAzYWY2ZDEKKyAgICBlYWVkZDA4MDhmOGY5YzBkLjZlNzkyYTRkNDBmYWY2YmIuODAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwCisgICAgMGQyZmZmNmIwYzY3Mjg1NgogCi1WVEVTVFBTXzEyOF8yKHJlZykKK1ZST1VORFBEXzI1Nl8weDMocmVnKQogICBiZWZvcmUKICAgICAxMTI2MzYzYWMzNjY3NzE4LjRkZWIwNjEyOTMwNmQ0M2QuMDYwOTBmMWZjMGI4Zjk4NC44YzEyOTNiY2MyNzUzNTMzCiAgICAgMmI2ZjYzZmFhMWJhMzk2YS5mNWE1MDI1ODg1M2I0MDBmLmFhYmZhMmY5ZDgxMGRhNzguYTE3OTRiMjE5OGQ3OWY1NQpAQCAtMzE0MDgsMTEgKzMxNDA4LDExIEBACiAgICAgN2VlNDRhZWE3YzIyZmRlYQogICBhZnRlcgogICAgIDExMjYzNjNhYzM2Njc3MTguNGRlYjA2MTI5MzA2ZDQzZC4wNjA5MGYxZmMwYjhmOTg0LjhjMTI5M2JjYzI3NTM1MzMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDEyZTY5M2FhM2MzOGMxMi45M2I3YWE4M2VjZTMzYzYxCisgICAgMmI2ZjYzZmFhMWJhMzk2YS5mNWE1MDI1ODg1M2I0MDBmLmFhYmZhMmY5ZDgxMGRhNzguYTE3OTRiMjE5OGQ3OWY1NQogICAgIGI3NTY4NDE3NDJlZmFiZjcuYTg1YWEyZDA0MmRmZmNhMS5kMTJlNjkzYWEzYzM4YzEyLjkzYjdhYTgzZWNlMzNjNjEKLSAgICAxMjI5OTRmZTQwOTIwOTZjLjQyZDc2MzY2ZTdmZGM1MjAuZDlhMjYyNGZiZjVlNGRmZS4zZTk2MmJjY2RhYTJjNzg0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMQotVlRFU1RQU18xMjhfMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC5mNWE1MDI1ODg1M2I0MDBmLjgwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDdlZTQ0YWVhN2MyMmZkZWEKK1ZST1VORFBEXzI1Nl8weDMobWVtKQogICBiZWZvcmUKICAgICAyZjZiODNjN2YxNmU5YWJlLjk2MzM4ZjE5M2EyZThlNzQuOWZlN2MwMDY4ZmEyNTdiNy4xZDY2ODhhMmM4NmM1N2U3CiAgICAgMmRmODUzNTE1MzkzNWEyZC5hMGJmNzFkNmNhNGY3N2JjLjliNTgzNTljNTZkOTZlOTMuZjhjOGQ4YTA1OTc5ZTc3YQpAQCAtMzE0MjEsMTIgKzMxNDIxLDEyIEBACiAgICAgYjM5MTk1ZDc1NzE1MTFlMwogICBhZnRlcgogICAgIDJmNmI4M2M3ZjE2ZTlhYmUuOTYzMzhmMTkzYTJlOGU3NC45ZmU3YzAwNjhmYTI1N2I3LjFkNjY4OGEyYzg2YzU3ZTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjAxODNmZjk3MDVkYTg0OC5lMjk5Nzc1ZDM3OTNhODE4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgotICAgIDgwNTNhNTE5NGY5NTMxOGEuYjY5MGRjZTIxZDUyNjViYi5lMDg4NTc1YWI0MmUxOWM5LmU4OTFlMjRmODVjMjg4NGMKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgMmRmODUzNTE1MzkzNWEyZC5hMGJmNzFkNmNhNGY3N2JjLjliNTgzNTljNTZkOTZlOTMuZjhjOGQ4YTA1OTc5ZTc3YQorICAgIDU0NTczNTczYmU5Y2Y4NjIuOGMxYTM3OWY4YzgyMDBmMC4xMmY0M2UxNDU5YWVjNWUwLmM4MTI0Y2I2MGYxMjM4NjIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgYjM5MTk1ZDc1NzE1MTFlMwogCi1WVEVTVFBTXzEyOF8zKHJlZykKK1ZST1VORFBEXzI1Nl8weDQocmVnKQogICBiZWZvcmUKICAgICA4NzVlNjFiOTIyOTcwZmQ0LjhkYmExZjJmMjE4YmMwZDEuN2E2ZDVjMGExODRiZTFjYS5lMWUxZmQ1YjgyNjQyNjdiCiAgICAgYmU0NDQyNjM4MmQ1YzBjYi41NzU2MWZhMTUxODk2MzYyLjM0ZmRiMzgzMWFmYWIxYzguZjFjOGFiMDFlMDVjYTgyMQpAQCAtMzE0MzcsOSArMzE0MzcsOSBAQAogICAgIDg3NWU2MWI5MjI5NzBmZDQuOGRiYTFmMmYyMThiYzBkMS43YTZkNWMwYTE4NGJlMWNhLmUxZTFmZDViODI2NDI2N2IKICAgICBiZTQ0NDI2MzgyZDVjMGNiLjU3NTYxZmExNTE4OTYzNjIuMzRmZGIzODMxYWZhYjFjOC5mMWM4YWIwMWUwNWNhODIxCiAgICAgYjY4ZTM1NDExMjViNWU3My5iYWY0MjI1YmZhOWJkNDZhLjQwOGNkZWI5YmVlYTExNjIuZWMwY2RkM2FlODIzNWFlOAotICAgIGM5OGEzNWJkNmViMzI2NzkuOTI2MGEzNDkzOWNlZDAxNC5mYTY1ZDcxOGExYTgzZDQ0LmFkNzgwZmYxYjljNGY5ZmMKLSAgICAwMDAwMDAwMDAwMDAwMDAxCi1WVEVTVFBTXzEyOF8zKG1lbSkKKyAgICA4MDAwMDAwMDAwMDAwMDAwLjU3NTYxZmExNTE4OTYzNjIuMDAwMDAwMDAwMDAwMDAwMC5mMWM4YWIwMWUwNWNhODIxCisgICAgMTJkN2JkMTE2ZDRiNDA4OAorVlJPVU5EUERfMjU2XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIGY2Zjc2NDg4MjBjNWVkYjkuNTQ4MjNlNDQzMzZiNTM4OS5iYjY2MWU1NzI5MmQxMjhkLmJlZDU5YzBjNWViZTcwMTkKICAgICAzNWEyN2Y0MWVmM2RiYWJhLmI0YzM0YzQyZmMwZTIzNGUuMTBkMjBmNzJlNmM0NTgwMC5lODI5MjgwMTkxYmJlNzhlCkBAIC0zMTQ1MCwxMCArMzE0NTAsMTAgQEAKICAgICBmNmY3NjQ4ODIwYzVlZGI5LjU0ODIzZTQ0MzM2YjUzODkuYmI2NjFlNTcyOTJkMTI4ZC5iZWQ1OWMwYzVlYmU3MDE5CiAgICAgMzVhMjdmNDFlZjNkYmFiYS5iNGMzNGM0MmZjMGUyMzRlLjEwZDIwZjcyZTZjNDU4MDAuZTgyOTI4MDE5MWJiZTc4ZQogICAgIGFhYTU4YTI4ZjViZjY0YjguNDM5OTViMjQ2NjI5ZDA3NC42ZjcwZjM4NDhkYTA1YjlhLmQ0YWI3ODY0ZDgyOGRlNGUKLSAgICAzM2NjMDEyYTRmNThhNmRlLjVlNTA2ODU0MGQ0Nzk2YTkuYjMwYjQ0N2IzYWNjZGE4Ny5kZGE3ODY5ZmNjOTM5MDA2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMQorICAgIGY2Zjc2NDg4MjBjNWVkYjkuNTQ4MjNlNDQzMzZiNTM4OS44MDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICA2MTZiNTAyMDBiODczYTYyCiAKLVZURVNUUFNfMTI4XzMocmVnKQorVlJPVU5EUERfMjU2XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIGJiNDJkMTUyMzE5MTE4MGQuYWJlMjYxMzExODEzM2U1OS42MjMzNmU0MDhiZjRiMzk3LmI3NzA4MDQyMDg1NDkwZjMKICAgICA0Nzc3MDVhMGQ5M2I2NWI0LmVkYjUyNTJhNmRmY2U2NTUuYTk5MDY5NTM3ZWJkNjFlYS41OTZiMjNjNTEzNDUzODA4CkBAIC0zMTQ2NCw5ICszMTQ2NCw5IEBACiAgICAgYmI0MmQxNTIzMTkxMTgwZC5hYmUyNjEzMTE4MTMzZTU5LjYyMzM2ZTQwOGJmNGIzOTcuYjc3MDgwNDIwODU0OTBmMwogICAgIDQ3NzcwNWEwZDkzYjY1YjQuZWRiNTI1MmE2ZGZjZTY1NS5hOTkwNjk1MzdlYmQ2MWVhLjU5NmIyM2M1MTM0NTM4MDgKICAgICA2MDU3ZTk3ODlmMTQ1ZjAyLmQ3MGZjOTAyNjkyMDVhZmQuOTBiMTU1Zjg4MjJkZGQ0Zi43NGM4YTdmMDc4YWE4ZmY1Ci0gICAgNjQyZTc3NDUyMGE1NDBhNC40NGJkYzlhMzI5OGE1ODdlLjczZTMyZjlkMzJkMTYyNzIuZTM1MzhhYWY1MzhmNTBlNAotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUFNfMTI4XzMobWVtKQorICAgIDQ3NzcwNWEwZDkzYjY1YjQuZWRiNTI1MmE2ZGZjZTY1NS44MDAwMDAwMDAwMDAwMDAwLjU5NmIyM2M1MTM0NTM4MDgKKyAgICA4NGQ4NDZlZWJmMDEzODAyCitWUk9VTkRQRF8yNTZfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgMzEyMjVhOTlkODBiMDM3YS5hZTQ4YWQ3M2Y3N2M0NDQ1LjBmOGNhMWZiYzg0NjlhMDQuYWU3MmYyYWQyYjMzMmVmZQogICAgIGM4ZmYzZjljYmJiYTZkNzkuOTlmMTg2NmVjMTI0YTk5Mi4xNjQ1Y2VmNTYzNjFkZGJhLjllYWE5YTk0MDhlMTdiYTAKQEAgLTMxNDc3LDEwICszMTQ3NywxMCBAQAogICAgIDMxMjI1YTk5ZDgwYjAzN2EuYWU0OGFkNzNmNzdjNDQ0NS4wZjhjYTFmYmM4NDY5YTA0LmFlNzJmMmFkMmIzMzJlZmUKICAgICBjOGZmM2Y5Y2JiYmE2ZDc5Ljk5ZjE4NjZlYzEyNGE5OTIuMTY0NWNlZjU2MzYxZGRiYS45ZWFhOWE5NDA4ZTE3YmEwCiAgICAgMjMzOTcyZTQ4MzE5MzIyYS44Mzc1ZmZhMzE5MmFhOTM3LjMzYjdjYjdkMTVlNmRjY2QuOWRkNzIzYmY2NjY3ODYwMwotICAgIDFmOWQ3MDViNGQzNDBkYmEuYzYxZjEyN2M5YzE5ODFkZi40M2FkMTQ3ZmZhZTI1NTY4LjA4NDQ4OTk4ZTA0ZjhhZDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC44MDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMAorICAgIDNiM2ZjOThjMTIyOGM0YmYKIAotVlRFU1RQU18xMjhfMyhyZWcpCitWUk9VTkRQRF8yNTZfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgOTIxMmRlMDg5OTdiNzA2Zi45OWY3YjRlZjM0MTdiYjU1LmMwM2NiZDY2ZTU3ZDZjMzcuMjNmMjI1ZTcyZjYwMDJiOAogICAgIDY5MGFjNDc2MTFkNmNhOTEuNmIxMmJhOGE1NWNmZjcyNi5jYjE4ZmJjZTkxZTNhOGViLmFkNTQ3YmExZDA2YzlmZTgKQEAgLTMxNDkxLDkgKzMxNDkxLDkgQEAKICAgICA5MjEyZGUwODk5N2I3MDZmLjk5ZjdiNGVmMzQxN2JiNTUuYzAzY2JkNjZlNTdkNmMzNy4yM2YyMjVlNzJmNjAwMmI4CiAgICAgNjkwYWM0NzYxMWQ2Y2E5MS42YjEyYmE4YTU1Y2ZmNzI2LmNiMThmYmNlOTFlM2E4ZWIuYWQ1NDdiYTFkMDZjOWZlOAogICAgIDFjNzM3NzQ0MTRjNDBkZDAuNzJiY2ZlMWFjYjY3N2U1YS40NWZmYzgxZjNiZDY2ZmE2LmJlOWQ5MTk5ZjcxMmVhMjUKLSAgICAwNzk4ZjRkZDQxZDE3NmQ5LjhiYmZmZDhhYjNlYzBkMWQuODgzZDIwYzQ4MGUyZmQxNS4zMzlhZTNiYmMzNWY5ZDliCi0gICAgMDAwMDAwMDAwMDAwMDAwMAotVlRFU1RQU18xMjhfMyhtZW0pCisgICAgNjkwYWM0NzYxMWQ2Y2E5MS42YjEyYmE4YTU1Y2ZmNzI2LmNiMThmYmNlOTFlM2E4ZWIuODAwMDAwMDAwMDAwMDAwMAorICAgIGU2MTZlZGY0NGU1ZTc1NzUKK1ZST1VORFBEXzI1Nl8weDQobWVtKQogICBiZWZvcmUKICAgICBiNGRmMmIyZWI0MWMyZGUwLjg1YzczNWFkMzI4YTQxNTguOTBlOTMyYzYyODY4NWQ5YS5mMjFlMDAyYmZiOTQ5MGUzCiAgICAgNzljMDFhNTcxMmE0ODMwNy5mNDRhMzgyMDgzN2FhYWY4LjVlMDQxOWJhNDZlYTJkZmQuZGRlZDYzYmY0ODc3NjJiZApAQCAtMzE1MDQsMTAgKzMxNTA0LDEwIEBACiAgICAgYjRkZjJiMmViNDFjMmRlMC44NWM3MzVhZDMyOGE0MTU4LjkwZTkzMmM2Mjg2ODVkOWEuZjIxZTAwMmJmYjk0OTBlMwogICAgIDc5YzAxYTU3MTJhNDgzMDcuZjQ0YTM4MjA4MzdhYWFmOC41ZTA0MTliYTQ2ZWEyZGZkLmRkZWQ2M2JmNDg3NzYyYmQKICAgICAxMjg0MzU1OTgzMDIzMTE3LmFmNmZmOGEyZDEyZWVjNjUuZDFkZDJlNTIyYTdiMzc3NC5hNmY4NDVlYzA1MTdiMDRlCi0gICAgNTlmOGY4MjIyNDQyZjQzYy4xMjgwNzI5ZmI3MzE0NDRkLmM2M2ZlZTdhZjAyOTM4MjguYWE4OWEyMWVjYjAxYjU0MwotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICA4MDAwMDAwMDAwMDAwMDAwLjgwMDAwMDAwMDAwMDAwMDAuODAwMDAwMDAwMDAwMDAwMC5mMjFlMDAyYmZiOTQ5MGUzCisgICAgNDNlZDc3YzEzOGMwYWY0OAogCi1WVEVTVFBTXzEyOF8zKHJlZykKK1ZST1VORFNTXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIGNlNzBiZTQyZTdlMGQ4MDguMmJlOGRmOWQxMDcxODdhMS43OWNhYTA4M2QyMGZlZTVhLjE3ZjhkMzFmYjNmZmViNDgKICAgICBhNzVkNzUwYjc1ZWU2ZDMwLjY0MjA2N2I2NjQ5YmE3NzMuM2Y5ODgwYmFiZDU0MjUzOC5hMWQyNWIyYjhmMGEwZWZlCkBAIC0zMTUxOCw5ICszMTUxOCw5IEBACiAgICAgY2U3MGJlNDJlN2UwZDgwOC4yYmU4ZGY5ZDEwNzE4N2ExLjc5Y2FhMDgzZDIwZmVlNWEuMTdmOGQzMWZiM2ZmZWI0OAogICAgIGE3NWQ3NTBiNzVlZTZkMzAuNjQyMDY3YjY2NDliYTc3My4zZjk4ODBiYWJkNTQyNTM4LmExZDI1YjJiOGYwYTBlZmUKICAgICAyYjAyOTg4OTdlNzVhOTZiLmUwNmMwYTU5M2JjYTEwZGQuYzIzODBkYjExNThkMjY5NC40MDliMDE4Y2ExNTU1Yjc2Ci0gICAgYjRhOTIxMjk5ZDAxYzk2Ni43Yjk3NDY3MmIyMGM3ZTBjLjVkZjU0NGQyNzU0NTJkMWEuZDAxZDQyMmMwNWVjOGZkZQotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMjM4MGRiMTE1OGQyNjk0LjQwOWIwMThjODAwMDAwMDAKKyAgICAyZDI1OThmOWQ1ZGM2NTVmCitWUk9VTkRTU18weDAobWVtKQogICBiZWZvcmUKICAgICAzMzdmODFkZTMwMzA5YTI4LjlmYTAwZTU2NmUxZjA5Y2QuMTE2Zjk3ZWVlNDZjYWMyYy42YjFhMWY4Yjc5MDk3NTc1CiAgICAgYmVmNjc4YzcyZmY0ZWE2My40ODMxNTk3YjhlNWFhNTRiLjdlYmU3N2I3ZWRmNzU3NjguNGFmNDljNDdiZTY0M2M1MgpAQCAtMzE1MzEsMTAgKzMxNTMxLDEwIEBACiAgICAgMzM3ZjgxZGUzMDMwOWEyOC45ZmEwMGU1NjZlMWYwOWNkLjExNmY5N2VlZTQ2Y2FjMmMuNmIxYTFmOGI3OTA5NzU3NQogICAgIGJlZjY3OGM3MmZmNGVhNjMuNDgzMTU5N2I4ZTVhYTU0Yi43ZWJlNzdiN2VkZjc1NzY4LjRhZjQ5YzQ3YmU2NDNjNTIKICAgICBhYTU4ZjlhMGYxMzUxMTNjLjBiYTkwMDA2OTgzZWQ4OGQuOWU1MTY0YmFlYWI4M2JlZC41NGNmYjY3MWUwZTJiYzVkCi0gICAgZDM2ZjgxNTU4ZmZkY2FlMC40NDUzZmY2MjI5NThkZjNlLjRkZjRkOGU0ZjdiYjE0ZTYuZTdmNzY5Nzc3YTEwMzE0MQotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzIzODBkYjExNThkMjY5NC40MDliMDE4Yzc5MDk3NTc1CisgICAgNWRiOGIxYzQyODc5ZDlhYgogCi1WVEVTVFBTXzEyOF8zKHJlZykKK1ZST1VORFNTXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDE0NWQ4YmM0ODdhOWVlNDYuMTQwODhhZDIyODViZDI3Yi40ZjdkNTBmYmRjMzNmNjBiLjY3NzM1MTIwMmYwZDlkODAKICAgICA2NjM0ZjJlNDMzMmRhZGJmLjRiZWY5MjAzZDU1OGU1MzkuODg3MWYxM2Q0ZTVjNThhMC5jNzk5NGI1OWFlYjk5M2U3CkBAIC0zMTU0NSw5ICszMTU0NSw5IEBACiAgICAgMTQ1ZDhiYzQ4N2E5ZWU0Ni4xNDA4OGFkMjI4NWJkMjdiLjRmN2Q1MGZiZGMzM2Y2MGIuNjc3MzUxMjAyZjBkOWQ4MAogICAgIDY2MzRmMmU0MzMyZGFkYmYuNGJlZjkyMDNkNTU4ZTUzOS44ODcxZjEzZDRlNWM1OGEwLmM3OTk0YjU5YWViOTkzZTcKICAgICBiMTg3ZTI4ZWM3OTA1MWMxLjUzZjAxNGQ1YjQwMmJmNDUuNGI3ZGRkOTUxYTVkNDNhOC40YjM0NDA3ZDkxY2JiMTQ2Ci0gICAgNGZhMzU3MmZkZjVlMThmOS4wOGQ3OGQzMmUxNjUxYmNiLmY0ZWIxMDZkZGNjNWYxZDAuY2UwZWFlNzdmMzUwYjVjYQotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUFNfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YjdkZGQ5NTFhNWQ0M2E4LjRiMzQ0MDdkODAwMDAwMDAKKyAgICAyY2Y0MTAzM2YxNTM1OTllCitWUk9VTkRTU18weDAobWVtKQogICBiZWZvcmUKICAgICA0MWIyZTI5ZGE2ZTA1YWVmLjlkZDQ0ZDM0MTgyNDNjMTMuNDY3MDc3MDg3NzhjYjZmOC5kZTA4ODYzMjMxMWQ5ZWMzCiAgICAgZTgxNGEwYTEyZjA0NzNlOS5mODY1YzEwNzBkNmRmYWJhLmU4ODY1MDQxOTM4MzRjZjguNjcyMDNjNTFiNWYzODgyZQpAQCAtMzE1NTgsMTAgKzMxNTU4LDEwIEBACiAgICAgNDFiMmUyOWRhNmUwNWFlZi45ZGQ0NGQzNDE4MjQzYzEzLjQ2NzA3NzA4Nzc4Y2I2ZjguZGUwODg2MzIzMTFkOWVjMwogICAgIGU4MTRhMGExMmYwNDczZTkuZjg2NWMxMDcwZDZkZmFiYS5lODg2NTA0MTkzODM0Y2Y4LjY3MjAzYzUxYjVmMzg4MmUKICAgICBmZmU2YzcyY2E3Y2E2MmI3LmJhYTRhZTE2NWJjNThkOWIuY2NlNjkzY2I1MDU2OThmNi5lYTdlMmQzNDAzZDJlOWJkCi0gICAgNjBmM2QyMjgyYjNlZTE4NS40MGRjMTBjYjlkYjkzMjYxLmNkNWNiYzkxY2ExMjU3MWYuYzM3MDU1NDliNzQ3ZmUxYgotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGI3ZGRkOTUxYTVkNDNhOC40YjM0NDA3ZDAwMDAwMDAwCisgICAgNGU0MGIwZmI2ZWRjMDJmNQogCi1WVEVTVFBTXzEyOF8zKHJlZykKK1ZST1VORFNTXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIGU2M2MzYWI2YzQyMDMyZjYuZTkwOTNkODJkNjZkYWM4MS5lNjU4ZTM5NDcwZDQyNWI5LmM2YjQ0NzdmMWVjMjQ1OWYKICAgICBlOWFlZjBlNjU0OWNjYWNiLjc1ZjI4NDI3YzU2MjgxZDUuMDk2NTI0ZGM2ZmEyYTI0Zi45NWJhYjE4MTY4NzIxZWExCkBAIC0zMTU3Miw5ICszMTU3Miw5IEBACiAgICAgZTYzYzNhYjZjNDIwMzJmNi5lOTA5M2Q4MmQ2NmRhYzgxLmU2NThlMzk0NzBkNDI1YjkuYzZiNDQ3N2YxZWMyNDU5ZgogICAgIGU5YWVmMGU2NTQ5Y2NhY2IuNzVmMjg0MjdjNTYyODFkNS4wOTY1MjRkYzZmYTJhMjRmLjk1YmFiMTgxNjg3MjFlYTEKICAgICBiMmUyY2RmN2JhZGUwNjFmLmRmN2IyMzAyMTMyYTFhYWQuMDM0ZmNlMGYzNmIwZTRjZS4xNDNhNzU4M2MyMmY5ZDUxCi0gICAgOWMyNmNkNTU5MzcxMjI5Zi4wNTcwOTdmZWRkY2YzNDM2LjMxNjJkZDk5NjI4OTI4ZTMuMjFmZjBmNzE0YjA0N2ZkZAotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUFNfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMzRmY2UwZjM2YjBlNGNlLjE0M2E3NTgzNjg3MjFlYTEKKyAgICA5NmQ3ZmIzNzFkZmQ4MDZmCitWUk9VTkRTU18weDAobWVtKQogICBiZWZvcmUKICAgICA1MThjYjZjMjU0Mjc1YjMzLjA1YzVlYzZjN2FlMjU5ZjcuYzE5ZDViMDkzZTYwOGE5Yy5lZmU5NGRlNzhmYjlhYTNhCiAgICAgMmNlYmJhZmMwZDhkY2Q1Ni40NzBhMjdhODBjYmNlOGQyLmYwY2RlYjBlNTJlNmRhMGEuOTkzMjFhNjM1OGNkYTU3ZQpAQCAtMzE1ODUsMTAgKzMxNTg1LDEwIEBACiAgICAgNTE4Y2I2YzI1NDI3NWIzMy4wNWM1ZWM2YzdhZTI1OWY3LmMxOWQ1YjA5M2U2MDhhOWMuZWZlOTRkZTc4ZmI5YWEzYQogICAgIDJjZWJiYWZjMGQ4ZGNkNTYuNDcwYTI3YTgwY2JjZThkMi5mMGNkZWIwZTUyZTZkYTBhLjk5MzIxYTYzNThjZGE1N2UKICAgICAwNGMwODVkMzYzM2M5MjA0LmMwNDM3ODc2ZTQ4YjBhZGQuNmZjZWMzZjkzNjZmZGVhZC44Yjg3NDE3YTVhNTA1NzViCi0gICAgYjZkNjkyMzE3MzNmNjY2OC5jYWJhZGQ0MDlmZGNmY2M0LjE4NmE2MGI2MDYwNjUyYjAuMjEzNWJkOTkzMGNlZmE3ZQotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDM0ZmNlMGYzNmIwZTRjZS4xNDNhNzU4MzgwMDAwMDAwCisgICAgYjc4OThhMmE3NmQ0Y2E5MwogCi1WVEVTVFBTXzEyOF8zKHJlZykKK1ZST1VORFNTXzB4MShyZWcpCiAgIGJlZm9yZQogICAgIGE5Y2NhNDliYzllZDA1NDUuMWNmYjVlMDQ1OGEyMDRhZi5jM2JjNTI3NGQ4M2FmYTMyLmM5NmUzZDMyZGRiN2Y0NDAKICAgICA1MzRkMDg1N2M0YTZlNTQxLjEzZjk2MzM3MmU3MTI5MDQuMDU5NGQxN2QyYzMxNDBkMy41Y2E2ZDY1N2Q3OGY3ZTg5CkBAIC0zMTU5OSw5ICszMTU5OSw5IEBACiAgICAgYTljY2E0OWJjOWVkMDU0NS4xY2ZiNWUwNDU4YTIwNGFmLmMzYmM1Mjc0ZDgzYWZhMzIuYzk2ZTNkMzJkZGI3ZjQ0MAogICAgIDUzNGQwODU3YzRhNmU1NDEuMTNmOTYzMzcyZTcxMjkwNC4wNTk0ZDE3ZDJjMzE0MGQzLjVjYTZkNjU3ZDc4ZjdlODkKICAgICAxMTU3YjBjYTA0OGFhNjMzLjc4OWUxZmI2MTJiOTkxOTQuZWU5MDU4YzYzNjRkMGE1NS5hZWRlYTcxMjExOTlhZGI2Ci0gICAgM2YzNTlhNWYyNDI1ODZjNi4yNWI0MGQ2ZDIwODVmNzhiLmQ4ZmJlMmJkOTIxYjkzNjIuOWJlMjJjNTBhNmUyM2NmNAotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUFNfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZTkwNThjNjM2NGQwYTU1LmFlZGVhNzEyZDc4ZjdlODkKKyAgICAwMDdkZTJmYmIzNzVlOTZmCitWUk9VTkRTU18weDEobWVtKQogICBiZWZvcmUKICAgICBiNzdjNDQwMTUzNWU2ZTUyLjM4MzRjMjg1YzEwM2JmYTcuZjcwOGFhNDg3M2UyMTgxNC4yMDIwNmJjZGRkMjcxOGE2CiAgICAgOWRhY2NlNGRhM2FhODhjOS41YWEwMjJhNTc2YjE4ZTgxLmNhNjU3MDMzMjhkYmIwNWMuMjI0Y2VmNjJiM2ZiZDRjZQpAQCAtMzE2MTIsMTAgKzMxNjEyLDEwIEBACiAgICAgYjc3YzQ0MDE1MzVlNmU1Mi4zODM0YzI4NWMxMDNiZmE3LmY3MDhhYTQ4NzNlMjE4MTQuMjAyMDZiY2RkZDI3MThhNgogICAgIDlkYWNjZTRkYTNhYTg4YzkuNWFhMDIyYTU3NmIxOGU4MS5jYTY1NzAzMzI4ZGJiMDVjLjIyNGNlZjYyYjNmYmQ0Y2UKICAgICA4ZWQ3ZmNjYmJlNjNmMjAxLjAwYzViODJjZTBiYTJmMDEuN2E5OWRkMWI1OTdjN2I4Zi4zYmNiNmFlOWFmMjUwNTg2Ci0gICAgNjZjYTRiNjdjMTk4NjkyNi44NmVmN2U4NjlhYWJkZGQzLmUzNmU2Y2VhMjVkMjM0ZDguYzVlOWQ5Y2M2ZDMxZTU3OQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWU5MDU4YzYzNjRkMGE1NS5hZWRlYTcxMmRkMjcxOGE2CisgICAgMWRmMjM3Nzg4YWFhYjA1NAogCi1WVEVTVFBTXzEyOF8zKHJlZykKK1ZST1VORFNTXzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDlmMzE4MDVhYTIxY2E0YzIuMDE1MDM1MGRjNzUyYTk2NC40NzZhNzIyMDQxMGZkNWEyLmUxYjI5OThlYTZlNzk4NjMKICAgICBhN2Y0YjFkYzUwMTNmYjcwLjNiMzczOGE5ZWQ5ZjZlZTYuYTE4MTkwNjQ3MDcyNTMxYi41MDJmZTBmMWY4Y2E2MzVkCkBAIC0zMTYyNiw5ICszMTYyNiw5IEBACiAgICAgOWYzMTgwNWFhMjFjYTRjMi4wMTUwMzUwZGM3NTJhOTY0LjQ3NmE3MjIwNDEwZmQ1YTIuZTFiMjk5OGVhNmU3OTg2MwogICAgIGE3ZjRiMWRjNTAxM2ZiNzAuM2IzNzM4YTllZDlmNmVlNi5hMTgxOTA2NDcwNzI1MzFiLjUwMmZlMGYxZjhjYTYzNWQKICAgICA5Mjg1YzQ2YzMwMWNmMjBhLmYwNDljZjI3NGU4YTczZDguZWY4MmQyYzBjNDYwOTNlOS4wY2IyYmUwMTM4ODQ1MWYyCi0gICAgYmEzMWI3NzVkZmMyYzUzYi5mYzU0Nzc3NDA2MjA3NTY3LjhjYjczNjllZDg2NmQwYjkuZjEwN2FkYTk4MTIzMWQ0ZAotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUFNfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZjgyZDJjMGM0NjA5M2U5LjBjYjJiZTAxZjhjYTYzNWQKKyAgICBkYmY5MmJkNWYwYjM4NDliCitWUk9VTkRTU18weDEobWVtKQogICBiZWZvcmUKICAgICBhNjU2YjQ3MWEwM2U0MTA4LjdjNDQ4NTYzZjg5MWFmYjAuM2IyMmFhN2EzMjZjMzBiZi5kNjZkYjc2YzQ4MTA0NzM2CiAgICAgMmVlOGMyNjlhZWQyMTJiZi4zNDBhMmFhMTE4MTZlZDE0Ljg5ODBlNjI2ZWU3YTYwMGMuMjdmMDUxOTViMWU4MzQwZApAQCAtMzE2MzksMTAgKzMxNjM5LDEwIEBACiAgICAgYTY1NmI0NzFhMDNlNDEwOC43YzQ0ODU2M2Y4OTFhZmIwLjNiMjJhYTdhMzI2YzMwYmYuZDY2ZGI3NmM0ODEwNDczNgogICAgIDJlZThjMjY5YWVkMjEyYmYuMzQwYTJhYTExODE2ZWQxNC44OTgwZTYyNmVlN2E2MDBjLjI3ZjA1MTk1YjFlODM0MGQKICAgICA0ZjdjZDNhOTM1N2FiMWVkLjNlY2VhMzllZGFkY2JiMTQuYzIzOWE2NjU1NTU3YzA3OC5kZDhiMDA4NWFmN2NkMmVhCi0gICAgZTVkZTYyMWQ1MjQzZGJiZC5mNmRlZWFjM2RiNzA1NDVjLmMyMWI2NzIyODMwZTBkMzIuNTI4Y2MxYThkZDU3NWU3OAotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWY4MmQyYzBjNDYwOTNlOS4wY2IyYmUwMTQ4MTA0NzAwCisgICAgZTQzZDhmNmFkNzA2MTQ2NAogCi1WVEVTVFBTXzEyOF8zKHJlZykKK1ZST1VORFNTXzB4MShyZWcpCiAgIGJlZm9yZQogICAgIGVkZWM2NjM4M2ExNDMwNWEuY2NkYWViYjIyMDM4NGI1Yy5iODg0ZmQ3ZGI2NWNmNTk3LjY0ZjBhMzQ5OTVhYjAyNjQKICAgICBjYWUzNDI3Y2ExMGRlZDA1LmRmM2NlYTUyYmM2NWJmZjYuZGYwZGQ3MzgwNzJlZGE3Mi44Njg2ZDhjNmE3M2I1ZDNiCkBAIC0zMTY1Myw5ICszMTY1Myw5IEBACiAgICAgZWRlYzY2MzgzYTE0MzA1YS5jY2RhZWJiMjIwMzg0YjVjLmI4ODRmZDdkYjY1Y2Y1OTcuNjRmMGEzNDk5NWFiMDI2NAogICAgIGNhZTM0MjdjYTEwZGVkMDUuZGYzY2VhNTJiYzY1YmZmNi5kZjBkZDczODA3MmVkYTcyLjg2ODZkOGM2YTczYjVkM2IKICAgICBkODZlMWZhM2E5N2U4ODExLmZjZDBkYmViNDFkN2YwYjYuYzljNTc1NjE2YjcyM2Y5OC4wM2E3ODE4NWQzYzlkOGUyCi0gICAgNzFkYmZhMWFlZGYyM2QyYy5mZTYxM2I2N2NiOTk5ZGM5LmQxZjhkMTYyN2ViMzVmYjYuYjcyMDFhNzIzODYxMzA4NgotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jOWM1NzU2MTZiNzIzZjk4LjAzYTc4MTg1YmY4MDAwMDAKKyAgICA3ZGJkMWY3OWVmMTAyMDUzCitWUk9VTkRTU18weDEobWVtKQogICBiZWZvcmUKICAgICAzMzQ5MGQ4NjE3ZTE2Njc0LmYyNzVjZTRjMGFmNTQ3ZmYuYzBiYzg1YjQ3N2I4ODE1YS41M2YyZTlhOWRiN2Q3ODc4CiAgICAgYjM5MjVmODZjOWUxYmMxNi5iODg3OTdhNDliMTRlMzM5LjIwYWQzNWJkNjEzZTU3OTYuYWJmZWI4YTAxZTVjYzM4OQpAQCAtMzE2NjYsMTAgKzMxNjY2LDEwIEBACiAgICAgMzM0OTBkODYxN2UxNjY3NC5mMjc1Y2U0YzBhZjU0N2ZmLmMwYmM4NWI0NzdiODgxNWEuNTNmMmU5YTlkYjdkNzg3OAogICAgIGIzOTI1Zjg2YzllMWJjMTYuYjg4Nzk3YTQ5YjE0ZTMzOS4yMGFkMzViZDYxM2U1Nzk2LmFiZmViOGEwMWU1Y2MzODkKICAgICBkYjYyOTE2MzI0MWFkZTY0LjFkNWY1MTkwM2RkYTRkODQuZjkwMGM4NmVhNDM5ZGNhOC4zNDZhM2FiNWU0ZGQ3Zjk1Ci0gICAgODY4NzFmMGI0MTlhOGE4Yi43ZTQ3Zjk3YjhiZDNjMThkLjI2ODFiOGIzNWNiNWNiYmQuNGM4MDZjNTNjOThiZTY0YQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzljNTc1NjE2YjcyM2Y5OC4wM2E3ODE4NWRiN2Q3ODc4CisgICAgNGU4ZDQ5ZTY2OGYzMzU1MgogCi1WVEVTVFBTXzEyOF8zKHJlZykKK1ZST1VORFNTXzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDk1ZGRjY2RhNWRhMGE4NTkuOGZjYjg1NjgzZTZkN2FiNi4zNzhjOGFkMTIyOGM3YWZmLjg1ZmM4Mzc4YTZiZGUxMDEKICAgICA3ZmJiZjM5YjQ1MWU3YTBjLmQ0ZmI0MDY4Mzc5ZTZiMTIuYTQ3YTAwZmU5ZDkwYjU4Ny5mMDNjYTRhOTlkNWRkYTlmCkBAIC0zMTY4MCw5ICszMTY4MCw5IEBACiAgICAgOTVkZGNjZGE1ZGEwYTg1OS44ZmNiODU2ODNlNmQ3YWI2LjM3OGM4YWQxMjI4YzdhZmYuODVmYzgzNzhhNmJkZTEwMQogICAgIDdmYmJmMzliNDUxZTdhMGMuZDRmYjQwNjgzNzllNmIxMi5hNDdhMDBmZTlkOTBiNTg3LmYwM2NhNGE5OWQ1ZGRhOWYKICAgICA2Nzc1YmE5NWJiZmFlODE3LjJmZTJjYmY2NDczOTE4Y2IuMjE1YzU3NmU5ODZjYWVkMC40NTBmOTgzMjVlYTE3MmM0Ci0gICAgYTg1NjFiMzU1Y2JmMmUyNS43ZDRlYTJmZThhNGEzZjBjLjBhODA4YjhlYjBhYWExODcuNWUzZmQ5MDAwNTk2NjU5YwotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMTVjNTc2ZTk4NmNhZWQwLjQ1MGY5ODMyODAwMDAwMDAKKyAgICAxOTk5ZTVmZGFjNDc2ZTUyCitWUk9VTkRTU18weDIobWVtKQogICBiZWZvcmUKICAgICA1MGU5MzcxNzcxYzA0YTEzLmEwYTkxNGU1YzNmOTg4ZTMuOWIwOTQxNmMxZGRlOWEwMi5iYjMwOTljODgxZDhjOTU4CiAgICAgZTBmYTRiMzk3MDBlYjQwYS5hOWJiYTAxMzhkMzUzMWZkLjYzZTEyNTJjMWMwMGU1ZDkuOTBiOTdjOGFhNjgyNjNlZQpAQCAtMzE2OTMsMTAgKzMxNjkzLDEwIEBACiAgICAgNTBlOTM3MTc3MWMwNGExMy5hMGE5MTRlNWMzZjk4OGUzLjliMDk0MTZjMWRkZTlhMDIuYmIzMDk5Yzg4MWQ4Yzk1OAogICAgIGUwZmE0YjM5NzAwZWI0MGEuYTliYmEwMTM4ZDM1MzFmZC42M2UxMjUyYzFjMDBlNWQ5LjkwYjk3YzhhYTY4MjYzZWUKICAgICBhNjlhOWQ0ZWM0M2M2OTY0LjIxZDhiYjI5NTVmZDY2MWUuYjNhMGM4MmFhMmJkZGViYy5lNTY3MzAzZWJiMzNhYWY2Ci0gICAgN2M5M2FhNDQ4YTU3MjY0Yy42MjRjNjI5NWI4ZTA2M2YyLjY1MTNhODUyY2IxZjNmZDcuMTY4NmIxNTI1ZDc3ZGMxYgotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjE1YzU3NmU5ODZjYWVkMC40NTBmOTgzMjgwMDAwMDAwCisgICAgN2Y2MmZjMzEyOGRhMzMwYQogCi1WVEVTVFBTXzI1Nl8xKHJlZykKK1ZST1VORFNTXzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDdjNDYwYzQ2YjZlOWVjNmUuM2ZiM2VkMDZkZDZhYTRlZi5jOTYyOGZjMjUxNjc2MzI3LjU2MDU0MTkxYjQzNWM1NTgKICAgICA2OTgwZGRmZmE2MmY0MmY1LmNiYzRlMjgwZGE4MWEyNzkuYjM2ODQwMWNiYzIwYTM2Ny42MjQ0MGRkMTc4MDgyYjY4CkBAIC0zMTcwNyw5ICszMTcwNyw5IEBACiAgICAgN2M0NjBjNDZiNmU5ZWM2ZS4zZmIzZWQwNmRkNmFhNGVmLmM5NjI4ZmMyNTE2NzYzMjcuNTYwNTQxOTFiNDM1YzU1OAogICAgIDY5ODBkZGZmYTYyZjQyZjUuY2JjNGUyODBkYTgxYTI3OS5iMzY4NDAxY2JjMjBhMzY3LjYyNDQwZGQxNzgwODJiNjgKICAgICBhMjVhNmJjNzkyMzk3MjQ4LmZkOTMwNTllOWNhOWRhMTUuN2FhODcwMGY5Njk3NWY1ZS42NjliOGEwMDM0YTYyZjM2Ci0gICAgODIyMWIyMGIxNjkxYjgxNi5hZmViZDI0ZDNmZWMwOWYwLjdiNmYxYjA3N2I1NmQzYjkuM2NkNTMzMDkwNDFhOGJlYwotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMjU2XzEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YWE4NzAwZjk2OTc1ZjVlLjY2OWI4YTAwNzgwODJiNjgKKyAgICBjMWJmODRkNzAyNzFmY2I2CitWUk9VTkRTU18weDIobWVtKQogICBiZWZvcmUKICAgICBkMTI1Zjk1ODRjYjYzZGMyLjY3MjFhZjM1Y2ZjNjUwMDkuYmU5YWM2NzdlMDU5ZWEzNS4xMzA5M2U3MDA2ZWIzYTI0CiAgICAgNDhkMzBlNzdmZWY1MGIzOS5hY2E2NWRiMjU4NjE3NWNkLjA2NmE1YzA5OWJmOTNiMTEuOWNjMmQ0YjZkM2UyZDE0YQpAQCAtMzE3MjAsMTAgKzMxNzIwLDEwIEBACiAgICAgZDEyNWY5NTg0Y2I2M2RjMi42NzIxYWYzNWNmYzY1MDA5LmJlOWFjNjc3ZTA1OWVhMzUuMTMwOTNlNzAwNmViM2EyNAogICAgIDQ4ZDMwZTc3ZmVmNTBiMzkuYWNhNjVkYjI1ODYxNzVjZC4wNjZhNWMwOTliZjkzYjExLjljYzJkNGI2ZDNlMmQxNGEKICAgICAwMjk1NDAyMDMzM2EyMjRhLmFkZmNiOGVlNGRmMDY1MGYuNjMyOTEwZjA4YmRhYjZiMC43M2U2ZDk0NjdmYzVkNGQ4Ci0gICAgZGIzNjBhM2YwODkyM2UxZi5jNTZlYmM1NjRjZmU1OTdiLmIxYTE1ZTE2Y2MwNzE4M2QuZjRjMDQ5OGFhNjIyN2Y3OQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2FhODcwMGY5Njk3NWY1ZS42NjliOGEwMDNmODAwMDAwCisgICAgN2I5ZTIwZjBlMjg1MGRkYQogCi1WVEVTVFBTXzI1Nl8xKHJlZykKK1ZST1VORFNTXzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDY0Y2E1YmUyZDI3OWJiYTcuYWY4NGU4YzE5ODA5MWFlNC41MjQ5NjU1NWVlMTg5MGJjLmNjOWZjMzY5N2I4ZDFjZTUKICAgICAwYjkxZjVjZTEwOGFjNDhiLjVhNDk1NzkwMDBhOTczYzcuYWVkYWIwNTZkMWM5NDQ3Zi45MGVmYmFkNGIzNzc3ZmQzCkBAIC0zMTczNCw5ICszMTczNCw5IEBACiAgICAgNjRjYTViZTJkMjc5YmJhNy5hZjg0ZThjMTk4MDkxYWU0LjUyNDk2NTU1ZWUxODkwYmMuY2M5ZmMzNjk3YjhkMWNlNQogICAgIDBiOTFmNWNlMTA4YWM0OGIuNWE0OTU3OTAwMGE5NzNjNy5hZWRhYjA1NmQxYzk0NDdmLjkwZWZiYWQ0YjM3NzdmZDMKICAgICBjYzNmZWExZjM4NDQ2NjMzLmI4NTJkMTlhNWI4MDA1ZjEuMzc2Yjk4Yzc5MTlkYjI3MC5kOTVjYmY0MzkxZDFmZDM0Ci0gICAgMDQyMDM2NDFlNzM0ZGI0YS5hNTZiZDRjOWM1OTk4YzkxLjQ4NDgxOTEzYzkyMTE2M2EuODNiNDRlYTIzMGE4NTIzNAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMjU2XzEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNzZiOThjNzkxOWRiMjcwLmQ5NWNiZjQzODAwMDAwMDAKKyAgICA2YWMxZTNkZGFkMDczOWZlCitWUk9VTkRTU18weDIobWVtKQogICBiZWZvcmUKICAgICA2YTUwZmJlMDIzZmE2ZmJmLjBjODBkNWEwYjhlNTVmN2QuZmQ2MGRiMGI1YjAxYzNkMS4zY2JmMmZhNjE1ZGZhYjhhCiAgICAgNWUyZDExOTdhZjhlYjBhMi40M2FhYzRhODQ3ZTMzMDc4LjljZmM2MjRhMzhjMzY3ZGQuNzAxYmQ3ZWMxMjY2YWYwYgpAQCAtMzE3NDcsMTAgKzMxNzQ3LDEwIEBACiAgICAgNmE1MGZiZTAyM2ZhNmZiZi4wYzgwZDVhMGI4ZTU1ZjdkLmZkNjBkYjBiNWIwMWMzZDEuM2NiZjJmYTYxNWRmYWI4YQogICAgIDVlMmQxMTk3YWY4ZWIwYTIuNDNhYWM0YTg0N2UzMzA3OC45Y2ZjNjI0YTM4YzM2N2RkLjcwMWJkN2VjMTI2NmFmMGIKICAgICAyNDI0YTFlZjZjY2ViOGQ0LjA0ZWJmZWM1MzJiYjg4ZTYuNWQwZGU2NzQ3OWViMzNlMi40MWE3MGM1MTViM2Y1YjZhCi0gICAgOTcwMTI3ZDI3NmM2NDI4MC5hYjhmN2Y2MzEyZjhhNDc0LjFlNWRlMjc0M2E4NmU1MGMuMDliMGNhNDE4ZGY4ZWU1MgotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzc2Yjk4Yzc5MTlkYjI3MC5kOTVjYmY0MzNmODAwMDAwCisgICAgMjY4MjBkMjk0NDFkYTI3MAogCi1WVEVTVFBTXzI1Nl8xKHJlZykKK1ZST1VORFNTXzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGYyNjlkMjczMWIzOGI0NzAuOTM5MDIwMmVlYTgzMGJkNC45NGUyNDNlZjg1MjdjMGNkLmJhYjlkMjM2OTY5ZjM3ODYKICAgICBjYWIxMTM4ZGFlZDc2MGZkLmYzOWMwN2VkZTQxMGNmZjkuMWIzMDQ3ZDMyN2QzMTc5ZS4wZGVkMzJhNmE5NDNlNjdkCkBAIC0zMTc2MSw5ICszMTc2MSw5IEBACiAgICAgZjI2OWQyNzMxYjM4YjQ3MC45MzkwMjAyZWVhODMwYmQ0Ljk0ZTI0M2VmODUyN2MwY2QuYmFiOWQyMzY5NjlmMzc4NgogICAgIGNhYjExMzhkYWVkNzYwZmQuZjM5YzA3ZWRlNDEwY2ZmOS4xYjMwNDdkMzI3ZDMxNzllLjBkZWQzMmE2YTk0M2U2N2QKICAgICAwYmE2Y2VlMTlhODZlMWM0Ljk1ZjI1OGZkN2Y3OTQ5MWUuOWNjNTg2N2Q5Mzg4ZTY5My5mMmM1N2ViMDkwN2NhZDFkCi0gICAgMGY5M2ZlZGQ3YWNmNzU3MC41NDVlOGY0OWQ4Y2IzNjZkLjcyZWNmYzU4NjVkMjY5NTcuNDcwZDMzNDE2NjU4NGE5MQotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMjU2XzEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45Y2M1ODY3ZDkzODhlNjkzLmYyYzU3ZWIwODAwMDAwMDAKKyAgICBlNzkwY2I0MzQ4ZTM3NzA2CitWUk9VTkRTU18weDMobWVtKQogICBiZWZvcmUKICAgICBhZDFjYzRhNDUxMjdmMGE3LjMzYzVhMGVjZWE0MDU2YWUuMGJhYzI4YmQwOTExNTIxMi5mYmYzYTVjZjNhM2VkYzk2CiAgICAgNzc3YjlhNGU5ZDMyNzNhMS5kMzg4YWU3YTg4NjVjMDJhLjk4YThhMDQ1MzE1NzU5M2EuOTIyNDdkNTBhZTU3N2FmZQpAQCAtMzE3NzQsMTAgKzMxNzc0LDEwIEBACiAgICAgYWQxY2M0YTQ1MTI3ZjBhNy4zM2M1YTBlY2VhNDA1NmFlLjBiYWMyOGJkMDkxMTUyMTIuZmJmM2E1Y2YzYTNlZGM5NgogICAgIDc3N2I5YTRlOWQzMjczYTEuZDM4OGFlN2E4ODY1YzAyYS45OGE4YTA0NTMxNTc1OTNhLjkyMjQ3ZDUwYWU1NzdhZmUKICAgICAxZjdhYzcyZjQ5MTBiYTFmLjRiMjgyNmYzZWRjOGYxOGYuZDUxZTcyY2Q2YWFhMDYxMS45M2NjODE0NjVjYWE4MDM5Ci0gICAgODNlNWM5MzI3MWNjODI0Zi5mN2YxMDNjM2I3ZjgyMzhhLmEwZDkxYTQxZDAxNTE2YzIuNTkzN2FjMWRlMGMyMmFmMwotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWNjNTg2N2Q5Mzg4ZTY5My5mMmM1N2ViMDAwMDAwMDAwCisgICAgNDJiMWZhNDFkNzJiYjNkOQogCi1WVEVTVFBTXzI1Nl8yKHJlZykKK1ZST1VORFNTXzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGE4ODU2NzFmZGM3MjU4OTcuN2Q4ODFiNDIzMDcyODY1YS4zNDJmNDE1NjgyN2U5MmM2LmQzYTcxNDhkODBhNTQ1N2EKICAgICBlOTAxZjAyMThjMjI1NWQ4LmViMmUzOTRkYTMwZTg0NmUuNWMyZGRkMThlOWU4N2NmMC40YzUyZGM5ZTk1NjQ0ZTY1CkBAIC0zMTc4NiwxMSArMzE3ODYsMTEgQEAKICAgICBlYjdlZTNhMDRlM2VlMzBjCiAgIGFmdGVyCiAgICAgYTg4NTY3MWZkYzcyNTg5Ny43ZDg4MWI0MjMwNzI4NjVhLjM0MmY0MTU2ODI3ZTkyYzYuZDNhNzE0OGQ4MGE1NDU3YQorICAgIGU5MDFmMDIxOGMyMjU1ZDguZWIyZTM5NGRhMzBlODQ2ZS41YzJkZGQxOGU5ZTg3Y2YwLjRjNTJkYzllOTU2NDRlNjUKICAgICA1ZjZmOTBiNDgyYzdlNjQ5LmE3YTU5ZjNlZTVhZDM2YjcuY2MzOWQxNzY4OGMxMWJiNC5lNWE3ZWY1ZTJjNjFlZWFlCi0gICAgNWY2ZjkwYjQ4MmM3ZTY0OS5hN2E1OWYzZWU1YWQzNmI3LmNjMzlkMTc2ODhjMTFiYjQuZTVhN2VmNWUyYzYxZWVhZQotICAgIDY4MWM0MzQ1NWJlZDQ2OTYuOGViN2NhMDExMjVhNTg2MS5lMDlkMWJkYWZjOTVhY2JkLjdiNzJjOGJiNjBhNWUxODEKLSAgICAwMDAwMDAwMDAwMDAwMDAxCi1WVEVTVFBTXzI1Nl8yKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2MzOWQxNzY4OGMxMWJiNC5lNWE3ZWY1ZTgwMDAwMDAwCisgICAgZWI3ZWUzYTA0ZTNlZTMwYworVlJPVU5EU1NfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgMGY5OWJkZjgxMTM3YWY3OC41ZTU0MDUzZmIyMjFiMjZhLjdkMzEzNDgzNDcyMmE4OTcuZjRhNmI2YjJlMWYxNmJiOAogICAgIGM0OGRkMGIxYzY5ZDAyZjQuOWY2M2QyMGQyNGVmNjY3MS40ZWRmNWJhZTlmMTBlMDg2LjY0YTA5ZTY5ZDI2MDkzNTAKQEAgLTMxNzk5LDEyICszMTc5OSwxMiBAQAogICAgIDczMmJmZmZmMDc5YWRlODMKICAgYWZ0ZXIKICAgICAwZjk5YmRmODExMzdhZjc4LjVlNTQwNTNmYjIyMWIyNmEuN2QzMTM0ODM0NzIyYTg5Ny5mNGE2YjZiMmUxZjE2YmI4Ci0gICAgZjA2NjQyMDdlZWM4NTA4Ny5hMWFiZmFjMDRkZGU0ZDk1LjgyY2VjYjdjYjhkZDU3NjguMGI1OTQ5NGQxZTBlOTQ0NwotICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKLSAgICA1MjM0OTZmMzczZGQyY2M2LjZkMzU3ZmRhYzY4NTk0Y2MuMDkwN2NlYjMyYjhlZmEzZC5jNzk2NDcyMzQ5YTgxMTBhCi0gICAgMDAwMDAwMDAwMDAwMDA0MAorICAgIGM0OGRkMGIxYzY5ZDAyZjQuOWY2M2QyMGQyNGVmNjY3MS40ZWRmNWJhZTlmMTBlMDg2LjY0YTA5ZTY5ZDI2MDkzNTAKKyAgICBlNzI4OWFiNjg4N2E5OGFhLjg1OTVhNzFkNGNlMTlkNTkuZGU4ZGJiNmYzNzMwYmQ1OS44YmQ3ZDA2YTZiNmY2MTMyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNjMzlkMTc2ODhjMTFiYjQuZTVhN2VmNWVlMWYxNmJiOAorICAgIDczMmJmZmZmMDc5YWRlODMKIAotVlRFU1RQU18yNTZfMihyZWcpCitWUk9VTkRTU18weDMocmVnKQogICBiZWZvcmUKICAgICBlYmUwZjQ2YTQyY2UwNjRhLmUyN2U0MDU0YTRjZjdiNzYuYjQ5MDU2YjAyZjY3ODc3Ni5hYzE4MTI2NTk1Mzc1NTVkCiAgICAgOGIwMjIyZDA5NWQyYzMwYS43M2QxMTVjNjM3NWU0MWU0LmI0ZjMyODBiMjMxMWIyMDQuYTE4ZTAxNzA5NDM2ODhlNgpAQCAtMzE4MTMsMTEgKzMxODEzLDExIEBACiAgICAgMGEzZGIyZTgxYmIyOGRhZAogICBhZnRlcgogICAgIGViZTBmNDZhNDJjZTA2NGEuZTI3ZTQwNTRhNGNmN2I3Ni5iNDkwNTZiMDJmNjc4Nzc2LmFjMTgxMjY1OTUzNzU1NWQKKyAgICA4YjAyMjJkMDk1ZDJjMzBhLjczZDExNWM2Mzc1ZTQxZTQuYjRmMzI4MGIyMzExYjIwNC5hMThlMDE3MDk0MzY4OGU2CiAgICAgYWVkZDg2OWU5ZDMxNTE3MC5lMWZiOGYzMzQ3OTUzYTNjLmNhYThmMjU3M2QxMTUwMjIuYzUzMzFhYzI0MTk4NTAwNAotICAgIGFlZGQ4NjllOWQzMTUxNzAuZTFmYjhmMzM0Nzk1M2EzYy5jYWE4ZjI1NzNkMTE1MDIyLmM1MzMxYWMyNDE5ODUwMDQKLSAgICBiMmJkMWIzZWY1NzhlZTI4LjA4YzYyYzg4ZjA4MTIxYWIuNTNmY2FlMDExOWYzOWU3Yi5mNGQ0ZDY0NmJiNjg2OGUyCi0gICAgMDAwMDAwMDAwMDAwMDAwMQotVlRFU1RQU18yNTZfMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNhYThmMjU3M2QxMTUwMjIuYzUzMzFhYzI4MDAwMDAwMAorICAgIDBhM2RiMmU4MWJiMjhkYWQKK1ZST1VORFNTXzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIGUzMzkyYjk0N2Y4MzdiOTAuZjJlZGRkMWQzYTMxZDRkZC5jNTAwNjdiMjRmMmRiMzVkLmE5M2E1YTczNTQ0MWQ4YmMKICAgICA1Yjk2YmMzNjAzZTZlZWI4LmNhYmJjOGE4MDdlYjQwM2IuZjI3M2JkOWI4MGE1YWM3ZC4yOWIwZjExYThhODkzOTkwCkBAIC0zMTgyNiwxMiArMzE4MjYsMTIgQEAKICAgICAzZDUxMTI4NzIxYjJhNDNiCiAgIGFmdGVyCiAgICAgZTMzOTJiOTQ3ZjgzN2I5MC5mMmVkZGQxZDNhMzFkNGRkLmM1MDA2N2IyNGYyZGIzNWQuYTkzYTVhNzM1NDQxZDhiYwotICAgIDFjYzZkNDZiODA3Yzg0NmYuMGQxMjIyZTJjNWNlMmIyMi4zYWZmOTg0ZGIwZDI0Y2EyLjU2YzVhNThjYWJiZTI3NDMKLSAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCi0gICAgOTg5ZjE3MGRkOTkyNTE4Ni5iMTVjMGE2ZWFiOGI5OGE2LjBmMzdhNjVmYzUyYmMyYjkuMTc2ZmQxYjk1NDM1NjNhNAotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICA1Yjk2YmMzNjAzZTZlZWI4LmNhYmJjOGE4MDdlYjQwM2IuZjI3M2JkOWI4MGE1YWM3ZC4yOWIwZjExYThhODkzOTkwCisgICAgNGUxZWUxYmFjMmU3YTE1MS45NTcxZDg0OWY5MmY2ZGYwLjZjZWNhODMxOWRmNmM4MzguMmZhODcwNjM1NTU3ZmVhNAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYWE4ZjI1NzNkMTE1MDIyLmM1MzMxYWMyNTQ0MWQ4YmMKKyAgICAzZDUxMTI4NzIxYjJhNDNiCiAKLVZURVNUUFNfMjU2XzIocmVnKQorVlJPVU5EU1NfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgZmQ5YTJlM2I1ODU3ZmMxNi4xNWUzZDgxOTYzZjRiYTg0Ljc4Yzg1OTgyYjk4YWZkMDkuYjYxZjMyMTExMjUwNTcyZAogICAgIGIzOTYyMjQwOTZiMmE4ZTAuYTFiN2EyY2M3YzE5OTg3Ni40ODAxYzFmMWMwYjlkOGM2LjNmNzJjODMzYTA3MTQyYmYKQEAgLTMxODQwLDExICszMTg0MCwxMSBAQAogICAgIGI4ZGNhMDcxZWIzODY2ZTcKICAgYWZ0ZXIKICAgICBmZDlhMmUzYjU4NTdmYzE2LjE1ZTNkODE5NjNmNGJhODQuNzhjODU5ODJiOThhZmQwOS5iNjFmMzIxMTEyNTA1NzJkCisgICAgYjM5NjIyNDA5NmIyYThlMC5hMWI3YTJjYzdjMTk5ODc2LjQ4MDFjMWYxYzBiOWQ4YzYuM2Y3MmM4MzNhMDcxNDJiZgogICAgIGJiOTFlODAyNzY0ZWU0NDYuMThlNmYwMTA0MTBiYTY4OS43YjUzM2YyNzVjYTM2NTg5Ljg1ZmFlNWIxOGM5YjQxOWQKLSAgICBiYjkxZTgwMjc2NGVlNDQ2LjE4ZTZmMDEwNDEwYmE2ODkuN2I1MzNmMjc1Y2EzNjU4OS44NWZhZTViMThjOWI0MTlkCi0gICAgNzFkNjdlZWQ5NGI3ZWNmNC41NjNlM2VkM2NlZDhhMWU4LjZmMDljZDkwMjhkNGRmZmQuNjQ4NDAzNzdmMWRhMGVmMAotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUFNfMjU2XzIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YjUzM2YyNzVjYTM2NTg5Ljg1ZmFlNWIxODAwMDAwMDAKKyAgICBiOGRjYTA3MWViMzg2NmU3CitWUk9VTkRTU18weDQobWVtKQogICBiZWZvcmUKICAgICA1ZGNlMzc4Yzk4YzMwNGFjLjMxYjNkZjZlOGU3YWZiOTUuMzY4OTA5MDAzZThjNDRjMS43ZTcxNjk5OGMwZDk4M2NmCiAgICAgMmUyNjQ1YjIxMTg3YTU2Yi41NzcyMDdlZmZkMjI0ZWQ2Ljk2OTVjYjgzYWQzMTRkM2QuMDZkNTBlYWJjMTNkOGNhYgpAQCAtMzE4NTMsMTIgKzMxODUzLDEyIEBACiAgICAgMDRlNzBjNjA0ZTFkNjMyZgogICBhZnRlcgogICAgIDVkY2UzNzhjOThjMzA0YWMuMzFiM2RmNmU4ZTdhZmI5NS4zNjg5MDkwMDNlOGM0NGMxLjdlNzE2OTk4YzBkOTgzY2YKLSAgICBhMjMxYzg3MzY3M2NmYjUzLmNlNGMyMDkxNzE4NTA0NmEuYzk3NmY2ZmZjMTczYmIzZS44MThlOTY2NzNmMjY3YzMwCi0gICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgotICAgIGM5MzdiMmQzZGRlNmUwOGEuNDVjOTlkYTViMDUzYWZlNi40MzFiMmEzYmZhODQ3Y2Q1LmVjYzQ2NGEzNmM1M2MxMmUKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgMmUyNjQ1YjIxMTg3YTU2Yi41NzcyMDdlZmZkMjI0ZWQ2Ljk2OTVjYjgzYWQzMTRkM2QuMDZkNTBlYWJjMTNkOGNhYgorICAgIDA5YjA0NGQxNzQ4ZTA1NTEuM2Y2MGYyZGQ3ZjNjMjE2Mi41MTJjMDI0ODM4ZDU3NjhiLjYxODJiODM2YzY4YzM4M2MKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2I1MzNmMjc1Y2EzNjU4OS44NWZhZTViMWMwZTAwMDAwCisgICAgMDRlNzBjNjA0ZTFkNjMyZgogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNTXzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDAzMzZhZWQ3MDk3NjVjZTguNGE4ODBhYTY2NzliZjI0MS5jNWY4MDJiMTJiZjMzNTBlLjQ3MmViZDQ4MTA0ODFhNDcKICAgICA0NmZmNDU3NjM4ZWJlNjA4LjY3NzBjODM1MmViOGY2YTMuMWEzYjFmNmY4Y2E4ZWY4NS4zYjMwMzg1Yjk1MmYwZTBlCkBAIC0zMTg2OSw5ICszMTg2OSw5IEBACiAgICAgMDMzNmFlZDcwOTc2NWNlOC40YTg4MGFhNjY3OWJmMjQxLmM1ZjgwMmIxMmJmMzM1MGUuNDcyZWJkNDgxMDQ4MWE0NwogICAgIDQ2ZmY0NTc2MzhlYmU2MDguNjc3MGM4MzUyZWI4ZjZhMy4xYTNiMWY2ZjhjYThlZjg1LjNiMzAzODViOTUyZjBlMGUKICAgICAyOThjY2VhODc4MDczZTM5LmZlYjg2ODZjNGY0OWE5ZGMuYTJkY2YwNGE3MGZmMThmNy5mYWVmMTg2MWE2NDUxMjU2Ci0gICAgMDkyYTQzZDk2NDU2OWYyNy5lOTJmNjczN2U2NWFjNjE3LmI4Mjg2ZmFlNzM4M2VlMTIuNWYzNWQ4NDQ1ZTk1ZTI0YQotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMmRjZjA0YTcwZmYxOGY3LmZhZWYxODYxODAwMDAwMDAKKyAgICA0OGQwZjRmMmRhMmIzYzE3CitWUk9VTkRTU18weDQobWVtKQogICBiZWZvcmUKICAgICA4ZjhhZTk1NTM1MTNkYWU5LjQwMjVhMjc1OTk2NTQ3ODAuMDZhMDQwODIwZGY4MGE4MS5iNzZiOWEwNzMwYzFhYjgwCiAgICAgMTIzMDMyNWI4YjVhNzllYi4yYmM5ZTZlOGIyYmY3MGVlLjJmZDY2ZjM5ZTMyZTMxNDUuZmRmMTZjYzE0MzQ0OGJlZApAQCAtMzE4ODIsMTAgKzMxODgyLDEwIEBACiAgICAgOGY4YWU5NTUzNTEzZGFlOS40MDI1YTI3NTk5NjU0NzgwLjA2YTA0MDgyMGRmODBhODEuYjc2YjlhMDczMGMxYWI4MAogICAgIDEyMzAzMjViOGI1YTc5ZWIuMmJjOWU2ZThiMmJmNzBlZS4yZmQ2NmYzOWUzMmUzMTQ1LmZkZjE2Y2MxNDM0NDhiZWQKICAgICBhYjhkNGFlZmY5MGJkNDQ5LjI2NjIwYjllNGJmMDU3MWQuNDI5ZjcwNDk4MjA4Zjc5MC5lNTA2ZTE0ODQ5OThjYzA2Ci0gICAgMzg2ZmIwZmQ5YjMyYTkzMS44ZDNiMGUwMzAxODUzN2JhLjE5YzVjMDljMDY5MzE4OGQuY2FmNmY1MDhkZDRhYTg3NwotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTJkY2YwNGE3MGZmMThmNy5mYWVmMTg2MTAwMDAwMDAwCisgICAgMGEwY2E1NmQ5Y2U0NWNlYgogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNTXzB4NChyZWcpCiAgIGJlZm9yZQogICAgIGZmOTVlYmU0MjFmNTIzMGYuOTNhMGRkNzE4Y2RjYjJjZC5iY2EyZTk4NDcwMDk0ZDcxLjkyMTVkOTFmOGNkYTRmNjkKICAgICAwN2RkYzVkNzA5MDYzYjhmLjk5ZWU0ZTM3ZTgxNGFiNDkuMGZlMTlhOGIzMzA5ZDVlZC44NzViMzliZjJmZWE1OTUwCkBAIC0zMTg5Niw5ICszMTg5Niw5IEBACiAgICAgZmY5NWViZTQyMWY1MjMwZi45M2EwZGQ3MThjZGNiMmNkLmJjYTJlOTg0NzAwOTRkNzEuOTIxNWQ5MWY4Y2RhNGY2OQogICAgIDA3ZGRjNWQ3MDkwNjNiOGYuOTllZTRlMzdlODE0YWI0OS4wZmUxOWE4YjMzMDlkNWVkLjg3NWIzOWJmMmZlYTU5NTAKICAgICA3YzMwMmViNGVmYTVkZTE2LjI3MjM4MDNiY2NlNzUyZDIuZTI0NTFjODZlNjBmMGJkYS5kNTYyNWM2NzBjY2VmMTZkCi0gICAgYmNkYTIzZTY3MDVlNDg1MC4xNzBjZWU2YTU0NjA2MTk0LjkxMWE2Y2RmMjZhOTJhZTYuNTlmOGJjMDIzZTkyZDRlZAotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lMjQ1MWM4NmU2MGYwYmRhLmQ1NjI1YzY3MDAwMDAwMDAKKyAgICBlZGU3ZDc3ZWUxNDJiZWZjCitWUk9VTkRTU18weDQobWVtKQogICBiZWZvcmUKICAgICA2ZWZkMjdjNjEyZWI2YmM1LjIxMjc5ZmQ4MjdiYmI3ZWIuNDY3NTE0YWU5YThiOTViYS43OGFiODQwNDhmNjM2ZmJiCiAgICAgYjgwNDJhYzZlZDk4OTc3NC4wODYyOWRmOGIwNGE2NTkxLjkwMjk2ZmY1YmQ3NGE5NzEuZjM0NjYyNjBiYmM4MTYwNQpAQCAtMzE5MDksMTAgKzMxOTA5LDEwIEBACiAgICAgNmVmZDI3YzYxMmViNmJjNS4yMTI3OWZkODI3YmJiN2ViLjQ2NzUxNGFlOWE4Yjk1YmEuNzhhYjg0MDQ4ZjYzNmZiYgogICAgIGI4MDQyYWM2ZWQ5ODk3NzQuMDg2MjlkZjhiMDRhNjU5MS45MDI5NmZmNWJkNzRhOTcxLmYzNDY2MjYwYmJjODE2MDUKICAgICBhOGM5NWM2YThkNTZmZDM2LmNlZDkxYmIxYTg5NjhmZWUuZDJmNjc5MjlkNzI4NWJlNC41ZDM1MDE1ZjQ5NjQ1YjcyCi0gICAgMTgxNzM3OWYwZjMwNWEzNy5jZGQ2MTU2ZmFiMmM3MGFmLmU2YTZiMDM4MDRiMjY1NDAuMTRjNjVkNmRkMmMzNzlhYgotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTI0NTFjODZlNjBmMGJkYS5kNTYyNWM2NzgwMDAwMDAwCisgICAgNzM0MzcyZjZmNTcyYWQ1ZgogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNTXzB4NShyZWcpCiAgIGJlZm9yZQogICAgIGQ2ZjkzZDY2NGJmYzMzMzguZTViYzM5NGY4ZTMyNjlhMy42MmE2ODU5ZjU0OTc0NjgwLmE5MDY4ZjBkNjExZjg0YjEKICAgICA5ODM0YjkyYTczZWU0NmUyLmViODJkZDY3MjY2OGU4YTUuZTk5NTY5YWIzZjY0NGIwYy5mN2UyOTM5MzA5N2E3MzYyCkBAIC0zMTkyMyw5ICszMTkyMyw5IEBACiAgICAgZDZmOTNkNjY0YmZjMzMzOC5lNWJjMzk0ZjhlMzI2OWEzLjYyYTY4NTlmNTQ5NzQ2ODAuYTkwNjhmMGQ2MTFmODRiMQogICAgIDk4MzRiOTJhNzNlZTQ2ZTIuZWI4MmRkNjcyNjY4ZThhNS5lOTk1NjlhYjNmNjQ0YjBjLmY3ZTI5MzkzMDk3YTczNjIKICAgICAxNzNmZTJhYzA2ZDMyMzBhLjA2Mzc5ZmQ0ZjRkZjkxNjkuYmZlZWJjMDAwOTFkYmMwMC5hYzA2MzZiODE4Y2ZlZjgwCi0gICAgYWU2OGI0NWFhMjM3MDY1Yy4xMmE1ZmI4MTEzYTMyMTFjLjNlZmY3YTBiNGQ1MGQ0MDcuYTQzZWY2NjhhYzJiYjQzNgotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZmVlYmMwMDA5MWRiYzAwLmFjMDYzNmI4MDAwMDAwMDAKKyAgICBiYjU1NGU4ZGRlOTk3ZWIxCitWUk9VTkRTU18weDUobWVtKQogICBiZWZvcmUKICAgICBjZDE5YmExNGNjMjUwODFkLmI4ZjkyYzllZTNhNzJhODMuZWI5OTZlNTlhMGJlNTNlYS5jMzEyOWYzNmE4ODlkMGNlCiAgICAgYjY1NGI2ZTk5MmRjMGZhNS45MzNmNDRlNjY0YWVjZDJjLjZkZGY3MjRhYjYzZWU0ZmYuYWE3NTI4ZWZiNjUyZWMwMQpAQCAtMzE5MzYsMTAgKzMxOTM2LDEwIEBACiAgICAgY2QxOWJhMTRjYzI1MDgxZC5iOGY5MmM5ZWUzYTcyYTgzLmViOTk2ZTU5YTBiZTUzZWEuYzMxMjlmMzZhODg5ZDBjZQogICAgIGI2NTRiNmU5OTJkYzBmYTUuOTMzZjQ0ZTY2NGFlY2QyYy42ZGRmNzI0YWI2M2VlNGZmLmFhNzUyOGVmYjY1MmVjMDEKICAgICA1MmQzYmZmOTRiYzg0Zjc2LjlhODZmYTlkYzJkODI5MDMuNzQ0Mjg1M2Y3MjJlOTA4Ni40ZjcyMTBhMTExMzk2NDRiCi0gICAgN2Q2MjUwMmUxM2Y4ODRiYi4yODFhNDkyZjk4YjE3YWIzLmRjOTAyMzI0ZWY5YjEzYWIuMGU1NjUzYjg1OGNhNzM1OQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmZlZWJjMDAwOTFkYmMwMC5hYzA2MzZiODgwMDAwMDAwCisgICAgNDM2Y2VkOWYyNDkwNTZkNgogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNTXzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDRhMDJkYmM1MTQxNzQ5NmYuMTNjZGU1NzYwNzc1NjlhMS45YjQ3MmUwODgyYzZmZWU4LjgxOTNjNmU1NGE5MDI4OWIKICAgICA3ZjYzMTc5M2MxZWI4N2QwLmYwZTBmYWJjNDM0ZGJiNTQuNGQ1OGEzOTQxZGEzZWY1MC4zZjE4ZWM2ZTllMTk4YzgyCkBAIC0zMTk1MCw5ICszMTk1MCw5IEBACiAgICAgNGEwMmRiYzUxNDE3NDk2Zi4xM2NkZTU3NjA3NzU2OWExLjliNDcyZTA4ODJjNmZlZTguODE5M2M2ZTU0YTkwMjg5YgogICAgIDdmNjMxNzkzYzFlYjg3ZDAuZjBlMGZhYmM0MzRkYmI1NC40ZDU4YTM5NDFkYTNlZjUwLjNmMThlYzZlOWUxOThjODIKICAgICAzZWRhOWY3NmM5OTk0ZWE0LmYwNjYwY2ViZTI4YzM1ZmYuOWM5YmE2M2YwNGQyOGE5NS5mMWVjMTBhYjA4NDNmYjhiCi0gICAgZTNiNDZlZGFjOGFjZDg5OC5lZTJjOTVmMTAwM2M5NWNmLmUyNWEzMjc1ZDRlMTBhNjMuNzVkOGFlODlhMzE5MzFlMwotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45YzliYTYzZjA0ZDI4YTk1LmYxZWMxMGFiODAwMDAwMDAKKyAgICBhNmFiNDJmMjhjYTdlOWI2CitWUk9VTkRTU18weDUobWVtKQogICBiZWZvcmUKICAgICA2MDMwNDlkNGRlZmFlMDJmLmNhM2Q4MTJjNTliMTYxNTcuYzhmZTEzYjliYTZiOTVlZi43Y2UyNDNhMjI5NWJhZDY3CiAgICAgN2UzMjNkMTliNTFkZDI3Yi40ZmMxZDJkNjE5MzIyNzhlLjU5YTgwMTJmMmIyNWYyOGMuYzc3ZmQ2MzM5ZGNkYWQ0ZApAQCAtMzE5NjMsMTAgKzMxOTYzLDEwIEBACiAgICAgNjAzMDQ5ZDRkZWZhZTAyZi5jYTNkODEyYzU5YjE2MTU3LmM4ZmUxM2I5YmE2Yjk1ZWYuN2NlMjQzYTIyOTViYWQ2NwogICAgIDdlMzIzZDE5YjUxZGQyN2IuNGZjMWQyZDYxOTMyMjc4ZS41OWE4MDEyZjJiMjVmMjhjLmM3N2ZkNjMzOWRjZGFkNGQKICAgICBkZTdlOWNhZjJlMWQ3YWM1LmNkOGM1ZjQ2YTNiZTY0ZTguN2NmNmRjNDA3MDc1NjdkMS4xZDdkZTU5MmNmYzI0N2MwCi0gICAgNWJlMWUxODE2NTA0OTUzYS5hMmU5MjNlNjkzZGU1NTEzLjBmYjQxZWQ2YTQ2N2IyZWIuZGIyNzZlMmQ1OGM2YjY2ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWM5YmE2M2YwNGQyOGE5NS5mMWVjMTBhYjAwMDAwMDAwCisgICAgNWRjYjZjNmZkNzY2MzdmZgogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNTXzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDAwYjNkY2M0ZTUyZDA2MjMuZDAyNDg5N2I3NWUwZGYwNi4yOTI1MWEyNDg2MjAzNWI4LmVkYWU0NWRlZTQwNzhkMDYKICAgICAxZTJjYjg5ODIwYTg1Zjg1LjFiMTYwZTg5N2FiZDE0NTQuYmQ4ZDQxNmIxODBmNDE4Ni5mMWFmY2M0NTRiNjJiNDRkCkBAIC0zMTk3Nyw5ICszMTk3Nyw5IEBACiAgICAgMDBiM2RjYzRlNTJkMDYyMy5kMDI0ODk3Yjc1ZTBkZjA2LjI5MjUxYTI0ODYyMDM1YjguZWRhZTQ1ZGVlNDA3OGQwNgogICAgIDFlMmNiODk4MjBhODVmODUuMWIxNjBlODk3YWJkMTQ1NC5iZDhkNDE2YjE4MGY0MTg2LmYxYWZjYzQ1NGI2MmI0NGQKICAgICAxNDgyZmU1NzI0NjE3ZGQwLjE2ODJlZTk3OTFhNWVmNTAuYmM2YjkyMjdlMzM4YjUyNy5mOTg0MmZmNWY2ODNlNWVkCi0gICAgM2UwMWE5NmQ4Y2U2OWRiMS45ZjMzYTQ5MWQ1YTcyZDI4LjgxMGMwYmM0ODYyNmNkNDcuZGZmOWViZGMwMDc2ZGExMgotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iYzZiOTIyN2UzMzhiNTI3LmY5ODQyZmY1NGI2MmI0NGQKKyAgICA4MWRhN2FlNTg1NDg1MGU3CitWUk9VTkRTU18weDUobWVtKQogICBiZWZvcmUKICAgICBiOWYzNWFmY2EyMDQwMjk5LmY4ZjViNTQ2ZjVjM2ZiZDMuOTBmN2FkNjQ2M2NjOGEwNS42N2JiYTdhZTliNjVjNDkzCiAgICAgNjUwZjA2MGQ3M2I3YWU1My45ZWE5MWY0ZWZhODJkMmUzLmM3OTg4M2ZhNTcyMmMxMTYuY2NjNjYzNTFiZTgxZDhiNwpAQCAtMzE5OTAsMTAgKzMxOTkwLDEwIEBACiAgICAgYjlmMzVhZmNhMjA0MDI5OS5mOGY1YjU0NmY1YzNmYmQzLjkwZjdhZDY0NjNjYzhhMDUuNjdiYmE3YWU5YjY1YzQ5MwogICAgIDY1MGYwNjBkNzNiN2FlNTMuOWVhOTFmNGVmYTgyZDJlMy5jNzk4ODNmYTU3MjJjMTE2LmNjYzY2MzUxYmU4MWQ4YjcKICAgICA1ZmZjZmIwNDEzNmIwZTQyLjhjNmFlMWYyMzdiMjYwOGQuMWVlM2E0NDFjYmI0OGY4NS4wYjc3MzkxYThjMDc0MjVlCi0gICAgODQ4NGIzY2Q5ZTJmZGU5MS4xZTg1Zjk5YzQ5ZGNkZTdjLjczYTQ4YjIzZGU4ZWIwN2YuN2YxYzI3NzNhMDgzNDEzNQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmM2YjkyMjdlMzM4YjUyNy5mOTg0MmZmNTgwMDAwMDAwCisgICAgODVmZjI4Y2E5NzdmMGZlOAogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNEXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDdhNmQzODg5MGM4OWU5MjIuYjE3NGFjNTQzMTBjZGM2ZC5iMDQ0NjJiYWNjOGU4YjVkLmEwYTZiNDhlYTliZGUwMmYKICAgICBiOGIxNTQxZTliMmMwYjhmLmMwOTg2MTg1ZTgxMGMyMDIuOWVmMzE5YjY1YjUzYTFkYi44MmI3OWI2ZDRhNGNkYWMyCkBAIC0zMjAwNCw5ICszMjAwNCw5IEBACiAgICAgN2E2ZDM4ODkwYzg5ZTkyMi5iMTc0YWM1NDMxMGNkYzZkLmIwNDQ2MmJhY2M4ZThiNWQuYTBhNmI0OGVhOWJkZTAyZgogICAgIGI4YjE1NDFlOWIyYzBiOGYuYzA5ODYxODVlODEwYzIwMi45ZWYzMTliNjViNTNhMWRiLjgyYjc5YjZkNGE0Y2RhYzIKICAgICA5ZDE5NzZmNGUyZjViMWRkLjhlYmM0ZTRkZGU0NjRkN2IuNDRlMDE4ZmU5MmI3NWVhMy5mNmExYmRhYmRkNDg1YjYzCi0gICAgODNmMDljNzc3YTZmMTZiNS5mOGFjZjA5NjJmYmIzODA1LmZlNTY1ZGZkMGU0N2ZiNjEuZDYzMjk1MzY3ZGJjMWYzZgotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NGUwMThmZTkyYjc1ZWEzLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBmZjM0OWZmOTQ3YjRlMTgyCitWUk9VTkRTRF8weDAobWVtKQogICBiZWZvcmUKICAgICA0ZDc0NTdlMTU2M2M1ZTU3LmM3ODFjMTEzMDEyNjc3YzYuZDgzM2MxNGVmODc5NDFjYi4yOGEwZTMxZjZhOGViN2MwCiAgICAgOWNiZDM5ZDhjNjYxNTJlYi5jNjE5ZTEzNDEzYTcwZmJhLjBiMWYzZjVmNTQ4ZjIyZmEuMWUwYmE2ZDA0MzE5Y2M2ZApAQCAtMzIwMTcsMTAgKzMyMDE3LDEwIEBACiAgICAgNGQ3NDU3ZTE1NjNjNWU1Ny5jNzgxYzExMzAxMjY3N2M2LmQ4MzNjMTRlZjg3OTQxY2IuMjhhMGUzMWY2YThlYjdjMAogICAgIDljYmQzOWQ4YzY2MTUyZWIuYzYxOWUxMzQxM2E3MGZiYS4wYjFmM2Y1ZjU0OGYyMmZhLjFlMGJhNmQwNDMxOWNjNmQKICAgICBjOGRkYzJjYmI0MmY3OTY5LmRhMDRmOTQ2NGI3ZDFiM2UuNmQzYWU1Yjc2MDA2OThiZS4zYmU0YTI3YzM0NzM3NzEzCi0gICAgYWU5ZTZkYTczY2IwOGVmZS42MDhlMDRiNTQ1MzRkOGZkLmRhNTEzMDQxMzdlYzVlNDIuZGQ3NWQ0OGZkYTI4ZjQ1ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDRlMDE4ZmU5MmI3NWVhMy4wMDAwMDAwMDAwMDAwMDAwCisgICAgNWYwYTM3NzZkMGM0N2VmZAogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNEXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDFjZjFjNzliYjNkNDUyOTguMjhjZWI2NTY3OWYyNGVkNi5iNDAzZmVlZTllNTk3ZmE0LjJlMzA5YWU5ZjY0YzMxYjMKICAgICA3Mjc0ODA2YjFlZTNhY2RjLjEzMzcxOWM2ODcwMDc1MWMuMzNhZWUzNWJmMTc3NGZkZS40NWEyYTE5YmI4MzNjZDNjCkBAIC0zMjAzMSw5ICszMjAzMSw5IEBACiAgICAgMWNmMWM3OWJiM2Q0NTI5OC4yOGNlYjY1Njc5ZjI0ZWQ2LmI0MDNmZWVlOWU1OTdmYTQuMmUzMDlhZTlmNjRjMzFiMwogICAgIDcyNzQ4MDZiMWVlM2FjZGMuMTMzNzE5YzY4NzAwNzUxYy4zM2FlZTM1YmYxNzc0ZmRlLjQ1YTJhMTliYjgzM2NkM2MKICAgICBiY2UxNWY1M2FkN2VjODc3LjRiYTYxM2UxODNlN2JmZmQuMzdkZGFmNmFkYjFiODI1OC5mYjc1YzA0Mzk5YWNlZTBhCi0gICAgNTU4MjVlYmVmZDMwZTExMy5hY2U3MWY5NTg4YjJlN2E0LjFkZGE1Zjg1ZjhjZjU1YmUuMmM3MzczY2ViN2MzNGY0OQotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zN2RkYWY2YWRiMWI4MjU4LjQ1YTJhMTliYjgzM2NkM2MKKyAgICBiNDZhMzYyNjJiODVhZDI0CitWUk9VTkRTRF8weDAobWVtKQogICBiZWZvcmUKICAgICA2ZjI0ODYzODEzZmRjNGM4LjliYTQ3YjE4YWE4NTM0NWMuMTJjNWI5Y2RiMzZkYWEzZS40MWYyZWQxYWUyMjEwM2JiCiAgICAgMzk2ZWRlZjE4YjM3NTA2MC5lODkzYjFjYzRmMGFmZGZmLjU5MGU1ZDc1MWYyNWMzZjcuZmY3MTU3OTQzODlkY2FmYwpAQCAtMzIwNDQsMTAgKzMyMDQ0LDEwIEBACiAgICAgNmYyNDg2MzgxM2ZkYzRjOC45YmE0N2IxOGFhODUzNDVjLjEyYzViOWNkYjM2ZGFhM2UuNDFmMmVkMWFlMjIxMDNiYgogICAgIDM5NmVkZWYxOGIzNzUwNjAuZTg5M2IxY2M0ZjBhZmRmZi41OTBlNWQ3NTFmMjVjM2Y3LmZmNzE1Nzk0Mzg5ZGNhZmMKICAgICBlZTEzYmEzYmFlNDAwYzE5LjlhOWFmZDQ4ODg0YTc3YTguNWM4Yzg3NzllOWU1ZjBmYS5iM2EzOTk1ZjkzY2VlNDJjCi0gICAgNmFlMTk2MDQ5ODIzYjUxZi4wYjA3NTlmOGYyZDFkZjAyLmY5MGNiNGM1MmNiOWViNzQuYjlkM2FkZTc5MjQwOGVmOAotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzdkZGFmNmFkYjFiODI1OC40MWYyZWQxYWUyMjAwMDAwCisgICAgNmQ0ZjkxOThjZTdmMDMwYwogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNEXzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDJiNjE0MGRlZTUxODgwMTMuODlhM2VmMzc2NmVjMDY5ZC45OTI0YzM0NjI5MmM3MWJhLjBiNWI1ZjQ2MDVhZTcxOTAKICAgICA0ZjU2YjYyNTczOTY0MWJhLjI2MjQzZmMwMzNhOGJkYzAuOWUzZjM2OWZjOGU2Njk3Yy42ZTQyMDRlNjhmY2YzZDdiCkBAIC0zMjA1OCw5ICszMjA1OCw5IEBACiAgICAgMmI2MTQwZGVlNTE4ODAxMy44OWEzZWYzNzY2ZWMwNjlkLjk5MjRjMzQ2MjkyYzcxYmEuMGI1YjVmNDYwNWFlNzE5MAogICAgIDRmNTZiNjI1NzM5NjQxYmEuMjYyNDNmYzAzM2E4YmRjMC45ZTNmMzY5ZmM4ZTY2OTdjLjZlNDIwNGU2OGZjZjNkN2IKICAgICAzNDdhZWZkYTEzODY4MmFjLjFmMzEwNDhiMWM2Mjk0YjMuNzhhMmFlNmY2YjhiMDJmMy5mZTkwMWY5MmU2MjgwYzYxCi0gICAgMzgxOWU4Njc2MjcyN2U5Ni40Zjk2Yjk4NDNjMjY0OGEzLjgxOWEyODIzYWZhODc5Y2IuOTYxMDJkMzcyOGM2OWE2ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43OGEyYWU2ZjZiOGIwMmYzLjZlNDIwNGU2OGZjZjNkN2IKKyAgICAxNDhkYTljMDZlYjRhM2NiCitWUk9VTkRTRF8weDAobWVtKQogICBiZWZvcmUKICAgICA1M2Q0MGYxOGQ2ZmVlM2E5LmI2N2Y5YzNhZmJlOTczMjMuOTExZmRiOTdiMDAxOTRiYy4xNjcyOWYyNTJmYzcwYWIxCiAgICAgMmViMmRiMmQ3Y2IxMTUzMS4wYWY3MDdiZTdhNzQ5YTAxLmMzOThlNGIwOTNmZTM2MjkuOTM3ODBmZTM4ODc3ZjA1MQpAQCAtMzIwNzEsMTAgKzMyMDcxLDEwIEBACiAgICAgNTNkNDBmMThkNmZlZTNhOS5iNjdmOWMzYWZiZTk3MzIzLjkxMWZkYjk3YjAwMTk0YmMuMTY3MjlmMjUyZmM3MGFiMQogICAgIDJlYjJkYjJkN2NiMTE1MzEuMGFmNzA3YmU3YTc0OWEwMS5jMzk4ZTRiMDkzZmUzNjI5LjkzNzgwZmUzODg3N2YwNTEKICAgICA4M2YxODllYTdhZDhmNjhmLjkwY2YyNTVlN2NhMTMyZDkuYzBjYzUyYmMwMjI5ZTcxNi41NWY2NzRjODU1NDI2ODU3Ci0gICAgMmM1ZDk2M2JlZjdmNDFmMC5hMzUxZjI4ODlkZmI3NTVhLjYzODhhMGE1MTg4ZjY2YjEuYjYzYWNhM2YzM2I0YWU2ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzhhMmFlNmY2YjhiMDJmMy4wMDAwMDAwMDAwMDAwMDAwCisgICAgMTM4ZTBkYjZiZDU5ZmU0MgogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNEXzB4MShyZWcpCiAgIGJlZm9yZQogICAgIGM4M2YzYTk4OTBiZTkzODEuMDdjNDdkMGNmNWIzYjM4MC5hMWNhNmJhNzc3MGZhMDJlLjhhOTk0YTU5ZjIzYjZlMjQKICAgICAzMTk5NGM1MjQ3NmVhYWQ0LmVlZjBiYTQ5YTg3ZjA4NmEuZTU4NjhiMjdhOTY4ZWYwMS4wZmM5Y2RjM2FiMzliYTliCkBAIC0zMjA4NSw5ICszMjA4NSw5IEBACiAgICAgYzgzZjNhOTg5MGJlOTM4MS4wN2M0N2QwY2Y1YjNiMzgwLmExY2E2YmE3NzcwZmEwMmUuOGE5OTRhNTlmMjNiNmUyNAogICAgIDMxOTk0YzUyNDc2ZWFhZDQuZWVmMGJhNDlhODdmMDg2YS5lNTg2OGIyN2E5NjhlZjAxLjBmYzljZGMzYWIzOWJhOWIKICAgICBhYWU3M2Y0ZTdlZjU3ZmVhLmJmYWZjOWRmMjVmMGZjZGIuY2FkMTRlNzRjZDkyOWQ4MC5kMGU1YTNjZTYwOTYwNzQzCi0gICAgOTA3NzEwZjlkMmUwNGU2ZC41NGNiMjdiODg3MTA0YmZmLmFlZjZiMGZiN2YxOWU3NTcuYTdiODRhNjgyYzVkMTA0OAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYWQxNGU3NGNkOTI5ZDgwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICA3MjEwM2Q3YzJiOWI5MmQ1CitWUk9VTkRTRF8weDEobWVtKQogICBiZWZvcmUKICAgICAwYmI3ZjlmNjdhNWI0YTE3LjNkOTNiYWJmZGZiYTUyMDkuOGIxMTRlYzJlYmVlYjAwMS5lYjQzYWUyNjVjOGEwOTMxCiAgICAgNGY3YmY4YzIzNWE5ZjEzOS4wZTg4MzgwZDQwMGZjODZjLjNlNGRiY2U3NmM5M2U4MGQuZGYwMjQzNjJmZjcwM2ZiYgpAQCAtMzIwOTgsMTAgKzMyMDk4LDEwIEBACiAgICAgMGJiN2Y5ZjY3YTViNGExNy4zZDkzYmFiZmRmYmE1MjA5LjhiMTE0ZWMyZWJlZWIwMDEuZWI0M2FlMjY1YzhhMDkzMQogICAgIDRmN2JmOGMyMzVhOWYxMzkuMGU4ODM4MGQ0MDBmYzg2Yy4zZTRkYmNlNzZjOTNlODBkLmRmMDI0MzYyZmY3MDNmYmIKICAgICAxYjI2YjhjYzc3OTE0NjY4LjVmYTI4ODRkOTE2Y2ViM2YuNGI0YmVjMTUyNzBkYWU1MS5lNDgwNmIxYzA1NThjNGExCi0gICAgNDk4NWI0MDE1YzIwMDNkMC44YjJkYTZlZDZmNWNmOTMxLjhjZDY1YjM3Mzc2N2JmZjYuNTgwOTIyYmYwOWNkZDU4ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2FkMTRlNzRjZDkyOWQ4MC5lYjQzYWUyNjVjOGEwOTMxCisgICAgOTVlOTY0YjZhNzViYWUyZQogCi1WVEVTVFBTXzI1Nl8zKHJlZykKK1ZST1VORFNEXzB4MShyZWcpCiAgIGJlZm9yZQogICAgIGY5NmIyZTZmN2M4ZjhhMmYuYjY2NDY4NGIwMTYxZTU5Yy5mMDc1OGM1ODc1NmMyY2VjLmRlYmI4MzM4YjlhZWQ3MmIKICAgICBkZWRkN2I1NTI0ZjRhNjNhLjNmOGU1MTk4ODE2MWE3ZjkuZTljNjM4ZmE0MDI3YzExYy4xZGM3ZTIwNmM4ZWNiMjFhCkBAIC0zMjExMiw5ICszMjExMiw5IEBACiAgICAgZjk2YjJlNmY3YzhmOGEyZi5iNjY0Njg0YjAxNjFlNTljLmYwNzU4YzU4NzU2YzJjZWMuZGViYjgzMzhiOWFlZDcyYgogICAgIGRlZGQ3YjU1MjRmNGE2M2EuM2Y4ZTUxOTg4MTYxYTdmOS5lOWM2MzhmYTQwMjdjMTFjLjFkYzdlMjA2YzhlY2IyMWEKICAgICBhMTg5NDdkNDNhMTYzZWZlLmJlZDFlOWQyZjkyYjA3MTMuZDI2YmE1M2Y2YzE5ZjM2ZS4yNmM0ZjM4YzgwMzAwY2YwCi0gICAgOWZiYzhlNTg1YjgyOGUyNS4xMGY3YWVlNzg0Y2JiZjE1LjA3YjFjZjkzOTNjZWZmOGUuZDM3ZjMyYjdmZTgzYTBkOAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUFNfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMjZiYTUzZjZjMTlmMzZlLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMWMzMWM3MTVlZjMyYmZmCitWUk9VTkRTRF8weDEobWVtKQogICBiZWZvcmUKICAgICA4YzVlMmJhN2JiOGI2ODkwLjMyYzI0YzRkMjJjM2QxNWMuMTFjZDFiYzIzZjRkOGMyYi5lNGU0YjM2MjU0ZDMyMTI4CiAgICAgNTAxYmRkNDYzMTU4MTViOC5iN2U3N2UyMDJiNjU0NDRlLjlkMWZhYzRmNDViZTI5ODIuYzQ1MDRiMTg0OGIzOTVlNgpAQCAtMzIxMjUsMTAgKzMyMTI1LDEwIEBACiAgICAgOGM1ZTJiYTdiYjhiNjg5MC4zMmMyNGM0ZDIyYzNkMTVjLjExY2QxYmMyM2Y0ZDhjMmIuZTRlNGIzNjI1NGQzMjEyOAogICAgIDUwMWJkZDQ2MzE1ODE1YjguYjdlNzdlMjAyYjY1NDQ0ZS45ZDFmYWM0ZjQ1YmUyOTgyLmM0NTA0YjE4NDhiMzk1ZTYKICAgICAyOWM1YWUzOGRkNjVlY2EzLjhhNzcxZjNiMTNmNTIzYTguOTBiOWRlN2FiMzI5NTM0Ni4wNTQxOTUyMTBkZmI5Njc3Ci0gICAgZjMyOTE4NmJkYmJlYWE3Yy4wN2JlMmIwYjc1ZmVhOTE1LmM2NjcyYzJmYTQ5YmM2YTMuMDIwMzhjZWEzZjM2NjI4NQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDI2YmE1M2Y2YzE5ZjM2ZS5lNGU0YjM2MjU0ZDMyMTI4CisgICAgMTZlMTJjZGQ3OWYwMzJiZAogCi1WVEVTVFBEXzEyOF8xKHJlZykKK1ZST1VORFNEXzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDlmMjk3MjY4NThiNTQ1Y2EuOGExMzk4Yzk0NTcwMGE3MC44YTA3OWZmZGVlMGMxNDQyLjFiZjQxMjVhMzUxZjNlYzQKICAgICBmODI1NTlmNjc3MTJkNTU5LmNhNGZhYjQwM2E4NWM5YWEuNzA5Zjc1N2MxYWFjOWVkYi42YjJlMGNlNzgxYzE3NmQ1CkBAIC0zMjEzOSw5ICszMjEzOSw5IEBACiAgICAgOWYyOTcyNjg1OGI1NDVjYS44YTEzOThjOTQ1NzAwYTcwLjhhMDc5ZmZkZWUwYzE0NDIuMWJmNDEyNWEzNTFmM2VjNAogICAgIGY4MjU1OWY2NzcxMmQ1NTkuY2E0ZmFiNDAzYTg1YzlhYS43MDlmNzU3YzFhYWM5ZWRiLjZiMmUwY2U3ODFjMTc2ZDUKICAgICA3YzIyZGNmMjcyOTMxZjE2LjhmYThjY2JiZDQwY2EzNTcuMTNkMmFiZjM5MzY5ODM4Yi45MmRmOTZjMmE0OGUyYjAzCi0gICAgODk2Y2ZhY2FlNmMyNWZhYy5iNWVjNzcyNjJmMGU1NGEzLmQwZWMzY2QwZjhkMDAxZmYuNmNkNDJkZDhiYjkxMTk3YQotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUERfMTI4XzEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xM2QyYWJmMzkzNjk4MzhiLjZiMmUwY2U3ODFjMTc2ZDUKKyAgICBkNWQ5NGMxM2UyZDZmYzY2CitWUk9VTkRTRF8weDEobWVtKQogICBiZWZvcmUKICAgICBhOWJhNmY2MTM0NmE4ZmYyLjc5NGVhY2U5NmYyZGQwYzcuMThlNTI5NmQ2ODk5OTdiOS4wMzM5MjQ3ZWUyNmI1MmUyCiAgICAgYzQ0MzEyYWRjZDU4OGY0YS5hYTE2ZjBiYmE4NWZhZjE1Ljk0NjE1YzdjOWFiOTI5YzYuMDgwNTYwNjlmMGM5YjJlMQpAQCAtMzIxNTIsMTAgKzMyMTUyLDEwIEBACiAgICAgYTliYTZmNjEzNDZhOGZmMi43OTRlYWNlOTZmMmRkMGM3LjE4ZTUyOTZkNjg5OTk3YjkuMDMzOTI0N2VlMjZiNTJlMgogICAgIGM0NDMxMmFkY2Q1ODhmNGEuYWExNmYwYmJhODVmYWYxNS45NDYxNWM3YzlhYjkyOWM2LjA4MDU2MDY5ZjBjOWIyZTEKICAgICAwMjNmYjFlM2NhYWNiNzliLjc2MGVjMGFkMmRlNTM4NDAuMDUyYThlNDBlMTc4YzZmNS4zYjliZWJmZGJiNzM1ZmE4Ci0gICAgM2U3YmM5ZWU0NjczYzUxMS4zYjgzMWEyOTliNGFhN2Y0LjQ2MGMzYWEzNWJlNDJhNzMuZjg0OGMwYTdlMWY3OTNlMgotICAgIDAwMDAwMDAwMDAwMDAwNDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTNkMmFiZjM5MzY5ODM4Yi4wMDAwMDAwMDAwMDAwMDAwCisgICAgOWE1OWRlZDFmZWUwOGIzYwogCi1WVEVTVFBEXzEyOF8xKHJlZykKK1ZST1VORFNEXzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDdmMTgzZWU4YWRiYTgzNjEuNTZjNGQ1YmM1ZWI4NzNkNy41M2MxZmE5YzhkMWEzN2RlLjM1ZDVkZDkyMjEwOTEwNmIKICAgICAwMmQxZGQ1OThiMTJiNmZlLjI1ZTQ1MTM5MmU4NzdlMWEuMWIxNDVhNzNhMGUyMjVhYS5hZDUwZjFmYTUxZjEzNTBhCkBAIC0zMjE2Niw5ICszMjE2Niw5IEBACiAgICAgN2YxODNlZThhZGJhODM2MS41NmM0ZDViYzVlYjg3M2Q3LjUzYzFmYTljOGQxYTM3ZGUuMzVkNWRkOTIyMTA5MTA2YgogICAgIDAyZDFkZDU5OGIxMmI2ZmUuMjVlNDUxMzkyZTg3N2UxYS4xYjE0NWE3M2EwZTIyNWFhLmFkNTBmMWZhNTFmMTM1MGEKICAgICA3ZmQyYjg4ZTMzNzM2MWJlLjg3YTdiOTRmZDBlZGExMDYuZjBjODM4MTg3MDJkYWQwMy44YTQ4ZjRjNjA3YWE1NTdjCi0gICAgNTI2NmNhZjU0MTZhYzA0Zi41N2RiOGFlYjYzZjU5YWM2LjJjMjk4ZmY5OTc4NzBhOTYuYTc4YTYxZTE1ZTQwMmJlZAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUERfMTI4XzEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMGM4MzgxODcwMmRhZDAzLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBlMmUzYjQzOTcyYmU3NDg3CitWUk9VTkRTRF8weDIobWVtKQogICBiZWZvcmUKICAgICAxNTFkNmFiOTYwMzBlYzc5LmQ2ZDgwZmY5NTI4MjBmNWEuNzM0YjNmZjkwMGFiMjI4Ny4yYzgyNWI4MGIzN2Q3YTBlCiAgICAgMWUwNGZkNGQ0NGEyNGZlZC42OTc1ODQwNjAxNDc4OThlLmI1YzI1NDY2YzUxY2Y4NzQuNGMyMDk4MWI2MDlhMzcxOApAQCAtMzIxNzksMTAgKzMyMTc5LDEwIEBACiAgICAgMTUxZDZhYjk2MDMwZWM3OS5kNmQ4MGZmOTUyODIwZjVhLjczNGIzZmY5MDBhYjIyODcuMmM4MjViODBiMzdkN2EwZQogICAgIDFlMDRmZDRkNDRhMjRmZWQuNjk3NTg0MDYwMTQ3ODk4ZS5iNWMyNTQ2NmM1MWNmODc0LjRjMjA5ODFiNjA5YTM3MTgKICAgICBkODY2ZWJlMTM4MjE1ODEwLjY2ODkyNDg4ZWI0NjZiOTUuZmIwZDQ1MWNjZTUzZDdiYS5lODUwNDMzNTM5NmE3ZDYwCi0gICAgMWUwZGFmNjE1YmI4YzQwZC4yODYwZWFlYmFjMDlmMTFiLjFmZjg4ZjA5MzY1ZDdhODQuNWQ1YzU2M2FkYjdhODk5MQotICAgIDAwMDAwMDAwMDAwMDAwNDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjBjODM4MTg3MDJkYWQwMy4zZmYwMDAwMDAwMDAwMDAwCisgICAgMDU5MGNmOTZlMTU1OTg1OAogCi1WVEVTVFBEXzEyOF8xKHJlZykKK1ZST1VORFNEXzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDNkM2FhYWI2ZTg4OGUzNjAuY2RjN2M1YmFjNzczNGYxMS4wZDQ2ZDU5YmRmMWY1NmNkLmZmNGZhYzE4MWE0NDllZmYKICAgICA2MWE1ZTEwNDhiOWRhOTU2LmMyNWVhYWQ2OTg1ZmI0NDcuNzA4NmRlMDQyMDExZDc1Ny43NWRlMWEzNTk1MTZmZTU3CkBAIC0zMjE5Myw5ICszMjE5Myw5IEBACiAgICAgM2QzYWFhYjZlODg4ZTM2MC5jZGM3YzViYWM3NzM0ZjExLjBkNDZkNTliZGYxZjU2Y2QuZmY0ZmFjMTgxYTQ0OWVmZgogICAgIDYxYTVlMTA0OGI5ZGE5NTYuYzI1ZWFhZDY5ODVmYjQ0Ny43MDg2ZGUwNDIwMTFkNzU3Ljc1ZGUxYTM1OTUxNmZlNTcKICAgICBjZDFjNzJlZDY2MjIyNGU2LmQ3OWZkOWEzZWI4N2IwZGMuYWM2ZTAyOTIwYzZkYjA2NC41ZjcwNTQ0Y2MzZGY1N2I3Ci0gICAgZGRlYzU4ZGUxNmEzOTFiYi5lYTU2Y2UwYmRiZjhmZmZjLjFmNDgzZWIyM2ViZTFkYTEuOTdkM2Q3NDljMWFhNjY0YwotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUERfMTI4XzEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hYzZlMDI5MjBjNmRiMDY0Ljc1ZGUxYTM1OTUxNmZlNTcKKyAgICBmYmQxMWQxOGFiODNlNDQyCitWUk9VTkRTRF8weDIobWVtKQogICBiZWZvcmUKICAgICA2NTM3YTRhNTljNzY5MGM0LmVkNjE4ZjQxMzdhYjJjODIuZDU0ZjA1ZmM4NWJkNWRkMi4yMzYxOGRjZTUyOTE1OWJhCiAgICAgYjJkMWU3ZGNiMDkwMjRmZS41OWM3MTM4NDYzYzYzMGU2Ljc1NTVmYTYxMDRlMjg1OGIuMTYwNWViNTRlNjcxYTE1YQpAQCAtMzIyMDYsMTAgKzMyMjA2LDEwIEBACiAgICAgNjUzN2E0YTU5Yzc2OTBjNC5lZDYxOGY0MTM3YWIyYzgyLmQ1NGYwNWZjODViZDVkZDIuMjM2MThkY2U1MjkxNTliYQogICAgIGIyZDFlN2RjYjA5MDI0ZmUuNTljNzEzODQ2M2M2MzBlNi43NTU1ZmE2MTA0ZTI4NThiLjE2MDVlYjU0ZTY3MWExNWEKICAgICBiZTZiNjJhYTA0ZGM1ZDFlLjdkNmFlMDEyMzk4MGRhOTQuYTczNTJhMjY3NDczMzQ1My41MjgwNTVhZjkzZWEzMTJkCi0gICAgNjZkMTkxZjliMzY3ZjY0ZC5iNTk1ZjM1NzUzNjY2NjM4LjQ1YmMwZjM3ZjI3ZDI2NTUuMzQxZWM1NGFmNzg5NDRlMQotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWM2ZTAyOTIwYzZkYjA2NC4zZmYwMDAwMDAwMDAwMDAwCisgICAgMTkyYTM5OTNhZWQ5MTcxZgogCi1WVEVTVFBEXzEyOF8yKHJlZykKK1ZST1VORFNEXzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDViZjJhY2Y1NTM2NmU2OTYuODRjZWYxYjdkYTNjYWRiYS41Yzk2NDdiZjRkMDMwZjdkLjJjYjQyNzgwOWEwYjE2YmQKICAgICA1N2MwMWJkYzgzYmRlZGYwLmY1MzBmZGNmOTQ2NzNjOGYuZDBiN2Q4YjZjNGU0MTMxMC4zOGVhZWVlZDg3MmFjMWI5CkBAIC0zMjIxOCwxMSArMzIyMTgsMTEgQEAKICAgICBkM2Y3MmU0NTA3NWY3YmQyCiAgIGFmdGVyCiAgICAgNWJmMmFjZjU1MzY2ZTY5Ni44NGNlZjFiN2RhM2NhZGJhLjVjOTY0N2JmNGQwMzBmN2QuMmNiNDI3ODA5YTBiMTZiZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42YzQ1YTNhODUzOTNhYzljLjQ1MjlkZTZhZDZlNWUzNzIKKyAgICA1N2MwMWJkYzgzYmRlZGYwLmY1MzBmZGNmOTQ2NzNjOGYuZDBiN2Q4YjZjNGU0MTMxMC4zOGVhZWVlZDg3MmFjMWI5CiAgICAgNmFlMTgwYjVkOTY5NjdkYS45NWMxMzEyY2ZlZjQ2MGY4LjZjNDVhM2E4NTM5M2FjOWMuNDUyOWRlNmFkNmU1ZTM3MgotICAgIGVlYTFkOWVhZjFmNjkxZmYuNDA0ZTA5YmMzM2YwZDQyMy44YzhjYTIwMTk3OWYxNmNlLjMwM2Y3NWUzYTI0ODM4MTcKLSAgICAwMDAwMDAwMDAwMDAwMDQxCi1WVEVTVFBEXzEyOF8yKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmM0NWEzYTg1MzkzYWM5Yy4zZmYwMDAwMDAwMDAwMDAwCisgICAgZDNmNzJlNDUwNzVmN2JkMgorVlJPVU5EU0RfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgMGIxYzg1N2EyMjM3NjljZi40MDRiMjFlODY4ZjFhNzBjLmQyYTMwMjZhNTA2NzU1M2EuOGJkOGQzMmQyYjkxOGY1MQogICAgIGI0N2JmNjcwMGVkY2JlM2MuYmMyZDU0MWNkOWU1ZTRhYy4yNzhiOTcyMjcwNjM5ZjY5LmM3NzQzMTk5YWNmNzUxZDMKQEAgLTMyMjMxLDEyICszMjIzMSwxMiBAQAogICAgIDdhMjczMzhkZDA1NWE5MDAKICAgYWZ0ZXIKICAgICAwYjFjODU3YTIyMzc2OWNmLjQwNGIyMWU4NjhmMWE3MGMuZDJhMzAyNmE1MDY3NTUzYS44YmQ4ZDMyZDJiOTE4ZjUxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJkNWNmZDk1YWY5OGFhYzUuNzQyNzJjZDJkNDZlNzBhZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKLSAgICBjOTE3MTg0YmNiYjk4YzEwLmEyYzU2Y2QyMWJlOWM2NTguOGE0ODg1NjEyYjFmN2RjMS42MmQwNjVkZGUyNGRhMjdlCi0gICAgMDAwMDAwMDAwMDAwMDA0MAorICAgIGI0N2JmNjcwMGVkY2JlM2MuYmMyZDU0MWNkOWU1ZTRhYy4yNzhiOTcyMjcwNjM5ZjY5LmM3NzQzMTk5YWNmNzUxZDMKKyAgICBhYWUwZmUxMmU4NTgzNjQyLmJlOTE2ZWYwZTE1ZTg1OGMuMWJkNDQzZDBiMGYyNmVkZC45YmFlYjhhZmI1NWM5OWZkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZjNDVhM2E4NTM5M2FjOWMuODAwMDAwMDAwMDAwMDAwMAorICAgIDdhMjczMzhkZDA1NWE5MDAKIAotVlRFU1RQRF8xMjhfMihyZWcpCitWUk9VTkRTRF8weDMocmVnKQogICBiZWZvcmUKICAgICAzZWZmMWUyZDFiMDBlYTJmLmVkZWJjMDA5ZDQwYTdkZDAuYzQxMzQ5MmQyNDExZTNiYi41MGI1ZDZiZmZkZjc4OTQzCiAgICAgMDlhNDIyMjg1ZWRiYTFiOC5mMjJhNzIzNzFmNThjNGFlLjgxYzgwMTZkOTg2MzE3NjIuNDllNWI0ZDc0Mzg1NGU4YwpAQCAtMzIyNDUsMTEgKzMyMjQ1LDExIEBACiAgICAgZmUwNDZlYjVlMmVkNDlkNQogICBhZnRlcgogICAgIDNlZmYxZTJkMWIwMGVhMmYuZWRlYmMwMDlkNDBhN2RkMC5jNDEzNDkyZDI0MTFlM2JiLjUwYjVkNmJmZmRmNzg5NDMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzMyZjkwZmQxMTY5OWZmOC41MWE1OTk5NjE5ZDU4OGNiCisgICAgMDlhNDIyMjg1ZWRiYTFiOC5mMjJhNzIzNzFmNThjNGFlLjgxYzgwMTZkOTg2MzE3NjIuNDllNWI0ZDc0Mzg1NGU4YwogICAgIDM5NjIzYmVhMzU3MDBhNDcuYjM5ZWFhYzFjNmFlMWZkNy4zMzJmOTBmZDExNjk5ZmY4LjUxYTU5OTk2MTlkNTg4Y2IKLSAgICAyODg1NjZkZjNkNGU2MDg3LjBlMTVlNTkzZTcxODQ4NzcuMzc5NmYyNGMyZGIxYjcyYS40NGMwMDRlNzlhZjRmMjJhCi0gICAgMDAwMDAwMDAwMDAwMDA0MQotVlRFU1RQRF8xMjhfMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMzMmY5MGZkMTE2OTlmZjguNDllNWI0ZDc0Mzg1NGU4YworICAgIGZlMDQ2ZWI1ZTJlZDQ5ZDUKK1ZST1VORFNEXzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIDViM2M1NGVlMGVjYzQ4ZjkuMzM1ODlkNzMxMmZlZTAyNS5kZTU5OWU5YTllYTNmY2JhLmU4NDcyNGMzODhjNzliYTQKICAgICAzNjMzMzM3ZDNhOWVhZGMyLmI3MjhkZTEzNGYwZWM1Y2MuZmYzNjUxYzAwNjVhZjZjYi5hNDkwMjFjZmJkMzY4NjExCkBAIC0zMjI1OCwxMiArMzIyNTgsMTIgQEAKICAgICBhY2VhYjNhYTkzMTJjZWM2CiAgIGFmdGVyCiAgICAgNWIzYzU0ZWUwZWNjNDhmOS4zMzU4OWQ3MzEyZmVlMDI1LmRlNTk5ZTlhOWVhM2ZjYmEuZTg0NzI0YzM4OGM3OWJhNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMWE2NjE2NTYxNWMwMzQ1LjE3YjhkYjNjNzczODY0NWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCi0gICAgZGI5MWM5NGRmZjQ4OTRmMS45NmVmNmMyMjcyN2NiMmU4LmEzZjA5NjFkNWI3ZGFmMDguYWExNTZkNTcyNzRmNjQ3NgotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICAzNjMzMzM3ZDNhOWVhZGMyLmI3MjhkZTEzNGYwZWM1Y2MuZmYzNjUxYzAwNjVhZjZjYi5hNDkwMjFjZmJkMzY4NjExCisgICAgNmRiNjg2NGU4MDZlMzI1Yy4wZTQxMjUyOTkwMGE0YzI5LjRkN2E3YWYzM2M0OWYzZDYuYzZiYmU1ZGM2OThhYjUxZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zMzJmOTBmZDExNjk5ZmY4LmU4NDcyNGMzODhjNzliYTQKKyAgICBhY2VhYjNhYTkzMTJjZWM2CiAKLVZURVNUUERfMTI4XzIocmVnKQorVlJPVU5EU0RfMHgzKHJlZykKICAgYmVmb3JlCiAgICAgMjg4NWI1NDM0YjVlMzBiOS41YzkwNzg2NmQwMzk4ZWIwLmE5N2ViMTZiOTBmMjMwYjQuZGY2MzFmMmM3ZjAxZTY4ZAogICAgIDc5MzQ2ZThjZThjMGM2ZmQuY2I3ZjEwODYxMjRjZGRjMy5hNDM5ZWY2Zjg3ZjgwNTNhLmRjYTA5MzBhYzVlMTU0OTAKQEAgLTMyMjcyLDExICszMjI3MiwxMSBAQAogICAgIGYwMGI0NWJmNzgyNTNjNGEKICAgYWZ0ZXIKICAgICAyODg1YjU0MzRiNWUzMGI5LjVjOTA3ODY2ZDAzOThlYjAuYTk3ZWIxNmI5MGYyMzBiNC5kZjYzMWYyYzdmMDFlNjhkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUzNmUyMjk5ZjIxODZiMjYuNzU3NDZlYTU0OTJhYjQzZQorICAgIDc5MzQ2ZThjZThjMGM2ZmQuY2I3ZjEwODYxMjRjZGRjMy5hNDM5ZWY2Zjg3ZjgwNTNhLmRjYTA5MzBhYzVlMTU0OTAKICAgICBmZDQxZGFmMzA4YzNjYjNiLjA2MjkwYzk3ZGU4ZDNkNTcuZTM2ZTIyOTlmMjE4NmIyNi43NTc0NmVhNTQ5MmFiNDNlCi0gICAgMGZmOWY2ZTM0NmYzN2QyMi5lNzViZTg4NjUzMDk2YTk3LmMzNjc0NjU3NmVlMDlmMjMuODhhOTJhZTgyNmU3YzJjMwotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUERfMTI4XzIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lMzZlMjI5OWYyMTg2YjI2LmRjYTA5MzBhYzVlMTU0OTAKKyAgICBmMDBiNDViZjc4MjUzYzRhCitWUk9VTkRTRF8weDMobWVtKQogICBiZWZvcmUKICAgICA4ODY4MzkxNjVjZWVkY2ZmLjBiYThiY2M4M2ZkYzE2NWIuNGNlMjIwNDA4YWNiMjBiMC45ZTcxNTgxNDk2ZGNkY2RkCiAgICAgMmU4YTg0ZGFlZDUxNWYxMC40YzlhMmEwZThmMGJkMjk1LjBmODgzMGIwYTFlMDFhY2UuZDFkODUzM2MwNjk2NjAwMgpAQCAtMzIyODUsMTIgKzMyMjg1LDEyIEBACiAgICAgMTIzMjkyNmYyM2JiZTRhMAogICBhZnRlcgogICAgIDg4NjgzOTE2NWNlZWRjZmYuMGJhOGJjYzgzZmRjMTY1Yi40Y2UyMjA0MDhhY2IyMGIwLjllNzE1ODE0OTZkY2RjZGQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjMxZGRmYmY3NTM0ZGY0Zi42MThlYTdlYjY5MjMyMzIyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgotICAgIDBmNTEwZDU0ODkwZWZkZjAuMTE3N2VjNmRhMTY5YTdiNy4yMzYzY2E2MWRlMzBjY2M2LmFmZWRmNDdkMzE3YTI4MzcKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgMmU4YTg0ZGFlZDUxNWYxMC40YzlhMmEwZThmMGJkMjk1LjBmODgzMGIwYTFlMDFhY2UuZDFkODUzM2MwNjk2NjAwMgorICAgIGJjM2ZhMmY1NDg1NzgxYTcuMzAxYjNiMjFkMDBjZWY3YS4wZTFhOTVjMWI0NTIxNTFjLmI4ZTgzMjNiNWI5YzY1M2IKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTM2ZTIyOTlmMjE4NmIyNi44MDAwMDAwMDAwMDAwMDAwCisgICAgMTIzMjkyNmYyM2JiZTRhMAogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZST1VORFNEXzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDNkMDUwYTdiY2VlYmQ2MjIuMDQ4ZDQzZTRjYTgxOTExOC40ZGY5Mzc1ZjliYjAzN2Y3LjJjMzE0YjdiM2M4M2ZjZmEKICAgICA4Y2IwNTcwZmNkOTYzYTZiLjc1YmZiZjhmMmFiY2Y3NGIuM2VlZTFhNjE1ZDZjZGFlNy4wMzRlOTRmYmU5NTk2MWUxCkBAIC0zMjMwMSw5ICszMjMwMSw5IEBACiAgICAgM2QwNTBhN2JjZWViZDYyMi4wNDhkNDNlNGNhODE5MTE4LjRkZjkzNzVmOWJiMDM3ZjcuMmMzMTRiN2IzYzgzZmNmYQogICAgIDhjYjA1NzBmY2Q5NjNhNmIuNzViZmJmOGYyYWJjZjc0Yi4zZWVlMWE2MTVkNmNkYWU3LjAzNGU5NGZiZTk1OTYxZTEKICAgICA1YjgwNzU5NWJjNDk0YzI0LjQwYjNmZDQzYzJjY2ViYjQuNDJhMzkwZTE4MDJhY2UzMi44Njg4MjJjZDAxYmRiN2FhCi0gICAgMDZjMTYwN2IzODhmNDdmYy4zZjM0NzllYmIwYmMyYTgwLmIzNjI5NTQ5YTM3NTRkODYuOGZhOTcwZGVhMWJiYmE3ZgotICAgIDAwMDAwMDAwMDAwMDAwNDEKLVZURVNUUERfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MmEzOTBlMTgwMmFjZTMyLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBmYjdlZmExOGU0NjAyNThkCitWUk9VTkRTRF8weDMobWVtKQogICBiZWZvcmUKICAgICBhNmQzM2M2OGU3YjdiNWZmLmU5YmYxNTJjZGNmNTY4OWQuNGYwZmIwNzMxMDk5NzBkYS5lZjc3MjUwNzVmZDk5MzhjCiAgICAgNmQ3M2IyYmJjNmNkMjUwMi42MGM1OGUxMzQ1MDVlYmIzLjRjMTExZGM3ZmQ2ZTc5ZWYuNTAzMDNkODY1MmUzZGVmMgpAQCAtMzIzMTQsMTAgKzMyMzE0LDEwIEBACiAgICAgYTZkMzNjNjhlN2I3YjVmZi5lOWJmMTUyY2RjZjU2ODlkLjRmMGZiMDczMTA5OTcwZGEuZWY3NzI1MDc1ZmQ5OTM4YwogICAgIDZkNzNiMmJiYzZjZDI1MDIuNjBjNThlMTM0NTA1ZWJiMy40YzExMWRjN2ZkNmU3OWVmLjUwMzAzZDg2NTJlM2RlZjIKICAgICAyYTJjZDlmYjliYWQzM2MxLmM3MjFjOTllMGU0ZDBjZWIuMTMwNDNjZDM5NDQ3MDFlYi4zNGQ3ZDgzMjE4MWU2ODY0Ci0gICAgYmFjODJjMTY4NTYzOTk2OS43OTFkYzEzOGQ0NTkwNmYxLjdlYjU4OTgzZjAzMGMzZjkuZjViYWYyNzc0YzE2NmU4ZQotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDJhMzkwZTE4MDJhY2UzMi5lZjc3MjUwNzVmZDk5MzhjCisgICAgZjAyMzg3YzE4YTU4MmIxYgogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZST1VORFNEXzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDgxNWY5NDdjNmY2ZmRkYjcuZjkxNDI3Zjc5ZGZjMTMyNi5kNDA2NzM0ZTMyYjQxNjcwLjZhZWY4MWMzMmQzNjdjNDYKICAgICAwNWJhMTMxNDk3ZTdiZTEwLmMzZGM0NjhhMDI4MjVmMjMuMzMyOGQ5NGFjNWVhNzgxNS5iMzgwOWU3ZjY4NjVlN2ZkCkBAIC0zMjMyOCw5ICszMjMyOCw5IEBACiAgICAgODE1Zjk0N2M2ZjZmZGRiNy5mOTE0MjdmNzlkZmMxMzI2LmQ0MDY3MzRlMzJiNDE2NzAuNmFlZjgxYzMyZDM2N2M0NgogICAgIDA1YmExMzE0OTdlN2JlMTAuYzNkYzQ2OGEwMjgyNWYyMy4zMzI4ZDk0YWM1ZWE3ODE1LmIzODA5ZTdmNjg2NWU3ZmQKICAgICBkNjgwMDJmNjlkNGQwYmQwLmY0ZWMwNmJiY2QwNDM3OGQuZjJjZmYxOTkyODg4Njc4Yy4zNTMzNWVhNGJkYzdjMjRiCi0gICAgNTFmYzVkOGMxZDJjZmZhMy42ODEwZTE3NjFjOGI1ODhmLjZjNDZiNmE3ZjgxODIwODAuY2NkMzNjMWM0NzZhYzc1YwotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUERfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMmNmZjE5OTI4ODg2NzhjLjgwMDAwMDAwMDAwMDAwMDAKKyAgICA1NDJkYjVkNTIyNTliMzViCitWUk9VTkRTRF8weDQobWVtKQogICBiZWZvcmUKICAgICBhOTBkNDNiYTZiYTE0MTc1LmQyN2MxZTQ0YjQxMGQ3MzYuZmIxNDU1YTcwYjI1N2U1Ni5mZmRiMjVlMWQwMjlkZjllCiAgICAgYTczZjY0YjYzZDRkMmVkNS5iNTRhNDI4OGZkODZjZjM1Ljg5YzNkZTNhYjVkZTY0MGUuMDZkODM4YjI0ZDQ0ZGY5MQpAQCAtMzIzNDEsMTAgKzMyMzQxLDEwIEBACiAgICAgYTkwZDQzYmE2YmExNDE3NS5kMjdjMWU0NGI0MTBkNzM2LmZiMTQ1NWE3MGIyNTdlNTYuZmZkYjI1ZTFkMDI5ZGY5ZQogICAgIGE3M2Y2NGI2M2Q0ZDJlZDUuYjU0YTQyODhmZDg2Y2YzNS44OWMzZGUzYWI1ZGU2NDBlLjA2ZDgzOGIyNGQ0NGRmOTEKICAgICAyYThlOTNiN2I1NjkzNmE4LjU2YjNjNmM2OTUxOTIzNGIuZWVlYWY2MWMzN2MwYzdlMi5kYzhhZWQ4NTBhZjc1ZTA2Ci0gICAgMGVjODRjYThlZTAyMTUxYS4xMTAzYTU2OTE3NTUwZTI1LjA2NTUxYjM3YWNkOTYzZmYuZGYzZDNmYzhhM2NkOTZhOAotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjJjZmYxOTkyODg4Njc4Yy5mZmRiMjVlMWQwMjlkZjllCisgICAgNjkzZDJhZTZiNTUzYzMyNQogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZST1VORFNEXzB4NChyZWcpCiAgIGJlZm9yZQogICAgIGQ4ZDZhYTRiZGMxNDIzMjYuMmZiNzBjNzUwNTIzODY1Ni40Mjg2ZGNkZDIwYzdjZDZlLmFkZDBjNzc5MzAzNGYzOTAKICAgICA4NjUzYmM2M2IzOWNmMDVhLjY5Mjk0ZDBiMTVkODQ2ODkuNDU4NzY1OGU0YmZhOWNkMy5iZjI3NzhjY2UwZGUzNWMyCkBAIC0zMjM1NSw5ICszMjM1NSw5IEBACiAgICAgZDhkNmFhNGJkYzE0MjMyNi4yZmI3MGM3NTA1MjM4NjU2LjQyODZkY2RkMjBjN2NkNmUuYWRkMGM3NzkzMDM0ZjM5MAogICAgIDg2NTNiYzYzYjM5Y2YwNWEuNjkyOTRkMGIxNWQ4NDY4OS40NTg3NjU4ZTRiZmE5Y2QzLmJmMjc3OGNjZTBkZTM1YzIKICAgICBkMTAyNWI5YWQ2Nzg2NzZhLjk4ZTg4ZDU0M2IyZTExZGUuNzY1NDNlZTgzNTdiYjYwMC4xODI2YWExZWQ4ZTJlM2MxCi0gICAgMTMyZDgzNWNlMjMzYzMwNS45N2MxNDczZDkyMzBhMzgyLjMxMzc2MjU3NzlkNTU5YTAuOTQ5OGQ3NWEzMjRjYjliOAotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUERfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NjU0M2VlODM1N2JiNjAwLjgwMDAwMDAwMDAwMDAwMDAKKyAgICAwZTRhN2Q2YzBkMjk3NWQzCitWUk9VTkRTRF8weDQobWVtKQogICBiZWZvcmUKICAgICA2NDA5MTc0MDgzODRkMTQwLmE5MjEzMDE2NzI1OTQyZDUuNDQ3ZmY3YjMzN2VhYjdhMS5kMjdkY2Q0N2I0OTRiZjVmCiAgICAgNzE5ZjIxYzJiMDY5OGEyOS5mMDJhNWUzMjIzNzcxZTg3LjdhZjAxYWEwNDU2OTBhNjYuYjU3MjdiMjU4MTQ0MjRlYgpAQCAtMzIzNjgsMTAgKzMyMzY4LDEwIEBACiAgICAgNjQwOTE3NDA4Mzg0ZDE0MC5hOTIxMzAxNjcyNTk0MmQ1LjQ0N2ZmN2IzMzdlYWI3YTEuZDI3ZGNkNDdiNDk0YmY1ZgogICAgIDcxOWYyMWMyYjA2OThhMjkuZjAyYTVlMzIyMzc3MWU4Ny43YWYwMWFhMDQ1NjkwYTY2LmI1NzI3YjI1ODE0NDI0ZWIKICAgICAxMWQ4MTdkZWIxZTU1YmJhLjQyOTQwYTFlOTAxODkzYzYuMTVkZTJiZjJkOGI4NThmZS4zNjYyNjk1YjdjNzJjNmVlCi0gICAgMWY4Mjc2ODBhMTAzMDEyMC5mY2FhMmY0NDU2YzhkZjNmLmYwMTdhNjk0MGRlMzVjOTQuYjE5OTkyNTc0MmE5ZGYxNAotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzY1NDNlZTgzNTdiYjYwMC5kMjdkY2Q0N2I0OTRiZjVmCisgICAgODE2MmYyODQ2Zjc2YWMwYQogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZST1VORFNEXzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDA0MGI4NTRkOWU2NDY4N2MuNzk2OGI5OTU5ZGQwMzg4Ny43YmJhYzkxMjEwMTQzYzlkLmU5NjUwNzcxMDBmN2QzNTUKICAgICA5NWRlNDcyMDZiZmY1MDE2LmY5NTU1YzA3YzA1NmJjMWEuMTkwZWQ0ZjM1Yjg3ZTc4ZC5kYjk1Y2E3N2NjZmY3OTZjCkBAIC0zMjM4Miw5ICszMjM4Miw5IEBACiAgICAgMDQwYjg1NGQ5ZTY0Njg3Yy43OTY4Yjk5NTlkZDAzODg3LjdiYmFjOTEyMTAxNDNjOWQuZTk2NTA3NzEwMGY3ZDM1NQogICAgIDk1ZGU0NzIwNmJmZjUwMTYuZjk1NTVjMDdjMDU2YmMxYS4xOTBlZDRmMzViODdlNzhkLmRiOTVjYTc3Y2NmZjc5NmMKICAgICA4ZjI4MzU2ODczZDNhMDgyLjdkMTZkYmM0MjZhMzQ5MDYuMzNmMzRkNTNkMmFkMWNiYi5hMTcyNmM5MThkMDcwYTA2Ci0gICAgNTAzNTRhOTE1MjZkOTQ2Zi5lMDc3YjJiNmVkYzM5YTc3LjI1YjUyZjllMTIxMzE2ZDIuMTljYTY4YWI2MDFjNDE0ZgotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUERfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zM2YzNGQ1M2QyYWQxY2JiLmRiOTVjYTc3Y2NmZjc5NmMKKyAgICAxZDY3M2FiMjYwNDlkYjcyCitWUk9VTkRTRF8weDQobWVtKQogICBiZWZvcmUKICAgICA4YjE3NWU5MGFhOWI5NDljLjMzNTA4MjA3YTI1ODY3ODcuZmQ0NDVlY2IyZWMxNmM5OC40YmEwNzY0MGI2NDQxMjdmCiAgICAgM2RhNDUxMzI1OTFjMjdmOS45M2M3ZDkzNzAyMjE1Nzc3LmIxNDk1YWVlMDdhOTdhOTUuMDEwMDFlYTU1YWNjNGM2ZApAQCAtMzIzOTUsMTAgKzMyMzk1LDEwIEBACiAgICAgOGIxNzVlOTBhYTliOTQ5Yy4zMzUwODIwN2EyNTg2Nzg3LmZkNDQ1ZWNiMmVjMTZjOTguNGJhMDc2NDBiNjQ0MTI3ZgogICAgIDNkYTQ1MTMyNTkxYzI3ZjkuOTNjN2Q5MzcwMjIxNTc3Ny5iMTQ5NWFlZTA3YTk3YTk1LjAxMDAxZWE1NWFjYzRjNmQKICAgICAxMGRiOGQ4NThhZGI1MWI0LmNlZTQ0YzhiMGI1MzlkZWEuZDk1MjIyMGI5NDg3ODE5Yy5hMzIwMjMzYTliMzhmZjQ5Ci0gICAgZTE4ODkwNzM1OGUxY2VmYS4zZWY1ZDU3MDVjN2E3ODhkLjRmMmEzMjBlZjA2ODNkZDcuOGQ0ZDgyNjkxNTEzNjliZgotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzNmMzRkNTNkMmFkMWNiYi40YmEwNzY0MGI2NDQxMjdmCisgICAgMWJkNDM2OWY2M2VhYzM3YQogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZST1VORFNEXzB4NShyZWcpCiAgIGJlZm9yZQogICAgIGE5ZmYzYjQ5MjE0NzRjMjcuOGE3N2Q1ZWFlMDNjNWFmNi40MTQ0NzI1MzhlMjMyMjBiLmYxOWUwN2UzMzc1NzZhNzIKICAgICA5MzFiOGRkMmVjYjgzZTcxLmU4NzNkOWQ1M2RmN2IwZDUuMzExZTFmOWY0MGQ5ZDgxMi45OTdhMWM3Njg2NjFjNDlhCkBAIC0zMjQwOSw5ICszMjQwOSw5IEBACiAgICAgYTlmZjNiNDkyMTQ3NGMyNy44YTc3ZDVlYWUwM2M1YWY2LjQxNDQ3MjUzOGUyMzIyMGIuZjE5ZTA3ZTMzNzU3NmE3MgogICAgIDkzMWI4ZGQyZWNiODNlNzEuZTg3M2Q5ZDUzZGY3YjBkNS4zMTFlMWY5ZjQwZDlkODEyLjk5N2ExYzc2ODY2MWM0OWEKICAgICAzNTczMjlhNTYwYzlkNzA1LmQ4NGExNjIwOGMxZThkYzIuNmNjZmQ2YmYwYjI4ZDY0Yi4yNDhhZWRiNGY4OTAwNjdiCi0gICAgZWI1NTA5MzAxODA1NTA4Zi4zNGM2MGFiN2U4YmVhZGVhLjRjYTI5NTIxOGQ5ZDU3NjQuNmY5YWY2ODdhYWYzZWQ0MAotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUERfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42Y2NmZDZiZjBiMjhkNjRiLjgwMDAwMDAwMDAwMDAwMDAKKyAgICA1NDc2YjNkY2I4OTMzNDE2CitWUk9VTkRTRF8weDUobWVtKQogICBiZWZvcmUKICAgICBiMGU5YTFhMDNjN2U5OTI4LjExMGIyYmRlYjBmOGU4YmEuZDliNDMwODY2ZGUzY2I3OS4yZWU1NTYzMDYyYzM5OTA5CiAgICAgNWZjMTNiYmU1NWJmZDZhMy4wM2UzOGIxYmM1MmVkOTMzLmEzZTAwNDc5Mzg5N2E0OWEuNmZlMjE4NTgyNTI2ZDZlNgpAQCAtMzI0MjIsMTAgKzMyNDIyLDEwIEBACiAgICAgYjBlOWExYTAzYzdlOTkyOC4xMTBiMmJkZWIwZjhlOGJhLmQ5YjQzMDg2NmRlM2NiNzkuMmVlNTU2MzA2MmMzOTkwOQogICAgIDVmYzEzYmJlNTViZmQ2YTMuMDNlMzhiMWJjNTJlZDkzMy5hM2UwMDQ3OTM4OTdhNDlhLjZmZTIxODU4MjUyNmQ2ZTYKICAgICAzZGM4ZmQyMjFkNjNhN2IzLjFkMjcyMzUzZjIzNDYwYTUuNmYxNjAzN2M2NWU4ZjQ3YS42OWU2ZDQwNTcyNTM0YWE2Ci0gICAgMjZjYjYzYjdiMDc1Y2E4My5iYTI0ZjFmM2Q0OTViOWJkLjE3MjFhODdiMGZlMTc3NDQuNzkzZDg3YTNlNmQ1MzJmNQotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmNjZmQ2YmYwYjI4ZDY0Yi4wMDAwMDAwMDAwMDAwMDAwCisgICAgZmIzMzJlOWYxZDM4Y2E4MQogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZST1VORFNEXzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDRjMTRjNDYzYjIwOTRlZjQuZjY5NmVhNmIyYTAxZjk0MC4zODI1ZWY2NTA2ZGUxZjI2Ljc4Y2Y2ZjYzNTI4ZmU4MjUKICAgICBjNjJiNDU1YzQxZDNmYWZhLjhhZjQwYzI5YTkxM2YxMTUuZjI3ODFiMTYyNDlhY2Y4ZS42ZWVhZDQxZTRiZmQwNDQ5CkBAIC0zMjQzNiw5ICszMjQzNiw5IEBACiAgICAgNGMxNGM0NjNiMjA5NGVmNC5mNjk2ZWE2YjJhMDFmOTQwLjM4MjVlZjY1MDZkZTFmMjYuNzhjZjZmNjM1MjhmZTgyNQogICAgIGM2MmI0NTVjNDFkM2ZhZmEuOGFmNDBjMjlhOTEzZjExNS5mMjc4MWIxNjI0OWFjZjhlLjZlZWFkNDFlNGJmZDA0NDkKICAgICBjNmM2YWVmNzY3MjIwOTQwLmJjYjM0N2RlNDZiODZlMmYuNDM2ODcxNzNjYzU1MDU5ZS5kNTNmNTM5YTE2Mzc4N2RiCi0gICAgYTgyZmY5OWZiZjgzYjg3Mi42OTlkMTY3NDFmZmMyYmJhLjg5NDBlYmU2OTc5Y2ZkMDUuODk5YTY5YzJjZTQ5MmQwOAotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUERfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40MzY4NzE3M2NjNTUwNTllLjZlZWFkNDFlNGJmZDA0NDkKKyAgICA2NmM3OTA4MjhmNDBiMWZiCitWUk9VTkRTRF8weDUobWVtKQogICBiZWZvcmUKICAgICA0ODkyNDZjNTc2MjhkMGUxLmM4YjMyNGJmZTY4MTQyM2IuNmM4MGY2ZDg1MGU5ZTVlMS4xZjRkODdkZDIzZjlmMjZjCiAgICAgMGJjNjA3Nzk5ZTBiNDVlNi44MjllMmFjNTc3YThlNTQ4LmEzMjY2MWY3ZjQ4ZDU4ZDEuNjBkYjQwYzMwY2ZiMjE4MgpAQCAtMzI0NDksMTAgKzMyNDQ5LDEwIEBACiAgICAgNDg5MjQ2YzU3NjI4ZDBlMS5jOGIzMjRiZmU2ODE0MjNiLjZjODBmNmQ4NTBlOWU1ZTEuMWY0ZDg3ZGQyM2Y5ZjI2YwogICAgIDBiYzYwNzc5OWUwYjQ1ZTYuODI5ZTJhYzU3N2E4ZTU0OC5hMzI2NjFmN2Y0OGQ1OGQxLjYwZGI0MGMzMGNmYjIxODIKICAgICA4YjMwNGQ4OTI0ZjdjZTM1LjMyM2MwNzFjMGY4NWRiNDQuZTk1Y2Q1YmIyN2Y0M2ZiNS5hYTM2MTIwNGVkMmJjNmYxCi0gICAgYTM5ZDk2ZTIyM2Y4MjVmYi4zNGQ4YjgzMDQ5YTM2MWRjLjFhZWVjZDEyMDYyODU4YmEuNTdhYWY5MGM2MjE3MWM2NgotICAgIDAwMDAwMDAwMDAwMDAwNDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDM2ODcxNzNjYzU1MDU5ZS4wMDAwMDAwMDAwMDAwMDAwCisgICAgYzU4MmYyNDcwODRiNjA4YwogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZST1VORFNEXzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDRlMGJmODIxN2I1MWNlMTAuMzFkNzVjNmViNzE4MDc2My5lNGMwMzc2ZGMyOGZiMmJiLjEyYTdjNmU3YWQzNzVkMGMKICAgICA0ZjkyMDcwNjU1YjdhMjlkLjEwYWIxZTFhZmU2NTJmOWEuOWUzZTgyNDAxNWQzMGI4Zi5hZDU1M2EyNTM3MmQwYWQ2CkBAIC0zMjQ2Myw5ICszMjQ2Myw5IEBACiAgICAgNGUwYmY4MjE3YjUxY2UxMC4zMWQ3NWM2ZWI3MTgwNzYzLmU0YzAzNzZkYzI4ZmIyYmIuMTJhN2M2ZTdhZDM3NWQwYwogICAgIDRmOTIwNzA2NTViN2EyOWQuMTBhYjFlMWFmZTY1MmY5YS45ZTNlODI0MDE1ZDMwYjhmLmFkNTUzYTI1MzcyZDBhZDYKICAgICAyNTYxMWI2MzM1MDgxN2UwLjFjZTQ1NWQzMTFlYjVhY2IuYmU5Zjk0MTNkZmZlYTgwMS5jN2MyYTdiYWMwMTQxZDQ1Ci0gICAgMmFjNTMwYTJiNWQxNmE4NS4zMTUwN2U4MzBlYjQ0NDI0LmEwMmY2YTUzYmI5OWM1YzAuM2JiYjg4OTE2NWZhNTA4NAotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZURVNUUERfMTI4XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZTlmOTQxM2RmZmVhODAxLjgwMDAwMDAwMDAwMDAwMDAKKyAgICBlNzBjNTk5NjQxZWI2MGMwCitWUk9VTkRTRF8weDUobWVtKQogICBiZWZvcmUKICAgICBhNjgxOTZiNjcxZjEwODI0LmJiMDk0MzMxNzE5ZGQ3MzcuMmFiOTE2MTgxMWNlYTljZS5hMDNhZmU2ZDQ1MzI5ZDc2CiAgICAgNTNlNmJjZGIxMDFhMDVkZS4zNTdiNGY3YTA2Zjg5OWEzLmU1ZWQ5ODdkMzU0NTQ1ZjguMTkwYzRlY2IxYTU0NmRjZgpAQCAtMzI0NzYsMTAgKzMyNDc2LDEwIEBACiAgICAgYTY4MTk2YjY3MWYxMDgyNC5iYjA5NDMzMTcxOWRkNzM3LjJhYjkxNjE4MTFjZWE5Y2UuYTAzYWZlNmQ0NTMyOWQ3NgogICAgIDUzZTZiY2RiMTAxYTA1ZGUuMzU3YjRmN2EwNmY4OTlhMy5lNWVkOTg3ZDM1NDU0NWY4LjE5MGM0ZWNiMWE1NDZkY2YKICAgICBjYzA2NDVmMjNiNzIxMzE3LmYyNjU1MGViMGY2ZmVkNzUuM2NiNjgwOWQ5NjIzZDNjYy42OWYwNTVkYmQ2OGM3MTc4Ci0gICAgZWNhZmFmZTgwZDAzZWVmZS40ZjE1NDJlZjI4OGQwZjU4LjBkZTE0YjY2NTE3NzBmNzYuZWIzNDBmMDgxNDY0ZTUxZAotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmU5Zjk0MTNkZmZlYTgwMS44MDAwMDAwMDAwMDAwMDAwCisgICAgZmIyMjc5YmU3MDZiMDQ2OQogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZQVEVTVF8xMjhfMShyZWcpCiAgIGJlZm9yZQogICAgIGY0MDc4ZDY5ODcyYTBiMDkuOGVhYjc2YTdhM2RjNTJiYy5hOGQ1MjJmMmVmZGYzYmY4LjMzMzk3M2MzODI0YWI3MjMKICAgICAzNDJmNDk3NWY0MmYzNmE5LjkwYzcxNDFkMTgwNmZhODAuNWFmMmViNjBmZGVmYWMwMi44OThjNzZhMTQ0YWE4NWZmCkBAIC0zMjQ5MSw4ICszMjQ5MSw4IEBACiAgICAgMzQyZjQ5NzVmNDJmMzZhOS45MGM3MTQxZDE4MDZmYTgwLjVhZjJlYjYwZmRlZmFjMDIuODk4Yzc2YTE0NGFhODVmZgogICAgIDE1ZTZhODRlNTQwNWMwZjQuY2NjZjA3MzU4ODhmYTM3NC5iZmI4OTlhNWYwNGI5ZjIyLmVkYTVjZmVhYjNhMjM2MzUKICAgICBmNTc3YTc2MDQzMzllNjk3LjIwOGVjYWRhMTA4MjA4YzUuMzQ3MjI4MmQ2NDdmNTAwNC4zOTRmZmE4YmVjM2U4NmYyCi0gICAgMDAwMDAwMDAwMDAwMDA0MAotVlRFU1RQRF8xMjhfMyhtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlBURVNUXzEyOF8xKG1lbSkKICAgYmVmb3JlCiAgICAgZmQ4OWI4ODYyYTk0ZjJiMC4yZjMwNDAxNzViNTZlNDNkLjY2ZDJkOWZhY2NlYmU2OWUuMTU2ZTk0NjRmNDE1ZmI1MwogICAgIDJjYjE0MmI4Njc2Njg2MDguMWU1YjcxZTAzYmU4ZjY5My43YjY1YjA4MGQ3ZDdmOTJjLmJlZjZkYWI3M2M5Y2RiYmIKQEAgLTMyNTA0LDkgKzMyNTA0LDkgQEAKICAgICAyY2IxNDJiODY3NjY4NjA4LjFlNWI3MWUwM2JlOGY2OTMuN2I2NWIwODBkN2Q3ZjkyYy5iZWY2ZGFiNzNjOWNkYmJiCiAgICAgYjU5YjhlZjFkZTBiYTg5Ny4yMDQ1MzUyNTdjN2M1NzQ0LjNjMTVjYzU5NGQ1MWZkOWEuOGI1N2Y1OTBkOTlkMmRlOQogICAgIDcyMTIxODFmYWE5MjE1ODkuOGYzYTg4NTRiYzlkNDRmZC44M2FjYTc2ZjRiNjZhZTE1LmQ4ZGRlMTVkNjdhNjJjODkKLSAgICAwMDAwMDAwMDAwMDAwMDQxCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZQVEVTVF8xMjhfMShyZWcpCiAgIGJlZm9yZQogICAgIDYyODgxZDdmYzNmZDI1Y2UuNDBlNDVkMmRlNzA0ODkwYS5jODg2NjdkODk3ZDdmOTZhLjJkZjdiZmFmZWQyMWM3YzkKICAgICA1NjQ1NjVhZGNhNjQ5NmNhLmZjZGJkODA3YjM2ZmMwNDUuMjg3NWNjMWNhOGI3YjEzNi4xN2MyOTAwNjRlOGUwNWUxCkBAIC0zMjUxOCw4ICszMjUxOCw4IEBACiAgICAgNTY0NTY1YWRjYTY0OTZjYS5mY2RiZDgwN2IzNmZjMDQ1LjI4NzVjYzFjYThiN2IxMzYuMTdjMjkwMDY0ZThlMDVlMQogICAgIDNiNTY2ZDdlMzEwMmE0ZTguODBjNDA1OTkyN2RlNzY2Ni4wOTUyYjU4ZThjYzhhOTBlLjFiZDg5NDVlOGFiOTIzOGEKICAgICA2YzA4MzQ1ZTk1NjQ4Y2Q0LmE5NmI2MGNmNjE1ZTY2OWIuYzg2YTFkOTlkZTk2MWQ5ZS4xNjA3NDlhNWJlYWZkZmVmCi0gICAgMDAwMDAwMDAwMDAwMDA0MQotVlRFU1RQRF8xMjhfMyhtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlBURVNUXzEyOF8xKG1lbSkKICAgYmVmb3JlCiAgICAgNjFkYmIzYWM3YzJhMWJhMC40NWE3YjNiOTkxMTU4YTM5LjUzOWM2NTk1N2RmYTRkMGQuYzIwYTAwYTkzYWFlNDk5MQogICAgIDY5MTk2MDQ1M2VjNzE1NDMuMjI3ZmU4ZmJjMmExZGFjNC41YTIyOTFkODk2YmVlNmViLjUxN2M1YjJiM2Q5YjY4OTMKQEAgLTMyNTMxLDkgKzMyNTMxLDkgQEAKICAgICA2OTE5NjA0NTNlYzcxNTQzLjIyN2ZlOGZiYzJhMWRhYzQuNWEyMjkxZDg5NmJlZTZlYi41MTdjNWIyYjNkOWI2ODkzCiAgICAgZDk5ZmFkN2M2ODVlOWI1My41ZWRjY2Q5MWMzOTRiNzIxLjlhY2I1ZjgyYzhiNmVmNWYuZDIwYzI5ODk4M2U5Yjc1MgogICAgIDhiMzkxNzNkMTVmYzZhZmMuNTcwYTYxZTUzMTdiNWZmYi5lZjYxNGI4MDMwZWYyMjk2LmExMDg2NjMwYTcyNTcyNzcKLSAgICAwMDAwMDAwMDAwMDAwMDAxCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WVEVTVFBEXzEyOF8zKHJlZykKK1ZQVEVTVF8xMjhfMShyZWcpCiAgIGJlZm9yZQogICAgIDlhNzAxZDBhZmE5NDFiYWEuNWNiMzE5NzQ2MWFjM2U2OS42ODU0OWQ2NWE3ZTEwYmZmLjM1YjFkMWJmZTk3NTNjYmIKICAgICA3Yjc0OTAxNTYxZTA4MTBmLjI4ZDgyZjBkNjk3YWQyYzYuZWMwODdlN2JjMjUzZmFkOC40ODg3NmUyYTEwNTJmOGZhCkBAIC0zMjU0NSw4ICszMjU0NSw4IEBACiAgICAgN2I3NDkwMTU2MWUwODEwZi4yOGQ4MmYwZDY5N2FkMmM2LmVjMDg3ZTdiYzI1M2ZhZDguNDg4NzZlMmExMDUyZjhmYQogICAgIDFhMTM2MjE5MTc0OTQyOGIuY2I3NWQ2ZjU0OTcyZTM0MC40MTcwMDE5NTFkNWM2NjMzLjA0YWY5ZGFkYzE5NDEzODEKICAgICBkMzk5OGY4MmI3NWI5Y2NiLjIwNTY4ODE2MWNhMTJkMDMuYzFkOTIxMWU1NDg4OGNiYi40NWY1ZGEzMzE2NDY0OTdhCi0gICAgMDAwMDAwMDAwMDAwMDAwMQotVlRFU1RQRF8xMjhfMyhtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlBURVNUXzEyOF8xKG1lbSkKICAgYmVmb3JlCiAgICAgYzYwOTZlZmUyMjJjZjU3NC4wMjUyMTNiYmRlYTNjOTdhLjA1NDdjMzVlZmUxMzZiM2EuY2E4ZmRhODIwNDY0YTgxZQogICAgIGJlNzFiZTE5MTA3N2UzY2MuMDM4YWVhMzMyN2FjMDU0NS41NTE0MDJiNzBjZDI1YjEyLmI2ZGQyODJkYzk3YmY1MDUKQEAgLTMyNTU4LDkgKzMyNTU4LDkgQEAKICAgICBiZTcxYmUxOTEwNzdlM2NjLjAzOGFlYTMzMjdhYzA1NDUuNTUxNDAyYjcwY2QyNWIxMi5iNmRkMjgyZGM5N2JmNTA1CiAgICAgYWIyNjBjZTgxNDYzZGM0OC4zMjhjMTE1MzJmMDM4ZWQ3LmVjODljMTBmNjJlY2I3YjcuZTMxMTA4OGIzZTU5YjAxZQogICAgIDY5ZjVkNDU3NDlmYjljMTIuZWJhNjgzODg5MTMyOWVkZS5hNjcxN2Q1MTFiNmQzYjU0LmFiNzU3NTA4ZmY4YjE1MTUKLSAgICAwMDAwMDAwMDAwMDAwMDAxCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WVEVTVFBEXzI1Nl8xKHJlZykKK1ZQVEVTVF8xMjhfMihyZWcpCiAgIGJlZm9yZQogICAgIDgwMDFlNjBmZDcxOGNjNGMuZDNhOTkyNTNjYzRiZGU1Ni44YTIyM2MzZWVhYzg3MjAzLjVmOTliMTY5NTM1ZmE1MTYKICAgICA0NGJmZTM3MjI2OGI5NmU0LmM3MTBjM2M2Yjg2MDVmNDEuNmI0ZDM4ZTJkNTRlNDZmNS5mMmNlZDg0MzI3ZDBhZjI4CkBAIC0zMjU2OSwxMSArMzI1NjksMTEgQEAKICAgICA2N2E5ZTI5NTVmOTFlOWZiCiAgIGFmdGVyCiAgICAgODAwMWU2MGZkNzE4Y2M0Yy5kM2E5OTI1M2NjNGJkZTU2LjhhMjIzYzNlZWFjODcyMDMuNWY5OWIxNjk1MzVmYTUxNgotICAgIDQ0YmZlMzcyMjY4Yjk2ZTQuYzcxMGMzYzZiODYwNWY0MS42YjRkMzhlMmQ1NGU0NmY1LmYyY2VkODQzMjdkMGFmMjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTk3Mjc0ZGVlZTUyNTU1ZS4zZGRhNzFjYmIyY2MxNmI3CiAgICAgMTVkZjVjYTMzMTgyZmEwOS4yMGY0ZTI5ZTI5NDVkYmZmLmU5NzI3NGRlZWU1MjU1NWUuM2RkYTcxY2JiMmNjMTZiNwogICAgIDRkYWM0ZjEwOTU4OTMzNjguYjkyMzZhYzYzYzA2MGRiYi42MmRmZWJhMGQyNWZkY2VhLjFiODlmNWVkMTE1ZDk1ZWYKLSAgICAwMDAwMDAwMDAwMDAwMDQwCi1WVEVTVFBEXzI1Nl8xKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWUFRFU1RfMTI4XzIobWVtKQogICBiZWZvcmUKICAgICBmZjA1YjJiMGI5NzRjZTA3LjQ5NzFiNzI0ZWQyYjdmYWMuNzA2N2RhMmEwZGIwYjJhMi4zMWRmOTk5MjFkMDIxNzQ2CiAgICAgYmU2OGUzMjgzYTExMDA0MS42NTdjOTE0YmQ2ZjQxODgyLjIwOGRhYmI2Yjc0ZTg2ZTAuYjJiZDdhMjI2YWM1NDIxZQpAQCAtMzI1ODIsMTIgKzMyNTgyLDEyIEBACiAgICAgZjg4OTI5Yjg3NzUxYjg0MwogICBhZnRlcgogICAgIGZmMDViMmIwYjk3NGNlMDcuNDk3MWI3MjRlZDJiN2ZhYy43MDY3ZGEyYTBkYjBiMmEyLjMxZGY5OTkyMWQwMjE3NDYKLSAgICBiZTY4ZTMyODNhMTEwMDQxLjY1N2M5MTRiZDZmNDE4ODIuMjA4ZGFiYjZiNzRlODZlMC5iMmJkN2EyMjZhYzU0MjFlCi0gICAgN2Y5ZmYxZWJmZjc0M2JkMy5mZTE3ZDdmMWViNzAzYTk2LmE0NjA1YjU2NTZlZDQ1YTAuNDBjNjhhYmI1NTM3OTgxZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44Zjk4MjVkNWYyNGY0ZDVkLmNlMjA2NjZkZTJmZGU4YjkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgMjA3NjU2ZTMyM2E5M2FlOS42ZThmODc4MmM5MmMyMjkzLmRhYWU2NWY2MDc5N2FhMGYuMzk0NmM2Yzk3YmUxNTZmMAotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICAwMDAwMDAwMDAwMDAwMDQwCiAKLVZURVNUUERfMjU2XzEocmVnKQorVlBURVNUXzEyOF8yKHJlZykKICAgYmVmb3JlCiAgICAgZDhkYmFmZjRlNjEyZjljMS43YmI5OTBmZWMzYmRiYWIwLjEyMmY5YzZhMGJiMzBkMjYuOWM0MjQ1ODJlNjVhNzI1OAogICAgIDM3ODg1NGU5NjRiMTU2MTcuNmUzNDFhMjdmYWJiNzY1NC40NjQ1MTIxNTRkOTEzNGZhLmM4ZTc3N2U2MGQ0MjU5YTgKQEAgLTMyNTk2LDExICszMjU5NiwxMSBAQAogICAgIDU4M2FkMzVjNTY0YTFkNzcKICAgYWZ0ZXIKICAgICBkOGRiYWZmNGU2MTJmOWMxLjdiYjk5MGZlYzNiZGJhYjAuMTIyZjljNmEwYmIzMGQyNi45YzQyNDU4MmU2NWE3MjU4Ci0gICAgMzc4ODU0ZTk2NGIxNTYxNy42ZTM0MWEyN2ZhYmI3NjU0LjQ2NDUxMjE1NGQ5MTM0ZmEuYzhlNzc3ZTYwZDQyNTlhOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42NjFjZTVlZjJjNTNkNmJjLjM4NmE3NzBmOWI1YTFhMmEKICAgICA2ZmRiMTUwNDhiYjkwYmYwLmQzYjM3MDRhZTRhZjJiMDAuNjYxY2U1ZWYyYzUzZDZiYy4zODZhNzcwZjliNWExYTJhCiAgICAgZGUyMWVkYWZmYWI2NTNmOS44NzAxMGU1MzllYTY5NWUxLmNlZmYxMjY1NDQ4NDJkMTguY2E5N2MyZTdhOWFlNzIwYgotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUERfMjU2XzEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZQVEVTVF8xMjhfMihtZW0pCiAgIGJlZm9yZQogICAgIGJmMWYyNjU4YmIzYmQ3OTkuZGVhNmQ4NTg0YTM1NmNkZC42N2ViNzEyZTQ0YWI3MDIyLmRhM2I5NGUxMzBiMDc2YjkKICAgICBkYzExMzhjOWY2OGM1YjllLmNkYjZkMjY5MTljMTkwNDkuNGQzZDEzYzdmMGNiNzhmMS5lNjFjNjdkMThjNjRlZDRjCkBAIC0zMjYwOSwxMiArMzI2MDksMTIgQEAKICAgICBhMjk0YTA4YTVjMjRiYjY2CiAgIGFmdGVyCiAgICAgYmYxZjI2NThiYjNiZDc5OS5kZWE2ZDg1ODRhMzU2Y2RkLjY3ZWI3MTJlNDRhYjcwMjIuZGEzYjk0ZTEzMGIwNzZiOQotICAgIGRjMTEzOGM5ZjY4YzViOWUuY2RiNmQyNjkxOWMxOTA0OS40ZDNkMTNjN2YwY2I3OGYxLmU2MWM2N2QxOGM2NGVkNGMKLSAgICA4OWRlODM5YTIzNGE2NmIxLjA1OWRkNzUwMDNlNmZjZTkuMTZjMzcyMGJjMTExNjg3Ny40ZWVlODc5ZmY1MmJjZDdjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk4MTQ4ZWQxYmI1NDhmZGQuMjVjNDZiMWVjZjRmODk0NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICBhMzUwODViNzVkODBiNDAwLmU0YTdlNDc4YTMzMGViNjguOWY0OTA5ZTRkMTg5ZmRlMi42ZWZkZjFiOTA3OTI1M2Y2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMQorICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVlRFU1RQRF8yNTZfMShyZWcpCitWUFRFU1RfMTI4XzIocmVnKQogICBiZWZvcmUKICAgICA0NjAxOTA3ZTkzNmQ0MDc3LjA2MzRiOTBjYzEzYTAwYjQuYzQxZmY0NGQ5NjJjOWE3My5jMjliNTU0MDNjM2ZmMjVlCiAgICAgYjU4ZWJkMDE0NWY5MjBkNi44ZjU2OWI4NTZhODQwN2ZiLjAyNTMwMzNiNzc2NjQ1YjYuNWM4NGQxMDkxZjQwMDUxNwpAQCAtMzI2MjMsMTEgKzMyNjIzLDExIEBACiAgICAgOGRjODNkMzNhYzc5NDA2NAogICBhZnRlcgogICAgIDQ2MDE5MDdlOTM2ZDQwNzcuMDYzNGI5MGNjMTNhMDBiNC5jNDFmZjQ0ZDk2MmM5YTczLmMyOWI1NTQwM2MzZmYyNWUKLSAgICBiNThlYmQwMTQ1ZjkyMGQ2LjhmNTY5Yjg1NmE4NDA3ZmIuMDI1MzAzM2I3NzY2NDViNi41Yzg0ZDEwOTFmNDAwNTE3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZiOGQwZGFlZTI2ODI4ZGMuNDlkMmY4MmQ5NTk3ZjAzOAogICAgIDRkODgyMzdmMTE1NTk1MmUuMTg4MmE4MGU3NDZiODUwMS5mYjhkMGRhZWUyNjgyOGRjLjQ5ZDJmODJkOTU5N2YwMzgKICAgICA2OTNiYmY2NDkwMGNkYjJjLjdlODM1YTk0ZmNmYTM2ZjIuMDkxYTBmMTI3NGMwN2U5MS42NTRmNDg5N2JiNTE2ZmVkCi0gICAgMDAwMDAwMDAwMDAwMDA0MAotVlRFU1RQRF8yNTZfMShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMQorVlBURVNUXzEyOF8yKG1lbSkKICAgYmVmb3JlCiAgICAgOWIwOTUxZWQ4NTFiMWRjNi42NWYzOGMxZDYxYWIzMDdiLjlkMjcyZjAxMWUzZWQ1ZjkuODk0NjAzZDNjOWZhODQ4MwogICAgIDZjZGUwMmIxNjE0NGMzNDIuOWNmYzg2MTQxZGJkY2VjOC41MTM4YTI0M2Y1NDIxZjQyLmQ3NWNlNzVlN2NhMTc2NWIKQEAgLTMyNjM2LDEyICszMjYzNiwxMiBAQAogICAgIDJlMWEwNmViZTM5ZDI5MGIKICAgYWZ0ZXIKICAgICA5YjA5NTFlZDg1MWIxZGM2LjY1ZjM4YzFkNjFhYjMwN2IuOWQyNzJmMDExZTNlZDVmOS44OTQ2MDNkM2M5ZmE4NDgzCi0gICAgNmNkZTAyYjE2MTQ0YzM0Mi45Y2ZjODYxNDFkYmRjZWM4LjUxMzhhMjQzZjU0MjFmNDIuZDc1Y2U3NWU3Y2ExNzY1YgotICAgIGRjMTJjYjZiNWRmZmVlMDIuNmNhMWE5Yjc2MmNlZjJiZi43NjgzMzA0NDlkMTJkMGZhLjRmYWFiNjFkMjk0MThmYzgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjJkOGQwZmVlMWMxMmEwNi43NmI5ZmMyYzM2MDU3YjdjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIGM3NzIyODA3OTQ1ODU5MzIuMzAyZmYxNzBjYzZhZDcwYi5lOGQ0NTNmMjMzYmJhNDRkLjRlN2E2ZDdlNmQ2NjBjNzQKLSAgICAwMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WVEVTVFBEXzI1Nl8yKHJlZykKK1ZQVEVTVF8yNTZfMShyZWcpCiAgIGJlZm9yZQogICAgIDRjZDQ3ZmQyMjg3MTIyM2IuMDljYjk2NzEyMjVjYzEwMC40M2YzNWJhZGY2MWViYTU5LjgzZjc4OTM4ZDI0ODU2NjcKICAgICAwNGY1ZDM5ZWQ3NmUzMmFkLjdlZTc4Zjk2MjQxNmUyOTUuMDMzN2UyZDk3ZDc2ZDc1NS4yM2I4NGQwMjk3YzVhMzczCkBAIC0zMjY1MCwxMSArMzI2NTAsMTEgQEAKICAgICBiOWE1YzZiMGRlNTc4MmZlCiAgIGFmdGVyCiAgICAgNGNkNDdmZDIyODcxMjIzYi4wOWNiOTY3MTIyNWNjMTAwLjQzZjM1YmFkZjYxZWJhNTkuODNmNzg5MzhkMjQ4NTY2NwotICAgIGIyYzhmZWJiOGQyMTk2MTAuMDE5MzkxNjBiNjkyNzcyMC5jYTQ3ODI1ZmZjZmM2YWFhLmE0ZTIxYjNjOWQzZjQ2OWQKKyAgICAwNGY1ZDM5ZWQ3NmUzMmFkLjdlZTc4Zjk2MjQxNmUyOTUuMDMzN2UyZDk3ZDc2ZDc1NS4yM2I4NGQwMjk3YzVhMzczCiAgICAgYjJjOGZlYmI4ZDIxOTYxMC4wMTkzOTE2MGI2OTI3NzIwLmNhNDc4MjVmZmNmYzZhYWEuYTRlMjFiM2M5ZDNmNDY5ZAogICAgIGIyOWJmZDk1ZTUxNThhMGUuNzA5YjE3YmRmM2RjM2VjYi5mNjcxMzhhZDBmM2VhZjA1LmUyNDI3MGQyMDFjMWZkMTIKLSAgICAwMDAwMDAwMDAwMDAwMDAxCi1WVEVTVFBEXzI1Nl8yKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwCitWUFRFU1RfMjU2XzEobWVtKQogICBiZWZvcmUKICAgICAwNGQ1OWJjMjUxMGU5MjhjLjYwYjhjYjk4N2NkNjRhNTMuYTZjYTlkOThmNzAxZjFjMi5lMTAwZmUyZjUzYzdlMTExCiAgICAgYTE5ZjZhZjQ3NWYxZThlOS4xODZkNjQzMGVkZjExMThkLjdmZWVhMGRkZGYwZDRjMzIuZTkzZmQyNGY2MzI0M2Q3YgpAQCAtMzI2NjMsMTIgKzMyNjYzLDEyIEBACiAgICAgM2YxYTc1YTI3N2E2YTJhMgogICBhZnRlcgogICAgIDA0ZDU5YmMyNTEwZTkyOGMuNjBiOGNiOTg3Y2Q2NGE1My5hNmNhOWQ5OGY3MDFmMWMyLmUxMDBmZTJmNTNjN2UxMTEKLSAgICBmYjJhNjQzZGFlZjE2ZDczLjlmNDczNDY3ODMyOWI1YWMuNTkzNTYyNjcwOGZlMGUzZC4xZWZmMDFkMGFjMzgxZWVlCi0gICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIGExOWY2YWY0NzVmMWU4ZTkuMTg2ZDY0MzBlZGYxMTE4ZC43ZmVlYTBkZGRmMGQ0YzMyLmU5M2ZkMjRmNjMyNDNkN2IKKyAgICA2YmNlYjAzMzY3MGM0MTQxLjM1MDRjNGNhZDVmMTFjNjUuZDdkMTlhNzdjNjBhMGQ0Ny42ODdiYWY3YWRjZTBmZWVlCiAgICAgM2UzMGU3Njk0MjZjNTliZi4xNWNhZTdkMGNmNjNhNjhhLjg5NDAwOTU0YzkwNmVlMmMuYmIwMDkxMWM1YTg3NjExNwotICAgIDAwMDAwMDAwMDAwMDAwNDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwCiAKLVZURVNUUERfMjU2XzIocmVnKQorVlBURVNUXzI1Nl8xKHJlZykKICAgYmVmb3JlCiAgICAgNGUxNTU1NzZkMmM4ZmQzYS5mNThmOGQ4NDIyMWNlYzkwLjEzMGJjYWFmNzdkMmVkYTYuNzMwNzY4NjAwMzBkYWMwZQogICAgIDQ1M2QyZjA2MDQ3OWFlOGMuNmViOTFkNmYyNDI4YjVkZi44YjEyNjdkNDZhY2EyYjY1LjcwZjIzNDg1OTEyYTAyMTkKQEAgLTMyNjc3LDExICszMjY3NywxMSBAQAogICAgIDcwODJmN2M5NDc3ZWYyZTQKICAgYWZ0ZXIKICAgICA0ZTE1NTU3NmQyYzhmZDNhLmY1OGY4ZDg0MjIxY2VjOTAuMTMwYmNhYWY3N2QyZWRhNi43MzA3Njg2MDAzMGRhYzBlCi0gICAgODFkZGZlYmRhYzQ2ZjA0NC44NDc4MTMxNjY0OWQ3MmQ5LmQ5MmRiY2FhNDRkNzlkNzQuNWJjZGU3YjA4ZTY5YWQ3OAorICAgIDQ1M2QyZjA2MDQ3OWFlOGMuNmViOTFkNmYyNDI4YjVkZi44YjEyNjdkNDZhY2EyYjY1LjcwZjIzNDg1OTEyYTAyMTkKICAgICA4MWRkZmViZGFjNDZmMDQ0Ljg0NzgxMzE2NjQ5ZDcyZDkuZDkyZGJjYWE0NGQ3OWQ3NC41YmNkZTdiMDhlNjlhZDc4CiAgICAgNWM0MmJmMDY2M2JhMDAwZC4xMjk5ZWI2NWZkODZkY2E5LjU4YTZjNTljYTA4NjdlN2YuMTI2M2ZmY2QxN2Q2Njk1OAotICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUERfMjU2XzIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZQVEVTVF8yNTZfMShtZW0pCiAgIGJlZm9yZQogICAgIDUwZjQ0YjhlM2I2YzA0NDkuMzNiODZjNGZjNzYxMTk5My5mNmU3MjI0ODBiZWZiMjdkLjY2Y2I3YzE4MWE2MjBjMzEKICAgICA5MDg2NzgwYTBlYWM1YWIyLjYyOGIwMzAzNzRjODc5ODMuMGEzMDMzYWJhYmU1YWU3ZS41ZWU2ZGY4OTRmZjg4MTM3CkBAIC0zMjY5MCwxMiArMzI2OTAsMTIgQEAKICAgICA1OWY4ZTJkMzY0ODlhNmY3CiAgIGFmdGVyCiAgICAgNTBmNDRiOGUzYjZjMDQ0OS4zM2I4NmM0ZmM3NjExOTkzLmY2ZTcyMjQ4MGJlZmIyN2QuNjZjYjdjMTgxYTYyMGMzMQotICAgIGFmMGJiNDcxYzQ5M2ZiYjYuY2M0NzkzYjAzODllZTY2Yy4wOTE4ZGRiN2Y0MTA0ZDgyLjk5MzQ4M2U3ZTU5ZGYzY2UKLSAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgOTA4Njc4MGEwZWFjNWFiMi42MjhiMDMwMzc0Yzg3OTgzLjBhMzAzM2FiYWJlNWFlN2UuNWVlNmRmODk0ZmY4ODEzNworICAgIDBhMDRmOTI4ZGQ0YmIxNGMuNDUwNzdmOGYwNTdhNWE4OS4yYzNmOWE3YWY4NzM4ZGRiLjliNDNlOTViZGFkMzE5M2QKICAgICA5YzNhNDlkNGMzNTRjNDQzLjM4NzhkYzVkMTcwM2Y5NTEuMzZkZmQzYTEwZmE2MGJiZC43YjMwOTZmYTU4N2YxMmVlCi0gICAgMDAwMDAwMDAwMDAwMDA0MAorICAgIDAwMDAwMDAwMDAwMDAwMDAKIAotVlRFU1RQRF8yNTZfMihyZWcpCitWUFRFU1RfMjU2XzEocmVnKQogICBiZWZvcmUKICAgICA5MGU2Y2E1MDliN2MxMjAzLjIwZjNlN2ZhZGNkNDUwYzIuOTcyOTE3ZGE0NWYwOTE4Ni4wNmRkNWIwZDBiODhlMzUzCiAgICAgN2U0ODQ4ZGY5OGU0OTFiZi43M2ZkNGM4NjQ1ZDUxMWY2LmJlNjgyYTcyMmJjYzVmZDQuNzYwNWFjYTgwOTI3ZDNjNwpAQCAtMzI3MDQsMTEgKzMyNzA0LDExIEBACiAgICAgMjU3MDM3ZDMyM2U3ODAxMwogICBhZnRlcgogICAgIDkwZTZjYTUwOWI3YzEyMDMuMjBmM2U3ZmFkY2Q0NTBjMi45NzI5MTdkYTQ1ZjA5MTg2LjA2ZGQ1YjBkMGI4OGUzNTMKLSAgICA3ZDY4NWFlYWY4NGQ2MWQ2LjcyMjJmNTY0MWE2NmMzMGIuMDk3ZjEzOTI2NjI0OWZlOC42MzIzNDQ2MDI0OGY5NDQ2CisgICAgN2U0ODQ4ZGY5OGU0OTFiZi43M2ZkNGM4NjQ1ZDUxMWY2LmJlNjgyYTcyMmJjYzVmZDQuNzYwNWFjYTgwOTI3ZDNjNwogICAgIDdkNjg1YWVhZjg0ZDYxZDYuNzIyMmY1NjQxYTY2YzMwYi4wOTdmMTM5MjY2MjQ5ZmU4LjYzMjM0NDYwMjQ4Zjk0NDYKICAgICBlYjkzZmJkZjU2NDRiY2Y1LmY3MmY1ZjgwNzY5MDIyMmMuZDRiYmNkYTQ5MjgzOGQ2ZS5hYTAzOWYxZjc5Y2JlNWZiCi0gICAgMDAwMDAwMDAwMDAwMDA0MQotVlRFU1RQRF8yNTZfMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlBURVNUXzI1Nl8xKG1lbSkKICAgYmVmb3JlCiAgICAgYjEzODg5NjczZmVmMjJiOS4yMjE0MjgyODRmNTVkZWM4LmRmZjAwNWM2NzU2MWU5ODUuN2I2ODU0MTY0YTc1NjQxMgogICAgIDJiMjUxMmM3ZThmMDg3MWEuN2YzOWRiMzM3ZTBhMDVmYS4wNzMxNjMyMzM0ZTRkNTQ0LjVhZDJhNTUzMmE4NjYxN2YKQEAgLTMyNzE3LDEyICszMjcxNywxMiBAQAogICAgIGRmNzQyNjA0ZDZlZjkzMzcKICAgYWZ0ZXIKICAgICBiMTM4ODk2NzNmZWYyMmI5LjIyMTQyODI4NGY1NWRlYzguZGZmMDA1YzY3NTYxZTk4NS43YjY4NTQxNjRhNzU2NDEyCi0gICAgNGVjNzc2OThjMDEwZGQ0Ni5kZGViZDdkN2IwYWEyMTM3LjIwMGZmYTM5OGE5ZTE2N2EuODQ5N2FiZTliNThhOWJlZAotICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICAyYjI1MTJjN2U4ZjA4NzFhLjdmMzlkYjMzN2UwYTA1ZmEuMDczMTYzMjMzNGU0ZDU0NC41YWQyYTU1MzJhODY2MTdmCisgICAgNmQwNDRkZGYzYWY1NmI2Mi41ZjRkMTI2YjgwZjE2YjM4LjQ5YmRmNjgxY2UyNmExOTIuY2Q0NGJiYzdjZjQzYzA2MQogICAgIDU0YTFiNzliNTIwYjg5YmMuMWM5YmM4M2NmMDk2NGQyZS44MjYyMzhjZTYwMzEwYjllLjMwMGM5MmRlZDQzN2JkNjUKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WVEVTVFBEXzI1Nl8zKHJlZykKK1ZQVEVTVF8yNTZfMihyZWcpCiAgIGJlZm9yZQogICAgIDM1Yzk3M2E1NzBmNTdmODIuYmNjOGNhZTc0YzNkOWU1NS4xMzcwZmExMjZhODNlNjg3LjhlZWFhN2Y0MDUxNGNkOTIKICAgICA5MDU3NzYyZDNmZDhiY2YzLjgxNDQwNGIwNDM5NzY1NTguYTExOGEyNTk4YjQ2NzRlZi40OTIyYmVlMWRhZDhhMzliCkBAIC0zMjczMSwxMSArMzI3MzEsMTEgQEAKICAgICAyZGUyY2Q4NDhkZWNmY2U4CiAgIGFmdGVyCiAgICAgMzVjOTczYTU3MGY1N2Y4Mi5iY2M4Y2FlNzRjM2Q5ZTU1LjEzNzBmYTEyNmE4M2U2ODcuOGVlYWE3ZjQwNTE0Y2Q5MgotICAgIDkwNTc3NjJkM2ZkOGJjZjMuODE0NDA0YjA0Mzk3NjU1OC5hMTE4YTI1OThiNDY3NGVmLjQ5MjJiZWUxZGFkOGEzOWIKKyAgICA0YjZhMmEwOGRlMjE4ODM2LjdmZTNlMGUwNTMyNjljZjIuMjBkZmJlN2VlZjZiMzExNC45MGQ2ZmE4MGZhOGI0YmU0CiAgICAgNGI2YTJhMDhkZTIxODgzNi43ZmUzZTBlMDUzMjY5Y2YyLjIwZGZiZTdlZWY2YjMxMTQuOTBkNmZhODBmYThiNGJlNAogICAgIGMyNGQ4YmEzZWE1ZTFkZjYuOTM2ZmRhNjU5OWY1ZmQ0Zi5lZDExNDllYjMxN2M1OTlmLjNkZDJkNWJkODIzODdmOWEKICAgICAwMDAwMDAwMDAwMDAwMDAxCi1WVEVTVFBEXzI1Nl8zKG1lbSkKK1ZQVEVTVF8yNTZfMihtZW0pCiAgIGJlZm9yZQogICAgIDNjZDI1ZGMxMzhiMjdlZmIuNTA0ZTk1NjhmZTFhYjhlMC45N2I1NmUyOTMxMTA0NTlhLjY0ZjkzZjBkZWQwNzJhM2YKICAgICA0NjZkMDE2MTllOTZjMGZmLjUzYjc0NWM1YjZlMjk0OWYuNjg4MTE5MWEzNjgzMmYwMC5lMWU1OWM1MWMwOThkZTllCkBAIC0zMjc0NCwxMiArMzI3NDQsMTIgQEAKICAgICAxNWIwZjgxYWQ3ZTFhOWYwCiAgIGFmdGVyCiAgICAgM2NkMjVkYzEzOGIyN2VmYi41MDRlOTU2OGZlMWFiOGUwLjk3YjU2ZTI5MzExMDQ1OWEuNjRmOTNmMGRlZDA3MmEzZgotICAgIDQ2NmQwMTYxOWU5NmMwZmYuNTNiNzQ1YzViNmUyOTQ5Zi42ODgxMTkxYTM2ODMyZjAwLmUxZTU5YzUxYzA5OGRlOWUKLSAgICAyNzgwMzU0ZWRiYTU3ZjFmLjI1ZDU5NTI1YWY0MWVmZTAuZTI5ZjU1MjNjNDViNzhhYy5jMDFmNWQyMjQ1YmFiMjY4CisgICAgYzMyZGEyM2VjNzRkODEwNC5hZmIxNmE5NzAxZTU0NzFmLjY4NGE5MWQ2Y2VlZmJhNjUuOWIwNmMwZjIxMmY4ZDVjMAorICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICBiYmQ3NzY3NTBjZWE3Nzg3LjI0ZjQ4M2YzODVjMzAzNGUuZTBkYmEwMzBmOGE0ZGNjYi41ZWY0N2RlYjE5ZjllMjRiCi0gICAgMDAwMDAwMDAwMDAwMDAwMQorICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVlRFU1RQRF8yNTZfMyhyZWcpCitWUFRFU1RfMjU2XzIocmVnKQogICBiZWZvcmUKICAgICA0MjlmY2ExYTFjZmY0NDA2LmRkM2UzZmMzNGQ3MTYzNjUuYWI2MDBhOWRkM2Y1MGM5Ni40MDAwNzYyZGVkNjgxNzg5CiAgICAgNDEwY2YwNTc4M2RlZWYzNy42YjgxMGMyM2I5NDcwMWUzLjE1NjUyNzhlMzU2MTQ4NjQuZGRkYjUxMDZjMGI1ZTQxMQpAQCAtMzI3NTgsMTEgKzMyNzU4LDExIEBACiAgICAgYmFhOWUxZjI4MTQ2MTUyMQogICBhZnRlcgogICAgIDQyOWZjYTFhMWNmZjQ0MDYuZGQzZTNmYzM0ZDcxNjM2NS5hYjYwMGE5ZGQzZjUwYzk2LjQwMDA3NjJkZWQ2ODE3ODkKLSAgICA0MTBjZjA1NzgzZGVlZjM3LjZiODEwYzIzYjk0NzAxZTMuMTU2NTI3OGUzNTYxNDg2NC5kZGRiNTEwNmMwYjVlNDExCisgICAgNmQ0NTY0M2RhOTBhZTUyZi40MDZjNTk4MDZjNzcwYjJkLmMwNGVkNDMyNDg5NmYxNjMuOTMzOWFmYTc4Yzk3MDA5MAogICAgIDZkNDU2NDNkYTkwYWU1MmYuNDA2YzU5ODA2Yzc3MGIyZC5jMDRlZDQzMjQ4OTZmMTYzLjkzMzlhZmE3OGM5NzAwOTAKICAgICAyNDk0MjQzOTI5MTA2NDljLjM4Y2FhM2M4ODMwZDNkNzEuMDY2OTBmZjZhODFkNDQ0MC4zZWU0MGJmYzZkMTgyNzMxCi0gICAgMDAwMDAwMDAwMDAwMDA0MAotVlRFU1RQRF8yNTZfMyhtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMQorVlBURVNUXzI1Nl8yKG1lbSkKICAgYmVmb3JlCiAgICAgZTI1M2FkNzNlMTJkODU4Yy5jMTQ2MmJiNWEwN2JhNjI3LjJmNjg2NGU2MTkxNjU1ZDguNDQwMGQzNDRmMDg0N2NhNwogICAgIDk0YjBlYjZkYWJkNzM0OWQuYTBhNzc2MWVhOWQ4ZTc3Zi4wMDEzMWFjNjRiOWQwZDkxLmQ3NjAxYzg5YmM1N2Q3NDMKQEAgLTMyNzcxLDEyICszMjc3MSwxMiBAQAogICAgIDFlMmRlZjVjNTRjYTA4MTEKICAgYWZ0ZXIKICAgICBlMjUzYWQ3M2UxMmQ4NThjLmMxNDYyYmI1YTA3YmE2MjcuMmY2ODY0ZTYxOTE2NTVkOC40NDAwZDM0NGYwODQ3Y2E3Ci0gICAgOTRiMGViNmRhYmQ3MzQ5ZC5hMGE3NzYxZWE5ZDhlNzdmLjAwMTMxYWM2NGI5ZDBkOTEuZDc2MDFjODliYzU3ZDc0MwotICAgIGFiOGExOGNhZmI1MmRlODAuMWQwM2ZmZTFlMGIyNjU0ZS44OTk1NDA1NDM1YWUyMmM2LjE5ZDVlNzMyYTkyMDhmYzAKKyAgICAxZGFjNTI4YzFlZDI3YTczLjNlYjlkNDRhNWY4NDU5ZDguZDA5NzliMTllNmU5YWEyNy5iYmZmMmNiYjBmN2I4MzU4CisgICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIDAzYWZhZjc4ZWNhYTNlNjMuOTRhNmM0NjhlMjk1NWE0MC5hNWJhNTM3Y2YxNTY0ZmEzLjY3YWIyZWE5NTI2ZGUwY2MKLSAgICAwMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WVEVTVFBEXzI1Nl8zKHJlZykKK1ZQVEVTVF8yNTZfMihyZWcpCiAgIGJlZm9yZQogICAgIDk4YTkyNWI2NGFjMTQxM2IuNzdlOTJjNjI5YWU5MTE3MC42MWRiYzAyMTRiMGQwMzAyLjJmNTBjZDJiOWVhMDUxNTUKICAgICAzMjY5Y2QyMmQxZTBjOGY3LmU1MDUwYzc0MjIxZDEzZDMuZGZmMGVmNzdiNmE3OWI0MC4wNTIyMmM0YjU1OThlNDA4CkBAIC0zMjc4NSwxMSArMzI3ODUsMTEgQEAKICAgICBlMGY1N2E5MWQ5MGY1YWRjCiAgIGFmdGVyCiAgICAgOThhOTI1YjY0YWMxNDEzYi43N2U5MmM2MjlhZTkxMTcwLjYxZGJjMDIxNGIwZDAzMDIuMmY1MGNkMmI5ZWEwNTE1NQotICAgIDMyNjljZDIyZDFlMGM4ZjcuZTUwNTBjNzQyMjFkMTNkMy5kZmYwZWY3N2I2YTc5YjQwLjA1MjIyYzRiNTU5OGU0MDgKKyAgICA0OGJhZTEwZTg0YjNkOWYxLjI3Y2VjOTlhYTA1MjAwYjkuNmMyZjRlZDZiZmVlNWZhNS4wMmZiZWJjOTM1NGJjNGU3CiAgICAgNDhiYWUxMGU4NGIzZDlmMS4yN2NlYzk5YWEwNTIwMGI5LjZjMmY0ZWQ2YmZlZTVmYTUuMDJmYmViYzkzNTRiYzRlNwogICAgIDM2ZTg1ZmU1MDBjNGFmZDQuMWIxMmUxYzAyZjkzOTM0ZS42M2U1ZDdhYTAzNmY4YmRlLjAxYTg4NjkyNTdjNGFkMWYKLSAgICAwMDAwMDAwMDAwMDAwMDQwCi1WVEVTVFBEXzI1Nl8zKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWUFRFU1RfMjU2XzIobWVtKQogICBiZWZvcmUKICAgICA3OWFlNDFiMWQ3Mzk4ODQ5LjU5M2Y0MjEzZTBhMTg3NGQuOWI5Y2NmZDJlYmVjODliZC4xZjVlODg1ZjFkYjU1Yjk3CiAgICAgYWE5ZjU5ZTA2YzRkZjI5Mi4wYjBiODYwNWMwZDY5ZDA3Ljg1MzcxMGJjZjE2OTllMzMuZmVlNjVjNjFhYTRjMGE3YgpAQCAtMzI3OTgsMTIgKzMyNzk4LDEyIEBACiAgICAgZmRjZTg0NmUxNzcyYWZlNQogICBhZnRlcgogICAgIDc5YWU0MWIxZDczOTg4NDkuNTkzZjQyMTNlMGExODc0ZC45YjljY2ZkMmViZWM4OWJkLjFmNWU4ODVmMWRiNTViOTcKLSAgICBhYTlmNTllMDZjNGRmMjkyLjBiMGI4NjA1YzBkNjlkMDcuODUzNzEwYmNmMTY5OWUzMy5mZWU2NWM2MWFhNGMwYTdiCi0gICAgNGQ5NDNkMDliNDU4NTVlNS5hOTk3MjgyNTNkZWUyY2FmLmIzYjAxZTZiNWMxNzhkZGMuNWFjODUwMWM0NWMxZDYzNworICAgIDg2NTFiZTRlMjhjNjc3YjYuYTZjMGJkZWMxZjVlNzhiMi42NDYzMzAyZDE0MTM3NjQyLmUwYTE3N2EwZTI0YWE0NjgKKyAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgM2Y1ODZhMThjYzY1NmQ2Yi44ZjMxMjJlMGYzNzU3MWYxLjAzZDM3N2M5NDkwMTEzZTMuOTE1MjVlZmM4YjlmZjg3NgogICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVlRFU1RQRF8yNTZfMyhyZWcpCitWVEVTVFBTXzEyOF8xKHJlZykKICAgYmVmb3JlCiAgICAgZmM4OWJkZGM4NmM2MzUyZi41ZGI4NWFmOWQwODBmNjUzLjE5MjM3MmEzN2RmN2E4NzguNGY2Yzk2YzRkMzM0ZWM3NAogICAgIGU4Y2YwNWI0NzMyOGM3MDEuODE4MDhiOTlkYmI1YWNjNy5hM2JhMTNkODc3MDEwZGYxLjc0NDdmNzQ2MTdiYWQ0YmQKQEAgLTMyODE1LDggKzMyODE1LDggQEAKICAgICBlOGNmMDViNDczMjhjNzAxLjgxODA4Yjk5ZGJiNWFjYzcuYTNiYTEzZDg3NzAxMGRmMS43NDQ3Zjc0NjE3YmFkNGJkCiAgICAgMWZlYzU4NjE3YjI0YTEwNy44ODdjNzhlMjA5MTE0YWY0Ljg5NDIwMmVkN2UxZWRiMDcuNGYyZjE2M2QzMGEyODZlNwogICAgIGZiMmJiMzRmMzk0NGZlZWMuNGY3ODlkYzE3NzlmOGQwNS4yNjA2Mzk0ZDJkZGI1MDY3LmJhZjI3MDk0M2FmNWJmMjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwCi1WVEVTVFBEXzI1Nl8zKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWVEVTVFBTXzEyOF8xKG1lbSkKICAgYmVmb3JlCiAgICAgYjMzNGMyMTI5NDExYjU3MC5kYWRhMTFlOTRhMTYxYzVkLmIwNDA3NzIzNDA2YzMwMjcuZDg1NGI2NjQyMWMyYTViZAogICAgIGZhNGNiMjExMWJmMmVhZGQuMTY0MzZlOWQ0OTI2MzQwNi44ODlmODBmMjgxODNmMTg1LmZhNzY3NDllZjY2MTE5YjQKQEAgLTMyODI4LDkgKzMyODI4LDkgQEAKICAgICBmYTRjYjIxMTFiZjJlYWRkLjE2NDM2ZTlkNDkyNjM0MDYuODg5ZjgwZjI4MTgzZjE4NS5mYTc2NzQ5ZWY2NjExOWI0CiAgICAgNDE2ZWNjMjAwNDZmOTYwOS4wY2IzYzZkNmQyZmU4NTkyLmIzNjMzNjFjNTVmMDhhNGMuZThiYTZmNjc0NjQ0ZTZmOAogICAgIDY1NjU4ZDJjNmE5NDc1MWYuMTg3NjE2MDE4MjJjNDlhZC4wZTU2MTQ4Y2Q5YmZiN2E4LmZlNmFhMzJiYjBmNjQ5MzcKLSAgICAwMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WVEVTVFBEXzI1Nl8zKHJlZykKK1ZURVNUUFNfMTI4XzEocmVnKQogICBiZWZvcmUKICAgICAxMTQwYTg1NDNiZjhjMDUwLjQyZmY3MDFmNjk2ZDQyNGMuOTdkODU5ODhmNTNjYmQwNS43MzQ1OTYyZTI4ZmQzNmM0CiAgICAgYzdmZjcwOTI5NjVmNGM4My5iNDA2ZjFlNzFlMDdiYWJjLmUzMjU4YWQ4YzViODFkNDMuYmZmYzM5ZWU1ZmI1YzFjZApAQCAtMzI4NDMsNyArMzI4NDMsNyBAQAogICAgIDE1NWI2MTdhNzljNzVlNjAuOTc0NzhjNmVhNDZkOTk5YS41OWE5YTg1ZTkxMmVhNTE2LmNlNDc3OGI4OTlmNDE1ZWUKICAgICA1NjlmNzg3YTgxYjkzMjkyLmM3OGViZWEyMThhYzliMTMuNTVhZmFjODRmMzJhOTAyOC43Y2YxY2Y3OGYzYzVlZTU0CiAgICAgMDAwMDAwMDAwMDAwMDAwMAotVlRFU1RQRF8yNTZfMyhtZW0pCitWVEVTVFBTXzEyOF8xKG1lbSkKICAgYmVmb3JlCiAgICAgMjU5NmI1OGI3NTRlMWQ5ZS5lODE4YWZmYzQ5YzMwM2M2LjIwYTcwMjZlOTZjZjdiNTIuMzM4NDk0Yjg4NzM2MWIyNQogICAgIGQ4MjgzZGI1ZDUxZWVjZGEuMjUxMjA0NmU2ZDcwMGVhOC43ZTVlZDRiZTM4ZTJmNjg0LjRmNzQ1YTY1ZWFlMTgxYmIKQEAgLTMyODU1LDkgKzMyODU1LDkgQEAKICAgICBkODI4M2RiNWQ1MWVlY2RhLjI1MTIwNDZlNmQ3MDBlYTguN2U1ZWQ0YmUzOGUyZjY4NC40Zjc0NWE2NWVhZTE4MWJiCiAgICAgOWE0YWNkODZjNGIwMmYwYS42YmQ5NzIzYjhhNGQ4ZmUzLmJkN2ViMDdlMWRmMmM3ZDUuMDVjYmZjZjdiN2I0MDA5MwogICAgIDQ2YzhlMWU4NWYxMWE0NWIuMTRiOWY2Y2YzY2U1YzEyNC5iOWQ0MTI5YTVlMGFhYzcwLmIxZDU3NmRhOGIzZGQyNWMKLSAgICAwMDAwMDAwMDAwMDAwMDQwCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WVEVTVFBEXzI1Nl8zKHJlZykKK1ZURVNUUFNfMTI4XzEocmVnKQogICBiZWZvcmUKICAgICA1YjMxZGU0M2I2OWU2MTZiLmJhNmRmNWM5YzE0YzA1ZjkuN2VmZDhhOTYxZWM0ZTExNi40ZTJkNzdmZTFhMzY1ZjgxCiAgICAgMTExYmM1YTE0NThmOTYwYi5kMTA3ODUxNDA3NmQwZTBmLjAzZjMyY2ZjY2M3NzJiNjYuNTc1MzVhOTY2YTgzOWQzNgpAQCAtMzI4NjksOCArMzI4NjksOCBAQAogICAgIDExMWJjNWExNDU4Zjk2MGIuZDEwNzg1MTQwNzZkMGUwZi4wM2YzMmNmY2NjNzcyYjY2LjU3NTM1YTk2NmE4MzlkMzYKICAgICAyZGU4NzMwMDRhNjUwZjQ5LjY3NjAwZWI1NGQ4MTdkYzkuMDFlNWQ3NmVlMzg5ZGJiZi5iMjEzMzc0ZjZjZmMyMWI5CiAgICAgMGJlNGU0Y2Q2M2FkMDhkNC41ODQ1MGI5OGFkOTMwYzU1LmQyMjA4NzU2ZmU4NjJjY2UuM2EzODhhMTMzY2FkYTgzNgotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUERfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMTI4XzEobWVtKQogICBiZWZvcmUKICAgICA0MGU1ODQ3MGI0ZTlhZmQxLjA3NWIxNTcyMjlmMmJjNTYuN2Y4MmY4YTk0NmFmNzhkZC5kM2YwMzkyMWJhZmI1YjNmCiAgICAgNzcwNTIyZTE5NDhiYTY0Ni43ZDk5MDE1ZDNhYzA2ODdiLmJhZTM1MmQ0MzJlMjdjOGQuNjFhMWU4M2NiMzczYTRiZApAQCAtMzI4ODIsOSArMzI4ODIsOSBAQAogICAgIDc3MDUyMmUxOTQ4YmE2NDYuN2Q5OTAxNWQzYWMwNjg3Yi5iYWUzNTJkNDMyZTI3YzhkLjYxYTFlODNjYjM3M2E0YmQKICAgICA0YmJhMjYwZWIxOTY5MTY2LmM4ZWFhNGY4MzJhMzQ4ZjAuZTQzNDkzMDU4ZDM3ZDU5Mi5kNjdlOGYxMjgzN2E0MmY1CiAgICAgOTdkMTBjZTMyODE1Mjk1ZC40Njk5ZmFiMWFjMjg5ODYxLmQ4NDAzOTI5NzRiYTNmMTguOGZkNTJkMGVjODlkNzI5MgotICAgIDAwMDAwMDAwMDAwMDAwMDEKKyAgICAwMDAwMDAwMDAwMDAwMDAwCiAKLVZURVNUUERfMjU2XzMocmVnKQorVlRFU1RQU18xMjhfMihyZWcpCiAgIGJlZm9yZQogICAgIDNlMWMzNjJkMjA2NDc4YWUuMzkxNTUxNGMxNDE1MmQ1Ni41MmYzZmZmMzQ0ZGE5Mzc5Ljc0ZDViZjJhMDI3ODc2NGEKICAgICBlYmE1OWIyNzZiMjFjNTg0LjBiNTQ3MDM1OTJhMDU3N2UuNDc0NGIwMmE5NzQ2NzZlNS45MmJkYTFmNjUzN2MzNjU1CkBAIC0zMjg5MywxMSArMzI4OTMsMTEgQEAKICAgICA5ODY1NDk0ZGY1YTYwMDQyCiAgIGFmdGVyCiAgICAgM2UxYzM2MmQyMDY0NzhhZS4zOTE1NTE0YzE0MTUyZDU2LjUyZjNmZmYzNDRkYTkzNzkuNzRkNWJmMmEwMjc4NzY0YQotICAgIGViYTU5YjI3NmIyMWM1ODQuMGI1NDcwMzU5MmEwNTc3ZS40NzQ0YjAyYTk3NDY3NmU1LjkyYmRhMWY2NTM3YzM2NTUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODNkODA4YzI0MGY3N2Q1MS4xMGM1NWM3Nzg0ZDMzYTY1CiAgICAgNGNkN2U1Zjg5YTI5OTQ3MC5lYjU5ZTU4YWJlYzQ2NDAwLjgzZDgwOGMyNDBmNzdkNTEuMTBjNTVjNzc4NGQzM2E2NQogICAgIGJkZmQxMDBjNGEwODIxMWUuYjNlZjJjMzdiMjhkMTAwOS42MWZiMDMyN2RjNzllMzY4LmM4Yjk2YTliYjE4NzNmYTUKICAgICAwMDAwMDAwMDAwMDAwMDAxCi1WVEVTVFBEXzI1Nl8zKG1lbSkKK1ZURVNUUFNfMTI4XzIobWVtKQogICBiZWZvcmUKICAgICA1YTk0NzQ3OTZkM2MzYTY3LjlhNjUxOWQwMTY0YmE4MzkuNDFlM2MxMjk4ZDA2MTZjNC4zY2Y4OWRjNTA2NThlNWQ3CiAgICAgZWMxNDY4MGIzNDU0YTk0MS4zZjU5ZmFhZTlhN2Q2NDZkLjZmMDEyMTRhNjgzYjM0NWUuNzIxZGQzMDk1YjIxYmY0OQpAQCAtMzI5MDYsMTIgKzMyOTA2LDEyIEBACiAgICAgYzY2YmVmZTk3MDZjYjM2ZAogICBhZnRlcgogICAgIDVhOTQ3NDc5NmQzYzNhNjcuOWE2NTE5ZDAxNjRiYTgzOS40MWUzYzEyOThkMDYxNmM0LjNjZjg5ZGM1MDY1OGU1ZDcKLSAgICBlYzE0NjgwYjM0NTRhOTQxLjNmNTlmYWFlOWE3ZDY0NmQuNmYwMTIxNGE2ODNiMzQ1ZS43MjFkZDMwOTViMjFiZjQ5Ci0gICAgMjhhZjlmZWY2NmZhMDlmYi4wODI3YjExNDczMmI5MjY3LjFiMTVjNzg4NjIzODIzMDMuNWRiNDlmNWQ3NjYwYWQ2YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZTFjM2VkNjcyZjllOTNiLmMzMDc2MjNhZjlhNzFhMjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZWIzMjk3MTEyMDNhMTZjMi41MTE5Mzk2YzNkZGY2ZGQzLjFmZWIyZmNlOTQwYWEyZGUuNWIwYWZmMmZmNDlmZWFlOAogICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVlRFU1RQRF8yNTZfMyhyZWcpCitWVEVTVFBTXzEyOF8yKHJlZykKICAgYmVmb3JlCiAgICAgZmMyMzY5Zjk4NzUzNDRhNi4xMjY5Y2I1ZDdkMjE4YmMyLjc2N2I4ZjI0OTIyNzMzNWMuNTg0ZWQ2MDcxZGJjNmIxYwogICAgIDU3N2U2YmNhZDRkZWQ4M2UuNzcyMGI3YzA5YWJhMjUyNi5kMzliYWRhNzExOGYxZWFmLmEzMGMzNjIxMTY1YjNiZTkKQEAgLTMyOTIwLDExICszMjkyMCwxMSBAQAogICAgIDdmNTc4ZGU3YzQzODJjNWUKICAgYWZ0ZXIKICAgICBmYzIzNjlmOTg3NTM0NGE2LjEyNjljYjVkN2QyMThiYzIuNzY3YjhmMjQ5MjI3MzM1Yy41ODRlZDYwNzFkYmM2YjFjCi0gICAgNTc3ZTZiY2FkNGRlZDgzZS43NzIwYjdjMDlhYmEyNTI2LmQzOWJhZGE3MTE4ZjFlYWYuYTMwYzM2MjExNjViM2JlOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNGM0OTE2MDU0YTI2Yjc4LmRhZWZjZDA3OWRmMmNlNzAKICAgICAzNGM3ZjBjOGYzOWJhY2UyLmY3MjJkODI0OTMxMjlmMWIuYzRjNDkxNjA1NGEyNmI3OC5kYWVmY2QwNzlkZjJjZTcwCiAgICAgZjA0YmY0NWY4MjE1ZmMzZS42ZTNkYTg3NzgyMzRiN2NjLmE1NDEzNmJkZjdlYzU1NjIuZGFjNDE2YTVjZThkZTBkZAogICAgIDAwMDAwMDAwMDAwMDAwMDEKLVZURVNUUERfMjU2XzMobWVtKQorVlRFU1RQU18xMjhfMihtZW0pCiAgIGJlZm9yZQogICAgIGE1NzRhZmJhOWIwMDZmMWMuZTU1NzczZmIxYWQ5MDRmZC5iODNiYTVhNDg2MmMyNzY2LmQxNWY5ODI5OTdmOTE5MWEKICAgICAyOGU2ZjYwODcwZjA2NDQ2LjcwMzU2OTA4NTk3MmZmY2IuYjJlOTRhOTZiODA2YWIxNS5hNjZiYjMxMWNmNTZmMzRiCkBAIC0zMjkzMywxMiArMzI5MzMsMTIgQEAKICAgICBhYzExMzVlMTIzYzE1YjcxCiAgIGFmdGVyCiAgICAgYTU3NGFmYmE5YjAwNmYxYy5lNTU3NzNmYjFhZDkwNGZkLmI4M2JhNWE0ODYyYzI3NjYuZDE1Zjk4Mjk5N2Y5MTkxYQotICAgIDI4ZTZmNjA4NzBmMDY0NDYuNzAzNTY5MDg1OTcyZmZjYi5iMmU5NGE5NmI4MDZhYjE1LmE2NmJiMzExY2Y1NmYzNGIKLSAgICBlNTdiZTBiZTVmMTVjOTA2LmVkMzJkM2YyZGE2ZDJhNTUuMzYxMzEzM2IzN2NmMDEwNC43ZmFlODRkZjNjOGUxZmEyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ3YzQ1YTViNzlkM2Q4OTkuMmVhMDY3ZDY2ODA2ZTZlNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICBiNmZkZThjOTgzN2E1ODg4LmI5OTlhYzI2M2E1NGMxNDcuMjE4NTdkN2UxYzkzZTM2MC5iODc3MDYwMDc5MmVkOGNiCi0gICAgMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVlRFU1RQRF8yNTZfMyhyZWcpCitWVEVTVFBTXzEyOF8yKHJlZykKICAgYmVmb3JlCiAgICAgYjljNzBkZWNkNWQzZTQ0MS43ODM5OGIxM2Y4MmJjZWZhLjJlYjhmMDBlMTViNWZmNGQuNGYwYjAzNGI4NTVjMGU1NAogICAgIDM5ZTc4YjhmMmJmMWFmZTYuMDdmYjQzOGFkYjM1ZTY4NS5hOWQ5OWMxODA2MWMyMjEyLjljNzEyMThmOGUzODNlMGQKQEAgLTMyOTQ3LDExICszMjk0NywxMSBAQAogICAgIGQ1ZDhlNDU1N2RiMjQxOGMKICAgYWZ0ZXIKICAgICBiOWM3MGRlY2Q1ZDNlNDQxLjc4Mzk4YjEzZjgyYmNlZmEuMmViOGYwMGUxNWI1ZmY0ZC40ZjBiMDM0Yjg1NWMwZTU0Ci0gICAgMzllNzhiOGYyYmYxYWZlNi4wN2ZiNDM4YWRiMzVlNjg1LmE5ZDk5YzE4MDYxYzIyMTIuOWM3MTIxOGY4ZTM4M2UwZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NjQ5YWFhZWE5MTM2NDQyLmU0ODI1MzM0NTIzMjJlYjcKICAgICA4YWJiYTkzNGMyYTVmNzBkLjNmMGY4ZTE5NDdhMzVkNTguODY0OWFhYWVhOTEzNjQ0Mi5lNDgyNTMzNDUyMzIyZWI3CiAgICAgMDc5MDY1NDkzNjdlZjk2MS5mYzQxZTdhYzU5ODFlZjlkLjIxNTUxODNlOWIyODAxOGIuMDMwYjE1MjdlZTU3OWI3ZAotICAgIDAwMDAwMDAwMDAwMDAwNDAKLVZURVNUUERfMjU2XzMobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZURVNUUFNfMTI4XzIobWVtKQogICBiZWZvcmUKICAgICAzNmI1M2JhODFiNGZkYjBmLjBiYjJiYjM5MjIwNWYxOGYuMWE1Y2NhMmYyY2RjNTg4MC5kNjQ2ZTEzMzc3ZTczNzk2CiAgICAgMDE2ZTk2MGVlNTNiMjczMy5mNDZjYTU3MDIyYzgxYTQzLjc0MmViNDhlZGRiZjUzMmUuMDE2YjAxZjlkYWRiNDAxMgpAQCAtMzI5NjAsMTIgKzMyOTYwLDEyIEBACiAgICAgZGUwMzQ1Njk0MTZlYTlkOQogICBhZnRlcgogICAgIDM2YjUzYmE4MWI0ZmRiMGYuMGJiMmJiMzkyMjA1ZjE4Zi4xYTVjY2EyZjJjZGM1ODgwLmQ2NDZlMTMzNzdlNzM3OTYKLSAgICAwMTZlOTYwZWU1M2IyNzMzLmY0NmNhNTcwMjJjODFhNDMuNzQyZWI0OGVkZGJmNTMyZS4wMTZiMDFmOWRhZGI0MDEyCi0gICAgMTRjZjcxNzFmNzgxZGYyNC4xYzBjMjA1YWQzNTNiMTI4LmU4ODExZmI1ODczNjlkZDMuZmUwZjc1ZmM1ZjkwNThhOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNWEzMzVkMGQzMjNhNzdmLjI5YjkxZWNjODgxOGM4NjkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNGFhMzQ4YmY2YjJkYmYwZC5lMWRjMjk2M2QxMzBmMmViLjUxMjI4OTkwNDc0ZWYyOWIuMjk3ZDM3YThhMzkyYmQwNwogICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVlRFU1RQRF8yNTZfMyhyZWcpCitWVEVTVFBTXzEyOF8zKHJlZykKICAgYmVmb3JlCiAgICAgNzllYjliYWNkNWFmNTljYi43ZmI4OThlMzYwNGM4NTFiLjlkMmFiYmY3YjdlZDE5MzguOGJkZDZkMGMzODEyMGViMAogICAgIDU2ODIzM2RiZmNlMjA5ODkuOGZkOGRjYzlmMGU5ZWI3OS5hZDQwZDM4MzIxMTU2MWJhLjcyN2Q0ODEzNzc4ZWFjNDEKQEAgLTMyOTc3LDggKzMyOTc3LDggQEAKICAgICA1NjgyMzNkYmZjZTIwOTg5LjhmZDhkY2M5ZjBlOWViNzkuYWQ0MGQzODMyMTE1NjFiYS43MjdkNDgxMzc3OGVhYzQxCiAgICAgZDExNDBhNjM1MjkxZjRiZS41NWQwOTA1ZDM3MTBhZTU0LjZlNmI2YjcxYWMzNTA3MWQuZTFkMDk0OTMxZmNmODk3OAogICAgIDQ1ZWMxZGIxNzI0YjU3MTYuYWY2YzMwOGI1MmNlODlkNy4zYWY2ODEyZmYzZDg0NzBmLmI2YTBjZjc2NGNlMDYxODIKLSAgICAwMDAwMDAwMDAwMDAwMDAwCi1WVEVTVFBEXzI1Nl8zKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDQwCitWVEVTVFBTXzEyOF8zKG1lbSkKICAgYmVmb3JlCiAgICAgZmVlYmZmMWFhOGEzZjBiZC4xMDU4NjczMGY5OTk2ZTNlLjc4NzczOTQwNWMyZTM5MzAuNmUyZjEwMjc5MzhhNWMzOQogICAgIDJhZmRlZGIyMGU2ZDIwNDcuOGRhMmU0NGI4MTA5NzVlMi44YmJmMjY2NjcyM2M3YTg4LjY2NjAxNGM3MjdkODg0NGEKQEAgLTMyOTkyLDcgKzMyOTkyLDcgQEAKICAgICBkY2Y2ZGUwYWQ2MGVmYzBkLjBjMDM2OTBhMGI3ZDQxNGMuMDMzMTljYjkzMDk0OWZlYi4xM2RlNmNhYzlkNzZmN2NjCiAgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WQkxFTkRWUFNfMTI4KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICAxZmNmNjgzZDM0MTA4MWY0LjFhNzZkYWEyNzBmZDIwYTMuYzdiMjY3ODU0Mzk5N2U2Yi4yMGY0MWRiZTEwZjZmYTRlCiAgICAgNGY1MDdiNzRiMzliODU5NC5jMjA3MjgxMjU0MTA2MzNmLmEzNzA4YTRkZWUwNjljYjUuZjcyMzczZTU2YjM1ZDY2MQpAQCAtMzMwMDAsMTIgKzMzMDAwLDEyIEBACiAgICAgY2ZlMmIzZGMyMmU2MzY0YS5iYzhmYWMyYjY4ZDQzNDNhLjMzNDgyNzc1MGIwNDY2N2MuNDdmNThiNDgwNTgwZmY0OQogICAgIDc4MmY0NTVkN2JhM2M1NzYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTM3MDhhNGRlZTA2OWNiNS5mNzIzNzNlNTZiMzVkNjYxCisgICAgMWZjZjY4M2QzNDEwODFmNC4xYTc2ZGFhMjcwZmQyMGEzLmM3YjI2Nzg1NDM5OTdlNmIuMjBmNDFkYmUxMGY2ZmE0ZQogICAgIDRmNTA3Yjc0YjM5Yjg1OTQuYzIwNzI4MTI1NDEwNjMzZi5hMzcwOGE0ZGVlMDY5Y2I1LmY3MjM3M2U1NmIzNWQ2NjEKICAgICA2YjkzZWFkYmNlMDgwMzIyLmFlNzY0NTQ3OWQ1NDgwMGQuZmU4OWNiY2ZhNzUwZDVkNy42NjhhMTkxOTVlNjBlZTUxCiAgICAgY2ZlMmIzZGMyMmU2MzY0YS5iYzhmYWMyYjY4ZDQzNDNhLjMzNDgyNzc1MGIwNDY2N2MuNDdmNThiNDgwNTgwZmY0OQotICAgIDc4MmY0NTVkN2JhM2M1NzYKLVZCTEVORFZQU18xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDAKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBkMzA1YzQ0NWRjZDRmYzAzLmQ3OGFkMGU0NGFiZTViYjcuYzYxZWQ4YWNkMDlkM2JmMi45ZGZhOWJhZGI1YWU4YTUxCiAgICAgMzU0NDgzZWE0NTFmNjAxZC5kZmQ3NDA2MGUyMWVhZTE2LmFhZWY0OGI1ZjJiYTUxNjAuOWFlYjIyZTE0MmQ4N2YwMQpAQCAtMzMwMTUsMTEgKzMzMDE1LDExIEBACiAgIGFmdGVyCiAgICAgZDMwNWM0NDVkY2Q0ZmMwMy5kNzhhZDBlNDRhYmU1YmI3LmM2MWVkOGFjZDA5ZDNiZjIuOWRmYTliYWRiNWFlOGE1MQogICAgIDM1NDQ4M2VhNDUxZjYwMWQuZGZkNzQwNjBlMjFlYWUxNi5hYWVmNDhiNWYyYmE1MTYwLjlhZWIyMmUxNDJkODdmMDEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWFlZjQ4YjVkMDlkM2JmMi45ZGZhOWJhZDQyZDg3ZjAxCisgICAgN2JiNWZlMzlkMjkxYWNmMC40MzE1ZmNiYjg3OTE2YTEyLjQyY2Q3NTMxZTkzNzMxYjEuODQ2N2I4N2Y0ZDEwN2YzOQogICAgIDdmMjdiMTFlOWQzNTlkYTcuNWY5MDAxNjBkNGEzY2M1OC42Yjg2ZGQwZWQyMjA5ODEwLmI4YmE1YWYxNzNlMWM2YTUKLSAgICA5MzMwMDJhNTRmZDg5MmYwCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQkxFTkRWUFNfMTI4KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICA2ZjE0YWUwNjdkODAxZGM3LjFlNjUxODg2YzUxOGVlNmYuOGY5NDRjYmQ2NmUxMTA5My4wMWU0ZmEzN2M4ODI0MmFhCiAgICAgYTliNDU5ODA5YTY1YTRkNi4zNDNhYjA1YzY0NDU1ZDc0LjJmNmNkODNkZDhkNjcxNzEuZTFiNDRhOThlNzY4ZWFhYgpAQCAtMzMwMjcsMTIgKzMzMDI3LDEyIEBACiAgICAgYTg1MzlkNmYxMDE4OTU0OS4zNmRkNjAwMTc4YWU3ZmUyLjJlY2JhNDU2Y2UxNzdlYzAuZWFkYTcxYjMxM2YyMjc5MAogICAgIGNjYzc0MDQ0NTdhZDM0Y2MKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmY2Y2Q4M2RjNzBmMmQ5Yi5lNWMyNDkxZGU3NjhlYWFiCisgICAgNmYxNGFlMDY3ZDgwMWRjNy4xZTY1MTg4NmM1MThlZTZmLjhmOTQ0Y2JkNjZlMTEwOTMuMDFlNGZhMzdjODgyNDJhYQogICAgIGE5YjQ1OTgwOWE2NWE0ZDYuMzQzYWIwNWM2NDQ1NWQ3NC4yZjZjZDgzZGQ4ZDY3MTcxLmUxYjQ0YTk4ZTc2OGVhYWIKICAgICA5ZTVhMDA3ZjQyMTQ2M2M4LjlkNzRmNDhiOTZjOGE0ZTEuOWI2NWExNGNjNzBmMmQ5Yi5lNWMyNDkxZDRkZGY0ZDNlCiAgICAgYTg1MzlkNmYxMDE4OTU0OS4zNmRkNjAwMTc4YWU3ZmUyLjJlY2JhNDU2Y2UxNzdlYzAuZWFkYTcxYjMxM2YyMjc5MAotICAgIGNjYzc0MDQ0NTdhZDM0Y2MKLVZCTEVORFZQU18xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICA2NzU3MzFiZDM0MWQyZjFmLjI0ZWIyZWJkYTBmZDc3MDYuZDk0MjcwYTkyNTAyYWNhNC40NmVhZGJjODhhN2FhMDhhCiAgICAgOTc1NGMwMGJjNzRkZDViNS42ZTZkYWVkMzhmNTA0NWFiLjYzNmZhMTZmYjlkMGU1NTMuM2UwZTQ0MGM5NmM0ZDFhNQpAQCAtMzMwNDIsMTEgKzMzMDQyLDExIEBACiAgIGFmdGVyCiAgICAgNjc1NzMxYmQzNDFkMmYxZi4yNGViMmViZGEwZmQ3NzA2LmQ5NDI3MGE5MjUwMmFjYTQuNDZlYWRiYzg4YTdhYTA4YQogICAgIDk3NTRjMDBiYzc0ZGQ1YjUuNmU2ZGFlZDM4ZjUwNDVhYi42MzZmYTE2ZmI5ZDBlNTUzLjNlMGU0NDBjOTZjNGQxYTUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDk0MjcwYTliOWQwZTU1My4zZTBlNDQwYzk2YzRkMWE1CisgICAgMzg4YjY5MTkyYzQ5ZTJiOS5lMzI3MTkxZTc5OWMzYWU0LmIwMzA2ZDNmNTIyNGU3MWIuNzI4M2RhOGY4ZjgyNGJiZQogICAgIDI2YzhhOWQyN2UxZDEyNTguZGQ2MzZiMGJmOTZlOTM1Yy45YzUwNTIwNTA5MGI2ZTI3LjNkOTQ5OWJlMTAzZjRiODEKLSAgICBmZDhlN2UwM2I2ODgwYzk5CisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQkxFTkRWUFNfMTI4KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICAwY2JlODRjYzFjZThjYmIzLjNkZDdmYjI0ZDlkNjIwYmQuYjk2ZmExMDVhYjUwOGNiZi4wMzlkY2NhZGZjOTEzNWEzCiAgICAgYzg2ZWE2ODRkZWViYzQ3Yi41OTg0ZGFmYTVhODBjOTE1LmQzOTViNjc3MmNkMDYxYmIuYzFlMTU1MjQ0N2MwZjliYwpAQCAtMzMwNTQsMTIgKzMzMDU0LDEyIEBACiAgICAgYjM4MDM0NzFlOTBjNTRjMi4xMGU3MzVlMjNjZDNkYjRkLjMxNjE2ZDc4MDlkOThkMjguYjI4MTg4MmI1MjRlNjc3NAogICAgIDljNzUyYTkzNGJjNThhNmIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDM5NWI2NzcyY2QwNjFiYi5iMmU5NmI1NDQ3YzBmOWJjCisgICAgMGNiZTg0Y2MxY2U4Y2JiMy4zZGQ3ZmIyNGQ5ZDYyMGJkLmI5NmZhMTA1YWI1MDhjYmYuMDM5ZGNjYWRmYzkxMzVhMwogICAgIGM4NmVhNjg0ZGVlYmM0N2IuNTk4NGRhZmE1YTgwYzkxNS5kMzk1YjY3NzJjZDA2MWJiLmMxZTE1NTI0NDdjMGY5YmMKICAgICA4YmVhZTM5Nzk5MWUzMzljLjU2OWFjNTQwMWMyNWM4OGMuODcyMmE2Y2YxNzdhNGRmOS5iMmU5NmI1NDA1YTY3NjllCiAgICAgYjM4MDM0NzFlOTBjNTRjMi4xMGU3MzVlMjNjZDNkYjRkLjMxNjE2ZDc4MDlkOThkMjguYjI4MTg4MmI1MjRlNjc3NAotICAgIDljNzUyYTkzNGJjNThhNmIKLVZCTEVORFZQU18xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICA0ZTkwY2Q3YTBjMTY5OWFmLjlhN2I5NzdlNjk0MTYyOWIuNjMzNWE4Y2NkNTk2YmM4NS4yZGEwMDdkZTlkNzk1ZGYyCiAgICAgYTNhMGViY2JiMDRkNTA2Yi45ZTI2MDYyYWI1NGE5YWQxLjJiNTE5OWVhMDQ3ODI4NWYuZDcyYTcxNmQ3MGU2ZjkwMwpAQCAtMzMwNjksMTEgKzMzMDY5LDExIEBACiAgIGFmdGVyCiAgICAgNGU5MGNkN2EwYzE2OTlhZi45YTdiOTc3ZTY5NDE2MjliLjYzMzVhOGNjZDU5NmJjODUuMmRhMDA3ZGU5ZDc5NWRmMgogICAgIGEzYTBlYmNiYjA0ZDUwNmIuOWUyNjA2MmFiNTRhOWFkMS4yYjUxOTllYTA0NzgyODVmLmQ3MmE3MTZkNzBlNmY5MDMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjMzNWE4Y2NkNTk2YmM4NS4yZGEwMDdkZTcwZTZmOTAzCisgICAgNzc2ZjAyNzI1Mzc3NmRjYy4xOWNlN2ZlMTZhYjIzNzEwLjQzMDc4NDI5ZTQ4N2RhMDguOGI0YWE2OTIxZGFkOWMwOAogICAgIGE2Y2E4ZDViMTI5ZmFhZmQuNjliZmZlMTAyMzA1NzYwNS44OTIyZTU3MzkxY2Y4ZmFjLmE1NGRhMmI3NDA1OTgzYWQKLSAgICA4MTdmNjE0OTc2NzZlOTllCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQkxFTkRWUFNfMjU2KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICA3YTJjZTBiNTViOTEwYzg2LjBiN2QwODcyMDhkMWM0MmIuZTg0NTdkMjE3ZGNmOTM1Yy5kODcwMzliNjI4NWEwMzc2CiAgICAgZWVhMDFhNjU4YTM1MjYxMS44NDU0ZWZhMzUyMWE3NjgyLmYzYWNmYTgyMTM5ZGNhYzAuMGNiYmZhZGNjNTM2ZjI5MwpAQCAtMzMwODEsMTIgKzMzMDgxLDEyIEBACiAgICAgYjQwYmFmNDYzNzRhMzFjMy4xZTlkZjMwNDUwMWY5NTU4LjFlNGNkYmUwNjU3NDc1NjEuOTI3Y2I4ODY3ZTBmMzA3NAogICAgIDljODlhZGUxZDMyNGY2OTAKICAgYWZ0ZXIKLSAgICAzODI2MGJjNzhhMzUyNjExLjg0NTRlZmEzNTIxYTc2ODIuZjNhY2ZhODIxMzlkY2FjMC4wMGQxYTZkM2M1MzZmMjkzCisgICAgN2EyY2UwYjU1YjkxMGM4Ni4wYjdkMDg3MjA4ZDFjNDJiLmU4NDU3ZDIxN2RjZjkzNWMuZDg3MDM5YjYyODVhMDM3NgogICAgIGVlYTAxYTY1OGEzNTI2MTEuODQ1NGVmYTM1MjFhNzY4Mi5mM2FjZmE4MjEzOWRjYWMwLjBjYmJmYWRjYzUzNmYyOTMKICAgICAzODI2MGJjNzlmZWY3NGVjLmVjMWJiZmRhMGI4NTdkMmQuZTc0MDcwOWQ4MmZiNTdkZS4wMGQxYTZkMzgzNmYxNzJlCiAgICAgYjQwYmFmNDYzNzRhMzFjMy4xZTlkZjMwNDUwMWY5NTU4LjFlNGNkYmUwNjU3NDc1NjEuOTI3Y2I4ODY3ZTBmMzA3NAotICAgIDljODlhZGUxZDMyNGY2OTAKLVZCTEVORFZQU18yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDAKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBmY2M0MDBkMDllYmEyOGFmLmJkOWMwMjRlZWVkMjliNDEuZjhhODA3MGIzY2YyN2EzMS5mNTFkMzdiNjU5OTQ2MWY2CiAgICAgOGRmODJjM2ZmYWRjODBmZC5iMTIzMDE0YjVmMTRlYzEzLjU0MDY3N2RkZWMwY2U4ZTIuYzgwMDgxOGJmOWU3NTY0OQpAQCAtMzMwOTYsMTEgKzMzMDk2LDExIEBACiAgIGFmdGVyCiAgICAgZmNjNDAwZDA5ZWJhMjhhZi5iZDljMDI0ZWVlZDI5YjQxLmY4YTgwNzBiM2NmMjdhMzEuZjUxZDM3YjY1OTk0NjFmNgogICAgIDhkZjgyYzNmZmFkYzgwZmQuYjEyMzAxNGI1ZjE0ZWMxMy41NDA2NzdkZGVjMGNlOGUyLmM4MDA4MThiZjllNzU2NDkKLSAgICBmY2M0MDBkMDllYmEyOGFmLmJkOWMwMjRlZWVkMjliNDEuNTQwNjc3ZGRlYzBjZThlMi5mNTFkMzdiNjU5OTQ2MWY2CisgICAgMmFmM2FmMWEwMzk2YmJhNS5lYmVkYTdhOTI2OWE2MGU1LjEwODRiZjY0N2I3OTlhOTcuZjMzZmIzY2JlMmZhOTIwNQogICAgIGIwN2YwNTRlZDZmNDk1ZDQuYzY0NWYwZDRlMGYzMzU2Mi4wNmVlNWM4ZTA1NDQ0ZDdkLmQyMjZjYmUyYWY1ODRmZDcKLSAgICBjMjAzYzUzY2ZjOGRjYTZhCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQkxFTkRWUFNfMjU2KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICAxZDIxOWI0NTY2MjYzZTZiLmZjNjlhOGM1OGUwM2M5YjYuYTA3OWQ4MzgyOGE4YTUzNi4xNDEwYzk0NmE3NzliY2MwCiAgICAgNDBjYjRiNmE4OWFlZTg4Ni5lODdkMTY2YzQ4Y2UxNTc2LmQzZDM1YzQxOWI0N2VkMGYuMTRiNTgyNzg3ZDI0YTQ4YgpAQCAtMzMxMDgsMTIgKzMzMTA4LDEyIEBACiAgICAgNGVmNjI2YjQ2N2JjY2ViOC4xNDUzNDBmYzMwYzlkZjQyLmI4MmQyNWYzNzA3MWYzN2EuNWViY2M5ZmEzMjBlY2Y2YwogICAgIDVmYjU0ZjIyNGE2NThhZDkKICAgYWZ0ZXIKLSAgICA0MGNiNGI2YTg5YWVlODg2LmU4N2QxNjZjNDhjZTE1NzYuYmRhMTc3NWM5YjQ3ZWQwZi4xNGI1ODI3ODdkMjRhNDhiCisgICAgMWQyMTliNDU2NjI2M2U2Yi5mYzY5YThjNThlMDNjOWI2LmEwNzlkODM4MjhhOGE1MzYuMTQxMGM5NDZhNzc5YmNjMAogICAgIDQwY2I0YjZhODlhZWU4ODYuZTg3ZDE2NmM0OGNlMTU3Ni5kM2QzNWM0MTliNDdlZDBmLjE0YjU4Mjc4N2QyNGE0OGIKICAgICA4NzRlZDAxNTAwYjEwNDY2LjUyODdjYTMwMWY2MjMyNDAuYmRhMTc3NWNkNDViNDg5Ny5lNGFiMDMxMGEyNTJjMTBiCiAgICAgNGVmNjI2YjQ2N2JjY2ViOC4xNDUzNDBmYzMwYzlkZjQyLmI4MmQyNWYzNzA3MWYzN2EuNWViY2M5ZmEzMjBlY2Y2YwotICAgIDVmYjU0ZjIyNGE2NThhZDkKLVZCTEVORFZQU18yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBjNDYyMTE3NTA2NjFhZDdlLmYxMGY0OWIxNWI1YTgxMjcuMGJhY2Y0YmI5NjEyZDZhNi4yMmM0NjI3NDBhMTQyYjY1CiAgICAgNjc4ZjhiZGQ4MTExZjU4OC5jYmU1MzU3YTc4MTg1YTYwLjE0NjA2MzViNmQ0NmQ0OTguNTViMjJhNGEzZmQwMjkwNApAQCAtMzMxMjMsMTEgKzMzMTIzLDExIEBACiAgIGFmdGVyCiAgICAgYzQ2MjExNzUwNjYxYWQ3ZS5mMTBmNDliMTViNWE4MTI3LjBiYWNmNGJiOTYxMmQ2YTYuMjJjNDYyNzQwYTE0MmI2NQogICAgIDY3OGY4YmRkODExMWY1ODguY2JlNTM1N2E3ODE4NWE2MC4xNDYwNjM1YjZkNDZkNDk4LjU1YjIyYTRhM2ZkMDI5MDQKLSAgICBjNDYyMTE3NTgxMTFmNTg4LmYxMGY0OWIxNWI1YTgxMjcuMGJhY2Y0YmI5NjEyZDZhNi4yMmM0NjI3NDBhMTQyYjY1CisgICAgMjUwNzM5NDhkNzdlMWQyMy4zYWMzZTc3YTU5ODE5NTBmLjA5MzkwOGM3ZDM3Mzk1NDUuYWY0MjdhZTFhYTMyMmMwMgogICAgIGRhOTg5OGEwMjViNmUzN2IuOTlmNzVhMWQ5YTIxNmVkZi5jNzA0NWZlYmUxYTRkNWQ5LjhhYzI0ZGE0ZTdjNTZlMGMKLSAgICA0MzdjOWYwMTkzMTUyY2NkCisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WQkxFTkRWUFNfMjU2KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICAzN2JkNmM2MzRhYWZhMWYzLjYzMGMyM2QzODZjNDAxYmIuNDRjYjhhY2ZkODg0MjA3ZC4yYThkZTRiM2I1ZTY0ZjdmCiAgICAgYzBkMWIxMzdhNzFlMGIyNy45YTMxNTZjYzE3YjUzMzBmLjk3OGM3NGZjYWUzN2U4OTQuMGVhMDEzMGM2YjQzYzA2NApAQCAtMzMxMzUsMTIgKzMzMTM1LDEyIEBACiAgICAgMDRhMjhmZTBjNGFjYTg2Zi44NWI4YTViZjM3NmRjN2E2LmE0MDU2Mjc4OTRiYmE5ZTAuY2E5MzYxMWNlYTg0NzY5OQogICAgIDU5MGI3N2FkZWM3ZjMzNDIKICAgYWZ0ZXIKLSAgICBjMGQxYjEzNzQ2ZWVhNDE3LjVjZDFhZDc3MTdiNTMzMGYuZWQ4NjEyMTBiOWM1MDFkMS41MDA4NjllMDFlY2FlM2IzCisgICAgMzdiZDZjNjM0YWFmYTFmMy42MzBjMjNkMzg2YzQwMWJiLjQ0Y2I4YWNmZDg4NDIwN2QuMmE4ZGU0YjNiNWU2NGY3ZgogICAgIGMwZDFiMTM3YTcxZTBiMjcuOWEzMTU2Y2MxN2I1MzMwZi45NzhjNzRmY2FlMzdlODk0LjBlYTAxMzBjNmI0M2MwNjQKICAgICAzYjA0NjhlNzQ2ZWVhNDE3LjVjZDFhZDc3ZjM5NDM3YTUuZWQ4NjEyMTBiOWM1MDFkMS41MDA4NjllMDFlY2FlM2IzCiAgICAgMDRhMjhmZTBjNGFjYTg2Zi44NWI4YTViZjM3NmRjN2E2LmE0MDU2Mjc4OTRiYmE5ZTAuY2E5MzYxMWNlYTg0NzY5OQotICAgIDU5MGI3N2FkZWM3ZjMzNDIKLVZCTEVORFZQU18yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBkOTNkMjg3ZTNmYzZkN2Q5Ljc3ZjYyMThmYmRlMzU1ZGIuZjFiNGI4OTNmZTRkYTA0MS4xNzU0NWY5ZWRiYTQxYTZjCiAgICAgMjZmNWVlN2EwMDY2MWQ4Yi5mMTRlMWI1ZWNjMWZlNTA2LjdjOTA2NGRjNjQzZTdlYTAuYTFjMTA1ZjAyYzBjOTEyMQpAQCAtMzMxNTAsMTEgKzMzMTUwLDExIEBACiAgIGFmdGVyCiAgICAgZDkzZDI4N2UzZmM2ZDdkOS43N2Y2MjE4ZmJkZTM1NWRiLmYxYjRiODkzZmU0ZGEwNDEuMTc1NDVmOWVkYmE0MWE2YwogICAgIDI2ZjVlZTdhMDA2NjFkOGIuZjE0ZTFiNWVjYzFmZTUwNi43YzkwNjRkYzY0M2U3ZWEwLmExYzEwNWYwMmMwYzkxMjEKLSAgICBkOTNkMjg3ZTAwNjYxZDhiLmYxNGUxYjVlYmRlMzU1ZGIuN2M5MDY0ZGNmZTRkYTA0MS5hMWMxMDVmMDJjMGM5MTIxCisgICAgMWNmZjQ3OGY0YjZhYzI4My5jY2Y0NzdiYjhkZWQ5NTljLjAyMTcyNDg3ODY0ZjFjZWYuYTA5NjUxZDgyMDdmNDlhZAogICAgIDk3MjdhZWE4M2FkZTgyZWUuNjUzNTMzMTE5ZGQ4YTE0YS41ZjE2NzU4MDgwODkzNzVjLjZmMjAzZWM0NTU4YTgwYmEKLSAgICA2OWFiYzgxZjY3Yjk3MGY0CisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQkxFTkRWUERfMTI4KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICBlYzgzZWI1NWYxOTY1NTA4LjczMzg5ZmIxZWNjZjE5ZjguMTg1ZDRhY2M5NzZkNDRiYy42ZjU5ZDFiNDZkZmE4YjEwCiAgICAgNTJmNGEzZDI4ZmFmNmRhMi44YjAwOTc5NjdhNDg0MmNjLjQxYjhiOTU4MTgzNmJiOWUuMGVhY2I2MGQ2YWFlZDMzYQpAQCAtMzMxNjIsMTIgKzMzMTYyLDEyIEBACiAgICAgM2JkMGM0NTE3YWMzMjExNi5lNGUwODhhNWEwMDMzZDg0LjY1MzY4YjkzMWM5YTE0NWYuNjhiMjA5ZTMwMTBiMzM5YQogICAgIGRjZmM2ZTM2ZDRjZWMxMjkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDFiOGI5NTgxODM2YmI5ZS4wZWFjYjYwZDZhYWVkMzNhCisgICAgZWM4M2ViNTVmMTk2NTUwOC43MzM4OWZiMWVjY2YxOWY4LjE4NWQ0YWNjOTc2ZDQ0YmMuNmY1OWQxYjQ2ZGZhOGIxMAogICAgIDUyZjRhM2QyOGZhZjZkYTIuOGIwMDk3OTY3YTQ4NDJjYy40MWI4Yjk1ODE4MzZiYjllLjBlYWNiNjBkNmFhZWQzM2EKICAgICBmOTQ5ZWQwMmRlOGZmMjZkLmJkNDkxMDQzMDM1NWJhOTcuM2M5MTdhMjFiYmMyNDI5Yi4xOGRiOWY3OTkyYWZjZDA0CiAgICAgM2JkMGM0NTE3YWMzMjExNi5lNGUwODhhNWEwMDMzZDg0LjY1MzY4YjkzMWM5YTE0NWYuNjhiMjA5ZTMwMTBiMzM5YQotICAgIGRjZmM2ZTM2ZDRjZWMxMjkKLVZCTEVORFZQRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDEKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICA0Zjg3NGM2MDI2MDIzNWRkLjc2ZDMyNDJiZmRkNjM1NDkuZGM5MTdhYTY2ZjVkODdjMC4xOGYxZTcxYWQ5NGM2Zjk3CiAgICAgOWQxZDFlNGMxNGI1NDllMS4wNDlmMDlmYzA2NTQ2Y2IxLjgxMjc2MjMzOGM2ZjUzNzYuYjAwZjhhMjI4YjYzOGRlZgpAQCAtMzMxNzcsMTEgKzMzMTc3LDExIEBACiAgIGFmdGVyCiAgICAgNGY4NzRjNjAyNjAyMzVkZC43NmQzMjQyYmZkZDYzNTQ5LmRjOTE3YWE2NmY1ZDg3YzAuMThmMWU3MWFkOTRjNmY5NwogICAgIDlkMWQxZTRjMTRiNTQ5ZTEuMDQ5ZjA5ZmMwNjU0NmNiMS44MTI3NjIzMzhjNmY1Mzc2LmIwMGY4YTIyOGI2MzhkZWYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODEyNzYyMzM4YzZmNTM3Ni5iMDBmOGEyMjhiNjM4ZGVmCisgICAgYTE4YjYwZTZiOWYzYmE2Mi40MjgwNmYzMTJmY2EwMGZhLmFlNzBiZDM5MTI0NjVlZDQuOGJkYzcwMThkMDZiYWExMwogICAgIDM5OWQ4ZTFiMzJjNjQzOGMuOGRjMjUzMzQxNGMzMmRkMi40MTM2MDZhMzFlZWQ2NDAzLjA0YTQ5NjY2NDRmMTA0YWQKLSAgICA3N2IzZjY3YTgyODBkNTZjCisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WQkxFTkRWUERfMTI4KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICA0MDU0OGViZTI2YTU1YWZhLjQwMWUyNWQ1OWEzY2ExOGEuM2ZiMGIwNzM1MmNiMzFlMi4xNTQ3Yjk1Y2NiNzAyMDMyCiAgICAgYmFkNTVhYTBjZGViY2UwNC45MWRjYTAwMTBlNjE5MDg5LmI1OTg4MjU5ODQ2ZjQ2ZDkuMDU2ZDUyNTIzNWRjNGY4YgpAQCAtMzMxODksMTIgKzMzMTg5LDEyIEBACiAgICAgMzZhMjdhZWI5MzBhNzYzYS44NTNhMzI2MDg4ZTUxMTM4LjVkODE3NmNhMzZiODk2MjYuYWUyYjI3YTJiMjljZjU2YwogICAgIDFkNWE1YmQ0ZmQwOWU1NGQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjU5ODgyNTk4NDZmNDZkOS5lZjc1NGQ3MDc5M2NhZDNhCisgICAgNDA1NDhlYmUyNmE1NWFmYS40MDFlMjVkNTlhM2NhMThhLjNmYjBiMDczNTJjYjMxZTIuMTU0N2I5NWNjYjcwMjAzMgogICAgIGJhZDU1YWEwY2RlYmNlMDQuOTFkY2EwMDEwZTYxOTA4OS5iNTk4ODI1OTg0NmY0NmQ5LjA1NmQ1MjUyMzVkYzRmOGIKICAgICA0MzgwNTQ4YjEzZGU2ZTM1LjBhYTE3YjhjYTkzZmNjYjQuNGJjNGM1NTI0NjNhYTk2MS5lZjc1NGQ3MDc5M2NhZDNhCiAgICAgMzZhMjdhZWI5MzBhNzYzYS44NTNhMzI2MDg4ZTUxMTM4LjVkODE3NmNhMzZiODk2MjYuYWUyYjI3YTJiMjljZjU2YwotICAgIDFkNWE1YmQ0ZmQwOWU1NGQKLVZCTEVORFZQRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDAKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICAxYWQwNjVmMjc2OGUzNzA4LmVlODdjNzJjZTlmYzIyYmYuZTA3MzQxNmJjNjVjMWE0MC40ODFiOTAyZGVkNzY0OGQ2CiAgICAgN2Y1N2MxZTkzNzM4YTdjYS5jOTdiMzdiYWIyNDBhZDZmLmY1MTgyNTk4ODBiMmE0ZjkuNjZkZTBmZTcwOWZmZmMxYgpAQCAtMzMyMDQsMTEgKzMzMjA0LDExIEBACiAgIGFmdGVyCiAgICAgMWFkMDY1ZjI3NjhlMzcwOC5lZTg3YzcyY2U5ZmMyMmJmLmUwNzM0MTZiYzY1YzFhNDAuNDgxYjkwMmRlZDc2NDhkNgogICAgIDdmNTdjMWU5MzczOGE3Y2EuYzk3YjM3YmFiMjQwYWQ2Zi5mNTE4MjU5ODgwYjJhNGY5LjY2ZGUwZmU3MDlmZmZjMWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTA3MzQxNmJjNjVjMWE0MC40ODFiOTAyZGVkNzY0OGQ2CisgICAgMjliY2VjYTM1ZjEyZjNiZS4yMmM5YzYwMTg5NjA1NWY2LmEyZjU1OWQzZDFmMjZhOGYuMTQxNmVmNjQyNmRmZWVhMQogICAgIGY1Y2I2MDBlMDcyOGQ1MTIuNTRiZjcxNmUwYmVhNTMwMi5jMWQ2NTkwOGQ1MjgyOTJkLmFlMGUyYzEwZGZhMzU5MTUKLSAgICA5MDE0YzM1OGQwZDY3YTIyCisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WQkxFTkRWUERfMTI4KHJlZykKK1ZURVNUUFNfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICAxNjcyYWZhNjk2MDU4ZDc2LmJkNTA5YjE0NGU4NjBhZWYuYmRhNzMyNmJkMzY5ZTYzZC4zMDg2YTEyM2E5NjE5ZDAwCiAgICAgOWM3NWVjNjhjZGJiY2ViYS41ZjE3MThhMzRkMzk0ZTgzLmI3Y2UwNzY2N2U2YTQ4NTMuYzlkMmFlMTA2OWE4ODIzNApAQCAtMzMyMTYsMTIgKzMzMjE2LDEyIEBACiAgICAgMTg5OTRhZjRmYmVjYzhjOS45YzlhYzkwOGU5Y2NmMTgwLmQyMDlkYjAyZWIxZjZjYzMuZWQ2ZjAzMTAxYTkyOGU2YwogICAgIDJmNTY0NWZjNDQ0YzJkY2EKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTA4MGVjYzlhNzc4YjZmMS42OTg3ZmJiYjMwMGE5NGY0CisgICAgMTY3MmFmYTY5NjA1OGQ3Ni5iZDUwOWIxNDRlODYwYWVmLmJkYTczMjZiZDM2OWU2M2QuMzA4NmExMjNhOTYxOWQwMAogICAgIDljNzVlYzY4Y2RiYmNlYmEuNWYxNzE4YTM0ZDM5NGU4My5iN2NlMDc2NjdlNmE0ODUzLmM5ZDJhZTEwNjlhODgyMzQKICAgICA3ZTY5NzYwODEwODQ3ODlkLmI1ZWI1NGE2MjM0YzVjZmEuYTA4MGVjYzlhNzc4YjZmMS42OTg3ZmJiYjMwMGE5NGY0CiAgICAgMTg5OTRhZjRmYmVjYzhjOS45YzlhYzkwOGU5Y2NmMTgwLmQyMDlkYjAyZWIxZjZjYzMuZWQ2ZjAzMTAxYTkyOGU2YwotICAgIDJmNTY0NWZjNDQ0YzJkY2EKLVZCTEVORFZQRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZURVNUUFNfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICAwYzBhM2E2OWM5NDQyYzM4LmM2NTM2Mjk3MmI4MGZhZWEuZjBlZWY1YjdiZGM0Yzk0MC5hYWI0ZDI3Y2U1ZWNhNTc0CiAgICAgNjA1NTYwNDVjNjg3NDllMi5lM2UxYmM1ZDNiY2I0YWFlLjhlYjQ1MzllYmI0MDlmNjYuODVjZmNiYTMzMTZhOWZiMQpAQCAtMzMyMzEsMTEgKzMzMjMxLDExIEBACiAgIGFmdGVyCiAgICAgMGMwYTNhNjljOTQ0MmMzOC5jNjUzNjI5NzJiODBmYWVhLmYwZWVmNWI3YmRjNGM5NDAuYWFiNGQyN2NlNWVjYTU3NAogICAgIDYwNTU2MDQ1YzY4NzQ5ZTIuZTNlMWJjNWQzYmNiNGFhZS44ZWI0NTM5ZWJiNDA5ZjY2Ljg1Y2ZjYmEzMzE2YTlmYjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGViNDUzOWViYjQwOWY2Ni5hYWI0ZDI3Y2U1ZWNhNTc0CisgICAgMDgwNTMyN2E1NjIwM2VmNS5jZDkxNTNiMmM4NWFmM2JlLjUwYjg1ZmFhZmU0YzMwMjAuYmRhNGM0ZTM2YzI1OTMyNQogICAgIGRlZTQyY2Y2OTYxY2M3OWQuZGZhZDI0MDI2ZGI3MzJjOS4xM2M2OTZjNWEyZjUzODk3LmFmODBiOWE4MzJhYWMwN2QKLSAgICBiOGFmYTQ1ZTFlODQ2MDY1CisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQkxFTkRWUERfMjU2KHJlZykKK1ZURVNUUFNfMjU2XzEocmVnKQogICBiZWZvcmUKICAgICAzMjdkODM3MWNjM2ZiMDg4LmJmYmZjYWE0YTE4NmEyMDUuNzU4MjI5YjljNzcxNDM3OS5iM2E5NzNkY2M0NDY3M2ZhCiAgICAgN2EzNjUxNGVkOTY4ZWM5My44NzYyODg3MDk0NmE4OTVhLmVhNWM2MDQ0NzExMTYxN2EuMGMyZjcxZGM4MDRjOWM3MwpAQCAtMzMyNDMsMTIgKzMzMjQzLDEyIEBACiAgICAgZTQ5OGFhMTI3ZTMxMTcxMC4zYzJmNTYxMmEwZDI2ZTc5LmU2NGU1MjgyMjczOGI3MjIuNTk0ZmM2NDMzM2E0YWI1OQogICAgIDA1ODIxMzgyNjMwZjA5MWQKICAgYWZ0ZXIKLSAgICBlYzI2MGE1ZmUxOGE1MDMyLjg3NjI4ODcwOTQ2YTg5NWEuOWM4NmM0MGQwODI1Yzk3OS4wYzJmNzFkYzgwNGM5YzczCisgICAgMzI3ZDgzNzFjYzNmYjA4OC5iZmJmY2FhNGExODZhMjA1Ljc1ODIyOWI5Yzc3MTQzNzkuYjNhOTczZGNjNDQ2NzNmYQogICAgIDdhMzY1MTRlZDk2OGVjOTMuODc2Mjg4NzA5NDZhODk1YS5lYTVjNjA0NDcxMTE2MTdhLjBjMmY3MWRjODA0YzljNzMKICAgICBlYzI2MGE1ZmUxOGE1MDMyLjEyOTllMzQ2OGFkNTM5YzcuOWM4NmM0MGQwODI1Yzk3OS5mYTIyMGZhZmYxMTI3MDJlCiAgICAgZTQ5OGFhMTI3ZTMxMTcxMC4zYzJmNTYxMmEwZDI2ZTc5LmU2NGU1MjgyMjczOGI3MjIuNTk0ZmM2NDMzM2E0YWI1OQotICAgIDA1ODIxMzgyNjMwZjA5MWQKLVZCTEVORFZQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMjU2XzEobWVtKQogICBiZWZvcmUKICAgICBkYTg3NzM1YTljNWU0NWE5LmJlZDkyZWQxNGZlYTdlZDkuZTFmMjVkYzFmMTZkZTM5Yy4yM2ZlMDQwZDZiZDc2NzIwCiAgICAgYjQyYTYxYjZmYjlkMWMyNy5kNzM1OTEwYWVlNDBjMDNhLmRkYWM3NTNkOTliMjU1NWIuYjFlM2Q4MWM2ZjhkMTQyMApAQCAtMzMyNTgsMTEgKzMzMjU4LDExIEBACiAgIGFmdGVyCiAgICAgZGE4NzczNWE5YzVlNDVhOS5iZWQ5MmVkMTRmZWE3ZWQ5LmUxZjI1ZGMxZjE2ZGUzOWMuMjNmZTA0MGQ2YmQ3NjcyMAogICAgIGI0MmE2MWI2ZmI5ZDFjMjcuZDczNTkxMGFlZTQwYzAzYS5kZGFjNzUzZDk5YjI1NTViLmIxZTNkODFjNmY4ZDE0MjAKLSAgICBkYTg3NzM1YTljNWU0NWE5LmQ3MzU5MTBhZWU0MGMwM2EuZGRhYzc1M2Q5OWIyNTU1Yi5iMWUzZDgxYzZmOGQxNDIwCisgICAgNmYzNjU5ODI5YmQ5NDljMy44OWY4Y2YyOGY3YzAxYmRmLjBjMmExODczYjVhZTgwZTMuZWI0OWM5MWFjZmU2ZmJjZQogICAgIGU3NzlkOGFhOTkxZDhhYWIuMzE2ZWU0OTcwN2Y0Yzk3NC40YTM4YzQ1MDYxNmQxZjVmLjJjN2NkMzcyMjg2ZjU4ZDUKLSAgICBkMmM4ZjI5MjE2YjI2NmUxCisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WQkxFTkRWUERfMjU2KHJlZykKK1ZURVNUUFNfMjU2XzEocmVnKQogICBiZWZvcmUKICAgICAzNzc4MjNlNjM0M2U2MmEwLmY4YmQ1OTFhMTA3NTk5MDguMmJlM2NkYzNiOTZhMDdhNC43M2EyZjRiZWI4ZjlmMGZjCiAgICAgYjhkYTYxZDgxZTljODhiYy43ZWNmNTdiZjFkZWQzMzA5LmQzYTI4NDE4YTlhZTEwMWIuNjIzMzI0YWJkNjYwYWRlNQpAQCAtMzMyNzAsMTIgKzMzMjcwLDEyIEBACiAgICAgN2ZkZmY0NDljODA0NDFiYy41ODhjYzA1MzY3NzBmNmExLjljMzI1MWVlYjZjZDc2OTEuMDdmZTc2YWZkOWVkZGQ0ZQogICAgIDc0Y2Y4ZjllZjYyYmM4MjYKICAgYWZ0ZXIKLSAgICBiOGRhNjFkODFlOWM4OGJjLjdlY2Y1N2JmMWRlZDMzMDkuODRmODA3MDI3NTRiMjE4Ni42MjMzMjRhYmQ2NjBhZGU1CisgICAgMzc3ODIzZTYzNDNlNjJhMC5mOGJkNTkxYTEwNzU5OTA4LjJiZTNjZGMzYjk2YTA3YTQuNzNhMmY0YmViOGY5ZjBmYwogICAgIGI4ZGE2MWQ4MWU5Yzg4YmMuN2VjZjU3YmYxZGVkMzMwOS5kM2EyODQxOGE5YWUxMDFiLjYyMzMyNGFiZDY2MGFkZTUKICAgICBiMjM4YThkNTcxNWExNGUxLjU0N2I1MDgzZGI5MjEzZDguODRmODA3MDI3NTRiMjE4Ni5mNWI5ZDEwMmQ4YWUxMjQ4CiAgICAgN2ZkZmY0NDljODA0NDFiYy41ODhjYzA1MzY3NzBmNmExLjljMzI1MWVlYjZjZDc2OTEuMDdmZTc2YWZkOWVkZGQ0ZQotICAgIDc0Y2Y4ZjllZjYyYmM4MjYKLVZCTEVORFZQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMjU2XzEobWVtKQogICBiZWZvcmUKICAgICAxN2Y4OThiYjRiNzQ5MGZhLjdkMWI0MWExYzAyNDRjZjkuNjVkMDIxMWNkYzkyOTg5MS43NjlhNWY0NjBhYzA0YmU3CiAgICAgY2U0NTBkZjJmMmQyZjBmNi4wNjM4OGM0N2Y0NDg3MTQzLjU3MTFmMWM5NTYwNGI1ZDQuNmU3YzJiNzcwZGIxZGIzNQpAQCAtMzMyODUsMTEgKzMzMjg1LDExIEBACiAgIGFmdGVyCiAgICAgMTdmODk4YmI0Yjc0OTBmYS43ZDFiNDFhMWMwMjQ0Y2Y5LjY1ZDAyMTFjZGM5Mjk4OTEuNzY5YTVmNDYwYWMwNGJlNwogICAgIGNlNDUwZGYyZjJkMmYwZjYuMDYzODhjNDdmNDQ4NzE0My41NzExZjFjOTU2MDRiNWQ0LjZlN2MyYjc3MGRiMWRiMzUKLSAgICAxN2Y4OThiYjRiNzQ5MGZhLjA2Mzg4YzQ3ZjQ0ODcxNDMuNTcxMWYxYzk1NjA0YjVkNC42ZTdjMmI3NzBkYjFkYjM1CisgICAgNzQ4MjZiMzAwYTU0YTU0Ny43NzgxZDBhOTAxZmNlYjQ3LjA5MWRhYjQ1ZjJkMjA4OTUuZTAyNmIzZWU1YTJiNjMyNwogICAgIGU0N2EyYzVmYWMwMzZiMTkuMmM0NDA5MzI4MmNhZjdiMC41OWJlY2I3ZWNjMDk0ZjAxLjI4ZTNmMjE2OGRiYjFmNjgKLSAgICBhMWZlZTQ1YTQzZWM0YmE1CisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQkxFTkRWUERfMjU2KHJlZykKK1ZURVNUUFNfMjU2XzEocmVnKQogICBiZWZvcmUKICAgICBhOWM0ODYyODE4NGEyMjg5LmZjZmJjZTZjZjZlZGZlOTcuODJjYjMzNGUxNDQwZDEyYi4yMmMxY2U1ZmZmYjQ0MzQ0CiAgICAgOWI4MWQyZWJhNzYxZTFjMS45NmNmY2Q0NDA0MWQxYWVlLmQzNjM0YjY4NTJlYWI1NjQuM2ZmMjJlZDRhN2RmYTM4OQpAQCAtMzMyOTcsMTIgKzMzMjk3LDEyIEBACiAgICAgYWMxMDVkMDE2NGVkMDZkYy5jNGEzY2UwMWRhODBkYmQ2LmQ5ZjYzMjRjNDQwNjg5YmUuZTkwZGZhMmFjOGU3OTJjYgogICAgIDJlOGY1ZGU0NzlkYjlhMjAKICAgYWZ0ZXIKLSAgICBkMjgxYzYwZjhjYmVjNGY5LjkwYzNhM2QyZjE5ZjdhNGEuN2M1ODRjZWVkOTUyZGUwNi44ZTFjNjljOWUxOTcyOWZkCisgICAgYTljNDg2MjgxODRhMjI4OS5mY2ZiY2U2Y2Y2ZWRmZTk3LjgyY2IzMzRlMTQ0MGQxMmIuMjJjMWNlNWZmZmI0NDM0NAogICAgIDliODFkMmViYTc2MWUxYzEuOTZjZmNkNDQwNDFkMWFlZS5kMzYzNGI2ODUyZWFiNTY0LjNmZjIyZWQ0YTdkZmEzODkKICAgICBkMjgxYzYwZjhjYmVjNGY5LjkwYzNhM2QyZjE5ZjdhNGEuN2M1ODRjZWVkOTUyZGUwNi44ZTFjNjljOWUxOTcyOWZkCiAgICAgYWMxMDVkMDE2NGVkMDZkYy5jNGEzY2UwMWRhODBkYmQ2LmQ5ZjYzMjRjNDQwNjg5YmUuZTkwZGZhMmFjOGU3OTJjYgotICAgIDJlOGY1ZGU0NzlkYjlhMjAKLVZCTEVORFZQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMjU2XzEobWVtKQogICBiZWZvcmUKICAgICAzNzZmMGZlMTBmODBmYzI3LjgzNzk5NDJiY2E3OGU0MTYuMTAzYmM5YmZkYWNiZjhiZS40Njg5ZjllYzJmOTJmMjM3CiAgICAgZTE3OThiMGZhN2UxNzYwZC5iNTBhNjVmYTViZWQ5YTU1LjRlNTYxMGY3MGQ4YzhlMzAuMWY1YzlkM2IzNzgxNTQxZQpAQCAtMzMzMTIsMTEgKzMzMzEyLDExIEBACiAgIGFmdGVyCiAgICAgMzc2ZjBmZTEwZjgwZmMyNy44Mzc5OTQyYmNhNzhlNDE2LjEwM2JjOWJmZGFjYmY4YmUuNDY4OWY5ZWMyZjkyZjIzNwogICAgIGUxNzk4YjBmYTdlMTc2MGQuYjUwYTY1ZmE1YmVkOWE1NS40ZTU2MTBmNzBkOGM4ZTMwLjFmNWM5ZDNiMzc4MTU0MWUKLSAgICAzNzZmMGZlMTBmODBmYzI3LjgzNzk5NDJiY2E3OGU0MTYuNGU1NjEwZjcwZDhjOGUzMC40Njg5ZjllYzJmOTJmMjM3CisgICAgMDk3OTRkNTg1YzBiYzFmZS45YzBkY2VkYmIyZDc2NDQzLjVjYzIxZjk1OTBkMDU5NTYuYzBiYzFiYTVmODVmZWQxZgogICAgIDg5M2JkMWFhNGIwOTljMjUuOTZjZmNhMzg2Y2MzN2Q4Yy4xNDQ5NzM4NTdmYTIxNTVjLjg1ZjY2ZTk3MGRiOGY3ZTUKLSAgICBjYTU0OTI3YjEyMTlhZTFkCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WUE1VTERRXzEyOChyZWcpCitWVEVTVFBTXzI1Nl8yKHJlZykKICAgYmVmb3JlCiAgICAgZWIyMzgzYmZhNDBkNTA3Mi4zZThhOTNmMDhmZTdjMWFmLmZkOWM1NTdmMjQzYzIyZGQuNTNiODg2YjRmNTBmN2U2ZgogICAgIDQ0YWUzZWNlNWYyMTE3OTEuMDUzNDEwMTY0NWIxZWRjNy4yZmMwNmMxYTc3Y2U4ZmUyLmY2ZGJkNjBjMGUyMjRmYmIKQEAgLTMzMzI0LDEyICszMzMyNCwxMiBAQAogICAgIDBlMmNmZWZkYmRkNTA2ZGMuMzRjNDI4YjI3NTNiNGE1NC42MDNjMmEwMTViNmZhZmI2LmQzNmQxYmViOWI2YTFiYWMKICAgICBjNjczMDg0OTQ3Yjg4ZmE5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDM0NjRlZTMxOTc1Y2MuZmVhYjZiMDFkNjkxYmEyOQotICAgIDQ0YWUzZWNlNWYyMTE3OTEuMDUzNDEwMTY0NWIxZWRjNy4yZmMwNmMxYTc3Y2U4ZmUyLmY2ZGJkNjBjMGUyMjRmYmIKKyAgICBlYjIzODNiZmE0MGQ1MDcyLjNlOGE5M2YwOGZlN2MxYWYuZmQ5YzU1N2YyNDNjMjJkZC41M2I4ODZiNGY1MGY3ZTZmCisgICAgMzE0M2JkMTRkZGRmNDAyNi5iODAzYzIwNzg4NzRkYzliLjg2ODcwOTc3MDAwNmZmNDYuZDc3ZWRmN2FlN2U3NDU2YgogICAgIDMxNDNiZDE0ZGRkZjQwMjYuYjgwM2MyMDc4ODc0ZGM5Yi44Njg3MDk3NzAwMDZmZjQ2LmQ3N2VkZjdhZTdlNzQ1NmIKICAgICAwZTJjZmVmZGJkZDUwNmRjLjM0YzQyOGIyNzUzYjRhNTQuNjAzYzJhMDE1YjZmYWZiNi5kMzZkMWJlYjliNmExYmFjCi0gICAgYzY3MzA4NDk0N2I4OGZhOQotVlBNVUxEUV8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZURVNUUFNfMjU2XzIobWVtKQogICBiZWZvcmUKICAgICA4ZDVkMjA4MjA2ZGQ1YjhmLjM3YjdmZGY1OTg4ZmE2NjAuNTU0M2JiMDAyNzEzZjIyMC4xNzJkY2EyNDI1OTVkYmRkCiAgICAgMDJmOGUyODFmNWUzM2I4YS4wNzJlYjQ2ODBkOTg1YzVkLmY4NGNmOGRlYmEwNzkxMmIuMDhhNGU1NGNmYTA1YmY2OApAQCAtMzMzMzgsMTIgKzMzMzM4LDEyIEBACiAgICAgZDAyYWYzMWJjZTg0MTAxNwogICBhZnRlcgogICAgIDhkNWQyMDgyMDZkZDViOGYuMzdiN2ZkZjU5ODhmYTY2MC41NTQzYmIwMDI3MTNmMjIwLjE3MmRjYTI0MjU5NWRiZGQKLSAgICAwMmY4ZTI4MWY1ZTMzYjhhLjA3MmViNDY4MGQ5ODVjNWQuZjg0Y2Y4ZGViYTA3OTEyYi4wOGE0ZTU0Y2ZhMDViZjY4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY1NTFiMzdmYmI1ZGNiNjAuZmYxZjU0ZTAzMTNjMzRjOAorICAgIDcyYTJkZjdkZjkyMmE0NzAuYzg0ODAyMGE2NzcwNTk5Zi5hYWJjNDRmZmQ4ZWMwZGRmLmU4ZDIzNWRiZGE2YTI0MjIKKyAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNjk2YjRjODFkMWM3MmI2ZC4xMTEyM2U2ZjJmYzhmOTc1LjJmMmI2MmZiZjU3NGEzYWQuMDk1NzdlNWMzMmYwOWQ1OQotICAgIGQwMmFmMzFiY2U4NDEwMTcKKyAgICAwMDAwMDAwMDAwMDAwMDQwCiAKLVZQTVVMRFFfMTI4KHJlZykKK1ZURVNUUFNfMjU2XzIocmVnKQogICBiZWZvcmUKICAgICA0MWI1ZDM4ZmU1OTEyYWU5LjEzZGRlZTVhZjZiZGIyYWQuMDExODA5ZGMxNDA2NThlNy43Yzk5ODYxMWQ1MDQ4ZTdiCiAgICAgYjg0MjFhMjUxMWEzMjk3YS5kYzJmMjhhOWJiYzUzZWIyLjBhM2E3ZTczMDJjNWJkODIuYmFjMTQ0NjgwN2UyNjAzOApAQCAtMzMzNTEsMTIgKzMzMzUxLDEyIEBACiAgICAgMjg5NmNlNjMxZTA4YzA4YS4zYmExNTU1OTkyM2M1M2JhLmQzMDY1MmQ0NjhlZjg4ZTcuNzk2ZjgwODVjZWIxYTcyZgogICAgIGIyOGRmNTI0OWNiYzk1YzAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmVkOGU0OTFhYTliNjdlOC5mZDNiMjYwYWVhZGM2MzgwCi0gICAgYjg0MjFhMjUxMWEzMjk3YS5kYzJmMjhhOWJiYzUzZWIyLjBhM2E3ZTczMDJjNWJkODIuYmFjMTQ0NjgwN2UyNjAzOAorICAgIDQxYjVkMzhmZTU5MTJhZTkuMTNkZGVlNWFmNmJkYjJhZC4wMTE4MDlkYzE0MDY1OGU3LjdjOTk4NjExZDUwNDhlN2IKKyAgICA5MTFmYzU0OGYxNDc0Nzc2LmEwMmM3NjVhM2JlYjhhYTguODdjNjk3YTI5NThlNjRmNC5jNTZmMTllYWE2MTdkNDEwCiAgICAgOTExZmM1NDhmMTQ3NDc3Ni5hMDJjNzY1YTNiZWI4YWE4Ljg3YzY5N2EyOTU4ZTY0ZjQuYzU2ZjE5ZWFhNjE3ZDQxMAogICAgIDI4OTZjZTYzMWUwOGMwOGEuM2JhMTU1NTk5MjNjNTNiYS5kMzA2NTJkNDY4ZWY4OGU3Ljc5NmY4MDg1Y2ViMWE3MmYKLSAgICBiMjhkZjUyNDljYmM5NWMwCi1WUE1VTERRXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMQorVlRFU1RQU18yNTZfMihtZW0pCiAgIGJlZm9yZQogICAgIDRjOTRmNGIzMmI0MjVhZWYuZDlmNDM0ZTQzNzcyZDE2Mi44OTVhM2Y5M2RkYzM1NTE1LjRjNDdhYTc0MTg3MzY2MDcKICAgICAyMzUyZjkxZTk4NTFiMWU5LjAwODRmMDM2ZDUxMmI3YWEuNjYyM2IyZjIzODhjNGJlNC40Y2Q1OWJmMDQwYTczYTAxCkBAIC0zMzM2NSwxMiArMzMzNjUsMTIgQEAKICAgICAxNjQzZGViZmEyZDZjZmMxCiAgIGFmdGVyCiAgICAgNGM5NGY0YjMyYjQyNWFlZi5kOWY0MzRlNDM3NzJkMTYyLjg5NWEzZjkzZGRjMzU1MTUuNGM0N2FhNzQxODczNjYwNwotICAgIDIzNTJmOTFlOTg1MWIxZTkuMDA4NGYwMzZkNTEyYjdhYS42NjIzYjJmMjM4OGM0YmU0LjRjZDU5YmYwNDBhNzNhMDEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjg2ZmY3NDhkYjYwZWRiNC4wNjJjZDI1MzhjMjFmYzA3CisgICAgYjM2YjBiNGNkNGJkYTUxMC4yNjBiY2IxYmM4OGQyZTlkLjc2YTVjMDZjMjIzY2FhZWEuYjNiODU1OGJlNzhjOTlmOAorICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICBmNzFlMDczOTdhMzgwOGVkLjIwNmU1ZWZkMTYyMmVjMzcuM2MxNTIwZDQ4YjE2MDc5MS41NTA3MzkyOTY5NGNiMjMyCi0gICAgMTY0M2RlYmZhMmQ2Y2ZjMQorICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVlBNVUxEUV8xMjgocmVnKQorVlRFU1RQU18yNTZfMihyZWcpCiAgIGJlZm9yZQogICAgIGNlZmQwY2RmYzQzZmQyZDkuYWRjNTA3YzAyNzI4ODA0Zi5kMTYwMDg0YmYwYWFiNGQ1LmVlZDUxNDJlYmNlZTQzYzYKICAgICBkYjdmYmZmNjZiMTNmNjI4LjEwNTFmZGQ0MjFkMDdhMmMuNjhiNGY5MTljMTk3NDA5My45ZmQ2N2Y1ZTZkMzk2NTIwCkBAIC0zMzM3OCwxMiArMzMzNzgsMTIgQEAKICAgICA1ZjBkYTViYWI1MmU5NDE0LjRjNGNiYzRmNmY3YWU3MDUuYjhiNWExZTliNmQxOTMxZC42ZGM2YjBmMGJjNTU0NmYxCiAgICAgNDM0ZTZjMmE5MjNmN2RjMAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNzFjOGQ3MmUzMmYzNDE0LmUxNDhjNmZiYjdmMWFiNDAKLSAgICBkYjdmYmZmNjZiMTNmNjI4LjEwNTFmZGQ0MjFkMDdhMmMuNjhiNGY5MTljMTk3NDA5My45ZmQ2N2Y1ZTZkMzk2NTIwCisgICAgY2VmZDBjZGZjNDNmZDJkOS5hZGM1MDdjMDI3Mjg4MDRmLmQxNjAwODRiZjBhYWI0ZDUuZWVkNTE0MmViY2VlNDNjNgorICAgIDk3MTZmMzcxMzFkZjc4NTcuZmM5MDY2NWY4NTNkYjNhZi40MWI3MmRkNDI0NzVjYzFjLjJiZTJkZjUwYjgwMjI3Y2EKICAgICA5NzE2ZjM3MTMxZGY3ODU3LmZjOTA2NjVmODUzZGIzYWYuNDFiNzJkZDQyNDc1Y2MxYy4yYmUyZGY1MGI4MDIyN2NhCiAgICAgNWYwZGE1YmFiNTJlOTQxNC40YzRjYmM0ZjZmN2FlNzA1LmI4YjVhMWU5YjZkMTkzMWQuNmRjNmIwZjBiYzU1NDZmMQotICAgIDQzNGU2YzJhOTIzZjdkYzAKLVZQTVVMRFFfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWVEVTVFBTXzI1Nl8yKG1lbSkKICAgYmVmb3JlCiAgICAgODg0NTkwZWE1OWNiODk2NC44ZmIyZDAzZjkwOGM4NTBiLmRlNTM3ZDhlZmE5NGQxNTkuMjlmOTUwYzIxMjM2ZDI0MgogICAgIDE3Nzk5OTFjMmEwNTI2MDkuODQ0ZjcwNmI2MTg2ODllOC44YzZmMjUwYTQyOTUyZWQ4LmVmZDEzNmNkZDQzMWM1MzYKQEAgLTMzMzkyLDEyICszMzM5MiwxMiBAQAogICAgIGRmYzEwYjRjOWExODJjYTgKICAgYWZ0ZXIKICAgICA4ODQ1OTBlYTU5Y2I4OTY0LjhmYjJkMDNmOTA4Yzg1MGIuZGU1MzdkOGVmYTk0ZDE1OS4yOWY5NTBjMjEyMzZkMjQyCi0gICAgMTc3OTk5MWMyYTA1MjYwOS44NDRmNzA2YjYxODY4OWU4LjhjNmYyNTBhNDI5NTJlZDguZWZkMTM2Y2RkNDMxYzUzNgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZTk3MzU5OGY1ZmJhMTE4LmZjZTIxZTYyZWRmZjIzZWMKKyAgICA3N2JhNmYxNWE2MzQ3NjliLjcwNGQyZmMwNmY3MzdhZjQuMjFhYzgyNzEwNTZiMmVhNi5kNjA2YWYzZGVkYzkyZGJkCisgICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIDg4YzM0ODg4NjBiNTAzMDQuMjhhNTAwNjc0ZTdiYjQwMS5iMTE5MTY2NjdjODIzMDA2LmVmNjg5NzI2ZmQxNmI2M2QKLSAgICBkZmMxMGI0YzlhMTgyY2E4CisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WQ01QUERfMjU2XzB4NChyZWcpCitWVEVTVFBTXzI1Nl8zKHJlZykKICAgYmVmb3JlCiAgICAgOTZkYmE2NTMwZmUwNDU5My4yMDczZTU5OGZjNDJiYWIzLjkwZjVlODEwYTQ4ZjU0OTcuZGUzZTU3MWVhNTg1NGUwYwogICAgIDZmMDU2NGE3ZjZmOTNmYTkuNzQ4ZDU3Y2IxNGFlZjIxMi4yYzZlMzUxMDVlNmVmNmMxLjk5YWE3MGMzZmJhMGNlZWUKQEAgLTMzNDA1LDEyICszMzQwNSwxMiBAQAogICAgIGY2YjUzYWU2OGI1MGMxMDguYmIzN2E3NDcyNjUxZDM5Mi43MTBhZWVjNjcwYmUzMDg4LjI1ODIxMjdmYTA0ZmU2ZjAKICAgICBhZTg3OTU3MDI3ZmJmNjY5CiAgIGFmdGVyCi0gICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIDk2ZGJhNjUzMGZlMDQ1OTMuMjA3M2U1OThmYzQyYmFiMy45MGY1ZTgxMGE0OGY1NDk3LmRlM2U1NzFlYTU4NTRlMGMKICAgICA2ZjA1NjRhN2Y2ZjkzZmE5Ljc0OGQ1N2NiMTRhZWYyMTIuMmM2ZTM1MTA1ZTZlZjZjMS45OWFhNzBjM2ZiYTBjZWVlCiAgICAgYzU4YTQxYjRlYmYwNTQ5Ni41ZWUwMTkwY2MzMDQ2NjRlLjU4NWJlM2Q0MTlhNGQ2MmUuYmMyN2RhM2Y5YmRmNmNkNQogICAgIGY2YjUzYWU2OGI1MGMxMDguYmIzN2E3NDcyNjUxZDM5Mi43MTBhZWVjNjcwYmUzMDg4LjI1ODIxMjdmYTA0ZmU2ZjAKLSAgICBhZTg3OTU3MDI3ZmJmNjY5Ci1WQ01QUERfMjU2XzB4NChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlRFU1RQU18yNTZfMyhtZW0pCiAgIGJlZm9yZQogICAgIDM0MDJkZWZjNGJlZjU5NmQuNWNkMzRhYWE3MWE1YzFhOS42ODVkN2Q2ODU4OWZmNTBiLmQxYzU1MzUzZmY0NzNmN2IKICAgICA5NGJmNjkxMTI5MzhjYjI3LjU1MzE2ZDZhM2E3YzkyMjUuM2YxZjE3NWI3NWZkODhlNC5kNWQ5MGRlODYzY2M0MGI1CkBAIC0zMzQyMCwxMSArMzM0MjAsMTEgQEAKICAgYWZ0ZXIKICAgICAzNDAyZGVmYzRiZWY1OTZkLjVjZDM0YWFhNzFhNWMxYTkuNjg1ZDdkNjg1ODlmZjUwYi5kMWM1NTM1M2ZmNDczZjdiCiAgICAgOTRiZjY5MTEyOTM4Y2IyNy41NTMxNmQ2YTNhN2M5MjI1LjNmMWYxNzViNzVmZDg4ZTQuZDVkOTBkZTg2M2NjNDBiNQotICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICBhODg5YjI5YWRjZTEwN2M0LjNiMTk5Zjk0ODE2MDZlMjkuMWU0YWYyMGM5YTc0NDg0YS5kODkyMThlZjM4ZDc2ZmRmCiAgICAgNGQyZTM2ODM4MWY3Y2E2Zi42Y2Q3ZGM5M2UyZGQ5MTYxLmRmYTg4OTY3ZTIxMmYwNjkuMzgzYzcwZDYxOWY2MDdhOAotICAgIDUwMjMxMjA4YTJiNTQ1YmEKKyAgICAwMDAwMDAwMDAwMDAwMDQwCiAKLVZDTVBQRF8yNTZfMHg0KHJlZykKK1ZURVNUUFNfMjU2XzMocmVnKQogICBiZWZvcmUKICAgICA3YzkzZjlmMTcwOWY2NWMxLjYwNzg3MGI4MzM4NWQwNTUuNDJiOTIxZDNmYjgwMzk3OC41ZjA1NTg1OTZhZTIzZDZjCiAgICAgMThkNzIxZmQxZTQwYTI2YS5iYjM0ZGMyNTBlOTdkNGEyLjFhMDk2OWJmNjVkNGEwMWIuN2EyZmRjY2M0ZGYxZWE4MApAQCAtMzM0MzIsMTIgKzMzNDMyLDEyIEBACiAgICAgMTAwZTI0MmU4Y2Q4NjY1Mi5iYzMyM2I1N2IyNzhjOTFmLjQxMjdmMjUxYTJjMDllYjMuZjIxNmVmZWE5N2Y5NTg4OQogICAgIDA2NmI3NzZiMzQwYThmZDcKICAgYWZ0ZXIKLSAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgN2M5M2Y5ZjE3MDlmNjVjMS42MDc4NzBiODMzODVkMDU1LjQyYjkyMWQzZmI4MDM5NzguNWYwNTU4NTk2YWUyM2Q2YwogICAgIDE4ZDcyMWZkMWU0MGEyNmEuYmIzNGRjMjUwZTk3ZDRhMi4xYTA5NjliZjY1ZDRhMDFiLjdhMmZkY2NjNGRmMWVhODAKICAgICA4MDNjODY5ODQ5MjQzYTYxLjNiMmVmNmI2MmYzYTkzODEuNTExNWIwYzViZTY1MDNmNS4wZGYxOGZhZWE4NDliNWQwCiAgICAgMTAwZTI0MmU4Y2Q4NjY1Mi5iYzMyM2I1N2IyNzhjOTFmLjQxMjdmMjUxYTJjMDllYjMuZjIxNmVmZWE5N2Y5NTg4OQotICAgIDA2NmI3NzZiMzQwYThmZDcKLVZDTVBQRF8yNTZfMHg0KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWVEVTVFBTXzI1Nl8zKG1lbSkKICAgYmVmb3JlCiAgICAgMjViY2E0MWY5ZThhMThlNS4yMzk5ZjgyYjg0ZTc2NWU3LjFhMGIyNWY0YjI2MDMyYTcuNDc4YzJiY2RhYzcwYWMwMQogICAgIDJiZDVmMGYxZWU4NGFkZTAuMTcyOWZkZmJjY2RlNzJjZi4zMTg3MzI3YTRiZmI4OTQ2LmJmOTA1OGE2NzgwMTZhOGEKQEAgLTMzNDQ3LDExICszMzQ0NywxMSBAQAogICBhZnRlcgogICAgIDI1YmNhNDFmOWU4YTE4ZTUuMjM5OWY4MmI4NGU3NjVlNy4xYTBiMjVmNGIyNjAzMmE3LjQ3OGMyYmNkYWM3MGFjMDEKICAgICAyYmQ1ZjBmMWVlODRhZGUwLjE3MjlmZGZiY2NkZTcyY2YuMzE4NzMyN2E0YmZiODk0Ni5iZjkwNThhNjc4MDE2YThhCi0gICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIGY0ODJkOWNkNDIwNTBiZjMuNDcwYTJmMGIwMTQ4YzhiNC5kZDcwZGRkMzlhNTc4YjI4LjA2N2Y3NDQ4YTMwMDE0ZmIKICAgICA1YzhlZGE5ZmI2MThlZTRiLjBlODc4YWM1YmViMWE0NDMuZmE5M2EzZWRiYTdmZjQ3OC43NmE0N2IyMGM4ZjhlNTAwCi0gICAgNmM0ZDZhOTg4NDc1MWE0NAorICAgIDAwMDAwMDAwMDAwMDAwMDEKIAotVkNNUFBEXzI1Nl8weDQocmVnKQorVlRFU1RQU18yNTZfMyhyZWcpCiAgIGJlZm9yZQogICAgIDQ0YzQzYjFlNzMwNGVmNzMuM2ZjNzZmNTQ2NWM5MTExNC5jYWVlMGE5NzlmYTY0MTI3LjY0YmNmZWIzYzg4MDdmNjMKICAgICA1YTU2ZWMxZDJmMzBhMDNhLjc5ZjcxNGQ2NmMyNTMxNzkuZDY4OWFjZWI0MWIxZGMwZC5mN2I3NmMxMGUwNjVlYTE0CkBAIC0zMzQ1OSwxMiArMzM0NTksMTIgQEAKICAgICBiMGZiZGIzNjg0OTA4NDQwLjYyNmY4MGY1ZWYwYjU3YzkuNGQ4ZTQzY2UzNzNmZmM4ZS4wODUyNmU0NDliMGM0YTdiCiAgICAgM2U4YmZiZjI3NmU2Yjk4OAogICBhZnRlcgotICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICA0NGM0M2IxZTczMDRlZjczLjNmYzc2ZjU0NjVjOTExMTQuY2FlZTBhOTc5ZmE2NDEyNy42NGJjZmViM2M4ODA3ZjYzCiAgICAgNWE1NmVjMWQyZjMwYTAzYS43OWY3MTRkNjZjMjUzMTc5LmQ2ODlhY2ViNDFiMWRjMGQuZjdiNzZjMTBlMDY1ZWExNAogICAgIDBhNGY3ODAxNTc4NTY4NDUuZTZlYjQ2MTJlNjM3MGFhNy44ZGE1NmIyZjQwNjFiMWExLjhmNTA2OGYyMWMzYWVmYjgKICAgICBiMGZiZGIzNjg0OTA4NDQwLjYyNmY4MGY1ZWYwYjU3YzkuNGQ4ZTQzY2UzNzNmZmM4ZS4wODUyNmU0NDliMGM0YTdiCi0gICAgM2U4YmZiZjI3NmU2Yjk4OAotVkNNUFBEXzI1Nl8weDQobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMjU2XzMobWVtKQogICBiZWZvcmUKICAgICAwZGM1ODllOWNjZDRmNjBjLmE4YTUxMjI4NTVkYzMwZDYuYzk0ZjNlNmFhNGFlZDYwYy43MDhmMzAzNGMyZDlmODgwCiAgICAgNTFjZDk2MTNiNmUzYmUzMi40ZTliMTg0MzYzZjZhOGIzLmY3NTZmYzVjMjAyYjQxOWMuNTRmNjJmY2Q3ZWJiZTMyNQpAQCAtMzM0NzQsMTEgKzMzNDc0LDExIEBACiAgIGFmdGVyCiAgICAgMGRjNTg5ZTljY2Q0ZjYwYy5hOGE1MTIyODU1ZGMzMGQ2LmM5NGYzZTZhYTRhZWQ2MGMuNzA4ZjMwMzRjMmQ5Zjg4MAogICAgIDUxY2Q5NjEzYjZlM2JlMzIuNGU5YjE4NDM2M2Y2YThiMy5mNzU2ZmM1YzIwMmI0MTljLjU0ZjYyZmNkN2ViYmUzMjUKLSAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgZTY2ZjlkNWQ1MjFlY2MyNy5mZTI3ZThmMzRjNjgyNzg0LmM3NTIzN2I5ODA4ZTU0YTQuNTMwZDNiMDUwNzZmZjYyNgogICAgIGE3NzYxYmI0YmM5MWRkMTcuMTQ5NjgxYTRhY2MxZWFmNS4xNzBkNjk2Y2UwZTRjZDUxLmNhMjE1MDQ5Zjg4MzcwMzIKLSAgICAxNjdmNmEwM2VkODI4YmYzCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQ01QUFNfMTI4XzB4NChyZWcpCitWVEVTVFBTXzI1Nl8zKHJlZykKICAgYmVmb3JlCiAgICAgOTE3MDg2YTA4M2Y5ODQxNi43MmIwOGEwMjBmNDlhZDJkLmVjMzRkY2MzMWU4YTJjYjEuYzI1NDEwNjE1YjM4NjZjZQogICAgIDk4NDM5ZThkNTU3Mzk3NDYuMjJlNzY4MzU2ODUxZjg5NS5lMjRkZjdiYTNmNTEyYjY1LmE0ZjNhNzg0MGQ5NmRjNDgKQEAgLTMzNDg2LDEyICszMzQ4NiwxMiBAQAogICAgIGJiYmJiNzAzMWZhMWZhN2YuYTA4MDVlZjY5OTgyZWUwZi45NzFmNTllNGZiMDc0YjY0LjdjNjk5NjA1ODhhMjRkZTIKICAgICAyYWQ3ZTYzYTg5NjdjMTU5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIDkxNzA4NmEwODNmOTg0MTYuNzJiMDhhMDIwZjQ5YWQyZC5lYzM0ZGNjMzFlOGEyY2IxLmMyNTQxMDYxNWIzODY2Y2UKICAgICA5ODQzOWU4ZDU1NzM5NzQ2LjIyZTc2ODM1Njg1MWY4OTUuZTI0ZGY3YmEzZjUxMmI2NS5hNGYzYTc4NDBkOTZkYzQ4CiAgICAgODg0M2IwMzUwMDdjMDAzMC45MmU5MzAzOGUyYjU3OTdkLjUxMmRjY2Y3YWFhMTIxYmQuOThiNmFiYzExMzBiZWFlYgogICAgIGJiYmJiNzAzMWZhMWZhN2YuYTA4MDVlZjY5OTgyZWUwZi45NzFmNTllNGZiMDc0YjY0LjdjNjk5NjA1ODhhMjRkZTIKLSAgICAyYWQ3ZTYzYTg5NjdjMTU5Ci1WQ01QUFNfMTI4XzB4NChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlRFU1RQU18yNTZfMyhtZW0pCiAgIGJlZm9yZQogICAgIDgwY2UxNjRlMzE2NzAyN2UuOGVmOWIwNjU0ZjZkYzJlMC4yNzc5NmU1ZGFhYzMxMDc3LjBmNzE5YWVmY2YwZGU0MDcKICAgICA1OTE4YTIyYjljYWRjYzdiLjVkNDc5NWM2MmI2ZDkzZmYuMDJhMGRkNTgzMDg0OWVlMi4xNTZkODk4M2MyNDIyYTUxCkBAIC0zMzUwMSwxMSArMzM1MDEsMTEgQEAKICAgYWZ0ZXIKICAgICA4MGNlMTY0ZTMxNjcwMjdlLjhlZjliMDY1NGY2ZGMyZTAuMjc3OTZlNWRhYWMzMTA3Ny4wZjcxOWFlZmNmMGRlNDA3CiAgICAgNTkxOGEyMmI5Y2FkY2M3Yi41ZDQ3OTVjNjJiNmQ5M2ZmLjAyYTBkZDU4MzA4NDllZTIuMTU2ZDg5ODNjMjQyMmE1MQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICA5MDgyMDdiZmU4NDVkYTdjLjg1ZjI2NDkyNTAyYmFiODcuMGZjMDI2ZDM0OGQyNTI3Yy4wNDYwMjQwYzZlMmY1N2VmCiAgICAgMDNkOGJmZjUyZTNjZTlhZS42MDQ1MTgzNTU5MzU0NDI1LjI4YTdjNWJiMGViOGU5NzAuM2E5NjY1ZjY3MjYyYTc4ZAotICAgIDExNWE0YmFkNjg2NjU4ZDYKKyAgICAwMDAwMDAwMDAwMDAwMDQwCiAKLVZDTVBQU18xMjhfMHg0KHJlZykKK1ZURVNUUFNfMjU2XzMocmVnKQogICBiZWZvcmUKICAgICBlN2ZhY2Y5ZGVjYzhhNDc2LjhjZTY0OGI4OGM5ZGI0M2QuNGI4ZWFkMWJlMjE3OWE4NC4yYjFmMzZmYTljNDMxZmViCiAgICAgMTdjMGVlMzM5YjEzYzgxYi4wODc3MWRmNjFlNzVmODU0LmEyMTgyMGIxODg1YmViNTEuZjJmNWY2N2QxMTdlYWYxOQpAQCAtMzM1MTMsMTIgKzMzNTEzLDEyIEBACiAgICAgZjRmMmVmZmRlODk1ODYxZS40YTU2OWM5MDRiYjdkYmNjLjA0MWQ4Yzk5OWEzZjY5ZTQuNDBlYjRmMDAxYTM0ZDAzYgogICAgIDdlYTNlMWQ4ZTZjOGQ5ODkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgZTdmYWNmOWRlY2M4YTQ3Ni44Y2U2NDhiODhjOWRiNDNkLjRiOGVhZDFiZTIxNzlhODQuMmIxZjM2ZmE5YzQzMWZlYgogICAgIDE3YzBlZTMzOWIxM2M4MWIuMDg3NzFkZjYxZTc1Zjg1NC5hMjE4MjBiMTg4NWJlYjUxLmYyZjVmNjdkMTE3ZWFmMTkKICAgICBmY2ZhYTVkOTEwZDNmZjZmLjU0NTliYjlhZmZjZjcxMjAuYzEyZTZiNjFlNzkwNzEzOC41YmY1N2YzMTg3NzU1NzI1CiAgICAgZjRmMmVmZmRlODk1ODYxZS40YTU2OWM5MDRiYjdkYmNjLjA0MWQ4Yzk5OWEzZjY5ZTQuNDBlYjRmMDAxYTM0ZDAzYgotICAgIDdlYTNlMWQ4ZTZjOGQ5ODkKLVZDTVBQU18xMjhfMHg0KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwCitWVEVTVFBTXzI1Nl8zKG1lbSkKICAgYmVmb3JlCiAgICAgZjJlOGIyYTQwOTNjMmMzOC41OWY1YzgwOWJlZTQ5OWQ1LmM4M2IzZWM1MWYzOWYyODUuYzczMTdlYzMzZGY2MGYwMgogICAgIDc2ODgzYzUwOWM5ZDg2NzcuODg0ZjJkNmIyZTRjNzQ0MC5hOGQ0MWMyMzk2NjI3MTc3LjY2YjYzZDRkNmQ0MDllM2QKQEAgLTMzNTI4LDExICszMzUyOCwxMSBAQAogICBhZnRlcgogICAgIGYyZThiMmE0MDkzYzJjMzguNTlmNWM4MDliZWU0OTlkNS5jODNiM2VjNTFmMzlmMjg1LmM3MzE3ZWMzM2RmNjBmMDIKICAgICA3Njg4M2M1MDljOWQ4Njc3Ljg4NGYyZDZiMmU0Yzc0NDAuYThkNDFjMjM5NjYyNzE3Ny42NmI2M2Q0ZDZkNDA5ZTNkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIGU3NGRmZGM4YmRmNWEzNzAuZGU0YjE4OGVkNTVhNTMwYS5jN2VkYjI5N2NkM2QxNWNkLjNkZjhjNmEyYzVhOTUzNDIKICAgICAyMTA0NzBmODg4NTMzZjUwLmI1Mzc4N2RlNGY5OTcxZTAuMDE1MjdkMGVlMGQ3OTliNC5hNzQyMTQyZGUyYmU2YWJkCi0gICAgMDJlMjIzNWM2MDBhMWY1OQorICAgIDAwMDAwMDAwMDAwMDAwMDAKIAotVkNNUFBTXzEyOF8weDQocmVnKQorVlRFU1RQU18yNTZfMyhyZWcpCiAgIGJlZm9yZQogICAgIGE5MjJlZjlhZDkxYWFkYzMuMDE3OTExY2MxOGMwMTU0Mi42YTVkNzVjNzM3OTUwYjZkLjMzY2VmNzcyZTkzYmJiNTgKICAgICBmODRmNzQ1NGVjNzk1MWE2LjYxNzg1ZDMwODk0YWUyNzMuNWEwYWRmYjUyYWRiNWM1ZS4zNzJlOWViMTA3NzUzNWU0CkBAIC0zMzU0MCwxMiArMzM1NDAsMTIgQEAKICAgICBmZGEwOWJlNzQ5NTRjYTg5LjE0NDNlMzU5ODFlMzUwNDAuNTYyOTEzNTA5ZTcyMTcxYi4yOGNiNjE2ZGVjOWMyMzY1CiAgICAgY2Q5Zjc0YzJlYmEyMGZiMwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICBhOTIyZWY5YWQ5MWFhZGMzLjAxNzkxMWNjMThjMDE1NDIuNmE1ZDc1YzczNzk1MGI2ZC4zM2NlZjc3MmU5M2JiYjU4CiAgICAgZjg0Zjc0NTRlYzc5NTFhNi42MTc4NWQzMDg5NGFlMjczLjVhMGFkZmI1MmFkYjVjNWUuMzcyZTllYjEwNzc1MzVlNAogICAgIDRiYjVhZmY0MzJiMzQ2YWYuMWVjY2NmMTBmOGZjNjEwZS5kZjhhYmYxNGMzZjZhMjVmLmVhM2ZlZGI2NTM5MWMzODQKICAgICBmZGEwOWJlNzQ5NTRjYTg5LjE0NDNlMzU5ODFlMzUwNDAuNTYyOTEzNTA5ZTcyMTcxYi4yOGNiNjE2ZGVjOWMyMzY1Ci0gICAgY2Q5Zjc0YzJlYmEyMGZiMwotVkNNUFBTXzEyOF8weDQobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMjU2XzMobWVtKQogICBiZWZvcmUKICAgICBiNTg2YTRhMTZmYWQ0NDlhLjZjNWMzNDlhY2RlOTE3ZTIuMWZhNzE1ZjUzZjBhNjkzNS4xYjMzZDZkNjU4ZGNmNzNmCiAgICAgYmM0ZTZjZjY5MWNiN2U0NS5mMzM0NzY3NzU5ZmQ2YTYzLjFiYzVlMWQyNGU3ZDY4MTguOGJmMzA0MTA4Y2JmODA3NgpAQCAtMzM1NTUsMTEgKzMzNTU1LDExIEBACiAgIGFmdGVyCiAgICAgYjU4NmE0YTE2ZmFkNDQ5YS42YzVjMzQ5YWNkZTkxN2UyLjFmYTcxNWY1M2YwYTY5MzUuMWIzM2Q2ZDY1OGRjZjczZgogICAgIGJjNGU2Y2Y2OTFjYjdlNDUuZjMzNDc2Nzc1OWZkNmE2My4xYmM1ZTFkMjRlN2Q2ODE4LjhiZjMwNDEwOGNiZjgwNzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgYmVjMTQ4YWQ2ZjA3NzhlMC5lZDc1NWRlYzhhMWRmZWJiLmU0NjljNGRiY2I0OTBiMTYuMDBiNzk5NmNkN2E3ZWM2ZQogICAgIDk3YWNiNGIzMjU2ZWVmOTguYjg2YmU2NjNmYmQ0MTE5NC41NjVmMzhmYmQxNzkwYzVhLmQ3Yzk5MjU0ZDUyMTc4ZDAKLSAgICA2Yzc2ZWEzNjIwYjg2MDRhCisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WQ01QUFNfMjU2XzB4NChyZWcpCitWVEVTVFBTXzI1Nl8zKHJlZykKICAgYmVmb3JlCiAgICAgMWIwYTlkN2Q1N2Y4ZGY4OC4yM2RjMmRmMmNlMGI5Zjk5LmFlNjMwYzRhNDhhZWRkOWEuNGQ3M2JiMjA3ZDE5MjgxMQogICAgIDQwZDFhNzk1MTM2ZTMyMzYuM2UxYTJlNTg4NmVhNDMwZi4yZGE2Y2IwYzBlMzg5ZTdhLmE1NzBjOTM1ZWEzNTFiNjcKQEAgLTMzNTY3LDEyICszMzU2NywxMiBAQAogICAgIDVjMjdiMWU4OTAyYTQzOGYuOTFmOGI4NDU5NmEwNWIwNy4zMjQ1MDVkMTc0ODlmMzc3LmU4NTk3MmUwNzkxNDc0OWQKICAgICA4YWRjMDY0ZGQzZWQ1M2Q3CiAgIGFmdGVyCi0gICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIDFiMGE5ZDdkNTdmOGRmODguMjNkYzJkZjJjZTBiOWY5OS5hZTYzMGM0YTQ4YWVkZDlhLjRkNzNiYjIwN2QxOTI4MTEKICAgICA0MGQxYTc5NTEzNmUzMjM2LjNlMWEyZTU4ODZlYTQzMGYuMmRhNmNiMGMwZTM4OWU3YS5hNTcwYzkzNWVhMzUxYjY3CiAgICAgMzcxNjA0ZWFmM2E1OTVmZS5jNDM1MzNjZjZhMTg5OTI1LjhmODMyMDE1ZTlmZDkyZTAuM2EyNGRjMjYzNWRhYTA4NwogICAgIDVjMjdiMWU4OTAyYTQzOGYuOTFmOGI4NDU5NmEwNWIwNy4zMjQ1MDVkMTc0ODlmMzc3LmU4NTk3MmUwNzkxNDc0OWQKLSAgICA4YWRjMDY0ZGQzZWQ1M2Q3Ci1WQ01QUFNfMjU2XzB4NChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlRFU1RQU18yNTZfMyhtZW0pCiAgIGJlZm9yZQogICAgIGZlNzkxNDVhNWU3M2Y5NWYuMGI0ZWE5ZmI4ODg3N2E5My44MDJlM2FhNTI1OGU0NWUyLjcwMzc3OGFjNGI2OWZlZWMKICAgICAxZmZjMThmNDM3YjIyMTYxLmEwZDhlODkwNzc0Yjc0YjcuNmZhNTMzZGIzM2VmMTVlMi5hN2E2NzQxMjBiMjhlZWVhCkBAIC0zMzU4MiwxMSArMzM1ODIsMTEgQEAKICAgYWZ0ZXIKICAgICBmZTc5MTQ1YTVlNzNmOTVmLjBiNGVhOWZiODg4NzdhOTMuODAyZTNhYTUyNThlNDVlMi43MDM3NzhhYzRiNjlmZWVjCiAgICAgMWZmYzE4ZjQzN2IyMjE2MS5hMGQ4ZTg5MDc3NGI3NGI3LjZmYTUzM2RiMzNlZjE1ZTIuYTdhNjc0MTIwYjI4ZWVlYQotICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICBjOTMwOGUwNTc5YjQ4ODBhLjc3MTE2YjExZjhmZjZkYTYuMzkyNzIxZDNkZGNlODUzMi4zMWRlZjU3MDRmNTIwMTFlCiAgICAgZDdlM2YzN2I0MDg4ZWE4Ni5lYjQ1MmNlYmE4MzFhMzBkLmJhODE3Zjc5M2UzNzUyZmYuNmIyYmY4MzBiNDczNzEzNAotICAgIGIyZDk3N2MwZDYxODdhZDcKKyAgICAwMDAwMDAwMDAwMDAwMDAxCiAKLVZDTVBQU18yNTZfMHg0KHJlZykKK1ZURVNUUFNfMjU2XzMocmVnKQogICBiZWZvcmUKICAgICA2MDM0NzA4YTRmY2Q1YWI0LjI3ZGZjMjQxYTkzNzAyMDAuNWFjMDI5OGIyMjZjNTA5OC5jZDdmY2FiOTczMzczNzc1CiAgICAgZDI4N2RlZmNiZDFkNGI3Ny45NGYxNzc0MmQwY2Y4ZGE1LjFmY2Q1ZDVjMDIzY2IwZjIuNTBlYzdjN2Y5N2Q5ZjFiZgpAQCAtMzM1OTQsMTIgKzMzNTk0LDEyIEBACiAgICAgNzM0ODBhODVlN2JlNTM1Yy4zNDg3ODRhYWM1ZTdlYjFmLjFhZDE1YjQwNjZjZTdkYzUuMTI0NzBhNGUxZTM0ZDQ4MQogICAgIDBhY2NkZDJmYjkwNTc1NTEKICAgYWZ0ZXIKLSAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgNjAzNDcwOGE0ZmNkNWFiNC4yN2RmYzI0MWE5MzcwMjAwLjVhYzAyOThiMjI2YzUwOTguY2Q3ZmNhYjk3MzM3Mzc3NQogICAgIGQyODdkZWZjYmQxZDRiNzcuOTRmMTc3NDJkMGNmOGRhNS4xZmNkNWQ1YzAyM2NiMGYyLjUwZWM3YzdmOTdkOWYxYmYKICAgICA2NTFmYmU4MWJjOTQ4YWNiLmY5ZTU4ZjZjZDA1YjQ3YTEuOTZiYWM0YzllNTJlMDFjOC4xZTk2MTNiOGM3MjkzYzBhCiAgICAgNzM0ODBhODVlN2JlNTM1Yy4zNDg3ODRhYWM1ZTdlYjFmLjFhZDE1YjQwNjZjZTdkYzUuMTI0NzBhNGUxZTM0ZDQ4MQotICAgIDBhY2NkZDJmYjkwNTc1NTEKLVZDTVBQU18yNTZfMHg0KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwCitWVEVTVFBTXzI1Nl8zKG1lbSkKICAgYmVmb3JlCiAgICAgZTBmMjA5NDViM2E5ZGFhNS41OTRlYzA3NGRiMjhlMWQ4LjFmYTJkNGU4Y2M4MDM3NGMuMDk1ZjFjMmMyMmE2NjE5NgogICAgIDcyODIwODdlMjgyYWMwYWEuNzM3ZGRiYmEzMzVkNzFlOC45ODA0ZmExMzAwMzFlNTUzLmJlYjAwNWY5YjU0NGU5ZTYKQEAgLTMzNjA5LDExICszMzYwOSwxMSBAQAogICBhZnRlcgogICAgIGUwZjIwOTQ1YjNhOWRhYTUuNTk0ZWMwNzRkYjI4ZTFkOC4xZmEyZDRlOGNjODAzNzRjLjA5NWYxYzJjMjJhNjYxOTYKICAgICA3MjgyMDg3ZTI4MmFjMGFhLjczN2RkYmJhMzM1ZDcxZTguOTgwNGZhMTMwMDMxZTU1My5iZWIwMDVmOWI1NDRlOWU2Ci0gICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgorICAgIDlhNGI1OGM1MzU5NmUyOGMuMWQyMTU3YzM4Y2U5M2YzYi43OTc3NzMxNTdlMDZiMTYxLjk0MTAxMTE0YmEzMzUwNjMKICAgICAzNjE4NzQwNmY2ZjlmZDc2LmIzODUzMWZjODE1OTg2N2IuYTBjOGI5ZGI2MTBjNTlhMS5lOWNhM2RlN2NkMDBkM2I2Ci0gICAgMTcyYzgzZGY4YjM2YWU4ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAKIAotVkNNUFBTXzI1Nl8weDQocmVnKQorVlRFU1RQU18yNTZfMyhyZWcpCiAgIGJlZm9yZQogICAgIDdjODBlMTY5OGY2MTFkOTQuMjBiNGQ5MmQ4NjVlY2Q5NS45MWY3NjNjZmFlMzg4MzU0LmU3YzM0YTUyYzY0ZTk3NDAKICAgICA3MjEzNTJlZjc2MGU1Yjc3LjM1ZWQwMTI2MDFkMTBlMTUuMTNjMWViYTliMDEyNzI3NC4yYjM0YTE2NGM4ZDkyODZhCkBAIC0zMzYyMSwxMiArMzM2MjEsMTIgQEAKICAgICA4NTI2NWRhMzVhMWIzNzdmLjUxNjE4ZjNmMmIxMmQyZTUuNzM5MGViMjRhMWU5MTUzMy4xYmE3OTEwZTE1ZjczMjBkCiAgICAgN2U0MjIzN2Q5OGEyMjNkZgogICBhZnRlcgotICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKKyAgICA3YzgwZTE2OThmNjExZDk0LjIwYjRkOTJkODY1ZWNkOTUuOTFmNzYzY2ZhZTM4ODM1NC5lN2MzNGE1MmM2NGU5NzQwCiAgICAgNzIxMzUyZWY3NjBlNWI3Ny4zNWVkMDEyNjAxZDEwZTE1LjEzYzFlYmE5YjAxMjcyNzQuMmIzNGExNjRjOGQ5Mjg2YQogICAgIDU3MzFkMmRmZGJjOGE1ZTEuNTI4ZDZhZGQ4NDVlN2MyMS45NTMwYzRmNzIzNzQ4Zjg0LjQ5ZTczYWZmODRiOGM4NGEKICAgICA4NTI2NWRhMzVhMWIzNzdmLjUxNjE4ZjNmMmIxMmQyZTUuNzM5MGViMjRhMWU5MTUzMy4xYmE3OTEwZTE1ZjczMjBkCi0gICAgN2U0MjIzN2Q5OGEyMjNkZgotVkNNUFBTXzI1Nl8weDQobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUFNfMjU2XzMobWVtKQogICBiZWZvcmUKICAgICA0ZjgyNmIzODI4YzY1N2ViLjVhM2VmMGE5OTA5MzRjZmMuMGYzNGVjMzYxMWY4Y2Q4Zi4wOTJkNWE5YmM5ZmU0MTJiCiAgICAgNjgzNGU1MmJlMjZlODk1ZC4zMGM0ODY1YzE5YmQyMjA1LjY4ZDRmZWFmNTIxZDI4NDguYjM1MjBmY2EzNTNlNGYxOApAQCAtMzM2MzYsMTEgKzMzNjM2LDExIEBACiAgIGFmdGVyCiAgICAgNGY4MjZiMzgyOGM2NTdlYi41YTNlZjBhOTkwOTM0Y2ZjLjBmMzRlYzM2MTFmOGNkOGYuMDkyZDVhOWJjOWZlNDEyYgogICAgIDY4MzRlNTJiZTI2ZTg5NWQuMzBjNDg2NWMxOWJkMjIwNS42OGQ0ZmVhZjUyMWQyODQ4LmIzNTIwZmNhMzUzZTRmMTgKLSAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCisgICAgYTYyNDBkNDJlMWE3NzY2Mi42NDA1MWIyODkwMjVmMjQ1LjM5MGMzZjk3MGI4Y2ExM2YuY2Q0ZDA1MWM4MTM1N2JhNwogICAgIGU1MWU1ZjY5NDE3Y2RhMjYuNTM0ZWFiNzk5MjU1ZmI2OS41Y2E3MmRkOTU3NTFmMjllLmIyNjgzOGZkNGE2ZjAwODQKLSAgICBjMGYwYTRkOTJiNzkxYjVhCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WUENNUEdUQl8xMjgocmVnKQorVlRFU1RQU18yNTZfMyhyZWcpCiAgIGJlZm9yZQogICAgIDUyMzE0NjFkYzFkZTA4ZDYuMDFlZDU4OGMxZmY5NzFkNS41N2U5MzNiYmJhZGI3NzFkLmFlNzI0MzYxNTM3OWQ3OTEKICAgICBjNDc3MTkzM2E3MmIwMmE0LmQ2NWY3Mzk4OTcyYmY2OWEuY2QyMmFkNWJhNDQzYTMwYy4wYjM5ZmQxYTFhMGUwZTQ2CkBAIC0zMzY0OCwxMiArMzM2NDgsMTIgQEAKICAgICBiNzQxNDI4OWQ1YWExMGU0LjFjNTdmZjE3YzJkYmJkMTguN2ZhMzZkNjAzMGU2ZmI0ZC41NmViNGZkNDdiYjU1ZGEwCiAgICAgZmM2ZGRlYWQ0Y2RlZWU5ZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDBmZjAwZmYwMGZmLjAwZmZmZmZmZmYwMDAwZmYKKyAgICA1MjMxNDYxZGMxZGUwOGQ2LjAxZWQ1ODhjMWZmOTcxZDUuNTdlOTMzYmJiYWRiNzcxZC5hZTcyNDM2MTUzNzlkNzkxCiAgICAgYzQ3NzE5MzNhNzJiMDJhNC5kNjVmNzM5ODk3MmJmNjlhLmNkMjJhZDViYTQ0M2EzMGMuMGIzOWZkMWExYTBlMGU0NgogICAgIDcxMGQxOTg4N2FlYjQ2NmYuNDEzZTJjNzdjMzFjMjZhMS4xMTQ3MTdjM2VkMTdiYmUzLjRmYzhkOGYyYzkxZjUxZTYKICAgICBiNzQxNDI4OWQ1YWExMGU0LjFjNTdmZjE3YzJkYmJkMTguN2ZhMzZkNjAzMGU2ZmI0ZC41NmViNGZkNDdiYjU1ZGEwCi0gICAgZmM2ZGRlYWQ0Y2RlZWU5ZQotVlBDTVBHVEJfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwCitWVEVTVFBTXzI1Nl8zKG1lbSkKICAgYmVmb3JlCiAgICAgMWQxYzAxNjc1OWE1YmYwYy5mMTVkOTFhMDU0ZjQ5Y2FlLjQ0NzY2OTYzYWU3MTc2MjguNzQ4MWE5OWYwYTM5OWVmNwogICAgIDk1YzIzNGVmYmUxNzhkMTguN2FhZTAwM2I5NDU2MjU3YS45NTY3ZTU0N2EzZWMwZjAwLjRhMmVjOWViMTY5ZWUxOGQKQEAgLTMzNjYzLDExICszMzY2MywxMSBAQAogICBhZnRlcgogICAgIDFkMWMwMTY3NTlhNWJmMGMuZjE1ZDkxYTA1NGY0OWNhZS40NDc2Njk2M2FlNzE3NjI4Ljc0ODFhOTlmMGEzOTllZjcKICAgICA5NWMyMzRlZmJlMTc4ZDE4LjdhYWUwMDNiOTQ1NjI1N2EuOTU2N2U1NDdhM2VjMGYwMC40YTJlYzllYjE2OWVlMThkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBmZmZmZmZmZjAwZmYwMAorICAgIDQwMmNmNDMyOTYzZjE0ZWIuYjA4MDhkYzUzMTVjZThmMy5lYWY2ZWZhZWJlNTc0MmNhLjVlZjZjN2FmZjFhMGZmYmEKICAgICBmYTI2YmMxYWZkMjkwZmI0LmVkMWYzM2FhYzY5MDIxYzcuMjFlZTAzODYxYWJmY2JiMi4wYzI1YTE1OTM3Y2IzNjJiCi0gICAgYjAwNzUzNTQ4MmFjYzA4YgorICAgIDAwMDAwMDAwMDAwMDAwMDAKIAotVlBDTVBHVEJfMTI4KHJlZykKK1ZURVNUUERfMTI4XzEocmVnKQogICBiZWZvcmUKICAgICBhNmU4ZDcwYzcwY2VkYTg3LjlmN2MwODk1MTBlMjNjOWQuOGZkN2VmNTZlZjgwMGI5Zi4xNTFkOWRiYmQ0MmY2OGU1CiAgICAgNGExMzJiZWQ5ZGJkYmZjYi4wYmY5NTQ4ZWViNzU1NWQyLmYwZjNiYjM1NDliN2UzMmEuYTI0ZDNhMzcwN2IzZDM4ZgpAQCAtMzM2NzUsMTIgKzMzNjc1LDEyIEBACiAgICAgMGM3YjMwZGIyMjM0ZGRkOS5hNzljZGRhOTY2NWEzZGQzLjYzOGI3ODNjZmYyYzRkMDMuZjdlMzZhYjc0YTI5MDVmNgogICAgIDc2ZTFmNTk0OTEzMjQ0MGMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBmZmZmZmYwMDAwMDBmZi4wMGZmMDBmZmZmMDBmZjAwCisgICAgYTZlOGQ3MGM3MGNlZGE4Ny45ZjdjMDg5NTEwZTIzYzlkLjhmZDdlZjU2ZWY4MDBiOWYuMTUxZDlkYmJkNDJmNjhlNQogICAgIDRhMTMyYmVkOWRiZGJmY2IuMGJmOTU0OGVlYjc1NTVkMi5mMGYzYmIzNTQ5YjdlMzJhLmEyNGQzYTM3MDdiM2QzOGYKICAgICBmOGQ2NGE2NGE0MDZhYzAyLjE5NmIxY2YwYTllZTE2ODAuNmVjMTk1YjM3MGMyZTUxMS5hNDRiNTVlN2QwNThjOWRjCiAgICAgMGM3YjMwZGIyMjM0ZGRkOS5hNzljZGRhOTY2NWEzZGQzLjYzOGI3ODNjZmYyYzRkMDMuZjdlMzZhYjc0YTI5MDVmNgotICAgIDc2ZTFmNTk0OTEzMjQ0MGMKLVZQQ01QR1RCXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMQorVlRFU1RQRF8xMjhfMShtZW0pCiAgIGJlZm9yZQogICAgIGZmMTA3MzY4YzI4MDQyNDguZTE0ZmQ5YmZiMmQ0OGVmYi45MDU5MTJhNDNmYzQ4NGY2LjJjOWU2MDNkOTI4MTU2YWEKICAgICA2ZDNlNWYyMWY5MWViYmQ3LmQ1OWQ0MjdkZjE3MWZhMTUuYjA2ZTM3Y2Q0ZjM4YTgxNi4yNjQ2NGEyMGM2NGUzZGIzCkBAIC0zMzY5MCwxMSArMzM2OTAsMTEgQEAKICAgYWZ0ZXIKICAgICBmZjEwNzM2OGMyODA0MjQ4LmUxNGZkOWJmYjJkNDhlZmIuOTA1OTEyYTQzZmM0ODRmNi4yYzllNjAzZDkyODE1NmFhCiAgICAgNmQzZTVmMjFmOTFlYmJkNy5kNTlkNDI3ZGYxNzFmYTE1LmIwNmUzN2NkNGYzOGE4MTYuMjY0NjRhMjBjNjRlM2RiMwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLjAwZmYwMDAwZmZmZjAwZmYKKyAgICA5YzM1MzVhYTUxMTk2YWU0LjQzYjM2NjdmN2E5NzVlZDMuZTJhN2M4MTFiM2MzNjQ1Zi5hYmNmMzA1MzM2MWUzZWM5CiAgICAgNjdjMjcxZWZlNjdiMGQ5Yy44N2RjNDEzM2U5ZDJmNmUwLjA0ZDA0MjVhODY3MDc1ZmMuMTg4NDEwNDA3ZjdkOTQ5OQotICAgIGNhYjNlNTU1M2NmODdjY2UKKyAgICAwMDAwMDAwMDAwMDAwMDAxCiAKLVZQQ01QR1RCXzEyOChyZWcpCitWVEVTVFBEXzEyOF8xKHJlZykKICAgYmVmb3JlCiAgICAgMWJhNmFjZmQwYTFhMzIxNS5hY2IxOGZkYmQ1NTI1ZDJiLmZjNjNjZjA0ZGJhZmZlZTkuZjFiNDIwOTVlNTRiOTcxYQogICAgIDY4YWE1ZmE0ODQ2ZmYyMWEuNDVjZTBjNWMzYWFhMTliYy4wMDk1MGM1ZWViYjliMTk5Ljg0MjFkZWFmZWI2MTg2ZTQKQEAgLTMzNzAyLDEyICszMzcwMiwxMiBAQAogICAgIDY2MTU3ZTlmZWRlNDdlMGMuZTdjMTEwY2JkMzBhYzA5Ni4yMTJhODU1ZGQ4ODYwYmEwLjEwYzFlYjJjNWU2Y2JhMmUKICAgICBjMThkMzE2ODAyNzk3NjA3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmMDBmZmZmZmYwMDAwMDAuMDBmZjAwZmZmZmZmMDBmZgorICAgIDFiYTZhY2ZkMGExYTMyMTUuYWNiMThmZGJkNTUyNWQyYi5mYzYzY2YwNGRiYWZmZWU5LmYxYjQyMDk1ZTU0Yjk3MWEKICAgICA2OGFhNWZhNDg0NmZmMjFhLjQ1Y2UwYzVjM2FhYTE5YmMuMDA5NTBjNWVlYmI5YjE5OS44NDIxZGVhZmViNjE4NmU0CiAgICAgMGQwYmZjYjY0Njg0Zjc4OC4xMGU0NjM1ZTMwOGRmYjdiLmVlYmVmNWFkYjY3ZDRjOWQuOWJlMWY4OTJiNWJkZmQ4NwogICAgIDY2MTU3ZTlmZWRlNDdlMGMuZTdjMTEwY2JkMzBhYzA5Ni4yMTJhODU1ZGQ4ODYwYmEwLjEwYzFlYjJjNWU2Y2JhMmUKLSAgICBjMThkMzE2ODAyNzk3NjA3Ci1WUENNUEdUQl8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUERfMTI4XzEobWVtKQogICBiZWZvcmUKICAgICA4ODExNDgzMmJmZjBmMDNiLmNmMTRlMWNiMTUxYmMzNTEuYTgyZjhmOTA0MDJhMjQzNy5mNzI1YjhkYWViNjAyOTUwCiAgICAgNDMxOGFiNzVhZWRkZTJmOC5hNDUzMjJhNjU5YjYwMTA0LjJkZmI1Yzk5OTJmYmUyOGEuY2JmYjhhOTA4ZTk4ZTM1NgpAQCAtMzM3MTcsMTEgKzMzNzE3LDExIEBACiAgIGFmdGVyCiAgICAgODgxMTQ4MzJiZmYwZjAzYi5jZjE0ZTFjYjE1MWJjMzUxLmE4MmY4ZjkwNDAyYTI0MzcuZjcyNWI4ZGFlYjYwMjk1MAogICAgIDQzMThhYjc1YWVkZGUyZjguYTQ1MzIyYTY1OWI2MDEwNC4yZGZiNWM5OTkyZmJlMjhhLmNiZmI4YTkwOGU5OGUzNTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmYwMGZmZmYwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMGZmCisgICAgY2M3MGQ3MWZlZDRkMDk2YS40MTIwM2I5ZDU2NDA3NmQxLjU0ZjFmNGQzZTY4OGI4YmMuZjhmN2Y4ZWI1YmI5NzU2MQogICAgIDAwZTM0NjFjOTg0YjIxYmQuMDJjNTJhMWFhNzQ2NWM2My5mN2RkZDIyOTU3ZGQ1ZmY5LmRjNjZmYzU4ZWU0ZjFiMWEKLSAgICBkMTk0OTQ0MWUzZTYxMDMwCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WUENNUEdUV18xMjgocmVnKQorVlRFU1RQRF8xMjhfMShyZWcpCiAgIGJlZm9yZQogICAgIDM1Y2RiYzE0ZDgwYjkxNGQuYmMzZTc2NTZjOWU0ZTYxYy40MzhmZWE4YmU4NTNlZjY3LmYzOGI3Mjg2MDIwNzk2NmMKICAgICA2MjVkNmUzYzY2NGFkYTFlLmRhNGRlMmJhOWYyMjEzYjQuNjBjYTc4NWFiNmYzNmQ4OC4yNWM2NTFkODAyMTExNzQyCkBAIC0zMzcyOSwxMiArMzM3MjksMTIgQEAKICAgICA4YmIxNjQzYWMzNDJiMjhhLmFmYjc1ZWIxYTRjMzk3M2QuOWVjMmVhYzc2NzFkMTRkNC45NjE3YjgwODczZjdlYWM1CiAgICAgOGVjNDM5YmUxYmVhYjRjYgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLjAwMDBmZmZmMDAwMGZmZmYKKyAgICAzNWNkYmMxNGQ4MGI5MTRkLmJjM2U3NjU2YzllNGU2MWMuNDM4ZmVhOGJlODUzZWY2Ny5mMzhiNzI4NjAyMDc5NjZjCiAgICAgNjI1ZDZlM2M2NjRhZGExZS5kYTRkZTJiYTlmMjIxM2I0LjYwY2E3ODVhYjZmMzZkODguMjVjNjUxZDgwMjExMTc0MgogICAgIGI1OTBhODI1MmIyZDI2NGUuMzdkYzA2MzUzNDE0NjViMC5iNWMxY2VmNWFjYjIxMDczLjY3NWNlOTBhNzQwODlmYTYKICAgICA4YmIxNjQzYWMzNDJiMjhhLmFmYjc1ZWIxYTRjMzk3M2QuOWVjMmVhYzc2NzFkMTRkNC45NjE3YjgwODczZjdlYWM1Ci0gICAgOGVjNDM5YmUxYmVhYjRjYgotVlBDTVBHVFdfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDQwCitWVEVTVFBEXzEyOF8xKG1lbSkKICAgYmVmb3JlCiAgICAgMmMyZmU4MTg4OWVkYjhlMy4zZTBlYTFlOWM5MTViYTdkLjFmYTk2NzFjMGMzZDY3ODYuNzcxN2M3M2M4MmJmYjc1NgogICAgIDRhMjQ0MjAyZDkwZGIzM2EuMmJmMTU4OWVkOTMwN2FkNC42MTdmOWM2MDg3OGQ4ZmI4LjljMGU2MWMwOWEyNTMzYTYKQEAgLTMzNzQ0LDExICszMzc0NCwxMSBAQAogICBhZnRlcgogICAgIDJjMmZlODE4ODllZGI4ZTMuM2UwZWExZTljOTE1YmE3ZC4xZmE5NjcxYzBjM2Q2Nzg2Ljc3MTdjNzNjODJiZmI3NTYKICAgICA0YTI0NDIwMmQ5MGRiMzNhLjJiZjE1ODllZDkzMDdhZDQuNjE3ZjljNjA4NzhkOGZiOC45YzBlNjFjMDlhMjUzM2E2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmYwMDAwMDAwMDAwMDAuMDAwMGZmZmZmZmZmZmZmZgorICAgIGM1NmVjMTY5MjY1NjYwZmIuYWZhNzg2YzM5MDIxMmQzYi41MjA2Nzk2YjMyYzBjYmZmLjY5ZjFiNGJmNGFkOWM1NmYKICAgICA3OWRiZTMzNzhjZDI3ZDUzLjI0N2MyOGM1OGE3NDEwNWQuY2UwODdhMjgyOGUxZDk4Ni4zOTBkYmRhNTJmNmFhOTVlCi0gICAgNmFhZDc3ZGZlNDYxMWExZQorICAgIDAwMDAwMDAwMDAwMDAwNDEKIAotVlBDTVBHVFdfMTI4KHJlZykKK1ZURVNUUERfMTI4XzIocmVnKQogICBiZWZvcmUKICAgICA1NzFmZGVkNzA2NGM1NTVkLjQyMzUyMzVhMjg4ZmM0NmUuZTdiYjM5MTA2MmIzNWZlNy5iMTUyMWM4Mzg2ZmM3MzdhCiAgICAgNWJhZWVlZmIzMGI2OTZjNC5mYzQ5ZmViYzE1OThmMTc3LjU0YjJiNTExYjQ2YzU1ODQuZDdhZmRhNjg2NzFkNTYwNgpAQCAtMzM3NTYsMTIgKzMzNzU2LDEyIEBACiAgICAgMWQ1MWZhNzMwZTM5MTljMC5iM2NmNzFmMjU1YzBmMTA1LjljZjRkZmUxMzg3YjI5YWEuNWNkNjlhODAyNGE0ZTY5OQogICAgIDczMzc5NDhjMzcyMDBiZjcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmYwMDAwZmZmZi4wMDAwMDAwMGZmZmZmZmZmCi0gICAgNWJhZWVlZmIzMGI2OTZjNC5mYzQ5ZmViYzE1OThmMTc3LjU0YjJiNTExYjQ2YzU1ODQuZDdhZmRhNjg2NzFkNTYwNgorICAgIDU3MWZkZWQ3MDY0YzU1NWQuNDIzNTIzNWEyODhmYzQ2ZS5lN2JiMzkxMDYyYjM1ZmU3LmIxNTIxYzgzODZmYzczN2EKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzdhYjk5MzIxZDJiMzBlMS4xY2VkMmZjM2U3NTEzZTU3CiAgICAgZDRhNWE0YjVmZjJjMTkwMi44M2UzZWU0YjcwZmFjMjliLmM3YWI5OTMyMWQyYjMwZTEuMWNlZDJmYzNlNzUxM2U1NwogICAgIDFkNTFmYTczMGUzOTE5YzAuYjNjZjcxZjI1NWMwZjEwNS45Y2Y0ZGZlMTM4N2IyOWFhLjVjZDY5YTgwMjRhNGU2OTkKLSAgICA3MzM3OTQ4YzM3MjAwYmY3Ci1WUENNUEdUV18xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZURVNUUERfMTI4XzIobWVtKQogICBiZWZvcmUKICAgICAzZGRkOWJkMTNlZDM2OTllLjkxZmVlZWEwZjk2OWQzYWQuNjhkOTAyOWRkZWY2M2JlMi4zMGQ3ODU4OWEyZTg3ZjhhCiAgICAgOTY5MjI5M2Q1NWM4YmJiOS44ZWY4N2JhODVkNDk4MzczLjdlY2MxZDM4MmFhOTVjNWUuZGRhMTg2OTZmNmZlNmMyZQpAQCAtMzM3NzAsMTIgKzMzNzcwLDEyIEBACiAgICAgMTg1Zjg0NTM4YWIxMWI2NwogICBhZnRlcgogICAgIDNkZGQ5YmQxM2VkMzY5OWUuOTFmZWVlYTBmOTY5ZDNhZC42OGQ5MDI5ZGRlZjYzYmUyLjMwZDc4NTg5YTJlODdmOGEKLSAgICA5NjkyMjkzZDU1YzhiYmI5LjhlZjg3YmE4NWQ0OTgzNzMuN2VjYzFkMzgyYWE5NWM1ZS5kZGExODY5NmY2ZmU2YzJlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuMDAwMGZmZmZmZmZmMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NzI2ZmQ2MjIxMDljNDFkLmNmMjg3YTc2NWQxNzgwNzUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNjU1YmQwMzYyMGFhMmZmZC44ZjAyNTFmOWZmNDZiMzNjLjNkYTFlMmVlNzViMzExZTEuZjUxOThhOGZjZTU3ZmU3MAotICAgIDE4NWY4NDUzOGFiMTFiNjcKKyAgICAwMDAwMDAwMDAwMDAwMDQxCiAKLVZQQ01QR1RXXzEyOChyZWcpCitWVEVTVFBEXzEyOF8yKHJlZykKICAgYmVmb3JlCiAgICAgYzRiZGNhMmNhMGU1YmZkMS45MjA3ZGY5YzBkYWVjNzdmLjRiYWI5MjFhNzQ3YmFjOTcuOWQxYTg0ZTFhYzIzMWU0MAogICAgIDU3N2Q1Nzg2YWQ3ZTI3NWIuYmZmNDY3ZDg3OTI1NDUyNC5mZmQwNWNjNmQyOTA4YjdiLmNmYWRhMDc0MTUzZmYyZWUKQEAgLTMzNzgzLDEyICszMzc4MywxMiBAQAogICAgIDlmNTYzNzZlMTkxMTMyN2QuODZiY2NmODI0MDk5ZGU4ZS5jMGMxN2M3MGI3ODhlOTkxLjE2NTAzNzJiZWNhY2RkZTYKICAgICBlMmY5YWEyNzkyMTU2ZDg4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDBmZmZmZmZmZjAwMDAuZmZmZjAwMDBmZmZmMDAwMAotICAgIDU3N2Q1Nzg2YWQ3ZTI3NWIuYmZmNDY3ZDg3OTI1NDUyNC5mZmQwNWNjNmQyOTA4YjdiLmNmYWRhMDc0MTUzZmYyZWUKKyAgICBjNGJkY2EyY2EwZTViZmQxLjkyMDdkZjljMGRhZWM3N2YuNGJhYjkyMWE3NDdiYWM5Ny45ZDFhODRlMWFjMjMxZTQwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA4YmVhYjZhYjQxMThiOTUuYWUyNmIzOTRjYzEzNDgxNwogICAgIDJjZWMyOGNlNGMwOThmYjAuYzdlY2UzZDY4MTFhNjMxYi4wOGJlYWI2YWI0MTE4Yjk1LmFlMjZiMzk0Y2MxMzQ4MTcKICAgICA5ZjU2Mzc2ZTE5MTEzMjdkLjg2YmNjZjgyNDA5OWRlOGUuYzBjMTdjNzBiNzg4ZTk5MS4xNjUwMzcyYmVjYWNkZGU2Ci0gICAgZTJmOWFhMjc5MjE1NmQ4OAotVlBDTVBHVFdfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWVEVTVFBEXzEyOF8yKG1lbSkKICAgYmVmb3JlCiAgICAgZjBlYjg3NzNkOTVhYjMyOC4wYzA2ODJkNGIxMjI0ZDZlLmQ3MzBhN2M4ZDNhZjcxYTkuODQyNGNhNDY3NjgzZTExYQogICAgIDFiZjM0YWZiZGQ4ODZjZjMuY2Y0YTA0NmFiMGM4MWMyZS45ODEzZTg5NDU1NjdkOTk5LmIxMzU5MDU2OGU4ZWFlZGQKQEAgLTMzNzk3LDEyICszMzc5NywxMiBAQAogICAgIDNkNmM5NDIzMDA4MTcxMzcKICAgYWZ0ZXIKICAgICBmMGViODc3M2Q5NWFiMzI4LjBjMDY4MmQ0YjEyMjRkNmUuZDczMGE3YzhkM2FmNzFhOS44NDI0Y2E0Njc2ODNlMTFhCi0gICAgMWJmMzRhZmJkZDg4NmNmMy5jZjRhMDQ2YWIwYzgxYzJlLjk4MTNlODk0NTU2N2Q5OTkuYjEzNTkwNTY4ZThlYWVkZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwZmZmZmZmZmYwMDAwLmZmZmYwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjhjZjU4MzcyYzUwOGU1Ni43YmRiMzViOTg5N2MxZWU1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIDM3NzU3MzZmOGVjYzI2YjguYzZiYTllZGI1MDA1YzVjZC5kNjVhOTI2Zjk4ZWUxOGE3LmIxOGQ3YWQ5MzcwMGJhYzAKLSAgICAzZDZjOTQyMzAwODE3MTM3CisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WUE1BRERXRF8xMjgocmVnKQorVlRFU1RQRF8xMjhfMihyZWcpCiAgIGJlZm9yZQogICAgIGExMjgxODU4OTI0MGVkOTguZTA4NmQxMzM3M2ZiYTAwYi5iMzdlYWQ4ZDJhYjQxNzA0LjBjNTZmMzU2OTFkNTY2MWQKICAgICAzYTBkMDFlNDg4Y2I2YjhmLjE3ZGUwNWUzODY0MjdjMzguNjUwNGU0MjBkYjI4MGNiYS4yMGYxYWM3M2U5OGY3YTE4CkBAIC0zMzgxMCwxMiArMzM4MTAsMTIgQEAKICAgICA3NjgxZjNiMTExNzQ1ZGVlLjliOGVlMGI4YTM0OTRjZDMuOGM4YmI4OTkyZjkwZDM1Ni41NjM2MThmZTI4YTlkZTRhCiAgICAgMzA3OWMyNDU0NjIxYTdkYgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMDVmNmM2OGZlZDY2ZTFhLmVhZTkyMmZiMGM2YzYwMTEKLSAgICAzYTBkMDFlNDg4Y2I2YjhmLjE3ZGUwNWUzODY0MjdjMzguNjUwNGU0MjBkYjI4MGNiYS4yMGYxYWM3M2U5OGY3YTE4CisgICAgYTEyODE4NTg5MjQwZWQ5OC5lMDg2ZDEzMzczZmJhMDBiLmIzN2VhZDhkMmFiNDE3MDQuMGM1NmYzNTY5MWQ1NjYxZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zYTlhM2UwMGZkZWRlMjlkLmYwZjgzYWIxYmQyNzBkYzMKICAgICA2MjY2NGIzMzdlYWUyN2M4LmI2NDc4YjZiZTJhZTc2NmMuM2E5YTNlMDBmZGVkZTI5ZC5mMGY4M2FiMWJkMjcwZGMzCiAgICAgNzY4MWYzYjExMTc0NWRlZS45YjhlZTBiOGEzNDk0Y2QzLjhjOGJiODk5MmY5MGQzNTYuNTYzNjE4ZmUyOGE5ZGU0YQotICAgIDMwNzljMjQ1NDYyMWE3ZGIKLVZQTUFERFdEXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMQorVlRFU1RQRF8xMjhfMihtZW0pCiAgIGJlZm9yZQogICAgIDU4OGJiNDcyMzQ5YzI1YTAuZDJhOGY0Y2JkZGE5NDhhZC5hMDdmN2ViNGU2MjJiODk4LmI5MjI0YzU4MGE5YjFjOTQKICAgICBhYjNhNmI3MTBlMjUxNGM1LmQyMjg0OWViN2RkOTI1YjIuYTNlNmUzNGRjNjQyNzdlNy4xY2FkZjhhNzJkOWRmODAwCkBAIC0zMzgyNCwxMiArMzM4MjQsMTIgQEAKICAgICAxZmY0NWYzNDUyZDk1YzFkCiAgIGFmdGVyCiAgICAgNTg4YmI0NzIzNDljMjVhMC5kMmE4ZjRjYmRkYTk0OGFkLmEwN2Y3ZWI0ZTYyMmI4OTguYjkyMjRjNTgwYTliMWM5NAotICAgIGFiM2E2YjcxMGUyNTE0YzUuZDIyODQ5ZWI3ZGQ5MjViMi5hM2U2ZTM0ZGM2NDI3N2U3LjFjYWRmOGE3MmQ5ZGY4MDAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTQyN2M3M2VlNDYzZDllYy5mNWRlZTE2MjAwZmYyMDBmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVmODA4MTRiMTlkZDQ3NjcuNDZkZGIzYTdmNTY0ZTM2YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICA0MzlhMTU5NmYzOTMzNGUyLjJlNjNlNWYxYWE1Y2E0M2UuMGU0NWYwMDJjZjhjZGRkNy5mMmNhODVhOWI1YWY1ZDE5Ci0gICAgMWZmNDVmMzQ1MmQ5NWMxZAorICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVlBNQUREV0RfMTI4KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICBmMTQyM2YwMGE2MjdlMDAwLjNmZTMwMDkzMzc4ZmRkMzEuNDJiNjIyYWY3MGM3YmUxYy4zMGQ2OTBmNzJmY2VmY2NlCiAgICAgYzZmZjIzNzk0ZDI3MjM2Zi5kN2Y5OWYxM2Q2YzllNjkxLjY5OTJhNTI0N2E1Y2JhZWYuYmUwY2U1Mzg5ZDg3NWUwMApAQCAtMzM4MzcsMTIgKzMzODM3LDEyIEBACiAgICAgZTRmNGU0MjIwMTZiZDk5Zi40NmI4ZWI0ODk3MjkwYzMyLjY1MTM2YWUzY2IzYTQ3MjcuOTE5YWE0NGUxMjk0ZDljNAogICAgIDhlOGEwNGZiNTBmZjZiYWUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGFmZGQ0MTQzYzI1YjkxOC4wZmU4ZjAyOGQzNGNmNzZhCisgICAgZjE0MjNmMDBhNjI3ZTAwMC4zZmUzMDA5MzM3OGZkZDMxLjQyYjYyMmFmNzBjN2JlMWMuMzBkNjkwZjcyZmNlZmNjZQogICAgIGM2ZmYyMzc5NGQyNzIzNmYuZDdmOTlmMTNkNmM5ZTY5MS42OTkyYTUyNDdhNWNiYWVmLmJlMGNlNTM4OWQ4NzVlMDAKICAgICBmODc2MDYwYmUyNjU2MjE1LmU1YTc2ZjAwZWQ0ZTBkMmQuMDE0MjY5YmM2NGE5ZDM2NC45NWI0NmRiMTM1YzZiZTk5CiAgICAgZTRmNGU0MjIwMTZiZDk5Zi40NmI4ZWI0ODk3MjkwYzMyLjY1MTM2YWUzY2IzYTQ3MjcuOTE5YWE0NGUxMjk0ZDljNAotICAgIDhlOGEwNGZiNTBmZjZiYWUKLVZQTUFERFdEXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMQorVlRFU1RQRF8xMjhfMyhtZW0pCiAgIGJlZm9yZQogICAgIDY4NGYwYmE1MGMxMjMwODIuZTZjNWJhMmE0N2M3YzNiOS5kNmY5OGZkNmYxNjc5ZmNjLmYxNTFhNTA1NGE5YTRmZTMKICAgICBmY2I3MzQzNjYyZGFlMzZkLjViMzU4MzhmNTAwNTVkMGUuNzEzNmQ3OTYxNjEzODQyNi4wMTQ4MTQ4ZTdlNTUyYTQ1CkBAIC0zMzg1MiwxMSArMzM4NTIsMTEgQEAKICAgYWZ0ZXIKICAgICA2ODRmMGJhNTBjMTIzMDgyLmU2YzViYTJhNDdjN2MzYjkuZDZmOThmZDZmMTY3OWZjYy5mMTUxYTUwNTRhOWE0ZmUzCiAgICAgZmNiNzM0MzY2MmRhZTM2ZC41YjM1ODM4ZjUwMDU1ZDBlLjcxMzZkNzk2MTYxMzg0MjYuMDE0ODE0OGU3ZTU1MmE0NQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZjkwNDJlYTJkNDhhY2VkLmY4OWYxYzhlMzIwMTU3NTEKKyAgICAyNDhjZmI5YzZkNjI0MTliLjlkOTAzYmJlYjdhZmUzNGIuZjMzYjQwNzQyMzM5NzU2ZC5mMDQ0YjVlYjAyZjgxM2Y5CiAgICAgYmQ5YmRjYzE0OWI2MDYzNy4wOTIxZGUyMTE4NTM5MDFiLjM4ZDQ0NDVjMzNlNjJmY2MuMWM5MTgzODY3MjBkNDVhYQotICAgIGUwN2E3YWNkNmMyM2ZjMDUKKyAgICAwMDAwMDAwMDAwMDAwMDQwCiAKLVZQTUFERFdEXzEyOChyZWcpCitWVEVTVFBEXzEyOF8zKHJlZykKICAgYmVmb3JlCiAgICAgOTc0ZDk3MmE4OWMzNzZiNS5hM2IwNTQ5MzEzZTNlZDZlLmZiMzY2ODI2MTA3ZGExMmIuMWNjYzYxM2E2MzI0NmU3MAogICAgIDlmNTRkNTBiNjc3YmVkNjcuYjI5N2RkZmRlNmY0YjQ2Yi5jZjE5ZDYzNzNhYjc1MjI3LjdiZjExM2ZhY2UwMmVkODUKQEAgLTMzODY0LDEyICszMzg2NCwxMiBAQAogICAgIDBlMzFhNDA2ZDU2MWM1N2YuYmEwYTE4NDkxOWYyY2M2YS44ZDdjNGIzMjk2OTE4MzkxLjFhZWQyMmQxYzZjNzllYjAKICAgICAxMjVkNzdiZjhjYzg0NzFlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMTE2ZWVkMDE3ODI1NDYuMTQ1YjExMGQwZTJjMDYyMAorICAgIDk3NGQ5NzJhODljMzc2YjUuYTNiMDU0OTMxM2UzZWQ2ZS5mYjM2NjgyNjEwN2RhMTJiLjFjY2M2MTNhNjMyNDZlNzAKICAgICA5ZjU0ZDUwYjY3N2JlZDY3LmIyOTdkZGZkZTZmNGI0NmIuY2YxOWQ2MzczYWI3NTIyNy43YmYxMTNmYWNlMDJlZDg1CiAgICAgNTJkYzJmZGJhMmQ2OWVjNi5jNjFjZjVlYmRmZjUxNTViLmUxMTcyM2MyMzM5MGRmYmEuMzEwZGQ0ODg5MDg5NjkzNgogICAgIDBlMzFhNDA2ZDU2MWM1N2YuYmEwYTE4NDkxOWYyY2M2YS44ZDdjNGIzMjk2OTE4MzkxLjFhZWQyMmQxYzZjNzllYjAKLSAgICAxMjVkNzdiZjhjYzg0NzFlCi1WUE1BRERXRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBmNTI5NTE0MGZkOTYyMmFkLjJkOWUyZGY3OWNhNzlkM2UuNmMyZmMwMDNiMWY4OTdjMy4yZjk0NGFmMzAwNDg3YjU3CiAgICAgOWYxYzJjM2YzNTNmZTk4OS4wZDcxYzgxZDk0MzQ2NGFlLmI3NTU2YjA1YzIxMzMwOTMuMjNhYTFjNzEwYzQwMDNiOQpAQCAtMzM4NzksMTEgKzMzODc5LDExIEBACiAgIGFmdGVyCiAgICAgZjUyOTUxNDBmZDk2MjJhZC4yZDllMmRmNzljYTc5ZDNlLjZjMmZjMDAzYjFmODk3YzMuMmY5NDRhZjMwMDQ4N2I1NwogICAgIDlmMWMyYzNmMzUzZmU5ODkuMGQ3MWM4MWQ5NDM0NjRhZS5iNzU1NmIwNWMyMTMzMDkzLjIzYWExYzcxMGM0MDAzYjkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzY4YTg1YWFmZjE4ZGE2MS4wZWY0N2Q4YjAxY2U5OGRmCisgICAgZWMwNDgyYTg1MWNmNThkZC4wOGY0NmZlMTU5OTU1MzdjLjc3NDk5NDNiNjk0ZDU0MDUuYzUwY2JlMTg1NzA1NTc2MwogICAgIGI3YWJkMTY2NmM1MDJkZDYuN2M3NTIwYjA4NTU1YTk1NC44OGQ3Yjc5MWMxYjRiZTQ2LjcxMDQyYjU0N2MyNGIyMDAKLSAgICA4M2RmNWY5MjE4Mjg1MTNkCisgICAgMDAwMDAwMDAwMDAwMDA0MQogCi1WQUREU1VCUFNfMTI4KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICA1N2U5NTYzY2M2OWU2ZmM1LmRlZGU5NDY3YTNkMDIyOWYuYzMzZWQ3ZjZiNzAwYTBlMS5jNmNiNTBmNGU3NTQyYjgxCiAgICAgNDk2ZTBkYmYyMjExNGE0NS4zYzY5NDc5NzEyNWJmNDY1LjNhOWM4ZTIwODkyMzc1ZDAuMGNmMGRjNGVmNjM3NTdlNApAQCAtMzM4OTEsMTIgKzMzODkxLDEyIEBACiAgICAgZjYxOGE4MDI1NzFlMjJkYy4wY2I3NmUyZjA1YmUxZDk2LjI5NDZmMWNjN2VmZWE5ODIuMjUwMWI5OWM0MGZjZGJjYwogICAgIGFlODQwMzY3YjRmNWFjYWEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2VkYWUwMjYxNzQ5NjRjYy4zODE0ZDU4ZGY2Mzc1N2U0CisgICAgNTdlOTU2M2NjNjllNmZjNS5kZWRlOTQ2N2EzZDAyMjlmLmMzM2VkN2Y2YjcwMGEwZTEuYzZjYjUwZjRlNzU0MmI4MQogICAgIDQ5NmUwZGJmMjIxMTRhNDUuM2M2OTQ3OTcxMjViZjQ2NS4zYTljOGUyMDg5MjM3NWQwLjBjZjBkYzRlZjYzNzU3ZTQKICAgICBiNWJhN2Y4OGM5MGQxYzY5LmFjMTg2NmUwZDNmYjVlNTMuM2VkYTQzOTg5NzQ5NjRjYy4zODE0ZDU4ZDBhNmJmZTk4CiAgICAgZjYxOGE4MDI1NzFlMjJkYy4wY2I3NmUyZjA1YmUxZDk2LjI5NDZmMWNjN2VmZWE5ODIuMjUwMWI5OWM0MGZjZGJjYwotICAgIGFlODQwMzY3YjRmNWFjYWEKLVZBRERTVUJQU18xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDEKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBiMTY5MzBkYTgxNjIyYTVlLjZhZDY4NDk4NjdkMTk3NGIuMzcxMWRhNzBjMWIwZWQ1YS41ODJhOTQyN2Q5Y2Y3ZjlkCiAgICAgMDg3Y2JhZTFjMzRmMTQxNS42YzNlMGZiODk1YjFiOTYxLjA4ZjQyNjkwMjVkYzhhY2EuMjdkNDI4MTU0NDQ3MjNjYQpAQCAtMzM5MDYsMTEgKzMzOTA2LDExIEBACiAgIGFmdGVyCiAgICAgYjE2OTMwZGE4MTYyMmE1ZS42YWQ2ODQ5ODY3ZDE5NzRiLjM3MTFkYTcwYzFiMGVkNWEuNTgyYTk0MjdkOWNmN2Y5ZAogICAgIDA4N2NiYWUxYzM0ZjE0MTUuNmMzZTBmYjg5NWIxYjk2MS4wOGY0MjY5MDI1ZGM4YWNhLjI3ZDQyODE1NDQ0NzIzY2EKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzcxMWRhNzA0MWIwZWQ1YS41ODJhOTQyNzU5Y2Y3ZjlkCisgICAgOTE4ODFmNjg5N2M5MjRmYi41NzlkNDZjZDdlNGJjMWNiLjVkMmFjZTc5NGQ0ZWFmMTMuZjM4ZWFhMDE1ZGYyZDBiNQogICAgIDI2NWJkYTViMThkYjE3M2IuODkzZjI0NDNiZDJhZWUzNC4xMDgwNGUxOTU0MTIxYTYxLjE2YTUxNDU5YmQ1ZGM0MDkKLSAgICBlZDY1NjQ4OTAyMTMzOTczCisgICAgMDAwMDAwMDAwMDAwMDA0MQogCi1WQUREU1VCUFNfMTI4KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICBkNDE5OTZmYmM4YTA2YjllLmE1YmY2OGE2NjM5MWE5MDIuNWQ3MGE1ODdlZmRhN2I0OS5mZmMyMjM1YjU3MzU4NGRmCiAgICAgMjcwZmE0MWNhYTkxOTgzNy5lODgxNDMzNjkzZjg5NTdiLjJlN2JjNTAzYjBlN2EzYjYuMDRiY2M4MmI3MWMyYWNiYQpAQCAtMzM5MTgsMTIgKzMzOTE4LDEyIEBACiAgICAgODFlYzQ5MWMzM2NkY2U2Mi4yZTRmZDVkMTE0MDc2ZTM2LjNiNTNkNDU3NGM0YmI2NDYuYzQwNzcyMjU1YjRiMjEzNQogICAgIDM2ZjA3MDI3NjQ1ZmU3MmQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWFhZTgxMjRiMGU3YTNiNi5mZDM5Yjk3NTcxYzJhY2JhCisgICAgZDQxOTk2ZmJjOGEwNmI5ZS5hNWJmNjhhNjYzOTFhOTAyLjVkNzBhNTg3ZWZkYTdiNDkuZmZjMjIzNWI1NzM1ODRkZgogICAgIDI3MGZhNDFjYWE5MTk4MzcuZTg4MTQzMzY5M2Y4OTU3Yi4yZTdiYzUwM2IwZTdhM2I2LjA0YmNjODJiNzFjMmFjYmEKICAgICA0MjkxOGM1ODQ0NzFmYWVhLmNkNmRlOWY1YzUxYjk5ZDQuNWFhZTgxMjQ5YWRlYTMyNi5mZDM5Yjk3NWJlYzU0YzFkCiAgICAgODFlYzQ5MWMzM2NkY2U2Mi4yZTRmZDVkMTE0MDc2ZTM2LjNiNTNkNDU3NGM0YmI2NDYuYzQwNzcyMjU1YjRiMjEzNQotICAgIDM2ZjA3MDI3NjQ1ZmU3MmQKLVZBRERTVUJQU18xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDEKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICAzMGMxMmU2N2Y0MGU1YTMyLjQwNmNkN2QyMTMyZjUwNGMuZThmMzgzYjQ5ZGM3ZDNjZi4yZmI3YmEwNjVmYjgxOWMyCiAgICAgOGM0NjI4ZDEyNzYzMzU3MC5kYjVkMzJlODdmMjViYjUzLmQ4MjQ2ZjhjN2I2NzgyY2IuOTAyNjJmOWY3MWIzMDg0NQpAQCAtMzM5MzMsMTEgKzMzOTMzLDExIEBACiAgIGFmdGVyCiAgICAgMzBjMTJlNjdmNDBlNWEzMi40MDZjZDdkMjEzMmY1MDRjLmU4ZjM4M2I0OWRjN2QzY2YuMmZiN2JhMDY1ZmI4MTljMgogICAgIDhjNDYyOGQxMjc2MzM1NzAuZGI1ZDMyZTg3ZjI1YmI1My5kODI0NmY4YzdiNjc4MmNiLjkwMjYyZjlmNzFiMzA4NDUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZThmMzgzYjQ3YjY3ODJjYi4yZmI3YmEwNjcxYjMwODQ1CisgICAgMjc0YmRhNTIxYTZhMzUxMi5hZTBiNTZjOTEzM2I0YzI0LmQ4YjAxNjQ0Y2JmMzM4NTYuYmNlYzJmOGMxZWM4YmY3YwogICAgIGRlOWNjMGQ0ZTgyZjE1NDUuMTVjMTQwZTE2Y2ZjM2Y2Yi5jNTYxZjNjOGE4NzhiMTliLjBkNTRiNzNiMDE4MTdhMTIKLSAgICBlMGFjYzIxN2I3NmM3NGI0CisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WQUREU1VCUFNfMTI4KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICA5MjNlNGM4Y2RiMTRlYTBkLjhiMDQ1NzQ1YWViZjkzMzQuNmNjZGViOWMyNWY0ZDBkMy43YzA0ODIwNDJmMDFhOWM2CiAgICAgN2Q1NzUxMDYwOTA2MTdjYS4wYjUxMWE5MDg3MjU2OTBjLjBlNzk1MzY2ZGJhZjNhMDguZDc2NTNmZTQ3YjliZGIwNQpAQCAtMzM5NDUsMTIgKzMzOTQ1LDEyIEBACiAgICAgNzE0ZWJkYmFmNmY1OGExZi5mNGM1MTQ2M2U0YTUwZjI2LmE4ZTQ0YmQ3YWNhMDhiOGQuZWM5MDM0NDFkMzJmZGY2OQogICAgIDVlZjM2NDk1MTg0MTJhZTcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTkxMjc1YWJkYmFmM2EwOC5kNzY1M2ZlNDdiOWJkYjA1CisgICAgOTIzZTRjOGNkYjE0ZWEwZC44YjA0NTc0NWFlYmY5MzM0LjZjY2RlYjljMjVmNGQwZDMuN2MwNDgyMDQyZjAxYTljNgogICAgIDdkNTc1MTA2MDkwNjE3Y2EuMGI1MTFhOTA4NzI1NjkwYy4wZTc5NTM2NmRiYWYzYTA4LmQ3NjUzZmU0N2I5YmRiMDUKICAgICBmZTQzY2VmMWRlY2QzOTk3LjNhNGQ4NWEwOTA2ZTUzZjkuNTkxMjc1YWIyOWJhYmFiOC5iMzUwYTY1NGE4NTEwNDgxCiAgICAgNzE0ZWJkYmFmNmY1OGExZi5mNGM1MTQ2M2U0YTUwZjI2LmE4ZTQ0YmQ3YWNhMDhiOGQuZWM5MDM0NDFkMzJmZGY2OQotICAgIDVlZjM2NDk1MTg0MTJhZTcKLVZBRERTVUJQU18xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBlNTQzYjIzZTkxOTQ5ZjI3LjMzYzQxY2NiZWMwYjQ2MGYuMTU4NTQ0YzRhMGQ2NTdjMC41NzNiZDM1NmZmZWVlYjMzCiAgICAgNWQ0ZDlhMjY1ZDM0ZmE1Ny45ZWYxZTY5MTVjOWFhYjEyLjc5NTg4ZmFmZGYwZWU4ZjIuYzE2MzA4OTViZjJmMTQ1NwpAQCAtMzM5NjAsMTEgKzMzOTYwLDExIEBACiAgIGFmdGVyCiAgICAgZTU0M2IyM2U5MTk0OWYyNy4zM2M0MWNjYmVjMGI0NjBmLjE1ODU0NGM0YTBkNjU3YzAuNTczYmQzNTZmZmVlZWIzMwogICAgIDVkNGQ5YTI2NWQzNGZhNTcuOWVmMWU2OTE1YzlhYWIxMi43OTU4OGZhZmRmMGVlOGYyLmMxNjMwODk1YmYyZjE0NTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzk1ODhmYWZkZjBlZThmMi41NzNiZDM1NmZmZWVlYjMzCisgICAgYTJkZDk5M2I5NjJiZjlhMC4wZjIwMTg3OWUzMmZmM2Q1LmZjMGM3MzEwYmU1ODdlZTkuNDRhN2U2ZmU4N2VmNDNhNQogICAgIDkwYmYyYTY4NTg4NzU2MzEuZTI5ZWFjZWUxYzU0NWIwNC43YTZiNmJkNDU4YzBkNGQxLjNiNTQ2YWZmZjRiYmIzYzgKLSAgICAwMWI3OGYwM2ExMWRhMjZkCisgICAgMDAwMDAwMDAwMDAwMDA0MQogCi1WQUREU1VCUFNfMjU2KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICBmNDFhNTE3NTJhYTQ0YTQwLjAzYmZjOTk5YzA1M2NlMzQuNzNiN2EwNWJhNDk3MWY0YS5jZjQzZjRlNWM5NTNhN2Q1CiAgICAgNmVjOWFjYzMyY2Q5ZTdlYy5kN2E4ZjJiYWU5OWMxZGQ1LjFlYjdlZjJlMTY4NDdhNTQuZDc1ZTg4MzAyZjFiYjMyMgpAQCAtMzM5NzIsMTIgKzMzOTcyLDEyIEBACiAgICAgNmI0MDFlYTAwYTgzZjQ4MS4xMjY5ZDM3Y2YwZDIyZWE0LjMyOWM4ZmIzMmE4OWU4NjIuNzA4ZmM2MjY0MzgwNjU0NQogICAgIGI5M2U2OGE3MmEzNDgzNzQKICAgYWZ0ZXIKLSAgICA2ZWM5YWNjM2MzNGFiNzFlLmU4NDgyMWI3NzA2ZGY5NjEuM2ZlYTk1ZDIxNjg0NzdiOS42ZTg5YTVhMjJmMWJiMzIzCisgICAgZjQxYTUxNzUyYWE0NGE0MC4wM2JmYzk5OWMwNTNjZTM0LjczYjdhMDViYTQ5NzFmNGEuY2Y0M2Y0ZTVjOTUzYTdkNQogICAgIDZlYzlhY2MzMmNkOWU3ZWMuZDdhOGYyYmFlOTljMWRkNS4xZWI3ZWYyZTE2ODQ3YTU0LmQ3NWU4ODMwMmYxYmIzMjIKICAgICBjZDEyOWM1ODQzNGFiNzFlLmU4NDgyMWI3ZjA2ZGZlNDIuM2ZlYTk1ZDIwZmE2YTljZC42ZTg5YTVhMmEzMjdiM2UzCiAgICAgNmI0MDFlYTAwYTgzZjQ4MS4xMjY5ZDM3Y2YwZDIyZWE0LjMyOWM4ZmIzMmE4OWU4NjIuNzA4ZmM2MjY0MzgwNjU0NQotICAgIGI5M2U2OGE3MmEzNDgzNzQKLVZBRERTVUJQU18yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDAKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICAyNTYwMDUxMzc1NGZjOTliLmE2OWUyYzA4MWQwZWRiYzIuMzFkODgzZjUwNmQ4NjkyYS41MzE4ZDgzZDA0Yjk3MmJmCiAgICAgOGZjMzFiNTU0MGRiZjVlNy5kODc5YzRmYTE5NzlhNzhjLjIwNjFhZDBmNGQ4YTZiZmUuZmVhYjZjZGQzOGMzODU4ZgpAQCAtMzM5ODcsMTEgKzMzOTg3LDExIEBACiAgIGFmdGVyCiAgICAgMjU2MDA1MTM3NTRmYzk5Yi5hNjllMmMwODFkMGVkYmMyLjMxZDg4M2Y1MDZkODY5MmEuNTMxOGQ4M2QwNGI5NzJiZgogICAgIDhmYzMxYjU1NDBkYmY1ZTcuZDg3OWM0ZmExOTc5YTc4Yy4yMDYxYWQwZjRkOGE2YmZlLmZlYWI2Y2RkMzhjMzg1OGYKLSAgICAyNTYwMDUxM2Y1NGZjOTliLmQ4NzljNGZhOWQwZGUyMWEuMzFkODgzZjU0ZDhhNmJmZS5mZWFiNmNkZDM4YzM4NThmCisgICAgZDUzMTI1NTlhNWU2YzE4My41ZTFkZTJlMzk5NGY5NjhjLmJkZDBjZGI0ZTFmNGVmNGMuOGZhMTQ3ZmQ2MzMyNWE3ZgogICAgIGQyNzc5ZjBiYzM3Y2VhOWMuOTVkNjgwMzAzYTFkZTI2ZS5lM2YwNjBkMmRmMjNiMjQxLjYyNDY2NTBhMjA5MzMwM2EKLSAgICBkM2U2YzM3MTBiNzA0MjZkCisgICAgMDAwMDAwMDAwMDAwMDA0MQogCi1WQUREU1VCUFNfMjU2KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICAzZGNkNWI5Y2MxNThjYmM0LjYxNjEwNTU3YjRhNzJiNWUuZDdmMDljNGI5NzZlYzdkZC42ZThmZTE1MzYzMjI2ZjA5CiAgICAgZmU0NzJiZjlkZWQ0MDdlYS42MGJhZDQyYTk0NzY0MWY0LjgxYjczMWEyNGRjZTgzODYuMzk3N2NjMjU4OGZkZTRjZgpAQCAtMzM5OTksMTIgKzMzOTk5LDEyIEBACiAgICAgZjIyMjYxZjZiYWJkOGM1NS4xYWVkOTkxMDkzMjlkYzRlLjdlN2FiNmIwMzJlZDZiMzUuMDM1NWQwNjkyNjc5ZTEwOAogICAgIGJhZTNlMmIzZDgzMmUxZDIKICAgYWZ0ZXIKLSAgICBmZTQ3MmJmOTdkNzIzNDhjLjYwYmFkNDJhN2ZmMmU4OGEuZjA3NjNiYTA3N2NhNTAxNS4zOTc3Y2MyNWVhYzFjYmMwCisgICAgM2RjZDViOWNjMTU4Y2JjNC42MTYxMDU1N2I0YTcyYjVlLmQ3ZjA5YzRiOTc2ZWM3ZGQuNmU4ZmUxNTM2MzIyNmYwOQogICAgIGZlNDcyYmY5ZGVkNDA3ZWEuNjBiYWQ0MmE5NDc2NDFmNC44MWI3MzFhMjRkY2U4Mzg2LjM5NzdjYzI1ODhmZGU0Y2YKICAgICA3MTlmMmZmM2ZkNzIzNDhjLmFhNTA4NjZlN2ZmMmU4OGEuZjA3NjNiYTBmN2NhNTAxNS4yMjc1OWQzMzZhYzFjYmMwCiAgICAgZjIyMjYxZjZiYWJkOGM1NS4xYWVkOTkxMDkzMjlkYzRlLjdlN2FiNmIwMzJlZDZiMzUuMDM1NWQwNjkyNjc5ZTEwOAotICAgIGJhZTNlMmIzZDgzMmUxZDIKLVZBRERTVUJQU18yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDAKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICAyMmVhNGVmZDliZjY4OTRiLmRjMWNiZjZlYjI0MjRjZjIuOGU1Zjg5ZmRlOTI2ZDg2YS44ODEwOWY0MDk5YzMxMDkyCiAgICAgMTYzODkwMzM4YmQ0OTM5ZS44ZGQ5NDRjNzgwOGNiMDBlLmUwNzBkMDIwOWZmNTlhMGEuNmE4MWYwYmJjOWQ5N2FkOQpAQCAtMzQwMTQsMTEgKzM0MDE0LDExIEBACiAgIGFmdGVyCiAgICAgMjJlYTRlZmQ5YmY2ODk0Yi5kYzFjYmY2ZWIyNDI0Y2YyLjhlNWY4OWZkZTkyNmQ4NmEuODgxMDlmNDA5OWMzMTA5MgogICAgIDE2Mzg5MDMzOGJkNDkzOWUuOGRkOTQ0Yzc4MDhjYjAwZS5lMDcwZDAyMDlmZjU5YTBhLjZhODFmMGJiYzlkOTdhZDkKLSAgICAyMmVhNGVmZDFiZjY4OTRiLmRjMWNiZjZlMzI0MjRjZjIuZTA3MGQwMjA2OTI2ZDg2YS42YTgxZjBiYmM5ZDk3YWQ5CisgICAgNzM5NzI0NDFjNWQ1YmJmOC41ZmE1ZWM2ZGMxMjdmMzU2LmVlZWRlYzY0ZDFhM2RiNWIuODAxY2E3OGQ1ZGJhZTZiNgogICAgIDE2ZDQ4NjE0NjQwN2JmODQuYjBjYmIzY2MxMTlmNTI3Ni45MmExNThiNzlhM2I1YTg5LjI2MmNjMDIzZjFmMzkwZDUKLSAgICBiOGZjMzVlNzIyMGViM2UxCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WQUREU1VCUFNfMjU2KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICA5MmRhMDQ0NjhjOWE4Yzg2LmQ5YmIzMzk2ODU3NTU5NmYuZGI5OTk2NTAwYTgxMDkxOS5hYTVhOTAwNDE3Y2FkMWJmCiAgICAgMTAxMDI4YWRjYTIwNTc3MS45YTE4YTZiNTQzMmI0NmU1LjNiNTk4ZjY2NGI1OTU0ZWMuMTBlMjEwMzc2MzVhZmQyYQpAQCAtMzQwMjYsMTIgKzM0MDI2LDEyIEBACiAgICAgNjhiNzVmM2YzMzRmYjJjOS44MTY0Y2Y3NjA4YTEwODIwLjBlZTJiOGY0MGUxNzk0ZDEuM2E5M2Q5MDBkOWIzNjQ0ZQogICAgIGI1NTMxYTZkM2I5MzE2NWUKICAgYWZ0ZXIKLSAgICAwZmU1NjlmOGY4MmU1MDRlLjMzYjc1YjViNDMyYjQ3OWIuM2I1OThmNjZlZGIxNmU5Yi5hMjA3NTUzYzYzNWFmZDJhCisgICAgOTJkYTA0NDY4YzlhOGM4Ni5kOWJiMzM5Njg1NzU1OTZmLmRiOTk5NjUwMGE4MTA5MTkuYWE1YTkwMDQxN2NhZDFiZgogICAgIDEwMTAyOGFkY2EyMDU3NzEuOWExOGE2YjU0MzJiNDZlNS4zYjU5OGY2NjRiNTk1NGVjLjEwZTIxMDM3NjM1YWZkMmEKICAgICA4ZWViOWQ4Njc4MmU1MDRlLjMzYjc1YjViYmIzNjQxMTEuMmU1ODljNzg2ZGIxNmU5Yi5hMjA3NTUzYzlhZjk5YWY1CiAgICAgNjhiNzVmM2YzMzRmYjJjOS44MTY0Y2Y3NjA4YTEwODIwLjBlZTJiOGY0MGUxNzk0ZDEuM2E5M2Q5MDBkOWIzNjQ0ZQotICAgIGI1NTMxYTZkM2I5MzE2NWUKLVZBRERTVUJQU18yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDEKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBlZjEzOTQ3MGRkYTU2ZDUzLmZhYzA2YjQzOTcwZmJhOGMuNjFlYTdjZjE0Nzc5NTUzZC4zODQzZTA0NWNhMTYwMjNiCiAgICAgYzU5ZWMxZjZkYmY1MjQ1OS5hMDUxYmJmZTNlZmJhNDQ2LmFkMTZlMGI4OTNjOWU1OTUuMDljNzBlZDczYzNiZjM4NApAQCAtMzQwNDEsMTEgKzM0MDQxLDExIEBACiAgIGFmdGVyCiAgICAgZWYxMzk0NzBkZGE1NmQ1My5mYWMwNmI0Mzk3MGZiYThjLjYxZWE3Y2YxNDc3OTU1M2QuMzg0M2UwNDVjYTE2MDIzYgogICAgIGM1OWVjMWY2ZGJmNTI0NTkuYTA1MWJiZmUzZWZiYTQ0Ni5hZDE2ZTBiODkzYzllNTk1LjA5YzcwZWQ3M2MzYmYzODQKLSAgICBlZjEzOTQ3MDVkOTYxYjBkLmZhYzA2YjQzM2VmYmE0NDYuNjFlYTdjZjFjNzc5NTUzZC4zODQzZTA0NTRhMTYwMjNiCisgICAgMTFjMjFmZTk0ZjkwZjk5Yy5iNmI4NGRkY2M3OWVhY2ExLjQyYjQ3NmI3MDg5ZDczNTQuZGJiOTQwMTUwMTExYTU1OQogICAgIGIwNDkyOTM3NTg4MmE2NDcuOTgzZjFjNDljYjg1MGQ0YS5mYzkwYmFkYWMzMDFiY2E1LjBjNjY3MTZkYjQyNDUxNjUKLSAgICBmNjFiOWU0YmYxMDEzNjU1CisgICAgMDAwMDAwMDAwMDAwMDA0MQogCi1WQUREU1VCUERfMTI4KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICBmNjIyYzExOTU1MzM4ZWQ1LjdlMDA1YmNiMGZkNWU3ODYuYTEzMzI1YjFlOTNiMDRlYy5iNzc2MjkwZGUwMDI3Y2I1CiAgICAgNjhjOGQ4NDQ3YzQ2OTY5MC41N2IzMzE5MTkzOTc3YTg3LjJmZTA2MjgwYmE0Y2NkMzQuNTAzMjNkM2Q3YWFjNmZiMApAQCAtMzQwNTMsMTIgKzM0MDUzLDEyIEBACiAgICAgMTMyMGNmNjI4MDQxYTY2OS45YTNkYmE2MzZiOTY4MTc5LjQ3OTQ2ZDA0ZWJiMGMzNjUuODc1YTQ5NDA5NjI3ZGMxNAogICAgIGRlNWYzOWViNTExMWNmZDYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmZlMDYyODBiYTRjY2QzNC41MDMyM2QzZDdhYWM2ZmIwCisgICAgZjYyMmMxMTk1NTMzOGVkNS43ZTAwNWJjYjBmZDVlNzg2LmExMzMyNWIxZTkzYjA0ZWMuYjc3NjI5MGRlMDAyN2NiNQogICAgIDY4YzhkODQ0N2M0Njk2OTAuNTdiMzMxOTE5Mzk3N2E4Ny4yZmUwNjI4MGJhNGNjZDM0LjUwMzIzZDNkN2FhYzZmYjAKICAgICBhODU4ZGUzODAxYzc4YTMzLjE3MmUyNzc1ZmRkMzE5NzMuOWQ5MmQxMjJkZDQ0YTNjZS5hMThmNzQ1NGFkMDk1MGMxCiAgICAgMTMyMGNmNjI4MDQxYTY2OS45YTNkYmE2MzZiOTY4MTc5LjQ3OTQ2ZDA0ZWJiMGMzNjUuODc1YTQ5NDA5NjI3ZGMxNAotICAgIGRlNWYzOWViNTExMWNmZDYKLVZBRERTVUJQRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDEKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICA4MjZhYmU0M2Y4ZDRlNDMzLjAzNmFhNzJjOTY0MTI1ZGYuYmNhYjY1NDdmOWViNmVjMy44ODM0MzM5MDgyMWI2OWE2CiAgICAgNGY0NzU2MzNhYTdiZDk1Ny5kNTgzNjMwNGRlNTE0NDQxLjU5NDZhNDBkYzJkZTliN2QuYmViYzFkMzQzZTEyZDEzYwpAQCAtMzQwNjgsMTEgKzM0MDY4LDExIEBACiAgIGFmdGVyCiAgICAgODI2YWJlNDNmOGQ0ZTQzMy4wMzZhYTcyYzk2NDEyNWRmLmJjYWI2NTQ3ZjllYjZlYzMuODgzNDMzOTA4MjFiNjlhNgogICAgIDRmNDc1NjMzYWE3YmQ5NTcuZDU4MzYzMDRkZTUxNDQ0MS41OTQ2YTQwZGMyZGU5YjdkLmJlYmMxZDM0M2UxMmQxM2MKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTk0NmE0MGRjMmRlOWI3ZC5iZWJjMWQzNDNlMTJkMTNjCisgICAgMjFjMjdjYTc4MDEyNjg2ZC5lNWI4ZmU1NWY1ZmYzZTNhLjRkZDhmNGEyZTM3Y2M1ZDQuNDM3OTI5NWJiYTIwMzZkNAogICAgIGQ0YTZhYzhiOTlhNjRkYTEuOGY1Mjc0OGI3NmQ3NTE3Ny43NDJlY2ZmMDc3ZDBhOGY0Ljc1Yjc1MjcwOTNkMWQ1MTkKLSAgICBhZmMyOTRlMTY0YjJlYWI4CisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WQUREU1VCUERfMTI4KHJlZykKK1ZURVNUUERfMTI4XzMocmVnKQogICBiZWZvcmUKICAgICA0Y2U2ZWIxOWM5NGViMDVkLjQzYzE2M2NiMGU0MjQ2MjAuMmZhMGMxMTJmZTY0YjdhMy5hYTE0YjNlNTlhZTZmZjA5CiAgICAgYTk2ZTU0ODQ1ZjMxNjRiMy40Y2RkMWI1M2ZlZjIwZDE2LjIxZWRlMjU2MjgzMmFkNmIuY2I1NjFiNmI2OWNiODgzZQpAQCAtMzQwODAsMTIgKzM0MDgwLDEyIEBACiAgICAgMTRkZTQ5YTQ4Y2ZlODYyNS45OTRiODNlY2I4YzBmNzE1LjZiYjM4Y2M1ZDRjMjM3N2UuM2UxZDY4ZGY3OTJmMWFiOQogICAgIDQ3M2E0NWE0ZjNjNzlkNTgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzE4NGQxYzM5MWNkNmU3Yi5jYjU2MWI2YjY5Y2I4ODNlCisgICAgNGNlNmViMTljOTRlYjA1ZC40M2MxNjNjYjBlNDI0NjIwLjJmYTBjMTEyZmU2NGI3YTMuYWExNGIzZTU5YWU2ZmYwOQogICAgIGE5NmU1NDg0NWYzMTY0YjMuNGNkZDFiNTNmZWYyMGQxNi4yMWVkZTI1NjI4MzJhZDZiLmNiNTYxYjZiNjljYjg4M2UKICAgICAyM2E4Y2E4ZWMxZTg0MjY3LmNhYzc1MjBmODJjMzVmYWUuYzE4NGQxYzM5MWNkNmU3Yi5iM2MwODM3MDAwOGFmZGJmCiAgICAgMTRkZTQ5YTQ4Y2ZlODYyNS45OTRiODNlY2I4YzBmNzE1LjZiYjM4Y2M1ZDRjMjM3N2UuM2UxZDY4ZGY3OTJmMWFiOQotICAgIDQ3M2E0NWE0ZjNjNzlkNTgKLVZBRERTVUJQRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDAKK1ZURVNUUERfMTI4XzMobWVtKQogICBiZWZvcmUKICAgICBhY2UzOTVhYjg4NWQ0MGM3LmRhNWRjZDMwNWNmZjZiOTguOTUzNTJiZDRiY2Y1OTI3Ny43YmM0MGVjODhlOWM0NDIxCiAgICAgNDhlNGQ3ZTA1NGZkYzAzMy5jZjcxNTI5ZmNiNzcyZTZjLjk5NTBjNGI1YTk2ZmVjZmYuNGQwNDU0Mzk1YWU3ZDEwZgpAQCAtMzQwOTUsMTEgKzM0MDk1LDExIEBACiAgIGFmdGVyCiAgICAgYWNlMzk1YWI4ODVkNDBjNy5kYTVkY2QzMDVjZmY2Yjk4Ljk1MzUyYmQ0YmNmNTkyNzcuN2JjNDBlYzg4ZTljNDQyMQogICAgIDQ4ZTRkN2UwNTRmZGMwMzMuY2Y3MTUyOWZjYjc3MmU2Yy45OTUwYzRiNWE5NmZlY2ZmLjRkMDQ1NDM5NWFlN2QxMGYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTk1MGM0YjVhOTZmZWNmZi5mYmM0MGVjODhlOWM0NDIxCisgICAgZjcwOTg0MmY3NGI0ZDhjOC41MDY2ZDU1ZTc4ZjMwYjRmLjgzNmFjYzc5OWMzOWMxZGEuM2NiZjU4ODJkNDMwMTlmNQogICAgIDk0MWUxYTg0MDM4ZDQ1YjEuYmE4NzUxZDhmY2ZmM2RlYi4yZTRkYmUwZWIwNWZjYzMzLmE2NDAxODExOTkwMjU5N2YKLSAgICBlNmQ1OGY1MDQ1ZWFjZDU4CisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WQUREU1VCUERfMTI4KHJlZykKK1ZURVNUUERfMjU2XzEocmVnKQogICBiZWZvcmUKICAgICA1OGM4YjlhZDczNzNiMTJkLmZkZWYxM2NjMWU5NGMzMWIuNjcyMmMyNzhmNjI1MDFlYy43NWM2MTY1ZjAxZWVjYjM3CiAgICAgNTc2NjkzOTNiZjI5NDBhOS4wYzQ3ZWRmMWUwZDYwZTMxLmI0ODEyNGFjZmZmNDkzZmYuMzZhMTUxNThhY2YxNzcxMQpAQCAtMzQxMDcsMTIgKzM0MTA3LDEyIEBACiAgICAgNzFkMzQzYWEyMzRkNTI0OC45MGJmMzI4NmNiMzhmYTEzLjllYmVhZDdkYjRiNjEwMGEuOTJhYzVjZjI3ZTg0Y2RmYQogICAgIGU2NzUyNTZiZGUyY2VlNjEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmRmMTc0ZGZiNWY1MmZkMC5jY2FhZTllNWNjNzQ4ZmVmCisgICAgNThjOGI5YWQ3MzczYjEyZC5mZGVmMTNjYzFlOTRjMzFiLjY3MjJjMjc4ZjYyNTAxZWMuNzVjNjE2NWYwMWVlY2IzNwogICAgIDU3NjY5MzkzYmYyOTQwYTkuMGM0N2VkZjFlMGQ2MGUzMS5iNDgxMjRhY2ZmZjQ5M2ZmLjM2YTE1MTU4YWNmMTc3MTEKICAgICA0MWZiMTc2ZWM2OTliNzc5LjlmZjMyNGUxNjY1ZWUxMjAuZmRmMTc0ZGZiNWY1MmZkMC40Y2FhZTllNWNjNzQ4ZmVmCiAgICAgNzFkMzQzYWEyMzRkNTI0OC45MGJmMzI4NmNiMzhmYTEzLjllYmVhZDdkYjRiNjEwMGEuOTJhYzVjZjI3ZTg0Y2RmYQotICAgIGU2NzUyNTZiZGUyY2VlNjEKLVZBRERTVUJQRF8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUERfMjU2XzEobWVtKQogICBiZWZvcmUKICAgICAyMmNmYzAzYzA3NzlhZTRkLjQyM2ExMmIzNzNkNDRjYzMuYmQ3Nzk1Y2UyYjcxMTIzNy5mMzM0Y2JmMjk3YzI3MzVhCiAgICAgMjM4N2FhNTIxNTc1YzhlZC4xMjdjODFmNTUxYjdlMjk2LjAwZTdjOGE0YTMxNGU4YjguNTk5ZmNhYWFmYmE1OTQ2YgpAQCAtMzQxMjIsMTEgKzM0MTIyLDExIEBACiAgIGFmdGVyCiAgICAgMjJjZmMwM2MwNzc5YWU0ZC40MjNhMTJiMzczZDQ0Y2MzLmJkNzc5NWNlMmI3MTEyMzcuZjMzNGNiZjI5N2MyNzM1YQogICAgIDIzODdhYTUyMTU3NWM4ZWQuMTI3YzgxZjU1MWI3ZTI5Ni4wMGU3YzhhNGEzMTRlOGI4LjU5OWZjYWFhZmJhNTk0NmIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYmQ3Nzk1Y2UyYjcxMTIzNy43MzM0Y2JmMjk3YzI3MzVhCisgICAgYzY2OTVlOTcyNTJmZmE2Yi4zYmU0OGFkZDVhODQ1MDZjLjM3ZGE0N2Y0NGYyZTM2YzEuMmE0YWE2MTI3YmVjYWVlYQogICAgIGU1NDE1OGY5NTJiMGZkZjQuMWJiZjJiZDUyOWM2ZDJmMi4zYzFlOGVhYTRhYzliOTdmLmMzODM1Yzk0YjMyMmZmODMKLSAgICA4MDk0ZTc5ZTQwZDNjMWUxCisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WQUREU1VCUERfMjU2KHJlZykKK1ZURVNUUERfMjU2XzEocmVnKQogICBiZWZvcmUKICAgICBiZGNhNDM5YWJlOGMzMGIxLjVlZGIxNDYzYjkwNjkwYjMuMGM1OTVmNGI1YjBhYTNkNC5lZDdkMWFiMmIwZjQyZDFlCiAgICAgZDY3MTZjZjZjOGQ4OGE5ZS4wYjAzMGVjMDc1M2M2ZGQ1LjZjZmUyMmE5OGJkYjAwYmQuMjRjNDY1Zjg5ZWI4NGVjOQpAQCAtMzQxMzQsMTIgKzM0MTM0LDEyIEBACiAgICAgMGI0MTE2N2FmMTViZTk4Mi43NDJiYWQwODVkNzlmOGYwLmU1OTk0NmQyNTc1NTRkNTYuOTczYTJkZWY4MDQwODVmNQogICAgIDhjMDFhMjc3YWQxYzEzY2QKICAgYWZ0ZXIKLSAgICBkNjcxNmNmNmM4ZDg4YTllLjQ5ODRjM2ZlYTI1ZTUxODUuNmNmZTIyYTk4YmRiMDBiZC4zZWJmZWQ2OTMwMjNkN2FjCisgICAgYmRjYTQzOWFiZThjMzBiMS41ZWRiMTQ2M2I5MDY5MGIzLjBjNTk1ZjRiNWIwYWEzZDQuZWQ3ZDFhYjJiMGY0MmQxZQogICAgIGQ2NzE2Y2Y2YzhkODhhOWUuMGIwMzBlYzA3NTNjNmRkNS42Y2ZlMjJhOThiZGIwMGJkLjI0YzQ2NWY4OWViODRlYzkKICAgICAyNmQ0NWYxZGZhNDQwOTU1LmM5ODRjM2ZlYTI1ZTUxODUuOTVmYTcwNWQ1NmM1MjU1YS5iZWJmZWQ2OTMwMjNkN2FjCiAgICAgMGI0MTE2N2FmMTViZTk4Mi43NDJiYWQwODVkNzlmOGYwLmU1OTk0NmQyNTc1NTRkNTYuOTczYTJkZWY4MDQwODVmNQotICAgIDhjMDFhMjc3YWQxYzEzY2QKLVZBRERTVUJQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwNDAKK1ZURVNUUERfMjU2XzEobWVtKQogICBiZWZvcmUKICAgICA3N2RmYzdlZWQxYzIzZjYzLmUwMDI4ZjdiNDhhOTY4ZDAuZTljNDRhY2FjMjk5MWU0Mi5iNjI2OWY3NDJiMTZiNTVlCiAgICAgMzVhMjE3M2YwODNlYzNlMS4wMTY1YzY4YjljYmFjMGViLjAyMWIxNjMwZWNjODdlYTYuNjVlZjc3YWY2ZDk0OTkxZApAQCAtMzQxNDksMTEgKzM0MTQ5LDExIEBACiAgIGFmdGVyCiAgICAgNzdkZmM3ZWVkMWMyM2Y2My5lMDAyOGY3YjQ4YTk2OGQwLmU5YzQ0YWNhYzI5OTFlNDIuYjYyNjlmNzQyYjE2YjU1ZQogICAgIDM1YTIxNzNmMDgzZWMzZTEuMDE2NWM2OGI5Y2JhYzBlYi4wMjFiMTYzMGVjYzg3ZWE2LjY1ZWY3N2FmNmQ5NDk5MWQKLSAgICA3N2RmYzdlZWQxYzIzZjYzLjYwMDI4ZjdiNDhhOTY4ZDAuZTljNDRhY2FjMjk5MWU0Mi42NWVmNzdhZjZkOTQ5OTFkCisgICAgYTIxNDEwNTU2ZjljNWI3NC5jYWI0YjUxNzg4MWIyZTgxLjljZmM4YjI3ZjgxNGQ1NDkuNGYzZWNhZWZiOTVjMzU0MAogICAgIDlhMDIyZTFlMjFlOWM1NDcuOTYzYzVhODlhOTU3ZWUzYy45MzMzMjc5OTAwODhkZTU2LmNlNjA5NWEwYWNmOWM0NzMKLSAgICAzZmExZDMyZWUyZjc4MzYxCisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WQUREU1VCUERfMjU2KHJlZykKK1ZURVNUUERfMjU2XzEocmVnKQogICBiZWZvcmUKICAgICBmZTRkN2YwNmY2ZTNhZWI3LmY5MzhlYjg1M2EzMGJiODcuYzM0OWFmNGU5YWZiM2JjOC5jMzhiNjU3MzIzMzE1N2ZhCiAgICAgNjdhZjk4OTI4NDQ4ODAyMC45YjgxYzU3NmQ4N2VmYTVmLmFjMjZiMmQzZjg5MjUyZDIuMDhkMWMxYTI3YjFhZmE2MQpAQCAtMzQxNjEsMTIgKzM0MTYxLDEyIEBACiAgICAgYThjOWZhN2E4MGFlMGNkZS4xODgwYmRhNzBjNWM0Mjg5LjIxODRiMGM5NjhjOWNlMGYuNDE1N2M0YWIzYmRkYjAyNgogICAgIGVkMmY2MzVlZGJjZTNiZGMKICAgYWZ0ZXIKLSAgICA2N2FmOTg5Mjg0NDg4MDIwLmRjYWIzN2RlMTRkZTNlZmMuYWQyMTVmOTkxMTdjNjc5OC5iZWQxYjcxMDI0NGY4M2I2CisgICAgZmU0ZDdmMDZmNmUzYWViNy5mOTM4ZWI4NTNhMzBiYjg3LmMzNDlhZjRlOWFmYjNiYzguYzM4YjY1NzMyMzMxNTdmYQogICAgIDY3YWY5ODkyODQ0ODgwMjAuOWI4MWM1NzZkODdlZmE1Zi5hYzI2YjJkM2Y4OTI1MmQyLjA4ZDFjMWEyN2IxYWZhNjEKICAgICBkNzE0MTc0MDI5YjIzNzQ5LjVjYWIzN2RlMTRkZTNlZmMuYWQyMTVmODI1ZWE4NmYwNi4zZWQxYjcxMDI0NGY4M2I2CiAgICAgYThjOWZhN2E4MGFlMGNkZS4xODgwYmRhNzBjNWM0Mjg5LjIxODRiMGM5NjhjOWNlMGYuNDE1N2M0YWIzYmRkYjAyNgotICAgIGVkMmY2MzVlZGJjZTNiZGMKLVZBRERTVUJQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUERfMjU2XzEobWVtKQogICBiZWZvcmUKICAgICAxZTI1MTAxNTIxMzFlMTA1LjM3MTgzYmFlMjZjNzNlOGEuYWJjZWQ0YmVkYzA1YzMzNC42NjljYTMxMmIzODJhYTlhCiAgICAgYjAwNDQ3YmMyODBmNWVjZC5lMDRlZDg0N2I2OGEwN2ZhLmYxNWZmNjEwOWZlNDdkMjYuZDZiNTMzY2JkYjVmNDA1MwpAQCAtMzQxNzYsMTEgKzM0MTc2LDExIEBACiAgIGFmdGVyCiAgICAgMWUyNTEwMTUyMTMxZTEwNS4zNzE4M2JhZTI2YzczZThhLmFiY2VkNGJlZGMwNWMzMzQuNjY5Y2EzMTJiMzgyYWE5YQogICAgIGIwMDQ0N2JjMjgwZjVlY2QuZTA0ZWQ4NDdiNjhhMDdmYS5mMTVmZjYxMDlmZTQ3ZDI2LmQ2YjUzM2NiZGI1ZjQwNTMKLSAgICBiMDA0NDdiYzI4MGY1ZWNkLmUwNGVkODQ3YjY4YTA3ZmEuZjE1ZmY2MTA5ZmU0N2QyNi5lNjljYTMxMmIzODJhYTlhCisgICAgN2Y5YTg0M2YwZDc2NmQ1Zi5mZmI2Y2RiMWNkODFhNWQ5LmM2MDBhMTg3NzEwNTJiOGUuY2YxYjVjNWY3YmVhY2NlNQogICAgIDY3YjE0NDhhZWI3MmNiZTguZjA5ZTE0NTgwNjNiNTFkNC4wNjdjNTAxMTZmNzU4Yjk2LmFiMWExYTNhMmZiMTg5ZmQKLSAgICBjOGZkNmFjODk0M2ZiNDQ2CisgICAgMDAwMDAwMDAwMDAwMDAwMQogCi1WQUREU1VCUERfMjU2KHJlZykKK1ZURVNUUERfMjU2XzIocmVnKQogICBiZWZvcmUKICAgICA4MDEyNDc3NTQ2MjE4OTZkLjQ0MTYwMjg5ZGYwZDM0OTMuMGY1MWFiYThmZTQxNGE5Ny44ZGExN2Y5OGI1M2Y1NzZhCiAgICAgMzFhM2FkYWVlMGUyNDQxZC5mMTk1M2EyOTA0NTU2NDhkLmI4MWE4ZDBkNTAyMWNhY2QuMzczYWFiMGE1ZTZmNGIzNwpAQCAtMzQxODgsMTIgKzM0MTg4LDEyIEBACiAgICAgZTk2YzA0NmYzZDMyNWFjYi4zMDEwMDlmODUzMWEwNzFkLjE3MjEyMmM3NzQ5YzUyNDQuNjNmNmU2NWM0YTMzOWY2YwogICAgIDllYjJlZTE0YzVkZTc2MmEKICAgYWZ0ZXIKLSAgICAzNWZkOThkZGZlMGUyMDAzLmYxOTUzYTI5MDQ1NTY0OGQuNDc0NmI2ZjQ5OTY2MGUyMy41ZjEyNGU1Mjg2MTIyNTI5Ci0gICAgMzFhM2FkYWVlMGUyNDQxZC5mMTk1M2EyOTA0NTU2NDhkLmI4MWE4ZDBkNTAyMWNhY2QuMzczYWFiMGE1ZTZmNGIzNworICAgIDgwMTI0Nzc1NDYyMTg5NmQuNDQxNjAyODlkZjBkMzQ5My4wZjUxYWJhOGZlNDE0YTk3LjhkYTE3Zjk4YjUzZjU3NmEKKyAgICAzNWZkOThkZGZlMGUyMDAzLjRjZmE2ODU0Nzc1NjE2MDIuNDc0NmI2ZjQ5OTY2MGUyMy5kZjEyNGU1Mjg2MTIyNTI5CiAgICAgMzVmZDk4ZGRmZTBlMjAwMy40Y2ZhNjg1NDc3NTYxNjAyLjQ3NDZiNmY0OTk2NjBlMjMuZGYxMjRlNTI4NjEyMjUyOQogICAgIGU5NmMwNDZmM2QzMjVhY2IuMzAxMDA5Zjg1MzFhMDcxZC4xNzIxMjJjNzc0OWM1MjQ0LjYzZjZlNjVjNGEzMzlmNmMKLSAgICA5ZWIyZWUxNGM1ZGU3NjJhCi1WQUREU1VCUERfMjU2KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWVEVTVFBEXzI1Nl8yKG1lbSkKICAgYmVmb3JlCiAgICAgNmMxMmUzNjYxNDIwNjU5Mi5hYTNjZWVkMTM4ZDkyZTIwLjc5YTU5N2ZmYjRhZmYyMGEuODZmN2NlZjM3ZDUwZDFkZAogICAgIGE4ZTIzZjNmNTIwNDI5Y2UuZDJiODUxNmQ4YzhmZDdhZi4wMjgzOTA1N2I3MjE5NWY3LmVmMTRiNWU1NTEwZGM4OWEKQEAgLTM0MjAyLDEyICszNDIwMiwxMiBAQAogICAgIDlkMGJhNDkwYTRmNWQ0NWQKICAgYWZ0ZXIKICAgICA2YzEyZTM2NjE0MjA2NTkyLmFhM2NlZWQxMzhkOTJlMjAuNzlhNTk3ZmZiNGFmZjIwYS44NmY3Y2VmMzdkNTBkMWRkCi0gICAgYThlMjNmM2Y1MjA0MjljZS5kMmI4NTE2ZDhjOGZkN2FmLjAyODM5MDU3YjcyMTk1ZjcuZWYxNGI1ZTU1MTBkYzg5YQotICAgIDZjMTJlMzY2MTQyMDY1OTIuZDJiODUxNmQ4YzhmZDdhZi43OWE1OTdmZmI0YWZmMjBhLmVmMTRiNWU1NTEwZGM4OWEKKyAgICA5M2VkMWM5OWViZGY5YTZkLjU1YzMxMTJlYzcyNmQxZGYuODY1YTY4MDA0YjUwMGRmNS43OTA4MzEwYzgyYWYyZTIyCisgICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIGRlMDAyMTMyMGRlMzIwNzQuY2FlODcyMDhhZDVhOWIyOS40OTRkYjFhNzEyYzllZTdiLjFlNTEyNGM3YzlkNDBkMmQKLSAgICA5ZDBiYTQ5MGE0ZjVkNDVkCisgICAgMDAwMDAwMDAwMDAwMDA0MAogCi1WQ1ZUU1MyU0lfNjQocmVnKQorVlRFU1RQRF8yNTZfMihyZWcpCiAgIGJlZm9yZQogICAgIDg2M2I1MGNlYmE0ZjAyNjAuOTBlODllMjRjMmY2Y2EzNi41MzMzMjlkZWIyODYyZTZkLmJkZDFkMTc3YTExNzFjNmIKICAgICAzNDJlMjNlZGE2NmZkM2UyLjIwNmY3NDRkZDZkYjNhN2QuYjM1YjQ5OWY4MGYyODY5YS5lM2NlNGE0NzQyNzJmMjBhCkBAIC0zNDIxNiwxMSArMzQyMTYsMTEgQEAKICAgICAxMTlhYWRmMGE2NDRiMmI2CiAgIGFmdGVyCiAgICAgODYzYjUwY2ViYTRmMDI2MC45MGU4OWUyNGMyZjZjYTM2LjUzMzMyOWRlYjI4NjJlNmQuYmRkMWQxNzdhMTE3MWM2YgotICAgIDM0MmUyM2VkYTY2ZmQzZTIuMjA2Zjc0NGRkNmRiM2E3ZC5iMzViNDk5ZjgwZjI4NjlhLmUzY2U0YTQ3NDI3MmYyMGEKKyAgICAwNTJmMTk1YTA1ZTE4NTkwLjZjNjIxZTk4NjU5ZjI5NzQuNDdhY2NlYjdiMjI5ZTA1ZC45NTEyOWEwMzEwZTUyYTgzCiAgICAgMDUyZjE5NWEwNWUxODU5MC42YzYyMWU5ODY1OWYyOTc0LjQ3YWNjZWI3YjIyOWUwNWQuOTUxMjlhMDMxMGU1MmE4MwogICAgIDU0OGMyZTdmNzIyZjUyMTYuNGU4YzE3ZjA4YzRkNTY0Ny42YjcyYjQ5MmU0Yjc3ODYyLmIxNjczZDk4Mjg3YzgwMDMKLSAgICAwMDAwMDAwMDAwMDAwMDNkCi1WQ1ZUU1MyU0lfNjQobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDEKK1ZURVNUUERfMjU2XzIobWVtKQogICBiZWZvcmUKICAgICA5Mjc3NjhmOGE0NDg3YWM3LjdjOGY1ZmM5OGFlNzc3MWYuYTRiYmRlNDM2N2YyN2IyNC43YmY4Zjc5ZGIzMjk4YTU0CiAgICAgMTFjYWU5OWQ0MDk1OTU2Mi5kYjg2YTdhNWU4OTQyZjU4LjQ4YjllYzdjMTE5OTU1MzQuZDM4Yjk0NDJiYjBhNTFkZgpAQCAtMzQyMjksMTIgKzM0MjI5LDEyIEBACiAgICAgMjM4YjU5MGQzY2MyNDFkMwogICBhZnRlcgogICAgIDkyNzc2OGY4YTQ0ODdhYzcuN2M4ZjVmYzk4YWU3NzcxZi5hNGJiZGU0MzY3ZjI3YjI0LjdiZjhmNzlkYjMyOThhNTQKLSAgICAxMWNhZTk5ZDQwOTU5NTYyLmRiODZhN2E1ZTg5NDJmNTguNDhiOWVjN2MxMTk5NTUzNC5kMzhiOTQ0MmJiMGE1MWRmCi0gICAgNjg1ZmFjY2E5NjM1YmViNS5jYmJiMDE3ZDI5YzNiODZkLjE4NTRiZTg4YTY0ZWEwYTYuY2Y3ODg2ZWU5N2U3MGFiMAorICAgIDZkODg5NzA3NWJiNzg1MzguODM3MGEwMzY3NTE4ODhlMC41YjQ0MjFiYzk4MGQ4NGRiLjg0MDcwODYyNGNkNjc1YWIKKyAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNzQwMjJkNmFjMTM3YjNlOS5hYTdiNmNiZmU4ZmY0YzA5LmVlNTZkMTUxNDMxZDE4YTQuY2IwOWM5MGVlMzRiZjA3MwotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDQwCiAKLVZDVlRTUzJTSV82NChyZWcpCitWVEVTVFBEXzI1Nl8yKHJlZykKICAgYmVmb3JlCiAgICAgMzM0OTMzNTYzZGQ4Mzc3ZC4xMjdlZTk2YmRlYTQyZTJkLmQyMTJlMWQ1YzJkNDI3ZDguYTc4Y2EwYzQwNDEzNzg1YgogICAgIDU3OTE1MTU3ODMxYTBmMWQuMWNhMDViYjgwODhhZWNhYi5hMGNiNWUyZDUyY2Y4Nzg4LjIwYzJhN2NkMDQzYjdkZjYKQEAgLTM0MjQzLDExICszNDI0MywxMSBAQAogICAgIDlhNWFlNmE2OTg1YWMwZGIKICAgYWZ0ZXIKICAgICAzMzQ5MzM1NjNkZDgzNzdkLjEyN2VlOTZiZGVhNDJlMmQuZDIxMmUxZDVjMmQ0MjdkOC5hNzhjYTBjNDA0MTM3ODViCi0gICAgNTc5MTUxNTc4MzFhMGYxZC4xY2EwNWJiODA4OGFlY2FiLmEwY2I1ZTJkNTJjZjg3ODguMjBjMmE3Y2QwNDNiN2RmNgorICAgIGVhYWRiMTdiYWExMzA0NWUuNmYzNGZmM2Q1Y2Y0YTg5MC43MWY0ZGUzMjM1N2JhNmMzLjMzYzM2MzU5NWZhMmUyYTIKICAgICBlYWFkYjE3YmFhMTMwNDVlLjZmMzRmZjNkNWNmNGE4OTAuNzFmNGRlMzIzNTdiYTZjMy4zM2MzNjM1OTVmYTJlMmEyCiAgICAgNGFlYTRmMmU0YzUwNTNlZC5lNzA2NTFlNmY1ZWYxZjA3LjlmZDc1ZDUwMDY2NGMxMzUuYmQ1ZDRlNTMzMjUzNjU4YQotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZDVlRTUzJTSV82NChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMQorVlRFU1RQRF8yNTZfMihtZW0pCiAgIGJlZm9yZQogICAgIGE2ODdhNjQwYWVjM2FmYzEuZDI5NTI1ZGMwODViMzg3NS42MWUyY2VhMGVmODYwZDNkLjg3YzFkN2YzNjExNzEzOGIKICAgICBiZGIwMGIwYzhmOWJmMDY3LmRlZjgzMWYyNzdjM2VmYTMuYjc5NGYwNTU2N2M1MmU1ZC44NmZlNDg4N2UzMWZkYTcxCkBAIC0zNDI1NiwxMiArMzQyNTYsMTIgQEAKICAgICA5YzllNDAyMjY4YWYzYjM3CiAgIGFmdGVyCiAgICAgYTY4N2E2NDBhZWMzYWZjMS5kMjk1MjVkYzA4NWIzODc1LjYxZTJjZWEwZWY4NjBkM2QuODdjMWQ3ZjM2MTE3MTM4YgotICAgIGJkYjAwYjBjOGY5YmYwNjcuZGVmODMxZjI3N2MzZWZhMy5iNzk0ZjA1NTY3YzUyZTVkLjg2ZmU0ODg3ZTMxZmRhNzEKLSAgICBiYmExOGZmNjU4ZWUzZGZhLmNhNWY2ZGRhMzcxMWI0MjMuYzZlNzM1ZjI3OWI4M2Q5NC5mNmRhYWQ3OTI4MDg1MDkyCisgICAgNTk3ODU5YmY1MTNjNTAzZS4yZDZhZGEyM2Y3YTRjNzhhLjllMWQzMTVmMTA3OWYyYzIuNzgzZTI4MGM5ZWU4ZWM3NAorICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICA3ZDI2YjBlYTI0YzY1M2E1LmYxMThkODAxZTRkM2MyYTAuNmFhODE4NjQ0MDZjZjcwZS4zNGExMDEzM2NhNWZiMjliCi0gICAgODAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVkNWVFNTMlNJXzY0KHJlZykKK1ZURVNUUERfMjU2XzMocmVnKQogICBiZWZvcmUKICAgICA4YTFmNjdiMzljODQyODEzLmRkMGFlOWQ0MGYzMWVlOTUuYjE2ZDZiZDQxOTk0NTVjNy43ZmEzMTY5NmQ4ZWQxOGY2CiAgICAgNWI2ZTcwNTEwMjZiYjVkYi5iODFiYjZhMDM2M2FjOWY2LjY0YWMyM2JkNzNlMWFiNDMuZTFhNGE5NzM1ZTQ1NWI3OQpAQCAtMzQyNzMsOCArMzQyNzMsOCBAQAogICAgIDViNmU3MDUxMDI2YmI1ZGIuYjgxYmI2YTAzNjNhYzlmNi42NGFjMjNiZDczZTFhYjQzLmUxYTRhOTczNWU0NTViNzkKICAgICA2OWQ4NTk2NzM3ZWYxZTNhLmU5MjM5MzNiYjVlZWExZjMuNjgxZmZkMmE4ZDQ1ZmVjMS42Yzc3NGZlOWVkODI3ZWMyCiAgICAgMTFhOTFkNjNkNjlkOWVkZC40ZWVmZmQ4ZmE3NTgzMmI5LjE4MTNmNDg2MDM0YzhiZWMuZmNlODgzZTNhMmFmM2JmZQotICAgIDMxNTZkZTQwMDAwMDAwMDAKLVZDVlRTUzJTSV82NChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlRFU1RQRF8yNTZfMyhtZW0pCiAgIGJlZm9yZQogICAgIDliZDM4NjEzZWMwYjc1ZmUuYWYyZGI4YjA3Y2ZmNzI2Zi5jMjRiNmY4YTI5ODQzNzczLmNmZDQwNDNkNzI4MzhlNzEKICAgICA2MWU1NGMyMWI5NTE2YTE5LjlmYWYyN2JhYzRhM2Q2OWQuMjEwMzY1MTY1NTdmNmU0ZS5lYmFkMjliYjc2NzQ0MmZjCkBAIC0zNDI4Niw5ICszNDI4Niw5IEBACiAgICAgNjFlNTRjMjFiOTUxNmExOS45ZmFmMjdiYWM0YTNkNjlkLjIxMDM2NTE2NTU3ZjZlNGUuZWJhZDI5YmI3Njc0NDJmYwogICAgIDlkYzU5MTYzMWNiOGVhZDguM2Q3ZDY0ZWQ0YjE1MDYxMy40N2UzNWIyMTRhNTQ5MTc2LmM2ZWM2MDZjYWFhZWU1MzgKICAgICAyYTNmZDBjNjMwNGJiMDY1LmU0ZTE2ZGI2YWNlMDNkN2MuMTBiNmNlOTYyMjBmNWMxNi5iZWRiYTRiY2FhYmFiMGQyCi0gICAgODAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAKIAotVkNWVFNTMlNJXzMyKHJlZykKK1ZURVNUUERfMjU2XzMocmVnKQogICBiZWZvcmUKICAgICA3MGZkNDNlYTgwN2ViNWNmLmU0MWY4NTM0MTExNjc5ZWMuZjIyODNlN2Y4MzkwYjg4NS41ODQ5Mzg2MWY5YmQ4ZDVhCiAgICAgZTRjNzk3OWY4ZTRjNjY4OS5hNzMwMmQ5YmRjMjYwMTlhLmMyOWVkMWI1NmViMWIyZDkuZmE2ODE3NmVlYzY5ZGU3MApAQCAtMzQzMDAsOCArMzQzMDAsOCBAQAogICAgIGU0Yzc5NzlmOGU0YzY2ODkuYTczMDJkOWJkYzI2MDE5YS5jMjllZDFiNTZlYjFiMmQ5LmZhNjgxNzZlZWM2OWRlNzAKICAgICBlMzcxZTdhNGQ5MWUzMTUyLjRlNDA0M2U1YWQ4NjA0OWIuYjA4ZjIzYzUwNmQwNjkyNS5kNGRmZTZhOTE2MWYwYzgyCiAgICAgY2E0OTMxNjNmYjgwNTJkMy5iNzE5NDMwMDlmNDIzZDFhLjE4NDczMTE5ZTk3ODE3MTUuYzE3YTIyZmU5NGVjZDJiYwotICAgIDAwMDAwMDAwODAwMDAwMDAKLVZDVlRTUzJTSV8zMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlRFU1RQRF8yNTZfMyhtZW0pCiAgIGJlZm9yZQogICAgIDQzNGNjZGE3ZmFmODE5NWIuZjU5OTcwNGE5M2ZjMDRiYi5iYzg4YTlkN2NlNjc2OTQ0LjU2MTFmNjFmYjMzNmY5NTQKICAgICA5MDFhMzVkMjFhNTAxMjE3LmMxYWZhMWM0M2EyMDg0YjQuM2I1OWYxNTY1NzAwNDQ0NS5jNTNiNmU0MmZmOTU0YThlCkBAIC0zNDMxNSw3ICszNDMxNSw3IEBACiAgICAgOTE3ZTk2NzNjMWRmNWE0Ni5hNzU4YzUyMTJiOGVkZDhiLjEzNTAxOWZjZTZiZmY2N2EuYWJkYTY5OGY4ZTY2MmNhNwogICAgIDAwMDAwMDAwMDAwMDAwMDAKIAotVkNWVFNTMlNJXzMyKHJlZykKK1ZURVNUUERfMjU2XzMocmVnKQogICBiZWZvcmUKICAgICBhODg1MDA2MDc3NGQ5ZWJkLmZiYWM4NmMxODAyZDIwMTAuN2E4NGIxZGNhY2YwMmVjMS4yNTBmZjBmYjIzZmQ0NTA2CiAgICAgNzVmY2JjNjg3MzA3YTJmNi43YzkyNDc5ZDU2ZTdhNDM2LjVkYTQ3ZWRhYWUyYTNjYjguMWY1Zjk5NTMyYWUwMzMxOQpAQCAtMzQzMjcsOCArMzQzMjcsOCBAQAogICAgIDc1ZmNiYzY4NzMwN2EyZjYuN2M5MjQ3OWQ1NmU3YTQzNi41ZGE0N2VkYWFlMmEzY2I4LjFmNWY5OTUzMmFlMDMzMTkKICAgICA5ZDliMTMxNTlhYWE3ZTMyLmYxZmI1NGYzNWYxNmEwZTYuYWMwNjI4ODdjY2M3NDUxZC5kZjBkOTFlZTE2NzM3YmRlCiAgICAgN2JhYzAyZDQ4N2MyNmQxZS4zNGI1MmFhZmI4YzhkMTRhLmMzZjRhYzUwYTI1MzgzOWMuM2ZlNTUyYjkwNGMyZGE4MgotICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZDVlRTUzJTSV8zMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDA0MQorVlRFU1RQRF8yNTZfMyhtZW0pCiAgIGJlZm9yZQogICAgIDUzNDMyNDkxNTRjNWNkMTYuNmE3Yzg0MGZkN2RjYWM2Ni4yMzhhNDNiZDdkMDhmMzhlLmZlYmIwNTlmY2Q1YTMzZTAKICAgICBiZTYxMmQ3NWVlOTFkODVlLmM3NTc5NTM0MjU4Mzc3YjUuOTg0NzFkMDljOWUyYzJkZi5iOWE3MmZlMmU5Njk5MTk2CkBAIC0zNDM0MCw5ICszNDM0MCw5IEBACiAgICAgYmU2MTJkNzVlZTkxZDg1ZS5jNzU3OTUzNDI1ODM3N2I1Ljk4NDcxZDA5YzllMmMyZGYuYjlhNzJmZTJlOTY5OTE5NgogICAgIDNhZDhlZjM4ZmE0YWVhMzUuZWY4OTMyYWUwZTQzMGFiNy43MGI4MzM4MGI4NjNmOTY5LjUwMDQyNjgzOTAwYmQ4NjkKICAgICBhNDc1ZThjODkzZmJiZmM2LjNjNWQ1NWU5MmRhOWExMWEuODhhOTAxMGM2Nzk2NTU1Ny4xZjFlZTdmMDYxY2Q0NTA2Ci0gICAgMDAwMDAwMDBmMjVjYzIwMAorICAgIDAwMDAwMDAwMDAwMDAwNDAKIAotVkNWVFNTMlNJXzMyKHJlZykKK1ZURVNUUERfMjU2XzMocmVnKQogICBiZWZvcmUKICAgICBkNWI4YjRkYmViZGQ4MDRkLmQ2MDQ5MzEwZDViMDEzM2QuMGMyMWZjNTAxZjQwNzc4OC5iYWU2MDQ5YmYxODg5MWQ2CiAgICAgNzRkMGI4MzFkZDQ1Yzc0ZS5hZDUxNmNmZGRkNzVhMWM3LmI5MWYyMjUxN2Y5NGM5YWQuZTMzYWI2MTc3MzQ0NmIxMQpAQCAtMzQzNTQsOCArMzQzNTQsOCBAQAogICAgIDc0ZDBiODMxZGQ0NWM3NGUuYWQ1MTZjZmRkZDc1YTFjNy5iOTFmMjI1MTdmOTRjOWFkLmUzM2FiNjE3NzM0NDZiMTEKICAgICBiYWQ1NzUwMjY3ZmMyM2NhLjA1MjhmMDc5Yzc1NzI2OTAuYTBhNGM0NThlOTMyZDIzNi5kZjczOTU2ZTA4ZDY5ZDM1CiAgICAgMDUxM2U4YmEyNjhlZDA2Yi5iYTU1OWE3MWFlNjE1ZGM0LjFkZmNkY2NmZmFhNWQwY2YuOGE1YjFjOGJjZDRiZTM2ZQotICAgIDAwMDAwMDAwODAwMDAwMDAKLVZDVlRTUzJTSV8zMihtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVlRFU1RQRF8yNTZfMyhtZW0pCiAgIGJlZm9yZQogICAgIDVlNmIxM2M3NTUwYjlmY2QuYjBkNjBjYzZiNTg4MGNkZC5hOGEzZTVkMmFlYTAwNDhlLjhkNzM2ODIzNGU3OWZkMjMKICAgICAzZTJhN2JiZTUwNmU4YzRiLjE2NmFkZDkwYjE3NDExY2QuYWJkZjUwODZlNDFmZDUxYS40YTU1NjNjMDdmM2I5NWRmCkBAIC0zNDM2Nyw5ICszNDM2Nyw5IEBACiAgICAgM2UyYTdiYmU1MDZlOGM0Yi4xNjZhZGQ5MGIxNzQxMWNkLmFiZGY1MDg2ZTQxZmQ1MWEuNGE1NTYzYzA3ZjNiOTVkZgogICAgIDNkY2E3YjJiZWJlNDdlOGUuOTUxYTU3ODZiNWUxMWNlNy45ZmQ1NTQ3YjZjZWE4Yzk2LmIxZWVjOTEzMmM3NmQ2YWUKICAgICAzNzE1OGZmYTQxNzgzMGMyLjg4MzQ3NjEyNWQ1ODY4ZDYuNjA1MTZlOWI2MDBlZTcyYi4xZTg5OTY4NmVmYjZmYTNkCi0gICAgMDAwMDAwMDAzZTdmNDhjMAorICAgIDAwMDAwMDAwMDAwMDAwMDAKIAotVkNWVFNEMlNJXzMyKHJlZykKK1ZURVNUUERfMjU2XzMocmVnKQogICBiZWZvcmUKICAgICA3YWY4NTc4MTI4NzdkZTRhLjA4ZDkzMzE3NmUzNzVmMTIuNGEwMjM3YTI0NjY3MzM0Ny5jYTFmMWJkNGRmOTZhMDA4CiAgICAgMjE2NDQyZTBkNjBmMTUyMC44YmUwZTQ2ZjhmMmNjN2FiLjM5ZDE5NWExMGM5OWI3ZTYuYjkwYmQ2MTEwMzhlNzQ1NwpAQCAtMzQzODIsNyArMzQzODIsNyBAQAogICAgIDNlMDM4NDEwMGJkZDIwNjUuOWVmNzFkZWNjMDYzMjNiOC5hZmVkOGM3YjRhN2IzMDVlLjA5ZTAxYjNlZTgwMzFmNDQKICAgICAyZDIxMTk3ZDYyNmMzYmM2LjFjZTk1YTdjMWNlOTMxNjYuMGFhMTE5OWM5Yzk4ZGM1Yi45NjZjNjc0N2FiMDA1Y2ZjCiAgICAgMDAwMDAwMDAwMDAwMDAwMAotVkNWVFNEMlNJXzMyKG1lbSkKK1ZURVNUUERfMjU2XzMobWVtKQogICBiZWZvcmUKICAgICBkN2Q0MDA5ZTM4YzM3ZjdjLjRhMDlmZTkzNzg0OWExZWYuZTE4NDE3MGFiZmM5YWJlMS5hNDNiMzY3MDlmN2NmNThiCiAgICAgNDM0OTQ3YzMzYmExZGQ5Yy5mMTA4MmViZWU4ZmY5MDhiLmM5OTNkMDgxYzYwZjRkNTQuZGIwNWUxNjNlZmI0Yjg5OApAQCAtMzQzOTYsNyArMzQzOTYsNyBAQAogICAgIGZkYjAzMTllNDY5MmRjNzguNGQ3YzVmMDQ0NzI2ZjNjZS43MTNiMjhkZjZlZmZmZGQ0LjhjNWNjZTU3ZTM0ZDJiZmEKICAgICAwMDAwMDAwMDAwMDAwMDAwCiAKLVZDVlRTRDJTSV8zMihyZWcpCitWVEVTVFBEXzI1Nl8zKHJlZykKICAgYmVmb3JlCiAgICAgZmMwN2MwZDc1OWM0MTRlMy4wNDNiY2UyYzg2YmRmNThjLmJhODc1OWY2NmZiMGUwY2QuZWE2ZGJlOWQ0N2MwODIzOQogICAgIGEzM2FmMWI5NGJkMGFjNTguNGIwZmQ1MDk2N2M0YzY5ZS4yMWRhOGVhZTYxNDM0NmYwLmY2NDM0MWY2ZjQxODFmNDYKQEAgLTM0NDA4LDggKzM0NDA4LDggQEAKICAgICBhMzNhZjFiOTRiZDBhYzU4LjRiMGZkNTA5NjdjNGM2OWUuMjFkYThlYWU2MTQzNDZmMC5mNjQzNDFmNmY0MTgxZjQ2CiAgICAgMGQ2NTk3NDMzMTc4NTViMi5iMGY5YzIyMzA1YjQwOWRiLmRkYzBmYTk2YmE2YzVlZTIuNzA4OTJiZDQ5MTEyOTEyOQogICAgIDk3ZDVhZmUwYTg0NzRjOWUuMGVjNTEyNjU3ZDk4N2I2Zi40Yzg0OTkxYzE0YjY2NzRmLjM2MGFmYTI0MzhiYjk0MGIKLSAgICAwMDAwMDAwMDgwMDAwMDAwCi1WQ1ZUU0QyU0lfMzIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUERfMjU2XzMobWVtKQogICBiZWZvcmUKICAgICAxMmYxMzRjYjFhNDYzYzgyLjlkZDczM2ZjNGJjOWNjYzguNDAzZjNmYmJlYjdjZDc4NS5jOTczNjhhYjBlYWQ5YmU1CiAgICAgZTFlZTk4ZmE4YzQyNWE2Zi43YmI1MjEwM2I2OGIxM2RiLjI0MzJjNzExNjk2ZGRiNDkuYWZkOTYxYWY0MmRkMzc0ZQpAQCAtMzQ0MjEsOSArMzQ0MjEsOSBAQAogICAgIGUxZWU5OGZhOGM0MjVhNmYuN2JiNTIxMDNiNjhiMTNkYi4yNDMyYzcxMTY5NmRkYjQ5LmFmZDk2MWFmNDJkZDM3NGUKICAgICA2YTU3Y2Y0YjdhMWNmNzBjLjhkYmI3NDYxODYxODViODQuOTQ2YzI1NTMxNjc2NDFlOS41YzAyODI5NDRjZDM3NzM2CiAgICAgOGJmNzU3YWFmZmUwZDI4Ni4yZjM3Mjg4MjU3ZmNlMTZlLjZlYjdkNTZlMGNhNGM1OGYuMmIzYWM2YzZjOTFhOTY0YQotICAgIDAwMDAwMDAwODAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDQwCiAKLVZDVlRTRDJTSV8zMihyZWcpCitWVEVTVFBEXzI1Nl8zKHJlZykKICAgYmVmb3JlCiAgICAgOWUwNmE4YzI4YWNkNjRhNS4xZTljYWIwMzM3OWFhNTA4LmJlNzQzYWQyYzRjNGUwNDYuOGNlMDU0NGM2NzAxMjU2NwogICAgIGZhMzIzZTYzMDY1MDhiNDQuMDAxMDQ4NDIzZjU3MmRiZi45NGJkYTRiZTZhZmI5NWI4LmNjYjMxZGRiNDQ5YjFiOWUKQEAgLTM0NDM1LDggKzM0NDM1LDggQEAKICAgICBmYTMyM2U2MzA2NTA4YjQ0LjAwMTA0ODQyM2Y1NzJkYmYuOTRiZGE0YmU2YWZiOTViOC5jY2IzMWRkYjQ0OWIxYjllCiAgICAgZTk5ZGU3MDI2NTU1ODFiZi4wZTIxYTg1MzMzMjIyNmQ2LjBlNWY2NGIwZTQyZTNjNmYuMDhmY2FjMDViZTdlNjQ2MAogICAgIGM1OTM5ZjA5NDI2NzgzYzEuMjI5OTQ5MjIyZTA4NGM3YS44OGE2NzUxNmNlZTcxMTE4LjFkODc3ZGI4ZjJiNWJiZDgKLSAgICAwMDAwMDAwMDgwMDAwMDAwCi1WQ1ZUU0QyU0lfMzIobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUERfMjU2XzMobWVtKQogICBiZWZvcmUKICAgICA0MzkyZDY2NWY1NGY4NzljLmVjNjA2MmU2M2ExMmNkZjYuMTk0NWE2OWI0YzEzNWFkNy41ZGRlZDM1YWM1YjQ0ZjVlCiAgICAgMGJhYTU2MzhmZGNiNzM0MC5iODUwMmQwNGU4ZTM5YTBjLmQwZjEzYmFiYWE1MjBkMTguZWI1MzdiZWE2NDIxMzNlZQpAQCAtMzQ0NDgsOSArMzQ0NDgsOSBAQAogICAgIDBiYWE1NjM4ZmRjYjczNDAuYjg1MDJkMDRlOGUzOWEwYy5kMGYxM2JhYmFhNTIwZDE4LmViNTM3YmVhNjQyMTMzZWUKICAgICAxYzM0MDg0MzJmY2I1ZDRiLjg2YWVmYmNmZTg2NTI3YWQuMjE2ODg1M2M2M2NlMjA2YS44ZDUwNjgzMTQ4YjlmOTc0CiAgICAgNTNmYzY4NzNhNjVjMDJlOC5iM2M4YzhiM2Q3MjRiMDg1LmU5NzhmZTNjOTQ5NTUxZjguOWYyMzk2OWIwYzA4ZGQ5YgotICAgIDAwMDAwMDAwODAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAxCiAKLVZDVlRTRDJTSV82NChyZWcpCitWVEVTVFBEXzI1Nl8zKHJlZykKICAgYmVmb3JlCiAgICAgODM3NmE1ODhhNmZjZWQ3ZS44YWNlZjJiMjdmODkxZTQ0Ljk5ZTg5MDFjNTFhZDcxNDEuMDRlYjI0OTU1OGIyNWFmMAogICAgIDBjOGY3ZmUzYjRiOTkyOTIuOWU3NjIzZWRkNTVlNmQ4YS45NTViNTA3NmYxOGJhNThkLjRlOGU3MjM1Y2MzMmY3N2IKQEAgLTM0NDYyLDggKzM0NDYyLDggQEAKICAgICAwYzhmN2ZlM2I0Yjk5MjkyLjllNzYyM2VkZDU1ZTZkOGEuOTU1YjUwNzZmMThiYTU4ZC40ZThlNzIzNWNjMzJmNzdiCiAgICAgNzZhZDhhMTIxMjVlNDRmOC42YmJmNzYxMWM0ZThhYWU3LjA0NmQwMjJkNTM0YTg5MTQuYTMyZDY0MDcwYjIwZTZjNwogICAgIDFjMWJjMjdmNWQ3NjQwNWIuY2Q3NjY3MDg2OTMyOTI4Ny40MDY5YTRhZTE0Nzc1OTgzLmUwOTQ3N2Y3MzI4OGUxMDAKLSAgICA4MDAwMDAwMDAwMDAwMDAwCi1WQ1ZUU0QyU0lfNjQobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUERfMjU2XzMobWVtKQogICBiZWZvcmUKICAgICA3ZGVhZWRlMWE2ZjdlZWU4LjU5MjcyMzk4MzA4ZGMyNjcuYTA2NzcyYzBkZjQ4ZTE5NS5hNjlkMzE2M2QwOWQ1MTg1CiAgICAgOTY3MDQ4YjQyYjE3NzdlZS44YjFiYWFjNzI4MzAwNmNhLmMwNWUxNDIzNDMzNjUyM2UuOTI1M2E2YmEyMjQ4YWNjNwpAQCAtMzQ0NzUsOSArMzQ0NzUsOSBAQAogICAgIDk2NzA0OGI0MmIxNzc3ZWUuOGIxYmFhYzcyODMwMDZjYS5jMDVlMTQyMzQzMzY1MjNlLjkyNTNhNmJhMjI0OGFjYzcKICAgICAwNmVlYjM1NDA3ZTBmZDkxLjBkNDQ1MTdhZTBlOTQ3MmUuMDkyN2M4MWZiMDA5YTNhZC42MGQ5ZmQxZGE2MDVhN2Y1CiAgICAgYTgzMGFiYWU1NzYwM2NmZC4zYWVlMTYxY2Y0NDdjMjNmLjU3OGUwYTlmNDNjZDhlMGYuNmM3OTM0ZmFmOTVmN2RiYQotICAgIDAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDQwCiAKLVZDVlRTRDJTSV82NChyZWcpCitWVEVTVFBEXzI1Nl8zKHJlZykKICAgYmVmb3JlCiAgICAgYWUzOTMwY2Y3YTFiYWViYi41YTAyYWJhZjM3YTNlZjVkLjcwNjVmNDE5MDFkM2IyYWEuODY1ZTU2OGYxNzhjY2Y5MAogICAgIDljZjJlYzlmZTA5NTgwNGYuZjczMDJmNDJjMmIzZDRkZS4wOWY1ZThkZGEzMWI1NTFiLjcyNjUyOGRiNDk1NDI0NWIKQEAgLTM0NDg5LDggKzM0NDg5LDggQEAKICAgICA5Y2YyZWM5ZmUwOTU4MDRmLmY3MzAyZjQyYzJiM2Q0ZGUuMDlmNWU4ZGRhMzFiNTUxYi43MjY1MjhkYjQ5NTQyNDViCiAgICAgMzhmNTc4OTg4NWRkMWQyYi41Yjg2YjM1MjE0OWVhNWFjLjYzZWFlY2Q0NzVhYmU1M2QuZjc2ZGZkNmZmNDMxNDc5ZAogICAgIGRlOTBjZjI2MDQ3ZGMyZmEuNjJjZmIzY2Q0YTZmMWVmMi5kODhmZmU2YTEzMGQ5ZmJkLmYwNDM1MDM4MzUyZGY1ODEKLSAgICA4MDAwMDAwMDAwMDAwMDAwCi1WQ1ZUU0QyU0lfNjQobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZURVNUUERfMjU2XzMobWVtKQogICBiZWZvcmUKICAgICBiMzg5NjAxNGU3YjhlMGUyLmVhMGRlZGI2ZjkwNGFiNjkuZThkOGFjOWU4MDMzZmRkZC5jNjMxMTkwYjFhY2ZiZjQ3CiAgICAgMzQ5MDE2MDE5MDVkOTZiNi5iOGI5Y2ViMjAxZmIxNDIzLmM4NmUxOWIxZDBmNWZjOTguODcxYzM5MjMyNTdjODA4NgpAQCAtMzQ1MDIsOSArMzQ1MDIsOSBAQAogICAgIDM0OTAxNjAxOTA1ZDk2YjYuYjhiOWNlYjIwMWZiMTQyMy5jODZlMTliMWQwZjVmYzk4Ljg3MWMzOTIzMjU3YzgwODYKICAgICA5OTk2MzlkMjNlNTNjN2RkLmE0ZTA2Zjg3YjhmMDM4ZDUuZTA1Yjc2ZjI1OWMyZDg1MC43ODljNWIxZmQxYTExZjI2CiAgICAgYzA2NTQ3NzIwZWE2MmU4Mi4wOWNkY2FhMmI5NmU1NDJiLjBiNmIzZjRkMzRhNDRjMzEuZjZmZDc5NjliOWM5ZDhkNQotICAgIDgwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwCiAKLVZDVlRTRDJTSV82NChyZWcpCitWVEVTVFBEXzI1Nl8zKHJlZykKICAgYmVmb3JlCiAgICAgMDQ5MTllOWNhZjUzODYwYS44NGNhYmNjZjFjNjA4OGQyLjQ1Y2VkZDZlYTAwMmE0ZDAuMjQ2Y2YxYWY4MGE5MTU2NgogICAgIDRkNWM5ZDVjZjVjZGY0ZTkuYzA5MTEyZDQ4MzkwOTFmOC5iMzJkYTQ1NjBhMzY2NDcwLjA5MjkwNzAyNTZkZGVmMWIKQEAgLTM0NTE3LDcgKzM0NTE3LDcgQEAKICAgICA5MjM4ODgxYWU3N2E2Yzg1LjUyODZjNzZkNWYzZjA1MjEuYWYzNzE5Yzg5Mzk5Y2ZiOS45NTZkZmQzM2Q1NGE5NjdlCiAgICAgMzA3MTVkNDQyMmU3Mjk4Yy4xNDc1NTU4NmNkN2I5Zjc5Ljk0MzkzYTJmZDZiNDIyNTUuYTMwNTRmMmYxNmZmYzViOQogICAgIDAwMDAwMDAwMDAwMDAwMDAKLVZDVlRTRDJTSV82NChtZW0pCitWVEVTVFBEXzI1Nl8zKG1lbSkKICAgYmVmb3JlCiAgICAgYjk2MWY4MzQ1NDZhYWU2OC44MTUzMTc0NjQxOWY2OGE3LmU0MjkzYjBiZTg0ZjFjMmIuYzA3YzAyZjc2ZjE1OTlmMAogICAgIDc5YmQ0NzE2ODgzOWUwMzUuZTIyYWIyOGFlMDJmNjU4NS45YzZmZjJlOWNkYzczODY0LjhlNGY2ZDhkZmI0NzZmMzcKQEAgLTM0NTI5LDkgKzM0NTI5LDkgQEAKICAgICA3OWJkNDcxNjg4MzllMDM1LmUyMmFiMjhhZTAyZjY1ODUuOWM2ZmYyZTljZGM3Mzg2NC44ZTRmNmQ4ZGZiNDc2ZjM3CiAgICAgMmI5ZGUyNzJlZjdlOGE4YS5hZjQxMmI3ZDlkMjE1YmQwLjFhMTNmNzBhOThmMGFlNTAuNTlmZDc3NWIxNWQ3ZTFkNgogICAgIGFjY2M0NTM0YTY0NjY5OTQuNDRlNjdjOGIxMTA0ODgzNC4zOGUyYzc1YzYzZDUzYjFhLjdmZDExZGNlNWE1MDJiNzgKLSAgICBmZmZmZmZmZmZmZmZmZTQwCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WRFBQU18xMjhfMW9mNChyZWcpCitWQkxFTkRWUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDgxZjI5NTRkMzJlMzY3OC5kOTE3ZWQ0OGM5OWMzOTdmLmZkNjNhMzIxZGE2MTI2NWYuZDNhNWRkYzk0ZDgzOWJlZQogICAgIGEzMzA4OTNmM2ZhYjZmMmQuOGM0YTU1OWI3MzhkYjY3Ni4zNjA1OWJhOTkzYzY3MWZhLmM4MmJiNTNmNmYwNDhhZmEKQEAgLTM0NTM5LDEyICszNDUzOSwxMiBAQAogICAgIDE0YTJlNTdmODM3ZDc0NWUuZjg5ODU1YTljZDZkYTUzOS45OGU4ZWY0NDQ4ZDUwMjM3LjJiYWM5Y2YzZDFiNTAzNjQKICAgICA1MzNmYTMwODQ4ZmMwNjFiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YjE4NjE5MTkzYzY3MWZhLmM4MmJiNTNmZTc2N2MzNjgKICAgICBhMzMwODkzZjNmYWI2ZjJkLjhjNGE1NTliNzM4ZGI2NzYuMzYwNTliYTk5M2M2NzFmYS5jODJiYjUzZjZmMDQ4YWZhCiAgICAgYzg5NzczN2U0NjQxNzA5NS5hMjMxZjkxN2MwMjQ5YmE1LjRiMTg2MTkxZDliZWE3YjQuZjEzZmNiYTllNzY3YzM2OAogICAgIDE0YTJlNTdmODM3ZDc0NWUuZjg5ODU1YTljZDZkYTUzOS45OGU4ZWY0NDQ4ZDUwMjM3LjJiYWM5Y2YzZDFiNTAzNjQKICAgICA1MzNmYTMwODQ4ZmMwNjFiCi1WRFBQU18xMjhfMW9mNChtZW0pCitWQkxFTkRWUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNDNjNDVjZDc2OTQ3ODhiOS5lMTliZDlhZDkyZWFiODMxLjY4NGJlNTNlYjU3NDhmNWUuNzljMDQzMmU3Yjk4YmUyZgogICAgIGQ4MDc0MzQ5NGZhMzQ0NjkuOGRkMDRkNzQxMDE0NzhiZC5jZjE1MjZjMDk1NDYxNzQwLjQ5ZWU1OGJiMGU5MjE5NGEKQEAgLTM0NTU0LDExICszNDU1NCwxMSBAQAogICBhZnRlcgogICAgIDQzYzQ1Y2Q3Njk0Nzg4YjkuZTE5YmQ5YWQ5MmVhYjgzMS42ODRiZTUzZWI1NzQ4ZjVlLjc5YzA0MzJlN2I5OGJlMmYKICAgICBkODA3NDM0OTRmYTM0NDY5LjhkZDA0ZDc0MTAxNDc4YmQuY2YxNTI2YzA5NTQ2MTc0MC40OWVlNThiYjBlOTIxOTRhCi0gICAgZWVkNGQ1NGIxNjFiZjc1OC43MjhiM2Q0MDk5ODhmMGFjLjA5YzQ5MzFkODllZWY3MGEuNjZiYzJhNTc5ZTUwNGQzMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ODRiZTUzZWI1NzQ4ZjVlLjQ5ZWU1OGJiN2I5OGJlMmYKICAgICA2MWY3OGNjOWRiYmI1Y2IxLmVkMTlhMzdkYzhkMTViYWIuZjIyMmE4NDBhYjc5ZWJlOC4yYjc3YjU2ZWM2NWQ5NzkzCiAgICAgZjQ2YmY2NmMyMzQ1MzMxYQogCi1WRFBQU18xMjhfMW9mNChyZWcpCitWQkxFTkRWUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMWNlNGU4YmQ1MDk0NWM3Mi4wZDNiZTZiMGJhOGYzMWExLjVhYzY3ZDk4Mzk3YmY2NjUuNjdmY2UxMTUxOWYyYjEwOAogICAgIDAxMmQ4N2NlZTlkNzRmNDguY2Y2ZDVlZWFjZWE0MzA1NC4xNmRlYzZmYjg5MTNmZDg3LjQyMWViYjg4ZWY2NTAzOTMKQEAgLTM0NTY2LDEyICszNDU2NiwxMiBAQAogICAgIDZlNjNiZGRjZDI2NzgzMWQuMDBjYzk5MGMwNmJmOWViMS5lNjdlOTU0ZDM1M2EzZWIxLjlkNjkzZWY4NDE2YjNlYTEKICAgICBkNTJhZTFjZGY1MTU5ZTdhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YmFjN2ExMzg5MTNmZDg3LjYwNTNiMDg1ZWY2NTAzOTMKICAgICAwMTJkODdjZWU5ZDc0ZjQ4LmNmNmQ1ZWVhY2VhNDMwNTQuMTZkZWM2ZmI4OTEzZmQ4Ny40MjFlYmI4OGVmNjUwMzkzCiAgICAgZmU5NGNmMDk4Yzk5NDg0OC44MTVhNzE2NTMzMDYxNWY1LjdiYWM3YTEzNTQyNGFiYmMuNjA1M2IwODU0OGRmOWViOAogICAgIDZlNjNiZGRjZDI2NzgzMWQuMDBjYzk5MGMwNmJmOWViMS5lNjdlOTU0ZDM1M2EzZWIxLjlkNjkzZWY4NDE2YjNlYTEKICAgICBkNTJhZTFjZGY1MTU5ZTdhCi1WRFBQU18xMjhfMW9mNChtZW0pCitWQkxFTkRWUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZTQ2NDEzZjE4MWU5N2I3MS5hZmU3NGJiMjU5Y2MzYjc0LjI4OGY1NGNhNjJkZDg1YjMuYjM5ZTE0MTRjOGUyZWYxMgogICAgIGE2ZTE1MjRlMDBmNDkxYWYuMWM2Yzc3ZjZiZDU0YWRmOS5kNDcxMWQ4ZDY0NmI4NzI4LjNlNTlmMmQzYWFhN2ZkOGEKQEAgLTM0NTgxLDExICszNDU4MSwxMSBAQAogICBhZnRlcgogICAgIGU0NjQxM2YxODFlOTdiNzEuYWZlNzRiYjI1OWNjM2I3NC4yODhmNTRjYTYyZGQ4NWIzLmIzOWUxNDE0YzhlMmVmMTIKICAgICBhNmUxNTI0ZTAwZjQ5MWFmLjFjNmM3N2Y2YmQ1NGFkZjkuZDQ3MTFkOGQ2NDZiODcyOC4zZTU5ZjJkM2FhYTdmZDhhCi0gICAgZjY2ZTE4ZDE4ZTQyOWI2My4xMDNlM2MxNjk5OGMxNTU3LmUyM2Q3MDQwMjc3NjYwM2MuZTNmYjJiZjg3NjE1YTJjNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNDcxMWQ4ZDYyZGQ4NWIzLmIzOWUxNDE0YzhlMmVmMTIKICAgICBiMmQ2ZTM2NzQ4ZGQ1N2I3LmU5YTk5NzdkODlmZmFlM2EuMmRiZWNhY2ZjODA5Y2IxYS5mZWQwYmJlZWM5YjkxYjcxCiAgICAgZWIyMzlmMjEzZTFlYTQzOAogCi1WRFBQU18xMjhfMW9mNChyZWcpCitWQkxFTkRWUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMDY0MmQxZmQ3MmQxNzljNy5iNWU3MmZmYjQ5ZDM3ZmQ3LjAxZjg4Mjk3MmEzOWI1NTAuOTFjMWE1MjY2MjMwODVlZgogICAgIGFiNzc0ZmVmMDA1Y2Q1YzkuZGI2Yzc2NzlhZTMwY2ZmMC5iNTc5ZmJkMTE4Yzc2NjQzLmVhMTI3ZjMyMTJmODRhZTYKQEAgLTM0NTkzLDEyICszNDU5MywxMiBAQAogICAgIDAzNTYxZGMwOWIzMDE1ZDguZmYwMGVhZTMxMzRiZGJiYy42MjNjODQ1MDQ4MGNiNTcxLmVhY2UxZTE1MjE5OGU0ZWMKICAgICA0YWQwZGFjNGJhODkzMTU0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNTc5ZmJkMTE4Yzc2NjQzLjE0N2RkM2RkMTJmODRhZTYKICAgICBhYjc3NGZlZjAwNWNkNWM5LmRiNmM3Njc5YWUzMGNmZjAuYjU3OWZiZDExOGM3NjY0My5lYTEyN2YzMjEyZjg0YWU2CiAgICAgMzYwZjE0NjE4NDRkZjVlYi4wMDMwMzZjZDkzZmUwNTJlLjYyNzZmZDk1ZWQzNGZkYmYuMTQ3ZGQzZGRmMzZjZDYyYwogICAgIDAzNTYxZGMwOWIzMDE1ZDguZmYwMGVhZTMxMzRiZGJiYy42MjNjODQ1MDQ4MGNiNTcxLmVhY2UxZTE1MjE5OGU0ZWMKICAgICA0YWQwZGFjNGJhODkzMTU0Ci1WRFBQU18xMjhfMW9mNChtZW0pCitWQkxFTkRWUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMGY1MTg1ZDhkNzRhNzg4ZC42ZDk4NjQ3OWUxOTA3MDNkLmI2YTgwZWE3NGEyMzBlYzcuMTMxNzhkNmZjM2RiY2IwNQogICAgIDE1MWI5YTNiOTZlNzc3YzYuZDIyMWU3ZjZmMWY5NDNjNS4wMGY0MWUwNTU1OTA1OTdiLmNmNTMxMzVjZmEyZTdiMjYKQEAgLTM0NjA4LDExICszNDYwOCwxMSBAQAogICBhZnRlcgogICAgIDBmNTE4NWQ4ZDc0YTc4OGQuNmQ5ODY0NzllMTkwNzAzZC5iNmE4MGVhNzRhMjMwZWM3LjEzMTc4ZDZmYzNkYmNiMDUKICAgICAxNTFiOWEzYjk2ZTc3N2M2LmQyMjFlN2Y2ZjFmOTQzYzUuMDBmNDFlMDU1NTkwNTk3Yi5jZjUzMTM1Y2ZhMmU3YjI2Ci0gICAgMzdmYjk1ZGIxMzZkZTgyOC44ZDNjYTFhNTY3ZjdjYTFlLmI4YjA5N2U5NGZhMDc5MDMuZjMzYjExODU4YTkxMDA4MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNmE4MGVhNzU1OTA1OTdiLjEzMTc4ZDZmZmEyZTdiMjYKICAgICA1M2JkZjJhMzY4ZTc4OGUyLmZhMzc4ZWYxZTAxNzQwZjEuYmNhN2Y0NDA1NTVmMmE4Yy5kYjFkODY1NTBlOGU5N2MxCiAgICAgZTQ0MzZiMzcyMmI0N2M5MwogCi1WRFBQU18xMjhfMm9mNChyZWcpCitWQkxFTkRWUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNjhmYWJkOTk2NDhjZWJhMy40MzJkMmU3ZmI0NjIxMjFlLjc0NWNhYjQ2ZjhlNWUzZWQuZTdhN2IxZjQ4MmQ4Mjg0MQogICAgIGM0OGU3OWU2NmRhNDFmOWMuZTUxN2M0NWIxMWU4NDQwOS41OWY4ZjIxMDRhZWJlZGJjLjE0N2E0YWYzZjIxNzJlNGYKQEAgLTM0NjIwLDEyICszNDYyMCwxMiBAQAogICAgIDc0N2QxY2YyNGFjMWM5ZmIuYWI4N2VlYzQ2ZjRiOGE5YS5kMGM0ZjNiMzBkZDQyODg0LmU4Y2MwMTdlMGUxODQ1MjQKICAgICA0N2UyMTdlM2YxZjJjZTQ0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdlMjkzNTRjMDAwMDAwMDAuN2UyOTM1NGMwMDAwMDAwMAorICAgIGM0OGU3OWU2NmRhNDFmOWMuMTM0NjMwMjQxMWU4NDQwOS4wNDU3NjFiYjRhZWJlZGJjLjIxZWQzYjI3ZjIxNzJlNGYKICAgICBjNDhlNzllNjZkYTQxZjljLmU1MTdjNDViMTFlODQ0MDkuNTlmOGYyMTA0YWViZWRiYy4xNDdhNGFmM2YyMTcyZTRmCiAgICAgNTQ0YjlhOGFkYjg3NTUyYi4xMzQ2MzAyNDliODdkOGNlLjA0NTc2MWJiNzJiNzlhMGEuMjFlZDNiMjdjMzI4ZmFlMQogICAgIDc0N2QxY2YyNGFjMWM5ZmIuYWI4N2VlYzQ2ZjRiOGE5YS5kMGM0ZjNiMzBkZDQyODg0LmU4Y2MwMTdlMGUxODQ1MjQKICAgICA0N2UyMTdlM2YxZjJjZTQ0Ci1WRFBQU18xMjhfMm9mNChtZW0pCitWQkxFTkRWUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMThmZGY5NDI4OGMyNGY2Yy44MDZmZmM4ODU1ZGZiN2I5Ljg3YTc3YjI4YTgzZjE4OTguMWI4ZGE1NjRiNmNmZDFkNgogICAgIDM4ZTcyMzg3ZWU5NTg1YzkuZDQ2ZTM0Yjk5ODZjNWExMS44NTcwNTEzZDYzNmYzY2Y1LjNmZmM3MTNhMGEzM2QyYWIKQEAgLTM0NjM1LDExICszNDYzNSwxMSBAQAogICBhZnRlcgogICAgIDE4ZmRmOTQyODhjMjRmNmMuODA2ZmZjODg1NWRmYjdiOS44N2E3N2IyOGE4M2YxODk4LjFiOGRhNTY0YjZjZmQxZDYKICAgICAzOGU3MjM4N2VlOTU4NWM5LmQ0NmUzNGI5OTg2YzVhMTEuODU3MDUxM2Q2MzZmM2NmNS4zZmZjNzEzYTBhMzNkMmFiCi0gICAgODQ2ZTEyOWUzZjc2MmM4Ny5jY2M3YzJmMmIwZjRlZmFlLjdmYWVlZWVkYmJlN2IzZGQuOWE1ZjU1YTJhNDhjNjZiMAorICAgIDE4ZmRmOTQyODhjMjRmNmMuODA2ZmZjODg5ODZjNWExMS44NTcwNTEzZGE4M2YxODk4LjFiOGRhNTY0MGEzM2QyYWIKICAgICBkNjVjNDE3Mzk4NzIwMGQxLmM0YzRhMTlkMzkwNGIxM2QuNTIyZmNkMjZjZGI0Mzg3Yi44NjAwNGMwNjIxNjdjYjkxCiAgICAgNjEyYzUyZDQxYzRmM2JmOQogCi1WRFBQU18xMjhfMm9mNChyZWcpCitWQkxFTkRWUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgODUyZjY0NzczMmQwZjI5NC4wYjdlMmNmMjE0OTRiY2QzLjE4YjJjZTI4Y2UyN2RlNjkuZGJiZTZiZDNiNGUxODlmYwogICAgIDUwNTQ3YzViZmU3NjJlMTAuMDBhMDRmMDhkMGU4MWRiYi4yNGRjNDNmZTBiZWFiMGRmLmY0MjY0MmUwOGQ3YjYwOGMKQEAgLTM0NjQ3LDEyICszNDY0NywxMiBAQAogICAgIDQ2MzhiMzk1Mjk2NDIwNTUuOTUxMzJlYTU3NjU3YmRlNy5kNDE4ZmEzYmVmN2QzNTU4LjQ5YjQ5MGNhODIyMzkyODYKICAgICAzZTcyZmY3ZmQ3NDk2NTRhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMxOGFlYzRlMDAwMDAwMDAuYzE4YWVjNGUwMDAwMDAwMAorICAgIDUwNTQ3YzViZmU3NjJlMTAuOGY4ZDI2OWZkMGU4MWRiYi40NDkwZmU4YjhkZDg2NDRiLmY0MjY0MmUwNzM4ZDdhNTYKICAgICA1MDU0N2M1YmZlNzYyZTEwLjAwYTA0ZjA4ZDBlODFkYmIuMjRkYzQzZmUwYmVhYjBkZi5mNDI2NDJlMDhkN2I2MDhjCiAgICAgMWNlOTk4ZWIxY2NlMjkxNi44ZjhkMjY5ZmU4N2FkZWIyLjQ0OTBmZThiOGRkODY0NGIuN2EzNGQwMzk3MzhkN2E1NgogICAgIDQ2MzhiMzk1Mjk2NDIwNTUuOTUxMzJlYTU3NjU3YmRlNy5kNDE4ZmEzYmVmN2QzNTU4LjQ5YjQ5MGNhODIyMzkyODYKICAgICAzZTcyZmY3ZmQ3NDk2NTRhCi1WRFBQU18xMjhfMm9mNChtZW0pCitWQkxFTkRWUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMzMzYTk3NDQ4ZTBjYWZjYi4yYjhlYzljNWMxYzI0ZTc3LmVlZmNlMjA1OTk4YTc0ODQuMmZjMjMzN2FjZTY1NjBiMwogICAgIDA1ZDhkNjA1YzI3NzJjMzguMjUzN2Q3ZTU3Zjc2ZjEyOS43NjE1YmVhYTZhMjBiZmI2LmIzZDhhNWI0YzUxZDIxMDcKQEAgLTM0NjYyLDExICszNDY2MiwxMSBAQAogICBhZnRlcgogICAgIDMzM2E5NzQ0OGUwY2FmY2IuMmI4ZWM5YzVjMWMyNGU3Ny5lZWZjZTIwNTk5OGE3NDg0LjJmYzIzMzdhY2U2NTYwYjMKICAgICAwNWQ4ZDYwNWMyNzcyYzM4LjI1MzdkN2U1N2Y3NmYxMjkuNzYxNWJlYWE2YTIwYmZiNi5iM2Q4YTViNGM1MWQyMTA3Ci0gICAgOTAxNzM3YWY4Zjk3OTdiYi45MTdmZDg2MmZmMGM0MzE2LjBhMmEzZTgyMDgyNDVjYTguYmJhNzRkNTU3MTMwYjQwMQorICAgIDMzM2E5NzQ0YzI3NzJjMzguMmI4ZWM5YzVjMWMyNGU3Ny5lZWZjZTIwNTk5OGE3NDg0LjJmYzIzMzdhYzUxZDIxMDcKICAgICBiMGM0MzYyYzEyNzdhZDgwLmNiYjJjOGE4ZGUwZTgxZWIuODQwN2RmNzg4Y2EyMDU4Ny5hMzdhMjZjOTZkMmI1NDRkCiAgICAgYzY5ZjJjN2Q1Njk5M2Y5NgogCi1WRFBQU18xMjhfMm9mNChyZWcpCitWQkxFTkRWUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgODI2MTViZGJjNzA2YWU4OC40MWFjNGY2YTY3MjMyYWI1LjJmMWJhMzI0YjgwYmU2NTMuYzE3ODFiNzgxNGE3Nzc3ZQogICAgIDMyMGJiMDUxNWRmZWUwZDEuMWY5OWZmNTRhOGE4Yzk4My4xYTA4NjU0MDI3OGNhZmZiLjlkNDk3MDZlYmMzZTZlYmEKQEAgLTM0Njc0LDEyICszNDY3NCwxMiBAQAogICAgIGRkNGFiODMxNjVjMjc4MTIuMzJiNDEwZGI2NTZhNjFhMS5mMDk5OTAwZDNiNGY1ZGJhLmEyMzk1M2VkZGE1M2Q5YjAKICAgICA4M2YxZDg0ZTg4ZThjNmMxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIyMmVkZDk4MDAwMDAwMDAuYjIyZWRkOTgwMDAwMDAwMAorICAgIDMxZWEyNTRhNWRmZWUwZDEuMWY5OWZmNTRhOGE4Yzk4My5lNmMzMGI2YTI3OGNhZmZiLmY0NDU1OTQ3OWY3M2E1NjcKICAgICAzMjBiYjA1MTVkZmVlMGQxLjFmOTlmZjU0YThhOGM5ODMuMWEwODY1NDAyNzhjYWZmYi45ZDQ5NzA2ZWJjM2U2ZWJhCiAgICAgMzFlYTI1NGFiMzBlMGYxYi4yNjU3YzBkNWY0MTE0ODE5LmU2YzMwYjZhY2ExZjE4OGYuZjQ0NTU5NDc5ZjczYTU2NwogICAgIGRkNGFiODMxNjVjMjc4MTIuMzJiNDEwZGI2NTZhNjFhMS5mMDk5OTAwZDNiNGY1ZGJhLmEyMzk1M2VkZGE1M2Q5YjAKICAgICA4M2YxZDg0ZTg4ZThjNmMxCi1WRFBQU18xMjhfMm9mNChtZW0pCitWQkxFTkRWUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNzIzOTY2NTRjNTQxMjdjOC45MDc3NjU3NDEwYTQ1NzYzLjFmN2I2YjUxMTdjMGQwNDcuOTRkNmYwOTUxNmE4YjkyOQogICAgIDRkZGQ3OGVkYWU2N2JhZWYuYThiZDI2N2U1MDQyZTdiYS5jOTc3NGIyMzI3MWU1MzM5LjJlYzYyNzZlZjhiNzY5ODcKQEAgLTM0Njg5LDExICszNDY4OSwxMSBAQAogICBhZnRlcgogICAgIDcyMzk2NjU0YzU0MTI3YzguOTA3NzY1NzQxMGE0NTc2My4xZjdiNmI1MTE3YzBkMDQ3Ljk0ZDZmMDk1MTZhOGI5MjkKICAgICA0ZGRkNzhlZGFlNjdiYWVmLmE4YmQyNjdlNTA0MmU3YmEuYzk3NzRiMjMyNzFlNTMzOS4yZWM2Mjc2ZWY4Yjc2OTg3Ci0gICAgZWZhOThiMDM1ZjY4Mzk2Mi43ZjY3ZjhiYmMwMjc2NmMyLjBjNzUyZTNlYjA5MGE0YTAuMWFiNDMxMDQ3YzA3YTk4MQorICAgIDRkZGQ3OGVkYzU0MTI3YzguYThiZDI2N2UxMGE0NTc2My4xZjdiNmI1MTE3YzBkMDQ3Ljk0ZDZmMDk1ZjhiNzY5ODcKICAgICAzNDY4MTk4NGYzNTA2MDRmLjczYzJkODk3ZmNlMDBkMjguYzM0MThmOGNjZTIzN2ZhYi5iNGVlMGJjMzNlMjRiNWMzCiAgICAgNThiZWIwMTdkYzliYzhmOAogCi1WRFBQU18xMjhfM29mNChyZWcpCitWQkxFTkRWUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjI3MTFjNmNlZmY3MWZjZC5mOGU3YTA1Yjg2MjllZGRmLmRlMWJjMTdmYTFmODFiOTcuY2NhN2VhZmE5ZmUyYTI4NAogICAgIDJkNTM0YjJmMTVjNWY1ZWQuMTZmMzliNzQzNTAxOWE0MS4xZGJjYjBkZDRhZmJjYWJkLjAyNzNiYjc1M2NkOWM3NTcKQEAgLTM0NzAxLDEyICszNDcwMSwxMiBAQAogICAgIDdiZDRlNGFiMDllNDEyYzAuZDVkY2RkMWM1NWRkNDYyNS44ODA4OGNhZjFhZjRmZWQ3LjY0NmNiMDNlNTBhMTBhOWUKICAgICA0OTMxY2M2NWZlODk5ZjY5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44ZGYyOWYxZTk0NzY1NzQzLjAyNzNiYjc1M2NkOWM3NTcKICAgICAyZDUzNGIyZjE1YzVmNWVkLjE2ZjM5Yjc0MzUwMTlhNDEuMWRiY2IwZGQ0YWZiY2FiZC4wMjczYmI3NTNjZDljNzU3CiAgICAgMTdiMDNhY2FlYTkwODgwNS42YzU2ODZiYjFiZTQyMzlmLjhkZjI5ZjFlOTQ3NjU3NDMuNDE3MDdlZTdjMzE1YWI1MQogICAgIDdiZDRlNGFiMDllNDEyYzAuZDVkY2RkMWM1NWRkNDYyNS44ODA4OGNhZjFhZjRmZWQ3LjY0NmNiMDNlNTBhMTBhOWUKICAgICA0OTMxY2M2NWZlODk5ZjY5Ci1WRFBQU18xMjhfM29mNChtZW0pCitWQkxFTkRWUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgY2I4YzRlNDdlOWRhMjdkZi5iNTBhNDUzYzBlNGRkMGNjLjJkNTMxZDg0ZmVmOGJkMDAuNmI0YzcyZmI3OTAxZmIyNQogICAgIGM1NDliM2QyMmU5ZjVlMmMuMjFhMDU5ZWI5NjU4ZmRkMi40Zjg2YzFkZDMzNDE0NTVjLjkzMDk0ZDZkNGMyYTg5ZDkKQEAgLTM0NzE2LDExICszNDcxNiwxMSBAQAogICBhZnRlcgogICAgIGNiOGM0ZTQ3ZTlkYTI3ZGYuYjUwYTQ1M2MwZTRkZDBjYy4yZDUzMWQ4NGZlZjhiZDAwLjZiNGM3MmZiNzkwMWZiMjUKICAgICBjNTQ5YjNkMjJlOWY1ZTJjLjIxYTA1OWViOTY1OGZkZDIuNGY4NmMxZGQzMzQxNDU1Yy45MzA5NGQ2ZDRjMmE4OWQ5Ci0gICAgMTUzNDc1ZjFlOWU0MDA3Yi4xYWUwMWMyMzNkOTBkNjgxLjE5NDA0NTE1MGZjNTlhNjQuNWE4YTE5NzMzMGZhZTU5ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40Zjg2YzFkZDMzNDE0NTVjLjkzMDk0ZDZkNGMyYTg5ZDkKICAgICA5NTE5MTI5MDM0YjZjOGY4LmZlMTc4YjUwOWU4Mjk3ODMuNjU0ZTI1MTZhZjhmNzc0NS4xZDFjZDM3OGMwZmQ0YTIwCiAgICAgMzgwYjc1ZTg5OWMwZjYwZAogCi1WRFBQU18xMjhfM29mNChyZWcpCitWQkxFTkRWUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMDdhM2ZkMmY1NmNlMjMwZS4yM2MzMDU5YzJlMjA3M2QxLjI4OTFhMWRlNTViOTdjODQuMTE3Y2RkY2UyZWFiOWEyYgogICAgIGU2MmY2N2I5OTNiMzBkZDIuOTlmZmNiZmZmMTJmYmQzMC5mMzlhNWEzOWZmYzFjMTMxLmY3OTZlYTI4YTgyNmJjNDEKQEAgLTM0NzI4LDEyICszNDcyOCwxMiBAQAogICAgIDQ0NTdjZDQ3MDAzNDBjNGQuYjE1ZWJjN2U0MzY4MWMzMS5lMDg4YTYwNzlhNzY1OTNlLmU1YmVmMDcxMDA2N2Y0YWYKICAgICBhNTYzZTEzOTE1NDQ4MTVlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZDdkYjJjZDM3MjdhMTM2LmY1NjhjNzBmM2EwYjljYjMKICAgICBlNjJmNjdiOTkzYjMwZGQyLjk5ZmZjYmZmZjEyZmJkMzAuZjM5YTVhMzlmZmMxYzEzMS5mNzk2ZWEyOGE4MjZiYzQxCiAgICAgMzFmZGFkZjNlZGZjZjIwMy5kNTlhZGVhNjk5ZWQ2MTQxLmJkN2RiMmNkMzcyN2ExMzYuZjU2OGM3MGYzYTBiOWNiMwogICAgIDQ0NTdjZDQ3MDAzNDBjNGQuYjE1ZWJjN2U0MzY4MWMzMS5lMDg4YTYwNzlhNzY1OTNlLmU1YmVmMDcxMDA2N2Y0YWYKICAgICBhNTYzZTEzOTE1NDQ4MTVlCi1WRFBQU18xMjhfM29mNChtZW0pCitWQkxFTkRWUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMGYyNDE3NTM5NWIxZmZlZi43YjhhYzEyMzY3ZTg5ODVlLjBiMTdlMDcxMGFhY2FhMmMuYmEwNTMxNTFjMzNhMjRmNgogICAgIDAwY2QwZGFjOWRiNzI5OGMuMzJlMjg4ZjFiZWEzZDJkZi5iZDkzYzY2ZDBiYzRjNzVkLmE1NDE0ZjE5NGZmZjNmMGEKQEAgLTM0NzQzLDExICszNDc0MywxMSBAQAogICBhZnRlcgogICAgIDBmMjQxNzUzOTViMWZmZWYuN2I4YWMxMjM2N2U4OTg1ZS4wYjE3ZTA3MTBhYWNhYTJjLmJhMDUzMTUxYzMzYTI0ZjYKICAgICAwMGNkMGRhYzlkYjcyOThjLjMyZTI4OGYxYmVhM2QyZGYuYmQ5M2M2NmQwYmM0Yzc1ZC5hNTQxNGYxOTRmZmYzZjBhCi0gICAgNTUyYTNlMmU0OTY0YmQ2Mi5jNWFiMWIxZmEyZjFmNTdmLmE0OWRlYTVkNjFiYzJlZjEuZmY4OGZjYzlkOTUyZTYyNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wYjE3ZTA3MTBhYWNhYTJjLmE1NDE0ZjE5NGZmZjNmMGEKICAgICBlODA3MjljNmIzYzM3NTljLjkwMzE3NzE4YWY1ZTNlZTguOWQwMGM5MmQyOGEwOWMxMy4yMjI2MzRjZmZlYmY1NWYzCiAgICAgNmI2N2Y0OTY1OWQwYzgyMgogCi1WRFBQU18xMjhfM29mNChyZWcpCitWQkxFTkRWUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzc5NjM3OGE4NjEzN2E1Yi45NjMwNDc2MWZhZTEwZDY3LmVmYzA5OTQ3N2Y3N2U5YzYuODI4OWRlYzk3ZDdkY2RmMAogICAgIGUwMDBmOTE3MjIxNGE4NGQuM2I3MDE2ZWEzOGM4NDJlZS4zZWEzN2MxYWIxYzczMWM2LjMwMDRhNTFkN2M1ZTdjYjQKQEAgLTM0NzU1LDEyICszNDc1NSwxMiBAQAogICAgIDNkYjZlYmFjMTY3YzY3MDcuZGI2OWI0NzUwYTI3NzNlMy4xYzk4NzY1YWE1M2Q4Y2RjLjU3MDAzOTlkZTY1ZTQ4OWYKICAgICA4ODE5ZmZhMTg5OTRkYjFmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZWEzN2MxYWIxYzczMWM2LjMwMDRhNTFkN2M1ZTdjYjQKICAgICBlMDAwZjkxNzIyMTRhODRkLjNiNzAxNmVhMzhjODQyZWUuM2VhMzdjMWFiMWM3MzFjNi4zMDA0YTUxZDdjNWU3Y2I0CiAgICAgYzNmMjM2YTljOTVkOGRhMi5iMzk1MTE0Yzg5ODdkMTVlLmQ5MjcxY2ZjZGVkYjU0OTQuODMzZDlhMTU0MDUwNjc4YQogICAgIDNkYjZlYmFjMTY3YzY3MDcuZGI2OWI0NzUwYTI3NzNlMy4xYzk4NzY1YWE1M2Q4Y2RjLjU3MDAzOTlkZTY1ZTQ4OWYKICAgICA4ODE5ZmZhMTg5OTRkYjFmCi1WRFBQU18xMjhfM29mNChtZW0pCitWQkxFTkRWUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZjM1MzY3MGU0NWZmZGUzNS5hODk4MTI4Y2E1ZmQ3MDI3LjhkYjk3YjUwZDZiNmU3YTguNjI0Mjg0OWU5ZjdjMTU0OAogICAgIDcyN2JlZGNlMzdhYTBiMGQuNjFlNmE5YjYxMzZhZTRhZi5hNjUxZTJjOTBhM2ZlN2RhLjA5NzE0NDM1NmIyMTJkODcKQEAgLTM0NzcwLDExICszNDc3MCwxMSBAQAogICBhZnRlcgogICAgIGYzNTM2NzBlNDVmZmRlMzUuYTg5ODEyOGNhNWZkNzAyNy44ZGI5N2I1MGQ2YjZlN2E4LjYyNDI4NDllOWY3YzE1NDgKICAgICA3MjdiZWRjZTM3YWEwYjBkLjYxZTZhOWI2MTM2YWU0YWYuYTY1MWUyYzkwYTNmZTdkYS4wOTcxNDQzNTZiMjEyZDg3Ci0gICAgZTI1ZTBkY2Y3YWExMWVkNC5jNGViYWI5NGZjNTEwMTRhLjAyZmQ2NmNjYzFjZjMwYTQuNmM3MWIxOGNhMmJhMGU0MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNjUxZTJjOTBhM2ZlN2RhLjYyNDI4NDllOWY3YzE1NDgKICAgICAxZmM2NDRmYzJiZjBkNWI2LjJkZjIxNTk0ZmEzZTAxYTUuN2Q4ODgyNDUxNzcxN2UzMy5lNjhkYzcwZGUyZDJmNTI5CiAgICAgZDUxMzgzMjZjN2Y2MWRlNAogCi1WRFBQU18xMjhfNG9mNChyZWcpCitWQkxFTkRWUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgOTQ0ZGUwNDFlY2IxYzQyMS4wNTdmMGQ0MDY1YTRlYWRmLmY5NDhlMTIwYWNiYzIxNmMuZjNiZmIyMjAyOTMxOGNiMwogICAgIDdlODhkOWNjZWU4ZjIzOGMuNzA1N2U0ODk0NWM5MWE3OS44MjM5MGRhNmFjNTc5ZDRhLjQwNmY3MzRhMTMxYzE3NGYKQEAgLTM0NzgyLDEyICszNDc4MiwxMiBAQAogICAgIDQ3MzA5NWRmZjZlNTAxOTkuNDQ5MGFjZDc2NTkyYmFiNy4zZTFjNzI0ZDA3MTU5N2ZkLmNmNjU5NDM3ZGNhMDkzOGQKICAgICBjODQ0ZWRkMmY0NTJmZDg3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDdlODhkOWNjZWU4ZjIzOGMuNzA1N2U0ODk0NWM5MWE3OS44MjM5MGRhNmFjNTc5ZDRhLjQwNjIzZmFkZjAzZGRiMzQKICAgICA3ZTg4ZDljY2VlOGYyMzhjLjcwNTdlNDg5NDVjOTFhNzkuODIzOTBkYTZhYzU3OWQ0YS40MDZmNzM0YTEzMWMxNzRmCiAgICAgZjExMDZkMzI2ODFjNzlkMC4zYjE5NDVjMmU3NjkyMWIzLjI1MTE5NDkxOTY5YmIwZWMuNDA2MjNmYWRmMDNkZGIzNAogICAgIDQ3MzA5NWRmZjZlNTAxOTkuNDQ5MGFjZDc2NTkyYmFiNy4zZTFjNzI0ZDA3MTU5N2ZkLmNmNjU5NDM3ZGNhMDkzOGQKICAgICBjODQ0ZWRkMmY0NTJmZDg3Ci1WRFBQU18xMjhfNG9mNChtZW0pCitWQkxFTkRWUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMDljYWM2NmM1NDVlZDI0ZS5kZTM2NGYzZjM1NzZmNjk1LjY2ODk5NmI1ZGQ1MGEyYjIuMjlhNmE0NDY5YTUwOGUyYQogICAgIDZkYzU5Y2YwMTdkMGQxMGQuMTA2Yzk1YmVjMDU5OTU2ZC43ZGQwN2U0NjZiYWQ5NWNmLjQyZmEyNWU4ZWJkOGQwMWYKQEAgLTM0Nzk3LDExICszNDc5NywxMSBAQAogICBhZnRlcgogICAgIDA5Y2FjNjZjNTQ1ZWQyNGUuZGUzNjRmM2YzNTc2ZjY5NS42Njg5OTZiNWRkNTBhMmIyLjI5YTZhNDQ2OWE1MDhlMmEKICAgICA2ZGM1OWNmMDE3ZDBkMTBkLjEwNmM5NWJlYzA1OTk1NmQuN2RkMDdlNDY2YmFkOTVjZi40MmZhMjVlOGViZDhkMDFmCi0gICAgZDBmZmVhNGE1OWI1YjVmMC4zYTFmNjVjOTM0MWMxOWQwLjY1MzFlMDc3MmFiNzRmM2IuZTQ2NmYwOWY5ODNhOWE4NworICAgIDZkYzU5Y2YwMTdkMGQxMGQuZGUzNjRmM2YzNTc2ZjY5NS42Njg5OTZiNWRkNTBhMmIyLjQyZmEyNWU4ZWJkOGQwMWYKICAgICAwZTQ1MmM2NjM3MTgzOTI1LmI5OWNiYmNhMmQ0YmMwNjguZmE3ODM4MzUzNzdhOGIyMi42ZDM0MDRkODNhMDEyODBmCiAgICAgMzhiMTVhZmQ2ZmJhYjY2MgogCi1WRFBQU18xMjhfNG9mNChyZWcpCitWQkxFTkRWUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYTEyOGYwN2JkM2YwN2YyZC4wMjYzZGUzMGNjMDUxOWQ2LmU3MmM5MTJlNDU3MGM0ZTIuMTc3MDAzNmFhZDAwMDZhZgogICAgIDA0ZTdjMGJmMDEyZmMxMWIuOGEyNTdjOTQzNTg5MTMyZi4yMTFlZTU2MjFiMTk2MWU5LjlhZTdiYzA0YTg1NzdiMGYKQEAgLTM0ODA5LDEyICszNDgwOSwxMiBAQAogICAgIDI3NjkwNDQ2MmNmOTlhMTMuYzJjNDZkZGJmMTgzNDA4Yy4yYTU0ZjRlNjZiMjU1YTUwLjNlN2RlODEzYTBhNjQ3ZjYKICAgICAxODM1NTM2MWQ0YjYxNWQ1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDA0ZTdjMGJmMDEyZmMxMWIuODE1NzgzN2U4ZGFmZTE1ZC4yMTFlZTU2MjFiMTk2MWU5LjlhZTdiYzA0YTg1NzdiMGYKICAgICAwNGU3YzBiZjAxMmZjMTFiLjhhMjU3Yzk0MzU4OTEzMmYuMjExZWU1NjIxYjE5NjFlOS45YWU3YmMwNGE4NTc3YjBmCiAgICAgYmQzOWM4MzQ5NTAzYjVkYS44MTU3ODM3ZThkYWZlMTVkLmM0YmRiMmQwNDhkMmQ1MmEuNWVhN2RmZWU0NThiYTg2ZAogICAgIDI3NjkwNDQ2MmNmOTlhMTMuYzJjNDZkZGJmMTgzNDA4Yy4yYTU0ZjRlNjZiMjU1YTUwLjNlN2RlODEzYTBhNjQ3ZjYKICAgICAxODM1NTM2MWQ0YjYxNWQ1Ci1WRFBQU18xMjhfNG9mNChtZW0pCitWQkxFTkRWUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYzY5YjlkYzNmZGM3Y2QzOC5hMGM0NmU2MDYyOWNhYTc1LjJiM2FiODk1N2MxMmVjZTcuYjAzMWE3MGYxZGEwMmQwOAogICAgIDI2N2I0MTI2MzhlNDJkNDguODM5NjA0ZjBkMTc5MjJhYS45NjgzZTA5YTRiNjdhMDliLmIyOWVjOGI3ZmNjZjg5ZmUKQEAgLTM0ODI0LDExICszNDgyNCwxMSBAQAogICBhZnRlcgogICAgIGM2OWI5ZGMzZmRjN2NkMzguYTBjNDZlNjA2MjljYWE3NS4yYjNhYjg5NTdjMTJlY2U3LmIwMzFhNzBmMWRhMDJkMDgKICAgICAyNjdiNDEyNjM4ZTQyZDQ4LjgzOTYwNGYwZDE3OTIyYWEuOTY4M2UwOWE0YjY3YTA5Yi5iMjllYzhiN2ZjY2Y4OWZlCi0gICAgMTJhMGJiNzRhMDE5ZWYzMy4yYjJiYzE2MTE4MWIzZTVlLmUxNmM1ZmQ0Nzk4ZTFhZDQuOGRlODUxNGFhNDNjYWNkZAorICAgIDI2N2I0MTI2MzhlNDJkNDguYTBjNDZlNjA2MjljYWE3NS4yYjNhYjg5NTdjMTJlY2U3LmIwMzFhNzBmMWRhMDJkMDgKICAgICA2OGQ3ODc5YTUyNzJjZjI1LmY2Y2ZhMTIwZDEwZTM5M2UuZTZjMWIzMzEyMjk0MTNiZC45YjVhNDAzNGIwNzVkMDUyCiAgICAgMzk0MjkxZTFiZDA2MzIwOAogCi1WRFBQU18xMjhfNG9mNChyZWcpCitWQkxFTkRWUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYzNlYjNlYmU2NjdhMGRhYy4wMmVkMjE4NDZhZmM4YjRhLjNlY2VhMDk3OThkZjUwZjYuODM0ZDU3OWM2NDg0NGE4MwogICAgIDk1YTA0NTM1NDc1ZDllZWEuYmVhYzA2MWYwMmMyZGRjZC42MTczYmEzMzBhMThiZjMxLjkyZGVjNzAxNTg2Yjc5NTEKQEAgLTM0ODM2LDEyICszNDgzNiwxMiBAQAogICAgIDgxNjE0ZWE1MjRhMWQyZTIuMDc1NzllMTQyODMzMzU5Zi5hNGUyMzE4YjVkZjg5NGUzLjdhM2JmYzY5Y2I0YmIyYjcKICAgICAwYTlmYjg0NDgyNWMzM2E3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDBiYWVhMWIzZmQzYjIxNmQuYmVhYzA2MWYwMmMyZGRjZC5iYTBiZWM2MWMyNDhjMjljLjkyZGVjNzAxNTg2Yjc5NTEKICAgICA5NWEwNDUzNTQ3NWQ5ZWVhLmJlYWMwNjFmMDJjMmRkY2QuNjE3M2JhMzMwYTE4YmYzMS45MmRlYzcwMTU4NmI3OTUxCiAgICAgMGJhZWExYjNmZDNiMjE2ZC43NmUwYjE1NTM5ZDE4MmRiLmJhMGJlYzYxYzI0OGMyOWMuZjEzZjdmNGMxYzU0NWQ1NAogICAgIDgxNjE0ZWE1MjRhMWQyZTIuMDc1NzllMTQyODMzMzU5Zi5hNGUyMzE4YjVkZjg5NGUzLjdhM2JmYzY5Y2I0YmIyYjcKICAgICAwYTlmYjg0NDgyNWMzM2E3Ci1WRFBQU18xMjhfNG9mNChtZW0pCitWQkxFTkRWUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgN2UzNzMxY2E1ZDk0OWU1MC41MzA1NDg3NjU3MWFlY2Y0LjRlZGM0YTQ3ZWRmN2I0NDYuN2M0NDg1MWY3NmI2NzJiMQogICAgIGIwY2ZlM2U1NzdmZWFkZGQuZGRlNjhiOTEzMjMyYWM1MC4yNTNhMmZkYWE0MjZiOWZiLjlmN2RlNTg3YTkwZTk4YjIKQEAgLTM0ODUxLDExICszNDg1MSwxMSBAQAogICBhZnRlcgogICAgIDdlMzczMWNhNWQ5NDllNTAuNTMwNTQ4NzY1NzFhZWNmNC40ZWRjNGE0N2VkZjdiNDQ2LjdjNDQ4NTFmNzZiNjcyYjEKICAgICBiMGNmZTNlNTc3ZmVhZGRkLmRkZTY4YjkxMzIzMmFjNTAuMjUzYTJmZGFhNDI2YjlmYi45ZjdkZTU4N2E5MGU5OGIyCi0gICAgN2QzMjQ4ODNlY2E3MWM3Yi43YTRmMTQ2NDUyNzY0ZWEyLjY5M2VjYmI5NjhjZTAxZWIuNjdkOTRiMzE5NDhhNDE5NAorICAgIDdlMzczMWNhNWQ5NDllNTAuNTMwNTQ4NzY1NzFhZWNmNC40ZWRjNGE0N2VkZjdiNDQ2LjlmN2RlNTg3YTkwZTk4YjIKICAgICBjMTJlZGU4ZWQ5OWFhODU1Ljg4OGVkZTVhNTI3MTBlOTUuZjdiNDk5ZDA1NmZhNDc0Mi4zMmEzYjU4OGQwYjhhYTAwCiAgICAgNWEyOTFlZjhmYjI0MGZhNQogCi1WRFBQU18yNTZfMW9mNChyZWcpCitWUE1VTERRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDNjYjU4M2VkYjE1OGFjMmQuNTg4ZDFmZjQ1OWUzMGU5OC42MmVkZTVkZmNmYjAyN2Q2LmE5NjgxNTBiODliNzQ4MmIKICAgICAzNTk0ZGVkMzhkZTJiYzQ1LjFmMWM4YWEwODk4ZTA3NzAuNjRiOTI2NWY2NGJlZDYxMC41YzI2YmM1NjFkMGZjMGQzCkBAIC0zNDg2MywxMiArMzQ4NjMsMTIgQEAKICAgICBkNzdhNmIyMzI4MjYyOGQzLmE4ZmFjNjc5NjczY2E5OGQuNGZjODQyMDE0ODc4ZTUyMS4zNWVmNzdjZGRiYzYwNDBlCiAgICAgMTM5Mjg0ZDAzYzNjNDhmYQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGZjYTViMWNjYTE4MWYwMC4wNTU3ZGVhMzk3ZDI0NDNmCiAgICAgMzU5NGRlZDM4ZGUyYmM0NS4xZjFjOGFhMDg5OGUwNzcwLjY0YjkyNjVmNjRiZWQ2MTAuNWMyNmJjNTYxZDBmYzBkMwogICAgIDlmMTIyZDE3MmI0ZTdjOTguZjBhNzk4N2Q4NGE4NTIwOC5lYTNlOWI0N2FlMjc1N2YwLmVjYmEwODllMmYxMTZiNjUKICAgICBkNzdhNmIyMzI4MjYyOGQzLmE4ZmFjNjc5NjczY2E5OGQuNGZjODQyMDE0ODc4ZTUyMS4zNWVmNzdjZGRiYzYwNDBlCiAgICAgMTM5Mjg0ZDAzYzNjNDhmYQotVkRQUFNfMjU2XzFvZjQobWVtKQorVlBNVUxEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICA2MjcwYWM5NDZlN2VmMzU0LjM5MWE5NDY1MWZmOGZjYTEuMjNlMTkxODA0ZDU3YzkyYS5mMWEzMTZmYWNmM2JiZDUxCiAgICAgZmU1MzY5MDQ4ZTk5YzA0OS4yMTNjYTQ0N2FkNTAzM2FmLjNkMjg3NDdjNTIwNDZlMGMuMmIxYTEzOWZkZWZmMWIyOQpAQCAtMzQ4NzgsMTEgKzM0ODc4LDExIEBACiAgIGFmdGVyCiAgICAgNjI3MGFjOTQ2ZTdlZjM1NC4zOTFhOTQ2NTFmZjhmY2ExLjIzZTE5MTgwNGQ1N2M5MmEuZjFhMzE2ZmFjZjNiYmQ1MQogICAgIGZlNTM2OTA0OGU5OWMwNDkuMjEzY2E0NDdhZDUwMzNhZi4zZDI4NzQ3YzUyMDQ2ZTBjLjJiMWExMzlmZGVmZjFiMjkKLSAgICBjMzA3MzkwY2I3OTg2ZDA0LmViMmU5ODM3NmViODBhYTkuZDI5YWViNWE5NDRmNTM1Zi41ODdhMzY1YTExNGQzYTU4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE4Yzc3NTBkZjEzNTc5ZjguMDY0OTc4MzA0ZjM3ZGNmOQogICAgIDhkNWE5Nzk3MDY4N2I0YjIuZjMzYTZiOWZmY2JmYmMzYS5iZTA0NzMwNjJjNDUzNTRlLmQ2MTA3YTk5MDViMzU4ODgKICAgICBmZjI2ZGJjNzU2YmNhZjY1CiAKLVZEUFBTXzI1Nl8xb2Y0KHJlZykKK1ZQTVVMRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzEwODU1NTA5ZmY1N2I5Yy4zODE3ZmY5Mzk2NzM1MTdmLjk1YWQxOWVkZjZlZTg3MGYuZGQzMjg2NmQzOGYxZDAwNgogICAgIGM2MDRlNGEwN2NlOWZhZDkuYTAwOWVlZWM4NDY3MDI5Ni4yZGQyOWU4Y2Y1ZDNhNWQzLjBiZjBhMjc5ZDQ1ZmRmYjIKQEAgLTM0ODkwLDEyICszNDg5MCwxMiBAQAogICAgIDhkNzYzMjQ1NjUzM2ZjMTMuMTdiZjRkNjBlODk4OGE1NC5hZjY2MWU2ZDc4ZWNjY2RiLjAzNGNlMjM1MjliMzRjOTkKICAgICA4NjgxZmZiYjFiYjAyMjJiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNDE4MWMzYTU2ODI5ZjA5LmZiNGI4MTdhNmRmZTM5NGUKICAgICBjNjA0ZTRhMDdjZTlmYWQ5LmEwMDllZWVjODQ2NzAyOTYuMmRkMjllOGNmNWQzYTVkMy4wYmYwYTI3OWQ0NWZkZmIyCiAgICAgMWM2NTg1MjM4YTI0NjZjNy5hMWZkZGU4Y2ViNmY4MTI0LjE3ZjdmN2U4OThmOTUyMzMuMjMwYTQyMTgxYjljMjA3ZgogICAgIDhkNzYzMjQ1NjUzM2ZjMTMuMTdiZjRkNjBlODk4OGE1NC5hZjY2MWU2ZDc4ZWNjY2RiLjAzNGNlMjM1MjliMzRjOTkKICAgICA4NjgxZmZiYjFiYjAyMjJiCi1WRFBQU18yNTZfMW9mNChtZW0pCitWUE1VTERRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDg4NzYxMzk4MGNhMDVkNjIuNzc4NGVhNzJhOGExZjc2OC5kZDFiYjY1NDk2ZWRkYjUzLjUxNmQxMTg4MzMzOTRkNzYKICAgICBlNWY4OWNiNzE5OGViODY5LjM0ZGJhNjE3ZWZmYTk1NzMuZDFkZDk2NTUxMTdhMmU0ZC41OTU2Y2JhMzY1NmIxMmIwCkBAIC0zNDkwNSwxMSArMzQ5MDUsMTEgQEAKICAgYWZ0ZXIKICAgICA4ODc2MTM5ODBjYTA1ZDYyLjc3ODRlYTcyYThhMWY3NjguZGQxYmI2NTQ5NmVkZGI1My41MTZkMTE4ODMzMzk0ZDc2CiAgICAgZTVmODljYjcxOThlYjg2OS4zNGRiYTYxN2VmZmE5NTczLmQxZGQ5NjU1MTE3YTJlNGQuNTk1NmNiYTM2NTZiMTJiMAotICAgIDc4ZDExNjA0NWQ4NmVmNmQuMjFjNzYzOWVkN2NiMTBlMC5jZWQwNjc0ZDc3NGM0MDZkLjIzNmU0OTJiYTkwZjU3MzcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjhkM2E1ZWEyYjgxZTFmNy4xNDRiMDg0MDJkMjk4ZDIwCiAgICAgMWZjZGZiNmNmNTk1YzA5OS45Yjk0MWU3NWZiOWZhNTVhLmIwYzJhNzJhZTE2ZWNkZGYuMGIwMTg1OGQ5Y2FmNTdiNQogICAgIDZkNWE3ZDMzZDlkYTRmZDYKIAotVkRQUFNfMjU2XzFvZjQocmVnKQorVlBNVUxEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICBhNGM3MmM4YmZjMTk3YjQ3LmI1YmFjOGQ5ZmNjNmU1MWIuZmM4ZWQyMDZmODAyOGY4ZS41MjdkZDFkNzZkZWM5MGQxCiAgICAgMGU5MjhlMDBhMmZhMTdiNC4xNTYzZmEzODhmMjUxYjFjLmExMDA3YmJmNjk4MTBiMjguOTJjZTYxNDAzN2QzNDY2ZApAQCAtMzQ5MTcsMTIgKzM0OTE3LDEyIEBACiAgICAgZTc3NjVjZjFlNWQwOGQzMC5hNzE3N2I3ZGM3OWZhOTUxLjI4N2Y5ZDU2MTkwMGE5M2IuNTg2MmE0ZjZmMjBhN2I1NAogICAgIDk2M2Q0ZjFiMWM3MTcxZjgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY3OWQ2MGEyY2QyODc5ZjguMTNhYTc0MzNiYWFiMjdmMwogICAgIDBlOTI4ZTAwYTJmYTE3YjQuMTU2M2ZhMzg4ZjI1MWIxYy5hMTAwN2JiZjY5ODEwYjI4LjkyY2U2MTQwMzdkMzQ2NmQKICAgICAwNjA5YTBmZTY3MDg1ZWM5LjFkOTMwYzc2YzliZjFlY2IuZTYzNzE1MGJlYmE3NTVkMy40YTgxZDM1MDVhMmVhYmRmCiAgICAgZTc3NjVjZjFlNWQwOGQzMC5hNzE3N2I3ZGM3OWZhOTUxLjI4N2Y5ZDU2MTkwMGE5M2IuNTg2MmE0ZjZmMjBhN2I1NAogICAgIDk2M2Q0ZjFiMWM3MTcxZjgKLVZEUFBTXzI1Nl8xb2Y0KG1lbSkKK1ZQTVVMRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZTJkZDUwYWNmMzcxNGFmNi4wZjI2YzA0NWJiZGRlMDk4LjkxYmJjMTNiYTRkMjdhZGQuYzEyNDBlMGM5MDE5NDIwZQogICAgIDE2MGYyMzk1OTQxNmMyN2IuZDk2NGM3NjY4M2JiOTJhYi5iNTRiNWM5YjdkNjI0YTk5LjBlNzI2NDk5ZWI3ZDVkZjUKQEAgLTM0OTMyLDExICszNDkzMiwxMSBAQAogICBhZnRlcgogICAgIGUyZGQ1MGFjZjM3MTRhZjYuMGYyNmMwNDViYmRkZTA5OC45MWJiYzEzYmE0ZDI3YWRkLmMxMjQwZTBjOTAxOTQyMGUKICAgICAxNjBmMjM5NTk0MTZjMjdiLmQ5NjRjNzY2ODNiYjkyYWIuYjU0YjVjOWI3ZDYyNGE5OS4wZTcyNjQ5OWViN2Q1ZGY1Ci0gICAgMTBhMDQ1YzMxYTZiOTRiMy5hMDdlNmVjMGQ5ZjZlMDE2LmYxOTNjNzg5NmQ1ZGQ4YjIuNmJiNTliNjljNmI4MzY5ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMzU3YzNmZjRhZTk1MDE1LjA4ZjcyMGQ4MzAwMTRkNjYKICAgICBhYTVhMzEyMGEyN2M3ZGM5LmMyYmVhZmJmNWExYjA2ODQuMWY1ZjdlZjA5MGNmZGU1My4zNDM4YWZlOGJlNTcwOGI2CiAgICAgYzU0OTlkODM2ZmU1MTFlNgogCi1WRFBQU18yNTZfMm9mNChyZWcpCitWQ01QUERfMjU2XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDdhMzI2MGE0NzRlZjhhZGQuYzIwOTYyOWE0NzU1MzllOS45OTcyODhkMGExYjY0MGEyLjFkN2FmZGJmMDNjMzE5YTkKICAgICBhZjQwZjRiOTY5ZmZiMjQ0LjMyN2I1NzFiMjYwMzg0NDEuODNlNGY0NWQ0YjUxYzkxYi5jNWIxYzBkZmUyNDU0NWRmCkBAIC0zNDk0NCwxMiArMzQ5NDQsMTIgQEAKICAgICAwOWZiODA2Yjk1NjdmYjE5LjhlZDQ3NmU3MDAwY2I1NDMuZmMzNDc1YTAzNWJjYmJkMS44N2EzMDRjNTUxMjQ1ZjllCiAgICAgNThmNjdjNjQxYTk5YzU3ZQogICBhZnRlcgotICAgIGZmODAwMDAwMDAwMDAwMDAuZmY4MDAwMDAwMDAwMDAwMC5mZjRkOTRkMTAwMDAwMDAwLmZmNGQ5NGQxMDAwMDAwMDAKKyAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgYWY0MGY0Yjk2OWZmYjI0NC4zMjdiNTcxYjI2MDM4NDQxLjgzZTRmNDVkNGI1MWM5MWIuYzViMWMwZGZlMjQ1NDVkZgogICAgIGMwYmY1NTJkZWJhM2M0Y2EuZDc3Yjg5OTE1YTkxMTlmYS5kYTYxZWZkNGYzN2FkZTlkLmY0ZDA0NDNkNDg2MTFkMjIKICAgICAwOWZiODA2Yjk1NjdmYjE5LjhlZDQ3NmU3MDAwY2I1NDMuZmMzNDc1YTAzNWJjYmJkMS44N2EzMDRjNTUxMjQ1ZjllCiAgICAgNThmNjdjNjQxYTk5YzU3ZQotVkRQUFNfMjU2XzJvZjQobWVtKQorVkNNUFBEXzI1Nl8weDQobWVtKQogICBiZWZvcmUKICAgICA0NDk1MjkwNGJlY2QwYmVmLmU2M2Y2ZmUxMDRkNjkzZGQuMzE1Mzk4MDkzMzdmMTQ0Ni40M2FiODMyZGFmYTQ5YjY1CiAgICAgMjc0Yjg1OTM1YWNiZWUxZC5iM2Q5MjBmYWQ0N2NjYWMzLjlkYzQ2ZGUzMGZmNmYxMzAuMGMxMTE0ZTZmYWJkYmIwNQpAQCAtMzQ5NTksMTEgKzM0OTU5LDExIEBACiAgIGFmdGVyCiAgICAgNDQ5NTI5MDRiZWNkMGJlZi5lNjNmNmZlMTA0ZDY5M2RkLjMxNTM5ODA5MzM3ZjE0NDYuNDNhYjgzMmRhZmE0OWI2NQogICAgIDI3NGI4NTkzNWFjYmVlMWQuYjNkOTIwZmFkNDdjY2FjMy45ZGM0NmRlMzBmZjZmMTMwLjBjMTExNGU2ZmFiZGJiMDUKLSAgICBkZWU2MGVmYjA5OWYyYjMzLmNiMTM4ZTIyOWZlNWRhNzcuYWVmMzcxNjFiMTdkMGEyYy5iNGIxMjQzOWI0OTM1NzVkCisgICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIDQzMzAzZjJhZTg1NTdiNWQuOGMzYWI2YzUwNDllMDBhNC40MGFjMWU2ZjM1MjExOTY3Ljk1ZDhhZjkyNzliM2FiMTgKICAgICAwY2QyYjI1YmU0YThmMmUyCiAKLVZEUFBTXzI1Nl8yb2Y0KHJlZykKK1ZDTVBQRF8yNTZfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgNzZlYjI3MDE5MWZlNjk2OS4zM2Y2OTUwYjEyZmE5ZGM4LjUxOWE5MjRmOWMzMjc4ZjcuMzBiYmYyZmFiNmVkZGEwYwogICAgIDJkNmYwY2YwMWQ0MjRjNTcuOGEwNDhhOGFhNDlhNGJhMC43NjdmMjAyZDA1MmU3ZDFjLjU4ZWI2OGVjNTBlZTBiNDgKQEAgLTM0OTcxLDEyICszNDk3MSwxMiBAQAogICAgIGY1ZTcxNDVhNDBjMjQ0MTkuZGQyNzQ2MTI2ZWY3M2U0Ni40ZjA3NDA5MWI5OGIyMThhLmMzZTIyYWI5NDJiY2E3MzQKICAgICBiZTQwNmY2Y2QxYTI4YzNjCiAgIGFmdGVyCi0gICAgMWU2NjhjN2MwMDAwMDAwMC4xZTY2OGM3YzAwMDAwMDAwLjMxYTMxOGQxMDAwMDAwMDAuMzFhMzE4ZDEwMDAwMDAwMAorICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICAyZDZmMGNmMDFkNDI0YzU3LjhhMDQ4YThhYTQ5YTRiYTAuNzY3ZjIwMmQwNTJlN2QxYy41OGViNjhlYzUwZWUwYjQ4CiAgICAgOGVhOTVkOTUyM2ZmZDY1OC4yNDI2OWM5M2I5M2Y0MjExLjU2MzQ1YmM5ZGIxZDRjYmUuOTUwOWZjMzMyMDJmNjY0NwogICAgIGY1ZTcxNDVhNDBjMjQ0MTkuZGQyNzQ2MTI2ZWY3M2U0Ni40ZjA3NDA5MWI5OGIyMThhLmMzZTIyYWI5NDJiY2E3MzQKICAgICBiZTQwNmY2Y2QxYTI4YzNjCi1WRFBQU18yNTZfMm9mNChtZW0pCitWQ01QUERfMjU2XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIDYyZWY0NTM3ZTllY2NmOGEuYmU3MzJmYWQxMDE1ZDI0Ni45MWQ1MDRmM2RlY2RmYTZiLmJjNDJjOWVmM2MwNTM4MmIKICAgICA4YmJkMmEwNmE3YTYyZDRiLjQ1OWFhOGY5MmQ4NmJjOGEuMWNmYTUyMjMyNWNlMzNhZC5mODMyZjQ1MWZmMTVjYzRlCkBAIC0zNDk4NiwxMSArMzQ5ODYsMTEgQEAKICAgYWZ0ZXIKICAgICA2MmVmNDUzN2U5ZWNjZjhhLmJlNzMyZmFkMTAxNWQyNDYuOTFkNTA0ZjNkZWNkZmE2Yi5iYzQyYzllZjNjMDUzODJiCiAgICAgOGJiZDJhMDZhN2E2MmQ0Yi40NTlhYThmOTJkODZiYzhhLjFjZmE1MjIzMjVjZTMzYWQuZjgzMmY0NTFmZjE1Y2M0ZQotICAgIDE1NzU5YWM1MjZkZDYyYWEuZTZhODdkYWEzNmExM2Q5Mi41YTYzYWQ4YzYwMDVhNTM4LjYxMjNiYzIyOWU0YTFhOWUKKyAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZGJlMjBmNjA4MzljMjlkNS5mZGU5YWEyY2M0ZjE5MjA5LjI3ZGM5MDFjYWI3ZTBiMzcuNTE2MTFkY2ViNjJkNWVjOQogICAgIDI2MzgxM2MxZTM0Y2QzNzgKIAotVkRQUFNfMjU2XzJvZjQocmVnKQorVkNNUFBEXzI1Nl8weDQocmVnKQogICBiZWZvcmUKICAgICAzYWYzOWI2N2MwMzNiNjVhLmJiZDEwN2MzZDllZjNmZjUuZTZhODI5ZWI3NjAyZjc5Yy41ZjMxNzdiZDIxNDYyM2Q3CiAgICAgZWJlMGIwMmNlOTZjNDMxOC45MDBlZmRkYTQ0ZTM2MDM5LmZkMzNmODUzZTU2MGE4ZjcuZGQyZGRlNWRkZTY4YTY0NApAQCAtMzQ5OTgsMTIgKzM0OTk4LDEyIEBACiAgICAgOGY3YjcxYzQ5MTA5NGFkZi44OWEyZDNkNWNjZGJiMmQ3LjI1ZDg3M2NlNzAzNWRjYjIuMjA0ZTFkNDc5ZmViZTUzMwogICAgIDljMGFlZDY5ZGI2NDE3MGQKICAgYWZ0ZXIKLSAgICA3ZjgwMDAwMDAwMDAwMDAwLjdmODAwMDAwMDAwMDAwMDAuZmZmMDUzYTkwMDAwMDAwMC5mZmYwNTNhOTAwMDAwMDAwCisgICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIGViZTBiMDJjZTk2YzQzMTguOTAwZWZkZGE0NGUzNjAzOS5mZDMzZjg1M2U1NjBhOGY3LmRkMmRkZTVkZGU2OGE2NDQKICAgICA5MzQ5NGU3Y2ZiODViNjYxLjM2NjU2ZDkxZTI4MzQ4Y2IuOWVkNDEyZDBhZjk4ZTBjNS43ZjllNDJlN2ZmZjA1M2E5CiAgICAgOGY3YjcxYzQ5MTA5NGFkZi44OWEyZDNkNWNjZGJiMmQ3LjI1ZDg3M2NlNzAzNWRjYjIuMjA0ZTFkNDc5ZmViZTUzMwogICAgIDljMGFlZDY5ZGI2NDE3MGQKLVZEUFBTXzI1Nl8yb2Y0KG1lbSkKK1ZDTVBQRF8yNTZfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgY2U5ZTJkMzljZjY3YTU2NC4zY2MyMTU2ZTQ4ODUzYzNmLjY0OTBhYzkwMjBmODViOGEuZWU4YjE3YmFjM2M0ZDg2YwogICAgIDk0ZDY1YWEzOTUwMTRkNjQuZjQ2YTM3ZThiYzg0YzgyYy5hNWZkNzJiMGZhZTVmZTEwLjU1MzlmYmZlNDVjZjBmOWQKQEAgLTM1MDEzLDExICszNTAxMywxMSBAQAogICBhZnRlcgogICAgIGNlOWUyZDM5Y2Y2N2E1NjQuM2NjMjE1NmU0ODg1M2MzZi42NDkwYWM5MDIwZjg1YjhhLmVlOGIxN2JhYzNjNGQ4NmMKICAgICA5NGQ2NWFhMzk1MDE0ZDY0LmY0NmEzN2U4YmM4NGM4MmMuYTVmZDcyYjBmYWU1ZmUxMC41NTM5ZmJmZTQ1Y2YwZjlkCi0gICAgYzk3ZWVlOTM0YzNkYzkzOC4xNGJlZDI5Yzg3OTIyOTUzLjI3YjNhMzIwNzVhZTU5OTQuYjUyZTFhMDg5MWU1YmVmMQorICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICA0ODYxNjdmNjBkMjdkNjBkLmY5MGNlMmY4NDgzYzljNWYuYzU3ZmJhY2NhZDYwMjY0My42Y2I1NzA0MjQzOGYyMTE1CiAgICAgZDUxY2Y5MWFmODViNzNiNQogCi1WRFBQU18yNTZfM29mNChyZWcpCitWQ01QUFNfMTI4XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDRjYWRiMWZiNGJkNGYyN2QuZWY0ZDQwYjZmNmNjMzAwZS5mZDllNjM2Nzk4MGQ1ZGZkLjVkMmQzNGEwYmYwNjIyNDkKICAgICAyY2I1OTU1MWQ5ODdkODE3Ljk4MGNmNWMxMjMzNzkyNjguN2RjMTUyNTUxNTkxYThkOS5jYTg5OGI4OGM3YWMwOGQxCkBAIC0zNTAyNSwxMiArMzUwMjUsMTIgQEAKICAgICA5YzVhY2UwYzE1YzhjYjc4LjY0MzZlNDY0Yjc5MDYxZDUuNjFlYTY3NWUwNWU0Y2FmOS45MjdhYzU0NDI2MmE4NjE5CiAgICAgYTVhN2EwZjBiNjE5OTQzMQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgMmNiNTk1NTFkOTg3ZDgxNy45ODBjZjVjMTIzMzc5MjY4LjdkYzE1MjU1MTU5MWE4ZDkuY2E4OThiODhjN2FjMDhkMQogICAgIGQzODBhMDg4M2VmZjYxMzIuMjE2YjAzMDJhZjc1YmE0Ni5kNWMxYWEyZTViNTViODllLmU3NWYzZDcwZGY1Zjk2MDgKICAgICA5YzVhY2UwYzE1YzhjYjc4LjY0MzZlNDY0Yjc5MDYxZDUuNjFlYTY3NWUwNWU0Y2FmOS45MjdhYzU0NDI2MmE4NjE5CiAgICAgYTVhN2EwZjBiNjE5OTQzMQotVkRQUFNfMjU2XzNvZjQobWVtKQorVkNNUFBTXzEyOF8weDQobWVtKQogICBiZWZvcmUKICAgICBmZGIzNDg2MWFiMzk3ZTdiLmUyOGUxYjQ5ZmE2ZTUwOTYuM2YzOTE2ZDU1Njk3NDY0MS43ZDg4ODU1MWIwY2IxYTk1CiAgICAgNzc2ODNiODEyMjk1ZmUyNC4wMzZhODRhYzhhN2UyZDM3LjhjM2YxNDQwYTg5MzIzYjUuODVlNjAwNzNmNzk0ZTQxZgpAQCAtMzUwNDAsMTEgKzM1MDQwLDExIEBACiAgIGFmdGVyCiAgICAgZmRiMzQ4NjFhYjM5N2U3Yi5lMjhlMWI0OWZhNmU1MDk2LjNmMzkxNmQ1NTY5NzQ2NDEuN2Q4ODg1NTFiMGNiMWE5NQogICAgIDc3NjgzYjgxMjI5NWZlMjQuMDM2YTg0YWM4YTdlMmQzNy44YzNmMTQ0MGE4OTMyM2I1Ljg1ZTYwMDczZjc5NGU0MWYKLSAgICBlZDkyZjQzZTM2M2FkMTU4LjU5MzgwMzlmNjA4NDlkMDguMjkxNjViOTFjYTkyYjU1ZS5kNTUyZDUzMTc2Y2Q2MzQzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIDNkZmZlZjgyMDQzM2IyNDIuNDI0NTk2OTAxOTBhZGViNC5mMDg4NjViNGQ4OWZiODY4LmM5MTZmZmY1Y2EwMmQ0YWMKICAgICBiZDdmN2EyZDhmYmU3MjA3CiAKLVZEUFBTXzI1Nl8zb2Y0KHJlZykKK1ZDTVBQU18xMjhfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgMGRkOTQyNDM1ZjhkN2JmZi40MTdhYTgzYmE3OGM1ZjBmLjE4ZGQzOWU5NTA5ZTJhZTkuYmU2MmIwOTVlZGM2ZTdmZQogICAgIDE1NmY1NGE1ZDlmYjI5NDEuZDZjZTljNTQzYjUxOTJlYi4zODRjZTYxOGExY2JiZDUwLjcwNzBiNzIxMjUxNDAwNGMKQEAgLTM1MDUyLDEyICszNTA1MiwxMiBAQAogICAgIGJkODM0MmZhMzVlNjY2NTIuMjQzNDIyNTZhOTUxN2M3ZC5jN2RlNTNhNTA0MjJhYzZhLmViNTdlYWU2NzA1M2RhYzMKICAgICA2ZGM5MGRmN2JiNWMxNDQ0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICAxNTZmNTRhNWQ5ZmIyOTQxLmQ2Y2U5YzU0M2I1MTkyZWIuMzg0Y2U2MThhMWNiYmQ1MC43MDcwYjcyMTI1MTQwMDRjCiAgICAgMzE4ZmFhYmU5Nzk1Yjk3OS5kOGM4NDZiOWRlOGYwODAxLmZmZGQ5Yjg4YTkxZWQ1OTcuZTA3ZWY2NDI5ZDk0YmQ4MAogICAgIGJkODM0MmZhMzVlNjY2NTIuMjQzNDIyNTZhOTUxN2M3ZC5jN2RlNTNhNTA0MjJhYzZhLmViNTdlYWU2NzA1M2RhYzMKICAgICA2ZGM5MGRmN2JiNWMxNDQ0Ci1WRFBQU18yNTZfM29mNChtZW0pCitWQ01QUFNfMTI4XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIDQzOWVkZDYzOTliYjI4MmQuMTU5OTE4YzU1MDdiNmQ3OS45NGRlYWMxN2JhYTRhYjhjLmVlOTkwYWRiNGQ2MzdmNzUKICAgICA0N2EzZDUxNTI3N2RjZmFhLjk0MWIyNjhiODNkZjBhOTkuMDU5MjYwZTgyZDkzNTE1YS5jZTViYmM5NjIxNmU4OTYzCkBAIC0zNTA2NywxMSArMzUwNjcsMTEgQEAKICAgYWZ0ZXIKICAgICA0MzllZGQ2Mzk5YmIyODJkLjE1OTkxOGM1NTA3YjZkNzkuOTRkZWFjMTdiYWE0YWI4Yy5lZTk5MGFkYjRkNjM3Zjc1CiAgICAgNDdhM2Q1MTUyNzdkY2ZhYS45NDFiMjY4YjgzZGYwYTk5LjA1OTI2MGU4MmQ5MzUxNWEuY2U1YmJjOTYyMTZlODk2MwotICAgIDU2YTQ3MmY5ODBhZGM4ZTkuOTg1NjZhYjg2YjllNzk1Zi41MzFjYmJiNjFkMmEyYTEzLmM0NzA2NTQyMWJjZTA4ZTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgNGM2ZDJlZmJjMTU3Y2QxMy43Yzk2ZGViOWEzNDRmNTc2LjVhNDczODZiYTY3NmYxZTIuMmMyNDAyNGJkNzBmMzY5YQogICAgIDYzYzM4ZTFlZjJiZTUwM2EKIAotVkRQUFNfMjU2XzNvZjQocmVnKQorVkNNUFBTXzEyOF8weDQocmVnKQogICBiZWZvcmUKICAgICBjMzk5MDUyNTA3NjY5MTZmLjA1Y2E4NzA3MDU4NzliNTcuOWMyNjgwZjhjODVlYmM4Yy5mNmUwNTNmNWU1ODE2M2YzCiAgICAgYTlmMTY0Y2ViMzk0MzZlMy41ZDg3ZjgwOTY5NGFlZWRmLjUzNTQ0Y2UzNzU3NzA3NGEuMDNiNDg5M2VmNTVhM2M3MwpAQCAtMzUwNzksMTIgKzM1MDc5LDEyIEBACiAgICAgNzc1YWM2YjIzZWFlOWMzYS41YTRmMTI5ZmZlYjcxMTZkLmZhYjU0ZTY5ZDhkODIwNzQuZTAzNzMyYzJmYjlmMTI3MAogICAgIDY4ODA5ZWQ0MjcyNTg3NDQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIGE5ZjE2NGNlYjM5NDM2ZTMuNWQ4N2Y4MDk2OTRhZWVkZi41MzU0NGNlMzc1NzcwNzRhLjAzYjQ4OTNlZjU1YTNjNzMKICAgICA3MTE4YTU4MzkyZDI3YjQzLjMwNmZmZGVkMDhhYzgxZDcuZmY2YTNjZTQ0NjFjMTU1Zi41ZDhkNTQzNGYzMGEzNzhlCiAgICAgNzc1YWM2YjIzZWFlOWMzYS41YTRmMTI5ZmZlYjcxMTZkLmZhYjU0ZTY5ZDhkODIwNzQuZTAzNzMyYzJmYjlmMTI3MAogICAgIDY4ODA5ZWQ0MjcyNTg3NDQKLVZEUFBTXzI1Nl8zb2Y0KG1lbSkKK1ZDTVBQU18xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgZDEzMzE0NTY5NmE2NTIzNi4xNzAzYzJjNjU2YjRkNDc1LmI3ZjNiNDBjNjg3OTVhY2EuYTI4MTdkZGRjNzM3NjUzOAogICAgIGY3MWIxMDM0NjEzMDMxNzMuYWQ1Zjk1MmI3MzZlNjA5Zi4yMzI3NWUxZTYyZmQxNzFkLjUyMWFjNWFjYWVjNjIwNTUKQEAgLTM1MDk0LDExICszNTA5NCwxMSBAQAogICBhZnRlcgogICAgIGQxMzMxNDU2OTZhNjUyMzYuMTcwM2MyYzY1NmI0ZDQ3NS5iN2YzYjQwYzY4Nzk1YWNhLmEyODE3ZGRkYzczNzY1MzgKICAgICBmNzFiMTAzNDYxMzAzMTczLmFkNWY5NTJiNzM2ZTYwOWYuMjMyNzVlMWU2MmZkMTcxZC41MjFhYzVhY2FlYzYyMDU1Ci0gICAgYjYwNTBmNWFhNmNlZGUyNy45NWJhM2M0ZDMzNmI3YzY1LjdhYjc4Y2MzMDc1MDA2OTAuNjVjYzIyNDIyOTEwOGM3OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICBlYWJkOGNiNDgxOGQxNTdkLjJiNWZiMTk4MzIzNDYzNzIuOTc2ZmJhZTY3MzdkZTA0Zi4zOWUyOTEwYmQ1YTFlNzRjCiAgICAgMjhhYTBkNzM0ZTA2NmE3ZQogCi1WRFBQU18yNTZfNG9mNChyZWcpCitWQ01QUFNfMjU2XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDhmNmU5MmU2MmZjOTU0YjkuNmUwZjAzMmYwZDc4OTRhMi5jYjliZjI3ODBiNTc1Mzc0LjU4MWE2NTczYzM5MDY0ODcKICAgICBjYjdiMWNkMDE0NzlkZmFhLjIwYzdmMGI1Njc5YzE1YzIuZDFiYWZhNWE1YjVmODYxNC45ODg2MDc1NTEzOTY0ZDY0CkBAIC0zNTEwNiwxMiArMzUxMDYsMTIgQEAKICAgICAyZGEwMzBiYTVjYzljYjVkLjdiOTgxZTk2ZjJiYjEwYTEuN2VkMTUwY2ZjZTRmYTdlNS4wNGNjMjVjZTIwYTgzYmJiCiAgICAgZTkzZjk5M2IxNmNkYmE4ZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKKyAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgY2I3YjFjZDAxNDc5ZGZhYS4yMGM3ZjBiNTY3OWMxNWMyLmQxYmFmYTVhNWI1Zjg2MTQuOTg4NjA3NTUxMzk2NGQ2NAogICAgIDM2MWRhNzllOWE5ZjQ4ZmQuZGJiMGQwMzRhYTAzNTUwOC45OTA4YzZhOGJkZDgzODAxLjMzN2QxZTdhN2Q5YTU2MTEKICAgICAyZGEwMzBiYTVjYzljYjVkLjdiOTgxZTk2ZjJiYjEwYTEuN2VkMTUwY2ZjZTRmYTdlNS4wNGNjMjVjZTIwYTgzYmJiCiAgICAgZTkzZjk5M2IxNmNkYmE4ZQotVkRQUFNfMjU2XzRvZjQobWVtKQorVkNNUFBTXzI1Nl8weDQobWVtKQogICBiZWZvcmUKICAgICBiZGExZjRhZTdiMTQ4ZGI1LjBkNGZiMjkyZjc4M2EzNzcuZGI0OTU2Yzk1Y2QwMDFiOC5kZTYxOTYzYzI5NGYwZDZjCiAgICAgNWJjMGI0MTM2YjhhNzE1ZC4zMDc4Mjk5MTA2NTcwZWY3LmQ5OTBmNGI4MDQ0Y2U1N2EuMTQwNDkzNWE2YTY1YTc0MwpAQCAtMzUxMjEsMTEgKzM1MTIxLDExIEBACiAgIGFmdGVyCiAgICAgYmRhMWY0YWU3YjE0OGRiNS4wZDRmYjI5MmY3ODNhMzc3LmRiNDk1NmM5NWNkMDAxYjguZGU2MTk2M2MyOTRmMGQ2YwogICAgIDViYzBiNDEzNmI4YTcxNWQuMzA3ODI5OTEwNjU3MGVmNy5kOTkwZjRiODA0NGNlNTdhLjE0MDQ5MzVhNmE2NWE3NDMKLSAgICBhMTY2NTQ1NzA0MzkyMmIxLmYzNjU5MTIzMjZkNDQ2ODguNTAzOTc0NGYwNTNkNzgxMy43YzA1NDM5NTJlMWNiMDE2CisgICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIDY5NjA1MDY0NWYyZjViZGUuYjI2M2U3YjNmMjgzODdkNi4xYjEwNTM3YTdiYWY3NmFlLjcxYjFhMzU4MTAwMDY1OTAKICAgICA1MTU0YWQxMWFkOWUwMjVlCiAKLVZEUFBTXzI1Nl80b2Y0KHJlZykKK1ZDTVBQU18yNTZfMHg0KHJlZykKICAgYmVmb3JlCiAgICAgNzczYTVmMmJhMTgwYzMyYy45MTdhMjUyODlhNzhkYTBmLmM5YmUyNmFmMDZmMjBmOGUuMThlMTBjMjU4M2FkOWE3NwogICAgIDNlYWZiNDEzODYzNWUzYTUuZjM4MDRkOGVkMTFmNTg3MS45NWMyNGE4M2ZmYWMxODVjLjIxNzcxYjNjMzk0M2ExOWMKQEAgLTM1MTMzLDEyICszNTEzMywxMiBAQAogICAgIDIzNzUzOGY4OWE0MTMzNGEuZDk4MDhiZjBhMWI3NDg3Ny5iN2Y0MzE1ZTBmMzI5ZmU5LmNiMjYyYzVmMWM2ODQ3YTQKICAgICAyM2Q2MjU0MjgxMGY1ZWUwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICAzZWFmYjQxMzg2MzVlM2E1LmYzODA0ZDhlZDExZjU4NzEuOTVjMjRhODNmZmFjMTg1Yy4yMTc3MWIzYzM5NDNhMTljCiAgICAgMDRmZWE5MzNmYjQ2YTA3Ni42ZDNlNDY4MjFmMzA5NDMwLjcwYmE0Zjk5NzkzZGRlZWMuMTQ5ZmZjYWJiNzdkNDc0NwogICAgIDIzNzUzOGY4OWE0MTMzNGEuZDk4MDhiZjBhMWI3NDg3Ny5iN2Y0MzE1ZTBmMzI5ZmU5LmNiMjYyYzVmMWM2ODQ3YTQKICAgICAyM2Q2MjU0MjgxMGY1ZWUwCi1WRFBQU18yNTZfNG9mNChtZW0pCitWQ01QUFNfMjU2XzB4NChtZW0pCiAgIGJlZm9yZQogICAgIGY5N2M2NTQyMDU3ZTQ4MjcuZjk1ZTVmY2ZmZmIxZGJjZS4xNTExOTljNDcyYzEzMTczLmM2YmFlZDNlNWUxNjk1ZmYKICAgICAyN2UzNjc0OWMxYzJjMWE0LmUwMDYxOTIyYzYyM2QyYWQuZmJiZWVhZWFhZTU5MGI1MC5mOTVhN2VhNjAxNzVmZGRiCkBAIC0zNTE0OCwxMSArMzUxNDgsMTEgQEAKICAgYWZ0ZXIKICAgICBmOTdjNjU0MjA1N2U0ODI3LmY5NWU1ZmNmZmZiMWRiY2UuMTUxMTk5YzQ3MmMxMzE3My5jNmJhZWQzZTVlMTY5NWZmCiAgICAgMjdlMzY3NDljMWMyYzFhNC5lMDA2MTkyMmM2MjNkMmFkLmZiYmVlYWVhYWU1OTBiNTAuZjk1YTdlYTYwMTc1ZmRkYgotICAgIDhhZDlhODQ1ZDNlNjg0ODQuMzZiOTYyNWY4ZDIyNTU5NC42ODU0ZmM0ZTcyOGM5MTM5LmFjMWVlMDAxOTRkYzEzMjkKKyAgICBmZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmCiAgICAgZmYyOGEyMjE1N2Y3NGVmMi41NWMzMzdmMGVkM2FhMDJmLjM5OWM0YWRjZDk2NDgxNWEuM2I1MjBmYmFiNGQ2MTI5NQogICAgIDAyNDQwODNmZmNmMDM3Y2EKIAotVkRQUFNfMjU2XzRvZjQocmVnKQorVkNNUFBTXzI1Nl8weDQocmVnKQogICBiZWZvcmUKICAgICA1YzNmYzZmYjA5YjViZTc0LjYwOWRkM2M5NjgwMGRiMWIuOWI3MDkyNDM4NGY4ZWYyOS40ODY1NTA4MTAwZjA5NWUxCiAgICAgYTc4ZTQ1NWE3NmIxZTI0MC44YTA0YjYyOTIzMGRlNjJiLjYyMGI3MWMzZWVlNzdkMmYuNzI3YThiMjcwMzM5ODlmOApAQCAtMzUxNjAsMTIgKzM1MTYwLDEyIEBACiAgICAgN2Q1Yzc2YjFlMjdmZjVlZC5hYWQ4ODNjMTA0NjQ2YWFlLmU3M2ZhOGZhYTk4OTQ4MGUuODhiNzhjMmIwYTM3MDU4NwogICAgIDJiNzc0YjVmNDYwNDAzNTgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZgogICAgIGE3OGU0NTVhNzZiMWUyNDAuOGEwNGI2MjkyMzBkZTYyYi42MjBiNzFjM2VlZTc3ZDJmLjcyN2E4YjI3MDMzOTg5ZjgKICAgICAzZTdlODFjOGUwNzBlMWRhLjU5MjljNzJkYTMyYjJkNGQuMDdlMWNmZGNjNjkzODdlZC45M2E2NzViY2ZjNGQxYWNiCiAgICAgN2Q1Yzc2YjFlMjdmZjVlZC5hYWQ4ODNjMTA0NjQ2YWFlLmU3M2ZhOGZhYTk4OTQ4MGUuODhiNzhjMmIwYTM3MDU4NwogICAgIDJiNzc0YjVmNDYwNDAzNTgKLVZEUFBTXzI1Nl80b2Y0KG1lbSkKK1ZDTVBQU18yNTZfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgNTliMzJlNDZjZmJmZDM2OS5jMDcxMjE4MTE5Njk1YTI2LjU3ZGQ2NWQyNjNjNzU5NzkuNWM2ZmY5ODkzMTU0ZmQzZQogICAgIGVlMzdiMmNiYmU3NDJmZTcuNjIwYzdkYTQyMGJiNGUzMS4zZDAzZTg0YWRjNWRiOGRiLmMzYmViZGY2ZmQ4MGUzMmIKQEAgLTM1MTc1LDExICszNTE3NSwxMSBAQAogICBhZnRlcgogICAgIDU5YjMyZTQ2Y2ZiZmQzNjkuYzA3MTIxODExOTY5NWEyNi41N2RkNjVkMjYzYzc1OTc5LjVjNmZmOTg5MzE1NGZkM2UKICAgICBlZTM3YjJjYmJlNzQyZmU3LjYyMGM3ZGE0MjBiYjRlMzEuM2QwM2U4NGFkYzVkYjhkYi5jM2JlYmRmNmZkODBlMzJiCi0gICAgYzZjZjUyZGEzMTJmZDRmZC5jMTc4ODY4Nzk0MDAwYmI5LjM4MTg4YjE3OGEzNDQxMDAuNzg3N2YwYWJhNzlhMzM3ZQorICAgIGZmZmZmZmZmZmZmZmZmZmYuZmZmZmZmZmZmZmZmZmZmZi5mZmZmZmZmZmZmZmZmZmZmLmZmZmZmZmZmZmZmZmZmZmYKICAgICBiZDQ2OGE1ZjQ0ZmQ3ZWQ4LjM4MDAzODk0MTBjNGNlNmIuMjRlNmM3MjM4OTU3YjAxMy5kOGU4OGUxNmNiMmQyY2U2CiAgICAgM2Q1YjkzYTEwNmM1MDgwZAogCi1WSEFERFBTXzEyOChyZWcpCitWUENNUEdUQl8xMjgocmVnKQogICBiZWZvcmUKICAgICAwNDFkZmNiYWYzZWYwNDlmLmFmNmFkNjQ3MTJlYWU4YTQuMjJmMjhmMzkzMTkzZDJmMi5kZDNhMTk1Y2Y2ZDNjMzQxCiAgICAgODk3YmM0Y2IyZjM2NWM0YS43ODA1YjI3Y2I4MDBjZjhjLmRkOTg4OGUxOTJmYTU0ZmIuM2ZkZmZlYWRlY2IzMzRiNQpAQCAtMzUxODcsMTIgKzM1MTg3LDEyIEBACiAgICAgM2QzNTYxOGEwMjRjMGU5NS5mZmQzMGM4MWY5ZGQwMzYyLjMyMzM0ZGU5ODViZWMyNDEuNmU1MTZlNDdlNWQwMjMyMgogICAgIGYzYjRmMjY4MjAyNTE4NzIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2Y4NTkwMzEyNmEzZjEwMi5kZDk4ODhlMWVjYjMzNGI1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmMDAwMDAwMDBmZmZmMDAuZmZmZmZmMDBmZjAwZmZmZgogICAgIDg5N2JjNGNiMmYzNjVjNGEuNzgwNWIyN2NiODAwY2Y4Yy5kZDk4ODhlMTkyZmE1NGZiLjNmZGZmZWFkZWNiMzM0YjUKICAgICAyOGJlZTc0MjU1Mjc0YmI3LmY0ZTQ5YmViNTE0ZGVmYmQuYzMzZjFlZjdjZjg1OTAzMS4yNmEzZjEwMjg4MDNjMDljCiAgICAgM2QzNTYxOGEwMjRjMGU5NS5mZmQzMGM4MWY5ZGQwMzYyLjMyMzM0ZGU5ODViZWMyNDEuNmU1MTZlNDdlNWQwMjMyMgogICAgIGYzYjRmMjY4MjAyNTE4NzIKLVZIQUREUFNfMTI4KG1lbSkKK1ZQQ01QR1RCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDkwOTlmODUxNTQwZTVjYjkuMjQyYjJlMGZkMTMzZTE4ZS43NTllODEyOWNkYmFjOWE4Ljg0YmYxMTIyNTAzMzI2ZDcKICAgICAyM2NjZmJlZTllOThhYjIyLjM5ZWI0YjNkNWY2OGZmNGUuMzExMDc2Y2VlOWYyZmFiYS4xNzMxNjcwZWNiNmZmNzllCkBAIC0zNTIwMiwxMSArMzUyMDIsMTEgQEAKICAgYWZ0ZXIKICAgICA5MDk5Zjg1MTU0MGU1Y2I5LjI0MmIyZTBmZDEzM2UxOGUuNzU5ZTgxMjljZGJhYzlhOC44NGJmMTEyMjUwMzMyNmQ3CiAgICAgMjNjY2ZiZWU5ZTk4YWIyMi4zOWViNGIzZDVmNjhmZjRlLjMxMTA3NmNlZTlmMmZhYmEuMTczMTY3MGVjYjZmZjc5ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NTllODEyOTUwMzMyNmQ3LmU5ZjJmYWJhY2I2ZmY3OWUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBmZmZmMDBmZmZmZmZmZi5mZmZmZmYwMDAwZmYwMDAwCiAgICAgOTg0Y2VlZjVlMmJjNTkwZC41ZGZkNjI0NTI2ZTkwZmQ2LmYwMWRkMWM0NjZhMTk1ZjUuNmNmM2I2YjA0MjZlZDI3MgogICAgIGU2ZGJhNzNkNzY0ODU1ZDYKIAotVkhBRERQU18xMjgocmVnKQorVlBDTVBHVEJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMTBkODFhMmVjYjFhMzUxYy4zMTMwZDQzNzE0NmYzMGU2LjIzZTY1NGY2OTc0ZDc5ZjYuYWE0ZjJmZWMwMDMwNzU3NgogICAgIDQ3MzUwOWVkZGM2ZmFlZWYuMzA5M2E5ZGNjYmYyMDE5Mi44OGNhODYwMTM2MmYxZThkLjFhNTlmZGMyNTE0YWIxNzMKQEAgLTM1MjE0LDEyICszNTIxNCwxMiBAQAogICAgIDQ3NDM1MDhhYTRkMzVmZWUuY2MwMTBkMDQzYjk5ODUxMS45Y2IyOTdkMTcxOWIwY2QxLjkxMjVkYTI5OGE0YjMxOTIKICAgICA0ZTdlZTE5MWFhNGNlYzBkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU3ZjRmM2QwNzZmOTA3MTguMzYyZjFlOGQ1MTRhYjE3MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDBmZmZmZmYwMDAwLjAwZmZmZjAwMDBmZjAwZmYKICAgICA0NzM1MDllZGRjNmZhZWVmLjMwOTNhOWRjY2JmMjAxOTIuODhjYTg2MDEzNjJmMWU4ZC4xYTU5ZmRjMjUxNGFiMTczCiAgICAgZTU0MDcyZTg0NmQzZmVmYy43MDNmZThkMjI0NTE4YTNjLmU3ZjRmM2QwYTAxYTNjNDcuMWUwN2I4MzI3NmY5MDcxOAogICAgIDQ3NDM1MDhhYTRkMzVmZWUuY2MwMTBkMDQzYjk5ODUxMS45Y2IyOTdkMTcxOWIwY2QxLjkxMjVkYTI5OGE0YjMxOTIKICAgICA0ZTdlZTE5MWFhNGNlYzBkCi1WSEFERFBTXzEyOChtZW0pCitWUENNUEdUQl8xMjgobWVtKQogICBiZWZvcmUKICAgICAzM2UwNDg1N2YxMDZmNGI0LmM5OGNhMDNlOTNmYTBlNzIuMjJhNTk1NWUyYmQ1YWYzYy4wMzRlNmU2ZjQ0M2RjZGQ3CiAgICAgMWIxNThiNjg3Yjg4MDRiNC5jODY1NWM3MmFlZDQ0NjM0LjRkZjdmYWNjMTAxMWMzZWEuNzcxNTc0MTZiNThjYjkwNApAQCAtMzUyMjksMTEgKzM1MjI5LDExIEBACiAgIGFmdGVyCiAgICAgMzNlMDQ4NTdmMTA2ZjRiNC5jOThjYTAzZTkzZmEwZTcyLjIyYTU5NTVlMmJkNWFmM2MuMDM0ZTZlNmY0NDNkY2RkNwogICAgIDFiMTU4YjY4N2I4ODA0YjQuYzg2NTVjNzJhZWQ0NDYzNC40ZGY3ZmFjYzEwMTFjM2VhLjc3MTU3NDE2YjU4Y2I5MDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmJkNWFmNjU0NDNkY2RkNy40ZGY3ZmFjYzc3MTU3NDE2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZjAwMDBmZmZmMDAuZmYwMGZmMDAwMDAwMDBmZgogICAgIDYzMmI5NjE3Y2IwZDJmNmUuYThmYTBkMDdkYWQzNDUyMC45MWQ0NTA5NDJiYmI5ZDdlLmZiNTRmZjJmZTQ2MjA1ODYKICAgICBjMTY0N2I3OWQ4MDJkYzMyCiAKLVZIQUREUFNfMTI4KHJlZykKK1ZQQ01QR1RCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDA2Y2YxNjdjZGM3ZWNmYjYuN2JhNDU2OGVjODI5YzI3Zi40MjRkZjk0MTIyMGY4M2EyLjYyZjczOGM2OTk0MWQ5YmMKICAgICAyNGUwY2RhNDg5NjQxYWJkLjA2MjBlMmZmNzkzYjRkOWEuYzg2MjQzYTkwODJmM2ExMi43OWY5ZWZiZDZjZjdmMTJkCkBAIC0zNTI0MSwxMiArMzUyNDEsMTIgQEAKICAgICA1ZjI3N2MxNDU0OWNhNzA2LmU2NTU0ZjdmNjQ3MzNlOTguMDhmZGRkYjcxNzQ5MDY2Yi5lNGM1YjdhNmIzMjNhMDU1CiAgICAgZjIyN2MwNzE1ZmIyYWY2NgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNWJlYTcxY2MxZTk5ZmZjLmM4NjI0M2E5NzlmOWVmYmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmMDAwMGZmZmYwMC5mZmZmMDAwMGZmZmZmZmZmCiAgICAgMjRlMGNkYTQ4OTY0MWFiZC4wNjIwZTJmZjc5M2I0ZDlhLmM4NjI0M2E5MDgyZjNhMTIuNzlmOWVmYmQ2Y2Y3ZjEyZAogICAgIDc5ZTQ5YjVlN2UzZmY5ZjQuZTE2ZGI3NTZmOTUwOGRlOS45NjgzZTVhYzI1YmVhNzFjLmIwYTRmMDYzYzFlOTlmZmMKICAgICA1ZjI3N2MxNDU0OWNhNzA2LmU2NTU0ZjdmNjQ3MzNlOTguMDhmZGRkYjcxNzQ5MDY2Yi5lNGM1YjdhNmIzMjNhMDU1CiAgICAgZjIyN2MwNzE1ZmIyYWY2NgotVkhBRERQU18xMjgobWVtKQorVlBDTVBHVEJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjQ5ODg3YWZlMGExOGE1OS4zNGY1NmMzNGFhMDY2MWEwLmYyYTUyODY3ZDdiMTFiZDQuN2ExYzI2MzQ3OTViOTNhYwogICAgIDA3ZTI4OTRlNTNmZGViNWEuNTI5YTY3MjkxOTA5NjM2ZS5lMjI5YmRmODZlMTVlMmM5LjQ4MmNiYzkxZTg4MDg5OGEKQEAgLTM1MjU2LDExICszNTI1NiwxMSBAQAogICBhZnRlcgogICAgIGI0OTg4N2FmZTBhMThhNTkuMzRmNTZjMzRhYTA2NjFhMC5mMmE1Mjg2N2Q3YjExYmQ0LjdhMWMyNjM0Nzk1YjkzYWMKICAgICAwN2UyODk0ZTUzZmRlYjVhLjUyOWE2NzI5MTkwOTYzNmUuZTIyOWJkZjg2ZTE1ZTJjOS40ODJjYmM5MWU4ODA4OThhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYyYTUyODY3N2E1MzBiMWYuNmUxNWUyYzhlODgwODk4YQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGZmMDAwMGZmZmYwMDAwLjAwZmYwMDAwMDAwMDAwMDAKICAgICBkMTM0MmE1YzdjMjkzMTM5LmRkOTg3MDQxYjgwYzJkNTQuZDlmYzBiYzk3NTdmMTg4Yy42ODRmYzE5ODVjMzRhM2QwCiAgICAgNzJmOTI3MWE5OGRiM2Y4ZgogCi1WSEFERFBTXzI1NihyZWcpCitWUENNUEdUV18xMjgocmVnKQogICBiZWZvcmUKICAgICA0N2M0Y2EyYjUxYzYzNDliLmZmZDRjM2EzNmIxMThlNmUuMDE4YTc1M2QxZjIzNmVjNS45OWU0YmRlMDFlOWUwMGIyCiAgICAgNDVmY2E2MzcyMjdmYmZhMi4yZTdlODVmYmJjOTY2MjYyLmRmODI3NWJmMTAwNGU3MTkuYWQyZjFiNTI1YTEzYzI0MQpAQCAtMzUyNjgsMTIgKzM1MjY4LDEyIEBACiAgICAgMjllM2ZiZjA3ZTkxODY0Yi5mZjFmNzk4OWYxYTU1ZTM1LjNhYjc1NzAwMDM1MTZmMWMuM2MyMmNiZjRmZDMxYmU0OQogICAgIDcwNjAxNmZjOWJmMTcxMWEKICAgYWZ0ZXIKLSAgICBjN2VkYjhhYTNhZmVlZTRlLjQ1ZmNhNjM3YmM5NjYyNjIuZDRjZDZkMzFlZmFiYTEwYS5kZjgyNzViZjVhMTNjMjQxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmMDAwMGZmZmYuMDAwMGZmZmZmZmZmMDAwMAogICAgIDQ1ZmNhNjM3MjI3ZmJmYTIuMmU3ZTg1ZmJiYzk2NjI2Mi5kZjgyNzViZjEwMDRlNzE5LmFkMmYxYjUyNWExM2MyNDEKICAgICBjN2VkYjhhYWE4OTUxYzRlLjNhZmVlZTRlOGFjMzY5NDAuZDRjZDZkMzEyODNhZDNmYy5lZmFiYTEwYTQ2ZWIxNzY1CiAgICAgMjllM2ZiZjA3ZTkxODY0Yi5mZjFmNzk4OWYxYTU1ZTM1LjNhYjc1NzAwMDM1MTZmMWMuM2MyMmNiZjRmZDMxYmU0OQogICAgIDcwNjAxNmZjOWJmMTcxMWEKLVZIQUREUFNfMjU2KG1lbSkKK1ZQQ01QR1RXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDY3MzNmZDBlM2UzOGVkMDMuYzYyYTZiNzY0MDAxM2E0Ni41OWFmYTI5OTBlNDdmZTZkLjZlOGMzMTk4M2NkNmY3MjIKICAgICBmZDY2ZmIxNmZmMTFlZTMxLmZjMGQwNGE2OGM3MDc0ZWIuMjQ3OGU1NjhmZGI1MDUxMy5jYzk3ZjY2NjZmNTRhN2JkCkBAIC0zNTI4MywxMSArMzUyODMsMTEgQEAKICAgYWZ0ZXIKICAgICA2NzMzZmQwZTNlMzhlZDAzLmM2MmE2Yjc2NDAwMTNhNDYuNTlhZmEyOTkwZTQ3ZmU2ZC42ZThjMzE5ODNjZDZmNzIyCiAgICAgZmQ2NmZiMTZmZjExZWUzMS5mYzBkMDRhNjhjNzA3NGViLjI0NzhlNTY4ZmRiNTA1MTMuY2M5N2Y2NjY2ZjU0YTdiZAotICAgIDY3MzNmZDBlYzYyYTYzNjIuZmYyMDVkZTJmYzBkMDRhNi41OWFmYTI5OTZlOGMzMTk4LmZkYjUwNTEzNmY1NGE3YmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGZmZmYwMDAwZmZmZi4wMDAwMDAwMGZmZmYwMDAwCiAgICAgNzYxYTMyYjk1MWE5NmQwYi45ZmRiYTJiOTJiN2Q2OWUxLjdkZTdhYmY4YmUyNzM3NWIuNzc4MzMyNTAzNTZjNmQ1YwogICAgIDdiZmJhMTQ1MDAxZWZiYmEKIAotVkhBRERQU18yNTYocmVnKQorVlBDTVBHVFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMTlkYWViMWYzNWZhYTI1YS4xMTM0NjIyYjE5ODE2NDBmLmM1NWQ5ZjcyYjgzMjljOGIuYzMyNjI1OTBjOTQyZGE1NQogICAgIGFkNmIwZDRhNzE4YTljZWIuYmJkZTk5NDQ3MDFjY2YwNy5mMmFjYjU4NzNkMTY0NDhlLmVhY2ZhOTk4MTU1OWQzNmUKQEAgLTM1Mjk1LDEyICszNTI5NSwxMiBAQAogICAgIDI3ZDhjNTQzNmNmYzdiOGEuYWMxMjEyMTczZWM3ZjQ4Ni5kNWUwMWQ3MmEwOWVlNzUxLjRiOGRjMGE4ZTJhZWJiYWIKICAgICAzZDNiNGI4ODlhMDIyMDI3CiAgIGFmdGVyCi0gICAgNGY1YzI1MTc3Mzg0NmMyMC43MThhOWNlYjcwMWNjZjA3LjU2YjY5Zjk3Y2VhZGIzZmMuZjJhY2I1ODdlYWNmYTk5OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmMDAwMDAwMDBmZmZmLmZmZmYwMDAwZmZmZjAwMDAKICAgICBhZDZiMGQ0YTcxOGE5Y2ViLmJiZGU5OTQ0NzAxY2NmMDcuZjJhY2I1ODczZDE2NDQ4ZS5lYWNmYTk5ODE1NTlkMzZlCiAgICAgOTNmYzAxMzI0ZjVjMjUxNy41MGU0NTZlZTczODQ2YzIwLjg0MTNlMTYzNTZiNjlmOTcuY2VhZGIzZmNiZjc5ZTBkMQogICAgIDI3ZDhjNTQzNmNmYzdiOGEuYWMxMjEyMTczZWM3ZjQ4Ni5kNWUwMWQ3MmEwOWVlNzUxLjRiOGRjMGE4ZTJhZWJiYWIKICAgICAzZDNiNGI4ODlhMDIyMDI3Ci1WSEFERFBTXzI1NihtZW0pCitWUENNUEdUV18xMjgobWVtKQogICBiZWZvcmUKICAgICA4MDgzZDA4OTA1ODNjZDcyLmM1NGE1NGU5NjNmNWQ4ZjIuYWEzMzRhYWFlY2YxMjY2NC40MzVkNjcyMGI3NTg1OTY5CiAgICAgZWYzMWNiOTUzYzNkN2NiNy5jODlmYWE5MGQxZDM3OWY4LjI4MTU3YjkzOTkwY2JkZTcuMjhkN2JhZGEzNTcyMzA4YQpAQCAtMzUzMTAsMTEgKzM1MzEwLDExIEBACiAgIGFmdGVyCiAgICAgODA4M2QwODkwNTgzY2Q3Mi5jNTRhNTRlOTYzZjVkOGYyLmFhMzM0YWFhZWNmMTI2NjQuNDM1ZDY3MjBiNzU4NTk2OQogICAgIGVmMzFjYjk1M2MzZDdjYjcuYzg5ZmFhOTBkMWQzNzlmOC4yODE1N2I5Mzk5MGNiZGU3LjI4ZDdiYWRhMzU3MjMwOGEKLSAgICAwNTgzYWM3ZTYzZjVkOGYyLmVmMzFjYjk1ZDFkMzdhMjAuZWNmMTI2NjQ0MzVkNjcxZi4yODE1N2I5MzM1NzIzMDhhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmMDAwMDAwMDAuMDAwMDAwMDBmZmZmMDAwMAogICAgIGM2ZWUxNDgyODQ4OWQzZTIuNzIyMjljOTI3ZjZmNzY5NS4xMTQ3YjUxNzYyNGIwNzhhLmNiZjI2YzFkZGRmNDAxOWEKICAgICA0MDJiYzI4MDNkNzQ3MmUwCiAKLVZIQUREUFNfMjU2KHJlZykKK1ZQQ01QR1RXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDlkOTExMjllNzY4NDM4ZTAuZTQ5NTVhM2JjYzMzZjIyMC5kMGU4MmZjNWY4NDU0YTgyLjMzMzBiNjhhYjY4NTM0MDIKICAgICAzZTZmNTdlMjIzYWU5MDQ2LmEwZDIwN2IwNTE0NjA0MDcuMDRjMDdhYTg1ODMxNTJiZi40NTA4YTAwMzc5ZTJiNWNmCkBAIC0zNTMyMiwxMiArMzUzMjIsMTIgQEAKICAgICBiZGM3YjE5MTRiODZlNmYxLjVlM2U4MjdlODVkNGYxODcuNWRkYTI2MzMzYTc4ZWRkOC5hNWI5MWNiOGJlMzRhNjE3CiAgICAgYWMyOWE2Y2M3ODQwOGRlYQogICBhZnRlcgotICAgIGUwODBiNmJkZDU3MTk1Y2QuM2U2ZjU3ZTI1MTQ2MDQwNy42OWY3NzlhOWM4NmU0NzFkLjU4MzE1MmJmNzllMmI1Y2YKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMGZmZmZmZmZmZmZmZi5mZmZmMDAwMGZmZmYwMDAwCiAgICAgM2U2ZjU3ZTIyM2FlOTA0Ni5hMGQyMDdiMDUxNDYwNDA3LjA0YzA3YWE4NTgzMTUyYmYuNDUwOGEwMDM3OWUyYjVjZgogICAgIDgwMTI4ZWJhZTA4MGI2YmQuZDU3MTk1Y2QzMGNkYzVjNi42OWY3NzlhOTNhYmVjYWY4LjIxOWRlZTZmYzg2ZTQ3MWQKICAgICBiZGM3YjE5MTRiODZlNmYxLjVlM2U4MjdlODVkNGYxODcuNWRkYTI2MzMzYTc4ZWRkOC5hNWI5MWNiOGJlMzRhNjE3CiAgICAgYWMyOWE2Y2M3ODQwOGRlYQotVkhBRERQU18yNTYobWVtKQorVlBDTVBHVFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMTFiOTA4OTUxMTllYmFjMi41MmQ4YmVkM2ZkNGE1YjhmLjE5MDU0OGFmNmI2ODQzNzcuM2JiMzdmYjJmNWViZjgwYwogICAgIGIyMzViZjAxYTU1YmU2Y2EuOWI5MWIwZWM5NDVhNTI0My5lMDkxNjU0Y2ZlOTQ3OGMxLjVlY2Y3ZjkyMDZhNDI3NDAKQEAgLTM1MzM3LDExICszNTMzNywxMSBAQAogICBhZnRlcgogICAgIDExYjkwODk1MTE5ZWJhYzIuNTJkOGJlZDNmZDRhNWI4Zi4xOTA1NDhhZjZiNjg0Mzc3LjNiYjM3ZmIyZjVlYmY4MGMKICAgICBiMjM1YmYwMWE1NWJlNmNhLjliOTFiMGVjOTQ1YTUyNDMuZTA5MTY1NGNmZTk0NzhjMS41ZWNmN2Y5MjA2YTQyNzQwCi0gICAgMTIyYmUxYWNmZDRhNWI4Zi5iMjM1YmYwMTliOTFiMmExLjZiNjg0Mzc3ZjVlYmY4MGMuZmU5NDc4YzE1ZWNmN2Y5MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwZmZmZjAwMDBmZmZmLmZmZmYwMDAwZmZmZmZmZmYKICAgICAxMzIxMTk2ZjMxMWYzMjFjLmI5MzAzNDU0ZTA4ZGI1OWMuMDYyYzkyN2I5ZGU1N2ExNS5lOGZmNjQyNTlkMTZkZjU2CiAgICAgMDVhYjQyYjE1OWU3ZTE5MAogCi1WSEFERFBEXzEyOChyZWcpCitWUE1BRERXRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBkOWNiYjY0ZGRkMmRmNzdhLjhkMjhiNDQ5NjAzZmM5YmUuNDZhY2JkN2FjY2M3OWE5OC4xZGQyOWFlNGUxMjJiZjc3CiAgICAgYmVhOWJlNjdjMjc1NWNiZi5iMTRiOTQ3NWZhZWQ1MTQwLmY3MDExYzI4MGQ3Y2VmNWEuYjA2ZWU4NmE0MjI4ZDdlNApAQCAtMzUzNDksMTIgKzM1MzQ5LDEyIEBACiAgICAgMmZkMjc4YzEyNTM4MDYwZC42YjE2MTA3NGUyMjUyMzk3LjM1NjY0YWM4ZmQ4OWUwZTAuYmViNzQ2NzljZGJjNmY4ZAogICAgIGYwZmM0ZmRiMmU2MjY3MjIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjg3YjRjYzgzZjM5ZjM4ZS5mNzAxMWMyODBkN2NlZjVhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA3MDViNGJiMDQyM2I2ODguMWY3YmM1ZWFlMzIyMWQ4YwogICAgIGJlYTliZTY3YzI3NTVjYmYuYjE0Yjk0NzVmYWVkNTE0MC5mNzAxMWMyODBkN2NlZjVhLmIwNmVlODZhNDIyOGQ3ZTQKICAgICAxMTkyNTU2OWE2NGE0ZDBjLjVkNTczNGRmMWMzNjg1Y2YuMjg3YjRjYzgzZjM5ZjM4ZS45Y2NiZjhmOGRkMDI3ZTg3CiAgICAgMmZkMjc4YzEyNTM4MDYwZC42YjE2MTA3NGUyMjUyMzk3LjM1NjY0YWM4ZmQ4OWUwZTAuYmViNzQ2NzljZGJjNmY4ZAogICAgIGYwZmM0ZmRiMmU2MjY3MjIKLVZIQUREUERfMTI4KG1lbSkKK1ZQTUFERFdEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDBmNjc4ZTA5MWUwMTIyNzEuNzJiNDIyZGFkYWNjYzI2ZC5iODU0YTQxZTY3YzZlNWMzLjdhMGUxMDkzZTNmOGY0ZmEKICAgICBmN2M1N2ZlZmI2YTQ1YmE2LjM4ODY0ZTIwNjI5MWJlZDkuMjBkZjZjY2FjNzI1ODc4MC41M2JlOWM5NDhlMTM2ODhiCkBAIC0zNTM2NCwxMSArMzUzNjQsMTEgQEAKICAgYWZ0ZXIKICAgICAwZjY3OGUwOTFlMDEyMjcxLjcyYjQyMmRhZGFjY2MyNmQuYjg1NGE0MWU2N2M2ZTVjMy43YTBlMTA5M2UzZjhmNGZhCiAgICAgZjdjNTdmZWZiNmE0NWJhNi4zODg2NGUyMDYyOTFiZWQ5LjIwZGY2Y2NhYzcyNTg3ODAuNTNiZTljOTQ4ZTEzNjg4YgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YTBlMTA5M2UzZjhmNGZhLjUzYmU5Yzk0OGUxMzY4OGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2ZjMDM4ZDhmNTRkYTAxZS4yMTdkNDk2MDA3ZjkwZjI2CiAgICAgOTM4NDY4OTQ1NDI4M2I3NS5iODI1MjJlMzU4ZGY2Njg0LmIyMDg4YWRhOGE1MDVlNWIuMzE2YWYzZWRhMTdiNjdiZAogICAgIGVkZmRiNjFkNDFlMDY5YjYKIAotVkhBRERQRF8xMjgocmVnKQorVlBNQUREV0RfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYWVjOTJmMzMxNjIwYmRkNS5mZTdmNTcyYTkxMjA1ODY3LjJjOGJjMDM4ZmY4MDg5MWEuOTMzZWQ3MTUyNTMyMGJkMgogICAgIGNmMWE1OTljYmJjODllYzYuYTI5YmU5MjhlNzRkZTVlZi45MTEwZDI2YWU5ODJkYzZkLmZmZjA0ODAxMGIwMzg5ODkKQEAgLTM1Mzc2LDEyICszNTM3NiwxMiBAQAogICAgIGEwN2FiMDE4ZTc3ZGZhY2MuMDU2YWU0MGQ1MDczMzk3My5hMWE2M2YxNmYzZGIwMWY0LmU4Zjg4N2ExMmFhMGU2NjkKICAgICAxZGU1NGQyZDlhODQzZWVhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQyZWE1YThjNTljZTkzYWQuZmZmODQ4MDEwYjAzODk4OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMzk3YTkzYzE0ZWE5NTEyLjE5N2E4YmVjMzVmZDgzZmYKICAgICBjZjFhNTk5Y2JiYzg5ZWM2LmEyOWJlOTI4ZTc0ZGU1ZWYuOTExMGQyNmFlOTgyZGM2ZC5mZmYwNDgwMTBiMDM4OTg5CiAgICAgYWMzYjMwYzVjZDYyNDkzNC41YmE2OTk3YjczYjk5YzM5LjQ0MDA1M2U2YjE3MjliMjYuZDJlYTVhOGM1OWNlOTNhZAogICAgIGEwN2FiMDE4ZTc3ZGZhY2MuMDU2YWU0MGQ1MDczMzk3My5hMWE2M2YxNmYzZGIwMWY0LmU4Zjg4N2ExMmFhMGU2NjkKICAgICAxZGU1NGQyZDlhODQzZWVhCi1WSEFERFBEXzEyOChtZW0pCitWUE1BRERXRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA0ZDdmMjgxYWM2ODY1NjVjLjA5MjFkNjAzYTZhMmVkMzkuN2NiNDQ0Y2M5Yjg0N2FjNi4wNDUwOTI2ODRjNDk0YjgxCiAgICAgNTQ5MDkyNTVjYWIzZWJlYS40MTdkOWNmMGE1NWY1ZDI4LjljNTAzN2EzNzBmYTE5NjEuYzk0ODQ5NDY1NzQ5YjU3OQpAQCAtMzUzOTEsMTEgKzM1MzkxLDExIEBACiAgIGFmdGVyCiAgICAgNGQ3ZjI4MWFjNjg2NTY1Yy4wOTIxZDYwM2E2YTJlZDM5LjdjYjQ0NGNjOWI4NDdhYzYuMDQ1MDkyNjg0YzQ5NGI4MQogICAgIDU0OTA5MjU1Y2FiM2ViZWEuNDE3ZDljZjBhNTVmNWQyOC45YzUwMzdhMzcwZmExOTYxLmM5NDg0OTQ2NTc0OWI1NzkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2NiNDQ0Y2M5Yjg0N2FjNi5jOTQ4NDk0NjU3NDliNTc5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRlNjQ0YTI0ZGZkMzc5ZWUuZGZiNWI2ZjAwNDA3NzRjYQogICAgIDU3NGEwNzY2YzhiYjdiMGMuOTI4NGZkODVkNGNmYTczYS40N2FkYzM0OTI1NDM2NDE5LmU5NTVkMDViZjUyY2Q4NWQKICAgICBmYzAyOTg2OWMwMjgwOWExCiAKLVZIQUREUERfMTI4KHJlZykKK1ZQTUFERFdEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGUxMmRiNGI0YWRlNTRhMDAuMGI4YjBhMTRmOWFlZWVmOC42M2M3OTAwNDNkOWFmOGI2LjhhMDY1NWYwM2QyZTg3OGYKICAgICBmNDI0MWVhODU5ZjBkNzI2LjA2NzM4ZWMwNzNmY2NlYjEuNzNlZmIzMzY1NjJjYjc2My5lNmUxNjg1ZjRmYWRmOWZjCkBAIC0zNTQwMywxMiArMzU0MDMsMTIgQEAKICAgICAxNGExZDEzYzVjMWRjMzdhLjQwNmMwNWMxYWNkN2M1MzguYzQxYzllNjQwOWQ3NmYwMy41ODRkMDY0NmQwOTliOTZhCiAgICAgMjc3Njg5OTU3NzFkODBjMgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNjBhN2E4Mjc3Y2Q3NjhjLjczZWZiMzM2NTYyY2I3NjMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjA3NmEwYzNkZjc1MTEyMi4yY2E0YzEwODIyODAxNjU5CiAgICAgZjQyNDFlYTg1OWYwZDcyNi4wNjczOGVjMDczZmNjZWIxLjczZWZiMzM2NTYyY2I3NjMuZTZlMTY4NWY0ZmFkZjlmYwogICAgIDkxMzFkNGIxNWZkNGViYzEuMjNkMDBkNTU1MGIxZDc2Mi4yMDQ3NjQ4N2JiMTIyMGVlLjM2MGE3YTgyNzdjZDc2OGMKICAgICAxNGExZDEzYzVjMWRjMzdhLjQwNmMwNWMxYWNkN2M1MzguYzQxYzllNjQwOWQ3NmYwMy41ODRkMDY0NmQwOTliOTZhCiAgICAgMjc3Njg5OTU3NzFkODBjMgotVkhBRERQRF8xMjgobWVtKQorVlBNQUREV0RfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgN2Y1MTdkNWQ4NzY2ODVjMS5kOWMwMTJiM2ViNTc5YjAwLjM4MTRmMWVmYTQ3ZDUzNWUuYmRiYTVkMzdkYjA3ZGY0ZAogICAgIDNiYTk2MDg4MWM3Zjg0OTMuM2NkYTkxODNhODBmYWVmZC5lNzk0NGRjYjUzYWMzZDAxLjY1NmQ5ZTZkY2UyZmFkNzgKQEAgLTM1NDE4LDExICszNTQxOCwxMSBAQAogICBhZnRlcgogICAgIDdmNTE3ZDVkODc2Njg1YzEuZDljMDEyYjNlYjU3OWIwMC4zODE0ZjFlZmE0N2Q1MzVlLmJkYmE1ZDM3ZGIwN2RmNGQKICAgICAzYmE5NjA4ODFjN2Y4NDkzLjNjZGE5MTgzYTgwZmFlZmQuZTc5NDRkY2I1M2FjM2QwMS42NTZkOWU2ZGNlMmZhZDc4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJkYmE1ZDM3ZGIwN2RmNGQuZTc5NDRkY2I1M2E4ODkzMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNjYwMzMxNWY1ZjRjNDVhLmMyMzZjYzlkMTFiYzhkNjEKICAgICA1NDAzZTBiYzQ4NTI2NDVlLjRiMmUzZWUwMWYyNzc4MGQuZDk0YzQ2M2U0OGRhMTk2ZC4zNjQxOTJiNDg1OTQ1MjI1CiAgICAgMTZmYjNlOWI4MWVhYTFmZAogCi1WSEFERFBEXzI1NihyZWcpCitWQUREU1VCUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMTZmOTVjOTYwZTY3M2U2Ny42NzlkNzU5YzE2MjRiY2IwLmIwMDE2MzQ0MTA5ZmE2NzkuZDUxYmRiYWNjNmYwODI4ZAogICAgIDkyODhlNjEwYzc5NzY1MGYuNTBlNWU5OTBkOWY3ZmU4NC4yM2ZlYjhiMDlmYzQwMTBjLmY3ZjNkMDc5NmJjMTM4ZGIKQEAgLTM1NDMwLDEyICszNTQzMCwxMiBAQAogICAgIDZlODkzMzMxMmY0MjNmYzcuMTBhZTViNjRiMWNkMzQ2NC5hMmE5ZGU1NTA5NDYyODVhLjIxZTljYWRjOWNjMTdhYWIKICAgICBlMWEwYzg0YjYwMDk3ZDg2CiAgIGFmdGVyCi0gICAgZTlhN2I3ODRhZWQ2ZWFhMS41MGU1ZTk5MGQ5ZjdmZTg0LjFkOWVhMThmNTQ1OGY2ODEuZjdmM2QwNzk2YmMxMzhkYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yM2ZlYjhiMGU5MjJjMzczLmY3ZjNkMDc5NmJjMTM4ZGIKICAgICA5Mjg4ZTYxMGM3OTc2NTBmLjUwZTVlOTkwZDlmN2ZlODQuMjNmZWI4YjA5ZmM0MDEwYy5mN2YzZDA3OTZiYzEzOGRiCiAgICAgZTZmNGRhNzU0OTA3NTFhMC5lOWE3Yjc4NGFlZDZlODA2LjAwNzIzNzkyNjkyMmMzNzMuMWQ5ZWExOGY1NDU4ZjY4MQogICAgIDZlODkzMzMxMmY0MjNmYzcuMTBhZTViNjRiMWNkMzQ2NC5hMmE5ZGU1NTA5NDYyODVhLjIxZTljYWRjOWNjMTdhYWIKICAgICBlMWEwYzg0YjYwMDk3ZDg2Ci1WSEFERFBEXzI1NihtZW0pCitWQUREU1VCUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzc4ZjE2YzdiYjNiYmUzZS44NzkzZWRiMDE1ZDQ2YjJmLjlmYzg1MTFkZmNlODllYzguNjdlZmE4NjYxY2JiNmU2YwogICAgIDAxODEzMDNlYzk2NGY3ZmUuOGI1ZDA1NWY5ODRhMTE4NS43NGJmMTY5OWFlMzRlNDVlLmE5OGY5MjJmM2UwZWNmNTYKQEAgLTM1NDQ1LDExICszNTQ0NSwxMSBAQAogICBhZnRlcgogICAgIDM3OGYxNmM3YmIzYmJlM2UuODc5M2VkYjAxNWQ0NmIyZi45ZmM4NTExZGZjZTg5ZWM4LjY3ZWZhODY2MWNiYjZlNmMKICAgICAwMTgxMzAzZWM5NjRmN2ZlLjhiNWQwNTVmOTg0YTExODUuNzRiZjE2OTlhZTM0ZTQ1ZS5hOThmOTIyZjNlMGVjZjU2Ci0gICAgMzc4ZjE2YzdiYjNiYmUzZS44YjVkMDU1Zjk4NGExMTg1LjY3ZWZhODY2MWNiYjZlNmMuNzRiZjE2OTlhZTM0ZTQ1ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NGJmMTY5OTdjZTg5ZWM4LjY3ZWZhODY2M2UwZWNmNTYKICAgICA1Y2EyYjljYjcxYzg0NDQ4LmM3NjUzYmY4ZTQxMGI5YWEuNWI3N2Y5OGViMThjZWZkMy4xODExYjI5ZDFjN2JkNDYwCiAgICAgZmQ4YWUxMTkxMGFlZjFkOAogCi1WSEFERFBEXzI1NihyZWcpCitWQUREU1VCUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgY2Y4ZTFmZmY4M2VlMTlkOC5hNzY4MjBiODQxMWJjZjJhLmI3M2E1MmJjZTQ3NzMzZDEuMjdjZjEwZGYzYWIxMmMwOQogICAgIGVjNjk2OWI5MTFjNzg4MGMuZDQ2MjQzNGYzNjk1NDRjNS4wMzAwYjc1ZmYxZjIxODk1LmE3MzZlNmEzOWEzNjM1MjIKQEAgLTM1NDU3LDEyICszNTQ1NywxMiBAQAogICAgIDcyZDMwZDVlZWM3NjJmYmUuNDcyMmFkMmNmOTJjZDZkNC4xZThlNTdmMWEwNTMwZWE3LjM3NWNiYjM5NDg5Mjk1YWIKICAgICBmZWI1YjNlMmQwODA2Njc0CiAgIGFmdGVyCi0gICAgYzA1YzllN2Q2YTQxNWQ0NC5lYzY5NjliOTExYzc4ODBjLmI4NzZmNWM4ZWEyOGM0NDkuYTczNmU2YTM5YTM2MzUyMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNjA1NjcyOWYxZjIxODk1LmI4NzZmNWM4NmEyOGM0NDkKICAgICBlYzY5NjliOTExYzc4ODBjLmQ0NjI0MzRmMzY5NTQ0YzUuMDMwMGI3NWZmMWYyMTg5NS5hNzM2ZTZhMzlhMzYzNTIyCiAgICAgYWU2NmI5YjU1NWM2N2MxZi5jMDVjOWU3ZDZhNDE1ZDQ0LjA2MDM2NDRjYTcwZGEyYTMuYjg3NmY1YzhlYTI4YzQ0OQogICAgIDcyZDMwZDVlZWM3NjJmYmUuNDcyMmFkMmNmOTJjZDZkNC4xZThlNTdmMWEwNTMwZWE3LjM3NWNiYjM5NDg5Mjk1YWIKICAgICBmZWI1YjNlMmQwODA2Njc0Ci1WSEFERFBEXzI1NihtZW0pCitWQUREU1VCUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZWE0YTU5YWY5ZGZmZjFjZi45NWZhNjAyMDcxNjNkZTk1LjQ2N2ZlZDRhMDA2MDZjYTEuYTZlZThiYjk3YjUwOTc0YwogICAgIGQ3ZWEyYThkY2IxOWYzZTkuNzEyOGFlNjc4MDFhYzQ0Zi45NzQwZDljMTlhZWNkYmQ2LmZhNzBmYzEwZDE5MDdhM2UKQEAgLTM1NDcyLDExICszNTQ3MiwxMSBAQAogICBhZnRlcgogICAgIGVhNGE1OWFmOWRmZmYxY2YuOTVmYTYwMjA3MTYzZGU5NS40NjdmZWQ0YTAwNjA2Y2ExLmE2ZWU4YmI5N2I1MDk3NGMKICAgICBkN2VhMmE4ZGNiMTlmM2U5LjcxMjhhZTY3ODAxYWM0NGYuOTc0MGQ5YzE5YWVjZGJkNi5mYTcwZmMxMGQxOTA3YTNlCi0gICAgZWE0YTU5YWY5ZGZmZjFjZi43MTI4YWU2NzgwMWFjNDRmLjQ2N2ZlZDRhMDA2MDZjYTEuZmE3MGZjMTBkMTkwN2EzZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NjdmZWQ0YTlhZWNkYmQ2LmZhNzBmYzEwZmI1MDk3NGMKICAgICAyNDc3M2EyN2JkNTQ0YjA5LmM4YzkyZDM1YWYxMzI5MWUuYTIxZmE1NmZmOTM1MzQyOS43NTA1ODYxYzY0MGIzZWJkCiAgICAgNTViMTk3YThkOTVlOTZhMAogCi1WSEFERFBEXzI1NihyZWcpCitWQUREU1VCUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNzFhZGQ1NzMzOTI0Mzk4MS4zZGZkNzFiZGI4OGMxOTY2LmZhZDQ1NDkzMDY2ZTFmOGEuMTRkMzdlN2RmNjBiOTVhMAogICAgIDI0NDczY2VhMjJlOTYwMGMuYzZiY2MyMTM4NDkwNGUzMi41NjE2NjgyNzU3YzIzYzhiLjQ5MWNmMjk1ZjY2OGJmMzAKQEAgLTM1NDg0LDEyICszNTQ4NCwxMiBAQAogICAgIGM0ODA3Njg4ZmVhMTMxY2UuOWIxOGEzYWUwMTJlZGNjNi5mYzZkNDA5ZDU5ODZkZWY2LjZjOTlhMDkzNzFlNDVkNDgKICAgICAxMjY1ZDI1MjIzMWM0OTI5CiAgIGFmdGVyCi0gICAgY2NjOWM5NzgzMDNhNGFlYy5jNmJjYzIxMzg0OTA0ZTMyLjM4ZGE2MjViM2Y5YmJkY2IuNTYxNjY4Mjc1N2MyM2M4YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NjE2NjgyNzU3YzIzYzhiLjQ5MWNmMjk1ZjY2OGJmMzAKICAgICAyNDQ3M2NlYTIyZTk2MDBjLmM2YmNjMjEzODQ5MDRlMzIuNTYxNjY4Mjc1N2MyM2M4Yi40OTFjZjI5NWY2NjhiZjMwCiAgICAgY2NjOWM5NzgzMDNhNGFlYy45YzgxYWExNDNlNmRhNTk5LjM4ZGE2MjViM2Y5YmJkY2IuMWRjNTdmYTMxNjU3NmUwNAogICAgIGM0ODA3Njg4ZmVhMTMxY2UuOWIxOGEzYWUwMTJlZGNjNi5mYzZkNDA5ZDU5ODZkZWY2LjZjOTlhMDkzNzFlNDVkNDgKICAgICAxMjY1ZDI1MjIzMWM0OTI5Ci1WSEFERFBEXzI1NihtZW0pCitWQUREU1VCUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZWJmNThmY2E0OTBhZWVkMy42N2I4NDE4ODI5YWQ1MjVlLjllNGMyYmNjZWFkZmFjZTYuZmUxYmZjNTc0MjBlZGJiYQogICAgIGQzMTU1NWU5ZmZiYTA3NzIuMTNiZDI1ZTM0Y2U3ZTk0Ny44M2ViYmU1YTE0OGRkNDI1LjlhMzA5NGY3OTViZmVmYzAKQEAgLTM1NDk5LDExICszNTQ5OSwxMSBAQAogICBhZnRlcgogICAgIGViZjU4ZmNhNDkwYWVlZDMuNjdiODQxODgyOWFkNTI1ZS45ZTRjMmJjY2VhZGZhY2U2LmZlMWJmYzU3NDIwZWRiYmEKICAgICBkMzE1NTVlOWZmYmEwNzcyLjEzYmQyNWUzNGNlN2U5NDcuODNlYmJlNWExNDhkZDQyNS45YTMwOTRmNzk1YmZlZmMwCi0gICAgZWJmNThmY2E0OTBhZWVkMy5kMzE1NTVlOWZmYmEwNzcyLmZlMWJmYzU3NDIwZWRiYmEuOWEzMDk0Zjc5NWJmZWZjMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ZTRjMmJjYzZhZGZhY2U2LmZlMWJmYzU3YzIwZWRiYmEKICAgICA0MDM1ZWFjODg4OTI4ODNjLmYyNWQyOTVhZWIxYTY3ZDYuNjA5NWYxNzY5ZDBkMThhZS4xMGJmNDY5NmViY2U0ZjQ5CiAgICAgYTJkMDU4NmQyNjQ0MTIyMgogCi1WSFNVQlBTXzEyOChyZWcpCitWQUREU1VCUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgM2U3ODM1ZGEzYjEyZGVlZi43Y2NjYjA2MTk0ZDE2OGMwLmRkOTE0MTRlOWYyYmM3ZDQuMTAzOTg5ZGMzNGY4YWI1MAogICAgIDQwMDRkOTQ3YzdjN2VkNWMuMzgyNDZmNTA5ZjAzYWRlOS40MWMxNjI0ZGJjOWI4ZGRiLjExNzcxZDYzN2MwZjg2YzEKQEAgLTM1NTExLDEyICszNTUxMSwxMiBAQAogICAgIGU2ZjI2N2Q1YjEwZmM2YzUuOWQ0MmM1ZTAyNDZkNTNkOC5kZjQ4YjAxZDlmYzkzOWI3Ljc1ZjEyMTgwOTFmMmZmYmYKICAgICA5MWM0OGJlZjk1ZDYxNmE0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY4M2E4OGM0YmUxYjI2ZjUuYzFjMTg5MzA3YzBmODZjMQorICAgIDQwMDRkOTQ3ZTVlYzdiMTUuNGYwN2EyODE0NjMzMTJlMi43ODNhODhjNDVlZjZmNDk4LjNlMWIyNmY1N2MwZjg2YzEKICAgICA0MDA0ZDk0N2M3YzdlZDVjLjM4MjQ2ZjUwOWYwM2FkZTkuNDFjMTYyNGRiYzliOGRkYi4xMTc3MWQ2MzdjMGY4NmMxCiAgICAgMDRiZTQwMjE2NWVjN2IxNS40ZjA3YTI4MWM2MzMxMmUyLjc4M2E4OGM0ZGVmNmY0OTguM2UxYjI2ZjU5MjVlNjMyZAogICAgIGU2ZjI2N2Q1YjEwZmM2YzUuOWQ0MmM1ZTAyNDZkNTNkOC5kZjQ4YjAxZDlmYzkzOWI3Ljc1ZjEyMTgwOTFmMmZmYmYKICAgICA5MWM0OGJlZjk1ZDYxNmE0Ci1WSFNVQlBTXzEyOChtZW0pCitWQUREU1VCUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNmU2MWRmMmRiYjE2NjMwNy40MWVlNDljZDQ4YmIwODE4LmZkYTE1NDU5ZDZiZTJlZjcuZDMzN2Q1YzY5ZTlmOThlMwogICAgIGU3OTQ5OTI4MWZiZmEzMTUuNzNmZGUyNzdjNjdkN2ViYi40ZGVmY2NkOGY3MzE1ZDZhLmFlNTJmMjI5NzQwNDRjYzkKQEAgLTM1NTI2LDExICszNTUyNiwxMSBAQAogICBhZnRlcgogICAgIDZlNjFkZjJkYmIxNjYzMDcuNDFlZTQ5Y2Q0OGJiMDgxOC5mZGExNTQ1OWQ2YmUyZWY3LmQzMzdkNWM2OWU5Zjk4ZTMKICAgICBlNzk0OTkyODFmYmZhMzE1LjczZmRlMjc3YzY3ZDdlYmIuNGRlZmNjZDhmNzMxNWQ2YS5hZTUyZjIyOTc0MDQ0Y2M5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdkYTE1NDU5NTMzN2Q1YzYuZjczMTVkNmE3NDA0NGNjOQorICAgIDZlNjFkYTg4M2IxNjYzMDcuNzNmZGUyNzdjOGMyZjQwZS5mZGExNTQ1OWY3MzE1ZDZhLmQzMzdkNWM2NzQwNDRjYzkKICAgICAyMWVjMzAwMjBlNzllY2UwLmM5ODIyOThlZTQ3MGY0YTAuMjk4YzYzOTlmOGFlYWFmZS44YzQwMGFkMjFiYWRhNzcxCiAgICAgNDdhYWZiZWYyMzA4YzQ4YwogCi1WSFNVQlBTXzEyOChyZWcpCitWQUREU1VCUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNWI3MWQ2Nzc3NDIzMjcxMC45YWE5MDViOWQyYTM2Y2Y2LmE0OTFkMGQzYmRiOTZkM2EuNmU3MjdjYjMxMGQwM2Y3NwogICAgIDIyZTE5NmQ2YTk4OTBkYWEuMWYyYjMwZGM0MzY1Y2Y2Ni5jNmUzMWU3OWVjNDgwYWQ0LjExNzk2YzgyMDc0NDE5ZjQKQEAgLTM1NTM4LDEyICszNTUzOCwxMiBAQAogICAgIDNjZWJiNmM5MzE2NzRjY2YuYzFiMjc5MTc5ZWUyMmQwNy40YjdmOWY5OGJlNjY5ZmI2LmU1MTRjNmY0MDQ1NDhjYWQKICAgICBjZTQyMjc2ZTQxMDg5YzQwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBlYThjYTI5ZmExN2Y0OTMuZWM0ODBhZDQ5MTc5NmM3NgorICAgIGY5NDYzNzc4ZGZjN2FmMDYuMWYyYjMwZGNmZWNjZDE1ZC5jNmUzMWU3OWVjNDgwYWQ0LmYwNmFiMWY0N2ExN2Y0YTIKICAgICAyMmUxOTZkNmE5ODkwZGFhLjFmMmIzMGRjNDM2NWNmNjYuYzZlMzFlNzllYzQ4MGFkNC4xMTc5NmM4MjA3NDQxOWY0CiAgICAgZjk0NjM3Nzg1ZmM3YWYwNi44ZTQwMmQ1ODdlY2NkMTVkLjhhYzQwZmVjMGVhODA2MTkuZjA2YWIxZjRmYTE3ZjRhMgogICAgIDNjZWJiNmM5MzE2NzRjY2YuYzFiMjc5MTc5ZWUyMmQwNy40YjdmOWY5OGJlNjY5ZmI2LmU1MTRjNmY0MDQ1NDhjYWQKICAgICBjZTQyMjc2ZTQxMDg5YzQwCi1WSFNVQlBTXzEyOChtZW0pCitWQUREU1VCUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgODViZjUwNGVjZTNlZTE4OC40NzFkMGUzNmJiZjcxZWIxLjk2NGU4ZjA3YzBiNmEwOGYuNjc2MmNiZTk5OTBkMGU1NgogICAgIGU3NThiZTgwYzcwMjE3YjEuNzYyOTNhMjk5YTAzNjI1OS5lN2UwZWIxMmZmNTFlNjIyLjM4Yjc4ZTRjM2EyOTkyYTYKQEAgLTM1NTUzLDExICszNTU1MywxMSBAQAogICBhZnRlcgogICAgIDg1YmY1MDRlY2UzZWUxODguNDcxZDBlMzZiYmY3MWViMS45NjRlOGYwN2MwYjZhMDhmLjY3NjJjYmU5OTkwZDBlNTYKICAgICBlNzU4YmU4MGM3MDIxN2IxLjc2MjkzYTI5OWEwMzYyNTkuZTdlMGViMTJmZjUxZTYyMi4zOGI3OGU0YzNhMjk5MmE2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMwYjZhMDhmZTc2MmNiZTkuZmY1MWU2MjIzYTEyYTBkYworICAgIGU3NThiZTgwNGUzZWRmODAuNzYyOTNhMjkzYmY3MWViMS5lN2UwZWIxMmZmNTFlNjIyLjY3NjJjYmU5M2EyOTkyYTYKICAgICAxZDBmNTU4YjZhNjU0NTUzLmIwZmEwNDU2YzZiYzJmYWEuNzExNTY1MmU0NjExZGExNy42ZGVhYzlmNDQwZjJjNDA0CiAgICAgODk2MDM5MTJkZGI2ZWI2YgogCi1WSFNVQlBTXzEyOChyZWcpCitWQUREU1VCUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgY2E3OTMxZjFiMDIwMTUzMS5hOGMzNzgzYjRkMWNiNDI2LjczNTc5ODY2NGE4MTMwYWIuNjE1MDdjMTU4NjRlMDBkMQogICAgIDhkODBhY2ZjNTZiYjgwMDMuNGVjNGNlZWUwYjkyMDU4OC5jYWJlZjJhZTkzZjI5MzIyLjNlYjFjOWM5NTM4MmU5NDYKQEAgLTM1NTY1LDEyICszNTU2NSwxMiBAQAogICAgIDBhOGMxYjRjODhiNDAzN2EuNWNkOTA4MDk4YWU4MzhiMC5hM2Q2ZTU5M2UyMDY2ZTIwLjMwMTVmNTQ2MDYwNWYzMTAKICAgICBmY2IwY2NlNjIzNmI4Y2JkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNjOWE5M2JhNjQwNWM4MzUuNGFiZWYyYWU1MzgyZTk0NgorICAgIDJmYzNhNmExZWExMzY2OGQuZWNkZGQ1OGU0MWQyZjJhOC5jYWJlZjJhZWJjOWE5M2JhLmU0MDVjODM1NTM4MmU5NTIKICAgICA4ZDgwYWNmYzU2YmI4MDAzLjRlYzRjZWVlMGI5MjA1ODguY2FiZWYyYWU5M2YyOTMyMi4zZWIxYzljOTUzODJlOTQ2CiAgICAgMmZjM2E2YTE2YTEzNjY4ZC5lY2RkZDU4ZWMxZDJmMmE4LjEwNzkwZDk5M2M5YTkzYmEuZTQwNWM4MzVjOWJjNTBhMgogICAgIDBhOGMxYjRjODhiNDAzN2EuNWNkOTA4MDk4YWU4MzhiMC5hM2Q2ZTU5M2UyMDY2ZTIwLjMwMTVmNTQ2MDYwNWYzMTAKICAgICBmY2IwY2NlNjIzNmI4Y2JkCi1WSFNVQlBTXzEyOChtZW0pCitWQUREU1VCUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMjVhMWNhMDIzZWY5ZDdkNC43YjI4MDc2NzRkMmM5NDc2LjdiODVlMzRhODNlMDkzY2MuZGUxZjc3MDgyMGMxNWVmZgogICAgIDg3YjM2YTg3NzJiYzkxODIuZGVlMzY3NWY1NTA0NTUyZS4yNWFkZTIzZGM3YzdiZjJhLjFkYTFiZDY0OTM1NzlmMDQKQEAgLTM1NTgwLDExICszNTU4MCwxMSBAQAogICBhZnRlcgogICAgIDI1YTFjYTAyM2VmOWQ3ZDQuN2IyODA3Njc0ZDJjOTQ3Ni43Yjg1ZTM0YTgzZTA5M2NjLmRlMWY3NzA4MjBjMTVlZmYKICAgICA4N2IzNmE4NzcyYmM5MTgyLmRlZTM2NzVmNTUwNDU1MmUuMjVhZGUyM2RjN2M3YmYyYS4xZGExYmQ2NDkzNTc5ZjA0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZiODVlMzRhNWUxZjc3MDguYzdjN2JmMmE5ZGExYmQ2YgorICAgIDI1YTFjYTAyNzJiYzkxODIuN2IyODA3Njc1NTA0NTQ4MS43Yjg1ZTM0YWM3YzdiZjJhLmRlMWY3NzA4YTBjMTVlZmYKICAgICA2NjZlODA3ODk4MGU0MjUyLmViZTU3MDk3OWIwOTU3ODIuOGFhMTNkZTlhMjkwNzg1Ni4xNjdmNWE4Mjg2NDUwODJmCiAgICAgODk3M2E4MWMzZWI1YTdhZAogCi1WSFNVQlBTXzI1NihyZWcpCitWQUREU1VCUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNmZkMTljNGM5YTMxODcwMC45YmFlZWZiY2MxYjZiMWNjLjRjYzQxMmFlMTI0ZDBmNzUuZmQwNDkxN2E3MThhN2Q3ZAogICAgIDI2ZTMzMTgwMzc0NGU1ZDUuNzk0MGYwMTk3M2MyN2U4Yy4wZmYzMTY1MzNiMjNlN2QzLjZiMTRmOTZkZmJhMjQ0OTQKQEAgLTM1NTkyLDEyICszNTU5MiwxMiBAQAogICAgIDczNTYyZWExYTM2MDBiYjMuYTA4OTk4Y2JlNDM2MjU5MS4yYjZjMzlmNDE1YjJlNjgzLmE4NjZmNjJhYjE1ZTAzNDUKICAgICAyZjQxODNjYjE2MTk3MzM3CiAgIGFmdGVyCi0gICAgYjE3YWZkZDc1Y2VmZmY3YS4zNzQ0ZTVkNWY5NDBkN2M5LmIzMTYxYTRhNWNlNTg3YzkuM2IyM2U3ZDNmYmEyNDQ5NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MGJjNzljMDRkZTI2ODBjLjZiMTRmOTZkZmJhMjQ0OTQKICAgICAyNmUzMzE4MDM3NDRlNWQ1Ljc5NDBmMDE5NzNjMjdlOGMuMGZmMzE2NTMzYjIzZTdkMy42YjE0Zjk2ZGZiYTI0NDk0CiAgICAgMDlmNjYyMjNiMTdhZmRkNy5kY2VmZmY3YWNiM2U2NmJmLjkwYmM3YWYxYjMxNjFhNGEuYjA5YmYyYWU1Y2U1ODdjOQogICAgIDczNTYyZWExYTM2MDBiYjMuYTA4OTk4Y2JlNDM2MjU5MS4yYjZjMzlmNDE1YjJlNjgzLmE4NjZmNjJhYjE1ZTAzNDUKICAgICAyZjQxODNjYjE2MTk3MzM3Ci1WSFNVQlBTXzI1NihtZW0pCitWQUREU1VCUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjFmODE0N2ZhNjIzOTRjOS5jMjRmOGU2NmE5ODE0YjE1LmExZDgzN2Y4ZGJiNzc2MmQuM2M0ZTRmYzhmZTg0ODUyZAogICAgIDVhNTYyNTMxN2Q4NzIyMjcuNTAyYzgwZGU2MDY5ZjhhOC5iYmE5NTllZGNiY2QxNmMwLjFmYjBiOWQ5MDkxNzM0ZjIKQEAgLTM1NjA3LDExICszNTYwNywxMSBAQAogICBhZnRlcgogICAgIDIxZjgxNDdmYTYyMzk0YzkuYzI0ZjhlNjZhOTgxNGIxNS5hMWQ4MzdmOGRiYjc3NjJkLjNjNGU0ZmM4ZmU4NDg1MmQKICAgICA1YTU2MjUzMTdkODcyMjI3LjUwMmM4MGRlNjA2OWY4YTguYmJhOTU5ZWRjYmNkMTZjMC4xZmIwYjlkOTA5MTczNGYyCi0gICAgYTYyNDEwZDM0MjRmOGU2Ni43ZDg3MjIyNzYwNjlmOGE4LmRiYjc3NjJkZmU4NDg1MmQuY2JjZDE2YzA5ZmIwYjlkOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iYmE5NTllZGNiY2QxNmMwLmJjNGU0ZmM4ZmU4NDg1MmQKICAgICAxMDNiYjkzZTczOGU3NGZhLjlkYzYwNjk3NTBiZjhiMTQuYTkwMTEzZTAwOGU0MzI3OS5jYjIwNzU2MmY3YjFiMDdlCiAgICAgNGNjNmMxYjIxMmQwZjY5ZQogCi1WSFNVQlBTXzI1NihyZWcpCitWQUREU1VCUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMGYxYjRmZjBiZmUxM2M4YS40NjU5MzI3MmM4NDliMWM2LjEzMWE5NGIxYzA0NmU5NDQuMzYyMGEzYjU4Y2ZmMjdmOAogICAgIDZmNmIxYzg2OWE2ZmJkZWQuMzM0ZjFkNTVkNjhlNDkwZi4zYTgzYTIyZDUxYzNhNTU1LjRjZjFhNjAzN2FkZDVhMWQKQEAgLTM1NjE5LDEyICszNTYxOSwxMiBAQAogICAgIDdiMmI2NTZlNGQzMjYzYzkuYTFmMzMyZDM4N2U4ODFjNy4wNmMzMzNmZjQ0ZDUyN2NkLjgyZDdmMWI2MDMxODZjMGIKICAgICA1Yjg1MzNmNGQ1OGNjMzJjCiAgIGFmdGVyCi0gICAgNGEwMTI1ZWFiNjY5MjcxOS5lZjZiMWM4NmQ2OGU0OTBmLmVjNGMyZTc5ZWU4Yzg3MTQuNTFjM2E1NTU3YWRkNWExZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42YzRjMmU3OTllYzRmYmY1LjRjZjFhNjAzN2FkZDVhMWQKICAgICA2ZjZiMWM4NjlhNmZiZGVkLjMzNGYxZDU1ZDY4ZTQ5MGYuM2E4M2EyMmQ1MWMzYTU1NS40Y2YxYTYwMzdhZGQ1YTFkCiAgICAgY2EwMTI1ZTI0MDA2Yjc3My5iMmU5ZjNkMWI2NmFmYjAxLjZjNGMyZTc5OWVjNGZiZjUuYzYzZjk3YjVlZThjODcxNAogICAgIDdiMmI2NTZlNGQzMjYzYzkuYTFmMzMyZDM4N2U4ODFjNy4wNmMzMzNmZjQ0ZDUyN2NkLjgyZDdmMWI2MDMxODZjMGIKICAgICA1Yjg1MzNmNGQ1OGNjMzJjCi1WSFNVQlBTXzI1NihtZW0pCitWQUREU1VCUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMmMxNWQ2NWE4MWY0NDlhMy5kZTMzZDg5ODVjODAwMDliLmRiMzg1NDQ3NjIxNDk4OGUuNjQzMmFkMmRkZTgwNjQ4YwogICAgIGQzNTM1OGQ0MjM1Y2I5OWQuNGU2NjdiY2IwOTdjYzg5NC4zYjg2ZDcxYTY2ZmJmYzgxLmUzZTc5ODZlMDk1M2VmZGMKQEAgLTM1NjM0LDExICszNTYzNCwxMSBAQAogICBhZnRlcgogICAgIDJjMTVkNjVhODFmNDQ5YTMuZGUzM2Q4OTg1YzgwMDA5Yi5kYjM4NTQ0NzYyMTQ5ODhlLjY0MzJhZDJkZGU4MDY0OGMKICAgICBkMzUzNThkNDIzNWNiOTlkLjRlNjY3YmNiMDk3Y2M4OTQuM2I4NmQ3MWE2NmZiZmM4MS5lM2U3OTg2ZTA5NTNlZmRjCi0gICAgYWMxNWQ2NWE1ZTQzZDhhYi41MzUzNThkNGNlNjY3YmNiLjYyMTQ5YjZmZTQzMmJkM2EuNjZmYmZjODE2M2U3OTg2ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kYjM4NTQ0NzYyMTQ5ODhlLmU0MzM2OWYxNGVjYjA0MGIKICAgICAwZjA4ZTZiNGI2NWU0YmM5LmNhN2QzZGZjYWZhYWNjYWUuZTE2OGVlODk1MjI4OTk5ZC5hZjRlYjJkOTgwYTBkZWUxCiAgICAgYjU5OWQ5ZGIwNDMxYmFlZQogCi1WSFNVQlBTXzI1NihyZWcpCitWQUREU1VCUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNGI1ODYyYTA4ODE5ZDQzYy41YzE4ZWFmM2UwMGZlMzUzLjhjZjk1NmQyZTBmNTdmMjYuZGY5NTdhZmU3NDg1NGIxZgogICAgIGNkZDk0Nzk0YTllNTY3NzguZWYwNWJjZjU2ZmYxNTcxMC5jZGQwOGQ2MTFmMWU0ZTc2LjczZmE1NjgxMmRjZDNhN2MKQEAgLTM1NjQ2LDEyICszNTY0NiwxMiBAQAogICAgIDA1NGMxOWJhMzE1NmViNjkuNTNhOWJjZjYyZTc2YmVkMC4zOGJkNDk1YjM5MzczMDRjLmQxOWJlZTYxZDU0ZGJkN2QKICAgICA1MjZmYTM5NmZkOWNjYTc5CiAgIGFmdGVyCi0gICAgMTc2Njg2MjQyMjljZDlhOC40ZGQ5NDc5NDcwMWExYWM1LjY3NGRkZjE2ZmI2MmZlZmUuNGRkMDhkNjFmM2ZhNTY4MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNzRkZGYxNjA5YjA3NTQ5LmZiNjJmZWZlOTkwYzIxZTIKICAgICBjZGQ5NDc5NGE5ZTU2Nzc4LmVmMDViY2Y1NmZmMTU3MTAuY2RkMDhkNjExZjFlNGU3Ni43M2ZhNTY4MTJkY2QzYTdjCiAgICAgOTc2Njg2MjQwMzIwYjA0ZS5hMjljZDlhODgwMGY2MTJiLmU3NGRkZjE2MDliMDc1NDkuN2I2MmZlZmU5OTBjMjFlMgogICAgIDA1NGMxOWJhMzE1NmViNjkuNTNhOWJjZjYyZTc2YmVkMC4zOGJkNDk1YjM5MzczMDRjLmQxOWJlZTYxZDU0ZGJkN2QKICAgICA1MjZmYTM5NmZkOWNjYTc5Ci1WSFNVQlBTXzI1NihtZW0pCitWQUREU1VCUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZGJhYjk3ODkyYzA1MDMwMS43M2Q3ZmZjNGNmMTQ1NDc2LmRjZjdlMWNkOTYzMTI5MmQuMWE2ZGM2OWU0YzQwYmEyYQogICAgIDQ2MWI0ODI2N2U5NTI2NDIuM2Q1MzMxYWM3YWU1MjYyMC4xYTU0YzUxOGQzNGM2MDZiLmViYTc1MjQ5ZGQ1NTUwOTAKQEAgLTM1NjYxLDExICszNTY2MSwxMSBAQAogICBhZnRlcgogICAgIGRiYWI5Nzg5MmMwNTAzMDEuNzNkN2ZmYzRjZjE0NTQ3Ni5kY2Y3ZTFjZDk2MzEyOTJkLjFhNmRjNjllNGM0MGJhMmEKICAgICA0NjFiNDgyNjdlOTUyNjQyLjNkNTMzMWFjN2FlNTI2MjAuMWE1NGM1MThkMzRjNjA2Yi5lYmE3NTI0OWRkNTU1MDkwCi0gICAgNWJhYjk3ODlmM2Q3ZmZjNC43ZTk1MjY0MjdhZTUyNjIwLjVjZjdlMWNkNGM0MGJhMmEuZDM0YzYwNmI2YmE3NTI0OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kY2Y3ZTFjZDk2MzEyOTJkLmViYTc1MjQ5ZGQ1NTUwOTAKICAgICAzNmM3Y2YwZmZkNTgxNDlkLjU1NGU2ZGNiNjVmMWY4ZmQuMjY2N2I2YjkzZWQzMWM0MS5jNmViODg4Y2ViZDk4ZmEzCiAgICAgODg4ZDJhZmJhMDVmYjBhOAogCi1WSFNVQlBEXzEyOChyZWcpCitWQUREU1VCUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYThlYmNiODM0MzIzY2RlNS43MjlhOWQzMzYyYTM1ODBmLjViNjQ2ZmQ5ZGU0NTcwODkuYWJiNWJjZThhMzU3MWIyZgogICAgIDgzNGY2ODkwNzBhZjIyMDUuMDFkMTE2YjA1YjQ0NzVlYS4yZDliYWU3NmQyZGI0MTYxLjU1NDE3MDNjNGU2Y2Q0YjEKQEAgLTM1NjczLDEyICszNTY3MywxMiBAQAogICAgIGQ1NWM4MmU5ZGI1NTYyOWYuODg5Y2ZmNmE3NWI5MmE4YS5hNDljZDQwZGExMDJlMWFjLjg4NDJkM2ZlZTU3NjY3MWIKICAgICBjYTRmN2E0NjA4ODNiODVjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE2M2YyNzBlZTA0MWE4MzQuNTU0MTcwM2M0ZTZjZDRiMQorICAgIDczMDZmYjhlYzQ5MWVhYjQuM2YzOWI4NzQwMjQ3Mjc1YS4yZDliYWU3NmQyZGI0MTYxLjU1NDE3MDNjNGU2Y2Q0YjEKICAgICA4MzRmNjg5MDcwYWYyMjA1LjAxZDExNmIwNWI0NDc1ZWEuMmQ5YmFlNzZkMmRiNDE2MS41NTQxNzAzYzRlNmNkNGIxCiAgICAgNzMwNmZiOGVjNDkxZWFiNC5iZjM5Yjg3NDAyNDcyNzVhLjI2M2YyNzBlZTA0MWE4MzQuMDBkNjRmOWY1YjFkMDRmMQogICAgIGQ1NWM4MmU5ZGI1NTYyOWYuODg5Y2ZmNmE3NWI5MmE4YS5hNDljZDQwZGExMDJlMWFjLjg4NDJkM2ZlZTU3NjY3MWIKICAgICBjYTRmN2E0NjA4ODNiODVjCi1WSFNVQlBEXzEyOChtZW0pCitWQUREU1VCUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgYTBjYmJmNjFlMTUxYjRlMC4wNTlkZjgwZTUwODVjNjcyLjM4Yzc2NTdlZDBhNjM5YTcuMDJmZWIzZTBiM2FiMjc3NQogICAgIGU3ODAxZjNkOGJlYzE3ZDIuNjAxNDU5NjdiZmIwNTFkOS5hYjg1Njg5YzJlMTgxMWRjLjliYjFiZmYxYjJjN2I3M2MKQEAgLTM1Njg4LDExICszNTY4OCwxMSBAQAogICBhZnRlcgogICAgIGEwY2JiZjYxZTE1MWI0ZTAuMDU5ZGY4MGU1MDg1YzY3Mi4zOGM3NjU3ZWQwYTYzOWE3LjAyZmViM2UwYjNhYjI3NzUKICAgICBlNzgwMWYzZDhiZWMxN2QyLjYwMTQ1OTY3YmZiMDUxZDkuYWI4NTY4OWMyZTE4MTFkYy45YmIxYmZmMWIyYzdiNzNjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI4Yzc2NTdlZDBhNjM5YTcuMmI4NTY4OWMyZTE4MTFkYworICAgIGU3ODAxZjNkOGJlYzE3ZDIuNjAxNDU5NjdiZmIwNTFkOS4zOGM3NjU3ZWQwYTYzOWE3LjliYjFiZmYxYjJjN2I3M2MKICAgICAzOGM4MWNlNGM1YjUwMWIyLjAyZDhjZDY5ZmQyMGQwMTAuNGFlZTMyYTc2NWMwMGI0MS5mMzM5NGY4MWU1ODhhNDczCiAgICAgNjhhNmNiZDg1MTQ2N2EzYgogCi1WSFNVQlBEXzEyOChyZWcpCitWQUREU1VCUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgOGE5NDY0MWUxOWE3ODliMS5mYWYyYjI4ODhiZmNmZmY4LjAyYmNkOGVhMDQ3ZTNhM2EuMmUzMGYyNmI3NjBlYTVjOAogICAgIGIzNGYxNmJmZGEzODBkODAuOWM4NzUyOWM5NDQwNTU1Yy45YzA3YmU1MDc1MDViZGE2LjQ1MzczZGU5ZmExMmY4MTgKQEAgLTM1NzAwLDEyICszNTcwMCwxMiBAQAogICAgIDhlNWJiNmMyYjYxNzY4ZGIuZjUxZGExYzRkOWVjZjUzMS4wZTAxMGI3YjA3YzBmOGZiLjdjYmU2OWM1Y2M2ZGI3YzEKICAgICA1NGQ4NDFmOTUyZGM5YzcyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZiY2M5MTBlMGRkOGJmNWMuNDUzNzNkZTlmYTEyZjgxOAorICAgIDQxMjJkZDI3MzA4NDQ0NTQuN2M1MTc5MGNmOThjYmUwYy4yYzA1N2IwN2VkNDI5MzAzLmViY2M5MTBlMGRkOGJmNWMKICAgICBiMzRmMTZiZmRhMzgwZDgwLjljODc1MjljOTQ0MDU1NWMuOWMwN2JlNTA3NTA1YmRhNi40NTM3M2RlOWZhMTJmODE4CiAgICAgNDEyMmRkMjczMDg0NDQ1NC5mYzUxNzkwY2Y5OGNiZTBjLjJjMDU3YjA3ZWQ0MjkzMDMuNmJjYzkxMGUwZGQ4YmY1YwogICAgIDhlNWJiNmMyYjYxNzY4ZGIuZjUxZGExYzRkOWVjZjUzMS4wZTAxMGI3YjA3YzBmOGZiLjdjYmU2OWM1Y2M2ZGI3YzEKICAgICA1NGQ4NDFmOTUyZGM5YzcyCi1WSFNVQlBEXzEyOChtZW0pCitWQUREU1VCUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgY2ZlNTk2OThiYzMxMmE5ZC5mODQ0OWJmYzA4N2ViNmJmLjYzYjc0OGIxNGQ2ZGI2ZmEuOWU0OTZiMTg2MDBiMmEzYQogICAgIGM4YjNlMjhkMjY3OTFjNmIuZDkyYThhNDFjMzQ0NjlhYy4yMmViZTliZDczMWFiZjkxLjM4Mjc5NjRhOTNiMDYzNmQKQEAgLTM1NzE1LDExICszNTcxNSwxMSBAQAogICBhZnRlcgogICAgIGNmZTU5Njk4YmMzMTJhOWQuZjg0NDliZmMwODdlYjZiZi42M2I3NDhiMTRkNmRiNmZhLjllNDk2YjE4NjAwYjJhM2EKICAgICBjOGIzZTI4ZDI2NzkxYzZiLmQ5MmE4YTQxYzM0NDY5YWMuMjJlYmU5YmQ3MzFhYmY5MS4zODI3OTY0YTkzYjA2MzZkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUzYjc0OGIxNGQ2ZGI2ZmEuMzgyNzk2NGE5M2IwNjM2ZAorICAgIGNmZTU5Njk4YmMzMTJhOWQuNzg0NDliZmMwODdlYjZiZi42M2I3NDhiMTRkNmRiNmZhLjM4Mjc5NjRhOTNiMDYzNmQKICAgICBhOWJkNTQyOTY3MGYxZmE3Ljc0MWQ3NDlkZTIxZWYyNTQuMDI1MTBhZTY0NDI5OTRkYS5mOWQ4M2UxZWY5MzZkZDVmCiAgICAgZDk0M2IyOTc2MzJmOTU3NAogCi1WSFNVQlBEXzEyOChyZWcpCitWQUREU1VCUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMzM3NWUyNTYxOGIxNDUyZS40NzkyNzJhODc3NzZhODZiLmU1YzI2NzhiN2Y0YTNlNjYuZGMxYTgyZGIyN2EzZDllNQogICAgIDYzYjljOWM2YjQ0ODI5MzcuZDU1Njc3MmVmNmZmODU4NC4zZTk0NTMzNWYzMDVlMTMyLjc3YWRlNDlmMmI3YTU0NmUKQEAgLTM1NzI3LDEyICszNTcyNywxMiBAQAogICAgIGI0YWJhZDY4MGVlNzdjZTguMmRkZjJiZmFiM2E4MmU2NC4xOWVlMDY2YWQ2NWExN2E2LjVmNjE1NjQ5MDc2YmRmYWQKICAgICA2NDFhNWYwNjE3OWY2N2JhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVjZGUzNDA2ZGRkYzE1NjMuNzdhZGU0OWYyYjdhNTQ2ZQorICAgIDYzYjljOWM2YjQ0ODI5MzcuZDU1Njc3MmVmNmZmODU4NC5kY2RlMzQwNmRkZGMxNTYzLjc3YWRlNDlmMmI3YTU0NmUKICAgICA2M2I5YzljNmI0NDgyOTM3LmQ1NTY3NzJlZjZmZjg1ODQuM2U5NDUzMzVmMzA1ZTEzMi43N2FkZTQ5ZjJiN2E1NDZlCiAgICAgYzU1ZDYzNTNkMjgxN2QzYy4yZWQ3ZTFhNTAxYjY3MzFlLmRjZGUzNDA2ZGRkYzE1NjMuYWVkNmFjMjA2Y2I4YzJhMgogICAgIGI0YWJhZDY4MGVlNzdjZTguMmRkZjJiZmFiM2E4MmU2NC4xOWVlMDY2YWQ2NWExN2E2LjVmNjE1NjQ5MDc2YmRmYWQKICAgICA2NDFhNWYwNjE3OWY2N2JhCi1WSFNVQlBEXzEyOChtZW0pCitWQUREU1VCUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOWJjZDQyNDNiOTVlMTVmNi44ZWYwYTE3MzA1MDc2M2U4LmIwM2JkMTFhMjhlMDcxODMuNTIwZWM2Y2M3YzBiMjNhNwogICAgIGRlNDU3YmVkMDliN2E2OGMuYWU3ODNkZGY1MjZjNmVlOC45MWI4NTBmMDdkNmJmOWE3LmUzOGI2ZTlhNmI3Yzc0MTEKQEAgLTM1NzQyLDExICszNTc0MiwxMSBAQAogICBhZnRlcgogICAgIDliY2Q0MjQzYjk1ZTE1ZjYuOGVmMGExNzMwNTA3NjNlOC5iMDNiZDExYTI4ZTA3MTgzLjUyMGVjNmNjN2MwYjIzYTcKICAgICBkZTQ1N2JlZDA5YjdhNjhjLmFlNzgzZGRmNTI2YzZlZTguOTFiODUwZjA3ZDZiZjlhNy5lMzhiNmU5YTZiN2M3NDExCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjUyMGVjNmNjN2MwYjIzYTcuZTM4YjZlOWE2YjdjNzQxMQorICAgIGRlNDU3YmVkMDliN2E2OGMuYWU3ODNkZGY1MjZjNmVlOC5iMDNiZDExYTI4ZTA3MTgzLmUzOGI2ZTlhNmI3Yzc0MTEKICAgICBmY2I4ZTAzMzIwNjA2MDc4LjJmODA1YThiNjAzNmRlOTUuZTEzZmM1NmQzNmE3YzhhYi43ZGNiNmMyODkyY2JkOGQyCiAgICAgM2YyN2I4YmYwMmMyNjI4MQogCi1WSFNVQlBEXzI1NihyZWcpCitWQ1ZUU1MyU0lfNjQocmVnKQogICBiZWZvcmUKICAgICBjODBmZGU3MTJhYTgyMzRhLjhmNGEwM2E5MWZjOTAxMjYuNDg5OGQ0YTI1OWIzYmM5Yy4wOGUzYjVlZGQyNzA4NmU1CiAgICAgNzVkMGQ5YWJhNzBhNTRkOC45ZWQyNmQzYTNkZmE3NWRmLjE4MjRlNWNiMThhNWFlNTIuZmRkNjZjZDNiZGJjNzlkMwpAQCAtMzU3NTQsMTIgKzM1NzU0LDEyIEBACiAgICAgYWEwZDNlNjMwZTZmZmRmNS5hNGYzMDQ2MjQwZTZjNTIwLjQ5YzNiY2ZmNWExOWJjN2MuYzVkZDIzODJmMTBhZWQ3YwogICAgIDRmODgxYjIyNzIyNWU3OTAKICAgYWZ0ZXIKLSAgICAyMWI2YTVkODE1NzIzNGQ4LmY1ZDBkOWFiYTcwYTU0ZDguNzk2ZTg5NzAzYTk4ZWY2My5mZGQ2NmNkM2JkYmM3OWQzCisgICAgYzgwZmRlNzEyYWE4MjM0YS44ZjRhMDNhOTFmYzkwMTI2LjQ4OThkNGEyNTliM2JjOWMuMDhlM2I1ZWRkMjcwODZlNQogICAgIDc1ZDBkOWFiYTcwYTU0ZDguOWVkMjZkM2EzZGZhNzVkZi4xODI0ZTVjYjE4YTVhZTUyLmZkZDY2Y2QzYmRiYzc5ZDMKICAgICBhMWI2YTVkODE1NzIzNGQ4LjA2MWI5YWQ0OTMwMDc4Y2UuZjk2ZTg5NzAzYTk4ZWY2My45ZGU2NjcwYjEzOTY1ZGExCiAgICAgYWEwZDNlNjMwZTZmZmRmNS5hNGYzMDQ2MjQwZTZjNTIwLjQ5YzNiY2ZmNWExOWJjN2MuYzVkZDIzODJmMTBhZWQ3YwotICAgIDRmODgxYjIyNzIyNWU3OTAKLVZIU1VCUERfMjU2KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwCitWQ1ZUU1MyU0lfNjQobWVtKQogICBiZWZvcmUKICAgICAxOGIyY2JkOGIzZjMwNDA4LmViMjFhMWJhMzE4YWVkZGMuNTIyNDI4ZDA1ZGI5MTkwMS42MjZmN2FlMjE1YjQ1MTQ5CiAgICAgZmQyOWIwOTFkMDdlMDMxMS5jMDNkYzg0ODE4NTEzZDM5LmVkN2M4MzBhMDg4NDMwOWMuYTJiZGMwODcwNmYzZTk3NQpAQCAtMzU3NjksMTEgKzM1NzY5LDExIEBACiAgIGFmdGVyCiAgICAgMThiMmNiZDhiM2YzMDQwOC5lYjIxYTFiYTMxOGFlZGRjLjUyMjQyOGQwNWRiOTE5MDEuNjI2ZjdhZTIxNWI0NTE0OQogICAgIGZkMjliMDkxZDA3ZTAzMTEuYzAzZGM4NDgxODUxM2QzOS5lZDdjODMwYTA4ODQzMDljLmEyYmRjMDg3MDZmM2U5NzUKLSAgICBlYjIxYTFiYTMxOGFlZGRjLjdkMjliMDkxZDA3ZTAzMTEuNjI2ZjdhZTIxNWI0NTE0OS42ZDdjODMwYTA4ODQzMDljCisgICAgZDhiODQ0MzdlM2Q0OWVkNi44NWFmYjE3OTVmNGYyY2I3LjUyYzU5MGZjNWQ1M2M1MWQuNjNmYjg5NTljYTY0YzFhZAogICAgIDg2MmEwNWI4MGIwMDkyODQuOTZjMTU3YjlhMzExZjQwMy41YmNjY2M5Mjc3MzI5NmIxLjAyNzNkMWM0ZmM5MzE1OWMKLSAgICBkYjcyOTQzNDM4MGEyMWYwCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WSFNVQlBEXzI1NihyZWcpCitWQ1ZUU1MyU0lfNjQocmVnKQogICBiZWZvcmUKICAgICA0YjQ0Y2YxNTFiNTcyMDUyLmUzNGM2ZWZmNjEwZjliNDcuNGZjMGI3NzQ3ZjIxZDJjOC5lNTVjYjFiODcyMmU1ZDg0CiAgICAgYWMzNTdjZDQ0MTA2NGY3MC5jYmVhZmNmODA0MGM3NTRhLjBiZjhjYjE2OTAwZTAyYjMuY2M0M2JkNWE2YjUzZDZjMgpAQCAtMzU3ODEsMTIgKzM1NzgxLDEyIEBACiAgICAgYjRhMzIyOThjM2I2MmM5MC5hY2NhNzNiMDlhMDA4YWMyLjAxNDMwNGMwYmZhODQ2YWEuMjE0MjM3YzNjNjQ0ZDIyYwogICAgIDQ3ZjI5ZDYyNWYyOWNiYjEKICAgYWZ0ZXIKLSAgICBkYjkxOTlkYjQ0YTFlYWY2LmNiZWFmY2Y4MDQwYzc1NGEuZWM0YjZiNjU3ZWFiYmU5Ni5jYzQzYmQ1YTZiNTNkNmMyCisgICAgNGI0NGNmMTUxYjU3MjA1Mi5lMzRjNmVmZjYxMGY5YjQ3LjRmYzBiNzc0N2YyMWQyYzguZTU1Y2IxYjg3MjJlNWQ4NAogICAgIGFjMzU3Y2Q0NDEwNjRmNzAuY2JlYWZjZjgwNDBjNzU0YS4wYmY4Y2IxNjkwMGUwMmIzLmNjNDNiZDVhNmI1M2Q2YzIKICAgICA1YjkxOTlkYjQ0YTFlYWY2LjFhZDAyOThmMGQwM2RiYmEuMjhiNTkxMGI3MTYxYmY3MC5lYzRiNmI2NTdlYWJiZTk2CiAgICAgYjRhMzIyOThjM2I2MmM5MC5hY2NhNzNiMDlhMDA4YWMyLjAxNDMwNGMwYmZhODQ2YWEuMjE0MjM3YzNjNjQ0ZDIyYwotICAgIDQ3ZjI5ZDYyNWYyOWNiYjEKLVZIU1VCUERfMjU2KG1lbSkKKyAgICA4MDAwMDAwMDAwMDAwMDAwCitWQ1ZUU1MyU0lfNjQobWVtKQogICBiZWZvcmUKICAgICAzYTI4MWEyZDY2Njc2ODUxLjEzYjkxMTc1NThkMTUyZTkuNWRhMzU1NDdjNzEwM2Q4Zi5mMWVkMjE5ZjE1NmVkMzBkCiAgICAgZDZiMDI4MGZmNjA5NjMzOC5kNTFkNjNlMDlmN2Q5OGFkLjA5Mjk0YjQwYWYzZmIyNGQuNTYwMGUyMTYwZjQwYTI0NwpAQCAtMzU3OTYsMTEgKzM1Nzk2LDExIEBACiAgIGFmdGVyCiAgICAgM2EyODFhMmQ2NjY3Njg1MS4xM2I5MTE3NTU4ZDE1MmU5LjVkYTM1NTQ3YzcxMDNkOGYuZjFlZDIxOWYxNTZlZDMwZAogICAgIGQ2YjAyODBmZjYwOTYzMzguZDUxZDYzZTA5ZjdkOThhZC4wOTI5NGI0MGFmM2ZiMjRkLjU2MDBlMjE2MGY0MGEyNDcKLSAgICBiYTI4MWEyZDY2Njc2ODUxLjU2YjAyODBmZWViMDZiMTAuZjFlZDIxOWYxNTZlZDMwZC41NjAwZTIxNjBmNDBhMjQ3CisgICAgZjc1NTQ1ZjYyYzFiNzk5MS41NDFjMTU0MzM1NDYzYTg5LjhjMjZkMTg4NmY5N2EzMjcuOGJjOTQ1OTA0YWE5ZWUwMgogICAgIDc5ZTVlZGNkMjNhYTY2ODguZWQwMjIyMGNiNWI4NzMyOS5jMjY3NjQwOTIyMjZjZDRhLmViOTI0NTc5NjIzNWY0ZWEKLSAgICBkNGE3ZGUzY2YyNzBmMGFjCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WSFNVQlBEXzI1NihyZWcpCitWQ1ZUU1MyU0lfNjQocmVnKQogICBiZWZvcmUKICAgICBhMDU2MGM0Nzk2ZTcxZGY0LjM4MmE5YTgwZjhjMWU1NGEuZmMxYjg3YTZiYzYwODAzOS44N2I4N2ZiMWU0ZjdlYmUxCiAgICAgYWRlYWNjMDVlYjI2Yjg2ZC4xMGYxY2FmYmM2NmNiMzAzLmRkYjIzZTdkZTVjOTlkNjQuYjdlNTllNmFkMjE3YmExOQpAQCAtMzU4MDgsMTIgKzM1ODA4LDEyIEBACiAgICAgZjVlZmVmNGIxNzI4MjhhNS43YTM1YTBmYWJmYjAyYjA4Ljg1OGU5NzkzMGYwZmY2YmMuYzgwMmQ5YzRhMTcxNWIxYgogICAgIDYwOGFlYzNjYjljNGE0M2QKICAgYWZ0ZXIKLSAgICBkZDA2ZjgyYmFhYjg4Y2RlLjJkZWFjYzA1ZWIyNmI4NmQuNmMxNTQ1ZmRjZDdmMDY1Ni41ZGIyM2U3ZGU1Yzk5ZDY0CisgICAgYTA1NjBjNDc5NmU3MWRmNC4zODJhOWE4MGY4YzFlNTRhLmZjMWI4N2E2YmM2MDgwMzkuODdiODdmYjFlNGY3ZWJlMQogICAgIGFkZWFjYzA1ZWIyNmI4NmQuMTBmMWNhZmJjNjZjYjMwMy5kZGIyM2U3ZGU1Yzk5ZDY0LmI3ZTU5ZTZhZDIxN2JhMTkKICAgICA1NWFlMTllMzhkYjdmZGM0LmRkMDZmODJiYWFiODhjZGUuZWMxNTQ1ZmRjZDdmMDY1Ni4yZWI5M2QyMjA4OTFmNjFlCiAgICAgZjVlZmVmNGIxNzI4MjhhNS43YTM1YTBmYWJmYjAyYjA4Ljg1OGU5NzkzMGYwZmY2YmMuYzgwMmQ5YzRhMTcxNWIxYgotICAgIDYwOGFlYzNjYjljNGE0M2QKLVZIU1VCUERfMjU2KG1lbSkKKyAgICBmZmZmZmZkYTExNzljMDAwCitWQ1ZUU1MyU0lfNjQobWVtKQogICBiZWZvcmUKICAgICBkNDFlZjQ3NjZkOTU4ZmFmLmVhZjk0YWFhMjUwNTc0YmIuYzU0YTNlNTYyMjYwNGVhZC4wMzZhMzBhOTQ3MDRhYTQyCiAgICAgZmY4YTZjNWVkOGYwZDU5ZS44ZTE4MjY2ZDU0ZDgxZWIyLjk5MTE0ZjI5ZWVkNWFmZjguYzRmNTBjYWMxMmViNWU5NApAQCAtMzU4MjMsMTEgKzM1ODIzLDExIEBACiAgIGFmdGVyCiAgICAgZDQxZWY0NzY2ZDk1OGZhZi5lYWY5NGFhYTI1MDU3NGJiLmM1NGEzZTU2MjI2MDRlYWQuMDM2YTMwYTk0NzA0YWE0MgogICAgIGZmOGE2YzVlZDhmMGQ1OWUuOGUxODI2NmQ1NGQ4MWViMi45OTExNGYyOWVlZDVhZmY4LmM0ZjUwY2FjMTJlYjVlOTQKLSAgICBlYWY5NGFhYTI1MDU3NGJiLjdmOGE2YzVlZDhmMGQ1OWUuNDU0YTNlNTYyMjYwNGVhZC5jNGY1MGNhYzEyZWI1ZTk0CisgICAgYmM5YWQxZTAxN2UyMzUzNS4zZTk4ODBmZTNmMmY2MjM4LmQyNTU0ZDYxM2YxYTBhMTYuMjM3YjI4MDkwYzRmNGQ1YwogICAgIGU5MWE5ZGU4NDU3NjY5YTEuNTdjNTUzY2I4Mzk2N2JmNi40YmUzYjZlOTMyM2IxZDMyLjdjNDg3ZTJhZDBiY2I0NDkKLSAgICAyYmE3MGM3ZGZiYmVjZjA1CisgICAgMDAwMDAwMDAwMDAwODRhYQogCi1WRVhUUkFDVFBTXzB4MChyZWcpCitWQ1ZUU1MyU0lfMzIocmVnKQogICBiZWZvcmUKICAgICA4YmU2Y2U2ZDI3ZTJkOTNkLjYxZDU0ZTYzN2ZiOTJlMGUuMzNlYTliM2ZiYjk3YTY5Yi5lMjg3MDVhY2UzNDVhMjc5CiAgICAgZmE0ZmJlNjZmM2IzMTA5Yy5mZjk5NWYzYmUwYjU0MGE3LjJmNTQ1NGM1ODRjMDFmZDEuNzEwZGI3OTg2ZDQzNTYxNwpAQCAtMzU4MzksOCArMzU4MzksOCBAQAogICAgIGZhNGZiZTY2ZjNiMzEwOWMuZmY5OTVmM2JlMGI1NDBhNy4yZjU0NTRjNTg0YzAxZmQxLjcxMGRiNzk4NmQ0MzU2MTcKICAgICBkMzJmZGFkNGY5YmVhZWNmLmExMzA0YzVlODU3ODVhOTkuYTc0ZjdiY2I3OTlkMjI0NC5kNjQxNDY5OGVjNDFmNDM3CiAgICAgNzFkMjFkMjNkNThlZWY4Mi4yMTY3OTJiNjg5MGUzOTEwLmY4MjcwYmJjMzZiOGVhYTIuZWJlZjMwOTg3ZDRjM2EwNQotICAgIDAwMDAwMDAwNmQ0MzU2MTcKLVZFWFRSQUNUUFNfMHgwKG1lbSkKKyAgICAwMDAwMDAwMDgwMDAwMDAwCitWQ1ZUU1MyU0lfMzIobWVtKQogICBiZWZvcmUKICAgICA5OWU4MDM0OTQzYjdhODVlLjMyODQ4M2JmMjRhZjExNjAuNWQwYWFiMzEwODgyOTkzNy43YzI4MDAwNDU5OWZiNDk0CiAgICAgZWFjYmUzZDFiMDJlNGE0MS43MTkwMDgxNDgxYWU0ZTE1LjJmZTUxNWJhMWZlMDM2M2IuOTA5ZTU2MTA3YmRlYmNjOQpAQCAtMzU4NDgsMTMgKzM1ODQ4LDEzIEBACiAgICAgY2E1YmZmZGUyYmRmMGQ0ZS5kOGVhNjA5YWQ3NzMwYmI4LjA5NzJjYWE2ODQ4YjE1ODguZDgxODE2MWYzMjkxNzVhNgogICAgIGM0YjQ3OGZjZmUxZDllYTgKICAgYWZ0ZXIKLSAgICA5OWU4MDM0OTQzYjdhODVlLjMyODQ4M2JmMjRhZjExNjAuNWQwYWFiMzEwODgyOTkzNy43YzI4MDAwNDdiZGViY2M5CisgICAgOTllODAzNDk0M2I3YTg1ZS4zMjg0ODNiZjI0YWYxMTYwLjVkMGFhYjMxMDg4Mjk5MzcuN2MyODAwMDQ1OTlmYjQ5NAogICAgIGVhY2JlM2QxYjAyZTRhNDEuNzE5MDA4MTQ4MWFlNGUxNS4yZmU1MTViYTFmZTAzNjNiLjkwOWU1NjEwN2JkZWJjYzkKICAgICA1YjU4MGUwYTlmZTM4MjgyLjg5NDRhOThlODkxNWUzNGYuNzVjMzRiM2RlYTM0Y2I0Ny45MGQ0MDk0YTNhMDAzZWViCiAgICAgY2E1YmZmZGUyYmRmMGQ0ZS5kOGVhNjA5YWQ3NzMwYmI4LjA5NzJjYWE2ODQ4YjE1ODguZDgxODE2MWYzMjkxNzVhNgotICAgIGM0YjQ3OGZjZmUxZDllYTgKKyAgICAwMDAwMDAwMDgwMDAwMDAwCiAKLVZFWFRSQUNUUFNfMHgwKHJlZykKK1ZDVlRTUzJTSV8zMihyZWcpCiAgIGJlZm9yZQogICAgIGIwZjUyYjRiM2EzMWY0OWEuMTE5ZjMyM2I3MTMwYTZkMC5iOGNmMmJhMjA4NTEwNGZjLmM4YmMwY2UxMDlmMGQwMjkKICAgICBmODI3MmI3YTgzNThiNTJiLjBkZjIyMzBjOGNlMTBiMzUuODczZjA2MTRiNzNkMDhjOC44ZjZlOGZkYTk2NzBiNzU3CkBAIC0zNTg2Niw4ICszNTg2Niw4IEBACiAgICAgZjgyNzJiN2E4MzU4YjUyYi4wZGYyMjMwYzhjZTEwYjM1Ljg3M2YwNjE0YjczZDA4YzguOGY2ZThmZGE5NjcwYjc1NwogICAgIGY4OTY3NWY0NzQxZTFiMDUuOWIxZTRmM2Q5OWZmZjZhOC45Zjg2ZWI1YjgxYzM1M2M4LjM4NTRjZTdkNDcxNTg4M2UKICAgICAwYzhkMDMyNWFhMTA2M2Q0Ljk1ZjEzMWJhYjM5NDIzNTYuNWRmMGQ4ZTMwMTZkMjNhNy5hMDNhNDViNzM2ZWVmYzA5Ci0gICAgMDAwMDAwMDA5NjcwYjc1NwotVkVYVFJBQ1RQU18weDAobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZDVlRTUzJTSV8zMihtZW0pCiAgIGJlZm9yZQogICAgIDFlMzVjYzljNDU2NWM0ZmQuOGY1YWQzNzljMGI5Yzg0Ni5kODM1NDU2ZmY3YWY1MDZiLjFlYzhjNzE3ZDNjOWIyMTIKICAgICBlYmUyZDQyMDliMWM4ZjdlLmRmNDdlMTVjNTNhNjg3MDQuNDBiNzA3NDg4MDU5MzcxMi4zYzViYjc2NTk1NjMzZGI0CkBAIC0zNTg3NSwxMyArMzU4NzUsMTMgQEAKICAgICBlZTk5ZDllNTcyYmVhMDZhLjUzYjRhMzdmNWU3OTAzMWIuZjBhNDg2MTZkMjhmMjZjOC4wM2UzODJmZDUyN2QzNjUwCiAgICAgNjM2ZTU3MWU4NjE3MWNhMQogICBhZnRlcgotICAgIDFlMzVjYzljNDU2NWM0ZmQuOGY1YWQzNzljMGI5Yzg0Ni5kODM1NDU2ZmY3YWY1MDZiLjFlYzhjNzE3OTU2MzNkYjQKKyAgICAxZTM1Y2M5YzQ1NjVjNGZkLjhmNWFkMzc5YzBiOWM4NDYuZDgzNTQ1NmZmN2FmNTA2Yi4xZWM4YzcxN2QzYzliMjEyCiAgICAgZWJlMmQ0MjA5YjFjOGY3ZS5kZjQ3ZTE1YzUzYTY4NzA0LjQwYjcwNzQ4ODA1OTM3MTIuM2M1YmI3NjU5NTYzM2RiNAogICAgIGU3YzAwNGU5YTEzNmVmOTQuNTdhMTI3M2FmZTYyZGNiZC5hOTQyZjMzMTZhYTA5NTc4LjE0ZjZhMTM5ZTBjNWZmM2EKICAgICBlZTk5ZDllNTcyYmVhMDZhLjUzYjRhMzdmNWU3OTAzMWIuZjBhNDg2MTZkMjhmMjZjOC4wM2UzODJmZDUyN2QzNjUwCi0gICAgNjM2ZTU3MWU4NjE3MWNhMQorICAgIDAwMDAwMDAwODAwMDAwMDAKIAotVkVYVFJBQ1RQU18weDAocmVnKQorVkNWVFNTMlNJXzMyKHJlZykKICAgYmVmb3JlCiAgICAgOTFlNTFiMDgxOTFkZWRkYS5kYzNhY2RmZjJhYzA1ZDJkLjJlY2M0Zjk3MGU3NzM3Y2EuZWZhNzNiZTRkMzMzYTUyZgogICAgIGU5OTNjYTI4YTcxZGU3YTcuOGQ2ZTVlMjNlNzQ5ZTMwOS40NjM0MjllZmFiZTliNjc3LjgzMTk4ZTg1OGE5N2NmZDkKQEAgLTM1ODkzLDggKzM1ODkzLDggQEAKICAgICBlOTkzY2EyOGE3MWRlN2E3LjhkNmU1ZTIzZTc0OWUzMDkuNDYzNDI5ZWZhYmU5YjY3Ny44MzE5OGU4NThhOTdjZmQ5CiAgICAgYzdjMzYxZThjYmEzNDRiMy5kZDAzMDczZWMyNjNlZDI4LmY2M2EyZGYxZDA1YmI5Y2UuODhjNGZiZTcxM2M3NjBmMQogICAgIDg3YzJkYWI2MjEzOTQxYWEuYThjMzQ0M2FkOTFkMzliOS45OTI4NTUwYjFhNTc3ZjdhLmRhNzVmZmY1ODlkMDEzYTQKLSAgICAwMDAwMDAwMDhhOTdjZmQ5Ci1WRVhUUkFDVFBTXzB4MChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVkNWVFNTMlNJXzMyKG1lbSkKICAgYmVmb3JlCiAgICAgZDUxOGI5YzRhZDlhZDI4OS44NWRjMzNmZDQ2NmQxYTM5LmNhN2I5MTA0NDg4MDgxZTYuOGQ0YjlmYTgyNDZiNDIyOAogICAgIDM2YTM2NzVlOTM3MzU2MTQuMWQ1ZDY3MjlkNWNiMGEwYy4xZmY4NmI4OTJhOWE4MmRjLjJjZWYwNjMzOGEyMjNmODQKQEAgLTM1OTAyLDEzICszNTkwMiwxMyBAQAogICAgIDBhMjVkMjkzOTQ0YzUyMzUuOGJjNDUxZTBhMzMyMjIyZC5kMjZiYjM3MGI4MjE5ZGQxLmRmZWExYmM4ZGRhYmQ2ZjMKICAgICBhYmQ4YzJhOTAxOTRlODYwCiAgIGFmdGVyCi0gICAgZDUxOGI5YzRhZDlhZDI4OS44NWRjMzNmZDQ2NmQxYTM5LmNhN2I5MTA0NDg4MDgxZTYuOGQ0YjlmYTg4YTIyM2Y4NAorICAgIGQ1MThiOWM0YWQ5YWQyODkuODVkYzMzZmQ0NjZkMWEzOS5jYTdiOTEwNDQ4ODA4MWU2LjhkNGI5ZmE4MjQ2YjQyMjgKICAgICAzNmEzNjc1ZTkzNzM1NjE0LjFkNWQ2NzI5ZDVjYjBhMGMuMWZmODZiODkyYTlhODJkYy4yY2VmMDYzMzhhMjIzZjg0CiAgICAgNTM2MzliNTRkNzU1ZWNlOS5hYjkxNzJhNjZiZGU0ZWNmLjgzMDQ0ZGIzOWI3N2Y3YzYuZDQ2MDg2MWFlOTA5YjIzOQogICAgIDBhMjVkMjkzOTQ0YzUyMzUuOGJjNDUxZTBhMzMyMjIyZC5kMjZiYjM3MGI4MjE5ZGQxLmRmZWExYmM4ZGRhYmQ2ZjMKLSAgICBhYmQ4YzJhOTAxOTRlODYwCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WRVhUUkFDVFBTXzB4MShyZWcpCitWQ1ZUU0QyU0lfMzIocmVnKQogICBiZWZvcmUKICAgICA5Mjc4NzYyOWYxNTEyNDJhLjM2YjU4NzA1ZTc2MjQxMjMuMTk0MWZlNDMxYTUzYzFkMi5lOGZiMTlhYTlkYTYzMDI5CiAgICAgZjIxNDMzYjU0YTZkYzZmZC5iM2RmMzY5N2ViYTU3OGUwLmIxNTY3NzNiNmJjZTY5NmIuYTE3ZWZiNGY2NTEyNmNmOQpAQCAtMzU5MjAsOCArMzU5MjAsOCBAQAogICAgIGYyMTQzM2I1NGE2ZGM2ZmQuYjNkZjM2OTdlYmE1NzhlMC5iMTU2NzczYjZiY2U2OTZiLmExN2VmYjRmNjUxMjZjZjkKICAgICAyNWY5ZjViN2E3NzQwOTg2LjVkNmY1YjM2YmMyMWIxOTguYWY0ZGI3MzQzMjJlNTRhNC5kOGMyZDY0YTJjNmYwYzZlCiAgICAgODg3M2I4OWRhNWYzMmE3MS4wZjMxNzNjYzc3ZTBhOTc2LjZmNzNiYjliMGMwMGJlMjguNmI5MTI1ODcwZmNiY2ViMwotICAgIDAwMDAwMDAwYTE3ZWZiNGYKLVZFWFRSQUNUUFNfMHgxKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAwCitWQ1ZUU0QyU0lfMzIobWVtKQogICBiZWZvcmUKICAgICAxMjAzMTA3Nzk3YWVhMjYwLjc4Y2U3OWQxZGY3NTY1NjkuYTdmMGY5NDczOGYwMWNhNi40ZDE0N2RkYTk1Y2VlNWE0CiAgICAgZGQzZGEzMDM3NDRkMmQxZi40ZjU1MzNjMWYyODZmNTFiLjAwNzk2OTkyMWE1ZGM1NTYuYTU3YmZiNWY2ODI3MDNjNApAQCAtMzU5MjksMTMgKzM1OTI5LDEzIEBACiAgICAgYjFiMjczZGNlZDIzMzI0Yi4yNjFiODI4MTExODcwODViLjY0MTlmNzQ3YjI3YmFjZTAuMzJjZjE4ZTc1ZGEzMTY5ZQogICAgIDIwNTNiMGMzYjhkZjgzYjAKICAgYWZ0ZXIKLSAgICAxMjAzMTA3Nzk3YWVhMjYwLjc4Y2U3OWQxZGY3NTY1NjkuYTdmMGY5NDczOGYwMWNhNi40ZDE0N2RkYWE1N2JmYjVmCisgICAgMTIwMzEwNzc5N2FlYTI2MC43OGNlNzlkMWRmNzU2NTY5LmE3ZjBmOTQ3MzhmMDFjYTYuNGQxNDdkZGE5NWNlZTVhNAogICAgIGRkM2RhMzAzNzQ0ZDJkMWYuNGY1NTMzYzFmMjg2ZjUxYi4wMDc5Njk5MjFhNWRjNTU2LmE1N2JmYjVmNjgyNzAzYzQKICAgICA3NDM0OWI4MGRkMWJjOTVlLjZhNTZlMmQ3NzliMzE4MzIuZjU5ODNmOTgzOTMyNjFiMC5kMmY2MzA5NDIxOTQ1NTMzCiAgICAgYjFiMjczZGNlZDIzMzI0Yi4yNjFiODI4MTExODcwODViLjY0MTlmNzQ3YjI3YmFjZTAuMzJjZjE4ZTc1ZGEzMTY5ZQotICAgIDIwNTNiMGMzYjhkZjgzYjAKKyAgICAwMDAwMDAwMDgwMDAwMDAwCiAKLVZFWFRSQUNUUFNfMHgxKHJlZykKK1ZDVlRTRDJTSV8zMihyZWcpCiAgIGJlZm9yZQogICAgIGY4Y2VmMjk0Y2RkNWQ4MTYuNzI4NWE3MDFjMTcxMjMxMC5kZGYxMTAyYTU1OGUwMTQyLjI4YzgwZThhYTE0NDYyMTMKICAgICAxNThjZGNjNjM4MTA1MTdjLjkxNzdiNGRkNzQxMTU5ZDkuZWMyNDg3M2VlMjU1NDA5Mi4xYzcxZmY0ZDIxOWEzZTc1CkBAIC0zNTk0Nyw4ICszNTk0Nyw4IEBACiAgICAgMTU4Y2RjYzYzODEwNTE3Yy45MTc3YjRkZDc0MTE1OWQ5LmVjMjQ4NzNlZTI1NTQwOTIuMWM3MWZmNGQyMTlhM2U3NQogICAgIGQ1ZDk2OWM1OTYxYzI5OGQuZWM1NTE0NWIyMjEwOTBkMy5hZjAwZTMyOTUzNjcwMmY4LjFlZGY0NjdkNGU4OGZkMzEKICAgICA5MjAxOTZmZDgyODU5ZWY1LjVkZWE0NTY2ZTg3OTg0MmEuODJkMTIwNTc0NDUwODAxZi4wOGUwNWYwNDQ1MWE1Yjc0Ci0gICAgMDAwMDAwMDAxYzcxZmY0ZAotVkVYVFJBQ1RQU18weDEobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDAKK1ZDVlRTRDJTSV8zMihtZW0pCiAgIGJlZm9yZQogICAgIDA4YzZmOGNiZmY1Y2UyM2UuYWE0ZjVkZGI5OWQ4ZTk2Mi5jMjA0YzJlY2UyNThmMDA5LmMxZTIzYTM1NTM5ZGY5YjQKICAgICBkNTQ0NzBlMmZhMjQ4NDFjLjc3MTBiY2M5NzZhMTQ5N2UuZjU2ZDA4ZDgyYmJhOTE5ZC5jODgxMmUyZDE5ZDlhNzYzCkBAIC0zNTk1NiwxMyArMzU5NTYsMTMgQEAKICAgICA1NzUxMjMxNmI5M2MzMGFhLmE0MWIyZjg5ZjRjMTMzNzQuMzk2MGRiOTMxYjM1NjE5My45ZTk0OTExZjNmNGY5NWJkCiAgICAgMjVhMWY4ZjFkN2ExNGNjMAogICBhZnRlcgotICAgIDA4YzZmOGNiZmY1Y2UyM2UuYWE0ZjVkZGI5OWQ4ZTk2Mi5jMjA0YzJlY2UyNThmMDA5LmMxZTIzYTM1Yzg4MTJlMmQKKyAgICAwOGM2ZjhjYmZmNWNlMjNlLmFhNGY1ZGRiOTlkOGU5NjIuYzIwNGMyZWNlMjU4ZjAwOS5jMWUyM2EzNTUzOWRmOWI0CiAgICAgZDU0NDcwZTJmYTI0ODQxYy43NzEwYmNjOTc2YTE0OTdlLmY1NmQwOGQ4MmJiYTkxOWQuYzg4MTJlMmQxOWQ5YTc2MwogICAgIGZjODNhYTAyMmZjMGI1MzIuNTc5MGFlMzViNjZhZjhmNS5kNGYzOTExN2RmYWEyMzExLmYzZjhmN2FkMzQ5MWM3ZDcKICAgICA1NzUxMjMxNmI5M2MzMGFhLmE0MWIyZjg5ZjRjMTMzNzQuMzk2MGRiOTMxYjM1NjE5My45ZTk0OTExZjNmNGY5NWJkCi0gICAgMjVhMWY4ZjFkN2ExNGNjMAorICAgIDAwMDAwMDAwODAwMDAwMDAKIAotVkVYVFJBQ1RQU18weDEocmVnKQorVkNWVFNEMlNJXzMyKHJlZykKICAgYmVmb3JlCiAgICAgZTQ2YTI5OGU5ODEzMjk4ZC5jMzc4NTUwYWI1YTRiMmIwLmJjZmQzYzMzY2QzMTM2YTcuMDE4MTYxMzlmYjY2MDk0YwogICAgIDM3M2QxZTYxMWQzMDY4ZDAuMWNjNmJlY2EzZTA1Zjc3MS5mOTgyY2Y5ZWRjNDczYzM5LjA4MjE5ZmY1OWE0OWQ0NmEKQEAgLTM1OTc0LDggKzM1OTc0LDggQEAKICAgICAzNzNkMWU2MTFkMzA2OGQwLjFjYzZiZWNhM2UwNWY3NzEuZjk4MmNmOWVkYzQ3M2MzOS4wODIxOWZmNTlhNDlkNDZhCiAgICAgN2E2NGQ1ZDgwMjg0NDQzNC4zZjA1ZDk0MjcwNmFiYTE5LmI4ZjVlNjM2YmQ4ZTgzZDcuMmIwZTEyYjQxNGVhODExOQogICAgIDA4MmQ0YTVlZTQ5YmZiNjYuMDYwMjIyNWU2OGUwYjlkMy41NmE0N2M2NzBkOTI0NTJjLjQ0MTMzNDYxODY1NmNhODUKLSAgICAwMDAwMDAwMDA4MjE5ZmY1Ci1WRVhUUkFDVFBTXzB4MShtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMAorVkNWVFNEMlNJXzMyKG1lbSkKICAgYmVmb3JlCiAgICAgY2I5MzdhMzRjMGJkMjM0MS4zZmUyNzc2MDVlMDJjNzExLjRlODgxNjBhNDI3MmFkY2MuMmRkOThkOWQ2OGUwYmVlNQogICAgIGYxYTc5NTMzYzBkMGFiZWIuN2FkMDVhNDgwZDQ0ZTRlMi5mMzY1MmYzMjE5MmM1NTJmLjlhZTExNjQ0NjkwMzJiYWUKQEAgLTM1OTgzLDEzICszNTk4MywxMyBAQAogICAgIDRlNzMyOWY3MTNmMTFjYWYuNmI4NjJmN2U3NzhiMDVhNS5jNDUwYzVhNzJmNDlhZGU2LmE3OTk3ZDk2Y2VmOWQxMWUKICAgICBmZWUyNTMxODZiZTQ4MjFlCiAgIGFmdGVyCi0gICAgY2I5MzdhMzRjMGJkMjM0MS4zZmUyNzc2MDVlMDJjNzExLjRlODgxNjBhNDI3MmFkY2MuMmRkOThkOWQ5YWUxMTY0NAorICAgIGNiOTM3YTM0YzBiZDIzNDEuM2ZlMjc3NjA1ZTAyYzcxMS40ZTg4MTYwYTQyNzJhZGNjLjJkZDk4ZDlkNjhlMGJlZTUKICAgICBmMWE3OTUzM2MwZDBhYmViLjdhZDA1YTQ4MGQ0NGU0ZTIuZjM2NTJmMzIxOTJjNTUyZi45YWUxMTY0NDY5MDMyYmFlCiAgICAgN2UwMzUxZDAyOGRkYmYwMC4xNTQyZWQ4MzhjZWU5MDg1LmQxNjNlYmMzMDkxYTZiMjkuZmEwODEyYzhhYzg3YzgzMgogICAgIDRlNzMyOWY3MTNmMTFjYWYuNmI4NjJmN2U3NzhiMDVhNS5jNDUwYzVhNzJmNDlhZGU2LmE3OTk3ZDk2Y2VmOWQxMWUKLSAgICBmZWUyNTMxODZiZTQ4MjFlCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WRVhUUkFDVFBTXzB4MihyZWcpCitWQ1ZUU0QyU0lfNjQocmVnKQogICBiZWZvcmUKICAgICA1YjJkOTBiYzFlZDUxNmRkLjNkYzI5OTk0OWQxNzdkMjIuZGFlNzE5YTM2Y2E3ODBlZS5hOGY2M2FjY2E2YzVkNDkxCiAgICAgMWFjODMxZWM4MzU2Y2EwNy4yN2JlMWQ5M2U0NWJhMDg1LmJkYjBhODYwMDRjZjNjMGUuNTkyMmM0MWQ4Yjk4OWY1NwpAQCAtMzYwMDEsOCArMzYwMDEsOCBAQAogICAgIDFhYzgzMWVjODM1NmNhMDcuMjdiZTFkOTNlNDViYTA4NS5iZGIwYTg2MDA0Y2YzYzBlLjU5MjJjNDFkOGI5ODlmNTcKICAgICA5N2ZkMzExNjM3ZjVkOTQ5LmU4MzEzMWUxMDFjOTNmMDUuNmYyZWQ5MWZkZDhkNzZhZi5iM2EwZTE4NmZhZDBjODYzCiAgICAgMmUxOThjYTVkNTNlODE0Zi41Y2U4NTI2ODEyNmUxN2NlLjRlYWRhNzRlOTM3MDZhN2QuOTIzYjBjZjIwZDc4MGNlMgotICAgIDAwMDAwMDAwMDRjZjNjMGUKLVZFWFRSQUNUUFNfMHgyKG1lbSkKKyAgICA4MDAwMDAwMDAwMDAwMDAwCitWQ1ZUU0QyU0lfNjQobWVtKQogICBiZWZvcmUKICAgICA0ZmZjN2Q4ODk1NGFkNGU4LjNiNjczZTA1ZmFiY2ZjYzUuNWZhZmZiMTYzMzU2ZTMwYy5iNDc5MGU1OGMxMDE1NDI1CiAgICAgZTViOWJhOGE0MjhiZDBjNy4xYTM1NDNhMjQxZmI4NzU2LmNkNTJhOGQ1N2Y4YjYwZWEuZmZkZTBhYTkwM2NlNzA1MwpAQCAtMzYwMTAsMTMgKzM2MDEwLDEzIEBACiAgICAgY2JlOWFjOTRmNmZiYTQxOC5iZTdkMzg0M2E3ZWRiYjdhLjVhNWJmZTNiMDkxMjVkMzcuYjBhMmIzZDAzNjRhMmNlZgogICAgIGNlOTk1NzdmNWQxMTQ0YjUKICAgYWZ0ZXIKLSAgICA0ZmZjN2Q4ODk1NGFkNGU4LjNiNjczZTA1ZmFiY2ZjYzUuNWZhZmZiMTYzMzU2ZTMwYy5iNDc5MGU1ODdmOGI2MGVhCisgICAgNGZmYzdkODg5NTRhZDRlOC4zYjY3M2UwNWZhYmNmY2M1LjVmYWZmYjE2MzM1NmUzMGMuYjQ3OTBlNThjMTAxNTQyNQogICAgIGU1YjliYThhNDI4YmQwYzcuMWEzNTQzYTI0MWZiODc1Ni5jZDUyYThkNTdmOGI2MGVhLmZmZGUwYWE5MDNjZTcwNTMKICAgICA3MGM0ZjYzZjAzNmRkN2M4LjI3Y2Q5OGU4NDc4NzVkYWUuODI5Y2Q1OTMxMjFiNGE5NC44OTI3OThhZGY2NjJmOWIyCiAgICAgY2JlOWFjOTRmNmZiYTQxOC5iZTdkMzg0M2E3ZWRiYjdhLjVhNWJmZTNiMDkxMjVkMzcuYjBhMmIzZDAzNjRhMmNlZgotICAgIGNlOTk1NzdmNWQxMTQ0YjUKKyAgICAwMDAwMDAwMDAwMDAwMDAwCiAKLVZFWFRSQUNUUFNfMHgyKHJlZykKK1ZDVlRTRDJTSV82NChyZWcpCiAgIGJlZm9yZQogICAgIDQwNTk4MDI0MGE0MzdlYjIuZDRmNDU5NzYzNzQxZjVlMi4zYjhmMWYyMGZkYjhkZDY2LjMwNTlhMGI5N2Y3YTU0ZmYKICAgICA2MzJlMmIyY2Q3NmQxNjhmLjY2YjE3N2NmZTE0Yzg0NTMuZmE1MDQ5ZTllNjc1ZmYxZC5lMjYzMzZmOTkxNjFlZDE3CkBAIC0zNjAyOCw4ICszNjAyOCw4IEBACiAgICAgNjMyZTJiMmNkNzZkMTY4Zi42NmIxNzdjZmUxNGM4NDUzLmZhNTA0OWU5ZTY3NWZmMWQuZTI2MzM2Zjk5MTYxZWQxNwogICAgIDkxNjQ1MjA0NjAxYTQ4ZmEuNWRlYjg0OGQxMTI3MGQ5Ny41NzBjYjMwYmZlYWU1YzRjLjRiNDUzY2U3NWFkM2UxYWMKICAgICAyNzQ2ZjMxNzQyZDY1MDlmLjk0NmZmYjliZTJkZTRlZGEuYWQwZTU4ZjNlMGYyMzE5Zi40N2NiMmU2ZmY3ZGFlZmVhCi0gICAgMDAwMDAwMDBlNjc1ZmYxZAotVkVYVFJBQ1RQU18weDIobWVtKQorICAgIDgwMDAwMDAwMDAwMDAwMDAKK1ZDVlRTRDJTSV82NChtZW0pCiAgIGJlZm9yZQogICAgIDY3ZjJjOGZlMWJkZDQ0MGYuODIyMjA5ZDAxODJlNjkyYS5lOTA5NThlNTcwN2UwMTQ2LjVhYTQzNDBjMjhjYWJhYzEKICAgICA0MzJjNjdkY2RhZjAwNDRlLmZjNDI5MTlkN2VhZGQwNDYuMzc4NTE4NTZkODEyZTMwYS5iOTE4NDNjMjczYzQzMzVmCkBAIC0zNjAzNywxMyArMzYwMzcsMTMgQEAKICAgICBlMWU2YjY2MzNmNzQ1OTAyLmMwODFlMzIwNmQ1MTc3ZTMuMmQ1M2FkNjNhNDQ3MjM0NS5mY2NlZWJiNDgxNGNlM2JkCiAgICAgOTlhNzdjYzk3YmYyOTNkNgogICBhZnRlcgotICAgIDY3ZjJjOGZlMWJkZDQ0MGYuODIyMjA5ZDAxODJlNjkyYS5lOTA5NThlNTcwN2UwMTQ2LjVhYTQzNDBjZDgxMmUzMGEKKyAgICA2N2YyYzhmZTFiZGQ0NDBmLjgyMjIwOWQwMTgyZTY5MmEuZTkwOTU4ZTU3MDdlMDE0Ni41YWE0MzQwYzI4Y2FiYWMxCiAgICAgNDMyYzY3ZGNkYWYwMDQ0ZS5mYzQyOTE5ZDdlYWRkMDQ2LjM3ODUxODU2ZDgxMmUzMGEuYjkxODQzYzI3M2M0MzM1ZgogICAgIDIzMzllMjA1ZGRjOWNjZTYuZjJmMzg1ZTkxMmRmYzA5Zi41OWFmYjVkYzM1YTdhZjUwLjI2Yjg4MTgwNWQ2YmQ3MjQKICAgICBlMWU2YjY2MzNmNzQ1OTAyLmMwODFlMzIwNmQ1MTc3ZTMuMmQ1M2FkNjNhNDQ3MjM0NS5mY2NlZWJiNDgxNGNlM2JkCi0gICAgOTlhNzdjYzk3YmYyOTNkNgorICAgIDgwMDAwMDAwMDAwMDAwMDAKIAotVkVYVFJBQ1RQU18weDIocmVnKQorVkNWVFNEMlNJXzY0KHJlZykKICAgYmVmb3JlCiAgICAgNTg4ZTMwMmNlOGU5MjIxYS41YmZmNWRlNDFkZmU2N2NmLmMyMzhhNmFlMmQ4ZTJmYmIuOGQzYzdiZDU0MTAxZjkxNAogICAgIDk0ZDEwMzQ3NjNiZGNkMzUuNmI1MDU1NzM5MjcyYjI3OS41NDYzY2FmZmVlMjMyNWQ2LjU3Mzg5YjFmMjZkZWVkZWEKQEAgLTM2MDU1LDggKzM2MDU1LDggQEAKICAgICA5NGQxMDM0NzYzYmRjZDM1LjZiNTA1NTczOTI3MmIyNzkuNTQ2M2NhZmZlZTIzMjVkNi41NzM4OWIxZjI2ZGVlZGVhCiAgICAgYWJiYWYyODc4OWZiZDBkNS5lZmE0MTlmY2JhZGRmNTJiLmQyNTA0YjgwNGI5YTk0ZGUuNjUxMThhMmQ3MmVjYmRmMgogICAgIGY3OTdmODU5ZjUyZjY3YTQuYzFjOTI1NmJiMjQ5ZWQxMi45ODQ5MjY5YmUwODFiOTdmLjk0OTRjM2VjM2UzNjIzNTkKLSAgICAwMDAwMDAwMGVlMjMyNWQ2Ci1WRVhUUkFDVFBTXzB4MihtZW0pCisgICAgODAwMDAwMDAwMDAwMDAwMAorVkNWVFNEMlNJXzY0KG1lbSkKICAgYmVmb3JlCiAgICAgYzZjNzAzMjljY2FmYTNmMy5kNmIyMTEyNzQ0ZTNjZDRlLmJmODlmNmFjOTZjNDU2NWEuMDI5YzU2YmQ0YTY0ZDA2NwogICAgIDgwMTAwMjgwYzZmNjM2N2UuYTI1ODM5NWYxMWE1M2Y4MC5jM2IxMDdhYjgxNWFlYjJlLjZjOTNkNzUzMjVjZTE1M2YKQEAgLTM2MDY0LDEzICszNjA2NCwxMyBAQAogICAgIDg0ZmIyYjNhYThkNmFhZWMuNzU3NGE3Yjk5NzgxMzYyYi41MDY5ZDk5NGRkMDQ4YzJjLmIwOWZiZDg3OWI2NzE3NzYKICAgICA0MjRkMWFmZTZmYWY0ZDJiCiAgIGFmdGVyCi0gICAgYzZjNzAzMjljY2FmYTNmMy5kNmIyMTEyNzQ0ZTNjZDRlLmJmODlmNmFjOTZjNDU2NWEuMDI5YzU2YmQ4MTVhZWIyZQorICAgIGM2YzcwMzI5Y2NhZmEzZjMuZDZiMjExMjc0NGUzY2Q0ZS5iZjg5ZjZhYzk2YzQ1NjVhLjAyOWM1NmJkNGE2NGQwNjcKICAgICA4MDEwMDI4MGM2ZjYzNjdlLmEyNTgzOTVmMTFhNTNmODAuYzNiMTA3YWI4MTVhZWIyZS42YzkzZDc1MzI1Y2UxNTNmCiAgICAgY2MzMjNjMzdiMGFhNGYxOC5iOWQ0NmM2YmY5MDBmOWU2LmFhMGRkNDU1OGYxNjZhYmEuMzI3YWE1YzgwYzRiYzNiNgogICAgIDg0ZmIyYjNhYThkNmFhZWMuNzU3NGE3Yjk5NzgxMzYyYi41MDY5ZDk5NGRkMDQ4YzJjLmIwOWZiZDg3OWI2NzE3NzYKLSAgICA0MjRkMWFmZTZmYWY0ZDJiCisgICAgMDAwMDAwMDAwMDAwMDAwMAogCi1WRVhUUkFDVFBTXzB4MyhyZWcpCitWRFBQU18xMjhfMW9mNChyZWcpCiAgIGJlZm9yZQogICAgIDQ0Y2ZiODk4MjNhZWExODIuODUzNTRkNzVjYTg2MDUyNi4zMzgzZTViNDg3YjMzM2ZjLjkyOTE5MjU2ODYzMDEwYWQKICAgICAxMjcyOTNjMTU0ZjE0ZTI3LmFiYWQxZWQ0MzFjNjFhZjQuNTA0YzIyYzg2NjIyMmMwNC40YTUwN2M4NWE3YTdiMDZjCkBAIC0zNjA3OCwxMiArMzYwNzgsMTIgQEAKICAgICA4MTRiZjE3MTliNzBhNTA5LmQ3ODZiOWFmM2YyODY1ZjYuMTIzZjhhZWI2MGU5MDE2Yy44ZmM3ZDBkZmJmYTQzNzRmCiAgICAgZDQxNjMyZTBlZTQyOTZjYgogICBhZnRlcgotICAgIDQ0Y2ZiODk4MjNhZWExODIuODUzNTRkNzVjYTg2MDUyNi4zMzgzZTViNDg3YjMzM2ZjLjkyOTE5MjU2ODYzMDEwYWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgMTI3MjkzYzE1NGYxNGUyNy5hYmFkMWVkNDMxYzYxYWY0LjUwNGMyMmM4NjYyMjJjMDQuNGE1MDdjODVhN2E3YjA2YwogICAgIDA4ODJhN2U1OWQwMzkxYzYuZDMyZTE4NDNmOWEzYTY3Zi4yNjFjNWE2MWQwNWI1ZGYwLjU1NzQxMjBmNWI3NTI5OTMKICAgICA4MTRiZjE3MTliNzBhNTA5LmQ3ODZiOWFmM2YyODY1ZjYuMTIzZjhhZWI2MGU5MDE2Yy44ZmM3ZDBkZmJmYTQzNzRmCi0gICAgMDAwMDAwMDA1MDRjMjJjOAotVkVYVFJBQ1RQU18weDMobWVtKQorICAgIGQ0MTYzMmUwZWU0Mjk2Y2IKK1ZEUFBTXzEyOF8xb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgMDAyZGI1MDAwNTVhMDEzNC5kYjE5NmNjZmU5YzRjODlmLjk0N2Y3YzAyMWY2MjEyODMuNzAwMWFjZDNiMjU4NTUyMwogICAgIGVmZDdkMzJiMWZmOTM1YjUuNzEzODE0NmMyNDhjMzQzMi5lNmU3ZGQyOWI0NWM2YTUyLjlkYWViZTgzNjMzNTk1YzIKQEAgLTM2MDkxLDEzICszNjA5MSwxMyBAQAogICAgIDg2MThkNjRkY2VmOWU3YjEuYzA5OGRiMTVjZmE2ZDkwMS5iOTJmNmFhNTZlYzEwYTY5LmNmZjhhMGVmNTA2NmM4NjcKICAgICA4ZDJkNjc4M2M1ZDMzM2M0CiAgIGFmdGVyCi0gICAgMDAyZGI1MDAwNTVhMDEzNC5kYjE5NmNjZmU5YzRjODlmLjk0N2Y3YzAyMWY2MjEyODMuNzAwMWFjZDNlNmU3ZGQyOQorICAgIDAwMmRiNTAwMDU1YTAxMzQuZGIxOTZjY2ZlOWM0Yzg5Zi45NDdmN2MwMjFmNjIxMjgzLjcwMDFhY2QzYjI1ODU1MjMKICAgICBlZmQ3ZDMyYjFmZjkzNWI1LjcxMzgxNDZjMjQ4YzM0MzIuZTZlN2RkMjliNDVjNmE1Mi45ZGFlYmU4MzYzMzU5NWMyCiAgICAgN2VlMjBhNGI1OTJhZWQ3Yi45ZWYzZTViNWU3NTMyNjZmLmE5ODg1ODExMWEyMjI5OTEuZjM5MWJiNjkwZjBiZmNmNQogICAgIDg2MThkNjRkY2VmOWU3YjEuYzA5OGRiMTVjZmE2ZDkwMS5iOTJmNmFhNTZlYzEwYTY5LmNmZjhhMGVmNTA2NmM4NjcKICAgICA4ZDJkNjc4M2M1ZDMzM2M0CiAKLVZFWFRSQUNUUFNfMHgzKHJlZykKK1ZEUFBTXzEyOF8xb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgODk3ZDBlOGYwOGRkNzliOS5lNjQ3YjExZDlhNzNkZDg1LjMyNzFmM2Y3NzcxMDhiOTUuZjJhODhlZDFjYjQ0Y2IwOQogICAgIDFmMzQ5MDgxYjUxMWQ4ZjIuNzkzOTE5YThkYWEzOGMyMC40ZmNiMjhjOTdiMWQ3NmQ3LjMwYmU0MDgxNGViNzI1OWIKQEAgLTM2MTA1LDEyICszNjEwNSwxMiBAQAogICAgIDg5MDYxNmM0YmYyNGNiZGYuYTg5ODdjOWIyNTU2MDM2Mi5mZTMxZGFlYTBhNTJlOTEyLjJiZjUzZTFkMzQ5ZjliNDYKICAgICA5ZmFkODNlMWNmMmIyZmI4CiAgIGFmdGVyCi0gICAgODk3ZDBlOGYwOGRkNzliOS5lNjQ3YjExZDlhNzNkZDg1LjMyNzFmM2Y3NzcxMDhiOTUuZjJhODhlZDFjYjQ0Y2IwOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICAxZjM0OTA4MWI1MTFkOGYyLjc5MzkxOWE4ZGFhMzhjMjAuNGZjYjI4Yzk3YjFkNzZkNy4zMGJlNDA4MTRlYjcyNTliCiAgICAgYWI5ZWU5YzQ2OWY5OGExYi4xYmJiODhkOGFhOTVhZmIxLjc1ZjI3NmY2Nzg1YWQ2NzIuNGYzZmZjYTAxMjI3ZDc0YgogICAgIDg5MDYxNmM0YmYyNGNiZGYuYTg5ODdjOWIyNTU2MDM2Mi5mZTMxZGFlYTBhNTJlOTEyLjJiZjUzZTFkMzQ5ZjliNDYKLSAgICAwMDAwMDAwMDRmY2IyOGM5Ci1WRVhUUkFDVFBTXzB4MyhtZW0pCisgICAgOWZhZDgzZTFjZjJiMmZiOAorVkRQUFNfMTI4XzFvZjQobWVtKQogICBiZWZvcmUKICAgICA4OTMzNDZkOTAwZDg0Y2NkLjE1YmExMmVkNTMxYmQ5ZWEuZmM5ZTcxZGM2N2YxNDQ1Zi40OGQ2NGUxMWNjOTFlOTY1CiAgICAgYzQ1MzAzZjFlMmIxYjFiMC5hYjA0ZDlhY2MzNmNlZWU5LmYzOTdlMTg2OGQ3MjJlZDUuYWQyYmQwZDc1YWE0MTMxNApAQCAtMzYxMTgsMTMgKzM2MTE4LDEzIEBACiAgICAgOWM5MTVjMzIyYjE4M2U5MS42NThkYjg5N2EwNDkyMDcyLjM5OTYyN2NhZjM1OGVjZGMuM2MxOWViZjE0YzczZDQzZAogICAgIDFkNDk3ZDFjZTg0N2UzMGUKICAgYWZ0ZXIKLSAgICA4OTMzNDZkOTAwZDg0Y2NkLjE1YmExMmVkNTMxYmQ5ZWEuZmM5ZTcxZGM2N2YxNDQ1Zi40OGQ2NGUxMWYzOTdlMTg2CisgICAgODkzMzQ2ZDkwMGQ4NGNjZC4xNWJhMTJlZDUzMWJkOWVhLmZjOWU3MWRjNjdmMTQ0NWYuNDhkNjRlMTFjYzkxZTk2NQogICAgIGM0NTMwM2YxZTJiMWIxYjAuYWIwNGQ5YWNjMzZjZWVlOS5mMzk3ZTE4NjhkNzIyZWQ1LmFkMmJkMGQ3NWFhNDEzMTQKICAgICAyY2Q5MzYxNjkyYzIxODhkLmE3MzE2NzZiYThhMjQ3ODguNjk1MTRhODdiMmU2N2NmMC44YTdlNWJhODUxMTVhMmNlCiAgICAgOWM5MTVjMzIyYjE4M2U5MS42NThkYjg5N2EwNDkyMDcyLjM5OTYyN2NhZjM1OGVjZGMuM2MxOWViZjE0YzczZDQzZAogICAgIDFkNDk3ZDFjZTg0N2UzMGUKIAotVkVYVFJBQ1RQU18weDMocmVnKQorVkRQUFNfMTI4XzFvZjQocmVnKQogICBiZWZvcmUKICAgICA4YTU5MGI5N2MwMWYwYmVjLmYyNDZlZjMzYzliZWRmZTguNDE2NGM5OWQ0N2VlYjQ1NC40MTMzZjQzYjZjZDQzN2MzCiAgICAgZTA5NzkzY2M3MTg3OGE4NC4wOWM1NmQwNDg5YzBiNmJkLjk2MDI5NGU3MzgxYzQwZGEuNWNmNDJkYzczNzY3MWNkNApAQCAtMzYxMzIsMTIgKzM2MTMyLDEyIEBACiAgICAgYjJjOTdmMTljYzMzNzg5MC5lOTUxMThjNmRlMGFmOTk0LjIwYzI0ZWZjNjk0NTMwODAuM2ExMWQ1ZGIzOWZmOWYxZgogICAgIGI1MDUzYjNkYTcxZGI2YjEKICAgYWZ0ZXIKLSAgICA4YTU5MGI5N2MwMWYwYmVjLmYyNDZlZjMzYzliZWRmZTguNDE2NGM5OWQ0N2VlYjQ1NC40MTMzZjQzYjZjZDQzN2MzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAogICAgIGUwOTc5M2NjNzE4NzhhODQuMDljNTZkMDQ4OWMwYjZiZC45NjAyOTRlNzM4MWM0MGRhLjVjZjQyZGM3Mzc2NzFjZDQKICAgICA3OTRkMTAyOTk2MDk5YTgxLmJjZGE1MjkxODcyYjgwM2QuYzJiMjE3ZTMwZjYwMDBhZi42NWE0NGY1ODczMWM1NTM5CiAgICAgYjJjOTdmMTljYzMzNzg5MC5lOTUxMThjNmRlMGFmOTk0LjIwYzI0ZWZjNjk0NTMwODAuM2ExMWQ1ZGIzOWZmOWYxZgotICAgIDAwMDAwMDAwOTYwMjk0ZTcKLVZFWFRSQUNUUFNfMHgzKG1lbSkKKyAgICBiNTA1M2IzZGE3MWRiNmIxCitWRFBQU18xMjhfMW9mNChtZW0pCiAgIGJlZm9yZQogICAgIGI0NGVmZDY4ZDk4MTU1MWMuZTc1NWRhMDhhZTkxNjA1ZC42YmY2M2Q4ZmFhNjlkZGVkLjBiN2MzMzllZTI1NzBiZjgKICAgICAxMmI2OTc0YWVhMzczOThjLjc0M2UxZjYyZDlhZThkOTMuMWQ5NTNiZDgwODU1ZTc3NC5lMTJkYzQzNTE1MjNjZWM0CkBAIC0zNjE0NSwxMyArMzYxNDUsMTMgQEAKICAgICA1OTE1NDVlMDFiY2JjMDI4LjA3NTY1NDA3Nzc1NWE5ZWMuODVmMGI4OWFlODAyNjBjMC5iYWE0ZDdmMjFhMTZmYjA3CiAgICAgNzYwMTUxZjAyNDU1ZGRkNQogICBhZnRlcgotICAgIGI0NGVmZDY4ZDk4MTU1MWMuZTc1NWRhMDhhZTkxNjA1ZC42YmY2M2Q4ZmFhNjlkZGVkLjBiN2MzMzllMWQ5NTNiZDgKKyAgICBiNDRlZmQ2OGQ5ODE1NTFjLmU3NTVkYTA4YWU5MTYwNWQuNmJmNjNkOGZhYTY5ZGRlZC4wYjdjMzM5ZWUyNTcwYmY4CiAgICAgMTJiNjk3NGFlYTM3Mzk4Yy43NDNlMWY2MmQ5YWU4ZDkzLjFkOTUzYmQ4MDg1NWU3NzQuZTEyZGM0MzUxNTIzY2VjNAogICAgIGFhMGE4NmNlZjc0YzFlMmMuYjZkMDQ5OTNlODE2M2NkZi5kZGY5OTA4ZDEzZDlkNDU3LmZkMjFmYzJkOWUzM2I1OTAKICAgICA1OTE1NDVlMDFiY2JjMDI4LjA3NTY1NDA3Nzc1NWE5ZWMuODVmMGI4OWFlODAyNjBjMC5iYWE0ZDdmMjFhMTZmYjA3CiAgICAgNzYwMTUxZjAyNDU1ZGRkNQogCi1WTEREUVVfMTI4KHJlZykKK1ZEUFBTXzEyOF8yb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgOGM4NjY2OTM1OTdlOTdhOC5mY2E1NTA2YzcyYzFkYWFlLmM0MWUzZDJhMjNmODBmNjcuZjM0NDJkZWNhMmRhNDZkYgogICAgIDU3N2QxMzQ4NTQxYzY0MmEuNmQ4NDIzNWUxOTM4MjllNy40OTcyZmU2OTg4OGFhYmZjLjAxYzI2ZDZkNWU3MDQzZDUKQEAgLTM2MTU5LDEyICszNjE1OSwxMiBAQAogICAgIDgwZjQyMjk0MGVlOTJiZWMuMmQ2MzEzMjRjNmRmNTUyOS4xYmYxZmRlN2VhYWM3NTIyLjcxNmIzYmIwNGFmZjcyMTUKICAgICA4YTJmYzE0YWIyMTExYmIzCiAgIGFmdGVyCi0gICAgOGM4NjY2OTM1OTdlOTdhOC5mY2E1NTA2YzcyYzFkYWFlLmM0MWUzZDJhMjNmODBmNjcuZjM0NDJkZWNhMmRhNDZkYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NmMwNzhmMzAwMDAwMDAwLjU2YzA3OGYzMDAwMDAwMDAKICAgICA1NzdkMTM0ODU0MWM2NDJhLjZkODQyMzVlMTkzODI5ZTcuNDk3MmZlNjk4ODhhYWJmYy4wMWMyNmQ2ZDVlNzA0M2Q1CiAgICAgMzQzMzUzNzliMmJjODIwNy44YTgwM2JhMjJjM2Y2OTAyLmYyOWY5NTJlNDE5N2I5NTYuOGMzNmYzMGIzN2NkMTNkYQogICAgIDgwZjQyMjk0MGVlOTJiZWMuMmQ2MzEzMjRjNmRmNTUyOS4xYmYxZmRlN2VhYWM3NTIyLjcxNmIzYmIwNGFmZjcyMTUKICAgICA4YTJmYzE0YWIyMTExYmIzCi1WTEREUVVfMTI4KG1lbSkKK1ZEUFBTXzEyOF8yb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgYjQ0YzAyYzQ4YzBmY2JkZi45NTBjN2QwNDA1MmY5Yjg1LjMzZmEyN2QwMDMyNmFiODkuMjBiNDMyZmYyMDU0MWEwYgogICAgIGNjOTA3OTBhZjMwNjNlYzYuZDFjNjVlMzUzMjFiMTA3ZC43OTExZjM5MzAwMWYyNDRkLjVkMzQzMWUxN2YxY2U2YmUKQEAgLTM2MTczLDEyICszNjE3MywxMiBAQAogICAgIGZiMThiYzg0YTRhNjgxNDkKICAgYWZ0ZXIKICAgICBiNDRjMDJjNDhjMGZjYmRmLjk1MGM3ZDA0MDUyZjliODUuMzNmYTI3ZDAwMzI2YWI4OS4yMGI0MzJmZjIwNTQxYTBiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg1MzNmYTI3ZDAwMzI2YWIuODkyMGI0MzJmZjIwNTQxYQorICAgIGNjOTA3OTBhZjMwNjNlYzYuZDFjNjVlMzUzMjFiMTA3ZC43OTExZjM5MzAwMWYyNDRkLjVkMzQzMWUxN2YxY2U2YmUKICAgICBhY2M1YTIwODA0MDIyZjk0LjhlNzBjMzkyMzEzOGM0ODEuZDk3M2YzNTdkOGQ3N2ZhMi4yZGJjZjVmYmExOGUxMmU3CiAgICAgMzFiOGY5YWFkYTBkNWM3NC4yOTU0YTc4OTlmMTJmNDNjLjMwZWVhNDBhYTg1ODc2YjMuZWU5YTdhYjgyNTM5ZGQzMQogICAgIGZiMThiYzg0YTRhNjgxNDkKIAotVkxERFFVXzEyOChyZWcpCitWRFBQU18xMjhfMm9mNChyZWcpCiAgIGJlZm9yZQogICAgIGIwODNiN2NiYmQ2MzNiZGEuMzczNGZiZGM5MTM1N2U5My5mZmJmMDc4NjE4MzZkYzViLjVhNGM4MTk2OGJiMWM2YWQKICAgICA2OTI3NjhmYTA5ZmI0NzkxLjlhMDcyMjhiNDY4NTU0MWQuNmFmZGRkZjMzNzJmYjc4YS4zMzVhMDZlOTllZWIyYmJjCkBAIC0zNjE4NiwxMiArMzYxODYsMTIgQEAKICAgICA1NjRhZDliYmIwZWU0MzIwLmU3ZGVkNDBjMThjZjA4MWYuNzIyMmUwZDBkOGQxMzljNi42MmI2Zjk5MWMyMzcyM2M3CiAgICAgNzE5YzVlYmUwYjYxMmUxYgogICBhZnRlcgotICAgIGIwODNiN2NiYmQ2MzNiZGEuMzczNGZiZGM5MTM1N2U5My5mZmJmMDc4NjE4MzZkYzViLjVhNGM4MTk2OGJiMWM2YWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWI4ODRlNmUwMDAwMDAwMC41Yjg4NGU2ZTAwMDAwMDAwCiAgICAgNjkyNzY4ZmEwOWZiNDc5MS45YTA3MjI4YjQ2ODU1NDFkLjZhZmRkZGYzMzcyZmI3OGEuMzM1YTA2ZTk5ZWViMmJiYwogICAgIDgxNTBjYTdiMjdmYmUwMTkuMzZmYmVjYTExNTBhOTgzZC5jNzVhMjczZDk4ODljMjc0Ljk3ZTRhZmVlZmMxNDYxMGIKICAgICA1NjRhZDliYmIwZWU0MzIwLmU3ZGVkNDBjMThjZjA4MWYuNzIyMmUwZDBkOGQxMzljNi42MmI2Zjk5MWMyMzcyM2M3CiAgICAgNzE5YzVlYmUwYjYxMmUxYgotVkxERFFVXzEyOChtZW0pCitWRFBQU18xMjhfMm9mNChtZW0pCiAgIGJlZm9yZQogICAgIDllNjE1YzYxZjQ5ZDNkMzQuNDM2MDkxMjc0MjYwYWM0Zi44OTdhNTdiNjZlZTA1ZGYwLmM4YTEwNDE5OTM5MjU3MmIKICAgICBjNmQzNmU2Nzk4ZjcwZTNlLmEzZGZlZTI5NzlkZDU3NTUuZjg5Y2VmOGQzMTQ5NTZkYy4yMzIyOGY4MjYzNTg1OTUwCkBAIC0zNjIwMCwxMiArMzYyMDAsMTIgQEAKICAgICBmMGFmNzViZTc1NDQwZWY1CiAgIGFmdGVyCiAgICAgOWU2MTVjNjFmNDlkM2QzNC40MzYwOTEyNzQyNjBhYzRmLjg5N2E1N2I2NmVlMDVkZjAuYzhhMTA0MTk5MzkyNTcyYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40Zjg5N2E1N2I2NmVlMDVkLmYwYzhhMTA0MTk5MzkyNTcKKyAgICBjNmQzNmU2Nzk4ZjcwZTNlLmEzZGZlZTI5NzlkZDU3NTUuZjg5Y2VmOGQzMTQ5NTZkYy4yMzIyOGY4MjYzNTg1OTUwCiAgICAgYzViYzExYmExMzdjNWI2NC5kNDE0ZWQyZmYwZjI3ZmRjLjEwMTAxYTdjN2QxN2FkMGUuZTBmMjdlNzllN2IwN2JlMQogICAgIDc2ZTliZjQ3ODIzN2UxZDMuMzA0OTg5YTQ0NDJhNjE5MC5hZGExNTM2ZjZmNTYxZmIzLjViNWRjYzY5YjkyNWY5ODkKICAgICBmMGFmNzViZTc1NDQwZWY1CiAKLVZMRERRVV8xMjgocmVnKQorVkRQUFNfMTI4XzJvZjQocmVnKQogICBiZWZvcmUKICAgICBmYjM0NzVlNGI4OTdmN2QwLmI3MjZmNmZiMDEzNDViYjYuMTVjYWJlZjQxMDEyMzkxZS5hYjFkMTY1MjIyMTA2OGY3CiAgICAgZDgzOGM5NDcxZGFjZjBjNy42MzNmMzFjMGFiODA4NjNhLmRkZTU4OThiZjAzNTQyMzIuZTY0ZWUwMTFiMzUzNDMwNQpAQCAtMzYyMTMsMTIgKzM2MjEzLDEyIEBACiAgICAgNzhlYjU5NzRiZjRiMDFiOC42YzM0YTQzMmYxMzJkZmQ0LjhhMTVjZDNlNWU1ZGRhOWEuODMwMzc1ZDNkZGEyYTIzMQogICAgIDlkMWQzOWFlYWVjNjlkYTcKICAgYWZ0ZXIKLSAgICBmYjM0NzVlNGI4OTdmN2QwLmI3MjZmNmZiMDEzNDViYjYuMTVjYWJlZjQxMDEyMzkxZS5hYjFkMTY1MjIyMTA2OGY3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMxOWI3MmZjMDAwMDAwMDAuMzE5YjcyZmMwMDAwMDAwMAogICAgIGQ4MzhjOTQ3MWRhY2YwYzcuNjMzZjMxYzBhYjgwODYzYS5kZGU1ODk4YmYwMzU0MjMyLmU2NGVlMDExYjM1MzQzMDUKICAgICBlMzA2NmI1MzQwMGYzNTg2LjU2MDBlZDg0OWMyNjFlOGIuZTZlNWU0ZDU4MTFmYjk3Ny4zYTAxMmI5ODNkMmI2ZDBhCiAgICAgNzhlYjU5NzRiZjRiMDFiOC42YzM0YTQzMmYxMzJkZmQ0LjhhMTVjZDNlNWU1ZGRhOWEuODMwMzc1ZDNkZGEyYTIzMQogICAgIDlkMWQzOWFlYWVjNjlkYTcKLVZMRERRVV8xMjgobWVtKQorVkRQUFNfMTI4XzJvZjQobWVtKQogICBiZWZvcmUKICAgICA2MzFlZjMxNmNjYTMxYzk4LmYzMzM4ZTE2MzNlYzkxMGEuODFhOGQ0YjZjNmIxODQ0MS4yN2MyM2YzMjI0N2FlMTQ2CiAgICAgYjNkMTIwZjU1NDQzZDkyZi5hZjJhMDdhNjNhN2UyMDI3LjcwMjhmOGZjMzVhZWNiMDAuMTczODM2MWU2ZjAyMDkyOApAQCAtMzYyMjcsMTIgKzM2MjI3LDEyIEBACiAgICAgNzg0ODEzZTI4MDk3YTRjOAogICBhZnRlcgogICAgIDYzMWVmMzE2Y2NhMzFjOTguZjMzMzhlMTYzM2VjOTEwYS44MWE4ZDRiNmM2YjE4NDQxLjI3YzIzZjMyMjQ3YWUxNDYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGE4MWE4ZDRiNmM2YjE4NC40MTI3YzIzZjMyMjQ3YWUxCisgICAgYjNkMTIwZjU1NDQzZDkyZi5hZjJhMDdhNjNhN2UyMDI3LjcwMjhmOGZjMzVhZWNiMDAuMTczODM2MWU2ZjAyMDkyOAogICAgIDY4MDEzYjM5NjJiNDkwOTkuMGExY2JlOGU3MDhlZWNiYy4xNzgwOGNmMDVkMzU2ZDNiLmI3YzNhZjZjZDk4MjhmZWMKICAgICA1ZDdiYzBjZDExMDJmZjAxLjVmNTViMTNjNzBhNzJmNzUuNTE3YzBjN2U1ODUzMjkxZS42NGFmYTQ4YTAxODVhZjNkCiAgICAgNzg0ODEzZTI4MDk3YTRjOAogCi1WTEREUVVfMjU2KHJlZykKK1ZEUFBTXzEyOF8zb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgNTBkOWY3ZTJmNTQ1YWIzOS43MDBjMmI5ZDdkMzdlMDk0LjBhMjFkYjFhZDY1NjI2ZmQuZjllOGY1OTI0MjEzYjlkNgogICAgIDQ4YWY0ZGY1ZjkxYTAwM2IuN2M3ZGY4OTVjMzYyZjA3ZC42N2NiMzg5NjNmMjYwYzAxLmVkOTBjMjE5Mzc4MWRhOGYKQEAgLTM2MjQwLDEyICszNjI0MCwxMiBAQAogICAgIDA5NWIzYjA0MjQ2YTgzYTQuZWUzN2FhYWQ0Y2MzOGMwNC5hNmVjN2MxNTg5NTk5OTJiLjI1YzJmODJjYjU5OWJlYjIKICAgICAyMmU1NTk5MTc1NWFmOTc1CiAgIGFmdGVyCi0gICAgNTBkOWY3ZTJmNTQ1YWIzOS43MDBjMmI5ZDdkMzdlMDk0LjBhMjFkYjFhZDY1NjI2ZmQuZjllOGY1OTI0MjEzYjlkNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA0OGFmNGRmNWY5MWEwMDNiLjdjN2RmODk1YzM2MmYwN2QuNjdjYjM4OTYzZjI2MGMwMS5lZDkwYzIxOTM3ODFkYThmCiAgICAgYmQxNzBmODcyYmEyZGY3YS41YzlkYTRhMWZmOGNlYWU5LmQxYTBjNTFiNDdhMzFmMmMuMDgzZmVmZmQ1NWFhNDg3NAogICAgIDA5NWIzYjA0MjQ2YTgzYTQuZWUzN2FhYWQ0Y2MzOGMwNC5hNmVjN2MxNTg5NTk5OTJiLjI1YzJmODJjYjU5OWJlYjIKICAgICAyMmU1NTk5MTc1NWFmOTc1Ci1WTEREUVVfMjU2KG1lbSkKK1ZEUFBTXzEyOF8zb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgZDk3NDhmMTdiMWZhYjVlOC44OWM3Y2NkODgyZmQyOTYyLjBjMTY4NmE1YzYxMjkwZjkuNDFmYjViZjBhMWQ1YjZhOQogICAgIDI4M2IxNWFjODQ4NGFlMzcuOTlhOWJlNmZlMWU3MGQ2My45NDA4YjQ3NThhODViMmY1LmZkMTk1ZDE4MmNhM2I0NTQKQEAgLTM2MjU0LDEyICszNjI1NCwxMiBAQAogICAgIDk3YzMwZjk3OTM2YTQyMGYKICAgYWZ0ZXIKICAgICBkOTc0OGYxN2IxZmFiNWU4Ljg5YzdjY2Q4ODJmZDI5NjIuMGMxNjg2YTVjNjEyOTBmOS40MWZiNWJmMGExZDViNmE5Ci0gICAgNTRkOTc0OGYxN2IxZmFiNS5lODg5YzdjY2Q4ODJmZDI5LjYyMGMxNjg2YTVjNjEyOTAuZjk0MWZiNWJmMGExZDViNgorICAgIDI4M2IxNWFjODQ4NGFlMzcuOTlhOWJlNmZlMWU3MGQ2My45NDA4YjQ3NThhODViMmY1LmZkMTk1ZDE4MmNhM2I0NTQKICAgICBlOTA1NjczYjBiMDU5ZjkwLjk1NGMwZTM1ZGNiNTZiNTEuNjBkN2IxMGFiMzI5YjAyNC4zODkxN2ZmOWM1NGRjZGQ1CiAgICAgZjlhMDAxYjA2MTg4NDUxZC5kOWZiYjY5NzBmZjI3ZWQ4LjRlNTBmNzRlNWUwOTQ0YjEuNGNiMWJiMDAwOTYxM2VkYgogICAgIDk3YzMwZjk3OTM2YTQyMGYKIAotVkxERFFVXzI1NihyZWcpCitWRFBQU18xMjhfM29mNChyZWcpCiAgIGJlZm9yZQogICAgIDczMTQ3NjJjMDBmNTE3MjAuMzVkNjYwZjdhMjE5NWMwYS5jMTAzYjRmZjE3MmI4M2E2LjM4M2YwNDJmYTYzMjJiYzkKICAgICAzZWYwZWMyOWViOGRmN2I4Ljc3NzRmZmZjZWJjNDlmODQuYTliMDAzZGI5MGVhYjU2NC5mYjZmNTM5N2E4YWUyMDk3CkBAIC0zNjI2NywxMiArMzYyNjcsMTIgQEAKICAgICAwZDc5ZjYxMGFkMTVjYTJmLjgxMThlZGYxMDM5YTljY2UuZTkyOTg1OWI0MjMwOTQ2Ny43ZGM2YThiMTQ4ZDUyODA3CiAgICAgZjM4NWE2M2ExZTk3YjEwMQogICBhZnRlcgotICAgIDczMTQ3NjJjMDBmNTE3MjAuMzVkNjYwZjdhMjE5NWMwYS5jMTAzYjRmZjE3MmI4M2E2LjM4M2YwNDJmYTYzMjJiYzkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCiAgICAgM2VmMGVjMjllYjhkZjdiOC43Nzc0ZmZmY2ViYzQ5Zjg0LmE5YjAwM2RiOTBlYWI1NjQuZmI2ZjUzOTdhOGFlMjA5NwogICAgIDUyYTM2ZGZjZjBiZTFlODQuOWM0NjVhYWM1Nzk2Y2NiNy5lZDRlYTA5NTE1YmU1MmMxLjc0YWU2MTc0N2Y4Y2UxNDgKICAgICAwZDc5ZjYxMGFkMTVjYTJmLjgxMThlZGYxMDM5YTljY2UuZTkyOTg1OWI0MjMwOTQ2Ny43ZGM2YThiMTQ4ZDUyODA3CiAgICAgZjM4NWE2M2ExZTk3YjEwMQotVkxERFFVXzI1NihtZW0pCitWRFBQU18xMjhfM29mNChtZW0pCiAgIGJlZm9yZQogICAgIGIyYjVkNmZiMWRkZDNhNjIuYzliZDgyZDFiYjFkMzU2Ni4wMGI2MzRiOTBiZGRjZWY2LmY5OGNiMDU4YjRjZWI4MDIKICAgICA5NzIzYjRlMDYyYjQ3ZDU1LmUzYmMwZGFiYjg2MjljZDQuZjZlYmFjZWU4OTZhMWM1YS43OWM1MWMzODA2MjNmOTNmCkBAIC0zNjI4MSwxMiArMzYyODEsMTIgQEAKICAgICAzMDYzYmZlMjU4ZTdjODc4CiAgIGFmdGVyCiAgICAgYjJiNWQ2ZmIxZGRkM2E2Mi5jOWJkODJkMWJiMWQzNTY2LjAwYjYzNGI5MGJkZGNlZjYuZjk4Y2IwNThiNGNlYjgwMgotICAgIDNmYjJiNWQ2ZmIxZGRkM2EuNjJjOWJkODJkMWJiMWQzNS42NjAwYjYzNGI5MGJkZGNlLmY2Zjk4Y2IwNThiNGNlYjgKKyAgICA5NzIzYjRlMDYyYjQ3ZDU1LmUzYmMwZGFiYjg2MjljZDQuZjZlYmFjZWU4OTZhMWM1YS43OWM1MWMzODA2MjNmOTNmCiAgICAgN2M5YWJkZDUwOTI3MzcwNy5iOGMzOTMwYTQwNzEzYTI2LjNmODVkMDdlOWM0ZDQzMjcuYzQxZWM1YTdkNWJjOTRjYQogICAgIDNlZTg2Y2M3MmQ0MjI0YTMuYTIxYzExNWFlZWQ1NGQwOC5iNzRlMWM1NDVkOTJmZjg5LjM4ZTRhNzExYmMyM2M1NGUKICAgICAzMDYzYmZlMjU4ZTdjODc4CiAKLVZMRERRVV8yNTYocmVnKQorVkRQUFNfMTI4XzNvZjQocmVnKQogICBiZWZvcmUKICAgICAwOGU3MDg4NzQ0OTFkOGY0LmI5ZDczY2EwZWExMWZmNTYuZmUxNDgxMDc1ZTFhMGYyNS4zYTEzMGM1Y2ViNDYwY2FiCiAgICAgMWJiYjdlNmExZGFmMzI2ZC5jOTM1YWM0ZTVkYTE4NTRjLjI4ZjZlMTdlMmRjZGJjMmEuYTVhMDFjODI1Zjc1MjViYQpAQCAtMzYyOTQsMTIgKzM2Mjk0LDEyIEBACiAgICAgNjc4N2UyOWUwMzc1YjQwOC4xODY5NTRkNWQzMzI4MWFmLjU2YWM1Zjc2NTZhYWNiOWEuOWU0MThlZDg2ZjcwNmQ0ZAogICAgIGU1ZWRlN2UwNDI1NTE1MmEKICAgYWZ0ZXIKLSAgICAwOGU3MDg4NzQ0OTFkOGY0LmI5ZDczY2EwZWExMWZmNTYuZmUxNDgxMDc1ZTFhMGYyNS4zYTEzMGM1Y2ViNDYwY2FiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAogICAgIDFiYmI3ZTZhMWRhZjMyNmQuYzkzNWFjNGU1ZGExODU0Yy4yOGY2ZTE3ZTJkY2RiYzJhLmE1YTAxYzgyNWY3NTI1YmEKICAgICBjNzJkMWRmOTdlY2MxMjkwLjRhY2MzNWJiYTFmZTcyYjAuN2MxMDJkMjlmNjc5OTJjMi5kMmMwYzliMmQ3MjkwN2UxCiAgICAgNjc4N2UyOWUwMzc1YjQwOC4xODY5NTRkNWQzMzI4MWFmLjU2YWM1Zjc2NTZhYWNiOWEuOWU0MThlZDg2ZjcwNmQ0ZAogICAgIGU1ZWRlN2UwNDI1NTE1MmEKLVZMRERRVV8yNTYobWVtKQorVkRQUFNfMTI4XzNvZjQobWVtKQogICBiZWZvcmUKICAgICA4MzkyNTFiNjZkZTViOWEzLjU2MTZjN2M3NDkzNTUzODIuMGZkODg2ODcwZjRiNmY3NC4xMzE3NzVjZmU5ZWRhNDVlCiAgICAgNTNmYTQ2NDcwYjJiMTZlNS5mMjI2Y2FkZmVjOTgyY2E5LjBiZTQ0NmJkNmY1NGY4MmMuMGQ5ZTY5YTI0OWNkNTliOQpAQCAtMzYzMDgsMTIgKzM2MzA4LDEyIEBACiAgICAgMDdjOTViMjk1Yjk1ZjUxMAogICBhZnRlcgogICAgIDgzOTI1MWI2NmRlNWI5YTMuNTYxNmM3Yzc0OTM1NTM4Mi4wZmQ4ODY4NzBmNGI2Zjc0LjEzMTc3NWNmZTllZGE0NWUKLSAgICBiOTgzOTI1MWI2NmRlNWI5LmEzNTYxNmM3Yzc0OTM1NTMuODIwZmQ4ODY4NzBmNGI2Zi43NDEzMTc3NWNmZTllZGE0CisgICAgNTNmYTQ2NDcwYjJiMTZlNS5mMjI2Y2FkZmVjOTgyY2E5LjBiZTQ0NmJkNmY1NGY4MmMuMGQ5ZTY5YTI0OWNkNTliOQogICAgIDMzZjI0NDdkMzgzM2U3MWIuOTUwM2U2NTI4NzJhN2IyYi5lODViMTA2MzEyNWFkODAzLmExOGEzOTVhMTVkNzI1NTgKICAgICBmZTQ1YzY0NjExMGFlOTcyLjlkZjkxODhjYjY3ODdiYjEuODIwNzYxNjUxMTY4Y2EyNC4yYjJhZTE2M2U2OTU0NWU2CiAgICAgMDdjOTViMjk1Yjk1ZjUxMAogCi1WTUFYUFNfMjU2KHJlZykKK1ZEUFBTXzEyOF80b2Y0KHJlZykKICAgYmVmb3JlCiAgICAgOTFiMmE1MTgwZDYzNzA4Mi45MGMxNDg4ZGIyYmJkODE2LjY0NTM1YWY5MTYwZTY5ZWEuYjViNWI0YWY4YjhhOGNiYwogICAgIDI1MzNiYTljOWE4YWY0ZTcuYzUzMDQ3M2UzNTUyNzAzMi40ODVmYWEwNTQzNzY4MTdmLjVjMzI4NDJkOTljZGQ3ZjYKQEAgLTM2MzIxLDEyICszNjMyMSwxMiBAQAogICAgIGRhMjgzNTE0YjQxMzAxM2MuODcxYmE5OGU1ODY0OGE4NC5kMmI4NjFhYTcxZjIxZTc0LjdiYzM5MTc2ZTdlM2ZmMDIKICAgICBhYTcxYzQxOTVlY2Y1MzJkCiAgIGFmdGVyCi0gICAgMjUzM2JhOWM5YThhZjRlNy44NzFiYTk4ZTU4NjQ4YTg0LjQ4NWZhYTA1NzFmMjFlNzQuN2JjMzkxNzY5OWNkZDdmNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICAyNTMzYmE5YzlhOGFmNGU3LmM1MzA0NzNlMzU1MjcwMzIuNDg1ZmFhMDU0Mzc2ODE3Zi41YzMyODQyZDk5Y2RkN2Y2CiAgICAgMWU5Njk2MjI5ZTk2YmJlYy43OTYwM2U0NWI5ZGM2Y2YzLmEzNjcwMzFjZDgzZWZmMWYuNTU0NzUwY2M1OTNjNmFmZgogICAgIGRhMjgzNTE0YjQxMzAxM2MuODcxYmE5OGU1ODY0OGE4NC5kMmI4NjFhYTcxZjIxZTc0LjdiYzM5MTc2ZTdlM2ZmMDIKICAgICBhYTcxYzQxOTVlY2Y1MzJkCi1WTUFYUFNfMjU2KG1lbSkKK1ZEUFBTXzEyOF80b2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgYmQxYzY2OWZkYjBiMjJhOS5iNDM1OTRkZjc5OGUwNDg0LmNkMmUwNDA1MmVmNjgzMTIuMzI5ZWMxMWNhYjFjMWIyYgogICAgIDkyOTFmMmY2NzlhMzI3YTUuMDgwOGFlZjA4ODkyZmU3MC4yNjY1Y2I5NjU4OWYxNmM4LjFkNjUxZWRjMjE0YTMyZWYKQEAgLTM2MzM2LDExICszNjMzNiwxMSBAQAogICBhZnRlcgogICAgIGJkMWM2NjlmZGIwYjIyYTkuYjQzNTk0ZGY3OThlMDQ4NC5jZDJlMDQwNTJlZjY4MzEyLjMyOWVjMTFjYWIxYzFiMmIKICAgICA5MjkxZjJmNjc5YTMyN2E1LjA4MDhhZWYwODg5MmZlNzAuMjY2NWNiOTY1ODlmMTZjOC4xZDY1MWVkYzIxNGEzMmVmCi0gICAgOTI5MWYyZjY3OWEzMjdhNS4wODA4YWVmMDc5OGUwNDg0LjI2NjVjYjk2NTg5ZjE2YzguMzI5ZWMxMWMyMTRhMzJlZgorICAgIDA0OWRlNDA5NTRhNDFmNGIuMzJlZjdmYjI3ZGFjMmNhYi42ZDhiN2IyZGYxNmFmZGQ0LmYwNTg3MzU4NzAwODllNmQKICAgICBlZTA5YjljNDg5MTljNmM3LjhkMzQwMzkxZjU2N2M5ZTIuODA2ZThlYjYxNjYzZjU1Zi4wOGM1YmZmYjMzZTA5ZDUwCiAgICAgYmZmNmZiMzEwNzYwNjg0NQogCi1WTUFYUFNfMjU2KHJlZykKK1ZEUFBTXzEyOF80b2Y0KHJlZykKICAgYmVmb3JlCiAgICAgNzIzODI0NjY4NzE0M2VmOC4yZWE0ZWIxMzMzMGZkODQ2Ljc3MjQzNmY4OGM0ZjEyYzAuM2FkODgyMWVlMjk3YmE5OAogICAgIDdkZDczNzA2NTA4NjU5MTQuOWUzOWY4ZTI2ZjkwMTBmNC40YjBiMTU1NWRjZjA0M2YyLjc2OTdkMzRmNzExMTA3YTgKQEAgLTM2MzQ4LDEyICszNjM0OCwxMiBAQAogICAgIDBiNWMwODM3MmFkYTUxMzkuODI4MDkwYjAwYjY5ZTU4Yi4yMGVlYzQ5ZjFlOGY0YzAxLmU4M2Y3OGMxNGIwODJjMDQKICAgICBkNmMwYzVkOWNkOWQ3Y2E3CiAgIGFmdGVyCi0gICAgN2RkNzM3MDY1MDg2NTkxNC44MjgwOTBiMDZmOTAxMGY0LjRiMGIxNTU1MWU4ZjRjMDEuNzY5N2QzNGY3MTExMDdhOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA3ZGQ3MzcwNjUwODY1OTE0LjllMzlmOGUyNmY5MDEwZjQuNGIwYjE1NTVkY2YwNDNmMi43Njk3ZDM0ZjcxMTEwN2E4CiAgICAgM2MxZjJmN2RmZDQ0ZjY0Ni4xYzkzNWIxZDU5YWEyYmZjLjY0MzU5YjEzODRkNzk4MjMuMTI3NWZiMzdlMWRlOTliZQogICAgIDBiNWMwODM3MmFkYTUxMzkuODI4MDkwYjAwYjY5ZTU4Yi4yMGVlYzQ5ZjFlOGY0YzAxLmU4M2Y3OGMxNGIwODJjMDQKICAgICBkNmMwYzVkOWNkOWQ3Y2E3Ci1WTUFYUFNfMjU2KG1lbSkKK1ZEUFBTXzEyOF80b2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgYjZjNjVlNmI4M2E5NDRkMi40NmQ5YmZhMDc0ZDNhNjlhLmFlY2ExNDg4YTRkOGY5Y2QuZGE4MjhjNjM0NmE1OWQzNQogICAgIDY1MWJiZjYzODgzNzQxYjIuNDllNDRlMjQ3N2JiMzAxNS43YTNlNjI4ZjNlMDMyNGVkLmVkM2NmMGNjOTlhNGM0NmUKQEAgLTM2MzYzLDExICszNjM2MywxMSBAQAogICBhZnRlcgogICAgIGI2YzY1ZTZiODNhOTQ0ZDIuNDZkOWJmYTA3NGQzYTY5YS5hZWNhMTQ4OGE0ZDhmOWNkLmRhODI4YzYzNDZhNTlkMzUKICAgICA2NTFiYmY2Mzg4Mzc0MWIyLjQ5ZTQ0ZTI0NzdiYjMwMTUuN2EzZTYyOGYzZTAzMjRlZC5lZDNjZjBjYzk5YTRjNDZlCi0gICAgNjUxYmJmNjM4M2E5NDRkMi40OWU0NGUyNDc3YmIzMDE1LjdhM2U2MjhmM2UwMzI0ZWQuZGE4MjhjNjM0NmE1OWQzNQorICAgIGMwOGQ2NWFkZjg1MzJmNzIuNzBjN2IzMzBjZTFlMmM1NS5jM2E4ZjZiM2Y1ZjYyMjE3LmI3NjllYTQ3YjIxODAwNTUKICAgICBhMWU2Y2EzNWYwMDljOTNmLjE3Y2ZlOTJmMTU4OWQ2MDcuNjZkMzRjZGVlNWJlYWY3OS45MjU1NzgzZTJlOGU4Yjk5CiAgICAgZGM0Yzk2MWZhODkxYTJlNAogCi1WTUFYUFNfMjU2KHJlZykKK1ZEUFBTXzEyOF80b2Y0KHJlZykKICAgYmVmb3JlCiAgICAgZWY5YTNlNTRiY2FkODFlMy5lNWYzNmNlNzhiNjZjZDQ1LjlhNDhlZDhjZTk4NzY5ZDYuM2Q4ZGUwZmUyYzY2ODYzYwogICAgIDI4OGI2ZTRiMDg2ZjYzNDEuNjk4MGM3YjBlNjc1ZjRhZi41NTdkYjliNWU1YTQyMjZmLjI1YTAyZmZlZTNmYjY0OGYKQEAgLTM2Mzc1LDEyICszNjM3NSwxMiBAQAogICAgIDdkODU1MzJjYjExMjIzY2MuOWM0OTk0MzM0YmRiYTI2Mi5lMzRmOWUxOGM4NmRmNWFlLjk5MDVlYjRlMTcxOTI0OGYKICAgICBkY2VlNTA3NmNiYmE3Zjk2CiAgIGFmdGVyCi0gICAgN2Q4NTUzMmMwODZmNjM0MS42OTgwYzdiMDRiZGJhMjYyLjU1N2RiOWI1Yzg2ZGY1YWUuMjVhMDJmZmUxNzE5MjQ4ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICAyODhiNmU0YjA4NmY2MzQxLjY5ODBjN2IwZTY3NWY0YWYuNTU3ZGI5YjVlNWE0MjI2Zi4yNWEwMmZmZWUzZmI2NDhmCiAgICAgZTQ2YTIxNmYyNTYyODZhYi4wNzU4NTU3YTFkNDNmZGFhLmE0YmM0YjE1YTY2ZDNkN2UuZmJkYWI0Y2EyODg4MDU5YwogICAgIDdkODU1MzJjYjExMjIzY2MuOWM0OTk0MzM0YmRiYTI2Mi5lMzRmOWUxOGM4NmRmNWFlLjk5MDVlYjRlMTcxOTI0OGYKICAgICBkY2VlNTA3NmNiYmE3Zjk2Ci1WTUFYUFNfMjU2KG1lbSkKK1ZEUFBTXzEyOF80b2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgYTA2MDVmMmU2MDc4Y2ZkYi41MDI2MDBlZTQ4MGM3OTUxLjA0MWRmZWM2OGM0OWEwMDIuNmU4NGFlMmFlNTMxODhhYwogICAgIGMxMjk5NTYzZjM1ZWQzOGEuYmE5YTI0MjE4NWRiYzJlNi4xYmExMTIxZWZkOWFiM2I2LmEwYTU3N2I3OWM0NDMwMjMKQEAgLTM2MzkwLDExICszNjM5MCwxMSBAQAogICBhZnRlcgogICAgIGEwNjA1ZjJlNjA3OGNmZGIuNTAyNjAwZWU0ODBjNzk1MS4wNDFkZmVjNjhjNDlhMDAyLjZlODRhZTJhZTUzMTg4YWMKICAgICBjMTI5OTU2M2YzNWVkMzhhLmJhOWEyNDIxODVkYmMyZTYuMWJhMTEyMWVmZDlhYjNiNi5hMGE1NzdiNzljNDQzMDIzCi0gICAgYTA2MDVmMmU2MDc4Y2ZkYi41MDI2MDBlZTQ4MGM3OTUxLjFiYTExMjFlOGM0OWEwMDIuNmU4NGFlMmE5YzQ0MzAyMworICAgIDFiMTM2ZGZmYTA3OTQ1ZDAuMTUyZGJjMzIwNDBiM2IzNi5iZWExNDkyOWI5ZDg5N2FiLmQ3ZmZmNjJiODYzMjI5YzAKICAgICA4YmVjNjNmMDgyZDRlMmQ5LmJlMmJjMzhiNjIyOTIwZWUuYzdlOTIwZDJkYzEyMDcwZC42ZWRlMjZmMzQxODdiMTJlCiAgICAgYzE4ZDAzNzk2OWQwMDIxYQogCi1WTUFYUERfMTI4KHJlZykKK1ZEUFBTXzI1Nl8xb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgMmI1YTg5MmE5OTk5NTkzMC5lYjdlZjMyMGI1N2I2NmQwLjExZGYzNTlhM2FjMGFkYjkuMTM0NTE0MDU4NDUxYzAwOAogICAgIDBhOGZiNTczNmU2Y2YxMWMuMTg5NjlhN2Q1NjdiOGRlMi42YTk2MGZjOTI5NWMxZDQ0LjdlODBhMGFlY2FhMzdkYzcKQEAgLTM2NDAyLDEyICszNjQwMiwxMiBAQAogICAgIDkzNjRlYjdhNzQ2NWQ3MjMuNDg4NzFhNmI1MGIzYjIwNS45ZTNlZTczYmJhZDU5ODQ5LjIxYzc3MTEzYTZhZWY3NDIKICAgICAxMTZhYWRhNjczN2YyYjU3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZhOTYwZmM5Mjk1YzFkNDQuN2U4MGEwYWVjYWEzN2RjNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICAwYThmYjU3MzZlNmNmMTFjLjE4OTY5YTdkNTY3YjhkZTIuNmE5NjBmYzkyOTVjMWQ0NC43ZTgwYTBhZWNhYTM3ZGM3CiAgICAgYjg3OTgxYmY4M2Q3MDc4OC5lZTAwZDNmMjgwZGYxMjNhLjI1OWQ0Yjg2Y2I4YWFkM2IuZTQ2ODQwYmFjYzEzZmM3NgogICAgIDkzNjRlYjdhNzQ2NWQ3MjMuNDg4NzFhNmI1MGIzYjIwNS45ZTNlZTczYmJhZDU5ODQ5LjIxYzc3MTEzYTZhZWY3NDIKICAgICAxMTZhYWRhNjczN2YyYjU3Ci1WTUFYUERfMTI4KG1lbSkKK1ZEUFBTXzI1Nl8xb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgOGYxZDcyNjA0ZjkyNTNlMC5mNjljZWYwZmRlYTM5ZDk3LjA0ZjllYmQ0ZTEwNDI5NmUuMzJjNmRlNTY5NWM5MWMxYgogICAgIDc5YWMzYjJjNTdmNDJjMGEuM2M2ZDg3ZWM1ZDFjOTU5MS5mZDIwYzIxOTUwZGQzMmEzLjNiODEyYzQyZjVmMzczNWMKQEAgLTM2NDE3LDExICszNjQxNywxMSBAQAogICBhZnRlcgogICAgIDhmMWQ3MjYwNGY5MjUzZTAuZjY5Y2VmMGZkZWEzOWQ5Ny4wNGY5ZWJkNGUxMDQyOTZlLjMyYzZkZTU2OTVjOTFjMWIKICAgICA3OWFjM2IyYzU3ZjQyYzBhLjNjNmQ4N2VjNWQxYzk1OTEuZmQyMGMyMTk1MGRkMzJhMy4zYjgxMmM0MmY1ZjM3MzVjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA0ZjllYmQ0ZTEwNDI5NmUuM2I4MTJjNDJmNWYzNzM1YworICAgIGFhZTM4NGY1YTdiMDcyMDEuYzIyMmIwN2M4YzVjZmFiYy4wZmNhMWMyNmI4NGE4YWNkLjE2YmFjZTZiNzlkZWRhYjkKICAgICBmZThkY2FhOTVhZDJlMWYwLmU1MDk2NzJjMDdmMDA5YzUuMTZjMTc0ZTczNjU4ZWQxYi4xZWJmYmUzZGJhMTc4Y2RlCiAgICAgYjFkYWZhMjU1NjI5YzY3NgogCi1WTUFYUERfMTI4KHJlZykKK1ZEUFBTXzI1Nl8xb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgMmE1ODdkOGRlOWEwYzQyZS41MTc3ODgzMzhjNjczNDA0LmZmNmNhNzY2NmI2M2ZkNTcuZWVkMTQ2NDllNTEyMTZiNwogICAgIGU1ODU0NGUyMGUwOGMyYjEuN2U2ZDM5N2Y1YTdhMjk2OC42ZTk4NmQ5NzUzNDExMzFmLjcyYzgwZTM2ZTI4NGMzY2QKQEAgLTM2NDI5LDEyICszNjQyOSwxMiBAQAogICAgIDkxMWM4YTA0ODBkZGFjY2IuZGJhZDZhMGQzODRiZTNkMy5iNjdiNzc4ZjIyNzA5NTAwLmYzOTc3MTY1MzNjMjkzMWEKICAgICBhNjA3MDQ3ZmMwYTUzMGE4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZlOTg2ZDk3NTM0MTEzMWYuNzJjODBlMzZlMjg0YzNjZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBlNTg1NDRlMjBlMDhjMmIxLjdlNmQzOTdmNWE3YTI5NjguNmU5ODZkOTc1MzQxMTMxZi43MmM4MGUzNmUyODRjM2NkCiAgICAgM2VhZDQ5OTE2MmVlZmJhYy42MzNiNWM3OWRmMTc3OTQ5LjhjZDliMzJjNWMxNzg3YzkuODA3MTQ5OWM0OGJiYWU4YQogICAgIDkxMWM4YTA0ODBkZGFjY2IuZGJhZDZhMGQzODRiZTNkMy5iNjdiNzc4ZjIyNzA5NTAwLmYzOTc3MTY1MzNjMjkzMWEKICAgICBhNjA3MDQ3ZmMwYTUzMGE4Ci1WTUFYUERfMTI4KG1lbSkKK1ZEUFBTXzI1Nl8xb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgNzc4ZTdlZDUwYjcxM2Y2MS4zOTFkMDJhOTA0NjIxMWI5LmMxOGZlMDI4ODAyMTIxMzEuNDljOWI0MmUzZmQ4Nzk3MQogICAgIDQxZjY1OTUzMmYzMTdkNzEuOTRmZGFkZWI4YjA4NjYyMy5mM2FkM2JiNGQ0YTZmMDhmLjlmMTE2Njc0NTJkYzZlYzgKQEAgLTM2NDQ0LDExICszNjQ0NCwxMSBAQAogICBhZnRlcgogICAgIDc3OGU3ZWQ1MGI3MTNmNjEuMzkxZDAyYTkwNDYyMTFiOS5jMThmZTAyODgwMjEyMTMxLjQ5YzliNDJlM2ZkODc5NzEKICAgICA0MWY2NTk1MzJmMzE3ZDcxLjk0ZmRhZGViOGIwODY2MjMuZjNhZDNiYjRkNGE2ZjA4Zi45ZjExNjY3NDUyZGM2ZWM4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMxOGZlMDI4ODAyMTIxMzEuNDljOWI0MmUzZmQ4Nzk3MQorICAgIGRmMGIxM2U1NDhmMWE1MDMuZmQwOTg4MzZiMDViZTZiNC40Y2QyZjY5ZjRmZTQwYzFiLjE1OWQ4OWNjZjQwN2IxYjAKICAgICAyZjliMjY3NzczYmU3NTQ0LmQwOGI4ZWY2MTBlN2NlMTkuYTdjYjhlZDMwZWU5MzBmZi4wN2JhMWFhNGMzZTU3ZGQ1CiAgICAgZDFiNDEzNjc1YjAzMTBlNAogCi1WTUFYUERfMTI4KHJlZykKK1ZEUFBTXzI1Nl8xb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgZDBkNzcyODE1N2VjYTQ4OS4wYjcwMTFmNWNiYTNhNzVmLjY4ZDBiYTk3NDczOTVhZmQuZTI2NDdkM2UyY2MxMTk2NwogICAgIDVlNmYzMjVmNTQyYzc1NzAuNTE1ODRkNGI2ZGFkZjc4MS4yMzIzMGE4NWYwZGNjNTBlLmQ3Njk0MWNhYzU3NzgzODAKQEAgLTM2NDU2LDEyICszNjQ1NiwxMiBAQAogICAgIDlhMmNjNzEyYmVlM2MyYjEuODc4Y2FjMzBmZDVjZTU4OC42ZTI3MDRmOTA5NDcyYjYxLjYzZTYzNWZhZGJhZGM5NzQKICAgICBiMWY3NWQ3NThmNDYxZGE3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZlMjcwNGY5MDk0NzJiNjEuNjNlNjM1ZmFkYmFkYzk3NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA1ZTZmMzI1ZjU0MmM3NTcwLjUxNTg0ZDRiNmRhZGY3ODEuMjMyMzBhODVmMGRjYzUwZS5kNzY5NDFjYWM1Nzc4MzgwCiAgICAgZDhjNzUwNmJlZDUwYzE0NC5kYjFkNTc2Njc0ZTYyM2Q1LjViZDI3YTJjYTc1ZDRjZjUuNjRhNjU1NjVmNjE3MmE3NgogICAgIDlhMmNjNzEyYmVlM2MyYjEuODc4Y2FjMzBmZDVjZTU4OC42ZTI3MDRmOTA5NDcyYjYxLjYzZTYzNWZhZGJhZGM5NzQKICAgICBiMWY3NWQ3NThmNDYxZGE3Ci1WTUFYUERfMTI4KG1lbSkKK1ZEUFBTXzI1Nl8xb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgMmJhMzQ5YzIyZWVkZTIzYi4wMGViOTJjMTY0NzJiNTY0LjJmNzFjNzk3MjMxYmZhYzYuYjY3MGE2NTZiMTI2OWVmYgogICAgIGFiYjc3NmNlZDVhZmQzNWIuNjY0ZWIwZTI3Yjg3ZDYwOS5iMDk4MjQ4NjAzMmUxZGJhLjkxZjc1YmIwM2M4N2UwNzIKQEAgLTM2NDcxLDExICszNjQ3MSwxMSBAQAogICBhZnRlcgogICAgIDJiYTM0OWMyMmVlZGUyM2IuMDBlYjkyYzE2NDcyYjU2NC4yZjcxYzc5NzIzMWJmYWM2LmI2NzBhNjU2YjEyNjllZmIKICAgICBhYmI3NzZjZWQ1YWZkMzViLjY2NGViMGUyN2I4N2Q2MDkuYjA5ODI0ODYwMzJlMWRiYS45MWY3NWJiMDNjODdlMDcyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJmNzFjNzk3MjMxYmZhYzYuOTFmNzViYjAzYzg3ZTA3MgorICAgIDBlZmY1ZjgzYTA5NmFlMzMuMjhhMjFhZTM5ZGIwNjA0Yy5lN2NjM2ZlOGI4YTEwYzkxLjU5MDkxZjc0NDVmNTJlNzAKICAgICAzMTQ3ODBjZWFhYjEyY2YwLmExMzJjZDJmNjk3OTkwZDguYWVkYTk1YWI1ZjgwODE3Ny42Y2YyZWYwZDY4ZmNjNGEyCiAgICAgMjRmZGM1ZTc0MjI5ZGRiMwogCi1WTUFYUERfMjU2KHJlZykKK1ZEUFBTXzI1Nl8yb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgZGY3ODlmNmU2ZjA3YjY1MC5lZTViNTY5YzBmMDkwY2JlLjJmNGNjNjMyNzk2ZGEyNTkuZTI4ZmExYmExM2Q4Mzg5NwogICAgIGY3YWQ3ODBkOGEyMjhiMjQuMjIwNjViZDdlY2FjMDhjOS4yZDNhMDA1ODY5MThkMjdjLjVmYjVkZjAxZjFiNGVmMWQKQEAgLTM2NDgzLDEyICszNjQ4MywxMiBAQAogICAgIGIxNzgxODQ5ZmM0MTE4MjQuNWY1NWU3NDk3YzAxNDc0My5lOWM2MjhiZDViYzQ3YTU3LmE1ODZlMmU4OTgyYTQ4MGUKICAgICAyNWNhOWU1ZjlhZGI2M2QxCiAgIGFmdGVyCi0gICAgYjE3ODE4NDlmYzQxMTgyNC41ZjU1ZTc0OTdjMDE0NzQzLjJkM2EwMDU4NjkxOGQyN2MuNWZiNWRmMDFmMWI0ZWYxZAorICAgIGZmODAwMDAwMDAwMDAwMDAuZmY4MDAwMDAwMDAwMDAwMC5mZjgwMDAwMDAwMDAwMDAwLmZmODAwMDAwMDAwMDAwMDAKICAgICBmN2FkNzgwZDhhMjI4YjI0LjIyMDY1YmQ3ZWNhYzA4YzkuMmQzYTAwNTg2OTE4ZDI3Yy41ZmI1ZGYwMWYxYjRlZjFkCiAgICAgYzllOTRjMzMzMDA3OThkYy5hOTE2MGQ2ZDVjYTVkZDNjLmY3NDk3NzBkZDYwNjViZWQuMDIxOWNiNmMxNDIxNjAzNgogICAgIGIxNzgxODQ5ZmM0MTE4MjQuNWY1NWU3NDk3YzAxNDc0My5lOWM2MjhiZDViYzQ3YTU3LmE1ODZlMmU4OTgyYTQ4MGUKICAgICAyNWNhOWU1ZjlhZGI2M2QxCi1WTUFYUERfMjU2KG1lbSkKK1ZEUFBTXzI1Nl8yb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgNWViMDdkYmUzNjQxNmNhYS4wY2E2ZDdiYzhhNWM0OGE3LjIxOTA2NjU3NjdjYjAyMGMuNWVmYjBkZDQ5NWRkNmE2NwogICAgIDJjMDNmYWYyODY2NzIwYzUuMzRiZjg1Zjg3N2U1NjQxMi5jOTkzMDQ4MzNhMGZjOWMwLmI0MzQyNGJlMWZkZTY5YzkKQEAgLTM2NDk4LDExICszNjQ5OCwxMSBAQAogICBhZnRlcgogICAgIDVlYjA3ZGJlMzY0MTZjYWEuMGNhNmQ3YmM4YTVjNDhhNy4yMTkwNjY1NzY3Y2IwMjBjLjVlZmIwZGQ0OTVkZDZhNjcKICAgICAyYzAzZmFmMjg2NjcyMGM1LjM0YmY4NWY4NzdlNTY0MTIuYzk5MzA0ODMzYTBmYzljMC5iNDM0MjRiZTFmZGU2OWM5Ci0gICAgNWViMDdkYmUzNjQxNmNhYS4zNGJmODVmODc3ZTU2NDEyLjIxOTA2NjU3NjdjYjAyMGMuNWVmYjBkZDQ5NWRkNmE2NworICAgIDZiOTA5MmU1YTk1OTNiNGYuODYwZTFlNmE1ZTY3YTcxMC4zNDI5M2ZiOTEwZDk1OThlLjQ2YmY2OGU4OTY1MmIxMjgKICAgICBmNzIzYmY4NWI5MjM3ODc0LjVlZTE5ZTdjZGM2ZTRmNGUuM2UyMDkyZTUwNTM2NmRhMC43MGU2ZDViYzk1YzU3ZjMxCiAgICAgOGRmNzY4YThiOGM0MGU4ZgogCi1WTUFYUERfMjU2KHJlZykKK1ZEUFBTXzI1Nl8yb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgZmIzYzFjMTc5Y2Q5OWNlZi5hYzg4ZmZiZGQyZDI5NDYwLjE4ODIwMjljOGQ4Nzk2NzguYzM0Mjc5ZjMzNjMyYzMyMgogICAgIDE0MDJlYzc0ZGQ5MzYzZmMuNjY4YWNkNzkxMTcyNGIzZS4xMDNlNDUzNTBiM2RiODM5LjlmNWQ3MGQwYmZkNzE1NDIKQEAgLTM2NTEwLDEyICszNjUxMCwxMiBAQAogICAgIGJiNDBkNmFkZTMxZjhlZDAuNTk5OTA0MmQ2ZmIxNzk4MS4yYTM3NTg4MmU0YjE4MTMyLmNiYTk4MGEzNDY1MTlmMDYKICAgICBkNDcyOTA3MTdkM2U0ZjAzCiAgIGFmdGVyCi0gICAgMTQwMmVjNzRkZDkzNjNmYy42NjhhY2Q3OTExNzI0YjNlLjJhMzc1ODgyZTRiMTgxMzIuOWY1ZDcwZDBiZmQ3MTU0MgorICAgIGI0OTBkZWNjMDAwMDAwMDAuYjQ5MGRlY2MwMDAwMDAwMC5jMGU4N2I2ZDAwMDAwMDAwLmMwZTg3YjZkMDAwMDAwMDAKICAgICAxNDAyZWM3NGRkOTM2M2ZjLjY2OGFjZDc5MTE3MjRiM2UuMTAzZTQ1MzUwYjNkYjgzOS45ZjVkNzBkMGJmZDcxNTQyCiAgICAgMzY5NWQ3MmQxNjdiOWY2My4wMWY3YTVhNTkxMGQ1OTNhLmEyNjE2M2IzZjUxY2YzM2UuYWUzYmY0NjZiYjMzMjAyOQogICAgIGJiNDBkNmFkZTMxZjhlZDAuNTk5OTA0MmQ2ZmIxNzk4MS4yYTM3NTg4MmU0YjE4MTMyLmNiYTk4MGEzNDY1MTlmMDYKICAgICBkNDcyOTA3MTdkM2U0ZjAzCi1WTUFYUERfMjU2KG1lbSkKK1ZEUFBTXzI1Nl8yb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgYTQ2NGEwYmU3YzA1ZWM0Yy4wMTUxZTc2MGUxMGE2YWVlLjRhM2U2NGZkYzY2YTY5M2YuMDQwYjIwMGU3Nzg3OWVjMgogICAgIDE3NGEyZDc1NWViMjMyMGUuNjIxMjA0YjJhY2M5NzA2YS5hZmIwNDMwMWIzNDJlMjlmLjhjMmJiOGMzNDcyYjg4OWEKQEAgLTM2NTI1LDExICszNjUyNSwxMSBAQAogICBhZnRlcgogICAgIGE0NjRhMGJlN2MwNWVjNGMuMDE1MWU3NjBlMTBhNmFlZS40YTNlNjRmZGM2NmE2OTNmLjA0MGIyMDBlNzc4NzllYzIKICAgICAxNzRhMmQ3NTVlYjIzMjBlLjYyMTIwNGIyYWNjOTcwNmEuYWZiMDQzMDFiMzQyZTI5Zi44YzJiYjhjMzQ3MmI4ODlhCi0gICAgMTc0YTJkNzU1ZWIyMzIwZS42MjEyMDRiMmFjYzk3MDZhLjRhM2U2NGZkYzY2YTY5M2YuMDQwYjIwMGU3Nzg3OWVjMgorICAgIDA5ZWZiMTgyM2Y1MmRjNzUuM2NkMTJiMTBkZmU3ZGJmMC42NmJiMWMyNjUxNDdhM2NlLjFlZTExYjBkZjIyNzc5NjUKICAgICA1NTIwYWFkMTNjZjBhOGFjLmU5ZDg1OGU0MTZmMGU5MmIuNGEyZDZjNTZiYzg1NjZmOC4xNjdhNDU1ODE0MGFhZWQwCiAgICAgZDA0MjMyMTE0ODVkNjM4NgogCi1WTUFYUERfMjU2KHJlZykKK1ZEUFBTXzI1Nl8yb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgYTg4NWRmYTIyYmFlZDMzNC5kOWE5OTM0ZTcwOTk0ZmUwLmM2NzQ4NTljZWU3MWQ0YzguMzdkMWFkN2YxMTA2ZTg0OAogICAgIGZhOGY0Nzc5NTg4ODNiODYuNzA1NmU5ZTVmODU3OTAzZC4zMGYwYjBhMjAyZjVkODcyLjA4NzI1ZDhiNmNkOGU1ZWIKQEAgLTM2NTM3LDEyICszNjUzNywxMiBAQAogICAgIDdiMjczOGE1MDEwOGUzYzQuNDY0YmM4MTI3MjQ4Y2IyMC4xNmJjZWQ0YzUwMzcxZjlmLmNiZGZmNzAxYTE5ZDNlZDgKICAgICA3MzQyZDk0MmI0YTgxMzdhCiAgIGFmdGVyCi0gICAgN2IyNzM4YTUwMTA4ZTNjNC43MDU2ZTllNWY4NTc5MDNkLjMwZjBiMGEyMDJmNWQ4NzIuMDg3MjVkOGI2Y2Q4ZTVlYgorICAgIDdmODAwMDAwMDAwMDAwMDAuN2Y4MDAwMDAwMDAwMDAwMC5mZjgwMDAwMDAwMDAwMDAwLmZmODAwMDAwMDAwMDAwMDAKICAgICBmYThmNDc3OTU4ODgzYjg2LjcwNTZlOWU1Zjg1NzkwM2QuMzBmMGIwYTIwMmY1ZDg3Mi4wODcyNWQ4YjZjZDhlNWViCiAgICAgMjFhYjY2MDA2Yjc4ZDcyNy5mNWYzMjY4MmVmMzgyNWVlLjgxOWFkNDY0ZWYwODMzZDYuOWJkZGY3NjhlODA3MTgwYwogICAgIDdiMjczOGE1MDEwOGUzYzQuNDY0YmM4MTI3MjQ4Y2IyMC4xNmJjZWQ0YzUwMzcxZjlmLmNiZGZmNzAxYTE5ZDNlZDgKICAgICA3MzQyZDk0MmI0YTgxMzdhCi1WTUFYUERfMjU2KG1lbSkKK1ZEUFBTXzI1Nl8yb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgNzFkMjFhMTczZDM0NTMyMC42MzRkYjlkM2I1Yzc5YTA4LjNlMmI0YTdmOWM5MTNlZmUuNGJhNGY3YzhjMjBkZDk3YQogICAgIDlmNWQzNTZjNTc0Y2I5ZjMuMzQ2YWU2ZjYyNDNlMzlhMC5iODYwMjhiNzhhMjEzOWI1LjdkOWNlZjQzZTAxNjlkMTMKQEAgLTM2NTUyLDExICszNjU1MiwxMSBAQAogICBhZnRlcgogICAgIDcxZDIxYTE3M2QzNDUzMjAuNjM0ZGI5ZDNiNWM3OWEwOC4zZTJiNGE3ZjljOTEzZWZlLjRiYTRmN2M4YzIwZGQ5N2EKICAgICA5ZjVkMzU2YzU3NGNiOWYzLjM0NmFlNmY2MjQzZTM5YTAuYjg2MDI4Yjc4YTIxMzliNS43ZDljZWY0M2UwMTY5ZDEzCi0gICAgNzFkMjFhMTczZDM0NTMyMC42MzRkYjlkM2I1Yzc5YTA4LjNlMmI0YTdmOWM5MTNlZmUuN2Q5Y2VmNDNlMDE2OWQxMworICAgIGRiYWRhNjJkMWVmYzAyMjIuNGNjYWJhN2FlYWZiZmIzNy45MmI0ZGZhNDU3MDQ3OTcwLjA2ZjFjZjI5NDZkZmE2MTUKICAgICBmZjkwZTk0NmFmNTBlYWQ2LjA2YjkzMWNiYTE4OTFlN2EuYTZmNGVhMzQyMDQ1YmE1Yy40M2VmOTVlNjkyZjMzMTJkCiAgICAgOTBlMTNkZTY1ZGRmN2EwNgogCi1WTUlOUFNfMjU2KHJlZykKK1ZEUFBTXzI1Nl8zb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgNDkxNWMxOTY0NTJkYmM0ZC5lOWQwN2JhNDI1NTUyYzNlLmJkODI0NzU1ZTg3NWRjMTUuZDJlYmM0NTIwMGYwYjhhNQogICAgIGNhZDUxZjYwZTY2YjM0YWUuNzMzYWQ2MzE5ZDE2ODU4NC5jZjczZjk4NTU5NGE3MmIzLmYwNjdlYmVhMTMxMTJlNzYKQEAgLTM2NTY0LDEyICszNjU2NCwxMiBAQAogICAgIDk0MmM1NmY2YzBlNmI2NmMuZGJiY2RjOGQwMWZkNmM1Yy43MGY4MWU4MzI5ZTAxNWFiLjc2MWEwZTM4NDVlNzc1NjMKICAgICA5NWU5MDJjNjlhYjRiZGQ2CiAgIGFmdGVyCi0gICAgY2FkNTFmNjBlNjZiMzRhZS5kYmJjZGM4ZDlkMTY4NTg0LmNmNzNmOTg1MjllMDE1YWIuZjA2N2ViZWExMzExMmU3NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBjYWQ1MWY2MGU2NmIzNGFlLjczM2FkNjMxOWQxNjg1ODQuY2Y3M2Y5ODU1OTRhNzJiMy5mMDY3ZWJlYTEzMTEyZTc2CiAgICAgNmY2ZTUyYjJkYjI1MWVkNC43YjlhNzhkYjMyYTBiMWQ1Ljk2ZDY0MmM1OTA5NDFiMDEuZGUzMmRiZTg3NmI1ZDlmYwogICAgIDk0MmM1NmY2YzBlNmI2NmMuZGJiY2RjOGQwMWZkNmM1Yy43MGY4MWU4MzI5ZTAxNWFiLjc2MWEwZTM4NDVlNzc1NjMKICAgICA5NWU5MDJjNjlhYjRiZGQ2Ci1WTUlOUFNfMjU2KG1lbSkKK1ZEUFBTXzI1Nl8zb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgMTg2YzMyN2Y5NDI3NmY4MS45NTViMjc5YTMyM2EzNzIxLjcwNmI3ZjMyMjUzYzcxNDYuYjcyNTg5MjljMmI5OWE1YwogICAgIGQ5NmYxYTRkNGQ0YzQ0OTIuY2U0N2MxMDljY2FkZGVhMC4xNzc0ZGJiOGJiNjY3ZGJlLmM5YTk3ZjI1ZjRhYmU2YzEKQEAgLTM2NTc5LDExICszNjU3OSwxMSBAQAogICBhZnRlcgogICAgIDE4NmMzMjdmOTQyNzZmODEuOTU1YjI3OWEzMjNhMzcyMS43MDZiN2YzMjI1M2M3MTQ2LmI3MjU4OTI5YzJiOTlhNWMKICAgICBkOTZmMWE0ZDRkNGM0NDkyLmNlNDdjMTA5Y2NhZGRlYTAuMTc3NGRiYjhiYjY2N2RiZS5jOWE5N2YyNWY0YWJlNmMxCi0gICAgZDk2ZjFhNGQ5NDI3NmY4MS5jZTQ3YzEwOWNjYWRkZWEwLjE3NzRkYmI4YmI2NjdkYmUuYzlhOTdmMjVmNGFiZTZjMQorICAgIGI1YmQzNzFkZTEyZmZiMzMuOWIzYzIxYWYyYmNjZTc5NS5hYWE0NmUwYWRlODk0Y2YxLjAwY2ZmZGUyNWQ0MzM3ODUKICAgICA4ODI0MDNkYzZkZGQ0ZTkwLjU3ODU0MmY3ZWEyMjhlYWIuMDZjNWIzMTRhYWIwOTkwYi5iOWU1ZmVjYzk5MGJjNzU1CiAgICAgNTEzNTdlNGY0MzkyZDNkYwogCi1WTUlOUFNfMjU2KHJlZykKK1ZEUFBTXzI1Nl8zb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgMjIwYzc5ZDdmODYxOTdjNy4yZTZlZmM3NTBjNjFmYWQ2LjYwNmYyMDRmYTYzYzBlOGUuMDdhNDI3YzIzY2U4MjIzNwogICAgIDg5YjZlY2QwNTMwNjRlYzIuODQ2ODlkZDRkYmM4YmIzMS4xMTQ2YjgyM2ZhYTVhNGVjLjg5MGM0NDAxYjAzY2EwYTIKQEAgLTM2NTkxLDEyICszNjU5MSwxMiBAQAogICAgIDhhYjMyNmM2NmMwMTg4OTYuYWI5Y2M4OTM3NzZjNmJkNC5kYmViMDJlYWRjOTQwMWMzLjgxYWM2ZWRkYWI2ODcyZTMKICAgICBhZTdhNzI1NDZiNTkzZDEyCiAgIGFmdGVyCi0gICAgOGFiMzI2YzY1MzA2NGVjMi5hYjljYzg5M2RiYzhiYjMxLmRiZWIwMmVhZmFhNWE0ZWMuODkwYzQ0MDFiMDNjYTBhMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA4OWI2ZWNkMDUzMDY0ZWMyLjg0Njg5ZGQ0ZGJjOGJiMzEuMTE0NmI4MjNmYWE1YTRlYy44OTBjNDQwMWIwM2NhMGEyCiAgICAgZTI3ZmQxYTZmMDBkMzU3OC42NGRlNjNlNGY1MWQ0ZGNjLmM2NTYwNGRkODNlOThjNmYuNjhjYjg4YmIyMWI4ZDI3NwogICAgIDhhYjMyNmM2NmMwMTg4OTYuYWI5Y2M4OTM3NzZjNmJkNC5kYmViMDJlYWRjOTQwMWMzLjgxYWM2ZWRkYWI2ODcyZTMKICAgICBhZTdhNzI1NDZiNTkzZDEyCi1WTUlOUFNfMjU2KG1lbSkKK1ZEUFBTXzI1Nl8zb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgY2MwMjEwMGI3ZDk2ZWYyZi5kYjllZTY5YTYyNmU4MmM3LjM1NmU0YWNjN2NjMmQyNzQuYWI1MWFkYjdhMjMzNDA5NQogICAgIGI3MTBjNWVkZmIyYzQ0NjcuMzI4YjBlOTA2ZmUwNjBiOC5kZTFmNjQ3YzIxMjkzZGQ5Ljk0ZDMwMWFlNzA1MTg1OTEKQEAgLTM2NjA2LDExICszNjYwNiwxMSBAQAogICBhZnRlcgogICAgIGNjMDIxMDBiN2Q5NmVmMmYuZGI5ZWU2OWE2MjZlODJjNy4zNTZlNGFjYzdjYzJkMjc0LmFiNTFhZGI3YTIzMzQwOTUKICAgICBiNzEwYzVlZGZiMmM0NDY3LjMyOGIwZTkwNmZlMDYwYjguZGUxZjY0N2MyMTI5M2RkOS45NGQzMDFhZTcwNTE4NTkxCi0gICAgY2MwMjEwMGJmYjJjNDQ2Ny5kYjllZTY5YTYyNmU4MmM3LmRlMWY2NDdjMjEyOTNkZDkuYWI1MWFkYjdhMjMzNDA5NQorICAgIDRiNzAwYmU4MDQyNmY3ZTUuZWJjNzk4MTIyZWU0NWUxNS44MjdkOTI4ZDgxYjA2YTJmLmYwYmZmYjNkZTM3YjBjNjIKICAgICA2NGVkNjBlN2IxOTBjNWQ2LjYyOWU4MjhlM2MwNWI4ODkuZmQ1MjUwZWNiODYwMTNhMS4xZDVmOTZjZTk2M2MxMGI1CiAgICAgNzYwMGNlY2YyNTIwY2UzNgogCi1WTUlOUFNfMjU2KHJlZykKK1ZEUFBTXzI1Nl8zb2Y0KHJlZykKICAgYmVmb3JlCiAgICAgNTZlZTlmYWIyZGI0ODI5MC5kZDU1NDBkNjIxNzc2YTY2LmYzNWNjNzZmMzVjZmE5YzEuMmI2YjFiODZlMzQ3ZjU1YwogICAgIDFiNzQwNWNlNGE4MzY3NzAuOTQ3MjI1YTE2ZGU2YTFjMC5mYTRkNjQyMWIzY2Y2ZTY4LmU4OTQ2ZTQ1MWU3MWNiOGIKQEAgLTM2NjE4LDEyICszNjYxOCwxMiBAQAogICAgIGMwN2M4MTk5MzAwM2I3NzAuMjlmZmYzN2IwZjhkYjg4NC5kYWY3OTJhOGI0OWY2NGI2LjdlNDY5Y2U3MzFiYTQ2ZjcKICAgICAxMDY2NzBhMDQyZjM2MzhkCiAgIGFmdGVyCi0gICAgYzA3YzgxOTkzMDAzYjc3MC45NDcyMjVhMTBmOGRiODg0LmZhNGQ2NDIxYjQ5ZjY0YjYuZTg5NDZlNDUxZTcxY2I4YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICAxYjc0MDVjZTRhODM2NzcwLjk0NzIyNWExNmRlNmExYzAuZmE0ZDY0MjFiM2NmNmU2OC5lODk0NmU0NTFlNzFjYjhiCiAgICAgMWZlMGZkYTQxNzE5YmE4MS42NDEyOGQzNGI0ZTkyNzExLmQzYmQ1MzEwNTQ5MDQzMmIuMGY5OWM1MTc4NGU4NTI1YgogICAgIGMwN2M4MTk5MzAwM2I3NzAuMjlmZmYzN2IwZjhkYjg4NC5kYWY3OTJhOGI0OWY2NGI2LjdlNDY5Y2U3MzFiYTQ2ZjcKICAgICAxMDY2NzBhMDQyZjM2MzhkCi1WTUlOUFNfMjU2KG1lbSkKK1ZEUFBTXzI1Nl8zb2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgYTFjNmJiMzBkMjlkNjQ0Ni41ODk1OTAxYTMyY2I5YWU4LmJmMDVkMzYzOWNkZDBmNDYuNmI0ODFjNTU2ZTg2MGNiNAogICAgIDBkMzNmYjgyZmVjNjA3NTEuNDQ3NzIzOTFiODAwOWU5Ni4wMmYyYTlkNjc3ZTVlYTgzLmUyZmRlZDg0MWZkMzc4ZDIKQEAgLTM2NjMzLDExICszNjYzMywxMSBAQAogICBhZnRlcgogICAgIGExYzZiYjMwZDI5ZDY0NDYuNTg5NTkwMWEzMmNiOWFlOC5iZjA1ZDM2MzljZGQwZjQ2LjZiNDgxYzU1NmU4NjBjYjQKICAgICAwZDMzZmI4MmZlYzYwNzUxLjQ0NzcyMzkxYjgwMDllOTYuMDJmMmE5ZDY3N2U1ZWE4My5lMmZkZWQ4NDFmZDM3OGQyCi0gICAgYTFjNmJiMzBmZWM2MDc1MS40NDc3MjM5MWI4MDA5ZTk2LmJmMDVkMzYzOWNkZDBmNDYuZTJmZGVkODQxZmQzNzhkMgorICAgIDJmNzdhYjgyZTE3YTA1ZDguZTE2ZTM3NmI1ZjJiMDAyNi5jZDkxZjFjMmJiYjIwMzY2LjliNjAwMTlmNjIxMmUzYmIKICAgICBlNTVlNDgxZDk4YzMxZDA3Ljg5YzZjOTE1YzJkYWZjNDMuZmVhZDI4MTE4NTRmMTYxYi5mMmJkNTUxNGQzY2U4YjFjCiAgICAgNDI2MmUzNGQwZjkzYWFhMQogCi1WTUlOUERfMTI4KHJlZykKK1ZEUFBTXzI1Nl80b2Y0KHJlZykKICAgYmVmb3JlCiAgICAgZTk5YWE5YjhiMmVkN2RmNS4wYWI2NGMzZDNlYWYwOTBiLjk5Y2JkNGZhN2U5OWNkOWEuNzAxM2M5YjFmMGM4ZTFkMAogICAgIDQyYjBhM2MwNTc2OTNmYzUuNzk0YTM1Y2ZmMDRhODYxMC42ZGM4NTQ4NTJlZjJiMGQ2LmZlOTA1MDhkMTgyYTFlYWYKQEAgLTM2NjQ1LDEyICszNjY0NSwxMiBAQAogICAgIDc5YTkxZjU2MThmNTg0ODcuYTk1NGEzZmFlNmJhMjJjYi5kMmRlYTQ0MmRjYTg5Y2IwLmUyZjkwMWE5MTFkN2UwOWMKICAgICBmMDdmMjNjMTFhMzlkZTAzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQyZGVhNDQyZGNhODljYjAuZmU5MDUwOGQxODJhMWVhZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICA0MmIwYTNjMDU3NjkzZmM1Ljc5NGEzNWNmZjA0YTg2MTAuNmRjODU0ODUyZWYyYjBkNi5mZTkwNTA4ZDE4MmExZWFmCiAgICAgYTlmMWNiZDA5YTkyMmViYy4xMGU1N2VjMGM5OWY1MDQxLjYyMGE0NTI0NmY3M2UxYTUuODZlZTNhOTExYTgwOGFlNAogICAgIDc5YTkxZjU2MThmNTg0ODcuYTk1NGEzZmFlNmJhMjJjYi5kMmRlYTQ0MmRjYTg5Y2IwLmUyZjkwMWE5MTFkN2UwOWMKICAgICBmMDdmMjNjMTFhMzlkZTAzCi1WTUlOUERfMTI4KG1lbSkKK1ZEUFBTXzI1Nl80b2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgOGE0YTFiYzU1MWI0M2U0NC4xMDI0OWFiZDZkMWQ3ZGQxLjIyNjMyMTZiNjJhN2I5ZGEuMWE4ZTZjNGIxMjFjMWNhNQogICAgIDhlMjg2NmEyZDE1NGJjOGMuYzhhZTM4NzIzMzk2NTc0Ny41NWRlNzJmZTVhNzNkMTk5Ljk2NjY5OWFiYWM1YjllMzAKQEAgLTM2NjYwLDExICszNjY2MCwxMSBAQAogICBhZnRlcgogICAgIDhhNGExYmM1NTFiNDNlNDQuMTAyNDlhYmQ2ZDFkN2RkMS4yMjYzMjE2YjYyYTdiOWRhLjFhOGU2YzRiMTIxYzFjYTUKICAgICA4ZTI4NjZhMmQxNTRiYzhjLmM4YWUzODcyMzM5NjU3NDcuNTVkZTcyZmU1YTczZDE5OS45NjY2OTlhYmFjNWI5ZTMwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIyNjMyMTZiNjJhN2I5ZGEuOTY2Njk5YWJhYzViOWUzMAorICAgIGQ2ZTM3ZTQyYjYyNDE2MDcuZmY5MmY1ZGYwOWVkNGM5NS4yMDkxMTQ5ZmU5MjkyNjM0LmEyYjQyN2NlNDdmMTVlZmQKICAgICA0MDQ4ZTE5MjFkMzAwNmUwLjEwMWVjZTcxODhhZDk5NjYuNWQ0ODgyMzkyYmQ1NzNkOS45YWMzMTIyMTdlNmI5N2I3CiAgICAgZGFkZTU3MGVlZDU0ODcwYQogCi1WTUlOUERfMTI4KHJlZykKK1ZEUFBTXzI1Nl80b2Y0KHJlZykKICAgYmVmb3JlCiAgICAgYmU1MmYxMDIzMTM4NjhhMy5hNjIzMGE3ZjIxODQ0OTQzLjU2OWNiZDk1NGY2Mjc5NjcuZWFjZTM5YmEzZDg0NzViMQogICAgIGEyNmJkYzZhZTVhNDc2MmUuZTU0MDc1ZjRkZTJkOWE1ZS4yZjU5YzBiNWY3OTkyOTQ0LmExZjBiMzBlM2I0MWU4ZWIKQEAgLTM2NjcyLDEyICszNjY3MiwxMiBAQAogICAgIGRhYmM5NjQyMTA0MjBkYzguNWY2ZjAyMjVmNmFjNWE2Ni4wNWMwZjA5ZDYwYmFlOTQwLjAxMzhlNWRhNjgxNzEwMzAKICAgICA2MWY2OTQyY2QwNDczYzkzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA1YzBmMDlkNjBiYWU5NDAuYTFmMGIzMGUzYjQxZThlYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBhMjZiZGM2YWU1YTQ3NjJlLmU1NDA3NWY0ZGUyZDlhNWUuMmY1OWMwYjVmNzk5Mjk0NC5hMWYwYjMwZTNiNDFlOGViCiAgICAgZTI3NTE0YjFhNjIzZWY1Ny5kYTZhOWVkYzcyMzZiNzVhLmY1YTFkMjNmMWZkY2U1YTguNWY3YTZlMWY0MDE5ODdiMQogICAgIGRhYmM5NjQyMTA0MjBkYzguNWY2ZjAyMjVmNmFjNWE2Ni4wNWMwZjA5ZDYwYmFlOTQwLjAxMzhlNWRhNjgxNzEwMzAKICAgICA2MWY2OTQyY2QwNDczYzkzCi1WTUlOUERfMTI4KG1lbSkKK1ZEUFBTXzI1Nl80b2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgNWM4MGY4ZmY5M2I1Y2EwNy5lNjhiNWM4YmJlOGIwZDMwLjUxMTkxY2JhODg5YTNmYWMuYmMwMjE1M2Q1OGJjNzFiNwogICAgIGNlYTE4YjQxY2U2ZTc0YjcuNjIzMDY0Zjc0YzhkMmEzOS44ZDM1Njg4NzQ0MGMyNDU5Ljc0YjIzYzhhYTM3MGI4YmEKQEAgLTM2Njg3LDExICszNjY4NywxMSBAQAogICBhZnRlcgogICAgIDVjODBmOGZmOTNiNWNhMDcuZTY4YjVjOGJiZThiMGQzMC41MTE5MWNiYTg4OWEzZmFjLmJjMDIxNTNkNThiYzcxYjcKICAgICBjZWExOGI0MWNlNmU3NGI3LjYyMzA2NGY3NGM4ZDJhMzkuOGQzNTY4ODc0NDBjMjQ1OS43NGIyM2M4YWEzNzBiOGJhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhkMzU2ODg3NDQwYzI0NTkuYmMwMjE1M2Q1OGJjNzFiNworICAgIDkzMjdjYmRjOWM3ZGY3ZDAuYWFmNWE5ZjI1N2QxYTE5MC5lZDhmNjI3ODQ1MGVjMzk4LjhhMWU2M2YwZGM2MmZiZjQKICAgICA4OGRjMzNiZTFhZWYwZjdlLjE5MjcyOGU4N2FlNWFlZTAuNGVmMzg2N2FhN2FkZDk5Ni41YjkwODZkYjlmMWM3NTEyCiAgICAgNDE1NTlmYjc4OTJjNjRjMAogCi1WTUlOUERfMTI4KHJlZykKK1ZEUFBTXzI1Nl80b2Y0KHJlZykKICAgYmVmb3JlCiAgICAgOTliOWFjZjEzNjFlMDJhOS44NzhkM2ZkMjYzY2Y3OGVjLjBkMTJkYjQ2NTI1NDhkZDYuOGMyYzUxNzc4N2Y0MjI3ZQogICAgIGJmMDdhOGYzNDE3YzhiN2EuNmQwNjZjMDQ5NDI5ZWQ0Ny5lMTAyYzA3NjdhYWI3OTFlLjgzMDgzZTVjMDFmMDU5N2QKQEAgLTM2Njk5LDEyICszNjY5OSwxMiBAQAogICAgIGU2OTU1ZDAzZTJiMjUyODIuNWU3ZjE2NzIxYzdkZWQ3Mi45ODIwMGUwMDJjM2U2YjUyLjBjZDQ2ZTkwMzAzNDg0NmYKICAgICA1NjVkYWFiNTFlOTVlZmJhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUxMDJjMDc2N2FhYjc5MWUuODMwODNlNWMwMWYwNTk3ZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBiZjA3YThmMzQxN2M4YjdhLjZkMDY2YzA0OTQyOWVkNDcuZTEwMmMwNzY3YWFiNzkxZS44MzA4M2U1YzAxZjA1OTdkCiAgICAgMTA4ZDhmMmI0NmQ0M2RkZS4xNjEyMzU0MGM4MGEyYmJhLmYwNDNkMmU1OGU3NWFmNjMuMGY1MWM5MTYzMGFjM2JiZgogICAgIGU2OTU1ZDAzZTJiMjUyODIuNWU3ZjE2NzIxYzdkZWQ3Mi45ODIwMGUwMDJjM2U2YjUyLjBjZDQ2ZTkwMzAzNDg0NmYKICAgICA1NjVkYWFiNTFlOTVlZmJhCi1WTUlOUERfMTI4KG1lbSkKK1ZEUFBTXzI1Nl80b2Y0KG1lbSkKICAgYmVmb3JlCiAgICAgYzliOGY4NzMxNWRhMzljYi45ZTZkMGZlOWIwYTEwNzEyLjIxMTc4Yjg2YWI4ZWYxOWIuMzRlNjZlMzJlZDkyZTk5NgogICAgIDQxYjBkNGI1MzIwZjFlY2YuOTQ1ZmEwNDg0ZDJkOTgzOS4zYmE4MTA2OTkxNGFmMTYwLjFmZTFmMGU2NmZmZTY0ZGMKQEAgLTM2NzE0LDExICszNjcxNCwxMSBAQAogICBhZnRlcgogICAgIGM5YjhmODczMTVkYTM5Y2IuOWU2ZDBmZTliMGExMDcxMi4yMTE3OGI4NmFiOGVmMTliLjM0ZTY2ZTMyZWQ5MmU5OTYKICAgICA0MWIwZDRiNTMyMGYxZWNmLjk0NWZhMDQ4NGQyZDk4MzkuM2JhODEwNjk5MTRhZjE2MC4xZmUxZjBlNjZmZmU2NGRjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIxMTc4Yjg2YWI4ZWYxOWIuMWZlMWYwZTY2ZmZlNjRkYworICAgIDlhMTNiYTY3OTA0MTVhZjIuMjRiODBjOGI1NGUyNDBhNC44OGZjMjIwNWViYmJhYWVlLmI3NWQ4ZjhhNGUwZDE5Y2YKICAgICBiMGFiMjY3NTRjN2JhODVmLmFhYzM0ZjIwNjI0ZDNjZmUuZTRlMDNjNDhkNWYwZDc3MC41NmE2NDc4OTI1NGM0NDFjCiAgICAgNWEwODE0NGY5MDQ2MjA2ZgogCi1WTUlOUERfMjU2KHJlZykKK1ZIQUREUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMWRjZmYzNDgyYzg3ZWE3My41ZjQ2OTVjYjgxYzljNjQyLjgyY2U2NjcyMTJmOWM4ZjQuMmExZmRhMWM2YWYyMzUxMwogICAgIGZkNDZkZmUwOTU5Y2RlZDUuODNhZTgyNTY0YzM4NmRjOS4wODIzNGJlZDAxNzIxZjMyLjM4ODc3ODZmYzZjZjgwMDMKQEAgLTM2NzI2LDEyICszNjcyNiwxMiBAQAogICAgIDgwNzdjZTllM2I2ZjMzNjIuOTkxN2M2YjYxMmE2NGQ2ZC44ZWRmNzQwZjBhZmQyMjM0LjE5ZmVhNTNmNDU0OGNjNzcKICAgICBhNGE1MmM5NGEwZmM0NjU1CiAgIGFmdGVyCi0gICAgZmQ0NmRmZTA5NTljZGVkNS45OTE3YzZiNjEyYTY0ZDZkLjhlZGY3NDBmMGFmZDIyMzQuMTlmZWE1M2Y0NTQ4Y2M3NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYTQ1N2Y2M2U5ZTM5MjJjLjA4MjM0ZmI1YzZjZjgwMDMKICAgICBmZDQ2ZGZlMDk1OWNkZWQ1LjgzYWU4MjU2NGMzODZkYzkuMDgyMzRiZWQwMTcyMWYzMi4zODg3Nzg2ZmM2Y2Y4MDAzCiAgICAgNTRiYWQ0ODM2NTEwMzg0MS5mN2IwNjkwMGM4ZDM1YzFlLjk4MTBmY2ZlY2E0NTdmNjMuZTllMzkyMmMwNjkzNzQ2YgogICAgIDgwNzdjZTllM2I2ZjMzNjIuOTkxN2M2YjYxMmE2NGQ2ZC44ZWRmNzQwZjBhZmQyMjM0LjE5ZmVhNTNmNDU0OGNjNzcKICAgICBhNGE1MmM5NGEwZmM0NjU1Ci1WTUlOUERfMjU2KG1lbSkKK1ZIQUREUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNjVhNGEzMTczM2JiOWIyZi5kYmM5Yzk5YmIxNDYwY2U0LjQ0YjExNjY1NDViZWZkZTMuNDZkZGIwOGQ1YzI3NDQ1MAogICAgIDNhYzc4N2I0MTg5MDhhMzEuYzJmY2MyZTg2MzIwZmY3NS5kNDQ4ZDRmODdkMjYyOGFjLjFiNTZhYWU1NWM0ZTIzNjQKQEAgLTM2NzQxLDExICszNjc0MSwxMSBAQAogICBhZnRlcgogICAgIDY1YTRhMzE3MzNiYjliMmYuZGJjOWM5OWJiMTQ2MGNlNC40NGIxMTY2NTQ1YmVmZGUzLjQ2ZGRiMDhkNWMyNzQ0NTAKICAgICAzYWM3ODdiNDE4OTA4YTMxLmMyZmNjMmU4NjMyMGZmNzUuZDQ0OGQ0Zjg3ZDI2MjhhYy4xYjU2YWFlNTVjNGUyMzY0Ci0gICAgM2FjNzg3YjQxODkwOGEzMS5kYmM5Yzk5YmIxNDYwY2U0LmQ0NDhkNGY4N2QyNjI4YWMuMWI1NmFhZTU1YzRlMjM2NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NWViNDM3YzVjMjc0NDUwLjdkMjYyOGFjNWM0ZTIzNjQKICAgICA4Y2E4ODJlZDRlYWMyMTYwLmE1MzQ5YjFlZWQwZTIyNmUuMTJhMThhNzk2ZjE3ZGRlNS45MWU4Y2RjZmQ5YzMwMjIzCiAgICAgZTk5OWVkM2E4ZDJhN2MyNgogCi1WTUlOUERfMjU2KHJlZykKK1ZIQUREUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgY2VmNWJkMmU1ZmJlYTFkMC5jMmZlOTI2MGQ3MGM0MmU0LjU4ZDE3M2UwZmQzYWM5MmYuNzhmYTdhNDA2MGI4ZTBhZQogICAgIDllNDkzNzE3ZWMwY2FlY2UuN2FhOWZlOWUyMmIyZWI0MS4wNzdmMzlhMWI5OTk3YmFlLjM0ODBjOTliYzZkOTRlNzkKQEAgLTM2NzUzLDEyICszNjc1MywxMiBAQAogICAgIDZiMDMxZTc4YTUwMzZmNzQuZTQyOWRiMjc3NDAxYzgzNS5jOTNlN2NkMGE2MjJlYjk0LjFhNDg3MWJkNjNjZDU5YzcKICAgICBmYzIwYzI1ZGQyYjc2ZmEyCiAgIGFmdGVyCi0gICAgOWU0OTM3MTdlYzBjYWVjZS5lNDI5ZGIyNzc0MDFjODM1LmM5M2U3Y2QwYTYyMmViOTQuMWE0ODcxYmQ2M2NkNTljNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZGI4NzI5NmJlODdlMjczLmI5OTk3YmFlYzZkOTRlNzkKICAgICA5ZTQ5MzcxN2VjMGNhZWNlLjdhYTlmZTllMjJiMmViNDEuMDc3ZjM5YTFiOTk5N2JhZS4zNDgwYzk5YmM2ZDk0ZTc5CiAgICAgYjRkZTU5NjFkMDlmZGZjYi45MjczNDM5MjRkYWFkOWEzLjBlOGFlOGNkYmRiODcyOTYuMjAwMWYyNzZiZTg3ZTI3MwogICAgIDZiMDMxZTc4YTUwMzZmNzQuZTQyOWRiMjc3NDAxYzgzNS5jOTNlN2NkMGE2MjJlYjk0LjFhNDg3MWJkNjNjZDU5YzcKICAgICBmYzIwYzI1ZGQyYjc2ZmEyCi1WTUlOUERfMjU2KG1lbSkKK1ZIQUREUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTQ1NjYxNDAyNzUyZGYyZi4yMTAzODNjODBhYzU5Yzc1LjRlOTY0NDRiYjJjMjc0MjQuOTVlN2YxMTYxMDYzMjI1MwogICAgIGVjYjZjYjU0N2NhOTY2OWIuMzAyOTgyYmU5ODcwOWY3OS5hYTg4ZjllOTIzZmE5ODliLmNjZDA0MzBiOTYwODUzODAKQEAgLTM2NzY4LDExICszNjc2OCwxMSBAQAogICBhZnRlcgogICAgIGE0NTY2MTQwMjc1MmRmMmYuMjEwMzgzYzgwYWM1OWM3NS40ZTk2NDQ0YmIyYzI3NDI0Ljk1ZTdmMTE2MTA2MzIyNTMKICAgICBlY2I2Y2I1NDdjYTk2NjliLjMwMjk4MmJlOTg3MDlmNzkuYWE4OGY5ZTkyM2ZhOTg5Yi5jY2QwNDMwYjk2MDg1MzgwCi0gICAgZWNiNmNiNTQ3Y2E5NjY5Yi4yMTAzODNjODBhYzU5Yzc1LmFhODhmOWU5MjNmYTk4OWIuY2NkMDQzMGI5NjA4NTM4MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZTk2NDQ0Yjk1ZTdkNGIyLmFhODhmNWZmY2NkMDQzMGIKICAgICBkMDI0ZWRiYjljYmRhOWJmLmNkMWI0MzQ3YTViMTFlM2QuYWMyNzM4NDMxMWZiM2JkMy5lZTk2NzBiMzY3YWM5MWQzCiAgICAgOTEwYTQyM2VlYmMyMTc1MQogCi1WTUlOUERfMjU2KHJlZykKK1ZIQUREUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMGZlZmUxMjhmYjZkODZlYy4yM2M5OWVlNzllOTFkY2NmLjEzN2VmY2I0NWM2MDExNTQuMDk2Y2JhZDdjNWRlMzFlYwogICAgIGM2OTE0YWRjMzMzNjFiNTEuODhjOTA4ZjIxMjUxMTY2ZS4yMjM3NDE3NmFjMjljYzFmLmNhNjU3ODk2MWM2NzkxM2UKQEAgLTM2NzgwLDEyICszNjc4MCwxMiBAQAogICAgIDRjM2I2NjU3OGQ1N2E2MjguZjMwNWZjNWFiZWM3OGUwNi4wZmRmNWJhOThkMzU4OTdmLmUzYTI5ODQxMjU5Yzc5M2IKICAgICBmNDdmZjMwNTBmNWY3YTNlCiAgIGFmdGVyCi0gICAgYzY5MTRhZGMzMzM2MWI1MS5mMzA1ZmM1YWJlYzc4ZTA2LjBmZGY1YmE5OGQzNTg5N2YuZTNhMjk4NDEyNTljNzkzYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41ODk0MGNmOWM5ZGVlZTZhLmFjMjljYzE0Y2E2NTc4OTYKICAgICBjNjkxNGFkYzMzMzYxYjUxLjg4YzkwOGYyMTI1MTE2NmUuMjIzNzQxNzZhYzI5Y2MxZi5jYTY1Nzg5NjFjNjc5MTNlCiAgICAgMTEzYjc3YzgzMGFiMTIyYy5kOWVlYTljYTEzMGExM2M3LjU4OTQwY2Y5MzM5NjhhNDkuYzlkZWVlNmEzM2EyMTRmNAogICAgIDRjM2I2NjU3OGQ1N2E2MjguZjMwNWZjNWFiZWM3OGUwNi4wZmRmNWJhOThkMzU4OTdmLmUzYTI5ODQxMjU5Yzc5M2IKICAgICBmNDdmZjMwNTBmNWY3YTNlCi1WTUlOUERfMjU2KG1lbSkKK1ZIQUREUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZDgzZjdhYTQwY2ZhZDQyYS5kM2RiMTNmNWU3YzcxNWYxLmIyZGE3ZDhmMmU5NTQ1NTkuYTQ2NjI5ZjI1NTkyMDI2YwogICAgIDZjYWZhOTA5Mzk3NjQzMmIuMDI2ODc4MGVkOTg1OTgzNS5mMjM5YTk1MzdmN2ZmMWU5Ljc0NzM3MjQwMjczNzM0YmQKQEAgLTM2Nzk1LDExICszNjc5NSwxMSBAQAogICBhZnRlcgogICAgIGQ4M2Y3YWE0MGNmYWQ0MmEuZDNkYjEzZjVlN2M3MTVmMS5iMmRhN2Q4ZjJlOTU0NTU5LmE0NjYyOWYyNTU5MjAyNmMKICAgICA2Y2FmYTkwOTM5NzY0MzJiLjAyNjg3ODBlZDk4NTk4MzUuZjIzOWE5NTM3ZjdmZjFlOS43NDczNzI0MDI3MzczNGJkCi0gICAgZDgzZjdhYTQwY2ZhZDQyYS5kM2RiMTNmNWU3YzcxNWYxLmYyMzlhOTUzN2Y3ZmYxZTkuYTQ2NjI5ZjI1NTkyMDI2YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMmQ5ZTg0YTU1OTIwMjZjLjdmN2ZmMWU5NzQ3MzcyNDAKICAgICAwZmNmZjBkNTkxNDY0ZjFhLmM3Nzk1ZTYyZjcyMWQyZDguNjZjNGVlM2MzN2Q4MWY3Ny4zMDUyNjc5YjVjOGZhZTNhCiAgICAgZDViYzBhODBmNjU4NmZiZQogCi1WTU9WSFBTXzEyOF9TdG9yZUZvcm0ocmVnKQorVkhBRERQU18yNTYocmVnKQogICBiZWZvcmUKICAgICAyNGRjMTgxYjBhOWJkODU1LmQ3MTcwMDE0ZjRiMjY0NjAuMTY5NGQ3NzQ1YjE2ZmY5MC41MTg4MDAzOGQ1NWYxOGNiCiAgICAgN2EwMDhkZDYzNWU0MjRhYy5iZTNmYThjOWY3MzA3ZDZiLjdjY2RmYWIyYzc4YTMyNzIuMmQwNmFkNzVjNDMyZjgwZgpAQCAtMzY4MDcsMTIgKzM2ODA3LDEyIEBACiAgICAgYTY3ZjlkNjEzZWI1NTc0OS41OTVkYjA0NTRiOTNhZjdmLjAyYzQyYTVlMjkyMTk4NjIuMjg2MGM0NWUwN2VkNWMxMQogICAgIGZmZDQyN2UzOTNlZTU4MjgKICAgYWZ0ZXIKLSAgICAyNGRjMTgxYjBhOWJkODU1LmQ3MTcwMDE0ZjRiMjY0NjAuMTY5NGQ3NzQ1YjE2ZmY5MC41MTg4MDAzOGQ1NWYxOGNiCisgICAgMzE3MjY2MWZiNWNjNTg2Ny43YTAwOGRkNmY3MzA3ZDZiLmQ3OWRlYjhmZDYwYTZmZGQuN2NjZGZhYjJjNDMyZjgwZgogICAgIDdhMDA4ZGQ2MzVlNDI0YWMuYmUzZmE4YzlmNzMwN2Q2Yi43Y2NkZmFiMmM3OGEzMjcyLjJkMDZhZDc1YzQzMmY4MGYKICAgICAzMTcyNjYxZjEyYmU5MDZmLmEwMTI2NGUwYjVjYzU4NjcuNTc2ZWMxODZkODBhYTYyOS5kNjBhNmZkZDIxNWQ3YjZjCiAgICAgYTY3ZjlkNjEzZWI1NTc0OS41OTVkYjA0NTRiOTNhZjdmLjAyYzQyYTVlMjkyMTk4NjIuMjg2MGM0NWUwN2VkNWMxMQogICAgIGZmZDQyN2UzOTNlZTU4MjgKLVZNT1ZIUFNfMTI4X1N0b3JlRm9ybShtZW0pCitWSEFERFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDM3MzExNDU4ZTA2YTJiZGQuMzU3MzMxMDg1NDU1YjdlNy5jNWVjMDllNWQ0OTAzZmUwLmQ4MWIzMGE1NTY1YjQ0YzkKICAgICBhYjQ0MDhhOTBiNmY5MDVkLjNhOWExYjgwZjEyYmVhZjQuYzA4YmU5YWE2Y2NmYzNiNS4zN2JmY2ZjN2ZjNDRlNjA5CkBAIC0zNjgyMCwxMyArMzY4MjAsMTMgQEAKICAgICBiY2JkZjE5MDY5NDIwMzZlLjE2YjBlNTkzMmVhNmJiMGUuZDIyOTM0NTgzYjQ1OWE2ZS5mYzFkYzk0YzIyNTZmYmM2CiAgICAgMWE3MDFjODdkOTk1ZTU5YgogICBhZnRlcgotICAgIDM3MzExNDU4ZTA2YTJiZGQuMzU3MzMxMDg1NDU1YjdlNy5jNWVjMDllNWQ0OTAzZmUwLmMwOGJlOWFhNmNjZmMzYjUKKyAgICAzNzMxMTQ1OGUwNmEyYmRkLjM1NzMzMTA4NTQ1NWI3ZTcuYzVlYzA5ZTVkNDkwM2ZlMC5kODFiMzBhNTU2NWI0NGM5CiAgICAgYWI0NDA4YTkwYjZmOTA1ZC4zYTlhMWI4MGYxMmJlYWY0LmMwOGJlOWFhNmNjZmMzYjUuMzdiZmNmYzdmYzQ0ZTYwOQotICAgIDM5ZGE3ZGMyMmYwOTQ0ZDQuMTEzZjU4MzViMGMyMmQxZC4yNjA2Y2Y4MjMwNWRmODJiLjc5ZmMwMzMwYjc2OWI5Y2YKKyAgICBlMDZhMmJkZDU0NTViN2U3LmFiNDQwOGE5ZjEyYmVhZjQuZDQ5MDNmZTBkODBkN2M1OC42Y2NmYzNiNWZjNDRlNjA5CiAgICAgYmNiZGYxOTA2OTQyMDM2ZS4xNmIwZTU5MzJlYTZiYjBlLmQyMjkzNDU4M2I0NTlhNmUuZmMxZGM5NGMyMjU2ZmJjNgogICAgIDFhNzAxYzg3ZDk5NWU1OWIKIAotVk1PVkhQU18xMjhfU3RvcmVGb3JtKHJlZykKK1ZIQUREUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMzEzZmY4NGQ3OWI0YjZmOS4xMGJhZGZmZGQ0Mjg4ODU1LmE1MzdiZDA2MDY2NGQxNzIuYTJiZjk1MThhYTkzNjVhOQogICAgIDliZDc1OTBiOWQzZmE4OGQuMTE5Y2M0ZjY4Y2M3OTFiOC4xOTIxZGNmYWQ1ODdhYmY2LjcxOTU2ZmFkOTk1NDE0MDkKQEAgLTM2ODM0LDEyICszNjgzNCwxMiBAQAogICAgIGRjOTI5YjFiZTNjNWUyMDYuODk0MzVmM2U1NjVjMTk5ZC4yNTRlZTAxNmM1MmU5YTBjLjdiMzI3YjBjNjQ1YzExZTYKICAgICA2ZjhmYTVhYzc5YmNkN2JiCiAgIGFmdGVyCi0gICAgMzEzZmY4NGQ3OWI0YjZmOS4xMGJhZGZmZGQ0Mjg4ODU1LmE1MzdiZDA2MDY2NGQxNzIuYTJiZjk1MThhYTkzNjVhOQorICAgIGUyYzBmODAzYWUyOWQ4YzEuOWQ1YTkzYWUxMTljOTMxMi5kMGJhM2VkYzIzOTM2NjM1LmQ1ODdhYmY2NzE5NTZmYWQKICAgICA5YmQ3NTkwYjlkM2ZhODhkLjExOWNjNGY2OGNjNzkxYjguMTkyMWRjZmFkNTg3YWJmNi43MTk1NmZhZDk5NTQxNDA5CiAgICAgYjU4NDNiMmJlMmMwZjgwMy45YTMxMWE2OGFlMjlkOGMxLmQwYmEzZWRjMzY5Yzg1NDUuMWI3ODNkMDUyMzkzNjViOQogICAgIGRjOTI5YjFiZTNjNWUyMDYuODk0MzVmM2U1NjVjMTk5ZC4yNTRlZTAxNmM1MmU5YTBjLjdiMzI3YjBjNjQ1YzExZTYKICAgICA2ZjhmYTVhYzc5YmNkN2JiCi1WTU9WSFBTXzEyOF9TdG9yZUZvcm0obWVtKQorVkhBRERQU18yNTYobWVtKQogICBiZWZvcmUKICAgICBkMjVkMzhkMjdkYmU3MTY2LjZhNGM3NDQ1M2RkYWEyNDMuYjlhMDBlNjM5ZjZjMTI3Ny43NDI5YmQxNjFmYzkyN2Y3CiAgICAgN2Y2N2FmNmE4ZDZlOWMxMC5iYzAwYzIxNzhiODk3MzY1LjA1MTJhM2M1YTU2MzdkN2MuMTk5NmQxNDZlMGY5NjhiMQpAQCAtMzY4NDcsMTMgKzM2ODQ3LDEzIEBACiAgICAgMmI1ZDM5YTEzZTBhOTQxOC4xYzgxYWU2MDc1ZWIzYTBiLjY2Njc3MGVkNWIzYzliYjYuZDQ1YThlZWIwNDRhZjU0NAogICAgIGEzNDgzMDM3YTA4M2I5NzUKICAgYWZ0ZXIKLSAgICBkMjVkMzhkMjdkYmU3MTY2LjZhNGM3NDQ1M2RkYWEyNDMuYjlhMDBlNjM5ZjZjMTI3Ny4wNTEyYTNjNWE1NjM3ZDdjCisgICAgZDI1ZDM4ZDI3ZGJlNzE2Ni42YTRjNzQ0NTNkZGFhMjQzLmI5YTAwZTYzOWY2YzEyNzcuNzQyOWJkMTYxZmM5MjdmNwogICAgIDdmNjdhZjZhOGQ2ZTljMTAuYmMwMGMyMTc4Yjg5NzM2NS4wNTEyYTNjNWE1NjM3ZDdjLjE5OTZkMTQ2ZTBmOTY4YjEKLSAgICA1NDc4ODY2MWM0ZDkxNGU4LjJlZjg4MWZjNmE2MDkyMTkuNGI2NjlhNGY4NTRmMTdkOC42ZmUzMTgxNGEzNGI5OWU2CisgICAgN2RiZTcxNjY2YTRjNzQ0NS43ZjY3YWY2YWJjMDBjMjE3LmI5YTAwZTYzNzQyOWJkMTYuYTU2MzdkN2NlMGY5NjhiMQogICAgIDJiNWQzOWExM2UwYTk0MTguMWM4MWFlNjA3NWViM2EwYi42NjY3NzBlZDViM2M5YmI2LmQ0NWE4ZWViMDQ0YWY1NDQKICAgICBhMzQ4MzAzN2EwODNiOTc1CiAKLVZNT1ZIUFNfMTI4X1N0b3JlRm9ybShyZWcpCitWSEFERFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDM3ZjlmOTY0MTI4MTIxMjUuZTJlMjQ0MTgxODBkZDljYy5lM2U3NDRhZjQ5YjRhOWU2LjMxZTNhMDhiNDIzNWM2NDIKICAgICBlZWI4ZTVkZWY3ZDA2ODAxLjUzZDMyNGIxNmVlZjlmMzEuZGQ3NjNmNTU4MTQ5MTk1Ny44YWE1YTYxNTU2NDY1NGFhCkBAIC0zNjg2MSwxMiArMzY4NjEsMTIgQEAKICAgICAzMTk0MTc2YTg4OTI4NmVjLmQ3Mjk1MGY5ZmM3ZTlkYmQuZGQzZTU0NTY4ZTA2ZWVhYS41MTI5MjU5ZTc3ZTE4OWI4CiAgICAgNzk4NDk1NzViYzgzYTdiNwogICBhZnRlcgotICAgIDM3ZjlmOTY0MTI4MTIxMjUuZTJlMjQ0MTgxODBkZDljYy5lM2U3NDRhZjQ5YjRhOWU2LjMxZTNhMDhiNDIzNWM2NDIKKyAgICBlYmZkY2JiNTVkMTU5ZTdhLmY3ZDA2ODJmNmVlZjlmMzEuNjc3YTliYmU0Yjc4ZmU3OC5kZDc2M2Y1NTU2NDY1NGFhCiAgICAgZWViOGU1ZGVmN2QwNjgwMS41M2QzMjRiMTZlZWY5ZjMxLmRkNzYzZjU1ODE0OTE5NTcuOGFhNWE2MTU1NjQ2NTRhYQogICAgIDIzZDNmMDEyZWJmZGNiYjUuNWNmYzU0NTg1YmJiYTI3My42NzdhOWJiZWI5MzZjNjBhLjRiNzhmZTc4YjQ3YjAxMTgKICAgICAzMTk0MTc2YTg4OTI4NmVjLmQ3Mjk1MGY5ZmM3ZTlkYmQuZGQzZTU0NTY4ZTA2ZWVhYS41MTI5MjU5ZTc3ZTE4OWI4CiAgICAgNzk4NDk1NzViYzgzYTdiNwotVk1PVkhQU18xMjhfU3RvcmVGb3JtKG1lbSkKK1ZIQUREUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOWQ1NWNjZTc5ZTZlMTg0MS43NjQ5NTU1MzZkMWVkNTUzLmEyMjU5NDgwNmM0MjRkM2MuOWIwZjY3OGE5YzQ1Y2JlMwogICAgIDliNjg0NmUyM2FhYzk3ODEuNGMzY2E2M2EzMzJhZjM5Ni45N2JkOWRkOWM3MTY2ZTFiLmZkM2FjZmM0N2U3ZjlhNjIKQEAgLTM2ODc0LDEzICszNjg3NCwxMyBAQAogICAgIDkwODNlZjIwMGU1N2IzZDUuMWYwZjcxYWVkOGY4OGY1ZC43M2YxZWJiMWIwMTdmMmFjLjFkYzk4ZWZlMmYxNmZkZTEKICAgICA5M2M1ZGVkNjM3OGEwOTM5CiAgIGFmdGVyCi0gICAgOWQ1NWNjZTc5ZTZlMTg0MS43NjQ5NTU1MzZkMWVkNTUzLmEyMjU5NDgwNmM0MjRkM2MuOTdiZDlkZDljNzE2NmUxYgorICAgIDlkNTVjY2U3OWU2ZTE4NDEuNzY0OTU1NTM2ZDFlZDU1My5hMjI1OTQ4MDZjNDI0ZDNjLjliMGY2NzhhOWM0NWNiZTMKICAgICA5YjY4NDZlMjNhYWM5NzgxLjRjM2NhNjNhMzMyYWYzOTYuOTdiZDlkZDljNzE2NmUxYi5mZDNhY2ZjNDdlN2Y5YTYyCi0gICAgNGQ4ODdkNTFhYjRiZTJhNC4xMWJhMDY4OTc4NDQxZDYwLjkzYmRlNmYwMmEwM2JiODcuNWYwOTg4NzJkMDQxOTdkMworICAgIDllOTFjNWJkNzY0OTU1N2IuM2FhYzk3ODE0YzNjYTYzYS42YzQyNGQzYzljNjlhNWM2LmM3MTY2ZTFiN2U1MGU2NzEKICAgICA5MDgzZWYyMDBlNTdiM2Q1LjFmMGY3MWFlZDhmODhmNWQuNzNmMWViYjFiMDE3ZjJhYy4xZGM5OGVmZTJmMTZmZGUxCiAgICAgOTNjNWRlZDYzNzhhMDkzOQogCi1WTU9WTlREUV8yNTYocmVnKQorVkhBRERQRF8xMjgocmVnKQogICBiZWZvcmUKICAgICAxZDRiNzM2NTgyMmFmNzg3LjQwMjMxNjNhN2VkYmM2NDEuZDM4NmU0MTRlZWQwODQzYi4xMTI1MjgwOTc2NWRjY2I1CiAgICAgMTZhNTQ4MTdhZjgxMDM3Ni4zYTM1NzA4ZTE3ZTNkOTE0LjhhNmQ1YTI3NTc1YTM5YTQuNGEyNTE5ZTI5OGUyMDhjZgpAQCAtMzY4ODgsMTIgKzM2ODg4LDEyIEBACiAgICAgY2EwOWE4OTQxOTg2NjNlOS43N2RmYWI4YzM3YjBlYTlkLjZjYjYzZjA0OGZiMmQzYzguZmViODA5Y2M1ZGQ2OTFlNQogICAgIDMwZTNmZmIzMzg1ZDU3MzgKICAgYWZ0ZXIKLSAgICAxZDRiNzM2NTgyMmFmNzg3LjQwMjMxNjNhN2VkYmM2NDEuZDM4NmU0MTRlZWQwODQzYi4xMTI1MjgwOTc2NWRjY2I1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZhYmMzYjJhMzBiMTYwMjYuNGEyNTE5ZTI5OGUyMDhjZgogICAgIDE2YTU0ODE3YWY4MTAzNzYuM2EzNTcwOGUxN2UzZDkxNC44YTZkNWEyNzU3NWEzOWE0LjRhMjUxOWUyOThlMjA4Y2YKICAgICBkYzIxNWM1ODU3MWM2OGIzLjU4ODU3OTA1ZjY3Y2E2NzkuOWUwZWNmNTNhZTIyZWE0NC5mYWJjM2IyYTMwYjE2MDI2CiAgICAgY2EwOWE4OTQxOTg2NjNlOS43N2RmYWI4YzM3YjBlYTlkLjZjYjYzZjA0OGZiMmQzYzguZmViODA5Y2M1ZGQ2OTFlNQogICAgIDMwZTNmZmIzMzg1ZDU3MzgKLVZNT1ZOVERRXzI1NihtZW0pCitWSEFERFBEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDZkMGE5OWNkZTA1MzZlNGMuM2NhYTJhMzc4ZTRiMmZjNS43MzBlODQwZmY1OGU2MWFiLjUxYjFhNmE2OTc5ODJmZGMKICAgICA5MWY5NTQwNTZlYzM5MTRkLjhkNGZkZGFlNTVmNzBhZjMuMjhlMDdmN2I0YzFmYzZkMC5hNzRiMDFhNTYyNjAzYjJiCkBAIC0zNjkwMSwxMyArMzY5MDEsMTMgQEAKICAgICBmZTVlMTk3ZmIyNDNlZGM1LjQxZGFjNmM0NDIzN2Q4ZjMuMmQ5OGNiYmEzODhmNGQwZS4xOThiODA2YmFlYzI1MjJjCiAgICAgZWRjYTlkMGE2ODc2ZDYzNgogICBhZnRlcgorICAgIDZkMGE5OWNkZTA1MzZlNGMuM2NhYTJhMzc4ZTRiMmZjNS43MzBlODQwZmY1OGU2MWFiLjUxYjFhNmE2OTc5ODJmZGMKICAgICA5MWY5NTQwNTZlYzM5MTRkLjhkNGZkZGFlNTVmNzBhZjMuMjhlMDdmN2I0YzFmYzZkMC5hNzRiMDFhNTYyNjAzYjJiCi0gICAgOTFmOTU0MDU2ZWMzOTE0ZC44ZDRmZGRhZTU1ZjcwYWYzLjI4ZTA3ZjdiNGMxZmM2ZDAuYTc0YjAxYTU2MjYwM2IyYgotICAgIDc4N2NhYTQ3MDBiYTdkNjcuMWI0NmJkNjMwNzE3MmUxZS43MjFmMThiYTU5NzFkNjM4LmNiZDA0YjZlOGI5NDMzNjIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzMwZTg0MGZmNThlNjFhYi4yOGUwN2Y3YjQ1NWY1ZDc3CiAgICAgZmU1ZTE5N2ZiMjQzZWRjNS40MWRhYzZjNDQyMzdkOGYzLjJkOThjYmJhMzg4ZjRkMGUuMTk4YjgwNmJhZWMyNTIyYwogICAgIGVkY2E5ZDBhNjg3NmQ2MzYKIAotVk1PVk5URFFfMjU2KHJlZykKK1ZIQUREUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYTNkNzljYjU1NDNhZjgyYy5mZjZjMWQ5YTlmNmE5ZjkzLjVhNTZmNDNiYTJlMTQzMWQuMzUxNzE1NjUwMzg2ZTY3ZgogICAgIDk3ZmY3YmRhMGY5Y2Y3YjkuNTc3MzMwODJlNDNjNGRmZS5jNDA3NDQzNmMyYTNhZDQ5LjY2Njg3MGE5ZDk2MTVlYjYKQEAgLTM2OTE1LDEyICszNjkxNSwxMiBAQAogICAgIGFhZDBjNjNmNjA2OTc4NGEuN2M5Nzc3NmRlMzBlOGY1Yi5mNzM4Mzc2NWI0OWQ2ODU1LmIzYWY0ZmE5MTBmNGRiMjkKICAgICA4NzNkYzkzZGFhYzQ1N2JjCiAgIGFmdGVyCi0gICAgYTNkNzljYjU1NDNhZjgyYy5mZjZjMWQ5YTlmNmE5ZjkzLjVhNTZmNDNiYTJlMTQzMWQuMzUxNzE1NjUwMzg2ZTY3ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kYTM5YjEyMDNmMDg1MDIyLjY2Njg3MGE5ZDk2MTVlYjYKICAgICA5N2ZmN2JkYTBmOWNmN2I5LjU3NzMzMDgyZTQzYzRkZmUuYzQwNzQ0MzZjMmEzYWQ0OS42NjY4NzBhOWQ5NjE1ZWI2CiAgICAgMjY4ZTM1ZTQzNDI4MGQ4YS5lMjNkZDAyNDljYzRiNDMyLmRhMzliMTIwM2YwODUwMjIuOWM1NzVhNzFkNDJjNzFlMAogICAgIGFhZDBjNjNmNjA2OTc4NGEuN2M5Nzc3NmRlMzBlOGY1Yi5mNzM4Mzc2NWI0OWQ2ODU1LmIzYWY0ZmE5MTBmNGRiMjkKICAgICA4NzNkYzkzZGFhYzQ1N2JjCi1WTU9WTlREUV8yNTYobWVtKQorVkhBRERQRF8xMjgobWVtKQogICBiZWZvcmUKICAgICBmNGNlNDYxOWJkYThhM2M2LjgwMTAyYjU3MmVlYjcxYTYuMDE0ZGEzNDhkNjI3OWJhMy43OTUwZDI3MWJkZWQzMzhlCiAgICAgZDYyYzQxMmE2NWFkNzg3Mi4wMzljNWY5ODNiM2EzNzRhLjRjMmFkMGEwOTExYTk0MzkuYmFjYzdmYjBmNzg0ZWI3OApAQCAtMzY5MjgsMTMgKzM2OTI4LDEzIEBACiAgICAgNjg4MWExOTdlNzQ3YjQ2My44NWMzMjQ0NjgwNzExNTE4LmE5OGQxOTdjY2NiZjNjZmEuZWQyNGZjNzc2Y2I5MTQxMgogICAgIDk2OTdjNGQ3ZTA2ZWZlMTkKICAgYWZ0ZXIKKyAgICBmNGNlNDYxOWJkYThhM2M2LjgwMTAyYjU3MmVlYjcxYTYuMDE0ZGEzNDhkNjI3OWJhMy43OTUwZDI3MWJkZWQzMzhlCiAgICAgZDYyYzQxMmE2NWFkNzg3Mi4wMzljNWY5ODNiM2EzNzRhLjRjMmFkMGEwOTExYTk0MzkuYmFjYzdmYjBmNzg0ZWI3OAotICAgIGQ2MmM0MTJhNjVhZDc4NzIuMDM5YzVmOTgzYjNhMzc0YS40YzJhZDBhMDkxMWE5NDM5LmJhY2M3ZmIwZjc4NGViNzgKLSAgICAwODI0MzY1YWJmZGU5NWVkLjkxYmU1ZDZlMjJlMzA0ZTEuM2JmYzc4NjMyZWYzMzY0Ny4xN2ZhMzk4ZWZkZWZjZGMwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc5NTBkMjcxYmRlZDMzOGUuNGMyYWQwYTA5MTFhOTQzOQogICAgIDY4ODFhMTk3ZTc0N2I0NjMuODVjMzI0NDY4MDcxMTUxOC5hOThkMTk3Y2NjYmYzY2ZhLmVkMjRmYzc3NmNiOTE0MTIKICAgICA5Njk3YzRkN2UwNmVmZTE5CiAKLVZNT1ZOVERRXzI1NihyZWcpCitWSEFERFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDcwOWY4ZTFiZjM5YmM1ODEuZDExMWZmY2JmOGY1OTJmZi4zYmY3YWQ4YWYwNzFhNjlhLjcyYWEyZWQ3ODU4OTY0N2QKICAgICBkNTg3NTRhZDQ0Y2JhNWY4LjFmOWVjYWU0MGZmM2ViZWUuMGZhNmY1YTgwZTZkZjIxNC43MTFmMzM2MDc1NWQ2N2ZkCkBAIC0zNjk0MiwxMiArMzY5NDIsMTIgQEAKICAgICBiMzJjYzk3MDBhNjVhNGJkLmQ5ZTM5YzcxYmMxMGZjNzMuODBhNGI0MWVjNzhmYWU5Zi44NjQxZmVhZDZjNTVmNWEzCiAgICAgNTI4NWJjNDhhYjkwZjcyMQogICBhZnRlcgotICAgIDcwOWY4ZTFiZjM5YmM1ODEuZDExMWZmY2JmOGY1OTJmZi4zYmY3YWQ4YWYwNzFhNjlhLjcyYWEyZWQ3ODU4OTY0N2QKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWQxY2Y5MGE3N2Y0MzYzMi43MTFmMzM2MDc1NWQ2N2ZkCiAgICAgZDU4NzU0YWQ0NGNiYTVmOC4xZjllY2FlNDBmZjNlYmVlLjBmYTZmNWE4MGU2ZGYyMTQuNzExZjMzNjA3NTVkNjdmZAogICAgIDIyOWQxNGZiNmM4YWRjMjcuMmRmNjgwY2M0NzRkN2E1Yi41ZDFjZjkwYTc3ZjQzNjMyLjg0YjhhNDAzYjk0ODA0YTYKICAgICBiMzJjYzk3MDBhNjVhNGJkLmQ5ZTM5YzcxYmMxMGZjNzMuODBhNGI0MWVjNzhmYWU5Zi44NjQxZmVhZDZjNTVmNWEzCiAgICAgNTI4NWJjNDhhYjkwZjcyMQotVk1PVk5URFFfMjU2KG1lbSkKK1ZIQUREUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYzY1MjVhYzE5MTA2YzY0Yi5lNTdmNzA3OGI3ZTczYTY0LmZkMzI5YmJlOGI0NzJkNjEuZDY4YzIzNGY5OWNjOTYwNwogICAgIGJjNzI1NDA1M2JjMjFkNGUuMTJlMzAzN2YxMjljZGFjOS43N2FlZjc5ZmQwZmVjOTUyLmJhMWU0MDA4ODkzNjI5MTgKQEAgLTM2OTU1LDEzICszNjk1NSwxMyBAQAogICAgIGEyZGU0ZDlhNDgzZDU2OGQuZDAwZWUyM2EzYmQxMjY3Yi5kOTYyYmJjZTI5MWUzMGVjLjliNzM3OGM3MzVjMzQyZGYKICAgICA1MWNlOGNhNTI5ZmQ0MWVlCiAgIGFmdGVyCisgICAgYzY1MjVhYzE5MTA2YzY0Yi5lNTdmNzA3OGI3ZTczYTY0LmZkMzI5YmJlOGI0NzJkNjEuZDY4YzIzNGY5OWNjOTYwNwogICAgIGJjNzI1NDA1M2JjMjFkNGUuMTJlMzAzN2YxMjljZGFjOS43N2FlZjc5ZmQwZmVjOTUyLmJhMWU0MDA4ODkzNjI5MTgKLSAgICBiYzcyNTQwNTNiYzIxZDRlLjEyZTMwMzdmMTI5Y2RhYzkuNzdhZWY3OWZkMGZlYzk1Mi5iYTFlNDAwODg5MzYyOTE4Ci0gICAgMTJiMjI2ZmZjNGQwYjk1NS45N2E0ODBmMWI0MTFiZjk3LjIyMjUyZTAwYTU0MjhiNzIuODhhNzA5YjczNDVhYTQ3YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZDMyOWJiZThiNDcyZDYxLjc3YWVmNzlmZDBmZWM5NTIKICAgICBhMmRlNGQ5YTQ4M2Q1NjhkLmQwMGVlMjNhM2JkMTI2N2IuZDk2MmJiY2UyOTFlMzBlYy45YjczNzhjNzM1YzM0MmRmCiAgICAgNTFjZThjYTUyOWZkNDFlZQogCi1WTU9WSFBTXzEyOF9Mb2FkRm9ybShyZWcpCitWSEFERFBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDA0MDMzZWJiYWI5NGRiNTUuNGFjMTQ0YzRlNDE0YjAyMi4xOTZjMjVjNjQzNjg0YjIwLjdhMzAxYmYzNzY5Zjc0ZWQKICAgICAxMjYwOGI3NjU4MTU0ZGJmLmU0Mjk4NzY4YjQ2MjgyM2YuY2UwYzQ2MDE2NzYzNjkzMy5kZjVjYzg1Y2E4ZDAxMmExCkBAIC0zNjk2OSwxMiArMzY5NjksMTIgQEAKICAgICBhYmJkZTg4Y2ExMDNhODRmLjYyYjRlMmNlNWQ5MDgxYzQuZWMzZDBlMzU3NGIyODM1Mi42OWZlZmVhYjJkNzI0ZmQwCiAgICAgNDUwYzdlNjliOGZjNjZhMwogICBhZnRlcgotICAgIDA0MDMzZWJiYWI5NGRiNTUuNGFjMTQ0YzRlNDE0YjAyMi4xOTZjMjVjNjQzNjg0YjIwLjdhMzAxYmYzNzY5Zjc0ZWQKKyAgICBkNTJmNzA0M2NiMGNkMmQ5LmU0Mjk4NzY4YjQ2MjgyM2YuZTViMjQwZjZkY2JkYzczMy5kZjVjYzg1Y2E4ZDAxMmExCiAgICAgMTI2MDhiNzY1ODE1NGRiZi5lNDI5ODc2OGI0NjI4MjNmLmNlMGM0NjAxNjc2MzY5MzMuZGY1Y2M4NWNhOGQwMTJhMQogICAgIGQ1MmY3MDQzY2IwY2QyZDkuNGVlMTkyNzJkMzMyODkxMS40YjM4M2Y1ODQzNGRiZDYwLmU1YjI0MGY2ZGNiZGM3MzMKICAgICBhYmJkZTg4Y2ExMDNhODRmLjYyYjRlMmNlNWQ5MDgxYzQuZWMzZDBlMzU3NGIyODM1Mi42OWZlZmVhYjJkNzI0ZmQwCiAgICAgNDUwYzdlNjliOGZjNjZhMwotVk1PVkhQU18xMjhfTG9hZEZvcm0obWVtKQorVkhBRERQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICA1NmE3M2MxYjk4NjZjN2Q5LmVlNTZlZmJmNzU4ODA5Y2MuZmQ2ZmYyNjk2Zjg4MjU4My4wZDY4YWUwNjk2MWZmN2I2CiAgICAgNzk5ZGI1YWRlOWJkMmY5ZC5mYzQ2ODI0NmU0MjYzMWZjLmZjZGUzZTJkMjUyNzMyN2EuMGEwMjFiMzU0NDFmNTQzNwpAQCAtMzY5ODQsMTEgKzM2OTg0LDExIEBACiAgIGFmdGVyCiAgICAgNTZhNzNjMWI5ODY2YzdkOS5lZTU2ZWZiZjc1ODgwOWNjLmZkNmZmMjY5NmY4ODI1ODMuMGQ2OGFlMDY5NjFmZjdiNgogICAgIDc5OWRiNWFkZTliZDJmOWQuZmM0NjgyNDZlNDI2MzFmYy5mY2RlM2UyZDI1MjczMjdhLjBhMDIxYjM1NDQxZjU0MzcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGQ2OGFlMDY5NjFmZjdiNi4wYTAyMWIzNTQ0MWY1NDM3CisgICAgZWU1NmVmYmY3NTg4MDljYy5mYzQ2ODI0NmU0MjYyZTQ1LmZkNmZmMjY5NmY4ODI1ODMuZmNkZTNlMmQyNTI3MzI3YQogICAgIDYwYzVjNTIxNTE1ZjAzODIuZTU1YTM4MDUwMWRmY2EyOS45MTA3N2FlNGVhODg3N2MzLjA4YmI0ZTYyYjUwYWJjNDIKICAgICBjMTcwMGIzN2IwMGMzZjI1CiAKLVZNT1ZIUFNfMTI4X0xvYWRGb3JtKHJlZykKK1ZIQUREUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYzVjNjg1MWJhOGQxOWJkNC5kZDkwNTRkYjlmYzJlOGZhLjc4MTY1NDE0ZTcxMWIyN2MuZTA1YTYzYWUzMjYyMjY2ZAogICAgIDcyMDliODdhMzhlNjBkZmUuZGNlNThkMjVjZjQyYzJiMS40NTVhZWMyOGQ3OGQ1MjMzLjAzOTA3ODUzOGQxMjJlZmYKQEAgLTM2OTk2LDEyICszNjk5NiwxMiBAQAogICAgIDM0ODYzYjVhOTIyZTIyNmQuY2I1Y2VmMWE0MmM3NGM4YS5mZWE0N2MxMDQ4OTBhODdjLjMwZDgxNmRiZWUyNTM5OGQKICAgICBmMzgyOTg5NjJiYTFiM2UwCiAgIGFmdGVyCi0gICAgYzVjNjg1MWJhOGQxOWJkNC5kZDkwNTRkYjlmYzJlOGZhLjc4MTY1NDE0ZTcxMWIyN2MuZTA1YTYzYWUzMjYyMjY2ZAorICAgIDM3OGZlZGViZmNlYTUwZDIuNzIwOWI4N2EzOGU2MGRmZS5kNDc2MzViZTE4YTQ0YmE1LjQ1NWFlYzI4ZDc4ZDUyMzMKICAgICA3MjA5Yjg3YTM4ZTYwZGZlLmRjZTU4ZDI1Y2Y0MmMyYjEuNDU1YWVjMjhkNzhkNTIzMy4wMzkwNzg1MzhkMTIyZWZmCiAgICAgMjM4NWExYzBmZGQ2ZDE0ZC4zNzhmZWRlYmZjZWE1MGQyLmE4NzBmYWFkNmVkZWU1ZmEuZDQ3NjM1YmUxOGE0NGJhNQogICAgIDM0ODYzYjVhOTIyZTIyNmQuY2I1Y2VmMWE0MmM3NGM4YS5mZWE0N2MxMDQ4OTBhODdjLjMwZDgxNmRiZWUyNTM5OGQKICAgICBmMzgyOTg5NjJiYTFiM2UwCi1WTU9WSFBTXzEyOF9Mb2FkRm9ybShtZW0pCitWSEFERFBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGY5NDAzNWRiZWQyMjc2Y2QuMDA1ODgyYjI5NDc5M2QwYi43NDE2MGY5Y2JlZTQ3MzA1LmExNDQ2ZGJiMDAzMGQ3NjYKICAgICAxZWRlNmI5NjRkYjYzZDdlLmU1NDY3MjM1OWU0MzVlZDMuMGU4YWM5NWY4YjRkODE2ZS5lZTliYzkxYzMyNDlhZDYzCkBAIC0zNzAxMSwxMSArMzcwMTEsMTEgQEAKICAgYWZ0ZXIKICAgICBmOTQwMzVkYmVkMjI3NmNkLjAwNTg4MmIyOTQ3OTNkMGIuNzQxNjBmOWNiZWU0NzMwNS5hMTQ0NmRiYjAwMzBkNzY2CiAgICAgMWVkZTZiOTY0ZGI2M2Q3ZS5lNTQ2NzIzNTllNDM1ZWQzLjBlOGFjOTVmOGI0ZDgxNmUuZWU5YmM5MWMzMjQ5YWQ2MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMTQ0NmRiYjAwMzBkNzY2LmVlOWJjOTFjMzI0OWFkNjMKKyAgICBmOTQwMzVkYmVkMjI3NmNkLmU1NDY3MjM1OWU0MzVlZDMuNzQxNjBmOWNiZWU0NzMwNS5lZTliYzkxYzMyNDlhZDYzCiAgICAgMzVlODkwMWY1ZDQ1Y2JkZS42NmFhM2U2ZTNjODVhMThmLjg1ZDBmZDU0OGEzNTQxYmMuZjY5Y2IzYWM3NjE3NDE0OQogICAgIDY5ZGYzOWI0YzBlNDc3ODkKIAotVk1PVkhQU18xMjhfTG9hZEZvcm0ocmVnKQorVkhBRERQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBmNjA5MWEyMGY0NWI0NDhkLmRmZWQ3NmM0NDQ1ODA5ZTQuYmJiNzEyZmIwNzE2M2JkYy4xYTNhNmU1ZmY0Y2I2YmY5CiAgICAgZjk2NjUyNWVhZjA3ZTUwMC4xODAyZTU5MDNhYWQzYjYwLjk3MTE3ZjYyNGI1NWNiMDIuMTA4ZDY5NWExZmRlNmNkNQpAQCAtMzcwMjMsMTIgKzM3MDIzLDEyIEBACiAgICAgZDFlOGI4ZmQyODJlOTNlNi5hNjhjNGM0OWM2NGY2ZTY0LjU4ZGIxNTczYWMxMmJiOGIuOGUyMmVlZDEyYWE4ZTExOAogICAgIGNmZmI3MDI0NDI3N2NlZDcKICAgYWZ0ZXIKLSAgICBmNjA5MWEyMGY0NWI0NDhkLmRmZWQ3NmM0NDQ1ODA5ZTQuYmJiNzEyZmIwNzE2M2JkYy4xYTNhNmU1ZmY0Y2I2YmY5CisgICAgY2U0MmRkZDk4Yzc0OTY4Zi5mOTY2NTI1ZWFmMDdlNTAwLjU4MDM4MjExYTNkMDhjYWQuOTcxMTdmNjI0YjU1Y2IwMgogICAgIGY5NjY1MjVlYWYwN2U1MDAuMTgwMmU1OTAzYWFkM2I2MC45NzExN2Y2MjRiNTVjYjAyLjEwOGQ2OTVhMWZkZTZjZDUKICAgICBjZTQyZGRkOThjNzQ5NjhmLmJjZjM1ODZkNWM1MTFlN2MuNTgwMzgyMTFhM2QwOGNhZC40Mzk2NmEzMTI4NzhmZjdiCiAgICAgZDFlOGI4ZmQyODJlOTNlNi5hNjhjNGM0OWM2NGY2ZTY0LjU4ZGIxNTczYWMxMmJiOGIuOGUyMmVlZDEyYWE4ZTExOAogICAgIGNmZmI3MDI0NDI3N2NlZDcKLVZNT1ZIUFNfMTI4X0xvYWRGb3JtKG1lbSkKK1ZIQUREUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZTFlZTZjMTc4YmYzODFlNS41ZWE2ZGUzNzFlYzIxN2IwLmI0OTgzYjBmOTNiM2U3NDUuZjVlMzM2ZjUwMmE4OTQ0NgogICAgIGEwYzY1ZTk3MjIyOGI4NmQuZDFjNjRiZjEwYmJiNWY5YS5jMWU0YTNhYmRmOGE0NDRiLjg5NjllMDAxNDAxZDUzOGEKQEAgLTM3MDM4LDExICszNzAzOCwxMSBAQAogICBhZnRlcgogICAgIGUxZWU2YzE3OGJmMzgxZTUuNWVhNmRlMzcxZWMyMTdiMC5iNDk4M2IwZjkzYjNlNzQ1LmY1ZTMzNmY1MDJhODk0NDYKICAgICBhMGM2NWU5NzIyMjhiODZkLmQxYzY0YmYxMGJiYjVmOWEuYzFlNGEzYWJkZjhhNDQ0Yi44OTY5ZTAwMTQwMWQ1MzhhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY1ZTMzNmY1MDJhODk0NDYuODk2OWUwMDE0MDFkNTM4YQorICAgIGUxZWU2YzE3OGJmMzgxZTQuZDFjNjRiZjEwYmJiNWY5YS5mNWUzMzZmNTAyYTg5NDQ2LmMxZTRhM2FiZGY4YTQ0NGIKICAgICA5NDU5MTZlYWE3ZWE5YzllLmQ5NWZlYjk5MzcwZDJhN2MuNDc2ZGNiMTU2NmJlOWQ3NC4wYTE5YzA2YmU1ZDU3MTYwCiAgICAgYWVkZGVkYTA4NDMwNDk0OQogCi1WTU9WTlREUUFfMTI4KHJlZykKK1ZIU1VCUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYmE0ZTk0MTE3YzlhZjY2Yy44MmFjZDM5NmNlOGZjMzlmLjI2NmYxNjVlYWY3ZjI1Y2QuNzk0MDgzYmJkOTM0MTFmMAogICAgIDhiYjdiMDI5NjhhMGI1NzQuOGMxNDc2N2RiMzFkNWNjYS5jODEzNzg1NThlODVkNGVkLjFhODRhNGU3M2I0YzU5NDAKQEAgLTM3MDUwLDEyICszNzA1MCwxMiBAQAogICAgIGU3YTUzOGZkOGVhZDU5ZTYuNjk1NTVmYjEyNDIxZDY0Zi44MDQyZDI4NmVlODIzZDRjLjE4OGIwZDgyM2U5MzU4MGUKICAgICAyZWU2NGZjOTE3ZGE4NmU0CiAgIGFmdGVyCi0gICAgYmE0ZTk0MTE3YzlhZjY2Yy44MmFjZDM5NmNlOGZjMzlmLjI2NmYxNjVlYWY3ZjI1Y2QuNzk0MDgzYmJkOTM0MTFmMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZmFkNzI4OGE5MTIzMjkxLjQ4MTM3ODU1M2I0YzU5NDAKICAgICA4YmI3YjAyOTY4YTBiNTc0LjhjMTQ3NjdkYjMxZDVjY2EuYzgxMzc4NTU4ZTg1ZDRlZC4xYTg0YTRlNzNiNGM1OTQwCiAgICAgN2I2NjNlNTNlNWNkYzIwZS45MDVlN2I4ZDcxOWYyNDRiLjFkOTUwZGU5NmZhZDcyODguMDUwNGE4ODZhOTEyMzI5MQogICAgIGU3YTUzOGZkOGVhZDU5ZTYuNjk1NTVmYjEyNDIxZDY0Zi44MDQyZDI4NmVlODIzZDRjLjE4OGIwZDgyM2U5MzU4MGUKICAgICAyZWU2NGZjOTE3ZGE4NmU0Ci1WTU9WTlREUUFfMTI4KG1lbSkKK1ZIU1VCUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjJlMWU4NDU0ZmY0NzkzZS4yYmMxOWM5MjAwY2RiNWE3LmYyYzc5ZGQ1ZTliMDJmMDIuNGM2NmMxOThhODkxNmVlMwogICAgIGQyNDg1NmU0MDJlYmVkNGEuYTMwNjY1N2VkNmI4MTNmZS4wOTdmYjFlNmRiNTdlYjhmLmRmNGRkODhiMzg2NTQ0ZjkKQEAgLTM3MDY1LDExICszNzA2NSwxMSBAQAogICBhZnRlcgogICAgIDIyZTFlODQ1NGZmNDc5M2UuMmJjMTljOTIwMGNkYjVhNy5mMmM3OWRkNWU5YjAyZjAyLjRjNjZjMTk4YTg5MTZlZTMKICAgICBkMjQ4NTZlNDAyZWJlZDRhLmEzMDY2NTdlZDZiODEzZmUuMDk3ZmIxZTZkYjU3ZWI4Zi5kZjRkZDg4YjM4NjU0NGY5Ci0gICAgMThlNzE0OTE0ZGNlOWUzMS5hYmJmOGYyZWFjZmJhZjk2Ljg4NDgxN2NlMTcyMmM2MjMuOTQ0MzEyY2IzYjhhZmEzYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mMmM3OWRkNWU5YjAyZjAyLjRjNjZjMTk4YTg5MTZlZTMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzJjNzlkYTljYzY2YzE5OC5kYjU3ZWI4ZjVmNGRkODhiCisgICAgZDE4YTllMzg0Y2E2NDcyMS45ZjNhMTcwYzFmMjBjNDFjLjRkZWY0YzdhYjkxZTdjZTkuYzY5NDZjYzQ0YzhjY2I1NQogICAgIGQzOGJlMGUzMDhmOGY0ZjIKIAotVk1PVk5URFFBXzEyOChyZWcpCitWSFNVQlBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDE1NzU2YzkyMGE1YWIwYmYuZGFmYzcwYzUxYTgxYTU0Ni5kY2MxZjc4NWNiYjU5MDNjLjMyNDBjYWQ3ZGI1NmM4MGYKICAgICBlYTllMGIzZWVmM2MzYzY4LjBkMGEwNzI0ZDM2YTc0Y2MuYmJhMTJkMDY0YjQ2NGRhMS4xNDA3MGZjZjljZDc2N2JlCkBAIC0zNzA3NywxMiArMzcwNzcsMTIgQEAKICAgICBiOWRkNzIzZmQwYjViNGZiLjY1MmE3MDA4Nzk5NzUzYTguZDc5Yzg5Y2MzODg5OGNlYy40MDI2ZGM0NTY0ZTE4ZDZkCiAgICAgNDExNzViOWFhNTgyOGNjNQogICBhZnRlcgotICAgIDE1NzU2YzkyMGE1YWIwYmYuZGFmYzcwYzUxYTgxYTU0Ni5kY2MxZjc4NWNiYjU5MDNjLjMyNDBjYWQ3ZGI1NmM4MGYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2I1ZTM3Zjg1MDEwOTY1MC40YjQ2NGRhMTljZDc2ODAyCiAgICAgZWE5ZTBiM2VlZjNjM2M2OC4wZDBhMDcyNGQzNmE3NGNjLmJiYTEyZDA2NGI0NjRkYTEuMTQwNzBmY2Y5Y2Q3NjdiZQogICAgIGFjNTJiOTU0NTIyY2Q0OTguNDc4MGRkNDE5NDZkNmZkZS45YjI2YjRmOTNiNWUzN2Y4LmQwMTA5NjUwMTVhYzE0MjQKICAgICBiOWRkNzIzZmQwYjViNGZiLjY1MmE3MDA4Nzk5NzUzYTguZDc5Yzg5Y2MzODg5OGNlYy40MDI2ZGM0NTY0ZTE4ZDZkCiAgICAgNDExNzViOWFhNTgyOGNjNQotVk1PVk5URFFBXzEyOChtZW0pCitWSFNVQlBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGIwYWQ5MTNiZjM5Y2NkNTcuNmI4YjMzNmIwNDY0MTgzZi40MWQ0M2M2NjlkZjNkYzU4LmNiNGZhNmVhZGQ1Mzg2MmEKICAgICA2N2I1ZjkxNDZiM2EwZTRmLjFmYTdmNzQ0OGJjNDNiMGUuYjg0YWJiNDUxYzhlYzYxOC5kMzhhMDliZmM3NDk2MTVlCkBAIC0zNzA5MiwxMSArMzcwOTIsMTEgQEAKICAgYWZ0ZXIKICAgICBiMGFkOTEzYmYzOWNjZDU3LjZiOGIzMzZiMDQ2NDE4M2YuNDFkNDNjNjY5ZGYzZGM1OC5jYjRmYTZlYWRkNTM4NjJhCiAgICAgNjdiNWY5MTQ2YjNhMGU0Zi4xZmE3Zjc0NDhiYzQzYjBlLmI4NGFiYjQ1MWM4ZWM2MTguZDM4YTA5YmZjNzQ5NjE1ZQotICAgIDQzZmIwZjExMjg2OTA5ZGIuMzI3ZmJhMzYwMDYxNWExNC5hNjU3NmI5MzEzNzNjYzE0LjRiOWJhZGI3OTJmNjViMzMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDFkNDNjNjY5ZGYzZGM1OC5jYjRmYTZlYWRkNTM4NjJhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMxZDQzYzY2ZGQ1Mzg2MmEuMzg0YWJiNDU1MzhhMDliZgorICAgIDIwNGI1MDFlNDYzNDdiMjQuZmU1ZDc4YWRmZmM4YjBmZS5lOGM5YzczYjlkYWVhYjc5LjhmY2M4ZTNlZDhlN2FlNTYKICAgICBmYjZhYThjMDM4YTc5NzcyCiAKLVZNT1ZOVERRQV8xMjgocmVnKQorVkhTVUJQU18xMjgocmVnKQogICBiZWZvcmUKICAgICBlYWMxZjhhOTRiYzI1MjM0LmRhNzAzNjI3ZTJhNzIwNTkuZTA4ZTJlMTUyNTg0N2I3OC41ODZhNGIyOGQ3NGMxZjczCiAgICAgYmExZDc5NjViMGM0MWE0OC40ZDM4M2YxOTE4Y2ZiM2E0LjM0NWVkNmRhMGUyMWY1MmQuZDMwNzczNDhkYzU3ZTQyZApAQCAtMzcxMDQsMTIgKzM3MTA0LDEyIEBACiAgICAgNjkxM2ZlMDdkOWFmYzQxMy5jZWRjYTg2NGJmNmI5NjJlLmEzMGFmMjJjOTYzMGU4ZmEuNWE2NWEwY2ViOWVhNGY5MwogICAgIDFlYmQ5ZDBkYzg4OTZkOTcKICAgYWZ0ZXIKLSAgICBlYWMxZjhhOTRiYzI1MjM0LmRhNzAzNjI3ZTJhNzIwNTkuZTA4ZTJlMTUyNTg0N2I3OC41ODZhNGIyOGQ3NGMxZjczCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ3MGRhOGJiYzlkZWI1ZDQuYjQ1ZWQ2ZGFkYzU3ZTQwYgogICAgIGJhMWQ3OTY1YjBjNDFhNDguNGQzODNmMTkxOGNmYjNhNC4zNDVlZDZkYTBlMjFmNTJkLmQzMDc3MzQ4ZGM1N2U0MmQKICAgICBjNmNhMjc2MTAwM2EyYzU5LjU1NmRlN2RlMDNiNmYxMzIuNTcxODZlNjg1NTJjNWFjYS4zNTZjYmI4NmM5ZGViNWQ0CiAgICAgNjkxM2ZlMDdkOWFmYzQxMy5jZWRjYTg2NGJmNmI5NjJlLmEzMGFmMjJjOTYzMGU4ZmEuNWE2NWEwY2ViOWVhNGY5MwogICAgIDFlYmQ5ZDBkYzg4OTZkOTcKLVZNT1ZOVERRQV8xMjgobWVtKQorVkhTVUJQU18xMjgobWVtKQogICBiZWZvcmUKICAgICA1ZDQyMmUyZDE0YzZjZDBjLjAxNDVmYmM1ZDdiMDFlMjQuOTQ1MWZmOTY2OWY3NWRjNC43NTdlNWM5MDZlYjlkOTZhCiAgICAgZjNiZWQwMWJiNmFlMjkxZC5lOWFkMTgwNjk1Yzg3NTM2LjgzOTg2OTVmMWM2ODAzMjIuMjljMmFhMDI3ODU0NmFjNgpAQCAtMzcxMTksMTEgKzM3MTE5LDExIEBACiAgIGFmdGVyCiAgICAgNWQ0MjJlMmQxNGM2Y2QwYy4wMTQ1ZmJjNWQ3YjAxZTI0Ljk0NTFmZjk2NjlmNzVkYzQuNzU3ZTVjOTA2ZWI5ZDk2YQogICAgIGYzYmVkMDFiYjZhZTI5MWQuZTlhZDE4MDY5NWM4NzUzNi44Mzk4Njk1ZjFjNjgwMzIyLjI5YzJhYTAyNzg1NDZhYzYKLSAgICBiY2ZlZmRjNGNjNGMzZWY3LjdjOTU1MzM1YWY4MzA2ZjUuNzc3ZDYxYWRmNWNhNDQ3Mi4xYjIwZDZlZDUxOGNkN2I5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk0NTFmZjk2NjlmNzVkYzQuNzU3ZTVjOTA2ZWI5ZDk2YQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42OWY3NWRjNGY1N2U1NmMxLjFjNjgwMzIyNzg1NDZhYzYKKyAgICA5NGNlMzMxMjcyYWNjN2M1LjE4NDlhN2MwYzI2ZTBkMGUuNGNjYjYzNmIwZjI3ZGNlMC5hN2U1ZGViZDk0ZWU1YmYwCiAgICAgMjk1Y2JlZGVkZTA0MzMxNgogCi1WTUFTS01PVkRRVV8xMjgocmVnKQorVkhTVUJQU18yNTYocmVnKQogICBiZWZvcmUKICAgICBmZGQzNzBiY2NhNWQ5YmQ4LjU3ZmFlZGYzYzNkYjgxYjQuMTcxNzExMTI2YTE0YzUyZC5kZTRmZWM4NTg3OGQ4NjlhCiAgICAgN2Y5NGYyYzNmNTgyY2VlMi5lMTRkYTc1MWRiZTQyOGVmLmQ3NGE4Yjk3NDIwMTZiZmQuMDlkNjc2ZTg3ODA3ZmZjOQpAQCAtMzcxMzEsMTIgKzM3MTMxLDEyIEBACiAgICAgZmQyODUzZmM3NjY1ODg3Yy5iOTljMGQzOWQyYjUyY2ZjLjA1MGRhNGViZjNlMTcxNjMuOWExODgyMzQzNzY5NGUzZAogICAgIGI3NmJmY2Y3M2M2ODliZDgKICAgYWZ0ZXIKLSAgICBmZGQzNzBiY2NhNWQ5YmQ4LjU3ZmFlZGYzYzNkYjgxYjQuMTcxNzExMTI2YTE0YzUyZC5kZTRmZWM4NTg3OGQ4NjlhCisgICAgZmEwMTBhZGZkN2QzNzhhNC43ZmQ0ZjJjMzYxNGQ4YWNjLmU2YzEzYjJiZmZlMjAzOWMuNTc0YThiOTc3ODA3ZmZjOQogICAgIDdmOTRmMmMzZjU4MmNlZTIuZTE0ZGE3NTFkYmU0MjhlZi5kNzRhOGI5NzQyMDE2YmZkLjA5ZDY3NmU4NzgwN2ZmYzkKICAgICAwYmVkM2Y1ZmZhMDEwYWRmLjBkOTVkZTFhZDdkMzc4YTQuYjIyZDEzYmJlNmMxM2IyYi5hOTJhN2Y3ZWZmYTIwMzljCiAgICAgZmQyODUzZmM3NjY1ODg3Yy5iOTljMGQzOWQyYjUyY2ZjLjA1MGRhNGViZjNlMTcxNjMuOWExODgyMzQzNzY5NGUzZAogICAgIGI3NmJmY2Y3M2M2ODliZDgKLVZNQVNLTU9WRFFVXzEyOChtZW0pCitWSFNVQlBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGRlZjE2N2IxMmNhY2E3OWEuYjE5MjJhMDcwNDNhODc2NC5jMDJmYWY5YWU5OTUwMTI2LjJkMzYzYTkxMDRlZDQ4NTAKICAgICBlYTc0NDE1MDIwNDAyZWFmLjgzNzdjMWVhNDAwZDQyNDQuZmUxYTQzMjkzNzdmYjM0Yy44NGY0ZDIxYmI2NmZmZDllCkBAIC0zNzE0NCwxMyArMzcxNDQsMTMgQEAKICAgICAyMGE1MmZlOThhODk5YjgwLmYwZTExY2VjMzVkYmQ5OWIuOGUyODJhODJlYWEzOWQzZC4zMzVmZjQ4NzZiMGJmMDEwCiAgICAgNDJhMzc3NDFhNzNiYTc4YwogICBhZnRlcgotICAgIGRlZjE2N2IxMmNhY2E3OWEuYjE5MjJhMDcwNDNhODc2NC44ZTJmYWY5YWU5OTU5ZDI2LjMzNWZmNDkxNmJlZGYwMTAKKyAgICBkZWYxNjdiMTJjYWNhNzlhLmIxOTIyYTA3MDQzYTg3NjQuYzAyZmFmOWFlOTk1MDEyNi4yZDM2M2E5MTA0ZWQ0ODUwCiAgICAgZWE3NDQxNTAyMDQwMmVhZi44Mzc3YzFlYTQwMGQ0MjQ0LmZlMWE0MzI5Mzc3ZmIzNGMuODRmNGQyMWJiNjZmZmQ5ZQotICAgIGI2YzIwNWJmMzYzMWViNDIuY2UyMjEzMTNjNzY5ZjRjNy40ZTI5NDJkMmQ5ODBmZTlhLjY3OTM2NmYzYTVmNWNjZmIKKyAgICA1ZWYxNjdiMTMxOTIyYTA3LjZhNzQ0MTUwNDAwZDQyNDQuZTk5NTAxMjZhZDM2M2E5MS43ZTFhNDMyOWI2NmZmZDllCiAgICAgMjBhNTJmZTk4YTg5OWI4MC5mMGUxMWNlYzM1ZGJkOTliLjhlMjgyYTgyZWFhMzlkM2QuMzM1ZmY0ODc2YjBiZjAxMAogICAgIDQyYTM3NzQxYTczYmE3OGMKIAotVk1BU0tNT1ZEUVVfMTI4KHJlZykKK1ZIU1VCUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZjFhY2VjOGZmMjEzMmExOS4wM2VhM2NiYzM2NTZmYTk1LjQ0ZmVkOGUzMjVlZTJmNjkuOThlMjc1MjM4N2Y1NGQ2MQogICAgIDljYzY0ZGRjZWExZmI4NjMuM2E1Y2E2MjM1OWE0YzRhYy4yNmM3NDM2MzMzMmUzMGUwLjRhMjVhMWEzY2I4MGNhMzEKQEAgLTM3MTU4LDEyICszNzE1OCwxMiBAQAogICAgIDU3NWRjODIzNTAwMGUwZTEuMThmYzg2NWU2ZWYwODc5Mi4wMzg4MThhZTFiNjYyNjczLjEyNzE4YWVjYmE3NzE5ODgKICAgICBlMTEzM2Y4ZTlkZmE2NDY2CiAgIGFmdGVyCi0gICAgZjFhY2VjOGZmMjEzMmExOS4wM2VhM2NiYzM2NTZmYTk1LjQ0ZmVkOGUzMjVlZTJmNjkuOThlMjc1MjM4N2Y1NGQ2MQorICAgIDJiZWE4YjE5MjNjOWViMGIuZWExZmI4NjM1OWE0YzRhYy5mYzI4MTlhNjdmZmIyYWVjLjMzMmUzMGUwY2I5NTdlNjUKICAgICA5Y2M2NGRkY2VhMWZiODYzLjNhNWNhNjIzNTlhNGM0YWMuMjZjNzQzNjMzMzJlMzBlMC40YTI1YTFhM2NiODBjYTMxCiAgICAgYTAzZDk4OTQyYmVhOGIxOC5hM2M5ZWIwYjBkN2ViNGYyLmYxODY1YWQ4ZmMyODE5YWEuN2ZiYjJhZWNkMzUyY2ZkYQogICAgIDU3NWRjODIzNTAwMGUwZTEuMThmYzg2NWU2ZWYwODc5Mi4wMzg4MThhZTFiNjYyNjczLjEyNzE4YWVjYmE3NzE5ODgKICAgICBlMTEzM2Y4ZTlkZmE2NDY2Ci1WTUFTS01PVkRRVV8xMjgobWVtKQorVkhTVUJQU18yNTYobWVtKQogICBiZWZvcmUKICAgICBjNjZkYzRiZDk3ZTc2Y2EwLjFlNzJkOWY2ZjZlZGYzNmQuNzdjMGYzMDk5OTA2ZjliOS5iNjE4Nzk1MTJkNzc5MmU4CiAgICAgOWU0YTk1NjdjNDRhZWM2NC41MWM3Yzg3N2I4M2UwMDY2LjlhZTJhZmY4YTljZGM1OTIuNjg4NDc5MmVjZGU0OWFiNQpAQCAtMzcxNzEsMTMgKzM3MTcxLDEzIEBACiAgICAgOThjMTBjZGEyYWE0NDczNC42YjY1MmMzNzAxMzlmNjUxLmEwNzAwMTUzZWE5YjVlMGQuMzUxYzQ3NDEyOTA3NmUwNQogICAgIDA5ZTAwZDUxMWRkNWIxZTEKICAgYWZ0ZXIKLSAgICBjNjZkYzRiZDk3ZTc2Y2EwLjFlNzJkOWY2ZjZlZGYzNmQuYTA3MDAxNTNlYTliNWUwZC5iNjFjNzk1MTI5MDc2ZTA1CisgICAgYzY2ZGM0YmQ5N2U3NmNhMC4xZTcyZDlmNmY2ZWRmMzZkLjc3YzBmMzA5OTkwNmY5YjkuYjYxODc5NTEyZDc3OTJlOAogICAgIDllNGE5NTY3YzQ0YWVjNjQuNTFjN2M4NzdiODNlMDA2Ni45YWUyYWZmOGE5Y2RjNTkyLjY4ODQ3OTJlY2RlNDlhYjUKLSAgICA0Njc4MmU3NzQxMzBhMWRjLjRjYWE4ZjEzMzI3ZTQyNzguNWYyZTM1MThiYjUwYTg0YS43NDE2MTVhZjk4M2I3YTg1CisgICAgNDY2ZGM0YmRmNmVkZjM2ZC5jNDRhZWM2NGQxYzdjODc3LmY3YzBmMzA5MzYxODc5OGYuYTljZGM1OTJlODg0NzkyZQogICAgIDk4YzEwY2RhMmFhNDQ3MzQuNmI2NTJjMzcwMTM5ZjY1MS5hMDcwMDE1M2VhOWI1ZTBkLjM1MWM0NzQxMjkwNzZlMDUKICAgICAwOWUwMGQ1MTFkZDViMWUxCiAKLVZNQVNLTU9WRFFVXzEyOChyZWcpCitWSFNVQlBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDRhYWY2MzQ5MGYzMDgwYzQuNzJmMmE5N2E5YWIzOTk5OS4wYTQ1OWE0ZGMxZmM1NzlhLjNhNzQ4Zjk3NTNiYmEzMDYKICAgICA1NWQ0NDM5NzljYTQxNzVhLmFlZDc4MzQ0YWQ2NzU0MzcuODU5NmQ2YzMwYzUyYTMwMi4wYTA1NWJjZjExYmIzMjYyCkBAIC0zNzE4NSwxMiArMzcxODUsMTIgQEAKICAgICAzYTU1OTVlMmY1MDk4YzUyLmJmZWNkYzA3MmVmNGY1Y2MuN2ViYWE0N2NiYWU4ZTdkOS5iNzAyOWVjYmZlOGQyMWYyCiAgICAgNGQwNTBkNjc2NDc2Zjg3ZAogICBhZnRlcgotICAgIDRhYWY2MzQ5MGYzMDgwYzQuNzJmMmE5N2E5YWIzOTk5OS4wYTQ1OWE0ZGMxZmM1NzlhLjNhNzQ4Zjk3NTNiYmEzMDYKKyAgICA1ZmJlYjE1MWE5M2MxNjI0LmQ1ZDQ0Mzk3MmViYTk4YmQuYjhhNGRhMDQ2YWYxZTJlNy4wYzUyYTdiOTExYmIzMTU3CiAgICAgNTVkNDQzOTc5Y2E0MTc1YS5hZWQ3ODM0NGFkNjc1NDM3Ljg1OTZkNmMzMGM1MmEzMDIuMGEwNTViY2YxMWJiMzI2MgogICAgIDg3OWRhYmE2NWZiZWIxNTEuMjkzYzE2MjQ4MGNmMzQzOS4zOGE0ZGEwNDgxYzgxNDMzLmVhZjFlMmU3NDFhOGM4NGMKICAgICAzYTU1OTVlMmY1MDk4YzUyLmJmZWNkYzA3MmVmNGY1Y2MuN2ViYWE0N2NiYWU4ZTdkOS5iNzAyOWVjYmZlOGQyMWYyCiAgICAgNGQwNTBkNjc2NDc2Zjg3ZAotVk1BU0tNT1ZEUVVfMTI4KG1lbSkKK1ZIU1VCUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgODljNmFiYTc5MDcwMGExYi5jYjQ3MDBiN2Y5MTFlMTBjLjRkYjU1M2Q4ZDRlNDUyMWIuYjUyNjJmOTY1MzQxNTdhMgogICAgIDQ1MTFmMjc3OWU4NTEzZjguOTdjMGU1OTEwNzYzZWYyOS5hZDYxZjU4MjhkYWEwODUzLjM4MzI3N2MxZTk1Y2ExMzcKQEAgLTM3MTk4LDEzICszNzE5OCwxMyBAQAogICAgIGIwNzQ3MDc4Y2QzNmY5MWUuNGI3NzExMDRiNDEyMjEzZS41Njk1YjAxNmFhZWE2ZjJkLjkyNWQyZmYyN2EwZGIzN2MKICAgICAyMDE0OTdkMWFkYmJmMzgyCiAgIGFmdGVyCi0gICAgODljNmFiYTc5MDcwMGExYi5jYjQ3MDBiN2Y5MTFlMTBjLjU2YjViMDE2YWFlYTUyMWIuYjUyNjJmZjI3YTQxYjNhMgorICAgIDg5YzZhYmE3OTA3MDBhMWIuY2I0NzAwYjdmOTExZTEwYy40ZGI1NTNkOGQ0ZTQ1MjFiLmI1MjYyZjk2NTM0MTU3YTIKICAgICA0NTExZjI3NzllODUxM2Y4Ljk3YzBlNTkxMDc2M2VmMjkuYWQ2MWY1ODI4ZGFhMDg1My4zODMyNzdjMWU5NWNhMTM3Ci0gICAgNWViMTYwYzNhOWM0Y2Y0MC5mODBjNDFkY2JjOGFmMDU2LmJjYmQ0MGYzNzY1M2QzYTAuNjMyYjc4NjYxN2M3MDE0NworICAgIDkwNzAwM2U2ZjkxMWUxMGMuYzUxMWYyNzcxN2MwZTU5MS5kNGU0NTRmMDUzNDE1N2EyLjJkNjFmNTgyZTk1Y2ExMzcKICAgICBiMDc0NzA3OGNkMzZmOTFlLjRiNzcxMTA0YjQxMjIxM2UuNTY5NWIwMTZhYWVhNmYyZC45MjVkMmZmMjdhMGRiMzdjCiAgICAgMjAxNDk3ZDFhZGJiZjM4MgogCi1WTU9WTVNLUERfMTI4KHJlZykKK1ZIU1VCUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNmI5YmFjNzA0ZDVjZmMwNi4xNzI0OWU4MDI3ZTk0ZWJlLmVjNGQ1MDc2ODk4OGJlOGUuNTdiNWJmZDc0NjdiOTcyNwogICAgIGNlNDA2YTM5ZjU3YzBhYjQuNmY4ZTY2YzlkM2U4OGE0ZC4zOGQ5ZmE5Y2RhNzcwM2YxLjliZTllYjIyNjUxMjA4YjkKQEAgLTM3MjEyLDEyICszNzIxMiwxMiBAQAogICAgIDRiMGZkMmZkY2U2YTI5M2MuNjJjMGI2Y2I4ZWZjYTZlOC4zYzQ3ODBiODVhZjE3M2EzLjVjYmM4NzA2OWU4NWI0NTgKICAgICA5MWYzZjA3OGVmNzc2N2JjCiAgIGFmdGVyCi0gICAgNmI5YmFjNzA0ZDVjZmMwNi4xNzI0OWU4MDI3ZTk0ZWJlLmVjNGQ1MDc2ODk4OGJlOGUuNTdiNWJmZDc0NjdiOTcyNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZWZkYWZlMzI0YmM3ZDEwLmI4ZDlmYTljZGE3NzAzZjEKICAgICBjZTQwNmEzOWY1N2MwYWI0LjZmOGU2NmM5ZDNlODhhNGQuMzhkOWZhOWNkYTc3MDNmMS45YmU5ZWIyMjY1MTIwOGI5CiAgICAgYTQ0ZGNlOWE0MWE3NWIzNy45NDdlNDUzZWViNDA2OWY3Ljg5NjkwY2U0NDE2YjJiMTQuZmVmZGFmZTMyNGJjN2QxMAogICAgIDRiMGZkMmZkY2U2YTI5M2MuNjJjMGI2Y2I4ZWZjYTZlOC4zYzQ3ODBiODVhZjE3M2EzLjVjYmM4NzA2OWU4NWI0NTgKLSAgICAwMDAwMDAwMDAwMDAwMDAwCi1WTU9WTVNLUERfMTI4KG1lbSkKKyAgICA5MWYzZjA3OGVmNzc2N2JjCitWSFNVQlBEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDc5NmU2NDIzMzRhMDUzNjkuMWRkMjc0ZDAzODUwYjE2Zi5iNTIwMzU1YmQ2MjhmZTRiLmFkYzA1NDg2YzI5NDE2NDkKICAgICBmMGY5NjFmNTg5MGMzMzhhLjc4ZTJhZjdlMWFlNjJmN2IuNjk2OTNlZGNkZmQxMmQ0Yy4zODIwODNiOTE0ZTE1MmIzCkBAIC0zNzIyNywxMSArMzcyMjcsMTEgQEAKICAgYWZ0ZXIKICAgICA3OTZlNjQyMzM0YTA1MzY5LjFkZDI3NGQwMzg1MGIxNmYuYjUyMDM1NWJkNjI4ZmU0Yi5hZGMwNTQ4NmMyOTQxNjQ5CiAgICAgZjBmOTYxZjU4OTBjMzM4YS43OGUyYWY3ZTFhZTYyZjdiLjY5NjkzZWRjZGZkMTJkNGMuMzgyMDgzYjkxNGUxNTJiMwotICAgIGQyNjA2MmQ4MDljNWM0NGMuYjY4YjgwNzMxMGI3ZGUwYy41YTY4NGQzYWM2MDJlZTE4LjM5YjMwOWJkZWQ2MjYxOGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzUyMDM1NWJkNjI4ZmU0Yi5lOTY5M2VkY2RmZDEyZDRjCiAgICAgZmI2ZmUzYmFkMGQ5YzJkYi4zNTE4ZTExYmI3NGZmY2QwLjY0ZWFkZjVmYTZjN2ZlZGIuMGNjNGUzZmVlOGE1ODA4MQogICAgIDBkYTEwYmU4YTIzNmVhM2UKIAotVk1PVk1TS1BEXzEyOChyZWcpCitWSFNVQlBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDk4OTQ3ZmU3YjZhMGRjNmUuNDZmMTYxODZmYjUzZTk2Mi40ZmQ3ZDBlMmFiM2JjMjcxLjYyYjk2ZjM4OWIyZDE5YzAKICAgICAwOWVhM2E2OGMwNmY5MmJlLjkxYjQ1NjI4YTU0MGY0MGUuNjIxMjQ4MzU4NzA2NmY5Yi4zMmEyNzliMWMzM2ZmYWY0CkBAIC0zNzIzOSwxMiArMzcyMzksMTIgQEAKICAgICAwY2VmNzY5YzI5NmQzOTZjLjk0Mjg5YTllZTlhMWE5ODMuZGUyZmM0MmE2ODZhNjkzZC5iNWYxZWMzNDE1OTgwMmY4CiAgICAgMWZlZjRjMTY3OWY3OWYyMAogICBhZnRlcgotICAgIDk4OTQ3ZmU3YjZhMGRjNmUuNDZmMTYxODZmYjUzZTk2Mi40ZmQ3ZDBlMmFiM2JjMjcxLjYyYjk2ZjM4OWIyZDE5YzAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDgxNjQ1N2VlNzNjM2RmYi5lMjEyNDgzNTg3MDY2ZjliCiAgICAgMDllYTNhNjhjMDZmOTJiZS45MWI0NTYyOGE1NDBmNDBlLjYyMTI0ODM1ODcwNjZmOWIuMzJhMjc5YjFjMzNmZmFmNAogICAgIGJjZWYzOWQ1NWUyZjQ4ZDkuYjc4MjQwOGNlYmFiYTAwYS5jODE2NDU3ZWU3M2MzZGZiLmFmNzA3OWI3MzcwOTVmYTMKICAgICAwY2VmNzY5YzI5NmQzOTZjLjk0Mjg5YTllZTlhMWE5ODMuZGUyZmM0MmE2ODZhNjkzZC5iNWYxZWMzNDE1OTgwMmY4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMwotVk1PVk1TS1BEXzEyOChtZW0pCisgICAgMWZlZjRjMTY3OWY3OWYyMAorVkhTVUJQRF8xMjgobWVtKQogICBiZWZvcmUKICAgICBjYjM4MTc0ODdlMzJmNDQ2LjU3MzZlZjI3YmZiNGEyMjIuMDM3MmUxNGFiOTJjY2JhNC4wMWE5YzBhNmE1MWIyZjBjCiAgICAgOTQ5NmM5YjY0MDU2YmI5Ny5mODBmOWZlNGJjOTFiZmE5LmUyMmI4ZjdjN2E1YWMxOWEuOGJjZjM0NWQzYmRiY2IxNQpAQCAtMzcyNTQsMTEgKzM3MjU0LDExIEBACiAgIGFmdGVyCiAgICAgY2IzODE3NDg3ZTMyZjQ0Ni41NzM2ZWYyN2JmYjRhMjIyLjAzNzJlMTRhYjkyY2NiYTQuMDFhOWMwYTZhNTFiMmYwYwogICAgIDk0OTZjOWI2NDA1NmJiOTcuZjgwZjlmZTRiYzkxYmZhOS5lMjJiOGY3YzdhNWFjMTlhLjhiY2YzNDVkM2JkYmNiMTUKLSAgICA1NWQ2ZGM0YmRjNmViMTNlLjRiYzg4MjNlYmE4ZmNjYWEuMGIyMTIyMjE0NTM3NDg5MS5kOWVmMWZiYWM1Mzc3ODAzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgzNzJlMTRhYjg1ZWM2NmYuNjIyYjhmN2M3YTVhYzE5YQogICAgIGVjYzNjZWY1NmU4NjkxNjkuYWJhYjk1YTA1ODNhMDRkNC41YzFlMTUyMzM4Y2QxY2I0LjQ3NTM3YTJiZTBiYTczODMKICAgICAzMjQ4NDIxYjI3ZjBmNzQxCiAKLVZNT1ZNU0tQRF8xMjgocmVnKQorVkhTVUJQRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBmNDFhNzRmNjM2NjY0MmU4LjMzMmIxOWEwMTBhYjE4NDEuNzYwNWQyNzgzMDFlYTRkMS5iMGVmZTQ3MDZmMmJmODMwCiAgICAgZWExNTBiMjhhYmE3OGUyNS4wOGQ5M2IzNmUxZTgwMmY1LjA3MjIzNzMxZGVjOGU4NGQuZTI2MDBjZjIwNTVhOTkzMQpAQCAtMzcyNjYsMTIgKzM3MjY2LDEyIEBACiAgICAgZTJiNTU5NDIzMGJiMWIwZi5jODM1ZjJkNjdhZGNlZjliLmVhZDQ2N2Y3MmU5YzRhNzUuNTQ1MjUzNGFjMDYwMWE3MAogICAgIDRjNmI2Y2Y3MWM0ZTcxMDYKICAgYWZ0ZXIKLSAgICBmNDFhNzRmNjM2NjY0MmU4LjMzMmIxOWEwMTBhYjE4NDEuNzYwNWQyNzgzMDFlYTRkMS5iMGVmZTQ3MDZmMmJmODMwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwM2QwODk3MTc2OGJiZTIuZTI2MDBjZjIwNTVhOTkzMQogICAgIGVhMTUwYjI4YWJhNzhlMjUuMDhkOTNiMzZlMWU4MDJmNS4wNzIyMzczMWRlYzhlODRkLmUyNjAwY2YyMDU1YTk5MzEKICAgICA3MDg1MDMxZDFmM2YxN2EzLjQ1OThiMGE0ZmI0YTBiYWUuYjk0ZWJmMzhmZmM0MGJmNS5kMDNkMDg5NzE3NjhiYmUyCiAgICAgZTJiNTU5NDIzMGJiMWIwZi5jODM1ZjJkNjdhZGNlZjliLmVhZDQ2N2Y3MmU5YzRhNzUuNTQ1MjUzNGFjMDYwMWE3MAotICAgIDAwMDAwMDAwMDAwMDAwMDIKLVZNT1ZNU0tQRF8xMjgobWVtKQorICAgIDRjNmI2Y2Y3MWM0ZTcxMDYKK1ZIU1VCUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTI1M2NjOGE0ODNmN2RkMS45Y2YzMDgwMTdhYTZkNDE1LjZiN2M3ZmI5N2JhYTY5ZTYuZjQwMjI5ZGIwOGRlZTE3OAogICAgIDAzZDdmMGVmNjAzZWZhZmMuZmE4OTBiYzc5ODhkN2Y2MC4wYjM5ZDIzODE5YzAzNmJjLjM1MjIwMzUxMjgxNTBjYWIKQEAgLTM3MjgxLDExICszNzI4MSwxMSBAQAogICBhZnRlcgogICAgIDkyNTNjYzhhNDgzZjdkZDEuOWNmMzA4MDE3YWE2ZDQxNS42YjdjN2ZiOTdiYWE2OWU2LmY0MDIyOWRiMDhkZWUxNzgKICAgICAwM2Q3ZjBlZjYwM2VmYWZjLmZhODkwYmM3OTg4ZDdmNjAuMGIzOWQyMzgxOWMwMzZiYy4zNTIyMDM1MTI4MTUwY2FiCi0gICAgN2NjMzU1MTI3ZjU4YTNiNC41OGM0NjAwMTI2ZmE1ODlkLjg1Mzg2NzNlNzEyYjExNDguMDc4MWYwYzMyYmNlMDZiYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNDAyMjlkYjA4ZGVlMTc4LjM1MjIwMzUxMjgxNTBjYWIKICAgICBkN2UzNzZlMGMxOTgzNTI1LjEyZjAwMzFhYzE3YzlhNzcuYjM0NGJhYjk5ZWY2YjhiNy5jODZiZWM5ZmFjOTQwYzUwCiAgICAgZDIyY2Y0NGY0OGYzNWExOQogCi1WTU9WTVNLUERfMjU2KHJlZykKK1ZIU1VCUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgODMwZjAyNDE5YTc4MmJjMy5mMTAzY2Y0MzQzMGE2YzdhLjg0NThlZTdkMDQ5YzgyOWIuNzIyYjQ4OTRiYzJlZTUzNAogICAgIDM1NjIxNGUwM2VhZWJjZjcuYTZlZmRkMjkyMGJhMDRlMC4wYTRhMWY5ODhjZTg0Y2I1LjlmYjc4Y2JiZThkZDU0ZWMKQEAgLTM3MjkzLDEyICszNzI5MywxMiBAQAogICAgIDEwODMzMWQ1ZWY1ZTBlYjQuNTI1YTA0MmE1ZDA2NDU4ZC5jMWY4NDBhM2Q5MzI3NTc5LmFlZjEyNjlkZDlkNmVjYmMKICAgICA0OTM3NzUzMGQ2Mzc4YzJjCiAgIGFmdGVyCi0gICAgODMwZjAyNDE5YTc4MmJjMy5mMTAzY2Y0MzQzMGE2YzdhLjg0NThlZTdkMDQ5YzgyOWIuNzIyYjQ4OTRiYzJlZTUzNAorICAgIGQzNzIxYTdjNzViNWI4ODIuYjU2MjE0ZTAzZWFlYmNmNy4xNGI1MDIxYTNlMTJjMzBiLjlmYjc4Y2JiZThkZDU0ZWMKICAgICAzNTYyMTRlMDNlYWViY2Y3LmE2ZWZkZDI5MjBiYTA0ZTAuMGE0YTFmOTg4Y2U4NGNiNS45ZmI3OGNiYmU4ZGQ1NGVjCiAgICAgNDU2ZjI1OThkMjIxNDk2NC5kMzcyMWE3Yzc1YjViODgyLjAwMTA5MWQ2ZjRlYjMzNzAuMTRiNTAyMWEzZTEyYzMwYgogICAgIDEwODMzMWQ1ZWY1ZTBlYjQuNTI1YTA0MmE1ZDA2NDU4ZC5jMWY4NDBhM2Q5MzI3NTc5LmFlZjEyNjlkZDlkNmVjYmMKLSAgICAwMDAwMDAwMDAwMDAwMDAzCi1WTU9WTVNLUERfMjU2KG1lbSkKKyAgICA0OTM3NzUzMGQ2Mzc4YzJjCitWSFNVQlBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGMxNTI2OWMwNTA0MDVmODYuZjBlYTM1MDMzM2YwNDY5NC4wMDcxMTYxZWY1YmE2NzJkLmFiNGMyOTZiZDY0NzRjN2IKICAgICBmMjEwODAzNzYzZmUyMGY3LjQyZjAyYzhmMzk2MzJlYWYuYjk4NGNkNDQ1OGRjZGE4ZC4xOTU5NDY5Yjg4YjlmNDIzCkBAIC0zNzMwOCwxMSArMzczMDgsMTEgQEAKICAgYWZ0ZXIKICAgICBjMTUyNjljMDUwNDA1Zjg2LmYwZWEzNTAzMzNmMDQ2OTQuMDA3MTE2MWVmNWJhNjcyZC5hYjRjMjk2YmQ2NDc0YzdiCiAgICAgZjIxMDgwMzc2M2ZlMjBmNy40MmYwMmM4ZjM5NjMyZWFmLmI5ODRjZDQ0NThkY2RhOGQuMTk1OTQ2OWI4OGI5ZjQyMwotICAgIGI5M2IzNTgzMmM3YzhjYWIuNjJlMTEyZTM5ZTQ0MDJiMi41OTVmYTM4N2EzNzg1OWRhLjY3NmI5NTlkOGExMWFiMWQKKyAgICBmMGVhMzUwMzMzZjA0Njk0LjcyMTA4MDM3NjNmZTIwZjcuYWI0YzI5NmJkNjQ3NGM3Yi4zOTg0Y2Q0NDU4ZGNkYThkCiAgICAgZjBhMDA1OGVjNmM2NWZjZC5hYzA5ZTM2ZGZlMWVmZDQ4LmJjY2UxNmQ2ZjE5YmExM2YuZjBjZDExZGU3OWRkYWIxNAogICAgIDEyY2RiNmNiZjBhODMxYjQKIAotVk1PVk1TS1BEXzI1NihyZWcpCitWSFNVQlBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDI4YjU4MWNmOGNmZjc4YWIuNzQwYjZhNDY0ZWU5NTQ4YS43ZGIzOWI5N2Y0N2Q1ZDFlLmJlOWNhMTFhNWY1MDZkZTkKICAgICA4ZGQyNmM1NWU4NmRiZWEzLjIxNDhlMjk2ZGZmMDI4MGQuMmYyYzM3Y2YxY2VlNWJlMC4zYjk3YzA0MDA4YTM3YjA0CkBAIC0zNzMyMCwxMiArMzczMjAsMTIgQEAKICAgICBiOGRiOTg5YzUxYmUzMTQ3LjY1NjdmOGFlOGVkYTVkMTguYTliYjA4MTU3NDMzMjhkNi4xNjNmYWJlMzdjNTQ0ODNiCiAgICAgMmM4NTZmMzc4MGNiN2ZhZgogICBhZnRlcgotICAgIDI4YjU4MWNmOGNmZjc4YWIuNzQwYjZhNDY0ZWU5NTQ4YS43ZGIzOWI5N2Y0N2Q1ZDFlLmJlOWNhMTFhNWY1MDZkZTkKKyAgICBkMjIzZTg2YTk2ZTc5NzgzLjIxNDhlMjk2ZGZmMDI4MGQuOWZjMGIyODAxM2ZjMzYzOS4zYjk3YzA0MDA4YTM3YjA0CiAgICAgOGRkMjZjNTVlODZkYmVhMy4yMTQ4ZTI5NmRmZjAyODBkLjJmMmMzN2NmMWNlZTViZTAuM2I5N2MwNDAwOGEzN2IwNAogICAgIDlmNzA3NWNiYTA3ZTNkNDguZDIyM2U4NmE5NmU3OTc4My4xZmMwYjI4MDEzZmMzNjM5LjBmODllZjM0MDhhMDg1YmIKICAgICBiOGRiOTg5YzUxYmUzMTQ3LjY1NjdmOGFlOGVkYTVkMTguYTliYjA4MTU3NDMzMjhkNi4xNjNmYWJlMzdjNTQ0ODNiCi0gICAgMDAwMDAwMDAwMDAwMDAwYQotVk1PVk1TS1BEXzI1NihtZW0pCisgICAgMmM4NTZmMzc4MGNiN2ZhZgorVkhTVUJQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICAyZDI3YjcxZTJmMGZlNzQ0LjM2NWZjZjM0OTdiYWQ4NGMuYjVlMjhmNGVlNGQ2MzVmNy4yOTY5MzVmY2RjMjA2ZjYyCiAgICAgZjVmMGZmODNhNTJlM2MyNi43MzQ3MThmZjBkZmU2YzAyLjllNWUyNzM2YjNlN2RjNGQuZmIxNjM1YTBlNjRlNDQ4YQpAQCAtMzczMzUsMTEgKzM3MzM1LDExIEBACiAgIGFmdGVyCiAgICAgMmQyN2I3MWUyZjBmZTc0NC4zNjVmY2YzNDk3YmFkODRjLmI1ZTI4ZjRlZTRkNjM1ZjcuMjk2OTM1ZmNkYzIwNmY2MgogICAgIGY1ZjBmZjgzYTUyZTNjMjYuNzM0NzE4ZmYwZGZlNmMwMi45ZTVlMjczNmIzZTdkYzRkLmZiMTYzNWEwZTY0ZTQ0OGEKLSAgICA1ZmFlYzQ1MWZmMzQzYTgwLmNkZTE2ZDY5NGYxNDJhMTYuZmNhODNlNTIxODE3MGU0NS43YjBkMDU2ZDJmNGFlNmZhCisgICAgMzY1ZmNmMzQ5N2JhZDg0Yy43NWYwZmY4M2E1MmUzZjA5LjM1ZTI4ZjRlZTRkNjM1ZjcuZmIxNjM1YTBlNjRlNDQ4YQogICAgIDQ5MmI4MDc2NTkyYjljN2YuOWU3N2NjZGVmYThhNGQzMy5hYjhjNGY4ZTJlNzQ4NzBjLjA1OWJhMGQwNTI5ZjhmNWQKICAgICBmNDBkMDIzM2ViZDk3YzYwCiAKLVZNT1ZNU0tQRF8yNTYocmVnKQorVkhTVUJQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBhNmFjMjcwMzk3ODRlOWFlLjhlMzRiMWRkY2QyMTFmNGUuNDM1NjMxY2JhOWVjMTMwNy44NmQ1ZDZkNzEyMGEwMmNlCiAgICAgNzZjNzBjYWRmMjJkMTFmNC4wYTk1ZDI3MjdhMjI3ZjFhLjE5Y2E5NjlhZjljNGI2M2IuNmI1MTUwMTdkZmUzM2NiNgpAQCAtMzczNDcsMTIgKzM3MzQ3LDEyIEBACiAgICAgZTA5ZTAzM2IyMmE3ODUxNy4xNjhmZDVkN2U5NzFjNTU4LmMzYTA1NTkyZWEwYzg1NzkuYmYwZTBhMzFhNTk0ZGNhYQogICAgIGU3ZTc0MmUyZDc4M2JhMGUKICAgYWZ0ZXIKLSAgICBhNmFjMjcwMzk3ODRlOWFlLjhlMzRiMWRkY2QyMTFmNGUuNDM1NjMxY2JhOWVjMTMwNy44NmQ1ZDZkNzEyMGEwMmNlCisgICAgNDBhOWFjOWI5NzVmMzFkZC5mNmM3MGNhZGYyMmQxMWY0LmZhMWZmOWI5ODVhMDcyN2QuNmI1MTUwMTdkZmUzM2NiNgogICAgIDc2YzcwY2FkZjIyZDExZjQuMGE5NWQyNzI3YTIyN2YxYS4xOWNhOTY5YWY5YzRiNjNiLjZiNTE1MDE3ZGZlMzNjYjYKICAgICBjMGE5YWM5Yjk3NWYzMWRkLjk4MWE2MDIyNzkzODc4MGYuN2ExZmY5Yjk4NWEwNzI3ZC4zNWNhMzgzY2IxMGRmMWYwCiAgICAgZTA5ZTAzM2IyMmE3ODUxNy4xNjhmZDVkN2U5NzFjNTU4LmMzYTA1NTkyZWEwYzg1NzkuYmYwZTBhMzFhNTk0ZGNhYQotICAgIDAwMDAwMDAwMDAwMDAwMGIKLVZNT1ZNU0tQRF8yNTYobWVtKQorICAgIGU3ZTc0MmUyZDc4M2JhMGUKK1ZIU1VCUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgODgyMjVjM2I2MmU2NDc0OC4zMWYxMGRmODMwOTA0ODRiLjVmYmZhZjdlZTNkOTIzMjEuNTE5YmE2OTNjMzkyMjlkYgogICAgIDdkOGJkNTI4NjJjOTNmODUuMTFlZmM2M2U1ZGE2YjgyOC40ZTc4NjkwNDg2N2I0ZTk4LjdlNWFlODI3YWRjMDliNGUKQEAgLTM3MzYyLDExICszNzM2MiwxMSBAQAogICBhZnRlcgogICAgIDg4MjI1YzNiNjJlNjQ3NDguMzFmMTBkZjgzMDkwNDg0Yi41ZmJmYWY3ZWUzZDkyMzIxLjUxOWJhNjkzYzM5MjI5ZGIKICAgICA3ZDhiZDUyODYyYzkzZjg1LjExZWZjNjNlNWRhNmI4MjguNGU3ODY5MDQ4NjdiNGU5OC43ZTVhZTgyN2FkYzA5YjRlCi0gICAgYTRlZDI4OTVmNDM5NWRmMS5kYmU0MmI3OTQ0NzUwZjU4LmMxODQ3ZjUzZWI2MzAxZTcuYTcyYTE4YmE0MzIyMTc3ZQorICAgIDMxZjEwZGY4MzA5MDQ4NGIuZmQ4YmQ1Mjg2MmM5M2Y4NS5kZmJmYWY3ZWUzZDkyMzIxLjdlNWFlODI3YWRjMDliNGUKICAgICBkNzE2ZDE2ZTMzNDE1ZWI3LmVhMWMzNzE1ODE4YTg5ODcuOTJiMDZlNTkzMDlkZjkzYS4yODU3MzBiODIyNDJkODE5CiAgICAgNWQyZDJlOGRlNWFlMWJjOAogCi1WTU9WTVNLUFNfMTI4KHJlZykKK1ZFWFRSQUNUUFNfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgYTJmODBlYTUyOWYyMWMzYS5mNGQwNGM5ZjNjZWRmZTA0LjljZTNlNjdlYjE3MDY0NjIuOWZjOGIwMDE3MTM2ZjJiZQogICAgIDUzMDNjYTZjODk5OTE2MTkuZDVlODE2MTUyYjRhZjgwNC40Yzg0MzQyMDZmYjRkYTk1LmMyOThjMzM3YzkzOWE4OWYKQEAgLTM3Mzc4LDggKzM3Mzc4LDggQEAKICAgICA1MzAzY2E2Yzg5OTkxNjE5LmQ1ZTgxNjE1MmI0YWY4MDQuNGM4NDM0MjA2ZmI0ZGE5NS5jMjk4YzMzN2M5MzlhODlmCiAgICAgY2M5YjYwNGZhMTJmNDYxMS41ODJhYTliYTFhNjMwOWUyLjU1NGQxZTY4NThlMTI4Y2IuZDllYjIyZTc1NWIyZDYwOAogICAgIDY5MGRjYWI4MGU0MGU4ZDAuNTc2MjgzN2MyODQ1ZWRjYS4xNTg4OWZjMDA3ODM4OWIxLmJlOGY0YWZkMzBhZTM5MjYKLSAgICAwMDAwMDAwMDAwMDAwMDAyCi1WTU9WTVNLUFNfMTI4KG1lbSkKKyAgICAwMDAwMDAwMGM5MzlhODlmCitWRVhUUkFDVFBTXzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDY2ZjVlMTBiNDQ1ZDhkMmYuODZhMzA3MTU2YjU5MzhmZi5hZjVjMWY0NTZlZmI2MGVhLmU2ODJiMzk1MTkyNzNiZjMKICAgICBlMDUwNDlkYmI1MjhmNjczLjdmYTkxMGQxNTUwNTcxNGQuM2RlM2ZhMDMwYTkxMWQ2Yi4yNjg3NTY1NDI5NTg3ODNjCkBAIC0zNzM4NywxMyArMzczODcsMTMgQEAKICAgICA2ZDUxYmVhYWYyZTBmMzU0Ljc1M2E3YTE1M2Y0NzkxZjAuNjZjYzU5MGJiMzhlNjg0Ny41ZWUyM2EzZGI1OTI4NTk1CiAgICAgMTBjZjczM2Y2OGIzY2RmYwogICBhZnRlcgotICAgIDY2ZjVlMTBiNDQ1ZDhkMmYuODZhMzA3MTU2YjU5MzhmZi5hZjVjMWY0NTZlZmI2MGVhLmU2ODJiMzk1MTkyNzNiZjMKKyAgICA2NmY1ZTEwYjQ0NWQ4ZDJmLjg2YTMwNzE1NmI1OTM4ZmYuYWY1YzFmNDU2ZWZiNjBlYS5lNjgyYjM5NTI5NTg3ODNjCiAgICAgZTA1MDQ5ZGJiNTI4ZjY3My43ZmE5MTBkMTU1MDU3MTRkLjNkZTNmYTAzMGE5MTFkNmIuMjY4NzU2NTQyOTU4NzgzYwogICAgIDk5MmI2OWMyZTZhNTg0MWIuYjA2ZGUyNTc2OGQwZDA2NC5kYmM1OGVhMTE4MTNlMTdjLjJmZTM4NDY4ZDRhMjdjMzgKICAgICA2ZDUxYmVhYWYyZTBmMzU0Ljc1M2E3YTE1M2Y0NzkxZjAuNjZjYzU5MGJiMzhlNjg0Ny41ZWUyM2EzZGI1OTI4NTk1CiAgICAgMTBjZjczM2Y2OGIzY2RmYwogCi1WTU9WTVNLUFNfMTI4KHJlZykKK1ZFWFRSQUNUUFNfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgOWZmNzJiZGE4YTkxOTExYy4zOTkwYzI4MWY2ZTZmZTRhLjJhNWJkMzc2NzZmNWYwOWUuYmFjNWQ2MmRmODBkNmRmOQogICAgIDY4YTc1ZTdhYjdiOTBjOWYuZDdiMmYzMzEwZWMyNjIyOC4yYjFkZTllNmFhNjcyODFhLmI0N2M4MWYzMDI5ZGFkYmQKQEAgLTM3NDA1LDggKzM3NDA1LDggQEAKICAgICA2OGE3NWU3YWI3YjkwYzlmLmQ3YjJmMzMxMGVjMjYyMjguMmIxZGU5ZTZhYTY3MjgxYS5iNDdjODFmMzAyOWRhZGJkCiAgICAgYzgyOTA5OGI4YWI2N2MzMi4yNDg0Y2NhODU0ODFkYjFhLmQzY2RiOWQxNzYyODc2MTAuMmViZGQ3NDllZDQ5ZTRjMAogICAgIDE5Y2EyNjc5OWYxNDFiODAuZmNkM2NhZDFlNzJlMjU0ZC44MGI1M2RhNDc3YzQxNjJhLjA1NTM1MzFjZDYxZGNlMmQKLSAgICAwMDAwMDAwMDAwMDAwMDA5Ci1WTU9WTVNLUFNfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAyOWRhZGJkCitWRVhUUkFDVFBTXzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDNhYjJhZGU1MTE2ZWE5ZjguYjhkNWIzYjA5MzYwMjYzNi4zYjY4Njc5OGUwZDVmYmVkLjhkMjE3M2M5NDhjNzQzMTcKICAgICA1MDEyODNiMzlhMDQxM2FkLjAxOThhYjlkMDIyNWQ4ZmYuYmQxMjIxZTk1ZDgzMWEyNi41NjVmNTZhZDg1YmUzYTgxCkBAIC0zNzQxNCwxMyArMzc0MTQsMTMgQEAKICAgICBiZjMwZWVjMTExNDM4YjkzLjAxNzFjZDQ1YmU0YjI0N2QuZmFkMWQ5ZGE1MjIxMjIxMC44YjdkMTQ2M2I2YjY3NjdlCiAgICAgYWZmNWU3MGRlMWNmMzI2OQogICBhZnRlcgotICAgIDNhYjJhZGU1MTE2ZWE5ZjguYjhkNWIzYjA5MzYwMjYzNi4zYjY4Njc5OGUwZDVmYmVkLjhkMjE3M2M5NDhjNzQzMTcKKyAgICAzYWIyYWRlNTExNmVhOWY4LmI4ZDViM2IwOTM2MDI2MzYuM2I2ODY3OThlMGQ1ZmJlZC44ZDIxNzNjOTg1YmUzYTgxCiAgICAgNTAxMjgzYjM5YTA0MTNhZC4wMTk4YWI5ZDAyMjVkOGZmLmJkMTIyMWU5NWQ4MzFhMjYuNTY1ZjU2YWQ4NWJlM2E4MQogICAgIDMzZjg3MGFlOTFmMTIwN2QuNTA1ZDBiYWE4N2VmNmU4OC41ZTljNzNiMDdhNDMzZDIzLjM2YjllMmJkY2MzNTM3MTUKICAgICBiZjMwZWVjMTExNDM4YjkzLjAxNzFjZDQ1YmU0YjI0N2QuZmFkMWQ5ZGE1MjIxMjIxMC44YjdkMTQ2M2I2YjY3NjdlCiAgICAgYWZmNWU3MGRlMWNmMzI2OQogCi1WTU9WTVNLUFNfMTI4KHJlZykKK1ZFWFRSQUNUUFNfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgMDA2ZTU3MjZlOTBiYTg4Mi5kMDg2N2JkODM3MDUxMTFjLjcxMjFlZmQ5NDRjNDM2ODkuNmQ3ZWNmNTEwMjJhODMxYQogICAgIGQ5MzQ2MDFhNjlmNzE0NzQuNDJjNTkzZGYxZTQ0NmU0NC5mYWI2NmNkMmI0ZTZkZjU5LjkzNmZkMjAyYTU2OTFkNmQKQEAgLTM3NDMyLDggKzM3NDMyLDggQEAKICAgICBkOTM0NjAxYTY5ZjcxNDc0LjQyYzU5M2RmMWU0NDZlNDQuZmFiNjZjZDJiNGU2ZGY1OS45MzZmZDIwMmE1NjkxZDZkCiAgICAgOTU5MmZlNTVmZDFlYjFlYi5mMWJiYjBjMmUzMGI1ZDM2LmY5N2Y0MDljYWIzZTVjOTguNDg3MDVkZGE1N2VhYWIzNQogICAgIDkyZDYyZTQzNDIwY2JjOTUuYjkzMjUwNmRhMTY2OWIxZS5jYWM3NjhhM2M0NTdlOWYzLjY4NGRlY2M0MzViOWVhOWQKLSAgICAwMDAwMDAwMDAwMDAwMDBjCi1WTU9WTVNLUFNfMTI4KG1lbSkKKyAgICAwMDAwMDAwMGE1NjkxZDZkCitWRVhUUkFDVFBTXzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDU4Y2EwNjdkZTM3NDZiZmUuMmE0YWVhNTBkNDRlNzExYi43NWY3ZWRjYzc1NjJlNDJhLmM4ZDlkZjUzOWNiZWMyMTYKICAgICBlMTAzOGEyNWVjNzYyNDUwLmJhM2MzMGU4NGQ2ZjBjMmMuMDNkNjA2Y2I3YTBhZjM4NC41MTAzYTExOGNlZmUyMmFjCkBAIC0zNzQ0MSwxMyArMzc0NDEsMTMgQEAKICAgICA2MDYzZWFhN2ViMDMzNTExLjMzYzU0ODZhNmI3ZmUyOWEuMDIxMTk0NWE4OThmNTdkMy43MWNhZjY5MmIxMzk2OWUzCiAgICAgYzAwMDgyMWU5YjRkYzlkYwogICBhZnRlcgotICAgIDU4Y2EwNjdkZTM3NDZiZmUuMmE0YWVhNTBkNDRlNzExYi43NWY3ZWRjYzc1NjJlNDJhLmM4ZDlkZjUzOWNiZWMyMTYKKyAgICA1OGNhMDY3ZGUzNzQ2YmZlLjJhNGFlYTUwZDQ0ZTcxMWIuNzVmN2VkY2M3NTYyZTQyYS5jOGQ5ZGY1M2NlZmUyMmFjCiAgICAgZTEwMzhhMjVlYzc2MjQ1MC5iYTNjMzBlODRkNmYwYzJjLjAzZDYwNmNiN2EwYWYzODQuNTEwM2ExMThjZWZlMjJhYwogICAgIDQ1NDcwMjhmOTBmNzdlZjIuOWZmNmZjNzg0Y2ZiYzg3Mi4zZTlhMTQ1N2NjNmE4NjU4LmMwOGZhYTVlZjZhMzQ2NjIKICAgICA2MDYzZWFhN2ViMDMzNTExLjMzYzU0ODZhNmI3ZmUyOWEuMDIxMTk0NWE4OThmNTdkMy43MWNhZjY5MmIxMzk2OWUzCiAgICAgYzAwMDgyMWU5YjRkYzlkYwogCi1WTU9WTVNLUFNfMjU2KHJlZykKK1ZFWFRSQUNUUFNfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgMDk3YzQ4NzA0ZjZhYTBmOC4wZDIzYmY1OTFhYTUwNWQ5LmQzZjQxMjJjNDY4Njk2NGYuMmEwNTAzYzJjYTg0MjIyMQogICAgIGE4OGM0NmYyNjkxZDJiZTUuMmE1MmZiOTIzOGU5YTk3NS5kY2QxNTUyODdhOWMxZjNlLjk0NDRkYzdhYWQ1NmE1NmQKQEAgLTM3NDU5LDggKzM3NDU5LDggQEAKICAgICBhODhjNDZmMjY5MWQyYmU1LjJhNTJmYjkyMzhlOWE5NzUuZGNkMTU1Mjg3YTljMWYzZS45NDQ0ZGM3YWFkNTZhNTZkCiAgICAgZjg3YTc4MTI4NmYwYTU0Yy45MmJlMWMzYzYyZGJkZTEyLmE4YTYwZGNjYTI0ZWJhMTIuMWI5ODliNmU0ZTBmOWFlNAogICAgIDU3OTNkODNiNDI3MjRiZGMuMjAzMTlkNDRiMzg4NjBkYi45NGMxMzY4MzViMjdhMzc4LjlhY2ViZDhhYzhiZGJlYjIKLSAgICAwMDAwMDAwMDAwMDAwMDFiCi1WTU9WTVNLUFNfMjU2KG1lbSkKKyAgICAwMDAwMDAwMDk0NDRkYzdhCitWRVhUUkFDVFBTXzB4MShtZW0pCiAgIGJlZm9yZQogICAgIGY0MGYxNmVhYjgyNjgxMDEuMjAyMzY0ZDkzODJjNTkzZS5iMjc4ZmE5NzQ3ZmJlYWZkLmZjNmNjZGI5NDBiMzE2MWMKICAgICA4N2IzNDYwNjY2ZmE5OWRhLmFlNzYxNzU4MDRhYzBiMjEuMjI1ZmIwMjAzYzQwMzlhMy4zY2Y0Y2NkYWVkN2Y0ZWE5CkBAIC0zNzQ2OCwxMyArMzc0NjgsMTMgQEAKICAgICBjM2ZiMTliM2JiMTllMmNjLjhkOTVlMmFhOTAyYzRhMTUuMTAzZDEzODNiMjcyMTYyZS5iNWNhZjg4ZDEyMDQwMDMwCiAgICAgYTViMTFiZjdjMWQ2ZjE4MgogICBhZnRlcgotICAgIGY0MGYxNmVhYjgyNjgxMDEuMjAyMzY0ZDkzODJjNTkzZS5iMjc4ZmE5NzQ3ZmJlYWZkLmZjNmNjZGI5NDBiMzE2MWMKKyAgICBmNDBmMTZlYWI4MjY4MTAxLjIwMjM2NGQ5MzgyYzU5M2UuYjI3OGZhOTc0N2ZiZWFmZC5mYzZjY2RiOTNjZjRjY2RhCiAgICAgODdiMzQ2MDY2NmZhOTlkYS5hZTc2MTc1ODA0YWMwYjIxLjIyNWZiMDIwM2M0MDM5YTMuM2NmNGNjZGFlZDdmNGVhOQogICAgIDgyNjhjOGZhNWVmMWQwYmEuNWZkOGVkMjQ0MzdkOWQyZi40ZWIyMzljYWFiNjQwOWZhLmIxYTUzMTUyZmYxNjg4Y2MKICAgICBjM2ZiMTliM2JiMTllMmNjLjhkOTVlMmFhOTAyYzRhMTUuMTAzZDEzODNiMjcyMTYyZS5iNWNhZjg4ZDEyMDQwMDMwCiAgICAgYTViMTFiZjdjMWQ2ZjE4MgogCi1WTU9WTVNLUFNfMjU2KHJlZykKK1ZFWFRSQUNUUFNfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgZGRhNDk4ZmRhODE3OTk2ZS4yNDM4YjQxYjlhN2Q4YTNkLjk2ZjhmMzU0ODg0NDRmN2UuNDZjY2I5MzY2ZDc3MWI2YQogICAgIGI5ZjA2YTA5NjQ1MzMyOWYuODNlYjE1MjAxNjI5ODUzOS5kNDRlMWE4ZmM2NTFlNzE3LmNhMmFhOGNmZjc3ZGQ1ZGIKQEAgLTM3NDg2LDggKzM3NDg2LDggQEAKICAgICBiOWYwNmEwOTY0NTMzMjlmLjgzZWIxNTIwMTYyOTg1MzkuZDQ0ZTFhOGZjNjUxZTcxNy5jYTJhYThjZmY3N2RkNWRiCiAgICAgOTVlMThkODk5MTE3ZjhjMi5iYWUwYjhhYzRjMmE4ZWViLmE1ZTM1NWM4ZTdlMDRmOGIuNzkyNDVhM2E2YzkzMDBhZAogICAgIGNkYzNmZGU3Y2FlZTI5ODIuYTZlMjE5YWQ1NzhiNjM4MC42MzAzOWY2OTg2N2NjMzg4LjMwODc0ZDY0ZTljMjU3MGIKLSAgICAwMDAwMDAwMDAwMDAwMGU1Ci1WTU9WTVNLUFNfMjU2KG1lbSkKKyAgICAwMDAwMDAwMGNhMmFhOGNmCitWRVhUUkFDVFBTXzB4MShtZW0pCiAgIGJlZm9yZQogICAgIDIxYjJlM2EwNjlhMDdjMWQuYmRlMmI3OTFhYjY1ZmY4Yy4yNGJmYjUwZTU0NTliZTI0LjZjZmFmNWUwNDBiMTdmYjcKICAgICAxNDE0N2Y4Y2E1NjdjMjI4LmMwOGFiNWYyZDEwN2I2OGMuMGU0MTA3YmI1ZTlmNWIwMi4xYTE0NTE5OGIwMGNiZmM2CkBAIC0zNzQ5NSwxMyArMzc0OTUsMTMgQEAKICAgICAzYzZiYzI5OTllZGY1ZjIyLjc0YTM3Mjg5NWFmY2JiMWMuOTk2N2JkYTkwYWMzNGYxZS5kOWUwMTA3YjIzNjFiOTM0CiAgICAgYTEyYTZiN2U1Zjc0ZWJlYQogICBhZnRlcgotICAgIDIxYjJlM2EwNjlhMDdjMWQuYmRlMmI3OTFhYjY1ZmY4Yy4yNGJmYjUwZTU0NTliZTI0LjZjZmFmNWUwNDBiMTdmYjcKKyAgICAyMWIyZTNhMDY5YTA3YzFkLmJkZTJiNzkxYWI2NWZmOGMuMjRiZmI1MGU1NDU5YmUyNC42Y2ZhZjVlMDFhMTQ1MTk4CiAgICAgMTQxNDdmOGNhNTY3YzIyOC5jMDhhYjVmMmQxMDdiNjhjLjBlNDEwN2JiNWU5ZjViMDIuMWExNDUxOThiMDBjYmZjNgogICAgIDdmMGQ0YWU1NTc3NzI0NzEuMzQwNmY1NzZkNzYwOGMyZC40MTM1OGJhMDkxNjlmODQ2LmNiOWNiMWZkNzIxOGJlNjEKICAgICAzYzZiYzI5OTllZGY1ZjIyLjc0YTM3Mjg5NWFmY2JiMWMuOTk2N2JkYTkwYWMzNGYxZS5kOWUwMTA3YjIzNjFiOTM0CiAgICAgYTEyYTZiN2U1Zjc0ZWJlYQogCi1WTU9WTVNLUFNfMjU2KHJlZykKK1ZFWFRSQUNUUFNfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgN2ZjN2JjNzJjMWRjOTIyZi4yOGY4NjI5MzkzYTgyZjY3LmRjYWQyOTk3ZjU2ODgwMDQuZjJhMzE5YzJlNWJhMWRiMwogICAgIGQwMDMwMWMzZTUyNWU4YjEuMWY4MWE2YmY1NWUwNTA2ZS5jODcwMTQwYzQ1MmYxNzkyLjI4YjQxY2Q4M2Q1YTFkMzQKQEAgLTM3NTEzLDggKzM3NTEzLDggQEAKICAgICBkMDAzMDFjM2U1MjVlOGIxLjFmODFhNmJmNTVlMDUwNmUuYzg3MDE0MGM0NTJmMTc5Mi4yOGI0MWNkODNkNWExZDM0CiAgICAgZWUyYTM1ZGU2OGRjMjkxYS5mZGQyMGIwOWZkOTI3ZDYwLjkzMzgzMTU1ZTVkZWJiNzEuMTg2ODQxZDUyZWFkMGRjYgogICAgIDM2ODc1NDJkZTY4YzkzMTYuOWViNzBjNWRhYWNiNzM2Yy45YjUxN2JkYzcyMDBhOTRmLjljODkwNGE3ZDVjMWE3YTQKLSAgICAwMDAwMDAwMDAwMDAwMDdiCi1WTU9WTVNLUFNfMjU2KG1lbSkKKyAgICAwMDAwMDAwMDI4YjQxY2Q4CitWRVhUUkFDVFBTXzB4MShtZW0pCiAgIGJlZm9yZQogICAgIGQzNDU1NTc2YjM1YWNiY2YuMDQ2NzVhMWVmOWMxNjA1Mi5kZWZiMjVhNzc1OTZlZGJjLjNiMDZlZjBmODcyMTFkZDUKICAgICAzZTc4ZGI0YzIzZjdjZDc5LmI0MTc0NDFiNDAwOGNkN2EuOTk2Y2QyZDM3Y2ZmYTk3Yy5jZWE0ODc1OGMxY2U1M2IyCkBAIC0zNzUyMiwxMyArMzc1MjIsMTMgQEAKICAgICBmZTgzMGQ3MDhlMGU1ZWNmLjJhMTJiMWVlZDRmOTc2M2MuZjAwMGQ5ODJhZGRkZDJmZi40MWNjMThlMTExZjlmMzFiCiAgICAgZDllZDA4Zjg2MDhmZDYwMAogICBhZnRlcgotICAgIGQzNDU1NTc2YjM1YWNiY2YuMDQ2NzVhMWVmOWMxNjA1Mi5kZWZiMjVhNzc1OTZlZGJjLjNiMDZlZjBmODcyMTFkZDUKKyAgICBkMzQ1NTU3NmIzNWFjYmNmLjA0Njc1YTFlZjljMTYwNTIuZGVmYjI1YTc3NTk2ZWRiYy4zYjA2ZWYwZmNlYTQ4NzU4CiAgICAgM2U3OGRiNGMyM2Y3Y2Q3OS5iNDE3NDQxYjQwMDhjZDdhLjk5NmNkMmQzN2NmZmE5N2MuY2VhNDg3NThjMWNlNTNiMgogICAgIGFlNDllZmE2Yjg4NDZhMTUuYTJlMTBkOTI1NWVjMTYzOS5hYmQ0OGZjZGRiMTM2MWRhLmIyNzg0MTI1YmI5MTg2OGYKICAgICBmZTgzMGQ3MDhlMGU1ZWNmLjJhMTJiMWVlZDRmOTc2M2MuZjAwMGQ5ODJhZGRkZDJmZi40MWNjMThlMTExZjlmMzFiCiAgICAgZDllZDA4Zjg2MDhmZDYwMAogCi1WTU9WTlRQRF8xMjgocmVnKQorVkVYVFJBQ1RQU18weDIocmVnKQogICBiZWZvcmUKICAgICBkNDI2MGRkNjQ0ZTE2YWViLjBjZjRiMTk2YzJhMDY0ZDQuYThmNjJjOWI1YWJjMmEyZS40NGJjMmJkYzBlNjliNzFhCiAgICAgOTBjNTI0ZTc1ODdhZWM4Ny5iMzY2NTgwNDZmNDYzOTUwLjc4ZDg3YjA1ODJjMDZlYmMuODNkNDAxYzkxYmM0Y2Q1NQpAQCAtMzc1NDAsOCArMzc1NDAsOCBAQAogICAgIDkwYzUyNGU3NTg3YWVjODcuYjM2NjU4MDQ2ZjQ2Mzk1MC43OGQ4N2IwNTgyYzA2ZWJjLjgzZDQwMWM5MWJjNGNkNTUKICAgICA2NzE0NDg5NzM4ZTc5ODgxLmNmYTY3ZGE2YjEwZDk5NmYuZjYwNjk4OThlODkyN2Q5Mi44OTEzZDczNGYwZjlkMGRjCiAgICAgYjc2MDc1NTI4MWIzYWE4NC4zYzgwOWM2OWE2MDA0MDViLjdlY2E4MWMwMmFiYzk1NWIuMzI0NzI5MDlhODE0N2NkYwotICAgIDU5M2E3NDM0NWYyMjhjODEKLVZNT1ZOVFBEXzEyOChtZW0pCisgICAgMDAwMDAwMDA4MmMwNmViYworVkVYVFJBQ1RQU18weDIobWVtKQogICBiZWZvcmUKICAgICBkY2I5MzNhMTMyMmViZGY3LmRhZjVhNzg0Y2U2YTVkM2QuZDZiZjMxMzc2NzJiZTk0My42YzcxMzFlYWUxY2RlZmMzCiAgICAgOTY5MGUyM2MzYzQ0Y2I2OC4yZDFmZGE5YWJjOTllZTU4Ljc4MzFiOWZlMTI5YjUxNTEuMWM0N2E1ODBhYjRlY2E3OApAQCAtMzc1NDksMTMgKzM3NTQ5LDEzIEBACiAgICAgMWU3NjAxYWM2N2MwNmRmMi5kNDYyMzUxZWU5OGM5OTYyLjQ5ZGE4ZTIzOTU3NzRkOTEuMzJiMGM1YTRlN2Q1ZWY3MwogICAgIDRmZGE2YTBhOTBmM2IwMTIKICAgYWZ0ZXIKLSAgICBkY2I5MzNhMTMyMmViZGY3LmRhZjVhNzg0Y2U2YTVkM2QuNDlkYThlMjM5NTc3NGQ5MS4zMmIwYzVhNGU3ZDVlZjczCisgICAgZGNiOTMzYTEzMjJlYmRmNy5kYWY1YTc4NGNlNmE1ZDNkLmQ2YmYzMTM3NjcyYmU5NDMuNmM3MTMxZWExMjliNTE1MQogICAgIDk2OTBlMjNjM2M0NGNiNjguMmQxZmRhOWFiYzk5ZWU1OC43ODMxYjlmZTEyOWI1MTUxLjFjNDdhNTgwYWI0ZWNhNzgKICAgICA2MjhiZmRmMTlhNzE3MjAzLjBkMmEwYmZlZTZjYjk5ODAuMDBhMGFlYThjMzViMzRiMi5lYTk4ZDdmMDI0Y2Q2MTI0CiAgICAgMWU3NjAxYWM2N2MwNmRmMi5kNDYyMzUxZWU5OGM5OTYyLjQ5ZGE4ZTIzOTU3NzRkOTEuMzJiMGM1YTRlN2Q1ZWY3MwogICAgIDRmZGE2YTBhOTBmM2IwMTIKIAotVk1PVk5UUERfMTI4KHJlZykKK1ZFWFRSQUNUUFNfMHgyKHJlZykKICAgYmVmb3JlCiAgICAgOWY2M2MyOGRiY2IxZTJhZC5hNTFjNjk1OWMwM2Q3OTYyLmRmMTI1NDY1NjA2OTJiYWEuMmVhOWQ1NWFhNGZjNTkxYgogICAgIDdkOThjYTk4MDc5ZWJmZjAuZDI0YmIxZTVjMGY1NTI3ZS44YTg3NjQzZmU4ZWQ4YjAzLjhkZGFmZDM5MGRmNTE0N2MKQEAgLTM3NTY3LDggKzM3NTY3LDggQEAKICAgICA3ZDk4Y2E5ODA3OWViZmYwLmQyNGJiMWU1YzBmNTUyN2UuOGE4NzY0M2ZlOGVkOGIwMy44ZGRhZmQzOTBkZjUxNDdjCiAgICAgNDRjMzdjOTkwYzQzODQ4NS44M2NkNTUzYjg0ZjNiMzczLjMyMGU2MjE4MWNhNGY1MTkuNDAzOTg0YWNlYzZlM2FkZgogICAgIDUyMzFkNmZiNjcyZTZkMWIuOTI2ZmQyNDYyNzQzNTk2Yy4zMWYxNDk1Yzk5MWJhNDlhLjI1OTFlNTlmNWI3NDg2NzAKLSAgICAxNmIwOWNmZTc5MTJiNTVkCi1WTU9WTlRQRF8xMjgobWVtKQorICAgIDAwMDAwMDAwZThlZDhiMDMKK1ZFWFRSQUNUUFNfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgZjE2MDI1YjU2MDU1ODNkMC4wMjJkZDMyYmI1ZWFiNTVjLmRkZmRhMmY0YzVmMjAwOTcuZTQ3YzE1NzdmYWRkZDUyZgogICAgIDkwNmVmY2IxMmM0N2FiZjUuYWYwNTcwOTM5MTA0OTlmNS4zZTQzNDMzMDdiMGI2NDFkLmE3ZmRjMmQ1ZGI3N2M0ODcKQEAgLTM3NTc2LDEzICszNzU3NiwxMyBAQAogICAgIDhlZDQ4NjI0ZTU2ZWZjMDguNzQ3NTc2YmY2NTdmMjVkZC5iNjI2ZTUwMjllYWQ1MWYwLmNkMGRiMDBiOTA1ZmNiMmEKICAgICBlODM0ZTliYTliYzc1YmNmCiAgIGFmdGVyCi0gICAgZjE2MDI1YjU2MDU1ODNkMC4wMjJkZDMyYmI1ZWFiNTVjLmI2MjZlNTAyOWVhZDUxZjAuY2QwZGIwMGI5MDVmY2IyYQorICAgIGYxNjAyNWI1NjA1NTgzZDAuMDIyZGQzMmJiNWVhYjU1Yy5kZGZkYTJmNGM1ZjIwMDk3LmU0N2MxNTc3N2IwYjY0MWQKICAgICA5MDZlZmNiMTJjNDdhYmY1LmFmMDU3MDkzOTEwNDk5ZjUuM2U0MzQzMzA3YjBiNjQxZC5hN2ZkYzJkNWRiNzdjNDg3CiAgICAgZDFhNjllZGNmYWY3ZWFmOS5iNzAzYTdhMDk4MDc1NTkxLjkzMGMzMGU2NjU5YjQwMmQuZDZiZjRjZTJkOTczYWQ0YwogICAgIDhlZDQ4NjI0ZTU2ZWZjMDguNzQ3NTc2YmY2NTdmMjVkZC5iNjI2ZTUwMjllYWQ1MWYwLmNkMGRiMDBiOTA1ZmNiMmEKICAgICBlODM0ZTliYTliYzc1YmNmCiAKLVZNT1ZOVFBEXzEyOChyZWcpCitWRVhUUkFDVFBTXzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDgzODBmMzVkOTYzNjk4ZTQuYTRjNDMwNzMwYWJhOWQ0ZC40NGE1ZDg1YTk1Zjk0NDg0Ljg0NWJkZjcwNDI0ZDUzOTUKICAgICBmYTNkY2E1ZTFlMzhjMDE4LmYwNDExOWI3ODRlNjg4ZjUuODFlMGM5ZGZjMzAwZWYzNC5kYTc4OTkxYzZlODcwMTQ2CkBAIC0zNzU5NCw4ICszNzU5NCw4IEBACiAgICAgZmEzZGNhNWUxZTM4YzAxOC5mMDQxMTliNzg0ZTY4OGY1LjgxZTBjOWRmYzMwMGVmMzQuZGE3ODk5MWM2ZTg3MDE0NgogICAgIGE5Yjc2YjJiY2Y1OTBkMTUuNGMxOWJiZGI2ZmZmN2EyYi44OTcyNDViODhjMjA2Mjk2LjkyNDk4ZmYyM2U2ODE4MzAKICAgICBlYzM5ZDAyZjQzMjZiYzg3Ljk1MTY5NGNiZTkwZjJmMWMuYjZhNjQ5NTM4YmU1ZDg1OC44OTlhM2RkZmNkZmI1NDdlCi0gICAgOWMzNzFmY2QzNzRkNzE1ZAotVk1PVk5UUERfMTI4KG1lbSkKKyAgICAwMDAwMDAwMGMzMDBlZjM0CitWRVhUUkFDVFBTXzB4MihtZW0pCiAgIGJlZm9yZQogICAgIGE1ZWJiMmFhOTk2OTJhZjguMWYxMWY3ZDYxOTJhMDgxYi5hODA1MWY3MzBiMjU2MmY0LjY1Y2FkMDFiNWNkYzhlMjYKICAgICA4MTgzNzE2MTBlNWIzYzdjLjlkODlkYjhjZWJmMjJlN2QuNWZiMmQ4YmZmMzRhZDBkZS5mMzI4ZDY3YzljOTFjMGFjCkBAIC0zNzYwMywxMyArMzc2MDMsMTMgQEAKICAgICAyMjkwNjMwY2EzZjI1YmVlLmVmOGNjY2Q1ZjNmYmY4NTkuMmM3NWM1ZjQ4NGY2NGQ5YS4xN2M1NTBiOWQ4NjE4NzhkCiAgICAgNjY5Y2JjNmUwYjk2OTQ0MgogICBhZnRlcgotICAgIGE1ZWJiMmFhOTk2OTJhZjguMWYxMWY3ZDYxOTJhMDgxYi4yYzc1YzVmNDg0ZjY0ZDlhLjE3YzU1MGI5ZDg2MTg3OGQKKyAgICBhNWViYjJhYTk5NjkyYWY4LjFmMTFmN2Q2MTkyYTA4MWIuYTgwNTFmNzMwYjI1NjJmNC42NWNhZDAxYmYzNGFkMGRlCiAgICAgODE4MzcxNjEwZTViM2M3Yy45ZDg5ZGI4Y2ViZjIyZTdkLjVmYjJkOGJmZjM0YWQwZGUuZjMyOGQ2N2M5YzkxYzBhYwogICAgIDBjY2NkOGRkYjMyZjYzMTUuYzRlZTc5YmQ1NTA5NmE1OC45N2U5M2M5Y2JkOGMzNTA3LmJhMGQ1N2UyZTc4ZWFhOTUKICAgICAyMjkwNjMwY2EzZjI1YmVlLmVmOGNjY2Q1ZjNmYmY4NTkuMmM3NWM1ZjQ4NGY2NGQ5YS4xN2M1NTBiOWQ4NjE4NzhkCiAgICAgNjY5Y2JjNmUwYjk2OTQ0MgogCi1WTU9WTlRQRF8yNTYocmVnKQorVkVYVFJBQ1RQU18weDMocmVnKQogICBiZWZvcmUKICAgICAwNGRlOTY2YjFkYjgwZDVlLjlmOWI4ZmQ5ZmJhZmRmMzQuN2FhZmNmNDE2MzU0MTQyYy5mYTI0ZjFiNDY0OTVkM2M0CiAgICAgNGJkNmRkMWVhYTUzMmU4ZC41ZmJiZDYzMGQ2NzNhYzEyLmMwYTI4MDZiM2VhMWY5N2MuZGRjMDNiYzk3YTc0ODRiMQpAQCAtMzc2MjEsOCArMzc2MjEsOCBAQAogICAgIDRiZDZkZDFlYWE1MzJlOGQuNWZiYmQ2MzBkNjczYWMxMi5jMGEyODA2YjNlYTFmOTdjLmRkYzAzYmM5N2E3NDg0YjEKICAgICA5OGQyOGFmMTRjZjMzMjdjLjNlYmJiNmZkNTA0OTdkYjUuMWZiM2RiYzAyMjZkZTNmNi5iMTE2MjAxZGUxOWYxYzhjCiAgICAgNDcxYzliNTJhMjI1NTZkNy4xODY2YWIyZDg2M2QxMDQ5LmYyMmNkYWFkYWI0NTEwNDUuNTJmMjFhOWViNjIzNTc4MgotICAgIDljMjBhNzM3MTQwYWYwYmUKLVZNT1ZOVFBEXzI1NihtZW0pCisgICAgMDAwMDAwMDBjMGEyODA2YgorVkVYVFJBQ1RQU18weDMobWVtKQogICBiZWZvcmUKICAgICA2YjZjNDJkNDE4NjNhNDZkLmI0MDEwYWFjNDY3NGQ1NDkuYzk4OTJmYWE5NDVjMWZmOS45NDVhN2I5ZDc0YjRiYTE2CiAgICAgOWJhMTY3NjFkZTM3MmViYi4zYmNkZDU2YWQ0NmNlZDdmLjJkZjBjMDYyOTViMTY3ZjIuNjM4OWI5ZmMxYTQ2MWUxNApAQCAtMzc2MzAsMTMgKzM3NjMwLDEzIEBACiAgICAgOGVmYTQwZmIxYzg2YjhlMi4wNzQ5NmRjNzIwODlkM2U1LjdlYmFmNTJmZTEyZTkwNmQuZjQxYWZjYjY2YTA1MDM0YQogICAgIDZlMTRmYWVhNGQ0OWZkZGEKICAgYWZ0ZXIKLSAgICA4ZWZhNDBmYjFjODZiOGUyLjA3NDk2ZGM3MjA4OWQzZTUuN2ViYWY1MmZlMTJlOTA2ZC5mNDFhZmNiNjZhMDUwMzRhCisgICAgNmI2YzQyZDQxODYzYTQ2ZC5iNDAxMGFhYzQ2NzRkNTQ5LmM5ODkyZmFhOTQ1YzFmZjkuOTQ1YTdiOWQyZGYwYzA2MgogICAgIDliYTE2NzYxZGUzNzJlYmIuM2JjZGQ1NmFkNDZjZWQ3Zi4yZGYwYzA2Mjk1YjE2N2YyLjYzODliOWZjMWE0NjFlMTQKICAgICAwODhkOTNjYTgwOTQ0Y2QzLjM4Y2NmOGZhZTk5YWQ4MjQuMjA2N2Q4M2ZhNTQ4YTM1Zi5iOTA1OTAzNTM4ODg3OGVkCiAgICAgOGVmYTQwZmIxYzg2YjhlMi4wNzQ5NmRjNzIwODlkM2U1LjdlYmFmNTJmZTEyZTkwNmQuZjQxYWZjYjY2YTA1MDM0YQogICAgIDZlMTRmYWVhNGQ0OWZkZGEKIAotVk1PVk5UUERfMjU2KHJlZykKK1ZFWFRSQUNUUFNfMHgzKHJlZykKICAgYmVmb3JlCiAgICAgODUzZTg1M2U3Y2UwOWY0Ni4wOWI1ZWNlMGNlMTcyZjEzLjA0OTIzMjNkMTVjNjE5NmUuMjNiNTkzMWM2NTZlZWE0NwogICAgIDkzZTU5OTFjOTQ1NzI4M2QuNTQ4YTEyNjZiMTU1NmM5My44YmYxNDJjOTY2ZGJlNzZhLmViMjMyY2Y0NGMxNDZkMWIKQEAgLTM3NjQ4LDggKzM3NjQ4LDggQEAKICAgICA5M2U1OTkxYzk0NTcyODNkLjU0OGExMjY2YjE1NTZjOTMuOGJmMTQyYzk2NmRiZTc2YS5lYjIzMmNmNDRjMTQ2ZDFiCiAgICAgZjU1NTMyZjEzMTNhZDI2OS40ZDQ0MmY3N2UyNGMyZDhlLmY4YjM5OWQ1YWM1Njc5ODUuYjFkMjNlYTJiMjJkZDQxMgogICAgIDA4ZGE0YzJhZWQxM2RhNzcuY2ZiMWJkMDE3YzA2MmMyZi5hNzI0MzNjZTg1YzMwYjZkLjUzOGM0NDEyYjRjNGRjNWIKLSAgICBhYzFlYmEzMDZkZTU0MTIwCi1WTU9WTlRQRF8yNTYobWVtKQorICAgIDAwMDAwMDAwOGJmMTQyYzkKK1ZFWFRSQUNUUFNfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgOTc1NDFjZThmYTlkYmY4ZC4yNmMwZTQzMTY3NzA3YzEyLmI1OWIzYWVlOWI5MTI1YTMuZjQ5MDBkMjE4ZGFkZDhjYwogICAgIGYyZjllNzI3NzZmNzExY2YuYWM1MmY1NzQzOGRkZjRlNy5kZGQwMjEyYzVjZjlkNjE1LjNhNDMyMjM4NWZhMDFkNGUKQEAgLTM3NjU3LDEzICszNzY1NywxMyBAQAogICAgIDY0YzRhNWU2YWRjMjI0ODEuNjFhZTcyNWE1NTEzNTRlZC41ZjQ2MWQ0ODMzOGQ0YmE1LjI2YWRlZDY3ZDJkMmZmNmUKICAgICA4M2ZjOWI1NmFjMjkxMzYzCiAgIGFmdGVyCi0gICAgNjRjNGE1ZTZhZGMyMjQ4MS42MWFlNzI1YTU1MTM1NGVkLjVmNDYxZDQ4MzM4ZDRiYTUuMjZhZGVkNjdkMmQyZmY2ZQorICAgIDk3NTQxY2U4ZmE5ZGJmOGQuMjZjMGU0MzE2NzcwN2MxMi5iNTliM2FlZTliOTEyNWEzLmY0OTAwZDIxZGRkMDIxMmMKICAgICBmMmY5ZTcyNzc2ZjcxMWNmLmFjNTJmNTc0MzhkZGY0ZTcuZGRkMDIxMmM1Y2Y5ZDYxNS4zYTQzMjIzODVmYTAxZDRlCiAgICAgOThkYjk2ZDdmZWZmZjQxMi5mNmRlN2I1ZWZmZTQ3ZGExLjIyMWFlZWE2ZGI0OWY5YjIuZDc4ODZlODE5NzI4MTZhMAogICAgIDY0YzRhNWU2YWRjMjI0ODEuNjFhZTcyNWE1NTEzNTRlZC41ZjQ2MWQ0ODMzOGQ0YmE1LjI2YWRlZDY3ZDJkMmZmNmUKICAgICA4M2ZjOWI1NmFjMjkxMzYzCiAKLVZNT1ZOVFBEXzI1NihyZWcpCitWRVhUUkFDVFBTXzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDQ5YzI3NWJhYzBiYThmMmMuMzQ4MTkwM2VhMDRiNWM0OS40NzBmZDdkNmQ5ZjZiNDc3LjcyMjAyYmZlODBkMTg3MWIKICAgICBkNjRiNzZmZmFhMTBhZjc1LmUyZGVkM2NkZjJhNzU5OTYuMDU0ZGE1M2QyNDE4ZGJlYS4zNTczOTNiNGRmMjI2YTQwCkBAIC0zNzY3NSw4ICszNzY3NSw4IEBACiAgICAgZDY0Yjc2ZmZhYTEwYWY3NS5lMmRlZDNjZGYyYTc1OTk2LjA1NGRhNTNkMjQxOGRiZWEuMzU3MzkzYjRkZjIyNmE0MAogICAgIDg0ZTM5YTkxMDdiN2FlZTkuNGNhN2ViN2ViZmUwZDc5My5mN2I0ZDhmYmQ0MDUwM2YzLjg2MGRkMTU2NmM4YmIwM2YKICAgICBiMWQ1ZGRkYzcyM2NjOTM1LjRjYTg1MzNjMjUwNDkyNmMuNzk5MDZjN2Q4NTQ5NjgzZC4zZmI4NjFkMDQxMTgxNTQ1Ci0gICAgM2U0MWMwMGY3ZGQ2NTU3ZQotVk1PVk5UUERfMjU2KG1lbSkKKyAgICAwMDAwMDAwMDA1NGRhNTNkCitWRVhUUkFDVFBTXzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIDVkNzQ2OGZkMzlkMDJiMTUuYjg2ZjNjNGQ4ODJhM2MwNC5jMGFkODdmNTNkMWY0NTRmLmU3MmM1ZDJkZDI3MTQ4NzUKICAgICA3YTFkZDc4ODk0MTM1NDM2LmY0ZmJiMjRlZTQwZDQzMDMuODI4MTAzOTQyNTNjYWQ2Ni45ZGQ2YTg3ODU3MDhkZDQ3CkBAIC0zNzY4NCwxMyArMzc2ODQsMTMgQEAKICAgICAxOTAwZjgyMTkwYTE4ZWNhLjdmMWNkM2I0ZTBlM2ZiM2YuNjRjYWM1MzVkM2FjOGJlMS41MTdmMzk5MDdjYjQxOTY3CiAgICAgMDcxNzc3MzU1M2UxMzcwZAogICBhZnRlcgotICAgIDE5MDBmODIxOTBhMThlY2EuN2YxY2QzYjRlMGUzZmIzZi42NGNhYzUzNWQzYWM4YmUxLjUxN2YzOTkwN2NiNDE5NjcKKyAgICA1ZDc0NjhmZDM5ZDAyYjE1LmI4NmYzYzRkODgyYTNjMDQuYzBhZDg3ZjUzZDFmNDU0Zi5lNzJjNWQyZDgyODEwMzk0CiAgICAgN2ExZGQ3ODg5NDEzNTQzNi5mNGZiYjI0ZWU0MGQ0MzAzLjgyODEwMzk0MjUzY2FkNjYuOWRkNmE4Nzg1NzA4ZGQ0NwogICAgIDZmMDg4OTliYTdhYThiMGYuYzNjNjNhNGMyMzcyMTlkZC42ZmYxNDQwNWY5Njc4NmRkLmY3ZDg0OGNiYjE5YTY0NWUKICAgICAxOTAwZjgyMTkwYTE4ZWNhLjdmMWNkM2I0ZTBlM2ZiM2YuNjRjYWM1MzVkM2FjOGJlMS41MTdmMzk5MDdjYjQxOTY3CiAgICAgMDcxNzc3MzU1M2UxMzcwZAogCi1WTU9WTlRQU18xMjgocmVnKQorVkxERFFVXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDc1ZWNmZjI1ZDJhZWZiZmQuNTVkM2ExMDg2YjA0MTc5My44NTQ5NzZmMWI4ZWYyNWQ1LjNiZDYwMjBlZDIxODc5OWUKICAgICBmNzQ5Y2JjYzk2YTVhMWUzLmZkNGIwMTNiNTNlMGUyOTcuMzI5ODIxNmY0NjFmZDI0YS5kMWUxNzc3ZDEwYjYwYzNmCkBAIC0zNzcwMyw3ICszNzcwMyw3IEBACiAgICAgZTk3Y2Q5OTYzYTU1NjQ2YS5lZTM1OTNhNjY1NDBhZDAyLmUwNTdjZjlhMjYwMTNmNGIuMDNiOWEwNmZhOTkzMDBmMQogICAgIGE3Y2YyNWVmNWI0NzgyM2YuMDQ1ZGQ0MzViYzMxMzJmZi5lY2QwN2NkZWY1MjFhODg0LmFiMjlmYWNmYmFiYTEwZGYKICAgICBhNmZjMDA4ODVlMzdmOTM2Ci1WTU9WTlRQU18xMjgobWVtKQorVkxERFFVXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGQwZmYyZTg4YjIxNjc3MjIuOGM4ZmE5NDM5NDA5MzUwZC4xYjhmM2VkNTc0YmUyZWJiLmIzNTAyNGE3NGYwOTQ5YTAKICAgICAwNWZlMDBiYWQxNjQ0NmNlLmY2MDg2M2ZlODIyNmI5ODEuMTA5NjRmNzBhYWYzNWM2MS44ZjIzYzM2MWNmNDc1ZDRiCkBAIC0zNzcxMSwxMyArMzc3MTEsMTMgQEAKICAgICAwMDIwODE2NGUyN2JjNTE4LmM2NTQ2NjVhZWJhMzI4MDkuZmY1NzUzNGJmZjg2NDIxZS5mOWYyZDg1OGIyZjNkMTAxCiAgICAgNDA4NjQ1NmU0ZDc5YTg2NAogICBhZnRlcgotICAgIGQwZmYyZTg4YjIxNjc3MjIuOGM4ZmE5NDM5NDA5MzUwZC5mZjU3NTM0YmZmODY0MjFlLmY5ZjJkODU4YjJmM2QxMDEKLSAgICAwNWZlMDBiYWQxNjQ0NmNlLmY2MDg2M2ZlODIyNmI5ODEuMTA5NjRmNzBhYWYzNWM2MS44ZjIzYzM2MWNmNDc1ZDRiCisgICAgZDBmZjJlODhiMjE2NzcyMi44YzhmYTk0Mzk0MDkzNTBkLjFiOGYzZWQ1NzRiZTJlYmIuYjM1MDI0YTc0ZjA5NDlhMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZDFiOGYzZWQ1NzRiZTJlLmJiYjM1MDI0YTc0ZjA5NDkKICAgICAyMWM1ZjMwYWQ4MmQyMTY3LjQwODY0ZDhjYzAyYjRjNDYuYmQ0MDgyZjM3YWRjN2ExZS5kZDk1NTY3ODExNjcyMTMzCiAgICAgMDAyMDgxNjRlMjdiYzUxOC5jNjU0NjY1YWViYTMyODA5LmZmNTc1MzRiZmY4NjQyMWUuZjlmMmQ4NThiMmYzZDEwMQogICAgIDQwODY0NTZlNGQ3OWE4NjQKIAotVk1PVk5UUFNfMTI4KHJlZykKK1ZMRERRVV8xMjgocmVnKQogICBiZWZvcmUKICAgICAwYzljOWEyNDdmODVlNDA2LjdlZGEyOGI0MGI1Y2VkMGUuZTNjMGE3ZDI5ZTFhOGE3Ni5iMmE4M2U2MjU1ZmQ3MThjCiAgICAgYmE4MWQxZThlNGEyYmU5NC43N2MxNjNlNjcxZGI1Nzc1LmY1MTQwZDYyNzUxY2FkMzkuYjJmZmMwMjY5OTRiYzI5NQpAQCAtMzc3MzAsNyArMzc3MzAsNyBAQAogICAgIGE2ODFlODI1MTY1Yzc1YjkuYzc5ZmFmZTcyZDA1YmQ3OC41NjlkOTU3NTBlMzZjZmZjLmRiMjg1MzgyZTY3ZWYyNjQKICAgICAyY2U4ZGE0N2I0M2Y0MzIyLjRhNDE4NmExNWRlNWRjNDQuNjRhNzNhNzYwMmYzMmE2ZS4wOWVmNzU2MjU5YTFiZDI2CiAgICAgMTgxZmEyYjIwZGMxZGYwNwotVk1PVk5UUFNfMTI4KG1lbSkKK1ZMRERRVV8xMjgobWVtKQogICBiZWZvcmUKICAgICBlMzg2NTQ1ZTFmZTkxMzMyLmE4MDJhM2JhNTdkODY1N2EuZGM3MzY2MDIxZDg3NmYwNC43OTdlZjhkM2VmZTBmYTM5CiAgICAgNDhlZTA5NTJhYTI1MTZkNC43NjFiNDBlYTllYjIxNzZlLjU5MDFjYWY0ODhmODMzZTUuZjM2ZWNiZjc3MTg4N2QwYQpAQCAtMzc3MzgsMTMgKzM3NzM4LDEzIEBACiAgICAgNGRmNDY5YzM5ZDBiNzkyYi43ODc4ZTIzMTgxNWExYWQ5Ljg0NjAwZjQwZDA3NDNlYjkuODJjOGEyNDRhMTNhODc2YwogICAgIDRmY2E5ZDQ2ODg1Yzg2NTUKICAgYWZ0ZXIKLSAgICBlMzg2NTQ1ZTFmZTkxMzMyLmE4MDJhM2JhNTdkODY1N2EuODQ2MDBmNDBkMDc0M2ViOS44MmM4YTI0NGExM2E4NzZjCi0gICAgNDhlZTA5NTJhYTI1MTZkNC43NjFiNDBlYTllYjIxNzZlLjU5MDFjYWY0ODhmODMzZTUuZjM2ZWNiZjc3MTg4N2QwYQorICAgIGUzODY1NDVlMWZlOTEzMzIuYTgwMmEzYmE1N2Q4NjU3YS5kYzczNjYwMjFkODc2ZjA0Ljc5N2VmOGQzZWZlMGZhMzkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2FkYzczNjYwMjFkODc2Zi4wNDc5N2VmOGQzZWZlMGZhCiAgICAgMjIyNDNjN2FjYjgyYTQxOC5mMjdlYWI0MzIyNTk5NWE5LjlkYjYyZjY1YmE0M2U0MTMuMmNjMmIwNGUyMjc3ZWQ4YwogICAgIDRkZjQ2OWMzOWQwYjc5MmIuNzg3OGUyMzE4MTVhMWFkOS44NDYwMGY0MGQwNzQzZWI5LjgyYzhhMjQ0YTEzYTg3NmMKICAgICA0ZmNhOWQ0Njg4NWM4NjU1CiAKLVZNT1ZOVFBTXzEyOChyZWcpCitWTEREUVVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZjExNTlkYmU3MzY5MjhmNC5hNTI5MGMxNzNkY2M1MDM4LjY0NTZlMTIwNTc0MGUzYTcuZTljOWU4NzFlNTk4ZmMwNAogICAgIGMyZjU5ZTFhZmZlZWE3ZjUuMDU5MWExNjRjNmQyZTY2ZC4xMjYyYTI3ZDNmOTgyY2MyLmFhYmUzNWU0MTZiYWRiMWYKQEAgLTM3NzU3LDcgKzM3NzU3LDcgQEAKICAgICAxZmI2OWRjNGM3NzYzZjAzLjRiZjZhNTk0NTQyOGY3ZjMuZGRlODIyYjJkNmVkMzBkNC5hMjBiNzI4NTdlZTY5NzM3CiAgICAgNjVhMzk1MmE2ODhkMmVjYi41MjI2OTM5NTA0ZGEzZWY5LjIzMzY1ZTJkYjdjYjJjODkuYWQ3YzFiNDAzYTI5ZWM3NwogICAgIGE2ZGRhZDAxNjU4ZTk1MGMKLVZNT1ZOVFBTXzEyOChtZW0pCitWTEREUVVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNmJmOWEzYjUxYzIxNGYyMi5lZTBhODJiNjdkYzBhZWY5LmY1ZWJlNzUyZjJmNTc4YTkuM2Y5NzUxNTg3ZWJlNWM4ZQogICAgIGQ2OWU3OTQ2N2FlZmQ2ZTUuMTczNTYxZDZhMzlhZmMzOC4xMjEyMWViNzM5ODQ2MTJmLjhkNTZmN2ExYzg1M2ZiOGYKQEAgLTM3NzY1LDEzICszNzc2NSwxMyBAQAogICAgIDEyYWViNWIzOWQ2YTM5MWYuYjkwYWUxN2Y5MDc0ZjE5YS4yNmI1MjEyOTQzMmYyZjcwLjJlMjE0ZTNhNTM5MTdhMzMKICAgICAzYWM1ZjU2MmNkNTJkMDJmCiAgIGFmdGVyCi0gICAgNmJmOWEzYjUxYzIxNGYyMi5lZTBhODJiNjdkYzBhZWY5LjI2YjUyMTI5NDMyZjJmNzAuMmUyMTRlM2E1MzkxN2EzMwotICAgIGQ2OWU3OTQ2N2FlZmQ2ZTUuMTczNTYxZDZhMzlhZmMzOC4xMjEyMWViNzM5ODQ2MTJmLjhkNTZmN2ExYzg1M2ZiOGYKKyAgICA2YmY5YTNiNTFjMjE0ZjIyLmVlMGE4MmI2N2RjMGFlZjkuZjVlYmU3NTJmMmY1NzhhOS4zZjk3NTE1ODdlYmU1YzhlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY5ZjVlYmU3NTJmMmY1NzguYTkzZjk3NTE1ODdlYmU1YwogICAgIGM1OTZhYmEyOWMwM2U1N2YuM2M3MTJjZjU3NWE3NTMzNC44MzY3YjJiMGY1OTRiNWI4LjY4YzA0ZDczMzExNTQ3MzcKICAgICAxMmFlYjViMzlkNmEzOTFmLmI5MGFlMTdmOTA3NGYxOWEuMjZiNTIxMjk0MzJmMmY3MC4yZTIxNGUzYTUzOTE3YTMzCiAgICAgM2FjNWY1NjJjZDUyZDAyZgogCi1WTU9WTlRQU18yNTYocmVnKQorVkxERFFVXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGU3Zjg0MTU3MzllNDg3ZDYuOWJiMjE0Njc5YTJlOGVlZi5lYTRjN2JlMDhmOGMxMDE2LmQ2Y2FlNjBlM2U2NDhjODIKICAgICA5MzA1MmI4NjMzZDRkOWQ1LjNhNmU0M2E5YWU1ZWEwMWMuMmM4M2Y2ODUwZTdiZWQ1NC42ZTcwN2U0YzAzM2M4ODFiCkBAIC0zNzc4NCw3ICszNzc4NCw3IEBACiAgICAgOTgzYWIwNTk1OGFkMDNkNy5jZGFkYmU2NWY1MDMyYWQxLmQ5ZmE0ZWQ4YWFjZWMzZmYuY2I3NDYzY2RhZGM1ZGU2NgogICAgIDU0ZTFjZDNkNDNmYjQwODkuMmUzZDAxODc4YzJiZTkzYi40ZWZlODA0NmZmMTBjZmMzLmNhYTIxMzdlNTkwYTRiOTEKICAgICA0NWM2MDk0YzIyMTc4YmM1Ci1WTU9WTlRQU18yNTYobWVtKQorVkxERFFVXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDFhYWNjMTIyMjVmOTVhMzAuMjE0NzdkOWY5MTRhY2U5Ni4zYmU4ODlmYjhmZTE5OTg1LmU3ZGM4NzNjYThjZTRkNGQKICAgICAyMzFmYjdlYjdkYmI3M2ZlLjVkYjhiY2U5ZGQyN2U3YWIuY2U3YmQxYWQxOTMxZjVkYy4wMGRlNWYyNDQxOTI3OTQ5CkBAIC0zNzc5MiwxMyArMzc3OTIsMTMgQEAKICAgICA0NGUwNGYwYjllMTE3NjcyLjhlZWJkOGVhZTFiOWFjOWMuZjk4OTkxN2MzM2QxYTQ2MC4yMTgwNzM3ZmI1NjJjOTQ2CiAgICAgZTJiOWE3YzljODg1NjY5ZQogICBhZnRlcgotICAgIDQ0ZTA0ZjBiOWUxMTc2NzIuOGVlYmQ4ZWFlMWI5YWM5Yy5mOTg5OTE3YzMzZDFhNDYwLjIxODA3MzdmYjU2MmM5NDYKLSAgICAyMzFmYjdlYjdkYmI3M2ZlLjVkYjhiY2U5ZGQyN2U3YWIuY2U3YmQxYWQxOTMxZjVkYy4wMGRlNWYyNDQxOTI3OTQ5CisgICAgMWFhY2MxMjIyNWY5NWEzMC4yMTQ3N2Q5ZjkxNGFjZTk2LjNiZTg4OWZiOGZlMTk5ODUuZTdkYzg3M2NhOGNlNGQ0ZAorICAgIDQ5MWFhY2MxMjIyNWY5NWEuMzAyMTQ3N2Q5ZjkxNGFjZS45NjNiZTg4OWZiOGZlMTk5Ljg1ZTdkYzg3M2NhOGNlNGQKICAgICAzZGVkNjg5NTQ3NmE5MzViLjYyODA4Nzg5YzMxZWM3NzQuYzRjMjU1OGE0NjI4YmE2Yy5mNTUxMDQ2YzY3ZWI4ZTYzCiAgICAgNDRlMDRmMGI5ZTExNzY3Mi44ZWViZDhlYWUxYjlhYzljLmY5ODk5MTdjMzNkMWE0NjAuMjE4MDczN2ZiNTYyYzk0NgogICAgIGUyYjlhN2M5Yzg4NTY2OWUKIAotVk1PVk5UUFNfMjU2KHJlZykKK1ZMRERRVV8yNTYocmVnKQogICBiZWZvcmUKICAgICA5MzQ2OWNiNTNjZGZhMTE4LjE1YzVlODM5OWViY2Q3NmYuM2I0NGFkNzhkMDg2ZDBkMC40YTljMDE3MWZiMzk2ZmU1CiAgICAgOTA3NTRlYjJhYmZkYjU2MC44YTY4YWYwYjY0Nzc3MzgwLmM2ZDkwMTlmMmUxMTcwYmMuOTFjNjIyNTNiYjZiZDYyNgpAQCAtMzc4MTEsNyArMzc4MTEsNyBAQAogICAgIDM1OTBiOTI5YjQ2OWRmMjEuODA5NTIwNmUwYzRmMDZjZS44Y2Y0ZDFjYjk3ZTRjNzBiLmFiZDQ2ZjEwOGU3Mzk2NTAKICAgICBkZGU0ZGE4N2YwYjI1YjA4LmQzMTdiODRjYjE1MDRjODguZTdlMjE3NjhhNjhkMTM2OS43NDkzNjQ5MzkxNWU2YjhmCiAgICAgYzhjZDdkYzdkZjM3MTEwZQotVk1PVk5UUFNfMjU2KG1lbSkKK1ZMRERRVV8yNTYobWVtKQogICBiZWZvcmUKICAgICA4MzRlMzY5YTk1MGE0M2ZhLmU2YmNhYzM4ZmU2MTY0YzEuNWZiY2YyOTI2Zjg0MDBkOC4zNGVmZDFlMmY3OTg4ZTg0CiAgICAgODFlNDBjZjdjZWUzYmU3Zi5hYjY2MmJhOTc3MDQzN2Y3LjAwNGU0YTJkNjNmOWRmZWEuY2Y2NmZhYTYyNzhmNzUwNQpAQCAtMzc4MTksMTMgKzM3ODE5LDEzIEBACiAgICAgYjY3YmZjMDAzYmRhN2UwMS5kODVjMjA3NzIwNTQyYThjLmYxNmM0NTBlNWNkNDBlMDcuNjBjNjg5Yjg5Mjc3NzVmMAogICAgIDBkNDdlOGRlMDY3ZTA3YjAKICAgYWZ0ZXIKLSAgICBiNjdiZmMwMDNiZGE3ZTAxLmQ4NWMyMDc3MjA1NDJhOGMuZjE2YzQ1MGU1Y2Q0MGUwNy42MGM2ODliODkyNzc3NWYwCi0gICAgODFlNDBjZjdjZWUzYmU3Zi5hYjY2MmJhOTc3MDQzN2Y3LjAwNGU0YTJkNjNmOWRmZWEuY2Y2NmZhYTYyNzhmNzUwNQorICAgIDgzNGUzNjlhOTUwYTQzZmEuZTZiY2FjMzhmZTYxNjRjMS41ZmJjZjI5MjZmODQwMGQ4LjM0ZWZkMWUyZjc5ODhlODQKKyAgICAwNTgzNGUzNjlhOTUwYTQzLmZhZTZiY2FjMzhmZTYxNjQuYzE1ZmJjZjI5MjZmODQwMC5kODM0ZWZkMWUyZjc5ODhlCiAgICAgOWU1YTdhY2JhN2NmM2RjNy44NzJjNTM0NGY5MjYxMDU3LjkyOWEzYzA4YTliYWE1ZWMuMTQ5NThlMWVkMTAwMDM5YgogICAgIGI2N2JmYzAwM2JkYTdlMDEuZDg1YzIwNzcyMDU0MmE4Yy5mMTZjNDUwZTVjZDQwZTA3LjYwYzY4OWI4OTI3Nzc1ZjAKICAgICAwZDQ3ZThkZTA2N2UwN2IwCiAKLVZNT1ZOVFBTXzI1NihyZWcpCitWTEREUVVfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNzg2MmE2ZmVjN2E0ZjU4OS5hNTE0MGY4M2E2MGUzYjU3LmY5NDA4ZmFjODcxOWMzNDMuZjk5MGUwMmQ5ODUyZDU2YQogICAgIGZkNjRiZjgzNzQ3MjdhMjQuNDdmMjJkNDEwNTc5MzFmNi40NTI1OWI1MWNhMDExNTI3Ljg2ZDI4OTUwN2E0MGI3M2YKQEAgLTM3ODM4LDcgKzM3ODM4LDcgQEAKICAgICBmODk4MmZkOWE2NzZkMzMwLjc4ZGVkNDI0NzQyNjFiMDkuMWE1NzQwZDE4Njk4NWNlNS43NGZkYmM2MzFkYWI2ZmIyCiAgICAgYzU0Y2YyNmNmYzNiM2M1Ny4xNGE3N2YxYTBlMjJiNmJkLmQyMjI3Yjk4NTc2YmQ2MjkuOWZkZmY1NTI5ZTllYmJmMQogICAgIGUzNDJiMTA5MTgyNTU1MjUKLVZNT1ZOVFBTXzI1NihtZW0pCitWTEREUVVfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMWNmMzZiNzRhNzRkZmE3ZC5jMGNhMDVhODBmNGRmMTQ1LmY3MThhYTBlZWY3OGJlM2UuY2JkMTQ2MTJkODA2YmQ5ZQogICAgIDI1YmU5ZjgwNjkyMTY1MjMuNDU2MDYzZjk3ZDM5MmRhOC5mZGZjZDJlYjM0MzRlZmI3LjVmYjE5ZmFiYTVmMzRlZjEKQEAgLTM3ODQ2LDEzICszNzg0NiwxMyBAQAogICAgIDFjZDE2NjI3ZWZmZTgxMGEuNWNmZmYwOGJkOWNkMmM3Ny5lMTUxMDYxNTU4MTBiYTQzLmNjMzVlOGViOTVmOTVkZTAKICAgICA1YzcwZDE2OWYwMjg1M2QzCiAgIGFmdGVyCi0gICAgMWNkMTY2MjdlZmZlODEwYS41Y2ZmZjA4YmQ5Y2QyYzc3LmUxNTEwNjE1NTgxMGJhNDMuY2MzNWU4ZWI5NWY5NWRlMAotICAgIDI1YmU5ZjgwNjkyMTY1MjMuNDU2MDYzZjk3ZDM5MmRhOC5mZGZjZDJlYjM0MzRlZmI3LjVmYjE5ZmFiYTVmMzRlZjEKKyAgICAxY2YzNmI3NGE3NGRmYTdkLmMwY2EwNWE4MGY0ZGYxNDUuZjcxOGFhMGVlZjc4YmUzZS5jYmQxNDYxMmQ4MDZiZDllCisgICAgZjExY2YzNmI3NGE3NGRmYS43ZGMwY2EwNWE4MGY0ZGYxLjQ1ZjcxOGFhMGVlZjc4YmUuM2VjYmQxNDYxMmQ4MDZiZAogICAgIGRjNmZjOTE3NzdhZDU0NDMuYjA1ODA4Y2NlMjhhMmQyOS4wMTIxNzI5ZmY4NjMwNDU1LmVjMGY4MWQwNWJjMGM0Y2UKICAgICAxY2QxNjYyN2VmZmU4MTBhLjVjZmZmMDhiZDljZDJjNzcuZTE1MTA2MTU1ODEwYmE0My5jYzM1ZThlYjk1Zjk1ZGUwCiAgICAgNWM3MGQxNjlmMDI4NTNkMwogCi1WUEFDS1NTV0JfMTI4KHJlZykKK1ZNQVhQU18yNTYocmVnKQogICBiZWZvcmUKICAgICBmOTBiMzZiNzA4ZGJlMzU1LmMxYjJmMTlhZWQxZmE4YTQuYTdhMTE4YTRmZjhkNjgzYy43ODU5MGEzOTcwNDdjZGFlCiAgICAgZmQ1NDE1NDA3NzllNDgxMC5hNmRjZTY1ZThjMWM4NzNjLmVjODk3YjgxZWY1NjFiMjQuYTIwNWZhZjg1YTE1ZjljMgpAQCAtMzc4NjAsMTIgKzM3ODYwLDEyIEBACiAgICAgYWQxYzJmYjJkMDgwODRlMi5hNDNlZmU4NjFlZGM1ODE5LmQzNWZlMjNjOWUzNGQ4MTAuMWU3ODhmZjIxYWE0OGE5MgogICAgIDI4ZDcyYzA3Mjg3YzY4YTgKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODA3ZjdmODA3ZjdmN2Y4MC44MDdmODA3ZjgwODA3ZjgwCisgICAgYWQxYzJmYjI3NzllNDgxMC5hNDNlZmU4NjFlZGM1ODE5LmQzNWZlMjNjOWUzNGQ4MTAuMWU3ODhmZjI1YTE1ZjljMgogICAgIGZkNTQxNTQwNzc5ZTQ4MTAuYTZkY2U2NWU4YzFjODczYy5lYzg5N2I4MWVmNTYxYjI0LmEyMDVmYWY4NWExNWY5YzIKICAgICBjNTk1Njk2ZmRjZmJiZmIwLmE5MWNjMTVlZTgwMmQ4ZmYuODcwNTE1OTA0NWI0ODJkYy4zYTIwNTMzYzM1ODVmOWFhCiAgICAgYWQxYzJmYjJkMDgwODRlMi5hNDNlZmU4NjFlZGM1ODE5LmQzNWZlMjNjOWUzNGQ4MTAuMWU3ODhmZjIxYWE0OGE5MgogICAgIDI4ZDcyYzA3Mjg3YzY4YTgKLVZQQUNLU1NXQl8xMjgobWVtKQorVk1BWFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDM2MGFhNjY1NzgxYjRlMTYuMTIzMzYxNzRmMWI5ZDM1Mi43NTBlMWFjMjRhYjZjMmI1LjJlZTRkZWYwOTU2MTVhNmIKICAgICAyMmRlNzdmYTI4OGRmOTA4LjRlMjdmZDIxZGIzMGU3YWIuZjc1NzkwZmU4NzlkZDMwMC5mM2UxMDYxYWM3Yzg0NDlhCkBAIC0zNzg3NSwxMSArMzc4NzUsMTEgQEAKICAgYWZ0ZXIKICAgICAzNjBhYTY2NTc4MWI0ZTE2LjEyMzM2MTc0ZjFiOWQzNTIuNzUwZTFhYzI0YWI2YzJiNS4yZWU0ZGVmMDk1NjE1YTZiCiAgICAgMjJkZTc3ZmEyODhkZjkwOC40ZTI3ZmQyMWRiMzBlN2FiLmY3NTc5MGZlODc5ZGQzMDAuZjNlMTA2MWFjN2M4NDQ5YQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZjdmN2Y4MDdmODA4MDdmLjgwODA4MDgwODA3ZjgwN2YKKyAgICAzNjBhYTY2NTc4MWI0ZTE2LjRlMjdmZDIxZGIzMGU3YWIuNzUwZTFhYzI0YWI2YzJiNS4yZWU0ZGVmMDk1NjE1YTZiCiAgICAgMDg5MzEzNzYxNzE3OGUyYi5iZWQ1NjBlYzc4MGU1MWNhLjdkODg3YTI3YTVjMGRhNTEuMmE2ZGM3N2U0YjcxNDAyMwogICAgIDU1OTY1ODhmZDRjY2M5ZDUKIAotVlBBQ0tTU1dCXzEyOChyZWcpCitWTUFYUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNTk2NTA1YzUwODhmYWEwYS5iYTBlZDUzNDhkNDdlZmIzLmFhMjgyMGUzNjM4YzFlZTguMzkwN2U2ZWJiZTEzNDhhZgogICAgIDk0MjdjOThkODI0OTFlNmYuYmE1OGRmZGFkMzdhMDU3MC5kZTg3Mzg3NDg2NzlhMmEwLjE2MzA5ZDVmNTlhNDRjNmMKQEAgLTM3ODg3LDEyICszNzg4NywxMiBAQAogICAgIDFiYjU4NjdmYmFjYmIyNzcuMTg4ZGJjODYzZTE3M2YzOC44ZTljNjUxOGU3ZDFiOThjLmE0YjBkOTA5ODNhOTA4YjIKICAgICAwYzllNTcxNjRhMzYzOTkzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwODA3ZjdmODA3ZjgwODAuODA3ZjgwODA3ZjgwN2Y3ZgorICAgIDFiYjU4NjdmODI0OTFlNmYuMTg4ZGJjODYzZTE3M2YzOC44ZTljNjUxODg2NzlhMmEwLjE2MzA5ZDVmNTlhNDRjNmMKICAgICA5NDI3Yzk4ZDgyNDkxZTZmLmJhNThkZmRhZDM3YTA1NzAuZGU4NzM4NzQ4Njc5YTJhMC4xNjMwOWQ1ZjU5YTQ0YzZjCiAgICAgNjAyOWEwNTFkZjgzNjJhZi5lNjNmYWU1MTA1YmI4YzhkLmI2M2ZhNjBkN2U2MTE3OWQuZjFjZjFhNzA5MTdjYTNiNAogICAgIDFiYjU4NjdmYmFjYmIyNzcuMTg4ZGJjODYzZTE3M2YzOC44ZTljNjUxOGU3ZDFiOThjLmE0YjBkOTA5ODNhOTA4YjIKICAgICAwYzllNTcxNjRhMzYzOTkzCi1WUEFDS1NTV0JfMTI4KG1lbSkKK1ZNQVhQU18yNTYobWVtKQogICBiZWZvcmUKICAgICAwNjY3MGU4MjAyMmZmMDgyLjFmMTc3NzgxYWZhZDRhNzMuMmQwZjg3NjU5YTk4ZGI5YS5jMmVhNzEwMzViNTRjNjE4CiAgICAgNmNkNTdjM2JjOWExZTlhZC5jOTlkNzBjNTViYjM2NjRlLjAxOTA4YmRiMzY0ZDFjZTEuYWU3NWM3Mzk3OTc2NzhlZQpAQCAtMzc5MDIsMTEgKzM3OTAyLDExIEBACiAgIGFmdGVyCiAgICAgMDY2NzBlODIwMjJmZjA4Mi4xZjE3Nzc4MWFmYWQ0YTczLjJkMGY4NzY1OWE5OGRiOWEuYzJlYTcxMDM1YjU0YzYxOAogICAgIDZjZDU3YzNiYzlhMWU5YWQuYzk5ZDcwYzU1YmIzNjY0ZS4wMTkwOGJkYjM2NGQxY2UxLmFlNzVjNzM5Nzk3Njc4ZWUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2Y4MDgwODA4MDdmN2Y4MC43ZjgwN2Y3ZjgwODA3ZjdmCisgICAgNmNkNTdjM2IwMjJmZjA4Mi4xZjE3Nzc4MTViYjM2NjRlLjJkMGY4NzY1MzY0ZDFjZTEuYWU3NWM3Mzk3OTc2NzhlZQogICAgIGVmZDM2YTQyZWQxZTk1NjAuODA0MTY3YzA0NzYwMTg1NC41N2M0MmEzODljN2M3Y2NlLjFkNzEzZTM1MWRjOWJkMjcKICAgICA1OTdhNTdkNGRjMTJjOGUxCiAKLVZQQUNLU1NXQl8xMjgocmVnKQorVk1BWFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGJkZjBhOTZlYjMyYTY5OTYuYzVmYmUzNjc4NDQxYmY0Mi40NGY3NWQ0ZmJmMWYyNmQ2LjkwMGRiZGY3OWUwZjEzY2IKICAgICBhNTFmMzE3MDNmOWRkY2YwLjc3ZjgwMTg4OTgwYzFiMGYuMWYwMDRiY2Y1ZDMzYTllNy5mODg2N2FmZDUwMDUzZjVjCkBAIC0zNzkxNCwxMiArMzc5MTQsMTIgQEAKICAgICA3MGQ4ZDA1N2U0YzUyNjQ0LmUyYTUyMTZmYThjYzVkMTcuODUzYmZiNTM3YzhiZjg2OS5jNTM4NWE4YjMyNDc0NWVkCiAgICAgZTIwOTc3ZWI5YWFiOTc0NQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZjdmODA4MDdmODA4MDgwLjdmN2Y3ZjgwODA3ZjdmN2YKKyAgICA3MGQ4ZDA1NzNmOWRkY2YwLjc3ZjgwMTg4OTgwYzFiMGYuMWYwMDRiY2Y3YzhiZjg2OS5jNTM4NWE4YjUwMDUzZjVjCiAgICAgYTUxZjMxNzAzZjlkZGNmMC43N2Y4MDE4ODk4MGMxYjBmLjFmMDA0YmNmNWQzM2E5ZTcuZjg4NjdhZmQ1MDA1M2Y1YwogICAgIDZjNTNlYTQ0MWJmNzVjOWIuZTI5ODQyOTI0NThjNjdmMi42YmE4MmJhZGJkMjlkYjM1LjZiZmJkYTM1Y2Q2OWJjYWYKICAgICA3MGQ4ZDA1N2U0YzUyNjQ0LmUyYTUyMTZmYThjYzVkMTcuODUzYmZiNTM3YzhiZjg2OS5jNTM4NWE4YjMyNDc0NWVkCiAgICAgZTIwOTc3ZWI5YWFiOTc0NQotVlBBQ0tTU1dCXzEyOChtZW0pCitWTUFYUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOWUzOWFjNDEyMmEyNmRlMS4wY2Y5ZGYxNjM1OTM3Njk3LjUzZWMxYjBkZGNkOGJhYWIuYzkwNGI2MmYzNWU3M2UzMgogICAgIGQ1OTY3NTc5ZTUzODg1ZWQuOWIwNDEzZWNhYWViODgzZi4xMTM5YWE1NmZlYmMzOWRhLjkzNTE1OWFiODVjOWU3M2EKQEAgLTM3OTI5LDExICszNzkyOSwxMSBAQAogICBhZnRlcgogICAgIDllMzlhYzQxMjJhMjZkZTEuMGNmOWRmMTYzNTkzNzY5Ny41M2VjMWIwZGRjZDhiYWFiLmM5MDRiNjJmMzVlNzNlMzIKICAgICBkNTk2NzU3OWU1Mzg4NWVkLjliMDQxM2VjYWFlYjg4M2YuMTEzOWFhNTZmZWJjMzlkYS45MzUxNTlhYjg1YzllNzNhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmN2Y4MDgwODA4MDdmN2YuN2Y4MDgwN2Y4MDdmODA4MAorICAgIDllMzlhYzQxMjJhMjZkZTEuMGNmOWRmMTYzNTkzNzY5Ny41M2VjMWIwZGRjZDhiYWFiLjkzNTE1OWFiMzVlNzNlMzIKICAgICAyNDAyYjQ0MDhlNmQ2NjA4LjA3MDNkYzhjNzM2ZWUwNDEuZTQxNTdjOWU3YTNmOTBiOC4yYWEyNDMzODU4NGI1NWI5CiAgICAgYWUzZjgzMWYxNDA1OTE4NwogCi1WUEFWR0JfMTI4KHJlZykKK1ZNQVhQRF8xMjgocmVnKQogICBiZWZvcmUKICAgICAyODhmOWI1OGQ1NzQyMTQ2LmY0YWEyMmE3YWIyNmE3NmYuOWE5MDY4MmZmZWIxOWZmMi5iMTNiYjY3NDBkZjRlMGJlCiAgICAgZjRkZDg1NGUzYTI0NDFhMC5hZmFlMTQ5Zjc0YWMxOWY2LjkyMzUwYTk5MWRhZjBmYTkuM2I5ODc3YTZmY2IyNDIwZgpAQCAtMzc5NDEsMTIgKzM3OTQxLDEyIEBACiAgICAgZjFhN2M0MjI1OTc4MWZkNy41NmY5NzVmNzc4NTU4MDE1LjFjZmI3YzcyOGEwZGY1ZDcuZjUyMjdhY2Y2NDc3MmY0MQogICAgIGRlZThiNTlkMTQ5NjMyN2EKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmUzYjYzNjg0NWQyM2U1ZC40Y2M3NTg2M2IxOWM1YjczCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFjZmI3YzcyOGEwZGY1ZDcuM2I5ODc3YTZmY2IyNDIwZgogICAgIGY0ZGQ4NTRlM2EyNDQxYTAuYWZhZTE0OWY3NGFjMTlmNi45MjM1MGE5OTFkYWYwZmE5LjNiOTg3N2E2ZmNiMjQyMGYKICAgICA2ZTc3M2Y2ZGRjYTEyYzQxLjMxZDkwNjE2MDQwZDc4YzkuNDk0MGJjMzY2ZGY0NmQxMS41ZGY2MzkyMDY1ODU3M2Q3CiAgICAgZjFhN2M0MjI1OTc4MWZkNy41NmY5NzVmNzc4NTU4MDE1LjFjZmI3YzcyOGEwZGY1ZDcuZjUyMjdhY2Y2NDc3MmY0MQogICAgIGRlZThiNTlkMTQ5NjMyN2EKLVZQQVZHQl8xMjgobWVtKQorVk1BWFBEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGY0MTQ2Nzc3OTJlZTM3YWUuZGJiYTEwZDc0ZDM0NTYwYi5mYWQ4ZGMyZWVjOGVlYzA2LjY4YjM0NWI5MGY4NWUzYTYKICAgICAxMjcxMGE0YWY5ODlmYjA4Ljg3ZmMxZmY5NTM2MjBkOGMuZjg0M2I2YTc3YWM2NzljNy44N2I1MTM3ODk4ZTg3MjJiCkBAIC0zNzk1NiwxMSArMzc5NTYsMTEgQEAKICAgYWZ0ZXIKICAgICBmNDE0Njc3NzkyZWUzN2FlLmRiYmExMGQ3NGQzNDU2MGIuZmFkOGRjMmVlYzhlZWMwNi42OGIzNDViOTBmODVlM2E2CiAgICAgMTI3MTBhNGFmOTg5ZmIwOC44N2ZjMWZmOTUzNjIwZDhjLmY4NDNiNmE3N2FjNjc5YzcuODdiNTEzNzg5OGU4NzIyYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mOThlYzk2YmIzYWFiMzY3Ljc4YjQyYzk5NTRiN2FiNjkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjg0M2I2YTc3YWM2NzljNy42OGIzNDViOTBmODVlM2E2CiAgICAgZGJmMjE4ODdmM2JlYWZlMC45NTNkNzczNTA3NDFlYTFmLjc3ZWRiOTBmNWI2MWU2NmMuYjJjMWFmMGEyOGExNjYwNgogICAgIDc1NjU3NWI1NjcwZTQyYjQKIAotVlBBVkdCXzEyOChyZWcpCitWTUFYUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgN2M4MTMwODgxYTk3YjBjNy4zY2FkN2FjYWJmNmUxN2I2LmFmZDNiODI3ZWMwYTg3OGEuYWVjNGQ4ZDZlNGRjM2RhNwogICAgIDI0NjNkZGVlZGVjN2VjZWQuMTdjYWJmYjVlNDk0MmU2Mi5mYWM5YWQzNjU0NzU5NWYxLmIxNTY1YzkwZjk4NmE1NjMKQEAgLTM3OTY4LDEyICszNzk2OCwxMiBAQAogICAgIGMyYTRmOTIzMDY0ZGJkMWIuYTc1OWRlMzNhYTZiNThlZi45ODAwOWY1YjFiNWZlZjYxLjg3ZGY4MTg5MzQ5NDk3MGMKICAgICAxMzZkMTlhMTkzMTA5OTUxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU3OTk3ZjgyOTc0MTcyZjguODY2NDhlNWNkNzc4YzA5NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ODAwOWY1YjFiNWZlZjYxLjg3ZGY4MTg5MzQ5NDk3MGMKICAgICAyNDYzZGRlZWRlYzdlY2VkLjE3Y2FiZmI1ZTQ5NDJlNjIuZmFjOWFkMzY1NDc1OTVmMS5iMTU2NWM5MGY5ODZhNTYzCiAgICAgYzc1NTc2NTM0ZTJhMzJjZi40NzE1NjEzNDdlMzliMDEyLmQ0Njk1MGNlZGEwZDRlZmYuNWE3MWMwMjdiNTY5ZGFjYgogICAgIGMyYTRmOTIzMDY0ZGJkMWIuYTc1OWRlMzNhYTZiNThlZi45ODAwOWY1YjFiNWZlZjYxLjg3ZGY4MTg5MzQ5NDk3MGMKICAgICAxMzZkMTlhMTkzMTA5OTUxCi1WUEFWR0JfMTI4KG1lbSkKK1ZNQVhQRF8xMjgobWVtKQogICBiZWZvcmUKICAgICBkOWU3MDY1YWVlZWI5Y2M3LjcxOWI2MWNhYTRiYmNhN2QuMTU2NGIxOWU4NDM1ZTMyOC5hMWRhOTU0OWIzZjZiNGMzCiAgICAgYjYxOWMzYTI2MDMwNWM5YS4zMDg4YWFiNGMxMDA5NWExLjZiMDA1NjYyMjZhMzBkZTYuNGQ0MjJlMDQzYzVlZDhkMApAQCAtMzc5ODMsMTEgKzM3OTgzLDExIEBACiAgIGFmdGVyCiAgICAgZDllNzA2NWFlZWViOWNjNy43MTliNjFjYWE0YmJjYTdkLjE1NjRiMTllODQzNWUzMjguYTFkYTk1NDliM2Y2YjRjMwogICAgIGI2MTljM2EyNjAzMDVjOWEuMzA4OGFhYjRjMTAwOTVhMS42YjAwNTY2MjI2YTMwZGU2LjRkNDIyZTA0M2M1ZWQ4ZDAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDAzMjg0ODA1NTZjNzg4Ny43NzhlNjIyNzc4YWFjNmNhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZiMDA1NjYyMjZhMzBkZTYuNGQ0MjJlMDQzYzVlZDhkMAogICAgIDI2ZDQ5ZDhjZmIyOTAxMDUuNGU3MGQwMDJlZTQxNTRkYy40MzFlMDhhMTM4OWQyY2E4LmZhZjAzYTkyOThkMjMwOWQKICAgICBiM2NlYTQzY2ExZjdkY2I1CiAKLVZQQVZHQl8xMjgocmVnKQorVk1BWFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDdmNmFhMjYzMGMxY2Q3MjguNzFmNWIzMDY1YmY1NWZmNi42NTAzYTUzZDM1NTRjMDRjLjdjMzgwYmY0ZTA0MTlhMDMKICAgICBiODExMzA3NDc3Y2Y1ZWEzLjQyZmU4OGJlNDM1YzY5ZjMuZmNiYjRiNmM2YzZmZDkyZS4wZjE0ZDI1MGMwYjg5Nzk0CkBAIC0zNzk5NSwxMiArMzc5OTUsMTIgQEAKICAgICBlNWFmZTgwMWI2MGRmZjYwLmVhZjg2NDk5MTkyODc0YzMuMWFjYWZiNTIxY2ViMDZmNi5hZTQxOTVjZjllNTUyYzBhCiAgICAgNzQyYTg5Y2JkMzkyM2Q0NwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNmQwODViMzRlNDZkYjJlLjczNDlkNDc4ZGI2NWJiOGUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWFjYWZiNTIxY2ViMDZmNi4wZjE0ZDI1MGMwYjg5Nzk0CiAgICAgYjgxMTMwNzQ3N2NmNWVhMy40MmZlODhiZTQzNWM2OWYzLmZjYmI0YjZjNmM2ZmQ5MmUuMGYxNGQyNTBjMGI4OTc5NAogICAgIGJjMGY0OGRhN2I5YmFkZDIuNzZiYjlhYTFjZTY5ZGMyOC42ZmU0YmZmYTMwMWRkZDJlLmQ2N2RkNmEwZjYxMWRlODgKICAgICBlNWFmZTgwMWI2MGRmZjYwLmVhZjg2NDk5MTkyODc0YzMuMWFjYWZiNTIxY2ViMDZmNi5hZTQxOTVjZjllNTUyYzBhCiAgICAgNzQyYTg5Y2JkMzkyM2Q0NwotVlBBVkdCXzEyOChtZW0pCitWTUFYUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDIwNTMwN2ZiMmQzY2M2Yi45MTNmMGE1NWM0YjA5MWZhLjc4ODE2Mzk0NDBhNWVkZWQuNTliOGZkZTJjZDY0OTEzNQogICAgIDM1OWUwNmQ4NTYyNTk2YTEuMWEwOWFjNDI0MDEwOWY0Yy5mZDIxMTE3YzVkZWQwMmQ1Ljg4ZmNjMDE1ZGUxNGI5OTUKQEAgLTM4MDEwLDExICszODAxMCwxMSBAQAogICBhZnRlcgogICAgIDAyMDUzMDdmYjJkM2NjNmIuOTEzZjBhNTVjNGIwOTFmYS43ODgxNjM5NDQwYTVlZGVkLjU5YjhmZGUyY2Q2NDkxMzUKICAgICAzNTllMDZkODU2MjU5NmExLjFhMDlhYzQyNDAxMDlmNGMuZmQyMTExN2M1ZGVkMDJkNS44OGZjYzAxNWRlMTRiOTk1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJiNTEzYTg4NGZjOTc4ZTEuNzFkYWRmN2NkNjNjYTU2NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ODgxNjM5NDQwYTVlZGVkLjU5YjhmZGUyY2Q2NDkxMzUKICAgICBmYTM5MmIyNDVlMjljYmY1LjM2N2U1ZTk3ZjQzOTFlYzUuNWNkYTZmYzhlZjBjZjM4YS4yNWIxNzkxNDkyNGFkMzZhCiAgICAgNGNiYjY4Yjk2ZGU4M2QzNwogCi1WUEFWR1dfMTI4KHJlZykKK1ZNQVhQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBkMzRhMDhiMDE4ZWUzNGQ2LjQ0ZDQ3M2YxZmJmM2FkNmIuODJjMTY2ZDc2MzE5MDc0Ni5lZThhMTcwMzljZmI0N2FmCiAgICAgMTVhYTU1NjYzMGU3ZjZmMi5hMzVjZDkxMWNkZmViYWE0LjFiNmZkZDYwYjFlNzVjMmQuZTc4MjVlZGNhZmU0Mjc0MQpAQCAtMzgwMjIsMTIgKzM4MDIyLDEyIEBACiAgICAgM2YwYmU3YzAxNWUzYzU1My4xMDY2ZjBmZTgxMDU0NTBkLmE3M2IwOGZlNTg3YjM5ZTQuN2Y3OWJlMTg3ZGQ2N2Q1YQogICAgIGQ1MTBjZTUzNmZmNjZjM2EKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2QyMWNlODA5NThiNWFhYi44NjA4OTA4ZTdiNWMzYmQ2CisgICAgM2YwYmU3YzAxNWUzYzU1My4xMDY2ZjBmZTgxMDU0NTBkLjFiNmZkZDYwYjFlNzVjMmQuN2Y3OWJlMTg3ZGQ2N2Q1YQogICAgIDE1YWE1NTY2MzBlN2Y2ZjIuYTM1Y2Q5MTFjZGZlYmFhNC4xYjZmZGQ2MGIxZTc1YzJkLmU3ODI1ZWRjYWZlNDI3NDEKICAgICA3MDI2NGI0ODUwNWZiYzM4LmYzOWVkOTcyZjA1NmFlY2IuNWVkM2JmOWY3OTJlNTkyOS4yNDhkYzIzZjQ2ZDQ1MDZiCiAgICAgM2YwYmU3YzAxNWUzYzU1My4xMDY2ZjBmZTgxMDU0NTBkLmE3M2IwOGZlNTg3YjM5ZTQuN2Y3OWJlMTg3ZGQ2N2Q1YQogICAgIGQ1MTBjZTUzNmZmNjZjM2EKLVZQQVZHV18xMjgobWVtKQorVk1BWFBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDAxMWY2ZWRjMzk0MGQ3MzYuZGRhNjIzM2MxYWZkNGJmMC5kNjgwOThhMzliMTkzYTk1LjUyZjFiNWViZTk1ODM5MGEKICAgICBlMTczMWJhMGY2YzE3YjdhLmE4NDFmZDI3ZmIzYzhiYmEuMjFiODRmNGM1YjlkNGE5MC5iYjQyYzFkMWM5NTM5NDQ5CkBAIC0zODAzNywxMSArMzgwMzcsMTEgQEAKICAgYWZ0ZXIKICAgICAwMTFmNmVkYzM5NDBkNzM2LmRkYTYyMzNjMWFmZDRiZjAuZDY4MDk4YTM5YjE5M2E5NS41MmYxYjVlYmU5NTgzOTBhCiAgICAgZTE3MzFiYTBmNmMxN2I3YS5hODQxZmQyN2ZiM2M4YmJhLjIxYjg0ZjRjNWI5ZDRhOTAuYmI0MmMxZDFjOTUzOTQ0OQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YzFjNzNmODdiNWI0MjkzLjg3MWFiYmRlZDk1NjY2YWEKKyAgICAwMTFmNmVkYzM5NDBkNzM2LmE4NDFmZDI3ZmIzYzhiYmEuMjFiODRmNGM1YjlkNGE5MC41MmYxYjVlYmU5NTgzOTBhCiAgICAgMmExNDg5ODViYTk2NWM4ZS4zMWE5NzlmYWM0NTIyODg4LmI2YjFkODVhM2IyN2FhOGUuMzdlNWU2MzhlNGQyNGZiYwogICAgIDAyY2VmODkxNTc2ZDI1NDkKIAotVlBBVkdXXzEyOChyZWcpCitWTUFYUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZmI4MzU4OTM4OTU1NDg5ZC40YmZiNDI3ZmZhMDIxMmI0LmE3MGYxMmJhZTM0MmZlZTMuYjgwYWEyOTc5MzQ0NzJlOQogICAgIDdlNGUwNGFhMTUxN2YyNjYuOGY1NWY4NjM5Y2Q1ZjFkMy5iYWE1Mzk5OTRlODY3YzFjLmFmYjE2YTg5MDEwMjQ1NjYKQEAgLTM4MDQ5LDEyICszODA0OSwxMiBAQAogICAgIDkyNTkyZWM4YWQ1N2NlMDEuZWY5NjQ3OTg3ZGRjMThhYy4yMzk0MWU2NTdhMzc2N2Q3LmViMTllNDM3OGQ4ZWZiNzkKICAgICBlOTcxOGZjZGUzNzU1NTY2CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJmYWY5MTRlNzg5OGFlZmUuOTM5MjhiNTI1MGI3OTFjYworICAgIDdlNGUwNGFhMTUxN2YyNjYuOGY1NWY4NjM5Y2Q1ZjFkMy4yMzk0MWU2NTdhMzc2N2Q3LmFmYjE2YTg5MDEwMjQ1NjYKICAgICA3ZTRlMDRhYTE1MTdmMjY2LjhmNTVmODYzOWNkNWYxZDMuYmFhNTM5OTk0ZTg2N2MxYy5hZmIxNmE4OTAxMDI0NTY2CiAgICAgZTc3Y2Y3NDI5ODNlNjA0ZC5kMmYwMjUxY2JmMTliNDE3LmM0YjhlOTAzYTJhOWUxZGYuNzc3MmFjMWFhMDZjZGUzMgogICAgIDkyNTkyZWM4YWQ1N2NlMDEuZWY5NjQ3OTg3ZGRjMThhYy4yMzk0MWU2NTdhMzc2N2Q3LmViMTllNDM3OGQ4ZWZiNzkKICAgICBlOTcxOGZjZGUzNzU1NTY2Ci1WUEFWR1dfMTI4KG1lbSkKK1ZNQVhQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICA0YzQ4MjdjN2JlMmNhYjI1LmRiMzFhM2E2ZjBlYzc3MmMuYzQxNGQ5YzNmMjJhZDliYy4zMTg1ZDUyOTczYmQ0YmIwCiAgICAgZWY2ODJhMTAzYmJmYjhlNC4xZTUwNTQ0YWZmOGM5ODdhLjJjMzY1ODg3M2IwZGIzNzYuNGJkNzA5YmQyOGM2YzkxOApAQCAtMzgwNjQsMTEgKzM4MDY0LDExIEBACiAgIGFmdGVyCiAgICAgNGM0ODI3YzdiZTJjYWIyNS5kYjMxYTNhNmYwZWM3NzJjLmM0MTRkOWMzZjIyYWQ5YmMuMzE4NWQ1Mjk3M2JkNGJiMAogICAgIGVmNjgyYTEwM2JiZmI4ZTQuMWU1MDU0NGFmZjhjOTg3YS4yYzM2NTg4NzNiMGRiMzc2LjRiZDcwOWJkMjhjNmM5MTgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzgyNTk5MjU5NjljYzY5OS4zZWFlNmY3MzRlNDI4YTY0CisgICAgNGM0ODI3YzdiZTJjYWIyNS4xZTUwNTQ0YWZmOGM5ODdhLjJjMzY1ODg3M2IwZGIzNzYuNGJkNzA5YmQyOGM2YzkxOAogICAgIDZhYjY1ZjQ0OGFhYmU1MGMuMDE5MjU3OTBlYTE2MzIzMi4yNDk1MDk4ZGI3YzhhMDkzLjE0Y2RkODAxMzg5MjgyM2YKICAgICA3YTA5NmI4YWNiNmQzNTU3CiAKLVZQQVZHV18xMjgocmVnKQorVk1BWFBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDVjZDY2YjkyOGFmYjcxYWQuZjg3Yzg5MDY5MzFjN2RjZS41YTRkYTIwYmZmMTkyMmYzLjZkNmEzNGE4MjJiNzJjNGUKICAgICAxNjgwZDU4NTEyYzk3NGVjLjM4YmIwY2M4YWU5OGJjM2YuMWM3ZjE3ZmI0ZjU2N2E4OC5iODE0M2IwY2QxNmNjMDYyCkBAIC0zODA3NiwxMiArMzgwNzYsMTIgQEAKICAgICA4MjliZDRkY2ViNTNiOWQ3LjNhZDgxM2ZkODhlNzFmZGMuNTA3ODc0ZWEwZWFiNTFkZC5jODExY2Y2NDY4NTlmMzQ0CiAgICAgNDVmZTUyMmY4OWE5MGE2OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MGZhNjY2NDYyZDc3ODkzLmNkYjk2YjVhZDhiMDZkMmYKKyAgICAxNjgwZDU4NTEyYzk3NGVjLjNhZDgxM2ZkODhlNzFmZGMuNTA3ODc0ZWEwZWFiNTFkZC5iODE0M2IwY2QxNmNjMDYyCiAgICAgMTY4MGQ1ODUxMmM5NzRlYy4zOGJiMGNjOGFlOThiYzNmLjFjN2YxN2ZiNGY1NjdhODguYjgxNDNiMGNkMTZjYzA2MgogICAgIDA0NTNhNGNmZmU2Mjc4YzEuMDQ0MTY2NzZmNjJkNWU4YS5hNTc0YjRjYzc2NTg3NjlkLmUzNWQ5YmE3ZGZmMzE5ZmIKICAgICA4MjliZDRkY2ViNTNiOWQ3LjNhZDgxM2ZkODhlNzFmZGMuNTA3ODc0ZWEwZWFiNTFkZC5jODExY2Y2NDY4NTlmMzQ0CiAgICAgNDVmZTUyMmY4OWE5MGE2OQotVlBBVkdXXzEyOChtZW0pCitWTUFYUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMzRlZmEzZjQ1ZWVmMTk5OC5lZGEzNjIxODc0MjY3NWRiLmI0NGQ4ZDQ3N2ZkMWJiNjEuNzhkNjU0YzJiNmRiNDhmNQogICAgIDcyYWYzYjlmMDIzOGRkZmEuOWZiOTQ4ZjAzNTY5ZTY3OS41MDZjNTI0MmY4ZjdlZDQ0LjdiZGM0ZWJlMDc3NTk3OTAKQEAgLTM4MDkxLDExICszODA5MSwxMSBAQAogICBhZnRlcgogICAgIDM0ZWZhM2Y0NWVlZjE5OTguZWRhMzYyMTg3NDI2NzVkYi5iNDRkOGQ0NzdmZDFiYjYxLjc4ZDY1NGMyYjZkYjQ4ZjUKICAgICA3MmFmM2I5ZjAyMzhkZGZhLjlmYjk0OGYwMzU2OWU2NzkuNTA2YzUyNDJmOGY3ZWQ0NC43YmRjNGViZTA3NzU5NzkwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgyNWQ2ZmM1YmM2NGQ0NTMuN2E1OTUxYzA1ZjI4NzA0MworICAgIDcyYWYzYjlmMDIzOGRkZmEuOWZiOTQ4ZjAzNTY5ZTY3OS41MDZjNTI0MmY4ZjdlZDQ0LjdiZGM0ZWJlMDc3NTk3OTAKICAgICA0Y2QwMzQ1NzI4MDE3MzBlLjRiM2ExMTIwZDE2ZWRhMzEuNTlkOGFhZjdkZTI4MDVkNi43ZTBiODVkNjFhMTUyYzAxCiAgICAgMzZjZGI5YzkxNDMzZWEyZgogCi1WUEFERFNCXzEyOChyZWcpCitWTUlOUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMzk2NmY5OTIyN2VhZjA5MS45ZmM4OGQzY2UzOTliZDE3LmZjM2VlYzUwZTQ0N2Q0YTMuODBiYzM1OGE4MzRiNjNkYwogICAgIGUxMjIzZjljZjFjNzc5ZDIuYjJiZjFlYjhkYzYzYWMwNC42NjdmMGZjY2EwYmY3NDVmLjM3N2JmYjdkMWFkYjQ5ZjIKQEAgLTM4MTAzLDEyICszODEwMywxMiBAQAogICAgIDk0MzFkMjIzMTkyMDA3YTQuODNkZmQ5MjFmZmJlNjgzYy5kMmU3MjI1NTgwYmU5NTY0LmM4YjUyNTMzOGI2Zjk3ZjkKICAgICA1YWM5ODFjZTlmOGI3ODQyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRhN2Y3ZmNiODAyMjZhNmYuN2Y1YTcyMzlkOGJlN2YzNAorICAgIGUxMjIzZjljZjFjNzc5ZDIuYjJiZjFlYjhmZmJlNjgzYy5kMmU3MjI1NWEwYmY3NDVmLmM4YjUyNTMzOGI2Zjk3ZjkKICAgICBlMTIyM2Y5Y2YxYzc3OWQyLmIyYmYxZWI4ZGM2M2FjMDQuNjY3ZjBmY2NhMGJmNzQ1Zi4zNzdiZmI3ZDFhZGI0OWYyCiAgICAgOGI0Yzg5NTMwZTU1YzI5Zi41ZjgzNjRiNTMyNmJmYzAyLmU0NDg3OGZmYTA2M2Y2MTAuNWJkZjc3YmNiZWUzNzA0MgogICAgIDk0MzFkMjIzMTkyMDA3YTQuODNkZmQ5MjFmZmJlNjgzYy5kMmU3MjI1NTgwYmU5NTY0LmM4YjUyNTMzOGI2Zjk3ZjkKICAgICA1YWM5ODFjZTlmOGI3ODQyCi1WUEFERFNCXzEyOChtZW0pCitWTUlOUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZWVlNzA3NzkxMzQ0ZDA0YS41NjFlMTY3OGFlYjU4NDhjLmZhOWVmYmU3NWY2OGFkZGYuOGNhNjA5M2FkZDVkOGYwNAogICAgIDVlZGEzNDIwMDVhNTVhM2MuMmU1ZDUyYmU2YTlmNzQwMy5hMDhkNDVmMjZmNzM4NzE3LjZlZDIyOTFhNTJjYjFlOWYKQEAgLTM4MTE4LDExICszODExOCwxMSBAQAogICBhZnRlcgogICAgIGVlZTcwNzc5MTM0NGQwNGEuNTYxZTE2NzhhZWI1ODQ4Yy5mYTllZmJlNzVmNjhhZGRmLjhjYTYwOTNhZGQ1ZDhmMDQKICAgICA1ZWRhMzQyMDA1YTU1YTNjLjJlNWQ1MmJlNmE5Zjc0MDMuYTA4ZDQ1ZjI2ZjczODcxNy42ZWQyMjkxYTUyY2IxZTlmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjlhODA0MGQ5N2Y3ZjgwZjYuZmE4MDMyNTQyZjI4YWRhMworICAgIGVlZTcwNzc5MDVhNTVhM2MuMmU1ZDUyYmVhZWI1ODQ4Yy5mYTllZmJlNzVmNjhhZGRmLjhjYTYwOTNhZGQ1ZDhmMDQKICAgICA0NTczNzAxM2QxOTFmODkxLjkxMDM5ZmNlYzZhM2EwNTEuZWEyYjQyOGMwY2UxZTlmNC4xOWExMDY3Y2Y2NDRlZDcwCiAgICAgOWJkYmJhZDU1YzY4YTVmZgogCi1WUEFERFNCXzEyOChyZWcpCitWTUlOUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYjRiMzk3ZGE0YzhiZTMzOC43NGIwNzgzN2U0MzM4MzRiLmQzMDNhODZmOWRkNTUzODAuNDU3MmVkZjJkMzVjZTlmMQogICAgIGMyNzM5YWY1NWYzYWUyYzYuZjBmMzE1MDdlNGFlMzBhMC45Yjg1OThiMjBiOGM2YWVlLjNmMThiMDRlYjg2OTZkMzMKQEAgLTM4MTMwLDEyICszODEzMCwxMiBAQAogICAgIDI5ZGVmZTIyNjQ2OTE2OTQuM2ZiYjAzNWExYzVjZTNjOS4yZDQyMWVjYTFhYmJiNDM5LjgwYjU2ZTk5NTI2YWY1MzUKICAgICA3ZTQzNjI1ZjNlNzY3MDRkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUwODAwNGIzYjZlMTdmMzUuZjMwM2I3ZGI5MTdkN2YxOQorICAgIGMyNzM5YWY1NWYzYWUyYzYuZjBmMzE1MDdlNGFlMzBhMC45Yjg1OThiMjBiOGM2YWVlLjgwYjU2ZTk5Yjg2OTZkMzMKICAgICBjMjczOWFmNTVmM2FlMmM2LmYwZjMxNTA3ZTRhZTMwYTAuOWI4NTk4YjIwYjhjNmFlZS4zZjE4YjA0ZWI4Njk2ZDMzCiAgICAgMjA2OGJkOTQzMzAwZGY1Ni45NTA4YzU2ZWVkMGRiY2JiLjQ1ZDY2YzAxYWI1NTIxNDcuYjRlYjA3OGRkOTE0MzNlNgogICAgIDI5ZGVmZTIyNjQ2OTE2OTQuM2ZiYjAzNWExYzVjZTNjOS4yZDQyMWVjYTFhYmJiNDM5LjgwYjU2ZTk5NTI2YWY1MzUKICAgICA3ZTQzNjI1ZjNlNzY3MDRkCi1WUEFERFNCXzEyOChtZW0pCitWTUlOUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOGM2MTVlY2NiOTQ0NWY1OS4zYjIxNTkwYjhkMDJjMzJiLmNhZDc0YmI2OGNhODYxZjYuYWYxNWFkNzhmMzRiNWU2ZAogICAgIDg1ZGJkZWNiZTBlMDdmODYuYjA3ZGM4YmI0YTU2MjJjOC4xMjJhMWE2ZTVhZmNmMTZkLjI3OWIxMjc3ZDM4ZjVjOTIKQEAgLTM4MTQ1LDExICszODE0NSwxMSBAQAogICBhZnRlcgogICAgIDhjNjE1ZWNjYjk0NDVmNTkuM2IyMTU5MGI4ZDAyYzMyYi5jYWQ3NGJiNjhjYTg2MWY2LmFmMTVhZDc4ZjM0YjVlNmQKICAgICA4NWRiZGVjYmUwZTA3Zjg2LmIwN2RjOGJiNGE1NjIyYzguMTIyYTFhNmU1YWZjZjE2ZC4yNzliMTI3N2QzOGY1YzkyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRjMDE2NTI0ZTZhNDUyNjMuZDZiMGJmN2ZjNmRhN2ZmZgorICAgIDhjNjE1ZWNjZTBlMDdmODYuYjA3ZGM4YmI4ZDAyYzMyYi5jYWQ3NGJiNjhjYTg2MWY2LmFmMTVhZDc4ZjM0YjVlNmQKICAgICBhODEyNWIyZWExYjU0MmYyLjM3YWZkNjIwZjM1ZmU0YzIuNDhhMDM5YTM3ZWVkM2FlYi42OWVmNTIxODE2Njk0NDU5CiAgICAgZWI1NjI1OTJiMTE2YTU1NAogCi1WUEFERFNCXzEyOChyZWcpCitWTUlOUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZDM5ZmJmMGVjM2E4NGFlZi44YTY3NGY2YjcyMDQ1Yzg4LjAwMWQ2ZGFkMTUyZGJmNzcuZWY1YzgyZjcwY2EyNmI0YQogICAgIDdkMTcxY2Y2ZTdhYjZmZDYuYzY0OGI4ZWE1ZjUzOTdmMC45ZWQ0MGFiMTNkZTczZGUyLmMzN2U0MTU4Njc4ZjllYTMKQEAgLTM4MTU3LDEyICszODE1NywxMiBAQAogICAgIDg2YzMxMWJlZDYzNjI3MzUuYzFkZWQ3NWVmYjFhNjBlMC5jNTRkNDJjZjA5NGIwYzg5LjYxMjMxM2VkZjc0M2ZkZjYKICAgICBlNDNlMWRmOTYzMjFhMDQ3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA5ZjRiMTgwNDJmZWQ1OTEuODA0ZjM0MDgxMzgwODBjNgorICAgIDg2YzMxMWJlZTdhYjZmZDYuYzY0OGI4ZWFmYjFhNjBlMC5jNTRkNDJjZjA5NGIwYzg5LmMzN2U0MTU4Zjc0M2ZkZjYKICAgICA3ZDE3MWNmNmU3YWI2ZmQ2LmM2NDhiOGVhNWY1Mzk3ZjAuOWVkNDBhYjEzZGU3M2RlMi5jMzdlNDE1ODY3OGY5ZWEzCiAgICAgNDUwYTM5YjhiOWFjNGZiNC4zYTgxMTE5NzgzYWJhZjU0LjZiMjBhNzk5MDUxNzk4YWYuYTBkMWYzYjBhY2MxOTAyMwogICAgIDg2YzMxMWJlZDYzNjI3MzUuYzFkZWQ3NWVmYjFhNjBlMC5jNTRkNDJjZjA5NGIwYzg5LjYxMjMxM2VkZjc0M2ZkZjYKICAgICBlNDNlMWRmOTYzMjFhMDQ3Ci1WUEFERFNCXzEyOChtZW0pCitWTUlOUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMDRlZjhkYzIwYzY4MzY0My45ZTkwYTA3NmRhZDYzMzA2LjM2MmI4NDJjZTJhYjY1YzEuMDZhNmQ2YzFlNjBmZDcxZAogICAgIDljMDJkZjMzMGYyMzdiMTYuZThiYmUyNGI2MDE3YWVkMy43NzMzOTZlYjU1NmE3YjIzLjhiNzk1ZmRhMzdlZDMzMTYKQEAgLTM4MTcyLDExICszODE3MiwxMSBAQAogICBhZnRlcgogICAgIDA0ZWY4ZGMyMGM2ODM2NDMuOWU5MGEwNzZkYWQ2MzMwNi4zNjJiODQyY2UyYWI2NWMxLjA2YTZkNmMxZTYwZmQ3MWQKICAgICA5YzAyZGYzMzBmMjM3YjE2LmU4YmJlMjRiNjAxN2FlZDMuNzczMzk2ZWI1NTZhN2IyMy44Yjc5NWZkYTM3ZWQzMzE2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmNWU4MDE3MzcxNTdmZTQuOTExZjM1OWIxZGZjMGEzMworICAgIDljMDJkZjMzMGM2ODM2NDMuZThiYmUyNGJkYWQ2MzMwNi4zNjJiODQyY2UyYWI2NWMxLjhiNzk1ZmRhZTYwZmQ3MWQKICAgICBhODdkMWJiZDkyMjYwMWVmLjgxNWU3MGZiNjNhZGU1MGYuYzlhOGQ2ZjA0ZGE0YzkxOC5kMWI4NDEzMWE3MmQ5MGVhCiAgICAgNGJiZDkxNDdmZGE2MGExYwogCi1WUEFERFNXXzEyOChyZWcpCitWTUlOUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNzg2YmM3MzQzODZhMDU2NC5kNDdlZmNhZjQ5ODZiYTRkLjg5NmViNGFmMTkxOTE3ZDcuOTNhY2ZkMGUwYTM2NzkwNAogICAgIGI1MGVkZTY0ZjQwNWJlNmQuZTgxMGFmZjhjYThiMTIzMi4zMjBkOWIzMWMwNThhYTRhLjk3OWM3N2NkYzIyNzJhMjAKQEAgLTM4MTg0LDEyICszODE4NCwxMiBAQAogICAgIGNmNjJhMTNlNWNmMjU4NzUuM2MxYTdjNDM5OGIwOGQzZi5kYzI3NDM0YTU3NzhkZWUzLmMxNmY1OWUzOTY1NDdlOWEKICAgICA5ZWViYjkxMWU5YTc5OTUwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBjOTRiZDFjYjg0YjgyNWYuODAwMDM5ZTg4MDAwYzJiOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kYzI3NDM0YTU3NzhkZWUzLmMxNmY1OWUzOTY1NDdlOWEKICAgICBiNTBlZGU2NGY0MDViZTZkLmU4MTBhZmY4Y2E4YjEyMzIuMzIwZDliMzFjMDU4YWE0YS45NzljNzdjZGMyMjcyYTIwCiAgICAgNWVmMWQzNDNjYzA0NzBlNC5jMjAwYjE4NTMwM2ZjNGM5LmRhODcyMWViZjdmM2Q4MTUuYjM0NGMyMWI5MjgyOTg5OQogICAgIGNmNjJhMTNlNWNmMjU4NzUuM2MxYTdjNDM5OGIwOGQzZi5kYzI3NDM0YTU3NzhkZWUzLmMxNmY1OWUzOTY1NDdlOWEKICAgICA5ZWViYjkxMWU5YTc5OTUwCi1WUEFERFNXXzEyOChtZW0pCitWTUlOUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjc4MjVjOTFhNzhhYTVlNi42NGFiNDNiZjQxNWJiMmNiLjMzMmE4ZTFjMWRlYTI5YzAuOTMzYWZjYmI3ZjcyZjc2MQogICAgIDM2MDFjMDUwZWQwNjVkODkuNzkxOWI4MzQxN2NjYmE5My44NGZjNjJmZWRjZjg1NDc3LjVkMGM0OGE4MDg2ZTYxM2EKQEAgLTM4MTk5LDExICszODE5OSwxMSBAQAogICBhZnRlcgogICAgIDI3ODI1YzkxYTc4YWE1ZTYuNjRhYjQzYmY0MTViYjJjYi4zMzJhOGUxYzFkZWEyOWMwLjkzM2FmY2JiN2Y3MmY3NjEKICAgICAzNjAxYzA1MGVkMDY1ZDg5Ljc5MTliODM0MTdjY2JhOTMuODRmYzYyZmVkY2Y4NTQ3Ny41ZDBjNDhhODA4NmU2MTNhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmI4MjZmMTFhZmFlMjdlMzcuZjA0NjQ1NjM3ZmZmNTg5YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44NGZjNjJmZWRjZjg1NDc3LjkzM2FmY2JiN2Y3MmY3NjEKICAgICA1YWU3YjgzNjgwZmVjNGE1LjkzOTMwM2E2MDNmNGMyMjcuOWYxNTQxOGE3NWMwNDUzYS45NTFkODlhYmIzOTkxMmIwCiAgICAgYmRmNDc3OTcwY2UxZDNhNAogCi1WUEFERFNXXzEyOChyZWcpCitWTUlOUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjZiOWU4YjEzODVhZDNhNC4yNmU2NDUzNzA0OTJlYjc2LjUwMzhkMzdjNTJjMjNiNGMuMjNmNDQ0MGM4OTkzODQ5ZAogICAgIGVlYmFkODY0ZDI5MDRmNWMuZTlmYzgxMjU4MGVmYWUwMy5mYzMxNjRmNTAxYzk1MjkyLjZmYzVmOTQ2NDU2YTQxZTYKQEAgLTM4MjExLDEyICszODIxMSwxMiBAQAogICAgIDA2OWIyNTQ1YzE2NWFhYTEuYzRhMWZiN2RjZTNhZmIwNC45NjUzYmE4MGYxYWI0ODMzLmQyNmQ2YTkyMmI1NjI4ZGQKICAgICBhMWRiMWU3YzhjODJjYWUzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYxZmQxNzcyYWY1YjdmZmYuN2ZmZmQ1NmEwY2JjN2IyOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYzMxNjRmNTAxYzk1MjkyLmQyNmQ2YTkyMmI1NjI4ZGQKICAgICBlZWJhZDg2NGQyOTA0ZjVjLmU5ZmM4MTI1ODBlZmFlMDMuZmMzMTY0ZjUwMWM5NTI5Mi42ZmM1Zjk0NjQ1NmE0MWU2CiAgICAgYWY0MTQzMWM3NjEwODI3Ny43ZmY2ZWFlZTBmMjRjYTc5LmY1Y2NiMjdkYWQ5MjQyYTYuNjA1NGRjMjRjNzUyMzk0MgogICAgIDA2OWIyNTQ1YzE2NWFhYTEuYzRhMWZiN2RjZTNhZmIwNC45NjUzYmE4MGYxYWI0ODMzLmQyNmQ2YTkyMmI1NjI4ZGQKICAgICBhMWRiMWU3YzhjODJjYWUzCi1WUEFERFNXXzEyOChtZW0pCitWTUlOUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTk2YzczY2YwNmUzZGE3Zi40ZjE0N2I0YzRmMWIwMTg3Ljk1YzczMGJlZDgzZmZkY2YuM2IxMzc2NmE2YTlmYTBlNgogICAgIGM2ZWFlODc1YjY4NDE1ZGQuZTZmNzQwOWJiYmJmYzRkNS5jYzM1MDY5ZDRhM2U4YjA3LjNmNTdlNGE4YjNmYjg1NmIKQEAgLTM4MjI2LDExICszODIyNiwxMSBAQAogICBhZnRlcgogICAgIGE5NmM3M2NmMDZlM2RhN2YuNGYxNDdiNGM0ZjFiMDE4Ny45NWM3MzBiZWQ4M2ZmZGNmLjNiMTM3NjZhNmE5ZmEwZTYKICAgICBjNmVhZTg3NWI2ODQxNWRkLmU2Zjc0MDliYmJiZmM0ZDUuY2MzNTA2OWQ0YTNlOGIwNy4zZjU3ZTRhOGIzZmI4NTZiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAzNzViMjI3ZDg4ZDYuN2E2YTViMTIxZTlhODAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYzM1MDY5ZDRhM2U4YjA3LjNiMTM3NjZhNmE5ZmEwZTYKICAgICBiMGUwMWE2ZjI2YjZmYzkyLjZmMmYwOGM1OWVmZTdjNTguZGYxODgyZTVkMzVjM2Q2Yy5kOWEwYzNjYjI3MThlOTk5CiAgICAgMjUzYjJkOGE4YWYxZGY5YQogCi1WUEFERFNXXzEyOChyZWcpCitWTUlOUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDI4YjM4NGMyZDYyNTQxZC4zM2YwZDE5OTFmNjAxZjQxLjE4MWMwMjc4NGRiMmVhZTQuNzMyNTIwMjYyMzkyZGFmMgogICAgIDhhZGNkZjdkYWNmNjgyY2QuM2MxZTk2YzhiYzdiNWQ2Mi43ZmEzNWMyNDRiODNiNDg5LmRlYWI0ZWI2NGJmM2YzOTQKQEAgLTM4MjM4LDEyICszODIzOCwxMiBAQAogICAgIDBmYjFmN2RiYjFiOWZiNjcuNGQwMzNiZTI1ODMwMTlhYi5mN2IxMWQxNmEyYWQ0YWM4LmE4NGQ0YzZmOTE2MzhiZGUKICAgICBjMDAxMTM3MGU3OGI4MmRlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmYjQ2ZDU4N2Y4MWNhNzkuZGIxZmQ4MzU3ZmZmMzkxMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mN2IxMWQxNmEyYWQ0YWM4LmRlYWI0ZWI2NGJmM2YzOTQKICAgICA4YWRjZGY3ZGFjZjY4MmNkLjNjMWU5NmM4YmM3YjVkNjIuN2ZhMzVjMjQ0YjgzYjQ4OS5kZWFiNGViNjRiZjNmMzk0CiAgICAgNWI3YTIxODhhNDNhYTU1Ny5hNjM1ZTVlNzFjMTE3MTIxLjAwMTExMTM0MzNmZTE1ZjAuZmM3NDg5N2Y2NjhhNDU3ZgogICAgIDBmYjFmN2RiYjFiOWZiNjcuNGQwMzNiZTI1ODMwMTlhYi5mN2IxMWQxNmEyYWQ0YWM4LmE4NGQ0YzZmOTE2MzhiZGUKICAgICBjMDAxMTM3MGU3OGI4MmRlCi1WUEFERFNXXzEyOChtZW0pCitWTUlOUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMWY1ZTVhNzA4NDBkZTZhYi4wNGNjNWZlMjZlZmZiZWE4LjBkNTIxM2E2OGZlNDBmMmMuYzBkMTdkMzUzMzFlOGZiYgogICAgIGExMmU5ZDVhODVmNTczNzAuOTQxOTUzMDc3Nzk5MmJjNy5jMmVmZTgxZGRhMzcxMGQwLmI3YmMyY2ZkODNkZDFmNzUKQEAgLTM4MjUzLDExICszODI1MywxMSBAQAogICBhZnRlcgogICAgIDFmNWU1YTcwODQwZGU2YWIuMDRjYzVmZTI2ZWZmYmVhOC4wZDUyMTNhNjhmZTQwZjJjLmMwZDE3ZDM1MzMxZThmYmIKICAgICBhMTJlOWQ1YTg1ZjU3MzcwLjk0MTk1MzA3Nzc5OTJiYzcuYzJlZmU4MWRkYTM3MTBkMC5iN2JjMmNmZDgzZGQxZjc1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwNDFmYmMzODAwMDFmZmMuODAwMDdmZmZiNmZiYWYzMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMmVmZTgxZGRhMzcxMGQwLmMwZDE3ZDM1MzMxZThmYmIKICAgICA3ZDViMDk5YzIxMjlmNjk0LmY5NzRkNTVlZGZmNmYyNGUuN2E0MzdmZDgyMmYwMjIyZS45ZjIxNjczOWNlNzIxNGYxCiAgICAgNDgzNGViODQwMTYwZWYwYgogCi1WUEhBRERXXzEyOChyZWcpCitWTUlOUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgOGU0MmFmMjk2MmNjMDc5Yy45MDRmMjljY2Y0OGM2NTRiLjg1MWI1OTY5NzZkMmM0MGQuMzY5MTM3ZjM1NjZjYWE0MQogICAgIGNmOTZhZDkyOGU0MTk2NTAuMzZlNzM2OTY5Yjg2ZWRhYS4xZTIzNWI0MmM5MzEzMDViLjU3NWVkZTczMTBiOTJlMjcKQEAgLTM4MjY1LDEyICszODI2NSwxMiBAQAogICAgIGFmNDQ0ZDY1YjY3ODBiZDQuYWEzMjAzYTlkMzZjMzYxMy5lMjg1YzYxMzE1YTljNDRlLjM3YTBlNjRlODNmNDE2MWEKICAgICBhZmFlNDA4Mjc1ZmJmMjgwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY1MmVlNzgwYTdiN2Q0ZWUuNzk2NWY5OGMzNWQxM2VlMAorICAgIGNmOTZhZDkyOGU0MTk2NTAuYWEzMjAzYTlkMzZjMzYxMy5lMjg1YzYxMzE1YTljNDRlLjM3YTBlNjRlODNmNDE2MWEKICAgICBjZjk2YWQ5MjhlNDE5NjUwLjM2ZTczNjk2OWI4NmVkYWEuMWUyMzViNDJjOTMxMzA1Yi41NzVlZGU3MzEwYjkyZTI3CiAgICAgNjY3ZWUzMmQyMTRjZDlkNC40YWVlYWFlNjMxMjI0OWRmLjFlZDdkNjU3NzU5ZjcxZTEuYjg3NGVmNDM2YmUzNjkwYgogICAgIGFmNDQ0ZDY1YjY3ODBiZDQuYWEzMjAzYTlkMzZjMzYxMy5lMjg1YzYxMzE1YTljNDRlLjM3YTBlNjRlODNmNDE2MWEKICAgICBhZmFlNDA4Mjc1ZmJmMjgwCi1WUEhBRERXXzEyOChtZW0pCitWTUlOUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZmI2YTc3Y2E1YzAxYjg2OC4wNTM2ZTVhNmU5NTE2OWZiLjMxN2RiY2M5OWM3MTcwNzUuYzc3NzI3ZTE0NmRhNjU0YwogICAgIGY5OWYwOTEyNTUxNDI1ZmUuYzY5ZWE5NWM1NzYzMmZmNi5iYTlkNTEzNGE5M2NiMjJlLjI3ZmFmNjJmYTNiZTkwODgKQEAgLTM4MjgwLDExICszODI4MCwxMSBAQAogICBhZnRlcgogICAgIGZiNmE3N2NhNWMwMWI4NjguMDUzNmU1YTZlOTUxNjlmYi4zMTdkYmNjOTljNzE3MDc1LmM3NzcyN2UxNDZkYTY1NGMKICAgICBmOTlmMDkxMjU1MTQyNWZlLmM2OWVhOTVjNTc2MzJmZjYuYmE5ZDUxMzRhOTNjYjIyZS4yN2ZhZjYyZmEzYmU5MDg4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVlNDYwY2U2ZWY1OGFjMjYuMGJkMTViNmExZTI5MzQ0NgorICAgIGZiNmE3N2NhNWMwMWI4NjguYzY5ZWE5NWM1NzYzMmZmNi5iYTlkNTEzNGE5M2NiMjJlLmM3NzcyN2UxNDZkYTY1NGMKICAgICA3N2E4MmI1M2ViOGVlNGU4LmY1MDJhMmQ3NTI2NWUzMTcuNDY4NzAwOTdmZDU1NDE1Yy5jYmUzY2FmOTUzZDE3MjY4CiAgICAgYzdlMGM5NGNkZDE3YTI2NAogCi1WUEhBRERXXzEyOChyZWcpCitWTUlOUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYWY5ZjI0Y2UwNDQxNGI0ZS5hZjEzYjQyM2MxMGVhZTkyLjFjOTdjZjc0MTg2YjQ4OTUuMDFlOTEyNjg3Y2JiMDYyOAogICAgIGRmNmFkOWViNjRkYWFiZDIuMDkyODg3YTQxN2NhMGU5Yi4xY2QyMTczNzg3ZGIwNDk2LjJlNTBmMDMzYWUxOGMzZmMKQEAgLTM4MjkyLDEyICszODI5MiwxMiBAQAogICAgIDg3NTgzZWE3M2M4YTdhNTYuOGU4MGZiNjViOTI3ODI3OS4xYjZlZWFkYmQ2Mjc3NWQzLjUyNTkwMTY3OWVlNDE4NmUKICAgICAwMDkzMmNhODkzNmIyNzY0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNhOGI5NDA3YzI2YWU1N2MuMzQwOThjNzExZTgzNzIxNAorICAgIGRmNmFkOWViNjRkYWFiZDIuOGU4MGZiNjViOTI3ODI3OS4xYjZlZWFkYmQ2Mjc3NWQzLjJlNTBmMDMzYWUxOGMzZmMKICAgICBkZjZhZDllYjY0ZGFhYmQyLjA5Mjg4N2E0MTdjYTBlOWIuMWNkMjE3Mzc4N2RiMDQ5Ni4yZTUwZjAzM2FlMThjM2ZjCiAgICAgYjM4ZmUzMTA5ODZmZmI5Yi41ZmIzMjBjMDBjY2ZjMTJmLjUzMDE3NzhhM2U0MDU1YzcuYWE4NjE3ZTRiMDc3MzUwNQogICAgIDg3NTgzZWE3M2M4YTdhNTYuOGU4MGZiNjViOTI3ODI3OS4xYjZlZWFkYmQ2Mjc3NWQzLjUyNTkwMTY3OWVlNDE4NmUKICAgICAwMDkzMmNhODkzNmIyNzY0Ci1WUEhBRERXXzEyOChtZW0pCitWTUlOUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgOTEwMTEzOTRhYjE5MWYxMy5iNzExZTYxZWVkYmE2M2FlLjczNWE5NDdlM2RlMTBlYTYuZDI2NjZjOTRlZDFiYTE2NwogICAgIGUyNmYzMjE1MDNmOWJjYTYuOWYwOGQ3ZTA0Nzg4ZjE1MC5lODBmNjhmN2IxMDYyMmUxLmQyMzRmYTIzMWZhODE1MmYKQEAgLTM4MzA3LDExICszODMwNywxMSBAQAogICBhZnRlcgogICAgIDkxMDExMzk0YWIxOTFmMTMuYjcxMWU2MWVlZGJhNjNhZS43MzVhOTQ3ZTNkZTEwZWE2LmQyNjY2Yzk0ZWQxYmExNjcKICAgICBlMjZmMzIxNTAzZjliY2E2LjlmMDhkN2UwNDc4OGYxNTAuZTgwZjY4ZjdiMTA2MjJlMS5kMjM0ZmEyMzFmYTgxNTJmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA3ZDg0Yzg3M2VmYThlODIuNTEwNmQzZTdjYzU3MzRkNworICAgIGUyNmYzMjE1MDNmOWJjYTYuYjcxMWU2MWVlZGJhNjNhZS5lODBmNjhmN2IxMDYyMmUxLmQyNjY2Yzk0ZWQxYmExNjcKICAgICAyZjdhMDk4YWUxODFkNDJiLjA3ZGM4NmY1NjMzM2VlMjEuZjUzNWFlYjlkZmM2Y2MzNC4yMTg3MjY3MDQyYmZjNDA5CiAgICAgMjdhMmJkMDY2YjYwNzc3MwogCi1WUEhBRERXXzEyOChyZWcpCitWTUlOUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZThjNDUwMjExZWNiNjFjMi5lNGFmYjk1NjlmNDBjNzc0LjNlNTEzYjIwNWUyOGQ1YTcuNDYzZjE4ZGFkMDc5ZGJhMwogICAgIGJlMzlkOTJkZjg4YmJmOWYuYzgxNDkxNjgwZDYxNGY1MS45ZTM0MmE0NjcxZWI1MjI4Ljk3NTNhYzBiMjJjODYxZDEKQEAgLTM4MzE5LDEyICszODMxOSwxMiBAQAogICAgIDFjNGNjMmM4OTAzYmM3YjkuOGU5ZWFhMGQ2N2ZiMGQ3YS40NjZlYTIzMzUxMTFmZGM1LmFjYzg0NDRlNWM2YWMxMTgKICAgICAyOGMxM2YzNzdiZDYxMzhhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwYTFkOTU5YWM3NDBjYTguYzg3YWM0MTM0MzVlODQ5OQorICAgIGJlMzlkOTJkZjg4YmJmOWYuYzgxNDkxNjgwZDYxNGY1MS45ZTM0MmE0NjcxZWI1MjI4LmFjYzg0NDRlNWM2YWMxMTgKICAgICBiZTM5ZDkyZGY4OGJiZjlmLmM4MTQ5MTY4MGQ2MTRmNTEuOWUzNDJhNDY3MWViNTIyOC45NzUzYWMwYjIyYzg2MWQxCiAgICAgMDY0ZDU2OTY5NTJjY2ViOC5iODc1MGRhYjQ2ZjEyOGVmLjgyY2U0ZGQzMzgwYmExNGUuYzUzY2U3MzhmMmJmMTllOQogICAgIDFjNGNjMmM4OTAzYmM3YjkuOGU5ZWFhMGQ2N2ZiMGQ3YS40NjZlYTIzMzUxMTFmZGM1LmFjYzg0NDRlNWM2YWMxMTgKICAgICAyOGMxM2YzNzdiZDYxMzhhCi1WUEhBRERXXzEyOChtZW0pCitWTUlOUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMTVmNDU0ZTE2YjBlY2M2YS41YzgxMTkzMDg1NDNlOTRlLjI3NWJlMzc5OGI4Y2JiMWUuNDU1ZjI0ZDM1NThiYTMzYQogICAgIDRmMmQwMDM3NDkxZmE3ZTUuMjMzYTU3MzgxMWQwNmUyMi41Zjc3MzRkY2NmYWZlZDA2LmRkZWNjZjFkZTIwNGNmNTkKQEAgLTM4MzM0LDExICszODMzNCwxMSBAQAogICBhZnRlcgogICAgIDE1ZjQ1NGUxNmIwZWNjNmEuNWM4MTE5MzA4NTQzZTk0ZS4yNzViZTM3OThiOGNiYjFlLjQ1NWYyNGQzNTU4YmEzM2EKICAgICA0ZjJkMDAzNzQ5MWZhN2U1LjIzM2E1NzM4MTFkMDZlMjIuNWY3NzM0ZGNjZmFmZWQwNi5kZGVjY2YxZGUyMDRjZjU5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhZDQ0NmFhNmEzMmY4YzUuOTQ1M2JjYjVhZDA5YjE1ZAorICAgIDE1ZjQ1NGUxNmIwZWNjNmEuMjMzYTU3MzgxMWQwNmUyMi4yNzViZTM3OThiOGNiYjFlLmRkZWNjZjFkZTIwNGNmNTkKICAgICAxYWUxMGE5NjNkZjliNjVhLmIxNjM3YWRkNWNhYjk0MzguMWMwMDBlMzIyNGRjZDE1My40NDBlOTI2NDA2MjVhODQzCiAgICAgY2MzYWExMzdkNWU0Y2Q2NwogCi1WUEhBREREXzEyOChyZWcpCitWTU9WSFBTXzEyOF9TdG9yZUZvcm0ocmVnKQogICBiZWZvcmUKICAgICA1YjMzYzk2NjljZDI2OGU0LjYzZjM2MDc4OGJkYjYyYWQuMzE2YzU2NTE1MzEwYWNkMy41OTA0OTBmZjZlZmVmYTExCiAgICAgNGY0NDA2NWNmNzdjYjQ2Ni42OTNjM2NiNjM3YzUyMDRhLmE3MjgwOTE2NTEyYjE4NWUuYTQ5ODE5NzE0OGUyOTdjMwpAQCAtMzgzNDYsMTIgKzM4MzQ2LDEyIEBACiAgICAgZDJlMmIwNGVkYjMyNTIyZC4xYjllNzhmNzE3ZTJjNTE0LmU1ZThlNTQzZDBiMWRiZjEuZDk5ZjM2ZjkxOTIyMjBiNgogICAgIDdhYWJjMGU1NDk5NTg0NGUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjE2OWE0MWNhOTFkOGUwYy5mODUzMjE3NGVkN2FiMTM0CisgICAgNWIzM2M5NjY5Y2QyNjhlNC42M2YzNjA3ODhiZGI2MmFkLjMxNmM1NjUxNTMxMGFjZDMuNTkwNDkwZmY2ZWZlZmExMQogICAgIDRmNDQwNjVjZjc3Y2I0NjYuNjkzYzNjYjYzN2M1MjA0YS5hNzI4MDkxNjUxMmIxODVlLmE0OTgxOTcxNDhlMjk3YzMKICAgICAwMmJiNTU4NTgzNmVlZTliLjA4ODYxYjNkNWNjM2FkNWUuNmZlMjhmOThmMTg3MTQ4NC5kYjg4Mjg3NmNkOTU2NTk2CiAgICAgZDJlMmIwNGVkYjMyNTIyZC4xYjllNzhmNzE3ZTJjNTE0LmU1ZThlNTQzZDBiMWRiZjEuZDk5ZjM2ZjkxOTIyMjBiNgogICAgIDdhYWJjMGU1NDk5NTg0NGUKLVZQSEFERERfMTI4KG1lbSkKK1ZNT1ZIUFNfMTI4X1N0b3JlRm9ybShtZW0pCiAgIGJlZm9yZQogICAgIDlhNzY0MzI4NzhmYjRjOGIuMTkwNzE2MjE5YzU2MWNjOC44MDUwY2ZkMTgzMmQyNDk5LjY1ODQwNjgzODkzNGFhNTIKICAgICAxNGNkM2FhZGMzNWYzNTk4LjM0NzQ4MDZiNjI2Njg3MTkuMTI2ODljYjhiZGIwODUxOS40YjAzZWVjNGI5OWNiZDUzCkBAIC0zODM1OSwxMyArMzgzNTksMTMgQEAKICAgICA4YjRmNzQyZTFiNTI1YWQ1LjU3NTg1NDE1NmE3NjMzOGMuMmNmOTg5NTkwODkwNDBiOC5iOGRhMDRmYWViNGM5ZWUzCiAgICAgZjhjYTJhYzcyNmFjZTVjYgogICBhZnRlcgotICAgIDlhNzY0MzI4NzhmYjRjOGIuMTkwNzE2MjE5YzU2MWNjOC44MDUwY2ZkMTgzMmQyNDk5LjY1ODQwNjgzODkzNGFhNTIKKyAgICA5YTc2NDMyODc4ZmI0YzhiLjE5MDcxNjIxOWM1NjFjYzguODA1MGNmZDE4MzJkMjQ5OS4xMjY4OWNiOGJkYjA4NTE5CiAgICAgMTRjZDNhYWRjMzVmMzU5OC4zNDc0ODA2YjYyNjY4NzE5LjEyNjg5Y2I4YmRiMDg1MTkuNGIwM2VlYzRiOTljYmQ1MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMzdkZjQ2YWVlYjhiMGQ1LmQwMTkyMWQxMDRhMGFjMTcKKyAgICBjNjdjMjE2MDQ2Y2RmYmEyLjgwNzZlYjk5YzdlY2QwY2MuYWRiMTVjOTZlMDc4YTViZi5mMmIxOWE3M2ZiNzU1MGEwCiAgICAgOGI0Zjc0MmUxYjUyNWFkNS41NzU4NTQxNTZhNzYzMzhjLjJjZjk4OTU5MDg5MDQwYjguYjhkYTA0ZmFlYjRjOWVlMwogICAgIGY4Y2EyYWM3MjZhY2U1Y2IKIAotVlBIQURERF8xMjgocmVnKQorVk1PVkhQU18xMjhfU3RvcmVGb3JtKHJlZykKICAgYmVmb3JlCiAgICAgMGVjYzA3NDQ0ODIyNWUwMi4zZTEyYjAwMTYxZjkwZDVjLjE2NjhiNjRkZTQ5MGViMDYuNmQwYWExZWM1MjA0MTEyZgogICAgIDU1MmU5N2RmZWMzOTQ4MzUuYmQ5MDUwYzYzMWNlZDE2My4xYWYwMGRhYmQ0YzQzNWU1LjRiYjEyMDNhZGFlMWQ1NTEKQEAgLTM4MzczLDEyICszODM3MywxMiBAQAogICAgIGViM2RjMTFjMmI3YTVhM2QuOGJmMWFjZDdlNTM0N2JhNS41YzljOGI4ZTgwYjA2Zjg1LjRkZjEzZmJjMTEwNDI2NDQKICAgICAyOTIxZDdjOGY5NjEyYTZlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkwZGVhMzczNWNlY2M4N2EuZWZiNDQzOTAyNjkyZjU4YgorICAgIDBlY2MwNzQ0NDgyMjVlMDIuM2UxMmIwMDE2MWY5MGQ1Yy4xNjY4YjY0ZGU0OTBlYjA2LjZkMGFhMWVjNTIwNDExMmYKICAgICA1NTJlOTdkZmVjMzk0ODM1LmJkOTA1MGM2MzFjZWQxNjMuMWFmMDBkYWJkNGM0MzVlNS40YmIxMjAzYWRhZTFkNTUxCiAgICAgMmIzYWQ3MDNhZTdkZGQwZi5lMzk3ZDA2YWE5ZGU2MjE4LmJkM2U1NTlkZDNhMDRkZDYuYTFiYTgwMzFiYjMyNDg0OQogICAgIGViM2RjMTFjMmI3YTVhM2QuOGJmMWFjZDdlNTM0N2JhNS41YzljOGI4ZTgwYjA2Zjg1LjRkZjEzZmJjMTEwNDI2NDQKICAgICAyOTIxZDdjOGY5NjEyYTZlCi1WUEhBREREXzEyOChtZW0pCitWTU9WSFBTXzEyOF9TdG9yZUZvcm0obWVtKQogICBiZWZvcmUKICAgICAxMzE4YzczZjhlNTcxMWYyLmYwODM1Mzk2ZmViZGZiNmIuOTM2YjYwZmIwMGRkZDkzNi41MzU3YWFlYTc0N2VkNjlkCiAgICAgZTVhMDg4MGVlZGYyOTdmZC45ODU4ODhkZGM0ZDFmYjQ0LmQ1ZDE2OWMxMTdlMzM4ZjguZmViYmFlMWQ0ZDk4YmZjYgpAQCAtMzgzODYsMTMgKzM4Mzg2LDEzIEBACiAgICAgYjU5NjcxNjU3NzQ0NmU1Ny4zZGRlY2M4Mzk3OWUwYmE5LjdiOTA2N2UyYTYzY2U4YmUuZTBhZDU1YjkxZGRmMDcxNwogICAgIGNmZDNmMWY5NGIyM2RkOGUKICAgYWZ0ZXIKLSAgICAxMzE4YzczZjhlNTcxMWYyLmYwODM1Mzk2ZmViZGZiNmIuOTM2YjYwZmIwMGRkZDkzNi41MzU3YWFlYTc0N2VkNjlkCisgICAgMTMxOGM3M2Y4ZTU3MTFmMi5mMDgzNTM5NmZlYmRmYjZiLjkzNmI2MGZiMDBkZGQ5MzYuZDVkMTY5YzExN2UzMzhmOAogICAgIGU1YTA4ODBlZWRmMjk3ZmQuOTg1ODg4ZGRjNGQxZmI0NC5kNWQxNjljMTE3ZTMzOGY4LmZlYmJhZTFkNGQ5OGJmY2IKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTQ0OTNhMzFjN2Q2ODE4Ny5lZGI0YTJiOTRjNTQ2ZGU4CisgICAgN2Q4Njk3MjEzMTNkNzdiYi4zZTA3NWQ1ZTE5NDM5Nzc0LjJmZWY0MjE0NDU1NDU0MTcuYjkxMzkzOTRhNzhhNjZiYQogICAgIGI1OTY3MTY1Nzc0NDZlNTcuM2RkZWNjODM5NzllMGJhOS43YjkwNjdlMmE2M2NlOGJlLmUwYWQ1NWI5MWRkZjA3MTcKICAgICBjZmQzZjFmOTRiMjNkZDhlCiAKLVZQSEFERERfMTI4KHJlZykKK1ZNT1ZIUFNfMTI4X1N0b3JlRm9ybShyZWcpCiAgIGJlZm9yZQogICAgIGUyZDI2MmMxY2VlMjI1Y2EuNmI5YzkxYzVkYTEzMzhmZC5mMzI3ZDNiOWRkNmU5MzhkLjk2ODI1NDE2NTdhNmIxMWEKICAgICA3NWY2YTQ3YjQyYTkxYTc4Ljc5NjQ3MzJjNzdiNzkxZGIuYmEyZjZkNmQ4NDQwNmFjYy41ZDhmODY5ZDc0OWU2YjU3CkBAIC0zODQwMCwxMiArMzg0MDAsMTIgQEAKICAgICA4YmRkOGM3YTZhN2NmZmQ4LjEwNjk2ZWM0Y2RhY2RlZTkuZWZhYzRhZmI2YjE3ZjgwZS41YTJkYTY0ZjVmNjlhMDIxCiAgICAgNGE1NjhjNTQ2NjU0OTQwNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xYWUyNjMxY2MyYjU0YTAxLjNlNmZkODM5ZDIyZGYxZjQKKyAgICBlMmQyNjJjMWNlZTIyNWNhLjZiOWM5MWM1ZGExMzM4ZmQuZjMyN2QzYjlkZDZlOTM4ZC45NjgyNTQxNjU3YTZiMTFhCiAgICAgNzVmNmE0N2I0MmE5MWE3OC43OTY0NzMyYzc3Yjc5MWRiLmJhMmY2ZDZkODQ0MDZhY2MuNWQ4Zjg2OWQ3NDllNmI1NwogICAgIGU0OGJiMzk1NDIwM2ZhNDMuYmNiYTkzODg2OTNiMzQxYi5mMDQyOTYwOTJhOWZjZDEzLmFhODQ3ODYxMTgzMGQxYTAKICAgICA4YmRkOGM3YTZhN2NmZmQ4LjEwNjk2ZWM0Y2RhY2RlZTkuZWZhYzRhZmI2YjE3ZjgwZS41YTJkYTY0ZjVmNjlhMDIxCiAgICAgNGE1NjhjNTQ2NjU0OTQwNwotVlBIQURERF8xMjgobWVtKQorVk1PVkhQU18xMjhfU3RvcmVGb3JtKG1lbSkKICAgYmVmb3JlCiAgICAgNTRjYmE2NWE0OGZlNjk3ZS5jNjM4Mjk5NjU3YTE2NmUzLjUyM2U3ZmNjYmUxNTRiNzIuMTRiODg2YWVlMjM1MjY2OAogICAgIDU1NTc3MTRmMjI3MmRhYjIuZjFlNzg4NTRhNGZkNmEwZi41YzA1NDI4YzU5ODIzNmUyLmJjYjQ0NThlMmM4NDk0Y2UKQEAgLTM4NDEzLDEzICszODQxMywxMyBAQAogICAgIGFkZTgwN2IyMmNlOTgzZmUuODc3NDdhNmNkMDhjM2M3Yy4zYjk5Y2ZlNGZhOTk3OTI1LjAwYTczYzg1YTZlNjIwNmQKICAgICA1NjM3NmQ3NDBmMTFiNWZkCiAgIGFmdGVyCi0gICAgNTRjYmE2NWE0OGZlNjk3ZS5jNjM4Mjk5NjU3YTE2NmUzLjUyM2U3ZmNjYmUxNTRiNzIuMTRiODg2YWVlMjM1MjY2OAorICAgIDU0Y2JhNjVhNDhmZTY5N2UuYzYzODI5OTY1N2ExNjZlMy41MjNlN2ZjY2JlMTU0YjcyLjVjMDU0MjhjNTk4MjM2ZTIKICAgICA1NTU3NzE0ZjIyNzJkYWIyLmYxZTc4ODU0YTRmZDZhMGYuNWMwNTQyOGM1OTgyMzZlMi5iY2I0NDU4ZTJjODQ5NGNlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEwNTNjYjNlZjZlZGFkMTYuYjU4Nzc5NmVlOTM4ZGE1YworICAgIDI5Yzg2ODFkMGZiY2E0Y2UuNjgzN2E0MjNlZTFkNDgwOS4wYjhhMzNmMGI5ZmY1YzY0LjQxZWE4MzA3ZTQ5MDdlZWIKICAgICBhZGU4MDdiMjJjZTk4M2ZlLjg3NzQ3YTZjZDA4YzNjN2MuM2I5OWNmZTRmYTk5NzkyNS4wMGE3M2M4NWE2ZTYyMDZkCiAgICAgNTYzNzZkNzQwZjExYjVmZAogCi1WUEhBRERTV18xMjgocmVnKQorVk1PVk5URFFfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgOWRlNjEwNDBiYjlkN2E0OS5iYjg0Y2FmOTk0MDMzMzcwLmE5ZWEwNDljZTdkNjgyMTUuYzhmZTkwNTUzOTViNDk1MAogICAgIDMyMDAyMzU2NDUxN2FiZmQuMzA2ODJlZGU2NDE5NmY0ZC4yY2U1NDAxZmNlODc1NTgwLjhmODRmNDJkOTE1Mjg3MTIKQEAgLTM4NDI3LDEyICszODQyNywxMiBAQAogICAgIGI2YTQ4NzBjNjQwMjQwNGMuYmYzN2M1MzJhYTYyN2RmZi5jMTk5YmNjZjdlNTE5NTc5LjM2MjY5M2M2ZmYwYzQwMGEKICAgICBjZmRhYzU1ZjRjZTgzMzk4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmZmYxNTk0N2ZmZjEwMjAuNmQwNDI0MDc4M2IxODAwMAorICAgIDlkZTYxMDQwYmI5ZDdhNDkuYmI4NGNhZjk5NDAzMzM3MC5hOWVhMDQ5Y2U3ZDY4MjE1LmM4ZmU5MDU1Mzk1YjQ5NTAKICAgICAzMjAwMjM1NjQ1MTdhYmZkLjMwNjgyZWRlNjQxOTZmNGQuMmNlNTQwMWZjZTg3NTU4MC44Zjg0ZjQyZDkxNTI4NzEyCiAgICAgNzFkMWEyMjA0OTBhODRjNS5lODVmYWQ0ZGI3MzRmNGM0LjZiYjEyOTYyMjIyY2YzNjguNmFmODc2NTkxZjg5ZjA5NwogICAgIGI2YTQ4NzBjNjQwMjQwNGMuYmYzN2M1MzJhYTYyN2RmZi5jMTk5YmNjZjdlNTE5NTc5LjM2MjY5M2M2ZmYwYzQwMGEKICAgICBjZmRhYzU1ZjRjZTgzMzk4Ci1WUEhBRERTV18xMjgobWVtKQorVk1PVk5URFFfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMTFlMDhhMTAyMjI4ODQ2Yy41ZGM2ZDA4NDMxOGMxYzNlLjkxYmFmMjc5NThhZWM4MmEuOGNlYWYzZDQ3ZTgwN2E2MQogICAgIGQ4MDQ1ZGM0OWVkOGYwYjMuYzM4Mzc3ZjY0ZDMzNTM0OC4zYWI2YWUwZmRkMjU4ZjczLjI3ZjFjY2RiYzA0N2RjY2EKQEAgLTM4NDQwLDEzICszODQ0MCwxMyBAQAogICAgIDY0ZDUxZWViZjZiYTA4NDkuMzdmZWQ1NzVlMDA5YzY1NC44MTQ0YzdkNGRmYzE4MzA5LjNjNGI1MWE0NzNjYjBhZDAKICAgICA2ZTM4ZjUzZDFlYTA0ZGM2CiAgIGFmdGVyCi0gICAgMTFlMDhhMTAyMjI4ODQ2Yy41ZGM2ZDA4NDMxOGMxYzNlLjkxYmFmMjc5NThhZWM4MmEuOGNlYWYzZDQ3ZTgwN2E2MQogICAgIGQ4MDQ1ZGM0OWVkOGYwYjMuYzM4Mzc3ZjY0ZDMzNTM0OC4zYWI2YWUwZmRkMjU4ZjczLjI3ZjFjY2RiYzA0N2RjY2EKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODQzMzIwZDg4MGJlN2ZmZi5lOGM1ODAwMGY0Y2M5ZDExCisgICAgZDgwNDVkYzQ5ZWQ4ZjBiMy5jMzgzNzdmNjRkMzM1MzQ4LjNhYjZhZTBmZGQyNThmNzMuMjdmMWNjZGJjMDQ3ZGNjYQorICAgIGZmMTFiYTY5ZGIwNTMyOTkuNDIyNzdhY2Q1MzgzMjMxNi45NmY1NzdkZTU2ZDI4ZjAzLmVkZjg0MjUyZGQzMWY4NjAKICAgICA2NGQ1MWVlYmY2YmEwODQ5LjM3ZmVkNTc1ZTAwOWM2NTQuODE0NGM3ZDRkZmMxODMwOS4zYzRiNTFhNDczY2IwYWQwCiAgICAgNmUzOGY1M2QxZWEwNGRjNgogCi1WUEhBRERTV18xMjgocmVnKQorVk1PVk5URFFfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgZTEwYTJiODk3ODNjZmZlZC5lMjFhMDMzNDBhMDMyY2YwLmZlNTQ4MjVhOGY1MDc4YWQuZDY2ZTFjZGI5M2ZmMjhhZgogICAgIGVmMGNlZWY0MjAyYzU5ZjIuNTVhZGU3MzEzNGVkNWJiOS5mMzc0N2ZlOGZkZTU3N2NkLjczNDFmMmUxOGU5NzNhMjEKQEAgLTM4NDU0LDEyICszODQ1NCwxMiBAQAogICAgIDUwZDMwYmQ4YzQzNWZjNDUuOGFlZDlhZjgzN2QxYzg2My5kNjQ2NTZiMDg0MjY0NzE1LmYyMGUwZDk3Y2MwNjk0MWMKICAgICA4Y2EwNGIxZjQ1ZjU1NGZjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM5MzZjMmIzZjc1ODYzMjEuNzM1Yzc1YjI2NjIyYzhiOAorICAgIGUxMGEyYjg5NzgzY2ZmZWQuZTIxYTAzMzQwYTAzMmNmMC5mZTU0ODI1YThmNTA3OGFkLmQ2NmUxY2RiOTNmZjI4YWYKICAgICBlZjBjZWVmNDIwMmM1OWYyLjU1YWRlNzMxMzRlZDViYjkuZjM3NDdmZThmZGU1NzdjZC43MzQxZjJlMThlOTczYTIxCiAgICAgZjU4YjNhZWJiMGZiOWE4MS45OTVhNDVjZThmODM1MGQxLjcxYWJjNzhiYzU1MmZkNjEuMzM4N2MzZDFlZDk1NzU4YwogICAgIDUwZDMwYmQ4YzQzNWZjNDUuOGFlZDlhZjgzN2QxYzg2My5kNjQ2NTZiMDg0MjY0NzE1LmYyMGUwZDk3Y2MwNjk0MWMKICAgICA4Y2EwNGIxZjQ1ZjU1NGZjCi1WUEhBRERTV18xMjgobWVtKQorVk1PVk5URFFfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZGMwYWY5NTU3NzZlNzE1OS41YTMwNWQyOGY5NjdiY2VhLjAzMzE2MDk5NDllNDdmOWQuN2Q4ZjI4YzFkNWVhOTE5NAogICAgIGMwMTg5MzI1N2I3ZWE3NWYuNzBlZTJkNDhlYTFjMTYxZS5lMmY0MTU5ZmUxYzczMWE4LmMyZDIzYTJjNTQyYzE2OGIKQEAgLTM4NDY3LDEzICszODQ2NywxMyBAQAogICAgIGIwNGY3ZDQ0NmY5MDRjMTQuMzFiYzM0YTQ3MjQwODdkZC4zZTIyMzk4NzEwMmU3NWU3Ljk2N2IwYmJjNGY1OGM0OTAKICAgICBkYzc3YzJiYTAyNTk2NWY2CiAgIGFmdGVyCi0gICAgZGMwYWY5NTU3NzZlNzE1OS41YTMwNWQyOGY5NjdiY2VhLjAzMzE2MDk5NDllNDdmOWQuN2Q4ZjI4YzFkNWVhOTE5NAogICAgIGMwMTg5MzI1N2I3ZWE3NWYuNzBlZTJkNDhlYTFjMTYxZS5lMmY0MTU5ZmUxYzczMWE4LmMyZDIzYTJjNTQyYzE2OGIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjNjYTdmZmY3ZmZmODAwMC5mODkzMTM2ZmZjZmU2YWI3CisgICAgYzAxODkzMjU3YjdlYTc1Zi43MGVlMmQ0OGVhMWMxNjFlLmUyZjQxNTlmZTFjNzMxYTguYzJkMjNhMmM1NDJjMTY4YgorICAgIDEzOTU5NjdiNzAzMGIxMzkuZWY1OTc2YTMzNGUwNDU4YS4wMjAwMzRmNTFhODY5YWIzLjAxNWQ4NzViOWU3NzEzYTYKICAgICBiMDRmN2Q0NDZmOTA0YzE0LjMxYmMzNGE0NzI0MDg3ZGQuM2UyMjM5ODcxMDJlNzVlNy45NjdiMGJiYzRmNThjNDkwCiAgICAgZGM3N2MyYmEwMjU5NjVmNgogCi1WUEhBRERTV18xMjgocmVnKQorVk1PVk5URFFfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgMzE5ZWE4YzA1MzA5MzE4My43NTEwYzQ2YTk3YWIzNDFiLjkzNjQ2M2I5NDFjNzE2YzEuNzQyNmEwNDBlMGNhN2Y3MwogICAgIGYwM2NiYTNjZGZmMTY1ZTQuM2NhNmU3ZGIwMThjMjQ3Yi43MTllMDA0ZDNjMDEyZWUyLjdlZDhlNjBmYTY2NjczODEKQEAgLTM4NDgxLDEyICszODQ4MSwxMiBAQAogICAgIDFiMGQ0ZjQ0MTY5ZWY0ZDEuNDQ3Y2IyNGExMWQxMGZmNC4xMmYyNzFhMjI4YzBlZDhlLjgyNzVmYzk3ODFkMDBjZDUKICAgICAzNGY4YzQyOWNmYjYyOTczCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJlODAwZTY5YzBlMDdmZmYuNzFlYjZhZTM2NGU3MTllNworICAgIDMxOWVhOGMwNTMwOTMxODMuNzUxMGM0NmE5N2FiMzQxYi45MzY0NjNiOTQxYzcxNmMxLjc0MjZhMDQwZTBjYTdmNzMKICAgICBmMDNjYmEzY2RmZjE2NWU0LjNjYTZlN2RiMDE4YzI0N2IuNzE5ZTAwNGQzYzAxMmVlMi43ZWQ4ZTYwZmE2NjY3MzgxCiAgICAgNzQ5ZGYzOTk0MTlmM2RjNS5lM2RiNjI4MWNiNDBkOTVmLjI3YjQwNmNjMDA3YjBkZWUuM2EwMzg2ZGQ3ZDBmMGUzZQogICAgIDFiMGQ0ZjQ0MTY5ZWY0ZDEuNDQ3Y2IyNGExMWQxMGZmNC4xMmYyNzFhMjI4YzBlZDhlLjgyNzVmYzk3ODFkMDBjZDUKICAgICAzNGY4YzQyOWNmYjYyOTczCi1WUEhBRERTV18xMjgobWVtKQorVk1PVk5URFFfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMmE1OTViODA4MmNiMjE0My4zZmQ3Y2FhN2Y5N2JjN2I0LjNkNTQ1MjIxZWU0ZTgyNjYuOGNhNjNkM2I1MDVjMGE3MQogICAgIDQyNjQzYjg2YjcxZGFmNzMuM2U0OTYxMmY4N2MxZjIxYy5hODMxYmVmMjdmYzBlZGUwLmYyMWI2NjA0MTVkY2EyNDEKQEAgLTM4NDk0LDEzICszODQ5NCwxMyBAQAogICAgIDQzYThjYjUzMTVhNzdmOWMuMzk1MGNmNWYxMmI5M2YyNS40ODI2ZWIzMjJhYjg5ZTlmLmYyNzZjMWQyZTViNTJlNWEKICAgICA0NGY1ZWFhZjI3Mjc5YmZhCiAgIGFmdGVyCi0gICAgMmE1OTViODA4MmNiMjE0My4zZmQ3Y2FhN2Y5N2JjN2I0LjNkNTQ1MjIxZWU0ZTgyNjYuOGNhNjNkM2I1MDVjMGE3MQogICAgIDQyNjQzYjg2YjcxZGFmNzMuM2U0OTYxMmY4N2MxZjIxYy5hODMxYmVmMjdmYzBlZGUwLmYyMWI2NjA0MTVkY2EyNDEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2ZmZjgwMDBjOWUxNWFjZC44MDAwNmRhMDU4MWZiODFkCisgICAgNDI2NDNiODZiNzFkYWY3My4zZTQ5NjEyZjg3YzFmMjFjLmE4MzFiZWYyN2ZjMGVkZTAuZjIxYjY2MDQxNWRjYTI0MQorICAgIDU2ZTVlMjI5ODliODkwMmMuNzNhZDBlNDk1YmZjYjFiMy42M2RkNzJhOWRlMzUwZDhmLmEwOWNlOTY3MTNjYmVmYWEKICAgICA0M2E4Y2I1MzE1YTc3ZjljLjM5NTBjZjVmMTJiOTNmMjUuNDgyNmViMzIyYWI4OWU5Zi5mMjc2YzFkMmU1YjUyZTVhCiAgICAgNDRmNWVhYWYyNzI3OWJmYQogCi1WUE1BRERVQlNXXzEyOChyZWcpCitWTU9WSFBTXzEyOF9Mb2FkRm9ybShyZWcpCiAgIGJlZm9yZQogICAgIGYyNjU2MDZjNzZhYzcxMzkuZTY3OTczZjI3NmY2MzllZi5lZDdlYTBkZjQ3ODNkOTFmLjM0ZDZhNDc5N2Q1NjViM2IKICAgICA1ODEyMjA3NDZkZDFlZGMxLjE5MjM1NGYxYzliMTdhNTEuZWM4MzdiMzQ5N2U2YmI0ZC4wNGJhMTk2YmYzMTkwMThmCkBAIC0zODUwOCwxMiArMzg1MDgsMTIgQEAKICAgICBiYjUyNmExNGM2MjhjNjVkLmEzMzViNmJmYjI5ZDgxZWYuMzc0MTQzMGNmNmE5NDVmMy5iYjRkMjdmY2JhNDRmODEzCiAgICAgNWI5NWI5NzM0M2MzYzA5OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwMjFmZTI5NTUzMjcyLmI3MTRmNDdjYWVmYmUxOTMKKyAgICBmMjY1NjA2Yzc2YWM3MTM5LmU2Nzk3M2YyNzZmNjM5ZWYuZWQ3ZWEwZGY0NzgzZDkxZi4zNGQ2YTQ3OTdkNTY1YjNiCiAgICAgNTgxMjIwNzQ2ZGQxZWRjMS4xOTIzNTRmMWM5YjE3YTUxLmVjODM3YjM0OTdlNmJiNGQuMDRiYTE5NmJmMzE5MDE4ZgogICAgIGQxNDcyNDMyYTkyMTRiM2UuYjk3M2VjM2MyOWU1ZmVlZC45MGFiNWVjOTlkNmYyMDVhLjkyOWVjNmYyYTkxMDRjYzkKICAgICBiYjUyNmExNGM2MjhjNjVkLmEzMzViNmJmYjI5ZDgxZWYuMzc0MTQzMGNmNmE5NDVmMy5iYjRkMjdmY2JhNDRmODEzCiAgICAgNWI5NWI5NzM0M2MzYzA5OQotVlBNQUREVUJTV18xMjgobWVtKQorVk1PVkhQU18xMjhfTG9hZEZvcm0obWVtKQogICBiZWZvcmUKICAgICA0ZTQwZjc0NTYwOTg2MTg4LjcxN2RlZTg1NWU3MjljY2EuYjEzNTJlNjY4MWU2YmU4NS4zYjkyMjk2ODNkMjA2NmMzCiAgICAgNzExYjVkNWQyYmQwOTcwYy40ZjE1YWFmMjEwOGMwNzMxLmMwM2ZkMTFkYjJjYjcyZDguZjllYjA5NDkwZTYxYmY3NwpAQCAtMzg1MjMsMTEgKzM4NTIzLDExIEBACiAgIGFmdGVyCiAgICAgNGU0MGY3NDU2MDk4NjE4OC43MTdkZWU4NTVlNzI5Y2NhLmIxMzUyZTY2ODFlNmJlODUuM2I5MjI5NjgzZDIwNjZjMwogICAgIDcxMWI1ZDVkMmJkMDk3MGMuNGYxNWFhZjIxMDhjMDczMS5jMDNmZDExZGIyY2I3MmQ4LmY5ZWIwOTQ5MGU2MWJmNzcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDFjYjMxMWM5MzE0ODAwMC5kNDY5MWYxOTBmNzYyZmJmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNiOTIyOTY4M2QyMDY2YzMuZjllYjA5NDkwZTYxYmY3NwogICAgIGIyOTE5MjBmNDE5NmIxODEuZjJiY2JlNmIyYzVlOGU5YS41MWEwODU2Y2E3OWEyZTZjLjE0ZTBhYjRiYzE2ZTA3M2EKICAgICAyODE0NjU0M2RhNTM2ZmExCiAKLVZQTUFERFVCU1dfMTI4KHJlZykKK1ZNT1ZIUFNfMTI4X0xvYWRGb3JtKHJlZykKICAgYmVmb3JlCiAgICAgNjY4MDBhNzFlZDMxZmU5Yy44OWM0NTg4MWMzM2MwZGNhLjcwNjIwZTUwY2UyZTIyZjUuOGI4ZjhlZGNhNDljYWUwMwogICAgIDJhNmU5NzNmOTc5NGYxZDYuZmY1NjM3ZTk2NTc1ZWQ1OC44NmE2ODhlMWY5ZmQzY2ZhLjM2YjhiMTBiNzI2YTk1MGEKQEAgLTM4NTM1LDEyICszODUzNSwxMiBAQAogICAgIGI0MDQ1NTcwMWUxYmYzYjguMzhjYjJlNGI3N2NlMmRmMi5lOTMzZTZiMzU5YzlmMGIwLjRmZTgzNjViZjQ5Yjg2MTIKICAgICA3NTg3OTA1M2RlMTcwOTZjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE3MDZhYjk5N2ZmZjU3NmMuZjdiYzQ4ZTgxYjFjYzM5YQorICAgIDY2ODAwYTcxZWQzMWZlOWMuODljNDU4ODFjMzNjMGRjYS43MDYyMGU1MGNlMmUyMmY1LjhiOGY4ZWRjYTQ5Y2FlMDMKICAgICAyYTZlOTczZjk3OTRmMWQ2LmZmNTYzN2U5NjU3NWVkNTguODZhNjg4ZTFmOWZkM2NmYS4zNmI4YjEwYjcyNmE5NTBhCiAgICAgZDAyYjA2MWI3MzA5ODRmYi5mMDE1YWEzMzQyNGQwZjU3LjhmZDIyNjg5NDk1NzE3NTQuMmVlNzZiZTcyZTEwOWVhYQogICAgIGI0MDQ1NTcwMWUxYmYzYjguMzhjYjJlNGI3N2NlMmRmMi5lOTMzZTZiMzU5YzlmMGIwLjRmZTgzNjViZjQ5Yjg2MTIKICAgICA3NTg3OTA1M2RlMTcwOTZjCi1WUE1BRERVQlNXXzEyOChtZW0pCitWTU9WSFBTXzEyOF9Mb2FkRm9ybShtZW0pCiAgIGJlZm9yZQogICAgIDdjOGZmNWJiMGI4ZWUzZTQuMzI0MjdmYTkzMzU2NzliOS5iMzQ1M2QxZTFmMDYwNDU2LmVlMTVjM2NkYzVkZjAzYmEKICAgICA0MGNlZGY3Zjk0MGVjZmE4LmE2MzQ4MDM0NGY0NzUzYWEuM2Q0ZjU1OTY1NjAwNGZhZS5mY2M0Yjk0MjJhMjM4YzFkCkBAIC0zODU1MCwxMSArMzg1NTAsMTEgQEAKICAgYWZ0ZXIKICAgICA3YzhmZjViYjBiOGVlM2U0LjMyNDI3ZmE5MzM1Njc5YjkuYjM0NTNkMWUxZjA2MDQ1Ni5lZTE1YzNjZGM1ZGYwM2JhCiAgICAgNDBjZWRmN2Y5NDBlY2ZhOC5hNjM0ODAzNDRmNDc1M2FhLjNkNGY1NTk2NTYwMDRmYWUuZmNjNGI5NDIyYTIzOGMxZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMmYyMjVkNTBhNmEzYmIwLmZlNWNjNmM1ZjFjZmY5YjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWUxNWMzY2RjNWRmMDNiYS5mY2M0Yjk0MjJhMjM4YzFkCiAgICAgNmYxYzM2Y2IzMDU3ZDBiZS5lMDYwZjhlZDBhNzlmMzA5LmVkNDM4ZTJhZTM2YzM0ZWMuOWZiOGUxZWQ0ZTZhZWZhMAogICAgIGVjOTYwYmZiNDQ4NTQxMTgKIAotVlBNQUREVUJTV18xMjgocmVnKQorVk1PVkhQU18xMjhfTG9hZEZvcm0ocmVnKQogICBiZWZvcmUKICAgICBiMjcwM2UxNGEzZmZmODk5LjkxYzQ5YzJiN2EzODVkNjkuNWUzMzY3ZjRlMWQxMzBkMC5jY2M0YTYxYzcxZjU0NjJiCiAgICAgNGI5Mzc2YTUwNjY0NTFkMC5lMWQyNzc5ODkyNTJlYzBlLjQyZTg5ZGZiMmYxMGIxMzcuMmEwNWI3NjVmZjcxYmMwZApAQCAtMzg1NjIsMTIgKzM4NTYyLDEyIEBACiAgICAgNmFlNGU2ZGI0YjIxZDkwZi43NzRmODA0NTlhNWQwM2Y5LmFjMmI0ZmJkOWQ2YzZlOTMuZDJmN2IxYWE4ODZmYzc3MQogICAgIGQ1NDA5MjdkYmMwYWQ0NDkKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2FiMDJjNzBlNzMxYzUyMS5mYTU4MjQ5NDlmMTMzOWMxCisgICAgYjI3MDNlMTRhM2ZmZjg5OS45MWM0OWMyYjdhMzg1ZDY5LjVlMzM2N2Y0ZTFkMTMwZDAuY2NjNGE2MWM3MWY1NDYyYgogICAgIDRiOTM3NmE1MDY2NDUxZDAuZTFkMjc3OTg5MjUyZWMwZS40MmU4OWRmYjJmMTBiMTM3LjJhMDViNzY1ZmY3MWJjMGQKICAgICAxNDRiYWYxODBhNDE4OTY5LjNhMTE0NGZjOTNhZjNhZGEuZThjYzk3NmY4ZmJmYjJlOS5lM2QyM2NmMGE4ZWI1M2MxCiAgICAgNmFlNGU2ZGI0YjIxZDkwZi43NzRmODA0NTlhNWQwM2Y5LmFjMmI0ZmJkOWQ2YzZlOTMuZDJmN2IxYWE4ODZmYzc3MQogICAgIGQ1NDA5MjdkYmMwYWQ0NDkKLVZQTUFERFVCU1dfMTI4KG1lbSkKK1ZNT1ZIUFNfMTI4X0xvYWRGb3JtKG1lbSkKICAgYmVmb3JlCiAgICAgYzc3OTVjNTY1ZmM3MzU3Ni5hN2E5MTY1ODYzOTA4MDZmLjc2NTZhNjVlYzI2ODAyOTYuZWE1MGMzNGZmNmEyMjJlMQogICAgIDgzNmU4OTIxOGViM2E3MjQuMjhlODNiZmRmMTFiYjgzNC4xMmYzMzIzMzI3ZGFmNGRlLmZkODllZTkzMzZlZTBhN2UKQEAgLTM4NTc3LDExICszODU3NywxMSBAQAogICBhZnRlcgogICAgIGM3Nzk1YzU2NWZjNzM1NzYuYTdhOTE2NTg2MzkwODA2Zi43NjU2YTY1ZWMyNjgwMjk2LmVhNTBjMzRmZjZhMjIyZTEKICAgICA4MzZlODkyMThlYjNhNzI0LjI4ZTgzYmZkZjExYmI4MzQuMTJmMzMyMzMyN2RhZjRkZS5mZDg5ZWU5MzM2ZWUwYTdlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU5ZWUwMTI2NGYxZWE1ZmMuMTUxMmY0YTdhNjgwZjIxMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYTUwYzM0ZmY2YTIyMmUxLmZkODllZTkzMzZlZTBhN2UKICAgICBjZGJhMDIzZWZkNDRhZGIxLjY3ZmY1NTZjZDhiMmNkYTAuOTAxZjZkYzExYTI5YTExZS4xNzYyNWFkZWQ4ZjU2NTU3CiAgICAgZDQ5YjkyYmQ3M2M4NTBlYgogCi1WUEhTVUJXXzEyOChyZWcpCitWTU9WTlREUUFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZDgxNzcyZmQ2NGUxNWU3Zi4xM2FhNDQ2ODc3MDNiOWU5LmRjNzA0MjBlNmJkNzIzOWUuMmE0NTE0NTJlMDFkZDM2ZQogICAgIDdlMjJmNTBhNDhjYmNkYmUuOTM4NmRiMzRlYjIwYzY1MS4wNThhMTQ4N2UyNDdmYWIyLmQyMzIxMTRmNTRhOWU4MTgKQEAgLTM4NTg5LDEyICszODU4OSwxMiBAQAogICAgIDFmMTRkNTNjNTc0NGI5ZWYuYjUzMWY1NjIzN2E0ZDI2My5lM2U4NTdhZWVlMzkxZGNhLmI4OGNmZTNlYjNiYWFhMmMKICAgICBhZTkyZTYwN2Q2NTdjZmVlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg4YWFiNGY4N2VmNDBiNzAuMGVmZDE4NmIzZjFkOTM2ZgorICAgIGQ4MTc3MmZkNjRlMTVlN2YuMTNhYTQ0Njg3NzAzYjllOS5kYzcwNDIwZTZiZDcyMzllLjJhNDUxNDUyZTAxZGQzNmUKICAgICA3ZTIyZjUwYTQ4Y2JjZGJlLjkzODZkYjM0ZWIyMGM2NTEuMDU4YTE0ODdlMjQ3ZmFiMi5kMjMyMTE0ZjU0YTllODE4CiAgICAgMjEwODE4NTBiYTEzZDc1NC4yYjFhNDI4ZTc3YTc5MDE1LjNlOTljNzQzZGE4ZjhmODcuNjJiMGUxYTQ5MGQ5OWM0OQogICAgIDFmMTRkNTNjNTc0NGI5ZWYuYjUzMWY1NjIzN2E0ZDI2My5lM2U4NTdhZWVlMzkxZGNhLmI4OGNmZTNlYjNiYWFhMmMKICAgICBhZTkyZTYwN2Q2NTdjZmVlCi1WUEhTVUJXXzEyOChtZW0pCitWTU9WTlREUUFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjI4ZTE0ZWQxOGJkYzdiYi5kMjkzMmEzOGJhZWFhZTM5LjBmOTk3MDljNDYyNDQ5NjQuNTBjNWMxMzViYWQzZTEyNwogICAgIGVlNGMwNGRhOTJmNjRlYmUuOThkMjEyYjI4MDkyZjRkZS4xMzFjMzAyOGMwMzJiMTQ3LmUxN2EwMDQyZGJlOTE3NDkKQEAgLTM4NjA0LDExICszODYwNCwxMSBAQAogICBhZnRlcgogICAgIDIyOGUxNGVkMThiZGM3YmIuZDI5MzJhMzhiYWVhYWUzOS4wZjk5NzA5YzQ2MjQ0OTY0LjUwYzVjMTM1YmFkM2UxMjcKICAgICBlZTRjMDRkYTkyZjY0ZWJlLjk4ZDIxMmIyODA5MmY0ZGUuMTMxYzMwMjhjMDMyYjE0Ny5lMTdhMDA0MmRiZTkxNzQ5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYxMDMwMzQwNzA3MDI2NTQuMWQwY2YxMTUxZWM4M2I2MAotICAgIDAyM2QxYjdlYTQxN2Y3MTguYzliYThjY2NhMzE1NWRlYy44ZGE2NmJlNjY3Mjk0MjVlLmRmOWZlZGEzOGFiNmM4OGUKKyAgICBlZjk4MzJiYzYzMTExZjI0LmNiMWE4OTE0NDRjN2M1OGIuOWU4N2FmZjJjMmRiYzUzNi5mMjU0MTA0M2VkMDZmYmRkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBmOTk3MDljNDYyNDQ5NjQuNTBjNWMxMzViYWQzZTEyNwogICAgIDA0YTY5NGNkNTE4NWJiMDkKIAotVlBIU1VCV18xMjgocmVnKQorVk1PVk5URFFBXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGJkYjcwMDJmZGMwMDEwZmEuMDEwODNhMGM3MzE2OTJjNy5lY2ZkMTU0NTM4MDhmYWFjLmJhNDVlMGYxY2MyYmU0ZWEKICAgICA2NjFjMmMzNGM3YjIwMzBjLmM5YzUwYjUyZWMxOWFiNWQuOTEyZTIyZWJhMDJkZDY3OC4wMjMwODhmZDBkZWE2NzA3CkBAIC0zODYxNiwxMiArMzg2MTYsMTIgQEAKICAgICBmNzE2YmFkNzJmZWRiMTQ1LjI0NDViM2I2NDk1YzRhZWMuZDI4ZWI1NmU1NjNiM2RlMi41MzE5NjZjYzkwZDRmZWEyCiAgICAgMTVhZjkzNjcwYTE3OGI3OQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ODhmYjhlYmEwYzY0MjZjLjkxYmQzNjRiODZjZDU5MWQKKyAgICBiZGI3MDAyZmRjMDAxMGZhLjAxMDgzYTBjNzMxNjkyYzcuZWNmZDE1NDUzODA4ZmFhYy5iYTQ1ZTBmMWNjMmJlNGVhCiAgICAgNjYxYzJjMzRjN2IyMDMwYy5jOWM1MGI1MmVjMTlhYjVkLjkxMmUyMmViYTAyZGQ2NzguMDIzMDg4ZmQwZGVhNjcwNwogICAgIDVhMjMxNzQ4YWYyOGNmZWMuMzY0MDBhM2MyYTJkZmYwNS4xNTliYWUyYTc2MTAyZWZiLjQxMzJlMWY4NDQ3NDg2ZTAKICAgICBmNzE2YmFkNzJmZWRiMTQ1LjI0NDViM2I2NDk1YzRhZWMuZDI4ZWI1NmU1NjNiM2RlMi41MzE5NjZjYzkwZDRmZWEyCiAgICAgMTVhZjkzNjcwYTE3OGI3OQotVlBIU1VCV18xMjgobWVtKQorVk1PVk5URFFBXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDYxYzFlNGI0ZDE0OGU4OTAuOTg0MjEzNGVlNDhkZTVjNC43MGEwODNhZDY2YjU0ODNlLjI1NTQzNDIzZGQzYzQxZDkKICAgICAxNDFiZDU5ZmZlNzNkMzE0Ljk5ZjMxZDE3Njk5NGE2MTUuZjQxY2Y1MGI5ZDQxYjQyNi42YjM5MjZiNWE3OWY3NDhiCkBAIC0zODYzMSwxMSArMzg2MzEsMTEgQEAKICAgYWZ0ZXIKICAgICA2MWMxZTRiNGQxNDhlODkwLjk4NDIxMzRlZTQ4ZGU1YzQuNzBhMDgzYWQ2NmI1NDgzZS4yNTU0MzQyM2RkM2M0MWQ5CiAgICAgMTQxYmQ1OWZmZTczZDMxNC45OWYzMWQxNzY5OTRhNjE1LmY0MWNmNTBiOWQ0MWI0MjYuNmIzOTI2YjVhNzlmNzQ4YgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMzBkZTE4OTBlY2Y2NDlkLjAwZWYxNmU1YmI3Y2NjZWMKLSAgICAxZmQ2ODlmZjAwZTgzZDExLjJhMTMzNDUzNTUwOWMyZGEuMTdhYWFmYjBjNjI3Yzk2OS4zYjhmNTMyMTcxYjg1OWQzCisgICAgMGE4OGUzMTRhZmE1MDYzMC41NTc0ZDQ5ZjViOGYzMWUzLjhkODY4NWJlMDkwZTRiZDAuZmU4OTg3OTA0ZWVmMTNhNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MGEwODNhZDY2YjU0ODNlLjI1NTQzNDIzZGQzYzQxZDkKICAgICA3ZTk4ODZkMmFhODY4M2MwCiAKLVZQSFNVQldfMTI4KHJlZykKK1ZNT1ZOVERRQV8xMjgocmVnKQogICBiZWZvcmUKICAgICAyM2YxMWQxMTk1ZTZjZDE4LjJmY2Y0MzRkMGM0YjM2ZTMuNzMxYTM5OWRmMzhmOTRhOC42ZTU0ZjBjZmYxOTllYTFkCiAgICAgODZlNDEzNDljZjYzNzM4OC4xNjQxOGVlOGYwZDdhYmQxLjhiZDZlMGViZDJhY2U1ZjcuNmU1MGMzMDZhNTZmNjkxOApAQCAtMzg2NDMsMTIgKzM4NjQzLDEyIEBACiAgICAgZjZjYjBjNTQ5ZWU1YzE2MC5kOWJiYzNiOWFkYTBmYmIzLjljOWQwMTQwYzJkY2VlYzkuZDk2ZDBmNmMxYTc4NzM5MAogICAgIGZiMjc4MDczMTNjMzc3NjYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTQxNTYwODdiMGQ3MDNkMC41NTE1MTM0YjU0YjZjM2E5CisgICAgMjNmMTFkMTE5NWU2Y2QxOC4yZmNmNDM0ZDBjNGIzNmUzLjczMWEzOTlkZjM4Zjk0YTguNmU1NGYwY2ZmMTk5ZWExZAogICAgIDg2ZTQxMzQ5Y2Y2MzczODguMTY0MThlZThmMGQ3YWJkMS44YmQ2ZTBlYmQyYWNlNWY3LjZlNTBjMzA2YTU2ZjY5MTgKICAgICAwM2JlNjRlNmYzODliMGJjLmIwZjZlNGJkYzc5YTU4MDguZDA5MzI0YTg4ZWVjZWY3My5mMzZhYTQ0MWZmYjUwMzg1CiAgICAgZjZjYjBjNTQ5ZWU1YzE2MC5kOWJiYzNiOWFkYTBmYmIzLjljOWQwMTQwYzJkY2VlYzkuZDk2ZDBmNmMxYTc4NzM5MAogICAgIGZiMjc4MDczMTNjMzc3NjYKLVZQSFNVQldfMTI4KG1lbSkKK1ZNT1ZOVERRQV8xMjgobWVtKQogICBiZWZvcmUKICAgICAzNzYyNzQ0MjA1YTJjOTMzLmJiNTYwN2ZmNmIwMmUyMWYuNmM1YmE2YzdiZmYzNGVmZi40ZDQwNzMxZjBhMDcyMGE1CiAgICAgNjhlYjY2YzUwZDIyMjYyMi5hZWFkNTI1M2Y3NmM0ZWE1LjQ3YTQwOWQyMTlhMTBlMTguM2RjNzc3YjEwM2Y5YmZiMgpAQCAtMzg2NTgsMTEgKzM4NjU4LDExIEBACiAgIGFmdGVyCiAgICAgMzc2Mjc0NDIwNWEyYzkzMy5iYjU2MDdmZjZiMDJlMjFmLjZjNWJhNmM3YmZmMzRlZmYuNGQ0MDczMWYwYTA3MjBhNQogICAgIDY4ZWI2NmM1MGQyMjI2MjIuYWVhZDUyNTNmNzZjNGVhNS40N2E0MDlkMjE5YTEwZTE4LjNkYzc3N2IxMDNmOWJmYjIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2E2YzhmMGMyNWRmMTY5ZS5jMjJlZjQ3NzM5ZWFiYmI5Ci0gICAgMTkxNzM0OThjZDMyZWYxOS44ZWVhYzVhNmI5NTlmYmI5LjQyNWQ0MTk0MTIzY2M0NWUuNGViNTIyOWU3NzYzMzYxMQorICAgIDZhOGVkMmU5NDY0ZTQ5NjAuMmIxYWU4YmNkZGIwNDM5Zi40NTYxNjljOGQ2YjZmNzI5LmNhODAwODYyNDkzZTA4OWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmM1YmE2YzdiZmYzNGVmZi40ZDQwNzMxZjBhMDcyMGE1CiAgICAgMjZiM2MxZDIyOWY0ODdiYwogCi1WUEhTVUJEXzEyOChyZWcpCitWTUFTS01PVkRRVV8xMjgocmVnKQogICBiZWZvcmUKICAgICBhZmM2ZTI2OGZjN2IzNTQ3LjUwNTEwOWMwYmRkYmQ0NzguMzM2OWU1N2UyOWY0YjI5ZS4xYTY1MGMyMmVhNDEzMmU1CiAgICAgNDMzYTdmY2U4Yjg2N2Q2MC5lZDBhY2M0YjMyNTRiNGFhLjc2ZTM0NWFlYzYwY2E2ZmIuYTg0NTQ5NWU3OWQxZmRlOApAQCAtMzg2NzAsMTIgKzM4NjcwLDEyIEBACiAgICAgMDA3NDIyYjY0ZjU2YzllYy5jNTI0MGMzZjFlZTc1NDM1LjQ1ZjdiMmNhZmRlMzMwY2MuNWJiZDAyOTEyZWJlOTkxMwogICAgIDM2ZWM3NjVmOGMzNWUyOTQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2I4ODMwZDgxMjJkNzA1Zi40ZjI5NjE0ZGQxOGNiNDhhCisgICAgYWZjNmUyNjhmYzdiMzU0Ny41MDUxMDljMGJkZGJkNDc4LjMzNjllNTdlMjlmNGIyOWUuMWE2NTBjMjJlYTQxMzJlNQogICAgIDQzM2E3ZmNlOGI4NjdkNjAuZWQwYWNjNGIzMjU0YjRhYS43NmUzNDVhZWM2MGNhNmZiLmE4NDU0OTVlNzlkMWZkZTgKICAgICAzZjVhOTY2ZTczYTE5YWIzLmNiMGNmODI3NDlhOTRiZGEuYjJhNGUwYTQyZTJkMTE3Yy5jYWM5NzEzNGRjZjZlMTkzCiAgICAgMDA3NDIyYjY0ZjU2YzllYy5jNTI0MGMzZjFlZTc1NDM1LjQ1ZjdiMmNhZmRlMzMwY2MuNWJiZDAyOTEyZWJlOTkxMwogICAgIDM2ZWM3NjVmOGMzNWUyOTQKLVZQSFNVQkRfMTI4KG1lbSkKK1ZNQVNLTU9WRFFVXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDM5MjM0YjhiMTE2Njc4NDEuZTBkMjIwMTFiYzMzNDZiNi5iOTFlODE3ZmNjMTk4Y2U2LjhhMjliNzhlY2ViYjNlOTgKICAgICAzZTJmZmQwMmRhNWQxNjQ3LjNjYzE4YWViNTVjNDRkYmQuODFjNmQ1ZDM2ZjRjYWUxYi5kZDg3ZWI1YjNkNDA3ODhiCkBAIC0zODY4MywxMyArMzg2ODMsMTMgQEAKICAgICBjMmYxZTQ3ZGE1Y2U1ZDBkLmQ4ODI5N2NjN2QyZmU3MzUuMDI0ZjA3NjcwNmUxYTNiYi4xY2YyZDJjMDY3ODM2MDk5CiAgICAgYzE5NzdjMzA1YTU4ODUwYgogICBhZnRlcgotICAgIDM5MjM0YjhiMTE2Njc4NDEuZTBkMjIwMTFiYzMzNDZiNi5iOTFlODE3ZmNjMTk4Y2U2LjhhMjliNzhlY2ViYjNlOTgKKyAgICAzOTIzNGI4YjExNjY3ODQxLmUwZDIyMDExYmMzMzQ2YjYuMDI0ZjA3NjdjYzE5YTNlNi4xY2YyZDI4ZWNlYmIzZTk5CiAgICAgM2UyZmZkMDJkYTVkMTY0Ny4zY2MxOGFlYjU1YzQ0ZGJkLjgxYzZkNWQzNmY0Y2FlMWIuZGQ4N2ViNWIzZDQwNzg4YgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMmZiMGI2NzQ0OTE4NzBhLmVkODVkODQ4NWZiODhkMzAKKyAgICAyM2RhMDZhZjAyMjY3OWQyLjcwOGQ1ZWIwYjY5NDE5YWYuZmJlNzgzMjcyNDhhNzdmZC45OTViNGI5ZGU3ZmYxYTUyCiAgICAgYzJmMWU0N2RhNWNlNWQwZC5kODgyOTdjYzdkMmZlNzM1LjAyNGYwNzY3MDZlMWEzYmIuMWNmMmQyYzA2NzgzNjA5OQogICAgIGMxOTc3YzMwNWE1ODg1MGIKIAotVlBIU1VCRF8xMjgocmVnKQorVk1BU0tNT1ZEUVVfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZTM5ODQ1NWE1YjBiYzc1NC5mOTNmMTI1YWUwNjA3ZTI1LmQwZWMzMWFiNDMyMWYzZmUuNzFjOGRkN2YzMjVkZWU3ZQogICAgIGUwM2YyYWE4MDcyNzVmMjIuYTI5MjBjMzFjZmU4OTc0NS5iNDE2MjliOWE2Zjc3OGI0LjI1MWY4MTVjYzMwOTE0NzUKQEAgLTM4Njk3LDEyICszODY5NywxMiBAQAogICAgIGQ3YjMzNTY0Y2VjYTg4ZjcuYmU3MzU1N2QzNjBjYTQ0Zi5iMGRlMWYxM2IyN2NlMDk5LmNkOTcyNTExODYyMWRmYWEKICAgICA3OTUwMWNjMWYwYTZmYzQwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYxZWYzYWEwZGJkMTVmZTIuZjJlMTRlZmI5ZGU5OTMxOQorICAgIGUzOTg0NTVhNWIwYmM3NTQuZjkzZjEyNWFlMDYwN2UyNS5kMGVjMzFhYjQzMjFmM2ZlLjcxYzhkZDdmMzI1ZGVlN2UKICAgICBlMDNmMmFhODA3Mjc1ZjIyLmEyOTIwYzMxY2ZlODk3NDUuYjQxNjI5YjlhNmY3NzhiNC4yNTFmODE1Y2MzMDkxNDc1CiAgICAgMTJkYTI2ODdmOTM4OGMxZi45YmI0NGVlZThkNzM2NTlhLmUwNGQ3OTYzNDIzY2I0MDMuZmIyMDcwZThkNmYxZDBjYQogICAgIGQ3YjMzNTY0Y2VjYTg4ZjcuYmU3MzU1N2QzNjBjYTQ0Zi5iMGRlMWYxM2IyN2NlMDk5LmNkOTcyNTExODYyMWRmYWEKICAgICA3OTUwMWNjMWYwYTZmYzQwCi1WUEhTVUJEXzEyOChtZW0pCitWTUFTS01PVkRRVV8xMjgobWVtKQogICBiZWZvcmUKICAgICBkOTE3ZDJlNjJmOGJlNGI5Ljg5MTc1M2E5MjE2YTkwNTcuZTg5OTliY2JlN2MwMGY5MS44MDEzMTYzNzkyNDQzYjFmCiAgICAgY2FiN2MxNmI2MGRkNTM0MC44NTUyN2NjNDhmYTRlMGViLmY2ZjM5ZWMyYmM5YTYzOGMuYWMzOTVhMzk3ZjFmZmY0NApAQCAtMzg3MTAsMTMgKzM4NzEwLDEzIEBACiAgICAgZDBiNTNmNDUwNmY1YjYyYi5jYzdjZTEyOTI5MTI0NzVkLjI5NzJjOTVmM2ZmMGI2NWIuODg4N2JiOGNlZTNmYjUxNQogICAgIGYwNDdjZmI0YTg5ZDFmMWEKICAgYWZ0ZXIKLSAgICBkOTE3ZDJlNjJmOGJlNGI5Ljg5MTc1M2E5MjE2YTkwNTcuZTg5OTliY2JlN2MwMGY5MS44MDEzMTYzNzkyNDQzYjFmCisgICAgZDkxN2QyZTYyZjhiZTRiOS44OTE3NTNhOTIxNmE5MDU3LjI5NzJjOTVmM2ZmMDBmNWIuODgxMzE2Mzc5MjQ0YjUxZgogICAgIGNhYjdjMTZiNjBkZDUzNDAuODU1MjdjYzQ4ZmE0ZTBlYi5mNmYzOWVjMmJjOWE2MzhjLmFjMzk1YTM5N2YxZmZmNDQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmYyNjczYzYxMjMxMjRlOC5jNWE2YzRjYWQyZTZhNTBiCisgICAgMjhmZDY3M2M5ZWE3MDUwMi4yOGFmYWQyMGIzMDJiMzVlLmMyNGRkYTRmY2ZhNjVjNmIuOTA5YmU4ODcxNDlhNmFiMgogICAgIGQwYjUzZjQ1MDZmNWI2MmIuY2M3Y2UxMjkyOTEyNDc1ZC4yOTcyYzk1ZjNmZjBiNjViLjg4ODdiYjhjZWUzZmI1MTUKICAgICBmMDQ3Y2ZiNGE4OWQxZjFhCiAKLVZQSFNVQkRfMTI4KHJlZykKK1ZNQVNLTU9WRFFVXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDI0MjkyMDZiZGYzZGUyNmQuOWNhYmM1NzJiM2QzMjFlNi5jZjAzMTQ0YjhmNjBkNjkzLjA3MzBlOWRjMjY4NTJjODcKICAgICA3Zjc3YWExZDJlYWQzYmJhLjY5YWI3NmFmYzE0ZTAzNjAuOGI5MTQyZjI3ZTc2OWNhZC4zOTUxYjRiNGEwNzA3YjFjCkBAIC0zODcyNCwxMiArMzg3MjQsMTIgQEAKICAgICAxZjg5NWIyMzg2MmI5ZWVmLjc2Zjg0NTBhNzM0OTFiM2YuYTFmMjgwN2Y2YzMwYzEzYy4wNGVmNDEyMmJmN2E5MzMwCiAgICAgNTYwNGY5OTA5Y2IwZDUwNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zNzcwNmRjZDMxMWJiNjc0LmYyZTU1OWJiNjcxZWM2NjgKKyAgICAyNDI5MjA2YmRmM2RlMjZkLjljYWJjNTcyYjNkMzIxZTYuY2YwMzE0NGI4ZjYwZDY5My4wNzMwZTlkYzI2ODUyYzg3CiAgICAgN2Y3N2FhMWQyZWFkM2JiYS42OWFiNzZhZmMxNGUwMzYwLjhiOTE0MmYyN2U3NjljYWQuMzk1MWI0YjRhMDcwN2IxYwogICAgIDVmN2U2YTM2MzI3ODY2YWIuMTM4MWNjZTk0ZDcxMTdjNC41ZDcyNjg4YTk0ZTJkNjU3Ljk5YTJhOGQyY2FiZTVmNDYKICAgICAxZjg5NWIyMzg2MmI5ZWVmLjc2Zjg0NTBhNzM0OTFiM2YuYTFmMjgwN2Y2YzMwYzEzYy4wNGVmNDEyMmJmN2E5MzMwCiAgICAgNTYwNGY5OTA5Y2IwZDUwNwotVlBIU1VCRF8xMjgobWVtKQorVk1BU0tNT1ZEUVVfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNmJhZDRlMDg3YzZkZGZmNi4xYmU2Nzk0ZWM3NTEyMDMwLjZlZGQ1YzAwNGRlMWM5ZmQuYjQ1ZDg4M2VhM2VhOTYwOQogICAgIDFmYjViYjc2N2JiYzZkMmEuYWVkZmMwMjU5MDc2MjgxYi5kN2ZjOGViNWZhNDVkZTI5LmYwZmU3YjMxZDU5ZTk0NmEKQEAgLTM4NzM3LDEzICszODczNywxMyBAQAogICAgIGQ0MTZjZWU1NDk0MDA5MTAuMGRkOWJhODMyY2VlYjk5ZC42YzE4MmYxMTM3YTMyYjdkLjU2MTYxMzY3OTcyM2Y2OTUKICAgICAzODI0YjA4MjYwMGJkMmI4CiAgIGFmdGVyCi0gICAgNmJhZDRlMDg3YzZkZGZmNi4xYmU2Nzk0ZWM3NTEyMDMwLjZlZGQ1YzAwNGRlMWM5ZmQuYjQ1ZDg4M2VhM2VhOTYwOQorICAgIDZiYWQ0ZTA4N2M2ZGRmZjYuMWJlNjc5NGVjNzUxMjAzMC42YzE4MmYxMTM3ZTEyYmZkLjU2MTY4ODNlOTcyM2Y2MDkKICAgICAxZmI1YmI3NjdiYmM2ZDJhLmFlZGZjMDI1OTA3NjI4MWIuZDdmYzhlYjVmYTQ1ZGUyOS5mMGZlN2IzMWQ1OWU5NDZhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRmMDQ2ZGZkZWY4ZDBkY2IuMjI0OTRmNzRlNGEwMTkzOQorICAgIDRlZWFiY2M2YjZhOTNkY2YuMzZjMjJjMTI3ZTI2ZjI1Yi44ZDIxNTUxNzk0ODIxNWYwLmIyMjM1NmM2OWRkOGY1MGEKICAgICBkNDE2Y2VlNTQ5NDAwOTEwLjBkZDliYTgzMmNlZWI5OWQuNmMxODJmMTEzN2EzMmI3ZC41NjE2MTM2Nzk3MjNmNjk1CiAgICAgMzgyNGIwODI2MDBiZDJiOAogCi1WUEhTVUJTV18xMjgocmVnKQorVk1PVk1TS1BEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGI0OTkyODgyOTMxY2M3MWYuOGQwNjZiYmQ0ZjhlOGQxYS45MTcxNjVlMzM2NTliYThkLjUwYWQ5NzhmMDBiNGRjZmQKICAgICAyNmMxNzdkM2NkZTMwZjc2LjU1ODYxMTNjZTQ5Zjg3MTguMWRkNjI5OWUzOWY0MzFkNi4xNWFiMDk3ZDBhYzJlNDljCkBAIC0zODc1MSwxMiArMzg3NTEsMTIgQEAKICAgICA1YzU5OGMxOGM0YzA4YWExLjgxNjY2NWRiMmUzNmM4YTMuYmIzNmVkZDU5OWU3NmYyNS5iMjE2ZmM1OTUzMDJlN2U1CiAgICAgNDIxYTc1MWZjYTRjNWJlNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mNmNkN2ZmZjZhZTc4YmFkLjBiYzhmN2UyZjNkMmQ5ZGEKKyAgICBiNDk5Mjg4MjkzMWNjNzFmLjhkMDY2YmJkNGY4ZThkMWEuOTE3MTY1ZTMzNjU5YmE4ZC41MGFkOTc4ZjAwYjRkY2ZkCiAgICAgMjZjMTc3ZDNjZGUzMGY3Ni41NTg2MTEzY2U0OWY4NzE4LjFkZDYyOTllMzlmNDMxZDYuMTVhYjA5N2QwYWMyZTQ5YwogICAgIGVhZTc5YWUxYTllYmU3NjcuMDg2MjNiNGMyNTdkYjEzNy4wYzUzMDMyMGQxNGE1OTI0Ljk3ZTAwMmM3NzJkOGZlODUKICAgICA1YzU5OGMxOGM0YzA4YWExLjgxNjY2NWRiMmUzNmM4YTMuYmIzNmVkZDU5OWU3NmYyNS5iMjE2ZmM1OTUzMDJlN2U1Ci0gICAgNDIxYTc1MWZjYTRjNWJlNwotVlBIU1VCU1dfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAzCitWTU9WTVNLUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjJiOGU4MDZmMmM0MTZiOC5kODYxNDllNGI5ZWYzNWNlLjllNWQwY2Q0MWFkNjg4ODcuODdjOWU1MjkyZDU4YWY4MgogICAgIDMwYmNkMmY4ZTc3M2QzODQuYmE0Y2NkYjIyNDAzMjQ5Yi4zYTE0YWEyMzA1NjdhYzEwLmNhNWFlNjg4MmEyODU1ZWEKQEAgLTM4NzY2LDExICszODc2NiwxMSBAQAogICBhZnRlcgogICAgIDIyYjhlODA2ZjJjNDE2YjguZDg2MTQ5ZTRiOWVmMzVjZS45ZTVkMGNkNDFhZDY4ODg3Ljg3YzllNTI5MmQ1OGFmODIKICAgICAzMGJjZDJmOGU3NzNkMzg0LmJhNGNjZGIyMjQwMzI0OWIuM2ExNGFhMjMwNTY3YWMxMC5jYTVhZTY4ODJhMjg1NWVhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZlNzc4MDAwNWQ2MDgyMmEuODAwMGE2YTkxYzJlMmJjMgorICAgIDQ3ZjFhZGUzYzY2NzRmNzYuNWU2NjE0ZWNhMjg5OTNiMy4zMTU4YmRiNDBjZjdmMTY5LmUyMzNlYzVlMmJlMzljMDcKICAgICA0MzI1ZjdiMWFiYWI0NmJhLjFmZmIxYjAwY2YwY2JkYzMuNWVmM2MxNzM0YTkyMTNiZi4yOWExZjQxOGNkMTZjMTg2CiAgICAgZmNlZmY4MjBhYjRjMDAxMgogCi1WUEhTVUJTV18xMjgocmVnKQorVk1PVk1TS1BEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGI4NmJmNmU0NjIxMTk0NTguZmYyMjJiNTBiMTRiNzM3ZS41YjU3ZGM1ODQ2MThlMDc3LjlmYjEzMDRjZGM0MmNlM2QKICAgICBiNzVmZTljZjhkZjJiYTAzLjU5YjVjNWFiZjQ1NDkzZWMuNmRjNTU1NjJhMzM5MzU3YS5jZjYwODcyYmRkMTZkZDExCkBAIC0zODc3OCwxMiArMzg3NzgsMTIgQEAKICAgICBmMWUzOWZjYWIxMzVhYzNiLjUzY2QxYzQ1YTRjZTljNzcuODIwYjVkMzg4MmVjNmMxZi42YmJkZGZhYzllNTNlYTY1CiAgICAgOGYwM2Q3MjY5NmQ1NWYzZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMGY2Nzc3ZDdhMzI5MzRkLmU3OWQ3ZmZmYjdjYmZmZmIKKyAgICBiODZiZjZlNDYyMTE5NDU4LmZmMjIyYjUwYjE0YjczN2UuNWI1N2RjNTg0NjE4ZTA3Ny45ZmIxMzA0Y2RjNDJjZTNkCiAgICAgYjc1ZmU5Y2Y4ZGYyYmEwMy41OWI1YzVhYmY0NTQ5M2VjLjZkYzU1NTYyYTMzOTM1N2EuY2Y2MDg3MmJkZDE2ZGQxMQogICAgIDU2MTljZTRkYzk3YWFlYzAuMmJhYTQxYWU5MWQxNjIzMC5iMTkzODI4OTgzZmNmYjc5LmM5Y2I0M2ZkNmExN2ZkNjQKICAgICBmMWUzOWZjYWIxMzVhYzNiLjUzY2QxYzQ1YTRjZTljNzcuODIwYjVkMzg4MmVjNmMxZi42YmJkZGZhYzllNTNlYTY1Ci0gICAgOGYwM2Q3MjY5NmQ1NWYzZQotVlBIU1VCU1dfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAyCitWTU9WTVNLUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMTM2OWE4NTU2ZGE5MTkxYi5lNDBhNWFiMmUyYjBlZjFmLmFjZTlkMTVjNDg1OGZjZWQuM2U3YWU0ZGQzYjk2YzUxOQogICAgIGQxYmJjZDI3M2ZkY2Q0MjkuOGNkYWZhNzFmNzc2YjQxOS4xMWNjZGNkZjk5N2EzZmJkLjQwMmMxMmUzNGE4NTQyMTMKQEAgLTM4NzkzLDExICszODc5MywxMSBAQAogICBhZnRlcgogICAgIDEzNjlhODU1NmRhOTE5MWIuZTQwYTVhYjJlMmIwZWYxZi5hY2U5ZDE1YzQ4NThmY2VkLjNlN2FlNGRkM2I5NmM1MTkKICAgICBkMWJiY2QyNzNmZGNkNDI5LjhjZGFmYTcxZjc3NmI0MTkuMTFjY2RjZGY5OTdhM2ZiZC40MDJjMTJlMzRhODU0MjEzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI0NzNiNDk1YTY2Mzg5ODMuY2IxMzdmZmZkMmI3Zjc4ZQorICAgIGE3YzVjMTg3MmE3OTRjOTQuNDM5ZTdiNzM4ZDEzMzdkNC42MDQwYjliYWI0NDAyMTE0LmUzNmRlM2I3NGM0NTFlYjgKICAgICA2ZjUzMDM2MTQ3OGQzYzg3LjY2YTRkYTI0M2YxNGI0ZmQuNzMxMmU1ZGFiNGI3NWQxZS44NTg4NTNjM2RjNjM5NmI0CiAgICAgODBjYjVmNzQ5NzZhZTZiNQogCi1WUEhTVUJTV18xMjgocmVnKQorVk1PVk1TS1BEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDMyODAwMTM3MThlNjRhNjQuMDczMDBjYTFiNDIyNjEyZi41MTM2MTFmMWE5MDQ2NjQwLjI3MGVkYTI5YjZlYWIwMDYKICAgICBmNWY0Mzc3NmZjNjNmZDcwLjQ5Mjk1OTMzOGM0Njc3YjcuNjBhMTFlNDQ2ODcwOGE0OC41OTAwMTY5NWQ1ZTZkNmY4CkBAIC0zODgwNSwxMiArMzg4MDUsMTIgQEAKICAgICAyMjQ5NGQxZDViOTM0MzRhLjNmOWZiMWZkZjA2YTY0MWEuNWEzMmE4MzA1M2U5MTc1OS5hMmY2NTE3MGRjNjY4YWFkCiAgICAgNzM5MTQ4YjhmYzAyOTBjOAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZDVhNDNlMDMxNTU4MDAwLmJkYTM4MDAwYmQ5NTAxMTIKKyAgICAzMjgwMDEzNzE4ZTY0YTY0LjA3MzAwY2ExYjQyMjYxMmYuNTEzNjExZjFhOTA0NjY0MC4yNzBlZGEyOWI2ZWFiMDA2CiAgICAgZjVmNDM3NzZmYzYzZmQ3MC40OTI5NTkzMzhjNDY3N2I3LjYwYTExZTQ0Njg3MDhhNDguNTkwMDE2OTVkNWU2ZDZmOAogICAgIDI3NzNmYzlmZGU2ZTNjODMuMTIwYTY3MDNlYzA1Mzk0Yy5lZjMxZmM4YjE3ZTI1YmMyLmUzYjQxNTA5MmViNjhiMjIKICAgICAyMjQ5NGQxZDViOTM0MzRhLjNmOWZiMWZkZjA2YTY0MWEuNWEzMmE4MzA1M2U5MTc1OS5hMmY2NTE3MGRjNjY4YWFkCi0gICAgNzM5MTQ4YjhmYzAyOTBjOAotVlBIU1VCU1dfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWTU9WTVNLUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzA1Mjc0Y2NhOTk3NTk5ZC40NGMxMjQ1YjBlNWM0ZDcwLmFhYjRiMzBlYjM4MWI0NGMuZmNmMDFjYTFiODBlZjhiYQogICAgIGI2MDU1Mzk4ZmYzMGEwNTkuZTcyOTdmYzc5MzU3OTdhMi4zMDE1ZWEyMDUxNTZlNTBmLjMzYjc1NjQ5ZTFkZjNiOTEKQEAgLTM4ODIwLDExICszODgyMCwxMSBAQAogICBhZnRlcgogICAgIDMwNTI3NGNjYTk5NzU5OWQuNDRjMTI0NWIwZTVjNGQ3MC5hYWI0YjMwZWIzODFiNDRjLmZjZjAxY2ExYjgwZWY4YmEKICAgICBiNjA1NTM5OGZmMzBhMDU5LmU3Mjk3ZmM3OTM1Nzk3YTIuMzAxNWVhMjA1MTU2ZTUwZi4zM2I3NTY0OWUxZGYzYjkxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA4NWEwMGNiMWZiMTQwYWMuYmEwYjkzYjkyMjkyNTliMgorICAgIGUxNzY2MTA4MWJkYTIyMjcuNjhjYjU5Y2M4NzEwNWQ4Yi5hZDhkZDAyMWU3ZjZiMjhmLjVhZDI1MTk0NmFlNzFiODkKICAgICA4ZTcxMTgwOTE5YTA5YjM0LjI0ZjRhZmQ2ODYxMWRiZDguZmVlYWUzZmM5MDZkZDhmNy5jZDhlMDllZWYwYjJkNTRmCiAgICAgZTgzNzdhYzMwZWNkYTU4ZQogCi1WUEFCU0JfMTI4KHJlZykKK1ZNT1ZNU0tQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICAwNzE5YTE3ZjYxYzRjN2YzLjk3YzJmNjg1MTQ4ZWM3YWIuNzVmMTdiNTEyYmU4NGMzNS5mZGY2OWU5YzY5YzUxMzczCiAgICAgODU4MDc5OGY4NDIxNzYyOS5kOTM0NzY2OTI4YjE2MWI5LmI4MGJiYmFhMTIyMWVkNGQuODc3ZTdlZWY4ZDBjMWUzMApAQCAtMzg4MzIsMTIgKzM4ODMyLDEyIEBACiAgICAgMTMwYzJjNTZhYzQyNmViYi43OGFlNGMxYTBkYzNkMjQ5Ljg0Y2U4NGEyMTllNWFlNjAuYWMzMTk5NWIyODk1OTgxZAogICAgIGZmZjVjZDRkZDZlZjdkYTQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDk2ZjZhNGIyODQ2MDYzMy43ODRlMDMyMDE5NGQ0OTVhCisgICAgMDcxOWExN2Y2MWM0YzdmMy45N2MyZjY4NTE0OGVjN2FiLjc1ZjE3YjUxMmJlODRjMzUuZmRmNjllOWM2OWM1MTM3MwogICAgIDg1ODA3OThmODQyMTc2MjkuZDkzNDc2NjkyOGIxNjFiOS5iODBiYmJhYTEyMjFlZDRkLjg3N2U3ZWVmOGQwYzFlMzAKICAgICBjMGI4ZmU1ZDEzNzJmMGRlLjMwOTQxNGEyNzIxMzI2OGEuNDk5MTZhNGJkODQ2ZmFjZC43ODRlZmRlMDE5NGRiNzVhCiAgICAgMTMwYzJjNTZhYzQyNmViYi43OGFlNGMxYTBkYzNkMjQ5Ljg0Y2U4NGEyMTllNWFlNjAuYWMzMTk5NWIyODk1OTgxZAotICAgIGZmZjVjZDRkZDZlZjdkYTQKLVZQQUJTQl8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMDMKK1ZNT1ZNU0tQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICA0ZDY0MTVhMDQxNjcyNDFiLmQ5Y2EwMGU3ZTgxZTJmNmYuOGQ0ZTliYmYxNmNhMjEyMy5jNjBkMDUxOTcwOGE0N2IzCiAgICAgNzI0Y2VkNDE4MjBhNDdhZi43MDNjNzQ3YjY1OTE2ZGEzLjRiNDA3YjdjYTkzNmNlNDMuNjk5YmVhMWU3OWJmZmY3MgpAQCAtMzg4NDcsMTEgKzM4ODQ3LDExIEBACiAgIGFmdGVyCiAgICAgNGQ2NDE1YTA0MTY3MjQxYi5kOWNhMDBlN2U4MWUyZjZmLjhkNGU5YmJmMTZjYTIxMjMuYzYwZDA1MTk3MDhhNDdiMwogICAgIDcyNGNlZDQxODIwYTQ3YWYuNzAzYzc0N2I2NTkxNmRhMy40YjQwN2I3Y2E5MzZjZTQzLjY5OWJlYTFlNzliZmZmNzIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzM0ZTY1NDExNjM2MjEyMy4zYTBkMDUxOTcwNzY0NzRkCisgICAgNGE3N2QyMWRiN2UzYTI4Yy4zMmFmODY3ZWJmMjc2NTA2LjhlNTA2YTNkZTAxMzk2ZDYuY2FjNDJlMWNkMTEzMTI0OAogICAgIGIxYjIzZjFlZmNmZWYzZGUuN2Q2ZjMxNWI5MTZjNTM0Mi4zMjRhZTRlZWRhNmIzNDA4LjQ1ZDRjZDdlMTMwZmJlZTIKICAgICAzNjE3YzNiMmRjNDEzZGViCiAKLVZQQUJTQl8xMjgocmVnKQorVk1PVk1TS1BEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGY5ZDkwZDIzYzczNGNiMTAuODNjOGIwMzI2YzY4ZjRjZi5hYmM3NzI4MDc3ZWQ3MjA0LjEzZjk2MzdiYjA0YzY2MDQKICAgICBlYTY1YTUzZDcxNzRhNmZkLjliODdhMTQzMjMyYzYyOGUuMWEwNTQzNTkwZTM2ZmZmNy4wYzJhNjVkMDgxYzFlNmY2CkBAIC0zODg1OSwxMiArMzg4NTksMTIgQEAKICAgICBjNjBmYjQxZDZmMGQyZWRkLjEyMmNmNDExZDhmMzc0MjEuMjc1ZThhZDJiZDRjNTMyMi5iYjQyZGY4MzdkOTljMjcwCiAgICAgMjhjMTRmYjhlMjEzOTY0ZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNDczNWU1MDBlMmYzNjM4LjA1NTc2NTI3NjYyOTcxMGMKKyAgICBmOWQ5MGQyM2M3MzRjYjEwLjgzYzhiMDMyNmM2OGY0Y2YuYWJjNzcyODA3N2VkNzIwNC4xM2Y5NjM3YmIwNGM2NjA0CiAgICAgZWE2NWE1M2Q3MTc0YTZmZC45Yjg3YTE0MzIzMmM2MjhlLjFhMDU0MzU5MGUzNmZmZjcuMGMyYTY1ZDA4MWMxZTZmNgogICAgIDY1MDg4OTZkNzU4ZTA4NWQuZDdiYThmM2YzZTU2Zjk0NS4yNDczYTI1MGYyZDEzNmM4LmZiYTk2NWQ5NjZkNzcxMGMKICAgICBjNjBmYjQxZDZmMGQyZWRkLjEyMmNmNDExZDhmMzc0MjEuMjc1ZThhZDJiZDRjNTMyMi5iYjQyZGY4MzdkOTljMjcwCi0gICAgMjhjMTRmYjhlMjEzOTY0ZQotVlBBQlNCXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwOQorVk1PVk1TS1BEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDFkZjEzMjY2YjA1MmE5ZDMuNjhjNDIzYmFmYzdlNTQyOC4yOGFhNGVhNTBlMGU5MDRkLjdkMTJmNzRiMGUzMzkxYjIKICAgICA3OGEwMDI3NzA0NjFiNzJiLmE5NzNkMGIxYjg2Y2I1ZWIuZjQwMDE4ZTdmYmIzMDlmNi44M2RiZTYyODdmMTAyZDI0CkBAIC0zODg3NCwxMSArMzg4NzQsMTEgQEAKICAgYWZ0ZXIKICAgICAxZGYxMzI2NmIwNTJhOWQzLjY4YzQyM2JhZmM3ZTU0MjguMjhhYTRlYTUwZTBlOTA0ZC43ZDEyZjc0YjBlMzM5MWIyCiAgICAgNzhhMDAyNzcwNDYxYjcyYi5hOTczZDBiMWI4NmNiNWViLmY0MDAxOGU3ZmJiMzA5ZjYuODNkYmU2Mjg3ZjEwMmQyNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yODU2NGU1YjBlMGU3MDRkLjdkMTIwOTRiMGUzMzZmNGUKKyAgICAxNDk4M2RkOWY5NGQ3YzgxLmU0NmFiOTZjM2U2MzhlZDIuNTRmYWNmYzNiY2VmOWI0OC45NjA1NTFkM2FjNzE2MzIzCiAgICAgY2NhNjVlNzdhYjIwYjMwMi43NWY0ZDk1OTJhZWYxYjg4LjIzNjRlZDI2NmNjZDAxNmUuMTBkYzM2YmEzMmUyNmU1YwogICAgIDRlYWI5MDQ4YWNlZDhjN2IKIAotVlBBQlNCXzEyOChyZWcpCitWTU9WTVNLUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYWNjMDVjZThiNzIwZjcyYi43ZTk2ZTIzZDM3ZTgxOGRhLmI4NWMyY2UzMTk5ZDk4YmEuM2MwOWYwZmEyODU5Zjg5NQogICAgIDg3NjU5NDA4ZWUwN2ViMTguMDUzNDQzMTdiOGIxNjkzNC4wOGVmYWY3NmE3Zjg0MDEzLjdkYjY1MzJkMGJhMDNjZTgKQEAgLTM4ODg2LDEyICszODg4NiwxMiBAQAogICAgIDFmOTEzZDc2NTExZDYyNWMuMDFhOTkxYjcwYzczYmEyMC40NGM2MzE2NzBkZTcwNGVjLmUzNTkyYTVjYjg4Yzk5YzQKICAgICBjMGU2OTUzMWJhNGEyYmE1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNkMDc1YzdlNmY3MzUwNDAuNDAzODZlNTczMjUzNzg2YworICAgIGFjYzA1Y2U4YjcyMGY3MmIuN2U5NmUyM2QzN2U4MThkYS5iODVjMmNlMzE5OWQ5OGJhLjNjMDlmMGZhMjg1OWY4OTUKICAgICA4NzY1OTQwOGVlMDdlYjE4LjA1MzQ0MzE3YjhiMTY5MzQuMDhlZmFmNzZhN2Y4NDAxMy43ZGI2NTMyZDBiYTAzY2U4CiAgICAgMzllNzM2MTNlZDJjYTVmMC4zYzRjZmZmMTRiODY2MDNkLmMzZjk1YzdlNmY4ZDUwNDAuYzAzODkyYTkzMmFkODg5NAogICAgIDFmOTEzZDc2NTExZDYyNWMuMDFhOTkxYjcwYzczYmEyMC40NGM2MzE2NzBkZTcwNGVjLmUzNTkyYTVjYjg4Yzk5YzQKLSAgICBjMGU2OTUzMWJhNGEyYmE1Ci1WUEFCU0JfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDAxCitWTU9WTVNLUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMzVhYTUxMTM1M2YyZmE2My45NWIxYTU5YmI2NjY1YjBiLjJlMTg3NjU1MTU4NDMzMGEuZTZhMjI5OWQxZTkyOTdjNQogICAgIDFjNzNkOWYwOWY5MWMxMjkuZjc5MjZiZWZiNzkyY2ZhNy5hMTY1MjhiODg1YzY4NjI2LjA3ZDk0MThjM2QxYjQ2NzQKQEAgLTM4OTAxLDExICszODkwMSwxMSBAQAogICBhZnRlcgogICAgIDM1YWE1MTEzNTNmMmZhNjMuOTViMWE1OWJiNjY2NWIwYi4yZTE4NzY1NTE1ODQzMzBhLmU2YTIyOTlkMWU5Mjk3YzUKICAgICAxYzczZDlmMDlmOTFjMTI5LmY3OTI2YmVmYjc5MmNmYTcuYTE2NTI4Yjg4NWM2ODYyNi4wN2Q5NDE4YzNkMWI0Njc0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJlMTg3NjU1MTU3YzMzMGEuMWE1ZTI5NjMxZTZlNjkzYgorICAgIDUzMGJhYWIzYmIzMTNkMjQuYTE3Zjg5ZGVmMDJkZjhkYy4zNDVkMjVjYTc2NDQ3MWExLjAxYjY3M2ExMDcwYzRkYTgKICAgICBiNDQwM2U0OWMzZTEyYTgwLmVmYzVmZGQ1ZmVjMzEzNTcuYzRjOWU4NzkwNDBhYWVhNy4zMjg2YmQ0NjE3ZjRlODBhCiAgICAgZjQ5NTFhZTkwYTVjNTI0OQogCi1WUEFCU1dfMTI4KHJlZykKK1ZNT1ZNU0tQU18xMjgocmVnKQogICBiZWZvcmUKICAgICBhNTJmODZmNDdiZDJjODBmLjFjZGMxMzljZDJhYTQzNjguM2RiMGMyM2U3ZGUxNWNjNC4yZTc4ZWRiMDRiMjVmOTYzCiAgICAgOWZhMGZkZDUwN2UyODYwOS42OGFjYTQ5OTA0OWE0NTA4LmU3OGNkNTg3MDgxMjBlY2YuNGMzNWIwNWE2OWEwMGYwMgpAQCAtMzg5MTMsMTIgKzM4OTEzLDEyIEBACiAgICAgZTIzNmZlYzZkZGZjYzg0Ny4xNzE3ZWI0MjQzMWRmNDIzLmJmNDZkMTY2YjNkZWEwNmMuMTgwNzYyYmM5M2U4OGM5OAogICAgIDdkYjU0ODRiZDljYzZiZTYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDlhNTMwMWIzYmUyNjYyMy4wNDM1NTE5Yjc3ODg1MzUwCisgICAgYTUyZjg2ZjQ3YmQyYzgwZi4xY2RjMTM5Y2QyYWE0MzY4LjNkYjBjMjNlN2RlMTVjYzQuMmU3OGVkYjA0YjI1Zjk2MwogICAgIDlmYTBmZGQ1MDdlMjg2MDkuNjhhY2E0OTkwNDlhNDUwOC5lNzhjZDU4NzA4MTIwZWNmLjRjMzViMDVhNjlhMDBmMDIKICAgICAzZjM0N2NmNzQ5MTZjN2UyLjcyN2M2ZDJjNzZiY2VjOGUuNDlhNTMwMWIzYmUyNjYyMy5mYmNiYWU2NTc3ODhhY2IwCiAgICAgZTIzNmZlYzZkZGZjYzg0Ny4xNzE3ZWI0MjQzMWRmNDIzLmJmNDZkMTY2YjNkZWEwNmMuMTgwNzYyYmM5M2U4OGM5OAotICAgIDdkYjU0ODRiZDljYzZiZTYKLVZQQUJTV18xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwMGQKK1ZNT1ZNU0tQU18xMjgobWVtKQogICBiZWZvcmUKICAgICAwN2ExZGNmZTY0NDEwNGM3LmUyZjQ3ZmFlNjAxZmM1ZTMuMzM0Yjk4YzY4OGM3MThmNi5hNGJkYjNkNDBiOTFmNzU3CiAgICAgOTI5NzlhYzI1MDUxMTQ2Ny45Y2I4ZmIxYjZlMGNmYTYzLmEzZTJmMmEzNjBjOTE1MzEuNTY1NGQyZDFlMDg4YTk5MApAQCAtMzg5MjgsMTEgKzM4OTI4LDExIEBACiAgIGFmdGVyCiAgICAgMDdhMWRjZmU2NDQxMDRjNy5lMmY0N2ZhZTYwMWZjNWUzLjMzNGI5OGM2ODhjNzE4ZjYuYTRiZGIzZDQwYjkxZjc1NwogICAgIDkyOTc5YWMyNTA1MTE0NjcuOWNiOGZiMWI2ZTBjZmE2My5hM2UyZjJhMzYwYzkxNTMxLjU2NTRkMmQxZTA4OGE5OTAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzM0YjY3M2E3NzM5MThmNi41YjQzNGMyYzBiOTEwOGE5CisgICAgZmE2M2ZmODFiYTBiNTZmMi42ZGNmNmY3OWEyNGVhMjczLjQxYTk3NGM3ZTgyY2E3MDAuMzA1ODJhYzljZDRlZjBjMgogICAgIDFiZDA4NjI4YmU3ODg4OTMuYWY4NWQ2MzQ5ODcyZmFiZS5lYTZjOWIxZDNiZmU4OTkxLjhlMTViODI4NmY2ZjA4OWEKICAgICBjY2Q3Nzc1YTYxNzcyZmM0CiAKLVZQQUJTV18xMjgocmVnKQorVk1PVk1TS1BTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDQ1ZWE2M2NjNDBmMzlmZWIuZDFhYmFiYTQ3N2E2NjQ3Ni5iZjI1MmJiOGVkMDIzZWYxLjdhZjdlMTkxNzY0YTc5MGQKICAgICA1Nzk5NzhlOGE3NmY5NWJjLmY4YzFlYWUwMDFhMGE3YzkuZjlmZDZkNzIzZDhjYTliNy5jZDE2YzQwZmI0MWQzMWEzCkBAIC0zODk0MCwxMiArMzg5NDAsMTIgQEAKICAgICBiMmZlMGVkMzdmOTMwMTBhLjA5YzhhODQ3ZmEyYTUwNjkuNWM4MWExMzQzYmJjZTdhZi4yYzNmNGVkOWFiODVlYmM3CiAgICAgZjBlMWVkZmU5YjMzNjVhZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NmE5NmEzNDIzOWM3OGJkLjQwNmI0MDdkMTI4MjZkN2QKKyAgICA0NWVhNjNjYzQwZjM5ZmViLmQxYWJhYmE0NzdhNjY0NzYuYmYyNTJiYjhlZDAyM2VmMS43YWY3ZTE5MTc2NGE3OTBkCiAgICAgNTc5OTc4ZThhNzZmOTViYy5mOGMxZWFlMDAxYTBhN2M5LmY5ZmQ2ZDcyM2Q4Y2E5YjcuY2QxNmM0MGZiNDFkMzFhMwogICAgIDVjMzFiMzFjMzM3NTRjZTIuNmNkY2MwYzc3OTczMGNiNS5iOTU3OTVjYzIzOWM3OGJkLmJmOTViZjgzMTI4MjZkN2QKICAgICBiMmZlMGVkMzdmOTMwMTBhLjA5YzhhODQ3ZmEyYTUwNjkuNWM4MWExMzQzYmJjZTdhZi4yYzNmNGVkOWFiODVlYmM3Ci0gICAgZjBlMWVkZmU5YjMzNjVhZgotVlBBQlNXXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAwMQorVk1PVk1TS1BTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGU3NDcxOWRjZmY5Nzk3NWUuYjQ0Yzg3NzgyNzU0ZjBkZi5hYjUzMWU0YmExZDEyZjBmLjNjYzU4YjE1MjI3YTMyMzgKICAgICBlZDNkNGQ2MWYzYmQzZjAzLmJkNjcxOTc5Yzg0NTU1MGYuMmU0ODllYmY4OTc1NjVkMy5iNjcwNTFkYjczNjI5NDA1CkBAIC0zODk1NSwxMSArMzg5NTUsMTEgQEAKICAgYWZ0ZXIKICAgICBlNzQ3MTlkY2ZmOTc5NzVlLmI0NGM4Nzc4Mjc1NGYwZGYuYWI1MzFlNGJhMWQxMmYwZi4zY2M1OGIxNTIyN2EzMjM4CiAgICAgZWQzZDRkNjFmM2JkM2YwMy5iZDY3MTk3OWM4NDU1NTBmLjJlNDg5ZWJmODk3NTY1ZDMuYjY3MDUxZGI3MzYyOTQwNQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NGFkMWU0YjVlMmYyZjBmLjNjYzU3NGViMjI3YTMyMzgKKyAgICBkZThmMDU3NzkyYjIxN2M4LjJiOWJjMTQxZmVmMTZjNDMuNmU3MmE0OGZjZjIxYWRlMi4yNmNkZWZmMmNiZmY0YWMxCiAgICAgOTUwOWJkMGNmODgxZGNkOS41ODM0NzkzYzY0ZTQ3MDJhLjQ3OWVhZGE3OGVlMWM0NjguZTgyYTVmYzZjNWRkOTAxOQogICAgIDU4ZDE5ZmMzZmQ4OGEyYjkKIAotVlBBQlNXXzEyOChyZWcpCitWTU9WTVNLUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZDExMGFhNTUxMThkYmI0Yy5mMDc2ZjEwYjQyMzY0YTYzLmEyN2QzZmQ3OTZhYjllNmQuOTU5ODM0ZjNlM2MyNjY5MAogICAgIGIxMzE3Y2U4OWE3NzE4N2YuY2FhMzFlNjA4YmRlMWM5Mi42M2MzMGU3YzMxZDEzMWJiLjM0MmNiNTYwZTljZjRmODcKQEAgLTM4OTY3LDEyICszODk2NywxMiBAQAogICAgIDEzNGM2NmMyODEyYjhkNzMuNmE2ZTUwYmM4ZDM0ZGY4ZC5iZTc2Yjg5ODEwNmI3OTIzLmQ0NTE5NjQ5N2E5ZWU0OTEKICAgICA4ZTdiZWU5ZDNjNzgwOWZjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA3YWUxZDY4MmYxZTY2YmUuMDBkYTUzMjg0MmVjM2E3OQorICAgIGQxMTBhYTU1MTE4ZGJiNGMuZjA3NmYxMGI0MjM2NGE2My5hMjdkM2ZkNzk2YWI5ZTZkLjk1OTgzNGYzZTNjMjY2OTAKICAgICBiMTMxN2NlODlhNzcxODdmLmNhYTMxZTYwOGJkZTFjOTIuNjNjMzBlN2MzMWQxMzFiYi4zNDJjYjU2MGU5Y2Y0Zjg3CiAgICAgNTM4MTExZTkzNmQzZjVmZC5mZjVkYmZmN2YwODQwZjkxLmY4NTJlMjk4ZDBlMjY2YmUuZmYyNmFjZDhiZDE0M2E3OQogICAgIDEzNGM2NmMyODEyYjhkNzMuNmE2ZTUwYmM4ZDM0ZGY4ZC5iZTc2Yjg5ODEwNmI3OTIzLmQ0NTE5NjQ5N2E5ZWU0OTEKLSAgICA4ZTdiZWU5ZDNjNzgwOWZjCi1WUEFCU1dfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDBhCitWTU9WTVNLUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDg2ZTMwYzIyMGFlNjRlNS40ZGRkNzZlMTE2MGUxZDhkLmU5YTI0ZTliN2NmYjQ4YjIuMGY3YjhiZTY4Y2Y3YTY5NQogICAgIDIwZjdkOGEzNDI0ZGIyNzkuNWQ4MjNkYjA5MTA1ZTFmNi41N2M3MzM4MGRjZTQwNTJiLjQ4YWQ1NmYwZTExMjI5YzEKQEAgLTM4OTgyLDExICszODk4MiwxMSBAQAogICBhZnRlcgogICAgIDA4NmUzMGMyMjBhZTY0ZTUuNGRkZDc2ZTExNjBlMWQ4ZC5lOWEyNGU5YjdjZmI0OGIyLjBmN2I4YmU2OGNmN2E2OTUKICAgICAyMGY3ZDhhMzQyNGRiMjc5LjVkODIzZGIwOTEwNWUxZjYuNTdjNzMzODBkY2U0MDUyYi40OGFkNTZmMGUxMTIyOWMxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE2NWU0ZTliN2NmYjQ4YjIuMGY3Yjc0MWE3MzA5NTk2YgorICAgIGIxZTI2MjJjYmQ2MGFmZTQuOWU4NWI3OWQ4ZjllMTQ1Yi44ZmE4N2Q1OGM2ZmJkMzI1LmM1NTcxODIwYWE0OTNkNTIKICAgICA5NmZiNGI0OWFkZjMxNzUxLjZlMzNlMDEzYWM2NGY0NjcuNmYxMGE3MGQ1ODRkNmVjYi5lM2M2Y2FlNDg0MjcxZmY1CiAgICAgZmM0NjY5YTcwYTM4MGE1NgogCi1WUE1PVlNYQlFfMTI4KHJlZykKK1ZNT1ZNU0tQU18yNTYocmVnKQogICBiZWZvcmUKICAgICA2ZDIzZjJkNWQ5MDkzYzIwLmFkMGUwZWU2MmYxM2E1ZWMuMjhkOWI1N2U4M2U0YmJjNy5kMmNjMmQ4ZGFlZTU5MTRhCiAgICAgOTJhOTYwZGE4YzI1ZWYwMC5kMGU2MjdlZjVlY2IxNmUzLjI3YzAzMTRhYjBhOWE1MjYuOTNhODhjYzJlM2NmZjljZApAQCAtMzg5OTUsMTEgKzM4OTk1LDExIEBACiAgICAgYTlmNDkwZTBkN2Y1MjYyYgogICBhZnRlcgogICAgIDZkMjNmMmQ1ZDkwOTNjMjAuYWQwZTBlZTYyZjEzYTVlYy4yOGQ5YjU3ZTgzZTRiYmM3LmQyY2MyZDhkYWVlNTkxNGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDA2Mi5mZmZmZmZmZmZmZmZmZjgyCisgICAgOTJhOTYwZGE4YzI1ZWYwMC5kMGU2MjdlZjVlY2IxNmUzLjI3YzAzMTRhYjBhOWE1MjYuOTNhODhjYzJlM2NmZjljZAogICAgIGM3MjRhZjIzYmYxODYwYTEuZGQ1MDEyNTE1NzI4MjY2MC5jOTM3NTBlM2QwM2ZmMDMyLjkwNzAzZTlhMTQxODYyODIKICAgICA2OGRmZGMxYTBmNmZjYWIwLmFlMTk0YmY2MzUzNTkwOGYuNjg4OTBlYjY3ZTMyZDY5NC5hM2YwYzEwMDVjY2I4ODkyCi0gICAgYTlmNDkwZTBkN2Y1MjYyYgotVlBNT1ZTWEJRXzEyOChtZW0pCisgICAgMDAwMDAwMDAwMDAwMDAyMgorVk1PVk1TS1BTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDdmNDcyODI2YTJhMWY5NzkuZDEyOGUxMmMxOGI1NmFkOS4yMTBiNGZjYjE1ZmUxMTlkLjYyMDE2ODJkNTcwZjk0ZmIKICAgICBmZmI2MDNiZWQ5ZGJiZGE4LjVlNDliY2M2NzU3NjdjYzcuMTBmMjk5YmQxMjhmNjViNi4xMmVjNTliNWY2NjI2NTEwCkBAIC0zOTAwOCwxMiArMzkwMDgsMTIgQEAKICAgICBmYzU3OGVlZDkzOTBhODI4CiAgIGFmdGVyCiAgICAgN2Y0NzI4MjZhMmExZjk3OS5kMTI4ZTEyYzE4YjU2YWQ5LjIxMGI0ZmNiMTVmZTExOWQuNjIwMTY4MmQ1NzBmOTRmYgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZjk0LmZmZmZmZmZmZmZmZmZmZmIKKyAgICBmZmI2MDNiZWQ5ZGJiZGE4LjVlNDliY2M2NzU3NjdjYzcuMTBmMjk5YmQxMjhmNjViNi4xMmVjNTliNWY2NjI2NTEwCiAgICAgMDcwZDlmOTQ5N2FmMmRlMy42YjhmNjg1MmMyM2YzYzI3LjU4OWNhNWI3NDlmNTQ4MDUuZDM5N2RkYmJmOGI1ODc4MgogICAgIDcxMTg3Nzk1ZjgyYTA2NTYuNTQ0NmUyM2U5YzliZTVhNC5kNmQ0ZjBhNGQ1M2I3NWI3LjAyNGNmMGE5Zjg5NjM0ZmIKICAgICBmYzU3OGVlZDkzOTBhODI4CiAKLVZQTU9WU1hCUV8xMjgocmVnKQorVk1PVk1TS1BTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDFiMDZiNGYyNjQzMDIxYjQuMWFhMzA3YWIxOTU3MDQyZi43NWJhMjRmNTlmMTdiNGViLjY0NjVmNDcyZDM2ZWE5ZjcKICAgICBiZGE0NWQyNDA3MDFkOTRjLmRlN2FjY2M0MTU0M2UzOTguMmEzNjJjZTM2NTNlZTVhOC5kZjFjMmYwYzVlOThhMGYyCkBAIC0zOTAyMiwxMSArMzkwMjIsMTEgQEAKICAgICA3NzFkZmRkYjY4NjM2Y2ZiCiAgIGFmdGVyCiAgICAgMWIwNmI0ZjI2NDMwMjFiNC4xYWEzMDdhYjE5NTcwNDJmLjc1YmEyNGY1OWYxN2I0ZWIuNjQ2NWY0NzJkMzZlYTlmNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDE1LmZmZmZmZmZmZmZmZmZmZDQKKyAgICBiZGE0NWQyNDA3MDFkOTRjLmRlN2FjY2M0MTU0M2UzOTguMmEzNjJjZTM2NTNlZTVhOC5kZjFjMmYwYzVlOThhMGYyCiAgICAgM2M3Yzg1ZWYxOThmMGQ5Yi45YTY4NDBjYTA5Zjk1ZWJkLmNmMDhmNTc0OGQ5Y2I0ODYuMjNjNTFjNWU5M2M4MTVkNAogICAgIGY1ZGIyOGJmMzY2N2Y4NGUuMjgzYmUxYWIxMDg1MzJjYi5jMDdhN2IxNGIxYmQ1YzMyLjBjMmMzNzU0OGQwN2M1YzgKLSAgICA3NzFkZmRkYjY4NjM2Y2ZiCi1WUE1PVlNYQlFfMTI4KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAwMDhkCitWTU9WTVNLUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgM2U2NGU4ZGQ0MWU3YzY5OC40NDBkNDIwMGY5MTRkODExLjY1YmQyYTUyNDdmMzFiZWUuNThkOWJiMmY2ZDJlMWE1NwogICAgIDNlY2M3NjQ3MzRhMDhlY2MuODY1ZWQwMWVmZTIyZTc4Zi4yZGJiOTdhYWM5NTBkNDUxLmY1NzFhZjMxNWQ3YTI5YTIKQEAgLTM5MDM1LDEyICszOTAzNSwxMiBAQAogICAgIDdiODZhNGRhODJmYjliMWMKICAgYWZ0ZXIKICAgICAzZTY0ZThkZDQxZTdjNjk4LjQ0MGQ0MjAwZjkxNGQ4MTEuNjViZDJhNTI0N2YzMWJlZS41OGQ5YmIyZjZkMmUxYTU3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMWEuMDAwMDAwMDAwMDAwMDA1NworICAgIDNlY2M3NjQ3MzRhMDhlY2MuODY1ZWQwMWVmZTIyZTc4Zi4yZGJiOTdhYWM5NTBkNDUxLmY1NzFhZjMxNWQ3YTI5YTIKICAgICA1MzIyMjIwNjViOTk4MWMzLjE1MWFjZDg2ZTIxZTYxNzUuNWMwMWE1YTFiM2E4MWIyMS5mMjhlNTU4NjFmMmVjN2JlCiAgICAgNTkzMzY5MDVkNWRlNWJhOC40ZThjMzVhMjQxOTM4NDZlLmNlNWFjZjIzMjAwNWFhODkuYWI3YmE4OWI0Y2Q1MmU1OAogICAgIDdiODZhNGRhODJmYjliMWMKIAotVlBNT1ZTWEJRXzEyOChyZWcpCitWTU9WTVNLUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYzBmOTQ2YjE1ZDJjNDliNi4yY2M5YzUyZmJjN2NkOGE4LjhkMDIwNWUwYjUwZThhMjcuNWY5NDkxMWEyZDc1M2RiNgogICAgIGQ0MjE4ODhhNzhmNTc2ZDAuYThiMGI0NzIyYzdlYjNlZS4yZWM2MzdhYWRkMTliMDRjLmViNzk2NzczZjUwMzkyZDQKQEAgLTM5MDQ5LDExICszOTA0OSwxMSBAQAogICAgIDA5MjkzYjAzY2FkYzZiODgKICAgYWZ0ZXIKICAgICBjMGY5NDZiMTVkMmM0OWI2LjJjYzljNTJmYmM3Y2Q4YTguOGQwMjA1ZTBiNTBlOGEyNy41Zjk0OTExYTJkNzUzZGI2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwNjMuMDAwMDAwMDAwMDAwMDAwZQorICAgIGQ0MjE4ODhhNzhmNTc2ZDAuYThiMGI0NzIyYzdlYjNlZS4yZWM2MzdhYWRkMTliMDRjLmViNzk2NzczZjUwMzkyZDQKICAgICAxNTRhNjhkMzcwZTI1YzE5LmE5YjZiMWI5NDJmMGE5YTcuOGQyNWM5NmU1MzQyMzI4OC40ZWQ3Y2QxYTk0YmM2MzBlCiAgICAgZGRjMGUyZjdlMDdkMzczYi4wYmE2MzhmMDE5ZGU3NWZmLjA2NmJiNjk3YjMxNTRiODguNjQ3ODQwZmMyN2FiNmM5MQotICAgIDA5MjkzYjAzY2FkYzZiODgKLVZQTU9WU1hCUV8xMjgobWVtKQorICAgIDAwMDAwMDAwMDAwMDAwYzQKK1ZNT1ZNU0tQU18yNTYobWVtKQogICBiZWZvcmUKICAgICAxOWI2M2ExZDk4NWMxYTIwLjhhY2ZmMDYyNjQ1NDQ1ZTMuYWE0YmM2MDNjZTU1ZDUyMS5mNWU0ZmE5MTlhMWQzOGY3CiAgICAgNzBlYWI5MzVhZDM2MzY4NC43NmMyOTA4MDk5ZjJjMGJjLjYyNzJkNWRlN2M2MTgzM2EuYjZkYjkyYzhhM2U2MzU4MgpAQCAtMzkwNjIsMTIgKzM5MDYyLDEyIEBACiAgICAgN2RiMzI0MTRhNTQxZTI4MQogICBhZnRlcgogICAgIDE5YjYzYTFkOTg1YzFhMjAuOGFjZmYwNjI2NDU0NDVlMy5hYTRiYzYwM2NlNTVkNTIxLmY1ZTRmYTkxOWExZDM4ZjcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAzOC5mZmZmZmZmZmZmZmZmZmY3CisgICAgNzBlYWI5MzVhZDM2MzY4NC43NmMyOTA4MDk5ZjJjMGJjLjYyNzJkNWRlN2M2MTgzM2EuYjZkYjkyYzhhM2U2MzU4MgogICAgIGU5OTMzNDM2MjY3NjdiZTIuZmZlN2JjYmQxYWU0ZTU3My4wZWU3ZTM2ZTQwMGMzYzc1LmE1OWU3OWE4NmFmYzdkZDUKICAgICA2MjdiMjgwZTFmMjlhNDYzLjdmODg3Mjg2ODRiNWVmYjMuOGM3NjZiOWQzNTY0YmJmZi4xZTc3YWE5ZDhkZWM0ZTliCiAgICAgN2RiMzI0MTRhNTQxZTI4MQogCi1WUE1PVlNYV1FfMTI4KHJlZykKK1ZNT1ZOVFBEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDFlOWVlMDc3NTA4Nzc1MzIuYjY2ZjEwYThiMjVhNmUzNi41NGYyYWU0NTczZjExYzI5LmI3ZWJlYTU4Nzc3NWJkMDQKICAgICA1ZDg0ZGIzNDJhNGI0NTViLmMxM2I2OGYwZmUxNTk1ODUuZDg3MTZhNjc4MTI1YTY4MS42YjExZGE4YzIzNDlmZWFmCkBAIC0zOTA3NiwxMSArMzkwNzYsMTEgQEAKICAgICA1NGE4MzEyZmI4ZGE5MjUwCiAgIGFmdGVyCiAgICAgMWU5ZWUwNzc1MDg3NzUzMi5iNjZmMTBhOGIyNWE2ZTM2LjU0ZjJhZTQ1NzNmMTFjMjkuYjdlYmVhNTg3Nzc1YmQwNAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDA1NWVmLjAwMDAwMDAwMDAwMDNhMmQKKyAgICA1ZDg0ZGIzNDJhNGI0NTViLmMxM2I2OGYwZmUxNTk1ODUuZDg3MTZhNjc4MTI1YTY4MS42YjExZGE4YzIzNDlmZWFmCiAgICAgOTZiMTEyYjVjZTE4OGNhOC41ZWFiYWNkMzFkNjdkNTdjLjY4NTFhNDU5NGRkY2M5NjYuODNiNmI5MjQ1NWVmM2EyZAogICAgIDI0NzA4MDY4ZDg3Yjg3YzQuNmI4YjU5M2IyYjViZTk0OC42MWRkNTc4NjcwYTJjMzg1LmRkYTQwMjBiMjg3MDJkYTkKICAgICA1NGE4MzEyZmI4ZGE5MjUwCi1WUE1PVlNYV1FfMTI4KG1lbSkKK1ZNT1ZOVFBEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGMzOGVjMzdiMjIzODI1NGQuNjUwZjIxYjhlNWZmNzE1Yy5jMmE2ZWExNTQ0ZmQ4ZTE1LjFkNjM3ZjU5ODkwNGNlOGEKICAgICAwODIyMzJkYjgyOTZhNGNkLmI0ZDhmMjEwOTEzMDg3MWIuNDFjYWRiNGU4NjVhODAwZS5mOTJkMTg0MDMxOGQyNzIwCkBAIC0zOTA4OCwxMyArMzkwODgsMTMgQEAKICAgICA4MDgzOWM4NzkxODQ1MTA1LmViMWIxMDhlMzNjYTI3YzAuMjM1OGNlODllZTczMzkzNy44MWMwOGVmN2E0NDViMmIwCiAgICAgZTUyMTYzOWZhNjhjNWMwMwogICBhZnRlcgotICAgIGMzOGVjMzdiMjIzODI1NGQuNjUwZjIxYjhlNWZmNzE1Yy5jMmE2ZWExNTQ0ZmQ4ZTE1LjFkNjM3ZjU5ODkwNGNlOGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmODkwNC5mZmZmZmZmZmZmZmZjZThhCisgICAgYzM4ZWMzN2IyMjM4MjU0ZC42NTBmMjFiOGU1ZmY3MTVjLjIzNThjZTg5ZWU3MzM5MzcuODFjMDhlZjdhNDQ1YjJiMAorICAgIDA4MjIzMmRiODI5NmE0Y2QuYjRkOGYyMTA5MTMwODcxYi40MWNhZGI0ZTg2NWE4MDBlLmY5MmQxODQwMzE4ZDI3MjAKICAgICBmZDMwZmMzYmYzMDFjOWZjLjZjMThlZWRlNzc5YjA1YWUuYzNjMWE4ZDAwYTdkN2E2MC41MTg4MWZhNjA3YzkwYWYzCiAgICAgODA4MzljODc5MTg0NTEwNS5lYjFiMTA4ZTMzY2EyN2MwLjIzNThjZTg5ZWU3MzM5MzcuODFjMDhlZjdhNDQ1YjJiMAogICAgIGU1MjE2MzlmYTY4YzVjMDMKIAotVlBNT1ZTWFdRXzEyOChyZWcpCitWTU9WTlRQRF8xMjgocmVnKQogICBiZWZvcmUKICAgICBkYWY3OWEwYWE5MmI0NDk4LjZiZTg4ZWFjNzkyYmY4MTUuOGMyYzU3OGE2MjRjMjhmZS4zZjViYzc2NDRlNDY3OWJlCiAgICAgYmE4ZDJkYTU0OGFjYTUxYS45YzJjNGY5NGM2MDM3OTU4LmFhOTliYzNmOWZhYTQ2MTQuZjE5NTExNGQ0NTA0ZjYyMQpAQCAtMzkxMDMsMTEgKzM5MTAzLDExIEBACiAgICAgMmE4ZGE4OTRjZjM1MzAzMAogICBhZnRlcgogICAgIGRhZjc5YTBhYTkyYjQ0OTguNmJlODhlYWM3OTJiZjgxNS44YzJjNTc4YTYyNGMyOGZlLjNmNWJjNzY0NGU0Njc5YmUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZjBiOS4wMDAwMDAwMDAwMDA2YjhlCisgICAgYmE4ZDJkYTU0OGFjYTUxYS45YzJjNGY5NGM2MDM3OTU4LmFhOTliYzNmOWZhYTQ2MTQuZjE5NTExNGQ0NTA0ZjYyMQogICAgIGUyMzExYWRhMWY5ZGJjMzUuZWQxOTVhMmQ5NTE3OTJmOS5hM2FjM2MxOTg3NzJiYWFkLjE2ZDQyNzMwZjBiOTZiOGUKICAgICBhZTJkNWIxN2NiOGFjNTk2LjNiN2IyYTYxMDE3NGZkMjQuZDFiM2Q0ODViNTJmYzM3Ni44YmUzODVmOTZhNzA5NTJmCiAgICAgMmE4ZGE4OTRjZjM1MzAzMAotVlBNT1ZTWFdRXzEyOChtZW0pCitWTU9WTlRQRF8xMjgobWVtKQogICBiZWZvcmUKICAgICBkMTlmMGJlZDNjMTRmN2JlLjdhY2VlZmM2ZThmZWZjZTkuNjMyMDNlMWUyNzI1NzYwNy45MmY4N2ZlZGM2NmU5YjFiCiAgICAgNWFlNTJhZjBjYzFhYTcwNS5hMTYwY2Y1NTExODU5Y2RhLjNmZDMwZjRmMjIzNmJhY2MuNDBjODM5YmY1NWJhN2Y0NwpAQCAtMzkxMTUsMTMgKzM5MTE1LDEzIEBACiAgICAgODUzYzhjYTVjOGM5YjI2Yy43NTg2NjdiZmY4ZmQwYTQzLjg3OTFkY2JjMDlhOTkzYWQuZDczOGNiNGQ1ZmFhNWFlNgogICAgIDc3NzE5YmUyMTE2NmNhYjEKICAgYWZ0ZXIKLSAgICBkMTlmMGJlZDNjMTRmN2JlLjdhY2VlZmM2ZThmZWZjZTkuNjMyMDNlMWUyNzI1NzYwNy45MmY4N2ZlZGM2NmU5YjFiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmM2NmUuZmZmZmZmZmZmZmZmOWIxYgorICAgIGQxOWYwYmVkM2MxNGY3YmUuN2FjZWVmYzZlOGZlZmNlOS44NzkxZGNiYzA5YTk5M2FkLmQ3MzhjYjRkNWZhYTVhZTYKKyAgICA1YWU1MmFmMGNjMWFhNzA1LmExNjBjZjU1MTE4NTljZGEuM2ZkMzBmNGYyMjM2YmFjYy40MGM4MzliZjU1YmE3ZjQ3CiAgICAgYTIyYjgxOGE5YzUyZmMzMC44MTJlZjgyZmUyYWJlMzE0LmFjNWYxYmRmMGZiMzg1OWYuMzk2ZmZmNjZmZjlmYWJhNwogICAgIDg1M2M4Y2E1YzhjOWIyNmMuNzU4NjY3YmZmOGZkMGE0My44NzkxZGNiYzA5YTk5M2FkLmQ3MzhjYjRkNWZhYTVhZTYKICAgICA3NzcxOWJlMjExNjZjYWIxCiAKLVZQTU9WU1hXUV8xMjgocmVnKQorVk1PVk5UUERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNzY2NDZhOTBiMjVmMzViMy5lMGU2YzgyZjZhOGE4NGU0LmQ5YjIxNzczZWUwNjUwMTQuYWEzNWQwZDEyYzIzYTAyMgogICAgIDJlNWUzNWMzZGUyMmQ3OTkuOGRmM2IwMTJhMWExMmZjNS4wOTAwMDRiNjYxNTNlZjMzLmYyMTc3MzBiOTUyZTY3MjkKQEAgLTM5MTMwLDExICszOTEzMCwxMSBAQAogICAgIDQwMjg0N2M3ODkyODc1NjYKICAgYWZ0ZXIKICAgICA3NjY0NmE5MGIyNWYzNWIzLmUwZTZjODJmNmE4YTg0ZTQuZDliMjE3NzNlZTA2NTAxNC5hYTM1ZDBkMTJjMjNhMDIyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDYwZDUuZmZmZmZmZmZmZmZmYTVlZgorICAgIDJlNWUzNWMzZGUyMmQ3OTkuOGRmM2IwMTJhMWExMmZjNS4wOTAwMDRiNjYxNTNlZjMzLmYyMTc3MzBiOTUyZTY3MjkKICAgICBmY2FiZjZlODMwM2FlZDBmLjY5MzBjMDNjODYxYjZmM2IuNjFiYTJiZjVlYzZmMjQ0Yi4zYjAzM2Y1NDYwZDVhNWVmCiAgICAgM2Q5N2FiNjk0NDMzYjNjMC41MDY5NzQ5ODM4MDJmZjcxLjNjMmQ4NjlhMmNlNjJiMDkuNjFjNWIyOTlhODI0MTU5ZgogICAgIDQwMjg0N2M3ODkyODc1NjYKLVZQTU9WU1hXUV8xMjgobWVtKQorVk1PVk5UUERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjRmOTdhYzgyMGViN2Y3MC40YjZlNGZiM2I3OWE2NTU5LjFlNmE0OTEyZDA2NTlkOTQuZjhhNDEzMTJiYzQ0M2YxOQogICAgIDlhMDVjNzhhODk3Y2YwZTguODM3YmRlMzMyNWZhM2Y4NS5hZmZmYmE5NjZjNGQwM2NmLmYwNmRjZGM5MzkxNjlkMjYKQEAgLTM5MTQyLDEzICszOTE0MiwxMyBAQAogICAgIDI2ZjhhMWZkM2UzMWY1ZDQuZTE2YmFlODE1ZmQ2NTk0OS44YTE0NjA2ZDFmZTExOTQwLjAzMjFiOWE2Njc0NDI3ZTkKICAgICBkN2E0ZTNhMjUyYjhjYWY3CiAgIGFmdGVyCi0gICAgYjRmOTdhYzgyMGViN2Y3MC40YjZlNGZiM2I3OWE2NTU5LjFlNmE0OTEyZDA2NTlkOTQuZjhhNDEzMTJiYzQ0M2YxOQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZiYzQ0LjAwMDAwMDAwMDAwMDNmMTkKKyAgICBiNGY5N2FjODIwZWI3ZjcwLjRiNmU0ZmIzYjc5YTY1NTkuOGExNDYwNmQxZmUxMTk0MC4wMzIxYjlhNjY3NDQyN2U5CisgICAgOWEwNWM3OGE4OTdjZjBlOC44MzdiZGUzMzI1ZmEzZjg1LmFmZmZiYTk2NmM0ZDAzY2YuZjA2ZGNkYzkzOTE2OWQyNgogICAgIGNjMTZhYmY3ZGVlNDgzZmIuNDEwYzU0NTMyOGRmN2NmMS5kZmY0NDIxMDI4YzhlZDRmLjdmZDNiMDJjM2VlNzgxZGQKICAgICAyNmY4YTFmZDNlMzFmNWQ0LmUxNmJhZTgxNWZkNjU5NDkuOGExNDYwNmQxZmUxMTk0MC4wMzIxYjlhNjY3NDQyN2U5CiAgICAgZDdhNGUzYTI1MmI4Y2FmNwogCi1WUEFDS1VTRFdfMTI4KHJlZykKK1ZNT1ZOVFBEXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDU2YTgyYThlOThjZmE3YjIuODY3OTI1ODdjMjZmMDJhMC5iZmU1ZTcyODYzNmExMTM4LjhjMmM4ZDk3NmVhNTQxY2QKICAgICBkZTc5OGFkNWQ3MTZmYWM3LmM3NjRiMzgxODlhODY2OGIuMzdjNmZiYjNkMzI4ZTI2Yi5jMTA4NDc3YjMwMWYyMTIzCkBAIC0zOTE1NiwxMiArMzkxNTYsMTIgQEAKICAgICA3NWIxODYyNGFlNjFmMGFlLjVjYTZkZTc1NGE0MDIxNmMuNjVlZGE0MmE2MTRmYmE0Yi4zNDNjNGUyMjdlNjZmZGQ4CiAgICAgMmEyYzk1YmQ0MzRiNzA5MAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwZmZmZmZmZmYwMDAwLmZmZmYwMDAwMDAwMGZmZmYKKyAgICA1NmE4MmE4ZTk4Y2ZhN2IyLjg2NzkyNTg3YzI2ZjAyYTAuYmZlNWU3Mjg2MzZhMTEzOC44YzJjOGQ5NzZlYTU0MWNkCiAgICAgZGU3OThhZDVkNzE2ZmFjNy5jNzY0YjM4MTg5YTg2NjhiLjM3YzZmYmIzZDMyOGUyNmIuYzEwODQ3N2IzMDFmMjEyMwogICAgIGM5NjNmZmUzYWIxOGZlZTIuYzU4NGM3ZDdhY2VhZGNjMC5hNTVhZTY5MDQ4OWEwNjhkLjA1NzQwODA2ODE1Yjc3NmQKICAgICA3NWIxODYyNGFlNjFmMGFlLjVjYTZkZTc1NGE0MDIxNmMuNjVlZGE0MmE2MTRmYmE0Yi4zNDNjNGUyMjdlNjZmZGQ4CiAgICAgMmEyYzk1YmQ0MzRiNzA5MAotVlBBQ0tVU0RXXzEyOChtZW0pCitWTU9WTlRQRF8yNTYobWVtKQogICBiZWZvcmUKICAgICBjMjBmNTdjMmVhMTY4Y2MwLjNjYjExOTA0N2Y3ZDBjZDguNjg5NjczNDg3Y2I3ZjFiYS5kM2NhMzJlZGI3ZDAzOTUxCiAgICAgZGFiMjEyMWQ5MmQ0MGM5NS43Y2FkYjZlZmI4Zjk4ZTBjLmM1MjAwMjNhNjA1YTA4ZDcuNGIzZThiNDZlOGFiYzA0YQpAQCAtMzkxNjksMTMgKzM5MTY5LDEzIEBACiAgICAgZjc2OTYwODU0ZjU2MmJkYy5kMmNjZmM5N2QzM2ZiMjNmLmUxMzFmZjJmYWQ1NWY5MmQuYzkxYjhmNjU0YTljZDZjNwogICAgIDg3MWMzMTA1YjNjYmRjYTMKICAgYWZ0ZXIKLSAgICBjMjBmNTdjMmVhMTY4Y2MwLjNjYjExOTA0N2Y3ZDBjZDguNjg5NjczNDg3Y2I3ZjFiYS5kM2NhMzJlZGI3ZDAzOTUxCisgICAgZjc2OTYwODU0ZjU2MmJkYy5kMmNjZmM5N2QzM2ZiMjNmLmUxMzFmZjJmYWQ1NWY5MmQuYzkxYjhmNjU0YTljZDZjNwogICAgIGRhYjIxMjFkOTJkNDBjOTUuN2NhZGI2ZWZiOGY5OGUwYy5jNTIwMDIzYTYwNWEwOGQ3LjRiM2U4YjQ2ZThhYmMwNGEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmYwMDAwMDAwMC4wMDAwZmZmZmZmZmYwMDAwCisgICAgNGRlMjQxYmE1NTkwYWQzYS44ZmYyNTk1MmY1NjFiMWY1LjRlMTAwNzM4MTIzNTIxZWUuMjk5NWFiOWY5MDZiOGJlMwogICAgIGY3Njk2MDg1NGY1NjJiZGMuZDJjY2ZjOTdkMzNmYjIzZi5lMTMxZmYyZmFkNTVmOTJkLmM5MWI4ZjY1NGE5Y2Q2YzcKICAgICA4NzFjMzEwNWIzY2JkY2EzCiAKLVZQQUNLVVNEV18xMjgocmVnKQorVk1PVk5UUERfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYmVlNDhmZTk2NjgzZGEyMy5iMzEzZWI2YTlkMzM0MmE2LmEyODY5ZDJjZWQyMWNkOTguNTk1MTY0MGE0ZWM1NGNiZAogICAgIGNjYmVhNDdmZmY1MTBjZjIuNWZhZTVmNTU1YTMyYWRjNS41OTZlMzc3YmUwOTMzZGFhLjkxM2FiNGI0MTA5MmQ1Y2QKQEAgLTM5MTgzLDEyICszOTE4MywxMiBAQAogICAgIGRhZGNlNDZlNTY1Y2ZiMmYuZjNlM2VmZWU5M2M3NzJiMS5lZmY0NDZmY2JmNTMwZmFhLmI2OWEwMzJhNjg2ZjdjMTcKICAgICA1OWE5ZmFjZDM2OTkxMmFhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZmYuZmZmZjAwMDAwMDAwZmZmZgorICAgIGJlZTQ4ZmU5NjY4M2RhMjMuYjMxM2ViNmE5ZDMzNDJhNi5hMjg2OWQyY2VkMjFjZDk4LjU5NTE2NDBhNGVjNTRjYmQKICAgICBjY2JlYTQ3ZmZmNTEwY2YyLjVmYWU1ZjU1NWEzMmFkYzUuNTk2ZTM3N2JlMDkzM2RhYS45MTNhYjRiNDEwOTJkNWNkCiAgICAgMGNmODZjMzIxYmMwYWViZC5kNjA1MzczM2EzNjAyOTY1LjU0Y2ZjNmYyNDcxZjNmMjEuNjdiOTZiMWIwZmM2NTE4NgogICAgIGRhZGNlNDZlNTY1Y2ZiMmYuZjNlM2VmZWU5M2M3NzJiMS5lZmY0NDZmY2JmNTMwZmFhLmI2OWEwMzJhNjg2ZjdjMTcKICAgICA1OWE5ZmFjZDM2OTkxMmFhCi1WUEFDS1VTRFdfMTI4KG1lbSkKK1ZNT1ZOVFBEXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDJlYjJjYWYwOTY0ZmNlNmMuOTFiNzA2OWY0YWIyMzBmNS45NDE1MDM3NDQ2NzU0M2Q2Ljg2MmFiNDA1ZTNiYmU5ZjEKICAgICAwZjgwZjE3ZmE0OWQ2ZDg4LjhmZDVkMDMxOTY0Yzg5YmEuOTM2N2VmYjBkYTc2NTkwMC43NmJkMGE3OTUwZTIwOGExCkBAIC0zOTE5NiwxMyArMzkxOTYsMTMgQEAKICAgICA2OTlmMzI5MjM3MzI0MzgwLmNjMDk0OTI4YTA4Mjk1ZjQuMWY5YjQxZjkwZTllNDQxMS5jYzI5NjQ1MjcyOWQwOGVlCiAgICAgZWI5YjVlOTA2MDRhNjFlMwogICBhZnRlcgotICAgIDJlYjJjYWYwOTY0ZmNlNmMuOTFiNzA2OWY0YWIyMzBmNS45NDE1MDM3NDQ2NzU0M2Q2Ljg2MmFiNDA1ZTNiYmU5ZjEKKyAgICA2OTlmMzI5MjM3MzI0MzgwLmNjMDk0OTI4YTA4Mjk1ZjQuMWY5YjQxZjkwZTllNDQxMS5jYzI5NjQ1MjcyOWQwOGVlCiAgICAgMGY4MGYxN2ZhNDlkNmQ4OC44ZmQ1ZDAzMTk2NGM4OWJhLjkzNjdlZmIwZGE3NjU5MDAuNzZiZDBhNzk1MGUyMDhhMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwZmZmZjAwMDAwMDAwLjAwMDAwMDAwZmZmZmZmZmYKKyAgICBkYWUwZWI2NzdiOGZhYjJiLjJmODIzZDkwZDRiOTQxMmIuY2VhNTMwOGQ2OGQ1NzA1YS4xOWY5NDZjNGExNTRhOTY3CiAgICAgNjk5ZjMyOTIzNzMyNDM4MC5jYzA5NDkyOGEwODI5NWY0LjFmOWI0MWY5MGU5ZTQ0MTEuY2MyOTY0NTI3MjlkMDhlZQogICAgIGViOWI1ZTkwNjA0YTYxZTMKIAotVlBBQ0tVU0RXXzEyOChyZWcpCitWTU9WTlRQRF8yNTYocmVnKQogICBiZWZvcmUKICAgICBkMjk5MzJlODA3ZTZlZmYyLjlhODc0NGVlZjU5MWYyYjQuYzRiOGYxNjY5NzM1YzFjMC42NDE1OWVkZmU4ZGQ5MDUwCiAgICAgZGQ3MGRiYzcwMmZkZWZjNi40NzY0OWM2NWQwYjg3NGYzLjcxZDkzMGI0NTQ1ZDAxM2MuNzdkZWMzMmIxMTlmMTE0NApAQCAtMzkyMTAsMTIgKzM5MjEwLDEyIEBACiAgICAgY2ZkOTljY2M2NWNlMzQ2Zi44OTMyMGU1OTRmOTBlMDQwLjVlYTQ2MzM0OTIzZWFiZjMuN2I5MDU3YTVjMWRhYTFmOQogICAgIDIzMTFiZGFjODE2YTI4MTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmMDAwMC5mZmZmZmZmZmZmZmZmZmZmCisgICAgZDI5OTMyZTgwN2U2ZWZmMi45YTg3NDRlZWY1OTFmMmI0LmM0YjhmMTY2OTczNWMxYzAuNjQxNTllZGZlOGRkOTA1MAogICAgIGRkNzBkYmM3MDJmZGVmYzYuNDc2NDljNjVkMGI4NzRmMy43MWQ5MzBiNDU0NWQwMTNjLjc3ZGVjMzJiMTE5ZjExNDQKICAgICA2ODZkNTU5YWVkMWM5YzBjLjRkMDRiNmU1ZTRiNDg1NjguMzFiOTAyODA3NDg3OTAxNC4zNWMzMmRjOWE1ZWY4MzE4CiAgICAgY2ZkOTljY2M2NWNlMzQ2Zi44OTMyMGU1OTRmOTBlMDQwLjVlYTQ2MzM0OTIzZWFiZjMuN2I5MDU3YTVjMWRhYTFmOQogICAgIDIzMTFiZGFjODE2YTI4MTMKLVZQQUNLVVNEV18xMjgobWVtKQorVk1PVk5UUERfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgMGExMmRiYzhmZmFlZDQ5MS42ZTAzYWNjODA1YTBmMTljLmQ1YjkyMWFjMmE1OTQyYTcuNTVlNjRmM2U0YTBlOGU4NgogICAgIDBjNWYyZGU3NWFhZjYxYTAuYTEzNjgyZmM2YTFjMTAzZi4wZTY2NmFjYzkzMWE2N2M4LjczY2JjMzA5M2E4NDc0NzgKQEAgLTM5MjIzLDEzICszOTIyMywxMyBAQAogICAgIGQyMGM1ZmRhMTExZDBjMWYuMzJlNTZkYjlmMTQ4NjI5NC5iODYyOGUyMTdlYjRlOGVhLjkwYWMzMDkyMmI4ZjNjMmIKICAgICA0NzQyMjEyODY2M2Q5NjQ0CiAgIGFmdGVyCi0gICAgMGExMmRiYzhmZmFlZDQ5MS42ZTAzYWNjODA1YTBmMTljLmQ1YjkyMWFjMmE1OTQyYTcuNTVlNjRmM2U0YTBlOGU4NgorICAgIGQyMGM1ZmRhMTExZDBjMWYuMzJlNTZkYjlmMTQ4NjI5NC5iODYyOGUyMTdlYjRlOGVhLjkwYWMzMDkyMmI4ZjNjMmIKICAgICAwYzVmMmRlNzVhYWY2MWEwLmExMzY4MmZjNmExYzEwM2YuMGU2NjZhY2M5MzFhNjdjOC43M2NiYzMwOTNhODQ3NDc4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDBmZmZmZmZmZmZmZmYuZmZmZjAwMDBmZmZmZmZmZgorICAgIDA2YzMzMGYzYWM3YjhhNmIuYzNiZDE5ZDMzMGQxY2MwMy4xMDA1NjVhNGE2ZGYwYWNmLjEyOWViYTAxZmIyYjlhNzYKICAgICBkMjBjNWZkYTExMWQwYzFmLjMyZTU2ZGI5ZjE0ODYyOTQuYjg2MjhlMjE3ZWI0ZThlYS45MGFjMzA5MjJiOGYzYzJiCiAgICAgNDc0MjIxMjg2NjNkOTY0NAogCi1WUE1PVlpYQlFfMTI4KHJlZykKK1ZNT1ZOVFBTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDk0YWE4YTJmNDdjMGUzNmQuNGQwNDM2ODdhNmEyYTNlOC40OWZhN2IxYTRjMGYwZWEwLmUwNDk2MjJkMzdhNmJkNDIKICAgICBkMzMwNjUxMzZhYTQ2MDUxLjUzNzgzMWU2ODYxNTBhZjEuNjQ0ODNkNjNkYWIxMGNkMS42NTg2NWJiNWVlYzE0NTA2CkBAIC0zOTIzOCwxMSArMzkyMzgsMTEgQEAKICAgICBiYTM3MDY2ZjFjNzk2NDg4CiAgIGFmdGVyCiAgICAgOTRhYThhMmY0N2MwZTM2ZC40ZDA0MzY4N2E2YTJhM2U4LjQ5ZmE3YjFhNGMwZjBlYTAuZTA0OTYyMmQzN2E2YmQ0MgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDNiLjAwMDAwMDAwMDAwMDAwNjAKKyAgICBkMzMwNjUxMzZhYTQ2MDUxLjUzNzgzMWU2ODYxNTBhZjEuNjQ0ODNkNjNkYWIxMGNkMS42NTg2NWJiNWVlYzE0NTA2CiAgICAgNjEyMmIwNDA2Yzc2NDk5ZC5jMDM0Y2RlM2NkODJmZjY3LmRlMWJiMWZlM2FiYjk3ZDMuMjNlNGY3YTZiZjBmM2I2MAogICAgIDk4Y2I2NjIzZThjMWQ5ZmMuNzAwNDg0NmE5OWY1M2M3NS4xNWJmZDI1ODA1YjhlYzUzLmY2MzBiMWVhYzU5ZTVjN2MKICAgICBiYTM3MDY2ZjFjNzk2NDg4Ci1WUE1PVlpYQlFfMTI4KG1lbSkKK1ZNT1ZOVFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDRiYzM3MDFmZTFhZDBmYWQuZDU3Njg0Mjc3YjExNGUxYi4zZmIzZDQ2NzAzN2I3ZDQ4LjY0N2Y5ZGRlZDkzNDQ3ZmQKICAgICA4NWEwNmRlODJmNDUxODFhLjc0NzAwNGI3YzFmM2UyYTYuMDkwZjM4YzYyOTIwODAwYy4yNmE5MGNmYTUyYmJlNDdjCkBAIC0zOTI1MCwxMyArMzkyNTAsMTMgQEAKICAgICA2NDgyMGQ3MmQ4ZDIzNjc2LjQ4ODExZjMwZDM5YjU5YWUuZmVmOTJkNWIxOGYzYjYxNS43ODY2Y2JhOWEwMWNkMmFjCiAgICAgYmU5MjEyMTNhZTBlOWNiNAogICBhZnRlcgotICAgIDRiYzM3MDFmZTFhZDBmYWQuZDU3Njg0Mjc3YjExNGUxYi4zZmIzZDQ2NzAzN2I3ZDQ4LjY0N2Y5ZGRlZDkzNDQ3ZmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDA0Ny4wMDAwMDAwMDAwMDAwMGZkCisgICAgNGJjMzcwMWZlMWFkMGZhZC5kNTc2ODQyNzdiMTE0ZTFiLmZlZjkyZDViMThmM2I2MTUuNzg2NmNiYTlhMDFjZDJhYworICAgIDg1YTA2ZGU4MmY0NTE4MWEuNzQ3MDA0YjdjMWYzZTJhNi4wOTBmMzhjNjI5MjA4MDBjLjI2YTkwY2ZhNTJiYmU0N2MKICAgICA0NDljNzhiNTIzNGQzY2Y5LmQxMDVlNDQxNTRmMmQxNDguYWFlMjJkNzMyN2VlZmZlYy5iOTg3MWQxYTBiZGFmZTdkCiAgICAgNjQ4MjBkNzJkOGQyMzY3Ni40ODgxMWYzMGQzOWI1OWFlLmZlZjkyZDViMThmM2I2MTUuNzg2NmNiYTlhMDFjZDJhYwogICAgIGJlOTIxMjEzYWUwZTljYjQKIAotVlBNT1ZaWEJRXzEyOChyZWcpCitWTU9WTlRQU18xMjgocmVnKQogICBiZWZvcmUKICAgICBlOTU2ZWVjNGQxM2I5NzQyLmMxMWRhOTBiNmJkZmM0YmYuMzUzMGIyZjBkNzc4YjQ4My5lMTIwYjY2ODE4M2E2M2IyCiAgICAgNTMwMDVjMjhhNDJmMDAwMS4zNzNhYzY2Y2Y3ODBhMGZkLmY0NWU5N2VkZmYxNzFlNzQuMmYyMzQzODg0NGQwYzBmMApAQCAtMzkyNjUsMTEgKzM5MjY1LDExIEBACiAgICAgMzI0YWRjOGNlNWRmNTQyNgogICBhZnRlcgogICAgIGU5NTZlZWM0ZDEzYjk3NDIuYzExZGE5MGI2YmRmYzRiZi4zNTMwYjJmMGQ3NzhiNDgzLmUxMjBiNjY4MTgzYTYzYjIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDA4YS4wMDAwMDAwMDAwMDAwMGZiCisgICAgNTMwMDVjMjhhNDJmMDAwMS4zNzNhYzY2Y2Y3ODBhMGZkLmY0NWU5N2VkZmYxNzFlNzQuMmYyMzQzODg0NGQwYzBmMAogICAgIDU5ZGE1N2FiYzM3NzEzOWUuYTFhNWUyODI5OWMyODc1Zi5lMTU2Y2M5M2U0MDRkNTJkLmM0Y2Q1MWE2YjhjMDhhZmIKICAgICA1ODMyZGJiOWNiOWUwY2M0LmRkMmE3ODM3NmNiMDM0MGYuNTg2NjRjNGUyNGNhMTM1OS43YmVjNWFhZThmMTY3ZGZlCiAgICAgMzI0YWRjOGNlNWRmNTQyNgotVlBNT1ZaWEJRXzEyOChtZW0pCitWTU9WTlRQU18xMjgobWVtKQogICBiZWZvcmUKICAgICBjNGI0NTIyY2Q3MjZjYzllLmFhNTJlNGJmNTgzMDI2MjAuYzY5NTA0Nzg4ZDU2NjQzOS5iNWQ4MTM4YTViZjUxNWE1CiAgICAgMGRmNjM4N2E4MGY4YTE5My5hZDg3NmUyNzA0YmE5ZTVlLjM4YjEwMzMyMTdjMWQzMGEuNTRmOTFkYjQyNDExMTdiYwpAQCAtMzkyNzcsMTMgKzM5Mjc3LDEzIEBACiAgICAgMzMzMjQ1ZDA2OTY5NTFhMy4zMTVmZjdkMTJmZTM5NzJlLjI2MzA0N2JkZDcxMzVkNTAuYzc3N2ViN2VkZTRlMDlmZQogICAgIDU0NmRhN2Y3MDY4NzcyODAKICAgYWZ0ZXIKLSAgICBjNGI0NTIyY2Q3MjZjYzllLmFhNTJlNGJmNTgzMDI2MjAuYzY5NTA0Nzg4ZDU2NjQzOS5iNWQ4MTM4YTViZjUxNWE1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMTUuMDAwMDAwMDAwMDAwMDBhNQorICAgIGM0YjQ1MjJjZDcyNmNjOWUuYWE1MmU0YmY1ODMwMjYyMC4yNjMwNDdiZGQ3MTM1ZDUwLmM3NzdlYjdlZGU0ZTA5ZmUKKyAgICAwZGY2Mzg3YTgwZjhhMTkzLmFkODc2ZTI3MDRiYTllNWUuMzhiMTAzMzIxN2MxZDMwYS41NGY5MWRiNDI0MTExN2JjCiAgICAgZThkYzBhNjJmZDVmOGYzMS5iYjFjNzY1ZjZlYzdiMDI5LjBlNGNmMDUwMjZmYzNkYWUuOTAxNTY3MzYxY2FiNTQ0YgogICAgIDMzMzI0NWQwNjk2OTUxYTMuMzE1ZmY3ZDEyZmUzOTcyZS4yNjMwNDdiZGQ3MTM1ZDUwLmM3NzdlYjdlZGU0ZTA5ZmUKICAgICA1NDZkYTdmNzA2ODc3MjgwCiAKLVZQTU9WWlhCUV8xMjgocmVnKQorVk1PVk5UUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOTM0MTk3MGMzMWUxY2I3ZS5jOWMzNjRiMGUxMjJhNDE1LjZiOWFlZGViZTY5YjkxMTguNWIyYTg0Njc0NjEzZjExZAogICAgIGRmNDBiNTJiZmJlODRmYTMuODU1ZGUzZWY4MDk0NDRiNS5jNjFiNTQxODJjN2FkNzk1Ljg4MDYyMzM5OGUwN2IyNDEKQEAgLTM5MjkyLDExICszOTI5MiwxMSBAQAogICAgIDdmZGQyN2Q4OTYxNTY4NmIKICAgYWZ0ZXIKICAgICA5MzQxOTcwYzMxZTFjYjdlLmM5YzM2NGIwZTEyMmE0MTUuNmI5YWVkZWJlNjliOTExOC41YjJhODQ2NzQ2MTNmMTFkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwNWYuMDAwMDAwMDAwMDAwMDBlNworICAgIGRmNDBiNTJiZmJlODRmYTMuODU1ZGUzZWY4MDk0NDRiNS5jNjFiNTQxODJjN2FkNzk1Ljg4MDYyMzM5OGUwN2IyNDEKICAgICA5NmI2ZmZiZmZlMjgzYjljLjQ1Y2EzZTc3NjNjZGVjYWQuOWMyYzI5YzQ5ZjBjYTg0ZS44YjkwYTExZmNiZmI1ZmU3CiAgICAgMTNlZjcwMzRkOTJlY2IxNC5lM2Q3ZjEzNmE1ZDk1OTI5LjRhMWE2NzViZGJkZTNlZjEuM2U5NDc5MDUxYWZjYjIzYgogICAgIDdmZGQyN2Q4OTYxNTY4NmIKLVZQTU9WWlhCUV8xMjgobWVtKQorVk1PVk5UUFNfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjgzODI3ODI1YzUzM2RhMS5iMTM3MDRmNjI2ODYzYWI4LjNkNTA3OTE3NjJjMzQ3NTYuMmMzMTBhNDk3YjdiZDcyYQogICAgIDE3NzJmNmYwODdjMGVjMDkuY2VkYWI3NzI4MWJhYzUzNC4yZDAxNTEwNmI3OTc3MjYwLjllYmMwZWZhMWM2ZmFjYTUKQEAgLTM5MzA0LDEzICszOTMwNCwxMyBAQAogICAgIDMzYWRlZGM5N2U1ZGNiMjIuZjE1ZjZiNDNkM2ViMWU2Mi40MzNhZTFiZTk4MmU2ZGI5LmEyNjIyYTU2Y2U4ZTAxMGUKICAgICBlYzE0M2FkODE4ZDFmODU1CiAgIGFmdGVyCi0gICAgMjgzODI3ODI1YzUzM2RhMS5iMTM3MDRmNjI2ODYzYWI4LjNkNTA3OTE3NjJjMzQ3NTYuMmMzMTBhNDk3YjdiZDcyYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMGQ3LjAwMDAwMDAwMDAwMDAwMmEKKyAgICAyODM4Mjc4MjVjNTMzZGExLmIxMzcwNGY2MjY4NjNhYjguNDMzYWUxYmU5ODJlNmRiOS5hMjYyMmE1NmNlOGUwMTBlCisgICAgMTc3MmY2ZjA4N2MwZWMwOS5jZWRhYjc3MjgxYmFjNTM0LjJkMDE1MTA2Yjc5NzcyNjAuOWViYzBlZmExYzZmYWNhNQogICAgIDI2NTUwZTBmMzQ2YjMzZDAuYzQyMzg2MTI4NzU4YTgzMy45MWI1ZjVlZmMwNjE5NTcyLmZjMDk2ZmRhNTk0N2ZjMGQKICAgICAzM2FkZWRjOTdlNWRjYjIyLmYxNWY2YjQzZDNlYjFlNjIuNDMzYWUxYmU5ODJlNmRiOS5hMjYyMmE1NmNlOGUwMTBlCiAgICAgZWMxNDNhZDgxOGQxZjg1NQogCi1WUE1PVlpYV1FfMTI4KHJlZykKK1ZNT1ZOVFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIDM2NmI5YmNlZDM5YTFkOGUuMTg0ODBlMGM4MmE0NzMyYS5hZmRhNjQ3MjAyMDA2NTZkLjIwNWE5MjVmNWIwOWI2NjAKICAgICBkY2IzNDlhMjlhNzhhYjY0LmIyZjFlZWMzNWI0YmU1MTUuNWNlMDZkMDlhZjIyYjdmZi4wNWUyODNiZTI2ZmYyYjk0CkBAIC0zOTMxOSwxMSArMzkzMTksMTEgQEAKICAgICA3M2UxYWU4OGNjZjVmMDM0CiAgIGFmdGVyCiAgICAgMzY2YjliY2VkMzlhMWQ4ZS4xODQ4MGUwYzgyYTQ3MzJhLmFmZGE2NDcyMDIwMDY1NmQuMjA1YTkyNWY1YjA5YjY2MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAxNTFiLjAwMDAwMDAwMDAwMDg5ODEKKyAgICBkY2IzNDlhMjlhNzhhYjY0LmIyZjFlZWMzNWI0YmU1MTUuNWNlMDZkMDlhZjIyYjdmZi4wNWUyODNiZTI2ZmYyYjk0CiAgICAgM2EzODQxYzIwOWY0ZGY4NC5kZDczMDdkYTI2NWZkZTBlLjUyYmQ4MDc2NzZkZDUxYzUuY2M5ZTMwYzcxNTFiODk4MQogICAgIGFjNDU3ZDk5YmQ5Y2Y1OWEuNzY5YmQ3M2RmZWVhMWE0Mi5lZmJkOWIyNGY0YmU2ZTZhLjUyNWExNTY3NDM2OThjNTIKICAgICA3M2UxYWU4OGNjZjVmMDM0Ci1WUE1PVlpYV1FfMTI4KG1lbSkKK1ZNT1ZOVFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIDBjMDE3ODE4Y2RjYzcwNTMuOGUyOGZiOTM1MWZiMjg1MS41NzM1ZDlkODAwZmI1NWRkLjhkMmJiODdmYzU1MDRiOWIKICAgICBmNzg0ZWUwMjYxZjljOWRhLjNjMmJiNjFjNjI5ZGI2NTYuNWQwZDg5OTc0NzliNGEwYS44OTU1ZDVmMzg0MWYyNDAzCkBAIC0zOTMzMSwxMyArMzkzMzEsMTMgQEAKICAgICAzNmU2Y2U5M2I0ODdmNWQxLjZiYzRkNDhiNjlkZGNkZjguNDhhN2U1MzExNWJkNTRjZC4wYzA4ZmRkNjNlYTZiOTJiCiAgICAgNGEyYTAwMWQ3MDc1ZWQ0MgogICBhZnRlcgotICAgIDBjMDE3ODE4Y2RjYzcwNTMuOGUyOGZiOTM1MWZiMjg1MS41NzM1ZDlkODAwZmI1NWRkLjhkMmJiODdmYzU1MDRiOWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwYzU1MC4wMDAwMDAwMDAwMDA0YjliCisgICAgMzZlNmNlOTNiNDg3ZjVkMS42YmM0ZDQ4YjY5ZGRjZGY4LjQ4YTdlNTMxMTViZDU0Y2QuMGMwOGZkZDYzZWE2YjkyYgorICAgIGY3ODRlZTAyNjFmOWM5ZGEuM2MyYmI2MWM2MjlkYjY1Ni41ZDBkODk5NzQ3OWI0YTBhLjg5NTVkNWYzODQxZjI0MDMKICAgICAxMTM3OGMzMWE1ODliN2Y1LjExOWJhYmEwOGIwZmQ5NTQuNjRlZjY0NjZlZmQ4YjZmNi40MDg1ZWVlY2NlYjgzNTRmCiAgICAgMzZlNmNlOTNiNDg3ZjVkMS42YmM0ZDQ4YjY5ZGRjZGY4LjQ4YTdlNTMxMTViZDU0Y2QuMGMwOGZkZDYzZWE2YjkyYgogICAgIDRhMmEwMDFkNzA3NWVkNDIKIAotVlBNT1ZaWFdRXzEyOChyZWcpCitWTU9WTlRQU18yNTYocmVnKQogICBiZWZvcmUKICAgICA1NjM2ZjIyZTAxYjIwZDQxLjQyNWQzMTEzYWJmZjQxOWEuYTVmMjJmNGE5NzkxZDBlZS5lNjAwODdlNWQ1NTdlMmJhCiAgICAgOGM3YWNmNzM4Y2U4NTRkMy4xMTY4MmY5ZGE1ZmU1NTdjLjFhNzFiNzQ3YjJiOTFjZTEuMThjN2M5NmM0OWIxMWFlOQpAQCAtMzkzNDYsMTEgKzM5MzQ2LDExIEBACiAgICAgYzRhODE5MzMwMWI5MWFjMAogICBhZnRlcgogICAgIDU2MzZmMjJlMDFiMjBkNDEuNDI1ZDMxMTNhYmZmNDE5YS5hNWYyMmY0YTk3OTFkMGVlLmU2MDA4N2U1ZDU1N2UyYmEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwOTBkNy4wMDAwMDAwMDAwMDBiOTg3CisgICAgOGM3YWNmNzM4Y2U4NTRkMy4xMTY4MmY5ZGE1ZmU1NTdjLjFhNzFiNzQ3YjJiOTFjZTEuMThjN2M5NmM0OWIxMWFlOQogICAgIDQ5NDA5MzVhYWVhM2ZmYTUuN2ZkMzQ2MWRiZThlZWRhMi4yODhjNjlmMDU1ZTBlZTdlLmJiYzkyNGI0OTBkN2I5ODcKICAgICBlN2Q2M2I0ZDAzNzA0YTYzLjY4NjlmMTgwMTNiZWM3MzguMmE5MDNmYWYxYzkzODE3MC5hYmQwMTVhOGM0ZDY3YWMwCiAgICAgYzRhODE5MzMwMWI5MWFjMAotVlBNT1ZaWFdRXzEyOChtZW0pCitWTU9WTlRQU18yNTYobWVtKQogICBiZWZvcmUKICAgICBlMjFmYWI0MzY0OGM1NWIxLmMzODZjMmJhMjVkYTcxYjguYThmN2FkYjBjMDk3OWQ2Yi43YmNhMzdmMmE0NWQxMjY0CiAgICAgZTAwMDQ3YzMwODViZTdjMi4zOTlkMjQwY2IzNmRhZjUxLjFiNDlmNDlhZTAyNzJiNjcuNzk4NDRjMjQ4OWNhZGQwNQpAQCAtMzkzNTgsMTMgKzM5MzU4LDEzIEBACiAgICAgZjEyZThmYzM4NTIwZmVlZi42MzJmNmEwZjdkNDA2M2ZkLjBhNjkxODRlZWE5YTYzNjkuZThhYWJkMDVkN2JlMTEwMQogICAgIDExYWYxMjhjNzk1ZWYxYjMKICAgYWZ0ZXIKLSAgICBlMjFmYWI0MzY0OGM1NWIxLmMzODZjMmJhMjVkYTcxYjguYThmN2FkYjBjMDk3OWQ2Yi43YmNhMzdmMmE0NWQxMjY0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMGE0NWQuMDAwMDAwMDAwMDAwMTI2NAorICAgIGYxMmU4ZmMzODUyMGZlZWYuNjMyZjZhMGY3ZDQwNjNmZC4wYTY5MTg0ZWVhOWE2MzY5LmU4YWFiZDA1ZDdiZTExMDEKKyAgICBlMDAwNDdjMzA4NWJlN2MyLjM5OWQyNDBjYjM2ZGFmNTEuMWI0OWY0OWFlMDI3MmI2Ny43OTg0NGMyNDg5Y2FkZDA1CiAgICAgOWMxNjZhOWYwYTMzOGIxZC5hNTY2NWRhZjQ2YjY0MWQ5LjlkMmI0NDJiOTA3YTJmNTguN2UwYTdhYjE2NjY2MWUwMAogICAgIGYxMmU4ZmMzODUyMGZlZWYuNjMyZjZhMGY3ZDQwNjNmZC4wYTY5MTg0ZWVhOWE2MzY5LmU4YWFiZDA1ZDdiZTExMDEKICAgICAxMWFmMTI4Yzc5NWVmMWIzCiAKLVZQTU9WWlhXUV8xMjgocmVnKQorVk1PVk5UUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgNTc2NDc0YjJlOGQwZmJjMy5iYjE0MzExYzk2MmNmYzYzLmNmNDM0NTk4ZjE5ODUxNjkuM2VjZmVjZWUwZDk1ODRjNgogICAgIDE0MTZkZmUzYmZhMjZhZGQuZDY5NGNmOTQ1ODY1NDFhNi40NWVkZWNiNjQwNDk0NmM4LjE1MjgzZGY5MTM3NzRlOWMKQEAgLTM5MzczLDExICszOTM3MywxMSBAQAogICAgIDAzZTRmMGNlOTFmOWY3YWEKICAgYWZ0ZXIKICAgICA1NzY0NzRiMmU4ZDBmYmMzLmJiMTQzMTFjOTYyY2ZjNjMuY2Y0MzQ1OThmMTk4NTE2OS4zZWNmZWNlZTBkOTU4NGM2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDE4NGEuMDAwMDAwMDAwMDAwN2MxNworICAgIDE0MTZkZmUzYmZhMjZhZGQuZDY5NGNmOTQ1ODY1NDFhNi40NWVkZWNiNjQwNDk0NmM4LjE1MjgzZGY5MTM3NzRlOWMKICAgICBhNjExNGY4YjlhNjA3YmFjLjFlN2FlMjE5ZTdkNzg4ZTQuMjE3YTVhZDYwNmRmN2ZjNy42YTQyODY1YTE4NGE3YzE3CiAgICAgNjdhMWMwMTcxNjk0NmFkYy42ZTkxZTc5NTYwOGM4ZTQ4LmJlMzY4YzYyZGVlNjM3MTEuMWJlNzQzZmQzOTFjY2I2MgogICAgIDAzZTRmMGNlOTFmOWY3YWEKLVZQTU9WWlhXUV8xMjgobWVtKQorVk1PVk5UUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgZmQwNTA5YjkzZGViYmMxYi5iNDEyMmZmMWNlY2M3MzFiLmE0YTc1YmY2ZGY5MjBmZmYuN2E2ZDdjYzg2NWViYWM1MwogICAgIGU3MTUwYmFiNTgwMGQ1ZTAuZTliMDk3ODc1Zjk0ZDIxMy45Yjg2YjkyNzdmZjVjNjM0LmIwNmEyODcyMzY3OTE4MzkKQEAgLTM5Mzg1LDEzICszOTM4NSwxMyBAQAogICAgIGY3MzZiNjUwNGRjMmY2MTguN2NhMTQyOTQ3YTAwODBkZi4zYmQyMjRhODkzZmZjOWNhLmZhZWFhMTQ3Mjc2MmM3OWYKICAgICBjNTA1Njc0ODdmZDQ4Mzc3CiAgIGFmdGVyCi0gICAgZmQwNTA5YjkzZGViYmMxYi5iNDEyMmZmMWNlY2M3MzFiLmE0YTc1YmY2ZGY5MjBmZmYuN2E2ZDdjYzg2NWViYWM1MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDA2NWViLjAwMDAwMDAwMDAwMGFjNTMKKyAgICBmNzM2YjY1MDRkYzJmNjE4LjdjYTE0Mjk0N2EwMDgwZGYuM2JkMjI0YTg5M2ZmYzljYS5mYWVhYTE0NzI3NjJjNzlmCisgICAgZTcxNTBiYWI1ODAwZDVlMC5lOWIwOTc4NzVmOTRkMjEzLjliODZiOTI3N2ZmNWM2MzQuYjA2YTI4NzIzNjc5MTgzOQogICAgIDljZTI3MDhlZmY0NGZmMjYuNjNjNmY0NDQ2NDc2YzI3MC4yZWZiN2QxMzVjYzA3MDE0LmJjN2I4YmNlZWQxZGI4NmUKICAgICBmNzM2YjY1MDRkYzJmNjE4LjdjYTE0Mjk0N2EwMDgwZGYuM2JkMjI0YTg5M2ZmYzljYS5mYWVhYTE0NzI3NjJjNzlmCiAgICAgYzUwNTY3NDg3ZmQ0ODM3NwogCi1WUE1PVlpYRFFfMTI4KHJlZykKK1ZQQUNLU1NXQl8xMjgocmVnKQogICBiZWZvcmUKICAgICA3YjE2ZDczZjkyZmYyNmEzLmQ2ZGU1OWRiNWY4Njc1ZTMuOTE4ZTdlZTMzY2JlNDcwYy45Y2Q3MjhkMTQwYmU4ZDg0CiAgICAgNzc2YWVmOThmYzcwZWNjZS4xM2E2ZDMxZDUwOWMzOWIyLmZlZDZhMzlkNDYzYTU1YTIuMmZkNjA3N2E3ZTBhNzc2YgpAQCAtMzkzOTksMTIgKzM5Mzk5LDEyIEBACiAgICAgYjAwYTA1MWI0MjUyZDVkNC4xYmM2NDE3MjQxZjA4MDBmLjUwYWY5ODAyYTVhMjMxYmIuNTdmMDQzZmQxZTc2YjA3NgogICAgIGE0YTU5OWFlYjhhZjc2ZjIKICAgYWZ0ZXIKLSAgICA3YjE2ZDczZjkyZmYyNmEzLmQ2ZGU1OWRiNWY4Njc1ZTMuOTE4ZTdlZTMzY2JlNDcwYy45Y2Q3MjhkMTQwYmU4ZDg0Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwY2U5YTNjOTAuMDAwMDAwMDA2OWVlNDRhZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZjgwN2Y4MDgwN2Y3ZjdmLjgwODA3ZjdmN2Y3ZjdmN2YKKyAgICA3NzZhZWY5OGZjNzBlY2NlLjEzYTZkMzFkNTA5YzM5YjIuZmVkNmEzOWQ0NjNhNTVhMi4yZmQ2MDc3YTdlMGE3NzZiCiAgICAgMTQ0Y2FhYmQ1OGIyMTNhNS44YzVhYTIwMDNkMTFmZWIyLjFmYzhhZDJlMzYwMmU0NGUuY2U5YTNjOTA2OWVlNDRhZAogICAgIGIwMGEwNTFiNDI1MmQ1ZDQuMWJjNjQxNzI0MWYwODAwZi41MGFmOTgwMmE1YTIzMWJiLjU3ZjA0M2ZkMWU3NmIwNzYKICAgICBhNGE1OTlhZWI4YWY3NmYyCi1WUE1PVlpYRFFfMTI4KG1lbSkKK1ZQQUNLU1NXQl8xMjgobWVtKQogICBiZWZvcmUKICAgICA5MzgzYjk5MDU0YTQ1MzRjLmE1ZWVmYTFlNTdkYjZmMDYuOWViNjJjNWU3ODQ1N2FmNC5lZGQ2NjA4NTMxYTU3Nzk2CiAgICAgZmU1NjFmOGQwZDYyMDNiMS41MTQ2ODczMzMyZDkxY2U4LmVmZjVkZmIwZmYxZGE5OGUuNTM4YjAyMjQ3Njk3ZjM4YgpAQCAtMzk0MTMsMTIgKzM5NDEzLDEyIEBACiAgICAgYzllZGQ2ZDlhZTgxMDJiYQogICBhZnRlcgogICAgIDkzODNiOTkwNTRhNDUzNGMuYTVlZWZhMWU1N2RiNmYwNi45ZWI2MmM1ZTc4NDU3YWY0LmVkZDY2MDg1MzFhNTc3OTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBlZGQ2NjA4NS4wMDAwMDAwMDMxYTU3Nzk2Ci0gICAgYzJlYzQ3OTMwMGY0NDI0Yy4wZTVjYTdjNDcwZDkxYTI2LmViNTBkNzU0ZjI4M2M5MDkuZGMxODc5NDkwZjA0ZTE0NQorICAgIGZlNTYxZjhkMGQ2MjAzYjEuNTE0Njg3MzMzMmQ5MWNlOC5lZmY1ZGZiMGZmMWRhOThlLjUzOGIwMjI0NzY5N2YzOGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODA3ZjdmN2Y4MDdmN2Y3Zi44MDgwODA4MDdmN2Y3ZjgwCiAgICAgYmMxMGFkOGQ0ODY2Y2I0YS4zYTdkNTYzZmFjNjZhMzZiLjZmOTM4ZTM3NmI4NDk1OTAuZTRjYWMxNjI5ODc5N2Q3MQogICAgIGM5ZWRkNmQ5YWU4MTAyYmEKIAotVlBNT1ZaWERRXzEyOChyZWcpCitWUEFDS1NTV0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZTZjZGI1MWNlY2E4YWRjZC5jNjhkY2U2NzAyYzQ1YmQ2LjJmZjQ5MTBmODIwY2YzNjMuNTU4YTgyNDM4OTJiY2E0ZgogICAgIDk3YjU1ODk2ZWY3YmJhNTUuYmQzMDI1MGQ0OTFiYWUxZC40YTBmNTI5ZjhmNTg0OGJjLjdhMDEyZjY1NjY4NDI0NzQKQEAgLTM5NDI2LDEyICszOTQyNiwxMiBAQAogICAgIDI1ZDFlMGRmYjI1M2U5NzcuZTMxODY1NmRlZmUyOGI4Yi42MzVkNWJiNGJkMGZlYzNiLmYyOWVhMDljY2U3ZDM2OWEKICAgICBmYzVkNWM4OTkxMzU2NmY0CiAgIGFmdGVyCi0gICAgZTZjZGI1MWNlY2E4YWRjZC5jNjhkY2U2NzAyYzQ1YmQ2LjJmZjQ5MTBmODIwY2YzNjMuNTU4YTgyNDM4OTJiY2E0ZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGJiYzQwZjhhLjAwMDAwMDAwMWU5YjVmMjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODA4MDdmODA4MDdmN2Y3Zi43ZjdmODA3ZjdmN2Y3ZjdmCisgICAgOTdiNTU4OTZlZjdiYmE1NS5iZDMwMjUwZDQ5MWJhZTFkLjRhMGY1MjlmOGY1ODQ4YmMuN2EwMTJmNjU2Njg0MjQ3NAogICAgIDM4ZjNiZGIzNTI4NTY1MDAuN2VjNTJlNmIzOTc2N2Y0Yi5lODE5OTc1ZDZmZDVkYzIwLmJiYzQwZjhhMWU5YjVmMjgKICAgICAyNWQxZTBkZmIyNTNlOTc3LmUzMTg2NTZkZWZlMjhiOGIuNjM1ZDViYjRiZDBmZWMzYi5mMjllYTA5Y2NlN2QzNjlhCiAgICAgZmM1ZDVjODk5MTM1NjZmNAotVlBNT1ZaWERRXzEyOChtZW0pCitWUEFDS1NTV0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjVjYmMyM2M4NGQwYWI2Mi5iYTljYmI4NmFhNzA4MzY5LmM5ZjU0NmZmODc2YThlMGEuMTgyODlhMTAxNjkzYjNiYQogICAgIGY5YjU0YmExYzI1OWMwMTIuNTJhMDRjMTRkNzY4NmU4MC4wYzI4NGUwZDFjMWE0NGYzLjY0YzY1MWRlMTVlYzZmNDkKQEAgLTM5NDQwLDEyICszOTQ0MCwxMiBAQAogICAgIDYxODkxODI0MTA2ZmFmMGEKICAgYWZ0ZXIKICAgICBiNWNiYzIzYzg0ZDBhYjYyLmJhOWNiYjg2YWE3MDgzNjkuYzlmNTQ2ZmY4NzZhOGUwYS4xODI4OWExMDE2OTNiM2JhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMTgyODlhMTAuMDAwMDAwMDAxNjkzYjNiYQotICAgIGE0ZTc3NGE0NjhkYzYzMmQuNGIyOThkZjZkNGM3ZTg2OC44ODdjZjg4NGNhZmU2ODczLmExODM3Yjg4NTZhNjVhOTMKKyAgICBmOWI1NGJhMWMyNTljMDEyLjUyYTA0YzE0ZDc2ODZlODAuMGMyODRlMGQxYzFhNDRmMy42NGM2NTFkZTE1ZWM2ZjQ5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwN2Y4MDgwN2Y4MDdmODAuN2Y3ZjdmN2Y3ZjdmN2Y3ZgogICAgIDkyMmRiYTMxOTE2NjRlZTIuMDA4MjdjOTYzZTFhMmJjZS4xOWJlYzA0ZWFlMjNiN2I2LjJjYWIxNDdiNzY0ZWIwNDUKICAgICA2MTg5MTgyNDEwNmZhZjBhCiAKLVZQTU9WWlhEUV8xMjgocmVnKQorVlBBQ0tTU1dCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDljNmI4M2VkYzE5NTkxOGYuOWY1Mjk4MzQ1YTAyM2Q1Yi5jY2Y5MTU2MmIwZWQ3NDVlLjliYmIyMjU5ZTQ5NWVkZTcKICAgICAzYTliNTI0NDI0NGQ5MzgwLmE3MjQ4YTk5ZGViY2VlYzQuMGRkODUyYzRjN2NhZmVjMy5lYTNkOWI5MDg2NWVjNjMzCkBAIC0zOTQ1MywxMiArMzk0NTMsMTIgQEAKICAgICAwYTE4MDk0ODczYTBlNjU0LjE4ZmE5YjNhODhiYjgwMTkuNWEwMWFkZmY1MWQ3YzliZi41ZjAyYmYzMTg1MmE0ZmNhCiAgICAgM2RkZTYyNzQxODQ1Nzc2ZQogICBhZnRlcgotICAgIDljNmI4M2VkYzE5NTkxOGYuOWY1Mjk4MzQ1YTAyM2Q1Yi5jY2Y5MTU2MmIwZWQ3NDVlLjliYmIyMjU5ZTQ5NWVkZTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBlMjEwYTZkZS4wMDAwMDAwMGIzOGNmZGM1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmN2Y3ZjdmODA4MDgwODAuN2Y3ZjgwODA4MDgwODA4MAorICAgIDNhOWI1MjQ0MjQ0ZDkzODAuYTcyNDhhOTlkZWJjZWVjNC4wZGQ4NTJjNGM3Y2FmZWMzLmVhM2Q5YjkwODY1ZWM2MzMKICAgICA5NTY2ODA5NGQ2MjJmMTg4Ljg2NmQwZDRkMzlhMTFiNGIuMWU2YzMxMmExZTNmMDdhYS5lMjEwYTZkZWIzOGNmZGM1CiAgICAgMGExODA5NDg3M2EwZTY1NC4xOGZhOWIzYTg4YmI4MDE5LjVhMDFhZGZmNTFkN2M5YmYuNWYwMmJmMzE4NTJhNGZjYQogICAgIDNkZGU2Mjc0MTg0NTc3NmUKLVZQTU9WWlhEUV8xMjgobWVtKQorVlBBQ0tTU1dCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDU4NmYwYjkzODhlODMzZGMuZjVmZGU5Y2U5NTU0YWY4Zi4zOTk3YjI0ZWU3MTlkYjVkLjFmZTNjMmFlZmQxZjgwYWQKICAgICA4YzgyMzc3YmYzMWYzZDQxLmIyNjAxYzkxZGFjOTg4ZTYuYzUxMGNkNzM3MWM0ZTY0MS5jNzVlNmNhNWJlYTI2YTIxCkBAIC0zOTQ2NywxMiArMzk0NjcsMTIgQEAKICAgICBiMDViYzM2ZDkyMDdhODU1CiAgIGFmdGVyCiAgICAgNTg2ZjBiOTM4OGU4MzNkYy5mNWZkZTljZTk1NTRhZjhmLjM5OTdiMjRlZTcxOWRiNWQuMWZlM2MyYWVmZDFmODBhZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDFmZTNjMmFlLjAwMDAwMDAwZmQxZjgwYWQKLSAgICBiNWUzNjExNjcyZjc1MmM4LjlkOGY5ZmZkZGU4Y2FjMDUuOTgzMDY4OTc0MmNhNWVmMS5iMGJkYTg1MDJmZWNjMWM2CisgICAgOGM4MjM3N2JmMzFmM2Q0MS5iMjYwMWM5MWRhYzk4OGU2LmM1MTBjZDczNzFjNGU2NDEuYzc1ZTZjYTViZWEyNmEyMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZjgwODA4MDdmODA4MDgwLjgwODA3ZjgwODA3ZjgwN2YKICAgICBhZTVlMDU1MTIzN2IyZDllLjEyZDQ2ZDdmM2MyNzU5OTcuOGVjNTAwYTU3NzM3ZmY5YS4zNDRlNzExOWVjOGFjMjQ5CiAgICAgYjA1YmMzNmQ5MjA3YTg1NQogCi1WTVBTQURCV18xMjhfMHgwKHJlZykKK1ZQQVZHQl8xMjgocmVnKQogICBiZWZvcmUKICAgICA4MTMxOWFiOGJjZWZiMTk3LjU1YmY5ZjE5MjJiNzhiZWYuNmM3YzgyODE5MTI5Yzk0OS44Mjk5MTA4OTJiMTU4NDY4CiAgICAgMDExY2YyNjcwN2NmMTdiYi44NWQxYWM1ODhhYjgyOGU2LjA5ZDNkYTcwNzgxYjM4YzYuNTI3OTEzMmY3YjcyYWE4NwpAQCAtMzk0ODAsMTIgKzM5NDgwLDEyIEBACiAgICAgODI2MDE3OWQ2ZWE0ZWM1Ny5lZjNjMGJmMDA3MzYwZTc4Ljc5YmU0NWM2NmUwNDA3ZDQuZjI4ZGU4NzE1ZGQ4Yzk2NQogICAgIDdiNTliMWU1MjdmODM5N2QKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE1MzAxMzMwMGE2MDA3Ny4wMGFjMDEzOTAxNDIwMTAyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI3N2NhNjk1ODM1MzhlYzEuOTY1NTRlNTk3ZjY2NmM1NAogICAgIDAxMWNmMjY3MDdjZjE3YmIuODVkMWFjNTg4YWI4MjhlNi4wOWQzZGE3MDc4MWIzOGM2LjUyNzkxMzJmN2I3MmFhODcKICAgICA4ZDY4YzhlNDBlMzIxNjZjLjE5NjJhNmZjNzg4OWMwYWYuNDQyNTcyYjk4ZThiZTRiYi5kOTMxODg4MzgyNWEyZDIxCiAgICAgODI2MDE3OWQ2ZWE0ZWM1Ny5lZjNjMGJmMDA3MzYwZTc4Ljc5YmU0NWM2NmUwNDA3ZDQuZjI4ZGU4NzE1ZGQ4Yzk2NQogICAgIDdiNTliMWU1MjdmODM5N2QKLVZNUFNBREJXXzEyOF8weDAobWVtKQorVlBBVkdCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDRmNjA1ZGNjZmRjNjNhOTYuM2E1MmRiZmRjMmIyZDMyNy5lMjJjNTcxZjUzY2NkMDZiLjA0ZTk0ZjA1YjQxM2RlYmMKICAgICA0OTcwNmExMGZhNGY4OGRiLjEyODgxMTcwYTdlNzA4ODkuY2RmZTA0Nzc3OTU2YmZiNC40MGY0OGNlMWZkNDJhNDFmCkBAIC0zOTQ5NSwxMSArMzk0OTUsMTEgQEAKICAgYWZ0ZXIKICAgICA0ZjYwNWRjY2ZkYzYzYTk2LjNhNTJkYmZkYzJiMmQzMjcuZTIyYzU3MWY1M2NjZDA2Yi4wNGU5NGYwNWI0MTNkZWJjCiAgICAgNDk3MDZhMTBmYTRmODhkYi4xMjg4MTE3MGE3ZTcwODg5LmNkZmUwNDc3Nzk1NmJmYjQuNDBmNDhjZTFmZDQyYTQxZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWIwMDE4MjAwNzMwMWNjLjAwZmQwMThmMDFjYjAxNGYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDg5NTJlNGI2NjkxYzg5MC4yMmVmNmU3M2Q5MmJjMTZlCiAgICAgMjNkNjk1NjNkYmJmZjk5Yi45M2YzYmYzZTkyZjc0YmIyLmZmNzg3NTRmYzE3NzFiZmIuNDBkNTkwMjAwNjM2ZjAwYQogICAgIGJhNDQ0ZjViZmYxMmVlZTgKIAotVk1QU0FEQldfMTI4XzB4MChyZWcpCitWUEFWR0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTdjMjMxZTM2OTNmY2JmMi5iYmM1YWI0YWY3YmY5NTZmLmYzYzAzMDczZDBlYWQxZDEuZmViNzMyYTgxYzI3ZmY1MAogICAgIDcyOWEzMjI0ZTM0YWM1ZDQuZTllYzExM2ZhYWE5NmUxZS5lMzAyMDI2YTBmMzQ5NTMxLjY1MDg0MGQ4YzBmYTAyYWMKQEAgLTM5NTA3LDEyICszOTUwNywxMiBAQAogICAgIDkxOGM4MzgyNzEyN2ZhY2UuN2IxMWJkMDM0NjZjYzVjMy5lMzE0YmE1MWZkZmZjNTY3LmRmMTE0MzcxNTQzZTU0MjgKICAgICBhYTYwMzBiMTdjYzYxYTlmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxZDYwMWFlMDIwZDAyOTYuMDIwYjAxOGQwMGExMDE1YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMTAzMWE3ZDdkNGJiNDU4LjNjMjAyZWQyYzVmYzcxNzQKICAgICA3MjlhMzIyNGUzNGFjNWQ0LmU5ZWMxMTNmYWFhOTZlMWUuZTMwMjAyNmEwZjM0OTUzMS42NTA4NDBkOGMwZmEwMmFjCiAgICAgNjYxYTRmOGIwN2JlMTUzOS44YjE2NDMyZTEwOGEzZmQ3LmJmMDQzMTkwZWE2MmQyN2YuMTIzODFjY2NjOWZlZGYzYgogICAgIDkxOGM4MzgyNzEyN2ZhY2UuN2IxMWJkMDM0NjZjYzVjMy5lMzE0YmE1MWZkZmZjNTY3LmRmMTE0MzcxNTQzZTU0MjgKICAgICBhYTYwMzBiMTdjYzYxYTlmCi1WTVBTQURCV18xMjhfMHgwKG1lbSkKK1ZQQVZHQl8xMjgobWVtKQogICBiZWZvcmUKICAgICA0ZGYwNWY3YTVlYTNmMGNlLjRkM2RjYTc3YmQxMmFlM2YuOTZhN2ZjYWE2ODVkYmMxMS5hYjdjOTgxYWU1OTdhYTk0CiAgICAgYTU4ZjRjYjcxNWUwOTBkZS5mNzc5MjBkNDg5MGE2ZTM3LmI5YTU3YTBmOTE2OWRmZWIuNzM4OWM3NTUzZGI3YmRiMwpAQCAtMzk1MjIsMTEgKzM5NTIyLDExIEBACiAgIGFmdGVyCiAgICAgNGRmMDVmN2E1ZWEzZjBjZS40ZDNkY2E3N2JkMTJhZTNmLjk2YTdmY2FhNjg1ZGJjMTEuYWI3Yzk4MWFlNTk3YWE5NAogICAgIGE1OGY0Y2I3MTVlMDkwZGUuZjc3OTIwZDQ4OTBhNmUzNy5iOWE1N2EwZjkxNjlkZmViLjczODljNzU1M2RiN2JkYjMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEyNjAwOWMwMDdlMDBkYy4wMTM4MDBmMDAxMjAwMGZhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE4YTZiYjVkN2Q2M2NlN2UuOGY4M2IwMzg5MWE3YjRhNAogICAgIGU1MjU1MjNkNzNhYzIxNTguODZjMWVhN2IwYTUyMDE2ZS44MjA5MjhjNDY5ZmY5Y2Y1LjczYzEwOWQ2YjBiZDViNzUKICAgICA2Mjg1MTRmMzAyYmI1ZjcxCiAKLVZNUFNBREJXXzEyOF8weDAocmVnKQorVlBBVkdCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGMyMWQ2MDMzMzQ3MDgxMGUuODRiNTYyNWU1MzUyOGExOS4yMzY2NTY5Y2Y5YmE0ZDA1LmUyMDY1MGViNTBhMmFlN2QKICAgICBlZWQ3ZTkwMmUzNjhmY2Y5LjQ4ODMyMGEzNzg4OGFkNmMuMWRjNWMxZDZkNjVmOTNkMy5iODljYTg4MWFmOGVkYzQxCkBAIC0zOTUzNCwxMiArMzk1MzQsMTIgQEAKICAgICAxYWRjYTNmZDI2NTNmMDY3LmIwMDk5NzQ5MDNkNzEzN2EuOWNlNDg1NDVjYjkyMDRjNy4zOWJlZDdhNzQzNzc3ZjMwCiAgICAgOWNlNGE4MGViMDhiNmJiMgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGRiMDA2ODAwY2QwMDliLjAwZDIwMGFjMDEwNjAwODYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzc3ODc0YjY4YTk3NTNhYy5jZDk5YWE3OWE4YjBlMDU4CiAgICAgZWVkN2U5MDJlMzY4ZmNmOS40ODgzMjBhMzc4ODhhZDZjLjFkYzVjMWQ2ZDY1ZjkzZDMuYjg5Y2E4ODFhZjhlZGM0MQogICAgIDQyZmRhYmNjYWEzMDBkZGQuMGQ1YjA5ZjhmZjViNDc3ZS5kMTJiMjc5NTNkY2UxMjg1LmUxOTVhYjcxYTFkMmUzNmUKICAgICAxYWRjYTNmZDI2NTNmMDY3LmIwMDk5NzQ5MDNkNzEzN2EuOWNlNDg1NDVjYjkyMDRjNy4zOWJlZDdhNzQzNzc3ZjMwCiAgICAgOWNlNGE4MGViMDhiNmJiMgotVk1QU0FEQldfMTI4XzB4MChtZW0pCitWUEFWR0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZTZkMDk4OTQwNTE5NjUyMS5kMWMwY2MwMWYyNWVlMDQzLjBiNTg0ODgzYTAwNmNmOGQuZDgzY2Q1NTIxYzM3YTY0NAogICAgIGYzNTEyNTI0NWQyZTI3YTguYzVmNDIyNDVhYWRjMWExYy5mYjE2OTc5MGYzZjYzNWUzLmUyN2YxNTI4Y2I0YTM0YTkKQEAgLTM5NTQ5LDExICszOTU0OSwxMSBAQAogICBhZnRlcgogICAgIGU2ZDA5ODk0MDUxOTY1MjEuZDFjMGNjMDFmMjVlZTA0My4wYjU4NDg4M2EwMDZjZjhkLmQ4M2NkNTUyMWMzN2E2NDQKICAgICBmMzUxMjUyNDVkMmUyN2E4LmM1ZjQyMjQ1YWFkYzFhMWMuZmIxNjk3OTBmM2Y2MzVlMy5lMjdmMTUyOGNiNGEzNGE5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxYjcwMTNjMDFjODAxYmIuMDE4YTAwNDEwMTBjMDE5OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MzM3NzA4YWNhN2U4MmI4LmRkNWU3NTNkNzQ0MTZkNzcKICAgICBjNjNlMDMxMzg4MWFmNWIxLmQwODA0NTM5NTE2MTVjNzcuMGEwYTAwZDgyOTQ3ZjEwNi5kMGY1NTNlMWI0ZTcwM2Q5CiAgICAgNmNjMDQ4OWEyNjhhYmNmZAogCi1WTVBTQURCV18xMjhfMHgxKHJlZykKK1ZQQVZHV18xMjgocmVnKQogICBiZWZvcmUKICAgICA0NmE2MWRjZDY3Y2E1MGI4LjQ0NDI0YzQ5OTIwYTc5OGEuYTA2ZjBiYzI3NzgxZGI1MS5lMWQ4MTJlYTQ0YzBiZjJiCiAgICAgYmFmM2NkZTUxMjMzZmRiNy5mNTBhMjIzYTEwYjBiNTJjLjFiZGZlZTM5ZmE0NTk0ZDguYmQ0NWIyN2Y4NTI5Mjg0MwpAQCAtMzk1NjEsMTIgKzM5NTYxLDEyIEBACiAgICAgZTBmMmFmNzQxOGIyOGQyZi42MDE2NjJmOWQ3NGY0OTc5Ljg2NzJmY2E2ODRlNWEzYTAuZjMyODhkZTdlN2ZkYmFmYgogICAgIDA2MzZiZjkyNDA3ZjViZjIKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE2MTAxNzcwMTQzMDBjOC4wMGVlMDEyMDAwZmUwMDhlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVkN2VlYzIzYjdiZWFjNDkuOWJiMTg3ODI0NjVjODg1ZQogICAgIGJhZjNjZGU1MTIzM2ZkYjcuZjUwYTIyM2ExMGIwYjUyYy4xYmRmZWUzOWZhNDU5NGQ4LmJkNDViMjdmODUyOTI4NDMKICAgICAyNGYzNTQ0ZWM0NTJmZGE1LmI1NjIwMGQwMWUxODY3YzIuOWYxY2VhMGM3NTM3YzNiOS43YTFjNWM4NTA3OGZlODc5CiAgICAgZTBmMmFmNzQxOGIyOGQyZi42MDE2NjJmOWQ3NGY0OTc5Ljg2NzJmY2E2ODRlNWEzYTAuZjMyODhkZTdlN2ZkYmFmYgogICAgIDA2MzZiZjkyNDA3ZjViZjIKLVZNUFNBREJXXzEyOF8weDEobWVtKQorVlBBVkdXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDhlMTI3MDcwMmYyMjg3OGQuNGEzYmQ5YzNhYmUwZTgwMS5kMmYyYzRhMDU3NjAxODdkLjJlMmMxZTczYzRkYTcxMzgKICAgICA2Nzg4MWI2ZWNmZjFmYWY2LmJlMWJjZGE3MTg2NjRiYzYuZTdjMWEzYjBiYjU3OTBmOS5mMTk4NGVlMGQxYTM2OTJlCkBAIC0zOTU3NiwxMSArMzk1NzYsMTEgQEAKICAgYWZ0ZXIKICAgICA4ZTEyNzA3MDJmMjI4NzhkLjRhM2JkOWMzYWJlMGU4MDEuZDJmMmM0YTA1NzYwMTg3ZC4yZTJjMWU3M2M0ZGE3MTM4CiAgICAgNjc4ODFiNmVjZmYxZmFmNi5iZTFiY2RhNzE4NjY0YmM2LmU3YzFhM2IwYmI1NzkwZjkuZjE5ODRlZTBkMWEzNjkyZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWU2MDIyNzAyMmYwMWNjLjAxYWMwMWI3MDFlNjAxYWEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGQ1YWI0Mjg4OTVjNTRiYi44ZmUyMzZhYWNiM2Y2ZDMzCiAgICAgN2I3MTUwN2I5NDQ0YTNlMy4zNGQxMDlkZmYyYjAxOWRiLjY5NmNjNGMwOWQyOTY5MGIuM2NiMWM1NDViZmRlYzZlMwogICAgIDdiZjcwNTE3ZDk2OWEzZjkKIAotVk1QU0FEQldfMTI4XzB4MShyZWcpCitWUEFWR1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDcxZTQxMzcyZmY3OWExZS42ZjdkZDI2MmYwZTA1MmMwLmVlM2Q0ODBhOTY4YmZiODMuOGZkZmZmOTc1NDFiNDNmOQogICAgIGZhNzE3NzEzNWUxNGU2ZmIuMjQ1MjNlMTk2ZWQ4MzcxYi4yMjcxNDE3Yjg1ZWZkNWNmLmM3NzZhNzg5NWQyNGI2MGYKQEAgLTM5NTg4LDEyICszOTU4OCwxMiBAQAogICAgIDg4Y2ZiZmFiYjUyZDcwOTQuNDA4YWM0YTYzZjBlOTZmZS42NzVkNTdkYmIzODM2MTAwLmUyM2YyYTY5ZGJhODU1NjYKICAgICA3YjA5ZmUzMTg4M2NmYWZlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxMDcwMGUyMDBiYzAxMjguMDE0NDAxM2UwMTRkMDI1YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNzE1OWEwYzcwYWNkYzlkLmRiYjk2ZjA1OWEzYTk5YzUKICAgICBmYTcxNzcxMzVlMTRlNmZiLjI0NTIzZTE5NmVkODM3MWIuMjI3MTQxN2I4NWVmZDVjZi5jNzc2YTc4OTVkMjRiNjBmCiAgICAgZjEzZWEyMTYwMTRkYzQzZi43NWJkMTA4YzJhMzkwZjIxLjJiYjhmMjlkNWI2OGUzNmEuZWZmYzM2ODBkNzRmN2Q3YQogICAgIDg4Y2ZiZmFiYjUyZDcwOTQuNDA4YWM0YTYzZjBlOTZmZS42NzVkNTdkYmIzODM2MTAwLmUyM2YyYTY5ZGJhODU1NjYKICAgICA3YjA5ZmUzMTg4M2NmYWZlCi1WTVBTQURCV18xMjhfMHgxKG1lbSkKK1ZQQVZHV18xMjgobWVtKQogICBiZWZvcmUKICAgICA5ODI3MmVjMmY3MTYyNzZmLjFjNzFjODQwMTU0MDI2YTcuNWY4NWQ3NTVjOTYzODdkZC4zMWFkNmFhMzI5Y2M4YTNmCiAgICAgMTM2NTM3MGE0NjQyOTllNS4wNzcwYmI0MGJkMTMyMTIzLmIwN2FjNDg1ZTU0NWEwZWIuZTVmNDI5NjA1YWNkOWJkMQpAQCAtMzk2MDMsMTEgKzM5NjAzLDExIEBACiAgIGFmdGVyCiAgICAgOTgyNzJlYzJmNzE2Mjc2Zi4xYzcxYzg0MDE1NDAyNmE3LjVmODVkNzU1Yzk2Mzg3ZGQuMzFhZDZhYTMyOWNjOGEzZgogICAgIDEzNjUzNzBhNDY0Mjk5ZTUuMDc3MGJiNDBiZDEzMjEyMy5iMDdhYzQ4NWU1NDVhMGViLmU1ZjQyOTYwNWFjZDliZDEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBlNDAxNzkwMWY2MDE3Zi4wMTlhMDA4ZjAwZWQwMGE4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg4MDBjZGVkZDc1NDk0NjQuOGJkMTRhMDI0MjRkOTMwOAogICAgIDk3NzFjMDZjZjNjMjNjOGQuNTViNTRjMzI1ODI3ZDkwOC41NDgwMWMxMzQxZGUzNDQyLjdhOTc5ODY5NWIyYzY0OWYKICAgICAxMzhhNDA4ZTY0YTI5NDM0CiAKLVZNUFNBREJXXzEyOF8weDEocmVnKQorVlBBVkdXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDA3YTU4MzU3OTYwMTljY2MuNThkNzNhNWQ4ODJlZTQxOS43MDkyZTNmYjgyN2YwZGM5LjVmMmI4MDRhYmFhYzI5ZTMKICAgICBiMDMyNWUzMTkwZDViODE0LmU3OGM3YmI1NmQxYmMxNTkuNTNmYzUyZGY2NGM3NzhhNC4wY2ZmYWRiMjMzMzgzNDYzCkBAIC0zOTYxNSwxMiArMzk2MTUsMTIgQEAKICAgICA5NWQ1YzljOTQ2MGUxYTYzLmUzMTc0NjQ4OTZhZTA5YTYuZTFhOGFkYTljMzU2ZGQ1Ni5iODU0NTdjMTliYjM3ZmFmCiAgICAgNmY2ZWNjNDFjMWJiMzZkMwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTkwMDE0NjAyODEwMTY3LjAxN2EwMGEzMDEyYzAwZDMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTcxZTc1MTU4MDI5NjY3NC4yMTY0Njc3NDdmNjIyM2E5CiAgICAgYjAzMjVlMzE5MGQ1YjgxNC5lNzhjN2JiNTZkMWJjMTU5LjUzZmM1MmRmNjRjNzc4YTQuMGNmZmFkYjIzMzM4MzQ2MwogICAgIDZjN2VjYzg5ZWJhYjIzYjguMjI1ZDAwNjBiZTk4OGY3OS41YTQwOTc0YjliOGI1NDQ0LjM1YzkyMTM2Y2I4YjEyZWUKICAgICA5NWQ1YzljOTQ2MGUxYTYzLmUzMTc0NjQ4OTZhZTA5YTYuZTFhOGFkYTljMzU2ZGQ1Ni5iODU0NTdjMTliYjM3ZmFmCiAgICAgNmY2ZWNjNDFjMWJiMzZkMwotVk1QU0FEQldfMTI4XzB4MShtZW0pCitWUEFWR1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzdlMWZhYTE1OWIwZjQ4Ni44OTgzNTI1ZjNhOGFkOWMxLjA3ODRjODVhMTE2YmVjMGMuNDQ4MDkwNjc3N2I0NTE4NQogICAgIGVjN2E1ZmNkN2U5Yzc1ZjMuYTJkNDYxYjY2NWFiOWI4MC42YTcwMDI4MzRjZGFmNGQ2LmRmMTYzZGYwNTMzMWVhN2UKQEAgLTM5NjMwLDExICszOTYzMCwxMSBAQAogICBhZnRlcgogICAgIDM3ZTFmYWExNTliMGY0ODYuODk4MzUyNWYzYThhZDljMS4wNzg0Yzg1YTExNmJlYzBjLjQ0ODA5MDY3NzdiNDUxODUKICAgICBlYzdhNWZjZDdlOWM3NWYzLmEyZDQ2MWI2NjVhYjliODAuNmE3MDAyODM0Y2RhZjRkNi5kZjE2M2RmMDUzMzFlYTdlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxYzgwMWE2MDE5NTAxZTEuMDBlNTAwZWEwMWJiMDBjZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zOGZhNjU2ZjJmMjNmMDcxLjkxY2I2NzJjNjU3MzllMDIKICAgICA4ZTRlYmMzOWUxOGZhZWFjLmI3OGQwNjU3Y2YwZjFiY2IuNWVmOThmYzY3MDAwNjI0OC4yZGE4ZTIxM2Y1YmE3ZDdkCiAgICAgOTczY2QyODVmM2RlZWZkYQogCi1WTVBTQURCV18xMjhfMHgyKHJlZykKK1ZQQUREU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYWFiZTdiNzI4OTUxNzdiMi4zMjIxYWI1MTU2YWRkZjUxLjZhOGY5NDc5NDU2ODUxYjAuYTYyZWRhYjg5MmNlNDA0OAogICAgIGMxNzhkYTQ2NTQ5ZjUxYWYuMzM0YWMxZTZjOWYzYzM2MS5iMzYzOTgwYzYyOTc3YWE1LjlkMTJjZDcxZTI3ZTMzNWQKQEAgLTM5NjQyLDEyICszOTY0MiwxMiBAQAogICAgIDZhYzZhNzU0ZjdmZGU5YzkuYmNjZDRmMzIxODI5OTI2Zi43OGIzZjczNjAwYTY5ODZkLjA4MWE5Y2U1ODJiNjQ3NzQKICAgICAzNGQ2NzA3ODA5NTZlMGNlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwZjMwMTNlMDFjYjAwNWQuMDI0NDAwOGMwMTgyMDExZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hMjdmYTg3ZjI0YmY0ZGZhLmJjN2ZiMjRkNjA3ZjI5MGYKICAgICBjMTc4ZGE0NjU0OWY1MWFmLjMzNGFjMWU2YzlmM2MzNjEuYjM2Mzk4MGM2Mjk3N2FhNS45ZDEyY2Q3MWUyN2UzMzVkCiAgICAgMzhiNmVhNmRlZjU0Yjg3ZC42ZDk0NzllMjU2NmUxNTA3LmVmNTYxMDdjYzIyOGQzNTUuMWY3MmU1ZGM3ZTFkZjZiMgogICAgIDZhYzZhNzU0ZjdmZGU5YzkuYmNjZDRmMzIxODI5OTI2Zi43OGIzZjczNjAwYTY5ODZkLjA4MWE5Y2U1ODJiNjQ3NzQKICAgICAzNGQ2NzA3ODA5NTZlMGNlCi1WTVBTQURCV18xMjhfMHgyKG1lbSkKK1ZQQUREU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgN2Y3MWRjODEzMDA4N2RlZC5iNWYyMGQ2NTA3MjUyMDNmLmZjYmZiZmMzMmIzMGY2YzYuYWJjODQ5YTRiODlkMDQ5OAogICAgIGM1Yjk1Y2VjMTJkOGRjZmQuNzQ4ODE4MGViYzU5OTk4YS4wOTM3NDY4MGFjOTBmZDM4LmU0ZGYwMjM0ODc5OTU1ODMKQEAgLTM5NjU3LDExICszOTY1NywxMSBAQAogICBhZnRlcgogICAgIDdmNzFkYzgxMzAwODdkZWQuYjVmMjBkNjUwNzI1MjAzZi5mY2JmYmZjMzJiMzBmNmM2LmFiYzg0OWE0Yjg5ZDA0OTgKICAgICBjNWI5NWNlYzEyZDhkY2ZkLjc0ODgxODBlYmM1OTk5OGEuMDkzNzQ2ODBhYzkwZmQzOC5lNGRmMDIzNDg3OTk1NTgzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyMGUwMTA1MDE5YzAyZWUuMDFlMzAwYzkwMTJlMDFhOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNWY2MDU4MGQ3YzBmM2ZlLjhmYTc0YmQ4ODA4MDU5ODAKICAgICBiMjdiODk5OTc5MDRjYTllLmJkMWQwZmQ0ODIxMjNmNTIuZmFlODg1MmU2Njg4ZTIxYy5kODQ3OWI2NmQ4ZDI5MDQ4CiAgICAgNGIyZTcyZTE5MjI2ZjQ3YQogCi1WTVBTQURCV18xMjhfMHgyKHJlZykKK1ZQQUREU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzQ0OWEwMmRkM2IwMmIxYi4xMThlMmViMzM1NzdkMzg3LmZmYjVmMmNhY2NiMGU1MjYuOTZiYTM3ZjZkNzM4MzhlNQogICAgIGVmZTMyMmI2MzZmYjcxZDguZGI3ZGQ3ZGUxZDM5OGMxMS4yNmU1NmIwNzJiODliYzdmLjZmNDFlZTljMjY3MTIyNzkKQEAgLTM5NjY5LDEyICszOTY2OSwxMiBAQAogICAgIDRiYzMwZTJmZDQwNTFlNTUuMjAxZTI2MWNkZmQ3MDFiNy44ZjQxMGIwNjk1MWNmMDc0LjQ4YTE2MDJhY2NhYzlkYjEKICAgICBmZjEyMTJlYjViYzZhNmFkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxYzQwMTdjMDFhZTAxY2IuMDE4MjAxYjIwMGVjMDBlYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMmUwN2ZmZTY1YjJiZDdmLjdmN2YxNmE1N2Y3ZjdjN2QKICAgICBlZmUzMjJiNjM2ZmI3MWQ4LmRiN2RkN2RlMWQzOThjMTEuMjZlNTZiMDcyYjg5YmM3Zi42ZjQxZWU5YzI2NzEyMjc5CiAgICAgZDg0N2YyZTg1ODkzMDQ1ZC5lYzEzMDAwODRjNTViMjY4LjhjZmI3NGY3M2EyOTAxMGIuNjE0YTI4MDk2ZTNmNWEwNAogICAgIDRiYzMwZTJmZDQwNTFlNTUuMjAxZTI2MWNkZmQ3MDFiNy44ZjQxMGIwNjk1MWNmMDc0LjQ4YTE2MDJhY2NhYzlkYjEKICAgICBmZjEyMTJlYjViYzZhNmFkCi1WTVBTQURCV18xMjhfMHgyKG1lbSkKK1ZQQUREU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNjQ2OWJhMzkzNzk5MzIyNC5hNGExNzFmODQ3ZGNmYzZkLjUyNjhjMzA2ZjJjYzM0MmIuODkwNTJiYTFkOWVmYzU2NgogICAgIDUyNzJkNGZlN2UyZmZkNDEuM2YyZTE4YWQ0Y2E1ZGE1MC42MGJlNTViMmEwM2YwOGVmLmQ3OTFkMDMyYTEyZWJiOGUKQEAgLTM5Njg0LDExICszOTY4NCwxMSBAQAogICBhZnRlcgogICAgIDY0NjliYTM5Mzc5OTMyMjQuYTRhMTcxZjg0N2RjZmM2ZC41MjY4YzMwNmYyY2MzNDJiLjg5MDUyYmExZDllZmM1NjYKICAgICA1MjcyZDRmZTdlMmZmZDQxLjNmMmUxOGFkNGNhNWRhNTAuNjBiZTU1YjJhMDNmMDhlZi5kNzkxZDAzMmExMmViYjhlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyZGUwMjE2MDExMDAwZjkuMDBkZDAxMmMwMTgxMDFkOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZjI2MThiODkyMGIzYzFhLjgwOTZmYmQzODAxZDgwZjQKICAgICAzOGM4NTBhMmI2ZGEzZjFmLmFhODQxZThmN2QzYTg0MmEuN2RiZTQ2MDAzZWQwODMxOS5lMDMzOWFlYTJmMWNmZDJmCiAgICAgNTJlMmI3ZTkyZGU1YzAwMAogCi1WTVBTQURCV18xMjhfMHgyKHJlZykKK1ZQQUREU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODk4OTQ5OGUxZjQ4OTZiNi5lOWFlYTk1OGUxMDYyZjM4LjMzZTY3Njk0ZTIxZWM5NzguNDMwMDljN2E2NjA2YTFkOAogICAgIGRmNzY0ZDQ3YTJkM2I4ZmUuOTI3NjY1MzZlNDI2NGNhOC42ZTI2MDEzNjQ5MjRmZTQxLjU1N2RkNzY3OWFlYTUwOTYKQEAgLTM5Njk2LDEyICszOTY5NiwxMiBAQAogICAgIDViNGQ5N2EyYzk5MGQ3ZjMuNDFkY2YyMWFlOTczMDQzYS42OTczYTEwMDhlYzQyNmY4LmM5NWNlOTQ2OTNlZTUwYzUKICAgICBlMzU1YjkxMDkxMjYxOThlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwOTAwMTk5MDE1MjAxMGUuMDA5ZjAxZWMwMGZmMDBkMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNWI3YmQxNjdmZmI1Yzc0LmUyN2Y0OTE4OGY4MDdmODAKICAgICBkZjc2NGQ0N2EyZDNiOGZlLjkyNzY2NTM2ZTQyNjRjYTguNmUyNjAxMzY0OTI0ZmU0MS41NTdkZDc2NzlhZWE1MDk2CiAgICAgYjFmM2JkN2Y1MTEyNjU4NC4xMWVjZmUyOGRlNDY1NTlhLmI3OTFiY2UwNGVkNzVlMzMuOGQwMzcyYjFmNTg5NGM4MgogICAgIDViNGQ5N2EyYzk5MGQ3ZjMuNDFkY2YyMWFlOTczMDQzYS42OTczYTEwMDhlYzQyNmY4LmM5NWNlOTQ2OTNlZTUwYzUKICAgICBlMzU1YjkxMDkxMjYxOThlCi1WTVBTQURCV18xMjhfMHgyKG1lbSkKK1ZQQUREU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYjliYTVjZmQwYjNiNjMwNy4zOWQwZDYxY2E1ZDk0YmY4LmZkMTFiY2Y4MjFiODE2YjYuZTIxOGFlMDJhNDc2OTEzYwogICAgIDI1NTc1MGY4MWMzYmVhNWQuYTdjNzc2NTk4MTc5ZmQzZS4yMzU5ZDlhZWEzMjE0NzM4LjdkY2NkZTUwMmQ3OWRkYWMKQEAgLTM5NzExLDExICszOTcxMSwxMSBAQAogICBhZnRlcgogICAgIGI5YmE1Y2ZkMGIzYjYzMDcuMzlkMGQ2MWNhNWQ5NGJmOC5mZDExYmNmODIxYjgxNmI2LmUyMThhZTAyYTQ3NjkxM2MKICAgICAyNTU3NTBmODFjM2JlYTVkLmE3Yzc3NjU5ODE3OWZkM2UuMjM1OWQ5YWVhMzIxNDczOC43ZGNjZGU1MDJkNzlkZGFjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwY2MwMTIzMDEzMDAxOWUuMDE5NDAxNzkwMTQ0MDExYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMDZhOTVhNmM0ZDk1ZGVlLjVmZTQ4YzUyZDE3ZjgwZTgKICAgICAzMzY4MTljODc1MmI5ZDRlLmEzNDVjYWNkYWNmMDBhNDAuMTg0ZGY4NTNmMzkxZjVmZi44ODkwOTg4MzA2YTQwM2JmCiAgICAgYjAzODFhNDE4ZmUzNTViYQogCi1WTVBTQURCV18xMjhfMHgzKHJlZykKK1ZQQUREU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNmIyMGFmZmJmOWEzNzg5MS44ZDc0ZTU3NWY0MzI0MjQxLmU5NjM3NmRjMzJkZWRkNTMuYTE5MmYzMWFmOWIwZTk5ZAogICAgIDEzOTE1MzFmZTI3MWE2ZWYuZWRlOGYyZTA3YjUzMTNjMS4yZjI2NzM1ZDI4NTRkZTU4LjAyMTgzMDY4YjkyMmVkZjEKQEAgLTM5NzIzLDEyICszOTcyMywxMiBAQAogICAgIDllNDZiOTUxYTA2NTE1ZjIuMzIzOGJjYTEwZjE1MmMxNy4yYmNiNTE2YWQ3MDY1OGU2LmMwMWI2MTRlZDUzNTEwNmQKICAgICBkNDJmNGRiZDY5ZWRhOGVkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxYTMwMWYxMDI4NTAyNzUuMDFiZTAxYjQwMTU1MDEzMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTAwMzIxYjU0MzEyNzUyLjFhYzU1YjkzMDgxOGE5MTkKICAgICAxMzkxNTMxZmUyNzFhNmVmLmVkZThmMmUwN2I1MzEzYzEuMmYyNjczNWQyODU0ZGU1OC4wMjE4MzA2OGI5MjJlZGYxCiAgICAgMDZkYTAyMThlNmQ5MWI4MC4zMDkwYmJmNjI1OWJjZGZhLmQxZGFiZWJlMmJkZDQ4ZmEuMThhZDJiMmI0ZWY2YmIyOAogICAgIDllNDZiOTUxYTA2NTE1ZjIuMzIzOGJjYTEwZjE1MmMxNy4yYmNiNTE2YWQ3MDY1OGU2LmMwMWI2MTRlZDUzNTEwNmQKICAgICBkNDJmNGRiZDY5ZWRhOGVkCi1WTVBTQURCV18xMjhfMHgzKG1lbSkKK1ZQQUREU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzFiNjZiNjQyNjI5M2ZkNC4zODIwNzMzOGFkYTNjZWVlLmQwYWI3MmNmNTVjZWVjNDUuOTk0NTJhY2NjNjU5NGFjOAogICAgIGIzNzkzNzJmMjlmNjkwNGQuMzFiNjJjMzhhODFmODMyMy5lNGI3NTc2YTExZDFjOGFmLjc3OTM0NDUyOTc2NTU5NGIKQEAgLTM5NzM4LDExICszOTczOCwxMSBAQAogICBhZnRlcgogICAgIDMxYjY2YjY0MjYyOTNmZDQuMzgyMDczMzhhZGEzY2VlZS5kMGFiNzJjZjU1Y2VlYzQ1Ljk5NDUyYWNjYzY1OTRhYzgKICAgICBiMzc5MzcyZjI5ZjY5MDRkLjMxYjYyYzM4YTgxZjgzMjMuZTRiNzU3NmExMWQxYzhhZi43NzkzNDQ1Mjk3NjU1OTRiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwYjMwMDRkMDEwMTAxMWMuMDBmYzAxNzQwMTE1MDExYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNTYyN2ZmZjY3OWZiNGY0LjEwZDg2ZjFlODAwMDdmZmYKICAgICA5N2ViY2FlMjcwNzA1MmE3LmFiNDE4YzM0ZDlmZGQwZTMuZTFjNmEzOWM2MWU1YzdlYS5mMmRlMmI3ODQ5ZDFjMmU2CiAgICAgNDg3M2YxZWY2MjRhOTI1NgogCi1WTVBTQURCV18xMjhfMHgzKHJlZykKK1ZQQUREU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgN2UwZGU4MzljZGFiNzExOC5iMDMwODlhMWViMzUzY2UwLmU1Y2YyYTA3NDg3OWUwYzYuODI2MTAxMGEyZDBmNjExMgogICAgIGYwZjgwY2MzMjM3Zjk5ZDcuNWVlNGU2MzUxY2JiZDA1Yy5lZTQ4YjhhMzE1NjFkYzkxLjBhYzM4MDk2ZGZiNDA5MjcKQEAgLTM5NzUwLDEyICszOTc1MCwxMiBAQAogICAgIGY3ZjBjYzQzMDZiMGI2ZmUuZTljNDZiODgwZTM4ZThjYi5kODI5OTJlNzNhYWI4NjhkLjNmMTFjZWI4NmI5YjZkYzcKICAgICBhNDkzOTUyNjdjZjZhM2E5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxMjYwMTk4MDFmYTAwYjkuMDFlODAxYWQwMTdjMDE3OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZjNmZWIxOGYxYTRkYzgwLjYwN2Q4MDAwODAwMDdmZmYKICAgICBmMGY4MGNjMzIzN2Y5OWQ3LjVlZTRlNjM1MWNiYmQwNWMuZWU0OGI4YTMxNTYxZGM5MS4wYWMzODA5NmRmYjQwOTI3CiAgICAgZjk3ZjU5ZjcwMjUyNDczZi43ZGQxNWQ4ODFmMGVjYjQ2LjIwZjczMjc1ZGM0M2ZmZWYuNTViYTliMmM5NWRlNzk1NQogICAgIGY3ZjBjYzQzMDZiMGI2ZmUuZTljNDZiODgwZTM4ZThjYi5kODI5OTJlNzNhYWI4NjhkLjNmMTFjZWI4NmI5YjZkYzcKICAgICBhNDkzOTUyNjdjZjZhM2E5Ci1WTVBTQURCV18xMjhfMHgzKG1lbSkKK1ZQQUREU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNjAwZDZjNjJlNWZjZDUyOC40NDk1NWYxMWNhMjYyM2JlLjdlODk4YjIwMDg0N2U0MTYuNzIyYmQ2NjdjYTI0YWQxNwogICAgIDRmNGJkMDU5YzFiOGJmNzAuM2ViYjEwY2ZlYjNmY2EyYi4xOGViMzkzYzI3NDY3YjU0LjRhNDdmODYwMjkzYWIwMzgKQEAgLTM5NzY1LDExICszOTc2NSwxMSBAQAogICBhZnRlcgogICAgIDYwMGQ2YzYyZTVmY2Q1MjguNDQ5NTVmMTFjYTI2MjNiZS43ZTg5OGIyMDA4NDdlNDE2LjcyMmJkNjY3Y2EyNGFkMTcKICAgICA0ZjRiZDA1OWMxYjhiZjcwLjNlYmIxMGNmZWIzZmNhMmIuMThlYjM5M2MyNzQ2N2I1NC40YTQ3Zjg2MDI5M2FiMDM4Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwYTcwMGEwMDE4NTAxMjMuMDBkYTAxMWYwMTVmMDBlMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ZmZmYzQ1YzJmOGQ1ZjZhLjdmZmZjZWM3ZjM1ZTgwMDAKICAgICAzNjQzMmMyNDQzODNhZjA5LmE1YjliYWM4YjE4Y2I2YmYuY2JiYTJmYjA0NTQ2Njk1OC4yNDAwY2M2Y2MyNmUzOGYxCiAgICAgZGUzNDc0NTgzNGE0MzZlMQogCi1WTVBTQURCV18xMjhfMHgzKHJlZykKK1ZQQUREU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDZiNGVjNmRlNWE3MDAxOS5lNjk1MWNkMTIyYWEyY2IzLmNiMmFhYWRiOGZkNzcyM2QuOWJiZTcwZTA3YzVlMzg3NgogICAgIGI4Y2EyZjE4NzAwNGQxNDQuMzlkYTg4ZThlNGI3NTJkNS4wYzRiYTg4ZDM5ZjY1ODE5LmUxOTAyZjQ0NDg5NzkyMzYKQEAgLTM5Nzc3LDEyICszOTc3NywxMiBAQAogICAgIDJhZWIwNmRiODZmYTdhMjUuMzc3MWM2MDM4MmI1ODczMy41M2QwYmI3ZjY0ZGQ5MDlhLjNjY2UxNzU5MTI5OWQ2NGYKICAgICAwOGQyMzllMTQ3N2IzOGZmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxNmYwMTM1MDE1ZTAwYzkuMDBkYzAxNmYwMTAyMDBkYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMWI0ODAwMDdmZmZmYzE4LjVhOGMxODBjMTA5M2M1ZmIKICAgICBiOGNhMmYxODcwMDRkMTQ0LjM5ZGE4OGU4ZTRiNzUyZDUuMGM0YmE4OGQzOWY2NTgxOS5lMTkwMmY0NDQ4OTc5MjM2CiAgICAgOTBjMzM5YzM3MjQ2ZTYwZi4wYWUwZWQ1NGE1YjdkYzljLmM1NjlhZjRhNGM3NGEzZmYuNzhmY2U4YzhjN2ZjMzNjNQogICAgIDJhZWIwNmRiODZmYTdhMjUuMzc3MWM2MDM4MmI1ODczMy41M2QwYmI3ZjY0ZGQ5MDlhLjNjY2UxNzU5MTI5OWQ2NGYKICAgICAwOGQyMzllMTQ3N2IzOGZmCi1WTVBTQURCV18xMjhfMHgzKG1lbSkKK1ZQQUREU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYmFkM2M5NGU4MmFkMTUwMi5lMThlOTNjZDQ4YWJjYjMzLjliNWE4ZmUxOTZiZDBmYzcuMTBjY2M5OTYxYmJlNWI5NgogICAgIDJkOWU0MzhiZGUzYjI4ODMuMTNmOGRiMDQ1NWU1MTNlNC4xMjY3YzVkOGZlZGMzMDg0LjU5YTlkNGZkMTBhMjQwYTEKQEAgLTM5NzkyLDExICszOTc5MiwxMSBAQAogICBhZnRlcgogICAgIGJhZDNjOTRlODJhZDE1MDIuZTE4ZTkzY2Q0OGFiY2IzMy45YjVhOGZlMTk2YmQwZmM3LjEwY2NjOTk2MWJiZTViOTYKICAgICAyZDllNDM4YmRlM2IyODgzLjEzZjhkYjA0NTVlNTEzZTQuMTI2N2M1ZDhmZWRjMzA4NC41OWE5ZDRmZDEwYTI0MGExCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwZmUwMTAzMDAzZjAwZjIuMDFjNzAxOWEwMTYwMDE2MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hZGMxODAwMDk1OTk0MDRiLjZhNzU5ZTkzMmM2MDdmZmYKICAgICBjNWMyZTUyNTZhOWRlM2IxLjU1NGY4Y2YwYmYyNTdhZTIuYTgxYzY0YzQzODhjMmIyNi4wMDM1ZDE2NzFlYTQ0NzhlCiAgICAgMTU3Y2JiNDM2ZmRhZTFjOQogCi1WTVBTQURCV18xMjhfMHg0KHJlZykKK1ZQSEFERFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMjZkNTkyMWU2ZTQzODRjMS5hM2IzMDY1YWQzODkwMmI2LjFjZDZlZDdlNTM0MzEyODcuN2Y1Y2M2OTI0MjM2N2U2NQogICAgIDhmOGE1MzY0YjQ2YzZlMjQuYjE5ZTAxMGZjYzAwNDllYS5jZTUzZmEwMWEyMWI5MTdmLmRhZjA4NDI5MTAyNjU5N2MKQEAgLTM5ODA0LDEyICszOTgwNCwxMiBAQAogICAgIGRhM2E4MGUxOGIyYjAxZDUuZDE5MTc1YTllNWM1Mzk4ZC41ZjYxMDU5NmRmMjYzNjE5Ljg4NDQwNTY3NjUwOTlhZTMKICAgICA5MzljYzBlNTI1MTU3ODhjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxN2UwMTRhMDE1OTAwOTkuMDExMzAwZmMwMTM5MDExZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NGY4N2FhZWIwMWIzNzAwLmM4NTQzMzlhNWYxOTY5YTIKICAgICA4ZjhhNTM2NGI0NmM2ZTI0LmIxOWUwMTBmY2MwMDQ5ZWEuY2U1M2ZhMDFhMjFiOTE3Zi5kYWYwODQyOTEwMjY1OTdjCiAgICAgYWRlN2Y5ODFkZmUwZDk5Yi5jZDRlNTIzMDc0MTA3Mjc4LmM2MTNhZWU1NDczODMzNzYuOTRhNDFiNzdiZDY5Nzk5NwogICAgIGRhM2E4MGUxOGIyYjAxZDUuZDE5MTc1YTllNWM1Mzk4ZC41ZjYxMDU5NmRmMjYzNjE5Ljg4NDQwNTY3NjUwOTlhZTMKICAgICA5MzljYzBlNTI1MTU3ODhjCi1WTVBTQURCV18xMjhfMHg0KG1lbSkKK1ZQSEFERFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTI3OGM3ZGQxOTk2Y2ViZC43M2NlZTVmMTUzZGEyNDdjLjliMzFlNjY3M2IyYTVjNTUuZjc4YmZiODAwNjcyZDQxNAogICAgIDVmYTM5NzNiNWM5YTU5YTMuZDRlZTIyMWJkMzc4N2MzYy4wNWZiMjI1NDkzNGI5NWZiLmU4ZGI4ZDEwNTZhNzRhMTIKQEAgLTM5ODE5LDExICszOTgxOSwxMSBAQAogICBhZnRlcgogICAgIDkyNzhjN2RkMTk5NmNlYmQuNzNjZWU1ZjE1M2RhMjQ3Yy45YjMxZTY2NzNiMmE1YzU1LmY3OGJmYjgwMDY3MmQ0MTQKICAgICA1ZmEzOTczYjVjOWE1OWEzLmQ0ZWUyMjFiZDM3ODdjM2MuMDVmYjIyNTQ5MzRiOTVmYi5lOGRiOGQxMDU2YTc0YTEyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyNDQwMGIyMDE3OTAxZGEuMDE2MzAxZjMwMWViMDE5NgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MTk4OTc3ZmYzMGJkYTg2LjI4NGYyOTQ2NzVlYmEwYjkKICAgICBkNzFhN2VkOTQwNThmZDNkLjVlMDUxOTcxNmViMmJlYmEuMmQzY2U4NmZiN2YyM2M5My40OTIxNzFjZWU3ZmNhY2NhCiAgICAgNzFhZWJkZDQ1ZjM1MTFkYgogCi1WTVBTQURCV18xMjhfMHg0KHJlZykKK1ZQSEFERFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNjI5MjkzMzA3Mjg4M2U5Zi4zOWZkOGVmMTFhMmI4ZTQ4LjNmOTRjYjc1YzA2NzFmZDAuYTI0YzZiNzViYjkwMjFkZAogICAgIDdhMThmMTRkYmI3ZjZmYzQuZGI1ZjU2MjBiMmIwNDRiOC41OGUwNDU0MzNhM2FhNmFmLjI4YjVhNzViMzAxYjBkYjUKQEAgLTM5ODMxLDEyICszOTgzMSwxMiBAQAogICAgIDhhM2UzMjdhNjE4ZmNiZGIuNGFkNWZmNmY5MzAyMGU3Ny5hMWRlODZmMjE4NmYxNjc5LmQ4YzYzZjc3ZTAyNWU5YzIKICAgICBiOTA0OTI4NTUyYmM1MTRlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxOGQwMGZkMDE1NDAwZTguMDAzYzAxODUwMTU4MDA0YQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44OTdkMDhiY2I2NTFlZmU2LjllMjNlMGU5ZDAxMDNkZDAKICAgICA3YTE4ZjE0ZGJiN2Y2ZmM0LmRiNWY1NjIwYjJiMDQ0YjguNThlMDQ1NDMzYTNhYTZhZi4yOGI1YTc1YjMwMWIwZGI1CiAgICAgMTM4ZWQyOTdkN2E4ZGZmMy45NzBlNTI1MDI3ZjRkYmI5LjA0MzQ4NTQ5NzliOThmMDMuOWM0NDFhMGQzMzllYmM0OAogICAgIDhhM2UzMjdhNjE4ZmNiZGIuNGFkNWZmNmY5MzAyMGU3Ny5hMWRlODZmMjE4NmYxNjc5LmQ4YzYzZjc3ZTAyNWU5YzIKICAgICBiOTA0OTI4NTUyYmM1MTRlCi1WTVBTQURCV18xMjhfMHg0KG1lbSkKK1ZQSEFERFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMWJjZDkwMjNhNjcwYjAxOS4zYzc1MGQ2MmY1YmU2ZTI2LmQwN2ZkODY4MTJlNjlhMWQuOGEyODQ0YWFiNGU4NzZiZAogICAgIGRhZWNiMzNlZjc0Y2MyNGUuODM3ZjVmYmIzMGMzMDY4MS4wNWQ5NTkyNmMxYWQzYmQ3LjFiNWZiYmRkZThiMWVjN2IKQEAgLTM5ODQ2LDExICszOTg0NiwxMSBAQAogICBhZnRlcgogICAgIDFiY2Q5MDIzYTY3MGIwMTkuM2M3NTBkNjJmNWJlNmUyNi5kMDdmZDg2ODEyZTY5YTFkLjhhMjg0NGFhYjRlODc2YmQKICAgICBkYWVjYjMzZWY3NGNjMjRlLjgzN2Y1ZmJiMzBjMzA2ODEuMDVkOTU5MjZjMWFkM2JkNy4xYjVmYmJkZGU4YjFlYzdiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxMDgwMTc4MDE2ZTAwOWQuMDFiNzAxNDMwMTA5MDE4NworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hOGU3YWQwM2NlZDIyYmE1LjVlZmZmZDg0ZDczY2Q1MmMKICAgICBkZjViNWQ5NzAxYWVlZGE5LjQzM2M1YTcwMGE3ZGZmMTUuZWNjZDQ0YTYxZDExYWIzYS5hNGM0YzY2NThhNjEwOTEyCiAgICAgNTU4OTUxOTEzMDYwMjg0NAogCi1WTVBTQURCV18xMjhfMHg0KHJlZykKK1ZQSEFERFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMWU2Yzg1ZTlkZWRlNGRhMC5kZDQzZGNhZGYyNGI3ZjI2Ljc1ODZmYWE1ZTA0YWRhYTYuNTdmZmE2M2YwMmM2ZjIzYgogICAgIDVhYjc1ZmQ3MzA2OGIzZDEuYThiMTcwZjA1MTQxYjRiZS5hY2Q0MDJmYmNkMWQ5OGY3LmUwMTBhMDRlODY4ZTNkMDAKQEAgLTM5ODU4LDEyICszOTg1OCwxMiBAQAogICAgIDlmYjhmMTJhMzNjZDM2NjUuMTU0ZWNjYWFjNzY1ZjVlZC45Y2E3MzZiOTVhMDJiMDg4LmJlMDM0YzdmZGU4NWQzODcKICAgICBjYzdjZjc3OGU5Y2M5NGEyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxNDkwMjY2MDBkODAwZWUuMDFhNTAxZWMwMGVjMDEzYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iMjRkZTMzNDEzOGUxMTI5LmFmY2Y2NjE0ODA1ZWMzOGUKICAgICA1YWI3NWZkNzMwNjhiM2QxLmE4YjE3MGYwNTE0MWI0YmUuYWNkNDAyZmJjZDFkOThmNy5lMDEwYTA0ZTg2OGUzZDAwCiAgICAgNjdiN2Q5YzljNDg5OTg4NC4xYzcxOTc0YjM5OWI0NzljLjQ1NzA2Y2RkNmM4MDc2YjQuNjRjZWFlYzBjNjc0NGFiNQogICAgIDlmYjhmMTJhMzNjZDM2NjUuMTU0ZWNjYWFjNzY1ZjVlZC45Y2E3MzZiOTVhMDJiMDg4LmJlMDM0YzdmZGU4NWQzODcKICAgICBjYzdjZjc3OGU5Y2M5NGEyCi1WTVBTQURCV18xMjhfMHg0KG1lbSkKK1ZQSEFERFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNjkwNTJhOTgwMzU1NGIzMi42MDA2YTI2NjFiYzBjOTFmLjZmMTY4YmY5MTZhYzc5ZGQuMGRjNTViZmEzMjJjODEyMAogICAgIDcxNmE2MWNhNDkyZGIyNjIuMDRlZGU5ZTkxOGVmOGY1ZS4wNjkzNTEyNDQzN2I5MTk3LmY0MTZkNzBjOTE4YzI2MjcKQEAgLTM5ODczLDExICszOTg3MywxMSBAQAogICBhZnRlcgogICAgIDY5MDUyYTk4MDM1NTRiMzIuNjAwNmEyNjYxYmMwYzkxZi42ZjE2OGJmOTE2YWM3OWRkLjBkYzU1YmZhMzIyYzgxMjAKICAgICA3MTZhNjFjYTQ5MmRiMjYyLjA0ZWRlOWU5MThlZjhmNWUuMDY5MzUxMjQ0MzdiOTE5Ny5mNDE2ZDcwYzkxOGMyNjI3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxMDYwMGMwMDA5YzAwZTcuMDE5ODAxNDcwMjRmMDE0MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYjBmOTA4OTY5YmZiMzRjLjU3YjdkNTEyY2IyMmI3YjMKICAgICAzMmY3Y2IxM2M4Zjc4MzUzLjY5YjUyNTc0YmUyZjlmMWYuNWJkZmRlYmVhNWUyNjgxYi45NDgwYzU1MzUyMWJkYjM1CiAgICAgMDUzMTJmNjBlYzYzNjQ5MwogCi1WTVBTQURCV18xMjhfMHg1KHJlZykKK1ZQSEFERERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNWM0NWUwZWU3ZDEwYjAxMS5hM2I3ZjcwMzM4MDI2NDZkLmUyMmUxMzU0YTA1ODYxZjcuZDE0NjllMDYxMjkyOWYzZAogICAgIGY0MDhkNTZhYTBhZmZiNWEuZWU4MzE3YjU0NDhiZTZkNy5hZTcwODYyYzA2ZWQ0NjA1LmYzOTM1NWQ5Y2RmYTU5ZDkKQEAgLTM5ODg1LDEyICszOTg4NSwxMiBAQAogICAgIDVjY2I3N2Q4MGRmMDgyZmYuODc2ZjIzMGY5ZTQ4YmQ0ZS5iMzdmZWQ3MGQwODc2MzcyLmIwMGU5NGQ0OWEyNDQ2MzIKICAgICAwMWQ0MTVkNGU1ZmRmMDQ3CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwYWIwMWJlMDE5MDAxNGIuMDFlMDAxY2EwMTQxMDEzMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iODQwMDQ1YjkwYjljZjQxLmI1NWRjYzMxYzE4ZGFmYjIKICAgICBmNDA4ZDU2YWEwYWZmYjVhLmVlODMxN2I1NDQ4YmU2ZDcuYWU3MDg2MmMwNmVkNDYwNS5mMzkzNTVkOWNkZmE1OWQ5CiAgICAgMmJjNjA4M2VmMWNiODMxYi5mMTI3YTcxNTA3OWVjNWJlLjJhYzc3YjY2OGQ3ODg4ZjUuOWY5MjdkMjVmMTI3NTIxYwogICAgIDVjY2I3N2Q4MGRmMDgyZmYuODc2ZjIzMGY5ZTQ4YmQ0ZS5iMzdmZWQ3MGQwODc2MzcyLmIwMGU5NGQ0OWEyNDQ2MzIKICAgICAwMWQ0MTVkNGU1ZmRmMDQ3Ci1WTVBTQURCV18xMjhfMHg1KG1lbSkKK1ZQSEFERERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNzBiMDdjMTBlZWJmMGU4NS5lMzYyMWRhMzkwYWEzNGI0LjhiMjcwODkwMjQ5NDg5YjIuYTNlNGQ4YjQ2Y2E2MTUyOQogICAgIGQ4NmU0NTc0ZDA3NTU5MWIuMWNkOWY2MGExNTg2ZDdlMy5kYjFhZDE4MmI2OGZlNjE3LjU3NDEzOGEwZmM1ZmQ4YzUKQEAgLTM5OTAwLDExICszOTkwMCwxMSBAQAogICBhZnRlcgogICAgIDcwYjA3YzEwZWViZjBlODUuZTM2MjFkYTM5MGFhMzRiNC44YjI3MDg5MDI0OTQ4OWIyLmEzZTRkOGI0NmNhNjE1MjkKICAgICBkODZlNDU3NGQwNzU1OTFiLjFjZDlmNjBhMTU4NmQ3ZTMuZGIxYWQxODJiNjhmZTYxNy41NzQxMzhhMGZjNWZkOGM1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwZjQwMGQ3MDBjYTAxMTMuMDEzNDAyMDQwMjJjMDFhMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hZmJiOTI0MjEwOGFlZGRkLjkxYWFiNzk5NTNhMTExNjUKICAgICAwMmMwZWY2NDkwZWU2ZGZhLjEzOTIzMzYxOTZkMmRiNjYuY2JlNWZmNmQ2Y2JlNDI5Mi43YzE2NDgxZDZhZDU4NDVmCiAgICAgYTQyNmVmODY4MGE4ZTRiNAogCi1WTVBTQURCV18xMjhfMHg1KHJlZykKK1ZQSEFERERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMDA1ZmZjNDZmYTQ3NDY5Zi43Y2ViYzdjOGE2YzlhZDliLjhhNmQ4ZDI4Y2E1YWI1MTAuMjQ1NDVjM2VjODBjYjkwMAogICAgIGVjMGQ2YWM5NzQzZWU2Y2IuNjAyOWYxMDQwNmM5MGM0My4yMjU3MGIzYzcxMzM2ZWU2LjM3MmY4ZTMwOWYzOGIxMWYKQEAgLTM5OTEyLDEyICszOTkxMiwxMiBAQAogICAgIGU0Zjc1YmM5ZGI2MWNlOTkuZDEwOTJjYjUxMjY1MTY1Ni4yOTg3NjFmYzg2MDk3MGM1LmZmNTg1ZTJjMzE1YTEzMWYKICAgICA2YjNmZjQwZDIzNjlmNTU4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxMmQwMTNmMDEzNDAxOTIuMDFiNjAxNDAwMDhjMDEzYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42MDg0ZWQ5ZWVmOTBmNjRjLjkzOGE3YTIyZDY2ODNmNGYKICAgICBlYzBkNmFjOTc0M2VlNmNiLjYwMjlmMTA0MDZjOTBjNDMuMjI1NzBiM2M3MTMzNmVlNi4zNzJmOGUzMDlmMzhiMTFmCiAgICAgYzQ3YjM2N2I4YjE4ZmZlNS44ODQ0ZWEwNWNjZjg0NTFkLjM5OWJhOTBhMjZlOTQ0OTQuZTE0MjEwMzEwZTRlZTYxYgogICAgIGU0Zjc1YmM5ZGI2MWNlOTkuZDEwOTJjYjUxMjY1MTY1Ni4yOTg3NjFmYzg2MDk3MGM1LmZmNTg1ZTJjMzE1YTEzMWYKICAgICA2YjNmZjQwZDIzNjlmNTU4Ci1WTVBTQURCV18xMjhfMHg1KG1lbSkKK1ZQSEFERERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMDNjMTRmYzAwMDg2NDhmMi5hOGNiZDQxZGZmYTU4ZjkyLjE4NDQzNTAyZjcxOTM4MWEuNTA2NTMxN2YyYzFmMzEyNgogICAgIGExYWJlYTMyZTViZWM3MTguNmM0NDlmZTU5MzcxN2U3ZC4zN2MwODFkNjk0MjI2YTk0LjA4ODIxNDAwYjViNWMxNjMKQEAgLTM5OTI3LDExICszOTkyNywxMSBAQAogICBhZnRlcgogICAgIDAzYzE0ZmMwMDA4NjQ4ZjIuYThjYmQ0MWRmZmE1OGY5Mi4xODQ0MzUwMmY3MTkzODFhLjUwNjUzMTdmMmMxZjMxMjYKICAgICBhMWFiZWEzMmU1YmVjNzE4LjZjNDQ5ZmU1OTM3MTdlN2QuMzdjMDgxZDY5NDIyNmE5NC4wODgyMTQwMGI1YjVjMTYzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxNDYwMTYyMDBkOTAwZDUuMDEwZDAwNzUwMTVkMDEwMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZjVkNmQxYzdjODQ2MmE1LmNiZTJlYzZhYmUzN2Q1NjMKICAgICA2M2U3ZDBmZTM2YWMzY2JhLjY0NTUxOTdkN2RjZWQ0ZDcuNzFhZmNlYzg2YzYwZTk1ZC45ZmE5MDRhOGRlOTc0MTFlCiAgICAgMzY0YTA4YThiNmY5YThmNgogCi1WTVBTQURCV18xMjhfMHg1KHJlZykKK1ZQSEFERERfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgY2U1YjEwNTVlMTBkZDA1OC4zZWQxMTMzMmQ5N2FhYThkLjUwODRjMDI2MGI3OGI0OWYuNDNiOWM3YmRkZWFlYWYwMwogICAgIGM0MjYxNzFiZmE1ZWYyZjMuOTA1Mjg3ZDNmNDkzMzQ5ZS5hYzg5YThmMjdhZDliMjA4LjVlMzZmM2VhN2E4MDc0MGYKQEAgLTM5OTM5LDEyICszOTkzOSwxMiBAQAogICAgIDNiMWUxM2EyNjdlOTFiN2YuMDk0ZGVmMTEwMGQ0OGYyNS4yMzQwMmNhMzY4ZjJmNjZmLmUwYjNkMjljOWRlMmU5MGMKICAgICBmZTRkN2RmYTVkODkxMTU1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwYmYwMGZmMDE0YjAwODkuMDE2MTAxNzAwMjc3MDFjZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zODJjZDcwY2ZhZDNjMWVhLjI3NjM1YWZhZDhiNzY3ZjkKICAgICBjNDI2MTcxYmZhNWVmMmYzLjkwNTI4N2QzZjQ5MzM0OWUuYWM4OWE4ZjI3YWQ5YjIwOC41ZTM2ZjNlYTdhODA3NDBmCiAgICAgNzRmODE5NjY5ZDc5NGQ3MS4zNTM3YTdjZmEyMDI5NzE3LmQzYWVjZDRkNjQ3ZTA5YmYuOWVlZmNlM2I1YmUzZjNhZgogICAgIDNiMWUxM2EyNjdlOTFiN2YuMDk0ZGVmMTEwMGQ0OGYyNS4yMzQwMmNhMzY4ZjJmNjZmLmUwYjNkMjljOWRlMmU5MGMKICAgICBmZTRkN2RmYTVkODkxMTU1Ci1WTVBTQURCV18xMjhfMHg1KG1lbSkKK1ZQSEFERERfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZDU4ODRhM2ZiN2U1MjliNC43M2UxMDAzYmY0M2E5OWM4LmU4NWVkYjg1MjkxNGQ3ZjMuZjc4YmJmNjAxZmMxYjVjNQogICAgIDQxMzJiNTU5YzYwMWViNTUuNzk5MGRjOWVkZmY5MDNmOS5hZjM2ZTgxNzNhY2UyZGFlLmFiZGI4NGYxMjg3NzgxNmQKQEAgLTM5OTU0LDExICszOTk1NCwxMSBAQAogICBhZnRlcgogICAgIGQ1ODg0YTNmYjdlNTI5YjQuNzNlMTAwM2JmNDNhOTljOC5lODVlZGI4NTI5MTRkN2YzLmY3OGJiZjYwMWZjMWI1YzUKICAgICA0MTMyYjU1OWM2MDFlYjU1Ljc5OTBkYzllZGZmOTAzZjkuYWYzNmU4MTczYWNlMmRhZS5hYmRiODRmMTI4Nzc4MTZkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxZWMwMTc2MDE3MzAxZTAuMDBlMzAxN2MwMGE5MDE2OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xMTczYjM3ODE3NGQ3NTI1LmVhMDUxNWM1ZDQ1MzA2NWUKICAgICA0OGZlNTZiODc0YTk1ZjEwLjVmZGU1MTZlNDBlZjhhYzEuNjA3MDUxNDU4MWUxZWQ5OS4yMmI5OTEzYjk5Y2IzMzYwCiAgICAgOWVkZmQyY2MzYjdmOTEwNQogCi1WTVBTQURCV18xMjhfMHg2KHJlZykKK1ZQSEFERFNXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDY5M2EzNGUxOWQ0YmVjYWIuOWJiOTgzZDY0YjRlODk4Mi5mODE1ZTNiNGVlM2QxZmIxLjAzNjhhN2I5ZjE1M2QxMjIKICAgICBlMTE2YjJlNTViYmE4MWZlLmYzMTEzZjc4NDhlNDRlZTYuY2U2NzU0NzI2YjI5OGYzOC5mZDU4MGNmY2I3NmViMTQ3CkBAIC0zOTk2NiwxMiArMzk5NjYsMTIgQEAKICAgICA0NDgxZjg2YTVlYjM0ODVlLjIyY2M1MmY4MjIwZjk4MzUuYTQ4Y2MzMGI0MDBhZjRiZC42NTUwZjc5YmJiZDU1NzE3CiAgICAgOGNmMDc1Y2YzMDM3OTUxYQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGVjMDBhZTAwZTkwMGRiLjAxOTMwMTdlMDEyMTAxYzkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGUzNjZhNDIyODA1M2E3NC4yMmQ5ZmE2MTBhNTQ4MDAwCiAgICAgZTExNmIyZTU1YmJhODFmZS5mMzExM2Y3ODQ4ZTQ0ZWU2LmNlNjc1NDcyNmIyOThmMzguZmQ1ODBjZmNiNzZlYjE0NwogICAgIDYwYmY0YjQ0MTI1OThjYWIuMmNkNDA2OGE4Njc1NmE2OC4zZTIwYTAxNjUyM2YxODAzLjI5MGRmZWY4ZjE0MDQ5MzQKICAgICA0NDgxZjg2YTVlYjM0ODVlLjIyY2M1MmY4MjIwZjk4MzUuYTQ4Y2MzMGI0MDBhZjRiZC42NTUwZjc5YmJiZDU1NzE3CiAgICAgOGNmMDc1Y2YzMDM3OTUxYQotVk1QU0FEQldfMTI4XzB4NihtZW0pCitWUEhBRERTV18xMjgobWVtKQogICBiZWZvcmUKICAgICA3YWI4ZjQ4MjZjNzRjMDY5LmU3YTdiN2MzZGE1NGYyYzIuYjBjNmExYWUzN2JlOTU3OS41Y2Y3YjliZGQwMTY2MDEzCiAgICAgMGI3M2VlOWY4Yzk3OTQzMS5hNzdmODJiYjIyYzljNjg0LmI0OGU2ZTk4ZTI4YzFkNjAuYzJhYzdmOTg5ZmVmOTdiMQpAQCAtMzk5ODEsMTEgKzM5OTgxLDExIEBACiAgIGFmdGVyCiAgICAgN2FiOGY0ODI2Yzc0YzA2OS5lN2E3YjdjM2RhNTRmMmMyLmIwYzZhMWFlMzdiZTk1NzkuNWNmN2I5YmRkMDE2NjAxMwogICAgIDBiNzNlZTlmOGM5Nzk0MzEuYTc3ZjgyYmIyMmM5YzY4NC5iNDhlNmU5OGUyOGMxZDYwLmMyYWM3Zjk4OWZlZjk3YjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDExMzAwYmQwMGVhMDE2ZS4wMTc0MDBkODAwNGEwMGQyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDBjZDM3MTZiNDMwMjkuMjMyNmZmZWM0MjQ0ODAwMAogICAgIDg1ZjY0OGM3ZTZjMTI1ZGMuZTk3MDMyMzk4OTVjZGJkMS44YmI4NzJiOTY3YmJiZGM0LjA3Mjg2ODdhNjgzYTU5NzMKICAgICA5Zjg2ODM1ODlhYzQ1Y2VmCiAKLVZNUFNBREJXXzEyOF8weDYocmVnKQorVlBIQUREU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTU1ZTVlMTA3YTRhMWE2My4yNzU1OWZhYTU4ZTA1YjE1LjI1MjIwZDk2ZGU5Mzk0YjMuMTZiMmEyYzg3YjMyNGQ5YQogICAgIDg1ZmVmNDBjYTU1YmQwN2EuZGNkODYyYTcxZTE0MmE3OC5lY2I1ZTY0MjcxY2Q2N2EzLjg1YTkzZmJhOTNmYTU4YzMKQEAgLTM5OTkzLDEyICszOTk5MywxMiBAQAogICAgIGMyYzI0MTg1NGI0NzE0NDQuZWU3OTFlYTAxNGYxODE2Ny44ZmFkN2YzOWJiN2I0OTVkLjg0YzFiNWZjNDVhYmNkYmMKICAgICBjYTdhODYyMzE2YWRiMGU1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwZTcwMGZkMDExNjAxMWYuMDA4OTAwZTcwMDcxMDEyNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MDAwODAwMDgwMDA4MDAwLmQyZjc3ZmZmYzU2M2VjYmQKICAgICA4NWZlZjQwY2E1NWJkMDdhLmRjZDg2MmE3MWUxNDJhNzguZWNiNWU2NDI3MWNkNjdhMy44NWE5M2ZiYTkzZmE1OGMzCiAgICAgOGJiMTQxYmFiNzgwYmFlMi43ZjRhMGVhYTUzNmI0ZDJmLjliNzRiOGFhZGI5NjhmNGQuYjY2YWM3N2RjZDFmOTk2YQogICAgIGMyYzI0MTg1NGI0NzE0NDQuZWU3OTFlYTAxNGYxODE2Ny44ZmFkN2YzOWJiN2I0OTVkLjg0YzFiNWZjNDVhYmNkYmMKICAgICBjYTdhODYyMzE2YWRiMGU1Ci1WTVBTQURCV18xMjhfMHg2KG1lbSkKK1ZQSEFERFNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDY2NjFiNGRlNWMyZWZkMTAuODg3ZWYwZDlmZDNiMTk0Zi4wNDJmMGU3MzdjYjA4MjRiLjIyYWEzNzViYWEwN2QxN2UKICAgICAzMjQyYmQxOTM0M2M3MjY5LjM4MzE0YjIxNmFlOTA2YWQuOWMzOTVhMTFhOGI3MGIwOC5iMWI4ZGQ3YzQ2YzY2MzVjCkBAIC00MDAwOCwxMSArNDAwMDgsMTEgQEAKICAgYWZ0ZXIKICAgICA2NjYxYjRkZTVjMmVmZDEwLjg4N2VmMGQ5ZmQzYjE5NGYuMDQyZjBlNzM3Y2IwODI0Yi4yMmFhMzc1YmFhMDdkMTdlCiAgICAgMzI0MmJkMTkzNDNjNzI2OS4zODMxNGIyMTZhZTkwNmFkLjljMzk1YTExYThiNzBiMDguYjFiOGRkN2M0NmM2NjM1YwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTY3MDE1MzAwZTgwMGVkLjAxYzAwMWI1MDEzZDAwYzkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTJhMmZlZmI1YTA1ODAwMC5mNjRhYjNiZjhmMzQ3ZmZmCiAgICAgY2UyMTRlYmYwODJjYmU1OS5jNWFjZjI0M2UzYTA4NzEzLmM2NzlmNzVhYmFjNmE4YmMuMzMzN2RmNmJmNDBmOTMwMgogICAgIGRlNDAzNTExM2ViMGFhMjIKIAotVk1QU0FEQldfMTI4XzB4NihyZWcpCitWUEhBRERTV18xMjgocmVnKQogICBiZWZvcmUKICAgICBmNTg5Njc2NmE0YjViYWFmLjU2YjdjZDAzM2MyNzBmNDYuNWIwYzM2ZjMyN2MxOTM3NC4xMDQ3NDBkZWQ4ZTczNDBhCiAgICAgZDQ1ZjczZDdjMmE5MDE1NS43ZTc3MTc3NjcyZGU3NjEyLjRhOTIxNjQ4OTZjYzc3ZDguNGM5OWQ1ZGMyOTdlMzhlMgpAQCAtNDAwMjAsMTIgKzQwMDIwLDEyIEBACiAgICAgNWFlMzA2Yjk5OThmMWU5Zi4yMmE0Zjk5ZTUyYjE3OWY2LmE3NDM5NzkyNjNjZWI2NWMuMGVmOGQ0ZjZkNzQwOWJkYQogICAgIDRiOWQzNmVhNmI4MzcxNTMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBlZDAxMDEwMTllMDBkMC4wMTM0MDE1NTAwNGYwMTQxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjgwMDAzYjM5N2ZmZjNjMDUuNjBkYTBlYTQyMjc1NjI2MAogICAgIGQ0NWY3M2Q3YzJhOTAxNTUuN2U3NzE3NzY3MmRlNzYxMi40YTkyMTY0ODk2Y2M3N2Q4LjRjOTlkNWRjMjk3ZTM4ZTIKICAgICBkNzBmNTRjZTM1MThiOWMyLjIzMmRhNzA2YzU1ZWIwZTkuZjA4YjhkYWZjYjRkNmZlYy41NzNhMzI0MGNhOTg3MTZkCiAgICAgNWFlMzA2Yjk5OThmMWU5Zi4yMmE0Zjk5ZTUyYjE3OWY2LmE3NDM5NzkyNjNjZWI2NWMuMGVmOGQ0ZjZkNzQwOWJkYQogICAgIDRiOWQzNmVhNmI4MzcxNTMKLVZNUFNBREJXXzEyOF8weDYobWVtKQorVlBIQUREU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZWJmNmQ0MDhhMjZjYjAwNS5iOTI4ODUwMjg5OTk2ZTliLjU1YWE4OTI5MzRlNjhjNjYuY2QwNjMwNWZmOWRkODlkMwogICAgIGNiY2UyYTNkOTkwNzE0MWIuNTAyOWNkMTdhMWMzZTM2MC45OTA5ZDQ5NTg4MDZhNjY0LmJjMjA1NDgxMmEwNTI0ZmQKQEAgLTQwMDM1LDExICs0MDAzNSwxMSBAQAogICBhZnRlcgogICAgIGViZjZkNDA4YTI2Y2IwMDUuYjkyODg1MDI4OTk5NmU5Yi41NWFhODkyOTM0ZTY4YzY2LmNkMDYzMDVmZjlkZDg5ZDMKICAgICBjYmNlMmEzZDk5MDcxNDFiLjUwMjljZDE3YTFjM2UzNjAuOTkwOWQ0OTU4ODA2YTY2NC5iYzIwNTQ4MTJhMDUyNGZkCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwNjgwMTU1MDE4NTAxNTAuMDBlYzAxNmEwMGQ4MDFhMQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZWQzYzE0Y2ZkNjU4M2IwLjgwMDA4MDAwMTBhMTRmMDIKICAgICBiNjMwZWY5ODM1ODQzYTI1Ljk2OTNhYTUyYmJhNDJlZjYuYzUwNjg4YmRmMzNjZGViZC42OTg4MmY3M2NiZDJhMDFkCiAgICAgZGU2ZmRkMWM3MzhlZmE2YgogCi1WTVBTQURCV18xMjhfMHg3KHJlZykKK1ZQTUFERFVCU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOGRkYzA2Y2EyNTk0MGMxYy43YTUwNTY5NzEyN2U3NDcxLmZkOTQzNjUwZjU3MzdjMjAuNjQzYmU5NTE0MzZhNzQ2ZgogICAgIGQzMWNhN2VhN2U2ZjExZGQuZWQyMDY1NWIxZjViYzNkMi4wYjgxN2NjOWM3OTJlMGMzLjg0ZjlmNDc2NzViNDAxNjAKQEAgLTQwMDQ3LDEyICs0MDA0NywxMiBAQAogICAgIDhmNDQzZDJiOTNkNWU3M2QuNTEwMDZjZTczN2ViOGY4MS45MTUxMjJkZGE1ZWVkOTI3LmI3NDRmYTFlZWNjY2VmYWUKICAgICA4MjY5ZWM3YjZhYjNjODYyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxN2YwMTNhMDE5ZTAxYzIuMDE1NTAxYmMwMjE2MDE4MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNDcxNTk1OTk2ZmE4MDAwLjBlMjIyZTVjZjBhY2U2YzEKICAgICBkMzFjYTdlYTdlNmYxMWRkLmVkMjA2NTViMWY1YmMzZDIuMGI4MTdjYzljNzkyZTBjMy44NGY5ZjQ3Njc1YjQwMTYwCiAgICAgMGE3YmJhZTYxYWFiNDY1OS5lYjZjOThkMjc3MjZlMjczLjFlYTc3NjI5Y2U4Yzk2OGMuMDEwZTI2MTZhNDI2NDFiYwogICAgIDhmNDQzZDJiOTNkNWU3M2QuNTEwMDZjZTczN2ViOGY4MS45MTUxMjJkZGE1ZWVkOTI3LmI3NDRmYTFlZWNjY2VmYWUKICAgICA4MjY5ZWM3YjZhYjNjODYyCi1WTVBTQURCV18xMjhfMHg3KG1lbSkKK1ZQTUFERFVCU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgM2Y0Nzc5MTczYWU3ODgwNS5iZWM1MmIyNjg4NzgyZjM0LmY5YTg1Yjg2N2FiNzg0MjcuYzBjZDdiNGZlOTQzZTYzZgogICAgIGM4YWIxYmUwNzY3MmVhYzMuZjM0ODgxNDE5MzIxNWNlYi5jMDJmZTM5YzVkOTU3ZDkyLjA2NjY3ZGVkMzUxN2Y5ODEKQEAgLTQwMDYyLDExICs0MDA2MiwxMSBAQAogICBhZnRlcgogICAgIDNmNDc3OTE3M2FlNzg4MDUuYmVjNTJiMjY4ODc4MmYzNC5mOWE4NWI4NjdhYjc4NDI3LmMwY2Q3YjRmZTk0M2U2M2YKICAgICBjOGFiMWJlMDc2NzJlYWMzLmYzNDg4MTQxOTMyMTVjZWIuYzAyZmUzOWM1ZDk1N2Q5Mi4wNjY2N2RlZDM1MTdmOTgxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxNmYwMDMzMDBlYjAwZGQuMDE0NjAxMDcwMTFkMDFiZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lYTk4MDY1OTAxZDVkOWIyLmVhMmU3ZmZmMDE0MjA2NzUKICAgICBiMDM0OTNhNmE5YzI4ODNlLmRmODg1MThjNWNiMTRmNDguMWIwZWFjZDg3MGI3NmY2Ni40YjFkNmU1OTU2NmQyMDMxCiAgICAgMDJkNDU0MDA2NDA4YWNmOAogCi1WTVBTQURCV18xMjhfMHg3KHJlZykKK1ZQTUFERFVCU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDBkOGQzODJlYTUxMmU5OC5jOGYyNjA3YmQ2OWYzYTU0LjRlZGNjNDkyNTJiMjhlNDYuNjdmZGU0ZDhkOTE0ZGUyNwogICAgIDYzNzVlNzRhODRkNmUxYmQuMWQ2NTMzMmNlMTA0ODAzNC4zMzYyOGY2YWNmZThhMmIzLjQxZmNhNWZkNTJiNDQzNWMKQEAgLTQwMDc0LDEyICs0MDA3NCwxMiBAQAogICAgIGM0YThiZjYyNjdjMmNkNDkuZWU5ZGRkZDJmZTk3YjMwNC5jZjM4MTkzZWNjMjMzMzhkLjE0NTliMDZhZTFlOWRhZDUKICAgICBjNDUwZjE4YTMwOTg4NTcwCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxNDEwMGU5MDE0NjAwZDkuMDA4MTAxN2IwMGQ0MDFjMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMzZlMDVhYTNiMGEwM2ZjLmI4ZWI3OGIzYmEwMDI5MDAKICAgICA2Mzc1ZTc0YTg0ZDZlMWJkLjFkNjUzMzJjZTEwNDgwMzQuMzM2MjhmNmFjZmU4YTJiMy40MWZjYTVmZDUyYjQ0MzVjCiAgICAgYzVmNjhkYzdjZjIyMDIxNS44YjVhODlhNWU1ZmQxNDBiLmVhNjhhYzdmNmVkZmM0M2MuODdkNzZhMzVmNmExNTgzMgogICAgIGM0YThiZjYyNjdjMmNkNDkuZWU5ZGRkZDJmZTk3YjMwNC5jZjM4MTkzZWNjMjMzMzhkLjE0NTliMDZhZTFlOWRhZDUKICAgICBjNDUwZjE4YTMwOTg4NTcwCi1WTVBTQURCV18xMjhfMHg3KG1lbSkKK1ZQTUFERFVCU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNzM4NmFiODBmZWI4MTQyZi5iYWQ4N2I4OGU3NDE3ZTA4LjIyZmFhYmEwNGFkZDE4NGMuM2UyMGQxMTE4NDQxMjk1MQogICAgIGZjYzg1OTM4Njg1NzQ0NDAuMDVkMGJkYTVlYjJiNTBmYy4wMjNkNmZmOWUyZGIwMDBmLjkzNmFkMDY1MzJjNGUzMzUKQEAgLTQwMDg5LDExICs0MDA4OSwxMSBAQAogICBhZnRlcgogICAgIDczODZhYjgwZmViODE0MmYuYmFkODdiODhlNzQxN2UwOC4yMmZhYWJhMDRhZGQxODRjLjNlMjBkMTExODQ0MTI5NTEKICAgICBmY2M4NTkzODY4NTc0NDQwLjA1ZDBiZGE1ZWIyYjUwZmMuMDIzZDZmZjllMmRiMDAwZi45MzZhZDA2NTMyYzRlMzM1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxMzYwMGMwMDFiZjAyMWIuMDI1YzAxNWIwMGViMDE2MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZWQ2ODAwMDIzNjMwNDc0LjMwZGFlMDg1MTk4YzM1MjAKICAgICAxMWEwODE5ZTdlNDA3NzAyLjA1NGFiZjc1ZjE3MjRhMzUuM2JhNGNiMDA2YzMxNDliNC41ZjU3OTQ0MWUzMmE5MjBiCiAgICAgOGU5MTUwYTExZDI1ZmY1NQogCi1WTVBTQURCV18xMjhfMHg3KHJlZykKK1ZQTUFERFVCU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMTI1ZjQ0MzFiZWI2MjA2Zi41M2NlZjQyNTYzYTJmMTBjLjc0NjU3ODAwMmJlNmU5ZDIuNGE2MDVhODY5NWEwMjFlZQogICAgIDQ5MGI2YzVmNjE2ODMxMDUuZTEzNzRhMWQ1MmIzZmMxNy5hNjc4YTYzMjU5ZjY5YjU0Ljc3MzJjZjQ4N2JmODZkNTMKQEAgLTQwMTAxLDEyICs0MDEwMSwxMiBAQAogICAgIDNkMzE0NDQyMWU2MDExNTMuNGRlZTk1MTRjNDBmYjRkZS5jNmJhNTIzYTAzMTcyMmJhLjk3NDg1YzMwZjE5MTRiNGMKICAgICA0MzI0NmMyZWI3ZTk1NjM5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwZGMwMTg0MDIxMzAxM2QuMDA0NzAxNTEwMTY5MDFkOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNGM4NDNmYzMzOTZlM2MzLmNjZTdjNTRhNWUzOWY5NzgKICAgICA0OTBiNmM1ZjYxNjgzMTA1LmUxMzc0YTFkNTJiM2ZjMTcuYTY3OGE2MzI1OWY2OWI1NC43NzMyY2Y0ODdiZjg2ZDUzCiAgICAgOGVlMmMyOTZhMmM3NmRjMy45NmE5MDI3NDY5N2U1NDRlLmY4ZDE0NTc3MTgyZDk5NjguOWRlNmE2MzIzYjQ0ZTYwZQogICAgIDNkMzE0NDQyMWU2MDExNTMuNGRlZTk1MTRjNDBmYjRkZS5jNmJhNTIzYTAzMTcyMmJhLjk3NDg1YzMwZjE5MTRiNGMKICAgICA0MzI0NmMyZWI3ZTk1NjM5Ci1WTVBTQURCV18xMjhfMHg3KG1lbSkKK1ZQTUFERFVCU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgN2I0NTUyMThhYzVhYzQwMC5iMTQxZWRjZjcwYmQ1ODY0LmU0ZDM4MGViN2U3MmQ5ZjMuNmM4MGM4ZTliNjQxNzBmNQogICAgIDFkNzk4YWRiZWFmMDUxY2UuNDg2MWI5YTkzNTZkODBhMC4zNTI0NDBlNGI0YjQ3ZmI4LjQ2NmZhM2YwY2YzNmMwYzYKQEAgLTQwMTE2LDExICs0MDExNiwxMSBAQAogICBhZnRlcgogICAgIDdiNDU1MjE4YWM1YWM0MDAuYjE0MWVkY2Y3MGJkNTg2NC5lNGQzODBlYjdlNzJkOWYzLjZjODBjOGU5YjY0MTcwZjUKICAgICAxZDc5OGFkYmVhZjA1MWNlLjQ4NjFiOWE5MzU2ZDgwYTAuMzUyNDQwZTRiNGI0N2ZiOC40NjZmYTNmMGNmMzZjMGM2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxZWUwMTIwMDBiZjAwODMuMDE2MTAxMzYwMTEyMDEyYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mM2UwY2Q0YzdmZmZlMzRmLmU2MDhjNmM4ZDFlMDRiN2UKICAgICAwYjQ1ZTE5N2IyYjhiNzJlLjRiZmRhYmY1ODZlZjVlNGIuNzkzOTJjZWIwMTAyM2QwNC4wN2Y3NzhiMTljYjI1NmQ4CiAgICAgYTUyODZiNDQ4YTUxMTM3MgogCi1WTU9WRERVUF9ZTU1vck1FTTI1Nl90b19ZTU0ocmVnKQorVlBIU1VCV18xMjgocmVnKQogICBiZWZvcmUKICAgICBlN2IyYjNkZjRjZWNjMjUxLjBmNzZmODZhNzQwMjA3MTguNmYxMWM4M2U0YWRhOGMxMi4yMzk2NTBkMjUxMjdjZGUzCiAgICAgMjllMTRjZWM3ZTBlOWUyMi5lY2U4NTFjNWYwYTE2N2I4LjI2NjVmOTg1ZjE0NzhiYjQuZjk4ZTM5OGM4ZDVhY2UyMgpAQCAtNDAxMjgsMTIgKzQwMTI4LDEyIEBACiAgICAgMWM1ZTYyMTFhNDE3ZDE0OC5hMmMzYmFjMjgzMGM0MmNjLmI5Zjc4NWI5NTZkNGU2M2MuOTQ4MjQ2MjQzNjFjMTE3MwogICAgIDEzMTY2NGRiZGNjMmNjZGMKICAgYWZ0ZXIKLSAgICBlY2U4NTFjNWYwYTE2N2I4LmVjZTg1MWM1ZjBhMTY3YjguZjk4ZTM5OGM4ZDVhY2UyMi5mOThlMzk4YzhkNWFjZTIyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZlZjE3ZjFlOGIxNTJiNDYuZDMyMDlhNmQzZmZlNDBjOAogICAgIDI5ZTE0Y2VjN2UwZTllMjIuZWNlODUxYzVmMGExNjdiOC4yNjY1Zjk4NWYxNDc4YmI0LmY5OGUzOThjOGQ1YWNlMjIKICAgICBjNzAxMzJkOWJkNDNlNTkwLjdmNjk2OTkzNDFhMDkxM2IuY2E0MzM5MzQxNmMxOTVkZi5kNWVlNjEwM2QwYThmYmVlCiAgICAgMWM1ZTYyMTFhNDE3ZDE0OC5hMmMzYmFjMjgzMGM0MmNjLmI5Zjc4NWI5NTZkNGU2M2MuOTQ4MjQ2MjQzNjFjMTE3MwogICAgIDEzMTY2NGRiZGNjMmNjZGMKLVZNT1ZERFVQX1lNTW9yTUVNMjU2X3RvX1lNTShtZW0pCitWUEhTVUJXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDJjNzYzNTE1ZGRhNmU4NTYuODY0NGQ2MDBkMDE3OWZmNi4zMmM0YzIzZGQzZjAzNjk4LjRkY2ZkODdmNGMwZGJjNzkKICAgICBiYzZkMzdiZDU2ZDUyMDBjLjYwZmU4YzEyZGNjZThhNDUuMGIzNmZjZjA0ZDU4MjljYi5lMzE2MmRmMjk1Zjc1MTQyCkBAIC00MDE0MywxMSArNDAxNDMsMTEgQEAKICAgYWZ0ZXIKICAgICAyYzc2MzUxNWRkYTZlODU2Ljg2NDRkNjAwZDAxNzlmZjYuMzJjNGMyM2RkM2YwMzY5OC40ZGNmZDg3ZjRjMGRiYzc5CiAgICAgYmM2ZDM3YmQ1NmQ1MjAwYy42MGZlOGMxMmRjY2U4YTQ1LjBiMzZmY2YwNGQ1ODI5Y2IuZTMxNjJkZjI5NWY3NTE0MgotICAgIDlmYzhlNWJlNjI1YTMxMmIuMDZkOTdmYjM2NWM5ZDBlMi4wYWU2ZTRjNzBjNTBkNjkwLmQ4MTc4MjdlY2MxZWUyNDMKLSAgICA4NjQ0ZDYwMGQwMTc5ZmY2Ljg2NDRkNjAwZDAxNzlmZjYuNGRjZmQ4N2Y0YzBkYmM3OS40ZGNmZDg3ZjRjMGRiYzc5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhmNzk2MmE4OGFiMDcwNmMuZjFiYWRjNzM0YWRjYmI0YgorICAgIGIxNTRiYjA2MWU0MmQ3ZGYuZDQyMWFjNGYwNjkzYWE3OC4wOTlmZjdhZjJkZTVmYTE0Ljg2MWZkMzhmOGQwZmFiMjcKICAgICA0YTdhMWE5MTc1NTVlNzlhCiAKLVZNT1ZERFVQX1lNTW9yTUVNMjU2X3RvX1lNTShyZWcpCitWUEhTVUJXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDgxNzQ1NWYwMWY3Y2QzNGEuY2ZkYjM1ODBhNTk4Y2Q1My4yNTIyMGQ1MjVjYjg1N2I0LmU1MmZiMDkyY2IyMjUwODIKICAgICA4NTU5N2YxOTI4MTFhYmUxLmQzMmFjZjE4MTQ2OGQxYjQuNTcyOGEwMjgwMmM0MTI0MS43YTYwOGE1ZDAyMTQ5NjA3CkBAIC00MDE1NSwxMiArNDAxNTUsMTIgQEAKICAgICA2NzEzOTA3NWM2YjIwZDc1LjAwNGY1NTUyMThhOGVkZWIuY2I3MjRhZmViMGMzYTAwMS4zZmQ5OTc1ZGFkNDRkYzA1CiAgICAgMjdiOGMwNjg1OTliNTZkNgogICBhZnRlcgotICAgIGQzMmFjZjE4MTQ2OGQxYjQuZDMyYWNmMTgxNDY4ZDFiNC43YTYwOGE1ZDAyMTQ5NjA3LjdhNjA4YTVkMDIxNDk2MDcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWFiZjgxODk2MGZkOTcwOS40OTAwMGY3ZDBmZmQ5M2YzCiAgICAgODU1OTdmMTkyODExYWJlMS5kMzJhY2YxODE0NjhkMWI0LjU3MjhhMDI4MDJjNDEyNDEuN2E2MDhhNWQwMjE0OTYwNwogICAgIGIzNzQ5NDc2MmM5ZmFhMGIuOWEwYzA2YmE4NmJmOWQyZC5jNTdmNjAzZTk1NDQxNmNkLmE0MDAwNGZkZWZjNjg2Y2YKICAgICA2NzEzOTA3NWM2YjIwZDc1LjAwNGY1NTUyMThhOGVkZWIuY2I3MjRhZmViMGMzYTAwMS4zZmQ5OTc1ZGFkNDRkYzA1CiAgICAgMjdiOGMwNjg1OTliNTZkNgotVk1PVkREVVBfWU1Nb3JNRU0yNTZfdG9fWU1NKG1lbSkKK1ZQSFNVQldfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzg2OWZjMGMwZWQ2YWU2ZC5mZDgwNzA4MDkyZDcxMGNiLmUxYmQzOGNjZTUyZjdmMWEuYzQ0ZjU4ZDZmMGNlZWI4YwogICAgIDRlYjdjNjM0ZTkwMWExZjcuZDEwODJmMDUyZDk5ZWZiOC4xOTIzMmMxNTA5NjEwZGU1LjBlNjA4ODMxZjBmMDM0MTcKQEAgLTQwMTcwLDExICs0MDE3MCwxMSBAQAogICBhZnRlcgogICAgIDM4NjlmYzBjMGVkNmFlNmQuZmQ4MDcwODA5MmQ3MTBjYi5lMWJkMzhjY2U1MmY3ZjFhLmM0NGY1OGQ2ZjBjZWViOGMKICAgICA0ZWI3YzYzNGU5MDFhMWY3LmQxMDgyZjA1MmQ5OWVmYjguMTkyMzJjMTUwOTYxMGRlNS4wZTYwODgzMWYwZjAzNDE3Ci0gICAgNDU3MDlhY2MwNjI5ZWJhMC4zZmY3Yzk2ZjMyODVlNWU5Ljg0NGVhYjE3YTE0OTUzNzkuMDNmMmQ1N2E0Y2I1Yjc1MQotICAgIGZkODA3MDgwOTJkNzEwY2IuZmQ4MDcwODA5MmQ3MTBjYi5jNDRmNThkNmYwY2VlYjhjLmM0NGY1OGQ2ZjBjZWViOGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTcwZjk5ZWI5NDg3ZmFiZS4xMmYyMDQ4NDc5ZDE0MzI3CisgICAgZjk1ZWY1YzA3ZjU5NDc5My5hMzk5M2EyYTNlMjUyZjA5LmZkMDgzM2MwYzlmMzBmMDEuMDE1MTNiMWZhMWFhYjBlNAogICAgIDYyYzhiNjhiOGI1YTVhN2QKIAotVk1PVkREVVBfWU1Nb3JNRU0yNTZfdG9fWU1NKHJlZykKK1ZQSFNVQldfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODRhNTQzMmFhNTUxZjNjNy40NjRlNTJmYzcyOWQ3MmZkLjU5Mzk3ZmEyZWMwODA5YzUuNjIxZDNmZmE5YzZiZmJhYQogICAgIGMxMzJkZDY5OGIxYmI0NmYuMDcwYzJjNmNmYjAyMjgwOS5iZDI1OTI0M2Q5YjdhZmM5LjhlNWI0YmIzMzZiZWQ0YTAKQEAgLTQwMTgyLDEyICs0MDE4MiwxMiBAQAogICAgIDAwOTAyODcyMmQ1YmE1ODcuNWEyMjRkOTkzZDVjMjRiOS5mZjBjMTdiMGRkYWU0ZDU2LmFiN2U1NTRmMzIyMzNjMjEKICAgICA1M2ZiNGEwYWNhNGQ0MzA0CiAgIGFmdGVyCi0gICAgMDcwYzJjNmNmYjAyMjgwOS4wNzBjMmM2Y2ZiMDIyODA5LjhlNWI0YmIzMzZiZWQ0YTAuOGU1YjRiYjMzNmJlZDRhMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NWQyYmMwMDc3NGFhMTE2LmQ1MWVkNjEyYmQ1ODlkZTIKICAgICBjMTMyZGQ2OThiMWJiNDZmLjA3MGMyYzZjZmIwMjI4MDkuYmQyNTkyNDNkOWI3YWZjOS44ZTViNGJiMzM2YmVkNGEwCiAgICAgNzdiYzgwYjJkYTQ1ZGMyMC4xYTY0MDFmZDM1OTMyNWU0LjJiYTc3MTc5YTBjMDVjYzAuNWQ4Y2Q0ZDZiNGY4NTYwZQogICAgIDAwOTAyODcyMmQ1YmE1ODcuNWEyMjRkOTkzZDVjMjRiOS5mZjBjMTdiMGRkYWU0ZDU2LmFiN2U1NTRmMzIyMzNjMjEKICAgICA1M2ZiNGEwYWNhNGQ0MzA0Ci1WTU9WRERVUF9ZTU1vck1FTTI1Nl90b19ZTU0obWVtKQorVlBIU1VCV18xMjgobWVtKQogICBiZWZvcmUKICAgICAzM2QwMmZmMzliODIyN2U0LmI5ZjdkMTE2MjFlNzRjNTAuYTMxMjhhMmUyZTZhZTJiNi45NWEwODE1NTJkMGRiZDM5CiAgICAgMjZjOTgwZjZiZmNkYTRlYy5mZjQwNzgwODUxNzcwZDI2LmQwZmYzNmE2MjRjODFiMDQuNDlhZmE5ZDIyYzZhZWExMwpAQCAtNDAxOTcsMTEgKzQwMTk3LDExIEBACiAgIGFmdGVyCiAgICAgMzNkMDJmZjM5YjgyMjdlNC5iOWY3ZDExNjIxZTc0YzUwLmEzMTI4YTJlMmU2YWUyYjYuOTVhMDgxNTUyZDBkYmQzOQogICAgIDI2Yzk4MGY2YmZjZGE0ZWMuZmY0MDc4MDg1MTc3MGQyNi5kMGZmMzZhNjI0YzgxYjA0LjQ5YWZhOWQyMmM2YWVhMTMKLSAgICAwN2IxYmFmZjUyM2E3NTRhLjJjYjYxOGI2NWE5NzI0YjYuYmZiNmNjZWYzYzgyOGFkMi43Njg1OGQ5NTc1NTAwZTkwCi0gICAgYjlmN2QxMTYyMWU3NGM1MC5iOWY3ZDExNjIxZTc0YzUwLjk1YTA4MTU1MmQwZGJkMzkuOTVhMDgxNTUyZDBkYmQzOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNzFjYjQ0Y2ViYjU5MDJjLjY1YTdmNjNjNjAyM2JkYTkKKyAgICBiNDU2NTdmYjcwZDU1NzI3LjlkYTRhZDhiZDdkMWNjYWMuNGIwM2M4ZjQ5MmE1ZWM0YS43YTZkMjgwOWE1NGM2NjVkCiAgICAgYjBiNTc2OTk1NmU5MmQyNgogCi1WTU9WTFBTXzEyOF9NNjRfWE1NX1hNTShyZWcpCitWUEhTVUJEXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDc0YTc3NGIzMjdiM2ExOTcuMDg4MmQ1ZDQzN2FiMDZiMi5hZTU4MzNmMjY1YjM0MmIzLjRmYjJhN2ExNDEzY2ZkOTgKICAgICAyMTkwMWNjMmIyMzZmYjVhLmRlMDNiMDc4YzBjNzNkMTQuYmMxY2E3NTk5ZmM5YzE3Ny5hOThmZTNlMjY1NTM3OGU5CkBAIC00MDIwOSwxMiArNDAyMDksMTIgQEAKICAgICBhYjc2NWY2ZjY3OWE1OThkLjg0MmU2OWNkOGUwMjM2MTQuM2EwNjQ2ZDQ4OWJlY2VlOS5jYjAyNjdkMDdmMzNhMDQzCiAgICAgNGIzMWE2NTZhYjE0YzNhNAogICBhZnRlcgotICAgIDc0YTc3NGIzMjdiM2ExOTcuMDg4MmQ1ZDQzN2FiMDZiMi5hZTU4MzNmMjY1YjM0MmIzLjRmYjJhN2ExNDEzY2ZkOTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE2MTgzN2FlODkwMjBjNi5lM2FkMWExZWJiYzM5NTA3CiAgICAgMjE5MDFjYzJiMjM2ZmI1YS5kZTAzYjA3OGMwYzczZDE0LmJjMWNhNzU5OWZjOWMxNzcuYTk4ZmUzZTI2NTUzNzhlOQogICAgIDE1YmM2YzMyOTNmZjdhMWUuMTRhMzYyZDEyOTM1Yjk3Yy4yMTNkMDQyYjIyOWU4N2E1LjMzNjZmYWEzMWJmNzFiNjkKICAgICBhYjc2NWY2ZjY3OWE1OThkLjg0MmU2OWNkOGUwMjM2MTQuM2EwNjQ2ZDQ4OWJlY2VlOS5jYjAyNjdkMDdmMzNhMDQzCiAgICAgNGIzMWE2NTZhYjE0YzNhNAotVk1PVkxQU18xMjhfTTY0X1hNTV9YTU0obWVtKQorVlBIU1VCRF8xMjgobWVtKQogICBiZWZvcmUKICAgICA5MWJkMzQxZmJlYTQ0MmI4LjNlMGNmMmU2Yzk5MWQzNTQuMGM3MjQwNTcwYTM5NzAwOS42M2M1NjljMTcxYjVkMmVmCiAgICAgNzc3MzhjMThkMWYxZDdhYS4yY2M4MWYwMTU2NzIyNTFlLjg2M2E2MzViYmFlNzIyODYuZjhjNTY5NWM3NTEwZDE2MgpAQCAtNDAyMjQsMTEgKzQwMjI0LDExIEBACiAgIGFmdGVyCiAgICAgOTFiZDM0MWZiZWE0NDJiOC4zZTBjZjJlNmM5OTFkMzU0LjBjNzI0MDU3MGEzOTcwMDkuNjNjNTY5YzE3MWI1ZDJlZgogICAgIDc3NzM4YzE4ZDFmMWQ3YWEuMmNjODFmMDE1NjcyMjUxZS44NjNhNjM1YmJhZTcyMjg2LmY4YzU2OTVjNzUxMGQxNjIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODYzYTYzNWJiYWU3MjI4Ni42M2M1NjljMTcxYjVkMmVmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZkYzcyZmIyMGRmMDY5MmUuMzRhY2JmMmI3YzRiNjgwNgogICAgIDk3OGM4YTRjNmRmMTM2ZGEuODVlNjNjZDc1ZjIwM2Y2ZC5jNDg1N2U4MTIzZDVlMWNhLmQ2YjZmMjUwNDIxZmFiNDAKICAgICBkNzQwNzI4MDQzZWNmZjA0CiAKLVZNT1ZMUFNfMTI4X002NF9YTU1fWE1NKHJlZykKK1ZQSFNVQkRfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjQzYmJmMTBkMTRjM2NlNi44ODg4Mjg1ZDJkYmI3NzZmLmE4ZGYyMzZhMTMwNTgwNGIuM2ZhMDZkN2IxNTJkNjVlOQogICAgIGM5ZjNkNjZiODhjYzlmOTEuOGFkZDgxNGY1ZjcxYmY5NC45NjJmOTY1MTYyMDM4OWRiLjFkNmY5OWEwYWEyYzUyNDEKQEAgLTQwMjM2LDEyICs0MDIzNiwxMiBAQAogICAgIDBhYzk0ZTMyZGU1OWM3ZjMuMzJjNjUwODM4N2QzNTMzOC4zZTAzMGNkMDNlN2NlMmM3LjczNTg5NjE3MzA0ZDU3NGEKICAgICBhMjBiNWY0MTU3ODZlNjU0CiAgIGFmdGVyCi0gICAgYjQzYmJmMTBkMTRjM2NlNi44ODg4Mjg1ZDJkYmI3NzZmLmE4ZGYyMzZhMTMwNTgwNGIuM2ZhMDZkN2IxNTJkNjVlOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZTg2MDZkMWM0MWZlNjIzLmNiZDNmMzhhOGNiY2I4YTEKICAgICBjOWYzZDY2Yjg4Y2M5ZjkxLjhhZGQ4MTRmNWY3MWJmOTQuOTYyZjk2NTE2MjAzODlkYi4xZDZmOTlhMGFhMmM1MjQxCiAgICAgNzJiM2IxZmQwM2Y2NjRiMS43YTU5MGYwZDFlMjBjYTczLmE5MjE4ZmZhZTdhNzk2Y2IuM2JiZDdlZGFmZmRkNjRmZAogICAgIDBhYzk0ZTMyZGU1OWM3ZjMuMzJjNjUwODM4N2QzNTMzOC4zZTAzMGNkMDNlN2NlMmM3LjczNTg5NjE3MzA0ZDU3NGEKICAgICBhMjBiNWY0MTU3ODZlNjU0Ci1WTU9WTFBTXzEyOF9NNjRfWE1NX1hNTShtZW0pCitWUEhTVUJEXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGE0YTE1MzQ2OTM5N2NlNDYuZWY3ZmE5NzZiNjdlMDMwMy44ZmYxYzA5ZWI1OTcxNzExLmIyMWYwODNmMDQwZWFhN2IKICAgICA1NWU3ZjExMWZkODljYjRjLjdjMjJiYzM1MjZmMzU1OGMuNmRhNWQ5NDhjNDc3ZDIyOC41ZmMyN2ZiM2Q1ZWEyOTkyCkBAIC00MDI1MSwxMSArNDAyNTEsMTEgQEAKICAgYWZ0ZXIKICAgICBhNGExNTM0NjkzOTdjZTQ2LmVmN2ZhOTc2YjY3ZTAzMDMuOGZmMWMwOWViNTk3MTcxMS5iMjFmMDgzZjA0MGVhYTdiCiAgICAgNTVlN2YxMTFmZDg5Y2I0Yy43YzIyYmMzNTI2ZjM1NThjLjZkYTVkOTQ4YzQ3N2QyMjguNWZjMjdmYjNkNWVhMjk5MgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZGE1ZDk0OGM0NzdkMjI4LmIyMWYwODNmMDQwZWFhN2IKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjVhNTU2NzM1MWVmYTIzYy41NmQxZjhlMDc2MjdhOWRmCiAgICAgMzViMzEzYThkMTQ1ZjM0Ny5mZDVmZmVkNDQwZmIyYWJjLjFkZGNmYmZjZjhiYzFjYzEuZDdjZGQwNWEwNWFkNDA5YgogICAgIDViY2RhMTY2OWRhZDRlZTQKIAotVk1PVkxQU18xMjhfTTY0X1hNTV9YTU0ocmVnKQorVlBIU1VCRF8xMjgocmVnKQogICBiZWZvcmUKICAgICA4ODgzZGQyNmIwMjYwNTQyLjFiZDE5MTRlNzIyNzk1OTQuYWE5MTI1OGQyMWE1MjViYS5hNmY3ZmJkZjU0MzkyMzljCiAgICAgYmIzZDgwMDhkOWE0OWY1Zi4yMGNlYTc2OWIzMWIzZGE1LjZmZGZmNjcwMGNkMDI2ZTIuMjBjYjk1MDIwMTAyMTE2NQpAQCAtNDAyNjMsMTIgKzQwMjYzLDEyIEBACiAgICAgYTNlOGVjZGVkZWUxNmY4OC5mNzk5OGNiMTgzNmE4YmM0LmIwMDM4MjY5NjlkMjI5NWUuNTdkMTg5YjdjMGE5OTE3MwogICAgIGNjOWFkYTIyMGFhMDliMTAKICAgYWZ0ZXIKLSAgICA4ODgzZGQyNmIwMjYwNTQyLjFiZDE5MTRlNzIyNzk1OTQuYWE5MTI1OGQyMWE1MjViYS5hNmY3ZmJkZjU0MzkyMzljCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYyNmVmY2Y0YjRmZTVhZjkuOWNmMDMwNzJlMDM2N2M2MwogICAgIGJiM2Q4MDA4ZDlhNDlmNWYuMjBjZWE3NjliMzFiM2RhNS42ZmRmZjY3MDBjZDAyNmUyLjIwY2I5NTAyMDEwMjExNjUKICAgICA1MDQ1ODc3N2I0YjQ1OWU4LjIwNzhkMWU2YWYyZGE1YTYuYTc5NjZiZWI5YTA1NjhkZi42NzI1NDY1MDFjMjNhMTQ5CiAgICAgYTNlOGVjZGVkZWUxNmY4OC5mNzk5OGNiMTgzNmE4YmM0LmIwMDM4MjY5NjlkMjI5NWUuNTdkMTg5YjdjMGE5OTE3MwogICAgIGNjOWFkYTIyMGFhMDliMTAKLVZNT1ZMUFNfMTI4X002NF9YTU1fWE1NKG1lbSkKK1ZQSFNVQkRfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTE0ZWI1N2QxNTEyN2I0Yi4xMDcyYWRhYmYyYjgxY2VjLjgxZmU1MmI3NGFkZGE4MmIuZTU3MDM2NTUxNWMyYTMwYQogICAgIGI0Yjc5NmI0ZmUwZGVmNTIuZjMyZmM2NDk4ZGMzOWRiZi45YTczYTFlMjIwOTJiYjA2LmExMjk4MzFkMzk2MjEyOTEKQEAgLTQwMjc4LDExICs0MDI3OCwxMSBAQAogICBhZnRlcgogICAgIGExNGViNTdkMTUxMjdiNGIuMTA3MmFkYWJmMmI4MWNlYy44MWZlNTJiNzRhZGRhODJiLmU1NzAzNjU1MTVjMmEzMGEKICAgICBiNGI3OTZiNGZlMGRlZjUyLmYzMmZjNjQ5OGRjMzlkYmYuOWE3M2ExZTIyMDkyYmIwNi5hMTI5ODMxZDM5NjIxMjkxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjlhNzNhMWUyMjA5MmJiMDYuZTU3MDM2NTUxNWMyYTMwYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jOGRmNTU3NDMwNTI2Y2I1Ljg2MWYxOTI0OTgzODhmNzQKICAgICAwMWRiNWM2N2Q4Y2M3ZTZlLjhiNzFlY2E4YzZhYjBhNjQuZThiY2M3NWM2Y2Y0YWVjYi4yMmI0ZDllZTVhZGZjM2RhCiAgICAgOWUxY2RhY2Y5MGQ1N2NmNAogCi1WTU9WTFBTXzEyOF9YTU1fTTY0KHJlZykKK1ZQSFNVQlNXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDEzMDE2NDNjYWRhYTFhOTkuZjMyZTM4YmEwMWE4MTFkYy5mODhlZjI0MTljOWY2ZjhmLmQ2Mjk5NzgxMThiODA3MGMKICAgICBkYmFmNzM5ZjUwZWFkYjczLjkyNjcwYTk5NzgzZDI3YzQuNGIwZTNmNWM2OGY4OTZkOC5jM2Q1ZGU3ZDQ1ZWY0NDcyCkBAIC00MDI5MCwxMiArNDAyOTAsMTIgQEAKICAgICBkODk2MTFmYjkyZGRiMDc4LjQ2YmE4MWFkYmRiZWNjYjUuMTM2NzlmYzQ1NTBhMjI3Yi4wOTFkYzdhNzhjZTM1ZDViCiAgICAgMWI1MTVmYWVkZmI5YjEzNwogICBhZnRlcgotICAgIDEzMDE2NDNjYWRhYTFhOTkuZjMyZTM4YmEwMWE4MTFkYy5mODhlZjI0MTljOWY2ZjhmLmQ2Mjk5NzgxMThiODA3MGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWYyNmY3YWM3ZmZmMTQ4NC5mNDRlODAwMDFhYThmZTgzCiAgICAgZGJhZjczOWY1MGVhZGI3My45MjY3MGE5OTc4M2QyN2M0LjRiMGUzZjVjNjhmODk2ZDguYzNkNWRlN2Q0NWVmNDQ3MgogICAgIDU0NzIwMzY1MTMyMmY5MmYuYjk1MjRmZjE1ODk1N2M1My5lMDNkY2Y2M2M3NDJiZWVlLjhhOGQxYTNiMGRhNDIyMjgKICAgICBkODk2MTFmYjkyZGRiMDc4LjQ2YmE4MWFkYmRiZWNjYjUuMTM2NzlmYzQ1NTBhMjI3Yi4wOTFkYzdhNzhjZTM1ZDViCiAgICAgMWI1MTVmYWVkZmI5YjEzNwotVk1PVkxQU18xMjhfWE1NX002NChtZW0pCitWUEhTVUJTV18xMjgobWVtKQogICBiZWZvcmUKICAgICA5Y2Y1NWYzYTIxMzFkOWU3LmM0Njc5OGNjNmFhNzNlZmIuMTQ2YzFlYjhjNGM0ZDIxNS4zZmQ4YWFlOWFkZGJmZDJiCiAgICAgNjdkNDQ0Mzg2ZjU3OTI5Ny43NDMwOTQ0MzM2MGRkZDYzLmZlMzRhMjAwODliMTRjYTAuYzJkYmVjNDA2YjQyOGJhYgpAQCAtNDAzMDMsMTMgKzQwMzAzLDEzIEBACiAgICAgNGY3N2FhM2I5Y2RmYTZhYi45MWRkZGNkODFjZGE0MTk1LjlhMzY0YmY0YmE3Njg2ZTYuMzljYjA1MzE4Y2ZmYjRjYQogICAgIGU2NGZkNWEyMjY2ZGM2YzEKICAgYWZ0ZXIKLSAgICA5Y2Y1NWYzYTIxMzFkOWU3LmM0Njc5OGNjNmFhNzNlZmIuMTQ2YzFlYjhjNGM0ZDIxNS5mN2JlNjEzNDJjY2EwYWE3CisgICAgOWNmNTVmM2EyMTMxZDllNy5jNDY3OThjYzZhYTczZWZiLjE0NmMxZWI4YzRjNGQyMTUuM2ZkOGFhZTlhZGRiZmQyYgogICAgIDY3ZDQ0NDM4NmY1NzkyOTcuNzQzMDk0NDMzNjBkZGQ2My5mZTM0YTIwMDg5YjE0Y2EwLmMyZGJlYzQwNmI0MjhiYWIKLSAgICA1YWJjODk5NWU0Mzg5ODc1LjQ1M2UwMWNlOTM5YWNhNWQuZTJkZTg3NzAyNzkzZjM4Mi5mN2JlNjEzNDJjY2EwYWE3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhNGMwZDUxODAwMDRmNTAuYTNjYzdmZmYyOTY1ODAwMAogICAgIDRmNzdhYTNiOWNkZmE2YWIuOTFkZGRjZDgxY2RhNDE5NS45YTM2NGJmNGJhNzY4NmU2LjM5Y2IwNTMxOGNmZmI0Y2EKICAgICBlNjRmZDVhMjI2NmRjNmMxCiAKLVZNT1ZMUFNfMTI4X1hNTV9NNjQocmVnKQorVlBIU1VCU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTk5NmNjZjY5NmExN2MzOC4yNGQyMjQxOGI1NTg3OTY1LmI1NTkyMGNkNmQ1YTdkYjYuMDQwODY4Nzg1ZjY1YmZmOQogICAgIGVkZWNlNjk2NzkyNzExZGEuYjM5OTcyMTc0OGIwY2RkMC4wZGZlYzkxOTIzYTViYjZkLmZhMWY1Y2U4MzE2YzViZTYKQEAgLTQwMzE3LDEyICs0MDMxNywxMiBAQAogICAgIGVjZjQ3NDZkMDY1NWNiNTEuNzM5YTdhMmI1MjJiZTc2OC5jOWYyM2E2NzJkY2QyYzRiLmZlNTBiNzNkY2VmM2FiMDAKICAgICBjNDAxMTZmYWQxOGJkODg1CiAgIGFmdGVyCi0gICAgNTk5NmNjZjY5NmExN2MzOC4yNGQyMjQxOGI1NTg3OTY1LmI1NTkyMGNkNmQ1YTdkYjYuMDQwODY4Nzg1ZjY1YmZmOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZTEwNWQxZTgwMDBjOTQzLmJiMWI5N2M4NjJjOTJhN2EKICAgICBlZGVjZTY5Njc5MjcxMWRhLmIzOTk3MjE3NDhiMGNkZDAuMGRmZWM5MTkyM2E1YmI2ZC5mYTFmNWNlODMxNmM1YmU2CiAgICAgMDA5YzFmZWY2YTg5YzI1NC5kYTk4MGYyNDczZjI1ZTE4LmY1MThkMzI4ZGE0NzM3NjUuNWE0OWEzMzE0ZDk3MTZkYQogICAgIGVjZjQ3NDZkMDY1NWNiNTEuNzM5YTdhMmI1MjJiZTc2OC5jOWYyM2E2NzJkY2QyYzRiLmZlNTBiNzNkY2VmM2FiMDAKICAgICBjNDAxMTZmYWQxOGJkODg1Ci1WTU9WTFBTXzEyOF9YTU1fTTY0KG1lbSkKK1ZQSFNVQlNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDg2MjgzYjUyNzE2YzU2OTUuMGYzZWUwN2RlODE2Njg3ZS41YzZkMmMxODAwNjYyNWVkLmU1ZGFmYjQwYjhjMmQ3Y2IKICAgICAyMTkwYTIzM2NiYTBlNDViLmMzYzc1Zjg5YWQ1OWQ0ODYuNmZkYmEyZDc5OWFmZDRkMy5hNTFhMTEyMTE4YjM3NDkwCkBAIC00MDMzMCwxMyArNDAzMzAsMTMgQEAKICAgICA1MzU3MjczYzFiMzcxYmJjLjUyYzY4NjRhNGU5MjBjZGEuODdiYmNjN2JmZjljNzM2Zi44MWQ1MmNhN2M2YjY3MzliCiAgICAgNTVlODJhMjU0YmUwNGQzOQogICBhZnRlcgotICAgIDg2MjgzYjUyNzE2YzU2OTUuMGYzZWUwN2RlODE2Njg3ZS41YzZkMmMxODAwNjYyNWVkLjY1ZmY3ODc0ZTkyYTNmNDcKKyAgICA4NjI4M2I1MjcxNmM1Njk1LjBmM2VlMDdkZTgxNjY4N2UuNWM2ZDJjMTgwMDY2MjVlZC5lNWRhZmI0MGI4YzJkN2NiCiAgICAgMjE5MGEyMzNjYmEwZTQ1Yi5jM2M3NWY4OWFkNTlkNDg2LjZmZGJhMmQ3OTlhZmQ0ZDMuYTUxYTExMjExOGIzNzQ5MAotICAgIDcyMDdjNzg4ZmEzNjNjMDQuNjZkYmVkZmZmMGE5NGMxNi44OWIxNTk1NDNhMTJhZjQ1LjY1ZmY3ODc0ZTkyYTNmNDcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2ZhYjI1ODcxNTY2MWYwOS44MDAwM2IyNDZjMDc1YmRkCiAgICAgNTM1NzI3M2MxYjM3MWJiYy41MmM2ODY0YTRlOTIwY2RhLjg3YmJjYzdiZmY5YzczNmYuODFkNTJjYTdjNmI2NzM5YgogICAgIDU1ZTgyYTI1NGJlMDRkMzkKIAotVk1PVkxQU18xMjhfWE1NX002NChyZWcpCitWUEhTVUJTV18xMjgocmVnKQogICBiZWZvcmUKICAgICAzZDgzNmQ1OTE1MzYwOWNkLmExNGUzZDNkNDliMTNkYWUuZTVkNDI3ZDU2MmExNGY3ZC40M2M1NzczOTAyNThkYzdlCiAgICAgOTVmNGYwYjFiZjQzZTMwMi4zOWI2ODU3NmEwYWY1ZTA2Ljc5NTBjYjBlYzg2MTUzYWMuOWE5YmQ3Nzg2MjUzYTY5ZQpAQCAtNDAzNDQsMTIgKzQwMzQ0LDEyIEBACiAgICAgMDQ4M2FjN2IyNWIzZGYwMS5iMjBiOWM0MTNjNjk4YjliLjE4YzYwYzM3ZmQyNTg4NWQuODlkOWEyMmRhMzMzNGJjMAogICAgIGRhZGIwNjdiYmQzMDlmMTkKICAgYWZ0ZXIKLSAgICAzZDgzNmQ1OTE1MzYwOWNkLmExNGUzZDNkNDliMTNkYWUuZTVkNDI3ZDU2MmExNGY3ZC40M2M1NzczOTAyNThkYzdlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyZDkzM2I1ZmUxZTgwMDAuODAwMDdmZmYzY2RkODAwMAogICAgIDk1ZjRmMGIxYmY0M2UzMDIuMzliNjg1NzZhMGFmNWUwNi43OTUwY2IwZWM4NjE1M2FjLjlhOWJkNzc4NjI1M2E2OWUKICAgICBiOTg1YjI5OGU2OTMxNjg1LmY1NWM3YmQ0M2QzZTM5ZjEuNmI4NzZlNjAxZDVlNTExMy42ODA4NjYyNjM5OTg4Y2ZiCiAgICAgMDQ4M2FjN2IyNWIzZGYwMS5iMjBiOWM0MTNjNjk4YjliLjE4YzYwYzM3ZmQyNTg4NWQuODlkOWEyMmRhMzMzNGJjMAogICAgIGRhZGIwNjdiYmQzMDlmMTkKLVZNT1ZMUFNfMTI4X1hNTV9NNjQobWVtKQorVlBIU1VCU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMzVkODBmZmJhMjljNDMzNC5kNDNhZGNjNDE5MmU3YTIzLjRjOTE2MmFhYjgzYzBmMzAuZGE1N2ExMDAwMzQxMzIzNgogICAgIDc3OWQzNzk5NmU4MmY1M2EuODRmNjNjZTA1ZDkxMjI5Ni45ZmI4NGJmY2NkYzM4M2RiLjBlODYyYTI1Y2IzZThjNGMKQEAgLTQwMzU3LDEzICs0MDM1NywxMyBAQAogICAgIDIwYWVkOWRmMmVlZTZkYmUuZjNhYzgyNDI0NzNjOGMyMi5lMDFkNzQwNzM1MWYyNTI0LjNkZjMwNTM3MTQwZDQwZDkKICAgICBlZmM3NTBmYmNjZjYxMWE5CiAgIGFmdGVyCi0gICAgMzVkODBmZmJhMjljNDMzNC5kNDNhZGNjNDE5MmU3YTIzLjRjOTE2MmFhYjgzYzBmMzAuMTBhMWEyMTNmMmE5ZDI0OAorICAgIDM1ZDgwZmZiYTI5YzQzMzQuZDQzYWRjYzQxOTJlN2EyMy40YzkxNjJhYWI4M2MwZjMwLmRhNTdhMTAwMDM0MTMyMzYKICAgICA3NzlkMzc5OTZlODJmNTNhLjg0ZjYzY2UwNWQ5MTIyOTYuOWZiODRiZmNjZGMzODNkYi4wZTg2MmEyNWNiM2U4YzRjCi0gICAgN2NmNWZjNDEzZmVmNmU1YS42ZjAyY2IzYzhlNjcxNDA3Ljg3NGVkMjIxOTgwYmExYzguMTBhMWEyMTNmMmE5ZDI0OAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNjE5NTZmNGM2YTkyZWY1LjdmZmZiNjE4MWI5ZmMxMGUKICAgICAyMGFlZDlkZjJlZWU2ZGJlLmYzYWM4MjQyNDczYzhjMjIuZTAxZDc0MDczNTFmMjUyNC4zZGYzMDUzNzE0MGQ0MGQ5CiAgICAgZWZjNzUwZmJjY2Y2MTFhOQogCi1WUkNQU1NfMTI4KHJlZykKK1ZQQUJTQl8xMjgocmVnKQogICBiZWZvcmUKICAgICA4MzZhN2RjZGI2ZjE4MjY1LjNmOTI0YTYwNTk4YmFjOTIuNmIzZTVlNjAyNTlkYzY5Mi44NmYyYWI5OGJmMGNjZDFiCiAgICAgNTUyODhhMTg2Zjg5Y2ViOC5iNTZmY2JhZWRjZDNlOTA0LjMyMDU1YzAwYzMxNWZkMDQuNTU5OWY1YzI1MmRkNTNkOQpAQCAtNDAzNzEsMTIgKzQwMzcxLDEyIEBACiAgICAgMjMyNTMxYzhiY2MxZWJkNS4xNjNmZWY2NTU3OTE0NzZjLjIxNjJhYjdiYjA3YTU1OWQuZGU4Y2FmOGUwNTVjZWM1NwogICAgIDUwNzAxODA4NWQyMjc2NzAKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzIwNTVjMDBjMzE1ZmQwNC41NTk5ZjVjMjczNGVjODAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVhNGQ3NzcwNDMzMDZlMjQuMjkyMzMzNzAwYjYyNzQ3NwogICAgIDU1Mjg4YTE4NmY4OWNlYjguYjU2ZmNiYWVkY2QzZTkwNC4zMjA1NWMwMGMzMTVmZDA0LjU1OTlmNWMyNTJkZDUzZDkKICAgICBjMTRkNzI0NzkyNGEzMzRmLjVlMGZkOWI2ZDJkMWRkM2QuYTY0ZDc3OTBiZDMwNmUyNC4yOWRkY2Q3MDBiOWU3NDg5CiAgICAgMjMyNTMxYzhiY2MxZWJkNS4xNjNmZWY2NTU3OTE0NzZjLjIxNjJhYjdiYjA3YTU1OWQuZGU4Y2FmOGUwNTVjZWM1NwogICAgIDUwNzAxODA4NWQyMjc2NzAKLVZSQ1BTU18xMjgobWVtKQorVlBBQlNCXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDViNTY4MmNhMmVmY2NmMDAuZDdmY2M0MDY4ODc5MzNmNy5iOGNhODlhNjg4MjBlMWJiLjAxOTBmNDJkMzg4MGVkMWMKICAgICBkYjBhNmJjMTk0ZjdiMzMyLjM5MWQyNjZlOTNmZjQ2NjAuMjI3ZTIzNjQ4MTg5Njg1Ni5hMDIyNGYxMmYwY2U3MzRjCkBAIC00MDM4NiwxMSArNDAzODYsMTEgQEAKICAgYWZ0ZXIKICAgICA1YjU2ODJjYTJlZmNjZjAwLmQ3ZmNjNDA2ODg3OTMzZjcuYjhjYTg5YTY4ODIwZTFiYi4wMTkwZjQyZDM4ODBlZDFjCiAgICAgZGIwYTZiYzE5NGY3YjMzMi4zOTFkMjY2ZTkzZmY0NjYwLjIyN2UyMzY0ODE4OTY4NTYuYTAyMjRmMTJmMGNlNzM0YwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMjdlMjM2NDgxODk2ODU2LmEwMjI0ZjEyNDY3ZTMwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDgzNjc3NWE3ODIwMWY0NS4wMTcwMGMyZDM4ODAxMzFjCiAgICAgYTkwY2E4Zjk5MjdkMGIyZi43NzcxNDc2N2QzYTJjMGJhLmJiOGQ0ODBjMzgxYTJjMjMuOGZhNjI4MjU2MTZlMzk3MQogICAgIDk3MmY5ZTJjNTJkYWYwYmUKIAotVlJDUFNTXzEyOChyZWcpCitWUEFCU0JfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgY2U0ZDE2MTVlNGJjODU2ZC5iMGYyZjMxNDYxMjFmNzUxLjBhM2JmZWQxNDFkNzlmMDMuYTI4MGNiY2QyZjVhZTFhYwogICAgIDkxNGM4YTRlYjJhMjM0MjkuOWJkNWFkMTMzNjE1NWRjNi5iYzgwNzQxNTVlMGEzOTQzLmJmY2IzZWJjNWRhNDczMzIKQEAgLTQwMzk4LDEyICs0MDM5OCwxMiBAQAogICAgIDJjMWM1YjVjNzRhOGNlN2IuOTJjNTViNmM1ZjFlOGI1Ny5lYWFhOGZkNzEyOTg5MTU5LjEwOThlNWQ1ZDA4ODFkZTQKICAgICBmYWIzMTFkNjRkMzlhZDY4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJjODA3NDE1NWUwYTM5NDMuYmZjYjNlYmM5ZmY1NDgwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xODc1NWE2MjNiM2EzNTI2LjEwM2ExZTNiMjEwNTYyMWYKICAgICA5MTRjOGE0ZWIyYTIzNDI5LjliZDVhZDEzMzYxNTVkYzYuYmM4MDc0MTU1ZTBhMzk0My5iZmNiM2ViYzVkYTQ3MzMyCiAgICAgM2M3N2Y4NDE1OTE4Mzg5Zi40ODgyNTFlMTJjNjVmYmI5LmU4OGJhNjllYzVjNmNiMjYuZjAzYTFlYzVkZjA1OWVlMQogICAgIDJjMWM1YjVjNzRhOGNlN2IuOTJjNTViNmM1ZjFlOGI1Ny5lYWFhOGZkNzEyOTg5MTU5LjEwOThlNWQ1ZDA4ODFkZTQKICAgICBmYWIzMTFkNjRkMzlhZDY4Ci1WUkNQU1NfMTI4KG1lbSkKK1ZQQUJTQl8xMjgobWVtKQogICBiZWZvcmUKICAgICA4YzU1MWRiNTcxMjUwYTk4LmJiODViMDBhYTBlMDMyNjguNTQ2YTQ3OWZlYzRiY2FjYy4xZTI3MmIyZWUyMGJjNzg4CiAgICAgYTA0Yzg1NWY1OTU3ZWZhMS40NmZmZjFiNzc4NGNhMDEyLjZjM2Q5MjY2ZWZmOTczNDMuZGY0Zjc3MGVkMWFiYTg1ZQpAQCAtNDA0MTMsMTEgKzQwNDEzLDExIEBACiAgIGFmdGVyCiAgICAgOGM1NTFkYjU3MTI1MGE5OC5iYjg1YjAwYWEwZTAzMjY4LjU0NmE0NzlmZWM0YmNhY2MuMWUyNzJiMmVlMjBiYzc4OAogICAgIGEwNGM4NTVmNTk1N2VmYTEuNDZmZmYxYjc3ODRjYTAxMi42YzNkOTI2NmVmZjk3MzQzLmRmNGY3NzBlZDFhYmE4NWUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmMzZDkyNjZlZmY5NzM0My5kZjRmNzcwZTljZWE3MDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU0NmE0NzYxMTQ0YjM2MzQuMWUyNzJiMmUxZTBiMzk3OAogICAgIGMyNjQ1YWMwZTJiZTQ0ZWMuYzA1NjJjYmU5ZWVjODg1MC4wYTljMzI2MGM0MDRmN2U5LjdkZDAwYjE5NzlhMzVlYjIKICAgICAxMGMxNGQxYzZiMTNhYTg3CiAKLVZSQ1BTU18xMjgocmVnKQorVlBBQlNCXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGEyOGQyZDU4ZWJlMTkyYjQuODgxZGJmNTBiYzBiMmM4Ny42N2NiMWRmMDIzM2E3YjNjLjQ4YzE3ZjZjY2Y3YjQ4NmYKICAgICA4ZDdmYTgzYTk2OTg1MmU0LjQwNWI3MDVhY2FjZjhjYWEuN2I4MGViZDJjNWViNjc5NS40YzQzMWJiYmJmYTJmNWE5CkBAIC00MDQyNSwxMiArNDA0MjUsMTIgQEAKICAgICBlMjA4NjE5Y2RiZjI0OWZmLmZhOTJhNzhjZWZlOWE3M2IuNTVkZTEwNTFjZmE2MWUzZi4xMjkxMmNkNmMwMzA0ZWU0CiAgICAgOGNmNDlhN2EwOWIwNzIzZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YjgwZWJkMmM1ZWI2Nzk1LjRjNDMxYmJiY2Q3NTEwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTYzZDZkMzIyMDc1NzYwNy4xMDExODAzYjRmN2I0ODNmCiAgICAgOGQ3ZmE4M2E5Njk4NTJlNC40MDViNzA1YWNhY2Y4Y2FhLjdiODBlYmQyYzVlYjY3OTUuNGM0MzFiYmJiZmEyZjVhOQogICAgIDJmZTRiYjJjMDdjNDI2YzQuYzhlOGVhY2EyNzE1MjE4Mi41NmMzOTNjZTIwOGI4YTA3LmYwZWY4MDNiYjE4NWI4YzEKICAgICBlMjA4NjE5Y2RiZjI0OWZmLmZhOTJhNzhjZWZlOWE3M2IuNTVkZTEwNTFjZmE2MWUzZi4xMjkxMmNkNmMwMzA0ZWU0CiAgICAgOGNmNDlhN2EwOWIwNzIzZAotVlJDUFNTXzEyOChtZW0pCitWUEFCU0JfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgM2JlNjQ3MTJhNzEwZTJmOS4wNDM3OTZmNGFkYWRmODQyLmIzMjMyNThkM2Y1N2Q5MDAuZDQxZTVlYzg2ZWM5NWZlOQogICAgIGZjMzFhZDhhYjY1ZDU4NDMuZWZiZDU3YTIxYTgxNmYzOS5kMDY4ZGZiNzMzNmM3NGZkLjJlY2Y3OTllOWE3ZjhiYjEKQEAgLTQwNDQwLDExICs0MDQ0MCwxMSBAQAogICBhZnRlcgogICAgIDNiZTY0NzEyYTcxMGUyZjkuMDQzNzk2ZjRhZGFkZjg0Mi5iMzIzMjU4ZDNmNTdkOTAwLmQ0MWU1ZWM4NmVjOTVmZTkKICAgICBmYzMxYWQ4YWI2NWQ1ODQzLmVmYmQ1N2EyMWE4MTZmMzkuZDA2OGRmYjczMzZjNzRmZC4yZWNmNzk5ZTlhN2Y4YmIxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwNjhkZmI3MzM2Yzc0ZmQuMmVjZjc5OWUxMDIyYzAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40ZDIzMjU3MzNmNTcyNzAwLjJjMWU1ZTM4NmUzNzVmMTcKICAgICAxZjA2OTljYTlhZWI0ODM0Ljk0ZmQ2OWFkMzJhNmEzZjEuYTEzZGY4M2E3NGI5ZDU1My5lOGIzMDgxNjA3ZDU4ZTQ4CiAgICAgZmY3ZTczOTE4MThkZGY3MAogCi1WUkNQUFNfMTI4KHJlZykKK1ZQQUJTV18xMjgocmVnKQogICBiZWZvcmUKICAgICA2MmViOWIxYmY3MDkwOTY2LjNhMjcxNjZhYTY0NDNhMzIuMDU1MGIzZTIxNjBlZDkwYi4wZTY2NGU2YWZhMDkxMjAyCiAgICAgNmQ0NDdjMjAwNWQ0NDlkNS5kNmQxM2U5YTk0YmEyMzZmLmIwMjk3OTFjMDVjMGM3ODguNGU3MmQxNzU5MzJmYTg5YQpAQCAtNDA0NTIsMTIgKzQwNDUyLDEyIEBACiAgICAgZWFlYzViNGM1Yjg3ZmFkMS4wMmY0N2M1YjgzMmJjOTU0LjI1YTA2NTRmNzEyZmI5NWQuYjg2NjRjYzk3MDJlY2UzNAogICAgIDk5ZTYzYmVhZWMyMGQ3OGUKICAgYWZ0ZXIKLSAgICA2MmViOWIxYmY3MDkwOTY2LjNhMjcxNjZhYTY0NDNhMzIuMDU1MGIzZTIxNjBlZDkwYi4wZTY2NGU2YWZhMDkxMjAyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhjMTk1MDAwZTRhNDIwMDAuNDBiYjQ4MDAyMmIyYjgwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZDJiNGEzOTY1Yjk1N2VjLjNlMmUwM2JhNWMzNzUzNDcKKyAgICA2ZDQ0N2MyMDA1ZDQ0OWQ1LmQ2ZDEzZTlhOTRiYTIzNmYuYjAyOTc5MWMwNWMwYzc4OC40ZTcyZDE3NTkzMmZhODlhCiAgICAgN2JkNjEzMGQ0NzdhZGI2YS5kMGQyOGM0NjdmNThiZjE2LmYyZDViNWM3OWE0N2E4MTQuM2UyZWZjNDY1YzM3NTM0NwogICAgIGVhZWM1YjRjNWI4N2ZhZDEuMDJmNDdjNWI4MzJiYzk1NC4yNWEwNjU0ZjcxMmZiOTVkLmI4NjY0Y2M5NzAyZWNlMzQKICAgICA5OWU2M2JlYWVjMjBkNzhlCi1WUkNQUFNfMTI4KG1lbSkKK1ZQQUJTV18xMjgobWVtKQogICBiZWZvcmUKICAgICBiZDdhNDc5NWViMTcyNzgwLjE1ZDQ1MDRhZGE4OGUzYjUuNDkwNThhYzNiZDNlZmU1NS5hNmQ1ODQyMTI3MDUzNjBjCiAgICAgMDBlZGViYjY4OTIxN2QzNy41N2Q5ZWU3NDYyMDlkMmMzLjgxY2YzMjZjNDg5ZDFhNDQuZDFjMjBlYTc1ODU0NWFkMApAQCAtNDA0NjYsMTIgKzQwNDY2LDEyIEBACiAgICAgZTdjOTA4YjFlMDkxMGU0OAogICBhZnRlcgogICAgIGJkN2E0Nzk1ZWIxNzI3ODAuMTVkNDUwNGFkYTg4ZTNiNS40OTA1OGFjM2JkM2VmZTU1LmE2ZDU4NDIxMjcwNTM2MGMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzVmNTY4MDBjMWFiOTgwMC5kODE5NzgwMDU3ZjVmODAwCi0gICAgM2UwZGEzMzllMzQ5OTNkZi4wZTQ2MzEzNDhmOTQwM2E2Ljg2MWZmMTQxNDE1NWQ4NGUuMDJiMWZmNGY5ZWE4NjM1MworICAgIDAwZWRlYmI2ODkyMTdkMzcuNTdkOWVlNzQ2MjA5ZDJjMy44MWNmMzI2YzQ4OWQxYTQ0LmQxYzIwZWE3NTg1NDVhZDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDkwNTc1M2Q0MmMyMDFhYi41OTJiN2JkZjI3MDUzNjBjCiAgICAgNTNhNGViMGExNTljMjdhMy45NTY4MTZmOGZjYjdiMTBiLjM0YzE0MTJkYzQ3MWY2OWUuOTZmMDU0ODM5ODhlOGE0MQogICAgIGU3YzkwOGIxZTA5MTBlNDgKIAotVlJDUFBTXzEyOChyZWcpCitWUEFCU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTI4OTE3NDQxMjNkMjkxMS4xYjdmNDAxNjNhMjVmMmIwLjQ3OGI5ODJiNDZmZDE5OWQuNjc4MGEwMWVlYmZkMmU2MQogICAgIDMzN2I3ZGE4Y2IxZjE5NGIuNzI2YTFkNDc2ZWYwYjMzMS44MmZiYjMzOTA4ZjM3NzA5LmZiMmE4YWZmZDUwNjNjYzMKQEAgLTQwNDc5LDEyICs0MDQ3OSwxMiBAQAogICAgIGM3MmEzZjkzM2ZiMzYyYmMuM2M5ZjVmY2Q3NjdlMDI0MS5mZmYxYTU5NjY1MWMwMzFlLmI1NmFlYjQxNWJiY2NlMTIKICAgICA5NDk5NWE3YjMxODJjOTU3CiAgIGFmdGVyCi0gICAgNTI4OTE3NDQxMjNkMjkxMS4xYjdmNDAxNjNhMjVmMmIwLjQ3OGI5ODJiNDZmZDE5OWQuNjc4MGEwMWVlYmZkMmU2MQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZWY3NzgwMGEwYzdjODAwLmIzNmU2MDAwZTM1N2QwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWZmYzY0OGUyMWRjMDZmYi4zNDc3NzliYzY0NjkyMTExCisgICAgMzM3YjdkYThjYjFmMTk0Yi43MjZhMWQ0NzZlZjBiMzMxLjgyZmJiMzM5MDhmMzc3MDkuZmIyYThhZmZkNTA2M2NjMwogICAgIGU2ZWQzNjQ5YTZjMjE3YTAuMzMzMWZlOGJjZTBhMjQ1My5hMDA0NjQ4ZWRlMjQwNmZiLmNiODk3OWJjOWI5N2RlZWYKICAgICBjNzJhM2Y5MzNmYjM2MmJjLjNjOWY1ZmNkNzY3ZTAyNDEuZmZmMWE1OTY2NTFjMDMxZS5iNTZhZWI0MTViYmNjZTEyCiAgICAgOTQ5OTVhN2IzMTgyYzk1NwotVlJDUFBTXzEyOChtZW0pCitWUEFCU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNDRlMjQ1NTQzOGY0OGFlYi4zMjdkOTNmMjM0N2MzNDRkLjY4ODJiY2Y5ODE1ODA5MjkuZjkxMDc0YmQzODY4YWExZgogICAgIGExMTEyNWJhOGQxZWNlZmEuODIzMzJlZDIxZWFjY2FmYy45M2E0OTJmYjBiYTVmNDM0LmViYWJjYzZmZjQ5MzM3YWEKQEAgLTQwNDkzLDEyICs0MDQ5MywxMiBAQAogICAgIDJiNjJlMzAxYjNjODk3M2IKICAgYWZ0ZXIKICAgICA0NGUyNDU1NDM4ZjQ4YWViLjMyN2Q5M2YyMzQ3YzM0NGQuNjg4MmJjZjk4MTU4MDkyOS5mOTEwNzRiZDM4NjhhYTFmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE2N2FiMDAwZmQ5N2IwMDAuODVlMmQwMDA0NjhjZDgwMAotICAgIDg2ZjI3Nzk3NGIwZDUxYWYuMTU5ODBkYTA5YmNjNjA3OC45OWQyNWNiZjMxNzA4MDkxLjMyMGZhOTE5MzUyOWU1NmEKKyAgICBhMTExMjViYThkMWVjZWZhLjgyMzMyZWQyMWVhY2NhZmMuOTNhNDkyZmIwYmE1ZjQzNC5lYmFiY2M2ZmY0OTMzN2FhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY4ODI0MzA3N2VhODA5MjkuMDZmMDc0YmQzODY4NTVlMQogICAgIGQxNTBiOGQ5OGVjY2NmMzYuNDZmODJhYzY0NzZhMzE2Yi41NWQ4OTYzMTBlYzU2OTZhLjI4ODgwODI1OTViN2YxMGIKICAgICAyYjYyZTMwMWIzYzg5NzNiCiAKLVZSQ1BQU18xMjgocmVnKQorVlBBQlNXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDk1ZTgzODE3MjhlODEyYTQuNWRmODYzNmE3MzY3MDNiZC43MTllODNiMmJkMTE3YTgxLmE1ODJiZDNkYmZiMTZiZWIKICAgICBjMzY4MDJkNTkzYTRhMGYyLjA1YjZmNDM4MTZlYmFiNmUuZjJkODEzY2Y5OTRlNzc2Ny42NDljNGJjZjVmM2Y0MTQxCkBAIC00MDUwNiwxMiArNDA1MDYsMTIgQEAKICAgICBkYjgxZTZmNmI1MWRkZmYwLjFkYTRiOTM4MDNkYjQxZmYuNjUzNGM5NGJmNmI3N2M1Mi45ZTRmOTEzNmRlNzI1YzFiCiAgICAgZDE4MDQwZTNmNTJmMThmNwogICBhZnRlcgotICAgIDk1ZTgzODE3MjhlODEyYTQuNWRmODYzNmE3MzY3MDNiZC43MTllODNiMmJkMTE3YTgxLmE1ODJiZDNkYmZiMTZiZWIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWEwODEwMDAwNjNmMjgwMC4xMTA3OTAwMDczODIzODAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI0ZjAyOTc4NzhhYjYzYzkuNmRmMTQxMmQwYjdiNTc2OAorICAgIGMzNjgwMmQ1OTNhNGEwZjIuMDViNmY0MzgxNmViYWI2ZS5mMmQ4MTNjZjk5NGU3NzY3LjY0OWM0YmNmNWYzZjQxNDEKICAgICAxMTJjM2VhNjhkODc3YWQyLmE3NTZlODJlOTI2MzgwNzUuMjRmMGQ2ODg3OGFiNjNjOS42ZGYxYmVkMzBiN2JhODk4CiAgICAgZGI4MWU2ZjZiNTFkZGZmMC4xZGE0YjkzODAzZGI0MWZmLjY1MzRjOTRiZjZiNzdjNTIuOWU0ZjkxMzZkZTcyNWMxYgogICAgIGQxODA0MGUzZjUyZjE4ZjcKLVZSQ1BQU18xMjgobWVtKQorVlBBQlNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGU0NTE0OGM1NmJiZjk5NTguN2ViM2Y4MzFhNGYzMDlmNy40NTZjZTU0Mjg2NjBhODM4LjEwZWVlNjgzYWVmYmZjYWYKICAgICBiMThlMjNjYTVkMmM5YjY5LjU0MGU2ZmMzZjg5NDM1OTQuZmE3OWU3MzkzN2ZkNzI0Yi44MDZiMmI5YzNjMDUxZjhjCkBAIC00MDUyMCwxMiArNDA1MjAsMTIgQEAKICAgICAwZTZhYmQ2NjA2M2JiOWQ3CiAgIGFmdGVyCiAgICAgZTQ1MTQ4YzU2YmJmOTk1OC43ZWIzZjgzMWE0ZjMwOWY3LjQ1NmNlNTQyODY2MGE4MzguMTBlZWU2ODNhZWZiZmNhZgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zOThhNTAwMGY4OTFkODAwLjZlMDkyODAwZDAwMjEwMDAKLSAgICAxNjAzNGZkZGU2ODVkYTU2LmJhZGQ0NzE4NGQ4YzlmNzIuMTc5OTNiMDczMGJlNWI2NS4xM2Y2OTMwMjNkNjAyMzk0CisgICAgYjE4ZTIzY2E1ZDJjOWI2OS41NDBlNmZjM2Y4OTQzNTk0LmZhNzllNzM5MzdmZDcyNGIuODA2YjJiOWMzYzA1MWY4YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40NTZjMWFiZTc5YTA1N2M4LjEwZWUxOTdkNTEwNTAzNTEKICAgICBlZDdiNDdlYTIyZDMxMTRkLjBjNmU3ZDljM2U2ODgzM2UuNzk5NjVlOTk5MGIwMWViMi4yNGRkMWEyMjRjOTk0Mjc0CiAgICAgMGU2YWJkNjYwNjNiYjlkNwogCi1WUkNQUFNfMjU2KHJlZykKK1ZQTU9WU1hCUV8xMjgocmVnKQogICBiZWZvcmUKICAgICAyZmViNzczYjA2ZDJjMzZhLjE0YzQ4OGRkMmUyNGZkNzcuYTYwYjBiYmM2N2IzMWNhNC5mZDNkY2JkYzcwZGU3OTVkCiAgICAgZTFhYTQ0MGVlOWViOWVkOC42NWE4OGNhMjI2ODM1YTAzLmU0MDJlZmUyNjVmOWE3NGYuN2Q1YWZlYmFlZjU1MjU5MgpAQCAtNDA1MzQsMTEgKzQwNTM0LDExIEBACiAgICAgODQ2YjE0MzczMmUyNzQyYgogICBhZnRlcgogICAgIDJmZWI3NzNiMDZkMmMzNmEuMTRjNDg4ZGQyZTI0ZmQ3Ny5hNjBiMGJiYzY3YjMxY2E0LmZkM2RjYmRjNzBkZTc5NWQKLSAgICBmYzA2MzgwMDM0ZTEyODAwLmMxMDVkODAwNWEwMTkwMDAuNWM1MDgwMDBhYTI0NjAwMC5hNzMxYTAwMDU4Y2JhODAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmZTEuMDAwMDAwMDAwMDAwMDA3ZgogICAgIDgyZjQyMDRhNGExMTg0Y2UuYmRmNGQxMjUyNGZjZTMxYi4yMjlkMjQ3Y2Q0Yzc1ZmVjLmQ3Yjg3MzIxMjYyMGUxN2YKICAgICA2YzE0MDc1YWM2ZDBiMWY4LmY5NzRkMjUyNDc5YzU1ZWMuYmMyOGE3ZjQ0ZmE4ODIyNi5lNTI1YTZmYzMzNGI2NzRlCiAgICAgODQ2YjE0MzczMmUyNzQyYgotVlJDUFBTXzI1NihtZW0pCitWUE1PVlNYQlFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOTA1ODM4YmUzZWYyYzQ0My5mYzU4ZjZhY2Y4YjU2MzAxLmYzZjQwYjE2YTk2ZTZjYTEuMGVmMTcyYjg3MjI5NGFhYQogICAgIGU2YjY4ZTdkNzQ4NjEzYzIuOGYwYmU4YWI3YzRiZDQ5Ni44ODQwZjk1YjY2N2ZlNDY3Ljc0NDM4MzMzZGFkNWY0MjQKQEAgLTQwNTQ3LDEyICs0MDU0NywxMiBAQAogICAgIGI1NjUyYzI2YzQ1NDkzMGEKICAgYWZ0ZXIKICAgICA5MDU4MzhiZTNlZjJjNDQzLmZjNThmNmFjZjhiNTYzMDEuZjNmNDBiMTZhOTZlNmNhMS4wZWYxNzJiODcyMjk0YWFhCi0gICAgZWU5NzkwMDA0MDA2ZjgwMC44Mjk3MDgwMDg2MzRhMDAwLjhiMDY0ODAwZDU4OTcwMDAuNzAwN2IwMDAwY2MxOTAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDRhLmZmZmZmZmZmZmZmZmZmYWEKICAgICA2MDUyOTI2MGVmYWIxY2QzLjdmNzhkOWMzZWYxZTQxNjMuOTQyMzE2MGY5YmRhNzg2OS40OTY5ZDVkMTIyMzhiYjNmCiAgICAgZGJmN2MwNTNjYjZjOWNhMy4yOWVjYzU2MGVkYmJlNjEzLmY0NmJlMDFkNjM4YmU1ZDQuZWJiMDY0ZmVlN2RlZGNhNwogICAgIGI1NjUyYzI2YzQ1NDkzMGEKIAotVlJDUFBTXzI1NihyZWcpCitWUE1PVlNYQlFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMDNkMTJhYjU1NjI1MWMxMi4zMzczOTU0MjI1ZDU0ZTVkLmVhYjNhOWVlMTFhZGZlNTIuODJlMmQyNzBkYjlmZTdkNAogICAgIDMwNDM1OTE4MzhkZWIzNmIuNDQ5MDhjMWExOWYzZjAyZS4xYzE5N2ZkOWY3ODBjNmNlLjFiNTU2OGY2MWUyMTM5OTQKQEAgLTQwNTYxLDExICs0MDU2MSwxMSBAQAogICAgIGMwOGRkZGVjYzViNDZkMTAKICAgYWZ0ZXIKICAgICAwM2QxMmFiNTU2MjUxYzEyLjMzNzM5NTQyMjVkNTRlNWQuZWFiM2E5ZWUxMWFkZmU1Mi44MmUyZDI3MGRiOWZlN2Q0Ci0gICAgZTRmMzM4MDA3N2VjNzAwMC45NGQxZDgwMGJjMWNhMDAwLjYyOGJlMDAwNDIyOTYwMDAuZTM2MzY4MDAzNWNmZjAwMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmZmZjk5LjAwMDAwMDAwMDAwMDAwNDEKICAgICA5YTA2YjViOTA3MGE5M2MyLmVhMWMyMWM1YzJkMTNjNDIuMWM2YTQ1OGUzY2MxN2EzMC45YjkwMWY5YTQ5MWQ5OTQxCiAgICAgOWM2NTNhMDY1ZTM1ZjhjMy4wMWUxZDAzMTNjN2JlZWM0LjQ2ZjFmNzc3N2NmYjU1MjcuZGU1ZTcyNDg3NzlmYzAwNgogICAgIGMwOGRkZGVjYzViNDZkMTAKLVZSQ1BQU18yNTYobWVtKQorVlBNT1ZTWEJRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDFkZTdkYzczNGU2ODVhOGIuOTFhZWU1NjlkOWViMjAxOS42NWFjMTY0OWE0ZmRjNGUxLmY2ZmM4ZjAyNTFiYTk0NWQKICAgICBkMTNhZWJjNzJlYzU0NWEyLmQ3MmJiMDUwMTZiOTQ1NzEuZjI0OTZlZjgxNTY0NzhjNC44OGQ1MGE5YTVhOGI3MzdlCkBAIC00MDU3NCwxMiArNDA1NzQsMTIgQEAKICAgICAyMzMyYTllN2I5ZGQyNjIxCiAgIGFmdGVyCiAgICAgMWRlN2RjNzM0ZTY4NWE4Yi45MWFlZTU2OWQ5ZWIyMDE5LjY1YWMxNjQ5YTRmZGM0ZTEuZjZmYzhmMDI1MWJhOTQ1ZAotICAgIDYxMGQ1ODAwMzA4ZDA4MDAuZWQzYjU4MDBhNTBiNTgwMC4xOTNlNjgwMGRhMDEyMDAwLjg4MDFjMDAwMmQyZmEwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmY5NC4wMDAwMDAwMDAwMDAwMDVkCiAgICAgYjg1MDg3ZDY4MmQ5ZTc4Mi5jODI5OTkyNmFlMmJhNDc3Ljg0ODM1NDJjYWNiY2M3OWEuNThjOTY1YWEzMGY5MmUzOAogICAgIGFlZjYyYjhhNjZhZmZmNTYuYzJmNDliNTczZmNiNzlkNi5mNzI4NDRkMDg0MGY2ZDhmLmMzMjQ5YmEwNzI5MDAwMzQKICAgICAyMzMyYTllN2I5ZGQyNjIxCiAKLVZSQ1BQU18yNTYocmVnKQorVlBNT1ZTWEJRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGQ0M2U4OWViYTQ2YmRjYTkuOGZmNzUzZDFmNTU0NDc0Yi4yMGQ3YjM0ZjY1MjdmZjNiLjI3MDJiYWQwYmE2YjI1Y2UKICAgICAzNDk2MzkxOGNjYzc1ZTc4LjM2MjE3Yjk1NGJkMzdjOGQuM2QyMGRiN2FiYWNhNzQ1MS5mMGRlMzMxOTY5ZGNhYzg0CkBAIC00MDU4OCwxMSArNDA1ODgsMTEgQEAKICAgICA3ODc2ODJkYTY4MWY3MjI0CiAgIGFmdGVyCiAgICAgZDQzZTg5ZWJhNDZiZGNhOS44ZmY3NTNkMWY1NTQ0NzRiLjIwZDdiMzRmNjUyN2ZmM2IuMjcwMmJhZDBiYTZiMjVjZQotICAgIGUwNzZlODAwYWU4MjE4MDAuZmRhYzYwMDBmOWIxYzAwMC4wOGQ2MDgwMGExYTliMDAwLjUwNmVlODAwZDA4YTcwMDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZmZmZmZmZmZmZmZmZiZS5mZmZmZmZmZmZmZmZmZmRjCiAgICAgOWU4NGI0ZGFkMDdiZTczYy44MTNlMWZjNDg1Mzg1YTQ3Ljc2MTkxMTQ0ZGQ0MTExYzUuMmU4OTJhOTVhZTZjYmVkYwogICAgIDZlNTVmNjllNDkxNWI0OWUuNGIxY2JjNDliZTkwOWNhNS4yODEwNTAxOTY4MTcxNTQyLmJjY2MxYjMxYTQyOTE3MDMKICAgICA3ODc2ODJkYTY4MWY3MjI0Ci1WUkNQUFNfMjU2KG1lbSkKK1ZQTU9WU1hCUV8xMjgobWVtKQogICBiZWZvcmUKICAgICAzZDUyZGM3YTE1NTg4YzZjLjAwNTVmYmNlZDUyMTAwNGQuNzA4NWNkMTAxM2U2ZmZkNS5hZDRmOTQ2NmY3ZDhiYTc1CiAgICAgZTcyYmE0ZmZjN2UyMjAwNy5iMGQwYzBkODEwMmEwOWYzLmNiNDZjZTA1OWY0NjNmMDEuNjMyM2RhOTUyNzExM2QwYQpAQCAtNDA2MDEsMTIgKzQwNjAxLDEyIEBACiAgICAgM2ExMzg5YWU5MWZmNTFjOQogICBhZnRlcgogICAgIDNkNTJkYzdhMTU1ODhjNmMuMDA1NWZiY2VkNTIxMDA0ZC43MDg1Y2QxMDEzZTZmZmQ1LmFkNGY5NDY2ZjdkOGJhNzUKLSAgICA0MTliNjgwMDY5OTc1ODAwLjdmODAwMDAwYTljYjgwMDAuMGU3NGYwMDA2YjBkZTAwMC5kMTlkZDgwMDg3MTczMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmZmYmEuMDAwMDAwMDAwMDAwMDA3NQogICAgIDUxY2U1NTU0OWJjOWVjMjEuZGExMjNmMjY5NWJjMDkzYy4zYTJiM2IxNDdmYmQxODU1LmE0ZDcxYzE0OTM0ZGRhYWMKICAgICA1OTA4NmU2NGFkMTdhYWU0LmQ5NjY3NjI2MDA2MzNkZDUuOThmZjkxMmFjZTU2NDVmZS5jZGI5NTg0ZGQ4MThjZDA4CiAgICAgM2ExMzg5YWU5MWZmNTFjOQogCi1WUFNBREJXXzEyOChyZWcpCitWUE1PVlNYV1FfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNDgzM2FjYTI1YjhkYTM5Yy5kOWEyNjgxZDE4ZGExNzdmLjBiMWE2MTQzZWVhY2UwNmEuYzA5MDRiMzFhOTFlODMyOAogICAgIDUxNjNiYjk1ZDE0ZWZlMmQuYWY2YmMxNmFmODFlZWUxYy5jYjc4ZmFlOWZiMjMyZmE2LjkwYThlNTE3MmIxZjhlZmUKQEAgLTQwNjE0LDEyICs0MDYxNCwxMiBAQAogICAgIGM3MjY5MjI4MzM5YmMzMzcuYzliNjdkNzE4OTU2Y2UwZS42NDY1MmI4MGRmYzdjMWM2Ljk0YTFhYTJjOTYwMmY5NjEKICAgICA4MDE5Y2MzNGI3ZmJkMjQ1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAyZGMuMDAwMDAwMDAwMDAwMDJlYQotICAgIDUxNjNiYjk1ZDE0ZWZlMmQuYWY2YmMxNmFmODFlZWUxYy5jYjc4ZmFlOWZiMjMyZmE2LjkwYThlNTE3MmIxZjhlZmUKKyAgICA0ODMzYWNhMjViOGRhMzljLmQ5YTI2ODFkMThkYTE3N2YuMGIxYTYxNDNlZWFjZTA2YS5jMDkwNGIzMWE5MWU4MzI4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDcxNjcuMDAwMDAwMDAwMDAwMjFhZAogICAgIGIyZjBiNGYzOTBjZmEwMjcuYjYyZWY0Mzc2YWVlZWRlOC43NWNkM2Y4M2MxNTI2NjM2LmUyMTVkYmM2NzE2NzIxYWQKICAgICBjNzI2OTIyODMzOWJjMzM3LmM5YjY3ZDcxODk1NmNlMGUuNjQ2NTJiODBkZmM3YzFjNi45NGExYWEyYzk2MDJmOTYxCiAgICAgODAxOWNjMzRiN2ZiZDI0NQotVlBTQURCV18xMjgobWVtKQorVlBNT1ZTWFdRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDg0NDhiZmM5ZWY1ZTY4ODYuZWM1MDUxYTA1NjNmYTMwOS5jNmQxZDgwMjcyNjI0ZGJiLmY2OGNiYTQ5ZWYwZDdjMDEKICAgICA3YWZjZmVkOTVhMzc3NjRmLjdkYmNlZWM3OTY0NTdlNDguODc0OTgxZDc0MDFmMjgxYS44NThkZTg0YjhkYjFkMjk0CkBAIC00MDYyOCwxMiArNDA2MjgsMTIgQEAKICAgICBjMGFiMDZlMGQ3NDRkMjExCiAgIGFmdGVyCiAgICAgODQ0OGJmYzllZjVlNjg4Ni5lYzUwNTFhMDU2M2ZhMzA5LmM2ZDFkODAyNzI2MjRkYmIuZjY4Y2JhNDllZjBkN2MwMQotICAgIDdhZmNmZWQ5NWEzNzc2NGYuN2RiY2VlYzc5NjQ1N2U0OC44NzQ5ODFkNzQwMWYyODFhLjg1OGRlODRiOGRiMWQyOTQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDMyZS4wMDAwMDAwMDAwMDAwMjkxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmVmMGQuMDAwMDAwMDAwMDAwN2MwMQorICAgIDQwZmYwNjRmMTU5M2I5Y2QuZDZiNDYzMGE4ZjNiOGVhMC5lOWViZjVkZDEwOTgxOTU4LjZmYjZiMmYyNTYzZTAwMmEKICAgICBiMDFmNTExNzNjN2RlZDJiLjUzODVhZWQzZGNhZDEwYmUuYzk4M2FmZmVmZGRhZGRhMS4wZTUxMTJhYmU1NDA0MTcwCiAgICAgYzBhYjA2ZTBkNzQ0ZDIxMQogCi1WUFNBREJXXzEyOChyZWcpCitWUE1PVlNYV1FfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZGYxMDhhZmZjN2Q1ZWZiYS5hNzI2NWQxZWVhMDJjZDk2LjUwN2JjYTkwMTkyNjQwNGUuMDFkYzJiMjgyNGVmMmYyMAogICAgIGM5Y2M5ODczNTE3ZmQ0MTcuMDJlMWE1NGUzYjJjMTYzYS4yOWUyYjRhYmUzMzI1OWZiLjZlYzRlNjQ2YTBlNWNkMDIKQEAgLTQwNjQxLDEyICs0MDY0MSwxMiBAQAogICAgIDY5Nzg0NjA5YTY0ZmU1OWIuNGZhMmQ5ZGQzOGE1ZDNkYi5kZjMzZGViMDhjMzQzOTVmLjU4NmQwNTBlMDlhM2Q4OWUKICAgICA4Y2M2NjI5MDJkODJiZGFmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAyNTUuMDAwMDAwMDAwMDAwMDJjOAotICAgIGM5Y2M5ODczNTE3ZmQ0MTcuMDJlMWE1NGUzYjJjMTYzYS4yOWUyYjRhYmUzMzI1OWZiLjZlYzRlNjQ2YTBlNWNkMDIKKyAgICBkZjEwOGFmZmM3ZDVlZmJhLmE3MjY1ZDFlZWEwMmNkOTYuNTA3YmNhOTAxOTI2NDA0ZS4wMWRjMmIyODI0ZWYyZjIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZjhlYzguMDAwMDAwMDAwMDAwNzE3MwogICAgIGQ4MmEyZWE3MTNjZWJkZDMuOWIxY2E1OTQ0YzBhODQ0Mi4zYTA2NjY5MmQ1NWQ5ODcyLmVkMDU1YTQ0OGVjODcxNzMKICAgICA2OTc4NDYwOWE2NGZlNTliLjRmYTJkOWRkMzhhNWQzZGIuZGYzM2RlYjA4YzM0Mzk1Zi41ODZkMDUwZTA5YTNkODllCiAgICAgOGNjNjYyOTAyZDgyYmRhZgotVlBTQURCV18xMjgobWVtKQorVlBNT1ZTWFdRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDY1ZGRlZGI2MTc3MmRkZDQuZDkwMGRmMDRhODhlODkxYi5mYTQxYmUxNDFjMGJiZTMwLjc0YjQxNzcxYTQ0Mjc3NmQKICAgICBjMDdkMjM2Y2UzN2RmNDM2LjgyMGZmMjA0YjUxNWU0ZmUuNzljM2NmMjQxMzQ3MDI2ZS41NGQ2MGQ0MWI3MTQ5MDQ5CkBAIC00MDY1NSwxMiArNDA2NTUsMTIgQEAKICAgICA1N2ZhMzc0NGY2OTQ0YjY2CiAgIGFmdGVyCiAgICAgNjVkZGVkYjYxNzcyZGRkNC5kOTAwZGYwNGE4OGU4OTFiLmZhNDFiZTE0MWMwYmJlMzAuNzRiNDE3NzFhNDQyNzc2ZAotICAgIGMwN2QyMzZjZTM3ZGY0MzYuODIwZmYyMDRiNTE1ZTRmZS43OWMzY2YyNDEzNDcwMjZlLjU0ZDYwZDQxYjcxNDkwNDkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDI2My4wMDAwMDAwMDAwMDAwMGZhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmE0NDIuMDAwMDAwMDAwMDAwNzc2ZAorICAgIDc3NzQ3ZTllYWNiMmJlMDQuYzFmMTdjNzY2ODcyMzRmMC5hNmY1ODhmYjNhNjY1YmMxLmRkZTViYzhjNjQzNWJlOWUKICAgICA2NzhjN2MzOThlMWFmNjY4LmYzZjI3YWM0NWQzMWIzOWYuNWVhMzY1ODRhYzczODQ1NC42YTJkMjFiZTQ0MzEzZDE5CiAgICAgNTdmYTM3NDRmNjk0NGI2NgogCi1WUFNBREJXXzEyOChyZWcpCitWUE1PVlNYV1FfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZmY5OGZhODgxM2ViMjIzMC42YzkzOTgyN2E2YzM1OThlLjcyNWVlNzViMzFkYzlkYjQuN2Q5OWUzYWI4NjdhM2I1NAogICAgIGMwNTI2NmY4MzljMWZmMjQuNjI1MzRmNTYxMGI4YTNhNC45YjgxYmZhODdmMDIzMGRlLmRmYTM3ZDVjZTM4NzM5ZWMKQEAgLTQwNjY4LDEyICs0MDY2OCwxMiBAQAogICAgIGY5NGUyYTA4MGYxY2JhMzguOTEzMTdhMjM0N2I4ZGI0YS41YjFhYTExMGZjZTgzYzFiLmRjMjJmNTBjOThlNjAxOTcKICAgICAyZjJmY2JlNDI3NGU0MzAxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAyNDMuMDAwMDAwMDAwMDAwMDFiOAotICAgIGMwNTI2NmY4MzljMWZmMjQuNjI1MzRmNTYxMGI4YTNhNC45YjgxYmZhODdmMDIzMGRlLmRmYTM3ZDVjZTM4NzM5ZWMKKyAgICBmZjk4ZmE4ODEzZWIyMjMwLjZjOTM5ODI3YTZjMzU5OGUuNzI1ZWU3NWIzMWRjOWRiNC43ZDk5ZTNhYjg2N2EzYjU0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZmZmZmZmZmZmZmZmUwYTcuMDAwMDAwMDAwMDAwM2Q0OQogICAgIGY1NzU3OGZlMDRhMzFkZWQuMjU5OTFiYjFlNzA2OGZkMy5jYWE2ZmYxNWU0MmNhNmM3LjYwOGNhZTgzZTBhNzNkNDkKICAgICBmOTRlMmEwODBmMWNiYTM4LjkxMzE3YTIzNDdiOGRiNGEuNWIxYWExMTBmY2U4M2MxYi5kYzIyZjUwYzk4ZTYwMTk3CiAgICAgMmYyZmNiZTQyNzRlNDMwMQotVlBTQURCV18xMjgobWVtKQorVlBNT1ZTWFdRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDM1ODBhZWY1YWFlZGJjYjQuMmEyNzdhODFmN2I4MTBiMC44MmU2ZTc5YTRkZGE0MTMzLmFhMjlhMzA0NjFjMTJlODgKICAgICBjYWUxMTgyZDNkY2YyYmRiLmUyNGM2M2Q1NTYwNDViMDIuZDQ4NmRlMDExNDc5N2RiYS4xMzFmMDA1Y2IyNDNiN2I3CkBAIC00MDY4MiwxMiArNDA2ODIsMTIgQEAKICAgICA4MjYyMTJmZTM5M2EzOTk0CiAgIGFmdGVyCiAgICAgMzU4MGFlZjVhYWVkYmNiNC4yYTI3N2E4MWY3YjgxMGIwLjgyZTZlNzlhNGRkYTQxMzMuYWEyOWEzMDQ2MWMxMmU4OAotICAgIGNhZTExODJkM2RjZjJiZGIuZTI0YzYzZDU1NjA0NWIwMi5kNDg2ZGUwMTE0Nzk3ZGJhLjEzMWYwMDVjYjI0M2I3YjcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDJiMS4wMDAwMDAwMDAwMDAwMzIzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDYxYzEuMDAwMDAwMDAwMDAwMmU4OAorICAgIGNhMWU4Nzc2ZmJmZTRhYTMuN2YwYmUyNzBjYjhiZDlkYS42M2RiZGM0NGI5YTA0ZDBjLmYyNDhiNDg2ODhmYjE0NTcKICAgICAxMDAzNzdiZTAwODhkNjM4LjViYWZmMWJlZjBkOWM0ZTMuMGFiMjViNTA1NzViNmI1NS5hM2YwYmNlZDgyNzQ4MTEyCiAgICAgODI2MjEyZmUzOTNhMzk5NAogCi1WUFNJR05CXzEyOChyZWcpCitWUEFDS1VTRFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZWJlYmI0MjM0YmRhN2E4Yi43YTViNjJmMDY5Nzk4YmM1LmQ0ODM4ZTJiNjE3YTU5Y2EuYTdkOGQ5MGYwYmI3OTRjMQogICAgIDNhZDg5ZGM5NTRkZjdkYTAuZTNmM2M2Zjg1MmRiMjQ3Ny40NGQ0YjQyM2JiZmJkMzNiLjE1MTZkMTZlZjBiZjgzN2IKQEAgLTQwNjk1LDEyICs0MDY5NSwxMiBAQAogICAgIGZhMDgzNTQ5Yjk0YWMxZGIuMjExM2U2M2ExMTI4ZjVmOC43ZDFkOGM2NTk4Y2I2YTY4LmQzMTIyMGJkYmUwNGE2OGEKICAgICBkYzY2NmY4NWUwNTk1MjM4CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ0MmNiNDIzNDUwNWQzYzUuMTUxNjJmNmVmMGJmN2Q4NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmMDAwMGZmZmZmZmZmLmZmZmYwMDAwZmZmZjAwMDAKICAgICAzYWQ4OWRjOTU0ZGY3ZGEwLmUzZjNjNmY4NTJkYjI0NzcuNDRkNGI0MjNiYmZiZDMzYi4xNTE2ZDE2ZWYwYmY4MzdiCiAgICAgY2I3M2NhNWNlZmQ2ODE4Mi4yNzk3MWVjMmQ1YmM1ZTc5LjA4ZWU1ZjEyOWFlODcwZTEuMzAzYmMwNWEyMjdmZjVhZgogICAgIGZhMDgzNTQ5Yjk0YWMxZGIuMjExM2U2M2ExMTI4ZjVmOC43ZDFkOGM2NTk4Y2I2YTY4LmQzMTIyMGJkYmUwNGE2OGEKICAgICBkYzY2NmY4NWUwNTk1MjM4Ci1WUFNJR05CXzEyOChtZW0pCitWUEFDS1VTRFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgMjYwNDI4OWRhMzhhYjRlNC4yM2U1ZGNmYjRkYzc3ODU3LmFmMzM5YTRjMWYyOWE1MWYuZmRhZDM2ODY1NDMyZmQ3ZQogICAgIDhjYjljN2YwMjNhNDhhYmIuYTE1NWJhZGQ0N2Q5ZTJhMy5hY2MzYjdlNDFlY2QyOTFjLmU1ZWE1OGUzNjdhOTY3Y2MKQEAgLTQwNzEwLDExICs0MDcxMCwxMSBAQAogICBhZnRlcgogICAgIDI2MDQyODlkYTM4YWI0ZTQuMjNlNWRjZmI0ZGM3Nzg1Ny5hZjMzOWE0YzFmMjlhNTFmLmZkYWQzNjg2NTQzMmZkN2UKICAgICA4Y2I5YzdmMDIzYTQ4YWJiLmExNTViYWRkNDdkOWUyYTMuYWNjM2I3ZTQxZWNkMjkxYy5lNWVhNThlMzY3YTk2N2NjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU0YzM0OWU0MWVjZGQ3MWMuMWIxNjU4MWQ2N2E5OTljYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwZmZmZjAwMDBmZmZmLjAwMDBmZmZmMDAwMGZmZmYKICAgICAyMTkyYThmY2NkYzA3Yzk5LjExMWMwY2U2ZTBlZWMzNWEuNjI2MjE5NTc1OTJjYTA0Mi41ZTk5ZmFmZTA4ZjNhYmM3CiAgICAgYTZhNTcwOTNjZGUwZmVjYgogCi1WUFNJR05CXzEyOChyZWcpCitWUEFDS1VTRFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYzY4ZDUwMTQ1YjBjMTZiOC4wNjUwZTI4ZDJlZGIxMWY3LmI5MGM3N2U0YjUwOWIxMWQuZDMwOTU2MGFjZDAwMGFjNAogICAgIDFhOWQ5NWVkNGQwMzMwM2IuNzk1M2YyMDliYzBlMDkzMS4yOGJmMGFjMzYyZTk0MzYwLjI0NTBlYmYyYTFhNTM5Y2EKQEAgLTQwNzIyLDEyICs0MDcyMiwxMiBAQAogICAgIGNlNmEzZjUyY2Y4MzU5YjEuNzU1Yzg1NzVkMWVlMTFlMy5jNzlkOTZkNGFlMjk0MTE0LmQyZWUwZjE2ZDg5N2Q2MTUKICAgICBlN2RjOTUyOTcyZmJiYmIxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQ4NDFmNjNkOWVlOWJkYTAuMjQ1MGViMGU1ZmE1YzczNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGZmZmYwMDAwLmZmZmZmZmZmZmZmZjAwMDAKICAgICAxYTlkOTVlZDRkMDMzMDNiLjc5NTNmMjA5YmMwZTA5MzEuMjhiZjBhYzM2MmU5NDM2MC4yNDUwZWJmMmExYTUzOWNhCiAgICAgZmUyMzNiODg0MDUxODhmZi41NDY5NTQ1ZDk0NjYyMDcxLmI5ODFjMGVmODExYWI0Y2UuMmYwMzU1ZmRmMTI5ZTk4MQogICAgIGNlNmEzZjUyY2Y4MzU5YjEuNzU1Yzg1NzVkMWVlMTFlMy5jNzlkOTZkNGFlMjk0MTE0LmQyZWUwZjE2ZDg5N2Q2MTUKICAgICBlN2RjOTUyOTcyZmJiYmIxCi1WUFNJR05CXzEyOChtZW0pCitWUEFDS1VTRFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNGM5YjYzMjJkYzYyNTU4Mi5lNmJkOWJiNzk2MjRlMGZkLmI2ZjlmZjNlOTBiMjlhYjQuYjA2MTg2ZGY4NmExMjZkZAogICAgIGRiZjVmNmVkMzJkNzYwYjMuYTI2OTRkMjQzMmMwNTk4ZS5mNDBjNDBhMmVjYmU3NDEwLmNlMTc4ZTdhYTQwZTlmZDYKQEAgLTQwNzM3LDExICs0MDczNywxMSBAQAogICBhZnRlcgogICAgIDRjOWI2MzIyZGM2MjU1ODIuZTZiZDliYjc5NjI0ZTBmZC5iNmY5ZmYzZTkwYjI5YWI0LmIwNjE4NmRmODZhMTI2ZGQKICAgICBkYmY1ZjZlZDMyZDc2MGIzLmEyNjk0ZDI0MzJjMDU5OGUuZjQwYzQwYTJlY2JlNzQxMC5jZTE3OGU3YWE0MGU5ZmQ2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBjZjRjMGEyMTQ0MjhjZjAuMzIxNzcyODY1Y2YyOWYyYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAKICAgICBlYmFkNThhYTBmMWRiN2U4Ljc2ZmNhMWMyNTgxYjEwMzEuZDhjMzA1ZjBlZGUwMTIxNy4xZDhjZDMxNDI0ZjgzYjA2CiAgICAgMDZlMzA5ZWJiZDhlZDc5NgogCi1WUFNJR05CXzEyOChyZWcpCitWUEFDS1VTRFdfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOTQ1ZDQ1MDMwZTQ4ZjYwNS4yM2EzMWY3M2NmMDU3YzQzLjQ2N2IzYWNjMTlmMmM2OWIuMzVmZjgwYjFjOTBlNGQxYQogICAgIDI0NDU4NWM4YjBiNGQ2MDAuZjY2NTlhYmZlYTJiYTJhZi4yYTgyMTk4ZDFmZjM1ZWZhLjAwZTJiMmJlYjRiM2NiNTgKQEAgLTQwNzQ5LDEyICs0MDc0OSwxMiBAQAogICAgIGJiOTNmZTA5NWRkMGMzNDkuZGU3YzllOGNhMzYzZmY2OS45ZTVjOTZlNDY4YTkyMzRhLjRiYzgyOTZjMjA5ODdmMzQKICAgICA4NDYzNjVlNWRiZWYyZDJhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJhODIxOThkMWYwZDVlMDYuMDBlMmIyYmU0YzRkY2JhOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mZmZmZmZmZmZmZmYwMDAwLmZmZmZmZmZmZmZmZjAwMDAKICAgICAyNDQ1ODVjOGIwYjRkNjAwLmY2NjU5YWJmZWEyYmEyYWYuMmE4MjE5OGQxZmYzNWVmYS4wMGUyYjJiZWI0YjNjYjU4CiAgICAgMTNlOGM0YTY0MTVlYjAzMy40MGJlNDY3ODdkOWNlNDU4LjdlNWYzOTcxMDVhZDE0ZmMuMTMzNjE2MDNjN2RlNDhmZAogICAgIGJiOTNmZTA5NWRkMGMzNDkuZGU3YzllOGNhMzYzZmY2OS45ZTVjOTZlNDY4YTkyMzRhLjRiYzgyOTZjMjA5ODdmMzQKICAgICA4NDYzNjVlNWRiZWYyZDJhCi1WUFNJR05CXzEyOChtZW0pCitWUEFDS1VTRFdfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgOWFkNTQ4NWExM2VlMGQwYS43OTkwMzA1ZDlmOTg0OWVlLmFhNjkxZWU2Nzk4ZGFmMGUuZTZjNjJkNTJlMzc1Yzg5MwogICAgIDY5ZTk0ZGI4ZTRhMmRkMDIuYTkyYzU1MGVhMzQyN2ZjZi44MTUyNDI3MTFhMjVhZjc0LmIxZTlmODI3MTM5YzNmODEKQEAgLTQwNzY0LDExICs0MDc2NCwxMSBAQAogICBhZnRlcgogICAgIDlhZDU0ODVhMTNlZTBkMGEuNzk5MDMwNWQ5Zjk4NDllZS5hYTY5MWVlNjc5OGRhZjBlLmU2YzYyZDUyZTM3NWM4OTMKICAgICA2OWU5NGRiOGU0YTJkZDAyLmE5MmM1NTBlYTM0MjdmY2YuODE1MjQyNzExYTI1YWY3NC5iMWU5ZjgyNzEzOWMzZjgxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmNTI0MjhmMWFkYjUxNzQuNGYxN2Y4MjdlZDljYzE3ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwZmZmZjAwMDAwMDAwLjAwMDBmZmZmMDAwMGZmZmYKICAgICBhMjI1YWRkYmMzNTYzN2UzLmQwNzA2ODM4NjM2OGViZjUuYzA0NzY3Y2YyZmQwOTIzMy40NTg5MWZiNzAwMmM5MWZkCiAgICAgYzQ5ZjcyNDlmNWFlZTVlNAogCi1WUFNJR05XXzEyOChyZWcpCitWUE1PVlpYQlFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMzg5ZGViZjMwZWJhZmIyMC5jNGU2MDE3OTA5NmYzYjI2LjdlYjA0ZTg5NTdmZTk4OTEuZTBlYzYwN2FkYmZiZWRlMwogICAgIGZjZDA4NDIwZThkZTBlNWUuMGY3OTY2YWY1OTZjMWQyZi4wZWJmMThlNjdlYTVlNTE4LjdiYmNlZDA2YzJjNDg4MDMKQEAgLTQwNzc2LDEyICs0MDc3NiwxMiBAQAogICAgIGUzMDUwY2IyNGU5YzFkOGYuOTA0NDU5OTI4NDQzNmU0Ni40NDdhNDU3OWQyNTY0ZTlhLjkyMTFiNDc1YjM2MTcxNDYKICAgICBjNjJkZTYyZmY0NGUzN2MxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYxNDFlNzFhN2VhNWU1MTguN2JiYzEyZmFjMmM0ODgwMwotICAgIGZjZDA4NDIwZThkZTBlNWUuMGY3OTY2YWY1OTZjMWQyZi4wZWJmMThlNjdlYTVlNTE4LjdiYmNlZDA2YzJjNDg4MDMKKyAgICAzODlkZWJmMzBlYmFmYjIwLmM0ZTYwMTc5MDk2ZjNiMjYuN2ViMDRlODk1N2ZlOTg5MS5lMGVjNjA3YWRiZmJlZGUzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMjEuMDAwMDAwMDAwMDAwMDBjMAogICAgIDZiODQzYjNiMWZhNTViNGEuNWZhOTVhNjhjZDU5OWEyYi5kY2VhYzFiZDcyZTkwZDM4LjZkODU4YjYwMDEzNzIxYzAKICAgICBlMzA1MGNiMjRlOWMxZDhmLjkwNDQ1OTkyODQ0MzZlNDYuNDQ3YTQ1NzlkMjU2NGU5YS45MjExYjQ3NWIzNjE3MTQ2CiAgICAgYzYyZGU2MmZmNDRlMzdjMQotVlBTSUdOV18xMjgobWVtKQorVlBNT1ZaWEJRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGU1YTQ5YzdjZTEwODJkNWIuYmU5ZmYxZjAxMTRlOTJkYS43ZTE0ZGQxOTk3MzQ1NGFiLmEyYmVhMDg2Mzc3OWUyZWQKICAgICBjYTQ0NTM0Nzk1OWQxMDQzLjVhOWVlNzYxMDU0N2Y0ZDYuMDVlNzY0ZTcyNTNiMDk4Ny41MjAxY2U1MDQwZGQwNmRiCkBAIC00MDc5MCwxMiArNDA3OTAsMTIgQEAKICAgICBlNmJhMjU1NDNmMDkyNzAyCiAgIGFmdGVyCiAgICAgZTVhNDljN2NlMTA4MmQ1Yi5iZTlmZjFmMDExNGU5MmRhLjdlMTRkZDE5OTczNDU0YWIuYTJiZWEwODYzNzc5ZTJlZAotICAgIGNhNDQ1MzQ3OTU5ZDEwNDMuNWE5ZWU3NjEwNTQ3ZjRkNi4wNWU3NjRlNzI1M2IwOTg3LjUyMDFjZTUwNDBkZDA2ZGIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDVlNzliMTlkYWM1MDk4Ny5hZGZmMzFiMDQwZGRmOTI1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwZTIuMDAwMDAwMDAwMDAwMDBlZAorICAgIDUzZDg4NTdiMmQxOTljYTMuMTE0ZGViNzJjNjE0ODAzMC4wMTg3NjllOTQ3NjE0OTA1LmIwOGVjYzQzODYwZWY1MTAKICAgICA1YjJiYjAwNmM1ODY4Y2E4LjQwZjlmODhkZWY0MDcyOTMuNGVjMDY4MGIxYmI0ZDA1Mi4xOGIzOTVjYmE3OTllYzM5CiAgICAgZTZiYTI1NTQzZjA5MjcwMgogCi1WUFNJR05XXzEyOChyZWcpCitWUE1PVlpYQlFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNzZmMDc4NGJlOWViZTIxNy5iZTBhNGZkMzc4ZjI5ZDdkLjQ0ZWUwYjFmMWM1NzA1YWMuYzc2MGRkM2FiZDQwNTk5YQogICAgIDI0YTE4YjFhNDJjYTU4MjMuNTc0MWRlY2U2MjY5OGI0Zi43Nzc4MWU5NWVhZTY3NjI3LjRhMzI0NDYwNDgxMGExMDgKQEAgLTQwODAzLDEyICs0MDgwMywxMiBAQAogICAgIDQ5YTNkZWY1NmVhZjY4ZDEuYTBlN2JkZmY0ZGE0ZWQ5OS5kZTdhMzlkOWQ3OTllMWYxLmRhOWFkYTQ2OGJhYzVkMDgKICAgICBhMGNhMDBkZDdhOTE0OWYyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc3NzgxZTk1MTUxYTc2MjcuYjVjZTQ0NjBiN2YwYTEwOAotICAgIDI0YTE4YjFhNDJjYTU4MjMuNTc0MWRlY2U2MjY5OGI0Zi43Nzc4MWU5NWVhZTY3NjI3LjRhMzI0NDYwNDgxMGExMDgKKyAgICA3NmYwNzg0YmU5ZWJlMjE3LmJlMGE0ZmQzNzhmMjlkN2QuNDRlZTBiMWYxYzU3MDVhYy5jNzYwZGQzYWJkNDA1OTlhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwNjMuMDAwMDAwMDAwMDAwMDBjOQogICAgIDRiMTg1OTJmZTUzMmM2ZDIuMDQ5Y2Q5ZTRhMGY1MTI0YS4zNmUzMmY1OWY0NzgwMWFmLmIyMDExYTZiZDkzMDYzYzkKICAgICA0OWEzZGVmNTZlYWY2OGQxLmEwZTdiZGZmNGRhNGVkOTkuZGU3YTM5ZDlkNzk5ZTFmMS5kYTlhZGE0NjhiYWM1ZDA4CiAgICAgYTBjYTAwZGQ3YTkxNDlmMgotVlBTSUdOV18xMjgobWVtKQorVlBNT1ZaWEJRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGRmNWIwOTFiYzNlYWU0YjIuNzk4YzE2ZDc3YWNlN2FjYy4wNmVkMDUwYzg2ODJkOTY5LmM5OGIzODgwMmVkNjUzOTgKICAgICA3MjE5NmZlZTgxYzNlOTc1LjM2MjBmZDQzYTQxYTM3NmUuMTQ3YjJkZjg2NjlhOTJlNS41NDYwMjhiOTk2YmE5MzUxCkBAIC00MDgxNywxMiArNDA4MTcsMTIgQEAKICAgICA0ZTc1NzgxMTQ4Y2E3ZDllCiAgIGFmdGVyCiAgICAgZGY1YjA5MWJjM2VhZTRiMi43OThjMTZkNzdhY2U3YWNjLjA2ZWQwNTBjODY4MmQ5NjkuYzk4YjM4ODAyZWQ2NTM5OAotICAgIDcyMTk2ZmVlODFjM2U5NzUuMzYyMGZkNDNhNDFhMzc2ZS4xNDdiMmRmODY2OWE5MmU1LjU0NjAyOGI5OTZiYTkzNTEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTQ3YjJkZjg5OTY2NmQxYi5hYmEwMjhiOTk2YmE5MzUxCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwNTMuMDAwMDAwMDAwMDAwMDA5OAorICAgIDM3ZDJiMDQyZDEyOTE2NjcuZGVhYjkwYTQ4OTIwZGM2NC5hNTVlYjFhZDA5ZjhkMzNhLmRiNDYwNmYyYWFkMWRkYzgKICAgICAwODUwNDcwMWNmMjcyNWIzLmNjNzljYTY2YzU2YmE1NWEuOTQ2MDBkMTk4Y2E4NTk5My5iYTg5Y2M5NjA2YTg2Y2E4CiAgICAgNGU3NTc4MTE0OGNhN2Q5ZQogCi1WUFNJR05XXzEyOChyZWcpCitWUE1PVlpYQlFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZjE1NjA2ZDAwOWMzNGM1NS5jMzYxYjExODk1YzlkMjg2LjViZDZhN2Y1ZjM4N2NkZmIuYmY0ZWJlMjcwYmI3ZTAxZAogICAgIDAwNzc3MDNkZTcyMDE0N2EuNDJjZjY4NzM0MjFjZGIwYy5lOTBlMjNiZWFmMDE5MWY0LjAwZjMzZmMzYTEzMDI0MDQKQEAgLTQwODMwLDEyICs0MDgzMCwxMiBAQAogICAgIGQyYWRjY2Q1NjkzNDgzYmQuMDBmNWIyYTdiYjAzZWNkZi42ZTNkZWFhOTQzM2NkZDljLjM4OTZhMTU1ODQ5MWQxOTcKICAgICBlNjJjN2IyMzA4OTFiMzljCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE2ZjIyM2JlNTBmZjkxZjQuMDBmMzNmYzNhMTMwZGJmYwotICAgIDAwNzc3MDNkZTcyMDE0N2EuNDJjZjY4NzM0MjFjZGIwYy5lOTBlMjNiZWFmMDE5MWY0LjAwZjMzZmMzYTEzMDI0MDQKKyAgICBmMTU2MDZkMDA5YzM0YzU1LmMzNjFiMTE4OTVjOWQyODYuNWJkNmE3ZjVmMzg3Y2RmYi5iZjRlYmUyNzBiYjdlMDFkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwZTAuMDAwMDAwMDAwMDAwMDA3MwogICAgIGQ3MjZiNGM1N2U2YzEzYjkuNjI2N2VhZmZlZjJiZmE3MC5kMTZjM2IyYjk2NjMyZGYwLjM0MWQwY2Q4NmIxZmUwNzMKICAgICBkMmFkY2NkNTY5MzQ4M2JkLjAwZjViMmE3YmIwM2VjZGYuNmUzZGVhYTk0MzNjZGQ5Yy4zODk2YTE1NTg0OTFkMTk3CiAgICAgZTYyYzdiMjMwODkxYjM5YwotVlBTSUdOV18xMjgobWVtKQorVlBNT1ZaWEJRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDFiYTkxNTJmMTQyYzQxYWQuNGQ1OWI3ZDc0NDAyYTAzMy5mNjQ1M2M1NmJmYWY2Yzg0LjFlY2UyY2E1NTMxNWRjYTMKICAgICBiNGRhZWI2NWMzNmQzOGY2LmE0NzY2ZTM5YWM2NWE4YzYuMjIyMjA0ZmExYTNiMzg4Yy4zYjY4ZmQ4YTYxN2M2N2IyCkBAIC00MDg0NCwxMiArNDA4NDQsMTIgQEAKICAgICBiZjcyYTRlNjlhNzlhNmM1CiAgIGFmdGVyCiAgICAgMWJhOTE1MmYxNDJjNDFhZC40ZDU5YjdkNzQ0MDJhMDMzLmY2NDUzYzU2YmZhZjZjODQuMWVjZTJjYTU1MzE1ZGNhMwotICAgIGI0ZGFlYjY1YzM2ZDM4ZjYuYTQ3NjZlMzlhYzY1YThjNi4yMjIyMDRmYTFhM2IzODhjLjNiNjhmZDhhNjE3YzY3YjIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGRkZTA0ZmFlNWM1Mzg4Yy4zYjY4ZmQ4YTYxN2M5ODRlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwZGMuMDAwMDAwMDAwMDAwMDBhMworICAgIDhiOGI3OWIyMzI2MDU0YTUuMzM1MGVlNjYzY2U2ZDUyMy41ZTU5ODc3ZWU1YjMwYTIyLjIyNWE1OWMzMDlmZGJhNzUKICAgICA3ZDg3M2IwMDdkMTE1MWUzLjU1MzIzNGNhOTExMzYzZjYuODdiNzQwY2UzZTI0OWY3My4zMGVmM2RiZWU4MjIxMDk3CiAgICAgYmY3MmE0ZTY5YTc5YTZjNQogCi1WUFNJR05EXzEyOChyZWcpCitWUE1PVlpYV1FfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMmMzMThhYTdiYThlYjhhYi42NzljYWUzZGJlOGRlYWRmLjY4NjkzYmQxNDY3NzkwZWEuNzkwNmFiZDY0MTk5YjJhYgogICAgIGQ0NzZlYjZkZTVlYjgyZjQuMjM5NDRkNTMxNGUwZGNjMy5jNzQyZmZlN2Y4OWU5NmFjLjEwMTM0NDgyMDkxZjAwZjUKQEAgLTQwODU3LDEyICs0MDg1NywxMiBAQAogICAgIDQwYzUwZmI4YzliMzJjNjAuODQ2MGZmYmY2OTM3YmFmNS5kOTA1YWZmMGMxNjcyMDQ4LjllOTZmMTc3NTk4YjNkNzEKICAgICA0Y2E1ZmQ5NzFhOGFhM2ZiCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM4YmQwMDE5Zjg5ZTk2YWMuMTAxMzQ0ODJmNmUwZmYwYgotICAgIGQ0NzZlYjZkZTVlYjgyZjQuMjM5NDRkNTMxNGUwZGNjMy5jNzQyZmZlN2Y4OWU5NmFjLjEwMTM0NDgyMDkxZjAwZjUKKyAgICAyYzMxOGFhN2JhOGViOGFiLjY3OWNhZTNkYmU4ZGVhZGYuNjg2OTNiZDE0Njc3OTBlYS43OTA2YWJkNjQxOTliMmFiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMGIyYzEuMDAwMDAwMDAwMDAwNDU3ZQogICAgIDExOGVjNGE0YjYxZTNmNGMuOGUzYzk0MzA5ODE0ZTNiYi5jZTA3N2Q3ODQzMTViMmU3LjI5YTk4N2JlYjJjMTQ1N2UKICAgICA0MGM1MGZiOGM5YjMyYzYwLjg0NjBmZmJmNjkzN2JhZjUuZDkwNWFmZjBjMTY3MjA0OC45ZTk2ZjE3NzU5OGIzZDcxCiAgICAgNGNhNWZkOTcxYThhYTNmYgotVlBTSUdORF8xMjgobWVtKQorVlBNT1ZaWFdRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDBmYTEyNzBjMTBjODM0NDguYmQ2N2NhMTZiYjM0ODVkYy5lMWNjMGJlY2EwNTQxZjlhLjQzODg5M2JiMTAyMTFiN2IKICAgICBjMzU3ZWJjMDU3NTRhYzgzLmU1YmZmMDI4MjcyZjg1NmMuODE0YzMyYTM1Yjc4Y2JkOS42YWRiMjQ0NmNjY2VlMDJiCkBAIC00MDg3MSwxMiArNDA4NzEsMTIgQEAKICAgICBkZWIzYmY5OGEyMDE0MmU1CiAgIGFmdGVyCiAgICAgMGZhMTI3MGMxMGM4MzQ0OC5iZDY3Y2ExNmJiMzQ4NWRjLmUxY2MwYmVjYTA1NDFmOWEuNDM4ODkzYmIxMDIxMWI3YgotICAgIGMzNTdlYmMwNTc1NGFjODMuZTViZmYwMjgyNzJmODU2Yy44MTRjMzJhMzViNzhjYmQ5LjZhZGIyNDQ2Y2NjZWUwMmIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2ViM2NkNWRhNDg3MzQyNy42YWRiMjQ0NmNjY2VlMDJiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDEwMjEuMDAwMDAwMDAwMDAwMWI3YgorICAgIDQ0OTNjNmExMGMzN2M2ZDkuMTIxYjdlNWNhYTMwNmFiYi40MGFiZjJkMGI2YWU3ZGRjLmE5NGM1ZWZiOTBmYWFiMDQKICAgICA2ZTIxMzM5YTRhN2Y0MDc1LmExYzU2ZTFkZGZjMTZkNzUuZmFiN2M2NWZjYzAyZWZjZi41YjI1M2U0OGY5MzJiOGI0CiAgICAgZGViM2JmOThhMjAxNDJlNQogCi1WUFNJR05EXzEyOChyZWcpCitWUE1PVlpYV1FfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOGM0MmRkNTYyN2YzODY0My4xZGNjYWU5NzJlMzhkNDg0LmVlMGFiZWQ2NjM3MWNkNDguOGIzYTJiM2RiYTgxZGZlMAogICAgIGMzMWU5NGYwMjU5NGMwN2IuMmQ2MmIzODRkMzZjM2UzMi41NTM2NjlmNWQyYzljNGRkLmNmMDE5YjU0OWIzNjA2MzgKQEAgLTQwODg0LDEyICs0MDg4NCwxMiBAQAogICAgIDM4ZWNiZTY1ZmIxNjA0MjguZGY3YjRjZGVkMjdhODgxOS5lMTcyYzExMmRkYTY2YTA0LmUwOGI5MWUxYTc3M2YwNzQKICAgICA2NWU2MGUyZjBiMTIyYWFlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU1MzY2OWY1MmQzNjNiMjMuMzBmZTY0YWM2NGM5ZjljOAotICAgIGMzMWU5NGYwMjU5NGMwN2IuMmQ2MmIzODRkMzZjM2UzMi41NTM2NjlmNWQyYzljNGRkLmNmMDE5YjU0OWIzNjA2MzgKKyAgICA4YzQyZGQ1NjI3ZjM4NjQzLjFkY2NhZTk3MmUzOGQ0ODQuZWUwYWJlZDY2MzcxY2Q0OC44YjNhMmIzZGJhODFkZmUwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDhiMmQuMDAwMDAwMDAwMDAwMjMwNgogICAgIGRkOTNlMGQxMzg3MTJiMzkuN2FhZGJlNGQ1NjI5M2NhYS4zMjk1NmJlNWM2NTc4ZmUzLmEyZDg5NDkyOGIyZDIzMDYKICAgICAzOGVjYmU2NWZiMTYwNDI4LmRmN2I0Y2RlZDI3YTg4MTkuZTE3MmMxMTJkZGE2NmEwNC5lMDhiOTFlMWE3NzNmMDc0CiAgICAgNjVlNjBlMmYwYjEyMmFhZQotVlBTSUdORF8xMjgobWVtKQorVlBNT1ZaWFdRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDBjYjQ4ODY3ZDExOThkZTEuMmU3NzI4MTgwYTBkODdmNS4zYTk2ZDgyMzY0NmNkZmFhLmJlMWI2NmU4YjM0MjkxZWMKICAgICBiM2MyN2E3NTE4OTFkNDM5LjFkN2UxYzU3MDJlNGYwNGMuNjZjYWRlMDgyNzBhZmM4YS4yNWRhNTZkM2UzYjgzZjQ4CkBAIC00MDg5OCwxMiArNDA4OTgsMTIgQEAKICAgICAyZDk5YzE0Y2FiYTlkMGNhCiAgIGFmdGVyCiAgICAgMGNiNDg4NjdkMTE5OGRlMS4yZTc3MjgxODBhMGQ4N2Y1LjNhOTZkODIzNjQ2Y2RmYWEuYmUxYjY2ZThiMzQyOTFlYwotICAgIGIzYzI3YTc1MTg5MWQ0MzkuMWQ3ZTFjNTcwMmU0ZjA0Yy42NmNhZGUwODI3MGFmYzhhLjI1ZGE1NmQzZTNiODNmNDgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNjZjYWRlMDgyNzBhZmM4YS5kYTI1YTkyZDFjNDdjMGI4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMGIzNDIuMDAwMDAwMDAwMDAwOTFlYworICAgIDM1ZGQ2MDQ1ZmE4OWJjZTEuNWY0ZTk2OGM3ZTI3N2FkOC4zZmU1ZGE3YTM4NjA5Y2U0LjcyZmM4ZDQwMGE5M2IxYzQKICAgICA2ZWNmYjZjMzkzMGEwMTA2LjUxMzM5MDI0MWI2MDYyNDUuYTFiMjQ5NjNiMjdiN2JlNi4wMWNkMDc5OWMzNjAyMzBjCiAgICAgMmQ5OWMxNGNhYmE5ZDBjYQogCi1WUFNJR05EXzEyOChyZWcpCitWUE1PVlpYV1FfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTRhY2I1YzM1ZGZkZjVhZC4zOTY0ZjhkYjAwMjI1ZmQ0LjUwNzkwODhjNzQxZGU0NDEuNjdmY2E2YjFiMTY2NTViOQogICAgIGQxNTFlMTZjNzVlNWNlNWYuNzQ2YWEzNzk1Y2RjOTE3Ni5iNjZiZjkyZjI2ZWEzYjc1LjZmOTA2ZDRmNTIyZWU1OGMKQEAgLTQwOTExLDEyICs0MDkxMSwxMiBAQAogICAgIDNjODVjZjAxNDlhNjhiZTIuYTZmNTIwZjg1MzY3NjRlOC4yYTg3MzZkNTAzZTA1YjNjLmIxYzcyOTJiZTk4MTFhZGMKICAgICBhNDAwMTc0MTE2MjYzN2IyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ5OTQwNmQxZDkxNWM0OGIuOTA2ZjkyYjFhZGQxMWE3NAotICAgIGQxNTFlMTZjNzVlNWNlNWYuNzQ2YWEzNzk1Y2RjOTE3Ni5iNjZiZjkyZjI2ZWEzYjc1LjZmOTA2ZDRmNTIyZWU1OGMKKyAgICA1NGFjYjVjMzVkZmRmNWFkLjM5NjRmOGRiMDAyMjVmZDQuNTA3OTA4OGM3NDFkZTQ0MS42N2ZjYTZiMWIxNjY1NWI5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMGIxZGQuMDAwMDAwMDAwMDAwZTg4OQogICAgIDAwZDU0MWIyOTBlZjk2OGQuZjlhYzMxOGFjNDQ0NTQxOS5lMDU3NWY3OGNjNTFhNDkwLjk0M2IxYTI5YjFkZGU4ODkKICAgICAzYzg1Y2YwMTQ5YTY4YmUyLmE2ZjUyMGY4NTM2NzY0ZTguMmE4NzM2ZDUwM2UwNWIzYy5iMWM3MjkyYmU5ODExYWRjCiAgICAgYTQwMDE3NDExNjI2MzdiMgotVlBTSUdORF8xMjgobWVtKQorVlBNT1ZaWFdRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDQ3YjQ1ZjU3NTVkN2ZhMzcuZTNhYjg5YzQzZDk3ZTcwYi41NjEyZWNiMTI2NTA3YzEwLmYxNDg3YmIxNjYyMzljMjYKICAgICA3OGFkN2Q1OWMxYTAyMDk2LjUwOTQ2YTZhMDg0ZGU2YjQuZTRjZjBmYTA1ODBiNTliYy44ZmU2Mjg3ODkyYTRhMmY5CkBAIC00MDkyNSwxMiArNDA5MjUsMTIgQEAKICAgICAxMWU1ODE4OGUwMWViMGE0CiAgIGFmdGVyCiAgICAgNDdiNDVmNTc1NWQ3ZmEzNy5lM2FiODljNDNkOTdlNzBiLjU2MTJlY2IxMjY1MDdjMTAuZjE0ODdiYjE2NjIzOWMyNgotICAgIDc4YWQ3ZDU5YzFhMDIwOTYuNTA5NDZhNmEwODRkZTZiNC5lNGNmMGZhMDU4MGI1OWJjLjhmZTYyODc4OTJhNGEyZjkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZTRjZjBmYTA1ODBiNTliYy43MDE5ZDc4ODkyYTRhMmY5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDY2MjMuMDAwMDAwMDAwMDAwOWMyNgorICAgIDExYjllZDMzNzc4ZDY1ZmMuZGU4YjZlNWM0NDU0YzY4OC4yZWY4MDdiMDA1YTViNzFhLjYxYWQzYjk2MjJmMWFhNjIKICAgICBmMGEyMmJkMjkyYWI4NDk1LmViZGU5MTA3OTAzOGMxMzMuMGU1OTRmY2Y0YTI5NTI1My5jM2U5YjA3N2IzOTZmMDBjCiAgICAgMTFlNTgxODhlMDFlYjBhNAogCi1WUE1VTEhSU1dfMTI4KHJlZykKK1ZQTU9WWlhEUV8xMjgocmVnKQogICBiZWZvcmUKICAgICBhN2VlYWMzMzQ1MTUyNWQ2LmVmMzViNDIwMmYwNTNhOGMuZDFkN2QwZDc4Njg2MTQ2My42MWJkNjNlODQzYTRlNTk1CiAgICAgZTE1MTJjZTY3ZjA3OGM0ZC5lYjNlMDMwYjY5YTc0MzBkLmVlYzQyNTM5YzJjYWZhYzIuMDRmMmJmZTcwYjIwMmQwYwpAQCAtNDA5MzgsMTIgKzQwOTM4LDEyIEBACiAgICAgYjE1MDFiMTBlMDBlMWZiYy40YmUxZTQ2NDI2ZjUzZDYwLjM5YTUwNjVmN2U2MDczYmUuYTZmYTQwNDc3OTUxY2I0OAogICAgIDVkNjY1ZDgxNTgxZDk5NjQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGQ1N2RmMDUwZjBhMDMzMi5mZTM3MGZhYWZhNTJmNzJhCi0gICAgZTE1MTJjZTY3ZjA3OGM0ZC5lYjNlMDMwYjY5YTc0MzBkLmVlYzQyNTM5YzJjYWZhYzIuMDRmMmJmZTcwYjIwMmQwYworICAgIGE3ZWVhYzMzNDUxNTI1ZDYuZWYzNWI0MjAyZjA1M2E4Yy5kMWQ3ZDBkNzg2ODYxNDYzLjYxYmQ2M2U4NDNhNGU1OTUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDBkMWMyZTBiOC4wMDAwMDAwMGJlYWNlNmU0CiAgICAgMWI1OGZkMGIyOTgxMjBiNS5jMTg5OTQ3ZDVkOWU1YjQ1LjljZWY4ZTk3ZTA4ZWIxZmMuZDFjMmUwYjhiZWFjZTZlNAogICAgIGIxNTAxYjEwZTAwZTFmYmMuNGJlMWU0NjQyNmY1M2Q2MC4zOWE1MDY1ZjdlNjA3M2JlLmE2ZmE0MDQ3Nzk1MWNiNDgKICAgICA1ZDY2NWQ4MTU4MWQ5OTY0Ci1WUE1VTEhSU1dfMTI4KG1lbSkKK1ZQTU9WWlhEUV8xMjgobWVtKQogICBiZWZvcmUKICAgICBkM2QyYjM1MDc1MWIwYzY2LmZmODQ4MjYwNDAzYWMzMGMuNjYxMzZkYWJlMWI5YTY4YS4xZjMyOGFmYzM1Y2M3Y2I0CiAgICAgZTQwYWJjYTJlZjU4ZTA3OC42MTQyMmY2NmU0OTI0OTUxLmVmZWNhZDNlYTlmNTUyZWUuYWNlMTE0ZDlhMzVjMGE4OQpAQCAtNDA5NTIsMTIgKzQwOTUyLDEyIEBACiAgICAgY2RiOWI4MzE0YzY2MjBmZgogICBhZnRlcgogICAgIGQzZDJiMzUwNzUxYjBjNjYuZmY4NDgyNjA0MDNhYzMwYy42NjEzNmRhYmUxYjlhNjhhLjFmMzI4YWZjMzVjYzdjYjQKLSAgICBlNDBhYmNhMmVmNThlMDc4LjYxNDIyZjY2ZTQ5MjQ5NTEuZWZlY2FkM2VhOWY1NTJlZS5hY2UxMTRkOWEzNWMwYTg5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzMmViOTE4MTQ1YWM2MGEuZWJiZWVjZjFkOTEwMGE0NAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDFmMzI4YWZjLjAwMDAwMDAwMzVjYzdjYjQKKyAgICA2ZGQ5ZjY2MWUwZGVkMGM2LjMzZDQxZDkwNjhhMWVjMzkuYzAzNjFmMDk5YmI1ZmRiOC4zYTAwYTI2NDY0OWU1N2VhCiAgICAgNDgwZGRjN2I2NGJjOTk3ZC5kMDg4NDg0OTY5ZjRlOTZkLmI2YmUzZmY4ZDIwNjYyMTYuMjZkOTJmMDgxMzFkYTA4MgogICAgIGNkYjliODMxNGM2NjIwZmYKIAotVlBNVUxIUlNXXzEyOChyZWcpCitWUE1PVlpYRFFfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODllYzM3NGNhYzA0MTUwYS41MjcwZWFkYjk4ZmJmN2M5Ljk2YThhZGZlODIxNjdjOWMuYWQ0ZjhhZjc2YWYyM2UzMgogICAgIGI3YmVhYWMzY2Y4M2I5NTEuNjdjZjljNmQ5N2E5YTVkNS5lMDgxNDYxOTUwOTNlMTcwLjgxYjc3YWYzODA4ODRjMzgKQEAgLTQwOTY1LDEyICs0MDk2NSwxMiBAQAogICAgIGQ5NmU1OTc5Y2I1NjAwNDMuMjJiMGRkZDc2ODgwZTRkZi42ZjhkMDkzNTc4Y2YxMGI4LjMwMzgzZThlOTRkYmYyYjUKICAgICBjNGU5MGEwNWNiYjEwMDgzCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmZkNzMwOTUzNDVkYWVjMGIuZjE3MjkyNTdkMDYyMmM0MwotICAgIGI3YmVhYWMzY2Y4M2I5NTEuNjdjZjljNmQ5N2E5YTVkNS5lMDgxNDYxOTUwOTNlMTcwLjgxYjc3YWYzODA4ODRjMzgKKyAgICA4OWVjMzc0Y2FjMDQxNTBhLjUyNzBlYWRiOThmYmY3YzkuOTZhOGFkZmU4MjE2N2M5Yy5hZDRmOGFmNzZhZjIzZTMyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMGVjMThkZDYuMDAwMDAwMDAyZmQxNGE1NQogICAgIGIzN2IwYzAzNTA3MDQ5ODAuNjNmNjZlMWQ3ZGQxNjFjZS4wYTVlMTEwNzZlZjc1Mzk1LjBlYzE4ZGQ2MmZkMTRhNTUKICAgICBkOTZlNTk3OWNiNTYwMDQzLjIyYjBkZGQ3Njg4MGU0ZGYuNmY4ZDA5MzU3OGNmMTBiOC4zMDM4M2U4ZTk0ZGJmMmI1CiAgICAgYzRlOTBhMDVjYmIxMDA4MwotVlBNVUxIUlNXXzEyOChtZW0pCitWUE1PVlpYRFFfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTRhMDZiMjllZjYwMzJlYy44NmU1OGQ4ZmRkYzIxYjQ1LjgwY2I2NDg3NzFjMWVkMzUuNmQ1ODJiMGQwY2E3NTE4NQogICAgIGFjMjlkZmU1MWNmMzQyMWIuMTQyYWE1YjMyMTNlZDYzMi41OTExN2YxOWI2YTAzNmZjLjVmMGQ3MWZkYzMwOTU1YTcKQEAgLTQwOTc5LDEyICs0MDk3OSwxMiBAQAogICAgIDgzOTdmYzhlZGRlZDQyYzgKICAgYWZ0ZXIKICAgICBhNGEwNmIyOWVmNjAzMmVjLjg2ZTU4ZDhmZGRjMjFiNDUuODBjYjY0ODc3MWMxZWQzNS42ZDU4MmIwZDBjYTc1MTg1Ci0gICAgYWMyOWRmZTUxY2YzNDIxYi4xNDJhYTViMzIxM2VkNjMyLjU5MTE3ZjE5YjZhMDM2ZmMuNWYwZDcxZmRjMzA5NTVhNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNzdjNjNkMmJlY2JmN2VkLjUxMzIyNjU3ZjlmOTM2OGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDA2ZDU4MmIwZC4wMDAwMDAwMDBjYTc1MTg1CisgICAgYmE0ZmUxMjU2Zjc2ZWQzZC5lMDhhOWM1MDM0NTg2ZGI3Ljg5NTBhYjc5NTMyYTdkNWYuYTBmNmQ5NmYzYjgzNTZjYgogICAgIGE5ZTBlZGQ1MDNmNmVmN2QuNDY1MTZlZDFiMTljMWI4MC5lYzUyNjI5NDYzNmE3YjhiLjhlNjA1ZWQxMTBhMDkxOWQKICAgICA4Mzk3ZmM4ZWRkZWQ0MmM4CiAKLVZQTVVMSFJTV18xMjgocmVnKQorVlBNT1ZaWERRXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGRkZTdhZjEyM2VmNWE0ZjguNTVhNjgwZTFmNTdlMDMwOS5hMmNiMTdhNDM1OTUxZDM5LjVlZTQyMjU0MDI2Y2VmYWIKICAgICBmNjliNzRjOWQwNDRmNWRiLjlhNmYxNDM1NjAxYWU2MGEuNTA0Mzk0MzQ1YmNmYWY4ZC5iYmQxNjZhNzRkM2Q5M2VjCkBAIC00MDk5MiwxMiArNDA5OTIsMTIgQEAKICAgICBkOTYzMjE4MWY1ZTk0ZTY0LjVmMzQzNDY1MTNjMDA5MjIuMTI2MWY2M2NmZjM3NzJiNy5hNWYxNmJiMzU2Nzk1ZTgwCiAgICAgZWJiYTI0NDM0YmZkZmMyYQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jYjU4MWIwMmQyYjJmN2JiLjExMTliYjY4M2E3YWUxMzQKLSAgICBmNjliNzRjOWQwNDRmNWRiLjlhNmYxNDM1NjAxYWU2MGEuNTA0Mzk0MzQ1YmNmYWY4ZC5iYmQxNjZhNzRkM2Q5M2VjCisgICAgZGRlN2FmMTIzZWY1YTRmOC41NWE2ODBlMWY1N2UwMzA5LmEyY2IxN2E0MzU5NTFkMzkuNWVlNDIyNTQwMjZjZWZhYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMGRmZTdhYTc4LjAwMDAwMDAwNjBlODI0NzkKICAgICAyYzAwNDYxZjJmNjc2ZTFiLjU0MDUyN2JkNjFkNzU0YWYuYWMwN2RmZWVjMGQ2MGQyOC5kZmU3YWE3ODYwZTgyNDc5CiAgICAgZDk2MzIxODFmNWU5NGU2NC41ZjM0MzQ2NTEzYzAwOTIyLjEyNjFmNjNjZmYzNzcyYjcuYTVmMTZiYjM1Njc5NWU4MAogICAgIGViYmEyNDQzNGJmZGZjMmEKLVZQTVVMSFJTV18xMjgobWVtKQorVlBNT1ZaWERRXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDhjMGY1MDE2NWM3ZmJiYTYuNWEwZTAxNTljMTU2Y2Y2My45NmNhYjgxYTkyZTFjMDhmLmRkOWVkNDhiYjU3ZDFiZTYKICAgICA2NGJjNmUxOGE0MGI1NzFlLjBjNGVlMjE0MmQzYjJlYzQuZDc5MjJkYzdmYjQ3MzYyMy42YjBhNzY0NzdkMzU0MzYxCkBAIC00MTAwNiwxMiArNDEwMDYsMTIgQEAKICAgICAzOTVmYzU0MzVjN2IxNDRkCiAgIGFmdGVyCiAgICAgOGMwZjUwMTY1YzdmYmJhNi41YTBlMDE1OWMxNTZjZjYzLjk2Y2FiODFhOTJlMWMwOGYuZGQ5ZWQ0OGJiNTdkMWJlNgotICAgIDY0YmM2ZTE4YTQwYjU3MWUuMGM0ZWUyMTQyZDNiMmVjNC5kNzkyMmRjN2ZiNDczNjIzLjZiMGE3NjQ3N2QzNTQzNjEKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjEzYmU2NDkwNDA3ZTUyYi5lMzNmZDdkOGI3MWQwZWIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwZGQ5ZWQ0OGIuMDAwMDAwMDBiNTdkMWJlNgorICAgIDRlOGRmNzMzNDBhZThjYmUuNDk2ZWMxMWZkNTIzYTczMi5mZDU3MTE1NzZhZmQyNjBhLjE3ZjFkNmRkZjNlOTI4ZDIKICAgICAyODRlNjk1NDRiNzMxNWIzLjZlYmM5OWU0NTY5YTc2NWEuZTNlN2RmYjhmYTBmNGU2Zi4zZDlmZjJiOGI0MjgwNGU4CiAgICAgMzk1ZmM1NDM1YzdiMTQ0ZAogCi1WQlJPQURDQVNURjEyOChyZWcpCitWTVBTQURCV18xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgNjY3ZjRiZWM4NjcwOTNhZS5jZGNhM2U2N2UyNjZhZjI5LmQ4ODI2NmQxNGIyZGQ2ZTcuNjcwYzEzZDVjNzhhNjg3ZgogICAgIDIyNDk4MTFlY2U5MmJlYjYuMThjZWY0NTkyMDk0MTY0Yi5lMTBlMjQ1MTUxNjcwNDg2LjY0OTMyYTlhZWU3OTMxNjYKQEAgLTQxMDE5LDEyICs0MTAxOSwxMiBAQAogICAgIGIzMGVlOWNkMmI4ZjA4NmUuMTQ5ZmYxODYwM2NlMzk0Ni40M2EzNjViYWZkMDFiOWE5LjM4ZjZlZGNjYjllNGJmNjcKICAgICBjNzZhOTIxMTk0NzhmY2Q5CiAgIGFmdGVyCi0gICAgNjY3ZjRiZWM4NjcwOTNhZS5jZGNhM2U2N2UyNjZhZjI5LmQ4ODI2NmQxNGIyZGQ2ZTcuNjcwYzEzZDVjNzhhNjg3ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTNmMDEyZDAwZGQwMTAxLjAxOWIwMTYzMDA0ODAxMWMKICAgICAyMjQ5ODExZWNlOTJiZWI2LjE4Y2VmNDU5MjA5NDE2NGIuZTEwZTI0NTE1MTY3MDQ4Ni42NDkzMmE5YWVlNzkzMTY2CiAgICAgYzgwYTYxNDVkMTZlZDExMi5lNzI3MDcxNDIyMDgwNTQ2LmU2YWFkMGQwMDNkNDNiZTMuYjU0NzllZjM4YmU4NjQ0ZgogICAgIGIzMGVlOWNkMmI4ZjA4NmUuMTQ5ZmYxODYwM2NlMzk0Ni40M2EzNjViYWZkMDFiOWE5LjM4ZjZlZGNjYjllNGJmNjcKICAgICBjNzZhOTIxMTk0NzhmY2Q5Ci1WQlJPQURDQVNURjEyOChtZW0pCitWTVBTQURCV18xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgNDA3MTA5YWUzOWIxZDdkMi40MWExMTQyMjc2ODE5Zjc1LjdkMDMzMDlhZGZmMzZlNzYuNTQ0NWRmN2JkYzc5Yjg4NQogICAgIDdkZDVjZjkwYzM5YTBlN2QuY2QwZWRmYjA1MWQwZDFkMy5mYzFlM2YzY2QzODI2MDAyLjc1ZGIzYTdmM2NjODc0MjIKQEAgLTQxMDM0LDExICs0MTAzNCwxMSBAQAogICBhZnRlcgogICAgIDQwNzEwOWFlMzliMWQ3ZDIuNDFhMTE0MjI3NjgxOWY3NS43ZDAzMzA5YWRmZjM2ZTc2LjU0NDVkZjdiZGM3OWI4ODUKICAgICA3ZGQ1Y2Y5MGMzOWEwZTdkLmNkMGVkZmIwNTFkMGQxZDMuZmMxZTNmM2NkMzgyNjAwMi43NWRiM2E3ZjNjYzg3NDIyCi0gICAgNWM2MzVmYTE0ZjNmNWIwNy5iMmEzNDRlNDU1MDlkYjM2LjZmYmU5YTU4ZmI4OGNhMTguMDJiMzcyMzNiODdiMmIyZAotICAgIDdkMDMzMDlhZGZmMzZlNzYuNTQ0NWRmN2JkYzc5Yjg4NS43ZDAzMzA5YWRmZjM2ZTc2LjU0NDVkZjdiZGM3OWI4ODUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEzOTAxOGMwMTRjMDE0ZC4wMGMyMDE2NzAwYmIwMTk2CisgICAgYjdlNzM0Y2ZmOGFjN2I5Yy40ZWFhNDEyODIxYjhmODQ4LmIwYWRiZGRhNzIxMDY5ZTIuNTcxNzg0MDFlZDFkMTc1MgogICAgIGQwNTQ2YjU2NzUzYTc1M2MKIAotVkJST0FEQ0FTVEYxMjgocmVnKQorVk1QU0FEQldfMTI4XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIGM5YjYyMzlmZWY1ZjgxOTguNmIyZGNkMDRkYmVlMjk2Ny5mYjcwZDFlYTRlNjc2NWI1LjljYjkyNWFlNTQyNmY5OGMKICAgICA5ZTg5YTg0N2Y1MTc3NjExLjU1MDBhMzJlMTMxMDIzOTUuMTc0MWYwOTQ3YmE0NWUyYS4xMGFjNGNjMGJlZDYzNTQzCkBAIC00MTA0NiwxMiArNDEwNDYsMTIgQEAKICAgICA0Y2IyMGE2MzE2NzIwZTBkLjM2ODFmYTBlZjQyNWU2YzkuMDczM2NjNTUzZWY2ZTRkYi5mYjdhY2M0Zjk5MzZhNDg3CiAgICAgMmJlYzFkYTM0MWZlNGY2YwogICBhZnRlcgotICAgIGM5YjYyMzlmZWY1ZjgxOTguNmIyZGNkMDRkYmVlMjk2Ny5mYjcwZDFlYTRlNjc2NWI1LjljYjkyNWFlNTQyNmY5OGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEyYzAxYjQwMTA2MDI1Ni4wMGU0MDFkMjAwYTMwMTZjCiAgICAgOWU4OWE4NDdmNTE3NzYxMS41NTAwYTMyZTEzMTAyMzk1LjE3NDFmMDk0N2JhNDVlMmEuMTBhYzRjYzBiZWQ2MzU0MwogICAgIGFiMTlmN2I5MjNlZjkxNTQuNGYyZTM0MzhiZDFmMjM1Mi5mYzY5OWE5NDQxZmExZjUzLmU2NTNiMGZjY2MyZGRhMzMKICAgICA0Y2IyMGE2MzE2NzIwZTBkLjM2ODFmYTBlZjQyNWU2YzkuMDczM2NjNTUzZWY2ZTRkYi5mYjdhY2M0Zjk5MzZhNDg3CiAgICAgMmJlYzFkYTM0MWZlNGY2YwotVkJST0FEQ0FTVEYxMjgobWVtKQorVk1QU0FEQldfMTI4XzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDUzNzcxZWU2ZTE5MDk2MGQuZGQ5ZmRmYjA2OTJjMjhlNy5lNmM2NzM5Y2Q0MzEyNzI2Ljk1ZWQ4MTQzMGUyM2U4NmYKICAgICA0ZGU1NGEwMzk0ZjgzNjk3LmJhMmQ3MTBjYjlhOTFkOGYuM2NjOTFiY2U3YTRjYTM5Ni4wMGUxYjVjYTRjMGQ2OGJhCkBAIC00MTA2MSwxMSArNDEwNjEsMTEgQEAKICAgYWZ0ZXIKICAgICA1Mzc3MWVlNmUxOTA5NjBkLmRkOWZkZmIwNjkyYzI4ZTcuZTZjNjczOWNkNDMxMjcyNi45NWVkODE0MzBlMjNlODZmCiAgICAgNGRlNTRhMDM5NGY4MzY5Ny5iYTJkNzEwY2I5YTkxZDhmLjNjYzkxYmNlN2E0Y2EzOTYuMDBlMWI1Y2E0YzBkNjhiYQotICAgIGY2MDMxZmU1Nzc0MmViMzYuM2VhOGJkZTNhMTc2MjdiMC4xMjU2NmM5MDAyODQxNjQ1LmE1NWM2NDU2OTQ0MTlmNjkKLSAgICBlNmM2NzM5Y2Q0MzEyNzI2Ljk1ZWQ4MTQzMGUyM2U4NmYuZTZjNjczOWNkNDMxMjcyNi45NWVkODE0MzBlMjNlODZmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxN2YwMjYyMDBmODAxNWEuMDFhNjAyNGMwMWM3MDExZgorICAgIDJhOWQxOTdhYTU3YjcwMTUuYzc1Y2JkYTJiZTFlODJmNy40NTM4ZTRjZjg3ZTQzYzVmLmUxYWI4YjUzODM0YWNiMjgKICAgICAwZTE3MjQyZGI1YjQyNmEyCiAKLVZCUk9BRENBU1RGMTI4KHJlZykKK1ZNUFNBREJXXzEyOF8weDAocmVnKQogICBiZWZvcmUKICAgICA4OWVmMmQ1MWM1MGNlYzg0LmM1N2ZiMmFkM2JhZTgzNjEuYjA5NTZmYjNhYjJlNmMxMC5iMTNkZmU3NTI1NzlkMDBmCiAgICAgYWU3ZWEyMjk0ZmRkNWI3YS5hMzc1Njg2YTU0ZThkZDQ1LjU1OWZjZTgzMDUzMTFmYTYuMzIyZjM2NzBmOTRlOGY4MQpAQCAtNDEwNzMsMTIgKzQxMDczLDEyIEBACiAgICAgNjZlZmJjYTk0MzFiMWY0Zi45OGNjMTgzMzgxOWU1ZDg4LjQyNTU4NDExNmU0MGQyZmIuZTMwZGYxMTFiMWU5N2Q1ZQogICAgIGNiOTE2YzkwY2VjNzI1MjEKICAgYWZ0ZXIKLSAgICA4OWVmMmQ1MWM1MGNlYzg0LmM1N2ZiMmFkM2JhZTgzNjEuYjA5NTZmYjNhYjJlNmMxMC5iMTNkZmU3NTI1NzlkMDBmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxODQwMGVlMDE3NzAwYzcuMDA5YzAxNzEwMTQ4MDFiNwogICAgIGFlN2VhMjI5NGZkZDViN2EuYTM3NTY4NmE1NGU4ZGQ0NS41NTlmY2U4MzA1MzExZmE2LjMyMmYzNjcwZjk0ZThmODEKICAgICBkOTBmN2QyM2YwYjRhZDJmLmEwNGJiNjlkMGMzNDNkZWUuMTFjNWQ3N2Y2N2IzZDg2NS5hNGRiMDhhYTFlNmYzNWUyCiAgICAgNjZlZmJjYTk0MzFiMWY0Zi45OGNjMTgzMzgxOWU1ZDg4LjQyNTU4NDExNmU0MGQyZmIuZTMwZGYxMTFiMWU5N2Q1ZQogICAgIGNiOTE2YzkwY2VjNzI1MjEKLVZCUk9BRENBU1RGMTI4KG1lbSkKK1ZNUFNBREJXXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICAzODMzZjUxMzhmMTVlNzU2LmIxNmE1OTI5ZTVhMGVkODcuNjdjNTBhMTZjYzMzZmIzZS40Mjk5ZDNhN2I1NjU0YjEyCiAgICAgMDZiZTA4ODYxM2RmN2YyOS4xN2NjNTIwZTcxY2Y1MjgzLmU5MDIwOTMzMGJmZWQwM2QuNmZkZWJmYWNkOGFlN2Q1NgpAQCAtNDEwODgsMTEgKzQxMDg4LDExIEBACiAgIGFmdGVyCiAgICAgMzgzM2Y1MTM4ZjE1ZTc1Ni5iMTZhNTkyOWU1YTBlZDg3LjY3YzUwYTE2Y2MzM2ZiM2UuNDI5OWQzYTdiNTY1NGIxMgogICAgIDA2YmUwODg2MTNkZjdmMjkuMTdjYzUyMGU3MWNmNTI4My5lOTAyMDkzMzBiZmVkMDNkLjZmZGViZmFjZDhhZTdkNTYKLSAgICAxMWZmMjFkNTczMzJhYmM3LmYyNjFhM2M0ODQzMjhiZWYuZmE0ZjkwNzc1YTBiOWJiMC4yNDcwNDQ4Yzc0YTVhNDc0Ci0gICAgNjdjNTBhMTZjYzMzZmIzZS40Mjk5ZDNhN2I1NjU0YjEyLjY3YzUwYTE2Y2MzM2ZiM2UuNDI5OWQzYTdiNTY1NGIxMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTFmMDEzMzAxYzIwMWNkLjAxYWEwMTdhMDE0YTAwZTIKKyAgICAzNWMzYmRlY2NlMWEyNTVjLjlmNzU0NmI3Yjk1OGQ0NzYuNzY3ODFiY2RkNDY3MTZjNC5iYzlhNWViMzI1ZDhmZTE4CiAgICAgOTRhYTBhOGQ4NmQyYzVlZAogCi1WUEVYVFJXXzEyOF8weDAocmVnKQorVk1QU0FEQldfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDA5ZWE0Mzg2MzMyMDM2YTAuNGRkNDU3YjczZGExYWExMy43OTUzMzk1M2FkY2E2OGM0LjM5NDkyNjIwOTUxZGZlYTUKICAgICA3NWE3MDUwYWM5NGQ4Y2RkLjM3ZmY2YjIzZGVkNWY1MTkuZGU0ODc3MDRmYjE2ODQ4Ni4xZThkMmU1ZWJhMzkwZjdlCkBAIC00MTEwMCwxMiArNDExMDAsMTIgQEAKICAgICBhNmM4MTQ2NDFlNzVkYmEyLmVlZDJmMjhhMjU3MmQwYzEuYjZhOGM0NTYxNzY5NDQxNS5jM2EyMjE0ODllZDU5YWNhCiAgICAgM2EwYTA1Y2M5NTZjOGQ5NQogICBhZnRlcgotICAgIDA5ZWE0Mzg2MzMyMDM2YTAuNGRkNDU3YjczZGExYWExMy43OTUzMzk1M2FkY2E2OGM0LjM5NDkyNjIwOTUxZGZlYTUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEwMTAxYTAwMGY0MDEyYS4wMTNlMDBiZTAxZGIwMTg5CiAgICAgNzVhNzA1MGFjOTRkOGNkZC4zN2ZmNmIyM2RlZDVmNTE5LmRlNDg3NzA0ZmIxNjg0ODYuMWU4ZDJlNWViYTM5MGY3ZQogICAgIDM2MmU0Yzg2ZTNlNTA1NGYuY2UwZjc1MWFjZGMyYzM5YS4yOWExZmMzNjQwYzc2NDY4LjAzMTFhZDcyNWVjODA0N2MKICAgICBhNmM4MTQ2NDFlNzVkYmEyLmVlZDJmMjhhMjU3MmQwYzEuYjZhOGM0NTYxNzY5NDQxNS5jM2EyMjE0ODllZDU5YWNhCi0gICAgMDAwMDAwMDAwMDAwZmVhNQotVlBFWFRSV18xMjhfMHgwKG1lbSkKKyAgICAzYTBhMDVjYzk1NmM4ZDk1CitWTVBTQURCV18xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgNDMxNWQ2ZWE2MDlhOTkwOC4yMmM0NWExMjE1ODg0YTgzLjcyMTI1YzVkMDNmM2Q4YmIuZTFhOWNjY2UxYzg5NWYzYQogICAgIGJjOTEwZThmMWE2YTc5NTAuMDc2ZDE5ZmE2NWFhOTA5ZS4zODlkMzE4MTgyNTE5NmIzLjA2ZjIwZjBjZWNiMmYzODMKQEAgLTQxMTEzLDEzICs0MTExMywxMyBAQAogICAgIDZhMDhhODE5Y2QyMWE4MGUuNzdmNWYyMmQ3ZTRkOGMzMS5mNmJmMGE2OWQ0ZDEyNzRmLmFkODgzNjg2NWM1MTcwMmYKICAgICBlODZkMTI5YjMzZGVkMmVhCiAgIGFmdGVyCi0gICAgNDMxNWQ2ZWE2MDlhOTkwOC4yMmM0NWExMjE1ODg0YTgzLjcyMTI1YzVkMDNmM2Q4YmIuZTFhOWNjY2UxYzg5Mzk5YgorICAgIDQzMTVkNmVhNjA5YTk5MDguMjJjNDVhMTIxNTg4NGE4My43MjEyNWM1ZDAzZjNkOGJiLmUxYTljY2NlMWM4OTVmM2EKICAgICBiYzkxMGU4ZjFhNmE3OTUwLjA3NmQxOWZhNjVhYTkwOWUuMzg5ZDMxODE4MjUxOTZiMy4wNmYyMGYwY2VjYjJmMzgzCi0gICAgODA0OTJiYTVlMGU4ZWE5OS5hZjBlNGQ4YWE5NjhlNzlmLjFiM2RlY2UxYmU5N2M3ZDYuODBjZTg5N2IyMzcxMzk5YgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTg0MDEzZjAxYjYwMmEzLjAxODkwMWFiMDE1NzAwODYKICAgICA2YTA4YTgxOWNkMjFhODBlLjc3ZjVmMjJkN2U0ZDhjMzEuZjZiZjBhNjlkNGQxMjc0Zi5hZDg4MzY4NjVjNTE3MDJmCiAgICAgZTg2ZDEyOWIzM2RlZDJlYQogCi1WUEVYVFJXXzEyOF8weDAocmVnKQorVk1QU0FEQldfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDhkYzkxYTI1NDVhNTljNzkuNTg5YjAxZDhmZTIwNmVkYy5iYjZjMDU0ZjdmZTViYTAwLmE3ZWUwNjA1ZGYwYjcyNGMKICAgICBmN2U4NDk5MDJkMzAwYTg4LjI0Y2ViM2NkOGVmMmY5MmYuZDdjMDgxNWM0OWJkYWZiYS4wODk4NWJhMWZjNTI2M2Y2CkBAIC00MTEyNywxMiArNDExMjcsMTIgQEAKICAgICA4ZTlmMGNiYWYyYzhjMGQzLmNhNDQwZTA4M2QzYjRlMTIuMDgyZWE0ZTdhNTViZDk5OS40ZTg5MDY4OWRhMzQyYTA3CiAgICAgZWI2ODUyYWVkNGU4NzdjNgogICBhZnRlcgotICAgIDhkYzkxYTI1NDVhNTljNzkuNTg5YjAxZDhmZTIwNmVkYy5iYjZjMDU0ZjdmZTViYTAwLmE3ZWUwNjA1ZGYwYjcyNGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBiNTAxNjgwMTAwMDFhMy4wMTc5MDE1MzAxMzkwMTJjCiAgICAgZjdlODQ5OTAyZDMwMGE4OC4yNGNlYjNjZDhlZjJmOTJmLmQ3YzA4MTVjNDliZGFmYmEuMDg5ODViYTFmYzUyNjNmNgogICAgIDg0MTY5YjQ4ODgwZTU3YzIuYWM2ZDM5ZTM5YWExMDUzMi4yODNjNjJjMDc3NjBhNTA4LmY3ODg4NzI5NDdiMWI3N2MKICAgICA4ZTlmMGNiYWYyYzhjMGQzLmNhNDQwZTA4M2QzYjRlMTIuMDgyZWE0ZTdhNTViZDk5OS40ZTg5MDY4OWRhMzQyYTA3Ci0gICAgMDAwMDAwMDAwMDAwNzI0YwotVlBFWFRSV18xMjhfMHgwKG1lbSkKKyAgICBlYjY4NTJhZWQ0ZTg3N2M2CitWTVBTQURCV18xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgYThmMWU5ODI0ZWQ4NWJlMy43M2NlOTk1MDA1ZWM4MTY5LjVjMWZiMTI3OTNjYzhmZmEuZDRlMTQzM2Q3MDM4ODYxNwogICAgIDYzZjA0NmYzNjcxMTkyOGIuOGRmMDNjNzc2MDA1ZDYyZS4zY2M5OWIyY2I5NWY4NTE3LmU4YTAzYzJmNzQ4NWU5MmUKQEAgLTQxMTQwLDEzICs0MTE0MCwxMyBAQAogICAgIDNlN2Y0MjU4ZTA4YmU4MmEuZDQzZGJhMmE1NzQ4MmFmNi41YWJkMzg5OWU0YmI3ZjllLjU4NzUyOTkzOTQ5ZWMxZGEKICAgICA2YzIzMTVkZWU5ODFhZGM3CiAgIGFmdGVyCi0gICAgYThmMWU5ODI0ZWQ4NWJlMy43M2NlOTk1MDA1ZWM4MTY5LjVjMWZiMTI3OTNjYzhmZmEuZDRlMTQzM2Q3MDM4M2U4YworICAgIGE4ZjFlOTgyNGVkODViZTMuNzNjZTk5NTAwNWVjODE2OS41YzFmYjEyNzkzY2M4ZmZhLmQ0ZTE0MzNkNzAzODg2MTcKICAgICA2M2YwNDZmMzY3MTE5MjhiLjhkZjAzYzc3NjAwNWQ2MmUuM2NjOTliMmNiOTVmODUxNy5lOGEwM2MyZjc0ODVlOTJlCi0gICAgZjYzMWU1ZWIzODllZDhlOS4zYTUxZjM5YzljYTBmYWNlLjQ3MGY0OTAzY2IwMGVjOTQuYTBiODhhMjc0Y2NlM2U4YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWE4MDIyMTAxMjIwMDZhLjAxMjQwMWMzMDIwMDAxNzEKICAgICAzZTdmNDI1OGUwOGJlODJhLmQ0M2RiYTJhNTc0ODJhZjYuNWFiZDM4OTllNGJiN2Y5ZS41ODc1Mjk5Mzk0OWVjMWRhCiAgICAgNmMyMzE1ZGVlOTgxYWRjNwogCi1WUEVYVFJXXzEyOF8weDAocmVnKQorVk1QU0FEQldfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDM3MGU0YjczZTcwMzNmZmQuMTdhOGRhMjU3OGU0N2Y3OS5iOTAwOGI4YzJkODlhMjUyLjRmOWZlM2Q4MjA5ZGZiNjEKICAgICAxNzgxYzVjMDI4YjFiMzI4LjVlNzYyODNlMWViNjU5MDMuNDNlNjY0MzBiOWYwOWQ4ZC4wMzgxYzZhZDljYjExYzA4CkBAIC00MTE1NCwxMiArNDExNTQsMTIgQEAKICAgICA4MzMzN2IyZmVhYmYzMDEwLmExMzRkNjA0MDNmM2M1NzcuYmE0YTFiZWI2NTVkMGY1Mi4xOTc0MjVjYWMyYTEzY2I0CiAgICAgMzIxZTk5ZWFhNDk0YjMxMQogICBhZnRlcgotICAgIDM3MGU0YjczZTcwMzNmZmQuMTdhOGRhMjU3OGU0N2Y3OS5iOTAwOGI4YzJkODlhMjUyLjRmOWZlM2Q4MjA5ZGZiNjEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEzZDAxODAwMTRiMDFiMS4wMWFjMDFkYzAxMzIwMTExCiAgICAgMTc4MWM1YzAyOGIxYjMyOC41ZTc2MjgzZTFlYjY1OTAzLjQzZTY2NDMwYjlmMDlkOGQuMDM4MWM2YWQ5Y2IxMWMwOAogICAgIDY3Y2E4MTMwNGIxNjQ1ZjUuZWRiNmE4OGZlZTBjMzJmNC5kMDNhNDA4MTk4MDg1ODU0LjUyMmY1ZTA1NzMwNDllYzAKICAgICA4MzMzN2IyZmVhYmYzMDEwLmExMzRkNjA0MDNmM2M1NzcuYmE0YTFiZWI2NTVkMGY1Mi4xOTc0MjVjYWMyYTEzY2I0Ci0gICAgMDAwMDAwMDAwMDAwZmI2MQotVlBFWFRSV18xMjhfMHgwKG1lbSkKKyAgICAzMjFlOTllYWE0OTRiMzExCitWTVBTQURCV18xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgN2FmNzM1NTAzNmVhYmYwMy5jNzA5YWQyOWExMzZiMTI1LjU2YmMyZThhNzk3NmNmYjkuNWU2MGYxZGFiYzdjZmUzNAogICAgIGNkY2M3NmU4OTNhZDFiYjUuOGY5ODE1OGEwZDBhMDRkZi5lODE5MmQwYjZkYTEwYmU1LjE4YzliZWJhM2FmMDYwYTYKQEAgLTQxMTY3LDEzICs0MTE2NywxMyBAQAogICAgIDA0OTlkMzVlMjBiMGI2MGIuMWExMTczMzI3MWYyMGVmMy4xNDg2MGRiMjNlMjAwZGFlLjNmYzMyZmZlMWEwODcwZTgKICAgICA2M2VkY2EzOWIzYzQ5NjExCiAgIGFmdGVyCi0gICAgN2FmNzM1NTAzNmVhYmYwMy5jNzA5YWQyOWExMzZiMTI1LjU2YmMyZThhNzk3NmNmYjkuNWU2MGYxZGFiYzdjNzI1MworICAgIDdhZjczNTUwMzZlYWJmMDMuYzcwOWFkMjlhMTM2YjEyNS41NmJjMmU4YTc5NzZjZmI5LjVlNjBmMWRhYmM3Y2ZlMzQKICAgICBjZGNjNzZlODkzYWQxYmI1LjhmOTgxNThhMGQwYTA0ZGYuZTgxOTJkMGI2ZGExMGJlNS4xOGM5YmViYTNhZjA2MGE2Ci0gICAgMDc2OWQ2OWVkOGVjODU1NC4zNjJjYWRiZmM5YzQ2NGVhLjM0MTk0ZTc0ZmI4MDM3MjguNDVkMTdmZjc3YjQ1NzI1MworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTY2MDFjMjAxMTMwMTAyLjAxYTAwMTg3MDBmZDAxNzkKICAgICAwNDk5ZDM1ZTIwYjBiNjBiLjFhMTE3MzMyNzFmMjBlZjMuMTQ4NjBkYjIzZTIwMGRhZS4zZmMzMmZmZTFhMDg3MGU4CiAgICAgNjNlZGNhMzliM2M0OTYxMQogCi1WUEVYVFJXXzEyOF8weDEocmVnKQorVk1QU0FEQldfMTI4XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDBkOTk0ZDE2ZTMwNTFmNzkuYTAyYWU4MTQ4ODA3NmQwNy45NjkyNjM1MWEyMWYzZWE2LjY1MmRlN2FmNTI4ZDQ5YTIKICAgICA5OTE1YjIwMDQ1NTg0OGNjLmI3ZTY5MWFjMmJmYzY0NzQuMDVmYzc3ODZmOGQ4MmZhZS4wM2RhNTY1OTU0ZDFhOTMxCkBAIC00MTE4MSwxMiArNDExODEsMTIgQEAKICAgICBjN2E4MTdhYTExNjI2OWU2LmM2MTM5MDMzOTNmMjA1NGYuMzBiYzAwZTc4MTFiNDg3MC45Njc2ZTg2MTkwMTNjMGNlCiAgICAgNDJmYzAyOTcwMjI5ZjAzNQogICBhZnRlcgotICAgIDBkOTk0ZDE2ZTMwNTFmNzkuYTAyYWU4MTQ4ODA3NmQwNy45NjkyNjM1MWEyMWYzZWE2LjY1MmRlN2FmNTI4ZDQ5YTIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDI4NzAwNjUwMjYyMDBkMy4wMWJjMDBlNTAxNjAwMTgwCiAgICAgOTkxNWIyMDA0NTU4NDhjYy5iN2U2OTFhYzJiZmM2NDc0LjA1ZmM3Nzg2ZjhkODJmYWUuMDNkYTU2NTk1NGQxYTkzMQogICAgIDYzYWJmNzYyNzY0ODRjYjcuMjU5YjRhMTMyNTljNTk3ZC5jNTljYWQzZjBlYTgxZmI4LmNhNTlkODliNWZmYWU3ODYKICAgICBjN2E4MTdhYTExNjI2OWU2LmM2MTM5MDMzOTNmMjA1NGYuMzBiYzAwZTc4MTFiNDg3MC45Njc2ZTg2MTkwMTNjMGNlCi0gICAgMDAwMDAwMDAwMDAwNTI4ZAotVlBFWFRSV18xMjhfMHgxKG1lbSkKKyAgICA0MmZjMDI5NzAyMjlmMDM1CitWTVBTQURCV18xMjhfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgYWNiOGEzMjlkMjQ3MzJlNi4yMTU3MGU0M2IzMzBkOTA1Ljc2MWJkZWZhOTEwYTI3MTUuYTRhODZjZWFlY2JlZTY4MQogICAgIGFmNzc0NTAzMWI3OTQzMGUuY2QwNmQ5OTlmNzQxZDliZi4xMTdmYjA1MjNhZjE3OWZjLjdiYWVlZGI0ZWIxYzM3OTcKQEAgLTQxMTk0LDEzICs0MTE5NCwxMyBAQAogICAgIGYwMjk4MTQwOGE0YmMyNzEuOGI5MGQ3MmNkNzU1NzdiNS43NzhhZDE2YWZlNTlhMGRjLmM2MzQyMDRkMTczOWRkODYKICAgICBmMjRjYzlmNDdjMTFhYWI1CiAgIGFmdGVyCi0gICAgYWNiOGEzMjlkMjQ3MzJlNi4yMTU3MGU0M2IzMzBkOTA1Ljc2MWJkZWZhOTEwYTI3MTUuYTRhODZjZWFlY2JlMWJjMQorICAgIGFjYjhhMzI5ZDI0NzMyZTYuMjE1NzBlNDNiMzMwZDkwNS43NjFiZGVmYTkxMGEyNzE1LmE0YTg2Y2VhZWNiZWU2ODEKICAgICBhZjc3NDUwMzFiNzk0MzBlLmNkMDZkOTk5Zjc0MWQ5YmYuMTE3ZmIwNTIzYWYxNzlmYy43YmFlZWRiNGViMWMzNzk3Ci0gICAgMjcwMzY2MTFmYWNjZGZkOC4yN2ZmNzIxODdhMWVhNGMwLjczMGE4MjI5YWFiMmI4MzAuMTMxOTgwYjExYmMxNzU2MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMjBhMDFmNzAyM2IwMjFmLjAyNjMwMWQxMDEzMTAwZmUKICAgICBmMDI5ODE0MDhhNGJjMjcxLjhiOTBkNzJjZDc1NTc3YjUuNzc4YWQxNmFmZTU5YTBkYy5jNjM0MjA0ZDE3MzlkZDg2CiAgICAgZjI0Y2M5ZjQ3YzExYWFiNQogCi1WUEVYVFJXXzEyOF8weDEocmVnKQorVk1QU0FEQldfMTI4XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIGYxYWQ3NzEzZTZkNTFhOWEuZTZiNDEyN2FlODAyYTcwNS41NTAzMDQ0MmFiNzE4ZTRhLmZiYzkxNzAxNTFmM2VjMmQKICAgICAyMGEzMjYxNGVmMGY2N2UxLmU0NzI5NmFkMmZmZTRiYmYuZTFhNWYzYzQ5MWZlMjUyYS5kYTk0ZDJkYWMwOGI1OTRlCkBAIC00MTIwOCwxMiArNDEyMDgsMTIgQEAKICAgICA3ZjdlNzk3MDU1MWI4YTQzLjZkYjM2NGFhZTlmM2JmNTcuYWZhNTBiYzAwNDlkYzE3ZS4xOGZlOTUwMjYwZTY4NmIzCiAgICAgMzAzNTk0MjljYWMxYmQ0ZQogICBhZnRlcgotICAgIGYxYWQ3NzEzZTZkNTFhOWEuZTZiNDEyN2FlODAyYTcwNS41NTAzMDQ0MmFiNzE4ZTRhLmZiYzkxNzAxNTFmM2VjMmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDI2MjAxNTQwMTQzMDFmMy4wMWQ5MDFkMDAxNTcwMTA3CiAgICAgMjBhMzI2MTRlZjBmNjdlMS5lNDcyOTZhZDJmZmU0YmJmLmUxYTVmM2M0OTFmZTI1MmEuZGE5NGQyZGFjMDhiNTk0ZQogICAgIGRjN2FkMzY1MzY0ZGNlMzUuYzgyZDg4YzM3YjRhNjljYi44YmMyYTEyMDI1ODk3NzAyLmYwYjc3ZGUxNjcyZGEzNmMKICAgICA3ZjdlNzk3MDU1MWI4YTQzLjZkYjM2NGFhZTlmM2JmNTcuYWZhNTBiYzAwNDlkYzE3ZS4xOGZlOTUwMjYwZTY4NmIzCi0gICAgMDAwMDAwMDAwMDAwNTFmMwotVlBFWFRSV18xMjhfMHgxKG1lbSkKKyAgICAzMDM1OTQyOWNhYzFiZDRlCitWTVBTQURCV18xMjhfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgMTMyN2Y4NDNiZWNhMDU2OS42NmZhMTRhM2U4MDNkOGI2LmFlY2VhNjRkOTUwMzA3OGQuYTg5YzJjMTJjYWM3M2Y0OQogICAgIDljYTIzYzNhNWEwZTE5MzIuZWQzYmEwNjk4YjkzZjQzYi42OTRiY2E5ODlhODhmZTk5LmQ0ZjEwMDgxMTI5MjJkMTAKQEAgLTQxMjIxLDEzICs0MTIyMSwxMyBAQAogICAgIDE0NWU1NTczZjk3NTk5NzguNGMzYzdkNWU3NGQ5ODUyYS5iOTlhYWFkNjIwMWZlOGU2LjMxZTliMzY1OTkzYjQ3NDAKICAgICAxYjIyODhiNDEwMzJlYzAyCiAgIGFmdGVyCi0gICAgMTMyN2Y4NDNiZWNhMDU2OS42NmZhMTRhM2U4MDNkOGI2LmFlY2VhNjRkOTUwMzA3OGQuYTg5YzJjMTJjYWM3Nzg4YQorICAgIDEzMjdmODQzYmVjYTA1NjkuNjZmYTE0YTNlODAzZDhiNi5hZWNlYTY0ZDk1MDMwNzhkLmE4OWMyYzEyY2FjNzNmNDkKICAgICA5Y2EyM2MzYTVhMGUxOTMyLmVkM2JhMDY5OGI5M2Y0M2IuNjk0YmNhOTg5YTg4ZmU5OS5kNGYxMDA4MTEyOTIyZDEwCi0gICAgYTk3MGRjZmNiYTk4YjdkMy43MThkMWEyZWRjNTcxYTdlLjc4ZjU0ZDc3MTQ4ZTVmYTguOGVmMjg0Nzk3ODhhYzY3ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWUxMDIzMDAyNGMwMTQwLjAxNTQwMTIzMDEwZTAxYjUKICAgICAxNDVlNTU3M2Y5NzU5OTc4LjRjM2M3ZDVlNzRkOTg1MmEuYjk5YWFhZDYyMDFmZThlNi4zMWU5YjM2NTk5M2I0NzQwCiAgICAgMWIyMjg4YjQxMDMyZWMwMgogCi1WUEVYVFJXXzEyOF8weDEocmVnKQorVk1QU0FEQldfMTI4XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIGE3ZWIwMmNmN2FmYmYwNmYuYmIzODIxOGQzNGIwN2M0ZS5kYjk0YzU2NWYxYTg3MmVjLjA2MDU1ZGExZDk0YTUzN2UKICAgICAzMDhmMWEyMzczMjA5MDMzLjc4YzliZTM1ODY1NTFiODEuN2FlMWVlYWZlZjRkMWQ2Zi4zZDAxZTJjNDVjMTg1YzlkCkBAIC00MTIzNSwxMiArNDEyMzUsMTIgQEAKICAgICBhZDk2MTgyNzdmYjM5NDc0LmE4NDU1OWRmZTAwZTgxYWMuNTg4OWQ0YmRkYjRlOWM2Yi5kNWRmNTNjMzJlZDIzYzFmCiAgICAgZWU1OTM3NzdiNWQ1OGFkOQogICBhZnRlcgotICAgIGE3ZWIwMmNmN2FmYmYwNmYuYmIzODIxOGQzNGIwN2M0ZS5kYjk0YzU2NWYxYTg3MmVjLjA2MDU1ZGExZDk0YTUzN2UKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBmMjAxMTAwMWMxMDEwZS4wMDliMDFmNDAxNmUwMTMzCiAgICAgMzA4ZjFhMjM3MzIwOTAzMy43OGM5YmUzNTg2NTUxYjgxLjdhZTFlZWFmZWY0ZDFkNmYuM2QwMWUyYzQ1YzE4NWM5ZAogICAgIDE0NTljZDFjOTUyZjA4ZmMuMjlkZmE3NTcwYjcwMzQzYy44NTZlZjRhODA5NTZjMTYwLjM4NWJiNjJjYzQ5N2MxNmYKICAgICBhZDk2MTgyNzdmYjM5NDc0LmE4NDU1OWRmZTAwZTgxYWMuNTg4OWQ0YmRkYjRlOWM2Yi5kNWRmNTNjMzJlZDIzYzFmCi0gICAgMDAwMDAwMDAwMDAwZDk0YQotVlBFWFRSV18xMjhfMHgxKG1lbSkKKyAgICBlZTU5Mzc3N2I1ZDU4YWQ5CitWTVBTQURCV18xMjhfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgNjA5NWRkMzM3NmFkNjZjYi41OTkzZjZhZWNhMzk2ZjQ3LmQyYzY0ZWI5MjEzYWJmZmMuNGY3Yzg5NTgwMmMxZTgzYgogICAgIDA4NWVjMmUyOGM2NThlMWUuNzI5YTYzMWYxNDRjZDYyMi44NDJmMDRkMWU5MDFhOTU5LmM2OTQwZmU3MWEzY2UxN2QKQEAgLTQxMjQ4LDEzICs0MTI0OCwxMyBAQAogICAgIDY1Y2IzNWNlMjlhN2FkOWUuNWZmOGRiNmIxNDRhMzc5Zi5lYmU5YTA2YzdmOGQ3NGU5LmE0NjM3ZjhkOGE3OGNlMDUKICAgICBjM2IxNjE3ZDFiNTAzOGE0CiAgIGFmdGVyCi0gICAgNjA5NWRkMzM3NmFkNjZjYi41OTkzZjZhZWNhMzk2ZjQ3LmQyYzY0ZWI5MjEzYWJmZmMuNGY3Yzg5NTgwMmMxYmU0YQorICAgIDYwOTVkZDMzNzZhZDY2Y2IuNTk5M2Y2YWVjYTM5NmY0Ny5kMmM2NGViOTIxM2FiZmZjLjRmN2M4OTU4MDJjMWU4M2IKICAgICAwODVlYzJlMjhjNjU4ZTFlLjcyOWE2MzFmMTQ0Y2Q2MjIuODQyZjA0ZDFlOTAxYTk1OS5jNjk0MGZlNzFhM2NlMTdkCi0gICAgYzA4MjYwNzIxNDBhYmMwMS41NmY3NWNlNWY5NzgwNWIxLjk4NGNmNjE0NTQ2ZGZjZWYuMTkxZDYyZDRiZTRhYzVkYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTJiMDExNjAxZGMwMWM0LjAxYTgwMjI0MDE4NDAwYWEKICAgICA2NWNiMzVjZTI5YTdhZDllLjVmZjhkYjZiMTQ0YTM3OWYuZWJlOWEwNmM3ZjhkNzRlOS5hNDYzN2Y4ZDhhNzhjZTA1CiAgICAgYzNiMTYxN2QxYjUwMzhhNAogCi1WUEVYVFJXXzEyOF8weDIocmVnKQorVk1QU0FEQldfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGQxNTUwNDEwMGM2MTQxNjQuZDQwNmJjZTJlODQ4MWMyMi5lYWU4ZGUxZjAyNGRhOTk5LjVhZDE3ZmM2ODU2YWNkNzQKICAgICAyYzk5NjRiMmZhMzQyM2YyLmU3ZmY3MTlhNmNmOWM2YjguNTQxMjYwNmM1ZTBkOTc0YS5iZmQyMGQwZjgzMTJjMmJjCkBAIC00MTI2MiwxMiArNDEyNjIsMTIgQEAKICAgICAzNjM0NGNkMzNiNTU2NTI2LjZjNWE1N2E3MzRiZWJiY2MuMzA0N2QyODJkMWY2ZDY4NC5kZTRhMmIxYmQ1ZjE3MzMwCiAgICAgNTA1YWIyYjU2MTQwYTZiNQogICBhZnRlcgotICAgIGQxNTUwNDEwMGM2MTQxNjQuZDQwNmJjZTJlODQ4MWMyMi5lYWU4ZGUxZjAyNGRhOTk5LjVhZDE3ZmM2ODU2YWNkNzQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEyYjAxNGUwMWQ2MDE0Ny4wMTY1MDI2ZjAxNzgwMThiCiAgICAgMmM5OTY0YjJmYTM0MjNmMi5lN2ZmNzE5YTZjZjljNmI4LjU0MTI2MDZjNWUwZDk3NGEuYmZkMjBkMGY4MzEyYzJiYwogICAgIDJmY2E3ZGNmODA1NzFiZjkuN2I4MmQxZTNkMWM3Njc4ZC5mN2MzNWViZWM0MTczZDVmLmY3YjZjODMyOTQ5MDEwZWMKICAgICAzNjM0NGNkMzNiNTU2NTI2LjZjNWE1N2E3MzRiZWJiY2MuMzA0N2QyODJkMWY2ZDY4NC5kZTRhMmIxYmQ1ZjE3MzMwCi0gICAgMDAwMDAwMDAwMDAwN2ZjNgotVlBFWFRSV18xMjhfMHgyKG1lbSkKKyAgICA1MDVhYjJiNTYxNDBhNmI1CitWTVBTQURCV18xMjhfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgMjliMmRhZWU1NTg5NjZhNy45ZDIzY2MyYmM2YmIzYzI0Ljk2NTU3ZWQzYjFlODdkYTIuNWJlYWJhMjIyMTM2OWY2NAogICAgIDQ1MWUxZWIxY2NkODZmMzIuYmZlMmY5NDFiZTEzZGRhMS5kNTNkYzU1NDYyNTM2YTNiLmQ1ZjgxMTBiNGY2NGQ0YWMKQEAgLTQxMjc1LDEzICs0MTI3NSwxMyBAQAogICAgIGI2NjFlYTg2YjViYjRiYzAuYTgwNDRhNWI2MmNmNmRjMi4wMjA3OWIwMWQ3MWFiNDY0LjIxODRmYzY5YjZiNzcwMjMKICAgICBhYzlhODliNjI3ZjU1MGE5CiAgIGFmdGVyCi0gICAgMjliMmRhZWU1NTg5NjZhNy45ZDIzY2MyYmM2YmIzYzI0Ljk2NTU3ZWQzYjFlODdkYTIuNWJlYWJhMjIyMTM2ZDNhYQorICAgIDI5YjJkYWVlNTU4OTY2YTcuOWQyM2NjMmJjNmJiM2MyNC45NjU1N2VkM2IxZTg3ZGEyLjViZWFiYTIyMjEzNjlmNjQKICAgICA0NTFlMWViMWNjZDg2ZjMyLmJmZTJmOTQxYmUxM2RkYTEuZDUzZGM1NTQ2MjUzNmEzYi5kNWY4MTEwYjRmNjRkNGFjCi0gICAgODA2YWZhZWJlMzNhN2Q4MS5mYWJmY2Y4M2JlZWM4NDQ2LjA1ZGZhNTE0NjYwYTNlYzIuZjhiY2QzYWFmNzBiYjAwOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDlkMDBjMjAyMTcwMjE3LjAxOWQwMTZkMDBhYzAwZDMKICAgICBiNjYxZWE4NmI1YmI0YmMwLmE4MDQ0YTViNjJjZjZkYzIuMDIwNzliMDFkNzFhYjQ2NC4yMTg0ZmM2OWI2Yjc3MDIzCiAgICAgYWM5YTg5YjYyN2Y1NTBhOQogCi1WUEVYVFJXXzEyOF8weDIocmVnKQorVk1QU0FEQldfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIGY1NGI3NWZjZTc1MDhjNDcuYzNkMDZhNmY1ZTY1OTYxYy4yN2ZlNjczNzQ4NGFkM2JmLmE4ODEyNDA2ZDE4ZThhNGMKICAgICA1OGUzYmNhNjkxNTU1ZmE5LjgzODNmNzkzZmI0NjFhYzEuZDJmOTIxODIwOWU4ZjNlOS5kMzE5YmIwZjcxNzI3YWE3CkBAIC00MTI4OSwxMiArNDEyODksMTIgQEAKICAgICBkY2Y3NGJkYjE1ODliZDY4LjhjZTUyNTM4ODBkYmJjOTUuMWIyMjVjMTU5MmJmNTA3Ny4yOGQxMDRkZDExYmM5YTY1CiAgICAgMGE4YmFlN2E0OTM5NDIxZgogICBhZnRlcgotICAgIGY1NGI3NWZjZTc1MDhjNDcuYzNkMDZhNmY1ZTY1OTYxYy4yN2ZlNjczNzQ4NGFkM2JmLmE4ODEyNDA2ZDE4ZThhNGMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDIzNjAyODUwMWU1MDFkNy4wMTJiMDEyMjAwNmIwMGE1CiAgICAgNThlM2JjYTY5MTU1NWZhOS44MzgzZjc5M2ZiNDYxYWMxLmQyZjkyMTgyMDllOGYzZTkuZDMxOWJiMGY3MTcyN2FhNwogICAgIDMxYWU1YTIyYzI4ZTA2N2IuZDI0NjBjZGNhODY5OTNkYi4wNDQxNzRhODQzMzYwOWVkLjVmOWFkYzA4ZDJkMzQwYTEKICAgICBkY2Y3NGJkYjE1ODliZDY4LjhjZTUyNTM4ODBkYmJjOTUuMWIyMjVjMTU5MmJmNTA3Ny4yOGQxMDRkZDExYmM5YTY1Ci0gICAgMDAwMDAwMDAwMDAwMjQwNgotVlBFWFRSV18xMjhfMHgyKG1lbSkKKyAgICAwYThiYWU3YTQ5Mzk0MjFmCitWTVBTQURCV18xMjhfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgZTE5MjU1Y2I5NzU3ZjRmZC5iNTBjOGMzZTI3ZDJjMDFjLjhkMmNiZTkxOWZhNzUyMWIuNzFlN2Q2MzU5MDBmMDUzMgogICAgIDg4YjM3OGJkMTYyMTZlMjkuMTgzNzE4YjU5M2Y0NGE0NC5iMWU2NTNkNTIyZDkxMTlhLjY0ZGVkZDc0ZGNiMzY0Y2IKQEAgLTQxMzAyLDEzICs0MTMwMiwxMyBAQAogICAgIGJiNzIxYTMwMThlYWE1MWMuZWMwMjAxOTJlYmYzZTY5Zi5kMWU3NjNjYmMyYTFmODMyLjhjOGQ4MmZmYzgyNDBmNDYKICAgICA3YmRlMTkyNGExMGFkMzdmCiAgIGFmdGVyCi0gICAgZTE5MjU1Y2I5NzU3ZjRmZC5iNTBjOGMzZTI3ZDJjMDFjLjhkMmNiZTkxOWZhNzUyMWIuNzFlN2Q2MzU5MDBmNmQzZQorICAgIGUxOTI1NWNiOTc1N2Y0ZmQuYjUwYzhjM2UyN2QyYzAxYy44ZDJjYmU5MTlmYTc1MjFiLjcxZTdkNjM1OTAwZjA1MzIKICAgICA4OGIzNzhiZDE2MjE2ZTI5LjE4MzcxOGI1OTNmNDRhNDQuYjFlNjUzZDUyMmQ5MTE5YS42NGRlZGQ3NGRjYjM2NGNiCi0gICAgZGRiOTkwM2FlMmEzNmFjZi42MWM1ZWJhZGY2N2I5ODhjLmQzZTA2MWVmMjU3ZWI0M2UuNGU1MTZkM2UxMDM2YTllZAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGI4MDE5MTAwYjEwMTE3LjAxOTcwMGQ4MDEwMTAxNmEKICAgICBiYjcyMWEzMDE4ZWFhNTFjLmVjMDIwMTkyZWJmM2U2OWYuZDFlNzYzY2JjMmExZjgzMi44YzhkODJmZmM4MjQwZjQ2CiAgICAgN2JkZTE5MjRhMTBhZDM3ZgogCi1WUEVYVFJXXzEyOF8weDIocmVnKQorVk1QU0FEQldfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDc1OTAyYzE3MzY3MzMxNDYuZmRhODkzODlkNDAxZGIzYy4xNTNhNTdkMTBlZTk2ZjJhLjg2YzVkNTU1MTg0ZTk5YTMKICAgICBkN2VlYjk0NjI0ZWI2NDQ3LjgxMjk3NjMzMzFmNGM3NWEuMzdiOWU4ZDVmY2U4NzBkOS5jZDQ2MzQ3YTQwOTI1M2JkCkBAIC00MTMxNiwxMiArNDEzMTYsMTIgQEAKICAgICA0NGUyMmYwNTc5M2EzY2E2LmJiMzc2YjI3M2ZhMGI0NDMuZGJiYmFiZGJhODMzYzk1MS44NjY2YTU0MDdjMGQwMDlhCiAgICAgYWU5YmIwYmJjODViNmJiNQogICBhZnRlcgotICAgIDc1OTAyYzE3MzY3MzMxNDYuZmRhODkzODlkNDAxZGIzYy4xNTNhNTdkMTBlZTk2ZjJhLjg2YzVkNTU1MTg0ZTk5YTMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE3ZjAwYTkwMGMxMDE4ZS4wMTZkMDFjNTAxMjgwMWI5CiAgICAgZDdlZWI5NDYyNGViNjQ0Ny44MTI5NzYzMzMxZjRjNzVhLjM3YjllOGQ1ZmNlODcwZDkuY2Q0NjM0N2E0MDkyNTNiZAogICAgIGZkNDZiYjFjMDZmZmE5MmUuMjJiZjNmMTk0YmQwMjZhMy5iMGNhYjAwOTUxN2QyNTU3Ljg0MzhmYTI0NTk3OGUxYWIKICAgICA0NGUyMmYwNTc5M2EzY2E2LmJiMzc2YjI3M2ZhMGI0NDMuZGJiYmFiZGJhODMzYzk1MS44NjY2YTU0MDdjMGQwMDlhCi0gICAgMDAwMDAwMDAwMDAwZDU1NQotVlBFWFRSV18xMjhfMHgyKG1lbSkKKyAgICBhZTliYjBiYmM4NWI2YmI1CitWTVBTQURCV18xMjhfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgZGFhNDk3N2Y1NjcwZTAyOS4wNjBmMGY2YzE4Mjg1OTViLjJhNWM3NDQ5Mjk3MDJkNjUuMTRkNmQ1YjY5ZDk2OWE3MgogICAgIGU0NGRkNzdhNDQ1ODE5MjEuYTAxOTU5YmY4MDU2M2JmYi40OWZjZDg2YjI0NGQ0YzM2LmI2NjgyYjA2Y2QzMmQyNjcKQEAgLTQxMzI5LDEzICs0MTMyOSwxMyBAQAogICAgIDA2YWY0ZWMxYWZjZWM5NTAuY2NmNDE4ZDcxODlmNDFhNi4wYmQ5OWU2MGJlNWM2ZjkzLmE5MjA0OGI1NGM0NzY5N2MKICAgICBiMmRmMDdlY2QzZDg0MGYzCiAgIGFmdGVyCi0gICAgZGFhNDk3N2Y1NjcwZTAyOS4wNjBmMGY2YzE4Mjg1OTViLjJhNWM3NDQ5Mjk3MDJkNjUuMTRkNmQ1YjY5ZDk2YTgzNworICAgIGRhYTQ5NzdmNTY3MGUwMjkuMDYwZjBmNmMxODI4NTk1Yi4yYTVjNzQ0OTI5NzAyZDY1LjE0ZDZkNWI2OWQ5NjlhNzIKICAgICBlNDRkZDc3YTQ0NTgxOTIxLmEwMTk1OWJmODA1NjNiZmIuNDlmY2Q4NmIyNDRkNGMzNi5iNjY4MmIwNmNkMzJkMjY3Ci0gICAgYWE2MmVhOTdhZTFlZDNjYS42ZTRjMDg2YTRjNGYxZjJmLmY2ZTIxMjc5NGM0MmNlZTEuMWZiZGE4MzdkMzk0YWRkYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGRlMDBhOTAwOTAwMTI0LjAxNjEwMGM3MDE2MDAxNDkKICAgICAwNmFmNGVjMWFmY2VjOTUwLmNjZjQxOGQ3MTg5ZjQxYTYuMGJkOTllNjBiZTVjNmY5My5hOTIwNDhiNTRjNDc2OTdjCiAgICAgYjJkZjA3ZWNkM2Q4NDBmMwogCi1WUEVYVFJXXzEyOF8weDMocmVnKQorVk1QU0FEQldfMTI4XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDk1NDRlMjQ5MDVkMjZmZWYuZDYwMDdlZTY2NDc0YjlkZS4xNjVjODY3MzgxZDNkZDBhLjY2YWVmOTBhOTVhNWVhNzcKICAgICBhZDlkZDQzNjdkYzEzMTFhLmY0MjBmN2YxZTgxZDVkYTEuYThkMjRjYWEyMzc2MmUwNy5lMTJkOWU2NGVlMmNmY2JhCkBAIC00MTM0MywxMiArNDEzNDMsMTIgQEAKICAgICBmMDU2ZWQ3NGIxYjA2MmFlLjhlMDBiMDZhY2VhNmIzNzUuMTQxM2Q1OWI3ZjNhZTE3Zi5hYjU5YjZkYTk0MWRkNTBjCiAgICAgYjE5ZDIxY2MxOWEwMTM3MwogICBhZnRlcgotICAgIDk1NDRlMjQ5MDVkMjZmZWYuZDYwMDdlZTY2NDc0YjlkZS4xNjVjODY3MzgxZDNkZDBhLjY2YWVmOTBhOTVhNWVhNzcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE2ZTAxMzgwMTgwMDFmOS4wMWVkMDI4NDAxNDAwMTMxCiAgICAgYWQ5ZGQ0MzY3ZGMxMzExYS5mNDIwZjdmMWU4MWQ1ZGExLmE4ZDI0Y2FhMjM3NjJlMDcuZTEyZDllNjRlZTJjZmNiYQogICAgIDU4MzRkOTIxZDgzMmM0MjAuM2RkYzMzY2Y1N2Q0NzJjNS5kZWEwNjhlOTk5MTU3MTRiLjVhMjIwOTViZTRmYTYxODgKICAgICBmMDU2ZWQ3NGIxYjA2MmFlLjhlMDBiMDZhY2VhNmIzNzUuMTQxM2Q1OWI3ZjNhZTE3Zi5hYjU5YjZkYTk0MWRkNTBjCi0gICAgMDAwMDAwMDAwMDAwNjZhZQotVlBFWFRSV18xMjhfMHgzKG1lbSkKKyAgICBiMTlkMjFjYzE5YTAxMzczCitWTVBTQURCV18xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgNDliY2M3MWY5MDkwZDhlOS5kMjRmMGM5ZGE1Yzc0NzcwLmMxNThlOWFmNjg5ZGRkZGQuYTY3NzhmMmI3Mjc0YmM1MgogICAgIDRkODAyMmJlMTRmN2UwOTkuNWI2YTMzMDc0ZjA0YjExMS5iM2IwNWE4YjQyYzhhYzJiLmYwMTc5MzA3MGQ0YzNjNmUKQEAgLTQxMzU2LDEzICs0MTM1NiwxMyBAQAogICAgIDBjMmFlZDkwYjQ2MGE4NTkuY2QzYTg2NGUzNzFkZmZhMi40NThmZDViNDI0ZTMyODIzLjFjM2Y2NjUwYWUwYjFkMzIKICAgICBiNjVmMmQ5NWVhMDlmNjMzCiAgIGFmdGVyCi0gICAgNDliY2M3MWY5MDkwZDhlOS5kMjRmMGM5ZGE1Yzc0NzcwLmMxNThlOWFmNjg5ZGRkZGQuYTY3NzhmMmI3Mjc0NGU0MQorICAgIDQ5YmNjNzFmOTA5MGQ4ZTkuZDI0ZjBjOWRhNWM3NDc3MC5jMTU4ZTlhZjY4OWRkZGRkLmE2Nzc4ZjJiNzI3NGJjNTIKICAgICA0ZDgwMjJiZTE0ZjdlMDk5LjViNmEzMzA3NGYwNGIxMTEuYjNiMDVhOGI0MmM4YWMyYi5mMDE3OTMwNzBkNGMzYzZlCi0gICAgOWFiNmIxOTVjMWU0ZTZhZi5lNWY1NWQxZTRjZjJkYTNlLjQxZDQ3ZmU4NzgzMGRjODguNGU0MWRjOWFlZDUwOWU3ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDk5MDExZjAwYjEwMGJiLjAxYmQwMGYyMDFhOTAxNGYKICAgICAwYzJhZWQ5MGI0NjBhODU5LmNkM2E4NjRlMzcxZGZmYTIuNDU4ZmQ1YjQyNGUzMjgyMy4xYzNmNjY1MGFlMGIxZDMyCiAgICAgYjY1ZjJkOTVlYTA5ZjYzMwogCi1WUEVYVFJXXzEyOF8weDMocmVnKQorVk1QU0FEQldfMTI4XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDc3ZWIyZGQ1NDBkNzY1MmQuN2ZhODUzOWMwOTc5ZTBjMC43MDg2YWEwM2FjMTI1YmVhLjljYWZkN2Q5NjVlYzRkMjYKICAgICBiZDMwNjM3YzQ5MDBhNmNkLmQwZmI2MGEzZGIzYTRhMTMuMjgyNWM2YTk0ODVjMmNjMi4yMmZlMDE0NTU0NTgwN2JkCkBAIC00MTM3MCwxMiArNDEzNzAsMTIgQEAKICAgICA0NTE0NWViMGVhOTU4ZGFlLjc3NTQ1YzU2NjdlNmE4MjcuNGE4Y2QyNzk2NDIwMThkMC4yYjVjYmU5ZmIyODYyODVhCiAgICAgNjYwMzQ5NjU1ODYxMDhiOAogICBhZnRlcgotICAgIDc3ZWIyZGQ1NDBkNzY1MmQuN2ZhODUzOWMwOTc5ZTBjMC43MDg2YWEwM2FjMTI1YmVhLjljYWZkN2Q5NjVlYzRkMjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE3MzAxYWEwMTEwMDEyOS4wMTBmMDFhNTAxYzQwMTFkCiAgICAgYmQzMDYzN2M0OTAwYTZjZC5kMGZiNjBhM2RiM2E0YTEzLjI4MjVjNmE5NDg1YzJjYzIuMjJmZTAxNDU1NDU4MDdiZAogICAgIGUzNzljYWY2YTQxMWY0YmYuZDlmMThmOTI0NmIwYTQ3Yy41MjYzZDRhY2E3ODdhY2Q1LmIzNDljZmUzMTAzMjExMTYKICAgICA0NTE0NWViMGVhOTU4ZGFlLjc3NTQ1YzU2NjdlNmE4MjcuNGE4Y2QyNzk2NDIwMThkMC4yYjVjYmU5ZmIyODYyODVhCi0gICAgMDAwMDAwMDAwMDAwOWNhZgotVlBFWFRSV18xMjhfMHgzKG1lbSkKKyAgICA2NjAzNDk2NTU4NjEwOGI4CitWTVBTQURCV18xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgNDAwOWVjMjExZWNkNmQ1YS4zZTRjMWIxNGI5MThhYTQ3Ljg2ZjE0M2RhNTllODEyNDIuNmRlYmJiN2ExYmIyYWI1ZQogICAgIDk1M2MyM2JmMWZkOTEyNmMuMmM2Y2ZkOTBhZDI3OGEzNS5lMjk0YzEwOTM5YzNhMGY2LjE1Y2U4YzFkNjljOWEyMmQKQEAgLTQxMzgzLDEzICs0MTM4MywxMyBAQAogICAgIDIwNTQzZTUyNDRmYTBmOTMuNTM5NzIyN2M3MjE2N2VjMy5mMTFjNmYxZDMxMzExM2UwLjY3NGJkMmY1MzhiOGFjMzcKICAgICBjOTdlNDAwM2YxYTczNmNjCiAgIGFmdGVyCi0gICAgNDAwOWVjMjExZWNkNmQ1YS4zZTRjMWIxNGI5MThhYTQ3Ljg2ZjE0M2RhNTllODEyNDIuNmRlYmJiN2ExYmIyOWY3ZgorICAgIDQwMDllYzIxMWVjZDZkNWEuM2U0YzFiMTRiOTE4YWE0Ny44NmYxNDNkYTU5ZTgxMjQyLjZkZWJiYjdhMWJiMmFiNWUKICAgICA5NTNjMjNiZjFmZDkxMjZjLjJjNmNmZDkwYWQyNzhhMzUuZTI5NGMxMDkzOWMzYTBmNi4xNWNlOGMxZDY5YzlhMjJkCi0gICAgNDE2NjZhMmM3ODhlYjQxYy42OWMxMDE4ZjYxNGQ2NzI1LjY3MDk1MWQxMjM4MTBjNzIuOWY3ZjNmY2NlOWYyMzllNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTRmMDIyNjAwZTUwMGQyLjAxNGUwMWNmMDFjOTAwODIKICAgICAyMDU0M2U1MjQ0ZmEwZjkzLjUzOTcyMjdjNzIxNjdlYzMuZjExYzZmMWQzMTMxMTNlMC42NzRiZDJmNTM4YjhhYzM3CiAgICAgYzk3ZTQwMDNmMWE3MzZjYwogCi1WUEVYVFJXXzEyOF8weDMocmVnKQorVk1QU0FEQldfMTI4XzB4NChyZWcpCiAgIGJlZm9yZQogICAgIDIxNjQ4NjYyYjE0YzE0NTAuMGVkMjFhMWY5ZjI5ZGYwMC40NDNhNWNjNTdiMGUwYmJhLjVjOTg5N2Q5ODJkYzcxNmMKICAgICBjYjQ5OWU3ZTEzMzI4MjcwLmU3YWM3YTdkYTYyNWRmOGQuOWFmNmFjZDUxOGMyNDliNi44MzRhNDVmMTJmOTBlMTQzCkBAIC00MTM5NywxMiArNDEzOTcsMTIgQEAKICAgICA4NTNlMzk5ZDJmZjNmZDMzLmNhYTNiNmExMjZiYTYyYjguZTFlODdhZmI4MDhjY2I3MC43YTgxMjVlNTEzNDFlYTgyCiAgICAgMDE5ZDRlOWE4MTU2ZmI0MAogICBhZnRlcgotICAgIDIxNjQ4NjYyYjE0YzE0NTAuMGVkMjFhMWY5ZjI5ZGYwMC40NDNhNWNjNTdiMGUwYmJhLjVjOTg5N2Q5ODJkYzcxNmMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDIyMDAxMGEwMWE5MDBmNi4wMTFmMDExNTAwZmYwMGMwCiAgICAgY2I0OTllN2UxMzMyODI3MC5lN2FjN2E3ZGE2MjVkZjhkLjlhZjZhY2Q1MThjMjQ5YjYuODM0YTQ1ZjEyZjkwZTE0MwogICAgIDIzNzg4NmMzYjRlNmJiZDguODdhZGRhNWE3NGZjY2M2Ni5hZjE2MGMxOGU2YmU3NjY1LjQ0ZmZmNjUxNTc1OTIwOTEKICAgICA4NTNlMzk5ZDJmZjNmZDMzLmNhYTNiNmExMjZiYTYyYjguZTFlODdhZmI4MDhjY2I3MC43YTgxMjVlNTEzNDFlYTgyCi0gICAgMDAwMDAwMDAwMDAwNWM5OAotVlBFWFRSV18xMjhfMHgzKG1lbSkKKyAgICAwMTlkNGU5YTgxNTZmYjQwCitWTVBTQURCV18xMjhfMHg0KG1lbSkKICAgYmVmb3JlCiAgICAgYjUxZWVkNWFiZGE0MGVmYS40ZGU3YjM3ODIxZTU4MjJlLjhiNTg4YjNlZDg2OTVjYWYuOGFiNmYxZTg4M2JhODc4NgogICAgIDcxZDI3ZjEzZTIzNWUwZGEuZDdiZmYwYzEyNTQ4ODY3NC5hODk5ZDQxZGE1MTc3Nzc3LjA4Y2Q2ZDRjOGJkNGU0NTEKQEAgLTQxNDEwLDEzICs0MTQxMCwxMyBAQAogICAgIDc2ZmY2ODFjNTk1NmIwYmUuYTAyY2E0NDlkNDkzZmY5NC42MmVmYjI1MTAxOWUwMDI3LmVlMDY2NTJhMTdmODc0YjgKICAgICAxMGJmZDk3Y2QzMWIxZmFjCiAgIGFmdGVyCi0gICAgYjUxZWVkNWFiZGE0MGVmYS40ZGU3YjM3ODIxZTU4MjJlLjhiNTg4YjNlZDg2OTVjYWYuOGFiNmYxZTg4M2JhYjU3OQorICAgIGI1MWVlZDVhYmRhNDBlZmEuNGRlN2IzNzgyMWU1ODIyZS44YjU4OGIzZWQ4Njk1Y2FmLjhhYjZmMWU4ODNiYTg3ODYKICAgICA3MWQyN2YxM2UyMzVlMGRhLmQ3YmZmMGMxMjU0ODg2NzQuYTg5OWQ0MWRhNTE3Nzc3Ny4wOGNkNmQ0YzhiZDRlNDUxCi0gICAgMTM4MzdlYWYwZDE3MmMwZC43ZTEyZWRlMmQ3YTk0N2IyLmZjMzIwZDJhYTlkMDZmM2EuYjU3OWViOTQzMjY0MWY3ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGI5MDE3YjAwZmEwMGU0LjAxM2QwMTE1MDExZDAwZTIKICAgICA3NmZmNjgxYzU5NTZiMGJlLmEwMmNhNDQ5ZDQ5M2ZmOTQuNjJlZmIyNTEwMTllMDAyNy5lZTA2NjUyYTE3Zjg3NGI4CiAgICAgMTBiZmQ5N2NkMzFiMWZhYwogCi1WUEVYVFJXXzEyOF8weDQocmVnKQorVk1QU0FEQldfMTI4XzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDc1ZjI0MmY1MDU1YTViMDUuNzUxMGI5NDVlMmZkMjYxYS45ODU4MTM2MWI4OTNlYmM1LmI4OWM0MDdlYzg4ZmU1NjgKICAgICA3YWU5OWQwMDQ2NDA2NTcwLmVlODNlYjE2YzUxODRiNGQuYzJlNDM2OTUxZTM0NDZmMi5kOTA0MzI5ZTFiYWZkYjJhCkBAIC00MTQyNCwxMiArNDE0MjQsMTIgQEAKICAgICBkNDU2MTU4MTZiMzJkMjJiLmJhYmVlNjYwMDdkYjkxZTUuMWI0Nzg0MDZlMTg5M2NlZS5lYjM5MzI2M2QyYTllOWRmCiAgICAgOTQ5ZDM4ZTA3MDliNzkyYQogICBhZnRlcgotICAgIDc1ZjI0MmY1MDU1YTViMDUuNzUxMGI5NDVlMmZkMjYxYS45ODU4MTM2MWI4OTNlYmM1LmI4OWM0MDdlYzg4ZmU1NjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDIxMTAxNGIwMTY3MDFkYy4wMjQ3MDFjOTAwZDcwMTViCiAgICAgN2FlOTlkMDA0NjQwNjU3MC5lZTgzZWIxNmM1MTg0YjRkLmMyZTQzNjk1MWUzNDQ2ZjIuZDkwNDMyOWUxYmFmZGIyYQogICAgIDdiZjFlNDBiMzQ1YTc4OTkuYmIyMzdjN2IxZGIzZGE4Mi43OTFhMDc1M2EyMDI0ZGM2LmEwZjUwNDliMTUwOTlkOTgKICAgICBkNDU2MTU4MTZiMzJkMjJiLmJhYmVlNjYwMDdkYjkxZTUuMWI0Nzg0MDZlMTg5M2NlZS5lYjM5MzI2M2QyYTllOWRmCi0gICAgMDAwMDAwMDAwMDAwZWJjNQotVlBFWFRSV18xMjhfMHg0KG1lbSkKKyAgICA5NDlkMzhlMDcwOWI3OTJhCitWTVBTQURCV18xMjhfMHg1KG1lbSkKICAgYmVmb3JlCiAgICAgNzllZDkzMDAwOGVjMGFhNy5lMTY0MmJjZTg2NTZhZGQzLmM2MWZhOGIxOWY5YjJhYTQuMDNiN2E4MWE3NjU2NGYxNQogICAgIDc0ZjViZWFlYjhhNzU3N2YuZmY2NjIyNWYyMjUyNDUzYy5iYTExM2I1YmZmZmY2MWU5LjhjYjY2ZmZiZmVmNGMyZTkKQEAgLTQxNDM3LDEzICs0MTQzNywxMyBAQAogICAgIDIwNWM3NDY0Y2Y4YzE5ZjYuZDk3YWE0Zjg0YWZmYTAwNC5jZWRiYzg2NThlZTU5ZGI2LmY1OTBkN2Q1NTVkNWI1NDIKICAgICA4ZDAzNmZhNTVjMmZhZjFmCiAgIGFmdGVyCi0gICAgNzllZDkzMDAwOGVjMGFhNy5lMTY0MmJjZTg2NTZhZGQzLmM2MWZhOGIxOWY5YjJhYTQuMDNiN2E4MWE3NjU2ZjRlMAorICAgIDc5ZWQ5MzAwMDhlYzBhYTcuZTE2NDJiY2U4NjU2YWRkMy5jNjFmYThiMTlmOWIyYWE0LjAzYjdhODFhNzY1NjRmMTUKICAgICA3NGY1YmVhZWI4YTc1NzdmLmZmNjYyMjVmMjI1MjQ1M2MuYmExMTNiNWJmZmZmNjFlOS44Y2I2NmZmYmZlZjRjMmU5Ci0gICAgNjM4MDM1ZDY5Y2Q4MWVlMS44OGFhZjc5ZWRhYjFkODEzLjczNjExYzQ4NDYxNGY0ZTAuMTQ4ZmQ1MTYxNGYwZDAxMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWJjMDFkMDAxM2UwMjVhLjAyMDUwMTQ4MDE3NDAxYTQKICAgICAyMDVjNzQ2NGNmOGMxOWY2LmQ5N2FhNGY4NGFmZmEwMDQuY2VkYmM4NjU4ZWU1OWRiNi5mNTkwZDdkNTU1ZDViNTQyCiAgICAgOGQwMzZmYTU1YzJmYWYxZgogCi1WUEVYVFJXXzEyOF8weDQocmVnKQorVk1QU0FEQldfMTI4XzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDM2MzU5YmYzYzY4YmY4NTkuODg1M2Y4NDQ2ZGNlMDVlZC40ZTIzMjdkYTBmYzhkYWJhLmE1NGJiYTlmZjM3ZjE5OTcKICAgICA0ZTcyNTcyYTJlNzRjZDlhLjc4MzIzYzYyOTNhYjlkZjAuNDNmMjdiYWVjNTk5YzJlMi5kNjdkNmVlMTkxZWQyM2FlCkBAIC00MTQ1MSwxMiArNDE0NTEsMTIgQEAKICAgICAzNzNkNmIwMjZhMWUwYmUzLjViZDhmNDA5ZTU2M2M0Y2MuMWMyYzg3ZTE3MTgwOGEzNi5iMTU2MGQyY2ViNzVkNTMwCiAgICAgMTQ5NWYwMGVkZWE4ZjRmMwogICBhZnRlcgotICAgIDM2MzU5YmYzYzY4YmY4NTkuODg1M2Y4NDQ2ZGNlMDVlZC40ZTIzMjdkYTBmYzhkYWJhLmE1NGJiYTlmZjM3ZjE5OTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDFmMjAxOTkwMWUwMDIxNC4wMjI1MDIwOTAxYjUwMWI0CiAgICAgNGU3MjU3MmEyZTc0Y2Q5YS43ODMyM2M2MjkzYWI5ZGYwLjQzZjI3YmFlYzU5OWMyZTIuZDY3ZDZlZTE5MWVkMjNhZQogICAgIDJmMDY5ZGI1MzE3NjZhOGYuY2FjNWJjYWI1YzJlOWUyYy4xMzMwOWRlMjA3ZmQ5MzI3LjNiM2M2MDE3ODYzYjc5MjgKICAgICAzNzNkNmIwMjZhMWUwYmUzLjViZDhmNDA5ZTU2M2M0Y2MuMWMyYzg3ZTE3MTgwOGEzNi5iMTU2MGQyY2ViNzVkNTMwCi0gICAgMDAwMDAwMDAwMDAwZGFiYQotVlBFWFRSV18xMjhfMHg0KG1lbSkKKyAgICAxNDk1ZjAwZWRlYThmNGYzCitWTVBTQURCV18xMjhfMHg1KG1lbSkKICAgYmVmb3JlCiAgICAgNDFjNjg1YTg3YmRmOTE5ZC5jMDYyYmI3Yzc2ZjdlYjQzLjA4MzY2MDZhNGE1NmNiZmQuYjkzMTM3MTdhMGFmZTNiYgogICAgIDEyYjU0OGU3ZGQyNzY5NTkuMjdjMjhiOGZmMDhkNDc1YS5hYmFkN2RiOGE1MTQ2ZWVhLjQ2OGFhOGYwMmYxNWQ5NjEKQEAgLTQxNDY0LDEzICs0MTQ2NCwxMyBAQAogICAgIDEzZmM0OWZmNjExN2JhYjkuMDA2NDk5MzA5ZjIyNjI2MC40NjExYjdkMGIzMWY3YmFiLmEwNmJiZDNiZGZiODkwYzIKICAgICAyNDhiNWE4NTM4MGNjN2Q1CiAgIGFmdGVyCi0gICAgNDFjNjg1YTg3YmRmOTE5ZC5jMDYyYmI3Yzc2ZjdlYjQzLjA4MzY2MDZhNGE1NmNiZmQuYjkzMTM3MTdhMGFmNmFjMAorICAgIDQxYzY4NWE4N2JkZjkxOWQuYzA2MmJiN2M3NmY3ZWI0My4wODM2NjA2YTRhNTZjYmZkLmI5MzEzNzE3YTBhZmUzYmIKICAgICAxMmI1NDhlN2RkMjc2OTU5LjI3YzI4YjhmZjA4ZDQ3NWEuYWJhZDdkYjhhNTE0NmVlYS40NjhhYThmMDJmMTVkOTYxCi0gICAgNjQyZWI2YjUyMDhiMzg1NC5jOWFhZDdhNzc0NmQ1YWQ1LjIxMDdjNmUxMTVhODZhYzAuMWY4NGQ2ZDhiYjNmYWFkNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTY3MDEzNDAwZWYwMTNiLjAxYzQwMTg2MDEyYTAyMTYKICAgICAxM2ZjNDlmZjYxMTdiYWI5LjAwNjQ5OTMwOWYyMjYyNjAuNDYxMWI3ZDBiMzFmN2JhYi5hMDZiYmQzYmRmYjg5MGMyCiAgICAgMjQ4YjVhODUzODBjYzdkNQogCi1WUEVYVFJXXzEyOF8weDQocmVnKQorVk1QU0FEQldfMTI4XzB4NShyZWcpCiAgIGJlZm9yZQogICAgIDA5MzBhODIyNjFjNzhkYjkuZmJlZDdmYjJiY2Q3YWFiNS4yOTNjY2Y5NzBkMzg5OWE2LmY2OTdjYzcxOWU4NDVjZDYKICAgICBhYWE2YTM3ZmY3NzYxYzFjLmY4Y2JkM2I4NGNkOGM1NzQuYTA4MDc0NDY1OTNjM2I1NC4wZDY1ODJiMGVmZTNjYTZlCkBAIC00MTQ3OCwxMiArNDE0NzgsMTIgQEAKICAgICA4ZjM0OTEyNWQ3ZGU4NzA5LmExODFjNjcxN2NjYjZiZTkuZTk3OGZiMzBmYzNiYjQ5Ni5lMDA5YmRiODM5YzEzZDkzCiAgICAgNTQ3NjNjNTk2OTU3Yjk3OQogICBhZnRlcgotICAgIDA5MzBhODIyNjFjNzhkYjkuZmJlZDdmYjJiY2Q3YWFiNS4yOTNjY2Y5NzBkMzg5OWE2LmY2OTdjYzcxOWU4NDVjZDYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDA3MzAwNTEwMDg4MDA1Ni4wMGE0MDA5MzAwNjgwMGRlCiAgICAgYWFhNmEzN2ZmNzc2MWMxYy5mOGNiZDNiODRjZDhjNTc0LmEwODA3NDQ2NTkzYzNiNTQuMGQ2NTgyYjBlZmUzY2E2ZQogICAgIDYyMzg0NzA2OTVhNGIxYTcuZTY2M2MyZmYyZDI2YzcyMS5jMTdiODRhYTFmYjk4NjE1LjY3NDc1Mzc5YzU0OTgxOWUKICAgICA4ZjM0OTEyNWQ3ZGU4NzA5LmExODFjNjcxN2NjYjZiZTkuZTk3OGZiMzBmYzNiYjQ5Ni5lMDA5YmRiODM5YzEzZDkzCi0gICAgMDAwMDAwMDAwMDAwOTlhNgotVlBFWFRSV18xMjhfMHg0KG1lbSkKKyAgICA1NDc2M2M1OTY5NTdiOTc5CitWTVBTQURCV18xMjhfMHg1KG1lbSkKICAgYmVmb3JlCiAgICAgOWY1YjRhNDg3MTE3YjI3Yi44Y2U0N2I0NzVhYWZkYmViLjA1ZjE1ZGZjNTRkNTZmZjcuNzJjNGQ2NDM4YjRmMDI4MwogICAgIDlkODQ2NTcyNmMwZWU0YzYuYjQ5NTAzZDdiYWEzZTlmYy5lZTdmMDI4YmQyNGY4ZDc4LmI5YWIxMDRlNjk4MGFjODcKQEAgLTQxNDkxLDEzICs0MTQ5MSwxMyBAQAogICAgIDIyZDJhZTIzYWNjZmUyZTUuZjkyOWRiZjY3ZTI2MjM1Ni5iZjIzNjc2NTJlYzUwOTgyLmYxN2E5MTAxODA2YTAyODYKICAgICA5YWZhZDE4MGYxM2IyN2Q5CiAgIGFmdGVyCi0gICAgOWY1YjRhNDg3MTE3YjI3Yi44Y2U0N2I0NzVhYWZkYmViLjA1ZjE1ZGZjNTRkNTZmZjcuNzJjNGQ2NDM4YjRmODE5OAorICAgIDlmNWI0YTQ4NzExN2IyN2IuOGNlNDdiNDc1YWFmZGJlYi4wNWYxNWRmYzU0ZDU2ZmY3LjcyYzRkNjQzOGI0ZjAyODMKICAgICA5ZDg0NjU3MjZjMGVlNGM2LmI0OTUwM2Q3YmFhM2U5ZmMuZWU3ZjAyOGJkMjRmOGQ3OC5iOWFiMTA0ZTY5ODBhYzg3Ci0gICAgMmFiZDA3YzE3NjQ4MGI4NS42NTkzMjQ0MzkyNDdlZGU2LjM4ZjYzMTBhMTE0NjgxOTguMWE3OWE1YmYzMTVhZWQ0ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWE5MDBiOTAwZjgwMTUzLjAxMmUwMGVjMDA2ZjAxMzEKICAgICAyMmQyYWUyM2FjY2ZlMmU1LmY5MjlkYmY2N2UyNjIzNTYuYmYyMzY3NjUyZWM1MDk4Mi5mMTdhOTEwMTgwNmEwMjg2CiAgICAgOWFmYWQxODBmMTNiMjdkOQogCi1WUEVYVFJXXzEyOF8weDUocmVnKQorVk1QU0FEQldfMTI4XzB4NihyZWcpCiAgIGJlZm9yZQogICAgIDcxNDQ1ZmE4MjE1YTk3ZjQuNjE4ZmQ2ODMyYWIxMjYxMi5jZWE1MjI1YzFiY2NjNmY3LjVmZDMxZTg4NDRkOGRmNjMKICAgICBkMmE2MzllNWFiNTE4ZjgyLmMzYmZmOWNjMGJmYTkzMzcuM2U1MWY3ZTEwNWM2MTM3Ni5mNGQwZDQ2MDcwOGNiZjY2CkBAIC00MTUwNSwxMiArNDE1MDUsMTIgQEAKICAgICBhMWRkYmY0ZjNmZmQwN2E5LjVmYWMyNWNlNjdlZGQ2MWIuNjM2ZDM4ZjkyZGUzOWFiYy42Y2UzMmJkYTc4MDQ5MTg1CiAgICAgMDg5MmMzNTY4Y2UxZmFmOAogICBhZnRlcgotICAgIDcxNDQ1ZmE4MjE1YTk3ZjQuNjE4ZmQ2ODMyYWIxMjYxMi5jZWE1MjI1YzFiY2NjNmY3LjVmZDMxZTg4NDRkOGRmNjMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDFmMzAwZWEwMTkwMDEzMy4wMTQ0MDFlZTAxOTcwMGZiCiAgICAgZDJhNjM5ZTVhYjUxOGY4Mi5jM2JmZjljYzBiZmE5MzM3LjNlNTFmN2UxMDVjNjEzNzYuZjRkMGQ0NjA3MDhjYmY2NgogICAgIDE4NmE1YWE0MmJhZjRiMzAuMjMzMDk1ZWM2YmI0ZTQ4MC5hNzdiNTVmMmQ3OWY0NTdlLjU5ZTcwNGQ3Y2RlYzY3YjgKICAgICBhMWRkYmY0ZjNmZmQwN2E5LjVmYWMyNWNlNjdlZGQ2MWIuNjM2ZDM4ZjkyZGUzOWFiYy42Y2UzMmJkYTc4MDQ5MTg1Ci0gICAgMDAwMDAwMDAwMDAwMWJjYwotVlBFWFRSV18xMjhfMHg1KG1lbSkKKyAgICAwODkyYzM1NjhjZTFmYWY4CitWTVBTQURCV18xMjhfMHg2KG1lbSkKICAgYmVmb3JlCiAgICAgMDliZTRhMzYyNThlNWUzZS5jODRiNjI1NDgwYzlmZTlhLjUyMDAyNTVlMWFiMTI1MzIuY2Y3NDlkNjNhNDFmNGNkYwogICAgIDRhMzUzYjY1NjAxNzc4ODIuZTlmZjQxMWQ4YzllNmVhZi5kOGY4MTE4OWExMGE4ZGYxLjQ4ZGI3ZjlkZDdkZTk3ODkKQEAgLTQxNTE4LDEzICs0MTUxOCwxMyBAQAogICAgIDAwMmY0YjY1MmJlZmMxYjYuODg2ZGEwYjA3NDk0YTNmMy4wYzAzOWY1Yjk5YjE5NjFhLmNjZmRhYTJkZTMxNmVjM2QKICAgICA5MDUwZWI1Y2Y0YTc2ZDliCiAgIGFmdGVyCi0gICAgMDliZTRhMzYyNThlNWUzZS5jODRiNjI1NDgwYzlmZTlhLjUyMDAyNTVlMWFiMTI1MzIuY2Y3NDlkNjNhNDFmMTcwNworICAgIDA5YmU0YTM2MjU4ZTVlM2UuYzg0YjYyNTQ4MGM5ZmU5YS41MjAwMjU1ZTFhYjEyNTMyLmNmNzQ5ZDYzYTQxZjRjZGMKICAgICA0YTM1M2I2NTYwMTc3ODgyLmU5ZmY0MTFkOGM5ZTZlYWYuZDhmODExODlhMTBhOGRmMS40OGRiN2Y5ZGQ3ZGU5Nzg5Ci0gICAgYTljMTEyZDE1OTg5MDVmMS42MDQ3NTcxOGZmMDk5MDkzLmNjNWY2NjM5MTcwN2M5ODUuMjhmMGQ5MTI2M2FjYjk3MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMjUxMDBkNTAwZjUwMjU1LjAxMTYwMTdmMDI0MzAxMWQKICAgICAwMDJmNGI2NTJiZWZjMWI2Ljg4NmRhMGIwNzQ5NGEzZjMuMGMwMzlmNWI5OWIxOTYxYS5jY2ZkYWEyZGUzMTZlYzNkCiAgICAgOTA1MGViNWNmNGE3NmQ5YgogCi1WUEVYVFJXXzEyOF8weDUocmVnKQorVk1QU0FEQldfMTI4XzB4NihyZWcpCiAgIGJlZm9yZQogICAgIGQwMzM5OTBhMzFlYjc3MzYuMmQ0YTYzMGRmMjU2NjhmZS5iZmJlMTk1MTg3Y2VlMTdhLjcyYWUzOGRjNDIxNmFmZGIKICAgICBlOWYzYjFhMzM2NmY0OGJiLjBiZTBkNWI1Y2JjOGI1ZjUuNjA4NmJjNjdkNTQwODdkNS5kYzJkYWRhNjJmNDFkMmY1CkBAIC00MTUzMiwxMiArNDE1MzIsMTIgQEAKICAgICAxMTM5MGM0NjBiNjQyYTMzLjQ5YTliN2I2MjEwMzM0OWUuNGZhYjc1YTI5MDAxZmFiNi4yOGQ3MWNjYTQyMWEyMWUzCiAgICAgYzI5YTBlZmJhMWUwYzUwZQogICBhZnRlcgotICAgIGQwMzM5OTBhMzFlYjc3MzYuMmQ0YTYzMGRmMjU2NjhmZS5iZmJlMTk1MTg3Y2VlMTdhLjcyYWUzOGRjNDIxNmFmZGIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE0NzAwYzEwMWE4MDBjYy4wMGY5MDE1YzAxMmUwMDk1CiAgICAgZTlmM2IxYTMzNjZmNDhiYi4wYmUwZDViNWNiYzhiNWY1LjYwODZiYzY3ZDU0MDg3ZDUuZGMyZGFkYTYyZjQxZDJmNQogICAgIDM1ZGMyZTkzYTFiZTFhZDYuNzViYzFkNDlkMTU0NjVjNi5jNjExODc1ZWY5NzhkMWFmLjI0NGM3YWE3N2IzZWI5OTQKICAgICAxMTM5MGM0NjBiNjQyYTMzLjQ5YTliN2I2MjEwMzM0OWUuNGZhYjc1YTI5MDAxZmFiNi4yOGQ3MWNjYTQyMWEyMWUzCi0gICAgMDAwMDAwMDAwMDAwODdjZQotVlBFWFRSV18xMjhfMHg1KG1lbSkKKyAgICBjMjlhMGVmYmExZTBjNTBlCitWTVBTQURCV18xMjhfMHg2KG1lbSkKICAgYmVmb3JlCiAgICAgZDA2MWNjMjZiNDlkNjM0My5kOTU4NDgyOTEyZWViMzdkLjYxNzQyMGU2ZDZlM2RkYTkuNTZhMDgzOWYzNTY4M2Y5MwogICAgIDJjZjdkMjM3OTY1YmI1YWMuZTk4M2RjYTY1MmU3ZjI2MC45YWU5ZDJjNzBkZmYxZDEyLjM2M2JhYmMxODUzOGRjZjUKQEAgLTQxNTQ1LDEzICs0MTU0NSwxMyBAQAogICAgIDQyYzNhOGJiMzgxMDY3Y2IuNTEzMDAxMjJlYTU3ODJhNC5lMDAxMDY0ODZmMWM1MmIwLmY1OTYzZTI1OTQ0NDBkZjIKICAgICA4Y2VlYTAzZjhiOTgxOWU2CiAgIGFmdGVyCi0gICAgZDA2MWNjMjZiNDlkNjM0My5kOTU4NDgyOTEyZWViMzdkLjYxNzQyMGU2ZDZlM2RkYTkuNTZhMDgzOWYzNTY4ZTE2MworICAgIGQwNjFjYzI2YjQ5ZDYzNDMuZDk1ODQ4MjkxMmVlYjM3ZC42MTc0MjBlNmQ2ZTNkZGE5LjU2YTA4MzlmMzU2ODNmOTMKICAgICAyY2Y3ZDIzNzk2NWJiNWFjLmU5ODNkY2E2NTJlN2YyNjAuOWFlOWQyYzcwZGZmMWQxMi4zNjNiYWJjMTg1MzhkY2Y1Ci0gICAgYjQyOTlkMWE2MzI4Nzg3NS45ZDA3YzYyYjY2ZGIyMzg5LmQxZDQ0YjQzZTE2M2IwMDYuNGRjOWViNzUxYmZkMGQ4NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMGQ2MDE0NjAxOTMwMjNjLjAyMmQwMjlmMDIxNTAxOTIKICAgICA0MmMzYThiYjM4MTA2N2NiLjUxMzAwMTIyZWE1NzgyYTQuZTAwMTA2NDg2ZjFjNTJiMC5mNTk2M2UyNTk0NDQwZGYyCiAgICAgOGNlZWEwM2Y4Yjk4MTllNgogCi1WUEVYVFJXXzEyOF8weDUocmVnKQorVk1QU0FEQldfMTI4XzB4NihyZWcpCiAgIGJlZm9yZQogICAgIDZjMWQwZTJlOWQ4NTZkMGUuYjM5MTZmMDYzMTFlM2ZkYS42MTRhOGFmOTdiZTY0YTVkLmE0M2I4MGMxZDIzNWJlM2QKICAgICBmMjZmODI1ZDY1OTg0NDE1LmUzNWY2ZWU4Njk1ZWJjY2QuMjlhMTViMWJiNDE1Yjg1Zi5mYTUwMzM5OTI3YmJiMWQ4CkBAIC00MTU1OSwxMiArNDE1NTksMTIgQEAKICAgICA2MWFiNzEzMDg5NWQ2ZTcyLmYxMmEwNTFkMDdhNTk0MTEuNTAzNWNhZWY5MDgwNzZlZi5jNzM2MzkxYjE1M2IxYmViCiAgICAgZjdhMDgzOWRlNjRkMGJiYQogICBhZnRlcgotICAgIDZjMWQwZTJlOWQ4NTZkMGUuYjM5MTZmMDYzMTFlM2ZkYS42MTRhOGFmOTdiZTY0YTVkLmE0M2I4MGMxZDIzNWJlM2QKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBmNDAxNmEwMGNiMDE5NS4wMTYxMDE4ZTAxMjMwMTU1CiAgICAgZjI2ZjgyNWQ2NTk4NDQxNS5lMzVmNmVlODY5NWViY2NkLjI5YTE1YjFiYjQxNWI4NWYuZmE1MDMzOTkyN2JiYjFkOAogICAgIDdiMmZmYTNhODA1Y2RiYTguYWZmOTIxNGJmY2RjOWFkMS4wNTgwNzJmMzMyNmYwODU2LmJjMGE5ZGJlODliOWU3YWUKICAgICA2MWFiNzEzMDg5NWQ2ZTcyLmYxMmEwNTFkMDdhNTk0MTEuNTAzNWNhZWY5MDgwNzZlZi5jNzM2MzkxYjE1M2IxYmViCi0gICAgMDAwMDAwMDAwMDAwN2JlNgotVlBFWFRSV18xMjhfMHg1KG1lbSkKKyAgICBmN2EwODM5ZGU2NGQwYmJhCitWTVBTQURCV18xMjhfMHg2KG1lbSkKICAgYmVmb3JlCiAgICAgMjkxNGY4MmUxOGZjNzE0OC4wMTJkZTNhYjFjMjgzOTIwLjg2YzA5NTQ4YTVjNTY3YmEuNjgwYTVmN2E2YmQ0M2RkNgogICAgIDM3NWQxM2JiYzg1NDA5YzAuYjgwMjRkMThkNjQ4Nzc1ZS40YTg1NGRiYWYzNDZjZmY4LmE4NGMyZDAxNWZmODlhYjYKQEAgLTQxNTcyLDEzICs0MTU3MiwxMyBAQAogICAgIDVhYTIyYjdhMTAyYmMzMjEuZDZkNGY2NzMyZGI4M2YzOC5jZmNmMjYyMDBkYTA0Y2UxLjBmNDc2NmFlZmVkZTA1MTQKICAgICBlZjk4YzhhZWUzYjg4YmU5CiAgIGFmdGVyCi0gICAgMjkxNGY4MmUxOGZjNzE0OC4wMTJkZTNhYjFjMjgzOTIwLjg2YzA5NTQ4YTVjNTY3YmEuNjgwYTVmN2E2YmQ0MGMzNgorICAgIDI5MTRmODJlMThmYzcxNDguMDEyZGUzYWIxYzI4MzkyMC44NmMwOTU0OGE1YzU2N2JhLjY4MGE1ZjdhNmJkNDNkZDYKICAgICAzNzVkMTNiYmM4NTQwOWMwLmI4MDI0ZDE4ZDY0ODc3NWUuNGE4NTRkYmFmMzQ2Y2ZmOC5hODRjMmQwMTVmZjg5YWI2Ci0gICAgZmU0OTUwMzExMjVmOTE0Zi5lMDc2YWFlMTUzNDk2NWQ3LjE5NDZhOTVlMGMzNjg3ZjYuNmM0NzMxZWUwNjc3YzkzYworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTI0MDE2MzAwNzkwMTczLjAxMGMwMTBjMDExODAxNmYKICAgICA1YWEyMmI3YTEwMmJjMzIxLmQ2ZDRmNjczMmRiODNmMzguY2ZjZjI2MjAwZGEwNGNlMS4wZjQ3NjZhZWZlZGUwNTE0CiAgICAgZWY5OGM4YWVlM2I4OGJlOQogCi1WUEVYVFJXXzEyOF8weDYocmVnKQorVk1QU0FEQldfMTI4XzB4NyhyZWcpCiAgIGJlZm9yZQogICAgIDY3ODU1MzU4NTA5MTk3NjguMjczNTIwODRlMWMzNWI2MS5mNjZhMmQzYjAzMjA0MTJjLjQ4ZWMzZWVjMTE5MWRhZTQKICAgICBkMjViMDQxYWUyZjU2NDNjLjQxY2VhYzM5OWYzNDE3M2MuOWM4MjRiYTM2ZjBkYTY2MC42MDY4NmZhZTM0MTRlZDJjCkBAIC00MTU4NiwxMiArNDE1ODYsMTIgQEAKICAgICBmNmYzYzQ5MmUyOTEzNTk1LmNjNDI3NTU5NTNjZWU2NzEuZWI2YzJkMDg3YWE4OGIzNy5kZGIxMGFjNTRhMDE5MDNhCiAgICAgZmExNTZiZjE3NDgzOTk1OAogICBhZnRlcgotICAgIDY3ODU1MzU4NTA5MTk3NjguMjczNTIwODRlMWMzNWI2MS5mNjZhMmQzYjAzMjA0MTJjLjQ4ZWMzZWVjMTE5MWRhZTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEyOTAwOGUwMTUxMDE0OC4wMGFkMDBlZTAwYjcwMGY1CiAgICAgZDI1YjA0MWFlMmY1NjQzYy40MWNlYWMzOTlmMzQxNzNjLjljODI0YmEzNmYwZGE2NjAuNjA2ODZmYWUzNDE0ZWQyYwogICAgIDhlNjdkNTVlMzQ3MTMwMTIuODQzOTQ5ODc2Njg5YjFkZC4yNDZhNGQxOTBkMGNhYjgwLmYzMTEzNDUzOTMzNTQwZTUKICAgICBmNmYzYzQ5MmUyOTEzNTk1LmNjNDI3NTU5NTNjZWU2NzEuZWI2YzJkMDg3YWE4OGIzNy5kZGIxMGFjNTRhMDE5MDNhCi0gICAgMDAwMDAwMDAwMDAwMmQzYgotVlBFWFRSV18xMjhfMHg2KG1lbSkKKyAgICBmYTE1NmJmMTc0ODM5OTU4CitWTVBTQURCV18xMjhfMHg3KG1lbSkKICAgYmVmb3JlCiAgICAgMjYwOWQ1YzQyZGM3MTc2YS42NTRiY2MyMTg5ZGZhZjczLmY1YjRhYzliODExMDcyMjQuNGJkNWVhZGI1MTZkODQzMgogICAgIDNkNTljMzI5OTJkYWM1OWQuMzliZGVhNzdjNWU5ZGM1NS5kYjVjNjgzOTBkNWExMDIxLmExZjA3ZDAwMmZlOGQwMWMKQEAgLTQxNTk5LDEzICs0MTU5OSwxMyBAQAogICAgIDljM2MxYzU4Y2Y5YWE0MTUuN2IxYjU0Mjg2OTVmM2FkYi40ZDdmNjQzYWFkMzc3NWFiLjllNzExOWVlNmUyZTUzNzAKICAgICBmZTZkMWE4ZTA3MTAwMjMxCiAgIGFmdGVyCi0gICAgMjYwOWQ1YzQyZGM3MTc2YS42NTRiY2MyMTg5ZGZhZjczLmY1YjRhYzliODExMDcyMjQuNGJkNWVhZGI1MTZkMjcxZgorICAgIDI2MDlkNWM0MmRjNzE3NmEuNjU0YmNjMjE4OWRmYWY3My5mNWI0YWM5YjgxMTA3MjI0LjRiZDVlYWRiNTE2ZDg0MzIKICAgICAzZDU5YzMyOTkyZGFjNTlkLjM5YmRlYTc3YzVlOWRjNTUuZGI1YzY4MzkwZDVhMTAyMS5hMWYwN2QwMDJmZThkMDFjCi0gICAgMWJkMGIyMGJiZmM3NjAxZC5jYzk0MTgwMDMxM2FmNmU5LjU5MDcyNzFmMTJiODdkOTUuNDkwYmUzZTJhZmE0YWJhMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMWU2MDFlODAyNDAwMjU4LjAxZDAwMWQ4MDE0OTAxNWEKICAgICA5YzNjMWM1OGNmOWFhNDE1LjdiMWI1NDI4Njk1ZjNhZGIuNGQ3ZjY0M2FhZDM3NzVhYi45ZTcxMTllZTZlMmU1MzcwCiAgICAgZmU2ZDFhOGUwNzEwMDIzMQogCi1WUEVYVFJXXzEyOF8weDYocmVnKQorVk1QU0FEQldfMTI4XzB4NyhyZWcpCiAgIGJlZm9yZQogICAgIGM0NGNlMjJmMTZkOGY1OTIuOWI2NzdmZmJkZTYwNGNiMi5hMzlmOTk1YzBhZTNlM2Q3LjkyOTE5Yjc0ZjllMmIzOTAKICAgICA0YzVhNmQzZDM4MTI2ODNlLmY2MWU1NmUwMDkyNDE1MWYuOWU2Y2UzMDZhZjUyMmY4OC4wNDA4NDhiYTEyYzVmNTZmCkBAIC00MTYxMywxMiArNDE2MTMsMTIgQEAKICAgICAxMjMyYmU1MjI0MDliYzJhLjJkNjA1MDIwMjFkN2ZhMWIuODExMTc4NzA3NzIzOWJiYi5kZTU5ZjUxYzFlNjU2ZmNlCiAgICAgZmZjYmVkMGU0ODM5MjFhNgogICBhZnRlcgotICAgIGM0NGNlMjJmMTZkOGY1OTIuOWI2NzdmZmJkZTYwNGNiMi5hMzlmOTk1YzBhZTNlM2Q3LjkyOTE5Yjc0ZjllMmIzOTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDBiODAxYTIwMTZhMDBhMi4wMWZmMDE5NzAxN2UwMWNjCiAgICAgNGM1YTZkM2QzODEyNjgzZS5mNjFlNTZlMDA5MjQxNTFmLjllNmNlMzA2YWY1MjJmODguMDQwODQ4YmExMmM1ZjU2ZgogICAgIGYyZTNiODI1MDk0OTk2ZTIuODgyZDFkZjM2YmYyYmI4OS5jYWNlMmY5M2Y1Mzk1ODliLjdlYjJlN2Y5MTVlZGY1NzYKICAgICAxMjMyYmU1MjI0MDliYzJhLjJkNjA1MDIwMjFkN2ZhMWIuODExMTc4NzA3NzIzOWJiYi5kZTU5ZjUxYzFlNjU2ZmNlCi0gICAgMDAwMDAwMDAwMDAwOTk1YwotVlBFWFRSV18xMjhfMHg2KG1lbSkKKyAgICBmZmNiZWQwZTQ4MzkyMWE2CitWTVBTQURCV18xMjhfMHg3KG1lbSkKICAgYmVmb3JlCiAgICAgYmNkMjRiYmRhZjc2YzUyOC4wODk1N2IyZjI2ZGUxNmMxLmMwODM2YzU0NDZkZThkMDMuMjA4MWJhMDhkMjljMzM5NQogICAgIGYzM2I4YzE0NzAyNzE4ODAuMmY1NmViMmFhOTU1ZTA1NC4xZjYxZWM3OWY3MTMzMTZhLjAzNjlmMWM2YTEzMTVkZDQKQEAgLTQxNjI2LDEzICs0MTYyNiwxMyBAQAogICAgIDNiNjJhMzZhNmYxNmJhNjUuODUyNmQ1MjdhOTU3YjIxYy5hZDgyMDg0YTZiMzk5YjZiLjA2ZDUyZjY5MGRkYzU3MzQKICAgICBkZGVmMmQyNWUyMGI5ZWFjCiAgIGFmdGVyCi0gICAgYmNkMjRiYmRhZjc2YzUyOC4wODk1N2IyZjI2ZGUxNmMxLmMwODM2YzU0NDZkZThkMDMuMjA4MWJhMDhkMjljNGM3YworICAgIGJjZDI0YmJkYWY3NmM1MjguMDg5NTdiMmYyNmRlMTZjMS5jMDgzNmM1NDQ2ZGU4ZDAzLjIwODFiYTA4ZDI5YzMzOTUKICAgICBmMzNiOGMxNDcwMjcxODgwLjJmNTZlYjJhYTk1NWUwNTQuMWY2MWVjNzlmNzEzMzE2YS4wMzY5ZjFjNmExMzE1ZGQ0Ci0gICAgN2ZkMjJhZmZhNzU4ZDVkYi5lNWMzMGFhZTRjZmE1NThlLjI0Yzg0YzdjNGY4M2ExN2YuODcxNjE5MTg4MTZkNTUyNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTc4MDEwMjAxMzcwMGY4LjAxNTIwMTI2MDE3NjAxY2UKICAgICAzYjYyYTM2YTZmMTZiYTY1Ljg1MjZkNTI3YTk1N2IyMWMuYWQ4MjA4NGE2YjM5OWI2Yi4wNmQ1MmY2OTBkZGM1NzM0CiAgICAgZGRlZjJkMjVlMjBiOWVhYwogCi1WUEVYVFJXXzEyOF8weDYocmVnKQorVk1QU0FEQldfMTI4XzB4NyhyZWcpCiAgIGJlZm9yZQogICAgIDY4YjMxMWI4OWI4NTY3M2EuMDViOTcyNDFlNDZjODE0OS42YWNjNDcwMTVjZmEzM2E5Ljk0NWM5Y2NlNjY0MWQ5NWQKICAgICAwMzZjZDY4ZWQ1ZDdlZTg5LmI3YTExNDcxMjM2N2U2YjQuZjIwMDVjYTgwMjZlMTNlMy5iNzIyODVmMzVjYTgxODdmCkBAIC00MTY0MCwxMiArNDE2NDAsMTIgQEAKICAgICBkOWVjZjViNDM5MmYyNTFkLjQ3NTdiZDg4NmQ3OTdlY2UuNTc0NjYwMGU5NWZiZTMwOC4xZGExNDNkNWFjYzE4ODA1CiAgICAgMThmMzEwNjkzZDhhMzFjMQogICBhZnRlcgotICAgIDY4YjMxMWI4OWI4NTY3M2EuMDViOTcyNDFlNDZjODE0OS42YWNjNDcwMTVjZmEzM2E5Ljk0NWM5Y2NlNjY0MWQ5NWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDFlMTAwZGIwMTEyMDEzMS4wMTBlMDI0NDAxMjgwMTMyCiAgICAgMDM2Y2Q2OGVkNWQ3ZWU4OS5iN2ExMTQ3MTIzNjdlNmI0LmYyMDA1Y2E4MDI2ZTEzZTMuYjcyMjg1ZjM1Y2E4MTg3ZgogICAgIDBhNjU3OTE0MmI4YjZlNDYuMmZlNzAzZTQ0NzExYTdkMS43NzEwMTA4ODM2NDA4ZjczLmYwYTAzZWE3NmI3OTEzZmUKICAgICBkOWVjZjViNDM5MmYyNTFkLjQ3NTdiZDg4NmQ3OTdlY2UuNTc0NjYwMGU5NWZiZTMwOC4xZGExNDNkNWFjYzE4ODA1Ci0gICAgMDAwMDAwMDAwMDAwNDcwMQotVlBFWFRSV18xMjhfMHg2KG1lbSkKKyAgICAxOGYzMTA2OTNkOGEzMWMxCitWTVBTQURCV18xMjhfMHg3KG1lbSkKICAgYmVmb3JlCiAgICAgYmY2MDIyNGYzYWUzY2I1ZC5jYzRiNDVkYjljNGY0Y2I5LmRjYmRiZDQ3YjBhODI4ZDQuZWNmMDQ3YTRiYTJiNGI0YgogICAgIGVjYjVmMzc0YmRkNTExMDYuM2ZjZjY3ZjZlZjc2MjJjNy5jYmU1N2YwZjJkYWM2MDExLjk0NThjMWI4NDI1ZDAyZWIKQEAgLTQxNjUzLDEzICs0MTY1MywxMyBAQAogICAgIDRjNDdjODI2Y2NiOTk0MmUuMTU3NjBmYjRkODA5YzdlNy4yMmFhM2E2NzQzNjA2ZWUwLjg5OTQ1ZTA2ZTlmNDUwZWQKICAgICA4ZTAxN2ExOTQwNzE1ZWE3CiAgIGFmdGVyCi0gICAgYmY2MDIyNGYzYWUzY2I1ZC5jYzRiNDVkYjljNGY0Y2I5LmRjYmRiZDQ3YjBhODI4ZDQuZWNmMDQ3YTRiYTJiN2ZjYgorICAgIGJmNjAyMjRmM2FlM2NiNWQuY2M0YjQ1ZGI5YzRmNGNiOS5kY2JkYmQ0N2IwYTgyOGQ0LmVjZjA0N2E0YmEyYjRiNGIKICAgICBlY2I1ZjM3NGJkZDUxMTA2LjNmY2Y2N2Y2ZWY3NjIyYzcuY2JlNTdmMGYyZGFjNjAxMS45NDU4YzFiODQyNWQwMmViCi0gICAgN2NiZTAxYzJlNTZlYzBlOC44ZWM0NTc3MGNmMzBlMWYyLmVlOWE3ZmNiZmY5MGU0YjEuYTljYmNhYjRjODFiNDU5MgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTBmMDIwMDAxODcwMTUzLjAxODYwMTYyMDFkMzAxMjIKICAgICA0YzQ3YzgyNmNjYjk5NDJlLjE1NzYwZmI0ZDgwOWM3ZTcuMjJhYTNhNjc0MzYwNmVlMC44OTk0NWUwNmU5ZjQ1MGVkCiAgICAgOGUwMTdhMTk0MDcxNWVhNwogCi1WUEVYVFJXXzEyOF8weDcocmVnKQorVk1PVkREVVBfWU1Nb3JNRU0yNTZfdG9fWU1NKHJlZykKICAgYmVmb3JlCiAgICAgMTY1ZDE5NTk2OTIwYWM2ZC4zNjFiYzI4ZDhlYzM0OTA1LjMwMzA4ZDMwYTU4ZTBkNTIuNDNkZjJiY2YxNDI5YmFjOQogICAgIDdiZjMzNzMyMDE4ZDc2ZWEuMTcwODZkZTE0ODk2OWE5OC4zYjQwY2M0ZmQyNGFmMmRlLjJlMDZjZWVmOGVmNzg2OTgKQEAgLTQxNjY3LDEyICs0MTY2NywxMiBAQAogICAgIDRmMDBlMDVmZWRjZDZkYmMuMmU1OGMzMDUxMmNkMDNhNS45MDhkN2UyNmJlOTg4NDBiLmNkNWExYTA3ZjBjZTg5OWIKICAgICAzYTFlYmNkNzBmZjAzOTI3CiAgIGFmdGVyCi0gICAgMTY1ZDE5NTk2OTIwYWM2ZC4zNjFiYzI4ZDhlYzM0OTA1LjMwMzA4ZDMwYTU4ZTBkNTIuNDNkZjJiY2YxNDI5YmFjOQorICAgIDE3MDg2ZGUxNDg5NjlhOTguMTcwODZkZTE0ODk2OWE5OC4yZTA2Y2VlZjhlZjc4Njk4LjJlMDZjZWVmOGVmNzg2OTgKICAgICA3YmYzMzczMjAxOGQ3NmVhLjE3MDg2ZGUxNDg5NjlhOTguM2I0MGNjNGZkMjRhZjJkZS4yZTA2Y2VlZjhlZjc4Njk4CiAgICAgMWExMGQwMTBhNDQyZjhjYi5jYmQ4NDQxMDE1NDE0NDE0LjkyZjBjODdkZmNjYWIwMzguYmRlYjlmYjNjZWQ0OGM3YgogICAgIDRmMDBlMDVmZWRjZDZkYmMuMmU1OGMzMDUxMmNkMDNhNS45MDhkN2UyNmJlOTg4NDBiLmNkNWExYTA3ZjBjZTg5OWIKLSAgICAwMDAwMDAwMDAwMDAzMDMwCi1WUEVYVFJXXzEyOF8weDcobWVtKQorICAgIDNhMWViY2Q3MGZmMDM5MjcKK1ZNT1ZERFVQX1lNTW9yTUVNMjU2X3RvX1lNTShtZW0pCiAgIGJlZm9yZQogICAgIGUwMDUwMDEwNDc0NzU3NDkuNzcwZjY0OGI3OGJhMTI2OC4xYzU1NjZhYzVhNDg5Mjc2LjkzNjNlOGI3YjU0M2FhMDQKICAgICA5YmQ5NjI5Y2I1ZGVhMDJlLmVjODk1NzAxZTI5MzIzN2MuNzE5OGE5ZjEwYWJkYWViNC5mNmJlMDQ5YTdjNTQ1ZGNlCkBAIC00MTY4MCwxMyArNDE2ODAsMTMgQEAKICAgICBjMDdiNzE2MmExZmNhMmVlLjMwZWQ3Yjc3YzIzZjc3OGEuYzEyODAxMDUxMGM3N2QyNi40YjMyM2YwYWVjZGQ1ZDg4CiAgICAgZjZlMzU3NmZjYzZkMjJjZgogICBhZnRlcgotICAgIGUwMDUwMDEwNDc0NzU3NDkuNzcwZjY0OGI3OGJhMTI2OC4xYzU1NjZhYzVhNDg5Mjc2LjkzNjNlOGI3YjU0MzA5ZjAKKyAgICBlMDA1MDAxMDQ3NDc1NzQ5Ljc3MGY2NDhiNzhiYTEyNjguMWM1NTY2YWM1YTQ4OTI3Ni45MzYzZThiN2I1NDNhYTA0CiAgICAgOWJkOTYyOWNiNWRlYTAyZS5lYzg5NTcwMWUyOTMyMzdjLjcxOThhOWYxMGFiZGFlYjQuZjZiZTA0OWE3YzU0NWRjZQogICAgIDQ3Njc1ZTY5NzVjMWQwMDEuMGJiOWI1MmJjN2U3ZGJhMy4wOWYwMDljMDNkMzkxMzhiLjE0ZTljZDNjYWY1OWRhMTYKLSAgICBjMDdiNzE2MmExZmNhMmVlLjMwZWQ3Yjc3YzIzZjc3OGEuYzEyODAxMDUxMGM3N2QyNi40YjMyM2YwYWVjZGQ1ZDg4CisgICAgNzcwZjY0OGI3OGJhMTI2OC43NzBmNjQ4Yjc4YmExMjY4LjkzNjNlOGI3YjU0M2FhMDQuOTM2M2U4YjdiNTQzYWEwNAogICAgIGY2ZTM1NzZmY2M2ZDIyY2YKIAotVlBFWFRSV18xMjhfMHg3KHJlZykKK1ZNT1ZERFVQX1lNTW9yTUVNMjU2X3RvX1lNTShyZWcpCiAgIGJlZm9yZQogICAgIDcwNDkxMGQ2ZWQ5NDY0OTguZTJlMTE2NzI1ODljZDQyMy5iNzZmYTM0ZjZmMjkzM2RkLjczMGIwZGFjOWU3M2E3YjEKICAgICAxN2IwNjVhZGViZGU2MDhmLjg5NjVjOTg3YjNhZDIwY2EuZmM4YzJiMjE2YjMwNGI0Ny5mYjY2YWFhMjAzNGE0ZTU5CkBAIC00MTY5NCwxMiArNDE2OTQsMTIgQEAKICAgICA1OGIxZDk1OGViMGQ3NWI1LmQ2ZjY0OTZkY2I0ZWY4MjAuMzBjNzQ4NjBiZWM2N2QxMi4wMmI0ODMyNmM1YTYwM2FmCiAgICAgMzgzZmI4OGU1OTQ0ODhiNQogICBhZnRlcgotICAgIDcwNDkxMGQ2ZWQ5NDY0OTguZTJlMTE2NzI1ODljZDQyMy5iNzZmYTM0ZjZmMjkzM2RkLjczMGIwZGFjOWU3M2E3YjEKKyAgICA4OTY1Yzk4N2IzYWQyMGNhLjg5NjVjOTg3YjNhZDIwY2EuZmI2NmFhYTIwMzRhNGU1OS5mYjY2YWFhMjAzNGE0ZTU5CiAgICAgMTdiMDY1YWRlYmRlNjA4Zi44OTY1Yzk4N2IzYWQyMGNhLmZjOGMyYjIxNmIzMDRiNDcuZmI2NmFhYTIwMzRhNGU1OQogICAgIDQ1NjQ1NTVmNjFkODUyNWYuOTFkMjA2OGNkMTM5NDIwZi41YjkwMGU1ODUxZTBmYTc1LjM3MDU1MmQxNWM1NzJlNGEKICAgICA1OGIxZDk1OGViMGQ3NWI1LmQ2ZjY0OTZkY2I0ZWY4MjAuMzBjNzQ4NjBiZWM2N2QxMi4wMmI0ODMyNmM1YTYwM2FmCi0gICAgMDAwMDAwMDAwMDAwYjc2ZgotVlBFWFRSV18xMjhfMHg3KG1lbSkKKyAgICAzODNmYjg4ZTU5NDQ4OGI1CitWTU9WRERVUF9ZTU1vck1FTTI1Nl90b19ZTU0obWVtKQogICBiZWZvcmUKICAgICBiNTcyNmRmNDM0M2M3YTg4LmFhZTJlZjA0MjYwOTA2M2MuMzQ5YjBmMTZjMGY4ZmMyNi5kNzdjZDZhNTRkNmQxMGNiCiAgICAgNTUxODFmNDQ3MzlhOTU1My45OTQ1OTFjZmFlNTg0MWExLjg3OGVkMzc0Yzk0MTBhNTAuYWNmZGIzOTM5YjYxZWY0YwpAQCAtNDE3MDcsMTMgKzQxNzA3LDEzIEBACiAgICAgNmRmMTY3NTI4YmJhMzQ4My5iYWNjNmY3MzEyMjJhNGIzLjdiOGQ0NWZiOGRlNjM4YmEuNTA4ZTRhMWFlMTYyN2Y1NAogICAgIGQ3MzdmYzhjMTI4N2E5MzMKICAgYWZ0ZXIKLSAgICBiNTcyNmRmNDM0M2M3YTg4LmFhZTJlZjA0MjYwOTA2M2MuMzQ5YjBmMTZjMGY4ZmMyNi5kNzdjZDZhNTRkNmRhYjliCisgICAgYjU3MjZkZjQzNDNjN2E4OC5hYWUyZWYwNDI2MDkwNjNjLjM0OWIwZjE2YzBmOGZjMjYuZDc3Y2Q2YTU0ZDZkMTBjYgogICAgIDU1MTgxZjQ0NzM5YTk1NTMuOTk0NTkxY2ZhZTU4NDFhMS44NzhlZDM3NGM5NDEwYTUwLmFjZmRiMzkzOWI2MWVmNGMKICAgICBmNGZmNDk2YTMxNmI5NDQzLjdmMjRiZDI1MWQ4NzYyOGYuYWI5YjExNzEwNDM3ZTBjOC4wYjk0ZGE5NjQzMmY1NTQwCi0gICAgNmRmMTY3NTI4YmJhMzQ4My5iYWNjNmY3MzEyMjJhNGIzLjdiOGQ0NWZiOGRlNjM4YmEuNTA4ZTRhMWFlMTYyN2Y1NAorICAgIGFhZTJlZjA0MjYwOTA2M2MuYWFlMmVmMDQyNjA5MDYzYy5kNzdjZDZhNTRkNmQxMGNiLmQ3N2NkNmE1NGQ2ZDEwY2IKICAgICBkNzM3ZmM4YzEyODdhOTMzCiAKLVZQRVhUUldfMTI4XzB4NyhyZWcpCitWTU9WRERVUF9ZTU1vck1FTTI1Nl90b19ZTU0ocmVnKQogICBiZWZvcmUKICAgICBmY2RiZWQ1NjcyMjkwZThhLjllYmJmNWU4OWM5MzMxNDAuYTQ4OWExMjMyN2IzNDRiOS5kNTMyZWNmYzdmNThjZjUzCiAgICAgMWJjNjFhZTY5Y2Q0ZWIwNS42MjI5NmYxODgxMDM0N2E2LjlhYTc1MWEzZjhjODdlNGMuOTQ1NDgxNjJmNzliNjFiZgpAQCAtNDE3MjEsMTIgKzQxNzIxLDEyIEBACiAgICAgYjZhMDE2MDRiZjc2ZmMxNS4xMjIwMThmNzM1ZDVhYzFhLjFiMzUxOGJmNDBhY2FlY2MuYjA0MzY1MDllNmMyNjRiZQogICAgIGM2YTdhYzIzOTZiZjRlYWEKICAgYWZ0ZXIKLSAgICBmY2RiZWQ1NjcyMjkwZThhLjllYmJmNWU4OWM5MzMxNDAuYTQ4OWExMjMyN2IzNDRiOS5kNTMyZWNmYzdmNThjZjUzCisgICAgNjIyOTZmMTg4MTAzNDdhNi42MjI5NmYxODgxMDM0N2E2Ljk0NTQ4MTYyZjc5YjYxYmYuOTQ1NDgxNjJmNzliNjFiZgogICAgIDFiYzYxYWU2OWNkNGViMDUuNjIyOTZmMTg4MTAzNDdhNi45YWE3NTFhM2Y4Yzg3ZTRjLjk0NTQ4MTYyZjc5YjYxYmYKICAgICA4ZjQzN2VhNzJjMTQ3YzRmLjk0MDY1MmNlNTUxNTMxZTAuZjg3MTdhNWQyMmVkOGQxOS45M2MxODAxNzEwYmJhOTI5CiAgICAgYjZhMDE2MDRiZjc2ZmMxNS4xMjIwMThmNzM1ZDVhYzFhLjFiMzUxOGJmNDBhY2FlY2MuYjA0MzY1MDllNmMyNjRiZQotICAgIDAwMDAwMDAwMDAwMGE0ODkKLVZQRVhUUldfMTI4XzB4NyhtZW0pCisgICAgYzZhN2FjMjM5NmJmNGVhYQorVk1PVkREVVBfWU1Nb3JNRU0yNTZfdG9fWU1NKG1lbSkKICAgYmVmb3JlCiAgICAgYjBiOWQyNTEzYmJiMjMxOC5lYjI3ZGM2YmYxODVhOTAyLmI2NDEzZjdkM2M1MDczODIuNWQzZDI3MzRlZjkzMWQxMAogICAgIDRjNDQ1MjdmZjJjNDllMzUuODkyNWNlNDc1ZGNlYmRjMy41ZTM2NDM0ZTg3OTE0NDQyLjFiZDZhNDI4Y2EyZTE2OTEKQEAgLTQxNzM0LDEzICs0MTczNCwxMyBAQAogICAgIDA2Zjk1MDhjMDUyYTc5MmEuNzViNjIzMGU1NDNiMGM2Zi4yNmNjY2U3ZDU3OTZlZjdiLjdiZWJkNDNkNzVhZDk0ZmQKICAgICBkNWZmODEzNjdlYTk5MjQwCiAgIGFmdGVyCi0gICAgYjBiOWQyNTEzYmJiMjMxOC5lYjI3ZGM2YmYxODVhOTAyLmI2NDEzZjdkM2M1MDczODIuNWQzZDI3MzRlZjkzZTVjYgorICAgIGIwYjlkMjUxM2JiYjIzMTguZWIyN2RjNmJmMTg1YTkwMi5iNjQxM2Y3ZDNjNTA3MzgyLjVkM2QyNzM0ZWY5MzFkMTAKICAgICA0YzQ0NTI3ZmYyYzQ5ZTM1Ljg5MjVjZTQ3NWRjZWJkYzMuNWUzNjQzNGU4NzkxNDQ0Mi4xYmQ2YTQyOGNhMmUxNjkxCiAgICAgNzQxNmE4OWFkN2U1N2MyYy5lZWU2ZTYwNDlmZGM3NDAzLmU1Y2I5ZTU0MzFhNGQ5ODYuYjE0Yzg5MDc2ZDA3ZDRmYwotICAgIDA2Zjk1MDhjMDUyYTc5MmEuNzViNjIzMGU1NDNiMGM2Zi4yNmNjY2U3ZDU3OTZlZjdiLjdiZWJkNDNkNzVhZDk0ZmQKKyAgICBlYjI3ZGM2YmYxODVhOTAyLmViMjdkYzZiZjE4NWE5MDIuNWQzZDI3MzRlZjkzMWQxMC41ZDNkMjczNGVmOTMxZDEwCiAgICAgZDVmZjgxMzY3ZWE5OTI0MAogCi1WQUVTRU5DKHJlZykKK1ZNT1ZMUFNfMTI4X002NF9YTU1fWE1NKHJlZykKICAgYmVmb3JlCiAgICAgMWJkMzhhNWUyMzg5MGE3MC5kY2JhYzY0Mjk4YTA1MDVhLjc5ZTA3ZWQyMTc3OGJmYjMuZmUwNTRlYjQxNDcyNDE0ZAogICAgIGFhYjVlZDIyMDFkODM3MzkuZDMyNTg3YTlhZDUyYmVlOS41OGIyZjRiYTg1MWVjYTdhLjRhNDI5YWU1ODQ0NThkMjcKQEAgLTQxNzQ4LDEyICs0MTc0OCwxMiBAQAogICAgIDBkY2VhZTJhZDVmNGEyNDkuOTUyOWQ3MzZjYTliNGZkMy4xMzc5MjNhYWQwZDVkNzQ0LmFhZjY4N2U1ZjBmZGZlYTUKICAgICA3NjA3MWY4YzIzZmE5YmEyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJmMjUyZjljMmE2MWIzYmMuNjk2YzE5YTE5NTM0ZDY3ZQorICAgIDFiZDM4YTVlMjM4OTBhNzAuZGNiYWM2NDI5OGEwNTA1YS43OWUwN2VkMjE3NzhiZmIzLmZlMDU0ZWI0MTQ3MjQxNGQKICAgICBhYWI1ZWQyMjAxZDgzNzM5LmQzMjU4N2E5YWQ1MmJlZTkuNThiMmY0YmE4NTFlY2E3YS40YTQyOWFlNTg0NDU4ZDI3CiAgICAgZGNlZmE1ZWNiMjIyNTY0OC5jODA2MGVhYjVmNGQ3ZjAzLjZjNzY4MjMzMzliOTY4NzEuZTQ0ZTJlZmNjNDFhOGQzNgogICAgIDBkY2VhZTJhZDVmNGEyNDkuOTUyOWQ3MzZjYTliNGZkMy4xMzc5MjNhYWQwZDVkNzQ0LmFhZjY4N2U1ZjBmZGZlYTUKICAgICA3NjA3MWY4YzIzZmE5YmEyCi1WQUVTRU5DKG1lbSkKK1ZNT1ZMUFNfMTI4X002NF9YTU1fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgMjU0YTc0ZGQ3OTFlMjE1Ni45YjllMDQ0NzA0ZDk1OWU4LjE4NTk1ZjM1MGM0YmU5ODYuYTcwN2QzOGFlNWZmNTE5ZQogICAgIDk0OGUwMmM1MGY3NDRjZWYuZTFhYWEzYWVkYjVlYjVkMC4yYjY0MjA5NDNlNjYwYTQ3Ljg2NmM4ZjNlMTVjMzEyMmMKQEAgLTQxNzYzLDExICs0MTc2MywxMSBAQAogICBhZnRlcgogICAgIDI1NGE3NGRkNzkxZTIxNTYuOWI5ZTA0NDcwNGQ5NTllOC4xODU5NWYzNTBjNGJlOTg2LmE3MDdkMzhhZTVmZjUxOWUKICAgICA5NDhlMDJjNTBmNzQ0Y2VmLmUxYWFhM2FlZGI1ZWI1ZDAuMmI2NDIwOTQzZTY2MGE0Ny44NjZjOGYzZTE1YzMxMjJjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk4ZGZiNmQzZTZjYzBhNzUuZmNiZjMzNDZjZjkzNjIyYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yYjY0MjA5NDNlNjYwYTQ3LmE3MDdkMzhhZTVmZjUxOWUKICAgICAxZDQ1YjUwNjY5ZTg4MDgwLjA1YWFhZTBmZjM3NTRlMmMuNzQzNjQyMjJlODEyZDBhNi45MGVhMTdkNzMzNDU1ZDkyCiAgICAgNzU5YmRjOTM1YTFkNWVjMgogCi1WQUVTRU5DKHJlZykKK1ZNT1ZMUFNfMTI4X002NF9YTU1fWE1NKHJlZykKICAgYmVmb3JlCiAgICAgMTM1MzlkZDQwY2JkOTZkNi5mMDUxZDIzODY1MWQwMWNmLjliMzYxMWUwNmMxZjAzZjkuNjI5NjlhMjk5N2JiZWU5YgogICAgIGM3NWU1NDA2ZTRiMzQzN2EuZjI4YzE5YWYxMWI0MTdiMi41OTJlYWVhY2ZkOTk0ZWJmLjUyMDAxZDQwYTcwMDgyNGYKQEAgLTQxNzc1LDEyICs0MTc3NSwxMiBAQAogICAgIGUyOWQ5OWVlNzdjZmU3MjAuZjRjMjBkMjFlNzNiZjBlNy5iYzk1ODJlNmQ5MmI5NWU5LmEzMjE5MDRmNWQ4ZWZlYTMKICAgICBiZDcwNzkxZTNhZjA1ZTlhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVhNjczOWU0ZGM0NDE1NmYuYTM5ZjFkNWQ2NTRjN2QyZgorICAgIDEzNTM5ZGQ0MGNiZDk2ZDYuZjA1MWQyMzg2NTFkMDFjZi45YjM2MTFlMDZjMWYwM2Y5LjYyOTY5YTI5OTdiYmVlOWIKICAgICBjNzVlNTQwNmU0YjM0MzdhLmYyOGMxOWFmMTFiNDE3YjIuNTkyZWFlYWNmZDk5NGViZi41MjAwMWQ0MGE3MDA4MjRmCiAgICAgZWQwOGZmOTY3ZThiOWY1OS5mZmMzMDM1OTg4YmE3ZDU3LjlhZGY3ZmRmNDM2ZTZiMmIuMWUzZjQ1NTMzNWVkNDhlZQogICAgIGUyOWQ5OWVlNzdjZmU3MjAuZjRjMjBkMjFlNzNiZjBlNy5iYzk1ODJlNmQ5MmI5NWU5LmEzMjE5MDRmNWQ4ZWZlYTMKICAgICBiZDcwNzkxZTNhZjA1ZTlhCi1WQUVTRU5DKG1lbSkKK1ZNT1ZMUFNfMTI4X002NF9YTU1fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgNDhmOTdkYWVlODFmMjQwMC4wMDY5MWU3YjZiMGQ1NjdhLmFiNTViNGYzNDk0MTJjOTEuMWE5YmIyMmI1YzVhMGFhNAogICAgIDIwODgxNmVhODQyNTBlMDEuYTRiNzhhYWFmNWQxMjkxNC4wMTQ3NzNiY2NiZGFlZDdmLjBmM2YwYjFjNjc4YTAzMDkKQEAgLTQxNzkwLDExICs0MTc5MCwxMSBAQAogICBhZnRlcgogICAgIDQ4Zjk3ZGFlZTgxZjI0MDAuMDA2OTFlN2I2YjBkNTY3YS5hYjU1YjRmMzQ5NDEyYzkxLjFhOWJiMjJiNWM1YTBhYTQKICAgICAyMDg4MTZlYTg0MjUwZTAxLmE0Yjc4YWFhZjVkMTI5MTQuMDE0NzczYmNjYmRhZWQ3Zi4wZjNmMGIxYzY3OGEwMzA5Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM0ODBhN2RlMzk3YTBmYWMuNDE5ZGZhZDJkYjVhZDhmMAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMTQ3NzNiY2NiZGFlZDdmLjFhOWJiMjJiNWM1YTBhYTQKICAgICAyN2U4ZmMxNWY0ZWIzOTgzLmVlMGMwOTlhM2MxOGViYjcuZmE3YzJhZGU5Y2YzZWNkOC4zMzhjMmFhZTg3MTY3ODdmCiAgICAgMThjZWU3MjhkMzhiNmJlOAogCi1WQUVTRU5DKHJlZykKK1ZNT1ZMUFNfMTI4X002NF9YTU1fWE1NKHJlZykKICAgYmVmb3JlCiAgICAgMDZkZGJkZmQxODMwZDRhYi4wZTUwNDBkZDAwYzNmMzViLjRjYWIxMzM0MzFiMzUxMTguNTQ1NjE5MTEyNDhiYTM5YwogICAgIDU3MDVhODk5ZjI5MGVlNzQuYjJlZjBiMDE2YWEzYmY3ZS5hMGZkZjQxZjJkMDQwYjY4LmJlYzAxMWU5M2NlNWNmNTUKQEAgLTQxODAyLDEyICs0MTgwMiwxMiBAQAogICAgIDk2Y2ZhZWQ2ZDJiMjI4YzYuYTBmZDIyMGVjNmFjODA1NC45YWU5MmM5OGE4ZjU2YTg4LjJmNzMwOTNjODkxMTc0NTMKICAgICBlZTU1MDI4ZmY3ZmE2NmYxCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjg2MTg2YWJiMjUyY2FiNzMuODMzZGQyYWE0YmI0MjU0MgorICAgIDA2ZGRiZGZkMTgzMGQ0YWIuMGU1MDQwZGQwMGMzZjM1Yi40Y2FiMTMzNDMxYjM1MTE4LjU0NTYxOTExMjQ4YmEzOWMKICAgICA1NzA1YTg5OWYyOTBlZTc0LmIyZWYwYjAxNmFhM2JmN2UuYTBmZGY0MWYyZDA0MGI2OC5iZWMwMTFlOTNjZTVjZjU1CiAgICAgNjk5MWE1NjhmYzM3ZjZlZS5lZThmZDc2ZTRkOTc1YTE4LjQ2NGVhOGM3Y2I5NjU1NTQuMTM4NjhkNTRmZjBlMmIyZQogICAgIDk2Y2ZhZWQ2ZDJiMjI4YzYuYTBmZDIyMGVjNmFjODA1NC45YWU5MmM5OGE4ZjU2YTg4LjJmNzMwOTNjODkxMTc0NTMKICAgICBlZTU1MDI4ZmY3ZmE2NmYxCi1WQUVTRU5DKG1lbSkKK1ZNT1ZMUFNfMTI4X002NF9YTU1fWE1NKG1lbSkKICAgYmVmb3JlCiAgICAgMmNmNmYyMzg2NGQ2YmMzNC4zYjA5YzE0ZjExOGNjMGE4LmEzMDU2N2NlZjBlZGVjNWYuZjgxYjdiZmU1ZmFlODhhZgogICAgIGM0MjM1NzIzZWRiMDMzNDcuYjU4Y2RhNDA1NDUxZjkzZi5kMzcyMjM5YmU4NjY1YzY1LmJjMzE5MTY2OGM0Y2U5NzYKQEAgLTQxODE3LDExICs0MTgxNywxMSBAQAogICBhZnRlcgogICAgIDJjZjZmMjM4NjRkNmJjMzQuM2IwOWMxNGYxMThjYzBhOC5hMzA1NjdjZWYwZWRlYzVmLmY4MWI3YmZlNWZhZTg4YWYKICAgICBjNDIzNTcyM2VkYjAzMzQ3LmI1OGNkYTQwNTQ1MWY5M2YuZDM3MjIzOWJlODY2NWM2NS5iYzMxOTE2NjhjNGNlOTc2Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjZiMmM4Njk4ZTI3YmYzZTMuNmY0ZTc4NjI2OWRiOWExMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMzcyMjM5YmU4NjY1YzY1LmY4MWI3YmZlNWZhZTg4YWYKICAgICA3NzUxNmU2ZmMxOGY3MzkwLjkzOWQwYTM2NThjZTQxM2UuMjlhZmVjMDhhZjMyMzIxMC5lNjMzMDNlOGJiNjk2NjkyCiAgICAgMDNiOTU3ZGFmNGZmZmE0MAogCi1WQUVTRU5DTEFTVChyZWcpCitWTU9WTFBTXzEyOF9YTU1fTTY0KHJlZykKICAgYmVmb3JlCiAgICAgZjc1MjYyN2UxM2FhYzIzZC40OGVhMTdhOTQ1YWNiNTFkLmIxYzIxYTEzNTE5ZGM3ZmUuMDgxN2YyODFiNzljMTIwZAogICAgIDFkNDkyMDNmYjVmN2Y5MzYuZTUzZTI1ZDQ1M2Y3MDcyYi4xMjYxMWYxOGJlODhlMDIzLjg0MTQ1ZWI1ZmQ2ZmU0YjUKQEAgLTQxODI5LDEyICs0MTgyOSwxMiBAQAogICAgIDZlODRhNmM4ZjFhNWE3Y2EuZWY0YjVkYjE4MzQ5Y2Q3OC4xMDM4Zjk0NzY2ZGZiNTRmLmMyMDA1OTAzYjA3ZTUwYjUKICAgICAzYzg2ZTBmNDU2ZDE2MzY0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJkM2U3YzFkNjNiMjA2N2MuMmM5YzRkNDc1NTcyM2RlNgorICAgIGY3NTI2MjdlMTNhYWMyM2QuNDhlYTE3YTk0NWFjYjUxZC5iMWMyMWExMzUxOWRjN2ZlLjA4MTdmMjgxYjc5YzEyMGQKICAgICAxZDQ5MjAzZmI1ZjdmOTM2LmU1M2UyNWQ0NTNmNzA3MmIuMTI2MTFmMThiZTg4ZTAyMy44NDE0NWViNWZkNmZlNGI1CiAgICAgZDFlYjhlODk3NjcxZGNkNi4yOTFiMTNkZTBhN2QyNWU1LjEzYzQxNWIwM2MxYWM2NWEuNzg3M2FjOTI5Y2I2NjUzMwogICAgIDZlODRhNmM4ZjFhNWE3Y2EuZWY0YjVkYjE4MzQ5Y2Q3OC4xMDM4Zjk0NzY2ZGZiNTRmLmMyMDA1OTAzYjA3ZTUwYjUKICAgICAzYzg2ZTBmNDU2ZDE2MzY0Ci1WQUVTRU5DTEFTVChtZW0pCitWTU9WTFBTXzEyOF9YTU1fTTY0KG1lbSkKICAgYmVmb3JlCiAgICAgYzRkM2JkNTJhOWJkNTg2Zi41MjYwNjY2OGMyMWU5NmJkLjE1OWI4MDNiZGM2OGI5MGYuNjYwOWM2NDlkOTY0ZWJhZAogICAgIDM0YjE2YzA3YzY0ZWViZmYuZDdjYmM5ZDU4NjY4ZTQ1Yy43NWQ3Zjc2NzMxZTRhNmQ3LjZmODM3ODIyMzAzNGEyMjEKQEAgLTQxODQyLDEzICs0MTg0MiwxMyBAQAogICAgIDQwNTMzMTJhY2M4Y2RmNjUuMzk3ZDY5YzY1NWEwOTA0ZC41NzQyZDE1NDNjMjk3MmE5LjBkYTE3YjA5ZmJlNjg1ZjkKICAgICA1YWRkYzVmMGE4ZTAyOWI2CiAgIGFmdGVyCi0gICAgYzRkM2JkNTJhOWJkNTg2Zi41MjYwNjY2OGMyMWU5NmJkLjE1OWI4MDNiZGM2OGI5MGYuNjYwOWM2NDlkOTY0ZWJhZAorICAgIGM0ZDNiZDUyYTliZDU4NmYuNTI2MDY2NjhjMjFlOTZiZC4xNTliODAzYmRjNjhiOTBmLjg4ZjIwYjNlMDdkYjE2NTYKICAgICAzNGIxNmMwN2M2NGVlYmZmLmQ3Y2JjOWQ1ODY2OGU0NWMuNzVkN2Y3NjczMWU0YTZkNy42ZjgzNzgyMjMwMzRhMjIxCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQyNzdiYWJlNzQ3MGQxMDEuNjIwN2UyZGE0NDBkNTc1MAorICAgIDZhZWQ2YTAwYzg4ZmRhNDMuNWIxMGNjN2JkODEwY2Y1My5lZGNiM2QyMDlkY2M0ZmZjLjg4ZjIwYjNlMDdkYjE2NTYKICAgICA0MDUzMzEyYWNjOGNkZjY1LjM5N2Q2OWM2NTVhMDkwNGQuNTc0MmQxNTQzYzI5NzJhOS4wZGExN2IwOWZiZTY4NWY5CiAgICAgNWFkZGM1ZjBhOGUwMjliNgogCi1WQUVTRU5DTEFTVChyZWcpCitWTU9WTFBTXzEyOF9YTU1fTTY0KHJlZykKICAgYmVmb3JlCiAgICAgY2JmM2U0NWRhOTU2M2YzOC45M2FmM2Y2ZmVkNTFiNzkyLmNjNWM5ZTIzOThhNzY2ZjcuOTAwYTJjZWUyYjA5YzkwYgogICAgIGJjMmRkNGJlOWFkMjAzMmMuNDBjZDEwYmQ0OGViMWRmNS43MmZhNjZmYzNlYWU4YmZkLjc1ZWRjYmRhODY3NzEwNGUKQEAgLTQxODU2LDEyICs0MTg1NiwxMiBAQAogICAgIDhlM2YxODA4YmYxMjgzMTguMTM3ZWU3MjExYWNjODcwZi42MmEzOWZkNzIxZjJiNWNiLmFlMzdjNzU5ZWQyZTYyMjQKICAgICBiYzM2MWJjMzMyOGZlNDExCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM3ZjY3NzBmN2ZiNjBmNWUuYTQ5NTE2NTIyODliMWFiMgorICAgIGNiZjNlNDVkYTk1NjNmMzguOTNhZjNmNmZlZDUxYjc5Mi5jYzVjOWUyMzk4YTc2NmY3LjkwMGEyY2VlMmIwOWM5MGIKICAgICBiYzJkZDRiZTlhZDIwMzJjLjQwY2QxMGJkNDhlYjFkZjUuNzJmYTY2ZmMzZWFlOGJmZC43NWVkY2JkYTg2NzcxMDRlCiAgICAgODlkODkxN2QxOGUzYjAzZC4yMTc4MWVmZmY4NjVjZmJiLjg1YTNiZGJmZTI0MzNjMGEuZTBiODJiMDU2ODdmMDU5ZAogICAgIDhlM2YxODA4YmYxMjgzMTguMTM3ZWU3MjExYWNjODcwZi42MmEzOWZkNzIxZjJiNWNiLmFlMzdjNzU5ZWQyZTYyMjQKICAgICBiYzM2MWJjMzMyOGZlNDExCi1WQUVTRU5DTEFTVChtZW0pCitWTU9WTFBTXzEyOF9YTU1fTTY0KG1lbSkKICAgYmVmb3JlCiAgICAgZTQ4MGE0MzA1MmFmNDc4ZC4yNmIwNjNjYTI5ZWRiODY5LmYzYTllNTBmYzkyYjAxMWUuNjY0NjA5YWY5NjQ1MzJlYgogICAgIDAzZTNkYzhiNmE5OTQ2YzcuYWY3NTcwMmZmNWZmOGFkYi45YmM2OTZiNTIyOGVmYjE0LmViZDdmNmI1ZGRjYWVlMTcKQEAgLTQxODY5LDEzICs0MTg2OSwxMyBAQAogICAgIDk2MjA0ZWJhZjBmYzBiMjAuMDEyZmJlOTIxZGY5ZjlkNC5iNjA2ZmZkOTNmOTE1YTYzLmVjZjc0OWY4NTQ5ODE1NDEKICAgICAxZjFkYTgwZWJiZjlmODk4CiAgIGFmdGVyCi0gICAgZTQ4MGE0MzA1MmFmNDc4ZC4yNmIwNjNjYTI5ZWRiODY5LmYzYTllNTBmYzkyYjAxMWUuNjY0NjA5YWY5NjQ1MzJlYgorICAgIGU0ODBhNDMwNTJhZjQ3OGQuMjZiMDYzY2EyOWVkYjg2OS5mM2E5ZTUwZmM5MmIwMTFlLjRlYTM2MjU0OTMwZDI2ZmEKICAgICAwM2UzZGM4YjZhOTk0NmM3LmFmNzU3MDJmZjVmZjhhZGIuOWJjNjk2YjUyMjhlZmIxNC5lYmQ3ZjZiNWRkY2FlZTE3Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwYTdjZGRhMjA1ZjkxZTQuYTdmMjA2N2E4MjVjNzAxYgorICAgIGY1Mjk0MWJmOTU1OTllZTkuODRkYjNhYTNiZGQ0MzcxYS5lOGExNzZmZjQwMDEyZjFjLjRlYTM2MjU0OTMwZDI2ZmEKICAgICA5NjIwNGViYWYwZmMwYjIwLjAxMmZiZTkyMWRmOWY5ZDQuYjYwNmZmZDkzZjkxNWE2My5lY2Y3NDlmODU0OTgxNTQxCiAgICAgMWYxZGE4MGViYmY5Zjg5OAogCi1WQUVTRU5DTEFTVChyZWcpCitWTU9WTFBTXzEyOF9YTU1fTTY0KHJlZykKICAgYmVmb3JlCiAgICAgNDQ2Mjc5MDA2NGJjMGNhYS5jMjkyODA2Nzk2OGM0ODk3LjgyYmJmNjY4YjJmOTBjYjMuZTFjMGFmMmYzYzQ5MzgxNAogICAgIGI3MTFiYTNiZWM2YjhhMjQuNTY0YjUxYjJhNDE4MTI3Yi42MmNiZTA5MjE3NjFhZTYzLjQ1OWQwMWVlNTMzNjg0NWMKQEAgLTQxODgzLDEyICs0MTg4MywxMiBAQAogICAgIGY4ZTE3YTNkMDdjM2JiZmUuMjFjN2M1ZDI2NjRkM2QzOC5iNGFiYjg4ZWMyOTY4YWU5LjI4ZWI3YjUzM2NkYzU5NjAKICAgICA1ZmY1OWNkMjQ3YWU1OTc0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBmZjMyODM1ODZiOWY4NmEuNTM3ODk1MjgzNDhjODcyZAorICAgIDQ0NjI3OTAwNjRiYzBjYWEuYzI5MjgwNjc5NjhjNDg5Ny44MmJiZjY2OGIyZjkwY2IzLmUxYzBhZjJmM2M0OTM4MTQKICAgICBiNzExYmEzYmVjNmI4YTI0LjU2NGI1MWIyYTQxODEyN2IuNjJjYmUwOTIxNzYxYWU2My40NTlkMDFlZTUzMzY4NDVjCiAgICAgZDU3ODY3MmNlZjk0YjFiMS4yYzE5M2Y4NzM1YTkyNWY3LmZmYWQ3NzdhZThiYzE5OTEuYmU2NzcxMDA5ZTYzZmI2NwogICAgIGY4ZTE3YTNkMDdjM2JiZmUuMjFjN2M1ZDI2NjRkM2QzOC5iNGFiYjg4ZWMyOTY4YWU5LjI4ZWI3YjUzM2NkYzU5NjAKICAgICA1ZmY1OWNkMjQ3YWU1OTc0Ci1WQUVTRU5DTEFTVChtZW0pCitWTU9WTFBTXzEyOF9YTU1fTTY0KG1lbSkKICAgYmVmb3JlCiAgICAgM2Y1MTRlNjlkYmU0YjljZS43ZDk5ZjFkY2QzODJlNWI3LjExMjA1ZjdmNTIwZjE1NmEuZGMxMzlkMzg0MTdjM2MxNgogICAgIGE0Y2IwZjAzMTU4YTMzOWIuYzBlZGM2NzRlZDYwNmE4Ny5kOGYxODk3YjE1ZmM2YWI4LmQ1MmYyNGU2MDBmOTZjYzUKQEAgLTQxODk2LDEzICs0MTg5NiwxMyBAQAogICAgIDZkNDhhY2Y1ZTk1ODY3M2QuZjA5MzgwM2U3Y2EyNzkxZS41YTJiN2YwYzkzODQ3YjVhLmE2YjYwNWZiYjBlODM2NTgKICAgICAzNmI4NTczYWQ4NzM0ODk0CiAgIGFmdGVyCi0gICAgM2Y1MTRlNjlkYmU0YjljZS43ZDk5ZjFkY2QzODJlNWI3LjExMjA1ZjdmNTIwZjE1NmEuZGMxMzlkMzg0MTdjM2MxNgorICAgIDNmNTE0ZTY5ZGJlNGI5Y2UuN2Q5OWYxZGNkMzgyZTViNy4xMTIwNWY3ZjUyMGYxNTZhLmY5NGM0ODAzOWM5OTU2YTIKICAgICBhNGNiMGYwMzE1OGEzMzliLmMwZWRjNjc0ZWQ2MDZhODcuZDhmMTg5N2IxNWZjNmFiOC5kNTJmMjRlNjAwZjk2Y2M1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ4MzUwZjVlNTE5NmIyMDYuYmZiMjlmYjYyMGNjMGFiMAorICAgIDZhMmU1YjhlMTBhZDgzMDcuMWQyNmY3NzBmMWU2ODgxYi41MTA2YzBiMGNkMWZmODRlLmY5NGM0ODAzOWM5OTU2YTIKICAgICA2ZDQ4YWNmNWU5NTg2NzNkLmYwOTM4MDNlN2NhMjc5MWUuNWEyYjdmMGM5Mzg0N2I1YS5hNmI2MDVmYmIwZTgzNjU4CiAgICAgMzZiODU3M2FkODczNDg5NAogCi1WQUVTREVDKHJlZykKK1ZSQ1BTU18xMjgocmVnKQogICBiZWZvcmUKICAgICAwN2EwM2IyY2IxYzZjNzAxLjg5ZTM4MDI1YmI5Nzk5NmEuOTU3ZjViNDkyOTFmN2EzZC5jZTJjNDI3OTg1MzhhZTA2CiAgICAgNzNiOGFjM2RkNjZiZjA0Yy45YWNjNTIwOGEzNzdkNWI5LjY4MzU4NmZlOTRlOWM2MjQuODlkNTg1ZTViZTQ2NGU3ZQpAQCAtNDE5MTAsMTIgKzQxOTEwLDEyIEBACiAgICAgOTBhYzI1NmM3N2UwMmUyYS4wYWI3ZTA5YjIyNDc1ZjcwLjA4MzNiOTExMTc5NjMyZjguNDQ0ZTdjNjc3OGExYzQ4NQogICAgIGZiYjYyODU1MmYwNjEyNmMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNmViZTgyOGJkMTlhYzcxMC45YjcwMzcxNmUwZmQxYzU3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjY4MzU4NmZlOTRlOWM2MjQuODlkNTg1ZTUyMzMwMTgwMAogICAgIDczYjhhYzNkZDY2YmYwNGMuOWFjYzUyMDhhMzc3ZDViOS42ODM1ODZmZTk0ZTljNjI0Ljg5ZDU4NWU1YmU0NjRlN2UKICAgICBkODRlYTZkOWU0ZjBmZTIwLjdjY2Y5ZThiYmMwM2Q5NTcuYzUwM2ZjYzc1YjhkOWE3ZS42N2YxYzUzYjViYmExN2VmCiAgICAgOTBhYzI1NmM3N2UwMmUyYS4wYWI3ZTA5YjIyNDc1ZjcwLjA4MzNiOTExMTc5NjMyZjguNDQ0ZTdjNjc3OGExYzQ4NQogICAgIGZiYjYyODU1MmYwNjEyNmMKLVZBRVNERUMobWVtKQorVlJDUFNTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDZhZjY0NGYxOWZmNWJkY2YuZjgxZjI1NjMyOWM4YmQxNi4yMjUyOTUyMmYyNTAyNDJmLjhkMTJiOTQ4NjY5MWNhM2QKICAgICA2Y2RhNGQyN2UyN2I4MGRhLjZkZjJhMzI4OTkzM2U0OGYuOWY2YTM3MGU0ODI5ZTRjMC5hZmVjZjlkOWU0MDg5ZGZhCkBAIC00MTkyNSwxMSArNDE5MjUsMTEgQEAKICAgYWZ0ZXIKICAgICA2YWY2NDRmMTlmZjViZGNmLmY4MWYyNTYzMjljOGJkMTYuMjI1Mjk1MjJmMjUwMjQyZi44ZDEyYjk0ODY2OTFjYTNkCiAgICAgNmNkYTRkMjdlMjdiODBkYS42ZGYyYTMyODk5MzNlNDhmLjlmNmEzNzBlNDgyOWU0YzAuYWZlY2Y5ZDllNDA4OWRmYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iYzAyYTM4ZThhMDgwZTgyLjc1NzdkOGE4YzkzMDM1M2QKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWY2YTM3MGU0ODI5ZTRjMC5hZmVjZjlkOTE4NjBjODAwCiAgICAgOThiZDEyMTI1MjdhNDI5Yi5lOWVjMDZkMTFkYzNmMWRhLjM3NDUzN2MxZjM3YzQzMGMuM2ZjMDI2YjVkYWEwZTc4YgogICAgIDY0NTIwYmQ5OGJkOGQ2YjcKIAotVkFFU0RFQyhyZWcpCitWUkNQU1NfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOTYwZjFmMDZkYmJkZjAwYS43YjU0Yzc5ZWI3MGFiN2E4LmFhYWJlMzhjNjkwMDRlMDQuMGI5ZjhkNjE4MTBlNWIxZAogICAgIDMzNDM1ZmE4NjVkYzcyMzEuNjBiZjU4NzU1ZjYxMzYwZS5lNmZhMmVjNWUzZjEzNDZjLmIzYTdjMDE1MDVhMDVlYjEKQEAgLTQxOTM3LDEyICs0MTkzNywxMiBAQAogICAgIDFhNDA1MGZiOThmNTlkYTkuYTQ0MWZmYjBlYjkzM2Q5NC40MjdiZmI2N2NhMWI4ZmE0LmYzZjBiMjZhNWNmNjEzMTEKICAgICA0M2M5NjllMjY4ZDIzZTM1CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmFhYjg5N2MxNzM3NDc2M2MuMWI5MDQ1ODRlMTI3MDU2MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNmZhMmVjNWUzZjEzNDZjLmIzYTdjMDE1ZTRhYjg4MDAKICAgICAzMzQzNWZhODY1ZGM3MjMxLjYwYmY1ODc1NWY2MTM2MGUuZTZmYTJlYzVlM2YxMzQ2Yy5iM2E3YzAxNTA1YTA1ZWIxCiAgICAgOTYzYWM2MmJjNWMwOThkNy4yNWNhNDI4MTY3OGI3OWY5LmZhMjZlMmVhMjQyMGUxYmQuMGQyODRlY2E5YTNmMDdmNAogICAgIDFhNDA1MGZiOThmNTlkYTkuYTQ0MWZmYjBlYjkzM2Q5NC40MjdiZmI2N2NhMWI4ZmE0LmYzZjBiMjZhNWNmNjEzMTEKICAgICA0M2M5NjllMjY4ZDIzZTM1Ci1WQUVTREVDKG1lbSkKK1ZSQ1BTU18xMjgobWVtKQogICBiZWZvcmUKICAgICBkNzgwZWQxZWQ5ZGQ0MzhjLjFkYTFmOTg0NzkwN2JlNTMuYmJmMDBkZWQwNjg1M2QwYi4xYTQ0NzVhNjcxNmU3YmNkCiAgICAgOGRlMWJjMGJjYzI1ZGY0MS5mOWE4YmUzMzA1ODMzNzgwLjQ0YTNlNzI0ZDU2ZDM3OGMuZGVjZjRjMTRiNGEzZTBlMwpAQCAtNDE5NTIsMTEgKzQxOTUyLDExIEBACiAgIGFmdGVyCiAgICAgZDc4MGVkMWVkOWRkNDM4Yy4xZGExZjk4NDc5MDdiZTUzLmJiZjAwZGVkMDY4NTNkMGIuMWE0NDc1YTY3MTZlN2JjZAogICAgIDhkZTFiYzBiY2MyNWRmNDEuZjlhOGJlMzMwNTgzMzc4MC40NGEzZTcyNGQ1NmQzNzhjLmRlY2Y0YzE0YjRhM2UwZTMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZmZjNjNjMjM5MThmYzUzNC5lMTY1N2U4OGZjNGU2NWFjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQ0YTNlNzI0ZDU2ZDM3OGMuZGVjZjRjMTQwZDg5NjgwMAogICAgIGNhZDEyOGE0YTY5YmNjNzcuYjBkYzg4YWY4Y2U3MjAxNi4yMDQzZjAzMGZjNTEwMzU2LjlhNTYwMzJlN2ZlOTA4ODcKICAgICA0YWViZGFiMjQwMTE0MzZlCiAKLVZBRVNERUMocmVnKQorVlJDUFNTXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIDU2NzFmZTE0MGQ0Y2U3ZjIuMGJmN2JkMjljNWUwOTQ0Zi40MzlmODc1NGJmZTcwOGQ2LjJhY2ExN2RkOGQ2NTRmZjgKICAgICAxYTM0NmNjMjgyMjYzMWMwLmRjZjg4ZDBlZDY5MWUzMzcuMWYzYTkwY2YwZDgwMzhjYS4xNzg0ZmEzNTQxOWU4MzUzCkBAIC00MTk2NCwxMiArNDE5NjQsMTIgQEAKICAgICAzYWEwMTJhZmQ2ZTlhN2U5LmExYjZjYmE4M2I2OTA1ZTIuMjYyNGI0ZjQ2N2FmNWVmYy4wYmMzZTU5Mjg1YjU5NmUyCiAgICAgYzllMWU0NmY0YmFhZWM2ZQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMzgwYTljNGI2NDliMzA0LjQ2MTFhY2ZjY2Q2ZDQzNjgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWYzYTkwY2YwZDgwMzhjYS4xNzg0ZmEzNTQ5ZWIyODAwCiAgICAgMWEzNDZjYzI4MjI2MzFjMC5kY2Y4OGQwZWQ2OTFlMzM3LjFmM2E5MGNmMGQ4MDM4Y2EuMTc4NGZhMzU0MTllODM1MwogICAgIGYyODAxZTI3M2MyYzVkODQuMWE5ZTEzM2ZmNGJiNzU1OS5hMmY4YTE4YjExM2ZlYjlkLmM0M2QxNTIyMzUwYjVjOTIKICAgICAzYWEwMTJhZmQ2ZTlhN2U5LmExYjZjYmE4M2I2OTA1ZTIuMjYyNGI0ZjQ2N2FmNWVmYy4wYmMzZTU5Mjg1YjU5NmUyCiAgICAgYzllMWU0NmY0YmFhZWM2ZQotVkFFU0RFQyhtZW0pCitWUkNQU1NfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZGE2MjkwYTdhNmY1MWI2My40ZGUxNDRjNmVkZWE0YTljLjRlMGMzMTM1YzhhODUxZmQuMDgwY2M4NzZhYzVjY2Q5MgogICAgIDFhMTM2NDI1YWZhM2RmZWQuODk4ZmFlZDgxY2JhODM0OC5mYjZjYzFkMmI3ODMxM2Q3LmE1ZmFkNjdkN2NkMzc0MGMKQEAgLTQxOTc5LDExICs0MTk3OSwxMSBAQAogICBhZnRlcgogICAgIGRhNjI5MGE3YTZmNTFiNjMuNGRlMTQ0YzZlZGVhNGE5Yy40ZTBjMzEzNWM4YTg1MWZkLjA4MGNjODc2YWM1Y2NkOTIKICAgICAxYTEzNjQyNWFmYTNkZmVkLjg5OGZhZWQ4MWNiYTgzNDguZmI2Y2MxZDJiNzgzMTNkNy5hNWZhZDY3ZDdjZDM3NDBjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjYwNmM1N2Y1NWFhMWViNTEuYjQ3YTFjMjliYzZmNDEwOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYjZjYzFkMmI3ODMxM2Q3LmE1ZmFkNjdkZDI5NDY4MDAKICAgICA5ODM1NzVhMjQxNTUxNDZlLmU5NjIxZTlkMzRmN2E2M2UuYzg3OTUxZWQyODNlZWE3Ni43YjFiZDRjYTJhNGM1ODViCiAgICAgNmRlNmJjZTk0MTY3MGU4OAogCi1WQUVTREVDTEFTVChyZWcpCitWUkNQUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODllNzhmM2M1MzdiZWI0OC44ZDNlYWE3YjAxNzFmZWJkLmM0MWYxYzI5NTU3ZDA4ZGYuYTBiZTQ4NDJlMzM2Nzk5NAogICAgIDJjNmM0YTMxZmExNTJkNDguMjFhNmY3NDllMTIwNmQ1MS4zODc4NDQ1ZmZlMDJmMDJhLmU5M2Q1OTU4NzBmYTZkMjAKQEAgLTQxOTkxLDEyICs0MTk5MSwxMiBAQAogICAgIDcyMmQ2NGFkN2UwN2NhYjcuOTZjN2M5Nzc2ZjY1YzhmNy41NzMyZmU3ZTVhM2I0MTZjLjNlMTliYjc0NmQxNzdiMzQKICAgICAwMjBlMDM1MTE2ODkwYzE0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjcwMzA4NzI5YmQwNzhjNWYuNzMwM2IyNDQwMmZjMDMxMwotICAgIDJjNmM0YTMxZmExNTJkNDguMjFhNmY3NDllMTIwNmQ1MS4zODc4NDQ1ZmZlMDJmMDJhLmU5M2Q1OTU4NzBmYTZkMjAKKyAgICA4OWU3OGYzYzUzN2JlYjQ4LjhkM2VhYTdiMDE3MWZlYmQuYzQxZjFjMjk1NTdkMDhkZi5hMGJlNDg0MmUzMzY3OTk0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmRlMmViMDAwYjNkZTAwMDAuN2ZjMjAxMWE5NTU5YjAwMAogICAgIGIwYmZlNzMyZDViZjBlMzQuMzAzYmQ4ZjlmYzZlMWM1Ni5hMGJiOTBhZGNiMTM5OWNhLjdmYzIwMTFhZTk5Njg1NDcKICAgICA3MjJkNjRhZDdlMDdjYWI3Ljk2YzdjOTc3NmY2NWM4ZjcuNTczMmZlN2U1YTNiNDE2Yy4zZTE5YmI3NDZkMTc3YjM0CiAgICAgMDIwZTAzNTExNjg5MGMxNAotVkFFU0RFQ0xBU1QobWVtKQorVlJDUFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGE3NmM1NTlmMDBmNmY0MTMuY2UwMmJjMGQ5MTc5OWY3ZS4yZjE3NDdiMDU1MTMyZDYxLmJiMmE4OTNlNDQwNjIyYmIKICAgICAwOTAxMmQ0YTQ3NmNlZTVjLjIwOGFlYmJlYWJhMGM3MzQuZDZmN2NkOGVjYTgzMDdiZi4yNmVmMmQ1ODI3MDE3ODY0CkBAIC00MjAwNSwxMiArNDIwMDUsMTIgQEAKICAgICAzMTAyODkwNGJiODU5NzMxCiAgIGFmdGVyCiAgICAgYTc2YzU1OWYwMGY2ZjQxMy5jZTAyYmMwZDkxNzk5ZjdlLjJmMTc0N2IwNTUxMzJkNjEuYmIyYTg5M2U0NDA2MjJiYgotICAgIDA5MDEyZDRhNDc2Y2VlNWMuMjA4YWViYmVhYmEwYzczNC5kNmY3Y2Q4ZWNhODMwN2JmLjI2ZWYyZDU4MjcwMTc4NjQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTI3NjdmNTYxZjFhZDc5NS5hYjBjNDg2MDY3NDdhMjM3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRmZDg5ODAwMjlkZWIwMDAuYzNjMDI4MDAzYWY0NDAwMAorICAgIDA0OTcwODNjMDlmN2I3MWIuYzQxMGVlMmM2NzA4N2U4Ni42OTMzZDdmZmViYzIxMTNlLmY2Y2NlNjNhOWZiNzgxMTMKICAgICA3M2ZiNjE2MjVmYTEwYjdlLjE2ZTJiZmMzNjEzZDAyMjAuYzM5NmUxZWVkNGRiMDgwYS44NTBmYjE0ZjQ2YjQ3NzczCiAgICAgMzEwMjg5MDRiYjg1OTczMQogCi1WQUVTREVDTEFTVChyZWcpCitWUkNQUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgNTRmMjZhYzM5OGI1MWNmOS4zNGY5YjRhODY3NzhhNWFmLjcyNGE1Y2VmMzdjYzhkYWQuYzBlZTY3NDY5ZmRhYTg0ZQogICAgIDRiMmI1MGY5NzlkMDQ0NzYuMjI1YzdkZmIzZDg4NDNkYS4zNDk1YzAxYzgyNDA1Y2RhLjNjMDVlNmY1NmJjY2FjMzYKQEAgLTQyMDE4LDEyICs0MjAxOCwxMiBAQAogICAgIDI2YTgxYzdiYjlmOTY3NDEuZjQ4NTYzNzRjMTdmNzVkMS41OTA0Y2UyYWVkMDhiNWMyLjIwYTNiYzA1NzBiN2QzYTYKICAgICA0MWMyMGMzZmUyYzc2ZDg0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmIyMzk0ZjczYzgwMTVlMjguMDMwNTczOTEzZmNlY2VkNAotICAgIDRiMmI1MGY5NzlkMDQ0NzYuMjI1YzdkZmIzZDg4NDNkYS4zNDk1YzAxYzgyNDA1Y2RhLjNjMDVlNmY1NmJjY2FjMzYKKyAgICA1NGYyNmFjMzk4YjUxY2Y5LjM0ZjliNGE4Njc3OGE1YWYuNzI0YTVjZWYzN2NjOGRhZC5jMGVlNjc0NjlmZGFhODRlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM3ZTNiODAwOWVjNGEwMDAuNmM0MjEwMDAyYzJkODgwMAogICAgIDczZjkzNzEzZmI2MzQ5NTQuMTlmMjM5NDVmY2RiOWYyYy5iNzBmZThiN2UwMjZhYjUyLjEyYThkOWU2NTJiY2QxZjAKICAgICAyNmE4MWM3YmI5Zjk2NzQxLmY0ODU2Mzc0YzE3Zjc1ZDEuNTkwNGNlMmFlZDA4YjVjMi4yMGEzYmMwNTcwYjdkM2E2CiAgICAgNDFjMjBjM2ZlMmM3NmQ4NAotVkFFU0RFQ0xBU1QobWVtKQorVlJDUFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDUwZDE0MzdlYzNmYTVkYjcuYzE4NGZhOWY1MDFlZGNlNi45MWUzNzc3M2E3ODA4M2Y0Ljc1YzA3MGUzNDQ3NWI3ZDYKICAgICAyYjliZGZhZjMwNWM1ZDZiLmExZDhjZGVhNWI1ZmUyZjIuY2JkNmYxMmVjYWU4ODNjMi42NzhlYzk0ZDgxZjZlZDM5CkBAIC00MjAzMiwxMiArNDIwMzIsMTIgQEAKICAgICBkODYzZjdlOGI5NzMxZGY4CiAgIGFmdGVyCiAgICAgNTBkMTQzN2VjM2ZhNWRiNy5jMTg0ZmE5ZjUwMWVkY2U2LjkxZTM3NzczYTc4MDgzZjQuNzVjMDcwZTM0NDc1YjdkNgotICAgIDJiOWJkZmFmMzA1YzVkNmIuYTFkOGNkZWE1YjVmZTJmMi5jYmQ2ZjEyZWNhZTg4M2MyLjY3OGVjOTRkODFmNmVkMzkKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwNTM2YjBmZTU2OTE1Yy42NThhMjM4NjRlYmQ5YzhkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVkMTAxMDAwZDc3ZWYwMDAuMDkyYTQwMDAzYTg1NTgwMAorICAgIGFkZWU1YmJmNDRmNzI5Y2IuMjBmMTkxYzc3NzQ3YjYwZi43ZDJiNGQ5MDQ3YzUzMjY3LjhhYmJkNWQzNDExOTkzOTcKICAgICBiMTk0MzM5ODFjZDk3ZjA0LjliMWM0M2E0M2Y2Mjk0ZWEuODVhZTA4ODgzYTIzNGIwZS4zYzk0OTFlMzIwNjllNDllCiAgICAgZDg2M2Y3ZThiOTczMWRmOAogCi1WQUVTREVDTEFTVChyZWcpCitWUkNQUFNfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYjk3NTA1NGVhOGMyN2E1MS4xNTVhZTQyOGQzMGUxOTQyLjZlYTNkZWVjNTAzZGI3MmUuYmQyYTlkZmZiZDBkOGNlNAogICAgIDNkMTViNjgxOGFlMjM2NTYuYjMwY2U4NWE4NWExYjRiMC5mNWQyNWUwYjQ1NjM1Yzg4LjAzNmQ4OGUyZWY4ZmFmMTQKQEAgLTQyMDQ1LDEyICs0MjA0NSwxMiBAQAogICAgIDlhMzNmMmZmOTVjNmJlMTMuMTE2M2RlNTQ0ZDExZGNjZS44ZjVkZmQ3ZjRjYzExYjJjLjI1NzM1MDlkY2E4YzhkMzQKICAgICBiOWNmMjY0Y2FjMWZjMDdjCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmVkNDQxOGYwY2QxMzI4MzQuNTkzZTVlMjYzZmI1ZWQ1MAotICAgIDNkMTViNjgxOGFlMjM2NTYuYjMwY2U4NWE4NWExYjRiMC5mNWQyNWUwYjQ1NjM1Yzg4LjAzNmQ4OGUyZWY4ZmFmMTQKKyAgICBiOTc1MDU0ZWE4YzI3YTUxLjE1NWFlNDI4ZDMwZTE5NDIuNmVhM2RlZWM1MDNkYjcyZS5iZDJhOWRmZmJkMGQ4Y2U0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYyMDQ0ODAwYzQ5MWQwMDAuNGRhOTg4MDA5NDM0OTAwMAogICAgIGJmOTEwN2VlZmE1ZjhlYjMuNjk3NmJkMWE0ZjllMGI3Yi44Y2Y3YmY2ZWJhNjBiZmEzLjMxNDE0NTFkZWFiNTcwY2IKICAgICA5YTMzZjJmZjk1YzZiZTEzLjExNjNkZTU0NGQxMWRjY2UuOGY1ZGZkN2Y0Y2MxMWIyYy4yNTczNTA5ZGNhOGM4ZDM0CiAgICAgYjljZjI2NGNhYzFmYzA3YwotVkFFU0RFQ0xBU1QobWVtKQorVlJDUFBTXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIGNiMjE0MjE4YWI3YmM2Y2YuMmM0OTc1MjFmNmEzMDIyMy44OGExYzhmNDlhMDdlMWQ2LjVhNGYxNWFiOTcxMWFlY2YKICAgICAzNTM1MjBlYmU0YWE1YTU4LmNmMWQ4YmMxYmE4MDk1OGYuYWJmYWY1ZTY1MjhiZDZiZS40OTFhMDI1ZjM2ZGNiMTM3CkBAIC00MjA1OSwxMiArNDIwNTksMTIgQEAKICAgICA4Njg5YTBkYzI1OWJjMGM5CiAgIGFmdGVyCiAgICAgY2IyMTQyMThhYjdiYzZjZi4yYzQ5NzUyMWY2YTMwMjIzLjg4YTFjOGY0OWEwN2UxZDYuNWE0ZjE1YWI5NzExYWVjZgotICAgIDM1MzUyMGViZTRhYTVhNTguY2YxZDhiYzFiYTgwOTU4Zi5hYmZhZjVlNjUyOGJkNmJlLjQ5MWEwMjVmMzZkY2IxMzcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWNlMjgyMDE5NDk0OGI4Yy4xMjViNDMyZjMzZGZkOTdkCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmY2NGE4ODAwZTRmMTE4MDAuMjQ5ZTM4MDBlN2UwZjgwMAorICAgIGQ0ZDYzZGIzNzJiYjNhNDQuZTFmYzMwNGE3Y2ViYjQwMi41NDNiZTMxNjkyYWE3OWIzLmI4MGFjMDA1YzVhZjYzMTEKICAgICA4NGQyMTM1YjcxYjcyMGJmLmJjMzI2MTI3ZDg2ZjliMjguNjAzMDBkNzA3NjZmODRlMS4wMzZiNGIwYmUxMTVmZTA4CiAgICAgODY4OWEwZGMyNTliYzBjOQogCi1WQUVTSU1DKHJlZykKK1ZSQ1BQU18yNTYocmVnKQogICBiZWZvcmUKICAgICA5ZGFmYmFlNDJlY2NlMmZmLjIyZjMyMGNmZmVhY2M4ZjQuYmQwYTE4YzY2Yzk5ODVhZi5hY2E1ZWZlMTE4ZTZiNDczCiAgICAgYTQyYjk0OGY5ODM0YTM1OC44ODA2ZGZmYjM1YTVmMDBmLjQxZDI1MzkyZDFmNGFmNDEuMTI2NjA2NTM5NzFiYzU5NgpAQCAtNDIwNzIsMTIgKzQyMDcyLDEyIEBACiAgICAgZjI1MDdlN2VmY2RhZWQxZC4xZjMyNjQyYjBmZDVhYmFhLjNkNWQ0MjYxODQ2ZWIzMzcuOWZmYWJmZWU5NmYxNzgzZAogICAgIDdlNjc1YWVmNGZhYTkzMWEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDIzNGFlMTRmZDgwZTFlYS4wMmY4ZjMyMDgzMGRkZTQxCi0gICAgYTQyYjk0OGY5ODM0YTM1OC44ODA2ZGZmYjM1YTVmMDBmLjQxZDI1MzkyZDFmNGFmNDEuMTI2NjA2NTM5NzFiYzU5NgorICAgIDlkYWZiYWU0MmVjY2UyZmYuMjJmMzIwY2ZmZWFjYzhmNC5iZDBhMThjNjZjOTk4NWFmLmFjYTVlZmUxMThlNmI0NzMKKyAgICA4N2E0ODgwMDgxOTJkMDAwLmViMTdkODAwNGQzYWUwMDAuZGMxYTg4MDBkOWU5NzgwMC4wZmFiYzAwMDcxZDJjODAwCiAgICAgZjc0NzJkNDlmZDVmM2Q3ZC45M2Q3Y2NjYjMxYWY1MjNlLmEyZDQwZGY3YTUwYzU1OGEuNmYzZWNjYjQwZDFiNzI3NQogICAgIGYyNTA3ZTdlZmNkYWVkMWQuMWYzMjY0MmIwZmQ1YWJhYS4zZDVkNDI2MTg0NmViMzM3LjlmZmFiZmVlOTZmMTc4M2QKICAgICA3ZTY3NWFlZjRmYWE5MzFhCi1WQUVTSU1DKG1lbSkKK1ZSQ1BQU18yNTYobWVtKQogICBiZWZvcmUKICAgICBlOTRmMTlhMjUzNTE3ZTM3LmYwOTI4NTlhMmUzMGVmZTIuMDhlMjIxMDhlOTIzYjc4Mi42ZmI5ZWYzYzA5YTUwNGY0CiAgICAgYmE3ZTc5ZjNiZWYyZjZjMS40ZjU5M2MwOTMyZWU3ZTc4LjJiYjU4MTRjZGVhNTMxZjAuOTIzNDBmZjVkMDNkODU2YwpAQCAtNDIwODYsMTIgKzQyMDg2LDEyIEBACiAgICAgM2Y1NmY5ODRjZGM2N2VmMgogICBhZnRlcgogICAgIGU5NGYxOWEyNTM1MTdlMzcuZjA5Mjg1OWEyZTMwZWZlMi4wOGUyMjEwOGU5MjNiNzgyLjZmYjllZjNjMDlhNTA0ZjQKLSAgICBiYTdlNzlmM2JlZjJmNmMxLjRmNTkzYzA5MzJlZTdlNzguMmJiNTgxNGNkZWE1MzFmMC45MjM0MGZmNWQwM2Q4NTZjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjJkMjk5OTVlMWE1OGExMWMuZDIwMTU4OGU1NjMzZTNkYQorICAgIDk1OWUzODAwMmI5YzcwMDAuOGU1ZmEwMDA1MGI5MzgwMC43NjEwZTgwMDk1YzgyODAwLjBmMzA0MDAwNzU0NjkwMDAKKyAgICBjZWMyZjVjZWFlOWFiN2UzLjZhZjFhMjM4YTE5ZmQ3OGMuNjI3NTAwZTUwODY4ZDYyMC4wMzFhOWVmNjc2YzM3MjRjCiAgICAgMDFlNjA5MWYzYzUzN2RjYS45Y2E1YjA5MTE5Y2YzNmNhLjhhZWYxOGJkODM3NzYyNDAuMWViNjk4YWM5NmMyMDYzZgogICAgIDNmNTZmOTg0Y2RjNjdlZjIKIAotVkFFU0lNQyhyZWcpCitWUkNQUFNfMjU2KHJlZykKICAgYmVmb3JlCiAgICAgYzI0NGJlZTliNzVjMTYxMS4yZmI1MzFkMzg2MmMwM2EyLjQzYzI2MzgyMzYwYWQ3ZGQuN2ZlZjQ2YzI2Y2RmOTA3OQogICAgIDA0Y2RlMjQ2ZWUwZjBhNDcuMzRmY2U5ZDRhODJlMDY5Ni5iYTk0Yjg3NjkzZGRmNTcyLjFkNDEwN2RmZGVhYjFlZmEKQEAgLTQyMDk5LDEyICs0MjA5OSwxMiBAQAogICAgIDMwZTAzNzlkYjlmZGY0YWEuMzIyMmZiNzFlMWUzNzM4NC44Nzg3MzUxNjdmNzk5YmQxLmMzMGEyZjExY2ZhMDQ0N2UKICAgICA4NDFhOGZmZTg2ZTE1NmRhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjhkZWNlOWMxOGVlNzU3ZGYuYWFiZTcyNDFlNjA3YTc3ZgotICAgIDA0Y2RlMjQ2ZWUwZjBhNDcuMzRmY2U5ZDRhODJlMDY5Ni5iYTk0Yjg3NjkzZGRmNTcyLjFkNDEwN2RmZGVhYjFlZmEKKyAgICBjMjQ0YmVlOWI3NWMxNjExLjJmYjUzMWQzODYyYzAzYTIuNDNjMjYzODIzNjBhZDdkZC43ZmVmNDZjMjZjZGY5MDc5CisgICAgMWZhZDAwMDA2ZDhhODAwMC45MjZmYzgwMGMxOGRiMDAwLjIyOGQ3MDAwYjExYTAwMDAuM2UzODQwMDA4ODBkNjAwMAogICAgIDVmM2Q2MTA5MTE2Yzk1NDEuZWM4OGFlMGZiZDY3NDJkMy41YzY3YWFkOGNkZDRjZDM1LjQwYjFkNjAwZjZlN2M1ZWQKICAgICAzMGUwMzc5ZGI5ZmRmNGFhLjMyMjJmYjcxZTFlMzczODQuODc4NzM1MTY3Zjc5OWJkMS5jMzBhMmYxMWNmYTA0NDdlCiAgICAgODQxYThmZmU4NmUxNTZkYQotVkFFU0lNQyhtZW0pCitWUkNQUFNfMjU2KG1lbSkKICAgYmVmb3JlCiAgICAgNWVhYjcwYjMzNmI2YjYyZC5kMzAxNjA2ZTg1NTE2MzJmLmU0OTk0Y2U0MzFhYzU0ZDYuOTU0MDU1OWI0NTVhOWFmMwogICAgIDJkOGE1MDFjZmMyYzIwYTMuYTRlZWQ5ZTgwZWYxMWU3Yy5kZGI4MWQ1NmM5ZDBhMmY1LmU0ZGUwN2QzYmMwMjA3NDYKQEAgLTQyMTEzLDEyICs0MjExMywxMiBAQAogICAgIGU3MGI1YmU2NWMxZjM5MjEKICAgYWZ0ZXIKICAgICA1ZWFiNzBiMzM2YjZiNjJkLmQzMDE2MDZlODU1MTYzMmYuZTQ5OTRjZTQzMWFjNTRkNi45NTQwNTU5YjQ1NWE5YWYzCi0gICAgMmQ4YTUwMWNmYzJjMjBhMy5hNGVlZDllODBlZjExZTdjLmRkYjgxZDU2YzlkMGEyZjUuZTRkZTA3ZDNiYzAyMDc0NgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NWFiNGM2NzhjOTlkN2RkLjY3NzM5MTllODgxZGJiNTgKKyAgICAyMDNmMTgwMDQ4MzM1ODAwLmFiZmQzODAwZjk5Yzc4MDAuOWE1NWM4MDA0ZDNlMjAwMC5lOWFhNjAwMDM5OTVlODAwCisgICAgY2Q4M2FhMjVmMzRlNTI2Ni5mZWYxOWQ3N2YyNmI2MDNjLmY5NGFlYWIyYzQ1YjE5MGMuY2VhYzQ2MmE3ZmZlMWU3NwogICAgIDE5NjFmYmJiMzgyODA2YTUuM2Y1N2E4ODhjZDRhNjYxYy4xNDFkMzBlNDNlNTc3NDQ4LmIwZjcwZTBkMmJkOTFiMzEKICAgICBlNzBiNWJlNjVjMWYzOTIxCiAKLVZBRVNJTUMocmVnKQorVlJDUFBTXzI1NihyZWcpCiAgIGJlZm9yZQogICAgIGNkMzQyYTIzYWM1ZGI1ZjMuZWZmMmJkYzhlNmM3Zjk4YS5jMjZjZjY4NTNhMWE2Y2M3LjA5ZmI2YWQ4NTRkMjcwZDQKICAgICBiZmJlNzUyZWJhMWVjYjUyLjJhMDA2ZTNhMTkzNmU3NDIuZTM3Yzg0ZGNkNjY4YWRlYS5iNmIxMTQ3YTIxZDhjOWRkCkBAIC00MjEyNiwxMiArNDIxMjYsMTIgQEAKICAgICAzODI0NzQ2MjdhNWFiMzY5LjNlYzc4YWZhODFiNWEyZDkuNmZiYzRkNDQwOGFjZDM0Ny5hNWQ0YTk3ODUyYjE4MTE1CiAgICAgOWVkYThjYWRlZTllNTg5YgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41NTVhZDM0YjdiODI5MmJmLmI1ODAzMGU0YmFmZTQ4MDkKLSAgICBiZmJlNzUyZWJhMWVjYjUyLjJhMDA2ZTNhMTkzNmU3NDIuZTM3Yzg0ZGNkNjY4YWRlYS5iNmIxMTQ3YTIxZDhjOWRkCisgICAgY2QzNDJhMjNhYzVkYjVmMy5lZmYyYmRjOGU2YzdmOThhLmMyNmNmNjg1M2ExYTZjYzcuMDlmYjZhZDg1NGQyNzBkNAorICAgIDY0MDVhMDAwNWYwOTQ4MDAuZDg5NmEwMDA5MDdjZjgwMC44MDAwMDAwMDQyMmIzMDAwLjg4ZWFhMDAwYmM4NmI4MDAKICAgICAxYWY1M2E3NTFmZWViNmViLmE2NTk4OWZjZWU4MThiZjguZmVkMzRkZjczY2JmNjYzMS5mNjBiYWFiNmMyNzMzYThlCiAgICAgMzgyNDc0NjI3YTVhYjM2OS4zZWM3OGFmYTgxYjVhMmQ5LjZmYmM0ZDQ0MDhhY2QzNDcuYTVkNGE5Nzg1MmIxODExNQogICAgIDllZGE4Y2FkZWU5ZTU4OWIKLVZBRVNJTUMobWVtKQorVlJDUFBTXzI1NihtZW0pCiAgIGJlZm9yZQogICAgIGJmZTdjZjNmYjE0NTdiNGYuNzY5ODIwNjM2NGVkZmU3OS5kMDE3ZWUyMGVkZGRlODExLjkxODU4MDJlZDdiYTJmZDgKICAgICBlMmM4ZWUxY2I4YjJhODVhLjMwOWQzOGUzN2IzM2QzYzcuMzYxNTJmNWE0ZTA2MTljYi5jMjc4ZTIyMTQ1NzViODkyCkBAIC00MjE0MCwxMiArNDIxNDAsMTIgQEAKICAgICA0MDRiZmQ2ODVjMmZhZjYzCiAgIGFmdGVyCiAgICAgYmZlN2NmM2ZiMTQ1N2I0Zi43Njk4MjA2MzY0ZWRmZTc5LmQwMTdlZTIwZWRkZGU4MTEuOTE4NTgwMmVkN2JhMmZkOAotICAgIGUyYzhlZTFjYjhiMmE4NWEuMzA5ZDM4ZTM3YjMzZDNjNy4zNjE1MmY1YTRlMDYxOWNiLmMyNzhlMjIxNDU3NWI4OTIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTIxZmJlM2FjMTdiNGQzZS5hZDJhZDNlZTIyZDVmNTk4CisgICAgYmYwZDYwMDBjZGE1ZjAwMC4wODU3NTgwMDFhMDliMDAwLmFlZDdiODAwOTExM2E4MDAuZWQ3NTY4MDBhNzMwMDgwMAorICAgIGU1NGE2NjJmMWVmMTk5ZWIuYzI3ZmJhNGU1YmI5NmRmZS40ZThjY2I5NGMxM2FmMDMzLjVkZTI3MDg5ZWM2YWE4MWYKICAgICBhMjM2YjE2M2ZmMGYwYjJjLjg5OGFhMTEwOWYwYTA5Y2IuZjI0YTNkYmE2MTg3MmE3Ny5iZDBmMjVkMjZiMjMzYjJiCiAgICAgNDA0YmZkNjg1YzJmYWY2MwogCi1WQUVTS0VZR0VOQVNTSVNUXzB4MDAocmVnKQorVlBTQURCV18xMjgocmVnKQogICBiZWZvcmUKICAgICA0MGUxZjRiNzViMTczZTczLmY3NWI0ZGE2NzgxN2I5NGEuZGYwYWU5OTVlNGIzZTNkOS4wMDE5MDFiODRiZjk4M2MxCiAgICAgMWIxZjA3MmIwNTY5MjUwNi5iZTg0YjVlM2E1MTU2MTcwLjIxNGE4ZTRhYzUzZTM3ZDUuNTJjNjk0N2I5YjliYjYzZApAQCAtNDIxNTMsMTIgKzQyMTUzLDEyIEBACiAgICAgY2ViZTZlMzNjODc5ZWE2OC4xNjEwZGFmYjg4MjU4OTg2LmQ5M2VlMWYwY2MzMDNiNDYuMzZlYTE0ZmNkYTlmOWQ3ZQogICAgIDdmZjlmOTkyMDExYWM5OWEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWU2MjQ2NWQ2MjQ2NWRlZS41NWI0YTRhM2I0YTRhMzU1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAxYjkuMDAwMDAwMDAwMDAwMDI1ZgogICAgIDFiMWYwNzJiMDU2OTI1MDYuYmU4NGI1ZTNhNTE1NjE3MC4yMTRhOGU0YWM1M2UzN2Q1LjUyYzY5NDdiOWI5YmI2M2QKICAgICAyYjRmMzEzMWY1YjA5ZmM5LmQ1N2M2NjA2YTExNmJkY2IuYWI5ODhkOTlkZTM5NDA2Yi5jNjFkNzFlZDZiNzk4MDE4CiAgICAgY2ViZTZlMzNjODc5ZWE2OC4xNjEwZGFmYjg4MjU4OTg2LmQ5M2VlMWYwY2MzMDNiNDYuMzZlYTE0ZmNkYTlmOWQ3ZQogICAgIDdmZjlmOTkyMDExYWM5OWEKLVZBRVNLRVlHRU5BU1NJU1RfMHgwMChtZW0pCitWUFNBREJXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDdlMTU5YzlkZmVmNWJmOTkuNWViOGJhOWYxOTRmNDA4ZS41ZTBkOGZhZTc3NGY4M2NlLjA3ODk4NmI5MmJhZTYzMTMKICAgICAwZDBjN2EwOGVkM2QzY2E2LjM5ODkxMWUwODRiZWRkZTcuOGEzZDAwMGM4YTlmNjVjZi45MWM1Nzg2Mjk2M2ZmNjdkCkBAIC00MjE2OCwxMSArNDIxNjgsMTEgQEAKICAgYWZ0ZXIKICAgICA3ZTE1OWM5ZGZlZjViZjk5LjVlYjhiYTlmMTk0ZjQwOGUuNWUwZDhmYWU3NzRmODNjZS4wNzg5ODZiOTJiYWU2MzEzCiAgICAgMGQwYzdhMDhlZDNkM2NhNi4zOTg5MTFlMDg0YmVkZGU3LjhhM2QwMDBjOGE5ZjY1Y2YuOTFjNTc4NjI5NjNmZjY3ZAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lNDU4ZDc3MzU4ZDc3M2U0LjU2YzVhNzQ0YzVhNzQ0NTYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDIwZi4wMDAwMDAwMDAwMDAwMzAyCiAgICAgNGViNmQzYWUwZjQxYmE5ZC4zY2RmZDI5MDFiOTllMGU2LmY5NjgwNjc1ODllMWQ0YWEuMjgzZjM1MDAwMWNiNDhkYgogICAgIGVlMTZmN2NlMzlkZTdmMjYKIAotVkFFU0tFWUdFTkFTU0lTVF8weDAwKHJlZykKK1ZQU0FEQldfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgODAwZGY2MmJlZTM1MTBiZi5iOTAyNDhjMTdhMTUzNGRlLjFjZmMzM2Q4N2UxY2JkZTIuZjVmYzk0NThhZWVjZDhkZAogICAgIDNhNzEyZTg0YmI1YTM3NTEuMjQ1OGU2ZTQ0Njg2MjRkZS5iNjIwOGZhNTZjNjlkMWMyLjQ0ZjNjZTk2NjY0ZGI1NzgKQEAgLTQyMTgwLDEyICs0MjE4MCwxMiBAQAogICAgIDk1YjAzYmQ1MGY0NDM2MTMuNmQ1MTkyMGI3NDZkNTdjOS44OWFkMjk3ZjU2OGU5MmRkLjRjM2QzNmQwMDE0M2U5OTcKICAgICBiYzI4NWRhNDFjZWZiODc0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjQzMzM0NjExMzM0NjExNDMuYTIyZWEyMDQyZWEyMDRhMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMmQ2LjAwMDAwMDAwMDAwMDAzZDMKICAgICAzYTcxMmU4NGJiNWEzNzUxLjI0NThlNmU0NDY4NjI0ZGUuYjYyMDhmYTU2YzY5ZDFjMi40NGYzY2U5NjY2NGRiNTc4CiAgICAgNzg4ZTljNDMzZGRjMzA4OS42YzgzMmIwNDkwOWY0NmM4LjY2OThlMzY0ODAwYjVhMzIuYzMxYTMwMWFjZTExMjdhNwogICAgIDk1YjAzYmQ1MGY0NDM2MTMuNmQ1MTkyMGI3NDZkNTdjOS44OWFkMjk3ZjU2OGU5MmRkLjRjM2QzNmQwMDE0M2U5OTcKICAgICBiYzI4NWRhNDFjZWZiODc0Ci1WQUVTS0VZR0VOQVNTSVNUXzB4MDAobWVtKQorVlBTQURCV18xMjgobWVtKQogICBiZWZvcmUKICAgICBlZmE3MjA4MjNhMjI1MDZhLmVmMjIwN2E3Y2UyMDg3OWEuMDM4Yzk3ZTcwZGZiMTQwZC43OWFlNWY2MzhiN2ZiNTcwCiAgICAgYzE4NWZhNTY3N2U3NmRhNC5lMTMyZmMyMzE1ZmI1Y2NhLjBhMDFiNjgyNzc1NTM2YmYuOTNlNjgwN2RiYTY5MDE5NgpAQCAtNDIxOTUsMTEgKzQyMTk1LDExIEBACiAgIGFmdGVyCiAgICAgZWZhNzIwODIzYTIyNTA2YS5lZjIyMDdhN2NlMjA4NzlhLjAzOGM5N2U3MGRmYjE0MGQuNzlhZTVmNjM4YjdmYjU3MAogICAgIGMxODVmYTU2NzdlNzZkYTQuZTEzMmZjMjMxNWZiNWNjYS4wYTAxYjY4Mjc3NTUzNmJmLjkzZTY4MDdkYmE2OTAxOTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTQ3YjY0ODg3YjY0ODg5NC5mYmI2ZTRjZmI2ZTRjZmZiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAyZmEuMDAwMDAwMDAwMDAwMDFhYwogICAgIGIyOTJlOTkwYzE1ODI0OTUuZmM1NzUyY2RhY2UwODlkOS5kYmM5MzRhYTMwOWZhMDFmLmI1Mjk3NGZmNzk1OWZmNGUKICAgICA3NWNkM2Y0MDNmNzcyYTM3CiAKLVZBRVNLRVlHRU5BU1NJU1RfMHgwMChyZWcpCitWUFNBREJXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGNmZDhlNTY1NzFiZjZjNjQuODk1OGY1Y2YwNTFiMzdhNS5kZDA1YWJkMzM1MDE1ODBlLjVkYjQ4YTBlYjdhNjVmMjUKICAgICAxZjk2NjJkY2E4YmIwMjgwLjZmYWUwOGIzZDlhMmJmYTkuYzc4MDFkMzRiNjUyOWQ5ZC5jMDA4ZWFlMjdmYWE3NTRhCkBAIC00MjIwNywxMiArNDIyMDcsMTIgQEAKICAgICAxMTVhZDM2ZTliMDUxOTM4LmQ3MzkzOTFmOWUyNTFjNDAuMjIwYzNkYjcxMWIxNzc3OC45OTFmYjk4YTQ0ZDY5NDlmCiAgICAgYzc3OTIwMzY3OTE3MTYyNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40YWZhZmEwNmZhZmEwNjRhLmM5ZTFkYzcwZTFkYzcwYzkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDI2NS4wMDAwMDAwMDAwMDAwMjVlCiAgICAgMWY5NjYyZGNhOGJiMDI4MC42ZmFlMDhiM2Q5YTJiZmE5LmM3ODAxZDM0YjY1MjlkOWQuYzAwOGVhZTI3ZmFhNzU0YQogICAgIGMxNTNiMzEwODNmOTI4MzguM2Y2MGEwMmE1OGY2NzdjZS4xNDE0YTU1Y2NiNWU5MzMyLmUwOTNkMDEyYTViNjlkYjkKICAgICAxMTVhZDM2ZTliMDUxOTM4LmQ3MzkzOTFmOWUyNTFjNDAuMjIwYzNkYjcxMWIxNzc3OC45OTFmYjk4YTQ0ZDY5NDlmCiAgICAgYzc3OTIwMzY3OTE3MTYyNwotVkFFU0tFWUdFTkFTU0lTVF8weDAwKG1lbSkKK1ZQU0FEQldfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNDU2ZDgxMDM1Zjg0ZGU3ZS42YmY4YmU2MDhlNmExMzJiLjEyMDc0ZDdlYzgzYjZhMmEuNGJiNmUzYjEyNGQ3ODUxYwogICAgIGYxYzc1OGRiMTIyOWFhZDAuMmI3YTcwNTNmOGI0NTBiZS5jYzk0NWEzMmYxNDIxY2I5LmVkNWM5MmI3OWY1ZGY5Y2EKQEAgLTQyMjIyLDExICs0MjIyMiwxMSBAQAogICBhZnRlcgogICAgIDQ1NmQ4MTAzNWY4NGRlN2UuNmJmOGJlNjA4ZTZhMTMyYi4xMjA3NGQ3ZWM4M2I2YTJhLjRiYjZlM2IxMjRkNzg1MWMKICAgICBmMWM3NThkYjEyMjlhYWQwLjJiN2E3MDUzZjhiNDUwYmUuY2M5NDVhMzJmMTQyMWNiOS5lZDVjOTJiNzlmNWRmOWNhCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzYzljNWUzYzljNWUzZjMuYzhiMzRlMTFiMzRlMTFjOAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMmFkLjAwMDAwMDAwMDAwMDAzNmEKICAgICAzZmRjNTk2MDUyNGQzODEzLjRkNTQxYWVkOWYyODg1NzIuMmMxZTRjNGZiMjU5OWY3NC4wN2NmZmM5MjNlYjcwMWYxCiAgICAgMzkzNGFlNDE5YWEzMGVjNAogCi1WQUVTS0VZR0VOQVNTSVNUXzB4MzEocmVnKQorVlBTSUdOQl8xMjgocmVnKQogICBiZWZvcmUKICAgICA1MmM1NWFhYmNmMWY3MDRmLjlhMmY3YmU1MTZlMzc0NWMuNjc0NjA5NmMxNDZhZjVlYy44YmIzMjk4ZTgyODBlN2Y5CiAgICAgYWZkMGZiM2I3OGI1NjU0MS45MjE4MDQyNjE4ZTJhMjUwLjU2NGJiMDliNmZjMjk5YjUuZDkzOGVmZDNjMWM5ODVkMgpAQCAtNDIyMzQsMTIgKzQyMjM0LDEyIEBACiAgICAgYTY3ZjBkODI5ODY1ZjIwNC5jOGRjMzc4YzQzNDhjNmU3LjI4YmMxNGJlNDllMTZiZTYuYjE0MTIzMjBmZWYyYWQzMgogICAgIGYzNWQ4OWZmMzRlYWIxMTEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOWJiY2U0MWFiY2U0MmI5Yi42N2ExYmNlNWExYmNkNDY3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU2YjViMDY1NmYzZTY3YjUuMjczOGVmZDMzZmM5ODVkMgogICAgIGFmZDBmYjNiNzhiNTY1NDEuOTIxODA0MjYxOGUyYTI1MC41NjRiYjA5YjZmYzI5OWI1LmQ5MzhlZmQzYzFjOTg1ZDIKICAgICBhYzlmOGU1ZjMyZjMyNzQ0LjAyNjM2ZTBmNzI1NTdmMWEuNzhhZTBiZTg0ZGJiYWM3OS5mMTc4MTkwYThjNDAzMzJiCiAgICAgYTY3ZjBkODI5ODY1ZjIwNC5jOGRjMzc4YzQzNDhjNmU3LjI4YmMxNGJlNDllMTZiZTYuYjE0MTIzMjBmZWYyYWQzMgogICAgIGYzNWQ4OWZmMzRlYWIxMTEKLVZBRVNLRVlHRU5BU1NJU1RfMHgzMShtZW0pCitWUFNJR05CXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDk1OTljNzk1NDkzNGY5ZjQuZjdiYzc2MTA0Njk1MDMyZi5iZTRlZDk4OWE1YzgzNWUzLmMxYzFjOTg5MDBjMDEyYTYKICAgICA3MWMxNWFjZDVhZGQ0MjA4LmZjYTJjNDc1ZGExMjk3NmYuYzI4N2QyZjJiNGUwODYzOS5hMTA5MjViNTBlZTVkZDY1CkBAIC00MjI0OSwxMSArNDIyNDksMTEgQEAKICAgYWZ0ZXIKICAgICA5NTk5Yzc5NTQ5MzRmOWY0LmY3YmM3NjEwNDY5NTAzMmYuYmU0ZWQ5ODlhNWM4MzVlMy5jMWMxYzk4OTAwYzAxMmE2CiAgICAgNzFjMTVhY2Q1YWRkNDIwOC5mY2EyYzQ3NWRhMTI5NzZmLmMyODdkMmYyYjRlMDg2MzkuYTEwOTI1YjUwZWU1ZGQ2NQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hN2FlMmYwNGFlMmYzNWE3LmE3Nzg3OGVjNzg3OGRkYTcKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2U4NzJlMGU0YzIwODZjNy41ZmY3ZGI0YjAwMWJkZDliCiAgICAgNGIwNDZjZDNkZDdhYzY3Mi45Mjk4MDA3NTFkMWMzMmRmLjYwNzliN2I5NGIwOWMwYTYuYTI5MmMyZTA5YzJmY2U5MwogICAgIDdjNmFmY2I4NTU2YzZiNTkKIAotVkFFU0tFWUdFTkFTU0lTVF8weDMxKHJlZykKK1ZQU0lHTkJfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgMGJiNWNjYTBkNDFlMWRjZi4wMWI4ZTM3OTg4ODU3OTIwLmRiNDBlNWU3MDZjMmIyNjguYjJjYjliZWUwYjMyMjExNAogICAgIGFkYmYzMDA2YjZkMjFlYTEuNjE4NzlmNzE5ZjIwMWNhZi40OGMyYTBlMDQzZTNhNGI2LjgyMTNjNTQwZTgyNDU1OGMKQEAgLTQyMjYxLDEyICs0MjI2MSwxMiBAQAogICAgIDk2NDBhMmY4MTA2ZDAwMDYuOTNhOWQzMDc3ZTJmMjYxZC5mZTdmODUxOTJhYzhjZDUzLjA3YjRkYmU3NmI5MDI1NGUKICAgICA3NmE2YzAxNTQ5MjIzOWVlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJkOTY0NTQwOTY0NTcxYmQuZWVhY2E0ZjlhY2E0YzhlZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC40OGMyYTAyMDQzZTNhNGI2LjdlMTMzYmMwMThkYzU1OGMKICAgICBhZGJmMzAwNmI2ZDIxZWExLjYxODc5ZjcxOWYyMDFjYWYuNDhjMmEwZTA0M2UzYTRiNi44MjEzYzU0MGU4MjQ1NThjCiAgICAgYmNkNDIzNTQ5NjEzYWI3YS40ODNlMWJhNzNkNTQ2ZDRhLjM1NjgyY2NkNzAwYzQ0NzUuYWExZGIxOTlmZmVhMTczYwogICAgIDk2NDBhMmY4MTA2ZDAwMDYuOTNhOWQzMDc3ZTJmMjYxZC5mZTdmODUxOTJhYzhjZDUzLjA3YjRkYmU3NmI5MDI1NGUKICAgICA3NmE2YzAxNTQ5MjIzOWVlCi1WQUVTS0VZR0VOQVNTSVNUXzB4MzEobWVtKQorVlBTSUdOQl8xMjgobWVtKQogICBiZWZvcmUKICAgICBkMWJkZGIwZmI0YWQwZjQ5Ljk1NGZhNzVkYzE2ZDU4ZjMuMWM5NDQzN2U3ZmJjMDQ1NS5mZjUyYTgyZjBjYTQ3Y2ZhCiAgICAgZjVjNmE4YzFjODNjNjU4Yi4xNjRjMzBlZjQ1OWVmMWViLmMwY2JlN2Y2NWIwOGMzMWUuOTQyZjkwN2RiMzJhOGQxNgpAQCAtNDIyNzYsMTEgKzQyMjc2LDExIEBACiAgIGFmdGVyCiAgICAgZDFiZGRiMGZiNGFkMGY0OS45NTRmYTc1ZGMxNmQ1OGYzLjFjOTQ0MzdlN2ZiYzA0NTUuZmY1MmE4MmYwY2E0N2NmYQogICAgIGY1YzZhOGMxYzgzYzY1OGIuMTY0YzMwZWY0NTllZjFlYi5jMGNiZTdmNjViMDhjMzFlLjk0MmY5MDdkYjMyYThkMTYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjM5YzIyMmI5YzIyMWFmMy4xNTE2MDBmMzE2MDBjMjE1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmMwMzVlN2Y2NWJmOGMzMWUuNmMyZjcwN2RiM2Q2OGRlYQogICAgIDA4ZGU0OWZkNWU5ODdjNzIuMGY0NGJjNGEzNGM0ZDBhZC5jOTRiYmQ5ZTE2MGFkMjEyLmU5MzM5ZjZlYmU2YWM0NjAKICAgICA2MmYyYmVlOTViM2I2MmU2CiAKLVZBRVNLRVlHRU5BU1NJU1RfMHgzMShyZWcpCitWUFNJR05CXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGRmZWE5MzRjMmJlNzUxOTEuYjA4NDE0NjAxNzdjYjY2Zi4zZWQ2YjZlYmQ3ZDE4ZmQwLmU3MmVlNmE0MmRkODliOTQKICAgICBiYzY2MTkwMWNjZmJjZjBkLjkwNGQ4MjJhZTk5NTVlMDMuNWY4NzI0NjliYzNmN2VhZS44ZjhjMzM1ZDhmOTUzNDU4CkBAIC00MjI4OCwxMiArNDIyODgsMTIgQEAKICAgICAwNTFmMjgxNWYwODg2MzJiLjZiNzMzNWE3NGI5M2ViOWYuZTg3NTQ5YWRiZTcwZGM0ZC5mMGViMmE5NWE2MGFjOTUwCiAgICAgNjE4NWNjZWM5M2RhM2RkZAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jNzhhM2E0ZDhhM2E3Y2M3LjhkMGIyM2NjMGIyM2ZkOGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTE3OTI0Njk0NGMxODI1Mi43MThjMzNhMzhmOTUzNGE4CiAgICAgYmM2NjE5MDFjY2ZiY2YwZC45MDRkODIyYWU5OTU1ZTAzLjVmODcyNDY5YmMzZjdlYWUuOGY4YzMzNWQ4Zjk1MzQ1OAogICAgIDU0YjQ0Yzc1ZGEwMTE2MDcuODUwMzBlNDlmMWVlMzE1YS5jZmEyMDEzMTgwOWJkOWY0LjllMzIyMWI0NTk0YzVhODcKICAgICAwNTFmMjgxNWYwODg2MzJiLjZiNzMzNWE3NGI5M2ViOWYuZTg3NTQ5YWRiZTcwZGM0ZC5mMGViMmE5NWE2MGFjOTUwCiAgICAgNjE4NWNjZWM5M2RhM2RkZAotVkFFU0tFWUdFTkFTU0lTVF8weDMxKG1lbSkKK1ZQU0lHTkJfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgY2RjYTgyYTYzYmM4NzE1YS4yYWYyYWE0Y2FiMTlmMTI0LjFlNjk3MTMyMTE5MDQ3ZmYuMDc0YWY4NGIxMzRhYzI2NgogICAgIDEwODdjOWFkYmFlMTIyZjUuMWU3YWNjODVhNjQyZmQ5Zi43YWIxNDBkNTYyZjIwM2E1Ljg4NmYwYjc1MWJiNmM4ZWIKQEAgLTQyMzAzLDExICs0MjMwMywxMSBAQAogICBhZnRlcgogICAgIGNkY2E4MmE2M2JjODcxNWEuMmFmMmFhNGNhYjE5ZjEyNC4xZTY5NzEzMjExOTA0N2ZmLjA3NGFmODRiMTM0YWMyNjYKICAgICAxMDg3YzlhZGJhZTEyMmY1LjFlN2FjYzg1YTY0MmZkOWYuN2FiMTQwZDU2MmYyMDNhNS44ODZmMGI3NTFiYjZjOGViCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIzNzJmOTkyNzJmOWEzMjMuYjNjNWQ2NzBjNWQ2NDFiMworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YWIxNDBkNTYyMGUwMzViLjg4NmZmNTc1MWJiNjM4ZWIKICAgICA4Yjk5ZjY1NmIwYzFlYjJmLmU3ZDllNWIyY2Q4YTdmY2EuOWQ2Njg0MTMwZjEzODU3Ni4yMGQ0NGEyMmIxNzIyM2U3CiAgICAgZWZhYzZlN2M3N2Q5ZjBiNgogCi1WQUVTS0VZR0VOQVNTSVNUXzB4QjIocmVnKQorVlBTSUdOV18xMjgocmVnKQogICBiZWZvcmUKICAgICA5MDA0ZTYxMzYxMDJjZGExLjdhODZkNWQwNWVhMTdhMjcuNzQ0OGQ0N2QzMmMxNmRkMS4xYjZjZjI4NmE0ZWFjNWY4CiAgICAgNWYyNmFjNTMwODc5ZjU1NC5iMTFiMzU0NzUzZGI3NmViLjQwOWI1M2ZiNDdiZmM4MGIuYjNmM2UxYzEzMjU2NTM3MQpAQCAtNDIzMTUsMTIgKzQyMzE1LDEyIEBACiAgICAgZjdmYzE3N2UwMzdlMTljMC42NDZjNjRlMTg0OGVhNDhhLjA5MjFmNmMwZjI0MmI3YzIuOWViNzM3NDBhYjE5NGJmNgogICAgIGE5OGM5NTViY2Q4YTJkNWEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNDZkM2MwNjJkM2MwZDA0Ni5lNzA5ZTgzODA5ZTg4YWU3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmJmNjU1M2ZiYjg0MTM3ZjUuYjNmMzFlM2ZjZGFhYWM4ZgogICAgIDVmMjZhYzUzMDg3OWY1NTQuYjExYjM1NDc1M2RiNzZlYi40MDliNTNmYjQ3YmZjODBiLmIzZjNlMWMxMzI1NjUzNzEKICAgICBiODYwYmVhODBhYzlhNTdhLjBiMjM5MGE5YWM3YjliYTguYTkxZjYwOThhODExY2QyMi40MGM4Y2ZiMGQ1NjFlYjBjCiAgICAgZjdmYzE3N2UwMzdlMTljMC42NDZjNjRlMTg0OGVhNDhhLjA5MjFmNmMwZjI0MmI3YzIuOWViNzM3NDBhYjE5NGJmNgogICAgIGE5OGM5NTViY2Q4YTJkNWEKLVZBRVNLRVlHRU5BU1NJU1RfMHhCMihtZW0pCitWUFNJR05XXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDNjMTI2NmVmNTliZTRlNjYuNzg0N2I0NDI4ZTI0OGRkMS45OGMwMmNkYmY4MWY0ZWJjLmJkZWIxMWUwYzBkZWMzOTgKICAgICAzNTE3MjVlNjZiYzM2YTQzLjk3OGQ4ZjVlNDg0ODNjNWEuODJlYzY0ODMyNDNhNTU2Yi4yMmNhYWU2MmFmNzIyZDUwCkBAIC00MjMzMCwxMSArNDIzMzAsMTEgQEAKICAgYWZ0ZXIKICAgICAzYzEyNjZlZjU5YmU0ZTY2Ljc4NDdiNDQyOGUyNDhkZDEuOThjMDJjZGJmODFmNGViYy5iZGViMTFlMGMwZGVjMzk4CiAgICAgMzUxNzI1ZTY2YmMzNmE0My45NzhkOGY1ZTQ4NDgzYzVhLjgyZWM2NDgzMjQzYTU1NmIuMjJjYWFlNjJhZjcyMmQ1MAotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iOTQ2YmFjMzQ2YmE3MWI5LmUxN2FlOTMwN2FlOTgyZTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2QxNDY0ODNkYmM2NTU2Yi5kZDM2YWU2MjUwOGVkMmIwCiAgICAgYzVjOTVkYjI4ZTZlODEyNy4xZTM5ZjQ1M2I2MzgzZTgzLmVkZmIxNThlMTE0MDY5ZWYuNmFmNjVhNDA1ZWFmMGIxNAogICAgIDA3ZGM2Mjc0NTY3MWY2NzgKIAotVkFFU0tFWUdFTkFTU0lTVF8weEIyKHJlZykKK1ZQU0lHTldfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYzMwNmRjYmJkZjVhMmY2ZS4xNTBmY2U1ZWQ4MmNmNTg0LjNmMzc3NTAyYTMxYzA5N2EuMjQ3Nzg2YzgwYTQyZWUxYwogICAgIGZiYzFjMjgxOTRmNmYxYTIuMzkwMzFlMWUxOGViNTQ2NC42ZTYxMjZiYjJlYWRmZjlhLjgzZmE1NzYxMmJmZmJmNzUKQEAgLTQyMzQyLDEyICs0MjM0MiwxMiBAQAogICAgIDRmMWFjNzNhZjQ3OTA0NzIuNzEyNDQ4OGFlNzk5YzE1Yy42NTYzMDRmODkxMDc1ZmZmLjI1NDkwOTVjNTRkNzM5NWQKICAgICAyMGFiZTM5Njk0MGI1OTQ0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFlNmY3Y2NlNmY3YzdjMWUuMWE2OTAwNDA2OTAwZjIxYQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZTYxMjZiYmQxNTNmZjlhLjdjMDY1NzYxZDQwMTQwOGIKICAgICBmYmMxYzI4MTk0ZjZmMWEyLjM5MDMxZTFlMThlYjU0NjQuNmU2MTI2YmIyZWFkZmY5YS44M2ZhNTc2MTJiZmZiZjc1CiAgICAgMGI1OTEyMzIxMmQyN2FiZi4wZjcwYzhkZTY4YjY1OWYzLjA2MDEwMWU5ZjQ3NzVkOGQuZTQ1MjA0NDM5MDgyOWEyNwogICAgIDRmMWFjNzNhZjQ3OTA0NzIuNzEyNDQ4OGFlNzk5YzE1Yy42NTYzMDRmODkxMDc1ZmZmLjI1NDkwOTVjNTRkNzM5NWQKICAgICAyMGFiZTM5Njk0MGI1OTQ0Ci1WQUVTS0VZR0VOQVNTSVNUXzB4QjIobWVtKQorVlBTSUdOV18xMjgobWVtKQogICBiZWZvcmUKICAgICBiMzQ2MGRkZjZiMjliNTA4LjIzNGZkZDA1ZDc3N2NjNjYuM2RlOTFhMGVhZmEwNDhjYy5lNWQ1MmE1NDlmZTg0MDlkCiAgICAgYjhlNTAzMjJmNTNlMGJkNC5lMzQ2NTFmZjU2NTkwZDQ4LjRkOGNiYjU3ZGNkOGE5NmUuZTRhMjcwNmFiZGE3M2QxMwpAQCAtNDIzNTcsMTEgKzQyMzU3LDExIEBACiAgIGFmdGVyCiAgICAgYjM0NjBkZGY2YjI5YjUwOC4yMzRmZGQwNWQ3NzdjYzY2LjNkZTkxYTBlYWZhMDQ4Y2MuZTVkNTJhNTQ5ZmU4NDA5ZAogICAgIGI4ZTUwMzIyZjUzZTBiZDQuZTM0NjUxZmY1NjU5MGQ0OC40ZDhjYmI1N2RjZDhhOTZlLmU0YTI3MDZhYmRhNzNkMTMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWIyNzFlMTAyNzFlYTJhYi4yMGQ5MDM1N2Q5MDNlNTIwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjRkOGNiYjU3MjMyOGE5NmUuMWI1ZTcwNmE0MjU5M2QxMwogICAgIDhjNWU0NDQ2OTU3YThmMzcuOTdhNTNmMzE5OWY3ZWQ4NS5hZDljNTZlNGQ3MDllY2ZiLmNiN2M0ODZmOTNlYzdiMzUKICAgICA2YzIxZDMzODgzOGIzMzNhCiAKLVZBRVNLRVlHRU5BU1NJU1RfMHhCMihyZWcpCitWUFNJR05XXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGZhNTE2ZDZhZjMzN2Y3YzYuMTJkMDg3MDBlMmI5MzcyNS40M2E2YjI0MTk1Y2EwNDM4LmI1YTE0OTAxZGQxOTQ2M2QKICAgICBkMjU3MTI3MDdjN2MwMzg1LjdjNzY4NjYzNTIxZmM3Y2IuNGI5ODczMzA5ZWIyODQ4OC43MWIzZmI5MWI4OGI2YTYyCkBAIC00MjM2OSwxMiArNDIzNjksMTIgQEAKICAgICBkMTFhNmZhZDRmMDNlMTRmLjY3OGRhOGQ4MGQ4ZTkyZjMuZGY3ZmNiNWE0NmVhYjJiMi43ODMyODhiZjVlYmUwMzA0CiAgICAgN2MzNjVjMzQ2Mjk4ZWZkOAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mOTJiYzZhMjJiYzYxMGY5LjEzYWVlMDNjYWVlMDhlMTMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGI5ODczMzA5ZWIyN2I3OC44ZTRkMDQ2ZjQ3NzU2YTYyCiAgICAgZDI1NzEyNzA3YzdjMDM4NS43Yzc2ODY2MzUyMWZjN2NiLjRiOTg3MzMwOWViMjg0ODguNzFiM2ZiOTFiODhiNmE2MgogICAgIDUxODFiZmI4YmNlNzkyMjUuYTQxYmJkNWMwMmI3ZmM1Ny4wYmM3N2M2OTUwMzhhYTIyLmJlYTBlNjgyODQ2ODE1OTYKICAgICBkMTFhNmZhZDRmMDNlMTRmLjY3OGRhOGQ4MGQ4ZTkyZjMuZGY3ZmNiNWE0NmVhYjJiMi43ODMyODhiZjVlYmUwMzA0CiAgICAgN2MzNjVjMzQ2Mjk4ZWZkOAotVkFFU0tFWUdFTkFTU0lTVF8weEIyKG1lbSkKK1ZQU0lHTldfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgYTQ3OGRlY2RhYjAzOTc0MC5hZjZkMWViYmQwNWMyY2IyLmExOTdjNGMxOTBhZjQ0Y2IuMjMwYjViNmUxYzUzZDhlMwogICAgIGNkYzQ4Yjc3NTYwOWI0NjUuNDhjN2M4NGVkYzdmYWZmOC4yZTA0OGMwNWE2MjZjZjBjLjMzYjgyODExNmZmZjU3NjIKQEAgLTQyMzg0LDExICs0MjM4NCwxMSBAQAogICBhZnRlcgogICAgIGE0NzhkZWNkYWIwMzk3NDAuYWY2ZDFlYmJkMDVjMmNiMi5hMTk3YzRjMTkwYWY0NGNiLjIzMGI1YjZlMWM1M2Q4ZTMKICAgICBjZGM0OGI3NzU2MDliNDY1LjQ4YzdjODRlZGM3ZmFmZjguMmUwNDhjMDVhNjI2Y2YwYy4zM2I4MjgxMTZmZmY1NzYyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjc4MzI4OGFlMzI4ODFjNzguOWYyNjJiOGIyNjJiMzk5ZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kMWZjNzNmYjU5ZGFjZjBjLjMzYjgyODExNmZmZmE4OWUKICAgICA5MmE5NTJhOTNmMWM0NDlkLjE2YzBmZmI0MDI1MDRiZGYuYjIzYTEwNGJmZDQ3NWY3OC4yNmE1NmFiNWZhNTI1MmY4CiAgICAgYzI3ZGQ3OGQ2YTExNDc2OAogCi1WQUVTS0VZR0VOQVNTSVNUXzB4RkYocmVnKQorVlBTSUdORF8xMjgocmVnKQogICBiZWZvcmUKICAgICA5YWE2NzFhNGM3NDM4NWQ1LmU2ZGE2NjBiYjY0MDJmMDYuMDRmNzgyNWU1NTE3ZGRkOC42MDliYzUyNTc2MDlkY2ZiCiAgICAgMDk2YjM0NjdhYzc0NDllYi5hYjQ1OTMyY2ZlMzA3ZmRmLjFkNjRmMjNkYTJkNzk2NjQuZDE5MDE1MDlmMjUyMjI5NgpAQCAtNDIzOTYsMTIgKzQyMzk2LDEyIEBACiAgICAgMjBmZDI2OWQ3ZjA1NTJjNi5mOGY5MmM2MDczYTY0NThiLjNiMTQ4MjRjOWM3MzcxZTguNmM2NTdiOWY2NWE2ZjhjNwogICAgIDRlZGQ4OTJhOTNjYTAwYjQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYWVlYWZjYWRlYWZjNTJhZS4xMWY4NjkwY2Y4NjlmMzExCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUyOWIwZGMzNWQyODY5OWMuMmU2ZmVhZjcwZGFkZGQ2YQogICAgIDA5NmIzNDY3YWM3NDQ5ZWIuYWI0NTkzMmNmZTMwN2ZkZi4xZDY0ZjIzZGEyZDc5NjY0LmQxOTAxNTA5ZjI1MjIyOTYKICAgICA2ZDFhMWQ0MGI1MzFjZTU4LmJkYjY1N2ZhMzRmOWYzNTEuYmI1NTQ4YmU4NjFjYjQzMC5lMWU0N2VlMzhlMmRlZDc2CiAgICAgMjBmZDI2OWQ3ZjA1NTJjNi5mOGY5MmM2MDczYTY0NThiLjNiMTQ4MjRjOWM3MzcxZTguNmM2NTdiOWY2NWE2ZjhjNwogICAgIDRlZGQ4OTJhOTNjYTAwYjQKLVZBRVNLRVlHRU5BU1NJU1RfMHhGRihtZW0pCitWUFNJR05EXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDYzMTkyMjZlMzVhNGMxNmEuODA2MTRkZTlhNjdjMGZlMS4zOGRhOTA0YWQ4NDMzMmI3LmY5ZWU5YTUyODE2NzA5MzcKICAgICA4N2U1YzQ1OTY3NDBmNzE0LmU3OTI4ZDkwYzUyMjQxNTYuNTkyNGZlYTQ3ZWRkNzYwMS41MTJmOGUzZWQwODRiYWNhCkBAIC00MjQxMSwxMSArNDI0MTEsMTEgQEAKICAgYWZ0ZXIKICAgICA2MzE5MjI2ZTM1YTRjMTZhLjgwNjE0ZGU5YTY3YzBmZTEuMzhkYTkwNGFkODQzMzJiNy5mOWVlOWE1MjgxNjcwOTM3CiAgICAgODdlNWM0NTk2NzQwZjcxNC5lNzkyOGQ5MGM1MjI0MTU2LjU5MjRmZWE0N2VkZDc2MDEuNTEyZjhlM2VkMDg0YmFjYQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kNjA3NTc5ZjA3NTc2MGQ2LjAwOTkyODQ3OTkyOGI4MDAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTkyNGZlYTQ4MTIyODlmZi5hZWQwNzFjMjJmN2I0NTM2CiAgICAgNmI1YzEwZDBlOGYwYjBmNi4zZThhNDk5ZjVjMmVmOGZkLmFlMjdlYTU4ZmYzNWYxYTIuM2YxNWY4NzUxZTZiNTE2YQogICAgIDhkNTM2Njk4NTU0ZGIxZDAKIAotVkFFU0tFWUdFTkFTU0lTVF8weEZGKHJlZykKK1ZQU0lHTkRfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgZTUyNzlmNTA2Njg4MTgyOS5lNGEwYjMzNTcwMWJhYzg3LmU2ZTliZGRmMGRhYWY0ODcuOWE3NzVlOGExMjBjYTE1MQogICAgIGEzZGU5ZjBhZWVhOGMzMjIuZGNhMzRlZjBmODM5MGNiYi4wNTQ1M2EyYTI1ODY1NTFiLmQ2NjFjZWRkZDYwZjk3Y2UKQEAgLTQyNDIzLDEyICs0MjQyMywxMiBAQAogICAgIGMwMjVlNTMwZDBjOGQ0YTIuYjgxOTVjMTg3NTdiZWJjMy4xYzI0NDA5MjAxOGMzYTBlLmIzMzI4YTkyZTNjYTQ5ZTMKICAgICAwYmIyZDBjYzYzOWE3YmQ0CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU1OTllOTlhOTllOTY1NTUuZTIwOWM4OTIwOWM4NmRlMgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYWJhYzVkNjI1ODY1NTFiLmQ2NjFjZWRkZDYwZjk3Y2UKICAgICBhM2RlOWYwYWVlYThjMzIyLmRjYTM0ZWYwZjgzOTBjYmIuMDU0NTNhMmEyNTg2NTUxYi5kNjYxY2VkZGQ2MGY5N2NlCiAgICAgMjNjNDYyMzA4ODM5ZWU2Ni4yZjMyNWRlZDlhNTU4ZGMxLmY5ZWJiY2VkNDM0ZDU5NjQuNDBiMWIzM2I2ODRhOTE0NQogICAgIGMwMjVlNTMwZDBjOGQ0YTIuYjgxOTVjMTg3NTdiZWJjMy4xYzI0NDA5MjAxOGMzYTBlLmIzMzI4YTkyZTNjYTQ5ZTMKICAgICAwYmIyZDBjYzYzOWE3YmQ0Ci1WQUVTS0VZR0VOQVNTSVNUXzB4RkYobWVtKQorVlBTSUdORF8xMjgobWVtKQogICBiZWZvcmUKICAgICAyM2ZiMDBkNzA1YzZlNTQzLmQ4NGQyMzc0NjNlMGIyODEuNTUyNGM3NWRhMmI4ZTFlZC5jYjNmYzE4N2ZiY2UzNGM2CiAgICAgZDlkYTk2OWVlNTViNDE1ZC5jNjg3MTg2YWRkMGVjNGIxLmUxMWYxYmE4NDAxNzJkNmMuNjM4NzNhMzZjZTlmODUzOApAQCAtNDI0MzgsMTEgKzQyNDM4LDExIEBACiAgIGFmdGVyCiAgICAgMjNmYjAwZDcwNWM2ZTU0My5kODRkMjM3NDYzZTBiMjgxLjU1MjRjNzVkYTJiOGUxZWQuY2IzZmMxODdmYmNlMzRjNgogICAgIGQ5ZGE5NjllZTU1YjQxNWQuYzY4NzE4NmFkZDBlYzRiMS5lMTFmMWJhODQwMTcyZDZjLjYzODczYTM2Y2U5Zjg1MzgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNGNmYzM2MzlmYzM2YzY0Yy4xNzFmNzU4NzFmNzU3ODE3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmUxMWYxYmE4YmZlOGQyOTQuOWM3OGM1Y2EzMTYwN2FjOAogICAgIDhiOGFlNTEwY2NlZWMxNDEuOTM2NTE3MTlmM2Q5NzNhZS4zNTE0NmEwMTM5NmNiMTE4LmI5Y2QwYTc3NmQyMDE3ZjkKICAgICAzMDYzNTdlMDcxZThkMTlmCiAKLVZBRVNLRVlHRU5BU1NJU1RfMHhGRihyZWcpCitWUFNJR05EXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGZmNTY4ZWI0YmQ2ZWQwYjAuNDBmMjk2OTMwYzAzNWU2My4yYmEwMWFhYWM4OGU4OGQ0LmI1YTY1ZmU3Y2M3YTYzOWQKICAgICA4MmYyYWE1ZmVlNDA1MWQ1LjAxMjE5ZDgyZjliMWRkZGYuMDkxZWM0OWNmNDg5YzFmOS45NTU4MmI4MjNmZGI1OTI3CkBAIC00MjQ1MCwxMiArNDI0NTAsMTIgQEAKICAgICAxNTU0ODJlYTZlZjZjODEyLjFiZmY5ZTU1NGQwNzczOTcuMDYxMmZkNTNiZTdmOGRmMy5lMTRjM2Q4YzM0YzIwM2Y3CiAgICAgMDUyNTdhZDJlZTYyMzA5NwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zOWM0ZTU3ZGM0ZTU4MjM5LmJhNzk0MmQ2Nzk0MjI5YmEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZjZlMTNiNjRmNDg5YzFmOS42YWE3ZDQ3ZWMwMjRhNmQ5CiAgICAgODJmMmFhNWZlZTQwNTFkNS4wMTIxOWQ4MmY5YjFkZGRmLjA5MWVjNDljZjQ4OWMxZjkuOTU1ODJiODIzZmRiNTkyNwogICAgIDE2ODJhNzRkYTBlYTkwYmQuYWNlMTc2YzliMDA0ZmFlMi44ODJhMTE1YjExNTU1OWNhLmFmZjY0Y2MwYWU5OTUwZTEKICAgICAxNTU0ODJlYTZlZjZjODEyLjFiZmY5ZTU1NGQwNzczOTcuMDYxMmZkNTNiZTdmOGRmMy5lMTRjM2Q4YzM0YzIwM2Y3CiAgICAgMDUyNTdhZDJlZTYyMzA5NwotVkFFU0tFWUdFTkFTU0lTVF8weEZGKG1lbSkKK1ZQU0lHTkRfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZjk0ZjdmN2VmNjg0OTFlYS5kY2IyMzVhM2Y1ZjMzNjgwLjJiNDc5MDEwZWFjNjAyMmIuZGQyMTg1ZjA5NDkyOTkxZgogICAgIDk3OTRjOTdjNmIzNGUyMWYuYzdlOWJlZTJjZjZhMTZiNS5iOTg1YzhlOGE2NGQ2NGNhLjZiYTJhNDlmMzIxYWI4ZmIKQEAgLTQyNDY1LDExICs0MjQ2NSwxMSBAQAogICBhZnRlcgogICAgIGY5NGY3ZjdlZjY4NDkxZWEuZGNiMjM1YTNmNWYzMzY4MC4yYjQ3OTAxMGVhYzYwMjJiLmRkMjE4NWYwOTQ5Mjk5MWYKICAgICA5Nzk0Yzk3YzZiMzRlMjFmLmM3ZTliZWUyY2Y2YTE2YjUuYjk4NWM4ZThhNjRkNjRjYS42YmEyYTQ5ZjMyMWFiOGZiCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmNhZjFhMDlmZjFhMDYwY2EuOGNjMWZkNjhjMWZkOTc4YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iOTg1YzhlODU5YjI5YjM2Ljk0NWQ1YjYxY2RlNTQ3MDUKICAgICA0NWEyMTgxZjA2NmY0OGRhLjc5MTI0MGE2ZjNmYjFiMWUuYmExMmZhOWJlNGU1OTBkNy4xODJkOTdkZjMwYmIyMzcyCiAgICAgZWZjZjYzNDljOGViZTY2NAogCi1WUENMTVVMUURRXzB4MDAocmVnKQorVlBNVUxIUlNXXzEyOChyZWcpCiAgIGJlZm9yZQogICAgIGVkMTNiNzczOTdjMWFjYjcuMGMwMzE3OWI2NTEyZDRiOC5mNzljMzAwMzczMmNiOWFiLmU3ZmFlZDRmYTAwZWQyOWQKICAgICA2YzQ3OGVjYjM5YzhiMjE0LmVlYjA0OTE5OWY3NDQxMjcuMGEyZWU2OTdiODA5YjdhZC4wMDA3MTZjZmU5MmZkNjFlCkBAIC00MjQ3NywxMiArNDI0NzcsMTIgQEAKICAgICA2MWFhYjViMjYzOWE2ZWEzLjc0MWMzYmNkMTdhMmFjNjYuNWM5ZTkxMTRmZmY1Y2FjMy42OWMzZmFlMzk0ODkxODAwCiAgICAgNzIwYWFkNTAyZGRiY2RiOQogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAyYTIzMGMwZWI3NTE2Ljk0MzIzNmZhOWVlOTU3NDQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDEwYWVkNjFjYmE2ZDAxMy5mZmZlZmQ1NTA2NWNlMjYxCiAgICAgNmM0NzhlY2IzOWM4YjIxNC5lZWIwNDkxOTlmNzQ0MTI3LjBhMmVlNjk3YjgwOWI3YWQuMDAwNzE2Y2ZlOTJmZDYxZQogICAgIGM5YjVlNGJjNDk4YzM0MmEuYzc3NDJjODZkMWEwNGE1Mi4wZDE2NWRjZTVkMWQ1NGQxLmUyMDZmMTA3ZGM1NDVhODYKICAgICA2MWFhYjViMjYzOWE2ZWEzLjc0MWMzYmNkMTdhMmFjNjYuNWM5ZTkxMTRmZmY1Y2FjMy42OWMzZmFlMzk0ODkxODAwCiAgICAgNzIwYWFkNTAyZGRiY2RiOQotVlBDTE1VTFFEUV8weDAwKG1lbSkKK1ZQTVVMSFJTV18xMjgobWVtKQogICBiZWZvcmUKICAgICBkN2E2ODczOGM0NTUzNWRkLjhlNzJmZDFhMjQ3ZDliMmMuY2Y3NWYyZGE4Yjg2MjM4Zi41MzEzN2ZkNTM5MWM1NjJmCiAgICAgNzU2NTAzODg3NTA0MGI5Ny5hZDU5Yjk1ZTI4YzFmODcwLmI1NDljZDk4NGM1OTZhZjguNGRjMTIxN2RhODFlMzRiZgpAQCAtNDI0OTIsMTEgKzQyNDkyLDExIEBACiAgIGFmdGVyCiAgICAgZDdhNjg3MzhjNDU1MzVkZC44ZTcyZmQxYTI0N2Q5YjJjLmNmNzVmMmRhOGI4NjIzOGYuNTMxMzdmZDUzOTFjNTYyZgogICAgIDc1NjUwMzg4NzUwNDBiOTcuYWQ1OWI5NWUyOGMxZjg3MC5iNTQ5Y2Q5ODRjNTk2YWY4LjRkYzEyMTdkYTgxZTM0YmYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTc3ZTBlZDE0YmU3OTI4ZC5lOGI0MWM4YTVhNDYwZjI1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFjNTYwNTJlYmE4NzFkYjcuMzI3NzIxNzJkOGNhMjM4NAogICAgIGNjNzdkMTEyOTIyZWY0N2UuMzFiMzdhMmU2NjllMzFkYi45Mjk0ZTBkYzFlZmE1YjNjLmJmZjg3NjMzOTNlNGQ0MDIKICAgICBlZTE4MjAxOTQ3YzAwZjBjCiAKLVZQQ0xNVUxRRFFfMHgwMChyZWcpCitWUE1VTEhSU1dfMTI4KHJlZykKICAgYmVmb3JlCiAgICAgOTBhMTcwOTVhMGE4OGNlYi4zZDYzMWMyMjM3YzI3ZTA0LjRmYmY3ODkxZDk0ZTg1NWEuNDFhNDEwM2E2OWUwN2Q2ZgogICAgIDAzZTA2MDE1MzkyNzg2NGMuNTdhMWY5NGI2NWJhNjhkMS5jZTE5ZDg4MmZlOTBmOTQ1LmViNWY1NGY5NmZlNDVmOTMKQEAgLTQyNTA0LDEyICs0MjUwNCwxMiBAQAogICAgIGM4YWExNmNlOWMxYmU0NDMuZjY0MjU5OTVjZTA3NDZlZC42MmVhYjNiYWQwZjczMDBkLmEwMGEwOTRlMWU3ODU2NWMKICAgICA2MzkxNzJiYmZlMWZlMzU5CiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjIzMzE4NTMzOWM4NDkwYjMuY2I1Yzg0YTQ0MTJiMTZjNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYmIxMWZmNWZlYjYwMmUxLmVlODAxYjNjNDM2MGNmNTYKICAgICAwM2UwNjAxNTM5Mjc4NjRjLjU3YTFmOTRiNjViYTY4ZDEuY2UxOWQ4ODJmZTkwZjk0NS5lYjVmNTRmOTZmZTQ1ZjkzCiAgICAgYTExZmVlMDRhZWM5M2FkYi5mNmZkZTQ3ODM5MjI2YjEwLjBiMGU5ODZjNzJlZmM5NDcuNmM5MzI5MDY0ZDEzYmVkMwogICAgIGM4YWExNmNlOWMxYmU0NDMuZjY0MjU5OTVjZTA3NDZlZC42MmVhYjNiYWQwZjczMDBkLmEwMGEwOTRlMWU3ODU2NWMKICAgICA2MzkxNzJiYmZlMWZlMzU5Ci1WUENMTVVMUURRXzB4MDAobWVtKQorVlBNVUxIUlNXXzEyOChtZW0pCiAgIGJlZm9yZQogICAgIDkxZjNkZjNiMGExNTIwZjcuZDJjZmQyZGY5ZmE4YmYzMC4zMzNlZDQ4ZTQxNzRiMzk1LjJmZjkyNWRhYjUzNTZiNDIKICAgICAwNWZlY2NiOTVkNjVjYTYyLjFkZDkxZmEzNTJmYzA4NTAuODhiYmQyNGZhZDc1NzAzNC5jZTg3ZWIzN2JjMzRiNjkzCkBAIC00MjUxOSwxMSArNDI1MTksMTEgQEAKICAgYWZ0ZXIKICAgICA5MWYzZGYzYjBhMTUyMGY3LmQyY2ZkMmRmOWZhOGJmMzAuMzMzZWQ0OGU0MTc0YjM5NS4yZmY5MjVkYWI1MzU2YjQyCiAgICAgMDVmZWNjYjk1ZDY1Y2E2Mi4xZGQ5MWZhMzUyZmMwODUwLjg4YmJkMjRmYWQ3NTcwMzQuY2U4N2ViMzdiYzM0YjY5MwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZDhhMmZlMTBhOWRjODc5LmNkMTg2ZDQ1ZWVkMjQ0ZTYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDA0MTBmODJkNWNiYmQwMy5lZDc1ZjlkYTI3OWRjMjc5CiAgICAgMzQzYjE4NWU0YjQ0NTQ0ZC5lMmNhNWVmNDM5MmJkNGQzLmVmNmI0NGRhZTI2NGM0MDUuZjI0ZTVmNTlhMmE2NmIzOAogICAgIDJmMjAwN2Y1YjkzMjRkZTQKIAotVlBDTE1VTFFEUV8weDAwKHJlZykKK1ZQTVVMSFJTV18xMjgocmVnKQogICBiZWZvcmUKICAgICBhZGExZjE3ZTYyYWUyZTViLmE2MDU2ZDVlMWRlYmFjMjUuMTQ0YTQ4NTlhNTFkY2U4Zi5iODM2YjA3YmUyNmJkNDkwCiAgICAgY2ExZDFhNjEzOWE4NGM0YS5jZWE3MzQwY2E2MWM2MTdhLmY2ZGZiMjIyMzIwNzI2MmQuMDliMjhmOTU0ZDM2MjNjMQpAQCAtNDI1MzEsMTIgKzQyNTMxLDEyIEBACiAgICAgNGUzNTFiZTFlNDQ0MmEzZi5iNWEyMDEyMzRmNGVkMTQ5LjNiNzhmYjhjMWRmMGRmYmQuYjhmMTkyZTBjZDQ4NmRjNwogICAgIGNjNGJiMGVhMWNhOGUwZjQKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDZiMDZiNzU0MWNlNDNjZC43ZDhmZTk0NDhmNWMxMTA1CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxZGUzZDljMzA0MDA3NDMuZmIzNGIwMDQyNGFmMWVhOQogICAgIGNhMWQxYTYxMzlhODRjNGEuY2VhNzM0MGNhNjFjNjE3YS5mNmRmYjIyMjMyMDcyNjJkLjA5YjI4Zjk1NGQzNjIzYzEKICAgICBlMWUwN2YwOWRiYWJlMTVjLjhhZWRlNjU1MDNlNDJlNzcuZTVkNTlhYjk3Yjc0MTg1OC5jMGFkNWIxMjNjZDE2ZGM1CiAgICAgNGUzNTFiZTFlNDQ0MmEzZi5iNWEyMDEyMzRmNGVkMTQ5LjNiNzhmYjhjMWRmMGRmYmQuYjhmMTkyZTBjZDQ4NmRjNwogICAgIGNjNGJiMGVhMWNhOGUwZjQKLVZQQ0xNVUxRRFFfMHgwMChtZW0pCitWUE1VTEhSU1dfMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgZGE4NzJmMWM0M2ZjODI3Ny42YzZhZWE1N2VmZmQ2MjljLjJhOTRmZjYzYTc2NjA0MWMuNTUxM2QxMDZiMzA4YjgwNwogICAgIGJkNzE4ZDYyNjE1MDBmN2UuOTljOWU5ZDY5ODY1YzcyMi5jNzhkNWUwMjI2Mzk4MzFiLjhmZjMxODkzZGE0N2RmZTMKQEAgLTQyNTQ2LDExICs0MjU0NiwxMSBAQAogICBhZnRlcgogICAgIGRhODcyZjFjNDNmYzgyNzcuNmM2YWVhNTdlZmZkNjI5Yy4yYTk0ZmY2M2E3NjYwNDFjLjU1MTNkMTA2YjMwOGI4MDcKICAgICBiZDcxOGQ2MjYxNTAwZjdlLjk5YzllOWQ2OTg2NWM3MjIuYzc4ZDVlMDIyNjM5ODMxYi44ZmYzMTg5M2RhNDdkZmUzCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI5YmFjYjg1NDBiNTEwNTAuY2M1ZDVlMDE1YWMzZDdhOQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5lZDM5ZmY4ZGU1OGJmYmZlLmI1ODdmNmZiMTZhZjEyMGYKICAgICA3MTdlZDNkYWVjMmFkOGMyLjhjMzg2MzlmMzc2YjAyNTMuZTVjODJkMDkwYjNlNTk1MC5kNGIyZWE5NjQ5NmIwNjAwCiAgICAgOTYyOTZkZTRjOTY4N2U5OQogCi1WUENMTVVMUURRXzB4MDEocmVnKQorVkJST0FEQ0FTVEYxMjgocmVnKQogICBiZWZvcmUKICAgICBlODE1NTJmNTQ5YmMzNDczLmZhMzliM2U1OTJjNzhkNTcuMGJlMGQ4YzE2MzIyNTI1Ny4xZWExOTU0YWE4ODcyN2RkCiAgICAgMjZjMTkzMzU2NmY0NjQzYi5jOWQyNjFiMzlkOTUxYzIwLjA4ZTI2YjljOWZiN2JkMzMuZWZiMTRkOThkZGJjMzE0NwpAQCAtNDI1NTgsMTIgKzQyNTU4LDEyIEBACiAgICAgZDY4ZDFkZjNlNjNkMjA0NC5hNGNlMTk0YzU0ZjJiYmY5LmViMjhkZjJlYjFhOGQ2MjEuYzVhYTlkMTA3ZTEzZWQ2MAogICAgIDgyMmIyZTEyMjE0ZTE1NjcKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDE4NWQyMzcwMzk2MWNmOS42MzQ3MGJiZTQ2ZWUxNzdiCisgICAgZTgxNTUyZjU0OWJjMzQ3My5mYTM5YjNlNTkyYzc4ZDU3LjBiZTBkOGMxNjMyMjUyNTcuMWVhMTk1NGFhODg3MjdkZAogICAgIDI2YzE5MzM1NjZmNDY0M2IuYzlkMjYxYjM5ZDk1MWMyMC4wOGUyNmI5YzlmYjdiZDMzLmVmYjE0ZDk4ZGRiYzMxNDcKICAgICBhYzdiMmUxMGJjOWI0OTlkLmI4MTU1YTMxMmE5ZjQyNDcuZGU4YzE5OWQ4NGI1ODA5Mi4zMmM2ZDFlMWM2ZTYzNWI5CiAgICAgZDY4ZDFkZjNlNjNkMjA0NC5hNGNlMTk0YzU0ZjJiYmY5LmViMjhkZjJlYjFhOGQ2MjEuYzVhYTlkMTA3ZTEzZWQ2MAogICAgIDgyMmIyZTEyMjE0ZTE1NjcKLVZQQ0xNVUxRRFFfMHgwMShtZW0pCitWQlJPQURDQVNURjEyOChtZW0pCiAgIGJlZm9yZQogICAgIDQ2MTNmZWQxY2NhMzZiZmIuMDA0NDVmNDk4MDY3MjRkZC42YWM5MWFlZjM4OTk0MzYxLjg5MDNiOGJkYmYxZGZkOGMKICAgICBlZTJmOGIzYTlhMWZhOTQ4Ljg2ZWNlZDdkMjdhNDkzMTMuZTRkMWRhMDVmMWEwOTVhYy4xNjY5YTBiNDRjOWYyZjdlCkBAIC00MjU3MywxMSArNDI1NzMsMTEgQEAKICAgYWZ0ZXIKICAgICA0NjEzZmVkMWNjYTM2YmZiLjAwNDQ1ZjQ5ODA2NzI0ZGQuNmFjOTFhZWYzODk5NDM2MS44OTAzYjhiZGJmMWRmZDhjCiAgICAgZWUyZjhiM2E5YTFmYTk0OC44NmVjZWQ3ZDI3YTQ5MzEzLmU0ZDFkYTA1ZjFhMDk1YWMuMTY2OWEwYjQ0YzlmMmY3ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NWFiZjg4NzcyNmU3YmM1LmY2ZjcwMzgzOTk0YzExZDAKLSAgICA1NTMyY2FiYjEyYmFkMGJiLjE2M2VlMTM0MGE4OTlkMDkuNjczYzgzM2Y1NGZmOGE5OS42ODA2OGU4ZjUyZmJhNmE5CisgICAgNTQ0YTUwM2FhOGNkOGM3OS5jNGQxYzRmZDc3ODFhNzkzLmVmYjRkMzdjOWMxMzZlMDUuZWNhNjk0ODFmNGJhYThhMworICAgIDZhYzkxYWVmMzg5OTQzNjEuODkwM2I4YmRiZjFkZmQ4Yy42YWM5MWFlZjM4OTk0MzYxLjg5MDNiOGJkYmYxZGZkOGMKICAgICBlN2Q0OGM0YTAzZWM2MzM5CiAKLVZQQ0xNVUxRRFFfMHgwMShyZWcpCitWQlJPQURDQVNURjEyOChyZWcpCiAgIGJlZm9yZQogICAgIGMzNWQ4OTFlYTIxYzFjMDIuY2RiMjc0YWJmMmYxMzAzOS5kNzgxM2Y4ZTdmNDhiMDIwLjI5MzY2NTNhMzU2ZmE0OTQKICAgICA1OWVlODI3N2NiMTQwY2FlLjk5OTVjOWY0Njc3ZTY5MjAuNjVlNGRhNzc3MDRhMWQ4NS4wZjZlZjU1OTVjNzA3YTIxCkBAIC00MjU4NSwxMiArNDI1ODUsMTIgQEAKICAgICAyNDUyNTQ2ODJlOTI4NTYxLjk4Yjc2YTQ2N2FjYjU1ZDguNTUzZGI4YTYzNzQ5ZjVlNy5iYWM3MTBiNGViNTI0NGEzCiAgICAgMzc4MTkzYzc4YTRjYjFmMAogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yMDBkZmYwODM5ODBhYzUyLmNiYjlhNWMyYjU4NzA3NTkKKyAgICBjMzVkODkxZWEyMWMxYzAyLmNkYjI3NGFiZjJmMTMwMzkuZDc4MTNmOGU3ZjQ4YjAyMC4yOTM2NjUzYTM1NmZhNDk0CiAgICAgNTllZTgyNzdjYjE0MGNhZS45OTk1YzlmNDY3N2U2OTIwLjY1ZTRkYTc3NzA0YTFkODUuMGY2ZWY1NTk1YzcwN2EyMQogICAgIDA2ZDE3MWMxMWI2MzcxZWEuOTNhODQ3ODQ4YTZlMzc5Yy4xYmI0YWY1Yjc5MWMyMGUzLmY2YjBiMDg5ZTUwZGM1NmQKICAgICAyNDUyNTQ2ODJlOTI4NTYxLjk4Yjc2YTQ2N2FjYjU1ZDguNTUzZGI4YTYzNzQ5ZjVlNy5iYWM3MTBiNGViNTI0NGEzCiAgICAgMzc4MTkzYzc4YTRjYjFmMAotVlBDTE1VTFFEUV8weDAxKG1lbSkKK1ZCUk9BRENBU1RGMTI4KG1lbSkKICAgYmVmb3JlCiAgICAgNDlhOGI0YWZkZjA1Y2E4MC4xMGJmMjZkOTlmMmY4NGMwLjg0OGVhYzI2NTBhNDgwMDEuNmVjYmYzYzQ0NTVlZDczYwogICAgIGNjMDlmMDU3MDY4YzQ4N2UuMjY2M2UzN2UwYWM1YWNiMi4zM2Y5OGIxMDJiMDI3NDQyLmM0YTk1YjIyM2ZlNjAzOTAKQEAgLTQyNjAwLDExICs0MjYwMCwxMSBAQAogICBhZnRlcgogICAgIDQ5YThiNGFmZGYwNWNhODAuMTBiZjI2ZDk5ZjJmODRjMC44NDhlYWMyNjUwYTQ4MDAxLjZlY2JmM2M0NDU1ZWQ3M2MKICAgICBjYzA5ZjA1NzA2OGM0ODdlLjI2NjNlMzdlMGFjNWFjYjIuMzNmOThiMTAyYjAyNzQ0Mi5jNGE5NWIyMjNmZTYwMzkwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBiYTI1M2E2YTJlMzdjZTAuZjhmODQ4N2ZhZTc3ZDE3OAotICAgIDk1YTlhNTk2MzcyZDZhNzYuNDA3ZTBmMTg0MDBkNjIwMi40YWJhMGRiMjU5ODNhNmJmLjkzODlhMzRhNmE3ZjI5ZGYKKyAgICA5YzcwYzFhYTE5ZWFlYTE3LmMyODk4N2M1MGNlMDM3ZTQuODFjMzgyZjAyNGYzZWRjOC5iMjI1ZWMyYWMyNmRiNThjCisgICAgODQ4ZWFjMjY1MGE0ODAwMS42ZWNiZjNjNDQ1NWVkNzNjLjg0OGVhYzI2NTBhNDgwMDEuNmVjYmYzYzQ0NTVlZDczYwogICAgIGM1MjI3YmVkZDJhOTlhMzMKIAotVlBDTE1VTFFEUV8weDAxKHJlZykKK1ZCUk9BRENBU1RGMTI4KHJlZykKICAgYmVmb3JlCiAgICAgYTMzYzcwN2Y5Nzc3NDUzNC45MzgwMTcwNjdhNjE4NWM4LmZkOGU3NmU1NDNkNzY5YjcuNmFhOGE4NDNlNmJjNWM1MgogICAgIDg4MjM3ZTZiNTQ3MzY2OGYuNzJjMDkzZTZmZTkwZjczOS41MzA1Yjg5N2IwY2E4N2IwLmJkNWFkMDhkZTZhY2NiYWUKQEAgLTQyNjEyLDEyICs0MjYxMiwxMiBAQAogICAgIGRiODdkNjA2MjcyYWY4MDIuNDNhZjlhYTYzYjE0Y2UyNi4zZDU4YmQ1YTNhNWRmYjFjLjZjM2FiNDAwYjBkZmMzNmYKICAgICA3ZmZmNjgwMWIzM2FjNDJkCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA2M2UwOGMyM2RmNjdlZmIuN2YyNTM5YTc5ZjU0MDUyMAorICAgIGEzM2M3MDdmOTc3NzQ1MzQuOTM4MDE3MDY3YTYxODVjOC5mZDhlNzZlNTQzZDc2OWI3LjZhYThhODQzZTZiYzVjNTIKICAgICA4ODIzN2U2YjU0NzM2NjhmLjcyYzA5M2U2ZmU5MGY3MzkuNTMwNWI4OTdiMGNhODdiMC5iZDVhZDA4ZGU2YWNjYmFlCiAgICAgZDIyM2ExMWZhNTJiMzhmMC4wZTM3OTYyMmUwYzg3YmY0LjlmMmZkMTlhMjQ3M2Y5OTguMWY5YzAwN2U3NTVlYWZmZQogICAgIGRiODdkNjA2MjcyYWY4MDIuNDNhZjlhYTYzYjE0Y2UyNi4zZDU4YmQ1YTNhNWRmYjFjLjZjM2FiNDAwYjBkZmMzNmYKICAgICA3ZmZmNjgwMWIzM2FjNDJkCi1WUENMTVVMUURRXzB4MDEobWVtKQorVkJST0FEQ0FTVEYxMjgobWVtKQogICBiZWZvcmUKICAgICAzNmI5OTk2Yzk5N2I2ZTYzLjAwOWQxNzhkNzVmZGUyNzIuZWRmNTFkNWYyYjgxYWNmYS44OWNiNzk0MzhmMTVjOGU4CiAgICAgNmMzMmMxMmQ3ZWFmN2MzZS45ZWFmNjIxZTJjMmYzMmViLmU4ZDU5YTM3Y2UxYWQwOWQuZGVkNjAwYzFiZTI1OWVhNwpAQCAtNDI2MjcsMTEgKzQyNjI3LDExIEBACiAgIGFmdGVyCiAgICAgMzZiOTk5NmM5OTdiNmU2My4wMDlkMTc4ZDc1ZmRlMjcyLmVkZjUxZDVmMmI4MWFjZmEuODljYjc5NDM4ZjE1YzhlOAogICAgIDZjMzJjMTJkN2VhZjdjM2UuOWVhZjYyMWUyYzJmMzJlYi5lOGQ1OWEzN2NlMWFkMDlkLmRlZDYwMGMxYmUyNTllYTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzM4Y2JhMWUwZmMxMTcxNS5iOTBkNTU2YTEyODRkNjg4Ci0gICAgYzQ5NGViNjFiNzFkYjc5MS5iMWZhMDQxMjQzZTFmMmFiLjQwOTI3M2Y4OTYwMWRlZmYuMThkZjVmMmQxYzgzNGZiMAorICAgIGZkMzc1ZTMwN2ZlMWFiZTkuMGYwYWIzMjZlODRjMjMxYi4wZjFiOGUxYjNkZWJmODNiLjlhYzM0ZTQwNjQxYmI3MDYKKyAgICBlZGY1MWQ1ZjJiODFhY2ZhLjg5Y2I3OTQzOGYxNWM4ZTguZWRmNTFkNWYyYjgxYWNmYS44OWNiNzk0MzhmMTVjOGU4CiAgICAgYjQ3NjMwZjI4MmU4YTQ1MgogCi1WUENMTVVMUURRXzB4MTAocmVnKQorVlBFWFRSV18xMjhfMHgwKHJlZykKICAgYmVmb3JlCiAgICAgY2FkM2JjZmQzM2Q2ZjA5Ny45ZjE1ZTVhYzQzNzA1YjYyLmRlY2I1MzRjZGM3OWRiNDkuNTYwOGM3YjlmNTY3M2UxNQogICAgIGI2NDRmZmI5Y2JkOTcwMmQuNjk4NmM2ZmQzZWU1NTU4Ny5mM2M4OWI0MjRkYTAxOWExLjJjNDcwNTQ5NzUyYWQ2YWIKQEAgLTQyNjM5LDEyICs0MjYzOSwxMiBAQAogICAgIDdmOGQ5YmYzMWQ1MWZhZjYuMzk2NzMyNjJmMzY2MzU3Zi40NjdhMDYwZTI3Y2Q4NzJlLjhkNTMyZjhiNDlmMzk5MDEKICAgICBjZWI4MTQxNGQ2MTMzYzFhCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhYzQxMDhjODBlMzk5N2UuZGM0ZjlkZDZhYTc1N2E3OQorICAgIGNhZDNiY2ZkMzNkNmYwOTcuOWYxNWU1YWM0MzcwNWI2Mi5kZWNiNTM0Y2RjNzlkYjQ5LjU2MDhjN2I5ZjU2NzNlMTUKICAgICBiNjQ0ZmZiOWNiZDk3MDJkLjY5ODZjNmZkM2VlNTU1ODcuZjNjODliNDI0ZGEwMTlhMS4yYzQ3MDU0OTc1MmFkNmFiCiAgICAgZDMxM2Y1OTFlNTdlNWZiZC5mZGIyMGM0MWM1ODk1ZjJjLjRjM2ZkODVmMzJlM2VhNWYuYTAxY2E5OTYzMjU0NjBlYgogICAgIDdmOGQ5YmYzMWQ1MWZhZjYuMzk2NzMyNjJmMzY2MzU3Zi40NjdhMDYwZTI3Y2Q4NzJlLjhkNTMyZjhiNDlmMzk5MDEKLSAgICBjZWI4MTQxNGQ2MTMzYzFhCi1WUENMTVVMUURRXzB4MTAobWVtKQorICAgIDAwMDAwMDAwMDAwMDNlMTUKK1ZQRVhUUldfMTI4XzB4MChtZW0pCiAgIGJlZm9yZQogICAgIDQxMTZkMzFkZjNiZjA3NjIuMTVmZWViNGExMGRjN2Q4Mi5mODZmYjQ0ZWU1OGE5NWFhLjNiYzYyMmJkY2FlYTJmYmEKICAgICBjMDNiZTg5MmJmMDNiNDA0LmYwYjJlMzAyNTlhZDI0MGQuMTU5NzBmZWZiNjAxMzlkOS44ODZmMjZkN2I0YzcxY2IxCkBAIC00MjY1MiwxMyArNDI2NTIsMTMgQEAKICAgICA1NjA1MDU3MWNlODRhNjA5LmU5MTNiODQ2NjA0ZmNkZDMuZGQ3NzNjMDU2NjE1M2ZmNi45YTA4ZGNmZGQzZWZiODhhCiAgICAgMTc4Zjg0ZTAzZjUxZGZjNQogICBhZnRlcgotICAgIDQxMTZkMzFkZjNiZjA3NjIuMTVmZWViNGExMGRjN2Q4Mi5mODZmYjQ0ZWU1OGE5NWFhLjNiYzYyMmJkY2FlYTJmYmEKKyAgICA0MTE2ZDMxZGYzYmYwNzYyLjE1ZmVlYjRhMTBkYzdkODIuZjg2ZmI0NGVlNThhOTVhYS4zYmM2MjJiZGNhZWE4YmJjCiAgICAgYzAzYmU4OTJiZjAzYjQwNC5mMGIyZTMwMjU5YWQyNDBkLjE1OTcwZmVmYjYwMTM5ZDkuODg2ZjI2ZDdiNGM3MWNiMQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43YmQwODZiZThiZmNmOTg1LmRlZWJjOWFjMDE0Y2Y3NGEKKyAgICAyOWYxY2Y2MDU0ZWJmZjJkLjZlZjU3ZTg3OTU0ZjJhNDQuNmVhYmJlMzM4MmQ2ZGUzOS44OWMxMTBjODgzZWY4YmJjCiAgICAgNTYwNTA1NzFjZTg0YTYwOS5lOTEzYjg0NjYwNGZjZGQzLmRkNzczYzA1NjYxNTNmZjYuOWEwOGRjZmRkM2VmYjg4YQogICAgIDE3OGY4NGUwM2Y1MWRmYzUKIAotVlBDTE1VTFFEUV8weDEwKHJlZykKK1ZQRVhUUldfMTI4XzB4MChyZWcpCiAgIGJlZm9yZQogICAgIDVjYTQwNmRlNjNhMzNiMTkuMjQ0MzA0YjM0YWQ5NjNjMy5iZjU3OGVhOTU0Mzg0NjY1LjNmYzYwODUxN2VjYTFhM2IKICAgICBjNTkxNWQ2NGRjNzEwOTM0LjcwNzc0YTEwZTNmNmYzODcuNGIwZWZiMWQxMDk2ZDRhNy43MTY2OWIwM2U1MDIyOTM1CkBAIC00MjY2NiwxMiArNDI2NjYsMTIgQEAKICAgICA3MzI2N2FiNDNjYWVlYTY5LmVlZjA5OWQwZGViYTdiZTAuZjMwNThhZWE0OWUyMWFlYS5iMGM0MGE0OTExMjlkNWY2CiAgICAgNzcxYmRlYjYwZjJmZWExNgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yOTc0NTRlNDlhNmE0OTJhLjIyNTU3ZjU2ZDgwYWFjOTQKKyAgICA1Y2E0MDZkZTYzYTMzYjE5LjI0NDMwNGIzNGFkOTYzYzMuYmY1NzhlYTk1NDM4NDY2NS4zZmM2MDg1MTdlY2ExYTNiCiAgICAgYzU5MTVkNjRkYzcxMDkzNC43MDc3NGExMGUzZjZmMzg3LjRiMGVmYjFkMTA5NmQ0YTcuNzE2NjliMDNlNTAyMjkzNQogICAgIGFlYTM4NWRjNDY0Njg1YmYuMTQ2ZDUyNzZiNmU4MTE4My5lODg0ZmIwZjJkZjZiMTQ0LjRkMjE3MjA3YjdjODI4MGYKICAgICA3MzI2N2FiNDNjYWVlYTY5LmVlZjA5OWQwZGViYTdiZTAuZjMwNThhZWE0OWUyMWFlYS5iMGM0MGE0OTExMjlkNWY2Ci0gICAgNzcxYmRlYjYwZjJmZWExNgotVlBDTE1VTFFEUV8weDEwKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAxYTNiCitWUEVYVFJXXzEyOF8weDAobWVtKQogICBiZWZvcmUKICAgICA3Y2YyNmEzOGNjZTkyNDlhLjcwNjUzODU3NWEzNTc1ZGMuZDhjZTk5MDk3Nzc5ZWJjZC5jOWRkYTQxOTAwZTk0YjQyCiAgICAgOWMxNTJiYmQ2NDYwM2ZhZi4wMWFlYmMzMTNkNjg2MmM0LmFmZDFkMDBmOWUzMDFkNzQuYzQ1ODQ2MGFlZDk0N2ZmYgpAQCAtNDI2NzksMTMgKzQyNjc5LDEzIEBACiAgICAgOWU2ZTM4N2M5N2JhMDYzYi40ZjhhMDMzYWMwMDA1MWE2Ljk0NzlkMTMwMDViN2JiYTIuOWQ2NjBmZGZkYjBjZTMzYQogICAgIDMyOTEyZTliMTNlZjhiMTkKICAgYWZ0ZXIKLSAgICA3Y2YyNmEzOGNjZTkyNDlhLjcwNjUzODU3NWEzNTc1ZGMuZDhjZTk5MDk3Nzc5ZWJjZC5jOWRkYTQxOTAwZTk0YjQyCisgICAgN2NmMjZhMzhjY2U5MjQ5YS43MDY1Mzg1NzVhMzU3NWRjLmQ4Y2U5OTA5Nzc3OWViY2QuYzlkZGE0MTkwMGU5ZjRiZQogICAgIDljMTUyYmJkNjQ2MDNmYWYuMDFhZWJjMzEzZDY4NjJjNC5hZmQxZDAwZjllMzAxZDc0LmM0NTg0NjBhZWQ5NDdmZmIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTkwYTlkN2ZlYjkxZmY0OS5lZWQ5MTdiZWE3ZjY4OThmCisgICAgYjM0ZjliMmZmNGEyZjY4MS44MjRiMDFhZTgwZDJlY2NlLjRmYzZiOWNkNmZlYmNmMDIuNDJjMTZiMjhhZDcxZjRiZQogICAgIDllNmUzODdjOTdiYTA2M2IuNGY4YTAzM2FjMDAwNTFhNi45NDc5ZDEzMDA1YjdiYmEyLjlkNjYwZmRmZGIwY2UzM2EKICAgICAzMjkxMmU5YjEzZWY4YjE5CiAKLVZQQ0xNVUxRRFFfMHgxMChyZWcpCitWUEVYVFJXXzEyOF8weDAocmVnKQogICBiZWZvcmUKICAgICA1ZDhmYzVjOGYyYTgyNjA4LjM3M2M3ZDhmNmFiNTJiMDkuYzNiNWJmNDE5ODdjY2JmNy41YmI2OTIyMjdkOWU5ZTgxCiAgICAgN2JhY2NlZDMxNGMzZjFiMi41Yjg2ZTc1NDg4OWUyMDE4LjNjMTkyZjJmYTVkNTk2NmUuN2U0ODdhOTBmMmFmMzRjYQpAQCAtNDI2OTMsMTIgKzQyNjkzLDEyIEBACiAgICAgZmI3MjJiMmU4ZTRjMDdlOS5iNGJkMTZhNDE3NmE2ZGE5LmE5YmIyMDcxY2M0NzEzN2QuNGI5ZmFjOTE0NDc4Njc0ZAogICAgIGFkZmJlZWZjNTk0OTdkZGUKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDY2MzBhYjY3ODMzNDUyMC5lNGRhZmNhMGQ5Yzg1ZTk2CisgICAgNWQ4ZmM1YzhmMmE4MjYwOC4zNzNjN2Q4ZjZhYjUyYjA5LmMzYjViZjQxOTg3Y2NiZjcuNWJiNjkyMjI3ZDllOWU4MQogICAgIDdiYWNjZWQzMTRjM2YxYjIuNWI4NmU3NTQ4ODllMjAxOC4zYzE5MmYyZmE1ZDU5NjZlLjdlNDg3YTkwZjJhZjM0Y2EKICAgICBlNjMzNDcyNjE0Y2EyOGM0LmU2MThmMGI3MGU4MWEyOTQuMTUwMjUxNzA4Mjk0ZjBiNy5kYWZkMDQ2NzgwZjMzOGFhCiAgICAgZmI3MjJiMmU4ZTRjMDdlOS5iNGJkMTZhNDE3NmE2ZGE5LmE5YmIyMDcxY2M0NzEzN2QuNGI5ZmFjOTE0NDc4Njc0ZAotICAgIGFkZmJlZWZjNTk0OTdkZGUKLVZQQ0xNVUxRRFFfMHgxMChtZW0pCisgICAgMDAwMDAwMDAwMDAwOWU4MQorVlBFWFRSV18xMjhfMHgwKG1lbSkKICAgYmVmb3JlCiAgICAgZGNkZDQ3OTJkYzczMzU4YS4xNmIzNzc1ODFmZDJjOWNlLmExNDNkNDA3YmY2NjNkODIuNTY5Mjk5OWMxZTc5M2M2ZAogICAgIGI0MTEzMTQxZTgwMTRkN2MuOTM0NDI1MGY2MmVhYWIxZi44OTc0YTZjYzIzODFjZDRiLjc3ZDFiNjVmMTViN2E2MzIKQEAgLTQyNzA2LDEzICs0MjcwNiwxMyBAQAogICAgIGNmOWVhZTk3MGU3YTg3ZTUuMjM4MTljZDM3MGZkYmViMy5iYTBiNzcyZDhlNDAyMDYwLjg0YmFkMTU5NWY4NDMwZWUKICAgICAyOGZjYzY2OWViMmNjODNjCiAgIGFmdGVyCi0gICAgZGNkZDQ3OTJkYzczMzU4YS4xNmIzNzc1ODFmZDJjOWNlLmExNDNkNDA3YmY2NjNkODIuNTY5Mjk5OWMxZTc5M2M2ZAorICAgIGRjZGQ0NzkyZGM3MzM1OGEuMTZiMzc3NTgxZmQyYzljZS5hMTQzZDQwN2JmNjYzZDgyLjU2OTI5OTljMWU3OThlNzkKICAgICBiNDExMzE0MWU4MDE0ZDdjLjkzNDQyNTBmNjJlYWFiMWYuODk3NGE2Y2MyMzgxY2Q0Yi43N2QxYjY1ZjE1YjdhNjMyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjM1Nzg3MGYyZTZlODc4NGEuYzdhM2QxZmE1YTdhNWY2NAorICAgIDExNjMyYWY0OWFmZjdlZTEuY2U2ZjMzYmVmNDFmZTg4Ny40ODFlMDhkZjVmYzVkYTMxLjY3YzU3NTI1NGM4YzhlNzkKICAgICBjZjllYWU5NzBlN2E4N2U1LjIzODE5Y2QzNzBmZGJlYjMuYmEwYjc3MmQ4ZTQwMjA2MC44NGJhZDE1OTVmODQzMGVlCiAgICAgMjhmY2M2NjllYjJjYzgzYwogCi1WUENMTVVMUURRXzB4MTEocmVnKQorVlBFWFRSV18xMjhfMHgxKHJlZykKICAgYmVmb3JlCiAgICAgYjFkNzUwYzA4YzBmOTIwZi5jYTkwMzcxNjVlN2QyMmIzLmVlYzU1ZGI5NzMxMTY3NGUuYmIwODZlYTBjY2ZlNWIwNAogICAgIDc5OTY2Y2NhZGNiOWM5MTUuZGQwMzQzNWRhODE0MGQ3Ny44Yjg5NzBkYzk4ZTYyMDA1LjI3ZTA2OTI2MzYwOTQ2NDcKQEAgLTQyNzIwLDEyICs0MjcyMCwxMiBAQAogICAgIDNhZjQ0N2E4MDA5MzcwNjQuYzA5ZmQxZjQ5OTMwYmQ5NS5hYmJkODE4OWJhMDRiMDc2LmFmNTU1YzE4ZmQzYjFmNjEKICAgICA4NDhhNGI1YjkxN2E4NDhmCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI5NmY3Njk2OTM4ZDA2ZjMuZmI1MDkxZjljMDIwMzY5NAorICAgIGIxZDc1MGMwOGMwZjkyMGYuY2E5MDM3MTY1ZTdkMjJiMy5lZWM1NWRiOTczMTE2NzRlLmJiMDg2ZWEwY2NmZTViMDQKICAgICA3OTk2NmNjYWRjYjljOTE1LmRkMDM0MzVkYTgxNDBkNzcuOGI4OTcwZGM5OGU2MjAwNS4yN2UwNjkyNjM2MDk0NjQ3CiAgICAgZGU4NzE1ZjM3YWI2YWFmNy5lNmM0NGQ1OTA4NGMwMTVmLjU2MThkM2E4N2MwODI0ODQuZGE2MWU0YWFlODZmOWU1OAogICAgIDNhZjQ0N2E4MDA5MzcwNjQuYzA5ZmQxZjQ5OTMwYmQ5NS5hYmJkODE4OWJhMDRiMDc2LmFmNTU1YzE4ZmQzYjFmNjEKLSAgICA4NDhhNGI1YjkxN2E4NDhmCi1WUENMTVVMUURRXzB4MTEobWVtKQorICAgIDAwMDAwMDAwMDAwMGNjZmUKK1ZQRVhUUldfMTI4XzB4MShtZW0pCiAgIGJlZm9yZQogICAgIDM0Y2EyZjYxYzEzNzhhMGQuZWIyYWZlNTMwYWRjNTgwNi40NzYwNGIxYjc4Y2NmYjQ1LmU2YzU3NmVjZWY2NTAwODcKICAgICA5YmUyODMxNmE4N2ZlZDA4LjRiNzUzNjYyMzUxYjllOGEuNTdkMjM3YmJjMDJkNzg5Yy42MzdjYWUzYmI2Yjg1MDY1CkBAIC00MjczMywxMyArNDI3MzMsMTMgQEAKICAgICBmZGM5NmMzODBkZGNiOTI0LjhiNzkxYjU4NWNiMTM0ZTYuODFmZDU3MTJmYzZiMWVlZS45MzI3ZDg1MTZiNjFkZTMyCiAgICAgZmRiMmMyZjA5MmNmOTU3YQogICBhZnRlcgotICAgIDM0Y2EyZjYxYzEzNzhhMGQuZWIyYWZlNTMwYWRjNTgwNi40NzYwNGIxYjc4Y2NmYjQ1LmU2YzU3NmVjZWY2NTAwODcKKyAgICAzNGNhMmY2MWMxMzc4YTBkLmViMmFmZTUzMGFkYzU4MDYuNDc2MDRiMWI3OGNjZmI0NS5lNmM1NzZlY2VmNjVhYjg4CiAgICAgOWJlMjgzMTZhODdmZWQwOC40Yjc1MzY2MjM1MWI5ZThhLjU3ZDIzN2JiYzAyZDc4OWMuNjM3Y2FlM2JiNmI4NTA2NQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNDRjYWExNjgzZmM1ODAxLmIzNDAxMDNlYTJlOGI5ZWMKKyAgICA5NDllYzQ2NDYzNWM2OGFjLmI3MjFlYzNmMWNkZTdlOWIuY2JjMzEyYmY4ZDVlZjBjNi43ZTJlMjZlNGFiODhkYmJhCiAgICAgZmRjOTZjMzgwZGRjYjkyNC44Yjc5MWI1ODVjYjEzNGU2LjgxZmQ1NzEyZmM2YjFlZWUuOTMyN2Q4NTE2YjYxZGUzMgogICAgIGZkYjJjMmYwOTJjZjk1N2EKIAotVlBDTE1VTFFEUV8weDExKHJlZykKK1ZQRVhUUldfMTI4XzB4MShyZWcpCiAgIGJlZm9yZQogICAgIDFhMWNlMDJjYmI1ZjNjM2UuYjAzMWY5N2VjMzBiOWE5ZC4yNGNiYmYxNzkwMWVmYjE2LjU0NGQ4MmEyMjk2MWJmNDEKICAgICA0NWIyMmM3MTgyOWMwZTJhLjhiYTBlNjIzYTBmM2M3NDIuZGM2MWQ0ZWE1NWIzMTBkOC4xZjdmMTA1YTJmNGI4ZmViCkBAIC00Mjc0NywxMiArNDI3NDcsMTIgQEAKICAgICAzNDhkNDNjNjVjNGYyNjI3LjI1YzdkMTM2NDEyNGY5YzIuMWM4YzQzNzkwMDgzMTNjMS4xMWI4NDFmMjM3MmNhYmYyCiAgICAgZjA1OGRkYWE3MTNiNmZhNwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZGFlZjY3MmQ3NGM3NWEzLjg3OGQ3ZjQ4YzI1NmMxNDAKKyAgICAxYTFjZTAyY2JiNWYzYzNlLmIwMzFmOTdlYzMwYjlhOWQuMjRjYmJmMTc5MDFlZmIxNi41NDRkODJhMjI5NjFiZjQxCiAgICAgNDViMjJjNzE4MjljMGUyYS44YmEwZTYyM2EwZjNjNzQyLmRjNjFkNGVhNTViMzEwZDguMWY3ZjEwNWEyZjRiOGZlYgogICAgIGQ5YmVhNDJiODQxMzQ4ZTguNjllNGFmMTFjMWEzZmU0MC4xMDg4NTczYzQ2ZmNhZWQ4LmMwNWY3YjI2MmEzNTRhMTcKICAgICAzNDhkNDNjNjVjNGYyNjI3LjI1YzdkMTM2NDEyNGY5YzIuMWM4YzQzNzkwMDgzMTNjMS4xMWI4NDFmMjM3MmNhYmYyCi0gICAgZjA1OGRkYWE3MTNiNmZhNwotVlBDTE1VTFFEUV8weDExKG1lbSkKKyAgICAwMDAwMDAwMDAwMDAyOTYxCitWUEVYVFJXXzEyOF8weDEobWVtKQogICBiZWZvcmUKICAgICAzNzA5Y2MzYmY1NmY1MjYzLmIxNmEwNWFlYTdkY2UzOTEuOWQxNmM2N2QzYzg0NzVmNS41Y2I5OTQwZDFlZDc3OTQwCiAgICAgYzQ5ODg4OGZkZmQzMGY1MS5hYmEzZTY0ZjAwNDdiY2QzLmFiOWMwY2QyZDBjZTJkMDUuMmM1YTQ2NjQzYzgxMWQwMApAQCAtNDI3NjAsMTMgKzQyNzYwLDEzIEBACiAgICAgMWI4MDVjMzQ1MjViMGE3Ni44YTU1ZjY2ZDRlZTRiMjhkLmZkODE3OTU2MmM1MTQ1NmEuZWQyY2JlMGNlYjBjMGRmNgogICAgIDk1ZjU3YzM1YjMwNGQyODMKICAgYWZ0ZXIKLSAgICAzNzA5Y2MzYmY1NmY1MjYzLmIxNmEwNWFlYTdkY2UzOTEuOWQxNmM2N2QzYzg0NzVmNS41Y2I5OTQwZDFlZDc3OTQwCisgICAgMzcwOWNjM2JmNTZmNTI2My5iMTZhMDVhZWE3ZGNlMzkxLjlkMTZjNjdkM2M4NDc1ZjUuNWNiOTk0MGQxZWQ3ZjcwZgogICAgIGM0OTg4ODhmZGZkMzBmNTEuYWJhM2U2NGYwMDQ3YmNkMy5hYjljMGNkMmQwY2UyZDA1LjJjNWE0NjY0M2M4MTFkMDAKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNTgyN2Y2OTc4Y2ViMTNhMS42NTRmM2I4YzcyNzA4YjIxCisgICAgNzFkMThmOTQ0OTczNjM5ZS44MDgyZTMxNTA0MWJlZDk4LjJjMjcxZTIxMTYwZWRmMWQuZTliZDU1ZWJmNzBmM2FhZQogICAgIDFiODA1YzM0NTI1YjBhNzYuOGE1NWY2NmQ0ZWU0YjI4ZC5mZDgxNzk1NjJjNTE0NTZhLmVkMmNiZTBjZWIwYzBkZjYKICAgICA5NWY1N2MzNWIzMDRkMjgzCiAKLVZQQ0xNVUxRRFFfMHgxMShyZWcpCitWUEVYVFJXXzEyOF8weDEocmVnKQogICBiZWZvcmUKICAgICAzZDYyOGJkMGViODRjNTAyLjlmNzE2YjVkMTM5OGMwMDQuMjc2NjFkYzE3YjJlNDY1ZC5mODc4OTc1ZDJkYTIxYjE4CiAgICAgNDBiZmU3NGIzMDE3MjExZS5kNzcwMzhmYWFhMzU0MDc1LmIxMDI1NDdmMjY4NmU2YjYuZmJkNmY2MjIzNjBlMWY1MgpAQCAtNDI3NzQsMTIgKzQyNzc0LDEyIEBACiAgICAgY2M3ZTc3OGQ0ZmE3MDdlMC5kN2M2ZmUzZmM5YzA5MWFmLjAwMGFkZWU1Njg4ZTM5YWMuODRmYTY0OTdjZjY0OWMxYwogICAgIGMzNTc2YzFlOTY2NjhlMDMKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWIxNGMyZGIwNDcyOGZmMS4wNTgwNTUwODYxM2JjZjM2CisgICAgM2Q2MjhiZDBlYjg0YzUwMi45ZjcxNmI1ZDEzOThjMDA0LjI3NjYxZGMxN2IyZTQ2NWQuZjg3ODk3NWQyZGEyMWIxOAogICAgIDQwYmZlNzRiMzAxNzIxMWUuZDc3MDM4ZmFhYTM1NDA3NS5iMTAyNTQ3ZjI2ODZlNmI2LmZiZDZmNjIyMzYwZTFmNTIKICAgICBmYzVhOGQxMTFkNGEyMzg0LmEwNDg0MGY3MzMzZjQ3ZjUuODY3NDk1MTJlYzc4Y2U0MS5lMDY4MTE5MTYzYTAwYjQ0CiAgICAgY2M3ZTc3OGQ0ZmE3MDdlMC5kN2M2ZmUzZmM5YzA5MWFmLjAwMGFkZWU1Njg4ZTM5YWMuODRmYTY0OTdjZjY0OWMxYwotICAgIGMzNTc2YzFlOTY2NjhlMDMKLVZQQ0xNVUxRRFFfMHgxMShtZW0pCisgICAgMDAwMDAwMDAwMDAwMmRhMgorVlBFWFRSV18xMjhfMHgxKG1lbSkKICAgYmVmb3JlCiAgICAgN2E0ZGEzMTRkNWIzOWMyOC4wYzc2YTMyZDYyYmQwOWRkLjU2YjZlZWMxODljN2Q5Y2YuN2MwZjI5NjYzNzU2NjRhMwogICAgIDgzYTY4NzY0YTc1NjgzYjUuMTg4ZjBjNWNmMDE1NjQyOC5mYWU0OGM2NjhlNWRkZDgyLjU3Y2U3NDAwZjQ1YzhiZDIKQEAgLTQyNzg3LDEzICs0Mjc4NywxMyBAQAogICAgIGZlYjQ0M2MxNzZkMGNiYjkuMDM1NDg2MThmM2MwMTc1Ni4yMTJhYzNjY2Q4NmIwMzUxLjk1YWRmODMwYTk0ZWJjODUKICAgICBiMTY1Mjk5ZGRhNTQzZTYzCiAgIGFmdGVyCi0gICAgN2E0ZGEzMTRkNWIzOWMyOC4wYzc2YTMyZDYyYmQwOWRkLjU2YjZlZWMxODljN2Q5Y2YuN2MwZjI5NjYzNzU2NjRhMworICAgIDdhNGRhMzE0ZDViMzljMjguMGM3NmEzMmQ2MmJkMDlkZC41NmI2ZWVjMTg5YzdkOWNmLjdjMGYyOTY2Mzc1NjNiMmEKICAgICA4M2E2ODc2NGE3NTY4M2I1LjE4OGYwYzVjZjAxNTY0MjguZmFlNDhjNjY4ZTVkZGQ4Mi41N2NlNzQwMGY0NWM4YmQyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjMzNjZmNzJmMGM4ZDUxOWUuNzA2MmRkYmJiNGEwNmYxZQorICAgIGJiMmY5M2Y5Mjk1Y2ZmZDYuNGMxNmFmODc5ODNkNTU2Yy45ZjFjNTQxYmY0OTA1NmY0LmViOTRiYjFmM2IyYWVhZTQKICAgICBmZWI0NDNjMTc2ZDBjYmI5LjAzNTQ4NjE4ZjNjMDE3NTYuMjEyYWMzY2NkODZiMDM1MS45NWFkZjgzMGE5NGViYzg1CiAgICAgYjE2NTI5OWRkYTU0M2U2MwogCi1WUENMTVVMUURRXzB4RkYocmVnKQorVlBFWFRSV18xMjhfMHgyKHJlZykKICAgYmVmb3JlCiAgICAgOWMwODQ5ZDM2OWM2YWMyOC4yODAxMTRhN2FiYmVhNDg3LjliOTg4ZjdjYTAyYmU4OTEuNWNkOTU0NjY1NmZiOWVjNAogICAgIGIwZTE1NDNmZjIzMjQxODAuMTVlMjgxOTdlMzMzNDY2Zi42ZjJkYzUyMDM4MDgwMmNiLjJjZjY4M2QzODk0YmU0NzkKQEAgLTQyODAxLDEyICs0MjgwMSwxMiBAQAogICAgIGM2NjkxYzY1NjQyN2Q0OWMuYTg4ZjFmNDZjZWRmZDQzNy4zYTc5YTlkNDlmNGUwM2U2LmZiYWFhY2RhN2Y1YzYxNWMKICAgICBiMmQ5OWU0YzdhMzUwZmUyCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI5MTc1NDI0ZjRjYmYxYWQuZDUwZGJjMzY2ZmNhNTU1ZgorICAgIDljMDg0OWQzNjljNmFjMjguMjgwMTE0YTdhYmJlYTQ4Ny45Yjk4OGY3Y2EwMmJlODkxLjVjZDk1NDY2NTZmYjllYzQKICAgICBiMGUxNTQzZmYyMzI0MTgwLjE1ZTI4MTk3ZTMzMzQ2NmYuNmYyZGM1MjAzODA4MDJjYi4yY2Y2ODNkMzg5NGJlNDc5CiAgICAgNGEzZTQ2NGIxMjI0M2IxOC5hMTIyMDY3ZDNhM2E2ZDliLmRhNWUyNTZlNTllNmEyYWQuNmQ0ZGNjMDE4ZDY3OTE5ZQogICAgIGM2NjkxYzY1NjQyN2Q0OWMuYTg4ZjFmNDZjZWRmZDQzNy4zYTc5YTlkNDlmNGUwM2U2LmZiYWFhY2RhN2Y1YzYxNWMKLSAgICBiMmQ5OWU0YzdhMzUwZmUyCi1WUENMTVVMUURRXzB4RkYobWVtKQorICAgIDAwMDAwMDAwMDAwMDU0NjYKK1ZQRVhUUldfMTI4XzB4MihtZW0pCiAgIGJlZm9yZQogICAgIDZlYTYxZTQyOWJmZTU4NWEuODBhZmQxZjg4NWM3NDhiNy4wNmYzNDhkY2I4MmUzODcxLmVhYzg0ZmJjYTVjZTYzMWYKICAgICAwYmRjYThhOGZkYzNmOGYwLmQ0NWM2MTZmMTA5MGQ1MTYuOTcxYmZlMmMxNjM0NTU3Mi40NTk4MTI5NDA4ZjFmYzA3CkBAIC00MjgxNCwxMyArNDI4MTQsMTMgQEAKICAgICA1OGI3Y2I3NGY2NzQyYjI5LmJhMWEwM2JlZDZjZjI0NGUuYzJlN2ZlYWM5ZDkzYTk4MC43MGVhZGZjMTUyNTJjYjhmCiAgICAgZjgwNWUyZWU3MmE3Nzk4NwogICBhZnRlcgotICAgIDZlYTYxZTQyOWJmZTU4NWEuODBhZmQxZjg4NWM3NDhiNy4wNmYzNDhkY2I4MmUzODcxLmVhYzg0ZmJjYTVjZTYzMWYKKyAgICA2ZWE2MWU0MjliZmU1ODVhLjgwYWZkMWY4ODVjNzQ4YjcuMDZmMzQ4ZGNiODJlMzg3MS5lYWM4NGZiY2E1Y2VlZWM3CiAgICAgMGJkY2E4YThmZGMzZjhmMC5kNDVjNjE2ZjEwOTBkNTE2Ljk3MWJmZTJjMTYzNDU1NzIuNDU5ODEyOTQwOGYxZmMwNwotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMzA2MTlmN2ZhOGE3NDVjLmExN2U2OWZjNTk0MDAwOTIKKyAgICA2NTQ5Yjg2YWJkOTFhYWQxLjFlYmNjODM4YTIwZmI1NjQuMzdkM2JjMjMwNGZkZTc2OS5hOTM1ZWVjNzYzNDQwYTQ4CiAgICAgNThiN2NiNzRmNjc0MmIyOS5iYTFhMDNiZWQ2Y2YyNDRlLmMyZTdmZWFjOWQ5M2E5ODAuNzBlYWRmYzE1MjUyY2I4ZgogICAgIGY4MDVlMmVlNzJhNzc5ODcKIAotVlBDTE1VTFFEUV8weEZGKHJlZykKK1ZQRVhUUldfMTI4XzB4MihyZWcpCiAgIGJlZm9yZQogICAgIDliZDBmMmJhNWVkMDUxZGQuYzBmMzVjYjNjNTc2MzcyMy4wNGM0MGM2ZTQ5NWM2MDgwLjE0MjM0MGIyZmQwNDU4ZTMKICAgICBiNzk5MGI5MmIzNTg4ZTNjLjc5YzllNzExNDVhNTg5ZWMuNTgwNGUxYjI5NjQzYTNhNS4wODUyZmUyMzQxNWNiMGJmCkBAIC00MjgyOCwxMiArNDI4MjgsMTIgQEAKICAgICBjNTUwNDgxMTA2YjYyYmM4LjRkNzJkY2RlY2FiOGYzOWEuOGU3OWRkYTkzMDRkMzE3YS40YmJjZTBmM2UzZWQ0OTkxCiAgICAgNTE4ZmZiMmE3OTQwMDNkZgogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNTNhZDQxNjFlNWE4MWU1LmYzNmRiYTkyOTdiZmUxNmQKKyAgICA5YmQwZjJiYTVlZDA1MWRkLmMwZjM1Y2IzYzU3NjM3MjMuMDRjNDBjNmU0OTVjNjA4MC4xNDIzNDBiMmZkMDQ1OGUzCiAgICAgYjc5OTBiOTJiMzU4OGUzYy43OWM5ZTcxMTQ1YTU4OWVjLjU4MDRlMWIyOTY0M2EzYTUuMDg1MmZlMjM0MTVjYjBiZgogICAgIGE2YWEyOWUwMGRjYjZlNTEuNWUwNWU4N2M5MzBkZGZiMC4xMjI3N2RmNzVhMGYyYTY5LjdjNDFiNWVhODRhNTZjNDAKICAgICBjNTUwNDgxMTA2YjYyYmM4LjRkNzJkY2RlY2FiOGYzOWEuOGU3OWRkYTkzMDRkMzE3YS40YmJjZTBmM2UzZWQ0OTkxCi0gICAgNTE4ZmZiMmE3OTQwMDNkZgotVlBDTE1VTFFEUV8weEZGKG1lbSkKKyAgICAwMDAwMDAwMDAwMDA0MGIyCitWUEVYVFJXXzEyOF8weDIobWVtKQogICBiZWZvcmUKICAgICA2OTg2ODM3YjYzYTg1NTU2LjcxZDY2NTkyM2RhNDAxNGMuMjFkZTNlMjUwNmI1ODFkNy4yODQ2ZmIzNWI0ODhmMzgyCiAgICAgNzE2ZGYyZDNiYzMzZmQyMS4wNDhhN2JjZTRiMjEyZThhLmI1MTM4YTNiNjQwZDQ3OTIuM2JkYWQ1MDY4MzRjYWQyZApAQCAtNDI4NDEsMTMgKzQyODQxLDEzIEBACiAgICAgYmQzYTdhNDMyZGUxMzk2NS41MmE4ODIyNjYyZmE3OGUzLjkyMGJkMDg5ZjUwMzY2MzUuNDE4NmFhMjY3MWEwZjkxZgogICAgIGViMzY5ZTRlYzc0ODAyYmUKICAgYWZ0ZXIKLSAgICA2OTg2ODM3YjYzYTg1NTU2LjcxZDY2NTkyM2RhNDAxNGMuMjFkZTNlMjUwNmI1ODFkNy4yODQ2ZmIzNWI0ODhmMzgyCisgICAgNjk4NjgzN2I2M2E4NTU1Ni43MWQ2NjU5MjNkYTQwMTRjLjIxZGUzZTI1MDZiNTgxZDcuMjg0NmZiMzViNDg4NjY4NwogICAgIDcxNmRmMmQzYmMzM2ZkMjEuMDQ4YTdiY2U0YjIxMmU4YS5iNTEzOGEzYjY0MGQ0NzkyLjNiZGFkNTA2ODM0Y2FkMmQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTY2ZGYzZDY3NjI2Y2Y3Yi5lNmZlMjRmM2EwMzAxMDVlCisgICAgNDMxMGM2MWNhMWVkYjU2ZC5kYmI2ODYzMGNmYmFlYzJlLmU3ZGUzYzBlMDBjZWZmZjguMjU4MDY2ODczOTI1OWIyOAogICAgIGJkM2E3YTQzMmRlMTM5NjUuNTJhODgyMjY2MmZhNzhlMy45MjBiZDA4OWY1MDM2NjM1LjQxODZhYTI2NzFhMGY5MWYKICAgICBlYjM2OWU0ZWM3NDgwMmJlCiAKLVZQQ0xNVUxRRFFfMHhGRihyZWcpCitWUEVYVFJXXzEyOF8weDIocmVnKQogICBiZWZvcmUKICAgICA3ZWRkM2M2YmQ4YWFmM2FmLmJhYjg4YTM1N2QxYjQ3MzYuYzVhYTZjMWJhMjZkMGU1NS45MTY2YzM5ODVmYjgzNzc0CiAgICAgNThjNzgyZTkzZjUxMDdhMS4xNTU2NzNkZGFjYTc5OTBiLjkxMDkzZjdiMmJhMGU5MzEuYzJiYTkwMjc1YmZhMzBlMQpAQCAtNDI4NTUsMTIgKzQyODU1LDEyIEBACiAgICAgNGQ5M2Y0Yjg4MTlmOGMzMy41OTIyYmNmZTE5ZTdmYjc0LjlmMGQ5MDJjODY3MzYxZDcuMjY4MWE4NzY3NzUyODRmOQogICAgIDExOGJlYjBkY2Y4MTU5ZmEKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDkxOTY2M2ZmMzlmMzFjNy44NmRlODVhMjQ0ZjhmYjczCisgICAgN2VkZDNjNmJkOGFhZjNhZi5iYWI4OGEzNTdkMWI0NzM2LmM1YWE2YzFiYTI2ZDBlNTUuOTE2NmMzOTg1ZmI4Mzc3NAogICAgIDU4Yzc4MmU5M2Y1MTA3YTEuMTU1NjczZGRhY2E3OTkwYi45MTA5M2Y3YjJiYTBlOTMxLmMyYmE5MDI3NWJmYTMwZTEKICAgICBkMzQwNmIzNDk5Yzk3YzNlLmFjZTBhZjI2ZDc5MmVjMTIuMTAxMWY3YjI5ODFlNDYyMy5mZmQ1YjMyMzA0ZDQwYmFhCiAgICAgNGQ5M2Y0Yjg4MTlmOGMzMy41OTIyYmNmZTE5ZTdmYjc0LjlmMGQ5MDJjODY3MzYxZDcuMjY4MWE4NzY3NzUyODRmOQotICAgIDExOGJlYjBkY2Y4MTU5ZmEKLVZQQ0xNVUxRRFFfMHhGRihtZW0pCisgICAgMDAwMDAwMDAwMDAwYzM5OAorVlBFWFRSV18xMjhfMHgyKG1lbSkKICAgYmVmb3JlCiAgICAgOWViZmY5ZDUyOTZjNDRkYS4yMTBlMTdlMjk0NWQ3NDJiLmZhZTcxNTUwOGViMjg0NWYuOWE0YjA2NTY5MDJjNzVmOAogICAgIGE3ZTk0ZGI4YTAyMDAyYzUuYWFmYmQyMWM2ZDkyNmZkMy42OWZkMzcwODUzMDA0MWZmLjVkMTU1NjlhNTJkNGJmMzIKQEAgLTQyODY4LDEzICs0Mjg2OCwxMyBAQAogICAgIGExNGZiODg0NTcxMGU2NmEuNGY1ZWZkNzRlMzhhOTJlMS4yNTQ3YzI1YjNjNTM0OTBkLmFiODA3MTI0NzEyMmU1YTQKICAgICBlZWI5MzQ0MjA1ZTEzODM0CiAgIGFmdGVyCi0gICAgOWViZmY5ZDUyOTZjNDRkYS4yMTBlMTdlMjk0NWQ3NDJiLmZhZTcxNTUwOGViMjg0NWYuOWE0YjA2NTY5MDJjNzVmOAorICAgIDllYmZmOWQ1Mjk2YzQ0ZGEuMjEwZTE3ZTI5NDVkNzQyYi5mYWU3MTU1MDhlYjI4NDVmLjlhNGIwNjU2OTAyYzdiNjUKICAgICBhN2U5NGRiOGEwMjAwMmM1LmFhZmJkMjFjNmQ5MjZmZDMuNjlmZDM3MDg1MzAwNDFmZi41ZDE1NTY5YTUyZDRiZjMyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI2OWYxNGNmY2VkZjdkNzYuMjU4ODQxNGVkNjgxZDYzNQorICAgIDA5ZDU2M2E0NTFhODRlZTYuNDZhNzIwZDRhOWM3YmJkNi44MzJlOWMxMjg0ZGNlZTgwLjQ0Yjg3YjY1NjlmODdiMzIKICAgICBhMTRmYjg4NDU3MTBlNjZhLjRmNWVmZDc0ZTM4YTkyZTEuMjU0N2MyNWIzYzUzNDkwZC5hYjgwNzEyNDcxMjJlNWE0CiAgICAgZWViOTM0NDIwNWUxMzgzNAogCi1WQ01QU1NfMTI4XzB4OShyZWcpCitWUEVYVFJXXzEyOF8weDMocmVnKQogICBiZWZvcmUKICAgICA2OWFmYzEyYWMxYmViMThkLjQ5MjJjNjQ0Y2Y2NDg0N2MuMjI2YzY2NmFiODY3MzBhMC4yOTE0MjRjZDk3NzAwY2QzCiAgICAgNzhhZTEyNGE0MjQ3OGM1Yi5kZTFiMGJkMGQ0YjFlNDQ5LjFjMWM1NTIxYzNlOGQzYmUuNmM2MTNlNTViMjNmZjRmZApAQCAtNDI4ODIsMTIgKzQyODgyLDEyIEBACiAgICAgYzFmNWY2ZGYwMThhNTcwOS40MGFmMjdmY2Y2NjRkZWMzLmYxOTZiYTgyZWQwYzEzY2EuMjBhYThiNTg5NjI0MjIyZgogICAgIDQ4M2ZiNmFiOTc1MmUwOGYKICAgYWZ0ZXIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWMxYzU1MjFjM2U4ZDNiZS42YzYxM2U1NWZmZmZmZmZmCisgICAgNjlhZmMxMmFjMWJlYjE4ZC40OTIyYzY0NGNmNjQ4NDdjLjIyNmM2NjZhYjg2NzMwYTAuMjkxNDI0Y2Q5NzcwMGNkMwogICAgIDc4YWUxMjRhNDI0NzhjNWIuZGUxYjBiZDBkNGIxZTQ0OS4xYzFjNTUyMWMzZThkM2JlLjZjNjEzZTU1YjIzZmY0ZmQKICAgICA3NjAxMjUwZDIzMDcwNTRiLjNjMDYwMjE0ODIwMmM0ZmQuOTdiY2M4MDVhMTliYjVlOC5jYWZhOGNlMGE4Y2NiZGI4CiAgICAgYzFmNWY2ZGYwMThhNTcwOS40MGFmMjdmY2Y2NjRkZWMzLmYxOTZiYTgyZWQwYzEzY2EuMjBhYThiNTg5NjI0MjIyZgotICAgIDQ4M2ZiNmFiOTc1MmUwOGYKLVZDTVBTU18xMjhfMHg5KG1lbSkKKyAgICAwMDAwMDAwMDAwMDAyOTE0CitWUEVYVFJXXzEyOF8weDMobWVtKQogICBiZWZvcmUKICAgICAxZjgzODljNGM4NjNiMzA0LmI0ZDY3ZjJjNzc1ZGJmNDAuYzRlMmY3NzQ0Y2UyZWZjOC44NGY3MjcwNDQzYzUyOTBmCiAgICAgODE0MzgwOGY0NDYyNTZiOS5hYmYwYmU2MTIyMGI3OTlkLmE1NmJlYzY4OWY4OGIzMzcuYWQyYjBjZjc0MDU0MzI2MwpAQCAtNDI4OTUsMTMgKzQyODk1LDEzIEBACiAgICAgNTY2NmNjZWI4ZjViZmY5NS4xNGZmNGEyZTg1MmFkMTc4LmVlYWQzYTc1YWQ3ZDQyMDYuMzEzYzJiZTE5ZTIyMTBlYgogICAgIDQ1YjE1ZGFmMzY3OTVjNzcKICAgYWZ0ZXIKLSAgICAxZjgzODljNGM4NjNiMzA0LmI0ZDY3ZjJjNzc1ZGJmNDAuYzRlMmY3NzQ0Y2UyZWZjOC44NGY3MjcwNDQzYzUyOTBmCisgICAgMWY4Mzg5YzRjODYzYjMwNC5iNGQ2N2YyYzc3NWRiZjQwLmM0ZTJmNzc0NGNlMmVmYzguODRmNzI3MDQ0M2M1Yzg3ZQogICAgIDgxNDM4MDhmNDQ2MjU2YjkuYWJmMGJlNjEyMjBiNzk5ZC5hNTZiZWM2ODlmODhiMzM3LmFkMmIwY2Y3NDA1NDMyNjMKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTU2YmVjNjg5Zjg4YjMzNy5hZDJiMGNmN2ZmZmZmZmZmCisgICAgNGE0YjE4ZjgyODViODZkYi4wMThmYWRlODlkMjFjMGNjLmJmMTU4NGM1MGI2M2U1M2QuYzg3ZTY0Yzc4MDQ1NmI3NAogICAgIDU2NjZjY2ViOGY1YmZmOTUuMTRmZjRhMmU4NTJhZDE3OC5lZWFkM2E3NWFkN2Q0MjA2LjMxM2MyYmUxOWUyMjEwZWIKICAgICA0NWIxNWRhZjM2Nzk1Yzc3CiAKLVZDTVBTU18xMjhfMHg5KHJlZykKK1ZQRVhUUldfMTI4XzB4MyhyZWcpCiAgIGJlZm9yZQogICAgIDVlMjhmNjlmZTVkNjhjYzIuODE2MjE4NTQ5NjZkN2QxNC4zZjhiOTFhMDc1YjJlODRlLjBlZmY4YjY2YTFlNTg2YmQKICAgICBkOWVlZjMxYjQ2YzNkYzc5LmE3MDk3ODFmNTg5ZGJiODQuZGQ4MDdjYTkwOTQ2NDFmOS5mYmQ3ZjE4MzAyYTQ2YzhmCkBAIC00MjkwOSwxMiArNDI5MDksMTIgQEAKICAgICA2NTk3MDY2YzkwODNjYmQ5LjU0OGM2NThjN2U4OTZhZTUuZTZkNjMzMmY5MGJmYTc4MC5hYzQ5ZjFmMDdjNWQxMTMyCiAgICAgMjg3YTgyMTljZDZkNDg1YwogICBhZnRlcgotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kZDgwN2NhOTA5NDY0MWY5LmZiZDdmMTgzMDAwMDAwMDAKKyAgICA1ZTI4ZjY5ZmU1ZDY4Y2MyLjgxNjIxODU0OTY2ZDdkMTQuM2Y4YjkxYTA3NWIyZTg0ZS4wZWZmOGI2NmExZTU4NmJkCiAgICAgZDllZWYzMWI0NmMzZGM3OS5hNzA5NzgxZjU4OWRiYjg0LmRkODA3Y2E5MDk0NjQxZjkuZmJkN2YxODMwMmE0NmM4ZgogICAgIDEyNGY0ZjkxZjZjZTg4NDcuYTQyOTY4MzlmMWY4NzYxMC40YzJiMDliNGRlNzExNzI2LjkxMDFlYWI3ZWNjOGIxYTcKICAgICA2NTk3MDY2YzkwODNjYmQ5LjU0OGM2NThjN2U4OTZhZTUuZTZkNjMzMmY5MGJmYTc4MC5hYzQ5ZjFmMDdjNWQxMTMyCi0gICAgMjg3YTgyMTljZDZkNDg1YwotVkNNUFNTXzEyOF8weDkobWVtKQorICAgIDAwMDAwMDAwMDAwMDBlZmYKK1ZQRVhUUldfMTI4XzB4MyhtZW0pCiAgIGJlZm9yZQogICAgIGUxNjIxYTFlZmMwNjExNTAuMmUxMjE0MThiMTZkZTJkYS45M2ZmZWEwNjFiNWM1MzJlLjA5Y2VmNjg1YmFiYzJkYjUKICAgICBiM2NiMzNlYzI0MzMyYTNiLmM5MGM3NTAxZjQxODA5ZjcuM2Q0ZDczOTFlMzdkZWMxOC4xMDVlNGUyMmY4ZjVlNDZlCkBAIC00MjkyMiwxMyArNDI5MjIsMTMgQEAKICAgICAxMTUzZGQ4ZWQxN2IzNmE0LmU1YWIyMjNhNTJlMjc2MzQuNDFhZjgxOGY2NWRjMjE3ZS4zODdhYWZlMTIzNDlkODIyCiAgICAgMTM5ZGFmZGI0NzdjOGQ3NQogICBhZnRlcgotICAgIGUxNjIxYTFlZmMwNjExNTAuMmUxMjE0MThiMTZkZTJkYS45M2ZmZWEwNjFiNWM1MzJlLjA5Y2VmNjg1YmFiYzJkYjUKKyAgICBlMTYyMWExZWZjMDYxMTUwLjJlMTIxNDE4YjE2ZGUyZGEuOTNmZmVhMDYxYjVjNTMyZS4wOWNlZjY4NWJhYmM1NmQ0CiAgICAgYjNjYjMzZWMyNDMzMmEzYi5jOTBjNzUwMWY0MTgwOWY3LjNkNGQ3MzkxZTM3ZGVjMTguMTA1ZTRlMjJmOGY1ZTQ2ZQotICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZDRkNzM5MWUzN2RlYzE4LjEwNWU0ZTIyZmZmZmZmZmYKKyAgICA3OTgyNGI2ZDYxMDE0YzQ4LjkyZDAyNjkzZjYxMDdjZGIuMmU0NDdjMWJmMmY5ZjJjZS41NmQ0Mzg3MmU3ZjYwOTU5CiAgICAgMTE1M2RkOGVkMTdiMzZhNC5lNWFiMjIzYTUyZTI3NjM0LjQxYWY4MThmNjVkYzIxN2UuMzg3YWFmZTEyMzQ5ZDgyMgogICAgIDEzOWRhZmRiNDc3YzhkNzUKIAotVkNNUFNTXzEyOF8weDkocmVnKQorVlBFWFRSV18xMjhfMHgzKHJlZykKICAgYmVmb3JlCiAgICAgNDE4OTM0Y2RlZjFhNjNmZC41NjBhNjYzYzhkYWRhMjdiLjFlZWE2NTYyYTQxOTM0YWIuNTQ1OWZmZDk1NzMwMzQ1MQogICAgIDIwOGEzYTIxYjhiMDk3NjcuMjQ3MjYwNjFiM2E0NGRmOC45OWQ3ZWI3ODhhNDJmMWVmLjQyMGY3MWU1ZTUwM2U4NzYKQEAgLTQyOTM2LDEyICs0MjkzNiwxMiBAQAogICAgIDVjZmJiYmEzMWJmMTA4OGYuY2E4OTljYzVhYzBmNGY5Ni5jNGVkYjIxYTdiOTc1Yzg4LjFlY2YyMWYzNDM1NTIyNjAKICAgICBjNTcxNThjZDRjZWIyMTdlCiAgIGFmdGVyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjk5ZDdlYjc4OGE0MmYxZWYuNDIwZjcxZTVmZmZmZmZmZgorICAgIDQxODkzNGNkZWYxYTYzZmQuNTYwYTY2M2M4ZGFkYTI3Yi4xZWVhNjU2MmE0MTkzNGFiLjU0NTlmZmQ5NTczMDM0NTEKICAgICAyMDhhM2EyMWI4YjA5NzY3LjI0NzI2MDYxYjNhNDRkZjguOTlkN2ViNzg4YTQyZjFlZi40MjBmNzFlNWU1MDNlODc2CiAgICAgMGFlY2JlNDUzZGM5NjU1ZS41NjU5NDllYjVmNmJmMzQ4LmIxYmViMWU2OWRlN2ViYWEuZTc5ZDUzOWYyYjYxZjkxNwogICAgIDVjZmJiYmEzMWJmMTA4OGYuY2E4OTljYzVhYzBmNGY5Ni5jNGVkYjIxYTdiOTc1Yzg4LjFlY2YyMWYzNDM1NTIyNjAKLSAgICBjNTcxNThjZDRjZWIyMTdlCi1WQ01QU1NfMTI4XzB4OShtZW0pCisgICAgMDAwMDAwMDAwMDAwNTQ1OQorVlBFWFRSV18xMjhfMHgzKG1lbSkKICAgYmVmb3JlCiAgICAgYjc0ZTczMWE1ZjJmYjA5ZC43MjAyMmRhOWVkYjViZGE1LjViY2ZkNWRhYjY5YTFlMGYuMmRhZmVhN2ZjMGRiODEzNgogICAgIGNmMzNlZWM0OWEyZThiZTguYTk0ZTEwYzI1MGEwYzA0ZC5lNGY3NzExODlhMWExY2RlLjQ4NGY1NTgwMDc0MTk1NjAKQEAgLTQyOTQ5LDEzICs0Mjk0OSwxMyBAQAogICAgIGU1NDZmNGUzZjc4YTE5YjUuZTVlNjFiZGQzNjFjOWYwMi41MjFjYmViYzVmMjc5NDMxLjAzNWNiNTBiMGNhMTdlZDYKICAgICA1YzYxYTI2YzAyYjNjOTdiCiAgIGFmdGVyCi0gICAgYjc0ZTczMWE1ZjJmYjA5ZC43MjAyMmRhOWVkYjViZGE1LjViY2ZkNWRhYjY5YTFlMGYuMmRhZmVhN2ZjMGRiODEzNgorICAgIGI3NGU3MzFhNWYyZmIwOWQuNzIwMjJkYTllZGI1YmRhNS41YmNmZDVkYWI2OWExZTBmLjJkYWZlYTdmYzBkYjcwMWEKICAgICBjZjMzZWVjNDlhMmU4YmU4LmE5NGUxMGMyNTBhMGMwNGQuZTRmNzcxMTg5YTFhMWNkZS40ODRmNTU4MDA3NDE5NTYwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmU0Zjc3MTE4OWExYTFjZGUuNDg0ZjU1ODAwMDAwMDAwMAorICAgIGViZWQ0NWI5MTlmMzcwOGMuNWIyYzYxNWFkZjNmNGQzMy40M2NkZWE2YTc0OWIwNTMwLjcwMWFlZjhiZWM1NGQ2YjEKICAgICBlNTQ2ZjRlM2Y3OGExOWI1LmU1ZTYxYmRkMzYxYzlmMDIuNTIxY2JlYmM1ZjI3OTQzMS4wMzVjYjUwYjBjYTE3ZWQ2CiAgICAgNWM2MWEyNmMwMmIzYzk3YgogCi1WTUFTS01PVlBTXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDQocmVnKQogICBiZWZvcmUKICAgICBkNjc1YjIxYTZiMTZmNTRiLjliMGI3ODMwNTEwMDQzOGUuYTNjODNhYjdmM2M1ZjM2Ny5lZmIyNjhmYjc3Y2Q4NjBjCiAgICAgY2ZlM2UxODJlMjU2M2NmMy5lNzA3NGM4YjQyNjBhOTQzLmYxMjBiYTU0YWZjNjg1MGQuZjQ1OTY0MTFkOTk2OTdlZQpAQCAtNDI5NjcsOCArNDI5NjcsOCBAQAogICAgIGNmZTNlMTgyZTI1NjNjZjMuZTcwNzRjOGI0MjYwYTk0My5mMTIwYmE1NGFmYzY4NTBkLmY0NTk2NDExZDk5Njk3ZWUKICAgICBhMWY5MmMwZTA0MDBkYjFlLmE3MDhlY2UwZTZiNzA5MDIuMmIzOTk3MjAwOGE5OTBhMS4zZmRlMmZlYmEwOTA4MjAzCiAgICAgYWEwMThlMmI2Y2EwMGQ3OS5iNWQ4ZDQxYjVhMGYxZGY1LmFkNWVjZTg4OWFmZDUyY2YuYWEwZDQ0NzZlOWM2MDQ3NgotICAgIDEzYjIxZTljY2Y0NGQ5NzMKLVZNQVNLTU9WUFNfMTI4X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBmMzY3CitWUEVYVFJXXzEyOF8weDQobWVtKQogICBiZWZvcmUKICAgICA1NDk5M2M0YjZmMTdiZDI4LjQ0NDgwMzQ2YjdjMDBmYWYuZWU0NTgxMjhiYTc3YTE0OC5kM2RjNWFmNjAwNGIwNTQyCiAgICAgNGE4ZTE3NmVlNDRhNmJiZi5jZDFhODdjYTgwZWUxZDZkLjJmMTk2ZWYzMjFmODUzMjguZjlmZjM3ZDhkNjIxZTVhNwpAQCAtNDI5NzYsMTMgKzQyOTc2LDEzIEBACiAgICAgYzZkMGY4YzBiZjAyMTg0NC4xODhmYWRiY2ZlYTI0ZDMwLjM0MjlmODc0NzU3YTJjM2UuYjU2NGQ1YTQ0NDkyMjBmNQogICAgIDAzM2Q4ZTY3MTQ0NmYyMzcKICAgYWZ0ZXIKLSAgICA1NDk5M2M0YjZmMTdiZDI4LjQ0NDgwMzQ2YjdjMDBmYWYuZWU0NTgxMjhiYTc3YTE0OC5kM2RjNWFmNjAwNGIwNTQyCisgICAgNTQ5OTNjNGI2ZjE3YmQyOC40NDQ4MDM0NmI3YzAwZmFmLmVlNDU4MTI4YmE3N2ExNDguZDNkYzVhZjYwMDRiZWRjMQogICAgIDRhOGUxNzZlZTQ0YTZiYmYuY2QxYTg3Y2E4MGVlMWQ2ZC4yZjE5NmVmMzIxZjg1MzI4LmY5ZmYzN2Q4ZDYyMWU1YTcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5kM2RjNWFmNjAwNGIwNTQyCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGQxNWMyZGYxNGFlYWEwNjQuOWZjMzE2MjI2NGI1NzM1Zi41MjIxMTc2OGFiYTBlZGMxLjdiMTM2MTk5YjkwYTMwYTkKKyAgICBjNmQwZjhjMGJmMDIxODQ0LjE4OGZhZGJjZmVhMjRkMzAuMzQyOWY4NzQ3NTdhMmMzZS5iNTY0ZDVhNDQ0OTIyMGY1CiAgICAgMDMzZDhlNjcxNDQ2ZjIzNwogCi1WTUFTS01PVlBTXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDQocmVnKQogICBiZWZvcmUKICAgICBjMWVjODg0ZGM0YjFlMTFhLjAzYjZmNmM3NWM5ZThlOGIuOTJjOTQ3MDNlYjQwZTY4ZC5iMWZjOGQwMTlhOTNjY2NjCiAgICAgNGFiYmJmYzJmMTYwMmE0Yi42NWRhYTNmMjNmY2FjMDY0LjZhYmZlMDYzYzYxYjdiMjIuYTY2ODUzZmQzN2Y1ODg5NgpAQCAtNDI5OTQsOCArNDI5OTQsOCBAQAogICAgIDRhYmJiZmMyZjE2MDJhNGIuNjVkYWEzZjIzZmNhYzA2NC42YWJmZTA2M2M2MWI3YjIyLmE2Njg1M2ZkMzdmNTg4OTYKICAgICBmY2Y3MmYzMjM3ZGUwOTc1LmM4MDg3OTJkODQ5MzY3ZmMuZmRiYjc0NDgyYmMwNDc5YS5lZDM3YzU1MzY3YWYxZGM5CiAgICAgMzJlY2Q1MGEzMGI3YmE0NS4wODBjZjY2NDQ2MDU0MjdlLmE1MGEwMDFlYjdiYTg4YTEuNjMzNjVmZWU0N2NhNDc5MQotICAgIGU0MzE5ZGJjZjI1NGMxMTkKLVZNQVNLTU9WUFNfMTI4X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBlNjhkCitWUEVYVFJXXzEyOF8weDQobWVtKQogICBiZWZvcmUKICAgICA0Y2Y0ZmNhODg1NTg0ODhlLjQ4ZTZhY2I0N2E3Nzc4NjYuMDFiMTk1ODRhMTJhMGIxNy5iZmY4N2U1MjA2OTU3OGU1CiAgICAgNzc0YmY2OWUxYmUzOTgxYi45OTMwYjA5ZGIxYWI4MDg1LjkwYzRkMjc3YjIxMDdmZjMuYTdkMGVjNGViMmRlNTMwZgpAQCAtNDMwMDMsMTMgKzQzMDAzLDEzIEBACiAgICAgODZlNGIxNTljMmJiODIzMC42MWU4MmZkZDU0OWQ1ZTZjLmRiNjQxNzhiNjQ0ZDU4MjIuNTI3Mjg2NTI5OGU4YmVjYwogICAgIGNjZDNhOTMyMDhjMGM1YjUKICAgYWZ0ZXIKLSAgICA0Y2Y0ZmNhODg1NTg0ODhlLjQ4ZTZhY2I0N2E3Nzc4NjYuMDFiMTk1ODRhMTJhMGIxNy5iZmY4N2U1MjA2OTU3OGU1CisgICAgNGNmNGZjYTg4NTU4NDg4ZS40OGU2YWNiNDdhNzc3ODY2LjAxYjE5NTg0YTEyYTBiMTcuYmZmODdlNTIwNjk1NWEzZAogICAgIDc3NGJmNjllMWJlMzk4MWIuOTkzMGIwOWRiMWFiODA4NS45MGM0ZDI3N2IyMTA3ZmYzLmE3ZDBlYzRlYjJkZTUzMGYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDFiMTk1ODRhMTJhMGIxNy5iZmY4N2U1MjA2OTU3OGU1Ci0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDQxMDEwOThiZDEwMDZkZWQuODMxOGRkMzI3MGRlMGU0ZS44ZjExMjkyYjk0YzI1YTNkLmI5ZTA0NTdmNWEyMDU3Y2UKKyAgICA4NmU0YjE1OWMyYmI4MjMwLjYxZTgyZmRkNTQ5ZDVlNmMuZGI2NDE3OGI2NDRkNTgyMi41MjcyODY1Mjk4ZThiZWNjCiAgICAgY2NkM2E5MzIwOGMwYzViNQogCi1WTUFTS01PVlBTXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDQocmVnKQogICBiZWZvcmUKICAgICA4NDUwYWM4YTQ3MzZhODM3LjIyYmU2OGY1MGEyMTk0MGYuOGVlZGEzMGNmODczYWI4Yy41MDg5MTY4MjNlYmMzNGNkCiAgICAgZDYzMzhhYzhmMGQ2YTJmYi5mMTVjYWM0Y2M2M2Q1ZmI3LjY4NzMzNDJhZjhlYzMyNWEuY2E0Y2E0ZmUzYzFiYWI2YgpAQCAtNDMwMjEsOCArNDMwMjEsOCBAQAogICAgIGQ2MzM4YWM4ZjBkNmEyZmIuZjE1Y2FjNGNjNjNkNWZiNy42ODczMzQyYWY4ZWMzMjVhLmNhNGNhNGZlM2MxYmFiNmIKICAgICAxZWM4M2Y1N2EwMmJmMGIwLmNmOGFmNzQ4MTIxYjlmNTMuNDljNmRlYTNmMTk1MmY4MS4yNDc4M2RlYTdkNzc3OTI4CiAgICAgYjg1ZGM4YTNmMmMxY2UwMC45ODE0YzdkNzA5YzgwZjEwLjhmMzI5ZGUzN2ZmOWRkYWUuM2NkYjViMzIxYWRiNTkyZgotICAgIGVkM2Y3Y2MzMzE1MzA4YWQKLVZNQVNLTU9WUFNfMTI4X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBhYjhjCitWUEVYVFJXXzEyOF8weDQobWVtKQogICBiZWZvcmUKICAgICAxMzcxMWI4N2RlZWM0MmNkLjAwM2MyMDE4ODMyNDc3OTcuMjhjNjk4ZTNjNzRmNmMxYS45NDAzNmU1NjNkYTQ3OThjCiAgICAgOGEzZGI0NmIzY2IxYzJiYy41MmIzNDIyMmVlZTEyOTIzLjVhNmJlNDVhNjliYzcyOWMuYjY4NDRjNjhjNzIzM2ZjOApAQCAtNDMwMzAsMTMgKzQzMDMwLDEzIEBACiAgICAgZGFkMmM1NDQ3ZGYwODhiNi44Mzk0ZGFhNmMzOTc5MmM0LjE5YzJlMjM2Yzc3YTY3YmEuYmNjOTFmMWFiMWNhMzgwOAogICAgIDVhMjUwZDkxNDkwYmUzNjUKICAgYWZ0ZXIKLSAgICAxMzcxMWI4N2RlZWM0MmNkLjAwM2MyMDE4ODMyNDc3OTcuMjhjNjk4ZTNjNzRmNmMxYS45NDAzNmU1NjNkYTQ3OThjCisgICAgMTM3MTFiODdkZWVjNDJjZC4wMDNjMjAxODgzMjQ3Nzk3LjI4YzY5OGUzYzc0ZjZjMWEuOTQwMzZlNTYzZGE0ZGNjMwogICAgIDhhM2RiNDZiM2NiMWMyYmMuNTJiMzQyMjJlZWUxMjkyMy41YTZiZTQ1YTY5YmM3MjljLmI2ODQ0YzY4YzcyMzNmYzgKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45NDAzNmU1NjNkYTQ3OThjCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDJkNmZjMzVjNjhhZTQ2YTUuMGEwYzJkMmVjZjgzMWU0ZC4wY2QwMjkyNzBiMWNkY2MzLjRmMDIzMzg1YmEwMTZiMGQKKyAgICBkYWQyYzU0NDdkZjA4OGI2LjgzOTRkYWE2YzM5NzkyYzQuMTljMmUyMzZjNzdhNjdiYS5iY2M5MWYxYWIxY2EzODA4CiAgICAgNWEyNTBkOTE0OTBiZTM2NQogCi1WTUFTS01PVlBTXzI1Nl9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDUocmVnKQogICBiZWZvcmUKICAgICA4MzYyZjc1ODFkNGZhOGNmLjZjMzQzNDExOTc4MjQ0MTguMWI5NzQ3Zjg2NmE3YzMzMi41ZDBiOGI3M2JjZTJjZmFlCiAgICAgOTRjYmRiZDljYTIyYzJmMy5iZjVmOGVhZWQzNzAzOGZhLjJkNjA2ZThlNTM0MmViNDMuYjM3N2EwY2EwNDYxY2ZjYQpAQCAtNDMwNDgsOCArNDMwNDgsOCBAQAogICAgIDk0Y2JkYmQ5Y2EyMmMyZjMuYmY1ZjhlYWVkMzcwMzhmYS4yZDYwNmU4ZTUzNDJlYjQzLmIzNzdhMGNhMDQ2MWNmY2EKICAgICBlYWFlYjQ4MmViMTE2ZjdkLmFlMjA0ZTA2NGRjNzFlODUuMTUzZDRkZDYyN2YxNDdhNC5mOWQ0OWUyOGJiMDIyNTNiCiAgICAgZGY1NTdmYmUxZGE3ZTgxOC4xNzQzZjEwNzIwOTJiM2U4LjJmNzhlMDNiN2M0MjEyMDEuMGFlZDAwNzdmZGQxOGIyZAotICAgIGMxOGQ0MmE1ZThkYmJkY2IKLVZNQVNLTU9WUFNfMjU2X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDA2NmE3CitWUEVYVFJXXzEyOF8weDUobWVtKQogICBiZWZvcmUKICAgICBmYzgxZTA5Yzk1MmI3OTQyLmQwMGQzNmY5ZmI3MDZjNzAuZDQ5NGYxOWM2OGRkYjI0ZC5kNjVlMjEyOWYxYzA4OTA1CiAgICAgOTU5NTU2NGEyMmNkNzliZS4xOTIyZDc5ZjIyZjkzNTMyLmMzZGVjY2IxNDJiNWQ5ZTEuNjgzYjBlMGMyMGY4ZTg1ZApAQCAtNDMwNTcsMTMgKzQzMDU3LDEzIEBACiAgICAgNTU0ZGJjNzc0YjM5Mzc3My4yMzkzYzRkY2I5Nzg4OWE0LmEzOTEwMTBjMWEzYTg5NDQuYjkwYWQ5NjExZGMzNGRiOAogICAgIDMxOTRhZmFiMjM2ZWNjMTMKICAgYWZ0ZXIKLSAgICBmYzgxZTA5Yzk1MmI3OTQyLmQwMGQzNmY5ZmI3MDZjNzAuZDQ5NGYxOWM2OGRkYjI0ZC5kNjVlMjEyOWYxYzA4OTA1CisgICAgZmM4MWUwOWM5NTJiNzk0Mi5kMDBkMzZmOWZiNzA2YzcwLmQ0OTRmMTljNjhkZGIyNGQuZDY1ZTIxMjlmMWMwY2EyNQogICAgIDk1OTU1NjRhMjJjZDc5YmUuMTkyMmQ3OWYyMmY5MzUzMi5jM2RlY2NiMTQyYjVkOWUxLjY4M2IwZTBjMjBmOGU4NWQKLSAgICBmYzgxZTA5YzAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZDQ5NGYxOWMwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDZhOTUyMTlhYWJjZTdhNmEuMTZlMDVkMWMyZGNkODAwYS5iZWVmZmQzM2NhMjVlMmNmLjQwNWJhMjUwYTU3NTZiYjUKKyAgICA1NTRkYmM3NzRiMzkzNzczLjIzOTNjNGRjYjk3ODg5YTQuYTM5MTAxMGMxYTNhODk0NC5iOTBhZDk2MTFkYzM0ZGI4CiAgICAgMzE5NGFmYWIyMzZlY2MxMwogCi1WTUFTS01PVlBTXzI1Nl9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDUocmVnKQogICBiZWZvcmUKICAgICAwMjQ0MjA5YTU0MDMyMTcxLjM0ODhhM2NmMWYxYjZlMDQuOWM4NjA5NGI2MTg3OGNhYi40YzkxNTIyOTUxZmU4YzZiCiAgICAgOGE2NzI5OWI0YjBlOGI3Zi5lMTE0NTI4ZDQyN2ZkOTRhLmRkMDcyNmQ2YzE4NWM0Y2IuOTdiYjZlNzc4ODgwYTU3MgpAQCAtNDMwNzUsOCArNDMwNzUsOCBAQAogICAgIDhhNjcyOTliNGIwZThiN2YuZTExNDUyOGQ0MjdmZDk0YS5kZDA3MjZkNmMxODVjNGNiLjk3YmI2ZTc3ODg4MGE1NzIKICAgICAyMzRhYzUxOGE1MTk0NGU4LjM5YmI0NjllZDA3MTM0NzAuNDI2MDE5ZTc3NmZlNmViMS41ZWRiZDBlMGRlYzk5MTgyCiAgICAgMmIzNmYwN2ZmZGIyODk1OS4xOTRhZmFlY2U2ZmQzZGEzLjI3ZGVkZGVjMWI3ZmM2MDkuN2ViZGY0NTI2Y2U3MGJjOQotICAgIGQ0MmQ1NmI4NTBlNWQxNzMKLVZNQVNLTU9WUFNfMjU2X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDA2MTg3CitWUEVYVFJXXzEyOF8weDUobWVtKQogICBiZWZvcmUKICAgICAzYWY2NzNmZWE2ZDA5ZGFjLmZjN2FhNzNiZjA2NDk2N2UuNWI4ZGVhNjQ5ZjMwYWUwZi5lOGNkNmU0ZjRkOTMwNzdmCiAgICAgOGRlNWM2MTA4OWIyMmI5Zi5mMzYxZTRiNzE5YmNhNjAyLmRjNTA5MmYyMTgxNTQ0ZGYuZTE3OWM5N2VhOGM3NmViZQpAQCAtNDMwODQsMTMgKzQzMDg0LDEzIEBACiAgICAgNmI2NWZlNDg2ODkxODE2NS5jNDQ3ZTVhNDdmOGJjMmRhLjBjODVmYjAyYjgyN2NlNWQuZWIzN2NhZWQ0NmJjOWQ0OAogICAgIGI0ZTE2ODA1YzI5NWRlZWMKICAgYWZ0ZXIKLSAgICAzYWY2NzNmZWE2ZDA5ZGFjLmZjN2FhNzNiZjA2NDk2N2UuNWI4ZGVhNjQ5ZjMwYWUwZi5lOGNkNmU0ZjRkOTMwNzdmCisgICAgM2FmNjczZmVhNmQwOWRhYy5mYzdhYTczYmYwNjQ5NjdlLjViOGRlYTY0OWYzMGFlMGYuZThjZDZlNGY0ZDkzNmRiOQogICAgIDhkZTVjNjEwODliMjJiOWYuZjM2MWU0YjcxOWJjYTYwMi5kYzUwOTJmMjE4MTU0NGRmLmUxNzljOTdlYThjNzZlYmUKLSAgICAzYWY2NzNmZWE2ZDA5ZGFjLmZjN2FhNzNiMDAwMDAwMDAuNWI4ZGVhNjQwMDAwMDAwMC5lOGNkNmU0ZjRkOTMwNzdmCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGE5YzZjYmRhMTY5YTM5NzguNmQzNmE1NjExNDQ1Zjc5Mi43OTVmNmU4MzZkYjliYjQwLjZlMmRlOWU0YzdhNjM3NzIKKyAgICA2YjY1ZmU0ODY4OTE4MTY1LmM0NDdlNWE0N2Y4YmMyZGEuMGM4NWZiMDJiODI3Y2U1ZC5lYjM3Y2FlZDQ2YmM5ZDQ4CiAgICAgYjRlMTY4MDVjMjk1ZGVlYwogCi1WTUFTS01PVlBTXzI1Nl9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDUocmVnKQogICBiZWZvcmUKICAgICAyNTc4YmY5OGQ2YmUzNDA5LmFkOGVkYjQ2OWJhNWMwOGYuNTVkZWExZWNmMzFiNDY4NS43MjkwYjQ1YTE4NmIzYTYzCiAgICAgOTk0OGNjMTIxZmMyZGI0Yy40YzBkZGZjMGNjZTFiMjI1LjdkNDhkM2E2MGU4MGJkM2YuODc0YTE1NzlhNjkxYmI3ZQpAQCAtNDMxMDIsOCArNDMxMDIsOCBAQAogICAgIDk5NDhjYzEyMWZjMmRiNGMuNGMwZGRmYzBjY2UxYjIyNS43ZDQ4ZDNhNjBlODBiZDNmLjg3NGExNTc5YTY5MWJiN2UKICAgICA2ZTlkOGFlMDM4MmUxMTYxLjI0YWQ4NWEzMTc1MjEyNTEuOTZkMTc5M2M2YjQ2NjRiNi4yNzgwOWE0YTgxYTYwY2Q5CiAgICAgZmZjMmY1NmNiZThkMTBmMy4xMTNiNDlkOTk3MDM5ZDNmLmZkYzU4ZTFiYTdmYTc3OTMuMmVmZWMwYjljMmI1ZWFhMQotICAgIDc4OGYwMWIyODdjYjExMDEKLVZNQVNLTU9WUFNfMjU2X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBmMzFiCitWUEVYVFJXXzEyOF8weDUobWVtKQogICBiZWZvcmUKICAgICBlMTAxZGIyMWVjZjMzZDI2LmE3MDUwOTI0NGM2YjE1YWYuZWY4M2E4NTA2ODAwMGYxZC4wZTZmMGViMDVlMjczMjg1CiAgICAgNDUxZWM5ZjIwYzM5MjkzYy5jNGIwYzI3MjdlNTQ1YjQwLjlhNTExY2YzYTc1NjIzMTQuMjUxZGY1NjUyYjU5ZDAzNgpAQCAtNDMxMTEsMTMgKzQzMTExLDEzIEBACiAgICAgNmU4ZGQyNmJlZjUxMzRlOS5jOTcxMTU4NTQxN2E5ZDkzLmM3YWYzODZjZGQzYTI0MDQuZDZiMGVhZTQ3OGZlYTc4NwogICAgIDI3MmVlZjg1MzA4OTU5N2UKICAgYWZ0ZXIKLSAgICBlMTAxZGIyMWVjZjMzZDI2LmE3MDUwOTI0NGM2YjE1YWYuZWY4M2E4NTA2ODAwMGYxZC4wZTZmMGViMDVlMjczMjg1CisgICAgZTEwMWRiMjFlY2YzM2QyNi5hNzA1MDkyNDRjNmIxNWFmLmVmODNhODUwNjgwMDBmMWQuMGU2ZjBlYjA1ZTI3NmYxMAogICAgIDQ1MWVjOWYyMGMzOTI5M2MuYzRiMGMyNzI3ZTU0NWI0MC45YTUxMWNmM2E3NTYyMzE0LjI1MWRmNTY1MmI1OWQwMzYKLSAgICAwMDAwMDAwMDAwMDAwMDAwLmE3MDUwOTI0MDAwMDAwMDAuZWY4M2E4NTA2ODAwMGYxZC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDgwYjQ0ODEyMDRhYTkyNmUuYjExMDFkYzRmMWQ1MWY1My5lZTcxMjNhZTZmMTA5NjUzLjlmMTk0MGE4YWExZDhlNTIKKyAgICA2ZThkZDI2YmVmNTEzNGU5LmM5NzExNTg1NDE3YTlkOTMuYzdhZjM4NmNkZDNhMjQwNC5kNmIwZWFlNDc4ZmVhNzg3CiAgICAgMjcyZWVmODUzMDg5NTk3ZQogCi1WTUFTS01PVlBEXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDYocmVnKQogICBiZWZvcmUKICAgICBlZWRmNGJmNjZmNDhkZWU2LmViNzZlNWViZTkzYWNiZDguNmExZmE2MjEwOWNkMTFhZC4wMWQ2ZDcxYjBjZTA4OTUzCiAgICAgODcwZWZhYTVkMGNhNzM2OS5kMzNhZmM3YzBmNzIxMjY4LmVlNjZjZDA0ZTU1Y2I2NGQuNzhiNDdjYTYxOTBmODA2ZQpAQCAtNDMxMjksOCArNDMxMjksOCBAQAogICAgIDg3MGVmYWE1ZDBjYTczNjkuZDMzYWZjN2MwZjcyMTI2OC5lZTY2Y2QwNGU1NWNiNjRkLjc4YjQ3Y2E2MTkwZjgwNmUKICAgICA0ZTA5ZjlmZWYwOTg1M2IzLjAyYTc5NDBjN2QwNGM2YzUuYjM5MTg0OWE3MmIyY2ExZS4wODEzYTRmYTFmZDNjNzdlCiAgICAgOWUxYTQzNmI2YTQwYmI3Mi41NDg4Mjc4NjRkZmNhMzFhLjEzZWVjOTRmNGM1Yzg3Y2QuOGRjMGNhMDEzYjM2MTdiMgotICAgIGUyODc2YWE4ODg0NjJmMzQKLVZNQVNLTU9WUERfMTI4X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBhNjIxCitWUEVYVFJXXzEyOF8weDYobWVtKQogICBiZWZvcmUKICAgICBlNTM0MDBkYzIzMGZjOTMwLmQ1OGVkNDU5ZGE0ZGU3NGYuYTRhODMzZDY5ZTY3NjQ5NC42YmM3OTc4ZjBkZTUyOTA2CiAgICAgNzE5MjA5ODcyNzliYTJkMy40ZWIxYTkzNWRkNGIxM2Y5LmQwZDQzM2U4OGE1MGM2NWUuMTg2OWVhYzY1NGQ5ZWQ3NApAQCAtNDMxMzgsMTMgKzQzMTM4LDEzIEBACiAgICAgOTM5NTYxZjdkYjMyMDBiZC43NjM0MGI2MzBiNGM1OTVlLjI4ODBmZjAyYTRjZDVjOTUuZGMzODEwY2FkZTM0Y2JhMQogICAgIGFkZmNkYjZmNWFiMjVkYjgKICAgYWZ0ZXIKLSAgICBlNTM0MDBkYzIzMGZjOTMwLmQ1OGVkNDU5ZGE0ZGU3NGYuYTRhODMzZDY5ZTY3NjQ5NC42YmM3OTc4ZjBkZTUyOTA2CisgICAgZTUzNDAwZGMyMzBmYzkzMC5kNThlZDQ1OWRhNGRlNzRmLmE0YTgzM2Q2OWU2NzY0OTQuNmJjNzk3OGYwZGU1YTNhOAogICAgIDcxOTIwOTg3Mjc5YmEyZDMuNGViMWE5MzVkZDRiMTNmOS5kMGQ0MzNlODhhNTBjNjVlLjE4NjllYWM2NTRkOWVkNzQKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTRhODMzZDY5ZTY3NjQ5NC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDYxNmYwMDk3YjBmODc2NDkuNjVjZmJjNjkwZmM3N2ExYS5iM2Q4YTNhODJkYzM4NWE1Ljc0MjBiZjYxYmJjNTBmYzMKKyAgICA5Mzk1NjFmN2RiMzIwMGJkLjc2MzQwYjYzMGI0YzU5NWUuMjg4MGZmMDJhNGNkNWM5NS5kYzM4MTBjYWRlMzRjYmExCiAgICAgYWRmY2RiNmY1YWIyNWRiOAogCi1WTUFTS01PVlBEXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDYocmVnKQogICBiZWZvcmUKICAgICA0MWJhMWJiYmNhY2MwMGI0LmUyZDFhODkzYzQ1NGZkNWMuZGQyYjkxOGQ2ZDY3ZWM3Mi4wZDk4YzRlMjBhNzkwOTU5CiAgICAgZjViY2NkMWFjYjBkZjE0Mi4yOWVmNTE1Njg2NmEyOTUyLmY1MDE0YTU1ZDJhMzZmMDIuM2RlYjZkMzU3Y2QzNDYxZApAQCAtNDMxNTYsOCArNDMxNTYsOCBAQAogICAgIGY1YmNjZDFhY2IwZGYxNDIuMjllZjUxNTY4NjZhMjk1Mi5mNTAxNGE1NWQyYTM2ZjAyLjNkZWI2ZDM1N2NkMzQ2MWQKICAgICAyNTRmZWJmOGY4MDE2YjBlLjQ2YmJkOTJlM2Q4MDQwY2EuMWMwMzMzMjZkNjhjMWRiOS45MzQ2NzZlNTE1ZThjZjBmCiAgICAgMmRiZjczYzFlZDM1YWNjMy4xMzAwYmIwNzA2YTNmZGYxLmFkN2I0NjZjMTRhZjMzNDQuZWQ3NjViZTBmMWMzNjI1OQotICAgIDI1NDU5ODEwMmU3MWI5MjcKLVZNQVNLTU9WUERfMTI4X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDA5MThkCitWUEVYVFJXXzEyOF8weDYobWVtKQogICBiZWZvcmUKICAgICAxOTgwYWE2M2U1ZmM5MWE2LjZhNTg2MGUxNDczNGVlMGUuNmU4YzczY2JmY2RlMWRmMi4wM2I2ODE5MzI4OTZlZDRmCiAgICAgYTNmMjBjYzQzNDcyYTUwMi4zNjY2YWVjNGEyOGI2ZDlhLjMxMjk3ZDY3M2MzZDVjZmEuN2NmZmRmMDdhZmQwODY4NQpAQCAtNDMxNjUsMTMgKzQzMTY1LDEzIEBACiAgICAgZWRhZmIwNjAwOTRlNzVmZi5lZTBmNWU4NGM5NmQxNjI4LjYzYzk3OGQ4MDg5OTI1Y2QuNDNlZmY1ODc4NDY2NDgyNAogICAgIDRhMmVhNTZhMGFkYmU5ZTUKICAgYWZ0ZXIKLSAgICAxOTgwYWE2M2U1ZmM5MWE2LjZhNTg2MGUxNDczNGVlMGUuNmU4YzczY2JmY2RlMWRmMi4wM2I2ODE5MzI4OTZlZDRmCisgICAgMTk4MGFhNjNlNWZjOTFhNi42YTU4NjBlMTQ3MzRlZTBlLjZlOGM3M2NiZmNkZTFkZjIuMDNiNjgxOTMyODk2NTZjNwogICAgIGEzZjIwY2M0MzQ3MmE1MDIuMzY2NmFlYzRhMjhiNmQ5YS4zMTI5N2Q2NzNjM2Q1Y2ZhLjdjZmZkZjA3YWZkMDg2ODUKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGExNjkzYTFmMzdkZmIzNjYuZWUzNDVhZDY5OWM0NjcxNC4zYWE0NTZjN2UxY2Q3NTM0LjcyYTQ1ZDM0NDRlNjNiOTMKKyAgICBlZGFmYjA2MDA5NGU3NWZmLmVlMGY1ZTg0Yzk2ZDE2MjguNjNjOTc4ZDgwODk5MjVjZC40M2VmZjU4Nzg0NjY0ODI0CiAgICAgNGEyZWE1NmEwYWRiZTllNQogCi1WTUFTS01PVlBEXzEyOF9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDYocmVnKQogICBiZWZvcmUKICAgICBlMmFiNjg0YjczZDI1OTgxLjY0OTJlYjczYzZjYmE3ZjguOTI0NGI4MzhjYzEyYjc4MS44YTY0NjE4NWNjYWUyOGYxCiAgICAgNjhiMzNhOTQ1YWQ2ZDVhNS5lM2RjNjU0NDhiNjIwNzdlLjM2MWQ2MzYwNDEzZTg2Y2MuODk0MThjYjk0YTE3M2FjYgpAQCAtNDMxODMsOCArNDMxODMsOCBAQAogICAgIDY4YjMzYTk0NWFkNmQ1YTUuZTNkYzY1NDQ4YjYyMDc3ZS4zNjFkNjM2MDQxM2U4NmNjLjg5NDE4Y2I5NGExNzNhY2IKICAgICAzOTkyMTdiMzVjNzM5OWZkLjQ0NWE5Y2MwNzQyMDRmYmQuMzZlNzVjNjZjMjdkYmViNC4zZDJjNzY2MjlkZTAxNjg4CiAgICAgYWY5M2ZjMTMxNDM2ZTAzNC42NGQ4MGNkMTliMTAzY2UwLmVlZWQ5ZGI4ZWI1YjljZTYuODNmMDk5NmJlMjE1Nzk1MwotICAgIDM1NWE3M2MwMzRjMzFmNTkKLVZNQVNLTU9WUERfMTI4X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBiODM4CitWUEVYVFJXXzEyOF8weDYobWVtKQogICBiZWZvcmUKICAgICAzMDM2N2Y0ZGFmZjVjM2M2LjI4MDRlNDIwMWVhYWU3ZjcuMjAyMTJmNjUxZjNmOGExNC5iOTdkMjRjMTU5NjU1YzBlCiAgICAgNTA1MDM5ZmU3MGI4MjNjNS5mZTJmY2I0NjE3NWJlYWYyLjUyMDM4MzY2MWFiOGY0ODUuZjVlMWVjZWRhNzI2M2FkNwpAQCAtNDMxOTIsMTMgKzQzMTkyLDEzIEBACiAgICAgNzA2ZWE5N2QzMzFlMDEyYy4zNGU2ODc4ZDQ1YTZkMzNkLjhiYmRhYjY0ZTZiODBmY2IuMmQ1OTJmNWU1NWZlM2VmZQogICAgIGUxMDRhMzdiZWQyZWRjYjQKICAgYWZ0ZXIKLSAgICAzMDM2N2Y0ZGFmZjVjM2M2LjI4MDRlNDIwMWVhYWU3ZjcuMjAyMTJmNjUxZjNmOGExNC5iOTdkMjRjMTU5NjU1YzBlCisgICAgMzAzNjdmNGRhZmY1YzNjNi4yODA0ZTQyMDFlYWFlN2Y3LjIwMjEyZjY1MWYzZjhhMTQuYjk3ZDI0YzE1OTY1ODNjMgogICAgIDUwNTAzOWZlNzBiODIzYzUuZmUyZmNiNDYxNzViZWFmMi41MjAzODM2NjFhYjhmNDg1LmY1ZTFlY2VkYTcyNjNhZDcKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iOTdkMjRjMTU5NjU1YzBlCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDcxNzQxZWJmOTMxN2Y4ODMuOGU2MWFkZjE5YmQ2MjVkMC5kNzQ4ODNjMmE4ODczNzVlLmZkNjdmMWE4NzIyYjcxZWQKKyAgICA3MDZlYTk3ZDMzMWUwMTJjLjM0ZTY4NzhkNDVhNmQzM2QuOGJiZGFiNjRlNmI4MGZjYi4yZDU5MmY1ZTU1ZmUzZWZlCiAgICAgZTEwNGEzN2JlZDJlZGNiNAogCi1WTUFTS01PVlBEXzI1Nl9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDcocmVnKQogICBiZWZvcmUKICAgICA3NGIzNDg2Y2Q1NDQ4OWJiLjI3MDk1NTIyNmNkOWY4ZWIuNGQwYTUzODZiMTU3MzFlNy40YTJlNzczOGVmNTgzN2Y5CiAgICAgNDRiNDFhOWJhYWNlN2ZjMC43MzEyYTE5YzViNTU5YWVjLjMzMTkwZjQ5N2M3NjdiNzcuZjA2NzYzMjlkZjczNmMxNApAQCAtNDMyMTAsOCArNDMyMTAsOCBAQAogICAgIDQ0YjQxYTliYWFjZTdmYzAuNzMxMmExOWM1YjU1OWFlYy4zMzE5MGY0OTdjNzY3Yjc3LmYwNjc2MzI5ZGY3MzZjMTQKICAgICBhYzUxMTU3NTA3NTdmYjZmLjMwNTYwNmQ1MWM5ZWEzNWMuNDM1ZWI3NDA0MjhlZWM5Yy41OTM0ZWMyNmQ0MTM2YTQ4CiAgICAgMDdkODM2Njc4OTZjMzg3My4zYTllMDFiYmNhYmVjZjY3LmQ5Mjc0NWQ5OWUyYmMyMDAuNjE2MThkMThlNzQ2ZWRjMAotICAgIGU0YjljMmVjMzYxN2IwYTgKLVZNQVNLTU9WUERfMjU2X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDA0ZDBhCitWUEVYVFJXXzEyOF8weDcobWVtKQogICBiZWZvcmUKICAgICBiZTA5MDg4ZWRkOTM3MDJkLmIzOTM3N2RjY2I5ODc0NzkuNmRiOTBmMzk4MWMzZDkzOS41MWJlYjc3ZTJjZGEzNzRmCiAgICAgY2IxZGQ5ZWJmN2M1ZTk3Yi4wYWNmZDY0MDY5NjdlOTJkLmE1NzJhYjNiNWViODdlZmQuMDc3MDA3OWQ4OTI2ODczNwpAQCAtNDMyMTksMTMgKzQzMjE5LDEzIEBACiAgICAgZWVjMTExODJmNTdjZjUyMS4yZGZhZGM4NDJjMjA3MDRkLjkzZWQ3ZTdiZjhhNDg4MGMuOWQ1NTM3ZjYxZWM2YWM3YwogICAgIDM1MWYwZDA4OGUzMmY3MzIKICAgYWZ0ZXIKLSAgICBiZTA5MDg4ZWRkOTM3MDJkLmIzOTM3N2RjY2I5ODc0NzkuNmRiOTBmMzk4MWMzZDkzOS41MWJlYjc3ZTJjZGEzNzRmCisgICAgYmUwOTA4OGVkZDkzNzAyZC5iMzkzNzdkY2NiOTg3NDc5LjZkYjkwZjM5ODFjM2Q5MzkuNTFiZWI3N2UyY2RhYmU5NQogICAgIGNiMWRkOWViZjdjNWU5N2IuMGFjZmQ2NDA2OTY3ZTkyZC5hNTcyYWIzYjVlYjg3ZWZkLjA3NzAwNzlkODkyNjg3MzcKLSAgICBiZTA5MDg4ZWRkOTM3MDJkLjAwMDAwMDAwMDAwMDAwMDAuNmRiOTBmMzk4MWMzZDkzOS4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGU3YzFiM2VkYTBiOWQ3YmUuNmFkODRlZmUwMDY2ZDMzYS5iZTk1NTFhZDdjYWE3YWRmLjU3ODkzM2ExNTA5Y2VmNjEKKyAgICBlZWMxMTE4MmY1N2NmNTIxLjJkZmFkYzg0MmMyMDcwNGQuOTNlZDdlN2JmOGE0ODgwYy45ZDU1MzdmNjFlYzZhYzdjCiAgICAgMzUxZjBkMDg4ZTMyZjczMgogCi1WTUFTS01PVlBEXzI1Nl9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDcocmVnKQogICBiZWZvcmUKICAgICA3YjM1YjM0MzNkNmMwZjJmLmJjZTk2Zjk1MTIxOTAwZDAuYjE4MDdhM2Q4ODIxZmExMS4wMjQ3YWQ5MWVkYjI2NWIwCiAgICAgY2JlMTI0MTNjNmZmMmUyMS4yZDA0NGExMTEyOWNiNGY4LjUwYjcyNjk2YjBmNWFlMzMuZTY2ZjU5ZGI3N2UxY2RmNgpAQCAtNDMyMzcsOCArNDMyMzcsOCBAQAogICAgIGNiZTEyNDEzYzZmZjJlMjEuMmQwNDRhMTExMjljYjRmOC41MGI3MjY5NmIwZjVhZTMzLmU2NmY1OWRiNzdlMWNkZjYKICAgICA4MTcwNWNlNGM1Nzc5MWIxLjFjZGYxZGU0MTExMmNjYzUuNjhlY2RiZjk0MTI5Yzc1ZS4xYjMxMDA0NWI0M2M3YjBiCiAgICAgZjkyZTU3MjNkNzYwNzQ4ZS42NzQ3NjRmOTJjODYwNTYyLjUzNjk5NWQzZDY0OTgzM2YuN2Q1OTFlYmNiZGNmMmQxYgotICAgIGU3YjIyZDJhYjBhNzlkNTEKLVZNQVNLTU9WUERfMjU2X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDBiMTgwCitWUEVYVFJXXzEyOF8weDcobWVtKQogICBiZWZvcmUKICAgICAzNzBhYWI3ZGE5Y2Y4N2RhLjhmNjcxMjNhOTg0NzEyNjIuZTkwNjliM2M3ZTA0MWJmYy42ZTdiNTE5MTBjZGYxYzgyCiAgICAgNDgyYjEzYTBjMzUzYTllMS45ZjY3ODg5N2EzYjdhOGQ5LjdkZTgzZTlhMjQ5OWM5YmYuMTY2ZDA5OWQ3ZTc5Y2VkMgpAQCAtNDMyNDYsMTMgKzQzMjQ2LDEzIEBACiAgICAgMWNmYjkyMDZjYmExODAxYi45Y2ViOTVjZjA4NjRhYzYzLjUwNGFiOTUyZGEzNWUxNmUuNzgyNTYzNTQ4OGU3NzE0YgogICAgIGViODNmYmQ1NThkM2Q5Y2MKICAgYWZ0ZXIKLSAgICAzNzBhYWI3ZGE5Y2Y4N2RhLjhmNjcxMjNhOTg0NzEyNjIuZTkwNjliM2M3ZTA0MWJmYy42ZTdiNTE5MTBjZGYxYzgyCisgICAgMzcwYWFiN2RhOWNmODdkYS44ZjY3MTIzYTk4NDcxMjYyLmU5MDY5YjNjN2UwNDFiZmMuNmU3YjUxOTEwY2RmMDFiYgogICAgIDQ4MmIxM2EwYzM1M2E5ZTEuOWY2Nzg4OTdhM2I3YThkOS43ZGU4M2U5YTI0OTljOWJmLjE2NmQwOTlkN2U3OWNlZDIKLSAgICAwMDAwMDAwMDAwMDAwMDAwLjhmNjcxMjNhOTg0NzEyNjIuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGY1ZTJlMTdmMWE0MGJkOTMuODQ3OWI1YTU5NDNkNzJhMC4wMWJiY2FmZDM5NTBjZGQ2LmE1OGRiYjY1YzlhM2Q3ZGMKKyAgICAxY2ZiOTIwNmNiYTE4MDFiLjljZWI5NWNmMDg2NGFjNjMuNTA0YWI5NTJkYTM1ZTE2ZS43ODI1NjM1NDg4ZTc3MTRiCiAgICAgZWI4M2ZiZDU1OGQzZDljYwogCi1WTUFTS01PVlBEXzI1Nl9Mb2FkRm9ybShyZWcpCitWUEVYVFJXXzEyOF8weDcocmVnKQogICBiZWZvcmUKICAgICA1YmYxODA1NmQ0ZjM0YjBiLjk3NDJhMDIxZjI4M2FkYTcuNDIwNzI0ODM5YmI4OTFjZC40NTYwODk4NjIyNTVjMWIyCiAgICAgMjJiY2VmNDI5OWQxMDJiMy40NDgzODliY2FhZjAwMTYwLmQxMWE1ZjJjZThjNTVlOGIuYmVjYWI2ODMyZWJiMmJjZgpAQCAtNDMyNjQsOCArNDMyNjQsOCBAQAogICAgIDIyYmNlZjQyOTlkMTAyYjMuNDQ4Mzg5YmNhYWYwMDE2MC5kMTFhNWYyY2U4YzU1ZThiLmJlY2FiNjgzMmViYjJiY2YKICAgICA5ZDMwNDMwNTQyZmMzYjcxLmZkODljOGMzMGZmNzM4NzUuYTc3MDQxMzY4YjE4NGU0OS45NTU0YmEzNzE5NzRkOWYwCiAgICAgMjg5ODc4MGM2YmZkMzJmMS5hMDIxZDkyMjNlYTEwZTBmLjFmNTVjNjBkMjEzZDlmYjIuYThjYTEzOGRmZjhhODg0MgotICAgIGQxZjgzYzcxZmQwY2YzZjEKLVZNQVNLTU9WUERfMjU2X0xvYWRGb3JtKG1lbSkKKyAgICAwMDAwMDAwMDAwMDA0MjA3CitWUEVYVFJXXzEyOF8weDcobWVtKQogICBiZWZvcmUKICAgICBlZWFhYjFjZjJmMDNkODI4LjFmNDI4YmMxYjE2MjIyZGUuMDcxODM5YzY1MmZjM2Y1ZC45NDE0ZWExZTQ1YmU4YjczCiAgICAgZDlhYmVlOTNiMDdkZjExNC5kZTc4NzY5MWIwYjY0OGU0LjEwMzg2Mzk5NjgxMzg2ODkuNjRmYmFhZDM5NDI5NGYzNwpAQCAtNDMyNzMsMTMgKzQzMjczLDEzIEBACiAgICAgOGRjZGIxZmQxMDI3YjFiYS4yNGJiYzkzMzQ2NWMyNmVlLjc0MjUwNTgwMDhhNjQ4MmQuODE2Y2VhZGQyMWViNGU3YQogICAgIDg2OGY2NDBhOTc1YTAxNTEKICAgYWZ0ZXIKLSAgICBlZWFhYjFjZjJmMDNkODI4LjFmNDI4YmMxYjE2MjIyZGUuMDcxODM5YzY1MmZjM2Y1ZC45NDE0ZWExZTQ1YmU4YjczCisgICAgZWVhYWIxY2YyZjAzZDgyOC4xZjQyOGJjMWIxNjIyMmRlLjA3MTgzOWM2NTJmYzNmNWQuOTQxNGVhMWU0NWJlOTU0ZAogICAgIGQ5YWJlZTkzYjA3ZGYxMTQuZGU3ODc2OTFiMGI2NDhlNC4xMDM4NjM5OTY4MTM4Njg5LjY0ZmJhYWQzOTQyOTRmMzcKLSAgICBlZWFhYjFjZjJmMDNkODI4LjFmNDI4YmMxYjE2MjIyZGUuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCi0gICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDZmYzg3MGE5OWM4NWZhZTEuYzE4NzM3ZTkwMzg1ZTBiMC45NTRkZDM4OTliZjJhMGMwLmU5NTQwMDk5YTkwOTI2YWIKKyAgICA4ZGNkYjFmZDEwMjdiMWJhLjI0YmJjOTMzNDY1YzI2ZWUuNzQyNTA1ODAwOGE2NDgyZC44MTZjZWFkZDIxZWI0ZTdhCiAgICAgODY4ZjY0MGE5NzVhMDE1MQogCi1WTUFTS01PVlBTXzEyOF9TdG9yZUZvcm0ocmVnKQorVkFFU0VOQyhyZWcpCiAgIGJlZm9yZQogICAgIDU2MDk2ODhiYThlMjdiZGMuMGQ4NjJmN2IyODcwZDBjYi42MzYwMjlkZDE2YzY1NTQ5Ljg3OGI3NTZjY2EzYTNjZmQKICAgICA0YjI1ZjRjZWVmMTBmYWM2LmNjYmY2NjEwZmY2YjE0NDIuZGFjMjUxNTIwZjUwYWE2ZS5hYjRhYTAzOGZkYmIzNjViCkBAIC00MzI4NywxMiArNDMyODcsMTIgQEAKICAgICAxODc3OTE0NzkwOGJmMjZhLjc4ZTBlYjJiNWJhOWZhMGMuZTBlY2VlNGRlOWYxYjZjNS45NzA2MTMyMDI5YjEyZTc0CiAgICAgMTY5YjU1MTQ1OTNlYTQ4NgogICBhZnRlcgotICAgIDU2MDk2ODhiYThlMjdiZGMuMGQ4NjJmN2IyODcwZDBjYi42MzYwMjlkZDE2YzY1NTQ5Ljg3OGI3NTZjY2EzYTNjZmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZGEwNTIyNTE4ZWEzMDBjYy45NDMyN2Y0MGU5YjJiMjM5CiAgICAgNGIyNWY0Y2VlZjEwZmFjNi5jY2JmNjYxMGZmNmIxNDQyLmRhYzI1MTUyMGY1MGFhNmUuYWI0YWEwMzhmZGJiMzY1YgogICAgIGMyMzEwMjNlMDg2ZmI4YmMuYTc0NGQwYTZiMTI1Mzk0OC5lNTJkM2ZmZWNiODQ2MTA5LmJjMmYwMGQwYmYzNGYyNzQKICAgICAxODc3OTE0NzkwOGJmMjZhLjc4ZTBlYjJiNWJhOWZhMGMuZTBlY2VlNGRlOWYxYjZjNS45NzA2MTMyMDI5YjEyZTc0CiAgICAgMTY5YjU1MTQ1OTNlYTQ4NgotVk1BU0tNT1ZQU18xMjhfU3RvcmVGb3JtKG1lbSkKK1ZBRVNFTkMobWVtKQogICBiZWZvcmUKICAgICAxNmJhNDA5ODZiZTgxMWQ3LmE3NDU5YTU1MjNmMWU0N2IuMWM2MTMxODkxODAzMTRiOC4yNjRjNWFhYjAzMjBlNDRmCiAgICAgNzMyZjUyOTk3YWJiMzE5Mi5jY2U1MWFkNDVjMmNjOTliLjZmOTEyMWFlMDU0MDQzNzguMTU5OTdmODRiNTlmMjg1MgpAQCAtNDMzMDAsMTMgKzQzMzAwLDEzIEBACiAgICAgYjQ0OWQ4YmUwMDA4NzhmOS40OWNkNzFkNjMxNTI1ZmJiLjkyMzFlN2ZhZGQ5MGNlZTguNWIyYWU2NTc1M2JiZTE3NgogICAgIDY5MDYxZjJhNzY2ZmNlZWUKICAgYWZ0ZXIKLSAgICAxNmJhNDA5ODZiZTgxMWQ3LmE3NDU5YTU1MjNmMWU0N2IuMWM2MTMxODkxODAzMTRiOC4yNjRjNWFhYmI1OWYyODUyCisgICAgMTZiYTQwOTg2YmU4MTFkNy5hNzQ1OWE1NTIzZjFlNDdiLjFjNjEzMTg5MTgwMzE0YjguMjY0YzVhYWIwMzIwZTQ0ZgogICAgIDczMmY1Mjk5N2FiYjMxOTIuY2NlNTFhZDQ1YzJjYzk5Yi42ZjkxMjFhZTA1NDA0Mzc4LjE1OTk3Zjg0YjU5ZjI4NTIKLSAgICAwOWM1MDYwMWEyYzFiZmU0LmU0YTMwZTMxZDdjOGRlNzguNGQzZDM0ODUzZDZiNDI3YS4wODFmNWE0NDljZjliZTdiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI3Y2JmZjgzNTMwNDY2NDUuZWQ3NDdjNmY5MzAzZTg4MwogICAgIGI0NDlkOGJlMDAwODc4ZjkuNDljZDcxZDYzMTUyNWZiYi45MjMxZTdmYWRkOTBjZWU4LjViMmFlNjU3NTNiYmUxNzYKICAgICA2OTA2MWYyYTc2NmZjZWVlCiAKLVZNQVNLTU9WUFNfMTI4X1N0b3JlRm9ybShyZWcpCitWQUVTRU5DKHJlZykKICAgYmVmb3JlCiAgICAgOTBmZTAxMjdhMmE0YzE5MC41MDg4NDRiYWFmOWIxOGZjLjU4YWUzZjMwMDY1NTg3MTMuMWEzOGI3ZjkwMGJiYTNlZQogICAgIDJiNjA4OWJjNzNlM2Y2MDcuYjk0Y2M3ZTNjYzg3NWExYS42ZDkxNzVhY2YwNWQ5MzJhLmMxMjAxZjZlYzJmOTdkYjkKQEAgLTQzMzE0LDEyICs0MzMxNCwxMiBAQAogICAgIDJjOGQ3NzVhNzJiNDE0MjYuNjI5NWZmNjliZTk3Yjc1NS4xOTkwMDViNjdhYWU0NzQ3LmRjYmZhODZiOTZkYzJlNGQKICAgICAwODBlYzBjYWRmOTk3ZTZkCiAgIGFmdGVyCi0gICAgOTBmZTAxMjdhMmE0YzE5MC41MDg4NDRiYWFmOWIxOGZjLjU4YWUzZjMwMDY1NTg3MTMuMWEzOGI3ZjkwMGJiYTNlZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNzU3MzdhZDRlMmViMzIwLmNlODYxYWI4NGUxYzMyZjMKICAgICAyYjYwODliYzczZTNmNjA3LmI5NGNjN2UzY2M4NzVhMWEuNmQ5MTc1YWNmMDVkOTMyYS5jMTIwMWY2ZWMyZjk3ZGI5CiAgICAgOTU3NmIxNTQ4NGJhYTgwMC5jYjYxZGMyNDczZDdmYjdlLmU0YzMwZGI1OGVmN2JmYWMuNjNiMzliNDY0MDU2MTc3NAogICAgIDJjOGQ3NzVhNzJiNDE0MjYuNjI5NWZmNjliZTk3Yjc1NS4xOTkwMDViNjdhYWU0NzQ3LmRjYmZhODZiOTZkYzJlNGQKICAgICAwODBlYzBjYWRmOTk3ZTZkCi1WTUFTS01PVlBTXzEyOF9TdG9yZUZvcm0obWVtKQorVkFFU0VOQyhtZW0pCiAgIGJlZm9yZQogICAgIGMzNmQ2MTUwMzg5OGMzMDMuNGFmMWQ2M2NkODVlNzYyNi41YWIzYWM5ZWNjZDQ0YWNiLjY4NDQ1ODFkNTAwZjY2YTQKICAgICBlOWE4MDZlN2JiZTZiODM5LjRkZWRjYjY1NTI0MzA5YWMuOGY4NjVmYWZiNjk5NmYwYi4yZDJiMDI1NWFkYTQ1OTcyCkBAIC00MzMyNywxMyArNDMzMjcsMTMgQEAKICAgICBlNmUxNGRmZGI2OWNhNTM2LjZlZTE2MzNjZjRlZmI1ZjguMjA3ZWM5MTU5NGVjNjI5Yi44OWMxNGNlODY5YTBhYjBiCiAgICAgZDgwOGU0MWIwMjFlODEyZgogICBhZnRlcgotICAgIGMzNmQ2MTUwMzg5OGMzMDMuNGFmMWQ2M2NkODVlNzYyNi44Zjg2NWZhZmI2OTk2ZjBiLjJkMmIwMjU1NTAwZjY2YTQKKyAgICBjMzZkNjE1MDM4OThjMzAzLjRhZjFkNjNjZDg1ZTc2MjYuNWFiM2FjOWVjY2Q0NGFjYi42ODQ0NTgxZDUwMGY2NmE0CiAgICAgZTlhODA2ZTdiYmU2YjgzOS40ZGVkY2I2NTUyNDMwOWFjLjhmODY1ZmFmYjY5OTZmMGIuMmQyYjAyNTVhZGE0NTk3MgotICAgIDU2OGEyYjdkODc4ZTFhM2IuOGZjZjUwNDE3ZGVmMGE2My5kZGRiOTU4ODliZjJlNDQyLmM0OTEwMGNhMmNmYjVjNWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzcyYTFlOTU5Y2QxZTc0Ni5hYTNjYjZjY2VmNmE5MjIwCiAgICAgZTZlMTRkZmRiNjljYTUzNi42ZWUxNjMzY2Y0ZWZiNWY4LjIwN2VjOTE1OTRlYzYyOWIuODljMTRjZTg2OWEwYWIwYgogICAgIGQ4MDhlNDFiMDIxZTgxMmYKIAotVk1BU0tNT1ZQU18xMjhfU3RvcmVGb3JtKHJlZykKK1ZBRVNFTkMocmVnKQogICBiZWZvcmUKICAgICAwZGIzYzNkMDkwMDExYjczLjc0NzdlNjUzNjQxZDE0NTYuNDQ3MGZmYzM1NGNlNDYxNy4zMzNiNzc0MmJmOTJhODQzCiAgICAgODQwY2U2NzFiMWQ1YjQ4My5kZTE5NzQ2YmFlMWMyNGM3LjZlYzkyMDQwMzkxOGY4NmIuZjRkZTFiZmMzOGYwNzA2NgpAQCAtNDMzNDEsMTIgKzQzMzQxLDEyIEBACiAgICAgYTdmYWU0MmIxYjgyZDdiNC5iM2IxNWQ5MTg0YzUxNjQ5LjJmMDNlM2QwZmYxZmIyNjQuZWQwNTM2YzM4MjA2NzljYQogICAgIGRjMjFhNWE5OGJkNTMxNjUKICAgYWZ0ZXIKLSAgICAwZGIzYzNkMDkwMDExYjczLjc0NzdlNjUzNjQxZDE0NTYuNDQ3MGZmYzM1NGNlNDYxNy4zMzNiNzc0MmJmOTJhODQzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNhNjE1ZGNmZTE0YjMyYWYuNjc2YjdiNGY2ODc0NzI5MQogICAgIDg0MGNlNjcxYjFkNWI0ODMuZGUxOTc0NmJhZTFjMjRjNy42ZWM5MjA0MDM5MThmODZiLmY0ZGUxYmZjMzhmMDcwNjYKICAgICA5OTVmNDc2YzAxMjc4YTBhLmZmOTM3MzMxYWZhNTkxYjMuNDkzNWMzMjEzZTVhMDhhMC4zZTMyMzIyZDFhMTM3NzJmCiAgICAgYTdmYWU0MmIxYjgyZDdiNC5iM2IxNWQ5MTg0YzUxNjQ5LjJmMDNlM2QwZmYxZmIyNjQuZWQwNTM2YzM4MjA2NzljYQogICAgIGRjMjFhNWE5OGJkNTMxNjUKLVZNQVNLTU9WUFNfMTI4X1N0b3JlRm9ybShtZW0pCitWQUVTRU5DKG1lbSkKICAgYmVmb3JlCiAgICAgZTk1M2ZiY2I1MThkNWMyYS4wYzI4YjgxYzliNzNkODJlLmQ1M2ZhZjc4NDg4NzcxYjMuN2Q3ZTdjYmIxOWYzMzE2MAogICAgIGVlNjdiMjE1ZjEzOWI2NDUuMjMzNGJmYWExZTg1YzgyNC40MzA4ZTZkMDE4Zjg1YzFlLjkwZjE4YTRjMjc2M2MyNDMKQEAgLTQzMzU0LDEzICs0MzM1NCwxMyBAQAogICAgIDU1NjUzN2QxMmQ5ZWU2MzAuZDYxOTU3NGQ5YzNjNjkzMi42ZjdmZjA4NzRhMTNkNGE1LjcwZjNmNjE1OTE0NDBhNjkKICAgICBmNjE5NGIyNDI0Y2UzODA0CiAgIGFmdGVyCi0gICAgZTk1M2ZiY2I1MThkNWMyYS4wYzI4YjgxYzliNzNkODJlLjQzMDhlNmQwNDg4NzcxYjMuOTBmMThhNGMyNzYzYzI0MworICAgIGU5NTNmYmNiNTE4ZDVjMmEuMGMyOGI4MWM5YjczZDgyZS5kNTNmYWY3ODQ4ODc3MWIzLjdkN2U3Y2JiMTlmMzMxNjAKICAgICBlZTY3YjIxNWYxMzliNjQ1LjIzMzRiZmFhMWU4NWM4MjQuNDMwOGU2ZDAxOGY4NWMxZS45MGYxOGE0YzI3NjNjMjQzCi0gICAgYzkyOTQ4NzM4NmU1ZmJlMy40ODZiZjY0MTQwNDRlNTQxLmQ3ZGE3ZDg2MGYyMjkzYjUuYzJhYTA5ZjFjNWZhYTFiNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44MGRmYzBmYjZiMzY3MjQ1LmZmMzI1ZGNiM2MzYjBlOGQKICAgICA1NTY1MzdkMTJkOWVlNjMwLmQ2MTk1NzRkOWMzYzY5MzIuNmY3ZmYwODc0YTEzZDRhNS43MGYzZjYxNTkxNDQwYTY5CiAgICAgZjYxOTRiMjQyNGNlMzgwNAogCi1WTUFTS01PVlBTXzI1Nl9TdG9yZUZvcm0ocmVnKQorVkFFU0VOQ0xBU1QocmVnKQogICBiZWZvcmUKICAgICBiMDY3MDY4YTFjMjM2ODM1LjZkZTZmZDFiMDI2ZjM0NTcuMmI4YWUwM2FjZWZhOTBhMy5lNWM0YmNiZWU0ZDdkOTE5CiAgICAgZmEyYjIyYjMxNWNmZDZhNy5lZjc5MTYzZDFmNjVhMTg1LmEyMGE4Yzc0NzMwOTk4M2YuMTc3NTVjMTZmYTc5NWYzZgpAQCAtNDMzNjgsMTIgKzQzMzY4LDEyIEBACiAgICAgYWU0MTZmZmY3NzVlNWIwMS45YzA2MmRiYWE3ZWRjNmE1LjY1NjYzZTdmODQ0YzM2YWEuMWI0YTA4ZGUwNzg3ZGQ0YgogICAgIGE1MDYwYzI1MzcwYzRkODkKICAgYWZ0ZXIKLSAgICBiMDY3MDY4YTFjMjM2ODM1LjZkZTZmZDFiMDI2ZjM0NTcuMmI4YWUwM2FjZWZhOTBhMy5lNWM0YmNiZWU0ZDdkOTE5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE5Nzg5N2Y1ZDY0MGRmYzYuZjIzYTBkM2E5ZDA0NmIzNQogICAgIGZhMmIyMmIzMTVjZmQ2YTcuZWY3OTE2M2QxZjY1YTE4NS5hMjBhOGM3NDczMDk5ODNmLjE3NzU1YzE2ZmE3OTVmM2YKICAgICAzMGIwOWMwY2FhNWZiZDA3LmI1ZWJmYzI0YTM4YWU4ZTYuOTZlNTU4NjcyNmY2YmJiMy5kZjVkNGI3ZGE3MDUyMTQwCiAgICAgYWU0MTZmZmY3NzVlNWIwMS45YzA2MmRiYWE3ZWRjNmE1LjY1NjYzZTdmODQ0YzM2YWEuMWI0YTA4ZGUwNzg3ZGQ0YgogICAgIGE1MDYwYzI1MzcwYzRkODkKLVZNQVNLTU9WUFNfMjU2X1N0b3JlRm9ybShtZW0pCitWQUVTRU5DTEFTVChtZW0pCiAgIGJlZm9yZQogICAgIDViNWZkNDNlNTM5ZjJkMjkuZDAyYjk2ZmExOTU5ZWE0MC44MTk2MjRlZDRhOTdmN2VlLjY5ZGEzYzI5Mjg5NzQ0ZDEKICAgICAxNzFmZGQxNjc2NGQzYjU1LmYyYmEwZjY3MmNkYWE2NzEuM2U2OTVkYTdhNTk2MzdlZi4wMDhkNGRjZmFmNjQyMmQzCkBAIC00MzM4MSwxMyArNDMzODEsMTMgQEAKICAgICAxNDA3OWZhZTQyMjdjYzAzLmE2ZjdlNTRjMTJhNDk5NTcuYjQwNDg2NjVmOWMxZDJjMy41MmUwOTljNGQ0YjEzZTFiCiAgICAgYzcxOGNiZTlhYTRhZjRiOAogICBhZnRlcgotICAgIDE3MWZkZDE2NzY0ZDNiNTUuZDAyYjk2ZmExOTU5ZWE0MC4zZTY5NWRhN2E1OTYzN2VmLjAwOGQ0ZGNmYWY2NDIyZDMKKyAgICA1YjVmZDQzZTUzOWYyZDI5LmQwMmI5NmZhMTk1OWVhNDAuODE5NjI0ZWQ0YTk3ZjdlZS42OWRhM2MyOTI4OTc0NGQxCiAgICAgMTcxZmRkMTY3NjRkM2I1NS5mMmJhMGY2NzJjZGFhNjcxLjNlNjk1ZGE3YTU5NjM3ZWYuMDA4ZDRkY2ZhZjY0MjJkMwotICAgIGI2MTNhMjk3YmMyMDMxM2EuNzAzYWQ2YjQ0YjZmY2QzZi5iMDRhNTRkNmQ3ZjU0MWQxLjg0Y2I2ZGRmYjQzZTBjNWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuODdjYmI3YjEyOWQ0YmIzMS4xMDIzYTZhMzlhMDdhN2I3CiAgICAgMTQwNzlmYWU0MjI3Y2MwMy5hNmY3ZTU0YzEyYTQ5OTU3LmI0MDQ4NjY1ZjljMWQyYzMuNTJlMDk5YzRkNGIxM2UxYgogICAgIGM3MThjYmU5YWE0YWY0YjgKIAotVk1BU0tNT1ZQU18yNTZfU3RvcmVGb3JtKHJlZykKK1ZBRVNFTkNMQVNUKHJlZykKICAgYmVmb3JlCiAgICAgM2RiZTAxYmNkMjk0NjllMS4wZWM2NTE0ODIzNmJjOGRkLmYwM2MzYTliMWUwNDQ3NjQuMjQ2NDZlNDAyOTA0YTZlZgogICAgIDEyMjAzNmE4ZTkxYmRhNDIuN2UxZTMyNGY3Y2ZhZTBmMy5hYTU3ZDAwYzBhMWIxMjE0LmRkMzY4ODUzODNjZDc4ODIKQEAgLTQzMzk1LDEyICs0MzM5NSwxMiBAQAogICAgIDQ0NDM4ZTdjNTMxMjlmNTkuMzNjNDc2NTkwNDI3NTc4Ni5kZDNhYjAwYWY0OWZmMjA3LjlhNjA0M2QxMjIxYTA5OGIKICAgICA1NzUwZGIxNWEwYjc0MDU5CiAgIGFmdGVyCi0gICAgM2RiZTAxYmNkMjk0NjllMS4wZWM2NTE0ODIzNmJjOGRkLmYwM2MzYTliMWUwNDQ3NjQuMjQ2NDZlNDAyOTA0YTZlZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC41Nzk3MWZmM2IyYzg0N2VhLjU3MWQ5OTY3OGU4YWMyYjQKICAgICAxMjIwMzZhOGU5MWJkYTQyLjdlMWUzMjRmN2NmYWUwZjMuYWE1N2QwMGMwYTFiMTIxNC5kZDM2ODg1MzgzY2Q3ODgyCiAgICAgYTA4ODY2MTk4YjZjODI4Ni40MWQ5YzBiMTY4ZGZkMTcyLjMwOTJhMzBkNzM3NTM3MTAuYmI0NjUwOGEyMjI1MDZhNwogICAgIDQ0NDM4ZTdjNTMxMjlmNTkuMzNjNDc2NTkwNDI3NTc4Ni5kZDNhYjAwYWY0OWZmMjA3LjlhNjA0M2QxMjIxYTA5OGIKICAgICA1NzUwZGIxNWEwYjc0MDU5Ci1WTUFTS01PVlBTXzI1Nl9TdG9yZUZvcm0obWVtKQorVkFFU0VOQ0xBU1QobWVtKQogICBiZWZvcmUKICAgICBjY2UxOTY0MGI4MDk2NTNlLjVhOWRhOTNiZGQ5OTZiNjguMzBhYmQxMzM2YmRkMmQ1YS4wZjliZjE2ZDJhMjQ3ZmEzCiAgICAgZDZlMGVmNDA4NTFiMzU2Ni4zZmUxYjNjM2M2OGUyMjVmLjE0NWE0YjJiYmEwZDEwMWIuMjEwMTY0YTNiMDkxMTk5MApAQCAtNDM0MDgsMTMgKzQzNDA4LDEzIEBACiAgICAgMTk1OTZjNmJhZmIwYzYyZC5lMTViODRkZjIzZWY0NWI0LjAxNDA5MTI1N2UwY2VkMTIuNTQwYmNkMzkxZTUwNjcxMAogICAgIDJlNDdiYzcxM2ViYjkzZmEKICAgYWZ0ZXIKLSAgICBjY2UxOTY0MGI4MDk2NTNlLjVhOWRhOTNiYzY4ZTIyNWYuMTQ1YTRiMmI2YmRkMmQ1YS4wZjliZjE2ZDJhMjQ3ZmEzCisgICAgY2NlMTk2NDBiODA5NjUzZS41YTlkYTkzYmRkOTk2YjY4LjMwYWJkMTMzNmJkZDJkNWEuMGY5YmYxNmQyYTI0N2ZhMwogICAgIGQ2ZTBlZjQwODUxYjM1NjYuM2ZlMWIzYzNjNjhlMjI1Zi4xNDVhNGIyYmJhMGQxMDFiLjIxMDE2NGEzYjA5MTE5OTAKLSAgICA1MTFhNjNmZjIzZjk2Y2ZjLjRkNWRhODgxYWE3YzAyZWEuYmI5ZDYyMmQwY2MzYmNmNC42ZmI4MDQxOTIzNzFmZDdiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM0ZDcwNWMyOTY1YzllZjUuZTgyNTNiNjdkMGYzM2NjMwogICAgIDE5NTk2YzZiYWZiMGM2MmQuZTE1Yjg0ZGYyM2VmNDViNC4wMTQwOTEyNTdlMGNlZDEyLjU0MGJjZDM5MWU1MDY3MTAKICAgICAyZTQ3YmM3MTNlYmI5M2ZhCiAKLVZNQVNLTU9WUFNfMjU2X1N0b3JlRm9ybShyZWcpCitWQUVTRU5DTEFTVChyZWcpCiAgIGJlZm9yZQogICAgIDU3YjljYzJiMWUzZGJjZTYuMGE2OTg4NmY0NDRhZmUyNC41NzI5NDQ0YmQwNzQyODY5LmMyMGU1NGZmMmJmNDVlYTEKICAgICAyZGFiZjhkNTVhNjIxZjgwLjAwMTgzMmY3ZmZkNmQxMGUuMGIxMWUzMzA0Yjk2ZTdiNy5kYWQ0MjdhNzJmODVjY2NjCkBAIC00MzQyMiwxMiArNDM0MjIsMTIgQEAKICAgICA0YzQxOWFhNjU5YzY4MjZjLjZiN2YyMTQzNTVlZDM3NmEuOWQ2MWFlMTQxY2UyZTdjOC43Zjc4ZWYxMmFmZDg4ZmE4CiAgICAgYzRlZWRiYWQ2MmIwNWJiMQogICBhZnRlcgotICAgIDU3YjljYzJiMWUzZGJjZTYuMGE2OTg4NmY0NDRhZmUyNC41NzI5NDQ0YmQwNzQyODY5LmMyMGU1NGZmMmJmNDVlYTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWEyODE2ZmU2Nzc2YWNlZS4zMGRjMTM1NjhjNWQzZjhiCiAgICAgMmRhYmY4ZDU1YTYyMWY4MC4wMDE4MzJmN2ZmZDZkMTBlLjBiMTFlMzMwNGI5NmU3YjcuZGFkNDI3YTcyZjg1Y2NjYwogICAgIDBiNjkzZmRhOGZiNmY4NzMuZDczMWU2ZWZmYjVkZmIxNi41OTYwNWRmYTMwZTFiZDQ3LjI1NWU4NzBhYTdjZGYzYzAKICAgICA0YzQxOWFhNjU5YzY4MjZjLjZiN2YyMTQzNTVlZDM3NmEuOWQ2MWFlMTQxY2UyZTdjOC43Zjc4ZWYxMmFmZDg4ZmE4CiAgICAgYzRlZWRiYWQ2MmIwNWJiMQotVk1BU0tNT1ZQU18yNTZfU3RvcmVGb3JtKG1lbSkKK1ZBRVNFTkNMQVNUKG1lbSkKICAgYmVmb3JlCiAgICAgZDA4Y2M3YzZkYzYzMTQwNy40ZTdlMDdhNTUzMWVmYTE2Ljk3Y2Y1ZGRmMjg5MjQyMzMuMzM2MmQyZWNhYTI0YTFlNAogICAgIDdmMWQzMDQ5M2FmZDc2ZDUuNmI2YjgwNDMxOTQ4OWMxZS4zOWVkMThhZjkxNTZkOGEwLjc3YWRjNmVlNzYzNDI2NDcKQEAgLTQzNDM1LDEzICs0MzQzNSwxMyBAQAogICAgIDM1NGM2NTNkMTAxMjIzOGIuNmE4ODhjMGQ3YjQ3NGRmNi40Y2MzZjk5YzkzNzE5NDEwLjc5NTUwYjFiM2JlYjg1OTUKICAgICBlZjQ5NTQyMDZiYWFkNWQ4CiAgIGFmdGVyCi0gICAgN2YxZDMwNDkzYWZkNzZkNS40ZTdlMDdhNTUzMWVmYTE2Ljk3Y2Y1ZGRmOTE1NmQ4YTAuNzdhZGM2ZWVhYTI0YTFlNAorICAgIGQwOGNjN2M2ZGM2MzE0MDcuNGU3ZTA3YTU1MzFlZmExNi45N2NmNWRkZjI4OTI0MjMzLjMzNjJkMmVjYWEyNGExZTQKICAgICA3ZjFkMzA0OTNhZmQ3NmQ1LjZiNmI4MDQzMTk0ODljMWUuMzllZDE4YWY5MTU2ZDhhMC43N2FkYzZlZTc2MzQyNjQ3Ci0gICAgYWM2ZTkwMjI5Nzg4M2M0Ny4wMDU1MDNlZDQ4ZDJhNDJmLjJjYTVjZGEwYWI0N2I0ZGIuYzU5MDg1ODQxZTlkYjQ5ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xNjVhYWFhNmRkOGFlZmQzLjBiMzdiM2M0Yjg5NTE1NDQKICAgICAzNTRjNjUzZDEwMTIyMzhiLjZhODg4YzBkN2I0NzRkZjYuNGNjM2Y5OWM5MzcxOTQxMC43OTU1MGIxYjNiZWI4NTk1CiAgICAgZWY0OTU0MjA2YmFhZDVkOAogCi1WTUFTS01PVlBEXzEyOF9TdG9yZUZvcm0ocmVnKQorVkFFU0RFQyhyZWcpCiAgIGJlZm9yZQogICAgIDgyYjg1ZGZkNGE2N2UyMTIuZjU4MTJhODZjMGE3ZTdjYi4wMzUwMTUxMDRmMzRkNDFmLjc0MTIxNjkxNjRkZTMyNmMKICAgICA5MGVkMjEyMDczYWRlNmVmLmM4ZDk1Y2U5YzQ1MTQzMzMuMjhmOTljNjM1ZjI0NzU1NS44MjYwYTI2OTNhOWM0YTFiCkBAIC00MzQ0OSwxMiArNDM0NDksMTIgQEAKICAgICA4YWRkY2FlNDE0MDVjNTQ1LjE2MjdmM2FkMzYxYWI3MmUuODcxZDkxYTVhNTNlZjQ5YS5iYzI0ZjQ3NzY4M2FkYzIwCiAgICAgYTEzM2IyODRmNzMxY2RjZgogICBhZnRlcgotICAgIDgyYjg1ZGZkNGE2N2UyMTIuZjU4MTJhODZjMGE3ZTdjYi4wMzUwMTUxMDRmMzRkNDFmLjc0MTIxNjkxNjRkZTMyNmMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWMyODQxMWM3MDg0YWQ5OS45MzE2YTg1NDZiMTcwYmNmCiAgICAgOTBlZDIxMjA3M2FkZTZlZi5jOGQ5NWNlOWM0NTE0MzMzLjI4Zjk5YzYzNWYyNDc1NTUuODI2MGEyNjkzYTljNGExYgogICAgIDc0MzY5Y2YzODIwOTFkMWMuODkyMjc1NTIzODFlZjVmMC4zNmNmMWM3MTQ4YTM2YjQ1LjUxNzcxODEyMzJiNzlhNDgKICAgICA4YWRkY2FlNDE0MDVjNTQ1LjE2MjdmM2FkMzYxYWI3MmUuODcxZDkxYTVhNTNlZjQ5YS5iYzI0ZjQ3NzY4M2FkYzIwCiAgICAgYTEzM2IyODRmNzMxY2RjZgotVk1BU0tNT1ZQRF8xMjhfU3RvcmVGb3JtKG1lbSkKK1ZBRVNERUMobWVtKQogICBiZWZvcmUKICAgICBkYjcwY2YyNWZiYTgyODgwLjJkMzBhNzVlYzUzMDE4MTUuNDliMzUxZTdkYzRmNDUxOC43ODMwZjc2ZDEzODA0OTAxCiAgICAgNDVhN2M2NDY5MWFjYWE2MC5iYjc5MzBjZDMwMTM1MzM5LjAwOTMwYmViNDZjYzVkZGIuNjU1NDRiMzQyZGY2YTkyNgpAQCAtNDM0NjIsMTMgKzQzNDYyLDEzIEBACiAgICAgMWQzMTMyYjhlMTg4MTM1Yi4wNDFmMzMzYWE1MzY3MDJjLjY2N2Y4NDAwZDRjNzE2OWIuYTRmZmE5NmZkN2FhNzU1OAogICAgIGFkMWVhZGJiOWUwMjVhYmQKICAgYWZ0ZXIKLSAgICBkYjcwY2YyNWZiYTgyODgwLjJkMzBhNzVlYzUzMDE4MTUuNDliMzUxZTdkYzRmNDUxOC42NTU0NGIzNDJkZjZhOTI2CisgICAgZGI3MGNmMjVmYmE4Mjg4MC4yZDMwYTc1ZWM1MzAxODE1LjQ5YjM1MWU3ZGM0ZjQ1MTguNzgzMGY3NmQxMzgwNDkwMQogICAgIDQ1YTdjNjQ2OTFhY2FhNjAuYmI3OTMwY2QzMDEzNTMzOS4wMDkzMGJlYjQ2Y2M1ZGRiLjY1NTQ0YjM0MmRmNmE5MjYKLSAgICBiZGEzMTNkM2Q0NDgwZjlhLjhmMDQ2MDlkZjEzY2IyNWQuMTU5MzllYTQ4ZjlhYjlhMy5hYWQ1ODc2NjkwMmE0ZWI0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjkyMTg4YWZhNzQ4MGM2MmIuMzE0M2RiNWUwZjk3M2I1ZQogICAgIDFkMzEzMmI4ZTE4ODEzNWIuMDQxZjMzM2FhNTM2NzAyYy42NjdmODQwMGQ0YzcxNjliLmE0ZmZhOTZmZDdhYTc1NTgKICAgICBhZDFlYWRiYjllMDI1YWJkCiAKLVZNQVNLTU9WUERfMTI4X1N0b3JlRm9ybShyZWcpCitWQUVTREVDKHJlZykKICAgYmVmb3JlCiAgICAgMjI3ZDhkYjc4MmJjMzk5MC40MzFlYTBlMmQzNzk3MmNlLjc4MTVhNTEwZTc4ZWNhNTMuY2QyMzNiZWEzMDVlMmZlZgogICAgIDVmNmE0N2NkMWY2NzRkN2QuMDkzNGQ3M2JjNzI2ZTcyMC40NTMxYjM4YzU0Y2ZmYzdkLjI4NGIzZTRlYmY2YmMyY2QKQEAgLTQzNDc2LDEyICs0MzQ3NiwxMiBAQAogICAgIGExMTkzNmZiZjFiOTA2NTMuZTkwZDk1MmUyM2U1MDUxMC41ZTBmOTAyMjFkM2RkNzhjLjI2NTUxOTM0ZTkxOTQwZDEKICAgICA4MWQwZTk4ZWJiZDJhNTUwCiAgIGFmdGVyCi0gICAgMjI3ZDhkYjc4MmJjMzk5MC40MzFlYTBlMmQzNzk3MmNlLjc4MTVhNTEwZTc4ZWNhNTMuY2QyMzNiZWEzMDVlMmZlZgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45ZTk0OGY1MDZiYTI1MjIzLjhhZjgwNTNiODkwYmNmODQKICAgICA1ZjZhNDdjZDFmNjc0ZDdkLjA5MzRkNzNiYzcyNmU3MjAuNDUzMWIzOGM1NGNmZmM3ZC4yODRiM2U0ZWJmNmJjMmNkCiAgICAgYzAyZmQ2NmExMDhjZDMyZi40YzNmNTViMWQ4OWMyZjdkLmM5YzE1ODE4ODc4NTQyNTcuNTFjMjBhMTg5ZWZiODk1ZgogICAgIGExMTkzNmZiZjFiOTA2NTMuZTkwZDk1MmUyM2U1MDUxMC41ZTBmOTAyMjFkM2RkNzhjLjI2NTUxOTM0ZTkxOTQwZDEKICAgICA4MWQwZTk4ZWJiZDJhNTUwCi1WTUFTS01PVlBEXzEyOF9TdG9yZUZvcm0obWVtKQorVkFFU0RFQyhtZW0pCiAgIGJlZm9yZQogICAgIDNmZmZmNTEyMzAzMTcyMDguNWU3NDYzZWI1Zjc5MjQ5NC5iYTY5MTRhMGMzMTAyNzA2LjYyNjg1NzE0YjE4MmY4YzkKICAgICAzY2FlYjlhZDY1NDI2NDI0LjUyOGM1OWE1ZjU1ODY3OWYuOWMxZTRjZjJkNTI2NGY4Yi4yZjE3YTk1Y2UwZTBlMWJhCkBAIC00MzQ5MSwxMSArNDM0OTEsMTEgQEAKICAgYWZ0ZXIKICAgICAzZmZmZjUxMjMwMzE3MjA4LjVlNzQ2M2ViNWY3OTI0OTQuYmE2OTE0YTBjMzEwMjcwNi42MjY4NTcxNGIxODJmOGM5CiAgICAgM2NhZWI5YWQ2NTQyNjQyNC41MjhjNTlhNWY1NTg2NzlmLjljMWU0Y2YyZDUyNjRmOGIuMmYxN2E5NWNlMGUwZTFiYQotICAgIDU1YTliMjQ5NzUxMTM2ZDEuZGJhYzE1OTc1MGUzMGMyMC42YmY5YmIxMDc0MzUzOWNhLjIzNmE4MzY1NDVlNGNkMGEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuY2ZkNDJhZTc0ZGM3OTMyZS43ZmQ5MjlkZDg1ZWIyNGI4CiAgICAgNjRiYjVhZDQ3ZGFiYTYzYS41NDIyOTIyYzBjYTU0ZWMyLjA0YzZkY2U2YmM0OGEzZWYuOThhY2UwOWI3YzE5ZmE2NgogICAgIGViMjhiYzZhMjIwYmExN2EKIAotVk1BU0tNT1ZQRF8xMjhfU3RvcmVGb3JtKHJlZykKK1ZBRVNERUMocmVnKQogICBiZWZvcmUKICAgICA3OTJiMTMzZWQzNDcwMWYxLjQ2YjIyZjM5OTgxYjZlOGMuMTkzOGNjZDBjMzJiNmIzMi40MTUxMmI2MGNiNmM0NzI3CiAgICAgOWMwMWUyODMyYTU4NTQ3Ny5kNzU4YWM2M2UzNmU0YmYzLjg2M2JjMGVmMTQwMDljMWIuZmY2NjI1NmFiYWFjZTI5ZQpAQCAtNDM1MDMsMTIgKzQzNTAzLDEyIEBACiAgICAgMTQ1NmQ0MTEzYjJhYzY2My43NmU0OGZiYjc3ZWEzMmFlLmM3MzhjMjRmZWVjNzMyMGIuNmU1ZDA3ZGZhZGIwZWNmOAogICAgIGQ3ZDdlNzIyZTk4ZGQzMzIKICAgYWZ0ZXIKLSAgICA3OTJiMTMzZWQzNDcwMWYxLjQ2YjIyZjM5OTgxYjZlOGMuMTkzOGNjZDBjMzJiNmIzMi40MTUxMmI2MGNiNmM0NzI3CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwNGY5ZmEwMjY1MjdiZGQuZTQyZDYyNjVjMGNjZjAxMAogICAgIDljMDFlMjgzMmE1ODU0NzcuZDc1OGFjNjNlMzZlNGJmMy44NjNiYzBlZjE0MDA5YzFiLmZmNjYyNTZhYmFhY2UyOWUKICAgICBiMWY2MjNhNWMzY2FkN2I5LmYzN2E0ZTQwNzlhZmY4OWEuZjc3NzY4ZjY5OGIwMjAyYS4xYWQxNDVmMWE3MTQzMDgwCiAgICAgMTQ1NmQ0MTEzYjJhYzY2My43NmU0OGZiYjc3ZWEzMmFlLmM3MzhjMjRmZWVjNzMyMGIuNmU1ZDA3ZGZhZGIwZWNmOAogICAgIGQ3ZDdlNzIyZTk4ZGQzMzIKLVZNQVNLTU9WUERfMTI4X1N0b3JlRm9ybShtZW0pCitWQUVTREVDKG1lbSkKICAgYmVmb3JlCiAgICAgMzEwYzYxYTQ3N2I3YTE1Yi4yMTZjZjAzMTJkMDM1ZDIxLjNjNjJlZGMwZjgyY2I1NWEuNTRjOWM5NjdhZmQyMGQ2OQogICAgIDU4YzZmMjUzNzIzODExOWYuMzU4Njc0NzMzNmUxZDc5ZS4yMWJmZTMzYjE5ODAzZGNiLmY5Nzg3OWFiNzk1Y2VlZjAKQEAgLTQzNTE4LDExICs0MzUxOCwxMSBAQAogICBhZnRlcgogICAgIDMxMGM2MWE0NzdiN2ExNWIuMjE2Y2YwMzEyZDAzNWQyMS4zYzYyZWRjMGY4MmNiNTVhLjU0YzljOTY3YWZkMjBkNjkKICAgICA1OGM2ZjI1MzcyMzgxMTlmLjM1ODY3NDczMzZlMWQ3OWUuMjFiZmUzM2IxOTgwM2RjYi5mOTc4NzlhYjc5NWNlZWYwCi0gICAgMjhkMTE0MWFmNjFlZTAyYS5hYWVlNWE0MWYyNTE3MTg2LjAxYzhlZDE5ZjVmMjg1MmQuMTE4ZmNmODZlOGYyMTA0ZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42ZmQyZDliYmRiOWMxNjQwLjU5YzgxMjVkZWJiYjdmM2YKICAgICA3ZGZiNDVlNTIwNzRjYTI3LmRkZjFhMDA5ZmJkZTY2ODYuYjg0YTg3NDRhODhlNGFhYi5mYTViYzY2Mzk3MWZiMDJkCiAgICAgMGUyODVhYjAyMzZmMGEzOQogCi1WTUFTS01PVlBEXzI1Nl9TdG9yZUZvcm0ocmVnKQorVkFFU0RFQ0xBU1QocmVnKQogICBiZWZvcmUKICAgICBhYjQyODdkODI3NmY1YTFmLjMzMGYwMWEwMGI0NzhiYzIuMmFkYjQxMzZmMDE0ZjQ0YS4yMjBmMmVhYTRmNjE0ODcyCiAgICAgMmJmNTQ5NDczZmFhZGI4Yi4yNmQ4YzIzN2Q0YTJkZTI4LmVkZjgzOTM0NmE4MDU1N2UuMWJlNDVkMzUwNjc3M2JhZApAQCAtNDM1MzAsMTIgKzQzNTMwLDEyIEBACiAgICAgNDg1NTdkYWExZDAyNjNhMy4zM2JjNDdhOTZlMjEyZDA0LjQ1ZmEyMDUzNjMyODgyZTMuMmFlZDQzNmUxMTk4ZWUzMgogICAgIGY4YmFmM2Y0OWViZDI2ZDMKICAgYWZ0ZXIKLSAgICBhYjQyODdkODI3NmY1YTFmLjMzMGYwMWEwMGI0NzhiYzIuMmFkYjQxMzZmMDE0ZjQ0YS4yMjBmMmVhYTRmNjE0ODcyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjI3M2Q2ODQ3NWJhZjRiNDcuMjc3NGQ5MGFhY2UwODU5MQogICAgIDJiZjU0OTQ3M2ZhYWRiOGIuMjZkOGMyMzdkNGEyZGUyOC5lZGY4MzkzNDZhODA1NTdlLjFiZTQ1ZDM1MDY3NzNiYWQKICAgICBlYzhjOWQ2OTA4YWNjYjI4LjMyMjMwNjk2OTY5MTgxODUuODI5Mzg1NmYwOGFkYzZjZC43Zjk1OTBkM2U4ZGFkZTg5CiAgICAgNDg1NTdkYWExZDAyNjNhMy4zM2JjNDdhOTZlMjEyZDA0LjQ1ZmEyMDUzNjMyODgyZTMuMmFlZDQzNmUxMTk4ZWUzMgogICAgIGY4YmFmM2Y0OWViZDI2ZDMKLVZNQVNLTU9WUERfMjU2X1N0b3JlRm9ybShtZW0pCitWQUVTREVDTEFTVChtZW0pCiAgIGJlZm9yZQogICAgIGM1YzYxYTUwYWI1MzQ0OTkuOWQ5YWU3NzYxYjM3ZTJhOC4wNTZmMDQ1ZDc3NWRhMWQyLjkyNzcwNjRjMTk3YmM2NmQKICAgICA2Y2RlMzY2ZTUyNjgwMmFmLjQ1YThkNzNhOWVkNzgyZTIuODMwOGI2OWNjZDUxOTcxYi5jNTU3MzNjNmM2MzVjZTE3CkBAIC00MzU0MywxMyArNDM1NDMsMTMgQEAKICAgICBiZDYyM2JhMGU0M2Q1MDdkLjAyNGYzNTU2YTA4YTE4YTcuZjgxYmVkNmZkMzkzZmNjYy40YzcwNTNlZTczMDcxOTc5CiAgICAgNTk0MTNkNzRhYjM4ZDQ4YQogICBhZnRlcgotICAgIDZjZGUzNjZlNTI2ODAyYWYuNDVhOGQ3M2E5ZWQ3ODJlMi44MzA4YjY5Y2NkNTE5NzFiLjkyNzcwNjRjMTk3YmM2NmQKKyAgICBjNWM2MWE1MGFiNTM0NDk5LjlkOWFlNzc2MWIzN2UyYTguMDU2ZjA0NWQ3NzVkYTFkMi45Mjc3MDY0YzE5N2JjNjZkCiAgICAgNmNkZTM2NmU1MjY4MDJhZi40NWE4ZDczYTllZDc4MmUyLjgzMDhiNjljY2Q1MTk3MWIuYzU1NzMzYzZjNjM1Y2UxNwotICAgIGNiY2VjMjNhYjIwODFkNDIuOWRjYjQ3NjA0MDZmODBmZC44YjUyZGE1NDhkMGFjYzBhLjM5ZTZhMzJlMDVkZmQ2OGQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzJiNTgxNDEzNjg0Yzc5Ni4xMmM4ZWE4YjFlMGJiZmVhCiAgICAgYmQ2MjNiYTBlNDNkNTA3ZC4wMjRmMzU1NmEwOGExOGE3LmY4MWJlZDZmZDM5M2ZjY2MuNGM3MDUzZWU3MzA3MTk3OQogICAgIDU5NDEzZDc0YWIzOGQ0OGEKIAotVk1BU0tNT1ZQRF8yNTZfU3RvcmVGb3JtKHJlZykKK1ZBRVNERUNMQVNUKHJlZykKICAgYmVmb3JlCiAgICAgYmNhNDVmMmI0OWZmNDM2YS4xZDY2MWI4ZDA3MTY1OThlLmNlN2Y5Yzg2NTdiNDg2ODkuYTUyZDZhZGJiYWY4ZTI4YwogICAgIGQxZTdiNTdlZWFlNmEyYzYuYzlhNWUwZWIzNDljZjI5ZS41ZWE5Nzg1ZTA0N2EwNTUyLjcwNTVjZDgzNWU0NjNiNzcKQEAgLTQzNTU3LDEyICs0MzU1NywxMiBAQAogICAgIDgwMzhlOWFkYTM0YTFlYTAuNzEwODA2YWUyMmU0YzY3MS4zYjE2ODBiM2E5MDcyODQzLmNjMTczNjM3NTBjYjM2N2QKICAgICAxNjQ5MzQxYmQ1MTk0ZmVmCiAgIGFmdGVyCi0gICAgYmNhNDVmMmI0OWZmNDM2YS4xZDY2MWI4ZDA3MTY1OThlLmNlN2Y5Yzg2NTdiNDg2ODkuYTUyZDZhZGJiYWY4ZTI4YworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45M2ZhZjNkNGRkZmY1MmU0LjA0ZThkYTEyMGMzNTAyYmIKICAgICBkMWU3YjU3ZWVhZTZhMmM2LmM5YTVlMGViMzQ5Y2YyOWUuNWVhOTc4NWUwNDdhMDU1Mi43MDU1Y2Q4MzVlNDYzYjc3CiAgICAgZjM1NDM5ZGIyYTdjMmM0OS45YmVkMDVhODhhZGRkN2RjLjBlMTdjNTQ5NDA2N2QyYWMuMzQ1ZjkzNTNkYzg4YzNiOQogICAgIDgwMzhlOWFkYTM0YTFlYTAuNzEwODA2YWUyMmU0YzY3MS4zYjE2ODBiM2E5MDcyODQzLmNjMTczNjM3NTBjYjM2N2QKICAgICAxNjQ5MzQxYmQ1MTk0ZmVmCi1WTUFTS01PVlBEXzI1Nl9TdG9yZUZvcm0obWVtKQorVkFFU0RFQ0xBU1QobWVtKQogICBiZWZvcmUKICAgICBlY2MwMDhlYjg3ODBjYjNkLmQzZGZjMDYwZjRkZWI0NzcuMjZjMzYwZWIxYWJkNzk4Yy4zZmYyYTQwOGRiZTc0NWM1CiAgICAgMmM0OTJmOTM4MzBjNjY5MS40Nzk0YmE2MGI3YzMyOTc5Ljk1ZWE4ZDRhOGU3NWFkNTcuNzdmNzJjYjQ3MTkyNjNkYwpAQCAtNDM1NzAsMTMgKzQzNTcwLDEzIEBACiAgICAgNTVjMjYyMWNjN2MwZTdmYy4wNjVkMDhmODA0YjJhM2IwLjE1YWI1NTFkNTdhZjg3YWYuZjNhYjVlYzEzYjdhOTQ3YQogICAgIGVmZjNmZmZiYTZjZjFmNWEKICAgYWZ0ZXIKLSAgICAyYzQ5MmY5MzgzMGM2NjkxLmQzZGZjMDYwZjRkZWI0NzcuOTVlYThkNGE4ZTc1YWQ1Ny4zZmYyYTQwOGRiZTc0NWM1CisgICAgZWNjMDA4ZWI4NzgwY2IzZC5kM2RmYzA2MGY0ZGViNDc3LjI2YzM2MGViMWFiZDc5OGMuM2ZmMmE0MDhkYmU3NDVjNQogICAgIDJjNDkyZjkzODMwYzY2OTEuNDc5NGJhNjBiN2MzMjk3OS45NWVhOGQ0YThlNzVhZDU3Ljc3ZjcyY2I0NzE5MjYzZGMKLSAgICBiMGIxMjMwMGU0YzhkYjE3LjNhYTVkMzFhODg4NmJhNTIuOWI0OTBiYjY5OTE3MWRmZi4zZjcxMTcyMzA4OTRiZTM0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhZTU3OGI3YjdjOTNiNTYuZDk0OWE0Y2VkOWQ4ZjE1NgogICAgIDU1YzI2MjFjYzdjMGU3ZmMuMDY1ZDA4ZjgwNGIyYTNiMC4xNWFiNTUxZDU3YWY4N2FmLmYzYWI1ZWMxM2I3YTk0N2EKICAgICBlZmYzZmZmYmE2Y2YxZjVhCiAKLVZNQVNLTU9WUERfMjU2X1N0b3JlRm9ybShyZWcpCitWQUVTREVDTEFTVChyZWcpCiAgIGJlZm9yZQogICAgIDhmOTNmNTNiZTYxZjljN2YuZjg0ODY3ZDU0NzAwNDY2Yy4wOTA3NTM2N2M2ZDMyMDNkLmRkZGVlODZhZTU0YWE1OTQKICAgICAyZmQ4M2NlZjk3Zjc0Nzk1LjczMTFhZTE2ODE5NWI0OTIuOWRmMGIyZDQ2Yjc2NmNhNS5kMWFjM2U4OTVmZjMzM2Q5CkBAIC00MzU4NCwxMiArNDM1ODQsMTIgQEAKICAgICBkZjgwYWU1ZmI5NmQxNTQ4LjY1OThmM2RmOTFlY2FiYjIuZWNhZjlhNTRjYjZmNjRiOS5hODRjMjhlZTg0YTE5MzM2CiAgICAgNDViNmIzMGI2OGJkZGNhNQogICBhZnRlcgotICAgIDhmOTNmNTNiZTYxZjljN2YuZjg0ODY3ZDU0NzAwNDY2Yy4wOTA3NTM2N2M2ZDMyMDNkLmRkZGVlODZhZTU0YWE1OTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTRjZTk4YjNmYjU4MTViYy5jZWY1YjM5NWIxYjhkMTRlCiAgICAgMmZkODNjZWY5N2Y3NDc5NS43MzExYWUxNjgxOTViNDkyLjlkZjBiMmQ0NmI3NjZjYTUuZDFhYzNlODk1ZmYzMzNkOQogICAgIDJiMGVkMDgyNTRlMjViNGEuYTRlOGIzY2E5MDhhZWM5Yi4yMDY0MjBhYThlMjZjNDk1LmNiZTJkNTY3ZTBiN2VmYWIKICAgICBkZjgwYWU1ZmI5NmQxNTQ4LjY1OThmM2RmOTFlY2FiYjIuZWNhZjlhNTRjYjZmNjRiOS5hODRjMjhlZTg0YTE5MzM2CiAgICAgNDViNmIzMGI2OGJkZGNhNQotVk1BU0tNT1ZQRF8yNTZfU3RvcmVGb3JtKG1lbSkKK1ZBRVNERUNMQVNUKG1lbSkKICAgYmVmb3JlCiAgICAgN2NlYmYzYWJhNzE3ODUyNS5hNzdjZDBmNDYzMjNiMTNiLjkzZWVlOTQwOWZjNmFkMDQuNWUxYzFiNDBjMGRkODdiYwogICAgIDJhYjk2MmI5NWViYzRjZTEuZGU0YzM0YWNlZDkwNmJkMS4wYWI2MTFkOWQ2MjRhZGJkLmQzZjk5ZWQ5MDZmZDZhNGIKQEAgLTQzNTk3LDkgKzQzNTk3LDE1NDggQEAKICAgICA1YjRiYzJjZWEyMTUxZmMwLjBlOWNiMDM1MTNjMDI3OTAuNDRjY2U3NjQzMjlkOWExMi4zMTJlYTBjMmZiODE2MGJjCiAgICAgZDQxZjE1ZWFlMWZkZWFmNQogICBhZnRlcgotICAgIDdjZWJmM2FiYTcxNzg1MjUuZGU0YzM0YWNlZDkwNmJkMS4wYWI2MTFkOWQ2MjRhZGJkLmQzZjk5ZWQ5MDZmZDZhNGIKKyAgICA3Y2ViZjNhYmE3MTc4NTI1LmE3N2NkMGY0NjMyM2IxM2IuOTNlZWU5NDA5ZmM2YWQwNC41ZTFjMWI0MGMwZGQ4N2JjCiAgICAgMmFiOTYyYjk1ZWJjNGNlMS5kZTRjMzRhY2VkOTA2YmQxLjBhYjYxMWQ5ZDYyNGFkYmQuZDNmOTllZDkwNmZkNmE0YgotICAgIDJiZWE3ZTIwYTliOGViMDcuZTIzZWQ1ZjNmNDQwN2ViMy5hNmJjZTc5NjUzMTI2ODA4LmE1OTAyMThiM2I1YjQ5MTEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMzY4N2YxYTUzY2U3NzJjOS4xNDY1NDNhNTY5N2I2NDcwCiAgICAgNWI0YmMyY2VhMjE1MWZjMC4wZTljYjAzNTEzYzAyNzkwLjQ0Y2NlNzY0MzI5ZDlhMTIuMzEyZWEwYzJmYjgxNjBiYwogICAgIGQ0MWYxNWVhZTFmZGVhZjUKIAorVkFFU0lNQyhyZWcpCisgIGJlZm9yZQorICAgIGU4YWY3ZTcwODk1YjI0NmEuOTZhOGFhYWU2N2UxYTMzYS5iZWIzYmZkZmU3OWJhMTEyLmJlYjI4ZTJkOGVkMGZmMDYKKyAgICBjYTJhZDZiZTkwMjY0YWM3LmI4Y2RiM2FjMTQyNzM0YTEuNGVjZTAwNWIwYjVlMmFlNS5mMTM5NTdkZTgzYjg1MjExCisgICAgZDZkYjE5NDE5MWVhOTdiOC45ZTg2NThiNGM0ZjQ4ZTIxLjE5M2I2ZTE2MWM5NGZjYjYuYjkyZWJlNjQyZTYwNTA1ZgorICAgIDY4MTA0MzY2MjkzMzQ5ZTguMjI5ZjE1YjI5NDUzNmRlNS43ZDQ1MDY3ZGI1Yzk1NDMxLmYyNWUzZmE5YWFkNGI1MWIKKyAgICA3ODkzNTc5YjE0MjEzZDcyCisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdjNzdiZmVlNzY5ZjA5MjIuMTczYjhhZWI1MDdmYWNjMgorICAgIGNhMmFkNmJlOTAyNjRhYzcuYjhjZGIzYWMxNDI3MzRhMS40ZWNlMDA1YjBiNWUyYWU1LmYxMzk1N2RlODNiODUyMTEKKyAgICBkNmRiMTk0MTkxZWE5N2I4LjllODY1OGI0YzRmNDhlMjEuMTkzYjZlMTYxYzk0ZmNiNi5iOTJlYmU2NDJlNjA1MDVmCisgICAgNjgxMDQzNjYyOTMzNDllOC4yMjlmMTViMjk0NTM2ZGU1LjdkNDUwNjdkYjVjOTU0MzEuZjI1ZTNmYTlhYWQ0YjUxYgorICAgIDc4OTM1NzliMTQyMTNkNzIKK1ZBRVNJTUMobWVtKQorICBiZWZvcmUKKyAgICAyNzk5ODEyNTg4NTJhMzhmLmRkMTM1MTk4ZjQ4ZTk5MDMuMjFlMzY2OTI5ZjUwOGMxOS5kNDM3YzJmYTcyODk2ZDAxCisgICAgZGIzZTM5MzMyMDczYTQ5Zi44ZjMxM2U0MjhjODZjNmI2Ljc2MWZjNzQxMDJmOGE4ZWEuN2M1ZWEwZmJmMDYxODVkMworICAgIDcwNGRmYmIxZmI5MWZjY2UuZGJiNjA2ZDI5MGE3MGFhZC5mZjFmYjVhOWQ4NTY3ZDg0LmQwMDY5YmViY2JkZGQ2NTMKKyAgICBjMjkxNDM4YjMyYjc2NjQ3LjFkZWVhNWIzOTk3ZWEzOTQuOTdhZmFiYjgzZDc2YzcxMi4yYjdiYWYzNjllODc5YzJjCisgICAgZWIwOWQ4NDgwNWVkMTUwYQorICBhZnRlcgorICAgIDI3OTk4MTI1ODg1MmEzOGYuZGQxMzUxOThmNDhlOTkwMy4yMWUzNjY5MjlmNTA4YzE5LmQ0MzdjMmZhNzI4OTZkMDEKKyAgICBkYjNlMzkzMzIwNzNhNDlmLjhmMzEzZTQyOGM4NmM2YjYuNzYxZmM3NDEwMmY4YThlYS43YzVlYTBmYmYwNjE4NWQzCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmM2M2VlZDIzNzg1NmRmYWIuODlhYTMyY2FhYjMxODE4YworICAgIGMyOTE0MzhiMzJiNzY2NDcuMWRlZWE1YjM5OTdlYTM5NC45N2FmYWJiODNkNzZjNzEyLjJiN2JhZjM2OWU4NzljMmMKKyAgICBlYjA5ZDg0ODA1ZWQxNTBhCisKK1ZBRVNJTUMocmVnKQorICBiZWZvcmUKKyAgICA2YWZiMTM4ZDlkOWE3YjliLmFjZDc4ZWFkZTRmMTlmMzcuYjEyNTE4NTE0Njk2Y2ExNi4xYTliMjU1ODRlNjU0MWMxCisgICAgMDY5ZjViNzEwMjFiMGI4OS4wY2ViNTcwMzJhNGM2M2M5LmYzYTY1OTE4MzA3Y2JlZGYuNjRhZjlmNzcyNjJkYThiZAorICAgIDE5M2ZhYzYwY2ZmYjAwODAuYmQ5OTFhN2EyMmQzNmQyYS4zZWJlNjY3NGY1YmFiOTljLjUxYjY5NTAwZTJkZGI3MzEKKyAgICAwMDI4MDJjN2EwYzY5ODJkLjliYWQ1M2ZjZTg5MjdiODYuZjBiOTNhZDIzMWRlZjhmOS5iZDdkODRkZjllN2YyYzRhCisgICAgODNkMWU3MDA3NTFmYzEzMworICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iZmNlZDgzYjFiYWI4MzU5LjAxNDIyMTEwMTYzODJhYmQKKyAgICAwNjlmNWI3MTAyMWIwYjg5LjBjZWI1NzAzMmE0YzYzYzkuZjNhNjU5MTgzMDdjYmVkZi42NGFmOWY3NzI2MmRhOGJkCisgICAgMTkzZmFjNjBjZmZiMDA4MC5iZDk5MWE3YTIyZDM2ZDJhLjNlYmU2Njc0ZjViYWI5OWMuNTFiNjk1MDBlMmRkYjczMQorICAgIDAwMjgwMmM3YTBjNjk4MmQuOWJhZDUzZmNlODkyN2I4Ni5mMGI5M2FkMjMxZGVmOGY5LmJkN2Q4NGRmOWU3ZjJjNGEKKyAgICA4M2QxZTcwMDc1MWZjMTMzCitWQUVTSU1DKG1lbSkKKyAgYmVmb3JlCisgICAgODE3YzNhNGY4M2M5MzMxOS4xOGE2NTkxMDEyMDkwZDNjLjgyZjI3Zjc3OTc5NjQ3MDguNjRlM2QyOWM3Zjc0YjdhMQorICAgIDkyNGFmOWI4ZTU4YTNkMjguYmIwNWFlYTljMDRmOWI1OC40ZDM2MTlkNTRjZWE4ZGRkLmY2ODgyODQwN2MwNzMxNDEKKyAgICA5MTA5YTEyN2I2NmQ5ZDhiLjQ2OTBmY2ZjNDcyNDgwMmUuZGE0MzljMDQyMjlhMGIzMC4wMmY0M2EyOGMzMjNhMzg1CisgICAgNWM4NGFkODkxMzdlMGQ2ZS4xNTk1M2Y3NzQyMTVmNjY5LjA0ZTY4N2VmMzViMzdiMmUuZTQ3MjAzYzJmMDU0NDkxOAorICAgIGY3NTA3Zjc5YTAyNzVlYTcKKyAgYWZ0ZXIKKyAgICA4MTdjM2E0ZjgzYzkzMzE5LjE4YTY1OTEwMTIwOTBkM2MuODJmMjdmNzc5Nzk2NDcwOC42NGUzZDI5YzdmNzRiN2ExCisgICAgOTI0YWY5YjhlNThhM2QyOC5iYjA1YWVhOWMwNGY5YjU4LjRkMzYxOWQ1NGNlYThkZGQuZjY4ODI4NDA3YzA3MzE0MQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4zZmE1MzJkMGQ3ZDI5YmQwLmJhY2E4NTNjMjBlZWQyMDEKKyAgICA1Yzg0YWQ4OTEzN2UwZDZlLjE1OTUzZjc3NDIxNWY2NjkuMDRlNjg3ZWYzNWIzN2IyZS5lNDcyMDNjMmYwNTQ0OTE4CisgICAgZjc1MDdmNzlhMDI3NWVhNworCitWQUVTSU1DKHJlZykKKyAgYmVmb3JlCisgICAgOTlkOGFiYjk2ZTI3MjBkZC5jZTg2OTljODE3Y2E0OWZmLjg1NWU3Mzg1NGVhZDNhYjYuYTZlYjUzODJhMjQwOWEwMgorICAgIDI1NTc4MWVlZjdlMWM5NjcuYzJkY2UxZDJkZTVjMGY2OC5mMDM4OTU5MjA2Nzg4OGMxLjllMWU3ZWE5ODQ0ZDIzZDkKKyAgICBmNjE5ZmY4NGQ3ZTA5NWYxLjE2NTIwMjkxODY0MDE5ZDUuYjM2ZmEwMGEwNjAzMWIzNS5jNjRiODM1MGY4ZTdkM2RmCisgICAgNmE2YTIwZTdhOWIwYzIyNi5hNGI0NzZmMzI4ODMyNDczLjJhNGY5MDU5ZWNkOTMwYmYuZmMzZGRlNjMxYTE5NjYzZgorICAgIDFhYzEwYmNmMDRmMDk4MjYKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2RhODgyMjE3Y2I5MzdkOS42NmJlOWYxOTkxYjI5Y2FjCisgICAgMjU1NzgxZWVmN2UxYzk2Ny5jMmRjZTFkMmRlNWMwZjY4LmYwMzg5NTkyMDY3ODg4YzEuOWUxZTdlYTk4NDRkMjNkOQorICAgIGY2MTlmZjg0ZDdlMDk1ZjEuMTY1MjAyOTE4NjQwMTlkNS5iMzZmYTAwYTA2MDMxYjM1LmM2NGI4MzUwZjhlN2QzZGYKKyAgICA2YTZhMjBlN2E5YjBjMjI2LmE0YjQ3NmYzMjg4MzI0NzMuMmE0ZjkwNTllY2Q5MzBiZi5mYzNkZGU2MzFhMTk2NjNmCisgICAgMWFjMTBiY2YwNGYwOTgyNgorVkFFU0lNQyhtZW0pCisgIGJlZm9yZQorICAgIGZlYTQ4NjdlZDU3NjI1YzAuZGM5NWUxODMwOWRlOGFiMi40YWNlYmJlM2UyMzBlYjZlLmIxMjM2MWViNTE4NzAzMGEKKyAgICA4MmIwY2M1ZGE2YjljODM4LmE3ZTgzY2M0OTRmNTJhNDMuZTI2YzRjNGRkMDU0MmNmMS5hNDM5MGYyY2QzOTdjZmMzCisgICAgODNiMTU4NTk5NmM1M2ViYS4yOWFkMmYxN2U1ODFkZDgzLjQ5NTlhNjFkMGRmOWExMjkuNWZkYjk3ODkwZTk3ZDE5NgorICAgIGRlNzVhNjVkYmVhNTQyNzQuYmMzMWI1ZTY5OTBmZTExZS41YzYyNDMzZmI1MmUwNjQxLjNlNTdmNDZjOWQxMzQ1MmUKKyAgICA5ZGY3MjI0MzFjOTY2NzM4CisgIGFmdGVyCisgICAgZmVhNDg2N2VkNTc2MjVjMC5kYzk1ZTE4MzA5ZGU4YWIyLjRhY2ViYmUzZTIzMGViNmUuYjEyMzYxZWI1MTg3MDMwYQorICAgIDgyYjBjYzVkYTZiOWM4MzguYTdlODNjYzQ5NGY1MmE0My5lMjZjNGM0ZGQwNTQyY2YxLmE0MzkwZjJjZDM5N2NmYzMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOGMwZmRlODExYzM1YmJjNS5iMGM5NTAzMWM5NGYzZTY3CisgICAgZGU3NWE2NWRiZWE1NDI3NC5iYzMxYjVlNjk5MGZlMTFlLjVjNjI0MzNmYjUyZTA2NDEuM2U1N2Y0NmM5ZDEzNDUyZQorICAgIDlkZjcyMjQzMWM5NjY3MzgKKworVkFFU0tFWUdFTkFTU0lTVF8weDAwKHJlZykKKyAgYmVmb3JlCisgICAgZDgwNzFkNzgyOGFjNzI1Zi42ZGM3MzM1NDNkNjU5MjkwLmJkYzBjYTlmNGIyOTcwYzEuZjU1M2ExOWZlNWZjMTk2NworICAgIDRiZDVlMjc5NWNlMWEzNTAuMGQ3Mjc5MmMyYzExZTgzYS44OWE2NmFhZDk3NWVjNjE4LmYxZjgzYjJhYjg3MTk0YzQKKyAgICA1MmFjNmJiMTU1YzIzNmI3LjliNDNmNmQwYTliNjAwOWYuN2EyZjkyN2IxYTM3MjFjZS4yZDFkOGRjYTRiOTgzNDg2CisgICAgNDlkN2I2OGNhZmRhNjczZi5mMTA2MjUyY2QwNWY5OGViLmVlYTYzZDc3NzA0MmJiOTAuODM4ZTEzNmNiYTdlYjRkOQorICAgIGQwMTY0YWZkMWYyZGQyZTkKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMjFkYTE1NGZkYTE1NGYyMS43NGQ4YTQ1ZGQ4YTQ1ZDc0CisgICAgNGJkNWUyNzk1Y2UxYTM1MC4wZDcyNzkyYzJjMTFlODNhLjg5YTY2YWFkOTc1ZWM2MTguZjFmODNiMmFiODcxOTRjNAorICAgIDUyYWM2YmIxNTVjMjM2YjcuOWI0M2Y2ZDBhOWI2MDA5Zi43YTJmOTI3YjFhMzcyMWNlLjJkMWQ4ZGNhNGI5ODM0ODYKKyAgICA0OWQ3YjY4Y2FmZGE2NzNmLmYxMDYyNTJjZDA1Zjk4ZWIuZWVhNjNkNzc3MDQyYmI5MC44MzhlMTM2Y2JhN2ViNGQ5CisgICAgZDAxNjRhZmQxZjJkZDJlOQorVkFFU0tFWUdFTkFTU0lTVF8weDAwKG1lbSkKKyAgYmVmb3JlCisgICAgZjA4M2FkNjg5OWI0NDhlMS44Y2EzYmY3NjA0YjY3MTk1LmVjODc4MjJjYmMxOTZhNDkuM2Y1ODY3MGMzNDBiZDEwOQorICAgIGJmOWZiODk5NDExY2QzZWQuNzY1ZDgwZGJmM2UwOTE2NC42ODkyOGFiZDg5ZWYzM2U2LmNhOTIwY2E2MDMxYzlmZTYKKyAgICAxOTM3ZTc3YjM2NzMyZTNiLjY1NGVmNzI3MTVlNzAzNTkuNDFmM2I3Yzk1NGVkYWZlZC5lYzllMjliMjc4MDM2MGQzCisgICAgZGIxN2I3ZmM5MWM0MTZmNC5iNGM1MWVjNzA4NTQwMjIwLjUzNzU4NzNkMzkyMDk5OGIuZmZjOGI5OWEyZjRjNTE3YgorICAgIDYwNWViN2NiYzU4MWFlOGIKKyAgYWZ0ZXIKKyAgICBmMDgzYWQ2ODk5YjQ0OGUxLjhjYTNiZjc2MDRiNjcxOTUuZWM4NzgyMmNiYzE5NmE0OS4zZjU4NjcwYzM0MGJkMTA5CisgICAgYmY5ZmI4OTk0MTFjZDNlZC43NjVkODBkYmYzZTA5MTY0LjY4OTI4YWJkODllZjMzZTYuY2E5MjBjYTYwMzFjOWZlNgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MWNlMTcxM2NlMTcxMzcxLmZlNzU2YTg1NzU2YTg1ZmUKKyAgICBkYjE3YjdmYzkxYzQxNmY0LmI0YzUxZWM3MDg1NDAyMjAuNTM3NTg3M2QzOTIwOTk4Yi5mZmM4Yjk5YTJmNGM1MTdiCisgICAgNjA1ZWI3Y2JjNTgxYWU4YgorCitWQUVTS0VZR0VOQVNTSVNUXzB4MDAocmVnKQorICBiZWZvcmUKKyAgICA2YmFiMjJiMmQ1MzBiMmFmLmRmMGJhMzA3NzAxYzQ3NDcuYmYwZGYzMjU2OGI1Y2I2NC43YWU1NzUwNjUzOTNhZWVjCisgICAgN2NmYWYzYjlmY2U1OWE5Mi4wMmRlMjY4OWVmODY3ZDVlLmUxNzE3MmFmZDA5NTlhZDEuOTIxMGZlMGZiZTUyYWEzYgorICAgIGVmOTgyODRlZDYyYmEyZTAuMjA1ZWJmNmMyOTBlNzM2NS43ODNmOTVjZmRkODFhYjE1Ljc3YzA5YzQzOTc2OTQ4YTUKKyAgICAyMGQxYmJkY2ZkOGUwNjQ2LjE1NTVlNzlkM2JjMWU2ODkuZGVjMTVhZjMyYTA0MzlkYS4wNWMxY2Q5MGY5ZTU0NTU1CisgICAgMThlMTBjZTEwMWQyNWQ3OAorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC44YWJjNzUyYWJjNzUyYThhLjFhZjViYWRlZjViYWRlMWEKKyAgICA3Y2ZhZjNiOWZjZTU5YTkyLjAyZGUyNjg5ZWY4NjdkNWUuZTE3MTcyYWZkMDk1OWFkMS45MjEwZmUwZmJlNTJhYTNiCisgICAgZWY5ODI4NGVkNjJiYTJlMC4yMDVlYmY2YzI5MGU3MzY1Ljc4M2Y5NWNmZGQ4MWFiMTUuNzdjMDljNDM5NzY5NDhhNQorICAgIDIwZDFiYmRjZmQ4ZTA2NDYuMTU1NWU3OWQzYmMxZTY4OS5kZWMxNWFmMzJhMDQzOWRhLjA1YzFjZDkwZjllNTQ1NTUKKyAgICAxOGUxMGNlMTAxZDI1ZDc4CitWQUVTS0VZR0VOQVNTSVNUXzB4MDAobWVtKQorICBiZWZvcmUKKyAgICA4Y2ViZDUyMmNhM2E0YzNhLjZiZjFhYWNmMTA5YTAxNzAuYmM5MDFjMDk0MGFhOTJmNi43MTQ0YmM4NjUzYWE4MWNjCisgICAgM2RhYWE1M2Y3MTJiY2RjNi4yYzQ0ZjE5MmE4ZGNkMDBhLmYzZGJkODlhNTRkNTMzZDguOGIxNGI3ZjRmNTAwYmY5OAorICAgIDA3ZWJmNjI0MTFiMTlkNDkuYmYxNjhhOTM2NGRmYWZiZi45NTAyOTkzZTk0NGY4NDVhLjhhN2M0N2E5YWM5MDJlZWEKKyAgICBjNjdhNDZiZGM3ZDY3OGVlLjgwYjI3MzNlZGQyZmRhM2IuN2VkMGRiZTAxYzIzNDJhOC5jOGNhNjkxMTEzZTkwYjZkCisgICAgYTM0ODE4OThjNjk0OTJjZQorICBhZnRlcgorICAgIDhjZWJkNTIyY2EzYTRjM2EuNmJmMWFhY2YxMDlhMDE3MC5iYzkwMWMwOTQwYWE5MmY2LjcxNDRiYzg2NTNhYTgxY2MKKyAgICAzZGFhYTUzZjcxMmJjZGM2LjJjNDRmMTkyYThkY2QwMGEuZjNkYmQ4OWE1NGQ1MzNkOC44YjE0YjdmNGY1MDBiZjk4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAxNjU2MDljNjU2MDljMDEuNDRhMzFiNjVhMzFiNjU0NAorICAgIGM2N2E0NmJkYzdkNjc4ZWUuODBiMjczM2VkZDJmZGEzYi43ZWQwZGJlMDFjMjM0MmE4LmM4Y2E2OTExMTNlOTBiNmQKKyAgICBhMzQ4MTg5OGM2OTQ5MmNlCisKK1ZBRVNLRVlHRU5BU1NJU1RfMHgwMChyZWcpCisgIGJlZm9yZQorICAgIDc1NDQ1MGFhNjIxZmZmYjkuNTYyMzEwZjdhZWE4MWFlMi5jYjY2YTdmZGIxNTk4YzJiLjhhMTMxODZiMDc1ZDI4ZWYKKyAgICA5YzA4MGRiMzgyMTY4ZGQ5LjkyYjJkMWJjZTMzMzNlNTAuZmM3YzIyM2Q3Y2U4MDIzYi45NTk1Y2VjZDcxMGFmNDViCisgICAgNzJlMTRiMjBjMzAzNzlkYS41OGYyMDNmYTgxODFhMTY2LjZmNDFlMDZiZDk2OTc3MTYuN2EyMzc4ZjE3NzM1NjAxNworICAgIDU0MWEwNzViYzE3NGZmNjkuODNiMTI0OWJhNGEwZmY0ZC44MDAxZGVmMTY1NjcyOTY5LjE3ODk5MmMzMzRlYTI5NTAKKyAgICA0NzkzOTgzMGM1MzYwYTMyCisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdmYTg4M2UxYTg4M2UxN2YuYTFkYTI2YmNkYTI2YmNhMQorICAgIDljMDgwZGIzODIxNjhkZDkuOTJiMmQxYmNlMzMzM2U1MC5mYzdjMjIzZDdjZTgwMjNiLjk1OTVjZWNkNzEwYWY0NWIKKyAgICA3MmUxNGIyMGMzMDM3OWRhLjU4ZjIwM2ZhODE4MWExNjYuNmY0MWUwNmJkOTY5NzcxNi43YTIzNzhmMTc3MzU2MDE3CisgICAgNTQxYTA3NWJjMTc0ZmY2OS44M2IxMjQ5YmE0YTBmZjRkLjgwMDFkZWYxNjU2NzI5NjkuMTc4OTkyYzMzNGVhMjk1MAorICAgIDQ3OTM5ODMwYzUzNjBhMzIKK1ZBRVNLRVlHRU5BU1NJU1RfMHgwMChtZW0pCisgIGJlZm9yZQorICAgIGU1MGQwNzIyNDUyNGMxZTguOWYwMTNjZDIxNmY1NWEzMi5lZWI5YWY4ZDY5OWMxMzM0LjhiMDcxNzNkYmI2ZTUyZTAKKyAgICBjZmMyNWE4NmQxYzAwODlmLmFkZTBlNmYwNjAxMGM3ZTEuNzdkNzIwYmJlYzdmOWE0NC5lYmExODdiOTc3MGEyZjI2CisgICAgZTA4MDBkNDk4NDE3OWI4Mi5kYjA1MDEyMTNiNTM4MjIxLmY5ZDdmMzExNDg1ODUwYWMuZmUxOTJhZDMzNmM4ZmJlOAorICAgIGYzMTE5YzU1N2IzNDM4YmUuODViYThhZDE0MjRhYzc5ZS40Zjg1YTU3Yjk5MzBmMTk2LjFmYmNmY2Y2OTMzM2YzZDEKKyAgICBhYWQ2ZmE4ZTJiZDg1MzhlCisgIGFmdGVyCisgICAgZTUwZDA3MjI0NTI0YzFlOC45ZjAxM2NkMjE2ZjU1YTMyLmVlYjlhZjhkNjk5YzEzMzQuOGIwNzE3M2RiYjZlNTJlMAorICAgIGNmYzI1YTg2ZDFjMDA4OWYuYWRlMGU2ZjA2MDEwYzdlMS43N2Q3MjBiYmVjN2Y5YTQ0LmViYTE4N2I5NzcwYTJmMjYKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWQyODU2NzkyODU2Nzk1ZC4yNzNkYzVmMDNkYzVmMDI3CisgICAgZjMxMTljNTU3YjM0MzhiZS44NWJhOGFkMTQyNGFjNzllLjRmODVhNTdiOTkzMGYxOTYuMWZiY2ZjZjY5MzMzZjNkMQorICAgIGFhZDZmYThlMmJkODUzOGUKKworVkFFU0tFWUdFTkFTU0lTVF8weDMxKHJlZykKKyAgYmVmb3JlCisgICAgZmFiMzFmMDc5YTQyNTdjYi5lNjQyODM5OGQxMjM5OTdlLjA3NGM3YzZjMTI3ZmQxMDYuNTdhZGIxZTVmYzE1MzgyZgorICAgIDZkOWY2N2NkN2FmZDNiMzMuOTNkZjNmZmRhMmYxN2JlZi5iZDA3ZDM1ZTQ2ODFkZDAyLmViMWE5MzNiOGMxMmUyYTIKKyAgICA1ZGU2Y2U0YzZhOTYzYTcyLmQ4YjQ0YjcwMGJhOTk5M2QuMDQzNjhiMTM3YmQ5Mjc0MS5lOTk5Yzc2YTY2MzNhYjFjCisgICAgMjhkMzUxZjEwNDk4OTEzNi44ZjhjMjNkYzI4NThiMTkzLjM2MjdhMGY3NGMxNWVhNmQuMmJmN2NhNWNhNTg1NGVjOAorICAgIDhmZmUxNmZlNjYxMzg4ZDMKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2RmMjA1MGNmMjA1M2Q3ZC4wMjFlZWVmNzFlZWVjNjAyCisgICAgNmQ5ZjY3Y2Q3YWZkM2IzMy45M2RmM2ZmZGEyZjE3YmVmLmJkMDdkMzVlNDY4MWRkMDIuZWIxYTkzM2I4YzEyZTJhMgorICAgIDVkZTZjZTRjNmE5NjNhNzIuZDhiNDRiNzAwYmE5OTkzZC4wNDM2OGIxMzdiZDkyNzQxLmU5OTljNzZhNjYzM2FiMWMKKyAgICAyOGQzNTFmMTA0OTg5MTM2LjhmOGMyM2RjMjg1OGIxOTMuMzYyN2EwZjc0YzE1ZWE2ZC4yYmY3Y2E1Y2E1ODU0ZWM4CisgICAgOGZmZTE2ZmU2NjEzODhkMworVkFFU0tFWUdFTkFTU0lTVF8weDMxKG1lbSkKKyAgYmVmb3JlCisgICAgZWY3YTI5M2RjNGVhMTU2OS4yOGIzZWIyNmU0OGY3YjI5Ljk1MzU0MzMwMTQwOTdkMWUuYjAyNDBmNzc1NWMwNjQzMgorICAgIDI4Mzk3ZjA0ZGMxNGIxYjUuYmJkMjk4NTlhNjA3MzVmNy5jNzc5Mjg1NWViYzhiOTBhLmNlN2FkM2ZkMzM2NmNmM2UKKyAgICAxNzA2OTIzZWM5YTAxN2U0LjNiN2M1NGY0ZTg4ZGZiNGQuZmYyNTRkMzhjYWExMjM4Mi5lYzc1ZThmNzgyOTQ2NzNhCisgICAgOTZhY2RmZDlhODk3MDQyMi4wNmZkMWI2NTQzYWQwOWQ3LjFhMDUyZWM1Y2RhMTc1YjIuNjU2MTRhY2ZkY2Q1NmFkNQorICAgIDk3OGFmNmYzZTBiNjEyYjkKKyAgYWZ0ZXIKKyAgICBlZjdhMjkzZGM0ZWExNTY5LjI4YjNlYjI2ZTQ4ZjdiMjkuOTUzNTQzMzAxNDA5N2QxZS5iMDI0MGY3NzU1YzA2NDMyCisgICAgMjgzOTdmMDRkYzE0YjFiNS5iYmQyOTg1OWE2MDczNWY3LmM3NzkyODU1ZWJjOGI5MGEuY2U3YWQzZmQzMzY2Y2YzZQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wNDJhOTYyYjJhOTYxYTA0LmY1ZTczNjQ3ZTczNjc2ZjUKKyAgICA5NmFjZGZkOWE4OTcwNDIyLjA2ZmQxYjY1NDNhZDA5ZDcuMWEwNTJlYzVjZGExNzViMi42NTYxNGFjZmRjZDU2YWQ1CisgICAgOTc4YWY2ZjNlMGI2MTJiOQorCitWQUVTS0VZR0VOQVNTSVNUXzB4MzEocmVnKQorICBiZWZvcmUKKyAgICBkZDNjZTdjZTI4YzE5YjkyLjgyZjhlM2MwOTQwNzM0OWEuNzZhMWVhMTc1NWYxOWI0MC5mNWU1NDdlOTBlZDM2Y2M4CisgICAgOTNjMjE4Y2M1MDg1NDMwZC5iN2I2MTlkZmFhZmI2Mjc4LmU4YjNiYzc2YmFlN2VjMzUuNmE5MDE0OGVhYzQ0YzNlZAorICAgIDE1Njk4ODU5ZjU4YjQ0ZDYuMTJiMmZlMjMwNTgwNGJlYS5iOTgxOGRlZTBkMWIzOTYxLjU2ZDQxMmEyYzFmZjM4NTAKKyAgICBiZjdkMzBlMWIyNjFkYjk5LjZkYjgwYzc2YzFhMWFiMTkuNDM1NTU5ZWJlYjE3YmQ3MS45NTdiYmMwZjY5MTA4NTFiCisgICAgMDM1MjhlYzNjMTgzNjc3YgorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yODU2MGM2YzU2MGM1ZDI4LjNhYjE0OGY4YjE0OGM5M2EKKyAgICA5M2MyMThjYzUwODU0MzBkLmI3YjYxOWRmYWFmYjYyNzguZThiM2JjNzZiYWU3ZWMzNS42YTkwMTQ4ZWFjNDRjM2VkCisgICAgMTU2OTg4NTlmNThiNDRkNi4xMmIyZmUyMzA1ODA0YmVhLmI5ODE4ZGVlMGQxYjM5NjEuNTZkNDEyYTJjMWZmMzg1MAorICAgIGJmN2QzMGUxYjI2MWRiOTkuNmRiODBjNzZjMWExYWIxOS40MzU1NTllYmViMTdiZDcxLjk1N2JiYzBmNjkxMDg1MWIKKyAgICAwMzUyOGVjM2MxODM2NzdiCitWQUVTS0VZR0VOQVNTSVNUXzB4MzEobWVtKQorICBiZWZvcmUKKyAgICA3ZDI2MDRhOWU0NjU5OTliLmVjNGEwZWQwMjQ5MjQ0MDAuYTU5NGMxYzVmYjZhM2UzNC5lMzdjMWNkOWVmNjliNjExCisgICAgZGRjMDliYWRlZmMyZDhhOC5mYTFjMWM5M2U2YWJiYWJhLjk2MTE5OGZkY2VlN2JmNjUuZjY0MmQzMjRiNTlkNWVlYworICAgIDAwZWZjZGJiZmRhNGUwY2QuNDQzZjU5OTQ5NTM2N2E3MS4xY2ZkMGQwODU3MjVlYmQ4LmQ2ZjI3OTM5ZGEzZGYxYWYKKyAgICBjMjdlMThiZjJhMTk2ZDM3LjI1ZmViZTQwY2NjMmMwZDIuMTMyMjljZDRiMjMwN2ViYi5lMGRhMGE4MmY5ZDdhZDA2CisgICAgNzA0NDgzNmRhZmY3Y2M5YworICBhZnRlcgorICAgIDdkMjYwNGE5ZTQ2NTk5OWIuZWM0YTBlZDAyNDkyNDQwMC5hNTk0YzFjNWZiNmEzZTM0LmUzN2MxY2Q5ZWY2OWI2MTEKKyAgICBkZGMwOWJhZGVmYzJkOGE4LmZhMWMxYzkzZTZhYmJhYmEuOTYxMTk4ZmRjZWU3YmY2NS5mNjQyZDMyNGI1OWQ1ZWVjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmE2MDYyMjQ5MDYyMjc4YTYuMzUxMTEwYWQxMTEwOWMzNQorICAgIGMyN2UxOGJmMmExOTZkMzcuMjVmZWJlNDBjY2MyYzBkMi4xMzIyOWNkNGIyMzA3ZWJiLmUwZGEwYTgyZjlkN2FkMDYKKyAgICA3MDQ0ODM2ZGFmZjdjYzljCisKK1ZBRVNLRVlHRU5BU1NJU1RfMHgzMShyZWcpCisgIGJlZm9yZQorICAgIGUyN2VkZTY0OTcyODhiMWQuZmYzOGY4YTU5MzJjM2ExMi5mYmE2NDgwNDI3ZDhjODg4LjU3NGRjMjRiZmExMjM0MzcKKyAgICA5MmQyMTlkNTRlZjYyNjM2LjkzZWFlNzVhNTRlYTA0ODkuMjE4NGY0NGI0MzA2Y2Q0MC5jNDQ5Zjk1YjRiZDljODdiCisgICAgZGM4ZDJmMmI3MGVkZDg5My41YTYwNjJjODg4NWU4N2M4LmYyZTJiZDgxYmNkNzBjYTYuMzZlNGJmZWZjMjkwZjdiMQorICAgIDFjZmExY2QyOTc5YWRlZTAuMmY2NmU2ZGQ0Yjk0N2ZmZC5jYzBjOWYxMTJkZDhjMTY1Ljg5ZTk5MGYzN2E0NDdkMDUKKyAgICA5OTIzZTY1MzkwMDAxNWE1CisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBjODk5ODRiODk5ODdhMGMuZGYwNTY5MzkwNTY5MDhkZgorICAgIDkyZDIxOWQ1NGVmNjI2MzYuOTNlYWU3NWE1NGVhMDQ4OS4yMTg0ZjQ0YjQzMDZjZDQwLmM0NDlmOTViNGJkOWM4N2IKKyAgICBkYzhkMmYyYjcwZWRkODkzLjVhNjA2MmM4ODg1ZTg3YzguZjJlMmJkODFiY2Q3MGNhNi4zNmU0YmZlZmMyOTBmN2IxCisgICAgMWNmYTFjZDI5NzlhZGVlMC4yZjY2ZTZkZDRiOTQ3ZmZkLmNjMGM5ZjExMmRkOGMxNjUuODllOTkwZjM3YTQ0N2QwNQorICAgIDk5MjNlNjUzOTAwMDE1YTUKK1ZBRVNLRVlHRU5BU1NJU1RfMHgzMShtZW0pCisgIGJlZm9yZQorICAgIDQyNWYzZmZiMWZkMDdjYmEuYWU2N2RkMzY2MTg4NzRjOC5mMGM4ZWU4M2JhOTlhNzUyLjA5NTA5NjY5MzI5NDI3MjkKKyAgICA1ZjY5MTZkODQ0YzE2ZTczLmVlMWY2ZGMzNmE0M2Q1ZjcuNzg1MmY3YThmMTc4YmNmMy4wN2Y5OWZmNDY4OTc3YmEwCisgICAgY2UwZGU3ZDQxYWRlYTZmYS4zODZkYzdlNTRkNTgzZjFhLmEzY2Y3YjM3MGIzZDc5MGUuMjA1MmI1MWY2YjZlZjk3NAorICAgIDZhMTcyZWRjYmQzM2UyN2IuZTg5ZWVhMDhhNzUyZWJkZC40ZDBkZjgxYzI0ZjU5Y2NjLmIyYThkNDU0ZDVhNGRkNTEKKyAgICAxNzQ3ZjgwMDQ1YzU2MmU0CisgIGFmdGVyCisgICAgNDI1ZjNmZmIxZmQwN2NiYS5hZTY3ZGQzNjYxODg3NGM4LmYwYzhlZTgzYmE5OWE3NTIuMDk1MDk2NjkzMjk0MjcyOQorICAgIDVmNjkxNmQ4NDRjMTZlNzMuZWUxZjZkYzM2YTQzZDVmNy43ODUyZjdhOGYxNzhiY2YzLjA3Zjk5ZmY0Njg5NzdiYTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWM4Y2U4MTk4Y2U4MjhlYy5mOTAxNTNhMTAxNTM5MGY5CisgICAgNmExNzJlZGNiZDMzZTI3Yi5lODllZWEwOGE3NTJlYmRkLjRkMGRmODFjMjRmNTljY2MuYjJhOGQ0NTRkNWE0ZGQ1MQorICAgIDE3NDdmODAwNDVjNTYyZTQKKworVkFFU0tFWUdFTkFTU0lTVF8weEIyKHJlZykKKyAgYmVmb3JlCisgICAgYWM3YjFlOTA1NTVlYzVkOS4wZjUyNjhkZDRhY2RkYzIzLjVhZmVjZjk5MTNiZTE4ZWIuNTFkNmU5NDM1OWFiZGY1YworICAgIGNlOTA0MDZlYTFmYTQyZGIuOTg4YzBmYzJkZGI3NTAxZS5lYWQ5NzMwMjJkMjcwMWYxLjhkZjdjYTk4YzU2YmZmZTgKKyAgICBkN2QyNWMwOGM2MjUxNDk3LmUzOGZhMTc2OTFmZGZjOTcuZjM3YmQzYjE5MjE5ZTE5Yi5kYzNjMTcwNzg1NDJiNzljCisgICAgMjQ4YzZkYzk1ZjZjNzhiOC5jYjI4OTllNzgyYWM5YWJiLmQzMmZlYTExZGUyMGY0OTQuMTk3MDRkN2NiNDNiYzVhNQorICAgIDIyNjFlN2U0NmY2MmUzMmYKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYzgwZDIxZDQwZDIxNjZjOC5jNTg2ZWI0Mjg2ZWJmMGM1CisgICAgY2U5MDQwNmVhMWZhNDJkYi45ODhjMGZjMmRkYjc1MDFlLmVhZDk3MzAyMmQyNzAxZjEuOGRmN2NhOThjNTZiZmZlOAorICAgIGQ3ZDI1YzA4YzYyNTE0OTcuZTM4ZmExNzY5MWZkZmM5Ny5mMzdiZDNiMTkyMTllMTliLmRjM2MxNzA3ODU0MmI3OWMKKyAgICAyNDhjNmRjOTVmNmM3OGI4LmNiMjg5OWU3ODJhYzlhYmIuZDMyZmVhMTFkZTIwZjQ5NC4xOTcwNGQ3Y2I0M2JjNWE1CisgICAgMjI2MWU3ZTQ2ZjYyZTMyZgorVkFFU0tFWUdFTkFTU0lTVF8weEIyKG1lbSkKKyAgYmVmb3JlCisgICAgZDJkOTYxMjlkMWM0Y2Q2NS4xMTBiNzAxYzA5NWFhYWViLjJiMjM3NDAwY2RjZmU3YjYuZTU0MmI0OGRhY2M5Nzg4OQorICAgIDA0YTUzNzM5Zjc2YzQxNzQuZmE5YzVmNmY1ZjdiZTZkYy5lMTRjYWNhZDhlNzM5ZWIzLjg1MDEyZTkzOTg5ZmE3MjUKKyAgICA5NjkxZTVmZmZjNjdmOTg4LjNjODkzODJkZmQ1YzY3MzYuYzc2ZmJmZGFlMGEyN2NkZS4wZWI2NTM4ZTNmMmZiZTE1CisgICAgNjI2OWU4NjZmY2JmYjJjYy4zMTFlZjZjMjgwODg2YWE2LmJiNTcyODczZGY2YTNkNjUuZGVhZTFlZWEzZDA0ZjkwNQorICAgIDUwMzQ4ZTEzMmNhYTkzYTAKKyAgYWZ0ZXIKKyAgICBkMmQ5NjEyOWQxYzRjZDY1LjExMGI3MDFjMDk1YWFhZWIuMmIyMzc0MDBjZGNmZTdiNi5lNTQyYjQ4ZGFjYzk3ODg5CisgICAgMDRhNTM3MzlmNzZjNDE3NC5mYTljNWY2ZjVmN2JlNmRjLmUxNGNhY2FkOGU3MzllYjMuODUwMTJlOTM5ODlmYTcyNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC42M2YxMjYyMGYxMjY5MjYzLjVkZDkyYzNmZDkyYzhkNWQKKyAgICA2MjY5ZTg2NmZjYmZiMmNjLjMxMWVmNmMyODA4ODZhYTYuYmI1NzI4NzNkZjZhM2Q2NS5kZWFlMWVlYTNkMDRmOTA1CisgICAgNTAzNDhlMTMyY2FhOTNhMAorCitWQUVTS0VZR0VOQVNTSVNUXzB4QjIocmVnKQorICBiZWZvcmUKKyAgICBiZjk2OWM3NmFiYWVjOTkyLjQ2ZjliYjVjMTU4MjI3NmMuMzZhOTk1OWI4NDhiMmJkNy45N2QxNjQ2NWE4ZDc5ZDcyCisgICAgODkxZTQ1N2Q1MzlhZDc4OS4xYzBkZGFjYzYwYmMxNjk2LmE3NzUxMTIyYTRmMmU2NzYuMzlhYWVkOWE1NmY0NTgzMQorICAgIDA4MWE4Njk1YzNmZGY5MmYuYzE3MGMxYTJmYjc4Mzk3My5lMGNkNjdjNDdkNDhkNjJmLjdiYWM0MTAwMDZjZDI5Y2YKKyAgICA5YWQ0NWEyYjk0NjA2YTMwLjEyZWZlZGNhMDFjMjRjMzIuM2RmZTkyZWVhYTFhMzhhZC4zYmE0ZGI4MWQzNmVjZDc4CisgICAgNTM1ZDM3MGJkYWU0ZmY1NworICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xY2UxYmQzN2UxYmQ4NTFjLjYzMjE5MTMxMjE5MTgzNjMKKyAgICA4OTFlNDU3ZDUzOWFkNzg5LjFjMGRkYWNjNjBiYzE2OTYuYTc3NTExMjJhNGYyZTY3Ni4zOWFhZWQ5YTU2ZjQ1ODMxCisgICAgMDgxYTg2OTVjM2ZkZjkyZi5jMTcwYzFhMmZiNzgzOTczLmUwY2Q2N2M0N2Q0OGQ2MmYuN2JhYzQxMDAwNmNkMjljZgorICAgIDlhZDQ1YTJiOTQ2MDZhMzAuMTJlZmVkY2EwMWMyNGMzMi4zZGZlOTJlZWFhMWEzOGFkLjNiYTRkYjgxZDM2ZWNkNzgKKyAgICA1MzVkMzcwYmRhZTRmZjU3CitWQUVTS0VZR0VOQVNTSVNUXzB4QjIobWVtKQorICBiZWZvcmUKKyAgICBhMGE1ZDE4OTM2M2E3ZDk5Ljk5OTliZGFhNjU1MTY3MzkuZTk1N2Q5MzA4ZmE2MGRmZC4xYTU0OGUwYWM3ZjI0NzlkCisgICAgZmU0NjI2ZTYwNDdkMDE2OS42M2I0YWM3ZGNmNWMyY2Y2LjIzNzEwMWMxYzEzMTM2MDEuZDMxYjU3ODY3MTVlNDFhYQorICAgIDRhMGRiMTEwNWZiODQ3ZjQuNTI3MzIxMTI3MDBiZjQxMi45ZDBjZTE2N2IyNmU4NDY5LmM0OWZlYWNkNDNlYTYwODEKKyAgICA1ZWM2ZWVmMjYzZjcwZDY2LmMzMjExYWQ0ZTRlY2ZkM2EuMzFmM2Y1MTA3ZTZhYjI2Mi40OTJiNDI0YmRhMjFlMWNlCisgICAgYmQwZDViNmNkMThmZmYzYworICBhZnRlcgorICAgIGEwYTVkMTg5MzYzYTdkOTkuOTk5OWJkYWE2NTUxNjczOS5lOTU3ZDkzMDhmYTYwZGZkLjFhNTQ4ZTBhYzdmMjQ3OWQKKyAgICBmZTQ2MjZlNjA0N2QwMTY5LjYzYjRhYzdkY2Y1YzJjZjYuMjM3MTAxYzFjMTMxMzYwMS5kMzFiNTc4NjcxNWU0MWFhCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjA0MWU1Yjg3MWU1YjM1MDQuNjdhMjIwYWJhMjIwMTk2NworICAgIDVlYzZlZWYyNjNmNzBkNjYuYzMyMTFhZDRlNGVjZmQzYS4zMWYzZjUxMDdlNmFiMjYyLjQ5MmI0MjRiZGEyMWUxY2UKKyAgICBiZDBkNWI2Y2QxOGZmZjNjCisKK1ZBRVNLRVlHRU5BU1NJU1RfMHhCMihyZWcpCisgIGJlZm9yZQorICAgIDdlOGYzMTljYzVjMGY3NzguMTczZDU5NzkyZDQ2MGRlYS4xMzA5OTIyZmM2OGI4MDE5LmJjZjFiYWE2NDIzMDdlMTcKKyAgICBlN2ZlYzA0NzUxNDEwNTJkLjUxM2U2ZThmZDliMjA0YWQuOWM3ODg2OGZiMjcyYmM1Yy4xYWQ0YWIxNzE5Y2NhMmI1CisgICAgNTRhNjA1ZDkxMjlkNjUwOC5lODk1YWEyMTgyNDZhZWRiLmJiYmFmMDYwNDUyZmViYWYuMjc2NjQ0NGUyMDRiZGI2OAorICAgIDIwZDNmYmJlYTM2MTUzYjQuYjgwZDg4MWM0NDBmYzY5Zi5jYzFiY2UwZjFiNGU0YWJkLmMwNzQwMTM3NzJiN2U0NWIKKyAgICBiZmNhNWZiZTJjMWY3YWJiCisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmQwZWFmNDNlZWFmNDhjZDAuMmZjYzMzYTljYzMzMWIyZgorICAgIGU3ZmVjMDQ3NTE0MTA1MmQuNTEzZTZlOGZkOWIyMDRhZC45Yzc4ODY4ZmIyNzJiYzVjLjFhZDRhYjE3MTljY2EyYjUKKyAgICA1NGE2MDVkOTEyOWQ2NTA4LmU4OTVhYTIxODI0NmFlZGIuYmJiYWYwNjA0NTJmZWJhZi4yNzY2NDQ0ZTIwNGJkYjY4CisgICAgMjBkM2ZiYmVhMzYxNTNiNC5iODBkODgxYzQ0MGZjNjlmLmNjMWJjZTBmMWI0ZTRhYmQuYzA3NDAxMzc3MmI3ZTQ1YgorICAgIGJmY2E1ZmJlMmMxZjdhYmIKK1ZBRVNLRVlHRU5BU1NJU1RfMHhCMihtZW0pCisgIGJlZm9yZQorICAgIDAxMzRkOGNmNjk4YzU5YjMuYTlkMDllNjNhMTE4MGFkZi45ZTc0ODQ2YTNjMTgwOTI1LjJjZTcxYjA2Y2Y1OTE1MzMKKyAgICA2MjdkZWE1NjQ1MGMzZDcwLjRhZWJlYTMyYTc0ZWM2MzIuNzQ5NDFhZjk4NTZkMzM5YS4zNTY5ZDNiMmZkZGU4OGJkCisgICAgYmU3MzEwM2ZkZWFhZTExZS41ZTZlZGI5OTUyOTBjNTVjLjE3M2FjN2IzM2MxYmZmMmEuNDRlZmYyODA0MjY5ZGUwNgorICAgIGYxZTBjNzc2NGQ3MzAyZTguNDNhNjZlMDMzZDY5NDEwNy42MzMxMDY4NjdkMmQyYTAxLmI1YzM3NWRiMzk4NDU0YmEKKyAgICBlNDMyNTcyZTdmYmQyNTg2CisgIGFmdGVyCisgICAgMDEzNGQ4Y2Y2OThjNTliMy5hOWQwOWU2M2ExMTgwYWRmLjllNzQ4NDZhM2MxODA5MjUuMmNlNzFiMDZjZjU5MTUzMworICAgIDYyN2RlYTU2NDUwYzNkNzAuNGFlYmVhMzJhNzRlYzYzMi43NDk0MWFmOTg1NmQzMzlhLjM1NjlkM2IyZmRkZTg4YmQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDIwYjkyZWQwYjkyNWYwMi42ZjcxOTQxZDcxOTRhZjZmCisgICAgZjFlMGM3NzY0ZDczMDJlOC40M2E2NmUwMzNkNjk0MTA3LjYzMzEwNjg2N2QyZDJhMDEuYjVjMzc1ZGIzOTg0NTRiYQorICAgIGU0MzI1NzJlN2ZiZDI1ODYKKworVkFFU0tFWUdFTkFTU0lTVF8weEZGKHJlZykKKyAgYmVmb3JlCisgICAgMmQ4ODk0ZTdhZmEwOGYxNi5kNzkxODllOGIwNzI1Y2ZiLjU0ZGY5ZWRiMDQ2NTc3ZGYuMzQ0NzUzNWQ2MmFmNzA0OQorICAgIGVjMTEyODcxNjZiOGNjMTYuNGI1MmQ0N2YyM2IzYWI4Mi5lYzY1Njc4ZjQ0MTBhMzkxLjY1NDcyYTI0MGFhZThkMzEKKyAgICA3ZDE4MGYzODNmOTExOTMxLjJiZWYyMzI5YzE0M2FhYWEuNjk4NGM2OGE5OWY3MDBjOS5kNGZjMDdjNzhlMzUzY2UzCisgICAgM2NlYjQ2YThkN2I3YjExMy41MjMzZjJkMWE2MmQxNjlmLjI1ODdiNTM4OWVhNmNjMzIuNWMzMzY3MzIwZDUwM2E4YworICAgIGQ5YjhjNTUyYTAwYzQzNTcKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuN2VmOTVmNGJmOTVmYjQ3ZS5jNjQ4YjAzYTQ4YjBjNWM2CisgICAgZWMxMTI4NzE2NmI4Y2MxNi40YjUyZDQ3ZjIzYjNhYjgyLmVjNjU2NzhmNDQxMGEzOTEuNjU0NzJhMjQwYWFlOGQzMQorICAgIDdkMTgwZjM4M2Y5MTE5MzEuMmJlZjIzMjljMTQzYWFhYS42OTg0YzY4YTk5ZjcwMGM5LmQ0ZmMwN2M3OGUzNTNjZTMKKyAgICAzY2ViNDZhOGQ3YjdiMTEzLjUyMzNmMmQxYTYyZDE2OWYuMjU4N2I1Mzg5ZWE2Y2MzMi41YzMzNjczMjBkNTAzYThjCisgICAgZDliOGM1NTJhMDBjNDM1NworVkFFU0tFWUdFTkFTU0lTVF8weEZGKG1lbSkKKyAgYmVmb3JlCisgICAgMjc1NzlkMTE2NTc0MTM3MS44NWQ0YzgyZGM5YjdkMTY5LjljZWNiZTYzZWY3ZGFhOGMuN2RiYzMyMDVlZmE3NDA3OQorICAgIDIxZGM2YjVjNzg5NDY1MDYuYjQyMDkxMzRiMjFjYjVkZi5lNWU0MDJjYWI3NDAyNDlkLmNlNmQzODVlMjk4ODliNDkKKyAgICBhNTEyYWMyMGY0NzlmNjQxLjI1MWI5ZTI3MmQ3Mzk5MjAuMDhlODNhZjQxYjgxM2UwMC43MmU3YzNhZGU3ZDQxNzRmCisgICAgOGVjN2RiNDhmNjJlODI0Zi4zMzExZTk3NGQ2NDZiOGQ5LmUzYzRlMmNkMzY0Y2I1ZGYuYzc3NmQwNjBjNjE4ZjEzNworICAgIDI3NjY1OWUxNjFkZjY1YWMKKyAgYWZ0ZXIKKyAgICAyNzU3OWQxMTY1NzQxMzcxLjg1ZDRjODJkYzliN2QxNjkuOWNlY2JlNjNlZjdkYWE4Yy43ZGJjMzIwNWVmYTc0MDc5CisgICAgMjFkYzZiNWM3ODk0NjUwNi5iNDIwOTEzNGIyMWNiNWRmLmU1ZTQwMmNhYjc0MDI0OWQuY2U2ZDM4NWUyOTg4OWI0OQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5mYmRlY2U1MWRlY2VhZWZiLjZiZmY2NWRjZmY2NTIzNmIKKyAgICA4ZWM3ZGI0OGY2MmU4MjRmLjMzMTFlOTc0ZDY0NmI4ZDkuZTNjNGUyY2QzNjRjYjVkZi5jNzc2ZDA2MGM2MThmMTM3CisgICAgMjc2NjU5ZTE2MWRmNjVhYworCitWQUVTS0VZR0VOQVNTSVNUXzB4RkYocmVnKQorICBiZWZvcmUKKyAgICBlZjAyNWM5ZTU1YjVhZjViLmI4YzU3NGJmOTliZmM0NWIuM2M0ZTcwODU0YTI0NGZiNi41MTQ0NzYzZjI1YWU0NDY2CisgICAgN2I5OGQ0MDEzZDI3MGFmMC5mZWQ5ZjM3M2Y5Mzk3OTkyLjliMWQyZWM4MjU5NjlhNjIuMmQzNDczMzcwM2IyYTljMgorICAgIDI4NzJiZTc4YjZjMGIzMTYuM2VjZmQ0NGYzM2E3NWQxZi5hY2NjMWZhODAyMmFkNThhLjU1NWY1M2ExZWQ2NDllMWYKKyAgICA1MGRkMTQ2ZTViMGRlNTc5LjUyNzM5NDNmNjIxNTJjMmYuY2FhNTQwOTE3ZDZiM2JkOS5hNDkzOTQ2YWZlZDFkZmE4CisgICAgZjU5YWIyN2M1MzA0MmE4YQorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5jMjkxNGIzZjkxNGJjMGMyLjMyZmNjZjEyZmNjZmVkMzIKKyAgICA3Yjk4ZDQwMTNkMjcwYWYwLmZlZDlmMzczZjkzOTc5OTIuOWIxZDJlYzgyNTk2OWE2Mi4yZDM0NzMzNzAzYjJhOWMyCisgICAgMjg3MmJlNzhiNmMwYjMxNi4zZWNmZDQ0ZjMzYTc1ZDFmLmFjY2MxZmE4MDIyYWQ1OGEuNTU1ZjUzYTFlZDY0OWUxZgorICAgIDUwZGQxNDZlNWIwZGU1NzkuNTI3Mzk0M2Y2MjE1MmMyZi5jYWE1NDA5MTdkNmIzYmQ5LmE0OTM5NDZhZmVkMWRmYTgKKyAgICBmNTlhYjI3YzUzMDQyYThhCitWQUVTS0VZR0VOQVNTSVNUXzB4RkYobWVtKQorICBiZWZvcmUKKyAgICAyNjQxMjdjNTA3MGEzOWYxLjUwMjVkNDRmYzk5OGRlYzcuMTg5MWFlMmZhMzkwYTFlZS41M2Y1OGJlZjMzZTYwOWZjCisgICAgMTE1NDcxMzAzN2VlYzkwOC44NDk2Zjk4NzliZWZkOGE5LjZhZjQ5ZTBiMTIyMzc5ODcuYTIwOGZlMmVjMDI2N2I5ZgorICAgIDk0OWYwYmE5ZmViYzk1ZmMuNDg3YzdmODM2ZDllMGZjZS4yNjY5ZTBjMGM5ZGI3MDI3LjEyMmE5NGJhYmViN2NjNmQKKyAgICA4OWVkNzExYzc4ODA1YmY4LmY4MjI2M2FkZGMyZmMxZTAuMjZiZGYwMzhlN2MyNDFmYS4wMWE2NDlmZmNjMjUzOTEyCisgICAgYzljYTFhNjk4M2ZkZmUzYworICBhZnRlcgorICAgIDI2NDEyN2M1MDcwYTM5ZjEuNTAyNWQ0NGZjOTk4ZGVjNy4xODkxYWUyZmEzOTBhMWVlLjUzZjU4YmVmMzNlNjA5ZmMKKyAgICAxMTU0NzEzMDM3ZWVjOTA4Ljg0OTZmOTg3OWJlZmQ4YTkuNmFmNDllMGIxMjIzNzk4Ny5hMjA4ZmUyZWMwMjY3YjlmCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjE1YWQ4MTFiYWQ4MWU0MTUuZGZlZGU2YzJlZGU2M2RkZgorICAgIDg5ZWQ3MTFjNzg4MDViZjguZjgyMjYzYWRkYzJmYzFlMC4yNmJkZjAzOGU3YzI0MWZhLjAxYTY0OWZmY2MyNTM5MTIKKyAgICBjOWNhMWE2OTgzZmRmZTNjCisKK1ZBRVNLRVlHRU5BU1NJU1RfMHhGRihyZWcpCisgIGJlZm9yZQorICAgIGM4ZTAwMjY1ODJjYjU3OTUuY2UwYzFmNzVjMjQ3ZDUyOS5mMGQ2OWY3Mjg0MzEyODhiLjQ4YmE0YjYxODZlNmE5MmIKKyAgICA1ODM1ZmQ1ZDYyMTk3ZmM5LjNkYzY5MmEwZjgxY2JmYmEuOGNlMjMxM2YwMDJkODE3ZC42NjJkNmMyNWMyNTM2NGU3CisgICAgZDcxNTA3YmZjMjc1YjM4NS5iM2U4NDQ4OTM1MGNkN2Q4LjI4OTMxNDdlZWNiMTA4NWYuNWRlMWNmNzJiNzE0MmU1OQorICAgIDlmY2MxY2Y2M2I2YTJmNzUuMGMzZWIzMWM5NTIxZDdhZi4yMDM1NDQ5ZGU1NDhmOGUwLjBhYTRmMTMzODMzNWMyYWUKKyAgICA0NzQwNGM1NDNmYzJkZDExCisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLmYzMzRkYzA1MzRkY2ZhZjMuNDA0Y2Y4NzU0Y2Y4OGE0MAorICAgIDU4MzVmZDVkNjIxOTdmYzkuM2RjNjkyYTBmODFjYmZiYS44Y2UyMzEzZjAwMmQ4MTdkLjY2MmQ2YzI1YzI1MzY0ZTcKKyAgICBkNzE1MDdiZmMyNzViMzg1LmIzZTg0NDg5MzUwY2Q3ZDguMjg5MzE0N2VlY2IxMDg1Zi41ZGUxY2Y3MmI3MTQyZTU5CisgICAgOWZjYzFjZjYzYjZhMmY3NS4wYzNlYjMxYzk1MjFkN2FmLjIwMzU0NDlkZTU0OGY4ZTAuMGFhNGYxMzM4MzM1YzJhZQorICAgIDQ3NDA0YzU0M2ZjMmRkMTEKK1ZBRVNLRVlHRU5BU1NJU1RfMHhGRihtZW0pCisgIGJlZm9yZQorICAgIGYxODI1ZWMwMDljODNiYWYuMGVhNTM5NmQ2Yjg1MmU0NC4yNTk0NWI0NjM1NmE3YzZhLmQwMTNiZTA3ODc3ZThlYWEKKyAgICBlNDM3YTI2NmZkNTI5N2I0LjdlZWU1OTkyZWU1MWVkOWYuZDhiNWI2ZjEzMGYwODEzNi45NDdiN2QyODZjZTAwNjY5CisgICAgZmQyODk0MmYzNjZkYWU0Yi40Y2YxNzhkMDVmNWFhODMxLjAyNmY0MjBiYTNjMWE0M2UuYzhiNzdkNmIzM2Y5OWJjYQorICAgIDE2MjRiMTA4ZDAyNDNjYTEuZDVmYjkyOTM1YTJkOWJhNy43ZjhjN2E3ZmE5ZTg5ZmFmLmM4MTViYTNmNzY1NjhiNzkKKyAgICBlZmRmMzAwZGQxODIxMDIxCisgIGFmdGVyCisgICAgZjE4MjVlYzAwOWM4M2JhZi4wZWE1Mzk2ZDZiODUyZTQ0LjI1OTQ1YjQ2MzU2YTdjNmEuZDAxM2JlMDc4NzdlOGVhYQorICAgIGU0MzdhMjY2ZmQ1Mjk3YjQuN2VlZTU5OTJlZTUxZWQ5Zi5kOGI1YjZmMTMwZjA4MTM2Ljk0N2I3ZDI4NmNlMDA2NjkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNWEzZjIyYzYzZjIyMzk1YS5jNTcwN2Q1MTcwN2RhZWM1CisgICAgMTYyNGIxMDhkMDI0M2NhMS5kNWZiOTI5MzVhMmQ5YmE3LjdmOGM3YTdmYTllODlmYWYuYzgxNWJhM2Y3NjU2OGI3OQorICAgIGVmZGYzMDBkZDE4MjEwMjEKKworVlBDTE1VTFFEUV8weDAwKHJlZykKKyAgYmVmb3JlCisgICAgOWI2MmRjNDJlMTA5NjY2Zi4wY2Y2NzNkZGU4ODNmZGUxLjczNThhNDQ4N2M1NTAxYWQuMmNkYWRhMzg1ZjcyMmZiNQorICAgIDI3ZWFiOTRhNDE3N2NiMGYuYmI2OTU4OWI5YTk3YWMzOC44MzU0YTg1OTYxNWUxN2VlLmUzMjNkZTI0ZTA2YTBmN2IKKyAgICBlZWMyYzM5MjhkNTk3OWFjLmZmNGJkYjJjMDE2YjA2ZDIuNjEzYjljMzNhNGQ1MTkxNy44MTMzMDIyZTQ5ZGNmYzJlCisgICAgNGUzOGY2ODQ2MzNhYWRmMy5iNDY2Nzk3ZTM5MGJjN2RhLjZhNTk3YjQzZTE0NTQyZDMuZTJkOGMzNDJiNWQ0YjJmOQorICAgIGUyZGQ5YzRjNDE1ZmVkMDkKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuNzE2MWJlMzE1ZjBhOTVkZC41YWZjOGMxMzYzOTQxM2EyCisgICAgMjdlYWI5NGE0MTc3Y2IwZi5iYjY5NTg5YjlhOTdhYzM4LjgzNTRhODU5NjE1ZTE3ZWUuZTMyM2RlMjRlMDZhMGY3YgorICAgIGVlYzJjMzkyOGQ1OTc5YWMuZmY0YmRiMmMwMTZiMDZkMi42MTNiOWMzM2E0ZDUxOTE3LjgxMzMwMjJlNDlkY2ZjMmUKKyAgICA0ZTM4ZjY4NDYzM2FhZGYzLmI0NjY3OTdlMzkwYmM3ZGEuNmE1OTdiNDNlMTQ1NDJkMy5lMmQ4YzM0MmI1ZDRiMmY5CisgICAgZTJkZDljNGM0MTVmZWQwOQorVlBDTE1VTFFEUV8weDAwKG1lbSkKKyAgYmVmb3JlCisgICAgNWQwZDA5MzkwODg5Njg4YS5hMjk2NGY4ZTVjYTdhMjhmLmI2ODdhYzdjNWY4M2FiN2QuZjhmOTQyZjNiNTNiZDBjZgorICAgIDJmMzU4N2YzMjY1Y2UwYTcuNDUyOWM4MWExNjJiOTYyZC5lMTdhZjIxMThlZTA2ZGU2LjY4NjhlYmIxYmI0MWZjYjcKKyAgICAzNDIxOTA2N2I4ZTYxMThkLjk1M2Q1Zjk2MmQ1MmMzNzguMTEwYWM2MmJlMzJlY2E0Mi4xNmYyNzRlODkwZTUwNTM2CisgICAgNDg5ZGEyODJkYTMyYjc2Ny5lYzFlMGY2ZDNjYTk2NTFlLjIyMDVhNGI1Nzk3NzdkYmQuNWVlM2Q4MDRjZmIzMjVmOQorICAgIDljODcxNDcwMTUzNjk5YWIKKyAgYWZ0ZXIKKyAgICA1ZDBkMDkzOTA4ODk2ODhhLmEyOTY0ZjhlNWNhN2EyOGYuYjY4N2FjN2M1ZjgzYWI3ZC5mOGY5NDJmM2I1M2JkMGNmCisgICAgMmYzNTg3ZjMyNjVjZTBhNy40NTI5YzgxYTE2MmI5NjJkLmUxN2FmMjExOGVlMDZkZTYuNjg2OGViYjFiYjQxZmNiNworICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yNmMwMGZiODk1ZjVkZTczLjU4YWM4MDAyZDIwNzU0ZmQKKyAgICA0ODlkYTI4MmRhMzJiNzY3LmVjMWUwZjZkM2NhOTY1MWUuMjIwNWE0YjU3OTc3N2RiZC41ZWUzZDgwNGNmYjMyNWY5CisgICAgOWM4NzE0NzAxNTM2OTlhYgorCitWUENMTVVMUURRXzB4MDAocmVnKQorICBiZWZvcmUKKyAgICAyYzJhMjI5YWZkZmE5ZGY5LjQ2NzUzODJmYTc0ZDhkNjIuYTgxOGQ1MGJkZmJiYmFjOC5mMDM1MDk5YjZkYzk0NDgyCisgICAgNmExNzAwZWUyNDhiNmQ4Zi4wYzc1Y2U1OTNiNDI1MGFhLjIzNzZhYmRjYjMxNGZjMjUuNTc2NzZmYzlkYTMwZDliZQorICAgIGIyOWJhOWQ2MjU3NjQ0MTguNzU2OGUxZWViMzFkYmI2YS5iYjg2OGY0YzUzNDE2OGRlLjMyNjc1NDJjZGRiNmY5OWMKKyAgICA2MDAzMTliZjlkNDY1ZjQxLjVkMWNlY2Q5MmFlYjhjY2YuY2E5MjdjYzg1Y2NkMzlhMi41ZjAxMzNhZTkxNjk1ZjQ5CisgICAgYjkwMTg5M2QxMzU1YzlmMQorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wZjJhZDUyMzMzMTM3ZGJmLmEwNzg2NDJhODg4ODAxZTgKKyAgICA2YTE3MDBlZTI0OGI2ZDhmLjBjNzVjZTU5M2I0MjUwYWEuMjM3NmFiZGNiMzE0ZmMyNS41NzY3NmZjOWRhMzBkOWJlCisgICAgYjI5YmE5ZDYyNTc2NDQxOC43NTY4ZTFlZWIzMWRiYjZhLmJiODY4ZjRjNTM0MTY4ZGUuMzI2NzU0MmNkZGI2Zjk5YworICAgIDYwMDMxOWJmOWQ0NjVmNDEuNWQxY2VjZDkyYWViOGNjZi5jYTkyN2NjODVjY2QzOWEyLjVmMDEzM2FlOTE2OTVmNDkKKyAgICBiOTAxODkzZDEzNTVjOWYxCitWUENMTVVMUURRXzB4MDAobWVtKQorICBiZWZvcmUKKyAgICAxYzMzZDBjMzdlODRmMWJmLmNmOTk0YzE2Mjc4OGZhYjUuYTA1YjZhMDZiZGI3N2QwNC5hZWU3NmViYTZhNDRhZDFiCisgICAgNjM2Mjg2MmVlZTA0OTNkZi41ZGE5M2Y0NTVmYzY1MDIxLjE5ZjJkYTYxODg4ZDRiMzYuYzFkMTYyOGYxODMzZmVmNgorICAgIDZjNWIyNjY4ODBlMTZkN2YuNjU4MWVjYmFlMjhmOWUzMS5hNmFkYjVkNmE1N2FiMTkwLjYwOWM1MmI0MDIyNTY4ZGUKKyAgICAxMmVhMmM1ZjUwMjUzOWM5LjQzNmM1MWRmNGM2YzIwOTAuMjI1Nzc5NTIzMzg5NmQ0MC5lNzkzM2M5NGM1YTYyOTgwCisgICAgYjMwNDFiOWFmYzQzN2I4NworICBhZnRlcgorICAgIDFjMzNkMGMzN2U4NGYxYmYuY2Y5OTRjMTYyNzg4ZmFiNS5hMDViNmEwNmJkYjc3ZDA0LmFlZTc2ZWJhNmE0NGFkMWIKKyAgICA2MzYyODYyZWVlMDQ5M2RmLjVkYTkzZjQ1NWZjNjUwMjEuMTlmMmRhNjE4ODhkNGIzNi5jMWQxNjI4ZjE4MzNmZWY2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjdjMTIzZTA5ZDg3MTJmZmMuYzc1MmFmMWJkM2ZiNDVjYQorICAgIDEyZWEyYzVmNTAyNTM5YzkuNDM2YzUxZGY0YzZjMjA5MC4yMjU3Nzk1MjMzODk2ZDQwLmU3OTMzYzk0YzVhNjI5ODAKKyAgICBiMzA0MWI5YWZjNDM3Yjg3CisKK1ZQQ0xNVUxRRFFfMHgwMChyZWcpCisgIGJlZm9yZQorICAgIDFlMzllYzM0NDM4NzliYTAuMzBkYjE1ZmU3OWRlYjRlOS41M2I1NmEyMjM4ZWIxMWViLjY4YmVhMGJmNGJjNzM5NmYKKyAgICA4NTdmYTljZDM4ZmVjNDc3LmE0ZmE1YjMxMTcxODk5MGMuZjBhOTMxZWU0Mjk3YWZlZC41NmFjYTgwYTBiM2VkMTRjCisgICAgNDQyMjUwZDE3NDM1MzRiNy40ODEzN2NlNDQ3ZGVhNTVlLjc4OTRhNGFmMDdmZDM0NDMuYzZlZTBkMjA4ZmZjZjMwMAorICAgIGI3NmVkY2FjOTViNzI1MGQuZmFmMWYzMDQyNDNjOTQwYS40NmMyYmVkMTIyYThkYzk4Ljk2NTA0OWVjZjIwZDU5YmEKKyAgICBhMDllZGE1OTUxN2NjMGE0CisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNmM2RmYzIxOGI2ZDk3MDkuOWMxYjlhZTUyYmFiOTQwMAorICAgIDg1N2ZhOWNkMzhmZWM0NzcuYTRmYTViMzExNzE4OTkwYy5mMGE5MzFlZTQyOTdhZmVkLjU2YWNhODBhMGIzZWQxNGMKKyAgICA0NDIyNTBkMTc0MzUzNGI3LjQ4MTM3Y2U0NDdkZWE1NWUuNzg5NGE0YWYwN2ZkMzQ0My5jNmVlMGQyMDhmZmNmMzAwCisgICAgYjc2ZWRjYWM5NWI3MjUwZC5mYWYxZjMwNDI0M2M5NDBhLjQ2YzJiZWQxMjJhOGRjOTguOTY1MDQ5ZWNmMjBkNTliYQorICAgIGEwOWVkYTU5NTE3Y2MwYTQKK1ZQQ0xNVUxRRFFfMHgwMChtZW0pCisgIGJlZm9yZQorICAgIGMyYTQzYjU1Yzc1NWUzZWIuM2FhZjQ5Y2EzNzEwZDQyNC45NDYyM2M3YmNiM2UyMjNkLmI1N2Y3YmMwMzAyNGU1OWEKKyAgICBkNjJlZThjYjcwYTQ4MGJhLjI5MzA5NDk4ZjVjZDdjYTkuZjQzMGQ0MzY1N2YxMGIyMy4yMzE2ZDdlOGNkZmQ4OWYyCisgICAgYmEwNzVkYTc2OTc2NTEzZS5lMTNlYjc4MDZiNzk1YTQ4LmY0MjgzNjIyZTU2MDBhZTcuZWFkNWNmYjY5M2MwMDU0ZgorICAgIDQ4ZmMxN2Q1Y2VkNjEyYTIuYmMyNmIwZjAzNmEwYWFhYy43MjE2ZGQyOTkwOThkY2I1LjY4MDY1ZDk0MjFmOTk0NWEKKyAgICBmN2Y2N2ZmMDEwMzI3NGMyCisgIGFmdGVyCisgICAgYzJhNDNiNTVjNzU1ZTNlYi4zYWFmNDljYTM3MTBkNDI0Ljk0NjIzYzdiY2IzZTIyM2QuYjU3ZjdiYzAzMDI0ZTU5YQorICAgIGQ2MmVlOGNiNzBhNDgwYmEuMjkzMDk0OThmNWNkN2NhOS5mNDMwZDQzNjU3ZjEwYjIzLjIzMTZkN2U4Y2RmZDg5ZjIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTc3OGY5ZDk5ZTI5MjQwMS44ZjNjOWZkZmIwOTZjMDU0CisgICAgNDhmYzE3ZDVjZWQ2MTJhMi5iYzI2YjBmMDM2YTBhYWFjLjcyMTZkZDI5OTA5OGRjYjUuNjgwNjVkOTQyMWY5OTQ1YQorICAgIGY3ZjY3ZmYwMTAzMjc0YzIKKworVlBDTE1VTFFEUV8weDAxKHJlZykKKyAgYmVmb3JlCisgICAgZjVmMTMxMzRmZWY5ZGYzMS41ZGRhOTA0MmJhZDE4MTEzLjE2MzI3YTUyZjJjZmE4ODIuNDhjNTQ4Mzk3NWEzM2NiYgorICAgIGJjNDM2ZGNlODdkOTExNTQuZDY2YjQ2ZDg0OTcxNThiZC40ZGFmMTIxNDNhOTE4Zjc1LjUzMDNmMDNkYWY5MGU4MjIKKyAgICBhYTM4MzEyOTQ2NWY0OGQ2LjhkN2JiNDg0OThjNTU0Y2IuYmNlODcyYTFhYTczOWMzMi43MDlhNTMyMTViNjg5YTE5CisgICAgMTkxYjc3YjFkODE2YmU2NC41ZmQ4NTczM2MyZDYzMDZhLmJmMmI5ODY0ZGYwMDBiNjUuNzk1N2ViZDE5NDM5MGVjYQorICAgIDRiMDczNjM5NzcwZTAyNjEKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWUyNDNiZDY3YzQ1MDRjNC4xYThlZmQ3ZDU4NjU5MThkCisgICAgYmM0MzZkY2U4N2Q5MTE1NC5kNjZiNDZkODQ5NzE1OGJkLjRkYWYxMjE0M2E5MThmNzUuNTMwM2YwM2RhZjkwZTgyMgorICAgIGFhMzgzMTI5NDY1ZjQ4ZDYuOGQ3YmI0ODQ5OGM1NTRjYi5iY2U4NzJhMWFhNzM5YzMyLjcwOWE1MzIxNWI2ODlhMTkKKyAgICAxOTFiNzdiMWQ4MTZiZTY0LjVmZDg1NzMzYzJkNjMwNmEuYmYyYjk4NjRkZjAwMGI2NS43OTU3ZWJkMTk0MzkwZWNhCisgICAgNGIwNzM2Mzk3NzBlMDI2MQorVlBDTE1VTFFEUV8weDAxKG1lbSkKKyAgYmVmb3JlCisgICAgYzI3M2IwNDUxZmY0MzAwYy42NjNhM2VkMmQ4OGFiMGE5LjI4NGRhYWNmZTRiMmFhYzYuYjJjMjdmY2I3NGM0MThiOQorICAgIGJhNmFkM2UxYThmNTU1ZjUuZWRkZjdmZjhlMjQ4NTk1Mi5jNGE1Mjg0NjE5NjQ3YzBhLmYxZmEyMzQxMDY0YmZlZGIKKyAgICAxMGI3MWRmOTJmMjAyYzQ4LjBiNTczNzhmOTNkYmY3MGIuMTBhZDRmODM3ZWY5NjM2Mi5kODIwODAzMjMwMjJmYTc2CisgICAgOWUyNTA5N2FkMDdlNzMzMi4xYWVlNjMwMzg3Y2ZjNDdmLmU2MzE5YjcyMmU3YzFhZmIuYzI3ZTkzMGI4ZmQ0NDgzNworICAgIDBkNjA1NzM2YmVlZTIzYzkKKyAgYWZ0ZXIKKyAgICBjMjczYjA0NTFmZjQzMDBjLjY2M2EzZWQyZDg4YWIwYTkuMjg0ZGFhY2ZlNGIyYWFjNi5iMmMyN2ZjYjc0YzQxOGI5CisgICAgYmE2YWQzZTFhOGY1NTVmNS5lZGRmN2ZmOGUyNDg1OTUyLmM0YTUyODQ2MTk2NDdjMGEuZjFmYTIzNDEwNjRiZmVkYgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NzU3ZmFiMjlhOTc2MzJhLjcwZDAzOTQ4MDEzOTI4YmEKKyAgICA5ZTI1MDk3YWQwN2U3MzMyLjFhZWU2MzAzODdjZmM0N2YuZTYzMTliNzIyZTdjMWFmYi5jMjdlOTMwYjhmZDQ0ODM3CisgICAgMGQ2MDU3MzZiZWVlMjNjOQorCitWUENMTVVMUURRXzB4MDEocmVnKQorICBiZWZvcmUKKyAgICAxNDE0YzgyMDVhZmJjOGRhLjQxODIxMzRlYTUxZGU0ZGYuNzdlZmZlYzE1OWIxZmQ1Yi4yM2ZkODZmZjQ2Zjk1ZTAxCisgICAgMzJlNGUyMzZmZTg3NzMxMy5kNTk4Yjc2M2NkMDgzYzdhLjdlYTgwNDMzYTUwY2RkNGEuYTNkZDhlMTZlMTdkZWJhMAorICAgIGM1MWVhMmUzNDcxZTYwMjMuMzYzNDcyYTQ2MjRjMzYzMC44YjYzNzFjNzA4NmNhMWY5LjQyOWMyZWEzMWMxMjdkMDMKKyAgICAyODBjMDI5MmQwNGRjYWIzLjQwMjJiZmZjODBmNDhmMmMuZmI2ZDQyZTcxZDVlODUxNC5kYzA4ZTI5MjEyYzdjZjU2CisgICAgNGRlYjI2ZDBkZmE1OWVjNgorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xZjZkZWQ3MTUyMTVmNWZkLjhkMDE4ZWZlNjE0YzM1ZGUKKyAgICAzMmU0ZTIzNmZlODc3MzEzLmQ1OThiNzYzY2QwODNjN2EuN2VhODA0MzNhNTBjZGQ0YS5hM2RkOGUxNmUxN2RlYmEwCisgICAgYzUxZWEyZTM0NzFlNjAyMy4zNjM0NzJhNDYyNGMzNjMwLjhiNjM3MWM3MDg2Y2ExZjkuNDI5YzJlYTMxYzEyN2QwMworICAgIDI4MGMwMjkyZDA0ZGNhYjMuNDAyMmJmZmM4MGY0OGYyYy5mYjZkNDJlNzFkNWU4NTE0LmRjMDhlMjkyMTJjN2NmNTYKKyAgICA0ZGViMjZkMGRmYTU5ZWM2CitWUENMTVVMUURRXzB4MDEobWVtKQorICBiZWZvcmUKKyAgICA3MTEyNzc0N2EwYmFhNjdmLmI2ZmIwMGIxMzVhMGVlNzIuY2YyZDFhNTk0NDBjMDM5Yi4yODEzNzIwMTgxNmRjNTQ2CisgICAgMjQ0OTUwZTU3MTEyYTNhYy5jZDM3OTdhYjEzYTEwNzBhLmJmMjNmZmE2YzlhMTRlYTguNmY5ZmZkODBjZjI2OWMzYworICAgIDQxNWMyZDk0NmRiNzUwN2EuYzcwYmM0ZWMwNmRlNTMyOC5lYmNlZWFjZjJjYmUyYjgxLjJjNWRkZmQwYTQxMzQ3YTEKKyAgICBhNjE2OGE0MmIwYjc2YTE1LjAyYzU4MWUwYTllMjBjNzcuMzFmYjU4YzE4ODZmNTc0Zi5iYjliMTU1ZDliYzMwMjIyCisgICAgNzhhMzk5OTM1MWJmMDk2YgorICBhZnRlcgorICAgIDcxMTI3NzQ3YTBiYWE2N2YuYjZmYjAwYjEzNWEwZWU3Mi5jZjJkMWE1OTQ0MGMwMzliLjI4MTM3MjAxODE2ZGM1NDYKKyAgICAyNDQ5NTBlNTcxMTJhM2FjLmNkMzc5N2FiMTNhMTA3MGEuYmYyM2ZmYTZjOWExNGVhOC42ZjlmZmQ4MGNmMjY5YzNjCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjEyMTc2MWYyMGRkNDZlOGQuNTlhNDY1ZDVkYjU2MDVmMAorICAgIGE2MTY4YTQyYjBiNzZhMTUuMDJjNTgxZTBhOWUyMGM3Ny4zMWZiNThjMTg4NmY1NzRmLmJiOWIxNTVkOWJjMzAyMjIKKyAgICA3OGEzOTk5MzUxYmYwOTZiCisKK1ZQQ0xNVUxRRFFfMHgwMShyZWcpCisgIGJlZm9yZQorICAgIGJmYzM2OWRlNjE5NTk3MjcuMmU0NWU0ZGE1NzFlYWNhOC5kOGFmY2NmMzk4M2E2ZmE0LjZjNzZjNDY2ZmFjMThlNDEKKyAgICBlYjQ1ODBhYTY4ZDBlOTAzLmI1YjNiNTQ4N2VmNmQ0NjAuYTYxN2EwOTE3MDcxYjg1YS43ODBiYWFhYjlkYmY4YzgxCisgICAgNWE3NmRiNjQwMWZjM2FhYS4xNzJkN2I3ODNmNGQ5YzY4LmM5NDdmOTI3Y2MxMzIyNDYuMzE4Njg2N2Q4ZDc1MGMzYgorICAgIDY3YTI3NDc2YzhhNmM4YzkuMmY3ZmIxNTZiOTJmYzFlZC45YjhjZDQxZjQ5YWRlYTE0LjcyYjNkNWM2ZTdmMGNiOWMKKyAgICAxOTVkMTE3NGM3M2I4NWQwCisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjFlNTUxNmY1ZmU4ZmI5MWYuYjgyZWFkODI3MjQyM2NkZQorICAgIGViNDU4MGFhNjhkMGU5MDMuYjViM2I1NDg3ZWY2ZDQ2MC5hNjE3YTA5MTcwNzFiODVhLjc4MGJhYWFiOWRiZjhjODEKKyAgICA1YTc2ZGI2NDAxZmMzYWFhLjE3MmQ3Yjc4M2Y0ZDljNjguYzk0N2Y5MjdjYzEzMjI0Ni4zMTg2ODY3ZDhkNzUwYzNiCisgICAgNjdhMjc0NzZjOGE2YzhjOS4yZjdmYjE1NmI5MmZjMWVkLjliOGNkNDFmNDlhZGVhMTQuNzJiM2Q1YzZlN2YwY2I5YworICAgIDE5NWQxMTc0YzczYjg1ZDAKK1ZQQ0xNVUxRRFFfMHgwMShtZW0pCisgIGJlZm9yZQorICAgIDAxNTFiODcyNDg2MmY1MDIuNmUxNDQ5NGU1YTU5Y2QwYy5kYjc1ZDRjZTA2YTZmZTFiLjc5MzEyY2U3ODJjYTRjNmYKKyAgICAwNTViNDZhYjg2NzJkODVmLmNiMWE1NTU3NTNhMjg2MWUuZjZkYjVlY2M0MmMwMTExZC5jMDg0ZmNlOTE0ZjY4MzA0CisgICAgMDM0NzM1MGQ5ZTc2ZWExMy5kOWZlOTRmYzRlMGMyZWFjLjViN2NjZDNkODk4OWI0MWYuY2FjZjQzOTM5YWJlY2M3ZgorICAgIGQ1ZTEwMzgzYWM3YmU3NDkuZjYwZDAzYWJlNzIzMDI2MS5lODI2OWMwYmY5MGNhMzRmLmY0NjBmYTUwYjFhZDYzOGIKKyAgICA5YTgxMWU4Y2Y0NGY4NGQ0CisgIGFmdGVyCisgICAgMDE1MWI4NzI0ODYyZjUwMi42ZTE0NDk0ZTVhNTljZDBjLmRiNzVkNGNlMDZhNmZlMWIuNzkzMTJjZTc4MmNhNGM2ZgorICAgIDA1NWI0NmFiODY3MmQ4NWYuY2IxYTU1NTc1M2EyODYxZS5mNmRiNWVjYzQyYzAxMTFkLmMwODRmY2U5MTRmNjgzMDQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMmI1MTUyYzdmZjk3MWU4NC5mY2JhMmQyMWVmZGY0NzViCisgICAgZDVlMTAzODNhYzdiZTc0OS5mNjBkMDNhYmU3MjMwMjYxLmU4MjY5YzBiZjkwY2EzNGYuZjQ2MGZhNTBiMWFkNjM4YgorICAgIDlhODExZThjZjQ0Zjg0ZDQKKworVlBDTE1VTFFEUV8weDEwKHJlZykKKyAgYmVmb3JlCisgICAgMTk3ZmFjYjMwMDMxNmEwNy41OWY1MmFmOWNiOGI4YTJlLjdkOTM5Y2NmYmI3NDNlZWEuNzdhMzQ3MjRhYjU1OWNkNworICAgIGNiYTY5ZjMxNzBkZTUyZDAuNjk0ZTI4NWMxN2I0OTBlZC5jOWRjNWRkNDY1ODkxZWYyLmU2YzA0YjcyYmQ3MDU5ZTMKKyAgICAwZDQxZjM3MmUwZTM3OGRiLmUzYmE3OTk2YWQwMmI1YjMuMzgzNDQxMjY4MmYxZGUyNy4wZjQ5MjNlMzRiNmE5N2EwCisgICAgM2I5ZWE1ZTJlZGNhMTdkMy5hMTAzOTc5NGE4ODBiNGFiLjI1ZTc0NTMyYWUzNWI5MzIuZDAwYTRhNjI3MDRlMTEzYQorICAgIDAzY2UzZmRiNDkyODg1ZGMKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTU5MzE5YzYzM2NlNmUyYy41ZTkwZDk3MTM0YTU5M2M5CisgICAgY2JhNjlmMzE3MGRlNTJkMC42OTRlMjg1YzE3YjQ5MGVkLmM5ZGM1ZGQ0NjU4OTFlZjIuZTZjMDRiNzJiZDcwNTllMworICAgIDBkNDFmMzcyZTBlMzc4ZGIuZTNiYTc5OTZhZDAyYjViMy4zODM0NDEyNjgyZjFkZTI3LjBmNDkyM2UzNGI2YTk3YTAKKyAgICAzYjllYTVlMmVkY2ExN2QzLmExMDM5Nzk0YTg4MGI0YWIuMjVlNzQ1MzJhZTM1YjkzMi5kMDBhNGE2MjcwNGUxMTNhCisgICAgMDNjZTNmZGI0OTI4ODVkYworVlBDTE1VTFFEUV8weDEwKG1lbSkKKyAgYmVmb3JlCisgICAgODY2MzdiM2FmMTA1YWRiMy5iMTA3YWZlZTMzMjE2ZDY0LjgxZjYwMDQzMjUzYTRhMDIuZWI0MDYzNjI4M2UzZWNjMgorICAgIDMzOTM3YjZiODRmMDQ1ZWIuY2JjOTBmMDA0ZDc0YjQzYi41ZDVmMmY4ZDNmM2MzM2U0LmU4OGM5OTIzOWY4NmIyODAKKyAgICBlNzJiYmM1YTFmZjYwYmFmLmU1MzBjMDg2ZDc0ZTI4MDQuMTMwOWEwNjAxMzkzMmI3Yy43NjE4ZTJlMjllYWI0ODFiCisgICAgN2ZmN2I5ZjRkZDIyYjkyYi41Yjg4YmZlYjZlM2IwNzZiLjdkYzJjZmE3YmM0YWVkZjcuZjMyZTNhMGExYmRkZWEzZAorICAgIGI5MWE5ZTA2YjNhOGQ0OTMKKyAgYWZ0ZXIKKyAgICA4NjYzN2IzYWYxMDVhZGIzLmIxMDdhZmVlMzMyMTZkNjQuODFmNjAwNDMyNTNhNGEwMi5lYjQwNjM2MjgzZTNlY2MyCisgICAgMzM5MzdiNmI4NGYwNDVlYi5jYmM5MGYwMDRkNzRiNDNiLjVkNWYyZjhkM2YzYzMzZTQuZTg4Yzk5MjM5Zjg2YjI4MAorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43NGYxNGYyOGQxMGE0YTY3LmVmOGQ3ODQ4YTI1YzY1MDAKKyAgICA3ZmY3YjlmNGRkMjJiOTJiLjViODhiZmViNmUzYjA3NmIuN2RjMmNmYTdiYzRhZWRmNy5mMzJlM2EwYTFiZGRlYTNkCisgICAgYjkxYTllMDZiM2E4ZDQ5MworCitWUENMTVVMUURRXzB4MTAocmVnKQorICBiZWZvcmUKKyAgICAyNTJhMDg0NDAxOTk0MmM4LmQ1YzNlZTIzZGI4MDBjOGMuODkxZDA2OWFhZWM3OGIxYi43ODU0Mzk0ZTU3NmUzNjgxCisgICAgOTRhODc2MmZhMjNiNmY4OS5jNjViZDhkNDM1MWNiZmZlLmNhM2I5MzAxMzE3ZmYwYzAuZTA4YzU5NDFmZjBhYzI0NQorICAgIDYwZTJlMzMzMzExYTk4ODEuMmU4YWYxZjQwNTAzOTBhZC43YzJkNjE4Yjk2ZWU3NDA3LjkyMzdhYjZjZDAyYTRjNmYKKyAgICBlNjIyNGJiYzRhYzNmODVkLmU5MWRiNzZlNmE0MDM5YzQuZmE0MDZjYTQ3NmExNTE5Yy42ODFlYWJiYmU3ZGE5MTJjCisgICAgM2YxMGQ2MWE2MDI3NGRhOAorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4yZWE0NThiMzg3MDY3OTg0LmU4ODVhYWU3YjgxNmViZGIKKyAgICA5NGE4NzYyZmEyM2I2Zjg5LmM2NWJkOGQ0MzUxY2JmZmUuY2EzYjkzMDEzMTdmZjBjMC5lMDhjNTk0MWZmMGFjMjQ1CisgICAgNjBlMmUzMzMzMTFhOTg4MS4yZThhZjFmNDA1MDM5MGFkLjdjMmQ2MThiOTZlZTc0MDcuOTIzN2FiNmNkMDJhNGM2ZgorICAgIGU2MjI0YmJjNGFjM2Y4NWQuZTkxZGI3NmU2YTQwMzljNC5mYTQwNmNhNDc2YTE1MTljLjY4MWVhYmJiZTdkYTkxMmMKKyAgICAzZjEwZDYxYTYwMjc0ZGE4CitWUENMTVVMUURRXzB4MTAobWVtKQorICBiZWZvcmUKKyAgICBmM2Q4YTY3NTU2MWMzYzBmLjgzYjVhYjM2OGFjMWNkYzkuZDRlMWE1MmQ3ZGUwNzc2Zi5hMGMwYjFiODcwMjJjNDJhCisgICAgNjA0MTk5YjllNWM2MTk4Yy45MWU3ZmUwZThkYTA1MTcwLmM5YTAzODFmNWRlZTA1ZGMuY2FmOTJhMzQxZDAwMDk1ZQorICAgIDYyMTkyYWQwMmEzMGExNGIuNmQwNDQwYWVlZWVkYzBmZi5hNTI2ZWEyZjIzNzZhMDM0LmQzMzdkNTgyMWNjNDViZTQKKyAgICBkNTJhZDZhODQxNjY5MDc5LjczNTc2ZDgzNDkzMzU4MjEuNDQ0MTM5NDllZDg1MDRhNi4xOWM2YWQwZjA2ZmNmNzY3CisgICAgZjdmMWFlNDg3OTMzMTk5NAorICBhZnRlcgorICAgIGYzZDhhNjc1NTYxYzNjMGYuODNiNWFiMzY4YWMxY2RjOS5kNGUxYTUyZDdkZTA3NzZmLmEwYzBiMWI4NzAyMmM0MmEKKyAgICA2MDQxOTliOWU1YzYxOThjLjkxZTdmZTBlOGRhMDUxNzAuYzlhMDM4MWY1ZGVlMDVkYy5jYWY5MmEzNDFkMDAwOTVlCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjU4MDg4MTQxMDU0MzE2OTUuNjY3YmNkNTVmZDk0MzIyYQorICAgIGQ1MmFkNmE4NDE2NjkwNzkuNzM1NzZkODM0OTMzNTgyMS40NDQxMzk0OWVkODUwNGE2LjE5YzZhZDBmMDZmY2Y3NjcKKyAgICBmN2YxYWU0ODc5MzMxOTk0CisKK1ZQQ0xNVUxRRFFfMHgxMChyZWcpCisgIGJlZm9yZQorICAgIGM4MDZkNTk3MTFmNmZkMTYuOTU0MTE3MmM0NDc1YTI0Mi5mZjJlODFmYTNiZmU1MzgzLjgyYmNhMDVhZDcyNmVkNWMKKyAgICBlYTRmMWM2YTY5ZDBkZTlhLjdlMmE2YjQ3NTI2ODkyZDIuNmRkMzc5N2U1ZmRiZWVkMS4zYjYyOWI0Y2ZjNjUxNjgyCisgICAgYjcxOTgxMmMxZTRkZjljYi42Y2IwNGRlNzg0NGIxZDU0LjE5OTM1MDdhNTI1NTY1YjYuNGIwMGE2MGM3OTRlM2M0NgorICAgIDhkYjAwMDQ5Y2JmYThhNTcuM2JhMTM5ZjdmOTJiZmVmNC41ZmJhMDI1Y2FmZjlmM2RmLjhlNjMzZTg3NjllZTFiZDEKKyAgICBlMDU0ZGVhN2U4NTE2ZjUyCisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAyNDgxODUzNzZjMjA1YmMuZTlhNmQyZTg0NzMwYzQ2YworICAgIGVhNGYxYzZhNjlkMGRlOWEuN2UyYTZiNDc1MjY4OTJkMi42ZGQzNzk3ZTVmZGJlZWQxLjNiNjI5YjRjZmM2NTE2ODIKKyAgICBiNzE5ODEyYzFlNGRmOWNiLjZjYjA0ZGU3ODQ0YjFkNTQuMTk5MzUwN2E1MjU1NjViNi40YjAwYTYwYzc5NGUzYzQ2CisgICAgOGRiMDAwNDljYmZhOGE1Ny4zYmExMzlmN2Y5MmJmZWY0LjVmYmEwMjVjYWZmOWYzZGYuOGU2MzNlODc2OWVlMWJkMQorICAgIGUwNTRkZWE3ZTg1MTZmNTIKK1ZQQ0xNVUxRRFFfMHgxMChtZW0pCisgIGJlZm9yZQorICAgIDFkYTIwMjVhMTM4MWYzZjMuYzY1ZjkzMmQwYzYxY2NlNy5jN2M3YWM2M2NhMTNmM2RmLjliOTQ4YjhmMTM1MWQ1ZjcKKyAgICAyMDE4MjY4YTA2OGM2NGUwLmMwNzQzNzQ0N2UxMWZjMjkuZWNlZjIwMTgxNjBmYjY0MS4yOTZjZTc3ZjE5ZWI0N2FiCisgICAgYzc4MWM3MjVkYjdlN2Q0Ni5kNTM5ZTlmYWJjOTM1NmM5Ljg2ZTUxMzAwZjYyYzA0NDUuNjU5MDEzOTg1ZTUzODRhNworICAgIGVkYWI1ZjE2YjE2MWZjNTEuNjNmYmE0YmI2Mzc1MTY3My43MDc1MDAwODg4NzU5ODE4LmFiNGEwYTQ2N2QxNGM5OTYKKyAgICA1N2U3YzhmNjEzYmE1MjI1CisgIGFmdGVyCisgICAgMWRhMjAyNWExMzgxZjNmMy5jNjVmOTMyZDBjNjFjY2U3LmM3YzdhYzYzY2ExM2YzZGYuOWI5NDhiOGYxMzUxZDVmNworICAgIDIwMTgyNjhhMDY4YzY0ZTAuYzA3NDM3NDQ3ZTExZmMyOS5lY2VmMjAxODE2MGZiNjQxLjI5NmNlNzdmMTllYjQ3YWIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWUyZDZmZTJjYWU1NTIxMS5mOGExYzg2MWZjMzljM2Y5CisgICAgZWRhYjVmMTZiMTYxZmM1MS42M2ZiYTRiYjYzNzUxNjczLjcwNzUwMDA4ODg3NTk4MTguYWI0YTBhNDY3ZDE0Yzk5NgorICAgIDU3ZTdjOGY2MTNiYTUyMjUKKworVlBDTE1VTFFEUV8weDExKHJlZykKKyAgYmVmb3JlCisgICAgYzViMzQ5MTJiYmQxNWJmZi42ZTYwNmM0OWEyNDM5YjJjLmM0MDY2NWY0MGY0Mzc3ZDIuODg2YjYzMWRlOGY2MzBlNgorICAgIDUxZmE4YTA4MTFlNjFmZDEuMjU2ZDY5YWFjYTMwMTcwNC41NWE2MjYwZjVhODdiNjkzLmE5OTNiOTI5MzFiYzg2ZGEKKyAgICA1NzA4ODY0MmIyODRkYzQ3LmYwOWVkMzI2NDYzMjJiMDUuNzMyN2U1N2FlM2NmMGY2MS5hZmI4N2QxYTgwZDI1NjIxCisgICAgMzIyODM5MmUzYTM4Y2IwYy5hYWJlMjRhNzMxNTg5NTVhLjc4ZDU5ZDlmNDNhN2JkZTkuNzVhNzJiZGJmMDQ0NWVlNgorICAgIGQ5MmMzZjU3OWQxZjU4NTYKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMWE3MmVkZWIzZTE0Yzk2Ni45YmMxZjAzNGNkMDhhMTMzCisgICAgNTFmYThhMDgxMWU2MWZkMS4yNTZkNjlhYWNhMzAxNzA0LjU1YTYyNjBmNWE4N2I2OTMuYTk5M2I5MjkzMWJjODZkYQorICAgIDU3MDg4NjQyYjI4NGRjNDcuZjA5ZWQzMjY0NjMyMmIwNS43MzI3ZTU3YWUzY2YwZjYxLmFmYjg3ZDFhODBkMjU2MjEKKyAgICAzMjI4MzkyZTNhMzhjYjBjLmFhYmUyNGE3MzE1ODk1NWEuNzhkNTlkOWY0M2E3YmRlOS43NWE3MmJkYmYwNDQ1ZWU2CisgICAgZDkyYzNmNTc5ZDFmNTg1NgorVlBDTE1VTFFEUV8weDExKG1lbSkKKyAgYmVmb3JlCisgICAgYjUxMzM1N2NhNDZlMDE5ZC40MGE3OWYzNzQ0OGQyYmNkLjJlOWJkYTFhYThhYjBmMzAuYzFmYjRhZWMxOTk5ZmRkNgorICAgIGU3Mjg4YTM1MjAzZDE0ZTYuZGNkMmI0Yzk2YzBmMzYzNS41YWZmNzA2Y2M2Mzk1NWIyLmFiZTZlOGNjZmUzMzBiZDUKKyAgICA0YTM3Yjk2ZjJlOTk0ZTVkLjYyZjM3NTUwNGY0YTI5ZjEuMDhiNzYyODdhNzBkMjUwZC45MGUzNzRhYjkwMDEyMzkyCisgICAgYjkwYjNlMTRlYThkNmIzMC4yZDU3ZGQzODg4Y2I0MGFjLjE2OTAyZDU5NjkzMzM5NmMuY2QzY2U4ZjU2YjhkODBiOAorICAgIGJlM2Q0MjE2MmE2NjVmZjQKKyAgYWZ0ZXIKKyAgICBiNTEzMzU3Y2E0NmUwMTlkLjQwYTc5ZjM3NDQ4ZDJiY2QuMmU5YmRhMWFhOGFiMGYzMC5jMWZiNGFlYzE5OTlmZGQ2CisgICAgZTcyODhhMzUyMDNkMTRlNi5kY2QyYjRjOTZjMGYzNjM1LjVhZmY3MDZjYzYzOTU1YjIuYWJlNmU4Y2NmZTMzMGJkNQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wODdjYzIxMGM4Nzc4MTJlLmUzYWE4ODIwMmNiYzYzNjAKKyAgICBiOTBiM2UxNGVhOGQ2YjMwLjJkNTdkZDM4ODhjYjQwYWMuMTY5MDJkNTk2OTMzMzk2Yy5jZDNjZThmNTZiOGQ4MGI4CisgICAgYmUzZDQyMTYyYTY2NWZmNAorCitWUENMTVVMUURRXzB4MTEocmVnKQorICBiZWZvcmUKKyAgICBiZjM0N2U3YTZhMTVmY2YxLjEyNzI5NTExNmYyNTI3ODguOWI0OWU4ZWRiNDFlYjYxMy41ZTUzNGJjZDI1Yjg0ZWZjCisgICAgMmM2Yzk2OGRjNjI4OTM1Yy4yZjM2M2I1MmQ5NmUzZTk0LjA2MTc5MmRiNmVjZGM4ZDIuYmVjZjNhY2VmOWE3MWZlOQorICAgIDYxMzA4OGJjZGEyYTVmZTEuZWQyNGFhYzQ0NTczNmI3ZS5jYzBiZDg2ZTUzNjZiMjk0LjEwY2Y3NTRhMDEwZDZhNWUKKyAgICBiYWNkNGU3MTQzYTc5ZDJiLjI5MDg2MDUxY2U0MTZiNzMuNDc3M2I1MTNmZTc0YjAwNi4zMjFlNzkyYzU4ZjRlOTg4CisgICAgZmU4OWMwNjExYTZhNTg5MworICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMmE2Zjc1YzcxZmFlYjE1Ljg1MjhjZmQ5NjE0YzAzNjgKKyAgICAyYzZjOTY4ZGM2Mjg5MzVjLjJmMzYzYjUyZDk2ZTNlOTQuMDYxNzkyZGI2ZWNkYzhkMi5iZWNmM2FjZWY5YTcxZmU5CisgICAgNjEzMDg4YmNkYTJhNWZlMS5lZDI0YWFjNDQ1NzM2YjdlLmNjMGJkODZlNTM2NmIyOTQuMTBjZjc1NGEwMTBkNmE1ZQorICAgIGJhY2Q0ZTcxNDNhNzlkMmIuMjkwODYwNTFjZTQxNmI3My40NzczYjUxM2ZlNzRiMDA2LjMyMWU3OTJjNThmNGU5ODgKKyAgICBmZTg5YzA2MTFhNmE1ODkzCitWUENMTVVMUURRXzB4MTEobWVtKQorICBiZWZvcmUKKyAgICA1MWRkYzhkMzY0N2I3NWFhLjkzOGZlNzFhOWQyYzg4ZTcuYmRhZGQ4ZTc5MGUzZjk5ZS5kNTk5MjUzNDBjODRmZGQ0CisgICAgMDhlNDBjNmY1MjMyZmFmOS40OGMyNGMyMTgzNDQ1ZWMwLjg2ZTE4ZjcxYTk2NWQzMmMuZDBjYTI0M2YxODIxZDZhOQorICAgIGZkNmEwODIyZmU5YmE0YWUuMzViMjdhZjQ5MTdjNTk2My42MTZlZmZkYjMyZDNiMzQ4Ljk2NTJhZTlmYmZkNzc3MzIKKyAgICAwZDNkMzlkNjg3YzIyZWYzLmI2YWE2ZWZlNjQ1ZWI2N2MuMjgyMWE2MTE0OTNhNTUxZi44MTdjYzBiZjljMzMxYjFhCisgICAgZWU5NjU1MGQ0Y2MwZmYwZQorICBhZnRlcgorICAgIDUxZGRjOGQzNjQ3Yjc1YWEuOTM4ZmU3MWE5ZDJjODhlNy5iZGFkZDhlNzkwZTNmOTllLmQ1OTkyNTM0MGM4NGZkZDQKKyAgICAwOGU0MGM2ZjUyMzJmYWY5LjQ4YzI0YzIxODM0NDVlYzAuODZlMThmNzFhOTY1ZDMyYy5kMGNhMjQzZjE4MjFkNmE5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjVkM2RlZDE1MjEyMDNhZGUuYjRiNjUzYmMyNDcyZGI0OAorICAgIDBkM2QzOWQ2ODdjMjJlZjMuYjZhYTZlZmU2NDVlYjY3Yy4yODIxYTYxMTQ5M2E1NTFmLjgxN2NjMGJmOWMzMzFiMWEKKyAgICBlZTk2NTUwZDRjYzBmZjBlCisKK1ZQQ0xNVUxRRFFfMHgxMShyZWcpCisgIGJlZm9yZQorICAgIDNhZWE2OWY0NmEwYTVmYjkuMTQyODE5NzkwN2I0NTZmNC4yN2Y4MjNhYjk3NzliMGI2LmI4YzdmZmZmMGFhNTc3ZGQKKyAgICBiZmM1ZjhlMDkyOWU3N2M4LmVmZjYyNmY1OWE3ZGQ2ZGUuZTNlNjk1NjdjNzU2ODRiZS5lZDI5ODY5MTkwMjFkM2FkCisgICAgZGE3M2ZmM2U2MTA3ODJlNy43ODc0ZGIzODVkMjc2YmRkLjQ4YzFjMTllOGY4MzZlM2YuYTMxNmI4YjNmN2I5MjZiYworICAgIGU4NDA3ODc4NzNkMWJkYzEuOGM2ZWI0MmQ2YmMwZDAxYy5iMWQ1YTFiYzhjOGJhYWU2LmI3NTkxMDUyNWM3OTJiMzUKKyAgICAwM2JkMDk1OGRiNmVhMDQ1CisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjNmYWYzMTY4NTc5MmQxYTEuNDIzMjdkZDNkYmU5NTJlYQorICAgIGJmYzVmOGUwOTI5ZTc3YzguZWZmNjI2ZjU5YTdkZDZkZS5lM2U2OTU2N2M3NTY4NGJlLmVkMjk4NjkxOTAyMWQzYWQKKyAgICBkYTczZmYzZTYxMDc4MmU3Ljc4NzRkYjM4NWQyNzZiZGQuNDhjMWMxOWU4ZjgzNmUzZi5hMzE2YjhiM2Y3YjkyNmJjCisgICAgZTg0MDc4Nzg3M2QxYmRjMS44YzZlYjQyZDZiYzBkMDFjLmIxZDVhMWJjOGM4YmFhZTYuYjc1OTEwNTI1Yzc5MmIzNQorICAgIDAzYmQwOTU4ZGI2ZWEwNDUKK1ZQQ0xNVUxRRFFfMHgxMShtZW0pCisgIGJlZm9yZQorICAgIDY0MTAyMmIyOGZhMjNmMTguNDM3ODYxZmI2Mzg5NjQwMy4wN2IwMmVjMGUwNTNjMmM4LjdhNmUzMzJlNTlmYjczNWUKKyAgICBiNjFjZDQ0ZDk0MjRjNWQ5LjQ4NjZiNTM0Y2RiYWIzNTguYzUwNmM0ZGRkYWVkZmQwYy5mZWQ4NzI1ZTkzNWQwNzU0CisgICAgZDVhZTljMTQwN2ZkZWRiNS41MzU4NzE4ZDRlZjBlNTZkLmEyM2JmMjcwNzI5OTNkMTUuOWI1ZTVhYmFkNTQwOWY3NAorICAgIDlkOTJmN2YzMDMzYjc0ZDcuYzA5ODhmNzQ4MWI4MzdlZS43YTFkMzQ2NWM2NjMzZDBmLmFjNGRlOGFjYmIyZDdhNjkKKyAgICA4Y2YxMTdhMmUyYjJkMmUwCisgIGFmdGVyCisgICAgNjQxMDIyYjI4ZmEyM2YxOC40Mzc4NjFmYjYzODk2NDAzLjA3YjAyZWMwZTA1M2MyYzguN2E2ZTMzMmU1OWZiNzM1ZQorICAgIGI2MWNkNDRkOTQyNGM1ZDkuNDg2NmI1MzRjZGJhYjM1OC5jNTA2YzRkZGRhZWRmZDBjLmZlZDg3MjVlOTM1ZDA3NTQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDIyZDdmY2RkODI1YzNhYi44MWVlMTZmZjU0MDUzNTYwCisgICAgOWQ5MmY3ZjMwMzNiNzRkNy5jMDk4OGY3NDgxYjgzN2VlLjdhMWQzNDY1YzY2MzNkMGYuYWM0ZGU4YWNiYjJkN2E2OQorICAgIDhjZjExN2EyZTJiMmQyZTAKKworVlBDTE1VTFFEUV8weEZGKHJlZykKKyAgYmVmb3JlCisgICAgOTk5NmUzMDdlNjVhZTQ4NS5lYTkzNjBkNWE1ZWExNjZjLmViNzMwZDU0MDM5ZGU0ODYuMjk3NjA2YTlmMjU4YmEyNQorICAgIDJkODg0ODQ3NjJiMmVjMDMuOTg3ZjUzYTgwODE0OGZhMC4zMDM1ZTY5OTZmMmIyYWUyLjhiMTNlNTI2MTE4MzcwODQKKyAgICBhNjEzNDJjZWYyNDUyNTA3LjgzMjA0ZDU4NDljNzlhOWUuZWIyYTE2YWU2MmVmNDNhZC43Y2MwNGNjYTNmZjAxYjU3CisgICAgNWU4M2NlMDgzMzlmY2QzYy44NjQzYzljZjgzMGVmNDkzLjc4OWQ5YTAxNzc3NDZjOTQuZDg0OWI3N2Y5OWFjNzZjYgorICAgIDdhNzlhMjMzM2JjMjNlMGIKKyAgYWZ0ZXIKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMTNjNzIzZTI1ZWJjYzNhYi4zOTJkZjhjOTdmOTc1ZDNhCisgICAgMmQ4ODQ4NDc2MmIyZWMwMy45ODdmNTNhODA4MTQ4ZmEwLjMwMzVlNjk5NmYyYjJhZTIuOGIxM2U1MjYxMTgzNzA4NAorICAgIGE2MTM0MmNlZjI0NTI1MDcuODMyMDRkNTg0OWM3OWE5ZS5lYjJhMTZhZTYyZWY0M2FkLjdjYzA0Y2NhM2ZmMDFiNTcKKyAgICA1ZTgzY2UwODMzOWZjZDNjLjg2NDNjOWNmODMwZWY0OTMuNzg5ZDlhMDE3Nzc0NmM5NC5kODQ5Yjc3Zjk5YWM3NmNiCisgICAgN2E3OWEyMzMzYmMyM2UwYgorVlBDTE1VTFFEUV8weEZGKG1lbSkKKyAgYmVmb3JlCisgICAgNDAxZTg5ZDE0MDNlMmU0NS5iMzIzZTY2MWMxNGQxZDRmLjdmYjQ0MmZhZDNmNjU5YWEuMzNkYzZkZmU0YjQ3ZTA0MworICAgIDA1MDJlOTQ1YzQyZDA0YTIuZmY0MDg4NDUzN2RhNTRlYi40OTNmMzdjNTU0OGE4NTEwLjc4MzE4YjBmNzlmM2RjNjUKKyAgICBhNWYyM2Q3YmU0OWE3YTUxLjlmMjZiMDIwMzFkMmFjYmQuYzBiMDIxMWQyM2Q3MzNmMS5hM2U5ZjBhMTllMDQ5Y2E3CisgICAgZmJiYTAxNWZiYjkxNGQ3Yy5mMDIxNTg1ZjRjYzI2MjcxLmJmZDM3ZGVjNWJlNzIwNzguMTA1MDk4MjE1NTA2NWNiNAorICAgIDFiYjI4MGY5M2E4NjU3MzkKKyAgYWZ0ZXIKKyAgICA0MDFlODlkMTQwM2UyZTQ1LmIzMjNlNjYxYzE0ZDFkNGYuN2ZiNDQyZmFkM2Y2NTlhYS4zM2RjNmRmZTRiNDdlMDQzCisgICAgMDUwMmU5NDVjNDJkMDRhMi5mZjQwODg0NTM3ZGE1NGViLjQ5M2YzN2M1NTQ4YTg1MTAuNzgzMThiMGY3OWYzZGM2NQorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4xYzY1ODFkYTVkNDhjZGJhLmMxZTc4OGFjMWY4Yjk4YTAKKyAgICBmYmJhMDE1ZmJiOTE0ZDdjLmYwMjE1ODVmNGNjMjYyNzEuYmZkMzdkZWM1YmU3MjA3OC4xMDUwOTgyMTU1MDY1Y2I0CisgICAgMWJiMjgwZjkzYTg2NTczOQorCitWUENMTVVMUURRXzB4RkYocmVnKQorICBiZWZvcmUKKyAgICAxZjViYTI5N2VhMGZjYWUyLmU1MjZiMmRkNjYxZjM4NGYuNGM3ZDdlNmMyMzM1YjJiMi4yNDczYzgyMDE4YzgwOGQyCisgICAgN2E5NmZjNjUwMTJlZjE1YS4zZTAyY2FlMTAwNGZmOWY3LjEwODYxZGI1NTNiN2Q4MmQuY2E1ZDdkYTQ3Nzg2YTYyYQorICAgIDg3YjE4YWQxMWE2ZTA4NGUuZTExOWM3NThhNjJkNGFhMC45OTg3MzFhNTc3ZDUwZjhlLjhjNWQxODY0OTQyYmI3YWQKKyAgICBhMmY2NDY0NmQxNWI0YTY5LmFjMzkyNDJjNzNjNmU3NzUuNDFjZGI2YTgyYzFhOTQ4MC40ODNmMTY0YjhhYzVmNzg2CisgICAgZDljZmYxNDc3NTYwMjJlMgorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wOWQ3ZWE2ZjRiZTkzYmMyLjJhMjY0YmE5YzJhMmFjMDYKKyAgICA3YTk2ZmM2NTAxMmVmMTVhLjNlMDJjYWUxMDA0ZmY5ZjcuMTA4NjFkYjU1M2I3ZDgyZC5jYTVkN2RhNDc3ODZhNjJhCisgICAgODdiMThhZDExYTZlMDg0ZS5lMTE5Yzc1OGE2MmQ0YWEwLjk5ODczMWE1NzdkNTBmOGUuOGM1ZDE4NjQ5NDJiYjdhZAorICAgIGEyZjY0NjQ2ZDE1YjRhNjkuYWMzOTI0MmM3M2M2ZTc3NS40MWNkYjZhODJjMWE5NDgwLjQ4M2YxNjRiOGFjNWY3ODYKKyAgICBkOWNmZjE0Nzc1NjAyMmUyCitWUENMTVVMUURRXzB4RkYobWVtKQorICBiZWZvcmUKKyAgICAxYWQ5Mjc0NDcyMDdmM2VkLjI2YjIyZTMwYzM4MWY0NTguNzkyYzVkNGI4NDI1OGVhMy42NWE0YTkyYTBkMTJhMmFmCisgICAgZTkyODMzMmM5Y2M2MjdkMi43MTMxM2RmYjhiNmQ0MmM2LjI2YmZlZjlmZjQ1NmY5NTYuNjE1ODA0OTdiNzRhNzdjOAorICAgIDIwOGE5MWVjMTBhOTdhYmUuZGViZjZmMTNjNmFhNmY2MC44ZGJlNTQxNmRmNjZlNWI5LjkxMzVjNTViYzU0ZDRkNzcKKyAgICA5Y2M5YmU3MWU5YmRhN2RkLmM4YTdjMGU0MGZjNWI4ZDIuOGNmNTBhOWI2MjYwMGRmOC41MTg3ZThlMmQzYTc2MDY4CisgICAgZmQ5OTY3OTg3ZWU1ZWU0NgorICBhZnRlcgorICAgIDFhZDkyNzQ0NzIwN2YzZWQuMjZiMjJlMzBjMzgxZjQ1OC43OTJjNWQ0Yjg0MjU4ZWEzLjY1YTRhOTJhMGQxMmEyYWYKKyAgICBlOTI4MzMyYzljYzYyN2QyLjcxMzEzZGZiOGI2ZDQyYzYuMjZiZmVmOWZmNDU2Zjk1Ni42MTU4MDQ5N2I3NGE3N2M4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBlMDVjYWM2ZjVjNGQxZjkuNGYzMDBiNDJlZWUwY2UzYQorICAgIDljYzliZTcxZTliZGE3ZGQuYzhhN2MwZTQwZmM1YjhkMi44Y2Y1MGE5YjYyNjAwZGY4LjUxODdlOGUyZDNhNzYwNjgKKyAgICBmZDk5Njc5ODdlZTVlZTQ2CisKK1ZQQ0xNVUxRRFFfMHhGRihyZWcpCisgIGJlZm9yZQorICAgIGYxYjk0MGVhNjI5MjMxYmQuM2FiMjM1YTU0NDBkNmI1YS44ZDM3MmNkYjAzNDk1OWM3LmZkMmY4YzFhOTk1MTJmNDEKKyAgICA4OTMxNmU0MjFhM2I2NjdhLmQ0MTE3Mjc2M2NhNjgyNjEuODdiOWIwNjIzZGMyOGVlYy5iZTNhNTc3ZjlmNDMwNWJlCisgICAgMjE0ZWVkMGU0MjZhYzkyOS40OGIxZjFjZWVlOTJhODIwLjE0N2E0N2U3NWFiZDkyZWQuYTllMGU1YjY5MDQ1NGI5YgorICAgIDE1NWNiOWI4NzdhZDk1NzYuNzA2MDJlOWI3NWRmOThjMS44ZWM2ZWRkNGY1YzVhMjc1LjliZWViNGFiODk2MGJmMDUKKyAgICA3MTMwM2Y0YmE2YTIxYjI4CisgIGFmdGVyCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjBhNTkwZmIxNjU0OGMxNjEuMDVlY2E5YjIxODkwY2FiYworICAgIDg5MzE2ZTQyMWEzYjY2N2EuZDQxMTcyNzYzY2E2ODI2MS44N2I5YjA2MjNkYzI4ZWVjLmJlM2E1NzdmOWY0MzA1YmUKKyAgICAyMTRlZWQwZTQyNmFjOTI5LjQ4YjFmMWNlZWU5MmE4MjAuMTQ3YTQ3ZTc1YWJkOTJlZC5hOWUwZTViNjkwNDU0YjliCisgICAgMTU1Y2I5Yjg3N2FkOTU3Ni43MDYwMmU5Yjc1ZGY5OGMxLjhlYzZlZGQ0ZjVjNWEyNzUuOWJlZWI0YWI4OTYwYmYwNQorICAgIDcxMzAzZjRiYTZhMjFiMjgKK1ZQQ0xNVUxRRFFfMHhGRihtZW0pCisgIGJlZm9yZQorICAgIDA1NzIwMjgwMDIxNjFjMmYuYzFhN2NlYWU1NDkwMDcwYy4yOWU4YTZjOGVlOTkwZjcwLjUzZTk5Zjk3YWI2NmZhMzEKKyAgICAzNDgwNzkzOGI5Yzk3ZDQ3LjgxN2EyOTViNzY5ZTViOTcuNGYxN2Q0NDE3NGNiYzk1YS5iZDJmNTc5YjE3MmRkNWNjCisgICAgZGEyNTIxNWRlOGM2ZmM5Yi5iMTIzYzUyYjc5NjNjY2M0LmJmYjczNGYyMjQ4MTgxYWIuMjllMzEzNGNkNmE1NzBmMworICAgIGQ0MmU3NWRkYWExOTUzNTguYWRlYzllOGFmNzZiOTgzZi41Mzk1NDJjNzE5YzhmNDhlLmY0NTJjZTE2ODM1YTA3NTEKKyAgICA3OGM5ODU2NWJhZDlkNjkzCisgIGFmdGVyCisgICAgMDU3MjAyODAwMjE2MWMyZi5jMWE3Y2VhZTU0OTAwNzBjLjI5ZThhNmM4ZWU5OTBmNzAuNTNlOTlmOTdhYjY2ZmEzMQorICAgIDM0ODA3OTM4YjljOTdkNDcuODE3YTI5NWI3NjllNWI5Ny40ZjE3ZDQ0MTc0Y2JjOTVhLmJkMmY1NzliMTcyZGQ1Y2MKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMGJlYWE4NTgxNjJlNjBlNS5kYzIxNGUzY2JkMjliZTYwCisgICAgZDQyZTc1ZGRhYTE5NTM1OC5hZGVjOWU4YWY3NmI5ODNmLjUzOTU0MmM3MTljOGY0OGUuZjQ1MmNlMTY4MzVhMDc1MQorICAgIDc4Yzk4NTY1YmFkOWQ2OTMKKworVkNNUFNTXzEyOF8weDkocmVnKQorICBiZWZvcmUKKyAgICAxMjkyMzJhNTE4YWQxODY1LmZjNjhmMWEzMWNjZTNmYWEuZDEyMmIxZTQ4ZjQzZjliMy5lODdjN2FhYzZmYWFkZTMwCisgICAgMWVmOWQzNDIzOTYyMGE3Mi4yZjlkMTE5YjU5ZjI3YmJjLjc4MTFmOGE1ZGE3NjJiY2QuNWEzYTU5OGU0MzM2ZmJiYworICAgIGY5NGM2M2E5Yjc4NWU4NjcuNDk5YTUyYjE3ZTkwYzRiYi4wMDA1NzEzYTc2OTE2YzM5Ljg1OTk1YTU3YjE3NTA2NWYKKyAgICBmZGQ2ZGU0NDMxYTFlZGVmLjI2MmEyZmQxYTZiNWQ2ZDIuYzQ0OTE3MGRmZjFmZjZhMi40NTY3ZjlmNWQzNzViYzQ1CisgICAgNzY2ZWIyNTJjODQxZDk5OQorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43ODExZjhhNWRhNzYyYmNkLjVhM2E1OThlMDAwMDAwMDAKKyAgICAxZWY5ZDM0MjM5NjIwYTcyLjJmOWQxMTliNTlmMjdiYmMuNzgxMWY4YTVkYTc2MmJjZC41YTNhNTk4ZTQzMzZmYmJjCisgICAgZjk0YzYzYTliNzg1ZTg2Ny40OTlhNTJiMTdlOTBjNGJiLjAwMDU3MTNhNzY5MTZjMzkuODU5OTVhNTdiMTc1MDY1ZgorICAgIGZkZDZkZTQ0MzFhMWVkZWYuMjYyYTJmZDFhNmI1ZDZkMi5jNDQ5MTcwZGZmMWZmNmEyLjQ1NjdmOWY1ZDM3NWJjNDUKKyAgICA3NjZlYjI1MmM4NDFkOTk5CitWQ01QU1NfMTI4XzB4OShtZW0pCisgIGJlZm9yZQorICAgIGY0N2IwMjVjYWFlNjE5ODguODdlMjQwODE0MTQyNTZiNy5hMjFiMjRlN2VkNmM2ZDJlLjFmMmJlNzhiMTBhYzA2YjUKKyAgICA5YjVhNjRmZTk1NmYzNzNkLmYzYmQ4NmNhODNmNTVmNmIuOTkzN2FkZGY3MGMxNDRmYi42ZmY1ZGIyMTQ2YzVkNzFkCisgICAgNDdkNjU0MjRhNmU4ZjBlNS45ZGIzYWI4ZDk0NDU0NGI2LmU3NGI0NmE1NGJjMTE4NjQuMGZmNGYxM2EzY2Y1YTc4NworICAgIGQ0YmQ0ZWJhZjg1ZWZmYWMuZTExMGFiMzUwZmJlNDA0NS42ODI0NmMyNjk5NzdhNTk2LjVhNzQyNDQyOGVjOGIwOWUKKyAgICBhZWMxNzBhNGQ5Y2EyZTBmCisgIGFmdGVyCisgICAgZjQ3YjAyNWNhYWU2MTk4OC44N2UyNDA4MTQxNDI1NmI3LmEyMWIyNGU3ZWQ2YzZkMmUuMWYyYmU3OGIxMGFjMDZiNQorICAgIDliNWE2NGZlOTU2ZjM3M2QuZjNiZDg2Y2E4M2Y1NWY2Yi45OTM3YWRkZjcwYzE0NGZiLjZmZjVkYjIxNDZjNWQ3MWQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuOTkzN2FkZGY3MGMxNDRmYi42ZmY1ZGIyMTAwMDAwMDAwCisgICAgZDRiZDRlYmFmODVlZmZhYy5lMTEwYWIzNTBmYmU0MDQ1LjY4MjQ2YzI2OTk3N2E1OTYuNWE3NDI0NDI4ZWM4YjA5ZQorICAgIGFlYzE3MGE0ZDljYTJlMGYKKworVkNNUFNTXzEyOF8weDkocmVnKQorICBiZWZvcmUKKyAgICA2NTI3ZDFjZWI5ODg1Zjg2LjFlZDljZWFjYThkYzIyYmQuMWIyMDgyMmU5MWVkOTBjMy5mODhiOWE0Yzc3ZWZhN2JjCisgICAgZGRmMTQ0MmNjOThlN2RhZS4wMWY3NTFlNmQxNmUxMzQ1LmE3MmYyZGU0YjU1ZDcwZGQuNzM0ZjRjMDVmZjM2ZDkwMworICAgIDcwNmRjNDI4YTU2NmM1MzQuNTllMzUyNTQ5MDIxOGY2Zi5lMTg4YTZjMzE4OWIxYzNmLmI0M2JmZTNjNTA1N2Y4OTcKKyAgICA3YmU1NGQyZmVhOWU3MmM0LjAyNjk0ZGUyMDAwMDUxNjguMjU3OGViMzc1NTMxY2Y5NC45OTFhMmNkYzg0NWViZmEzCisgICAgZmRiYTUzZDNiNzU4ZWM1NAorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5hNzJmMmRlNGI1NWQ3MGRkLjczNGY0YzA1ZmZmZmZmZmYKKyAgICBkZGYxNDQyY2M5OGU3ZGFlLjAxZjc1MWU2ZDE2ZTEzNDUuYTcyZjJkZTRiNTVkNzBkZC43MzRmNGMwNWZmMzZkOTAzCisgICAgNzA2ZGM0MjhhNTY2YzUzNC41OWUzNTI1NDkwMjE4ZjZmLmUxODhhNmMzMTg5YjFjM2YuYjQzYmZlM2M1MDU3Zjg5NworICAgIDdiZTU0ZDJmZWE5ZTcyYzQuMDI2OTRkZTIwMDAwNTE2OC4yNTc4ZWIzNzU1MzFjZjk0Ljk5MWEyY2RjODQ1ZWJmYTMKKyAgICBmZGJhNTNkM2I3NThlYzU0CitWQ01QU1NfMTI4XzB4OShtZW0pCisgIGJlZm9yZQorICAgIGJjZTVlZTBjMDY1MDM5ZDUuNWJhNmRiYWQzM2MxYzIwOS5kNzU1YmU3ZDNkMTcxNzViLmNmNGNmN2FjMDhhZWM2ODkKKyAgICBiMTY4Nzk3MzhjNTI2MzUzLjZhZmM2YTBmMWQ1Y2VmYWYuYjY3MzIyMGY2NDczOWE3NS4zYjRlYzc4ZmNmOWIzZGM5CisgICAgYmEwZjcwZjU2NjZiMjVmOS4wNTMzZjdiZjQ0ZmEzNTY0LjdhOGVmMzg2OTExZjk5ZTIuYzRjYTU1NGE0Mzg2NmYwMQorICAgIGIyYTU1MDdjYWZhNjNkZjQuODk5NjdkMmI0MjI3ZDJkMi5mZTczYWZjZGRmMjdjZmNlLmM4MGU5ZjRiMDJmYTk5ZGQKKyAgICBhMjY1YTBmZGE4ODRmNzA4CisgIGFmdGVyCisgICAgYmNlNWVlMGMwNjUwMzlkNS41YmE2ZGJhZDMzYzFjMjA5LmQ3NTViZTdkM2QxNzE3NWIuY2Y0Y2Y3YWMwOGFlYzY4OQorICAgIGIxNjg3OTczOGM1MjYzNTMuNmFmYzZhMGYxZDVjZWZhZi5iNjczMjIwZjY0NzM5YTc1LjNiNGVjNzhmY2Y5YjNkYzkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYjY3MzIyMGY2NDczOWE3NS4zYjRlYzc4ZmZmZmZmZmZmCisgICAgYjJhNTUwN2NhZmE2M2RmNC44OTk2N2QyYjQyMjdkMmQyLmZlNzNhZmNkZGYyN2NmY2UuYzgwZTlmNGIwMmZhOTlkZAorICAgIGEyNjVhMGZkYTg4NGY3MDgKKworVkNNUFNTXzEyOF8weDkocmVnKQorICBiZWZvcmUKKyAgICBhZTFhNTRjYmQwYWVjNDJmLjc0Zjg5NGY1ODQwZjY1NzAuNTA3M2Y4YmViNTcwMDBhNS4yMGVlZDJkMDZhOThmNzYzCisgICAgNDc3YWI4MjMxNjA3M2VmZC5kZWQyYjg0ZDAwYjM1OTk4LmI3MTQ2NGUzMzk2MGZjOGEuYmJjYmQ2N2I0ZjdkY2VkMAorICAgIGNiZDFjNjcwMTcxODlmMWYuY2IwMDM4NmU0MDlkZDc5OS4xYWM2YmUwODY5ODQwMTJkLmFhZDYzOWJhYWFlMjBmM2YKKyAgICA5NTZiN2MxZTZlNmYyMzQwLjE2NGY5MDQ2NWZkOTk5OWYuZDVkNTAxOThlMjY2NGQzOS5jYmRiNzU3OTk2ZDQ3N2RkCisgICAgZjhhNTA5YTQyZjVlYzJkNQorICBhZnRlcgorICAgIDAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC5iNzE0NjRlMzM5NjBmYzhhLmJiY2JkNjdiMDAwMDAwMDAKKyAgICA0NzdhYjgyMzE2MDczZWZkLmRlZDJiODRkMDBiMzU5OTguYjcxNDY0ZTMzOTYwZmM4YS5iYmNiZDY3YjRmN2RjZWQwCisgICAgY2JkMWM2NzAxNzE4OWYxZi5jYjAwMzg2ZTQwOWRkNzk5LjFhYzZiZTA4Njk4NDAxMmQuYWFkNjM5YmFhYWUyMGYzZgorICAgIDk1NmI3YzFlNmU2ZjIzNDAuMTY0ZjkwNDY1ZmQ5OTk5Zi5kNWQ1MDE5OGUyNjY0ZDM5LmNiZGI3NTc5OTZkNDc3ZGQKKyAgICBmOGE1MDlhNDJmNWVjMmQ1CitWQ01QU1NfMTI4XzB4OShtZW0pCisgIGJlZm9yZQorICAgIDBmMDI2ZTI3OTI4ZGFjNTQuMDA5NGQ1OTliODk3MDgwZC45ZDg4M2RjMDdhNzQ1Y2Q1LjQ1OGQyOWZmM2Y5NDFhNWIKKyAgICBlYWJjMjFlZmRhNmNmMTg1LjZhOThjZTRlOTAxZDg4MzIuM2E3YWJhYzhhYzc5ZGI2OC5jNDNhMzJhYTFkOWFhNTNlCisgICAgNjZhMDlmZTYyNDA3NGM5NS4yZGMyNjFhNzkzOGNlMDVhLmNhZjA4MzRhMTFmNWQ0ODMuYWYyNzE4MDMxNzAyMjk4ZgorICAgIDYwN2E2M2ZhOGI2YTdhYjAuYTc1ZjhjMTE1YzcwNGIzMi4yYWI1MTQzMmM2ZjMwMTUzLjYyYTJkODc3Yzk1YmUzZmEKKyAgICAzOWY1NmQ3M2QwMmUwZjJhCisgIGFmdGVyCisgICAgMGYwMjZlMjc5MjhkYWM1NC4wMDk0ZDU5OWI4OTcwODBkLjlkODgzZGMwN2E3NDVjZDUuNDU4ZDI5ZmYzZjk0MWE1YgorICAgIGVhYmMyMWVmZGE2Y2YxODUuNmE5OGNlNGU5MDFkODgzMi4zYTdhYmFjOGFjNzlkYjY4LmM0M2EzMmFhMWQ5YWE1M2UKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuM2E3YWJhYzhhYzc5ZGI2OC5jNDNhMzJhYWZmZmZmZmZmCisgICAgNjA3YTYzZmE4YjZhN2FiMC5hNzVmOGMxMTVjNzA0YjMyLjJhYjUxNDMyYzZmMzAxNTMuNjJhMmQ4NzdjOTViZTNmYQorICAgIDM5ZjU2ZDczZDAyZTBmMmEKKworVk1BU0tNT1ZQU18xMjhfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA5MDZkZDM2MWM4MDllOWNjLmIyMTVlOTE1MmNhMjM2MDEuMzJiYjRhZjk4ODU2MDc2Ni4zNDk3ZWE2Y2U3N2YxZTAzCisgICAgYzM1NjA2YWY0Yjc3YWM4Yi4zOTNmYWQyNTIyYmEzZGI1LjJjMjI5N2NhYjJjOTRlYTEuYzU2MDgwZTQ4ZWE1ZTljMAorICAgIDJlZmIwM2M4ZjgwNDk1MTQuZDJjMjJjMTU4YWJmNGNmOC5lZmUwNmZlZjc3NTU1YzkwLmJhZGQ1Mjg2ZGE3MjFjYjYKKyAgICAyY2FhYzQxODY5M2RlMDEzLjU3NmNlMWQxN2ZiYjFjZjUuZDk0MWNmZDY3Mjg3NmZkZS5lZGQ5ZGMzZmU1ZjE3NDEwCisgICAgM2IyMjlhZjljYjJmYWNmYgorICBhZnRlcgorICAgIDkwNmRkMzYxYzgwOWU5Y2MuYjIxNWU5MTUyY2EyMzYwMS4zMmJiNGFmOTg4NTYwNzY2LjM0OTdlYTZjZTc3ZjFlMDMKKyAgICBjMzU2MDZhZjRiNzdhYzhiLjM5M2ZhZDI1MjJiYTNkYjUuMmMyMjk3Y2FiMmM5NGVhMS5jNTYwODBlNDhlYTVlOWMwCisgICAgMmVmYjAzYzhmODA0OTUxNC5kMmMyMmMxNThhYmY0Y2Y4LmVmZTA2ZmVmNzc1NTVjOTAuYmFkZDUyODZkYTcyMWNiNgorICAgIDJjYWFjNDE4NjkzZGUwMTMuNTc2Y2UxZDE3ZmJiMWNmNS5kOTQxY2ZkNjcyODc2ZmRlLmVkZDlkYzNmZTVmMTc0MTAKKyAgICAzYjIyOWFmOWNiMmZhY2ZiCitWTUFTS01PVlBTXzEyOF9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDgwODMwOWEyYTkzNzgyYTIuMWJhZDQ3MGIzYWFkYzkzMy5hNTA3NDg0NTFkYmQ2Y2Q4LjQ0OTBiMmVhM2ZlYWMxMzgKKyAgICA5OWM3YTQyNDlhMTViMDMyLjU2NTI4NzBkMDhlMThiMjAuOTg2MGRkNWQ4MWNlZjZjZi44ZDFiMTQ5NzdjMGE4ZjQ5CisgICAgNjBiYmU3NmRiYmQ1ZjNkNy4zOWUzODE4YTZlNjQ2Mzg4LjBkNDIxZDA1YzdmYzc3MDMuMTEyY2YxNDljMjc0MTRiZQorICAgIGIyMmI0ZTY4Mjc4NDA2YmMuMjBhZDJmZWUwOWMyOGQxNS5kZTdiODIyYTBhNTJhYWEzLjJhMTA0NjZjYWZiMzhlNDMKKyAgICAzNTEzMGQ2ZGRlNTMzNzgzCisgIGFmdGVyCisgICAgODA4MzA5YTJhOTM3ODJhMi4xYmFkNDcwYjNhYWRjOTMzLmE1MDc0ODQ1MWRiZDZjZDguNDQ5MGIyZWEzZmVhYzEzOAorICAgIDk5YzdhNDI0OWExNWIwMzIuNTY1Mjg3MGQwOGUxOGIyMC45ODYwZGQ1ZDgxY2VmNmNmLjhkMWIxNDk3N2MwYThmNDkKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTUwNzQ4NDUxZGJkNmNkOC40NDkwYjJlYTAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDM1MTMwZDZkZGU1MzM3ODMKKworVk1BU0tNT1ZQU18xMjhfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA4ZTgwNDRiNmVjZTE0YzJiLjZiZTM1NjAxZmIyZWE2MGUuNjZmYjhmYTU3NDg3NDQ3My5lOGQ1OGFiNjY2ZGQ0ZGQ5CisgICAgOTJhNWU3YjQ3NWU4MDhlNi42N2FmNzkyNDUyZGQ4ZmY4LjY5MWI5YzFjNGM0MGM1NGYuMDcxZWIwOTdmOGE4MWFkMQorICAgIDliY2NmMGQ0MTRmNGE4NjEuODI1YTM1YmQ0OTlmN2RhNy44NDU4NTNiZDJjNzg0YzU1LjE3MjA3MWI3ZGNiZmNlYjkKKyAgICAwNjQzNWQ4MTY1OTI2ODQ4Ljk4YjIwNmI5ZmI3ZjJiNDcuMTJmZGFlZjZiMGJjMTQzMC5mNGE4NDcwNDJjMmYyNGJhCisgICAgN2E4MmIwNjkwNzAzZDkwMworICBhZnRlcgorICAgIDhlODA0NGI2ZWNlMTRjMmIuNmJlMzU2MDFmYjJlYTYwZS42NmZiOGZhNTc0ODc0NDczLmU4ZDU4YWI2NjZkZDRkZDkKKyAgICA5MmE1ZTdiNDc1ZTgwOGU2LjY3YWY3OTI0NTJkZDhmZjguNjkxYjljMWM0YzQwYzU0Zi4wNzFlYjA5N2Y4YTgxYWQxCisgICAgOWJjY2YwZDQxNGY0YTg2MS44MjVhMzViZDQ5OWY3ZGE3Ljg0NTg1M2JkMmM3ODRjNTUuMTcyMDcxYjdkY2JmY2ViOQorICAgIDA2NDM1ZDgxNjU5MjY4NDguOThiMjA2YjlmYjdmMmI0Ny4xMmZkYWVmNmIwYmMxNDMwLmY0YTg0NzA0MmMyZjI0YmEKKyAgICA3YTgyYjA2OTA3MDNkOTAzCitWTUFTS01PVlBTXzEyOF9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDg1NzkyN2QyODY0N2E5YmUuMmY1NDI4MjYwNTRkODQ0Ni44NTgxNjYwMjg0OGE1NjAzLjcxNTdhYjMyNzU5NzViOGQKKyAgICBmMTViMjgyYmM4MDg1MDE3LjcyNGM0ZjMxOGZiMTM3MDguMjU5NGQzODUwMWNiYmEwOC5mYmIyNDVkYzE3OTU1YjE4CisgICAgOWFmMjMwNjBlNjUwODkzYi4yYjc2Y2UwZGEwNGJiZTM5LjU0YjdjNzJmOGU0ZTEzODEuMGU1YTc4NjIzMTQzNTA3YworICAgIDViMGJiOTVkZmYyZTExNTYuYjYyMDlmMjZkM2E2NTU4Ni5lZWI2YzBlYjQ2MjAxYzliLjA0OWI0MDJmNWYyYzc4NjYKKyAgICAzYmMwOWFhZjNlZGMwZDgxCisgIGFmdGVyCisgICAgODU3OTI3ZDI4NjQ3YTliZS4yZjU0MjgyNjA1NGQ4NDQ2Ljg1ODE2NjAyODQ4YTU2MDMuNzE1N2FiMzI3NTk3NWI4ZAorICAgIGYxNWIyODJiYzgwODUwMTcuNzI0YzRmMzE4ZmIxMzcwOC4yNTk0ZDM4NTAxY2JiYTA4LmZiYjI0NWRjMTc5NTViMTgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43MTU3YWIzMjAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDNiYzA5YWFmM2VkYzBkODEKKworVk1BU0tNT1ZQU18xMjhfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICAwZDE3ODE0ZjZhZTA0YzdhLjEyNzI0MTBlMmNhYmE0OTQuNmY5NGMwZThjNTRmMzc5Yi5jZTVjM2FhNDQ1NGM5MjgyCisgICAgZDhlYWYxNzk3ZWMzNzBmYy45YWYzNDM2MDhiZDVmZTIwLmIyMjAyY2MwMTFkMGEyMjMuZDI3N2FmNDhhOGRlMzA2MQorICAgIGY2ODZlNjlhMTYxMWI3YjQuY2Y1YTNjM2QzOGI4ZGEyNi5kYjBlZGYxODUzYjhkMGNiLmQ1ZDE5ZGMyOGFlM2I0NjUKKyAgICBjNDM3NWMxZmNmNTc1YjRlLjhkNzNhNjkzNGU1ZmY1ZDMuNDVhYmQ1NWQyODkwZmQzZS5iMzM3N2ZmZTA4NjZkOGI5CisgICAgNDg3NWQxZTgzZDczNTk4YQorICBhZnRlcgorICAgIDBkMTc4MTRmNmFlMDRjN2EuMTI3MjQxMGUyY2FiYTQ5NC42Zjk0YzBlOGM1NGYzNzliLmNlNWMzYWE0NDU0YzkyODIKKyAgICBkOGVhZjE3OTdlYzM3MGZjLjlhZjM0MzYwOGJkNWZlMjAuYjIyMDJjYzAxMWQwYTIyMy5kMjc3YWY0OGE4ZGUzMDYxCisgICAgZjY4NmU2OWExNjExYjdiNC5jZjVhM2MzZDM4YjhkYTI2LmRiMGVkZjE4NTNiOGQwY2IuZDVkMTlkYzI4YWUzYjQ2NQorICAgIGM0Mzc1YzFmY2Y1NzViNGUuOGQ3M2E2OTM0ZTVmZjVkMy40NWFiZDU1ZDI4OTBmZDNlLmIzMzc3ZmZlMDg2NmQ4YjkKKyAgICA0ODc1ZDFlODNkNzM1OThhCitWTUFTS01PVlBTXzEyOF9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDZmNTcwZjZjNDYxN2YyMDQuOWY0ODUwNzI0NDIwOTk3NS5hZjA5ZmY0Y2VhZDYwYjUzLjRlNDMwYmZjMmNlNjY3MjkKKyAgICAwNmE5YjY3NzNlNWQ2MTUyLmUxMDdiZDAxMTJmOGFjZDYuMTNlOWMyNTYyNzI5ZDdkMS41MTIxN2M1ZmZhNDU0ODM4CisgICAgZTczNjQxZjM0MjUxNjBhMC5lN2JmOWYzNmQ0NmNkMTFjLjk0ZGY2YjljMjE2NTE2N2EuYWE5MzI0ZjQyZTNhZGQxNgorICAgIGYwY2MyY2NkNmQwMGFiMWMuMGRiYmYyN2YyNzA3NDRmNC4wZGI3NzYwYWY1OTU4NDdhLmI1ZTNmZjI2NjU0ZjYxNzAKKyAgICBjZDVmMDk2MTNiMTMxMWYxCisgIGFmdGVyCisgICAgNmY1NzBmNmM0NjE3ZjIwNC45ZjQ4NTA3MjQ0MjA5OTc1LmFmMDlmZjRjZWFkNjBiNTMuNGU0MzBiZmMyY2U2NjcyOQorICAgIDA2YTliNjc3M2U1ZDYxNTIuZTEwN2JkMDExMmY4YWNkNi4xM2U5YzI1NjI3MjlkN2QxLjUxMjE3YzVmZmE0NTQ4MzgKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDJjZTY2NzI5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGNkNWYwOTYxM2IxMzExZjEKKworVk1BU0tNT1ZQU18yNTZfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA1MDUxM2YxMTRiMGYyOTQ2LmZjMzVmM2YyZGM3NTAwZjAuYjA0OGIzNDdhNjU1NDEwYS41YzNkNjA4Y2JmYzVkZGZjCisgICAgOTkwNTljYTIzMWQxZTUxYS5lNjNlMTI0ZGFhYmQxOTQ4LjJhYjJkZGZhZWRlMzAzMDkuNWIzZGE0MGU5OTAyZGMyYworICAgIDAzYzkxYzgwOGFlNDgxMWEuOGNiMzA2YzlmNGUyYjM1MS5kODQ1NmMwNDk5M2NjNzllLmU4ODJiZTdjYTI1NzNlMzgKKyAgICBlY2U4YmIxN2YxZDUzOGYyLmM4NjA0YTU0ZDVmMzg5MzcuMTY0YzVjZDI0NmVjYzk3NS5kZGRhMmFjMmY0ZDBiZjRhCisgICAgMTgwZjY1Y2RhYjdhMWE4ZQorICBhZnRlcgorICAgIDUwNTEzZjExNGIwZjI5NDYuZmMzNWYzZjJkYzc1MDBmMC5iMDQ4YjM0N2E2NTU0MTBhLjVjM2Q2MDhjYmZjNWRkZmMKKyAgICA5OTA1OWNhMjMxZDFlNTFhLmU2M2UxMjRkYWFiZDE5NDguMmFiMmRkZmFlZGUzMDMwOS41YjNkYTQwZTk5MDJkYzJjCisgICAgMDNjOTFjODA4YWU0ODExYS44Y2IzMDZjOWY0ZTJiMzUxLmQ4NDU2YzA0OTkzY2M3OWUuZTg4MmJlN2NhMjU3M2UzOAorICAgIGVjZThiYjE3ZjFkNTM4ZjIuYzg2MDRhNTRkNWYzODkzNy4xNjRjNWNkMjQ2ZWNjOTc1LmRkZGEyYWMyZjRkMGJmNGEKKyAgICAxODBmNjVjZGFiN2ExYThlCitWTUFTS01PVlBTXzI1Nl9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDczZWVlOTg3ZTQ2MDBjMzEuYWVhZDc2ZDMwMzJmNDc0ZC43NzEwNWFkOTY5Zjk1OTI1LjQwMTVhOWNlOGY4MDQ0MzkKKyAgICBjYjQzMzRkZWJhOGY1MTVmLmE3NjY0NzIxNWI3ZWU5ZDguNzY5MWIyNDRjZDAyZGQ0OC5iMmVhNTA2NTExODM3Njk2CisgICAgZmRkOWMxYmM0YTEyYTU0My4zMTVkMmM2Yjk2NGY1YjNmLjlmYWRjZjgxMWQxOWQxY2IuYzgxODRjMDQ2NzgxOTkzOQorICAgIGUzN2UwZDBmYWZmNWMzMGEuYWFkZjIxMWY0ZjJkZDkyZC5kMDMxMmM3ZDc0NGFmM2RiLmRlZWM5OTE1MmQwN2U5Y2UKKyAgICA1MGFmMzMwNjAwYTBhNDAwCisgIGFmdGVyCisgICAgNzNlZWU5ODdlNDYwMGMzMS5hZWFkNzZkMzAzMmY0NzRkLjc3MTA1YWQ5NjlmOTU5MjUuNDAxNWE5Y2U4ZjgwNDQzOQorICAgIGNiNDMzNGRlYmE4ZjUxNWYuYTc2NjQ3MjE1YjdlZTlkOC43NjkxYjI0NGNkMDJkZDQ4LmIyZWE1MDY1MTE4Mzc2OTYKKyAgICA3M2VlZTk4N2U0NjAwYzMxLmFlYWQ3NmQzMDAwMDAwMDAuMDAwMDAwMDA2OWY5NTkyNS40MDE1YTljZTAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDUwYWYzMzA2MDBhMGE0MDAKKworVk1BU0tNT1ZQU18yNTZfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA3YWIwMTc0MjdiZDkwNDdjLjVhZmM5MmMyMDU0NDY4ZGYuNmMzNzIwYTgyM2E0OWY0ZS5lM2U5NDUyMmVlYTJmZGE0CisgICAgYjgzYTNmMzUzYjNkNDVlZS4zZjIxY2VjMTY5MGM1MGVmLmQ1YjMyNzcxYWQ0MGU5NTAuYjVhMTk2NWRhODJjYWM1MQorICAgIDY2OThhOTRhZGI1OGE1MDEuNmNiNzNjZjhmNzU4MzY2Ni4zZjllMzFlODg5OGVmMmRkLjIyMjU5YjFiYmRmNWJiMGYKKyAgICBkZjE3NTFmMGY4YjY1ZTYyLmJlOGI1OTUzY2EzNWQ3NmYuMDc0MzNhNzg1NDFhZjdhMS4wNzQwZDE0NjRhMDhlODBhCisgICAgM2ViZmIzY2M2YTcxZWQ2ZAorICBhZnRlcgorICAgIDdhYjAxNzQyN2JkOTA0N2MuNWFmYzkyYzIwNTQ0NjhkZi42YzM3MjBhODIzYTQ5ZjRlLmUzZTk0NTIyZWVhMmZkYTQKKyAgICBiODNhM2YzNTNiM2Q0NWVlLjNmMjFjZWMxNjkwYzUwZWYuZDViMzI3NzFhZDQwZTk1MC5iNWExOTY1ZGE4MmNhYzUxCisgICAgNjY5OGE5NGFkYjU4YTUwMS42Y2I3M2NmOGY3NTgzNjY2LjNmOWUzMWU4ODk4ZWYyZGQuMjIyNTliMWJiZGY1YmIwZgorICAgIGRmMTc1MWYwZjhiNjVlNjIuYmU4YjU5NTNjYTM1ZDc2Zi4wNzQzM2E3ODU0MWFmN2ExLjA3NDBkMTQ2NGEwOGU4MGEKKyAgICAzZWJmYjNjYzZhNzFlZDZkCitWTUFTS01PVlBTXzI1Nl9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIGE0NmZiZDk4M2EzZDg3NjQuODEwMzMxOTAyZGU0YWRiYy4xMTY4OWZiZWZmYWVlZjM3Ljg5ZWYzZThkYWE2ZTMzNDkKKyAgICAxNTFhNmI5NmQ1NzY3MTFjLmE3YTg0Nzk3MTc2ZGNlYmMuNDExYzhjMjZiMGNmM2FlYS4yMmVlMzk5NDI2MThlNDgxCisgICAgNmQ4ZDNhYjI1ODJiNjhjMS5hZDUyOGQ3MTUxZGVmYzBlLjJhNzE5Yjc1ZmNhNTczYjMuMmM4YzI4Zjc2NGE0NDRmNAorICAgIDg4OTNhNGQ4ZGU2NTI4N2YuZWU0ZDAxOGI3OGMyNzQ1ZC5hODM1NDg5OWZkM2E1N2JlLjA0MTUwNjIzMDE5ZDhmNGYKKyAgICAwNmQ0Y2Y4NTk5OGYwMzNkCisgIGFmdGVyCisgICAgYTQ2ZmJkOTgzYTNkODc2NC44MTAzMzE5MDJkZTRhZGJjLjExNjg5ZmJlZmZhZWVmMzcuODllZjNlOGRhYTZlMzM0OQorICAgIDE1MWE2Yjk2ZDU3NjcxMWMuYTdhODQ3OTcxNzZkY2ViYy40MTFjOGMyNmIwY2YzYWVhLjIyZWUzOTk0MjYxOGU0ODEKKyAgICAwMDAwMDAwMDNhM2Q4NzY0LjgxMDMzMTkwMDAwMDAwMDAuMDAwMDAwMDBmZmFlZWYzNy4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDA2ZDRjZjg1OTk4ZjAzM2QKKworVk1BU0tNT1ZQU18yNTZfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA4ZTE3ODA4N2M3MDZkYTZiLjQyZmEyN2Y0ODQzMjZkODEuYzhlNDlmNGYyN2E1NzI1Ni45NzMyMGY3Y2NmOWRhMjM4CisgICAgZjkyODEzOTcyNzhmNTE4NS43NzhjM2VmMjY1OWRmMmYzLjk2NjU2MTJiZmIxMzMyYTQuZDMzNTZkMGM4ZmQ3MTA0ZAorICAgIGExNTQ4NjIwNTZiNWE0MzYuMDMxNzY2YmY5ZGIzNzQwMi5iMzFhNDU4OThmOTllZmY0LjM4MGFkYzM0NThmNjVjMjgKKyAgICBlM2U3ZDQ4ZWVmMDQwZTJiLmMyNjUxOTQ1NDk3ZmFmZGEuN2Q1MDQ2ZDc3ZmMzZTZmMS5hMjdjZGFlMDQ3MDY0M2Y2CisgICAgZWQ1OWUzZmM3NzExODBlMworICBhZnRlcgorICAgIDhlMTc4MDg3YzcwNmRhNmIuNDJmYTI3ZjQ4NDMyNmQ4MS5jOGU0OWY0ZjI3YTU3MjU2Ljk3MzIwZjdjY2Y5ZGEyMzgKKyAgICBmOTI4MTM5NzI3OGY1MTg1Ljc3OGMzZWYyNjU5ZGYyZjMuOTY2NTYxMmJmYjEzMzJhNC5kMzM1NmQwYzhmZDcxMDRkCisgICAgYTE1NDg2MjA1NmI1YTQzNi4wMzE3NjZiZjlkYjM3NDAyLmIzMWE0NTg5OGY5OWVmZjQuMzgwYWRjMzQ1OGY2NWMyOAorICAgIGUzZTdkNDhlZWYwNDBlMmIuYzI2NTE5NDU0OTdmYWZkYS43ZDUwNDZkNzdmYzNlNmYxLmEyN2NkYWUwNDcwNjQzZjYKKyAgICBlZDU5ZTNmYzc3MTE4MGUzCitWTUFTS01PVlBTXzI1Nl9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIGY1NmI3MTc0MDUyNWQxMWEuMWIyZGY5NGM4ZjA5Y2MwZi45MDQzZDU3MTg1MGQ1ZmE3LjRlNTM2MDgwNjgxYjUzNDgKKyAgICA5NjdmMDIzNDBjNGRmMGM4LmE1NzFmMmM5ZDE0ZjFhOGYuNDk3YzE1MzA2YzZhM2Y5My44NDZlOGZmMGU2MmY3MWE1CisgICAgYWM2MTExMjhhOTk2OWExOC5kZDAxYjk2ZTUyNjMzMzU3LmM5ZGU1NjZkMWFhMTBjY2QuNzllZmQwOTM5NDhhN2RiMworICAgIDEzZGQxYTNkZjcwYjhhMzcuMWYyNzRjYThhZGNmNTQxMi5lYjMzMTIxNGFjYmU4MTdmLjhiMjAxZWQ1MGViOWIzMWYKKyAgICAxNDRmNzUyM2YxNDc0Zjk1CisgIGFmdGVyCisgICAgZjU2YjcxNzQwNTI1ZDExYS4xYjJkZjk0YzhmMDljYzBmLjkwNDNkNTcxODUwZDVmYTcuNGU1MzYwODA2ODFiNTM0OAorICAgIDk2N2YwMjM0MGM0ZGYwYzguYTU3MWYyYzlkMTRmMWE4Zi40OTdjMTUzMDZjNmEzZjkzLjg0NmU4ZmYwZTYyZjcxYTUKKyAgICBmNTZiNzE3NDAwMDAwMDAwLjFiMmRmOTRjOGYwOWNjMGYuMDAwMDAwMDAwMDAwMDAwMC40ZTUzNjA4MDY4MWI1MzQ4CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDE0NGY3NTIzZjE0NzRmOTUKKworVk1BU0tNT1ZQRF8xMjhfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA3MWM2ZDFlN2Q4YzA4Y2MwLmE2YmY5OTVkMTNiODdlNTEuYzYzMGE2ZTM3ZTIxYjk2ZC44ZDQ5YzcxMTNlY2U1Y2Q2CisgICAgZmZkMTJlOGU2MGIxYTc0Yy40M2QzMGE3NjE4YWEyZjkxLjMwNjhjNDhjNjJlNTllMTMuOGFlYWYwNTBlYWRjNTdmZAorICAgIDE4YmU4OTg1MjRhNWRjZTcuYzVlNGVhNzIyMmVjNWMyNC5iODFiYTAwZGY1YTYzZWIxLmJlZTMwOWJkY2ZmNDJmMjEKKyAgICAxOWQ4ZGQzN2MxMjg2NjNhLjA3YmZiNDNmNGU4YmMwMzUuYmE5NTM4ZDRkMmYwZDdmMy4wNDAwOGU0NDA2MjM5ZjZlCisgICAgM2EwY2ZjZDFhZTc0NjUwZgorICBhZnRlcgorICAgIDcxYzZkMWU3ZDhjMDhjYzAuYTZiZjk5NWQxM2I4N2U1MS5jNjMwYTZlMzdlMjFiOTZkLjhkNDljNzExM2VjZTVjZDYKKyAgICBmZmQxMmU4ZTYwYjFhNzRjLjQzZDMwYTc2MThhYTJmOTEuMzA2OGM0OGM2MmU1OWUxMy44YWVhZjA1MGVhZGM1N2ZkCisgICAgMThiZTg5ODUyNGE1ZGNlNy5jNWU0ZWE3MjIyZWM1YzI0LmI4MWJhMDBkZjVhNjNlYjEuYmVlMzA5YmRjZmY0MmYyMQorICAgIDE5ZDhkZDM3YzEyODY2M2EuMDdiZmI0M2Y0ZThiYzAzNS5iYTk1MzhkNGQyZjBkN2YzLjA0MDA4ZTQ0MDYyMzlmNmUKKyAgICAzYTBjZmNkMWFlNzQ2NTBmCitWTUFTS01PVlBEXzEyOF9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDNhZDVjZTUxZTBmNDNiMzEuNWY2YTI2MGZkMmM3ODJmNC5lNzMwZTRjOGI4OTExNmYxLjkyMjE4NzRiOTU0ZmEyODQKKyAgICBlMjI1ODBhZWJiYWRkZGZmLjQ0YzI2MDdiZjQwZDZjYmYuNDAwM2Y3Zjk3YjBjMWI4My45YjBkODllMGRiNTBkZTEwCisgICAgMGRjYThlZDY1OGFkMDlhNi4yNTJhODhlNmMyODY2MDQ4LmVkMDQ2N2JlYjMwODhhMTguMzNhMzNiZmU0MDdlYzU0NQorICAgIDk2OGU3NGIzZDUwMDc5NTEuNWVlZjk5YmNkOWJmOTkzYS5jY2ZmYjIwMzdkOTAyMGRjLmI1MzA5ODExNWY2Njk0Y2QKKyAgICA3YzAwOWI4NWQ0OTM4NzU0CisgIGFmdGVyCisgICAgM2FkNWNlNTFlMGY0M2IzMS41ZjZhMjYwZmQyYzc4MmY0LmU3MzBlNGM4Yjg5MTE2ZjEuOTIyMTg3NGI5NTRmYTI4NAorICAgIGUyMjU4MGFlYmJhZGRkZmYuNDRjMjYwN2JmNDBkNmNiZi40MDAzZjdmOTdiMGMxYjgzLjliMGQ4OWUwZGI1MGRlMTAKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC45MjIxODc0Yjk1NGZhMjg0CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDdjMDA5Yjg1ZDQ5Mzg3NTQKKworVk1BU0tNT1ZQRF8xMjhfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICBlNjVlNDJjNjNjOTFkOTg3LjViM2VhZjMzNGViMWVhMmQuNGI1ZDhmNjlkNDQzNTQ0Mi5iN2JmNTNiNGY0YjA5OWZhCisgICAgNGU5ODg5NDAzMmVkYzcxMi4zNmE1YmE0MWRlY2MxNzY2LjQ4YmY2NjU5NGY5ZmNkMGIuOGMxMmM3YmQzNTc0YjE5ZgorICAgIDBmZjk2YTYwNTMzMjhkYTAuMDQ5MTExYzlhMTVkYmUyNy5iMTYzMWFmOWU3NWQ0MDQyLjI1YzI4ODBiNWNlOTI0ZjcKKyAgICA4N2NjZTM5MDNhZWM2N2RlLmEyY2MzMGI3YjQ3MTk5OWQuZTI5M2E4YjMzODBiZTg5My42MDljMTQ4ODgzMWFhZDJkCisgICAgMTc2Y2U2MjJjODEzMDk2ZQorICBhZnRlcgorICAgIGU2NWU0MmM2M2M5MWQ5ODcuNWIzZWFmMzM0ZWIxZWEyZC40YjVkOGY2OWQ0NDM1NDQyLmI3YmY1M2I0ZjRiMDk5ZmEKKyAgICA0ZTk4ODk0MDMyZWRjNzEyLjM2YTViYTQxZGVjYzE3NjYuNDhiZjY2NTk0ZjlmY2QwYi44YzEyYzdiZDM1NzRiMTlmCisgICAgMGZmOTZhNjA1MzMyOGRhMC4wNDkxMTFjOWExNWRiZTI3LmIxNjMxYWY5ZTc1ZDQwNDIuMjVjMjg4MGI1Y2U5MjRmNworICAgIDg3Y2NlMzkwM2FlYzY3ZGUuYTJjYzMwYjdiNDcxOTk5ZC5lMjkzYThiMzM4MGJlODkzLjYwOWMxNDg4ODMxYWFkMmQKKyAgICAxNzZjZTYyMmM4MTMwOTZlCitWTUFTS01PVlBEXzEyOF9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDI3ZmQ3YWM0NDdlMWYzZTUuMTA1ZWVmM2U4NGE4OTA3OC5lYTI0OTRmNzMzMTM2NGY0LjM3OWMwYmY1ZGQzNTAyYTkKKyAgICA2ZDFkNGM1OTFiOGYyOGJmLjA4ZmI4YWQ0Y2NmMDQ1MTkuYmE2M2I3NzUzOTUwZGQ1Ny4wY2NhM2YyOTcyNjZjOTMxCisgICAgYzM5NmQ5Y2Y2MTJhNjUyNy5jOWVmYjFjMGFmNTNjMjZkLmVjNTYxNzFkZTIzMmJlZjIuYmQ2OTQwYmQ5NDJhN2JkNgorICAgIDA2MzY5YzExMzRiZDYzNGEuYjA4NTVlNmRjODVhNDIyMi41ZGM4MzBkYzRiYzhjNGYzLmE2YzUwYjFjZGYwZDUyNDUKKyAgICAyMzI5OWJiMWVkOWM4YjI5CisgIGFmdGVyCisgICAgMjdmZDdhYzQ0N2UxZjNlNS4xMDVlZWYzZTg0YTg5MDc4LmVhMjQ5NGY3MzMxMzY0ZjQuMzc5YzBiZjVkZDM1MDJhOQorICAgIDZkMWQ0YzU5MWI4ZjI4YmYuMDhmYjhhZDRjY2YwNDUxOS5iYTYzYjc3NTM5NTBkZDU3LjBjY2EzZjI5NzI2NmM5MzEKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuZWEyNDk0ZjczMzEzNjRmNC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDIzMjk5YmIxZWQ5YzhiMjkKKworVk1BU0tNT1ZQRF8xMjhfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA5MGUzZWNlYTVkNjI2MTMwLjEyYzcxMTBiYjE1NGUxNTQuMWEwYjhmNDdiMzkzMDJlMi5lOTg3N2M5YzhmMWJhYTgzCisgICAgNDkzZGZhMzJjOWVjMTEwMy5jNDE2YjRhOWYzZmM5OTcwLjYxY2IzZmJhMGQ4YTNlNTkuNmQ1ZTc5NGJjYjM5MmVkMQorICAgIGE5ODRjMWY2Y2RjNGQ3NTEuZjZlZTAxZDgxNmJmNDhjYi5lMjEyNmEzMjcyYzkzMjM0LmMzMThhMmQ0MWIyZDBhMDcKKyAgICAwZTA0M2VhMDA2NzllZmM0Ljg1MWQ3NTgyMzdhY2E5OTAuZmEyYzBkMWI3ZGRlMTkxZi5jODgyNzMyMjk5MDRmYjUxCisgICAgNTg2ODY4MjM2M2M5YmNkZAorICBhZnRlcgorICAgIDkwZTNlY2VhNWQ2MjYxMzAuMTJjNzExMGJiMTU0ZTE1NC4xYTBiOGY0N2IzOTMwMmUyLmU5ODc3YzljOGYxYmFhODMKKyAgICA0OTNkZmEzMmM5ZWMxMTAzLmM0MTZiNGE5ZjNmYzk5NzAuNjFjYjNmYmEwZDhhM2U1OS42ZDVlNzk0YmNiMzkyZWQxCisgICAgYTk4NGMxZjZjZGM0ZDc1MS5mNmVlMDFkODE2YmY0OGNiLmUyMTI2YTMyNzJjOTMyMzQuYzMxOGEyZDQxYjJkMGEwNworICAgIDBlMDQzZWEwMDY3OWVmYzQuODUxZDc1ODIzN2FjYTk5MC5mYTJjMGQxYjdkZGUxOTFmLmM4ODI3MzIyOTkwNGZiNTEKKyAgICA1ODY4NjgyMzYzYzliY2RkCitWTUFTS01PVlBEXzEyOF9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDRmOTZmZGMyOTU4ODBhZDQuZDMwOTZjOWQwZjk0OTQwOC40ZDZkOGI5NDcyY2M3YWVjLjAzNjUyM2UxY2E1NTMwYzUKKyAgICA4OWQ4YWZlYjRhNGRhMTY1LjU0ZGY0NzU5ODRhMzA0Y2EuMmFhY2JmZmJlMjJkNzUwYi41YTA5YThmMWY2YjhiM2QzCisgICAgZTJmOWY5OGE5ZjI1M2RiYS5lY2QxY2I0MTAzMzE3OGI2LmY4YTQ4ZGExYTNkYTU3MTguNWI2Mzk4YjU5ZDk1ZGVmNAorICAgIDM2Yzc1NzhjYWYxYzk5ZmYuZjkyY2Y0YzAyNWNiMmY3Ny45MzIyNzI3NGQyZTBkYjQwLjYyYzFlZjliNTk3OGVjZDUKKyAgICBjYjZkYWEwZGM5ZWMxYTIyCisgIGFmdGVyCisgICAgNGY5NmZkYzI5NTg4MGFkNC5kMzA5NmM5ZDBmOTQ5NDA4LjRkNmQ4Yjk0NzJjYzdhZWMuMDM2NTIzZTFjYTU1MzBjNQorICAgIDg5ZDhhZmViNGE0ZGExNjUuNTRkZjQ3NTk4NGEzMDRjYS4yYWFjYmZmYmUyMmQ3NTBiLjVhMDlhOGYxZjZiOGIzZDMKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIGNiNmRhYTBkYzllYzFhMjIKKworVk1BU0tNT1ZQRF8yNTZfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICBmMmI0YzQ3OTg3N2RhMzg2LjYxMGM0NmRiOTczYzcyNjIuZDUzZGJmNDE4OGZjNjNiYS5kN2YyZTk1ZjhhNGFiZWFlCisgICAgMzNlMjM5NGEyZmI3YzVhZS4zZjk1NDA2NTcyOTM4NDBjLmRlNGUyNzMyYzg1MDUxMmIuYTBkZjZlNGVlODI0YmM4ZgorICAgIGViNDMwNWVjNWUyN2JhNDUuYWMyZWMzMTQ1YzJjOGIyYy42ZmFiMjhmZTgwNTQzNTc1LmNhYjc3ZDJkMDc3YjkxMGYKKyAgICA3MzIzMjRjYmFmNThiZWY4Ljg0YTM0YWQ2NzIxNDQyZWMuZTNhMmJlMTE0YzkyNGE0NS4zMTQ0OTJlODA0NWFmODU5CisgICAgYjE1MzJhNmJmYWNkYWU5YQorICBhZnRlcgorICAgIGYyYjRjNDc5ODc3ZGEzODYuNjEwYzQ2ZGI5NzNjNzI2Mi5kNTNkYmY0MTg4ZmM2M2JhLmQ3ZjJlOTVmOGE0YWJlYWUKKyAgICAzM2UyMzk0YTJmYjdjNWFlLjNmOTU0MDY1NzI5Mzg0MGMuZGU0ZTI3MzJjODUwNTEyYi5hMGRmNmU0ZWU4MjRiYzhmCisgICAgZWI0MzA1ZWM1ZTI3YmE0NS5hYzJlYzMxNDVjMmM4YjJjLjZmYWIyOGZlODA1NDM1NzUuY2FiNzdkMmQwNzdiOTEwZgorICAgIDczMjMyNGNiYWY1OGJlZjguODRhMzRhZDY3MjE0NDJlYy5lM2EyYmUxMTRjOTI0YTQ1LjMxNDQ5MmU4MDQ1YWY4NTkKKyAgICBiMTUzMmE2YmZhY2RhZTlhCitWTUFTS01PVlBEXzI1Nl9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDI1YjBjMGEyMDZlMTZmZmQuMmFjZDkzNTNiZWQ2MGY3My5hM2JmNTE5NWNmNTY2Njc4Ljk3N2VlNmQ3Yzk5OWNlNDYKKyAgICA2YjI3ZDA3YTQzYTFmN2FmLjZiOGU0ZGYwMjkyZWU3NjEuZTQ1MDU1M2Y5MGZlYjJmZC5lODhhOWJiYzkyZjJmYTI1CisgICAgNWU4NGQ2ZGRjZDE5MDFkYi45MmIyNGUwZTg5ZWI4MzZmLjI1MjBkMWJmZDExOWU0YTcuMzAxM2Q5MmM0NDJiMGQ4ZAorICAgIGRhOTM0ZmI5YzE1NjRhYWYuZmI4NTkyMWE3YzlhMWY0OC40MWZjNDEwMWFkYjJiNmExLmNkNjU5Yzk0N2JkMDQxMmIKKyAgICAxOWNjZTE1ZWQyNmJkM2FiCisgIGFmdGVyCisgICAgMjViMGMwYTIwNmUxNmZmZC4yYWNkOTM1M2JlZDYwZjczLmEzYmY1MTk1Y2Y1NjY2NzguOTc3ZWU2ZDdjOTk5Y2U0NgorICAgIDZiMjdkMDdhNDNhMWY3YWYuNmI4ZTRkZjAyOTJlZTc2MS5lNDUwNTUzZjkwZmViMmZkLmU4OGE5YmJjOTJmMmZhMjUKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuYTNiZjUxOTVjZjU2NjY3OC45NzdlZTZkN2M5OTljZTQ2CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDE5Y2NlMTVlZDI2YmQzYWIKKworVk1BU0tNT1ZQRF8yNTZfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA3MTk0YTJmOGU1OGFmZmI4LmJhMWZiNmY4M2I2MzhlNTQuMDI1MzE2N2U5ZWM2ZjY5OS4xNGIwMjFmMTQwZDZlNTE4CisgICAgMzIwOWRkY2M1MWI5MDBmZi5kY2Y1ODc4ODU2NGM4OGY5LjAzNjhkNWE4OGFmYjQ1MGUuNzkwOGVkN2JhNzhmMmMzOAorICAgIGI2NzY4ZDQ4YjE4MjE0MmIuMWJlMTNlNTQyZjFlZjVjOC41OTBmY2IwM2RjYzU0ODUyLjRlZDAyMjhjZmRlYjQ5MmMKKyAgICA1YTI4YWZkN2ExNzM3NWU5LjUyYWY1NzQ4ZTBlNDkxZWQuNjI5NmY0ZmEzMWIxM2IxMS42ZWQzM2EwZTVmZjZmNjIxCisgICAgYjRkZmIzZWZlOGJhZWY0MgorICBhZnRlcgorICAgIDcxOTRhMmY4ZTU4YWZmYjguYmExZmI2ZjgzYjYzOGU1NC4wMjUzMTY3ZTllYzZmNjk5LjE0YjAyMWYxNDBkNmU1MTgKKyAgICAzMjA5ZGRjYzUxYjkwMGZmLmRjZjU4Nzg4NTY0Yzg4ZjkuMDM2OGQ1YTg4YWZiNDUwZS43OTA4ZWQ3YmE3OGYyYzM4CisgICAgYjY3NjhkNDhiMTgyMTQyYi4xYmUxM2U1NDJmMWVmNWM4LjU5MGZjYjAzZGNjNTQ4NTIuNGVkMDIyOGNmZGViNDkyYworICAgIDVhMjhhZmQ3YTE3Mzc1ZTkuNTJhZjU3NDhlMGU0OTFlZC42Mjk2ZjRmYTMxYjEzYjExLjZlZDMzYTBlNWZmNmY2MjEKKyAgICBiNGRmYjNlZmU4YmFlZjQyCitWTUFTS01PVlBEXzI1Nl9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIGZlYmUwOTE5YjQ0NWYyYmMuN2E2YjNkZTViZjE4NWZlNS41ZjJiNGY1MDg4YWExODk1Ljc5NDc0Y2ZiMjU0YTU5ZjkKKyAgICAyNjNkYjY3YWUwYTNiOWJhLjcyOGIzNWRlYTRmYjEwY2EuMWMyMWExNTg0MTdkNDVlYy5mYTZmZDA3MTUzMWRkZmI0CisgICAgMGEyODM4ZmQ4OGRmMDE2YS45ZWQ0OTIyZWVlYWJjMjQ1LjY3NWNjOTRjMjc2OGQ1MWQuNDA1YTdiYzg1N2I1MDllZQorICAgIDg0NGIwYThkYzcwNTg1ZjUuNWI5MjUwNDEzOWIxYjEwMS4xYWFhNDMxODU3Nzg4NDU1LmE5NTQ0OTZjY2U5ZTEyNTQKKyAgICA4ZmE4MzZjYTUzNjUzNzkyCisgIGFmdGVyCisgICAgZmViZTA5MTliNDQ1ZjJiYy43YTZiM2RlNWJmMTg1ZmU1LjVmMmI0ZjUwODhhYTE4OTUuNzk0NzRjZmIyNTRhNTlmOQorICAgIDI2M2RiNjdhZTBhM2I5YmEuNzI4YjM1ZGVhNGZiMTBjYS4xYzIxYTE1ODQxN2Q0NWVjLmZhNmZkMDcxNTMxZGRmYjQKKyAgICAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMC43OTQ3NGNmYjI1NGE1OWY5CisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDhmYTgzNmNhNTM2NTM3OTIKKworVk1BU0tNT1ZQRF8yNTZfTG9hZEZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA1MGE0M2Y0YzgzOTViNDUzLjcyNzFhODE4YmEyMTAzODkuMDMxMDZjODMyMDliMWJhYi4xM2Q1OGJhOWVjYjcwZGMwCisgICAgNDY5MjVmNWZmOWJhYzU0NC5hZTY4OGU4OTdjNDAzNTUyLmYzOWNlMDYxM2ZmNDNhZWYuMmNhYTFlZTkwMzM0MmQ4OQorICAgIGNmYmY5MjcwNTI2MGE1MTEuMTVmYTM5Y2MyOTZkZDc3Yy44NzgwYWE0NTMzNDg0Yjc4LjQyZjU3N2M2YjdmOGEwZGMKKyAgICA0NTc3ZDRlYTI5MTQ5MTY1Ljg0ZjQyM2NlZGViNWE3MzIuMWIwOWM1OWQ5ODI0OGFmMy4zMjgxMTIyYjI1MTEyMmU3CisgICAgZDYxYzZjMDM2ODhhNmVkMworICBhZnRlcgorICAgIDUwYTQzZjRjODM5NWI0NTMuNzI3MWE4MThiYTIxMDM4OS4wMzEwNmM4MzIwOWIxYmFiLjEzZDU4YmE5ZWNiNzBkYzAKKyAgICA0NjkyNWY1ZmY5YmFjNTQ0LmFlNjg4ZTg5N2M0MDM1NTIuZjM5Y2UwNjEzZmY0M2FlZi4yY2FhMWVlOTAzMzQyZDg5CisgICAgY2ZiZjkyNzA1MjYwYTUxMS4xNWZhMzljYzI5NmRkNzdjLjg3ODBhYTQ1MzM0ODRiNzguNDJmNTc3YzZiN2Y4YTBkYworICAgIDQ1NzdkNGVhMjkxNDkxNjUuODRmNDIzY2VkZWI1YTczMi4xYjA5YzU5ZDk4MjQ4YWYzLjMyODExMjJiMjUxMTIyZTcKKyAgICBkNjFjNmMwMzY4OGE2ZWQzCitWTUFTS01PVlBEXzI1Nl9Mb2FkRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDBiOTBmZjNjOWQ3MDQxY2YuMDYwNjIxMzgxYjYyYzVlYy5kNTIyY2E3OWI2MjM1ZmExLjBiODMyZGQ0MDkxMzMyMGIKKyAgICBhZWFiNDljMWRmY2Q1NzA1LjZjYjg3NmM4YzNkNDdjNTQuZTU1MGFhYmFjZWMzYmNmNC5iMjNhZGY1NTIyYTI4MDZkCisgICAgOTkzN2M1N2U0YWIwNmJhMS5kNGQ4Y2UwNWJkZjhmMzQ3LjkwNGEzZDdlNDJhMTc5NTguNmU3OWQ2OGU4MDViYjBjNQorICAgIGE5MDFlZjVmZmIyMjNhZDEuOWJiMzI1NWJhNjVhNjY3MS5iM2RiMDFiMDJjY2E1NGY4LjlhOGUwZWVhYmVjZGZkYmUKKyAgICA5MmMzODNkNTc5ODFhNTA1CisgIGFmdGVyCisgICAgMGI5MGZmM2M5ZDcwNDFjZi4wNjA2MjEzODFiNjJjNWVjLmQ1MjJjYTc5YjYyMzVmYTEuMGI4MzJkZDQwOTEzMzIwYgorICAgIGFlYWI0OWMxZGZjZDU3MDUuNmNiODc2YzhjM2Q0N2M1NC5lNTUwYWFiYWNlYzNiY2Y0LmIyM2FkZjU1MjJhMjgwNmQKKyAgICAwYjkwZmYzYzlkNzA0MWNmLjAwMDAwMDAwMDAwMDAwMDAuZDUyMmNhNzliNjIzNWZhMS4wYjgzMmRkNDA5MTMzMjBiCisgICAgMDAwMDAwMDAwMDAwMDAwMC4wMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMDAwMDAwMDAuMDAwMDAwMDAwMDAwMDAwMAorICAgIDkyYzM4M2Q1Nzk4MWE1MDUKKworVk1BU0tNT1ZQU18xMjhfU3RvcmVGb3JtKHJlZykKKyAgYmVmb3JlCisgICAgYjI2NTMxYmI0YzA1ZTI0NS5iYWQ0NDQ1MTBlMzE4MGJmLjFiOTY3NzM2MWE4NDExN2YuMjhkMTcwM2JhYjQ5MDcwMQorICAgIDU1YzAxNTA5ZDRlNGYwMmIuYTg3ZTNlM2U5ZWU4Zjk5Ny5iMWNiYzEwMmI0MDQyZjFkLmNjZjYwOTBkZDgyYjRmOWYKKyAgICBkOTIwMmEyOWFjYWIwZDYzLjRmYzk1YjEzYzc1NDYwODYuYmE5ZmZkMmMxMDY2ZmRmNi43YjE3NDUxMWQyN2JlN2ZkCisgICAgOTlkMDZjODg3MWU0NzM5OC44YzgzMTZiZGE2ODA3MmI4LjkwNWQyOTFlY2IzNGI3YjcuMTEwMGExMzNiMjQ1OGM0OAorICAgIDZhN2M5YTVmOTY5NmZhYWIKKyAgYWZ0ZXIKKyAgICBiMjY1MzFiYjRjMDVlMjQ1LmJhZDQ0NDUxMGUzMTgwYmYuMWI5Njc3MzYxYTg0MTE3Zi4yOGQxNzAzYmFiNDkwNzAxCisgICAgNTVjMDE1MDlkNGU0ZjAyYi5hODdlM2UzZTllZThmOTk3LmIxY2JjMTAyYjQwNDJmMWQuY2NmNjA5MGRkODJiNGY5ZgorICAgIGQ5MjAyYTI5YWNhYjBkNjMuNGZjOTViMTNjNzU0NjA4Ni5iYTlmZmQyYzEwNjZmZGY2LjdiMTc0NTExZDI3YmU3ZmQKKyAgICA5OWQwNmM4ODcxZTQ3Mzk4LjhjODMxNmJkYTY4MDcyYjguOTA1ZDI5MWVjYjM0YjdiNy4xMTAwYTEzM2IyNDU4YzQ4CisgICAgNmE3YzlhNWY5Njk2ZmFhYgorVk1BU0tNT1ZQU18xMjhfU3RvcmVGb3JtKG1lbSkKKyAgYmVmb3JlCisgICAgNjI1OWFiODE5YTc5ZWQ1My5mMTFlZDc5M2JlMWU1Zjc2LjM5NzZlYzI2NTc3OGViNTguOTA1MzQwNDU4MWZjOTgwYgorICAgIGQ1NjE1MDg1ZDlmYTIwNmMuM2M1NDY3YjQzMGUyMGNhYi4zMzZmNTczY2Y0NDk4NzkzLjE2Y2IzZjBlY2M0YWRkOWYKKyAgICA5ZjYyMDY1ODcwMjU1MDIxLmQ4YmYxOTU5NjJiZWI3ZTEuNTYzYWQ1ZWE5Y2ZlMDE5NC43ZTEyMjBlNDRiYThjMjFmCisgICAgOWMyNjQ3ZTQ3YTA3Mzk5Zi4xZmFiZThlZGYwM2Q5Y2M0LjdkYTJlMTFjNjlhMzE2ODguMjQ3NGUxMzI5OGE1ODMzNgorICAgIDY0M2Q3ZDY2NGZjYTViOTEKKyAgYWZ0ZXIKKyAgICA2MjU5YWI4MTlhNzllZDUzLmYxMWVkNzkzYmUxZTVmNzYuMzk3NmVjMjZmNDQ5ODc5My45MDUzNDA0NTgxZmM5ODBiCisgICAgZDU2MTUwODVkOWZhMjA2Yy4zYzU0NjdiNDMwZTIwY2FiLjMzNmY1NzNjZjQ0OTg3OTMuMTZjYjNmMGVjYzRhZGQ5ZgorICAgIDlmNjIwNjU4NzAyNTUwMjEuZDhiZjE5NTk2MmJlYjdlMS41NjNhZDVlYTljZmUwMTk0LjdlMTIyMGU0NGJhOGMyMWYKKyAgICA5YzI2NDdlNDdhMDczOTlmLjFmYWJlOGVkZjAzZDljYzQuN2RhMmUxMWM2OWEzMTY4OC4yNDc0ZTEzMjk4YTU4MzM2CisgICAgNjQzZDdkNjY0ZmNhNWI5MQorCitWTUFTS01PVlBTXzEyOF9TdG9yZUZvcm0ocmVnKQorICBiZWZvcmUKKyAgICA5YWI5ZjFlYjBkYTU4N2RiLmE4N2E5MTE3MTNhYzk3MTEuNmY2NGQwZGM3N2VjZjcwMS44Njc1ZjdiZTc3NDQ4MTlhCisgICAgMjIzNDM3MmQ2ZGMxNDNjMS45ZjI5NWZkYjU4MWUyNWE0LjIyMzZjZTkyOTM1NjA0NDQuNGM3ZDk0YmNlM2VlMDBmOAorICAgIDU4Zjk0ZDk4MGJhYWNiZWYuNWQwMTJkMWU2NTZiYTA4My45NjZjZGM3YmRmMDdmZTM4LmFiODczMjAyYzhhZDRkY2IKKyAgICA5ODU2MmU5OTg1ZWQ1YTEwLmJkY2M3OGNiNTU5ZmMzZGMuMjU1NGY4MDNmNzhjMjI4YS43ZjVmNGY3YzQyOGIyNTQyCisgICAgYTRkMTY2MTc2Zjk2NDM4NworICBhZnRlcgorICAgIDlhYjlmMWViMGRhNTg3ZGIuYTg3YTkxMTcxM2FjOTcxMS42ZjY0ZDBkYzc3ZWNmNzAxLjg2NzVmN2JlNzc0NDgxOWEKKyAgICAyMjM0MzcyZDZkYzE0M2MxLjlmMjk1ZmRiNTgxZTI1YTQuMjIzNmNlOTI5MzU2MDQ0NC40YzdkOTRiY2UzZWUwMGY4CisgICAgNThmOTRkOTgwYmFhY2JlZi41ZDAxMmQxZTY1NmJhMDgzLjk2NmNkYzdiZGYwN2ZlMzguYWI4NzMyMDJjOGFkNGRjYgorICAgIDk4NTYyZTk5ODVlZDVhMTAuYmRjYzc4Y2I1NTlmYzNkYy4yNTU0ZjgwM2Y3OGMyMjhhLjdmNWY0ZjdjNDI4YjI1NDIKKyAgICBhNGQxNjYxNzZmOTY0Mzg3CitWTUFTS01PVlBTXzEyOF9TdG9yZUZvcm0obWVtKQorICBiZWZvcmUKKyAgICBmNWE5ZjRiZDY4ZGE2NGM2LjNlOTVkNjlhNzQxNTJkZDEuOWQ1OGJhY2U0NGM0NGNkOC4yZDM4MWQ5Njc4NzBhYmU2CisgICAgNTBiMzczNWM0YjYxNDQyYy5hNjAzNDEwODc2YWY4MGRkLmQ4NmY3MTEzNGZlOGY1YTYuMDg2NTQ3YTFmZDNmZDdmNworICAgIDkwYmE2MWRlMzQzOTlmZTUuMmNlYzZjNTAyNzQ2OGVlMS40YWRlMTk4NjkxMTc3YjcwLjEzMjc3MzhlMjM4NmUwNjkKKyAgICA5MThiMzkzMTNlNmUzMTFjLjJjOWI1MWRjMjI2Njk0ODkuY2U3MTJjMTMyNzViOTk2Mi5hYmNhOWJjYjg1ZDAwMmVhCisgICAgMmE5OWJkYzJjMGE5N2IyMworICBhZnRlcgorICAgIGY1YTlmNGJkNjhkYTY0YzYuM2U5NWQ2OWE3NDE1MmRkMS45ZDU4YmFjZTRmZThmNWE2LjJkMzgxZDk2Nzg3MGFiZTYKKyAgICA1MGIzNzM1YzRiNjE0NDJjLmE2MDM0MTA4NzZhZjgwZGQuZDg2ZjcxMTM0ZmU4ZjVhNi4wODY1NDdhMWZkM2ZkN2Y3CisgICAgOTBiYTYxZGUzNDM5OWZlNS4yY2VjNmM1MDI3NDY4ZWUxLjRhZGUxOTg2OTExNzdiNzAuMTMyNzczOGUyMzg2ZTA2OQorICAgIDkxOGIzOTMxM2U2ZTMxMWMuMmM5YjUxZGMyMjY2OTQ4OS5jZTcxMmMxMzI3NWI5OTYyLmFiY2E5YmNiODVkMDAyZWEKKyAgICAyYTk5YmRjMmMwYTk3YjIzCisKK1ZNQVNLTU9WUFNfMTI4X1N0b3JlRm9ybShyZWcpCisgIGJlZm9yZQorICAgIGVkZTJkNGUxNmY5ZTg1YzMuMmVmMzc3NDA4NTBiYjVmZS4wMTVlZWUxYTAzOWJjZTgwLjQyZjMyN2E2MmNjMjBkYTkKKyAgICA1MGVmZGQ5MzJmM2E1ZDc0LjQ1YmI5N2Y3MjYxY2U4YjcuMDk3ZjNmNzU2NzcyNzc3Mi44MTMyODcyY2JkNTg5MTcxCisgICAgYjAwZGQyNDQ5YjA5M2VlMi5iMGIyMTY0MjNkYWQ4NTcyLjlmNGIzZTU5ZWE3NmNkMGQuNjZmOGM3OGZmNTI4ZTFlNQorICAgIDY3ODhiMTYwNTA5ODY2YmIuNGRhMzZmMGRlNGNiNDk1Yy4xZTBlZTkzMjI3MzQwYWZiLmNmMTM2M2JkZjEzZWJiMzIKKyAgICA5NjRkZDhhMGNjYTZkOTg0CisgIGFmdGVyCisgICAgZWRlMmQ0ZTE2ZjllODVjMy4yZWYzNzc0MDg1MGJiNWZlLjAxNWVlZTFhMDM5YmNlODAuNDJmMzI3YTYyY2MyMGRhOQorICAgIDUwZWZkZDkzMmYzYTVkNzQuNDViYjk3ZjcyNjFjZThiNy4wOTdmM2Y3NTY3NzI3NzcyLjgxMzI4NzJjYmQ1ODkxNzEKKyAgICBiMDBkZDI0NDliMDkzZWUyLmIwYjIxNjQyM2RhZDg1NzIuOWY0YjNlNTllYTc2Y2QwZC42NmY4Yzc4ZmY1MjhlMWU1CisgICAgNjc4OGIxNjA1MDk4NjZiYi40ZGEzNmYwZGU0Y2I0OTVjLjFlMGVlOTMyMjczNDBhZmIuY2YxMzYzYmRmMTNlYmIzMgorICAgIDk2NGRkOGEwY2NhNmQ5ODQKK1ZNQVNLTU9WUFNfMTI4X1N0b3JlRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDk5NzNhMTI2YTI2ZGY4MDYuZDJhYzc1NTNlOTcyMGZhOS5mNjU5MWU0NDNhODFmMGEwLmU0MTQzYjZjYmEzNzZhZTgKKyAgICBiMjUwMzkzYTkwOWVkM2U0LjRkYzUxYTg5MDIyMzc2NTguODlhMjlmZDQ1OWRiMzY2Yi40Y2E5MzA3MzQwMGIyYjgxCisgICAgYmZiMjFmYzhiMjQ1Mjg0Yy4zNDFlOWQ2ZTM4MzhkNjc1LmUwNDg2ZmE3NWRlNmQ3ZTguYjExOWM0YjM1NDNkODc3MgorICAgIDlhNjNjY2JjMjM2ZmIxNjguZTMwNWY4NmYyNzNjNmNhYy5kOTE4MDhhYTYzYWQ4ZTQ0LjcxYWZmNDk4OTM1N2JiNjYKKyAgICBlNmI4YmE4Zjk4ZTgwMjBhCisgIGFmdGVyCisgICAgOTk3M2ExMjZhMjZkZjgwNi5kMmFjNzU1M2U5NzIwZmE5Ljg5YTI5ZmQ0M2E4MWYwYTAuNGNhOTMwNzNiYTM3NmFlOAorICAgIGIyNTAzOTNhOTA5ZWQzZTQuNGRjNTFhODkwMjIzNzY1OC44OWEyOWZkNDU5ZGIzNjZiLjRjYTkzMDczNDAwYjJiODEKKyAgICBiZmIyMWZjOGIyNDUyODRjLjM0MWU5ZDZlMzgzOGQ2NzUuZTA0ODZmYTc1ZGU2ZDdlOC5iMTE5YzRiMzU0M2Q4NzcyCisgICAgOWE2M2NjYmMyMzZmYjE2OC5lMzA1Zjg2ZjI3M2M2Y2FjLmQ5MTgwOGFhNjNhZDhlNDQuNzFhZmY0OTg5MzU3YmI2NgorICAgIGU2YjhiYThmOThlODAyMGEKKworVk1BU0tNT1ZQU18yNTZfU3RvcmVGb3JtKHJlZykKKyAgYmVmb3JlCisgICAgNmU4MDE0MDIwMDc5OWEwYS4yMDMxYmQwMmZmMjcyYTY0LmI2YzQyOWY2NmFiYzc0YTguNGVkZWU4Y2E4NjNkMThhYgorICAgIDYzNTNmZDVmNjY5OGJkMTEuMmVlNjZmODY2MzdhNTE2ZC4wOWE4MmI3MTlkNDIyYTE1LjFjNjU4YmYyZTNhMTMwNDgKKyAgICAyMzdkNzIxMTY3ZDFhN2NiLjllNGY1ZDM1NmI3M2UwYWYuMzhmZGZiNGE1ZDVjYzlhMS4yMDdiNmIwZDk1ZTU5MzQ4CisgICAgMDg0YTZlODM5ZWFlOTZlNi40ZDM4MDNmOTMxMWU5NDU1LjlmMGU5M2VmNDY5NjhlZjYuMzRlYTA2MDliODE1ZmRkNworICAgIDM1ODBkNmQxNjkzZTJhMjAKKyAgYWZ0ZXIKKyAgICA2ZTgwMTQwMjAwNzk5YTBhLjIwMzFiZDAyZmYyNzJhNjQuYjZjNDI5ZjY2YWJjNzRhOC40ZWRlZThjYTg2M2QxOGFiCisgICAgNjM1M2ZkNWY2Njk4YmQxMS4yZWU2NmY4NjYzN2E1MTZkLjA5YTgyYjcxOWQ0MjJhMTUuMWM2NThiZjJlM2ExMzA0OAorICAgIDIzN2Q3MjExNjdkMWE3Y2IuOWU0ZjVkMzU2YjczZTBhZi4zOGZkZmI0YTVkNWNjOWExLjIwN2I2YjBkOTVlNTkzNDgKKyAgICAwODRhNmU4MzllYWU5NmU2LjRkMzgwM2Y5MzExZTk0NTUuOWYwZTkzZWY0Njk2OGVmNi4zNGVhMDYwOWI4MTVmZGQ3CisgICAgMzU4MGQ2ZDE2OTNlMmEyMAorVk1BU0tNT1ZQU18yNTZfU3RvcmVGb3JtKG1lbSkKKyAgYmVmb3JlCisgICAgZmYwNzU5NTFjNDZiZDY0Zi42ZjA1ZWMyM2E3YmRjNDBjLjE3NmNkZWMwZDQ4NzI4OGMuOWEyOWYxY2JmMjdiYjVjMAorICAgIDZmNGMwYjc1ZTRhOWJjOTEuYjVmY2VhNWMxZjg5NmVlOS5kOWI5Njg3NDZlYmI1YTdmLjg0OTgxMDRhMDA5NzdhYWQKKyAgICA1ZjFhNjYyYWU2MDM5OTEyLjM0Nzk2NDlhYTI5ZmNmMmEuNmRlOTFmMDMxYmM1ZTQ1Yi5iYmE5ZWNkODA5NzYxODY2CisgICAgYWMzZmU4NWFlNTg1MjhmZS40OWM5NTQ0YWNiOGEyNTdiLmIwYzk3ZTU4ZjhiMjgzNGMuOWFhNjgxZTFhY2E1Y2M5YQorICAgIDdkZGNjY2QxODJhZmQyZjMKKyAgYWZ0ZXIKKyAgICBmZjA3NTk1MWU0YTliYzkxLjZmMDVlYzIzMWY4OTZlZTkuMTc2Y2RlYzBkNDg3Mjg4Yy44NDk4MTA0YWYyN2JiNWMwCisgICAgNmY0YzBiNzVlNGE5YmM5MS5iNWZjZWE1YzFmODk2ZWU5LmQ5Yjk2ODc0NmViYjVhN2YuODQ5ODEwNGEwMDk3N2FhZAorICAgIDVmMWE2NjJhZTYwMzk5MTIuMzQ3OTY0OWFhMjlmY2YyYS42ZGU5MWYwMzFiYzVlNDViLmJiYTllY2Q4MDk3NjE4NjYKKyAgICBhYzNmZTg1YWU1ODUyOGZlLjQ5Yzk1NDRhY2I4YTI1N2IuYjBjOTdlNThmOGIyODM0Yy45YWE2ODFlMWFjYTVjYzlhCisgICAgN2RkY2NjZDE4MmFmZDJmMworCitWTUFTS01PVlBTXzI1Nl9TdG9yZUZvcm0ocmVnKQorICBiZWZvcmUKKyAgICBiZjk3YzgxNTJhMjE2NTFkLjMyODUwY2YyZmQzYjI3ODAuNTAzOGI4ZDYzNmQ3YWE4Ny43ZTI1MDI1ZTIwOGRmMjdkCisgICAgYmUyMjcxMTczZDg2YzJjNS5jZGJhNGVkZjRiMzI1MGM0LmE2MTE4YmFiODAxMDliZmIuYjNjOTI1MDNhZjYyZWUxYgorICAgIGQ1Y2JjMzQ1NTk2YTI1OTcuNTlhODJhMGNlYTc2NjBmNy5hNWEyYzkzNjQ0YzMzMzgyLjJiODE2NTMzYzMzZTMzNTEKKyAgICA1ZmRjYmIwOTFhNWFjOTNlLmIyMWMxZDY0ZjcxMTEyNDUuYWEzNTZlZTExZjdjYWZjOS5jMjE4M2RkODc1MmM3ZDRjCisgICAgNTQ1YzI5ZGZlMzM4ODczOAorICBhZnRlcgorICAgIGJmOTdjODE1MmEyMTY1MWQuMzI4NTBjZjJmZDNiMjc4MC41MDM4YjhkNjM2ZDdhYTg3LjdlMjUwMjVlMjA4ZGYyN2QKKyAgICBiZTIyNzExNzNkODZjMmM1LmNkYmE0ZWRmNGIzMjUwYzQuYTYxMThiYWI4MDEwOWJmYi5iM2M5MjUwM2FmNjJlZTFiCisgICAgZDVjYmMzNDU1OTZhMjU5Ny41OWE4MmEwY2VhNzY2MGY3LmE1YTJjOTM2NDRjMzMzODIuMmI4MTY1MzNjMzNlMzM1MQorICAgIDVmZGNiYjA5MWE1YWM5M2UuYjIxYzFkNjRmNzExMTI0NS5hYTM1NmVlMTFmN2NhZmM5LmMyMTgzZGQ4NzUyYzdkNGMKKyAgICA1NDVjMjlkZmUzMzg4NzM4CitWTUFTS01PVlBTXzI1Nl9TdG9yZUZvcm0obWVtKQorICBiZWZvcmUKKyAgICBiZDE3YTUzNDI5NmYwZTQwLmJhYTI1M2QxMWJlMWVjNjcuYjRlMmExZDU4ZDExMjNkYS4xMTE4NzcxYWFkYzU0YjdjCisgICAgZDkxNjJlYzQ2MmRiY2U5MS40MTY5ODkwOGY5OGJjOGJlLjNiYzUzNDRhYzk4MTRmZTEuMzY5NWRmNGM4ODJjNDM0NgorICAgIDg0MjUzZjc5YWE4YjgzNTYuNGY3ZDU4MWE0ZmU0OTllZS4yMzkzNTJhZmM2NmU1Mjg2Ljc1ZjlhMmUzNGYzZGQyZDQKKyAgICA5YTEwNTQ0MTFlODhlOGJjLjQyMmFiZDczYjk3OTlkYTMuNDgxNjc1ZjBhMWUzZTdmNi4yYThmYmM0YTliODMzNWQxCisgICAgYjFhNTJhZjAwYjhhYThlYQorICBhZnRlcgorICAgIGQ5MTYyZWM0NjJkYmNlOTEuYmFhMjUzZDExYmUxZWM2Ny5iNGUyYTFkNWM5ODE0ZmUxLjExMTg3NzFhYWRjNTRiN2MKKyAgICBkOTE2MmVjNDYyZGJjZTkxLjQxNjk4OTA4Zjk4YmM4YmUuM2JjNTM0NGFjOTgxNGZlMS4zNjk1ZGY0Yzg4MmM0MzQ2CisgICAgODQyNTNmNzlhYThiODM1Ni40ZjdkNTgxYTRmZTQ5OWVlLjIzOTM1MmFmYzY2ZTUyODYuNzVmOWEyZTM0ZjNkZDJkNAorICAgIDlhMTA1NDQxMWU4OGU4YmMuNDIyYWJkNzNiOTc5OWRhMy40ODE2NzVmMGExZTNlN2Y2LjJhOGZiYzRhOWI4MzM1ZDEKKyAgICBiMWE1MmFmMDBiOGFhOGVhCisKK1ZNQVNLTU9WUFNfMjU2X1N0b3JlRm9ybShyZWcpCisgIGJlZm9yZQorICAgIDY2ODZlNjNlMzhkZTY2Y2IuZjdhM2U5MDdkYWUwYmFlZi43NGJiYjI3ZmQ0ZDYwZThiLjg2MWIxYmY5NzVlY2NiNWQKKyAgICBhNTdkZWVhMWMwMGNhZDFmLjc3YTk3YmI2Zjk5ZmI0MWEuNDM3ZTM1YWEzYjg1Mjk1MC5iODZmYmZiNjVmOTZiYWU2CisgICAgY2FkNzNkODUzZjlmYjc5My5mNWVmODQzYzk3Y2Y5NDZhLjA5YmQ0MTYwOGIxNDI5OWUuYmNkYmRkMTQ3YWVjNzBiZQorICAgIDMxZTBkMDU3NTAyNGMwZDIuNGY0MTgyODRkMTdlMTQwYS4yM2M1ZDIwZDYwMGU0YzIyLjZkMmVmMWZkZTNmYWE4MTEKKyAgICBhNzMzNzg1ZmI1Y2QxZjBhCisgIGFmdGVyCisgICAgNjY4NmU2M2UzOGRlNjZjYi5mN2EzZTkwN2RhZTBiYWVmLjc0YmJiMjdmZDRkNjBlOGIuODYxYjFiZjk3NWVjY2I1ZAorICAgIGE1N2RlZWExYzAwY2FkMWYuNzdhOTdiYjZmOTlmYjQxYS40MzdlMzVhYTNiODUyOTUwLmI4NmZiZmI2NWY5NmJhZTYKKyAgICBjYWQ3M2Q4NTNmOWZiNzkzLmY1ZWY4NDNjOTdjZjk0NmEuMDliZDQxNjA4YjE0Mjk5ZS5iY2RiZGQxNDdhZWM3MGJlCisgICAgMzFlMGQwNTc1MDI0YzBkMi40ZjQxODI4NGQxN2UxNDBhLjIzYzVkMjBkNjAwZTRjMjIuNmQyZWYxZmRlM2ZhYTgxMQorICAgIGE3MzM3ODVmYjVjZDFmMGEKK1ZNQVNLTU9WUFNfMjU2X1N0b3JlRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDQ1YjVlYzI0MGM3MDkxZDYuMzZlNGExODE5MDI1MDY4OS42MDZiZjA3YWMyYjhmMTI3LmVlZTJlNTFlNTQwMGNjODgKKyAgICAyNTgxY2IzYTA1ZjBiOWEwLjM0MmZhZTcxOWEzMWMzNjMuMDMzOTRiMGI4Nzg4ZTZlYy5jNDYwNzRmZDA2NzVlNjdiCisgICAgMjI2NDkwOGNiYzU3NTQ5NS44OTBjZjI5MTBhZDEzNDBlLjE2NzcwZDIxM2JmYWIxODYuMDI4YTdkMTgwZmY5ZDVhOAorICAgIDE3MjdiODA2NGNiMzFlZTEuOTBjODY5NGY3ZDkzOTQzMy43NGYxYjRhOWZiMWEwYzIxLjA0YWVmYmRhMGUxOWQ2YmEKKyAgICAyNzE2ZWJhZjljNjAyNTVlCisgIGFmdGVyCisgICAgNDViNWVjMjQwNWYwYjlhMC4zNDJmYWU3MTkwMjUwNjg5LjYwNmJmMDdhYzJiOGYxMjcuZWVlMmU1MWU1NDAwY2M4OAorICAgIDI1ODFjYjNhMDVmMGI5YTAuMzQyZmFlNzE5YTMxYzM2My4wMzM5NGIwYjg3ODhlNmVjLmM0NjA3NGZkMDY3NWU2N2IKKyAgICAyMjY0OTA4Y2JjNTc1NDk1Ljg5MGNmMjkxMGFkMTM0MGUuMTY3NzBkMjEzYmZhYjE4Ni4wMjhhN2QxODBmZjlkNWE4CisgICAgMTcyN2I4MDY0Y2IzMWVlMS45MGM4Njk0ZjdkOTM5NDMzLjc0ZjFiNGE5ZmIxYTBjMjEuMDRhZWZiZGEwZTE5ZDZiYQorICAgIDI3MTZlYmFmOWM2MDI1NWUKKworVk1BU0tNT1ZQRF8xMjhfU3RvcmVGb3JtKHJlZykKKyAgYmVmb3JlCisgICAgYzUwZjQ3MDM1NzViZmU0MC5lMjk5YmQ5NGQxMTBkM2FmLmE0YjAxMDE2OGYwMjIwODEuZjg3MmJiOTBlMmY1YjNlOAorICAgIDNiZTUwZDQyZGI5NDljMGIuNWQ4NTFkMjI2ODc4MmUyYi4yMzBlZTE1MmRhYWIxNGEyLjgwYzc5ZWMwMGQ5NjY0MDgKKyAgICBlNWU0MzhkOGMzOTkzYzZjLjY2YjY1MzljMmNmYWVjODMuNjgyZmRhNmZmZDE5YWM0Mi5lNmJjZGEyNzk3MDlkOWFkCisgICAgMWY1OGM0MzFhY2Y2MWEwZS5kN2ZhZGNlZjNhOWZjOWUwLmNlNWVmNmQ5OTJkODIzMGUuMDgxZGU5YjA5YzViY2YwMgorICAgIGMwYjY0OTQ3Mzk5NzAxMzQKKyAgYWZ0ZXIKKyAgICBjNTBmNDcwMzU3NWJmZTQwLmUyOTliZDk0ZDExMGQzYWYuYTRiMDEwMTY4ZjAyMjA4MS5mODcyYmI5MGUyZjViM2U4CisgICAgM2JlNTBkNDJkYjk0OWMwYi41ZDg1MWQyMjY4NzgyZTJiLjIzMGVlMTUyZGFhYjE0YTIuODBjNzllYzAwZDk2NjQwOAorICAgIGU1ZTQzOGQ4YzM5OTNjNmMuNjZiNjUzOWMyY2ZhZWM4My42ODJmZGE2ZmZkMTlhYzQyLmU2YmNkYTI3OTcwOWQ5YWQKKyAgICAxZjU4YzQzMWFjZjYxYTBlLmQ3ZmFkY2VmM2E5ZmM5ZTAuY2U1ZWY2ZDk5MmQ4MjMwZS4wODFkZTliMDljNWJjZjAyCisgICAgYzBiNjQ5NDczOTk3MDEzNAorVk1BU0tNT1ZQRF8xMjhfU3RvcmVGb3JtKG1lbSkKKyAgYmVmb3JlCisgICAgZWM1Mjc1ZDg4YWNhMmQ2ZS40NThjYWViOTMxMzU3MTllLjhlMWIzMjA1YWU3NTgwNzEuYjNlOTMyZmMzNTc0YjdiMgorICAgIDY2YmZlYTRmYWFmZTBkZGQuYjNjZGYwZGRlZWU1N2ZjOC42NWU2ZDNjY2EyODdjZTYwLjcyMWE4ODQ1ODM3YWExZDkKKyAgICAwYmM3MjI5OGI1NDI1ZGFjLmM1Njg4ODA3ODA4ZjdkMzcuM2EyNzNhMmUzNWUxNmZkYS42NjNmZjYxZTE3NzYyMDMwCisgICAgYjgzNzliOWZjODlmZGIwOC5kN2E3NzFhNTgzYzFhYTk4LmU3YTllMzE5ODA5MDFmMGEuZWNhMjc3ZjU4ZWYyNmU2MworICAgIDYxOTAwNzM0ODM3Y2M4MWQKKyAgYWZ0ZXIKKyAgICBlYzUyNzVkODhhY2EyZDZlLjQ1OGNhZWI5MzEzNTcxOWUuOGUxYjMyMDVhZTc1ODA3MS5iM2U5MzJmYzM1NzRiN2IyCisgICAgNjZiZmVhNGZhYWZlMGRkZC5iM2NkZjBkZGVlZTU3ZmM4LjY1ZTZkM2NjYTI4N2NlNjAuNzIxYTg4NDU4MzdhYTFkOQorICAgIDBiYzcyMjk4YjU0MjVkYWMuYzU2ODg4MDc4MDhmN2QzNy4zYTI3M2EyZTM1ZTE2ZmRhLjY2M2ZmNjFlMTc3NjIwMzAKKyAgICBiODM3OWI5ZmM4OWZkYjA4LmQ3YTc3MWE1ODNjMWFhOTguZTdhOWUzMTk4MDkwMWYwYS5lY2EyNzdmNThlZjI2ZTYzCisgICAgNjE5MDA3MzQ4MzdjYzgxZAorCitWTUFTS01PVlBEXzEyOF9TdG9yZUZvcm0ocmVnKQorICBiZWZvcmUKKyAgICAxZjU0YTM0OTkyOWY2YTBhLjQ3ZGJkMDUwZmYyMzQxMWQuNDVkNmE4MjE5MjA2NDA5Ni40OTNhNGE3OGExOWY5OTFkCisgICAgODQzYzQ1OWY1OWU4OTBkOC45NTdmM2Q5ODc1ZDk0YzE2LjZiNDMyN2U5NDllYTdkZGUuM2RhNGVjMzZiNDFiOWEzZQorICAgIGVhOTNlYmEyNzFlMjc1MzAuN2ZlZjVmNjE0NmNlYjcyMC5hNTM5ZWM2ODQ1ZmE5YTFjLjlkYjU0NDQxZDQwZmRlOWEKKyAgICBhZWE0OTBiZTc4MTk1NmMxLmRmZjZiMDk5OGYwYzQwNjYuNGYwM2YyMGEyMWMxZDZmYi40NjM3Y2U4NDFlODcyMDVkCisgICAgMTRmNzA2ZWNhZDhmMWRiMgorICBhZnRlcgorICAgIDFmNTRhMzQ5OTI5ZjZhMGEuNDdkYmQwNTBmZjIzNDExZC40NWQ2YTgyMTkyMDY0MDk2LjQ5M2E0YTc4YTE5Zjk5MWQKKyAgICA4NDNjNDU5ZjU5ZTg5MGQ4Ljk1N2YzZDk4NzVkOTRjMTYuNmI0MzI3ZTk0OWVhN2RkZS4zZGE0ZWMzNmI0MWI5YTNlCisgICAgZWE5M2ViYTI3MWUyNzUzMC43ZmVmNWY2MTQ2Y2ViNzIwLmE1MzllYzY4NDVmYTlhMWMuOWRiNTQ0NDFkNDBmZGU5YQorICAgIGFlYTQ5MGJlNzgxOTU2YzEuZGZmNmIwOTk4ZjBjNDA2Ni40ZjAzZjIwYTIxYzFkNmZiLjQ2MzdjZTg0MWU4NzIwNWQKKyAgICAxNGY3MDZlY2FkOGYxZGIyCitWTUFTS01PVlBEXzEyOF9TdG9yZUZvcm0obWVtKQorICBiZWZvcmUKKyAgICBlM2MwNjg2MzlkMzQ5MWM2LjJkYmMzMDVmMGExYTZlMzUuOTI2MmFlMmE2YmEyYTExNS5jNWVlMzUzYjdhY2M2YjI4CisgICAgOGY2MDcxZDYwYjgyMzhjNC5jMTI3YzhmMWMyNzBmYTM5Ljc0ZmRkNDAyZjc5OTk3NTkuNjI0N2IxNjdlYmE2OTY0ZQorICAgIGY1YTE5YzMyMTM4M2NkZDkuYzczMTUzZTAzY2E3Mzc3OC42MTk0OWYwYzRlZmZkZDVkLjg0NTg2M2ZhMTFkYjkzMWEKKyAgICBlZjUxNjU2MWQwNDUwZDMxLjliMjZjZDk5MTU0YzVlOWYuMzVmMzg5MzQ4ZGRmMzA0ZS44NjZkNDY2MTg3Zjc5ZDM4CisgICAgYzNkNDU2MDZlYTg3ZjE1MworICBhZnRlcgorICAgIGUzYzA2ODYzOWQzNDkxYzYuMmRiYzMwNWYwYTFhNmUzNS45MjYyYWUyYTZiYTJhMTE1LjYyNDdiMTY3ZWJhNjk2NGUKKyAgICA4ZjYwNzFkNjBiODIzOGM0LmMxMjdjOGYxYzI3MGZhMzkuNzRmZGQ0MDJmNzk5OTc1OS42MjQ3YjE2N2ViYTY5NjRlCisgICAgZjVhMTljMzIxMzgzY2RkOS5jNzMxNTNlMDNjYTczNzc4LjYxOTQ5ZjBjNGVmZmRkNWQuODQ1ODYzZmExMWRiOTMxYQorICAgIGVmNTE2NTYxZDA0NTBkMzEuOWIyNmNkOTkxNTRjNWU5Zi4zNWYzODkzNDhkZGYzMDRlLjg2NmQ0NjYxODdmNzlkMzgKKyAgICBjM2Q0NTYwNmVhODdmMTUzCisKK1ZNQVNLTU9WUERfMTI4X1N0b3JlRm9ybShyZWcpCisgIGJlZm9yZQorICAgIDk5ZDc4ZjU2ZDUxNmNiMTcuNWEzYTQ4NTE1ZWQzYjRmNy45YTUxMzI4NmU4ZWFhZTU5LmNjZTUxMDY2Y2Y0NjRjNTcKKyAgICA2M2M0ZWViZWU0MzE2NzMyLjEyMjljMmVjZGEzYTdlNTguMWUwMDdlMTU1MjBlNjE1My4wMjM4YWY4ZTMwM2ZlZGE1CisgICAgN2NlNTZkYTliNDYzMDA0ZS5mM2VhNGUyMDVmODUyNjdmLjg0N2RhZWIwZWY0MmI0MzkuYjNiNmUyOTljZWQ2Y2U2NAorICAgIDQyODcwYTgzZTEzOGQzMTcuZDk0ODY4ZDgwYWMwNjk5OS4yODE1YmNjNTU5MTRlMmI2LmJiMmQyNTcxYzIxOGFjYmYKKyAgICBmNjY3ZjUwMzJhMTA0M2UzCisgIGFmdGVyCisgICAgOTlkNzhmNTZkNTE2Y2IxNy41YTNhNDg1MTVlZDNiNGY3LjlhNTEzMjg2ZThlYWFlNTkuY2NlNTEwNjZjZjQ2NGM1NworICAgIDYzYzRlZWJlZTQzMTY3MzIuMTIyOWMyZWNkYTNhN2U1OC4xZTAwN2UxNTUyMGU2MTUzLjAyMzhhZjhlMzAzZmVkYTUKKyAgICA3Y2U1NmRhOWI0NjMwMDRlLmYzZWE0ZTIwNWY4NTI2N2YuODQ3ZGFlYjBlZjQyYjQzOS5iM2I2ZTI5OWNlZDZjZTY0CisgICAgNDI4NzBhODNlMTM4ZDMxNy5kOTQ4NjhkODBhYzA2OTk5LjI4MTViY2M1NTkxNGUyYjYuYmIyZDI1NzFjMjE4YWNiZgorICAgIGY2NjdmNTAzMmExMDQzZTMKK1ZNQVNLTU9WUERfMTI4X1N0b3JlRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDQwMzFjZDNjMjJjYTRmZmIuMGZmNmMwYjcwNjNkMWMzYS5hMDExOGMwMGY2ZjgwMmQyLjY2MTRhNmJmMmYxMDI5NzcKKyAgICA3NTU2MjkwNmM1NTM4YjM0LjQxN2Q4Y2IzYmZmZDE2NjMuMjMwZjM2ODQ0MDM4YWY1NS45YWM2NjgwYTBhYzFjMzI3CisgICAgNzFhNDg1NGYyZmI2YjRiYS4zMjZhNjhlM2E5MDRmZTNkLjQwMGZlMzUwMDM4YzJhNGYuMjA3NmZjMTI4OWIzZWQ3MworICAgIDEwZTY1ZTAyN2RmZjg1YjguNDAwNzUyYjE2MGRmMTA3NS5kMmRlMGU1MTVjMDEzMGViLjU0NzI2MDQzNDU3MmUyMDcKKyAgICA5MjA0OGYwOWRjOGJkZjhlCisgIGFmdGVyCisgICAgNDAzMWNkM2MyMmNhNGZmYi4wZmY2YzBiNzA2M2QxYzNhLmEwMTE4YzAwZjZmODAyZDIuNjYxNGE2YmYyZjEwMjk3NworICAgIDc1NTYyOTA2YzU1MzhiMzQuNDE3ZDhjYjNiZmZkMTY2My4yMzBmMzY4NDQwMzhhZjU1LjlhYzY2ODBhMGFjMWMzMjcKKyAgICA3MWE0ODU0ZjJmYjZiNGJhLjMyNmE2OGUzYTkwNGZlM2QuNDAwZmUzNTAwMzhjMmE0Zi4yMDc2ZmMxMjg5YjNlZDczCisgICAgMTBlNjVlMDI3ZGZmODViOC40MDA3NTJiMTYwZGYxMDc1LmQyZGUwZTUxNWMwMTMwZWIuNTQ3MjYwNDM0NTcyZTIwNworICAgIDkyMDQ4ZjA5ZGM4YmRmOGUKKworVk1BU0tNT1ZQRF8yNTZfU3RvcmVGb3JtKHJlZykKKyAgYmVmb3JlCisgICAgMzY3OTg1ZDBlYTg5MjBiNS4yZGU3MmUwYmNhM2JiYzViLmM1YTI0NThhN2YxOTg4YjcuYjU0NTMzNzE2NmEyN2M1NgorICAgIDliMWQzZTA1MGFmOWUxMjcuYTY3NDczNTYzMzc1MTNjZS4xZjg1M2RkYWEyM2VhMWFlLmM1MTNjZTlkM2Q3YmNiYmMKKyAgICAxZjNjYjcxMmQ5NjU1ZDkxLjU2NTlhOGNmZDNiOTQ3M2UuYThmZDM3MGU2NmRiOTgwNi5kZDEzNWNjMmZmOTlkOTQ4CisgICAgMWQyMmViNjVmMjVjZDI5ZS4xODYyNGE2MmM3MTQxM2Q3LmJkNTUyZTkwNjY3YWE5NmMuZGIxMDU4Y2JjNTA3NjIyNgorICAgIDlhZDczZWEzYWRkMTIyODQKKyAgYWZ0ZXIKKyAgICAzNjc5ODVkMGVhODkyMGI1LjJkZTcyZTBiY2EzYmJjNWIuYzVhMjQ1OGE3ZjE5ODhiNy5iNTQ1MzM3MTY2YTI3YzU2CisgICAgOWIxZDNlMDUwYWY5ZTEyNy5hNjc0NzM1NjMzNzUxM2NlLjFmODUzZGRhYTIzZWExYWUuYzUxM2NlOWQzZDdiY2JiYworICAgIDFmM2NiNzEyZDk2NTVkOTEuNTY1OWE4Y2ZkM2I5NDczZS5hOGZkMzcwZTY2ZGI5ODA2LmRkMTM1Y2MyZmY5OWQ5NDgKKyAgICAxZDIyZWI2NWYyNWNkMjllLjE4NjI0YTYyYzcxNDEzZDcuYmQ1NTJlOTA2NjdhYTk2Yy5kYjEwNThjYmM1MDc2MjI2CisgICAgOWFkNzNlYTNhZGQxMjI4NAorVk1BU0tNT1ZQRF8yNTZfU3RvcmVGb3JtKG1lbSkKKyAgYmVmb3JlCisgICAgZjUzNThhMzhkMzA0ZDQ4Yy5mMTFhZDY2OWYxNjc3OWZjLmNhNWJkM2ZiMmE5MTM1YzQuYmFkYjFlY2UzZmFhMGY4YworICAgIGNhZjRiODc1NTFhYjM1NmEuZjc3Mjc0ODk3MzE0OTE1NC40NzBmYzE4NzE5M2M2NjMxLmZjZDkwMzMzOGNmNTA3MTIKKyAgICBmM2UwNDU0NjQ2ZDIwMDRiLjhhNzRjMTMzMTRlZTU0NTUuNmE0YjhmZjBhZjIyNjU0Yy5kZDlkZDkyYWVhZTdjZGE5CisgICAgNGVjN2FjOTdjYzg2ZjI1Yi4wODZkYmFkMjZlODJmZmE5LjExZGNiOTI0MDk0ZWVkM2YuYmE3MTljMjFmNDBjOWRmZAorICAgIGVmYTI0OTgzNDdmMWIyYmMKKyAgYWZ0ZXIKKyAgICBjYWY0Yjg3NTUxYWIzNTZhLmY3NzI3NDg5NzMxNDkxNTQuY2E1YmQzZmIyYTkxMzVjNC5mY2Q5MDMzMzhjZjUwNzEyCisgICAgY2FmNGI4NzU1MWFiMzU2YS5mNzcyNzQ4OTczMTQ5MTU0LjQ3MGZjMTg3MTkzYzY2MzEuZmNkOTAzMzM4Y2Y1MDcxMgorICAgIGYzZTA0NTQ2NDZkMjAwNGIuOGE3NGMxMzMxNGVlNTQ1NS42YTRiOGZmMGFmMjI2NTRjLmRkOWRkOTJhZWFlN2NkYTkKKyAgICA0ZWM3YWM5N2NjODZmMjViLjA4NmRiYWQyNmU4MmZmYTkuMTFkY2I5MjQwOTRlZWQzZi5iYTcxOWMyMWY0MGM5ZGZkCisgICAgZWZhMjQ5ODM0N2YxYjJiYworCitWTUFTS01PVlBEXzI1Nl9TdG9yZUZvcm0ocmVnKQorICBiZWZvcmUKKyAgICBkODdjZGJiZDdlMjE0OThmLmI1NzM2OTU0ZmZkMmM3YzUuY2NhOTVhZDIyMDViY2VmYy4xNjhjYmMwZTQyY2NiOTM2CisgICAgZDE0YTRlMzkzNTI4OWUyNS4wNmIyZjg2YWZjYzMzYmI2LjMxNzQ5ZDlmYzQwNWZjZmIuNTcyODEyOTk3N2E5ODY1ZQorICAgIDM3NWE5ZjY0MDk5M2VkMjguMWI0ZWQ2YzNkZTYzMGE1YS45NTE5N2ZhNmY2MGNjNjUyLmFlN2IzOWIzYzNmMDBmZTMKKyAgICA2NGY2YzlhYTk2ZWQ3MTQ0LmQyMTQ3ZDRkYzJjMWVmZGMuNTJlNmZkNTE1M2ZkNjhhYy5mOTUzYWM0NzQyYWUxMWYwCisgICAgMTI3YWU4NDExMWVlNDliMgorICBhZnRlcgorICAgIGQ4N2NkYmJkN2UyMTQ5OGYuYjU3MzY5NTRmZmQyYzdjNS5jY2E5NWFkMjIwNWJjZWZjLjE2OGNiYzBlNDJjY2I5MzYKKyAgICBkMTRhNGUzOTM1Mjg5ZTI1LjA2YjJmODZhZmNjMzNiYjYuMzE3NDlkOWZjNDA1ZmNmYi41NzI4MTI5OTc3YTk4NjVlCisgICAgMzc1YTlmNjQwOTkzZWQyOC4xYjRlZDZjM2RlNjMwYTVhLjk1MTk3ZmE2ZjYwY2M2NTIuYWU3YjM5YjNjM2YwMGZlMworICAgIDY0ZjZjOWFhOTZlZDcxNDQuZDIxNDdkNGRjMmMxZWZkYy41MmU2ZmQ1MTUzZmQ2OGFjLmY5NTNhYzQ3NDJhZTExZjAKKyAgICAxMjdhZTg0MTExZWU0OWIyCitWTUFTS01PVlBEXzI1Nl9TdG9yZUZvcm0obWVtKQorICBiZWZvcmUKKyAgICBkNmJlNjc4ZDRjYmM3MDU0LmI1NmJjNzc4NzdjMjY3MjcuMDVkMDZiZjJjM2U2YTc2OC5jNjI1MTIwZDc2NjMxZWI2CisgICAgMjJlOWE3MTcwZTI0NDUwMy44NjA1OTczODQ4OWYwYTdhLjkyNGUxYmEwZmVlMGVkMmMuNGIyM2JhNDdmY2NiMjMxYworICAgIGQwYzgyM2NjNzMzMzgyZWIuMzIxMDM1NThhNjBmOThlYy41MzU5MGE0MjhlYmE3ZTUxLjNmMmNmMTZhODBjMGI0ODkKKyAgICBiZDI3NTc5Njk4ZjRlNDM3LjE3ZDg5YjQzMmM5ZjRiMjcuMjViZWIyYzM5MDgxMTYwNi5mYzhjYjNlMTllY2UwZGE5CisgICAgZTA4ZWZkMWFmMzgyNjkyYQorICBhZnRlcgorICAgIDIyZTlhNzE3MGUyNDQ1MDMuYjU2YmM3Nzg3N2MyNjcyNy4wNWQwNmJmMmMzZTZhNzY4LmM2MjUxMjBkNzY2MzFlYjYKKyAgICAyMmU5YTcxNzBlMjQ0NTAzLjg2MDU5NzM4NDg5ZjBhN2EuOTI0ZTFiYTBmZWUwZWQyYy40YjIzYmE0N2ZjY2IyMzFjCisgICAgZDBjODIzY2M3MzMzODJlYi4zMjEwMzU1OGE2MGY5OGVjLjUzNTkwYTQyOGViYTdlNTEuM2YyY2YxNmE4MGMwYjQ4OQorICAgIGJkMjc1Nzk2OThmNGU0MzcuMTdkODliNDMyYzlmNGIyNy4yNWJlYjJjMzkwODExNjA2LmZjOGNiM2UxOWVjZTBkYTkKKyAgICBlMDhlZmQxYWYzODI2OTJhCisKK1ZNQVNLTU9WUERfMjU2X1N0b3JlRm9ybShyZWcpCisgIGJlZm9yZQorICAgIDQ1ODBjYTgwMWI2NzA1YjUuYzZkMWMwNjM5ODc0MjYxNC45MGE5Yzc2NTc3ZGE2MGQ3LmU0NGE5MTExMWYzZjcxNzUKKyAgICA4OGFjMTY3ZmIxMDkxZGY5LmM1OTRkODFkOTBiZTA2YWUuZjljZWI0MmEyMzRjMTJhOS42ZGM3MjIxNzU3MDM0YmNiCisgICAgMDY1ZmRkODM1MmY1ZWRhMC45NzNhMWRiMjliZGUzZTMwLmFlOTQ1ZWZlY2E4MTllNDkuOWEwMmUxYzI1NWQ2NWYzMworICAgIDE5ZTUxYmY4OTliNmIwNTcuMTg5MDBhMGRkNmUwOGJjNi4wYjQ3YzI0ZDBiMDY0MDYzLjQ4YzY0YmZjMzVjNjZhZGEKKyAgICA1M2UxZGFiMjEyZGUyN2ViCisgIGFmdGVyCisgICAgNDU4MGNhODAxYjY3MDViNS5jNmQxYzA2Mzk4NzQyNjE0LjkwYTljNzY1NzdkYTYwZDcuZTQ0YTkxMTExZjNmNzE3NQorICAgIDg4YWMxNjdmYjEwOTFkZjkuYzU5NGQ4MWQ5MGJlMDZhZS5mOWNlYjQyYTIzNGMxMmE5LjZkYzcyMjE3NTcwMzRiY2IKKyAgICAwNjVmZGQ4MzUyZjVlZGEwLjk3M2ExZGIyOWJkZTNlMzAuYWU5NDVlZmVjYTgxOWU0OS45YTAyZTFjMjU1ZDY1ZjMzCisgICAgMTllNTFiZjg5OWI2YjA1Ny4xODkwMGEwZGQ2ZTA4YmM2LjBiNDdjMjRkMGIwNjQwNjMuNDhjNjRiZmMzNWM2NmFkYQorICAgIDUzZTFkYWIyMTJkZTI3ZWIKK1ZNQVNLTU9WUERfMjU2X1N0b3JlRm9ybShtZW0pCisgIGJlZm9yZQorICAgIDk3MWUwY2QxMDgyYjU0OTMuMWU4YWNkNGIyMmQ4YTNjOS4yNDYyMWIxYTVjZDFhODlkLjZiMzNkYTgzN2Y2NjM0YTEKKyAgICBmMDQ4NWQ0MzM0YjhhYmZlLjcxOWFlZWU2OGFlODAyYTMuOTc3Y2NkYzU0YWJjNTJlMS4yY2E0YTQwY2M0MmViNWIyCisgICAgM2EyYzQ3ZjZiMjkxZTk1Ny42ZTYxN2EzNjZjNzEwODkwLjRkYWE5YmZhYmJhZTQ1YmUuYTllNjFiNTU3NmU5MDE0MAorICAgIDUxOTY0N2Q0OWNjM2M5Y2IuNzEyYTZlYTg2NWZmZjMzZC4yMmI3MDFhNWNjYjIzZDVmLjNkNDQzYmM4MzAyMzUxZjgKKyAgICA0NjBjMDFkMzhmNjhlNDg1CisgIGFmdGVyCisgICAgOTcxZTBjZDEwODJiNTQ5My4xZThhY2Q0YjIyZDhhM2M5LjI0NjIxYjFhNWNkMWE4OWQuMmNhNGE0MGNjNDJlYjViMgorICAgIGYwNDg1ZDQzMzRiOGFiZmUuNzE5YWVlZTY4YWU4MDJhMy45NzdjY2RjNTRhYmM1MmUxLjJjYTRhNDBjYzQyZWI1YjIKKyAgICAzYTJjNDdmNmIyOTFlOTU3LjZlNjE3YTM2NmM3MTA4OTAuNGRhYTliZmFiYmFlNDViZS5hOWU2MWI1NTc2ZTkwMTQwCisgICAgNTE5NjQ3ZDQ5Y2MzYzljYi43MTJhNmVhODY1ZmZmMzNkLjIyYjcwMWE1Y2NiMjNkNWYuM2Q0NDNiYzgzMDIzNTFmOAorICAgIDQ2MGMwMWQzOGY2OGU0ODUKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9hdngtMS52Z3Rlc3QgYi9ub25lL3Rlc3RzL2FtZDY0L2F2eC0xLnZndGVzdAppbmRleCAwZjY1MGQxLi5kZGQ0NzJlIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FtZDY0L2F2eC0xLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL2FtZDY0L2F2eC0xLnZndGVzdApAQCAtMSwzICsxLDMgQEAKIHByb2c6IGF2eC0xCi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL3g4Nl9hbWQ2NF9mZWF0dXJlcyBhbWQ2NC1hdngKK3ByZXJlcTogdGVzdCAteCBhdngtMSAmJiAuLi8uLi8uLi90ZXN0cy94ODZfYW1kNjRfZmVhdHVyZXMgYW1kNjQtYXZ4CiB2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L2F2eDItMS5jIGIvbm9uZS90ZXN0cy9hbWQ2NC9hdngyLTEuYwppbmRleCBjOTUwOWQ2Li5hYTRlMzY3IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FtZDY0L2F2eDItMS5jCisrKyBiL25vbmUvdGVzdHMvYW1kNjQvYXZ4Mi0xLmMKQEAgLTIsMTQgKzIsMTggQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPGFzc2VydC5oPgotI2luY2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgInRlc3RzL21hbGxvYy5oIgogCiB0eXBlZGVmICB1bnNpZ25lZCBjaGFyICAgICAgICAgICBVQ2hhcjsKIHR5cGVkZWYgIHVuc2lnbmVkIGludCAgICAgICAgICAgIFVJbnQ7CiB0eXBlZGVmICB1bnNpZ25lZCBsb25nIGludCAgICAgICBVV29yZDsKIHR5cGVkZWYgIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgIFVMb25nOwogCisjaWYgZGVmaW5lZChWR09fZGFyd2luKQogVUNoYXIgcmFuZEFycmF5WzEwMjddIF9fYXR0cmlidXRlX18oKHVzZWQpKTsKKyNlbHNlCitVQ2hhciBfcmFuZEFycmF5WzEwMjddIF9fYXR0cmlidXRlX18oKHVzZWQpKTsKKyNlbmRpZgogCiAjZGVmaW5lIElTXzMyX0FMSUdORUQoX3B0cikgKDAgPT0gKDB4MUYgJiAoVVdvcmQpKF9wdHIpKSkKIApAQCAtNjUsNyArNjksNyBAQAogICAgIFwKICAgICBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKSBzdGF0aWMgdm9pZCB0ZXN0XyMjX25hbWUgKCB2b2lkICkgICBcCiAgICAgeyBcCi0gICAgICAgQmxvY2sqIGIgPSBtZW1hbGlnbigzMiwgc2l6ZW9mKEJsb2NrKSk7IFwKKyAgICAgICBCbG9jayogYiA9IG1lbWFsaWduMzIoc2l6ZW9mKEJsb2NrKSk7IFwKICAgICAgICByYW5kQmxvY2soYik7IFwKICAgICAgICBwcmludGYoIiVzKHJlZylcbiIsICNfbmFtZSk7IFwKICAgICAgICBzaG93QmxvY2soImJlZm9yZSIsIGIpOyBcCkBAIC05NzUsNyArOTc5LDcgQEAKICAgICAgICAgICAgICAgICJ2cHNsbGQgJDI1LCAlJXhtbTcsICUleG1tODsiCiAgICAgICAgICAgICAgICAidnBzcmxkICQyNSwgJSV4bW04LCAlJXhtbTg7IgogICAgICAgICAgICAgICAgInZibGVuZHZwcyAlJXhtbTYsICUleG1tOCwgJSV4bW03LCAlJXhtbTg7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2Z2F0aGVyZHBzICUleG1tNiwgMyglJXIxNCwlJXhtbTgsNCksICUleG1tOTsiCiAgICAgICAgICAgICAgICAieG9ybCAlJXIxNGQsICUlcjE0ZCIpCiAKQEAgLTk4Myw3ICs5ODcsNyBAQAogICAgICAgICAgICAgICAgInZwc2xsZCAkMjUsICUleW1tNywgJSV5bW04OyIKICAgICAgICAgICAgICAgICJ2cHNybGQgJDI1LCAlJXltbTgsICUleW1tODsiCiAgICAgICAgICAgICAgICAidmJsZW5kdnBzICUleW1tNiwgJSV5bW04LCAlJXltbTcsICUleW1tODsiCi0gICAgICAgICAgICAgICAibGVhcSByYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCisgICAgICAgICAgICAgICAibGVhcSBfcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgogICAgICAgICAgICAgICAgInZnYXRoZXJkcHMgJSV5bW02LCAzKCUlcjE0LCUleW1tOCw0KSwgJSV5bW05OyIKICAgICAgICAgICAgICAgICJ4b3JsICUlcjE0ZCwgJSVyMTRkIikKIApAQCAtOTkzLDcgKzk5Nyw3IEBACiAgICAgICAgICAgICAgICAidnBtb3ZzeGRxICUleG1tNiwgJSV4bW05OyIKICAgICAgICAgICAgICAgICJ2YmxlbmR2cGQgJSV4bW05LCAlJXhtbTgsICUleG1tNywgJSV4bW04OyIKICAgICAgICAgICAgICAgICJ2bW92ZHFhIDk2KCUwKSwgJSV5bW05OyIKLSAgICAgICAgICAgICAgICJsZWFxIHJhbmRBcnJheSglJXJpcCksICUlcjE0OyIKKyAgICAgICAgICAgICAgICJsZWFxIF9yYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCiAgICAgICAgICAgICAgICAidmdhdGhlcnFwcyAlJXhtbTYsIDMoJSVyMTQsJSV4bW04LDQpLCAlJXhtbTk7IgogICAgICAgICAgICAgICAgInhvcmwgJSVyMTRkLCAlJXIxNGQiKQogCkBAIC0xMDAzLDcgKzEwMDcsNyBAQAogICAgICAgICAgICAgICAgInZwbW92c3hkcSAlJXhtbTYsICUleW1tOTsiCiAgICAgICAgICAgICAgICAidmJsZW5kdnBkICUleW1tOSwgJSV5bW04LCAlJXltbTcsICUleW1tODsiCiAgICAgICAgICAgICAgICAidm1vdmRxYSA5NiglMCksICUleW1tOTsiCi0gICAgICAgICAgICAgICAibGVhcSByYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCisgICAgICAgICAgICAgICAibGVhcSBfcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgogICAgICAgICAgICAgICAgInZnYXRoZXJxcHMgJSV4bW02LCAzKCUlcjE0LCUleW1tOCw0KSwgJSV4bW05OyIKICAgICAgICAgICAgICAgICJ4b3JsICUlcjE0ZCwgJSVyMTRkIikKIApAQCAtMTAxMyw3ICsxMDE3LDcgQEAKICAgICAgICAgICAgICAgICJ2cG1vdnN4ZHEgJSV4bW02LCAlJXhtbTk7IgogICAgICAgICAgICAgICAgInZibGVuZHZwZCAlJXhtbTksICUleG1tOCwgJSV4bW03LCAlJXhtbTg7IgogICAgICAgICAgICAgICAgInZtb3ZkcWEgOTYoJTApLCAlJXltbTk7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2bW92cSAlJXIxNCwgJSV4bW03OyIKICAgICAgICAgICAgICAgICJ2cHNsbHEgJDIsICUleG1tOCwgJSV4bW04OyIKICAgICAgICAgICAgICAgICJ2cGJyb2FkY2FzdHEgJSV4bW03LCAlJXhtbTc7IgpAQCAtMTAyOSw3ICsxMDMzLDcgQEAKICAgICAgICAgICAgICAgICJ2cG1vdnN4ZHEgJSV4bW02LCAlJXltbTk7IgogICAgICAgICAgICAgICAgInZibGVuZHZwZCAlJXltbTksICUleW1tOCwgJSV5bW03LCAlJXltbTg7IgogICAgICAgICAgICAgICAgInZtb3ZkcWEgOTYoJTApLCAlJXltbTk7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2bW92cSAlJXIxNCwgJSV4bW03OyIKICAgICAgICAgICAgICAgICJ2cHNsbHEgJDIsICUleW1tOCwgJSV5bW04OyIKICAgICAgICAgICAgICAgICJ2cGJyb2FkY2FzdHEgJSV4bW03LCAlJXltbTc7IgpAQCAtMTA0NSw3ICsxMDQ5LDcgQEAKICAgICAgICAgICAgICAgICJ2c2h1ZnBzICQxMywgJSV4bW02LCAlJXhtbTYsICUleG1tOTsiCiAgICAgICAgICAgICAgICAidmJsZW5kdnBzICUleG1tOSwgJSV4bW04LCAlJXhtbTcsICUleG1tODsiCiAgICAgICAgICAgICAgICAidm1vdmRxYSA5NiglMCksICUleW1tOTsiCi0gICAgICAgICAgICAgICAibGVhcSByYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCisgICAgICAgICAgICAgICAibGVhcSBfcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgogICAgICAgICAgICAgICAgInZnYXRoZXJkcGQgJSV4bW02LCAzKCUlcjE0LCUleG1tOCw4KSwgJSV4bW05OyIKICAgICAgICAgICAgICAgICJ4b3JsICUlcjE0ZCwgJSVyMTRkIikKIApAQCAtMTA1Niw3ICsxMDYwLDcgQEAKICAgICAgICAgICAgICAgICJ2c2h1ZnBzICQyMjEsICUleW1tOSwgJSV5bW02LCAlJXltbTk7IgogICAgICAgICAgICAgICAgInZibGVuZHZwcyAlJXltbTksICUleW1tOCwgJSV5bW03LCAlJXltbTg7IgogICAgICAgICAgICAgICAgInZtb3ZkcWEgOTYoJTApLCAlJXltbTk7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2Z2F0aGVyZHBkICUleW1tNiwgMyglJXIxNCwlJXhtbTgsOCksICUleW1tOTsiCiAgICAgICAgICAgICAgICAieG9ybCAlJXIxNGQsICUlcjE0ZCIpCiAKQEAgLTEwNjQsNyArMTA2OCw3IEBACiAgICAgICAgICAgICAgICAidnBzbGxxICQ1OCwgJSV4bW03LCAlJXhtbTg7IgogICAgICAgICAgICAgICAgInZwc3JscSAkNTgsICUleG1tOCwgJSV4bW04OyIKICAgICAgICAgICAgICAgICJ2YmxlbmR2cGQgJSV4bW02LCAlJXhtbTgsICUleG1tNywgJSV4bW04OyIKLSAgICAgICAgICAgICAgICJsZWFxIHJhbmRBcnJheSglJXJpcCksICUlcjE0OyIKKyAgICAgICAgICAgICAgICJsZWFxIF9yYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCiAgICAgICAgICAgICAgICAidmdhdGhlcnFwZCAlJXhtbTYsIDMoJSVyMTQsJSV4bW04LDgpLCAlJXhtbTk7IgogICAgICAgICAgICAgICAgInhvcmwgJSVyMTRkLCAlJXIxNGQiKQogCkBAIC0xMDcyLDcgKzEwNzYsNyBAQAogICAgICAgICAgICAgICAgInZwc2xscSAkNTgsICUleW1tNywgJSV5bW04OyIKICAgICAgICAgICAgICAgICJ2cHNybHEgJDU4LCAlJXltbTgsICUleW1tODsiCiAgICAgICAgICAgICAgICAidmJsZW5kdnBkICUleW1tNiwgJSV5bW04LCAlJXltbTcsICUleW1tODsiCi0gICAgICAgICAgICAgICAibGVhcSByYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCisgICAgICAgICAgICAgICAibGVhcSBfcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgogICAgICAgICAgICAgICAgInZnYXRoZXJxcGQgJSV5bW02LCAzKCUlcjE0LCUleW1tOCw4KSwgJSV5bW05OyIKICAgICAgICAgICAgICAgICJ4b3JsICUlcjE0ZCwgJSVyMTRkIikKIApAQCAtMTA4MCw3ICsxMDg0LDcgQEAKICAgICAgICAgICAgICAgICJ2cHNsbHEgJDU4LCAlJXhtbTcsICUleG1tODsiCiAgICAgICAgICAgICAgICAidnBzcmxxICQ1OCwgJSV4bW04LCAlJXhtbTg7IgogICAgICAgICAgICAgICAgInZibGVuZHZwZCAlJXhtbTYsICUleG1tOCwgJSV4bW03LCAlJXhtbTg7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2bW92cSAlJXIxNCwgJSV4bW03OyIKICAgICAgICAgICAgICAgICJ2cHNsbHEgJDIsICUleG1tOCwgJSV4bW04OyIKICAgICAgICAgICAgICAgICJ2cGJyb2FkY2FzdHEgJSV4bW03LCAlJXhtbTc7IgpAQCAtMTA5NCw3ICsxMDk4LDcgQEAKICAgICAgICAgICAgICAgICJ2cHNsbHEgJDU4LCAlJXltbTcsICUleW1tODsiCiAgICAgICAgICAgICAgICAidnBzcmxxICQ1OCwgJSV5bW04LCAlJXltbTg7IgogICAgICAgICAgICAgICAgInZibGVuZHZwZCAlJXltbTYsICUleW1tOCwgJSV5bW03LCAlJXltbTg7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2bW92cSAlJXIxNCwgJSV4bW03OyIKICAgICAgICAgICAgICAgICJ2cHNsbHEgJDIsICUleW1tOCwgJSV5bW04OyIKICAgICAgICAgICAgICAgICJ2cGJyb2FkY2FzdHEgJSV4bW03LCAlJXltbTc7IgpAQCAtMTEwOCw3ICsxMTEyLDcgQEAKICAgICAgICAgICAgICAgICJ2cHNsbGQgJDI1LCAlJXhtbTcsICUleG1tODsiCiAgICAgICAgICAgICAgICAidnBzcmxkICQyNSwgJSV4bW04LCAlJXhtbTg7IgogICAgICAgICAgICAgICAgInZibGVuZHZwcyAlJXhtbTYsICUleG1tOCwgJSV4bW03LCAlJXhtbTg7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2cGdhdGhlcmRkICUleG1tNiwgMyglJXIxNCwlJXhtbTgsNCksICUleG1tOTsiCiAgICAgICAgICAgICAgICAieG9ybCAlJXIxNGQsICUlcjE0ZCIpCiAKQEAgLTExMTYsNyArMTEyMCw3IEBACiAgICAgICAgICAgICAgICAidnBzbGxkICQyNSwgJSV5bW03LCAlJXltbTg7IgogICAgICAgICAgICAgICAgInZwc3JsZCAkMjUsICUleW1tOCwgJSV5bW04OyIKICAgICAgICAgICAgICAgICJ2YmxlbmR2cHMgJSV5bW02LCAlJXltbTgsICUleW1tNywgJSV5bW04OyIKLSAgICAgICAgICAgICAgICJsZWFxIHJhbmRBcnJheSglJXJpcCksICUlcjE0OyIKKyAgICAgICAgICAgICAgICJsZWFxIF9yYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCiAgICAgICAgICAgICAgICAidnBnYXRoZXJkZCAlJXltbTYsIDMoJSVyMTQsJSV5bW04LDQpLCAlJXltbTk7IgogICAgICAgICAgICAgICAgInhvcmwgJSVyMTRkLCAlJXIxNGQiKQogCkBAIC0xMTI2LDcgKzExMzAsNyBAQAogICAgICAgICAgICAgICAgInZwbW92c3hkcSAlJXhtbTYsICUleG1tOTsiCiAgICAgICAgICAgICAgICAidmJsZW5kdnBkICUleG1tOSwgJSV4bW04LCAlJXhtbTcsICUleG1tODsiCiAgICAgICAgICAgICAgICAidm1vdmRxYSA5NiglMCksICUleW1tOTsiCi0gICAgICAgICAgICAgICAibGVhcSByYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCisgICAgICAgICAgICAgICAibGVhcSBfcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgogICAgICAgICAgICAgICAgInZwZ2F0aGVycWQgJSV4bW02LCAzKCUlcjE0LCUleG1tOCw0KSwgJSV4bW05OyIKICAgICAgICAgICAgICAgICJ4b3JsICUlcjE0ZCwgJSVyMTRkIikKIApAQCAtMTEzNiw3ICsxMTQwLDcgQEAKICAgICAgICAgICAgICAgICJ2cG1vdnN4ZHEgJSV4bW02LCAlJXltbTk7IgogICAgICAgICAgICAgICAgInZibGVuZHZwZCAlJXltbTksICUleW1tOCwgJSV5bW03LCAlJXltbTg7IgogICAgICAgICAgICAgICAgInZtb3ZkcWEgOTYoJTApLCAlJXltbTk7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2cGdhdGhlcnFkICUleG1tNiwgMyglJXIxNCwlJXltbTgsNCksICUleG1tOTsiCiAgICAgICAgICAgICAgICAieG9ybCAlJXIxNGQsICUlcjE0ZCIpCiAKQEAgLTExNDYsNyArMTE1MCw3IEBACiAgICAgICAgICAgICAgICAidnBtb3ZzeGRxICUleG1tNiwgJSV4bW05OyIKICAgICAgICAgICAgICAgICJ2YmxlbmR2cGQgJSV4bW05LCAlJXhtbTgsICUleG1tNywgJSV4bW04OyIKICAgICAgICAgICAgICAgICJ2bW92ZHFhIDk2KCUwKSwgJSV5bW05OyIKLSAgICAgICAgICAgICAgICJsZWFxIHJhbmRBcnJheSglJXJpcCksICUlcjE0OyIKKyAgICAgICAgICAgICAgICJsZWFxIF9yYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCiAgICAgICAgICAgICAgICAidm1vdnEgJSVyMTQsICUleG1tNzsiCiAgICAgICAgICAgICAgICAidnBzbGxxICQyLCAlJXhtbTgsICUleG1tODsiCiAgICAgICAgICAgICAgICAidnBicm9hZGNhc3RxICUleG1tNywgJSV4bW03OyIKQEAgLTExNjIsNyArMTE2Niw3IEBACiAgICAgICAgICAgICAgICAidnBtb3ZzeGRxICUleG1tNiwgJSV5bW05OyIKICAgICAgICAgICAgICAgICJ2YmxlbmR2cGQgJSV5bW05LCAlJXltbTgsICUleW1tNywgJSV5bW04OyIKICAgICAgICAgICAgICAgICJ2bW92ZHFhIDk2KCUwKSwgJSV5bW05OyIKLSAgICAgICAgICAgICAgICJsZWFxIHJhbmRBcnJheSglJXJpcCksICUlcjE0OyIKKyAgICAgICAgICAgICAgICJsZWFxIF9yYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCiAgICAgICAgICAgICAgICAidm1vdnEgJSVyMTQsICUleG1tNzsiCiAgICAgICAgICAgICAgICAidnBzbGxxICQyLCAlJXltbTgsICUleW1tODsiCiAgICAgICAgICAgICAgICAidnBicm9hZGNhc3RxICUleG1tNywgJSV5bW03OyIKQEAgLTExNzgsNyArMTE4Miw3IEBACiAgICAgICAgICAgICAgICAidnNodWZwcyAkMTMsICUleG1tNiwgJSV4bW02LCAlJXhtbTk7IgogICAgICAgICAgICAgICAgInZibGVuZHZwcyAlJXhtbTksICUleG1tOCwgJSV4bW03LCAlJXhtbTg7IgogICAgICAgICAgICAgICAgInZtb3ZkcWEgOTYoJTApLCAlJXltbTk7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2cGdhdGhlcmRxICUleG1tNiwgMyglJXIxNCwlJXhtbTgsOCksICUleG1tOTsiCiAgICAgICAgICAgICAgICAieG9ybCAlJXIxNGQsICUlcjE0ZCIpCiAKQEAgLTExODksNyArMTE5Myw3IEBACiAgICAgICAgICAgICAgICAidnNodWZwcyAkMjIxLCAlJXltbTksICUleW1tNiwgJSV5bW05OyIKICAgICAgICAgICAgICAgICJ2YmxlbmR2cHMgJSV5bW05LCAlJXltbTgsICUleW1tNywgJSV5bW04OyIKICAgICAgICAgICAgICAgICJ2bW92ZHFhIDk2KCUwKSwgJSV5bW05OyIKLSAgICAgICAgICAgICAgICJsZWFxIHJhbmRBcnJheSglJXJpcCksICUlcjE0OyIKKyAgICAgICAgICAgICAgICJsZWFxIF9yYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCiAgICAgICAgICAgICAgICAidnBnYXRoZXJkcSAlJXltbTYsIDMoJSVyMTQsJSV4bW04LDgpLCAlJXltbTk7IgogICAgICAgICAgICAgICAgInhvcmwgJSVyMTRkLCAlJXIxNGQiKQogCkBAIC0xMTk3LDcgKzEyMDEsNyBAQAogICAgICAgICAgICAgICAgInZwc2xscSAkNTgsICUleG1tNywgJSV4bW04OyIKICAgICAgICAgICAgICAgICJ2cHNybHEgJDU4LCAlJXhtbTgsICUleG1tODsiCiAgICAgICAgICAgICAgICAidmJsZW5kdnBkICUleG1tNiwgJSV4bW04LCAlJXhtbTcsICUleG1tODsiCi0gICAgICAgICAgICAgICAibGVhcSByYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCisgICAgICAgICAgICAgICAibGVhcSBfcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgogICAgICAgICAgICAgICAgInZwZ2F0aGVycXEgJSV4bW02LCAzKCUlcjE0LCUleG1tOCw4KSwgJSV4bW05OyIKICAgICAgICAgICAgICAgICJ4b3JsICUlcjE0ZCwgJSVyMTRkIikKIApAQCAtMTIwNSw3ICsxMjA5LDcgQEAKICAgICAgICAgICAgICAgICJ2cHNsbHEgJDU4LCAlJXltbTcsICUleW1tODsiCiAgICAgICAgICAgICAgICAidnBzcmxxICQ1OCwgJSV5bW04LCAlJXltbTg7IgogICAgICAgICAgICAgICAgInZibGVuZHZwZCAlJXltbTYsICUleW1tOCwgJSV5bW03LCAlJXltbTg7IgotICAgICAgICAgICAgICAgImxlYXEgcmFuZEFycmF5KCUlcmlwKSwgJSVyMTQ7IgorICAgICAgICAgICAgICAgImxlYXEgX3JhbmRBcnJheSglJXJpcCksICUlcjE0OyIKICAgICAgICAgICAgICAgICJ2cGdhdGhlcnFxICUleW1tNiwgMyglJXIxNCwlJXltbTgsOCksICUleW1tOTsiCiAgICAgICAgICAgICAgICAieG9ybCAlJXIxNGQsICUlcjE0ZCIpCiAKQEAgLTEyMTMsNyArMTIxNyw3IEBACiAgICAgICAgICAgICAgICAidnBzbGxxICQ1OCwgJSV4bW03LCAlJXhtbTg7IgogICAgICAgICAgICAgICAgInZwc3JscSAkNTgsICUleG1tOCwgJSV4bW04OyIKICAgICAgICAgICAgICAgICJ2YmxlbmR2cGQgJSV4bW02LCAlJXhtbTgsICUleG1tNywgJSV4bW04OyIKLSAgICAgICAgICAgICAgICJsZWFxIHJhbmRBcnJheSglJXJpcCksICUlcjE0OyIKKyAgICAgICAgICAgICAgICJsZWFxIF9yYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCiAgICAgICAgICAgICAgICAidm1vdnEgJSVyMTQsICUleG1tNzsiCiAgICAgICAgICAgICAgICAidnBzbGxxICQyLCAlJXhtbTgsICUleG1tODsiCiAgICAgICAgICAgICAgICAidnBicm9hZGNhc3RxICUleG1tNywgJSV4bW03OyIKQEAgLTEyMjcsNyArMTIzMSw3IEBACiAgICAgICAgICAgICAgICAidnBzbGxxICQ1OCwgJSV5bW03LCAlJXltbTg7IgogICAgICAgICAgICAgICAgInZwc3JscSAkNTgsICUleW1tOCwgJSV5bW04OyIKICAgICAgICAgICAgICAgICJ2YmxlbmR2cGQgJSV5bW02LCAlJXltbTgsICUleW1tNywgJSV5bW04OyIKLSAgICAgICAgICAgICAgICJsZWFxIHJhbmRBcnJheSglJXJpcCksICUlcjE0OyIKKyAgICAgICAgICAgICAgICJsZWFxIF9yYW5kQXJyYXkoJSVyaXApLCAlJXIxNDsiCiAgICAgICAgICAgICAgICAidm1vdnEgJSVyMTQsICUleG1tNzsiCiAgICAgICAgICAgICAgICAidnBzbGxxICQyLCAlJXltbTgsICUleW1tODsiCiAgICAgICAgICAgICAgICAidnBicm9hZGNhc3RxICUleG1tNywgJSV5bW03OyIKQEAgLTE0NjYsNyArMTQ3MCwxMSBAQAogICAgRE9fRCggVlBNQVNLTU9WRF8yNTZfU3RvcmVGb3JtICk7CiAgICBET19EKCBWUE1BU0tNT1ZRXzEyOF9TdG9yZUZvcm0gKTsKICAgIERPX0QoIFZQTUFTS01PVlFfMjU2X1N0b3JlRm9ybSApOworI2lmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIHsgaW50IGk7IGZvciAoaSA9IDA7IGkgPCBzaXplb2YocmFuZEFycmF5KTsgaSsrKSByYW5kQXJyYXlbaV0gPSByYW5kVUNoYXIoKTsgfQorI2Vsc2UKKyAgIHsgaW50IGk7IGZvciAoaSA9IDA7IGkgPCBzaXplb2YoX3JhbmRBcnJheSk7IGkrKykgX3JhbmRBcnJheVtpXSA9IHJhbmRVQ2hhcigpOyB9CisjZW5kaWYKICAgIERPX0QoIFZHQVRIRVJEUFNfMTI4ICk7CiAgICBET19EKCBWR0FUSEVSRFBTXzI1NiApOwogICAgRE9fRCggVkdBVEhFUlFQU18xMjhfMSApOwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9idWcxMzI5MTgudmd0ZXN0IGIvbm9uZS90ZXN0cy9hbWQ2NC9idWcxMzI5MTgudmd0ZXN0CmluZGV4IDdiZmJmOTUuLjhjOTQ5MDcgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvYW1kNjQvYnVnMTMyOTE4LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL2FtZDY0L2J1ZzEzMjkxOC52Z3Rlc3QKQEAgLTEgKzEsMiBAQAogcHJvZzogYnVnMTMyOTE4CitzdGRvdXRfZmlsdGVyOiBmaWx0ZXJfaW5mX25hbgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9idWcxNTY0MDQtYW1kNjQuYyBiL25vbmUvdGVzdHMvYW1kNjQvYnVnMTU2NDA0LWFtZDY0LmMKaW5kZXggZDBjNGVhMC4uM2FmOGI2MCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbWQ2NC9idWcxNTY0MDQtYW1kNjQuYworKysgYi9ub25lL3Rlc3RzL2FtZDY0L2J1ZzE1NjQwNC1hbWQ2NC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjZGVmaW5lIFZHX1NUUklOR0lGWihfX3N0cikgICNfX3N0cgogI2RlZmluZSBWR19TVFJJTkdJRlkoX19zdHIpICBWR19TVFJJTkdJRlooX19zdHIpCiAKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fZGFyd2luKQogI2RlZmluZSBfX05SX1JFQURMSU5LICAgICAgICBWR19TVFJJTkdJRlkoX19OUl9yZWFkbGluaykKIAogZXh0ZXJuIGxvbmcgbXlfcmVhZGxpbmsgKCBjb25zdCBjaGFyKiBwYXRoICk7CkBAIC0zMiw2ICszMywzMCBAQAogIi5wcmV2aW91c1xuIgogKTsKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyNkZWZpbmUgX19OUl9SRUFETElOS0FUICAgICAgVkdfU1RSSU5HSUZZKFNZU19yZWFkbGlua2F0KQorCitleHRlcm4gbG9uZyBteV9yZWFkbGluayAoIGNvbnN0IGNoYXIqIHBhdGggKTsKK2FzbSgKKyIudGV4dFxuIgorIi5nbG9ibCBteV9yZWFkbGlua1xuIgorIm15X3JlYWRsaW5rOlxuIgorIlx0c3VicSAgICAkMHgxMDA4LCVyc3BcbiIKKyJcdG1vdnEgICAgJXJkaSwlcnNpXG4iCisiXHR4b3JxICAgICVyZGksJXJkaVxuIgorIlx0bW92cSAgICAlcnNwLCVyZHhcbiIKKyJcdG1vdnEgICAgJDB4MTAwMCwlcjEwXG4iCisiXHRtb3ZsICAgICQiX19OUl9SRUFETElOS0FUIiwlZWF4XG4iCisiXHRzeXNjYWxsXG4iCisiXHRhZGRxICAgICQweDEwMDgsJXJzcFxuIgorIlx0cmV0XG4iCisiLnByZXZpb3VzXG4iCispOworCisjZWxzZQorI2Vycm9yICJVbmtub3duIE9TIgorI2VuZGlmCisKIGxvbmcgcmVjdXJzZSAoIGNvbnN0IGNoYXIqIHBhdGgsIGxvbmcgY291bnQgKQogewogICAgaWYgKGNvdW50IDw9IDApIHsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQvZmlsdGVyX2luZl9uYW4gYi9ub25lL3Rlc3RzL2FtZDY0L2ZpbHRlcl9pbmZfbmFuCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlNDBmMjEKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2FtZDY0L2ZpbHRlcl9pbmZfbmFuCkBAIC0wLDAgKzEsMTEgQEAKKyMhIC9iaW4vc2gKKworIyBTb2xhcmlzIGxpYmMgcHJpbnRzICdJbmYnIG9yICdJbmZpbml0eScgaW5zdGVhZCBvZiAnaW5mJworIyBhbmQgJ05hTicgaW5zdGVhZCBvZiAnbmFuJy4gRmlsdGVyIHRoZXNlIGRpZmZlcmVuY2VzIGhlcmUuCitzZWQgInMvLUluZmluaXR5LyAgICAgLWluZi9nIiB8CitzZWQgInMvSW5maW5pdHkvICAgICBpbmYvZyIgICB8CitzZWQgInMvSW5mL2luZi9nIiAgICAgICAgICAgICB8CitzZWQgInMvTmFOL25hbi9nIgorCitleGl0IDAKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9meHRyYWN0LnZndGVzdCBiL25vbmUvdGVzdHMvYW1kNjQvZnh0cmFjdC52Z3Rlc3QKaW5kZXggYjI2NTM4NC4uOGU5ZTg0ZCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbWQ2NC9meHRyYWN0LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL2FtZDY0L2Z4dHJhY3Qudmd0ZXN0CkBAIC0xLDIgKzEsMyBAQAogcHJlcmVxOiB0ZXN0IC1lIGZ4dHJhY3QKIHByb2c6IGZ4dHJhY3QKK3N0ZG91dF9maWx0ZXI6IGZpbHRlcl9pbmZfbmFuCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L2dldHNlZy5jIGIvbm9uZS90ZXN0cy9hbWQ2NC9nZXRzZWcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzA5YWY2Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC9nZXRzZWcuYwpAQCAtMCwwICsxLDI1IEBACisvKiBUZXN0IHNlZ21lbnQgcmVnaXN0ZXIgZ2V0dGluZy4gKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2ludCBtYWluKHZvaWQpCit7CisgICB1bnNpZ25lZCBzaG9ydCBjc3cgPSAtMTsKKyAgIHVuc2lnbmVkIGludCBjc2wgPSAtMTsKKyAgIHVuc2lnbmVkIGxvbmcgY3NxID0gLTE7CisgICB1bnNpZ25lZCBzaG9ydCBjc3dfbWVtID0gLTE7CisKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAibW92dyAlJWNzLCAlMFxuIiAvKiBtb3Ygc2VnUmVnLCByMTYgKi8KKyAgICAgICAibW92bCAlJWNzLCAlMVxuIiAvKiBtb3Ygc2VnUmVnLCByMzIgKi8KKyAgICAgICAibW92cSAlJWNzLCAlMlxuIiAvKiBtb3Ygc2VnUmVnLCByNjQgKi8KKyAgICAgICAibW92dyAlJWNzLCAlM1xuIiAvKiBtb3Ygc2VnUmVnLCBtZW0xNiAqLworICAgICAgIDogIj1yIiAoY3N3KSwgIj1yIiAoY3NsKSwgIj1yIiAoY3NxKSwgIj1tIiAoY3N3X21lbSkpOworCisgICBwcmludGYoImNzKHcpPSV1XG4iLCBjc3cpOworICAgcHJpbnRmKCJjcyhsKT0ldVxuIiwgY3NsKTsKKyAgIHByaW50ZigiY3MocSk9JWx1XG4iLCBjc3EpOworICAgcHJpbnRmKCJjcyh3X21lbSk9JXVcbiIsIGNzd19tZW0pOworCisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvYW1kNjQvZ2V0c2VnLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL2FtZDY0L2dldHNlZy5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L2dldHNlZy5zdGRvdXQuZXhwIGIvbm9uZS90ZXN0cy9hbWQ2NC9nZXRzZWcuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTgzNThkCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC9nZXRzZWcuc3Rkb3V0LmV4cApAQCAtMCwwICsxLDQgQEAKK2NzKHcpPTAKK2NzKGwpPTAKK2NzKHEpPTAKK2NzKHdfbWVtKT0wCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L2dldHNlZy52Z3Rlc3QgYi9ub25lL3Rlc3RzL2FtZDY0L2dldHNlZy52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ5MTEzMgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvYW1kNjQvZ2V0c2VnLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IGdldHNlZwordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9tb3ZiZS5jIGIvbm9uZS90ZXN0cy9hbWQ2NC9tb3ZiZS5jCmluZGV4IDRiMjM2OTYuLjYwM2UxNDAgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvYW1kNjQvbW92YmUuYworKysgYi9ub25lL3Rlc3RzL2FtZDY0L21vdmJlLmMKQEAgLTIsNyArMiw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KLSNpbmNsdWRlIDxtYWxsb2MuaD4KKyNpbmNsdWRlICJ0ZXN0cy9tYWxsb2MuaCIKIAogdHlwZWRlZiAgdW5zaWduZWQgY2hhciAgICAgICAgICAgVUNoYXI7CiB0eXBlZGVmICB1bnNpZ25lZCBpbnQgICAgICAgICAgICBVSW50OwpAQCAtNDMsNyArNDMsNyBAQAogICAgIFwKICAgICBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKSBzdGF0aWMgdm9pZCB0ZXN0XyMjX25hbWUgKCB2b2lkICkgICBcCiAgICAgeyBcCi0gICAgICAgQmxvY2sqIGIgPSBtZW1hbGlnbigzMiwgc2l6ZW9mKEJsb2NrKSk7IFwKKyAgICAgICBCbG9jayogYiA9IG1lbWFsaWduMzIoc2l6ZW9mKEJsb2NrKSk7IFwKICAgICAgICByYW5kQmxvY2soYik7IFwKICAgICAgICBwcmludGYoIiVzXG4iLCAjX25hbWUpOyBcCiAgICAgICAgc2hvd0Jsb2NrKCJiZWZvcmUiLCBiKTsgXApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9wY21wc3RyNjQuYyBiL25vbmUvdGVzdHMvYW1kNjQvcGNtcHN0cjY0LmMKaW5kZXggNWIyNzNlYi4uMDY5NDAxMiAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbWQ2NC9wY21wc3RyNjQuYworKysgYi9ub25lL3Rlc3RzL2FtZDY0L3BjbXBzdHI2NC5jCkBAIC0yMDQsOSArMjA0LDkgQEAKICAgICAgIHVudmFsaWRhdGVkIGNhc2VzIGluIHRoZSBjb2RlIGJhc2UuICovCiAgICBzd2l0Y2ggKGltbTgpIHsKICAgICAgIGNhc2UgMHgwMDogY2FzZSAweDAyOiBjYXNlIDB4MDg6IGNhc2UgMHgwQTogY2FzZSAweDBDOiBjYXNlIDB4MEU6Ci0gICAgICBjYXNlIDB4MTI6IGNhc2UgMHgxNDogY2FzZSAweDFBOgorICAgICAgY2FzZSAweDEyOiBjYXNlIDB4MTQ6IGNhc2UgMHgxODogY2FzZSAweDFBOgogICAgICAgY2FzZSAweDMwOiBjYXNlIDB4MzQ6IGNhc2UgMHgzODogY2FzZSAweDNBOgotICAgICAgY2FzZSAweDQwOiBjYXNlIDB4NDQ6IGNhc2UgMHg0NjogY2FzZSAweDRBOgorICAgICAgY2FzZSAweDQwOiBjYXNlIDB4NDI6IGNhc2UgMHg0NDogY2FzZSAweDQ2OiBjYXNlIDB4NEE6CiAgICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gRmFsc2U7CkBAIC03ODUsNiArNzg1LDk5IEBACiAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICBJU1RSSV8xOCAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVUludCBoX3BjbXBpc3RyaV8xOCAoIFYxMjgqIGFyZ0wsIFYxMjgqIGFyZ1IgKQoreworICAgVjEyOCBibG9ja1syXTsKKyAgIG1lbWNweSgmYmxvY2tbMF0sIGFyZ0wsIHNpemVvZihWMTI4KSk7CisgICBtZW1jcHkoJmJsb2NrWzFdLCBhcmdSLCBzaXplb2YoVjEyOCkpOworICAgVUxvbmcgcmVzLCBmbGFnczsKKyAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgInN1YnEgICAgICAkMTAyNCwgICUlcnNwIiAgICAgICAgICAgICAiXG5cdCIKKyAgICAgICJtb3ZkcXUgICAgMCglMiksICAlJXhtbTIiICAgICAgICAgICAgIlxuXHQiCisgICAgICAibW92ZHF1ICAgIDE2KCUyKSwgJSV4bW0xMSIgICAgICAgICAgICJcblx0IgorICAgICAgInBjbXBpc3RyaSAkMHgxOCwgICUleG1tMiwgJSV4bW0xMSIgICAiXG5cdCIKKyAgICAgICJwdXNoZnEiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuXHQiCisgICAgICAicG9wcSAgICAgICUlcmR4IiAgICAgICAgICAgICAgICAgICAgICJcblx0IgorICAgICAgIm1vdnEgICAgICAlJXJjeCwgICUwIiAgICAgICAgICAgICAgICAiXG5cdCIKKyAgICAgICJtb3ZxICAgICAgJSVyZHgsICAlMSIgICAgICAgICAgICAgICAgIlxuXHQiCisgICAgICAiYWRkcSAgICAgICQxMDI0LCAgJSVyc3AiICAgICAgICAgICAgICJcblx0IgorICAgICAgOiAvKm91dCovICI9ciIocmVzKSwgIj1yIihmbGFncykgOiAiciIvKmluKi8oJmJsb2NrWzBdKQorICAgICAgOiAicmN4IiwicmR4IiwieG1tMCIsInhtbTIiLCJ4bW0xMSIsImNjIiwibWVtb3J5IgorICAgKTsKKyAgIHJldHVybiAoKGZsYWdzICYgMHg4RDUpIDw8IDE2KSB8IChyZXMgJiAweEZGRkYpOworfQorCitVSW50IHNfcGNtcGlzdHJpXzE4ICggVjEyOCogYXJnTFUsIFYxMjgqIGFyZ1JVICkKK3sKKyAgIFYxMjggcmVzVjsKKyAgIFVJbnQgcmVzT1NaQUNQLCByZXNFQ1g7CisgICBCb29sIG9rCisgICAgICA9IHBjbXBYc3RyWF9XUksoICZyZXNWLCAmcmVzT1NaQUNQLCBhcmdMVSwgYXJnUlUsCisgICAgICAgICAgICAgICAgICAgICAgIHptYXNrX2Zyb21fVjEyOChhcmdMVSksCisgICAgICAgICAgICAgICAgICAgICAgIHptYXNrX2Zyb21fVjEyOChhcmdSVSksCisgICAgICAgICAgICAgICAgICAgICAgIDB4MTgsIEZhbHNlLyohaXNTVFJNKi8KKyAgICAgICAgKTsKKyAgIGFzc2VydChvayk7CisgICByZXNFQ1ggPSByZXNWLnVJbnRbMF07CisgICByZXR1cm4gKHJlc09TWkFDUCA8PCAxNikgfCByZXNFQ1g7Cit9CisKK3ZvaWQgaXN0cmlfMTggKCB2b2lkICkKK3sKKyAgIGNoYXIqIHdvdCA9ICIxOCI7CisgICBVSW50KCpoKShWMTI4KixWMTI4KikgPSBoX3BjbXBpc3RyaV8xODsKKyAgIFVJbnQoKnMpKFYxMjgqLFYxMjgqKSA9IHNfcGNtcGlzdHJpXzE4OworCisgICB0cnlfaXN0cmkod290LGgscywgIjAwMDAwMDAwMDAwMDAwMDAiLCAiMDAwMDAwMDAwMDAwMDAwMCIpOyAKKworICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYWFhYWFhYWFhYWFhYWFhIiwgImFhYWFhYWFhYWFhYWFhYWEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImFhYWEyYWFhYWFhYWFhYWEiLCAiYWFhYWFhYWFhYWFhYWFhYSIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWFhYWFhYWFhMmFhYWFhYSIsICJhYWFhYWFhYWFhYWFhYWFhIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYWFhYWFhYWFhYWFhMmFhIiwgImFhYWFhYWFhYWFhYWFhYWEiKTsgCisKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWFhYWFhYWFhYWFhYWFhYSIsICJhYWFhMmFhYWFhYWFhYWFhIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYWFhYWFhYWFhYWFhYWFhIiwgImFhYWFhYWFhYTJhYWFhYWEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImFhYWFhYWFhYWFhYWFhYWEiLCAiYWFhYWFhYWFhYWFhYWEyYSIpOyAKKworICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYWFhYWFhYWFhYWFhYWFhIiwgImFhYWFhYWFhYWFhYWFhYWEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImJhYWFhYWFhYWFhYWFhYWEiLCAiYWFhYWFhYWFhYWFhYWFhYSIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYjlhYWFhYWFhYWFhYWFhYSIsICJhYWFhYWFhYWFhYWFhYWFhIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJiOWJhYWFhYWFhYWFhYWFhIiwgImFhYWFhYWFhYWFhYWFhYWEiKTsgCisKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYjliYWFhYWFhYWFhYWFhYSIsICJhYWFhYWFhYWFhYWFhYWFhIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJiOWJhYWFhYWFhYWFhYWFhIiwgImFhYWFhYWFhYWFhYTdhYWEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImI5YmFhYWFhYWFhYWFhYWEiLCAiYWFhYWFhYWEyYWFhNGFhYSIpOyAKKworICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYWFhYWFhYWFhYWFhYWFhIiwgImFhYWFhYWFhYWFhYWFhYWEiKTsgCisKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWFhYWFhYWFhYWFhMGFhYSIsICJhYWFhYWFhYWFhYWFhYWFhIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYWFhYWFhYWFhYWFhYWFhIiwgImFhYWFhYWFhYWFhYTBhYWEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImFhYWFhYWFhYWFhYTBhYWEiLCAiYWFhYWFhYWFhYWFhMGFhYSIpOyAKKworICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYWFhYWFhYTBhYWFhYWFhIiwgImFhYWFhYWFhYWFhYWFhYWEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImFhYWFhYWFhYWFhYWFhYWEiLCAiYWFhYWFhYWFhYWFhMGFhYSIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWFhYWFhYWEwYWFhYWFhYSIsICJhYWFhYWFhYWFhYWEwYWFhIik7IAorCisgICB0cnlfaXN0cmkod290LGgscywgImFhYWFhYWFhYWFhYTBhYWEiLCAiYWFhYWFhYWFhYWFhYWFhYSIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWFhYWFhYWFhYWFhYWFhYSIsICJhYWFhYWFhYTBhYWFhYWFhIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYWFhYWFhYWFhYWEwYWFhIiwgImFhYWFhYWFhMGFhYWFhYWEiKTsgCisKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiMDAwMDAwMDAwMDAwMDAwMCIsICJhYWFhYWFhYTBhYWFhYWFhIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICI4MDAwMDAwMDAwMDAwMDAwIiwgImFhYWFhYWFhMGFhYWFhYWEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgIjAwMDAwMDAwMDAwMDAwMDEiLCAiYWFhYWFhYWEwYWFhYWFhYSIpOyAKKworICAgdHJ5X2lzdHJpKHdvdCxoLHMsICIwMDAwMDAwMDAwMDAwMDAwIiwgImFhYWFhYWFhYWFhYWFhYWEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImFhYWFhYWFhYWFhYWFhYWEiLCAiMDAwMDAwMDAwMDAwMDAwMCIpOyAKK30KKworCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KIC8vICAgICAgICAgICAgICAgICAgICAgICBJU1RSSV8xQSAgICAgICAgICAgICAgICAgICAgICAgLy8KIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAgLTE1NDYsNiArMTYzOSw4NiBAQAogCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgSVNUUklfNDIgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1VJbnQgaF9wY21waXN0cmlfNDIgKCBWMTI4KiBhcmdMLCBWMTI4KiBhcmdSICkKK3sKKyAgIFYxMjggYmxvY2tbMl07CisgICBtZW1jcHkoJmJsb2NrWzBdLCBhcmdMLCBzaXplb2YoVjEyOCkpOworICAgbWVtY3B5KCZibG9ja1sxXSwgYXJnUiwgc2l6ZW9mKFYxMjgpKTsKKyAgIFVMb25nIHJlcywgZmxhZ3M7CisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAgICJzdWJxICAgICAgJDEwMjQsICAlJXJzcCIgICAgICAgICAgICAgIlxuXHQiCisgICAgICAibW92ZHF1ICAgIDAoJTIpLCAgJSV4bW0yIiAgICAgICAgICAgICJcblx0IgorICAgICAgIm1vdmRxdSAgICAxNiglMiksICUleG1tMTEiICAgICAgICAgICAiXG5cdCIKKyAgICAgICJwY21waXN0cmkgJDB4NDIsICAlJXhtbTIsICUleG1tMTEiICAgIlxuXHQiCisgICAgICAicHVzaGZxIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcblx0IgorICAgICAgInBvcHEgICAgICAlJXJkeCIgICAgICAgICAgICAgICAgICAgICAiXG5cdCIKKyAgICAgICJtb3ZxICAgICAgJSVyY3gsICAlMCIgICAgICAgICAgICAgICAgIlxuXHQiCisgICAgICAibW92cSAgICAgICUlcmR4LCAgJTEiICAgICAgICAgICAgICAgICJcblx0IgorICAgICAgImFkZHEgICAgICAkMTAyNCwgICUlcnNwIiAgICAgICAgICAgICAiXG5cdCIKKyAgICAgIDogLypvdXQqLyAiPXIiKHJlcyksICI9ciIoZmxhZ3MpIDogInIiLyppbiovKCZibG9ja1swXSkKKyAgICAgIDogInJjeCIsInJkeCIsInhtbTAiLCJ4bW0yIiwieG1tMTEiLCJjYyIsIm1lbW9yeSIKKyAgICk7CisgICByZXR1cm4gKChmbGFncyAmIDB4OEQ1KSA8PCAxNikgfCAocmVzICYgMHhGRkZGKTsKK30KKworVUludCBzX3BjbXBpc3RyaV80MiAoIFYxMjgqIGFyZ0xVLCBWMTI4KiBhcmdSVSApCit7CisgICBWMTI4IHJlc1Y7CisgICBVSW50IHJlc09TWkFDUCwgcmVzRUNYOworICAgQm9vbCBvaworICAgICAgPSBwY21wWHN0clhfV1JLKCAmcmVzViwgJnJlc09TWkFDUCwgYXJnTFUsIGFyZ1JVLAorICAgICAgICAgICAgICAgICAgICAgICB6bWFza19mcm9tX1YxMjgoYXJnTFUpLAorICAgICAgICAgICAgICAgICAgICAgICB6bWFza19mcm9tX1YxMjgoYXJnUlUpLAorICAgICAgICAgICAgICAgICAgICAgICAweDQyLCBGYWxzZS8qIWlzU1RSTSovCisgICAgICAgICk7CisgICBhc3NlcnQob2spOworICAgcmVzRUNYID0gcmVzVi51SW50WzBdOworICAgcmV0dXJuIChyZXNPU1pBQ1AgPDwgMTYpIHwgcmVzRUNYOworfQorCit2b2lkIGlzdHJpXzQyICggdm9pZCApCit7CisgICBjaGFyKiB3b3QgPSAiNDIiOworICAgVUludCgqaCkoVjEyOCosVjEyOCopID0gaF9wY21waXN0cmlfNDI7CisgICBVSW50KCpzKShWMTI4KixWMTI4KikgPSBzX3BjbXBpc3RyaV80MjsKKworICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYmNkYWNiZGFiY2RhYmNkIiwgIjAwMDAwMDAwMDAwMDAwMGEiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImFiY2RhYmNkYWJjZGFiY2QiLCAiMDAwMDAwMDAwMDAwMDAwYiIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWJjZGFiY2RhYmNkYWJjZCIsICIwMDAwMDAwMDAwMDAwMGFiIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYmNkYWJjMGFiY2RhYmNkIiwgIjAwMDAwMDAwMDAwMGFiY2QiKTsgCisKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWJjZGFiY2RhYmNkYWJjZCIsICIwMDAwMDAwMDAwMDBhYmNkIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICIwYmNkYWJjZGFiY2RhYmNkIiwgIjAwMDAwMDAwMDAwMGFiY2QiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImFiY2RhYmNkYWJjZGEwY2QiLCAiMDAwMDAwMDAwMDAwYWJjZCIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWJjZGFiY2RhYmNkYWIwZCIsICIwMDAwMDAwMDAwMDBhYmNkIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYmNkYWJjZGFiY2RhYmMwIiwgIjAwMDAwMDAwMDAwMGFiY2QiKTsgCisKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWJjZGFiY2RhYmNkYWJjZCIsICIwMDAwMDAwMDAwMDBhYmNkIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICJhYmNkYWJjZGFiY2RhYmNkIiwgIjAwMDAwMDAwMDAwMGEwY2QiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgImFiY2RhYmNkYWJjZGFiY2QiLCAiMDAwMDAwMDAwMDAwYWIwZCIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWJjZGFiY2RhYmNkYWJjZCIsICIwMDAwMDAwMDAwMDBhYmMwIik7IAorCisgICB0cnlfaXN0cmkod290LGgscywgIjAwMDAwMDAwMDAwMDAwMDAiLCAiMDAwMDAwMDAwMDAwMDAwMCIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiYWFhYWFhYWFhYWFhYWFhYSIsICJhYWFhYWFhYWFhYWFhYWFhIik7IAorCisgICB0cnlfaXN0cmkod290LGgscywgIjAwMDBhYmNkYWJjZGFiY2QiLCAiMDAwMDAwMDAwMDAwYWJjZCIpOyAKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiMDAwMGFiY2RhYmNkYWJjZCIsICIwMDAwMDAwMDAwMDBkY2JhIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICIwMDAwYWJjZGFiY2RhYmNkIiwgIjAwMDAwMDAwMDAwMGJiYmIiKTsgCisgICB0cnlfaXN0cmkod290LGgscywgIjAwMDBhYmNkYWJjZGFiY2QiLCAiMDAwMDAwMDAwMDAwYmFiYSIpOyAKKworICAgdHJ5X2lzdHJpKHdvdCxoLHMsICIwMDAwYWJjZGFiY2RhYmNkIiwgIjAwMDAwMDAwMDAwYmFiYTAiKTsgCisKKyAgIHRyeV9pc3RyaSh3b3QsaCxzLCAiMGRkYzBmZmVlYmFkZjAwZCIsICIwMDAwMDAwMGNhZmViYWJlIik7IAorICAgdHJ5X2lzdHJpKHdvdCxoLHMsICIwZGRjMGZmZWViYWRmZWVkIiwgIjAwMDAwMDAwY2FmZWJhYmUiKTsgCit9CisKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwogLy8gICAgICAgICAgICAgICAgICAgICAgIElTVFJJXzBFICAgICAgICAgICAgICAgICAgICAgICAvLwogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAQCAtMTgwNyw2ICsxOTgwLDcgQEAKICAgIGlzdHJpXzRBKCk7CiAgICBpc3RyaV8zQSgpOwogICAgaXN0cmlfMDgoKTsKKyAgIGlzdHJpXzE4KCk7CiAgICBpc3RyaV8xQSgpOwogICAgaXN0cmlfMDIoKTsKICAgIGlzdHJpXzBDKCk7CkBAIC0xODE3LDYgKzE5OTEsNyBAQAogICAgaXN0cmlfNDYoKTsKICAgIGlzdHJpXzMwKCk7CiAgICBpc3RyaV80MCgpOworICAgaXN0cmlfNDIoKTsKICAgIGlzdHJpXzBFKCk7CiAgICBpc3RyaV8xNCgpOwogICAgaXN0cmlfMzQoKTsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYW1kNjQvcGNtcHN0cjY0LnN0ZG91dC5leHAgYi9ub25lL3Rlc3RzL2FtZDY0L3BjbXBzdHI2NC5zdGRvdXQuZXhwCmluZGV4IDU5NGY2MjAuLjQ5MjE1ODYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvYW1kNjQvcGNtcHN0cjY0LnN0ZG91dC5leHAKKysrIGIvbm9uZS90ZXN0cy9hbWQ2NC9wY21wc3RyNjQuc3Rkb3V0LmV4cApAQCAtODgsNiArODgsMzYgQEAKIGlzdHJpIDA4ICAwMDAwMDAwMDAwMDAwMDAxIGFhYWFhYWFhMGFhYWFhYWEgLT4gMDBjMTAwMDcgMDBjMTAwMDcgCiBpc3RyaSAwOCAgMDAwMDAwMDAwMDAwMDAwMCBhYWFhYWFhYWFhYWFhYWFhIC0+IDAwNDAwMDEwIDAwNDAwMDEwIAogaXN0cmkgMDggIGFhYWFhYWFhYWFhYWFhYWEgMDAwMDAwMDAwMDAwMDAwMCAtPiAwMDgwMDAxMCAwMDgwMDAxMCAKK2lzdHJpIDE4ICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgLT4gMDBjMDAwMTAgMDBjMDAwMTAgCitpc3RyaSAxOCAgYWFhYWFhYWFhYWFhYWFhYSBhYWFhYWFhYWFhYWFhYWFhIC0+IDAwMDAwMDEwIDAwMDAwMDEwIAoraXN0cmkgMTggIGFhYWEyYWFhYWFhYWFhYWEgYWFhYWFhYWFhYWFhYWFhYSAtPiAwMDAxMDAwYiAwMDAxMDAwYiAKK2lzdHJpIDE4ICBhYWFhYWFhYWEyYWFhYWFhIGFhYWFhYWFhYWFhYWFhYWEgLT4gMDAwMTAwMDYgMDAwMTAwMDYgCitpc3RyaSAxOCAgYWFhYWFhYWFhYWFhYTJhYSBhYWFhYWFhYWFhYWFhYWFhIC0+IDAwMDEwMDAyIDAwMDEwMDAyIAoraXN0cmkgMTggIGFhYWFhYWFhYWFhYWFhYWEgYWFhYTJhYWFhYWFhYWFhYSAtPiAwMDAxMDAwYiAwMDAxMDAwYiAKK2lzdHJpIDE4ICBhYWFhYWFhYWFhYWFhYWFhIGFhYWFhYWFhYTJhYWFhYWEgLT4gMDAwMTAwMDYgMDAwMTAwMDYgCitpc3RyaSAxOCAgYWFhYWFhYWFhYWFhYWFhYSBhYWFhYWFhYWFhYWFhYTJhIC0+IDAwMDEwMDAxIDAwMDEwMDAxIAoraXN0cmkgMTggIGFhYWFhYWFhYWFhYWFhYWEgYWFhYWFhYWFhYWFhYWFhYSAtPiAwMDAwMDAxMCAwMDAwMDAxMCAKK2lzdHJpIDE4ICBiYWFhYWFhYWFhYWFhYWFhIGFhYWFhYWFhYWFhYWFhYWEgLT4gMDAwMTAwMGYgMDAwMTAwMGYgCitpc3RyaSAxOCAgYjlhYWFhYWFhYWFhYWFhYSBhYWFhYWFhYWFhYWFhYWFhIC0+IDAwMDEwMDBlIDAwMDEwMDBlIAoraXN0cmkgMTggIGI5YmFhYWFhYWFhYWFhYWEgYWFhYWFhYWFhYWFhYWFhYSAtPiAwMDAxMDAwZCAwMDAxMDAwZCAKK2lzdHJpIDE4ICBiOWJhYWFhYWFhYWFhYWFhIGFhYWFhYWFhYWFhYWFhYWEgLT4gMDAwMTAwMGQgMDAwMTAwMGQgCitpc3RyaSAxOCAgYjliYWFhYWFhYWFhYWFhYSBhYWFhYWFhYWFhYWE3YWFhIC0+IDAwMDEwMDAzIDAwMDEwMDAzIAoraXN0cmkgMTggIGI5YmFhYWFhYWFhYWFhYWEgYWFhYWFhYWEyYWFhNGFhYSAtPiAwMDAxMDAwMyAwMDAxMDAwMyAKK2lzdHJpIDE4ICBhYWFhYWFhYWFhYWFhYWFhIGFhYWFhYWFhYWFhYWFhYWEgLT4gMDAwMDAwMTAgMDAwMDAwMTAgCitpc3RyaSAxOCAgYWFhYWFhYWFhYWFhMGFhYSBhYWFhYWFhYWFhYWFhYWFhIC0+IDAwNDEwMDAzIDAwNDEwMDAzIAoraXN0cmkgMTggIGFhYWFhYWFhYWFhYWFhYWEgYWFhYWFhYWFhYWFhMGFhYSAtPiAwMDgxMDAwMyAwMDgxMDAwMyAKK2lzdHJpIDE4ICBhYWFhYWFhYWFhYWEwYWFhIGFhYWFhYWFhYWFhYTBhYWEgLT4gMDBjMDAwMTAgMDBjMDAwMTAgCitpc3RyaSAxOCAgYWFhYWFhYWEwYWFhYWFhYSBhYWFhYWFhYWFhYWFhYWFhIC0+IDAwNDEwMDA3IDAwNDEwMDA3IAoraXN0cmkgMTggIGFhYWFhYWFhYWFhYWFhYWEgYWFhYWFhYWFhYWFhMGFhYSAtPiAwMDgxMDAwMyAwMDgxMDAwMyAKK2lzdHJpIDE4ICBhYWFhYWFhYTBhYWFhYWFhIGFhYWFhYWFhYWFhYTBhYWEgLT4gMDBjMTAwMDMgMDBjMTAwMDMgCitpc3RyaSAxOCAgYWFhYWFhYWFhYWFhMGFhYSBhYWFhYWFhYWFhYWFhYWFhIC0+IDAwNDEwMDAzIDAwNDEwMDAzIAoraXN0cmkgMTggIGFhYWFhYWFhYWFhYWFhYWEgYWFhYWFhYWEwYWFhYWFhYSAtPiAwMDgxMDAwNyAwMDgxMDAwNyAKK2lzdHJpIDE4ICBhYWFhYWFhYWFhYWEwYWFhIGFhYWFhYWFhMGFhYWFhYWEgLT4gMDBjMTAwMDMgMDBjMTAwMDMgCitpc3RyaSAxOCAgMDAwMDAwMDAwMDAwMDAwMCBhYWFhYWFhYTBhYWFhYWFhIC0+IDA4YzEwMDAwIDA4YzEwMDAwIAoraXN0cmkgMTggIDgwMDAwMDAwMDAwMDAwMDAgYWFhYWFhYWEwYWFhYWFhYSAtPiAwOGMxMDAwMCAwOGMxMDAwMCAKK2lzdHJpIDE4ICAwMDAwMDAwMDAwMDAwMDAxIGFhYWFhYWFhMGFhYWFhYWEgLT4gMDhjMTAwMDAgMDhjMTAwMDAgCitpc3RyaSAxOCAgMDAwMDAwMDAwMDAwMDAwMCBhYWFhYWFhYWFhYWFhYWFhIC0+IDA4NDEwMDAwIDA4NDEwMDAwIAoraXN0cmkgMTggIGFhYWFhYWFhYWFhYWFhYWEgMDAwMDAwMDAwMDAwMDAwMCAtPiAwODgxMDAwMCAwODgxMDAwMCAKIGlzdHJpIDFBICAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgLT4gMDBjMDAwMTAgMDBjMDAwMTAgCiBpc3RyaSAxQSAgYWFhYWFhYWFhYWFhYWFhYSBhYWFhYWFhYWFhYWFhYWFhIC0+IDAwMDAwMDEwIDAwMDAwMDEwIAogaXN0cmkgMUEgIGFhYWEyYWFhYWFhYWFhYWEgYWFhYWFhYWFhYWFhYWFhYSAtPiAwMDAxMDAwYiAwMDAxMDAwYiAKQEAgLTMzMiw2ICszNjIsMjggQEAKIGlzdHJpIDQwICAwMDAwYWJjZGFiY2RhYmNkIDAwMDAwMDAwMDAwYmFiYTAgLT4gMDBjMDAwMTAgMDBjMDAwMTAgCiBpc3RyaSA0MCAgMGRkYzBmZmVlYmFkZjAwZCAwMDAwMDAwMGNhZmViYWJlIC0+IDAwYzAwMDEwIDAwYzAwMDEwIAogaXN0cmkgNDAgIDBkZGMwZmZlZWJhZGZlZWQgMDAwMDAwMDBjYWZlYmFiZSAtPiAwMGMxMDAwYSAwMGMxMDAwYSAKK2lzdHJpIDQyICBhYmNkYWNiZGFiY2RhYmNkIDAwMDAwMDAwMDAwMDAwMGEgLT4gMDA4MTAwMGYgMDA4MTAwMGYgCitpc3RyaSA0MiAgYWJjZGFiY2RhYmNkYWJjZCAwMDAwMDAwMDAwMDAwMDBiIC0+IDAwODEwMDBlIDAwODEwMDBlIAoraXN0cmkgNDIgIGFiY2RhYmNkYWJjZGFiY2QgMDAwMDAwMDAwMDAwMDBhYiAtPiAwMDgxMDAwZiAwMDgxMDAwZiAKK2lzdHJpIDQyICBhYmNkYWJjMGFiY2RhYmNkIDAwMDAwMDAwMDAwMGFiY2QgLT4gMDhjMTAwMDcgMDhjMTAwMDcgCitpc3RyaSA0MiAgYWJjZGFiY2RhYmNkYWJjZCAwMDAwMDAwMDAwMDBhYmNkIC0+IDA4ODEwMDBmIDA4ODEwMDBmIAoraXN0cmkgNDIgIDBiY2RhYmNkYWJjZGFiY2QgMDAwMDAwMDAwMDAwYWJjZCAtPiAwOGMxMDAwZSAwOGMxMDAwZSAKK2lzdHJpIDQyICBhYmNkYWJjZGFiY2RhMGNkIDAwMDAwMDAwMDAwMGFiY2QgLT4gMDhjMTAwMDEgMDhjMTAwMDEgCitpc3RyaSA0MiAgYWJjZGFiY2RhYmNkYWIwZCAwMDAwMDAwMDAwMDBhYmNkIC0+IDA4YzEwMDAwIDA4YzEwMDAwIAoraXN0cmkgNDIgIGFiY2RhYmNkYWJjZGFiYzAgMDAwMDAwMDAwMDAwYWJjZCAtPiAwMGMwMDAxMCAwMGMwMDAxMCAKK2lzdHJpIDQyICBhYmNkYWJjZGFiY2RhYmNkIDAwMDAwMDAwMDAwMGFiY2QgLT4gMDg4MTAwMGYgMDg4MTAwMGYgCitpc3RyaSA0MiAgYWJjZGFiY2RhYmNkYWJjZCAwMDAwMDAwMDAwMDBhMGNkIC0+IDA4ODEwMDBkIDA4ODEwMDBkIAoraXN0cmkgNDIgIGFiY2RhYmNkYWJjZGFiY2QgMDAwMDAwMDAwMDAwYWIwZCAtPiAwODgxMDAwYyAwODgxMDAwYyAKK2lzdHJpIDQyICBhYmNkYWJjZGFiY2RhYmNkIDAwMDAwMDAwMDAwMGFiYzAgLT4gMDA4MDAwMTAgMDA4MDAwMTAgCitpc3RyaSA0MiAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIC0+IDAwYzAwMDEwIDAwYzAwMDEwIAoraXN0cmkgNDIgIGFhYWFhYWFhYWFhYWFhYWEgYWFhYWFhYWFhYWFhYWFhYSAtPiAwODAxMDAwZiAwODAxMDAwZiAKK2lzdHJpIDQyICAwMDAwYWJjZGFiY2RhYmNkIDAwMDAwMDAwMDAwMGFiY2QgLT4gMDhjMTAwMGIgMDhjMTAwMGIgCitpc3RyaSA0MiAgMDAwMGFiY2RhYmNkYWJjZCAwMDAwMDAwMDAwMDBkY2JhIC0+IDA4YzEwMDBiIDA4YzEwMDBiIAoraXN0cmkgNDIgIDAwMDBhYmNkYWJjZGFiY2QgMDAwMDAwMDAwMDAwYmJiYiAtPiAwMGMxMDAwYSAwMGMxMDAwYSAKK2lzdHJpIDQyICAwMDAwYWJjZGFiY2RhYmNkIDAwMDAwMDAwMDAwMGJhYmEgLT4gMDBjMTAwMGIgMDBjMTAwMGIgCitpc3RyaSA0MiAgMDAwMGFiY2RhYmNkYWJjZCAwMDAwMDAwMDAwMGJhYmEwIC0+IDAwYzAwMDEwIDAwYzAwMDEwIAoraXN0cmkgNDIgIDBkZGMwZmZlZWJhZGYwMGQgMDAwMDAwMDBjYWZlYmFiZSAtPiAwMGMwMDAxMCAwMGMwMDAxMCAKK2lzdHJpIDQyICAwZGRjMGZmZWViYWRmZWVkIDAwMDAwMDAwY2FmZWJhYmUgLT4gMDBjMTAwMGEgMDBjMTAwMGEgCiBpc3RyaSAwRSAgMTExMTExMTExYWJjZGUxMSAwMDAwMDAwMDAwMGFiY2RlIC0+IDAwODEwMDAyIDAwODEwMDAyIAogaXN0cmkgMEUgIDExMTExMTExMWFiY2RlMTEgMDAwMGFiY2RlMDBhYmNkZSAtPiAwMDgxMDAwMiAwMDgxMDAwMiAKIGlzdHJpIDBFICAxMTExMTExMTExYWJjZGUxIDAwMDAwMDAwMDAwYWJjZGUgLT4gMDA4MTAwMDEgMDA4MTAwMDEgCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L3JlZHVuZGFudFJleFcuYyBiL25vbmUvdGVzdHMvYW1kNjQvcmVkdW5kYW50UmV4Vy5jCmluZGV4IGUxODkyNjcuLjBhNTBjM2IgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvYW1kNjQvcmVkdW5kYW50UmV4Vy5jCisrKyBiL25vbmUvdGVzdHMvYW1kNjQvcmVkdW5kYW50UmV4Vy5jCkBAIC01OTYsNiArNTk2LDIzIEBACiAgICAgIGFmdGVyX3Rlc3QoICJyZXguV0Igc3Vic2QgIC0weDgoJXIxMyksJXhtbTEiLCByZWdzLCBtZW0gKTsKICAgIH0KIAorICAgLyogY3Z0cHMycGQgbWVtLCByZWcgICA0OCAwZiA1YSAwNyAgICAgcmV4LlcgY3Z0cHMycGQgICglcmRpKSwleG1tMCAqLworICAgeworICAgICBiZWZvcmVfdGVzdCggcmVncywgbWVtICk7CisgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgICAgIm1vdnEgJTAsICUlcjE0XG4iCisgICAgICAgIlx0bW92cSAlMSwgJSVyMTVcbiIKKyAgICAgICBMT0FEX1hNTVJFR1NfZnJvbV9yMTQKKyAgICAgICAiXHRtb3ZxICUlcjE1LCAlJXJkaVxuIgorICAgICAgICJcdC5ieXRlIDB4NDgsMHgwZiwweDVhLDB4MDdcbiIKKyAgICAgICBTQVZFX1hNTVJFR1NfdG9fcjE0CisgICAgICAgICAgOiAvKm91dCovIDogLyppbiovICJyIihyZWdzKSwgInIiKCAtMCArIChjaGFyKikmbWVtLT5kcXdbMl0gKQorICAgICAgICAgICAgICAgICAgICA6IC8qdHJhc2gqLyAicjE0IiwicjE1IiwibWVtb3J5IiwgWE1NUkVHUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJkaSIKKyAgICAgKTsKKyAgICAgYWZ0ZXJfdGVzdCggInJleC5XIGN2dHBzMnBkICAoJXJkaSksJXhtbTAiLCByZWdzLCBtZW0gKTsKKyAgIH0KKwogICAgZnJlZShyZWdzKTsKICAgIGZyZWUobWVtKTsKICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9yZWR1bmRhbnRSZXhXLnN0ZG91dC5leHAgYi9ub25lL3Rlc3RzL2FtZDY0L3JlZHVuZGFudFJleFcuc3Rkb3V0LmV4cAppbmRleCBkZDE2OTdhLi45NGIyNTVhIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FtZDY0L3JlZHVuZGFudFJleFcuc3Rkb3V0LmV4cAorKysgYi9ub25lL3Rlc3RzL2FtZDY0L3JlZHVuZGFudFJleFcuc3Rkb3V0LmV4cApAQCAtNjQ4LDMgKzY0OCwyOSBAQAogICAleG1tMTUgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KIH0KIAorYWZ0ZXIgInJleC5XIGN2dHBzMnBkICAoJXJkaSksJXhtbTAiIChkcXdzIGluIG9yZGVyIFsxNSAuLiAwXSkgeworICBbMF0gICAgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgWzFdICAgIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisgIFsyXSAgICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorICBbM10gICAgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgWzRdICAgIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCit9CithZnRlciAicmV4LlcgY3Z0cHMycGQgICglcmRpKSwleG1tMCIgKHhtbXMgaW4gb3JkZXIgWzE1Li4wXSkgeworICAleG1tIDAgMTEzYTFjN2Q1NTU0NTM1MjEzYmQ5Y2ZmZDQ1MzUyNTEKKyAgJXhtbSAxIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisgICV4bW0gMiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorICAleG1tIDMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgJXhtbSA0IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisgICV4bW0gNSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorICAleG1tIDYgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgJXhtbSA3IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisgICV4bW0gOCAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorICAleG1tIDkgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgJXhtbTEwIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisgICV4bW0xMSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorICAleG1tMTIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgJXhtbTEzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisgICV4bW0xNCAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorICAleG1tMTUgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KK30KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9zc2U0LTY0LmMgYi9ub25lL3Rlc3RzL2FtZDY0L3NzZTQtNjQuYwppbmRleCA0NmUwY2RjLi42NjJkZDUyIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FtZDY0L3NzZTQtNjQuYworKysgYi9ub25lL3Rlc3RzL2FtZDY0L3NzZTQtNjQuYwpAQCAtMTIsMzUgKzEyLDEwIEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KLS8vI2luY2x1ZGUgInRlc3RzL21hbGxvYy5oIiAvLyByZWVuYWJsZSB3aGVuIHJlaW50ZWdyYXRlZAorI2luY2x1ZGUgInRlc3RzL21hbGxvYy5oIgogI2luY2x1ZGUgPHN0cmluZy5oPgogCiAKLQotLy8gcm1tZSB3aGVuIHJlaW50ZWdyYXRlZAotLy8gQWxsb2NhdGVzIGEgMTYtYWxpZ25lZCBibG9jay4gIEFzc2VydHMgaWYgdGhlIGFsbG9jYXRpb24gZmFpbHMuCi0jaWZkZWYgVkdPX2RhcndpbgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2Vsc2UKLSNpbmNsdWRlIDxtYWxsb2MuaD4KLSNlbmRpZgotX19hdHRyaWJ1dGVfXygodW51c2VkKSkKLXN0YXRpYyB2b2lkKiBtZW1hbGlnbjE2KHNpemVfdCBzekIpCi17Ci0gICB2b2lkKiB4OwotI2lmIGRlZmluZWQoVkdPX2RhcndpbikKLSAgIC8vIERhcndpbiBsYWNrcyBtZW1hbGlnbiwgYnV0IGl0cyBtYWxsb2MgaXMgYWx3YXlzIDE2LWFsaWduZWQgYW55d2F5LgotICAgeCA9IG1hbGxvYyhzekIpOwotI2Vsc2UKLSAgIHggPSBtZW1hbGlnbigxNiwgc3pCKTsKLSNlbmRpZgotICAgYXNzZXJ0KHgpOwotICAgYXNzZXJ0KDAgPT0gKCgxNi0xKSAmICh1bnNpZ25lZCBsb25nKXgpKTsKLSAgIHJldHVybiB4OwotfQotCi0KLQogdHlwZWRlZiAgdW5zaWduZWQgY2hhciAgICAgICAgICAgVjEyOFsxNl07CiB0eXBlZGVmICB1bnNpZ25lZCBpbnQgICAgICAgICAgICBVSW50OwogdHlwZWRlZiAgc2lnbmVkIGludCAgICAgICAgICAgICAgSW50OwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC9zc2U0LTY0LnZndGVzdCBiL25vbmUvdGVzdHMvYW1kNjQvc3NlNC02NC52Z3Rlc3QKaW5kZXggYTVlN2YxOS4uODcyZGNlYSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbWQ2NC9zc2U0LTY0LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL2FtZDY0L3NzZTQtNjQudmd0ZXN0CkBAIC0xLDMgKzEsNCBAQAogcHJvZzogc3NlNC02NAogcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy94ODZfYW1kNjRfZmVhdHVyZXMgYW1kNjQtc3NlNDIKIHZnb3B0czogLXEKK3N0ZG91dF9maWx0ZXI6IGZpbHRlcl9pbmZfbmFuCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FtZDY0L3hhY3FfeHJlbC5jIGIvbm9uZS90ZXN0cy9hbWQ2NC94YWNxX3hyZWwuYwppbmRleCBjM2FiZTAxLi41ZjlmYWMwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FtZDY0L3hhY3FfeHJlbC5jCisrKyBiL25vbmUvdGVzdHMvYW1kNjQveGFjcV94cmVsLmMKQEAgLTE2NSw3ICsxNjUsNyBAQAogICAgICAgInhvcnEgICAgICUlcmF4LCAlJXJheCIgICAgICJcblx0IgogICAgICAgInhvcnEgICAgICUlcmR4LCAlJXJkeCIgICAgICJcblx0IgogICAgICAgIm1vdmFic3EgJDB4MTEyMjMzNDQ1NTY2Nzc4OCwgJSVyY3giICAgIlxuXHQiCi0gICAgICAibW92YWJzcSAkMHhmZmVlZGRjY2JiYWE5OTg4LCAlJXJkeCIgICAiXG5cdCIKKyAgICAgICJtb3ZhYnNxICQweGZmZWVkZGNjYmJhYTk5ODgsICUlcmJ4IiAgICJcblx0IgogICAgICAgInhhY3F1aXJlIGxvY2sgY21weGNoZzhiICglMCkiICAgICAiXG5cdCIKICAgICAgICJ4cmVsZWFzZSBsb2NrIGNtcHhjaGc4YiAoJTApIiAgICAgIlxuXHQiCiAgICAgICA6IDogInIiKCZuKSA6ICJjYyIsICJtZW1vcnkiLCAicmF4IiwgInJkeCIsICJyY3giLCAicmR4IgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbWQ2NC94YWNxX3hyZWwuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvYW1kNjQveGFjcV94cmVsLnN0ZG91dC5leHAKaW5kZXggZjRlY2I0My4uMDkzMmIyMiAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbWQ2NC94YWNxX3hyZWwuc3Rkb3V0LmV4cAorKysgYi9ub25lL3Rlc3RzL2FtZDY0L3hhY3FfeHJlbC5zdGRvdXQuZXhwCkBAIC0xMyw3ICsxMyw3IEBACiByZXN1bHQgZm9yICdidHInIGlzIDU1NTU1NTU1NTU1NTQ1MTUKIHJlc3VsdCBmb3IgJ2J0cycgaXMgNTdkNTU1NTU1ZjU1NWQ1NQogcmVzdWx0IGZvciAnY21weGNoZycgaXMgMjcxODMxNDE1OTI3ZDQ1OQotcmVzdWx0IGZvciAnY21weGNoZzhiJyBpcyA1NTY2Nzc4ODAwMDAwMDAwCityZXN1bHQgZm9yICdjbXB4Y2hnOGInIGlzIDU1NjY3Nzg4YmJhYTk5ODgKIHJlc3VsdCBmb3IgJ3hhZGQnIGlzIGQxYzJkYmVjYjYyMmY4OTcKIHJlc3VsdCBmb3IgJ3hjaGcnIGlzIDU1NTU1NTU1NTU1NTU1NTUKIHJlc3VsdCBmb3IgJ3hjaGctbm8tbG9jaycgaXMgNTU1NTU1NTU1NTU1NTU1NQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbnNpLmMgYi9ub25lL3Rlc3RzL2Fuc2kuYwppbmRleCBlNWI2N2Q0Li4wOGM3MDEwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2Fuc2kuYworKysgYi9ub25lL3Rlc3RzL2Fuc2kuYwpAQCAtNyw2ICs3LDcgQEAKICNpbmNsdWRlICJ2YWxncmluZC5oIgogI2luY2x1ZGUgIi4uLy4uL21lbWNoZWNrL21lbWNoZWNrLmgiCiAjaW5jbHVkZSAiLi4vLi4vaGVsZ3JpbmQvaGVsZ3JpbmQuaCIKKyNpbmNsdWRlICIuLi8uLi9jYWxsZ3JpbmQvY2FsbGdyaW5kLmgiCiAjaW5jbHVkZSAiLi4vLi4vZHJkL2RyZC5oIgogCiBpbnQgbWFpbih2b2lkKQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hbnNpLnZndGVzdCBiL25vbmUvdGVzdHMvYW5zaS52Z3Rlc3QKaW5kZXggMTFmNDI0Ny4uODM4M2FmNiAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hbnNpLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL2Fuc2kudmd0ZXN0CkBAIC0xICsxLDIgQEAKIHByb2c6IGFuc2kKK3ByZXJlcTogdGVzdCAteCBhbnNpCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2FybS92Y3Z0X2ZpeGVkX2Zsb2F0X1ZGUC5jIGIvbm9uZS90ZXN0cy9hcm0vdmN2dF9maXhlZF9mbG9hdF9WRlAuYwppbmRleCA1ZDk4ODY0Li4xN2E2ZWNlIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2FybS92Y3Z0X2ZpeGVkX2Zsb2F0X1ZGUC5jCisrKyBiL25vbmUvdGVzdHMvYXJtL3ZjdnRfZml4ZWRfZmxvYXRfVkZQLmMKQEAgLTMsNiArMyw3IEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKIHR5cGVkZWYgIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgIFVMb25nOwordHlwZWRlZiAgdW5zaWduZWQgaW50ICAgICAgICAgICAgVUludDsKIAogX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBmbG9hdCBzMzJfdG9fZjMyX2ltbTEoaW50IHgpCiB7CkBAIC0yMTIsNiArMjEzLDg2IEBACiAKIAogCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIFVJbnQgZjMyX3RvX3MzMl9pbW0xICggZmxvYXQgZiApCit7CisgIGZsb2F0IGJsb2NrWzVdOworICBtZW1zZXQoYmxvY2ssIDB4NTUsIHNpemVvZihibG9jaykpOworICBibG9ja1sxXSA9IGY7CisgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICJtb3YgcjgsICUwIiAgICAgICAgICAgICAgICJcblx0IgorICAgICJ2bGRyIHMxNCwgW3I4LCAjNF0iICAgICAgICJcblx0IgorICAgICJ2Y3Z0LnMzMi5mMzIgczE0LHMxNCwjMSIgICJcblx0IgorICAgICJ2c3RyIHMxNCwgW3I4LCMxMl0iICAgICAgICJcblx0IgorICAgIDogOiAvKklOKi8iciIoJmJsb2NrWzBdKSA6IC8qVFJBU0gqLyJzMTQiLCJyOCIsIm1lbW9yeSIKKyAgKTsKKyAgcmV0dXJuICooVUludCopKCZibG9ja1szXSk7Cit9CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgVUludCBmMzJfdG9fczMyX2ltbTMyICggZmxvYXQgZiApCit7CisgIGZsb2F0IGJsb2NrWzVdOworICBtZW1zZXQoYmxvY2ssIDB4NTUsIHNpemVvZihibG9jaykpOworICBibG9ja1sxXSA9IGY7CisgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICJtb3YgcjgsICUwIiAgICAgICAgICAgICAgICJcblx0IgorICAgICJ2bGRyIHMxNCwgW3I4LCAjNF0iICAgICAgICJcblx0IgorICAgICJ2Y3Z0LnMzMi5mMzIgczE0LHMxNCwjMzIiICJcblx0IgorICAgICJ2c3RyIHMxNCwgW3I4LCMxMl0iICAgICAgICJcblx0IgorICAgIDogOiAvKklOKi8iciIoJmJsb2NrWzBdKSA6IC8qVFJBU0gqLyJzMTQiLCJyOCIsIm1lbW9yeSIKKyAgKTsKKyAgcmV0dXJuICooVUludCopKCZibG9ja1szXSk7Cit9CisKK3ZvaWQgdHJ5X2YzMl90b19zMzIgKCBmbG9hdCBmICkKK3sKKyAgVUludCByZXMgPSBmMzJfdG9fczMyX2ltbTMyKGYpOworICBwcmludGYoImYzMl90b19zMzJfaW1tMzI6ICAlMTguMTRlICAtPiAgMHglMDh4XG4iLCAoZG91YmxlKWYsIHJlcyk7CisgIHJlcyA9IGYzMl90b19zMzJfaW1tMShmKTsKKyAgcHJpbnRmKCJmMzJfdG9fczMyX2ltbTE6ICAgJTE4LjE0ZSAgLT4gIDB4JTA4eFxuIiwgKGRvdWJsZSlmLCByZXMpOworfQorCisKKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBVSW50IGYzMl90b191MzJfaW1tMSAoIGZsb2F0IGYgKQoreworICBmbG9hdCBibG9ja1s1XTsKKyAgbWVtc2V0KGJsb2NrLCAweDU1LCBzaXplb2YoYmxvY2spKTsKKyAgYmxvY2tbMV0gPSBmOworICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAibW92IHI4LCAlMCIgICAgICAgICAgICAgICAiXG5cdCIKKyAgICAidmxkciBzMTQsIFtyOCwgIzRdIiAgICAgICAiXG5cdCIKKyAgICAidmN2dC51MzIuZjMyIHMxNCxzMTQsIzEiICAiXG5cdCIKKyAgICAidnN0ciBzMTQsIFtyOCwjMTJdIiAgICAgICAiXG5cdCIKKyAgICA6IDogLypJTiovInIiKCZibG9ja1swXSkgOiAvKlRSQVNIKi8iczE0IiwicjgiLCJtZW1vcnkiCisgICk7CisgIHJldHVybiAqKFVJbnQqKSgmYmxvY2tbM10pOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIFVJbnQgZjMyX3RvX3UzMl9pbW0zMiAoIGZsb2F0IGYgKQoreworICBmbG9hdCBibG9ja1s1XTsKKyAgbWVtc2V0KGJsb2NrLCAweDU1LCBzaXplb2YoYmxvY2spKTsKKyAgYmxvY2tbMV0gPSBmOworICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAibW92IHI4LCAlMCIgICAgICAgICAgICAgICAiXG5cdCIKKyAgICAidmxkciBzMTQsIFtyOCwgIzRdIiAgICAgICAiXG5cdCIKKyAgICAidmN2dC51MzIuZjMyIHMxNCxzMTQsIzMyIiAiXG5cdCIKKyAgICAidnN0ciBzMTQsIFtyOCwjMTJdIiAgICAgICAiXG5cdCIKKyAgICA6IDogLypJTiovInIiKCZibG9ja1swXSkgOiAvKlRSQVNIKi8iczE0IiwicjgiLCJtZW1vcnkiCisgICk7CisgIHJldHVybiAqKFVJbnQqKSgmYmxvY2tbM10pOworfQorCit2b2lkIHRyeV9mMzJfdG9fdTMyICggZmxvYXQgZiApCit7CisgIFVJbnQgcmVzID0gZjMyX3RvX3UzMl9pbW0zMihmKTsKKyAgcHJpbnRmKCJmMzJfdG9fdTMyX2ltbTMyOiAgJTE4LjE0ZSAgLT4gIDB4JTA4eFxuIiwgKGRvdWJsZSlmLCByZXMpOworICByZXMgPSBmMzJfdG9fdTMyX2ltbTEoZik7CisgIHByaW50ZigiZjMyX3RvX3UzMl9pbW0xOiAgICUxOC4xNGUgIC0+ICAweCUwOHhcbiIsIChkb3VibGUpZiwgcmVzKTsKK30KKworCisKIGludCBtYWluICggdm9pZCAgKQogewogICBpbnQgaTsKQEAgLTI4OSw1ICszNzAsMjMgQEAKICAgICAgdHJ5X2Y2NF90b191MzIoZCk7CiAgIH0KIAorICBwcmludGYoIlxuIik7CisgIHRyeV9mMzJfdG9fczMyKDAuMCk7CisgIHRyeV9mMzJfdG9fczMyKDEuMCk7CisgIHRyeV9mMzJfdG9fczMyKC0xLjApOworICB0cnlfZjMyX3RvX3MzMigwLjAgLyAwLjApOworICBmb3IgKGQgPSAtMTAwMDAwLjAxOyBkIDwgMTAwMDAwLjA7IGQgKz0gMTAwMDAuMCkgeworICAgICB0cnlfZjMyX3RvX3MzMigoZmxvYXQpZCk7CisgIH0KKworICBwcmludGYoIlxuIik7CisgIHRyeV9mMzJfdG9fdTMyKDAuMCk7CisgIHRyeV9mMzJfdG9fdTMyKDEuMCk7CisgIHRyeV9mMzJfdG9fdTMyKC0xLjApOworICB0cnlfZjMyX3RvX3UzMigwLjAgLyAwLjApOworICBmb3IgKGQgPSAtMTAwMDAwLjAxOyBkIDwgMTAwMDAwLjA7IGQgKz0gMTAwMDAuMCkgeworICAgICB0cnlfZjMyX3RvX3UzMigoZmxvYXQpZCk7CisgIH0KKwogICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYXJtL3ZjdnRfZml4ZWRfZmxvYXRfVkZQLnN0ZG91dC5leHAgYi9ub25lL3Rlc3RzL2FybS92Y3Z0X2ZpeGVkX2Zsb2F0X1ZGUC5zdGRvdXQuZXhwCmluZGV4IDY0ZTYyYWYuLmJmYzAwMzIgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvYXJtL3ZjdnRfZml4ZWRfZmxvYXRfVkZQLnN0ZG91dC5leHAKKysrIGIvbm9uZS90ZXN0cy9hcm0vdmN2dF9maXhlZF9mbG9hdF9WRlAuc3Rkb3V0LmV4cApAQCAtOTY3LDMgKzk2NywxMDUgQEAKIGY2NF90b191MzJfaW1tMTogICA4Ljk5OTk5OTAwMDAwMDAwZSswNCAgLT4gIDB4MDAwMDAwMDAwMDAyYmYxZgogZjY0X3RvX3UzMl9pbW0zMjogIDkuOTk5OTk5MDAwMDAwMDBlKzA0ICAtPiAgMHgwMDAwMDAwMGZmZmZmZmZmCiBmNjRfdG9fdTMyX2ltbTE6ICAgOS45OTk5OTkwMDAwMDAwMGUrMDQgIC0+ICAweDAwMDAwMDAwMDAwMzBkM2YKKworZjMyX3RvX3MzMl9pbW0zMjogIDAuMDAwMDAwMDAwMDAwMDBlKzAwICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3MzMl9pbW0xOiAgIDAuMDAwMDAwMDAwMDAwMDBlKzAwICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3MzMl9pbW0zMjogIDEuMDAwMDAwMDAwMDAwMDBlKzAwICAtPiAgMHg3ZmZmZmZmZgorZjMyX3RvX3MzMl9pbW0xOiAgIDEuMDAwMDAwMDAwMDAwMDBlKzAwICAtPiAgMHgwMDAwMDAwMgorZjMyX3RvX3MzMl9pbW0zMjogIC0xLjAwMDAwMDAwMDAwMDAwZSswMCAgLT4gIDB4ODAwMDAwMDAKK2YzMl90b19zMzJfaW1tMTogICAtMS4wMDAwMDAwMDAwMDAwMGUrMDAgIC0+ICAweGZmZmZmZmZlCitmMzJfdG9fczMyX2ltbTMyOiAgICAgICAgICAgICAgICAgbmFuICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3MzMl9pbW0xOiAgICAgICAgICAgICAgICAgIG5hbiAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b19zMzJfaW1tMzI6ICAtMS4wMDAwMDAwNzgxMjUwMGUrMDUgIC0+ICAweDgwMDAwMDAwCitmMzJfdG9fczMyX2ltbTE6ICAgLTEuMDAwMDAwMDc4MTI1MDBlKzA1ICAtPiAgMHhmZmZjZjJjMAorZjMyX3RvX3MzMl9pbW0zMjogIC05LjAwMDAwMDc4MTI1MDAwZSswNCAgLT4gIDB4ODAwMDAwMDAKK2YzMl90b19zMzJfaW1tMTogICAtOS4wMDAwMDA3ODEyNTAwMGUrMDQgIC0+ICAweGZmZmQ0MGUwCitmMzJfdG9fczMyX2ltbTMyOiAgLTguMDAwMDAwNzgxMjUwMDBlKzA0ICAtPiAgMHg4MDAwMDAwMAorZjMyX3RvX3MzMl9pbW0xOiAgIC04LjAwMDAwMDc4MTI1MDAwZSswNCAgLT4gIDB4ZmZmZDhmMDAKK2YzMl90b19zMzJfaW1tMzI6ICAtNy4wMDAwMDA3ODEyNTAwMGUrMDQgIC0+ICAweDgwMDAwMDAwCitmMzJfdG9fczMyX2ltbTE6ICAgLTcuMDAwMDAwNzgxMjUwMDBlKzA0ICAtPiAgMHhmZmZkZGQyMAorZjMyX3RvX3MzMl9pbW0zMjogIC02LjAwMDAwMTE3MTg3NTAwZSswNCAgLT4gIDB4ODAwMDAwMDAKK2YzMl90b19zMzJfaW1tMTogICAtNi4wMDAwMDExNzE4NzUwMGUrMDQgIC0+ICAweGZmZmUyYjQwCitmMzJfdG9fczMyX2ltbTMyOiAgLTUuMDAwMDAxMTcxODc1MDBlKzA0ICAtPiAgMHg4MDAwMDAwMAorZjMyX3RvX3MzMl9pbW0xOiAgIC01LjAwMDAwMTE3MTg3NTAwZSswNCAgLT4gIDB4ZmZmZTc5NjAKK2YzMl90b19zMzJfaW1tMzI6ICAtNC4wMDAwMDExNzE4NzUwMGUrMDQgIC0+ICAweDgwMDAwMDAwCitmMzJfdG9fczMyX2ltbTE6ICAgLTQuMDAwMDAxMTcxODc1MDBlKzA0ICAtPiAgMHhmZmZlYzc4MAorZjMyX3RvX3MzMl9pbW0zMjogIC0zLjAwMDAwMDk3NjU2MjUwZSswNCAgLT4gIDB4ODAwMDAwMDAKK2YzMl90b19zMzJfaW1tMTogICAtMy4wMDAwMDA5NzY1NjI1MGUrMDQgIC0+ICAweGZmZmYxNWEwCitmMzJfdG9fczMyX2ltbTMyOiAgLTIuMDAwMDAwOTc2NTYyNTBlKzA0ICAtPiAgMHg4MDAwMDAwMAorZjMyX3RvX3MzMl9pbW0xOiAgIC0yLjAwMDAwMDk3NjU2MjUwZSswNCAgLT4gIDB4ZmZmZjYzYzAKK2YzMl90b19zMzJfaW1tMzI6ICAtMS4wMDAwMDA5NzY1NjI1MGUrMDQgIC0+ICAweDgwMDAwMDAwCitmMzJfdG9fczMyX2ltbTE6ICAgLTEuMDAwMDAwOTc2NTYyNTBlKzA0ICAtPiAgMHhmZmZmYjFlMAorZjMyX3RvX3MzMl9pbW0zMjogIC05Ljk5OTk5OTc3NjQ4MjU4ZS0wMyAgLT4gIDB4ZmQ3MGEzZDgKK2YzMl90b19zMzJfaW1tMTogICAtOS45OTk5OTk3NzY0ODI1OGUtMDMgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fczMyX2ltbTMyOiAgOS45OTk5OTAyMzQzNzUwMGUrMDMgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgOS45OTk5OTAyMzQzNzUwMGUrMDMgIC0+ICAweDAwMDA0ZTFmCitmMzJfdG9fczMyX2ltbTMyOiAgMS45OTk5OTkwMjM0Mzc1MGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgMS45OTk5OTkwMjM0Mzc1MGUrMDQgIC0+ICAweDAwMDA5YzNmCitmMzJfdG9fczMyX2ltbTMyOiAgMi45OTk5OTkwMjM0Mzc1MGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgMi45OTk5OTkwMjM0Mzc1MGUrMDQgIC0+ICAweDAwMDBlYTVmCitmMzJfdG9fczMyX2ltbTMyOiAgMy45OTk5OTg4MjgxMjUwMGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgMy45OTk5OTg4MjgxMjUwMGUrMDQgIC0+ICAweDAwMDEzODdmCitmMzJfdG9fczMyX2ltbTMyOiAgNC45OTk5OTg4MjgxMjUwMGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgNC45OTk5OTg4MjgxMjUwMGUrMDQgIC0+ICAweDAwMDE4NjlmCitmMzJfdG9fczMyX2ltbTMyOiAgNS45OTk5OTg4MjgxMjUwMGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgNS45OTk5OTg4MjgxMjUwMGUrMDQgIC0+ICAweDAwMDFkNGJmCitmMzJfdG9fczMyX2ltbTMyOiAgNi45OTk5OTkyMTg3NTAwMGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgNi45OTk5OTkyMTg3NTAwMGUrMDQgIC0+ICAweDAwMDIyMmRmCitmMzJfdG9fczMyX2ltbTMyOiAgNy45OTk5OTkyMTg3NTAwMGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgNy45OTk5OTkyMTg3NTAwMGUrMDQgIC0+ICAweDAwMDI3MGZmCitmMzJfdG9fczMyX2ltbTMyOiAgOC45OTk5OTkyMTg3NTAwMGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgOC45OTk5OTkyMTg3NTAwMGUrMDQgIC0+ICAweDAwMDJiZjFmCitmMzJfdG9fczMyX2ltbTMyOiAgOS45OTk5OTkyMTg3NTAwMGUrMDQgIC0+ICAweDdmZmZmZmZmCitmMzJfdG9fczMyX2ltbTE6ICAgOS45OTk5OTkyMTg3NTAwMGUrMDQgIC0+ICAweDAwMDMwZDNmCisKK2YzMl90b191MzJfaW1tMzI6ICAwLjAwMDAwMDAwMDAwMDAwZSswMCAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMTogICAwLjAwMDAwMDAwMDAwMDAwZSswMCAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMzI6ICAxLjAwMDAwMDAwMDAwMDAwZSswMCAgLT4gIDB4ZmZmZmZmZmYKK2YzMl90b191MzJfaW1tMTogICAxLjAwMDAwMDAwMDAwMDAwZSswMCAgLT4gIDB4MDAwMDAwMDIKK2YzMl90b191MzJfaW1tMzI6ICAtMS4wMDAwMDAwMDAwMDAwMGUrMDAgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTE6ICAgLTEuMDAwMDAwMDAwMDAwMDBlKzAwICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0zMjogICAgICAgICAgICAgICAgIG5hbiAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMTogICAgICAgICAgICAgICAgICBuYW4gIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTMyOiAgLTEuMDAwMDAwMDc4MTI1MDBlKzA1ICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0xOiAgIC0xLjAwMDAwMDA3ODEyNTAwZSswNSAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMzI6ICAtOS4wMDAwMDA3ODEyNTAwMGUrMDQgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTE6ICAgLTkuMDAwMDAwNzgxMjUwMDBlKzA0ICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0zMjogIC04LjAwMDAwMDc4MTI1MDAwZSswNCAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMTogICAtOC4wMDAwMDA3ODEyNTAwMGUrMDQgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTMyOiAgLTcuMDAwMDAwNzgxMjUwMDBlKzA0ICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0xOiAgIC03LjAwMDAwMDc4MTI1MDAwZSswNCAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMzI6ICAtNi4wMDAwMDExNzE4NzUwMGUrMDQgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTE6ICAgLTYuMDAwMDAxMTcxODc1MDBlKzA0ICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0zMjogIC01LjAwMDAwMTE3MTg3NTAwZSswNCAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMTogICAtNS4wMDAwMDExNzE4NzUwMGUrMDQgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTMyOiAgLTQuMDAwMDAxMTcxODc1MDBlKzA0ICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0xOiAgIC00LjAwMDAwMTE3MTg3NTAwZSswNCAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMzI6ICAtMy4wMDAwMDA5NzY1NjI1MGUrMDQgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTE6ICAgLTMuMDAwMDAwOTc2NTYyNTBlKzA0ICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0zMjogIC0yLjAwMDAwMDk3NjU2MjUwZSswNCAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMTogICAtMi4wMDAwMDA5NzY1NjI1MGUrMDQgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTMyOiAgLTEuMDAwMDAwOTc2NTYyNTBlKzA0ICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0xOiAgIC0xLjAwMDAwMDk3NjU2MjUwZSswNCAgLT4gIDB4MDAwMDAwMDAKK2YzMl90b191MzJfaW1tMzI6ICAtOS45OTk5OTk3NzY0ODI1OGUtMDMgIC0+ICAweDAwMDAwMDAwCitmMzJfdG9fdTMyX2ltbTE6ICAgLTkuOTk5OTk5Nzc2NDgyNThlLTAzICAtPiAgMHgwMDAwMDAwMAorZjMyX3RvX3UzMl9pbW0zMjogIDkuOTk5OTkwMjM0Mzc1MDBlKzAzICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDkuOTk5OTkwMjM0Mzc1MDBlKzAzICAtPiAgMHgwMDAwNGUxZgorZjMyX3RvX3UzMl9pbW0zMjogIDEuOTk5OTk5MDIzNDM3NTBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDEuOTk5OTk5MDIzNDM3NTBlKzA0ICAtPiAgMHgwMDAwOWMzZgorZjMyX3RvX3UzMl9pbW0zMjogIDIuOTk5OTk5MDIzNDM3NTBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDIuOTk5OTk5MDIzNDM3NTBlKzA0ICAtPiAgMHgwMDAwZWE1ZgorZjMyX3RvX3UzMl9pbW0zMjogIDMuOTk5OTk4ODI4MTI1MDBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDMuOTk5OTk4ODI4MTI1MDBlKzA0ICAtPiAgMHgwMDAxMzg3ZgorZjMyX3RvX3UzMl9pbW0zMjogIDQuOTk5OTk4ODI4MTI1MDBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDQuOTk5OTk4ODI4MTI1MDBlKzA0ICAtPiAgMHgwMDAxODY5ZgorZjMyX3RvX3UzMl9pbW0zMjogIDUuOTk5OTk4ODI4MTI1MDBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDUuOTk5OTk4ODI4MTI1MDBlKzA0ICAtPiAgMHgwMDAxZDRiZgorZjMyX3RvX3UzMl9pbW0zMjogIDYuOTk5OTk5MjE4NzUwMDBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDYuOTk5OTk5MjE4NzUwMDBlKzA0ICAtPiAgMHgwMDAyMjJkZgorZjMyX3RvX3UzMl9pbW0zMjogIDcuOTk5OTk5MjE4NzUwMDBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDcuOTk5OTk5MjE4NzUwMDBlKzA0ICAtPiAgMHgwMDAyNzBmZgorZjMyX3RvX3UzMl9pbW0zMjogIDguOTk5OTk5MjE4NzUwMDBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDguOTk5OTk5MjE4NzUwMDBlKzA0ICAtPiAgMHgwMDAyYmYxZgorZjMyX3RvX3UzMl9pbW0zMjogIDkuOTk5OTk5MjE4NzUwMDBlKzA0ICAtPiAgMHhmZmZmZmZmZgorZjMyX3RvX3UzMl9pbW0xOiAgIDkuOTk5OTk5MjE4NzUwMDBlKzA0ICAtPiAgMHgwMDAzMGQzZgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hcm02NC9NYWtlZmlsZS5hbSBiL25vbmUvdGVzdHMvYXJtNjQvTWFrZWZpbGUuYW0KaW5kZXggMTM1ZDY0Zi4uZjA2ZTMwYiAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hcm02NC9NYWtlZmlsZS5hbQorKysgYi9ub25lL3Rlc3RzL2FybTY0L01ha2VmaWxlLmFtCkBAIC0yMiw2ICsyMiw3IEBACiAKIGFsbGV4ZWNfQ0ZMQUdTICAgICA9ICQoQU1fQ0ZMQUdTKSBARkxBR19XX05PX05PTk5VTExACiAKK2ZwX2FuZF9zaW1kX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtbWFyY2g9YXJtdjgtYStjcnlwdG8KIGludGVnZXJfQ0ZMQUdTICAgICA9ICQoQU1fQ0ZMQUdTKSAtZyAtTzAgLURURVNUX0JGTT0wCiAKIGZwX2FuZF9zaW1kX0xEQUREICA9IC1sbQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hcm02NC9mcF9hbmRfc2ltZC5jIGIvbm9uZS90ZXN0cy9hcm02NC9mcF9hbmRfc2ltZC5jCmluZGV4IGZiMGM3ZTYuLjBhYmEyYzggMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvYXJtNjQvZnBfYW5kX3NpbWQuYworKysgYi9ub25lL3Rlc3RzL2FybTY0L2ZwX2FuZF9zaW1kLmMKQEAgLTMsNiArMyw3IEBACiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8bWFsbG9jLmg+ICAvLyBtZW1hbGlnbgogI2luY2x1ZGUgPHN0cmluZy5oPiAgLy8gbWVtc2V0CisjaW5jbHVkZSAidGVzdHMvbWFsbG9jLmgiCiAjaW5jbHVkZSA8bWF0aC5oPiAgICAvLyBpc25vcm1hbAogCiB0eXBlZGVmICB1bnNpZ25lZCBjaGFyICAgICAgICAgICBVQ2hhcjsKQEAgLTkyLDE2ICs5Myw2IEBACiAgICB9CiB9CiAKLV9fYXR0cmlidXRlX18oKHVudXNlZCkpCi1zdGF0aWMgdm9pZCogbWVtYWxpZ24xNihzaXplX3Qgc3pCKQotewotICAgdm9pZCogeDsKLSAgIHggPSBtZW1hbGlnbigxNiwgc3pCKTsKLSAgIGFzc2VydCh4KTsKLSAgIGFzc2VydCgwID09ICgoMTYtMSkgJiAodW5zaWduZWQgbG9uZyl4KSk7Ci0gICByZXR1cm4geDsKLX0KLQogc3RhdGljIFVMb25nIGR1cDR4MTYgKCBVSW50IHggKQogewogICAgVUxvbmcgciA9IHggJiAweEY7CkBAIC00NTM2LDIzICs0NTI3LDIzIEBACiAvLyBHTlUgYXNzZW1ibGVyIChHTlUgQmludXRpbHMpIDIuMjQuMC4yMDE0MDMxMSBMaW5hcm8gMjAxNC4wMwogLy8gY2Fubm90IGJlIHBlcnN1YWRlZCB0byBhY2NlcHQgdGhvc2UgaW5zdHJ1Y3Rpb25zIChBRkFJQ1QpLgogCi0vL0dFTl9UV09WRUNfVEVTVChhZXNkXzE2Yl8xNmIsICAgICJhZXNkIHY2LjE2YiwgIHYyNy4xNmIiLCAgNiwgMjcpCi0vL0dFTl9UV09WRUNfVEVTVChhZXNlXzE2Yl8xNmIsICAgICJhZXNlIHY2LjE2YiwgIHYyNy4xNmIiLCAgNiwgMjcpCi0vL0dFTl9UV09WRUNfVEVTVChhZXNpbWNfMTZiXzE2YiwgICJhZXNpbWMgdjYuMTZiLCAgdjI3LjE2YiIsICA2LCAyNykKLS8vR0VOX1RXT1ZFQ19URVNUKGFlc21jXzE2Yl8xNmIsICAgImFlc21jIHY2LjE2YiwgIHYyNy4xNmIiLCAgNiwgMjcpCi0vLwotLy9HRU5fVEhSRUVWRUNfVEVTVChzaGExY19xX3NfNHMsICAgICAic2hhMWMgcTI5LCBzMjgsIHYyNy40cyIsIDI5LDI4LDI3KQotLy9HRU5fVFdPVkVDX1RFU1Qoc2hhMWhfc19zLCAgICAgICAgICAic2hhMWggczYsICBzMjciLCAgNiwgMjcpCi0vL0dFTl9USFJFRVZFQ19URVNUKHNoYTFtX3Ffc180cywgICAgICJzaGExbSBxMjksIHMyOCwgdjI3LjRzIiwgMjksMjgsMjcpCi0vL0dFTl9USFJFRVZFQ19URVNUKHNoYTFwX3Ffc180cywgICAgICJzaGExcCBxMjksIHMyOCwgdjI3LjRzIiwgMjksMjgsMjcpCi0vL0dFTl9USFJFRVZFQ19URVNUKHNoYTFzdTBfNHNfNHNfNHMsICJzaGExc3UwIHYyOS40cywgdjI4LjRzLCB2MjcuNHMiLCAyOSwyOCwyNykKLS8vR0VOX1RXT1ZFQ19URVNUKHNoYTFzdTFfNHNfNHMsICAgICAgInNoYTFzdTEgdjYuNHMsICB2MjcuNHMiLCAgNiwgMjcpCi0vLwotLy9HRU5fVEhSRUVWRUNfVEVTVChzaGEyNTZoMl9xX3FfNHMsICAic2hhMjU2aDIgcTI5LCBxMjgsIHYyNy40cyIsIDI5LDI4LDI3KQotLy9HRU5fVEhSRUVWRUNfVEVTVChzaGEyNTZoX3FfcV80cywgICAic2hhMjU2aCBxMjksIHEyOCwgdjI3LjRzIiwgMjksMjgsMjcpCi0vL0dFTl9UV09WRUNfVEVTVChzaGEyNTZzdTBfNHNfNHMsICAgICJzaGEyNTZzdTAgdjYuNHMsICB2MjcuNHMiLCAgNiwgMjcpCi0vL0dFTl9USFJFRVZFQ19URVNUKHNoYTI1NnN1MV80c180c180cywgInNoYTI1NnN1MSB2MjkuNHMsIHYyOC40cywgdjI3LjRzIiwgCi0vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjksMjgsMjcpCitHRU5fVFdPVkVDX1RFU1QoYWVzZF8xNmJfMTZiLCAgICAiYWVzZCB2Ni4xNmIsICB2MjcuMTZiIiwgIDYsIDI3KQorR0VOX1RXT1ZFQ19URVNUKGFlc2VfMTZiXzE2YiwgICAgImFlc2UgdjYuMTZiLCAgdjI3LjE2YiIsICA2LCAyNykKK0dFTl9UV09WRUNfVEVTVChhZXNpbWNfMTZiXzE2YiwgICJhZXNpbWMgdjYuMTZiLCAgdjI3LjE2YiIsICA2LCAyNykKK0dFTl9UV09WRUNfVEVTVChhZXNtY18xNmJfMTZiLCAgICJhZXNtYyB2Ni4xNmIsICB2MjcuMTZiIiwgIDYsIDI3KQorCitHRU5fVEhSRUVWRUNfVEVTVChzaGExY19xX3NfNHMsICAgICAic2hhMWMgcTI5LCBzMjgsIHYyNy40cyIsIDI5LDI4LDI3KQorR0VOX1RXT1ZFQ19URVNUKHNoYTFoX3NfcywgICAgICAgICAgInNoYTFoIHM2LCAgczI3IiwgIDYsIDI3KQorR0VOX1RIUkVFVkVDX1RFU1Qoc2hhMW1fcV9zXzRzLCAgICAgInNoYTFtIHEyOSwgczI4LCB2MjcuNHMiLCAyOSwyOCwyNykKK0dFTl9USFJFRVZFQ19URVNUKHNoYTFwX3Ffc180cywgICAgICJzaGExcCBxMjksIHMyOCwgdjI3LjRzIiwgMjksMjgsMjcpCitHRU5fVEhSRUVWRUNfVEVTVChzaGExc3UwXzRzXzRzXzRzLCAic2hhMXN1MCB2MjkuNHMsIHYyOC40cywgdjI3LjRzIiwgMjksMjgsMjcpCitHRU5fVFdPVkVDX1RFU1Qoc2hhMXN1MV80c180cywgICAgICAic2hhMXN1MSB2Ni40cywgIHYyNy40cyIsICA2LCAyNykKKworR0VOX1RIUkVFVkVDX1RFU1Qoc2hhMjU2aDJfcV9xXzRzLCAgInNoYTI1NmgyIHEyOSwgcTI4LCB2MjcuNHMiLCAyOSwyOCwyNykKK0dFTl9USFJFRVZFQ19URVNUKHNoYTI1NmhfcV9xXzRzLCAgICJzaGEyNTZoIHEyOSwgcTI4LCB2MjcuNHMiLCAyOSwyOCwyNykKK0dFTl9UV09WRUNfVEVTVChzaGEyNTZzdTBfNHNfNHMsICAgICJzaGEyNTZzdTAgdjYuNHMsICB2MjcuNHMiLCAgNiwgMjcpCitHRU5fVEhSRUVWRUNfVEVTVChzaGEyNTZzdTFfNHNfNHNfNHMsICJzaGEyNTZzdTEgdjI5LjRzLCB2MjguNHMsIHYyNy40cyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOSwyOCwyNykKIAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC03Mzk0LDE4ICs3Mzg1LDE0IEBACiAKICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PSBDUllQVE8gPT09PT09PT09PT09PT09PT09PT09PT09CiAKLSAgIC8vIFRoZXNlIHRlc3RzIGFyZSBiZWxpZXZlZCB0byBiZSBjb3JyZWN0IGJ1dCBhcmUgZGlzYWJsZWQgYmVjYXVzZQotICAgLy8gR05VIGFzc2VtYmxlciAoR05VIEJpbnV0aWxzKSAyLjI0LjAuMjAxNDAzMTEgTGluYXJvIDIwMTQuMDMKLSAgIC8vIGNhbm5vdCBiZSBwZXJzdWFkZWQgdG8gYWNjZXB0IHRob3NlIGluc3RydWN0aW9ucyAoQUZBSUNUKS4KLQogICAgLy8gYWVzZCAgICAgICAxNmIgKGFlcyBzaW5nbGUgcm91bmQgZGVjcnlwdGlvbikKICAgIC8vIGFlc2UgICAgICAgMTZiIChhZXMgc2luZ2xlIHJvdW5kIGVuY3J5cHRpb24pCiAgICAvLyBhZXNpbWMgICAgIDE2YiAoYWVzIGludmVyc2UgbWl4IGNvbHVtbnMpCiAgICAvLyBhZXNtYyAgICAgIDE2YiAoYWVzIG1peCBjb2x1bW5zKQotICAgLy9pZiAoMCkgdGVzdF9hZXNkXzE2Yl8xNmIoVHlOT05FKTsKLSAgIC8vaWYgKDApIHRlc3RfYWVzZV8xNmJfMTZiKFR5Tk9ORSk7Ci0gICAvL2lmICgwKSB0ZXN0X2Flc2ltY18xNmJfMTZiKFR5Tk9ORSk7Ci0gICAvL2lmICgwKSB0ZXN0X2Flc21jXzE2Yl8xNmIoVHlOT05FKTsKKyAgIGlmICgwKSB0ZXN0X2Flc2RfMTZiXzE2YihUeU5PTkUpOworICAgaWYgKDApIHRlc3RfYWVzZV8xNmJfMTZiKFR5Tk9ORSk7CisgICBpZiAoMCkgdGVzdF9hZXNpbWNfMTZiXzE2YihUeU5PTkUpOworICAgaWYgKDApIHRlc3RfYWVzbWNfMTZiXzE2YihUeU5PTkUpOwogCiAgICAvLyBzaGExYyAgICAgIHFfc180cwogICAgLy8gc2hhMWggICAgICBzX3MKQEAgLTc0MTMsMjEgKzc0MDAsMjEgQEAKICAgIC8vIHNoYTFwICAgICAgcV9zXzRzCiAgICAvLyBzaGExc3UwICAgIDRzXzRzXzRzCiAgICAvLyBzaGExc3UxICAgIDRzXzRzCi0gICAvL2lmICgwKSB0ZXN0X3NoYTFjX3Ffc180cyhUeU5PTkUpOwotICAgLy9pZiAoMCkgdGVzdF9zaGExaF9zX3MoVHlOT05FKTsKLSAgIC8vaWYgKDApIHRlc3Rfc2hhMW1fcV9zXzRzKFR5Tk9ORSk7Ci0gICAvL2lmICgwKSB0ZXN0X3NoYTFwX3Ffc180cyhUeU5PTkUpOwotICAgLy9pZiAoMCkgdGVzdF9zaGExc3UwXzRzXzRzXzRzKFR5Tk9ORSk7Ci0gICAvL2lmICgwKSB0ZXN0X3NoYTFzdTFfNHNfNHMoVHlOT05FKTsKKyAgIGlmICgwKSB0ZXN0X3NoYTFjX3Ffc180cyhUeU5PTkUpOworICAgaWYgKDApIHRlc3Rfc2hhMWhfc19zKFR5Tk9ORSk7CisgICBpZiAoMCkgdGVzdF9zaGExbV9xX3NfNHMoVHlOT05FKTsKKyAgIGlmICgwKSB0ZXN0X3NoYTFwX3Ffc180cyhUeU5PTkUpOworICAgaWYgKDApIHRlc3Rfc2hhMXN1MF80c180c180cyhUeU5PTkUpOworICAgaWYgKDApIHRlc3Rfc2hhMXN1MV80c180cyhUeU5PTkUpOwogCiAgICAvLyBzaGEyNTZoMiAgIHFfcV80cwogICAgLy8gc2hhMjU2aCAgICBxX3FfNHMKICAgIC8vIHNoYTI1NnN1MCAgNHNfNHMKICAgIC8vIHNoYTI1NnN1MSAgNHNfNHNfNHMKLSAgIC8vaWYgKDApIHRlc3Rfc2hhMjU2aDJfcV9xXzRzKFR5Tk9ORSk7Ci0gICAvL2lmICgwKSB0ZXN0X3NoYTI1NmhfcV9xXzRzKFR5Tk9ORSk7Ci0gICAvL2lmICgwKSB0ZXN0X3NoYTI1NnN1MF80c180cyhUeU5PTkUpOwotICAgLy9pZiAoMCkgdGVzdF9zaGEyNTZzdTFfNHNfNHNfNHMoVHlOT05FKTsKKyAgIGlmICgwKSB0ZXN0X3NoYTI1NmgyX3FfcV80cyhUeU5PTkUpOworICAgaWYgKDApIHRlc3Rfc2hhMjU2aF9xX3FfNHMoVHlOT05FKTsKKyAgIGlmICgwKSB0ZXN0X3NoYTI1NnN1MF80c180cyhUeU5PTkUpOworICAgaWYgKDApIHRlc3Rfc2hhMjU2c3UxXzRzXzRzXzRzKFR5Tk9ORSk7CiAKICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hcm02NC9tZW1vcnkuYyBiL25vbmUvdGVzdHMvYXJtNjQvbWVtb3J5LmMKaW5kZXggMWIzZWI0MC4uNjAzNDgwNyAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hcm02NC9tZW1vcnkuYworKysgYi9ub25lL3Rlc3RzL2FybTY0L21lbW9yeS5jCkBAIC02LDYgKzYsNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8bWFsbG9jLmg+ICAvLyBtZW1hbGlnbgogI2luY2x1ZGUgPHN0cmluZy5oPiAgLy8gbWVtc2V0CisjaW5jbHVkZSAidGVzdHMvbWFsbG9jLmgiCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAKIHR5cGVkZWYgIHVuc2lnbmVkIGNoYXIgICAgICAgICAgIFVDaGFyOwpAQCAtMjAsMTYgKzIxLDYgQEAKICNkZWZpbmUgRmFsc2UgKChCb29sKTApCiAjZGVmaW5lIFRydWUgICgoQm9vbCkxKQogCi1fX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCi1zdGF0aWMgdm9pZCogbWVtYWxpZ24xNihzaXplX3Qgc3pCKQotewotICAgdm9pZCogeDsKLSAgIHggPSBtZW1hbGlnbigxNiwgc3pCKTsKLSAgIGFzc2VydCh4KTsKLSAgIGFzc2VydCgwID09ICgoMTYtMSkgJiAodW5zaWduZWQgbG9uZyl4KSk7Ci0gICByZXR1cm4geDsKLX0KLQogc3RhdGljIGlubGluZSBVQ2hhciByYW5kVUNoYXIgKCB2b2lkICkKIHsKICAgIHN0YXRpYyBVSW50IHNlZWQgPSA4MDAyMTsKQEAgLTE2MDAsNiArMTU5MSwyMyBAQAogTUVNX1RFU1QoInByZm0gcGxkbDFrZWVwLCBbeDUsICM0MF0iLCAgMTIsIC00KTsKIE1FTV9URVNUKCJwcmZtIHBzdGwzc3RybSwgW3g1LCAjNTZdIiwgIDEyLCAtNCk7CiAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK3ByaW50ZigiUFJGTSAocmVnaXN0ZXIpXG4iKTsKKworTUVNX1RFU1QoInByZm0gcGxkbDFrZWVwLCBbeDUseDZdIiwgIDEyLCAtNCk7CitNRU1fVEVTVCgicHJmbSBwbGRsMXN0cm0sIFt4NSx4NiwgbHNsICMzXSIsICAxMiwgLTQpOworTUVNX1RFU1QoInByZm0gcGxkbDJrZWVwLCBbeDUsdzYsdXh0dyAjMF0iLCAxMiwgNCk7CitNRU1fVEVTVCgicHJmbSBwbGRsMnN0cm0sIFt4NSx3Nix1eHR3ICMzXSIsIDEyLCA0KTsKK01FTV9URVNUKCJwcmZtIHBsZGwza2VlcCwgW3g1LHc2LHN4dHcgIzBdIiwgMTIsIDQpOworTUVNX1RFU1QoInByZm0gcGxkbDNzdHJtLCBbeDUsdzYsc3h0dyAjM10iLCAgMTIsIC00KTsKKworTUVNX1RFU1QoInByZm0gcHN0bDFrZWVwLCBbeDUseDZdIiwgIDEyLCAtNCk7CitNRU1fVEVTVCgicHJmbSBwc3RsMXN0cm0sIFt4NSx4NiwgbHNsICMzXSIsICAxMiwgLTQpOworTUVNX1RFU1QoInByZm0gcHN0bDJrZWVwLCBbeDUsdzYsdXh0dyAjMF0iLCAxMiwgNCk7CitNRU1fVEVTVCgicHJmbSBwc3RsMnN0cm0sIFt4NSx3Nix1eHR3ICMzXSIsIDEyLCA0KTsKK01FTV9URVNUKCJwcmZtIHBzdGwza2VlcCwgW3g1LHc2LHN4dHcgIzBdIiwgMTIsIDQpOworTUVNX1RFU1QoInByZm0gcHN0bDNzdHJtLCBbeDUsdzYsc3h0dyAjM10iLCAgMTIsIC00KTsKKwogfSAvKiBlbmQgb2YgdGVzdF9tZW1vcnkyKCkgKi8KIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hcm02NC9tZW1vcnkuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvYXJtNjQvbWVtb3J5LnN0ZG91dC5leHAKaW5kZXggNzdlMmVmYS4uMzk3Y2UwOCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hcm02NC9tZW1vcnkuc3Rkb3V0LmV4cAorKysgYi9ub25lL3Rlc3RzL2FybTY0L21lbW9yeS5zdGRvdXQuZXhwCkBAIC0yNTg5NywzICsyNTg5NywzNjQgQEAKICAgICAgICAgICAgICAgICAgMCAgeDUgICAgICAgKHN1YiwgYmFzZSByZWcpCiAgICAgICAgICAgICAgICAgIDAgIHg2ICAgICAgIChzdWIsIGluZGV4IHJlZykKIAorUFJGTSAocmVnaXN0ZXIpCitwcmZtIHBsZGwxa2VlcCwgW3g1LHg2XSAgd2l0aCAgeDUgPSBtaWRkbGVfb2ZfYmxvY2srMTIsICB4Nj0tNAorICBbICAwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgMTZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyAzMl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDQ4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgNjRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA4MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDk2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxMTJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzEyOF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTQ0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNjBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE3Nl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTkyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyMDhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzIyNF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjQwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIDAwMDAwMDAwMDAwMDAwMDAgIHgxMyAgICAgICh4b3IsIHhmZXIgaW50cmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB4MjMgICAgICAoeG9yLCB4ZmVyIGludHJlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE3LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxNy5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTguZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE4LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOS5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTkuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjIwLmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYyMC5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAgICAgICAgICAgICAgICAwICB4NSAgICAgICAoc3ViLCBiYXNlIHJlZykKKyAgICAgICAgICAgICAgICAgMCAgeDYgICAgICAgKHN1YiwgaW5kZXggcmVnKQorCitwcmZtIHBsZGwxc3RybSwgW3g1LHg2LCBsc2wgIzNdICB3aXRoICB4NSA9IG1pZGRsZV9vZl9ibG9jaysxMiwgIHg2PS00CisgIFsgIDBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyAxNl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDMyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgNDhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA2NF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDgwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgOTZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzExMl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTI4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNDRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE2MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTc2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxOTJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzIwOF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjI0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyNDBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgMDAwMDAwMDAwMDAwMDAwMCAgeDEzICAgICAgKHhvciwgeGZlciBpbnRyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHgyMyAgICAgICh4b3IsIHhmZXIgaW50cmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTcuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE3LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOC5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTguZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE5LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOS5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MjAuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjIwLmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgICAgICAgICAgICAgICAgIDAgIHg1ICAgICAgIChzdWIsIGJhc2UgcmVnKQorICAgICAgICAgICAgICAgICAwICB4NiAgICAgICAoc3ViLCBpbmRleCByZWcpCisKK3ByZm0gcGxkbDJrZWVwLCBbeDUsdzYsdXh0dyAjMF0gIHdpdGggIHg1ID0gbWlkZGxlX29mX2Jsb2NrKzEyLCAgeDY9NAorICBbICAwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgMTZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyAzMl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDQ4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgNjRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA4MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDk2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxMTJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzEyOF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTQ0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNjBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE3Nl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTkyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyMDhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzIyNF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjQwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIDAwMDAwMDAwMDAwMDAwMDAgIHgxMyAgICAgICh4b3IsIHhmZXIgaW50cmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB4MjMgICAgICAoeG9yLCB4ZmVyIGludHJlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE3LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxNy5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTguZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE4LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOS5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTkuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjIwLmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYyMC5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAgICAgICAgICAgICAgICAwICB4NSAgICAgICAoc3ViLCBiYXNlIHJlZykKKyAgICAgICAgICAgICAgICAgMCAgeDYgICAgICAgKHN1YiwgaW5kZXggcmVnKQorCitwcmZtIHBsZGwyc3RybSwgW3g1LHc2LHV4dHcgIzNdICB3aXRoICB4NSA9IG1pZGRsZV9vZl9ibG9jaysxMiwgIHg2PTQKKyAgWyAgMF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDE2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgMzJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA0OF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDY0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgODBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA5Nl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTEyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxMjhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE0NF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTYwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNzZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE5Ml0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjA4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyMjRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzI0MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICAwMDAwMDAwMDAwMDAwMDAwICB4MTMgICAgICAoeG9yLCB4ZmVyIGludHJlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgeDIzICAgICAgKHhvciwgeGZlciBpbnRyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxNy5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTcuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE4LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOC5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTkuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE5LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYyMC5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MjAuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgICAgICAgICAgICAgICAgMCAgeDUgICAgICAgKHN1YiwgYmFzZSByZWcpCisgICAgICAgICAgICAgICAgIDAgIHg2ICAgICAgIChzdWIsIGluZGV4IHJlZykKKworcHJmbSBwbGRsM2tlZXAsIFt4NSx3NixzeHR3ICMwXSAgd2l0aCAgeDUgPSBtaWRkbGVfb2ZfYmxvY2srMTIsICB4Nj00CisgIFsgIDBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyAxNl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDMyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgNDhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA2NF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDgwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgOTZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzExMl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTI4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNDRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE2MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTc2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxOTJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzIwOF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjI0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyNDBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgMDAwMDAwMDAwMDAwMDAwMCAgeDEzICAgICAgKHhvciwgeGZlciBpbnRyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHgyMyAgICAgICh4b3IsIHhmZXIgaW50cmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTcuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE3LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOC5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTguZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE5LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOS5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MjAuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjIwLmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgICAgICAgICAgICAgICAgIDAgIHg1ICAgICAgIChzdWIsIGJhc2UgcmVnKQorICAgICAgICAgICAgICAgICAwICB4NiAgICAgICAoc3ViLCBpbmRleCByZWcpCisKK3ByZm0gcGxkbDNzdHJtLCBbeDUsdzYsc3h0dyAjM10gIHdpdGggIHg1ID0gbWlkZGxlX29mX2Jsb2NrKzEyLCAgeDY9LTQKKyAgWyAgMF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDE2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgMzJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA0OF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDY0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgODBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA5Nl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTEyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxMjhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE0NF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTYwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNzZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE5Ml0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjA4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyMjRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzI0MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICAwMDAwMDAwMDAwMDAwMDAwICB4MTMgICAgICAoeG9yLCB4ZmVyIGludHJlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgeDIzICAgICAgKHhvciwgeGZlciBpbnRyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxNy5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTcuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE4LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOC5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTkuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE5LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYyMC5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MjAuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgICAgICAgICAgICAgICAgMCAgeDUgICAgICAgKHN1YiwgYmFzZSByZWcpCisgICAgICAgICAgICAgICAgIDAgIHg2ICAgICAgIChzdWIsIGluZGV4IHJlZykKKworcHJmbSBwc3RsMWtlZXAsIFt4NSx4Nl0gIHdpdGggIHg1ID0gbWlkZGxlX29mX2Jsb2NrKzEyLCAgeDY9LTQKKyAgWyAgMF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDE2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgMzJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA0OF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDY0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgODBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA5Nl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTEyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxMjhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE0NF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTYwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNzZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE5Ml0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjA4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyMjRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzI0MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICAwMDAwMDAwMDAwMDAwMDAwICB4MTMgICAgICAoeG9yLCB4ZmVyIGludHJlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgeDIzICAgICAgKHhvciwgeGZlciBpbnRyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxNy5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTcuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE4LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOC5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTkuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE5LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYyMC5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MjAuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgICAgICAgICAgICAgICAgMCAgeDUgICAgICAgKHN1YiwgYmFzZSByZWcpCisgICAgICAgICAgICAgICAgIDAgIHg2ICAgICAgIChzdWIsIGluZGV4IHJlZykKKworcHJmbSBwc3RsMXN0cm0sIFt4NSx4NiwgbHNsICMzXSAgd2l0aCAgeDUgPSBtaWRkbGVfb2ZfYmxvY2srMTIsICB4Nj0tNAorICBbICAwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgMTZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyAzMl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDQ4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgNjRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA4MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDk2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxMTJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzEyOF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTQ0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNjBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE3Nl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTkyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyMDhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzIyNF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjQwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIDAwMDAwMDAwMDAwMDAwMDAgIHgxMyAgICAgICh4b3IsIHhmZXIgaW50cmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB4MjMgICAgICAoeG9yLCB4ZmVyIGludHJlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE3LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxNy5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTguZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE4LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOS5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTkuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjIwLmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYyMC5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAgICAgICAgICAgICAgICAwICB4NSAgICAgICAoc3ViLCBiYXNlIHJlZykKKyAgICAgICAgICAgICAgICAgMCAgeDYgICAgICAgKHN1YiwgaW5kZXggcmVnKQorCitwcmZtIHBzdGwya2VlcCwgW3g1LHc2LHV4dHcgIzBdICB3aXRoICB4NSA9IG1pZGRsZV9vZl9ibG9jaysxMiwgIHg2PTQKKyAgWyAgMF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDE2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgMzJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA0OF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDY0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgODBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA5Nl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTEyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxMjhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE0NF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTYwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNzZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE5Ml0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjA4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyMjRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzI0MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICAwMDAwMDAwMDAwMDAwMDAwICB4MTMgICAgICAoeG9yLCB4ZmVyIGludHJlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgeDIzICAgICAgKHhvciwgeGZlciBpbnRyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxNy5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTcuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE4LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOC5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTkuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE5LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYyMC5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MjAuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgICAgICAgICAgICAgICAgMCAgeDUgICAgICAgKHN1YiwgYmFzZSByZWcpCisgICAgICAgICAgICAgICAgIDAgIHg2ICAgICAgIChzdWIsIGluZGV4IHJlZykKKworcHJmbSBwc3RsMnN0cm0sIFt4NSx3Nix1eHR3ICMzXSAgd2l0aCAgeDUgPSBtaWRkbGVfb2ZfYmxvY2srMTIsICB4Nj00CisgIFsgIDBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyAxNl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDMyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgNDhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA2NF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDgwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgOTZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzExMl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTI4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNDRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE2MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTc2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxOTJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzIwOF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjI0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyNDBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgMDAwMDAwMDAwMDAwMDAwMCAgeDEzICAgICAgKHhvciwgeGZlciBpbnRyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHgyMyAgICAgICh4b3IsIHhmZXIgaW50cmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTcuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE3LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOC5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTguZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE5LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOS5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MjAuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjIwLmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgICAgICAgICAgICAgICAgIDAgIHg1ICAgICAgIChzdWIsIGJhc2UgcmVnKQorICAgICAgICAgICAgICAgICAwICB4NiAgICAgICAoc3ViLCBpbmRleCByZWcpCisKK3ByZm0gcHN0bDNrZWVwLCBbeDUsdzYsc3h0dyAjMF0gIHdpdGggIHg1ID0gbWlkZGxlX29mX2Jsb2NrKzEyLCAgeDY9NAorICBbICAwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgMTZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyAzMl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDQ4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgNjRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA4MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDk2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxMTJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzEyOF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTQ0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNjBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE3Nl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTkyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyMDhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzIyNF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjQwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIDAwMDAwMDAwMDAwMDAwMDAgIHgxMyAgICAgICh4b3IsIHhmZXIgaW50cmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB4MjMgICAgICAoeG9yLCB4ZmVyIGludHJlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE3LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxNy5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMxKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTguZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE4LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzIpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOS5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTkuZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjIwLmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYyMC5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAgICAgICAgICAgICAgICAwICB4NSAgICAgICAoc3ViLCBiYXNlIHJlZykKKyAgICAgICAgICAgICAgICAgMCAgeDYgICAgICAgKHN1YiwgaW5kZXggcmVnKQorCitwcmZtIHBzdGwzc3RybSwgW3g1LHc2LHN4dHcgIzNdICB3aXRoICB4NSA9IG1pZGRsZV9vZl9ibG9jaysxMiwgIHg2PS00CisgIFsgIDBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyAxNl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDMyXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgNDhdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWyA2NF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbIDgwXSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsgOTZdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzExMl0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTI4XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxNDRdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzE2MF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMTc2XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsxOTJdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgWzIwOF0gIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIC4uIAorICBbMjI0XSAgLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gLi4gCisgIFsyNDBdICAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAuLiAKKyAgMDAwMDAwMDAwMDAwMDAwMCAgeDEzICAgICAgKHhvciwgeGZlciBpbnRyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHgyMyAgICAgICh4b3IsIHhmZXIgaW50cmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTcuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMSkKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE3LmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzEpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOC5kWzBdICh4b3IsIHhmZXIgdmVjcmVnICMyKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MTguZFsxXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMikKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjE5LmRbMF0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgIDAwMDAwMDAwMDAwMDAwMDAgIHYxOS5kWzFdICh4b3IsIHhmZXIgdmVjcmVnICMzKQorICAwMDAwMDAwMDAwMDAwMDAwICB2MjAuZFswXSAoeG9yLCB4ZmVyIHZlY3JlZyAjMykKKyAgMDAwMDAwMDAwMDAwMDAwMCAgdjIwLmRbMV0gKHhvciwgeGZlciB2ZWNyZWcgIzMpCisgICAgICAgICAgICAgICAgIDAgIHg1ICAgICAgIChzdWIsIGJhc2UgcmVnKQorICAgICAgICAgICAgICAgICAwICB4NiAgICAgICAoc3ViLCBpbmRleCByZWcpCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvYXN5bmMtc2lncy5jIGIvbm9uZS90ZXN0cy9hc3luYy1zaWdzLmMKaW5kZXggMjViNzMwYi4uZjA1ZWI2ZSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hc3luYy1zaWdzLmMKKysrIGIvbm9uZS90ZXN0cy9hc3luYy1zaWdzLmMKQEAgLTIyLDYgKzIyLDE1IEBACiB7CiB9CiAKK3N0YXRpYyB2b2lkIGluc3RhbGxfaGFuZGxlcihpbnQgc2lnLCB2b2lkICgqc2lnX2hhbmRsZXIpKGludCkpCit7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworICAgc2Euc2FfaGFuZGxlciA9IHNpZ19oYW5kbGVyOworICAgc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOworICAgc2Euc2FfZmxhZ3MgPSAwOworICAgc2lnYWN0aW9uKHNpZywgJnNhLCAwKTsKK30KKwogLyogS2lsbCBvdXIgY2hpbGQsIGJ1dCB1c2UgYSBzZXBhcmF0ZSBraWxsIGNvbW1hbmQuICBUaGlzIGlzIHNvIHRoYXQKICAgIGl0J3MgcnVubmluZyBpbmRlcGVuZGVudGx5IG9mIFZhbGdyaW5kLCBhbmQgc28gaXMgYXN5bmMgd2l0aAogICAgcmVzcGVjdCB0byB0aHJlYWQgc2NoZWR1bGluZy4gKi8KQEAgLTQzLDcgKzUyLDcgQEAKICAgICAgIGNoYXIgcGlkYnVmWzIwXTsKICAgICAgIHNwcmludGYoc2lnYnVmLCAiLSVkIiwgc2lnKTsKICAgICAgIHNwcmludGYocGlkYnVmLCAiJWQiLCBwaWQpOwotICAgICAgZXhlY2woIi9iaW4va2lsbCIsICJraWxsIiwgc2lnYnVmLCBwaWRidWYsIE5VTEwpOworICAgICAgZXhlY2woIi9iaW4va2lsbCIsICJraWxsIiwgc2lnYnVmLCBwaWRidWYsIChjaGFyICopIE5VTEwpOwogICAgICAgcGVycm9yKCJleGVjIGZhaWxlZCIpOwogICAgICAgZXhpdCgxKTsKICAgIH0KQEAgLTg3LDcgKzk2LDcgQEAKICAgIC8vIC0gb3RoZXJ3aXNlLCB3YWl0IGluIGNsaWVudCBjb2RlIChieSBzcGlubmluZykuCiAgICAvLyBUaGUgYWxhcm0oKSBjYWxscyBpcyBzbyB0aGF0IGlmIHNvbWV0aGluZyBicmVha3MsIHdlIGRvbid0IGdldCBzdHVjay4KICAgIGlmIChwaWQgPT0gMCkgewotICAgICAgc2lnbmFsKGNhdWdodHNpZywgaGFuZGxlcik7CisgICAgICBpbnN0YWxsX2hhbmRsZXIoY2F1Z2h0c2lnLCBoYW5kbGVyKTsKICAgICAgIGFsYXJtKDEwKTsKIAogICAgICAgZm9yICg7OykKQEAgLTEyNiw2ICsxMzUsOSBAQAogCiBpbnQgbWFpbigpCiB7CisgICAvKiBSZXN0b3JlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIFNJR0hVUCB3aGVuIGZvcmtlZCBmcm9tIGNyb24uICovCisgICBpbnN0YWxsX2hhbmRsZXIoU0lHSFVQLCBTSUdfREZMKTsKKwogICAgdGVzdCgvKm5vbi1ibG9ja2VkKi8wLCAvKiBzeW5jKi9TSUdTRUdWLCAvKiBzeW5jKi9TSUdCVVMpOwogICAgdGVzdCgvKm5vbi1ibG9ja2VkKi8wLCAvKiBzeW5jKi9TSUdTRUdWLCAvKmFzeW5jKi9TSUdIVVApOwogICAgdGVzdCgvKm5vbi1ibG9ja2VkKi8wLCAvKmFzeW5jKi9TSUdVU1IxLCAvKiBzeW5jKi9TSUdCVVMpOwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9hc3luYy1zaWdzLnZndGVzdCBiL25vbmUvdGVzdHMvYXN5bmMtc2lncy52Z3Rlc3QKaW5kZXggZWM1MWYwMy4uM2Q0ZDg2MiAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9hc3luYy1zaWdzLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL2FzeW5jLXNpZ3Mudmd0ZXN0CkBAIC0xLDIgKzEsMyBAQAogcHJvZzogYXN5bmMtc2lncwogdmdvcHRzOiAtcQorY2xlYW51cDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvY21kbGluZTEuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvY21kbGluZTEuc3Rkb3V0LmV4cAppbmRleCA1NjRhMmUwLi5jYzI1YTE2IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2NtZGxpbmUxLnN0ZG91dC5leHAKKysrIGIvbm9uZS90ZXN0cy9jbWRsaW5lMS5zdGRvdXQuZXhwCkBAIC00NywxMSArNDcsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZCBkZWZhdWx0IHN1cHByZXNzaW9ucyBbeWVzXQogICAgIC0tc3VwcHJlc3Npb25zPTxmaWxlbmFtZT4gc3VwcHJlc3MgZXJyb3JzIGRlc2NyaWJlZCBpbiA8ZmlsZW5hbWU+CiAgICAgLS1nZW4tc3VwcHJlc3Npb25zPW5vfHllc3xhbGwgICAgcHJpbnQgc3VwcHJlc3Npb25zIGZvciBlcnJvcnM/IFtub10KLSAgICAtLWRiLWF0dGFjaD1ub3x5ZXMgICAgICAgIHN0YXJ0IGRlYnVnZ2VyIHdoZW4gZXJyb3JzIGRldGVjdGVkPyBbbm9dCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RlOiBkZXByZWNhdGVkIGZlYXR1cmUKLSAgICAtLWRiLWNvbW1hbmQ9PGNvbW1hbmQ+ICAgIGNvbW1hbmQgdG8gc3RhcnQgZGVidWdnZXIgWy4uLiAtbncgJWYgJXBdCiAgICAgLS1pbnB1dC1mZD08bnVtYmVyPiAgICAgICBmaWxlIGRlc2NyaXB0b3IgZm9yIGlucHV0IFswPXN0ZGluXQotICAgIC0tZHN5bXV0aWw9bm98eWVzICAgICAgICAgcnVuIGRzeW11dGlsIG9uIE1hYyBPUyBYIHdoZW4gaGVscGZ1bD8gW25vXQorICAgIC0tZHN5bXV0aWw9bm98eWVzICAgICAgICAgcnVuIGRzeW11dGlsIG9uIE1hYyBPUyBYIHdoZW4gaGVscGZ1bD8gW3llc10KICAgICAtLW1heC1zdGFja2ZyYW1lPTxudW1iZXI+IGFzc3VtZSBzdGFjayBzd2l0Y2ggZm9yIFNQIGNoYW5nZXMgbGFyZ2VyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGFuIDxudW1iZXI+IGJ5dGVzIFsyMDAwMDAwXQogICAgIC0tbWFpbi1zdGFja3NpemU9PG51bWJlcj4gc2V0IHNpemUgb2YgbWFpbiB0aHJlYWQncyBzdGFjayAoaW4gYnl0ZXMpCkBAIC03NywxMyArNzQsMTMgQEAKICAgICAtLWFsbG93LW1pc21hdGNoZWQtZGVidWdpbmZvPW5vfHllcyAgW25vXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBhYm92ZSB0d28gZmxhZ3Mgb25seSwgYWNjZXB0IGRlYnVnaW5mbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0cyB0aGF0IGRvbid0ICJtYXRjaCIgdGhlIG1haW4gb2JqZWN0Ci0gICAgLS1zbWMtY2hlY2s9bm9uZXxzdGFja3xhbGx8YWxsLW5vbi1maWxlIFtzdGFja10KKyAgICAtLXNtYy1jaGVjaz1ub25lfHN0YWNrfGFsbHxhbGwtbm9uLWZpbGUgW2FsbC1ub24tZmlsZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrcyBmb3Igc2VsZi1tb2RpZnlpbmcgY29kZTogbm9uZSwgb25seSBmb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgZm91bmQgaW4gc3RhY2tzLCBmb3IgYWxsIGNvZGUsIG9yIGZvciBhbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgZXhjZXB0IHRoYXQgZnJvbSBmaWxlLWJhY2tlZCBtYXBwaW5ncwogICAgIC0tcmVhZC1pbmxpbmUtaW5mbz15ZXN8bm8gcmVhZCBkZWJ1ZyBpbmZvIGFib3V0IGlubGluZWQgZnVuY3Rpb24gY2FsbHMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB1c2UgaXQgdG8gZG8gYmV0dGVyIHN0YWNrIHRyYWNlcy4gIFt5ZXNdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbiBMaW51eC9BbmRyb2lkIGZvciBNZW1jaGVjay9IZWxncmluZC9EUkQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIExpbnV4L0FuZHJvaWQvU29sYXJpcyBmb3IgTWVtY2hlY2svSGVsZ3JpbmQvRFJECiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5LiAgW25vXSBmb3IgYWxsIG90aGVyIHRvb2xzIGFuZCBwbGF0Zm9ybXMuCiAgICAgLS1yZWFkLXZhci1pbmZvPXllc3xubyAgICByZWFkIGRlYnVnIGluZm8gb24gc3RhY2sgYW5kIGdsb2JhbCB2YXJpYWJsZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB1c2UgaXQgdG8gcHJpbnQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGluCkBAIC05NSw3ICs5Miw3IEBACiAgICAgLS1ydW4tbGliYy1mcmVlcmVzPW5vfHllcyBmcmVlIHVwIGdsaWJjIG1lbW9yeSBhdCBleGl0IG9uIExpbnV4PyBbeWVzXQogICAgIC0tc2ltLWhpbnRzPWhpbnQxLGhpbnQyLC4uLiAgYWN0aXZhdGUgdW51c3VhbCBzaW0gYmVoYXZpb3VycyBbbm9uZV0gCiAgICAgICAgICB3aGVyZSBoaW50IGlzIG9uZSBvZjoKLSAgICAgICAgICAgbGF4LWlvY3RscyBmdXNlLWNvbXBhdGlibGUgZW5hYmxlLW91dGVyCisgICAgICAgICAgIGxheC1pb2N0bHMgbGF4LWRvb3JzIGZ1c2UtY29tcGF0aWJsZSBlbmFibGUtb3V0ZXIKICAgICAgICAgICAgbm8taW5uZXItcHJlZml4IG5vLW5wdGwtcHRocmVhZC1zdGFja2NhY2hlIG5vbmUKICAgICAtLWZhaXItc2NoZWQ9bm98eWVzfHRyeSAgIHNjaGVkdWxlIHRocmVhZHMgZmFpcmx5IG9uIG11bHRpY29yZSBzeXN0ZW1zIFtub10KICAgICAtLWtlcm5lbC12YXJpYW50PXZhcmlhbnQxLHZhcmlhbnQyLC4uLgpAQCAtMTM3LDkgKzEzNCw5IEBACiAKICAgRXh0cmEgb3B0aW9ucyByZWFkIGZyb20gfi8udmFsZ3JpbmRyYywgJFZBTEdSSU5EX09QVFMsIC4vLnZhbGdyaW5kcmMKIAotICBOdWxncmluZCBpcyBDb3B5cmlnaHQgKEMpIDIwMDItMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgTmljaG9sYXMgTmV0aGVyY290ZS4KLSAgVmFsZ3JpbmQgaXMgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTMsIGFuZCBHTlUgR1BMJ2QsIGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuCi0gIExpYlZFWCBpcyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgT3BlbldvcmtzIExMUCBldCBhbC4KKyAgTnVsZ3JpbmQgaXMgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTUsIGFuZCBHTlUgR1BMJ2QsIGJ5IE5pY2hvbGFzIE5ldGhlcmNvdGUuCisgIFZhbGdyaW5kIGlzIENvcHlyaWdodCAoQykgMjAwMC0yMDE1LCBhbmQgR05VIEdQTCdkLCBieSBKdWxpYW4gU2V3YXJkIGV0IGFsLgorICBMaWJWRVggaXMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUsIGFuZCBHTlUgR1BMJ2QsIGJ5IE9wZW5Xb3JrcyBMTFAgZXQgYWwuCiAKICAgQnVnIHJlcG9ydHMsIGZlZWRiYWNrLCBhZG1pcmF0aW9uLCBhYnVzZSwgZXRjLCB0bzogd3d3LnZhbGdyaW5kLm9yZy4KIApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9jbWRsaW5lMi5zdGRvdXQuZXhwIGIvbm9uZS90ZXN0cy9jbWRsaW5lMi5zdGRvdXQuZXhwCmluZGV4IDRlZmM0MjMuLjU4MGZhMTkgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvY21kbGluZTIuc3Rkb3V0LmV4cAorKysgYi9ub25lL3Rlc3RzL2NtZGxpbmUyLnN0ZG91dC5leHAKQEAgLTQ3LDExICs0Nyw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkIGRlZmF1bHQgc3VwcHJlc3Npb25zIFt5ZXNdCiAgICAgLS1zdXBwcmVzc2lvbnM9PGZpbGVuYW1lPiBzdXBwcmVzcyBlcnJvcnMgZGVzY3JpYmVkIGluIDxmaWxlbmFtZT4KICAgICAtLWdlbi1zdXBwcmVzc2lvbnM9bm98eWVzfGFsbCAgICBwcmludCBzdXBwcmVzc2lvbnMgZm9yIGVycm9ycz8gW25vXQotICAgIC0tZGItYXR0YWNoPW5vfHllcyAgICAgICAgc3RhcnQgZGVidWdnZXIgd2hlbiBlcnJvcnMgZGV0ZWN0ZWQ/IFtub10KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGU6IGRlcHJlY2F0ZWQgZmVhdHVyZQotICAgIC0tZGItY29tbWFuZD08Y29tbWFuZD4gICAgY29tbWFuZCB0byBzdGFydCBkZWJ1Z2dlciBbLi4uIC1udyAlZiAlcF0KICAgICAtLWlucHV0LWZkPTxudW1iZXI+ICAgICAgIGZpbGUgZGVzY3JpcHRvciBmb3IgaW5wdXQgWzA9c3RkaW5dCi0gICAgLS1kc3ltdXRpbD1ub3x5ZXMgICAgICAgICBydW4gZHN5bXV0aWwgb24gTWFjIE9TIFggd2hlbiBoZWxwZnVsPyBbbm9dCisgICAgLS1kc3ltdXRpbD1ub3x5ZXMgICAgICAgICBydW4gZHN5bXV0aWwgb24gTWFjIE9TIFggd2hlbiBoZWxwZnVsPyBbeWVzXQogICAgIC0tbWF4LXN0YWNrZnJhbWU9PG51bWJlcj4gYXNzdW1lIHN0YWNrIHN3aXRjaCBmb3IgU1AgY2hhbmdlcyBsYXJnZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYW4gPG51bWJlcj4gYnl0ZXMgWzIwMDAwMDBdCiAgICAgLS1tYWluLXN0YWNrc2l6ZT08bnVtYmVyPiBzZXQgc2l6ZSBvZiBtYWluIHRocmVhZCdzIHN0YWNrIChpbiBieXRlcykKQEAgLTc3LDEzICs3NCwxMyBAQAogICAgIC0tYWxsb3ctbWlzbWF0Y2hlZC1kZWJ1Z2luZm89bm98eWVzICBbbm9dCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIGFib3ZlIHR3byBmbGFncyBvbmx5LCBhY2NlcHQgZGVidWdpbmZvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RzIHRoYXQgZG9uJ3QgIm1hdGNoIiB0aGUgbWFpbiBvYmplY3QKLSAgICAtLXNtYy1jaGVjaz1ub25lfHN0YWNrfGFsbHxhbGwtbm9uLWZpbGUgW3N0YWNrXQorICAgIC0tc21jLWNoZWNrPW5vbmV8c3RhY2t8YWxsfGFsbC1ub24tZmlsZSBbYWxsLW5vbi1maWxlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tzIGZvciBzZWxmLW1vZGlmeWluZyBjb2RlOiBub25lLCBvbmx5IGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSBmb3VuZCBpbiBzdGFja3MsIGZvciBhbGwgY29kZSwgb3IgZm9yIGFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSBleGNlcHQgdGhhdCBmcm9tIGZpbGUtYmFja2VkIG1hcHBpbmdzCiAgICAgLS1yZWFkLWlubGluZS1pbmZvPXllc3xubyByZWFkIGRlYnVnIGluZm8gYWJvdXQgaW5saW5lZCBmdW5jdGlvbiBjYWxscwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHVzZSBpdCB0byBkbyBiZXR0ZXIgc3RhY2sgdHJhY2VzLiAgW3llc10KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIExpbnV4L0FuZHJvaWQgZm9yIE1lbWNoZWNrL0hlbGdyaW5kL0RSRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gTGludXgvQW5kcm9pZC9Tb2xhcmlzIGZvciBNZW1jaGVjay9IZWxncmluZC9EUkQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkuICBbbm9dIGZvciBhbGwgb3RoZXIgdG9vbHMgYW5kIHBsYXRmb3Jtcy4KICAgICAtLXJlYWQtdmFyLWluZm89eWVzfG5vICAgIHJlYWQgZGVidWcgaW5mbyBvbiBzdGFjayBhbmQgZ2xvYmFsIHZhcmlhYmxlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHVzZSBpdCB0byBwcmludCBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgaW4KQEAgLTk1LDcgKzkyLDcgQEAKICAgICAtLXJ1bi1saWJjLWZyZWVyZXM9bm98eWVzIGZyZWUgdXAgZ2xpYmMgbWVtb3J5IGF0IGV4aXQgb24gTGludXg/IFt5ZXNdCiAgICAgLS1zaW0taGludHM9aGludDEsaGludDIsLi4uICBhY3RpdmF0ZSB1bnVzdWFsIHNpbSBiZWhhdmlvdXJzIFtub25lXSAKICAgICAgICAgIHdoZXJlIGhpbnQgaXMgb25lIG9mOgotICAgICAgICAgICBsYXgtaW9jdGxzIGZ1c2UtY29tcGF0aWJsZSBlbmFibGUtb3V0ZXIKKyAgICAgICAgICAgbGF4LWlvY3RscyBsYXgtZG9vcnMgZnVzZS1jb21wYXRpYmxlIGVuYWJsZS1vdXRlcgogICAgICAgICAgICBuby1pbm5lci1wcmVmaXggbm8tbnB0bC1wdGhyZWFkLXN0YWNrY2FjaGUgbm9uZQogICAgIC0tZmFpci1zY2hlZD1ub3x5ZXN8dHJ5ICAgc2NoZWR1bGUgdGhyZWFkcyBmYWlybHkgb24gbXVsdGljb3JlIHN5c3RlbXMgW25vXQogICAgIC0ta2VybmVsLXZhcmlhbnQ9dmFyaWFudDEsdmFyaWFudDIsLi4uCkBAIC0yMDYsOSArMjAzLDkgQEAKIAogICBFeHRyYSBvcHRpb25zIHJlYWQgZnJvbSB+Ly52YWxncmluZHJjLCAkVkFMR1JJTkRfT1BUUywgLi8udmFsZ3JpbmRyYwogCi0gIE51bGdyaW5kIGlzIENvcHlyaWdodCAoQykgMjAwMi0yMDEzLCBhbmQgR05VIEdQTCdkLCBieSBOaWNob2xhcyBOZXRoZXJjb3RlLgotICBWYWxncmluZCBpcyBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMywgYW5kIEdOVSBHUEwnZCwgYnkgSnVsaWFuIFNld2FyZCBldCBhbC4KLSAgTGliVkVYIGlzIENvcHlyaWdodCAoQykgMjAwNC0yMDEzLCBhbmQgR05VIEdQTCdkLCBieSBPcGVuV29ya3MgTExQIGV0IGFsLgorICBOdWxncmluZCBpcyBDb3B5cmlnaHQgKEMpIDIwMDItMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgTmljaG9sYXMgTmV0aGVyY290ZS4KKyAgVmFsZ3JpbmQgaXMgQ29weXJpZ2h0IChDKSAyMDAwLTIwMTUsIGFuZCBHTlUgR1BMJ2QsIGJ5IEp1bGlhbiBTZXdhcmQgZXQgYWwuCisgIExpYlZFWCBpcyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSwgYW5kIEdOVSBHUEwnZCwgYnkgT3BlbldvcmtzIExMUCBldCBhbC4KIAogICBCdWcgcmVwb3J0cywgZmVlZGJhY2ssIGFkbWlyYXRpb24sIGFidXNlLCBldGMsIHRvOiB3d3cudmFsZ3JpbmQub3JnLgogCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2Nvb2xvX3NpZ2FjdGlvbi52Z3Rlc3QgYi9ub25lL3Rlc3RzL2Nvb2xvX3NpZ2FjdGlvbi52Z3Rlc3QKaW5kZXggNGVlMWQ4Mi4uYzI0ZmI3NyAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9jb29sb19zaWdhY3Rpb24udmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvY29vbG9fc2lnYWN0aW9uLnZndGVzdApAQCAtMSArMSwzIEBACisjIERpc2FibGVkIG9uIFNvbGFyaXMgYmVjYXVzZSBwYXJlbnQgcHJvY2VzcyBuZXZlciBnZXRzIFNJR0NITEQuCitwcmVyZXE6ICghIC4uLy4uL3Rlc3RzL29zX3Rlc3Qgc29sYXJpcykKIHByb2c6IGNvb2xvX3NpZ2FjdGlvbgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9kYXJ3aW4vTWFrZWZpbGUuYW0gYi9ub25lL3Rlc3RzL2Rhcndpbi9NYWtlZmlsZS5hbQppbmRleCA1Y2NlMDBjLi4xNDczZTgwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2Rhcndpbi9NYWtlZmlsZS5hbQorKysgYi9ub25lL3Rlc3RzL2Rhcndpbi9NYWtlZmlsZS5hbQpAQCAtNiwxMiArNiwxNCBAQAogRVhUUkFfRElTVCA9IFwKIAlhY2Nlc3NfZXh0ZW5kZWQuc3RkZXJyLmV4cCBhY2Nlc3NfZXh0ZW5kZWQudmd0ZXN0IFwKIAlhcHBsZS1tYWluLWFyZy5zdGRlcnIuZXhwIGFwcGxlLW1haW4tYXJnLnZndGVzdCBcCisJYnVnMjI4MzQzLnN0ZGVyci5leHAgYnVnMjI4MzQzLnN0ZG91dC5leHAgYnVnMjI4MzQzLnZndGVzdCBcCiAJYnVnMjU0MTY0LnN0ZGVyci5leHAgYnVnMjU0MTY0LnZndGVzdCBcCiAJcmxpbWl0LnN0ZGVyci5leHAgcmxpbWl0LnZndGVzdAogCiBjaGVja19QUk9HUkFNUyA9IFwKIAlhY2Nlc3NfZXh0ZW5kZWQgXAogCWFwcGxlLW1haW4tYXJnIFwKKwlidWcyMjgzNDMgXAogCWJ1ZzI1NDE2NCBcCiAJcmxpbWl0CiAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvZGFyd2luL2J1ZzIyODM0My5jIGIvbm9uZS90ZXN0cy9kYXJ3aW4vYnVnMjI4MzQzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdhMGFiMgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvZGFyd2luL2J1ZzIyODM0My5jCkBAIC0wLDAgKzEsNTkgQEAKKy8vIGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgzNDMKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxsaWJrZXJuL09TQXRvbWljLmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorCitPU1NwaW5Mb2NrIHNsID0gT1NfU1BJTkxPQ0tfSU5JVDsKK3R5cGVkZWYgdm9pZCAqKCp3b3JrZXJfdCkodm9pZCopOwordHlwZWRlZiB2b2lkICgqU2lnYWN0aW9uKShpbnQsIHNpZ2luZm9fdCAqLCB2b2lkICopOworCitpbnQgR0xPQj0wOworCitzdGF0aWMgdm9pZCBFbmFibGVTaWdwcm9mKFNpZ2FjdGlvbiBTaWduYWxIYW5kbGVyKSB7Cisgc3RydWN0IHNpZ2FjdGlvbiBzYTsKKyBzYS5zYV9zaWdhY3Rpb24gPSBTaWduYWxIYW5kbGVyOworIHNhLnNhX2ZsYWdzID0gU0FfUkVTVEFSVCB8IFNBX1NJR0lORk87Cisgc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOworIGlmIChzaWdhY3Rpb24oU0lHUFJPRiwgJnNhLCBOVUxMKSAhPSAwKSB7CisgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgYWJvcnQoKTsKKyB9Cisgc3RydWN0IGl0aW1lcnZhbCB0aW1lcjsKKyB0aW1lci5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOworIHRpbWVyLml0X2ludGVydmFsLnR2X3VzZWMgPSAxMDAwMDAwIC8gMTAwMDA7CisgdGltZXIuaXRfdmFsdWUgPSB0aW1lci5pdF9pbnRlcnZhbDsKKyBpZiAoc2V0aXRpbWVyKElUSU1FUl9QUk9GLCAmdGltZXIsIDApICE9IDApIHsKKyAgIHBlcnJvcigic2V0aXRpbWVyIik7CisgICBhYm9ydCgpOworIH0KK30KKwordm9pZCAqV29ya2VyKCkgeworIGxvbmcgaW50IGk7CisgZm9yIChpID0gMDsgaSA8IDEwMDAwMDAwMDsgaSsrKSB7CisgICB2b2lkICp4ID0gbWFsbG9jKChpICUgNjQpICsgMSk7CisgICBmcmVlICh4KTsKKyB9Cit9CisKK3ZvaWQgU2lnbmFsSGFuZGxlcldpdGhTcGlubG9jayhpbnQgc2lnLCBzaWdpbmZvX3QgKnNpZ2luZm8sIHZvaWQgKmNvbnRleHQpIHsKKyBPU1NwaW5Mb2NrTG9jaygmc2wpOworIEdMT0IrKzsKKyBPU1NwaW5Mb2NrVW5sb2NrKCZzbCk7Cit9CisKK2ludCBtYWluKCkgeworIEVuYWJsZVNpZ3Byb2YoU2lnbmFsSGFuZGxlcldpdGhTcGlubG9jayk7CisgcHRocmVhZF90IHdfMTsKKyBwdGhyZWFkX3Qgd18yOworIHB0aHJlYWRfY3JlYXRlKCZ3XzEsIE5VTEwsIFdvcmtlciwgTlVMTCk7CisgcHRocmVhZF9jcmVhdGUoJndfMiwgTlVMTCwgV29ya2VyLCBOVUxMKTsKKyBwdGhyZWFkX2pvaW4od18xLCBOVUxMKTsKKyBwdGhyZWFkX2pvaW4od18yLCBOVUxMKTsKKyBwcmludGYoIlx0R0xPQj0lZFxuIiwgR0xPQik7CisgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAzLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL2Rhcndpbi9idWcyMjgzNDMuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDMuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMvZGFyd2luL2J1ZzIyODM0My5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2Rhcndpbi9idWcyMjgzNDMuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvZGFyd2luL2J1ZzIyODM0My5zdGRvdXQuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYjVjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL2Rhcndpbi9idWcyMjgzNDMuc3Rkb3V0LmV4cApAQCAtMCwwICsxIEBACisJR0xPQj0wCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2Rhcndpbi9idWcyMjgzNDMudmd0ZXN0IGIvbm9uZS90ZXN0cy9kYXJ3aW4vYnVnMjI4MzQzLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDRjMGQzCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9kYXJ3aW4vYnVnMjI4MzQzLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IGJ1ZzIyODM0MwordmdvcHRzOiAtcSAtLXRvb2w9bm9uZQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9leGVjLXNpZ21hc2suYyBiL25vbmUvdGVzdHMvZXhlYy1zaWdtYXNrLmMKaW5kZXggMTFhMjRjNS4uMmFiOGZlZCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9leGVjLXNpZ21hc2suYworKysgYi9ub25lL3Rlc3RzL2V4ZWMtc2lnbWFzay5jCkBAIC0xOSw3ICsxOSw3IEBACiAJfQogCWlmIChwaWQgPT0gMCkgewogCQlzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgbWFzaywgTlVMTCk7Ci0JCWV4ZWNsKHBhdGgsIHBhdGgsIGFyZywgTlVMTCk7CisJCWV4ZWNsKHBhdGgsIHBhdGgsIGFyZywgKGNoYXIgKikgTlVMTCk7CiAJCQkKIAkJZnByaW50ZihzdGRlcnIsICJGQUlMRUQ6IGV4ZWNsIGZhaWxlZCB3aXRoICVzXG4iLAogCQkJc3RyZXJyb3IoZXJybm8pKTsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvZXhlYy1zaWdtYXNrLnN0ZG91dC5leHAtc29sYXJpcyBiL25vbmUvdGVzdHMvZXhlYy1zaWdtYXNrLnN0ZG91dC5leHAtc29sYXJpcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTc5ODExCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9leGVjLXNpZ21hc2suc3Rkb3V0LmV4cC1zb2xhcmlzCkBAIC0wLDAgKzEgQEAKK2Z1bGw6IHNpZ25hbCAzNiBtaXNzaW5nIGZyb20gbWFzawpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9leGVjdmUuYyBiL25vbmUvdGVzdHMvZXhlY3ZlLmMKaW5kZXggZTZhMzA0NC4uZGIyYmUyOSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9leGVjdmUuYworKysgYi9ub25lL3Rlc3RzL2V4ZWN2ZS5jCkBAIC04LDExICs4LDE2IEBACiAgICB7CiAgICAgICAvLyBUaGlzIHRlc3RzIHRoZSBjYXNlIHdoZXJlIGFyZ3YgYW5kIGVudnAgYXJlIE5VTEwsIHdoaWNoIGlzIGVhc3kgdG8KICAgICAgIC8vIGdldCB3cm9uZyBiZWNhdXNlIGl0J3MgYW4gdW51c3VhbCBjYXNlLgotIyAgaWYgIWRlZmluZWQoVkdPX2RhcndpbikKLSAgICAgIGlmIChleGVjdmUoIi9iaW4vdHJ1ZSIsIE5VTEwsIE5VTEwpIDwgMCkKLSMgIGVsc2UKKworI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICAgICAvLyBTb2xhcmlzIHJlcXVpcmVzIG5vbi1OVUxMIGFyZ3YgcGFyYW1ldGVyCisgICAgICBjaGFyICpjb25zdCBhcmd2X2V4ZVtdID0geyJ0cnVlIiwgTlVMTH07CisgICAgICBpZiAoZXhlY3ZlKCIvYmluL3RydWUiLCBhcmd2X2V4ZSwgTlVMTCkgPCAwKQorI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogICAgICAgaWYgKGV4ZWN2ZSgiL3Vzci9iaW4vdHJ1ZSIsIE5VTEwsIE5VTEwpIDwgMCkgICAgICAgICAgCi0jICBlbmRpZgorI2Vsc2UKKyAgICAgIGlmIChleGVjdmUoIi9iaW4vdHJ1ZSIsIE5VTEwsIE5VTEwpIDwgMCkKKyNlbmRpZgogICAgICAgewogICAgICAgICAgcGVycm9yKCJleGVjdmUiKTsKICAgICAgICAgIGV4aXQoMSk7CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2ZhdWx0c3RhdHVzLmMgYi9ub25lL3Rlc3RzL2ZhdWx0c3RhdHVzLmMKaW5kZXggY2JlZTdlNC4uODFlNjkwOCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9mYXVsdHN0YXR1cy5jCisrKyBiL25vbmUvdGVzdHMvZmF1bHRzdGF0dXMuYwpAQCAtMjksNiArMjksMTcgQEAKICMgIGRlZmluZSBESVZJU0lPTl9CWV9aRVJPX1NJX0NPREUgICAgICBGUEVfSU5URElWCiAjZW5kaWYKIAorLyogQWNjZXNzaW5nIG5vbi1tYXBwZWQgdmlydHVhbCBhZGRyZXNzIHJlc3VsdHMgaW4gU0lHQlVTCisgKiB3aXRoIHNpX2NvZGUgZXF1YWwgdG8gQlVTX0FEUkVSUiBvbiBMaW51eCwgd2hlcmVhcyBpbiBTSUdCVVMKKyAqIHdpdGggc2lfY29kZSBlcXVhbCB0byBCVVNfT0JKRVJSIG9uIFNvbGFyaXMuIE9uIFNvbGFyaXMsCisgKiBCVVNfQURSRVJSIGlzIHVzZWQgZm9yIGJ1cyB0aW1lIG91dCB3aGlsZSBCVVNfT0JKRVJSIGlzIHRyYW5zbGF0ZWQKKyAqIGZyb20gdW5kZXJseWluZyBjb2RlcyBGQ19PQkpFUlIgKHg4Nikgb3IgQVNZTkNfQkVSUiAoc3BhcmMpLgorICovCisjaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyMgIGRlZmluZSBCVVNfRVJST1JfU0lfQ09ERSAgQlVTX09CSkVSUgorI2Vsc2UKKyMgIGRlZmluZSBCVVNfRVJST1JfU0lfQ09ERSAgQlVTX0FEUkVSUgorI2VuZGlmCiAKIHN0cnVjdCB0ZXN0IHsKIAl2b2lkICgqdGVzdCkodm9pZCk7CkBAIC0xNTUsNyArMTY2LDcgQEAKICNkZWZpbmUgVChuLCBzaWcsIGNvZGUsIGFkZHIpIHsgdGVzdCMjbiwgc2lnLCBjb2RlLCBhZGRyIH0KIAkJCVQoMSwgU0lHU0VHViwJU0VHVl9NQVBFUlIsCUJBREFERFIpLAogCQkJVCgyLCBTSUdTRUdWLAlTRUdWX0FDQ0VSUiwJbWFwcGluZyksCi0JCQlUKDMsIFNJR0JVUywJQlVTX0FEUkVSUiwJJm1hcHBpbmdbRklMRVNJWkUrMTBdKSwKKwkJCVQoMywgU0lHQlVTLAlCVVNfRVJST1JfU0lfQ09ERSwgJm1hcHBpbmdbRklMRVNJWkUrMTBdKSwKIAkJCVQoNCwgU0lHRlBFLCAgICBESVZJU0lPTl9CWV9aRVJPX1NJX0NPREUsIDApLAogI3VuZGVmIFQKIAkJfTsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvZmRsZWFrX2NyZWF0LmMgYi9ub25lL3Rlc3RzL2ZkbGVha19jcmVhdC5jCmluZGV4IDk5NDY5MmEuLjNjN2M0MDEgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvZmRsZWFrX2NyZWF0LmMKKysrIGIvbm9uZS90ZXN0cy9mZGxlYWtfY3JlYXQuYwpAQCAtOSw3ICs5LDcgQEAKIAogICAgQ0xPU0VfSU5IRVJJVEVEX0ZEUzsKIAotICAgc3ByaW50ZihmaWxlbmFtZSwgIi90bXAvZmlsZS4lZCIsIGdldHBpZCgpKTsKKyAgIHNwcmludGYoZmlsZW5hbWUsICIvdG1wL2ZpbGUuJWxkIiwgKGxvbmcpIGdldHBpZCgpKTsKICAgICh2b2lkKSBETyggY3JlYXQoZmlsZW5hbWUsIDApICk7CiAgICAodm9pZCkgRE8oIHVubGluayhmaWxlbmFtZSkgKTsKICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9maWx0ZXJfZmRsZWFrIGIvbm9uZS90ZXN0cy9maWx0ZXJfZmRsZWFrCmluZGV4IGJiMWVmNDIuLjkzMTUyMDcgMTAwNzU1Ci0tLSBhL25vbmUvdGVzdHMvZmlsdGVyX2ZkbGVhaworKysgYi9ub25lL3Rlc3RzL2ZpbHRlcl9mZGxlYWsKQEAgLTYsNiArNiw4IEBACiAKIHBlcmwgLXAgLWUgJ3MvXk9wZW4gQUZfVU5JWCBzb2NrZXQgWzAtOV0qOiA8dW5rbm93bj4vT3BlbiBBRl9VTklYIHNvY2tldCAuLi46IDx1bmtub3duPi8nIHwKIHBlcmwgLXAgLWUgJ3MvXk9wZW4gKEFGX1VOSVggc29ja2V0fGZpbGUgZGVzY3JpcHRvcikgWzAtOV0qOiBcL2RldlwvbnVsbC9PcGVuICQxIC4uLjogXC9kZXZcL251bGwvJyB8CisjIFNvbGFyaXMtc3BlY2lmaWMsIHRyYW5zbGF0ZSAvZGV2aWNlcy9wc2V1ZG8vbW1AMDpudWxsIHRvIC9kZXYvbnVsbAorcGVybCAtcCAtZSAncy9eT3BlbiAoQUZfVU5JWCBzb2NrZXR8ZmlsZSBkZXNjcmlwdG9yKSBbMC05XSo6IFwvZGV2aWNlc1wvcHNldWRvXC9tbVxAMDpudWxsL09wZW4gJDEgLi4uOiBcL2RldlwvbnVsbC8nIHwKICMgTmI6IG9uIERhcndpbiwgL3RtcCBpcyBhIHN5bWxpbmsgdG8gL3ByaXZhdGUvdG1wLCBzbyBzb21ldGltZXMgaXQncwogIyBuZWNlc3NhcnkgdG8gZmlsdGVyIG91dCB0aGUgIi9wcml2YXRlIiBwYXJ0LgogcGVybCAtcCAtZSAncy9eT3BlbiAoQUZfVU5JWCBzb2NrZXR8ZmlsZSBkZXNjcmlwdG9yKSBbMC05XSo6IChcL3ByaXZhdGUpP1wvdG1wXC8oc29ja3xkYXRhMXxkYXRhMnxmaWxlKVwuWzAtOV0qL09wZW4gJDEgLi4uOiBcL3RtcFwvJDMvJyB8CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2lvY3RsX21vYW5zLmMgYi9ub25lL3Rlc3RzL2lvY3RsX21vYW5zLmMKaW5kZXggZWQwNWU3Yi4uMzc4ZmY0NCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9pb2N0bF9tb2Fucy5jCisrKyBiL25vbmUvdGVzdHMvaW9jdGxfbW9hbnMuYwpAQCAtOCw3ICs4LDcgQEAKICAgIFRoZSBjaG9pY2Ugb2YgdmFsdWVzIGhlcmUgbmVlZHMgdG8gbWF0Y2ggdGhlIGxvZ2ljIGluCiAgICBNTF8oUFJFX3Vua25vd25faW9jdGwpIGFuZCB0YWtlIGludG8gYWNjb3VudCB0aGF0IF9JT0NfTk9ORQogICAgaXMgbm90ID09IDAgZXZlcnl3aGVyZS4gKi8KLSMgaWYgIWRlZmluZWQoVkdPX2RhcndpbikKKyMgaWYgZGVmaW5lZChWR09fbGludXgpCiAjZGVmaW5lIElPQ1RMX1JFUVVFU1RfQkFTRSAoMHgxMjM0NTY3MCB8IF9JT0MoX0lPQ19OT05FLDAsMCwwKSkKICMgZWxzZQogI2RlZmluZSBJT0NUTF9SRVFVRVNUX0JBU0UgIDB4MTIzNDU2NzAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvbGlidmV4X3Rlc3QuYyBiL25vbmUvdGVzdHMvbGlidmV4X3Rlc3QuYwppbmRleCBlMjk3OTIxLi41NzE4NGMwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2xpYnZleF90ZXN0LmMKKysrIGIvbm9uZS90ZXN0cy9saWJ2ZXhfdGVzdC5jCkBAIC0xLDggKzEsOCBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+Ci0jIGlmICFkZWZpbmVkKFZHT19kYXJ3aW4pCisjIGlmIGRlZmluZWQoVkdPX2xpbnV4KQogI2luY2x1ZGUgPGVuZGlhbi5oPgotIyBlbHNlCisjIGVsaWYgZGVmaW5lZChWR09fZGFyd2luKQogI2luY2x1ZGUgPG1hY2hpbmUvZW5kaWFuLmg+CiAjIGVuZGlmCiAjaW5jbHVkZSAiLi4vLi4vVkVYL3B1Yi9saWJ2ZXguaCIKQEAgLTIyMSw2ICsyMjEsMTAgQEAKICAgIC8vIFVzZSBzb21lIHZhbHVlcyB0aGF0IG1ha2VzIEFNRDY0IGhhcHB5LgogICAgdnRhLmFiaWluZm9fYm90aC5ndWVzdF9zdGFja19yZWR6b25lX3NpemUgPSAxMjg7CiAKKyAgIC8vIFVzZSBzb21lIHZhbHVlcyB0aGF0IG1ha2VzIEFSTTY0IGhhcHB5LgorICAgdnRhLmFyY2hpbmZvX2d1ZXN0LmFybTY0X2RNaW5MaW5lX2xnMl9zekIgPSA2OworICAgdnRhLmFyY2hpbmZvX2d1ZXN0LmFybTY0X2lNaW5MaW5lX2xnMl9zekIgPSA2OworCiAgICAvLyBQcmVwYXJlIGZpcnN0IGZvciBhIHRyYW5zbGF0aW9uIHdoZXJlIGd1ZXN0ID09IGhvc3QKICAgIC8vIFdlIHdpbGwgdHJhbnNsYXRlIHRoZSBnZXRfZ3Vlc3RfYXJjaCBmdW5jdGlvbgogICAgdnRhLmFyY2hfZ3Vlc3QgICAgICAgICAgICAgICAgID0gZ3Vlc3RfYXJjaDsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvbGludXgvTWFrZWZpbGUuYW0gYi9ub25lL3Rlc3RzL2xpbnV4L01ha2VmaWxlLmFtCmluZGV4IDQ0YjVhY2UuLmY0MDdjYjQgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvbGludXgvTWFrZWZpbGUuYW0KKysrIGIvbm9uZS90ZXN0cy9saW51eC9NYWtlZmlsZS5hbQpAQCAtMzYsMyArMzYsNiBAQAogCiAjIFNwZWNpYWwgbmVlZHMKIHB0aHJlYWRfc3RhY2tfTERBREQgPSAtbHB0aHJlYWQKKworc3RhY2tfb3ZlcmZsb3dfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIEBGTEFHX1dfTk9fVU5JTklUSUFMSVpFREAgXAorCQkJQEZMQUdfV19OT19JTkZJTklURV9SRUNVUlNJT05ACmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL2xpbnV4L2Jsb2NrZmF1bHQudmd0ZXN0IGIvbm9uZS90ZXN0cy9saW51eC9ibG9ja2ZhdWx0LnZndGVzdAppbmRleCA4OGUzMjU1Li44ZDEwZjFhIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL2xpbnV4L2Jsb2NrZmF1bHQudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvbGludXgvYmxvY2tmYXVsdC52Z3Rlc3QKQEAgLTEgKzEsMiBAQAogcHJvZzogYmxvY2tmYXVsdAorY2xlYW51cDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvbGludXgvc3RhY2stb3ZlcmZsb3cudmd0ZXN0IGIvbm9uZS90ZXN0cy9saW51eC9zdGFjay1vdmVyZmxvdy52Z3Rlc3QKaW5kZXggM2I5ZmZkNC4uZTdiNGYyOSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9saW51eC9zdGFjay1vdmVyZmxvdy52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9saW51eC9zdGFjay1vdmVyZmxvdy52Z3Rlc3QKQEAgLTEgKzEsMiBAQAogcHJvZzogc3RhY2stb3ZlcmZsb3cKK2NsZWFudXA6IHJtIC1mIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL21hcF91bm1hcC5jIGIvbm9uZS90ZXN0cy9tYXBfdW5tYXAuYwppbmRleCBiZmMyNTAzLi4yMTJkN2UzIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL21hcF91bm1hcC5jCisrKyBiL25vbmUvdGVzdHMvbWFwX3VubWFwLmMKQEAgLTc3LDcgKzc3LDcgQEAKIHN0YXRpYyB2b2lkIHBybWFwcygpCiB7CiAJY2hhciBidWZbMTAwXTsKLQlzcHJpbnRmKGJ1ZiwgIi9iaW4vY2F0IC9wcm9jLyVkL21hcHMiLCBnZXRwaWQoKSk7CisJc3ByaW50ZihidWYsICIvYmluL2NhdCAvcHJvYy8lbGQvbWFwcyIsIChsb25nKSBnZXRwaWQoKSk7CiAJc3lzdGVtKGJ1Zik7CiAJZXhpdCgxKTsKIH0KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvbWlwczY0L2xvYWRfaW5kZXhlZF9pbnN0cnVjdGlvbnMuYyBiL25vbmUvdGVzdHMvbWlwczY0L2xvYWRfaW5kZXhlZF9pbnN0cnVjdGlvbnMuYwppbmRleCBhMzZkMjIyLi5jNTIxNzk4IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL21pcHM2NC9sb2FkX2luZGV4ZWRfaW5zdHJ1Y3Rpb25zLmMKKysrIGIvbm9uZS90ZXN0cy9taXBzNjQvbG9hZF9pbmRleGVkX2luc3RydWN0aW9ucy5jCkBAIC02NywxNiArNjcsMTYgQEAKIH07CiAKIC8qCi1UZXN0IDEgbWFjcm8gaXMgdXNlZCBmb3IgbGR4IGluc3RydWN0aW9ucy4gQWZ0ZXIgZXhlY3V0aW5nIGVhY2ggaW5zdHJ1Y3Rpb25zCi10aGUgbWFjcm8gcGVyZm9ybXMgZm9sbG93aW5nIG9wZXJhdGlvbnM6CitURVNUMSBtYWNybyBpcyB1c2VkIGZvciBsb2FkLWluZGV4ZWQgaW5zdHJ1Y3Rpb25zLiBGb3IgZWFjaCBpbnN0cnVjdGlvbiwKK3RoZSBtYWNybyB3aWxsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zOgogCi0xOiBNb3ZlIGFyZ3VtZW50cyB0byByZWdpc3RlcnMuCi0yOiBFeGVjdXRlIGluc3RydWN0aW9uLgotMzogTW92ZSByZXN1bHQgZnJvbSByZWdpc3Rlci4gKi8KKzE6IE1vdmUgaW5wdXQgYXJndW1lbnRzIGludG8gcmVnaXN0ZXJzLgorMjogRXhlY3V0ZSB0aGUgaW5zdHJ1Y3Rpb24uCiszOiBNb3ZlIHRoZSByZXN1bHQgZnJvbSBhIHJlZ2lzdGVyIHRvIHRoZSBvdXQgdmFyaWFibGUuICovCiAKICNkZWZpbmUgVEVTVDEoaW5zdHJ1Y3Rpb24sIG9mZnNldCwgbWVtKSAgICAgICAgXAogeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgdW5zaWduZWQgbG9uZyBvdXQgPSAwOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHVuc2lnbmVkIGxvbmcgb3V0ID0gMDsgICAgICAgICAgICAgICAgICAgICAgXAogICAgX19hc21fXyB2b2xhdGlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICJtb3ZlICAgICAgICAkdDAsICUxIiAgICAgICAiXG5cdCIgICAgICAgIFwKICAgICAgIm1vdmUgICAgICAgICR0MSwgJTIiICAgICAgICJcblx0IiAgICAgICAgXApAQCAtODQsNyArODQsNyBAQAogICAgICAibW92ZSAgICAgICAgJTAsICAkdDIiICAgICAgIlxuXHQiICAgICAgICBcCiAgICAgIDogIj0mciIgKG91dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgOiAiciIgKG1lbSkgLCAiciIgKG9mZnNldCkgICAgICAgICAgICAgICAgXAotICAgICA6ICJ0MCIsICJ0MSIsICJ0MiIsICJjYyIsICJtZW1vcnkiICAgICAgICBcCisgICAgIDogInQwIiwgInQxIiwgInQyIiwgIm1lbW9yeSIgICAgICAgICAgICAgIFwKICAgICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcHJpbnRmKCIlcyA6OiBvZmZzZXQ6IDB4JXgsIG91dDogMHglbHhcbiIsICBcCiAgICAgICAgICAgaW5zdHJ1Y3Rpb24sIG9mZnNldCwgb3V0KTsgICAgICAgICAgIFwKQEAgLTEwMCw2ICsxMDAsOCBAQAogICAgICAgVEVTVDEoImxidXgiLCAgaSwgcmVnX3ZhbCk7CiAgICBmb3IoaSA9IDg7IGkgPD0gMjU1OyBpICs9IDgpCiAgICAgICBURVNUMSgibHd4IiwgIGksIHJlZ192YWwpOworICAgZm9yKGkgPSA4OyBpIDw9IDI1NTsgaSArPSA4KQorICAgICAgVEVTVDEoImxoeCIsICBpLCByZWdfdmFsKTsKICNlbmRpZgogICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL21pcHM2NC9sb2FkX2luZGV4ZWRfaW5zdHJ1Y3Rpb25zLnN0ZG91dC5leHAtQkUgYi9ub25lL3Rlc3RzL21pcHM2NC9sb2FkX2luZGV4ZWRfaW5zdHJ1Y3Rpb25zLnN0ZG91dC5leHAtQkUKaW5kZXggNWY4ZjI3Mi4uN2U4YzUzNCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9taXBzNjQvbG9hZF9pbmRleGVkX2luc3RydWN0aW9ucy5zdGRvdXQuZXhwLUJFCisrKyBiL25vbmUvdGVzdHMvbWlwczY0L2xvYWRfaW5kZXhlZF9pbnN0cnVjdGlvbnMuc3Rkb3V0LmV4cC1CRQpAQCAtOTEsMyArOTEsMzQgQEAKIGx3eCA6OiBvZmZzZXQ6IDB4ZTgsIG91dDogMHhmZmZmZmZmZmZiYjhiYjQ2CiBsd3ggOjogb2Zmc2V0OiAweGYwLCBvdXQ6IDB4ZmZmZmZmZmZlMTNlZjZmNAogbHd4IDo6IG9mZnNldDogMHhmOCwgb3V0OiAweGZmZmZmZmZmZThiY2NkOWEKK2xoeCA6OiBvZmZzZXQ6IDB4OCwgb3V0OiAweDk4MgorbGh4IDo6IG9mZnNldDogMHgxMCwgb3V0OiAweDEzMDQKK2xoeCA6OiBvZmZzZXQ6IDB4MTgsIG91dDogMHgxYTg2CitsaHggOjogb2Zmc2V0OiAweDIwLCBvdXQ6IDB4MjYwOAorbGh4IDo6IG9mZnNldDogMHgyOCwgb3V0OiAweDJmOGEKK2xoeCA6OiBvZmZzZXQ6IDB4MzAsIG91dDogMHgzNTBjCitsaHggOjogb2Zmc2V0OiAweDM4LCBvdXQ6IDB4M2M4ZQorbGh4IDo6IG9mZnNldDogMHg0MCwgb3V0OiAweDRjMTEKK2xoeCA6OiBvZmZzZXQ6IDB4NDgsIG91dDogMHg0NTkzCitsaHggOjogb2Zmc2V0OiAweDUwLCBvdXQ6IDB4NWYxNQorbGh4IDo6IG9mZnNldDogMHg1OCwgb3V0OiAweDU2OTcKK2xoeCA6OiBvZmZzZXQ6IDB4NjAsIG91dDogMHg2YTE5CitsaHggOjogb2Zmc2V0OiAweDY4LCBvdXQ6IDB4NjM5YgorbGh4IDo6IG9mZnNldDogMHg3MCwgb3V0OiAweDc5MWQKK2xoeCA6OiBvZmZzZXQ6IDB4NzgsIG91dDogMHg3MDlmCitsaHggOjogb2Zmc2V0OiAweDgwLCBvdXQ6IDB4ZmZmZmZmZmZmZmZmOTgyMworbGh4IDo6IG9mZnNldDogMHg4OCwgb3V0OiAweGZmZmZmZmZmZmZmZjkxYTEKK2xoeCA6OiBvZmZzZXQ6IDB4OTAsIG91dDogMHhmZmZmZmZmZmZmZmY4YjI3CitsaHggOjogb2Zmc2V0OiAweDk4LCBvdXQ6IDB4ZmZmZmZmZmZmZmZmODJhNQorbGh4IDo6IG9mZnNldDogMHhhMCwgb3V0OiAweGZmZmZmZmZmZmZmZmJlMmIKK2xoeCA6OiBvZmZzZXQ6IDB4YTgsIG91dDogMHhmZmZmZmZmZmZmZmZiN2E5CitsaHggOjogb2Zmc2V0OiAweGIwLCBvdXQ6IDB4ZmZmZmZmZmZmZmZmYWQyZgorbGh4IDo6IG9mZnNldDogMHhiOCwgb3V0OiAweGZmZmZmZmZmZmZmZmE0YWQKK2xoeCA6OiBvZmZzZXQ6IDB4YzAsIG91dDogMHhmZmZmZmZmZmZmZmZkNDMyCitsaHggOjogb2Zmc2V0OiAweGM4LCBvdXQ6IDB4ZmZmZmZmZmZmZmZmZGRiMAorbGh4IDo6IG9mZnNldDogMHhkMCwgb3V0OiAweGZmZmZmZmZmZmZmZmM3MzYKK2xoeCA6OiBvZmZzZXQ6IDB4ZDgsIG91dDogMHhmZmZmZmZmZmZmZmZjZWI0CitsaHggOjogb2Zmc2V0OiAweGUwLCBvdXQ6IDB4ZmZmZmZmZmZmZmZmZjIzYQorbGh4IDo6IG9mZnNldDogMHhlOCwgb3V0OiAweGZmZmZmZmZmZmZmZmZiYjgKK2xoeCA6OiBvZmZzZXQ6IDB4ZjAsIG91dDogMHhmZmZmZmZmZmZmZmZlMTNlCitsaHggOjogb2Zmc2V0OiAweGY4LCBvdXQ6IDB4ZmZmZmZmZmZmZmZmZThiYwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9taXBzNjQvbG9hZF9pbmRleGVkX2luc3RydWN0aW9ucy5zdGRvdXQuZXhwLUxFIGIvbm9uZS90ZXN0cy9taXBzNjQvbG9hZF9pbmRleGVkX2luc3RydWN0aW9ucy5zdGRvdXQuZXhwLUxFCmluZGV4IDA3MmE2ZjUuLmFmNDQ1ODAgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvbWlwczY0L2xvYWRfaW5kZXhlZF9pbnN0cnVjdGlvbnMuc3Rkb3V0LmV4cC1MRQorKysgYi9ub25lL3Rlc3RzL21pcHM2NC9sb2FkX2luZGV4ZWRfaW5zdHJ1Y3Rpb25zLnN0ZG91dC5leHAtTEUKQEAgLTkxLDMgKzkxLDM0IEBACiBsd3ggOjogb2Zmc2V0OiAweGU4LCBvdXQ6IDB4ZmZmZmZmZmZmYmI4YmI0NgogbHd4IDo6IG9mZnNldDogMHhmMCwgb3V0OiAweGZmZmZmZmZmZTEzZWY2ZjQKIGx3eCA6OiBvZmZzZXQ6IDB4ZjgsIG91dDogMHhmZmZmZmZmZmU4YmNjZDlhCitsaHggOjogb2Zmc2V0OiAweDgsIG91dDogMHgzYjZlCitsaHggOjogb2Zmc2V0OiAweDEwLCBvdXQ6IDB4NzZkYworbGh4IDo6IG9mZnNldDogMHgxOCwgb3V0OiAweDRkYjIKK2xoeCA6OiBvZmZzZXQ6IDB4MjAsIG91dDogMHhmZmZmZmZmZmZmZmZlZGI4CitsaHggOjogb2Zmc2V0OiAweDI4LCBvdXQ6IDB4ZmZmZmZmZmZmZmZmZDZkNgorbGh4IDo6IG9mZnNldDogMHgzMCwgb3V0OiAweGZmZmZmZmZmZmZmZjliNjQKK2xoeCA6OiBvZmZzZXQ6IDB4MzgsIG91dDogMHhmZmZmZmZmZmZmZmZhMDBhCitsaHggOjogb2Zmc2V0OiAweDQwLCBvdXQ6IDB4ZmZmZmZmZmZmZmZmZGI3MAorbGh4IDo6IG9mZnNldDogMHg0OCwgb3V0OiAweGZmZmZmZmZmZmZmZmUwMWUKK2xoeCA6OiBvZmZzZXQ6IDB4NTAsIG91dDogMHhmZmZmZmZmZmZmZmZhZGFjCitsaHggOjogb2Zmc2V0OiAweDU4LCBvdXQ6IDB4ZmZmZmZmZmZmZmZmOTZjMgorbGh4IDo6IG9mZnNldDogMHg2MCwgb3V0OiAweDM2YzgKK2xoeCA6OiBvZmZzZXQ6IDB4NjgsIG91dDogMHhkYTYKK2xoeCA6OiBvZmZzZXQ6IDB4NzAsIG91dDogMHg0MDE0CitsaHggOjogb2Zmc2V0OiAweDc4LCBvdXQ6IDB4N2I3YQorbGh4IDo6IG9mZnNldDogMHg4MCwgb3V0OiAweGZmZmZmZmZmZmZmZmI2ZTAKK2xoeCA6OiBvZmZzZXQ6IDB4ODgsIG91dDogMHhmZmZmZmZmZmZmZmY4ZDhlCitsaHggOjogb2Zmc2V0OiAweDkwLCBvdXQ6IDB4ZmZmZmZmZmZmZmZmYzAzYworbGh4IDo6IG9mZnNldDogMHg5OCwgb3V0OiAweGZmZmZmZmZmZmZmZmZiNTIKK2xoeCA6OiBvZmZzZXQ6IDB4YTAsIG91dDogMHg1YjU4CitsaHggOjogb2Zmc2V0OiAweGE4LCBvdXQ6IDB4NjAzNgorbGh4IDo6IG9mZnNldDogMHhiMCwgb3V0OiAweDJkODQKK2xoeCA6OiBvZmZzZXQ6IDB4YjgsIG91dDogMHgxNmVhCitsaHggOjogb2Zmc2V0OiAweGMwLCBvdXQ6IDB4NmQ5MAorbGh4IDo6IG9mZnNldDogMHhjOCwgb3V0OiAweDU2ZmUKK2xoeCA6OiBvZmZzZXQ6IDB4ZDAsIG91dDogMHgxYjRjCitsaHggOjogb2Zmc2V0OiAweGQ4LCBvdXQ6IDB4MjAyMgorbGh4IDo6IG9mZnNldDogMHhlMCwgb3V0OiAweGZmZmZmZmZmZmZmZjgwMjgKK2xoeCA6OiBvZmZzZXQ6IDB4ZTgsIG91dDogMHhmZmZmZmZmZmZmZmZiYjQ2CitsaHggOjogb2Zmc2V0OiAweGYwLCBvdXQ6IDB4ZmZmZmZmZmZmZmZmZjZmNAorbGh4IDo6IG9mZnNldDogMHhmOCwgb3V0OiAweGZmZmZmZmZmZmZmZmNkOWEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvbW1hcF9mY250bF9idWcuYyBiL25vbmUvdGVzdHMvbW1hcF9mY250bF9idWcuYwppbmRleCBmNDk2MzlhLi44YmZhZTY0IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL21tYXBfZmNudGxfYnVnLmMKKysrIGIvbm9uZS90ZXN0cy9tbWFwX2ZjbnRsX2J1Zy5jCkBAIC00MCw3ICs0MCw3IEBACiAJZmwubF9zdGFydCA9IDA7CiAJZmwubF9sZW4gPSAxOwogCi0JLyogSSdtIGFzc3VtaW5nIG5vb25lIGVsc2UgdHJpZXMgdG8gbG9jayB0aGlzISAqLworCS8qIEknbSBhc3N1bWluZyBubyBvbmUgZWxzZSB0cmllcyB0byBsb2NrIHRoaXMhICovCiAJaWYgKGZjbnRsKGZkLCBGX1NFVExLLCAmZmwpICE9IDApCiAJCWVycigxLCAiTG9ja2luZyAlcyIsIGZpbGUpOwogCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL21xLmMgYi9ub25lL3Rlc3RzL21xLmMKaW5kZXggYjJhYjdiYy4uODEwNWE4ZCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9tcS5jCisrKyBiL25vbmUvdGVzdHMvbXEuYwpAQCAtNjQsMTEgKzY0LDggQEAKICAgICAgIGV4aXQoMSk7CiAgICAgfQogCi0gIGlmIChsZW4gIT0gNCB8fCBtZW1jbXAoYnVmZmVyLCAiUElORyIsIDQpICE9IDApCi0gICAgewotICAgICAgZnByaW50ZihzdGRlcnIsICJNZXNzYWdlIGNvcnJ1cHQhIik7Ci0gICAgfQotCisjaWYgIWRlZmluZWQoVkdPX3NvbGFyaXMpCisgIC8qIE9uIFNvbGFyaXMsIHRoZXJlIGlzIG5vIGV4aXN0aW5nIG5vdGlmaWNhdGlvbiByZWdpc3RyYXRpb24uICovCiAgIGlmIChtcV9ub3RpZnkobXFkciwgTlVMTCkgPCAwKQogICAgIHsKICAgICAgIHBlcnJvcigibXFfbm90aWZ5Iik7CkBAIC03Niw2ICs3MywxMiBAQAogICAgICAgbXFfY2xvc2UobXFkdyk7CiAgICAgICBleGl0KDEpOwogICAgIH0KKyNlbmRpZiAvKiAhVkdPX3NvbGFyaXMgKi8KKworICBpZiAobGVuICE9IDQgfHwgbWVtY21wKGJ1ZmZlciwgIlBJTkciLCA0KSAhPSAwKQorICAgIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiTWVzc2FnZSBjb3JydXB0ISIpOworICAgIH0KIAogICBpZiAobXFfZ2V0YXR0cihtcWRyLCAmbXFhKSA8IDApCiAgICAgewpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGMzMi9NYWtlZmlsZS5hbSBiL25vbmUvdGVzdHMvcHBjMzIvTWFrZWZpbGUuYW0KaW5kZXggZTY2OTkyYy4uMTk2MjM5ZSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGMzMi9NYWtlZmlsZS5hbQorKysgYi9ub25lL3Rlc3RzL3BwYzMyL01ha2VmaWxlLmFtCkBAIC05LDEyICs5LDEyIEBACiAJYnVnMTM5MDUwLXBwYzMyLnN0ZG91dC5leHAgYnVnMTM5MDUwLXBwYzMyLnN0ZGVyci5leHAgXAogCWJ1ZzEzOTA1MC1wcGMzMi52Z3Rlc3QgXAogCWxkc3RyZXYuc3RkZXJyLmV4cCBsZHN0cmV2LnN0ZG91dC5leHAgbGRzdHJldi52Z3Rlc3QgXAotCWxzdy5zdGRlcnIuZXhwIGxzdy5zdGRvdXQuZXhwIGxzdy52Z3Rlc3QgXAogCWptLWludC5zdGRlcnIuZXhwIGptLWludC5zdGRvdXQuZXhwIGptLWludC52Z3Rlc3QgXAogCWptLWZwLnN0ZGVyci5leHAgam0tZnAuc3Rkb3V0LmV4cCBqbS1mcC52Z3Rlc3Qgam0tZnAuc3Rkb3V0LmV4cC1CRTIgXAogCWptLXZteC5zdGRlcnIuZXhwIGptLXZteC5zdGRvdXQuZXhwIGptLXZteC5zdGRvdXQuZXhwX01pbnVzX25hbiBcCiAJam0tdm14LnZndGVzdCBcCiAJam0tbWlzYy5zdGRlcnIuZXhwIGptLW1pc2Muc3Rkb3V0LmV4cCBqbS1taXNjLnZndGVzdCBcCisJbHN3LnN0ZGVyci5leHAgbHN3LnN0ZG91dC5leHAgbHN3LnZndGVzdCBcCiAJbWZ0b2NyZi5zdGRlcnIuZXhwIG1mdG9jcmYuc3Rkb3V0LmV4cCBtZnRvY3JmLnZndGVzdCBcCiAJbWNyZnMuc3RkZXJyLmV4cCBtY3Jmcy5zdGRvdXQuZXhwIG1jcmZzLnZndGVzdCBcCiAJcm91bmQuc3RkZXJyLmV4cCByb3VuZC5zdGRvdXQuZXhwIHJvdW5kLnZndGVzdCBcCkBAIC00MCwzMSArNDAsMjUgQEAKIAl0ZXN0X2RmcDUuc3RkZXJyLmV4cCB0ZXN0X2RmcDUuc3Rkb3V0LmV4cCB0ZXN0X2RmcDUudmd0ZXN0IFwKIAlqbV92ZWNfaXNhXzJfMDcuc3RkZXJyLmV4cCBqbV92ZWNfaXNhXzJfMDcuc3Rkb3V0LmV4cCBqbV92ZWNfaXNhXzJfMDcudmd0ZXN0IFwKIAlqbV9mcF9pc2FfMl8wNy5zdGRlcnIuZXhwIGptX2ZwX2lzYV8yXzA3LnN0ZG91dC5leHAgam1fZnBfaXNhXzJfMDcudmd0ZXN0IFwKLQlqbV9pbnRfaXNhXzJfMDcuc3Rkb3V0LmV4cCBcCiAJam1faW50X2lzYV8yXzA3LnN0ZGVyci5leHAgam1faW50X2lzYV8yXzA3LnZndGVzdCBcCisJam1faW50X2lzYV8yXzA3LnN0ZG91dC5leHAgXAogCXRlc3RfaXNhXzJfMDdfcGFydDIuc3RkZXJyLmV4cCB0ZXN0X2lzYV8yXzA3X3BhcnQyLnN0ZG91dC5leHAgdGVzdF9pc2FfMl8wN19wYXJ0Mi52Z3Rlc3QgXAogCXRlc3RfdG0uc3RkZXJyLmV4cCB0ZXN0X3RtLnN0ZG91dC5leHAgdGVzdF90bS52Z3Rlc3QgXAogCXRlc3RfdG91Y2hfdG0uc3RkZXJyLmV4cCB0ZXN0X3RvdWNoX3RtLnN0ZG91dC5leHAgdGVzdF90b3VjaF90bS52Z3Rlc3QgXAogCWxkc3RfbXVsdGlwbGUuc3RkZXJyLmV4cCBsZHN0X211bHRpcGxlLnN0ZG91dC5leHAgbGRzdF9tdWx0aXBsZS52Z3Rlc3QgXAogCWRhdGEtY2FjaGUtaW5zdHJ1Y3Rpb25zLnN0ZGVyci5leHAgZGF0YS1jYWNoZS1pbnN0cnVjdGlvbnMuc3Rkb3V0LmV4cCBkYXRhLWNhY2hlLWluc3RydWN0aW9ucy52Z3Rlc3QKIAotCiBjaGVja19QUk9HUkFNUyA9IFwKIAlhbGxleGVjIFwKLQlidWcxMjkzOTAtcHBjMzIgXAotCWJ1ZzEzOTA1MC1wcGMzMiBcCi0JbGRzdHJldiBsc3cgam0taW5zbnMgbWZ0b2NyZiBtY3JmcyByb3VuZCB0ZXN0X2Z4IHRlc3RfZ3ggXAotCXRlc3RWTVggdHdpIHR3IHhsY19kYmxfdTMyIHBvd2VyNStfcm91bmQgcG93ZXI2X2JjbXAgXAotCXRlc3RfaXNhXzJfMDZfcGFydDEgXAotCXRlc3RfaXNhXzJfMDZfcGFydDIgXAotCXRlc3RfaXNhXzJfMDZfcGFydDMgXAorCWxzdyBqbS1pbnNucyByb3VuZCBcCisJdGVzdF9pc2FfMl8wNl9wYXJ0MSB0ZXN0X2lzYV8yXzA2X3BhcnQyIHRlc3RfaXNhXzJfMDZfcGFydDMgXAogCXRlc3RfZGZwMSB0ZXN0X2RmcDIgdGVzdF9kZnAzIHRlc3RfZGZwNCB0ZXN0X2RmcDUgXAotCXRlc3RfaXNhXzJfMDdfcGFydDEgXAotCXRlc3RfaXNhXzJfMDdfcGFydDIgXAotCXRlc3RfdG0gXAotCXRlc3RfdG91Y2hfdG0gXAotCWxkc3RfbXVsdGlwbGUgXAotCWRhdGEtY2FjaGUtaW5zdHJ1Y3Rpb25zCisJdGVzdF9pc2FfMl8wN19wYXJ0MSB0ZXN0X2lzYV8yXzA3X3BhcnQyIFwKKwl0ZXN0X3RtIHRlc3RfdG91Y2hfdG0gbGRzdF9tdWx0aXBsZSBkYXRhLWNhY2hlLWluc3RydWN0aW9ucyBcCisJdGVzdF9meCB0ZXN0X2d4IFwKKwl0ZXN0Vk1YIHR3aSB0dyB4bGNfZGJsX3UzMiBwb3dlcjUrX3JvdW5kIHBvd2VyNl9iY21wIFwKKwlidWcxMjkzOTAtcHBjMzIgYnVnMTM5MDUwLXBwYzMyIFwKKwlsZHN0cmV2IG1mdG9jcmYgbWNyZnMKIAogQU1fQ0ZMQUdTICAgICs9IEBGTEFHX00zMkAKIEFNX0NYWEZMQUdTICArPSBARkxBR19NMzJACkBAIC05OSwxMyArOTMsMTcgQEAKIGVuZGlmCiAKIGlmIEhBU19JU0FfMl8wNwotQlVJTERfRkxBR1NfSVNBXzJfMDcgPSAtbWh0bSAgLW1jcHU9cG93ZXI4CitCVUlMRF9GTEFHU19JU0FfMl8wNyA9IC1tY3B1PXBvd2VyOAogSVNBXzJfMDdfRkxBRyA9IC1ESEFTX0lTQV8yXzA3CiBlbHNlCiBCVUlMRF9GTEFHU19JU0FfMl8wNyA9CiBJU0FfMl8wN19GTEFHID0KIGVuZGlmCiAKK2lmIFNVUFBPUlRTX0hUTQorSFRNX0ZMQUcgPSAtbWh0bSAtRFNVUFBPUlRTX0hUTQorZW5kaWYKKwogam1faW5zbnNfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1XaW5saW5lIC1XYWxsIC1PIC1nIC1tcmVnbmFtZXMgXAogCQkJQEZMQUdfTTMyQCAkKEFMVElWRUNfRkxBRykgJChCVUlMRF9GTEFHX0FMVElWRUMpCiAKQEAgLTEyOCwyMiArMTI2LDE5IEBACiAJCQlARkxBR19NMzJAICQoQlVJTERfRkxBR1NfREZQKQogdGVzdF9kZnAzX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoREZQX0ZMQUcpIFwKIAkJCUBGTEFHX00zMkAgJChCVUlMRF9GTEFHU19ERlApCi0KIHRlc3RfZGZwNF9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyAkKERGUF9GTEFHKSBcCiAJCQlARkxBR19NMzJAICQoQlVJTERfRkxBR1NfREZQKQotCiB0ZXN0X2RmcDVfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1XaW5saW5lIC1XYWxsIC1PIC1nIC1tcmVnbmFtZXMgJChERlBfRkxBRykgXAogCQkJQEZMQUdfTTMyQCAkKEJVSUxEX0ZMQUdTX0RGUCkKIAogdGVzdF9pc2FfMl8wN19wYXJ0MV9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyAkKElTQV8yXzA3X0ZMQUcpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIEBGTEFHX00zMkAgJChCVUlMRF9GTEFHU19JU0FfMl8wNykKLQorCQkJQEZMQUdfTTMyQCAkKEJVSUxEX0ZMQUdTX0lTQV8yXzA3KQogdGVzdF9pc2FfMl8wN19wYXJ0Ml9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyAkKElTQV8yXzA3X0ZMQUcpIFwKIAkJCUBGTEFHX00zMkAgJChCVUlMRF9GTEFHU19JU0FfMl8wNykKIAotdGVzdF90bV9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyAkKElTQV8yXzA3X0ZMQUcpIFwKK3Rlc3RfdG1fQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1XaW5saW5lIC1XYWxsIC1PIC1nIC1tcmVnbmFtZXMgJChIVE1fRkxBRykgJChJU0FfMl8wN19GTEFHKSBcCiAJCQlARkxBR19NMzJAICQoQlVJTERfRkxBR1NfSVNBXzJfMDcpCi10ZXN0X3RvdWNoX3RtX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoSVNBXzJfMDdfRkxBRykgXAordGVzdF90b3VjaF90bV9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyAkKEhUTV9GTEFHKSAkKElTQV8yXzA3X0ZMQUcpIFwKIAkJCUBGTEFHX00zMkAgJChCVUlMRF9GTEFHU19JU0FfMl8wNykKIAogdGVzdF9pc2FfMl8wNl9wYXJ0M19MREFERCA9IC1sbQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGMzMi9idWcxMjkzOTAtcHBjMzIudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGMzMi9idWcxMjkzOTAtcHBjMzIudmd0ZXN0CmluZGV4IGQ3ZDA1YjMuLjEzMTY1ZmMgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjMzIvYnVnMTI5MzkwLXBwYzMyLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzMyL2J1ZzEyOTM5MC1wcGMzMi52Z3Rlc3QKQEAgLTEsMyArMSwzIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3ZteF9jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgYWx0aXZlYwogcHJvZzogYnVnMTI5MzkwLXBwYzMyCiB2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzMyL2ptLXZteC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzMyL2ptLXZteC52Z3Rlc3QKaW5kZXggMTgzNTM2Yi4uZDI5ZDM5NyAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGMzMi9qbS12bXgudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjMzIvam0tdm14LnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfdm14X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBhbHRpdmVjCiBwcm9nOiBqbS1pbnNucyAtYQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGMzMi9qbV9mcF9pc2FfMl8wNy52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzMyL2ptX2ZwX2lzYV8yXzA3LnZndGVzdAppbmRleCBhNjE2MTZjLi5kZDg0NmUwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzMyL2ptX2ZwX2lzYV8yXzA3LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzMyL2ptX2ZwX2lzYV8yXzA3LnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfaXNhLTJfMDdfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGFyY2hfMl8wNwogcHJvZzogdGVzdF9pc2FfMl8wN19wYXJ0MSAtZgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGMzMi9qbV9pbnRfaXNhXzJfMDcudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGMzMi9qbV9pbnRfaXNhXzJfMDcudmd0ZXN0CmluZGV4IGYxZjZjNDguLjBiZjlkOGIgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjMzIvam1faW50X2lzYV8yXzA3LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzMyL2ptX2ludF9pc2FfMl8wNy52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2lzYS0yXzA3X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBhcmNoXzJfMDcKIHByb2c6IHRlc3RfaXNhXzJfMDdfcGFydDEgLWkKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjMzIvam1fdmVjX2lzYV8yXzA3LnZndGVzdCBiL25vbmUvdGVzdHMvcHBjMzIvam1fdmVjX2lzYV8yXzA3LnZndGVzdAppbmRleCBmNjljMTI2Li5kYzk1MjIwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzMyL2ptX3ZlY19pc2FfMl8wNy52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGMzMi9qbV92ZWNfaXNhXzJfMDcudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19pc2EtMl8wN19jYXAgJiYgISAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NGxlX2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBhcmNoXzJfMDcKIHByb2c6IHRlc3RfaXNhXzJfMDdfcGFydDEgLWEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdFZNWC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RWTVgudmd0ZXN0CmluZGV4IDgxYzU5ZjIuLmIzNmRiY2IgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdFZNWC52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGMzMi90ZXN0Vk1YLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfdm14X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBhbHRpdmVjCiBwcm9nOiB0ZXN0Vk1YCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfZGZwMS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfZGZwMS52Z3Rlc3QKaW5kZXggMGVmZTVkZi4uNzFhZjVmYSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2RmcDEudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9kZnAxLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfZGZwX2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBkZnAKIHByb2c6IHRlc3RfZGZwMQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2RmcDIudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2RmcDIudmd0ZXN0CmluZGV4IDdmZTZjMTYuLjIzYTFmMDAgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9kZnAyLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfZGZwMi52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2RmcF9jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgZGZwCiBwcm9nOiB0ZXN0X2RmcDIKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9kZnAzLnZndGVzdCBiL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9kZnAzLnZndGVzdAppbmRleCAzOTE2OGEzLi5lODA2ZTg1IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfZGZwMy52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2RmcDMudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19kZnBfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGRmcAogcHJvZzogdGVzdF9kZnAzCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfZGZwNC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfZGZwNC52Z3Rlc3QKaW5kZXggZGFjMzM1Ni4uNzY4OGViOCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2RmcDQudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9kZnA0LnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfZGZwX2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBkZnAKIHByb2c6IHRlc3RfZGZwNApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2RmcDUudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2RmcDUudmd0ZXN0CmluZGV4IDk3NzdkMDUuLjBjOTA1ZDggMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9kZnA1LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfZGZwNS52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2RmcF9jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgZGZwCiBwcm9nOiB0ZXN0X2RmcDUKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9pc2FfMl8wNl9wYXJ0MS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfaXNhXzJfMDZfcGFydDEudmd0ZXN0CmluZGV4IDUxMmEyMTguLjI5ZTlkMDYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9pc2FfMl8wNl9wYXJ0MS52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2lzYV8yXzA2X3BhcnQxLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfaXNhLTJfMDZfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGFyY2hfMl8wNgogcHJvZzogdGVzdF9pc2FfMl8wNl9wYXJ0MQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2lzYV8yXzA2X3BhcnQyLnZndGVzdCBiL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9pc2FfMl8wNl9wYXJ0Mi52Z3Rlc3QKaW5kZXggN2FlMDFiZS4uNzc4M2M1ZSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2lzYV8yXzA2X3BhcnQyLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfaXNhXzJfMDZfcGFydDIudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19pc2EtMl8wNl9jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgYXJjaF8yXzA2CiBwcm9nOiB0ZXN0X2lzYV8yXzA2X3BhcnQyCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfaXNhXzJfMDZfcGFydDMudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2lzYV8yXzA2X3BhcnQzLnZndGVzdAppbmRleCAzNTE5YzhhLi5lNGNjZmVlIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfaXNhXzJfMDZfcGFydDMudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9pc2FfMl8wNl9wYXJ0My52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2lzYS0yXzA2X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBhcmNoXzJfMDYKIHByb2c6IHRlc3RfaXNhXzJfMDZfcGFydDMKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9pc2FfMl8wN19wYXJ0Mi52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfaXNhXzJfMDdfcGFydDIudmd0ZXN0CmluZGV4IGE0NjQ5YmUuLjgxMDg3OTYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjMzIvdGVzdF9pc2FfMl8wN19wYXJ0Mi52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X2lzYV8yXzA3X3BhcnQyLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfaXNhLTJfMDdfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGFyY2hfMl8wNwogcHJvZzogdGVzdF9pc2FfMl8wN19wYXJ0MgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X3RtLnZndGVzdCBiL25vbmUvdGVzdHMvcHBjMzIvdGVzdF90bS52Z3Rlc3QKaW5kZXggOTc3YzMyNi4uZjI1ODA3NyAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X3RtLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfdG0udmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19pc2EtMl8wN19jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgaHRtCiBwcm9nOiB0ZXN0X3RtCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfdG91Y2hfdG0udmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGMzMi90ZXN0X3RvdWNoX3RtLnZndGVzdAppbmRleCA0ODA2Y2NmLi41MDQwOWI3IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzMyL3Rlc3RfdG91Y2hfdG0udmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjMzIvdGVzdF90b3VjaF90bS52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2lzYS0yXzA3X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBodG0KIHByb2c6IHRlc3RfdG91Y2hfdG0KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjNjQvTWFrZWZpbGUuYW0gYi9ub25lL3Rlc3RzL3BwYzY0L01ha2VmaWxlLmFtCmluZGV4IGQxZmFjYTYuLmE0ZjcxZTIgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjNjQvTWFrZWZpbGUuYW0KKysrIGIvbm9uZS90ZXN0cy9wcGM2NC9NYWtlZmlsZS5hbQpAQCAtMTcsNyArMTcsOCBAQAogCW9wY29kZXMuaCBcCiAJcG93ZXI2X2JjbXAuc3RkZXJyLmV4cCBwb3dlcjZfYmNtcC5zdGRvdXQuZXhwIHBvd2VyNl9iY21wLnZndGVzdCBcCiAJcG93ZXI2X21mX2dwci5zdGRlcnIuZXhwIHBvd2VyNl9tZl9ncHIuc3Rkb3V0LmV4cCBwb3dlcjZfbWZfZ3ByLnZndGVzdCBcCi0JdGVzdF9pc2FfMl8wNl9wYXJ0MS5zdGRlcnIuZXhwICB0ZXN0X2lzYV8yXzA2X3BhcnQxLnN0ZG91dC5leHAgIHRlc3RfaXNhXzJfMDZfcGFydDEudmd0ZXN0IHRlc3RfaXNhXzJfMDZfcGFydDEuc3Rkb3V0LmV4cC1MRSBcCisJdGVzdF9pc2FfMl8wNl9wYXJ0MS5zdGRlcnIuZXhwICB0ZXN0X2lzYV8yXzA2X3BhcnQxLnN0ZG91dC5leHAgIHRlc3RfaXNhXzJfMDZfcGFydDEudmd0ZXN0IFwKKwl0ZXN0X2lzYV8yXzA2X3BhcnQxLnN0ZG91dC5leHAtTEUgXAogCXRlc3RfaXNhXzJfMDZfcGFydDIuc3RkZXJyLmV4cCAgdGVzdF9pc2FfMl8wNl9wYXJ0Mi5zdGRvdXQuZXhwICB0ZXN0X2lzYV8yXzA2X3BhcnQyLnZndGVzdCBcCiAJdGVzdF9pc2FfMl8wNl9wYXJ0My5zdGRlcnIuZXhwICB0ZXN0X2lzYV8yXzA2X3BhcnQzLnN0ZG91dC5leHAgIHRlc3RfaXNhXzJfMDZfcGFydDMudmd0ZXN0IFwKIAl0ZXN0X2RmcDEuc3RkZXJyLmV4cCB0ZXN0X2RmcDEuc3Rkb3V0LmV4cCB0ZXN0X2RmcDEudmd0ZXN0IFwKQEAgLTM4LDExICszOSwxNCBAQAogCiBjaGVja19QUk9HUkFNUyA9IFwKIAlhbGxleGVjIFwKLQlqbS1pbnNucyBsc3cgcm91bmQgc3RkX3JlZ19pbW0gdHdpX3RkaSB0d190ZCBwb3dlcjZfYmNtcCBcCi0JcG93ZXI2X21mX2dwciB0ZXN0X2lzYV8yXzA2X3BhcnQxIHRlc3RfaXNhXzJfMDZfcGFydDIgXAotCXRlc3RfaXNhXzJfMDZfcGFydDMgdGVzdF9kZnAxIHRlc3RfZGZwMiB0ZXN0X2RmcDMgdGVzdF9kZnA0IFwKLQl0ZXN0X2RmcDUgdGVzdF9pc2FfMl8wN19wYXJ0MSB0ZXN0X2lzYV8yXzA3X3BhcnQyIFwKLQl0ZXN0X3RtIHRlc3RfdG91Y2hfdG0gbGRzdF9tdWx0aXBsZSBkYXRhLWNhY2hlLWluc3RydWN0aW9ucworCWxzdyBqbS1pbnNucyByb3VuZCBcCisJdGVzdF9pc2FfMl8wNl9wYXJ0MSB0ZXN0X2lzYV8yXzA2X3BhcnQyIHRlc3RfaXNhXzJfMDZfcGFydDMgXAorCXRlc3RfZGZwMSB0ZXN0X2RmcDIgdGVzdF9kZnAzIHRlc3RfZGZwNCB0ZXN0X2RmcDUgXAorCXRlc3RfaXNhXzJfMDdfcGFydDEgdGVzdF9pc2FfMl8wN19wYXJ0MiBcCisJdGVzdF90bSB0ZXN0X3RvdWNoX3RtIGxkc3RfbXVsdGlwbGUgZGF0YS1jYWNoZS1pbnN0cnVjdGlvbnMgXAorCXBvd2VyNl9tZl9ncHIgc3RkX3JlZ19pbW0gXAorCXR3aV90ZGkgdHdfdGQgcG93ZXI2X2JjbXAKKwogCiBBTV9DRkxBR1MgICAgKz0gQEZMQUdfTTY0QAogQU1fQ1hYRkxBR1MgICs9IEBGTEFHX002NEAKQEAgLTc1LDEzICs3OSwyMCBAQAogZW5kaWYKIAogaWYgSEFTX0lTQV8yXzA3Ci1CVUlMRF9GTEFHU19JU0FfMl8wNyA9ICAtbWh0bSAtbWNwdT1wb3dlcjgKK0JVSUxEX0ZMQUdTX0lTQV8yXzA3ID0gLW1jcHU9cG93ZXI4CiBJU0FfMl8wN19GTEFHID0gLURIQVNfSVNBXzJfMDcKIGVsc2UKIEJVSUxEX0ZMQUdTX0lTQV8yXzA3ID0KIElTQV8yXzA3X0ZMQUcgPQogZW5kaWYKIAoraWYgU1VQUE9SVFNfSFRNCitIVE1fRkxBRyA9IC1taHRtIC1EU1VQUE9SVFNfSFRNCitlbmRpZgorCitqbV9pbnNuc19DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyBcCisJCQlARkxBR19NNjRAICQoQUxUSVZFQ19GTEFHKSAkKEJVSUxEX0ZMQUdfQUxUSVZFQykKKwogdGVzdF9pc2FfMl8wNl9wYXJ0MV9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyAkKFZTWF9GTEFHKSBcCiAJCQlARkxBR19NNjRAICQoQUxUSVZFQ19GTEFHKSAkKEJVSUxEX0ZMQUdfVlNYKQogCkBAIC05MSwzMiArMTAyLDI1IEBACiB0ZXN0X2lzYV8yXzA2X3BhcnQzX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoVlNYX0ZMQUcpIFwKIAkJCUBGTEFHX002NEAgJChBTFRJVkVDX0ZMQUcpICQoQlVJTERfRkxBR19WU1gpCiAKLWptX2luc25zX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzIFwKLQkJCUBGTEFHX002NEAgJChBTFRJVkVDX0ZMQUcpICQoQlVJTERfRkxBR19BTFRJVkVDKQotCiB0ZXN0X2RmcDFfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1XaW5saW5lIC1XYWxsIC1PIC1nIC1tcmVnbmFtZXMgJChERlBfRkxBRykgXAogCQkJQEZMQUdfTTY0QCAkKEJVSUxEX0ZMQUdTX0RGUCkKLQogdGVzdF9kZnAyX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoREZQX0ZMQUcpIFwKIAkJCUBGTEFHX002NEAgJChCVUlMRF9GTEFHU19ERlApCiB0ZXN0X2RmcDNfQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1XaW5saW5lIC1XYWxsIC1PIC1nIC1tcmVnbmFtZXMgJChERlBfRkxBRykgXAogCQkJQEZMQUdfTTY0QCAkKEJVSUxEX0ZMQUdTX0RGUCkKLQogdGVzdF9kZnA0X0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoREZQX0ZMQUcpIFwKIAkJCUBGTEFHX002NEAgJChCVUlMRF9GTEFHU19ERlApCi0KIHRlc3RfZGZwNV9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyAkKERGUF9GTEFHKSBcCiAJCQlARkxBR19NNjRAICQoQlVJTERfRkxBR1NfREZQKQogCiB0ZXN0X2lzYV8yXzA3X3BhcnQxX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoSVNBXzJfMDdfRkxBRykgXAogCQkJQEZMQUdfTTY0QCAkKEJVSUxEX0ZMQUdTX0lTQV8yXzA3KQotCiB0ZXN0X2lzYV8yXzA3X3BhcnQyX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoSVNBXzJfMDdfRkxBRykgXAogCQkJQEZMQUdfTTY0QCAkKEJVSUxEX0ZMQUdTX0lTQV8yXzA3KQogCi10ZXN0X3RtX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoSVNBXzJfMDdfRkxBRykgXAordGVzdF90bV9DRkxBR1MgPSAkKEFNX0NGTEFHUykgLVdpbmxpbmUgLVdhbGwgLU8gLWcgLW1yZWduYW1lcyAkKEhUTV9GTEFHKSAkKElTQV8yXzA3X0ZMQUcpIFwKIAkJCUBGTEFHX002NEAgJChCVUlMRF9GTEFHU19JU0FfMl8wNykKLXRlc3RfdG91Y2hfdG1fQ0ZMQUdTID0gJChBTV9DRkxBR1MpIC1XaW5saW5lIC1XYWxsIC1PIC1nIC1tcmVnbmFtZXMgJChJU0FfMl8wN19GTEFHKSBcCit0ZXN0X3RvdWNoX3RtX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKSAtV2lubGluZSAtV2FsbCAtTyAtZyAtbXJlZ25hbWVzICQoSFRNX0ZMQUcpICQoSVNBXzJfMDdfRkxBRykgXAogCQkJQEZMQUdfTTY0QCAkKEJVSUxEX0ZMQUdTX0lTQV8yXzA3KQogCiB0ZXN0X2lzYV8yXzA2X3BhcnQzX0xEQUREID0gLWxtCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzY0L2ptLXZteC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzY0L2ptLXZteC52Z3Rlc3QKaW5kZXggMTgzNTM2Yi4uZDI5ZDM5NyAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGM2NC9qbS12bXgudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjNjQvam0tdm14LnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfdm14X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBhbHRpdmVjCiBwcm9nOiBqbS1pbnNucyAtYQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGM2NC9qbV9mcF9pc2FfMl8wNy52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzY0L2ptX2ZwX2lzYV8yXzA3LnZndGVzdAppbmRleCBhNjE2MTZjLi5kZDg0NmUwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzY0L2ptX2ZwX2lzYV8yXzA3LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzY0L2ptX2ZwX2lzYV8yXzA3LnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfaXNhLTJfMDdfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGFyY2hfMl8wNwogcHJvZzogdGVzdF9pc2FfMl8wN19wYXJ0MSAtZgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGM2NC9qbV9pbnRfaXNhXzJfMDcudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGM2NC9qbV9pbnRfaXNhXzJfMDcudmd0ZXN0CmluZGV4IGYxZjZjNDguLjBiZjlkOGIgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjNjQvam1faW50X2lzYV8yXzA3LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzY0L2ptX2ludF9pc2FfMl8wNy52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2lzYS0yXzA3X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBhcmNoXzJfMDcKIHByb2c6IHRlc3RfaXNhXzJfMDdfcGFydDEgLWkKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjNjQvam1fdmVjX2lzYV8yXzA3LnZndGVzdCBiL25vbmUvdGVzdHMvcHBjNjQvam1fdmVjX2lzYV8yXzA3LnZndGVzdAppbmRleCBhOTMwNjBhLi5kYzk1MjIwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzY0L2ptX3ZlY19pc2FfMl8wNy52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGM2NC9qbV92ZWNfaXNhXzJfMDcudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19pc2EtMl8wN19jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgYXJjaF8yXzA3CiBwcm9nOiB0ZXN0X2lzYV8yXzA3X3BhcnQxIC1hCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfZGZwMS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfZGZwMS52Z3Rlc3QKaW5kZXggMGVmZTVkZi4uNzFhZjVmYSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2RmcDEudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9kZnAxLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfZGZwX2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBkZnAKIHByb2c6IHRlc3RfZGZwMQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2RmcDIudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2RmcDIudmd0ZXN0CmluZGV4IDdmZTZjMTYuLjIzYTFmMDAgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9kZnAyLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfZGZwMi52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2RmcF9jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgZGZwCiBwcm9nOiB0ZXN0X2RmcDIKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9kZnAzLnZndGVzdCBiL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9kZnAzLnZndGVzdAppbmRleCAzOTE2OGEzLi5lODA2ZTg1IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfZGZwMy52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2RmcDMudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19kZnBfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGRmcAogcHJvZzogdGVzdF9kZnAzCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfZGZwNC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfZGZwNC52Z3Rlc3QKaW5kZXggZGFjMzM1Ni4uNzY4OGViOCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2RmcDQudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9kZnA0LnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfZGZwX2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBkZnAKIHByb2c6IHRlc3RfZGZwNApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2RmcDUudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2RmcDUudmd0ZXN0CmluZGV4IDk3NzdkMDUuLjBjOTA1ZDggMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9kZnA1LnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfZGZwNS52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2RmcF9jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgZGZwCiBwcm9nOiB0ZXN0X2RmcDUKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9pc2FfMl8wNl9wYXJ0MS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfaXNhXzJfMDZfcGFydDEudmd0ZXN0CmluZGV4IDUxMmEyMTguLjI5ZTlkMDYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9pc2FfMl8wNl9wYXJ0MS52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2lzYV8yXzA2X3BhcnQxLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfaXNhLTJfMDZfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGFyY2hfMl8wNgogcHJvZzogdGVzdF9pc2FfMl8wNl9wYXJ0MQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2lzYV8yXzA2X3BhcnQyLnZndGVzdCBiL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9pc2FfMl8wNl9wYXJ0Mi52Z3Rlc3QKaW5kZXggN2FlMDFiZS4uNzc4M2M1ZSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2lzYV8yXzA2X3BhcnQyLnZndGVzdAorKysgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfaXNhXzJfMDZfcGFydDIudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19pc2EtMl8wNl9jYXAKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgYXJjaF8yXzA2CiBwcm9nOiB0ZXN0X2lzYV8yXzA2X3BhcnQyCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfaXNhXzJfMDZfcGFydDMudmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2lzYV8yXzA2X3BhcnQzLnZndGVzdAppbmRleCAzNTE5YzhhLi5lNGNjZmVlIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfaXNhXzJfMDZfcGFydDMudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9pc2FfMl8wNl9wYXJ0My52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2lzYS0yXzA2X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBhcmNoXzJfMDYKIHByb2c6IHRlc3RfaXNhXzJfMDZfcGFydDMKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9pc2FfMl8wN19wYXJ0Mi52Z3Rlc3QgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfaXNhXzJfMDdfcGFydDIudmd0ZXN0CmluZGV4IGE0NjQ5YmUuLjgxMDg3OTYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHBjNjQvdGVzdF9pc2FfMl8wN19wYXJ0Mi52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X2lzYV8yXzA3X3BhcnQyLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvY2hlY2tfaXNhLTJfMDdfY2FwCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX3BwYzY0X2F1eHZfY2FwIGFyY2hfMl8wNwogcHJvZzogdGVzdF9pc2FfMl8wN19wYXJ0MgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X3RtLmMgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfdG0uYwppbmRleCAyOWViNWViLi5jODI5Mzg0IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfdG0uYworKysgYi9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfdG0uYwpAQCAtMSw1ICsxLDUgQEAKICNpbmNsdWRlIDxzdGRpby5oPgotI2lmZGVmIEhBU19JU0FfMl8wNworI2lmZGVmIFNVUFBPUlRTX0hUTQogaW50IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpIGh0bV9iZWdpbiAoaW50IHIzLCBpbnQgcjQpCiB7CiAgICBpbnQgcmV0OwpAQCAtMTQsMTAgKzE0LDEyIEBACiAjZW5kaWYKIAogaW50IG1haW4gKHZvaWQpIHsKLSNpZmRlZiBIQVNfSVNBXzJfMDcKKyNpZmRlZiBTVVBQT1JUU19IVE0KICAgIGludCByZXQ7CiAgICByZXQgPSBodG1fYmVnaW4gKDEwLCAyMCk7CiAgICBwcmludGYgKCJyZXQgPSAlZCwgZXhwZWN0ZWQgPSAxMFxuIiwgcmV0KTsKKyNlbHNlCisgICBwcmludGYgKCJObyBIVE0gc3VwcG9ydC4iKTsKICNlbmRpZgogICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfdG0udmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X3RtLnZndGVzdAppbmRleCA5NzdjMzI2Li5mMjU4MDc3IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfdG0udmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjNjQvdGVzdF90bS52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2lzYS0yXzA3X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBodG0KIHByb2c6IHRlc3RfdG0KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHBjNjQvdGVzdF90b3VjaF90bS5jIGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X3RvdWNoX3RtLmMKaW5kZXggOWU0MDA4My4uNTdmODliYiAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X3RvdWNoX3RtLmMKKysrIGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X3RvdWNoX3RtLmMKQEAgLTEsMTUgKzEsMTcgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogCiBpbnQgbWFpbiAodm9pZCkgewotI2lmZGVmIEhBU19JU0FfMl8wNworI2lmZGVmIFNVUFBPUlRTX0hUTQogICAgLyogSnVzdCBnZXQgdGhlIGNvbXBpbGVyIHRvIGdlbmVyYXRlIGVhY2ggb2YgdGhlIFRNIGluc3RydWN0aW9ucwogICAgICogc28gd2UgY2FuIHZlcmlmeSB0aGF0IHZhbGdyaW5kIHJlY29nbml6ZXMgdGhlbS4KICAgICAqIEZvciBub3csIG9ubHkgdGhlIHRiZWdpbiBpbnN0cnVjdGlvbiBkb2VzIGFueXRoaW5nIGluIHZhbGdyaW5kLgogICAgICogVGhlIHJlc3QgYXJlIGp1c3QgdHJlYXRlZCBhcyBOT1BTLgogICAgICovCiAgICBfX2J1aWx0aW5fdGFib3J0ICgwKTsKKyNpZmRlZiBfX1BQQzY0X18KICAgIF9fYnVpbHRpbl90YWJvcnRkYyAoMCwwLDApOwogICAgX19idWlsdGluX3RhYm9ydGRjaSAoMCwwLDApOworI2VuZGlmCiAgICBfX2J1aWx0aW5fdGFib3J0d2MgKDAsMCwwKTsKICAgIF9fYnVpbHRpbl90YWJvcnR3Y2kgKDAsMCwwKTsKICAgIF9fYnVpbHRpbl90YmVnaW4gKDApOwpAQCAtMTgsNiArMjAsOCBAQAogICAgX19idWlsdGluX3RyZWNoa3B0ICgpOyAgLy8gbm90IHJlY29nbml6ZWQgYnkgZWFybHkgSFcKICAgIF9fYnVpbHRpbl90cmVjbGFpbSAoMCk7IC8vIG5vdCByZWNvZ25pemVkIGJ5IGVhcmx5IEhXCiAgICBfX2J1aWx0aW5fdHNyICgwKTsKKyNlbHNlCisgICBwcmludGYgKCJObyBIVE0gc3VwcG9ydC4iKTsKICNlbmRpZgogICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfdG91Y2hfdG0udmd0ZXN0IGIvbm9uZS90ZXN0cy9wcGM2NC90ZXN0X3RvdWNoX3RtLnZndGVzdAppbmRleCA0ODA2Y2NmLi41MDQwOWI3IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3BwYzY0L3Rlc3RfdG91Y2hfdG0udmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcHBjNjQvdGVzdF90b3VjaF90bS52Z3Rlc3QKQEAgLTEsMiArMSwyIEBACi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL2NoZWNrX2lzYS0yXzA3X2NhcAorcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcCBodG0KIHByb2c6IHRlc3RfdG91Y2hfdG0KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHJvY2ZzLWNtZGxpbmUtZXhlLmMgYi9ub25lL3Rlc3RzL3Byb2Nmcy1jbWRsaW5lLWV4ZS5jCmluZGV4IDlmNTUwZTUuLmNmYjc4ZDYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHJvY2ZzLWNtZGxpbmUtZXhlLmMKKysrIGIvbm9uZS90ZXN0cy9wcm9jZnMtY21kbGluZS1leGUuYwpAQCAtOTgsMTIgKzk4LDEyIEBACiAgICAgcGVycm9yKCJnZXRjd2QiKTsKICAgc3RyY2F0KGN3ZCwgIi8iKTsKIAotICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvcHJvYy8lZC9jbWRsaW5lIiwgZ2V0cGlkKCkpOworICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvcHJvYy8lbGQvY21kbGluZSIsIChsb25nKSBnZXRwaWQoKSk7CiAKICAgdGVzdF9jbWRsaW5lKGN3ZCwgIi9wcm9jL3NlbGYvY21kbGluZSIsICIvcHJvYy9zZWxmL2NtZGxpbmUiKTsKICAgdGVzdF9jbWRsaW5lKGN3ZCwgIi9wcm9jLzxwaWQ+L2NtZGxpbmUiLCBwYXRoKTsKIAotICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvcHJvYy8lZC9leGUiLCBnZXRwaWQoKSk7CisgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIi9wcm9jLyVsZC9leGUiLCAobG9uZykgZ2V0cGlkKCkpOwogCiAgIHRlc3RfcmVhZGxpbmsoY3dkLCAiL3Byb2Mvc2VsZi9leGUiLCAiL3Byb2Mvc2VsZi9leGUiKTsKICAgdGVzdF9yZWFkbGluayhjd2QsICIvcHJvYy88cGlkPi9leGUiLCBwYXRoKTsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvcHJvY2ZzLW5vbi1saW51eC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3Byb2Nmcy1ub24tbGludXgudmd0ZXN0CmluZGV4IDYxYmYzNDkuLjgyNTBiMjcgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHJvY2ZzLW5vbi1saW51eC52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9wcm9jZnMtbm9uLWxpbnV4LnZndGVzdApAQCAtMSwzICsxLDYgQEAKLXByZXJlcTogWyAkKHVuYW1lKSAhPSBMaW51eCBdCisjIEZvciBMaW51eCwgdGhlcmUgaXMgJ3Byb2Nmcy1saW51eCcuCisjIEZvciBTb2xhcmlzLCB0aGVyZSBpcyBTb2xhcmlzLXNwZWNpZmljICdzb2xhcmlzL3Byb2MtY21kbGluZS1leGUnLgorIworcHJlcmVxOiAhIC4uLy4uL3Rlc3RzL29zX3Rlc3QgbGludXggJiYgISAuLi8uLi90ZXN0cy9vc190ZXN0IHNvbGFyaXMKIHByb2c6IHByb2Nmcy1jbWRsaW5lLWV4ZQogc3RkZXJyX2ZpbHRlcjogZmlsdGVyX3N0ZGVycgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9wdGhfYXRmb3JrMS5jIGIvbm9uZS90ZXN0cy9wdGhfYXRmb3JrMS5jCmluZGV4IDk5YTA4N2YuLjM0MjAxZWYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvcHRoX2F0Zm9yazEuYworKysgYi9ub25lL3Rlc3RzL3B0aF9hdGZvcmsxLmMKQEAgLTE4LDcgKzE4LDcgQEAKICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLiAgKi8KIAogI2luY2x1ZGUgPGVycm5vLmg+Ci0jaWYgIWRlZmluZWQoX19BUFBMRV9fKQorI2lmICFkZWZpbmVkKF9fQVBQTEVfXykgJiYgIWRlZmluZWQoX19zdW4pCiAjIGluY2x1ZGUgPGVycm9yLmg+CiAjZW5kaWYKICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxzeXMvd2FpdC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKLSNpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykgfHwgZGVmaW5lZChfX3N1bikKICNpbmNsdWRlIDxzdHJpbmcuaD4gIC8qIHN0cmVycm9yICovCiBzdGF0aWMgdm9pZCBlcnJvciAoaW50IHN0YXR1cywgaW50IGVycm51bSwgY2hhciogbXNnKQogewpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9yZXF1aXJlLXRleHQtc3ltYm9sLTIuc3RkZXJyLmV4cC1saWJjc28xIGIvbm9uZS90ZXN0cy9yZXF1aXJlLXRleHQtc3ltYm9sLTIuc3RkZXJyLmV4cC1saWJjc28xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMGMzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3JlcXVpcmUtdGV4dC1zeW1ib2wtMi5zdGRlcnIuZXhwLWxpYmNzbzEKQEAgLTAsMCArMSw5IEBACisKK3ZhbGdyaW5kOiAgRmF0YWwgZXJyb3IgYXQgd2hlbiBsb2FkaW5nIGxpYnJhcnkgd2l0aCBzb25hbWUKK3ZhbGdyaW5kOiAgICAgbGliYy5zby4xCit2YWxncmluZDogIENhbm5vdCBmaW5kIGFueSB0ZXh0IHN5bWJvbCB3aXRoIGEgbmFtZSB0aGF0IG1hdGNoZXMgdGhlIHBhdHRlcm4KK3ZhbGdyaW5kOiAgICAgZG9lc250ZXhpc3QKK3ZhbGdyaW5kOiAgYXMgcmVxdWlyZWQgYnkgYSAtLXJlcXVpcmUtdGV4dC1zeW1ib2w9IHNwZWNpZmljYXRpb24uCisKK3ZhbGdyaW5kOiAgQ2Fubm90IGNvbnRpbnVlIC0tIGV4aXRpbmcgbm93LgorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3Jlc19zZWFyY2gudmd0ZXN0IGIvbm9uZS90ZXN0cy9yZXNfc2VhcmNoLnZndGVzdAppbmRleCA3NDVhNWZmLi4yNGEzNWZjIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3Jlc19zZWFyY2gudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcmVzX3NlYXJjaC52Z3Rlc3QKQEAgLTEsNCArMSw0IEBACi1wcmVyZXE6IHdoaWNoIGhvc3QgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbCAmJiBob3N0IHd3dy55YWhvby5jb20gPiAvZGV2L251bGwKK3ByZXJlcTogd2hpY2ggaG9zdCA+L2Rldi9udWxsIDI+L2Rldi9udWxsICYmIGhvc3Qgd3d3LnlhaG9vLmNvbSA+IC9kZXYvbnVsbCAmJiAhIC4uLy4uL3Rlc3RzL29zX3Rlc3QgZGFyd2luCiBwcm9nOiByZXNfc2VhcmNoCiBhcmdzOiB3d3cueWFob28uY29tCiB2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3Jlc29sdi52Z3Rlc3QgYi9ub25lL3Rlc3RzL3Jlc29sdi52Z3Rlc3QKaW5kZXggZThjMWUyOS4uODc5YTE3NCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9yZXNvbHYudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcmVzb2x2LnZndGVzdApAQCAtMSArMSw0IEBACisjIERpc2FibGVkIG9uIFNvbGFyaXMgYmVjYXVzZSBkaWZmZXJlbnQgYXBwcm9hY2ggbmVlZHMgdG8gYmUgdGFrZW4uCisjIFRoZXJlIGlzIG5vbmUvdGVzdHMvc29sYXJpcy9yZXNvbHYgZm9yIHRoYXQgcHVycG9zZS4KK3ByZXJlcTogISAuLi8uLi90ZXN0cy9vc190ZXN0IHNvbGFyaXMgJiYgISAuLi8uLi90ZXN0cy9vc190ZXN0IGRhcndpbgogcHJvZzogcmVzb2x2CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3JsaW1pdDY0X25vZmlsZS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3JsaW1pdDY0X25vZmlsZS52Z3Rlc3QKaW5kZXggNDk5MzRmOC4uZTA2MWYzOSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy9ybGltaXQ2NF9ub2ZpbGUudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvcmxpbWl0NjRfbm9maWxlLnZndGVzdApAQCAtMSwyICsxLDIgQEAKLXByZXJlcTogLi4vLi4vdGVzdHMvb3NfdGVzdCBsaW51eAorcHJlcmVxOiAuLi8uLi90ZXN0cy9vc190ZXN0IGxpbnV4IHx8IC4uLy4uL3Rlc3RzL29zX3Rlc3Qgc29sYXJpcwogcHJvZzogcmxpbWl0NjRfbm9maWxlCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3MzOTB4L01ha2VmaWxlLmFtIGIvbm9uZS90ZXN0cy9zMzkweC9NYWtlZmlsZS5hbQppbmRleCA0MTAwMDg4Li42NTQ1MTE3IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3MzOTB4L01ha2VmaWxlLmFtCisrKyBiL25vbmUvdGVzdHMvczM5MHgvTWFrZWZpbGUuYW0KQEAgLTgsNyArOCw3IEBACiAgICAgICAgICAgICAgb3BfZXhjZXB0aW9uIGZneCBzdGNrIHN0Y2tmIHN0Y2tlIHN0ZmxlIGNrc20gbXZjbCBjbGNsIHRyb28gXAogICAgICAgICAgICAgIHRydG8gdHJvdCB0cnR0IHRyIHRyZSBjaWogY2dpaiBjbGlqIGNsZ2lqIGNyaiBjZ3JqIGNscmogY2xncmogXAogICAgICAgICAgICAgIGNzIGNzZyBjZHMgY2RzZyBjdTIxIGN1MjFfMSBjdTI0IGN1MjRfMSBjdTQyIGN1MTIgY3UxMl8xIFwKLSAgICAgICAgICAgICBleF9zaWcgZXhfY2xvbmUgY3UxNCBjdTE0XzEgY3U0MSBmcGNvbnYgZWNhZyBmcGV4dCBmcGV4dF93YXJuIFwKKyAgICAgICAgICAgICBleF9zaWcgZXhfY2xvbmUgY3UxNCBjdTE0XzEgY3U0MSBmcGNvbnYgZWNhZyBmcGV4dF93YXJuIFwKICAgICAgICAgICAgICByb3VuZGluZy0xIHJvdW5kaW5nLTIgcm91bmRpbmctMyByb3VuZGluZy00IHJvdW5kaW5nLTUgYmZwLTEgXAogICAgICAgICAgICAgIGJmcC0yIGJmcC0zIGJmcC00IHNybm0gc3JubWIgY29tcC0xIGNvbXAtMiBleHJsIHRtbGwgdG0gc3RtZyBcCiAJICAgICBleCBjbHN0IG12YyB0ZXN0X2ZvcmsgdGVzdF9zaWcgcm91bmRpbmctNiByeHNiZ1wKQEAgLTIxLDYgKzIxLDkgQEAKIGlmIEJVSUxEX0RGUF9URVNUUwogICBJTlNOX1RFU1RTICs9IGRmcC0xIGRmcC0yIGRmcC0zIGRmcC00IGRmcHRlc3QgZGZwZXh0IGRmcGNvbnYgc3JubXQgcGZwbwogZW5kaWYKK2lmIEhBU19NTE9OR19ET1VCTEVfMTI4CisgIElOU05fVEVTVFMgKz0gZnBleHQgZml4YnIKK2VuZGlmCiAKIGNoZWNrX1BST0dSQU1TID0gJChJTlNOX1RFU1RTKSBcCiAJCSBhbGxleGVjIFwKQEAgLTMzLDYgKzM2LDggQEAKIAllY2FnLnN0ZG91dC5leHAtejEwZWMgZWNhZy5zdGRvdXQuZXhwLXoxOTYgZWNhZy5zdGRvdXQuZXhwLXplYzEyIFwKIAllY2FnLnN0ZG91dC5leHAtejEzIFwKIAlvcDAwLnN0ZGVyci5leHAxIG9wMDAuc3RkZXJyLmV4cDIgb3AwMC52Z3Rlc3QgXAorCWZpeGJyLnZndGVzdCBmaXhici5zdGRlcnIuZXhwIGZpeGJyLnN0ZG91dC5leHAgXAorCWZwZXh0LnZndGVzdCBmcGV4dC5zdGRlcnIuZXhwIGZwZXh0LnN0ZG91dC5leHAgXAogCWZwZXh0X2ZhaWwudmd0ZXN0IGZwZXh0X2ZhaWwuc3RkZXJyLmV4cCBmcGV4dF9mYWlsLnN0ZG91dC5leHAgXAogCXRlc3QuaCBvcGNvZGVzLmggYWRkLmggIGFuZC5oICBkaXYuaCAgaW5zZXJ0LmggZGZwX3V0aWxzLmggXAogCW11bC5oICBvci5oICBzdWIuaCAgeG9yLmggdGFibGUuaCBzdmMuaCByb3VuZGluZy5oIFwKQEAgLTU2LDUgKzYxLDYgQEAKIGN1MTRfMV9DRkxBR1MgICAgPSAkKEFNX0NGTEFHUykgLURNMz0xCiBjdTIxXzFfQ0ZMQUdTICAgID0gJChBTV9DRkxBR1MpIC1ETTM9MQogY3UyNF8xX0NGTEFHUyAgICA9ICQoQU1fQ0ZMQUdTKSAtRE0zPTEKLQorZml4YnJfQ0ZMQUdTICAgICA9ICQoQU1fQ0ZMQUdTKSBARkxBR19NTE9OR19ET1VCTEVfMTI4QAorZnBleHRfQ0ZMQUdTICAgICA9ICQoQU1fQ0ZMQUdTKSBARkxBR19NTE9OR19ET1VCTEVfMTI4QAogZXhfY2xvbmVfTERGTEFHUyA9IC1scHRocmVhZApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zMzkweC9maXhici5jIGIvbm9uZS90ZXN0cy9zMzkweC9maXhici5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhOTkyMTAKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3MzOTB4L2ZpeGJyLmMKQEAgLTAsMCArMSw3MyBAQAorI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlICJvcGNvZGVzLmgiCisjaW5jbHVkZSAicm91bmRpbmcuaCIKKworLyogVGVzdCAiZml4YnIiICB3aXRoIHJvdW5kaW5nIG1vZGUgZ2l2ZW4gaW4gaW5zbiAobTMgZmllbGQpCisgICBDb3ZlcnMgYWxsIGdlbmVyYWxseSBhdmFpbGFibGUgcm91bmRpbmcgbW9kZXMgdGhhdCBjYW4gYmUgbWFwcGVkIHRvCisgICBJUlJvdW5kaW5nTW9kZS4gQXMgYSBjb25zZXF1ZW5jZSBtMz0xIHdoaWNoIGlzICJyb3VuZCB0byBuZWFyZXN0IHdpdGgKKyAgIHRpZXMgYXdheSBmcm9tIDAiIGlzIG5vdCB0ZXN0ZWQgaGVyZS4KKyovCisKK2NvbnN0IGNoYXIgKgorcnRleHQodW5zaWduZWQgbTNfcm91bmQpCit7CisgICBzd2l0Y2ggKG0zX3JvdW5kKSB7CisgICBjYXNlIDA6IHJldHVybiAiWy0+IHBlciBmcGNdIjsKKyAgIGNhc2UgMTogcmV0dXJuICJbLT4gbmVhcmVzdCBhd2F5XSI7CisgICBjYXNlIDM6IHJldHVybiAiWy0+IHByZXBhcmUgc2hvcnRdIjsgICAvLyBmbG9hdGluZyBwb2ludCBleHRlbnNpb24gZmFjIG5lZWRlZAorICAgY2FzZSA0OiByZXR1cm4gIlstPiBuZWFyZXN0IGV2ZW5dIjsKKyAgIGNhc2UgNTogcmV0dXJuICJbLT4gMF0iOworICAgY2FzZSA2OiByZXR1cm4gIlstPiAraW5mXSI7CisgICBjYXNlIDc6IHJldHVybiAiWy0+IC1pbmZdIjsKKyAgIH0KKyAgIGFzc2VydCgwKTsKK30KKworI2RlZmluZSByb3VuZF90b19pbnQodmFsdWUscm91bmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIGxvbmcgZG91YmxlIHNyYyA9IHZhbHVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgbG9uZyBkb3VibGUgZHN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIF9fYXNtX18gdm9sYXRpbGUgKCJmaXhiciAlW2RzdF0sIiAjcm91bmQgIiwlW3NyY11cblx0IiAgICAgXAorICAgICAgICAgICAgICAgICAgICAgOiBbZHN0XSAiPWYiKGRzdCkgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICA6IFtzcmNdICJmIihzcmMpKTsgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgcHJpbnRmKCJmaXhiciAlLjVMZlx0LT4gJUxnICAlc1xuIiwgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgc3JjLCBkc3QsIHJ0ZXh0KHJvdW5kKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgZml4YnIodmFsdWUscm91bmQpIHJvdW5kX3RvX2ludCh2YWx1ZSxyb3VuZCkKKwordm9pZAorc2V0X3JvdW5kaW5nX21vZGUodW5zaWduZWQgbW9kZSkKK3sKKyAgIHJlZ2lzdGVyIHVuc2lnbmVkIHIgYXNtKCIxIikgPSBtb2RlOworICAgX19hc21fXyB2b2xhdGlsZSAoIFNGUEMoMSkgOiA6ICJkIihyKSApOworfQorCisKK2ludCBtYWluKHZvaWQpCit7CisgICBpbnQgajsKKyAgIHN0YXRpYyBjb25zdCBsb25nIGRvdWJsZSBkdmFsW10gPSB7CisgICAgICAxLjI1LCAxLjUsIDIuNSwgMS43NSwgLTEuMjUsIC0xLjUsIC0yLjUsIC0xLjc1LCAwLjAsCisgICB9OworCisgICBhc3NlcnQoc2l6ZW9mKGxvbmcgZG91YmxlKSA9PSAxNik7CisgICAKKyAgIC8qIGYxMjggLT4gZjEyOCwgcm91bmQgdG8gaW50ICovCisgICBmb3IgKGogPSAwOyBqIDwgc2l6ZW9mIGR2YWwgLyBzaXplb2YgZHZhbFswXTsgKytqKSB7CisgICAgICBzZXRfcm91bmRpbmdfbW9kZShGUENfQkZQX1JPVU5EX1pFUk8pOworICAgICAgZml4YnIoZHZhbFtqXSwgTTNfQkZQX1JPVU5EX05FQVJFU1RfRVZFTik7CisgICAgICBzZXRfcm91bmRpbmdfbW9kZShGUENfQkZQX1JPVU5EX05FQVJFU1RfRVZFTik7CisgICAgICBmaXhicihkdmFsW2pdLCBNM19CRlBfUk9VTkRfWkVSTyk7CisgICAgICBmaXhicihkdmFsW2pdLCBNM19CRlBfUk9VTkRfUE9TSU5GKTsKKyAgICAgIGZpeGJyKGR2YWxbal0sIE0zX0JGUF9ST1VORF9ORUdJTkYpOworICAgfQorCisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvczM5MHgvZml4YnIuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvczM5MHgvZml4YnIuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzk1OTdmCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zMzkweC9maXhici5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMiBAQAorCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvczM5MHgvZml4YnIuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvczM5MHgvZml4YnIuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODdjMGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zMzkweC9maXhici5zdGRvdXQuZXhwCkBAIC0wLDAgKzEsMzYgQEAKK2ZpeGJyIDEuMjUwMDAJLT4gMSAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpeGJyIDEuMjUwMDAJLT4gMSAgWy0+IDBdCitmaXhiciAxLjI1MDAwCS0+IDIgIFstPiAraW5mXQorZml4YnIgMS4yNTAwMAktPiAxICBbLT4gLWluZl0KK2ZpeGJyIDEuNTAwMDAJLT4gMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpeGJyIDEuNTAwMDAJLT4gMSAgWy0+IDBdCitmaXhiciAxLjUwMDAwCS0+IDIgIFstPiAraW5mXQorZml4YnIgMS41MDAwMAktPiAxICBbLT4gLWluZl0KK2ZpeGJyIDIuNTAwMDAJLT4gMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpeGJyIDIuNTAwMDAJLT4gMiAgWy0+IDBdCitmaXhiciAyLjUwMDAwCS0+IDMgIFstPiAraW5mXQorZml4YnIgMi41MDAwMAktPiAyICBbLT4gLWluZl0KK2ZpeGJyIDEuNzUwMDAJLT4gMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpeGJyIDEuNzUwMDAJLT4gMSAgWy0+IDBdCitmaXhiciAxLjc1MDAwCS0+IDIgIFstPiAraW5mXQorZml4YnIgMS43NTAwMAktPiAxICBbLT4gLWluZl0KK2ZpeGJyIC0xLjI1MDAwCS0+IC0xICBbLT4gbmVhcmVzdCBldmVuXQorZml4YnIgLTEuMjUwMDAJLT4gLTEgIFstPiAwXQorZml4YnIgLTEuMjUwMDAJLT4gLTEgIFstPiAraW5mXQorZml4YnIgLTEuMjUwMDAJLT4gLTIgIFstPiAtaW5mXQorZml4YnIgLTEuNTAwMDAJLT4gLTIgIFstPiBuZWFyZXN0IGV2ZW5dCitmaXhiciAtMS41MDAwMAktPiAtMSAgWy0+IDBdCitmaXhiciAtMS41MDAwMAktPiAtMSAgWy0+ICtpbmZdCitmaXhiciAtMS41MDAwMAktPiAtMiAgWy0+IC1pbmZdCitmaXhiciAtMi41MDAwMAktPiAtMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpeGJyIC0yLjUwMDAwCS0+IC0yICBbLT4gMF0KK2ZpeGJyIC0yLjUwMDAwCS0+IC0yICBbLT4gK2luZl0KK2ZpeGJyIC0yLjUwMDAwCS0+IC0zICBbLT4gLWluZl0KK2ZpeGJyIC0xLjc1MDAwCS0+IC0yICBbLT4gbmVhcmVzdCBldmVuXQorZml4YnIgLTEuNzUwMDAJLT4gLTEgIFstPiAwXQorZml4YnIgLTEuNzUwMDAJLT4gLTEgIFstPiAraW5mXQorZml4YnIgLTEuNzUwMDAJLT4gLTIgIFstPiAtaW5mXQorZml4YnIgMC4wMDAwMAktPiAwICBbLT4gbmVhcmVzdCBldmVuXQorZml4YnIgMC4wMDAwMAktPiAwICBbLT4gMF0KK2ZpeGJyIDAuMDAwMDAJLT4gMCAgWy0+ICtpbmZdCitmaXhiciAwLjAwMDAwCS0+IDAgIFstPiAtaW5mXQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zMzkweC9maXhici52Z3Rlc3QgYi9ub25lL3Rlc3RzL3MzOTB4L2ZpeGJyLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmViN2FmCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zMzkweC9maXhici52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBmaXhicgorcHJlcmVxOiB0ZXN0IC1lIGZpeGJyICYmIC4uLy4uLy4uL3Rlc3RzL3MzOTB4X2ZlYXR1cmVzIHMzOTB4LWZwZXh0CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3MzOTB4L2ZvbGRfQW5kMTYuYyBiL25vbmUvdGVzdHMvczM5MHgvZm9sZF9BbmQxNi5jCmluZGV4IGRmYTBjOGEuLjU4YTk0YjAgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvczM5MHgvZm9sZF9BbmQxNi5jCisrKyBiL25vbmUvdGVzdHMvczM5MHgvZm9sZF9BbmQxNi5jCkBAIC0yLDcgKzIsNyBAQAogCiBpbnQgbWFpbigpCiB7Ci0gICB1bnNpZ25lZCBsb25nIHA7CisgICB1bnNpZ25lZCBsb25nIHAgPSAwOwogICAgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyAqbXNnID0gJnA7CiAKICAgIC8qIExvYWQgImhpXG5cMCIgaW50byBQOyB0aGVuIGNvbnZlcnQgdGhlICdpJyBpbnRvIGFuICdoJyAqLwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zMzkweC9mcGV4dC5jIGIvbm9uZS90ZXN0cy9zMzkweC9mcGV4dC5jCmluZGV4IDY0ZTdhNDcuLjYyYjZiYjcgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvczM5MHgvZnBleHQuYworKysgYi9ub25lL3Rlc3RzL3MzOTB4L2ZwZXh0LmMKQEAgLTEsNSArMSw2IEBACiAjaW5jbHVkZSA8ZmxvYXQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgIm9wY29kZXMuaCIKIAogCkBAIC0xMzEsNiArMTMyLDcgQEAKIAogaW50IG1haW4oKQogeworICAgYXNzZXJ0KHNpemVvZihsb25nIGRvdWJsZSkgPT0gMTYpOwogICAgRE9fTDJGKDQpOwogICAgRE9fRjJMKDQpOwogCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3MzOTB4L2ZwZXh0LnZndGVzdCBiL25vbmUvdGVzdHMvczM5MHgvZnBleHQudmd0ZXN0CmluZGV4IDQ3NDA0MzAuLjk0OGJhZDkgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvczM5MHgvZnBleHQudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMvczM5MHgvZnBleHQudmd0ZXN0CkBAIC0xLDIgKzEsMiBAQAogcHJvZzogZnBleHQKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMvczM5MHhfZmVhdHVyZXMgczM5MHgtZnBleHQKK3ByZXJlcTogdGVzdCAtZSBmcGV4dCAmJiAuLi8uLi8uLi90ZXN0cy9zMzkweF9mZWF0dXJlcyBzMzkweC1mcGV4dApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zMzkweC9mcGV4dF9mYWlsLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3MzOTB4L2ZwZXh0X2ZhaWwuc3RkZXJyLmV4cAppbmRleCBkNjRiYjIzLi5lYzFhM2JlIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3MzOTB4L2ZwZXh0X2ZhaWwuc3RkZXJyLmV4cAorKysgYi9ub25lL3Rlc3RzL3MzOTB4L2ZwZXh0X2ZhaWwuc3RkZXJyLmV4cApAQCAtMiw3ICsyLDcgQEAKIEVtdWxhdGlvbiBmYXRhbCBlcnJvciAtLSBWYWxncmluZCBjYW5ub3QgY29udGludWU6CiAgIEVuY291bnRlcmVkIGFuIGluc3RydWN0aW9uIHRoYXQgcmVxdWlyZXMgdGhlIGZsb2F0aW5nIHBvaW50IGV4dGVuc2lvbiBmYWNpbGl0eS4KICAgVGhhdCBmYWNpbGl0eSBpcyBub3QgYXZhaWxhYmxlIG9uIHRoaXMgaG9zdAotICAgYXQgMHguLi4uLi4uLjogbWFpbiAoZnBleHQuYzoxMzQpCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChmcGV4dC5jOjEzNikKIAogVmFsZ3JpbmQgaGFzIHRvIGV4aXQgbm93LiAgU29ycnkuCiAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvczM5MHgvZnBleHRfZmFpbC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3MzOTB4L2ZwZXh0X2ZhaWwudmd0ZXN0CmluZGV4IDY0ZWQ1ZWUuLjk3MGNiZWQgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvczM5MHgvZnBleHRfZmFpbC52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9zMzkweC9mcGV4dF9mYWlsLnZndGVzdApAQCAtMSwyICsxLDIgQEAKIHByb2c6IGZwZXh0Ci1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL3MzOTB4X2ZlYXR1cmVzICchczM5MHgtZnBleHQnCitwcmVyZXE6IHRlc3QgLWUgZnBleHQgJiYgLi4vLi4vLi4vdGVzdHMvczM5MHhfZmVhdHVyZXMgJyFzMzkweC1mcGV4dCcKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvczM5MHgvb3AwMC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3MzOTB4L29wMDAudmd0ZXN0CmluZGV4IDk0OGZiODUuLmU1NzA5NzYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvczM5MHgvb3AwMC52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy9zMzkweC9vcDAwLnZndGVzdApAQCAtMSArMSwyIEBACiBwcm9nOiBvcDAwCitjbGVhbnVwOiBybSAtZiB2Z2NvcmUuKgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zMzkweC9yb3VuZGluZy02LmMgYi9ub25lL3Rlc3RzL3MzOTB4L3JvdW5kaW5nLTYuYwppbmRleCA5OTlhYWNkLi5lODgwODc2IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3MzOTB4L3JvdW5kaW5nLTYuYworKysgYi9ub25lL3Rlc3RzL3MzOTB4L3JvdW5kaW5nLTYuYwpAQCAtNDQsNiArNDQsMTkgQEAKICAgICAgICAgICBvcGNvZGUsIHNyYywgZHN0LCBjYywgcnRleHQocm91bmQpKTsgICAgICAgIFwKIH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgcm91bmRfdG9faW50KG9wY29kZSx0eXBlLHJvdW5kLHZhbHVlKSAgICAgICAgICAgICAgICAgICBcCitkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgdHlwZSBzcmMgPSB2YWx1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHR5cGUgZHN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgX19hc21fXyB2b2xhdGlsZSAob3Bjb2RlICIgJVtkc3RdLCIgI3JvdW5kICIsJVtzcmNdXG5cdCIgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgIDogW2RzdF0gIj1mIihkc3QpICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICA6IFtzcmNdICJmIihzcmMpKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIHByaW50ZigiJXMgJS41Zlx0LT4gJWcgICVzXG4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgb3Bjb2RlLCBzcmMsIGRzdCwgcnRleHQocm91bmQpKTsgICAgICAgICAgICAgICAgICAgICAgXAorfSB3aGlsZSAoMCkKKwogCiAjZGVmaW5lIGNmZWJyKHZhbHVlLCByb3VuZCkgXAogICAgICAgICBjb252ZXJ0X3RvX2ludCgiY2ZlYnIiLGZsb2F0LGludDMyX3QsUFJJZDMyLHJvdW5kLHZhbHVlKQpAQCAtNTQsNiArNjcsMTEgQEAKICNkZWZpbmUgY2dkYnIodmFsdWUsIHJvdW5kKSBcCiAgICAgICAgIGNvbnZlcnRfdG9faW50KCJjZ2RiciIsZG91YmxlLGludDY0X3QsUFJJZDY0LHJvdW5kLHZhbHVlKQogCisjZGVmaW5lIGZpZWJyKHZhbHVlLCByb3VuZCkgXAorICAgICAgICByb3VuZF90b19pbnQoImZpZWJyIixmbG9hdCxyb3VuZCx2YWx1ZSkKKyNkZWZpbmUgZmlkYnIodmFsdWUsIHJvdW5kKSBcCisgICAgICAgIHJvdW5kX3RvX2ludCgiZmlkYnIiLGRvdWJsZSxyb3VuZCx2YWx1ZSkKKwogdm9pZAogc2V0X3JvdW5kaW5nX21vZGUodW5zaWduZWQgbW9kZSkKIHsKQEAgLTExNyw1ICsxMzUsMjUgQEAKICAgICAgIGNnZGJyKGR2YWxbal0sIE0zX0JGUF9ST1VORF9ORUdJTkYpOwogICAgfQogCisgICAvKiBmMzIgLT4gZjMyLCByb3VuZCB0byBpbnQgKi8KKyAgIGZvciAoaiA9IDA7IGogPCBzaXplb2YgZHZhbCAvIHNpemVvZiBkdmFsWzBdOyArK2opIHsKKyAgICAgIHNldF9yb3VuZGluZ19tb2RlKEZQQ19CRlBfUk9VTkRfWkVSTyk7CisgICAgICBmaWVicihkdmFsW2pdLCBNM19CRlBfUk9VTkRfTkVBUkVTVF9FVkVOKTsKKyAgICAgIHNldF9yb3VuZGluZ19tb2RlKEZQQ19CRlBfUk9VTkRfTkVBUkVTVF9FVkVOKTsKKyAgICAgIGZpZWJyKGR2YWxbal0sIE0zX0JGUF9ST1VORF9aRVJPKTsKKyAgICAgIGZpZWJyKGR2YWxbal0sIE0zX0JGUF9ST1VORF9QT1NJTkYpOworICAgICAgZmllYnIoZHZhbFtqXSwgTTNfQkZQX1JPVU5EX05FR0lORik7CisgICB9CisKKyAgIC8qIGY2NCAtPiBmNjQsIHJvdW5kIHRvIGludCAqLworICAgZm9yIChqID0gMDsgaiA8IHNpemVvZiBkdmFsIC8gc2l6ZW9mIGR2YWxbMF07ICsraikgeworICAgICAgc2V0X3JvdW5kaW5nX21vZGUoRlBDX0JGUF9ST1VORF9aRVJPKTsKKyAgICAgIGZpZGJyKGR2YWxbal0sIE0zX0JGUF9ST1VORF9ORUFSRVNUX0VWRU4pOworICAgICAgc2V0X3JvdW5kaW5nX21vZGUoRlBDX0JGUF9ST1VORF9ORUFSRVNUX0VWRU4pOworICAgICAgZmlkYnIoZHZhbFtqXSwgTTNfQkZQX1JPVU5EX1pFUk8pOworICAgICAgZmlkYnIoZHZhbFtqXSwgTTNfQkZQX1JPVU5EX1BPU0lORik7CisgICAgICBmaWRicihkdmFsW2pdLCBNM19CRlBfUk9VTkRfTkVHSU5GKTsKKyAgIH0KKwogICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3MzOTB4L3JvdW5kaW5nLTYuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvczM5MHgvcm91bmRpbmctNi5zdGRvdXQuZXhwCmluZGV4IGY4MzQ1NWMuLmYwMWEyMjkgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvczM5MHgvcm91bmRpbmctNi5zdGRvdXQuZXhwCisrKyBiL25vbmUvdGVzdHMvczM5MHgvcm91bmRpbmctNi5zdGRvdXQuZXhwCkBAIC0xNDIsMyArMTQyLDc1IEBACiBjZ2RiciAwLjAwMDAwMAktPiAwCWNjID0gMCAgWy0+IDBdCiBjZ2RiciAwLjAwMDAwMAktPiAwCWNjID0gMCAgWy0+ICtpbmZdCiBjZ2RiciAwLjAwMDAwMAktPiAwCWNjID0gMCAgWy0+IC1pbmZdCitmaWViciAxLjI1MDAwCS0+IDEgIFstPiBuZWFyZXN0IGV2ZW5dCitmaWViciAxLjI1MDAwCS0+IDEgIFstPiAwXQorZmllYnIgMS4yNTAwMAktPiAyICBbLT4gK2luZl0KK2ZpZWJyIDEuMjUwMDAJLT4gMSAgWy0+IC1pbmZdCitmaWViciAxLjUwMDAwCS0+IDIgIFstPiBuZWFyZXN0IGV2ZW5dCitmaWViciAxLjUwMDAwCS0+IDEgIFstPiAwXQorZmllYnIgMS41MDAwMAktPiAyICBbLT4gK2luZl0KK2ZpZWJyIDEuNTAwMDAJLT4gMSAgWy0+IC1pbmZdCitmaWViciAyLjUwMDAwCS0+IDIgIFstPiBuZWFyZXN0IGV2ZW5dCitmaWViciAyLjUwMDAwCS0+IDIgIFstPiAwXQorZmllYnIgMi41MDAwMAktPiAzICBbLT4gK2luZl0KK2ZpZWJyIDIuNTAwMDAJLT4gMiAgWy0+IC1pbmZdCitmaWViciAxLjc1MDAwCS0+IDIgIFstPiBuZWFyZXN0IGV2ZW5dCitmaWViciAxLjc1MDAwCS0+IDEgIFstPiAwXQorZmllYnIgMS43NTAwMAktPiAyICBbLT4gK2luZl0KK2ZpZWJyIDEuNzUwMDAJLT4gMSAgWy0+IC1pbmZdCitmaWViciAtMS4yNTAwMAktPiAtMSAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpZWJyIC0xLjI1MDAwCS0+IC0xICBbLT4gMF0KK2ZpZWJyIC0xLjI1MDAwCS0+IC0xICBbLT4gK2luZl0KK2ZpZWJyIC0xLjI1MDAwCS0+IC0yICBbLT4gLWluZl0KK2ZpZWJyIC0xLjUwMDAwCS0+IC0yICBbLT4gbmVhcmVzdCBldmVuXQorZmllYnIgLTEuNTAwMDAJLT4gLTEgIFstPiAwXQorZmllYnIgLTEuNTAwMDAJLT4gLTEgIFstPiAraW5mXQorZmllYnIgLTEuNTAwMDAJLT4gLTIgIFstPiAtaW5mXQorZmllYnIgLTIuNTAwMDAJLT4gLTIgIFstPiBuZWFyZXN0IGV2ZW5dCitmaWViciAtMi41MDAwMAktPiAtMiAgWy0+IDBdCitmaWViciAtMi41MDAwMAktPiAtMiAgWy0+ICtpbmZdCitmaWViciAtMi41MDAwMAktPiAtMyAgWy0+IC1pbmZdCitmaWViciAtMS43NTAwMAktPiAtMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpZWJyIC0xLjc1MDAwCS0+IC0xICBbLT4gMF0KK2ZpZWJyIC0xLjc1MDAwCS0+IC0xICBbLT4gK2luZl0KK2ZpZWJyIC0xLjc1MDAwCS0+IC0yICBbLT4gLWluZl0KK2ZpZWJyIDAuMDAwMDAJLT4gMCAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpZWJyIDAuMDAwMDAJLT4gMCAgWy0+IDBdCitmaWViciAwLjAwMDAwCS0+IDAgIFstPiAraW5mXQorZmllYnIgMC4wMDAwMAktPiAwICBbLT4gLWluZl0KK2ZpZGJyIDEuMjUwMDAJLT4gMSAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpZGJyIDEuMjUwMDAJLT4gMSAgWy0+IDBdCitmaWRiciAxLjI1MDAwCS0+IDIgIFstPiAraW5mXQorZmlkYnIgMS4yNTAwMAktPiAxICBbLT4gLWluZl0KK2ZpZGJyIDEuNTAwMDAJLT4gMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpZGJyIDEuNTAwMDAJLT4gMSAgWy0+IDBdCitmaWRiciAxLjUwMDAwCS0+IDIgIFstPiAraW5mXQorZmlkYnIgMS41MDAwMAktPiAxICBbLT4gLWluZl0KK2ZpZGJyIDIuNTAwMDAJLT4gMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpZGJyIDIuNTAwMDAJLT4gMiAgWy0+IDBdCitmaWRiciAyLjUwMDAwCS0+IDMgIFstPiAraW5mXQorZmlkYnIgMi41MDAwMAktPiAyICBbLT4gLWluZl0KK2ZpZGJyIDEuNzUwMDAJLT4gMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpZGJyIDEuNzUwMDAJLT4gMSAgWy0+IDBdCitmaWRiciAxLjc1MDAwCS0+IDIgIFstPiAraW5mXQorZmlkYnIgMS43NTAwMAktPiAxICBbLT4gLWluZl0KK2ZpZGJyIC0xLjI1MDAwCS0+IC0xICBbLT4gbmVhcmVzdCBldmVuXQorZmlkYnIgLTEuMjUwMDAJLT4gLTEgIFstPiAwXQorZmlkYnIgLTEuMjUwMDAJLT4gLTEgIFstPiAraW5mXQorZmlkYnIgLTEuMjUwMDAJLT4gLTIgIFstPiAtaW5mXQorZmlkYnIgLTEuNTAwMDAJLT4gLTIgIFstPiBuZWFyZXN0IGV2ZW5dCitmaWRiciAtMS41MDAwMAktPiAtMSAgWy0+IDBdCitmaWRiciAtMS41MDAwMAktPiAtMSAgWy0+ICtpbmZdCitmaWRiciAtMS41MDAwMAktPiAtMiAgWy0+IC1pbmZdCitmaWRiciAtMi41MDAwMAktPiAtMiAgWy0+IG5lYXJlc3QgZXZlbl0KK2ZpZGJyIC0yLjUwMDAwCS0+IC0yICBbLT4gMF0KK2ZpZGJyIC0yLjUwMDAwCS0+IC0yICBbLT4gK2luZl0KK2ZpZGJyIC0yLjUwMDAwCS0+IC0zICBbLT4gLWluZl0KK2ZpZGJyIC0xLjc1MDAwCS0+IC0yICBbLT4gbmVhcmVzdCBldmVuXQorZmlkYnIgLTEuNzUwMDAJLT4gLTEgIFstPiAwXQorZmlkYnIgLTEuNzUwMDAJLT4gLTEgIFstPiAraW5mXQorZmlkYnIgLTEuNzUwMDAJLT4gLTIgIFstPiAtaW5mXQorZmlkYnIgMC4wMDAwMAktPiAwICBbLT4gbmVhcmVzdCBldmVuXQorZmlkYnIgMC4wMDAwMAktPiAwICBbLT4gMF0KK2ZpZGJyIDAuMDAwMDAJLT4gMCAgWy0+ICtpbmZdCitmaWRiciAwLjAwMDAwCS0+IDAgIFstPiAtaW5mXQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL01ha2VmaWxlLmFtIGIvbm9uZS90ZXN0cy9zY3JpcHRzL01ha2VmaWxlLmFtCmluZGV4IDlmZTk4NmIuLjA3YjRjOGUgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvc2NyaXB0cy9NYWtlZmlsZS5hbQorKysgYi9ub25lL3Rlc3RzL3NjcmlwdHMvTWFrZWZpbGUuYW0KQEAgLTcsMjAgKzcsMjQgQEAKIAlmaWx0ZXJfc3RkZXJyCiAKIEVYVFJBX0RJU1QgPSBcCisJc2F5LWhlbGxvLmhlbHBlciBcCiAJYnVnMjMxMzU3LnZndGVzdCBidWcyMzEzNTcuc3RkZXJyLmV4cCBidWcyMzEzNTcuc3Rkb3V0LmV4cCBcCisJYnVnMzM4NjA2IGJ1ZzMzODYwNi52Z3Rlc3QgYnVnMzM4NjA2LnN0ZGVyci5leHAgXAogCXNoZWxsIHNoZWxsLnZndGVzdCBzaGVsbC5zdGRlcnIuZXhwIHNoZWxsLnN0ZGVyci5leHAtZGFzaCBcCi0Jc2hlbGwuc3Rkb3V0LmV4cCBzaGVsbC5zdGRlcnIuZXhwLWRhc2gyIFwKKwlzaGVsbC5zdGRvdXQuZXhwIHNoZWxsLnN0ZGVyci5leHAtZGFzaDIgc2hlbGwuc3RkZXJyLmV4cC1pbGx1bW9zIFwKKwlzaGVsbC5zdGRlcnIuZXhwLXNvbGFyaXMgc2hlbGwuc3RkZXJyLmV4cC1zb2xhcmlzLXNwYXduIFwKIAlzaGVsbF9iYWRpbnRlcnAgc2hlbGxfYmFkaW50ZXJwLnZndGVzdCBzaGVsbF9iYWRpbnRlcnAuc3RkZXJyLmV4cCBcCiAJc2hlbGxfYmluYXJ5ZmlsZSBzaGVsbF9iaW5hcnlmaWxlLnZndGVzdCBzaGVsbF9iaW5hcnlmaWxlLnN0ZGVyci5leHAgXAogCXNoZWxsX2Rpci52Z3Rlc3Qgc2hlbGxfZGlyLnN0ZGVyci5leHAgXAotCXNoZWxsX25vaW50ZXJwMSBzaGVsbF9ub2ludGVycDEudmd0ZXN0IHNoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIFwKLQlzaGVsbF9ub2ludGVycDEuc3Rkb3V0LmV4cCBcCi0Jc2hlbGxfbm9pbnRlcnAyIHNoZWxsX25vaW50ZXJwMi52Z3Rlc3Qgc2hlbGxfbm9pbnRlcnAyLnN0ZGVyci5leHAgXAotCXNoZWxsX25vaW50ZXJwMi5zdGRvdXQuZXhwIFwKLQlzaGVsbF9ub2ludGVycDMgc2hlbGxfbm9pbnRlcnAzLnZndGVzdCBzaGVsbF9ub2ludGVycDMuc3RkZXJyLmV4cCBcCi0Jc2hlbGxfbm9pbnRlcnAzLnN0ZG91dC5leHAgXAorCW5vaW50ZXJwMSBub2ludGVycDEudmd0ZXN0IG5vaW50ZXJwMS5zdGRlcnIuZXhwIG5vaW50ZXJwMS5zdGRvdXQuZXhwIFwKKwlub2ludGVycDIgbm9pbnRlcnAyLnZndGVzdCBub2ludGVycDIuc3RkZXJyLmV4cCBub2ludGVycDIuc3Rkb3V0LmV4cCBcCisJbm9pbnRlcnAzIG5vaW50ZXJwMy52Z3Rlc3Qgbm9pbnRlcnAzLnN0ZGVyci5leHAgbm9pbnRlcnAzLnN0ZG91dC5leHAgXAorCW5vaW50ZXJwNCBub2ludGVycDQudmd0ZXN0IG5vaW50ZXJwNC5zdGRlcnIuZXhwIFwKKwlub2ludGVycDUgbm9pbnRlcnA1LnZndGVzdCBub2ludGVycDUuc3RkZXJyLmV4cCBcCiAJc2hlbGxfbm9uZXhlYy52Z3Rlc3Qgc2hlbGxfbm9uZXhlYy5zdGRlcnIuZXhwIFwKIAlzaGVsbF9ub3N1Y2hmaWxlLnZndGVzdCBzaGVsbF9ub3N1Y2hmaWxlLnN0ZGVyci5leHAgXAorCXJlbGF0aXZlMSByZWxhdGl2ZTEudmd0ZXN0IHJlbGF0aXZlMS5zdGRlcnIuZXhwIHJlbGF0aXZlMS5zdGRvdXQuZXhwIFwKKwlyZWxhdGl2ZTIgcmVsYXRpdmUyLnZndGVzdCByZWxhdGl2ZTIuc3RkZXJyLmV4cCByZWxhdGl2ZTIuc3Rkb3V0LmV4cCBcCiAJc2hlbGxfdmFsaWQxIHNoZWxsX3ZhbGlkMS52Z3Rlc3Qgc2hlbGxfdmFsaWQxLnN0ZGVyci5leHAgXAogCXNoZWxsX3ZhbGlkNCBzaGVsbF92YWxpZDQudmd0ZXN0IHNoZWxsX3ZhbGlkNC5zdGRlcnIuZXhwIFwKIAlzaGVsbF92YWxpZDQuc3Rkb3V0LmV4cCBcCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvYnVnMzM4NjA2IGIvbm9uZS90ZXN0cy9zY3JpcHRzL2J1ZzMzODYwNgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YjM4NzM5Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL2J1ZzMzODYwNgpAQCAtMCwwICsxLDQgQEAKKyMhdXNyL2Jpbi9wZXJsCisKK3ByaW50ICJoZWxsb1xuIjsKK2V4aXQgMDsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9idWczMzg2MDYuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc2NyaXB0cy9idWczMzg2MDYuc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjE1MDY3Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL2J1ZzMzODYwNi5zdGRlcnIuZXhwCkBAIC0wLDAgKzEgQEAKK3ZhbGdyaW5kOiAuL2J1ZzMzODYwNjogYmFkIGludGVycHJldGVyOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvYnVnMzM4NjA2LnZndGVzdCBiL25vbmUvdGVzdHMvc2NyaXB0cy9idWczMzg2MDYudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZTFmNDUKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NjcmlwdHMvYnVnMzM4NjA2LnZndGVzdApAQCAtMCwwICsxLDcgQEAKKyMgVGhpcyB0ZXN0IHVzZWQgdG8gcHJvZHVjZSBhIG1vc3QgYml6YXJyZSBtZXNzYWdlOgorIworIyAgIFdhcm5pbmc6IHVua25vd24gbWltZS10eXBlIGZvciAiaGVsbG9cbiIgLS0gdXNpbmcgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIKKyMgICBFcnJvcjogbm8gc3VjaCBmaWxlICJoZWxsb1xuIgorIworcHJvZzogYnVnMzM4NjA2Cit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxIGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMQpyZW5hbWUgdG8gbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMS5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKcmVuYW1lIHRvIG5vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDEuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRvdXQuZXhwIGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMS5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZG91dC5leHAKcmVuYW1lIHRvIG5vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDEuc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAxLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGZiZmEwCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMS52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBub2ludGVycDEKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDIgYi9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAyCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAyCnJlbmFtZSB0byBub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAyCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAyLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAyLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDIuc3RkZXJyLmV4cApyZW5hbWUgdG8gbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMi5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAyLnN0ZG91dC5leHAgYi9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAyLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDIuc3Rkb3V0LmV4cApyZW5hbWUgdG8gbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMi5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAyLnZndGVzdCBiL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDIudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNGIxODIKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAyLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IG5vaW50ZXJwMgordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMyBiL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDMKcmVuYW1lIHRvIG5vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDMKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDMuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDMuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMy5zdGRlcnIuZXhwCnJlbmFtZSB0byBub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAzLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDMuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDMuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMy5zdGRvdXQuZXhwCnJlbmFtZSB0byBub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnAzLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDMudmd0ZXN0IGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwMy52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EwY2QzZQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDMudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogbm9pbnRlcnAzCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnA0IGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwNApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTJkNjAwCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwNApAQCAtMCwwICsxIEBACisjCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnA0LnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnA0LnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDQudmd0ZXN0IGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwNC52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWNiMWJlMQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDQudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogbm9pbnRlcnA0Cit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnA1IGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwNQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMWQyMDE1Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwNQpAQCAtMCwwICsxIEBACisjICAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDUuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMvc2NyaXB0cy9ub2ludGVycDUuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwNS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3NjcmlwdHMvbm9pbnRlcnA1LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MzgxOWFjCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL25vaW50ZXJwNS52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBub2ludGVycDUKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTEgYi9ub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUxCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUwOGE0MjIKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUxCkBAIC0wLDAgKzEgQEAKKyMhLi9zYXktaGVsbG8uaGVscGVyCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUxLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUxLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTEuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTEuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTAxMzYyCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL3JlbGF0aXZlMS5zdGRvdXQuZXhwCkBAIC0wLDAgKzEgQEAKK2hlbGxvCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUxLnZndGVzdCBiL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTEudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYjkzZjEKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUxLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IHJlbGF0aXZlMQordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3JlbGF0aXZlMiBiL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWQyNzMyNgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTIKQEAgLTAsMCArMSBAQAorIyEgICAuLi9zY3JpcHRzLy4vc2F5LWhlbGxvLmhlbHBlciAgCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAyLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUyLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAyLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUyLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTIuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTIuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTAxMzYyCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL3JlbGF0aXZlMi5zdGRvdXQuZXhwCkBAIC0wLDAgKzEgQEAKK2hlbGxvCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUyLnZndGVzdCBiL25vbmUvdGVzdHMvc2NyaXB0cy9yZWxhdGl2ZTIudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiMGJjNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NjcmlwdHMvcmVsYXRpdmUyLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IHJlbGF0aXZlMgordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NheS1oZWxsby5oZWxwZXIgYi9ub25lL3Rlc3RzL3NjcmlwdHMvc2F5LWhlbGxvLmhlbHBlcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMWJhNjgyCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL3NheS1oZWxsby5oZWxwZXIKQEAgLTAsMCArMSwyIEBACisjIS9iaW4vc2gKK2VjaG8gaGVsbG8KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbCBiL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbAppbmRleCBkYzBiOGIxLi41ZGYyY2EyIDEwMDc1NQotLS0gYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsCkBAIC0zMSwxMCArMzEsMTAgQEAKIC4vc2hlbGxfdmFsaWQxCiAKIGVjaG8gIkV4ZWN1dGUgYSB2YWxpZCBzY3JpcHQgd2l0aG91dCBhICMhIGxpbmUiCi0uL3NoZWxsX25vaW50ZXJwMQorLi9ub2ludGVycDEKIAogZWNobyAiRXhlY3V0ZSBhIHZhbGlkIHNjcmlwdCB3aXRoICMhIGJ1dCBubyBpbnRlcnBuYW1lIgotLi9zaGVsbF9ub2ludGVycDIKKy4vbm9pbnRlcnAyCiAKIGVjaG8gIkV4ZWN1dGUgYSB6ZXJvLWxlbmd0aCBmaWxlIgogLi9zaGVsbF96ZXJvbGVuZ3RoCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGwuc3RkZXJyLmV4cC1pbGx1bW9zIGIvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsLnN0ZGVyci5leHAtaWxsdW1vcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODY2YjJlCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsLnN0ZGVyci5leHAtaWxsdW1vcwpAQCAtMCwwICsxLDggQEAKKy4vc2hlbGxbMTBdOiAuL3g4Ni86IGNhbm5vdCBleGVjdXRlIFtpcyBhIGRpcmVjdG9yeV0KKy4vc2hlbGxbMTNdOiAuL3NoZWxsLnZndGVzdDogY2Fubm90IGV4ZWN1dGUgW1Blcm1pc3Npb24gZGVuaWVkXQorZXhlY3ZlKDB4Li4uLi4uLi4oLi9zaGVsbF9iYWRpbnRlcnApLCAweC4uLi4uLi4uLCAweC4uLi4uLi4uKSBmYWlsZWQsIGVycm5vIDIKK0VYRUMgRkFJTEVEOiBJIGNhbid0IHJlY292ZXIgZnJvbSBleGVjdmUoKSBmYWlsaW5nLCBzbyBJJ20gZHlpbmcuCitBZGQgbW9yZSBzdHJpbmdlbnQgdGVzdHMgaW4gUFJFKHN5c19leGVjdmUpLCBvciB3b3JrIG91dCBob3cgdG8gcmVjb3Zlci4KKy4vc2hlbGxfYmluYXJ5ZmlsZTogLi9zaGVsbF9iaW5hcnlmaWxlOiBjYW5ub3QgZXhlY3V0ZSBbRXhlYyBmb3JtYXQgZXJyb3JdCisuL3NoZWxsWzIyXTogLi9zaGVsbF9ub3N1Y2hmaWxlOiBub3QgZm91bmQgW05vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnldCisuL3NoZWxsWzI1XTogc2hlbGxfbm9zdWNoZmlsZTogbm90IGZvdW5kIFtObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsLnN0ZGVyci5leHAtc29sYXJpcyBiL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbC5zdGRlcnIuZXhwLXNvbGFyaXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE4MjI5ZgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbC5zdGRlcnIuZXhwLXNvbGFyaXMKQEAgLTAsMCArMSw4IEBACisuL3NoZWxsWzEwXTogLi94ODYvOiBjYW5ub3QgZXhlY3V0ZSBbaXMgYSBkaXJlY3RvcnldCisuL3NoZWxsWzEzXTogLi9zaGVsbC52Z3Rlc3Q6IGNhbm5vdCBleGVjdXRlIFtQZXJtaXNzaW9uIGRlbmllZF0KK2V4ZWN2ZSgweC4uLi4uLi4uKC4vc2hlbGxfYmFkaW50ZXJwKSwgMHguLi4uLi4uLiwgMHguLi4uLi4uLiwgMCkgZmFpbGVkLCBlcnJubyAyCitFWEVDIEZBSUxFRDogSSBjYW4ndCByZWNvdmVyIGZyb20gZXhlY3ZlKCkgZmFpbGluZywgc28gSSdtIGR5aW5nLgorQWRkIG1vcmUgc3RyaW5nZW50IHRlc3RzIGluIFBSRShzeXNfZXhlY3ZlKSwgb3Igd29yayBvdXQgaG93IHRvIHJlY292ZXIuCisuL3NoZWxsX2JpbmFyeWZpbGU6IC4vc2hlbGxfYmluYXJ5ZmlsZTogY2Fubm90IGV4ZWN1dGUgW0V4ZWMgZm9ybWF0IGVycm9yXQorLi9zaGVsbFsyMl06IC4vc2hlbGxfbm9zdWNoZmlsZTogbm90IGZvdW5kIFtObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XQorLi9zaGVsbFsyNV06IHNoZWxsX25vc3VjaGZpbGU6IG5vdCBmb3VuZCBbTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeV0KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbC5zdGRlcnIuZXhwLXNvbGFyaXMtc3Bhd24gYi9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGwuc3RkZXJyLmV4cC1zb2xhcmlzLXNwYXduCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MGZkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGwuc3RkZXJyLmV4cC1zb2xhcmlzLXNwYXduCkBAIC0wLDAgKzEsNiBAQAorLi9zaGVsbFsxMF06IC4veDg2LzogY2Fubm90IGV4ZWN1dGUgW2lzIGEgZGlyZWN0b3J5XQorLi9zaGVsbFsxM106IC4vc2hlbGwudmd0ZXN0OiBjYW5ub3QgZXhlY3V0ZSBbUGVybWlzc2lvbiBkZW5pZWRdCisuL3NoZWxsWzE2XTogLi9zaGVsbF9iYWRpbnRlcnA6IG5vdCBmb3VuZCBbTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeV0KKy4vc2hlbGxfYmluYXJ5ZmlsZTogLi9zaGVsbF9iaW5hcnlmaWxlOiBjYW5ub3QgZXhlY3V0ZSBbRXhlYyBmb3JtYXQgZXJyb3JdCisuL3NoZWxsWzIyXTogLi9zaGVsbF9ub3N1Y2hmaWxlOiBub3QgZm91bmQgW05vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnldCisuL3NoZWxsWzI1XTogc2hlbGxfbm9zdWNoZmlsZTogbm90IGZvdW5kIFtObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnZndGVzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE1YzVjNS4uMDAwMDAwMAotLS0gYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnZndGVzdAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotcHJvZzogc2hlbGxfbm9pbnRlcnAxCi12Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAyLnZndGVzdCBiL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDIudmd0ZXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDZlMzQ3Li4wMDAwMDAwCi0tLSBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDIudmd0ZXN0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1wcm9nOiBzaGVsbF9ub2ludGVycDIKLXZnb3B0czogLXEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDMudmd0ZXN0IGIvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMy52Z3Rlc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlZjk0MGIuLjAwMDAwMDAKLS0tIGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMy52Z3Rlc3QKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLXByb2c6IHNoZWxsX25vaW50ZXJwMwotdmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL01ha2VmaWxlLmFtIGIvbm9uZS90ZXN0cy9zb2xhcmlzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NjBiZjgKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSw3MiBAQAorCitpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUudG9vbC10ZXN0cy5hbQorCitkaXN0X25vaW5zdF9TQ1JJUFRTID0gXAorCWZpbHRlcl9jb3JlZHVtcF9tYW55X3RocmVhZHNfcG9zdCBcCisJZmlsdGVyX2NvcmVkdW1wX21hbnlfdGhyZWFkc19zdGRlcnIgXAorCWZpbHRlcl9zdGRlcnIKKworRVhUUkFfRElTVCA9IFwKKwlibG9ja19hbGxfc2lnbmFscy5zdGRlcnIuZXhwIGJsb2NrX2FsbF9zaWduYWxzLnN0ZG91dC5leHAgYmxvY2tfYWxsX3NpZ25hbHMudmd0ZXN0IFwKKwlibG9ja2ZhdWx0LnN0ZGVyci5leHAgYmxvY2tmYXVsdC52Z3Rlc3QgXAorCWNvbnRleHRfbGluay5zdGRlcnIuZXhwIGNvbnRleHRfbGluay5zdGRvdXQuZXhwIGNvbnRleHRfbGluay52Z3Rlc3QgXAorCWNvbnRleHRfbGluazIuc3RkZXJyLmV4cCBjb250ZXh0X2xpbmsyLnN0ZG91dC5leHAgY29udGV4dF9saW5rMi52Z3Rlc3QgXAorCWNvbnRleHRfbnVsbC5zdGRlcnIuZXhwIGNvbnRleHRfbnVsbC5zdGRvdXQuZXhwIGNvbnRleHRfbnVsbC52Z3Rlc3QgXAorCWNvbnRleHRfc3RhY2suc3RkZXJyLmV4cCBjb250ZXh0X3N0YWNrLnN0ZG91dC5leHAgY29udGV4dF9zdGFjay52Z3Rlc3QgXAorCWNvcmVkdW1wX21hbnlfdGhyZWFkcy5wb3N0LmV4cCBjb3JlZHVtcF9tYW55X3RocmVhZHMuc3RkZXJyLmV4cCBjb3JlZHVtcF9tYW55X3RocmVhZHMudmd0ZXN0IFwKKwltbWFwX25vcmVzZXJ2ZS5zdGRlcnIuZXhwIG1tYXBfbm9yZXNlcnZlLnN0ZG91dC5leHAgbW1hcF9ub3Jlc2VydmUudmd0ZXN0IFwKKwlwcm9jX2FvdXQuc3RkZXJyLmV4cCBwcm9jX2FvdXQuc3Rkb3V0LmV4cCBwcm9jX2FvdXQudmd0ZXN0IFwKKwlwcm9jX2F1eHYuc3RkZXJyLmV4cCBwcm9jX2F1eHYuc3Rkb3V0LmV4cCBwcm9jX2F1eHYudmd0ZXN0IFwKKwlwcm9jX2F1eHZfbXVsdGlwbGUuc3RkZXJyLmV4cCBwcm9jX2F1eHZfbXVsdGlwbGUuc3Rkb3V0LmV4cCBwcm9jX2F1eHZfbXVsdGlwbGUudmd0ZXN0IFwKKwlwcm9jLWNtZGxpbmUtZXhlLnN0ZGVyci5leHAtd2l0aC1jbWRsaW5lIHByb2MtY21kbGluZS1leGUuc3RkZXJyLmV4cC13aXRob3V0LWNtZGxpbmUgXAorCSAgICBwcm9jLWNtZGxpbmUtZXhlLnZndGVzdCBcCisJcHJvY19wc2luZm8uc3RkZXJyLmV4cCBwcm9jX3BzaW5mby5zdGRvdXQuZXhwIHByb2NfcHNpbmZvLnZndGVzdCBcCisJcG9zaXhfc3Bhd24uc3RkZXJyLmV4cCBwb3NpeF9zcGF3bi5zdGRvdXQuZXhwIHBvc2l4X3NwYXduLnZndGVzdCBcCisJcHRocmVhZC1zdGFjay5zdGRlcnIuZXhwIHB0aHJlYWQtc3RhY2sudmd0ZXN0IFwKKwlyZXNlcnZlX3N5c3N0YXRfYWRkci5tYXAgcmVzZXJ2ZV9zeXNzdGF0X2FkZHIuc3RkZXJyLmV4cCByZXNlcnZlX3N5c3N0YXRfYWRkci52Z3Rlc3QgXAorCXJlc2VydmVfc3lzc3RhdF96b25lX2FkZHIubWFwIHJlc2VydmVfc3lzc3RhdF96b25lX2FkZHIuc3RkZXJyLmV4cCByZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyLnZndGVzdCBcCisJcmVzb2x2LnN0ZG91dC5leHAgcmVzb2x2LnN0ZGVyci5leHAgcmVzb2x2LnZndGVzdCBcCisJc2lncmVzZW5kLnN0ZGVyci5leHAgc2lncmVzZW5kLnN0ZG91dC5leHAgc2lncmVzZW5kLnZndGVzdCBcCisJc3RhY2stb3ZlcmZsb3cuc3RkZXJyLmV4cCBzdGFjay1vdmVyZmxvdy52Z3Rlc3QgXAorCXN0YWNrX3Byb3Quc3RkZXJyLmV4cCBzdGFja19wcm90LnN0ZG91dC5leHAgc3RhY2tfcHJvdC52Z3Rlc3QgXAorCXRocmVhZHNfZXhpdGFsbC5zdGRlcnIuZXhwIHRocmVhZHNfZXhpdGFsbC5zdGRvdXQuZXhwIHRocmVhZHNfZXhpdGFsbC52Z3Rlc3QKKworY2hlY2tfUFJPR1JBTVMgPSBcCisJYmxvY2tfYWxsX3NpZ25hbHMgXAorCWJsb2NrZmF1bHQgXAorCWNvbnRleHRfbGluayBcCisJY29udGV4dF9saW5rMiBcCisJY29udGV4dF9udWxsIFwKKwljb250ZXh0X3N0YWNrIFwKKwljb3JlZHVtcF9tYW55X3NlZ21lbnRzIFwKKwljb3JlZHVtcF9tYW55X3RocmVhZHMgXAorCW1tYXBfbm9yZXNlcnZlIFwKKwlwcm9jX2FvdXQgXAorCXByb2NfYXV4diBcCisJcHJvY19hdXh2X211bHRpcGxlIFwKKwlwcm9jX3BzaW5mbyBcCisJcG9zaXhfc3Bhd24gXAorCXB0aHJlYWQtc3RhY2sgXAorCXJlc29sdiBcCisJc2lncmVzZW5kIFwKKwlzdGFjay1vdmVyZmxvdyBcCisJc3RhY2tfcHJvdCBcCisJdGhyZWFkc19leGl0YWxsCisKK0FNX0NGTEFHUyAgICs9ICQoQU1fRkxBR19NMzI2NF9QUkkpCitBTV9DWFhGTEFHUyArPSAkKEFNX0ZMQUdfTTMyNjRfUFJJKQorCitwdGhyZWFkX3N0YWNrX0xEQUREID0gLWxwdGhyZWFkCityZXNvbHZfTERBREQgPSAtbHJlc29sdgorc3RhY2tfcHJvdF9MREZMQUdTID0gLVdsLC1NLC91c3IvbGliL2xkL21hcC5ub2V4c3RrCit0aHJlYWRzX2V4aXRhbGxfTERBREQgPSAtbHB0aHJlYWQKKworaWYgU09MQVJJU19SRVNFUlZFX1NZU1NUQVRfQUREUgorY2hlY2tfUFJPR1JBTVMgKz0gcmVzZXJ2ZV9zeXNzdGF0X2FkZHIKK3Jlc2VydmVfc3lzc3RhdF9hZGRyX0xERkxBR1MgPSAtV2wsLU0scmVzZXJ2ZV9zeXNzdGF0X2FkZHIubWFwCitlbmRpZgorCitpZiBTT0xBUklTX1JFU0VSVkVfU1lTU1RBVF9aT05FX0FERFIKK2NoZWNrX1BST0dSQU1TICs9IHJlc2VydmVfc3lzc3RhdF96b25lX2FkZHIKK3Jlc2VydmVfc3lzc3RhdF96b25lX2FkZHJfTERGTEFHUyA9IC1XbCwtTSxyZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyLm1hcAorZW5kaWYKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja19hbGxfc2lnbmFscy5jIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2Jsb2NrX2FsbF9zaWduYWxzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBkMjNjMgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja19hbGxfc2lnbmFscy5jCkBAIC0wLDAgKzEsNjQgQEAKKy8qIFRlc3RzIHRoYXQgVmFsZ3JpbmQgcmV0YWlucyBjb250cm9sIG92ZXIgYmxvY2tlZCBzaWduYWxzLgorICAgSWYgc3luY2hyb25vdXMgc2lnbmFscyAoU0lHU0VHVikgd291bGQgYmUgYmxvY2tlZCwga2VybmVsIHdvdWxkCisgICBzaW1wbHkga2lsbCB0aGUgcHJvY2Vzcy4gV2hlbiBvcGVyYXRpbmcgcHJvcGVybHksIFZhbGdyaW5kIGludm9sdmVzCisgICBpdHMgc3luY2hyb25vdXMgc2lnbmFsIGhhbmRsZXIgYW5kIHJlcG9ydHMgb24gdGhlIHNpZ25hbCBkZWxpdmVyeS4KKworICAgVmFsZ3JpbmQgYW5kIGxpYmMgYWxsIHJldGFpbiB0aGVpciBzaWdtYXNrcyBhbmQgbGllIHRvIHVzIHBvbGl0ZWx5CisgICBhYm91dCB3aGF0IHRoZSBhY3R1YWwgc2lnbWFzayBpcy4gT25lIG9mIHJlbGlhYmxlIHRlc3RzIGlzIHRvIGZvcmsKKyAgIGFub3RoZXIgcHJvY2VzcyAoYmVjYXVzZSBsaWJjIHRoaW5rcyBpdCBibG9ja3MgYWxsIHNpZ25hbHMgYmVmb3JlIGZvcmsKKyAgIGFuZCB0aGUgZm9ya2VkIHByb2Nlc3MgaW5oZXJpdHMgdGhlIHNpZ21hc2spIGFuZCB0cnkgdG8gU0lHU0VHViBpdC4KKyAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisKK2ludCBtYWluKHZvaWQpCit7CisgICBwaWRfdCBwaWQgPSBmb3JrKCk7CisgICBpZiAocGlkIDwgMCkgeworICAgICAgcGVycm9yKCJmb3JrIik7CisgICAgICBleGl0KDEpOworICAgfSBlbHNlIGlmIChwaWQgPT0gMCkgeworICAgICAgLyogQ2F1c2VzIFNJR1NFR1YuICovCisgICAgICBjaGFyICpzID0gTlVMTDsKKyAgICAgIHNbMF0gPSAxOworICAgfSBlbHNlIHsKKyAgICAgIHBpZF90IHJldDsKKyAgICAgIGludCBzdGF0dXM7CisgICAgICAKKyAgICAgIHdoaWxlICgocmV0ID0gd2FpdHBpZChwaWQsICZzdGF0dXMsIDApKSAhPSBwaWQpIHsKKyAgICAgICAgIGlmIChlcnJubyAhPSBFSU5UUikgeworICAgICAgICAgICAgcGVycm9yKCJ3YWl0cGlkIik7CisgICAgICAgICAgICBleGl0KDEpOworICAgICAgICAgfQorICAgICAgfQorCisgICAgICBpZiAoV0lGU0lHTkFMRUQoc3RhdHVzKSkgeworICAgICAgICAgYXNzZXJ0KFdURVJNU0lHKHN0YXR1cykgIT0gMCk7CisKKyAgICAgICAgIGlmIChXVEVSTVNJRyhzdGF0dXMpID09IFNJR1NFR1YpIHsKKyAgICAgICAgICAgIHByaW50ZigiUEFTU1xuIik7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDaGlsZCBwcm9jZXNzIGRpZWQgd2l0aCB1bmV4cGVjdGVkIHNpZ25hbCAlZC5cbiIsCisgICAgICAgICAgICAgICAgICAgIFdURVJNU0lHKHN0YXR1cykpOworICAgICAgICAgfQorICAgICAgfSBlbHNlIGlmIChXSUZFWElURUQoc3RhdHVzKSkgeworICAgICAgICAgaWYgKFdFWElUU1RBVFVTKHN0YXR1cykgPT0gMCkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDaGlsZCBwcm9jZXNzIGV4aXRlZCB3aXRob3V0IGV4cGVjdGVkIFNJR1NFR1YgIgorICAgICAgICAgICAgICAgICAgICAic2lnbmFsLlxuIik7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDaGlsZCBwcm9jZXNzIGV4aXRlZCB3aXRoIHVuZXhwZWN0ZWQgc3RhdHVzICVkLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgV0VYSVRTVEFUVVMoc3RhdHVzKSk7CisgICAgICAgICB9CisgICAgICB9IGVsc2UgeworICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbnJlY29nbml6ZWQgc3RhdHVzIG9mIGNoaWxkIHByb2NlcyAleD9cbiIsIHN0YXR1cyk7CisgICAgICB9CisgICB9CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvYmxvY2tfYWxsX3NpZ25hbHMuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja19hbGxfc2lnbmFscy5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNDlmN2IKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvYmxvY2tfYWxsX3NpZ25hbHMuc3RkZXJyLmV4cApAQCAtMCwwICsxLDEyIEBACisKKworUHJvY2VzcyB0ZXJtaW5hdGluZyB3aXRoIGRlZmF1bHQgYWN0aW9uIG9mIHNpZ25hbCAxMSAoU0lHU0VHVikKKyBBY2Nlc3Mgbm90IHdpdGhpbiBtYXBwZWQgcmVnaW9uIGF0IGFkZHJlc3MgMHguLi4uLi4uLgorICAgYXQgMHguLi4uLi4uLjogbWFpbiAoYmxvY2tfYWxsX3NpZ25hbHMuYzoyOCkKKyBJZiB5b3UgYmVsaWV2ZSB0aGlzIGhhcHBlbmVkIGFzIGEgcmVzdWx0IG9mIGEgc3RhY2sKKyBvdmVyZmxvdyBpbiB5b3VyIHByb2dyYW0ncyBtYWluIHRocmVhZCAodW5saWtlbHkgYnV0CisgcG9zc2libGUpLCB5b3UgY2FuIHRyeSB0byBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUKKyBtYWluIHRocmVhZCBzdGFjayB1c2luZyB0aGUgLS1tYWluLXN0YWNrc2l6ZT0gZmxhZy4KKyBUaGUgbWFpbiB0aHJlYWQgc3RhY2sgc2l6ZSB1c2VkIGluIHRoaXMgcnVuIHdhcyAuLi4uCisKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2Jsb2NrX2FsbF9zaWduYWxzLnN0ZG91dC5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvYmxvY2tfYWxsX3NpZ25hbHMuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWYyMmU5Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2Jsb2NrX2FsbF9zaWduYWxzLnN0ZG91dC5leHAKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2Jsb2NrX2FsbF9zaWduYWxzLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja19hbGxfc2lnbmFscy52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNiYmU1YQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja19hbGxfc2lnbmFscy52Z3Rlc3QKQEAgLTAsMCArMSw0IEBACitwcm9nOiBibG9ja19hbGxfc2lnbmFscwordmdvcHRzOiAtLXRyYWNlLWNoaWxkcmVuPXllcworc3RkZXJyX2ZpbHRlcjogZmlsdGVyX3N0ZGVycgorY2xlYW51cDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja2ZhdWx0LmMgYi9ub25lL3Rlc3RzL3NvbGFyaXMvYmxvY2tmYXVsdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxMWM3YzUKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvYmxvY2tmYXVsdC5jCkBAIC0wLDAgKzEsMzMgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgInRlc3RzL3N5c19tbWFuLmgiCisKK3N0YXRpYyB2b2lkIGhhbmRsZXIoaW50IHNpZywgc2lnaW5mb190ICppbmZvLCB2b2lkICp2KQoreworCXByaW50ZigiaW5mbzogc2lnPSVkIGNvZGU9JWQgYWRkcj0lcFxuIiwKKwkgICAgICAgaW5mby0+c2lfc2lnbm8sIGluZm8tPnNpX2NvZGUsIGluZm8tPnNpX2FkZHIpOworCWV4aXQoMCk7Cit9CisKKy8qIEJsb2NraW5nIGEgZmF1bHQgKGZvciBleGFtcGxlIFNJR1NFR1YpIHdvbid0IHdvcmssCisgICBhbmQgaXMgdGhlIHNhbWUgYXMgaGF2aW5nIHRoZSBkZWZhdWx0IGhhbmRsZXIuICovCitpbnQgbWFpbigpCit7CisJaW50KiB1bm1hcHBlZF9wYWdlID0gZ2V0X3VubWFwcGVkX3BhZ2UoKTsKKwlzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworCXNpZ3NldF90IG1hc2s7CisKKwlzYS5zYV9zaWdhY3Rpb24gPSBoYW5kbGVyOworCXNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKKwlzYS5zYV9mbGFncyA9IFNBX1NJR0lORk87CisJCisJc2lnYWN0aW9uKFNJR1NFR1YsICZzYSwgTlVMTCk7CisKKwlzaWdmaWxsc2V0KCZtYXNrKTsKKwlzaWdwcm9jbWFzayhTSUdfQkxPQ0ssICZtYXNrLCBOVUxMKTsKKworCSoodm9sYXRpbGUgaW50ICopdW5tYXBwZWRfcGFnZSA9IDIxMzsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2Jsb2NrZmF1bHQuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja2ZhdWx0LnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjU3YzAzNwotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja2ZhdWx0LnN0ZGVyci5leHAKQEAgLTAsMCArMSwxMSBAQAorCisKK1Byb2Nlc3MgdGVybWluYXRpbmcgd2l0aCBkZWZhdWx0IGFjdGlvbiBvZiBzaWduYWwgMTEgKFNJR1NFR1YpCisgQWNjZXNzIG5vdCB3aXRoaW4gbWFwcGVkIHJlZ2lvbiBhdCBhZGRyZXNzIDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IG1haW4gKGJsb2NrZmF1bHQuYzozMCkKKyBJZiB5b3UgYmVsaWV2ZSB0aGlzIGhhcHBlbmVkIGFzIGEgcmVzdWx0IG9mIGEgc3RhY2sKKyBvdmVyZmxvdyBpbiB5b3VyIHByb2dyYW0ncyBtYWluIHRocmVhZCAodW5saWtlbHkgYnV0CisgcG9zc2libGUpLCB5b3UgY2FuIHRyeSB0byBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUKKyBtYWluIHRocmVhZCBzdGFjayB1c2luZyB0aGUgLS1tYWluLXN0YWNrc2l6ZT0gZmxhZy4KKyBUaGUgbWFpbiB0aHJlYWQgc3RhY2sgc2l6ZSB1c2VkIGluIHRoaXMgcnVuIHdhcyAuLi4uCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja2ZhdWx0LnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9ibG9ja2ZhdWx0LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODRmNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2Jsb2NrZmF1bHQudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogYmxvY2tmYXVsdAorcG9zdDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X2xpbmsuYyBiL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X2xpbmsuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDJmNDU3Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbGluay5jCkBAIC0wLDAgKzEsMzggQEAKKy8qIFRlc3Qgb2YgY29ycmVjdCBzaW11bGF0aW9uIGZvciB1Yy0+dWNfbGluay4gKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dWNvbnRleHQuaD4KKworc3RhdGljIHZvaWQgcHJpbnRfdmFsdWUoaW50IHZhbHVlKQoreworICAgcHJpbnRmKCJWYWx1ZSBpcyAlZC5cbiIsIHZhbHVlKTsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIHVjb250ZXh0X3QgdWM7CisgICBjaGFyIHN0YWNrWzgwOTZdOworICAgdm9sYXRpbGUgaW50IGRvbmUgPSAwOworCisgICAvKiBHZXQgY3VycmVudCBjb250ZXh0LiAqLworICAgZ2V0Y29udGV4dCgmdWMpOworICAgaWYgKGRvbmUpIHsKKyAgICAgIC8qIEV4ZWN1dGlvbiByZXN1bWVzIGhlcmUgd2hlbiBwcmludF92YWx1ZSgpIHJldHVybnMuICovCisgICAgICByZXR1cm4gMDsKKyAgIH0KKyAgIGRvbmUgPSAxOworCisgICAvKiBTZXR1cCB0aGUgc3RhY2suICovCisgICB1Yy51Y19zdGFjay5zc19zcCA9IHN0YWNrOworICAgdWMudWNfc3RhY2suc3Nfc2l6ZSA9IHNpemVvZihzdGFjayk7CisKKyAgIC8qIENhbGwgcHJpbnRfdmFsdWUoKS4gKi8KKyAgIG1ha2Vjb250ZXh0KCZ1YywgcHJpbnRfdmFsdWUsIDEsIDQyKTsKKyAgIHNldGNvbnRleHQoJnVjKTsKKworICAgLyogVGhpcyBjb2RlIHNob3VsZCBub3QgYmUgcmVhY2hlZC4gKi8KKyAgIGFzc2VydCgwKTsKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9saW5rLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9saW5rLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X2xpbmsuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X2xpbmsuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzVlNDA4Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbGluay5zdGRvdXQuZXhwCkBAIC0wLDAgKzEgQEAKK1ZhbHVlIGlzIDQyLgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbGluay52Z3Rlc3QgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9saW5rLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGNlY2ZkCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbGluay52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBjb250ZXh0X2xpbmsKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X2xpbmsyLmMgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9saW5rMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkNjRiNmIKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9saW5rMi5jCkBAIC0wLDAgKzEsNDggQEAKKy8qIFRlc3Qgb2YgY29ycmVjdCBzaW11bGF0aW9uIGZvciB1Yy0+dWNfbGluayBpbiBhIHNpZ25hbCBoYW5kbGVyLiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1Y29udGV4dC5oPgorCitzdGF0aWMgdm9pZCBzaWdoYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCAqc2lwLCB1Y29udGV4dF90ICp1Y3ApCit7CisgICB1Y29udGV4dF90IHVjMjsKKworICAgLyogQ3VycmVudCB1Y19saW5rIHZhbHVlIGhhcyB0byBiZSBlcXVhbCB0byB1Y3AuICovCisgICBnZXRjb250ZXh0KCZ1YzIpOworICAgYXNzZXJ0KHVjMi51Y19saW5rID09IHVjcCk7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICB1Y29udGV4dF90IHVjOworICAgc3RydWN0IHNpZ2FjdGlvbiBzYTsKKworICAgLyogQ3VycmVudCB1Y19saW5rIHZhbHVlIGhhcyB0byBiZSBOVUxMLiAqLworICAgaWYgKGdldGNvbnRleHQoJnVjKSkgeworICAgICAgcGVycm9yKCJnZXRjb250ZXh0Iik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKyAgIGFzc2VydCghdWMudWNfbGluayk7CisKKyAgIHNhLnNhX2hhbmRsZXIgPSBzaWdoYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9TSUdJTkZPOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdVU1IxLCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIHJhaXNlKFNJR1VTUjEpOworCisgICAvKiBDdXJyZW50IHVjX2xpbmsgdmFsdWUgaGFzIHRvIGJlIE5VTEwuICovCisgICBnZXRjb250ZXh0KCZ1Yyk7CisgICBhc3NlcnQoIXVjLnVjX2xpbmspOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMi5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbGluazIuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDIuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X2xpbmsyLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X2xpbmsyLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9saW5rMi5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9saW5rMi52Z3Rlc3QgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9saW5rMi52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBhNzQxNgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X2xpbmsyLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IGNvbnRleHRfbGluazIKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X251bGwuYyBiL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X251bGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDIwNmM3Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbnVsbC5jCkBAIC0wLDAgKzEsMTUgQEAKKy8qIFRlc3QgdGhhdCBzZXR0aW5nIE5VTEwgY29udGV4dCBjYXVzZXMgdGhlIHRocmVhZCB0byBleGl0LiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDx1Y29udGV4dC5oPgorCitpbnQgbWFpbih2b2lkKQoreworICAgc3lzY2FsbChTWVNfY29udGV4dCwgU0VUQ09OVEVYVCwgTlVMTCk7CisKKyAgIC8qIFRoaXMgY29kZSBzaG91bGQgbm90IGJlIHJlYWNoZWQuICovCisgICBhc3NlcnQoMCk7CisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbnVsbC5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbnVsbC5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9udWxsLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9udWxsLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X251bGwudmd0ZXN0IGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfbnVsbC52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODgxMTY5NgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X251bGwudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogY29udGV4dF9udWxsCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9zdGFjay5jIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjNhZGU2Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2suYwpAQCAtMCwwICsxLDcyIEBACisvKiBUZXN0IG9mIGNvcnJlY3Qgc2ltdWxhdGlvbiBmb3IgYWN0aXZlIHN0YWNrLiAqLworCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1Y29udGV4dC5oPgorCitzdGF0aWMgY2hhciBhbHRzdGFja19tYXBbODA5Nl07CitzdGF0aWMgdm9sYXRpbGUgc3RhY2tfdCAqc3A7CisKK3N0YXRpYyB2b2lkIHNpZ2hhbmRsZXIoaW50IHNpZykKK3sKKyAgIC8qIENoZWNrIHRoYXQgdGhlIGFsdGVybmF0ZSBzdGFjayBpcyBhY3RpdmUuICovCisgICBhc3NlcnQoc3AtPnNzX3NwID09IGFsdHN0YWNrX21hcCk7CisgICBhc3NlcnQoc3AtPnNzX3NpemUgPT0gc2l6ZW9mKGFsdHN0YWNrX21hcCkpOworICAgYXNzZXJ0KHNwLT5zc19mbGFncyA9PSBTU19PTlNUQUNLKTsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIHN0YWNrX3QgbWFpbnN0YWNrOworICAgc3RhY2tfdCBhbHRzdGFjazsKKyAgIHN0cnVjdCBzaWdhY3Rpb24gc2E7CisgICAvKiBPYnRhaW4gYW4gYWRkcmVzcyBpbnNpZGUgdGhlIHN0YWNrIHVzaW5nIGEgZGlydHkgdHJpY2suICovCisgICB2b2lkICpsb2NhbCA9ICZzYTsKKworICAgLyogR2V0IGFuIGFkZHJlc3MgZm9yIHN0YWNrIGRlZmluaXRpb24uICovCisgICBpZiAoZ2V0dXN0YWNrKChzdGFja190KiopJnNwKSkgeworICAgICAgcGVycm9yKCJnZXR1c3RhY2siKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICAvKiBDaGVjayB0aGUgY3VycmVudCBzdGFjay4gKi8KKyAgIGFzc2VydChzcC0+c3Nfc3AgPD0gbG9jYWwpOworICAgYXNzZXJ0KGxvY2FsIDwgKHZvaWQqKSgoY2hhciopc3AtPnNzX3NwICsgc3AtPnNzX3NpemUpKTsKKyAgIGFzc2VydChzcC0+c3NfZmxhZ3MgPT0gMCk7CisKKyAgIC8qIEJhY2t1cCB0aGUgY3VycmVudCBzdGFjay4gKi8KKyAgIG1haW5zdGFjayA9ICpzcDsKKworICAgLyogU2V0dXAgYSBzaWduYWwgaGFuZGxlci4gKi8KKyAgIHNhLnNhX2hhbmRsZXIgPSBzaWdoYW5kbGVyOworICAgc2Euc2FfZmxhZ3MgPSBTQV9PTlNUQUNLOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdVU1IxLCAmc2EsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIC8qIFNldHVwIGFuIGFsdGVybmF0ZSBzdGFjay4gKi8KKyAgIGFsdHN0YWNrLnNzX3NwID0gYWx0c3RhY2tfbWFwOworICAgYWx0c3RhY2suc3Nfc2l6ZSA9IHNpemVvZihhbHRzdGFja19tYXApOworICAgYWx0c3RhY2suc3NfZmxhZ3MgPSAwOworICAgaWYgKHNpZ2FsdHN0YWNrKCZhbHRzdGFjaywgTlVMTCkpIHsKKyAgICAgIHBlcnJvcigic2lnYWx0c3RhY2siKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICAvKiBSYWlzZSBhIHNpZ25hbC4gKi8KKyAgIHJhaXNlKFNJR1VTUjEpOworCisgICAvKiBDaGVjayB0aGUgY3VycmVudCBzdGFjay4gKi8KKyAgIGFzc2VydChtYWluc3RhY2suc3Nfc3AgPT0gc3AtPnNzX3NwKTsKKyAgIGFzc2VydChtYWluc3RhY2suc3Nfc2l6ZSA9PSBzcC0+c3Nfc2l6ZSk7CisgICBhc3NlcnQobWFpbnN0YWNrLnNzX2ZsYWdzID09IHNwLT5zc19mbGFncyk7CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29udGV4dF9zdGFjay5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2suc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2suc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X3N0YWNrLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X3N0YWNrLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9jb250ZXh0X3N0YWNrLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODc2YjFiCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvbnRleHRfc3RhY2sudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogY29udGV4dF9zdGFjawordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2NvcmVkdW1wX21hbnlfc2VnbWVudHMuYyBiL25vbmUvdGVzdHMvc29sYXJpcy9jb3JlZHVtcF9tYW55X3NlZ21lbnRzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU4NjhlNQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9jb3JlZHVtcF9tYW55X3NlZ21lbnRzLmMKQEAgLTAsMCArMSwyMzQgQEAKKy8qIFRlc3RzIHRoYXQgVmFsZ3JpbmQgY29yZWR1bXAgc3VwcG9ydCB3b3JrcyBjb3JyZWN0bHkgZXZlbiB3aGVuCisgICBudW1iZXIgb2Ygc2VnbWVudHMgZXhjZWVkcyAweGZmZmYuCisgICBGb3IgdGhpcyB0byB3b3JrLCBsYXJnZSBudW1iZXIgb2YgcGFnZXMgaXMgbW1hcCgpJ2VkIGludG8gdGhlCisgICBwcm9jZXNzICh2aXJ0dWFsKSBhZGRyZXNzIHNwYWNlLiBUaGVzZSBwYWdlcyBtdXN0IG5vdCBiZSBhZGphY2VudAorICAgdG8gZWFjaCBvdGhlciBvdGhlcndpc2UgdGhlIG1lbW9yeSBtYW5hZ2VyIHdpbGwgY29hbGVzY2UgdGhlbQorICAgaW50byBhIHNpbmdsZSBvbmUuIFNvIHRoZXkgYXJlIG9uZSBwYWdlIGFwYXJ0LgorCisgICBOT1RFOiBWYWxncmluZCdzIGludGVybmFsIGxpbWl0IFZHX05fU0VHTUVOVFMgbXVzdCBiZSBhdCBsZWFzdAorICAgMTQwMDAwIG90aGVyd2lzZSB5b3UgZ2V0IGEgZmF0YWwgZXJyb3Igc2ltaWxhciB0byB0aGlzIG9uZToKKyAgICAgICAiRkFUQUw6IFZHX05fU0VHTUVOVFMgaXMgdG9vIGxvdy4iCisKKyAgIFRlc3QgY2FzZSBwYXNzZXMgc3VjY2Vzc2Z1bGx5IGlmIHRoZSBudW1iZXIgb2Ygc2VnbWVudHMgaXMKKyAgIGNvcnJlY3RseSBkaXNwbGF5ZWQgaW4gZWxmZHVtcCBvdXRwdXQ6CisKKyAgICQgZWxmZHVtcCAtZSB2Z2NvcmUuKgorRUxGIEhlYWRlcgorICAuLi4KKyAgZV9waG9mZjogMHgzNCAgZV9waGVudHNpemU6IDMyICBlX3BobnVtOiBQTl9YTlVNIChzZWUgc2hkclswXS5zaF9pbmZvKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl4KK1NlY3Rpb24gSGVhZGVyWzBdOiAgKEVMRiBFaGRyIGV4dGVuc2lvbnMpCisgIC4uLgorICAgIHNoX2xpbms6IDAgKGVfc2hzdHJuZHgpICBzaF9pbmZvOiA2NTU1NCAoZV9waG51bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisqLyAKKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL2lwYy5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKKyNkZWZpbmUgU0VHTUVOVFMgKDB4ZmZmZiArIDIpCisKKyNpZiAwCisjZGVmaW5lIERFQlVHKGZvcm1hdCwgLi4uKSBwcmludGYoZm9ybWF0LCAjIyBfX1ZBX0FSR1NfXykKKyNlbHNlCisjZGVmaW5lIERFQlVHKGZvcm1hdCwgLi4uKQorI2VuZGlmCisKKyNkZWZpbmUgUFJJTlQoZm9ybWF0LCAuLi4pIHByaW50Zihmb3JtYXQsICMjIF9fVkFfQVJHU19fKQorCisvKiBSZXByZXNlbnRzIGEgZnJlZSByYW5nZSBvZiBhIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4gKi8KK3R5cGVkZWYgc3RydWN0IHJhbmdlIHsKKyAgIHVpbnRwdHJfdCAgICAgc3RhcnQ7CisgICB1aW50cHRyX3QgICAgIGVuZDsKKyAgIHNpemVfdCAgICAgICAgc2l6ZTsKKyAgIHN0cnVjdCByYW5nZSAqbmV4dDsKK30gcmFuZ2VfdDsKKworLyogUHJvY2Vzc2VzIGEgc2luZ2xlIHBybWFwX3QgZW50cnkgYW5kIGJ1aWxkcyB0aGUgZnJlZSByYW5nZXMuICovCitzdGF0aWMgaW50IHByb2Nlc3NfbWFwKGNvbnN0IHBybWFwX3QgKm1hcCwgcmFuZ2VfdCAqKnJhbmdlc19oZWFkLAorICAgICAgICAgICAgICAgICAgICAgICByYW5nZV90ICoqcmFuZ2VzX3RhaWwsIHNpemVfdCBwYWdlX3NpemUpCit7CisgICBhc3NlcnQobWFwICE9IE5VTEwpOworICAgYXNzZXJ0KHJhbmdlc19oZWFkICE9IE5VTEwpOworICAgYXNzZXJ0KHJhbmdlc190YWlsICE9IE5VTEwpOworCisgICByYW5nZV90ICpoZWFkID0gKnJhbmdlc19oZWFkOworICAgcmFuZ2VfdCAqdGFpbCA9ICpyYW5nZXNfdGFpbDsKKworICAgREVCVUcoInByb2Nlc3NpbmcgbWFwIHdpdGggYWRkcj0lcCBhbmQgc2l6ZT0lenVcbiIsCisgICAgICAgICBtYXAtPnByX3ZhZGRyLCBtYXAtPnByX3NpemUpOworCisgICBpZiAoaGVhZCA9PSBOVUxMKSB7CisgICAgICBoZWFkID0gY2FsbG9jKDEsIHNpemVvZihyYW5nZV90KSk7CisgICAgICBpZiAoaGVhZCA9PSBOVUxMKSB7CisgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNhbGxvYyBmYWlsZWRcbiIpOworICAgICAgICAgcmV0dXJuIC0xOworICAgICAgfQorICAgICAgaGVhZC0+c3RhcnQgPSAodWludHB0cl90KSBwYWdlX3NpemU7IC8vIGRvIG5vdCBzdGFydCBhdCBhZGRyZXNzICcwJworCisgICAgICB0YWlsID0gaGVhZDsKKyAgICAgICpyYW5nZXNfaGVhZCA9IGhlYWQ7CisgICAgICAqcmFuZ2VzX3RhaWwgPSB0YWlsOworICAgfQorCisgICBpZiAoKG1hcC0+cHJfdmFkZHIgPCB0YWlsLT5zdGFydCkgfHwKKyAgICAgICAobWFwLT5wcl92YWRkciAtIHRhaWwtPnN0YXJ0IDwgMyAqIHBhZ2Vfc2l6ZSkpIHsKKyAgICAgIERFQlVHKCJsYXN0IHJhbmdlIGF0ICVwIGlzIHRvbyBzbWFsbCwgc2tpcHBpbmcgaXRcbiIsCisgICAgICAgICAgICB0YWlsLT5zdGFydCk7CisgICAgICB0YWlsLT5zdGFydCA9IG1hcC0+cHJfdmFkZHIgKyBtYXAtPnByX3NpemUgKyBwYWdlX3NpemU7CisgICAgICByZXR1cm4gMDsKKyAgIH0KKworICAgdGFpbC0+ZW5kID0gbWFwLT5wcl92YWRkciAtIHBhZ2Vfc2l6ZTsKKyAgIHRhaWwtPnNpemUgPSB0YWlsLT5lbmQgLSB0YWlsLT5zdGFydDsKKworICAgcmFuZ2VfdCAqbmV3X29uZSA9IGNhbGxvYygxLCBzaXplb2YocmFuZ2VfdCkpOworICAgaWYgKG5ld19vbmUgPT0gTlVMTCkgeworICAgICAgZnByaW50ZihzdGRlcnIsICJjYWxsb2MgZmFpbGVkXG4iKTsKKyAgICAgIHJldHVybiAtMTsKKyAgIH0KKworICAgbmV3X29uZS0+c3RhcnQgPSBtYXAtPnByX3ZhZGRyICsgbWFwLT5wcl9zaXplICsgcGFnZV9zaXplOworICAgdGFpbC0+bmV4dCA9IG5ld19vbmU7CisgICAqcmFuZ2VzX3RhaWwgPSBuZXdfb25lOworICAgcmV0dXJuIDA7Cit9CisKKy8qIFJlYWRzIC9wcm9jL3NlbGYvbWFwIGFuZCBidWlsZHMgZnJlZSByYW5nZXMuICovCitzdGF0aWMgcmFuZ2VfdCAqcmVhZF9wcm9jX21hcChzaXplX3QgcGFnZV9zaXplKQoreworICAgaW50IGZkID0gb3BlbigiL3Byb2Mvc2VsZi9tYXAiLCBPX1JET05MWSk7CisgICBpZiAoZmQgPT0gLTEpIHsKKyAgICAgIGludCBlcnJvciA9IGVycm5vOworICAgICAgZnByaW50ZihzdGRlcnIsICJvcGVuIGZhaWxlZDogJXMgKCVkKVxuIiwgc3RyZXJyb3IoZXJyb3IpLCBlcnJvcik7CisgICAgICByZXR1cm4gTlVMTDsKKyAgIH0KKworICAgcHJtYXBfdCBtYXA7CisgICByYW5nZV90ICpyYW5nZXNfaGVhZCA9IE5VTEw7CisgICByYW5nZV90ICpyYW5nZXNfdGFpbCA9IE5VTEw7CisKKyAgIHNzaXplX3QgYnl0ZXMgPSByZWFkKGZkLCAmbWFwLCBzaXplb2YobWFwKSk7CisgICB3aGlsZSAoYnl0ZXMgPT0gc2l6ZW9mKG1hcCkpIHsKKyAgICAgIGlmIChtYXAucHJfc2l6ZSAhPSAwKSB7CisgICAgICAgICBpZiAocHJvY2Vzc19tYXAoJm1hcCwgJnJhbmdlc19oZWFkLCAmcmFuZ2VzX3RhaWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9zaXplKSAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGJ5dGVzID0gcmVhZChmZCwgJm1hcCwgc2l6ZW9mKG1hcCkpOworICAgfQorCisgICBpZiAocmFuZ2VzX3RhaWwgIT0gTlVMTCkgeworICAgICAgcmFuZ2VzX3RhaWwtPmVuZCA9ICh1aW50cHRyX3QpIH4wOworICAgICAgcmFuZ2VzX3RhaWwtPnNpemUgPSByYW5nZXNfdGFpbC0+ZW5kIC0gcmFuZ2VzX3RhaWwtPnN0YXJ0OworICAgfQorCisgICBjbG9zZShmZCk7CisgICByZXR1cm4gcmFuZ2VzX2hlYWQ7Cit9CisKK3N0YXRpYyB2b2lkIHByaW50X3Jhbmdlcyhjb25zdCByYW5nZV90ICpoZWFkKQoreworICAgd2hpbGUgKGhlYWQgIT0gTlVMTCkgeworICAgICAgREVCVUcoImZyZWUgcmFuZ2UgWyU4cCAtICU4cF0gb2Ygc2l6ZSAlN3p1S1xuIiwKKyAgICAgICAgICAgIGhlYWQtPnN0YXJ0LCBoZWFkLT5lbmQsIGhlYWQtPnNpemUgLyAxMDI0KTsKKyAgICAgIGhlYWQgPSBoZWFkLT5uZXh0OworICAgfQorfQorCitzdGF0aWMgc2l6ZV90IHN1bV9yYW5nZXMoY29uc3QgcmFuZ2VfdCAqaGVhZCkKK3sKKyAgIHNpemVfdCBzdW0gPSAwOworCisgICB3aGlsZSAoaGVhZCAhPSBOVUxMKSB7CisgICAgICBzdW0gKz0gaGVhZC0+c2l6ZTsKKyAgICAgIGhlYWQgPSBoZWFkLT5uZXh0OworICAgfQorCisgICByZXR1cm4gc3VtOworfQorCitzdGF0aWMgdm9pZCAqbWFwX3NlZ21lbnQodm9pZCAqZml4ZWRfYWRkcikKK3sKKyAgIGludCBmbGFncyA9IE1BUF9OT1JFU0VSVkUgfCBNQVBfQU5PTiB8IE1BUF9QUklWQVRFIHwgTUFQX0ZJWEVEOworICAgdm9pZCAqYWRkciA9IG1tYXAoZml4ZWRfYWRkciwgMSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKKyAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCAtMSwgMCk7CisgICBpZiAoYWRkciA9PSBNQVBfRkFJTEVEKSB7CisgICAgICBpbnQgZXJyb3IgPSBlcnJubzsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAibW1hcCBmYWlsZWQ6ICVzICglZClcbiIsIHN0cmVycm9yKGVycm9yKSwgZXJyb3IpOworICAgICAgcmV0dXJuIE5VTEw7CisgICB9CisgICBhc3NlcnQoYWRkciA9PSBmaXhlZF9hZGRyKTsKKworICAgKigoY2hhciAqKSBhZGRyKSA9IDE7IC8vIG1ha2UgdGhlIG1tYXAnZWQgcGFnZSBkaXJ0eQorICAgLy8gREVCVUcoIm1tYXAoJThwKSA9ICU4cFxuIiwgZml4ZWRfYWRkciwgYWRkcik7CisgICByZXR1cm4gYWRkcjsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKK3sKKyAgIGxvbmcgcGFnZV9zaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOworICAgaWYgKHBhZ2Vfc2l6ZSA9PSAtMSkgeworICAgICAgcGVycm9yKCJzeXNjb25mIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgUFJJTlQoIlBhZ2Ugc2l6ZSBkZXRlcm1pbmVkIGFzICVsZCBieXRlcy5cbiIsIHBhZ2Vfc2l6ZSk7CisKKyAgIHJhbmdlX3QgKnJhbmdlcyA9IHJlYWRfcHJvY19tYXAocGFnZV9zaXplKTsKKyAgIHByaW50X3JhbmdlcyhyYW5nZXMpOworCisgICBzaXplX3Qgc3VtID0gc3VtX3JhbmdlcyhyYW5nZXMpOworICAgaWYgKHN1bSA8IFNFR01FTlRTICogcGFnZV9zaXplKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZyZWUgKHZpcnR1YWwpIGFkZHJlc3Mgc3BhY2UgY2Fubm90IGFjY29tb2RhdGUgIgorICAgICAgICAgICAgICAiJXUgcGFnZXMuXG4iLCBTRUdNRU5UUyk7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgUFJJTlQoIm1tYXAoKSdpbmcgJXUgc2VnbWVudHM6IiwgU0VHTUVOVFMpOworICAgZmZsdXNoKHN0ZG91dCk7CisKKyAgIHVuc2lnbmVkIGludCBzZWdtZW50ID0gMDsKKyAgIHdoaWxlICgocmFuZ2VzICE9IE5VTEwpICYmIChzZWdtZW50IDwgU0VHTUVOVFMpKSB7CisgICAgICB1bnNpZ25lZCBpbnQgcGFnZTsKKyAgICAgIGZvciAocGFnZSA9IDA7IHBhZ2UgPCByYW5nZXMtPnNpemUgLyAoMiAqIHBhZ2Vfc2l6ZSk7IHBhZ2UrKykgeworICAgICAgICAgdWludHB0cl90IHN0YXJ0ID0gcmFuZ2VzLT5zdGFydCArIDIgKiBwYWdlICogcGFnZV9zaXplOworICAgICAgICAgdm9pZCAqYWRkciA9IG1hcF9zZWdtZW50KCh2b2lkICopIHN0YXJ0KTsKKyAgICAgICAgIGlmIChhZGRyID09IE5VTEwpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTWFwcGluZyBmYWlsZWQgZm9yIHNlZ21lbnQgJXUgYXQgYWRkcmVzcyAiCisgICAgICAgICAgICAgICAgICAgICIlIiBQUkl4UFRSICIuXG4iLCBzZWdtZW50LCBzdGFydCk7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgIH0KKworICAgICAgICAgc2VnbWVudCArPSAxOworICAgICAgICAgaWYgKHNlZ21lbnQgPj0gU0VHTUVOVFMpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorCisgICAgICAgICBpZiAoc2VnbWVudCAlIChTRUdNRU5UUyAvIDEwKSA9PSAwKSB7CisgICAgICAgICAgICBQUklOVCgiICV1MCUlIiwgc2VnbWVudCAvIChTRUdNRU5UUyAvIDEwKSk7CisgICAgICAgICAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHJhbmdlcyA9IHJhbmdlcy0+bmV4dDsKKyAgIH0KKyAgIGFzc2VydChzZWdtZW50ID09IFNFR01FTlRTKTsKKworICAgUFJJTlQoIi5cbkR1bXBpbmcgY29yZS4uLlxuIik7CisgICBjaGFyICpuaWhpbCA9IE5VTEw7CisgICAqbmloaWwgPSAwOyAvLyBTRUdWIGhlcmUKKyAgIGZwcmludGYoc3RkZXJyLCAiU2hvdWxkIG5vdCByZWFjaCBoZXJlLlxuIik7CisKKyAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2NvcmVkdW1wX21hbnlfdGhyZWFkcy5jIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvcmVkdW1wX21hbnlfdGhyZWFkcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNDVhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29yZWR1bXBfbWFueV90aHJlYWRzLmMKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDcmVhdGVzIDggdGhyZWFkcy4gVGhlIGZpZnRoIG9uZSAoY291bnRpbmcgdGhlIG1haW4gdGhyZWFkIGFzIHdlbGwpCisgKiBjYXVzZXMgYSBjb3JlIGR1bXAuCisgKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNkZWZpbmUgTkVWRVJFTkRJTkdfU0xFRVAgMTAwMDAKKworc3RhdGljIHB0aHJlYWRfYmFycmllcl90IGJhcnJpZXI7CisKK3N0YXRpYyB2b2lkICp0aHJlYWRfZnVuYzIodm9pZCAqYXJnKSB7CisgICBwdGhyZWFkX2JhcnJpZXJfd2FpdCgmYmFycmllcik7CisgICBzbGVlcChORVZFUkVORElOR19TTEVFUCk7CisgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgKnRocmVhZF9mdW5jMyh2b2lkICphcmcpIHsKKyAgIHB0aHJlYWRfYmFycmllcl93YWl0KCZiYXJyaWVyKTsKKyAgIHNsZWVwKE5FVkVSRU5ESU5HX1NMRUVQKTsKKyAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCAqdGhyZWFkX2Z1bmM0KHZvaWQgKmFyZykgeworICAgcHRocmVhZF9iYXJyaWVyX3dhaXQoJmJhcnJpZXIpOworICAgc2xlZXAoTkVWRVJFTkRJTkdfU0xFRVApOworICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkICp0aHJlYWRfZnVuYzUodm9pZCAqYXJnKSB7CisgICBwdGhyZWFkX2JhcnJpZXJfd2FpdCgmYmFycmllcik7CisgICBzbGVlcCgyKTsKKworICAgY2hhciAqeCA9IChjaGFyICopIDB4MTsKKyAgICp4ID0gMjsKKyAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCAqdGhyZWFkX2Z1bmM2KHZvaWQgKmFyZykgeworICAgcHRocmVhZF9iYXJyaWVyX3dhaXQoJmJhcnJpZXIpOworICAgc2xlZXAoTkVWRVJFTkRJTkdfU0xFRVApOworICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkICp0aHJlYWRfZnVuYzcodm9pZCAqYXJnKSB7CisgICBwdGhyZWFkX2JhcnJpZXJfd2FpdCgmYmFycmllcik7CisgICBzbGVlcChORVZFUkVORElOR19TTEVFUCk7CisgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQgKnRocmVhZF9mdW5jOCh2b2lkICphcmcpIHsKKyAgIHB0aHJlYWRfYmFycmllcl93YWl0KCZiYXJyaWVyKTsKKyAgIHNsZWVwKE5FVkVSRU5ESU5HX1NMRUVQKTsKKyAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCAqdGhyZWFkX2Z1bmM5KHZvaWQgKmFyZykgeworICAgcHRocmVhZF9iYXJyaWVyX3dhaXQoJmJhcnJpZXIpOworICAgc2xlZXAoTkVWRVJFTkRJTkdfU0xFRVApOworICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIGNyZWF0ZV90aHJlYWQodm9pZCAqKCp0aHJlYWRfZnVuYykodm9pZCAqKSkKK3sKKyAgIHB0aHJlYWRfdCB0aHJlYWQ7CisKKyAgIGludCByZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCB0aHJlYWRfZnVuYywgTlVMTCk7CisgICBpZiAocmV0ICE9IDApIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAicHRocmVhZF9jcmVhdGU6ICVzICglZClcbiIsIHN0cmVycm9yKHJldCksIHJldCk7CisgICAgICBleGl0KDEpOworICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQoreworICAgaW50IHJldCA9IHB0aHJlYWRfYmFycmllcl9pbml0KCZiYXJyaWVyLCBOVUxMLCA5KTsKKyAgIGlmIChyZXQgIT0gMCkgeworICAgICAgZnByaW50ZihzdGRlcnIsICJwdGhyZWFkX2JhcnJpZXJfaW5pdDogJXMgKCVkKVxuIiwKKyAgICAgICAgICAgICAgc3RyZXJyb3IocmV0KSwgcmV0KTsKKyAgICAgIGV4aXQoMSk7CisgICB9CisKKyAgIGNyZWF0ZV90aHJlYWQodGhyZWFkX2Z1bmMyKTsKKyAgIGNyZWF0ZV90aHJlYWQodGhyZWFkX2Z1bmMzKTsKKyAgIGNyZWF0ZV90aHJlYWQodGhyZWFkX2Z1bmM0KTsKKyAgIGNyZWF0ZV90aHJlYWQodGhyZWFkX2Z1bmM1KTsKKyAgIGNyZWF0ZV90aHJlYWQodGhyZWFkX2Z1bmM2KTsKKyAgIGNyZWF0ZV90aHJlYWQodGhyZWFkX2Z1bmM3KTsKKyAgIGNyZWF0ZV90aHJlYWQodGhyZWFkX2Z1bmM4KTsKKyAgIGNyZWF0ZV90aHJlYWQodGhyZWFkX2Z1bmM5KTsKKyAgIHB0aHJlYWRfYmFycmllcl93YWl0KCZiYXJyaWVyKTsKKworICAgc2xlZXAoTkVWRVJFTkRJTkdfU0xFRVApOworICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvY29yZWR1bXBfbWFueV90aHJlYWRzLnBvc3QuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvcmVkdW1wX21hbnlfdGhyZWFkcy5wb3N0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Yzk0ZGMyCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvcmVkdW1wX21hbnlfdGhyZWFkcy5wb3N0LmV4cApAQCAtMCwwICsxLDU5IEBACistLS1TdGF0dXMtLS0KK2RlYnVnZ2luZyBjb3JlIGZpbGUgb2YgY29yZWR1bXBfbWFueV90IGZyb20gLi4uCitpbml0aWFsIGFyZ3Y6IC4vY29yZWR1bXBfbWFueV90aHJlYWRzCit0aHJlYWRpbmcgbW9kZWw6IG5hdGl2ZSB0aHJlYWRzCitzdGF0dXM6IHByb2Nlc3MgdGVybWluYXRlZCBieSBTSUdTRUdWIChTZWdtZW50YXRpb24gRmF1bHQpLCBhZGRyPS4uLi4uLi4uCisKKy0tLVN0YWNrcy0tLQorVEhSRUFEIFNUQVRFIFNPQkogQ09VTlQKKzUgVU5QQVJLRUQgPE5PTkU+IDEKK2xpYmMuc28uMWBfdGhycF9zZXR1cAorbGliYy5zby4xYF9sd3Bfc3RhcnQKKworMSBVTlBBUktFRCA8Tk9ORT4gMQorbGliYy5zby4xYHNsZWVwCitjb3JlZHVtcF9tYW55X3RocmVhZHNgbWFpbgorY29yZWR1bXBfbWFueV90aHJlYWRzYF9zdGFydAorCisyIFVOUEFSS0VEIDxOT05FPiAxCitsaWJjLnNvLjFgc2xlZXAKK2NvcmVkdW1wX21hbnlfdGhyZWFkc2B0aHJlYWRfZnVuYzIKK2xpYmMuc28uMWBfdGhycF9zZXR1cAorbGliYy5zby4xYF9sd3Bfc3RhcnQKKworMyBVTlBBUktFRCA8Tk9ORT4gMQorbGliYy5zby4xYHNsZWVwCitjb3JlZHVtcF9tYW55X3RocmVhZHNgdGhyZWFkX2Z1bmMzCitsaWJjLnNvLjFgX3RocnBfc2V0dXAKK2xpYmMuc28uMWBfbHdwX3N0YXJ0CisKKzQgVU5QQVJLRUQgPE5PTkU+IDEKK2xpYmMuc28uMWBzbGVlcAorY29yZWR1bXBfbWFueV90aHJlYWRzYHRocmVhZF9mdW5jNAorbGliYy5zby4xYF90aHJwX3NldHVwCitsaWJjLnNvLjFgX2x3cF9zdGFydAorCis2IFVOUEFSS0VEIDxOT05FPiAxCitsaWJjLnNvLjFgc2xlZXAKK2NvcmVkdW1wX21hbnlfdGhyZWFkc2B0aHJlYWRfZnVuYzYKK2xpYmMuc28uMWBfdGhycF9zZXR1cAorbGliYy5zby4xYF9sd3Bfc3RhcnQKKworNyBVTlBBUktFRCA8Tk9ORT4gMQorbGliYy5zby4xYHNsZWVwCitjb3JlZHVtcF9tYW55X3RocmVhZHNgdGhyZWFkX2Z1bmM3CitsaWJjLnNvLjFgX3RocnBfc2V0dXAKK2xpYmMuc28uMWBfbHdwX3N0YXJ0CisKKzggVU5QQVJLRUQgPE5PTkU+IDEKK2xpYmMuc28uMWBzbGVlcAorY29yZWR1bXBfbWFueV90aHJlYWRzYHRocmVhZF9mdW5jOAorbGliYy5zby4xYF90aHJwX3NldHVwCitsaWJjLnNvLjFgX2x3cF9zdGFydAorCis5IFVOUEFSS0VEIDxOT05FPiAxCitsaWJjLnNvLjFgc2xlZXAKK2NvcmVkdW1wX21hbnlfdGhyZWFkc2B0aHJlYWRfZnVuYzkKK2xpYmMuc28uMWBfdGhycF9zZXR1cAorbGliYy5zby4xYF9sd3Bfc3RhcnQKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2NvcmVkdW1wX21hbnlfdGhyZWFkcy5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2NvcmVkdW1wX21hbnlfdGhyZWFkcy5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZmRmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29yZWR1bXBfbWFueV90aHJlYWRzLnN0ZGVyci5leHAKQEAgLTAsMCArMSwxMSBAQAorCitQcm9jZXNzIHRlcm1pbmF0aW5nIHdpdGggZGVmYXVsdCBhY3Rpb24gb2Ygc2lnbmFsIDExIChTSUdTRUdWKQorIEFjY2VzcyBub3Qgd2l0aGluIG1hcHBlZCByZWdpb24gYXQgYWRkcmVzcyAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiB0aHJlYWRfZnVuYzUgKGNvcmVkdW1wX21hbnlfdGhyZWFkcy5jOjQwKQorICAgYnkgMHguLi4uLi4uLjogX3RocnBfc2V0dXAgKGluIC8uLi5saWJjLi4uKQorICAgYnkgMHguLi4uLi4uLjogPz8/IChpbiAvLi4ubGliYy4uLikKKyBJZiB5b3UgYmVsaWV2ZSB0aGlzIGhhcHBlbmVkIGFzIGEgcmVzdWx0IG9mIGEgc3RhY2sKKyBvdmVyZmxvdyBpbiB5b3VyIHByb2dyYW0ncyBtYWluIHRocmVhZCAodW5saWtlbHkgYnV0CisgcG9zc2libGUpLCB5b3UgY2FuIHRyeSB0byBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUKKyBtYWluIHRocmVhZCBzdGFjayB1c2luZyB0aGUgLS1tYWluLXN0YWNrc2l6ZT0gZmxhZy4KKyBUaGUgbWFpbiB0aHJlYWQgc3RhY2sgc2l6ZSB1c2VkIGluIHRoaXMgcnVuIHdhcyAuLi4uCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvY29yZWR1bXBfbWFueV90aHJlYWRzLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9jb3JlZHVtcF9tYW55X3RocmVhZHMudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwNzc1MWIKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvY29yZWR1bXBfbWFueV90aHJlYWRzLnZndGVzdApAQCAtMCwwICsxLDYgQEAKK3ByZXJlcTogcm0gLWYgdmdjb3JlLioKK3Byb2c6IGNvcmVkdW1wX21hbnlfdGhyZWFkcwordmdvcHRzOiAtcQorc3RkZXJyX2ZpbHRlcjogLi9maWx0ZXJfY29yZWR1bXBfbWFueV90aHJlYWRzX3N0ZGVycgorcG9zdDogLi9maWx0ZXJfY29yZWR1bXBfbWFueV90aHJlYWRzX3Bvc3QKK2NsZWFudXA6IHJtIC1mIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX2NvcmVkdW1wX21hbnlfdGhyZWFkc19wb3N0IGIvbm9uZS90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9jb3JlZHVtcF9tYW55X3RocmVhZHNfcG9zdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YTg5M2EyCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9jb3JlZHVtcF9tYW55X3RocmVhZHNfcG9zdApAQCAtMCwwICsxLDE4IEBACisjIS9iaW4vc2gKKworIyBGaWx0ZXJzIGFyZSBub3QgcnVuIGZvciBwb3N0LXRlc3QgY2hlY2sgY29tbWFuZHMuCisjIEZpbHRlciBldmVyeXRoaW5nIGhlcmUuCisKK2VjaG8gIi0tLVN0YXR1cy0tLSIKK2VjaG8gIjo6c3RhdHVzIiB8IC91c3IvYmluL21kYiB2Z2NvcmUuKiB8IFwKK3BlcmwgLXAgLWUgJ3MvXCguKlwpIGZyb20gXFMqJC9mcm9tIC4uLi8nIHwgXAorcGVybCAtMCAtcCAtZSAncy9eZmlsZTogLis/Xihpbml0aWFsIGFyZ3Y6KS8kMS9tcycgfCBcCitwZXJsIC1wIC1lICdzL2FkZHI9WzAtOUEtRmEtZl0rL2FkZHI9Li4uLi4uLi4vZycKKworZWNobyAiXG4tLS1TdGFja3MtLS0iCitlY2hvICI6OnN0YWNrcyAhIHBlcmwgLXAgLWUgJ3MvXihcUyspXCsuKi9cJDEvZyciIHwgL3Vzci9iaW4vbWRiIHZnY29yZS4qIHwgXAorcGVybCAtcCAtZSAncy9eKFRIUkVBRClccysoU1RBVEUpXHMrKFNPQkopXHMrKENPVU5UKVxzKiQvJDEgJDIgJDMgJDRcbi8nIHwgXAorcGVybCAtcCAtZSAncy9eKFxkKylccysoVU5QQVJLRUQpXHMrKFxTKylccysoXGQrKS8kMSAkMiAkMyAkNC9nJyB8IFwKK3BlcmwgLXAgLWUgJ3MvXlxzKmxpYmMuKi5zby4xL2xpYmMuc28uMS9nJyB8IFwKK3BlcmwgLXAgLWUgJ3MvXlxzKihjb3JlZHVtcF9tYW55X3RocmVhZHMpLyQxL2cnIHwgXAorcGVybCAtcCAtZSAncy9cKzB4WzAtOUEtRmEtZl0rLy9nJwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9jb3JlZHVtcF9tYW55X3RocmVhZHNfc3RkZXJyIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9jb3JlZHVtcF9tYW55X3RocmVhZHNfc3RkZXJyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ0OTU1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX2NvcmVkdW1wX21hbnlfdGhyZWFkc19zdGRlcnIKQEAgLTAsMCArMSw3IEBACisjISAvYmluL3NoCisKKyMgU29tZXRpbWVzIHZhbGdyaW5kIG9uIGFtZDY0IHByaW50cyBzbXRfcGF1c2UoKSBpbnN0ZWFkIG9mID8/PworIyBmb3IgdGhlIHRvcC1tb3N0IHN0YWNrIGZyYW1lLiBGaWx0ZXIgaXQgaGVyZS4KKworLi9maWx0ZXJfc3RkZXJyIHwgXAorc2VkIC1lICdzL3NtdF9wYXVzZS8/Pz8vJwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zdGRlcnIgYi9ub25lL3Rlc3RzL3NvbGFyaXMvZmlsdGVyX3N0ZGVycgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYWU5MzEzCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL2ZpbHRlcl9zdGRlcnIKQEAgLTAsMCArMSwzIEBACisjISAvYmluL3NoCisKKy4uL2ZpbHRlcl9zdGRlcnIKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9tbWFwX25vcmVzZXJ2ZS5jIGIvbm9uZS90ZXN0cy9zb2xhcmlzL21tYXBfbm9yZXNlcnZlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc1ZTk1MQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9tbWFwX25vcmVzZXJ2ZS5jCkBAIC0wLDAgKzEsOTAgQEAKKy8qIE1hcHMgc2V2ZXJhbCBwYWdlcyB3aXRoIG9yIHdpdGhvdXQgTUFQX05PUkVTRVZFLgorICAgTWFwcGluZ3Mgd2l0aCBNQVBfTk9SRVNFVkUgZG8gbm90IHNob3cgaW4gL3Byb2Mvc2VsZi94bWFwCisgICAob25seSBpbiAvcHJvYy9zZWxmL3JtYXApIHVudGlsIHRoZXkgYWN0dWFsbHkgbWF0ZXJpYWxpemUuCisgICBWZXJ5IG5pY2UgZnJvbSBTb2xhcmlzIGtlcm5lbCA6LSgKKyAqLworCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHdhaXQuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorCitzdGF0aWMgdm9pZCAqZG9fbWFwKGludCBmbGFncykKK3sKKyAgIGZsYWdzIHw9IE1BUF9QUklWQVRFIHwgTUFQX0FOT047CisgICB2b2lkICphZGRyID0gbW1hcCgwLCBQQUdFU0laRSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgZmxhZ3MsIC0xLCAwKTsKKyAgIGlmIChhZGRyID09IE5VTEwpIHsKKyAgICAgIHBlcnJvcigibW1hcCIpOworICAgICAgZXhpdCgxKTsKKyAgIH0gZWxzZSB7CisgICAgICByZXR1cm4gYWRkcjsKKyAgIH0KK30KKworc3RhdGljIHZvaWQgKmRvX2Rsb3Blbihjb25zdCBjaGFyICpwYXRobmFtZSkKK3sKKyAgIGludCBtb2RlID0gUlRMRF9MQVpZIHwgUlRMRF9MT0NBTDsKKyAgIHZvaWQgKmhhbmRsZSA9IGRsb3BlbihwYXRobmFtZSwgbW9kZSk7CisgICBpZiAoaGFuZGxlID09IE5VTEwpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAiZGxvcGVuIGZhaWxlZCBmb3IgJXM6ICVzIiwKKyAgICAgICAgICAgICAgcGF0aG5hbWUsIGRsZXJyb3IoKSk7CisgICAgICBleGl0KDEpOworICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBoYW5kbGU7CisgICB9Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCit7CisgICBkb19tYXAoTUFQX05PUkVTRVJWRSk7CisgICBkb19kbG9wZW4oImxpYm0uc28iKTsKKyAgIGRvX21hcCgwKTsKKyAgIGRvX21hcCgwKTsKKyAgIGRvX21hcChNQVBfTk9SRVNFUlZFKTsKKyAgIGRvX2Rsb3BlbigibGlieS5zbyIpOworICAgZG9fbWFwKE1BUF9OT1JFU0VSVkUpOworICAgZG9fbWFwKDApOworICAgZG9fbWFwKDApOworICAgZG9fbWFwKE1BUF9OT1JFU0VSVkUpOworICAgZG9fbWFwKE1BUF9OT1JFU0VSVkUpOworICAgZG9fZGxvcGVuKCJsaWJ6LnNvIik7CisgICBkb19tYXAoTUFQX05PUkVTRVJWRSk7CisgICBkb19tYXAoTUFQX05PUkVTRVJWRSk7CisgICBkb19tYXAoMCk7CisKKyAgIHBpZF90IHBpZCA9IGZvcmsoKTsKKyAgIGlmIChwaWQgPT0gLTEpIHsKKyAgICAgIHBlcnJvcigiZm9yayIpOworICAgICAgZXhpdCgxKTsKKyAgIH0KKworICAgaWYgKHBpZCA9PSAwKSB7CisgICAgICBkb19tYXAoTUFQX05PUkVTRVJWRSk7CisgICAgICBkb19tYXAoMCk7CisgICAgICBkb19tYXAoMCk7CisgICAgICBkb19kbG9wZW4oImxpYncuc28iKTsKKyAgICAgIGRvX21hcCgwKTsKKyAgICAgIGRvX21hcChNQVBfTk9SRVNFUlZFKTsKKyAgICAgIGRvX21hcChNQVBfTk9SRVNFUlZFKTsKKyAgICAgIGRvX21hcCgwKTsKKyAgICAgIHByaW50ZigiQ0hJTEQ6IFBBU1NFRFxuIik7CisgICAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICAgIHJldHVybiAwOworICAgfQorCisgICBpbnQgc3RhdHVzOworICAgaWYgKHdhaXRwaWQocGlkLCAmc3RhdHVzLCAwKSAhPSBwaWQpIHsKKyAgICAgIHBlcnJvcigid2FpdHBpZCIpOworICAgfSBlbHNlIGlmICgoV0lGRVhJVEVEKHN0YXR1cykgIT0gMCkgJiYgKFdFWElUU1RBVFVTKHN0YXR1cykgPT0gMCkpIHsKKyAgICAgIHByaW50ZigiUEFTU0VEXG4iKTsKKyAgIH0gZWxzZSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZBSUxFRDogY2hpbGQgZXhpdGVkIHdpdGggdW5leHBlY3RlZCBzdGF0dXMgJXMgJWRcbiIsCisgICAgICAgICAgICAgIFdJRkVYSVRFRChzdGF0dXMpID8gImV4aXQiIDogInNpZ25hbCIsIAorICAgICAgICAgICAgICBXSUZFWElURUQoc3RhdHVzKSA/IFdFWElUU1RBVFVTKHN0YXR1cykgOiBXVEVSTVNJRyhzdGF0dXMpKTsKKyAgIH0KKworICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvbW1hcF9ub3Jlc2VydmUuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMvc29sYXJpcy9tbWFwX25vcmVzZXJ2ZS5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvbW1hcF9ub3Jlc2VydmUuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9tbWFwX25vcmVzZXJ2ZS5zdGRvdXQuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0ZWE3ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvbW1hcF9ub3Jlc2VydmUuc3Rkb3V0LmV4cApAQCAtMCwwICsxLDIgQEAKK0NISUxEOiBQQVNTRUQKK1BBU1NFRApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL21tYXBfbm9yZXNlcnZlLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9tbWFwX25vcmVzZXJ2ZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE1YzI2MAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9tbWFwX25vcmVzZXJ2ZS52Z3Rlc3QKQEAgLTAsMCArMSwzIEBACitwcm9nOiBtbWFwX25vcmVzZXJ2ZQordmdvcHRzOiAtcSAtLXNhbml0eS1sZXZlbD0zCitzdGRlcnJfZmlsdGVyOiBmaWx0ZXJfc3RkZXJyCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcG9zaXhfc3Bhd24uYyBiL25vbmUvdGVzdHMvc29sYXJpcy9wb3NpeF9zcGF3bi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzN2VjZDEKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcG9zaXhfc3Bhd24uYwpAQCAtMCwwICsxLDU0IEBACisvKiBUZXN0IHRoYXQgYW4gZXJyb3IgZnJvbSBwb3NpeF9zcGF3bigpIGlzIGNvcnJlY3RseSBwcm9wYWdhdGVkIHRvIHRoZQorICAgcGFyZW50LiAqLworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHNwYXduLmg+CisKK2ludCBtYWluKHZvaWQpCit7CisgICBpbnQgcmVzID0gMTsKKyAgIGludCBlcnI7CisgICBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfdCBmaWxlX2FjdGlvbnM7CisgICBjaGFyICphcmd2X2V4ZVtdID0geyJ0cnVlIiwgTlVMTH07CisgICBjaGFyICplbnZ2X2V4ZVtdID0ge05VTEx9OworCisgICBlcnIgPSBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfaW5pdCgmZmlsZV9hY3Rpb25zKTsKKyAgIGlmIChlcnIgIT0gMCkgeworICAgICAgZXJybm8gPSBlcnI7CisgICAgICBwZXJyb3IoInBvc2l4X3NwYXduX2ZpbGVfYWN0aW9uc19pbml0Iik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgZXJyID0gcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZGR1cDIoJmZpbGVfYWN0aW9ucywgMywgNCk7CisgICBpZiAoZXJyICE9IDApIHsKKyAgICAgIGVycm5vID0gZXJyOworICAgICAgcGVycm9yKCJwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfYWRkZHVwMiIpOworICAgICAgZ290byBvdXQ7CisgICB9CisKKyAgIC8qIFRoZSBmb2xsb3dpbmcgY2FsbCB0byBwb3NpeF9zcGF3bigpIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHJlcXVlc3RlZAorICAgICAgZHVwMiBhY3Rpb24gY2Fubm90IGJlIHBlcmZvcm1lZC4gKi8KKyAgIGVyciA9IHBvc2l4X3NwYXduKE5VTEwsICIvYmluL3RydWUiLCAmZmlsZV9hY3Rpb25zLCBOVUxMLCBhcmd2X2V4ZSwKKyAgICAgICAgICAgICAgICAgICAgIGVudnZfZXhlKTsKKyAgIGlmIChlcnIgIT0gMCkgeworICAgICAgZXJybm8gPSBlcnI7CisgICAgICBwZXJyb3IoInBvc2l4X3NwYXduIik7CisgICAgICBnb3RvIG91dDsKKyAgIH0KKworICAgcmVzID0gMDsKKworb3V0OgorICAgZXJyID0gcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2Rlc3Ryb3koJmZpbGVfYWN0aW9ucyk7CisgICBpZiAoZXJyICE9IDApIHsKKyAgICAgIGVycm5vID0gZXJyOworICAgICAgcGVycm9yKCJwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfZGVzdHJveSIpOworICAgICAgcmVzID0gMTsKKyAgIH0KKworICAgcmV0dXJuIHJlczsKK30KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3Bvc2l4X3NwYXduLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcG9zaXhfc3Bhd24uc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTdlOWNmCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Bvc2l4X3NwYXduLnN0ZGVyci5leHAKQEAgLTAsMCArMSBAQAorcG9zaXhfc3Bhd246IEJhZCBmaWxlIG51bWJlcgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Bvc2l4X3NwYXduLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvcG9zaXhfc3Bhd24uc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3Bvc2l4X3NwYXduLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9wb3NpeF9zcGF3bi52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhmN2ZkZAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wb3NpeF9zcGF3bi52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBwb3NpeF9zcGF3bgordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2MtY21kbGluZS1leGUuc3RkZXJyLmV4cC13aXRoLWNtZGxpbmUgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvYy1jbWRsaW5lLWV4ZS5zdGRlcnIuZXhwLXdpdGgtY21kbGluZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmQ2ZjEzCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2MtY21kbGluZS1leGUuc3RkZXJyLmV4cC13aXRoLWNtZGxpbmUKQEAgLTAsMCArMSwxMCBAQAorCisvcHJvYy9zZWxmL2NtZGxpbmU6CisuLy4uL3Byb2Nmcy1jbWRsaW5lLWV4ZVwwYXJnMVwwYXJnIDJcMGFyZzNcMAorL3Byb2MvPHBpZD4vY21kbGluZToKKy4vLi4vcHJvY2ZzLWNtZGxpbmUtZXhlXDBhcmcxXDBhcmcgMlwwYXJnM1wwCityZWFkbGluazogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorcmVhZGxpbms6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK3JlYWRsaW5rYXQ6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK3JlYWRsaW5rYXQ6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2MtY21kbGluZS1leGUuc3RkZXJyLmV4cC13aXRob3V0LWNtZGxpbmUgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvYy1jbWRsaW5lLWV4ZS5zdGRlcnIuZXhwLXdpdGhvdXQtY21kbGluZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDY1NmY3Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2MtY21kbGluZS1leGUuc3RkZXJyLmV4cC13aXRob3V0LWNtZGxpbmUKQEAgLTAsMCArMSwxMCBAQAorCisvcHJvYy9zZWxmL2NtZGxpbmU6CitvcGVuKCk6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKKy9wcm9jLzxwaWQ+L2NtZGxpbmU6CitvcGVuKCk6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK3JlYWRsaW5rOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CityZWFkbGluazogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorcmVhZGxpbmthdDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorcmVhZGxpbmthdDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvYy1jbWRsaW5lLWV4ZS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvYy1jbWRsaW5lLWV4ZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE3ZGQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jLWNtZGxpbmUtZXhlLnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3Byb2c6IC4uL3Byb2Nmcy1jbWRsaW5lLWV4ZQorYXJnczogYXJnMSAiYXJnIDIiIGFyZzMKK3N0ZGVycl9maWx0ZXI6IGZpbHRlcl9zdGRlcnIKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2FvdXQuYyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2FvdXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzI0MjZlCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYW91dC5jCkBAIC0wLDAgKzEsNzEgQEAKKy8qIFRlc3Qgd2hldGhlciAvcHJvYy97c2VsZiwkUElEfS9wYXRoL2Eub3V0IGlzIGNvcnJlY3RseSBzaW11bGF0ZWQuICovCisKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZ3MuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvZmNudGwuaD4KKworc3RhdGljIHZvaWQgdGVzdF9yZWFkbGluayhjb25zdCBjaGFyICpjd2QsIGNvbnN0IGNoYXIgKmxhYmVsLAorICAgICAgY29uc3QgY2hhciAqcGF0aCkKK3sKKyAgIGNoYXIgYnVmW1BBVEhfTUFYXTsKKyAgIGludCBuOworCisgICBpZiAoKG4gPSByZWFkbGluayhwYXRoLCBidWYsIHNpemVvZihidWYpIC0gMSkpID49IDApIHsKKyAgICAgIGNvbnN0IGNoYXIgKnA7CisgICAgICBzaXplX3QgbGVuID0gc3RybGVuKGN3ZCk7CisKKyAgICAgIGJ1ZltuXSA9ICdcMCc7CisKKyAgICAgIHAgPSBidWY7CisgICAgICBpZiAoIXN0cm5jbXAoYnVmLCBjd2QsIGxlbikpCisgICAgICAgICBwICs9IGxlbjsKKyAgICAgIHByaW50ZigiUmVzdWx0IG9mIHJlYWRsaW5rKFwiJXNcIik6ICVzXG4iLCBsYWJlbCwgcCk7CisgICB9CisgICBlbHNlCisgICAgICBwZXJyb3IoInJlYWRsaW5rIik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfcmVhZGxpbmthdChjb25zdCBjaGFyICpjd2QsIGNvbnN0IGNoYXIgKmxhYmVsLAorICAgICAgY29uc3QgY2hhciAqcGF0aCkKK3sKKyAgIGNoYXIgYnVmW1BBVEhfTUFYXTsKKyAgIGludCBuOworCisgICBpZiAoKG4gPSByZWFkbGlua2F0KEFUX0ZEQ1dELCBwYXRoLCBidWYsIHNpemVvZihidWYpIC0gMSkpID49IDApIHsKKyAgICAgIGNvbnN0IGNoYXIgKnA7CisgICAgICBzaXplX3QgbGVuID0gc3RybGVuKGN3ZCk7CisKKyAgICAgIGJ1ZltuXSA9ICdcMCc7CisKKyAgICAgIHAgPSBidWY7CisgICAgICBpZiAoIXN0cm5jbXAoYnVmLCBjd2QsIGxlbikpCisgICAgICAgICBwICs9IGxlbjsKKyAgICAgIHByaW50ZigiUmVzdWx0IG9mIHJlYWRsaW5rYXQoXCIlc1wiKTogJXNcbiIsIGxhYmVsLCBwKTsKKyAgIH0KKyAgIGVsc2UKKyAgICAgIHBlcnJvcigicmVhZGxpbmthdCIpOworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgY2hhciBjd2RbUEFUSF9NQVhdOworICAgY2hhciBwYXRoW1BBVEhfTUFYXTsKKworICAgY3dkWzBdID0gJ1wwJzsKKyAgIGlmICghZ2V0Y3dkKGN3ZCwgc2l6ZW9mKGN3ZCkgLSAxKSkgLyogJy0xJyB0byBtYWtlIHJvb20gZm9yICcvJyAqLworICAgICAgcGVycm9yKCJnZXRjd2QiKTsKKyAgIHN0cmNhdChjd2QsICIvIik7CisKKyAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIi9wcm9jLyVsZC9wYXRoL2Eub3V0IiwgKGxvbmcpZ2V0cGlkKCkpOworCisgICB0ZXN0X3JlYWRsaW5rKGN3ZCwgIi9wcm9jL3NlbGYvcGF0aC9hLm91dCIsICIvcHJvYy9zZWxmL3BhdGgvYS5vdXQiKTsKKyAgIHRlc3RfcmVhZGxpbmsoY3dkLCAiL3Byb2MvPHBpZD4vcGF0aC9hLm91dCIsIHBhdGgpOworCisgICB0ZXN0X3JlYWRsaW5rYXQoY3dkLCAiL3Byb2Mvc2VsZi9wYXRoL2Eub3V0IiwgIi9wcm9jL3NlbGYvcGF0aC9hLm91dCIpOworICAgdGVzdF9yZWFkbGlua2F0KGN3ZCwgIi9wcm9jLzxwaWQ+L3BhdGgvYS5vdXQiLCBwYXRoKTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2FvdXQuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2FvdXQuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYW91dC5zdGRvdXQuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYW91dC5zdGRvdXQuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5ZjNlMDEKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hb3V0LnN0ZG91dC5leHAKQEAgLTAsMCArMSw0IEBACitSZXN1bHQgb2YgcmVhZGxpbmsoIi9wcm9jL3NlbGYvcGF0aC9hLm91dCIpOiBwcm9jX2FvdXQKK1Jlc3VsdCBvZiByZWFkbGluaygiL3Byb2MvPHBpZD4vcGF0aC9hLm91dCIpOiBwcm9jX2FvdXQKK1Jlc3VsdCBvZiByZWFkbGlua2F0KCIvcHJvYy9zZWxmL3BhdGgvYS5vdXQiKTogcHJvY19hb3V0CitSZXN1bHQgb2YgcmVhZGxpbmthdCgiL3Byb2MvPHBpZD4vcGF0aC9hLm91dCIpOiBwcm9jX2FvdXQKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2FvdXQudmd0ZXN0IGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYW91dC52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYwZTc1OAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2FvdXQudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogcHJvY19hb3V0Cit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hdXh2LmMgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hdXh2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFmOGY1NwotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2F1eHYuYwpAQCAtMCwwICsxLDkxIEBACisvKiBUZXN0IGlmIC9wcm9jL3tzZWxmLCRQSUR9L2F1eHYgaXMgY29ycmVjdGx5IHNpbXVsYXRlZCBhbmQgdGhhdCB0aGUgYXV4CisgICB2ZWN0b3IgY29udGFpbnMgcGxhdXNpYmxlIHZhbHVlcy4gKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvYXV4di5oPgorI2luY2x1ZGUgPHN5cy9mY250bC5oPgorCitzdGF0aWMgaW50IGNoZWNrX2ZpbGUoY29uc3QgY2hhciAqcGF0aCwgYXV4dl90ICphdXh2KQoreworICAgYXV4dl90IHJhdXh2OworICAgaW50IHJlcyA9IDE7CisgICBGSUxFICpmaTsKKworICAgaWYgKCEoZmkgPSBmb3BlbihwYXRoLCAiciIpKSkgeworICAgICAgcGVycm9yKCJmb3BlbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisgICB3aGlsZSAoMSkgeworICAgICAgaWYgKGZyZWFkKCZyYXV4diwgc2l6ZW9mKHJhdXh2KSwgMSwgZmkpICE9IDEpIHsKKyAgICAgICAgIGlmIChmZXJyb3IoZmkpKSB7CisgICAgICAgICAgICBwZXJyb3IoImZyZWFkIik7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgIH0KKyAgICAgICAgIGZwcmludGYoc3RkZXJyLCAidW5leHBlY3RlZCBFT0ZcbiIpOworICAgICAgICAgZ290byBvdXQ7CisgICAgICB9CisgICAgICBpZiAobWVtY21wKGF1eHYsICZyYXV4diwgc2l6ZW9mKHJhdXh2KSkpIHsKKyAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiaW5jb3JyZWN0IGF1eHYgaW4gJXNcbiIsIHBhdGgpOworICAgICAgICAgZnByaW50ZihzdGRlcnIsICJleHBlY3RlZDogdHlwZT0lZCwgdmFsPSVsZFxuIiwgYXV4di0+YV90eXBlLAorICAgICAgICAgICAgICAgICBhdXh2LT5hX3VuLmFfdmFsKTsKKyAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ290OiB0eXBlPSVkLCB2YWw9JWxkXG4iLCByYXV4di5hX3R5cGUsCisgICAgICAgICAgICAgICAgIHJhdXh2LmFfdW4uYV92YWwpOworICAgICAgICAgZ290byBvdXQ7CisgICAgICB9CisKKyAgICAgIGlmIChhdXh2LT5hX3R5cGUgPT0gQVRfTlVMTCkKKyAgICAgICAgIGJyZWFrOworCisgICAgICBhdXh2Kys7CisgICB9CisKKyAgIHJlcyA9IDA7CisKK291dDoKKyAgIGZjbG9zZShmaSk7CisgICByZXR1cm4gcmVzOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBjaGFyICplbnZwW10pCit7CisgICBhdXh2X3QgKmF1eHY7CisgICBjaGFyIGJ1ZlsxMjhdOworCisgICAvKiBGaW5kIGF1eCB2ZWN0b3IuICovCisgICB3aGlsZSAoKmVudnApCisgICAgICBlbnZwKys7CisgICBhdXh2ID0gKGF1eHZfdCopKGVudnAgKyAxKTsKKworICAgLyogL3Byb2Mvc2VsZi9hdXh2IGNoZWNrICovCisgICBpZiAoY2hlY2tfZmlsZSgiL3Byb2Mvc2VsZi9hdXh2IiwgYXV4dikpCisgICAgICByZXR1cm4gMTsKKworICAgLyogL3Byb2MvJFBJRC9hdXh2IGNoZWNrICovCisgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiL3Byb2MvJWxkL2F1eHYiLCAobG9uZylnZXRwaWQoKSk7CisgICBpZiAoY2hlY2tfZmlsZShidWYsIGF1eHYpKQorICAgICAgcmV0dXJuIDE7CisKKyAgIC8qIEFUX1NVTl9FWEVDTkFNRSBjaGVjayAqLworICAgd2hpbGUgKGF1eHYtPmFfdHlwZSAhPSBBVF9OVUxMKSB7CisgICAgICBpZiAoYXV4di0+YV90eXBlID09IEFUX1NVTl9FWEVDTkFNRSkgeworICAgICAgICAgY29uc3QgY2hhciAqZXhlY25hbWUgPSBhdXh2LT5hX3VuLmFfcHRyOworICAgICAgICAgaWYgKCFleGVjbmFtZSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJBVF9TVU5fRVhFQ05BTUUgaXMgbnVsbFxuIik7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgIH0KKyAgICAgICAgIGlmIChhY2Nlc3MoZXhlY25hbWUsIFJfT0sgfCBYX09LKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJBVF9TVU5fRVhFQ05BTUUgKCVzKSBpcyBpbnZhbGlkOiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgZXhlY25hbWUsIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgYXV4disrOworICAgfQorCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYXV4di5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYXV4di5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hdXh2LnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hdXh2LnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2F1eHYudmd0ZXN0IGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYXV4di52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYzYTAwOQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2F1eHYudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogcHJvY19hdXh2Cit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hdXh2X211bHRpcGxlLmMgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hdXh2X211bHRpcGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAzZGJiNAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2F1eHZfbXVsdGlwbGUuYwpAQCAtMCwwICsxLDkxIEBACisvKiBUZXN0IHRoYXQgL3Byb2Mve3NlbGYsJFBJRH0vYXV4diBjYW4gYmUgb3BlbmVkIGFuZCByZWFkIHNpbXVsdGFuZW91c2x5CisgICB1c2luZyB0d28gZGlmZmVyZW50IGZpbGUgZGVzY3JpcHRvcnMuICovCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvYXV4di5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKy8qIFJlYWRzIG9uZSBhdXh2X3QgZW50cnkgZnJvbSB0aGUgaW5wdXQgZmlsZS4gKi8KK2ludCByZWFkX2VudHJ5KGludCBmaSwgYXV4dl90ICpvdXQpCit7CisgICBzaXplX3QgdG9yZWFkID0gc2l6ZW9mKCpvdXQpOworICAgY2hhciAqcHRyID0gKGNoYXIqKW91dDsKKworICAgd2hpbGUgKHRvcmVhZCkgeworICAgICAgc3NpemVfdCByOworCisgICAgICByID0gcmVhZChmaSwgcHRyLCB0b3JlYWQpOworICAgICAgaWYgKHIgPT0gMCkgeworICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1bmV4cGVjdGVkIEVPRlxuIik7CisgICAgICAgICByZXR1cm4gMTsKKyAgICAgIH0KKyAgICAgIGlmIChyID09IC0xKSB7CisgICAgICAgICBwZXJyb3IoInJlYWQiKTsKKyAgICAgICAgIHJldHVybiAxOworICAgICAgfQorCisgICAgICBwdHIgKz0gcjsKKyAgICAgIHRvcmVhZCAtPSByOworCisgICAgICBhc3NlcnQodG9yZWFkID49IDApOworICAgfQorCisgICByZXR1cm4gMDsKK30KKworaW50IG1haW4odm9pZCkKK3sKKyAgIGF1eHZfdCB2ZWN0b3JbMl1bNF07CisgICBpbnQgZmlbMl0gPSB7LTEsIC0xfTsKKyAgIHNpemVfdCBpOworICAgaW50IHJlcyA9IDE7CisKKyAgIC8qIE9wZW4gdGhlIGZpcnN0IGlucHV0IGZpbGUuICovCisgICBpZiAoKGZpWzBdID0gb3BlbigiL3Byb2Mvc2VsZi9hdXh2IiwgT19SRE9OTFkpKSA9PSAtMSkgeworICAgICAgcGVycm9yKCJvcGVuIik7CisgICAgICBnb3RvIG91dDsKKyAgIH0KKworICAgLyogUmVhZCB0aGUgZmlyc3QgdHdvIGVudHJpZXMgZnJvbSB0aGUgZmlyc3QgZmlsZS4gKi8KKyAgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspCisgICAgICBpZiAocmVhZF9lbnRyeShmaVswXSwgJnZlY3RvclswXVtpXSkpCisgICAgICAgICBnb3RvIG91dDsKKworICAgLyogT3BlbiB0aGUgc2Vjb25kIGlucHV0IGZpbGUuICovCisgICBpZiAoKGZpWzFdID0gb3BlbigiL3Byb2Mvc2VsZi9hdXh2IiwgT19SRE9OTFkpKSA9PSAtMSkgeworICAgICAgcGVycm9yKCJvcGVuIik7CisgICAgICBnb3RvIG91dDsKKyAgIH0KKworICAgLyogUmVhZCB0aGUgZmlyc3QgdHdvIGVudHJpZXMgZnJvbSB0aGUgZmlyc3QgZmlsZS4gKi8KKyAgIGZvciAoaSA9IDI7IGkgPCA0OyBpKyspCisgICAgICBpZiAocmVhZF9lbnRyeShmaVswXSwgJnZlY3RvclswXVtpXSkpCisgICAgICAgICBnb3RvIG91dDsKKworICAgLyogUmVhZCB0aGUgZmlyc3QgZm91ciBlbnRyaWVzIGZyb20gdGhlIHNlY29uZCBmaWxlLiAqLworICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKKyAgICAgIGlmIChyZWFkX2VudHJ5KGZpWzFdLCAmdmVjdG9yWzFdW2ldKSkKKyAgICAgICAgIGdvdG8gb3V0OworCisgICAvKiBDb21wYXJlIHJlYWQgdmVjdG9ycy4gKi8KKyAgIGlmIChtZW1jbXAodmVjdG9yWzBdLCB2ZWN0b3JbMV0sIDQgKiBzaXplb2YodmVjdG9yWzBdWzBdKSkpIHsKKyAgICAgIGZwcmludGYoc3RkZXJyLCAidmVjdG9ycyBkaWZmZXJcbiIpOworICAgICAgZ290byBvdXQ7CisgICB9CisKKyAgIHJlcyA9IDA7CisKK291dDoKKyAgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspCisgICAgICBpZiAoZmlbaV0gPj0gMCkKKyAgICAgICAgIGNsb3NlKGZpW2ldKTsKKworICAgcmV0dXJuIHJlczsKK30KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYXV4dl9tdWx0aXBsZS5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYXV4dl9tdWx0aXBsZS5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hdXh2X211bHRpcGxlLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19hdXh2X211bHRpcGxlLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2F1eHZfbXVsdGlwbGUudmd0ZXN0IGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfYXV4dl9tdWx0aXBsZS52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhkYmRiNwotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX2F1eHZfbXVsdGlwbGUudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogcHJvY19hdXh2X211bHRpcGxlCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19wc2luZm8uYyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX3BzaW5mby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNDEwOWYKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHJvY19wc2luZm8uYwpAQCAtMCwwICsxLDY5IEBACisvKgorICogUmVhZHMgL3Byb2Mvc2VsZi9wc2luZm8gc3VjaCB0aGF0IGl0IGNhbiBiZSB0ZXN0ZWQgd2hldGhlciBWYWxncmluZAorICogaW50ZXJjZXB0cyB0aGUgc3lzdGVtIGNhbGxzIHRoYXQgYWNjZXNzIHRoaXMgcHNldWRvLWZpbGUuCisgKi8KKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8cHJvY2ZzLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworc3RhdGljIHZvaWQgdGVzdF9wc2luZm8oaW50IG9wLCBjb25zdCBjaGFyICpsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhdGgpCit7CisgICBpbnQgZmQ7CisgICBpZiAob3AgPT0gMCkgeworICAgICAgcHJpbnRmKCJvcGVuIGZvciAlczpcbiIsIGxhYmVsKTsKKworICAgICAgZmQgPSBvcGVuKHBhdGgsIE9fUkRPTkxZKTsgCisgICAgICBpZiAoZmQgPCAwKSB7CisgICAgICAgICBwZXJyb3IoIm9wZW4iKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgIH0gZWxzZSB7CisgICAgICBwcmludGYoIm9wZW5hdCBmb3IgJXM6XG4iLCBsYWJlbCk7CisKKyAgICAgIGZkID0gb3BlbmF0KEFUX0ZEQ1dELCBwYXRoLCBPX1JET05MWSk7CisgICAgICBpZiAoZmQgPCAwKSB7CisgICAgICAgICBwZXJyb3IoIm9wZW5hdCIpOworICAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgfQorCisgICBwc2luZm9fdCBwc2luZm87CisgICBzc2l6ZV90IGJ5dGVzID0gcmVhZChmZCwgJnBzaW5mbywgc2l6ZW9mKHBzaW5mbykpOworICAgaWYgKGJ5dGVzICE9IHNpemVvZihwc2luZm8pKSB7CisgICAgICBwZXJyb3IoInJlYWQiKTsKKyAgICAgIHJldHVybjsKKyAgIH0KKworICAgcHJpbnRmKCJmbmFtZTogJXNcbiIsIHBzaW5mby5wcl9mbmFtZSk7CisgICBwcmludGYoInBzYXJnczogJXNcbiIsIHBzaW5mby5wcl9wc2FyZ3MpOworCisgICBwcmludGYoImFyZ2M6ICVkXG4iLCBwc2luZm8ucHJfYXJnYyk7CisgICB1bnNpZ25lZCBpbnQgaTsKKyAgIGNoYXIgKiphcmd2ID0gKGNoYXIgKiopIHBzaW5mby5wcl9hcmd2OworICAgZm9yIChpID0gMDsgaSA8IHBzaW5mby5wcl9hcmdjOyBpKyspIHsKKyAgICAgIHByaW50ZigiYXJndlsldV06ICVzXG4iLCBpLCBhcmd2W2ldKTsKKyAgIH0KKworICAgY2xvc2UoZmQpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQoreworICAgY2hhciBwYXRoW1BBVEhfTUFYXTsKKyAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIi9wcm9jLyVsZC9wc2luZm8iLCAobG9uZyBpbnQpIGdldHBpZCgpKTsKKworICAgdGVzdF9wc2luZm8oMCwgIi9wcm9jL3NlbGYvcHNpbmZvIiwgIi9wcm9jL3NlbGYvcHNpbmZvIik7CisgICBwcmludGYoIlxuIik7CisgICB0ZXN0X3BzaW5mbygwLCAiL3Byb2MvPHBpZD4vcHNpbmZvIiwgcGF0aCk7CisgICBwcmludGYoIlxuIik7CisKKyAgIHRlc3RfcHNpbmZvKDEsICIvcHJvYy9zZWxmL3BzaW5mbyIsICIvcHJvYy9zZWxmL3BzaW5mbyIpOworICAgcHJpbnRmKCJcbiIpOworICAgdGVzdF9wc2luZm8oMSwgIi9wcm9jLzxwaWQ+L3BzaW5mbyIsIHBhdGgpOworCisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX3BzaW5mby5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfcHNpbmZvLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM5NTk3ZgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX3BzaW5mby5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMiBAQAorCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX3BzaW5mby5zdGRvdXQuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfcHNpbmZvLnN0ZG91dC5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM0ZjZjNgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX3BzaW5mby5zdGRvdXQuZXhwCkBAIC0wLDAgKzEsMzUgQEAKK29wZW4gZm9yIC9wcm9jL3NlbGYvcHNpbmZvOgorZm5hbWU6IHByb2NfcHNpbmZvCitwc2FyZ3M6IC4vcHJvY19wc2luZm8gYXJnMSBhcmcgMiBhcmczCithcmdjOiA0Cithcmd2WzBdOiAuL3Byb2NfcHNpbmZvCithcmd2WzFdOiBhcmcxCithcmd2WzJdOiBhcmcgMgorYXJndlszXTogYXJnMworCitvcGVuIGZvciAvcHJvYy88cGlkPi9wc2luZm86CitmbmFtZTogcHJvY19wc2luZm8KK3BzYXJnczogLi9wcm9jX3BzaW5mbyBhcmcxIGFyZyAyIGFyZzMKK2FyZ2M6IDQKK2FyZ3ZbMF06IC4vcHJvY19wc2luZm8KK2FyZ3ZbMV06IGFyZzEKK2FyZ3ZbMl06IGFyZyAyCithcmd2WzNdOiBhcmczCisKK29wZW5hdCBmb3IgL3Byb2Mvc2VsZi9wc2luZm86CitmbmFtZTogcHJvY19wc2luZm8KK3BzYXJnczogLi9wcm9jX3BzaW5mbyBhcmcxIGFyZyAyIGFyZzMKK2FyZ2M6IDQKK2FyZ3ZbMF06IC4vcHJvY19wc2luZm8KK2FyZ3ZbMV06IGFyZzEKK2FyZ3ZbMl06IGFyZyAyCithcmd2WzNdOiBhcmczCisKK29wZW5hdCBmb3IgL3Byb2MvPHBpZD4vcHNpbmZvOgorZm5hbWU6IHByb2NfcHNpbmZvCitwc2FyZ3M6IC4vcHJvY19wc2luZm8gYXJnMSBhcmcgMiBhcmczCithcmdjOiA0Cithcmd2WzBdOiAuL3Byb2NfcHNpbmZvCithcmd2WzFdOiBhcmcxCithcmd2WzJdOiBhcmcgMgorYXJndlszXTogYXJnMwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3Byb2NfcHNpbmZvLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX3BzaW5mby52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhmZGM4YwotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9wcm9jX3BzaW5mby52Z3Rlc3QKQEAgLTAsMCArMSwyIEBACitwcm9nOiBwcm9jX3BzaW5mbworYXJnczogYXJnMSAiYXJnIDIiIGFyZzMKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9wdGhyZWFkLXN0YWNrLmMgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHRocmVhZC1zdGFjay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNTg5YzQKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcHRocmVhZC1zdGFjay5jCkBAIC0wLDAgKzEsMTA0IEBACisvKiBUaGlzIHRlc3QgY2F1c2VzIGFuIGVycm9yIGluIDMuMTAuMSBhbmQgZWFybGllciB2ZXJzaW9ucyBsaWtlIHNvOgorCis9PTgzMzY9PSBDYW4ndCBleHRlbmQgc3RhY2sgdG8gMHg0MDMzZjk4IGR1cmluZyBzaWduYWwgZGVsaXZlcnkgZm9yIHRocmVhZCAyOgorPT04MzM2PT0gICBubyBzdGFjayBzZWdtZW50CisKKyAgVGhlIHJlYXNvbiB3YXMgdGhhdCBvbmx5IEFub25DIHNlZ21lbnRzIHdlcmUgY29uc2lkZXJlZCBhcyBzdGFjaworICBzZWdtZW50cy4gKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHNldGptcC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorCitzdGF0aWMgdm9sYXRpbGUgY2hhciAqbG93ZXN0X2o7CitzdGF0aWMgam1wX2J1ZiBnb2JhY2s7CisKK3N0YXRpYyB2b2lkIHNpZ3NlZ3ZfaGFuZGxlcihpbnQgc2lnbnIpCit7CisgICBsb25nam1wKGdvYmFjaywgMSk7Cit9CisKK3N0YXRpYyB2b2lkIGJhZF90aGluZ3NfdGlsbF9ndWFyZF9wYWdlKHZvaWQpCit7CisgICBmcHJpbnRmKHN0ZGVyciwgIi4uLiBkb2luZyBiYWQgdGhpbmdzIHRpbGwgZ3VhcmQgcGFnZVxuIik7CisgICBjaGFyIGogPSAwOworICAgY2hhciAqcCA9ICZqOworCisgICBmb3IgKDs7KSB7CisgICAgICBqID0gaiArICpwOworICAgICAgcCA9IHAgLSA0MDA7CisgICAgICBsb3dlc3RfaiA9IHA7CisgICB9Cit9CisKK3N0YXRpYyB2b2lkIHNheV9zb21ldGhpbmcodm9pZCkKK3sKKyAgZnByaW50ZihzdGRlcnIsICJwbHVnaFxuIik7Cit9CisKK3N0YXRpYyB2b2lkICpjaGlsZF9mdW5jKHZvaWQgKmFyZykKK3sKKyAgIGlmIChzZXRqbXAoZ29iYWNrKSkKKyAgICAgIHNheV9zb21ldGhpbmcoKTsKKyAgIGVsc2UKKyAgICAgIGJhZF90aGluZ3NfdGlsbF9ndWFyZF9wYWdlKCk7CisKKyAgIHJldHVybiBOVUxMOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQoreworICAgLyogV2Ugd2lsbCBkaXNjb3ZlciB0aGUgdGhyZWFkIGd1YXJkIHBhZ2UgdXNpbmcgU0VHVi4KKyAgICAgIFNvLCBwcmVwYXJlIGEgaGFuZGxlci4gKi8KKyAgIHN0cnVjdCBzaWdhY3Rpb24gc2E7CisgICBzYS5zYV9oYW5kbGVyID0gc2lnc2Vndl9oYW5kbGVyOworICAgc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOworICAgc2Euc2FfZmxhZ3MgPSAwOworICAgaWYgKHNpZ2FjdGlvbihTSUdTRUdWLCAmc2EsIE5VTEwpICE9IDApCisgICAgICBwZXJyb3IoInNpZ2FjdGlvbiIpOworCisgICAvKiBDcmVhdGUgYSBmaWxlIHRoYXQgd2lsbCBiZSB1c2VkIGFzIHN0YWNrIGZvciBhIHB0aHJlYWQuICAqLworICAgc2l6ZV90IGZpbGVfc2l6ZSA9IDEwMjQgKiAxMDI0OworICAgY29uc3QgY2hhciBmaWxlX25hbWVbXSA9ICJGSUxFIjsKKyAgIGludCBmZCA9IG9wZW4oZmlsZV9uYW1lLCBPX0NSRUFUfE9fV1JPTkxZLAorICAgICAgICAgICAgICAgICBTX0lSVVNSfFNfSVdVU1J8U19JUkdSUHxTX0lXR1JQfFNfSVJPVEh8U19JV09USCk7CisgICBhc3NlcnQoZmQgPj0gMCk7CisgICB2b2lkICpwID0gY2FsbG9jKGZpbGVfc2l6ZSwgMSk7CisgICBhc3NlcnQocCAhPSAwKTsKKyAgIGludCB3cml0dGVuID0gd3JpdGUoZmQsIHAsIGZpbGVfc2l6ZSk7CisgICBhc3NlcnQod3JpdHRlbiA9PSBmaWxlX3NpemUpOworICAgY2xvc2UoZmQpOworCisgICAvKiBDcmVhdGUgYSBmaWxlLWJhc2VkIHN0YWNrIGZvciB0aGUgY2hpbGQuICovCisgICBmZCA9IG9wZW4oZmlsZV9uYW1lLCBPX0NSRUFUfE9fUkRXUiwKKyAgICAgICAgICAgICBTX0lSVVNSfFNfSVdVU1J8U19JUkdSUHxTX0lXR1JQfFNfSVJPVEh8U19JV09USCk7CisgICBhc3NlcnQoZmQgPj0gMCk7CisgICBjb25zdCBzaXplX3Qgc3RhY2tfc2l6ZSA9IDI1NiAqIDEwMjQ7CisgICBhc3NlcnQoc3RhY2tfc2l6ZSA8IGZpbGVfc2l6ZSk7CisgICB2b2lkICpzdGFjayA9IG1tYXAoTlVMTCwgc3RhY2tfc2l6ZSwgUFJPVF9SRUFEfFBST1RfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAgTUFQX1BSSVZBVEUsIGZkLCAwKTsKKyAgIGFzc2VydChzdGFjayAhPSAodm9pZCAqKS0xKTsKKyAgIHB0aHJlYWRfYXR0cl90IGF0dHI7CisgICBwdGhyZWFkX2F0dHJfaW5pdCgmYXR0cik7CisgICBpbnQgciA9IHB0aHJlYWRfYXR0cl9zZXRzdGFjaygmYXR0ciwgc3RhY2ssIHN0YWNrX3NpemUpOworICAgYXNzZXJ0KHIgPT0gMCk7CisKKyAgIC8qIENyZWF0ZSBjaGlsZCBydW4uICovCisgICBwdGhyZWFkX3QgY2hpbGQ7CisgICByID0gcHRocmVhZF9jcmVhdGUoJmNoaWxkLCAmYXR0ciwgY2hpbGRfZnVuYywgTlVMTCk7CisgICBhc3NlcnQociA9PSAwKTsKKyAgIHIgPSBwdGhyZWFkX2pvaW4oY2hpbGQsIE5VTEwpOworICAgYXNzZXJ0KHIgPT0gMCk7CisKKyAgIC8qIFJlbW92ZSBmaWxlICovCisgICB1bmxpbmsoZmlsZV9uYW1lKTsKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcHRocmVhZC1zdGFjay5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3B0aHJlYWQtc3RhY2suc3RkZXJyLmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTFlNjBjCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3B0aHJlYWQtc3RhY2suc3RkZXJyLmV4cApAQCAtMCwwICsxLDIgQEAKKy4uLiBkb2luZyBiYWQgdGhpbmdzIHRpbGwgZ3VhcmQgcGFnZQorcGx1Z2gKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9wdGhyZWFkLXN0YWNrLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9wdGhyZWFkLXN0YWNrLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGNhZmNiCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3B0aHJlYWQtc3RhY2sudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogcHRocmVhZC1zdGFjawordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF9hZGRyLmMgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzZXJ2ZV9zeXNzdGF0X2FkZHIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjZiZGMyCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF9hZGRyLmMKQEAgLTAsMCArMSwzIEBACitpbnQgbWFpbih2b2lkKSB7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzZXJ2ZV9zeXNzdGF0X2FkZHIubWFwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF9hZGRyLm1hcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGUzZWEzCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF9hZGRyLm1hcApAQCAtMCwwICsxLDcgQEAKKyRtYXBmaWxlX3ZlcnNpb24gMgorCitSRVNFUlZFX1NFR01FTlQgcmVzZXJ2ZV9zeXNzdGF0IHsKKwlUWVBFICA9IFNZU1NUQVQ7CisJU0laRSAgPSA0MDk2OworCVZBRERSID0gMHg5MDAyMDAwOworfTsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9yZXNlcnZlX3N5c3N0YXRfYWRkci5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF9hZGRyLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVkMmNjNgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNlcnZlX3N5c3N0YXRfYWRkci5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMTQgQEAKKworVmFsZ3JpbmQgZGV0ZWN0ZWQgdGhhdCB5b3VyIHByb2dyYW0gcmVxdWlyZXMKK3RoZSBmb2xsb3dpbmcgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbmFsaXR5OgorICAgU3VwcG9ydCBmb3IgcHJvZ3JhbSBoZWFkZXIgUFRfU1VOV19TWVNTVEFULgorVGhpcyBtYXkgYmUgYmVjYXVzZSB0aGUgZnVuY3Rpb25hbGl0eSBpcyBoYXJkIHRvIGltcGxlbWVudCwKK29yIGJlY2F1c2Ugbm8gcmVhc29uYWJsZSBwcm9ncmFtIHdvdWxkIGJlaGF2ZSB0aGlzIHdheSwKK29yIGJlY2F1c2Ugbm9ib2R5IGhhcyB5ZXQgbmVlZGVkIGl0LiAgSW4gYW55IGNhc2UsIGxldCB1cyBrbm93IGF0Cit3d3cudmFsZ3JpbmQub3JnIGFuZC9vciB0cnkgdG8gd29yayBhcm91bmQgdGhlIHByb2JsZW0sIGlmIHlvdSBjYW4uCisKK1ZhbGdyaW5kIGhhcyB0byBleGl0IG5vdy4gIFNvcnJ5LiAgQnllIQorCisKK3NjaGVkIHN0YXR1czoKKyAgcnVubmluZ190aWQ9MApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF9hZGRyLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNlcnZlX3N5c3N0YXRfYWRkci52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNlOGQxNAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNlcnZlX3N5c3N0YXRfYWRkci52Z3Rlc3QKQEAgLTAsMCArMSwzIEBACitwcmVyZXE6IHRlc3QgLWUgcmVzZXJ2ZV9zeXNzdGF0X2FkZHIKK3Byb2c6IHJlc2VydmVfc3lzc3RhdF9hZGRyCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzZXJ2ZV9zeXNzdGF0X3pvbmVfYWRkci5jIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF96b25lX2FkZHIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjZiZGMyCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF96b25lX2FkZHIuYwpAQCAtMCwwICsxLDMgQEAKK2ludCBtYWluKHZvaWQpIHsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9yZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyLm1hcCBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyLm1hcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjIwYWYxCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3Jlc2VydmVfc3lzc3RhdF96b25lX2FkZHIubWFwCkBAIC0wLDAgKzEsNyBAQAorJG1hcGZpbGVfdmVyc2lvbiAyCisKK1JFU0VSVkVfU0VHTUVOVCByZXNlcnZlX3N5c3N0YXRfem9uZSB7CisJVFlQRSAgPSBTWVNTVEFUX1pPTkU7CisJU0laRSAgPSA0MDk2OworCVZBRERSID0gMHg5MDA0MDAwOworfTsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9yZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzZXJ2ZV9zeXNzdGF0X3pvbmVfYWRkci5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5MDc5MjAKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzZXJ2ZV9zeXNzdGF0X3pvbmVfYWRkci5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsMTQgQEAKKworVmFsZ3JpbmQgZGV0ZWN0ZWQgdGhhdCB5b3VyIHByb2dyYW0gcmVxdWlyZXMKK3RoZSBmb2xsb3dpbmcgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbmFsaXR5OgorICAgU3VwcG9ydCBmb3IgcHJvZ3JhbSBoZWFkZXIgUFRfU1VOV19TWVNTVEFUX1pPTkUuCitUaGlzIG1heSBiZSBiZWNhdXNlIHRoZSBmdW5jdGlvbmFsaXR5IGlzIGhhcmQgdG8gaW1wbGVtZW50LAorb3IgYmVjYXVzZSBubyByZWFzb25hYmxlIHByb2dyYW0gd291bGQgYmVoYXZlIHRoaXMgd2F5LAorb3IgYmVjYXVzZSBub2JvZHkgaGFzIHlldCBuZWVkZWQgaXQuICBJbiBhbnkgY2FzZSwgbGV0IHVzIGtub3cgYXQKK3d3dy52YWxncmluZC5vcmcgYW5kL29yIHRyeSB0byB3b3JrIGFyb3VuZCB0aGUgcHJvYmxlbSwgaWYgeW91IGNhbi4KKworVmFsZ3JpbmQgaGFzIHRvIGV4aXQgbm93LiAgU29ycnkuICBCeWUhCisKKworc2NoZWQgc3RhdHVzOgorICBydW5uaW5nX3RpZD0wCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzZXJ2ZV9zeXNzdGF0X3pvbmVfYWRkci52Z3Rlc3QgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzZXJ2ZV9zeXNzdGF0X3pvbmVfYWRkci52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ4YjI3OAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyLnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3ByZXJlcTogdGVzdCAtZSByZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyCitwcm9nOiByZXNlcnZlX3N5c3N0YXRfem9uZV9hZGRyCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzb2x2LmMgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzb2x2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc4ZTE0MgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNvbHYuYwpAQCAtMCwwICsxLDIwIEBACisvKiBUZXN0cyBpbml0aWFsaXphdGlvbiBvZiB0aGUgcmVzb2x2ZXIgbGlicmFyeS4KKyAqIEFkYXB0ZWQgZnJvbSBub25lL3Rlc3RzL3Jlc29sdiBmb3IgU29sYXJpcy4KKyAqLworCisjaW5jbHVkZSA8cmVzb2x2Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICBzdHJ1Y3QgX19yZXNfc3RhdGUgc3RhdHM7CisgICBiemVybygmc3RhdHMsIHNpemVvZihzdGF0cykpOworCisgICBwcmludGYoIlBSRSBzdGF0cy0+bnNjb3VudCA9ICVkXG4iLCBzdGF0cy5uc2NvdW50ICk7CisgICBmZmx1c2goc3Rkb3V0KTsKKyAgIHJlc19uaW5pdCgmc3RhdHMpOworICAgcHJpbnRmKCJQT1NUIHN0YXRzLT5uc2NvdW50ID0gJWRcbiIsICggaW50ICkgc3RhdHMubnNjb3VudCA+IDAgKTsKKyAgIGZmbHVzaChzdGRvdXQpOworICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzb2x2LnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzb2x2LnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM5NTk3ZgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNvbHYuc3RkZXJyLmV4cApAQCAtMCwwICsxLDIgQEAKKworCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzb2x2LnN0ZG91dC5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzb2x2LnN0ZG91dC5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg0MzMwNQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNvbHYuc3Rkb3V0LmV4cApAQCAtMCwwICsxLDIgQEAKK1BSRSBzdGF0cy0+bnNjb3VudCA9IDAKK1BPU1Qgc3RhdHMtPm5zY291bnQgPSAxCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzb2x2LnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9yZXNvbHYudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4YzFlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvcmVzb2x2LnZndGVzdApAQCAtMCwwICsxIEBACitwcm9nOiByZXNvbHYKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9zaWdyZXNlbmQuYyBiL25vbmUvdGVzdHMvc29sYXJpcy9zaWdyZXNlbmQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWQ0YWViCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3NpZ3Jlc2VuZC5jCkBAIC0wLDAgKzEsNzMgQEAKKy8qIFRlc3QgdG8gY2hlY2sgdGhhdCB0aGUgbWFzayBwYXJhbWV0ZXIgb2YgdGhlIHNpZ3Jlc2VuZCBzeXNjYWxsIGlzIGhhbmRsZWQKKyAgIGNvcnJlY3RseS4gKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworc3RhdGljIHZvaWQgc2lnbmFsX2hhbmRsZXIoaW50IHNpZ25vLCBzaWdpbmZvX3QgKmluZm8sIHZvaWQgKnVjKQoreworICAgc3NpemVfdCB3cml0dGVuOworICAgY29uc3QgY2hhciBzdHJbXSA9ICJTaWduYWwgY2F1Z2h0LlxuIjsKKyAgIHNpemVfdCBsZW4gPSBzaXplb2Yoc3RyKSAtIDE7CisgICBzaWdzZXRfdCBjdXJyZW50OworCisgICB3cml0dGVuID0gd3JpdGUoU1RET1VUX0ZJTEVOTywgc3RyLCBsZW4pOworICAgYXNzZXJ0KHdyaXR0ZW4gPT0gbGVuKTsKKworICAgLyogQ2hlY2sgdGhhdCBTSUdVU1IxIGlzIGFscmVhZHkgYmxvY2tlZCBpbiB0aGUgc2lnbmFsIGhhbmRsZXIuICovCisgICBhc3NlcnQoIXNpZ3Byb2NtYXNrKFNJR19CTE9DSywgTlVMTCwgJmN1cnJlbnQpKTsKKyAgIGFzc2VydChzaWdpc21lbWJlcigmY3VycmVudCwgU0lHVVNSMSkpOworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgc2lnc2V0X3QgYmxvY2ssIGN1cnJlbnQ7CisgICBzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworCisgICAvKiBDaGVjayB0aGF0IFNJR1VTUjEgaXMgdW5ibG9ja2VkLiAqLworICAgaWYgKHNpZ3Byb2NtYXNrKDAsIE5VTEwsICZjdXJyZW50KSkgeworICAgICAgcGVycm9yKCJzaWdwcm9jbWFzayIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisgICBhc3NlcnQoIXNpZ2lzbWVtYmVyKCZjdXJyZW50LCBTSUdVU1IxKSk7CisKKyAgIC8qIEVzdGFibGlzaCBhIFNJR0lOVCBoYW5kbGVyLiAqLworICAgc2Euc2Ffc2lnYWN0aW9uID0gc2lnbmFsX2hhbmRsZXI7CisgICBzYS5zYV9mbGFncyA9IFNBX1JFU1RBUlQgfCBTQV9TSUdJTkZPOworICAgaWYgKHNpZ2ZpbGxzZXQoJnNhLnNhX21hc2spKSB7CisgICAgICBwZXJyb3IoInNpZ2ZpbGxzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHNpZ2FjdGlvbihTSUdJTlQsICZzYSwgTlVMTCkpIHsKKyAgICAgIHBlcnJvcigic2lnYWN0aW9uIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgLyogU2VuZCB1cyBhIHNpZ25hbCB0byBoYW5kbGUgYW5kIGluc3RhbGwgYSBuZXcgc2lnbWFzay4gKi8KKyAgIGlmIChzaWdlbXB0eXNldCgmYmxvY2spKSB7CisgICAgICBwZXJyb3IoInNpZ2VtcHR5c2V0Iik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKyAgIGlmIChzaWdhZGRzZXQoJmJsb2NrLCBTSUdVU1IxKSkgeworICAgICAgcGVycm9yKCJzaWdhZGRzZXQiKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgaWYgKHN5c2NhbGwoU1lTX3NpZ3Jlc2VuZCwgU0lHSU5ULCBOVUxMLCAmYmxvY2spKSB7CisgICAgICBmcHJpbnRmKHN0ZGVyciwgIlNpZ3Jlc2VuZCBmYWlsZWQuXG4iKTsKKyAgICAgIHJldHVybiAxOworICAgfQorCisgICAvKiBDaGVjayB0aGF0IFNJR1VTUjEgaXMgbm93IGJsb2NrZWQuICovCisgICBpZiAoc2lncHJvY21hc2soU0lHX0JMT0NLLCBOVUxMLCAmY3VycmVudCkpIHsKKyAgICAgIHBlcnJvcigic2lncHJvY21hc2siKTsKKyAgICAgIHJldHVybiAxOworICAgfQorICAgYXNzZXJ0KHNpZ2lzbWVtYmVyKCZjdXJyZW50LCBTSUdVU1IxKSk7CisKKyAgIHJldHVybiAwOworfQorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvc2lncmVzZW5kLnN0ZGVyci5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvc2lncmVzZW5kLnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy9zaWdyZXNlbmQuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9zaWdyZXNlbmQuc3Rkb3V0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDk2MzNmCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3NpZ3Jlc2VuZC5zdGRvdXQuZXhwCkBAIC0wLDAgKzEgQEAKK1NpZ25hbCBjYXVnaHQuCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvc2lncmVzZW5kLnZndGVzdCBiL25vbmUvdGVzdHMvc29sYXJpcy9zaWdyZXNlbmQudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZjAwOTQKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvc2lncmVzZW5kLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IHNpZ3Jlc2VuZAordmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3N0YWNrLW92ZXJmbG93LmMgYi9ub25lL3Rlc3RzL3NvbGFyaXMvc3RhY2stb3ZlcmZsb3cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWJiZmJiCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3N0YWNrLW92ZXJmbG93LmMKQEAgLTAsMCArMSw1IEBACisvKiBUaGVyZSBzaG91bGQgYmUgYSB1c2VyIG1lc3NhZ2UgYWJvdXQgdGhlIG92ZXJmbG93LgorICAgV3JpdHRlbiBpbiBhIHNpbmdsZSBsaW5lIHNvIHRoZXJlIGlzIG5vIGNvbmZ1c2lvbiBvbiB3aGF0IGxpbmUKKyAgIHRoZSBvdmVyZmxvdyBvY2N1cnMuICovCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsgdm9sYXRpbGUgaW50IGFyclsxMDAwXTsgcmV0dXJuIG1haW4oYXJyW2FyZ2MlMl0sIDApOyB9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvc3RhY2stb3ZlcmZsb3cuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9zdGFjay1vdmVyZmxvdy5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNWU1OTUKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3NvbGFyaXMvc3RhY2stb3ZlcmZsb3cuc3RkZXJyLmV4cApAQCAtMCwwICsxLDEzIEBACisKK1N0YWNrIG92ZXJmbG93IGluIHRocmVhZCAjMTogY2FuJ3QgZ3JvdyBzdGFjayB0byAweC4uLi4uLi4uCisKK1Byb2Nlc3MgdGVybWluYXRpbmcgd2l0aCBkZWZhdWx0IGFjdGlvbiBvZiBzaWduYWwgMTEgKFNJR1NFR1YpCisgQWNjZXNzIG5vdCB3aXRoaW4gbWFwcGVkIHJlZ2lvbiBhdCBhZGRyZXNzIDB4Li4uLi4uLi4KK1N0YWNrIG92ZXJmbG93IGluIHRocmVhZCAjMTogY2FuJ3QgZ3JvdyBzdGFjayB0byAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiBtYWluIChzdGFjay1vdmVyZmxvdy5jOjUpCisgSWYgeW91IGJlbGlldmUgdGhpcyBoYXBwZW5lZCBhcyBhIHJlc3VsdCBvZiBhIHN0YWNrCisgb3ZlcmZsb3cgaW4geW91ciBwcm9ncmFtJ3MgbWFpbiB0aHJlYWQgKHVubGlrZWx5IGJ1dAorIHBvc3NpYmxlKSwgeW91IGNhbiB0cnkgdG8gaW5jcmVhc2UgdGhlIHNpemUgb2YgdGhlCisgbWFpbiB0aHJlYWQgc3RhY2sgdXNpbmcgdGhlIC0tbWFpbi1zdGFja3NpemU9IGZsYWcuCisgVGhlIG1haW4gdGhyZWFkIHN0YWNrIHNpemUgdXNlZCBpbiB0aGlzIHJ1biB3YXMgLi4uLgorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvc3RhY2stb3ZlcmZsb3cudmd0ZXN0IGIvbm9uZS90ZXN0cy9zb2xhcmlzL3N0YWNrLW92ZXJmbG93LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjlmZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3N0YWNrLW92ZXJmbG93LnZndGVzdApAQCAtMCwwICsxIEBACitwcm9nOiBzdGFjay1vdmVyZmxvdwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zb2xhcmlzL3N0YWNrX3Byb3QuYyBiL25vbmUvdGVzdHMvc29sYXJpcy9zdGFja19wcm90LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM3NjI0NQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9zdGFja19wcm90LmMKQEAgLTAsMCArMSw2NSBAQAorI2luY2x1ZGUgPHByb2Nmcy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNkZWZpbmUgQVJSQVlfTEVOR1RIKGFycmF5KSAoc2l6ZW9mKChhcnJheSkpIC8gc2l6ZW9mKDBbKGFycmF5KV0pKQorCitpbnQgbWFpbih2b2lkKQoreworICAgaW50IHJlcyA9IDE7CisgICBGSUxFICpmaSA9IE5VTEw7CisgICBwcnhtYXBfdCBtYXBbMzJdOworICAgaW50IGZvdW5kID0gMDsKKyAgIGludCBkb25lID0gMDsKKyAgIC8qIE9idGFpbiBhbiBhZGRyZXNzIGluc2lkZSB0aGUgc3RhY2sgdXNpbmcgYSBkaXJ0eSB0cmljay4gKi8KKyAgIHVpbnRwdHJfdCBsb2NhbCA9ICh1aW50cHRyX3QpJmZpOworCisgICAvKiBPcGVuIC9wcm9jL3NlbGYveG1hcCBmb3IgcmVhZGluZy4gKi8KKyAgIGZpID0gZm9wZW4oIi9wcm9jL3NlbGYveG1hcCIsICJyIik7CisgICBpZiAoIWZpKSB7CisgICAgICBwZXJyb3IoImZvcGVuIik7CisgICAgICBnb3RvIG91dDsKKyAgIH0KKworICAgLyogUmVhZCB0aGUgZmlsZSB1bnRpbCBFT0Ygb3IgdGhlIHN0YWNrIGlzIGZvdW5kLiAqLworICAgd2hpbGUgKCFkb25lICYmICFmb3VuZCkgeworICAgICAgc2l6ZV90IGksIGl0ZW1zOworCisgICAgICBpdGVtcyA9IGZyZWFkKG1hcCwgc2l6ZW9mKG1hcFswXSksIEFSUkFZX0xFTkdUSChtYXApLCBmaSk7CisgICAgICBpZiAoaXRlbXMgIT0gQVJSQVlfTEVOR1RIKG1hcCkpIHsKKyAgICAgICAgIGlmIChmZXJyb3IoZmkpKSB7CisgICAgICAgICAgICBwZXJyb3IoImZyZWFkIik7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgIH0KKyAgICAgICAgIGRvbmUgPSAxOworICAgICAgfQorCisgICAgICAvKiBTY2FuIHRoZSByZWFkIG1hcHBpbmdzLiAqLworICAgICAgZm9yIChpID0gMDsgaSA8IGl0ZW1zOyBpKyspCisgICAgICAgICBpZiAobWFwW2ldLnByX3ZhZGRyIDw9IGxvY2FsCisgICAgICAgICAgICAgJiYgbG9jYWwgPCBtYXBbaV0ucHJfdmFkZHIgKyBtYXBbaV0ucHJfc2l6ZSkgeworICAgICAgICAgICAgLyogU3RhY2sgd2FzIGZvdW5kLCB2YWxpZGF0ZSBpdC4gKi8KKyAgICAgICAgICAgIGZvdW5kID0gMTsKKyAgICAgICAgICAgIGlmICgobWFwW2ldLnByX21mbGFncyAmIChNQV9SRUFEIHwgTUFfV1JJVEUgfCBNQV9FWEVDKSkKKyAgICAgICAgICAgICAgICAhPSAoTUFfUkVBRCB8IE1BX1dSSVRFKSkgeworICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJJbmNvcnJlY3Qgc3RhY2sgbWFwcGluZyBkZXRlY3RlZC5cbiIpOworICAgICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICB9CisKKyAgIC8qIENoZWNrIGlmIHRoZSBzdGFjayB3YXMgaW5kZWVkIGZvdW5kLiAqLworICAgaWYgKCFmb3VuZCkgeworICAgICAgZnByaW50ZihzdGRlcnIsICJTdGFjayBub3QgZm91bmQuXG4iKTsKKyAgICAgIGdvdG8gb3V0OworICAgfQorCisgICByZXMgPSAwOworCitvdXQ6CisgICAvKiBDbGVhbnVwLiAqLworICAgaWYgKGZpKQorICAgICAgZmNsb3NlKGZpKTsKKworICAgcmV0dXJuIHJlczsKK30KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3N0YWNrX3Byb3Quc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMvc29sYXJpcy9zdGFja19wcm90LnN0ZGVyci5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMvc29sYXJpcy9zdGFja19wcm90LnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvc3RhY2tfcHJvdC5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NvbGFyaXMvc3RhY2tfcHJvdC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3NvbGFyaXMvc3RhY2tfcHJvdC52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EzYTkyMAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy9zdGFja19wcm90LnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IHN0YWNrX3Byb3QKK3Znb3B0czogLXEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy90aHJlYWRzX2V4aXRhbGwuYyBiL25vbmUvdGVzdHMvc29sYXJpcy90aHJlYWRzX2V4aXRhbGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODk5YTFjCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3RocmVhZHNfZXhpdGFsbC5jCkBAIC0wLDAgKzEsMzkgQEAKKy8qIFRlc3QgdGhhdCBhbGwgdGhyZWFkcyBhcmUga2lsbGVkIHdoZW4gZXhpdCgpIGlzIGNhbGxlZC4gKi8KKworI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit2b2lkICp0aHJlYWRfcHJvYyh2b2lkICphcmcpCit7CisgICAvKiBXYWl0IGZvciBtYWluIHRocmVhZCB0byBibG9jay4gKi8KKyAgIHNsZWVwKDIpOworCisgICAvKiBFeGl0IHRoZSBwcm9ncmFtLiAqLworICAgZXhpdCgwKTsKKworICAgcmV0dXJuIE5VTEw7Cit9CisKK2ludCBtYWluKHZvaWQpCit7CisgICBwdGhyZWFkX3QgdGhyZWFkOworICAgdm9pZCAqc3RhdHVzOworCisgICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgdGhyZWFkX3Byb2MsIE5VTEwpKSB7CisgICAgICBwZXJyb3IoInB0aHJlYWRfY3JlYXRlIik7CisgICAgICByZXR1cm4gMTsKKyAgIH0KKworICAgaWYgKHB0aHJlYWRfam9pbih0aHJlYWQsICZzdGF0dXMpKSB7CisgICAgICBwZXJyb3IoInB0aHJlYWRfam9pbiIpOworICAgICAgcmV0dXJuIDE7CisgICB9CisKKyAgIC8qIFRoaXMgY29kZSBzaG91bGQgbm90IGJlIHJlYWNoZWQuICovCisgICBmcHJpbnRmKHN0ZGVyciwgIlRocmVhZCBqb2luZWRcbiIpOworCisgICByZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy9zb2xhcmlzL3RocmVhZHNfZXhpdGFsbC5zdGRlcnIuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbm9uZS90ZXN0cy9zb2xhcmlzL3RocmVhZHNfZXhpdGFsbC5zdGRlcnIuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3NvbGFyaXMvdGhyZWFkc19leGl0YWxsLnN0ZG91dC5leHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBub25lL3Rlc3RzL3NjcmlwdHMvc2hlbGxfbm9pbnRlcnAxLnN0ZGVyci5leHAKY29weSB0byBub25lL3Rlc3RzL3NvbGFyaXMvdGhyZWFkc19leGl0YWxsLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc29sYXJpcy90aHJlYWRzX2V4aXRhbGwudmd0ZXN0IGIvbm9uZS90ZXN0cy9zb2xhcmlzL3RocmVhZHNfZXhpdGFsbC52Z3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTczMzA3MQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMvc29sYXJpcy90aHJlYWRzX2V4aXRhbGwudmd0ZXN0CkBAIC0wLDAgKzEsMiBAQAorcHJvZzogdGhyZWFkc19leGl0YWxsCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3RocmVhZGVkZXJybm8uYyBiL25vbmUvdGVzdHMvdGhyZWFkZWRlcnJuby5jCmluZGV4IDlkOWIwZmYuLmZmYzczNWUgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvdGhyZWFkZWRlcnJuby5jCisrKyBiL25vbmUvdGVzdHMvdGhyZWFkZWRlcnJuby5jCkBAIC0xLDMgKzEsNSBAQAorLyogTWFrZSBzdXJlIHdlIHVzZSB0aGUgUE9TSVggdmVyc2lvbiBvZiBzdHJlcnJvcl9yKCkgb24gTGludXguICovCisjZGVmaW5lIF9YT1BFTl9TT1VSQ0UgNjAwCiAKICNpbmNsdWRlIDxwdGhyZWFkLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTcsMjcgKzksMzMgQEAKIAogdm9pZCogdGhyMiAoIHZvaWQqIHYgKQogeworICBjaGFyIGVycnN0clsxMjhdOwogICBGSUxFKiBmID0gZm9wZW4oImJvZ3VzMiIsICJyIik7Ci0gIHByaW50ZigiZiAgPSAlbGQsIGVycm5vICA9ICVkICglcylcbiIsIChsb25nKWYsIGVycm5vLCBzdHJlcnJvcihlcnJubykpOworICBzdHJlcnJvcl9yKGVycm5vLCBlcnJzdHIsIHNpemVvZihlcnJzdHIpKTsKKyAgcHJpbnRmKCJmICA9ICVsZCwgZXJybm8gID0gJWQgKCVzKVxuIiwgKGxvbmcpZiwgZXJybm8sIGVycnN0cik7CiAgIHJldHVybiBOVUxMOwogfQogCiB2b2lkKiB0aHIzICggdm9pZCogdiApCiB7CisgIGNoYXIgZXJyc3RyWzEyOF07CiAgIEZJTEUqIGYgPSBmb3BlbigiYm9ndXMzIiwgInIiKTsKLSAgcHJpbnRmKCJmICA9ICVsZCwgZXJybm8gID0gJWQgKCVzKVxuIiwgKGxvbmcpZiwgZXJybm8sIHN0cmVycm9yKGVycm5vKSk7CisgIHN0cmVycm9yX3IoZXJybm8sIGVycnN0ciwgc2l6ZW9mKGVycnN0cikpOworICBwcmludGYoImYgID0gJWxkLCBlcnJubyAgPSAlZCAoJXMpXG4iLCAobG9uZylmLCBlcnJubywgZXJyc3RyKTsKICAgcmV0dXJuIE5VTEw7CiB9CiAKIAogaW50IG1haW4gKCB2b2lkICkKIHsKKyAgY2hhciBlcnJzdHJbMTI4XTsKICAgRklMRSogZjsKICAgcHRocmVhZF90IHRpZDIsIHRpZDM7CiAgIHB0aHJlYWRfY3JlYXRlKCZ0aWQyLCBOVUxMLCAmdGhyMiwgTlVMTCk7CiAgIHB0aHJlYWRfY3JlYXRlKCZ0aWQzLCBOVUxMLCAmdGhyMywgTlVMTCk7CiAgIGYgPSBmb3BlbigiYm9ndXMiLCAiciIpOwotICBwcmludGYoImYgID0gJWxkLCBlcnJubyAgPSAlZCAoJXMpXG4iLCAobG9uZylmLCBlcnJubywgc3RyZXJyb3IoZXJybm8pKTsKKyAgc3RyZXJyb3JfcihlcnJubywgZXJyc3RyLCBzaXplb2YoZXJyc3RyKSk7CisgIHByaW50ZigiZiAgPSAlbGQsIGVycm5vICA9ICVkICglcylcbiIsIChsb25nKWYsIGVycm5vLCBlcnJzdHIpOwogICBwdGhyZWFkX2pvaW4odGlkMiwgTlVMTCk7CiAgIHB0aHJlYWRfam9pbih0aWQzLCBOVUxMKTsKICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3RpbGVneC9NYWtlZmlsZS5hbSBiL25vbmUvdGVzdHMvdGlsZWd4L01ha2VmaWxlLmFtCmluZGV4IDA4NmZmNDMuLmU3NzljZTYgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMvdGlsZWd4L01ha2VmaWxlLmFtCisrKyBiL25vbmUvdGVzdHMvdGlsZWd4L01ha2VmaWxlLmFtCkBAIC0xLDEzICsxLDE2MTcgQEAKIAogaW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLnRvb2wtdGVzdHMuYW0KIAotRVhUUkFfRElTVCA9CitkaXN0X25vaW5zdF9TQ1JJUFRTID0gXAorCWZpbHRlcl9zdGRlcnIKKworRVhUUkFfRElTVCA9IGdlbl90ZXN0LnNoCisKK2lmIFZHQ09ORl9BUkNIU19JTkNMVURFX1RJTEVHWAorRVhUUkFfRElTVCArPSBcCisJaW5zbl90ZXN0X21vdmVfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbW92ZV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X21vdmVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbW92ZV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9tb3ZlX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbW92ZV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9tb3ZlX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X21vdmVfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tb3ZlX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X21vdmVfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbW92ZV9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X21vdmVfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbW92ZWlfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbW92ZWlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tb3ZlaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tb3ZlaV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9tb3ZlaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X21vdmVpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X21vdmVpX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X21vdmVpX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbW92ZWlfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbW92ZWlfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbW92ZWlfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tb3ZlaV9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9tb3ZlbGlfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbW92ZWxpX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbW92ZWxpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X21vdmVsaV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9tb3ZlbGlfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tb3ZlbGlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfcHJlZmV0Y2hfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfcHJlZmV0Y2hfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9wcmVmZXRjaF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9wcmVmZXRjaF9ZMi5zdGRvdXQuZXhwIGluc25fdGVzdF9wcmVmZXRjaF9ZMi5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3ByZWZldGNoX1kyLnZndGVzdCBcCisJaW5zbl90ZXN0X3ByZWZldGNoX2wxX1gxLnN0ZG91dC5leHAgXAorCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDFfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9wcmVmZXRjaF9sMV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9wcmVmZXRjaF9sMV9ZMi5zdGRvdXQuZXhwIFwKKwkgaW5zbl90ZXN0X3ByZWZldGNoX2wxX1kyLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDFfWTIudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfcHJlZmV0Y2hfbDJfWDEuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9wcmVmZXRjaF9sMl9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3ByZWZldGNoX2wyX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3ByZWZldGNoX2wyX1kyLnN0ZG91dC5leHAgXAorCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDJfWTIuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9wcmVmZXRjaF9sMl9ZMi52Z3Rlc3QgXAorCWluc25fdGVzdF9wcmVmZXRjaF9sM19YMS5zdGRvdXQuZXhwIFwKKwkgaW5zbl90ZXN0X3ByZWZldGNoX2wzX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfcHJlZmV0Y2hfbDNfWTIuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9wcmVmZXRjaF9sM19ZMi5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3ByZWZldGNoX2wzX1kyLnZndGVzdCBcCisJaW5zbl90ZXN0X2FkZF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGRfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hZGRfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYWRkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FkZF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9hZGRfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYWRkX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYWRkX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X2FkZF9ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGRfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hZGRfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYWRkaV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGRpX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYWRkaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9hZGRpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FkZGlfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hZGRpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2FkZGlfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYWRkaV9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FkZGlfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYWRkaV9ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGRpX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYWRkaV9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9hZGRsaV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGRsaV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FkZGxpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2FkZGxpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FkZGxpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYWRkbGlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYWRkeF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGR4X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYWRkeF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9hZGR4X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FkZHhfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hZGR4X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2FkZHhfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYWRkeF9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FkZHhfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYWRkeF9ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGR4X1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYWRkeF9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9hZGR4aV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGR4aV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FkZHhpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2FkZHhpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FkZHhpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYWRkeGlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYWRkeGlfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYWRkeGlfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hZGR4aV9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9hZGR4aV9ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGR4aV9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FkZHhpX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X2FkZHhsaV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGR4bGlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hZGR4bGlfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYWRkeGxpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FkZHhsaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FkZHhsaV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9hZGR4c2NfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYWRkeHNjX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYWRkeHNjX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2FkZHhzY19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9hZGR4c2NfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hZGR4c2NfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYW5kX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FuZF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FuZF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9hbmRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYW5kX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYW5kX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2FuZF9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9hbmRfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hbmRfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYW5kX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FuZF9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FuZF9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9hbmRpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FuZGlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hbmRpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2FuZGlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYW5kaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2FuZGlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYW5kaV9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9hbmRpX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYW5kaV9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9hbmRpX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2FuZGlfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9hbmRpX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X2JlcXpfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYmVxel9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2JlcXpfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYmVxenRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYmVxenRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9iZXF6dF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9iZmV4dHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYmZleHRzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYmZleHRzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2JmZXh0dV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9iZmV4dHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9iZmV4dHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYmZpbnNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYmZpbnNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9iZmluc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9iZ2V6X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2JnZXpfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9iZ2V6X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2JnZXp0X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2JnZXp0X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYmdlenRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYmd0el9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9iZ3R6X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYmd0el9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9iZ3R6dF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9iZ3R6dF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2JndHp0X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2JsYmNfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYmxiY19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2JsYmNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYmxiY3RfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYmxiY3RfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9ibGJjdF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9ibGJzX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2JsYnNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9ibGJzX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2JsYnN0X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2JsYnN0X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYmxic3RfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYmxlel9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9ibGV6X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYmxlel9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9ibGV6dF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9ibGV6dF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2JsZXp0X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2JsdHpfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYmx0el9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2JsdHpfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfYmx0enRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfYmx0enRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9ibHR6dF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9ibmV6X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2JuZXpfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9ibmV6X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2JuZXp0X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2JuZXp0X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfYm5lenRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY2x6X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2Nsel9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2Nsel9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbHpfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY2x6X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY2x6X1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X2Ntb3ZlcXpfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21vdmVxel9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2Ntb3ZlcXpfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21vdmVxel9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9jbW92ZXF6X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21vdmVxel9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbW92bmV6X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2Ntb3ZuZXpfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbW92bmV6X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2Ntb3ZuZXpfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21vdm5lel9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2Ntb3ZuZXpfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wZXFfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wZXFfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBlcV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBlcV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBlcV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGVxX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGVxX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGVxX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wZXFfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wZXFfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wZXFfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBlcV9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBlcWlfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wZXFpX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wZXFpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGVxaV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBlcWlfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBlcWlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wZXFpX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGVxaV9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGVxaV9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBlcWlfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wZXFpX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wZXFpX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGxlc19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBsZXNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBsZXNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbGVzX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGxlc19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGxlc19YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBsZXNfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbGVzX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wbGVzX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGxlc19ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBsZXNfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBsZXNfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbGV1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGxldV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGxldV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBsZXVfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbGV1X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wbGV1X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGxldV9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBsZXVfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBsZXVfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbGV1X1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGxldV9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGxldV9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBsdHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbHRzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wbHRzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGx0c19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBsdHNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBsdHNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbHRzX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGx0c19ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGx0c19ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBsdHNfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbHRzX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wbHRzX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGx0c2lfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbHRzaV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGx0c2lfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbHRzaV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBsdHNpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wbHRzaV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBsdHNpX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGx0c2lfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBsdHNpX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGx0c2lfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbHRzaV9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGx0c2lfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbHR1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGx0dV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGx0dV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBsdHVfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbHR1X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wbHR1X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGx0dV9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBsdHVfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBsdHVfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbHR1X1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGx0dV9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGx0dV9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBsdHVpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcGx0dWlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBsdHVpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcGx0dWlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbHR1aV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcGx0dWlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbmVfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbmVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBuZV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXBuZV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXBuZV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtcG5lX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtcG5lX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtcG5lX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY21wbmVfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY21wbmVfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY21wbmVfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXBuZV9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXVsX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtdWxfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXVsX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtdWxhX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtdWxhX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY211bGFfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY211bGFmX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NtdWxhZl9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtdWxhZl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXVsZl9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXVsZl9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2NtdWxmX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2NtdWxmcl9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9jbXVsZnJfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXVsZnJfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY211bGhfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY211bGhfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jbXVsaF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jbXVsaHJfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY211bGhyX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY211bGhyX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2NyYzMyXzMyX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2NyYzMyXzMyX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY3JjMzJfMzJfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfY3JjMzJfOF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9jcmMzMl84X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY3JjMzJfOF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9jdHpfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfY3R6X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfY3R6X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2N0el9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9jdHpfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9jdHpfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZGJsYWxpZ25fWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfZGJsYWxpZ25fWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9kYmxhbGlnbl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9kYmxhbGlnbjJfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfZGJsYWxpZ24yX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZGJsYWxpZ24yX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2RibGFsaWduMl9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9kYmxhbGlnbjJfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9kYmxhbGlnbjJfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZGJsYWxpZ240X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2RibGFsaWduNF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2RibGFsaWduNF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9kYmxhbGlnbjRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfZGJsYWxpZ240X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZGJsYWxpZ240X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2RibGFsaWduNl9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9kYmxhbGlnbjZfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9kYmxhbGlnbjZfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZGJsYWxpZ242X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2RibGFsaWduNl9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2RibGFsaWduNl9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9kdGxicHJfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfZHRsYnByX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZHRsYnByX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2Zkb3VibGVfYWRkX2ZsYWdzX1gwLnN0ZG91dC5leHAgXAorCSBpbnNuX3Rlc3RfZmRvdWJsZV9hZGRfZmxhZ3NfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9mZG91YmxlX2FkZF9mbGFnc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9mZG91YmxlX2FkZHN1Yl9YMC5zdGRvdXQuZXhwIFwKKwkgaW5zbl90ZXN0X2Zkb3VibGVfYWRkc3ViX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZmRvdWJsZV9hZGRzdWJfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZmRvdWJsZV9tdWxfZmxhZ3NfWDAuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9mZG91YmxlX211bF9mbGFnc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2Zkb3VibGVfbXVsX2ZsYWdzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2Zkb3VibGVfcGFjazFfWDAuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9mZG91YmxlX3BhY2sxX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZmRvdWJsZV9wYWNrMV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9mZG91YmxlX3BhY2syX1gwLnN0ZG91dC5leHAgXAorCSBpbnNuX3Rlc3RfZmRvdWJsZV9wYWNrMl9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2Zkb3VibGVfcGFjazJfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZmRvdWJsZV9zdWJfZmxhZ3NfWDAuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9mZG91YmxlX3N1Yl9mbGFnc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2Zkb3VibGVfc3ViX2ZsYWdzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2Zkb3VibGVfdW5wYWNrX21heF9YMC5zdGRvdXQuZXhwIFwKKwkgaW5zbl90ZXN0X2Zkb3VibGVfdW5wYWNrX21heF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2Zkb3VibGVfdW5wYWNrX21heF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9mZG91YmxlX3VucGFja19taW5fWDAuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9mZG91YmxlX3VucGFja19taW5fWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9mZG91YmxlX3VucGFja19taW5fWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZmx1c2h3Yl9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9mbHVzaHdiX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZmx1c2h3Yl9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9mbm9wX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X2Zub3BfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9mbm9wX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2Zub3BfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfZm5vcF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2Zub3BfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZm5vcF9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9mbm9wX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZm5vcF9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9mbm9wX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2Zub3BfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9mbm9wX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X2ZzaW5nbGVfYWRkMV9YMC5zdGRvdXQuZXhwIFwKKwkgaW5zbl90ZXN0X2ZzaW5nbGVfYWRkMV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2ZzaW5nbGVfYWRkMV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9mc2luZ2xlX2FkZHN1YjJfWDAuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9mc2luZ2xlX2FkZHN1YjJfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9mc2luZ2xlX2FkZHN1YjJfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZnNpbmdsZV9tdWwxX1gwLnN0ZG91dC5leHAgXAorCSBpbnNuX3Rlc3RfZnNpbmdsZV9tdWwxX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZnNpbmdsZV9tdWwxX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X2ZzaW5nbGVfbXVsMl9YMC5zdGRvdXQuZXhwIFwKKwkgaW5zbl90ZXN0X2ZzaW5nbGVfbXVsMl9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2ZzaW5nbGVfbXVsMl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9mc2luZ2xlX3BhY2sxX1gwLnN0ZG91dC5leHAgXAorCSBpbnNuX3Rlc3RfZnNpbmdsZV9wYWNrMV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2ZzaW5nbGVfcGFjazFfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfZnNpbmdsZV9wYWNrMV9ZMC5zdGRvdXQuZXhwIFwKKwkgaW5zbl90ZXN0X2ZzaW5nbGVfcGFjazFfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9mc2luZ2xlX3BhY2sxX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X2ZzaW5nbGVfcGFjazJfWDAuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9mc2luZ2xlX3BhY2syX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfZnNpbmdsZV9wYWNrMl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9mc2luZ2xlX3N1YjFfWDAuc3Rkb3V0LmV4cCBcCisJIGluc25fdGVzdF9mc2luZ2xlX3N1YjFfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9mc2luZ2xlX3N1YjFfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfaWNvaF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9pY29oX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfaWNvaF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9qX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2pfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9qX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2phbF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9qYWxfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9qYWxfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfamFscl9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9qYWxyX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfamFscl9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9qYWxyX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2phbHJfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9qYWxyX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X2phbHJwX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2phbHJwX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfamFscnBfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfamFscnBfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfamFscnBfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9qYWxycF9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9qcl9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9qcl9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2pyX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2pyX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2pyX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfanJfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfanJwX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2pycF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2pycF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9qcnBfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfanJwX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfanJwX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGRfWTIuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGRfWTIuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZF9ZMi52Z3Rlc3QgXAorCWluc25fdGVzdF9sZDFzX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkMXNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDFzX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkMXNfWTIuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQxc19ZMi5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkMXNfWTIudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGQxc19hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQxc19hZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDFzX2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZDF1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkMXVfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDF1X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkMXVfWTIuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQxdV9ZMi5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkMXVfWTIudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGQxdV9hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQxdV9hZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDF1X2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZDJzX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkMnNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDJzX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkMnNfWTIuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQyc19ZMi5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkMnNfWTIudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGQydV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9sZDJ1X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbGQydV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZDJ1X1kyLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkMnVfWTIuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDJ1X1kyLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkNHNfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQ0c19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkNHNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGQ0c19hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQ0c19hZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDRzX2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZDR1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkNHVfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDR1X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkNHVfWTIuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQ0dV9ZMi5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkNHVfWTIudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGQ0dV9hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGQ0dV9hZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZDR1X2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZF9hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGRfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbGRfYWRkX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkbmFfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGRuYV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkbmFfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGRuYV9hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGRuYV9hZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZG5hX2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZG50X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkbnRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZG50X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkbnQxc19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9sZG50MXNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZG50MXNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGRudDFzX2FkZF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9sZG50MXNfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbGRudDFzX2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZG50MXVfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGRudDF1X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbGRudDF1X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkbnQxdV9hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGRudDF1X2FkZF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkbnQxdV9hZGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGRudDJzX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkbnQyc19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkbnQyc19YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZG50MnNfYWRkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkbnQyc19hZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZG50MnNfYWRkX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkbnQydV9hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbGRudDJ1X2FkZF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkbnQydV9hZGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGRudDRzX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkbnQ0c19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkbnQ0c19YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZG50NHNfYWRkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xkbnQ0c19hZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZG50NHNfYWRkX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xkbnQ0dV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9sZG50NHVfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sZG50NHVfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbGRudDR1X2FkZF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9sZG50NHVfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbGRudDR1X2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9sZG50X2FkZF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9sZG50X2FkZF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xkbnRfYWRkX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X2xua19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9sbmtfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9sbmtfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbG5rX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X2xua19ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X2xua19ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9tZl9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9tZl9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X21mX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X21tX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X21tX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbW1fWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbW56X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X21uel9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X21uel9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tbnpfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbW56X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbW56X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X21uel9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tbnpfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tbnpfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbW56X1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X21uel9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X21uel9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxfaHNfaHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsX2hzX2hzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsX2hzX2hzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bF9oc19oc19ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxfaHNfaHNfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWxfaHNfaHNfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsX2hzX2h1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bF9oc19odV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bF9oc19odV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxfaHNfbHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsX2hzX2xzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsX2hzX2xzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bF9oc19sdV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxfaHNfbHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWxfaHNfbHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsX2h1X2h1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bF9odV9odV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bF9odV9odV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxfaHVfaHVfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsX2h1X2h1X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsX2h1X2h1X1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bF9odV9sdV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxfaHVfbHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWxfaHVfbHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsX2xzX2xzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bF9sc19sc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bF9sc19sc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxfbHNfbHNfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsX2xzX2xzX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsX2xzX2xzX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bF9sc19sdV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxfbHNfbHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWxfbHNfbHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsX2x1X2x1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bF9sdV9sdV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bF9sdV9sdV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxfbHVfbHVfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsX2x1X2x1X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsX2x1X2x1X1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bGFfaHNfaHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsYV9oc19oc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bGFfaHNfaHNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsYV9oc19oc19ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxhX2hzX2hzX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsYV9oc19oc19ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxhX2hzX2h1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bGFfaHNfaHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWxhX2hzX2h1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bGFfaHNfbHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsYV9oc19sc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bGFfaHNfbHNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsYV9oc19sdV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxhX2hzX2x1X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsYV9oc19sdV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxhX2h1X2h1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bGFfaHVfaHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWxhX2h1X2h1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bGFfaHVfaHVfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsYV9odV9odV9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bGFfaHVfaHVfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsYV9odV9sc19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxhX2h1X2xzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsYV9odV9sc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxhX2h1X2x1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bGFfaHVfbHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWxhX2h1X2x1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bGFfbHNfbHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsYV9sc19sc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bGFfbHNfbHNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsYV9sc19sc19ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxhX2xzX2xzX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsYV9sc19sc19ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxhX2xzX2x1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bGFfbHNfbHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWxhX2xzX2x1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bGFfbHVfbHVfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXVsYV9sdV9sdV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bGFfbHVfbHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVsYV9sdV9sdV9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxhX2x1X2x1X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsYV9sdV9sdV9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWxheF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWxheF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X211bGF4X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X211bGF4X1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bGF4X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVsYXhfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXVseF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tdWx4X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXVseF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9tdWx4X1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X211bHhfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tdWx4X1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X216X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X216X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXpfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfbXpfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfbXpfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9tel9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9tel9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9tel9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X216X1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X216X1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X216X1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfbXpfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfbm9wX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X25vcF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X25vcF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9ub3BfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfbm9wX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfbm9wX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X25vcF9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9ub3BfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9ub3BfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfbm9wX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X25vcF9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X25vcF9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9ub3JfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfbm9yX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfbm9yX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X25vcl9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9ub3JfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9ub3JfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfbm9yX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X25vcl9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X25vcl9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9ub3JfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfbm9yX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfbm9yX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X29yX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X29yX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfb3JfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfb3JfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfb3JfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9vcl9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9vcl9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9vcl9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X29yX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X29yX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X29yX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfb3JfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfb3JpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X29yaV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X29yaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9vcmlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfb3JpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfb3JpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3BjbnRfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfcGNudF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3BjbnRfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfcGNudF9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9wY250X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfcGNudF9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9yZXZiaXRzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3JldmJpdHNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9yZXZiaXRzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3JldmJpdHNfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfcmV2Yml0c19ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3JldmJpdHNfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfcmV2Ynl0ZXNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfcmV2Ynl0ZXNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9yZXZieXRlc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9yZXZieXRlc19ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9yZXZieXRlc19ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3JldmJ5dGVzX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X3JvdGxfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfcm90bF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3JvdGxfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfcm90bF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9yb3RsX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfcm90bF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9yb3RsX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3JvdGxfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9yb3RsX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X3JvdGxfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfcm90bF9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3JvdGxfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfcm90bGlfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfcm90bGlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9yb3RsaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9yb3RsaV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9yb3RsaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3JvdGxpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3JvdGxpX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3JvdGxpX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfcm90bGlfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfcm90bGlfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfcm90bGlfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9yb3RsaV9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGxfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGxfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGxfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobF9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobF9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGxfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDE2aW5zbGlfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsMTZpbnNsaV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDE2aW5zbGlfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsMTZpbnNsaV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwxNmluc2xpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsMTZpbnNsaV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGwxYWRkX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobDFhZGRfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGwxYWRkX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDFhZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsMWFkZF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDFhZGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsMWFkZF9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwxYWRkX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsMWFkZF9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGwxYWRkX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobDFhZGRfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGwxYWRkX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDFhZGR4X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobDFhZGR4X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsMWFkZHhfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsMWFkZHhfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsMWFkZHhfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGwxYWRkeF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGwxYWRkeF9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwxYWRkeF9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDFhZGR4X1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDFhZGR4X1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobDFhZGR4X1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsMWFkZHhfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsMmFkZF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwyYWRkX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsMmFkZF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGwyYWRkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobDJhZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGwyYWRkX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDJhZGRfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsMmFkZF9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDJhZGRfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsMmFkZF9ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwyYWRkX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsMmFkZF9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGwyYWRkeF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwyYWRkeF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDJhZGR4X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDJhZGR4X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobDJhZGR4X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsMmFkZHhfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsMmFkZHhfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsMmFkZHhfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGwyYWRkeF9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGwyYWRkeF9ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwyYWRkeF9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDJhZGR4X1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDNhZGRfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsM2FkZF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDNhZGRfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsM2FkZF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwzYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsM2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGwzYWRkX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobDNhZGRfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGwzYWRkX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDNhZGRfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsM2FkZF9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDNhZGRfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsM2FkZHhfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsM2FkZHhfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGwzYWRkeF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGwzYWRkeF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGwzYWRkeF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobDNhZGR4X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobDNhZGR4X1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobDNhZGR4X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsM2FkZHhfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsM2FkZHhfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsM2FkZHhfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGwzYWRkeF9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGxpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobGlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGxpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobGlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hsaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobGlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hsaV9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGxpX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hsaV9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGxpX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobGlfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaGxpX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobHhfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hseF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobHhfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hseF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGx4X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hseF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaGx4aV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaGx4aV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NobHhpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NobHhpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NobHhpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hseGlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hyc19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaHJzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hyc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaHJzX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NocnNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaHJzX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NocnNfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hyc19ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NocnNfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hyc19ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaHJzX1kxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hyc19ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaHJzaV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaHJzaV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NocnNpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NocnNpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NocnNpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hyc2lfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hyc2lfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hyc2lfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaHJzaV9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaHJzaV9ZMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaHJzaV9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NocnNpX1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NocnVfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hydV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NocnVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hydV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaHJ1X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hydV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaHJ1X1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NocnVfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaHJ1X1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NocnVfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hydV9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NocnVfWTEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hydWlfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hydWlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaHJ1aV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zaHJ1aV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zaHJ1aV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NocnVpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3NocnVpX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NocnVpX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hydWlfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2hydWlfWTEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc2hydWlfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zaHJ1aV9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zaHJ1eF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zaHJ1eF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3NocnV4X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3NocnV4X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3NocnV4X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2hydXhfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc2h1ZmZsZWJ5dGVzX1gwLnN0ZG91dC5leHAgXAorCSBpbnNuX3Rlc3Rfc2h1ZmZsZWJ5dGVzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc2h1ZmZsZWJ5dGVzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3N0X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3N0X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3RfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3RfWTIuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3RfWTIuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdF9ZMi52Z3Rlc3QgXAorCWluc25fdGVzdF9zdDFfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3QxX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3QxX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3N0MV9ZMi5zdGRvdXQuZXhwIGluc25fdGVzdF9zdDFfWTIuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdDFfWTIudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3QxX2FkZF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zdDFfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3QxX2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zdDJfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3QyX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3QyX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3N0Ml9ZMi5zdGRvdXQuZXhwIGluc25fdGVzdF9zdDJfWTIuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdDJfWTIudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3QyX2FkZF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zdDJfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3QyX2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zdDRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3Q0X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3Q0X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3N0NF9ZMi5zdGRvdXQuZXhwIGluc25fdGVzdF9zdDRfWTIuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdDRfWTIudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3Q0X2FkZF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zdDRfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3Q0X2FkZF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zdF9hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3RfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3RfYWRkX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3N0bnRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3RudF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3N0bnRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3RudDFfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3RudDFfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdG50MV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zdG50Ml9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zdG50Ml9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3N0bnQyX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3N0bnQyX2FkZF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF9zdG50Ml9hZGRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdG50Ml9hZGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3RudDRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3RudDRfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdG50NF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zdG50NF9hZGRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3RudDRfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3RudDRfYWRkX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3N0bnRfYWRkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3N0bnRfYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3RudF9hZGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3ViX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3N1Yl9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3N1Yl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zdWJfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3ViX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3ViX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3N1Yl9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zdWJfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdWJfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3ViX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3N1Yl9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3N1Yl9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF9zdWJ4X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3N1YnhfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdWJ4X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3N1YnhfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfc3VieF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3N1YnhfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3Rfc3VieF9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF9zdWJ4X1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3Rfc3VieF9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF9zdWJ4X1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3N1YnhfWTEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF9zdWJ4X1kxLnZndGVzdCBcCisJaW5zbl90ZXN0X3RibGlkeGIwX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3RibGlkeGIwX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdGJsaWR4YjBfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjBfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdGJsaWR4YjBfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF90YmxpZHhiMF9ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF90YmxpZHhiMV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF90YmxpZHhiMV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3RibGlkeGIxX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3RibGlkeGIxX1kwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3RibGlkeGIxX1kwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdGJsaWR4YjFfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjJfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdGJsaWR4YjJfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF90YmxpZHhiMl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF90YmxpZHhiMl9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF90YmxpZHhiMl9ZMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3RibGlkeGIyX1kwLnZndGVzdCBcCisJaW5zbl90ZXN0X3RibGlkeGIzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3RibGlkeGIzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdGJsaWR4YjNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjNfWTAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdGJsaWR4YjNfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF90YmxpZHhiM19ZMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWFkZF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MWFkZF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxYWRkX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxYWRkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFhZGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFhZGR1Y19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MWFkZHVjX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFhZGR1Y19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWFkZHVjX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxYWRkdWNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWFkZHVjX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxYWRpZmZ1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxYWRpZmZ1X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFhZGlmZnVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFhdmd1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxYXZndV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxYXZndV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWNtcGVxX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxY21wZXFfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWNtcGVxX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxY21wZXFfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFjbXBlcV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxY21wZXFfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFjbXBlcWlfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFjbXBlcWlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWNtcGVxaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWNtcGVxaV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MWNtcGVxaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxY21wZXFpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxY21wbGVzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxY21wbGVzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFjbXBsZXNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFjbXBsZXNfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFjbXBsZXNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWNtcGxlc19YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MWNtcGxldV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MWNtcGxldV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxY21wbGV1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxY21wbGV1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxY21wbGV1X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFjbXBsZXVfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFjbXBsdHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFjbXBsdHNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWNtcGx0c19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWNtcGx0c19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MWNtcGx0c19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxY21wbHRzX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxY21wbHR1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxY21wbHR1X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFjbXBsdHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFjbXBsdHVfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFjbXBsdHVfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWNtcGx0dV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MWNtcG5lX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxY21wbmVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWNtcG5lX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxY21wbmVfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFjbXBuZV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxY21wbmVfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFkZG90cHVfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFkZG90cHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWRkb3RwdV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWRkb3RwdWFfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFkZG90cHVhX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFkZG90cHVhX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxZGRvdHB1c19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MWRkb3RwdXNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWRkb3RwdXNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFkZG90cHVzYV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MWRkb3RwdXNhX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFkZG90cHVzYV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWRvdHBfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFkb3RwX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFkb3RwX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxZG90cGFfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFkb3RwYV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxZG90cGFfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFkb3RwdV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MWRvdHB1X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFkb3RwdV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWRvdHB1YV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MWRvdHB1YV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxZG90cHVhX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxZG90cHVzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxZG90cHVzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFkb3RwdXNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFkb3RwdXNhX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxZG90cHVzYV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxZG90cHVzYV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWludF9oX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxaW50X2hfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWludF9oX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxaW50X2hfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFpbnRfaF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxaW50X2hfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFpbnRfbF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MWludF9sX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFpbnRfbF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MWludF9sX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxaW50X2xfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MWludF9sX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxbWF4dV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MW1heHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MW1heHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFtYXh1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxbWF4dV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxbWF4dV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MW1pbnVfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFtaW51X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFtaW51X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxbWludV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MW1pbnVfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MW1pbnVfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFtbnpfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFtbnpfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MW1uel9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MW1uel9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MW1uel9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxbW56X1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxbXVsdHVfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFtdWx0dV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxbXVsdHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFtdWx1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxbXVsdV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxbXVsdV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MW11bHVzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YxbXVsdXNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MW11bHVzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YxbXpfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFtel9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YxbXpfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFtel9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MW16X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFtel9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MXNhZGF1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yxc2FkYXVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXNhZGF1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yxc2FkdV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MXNhZHVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXNhZHVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFzaGxfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFzaGxfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXNobF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MXNobF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MXNobF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yxc2hsX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yxc2hsaV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MXNobGlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXNobGlfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFzaGxpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yxc2hsaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yxc2hsaV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MXNocnNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFzaHJzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFzaHJzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yxc2hyc19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MXNocnNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXNocnNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFzaHJzaV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MXNocnNpX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFzaHJzaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MXNocnNpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yxc2hyc2lfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXNocnNpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yxc2hydV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MXNocnVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXNocnVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFzaHJ1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yxc2hydV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yxc2hydV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MXNocnVpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yxc2hydWlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXNocnVpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yxc2hydWlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFzaHJ1aV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yxc2hydWlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFzdWJfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFzdWJfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MXN1Yl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MXN1Yl9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MXN1Yl9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yxc3ViX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yxc3VidWNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjFzdWJ1Y19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yxc3VidWNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjFzdWJ1Y19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MXN1YnVjX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjFzdWJ1Y19YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MmFkZF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MmFkZF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyYWRkX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyYWRkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyYWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJhZGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJhZGRzY19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MmFkZHNjX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJhZGRzY19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MmFkZHNjX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyYWRkc2NfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MmFkZHNjX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyYWRpZmZzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyYWRpZmZzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJhZGlmZnNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJhdmdzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyYXZnc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyYXZnc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MmNtcGVxX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyY21wZXFfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MmNtcGVxX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyY21wZXFfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJjbXBlcV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyY21wZXFfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJjbXBlcWlfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJjbXBlcWlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MmNtcGVxaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MmNtcGVxaV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MmNtcGVxaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyY21wZXFpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyY21wbGVzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyY21wbGVzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJjbXBsZXNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJjbXBsZXNfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJjbXBsZXNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MmNtcGxlc19YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MmNtcGxldV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MmNtcGxldV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyY21wbGV1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyY21wbGV1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyY21wbGV1X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJjbXBsZXVfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJjbXBsdHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJjbXBsdHNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MmNtcGx0c19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MmNtcGx0c19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MmNtcGx0c19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyY21wbHRzX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyY21wbHRzaV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MmNtcGx0c2lfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MmNtcGx0c2lfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJjbXBsdHNpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyY21wbHRzaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyY21wbHRzaV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MmNtcGx0dV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MmNtcGx0dV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyY21wbHR1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyY21wbHR1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyY21wbHR1X1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJjbXBsdHVfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJjbXBsdHVpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyY21wbHR1aV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyY21wbHR1aV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MmNtcGx0dWlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJjbXBsdHVpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJjbXBsdHVpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyY21wbmVfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJjbXBuZV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyY21wbmVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJjbXBuZV9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MmNtcG5lX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJjbXBuZV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MmRvdHBfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJkb3RwX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJkb3RwX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyZG90cGFfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJkb3RwYV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyZG90cGFfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJpbnRfaF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MmludF9oX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJpbnRfaF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MmludF9oX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YyaW50X2hfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MmludF9oX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YyaW50X2xfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJpbnRfbF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YyaW50X2xfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJpbnRfbF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MmludF9sX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJpbnRfbF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92Mm1heHNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJtYXhzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJtYXhzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YybWF4c19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92Mm1heHNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92Mm1heHNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJtaW5zX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YybWluc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YybWluc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92Mm1pbnNfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJtaW5zX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJtaW5zX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YybW56X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YybW56X1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJtbnpfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJtbnpfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJtbnpfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92Mm1uel9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92Mm11bGZzY19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92Mm11bGZzY19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YybXVsZnNjX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YybXVsc19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92Mm11bHNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92Mm11bHNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJtdWx0c19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92Mm11bHRzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJtdWx0c19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92Mm16X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YybXpfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92Mm16X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YybXpfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJtel9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YybXpfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJwYWNraF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MnBhY2toX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJwYWNraF9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MnBhY2toX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YycGFja2hfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MnBhY2toX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3YycGFja2xfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJwYWNrbF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YycGFja2xfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJwYWNrbF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MnBhY2tsX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJwYWNrbF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MnBhY2t1Y19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MnBhY2t1Y19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3YycGFja3VjX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3YycGFja3VjX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3YycGFja3VjX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJwYWNrdWNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJzYWRhc19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MnNhZGFzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJzYWRhc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MnNhZGF1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yyc2FkYXVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MnNhZGF1X1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yyc2Fkc19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MnNhZHNfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MnNhZHNfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJzYWR1X1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yyc2FkdV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yyc2FkdV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MnNobF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MnNobF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yyc2hsX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yyc2hsX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yyc2hsX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJzaGxfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJzaGxpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yyc2hsaV9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yyc2hsaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MnNobGlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJzaGxpX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJzaGxpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yyc2hsc2NfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJzaGxzY19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yyc2hsc2NfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJzaGxzY19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MnNobHNjX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJzaGxzY19YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MnNocnNfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJzaHJzX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJzaHJzX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yyc2hyc19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MnNocnNfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MnNocnNfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJzaHJzaV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MnNocnNpX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJzaHJzaV9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MnNocnNpX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yyc2hyc2lfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MnNocnNpX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yyc2hydV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92MnNocnVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MnNocnVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJzaHJ1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yyc2hydV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yyc2hydV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92MnNocnVpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Yyc2hydWlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MnNocnVpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yyc2hydWlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJzaHJ1aV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yyc2hydWlfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJzdWJfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJzdWJfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92MnN1Yl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92MnN1Yl9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MnN1Yl9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yyc3ViX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Yyc3Vic2NfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjJzdWJzY19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Yyc3Vic2NfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjJzdWJzY19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92MnN1YnNjX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjJzdWJzY19YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92NGFkZF9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92NGFkZF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Y0YWRkX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Y0YWRkX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0YWRkX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjRhZGRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjRhZGRzY19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92NGFkZHNjX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjRhZGRzY19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92NGFkZHNjX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0YWRkc2NfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92NGFkZHNjX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Y0aW50X2hfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjRpbnRfaF9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Y0aW50X2hfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjRpbnRfaF9YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92NGludF9oX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjRpbnRfaF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92NGludF9sX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0aW50X2xfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92NGludF9sX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Y0aW50X2xfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjRpbnRfbF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Y0aW50X2xfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjRwYWNrc2NfWDAuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjRwYWNrc2NfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92NHBhY2tzY19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92NHBhY2tzY19YMS5zdGRvdXQuZXhwIGluc25fdGVzdF92NHBhY2tzY19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Y0cGFja3NjX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Y0c2hsX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0c2hsX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjRzaGxfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjRzaGxfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjRzaGxfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92NHNobF9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92NHNobHNjX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0c2hsc2NfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92NHNobHNjX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Y0c2hsc2NfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjRzaGxzY19YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Y0c2hsc2NfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjRzaHJzX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0c2hyc19YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Y0c2hyc19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92NHNocnNfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfdjRzaHJzX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjRzaHJzX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3Y0c2hydV9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92NHNocnVfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92NHNocnVfWDAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjRzaHJ1X1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0c2hydV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Y0c2hydV9YMS52Z3Rlc3QgXAorCWluc25fdGVzdF92NHN1Yl9YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92NHN1Yl9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3Y0c3ViX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3Y0c3ViX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0c3ViX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjRzdWJfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfdjRzdWJzY19YMC5zdGRvdXQuZXhwIGluc25fdGVzdF92NHN1YnNjX1gwLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfdjRzdWJzY19YMC52Z3Rlc3QgXAorCWluc25fdGVzdF92NHN1YnNjX1gxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3Y0c3Vic2NfWDEuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF92NHN1YnNjX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3doNjRfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3Rfd2g2NF9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3doNjRfWDEudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfeG9yX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3hvcl9YMC5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3hvcl9YMC52Z3Rlc3QgXAorCWluc25fdGVzdF94b3JfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfeG9yX1gxLnN0ZGVyci5leHAgXAorCSBpbnNuX3Rlc3RfeG9yX1gxLnZndGVzdCBcCisJaW5zbl90ZXN0X3hvcl9ZMC5zdGRvdXQuZXhwIGluc25fdGVzdF94b3JfWTAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF94b3JfWTAudmd0ZXN0IFwKKwlpbnNuX3Rlc3RfeG9yX1kxLnN0ZG91dC5leHAgaW5zbl90ZXN0X3hvcl9ZMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3hvcl9ZMS52Z3Rlc3QgXAorCWluc25fdGVzdF94b3JpX1gwLnN0ZG91dC5leHAgaW5zbl90ZXN0X3hvcmlfWDAuc3RkZXJyLmV4cCBcCisJIGluc25fdGVzdF94b3JpX1gwLnZndGVzdCBcCisJaW5zbl90ZXN0X3hvcmlfWDEuc3Rkb3V0LmV4cCBpbnNuX3Rlc3RfeG9yaV9YMS5zdGRlcnIuZXhwIFwKKwkgaW5zbl90ZXN0X3hvcmlfWDEudmd0ZXN0CitlbmRpZgorCitiaW5fUFJPR1JBTVMgID0gZ2VuX2luc25fdGVzdAorCitpbnNuX3Rlc3RzID0KKworaW5zbl90ZXN0cyArPSBcCisJaW5zbl90ZXN0X21vdmVfWDAgIFwKKwlpbnNuX3Rlc3RfbW92ZV9YMSAgXAorCWluc25fdGVzdF9tb3ZlX1kwICBcCisJaW5zbl90ZXN0X21vdmVfWTEgIFwKKwlpbnNuX3Rlc3RfbW92ZWlfWDAgIFwKKwlpbnNuX3Rlc3RfbW92ZWlfWDEgIFwKKwlpbnNuX3Rlc3RfbW92ZWlfWTAgIFwKKwlpbnNuX3Rlc3RfbW92ZWlfWTEgIFwKKwlpbnNuX3Rlc3RfbW92ZWxpX1gwICBcCisJaW5zbl90ZXN0X21vdmVsaV9YMSAgXAorCWluc25fdGVzdF9wcmVmZXRjaF9YMSAgXAorCWluc25fdGVzdF9wcmVmZXRjaF9ZMiAgXAorCWluc25fdGVzdF9wcmVmZXRjaF9sMV9YMSAgXAorCWluc25fdGVzdF9wcmVmZXRjaF9sMV9ZMiAgXAorCWluc25fdGVzdF9wcmVmZXRjaF9sMl9YMSAgXAorCWluc25fdGVzdF9wcmVmZXRjaF9sMl9ZMiAgXAorCWluc25fdGVzdF9wcmVmZXRjaF9sM19YMSAgXAorCWluc25fdGVzdF9wcmVmZXRjaF9sM19ZMiAgXAorCWluc25fdGVzdF9hZGRfWDAgIFwKKwlpbnNuX3Rlc3RfYWRkX1gxICBcCisJaW5zbl90ZXN0X2FkZF9ZMCAgXAorCWluc25fdGVzdF9hZGRfWTEgIFwKKwlpbnNuX3Rlc3RfYWRkaV9YMCAgXAorCWluc25fdGVzdF9hZGRpX1gxICBcCisJaW5zbl90ZXN0X2FkZGlfWTAgIFwKKwlpbnNuX3Rlc3RfYWRkaV9ZMSAgXAorCWluc25fdGVzdF9hZGRsaV9YMCAgXAorCWluc25fdGVzdF9hZGRsaV9YMSAgXAorCWluc25fdGVzdF9hZGR4X1gwICBcCisJaW5zbl90ZXN0X2FkZHhfWDEgIFwKKwlpbnNuX3Rlc3RfYWRkeF9ZMCAgXAorCWluc25fdGVzdF9hZGR4X1kxICBcCisJaW5zbl90ZXN0X2FkZHhpX1gwICBcCisJaW5zbl90ZXN0X2FkZHhpX1gxICBcCisJaW5zbl90ZXN0X2FkZHhpX1kwICBcCisJaW5zbl90ZXN0X2FkZHhpX1kxICBcCisJaW5zbl90ZXN0X2FkZHhsaV9YMCAgXAorCWluc25fdGVzdF9hZGR4bGlfWDEgIFwKKwlpbnNuX3Rlc3RfYWRkeHNjX1gwICBcCisJaW5zbl90ZXN0X2FkZHhzY19YMSAgXAorCWluc25fdGVzdF9hbmRfWDAgIFwKKwlpbnNuX3Rlc3RfYW5kX1gxICBcCisJaW5zbl90ZXN0X2FuZF9ZMCAgXAorCWluc25fdGVzdF9hbmRfWTEgIFwKKwlpbnNuX3Rlc3RfYW5kaV9YMCAgXAorCWluc25fdGVzdF9hbmRpX1gxICBcCisJaW5zbl90ZXN0X2FuZGlfWTAgIFwKKwlpbnNuX3Rlc3RfYW5kaV9ZMSAgXAorCWluc25fdGVzdF9iZXF6X1gxICBcCisJaW5zbl90ZXN0X2JlcXp0X1gxICBcCisJaW5zbl90ZXN0X2JmZXh0c19YMCAgXAorCWluc25fdGVzdF9iZmV4dHVfWDAgIFwKKwlpbnNuX3Rlc3RfYmZpbnNfWDAgIFwKKwlpbnNuX3Rlc3RfYmdlel9YMSAgXAorCWluc25fdGVzdF9iZ2V6dF9YMSAgXAorCWluc25fdGVzdF9iZ3R6X1gxICBcCisJaW5zbl90ZXN0X2JndHp0X1gxICBcCisJaW5zbl90ZXN0X2JsYmNfWDEgIFwKKwlpbnNuX3Rlc3RfYmxiY3RfWDEgIFwKKwlpbnNuX3Rlc3RfYmxic19YMSAgXAorCWluc25fdGVzdF9ibGJzdF9YMSAgXAorCWluc25fdGVzdF9ibGV6X1gxICBcCisJaW5zbl90ZXN0X2JsZXp0X1gxICBcCisJaW5zbl90ZXN0X2JsdHpfWDEgIFwKKwlpbnNuX3Rlc3RfYmx0enRfWDEgIFwKKwlpbnNuX3Rlc3RfYm5lel9YMSAgXAorCWluc25fdGVzdF9ibmV6dF9YMSAgXAorCWluc25fdGVzdF9jbHpfWDAgIFwKKwlpbnNuX3Rlc3RfY2x6X1kwICBcCisJaW5zbl90ZXN0X2Ntb3ZlcXpfWDAgIFwKKwlpbnNuX3Rlc3RfY21vdmVxel9ZMCAgXAorCWluc25fdGVzdF9jbW92bmV6X1gwICBcCisJaW5zbl90ZXN0X2Ntb3ZuZXpfWTAgIFwKKwlpbnNuX3Rlc3RfY21wZXFfWDAgIFwKKwlpbnNuX3Rlc3RfY21wZXFfWDEgIFwKKwlpbnNuX3Rlc3RfY21wZXFfWTAgIFwKKwlpbnNuX3Rlc3RfY21wZXFfWTEgIFwKKwlpbnNuX3Rlc3RfY21wZXFpX1gwICBcCisJaW5zbl90ZXN0X2NtcGVxaV9YMSAgXAorCWluc25fdGVzdF9jbXBlcWlfWTAgIFwKKwlpbnNuX3Rlc3RfY21wZXFpX1kxICBcCisJaW5zbl90ZXN0X2NtcGxlc19YMCAgXAorCWluc25fdGVzdF9jbXBsZXNfWDEgIFwKKwlpbnNuX3Rlc3RfY21wbGVzX1kwICBcCisJaW5zbl90ZXN0X2NtcGxlc19ZMSAgXAorCWluc25fdGVzdF9jbXBsZXVfWDAgIFwKKwlpbnNuX3Rlc3RfY21wbGV1X1gxICBcCisJaW5zbl90ZXN0X2NtcGxldV9ZMCAgXAorCWluc25fdGVzdF9jbXBsZXVfWTEgIFwKKwlpbnNuX3Rlc3RfY21wbHRzX1gwICBcCisJaW5zbl90ZXN0X2NtcGx0c19YMSAgXAorCWluc25fdGVzdF9jbXBsdHNfWTAgIFwKKwlpbnNuX3Rlc3RfY21wbHRzX1kxICBcCisJaW5zbl90ZXN0X2NtcGx0c2lfWDAgIFwKKwlpbnNuX3Rlc3RfY21wbHRzaV9YMSAgXAorCWluc25fdGVzdF9jbXBsdHNpX1kwICBcCisJaW5zbl90ZXN0X2NtcGx0c2lfWTEgIFwKKwlpbnNuX3Rlc3RfY21wbHR1X1gwICBcCisJaW5zbl90ZXN0X2NtcGx0dV9YMSAgXAorCWluc25fdGVzdF9jbXBsdHVfWTAgIFwKKwlpbnNuX3Rlc3RfY21wbHR1X1kxICBcCisJaW5zbl90ZXN0X2NtcGx0dWlfWDAgIFwKKwlpbnNuX3Rlc3RfY21wbHR1aV9YMSAgXAorCWluc25fdGVzdF9jbXBuZV9YMCAgXAorCWluc25fdGVzdF9jbXBuZV9YMSAgXAorCWluc25fdGVzdF9jbXBuZV9ZMCAgXAorCWluc25fdGVzdF9jbXBuZV9ZMSAgXAorCWluc25fdGVzdF9jbXVsX1gwICBcCisJaW5zbl90ZXN0X2NtdWxhX1gwICBcCisJaW5zbl90ZXN0X2NtdWxhZl9YMCAgXAorCWluc25fdGVzdF9jbXVsZl9YMCAgXAorCWluc25fdGVzdF9jbXVsZnJfWDAgIFwKKwlpbnNuX3Rlc3RfY211bGhfWDAgIFwKKwlpbnNuX3Rlc3RfY211bGhyX1gwICBcCisJaW5zbl90ZXN0X2NyYzMyXzMyX1gwICBcCisJaW5zbl90ZXN0X2NyYzMyXzhfWDAgIFwKKwlpbnNuX3Rlc3RfY3R6X1gwICBcCisJaW5zbl90ZXN0X2N0el9ZMCAgXAorCWluc25fdGVzdF9kYmxhbGlnbl9YMCAgXAorCWluc25fdGVzdF9kYmxhbGlnbjJfWDAgIFwKKwlpbnNuX3Rlc3RfZGJsYWxpZ24yX1gxICBcCisJaW5zbl90ZXN0X2RibGFsaWduNF9YMCAgXAorCWluc25fdGVzdF9kYmxhbGlnbjRfWDEgIFwKKwlpbnNuX3Rlc3RfZGJsYWxpZ242X1gwICBcCisJaW5zbl90ZXN0X2RibGFsaWduNl9YMSAgXAorCWluc25fdGVzdF9kdGxicHJfWDEgIFwKKwlpbnNuX3Rlc3RfZmRvdWJsZV9hZGRfZmxhZ3NfWDAgIFwKKwlpbnNuX3Rlc3RfZmRvdWJsZV9hZGRzdWJfWDAgIFwKKwlpbnNuX3Rlc3RfZmRvdWJsZV9tdWxfZmxhZ3NfWDAgIFwKKwlpbnNuX3Rlc3RfZmRvdWJsZV9wYWNrMV9YMCAgXAorCWluc25fdGVzdF9mZG91YmxlX3BhY2syX1gwICBcCisJaW5zbl90ZXN0X2Zkb3VibGVfc3ViX2ZsYWdzX1gwICBcCisJaW5zbl90ZXN0X2Zkb3VibGVfdW5wYWNrX21heF9YMCAgXAorCWluc25fdGVzdF9mZG91YmxlX3VucGFja19taW5fWDAgIFwKKwlpbnNuX3Rlc3RfZmx1c2h3Yl9YMSAgXAorCWluc25fdGVzdF9mbm9wX1gwICBcCisJaW5zbl90ZXN0X2Zub3BfWDEgIFwKKwlpbnNuX3Rlc3RfZm5vcF9ZMCAgXAorCWluc25fdGVzdF9mbm9wX1kxICBcCisJaW5zbl90ZXN0X2ZzaW5nbGVfYWRkMV9YMCAgXAorCWluc25fdGVzdF9mc2luZ2xlX2FkZHN1YjJfWDAgIFwKKwlpbnNuX3Rlc3RfZnNpbmdsZV9tdWwxX1gwICBcCisJaW5zbl90ZXN0X2ZzaW5nbGVfbXVsMl9YMCAgXAorCWluc25fdGVzdF9mc2luZ2xlX3BhY2sxX1gwICBcCisJaW5zbl90ZXN0X2ZzaW5nbGVfcGFjazFfWTAgIFwKKwlpbnNuX3Rlc3RfZnNpbmdsZV9wYWNrMl9YMCAgXAorCWluc25fdGVzdF9mc2luZ2xlX3N1YjFfWDAgIFwKKwlpbnNuX3Rlc3RfaWNvaF9YMSAgXAorCWluc25fdGVzdF9qX1gxICBcCisJaW5zbl90ZXN0X2phbF9YMSAgXAorCWluc25fdGVzdF9qYWxyX1gxICBcCisJaW5zbl90ZXN0X2phbHJfWTEgIFwKKwlpbnNuX3Rlc3RfamFscnBfWDEgIFwKKwlpbnNuX3Rlc3RfamFscnBfWTEgIFwKKwlpbnNuX3Rlc3RfanJfWDEgIFwKKwlpbnNuX3Rlc3RfanJfWTEgIFwKKwlpbnNuX3Rlc3RfanJwX1gxICBcCisJaW5zbl90ZXN0X2pycF9ZMSAgXAorCWluc25fdGVzdF9sZF9YMSAgXAorCWluc25fdGVzdF9sZF9ZMiAgXAorCWluc25fdGVzdF9sZDFzX1gxICBcCisJaW5zbl90ZXN0X2xkMXNfWTIgIFwKKwlpbnNuX3Rlc3RfbGQxc19hZGRfWDEgIFwKKwlpbnNuX3Rlc3RfbGQxdV9YMSAgXAorCWluc25fdGVzdF9sZDF1X1kyICBcCisJaW5zbl90ZXN0X2xkMXVfYWRkX1gxICBcCisJaW5zbl90ZXN0X2xkMnNfWDEgIFwKKwlpbnNuX3Rlc3RfbGQyc19ZMiAgXAorCWluc25fdGVzdF9sZDJ1X1gxICBcCisJaW5zbl90ZXN0X2xkMnVfWTIgIFwKKwlpbnNuX3Rlc3RfbGQ0c19YMSAgXAorCWluc25fdGVzdF9sZDRzX2FkZF9YMSAgXAorCWluc25fdGVzdF9sZDR1X1gxICBcCisJaW5zbl90ZXN0X2xkNHVfWTIgIFwKKwlpbnNuX3Rlc3RfbGQ0dV9hZGRfWDEgIFwKKwlpbnNuX3Rlc3RfbGRfYWRkX1gxICBcCisJaW5zbl90ZXN0X2xkbmFfWDEgIFwKKwlpbnNuX3Rlc3RfbGRuYV9hZGRfWDEgIFwKKwlpbnNuX3Rlc3RfbGRudF9YMSAgXAorCWluc25fdGVzdF9sZG50MXNfWDEgIFwKKwlpbnNuX3Rlc3RfbGRudDFzX2FkZF9YMSAgXAorCWluc25fdGVzdF9sZG50MXVfWDEgIFwKKwlpbnNuX3Rlc3RfbGRudDF1X2FkZF9YMSAgXAorCWluc25fdGVzdF9sZG50MnNfWDEgIFwKKwlpbnNuX3Rlc3RfbGRudDJzX2FkZF9YMSAgXAorCWluc25fdGVzdF9sZG50MnVfYWRkX1gxICBcCisJaW5zbl90ZXN0X2xkbnQ0c19YMSAgXAorCWluc25fdGVzdF9sZG50NHNfYWRkX1gxICBcCisJaW5zbl90ZXN0X2xkbnQ0dV9YMSAgXAorCWluc25fdGVzdF9sZG50NHVfYWRkX1gxICBcCisJaW5zbl90ZXN0X2xkbnRfYWRkX1gxICBcCisJaW5zbl90ZXN0X2xua19YMSAgXAorCWluc25fdGVzdF9sbmtfWTEgIFwKKwlpbnNuX3Rlc3RfbWZfWDEgIFwKKwlpbnNuX3Rlc3RfbW1fWDAgIFwKKwlpbnNuX3Rlc3RfbW56X1gwICBcCisJaW5zbl90ZXN0X21uel9YMSAgXAorCWluc25fdGVzdF9tbnpfWTAgIFwKKwlpbnNuX3Rlc3RfbW56X1kxICBcCisJaW5zbl90ZXN0X211bF9oc19oc19YMCAgXAorCWluc25fdGVzdF9tdWxfaHNfaHNfWTAgIFwKKwlpbnNuX3Rlc3RfbXVsX2hzX2h1X1gwICBcCisJaW5zbl90ZXN0X211bF9oc19sc19YMCAgXAorCWluc25fdGVzdF9tdWxfaHNfbHVfWDAgIFwKKwlpbnNuX3Rlc3RfbXVsX2h1X2h1X1gwICBcCisJaW5zbl90ZXN0X211bF9odV9odV9ZMCAgXAorCWluc25fdGVzdF9tdWxfaHVfbHVfWDAgIFwKKwlpbnNuX3Rlc3RfbXVsX2xzX2xzX1gwICBcCisJaW5zbl90ZXN0X211bF9sc19sc19ZMCAgXAorCWluc25fdGVzdF9tdWxfbHNfbHVfWDAgIFwKKwlpbnNuX3Rlc3RfbXVsX2x1X2x1X1gwICBcCisJaW5zbl90ZXN0X211bF9sdV9sdV9ZMCAgXAorCWluc25fdGVzdF9tdWxhX2hzX2hzX1gwICBcCisJaW5zbl90ZXN0X211bGFfaHNfaHNfWTAgIFwKKwlpbnNuX3Rlc3RfbXVsYV9oc19odV9YMCAgXAorCWluc25fdGVzdF9tdWxhX2hzX2xzX1gwICBcCisJaW5zbl90ZXN0X211bGFfaHNfbHVfWDAgIFwKKwlpbnNuX3Rlc3RfbXVsYV9odV9odV9YMCAgXAorCWluc25fdGVzdF9tdWxhX2h1X2h1X1kwICBcCisJaW5zbl90ZXN0X211bGFfaHVfbHNfWDAgIFwKKwlpbnNuX3Rlc3RfbXVsYV9odV9sdV9YMCAgXAorCWluc25fdGVzdF9tdWxhX2xzX2xzX1gwICBcCisJaW5zbl90ZXN0X211bGFfbHNfbHNfWTAgIFwKKwlpbnNuX3Rlc3RfbXVsYV9sc19sdV9YMCAgXAorCWluc25fdGVzdF9tdWxhX2x1X2x1X1gwICBcCisJaW5zbl90ZXN0X211bGFfbHVfbHVfWTAgIFwKKwlpbnNuX3Rlc3RfbXVsYXhfWDAgIFwKKwlpbnNuX3Rlc3RfbXVsYXhfWTAgIFwKKwlpbnNuX3Rlc3RfbXVseF9YMCAgXAorCWluc25fdGVzdF9tdWx4X1kwICBcCisJaW5zbl90ZXN0X216X1gwICBcCisJaW5zbl90ZXN0X216X1gxICBcCisJaW5zbl90ZXN0X216X1kwICBcCisJaW5zbl90ZXN0X216X1kxICBcCisJaW5zbl90ZXN0X25vcF9YMCAgXAorCWluc25fdGVzdF9ub3BfWDEgIFwKKwlpbnNuX3Rlc3Rfbm9wX1kwICBcCisJaW5zbl90ZXN0X25vcF9ZMSAgXAorCWluc25fdGVzdF9ub3JfWDAgIFwKKwlpbnNuX3Rlc3Rfbm9yX1gxICBcCisJaW5zbl90ZXN0X25vcl9ZMCAgXAorCWluc25fdGVzdF9ub3JfWTEgIFwKKwlpbnNuX3Rlc3Rfb3JfWDAgIFwKKwlpbnNuX3Rlc3Rfb3JfWDEgIFwKKwlpbnNuX3Rlc3Rfb3JfWTAgIFwKKwlpbnNuX3Rlc3Rfb3JfWTEgIFwKKwlpbnNuX3Rlc3Rfb3JpX1gwICBcCisJaW5zbl90ZXN0X29yaV9YMSAgXAorCWluc25fdGVzdF9wY250X1gwICBcCisJaW5zbl90ZXN0X3BjbnRfWTAgIFwKKwlpbnNuX3Rlc3RfcmV2Yml0c19YMCAgXAorCWluc25fdGVzdF9yZXZiaXRzX1kwICBcCisJaW5zbl90ZXN0X3JldmJ5dGVzX1gwICBcCisJaW5zbl90ZXN0X3JldmJ5dGVzX1kwICBcCisJaW5zbl90ZXN0X3JvdGxfWDAgIFwKKwlpbnNuX3Rlc3Rfcm90bF9YMSAgXAorCWluc25fdGVzdF9yb3RsX1kwICBcCisJaW5zbl90ZXN0X3JvdGxfWTEgIFwKKwlpbnNuX3Rlc3Rfcm90bGlfWDAgIFwKKwlpbnNuX3Rlc3Rfcm90bGlfWDEgIFwKKwlpbnNuX3Rlc3Rfcm90bGlfWTAgIFwKKwlpbnNuX3Rlc3Rfcm90bGlfWTEgIFwKKwlpbnNuX3Rlc3Rfc2hsX1gwICBcCisJaW5zbl90ZXN0X3NobF9YMSAgXAorCWluc25fdGVzdF9zaGxfWTAgIFwKKwlpbnNuX3Rlc3Rfc2hsX1kxICBcCisJaW5zbl90ZXN0X3NobDE2aW5zbGlfWDAgIFwKKwlpbnNuX3Rlc3Rfc2hsMTZpbnNsaV9YMSAgXAorCWluc25fdGVzdF9zaGwxYWRkX1gwICBcCisJaW5zbl90ZXN0X3NobDFhZGRfWDEgIFwKKwlpbnNuX3Rlc3Rfc2hsMWFkZF9ZMCAgXAorCWluc25fdGVzdF9zaGwxYWRkX1kxICBcCisJaW5zbl90ZXN0X3NobDFhZGR4X1gwICBcCisJaW5zbl90ZXN0X3NobDFhZGR4X1gxICBcCisJaW5zbl90ZXN0X3NobDFhZGR4X1kwICBcCisJaW5zbl90ZXN0X3NobDFhZGR4X1kxICBcCisJaW5zbl90ZXN0X3NobDJhZGRfWDAgIFwKKwlpbnNuX3Rlc3Rfc2hsMmFkZF9YMSAgXAorCWluc25fdGVzdF9zaGwyYWRkX1kwICBcCisJaW5zbl90ZXN0X3NobDJhZGRfWTEgIFwKKwlpbnNuX3Rlc3Rfc2hsMmFkZHhfWDAgIFwKKwlpbnNuX3Rlc3Rfc2hsMmFkZHhfWDEgIFwKKwlpbnNuX3Rlc3Rfc2hsMmFkZHhfWTAgIFwKKwlpbnNuX3Rlc3Rfc2hsMmFkZHhfWTEgIFwKKwlpbnNuX3Rlc3Rfc2hsM2FkZF9YMCAgXAorCWluc25fdGVzdF9zaGwzYWRkX1gxICBcCisJaW5zbl90ZXN0X3NobDNhZGRfWTAgIFwKKwlpbnNuX3Rlc3Rfc2hsM2FkZF9ZMSAgXAorCWluc25fdGVzdF9zaGwzYWRkeF9YMCAgXAorCWluc25fdGVzdF9zaGwzYWRkeF9YMSAgXAorCWluc25fdGVzdF9zaGwzYWRkeF9ZMCAgXAorCWluc25fdGVzdF9zaGwzYWRkeF9ZMSAgXAorCWluc25fdGVzdF9zaGxpX1gwICBcCisJaW5zbl90ZXN0X3NobGlfWDEgIFwKKwlpbnNuX3Rlc3Rfc2hsaV9ZMCAgXAorCWluc25fdGVzdF9zaGxpX1kxICBcCisJaW5zbl90ZXN0X3NobHhfWDAgIFwKKwlpbnNuX3Rlc3Rfc2hseF9YMSAgXAorCWluc25fdGVzdF9zaGx4aV9YMCAgXAorCWluc25fdGVzdF9zaGx4aV9YMSAgXAorCWluc25fdGVzdF9zaHJzX1gwICBcCisJaW5zbl90ZXN0X3NocnNfWDEgIFwKKwlpbnNuX3Rlc3Rfc2hyc19ZMCAgXAorCWluc25fdGVzdF9zaHJzX1kxICBcCisJaW5zbl90ZXN0X3NocnNpX1gwICBcCisJaW5zbl90ZXN0X3NocnNpX1gxICBcCisJaW5zbl90ZXN0X3NocnNpX1kwICBcCisJaW5zbl90ZXN0X3NocnNpX1kxICBcCisJaW5zbl90ZXN0X3NocnVfWDAgIFwKKwlpbnNuX3Rlc3Rfc2hydV9YMSAgXAorCWluc25fdGVzdF9zaHJ1X1kwICBcCisJaW5zbl90ZXN0X3NocnVfWTEgIFwKKwlpbnNuX3Rlc3Rfc2hydWlfWDAgIFwKKwlpbnNuX3Rlc3Rfc2hydWlfWDEgIFwKKwlpbnNuX3Rlc3Rfc2hydWlfWTAgIFwKKwlpbnNuX3Rlc3Rfc2hydWlfWTEgIFwKKwlpbnNuX3Rlc3Rfc2hydXhfWDAgIFwKKwlpbnNuX3Rlc3Rfc2hydXhfWDEgIFwKKwlpbnNuX3Rlc3Rfc2h1ZmZsZWJ5dGVzX1gwICBcCisJaW5zbl90ZXN0X3N0X1gxICBcCisJaW5zbl90ZXN0X3N0X1kyICBcCisJaW5zbl90ZXN0X3N0MV9YMSAgXAorCWluc25fdGVzdF9zdDFfWTIgIFwKKwlpbnNuX3Rlc3Rfc3QxX2FkZF9YMSAgXAorCWluc25fdGVzdF9zdDJfWDEgIFwKKwlpbnNuX3Rlc3Rfc3QyX1kyICBcCisJaW5zbl90ZXN0X3N0Ml9hZGRfWDEgIFwKKwlpbnNuX3Rlc3Rfc3Q0X1gxICBcCisJaW5zbl90ZXN0X3N0NF9ZMiAgXAorCWluc25fdGVzdF9zdDRfYWRkX1gxICBcCisJaW5zbl90ZXN0X3N0X2FkZF9YMSAgXAorCWluc25fdGVzdF9zdG50X1gxICBcCisJaW5zbl90ZXN0X3N0bnQxX1gxICBcCisJaW5zbl90ZXN0X3N0bnQyX1gxICBcCisJaW5zbl90ZXN0X3N0bnQyX2FkZF9YMSAgXAorCWluc25fdGVzdF9zdG50NF9YMSAgXAorCWluc25fdGVzdF9zdG50NF9hZGRfWDEgIFwKKwlpbnNuX3Rlc3Rfc3RudF9hZGRfWDEgIFwKKwlpbnNuX3Rlc3Rfc3ViX1gwICBcCisJaW5zbl90ZXN0X3N1Yl9YMSAgXAorCWluc25fdGVzdF9zdWJfWTAgIFwKKwlpbnNuX3Rlc3Rfc3ViX1kxICBcCisJaW5zbl90ZXN0X3N1YnhfWDAgIFwKKwlpbnNuX3Rlc3Rfc3VieF9YMSAgXAorCWluc25fdGVzdF9zdWJ4X1kwICBcCisJaW5zbl90ZXN0X3N1YnhfWTEgIFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjBfWDAgIFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjBfWTAgIFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjFfWDAgIFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjFfWTAgIFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjJfWDAgIFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjJfWTAgIFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjNfWDAgIFwKKwlpbnNuX3Rlc3RfdGJsaWR4YjNfWTAgIFwKKwlpbnNuX3Rlc3RfdjFhZGRfWDAgIFwKKwlpbnNuX3Rlc3RfdjFhZGRfWDEgIFwKKwlpbnNuX3Rlc3RfdjFhZGR1Y19YMCAgXAorCWluc25fdGVzdF92MWFkZHVjX1gxICBcCisJaW5zbl90ZXN0X3YxYWRpZmZ1X1gwICBcCisJaW5zbl90ZXN0X3YxYXZndV9YMCAgXAorCWluc25fdGVzdF92MWNtcGVxX1gwICBcCisJaW5zbl90ZXN0X3YxY21wZXFfWDEgIFwKKwlpbnNuX3Rlc3RfdjFjbXBlcWlfWDAgIFwKKwlpbnNuX3Rlc3RfdjFjbXBlcWlfWDEgIFwKKwlpbnNuX3Rlc3RfdjFjbXBsZXNfWDAgIFwKKwlpbnNuX3Rlc3RfdjFjbXBsZXNfWDEgIFwKKwlpbnNuX3Rlc3RfdjFjbXBsZXVfWDAgIFwKKwlpbnNuX3Rlc3RfdjFjbXBsZXVfWDEgIFwKKwlpbnNuX3Rlc3RfdjFjbXBsdHNfWDAgIFwKKwlpbnNuX3Rlc3RfdjFjbXBsdHNfWDEgIFwKKwlpbnNuX3Rlc3RfdjFjbXBsdHVfWDAgIFwKKwlpbnNuX3Rlc3RfdjFjbXBsdHVfWDEgIFwKKwlpbnNuX3Rlc3RfdjFjbXBuZV9YMCAgXAorCWluc25fdGVzdF92MWNtcG5lX1gxICBcCisJaW5zbl90ZXN0X3YxZGRvdHB1X1gwICBcCisJaW5zbl90ZXN0X3YxZGRvdHB1YV9YMCAgXAorCWluc25fdGVzdF92MWRkb3RwdXNfWDAgIFwKKwlpbnNuX3Rlc3RfdjFkZG90cHVzYV9YMCAgXAorCWluc25fdGVzdF92MWRvdHBfWDAgIFwKKwlpbnNuX3Rlc3RfdjFkb3RwYV9YMCAgXAorCWluc25fdGVzdF92MWRvdHB1X1gwICBcCisJaW5zbl90ZXN0X3YxZG90cHVhX1gwICBcCisJaW5zbl90ZXN0X3YxZG90cHVzX1gwICBcCisJaW5zbl90ZXN0X3YxZG90cHVzYV9YMCAgXAorCWluc25fdGVzdF92MWludF9oX1gwICBcCisJaW5zbl90ZXN0X3YxaW50X2hfWDEgIFwKKwlpbnNuX3Rlc3RfdjFpbnRfbF9YMCAgXAorCWluc25fdGVzdF92MWludF9sX1gxICBcCisJaW5zbl90ZXN0X3YxbWF4dV9YMCAgXAorCWluc25fdGVzdF92MW1heHVfWDEgIFwKKwlpbnNuX3Rlc3RfdjFtaW51X1gwICBcCisJaW5zbl90ZXN0X3YxbWludV9YMSAgXAorCWluc25fdGVzdF92MW1uel9YMCAgXAorCWluc25fdGVzdF92MW1uel9YMSAgXAorCWluc25fdGVzdF92MW11bHR1X1gwICBcCisJaW5zbl90ZXN0X3YxbXVsdV9YMCAgXAorCWluc25fdGVzdF92MW11bHVzX1gwICBcCisJaW5zbl90ZXN0X3YxbXpfWDAgIFwKKwlpbnNuX3Rlc3RfdjFtel9YMSAgXAorCWluc25fdGVzdF92MXNhZGF1X1gwICBcCisJaW5zbl90ZXN0X3Yxc2FkdV9YMCAgXAorCWluc25fdGVzdF92MXNobF9YMCAgXAorCWluc25fdGVzdF92MXNobF9YMSAgXAorCWluc25fdGVzdF92MXNobGlfWDAgIFwKKwlpbnNuX3Rlc3RfdjFzaGxpX1gxICBcCisJaW5zbl90ZXN0X3Yxc2hyc19YMCAgXAorCWluc25fdGVzdF92MXNocnNfWDEgIFwKKwlpbnNuX3Rlc3RfdjFzaHJzaV9YMCAgXAorCWluc25fdGVzdF92MXNocnNpX1gxICBcCisJaW5zbl90ZXN0X3Yxc2hydV9YMCAgXAorCWluc25fdGVzdF92MXNocnVfWDEgIFwKKwlpbnNuX3Rlc3RfdjFzaHJ1aV9YMCAgXAorCWluc25fdGVzdF92MXNocnVpX1gxICBcCisJaW5zbl90ZXN0X3Yxc3ViX1gwICBcCisJaW5zbl90ZXN0X3Yxc3ViX1gxICBcCisJaW5zbl90ZXN0X3Yxc3VidWNfWDAgIFwKKwlpbnNuX3Rlc3RfdjFzdWJ1Y19YMSAgXAorCWluc25fdGVzdF92MmFkZF9YMCAgXAorCWluc25fdGVzdF92MmFkZF9YMSAgXAorCWluc25fdGVzdF92MmFkZHNjX1gwICBcCisJaW5zbl90ZXN0X3YyYWRkc2NfWDEgIFwKKwlpbnNuX3Rlc3RfdjJhZGlmZnNfWDAgIFwKKwlpbnNuX3Rlc3RfdjJhdmdzX1gwICBcCisJaW5zbl90ZXN0X3YyY21wZXFfWDAgIFwKKwlpbnNuX3Rlc3RfdjJjbXBlcV9YMSAgXAorCWluc25fdGVzdF92MmNtcGVxaV9YMCAgXAorCWluc25fdGVzdF92MmNtcGVxaV9YMSAgXAorCWluc25fdGVzdF92MmNtcGxlc19YMCAgXAorCWluc25fdGVzdF92MmNtcGxlc19YMSAgXAorCWluc25fdGVzdF92MmNtcGxldV9YMCAgXAorCWluc25fdGVzdF92MmNtcGxldV9YMSAgXAorCWluc25fdGVzdF92MmNtcGx0c19YMCAgXAorCWluc25fdGVzdF92MmNtcGx0c19YMSAgXAorCWluc25fdGVzdF92MmNtcGx0c2lfWDAgIFwKKwlpbnNuX3Rlc3RfdjJjbXBsdHNpX1gxICBcCisJaW5zbl90ZXN0X3YyY21wbHR1X1gwICBcCisJaW5zbl90ZXN0X3YyY21wbHR1X1gxICBcCisJaW5zbl90ZXN0X3YyY21wbHR1aV9YMCAgXAorCWluc25fdGVzdF92MmNtcGx0dWlfWDEgIFwKKwlpbnNuX3Rlc3RfdjJjbXBuZV9YMCAgXAorCWluc25fdGVzdF92MmNtcG5lX1gxICBcCisJaW5zbl90ZXN0X3YyZG90cF9YMCAgXAorCWluc25fdGVzdF92MmRvdHBhX1gwICBcCisJaW5zbl90ZXN0X3YyaW50X2hfWDAgIFwKKwlpbnNuX3Rlc3RfdjJpbnRfaF9YMSAgXAorCWluc25fdGVzdF92MmludF9sX1gwICBcCisJaW5zbl90ZXN0X3YyaW50X2xfWDEgIFwKKwlpbnNuX3Rlc3RfdjJtYXhzX1gwICBcCisJaW5zbl90ZXN0X3YybWF4c19YMSAgXAorCWluc25fdGVzdF92Mm1pbnNfWDAgIFwKKwlpbnNuX3Rlc3RfdjJtaW5zX1gxICBcCisJaW5zbl90ZXN0X3YybW56X1gwICBcCisJaW5zbl90ZXN0X3YybW56X1gxICBcCisJaW5zbl90ZXN0X3YybXVsZnNjX1gwICBcCisJaW5zbl90ZXN0X3YybXVsc19YMCAgXAorCWluc25fdGVzdF92Mm11bHRzX1gwICBcCisJaW5zbl90ZXN0X3YybXpfWDAgIFwKKwlpbnNuX3Rlc3RfdjJtel9YMSAgXAorCWluc25fdGVzdF92MnBhY2toX1gwICBcCisJaW5zbl90ZXN0X3YycGFja2hfWDEgIFwKKwlpbnNuX3Rlc3RfdjJwYWNrbF9YMCAgXAorCWluc25fdGVzdF92MnBhY2tsX1gxICBcCisJaW5zbl90ZXN0X3YycGFja3VjX1gwICBcCisJaW5zbl90ZXN0X3YycGFja3VjX1gxICBcCisJaW5zbl90ZXN0X3Yyc2FkYXNfWDAgIFwKKwlpbnNuX3Rlc3RfdjJzYWRhdV9YMCAgXAorCWluc25fdGVzdF92MnNhZHNfWDAgIFwKKwlpbnNuX3Rlc3RfdjJzYWR1X1gwICBcCisJaW5zbl90ZXN0X3Yyc2hsX1gwICBcCisJaW5zbl90ZXN0X3Yyc2hsX1gxICBcCisJaW5zbl90ZXN0X3Yyc2hsaV9YMCAgXAorCWluc25fdGVzdF92MnNobGlfWDEgIFwKKwlpbnNuX3Rlc3RfdjJzaGxzY19YMCAgXAorCWluc25fdGVzdF92MnNobHNjX1gxICBcCisJaW5zbl90ZXN0X3Yyc2hyc19YMCAgXAorCWluc25fdGVzdF92MnNocnNfWDEgIFwKKwlpbnNuX3Rlc3RfdjJzaHJzaV9YMCAgXAorCWluc25fdGVzdF92MnNocnNpX1gxICBcCisJaW5zbl90ZXN0X3Yyc2hydV9YMCAgXAorCWluc25fdGVzdF92MnNocnVfWDEgIFwKKwlpbnNuX3Rlc3RfdjJzaHJ1aV9YMCAgXAorCWluc25fdGVzdF92MnNocnVpX1gxICBcCisJaW5zbl90ZXN0X3Yyc3ViX1gwICBcCisJaW5zbl90ZXN0X3Yyc3ViX1gxICBcCisJaW5zbl90ZXN0X3Yyc3Vic2NfWDAgIFwKKwlpbnNuX3Rlc3RfdjJzdWJzY19YMSAgXAorCWluc25fdGVzdF92NGFkZF9YMCAgXAorCWluc25fdGVzdF92NGFkZF9YMSAgXAorCWluc25fdGVzdF92NGFkZHNjX1gwICBcCisJaW5zbl90ZXN0X3Y0YWRkc2NfWDEgIFwKKwlpbnNuX3Rlc3RfdjRpbnRfaF9YMCAgXAorCWluc25fdGVzdF92NGludF9oX1gxICBcCisJaW5zbl90ZXN0X3Y0aW50X2xfWDAgIFwKKwlpbnNuX3Rlc3RfdjRpbnRfbF9YMSAgXAorCWluc25fdGVzdF92NHBhY2tzY19YMCAgXAorCWluc25fdGVzdF92NHBhY2tzY19YMSAgXAorCWluc25fdGVzdF92NHNobF9YMCAgXAorCWluc25fdGVzdF92NHNobF9YMSAgXAorCWluc25fdGVzdF92NHNobHNjX1gwICBcCisJaW5zbl90ZXN0X3Y0c2hsc2NfWDEgIFwKKwlpbnNuX3Rlc3RfdjRzaHJzX1gwICBcCisJaW5zbl90ZXN0X3Y0c2hyc19YMSAgXAorCWluc25fdGVzdF92NHNocnVfWDAgIFwKKwlpbnNuX3Rlc3RfdjRzaHJ1X1gxICBcCisJaW5zbl90ZXN0X3Y0c3ViX1gwICBcCisJaW5zbl90ZXN0X3Y0c3ViX1gxICBcCisJaW5zbl90ZXN0X3Y0c3Vic2NfWDAgIFwKKwlpbnNuX3Rlc3RfdjRzdWJzY19YMSAgXAorCWluc25fdGVzdF93aDY0X1gxICBcCisJaW5zbl90ZXN0X3hvcl9YMCAgXAorCWluc25fdGVzdF94b3JfWDEgIFwKKwlpbnNuX3Rlc3RfeG9yX1kwICBcCisJaW5zbl90ZXN0X3hvcl9ZMSAgXAorCWluc25fdGVzdF94b3JpX1gwICBcCisJaW5zbl90ZXN0X3hvcmlfWDEKIAogY2hlY2tfUFJPR1JBTVMgPSBcCi0JYWxsZXhlYworCWFsbGV4ZWMgXAorCSQoaW5zbl90ZXN0cykKIAotQU1fQ0ZMQUdTICAgICs9IEBGTEFHX002NEAKK0FNX0NGTEFHUyAgICArPSBARkxBR19NNjRAIC13CiBBTV9DWFhGTEFHUyAgKz0gQEZMQUdfTTY0QAogQU1fQ0NBU0ZMQUdTICs9IEBGTEFHX002NEAKIAogYWxsZXhlY19DRkxBR1MgICAgICAgICAgPSAkKEFNX0NGTEFHUykgQEZMQUdfV19OT19OT05OVUxMQAorZ2VuX2luc25fdGVzdF9DRkxBR1MgICAgPSAkKEFNX0NGTEFHUykgQEZMQUdfV19OT19OT05OVUxMQCAtSSQodG9wX3NyY2RpcikvVkVYL3ByaXYKK2dlbl9pbnNuX3Rlc3RfTERBREQgICAgID0gLi4vLi4vLi4vVkVYL3ByaXYvdGlsZWd4X2Rpc2FzbS5vCisKKyQoYWRkc3VmZml4IC5jLCAkKGluc25fdGVzdHMpKSA6IGdlbl9pbnNuX3Rlc3QKKwlAJChzcmNkaXIpL2dlbl90ZXN0LnNoICRACisKKyQoYWRkc3VmZml4IC5zdGRvdXQuZXhwLCAkKGluc25fdGVzdHMpKSA6ICQoaW5zbl90ZXN0cykKKwkuLyQoYmFzZW5hbWUgJChiYXNlbmFtZSAkQCkpID4gJEAKKworJChhZGRzdWZmaXggLnN0ZGVyci5leHAsICQoaW5zbl90ZXN0cykpIDoKKwl0b3VjaCAgJEAKKworJChhZGRzdWZmaXggLnZndGVzdCwgJChpbnNuX3Rlc3RzKSkgOgorCWVjaG8gLWUgInByb2c6ICQoYmFzZW5hbWUgJEApXG52Z29wdHM6IC1xIiA+ICRACisKK2NoZWNrLWFtIDogJChhZGRzdWZmaXggLnN0ZG91dC5leHAsICQoaW5zbl90ZXN0cykpICAkKGFkZHN1ZmZpeCAuc3RkZXJyLmV4cCwgJChpbnNuX3Rlc3RzKSkgJChhZGRzdWZmaXggLnZndGVzdCwgJChpbnNuX3Rlc3RzKSkKKworY2xlYW4tYW0gOgorCUBybSAtZiAqLnN0ZGVyci5leHAgKi5zdGRvdXQuZXhwICoudmd0ZXN0ICQoYWRkc3VmZml4IC5jLCAkKGluc25fdGVzdHMpKSAgJChhZGRzdWZmaXggLm8sICQoaW5zbl90ZXN0cykpICQoaW5zbl90ZXN0cykKKwlAcm0gLWYgKi5vICAkKGJpbl9QUk9HUkFNUykKKworZGlzdGNsZWFuLWFtIDogY2xlYW4tYW0KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvdGlsZWd4L2ZpbHRlcl9zdGRlcnIgYi9ub25lL3Rlc3RzL3RpbGVneC9maWx0ZXJfc3RkZXJyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxNmNlMDUKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3RpbGVneC9maWx0ZXJfc3RkZXJyCkBAIC0wLDAgKzEsNCBAQAorIyEgL2Jpbi9zaAorCisuLi9maWx0ZXJfc3RkZXJyCisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvdGlsZWd4L2dlbl9pbnNuX3Rlc3QuYyBiL25vbmUvdGVzdHMvdGlsZWd4L2dlbl9pbnNuX3Rlc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2E2YWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy90aWxlZ3gvZ2VuX2luc25fdGVzdC5jCkBAIC0wLDAgKzEsNzExIEBACisvL2djYyBhLmMgLi4vLi4vLi4vVkVYL3ByaXYvdGlsZWd4X2Rpc2FzbS5jICAgLUkgLi4vLi4vLi4vICAtSSAuLi8uLi8uLi9WRVgvcHJpdi8gIC1JIC4uLy4uLy4uL1ZFWC9wdWIvCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgInRpbGVneF9kaXNhc20uaCIKKworI3VuZGVmIERHQgorCitzdGF0aWMgdW5zaWduZWQgY2hhciBvcF9hYm5vcm1bVElMRUdYX09QQ19OT05FXSA9IHsKKyAgLyogQmxhY2sgbGlzdCAqLworICBbIFRJTEVHWF9PUENfQlBUICAgICAgXSA9IDEsCisgIFsgVElMRUdYX09QQ19JTkZPICAgICBdID0gMSwKKyAgWyBUSUxFR1hfT1BDX0lORk9MICAgIF0gPSAxLAorICBbIFRJTEVHWF9PUENfRFJBSU4gICAgXSA9IDEsCisgIFsgVElMRUdYX09QQ19JUkVUICAgICBdID0gMSwKKyAgWyBUSUxFR1hfT1BDX1NXSU5UMCAgIF0gPSAxLAorICBbIFRJTEVHWF9PUENfU1dJTlQxICAgXSA9IDEsCisgIFsgVElMRUdYX09QQ19TV0lOVDIgICBdID0gMSwKKyAgWyBUSUxFR1hfT1BDX1NXSU5UMyAgIF0gPSAxLAorICBbIFRJTEVHWF9PUENfTEQ0U19UTFMgXSA9IDEsCisgIFsgVElMRUdYX09QQ19MRF9UTFMgICBdID0gMSwKKyAgWyBUSUxFR1hfT1BDX01GU1BSICAgIF0gPSAxLAorICBbIFRJTEVHWF9PUENfTVRTUFIgICAgXSA9IDEsCisgIFsgVElMRUdYX09QQ19JTEwgICAgICBdID0gMSwKKyAgWyBUSUxFR1hfT1BDX05BUCAgICAgIF0gPSAxLAorCisgIC8qIG1lbSBsb2FkICovCisgIFsgVElMRUdYX09QQ19MRCAgICAgICAgIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTERfQUREICAgICBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xEMVMgICAgICAgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRDFTX0FERCAgIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEQxVSAgICAgICBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xEMVVfQUREICAgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRDJTICAgICAgIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEQyU19BREQgICBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xEMlUgICAgICAgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRDJVX0FERCAgIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEQ0UyAgICAgICBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xENFNfQUREICAgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRDRVICAgICAgIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEQ0VV9BREQgICBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xETkEgICAgICAgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRE5BX0FERCAgIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEROVCAgICAgICBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xETlQxUyAgICAgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRE5UMVNfQUREIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEROVDFVICAgICBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xETlQxVV9BREQgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRE5UMlMgICAgIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEROVDJTX0FERCBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xETlQyVSAgICAgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRE5UMlVfQUREIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEROVDRTICAgICBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xETlQ0U19BREQgXSA9IDIsCisgIFsgVElMRUdYX09QQ19MRE5UNFUgICAgIF0gPSAyLAorICBbIFRJTEVHWF9PUENfTEROVDRVX0FERCBdID0gMiwKKyAgWyBUSUxFR1hfT1BDX0xETlRfQUREICAgXSA9IDIsCisKKyAgLyogbWVtIHN0b3JlICovCisgIFsgVElMRUdYX09QQ19TVCAgICAgICAgIF0gPSA0LAorICBbIFRJTEVHWF9PUENfU1QxICAgICAgICBdID0gNCwKKyAgWyBUSUxFR1hfT1BDX1NUMV9BREQgICAgXSA9IDQsCisgIFsgVElMRUdYX09QQ19TVDIgICAgICAgIF0gPSA0LAorICBbIFRJTEVHWF9PUENfU1QyX0FERCAgICBdID0gNCwKKyAgWyBUSUxFR1hfT1BDX1NUNCAgICAgICAgXSA9IDQsCisgIFsgVElMRUdYX09QQ19TVDRfQUREICAgIF0gPSA0LAorICBbIFRJTEVHWF9PUENfU1RfQUREICAgICBdID0gNCwKKyAgWyBUSUxFR1hfT1BDX1NUTlQgICAgICAgXSA9IDQsCisgIFsgVElMRUdYX09QQ19TVE5UMSAgICAgIF0gPSA0LAorICBbIFRJTEVHWF9PUENfU1ROVDFfQUREICBdID0gNCwKKyAgWyBUSUxFR1hfT1BDX1NUTlQyICAgICAgXSA9IDQsCisgIFsgVElMRUdYX09QQ19TVE5UMl9BREQgIF0gPSA0LAorICBbIFRJTEVHWF9PUENfU1ROVDQgICAgICBdID0gNCwKKyAgWyBUSUxFR1hfT1BDX1NUTlQ0X0FERCAgXSA9IDQsCisgIFsgVElMRUdYX09QQ19TVE5UX0FERCAgIF0gPSA0LAorCisgIC8qIGNvbmRpdGlvbmFsIGJyYW5jaCAqLworICBbIFRJTEVHWF9PUENfQkVRWiAgICAgICBdID0gOCwKKyAgWyBUSUxFR1hfT1BDX0JFUVpUICAgICAgXSA9IDgsCisgIFsgVElMRUdYX09QQ19CR0VaICAgICAgIF0gPSA4LAorICBbIFRJTEVHWF9PUENfQkdFWlQgICAgICBdID0gOCwKKyAgWyBUSUxFR1hfT1BDX0JHVFogICAgICAgXSA9IDgsCisgIFsgVElMRUdYX09QQ19CR1RaVCAgICAgIF0gPSA4LAorICBbIFRJTEVHWF9PUENfQkxCQyAgICAgICBdID0gOCwKKyAgWyBUSUxFR1hfT1BDX0JMQkNUICAgICAgXSA9IDgsCisgIFsgVElMRUdYX09QQ19CTEJTICAgICAgIF0gPSA4LAorICBbIFRJTEVHWF9PUENfQkxCU1QgICAgICBdID0gOCwKKyAgWyBUSUxFR1hfT1BDX0JMRVogICAgICAgXSA9IDgsCisgIFsgVElMRUdYX09QQ19CTEVaVCAgICAgIF0gPSA4LAorICBbIFRJTEVHWF9PUENfQkxUWiAgICAgICBdID0gOCwKKyAgWyBUSUxFR1hfT1BDX0JMVFpUICAgICAgXSA9IDgsCisgIFsgVElMRUdYX09QQ19CTkVaICAgICAgIF0gPSA4LAorICBbIFRJTEVHWF9PUENfQk5FWlQgICAgICBdID0gOCwKK307CisKKworc3RhdGljIHRpbGVneF9idW5kbGVfYml0cworZW5jb2RlX2luc25fdGlsZWd4X1ggKGludCBwLCBzdHJ1Y3QgdGlsZWd4X2RlY29kZWRfaW5zdHJ1Y3Rpb24gZGVjb2RlZCk7CisKK3N0YXRpYyB0aWxlZ3hfYnVuZGxlX2JpdHMKK2VuY29kZV9pbnNuX3RpbGVneF9ZIChpbnQgcCwgc3RydWN0IHRpbGVneF9kZWNvZGVkX2luc3RydWN0aW9uIGRlY29kZWQpOworCitzdGF0aWMgaW50IGRlY29kZSggdGlsZWd4X2J1bmRsZV9iaXRzICpwLCBpbnQgY291bnQsIFVMb25nIHBjICk7CisKK3N0YXRpYyB1aW50NjRfdAorUkFORChpbnQgcm91bmQpIHsKKyAgc3RhdGljIHZvbGF0aWxlIHVpbnQ2NF90IHJhbmRfc2VlZCA9IDA7CisgIHdoaWxlIChyb3VuZC0tID4gMCkKKyAgICByYW5kX3NlZWQgPSAocmFuZF9zZWVkID4+IDgpICogMjAxNTIwMDUyMDA3ICsgMTk3MTsKKyNpZmRlZiBEQkcKKyAgcHJpbnRmKCJSQU5EOiAlZFxuIiwgKGludClyYW5kX3NlZWQpOworI2VuZGlmCisgIHJldHVybiByYW5kX3NlZWQ7Cit9CisKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKK3sKKyAgaW50IGksIHN0YXJ0LCBlbmQsIHBpcGU7CisgIHN0cnVjdCB0aWxlZ3hfZGVjb2RlZF9pbnN0cnVjdGlvbiBkZWNvZGVkOworICBpZiAoYXJnYyA9PSAxKSB7CisgICAgcGlwZSA9IDB4MUY7CisgICAgc3RhcnQgPSAwOworICAgIGVuZCA9IFRJTEVHWF9PUENfTk9ORTsKKyAgfSBlbHNlIGlmIChhcmdjID09IDMpIHsKKyAgICBzdGFydCA9IGF0b2koYXJndlsxXSk7CisKKyAgICBpZiAoc3RhcnQgPj0gVElMRUdYX09QQ19OT05FKQorICAgICAgcmV0dXJuIC0xOworCisgICAgZW5kID0gc3RhcnQgKyAxOworICAgIC8qIHBpcGVzOiBYOiBiaXQgMCwxOyBZOiBiaXQgMi00ICovCisgICAgcGlwZSA9IGF0b2koYXJndlsyXSk7CisgIH0gZWxzZSB7CisgICAgcmV0dXJuIC0xOworICB9CisKKyAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgeworICAgIG1lbXNldCgmZGVjb2RlZCwgMCwgc2l6ZW9mKGRlY29kZWQpKTsKKyAgICBjb25zdCBzdHJ1Y3QgdGlsZWd4X29wY29kZSAqb3Bjb2RlID0gJnRpbGVneF9vcGNvZGVzW2ldOworICAgIGRlY29kZWQub3Bjb2RlID0gb3Bjb2RlOworI2lmZGVmIERCRworICAgIGNvbnN0IGNoYXIgKm9wX25hbWUgPSBkZWNvZGVkLm9wY29kZS0+bmFtZTsKKyAgICBwcmludGYoIlxuXG4lZCkgJXNcbiIsIGksIG9wX25hbWUpOworI2VuZGlmCisKKyAgICBpZiAob3BfYWJub3JtW2ldICYgMSkKKyAgICAgIGNvbnRpbnVlOworCisgICAgLyogWDAgcGlwZWxpbmUgKi8KKyAgICBpZiAodGlsZWd4X29wY29kZXNbaV0ucGlwZXMgJiAxICYgcGlwZSkKKyAgICAgIGVuY29kZV9pbnNuX3RpbGVneF9YKDAsIGRlY29kZWQpOworCisgICAgLyogWDEgcGlwZWxpbmUgKi8KKyAgICBpZiAodGlsZWd4X29wY29kZXNbaV0ucGlwZXMgJiAyICYgcGlwZSkKKyAgICAgIGVuY29kZV9pbnNuX3RpbGVneF9YKDEsIGRlY29kZWQpOworCisgICAgLyogWTAgcGlwbGVsaW5lICovCisgICAgaWYgKHRpbGVneF9vcGNvZGVzW2ldLnBpcGVzICYgNCAmIHBpcGUpCisgICAgICBlbmNvZGVfaW5zbl90aWxlZ3hfWSgwLCBkZWNvZGVkKTsKKworICAgIC8qIFkxIHBpcGxlbGluZSAqLworICAgIGlmICh0aWxlZ3hfb3Bjb2Rlc1tpXS5waXBlcyAmIDggJiBwaXBlKQorICAgICAgZW5jb2RlX2luc25fdGlsZWd4X1koMSwgZGVjb2RlZCk7CisKKyAgICAvKiBZMiBwaXBsZWxpbmUgKi8KKyAgICBpZiAodGlsZWd4X29wY29kZXNbaV0ucGlwZXMgJiAxNiAmIHBpcGUpCisgICAgICBlbmNvZGVfaW5zbl90aWxlZ3hfWSgyLCBkZWNvZGVkKTsKKyAgfQorCisgIHJldHVybiAwOworfQorCitzdGF0aWMgdGlsZWd4X2J1bmRsZV9iaXRzCitlbmNvZGVfaW5zbl90aWxlZ3hfWChpbnQgcCwgc3RydWN0IHRpbGVneF9kZWNvZGVkX2luc3RydWN0aW9uIGRlY29kZWQpCit7CisgIGNvbnN0IHN0cnVjdCB0aWxlZ3hfb3Bjb2RlICpvcGMgPQorICAgIGRlY29kZWQub3Bjb2RlOworICBpbnQgb3BfaWR4ID0gIGRlY29kZWQub3Bjb2RlLT5tbmVtb25pYzsKKworICB0aWxlZ3hfYnVuZGxlX2JpdHMgaW5zbiA9IDA7CisgIC8vaW50IHBpcGVYMDEgPSAob3BjLT5waXBlcyAmIDB4MDEpID8gMCA6IDE7CisgIGludCBvcF9udW0gID0gb3BjLT5udW1fb3BlcmFuZHM7CisKKyAgLyogQXNzdW1lIGVpdGhlciBYMCBvciBYMS4gKi8KKyAgaWYgKChvcGMtPnBpcGVzICYgMykgPT0gMCkKKyAgICByZXR1cm4gLTE7CisKKyAgLyogSW5zZXJ0IGZub3AgaW4gb3RoZXIgcGlwZS4gKi8KKyAgaW5zbiA9IHRpbGVneF9vcGNvZGVzW1RJTEVHWF9PUENfRk5PUF0uCisgICAgZml4ZWRfYml0X3ZhbHVlc1twID8gMCA6IDFdOworI2lmZGVmIERCRworICBwcmludGYoIiBYJWQsICIsIHApOworI2VuZGlmCisKKyAgaW5zbiB8PSBvcGMtPmZpeGVkX2JpdF92YWx1ZXNbcF07CisKKyAgcHJpbnRmKCIvL2ZpbGU6IF9pbnNuX3Rlc3RfJXNfWCVkLmNcbiIsIGRlY29kZWQub3Bjb2RlLT5uYW1lLCBwKTsKKyAgcHJpbnRmKCIvL29wPSVkXG4iLCBvcF9pZHgpOworICBwcmludGYoIiNpbmNsdWRlIDxzdGRpby5oPlxuIik7CisgIHByaW50ZigiI2luY2x1ZGUgPHN0ZGxpYi5oPlxuIik7CisKKyAgcHJpbnRmKCJcbiIKKwkgInZvaWQgZnVuY19leGl0KHZvaWQpIHtcbiIKKwkgIiAgICAgcHJpbnRmKFwiJWNzXFxuXCIsIF9fZnVuY19fKTtcbiIKKwkgIiAgICAgZXhpdCgwKTtcbiIKKwkgIn1cbiIKKwkgIlxuIgorCSAidm9pZCBmdW5jX2NhbGwodm9pZCkge1xuIgorCSAiICAgICBwcmludGYoXCIlY3NcXG5cIiwgX19mdW5jX18pO1xuIgorCSAiICAgICBleGl0KDApO1xuIgorCSAifVxuIgorCSAiXG4iCisJICJ1bnNpZ25lZCBsb25nIG1lbVsyXSA9IHsgMHglbHgsIDB4JWx4IH07XG4iCisJICJcbiIsICclJywgJyUnLCBSQU5EKG9wX2lkeCksIFJBTkQob3BfaWR4KSk7CisKKyAgcHJpbnRmKCJpbnQgbWFpbih2b2lkKSB7XG4iKTsKKyAgcHJpbnRmKCIgICAgdW5zaWduZWQgbG9uZyBhWzRdID0geyAwLCAwIH07XG4iKTsKKworICBwcmludGYoIiAgICBhc20gX192b2xhdGlsZV9fIChcbiIpOworCisgIGludCBpLCBuID0gMDsKKworICBpZiAob3BfYWJub3JtW29wX2lkeF0gJiA2KQorICAgIHsKKyAgICAgIC8qIGxvb3AgZm9yIGVhY2ggb3BlcmFuZC4gKi8KKyAgICAgIGZvciAoaSA9IDAgOyBpIDwgb3BfbnVtOyBpKyspCisJeworCSAgY29uc3Qgc3RydWN0IHRpbGVneF9vcGVyYW5kICpvcGQgPQorCSAgICAmdGlsZWd4X29wZXJhbmRzW29wYy0+b3BlcmFuZHNbcF1baV1dOworCisJICBpZiAob3BkLT50eXBlID09IFRJTEVHWF9PUF9UWVBFX1JFR0lTVEVSKSB7CisJICAgIC8qIEEgcmVnaXN0ZXIgb3BlcmFuZCwgcGljayByZWdpc3RlciAwLTUwIHJhbmRvbWx5LiAqLworCSAgICBkZWNvZGVkLm9wZXJhbmRfdmFsdWVzW2ldID0gUkFORChvcF9pZHgpICUgNTE7CisJICAgIGludCByID0gZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXTsKKwkgICAgaW50NjRfdCBkID0gUkFORChvcF9pZHgpOworI2lmZGVmIERCRworCSAgICBwcmludGYoIiAlZCkgciUtMmQgJTAxNmx4XG4iLCBpLCAoaW50KXIsICh1bnNpZ25lZCBsb25nKWQpOworI2VuZGlmCisJICAgIGludCBrID0gMDsKKwkgICAgZm9yIChrID0gMzsgayA+PSAwIDsgay0tKSB7CisJICAgICAgaWYgKGQgPj4gKDE2ICogaykgfHwgayA9PSAwKSB7CisJCXByaW50ZigiICAgICAgICAgICAgICAgICAgICAgIFwibW92ZWxpIHIlZCwgJWRcXG5cIlxuIiwgciwgKGludCkoZCA+PiAoMTYgKiBrKSkpOworCQlmb3IgKGstLTsgayA+PSAwOyBrLS0pCisJCSAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICAgXCJzaGwxNmluc2xpIHIlZCwgciVkLCAlZFxcblwiXG4iLCByLCByLCAoaW50KShpbnQxNl90KShkID4+ICgxNiAqIGspKSk7CisJCWJyZWFrOworCSAgICAgIH0KKwkgICAgfQorCSAgfSBlbHNlIHsKKwkgICAgLyogQW4gaW1tZWRpYXRlIG9wZXJhbmQsIHBpY2sgYSByYW5kb20gdmFsdWUuICovCisJICAgIGRlY29kZWQub3BlcmFuZF92YWx1ZXNbaV0gPSBSQU5EKG9wX2lkeCk7CisjaWZkZWYgREJHCisJICAgIHByaW50ZigiICVkKSAlMDE2bHhcbiIsIChpbnQpaSwgKHVuc2lnbmVkIGxvbmcpZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXSk7CisjZW5kaWYKKwkgIH0KKworCSAgTG9uZyAgb3AgPSBkZWNvZGVkLm9wZXJhbmRfdmFsdWVzW2ldOworCSAgZGVjb2RlZC5vcGVyYW5kc1tpXSA9IG9wZDsKKwkgIFVMb25nIHggPSBvcGQtPmluc2VydChvcCk7CisJICBpbnNuIHw9IHg7CisJfQorICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICAgXCIiKTsKKyAgICAgIGlmIChvcF9hYm5vcm1bb3BfaWR4XSAmIDIpCisJcHJpbnRmKCJtb3ZlIHIlZCwgJWMyXFxuXCJcbiIsICAoaW50KWRlY29kZWQub3BlcmFuZF92YWx1ZXNbMV0sICclJyk7CisgICAgICBlbHNlCisJcHJpbnRmKCJtb3ZlIHIlZCwgJWMyXFxuXCJcbiIsICAoaW50KWRlY29kZWQub3BlcmFuZF92YWx1ZXNbMF0sICclJyk7CisKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgIFwiIik7CisgICAgICBkZWNvZGUoJmluc24sIDIsIDApOworICAgICAgcHJpbnRmKCJcXG5cIlxuIik7CisKKyAgICAgIC8qIGxvb3AgZm9yIGVhY2ggb3BlcmFuZC4gKi8KKyAgICAgIG4gPSAwOworICAgICAgZm9yIChpID0gMCA7IGkgPCBvcF9udW07IGkrKykKKwl7CisJICBjb25zdCBzdHJ1Y3QgdGlsZWd4X29wZXJhbmQgKm9wZCA9CisJICAgICZ0aWxlZ3hfb3BlcmFuZHNbb3BjLT5vcGVyYW5kc1twXVtpXV07CisKKwkgIGlmIChvcGQtPnR5cGUgPT0gVElMRUdYX09QX1RZUEVfUkVHSVNURVIpIHsKKwkgICAgLyogQSByZWdpc3RlciBvcGVyYW5kICovCisJICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgIFwibW92ZSAlYyVkLCByJWRcXG5cIlxuIiwgJyUnLCBuLCAoaW50KWRlY29kZWQub3BlcmFuZF92YWx1ZXNbaV0pOworCSAgICBuKys7CisJICB9CisJfQorCisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgICAiKTsKKyAgICAgIGlmIChuKQorCXByaW50ZigiOiIpOworICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKKwl7CisJICBwcmludGYoIlwiPXJcIihhWyVkXSkiLCBpKTsKKwkgIGlmIChpICE9IG4gLSAxKQorCSAgICBwcmludGYoIiwiKTsKKwl9CisgICAgICBwcmludGYoIiA6IFwiclwiKG1lbSkiKTsKKworICAgICAgcHJpbnRmKCIpO1xuIik7CisKKyAgICAgIHByaW50ZigiICAgIHByaW50ZihcIiVjMDE2bHggJWMwMTZseFxcblwiLCBtZW1bMF0sIG1lbVsxXSk7XG4iLCAnJScsICclJyk7CisKKyAgICB9CisgIGVsc2UgaWYgKG9wX2lkeCA9PSBUSUxFR1hfT1BDX0opCisgICAgeworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICBcIiVzICVjMFxcblwiXG4iLCBkZWNvZGVkLm9wY29kZS0+bmFtZSwgJyUnKTsKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgOjogXCJpXCIoZnVuY19leGl0KSk7XG4iKTsKKyAgICB9CisgIGVsc2UgaWYgKG9wX2lkeCA9PSBUSUxFR1hfT1BDX0pBTCkKKyAgICB7CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgIFwiJXMgJWMwXFxuXCJcbiIsIGRlY29kZWQub3Bjb2RlLT5uYW1lLCAnJScpOworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICA6OiBcImlcIihmdW5jX2NhbGwpKTtcbiIpOworICAgIH0KKyAgZWxzZSBpZiAob3BfaWR4ID09IFRJTEVHWF9PUENfSlIgfHwgb3BfaWR4ID09IFRJTEVHWF9PUENfSlJQKQorICAgIHsKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgXCIlcyAlYzBcXG5cIlxuIiwgZGVjb2RlZC5vcGNvZGUtPm5hbWUsICclJyk7CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgIDo6IFwiclwiKGZ1bmNfZXhpdCkpO1xuIik7CisgICAgfQorICBlbHNlIGlmIChvcF9pZHggPT0gVElMRUdYX09QQ19KQUxSIHx8IG9wX2lkeCA9PSBUSUxFR1hfT1BDX0pBTFJQICkKKyAgICB7CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgIFwiJXMgJWMwXFxuXCJcbiIsIGRlY29kZWQub3Bjb2RlLT5uYW1lLCAnJScpOworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICA6OiBcInJcIihmdW5jX2NhbGwpKTtcbiIpOworICAgIH0KKyAgZWxzZSBpZiAob3BfYWJub3JtW29wX2lkeF0gJiA4KQorICAgIHsKKyAgICAgIC8vIE9QQ19CWFhYICBjb25kaXRpb25hbCBicmFuY2gKKyAgICAgIGludCByID0gUkFORChvcF9pZHgpICUgNTE7CisgICAgICBpbnQgZCA9IFJBTkQob3BfaWR4KSAmIDE7CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgIFwibW92ZWkgciVkLCAlZFxcblwiXG4iLCByLCBkKTsKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgXCIlcyByJWQsICAlYzBcXG5cIlxuIiwgZGVjb2RlZC5vcGNvZGUtPm5hbWUsIHIsICclJyk7CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgIFwiamFsICVjMVxcblwiXG4iLCAnJScpOworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICA6OiBcImlcIihmdW5jX2V4aXQpLCBcImlcIihmdW5jX2NhbGwpKTtcbiIpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIGxvb3AgZm9yIGVhY2ggb3BlcmFuZC4gKi8KKyAgICAgIGZvciAoaSA9IDAgOyBpIDwgb3BfbnVtOyBpKyspCisJeworCSAgY29uc3Qgc3RydWN0IHRpbGVneF9vcGVyYW5kICpvcGQgPQorCSAgICAmdGlsZWd4X29wZXJhbmRzW29wYy0+b3BlcmFuZHNbcF1baV1dOworCisJICBpZiAob3BkLT50eXBlID09IFRJTEVHWF9PUF9UWVBFX1JFR0lTVEVSKSB7CisJICAgIC8qIEEgcmVnaXN0ZXIgb3BlcmFuZCwgcGljayByZWdpc3RlciAwLTUwIHJhbmRvbWx5LiAqLworCSAgICBkZWNvZGVkLm9wZXJhbmRfdmFsdWVzW2ldID0gUkFORChvcF9pZHgpICUgNTE7CisJICAgIGludCByID0gZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXTsKKwkgICAgaW50NjRfdCBkID0gUkFORChvcF9pZHgpOworCisjaWZkZWYgREJHCisJICAgIHByaW50ZigiICVkKSByJS0yZCAlMDE2bHhcbiIsIGksIChpbnQpciwgKHVuc2lnbmVkIGxvbmcpZCk7CisjZW5kaWYKKwkgICAgaW50IGsgPSAwOworCSAgICBmb3IgKGsgPSAzOyBrID49IDAgOyBrLS0pIHsKKwkgICAgICBpZiAoZCA+PiAoMTYgKiBrKSB8fCBrID09IDApIHsKKwkJcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICAgXCJtb3ZlbGkgciVkLCAlZFxcblwiXG4iLCByLCAoaW50KShkID4+ICgxNiAqIGspKSk7CisJCWZvciAoay0tOyBrID49IDA7IGstLSkKKwkJICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgICBcInNobDE2aW5zbGkgciVkLCByJWQsICVkXFxuXCJcbiIsIHIsIHIsIChpbnQpKGludDE2X3QpKGQgPj4gKDE2ICogaykpKTsKKwkJYnJlYWs7CisJICAgICAgfQorCSAgICB9CisJICB9IGVsc2UgeworCSAgICAvKiBBbiBpbW1lZGlhdGUgb3BlcmFuZCwgcGljayBhIHJhbmRvbSB2YWx1ZS4gKi8KKwkgICAgZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXSA9IFJBTkQob3BfaWR4KTsKKyNpZmRlZiBEQkcKKwkgICAgcHJpbnRmKCIgJWQpICUwMTZseFxuIiwgKGludClpLCAodW5zaWduZWQgbG9uZylkZWNvZGVkLm9wZXJhbmRfdmFsdWVzW2ldKTsKKyNlbmRpZgorCSAgfQorCisJICBMb25nICBvcCA9IGRlY29kZWQub3BlcmFuZF92YWx1ZXNbaV07CisJICBkZWNvZGVkLm9wZXJhbmRzW2ldID0gb3BkOworCSAgVUxvbmcgeCA9IG9wZC0+aW5zZXJ0KG9wKTsKKwkgIGluc24gfD0geDsKKwl9CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgICBcIiIpOworICAgICAgZGVjb2RlKCZpbnNuLCAyLCAwKTsKKyAgICAgIHByaW50ZigiXFxuXCJcbiIpOworCisgICAgICAvKiBsb29wIGZvciBlYWNoIG9wZXJhbmQuICovCisgICAgICBuID0gMDsKKyAgICAgIGZvciAoaSA9IDAgOyBpIDwgb3BfbnVtOyBpKyspCisJeworCSAgY29uc3Qgc3RydWN0IHRpbGVneF9vcGVyYW5kICpvcGQgPQorCSAgICAmdGlsZWd4X29wZXJhbmRzW29wYy0+b3BlcmFuZHNbcF1baV1dOworCisJICBpZiAob3BkLT50eXBlID09IFRJTEVHWF9PUF9UWVBFX1JFR0lTVEVSKSB7CisJICAgIC8qIEEgcmVnaXN0ZXIgb3BlcmFuZCAqLworCSAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgICBcIm1vdmUgJWMlZCwgciVkXFxuXCJcbiIsICclJywgbiwgKGludClkZWNvZGVkLm9wZXJhbmRfdmFsdWVzW2ldKTsKKwkgICAgbisrOworCSAgfQorCX0KKworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICAgIik7CisgICAgICBpZiAobikKKwlwcmludGYoIjoiKTsKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisJeworCSAgcHJpbnRmKCJcIj1yXCIoYVslZF0pIiwgaSk7CisJICBpZiAoaSAhPSBuIC0gMSkKKwkgICAgcHJpbnRmKCIsIik7CisJfQorCisgICAgICBwcmludGYoIik7XG4iKTsKKyAgICB9CisKKyAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKKyAgICB7CisgICAgICBwcmludGYoIiAgICBwcmludGYoXCIlYzAxNmx4XFxuXCIsIGFbJWRdKTtcbiIsICclJywgaSk7CisgICAgfQorICBwcmludGYoIiAgICByZXR1cm4gMDtcbiIpOworICBwcmludGYoIn1cbiIpOworICByZXR1cm4gaW5zbjsKK30KKworc3RhdGljIHRpbGVneF9idW5kbGVfYml0cworZW5jb2RlX2luc25fdGlsZWd4X1kgKGludCBwLCBzdHJ1Y3QgdGlsZWd4X2RlY29kZWRfaW5zdHJ1Y3Rpb24gZGVjb2RlZCApCit7CisgIGludCBpOworICBjb25zdCBzdHJ1Y3QgdGlsZWd4X29wY29kZSAqb3BjID0KKyAgICBkZWNvZGVkLm9wY29kZTsKKyAgaW50IG9wX2lkeCA9ICBkZWNvZGVkLm9wY29kZS0+bW5lbW9uaWM7CisKKyAgY29uc3Qgc3RydWN0IHRpbGVneF9vcGVyYW5kICpvcGQ7CisKKyAgdGlsZWd4X2J1bmRsZV9iaXRzIGluc24gPSAwOworICBJbnQgb3BfbnVtICA9IG9wYy0+bnVtX29wZXJhbmRzOworCisgIC8qIEluc2VydCBmbm9wIGluIFkwIGFuZCBZMSBwaXBlbGluZS4gKi8KKyAgaWYgKHAgIT0gMCkKKyAgICBpbnNuIHw9IHRpbGVneF9vcGNvZGVzW1RJTEVHWF9PUENfRk5PUF0uCisgICAgICBmaXhlZF9iaXRfdmFsdWVzWzJdOworCisgIGlmIChwICE9IDEpCisgICAgaW5zbiB8PSB0aWxlZ3hfb3Bjb2Rlc1tUSUxFR1hfT1BDX0ZOT1BdLgorICAgICAgZml4ZWRfYml0X3ZhbHVlc1szXTsKKworICAvKiBGaWxsLWluIFkyIGFzIGR1bXkgbG9hZCAibGQgemVybywgc3AiICovCisgIGlmIChwICE9IDIpIHsKKyAgICBpbnNuIHw9IHRpbGVneF9vcGNvZGVzW1RJTEVHWF9PUENfTERdLgorICAgICAgZml4ZWRfYml0X3ZhbHVlc1s0XTsKKyAgICBvcGQgPSAmdGlsZWd4X29wZXJhbmRzW3RpbGVneF9vcGNvZGVzW1RJTEVHWF9PUENfTERdLm9wZXJhbmRzWzRdWzBdXTsKKyAgICBpbnNuIHw9IG9wZC0+aW5zZXJ0KDYzKTsKKyAgICBvcGQgPSAmdGlsZWd4X29wZXJhbmRzW3RpbGVneF9vcGNvZGVzW1RJTEVHWF9PUENfTERdLm9wZXJhbmRzWzRdWzFdXTsKKyAgICBpbnNuIHw9IG9wZC0+aW5zZXJ0KDU0KTsKKyAgfQorI2lmZGVmIERCRworICBwcmludGYoIiBZJWQsICIsIHApOworI2VuZGlmCisKKyAgaW5zbiB8PSBvcGMtPmZpeGVkX2JpdF92YWx1ZXNbMiArIHBdOworCisgIHByaW50ZigiLy9maWxlOiBfaW5zbl90ZXN0XyVzX1klZC5jXG4iLCBkZWNvZGVkLm9wY29kZS0+bmFtZSwgcCk7CisgIHByaW50ZigiLy9vcD0lZFxuIiwgb3BfaWR4KTsKKyAgcHJpbnRmKCIjaW5jbHVkZSA8c3RkaW8uaD5cbiIpOworICBwcmludGYoIiNpbmNsdWRlIDxzdGRsaWIuaD5cbiIpOworCisgIHByaW50ZigiXG4iCisJICJ2b2lkIGZ1bmNfZXhpdCh2b2lkKSB7XG4iCisJICIgICAgIHByaW50ZihcIiVjc1xcblwiLCBfX2Z1bmNfXyk7XG4iCisJICIgICAgIGV4aXQoMCk7XG4iCisJICJ9XG4iCisJICJcbiIKKwkgInZvaWQgZnVuY19jYWxsKHZvaWQpIHtcbiIKKwkgIiAgICAgcHJpbnRmKFwiJWNzXFxuXCIsIF9fZnVuY19fKTtcbiIKKwkgIiAgICAgZXhpdCgwKTtcbiIKKwkgIn1cbiIKKwkgIlxuIgorCSAidW5zaWduZWQgbG9uZyBtZW1bMl0gPSB7IDB4JWx4LCAweCVseCB9O1xuIgorCSAiXG4iLCAnJScsICclJywgUkFORChvcF9pZHgpLCBSQU5EKG9wX2lkeCkpOworCisgIHByaW50ZigiaW50IG1haW4odm9pZCkge1xuIik7CisgIHByaW50ZigiICAgIHVuc2lnbmVkIGxvbmcgYVs0XSA9IHsgMCwgMCB9O1xuIik7CisKKyAgcHJpbnRmKCIgICAgYXNtIF9fdm9sYXRpbGVfXyAoXG4iKTsKKworICBpbnQgbiA9IDA7CisKKyAgaWYgKG9wX2Fibm9ybVtvcF9pZHhdICYgNikKKyAgICB7CisgICAgICAvKiBsb29wIGZvciBlYWNoIG9wZXJhbmQuICovCisgICAgICBmb3IgKGkgPSAwIDsgaSA8IG9wX251bTsgaSsrKQorCXsKKyAgICAgICAgICBvcGQgPSAmdGlsZWd4X29wZXJhbmRzW29wYy0+b3BlcmFuZHNbMiArIHBdW2ldXTsKKworCSAgaWYgKG9wZC0+dHlwZSA9PSBUSUxFR1hfT1BfVFlQRV9SRUdJU1RFUikgeworCSAgICAvKiBBIHJlZ2lzdGVyIG9wZXJhbmQsIHBpY2sgcmVnaXN0ZXIgMC01MyByYW5kb21seS4gKi8KKwkgICAgZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXSA9IFJBTkQob3BfaWR4KSAlIDUzOworCSAgICBpbnQgciA9IGRlY29kZWQub3BlcmFuZF92YWx1ZXNbaV07CisJICAgIGludDY0X3QgZCA9IFJBTkQob3BfaWR4KTsKKyNpZmRlZiBEQkcKKwkgICAgcHJpbnRmKCIgJWQpIHIlLTJkICUwMTZseFxuIiwgaSwgKGludClyLCAodW5zaWduZWQgbG9uZylkKTsKKyNlbmRpZgorCSAgICBpbnQgayA9IDA7CisJICAgIGZvciAoayA9IDM7IGsgPj0gMCA7IGstLSkgeworCSAgICAgIGlmIChkID4+ICgxNiAqIGspIHx8IGsgPT0gMCkgeworCQlwcmludGYoIiAgICAgICAgICAgICAgICAgICAgICBcIm1vdmVsaSByJWQsICVkXFxuXCJcbiIsIHIsIChpbnQpKGQgPj4gKDE2ICogaykpKTsKKwkJZm9yIChrLS07IGsgPj0gMDsgay0tKQorCQkgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgIFwic2hsMTZpbnNsaSByJWQsIHIlZCwgJWRcXG5cIlxuIiwgciwgciwgKGludCkoaW50MTZfdCkoZCA+PiAoMTYgKiBrKSkpOworCQlicmVhazsKKwkgICAgICB9CisJICAgIH0KKwkgIH0gZWxzZSB7CisJICAgIC8qIEFuIGltbWVkaWF0ZSBvcGVyYW5kLCBwaWNrIGEgcmFuZG9tIHZhbHVlLiAqLworCSAgICBkZWNvZGVkLm9wZXJhbmRfdmFsdWVzW2ldID0gUkFORChvcF9pZHgpOworI2lmZGVmIERCRworCSAgICBwcmludGYoIiAlZCkgJTAxNmx4XG4iLCAoaW50KWksICh1bnNpZ25lZCBsb25nKWRlY29kZWQub3BlcmFuZF92YWx1ZXNbaV0pOworI2VuZGlmCisJICB9CisKKwkgIExvbmcgIG9wID0gZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXTsKKwkgIGRlY29kZWQub3BlcmFuZHNbaV0gPSBvcGQ7CisJICBVTG9uZyB4ID0gb3BkLT5pbnNlcnQob3ApOworCSAgaW5zbiB8PSB4OworCX0KKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgIFwiIik7CisgICAgICBpZiAob3BfYWJub3JtW29wX2lkeF0gJiAyKQorCXByaW50ZigibW92ZSByJWQsICVjMlxcblwiXG4iLCAgKGludClkZWNvZGVkLm9wZXJhbmRfdmFsdWVzWzFdLCAnJScpOworICAgICAgZWxzZQorCXByaW50ZigibW92ZSByJWQsICVjMlxcblwiXG4iLCAgKGludClkZWNvZGVkLm9wZXJhbmRfdmFsdWVzWzBdLCAnJScpOworCisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgICBcIiIpOworICAgICAgZGVjb2RlKCZpbnNuLCAzLCAwKTsKKyAgICAgIHByaW50ZigiXFxuXCJcbiIpOworCisgICAgICAvKiBsb29wIGZvciBlYWNoIG9wZXJhbmQuICovCisgICAgICBuID0gMDsKKyAgICAgIGZvciAoaSA9IDAgOyBpIDwgb3BfbnVtOyBpKyspCisJeworICAgICAgICAgIG9wZCA9ICZ0aWxlZ3hfb3BlcmFuZHNbb3BjLT5vcGVyYW5kc1syICsgcF1baV1dOworCisJICBpZiAob3BkLT50eXBlID09IFRJTEVHWF9PUF9UWVBFX1JFR0lTVEVSKSB7CisJICAgIC8qIEEgcmVnaXN0ZXIgb3BlcmFuZCAqLworCSAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgICBcIm1vdmUgJWMlZCwgciVkXFxuXCJcbiIsICclJywgbiwgKGludClkZWNvZGVkLm9wZXJhbmRfdmFsdWVzW2ldKTsKKwkgICAgbisrOworCSAgfQorCX0KKworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICAgIik7CisgICAgICBpZiAobikKKwlwcmludGYoIjoiKTsKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisJeworCSAgcHJpbnRmKCJcIj1yXCIoYVslZF0pIiwgaSk7CisJICBpZiAoaSAhPSBuIC0gMSkKKwkgICAgcHJpbnRmKCIsIik7CisJfQorICAgICAgcHJpbnRmKCIgOiBcInJcIihtZW0pIik7CisKKyAgICAgIHByaW50ZigiKTtcbiIpOworCisgICAgICBwcmludGYoIiAgICBwcmludGYoXCIlYzAxNmx4ICVjMDE2bHhcXG5cIiwgbWVtWzBdLCBtZW1bMV0pO1xuIiwgJyUnLCAnJScpOworCisgICAgfQorICBlbHNlIGlmIChvcF9pZHggPT0gVElMRUdYX09QQ19KKQorICAgIHsKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgXCIlcyAlYzBcXG5cIlxuIiwgZGVjb2RlZC5vcGNvZGUtPm5hbWUsICclJyk7CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgIDo6IFwiaVwiKGZ1bmNfZXhpdCkpO1xuIik7CisgICAgfQorICBlbHNlIGlmIChvcF9pZHggPT0gVElMRUdYX09QQ19KQUwpCisgICAgeworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICBcIiVzICVjMFxcblwiXG4iLCBkZWNvZGVkLm9wY29kZS0+bmFtZSwgJyUnKTsKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgOjogXCJpXCIoZnVuY19jYWxsKSk7XG4iKTsKKyAgICB9CisgIGVsc2UgaWYgKG9wX2lkeCA9PSBUSUxFR1hfT1BDX0pSIHx8IG9wX2lkeCA9PSBUSUxFR1hfT1BDX0pSUCkKKyAgICB7CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgIFwiJXMgJWMwXFxuXCJcbiIsIGRlY29kZWQub3Bjb2RlLT5uYW1lLCAnJScpOworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICA6OiBcInJcIihmdW5jX2V4aXQpKTtcbiIpOworICAgIH0KKyAgZWxzZSBpZiAob3BfaWR4ID09IFRJTEVHWF9PUENfSkFMUiB8fCBvcF9pZHggPT0gVElMRUdYX09QQ19KQUxSUCApCisgICAgeworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICBcIiVzICVjMFxcblwiXG4iLCBkZWNvZGVkLm9wY29kZS0+bmFtZSwgJyUnKTsKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgOjogXCJyXCIoZnVuY19jYWxsKSk7XG4iKTsKKyAgICB9CisgIGVsc2UgaWYgKG9wX2Fibm9ybVtvcF9pZHhdICYgOCkKKyAgICB7CisgICAgICAvLyBPUENfQlhYWCAgY29uZGl0aW9uYWwgYnJhbmNoCisgICAgICBpbnQgciA9IFJBTkQob3BfaWR4KSAlIDUxOworICAgICAgaW50IGQgPSBSQU5EKG9wX2lkeCkgJiAxOworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICBcIm1vdmVpIHIlZCwgJWRcXG5cIlxuIiwgciwgZCk7CisgICAgICBwcmludGYoIiAgICAgICAgICAgICAgICAgICAgIFwiJXMgciVkLCAgJWMwXFxuXCJcbiIsIGRlY29kZWQub3Bjb2RlLT5uYW1lLCByLCAnJScpOworICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICBcImphbCAlYzFcXG5cIlxuIiwgJyUnKTsKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgOjogXCJpXCIoZnVuY19leGl0KSwgXCJpXCIoZnVuY19jYWxsKSk7XG4iKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICAvKiBsb29wIGZvciBlYWNoIG9wZXJhbmQuICovCisgICAgICBmb3IgKGkgPSAwIDsgaSA8IG9wX251bTsgaSsrKQorCXsKKyAgICAgICAgICBvcGQgPSAmdGlsZWd4X29wZXJhbmRzW29wYy0+b3BlcmFuZHNbMiArIHBdW2ldXTsKKworCSAgaWYgKG9wZC0+dHlwZSA9PSBUSUxFR1hfT1BfVFlQRV9SRUdJU1RFUikgeworCSAgICAvKiBBIHJlZ2lzdGVyIG9wZXJhbmQsIHBpY2sgcmVnaXN0ZXIgMC01MCByYW5kb21seS4gKi8KKwkgICAgZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXSA9IFJBTkQob3BfaWR4KSAlIDUxOworCSAgICBpbnQgciA9IGRlY29kZWQub3BlcmFuZF92YWx1ZXNbaV07CisJICAgIGludDY0X3QgZCA9IFJBTkQob3BfaWR4KTsKKworI2lmZGVmIERCRworCSAgICBwcmludGYoIiAlZCkgciUtMmQgJTAxNmx4XG4iLCBpLCAoaW50KXIsICh1bnNpZ25lZCBsb25nKWQpOworI2VuZGlmCisJICAgIGludCBrID0gMDsKKwkgICAgZm9yIChrID0gMzsgayA+PSAwIDsgay0tKSB7CisJICAgICAgaWYgKGQgPj4gKDE2ICogaykgfHwgayA9PSAwKSB7CisJCXByaW50ZigiICAgICAgICAgICAgICAgICAgICAgIFwibW92ZWxpIHIlZCwgJWRcXG5cIlxuIiwgciwgKGludCkoZCA+PiAoMTYgKiBrKSkpOworCQlmb3IgKGstLTsgayA+PSAwOyBrLS0pCisJCSAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICAgXCJzaGwxNmluc2xpIHIlZCwgciVkLCAlZFxcblwiXG4iLCByLCByLCAoaW50KShpbnQxNl90KShkID4+ICgxNiAqIGspKSk7CisJCWJyZWFrOworCSAgICAgIH0KKwkgICAgfQorCSAgfSBlbHNlIHsKKwkgICAgLyogQW4gaW1tZWRpYXRlIG9wZXJhbmQsIHBpY2sgYSByYW5kb20gdmFsdWUuICovCisJICAgIGRlY29kZWQub3BlcmFuZF92YWx1ZXNbaV0gPSBSQU5EKG9wX2lkeCk7CisjaWZkZWYgREJHCisJICAgIHByaW50ZigiICVkKSAlMDE2bHhcbiIsIChpbnQpaSwgKHVuc2lnbmVkIGxvbmcpZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXSk7CisjZW5kaWYKKwkgIH0KKworCSAgTG9uZyAgb3AgPSBkZWNvZGVkLm9wZXJhbmRfdmFsdWVzW2ldOworCSAgZGVjb2RlZC5vcGVyYW5kc1tpXSA9IG9wZDsKKwkgIFVMb25nIHggPSBvcGQtPmluc2VydChvcCk7CisJICBpbnNuIHw9IHg7CisJfQorICAgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICAgXCIiKTsKKyAgICAgIGRlY29kZSgmaW5zbiwgMywgMCk7CisgICAgICBwcmludGYoIlxcblwiXG4iKTsKKworICAgICAgLyogbG9vcCBmb3IgZWFjaCBvcGVyYW5kLiAqLworICAgICAgbiA9IDA7CisgICAgICBmb3IgKGkgPSAwIDsgaSA8IG9wX251bTsgaSsrKQorCXsKKyAgICAgICAgICBvcGQgPSAmdGlsZWd4X29wZXJhbmRzW29wYy0+b3BlcmFuZHNbMiArIHBdW2ldXTsKKworCSAgaWYgKG9wZC0+dHlwZSA9PSBUSUxFR1hfT1BfVFlQRV9SRUdJU1RFUikgeworCSAgICAvKiBBIHJlZ2lzdGVyIG9wZXJhbmQgKi8KKwkgICAgcHJpbnRmKCIgICAgICAgICAgICAgICAgICAgICAgXCJtb3ZlICVjJWQsIHIlZFxcblwiXG4iLCAnJScsIG4sIChpbnQpZGVjb2RlZC5vcGVyYW5kX3ZhbHVlc1tpXSk7CisJICAgIG4rKzsKKwkgIH0KKwl9CisKKyAgICAgIHByaW50ZigiICAgICAgICAgICAgICAgICAgICAgICIpOworICAgICAgaWYgKG4pCisJcHJpbnRmKCI6Iik7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorCXsKKwkgIHByaW50ZigiXCI9clwiKGFbJWRdKSIsIGkpOworCSAgaWYgKGkgIT0gbiAtIDEpCisJICAgIHByaW50ZigiLCIpOworCX0KKworICAgICAgcHJpbnRmKCIpO1xuIik7CisgICAgfQorCisgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisgICAgeworICAgICAgcHJpbnRmKCIgICAgcHJpbnRmKFwiJWMwMTZseFxcblwiLCBhWyVkXSk7XG4iLCAnJScsIGkpOworICAgIH0KKyAgcHJpbnRmKCIgICAgcmV0dXJuIDA7XG4iKTsKKyAgcHJpbnRmKCJ9XG4iKTsKKyAgcmV0dXJuIGluc247Cit9CisKK3N0YXRpYyBpbnQgZGlzcGxheV9pbnNuICggc3RydWN0IHRpbGVneF9kZWNvZGVkX2luc3RydWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZWRbMV0gKQoreworICBpbnQgaTsKKyAgZm9yIChpID0gMDsKKyAgICAgICBkZWNvZGVkW2ldLm9wY29kZSAmJiAoaSA8IDEpOworICAgICAgIGkrKykgeworICAgIGludCBuOworICAgIHByaW50ZigiJXMgIiwgZGVjb2RlZFtpXS5vcGNvZGUtPm5hbWUpOworCisgICAgZm9yIChuID0gMDsgbiA8IGRlY29kZWRbaV0ub3Bjb2RlLT5udW1fb3BlcmFuZHM7IG4rKykgeworICAgICAgY29uc3Qgc3RydWN0IHRpbGVneF9vcGVyYW5kICpvcCA9IGRlY29kZWRbaV0ub3BlcmFuZHNbbl07CisKKyAgICAgIGlmIChvcC0+dHlwZSA9PSBUSUxFR1hfT1BfVFlQRV9SRUdJU1RFUikKKyAgICAgICAgcHJpbnRmKCJyJWQiLCAoaW50KSBkZWNvZGVkW2ldLm9wZXJhbmRfdmFsdWVzW25dKTsKKyAgICAgIGVsc2UKKyAgICAgICAgcHJpbnRmKCIlbGQiLCAodW5zaWduZWQgbG9uZylkZWNvZGVkW2ldLm9wZXJhbmRfdmFsdWVzW25dKTsKKworICAgICAgaWYgKG4gIT0gKGRlY29kZWRbaV0ub3Bjb2RlLT5udW1fb3BlcmFuZHMgLSAxKSkKKyAgICAgICAgcHJpbnRmKCIsICIpOworICAgIH0KKyAgICBwcmludGYoIiAiKTsKKyAgfQorICByZXR1cm4gaTsKK30KKworaW50IGRlY29kZSggdGlsZWd4X2J1bmRsZV9iaXRzICpwLCBpbnQgY291bnQsIFVMb25nIHBjICkKK3sKKyAgc3RydWN0IHRpbGVneF9kZWNvZGVkX2luc3RydWN0aW9uCisgICAgZGVjb2RlW1RJTEVHWF9NQVhfSU5TVFJVQ1RJT05TX1BFUl9CVU5ETEVdOworCisgIGlmIChwYykgeworICAgIHByaW50ZigiJTAxMmxseCAlMDE2bGx4ICAiLCBwYywgKFVMb25nKXBbMF0pOworICAgIHBjICs9IDg7CisgIH0KKyAgcGFyc2VfaW5zbl90aWxlZ3gocFswXSwgMCwgZGVjb2RlKTsKKworICBpbnQgazsKKworICBwcmludGYoInsgIik7CisKKyAgZm9yKGsgPSAwOyBkZWNvZGVba10ub3Bjb2RlICYmIChrIDxUSUxFR1hfTUFYX0lOU1RSVUNUSU9OU19QRVJfQlVORExFKTsKKyAgICAgIGsrKykgeworCisgICAgZGlzcGxheV9pbnNuKCZkZWNvZGVba10pOworICAgIGlmICgtLWNvdW50ID4gMCkKKyAgICAgIHByaW50ZigiOyAiKTsKKyAgfQorCisgIHByaW50ZigiIH0iKTsKKworICByZXR1cm4gY291bnQ7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3RpbGVneC9nZW5fdGVzdC5zaCBiL25vbmUvdGVzdHMvdGlsZWd4L2dlbl90ZXN0LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFiNjUzN2UKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3RpbGVneC9nZW5fdGVzdC5zaApAQCAtMCwwICsxLDYwMCBAQAorIyEvYmluL2Jhc2gKKworRklMRVM9KCAiNSAJIDEgCSBpbnNuX3Rlc3RfbW92ZV9YMC5jIgorICAgICAgICAiNSAJIDIgCSBpbnNuX3Rlc3RfbW92ZV9YMS5jIgorICAgICAgICAiNSAJIDQgCSBpbnNuX3Rlc3RfbW92ZV9ZMC5jIgorCSI1IAkgOCAJIGluc25fdGVzdF9tb3ZlX1kxLmMiCisJIjYgCSAxIAkgaW5zbl90ZXN0X21vdmVpX1gwLmMiCisJIjYgCSAyIAkgaW5zbl90ZXN0X21vdmVpX1gxLmMiCisJIjYgCSA0IAkgaW5zbl90ZXN0X21vdmVpX1kwLmMiCisJIjYgCSA4IAkgaW5zbl90ZXN0X21vdmVpX1kxLmMiCisJIjcgCSAxIAkgaW5zbl90ZXN0X21vdmVsaV9YMC5jIgorCSI3IAkgMiAJIGluc25fdGVzdF9tb3ZlbGlfWDEuYyIKKwkiOCAJIDIgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfWDEuYyIKKwkiOCAJIDE2IAkgaW5zbl90ZXN0X3ByZWZldGNoX1kyLmMiCisJIjkgCSAyIAkgaW5zbl90ZXN0X3ByZWZldGNoX2FkZF9sMV9YMS5jIgorCSIxMCAJIDIgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfYWRkX2wxX2ZhdWx0X1gxLmMiCisJIjExIAkgMiAJIGluc25fdGVzdF9wcmVmZXRjaF9hZGRfbDJfWDEuYyIKKwkiMTIgCSAyIAkgaW5zbl90ZXN0X3ByZWZldGNoX2FkZF9sMl9mYXVsdF9YMS5jIgorCSIxMyAJIDIgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfYWRkX2wzX1gxLmMiCisJIjE0IAkgMiAJIGluc25fdGVzdF9wcmVmZXRjaF9hZGRfbDNfZmF1bHRfWDEuYyIKKwkiMTUgCSAyIAkgaW5zbl90ZXN0X3ByZWZldGNoX2wxX1gxLmMiCisJIjE1IAkgMTYgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDFfWTIuYyIKKwkiMTYgCSAyIAkgaW5zbl90ZXN0X3ByZWZldGNoX2wxX2ZhdWx0X1gxLmMiCisJIjE2IAkgMTYgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDFfZmF1bHRfWTIuYyIKKwkiMTcgCSAyIAkgaW5zbl90ZXN0X3ByZWZldGNoX2wyX1gxLmMiCisJIjE3IAkgMTYgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDJfWTIuYyIKKwkiMTggCSAyIAkgaW5zbl90ZXN0X3ByZWZldGNoX2wyX2ZhdWx0X1gxLmMiCisJIjE4IAkgMTYgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDJfZmF1bHRfWTIuYyIKKwkiMTkgCSAyIAkgaW5zbl90ZXN0X3ByZWZldGNoX2wzX1gxLmMiCisJIjE5IAkgMTYgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDNfWTIuYyIKKwkiMjAgCSAyIAkgaW5zbl90ZXN0X3ByZWZldGNoX2wzX2ZhdWx0X1gxLmMiCisJIjIwIAkgMTYgCSBpbnNuX3Rlc3RfcHJlZmV0Y2hfbDNfZmF1bHRfWTIuYyIKKwkiMjEgCSAyIAkgaW5zbl90ZXN0X3JhaXNlX1gxLmMiCisJIjIyIAkgMSAJIGluc25fdGVzdF9hZGRfWDAuYyIKKwkiMjIgCSAyIAkgaW5zbl90ZXN0X2FkZF9YMS5jIgorCSIyMiAJIDQgCSBpbnNuX3Rlc3RfYWRkX1kwLmMiCisJIjIyIAkgOCAJIGluc25fdGVzdF9hZGRfWTEuYyIKKwkiMjMgCSAxIAkgaW5zbl90ZXN0X2FkZGlfWDAuYyIKKwkiMjMgCSAyIAkgaW5zbl90ZXN0X2FkZGlfWDEuYyIKKwkiMjMgCSA0IAkgaW5zbl90ZXN0X2FkZGlfWTAuYyIKKwkiMjMgCSA4IAkgaW5zbl90ZXN0X2FkZGlfWTEuYyIKKwkiMjQgCSAxIAkgaW5zbl90ZXN0X2FkZGxpX1gwLmMiCisJIjI0IAkgMiAJIGluc25fdGVzdF9hZGRsaV9YMS5jIgorCSIyNSAJIDEgCSBpbnNuX3Rlc3RfYWRkeF9YMC5jIgorCSIyNSAJIDIgCSBpbnNuX3Rlc3RfYWRkeF9YMS5jIgorCSIyNSAJIDQgCSBpbnNuX3Rlc3RfYWRkeF9ZMC5jIgorCSIyNSAJIDggCSBpbnNuX3Rlc3RfYWRkeF9ZMS5jIgorCSIyNiAJIDEgCSBpbnNuX3Rlc3RfYWRkeGlfWDAuYyIKKwkiMjYgCSAyIAkgaW5zbl90ZXN0X2FkZHhpX1gxLmMiCisJIjI2IAkgNCAJIGluc25fdGVzdF9hZGR4aV9ZMC5jIgorCSIyNiAJIDggCSBpbnNuX3Rlc3RfYWRkeGlfWTEuYyIKKwkiMjcgCSAxIAkgaW5zbl90ZXN0X2FkZHhsaV9YMC5jIgorCSIyNyAJIDIgCSBpbnNuX3Rlc3RfYWRkeGxpX1gxLmMiCisJIjI4IAkgMSAJIGluc25fdGVzdF9hZGR4c2NfWDAuYyIKKwkiMjggCSAyIAkgaW5zbl90ZXN0X2FkZHhzY19YMS5jIgorCSIyOSAJIDEgCSBpbnNuX3Rlc3RfYW5kX1gwLmMiCisJIjI5IAkgMiAJIGluc25fdGVzdF9hbmRfWDEuYyIKKwkiMjkgCSA0IAkgaW5zbl90ZXN0X2FuZF9ZMC5jIgorCSIyOSAJIDggCSBpbnNuX3Rlc3RfYW5kX1kxLmMiCisJIjMwIAkgMSAJIGluc25fdGVzdF9hbmRpX1gwLmMiCisJIjMwIAkgMiAJIGluc25fdGVzdF9hbmRpX1gxLmMiCisJIjMwIAkgNCAJIGluc25fdGVzdF9hbmRpX1kwLmMiCisJIjMwIAkgOCAJIGluc25fdGVzdF9hbmRpX1kxLmMiCisJIjMxIAkgMiAJIGluc25fdGVzdF9iZXF6X1gxLmMiCisJIjMyIAkgMiAJIGluc25fdGVzdF9iZXF6dF9YMS5jIgorCSIzMyAJIDEgCSBpbnNuX3Rlc3RfYmZleHRzX1gwLmMiCisJIjM0IAkgMSAJIGluc25fdGVzdF9iZmV4dHVfWDAuYyIKKwkiMzUgCSAxIAkgaW5zbl90ZXN0X2JmaW5zX1gwLmMiCisJIjM2IAkgMiAJIGluc25fdGVzdF9iZ2V6X1gxLmMiCisJIjM3IAkgMiAJIGluc25fdGVzdF9iZ2V6dF9YMS5jIgorCSIzOCAJIDIgCSBpbnNuX3Rlc3RfYmd0el9YMS5jIgorCSIzOSAJIDIgCSBpbnNuX3Rlc3RfYmd0enRfWDEuYyIKKwkiNDAgCSAyIAkgaW5zbl90ZXN0X2JsYmNfWDEuYyIKKwkiNDEgCSAyIAkgaW5zbl90ZXN0X2JsYmN0X1gxLmMiCisJIjQyIAkgMiAJIGluc25fdGVzdF9ibGJzX1gxLmMiCisJIjQzIAkgMiAJIGluc25fdGVzdF9ibGJzdF9YMS5jIgorCSI0NCAJIDIgCSBpbnNuX3Rlc3RfYmxlel9YMS5jIgorCSI0NSAJIDIgCSBpbnNuX3Rlc3RfYmxlenRfWDEuYyIKKwkiNDYgCSAyIAkgaW5zbl90ZXN0X2JsdHpfWDEuYyIKKwkiNDcgCSAyIAkgaW5zbl90ZXN0X2JsdHp0X1gxLmMiCisJIjQ4IAkgMiAJIGluc25fdGVzdF9ibmV6X1gxLmMiCisJIjQ5IAkgMiAJIGluc25fdGVzdF9ibmV6dF9YMS5jIgorCSI1MCAJIDEgCSBpbnNuX3Rlc3RfY2x6X1gwLmMiCisJIjUwIAkgNCAJIGluc25fdGVzdF9jbHpfWTAuYyIKKwkiNTEgCSAxIAkgaW5zbl90ZXN0X2Ntb3ZlcXpfWDAuYyIKKwkiNTEgCSA0IAkgaW5zbl90ZXN0X2Ntb3ZlcXpfWTAuYyIKKwkiNTIgCSAxIAkgaW5zbl90ZXN0X2Ntb3ZuZXpfWDAuYyIKKwkiNTIgCSA0IAkgaW5zbl90ZXN0X2Ntb3ZuZXpfWTAuYyIKKwkiNTMgCSAxIAkgaW5zbl90ZXN0X2NtcGVxX1gwLmMiCisJIjUzIAkgMiAJIGluc25fdGVzdF9jbXBlcV9YMS5jIgorCSI1MyAJIDQgCSBpbnNuX3Rlc3RfY21wZXFfWTAuYyIKKwkiNTMgCSA4IAkgaW5zbl90ZXN0X2NtcGVxX1kxLmMiCisJIjU0IAkgMSAJIGluc25fdGVzdF9jbXBlcWlfWDAuYyIKKwkiNTQgCSAyIAkgaW5zbl90ZXN0X2NtcGVxaV9YMS5jIgorCSI1NCAJIDQgCSBpbnNuX3Rlc3RfY21wZXFpX1kwLmMiCisJIjU0IAkgOCAJIGluc25fdGVzdF9jbXBlcWlfWTEuYyIKKwkiNTUgCSAyIAkgaW5zbl90ZXN0X2NtcGV4Y2hfWDEuYyIKKwkiNTYgCSAyIAkgaW5zbl90ZXN0X2NtcGV4Y2g0X1gxLmMiCisJIjU3IAkgMSAJIGluc25fdGVzdF9jbXBsZXNfWDAuYyIKKwkiNTcgCSAyIAkgaW5zbl90ZXN0X2NtcGxlc19YMS5jIgorCSI1NyAJIDQgCSBpbnNuX3Rlc3RfY21wbGVzX1kwLmMiCisJIjU3IAkgOCAJIGluc25fdGVzdF9jbXBsZXNfWTEuYyIKKwkiNTggCSAxIAkgaW5zbl90ZXN0X2NtcGxldV9YMC5jIgorCSI1OCAJIDIgCSBpbnNuX3Rlc3RfY21wbGV1X1gxLmMiCisJIjU4IAkgNCAJIGluc25fdGVzdF9jbXBsZXVfWTAuYyIKKwkiNTggCSA4IAkgaW5zbl90ZXN0X2NtcGxldV9ZMS5jIgorCSI1OSAJIDEgCSBpbnNuX3Rlc3RfY21wbHRzX1gwLmMiCisJIjU5IAkgMiAJIGluc25fdGVzdF9jbXBsdHNfWDEuYyIKKwkiNTkgCSA0IAkgaW5zbl90ZXN0X2NtcGx0c19ZMC5jIgorCSI1OSAJIDggCSBpbnNuX3Rlc3RfY21wbHRzX1kxLmMiCisJIjYwIAkgMSAJIGluc25fdGVzdF9jbXBsdHNpX1gwLmMiCisJIjYwIAkgMiAJIGluc25fdGVzdF9jbXBsdHNpX1gxLmMiCisJIjYwIAkgNCAJIGluc25fdGVzdF9jbXBsdHNpX1kwLmMiCisJIjYwIAkgOCAJIGluc25fdGVzdF9jbXBsdHNpX1kxLmMiCisJIjYxIAkgMSAJIGluc25fdGVzdF9jbXBsdHVfWDAuYyIKKwkiNjEgCSAyIAkgaW5zbl90ZXN0X2NtcGx0dV9YMS5jIgorCSI2MSAJIDQgCSBpbnNuX3Rlc3RfY21wbHR1X1kwLmMiCisJIjYxIAkgOCAJIGluc25fdGVzdF9jbXBsdHVfWTEuYyIKKwkiNjIgCSAxIAkgaW5zbl90ZXN0X2NtcGx0dWlfWDAuYyIKKwkiNjIgCSAyIAkgaW5zbl90ZXN0X2NtcGx0dWlfWDEuYyIKKwkiNjMgCSAxIAkgaW5zbl90ZXN0X2NtcG5lX1gwLmMiCisJIjYzIAkgMiAJIGluc25fdGVzdF9jbXBuZV9YMS5jIgorCSI2MyAJIDQgCSBpbnNuX3Rlc3RfY21wbmVfWTAuYyIKKwkiNjMgCSA4IAkgaW5zbl90ZXN0X2NtcG5lX1kxLmMiCisJIjY0IAkgMSAJIGluc25fdGVzdF9jbXVsX1gwLmMiCisJIjY1IAkgMSAJIGluc25fdGVzdF9jbXVsYV9YMC5jIgorCSI2NiAJIDEgCSBpbnNuX3Rlc3RfY211bGFmX1gwLmMiCisJIjY3IAkgMSAJIGluc25fdGVzdF9jbXVsZl9YMC5jIgorCSI2OCAJIDEgCSBpbnNuX3Rlc3RfY211bGZyX1gwLmMiCisJIjY5IAkgMSAJIGluc25fdGVzdF9jbXVsaF9YMC5jIgorCSI3MCAJIDEgCSBpbnNuX3Rlc3RfY211bGhyX1gwLmMiCisJIjcxIAkgMSAJIGluc25fdGVzdF9jcmMzMl8zMl9YMC5jIgorCSI3MiAJIDEgCSBpbnNuX3Rlc3RfY3JjMzJfOF9YMC5jIgorCSI3MyAJIDEgCSBpbnNuX3Rlc3RfY3R6X1gwLmMiCisJIjczIAkgNCAJIGluc25fdGVzdF9jdHpfWTAuYyIKKwkiNzQgCSAxIAkgaW5zbl90ZXN0X2RibGFsaWduX1gwLmMiCisJIjc1IAkgMSAJIGluc25fdGVzdF9kYmxhbGlnbjJfWDAuYyIKKwkiNzUgCSAyIAkgaW5zbl90ZXN0X2RibGFsaWduMl9YMS5jIgorCSI3NiAJIDEgCSBpbnNuX3Rlc3RfZGJsYWxpZ240X1gwLmMiCisJIjc2IAkgMiAJIGluc25fdGVzdF9kYmxhbGlnbjRfWDEuYyIKKwkiNzcgCSAxIAkgaW5zbl90ZXN0X2RibGFsaWduNl9YMC5jIgorCSI3NyAJIDIgCSBpbnNuX3Rlc3RfZGJsYWxpZ242X1gxLmMiCisJIjc5IAkgMiAJIGluc25fdGVzdF9kdGxicHJfWDEuYyIKKwkiODAgCSAyIAkgaW5zbl90ZXN0X2V4Y2hfWDEuYyIKKwkiODEgCSAyIAkgaW5zbl90ZXN0X2V4Y2g0X1gxLmMiCisJIjgyIAkgMSAJIGluc25fdGVzdF9mZG91YmxlX2FkZF9mbGFnc19YMC5jIgorCSI4MyAJIDEgCSBpbnNuX3Rlc3RfZmRvdWJsZV9hZGRzdWJfWDAuYyIKKwkiODQgCSAxIAkgaW5zbl90ZXN0X2Zkb3VibGVfbXVsX2ZsYWdzX1gwLmMiCisJIjg1IAkgMSAJIGluc25fdGVzdF9mZG91YmxlX3BhY2sxX1gwLmMiCisJIjg2IAkgMSAJIGluc25fdGVzdF9mZG91YmxlX3BhY2syX1gwLmMiCisJIjg3IAkgMSAJIGluc25fdGVzdF9mZG91YmxlX3N1Yl9mbGFnc19YMC5jIgorCSI4OCAJIDEgCSBpbnNuX3Rlc3RfZmRvdWJsZV91bnBhY2tfbWF4X1gwLmMiCisJIjg5IAkgMSAJIGluc25fdGVzdF9mZG91YmxlX3VucGFja19taW5fWDAuYyIKKwkiOTAgCSAyIAkgaW5zbl90ZXN0X2ZldGNoYWRkX1gxLmMiCisJIjkxIAkgMiAJIGluc25fdGVzdF9mZXRjaGFkZDRfWDEuYyIKKwkiOTIgCSAyIAkgaW5zbl90ZXN0X2ZldGNoYWRkZ2V6X1gxLmMiCisJIjkzIAkgMiAJIGluc25fdGVzdF9mZXRjaGFkZGdlejRfWDEuYyIKKwkiOTQgCSAyIAkgaW5zbl90ZXN0X2ZldGNoYW5kX1gxLmMiCisJIjk1IAkgMiAJIGluc25fdGVzdF9mZXRjaGFuZDRfWDEuYyIKKwkiOTYgCSAyIAkgaW5zbl90ZXN0X2ZldGNob3JfWDEuYyIKKwkiOTcgCSAyIAkgaW5zbl90ZXN0X2ZldGNob3I0X1gxLmMiCisJIjk4IAkgMiAJIGluc25fdGVzdF9maW52X1gxLmMiCisJIjk5IAkgMiAJIGluc25fdGVzdF9mbHVzaF9YMS5jIgorCSIxMDAgCSAyIAkgaW5zbl90ZXN0X2ZsdXNod2JfWDEuYyIKKwkiMTAxIAkgMSAJIGluc25fdGVzdF9mbm9wX1gwLmMiCisJIjEwMSAJIDIgCSBpbnNuX3Rlc3RfZm5vcF9YMS5jIgorCSIxMDEgCSA0IAkgaW5zbl90ZXN0X2Zub3BfWTAuYyIKKwkiMTAxIAkgOCAJIGluc25fdGVzdF9mbm9wX1kxLmMiCisJIjEwMiAJIDEgCSBpbnNuX3Rlc3RfZnNpbmdsZV9hZGQxX1gwLmMiCisJIjEwMyAJIDEgCSBpbnNuX3Rlc3RfZnNpbmdsZV9hZGRzdWIyX1gwLmMiCisJIjEwNCAJIDEgCSBpbnNuX3Rlc3RfZnNpbmdsZV9tdWwxX1gwLmMiCisJIjEwNSAJIDEgCSBpbnNuX3Rlc3RfZnNpbmdsZV9tdWwyX1gwLmMiCisJIjEwNiAJIDEgCSBpbnNuX3Rlc3RfZnNpbmdsZV9wYWNrMV9YMC5jIgorCSIxMDYgCSA0IAkgaW5zbl90ZXN0X2ZzaW5nbGVfcGFjazFfWTAuYyIKKwkiMTA3IAkgMSAJIGluc25fdGVzdF9mc2luZ2xlX3BhY2syX1gwLmMiCisJIjEwOCAJIDEgCSBpbnNuX3Rlc3RfZnNpbmdsZV9zdWIxX1gwLmMiCisJIjEwOSAJIDIgCSBpbnNuX3Rlc3RfaWNvaF9YMS5jIgorCSIxMTEgCSAyIAkgaW5zbl90ZXN0X2ludl9YMS5jIgorCSIxMTMgCSAyIAkgaW5zbl90ZXN0X2pfWDEuYyIKKwkiMTE0IAkgMiAJIGluc25fdGVzdF9qYWxfWDEuYyIKKwkiMTE1IAkgMiAJIGluc25fdGVzdF9qYWxyX1gxLmMiCisJIjExNSAJIDggCSBpbnNuX3Rlc3RfamFscl9ZMS5jIgorCSIxMTYgCSAyIAkgaW5zbl90ZXN0X2phbHJwX1gxLmMiCisJIjExNiAJIDggCSBpbnNuX3Rlc3RfamFscnBfWTEuYyIKKwkiMTE3IAkgMiAJIGluc25fdGVzdF9qcl9YMS5jIgorCSIxMTcgCSA4IAkgaW5zbl90ZXN0X2pyX1kxLmMiCisJIjExOCAJIDIgCSBpbnNuX3Rlc3RfanJwX1gxLmMiCisJIjExOCAJIDggCSBpbnNuX3Rlc3RfanJwX1kxLmMiCisJIjExOSAJIDIgCSBpbnNuX3Rlc3RfbGRfWDEuYyIKKwkiMTE5IAkgMTYgCSBpbnNuX3Rlc3RfbGRfWTIuYyIKKwkiMTIwIAkgMiAJIGluc25fdGVzdF9sZDFzX1gxLmMiCisJIjEyMCAJIDE2IAkgaW5zbl90ZXN0X2xkMXNfWTIuYyIKKwkiMTIxIAkgMiAJIGluc25fdGVzdF9sZDFzX2FkZF9YMS5jIgorCSIxMjIgCSAyIAkgaW5zbl90ZXN0X2xkMXVfWDEuYyIKKwkiMTIyIAkgMTYgCSBpbnNuX3Rlc3RfbGQxdV9ZMi5jIgorCSIxMjMgCSAyIAkgaW5zbl90ZXN0X2xkMXVfYWRkX1gxLmMiCisJIjEyNCAJIDIgCSBpbnNuX3Rlc3RfbGQyc19YMS5jIgorCSIxMjQgCSAxNiAJIGluc25fdGVzdF9sZDJzX1kyLmMiCisJIjEyNSAJIDIgCSBpbnNuX3Rlc3RfbGQyc19hZGRfWDEuYyIKKwkiMTI2IAkgMiAJIGluc25fdGVzdF9sZDJ1X1gxLmMiCisJIjEyNiAJIDE2IAkgaW5zbl90ZXN0X2xkMnVfWTIuYyIKKwkiMTI3IAkgMiAJIGluc25fdGVzdF9sZDJ1X2FkZF9YMS5jIgorCSIxMjggCSAyIAkgaW5zbl90ZXN0X2xkNHNfWDEuYyIKKwkiMTI4IAkgMTYgCSBpbnNuX3Rlc3RfbGQ0c19ZMi5jIgorCSIxMjkgCSAyIAkgaW5zbl90ZXN0X2xkNHNfYWRkX1gxLmMiCisJIjEzMCAJIDIgCSBpbnNuX3Rlc3RfbGQ0dV9YMS5jIgorCSIxMzAgCSAxNiAJIGluc25fdGVzdF9sZDR1X1kyLmMiCisJIjEzMSAJIDIgCSBpbnNuX3Rlc3RfbGQ0dV9hZGRfWDEuYyIKKwkiMTMyIAkgMiAJIGluc25fdGVzdF9sZF9hZGRfWDEuYyIKKwkiMTMzIAkgMiAJIGluc25fdGVzdF9sZG5hX1gxLmMiCisJIjEzNCAJIDIgCSBpbnNuX3Rlc3RfbGRuYV9hZGRfWDEuYyIKKwkiMTM1IAkgMiAJIGluc25fdGVzdF9sZG50X1gxLmMiCisJIjEzNiAJIDIgCSBpbnNuX3Rlc3RfbGRudDFzX1gxLmMiCisJIjEzNyAJIDIgCSBpbnNuX3Rlc3RfbGRudDFzX2FkZF9YMS5jIgorCSIxMzggCSAyIAkgaW5zbl90ZXN0X2xkbnQxdV9YMS5jIgorCSIxMzkgCSAyIAkgaW5zbl90ZXN0X2xkbnQxdV9hZGRfWDEuYyIKKwkiMTQwIAkgMiAJIGluc25fdGVzdF9sZG50MnNfWDEuYyIKKwkiMTQxIAkgMiAJIGluc25fdGVzdF9sZG50MnNfYWRkX1gxLmMiCisJIjE0MiAJIDIgCSBpbnNuX3Rlc3RfbGRudDJ1X1gxLmMiCisJIjE0MyAJIDIgCSBpbnNuX3Rlc3RfbGRudDJ1X2FkZF9YMS5jIgorCSIxNDQgCSAyIAkgaW5zbl90ZXN0X2xkbnQ0c19YMS5jIgorCSIxNDUgCSAyIAkgaW5zbl90ZXN0X2xkbnQ0c19hZGRfWDEuYyIKKwkiMTQ2IAkgMiAJIGluc25fdGVzdF9sZG50NHVfWDEuYyIKKwkiMTQ3IAkgMiAJIGluc25fdGVzdF9sZG50NHVfYWRkX1gxLmMiCisJIjE0OCAJIDIgCSBpbnNuX3Rlc3RfbGRudF9hZGRfWDEuYyIKKwkiMTQ5IAkgMiAJIGluc25fdGVzdF9sbmtfWDEuYyIKKwkiMTQ5IAkgOCAJIGluc25fdGVzdF9sbmtfWTEuYyIKKwkiMTUwIAkgMiAJIGluc25fdGVzdF9tZl9YMS5jIgorCSIxNTIgCSAxIAkgaW5zbl90ZXN0X21tX1gwLmMiCisJIjE1MyAJIDEgCSBpbnNuX3Rlc3RfbW56X1gwLmMiCisJIjE1MyAJIDIgCSBpbnNuX3Rlc3RfbW56X1gxLmMiCisJIjE1MyAJIDQgCSBpbnNuX3Rlc3RfbW56X1kwLmMiCisJIjE1MyAJIDggCSBpbnNuX3Rlc3RfbW56X1kxLmMiCisJIjE1NSAJIDEgCSBpbnNuX3Rlc3RfbXVsX2hzX2hzX1gwLmMiCisJIjE1NSAJIDQgCSBpbnNuX3Rlc3RfbXVsX2hzX2hzX1kwLmMiCisJIjE1NiAJIDEgCSBpbnNuX3Rlc3RfbXVsX2hzX2h1X1gwLmMiCisJIjE1NyAJIDEgCSBpbnNuX3Rlc3RfbXVsX2hzX2xzX1gwLmMiCisJIjE1OCAJIDEgCSBpbnNuX3Rlc3RfbXVsX2hzX2x1X1gwLmMiCisJIjE1OSAJIDEgCSBpbnNuX3Rlc3RfbXVsX2h1X2h1X1gwLmMiCisJIjE1OSAJIDQgCSBpbnNuX3Rlc3RfbXVsX2h1X2h1X1kwLmMiCisJIjE2MCAJIDEgCSBpbnNuX3Rlc3RfbXVsX2h1X2xzX1gwLmMiCisJIjE2MSAJIDEgCSBpbnNuX3Rlc3RfbXVsX2h1X2x1X1gwLmMiCisJIjE2MiAJIDEgCSBpbnNuX3Rlc3RfbXVsX2xzX2xzX1gwLmMiCisJIjE2MiAJIDQgCSBpbnNuX3Rlc3RfbXVsX2xzX2xzX1kwLmMiCisJIjE2MyAJIDEgCSBpbnNuX3Rlc3RfbXVsX2xzX2x1X1gwLmMiCisJIjE2NCAJIDEgCSBpbnNuX3Rlc3RfbXVsX2x1X2x1X1gwLmMiCisJIjE2NCAJIDQgCSBpbnNuX3Rlc3RfbXVsX2x1X2x1X1kwLmMiCisJIjE2NSAJIDEgCSBpbnNuX3Rlc3RfbXVsYV9oc19oc19YMC5jIgorCSIxNjUgCSA0IAkgaW5zbl90ZXN0X211bGFfaHNfaHNfWTAuYyIKKwkiMTY2IAkgMSAJIGluc25fdGVzdF9tdWxhX2hzX2h1X1gwLmMiCisJIjE2NyAJIDEgCSBpbnNuX3Rlc3RfbXVsYV9oc19sc19YMC5jIgorCSIxNjggCSAxIAkgaW5zbl90ZXN0X211bGFfaHNfbHVfWDAuYyIKKwkiMTY5IAkgMSAJIGluc25fdGVzdF9tdWxhX2h1X2h1X1gwLmMiCisJIjE2OSAJIDQgCSBpbnNuX3Rlc3RfbXVsYV9odV9odV9ZMC5jIgorCSIxNzAgCSAxIAkgaW5zbl90ZXN0X211bGFfaHVfbHNfWDAuYyIKKwkiMTcxIAkgMSAJIGluc25fdGVzdF9tdWxhX2h1X2x1X1gwLmMiCisJIjE3MiAJIDEgCSBpbnNuX3Rlc3RfbXVsYV9sc19sc19YMC5jIgorCSIxNzIgCSA0IAkgaW5zbl90ZXN0X211bGFfbHNfbHNfWTAuYyIKKwkiMTczIAkgMSAJIGluc25fdGVzdF9tdWxhX2xzX2x1X1gwLmMiCisJIjE3NCAJIDEgCSBpbnNuX3Rlc3RfbXVsYV9sdV9sdV9YMC5jIgorCSIxNzQgCSA0IAkgaW5zbl90ZXN0X211bGFfbHVfbHVfWTAuYyIKKwkiMTc1IAkgMSAJIGluc25fdGVzdF9tdWxheF9YMC5jIgorCSIxNzUgCSA0IAkgaW5zbl90ZXN0X211bGF4X1kwLmMiCisJIjE3NiAJIDEgCSBpbnNuX3Rlc3RfbXVseF9YMC5jIgorCSIxNzYgCSA0IAkgaW5zbl90ZXN0X211bHhfWTAuYyIKKwkiMTc3IAkgMSAJIGluc25fdGVzdF9tel9YMC5jIgorCSIxNzcgCSAyIAkgaW5zbl90ZXN0X216X1gxLmMiCisJIjE3NyAJIDQgCSBpbnNuX3Rlc3RfbXpfWTAuYyIKKwkiMTc3IAkgOCAJIGluc25fdGVzdF9tel9ZMS5jIgorCSIxNzkgCSAxIAkgaW5zbl90ZXN0X25vcF9YMC5jIgorCSIxNzkgCSAyIAkgaW5zbl90ZXN0X25vcF9YMS5jIgorCSIxNzkgCSA0IAkgaW5zbl90ZXN0X25vcF9ZMC5jIgorCSIxNzkgCSA4IAkgaW5zbl90ZXN0X25vcF9ZMS5jIgorCSIxODAgCSAxIAkgaW5zbl90ZXN0X25vcl9YMC5jIgorCSIxODAgCSAyIAkgaW5zbl90ZXN0X25vcl9YMS5jIgorCSIxODAgCSA0IAkgaW5zbl90ZXN0X25vcl9ZMC5jIgorCSIxODAgCSA4IAkgaW5zbl90ZXN0X25vcl9ZMS5jIgorCSIxODEgCSAxIAkgaW5zbl90ZXN0X29yX1gwLmMiCisJIjE4MSAJIDIgCSBpbnNuX3Rlc3Rfb3JfWDEuYyIKKwkiMTgxIAkgNCAJIGluc25fdGVzdF9vcl9ZMC5jIgorCSIxODEgCSA4IAkgaW5zbl90ZXN0X29yX1kxLmMiCisJIjE4MiAJIDEgCSBpbnNuX3Rlc3Rfb3JpX1gwLmMiCisJIjE4MiAJIDIgCSBpbnNuX3Rlc3Rfb3JpX1gxLmMiCisJIjE4MyAJIDEgCSBpbnNuX3Rlc3RfcGNudF9YMC5jIgorCSIxODMgCSA0IAkgaW5zbl90ZXN0X3BjbnRfWTAuYyIKKwkiMTg0IAkgMSAJIGluc25fdGVzdF9yZXZiaXRzX1gwLmMiCisJIjE4NCAJIDQgCSBpbnNuX3Rlc3RfcmV2Yml0c19ZMC5jIgorCSIxODUgCSAxIAkgaW5zbl90ZXN0X3JldmJ5dGVzX1gwLmMiCisJIjE4NSAJIDQgCSBpbnNuX3Rlc3RfcmV2Ynl0ZXNfWTAuYyIKKwkiMTg2IAkgMSAJIGluc25fdGVzdF9yb3RsX1gwLmMiCisJIjE4NiAJIDIgCSBpbnNuX3Rlc3Rfcm90bF9YMS5jIgorCSIxODYgCSA0IAkgaW5zbl90ZXN0X3JvdGxfWTAuYyIKKwkiMTg2IAkgOCAJIGluc25fdGVzdF9yb3RsX1kxLmMiCisJIjE4NyAJIDEgCSBpbnNuX3Rlc3Rfcm90bGlfWDAuYyIKKwkiMTg3IAkgMiAJIGluc25fdGVzdF9yb3RsaV9YMS5jIgorCSIxODcgCSA0IAkgaW5zbl90ZXN0X3JvdGxpX1kwLmMiCisJIjE4NyAJIDggCSBpbnNuX3Rlc3Rfcm90bGlfWTEuYyIKKwkiMTg4IAkgMSAJIGluc25fdGVzdF9zaGxfWDAuYyIKKwkiMTg4IAkgMiAJIGluc25fdGVzdF9zaGxfWDEuYyIKKwkiMTg4IAkgNCAJIGluc25fdGVzdF9zaGxfWTAuYyIKKwkiMTg4IAkgOCAJIGluc25fdGVzdF9zaGxfWTEuYyIKKwkiMTg5IAkgMSAJIGluc25fdGVzdF9zaGwxNmluc2xpX1gwLmMiCisJIjE4OSAJIDIgCSBpbnNuX3Rlc3Rfc2hsMTZpbnNsaV9YMS5jIgorCSIxOTAgCSAxIAkgaW5zbl90ZXN0X3NobDFhZGRfWDAuYyIKKwkiMTkwIAkgMiAJIGluc25fdGVzdF9zaGwxYWRkX1gxLmMiCisJIjE5MCAJIDQgCSBpbnNuX3Rlc3Rfc2hsMWFkZF9ZMC5jIgorCSIxOTAgCSA4IAkgaW5zbl90ZXN0X3NobDFhZGRfWTEuYyIKKwkiMTkxIAkgMSAJIGluc25fdGVzdF9zaGwxYWRkeF9YMC5jIgorCSIxOTEgCSAyIAkgaW5zbl90ZXN0X3NobDFhZGR4X1gxLmMiCisJIjE5MSAJIDQgCSBpbnNuX3Rlc3Rfc2hsMWFkZHhfWTAuYyIKKwkiMTkxIAkgOCAJIGluc25fdGVzdF9zaGwxYWRkeF9ZMS5jIgorCSIxOTIgCSAxIAkgaW5zbl90ZXN0X3NobDJhZGRfWDAuYyIKKwkiMTkyIAkgMiAJIGluc25fdGVzdF9zaGwyYWRkX1gxLmMiCisJIjE5MiAJIDQgCSBpbnNuX3Rlc3Rfc2hsMmFkZF9ZMC5jIgorCSIxOTIgCSA4IAkgaW5zbl90ZXN0X3NobDJhZGRfWTEuYyIKKwkiMTkzIAkgMSAJIGluc25fdGVzdF9zaGwyYWRkeF9YMC5jIgorCSIxOTMgCSAyIAkgaW5zbl90ZXN0X3NobDJhZGR4X1gxLmMiCisJIjE5MyAJIDQgCSBpbnNuX3Rlc3Rfc2hsMmFkZHhfWTAuYyIKKwkiMTkzIAkgOCAJIGluc25fdGVzdF9zaGwyYWRkeF9ZMS5jIgorCSIxOTQgCSAxIAkgaW5zbl90ZXN0X3NobDNhZGRfWDAuYyIKKwkiMTk0IAkgMiAJIGluc25fdGVzdF9zaGwzYWRkX1gxLmMiCisJIjE5NCAJIDQgCSBpbnNuX3Rlc3Rfc2hsM2FkZF9ZMC5jIgorCSIxOTQgCSA4IAkgaW5zbl90ZXN0X3NobDNhZGRfWTEuYyIKKwkiMTk1IAkgMSAJIGluc25fdGVzdF9zaGwzYWRkeF9YMC5jIgorCSIxOTUgCSAyIAkgaW5zbl90ZXN0X3NobDNhZGR4X1gxLmMiCisJIjE5NSAJIDQgCSBpbnNuX3Rlc3Rfc2hsM2FkZHhfWTAuYyIKKwkiMTk1IAkgOCAJIGluc25fdGVzdF9zaGwzYWRkeF9ZMS5jIgorCSIxOTYgCSAxIAkgaW5zbl90ZXN0X3NobGlfWDAuYyIKKwkiMTk2IAkgMiAJIGluc25fdGVzdF9zaGxpX1gxLmMiCisJIjE5NiAJIDQgCSBpbnNuX3Rlc3Rfc2hsaV9ZMC5jIgorCSIxOTYgCSA4IAkgaW5zbl90ZXN0X3NobGlfWTEuYyIKKwkiMTk3IAkgMSAJIGluc25fdGVzdF9zaGx4X1gwLmMiCisJIjE5NyAJIDIgCSBpbnNuX3Rlc3Rfc2hseF9YMS5jIgorCSIxOTggCSAxIAkgaW5zbl90ZXN0X3NobHhpX1gwLmMiCisJIjE5OCAJIDIgCSBpbnNuX3Rlc3Rfc2hseGlfWDEuYyIKKwkiMTk5IAkgMSAJIGluc25fdGVzdF9zaHJzX1gwLmMiCisJIjE5OSAJIDIgCSBpbnNuX3Rlc3Rfc2hyc19YMS5jIgorCSIxOTkgCSA0IAkgaW5zbl90ZXN0X3NocnNfWTAuYyIKKwkiMTk5IAkgOCAJIGluc25fdGVzdF9zaHJzX1kxLmMiCisJIjIwMCAJIDEgCSBpbnNuX3Rlc3Rfc2hyc2lfWDAuYyIKKwkiMjAwIAkgMiAJIGluc25fdGVzdF9zaHJzaV9YMS5jIgorCSIyMDAgCSA0IAkgaW5zbl90ZXN0X3NocnNpX1kwLmMiCisJIjIwMCAJIDggCSBpbnNuX3Rlc3Rfc2hyc2lfWTEuYyIKKwkiMjAxIAkgMSAJIGluc25fdGVzdF9zaHJ1X1gwLmMiCisJIjIwMSAJIDIgCSBpbnNuX3Rlc3Rfc2hydV9YMS5jIgorCSIyMDEgCSA0IAkgaW5zbl90ZXN0X3NocnVfWTAuYyIKKwkiMjAxIAkgOCAJIGluc25fdGVzdF9zaHJ1X1kxLmMiCisJIjIwMiAJIDEgCSBpbnNuX3Rlc3Rfc2hydWlfWDAuYyIKKwkiMjAyIAkgMiAJIGluc25fdGVzdF9zaHJ1aV9YMS5jIgorCSIyMDIgCSA0IAkgaW5zbl90ZXN0X3NocnVpX1kwLmMiCisJIjIwMiAJIDggCSBpbnNuX3Rlc3Rfc2hydWlfWTEuYyIKKwkiMjAzIAkgMSAJIGluc25fdGVzdF9zaHJ1eF9YMC5jIgorCSIyMDMgCSAyIAkgaW5zbl90ZXN0X3NocnV4X1gxLmMiCisJIjIwNCAJIDEgCSBpbnNuX3Rlc3Rfc2hydXhpX1gwLmMiCisJIjIwNCAJIDIgCSBpbnNuX3Rlc3Rfc2hydXhpX1gxLmMiCisJIjIwNSAJIDEgCSBpbnNuX3Rlc3Rfc2h1ZmZsZWJ5dGVzX1gwLmMiCisJIjIwNiAJIDIgCSBpbnNuX3Rlc3Rfc3RfWDEuYyIKKwkiMjA2IAkgMTYgCSBpbnNuX3Rlc3Rfc3RfWTIuYyIKKwkiMjA3IAkgMiAJIGluc25fdGVzdF9zdDFfWDEuYyIKKwkiMjA3IAkgMTYgCSBpbnNuX3Rlc3Rfc3QxX1kyLmMiCisJIjIwOCAJIDIgCSBpbnNuX3Rlc3Rfc3QxX2FkZF9YMS5jIgorCSIyMDkgCSAyIAkgaW5zbl90ZXN0X3N0Ml9YMS5jIgorCSIyMDkgCSAxNiAJIGluc25fdGVzdF9zdDJfWTIuYyIKKwkiMjEwIAkgMiAJIGluc25fdGVzdF9zdDJfYWRkX1gxLmMiCisJIjIxMSAJIDIgCSBpbnNuX3Rlc3Rfc3Q0X1gxLmMiCisJIjIxMSAJIDE2IAkgaW5zbl90ZXN0X3N0NF9ZMi5jIgorCSIyMTIgCSAyIAkgaW5zbl90ZXN0X3N0NF9hZGRfWDEuYyIKKwkiMjEzIAkgMiAJIGluc25fdGVzdF9zdF9hZGRfWDEuYyIKKwkiMjE0IAkgMiAJIGluc25fdGVzdF9zdG50X1gxLmMiCisJIjIxNSAJIDIgCSBpbnNuX3Rlc3Rfc3RudDFfWDEuYyIKKwkiMjE2IAkgMiAJIGluc25fdGVzdF9zdG50MV9hZGRfWDEuYyIKKwkiMjE3IAkgMiAJIGluc25fdGVzdF9zdG50Ml9YMS5jIgorCSIyMTggCSAyIAkgaW5zbl90ZXN0X3N0bnQyX2FkZF9YMS5jIgorCSIyMTkgCSAyIAkgaW5zbl90ZXN0X3N0bnQ0X1gxLmMiCisJIjIyMCAJIDIgCSBpbnNuX3Rlc3Rfc3RudDRfYWRkX1gxLmMiCisJIjIyMSAJIDIgCSBpbnNuX3Rlc3Rfc3RudF9hZGRfWDEuYyIKKwkiMjIyIAkgMSAJIGluc25fdGVzdF9zdWJfWDAuYyIKKwkiMjIyIAkgMiAJIGluc25fdGVzdF9zdWJfWDEuYyIKKwkiMjIyIAkgNCAJIGluc25fdGVzdF9zdWJfWTAuYyIKKwkiMjIyIAkgOCAJIGluc25fdGVzdF9zdWJfWTEuYyIKKwkiMjIzIAkgMSAJIGluc25fdGVzdF9zdWJ4X1gwLmMiCisJIjIyMyAJIDIgCSBpbnNuX3Rlc3Rfc3VieF9YMS5jIgorCSIyMjMgCSA0IAkgaW5zbl90ZXN0X3N1YnhfWTAuYyIKKwkiMjIzIAkgOCAJIGluc25fdGVzdF9zdWJ4X1kxLmMiCisJIjIyNCAJIDEgCSBpbnNuX3Rlc3Rfc3VieHNjX1gwLmMiCisJIjIyNCAJIDIgCSBpbnNuX3Rlc3Rfc3VieHNjX1gxLmMiCisJIjIyOSAJIDEgCSBpbnNuX3Rlc3RfdGJsaWR4YjBfWDAuYyIKKwkiMjI5IAkgNCAJIGluc25fdGVzdF90YmxpZHhiMF9ZMC5jIgorCSIyMzAgCSAxIAkgaW5zbl90ZXN0X3RibGlkeGIxX1gwLmMiCisJIjIzMCAJIDQgCSBpbnNuX3Rlc3RfdGJsaWR4YjFfWTAuYyIKKwkiMjMxIAkgMSAJIGluc25fdGVzdF90YmxpZHhiMl9YMC5jIgorCSIyMzEgCSA0IAkgaW5zbl90ZXN0X3RibGlkeGIyX1kwLmMiCisJIjIzMiAJIDEgCSBpbnNuX3Rlc3RfdGJsaWR4YjNfWDAuYyIKKwkiMjMyIAkgNCAJIGluc25fdGVzdF90YmxpZHhiM19ZMC5jIgorCSIyMzMgCSAxIAkgaW5zbl90ZXN0X3YxYWRkX1gwLmMiCisJIjIzMyAJIDIgCSBpbnNuX3Rlc3RfdjFhZGRfWDEuYyIKKwkiMjM0IAkgMSAJIGluc25fdGVzdF92MWFkZGlfWDAuYyIKKwkiMjM0IAkgMiAJIGluc25fdGVzdF92MWFkZGlfWDEuYyIKKwkiMjM1IAkgMSAJIGluc25fdGVzdF92MWFkZHVjX1gwLmMiCisJIjIzNSAJIDIgCSBpbnNuX3Rlc3RfdjFhZGR1Y19YMS5jIgorCSIyMzYgCSAxIAkgaW5zbl90ZXN0X3YxYWRpZmZ1X1gwLmMiCisJIjIzNyAJIDEgCSBpbnNuX3Rlc3RfdjFhdmd1X1gwLmMiCisJIjIzOCAJIDEgCSBpbnNuX3Rlc3RfdjFjbXBlcV9YMC5jIgorCSIyMzggCSAyIAkgaW5zbl90ZXN0X3YxY21wZXFfWDEuYyIKKwkiMjM5IAkgMSAJIGluc25fdGVzdF92MWNtcGVxaV9YMC5jIgorCSIyMzkgCSAyIAkgaW5zbl90ZXN0X3YxY21wZXFpX1gxLmMiCisJIjI0MCAJIDEgCSBpbnNuX3Rlc3RfdjFjbXBsZXNfWDAuYyIKKwkiMjQwIAkgMiAJIGluc25fdGVzdF92MWNtcGxlc19YMS5jIgorCSIyNDEgCSAxIAkgaW5zbl90ZXN0X3YxY21wbGV1X1gwLmMiCisJIjI0MSAJIDIgCSBpbnNuX3Rlc3RfdjFjbXBsZXVfWDEuYyIKKwkiMjQyIAkgMSAJIGluc25fdGVzdF92MWNtcGx0c19YMC5jIgorCSIyNDIgCSAyIAkgaW5zbl90ZXN0X3YxY21wbHRzX1gxLmMiCisJIjI0MyAJIDEgCSBpbnNuX3Rlc3RfdjFjbXBsdHNpX1gwLmMiCisJIjI0MyAJIDIgCSBpbnNuX3Rlc3RfdjFjbXBsdHNpX1gxLmMiCisJIjI0NCAJIDEgCSBpbnNuX3Rlc3RfdjFjbXBsdHVfWDAuYyIKKwkiMjQ0IAkgMiAJIGluc25fdGVzdF92MWNtcGx0dV9YMS5jIgorCSIyNDUgCSAxIAkgaW5zbl90ZXN0X3YxY21wbHR1aV9YMC5jIgorCSIyNDUgCSAyIAkgaW5zbl90ZXN0X3YxY21wbHR1aV9YMS5jIgorCSIyNDYgCSAxIAkgaW5zbl90ZXN0X3YxY21wbmVfWDAuYyIKKwkiMjQ2IAkgMiAJIGluc25fdGVzdF92MWNtcG5lX1gxLmMiCisJIjI0NyAJIDEgCSBpbnNuX3Rlc3RfdjFkZG90cHVfWDAuYyIKKwkiMjQ4IAkgMSAJIGluc25fdGVzdF92MWRkb3RwdWFfWDAuYyIKKwkiMjQ5IAkgMSAJIGluc25fdGVzdF92MWRkb3RwdXNfWDAuYyIKKwkiMjUwIAkgMSAJIGluc25fdGVzdF92MWRkb3RwdXNhX1gwLmMiCisJIjI1MSAJIDEgCSBpbnNuX3Rlc3RfdjFkb3RwX1gwLmMiCisJIjI1MiAJIDEgCSBpbnNuX3Rlc3RfdjFkb3RwYV9YMC5jIgorCSIyNTMgCSAxIAkgaW5zbl90ZXN0X3YxZG90cHVfWDAuYyIKKwkiMjU0IAkgMSAJIGluc25fdGVzdF92MWRvdHB1YV9YMC5jIgorCSIyNTUgCSAxIAkgaW5zbl90ZXN0X3YxZG90cHVzX1gwLmMiCisJIjI1NiAJIDEgCSBpbnNuX3Rlc3RfdjFkb3RwdXNhX1gwLmMiCisJIjI1NyAJIDEgCSBpbnNuX3Rlc3RfdjFpbnRfaF9YMC5jIgorCSIyNTcgCSAyIAkgaW5zbl90ZXN0X3YxaW50X2hfWDEuYyIKKwkiMjU4IAkgMSAJIGluc25fdGVzdF92MWludF9sX1gwLmMiCisJIjI1OCAJIDIgCSBpbnNuX3Rlc3RfdjFpbnRfbF9YMS5jIgorCSIyNTkgCSAxIAkgaW5zbl90ZXN0X3YxbWF4dV9YMC5jIgorCSIyNTkgCSAyIAkgaW5zbl90ZXN0X3YxbWF4dV9YMS5jIgorCSIyNjAgCSAxIAkgaW5zbl90ZXN0X3YxbWF4dWlfWDAuYyIKKwkiMjYwIAkgMiAJIGluc25fdGVzdF92MW1heHVpX1gxLmMiCisJIjI2MSAJIDEgCSBpbnNuX3Rlc3RfdjFtaW51X1gwLmMiCisJIjI2MSAJIDIgCSBpbnNuX3Rlc3RfdjFtaW51X1gxLmMiCisJIjI2MiAJIDEgCSBpbnNuX3Rlc3RfdjFtaW51aV9YMC5jIgorCSIyNjIgCSAyIAkgaW5zbl90ZXN0X3YxbWludWlfWDEuYyIKKwkiMjYzIAkgMSAJIGluc25fdGVzdF92MW1uel9YMC5jIgorCSIyNjMgCSAyIAkgaW5zbl90ZXN0X3YxbW56X1gxLmMiCisJIjI2NCAJIDEgCSBpbnNuX3Rlc3RfdjFtdWx0dV9YMC5jIgorCSIyNjUgCSAxIAkgaW5zbl90ZXN0X3YxbXVsdV9YMC5jIgorCSIyNjYgCSAxIAkgaW5zbl90ZXN0X3YxbXVsdXNfWDAuYyIKKwkiMjY3IAkgMSAJIGluc25fdGVzdF92MW16X1gwLmMiCisJIjI2NyAJIDIgCSBpbnNuX3Rlc3RfdjFtel9YMS5jIgorCSIyNjggCSAxIAkgaW5zbl90ZXN0X3Yxc2FkYXVfWDAuYyIKKwkiMjY5IAkgMSAJIGluc25fdGVzdF92MXNhZHVfWDAuYyIKKwkiMjcwIAkgMSAJIGluc25fdGVzdF92MXNobF9YMC5jIgorCSIyNzAgCSAyIAkgaW5zbl90ZXN0X3Yxc2hsX1gxLmMiCisJIjI3MSAJIDEgCSBpbnNuX3Rlc3RfdjFzaGxpX1gwLmMiCisJIjI3MSAJIDIgCSBpbnNuX3Rlc3RfdjFzaGxpX1gxLmMiCisJIjI3MiAJIDEgCSBpbnNuX3Rlc3RfdjFzaHJzX1gwLmMiCisJIjI3MiAJIDIgCSBpbnNuX3Rlc3RfdjFzaHJzX1gxLmMiCisJIjI3MyAJIDEgCSBpbnNuX3Rlc3RfdjFzaHJzaV9YMC5jIgorCSIyNzMgCSAyIAkgaW5zbl90ZXN0X3Yxc2hyc2lfWDEuYyIKKwkiMjc0IAkgMSAJIGluc25fdGVzdF92MXNocnVfWDAuYyIKKwkiMjc0IAkgMiAJIGluc25fdGVzdF92MXNocnVfWDEuYyIKKwkiMjc1IAkgMSAJIGluc25fdGVzdF92MXNocnVpX1gwLmMiCisJIjI3NSAJIDIgCSBpbnNuX3Rlc3RfdjFzaHJ1aV9YMS5jIgorCSIyNzYgCSAxIAkgaW5zbl90ZXN0X3Yxc3ViX1gwLmMiCisJIjI3NiAJIDIgCSBpbnNuX3Rlc3RfdjFzdWJfWDEuYyIKKwkiMjc3IAkgMSAJIGluc25fdGVzdF92MXN1YnVjX1gwLmMiCisJIjI3NyAJIDIgCSBpbnNuX3Rlc3RfdjFzdWJ1Y19YMS5jIgorCSIyNzggCSAxIAkgaW5zbl90ZXN0X3YyYWRkX1gwLmMiCisJIjI3OCAJIDIgCSBpbnNuX3Rlc3RfdjJhZGRfWDEuYyIKKwkiMjc5IAkgMSAJIGluc25fdGVzdF92MmFkZGlfWDAuYyIKKwkiMjc5IAkgMiAJIGluc25fdGVzdF92MmFkZGlfWDEuYyIKKwkiMjgwIAkgMSAJIGluc25fdGVzdF92MmFkZHNjX1gwLmMiCisJIjI4MCAJIDIgCSBpbnNuX3Rlc3RfdjJhZGRzY19YMS5jIgorCSIyODEgCSAxIAkgaW5zbl90ZXN0X3YyYWRpZmZzX1gwLmMiCisJIjI4MiAJIDEgCSBpbnNuX3Rlc3RfdjJhdmdzX1gwLmMiCisJIjI4MyAJIDEgCSBpbnNuX3Rlc3RfdjJjbXBlcV9YMC5jIgorCSIyODMgCSAyIAkgaW5zbl90ZXN0X3YyY21wZXFfWDEuYyIKKwkiMjg0IAkgMSAJIGluc25fdGVzdF92MmNtcGVxaV9YMC5jIgorCSIyODQgCSAyIAkgaW5zbl90ZXN0X3YyY21wZXFpX1gxLmMiCisJIjI4NSAJIDEgCSBpbnNuX3Rlc3RfdjJjbXBsZXNfWDAuYyIKKwkiMjg1IAkgMiAJIGluc25fdGVzdF92MmNtcGxlc19YMS5jIgorCSIyODYgCSAxIAkgaW5zbl90ZXN0X3YyY21wbGV1X1gwLmMiCisJIjI4NiAJIDIgCSBpbnNuX3Rlc3RfdjJjbXBsZXVfWDEuYyIKKwkiMjg3IAkgMSAJIGluc25fdGVzdF92MmNtcGx0c19YMC5jIgorCSIyODcgCSAyIAkgaW5zbl90ZXN0X3YyY21wbHRzX1gxLmMiCisJIjI4OCAJIDEgCSBpbnNuX3Rlc3RfdjJjbXBsdHNpX1gwLmMiCisJIjI4OCAJIDIgCSBpbnNuX3Rlc3RfdjJjbXBsdHNpX1gxLmMiCisJIjI4OSAJIDEgCSBpbnNuX3Rlc3RfdjJjbXBsdHVfWDAuYyIKKwkiMjg5IAkgMiAJIGluc25fdGVzdF92MmNtcGx0dV9YMS5jIgorCSIyOTAgCSAxIAkgaW5zbl90ZXN0X3YyY21wbHR1aV9YMC5jIgorCSIyOTAgCSAyIAkgaW5zbl90ZXN0X3YyY21wbHR1aV9YMS5jIgorCSIyOTEgCSAxIAkgaW5zbl90ZXN0X3YyY21wbmVfWDAuYyIKKwkiMjkxIAkgMiAJIGluc25fdGVzdF92MmNtcG5lX1gxLmMiCisJIjI5MiAJIDEgCSBpbnNuX3Rlc3RfdjJkb3RwX1gwLmMiCisJIjI5MyAJIDEgCSBpbnNuX3Rlc3RfdjJkb3RwYV9YMC5jIgorCSIyOTQgCSAxIAkgaW5zbl90ZXN0X3YyaW50X2hfWDAuYyIKKwkiMjk0IAkgMiAJIGluc25fdGVzdF92MmludF9oX1gxLmMiCisJIjI5NSAJIDEgCSBpbnNuX3Rlc3RfdjJpbnRfbF9YMC5jIgorCSIyOTUgCSAyIAkgaW5zbl90ZXN0X3YyaW50X2xfWDEuYyIKKwkiMjk2IAkgMSAJIGluc25fdGVzdF92Mm1heHNfWDAuYyIKKwkiMjk2IAkgMiAJIGluc25fdGVzdF92Mm1heHNfWDEuYyIKKwkiMjk3IAkgMSAJIGluc25fdGVzdF92Mm1heHNpX1gwLmMiCisJIjI5NyAJIDIgCSBpbnNuX3Rlc3RfdjJtYXhzaV9YMS5jIgorCSIyOTggCSAxIAkgaW5zbl90ZXN0X3YybWluc19YMC5jIgorCSIyOTggCSAyIAkgaW5zbl90ZXN0X3YybWluc19YMS5jIgorCSIyOTkgCSAxIAkgaW5zbl90ZXN0X3YybWluc2lfWDAuYyIKKwkiMjk5IAkgMiAJIGluc25fdGVzdF92Mm1pbnNpX1gxLmMiCisJIjMwMCAJIDEgCSBpbnNuX3Rlc3RfdjJtbnpfWDAuYyIKKwkiMzAwIAkgMiAJIGluc25fdGVzdF92Mm1uel9YMS5jIgorCSIzMDEgCSAxIAkgaW5zbl90ZXN0X3YybXVsZnNjX1gwLmMiCisJIjMwMiAJIDEgCSBpbnNuX3Rlc3RfdjJtdWxzX1gwLmMiCisJIjMwMyAJIDEgCSBpbnNuX3Rlc3RfdjJtdWx0c19YMC5jIgorCSIzMDQgCSAxIAkgaW5zbl90ZXN0X3YybXpfWDAuYyIKKwkiMzA0IAkgMiAJIGluc25fdGVzdF92Mm16X1gxLmMiCisJIjMwNSAJIDEgCSBpbnNuX3Rlc3RfdjJwYWNraF9YMC5jIgorCSIzMDUgCSAyIAkgaW5zbl90ZXN0X3YycGFja2hfWDEuYyIKKwkiMzA2IAkgMSAJIGluc25fdGVzdF92MnBhY2tsX1gwLmMiCisJIjMwNiAJIDIgCSBpbnNuX3Rlc3RfdjJwYWNrbF9YMS5jIgorCSIzMDcgCSAxIAkgaW5zbl90ZXN0X3YycGFja3VjX1gwLmMiCisJIjMwNyAJIDIgCSBpbnNuX3Rlc3RfdjJwYWNrdWNfWDEuYyIKKwkiMzA4IAkgMSAJIGluc25fdGVzdF92MnNhZGFzX1gwLmMiCisJIjMwOSAJIDEgCSBpbnNuX3Rlc3RfdjJzYWRhdV9YMC5jIgorCSIzMTAgCSAxIAkgaW5zbl90ZXN0X3Yyc2Fkc19YMC5jIgorCSIzMTEgCSAxIAkgaW5zbl90ZXN0X3Yyc2FkdV9YMC5jIgorCSIzMTIgCSAxIAkgaW5zbl90ZXN0X3Yyc2hsX1gwLmMiCisJIjMxMiAJIDIgCSBpbnNuX3Rlc3RfdjJzaGxfWDEuYyIKKwkiMzEzIAkgMSAJIGluc25fdGVzdF92MnNobGlfWDAuYyIKKwkiMzEzIAkgMiAJIGluc25fdGVzdF92MnNobGlfWDEuYyIKKwkiMzE0IAkgMSAJIGluc25fdGVzdF92MnNobHNjX1gwLmMiCisJIjMxNCAJIDIgCSBpbnNuX3Rlc3RfdjJzaGxzY19YMS5jIgorCSIzMTUgCSAxIAkgaW5zbl90ZXN0X3Yyc2hyc19YMC5jIgorCSIzMTUgCSAyIAkgaW5zbl90ZXN0X3Yyc2hyc19YMS5jIgorCSIzMTYgCSAxIAkgaW5zbl90ZXN0X3Yyc2hyc2lfWDAuYyIKKwkiMzE2IAkgMiAJIGluc25fdGVzdF92MnNocnNpX1gxLmMiCisJIjMxNyAJIDEgCSBpbnNuX3Rlc3RfdjJzaHJ1X1gwLmMiCisJIjMxNyAJIDIgCSBpbnNuX3Rlc3RfdjJzaHJ1X1gxLmMiCisJIjMxOCAJIDEgCSBpbnNuX3Rlc3RfdjJzaHJ1aV9YMC5jIgorCSIzMTggCSAyIAkgaW5zbl90ZXN0X3Yyc2hydWlfWDEuYyIKKwkiMzE5IAkgMSAJIGluc25fdGVzdF92MnN1Yl9YMC5jIgorCSIzMTkgCSAyIAkgaW5zbl90ZXN0X3Yyc3ViX1gxLmMiCisJIjMyMCAJIDEgCSBpbnNuX3Rlc3RfdjJzdWJzY19YMC5jIgorCSIzMjAgCSAyIAkgaW5zbl90ZXN0X3Yyc3Vic2NfWDEuYyIKKwkiMzIxIAkgMSAJIGluc25fdGVzdF92NGFkZF9YMC5jIgorCSIzMjEgCSAyIAkgaW5zbl90ZXN0X3Y0YWRkX1gxLmMiCisJIjMyMiAJIDEgCSBpbnNuX3Rlc3RfdjRhZGRzY19YMC5jIgorCSIzMjIgCSAyIAkgaW5zbl90ZXN0X3Y0YWRkc2NfWDEuYyIKKwkiMzIzIAkgMSAJIGluc25fdGVzdF92NGludF9oX1gwLmMiCisJIjMyMyAJIDIgCSBpbnNuX3Rlc3RfdjRpbnRfaF9YMS5jIgorCSIzMjQgCSAxIAkgaW5zbl90ZXN0X3Y0aW50X2xfWDAuYyIKKwkiMzI0IAkgMiAJIGluc25fdGVzdF92NGludF9sX1gxLmMiCisJIjMyNSAJIDEgCSBpbnNuX3Rlc3RfdjRwYWNrc2NfWDAuYyIKKwkiMzI1IAkgMiAJIGluc25fdGVzdF92NHBhY2tzY19YMS5jIgorCSIzMjYgCSAxIAkgaW5zbl90ZXN0X3Y0c2hsX1gwLmMiCisJIjMyNiAJIDIgCSBpbnNuX3Rlc3RfdjRzaGxfWDEuYyIKKwkiMzI3IAkgMSAJIGluc25fdGVzdF92NHNobHNjX1gwLmMiCisJIjMyNyAJIDIgCSBpbnNuX3Rlc3RfdjRzaGxzY19YMS5jIgorCSIzMjggCSAxIAkgaW5zbl90ZXN0X3Y0c2hyc19YMC5jIgorCSIzMjggCSAyIAkgaW5zbl90ZXN0X3Y0c2hyc19YMS5jIgorCSIzMjkgCSAxIAkgaW5zbl90ZXN0X3Y0c2hydV9YMC5jIgorCSIzMjkgCSAyIAkgaW5zbl90ZXN0X3Y0c2hydV9YMS5jIgorCSIzMzAgCSAxIAkgaW5zbl90ZXN0X3Y0c3ViX1gwLmMiCisJIjMzMCAJIDIgCSBpbnNuX3Rlc3RfdjRzdWJfWDEuYyIKKwkiMzMxIAkgMSAJIGluc25fdGVzdF92NHN1YnNjX1gwLmMiCisJIjMzMSAJIDIgCSBpbnNuX3Rlc3RfdjRzdWJzY19YMS5jIgorCSIzMzIgCSAyIAkgaW5zbl90ZXN0X3doNjRfWDEuYyIKKwkiMzMzIAkgMSAJIGluc25fdGVzdF94b3JfWDAuYyIKKwkiMzMzIAkgMiAJIGluc25fdGVzdF94b3JfWDEuYyIKKwkiMzMzIAkgNCAJIGluc25fdGVzdF94b3JfWTAuYyIKKwkiMzMzIAkgOCAJIGluc25fdGVzdF94b3JfWTEuYyIKKwkiMzM0IAkgMSAJIGluc25fdGVzdF94b3JpX1gwLmMiCisJIjMzNCAJIDIgCSBpbnNuX3Rlc3RfeG9yaV9YMS5jIgorKQorCitpZiBbICQjIC1ndCAwIF07IHRoZW4KKyNmbmFtZSA9ICIkMSIKKworZm9yIGYgaW4gIiR7RklMRVNbQF19IgorZG8KKyAgICBhcnJheT0oJHtmLy8gLyB9KQorICAgIGlmIFsgJHthcnJheVsyXX0gPSAkMSBdOyB0aGVuCisgICAgICAgIC4vZ2VuX2luc25fdGVzdCAke2FycmF5WzBdfSAke2FycmF5WzFdfSA+ICR7YXJyYXlbMl19CisgICAgICAgIGV4aXQgMAorICAgIGZpCitkb25lCisKK2V4aXQgLTEKKworZWxzZQorCitmb3IgZiBpbiAiJHtGSUxFU1tAXX0iCitkbworICAgICAgICBlY2hvICRpICRmCisgICAgICAgIGFycmF5PSgke2YvLyAvIH0pCisgICAgICAgIC4vZ2VuX2luc25fdGVzdCAke2FycmF5WzBdfSAke2FycmF5WzFdfSA+ICR7YXJyYXlbMl19Citkb25lCisKK2ZpCisKKworCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vTWFrZWZpbGUuYW0gYi9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTExZmQ0NQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMveDg2LWRhcndpbi9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDE3IEBACisKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCisKK2Rpc3Rfbm9pbnN0X1NDUklQVFMgPSBcCisJZmlsdGVyX3N0ZGVycgorCitFWFRSQV9ESVNUID0gXAorCWJ1ZzM0MTQxOS52Z3Rlc3QgYnVnMzQxNDE5LnN0ZGVyci5leHAgXAorCWJ1ZzM1MDA2Mi52Z3Rlc3QgYnVnMzUwMDYyLnN0ZGVyci5leHAKKworY2hlY2tfUFJPR1JBTVMgPSBcCisJYnVnMzQxNDE5IFwKKwlidWczNTAwNjIKKworQU1fQ0ZMQUdTICAgICs9IEBGTEFHX00zMkAgJChGTEFHX01NTVgpICQoRkxBR19NU1NFKQorQU1fQ1hYRkxBR1MgICs9IEBGTEFHX00zMkAgJChGTEFHX01NTVgpICQoRkxBR19NU1NFKQorQU1fQ0NBU0ZMQUdTICs9IEBGTEFHX00zMkAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LWRhcndpbi9idWczNDE0MTkuYyBiL25vbmUvdGVzdHMveDg2LWRhcndpbi9idWczNDE0MTkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjJkNTJlCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYtZGFyd2luL2J1ZzM0MTQxOS5jCkBAIC0wLDAgKzEsMjAzIEBACisvKiBUaGlzIGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgdWNvbnRleHRfdCAqLworI2RlZmluZSBfWE9QRU5fU09VUkNFIDEKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDx2YWxncmluZC5oPgorCisjZGVmaW5lIG9mZnNldG9mKHR5cGUsIGZsZCkJKCh1bnNpZ25lZCBsb25nKSYoKHR5cGUgKikwKS0+ZmxkKQorI2RlZmluZSBzdHJpbmdpZnkoeCkJCSN4CisKK3N0YXRpYyBpbnQgdmVyYm9zZSA9IDA7CisKKyNkZWZpbmUgX0FTU0VSVF9PUChhLCBvcCwgYikgXAorICAgIGRvIHsgXAorCXVuc2lnbmVkIGxvbmcgbG9uZyBfYSA9ICh1bnNpZ25lZCBsb25nIGxvbmcpKGEpOyBcCisJdW5zaWduZWQgbG9uZyBsb25nIF9iID0gKHVuc2lnbmVkIGxvbmcgbG9uZykoYik7IFwKKwlpZiAodmVyYm9zZSkgXAorCSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBBU1NFUlQoIiBzdHJpbmdpZnkoYSkgXAorCQkgICAgIiAiIHN0cmluZ2lmeShvcCkgIiAiIHN0cmluZ2lmeShiKSAiKVxuIiwgXAorCQkgICAgX19GSUxFX18sIF9fTElORV9fKTsgXAorCWlmICghKF9hIG9wIF9iKSkgeyBcCisJICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IEZBSUxFRCBBU1NFUlQoKCIgc3RyaW5naWZ5KGEpIFwKKwkJICAgICI9MHglMDE2bGx4KSAiIHN0cmluZ2lmeShvcCkgIiAoIiBzdHJpbmdpZnkoYikgIj0weCUwMTZsbHgpKVxuIiwgXAorCQkgICAgX19GSUxFX18sIF9fTElORV9fLCBfYSwgX2IpOyBcCisJICAgIF9leGl0KDEpOyBcCisJfSBcCisgICAgfSB3aGlsZSgwKQorI2RlZmluZSBBU1NFUlRfRVEoYSwgYikgX0FTU0VSVF9PUChhLCA9PSwgYikKKyNkZWZpbmUgQVNTRVJUX05FKGEsIGIpIF9BU1NFUlRfT1AoYSwgIT0sIGIpCisjZGVmaW5lIEFTU0VSVF9MVEUoYSwgYikgX0FTU0VSVF9PUChhLCA8PSwgYikKKyNkZWZpbmUgQVNTRVJUX0dURShhLCBiKSBfQVNTRVJUX09QKGEsID49LCBiKQorI2RlZmluZSBBU1NFUlQoZSkgXAorICAgIGRvIHsgXAorCWlmICh2ZXJib3NlKSBcCisJICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IEFTU0VSVCgiIHN0cmluZ2lmeShlKSAiKVxuIiwgXAorCQkgICAgX19GSUxFX18sIF9fTElORV9fKTsgXAorCWlmICghKGUpKSB7IFwKKwkgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogRkFJTEVEIEFTU0VSVCgiIHN0cmluZ2lmeShlKSAiKVxuIiwgXAorCQkgICAgX19GSUxFX18sIF9fTElORV9fKTsgXAorCSAgICBfZXhpdCgxKTsgXAorCX0gXAorICAgIH0gd2hpbGUoMCkKKworCitzdGF0aWMgYm9vbCB1c2luZ19pbnQzID0gZmFsc2U7CitzdGF0aWMgdm9sYXRpbGUgaW50IHNpZ19jb3VudCA9IDA7CitzdGF0aWMgdm9sYXRpbGUgaW50IHJhbl9hZnRlcl9mYXVsdCA9IDA7CitzdGF0aWMgdm9pZCAqdG9wX29mX3N0YWNrOworc3RhdGljIHZvaWQgKmJvdHRvbV9vZl9zdGFjazsKKwordm9pZCB0aGlzX2Z1bmN0aW9uX2hhbHRzKHZvaWQpCit7CisgICAgaW50IGZvbzsKKyAgICBib3R0b21fb2Zfc3RhY2sgPSAmZm9vIC0gNDsKKyAgICAvKiBFQVggaXMgdXNlZCBieSBjb21waWxlci1nZW5lcmF0ZWQgY29kZSB0bworICAgICAqIGluY3JlbWVudCByYW5fYWZ0ZXJfZmF1bHQsIHNvIHdlIG5lZWQgdG8KKyAgICAgKiBwcmVzZXJ2ZSBpdCBpbiBvdXIgYXNtIHNlY3Rpb24gKi8KKyAgICB1bnNpZ25lZCBsb25nIHNhdmVkX2VheDsKKworICAgIC8qIFNldCB1cCByZWdpc3RlcnMgd2l0aCBrbm93biB2YWx1ZXMgd2hpY2ggd2lsbCBiZSB0ZXN0ZWQgaW4gdGhlIHNpZ25hbCBoYW5kbGVyICovCisgICAgX19hc21fXyB2b2xhdGlsZSgibW92bCAlJWVheCwgJTAiIDogIj1tIihzYXZlZF9lYXgpKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwMTAxLCVlYXgiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwMjAyLCVlYngiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwMzAzLCVlY3giKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwNDA0LCVlZHgiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwNTA1LCVlZGkiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwNjA2LCVlc2kiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJobHQiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICUwLCAlJWVheCIgOiA6ICJtIihzYXZlZF9lYXgpKTsKKyAgICByYW5fYWZ0ZXJfZmF1bHQrKzsKK30KKwordm9pZCB0aGlzX2Z1bmN0aW9uX2ludDNzKHZvaWQpCit7CisgICAgaW50IGZvbzsKKyAgICBib3R0b21fb2Zfc3RhY2sgPSAmZm9vIC0gNDsKKyAgICB1bnNpZ25lZCBsb25nIHNhdmVkX2VheDsKKworICAgIC8qIFNldCB1cCByZWdpc3RlcnMgd2l0aCBrbm93biB2YWx1ZXMgd2hpY2ggd2lsbCBiZSB0ZXN0ZWQgaW4gdGhlIHNpZ25hbCBoYW5kbGVyICovCisgICAgX19hc21fXyB2b2xhdGlsZSgibW92bCAlJWVheCwgJTAiIDogIj1tIihzYXZlZF9lYXgpKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwMTAxLCVlYXgiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwMjAyLCVlYngiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwMzAzLCVlY3giKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwNDA0LCVlZHgiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwNTA1LCVlZGkiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICQweGZlZWQwNjA2LCVlc2kiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJpbnQgJDMiKTsKKyAgICBfX2FzbV9fIHZvbGF0aWxlKCJtb3ZsICUwLCAlJWVheCIgOiA6ICJtIihzYXZlZF9lYXgpKTsKKyAgICByYW5fYWZ0ZXJfZmF1bHQrKzsKK30KKworCitzdGF0aWMgdm9pZAoraGFuZGxlX3NpZ25hbChpbnQgc2lnLCBzaWdpbmZvX3QgKnNpLCB2b2lkICp2dWMpCit7CisgICAgdWNvbnRleHRfdCAqdWMgPSAodWNvbnRleHRfdCAqKXZ1YzsKKworICAgIGlmICh2ZXJib3NlKQorICAgIHsKKwlmcHJpbnRmKHN0ZGVyciwgImhhbmRsZV9zaWduYWxcbiIpOworCWZmbHVzaChzdGRlcnIpOworICAgIH0KKworICAgIHNpZ19jb3VudCsrOworICAgIEFTU0VSVChzaWdfY291bnQgPT0gMSk7CisKKyAgICBpbnQgZXhwZWN0ZWRfc2lnID0gKHVzaW5nX2ludDMgPyBTSUdUUkFQIDogU0lHU0VHVik7CisgICAgQVNTRVJUX0VRKHNpZywgZXhwZWN0ZWRfc2lnKTsKKyAgICBBU1NFUlRfTkUoc2ksIE5VTEwpOworICAgIEFTU0VSVF9ORSh1YywgTlVMTCk7CisgICAgQVNTRVJUX05FKHVjLT51Y19tY29udGV4dCwgTlVMTCk7CisKKyAgICAvKiBUZXN0IHRoYXQgdGhlIHNpZ2luZm8gaXMgc2V0IHVwIHJpZ2h0IGZvciB0aGlzIHNpZ25hbCAqLworICAgIEFTU0VSVF9FUShzaS0+c2lfc2lnbm8sIGV4cGVjdGVkX3NpZyk7CisgICAgQVNTRVJUX0VRKHNpLT5zaV9lcnJubywgMCk7CisgICAgaW50IGV4cGVjdGVkX2NvZGUgPSAodXNpbmdfaW50MyA/IDEgOiAwKTsKKyAgICBBU1NFUlRfRVEoc2ktPnNpX2NvZGUsIGV4cGVjdGVkX2NvZGUpOworICAgIEFTU0VSVF9FUShzaS0+c2lfcGlkLCAwKTsKKyAgICBBU1NFUlRfRVEoc2ktPnNpX3VpZCwgMCk7CisgICAgQVNTRVJUX0VRKHNpLT5zaV9zdGF0dXMsIDApOworICAgIEFTU0VSVF9FUShzaS0+c2lfYWRkciwgMCk7CisgICAgQVNTRVJUX0VRKHNpLT5zaV9iYW5kLCAwKTsKKworICAgIC8qIFRlc3QgdGhhdCB2YXJpb3VzIHJlZ2lzdGVycyB3ZXJlIHNhdmVkIGluIHRoZSBzaWduYWwgdWNvbnRleHQgKi8KKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fZWF4LCAweGZlZWQwMTAxKTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fZWJ4LCAweGZlZWQwMjAyKTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fZWN4LCAweGZlZWQwMzAzKTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fZWR4LCAweGZlZWQwNDA0KTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fZWRpLCAweGZlZWQwNTA1KTsKKyAgICBBU1NFUlRfRVEodWMtPnVjX21jb250ZXh0LT5fX3NzLl9fZXNpLCAweGZlZWQwNjA2KTsKKworICAgIC8qIFRlc3QgdGhhdCB0aGUgc2F2ZWQgRUJQIGFuZCBFU1AgcG9pbnQgaW50byByb3VnaGx5IHRoZSByaWdodAorICAgICAqIHBhcnQgb2YgdGhlIHN0YWNrICovCisgICAgQVNTRVJUX0dURSh1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19lYnAsIGJvdHRvbV9vZl9zdGFjayk7CisgICAgQVNTRVJUX0xURSh1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19lYnAsIHRvcF9vZl9zdGFjayk7CisgICAgQVNTRVJUX0dURSh1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19lc3AsIGJvdHRvbV9vZl9zdGFjayk7CisgICAgQVNTRVJUX0xURSh1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19lc3AsIHRvcF9vZl9zdGFjayk7CisKKyAgICAvKiBUZXN0IHRoYXQgdGhlIHNhdmVkIEVJUCBwb2ludHMgaW50byByb3VnaGx5IHRoZQorICAgICAqIHJpZ2h0IHBhcnQgb2YgdGhlIHRleHQgc2VnbWVudCAqLworICAgIGNoYXIgKmNhbGxpbmdfZm4gPSAodXNpbmdfaW50MyA/IChjaGFyICopJnRoaXNfZnVuY3Rpb25faW50M3MgOiAoY2hhciAqKSZ0aGlzX2Z1bmN0aW9uX2hhbHRzKTsKKyAgICBBU1NFUlRfR1RFKHVjLT51Y19tY29udGV4dC0+X19zcy5fX2VpcCwgY2FsbGluZ19mbik7CisgICAgQVNTRVJUX0xURSh1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19laXAsIGNhbGxpbmdfZm4rNDAwKTsKKworICAgIC8qCisgICAgcHJpbnRmKCIJICAgIFJGTEFHUyAweCUwMTZsbHhcbiIsICh1bnNpZ25lZCBsb25nIGxvbmcpdWMtPnVjX21jb250ZXh0LT5fX3NzLl9fcmZsYWdzKTsKKyAgICAqLworCisgICAgLyoKKyAgICAgKiBUZXN0IHRoYXQgdGhlIEVJUCBpcyByZXN0b3JlZCBmcm9tIHRoZSBzaWduYWwgdWNvbnRleHQ7CisgICAgICogdGhpcyBzaG91bGQgc2tpcCBwYXN0IHRoZSBITFQvSU5UIGluc3RydWN0aW9uIGFuZAorICAgICAqIGFsbG93IGV4ZWN1dGlvbiB0byBjb250aW51ZSBiYWNrIG91dCB0byBtYWluKCkKKyAgICAgKi8KKyAgICBpZiAodmVyYm9zZSkKKyAgICB7CisJZnByaW50ZihzdGRlcnIsICJTZXR0aW5nIHVwIHRvIHJldHVybiBwYXN0IHRoZSBITFRcbiIpOworCWZmbHVzaChzdGRlcnIpOworICAgIH0KKyAgICB1Yy0+dWNfbWNvbnRleHQtPl9fc3MuX19laXAgKz0gKHVzaW5nX2ludDMgPyAwIDogMSk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICB7CisJZnByaW50ZihzdGRlcnIsICJSZXR1cm5pbmcgZnJvbSBzaWduYWwgaGFuZGxlclxuIik7CisJZmZsdXNoKHN0ZGVycik7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgICAgaW50IHI7CisgICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Q7CisKKyAgICB0b3Bfb2Zfc3RhY2sgPSAodm9pZCAqKSZhY3Q7CisKKyAgICBpZiAoYXJnYyA+IDEgJiYgIXN0cmNtcChhcmd2WzFdLCAiLS12ZXJib3NlIikpCisJdmVyYm9zZSA9IDE7CisKKyAgICBpZiAodmVyYm9zZSkKKwlwcmludGYoIlNldHRpbmcgdXAgc2lnbmFsIGhhbmRsZXJcbiIpOworICAgIG1lbXNldCgmYWN0LCAwLCBzaXplb2YoYWN0KSk7CisgICAgYWN0LnNhX3NpZ2FjdGlvbiA9IGhhbmRsZV9zaWduYWw7CisgICAgYWN0LnNhX2ZsYWdzIHw9IFNBX1NJR0lORk87CisgICAgaWYgKFJVTk5JTkdfT05fVkFMR1JJTkQpCisJdXNpbmdfaW50MyA9IHRydWU7CisgICAgciA9IHNpZ2FjdGlvbigodXNpbmdfaW50MyA/IFNJR1RSQVAgOiBTSUdTRUdWKSwgJmFjdCwgTlVMTCk7CisgICAgQVNTRVJUX0VRKHIsIDApOworCisgICAgaWYgKHZlcmJvc2UpCisgICAgeworCWZwcmludGYoc3RkZXJyLCAiQ2FsbGluZyBmdW5jdGlvbiB3aXRoIGEgYnJlYWtwb2ludCBpbnNuIGluIGl0XG4iKTsKKwlmZmx1c2goc3RkZXJyKTsKKyAgICB9CisgICAgaWYgKHVzaW5nX2ludDMpCisJdGhpc19mdW5jdGlvbl9pbnQzcygpOworICAgIGVsc2UKKwl0aGlzX2Z1bmN0aW9uX2hhbHRzKCk7CisgICAgQVNTRVJUX0VRKHJhbl9hZnRlcl9mYXVsdCwgMSk7CisKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlBBU1NcbiIpOworICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYtZGFyd2luL2J1ZzM0MTQxOS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy94ODYtZGFyd2luL2J1ZzM0MTQxOS5zdGRlcnIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZjIyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vYnVnMzQxNDE5LnN0ZGVyci5leHAKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYtZGFyd2luL2J1ZzM0MTQxOS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vYnVnMzQxNDE5LnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWFlNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYtZGFyd2luL2J1ZzM0MTQxOS52Z3Rlc3QKQEAgLTAsMCArMSwzIEBACitwcm9nOiBidWczNDE0MTkKK3Znb3B0czogLXEKK2NsZWFudXA6IHJtIC1mIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vYnVnMzUwMDYyLmMgYi9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vYnVnMzUwMDYyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhOTJhMgotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMveDg2LWRhcndpbi9idWczNTAwNjIuYwpAQCAtMCwwICsxLDE2IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisKKy8vIFJlZmVyIGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTAwNjIKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIGRvdWJsZSB4ID0gMS4xOworICAgIGRvdWJsZSBpID0gZmxvb3IoeCk7CisgICAgCisgICAgKHZvaWQpaTsKKworICAgIGZwcmludGYoc3RkZXJyLCAiUEFTU1xuIik7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vYnVnMzUwMDYyLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vYnVnMzUwMDYyLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VmMjJlOQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMveDg2LWRhcndpbi9idWczNTAwNjIuc3RkZXJyLmV4cApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vYnVnMzUwMDYyLnZndGVzdCBiL25vbmUvdGVzdHMveDg2LWRhcndpbi9idWczNTAwNjIudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNWYwZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni1kYXJ3aW4vYnVnMzUwMDYyLnZndGVzdApAQCAtMCwwICsxLDMgQEAKK3Byb2c6IGJ1ZzM1MDA2MgordmdvcHRzOiAtcQorY2xlYW51cDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LWRhcndpbi9maWx0ZXJfc3RkZXJyIGIvbm9uZS90ZXN0cy94ODYtZGFyd2luL2ZpbHRlcl9zdGRlcnIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTg3NzU0YQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMveDg2LWRhcndpbi9maWx0ZXJfc3RkZXJyCkBAIC0wLDAgKzEsMTEgQEAKKyMhIC9iaW4vc2gKKworZGlyPWBkaXJuYW1lICQwYAorCisjIFJlbW92ZSA9PXBpZD09IGFuZCAtLXBpZC0tIGFuZCAqKnBpZCoqIHN0cmluZ3MgCitwZXJsIC1wIC1lICdzLyg9PXwtLXxcKlwqKVswLTldezEsN31cMSAvLycgfAorCitwZXJsIC1wIC1lICdzLzB4WzAtOUEtRmEtZl0rLzB4Li4uLi4uLi4vZycKKworIyBOT1RFOiBpdCBpcyBlc3NlbnRpYWwgZm9yIHRoZSBidWczNDU4ODcgdGVzdGNhc2UgdGhhdCB0aGUgc3RkZXJyCisjICAgICAgIGZpbHRlcmluZyBkb2VzICpub3QqIHJlbW92ZSBsaW5lcyBiZWdpbm5pbmcgd2l0aCAtLQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYtbGludXgvTWFrZWZpbGUuYW0gYi9ub25lL3Rlc3RzL3g4Ni1saW51eC9NYWtlZmlsZS5hbQppbmRleCA0ZmEwZmFjLi4yYzg2NjkzIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3g4Ni1saW51eC9NYWtlZmlsZS5hbQorKysgYi9ub25lL3Rlc3RzL3g4Ni1saW51eC9NYWtlZmlsZS5hbQpAQCAtMiw3ICsyLDcgQEAKIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCiAKIGRpc3Rfbm9pbnN0X1NDUklQVFMgPSBcCi0JZmlsdGVyX3N0ZGVyciBmaWx0ZXJfbWluaW1hbAorCWZpbHRlcl9zdGRlcnIKIAogRVhUUkFfRElTVCA9IFwKIAlidWczNDU4ODcuc3RkZXJyLmV4cCBidWczNDU4ODcudmd0ZXN0IFwKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LWxpbnV4L2J1ZzM0NTg4Ny52Z3Rlc3QgYi9ub25lL3Rlc3RzL3g4Ni1saW51eC9idWczNDU4ODcudmd0ZXN0CmluZGV4IGMwMTQ0MjMuLmU1NjdjNDcgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMveDg2LWxpbnV4L2J1ZzM0NTg4Ny52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy94ODYtbGludXgvYnVnMzQ1ODg3LnZndGVzdApAQCAtMSw0ICsxLDQgQEAKIHByb2c6IGJ1ZzM0NTg4NwogdmdvcHRzOiAtcQotc3RkZXJyX2ZpbHRlcjogZmlsdGVyX21pbmltYWwKK3N0ZGVycl9maWx0ZXI6IGZpbHRlcl9zdGRlcnIKIGNsZWFudXA6IHJtIC1mIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1saW51eC9maWx0ZXJfbWluaW1hbCBiL25vbmUvdGVzdHMveDg2LWxpbnV4L2ZpbHRlcl9taW5pbWFsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBlNjkzOThjLi4wMDAwMDAwCi0tLSBhL25vbmUvdGVzdHMveDg2LWxpbnV4L2ZpbHRlcl9taW5pbWFsCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotIyEgL2Jpbi9zaAotCi1kaXI9YGRpcm5hbWUgJDBgCi0KLSMgUmVtb3ZlID09cGlkPT0gYW5kICoqcGlkKiogc3RyaW5ncyAKLXBlcmwgLXAgLWUgJ3MvKD09fFwqXCopWzAtOV17MSw3fVwxIC8vJyB8Ci0KLXBlcmwgLXAgLWUgJ3MvMHhbMC05QS1GYS1mXSsvMHguLi4uLi4uLi9nJyB8Ci0KLSMgT2xkZXIgYmFzaCB2ZXJzaW9ucyBwcmludCBhYm5vcm1hbCB0ZXJtaW5hdGlvbiBtZXNzYWdlcyBvbiB0aGUgc3RkZXJyCi0jIG9mIHRoZSBiYXNoIHByb2Nlc3MuIE5ld2VyIGJhc2ggdmVyc2lvbnMgcmVkaXJlY3Qgc3VjaCBtZXNzYWdlcyBwcm9wZXJseS4KLSMgU3VwcHJlc3MgYW55IHJlZGlyZWN0ZWQgYWJub3JtYWwgdGVybWluYXRpb24gbWVzc2FnZXMuIFlvdSBjYW4gZmluZCB0aGUKLSMgY29tcGxldGUgbGlzdCBvZiBtZXNzYWdlcyBpbiB0aGUgYmFzaCBzb3VyY2UgZmlsZSBzaWdsaXN0LmMuCi1wZXJsIC1uIC1lICdwcmludCBpZiAhL14oU2VnbWVudGF0aW9uIGZhdWx0fEFsYXJtIGNsb2NrfEFib3J0ZWR8QnVzIGVycm9yKSggXChjb3JlIGR1bXBlZFwpKT8kLycgfAotCi0jIFJlbW92ZSB0aGUgc2l6ZSBpbiAiVGhlIG1haW4gdGhyZWFkIHN0YWNrIHNpemUuLi4iIG1lc3NhZ2UuCi1zZWQgInMvVGhlIG1haW4gdGhyZWFkIHN0YWNrIHNpemUgdXNlZCBpbiB0aGlzIHJ1biB3YXMgWzAtOV0qL1RoZSBtYWluIHRocmVhZCBzdGFjayBzaXplIHVzZWQgaW4gdGhpcyBydW4gd2FzIC4uLi8iCi0KLSMgTk9URTogaXQgaXMgZXNzZW50aWFsIGZvciB0aGUgYnVnMzQ1ODg3IHRlc3RjYXNlIHRoYXQgdGhlIHN0ZGVycgotIyAgICAgICBmaWx0ZXJpbmcgZG9lcyAqbm90KiByZW1vdmUgbGluZXMgYmVnaW5uaW5nIHdpdGggLS0KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LWxpbnV4L2hhbmcudmd0ZXN0IGIvbm9uZS90ZXN0cy94ODYtbGludXgvaGFuZy52Z3Rlc3QKaW5kZXggYzM2NzhiYi4uOWIxN2FlMCAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy94ODYtbGludXgvaGFuZy52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy94ODYtbGludXgvaGFuZy52Z3Rlc3QKQEAgLTMsMyArMyw0IEBACiAjIENhbiBvbmx5IGJlIHJlcHJvZHVjZWQgb24gYW4geDg2IGJveCBydW5uaW5nIGEgMzItYml0IGtlcm5lbC4KIHByb2c6IGhhbmcKIHZnb3B0czogLXEKK2NsZWFudXA6IHJtIC1mIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1saW51eC9zZWdfb3ZlcnJpZGUuYyBiL25vbmUvdGVzdHMveDg2LWxpbnV4L3NlZ19vdmVycmlkZS5jCmluZGV4IDBmOGNiMmQuLmI3NjE5YzkgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMveDg2LWxpbnV4L3NlZ19vdmVycmlkZS5jCisrKyBiL25vbmUvdGVzdHMveDg2LWxpbnV4L3NlZ19vdmVycmlkZS5jCkBAIC0zNCw2ICszNCw3IEBACiAgICAgfSBIaWdoV29yZDsKIH0gTERUX0VOVFJZOwogCisjaWYgMAogaW5saW5lIHN0YXRpYyB2b2lkICp3aW5lX2xkdF9nZXRfYmFzZSggY29uc3QgTERUX0VOVFJZICplbnQgKQogewogICAgIHJldHVybiAodm9pZCAqKShlbnQtPkJhc2VMb3cgfApAQCAtNDYsNyArNDcsNyBAQAogICAgIGlmIChlbnQtPkhpZ2hXb3JkLkJpdHMuR3JhbnVsYXJpdHkpIGxpbWl0ID0gKGxpbWl0IDw8IDEyKSB8IDB4ZmZmOwogICAgIHJldHVybiBsaW1pdDsKIH0KLQorI2VuZGlmCiAKIC8qIG91ciBjb3B5IG9mIHRoZSBsZHQgKi8KIExEVF9FTlRSWSBsZHRfY29weVs4MTkyXTsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvTWFrZWZpbGUuYW0gYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL01ha2VmaWxlLmFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlNjliMjMKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMjUgQEAKKworaW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLnRvb2wtdGVzdHMuYW0KKworZGlzdF9ub2luc3RfU0NSSVBUUyA9IFwKKwljb3JlZHVtcF9zaW5nbGVfdGhyZWFkX21kYiBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2VfbWRiIFwKKwlmaWx0ZXJfc3RkZXJyCisJCisKK0VYVFJBX0RJU1QgPSBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZC5wb3N0LmV4cCBjb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnN0ZGVyci5leHAgXAorCWNvcmVkdW1wX3NpbmdsZV90aHJlYWQuc3Rkb3V0LmV4cCBjb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnZndGVzdCBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UucG9zdC5leHAgY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2Uuc3RkZXJyLmV4cCBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2Uuc3Rkb3V0LmV4cCBjb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS52Z3Rlc3QgXAorCXN5c2NhbGxzLnN0ZGVyci5leHAgc3lzY2FsbHMuc3Rkb3V0LmV4cCBzeXNjYWxscy52Z3Rlc3QKKworY2hlY2tfUFJPR1JBTVMgPSBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZCBcCisJY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UgXAorCXN5c2NhbGxzCisKK0FNX0NGTEFHUyAgICArPSBARkxBR19NMzJACitBTV9DWFhGTEFHUyAgKz0gQEZMQUdfTTMyQAorQU1fQ0NBU0ZMQUdTICs9IEBGTEFHX00zMkAKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLmMgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjJkM2E5Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLmMKQEAgLTAsMCArMSw1MiBAQAorLyogVGVzdHMgdGhhdCBWYWxncmluZCBjb3JlZHVtcCBzdXBwb3J0IHdvcmtzIGNvcnJlY3RseSBieSBwcm9kdWNpbmcKKyAgIGEgY29yZSBkdW1wIGFuYWx5emFibGUgYnkgbWRiLiAqLyAKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIGlubmVyKHZvaWQpCit7CisgICB1aW50MTZfdCBjcywgZHMsIHNzLCBlcywgZnMsIGdzOworCisgICAvKiBQcmludCBzZWdtZW50IHJlZ2lzdGVycyBhcyB0aGV5IGNhbm5vdCBiZSBzZXQgdG8gYXJiaXRyYXJ5CisgICAgICB2YWx1ZXMuICovCisgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKKyAgICAgICJtb3Z3ICUlY3MsICUwXG4iCisgICAgICAibW92dyAlJWRzLCAlMVxuIgorICAgICAgIm1vdncgJSVzcywgJTJcbiIKKyAgICAgICJtb3Z3ICUlZXMsICUzXG4iCisgICAgICAibW92dyAlJWZzLCAlNFxuIgorICAgICAgIm1vdncgJSVncywgJTVcbiIKKyAgICAgIDogIj1tIiAoY3MpLCAiPW0iIChkcyksICI9bSIgKHNzKSwgIj1tIiAoZXMpLCAiPW0iIChmcyksICI9bSIgKGdzKSk7CisgICBwcmludGYoImNzPSUjeCBkcz0lI3ggc3M9JSN4IGVzPSUjeCBmcz0lI3ggZ3M9JSN4XG4iLAorICAgICAgICAgIGNzLCBkcywgc3MsIGVzLCBmcywgZ3MpOworCisgICAvKiBTZXQgb3RoZXIgcmVnaXN0ZXJzIHRvIGFwcmlvcmkga25vd24gdmFsdWVzLiAqLworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oCisgICAgICAibW92bCAkMHgxMDEsICUlZWF4XG4iCisgICAgICAibW92bCAkMHgxMDIsICUlZWJ4XG4iCisgICAgICAibW92bCAkMHgxMDMsICUlZWN4XG4iCisgICAgICAibW92bCAkMHgxMDQsICUlZWR4XG4iCisgICAgICAibW92bCAkMHgxMDUsICUlZXNpXG4iCisgICAgICAibW92bCAkMHgxMDYsICUlZWRpXG4iCisgICAgICAvLyBub3QgJWVicCBhcyBtZGIgaXMgdGhlbiBub3QgYWJsZSB0byByZWNvbnN0cnVjdCBzdGFjayB0cmFjZQorICAgICAgIm1vdmwgJDB4MTA4LCAlJWVzcFxuIgorICAgICAgIm1vdmwgJDB4MTIzNCwgKCUlZWF4KVxuIiAgLy8gc2hvdWxkIGNhdXNlIFNFR1YgaGVyZQorICAgICAgInVkMiIgICAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkIG5ldmVyIGdldCBoZXJlCisgICAgICA6IC8vIG5vIG91dHB1dCByZWdpc3RlcnMKKyAgICAgIDogLy8gbm8gaW5wdXQgcmVnaXN0ZXJzCisgICAgICA6ICJtZW1vcnkiLCAiJWVheCIsICIlZWJ4IiwgIiVlY3giLCAiJWVkeCIsICIlZXNpIiwgIiVlZGkiLCAiJWVzcCIpOworfQorCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCitzdGF0aWMgdm9pZCBvdXRlcih2b2lkKQoreworICAgaW5uZXIoKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKK3sKKyAgIG91dGVyKCk7CisgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5wb3N0LmV4cCBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5wb3N0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDdmN2FjCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnBvc3QuZXhwCkBAIC0wLDAgKzEsMjcgQEAKKy0tLVN0YXR1cy0tLQorZGVidWdnaW5nIGNvcmUgZmlsZSBvZiBjb3JlZHVtcF9zaW5nbGUgKDMyLWJpdCkgZnJvbSAuLi4KK2luaXRpYWwgYXJndjogLi9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkCit0aHJlYWRpbmcgbW9kZWw6IG5hdGl2ZSB0aHJlYWRzCitzdGF0dXM6IHByb2Nlc3MgdGVybWluYXRlZCBieSBTSUdTRUdWIChTZWdtZW50YXRpb24gRmF1bHQpLCBhZGRyPS4uLi4uLi4uCisKKy0tLVJlZ2lzdGVycy0tLQorJWNzID0gMHguLi4uLi4uLiAgICAgICAgICAgICVlYXggPSAweDAwMDAwMTAxIAorJWRzID0gMHguLi4uLi4uLiAgICAgICAgICAgICVlYnggPSAweDAwMDAwMTAyIAorJXNzID0gMHguLi4uLi4uLiAgICAgICAgICAgICVlY3ggPSAweDAwMDAwMTAzIAorJWVzID0gMHguLi4uLi4uLiAgICAgICAgICAgICVlZHggPSAweDAwMDAwMTA0IAorJWZzID0gMHguLi4uLi4uLiAgICAgICAgICAgICVlc2kgPSAweDAwMDAwMTA1IAorJWdzID0gMHguLi4uLi4uLiAgICAgICAgICAgICVlZGkgPSAweDAwMDAwMTA2IAorCisgJWVpcCA9IDB4Li4uLi4uLi4gIGNvcmVkdW1wX3NpbmdsZV90aHJlYWRgaW5uZXIrMHguLi4uLi4uLgorJWtlc3AgPSAweDAwMDAwMDAwCisKKworICAgJWVzcCA9IDB4MDAwMDAxMDgKKyV0cmFwbm8gPSAweDAKKyAgICVlcnIgPSAweDAKKworLS0tU3RhY2sgdHJhY2UtLS0KK2NvcmVkdW1wX3NpbmdsZV90aHJlYWRgaW5uZXIKK2NvcmVkdW1wX3NpbmdsZV90aHJlYWRgb3V0ZXIKK2NvcmVkdW1wX3NpbmdsZV90aHJlYWRgbWFpbgorY29yZWR1bXBfc2luZ2xlX3RocmVhZGBfc3RhcnQKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWVmMmE4ZAotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5zdGRlcnIuZXhwCkBAIC0wLDAgKzEsOSBAQAorCitQcm9jZXNzIHRlcm1pbmF0aW5nIHdpdGggZGVmYXVsdCBhY3Rpb24gb2Ygc2lnbmFsIDExIChTSUdTRUdWKQorIEFjY2VzcyBub3Qgd2l0aGluIG1hcHBlZCByZWdpb24gYXQgYWRkcmVzcyAweC4uLi4uLi4uCisgICBhdCAweC4uLi4uLi4uOiBpbm5lciAoY29yZWR1bXBfc2luZ2xlX3RocmVhZC5jOjI2KQorIElmIHlvdSBiZWxpZXZlIHRoaXMgaGFwcGVuZWQgYXMgYSByZXN1bHQgb2YgYSBzdGFjaworIG92ZXJmbG93IGluIHlvdXIgcHJvZ3JhbSdzIG1haW4gdGhyZWFkICh1bmxpa2VseSBidXQKKyBwb3NzaWJsZSksIHlvdSBjYW4gdHJ5IHRvIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZQorIG1haW4gdGhyZWFkIHN0YWNrIHVzaW5nIHRoZSAtLW1haW4tc3RhY2tzaXplPSBmbGFnLgorIFRoZSBtYWluIHRocmVhZCBzdGFjayBzaXplIHVzZWQgaW4gdGhpcyBydW4gd2FzIC4uLi4KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkLnN0ZG91dC5leHAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZC52Z3Rlc3QgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWQudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NjA0YTAKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWQudmd0ZXN0CkBAIC0wLDAgKzEsNSBAQAorcHJlcmVxOiBybSAtZiB2Z2NvcmUuKgorcHJvZzogY29yZWR1bXBfc2luZ2xlX3RocmVhZAordmdvcHRzOiAtcQorcG9zdDogLi9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX21kYgorY2xlYW51cDogcm0gLWYgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9tZGIgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfbWRiCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1MDA0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfbWRiCkBAIC0wLDAgKzEsMjIgQEAKKyMhL2Jpbi9zaAorCisjIEZpbHRlcnMgYXJlIG5vdCBydW4gZm9yIHBvc3QtdGVzdCBjaGVjayBjb21tYW5kcy4KKyMgRmlsdGVyIGV2ZXJ5dGhpbmcgaGVyZS4KKworZWNobyAiLS0tU3RhdHVzLS0tIgorZWNobyAiOjpzdGF0dXMiIHwgL3Vzci9iaW4vbWRiIHZnY29yZS4qIHwgXAorcGVybCAtcCAtZSAncy9mcm9tIFxTKiQvZnJvbSAuLi4vJyB8IFwKK3BlcmwgLTAgLXAgLWUgJ3MvXmZpbGU6IC4rP14oaW5pdGlhbCBhcmd2OikvJDEvbXMnIHwgXAorcGVybCAtcCAtZSAncy9hZGRyPVswLTlBLUZhLWZdKy9hZGRyPS4uLi4uLi4uL2cnCisKK2VjaG8gIlxuLS0tUmVnaXN0ZXJzLS0tIgorZWNobyAiOjpyZWdzIiB8IC91c3IvYmluL21kYiB2Z2NvcmUuKiB8IFwKK3BlcmwgLXAgLWUgJ3MvKCVbY2RzZWZnXXMpXHMrPVxzKzB4WzAtOUEtRmEtZl0rLyQxID0gMHguLi4uLi4uLi8nIHwgXAorcGVybCAtcCAtZSAncy8lZWlwXHMrPVxzKzB4WzAtOUEtRmEtZl0rKC4qKVwrMHhbMC05QS1GYS1mXSskLyVlaXAgPSAweC4uLi4uLi4uICQxKzB4Li4uLi4uLi4vJyB8IFwKK3NlZCAnLyVlYnAvIGQnIHwgXAorc2VkICcvXiVlZmxhZ3MvIGQnIHwgXAorc2VkICcvaWQ9LyBkJyB8IFwKK3NlZCAnL3N0YXR1cz0vIGQnCisKK2VjaG8gIlxuLS0tU3RhY2sgdHJhY2UtLS0iCitlY2hvICI6OnN0YWNrICEgcGVybCAtcCAtZSAncy9eKFxTKylcKy4qL1wkMS9nJyIgfCAvdXNyL2Jpbi9tZGIgdmdjb3JlLioKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UuYyBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDhjODgzCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5jCkBAIC0wLDAgKzEsNzMgQEAKKy8qIFRlc3RzIHRoYXQgVmFsZ3JpbmQgY29yZWR1bXAgc3VwcG9ydCBmb3IgU1NFIHJlZ2lzdGVycyB3b3JrcyBjb3JyZWN0bHkKKyAgIGJ5IHByb2R1Y2luZyBhIGNvcmUgZHVtcCBhbmFseXphYmxlIGJ5IG1kYi4KKyAgIEJhc2ljIHJlZ2lzdGVyIHNldCBpcyB0ZXN0ZWQgaW4gY29yZWR1bXBfc2luZ2xlX3RocmVhZC4gKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisKK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKK3N0YXRpYyB2b2lkIGlubmVyKHZvaWQpCit7CisgICAvKiBTZXQgWE1NIHJlZ2lzdGVycyB0byBhcHJpb3JpIGtub3duIHZhbHVlcy4KKyAgICAgIFVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgbm8gaW5zdHJ1Y3Rpb24gdG8gbG9hZAorICAgICAgYW4gaW1tZWRpYXRlIHZhbHVlIGRpcmVjdGx5IGludG8geG1tIHJlZ2lzdGVyLiAqLworICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIlxuIgorICAgICAgInB1c2hsICQweDEyMzQ1Njc4XG4iCisgICAgICAicHVzaGwgJDB4OWFiY2RlZjBcbiIKKyAgICAgICJwdXNobCAkMHhmZWRiY2E5OFxuIgorICAgICAgInB1c2hsICQweDc2NTQzMjEwXG4iCisgICAgICAibW92dXBzICglJWVzcCksICUleG1tMFxuIgorICAgICAgInB1c2hsICQweDIzNDU2Nzg5XG4iCisgICAgICAicHVzaGwgJDB4MDk4NzY1NDNcbiIKKyAgICAgICJwdXNobCAkMHgyMWZlZGNiYVxuIgorICAgICAgInB1c2hsICQweDk0NjdmZWNhXG4iCisgICAgICAibW92dXBzICglJWVzcCksICUleG1tMVxuIgorICAgICAgInB1c2hsICQweGFiY2RhYmNkXG4iCisgICAgICAicHVzaGwgJDB4Y2VkZWNlZGVcbiIKKyAgICAgICJwdXNobCAkMHhmYWJhZmFiYVxuIgorICAgICAgInB1c2hsICQweDUwNjU2NzU0XG4iCisgICAgICAibW92dXBzICglJWVzcCksICUleG1tMlxuIgorICAgICAgInB1c2hsICQweDAzMDUwNjA4XG4iCisgICAgICAicHVzaGwgJDB4MWQxYjRiMTVcbiIKKyAgICAgICJwdXNobCAkMHgyNTI3MjEyMFxuIgorICAgICAgInB1c2hsICQweDM3M2EzZDM1XG4iCisgICAgICAibW92dXBzICglJWVzcCksICUleG1tM1xuIgorICAgICAgInB1c2hsICQweDlhYmNkZWYwXG4iCisgICAgICAicHVzaGwgJDB4NzY1NDMyMTBcbiIKKyAgICAgICJwdXNobCAkMHgxMjM0NTY3OFxuIgorICAgICAgInB1c2hsICQweGZlZGJjYTk4XG4iCisgICAgICAibW92dXBzICglJWVzcCksICUleG1tNFxuIgorICAgICAgInB1c2hsICQweDk0NjdmZWNhXG4iCisgICAgICAicHVzaGwgJDB4MjM0NTY3ODlcbiIKKyAgICAgICJwdXNobCAkMHgyMWZlZGNiYVxuIgorICAgICAgInB1c2hsICQweDA5ODc2NTQzXG4iCisgICAgICAibW92dXBzICglJWVzcCksICUleG1tNVxuIgorICAgICAgInB1c2hsICQweDUwNjU2NzU0XG4iCisgICAgICAicHVzaGwgJDB4Y2VkZWNlZGVcbiIKKyAgICAgICJwdXNobCAkMHhhYmNkYWJjZFxuIgorICAgICAgInB1c2hsICQweGZhYmFmYWJhXG4iCisgICAgICAibW92dXBzICglJWVzcCksICUleG1tNlxuIgorICAgICAgInB1c2hsICQweDM3M2EzZDM1XG4iCisgICAgICAicHVzaGwgJDB4MWQxYjRiMTVcbiIKKyAgICAgICJwdXNobCAkMHgwMzA1MDYwOFxuIgorICAgICAgInB1c2hsICQweDI1MjcyMTIwXG4iCisgICAgICAibW92dXBzICglJWVzcCksICUleG1tN1xuIgorICAgICAgIm1vdmwgJDB4MSwgJSVlYXhcbiIKKyAgICAgICJtb3ZsICQweDEyMzQsICglJWVheClcbiIgIC8vIHNob3VsZCBjYXVzZSBTRUdWIGhlcmUKKyAgICAgIDogLy8gbm8gb3V0cHV0IHJlZ2lzdGVycworICAgICAgOiAvLyBubyBpbnB1dCByZWdpc3RlcnMKKyAgICAgIDogIm1lbW9yeSIsICIleG1tMCIsICIleG1tMSIsICIleG1tMiIsICIleG1tMyIsCisgICAgICAgICAgICAgICAgICAiJXhtbTQiLCAiJXhtbTUiLCAiJXhtbTYiLCAiJXhtbTciKTsKK30KKworX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorc3RhdGljIHZvaWQgb3V0ZXIodm9pZCkKK3sKKyAgIGlubmVyKCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCit7CisgICBvdXRlcigpOworICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnBvc3QuZXhwIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5wb3N0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDJkYThhCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5wb3N0LmV4cApAQCAtMCwwICsxLDE1IEBACistLS1TdGF0dXMtLS0KK2RlYnVnZ2luZyBjb3JlIGZpbGUgb2YgY29yZWR1bXBfc2luZ2xlICgzMi1iaXQpIGZyb20gLi4uCitpbml0aWFsIGFyZ3Y6IC4vY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2UKK3RocmVhZGluZyBtb2RlbDogbmF0aXZlIHRocmVhZHMKK3N0YXR1czogcHJvY2VzcyB0ZXJtaW5hdGVkIGJ5IFNJR1NFR1YgKFNlZ21lbnRhdGlvbiBGYXVsdCksIGFkZHI9Li4uLi4uLi4KKworLS0tU1NFIFJlZ2lzdGVycy0tLQorJXhtbTAgIDB4MTIzNDU2Nzg5YWJjZGVmMGZlZGJjYTk4NzY1NDMyMTAKKyV4bW0xICAweDIzNDU2Nzg5MDk4NzY1NDMyMWZlZGNiYTk0NjdmZWNhCisleG1tMiAgMHhhYmNkYWJjZGNlZGVjZWRlZmFiYWZhYmE1MDY1Njc1NAorJXhtbTMgIDB4MDMwNTA2MDgxZDFiNGIxNTI1MjcyMTIwMzczYTNkMzUKKyV4bW00ICAweDlhYmNkZWYwNzY1NDMyMTAxMjM0NTY3OGZlZGJjYTk4CisleG1tNSAgMHg5NDY3ZmVjYTIzNDU2Nzg5MjFmZWRjYmEwOTg3NjU0MworJXhtbTYgIDB4NTA2NTY3NTRjZWRlY2VkZWFiY2RhYmNkZmFiYWZhYmEKKyV4bW03ICAweDM3M2EzZDM1MWQxYjRiMTUwMzA1MDYwODI1MjcyMTIwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnN0ZGVyci5leHAgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnN0ZGVyci5leHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q4NzA2YQotLS0gL2Rldi9udWxsCisrKyBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2Uuc3RkZXJyLmV4cApAQCAtMCwwICsxLDExIEBACisKK1Byb2Nlc3MgdGVybWluYXRpbmcgd2l0aCBkZWZhdWx0IGFjdGlvbiBvZiBzaWduYWwgMTEgKFNJR1NFR1YpCisgQWNjZXNzIG5vdCB3aXRoaW4gbWFwcGVkIHJlZ2lvbiBhdCBhZGRyZXNzIDB4Li4uLi4uLi4KKyAgIGF0IDB4Li4uLi4uLi46IGlubmVyIChjb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5jOjE0KQorICAgYnkgMHguLi4uLi4uLjogb3V0ZXIgKGNvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLmM6NjYpCisgICBieSAweC4uLi4uLi4uOiBtYWluIChjb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS5jOjcxKQorIElmIHlvdSBiZWxpZXZlIHRoaXMgaGFwcGVuZWQgYXMgYSByZXN1bHQgb2YgYSBzdGFjaworIG92ZXJmbG93IGluIHlvdXIgcHJvZ3JhbSdzIG1haW4gdGhyZWFkICh1bmxpa2VseSBidXQKKyBwb3NzaWJsZSksIHlvdSBjYW4gdHJ5IHRvIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZQorIG1haW4gdGhyZWFkIHN0YWNrIHVzaW5nIHRoZSAtLW1haW4tc3RhY2tzaXplPSBmbGFnLgorIFRoZSBtYWluIHRocmVhZCBzdGFjayBzaXplIHVzZWQgaW4gdGhpcyBydW4gd2FzIC4uLi4KZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2Uuc3Rkb3V0LmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2Uuc3Rkb3V0LmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlLnZndGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmM4ODBhCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZS52Z3Rlc3QKQEAgLTAsMCArMSw1IEBACitwcmVyZXE6IHJtIC1mIHZnY29yZS4qICYmIC4uLy4uLy4uL3Rlc3RzL3g4Nl9hbWQ2NF9mZWF0dXJlcyB4ODYtc3NlCitwcm9nOiBjb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZQordmdvcHRzOiAtcQorcG9zdDogLi9jb3JlZHVtcF9zaW5nbGVfdGhyZWFkX3NzZV9tZGIKK2NsZWFudXA6IHJtIC1mIHZnY29yZS4qCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlX21kYiBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvY29yZWR1bXBfc2luZ2xlX3RocmVhZF9zc2VfbWRiCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjYzU0MTMKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2NvcmVkdW1wX3NpbmdsZV90aHJlYWRfc3NlX21kYgpAQCAtMCwwICsxLDE1IEBACisjIS9iaW4vc2gKKworIyBGaWx0ZXJzIGFyZSBub3QgcnVuIGZvciBwb3N0LXRlc3QgY2hlY2sgY29tbWFuZHMuCisjIEZpbHRlciBldmVyeXRoaW5nIGhlcmUuCisKK2VjaG8gIi0tLVN0YXR1cy0tLSIKK2VjaG8gIjo6c3RhdHVzIiB8IC91c3IvYmluL21kYiB2Z2NvcmUuKiB8IFwKK3BlcmwgLXAgLWUgJ3MvZnJvbSBcUyokL2Zyb20gLi4uLycgfCBcCitwZXJsIC0wIC1wIC1lICdzL15maWxlOiAuKz9eKGluaXRpYWwgYXJndjopLyQxL21zJyB8IFwKK3BlcmwgLXAgLWUgJ3MvYWRkcj1bMC05QS1GYS1mXSsvYWRkcj0uLi4uLi4uLi9nJworCitlY2hvICJcbi0tLVNTRSBSZWdpc3RlcnMtLS0iCitlY2hvICI6OmZwcmVncyIgfCAvdXNyL2Jpbi9tZGIgdmdjb3JlLiogfCBcCitwZXJsIC1uIC1lICcvXiV4bW0vICYmIHByaW50ICRfOycKKwpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9maWx0ZXJfc3RkZXJyIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9maWx0ZXJfc3RkZXJyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhZTkzMTMKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL2ZpbHRlcl9zdGRlcnIKQEAgLTAsMCArMSwzIEBACisjISAvYmluL3NoCisKKy4uL2ZpbHRlcl9zdGRlcnIKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvc3lzY2FsbHMuYyBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvc3lzY2FsbHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTA0MGEwCi0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9zeXNjYWxscy5jCkBAIC0wLDAgKzEsNTkgQEAKKy8qIFRlc3QgdGhhdCBhbGwgaW5zdHJ1Y3Rpb25zIHRoYXQgbWFrZSBzeXNjYWxscyBhcmUgaGFuZGxlZCBjb3JyZWN0bHkuCisgICBOb3RlIHRoYXQgaXQgaXNuJ3QgcG9zc2libGUgdG8gcnVuIHRoaXMgcHJvZ3JhbSBuYXRpdmVseS4gKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvdHJhcC5oPgorCisjZGVmaW5lIFNZU0NBTEwoaW5zdHIsIHNjbnVtLCBvdXQpIFwKK2RvIHsgXAorX19hc21fXyBfX3ZvbGF0aWxlX18oIFwKKyAgICJtb3ZsICUxLCUlZWF4XG4iIFwKKyAgICJsZWFsIDBmLCUlZWR4XG4iIC8qIFNldCByZXR1cm4gYWRkcmVzcyBmb3IgU1lTRU5URVIuICovIFwKKyAgIGluc3RyICJcbiIgXAorICAgIjA6XG4iIFwKKyAgICJtb3ZsICUlZWF4LCUwXG4iIFwKKyAgIDogIj1tIiAob3V0KSBcCisgICA6ICJpIiAoc2NudW0pIFwKKyAgIDogImVheCIsICJlZHgiLCAiY2MiLCAibWVtb3J5Iik7IFwKK30gd2hpbGUgKDApCisKK3N0YXRpYyB2b2lkIGNoZWNrX3BpZChpbnQgcGlkLCBpbnQgcGlkMiwgY29uc3QgY2hhciAqaW5zdHIpCit7CisgICBpZiAocGlkID09IHBpZDIpCisgICAgICByZXR1cm47CisKKyAgIGZwcmludGYoc3RkZXJyLCAiUGlkIHZhbHVlcyBkaWZmZXIsIGluc3RydWN0aW9uOiAlc1xuIiwgaW5zdHIpOworfQorCitpbnQgbWFpbih2b2lkKQoreworICAgaW50IHBpZCwgcGlkMiwgZHVtbXk7CisKKyAgIC8qIE5vcm1hbCBTb2xhcmlzL3g4NiBzeXNjYWxsIGluc3RydWN0aW9ucy4gKi8KKyAgIFNZU0NBTEwoImludCAkMHg5MSIsIFNZU19nZXRwaWQsIHBpZCk7CisKKyAgIC8qIEFNRCdzIHN5c2NhbGwgaW5zdHJ1Y3Rpb24uICovCisgICBTWVNDQUxMKCJzeXNjYWxsIiwgU1lTX2dldHBpZCwgcGlkMik7CisgICBjaGVja19waWQocGlkLCBwaWQyLCAic3lzY2FsbCIpOworCisgICAvKiBJbnRlbCdzIHN5c2VudGVyIGluc3RydWN0aW9uLiAqLworICAgU1lTQ0FMTCgic3lzZW50ZXIiLCBTWVNfZ2V0cGlkLCBwaWQyKTsKKyAgIGNoZWNrX3BpZChwaWQsIHBpZDIsICJzeXNlbnRlciIpOworCisgICAvKiBMaW51eCBzeXNjYWxsIGluc3RydWN0aW9ucyB0aGF0IGFyZSBoYW5kbGVkIGFzICJpbnQgJDB4OTEiLiAqLworICAgU1lTQ0FMTCgiaW50ICQweDgwIiwgU1lTX2dldHBpZCwgcGlkMik7CisgICBjaGVja19waWQocGlkLCBwaWQyLCAiaW50ICQweDgwIik7CisKKyAgIFNZU0NBTEwoImludCAkMHg4MSIsIFNZU19nZXRwaWQsIHBpZDIpOworICAgY2hlY2tfcGlkKHBpZCwgcGlkMiwgImludCAkMHg4MSIpOworCisgICBTWVNDQUxMKCJpbnQgJDB4ODIiLCBTWVNfZ2V0cGlkLCBwaWQyKTsKKyAgIGNoZWNrX3BpZChwaWQsIHBpZDIsICJpbnQgJDB4ODIiKTsKKworICAgLyogRmFzdHRyYXBzLiAqLworICAgU1lTQ0FMTCgiaW50ICQweGQyIiwgVF9HRVRIUlRJTUUsIGR1bW15KTsKKworICAgcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cCBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvc3lzY2FsbHMuc3RkZXJyLmV4cApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIG5vbmUvdGVzdHMvc2NyaXB0cy9zaGVsbF9ub2ludGVycDEuc3RkZXJyLmV4cApjb3B5IHRvIG5vbmUvdGVzdHMveDg2LXNvbGFyaXMvc3lzY2FsbHMuc3RkZXJyLmV4cApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwIGIvbm9uZS90ZXN0cy94ODYtc29sYXJpcy9zeXNjYWxscy5zdGRvdXQuZXhwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gbm9uZS90ZXN0cy9zY3JpcHRzL3NoZWxsX25vaW50ZXJwMS5zdGRlcnIuZXhwCmNvcHkgdG8gbm9uZS90ZXN0cy94ODYtc29sYXJpcy9zeXNjYWxscy5zdGRvdXQuZXhwCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL3N5c2NhbGxzLnZndGVzdCBiL25vbmUvdGVzdHMveDg2LXNvbGFyaXMvc3lzY2FsbHMudmd0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NzY5ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni1zb2xhcmlzL3N5c2NhbGxzLnZndGVzdApAQCAtMCwwICsxLDIgQEAKK3Byb2c6IHN5c2NhbGxzCit2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni9NYWtlZmlsZS5hbSBiL25vbmUvdGVzdHMveDg2L01ha2VmaWxlLmFtCmluZGV4IGUyNDY1ZjcuLjJiMzVjZDkgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMveDg2L01ha2VmaWxlLmFtCisrKyBiL25vbmUvdGVzdHMveDg2L01ha2VmaWxlLmFtCkBAIC0xLDE4ICsxLDI5IEBACiAKIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCiAKLWRpc3Rfbm9pbnN0X1NDUklQVFMgPSBmaWx0ZXJfY3B1aWQgZmlsdGVyX3N0ZGVyciBnZW5faW5zbl90ZXN0LnBsCitkaXN0X25vaW5zdF9TQ1JJUFRTID0gZmlsdGVyX2NwdWlkIGZpbHRlcl9pbmZfbmFuIGZpbHRlcl9zdGRlcnIgZ2VuX2luc25fdGVzdC5wbAogCiBDTEVBTkZJTEVTID0gJChhZGRzdWZmaXggLmMsJChJTlNOX1RFU1RTKSkKIAotSU5TTl9URVNUUyA9IGluc25fYmFzaWMgaW5zbl9mcHUgaW5zbl9jbW92IGluc25fbW14IGluc25fbW14ZXh0IFwKLQkJaW5zbl9zc2UgaW5zbl9zc2UyCi1pZiBCVUlMRF9TU0UzX1RFU1RTCi0gICBJTlNOX1RFU1RTICs9IGluc25fc3NlMwotZW5kaWYKK0lOU05fVEVTVFMgPSBpbnNuX2Jhc2ljIGluc25fY21vdiBpbnNuX21teCBpbnNuX21teGV4dAorCitpZiAhQ09NUElMRVJfSVNfQ0xBTkcKKyAgIElOU05fVEVTVFMgKz0gaW5zbl9zc2UgaW5zbl9zc2UyCiBpZiBCVUlMRF9TU1NFM19URVNUUwogICAgSU5TTl9URVNUUyArPSBpbnNuX3Nzc2UzCiBlbmRpZgoraWYgQlVJTERfU1NFM19URVNUUworaWYgIVNPTEFSSVNfU1VOX1NUVURJT19BUworIyBTdW4gU3R1ZGlvIGFzc2VtYmxlciBmYWlscyB0byBidWlsZCBzb21lIHRlc3RzIChpbGxlZ2FsIG1uZW1vbmljKS4KKyAgIElOU05fVEVTVFMgKz0gaW5zbl9zc2UzCitlbmRpZgorZW5kaWYKK2VuZGlmCisKK2lmICFTT0xBUklTX1NVTl9TVFVESU9fQVMKKyMgU3VuIFN0dWRpbyBhc3NlbWJsZXIgZmFpbHMgdG8gYnVpbGQgc29tZSB0ZXN0cyAoaWxsZWdhbCBtbmVtb25pYykuCisgICBJTlNOX1RFU1RTICs9IGluc25fZnB1CitlbmRpZgogCiAjIEV4cGxpY2l0bHkgaW5jbHVkZSBpbnNuX3NzZTMgZXZlbiBpZiAhIEJVSUxEX1NTRTNfVEVTVFMsIAogIyB0byBhdm9pZCBwYWNrYWdpbmcgc2NyZXd1cHMgaWYgJ21ha2UgZGlzdCcgaXMgcnVuIG9uIGEgbWFjaGluZQpAQCAtMjIsNyArMzMsOCBAQAogCiBFWFRSQV9ESVNUID0gXAogCWFhZF9hYW0uc3Rkb3V0LmV4cCBhYWRfYWFtLnN0ZGVyci5leHAgYWFkX2FhbS52Z3Rlc3QgXAotCWJhZHNlZy5zdGRlcnIuZXhwIGJhZHNlZy5zdGRvdXQuZXhwIGJhZHNlZy52Z3Rlc3QgXAorCWJhZHNlZy5zdGRlcnIuZXhwIGJhZHNlZy5zdGRvdXQuZXhwIGJhZHNlZy5zdGRvdXQuZXhwLXNvbGFyaXMgXAorCWJhZHNlZy52Z3Rlc3QgXAogCWJ0X2V2ZXJ5dGhpbmcuc3RkZXJyLmV4cCBidF9ldmVyeXRoaW5nLnN0ZG91dC5leHAgYnRfZXZlcnl0aGluZy52Z3Rlc3QgXAogCWJ0X2xpdGVyYWwuc3RkZXJyLmV4cCBidF9saXRlcmFsLnN0ZG91dC5leHAgYnRfbGl0ZXJhbC52Z3Rlc3QgXAogCWJ1ZzEyNTk1OS14ODYuc3RkZXJyLmV4cCBidWcxMjU5NTkteDg2LnN0ZG91dC5leHAgYnVnMTI1OTU5LXg4Ni52Z3Rlc3QgXApAQCAtNDYsNiArNTgsOSBAQAogCSQoYWRkc3VmZml4IC5zdGRlcnIuZXhwLCQoSU5TTl9URVNUUykpIFwKIAkkKGFkZHN1ZmZpeCAuc3Rkb3V0LmV4cCwkKElOU05fVEVTVFMpKSBcCiAJJChhZGRzdWZmaXggLnZndGVzdCwkKElOU05fVEVTVFMpKSBcCisJaW5zbl9mcHUuc3Rkb3V0LmV4cCBpbnNuX2ZwdS5zdGRlcnIuZXhwIGluc25fZnB1LnZndGVzdCBcCisJaW5zbl9zc2Uuc3Rkb3V0LmV4cCBpbnNuX3NzZS5zdGRlcnIuZXhwIGluc25fc3NlLnZndGVzdCBcCisJaW5zbl9zc2UyLnN0ZG91dC5leHAgaW5zbl9zc2UyLnN0ZGVyci5leHAgaW5zbl9zc2UyLnZndGVzdCBcCiAJaW5zbl9zc2UzLnN0ZG91dC5leHAgaW5zbl9zc2UzLnN0ZGVyci5leHAgaW5zbl9zc2UzLnZndGVzdCBcCiAJaW5zbl9zc3NlMy5zdGRvdXQuZXhwIGluc25fc3NzZTMuc3RkZXJyLmV4cCBpbnNuX3Nzc2UzLnZndGVzdCBcCiAJamN4ei5zdGRvdXQuZXhwIGpjeHouc3RkZXJyLmV4cCBqY3h6LnZndGVzdCBcCkBAIC05MSw3ICsxMDYsNiBAQAogCWxhaGYgXAogCWxvb3BlciBcCiAJbW92eCBcCi0JcHVzaHBvcHNlZyBcCiAJc2JibWlzYyBcCiAJc2hpZnRfbmRlcCBcCiAJc21jMSBcCkBAIC0xMDUsMTIgKzExOSwyMyBAQAogaWYgQlVJTERfTFpDTlRfVEVTVFMKICBjaGVja19QUk9HUkFNUyArPSBsemNudDMyCiBlbmRpZgotaWYgIVZHQ09ORl9PU19JU19EQVJXSU4KLSBjaGVja19QUk9HUkFNUyArPSBmYXVsdHN0YXR1cwotZW5kaWYKIGlmIEJVSUxEX01PVkJFX1RFU1RTCiAgY2hlY2tfUFJPR1JBTVMgKz0gbW92YmUKIGVuZGlmCitpZiAhVkdDT05GX09TX0lTX0RBUldJTgoraWYgIVNPTEFSSVNfU1VOX1NUVURJT19BUworIyBTdW4gU3R1ZGlvIGFzc2VtYmxlciBmYWlscyB0byBhc3NlbWJsZSB0aGUgYm91bmQgaW5zdHJ1Y3Rpb24KK2lmICFDT01QSUxFUl9JU19DTEFORworIyBjbGFuZyBlcnJvcnMgb3V0IGNvbXBsYWluaW5nIHRoYXQgJWVheCBhcyB0aGUgMXN0IG9wZXJhbmQgaW4gdGhlIGJvdW5kCisjIGluc24gaXMgYW4gaW52YWxpZCBvcGVyYW5kLgorIGNoZWNrX1BST0dSQU1TICs9IGZhdWx0c3RhdHVzCitlbmRpZgorZW5kaWYKK2VuZGlmCitpZiAhU09MQVJJU19TVU5fU1RVRElPX0FTCisjIFN1biBTdHVkaW8gYXNzZW1ibGVyIGZhaWxzIHRvIGFzc2VtYmxlIHB1c2h3ICVmcywgcG9wdyAlZnMKKyBjaGVja19QUk9HUkFNUyArPSBwdXNocG9wc2VnCitlbmRpZgogCiAKIEFNX0NGTEFHUyAgICArPSBARkxBR19NMzJAICQoRkxBR19NTU1YKSAkKEZMQUdfTVNTRSkKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2L2JhZHNlZy5zdGRvdXQuZXhwLXNvbGFyaXMgYi9ub25lL3Rlc3RzL3g4Ni9iYWRzZWcuc3Rkb3V0LmV4cC1zb2xhcmlzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkNDVjYzcKLS0tIC9kZXYvbnVsbAorKysgYi9ub25lL3Rlc3RzL3g4Ni9iYWRzZWcuc3Rkb3V0LmV4cC1zb2xhcmlzCkBAIC0wLDAgKzEgQEAKK2luZm86IHNpZz0xMSBjb2RlPTEgYWRkcj0weDAKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2L2J0X2V2ZXJ5dGhpbmcuYyBiL25vbmUvdGVzdHMveDg2L2J0X2V2ZXJ5dGhpbmcuYwppbmRleCBiMzY3YzAyLi5lYmU1N2FjIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3g4Ni9idF9ldmVyeXRoaW5nLmMKKysrIGIvbm9uZS90ZXN0cy94ODYvYnRfZXZlcnl0aGluZy5jCkBAIC0zLDYgKzMsMTcgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxhc3NlcnQuaD4KIAordW5zaWduZWQgbXlyYW5kb20odm9pZCkKK3sKKyAgIC8qIFNpbXBsZSBtdWx0aXBseS13aXRoLWNhcnJ5IHJhbmRvbSBnZW5lcmF0b3IuICovCisgICBzdGF0aWMgdW5zaWduZWQgbV93ID0gMTE7CisgICBzdGF0aWMgdW5zaWduZWQgbV96ID0gMTM7CisKKyAgIG1feiA9IDM2OTY5ICogKG1feiAmIDY1NTM1KSArIChtX3ogPj4gMTYpOworICAgbV93ID0gMTgwMDAgKiAobV93ICYgNjU1MzUpICsgKG1fdyA+PiAxNik7CisKKyAgIHJldHVybiAobV96IDw8IDE2KSArIG1fdzsKK30KIAogdW5zaWduZWQgaW50IGJ0c2xfbWVtICggdW5zaWduZWQgY2hhciogYmFzZSwgaW50IGJpdG5vICkKIHsKQEAgLTE1NSw4ICsxNjYsOCBAQAogICAgLyogVmFsaWQgYml0IG9mZnNldHMgYXJlIC04MDAgLi4gNzk5IGluY2x1c2l2ZS4gKi8KIAogICAgZm9yIChuID0gMDsgbiA8IDEwMDAwOyBuKyspIHsKLSAgICAgIGJpdG9mZiA9IChyYW5kb20oKSAlIDE2MDApIC0gODAwOwotICAgICAgb3AgPSByYW5kb20oKSAlIDQ7CisgICAgICBiaXRvZmYgPSAobXlyYW5kb20oKSAlIDE2MDApIC0gODAwOworICAgICAgb3AgPSBteXJhbmRvbSgpICUgNDsKICAgICAgIGMgPSAyOwogICAgICAgc3dpdGNoIChvcCkgewogICAgICAgICAgY2FzZSAwOiBjID0gYnRzbF9tZW0oYmxvY2ssIGJpdG9mZik7IGJyZWFrOwpAQCAtMTg1LDggKzE5Niw4IEBACiAgICByZWcgPSAwOwogCiAgICBmb3IgKG4gPSAwOyBuIDwgMTAwMDsgbisrKSB7Ci0gICAgICBiaXRvZmYgPSAocmFuZG9tKCkgJSAxMDApIC0gNTA7Ci0gICAgICBvcCA9IHJhbmRvbSgpICUgNDsKKyAgICAgIGJpdG9mZiA9IChteXJhbmRvbSgpICUgMTAwKSAtIDUwOworICAgICAgb3AgPSBteXJhbmRvbSgpICUgNDsKICAgICAgIGMgPSAyOwogICAgICAgc3dpdGNoIChvcCkgewogICAgICAgICAgY2FzZSAwOiBjID0gYnRzbF9yZWcocmVnLCBiaXRvZmYsICZyZWcpOyBicmVhazsKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2L2J0X2V2ZXJ5dGhpbmcuc3Rkb3V0LmV4cCBiL25vbmUvdGVzdHMveDg2L2J0X2V2ZXJ5dGhpbmcuc3Rkb3V0LmV4cAppbmRleCBmZDY3MjIxLi5jMDJjYzM2IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3g4Ni9idF9ldmVyeXRoaW5nLnN0ZG91dC5leHAKKysrIGIvbm9uZS90ZXN0cy94ODYvYnRfZXZlcnl0aGluZy5zdGRvdXQuZXhwCkBAIC0xLDIgKzEsMiBAQAotTUVNLUw6IGZpbmFsIHJlcyAweGQyYmZlYTUzLCBjYXJyeWRlcCAweDViODBkZWVlCi1SRUctTDogZmluYWwgcmVzIDB4NjA1ZDc4ZmYsIGNhcnJ5ZGVwIDB4N2MwZGM4NmEKK01FTS1MOiBmaW5hbCByZXMgMHgyZTlmYzM5MiwgY2FycnlkZXAgMHgyM2E5NDc5ZQorUkVHLUw6IGZpbmFsIHJlcyAweDQ2YTRiZDM1LCBjYXJyeWRlcCAweGRkZmFlMmRhCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni9jcHVpZF9zLlMgYi9ub25lL3Rlc3RzL3g4Ni9jcHVpZF9zLlMKaW5kZXggNmQxZGZiYy4uNzAwNDBjZSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy94ODYvY3B1aWRfcy5TCisrKyBiL25vbmUvdGVzdHMveDg2L2NwdWlkX3MuUwpAQCAtMSw3ICsxLDcgQEAKICNpbmNsdWRlICJ0ZXN0cy9hc20uaCIKIAkKIAkuZmlsZQkib25lcGFyYW0uYyIKLSNpZiBkZWZpbmVkKFZHT19saW51eCkKKyNpZiBkZWZpbmVkKFZHT19saW51eCkgfHwgZGVmaW5lZChWR09fc29sYXJpcykKIAkudmVyc2lvbgkiMDEuMDEiCiAjZW5kaWYKIGdjYzJfY29tcGlsZWQuOgpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYvZmlsdGVyX2luZl9uYW4gYi9ub25lL3Rlc3RzL3g4Ni9maWx0ZXJfaW5mX25hbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNGRkZmM5Ci0tLSAvZGV2L251bGwKKysrIGIvbm9uZS90ZXN0cy94ODYvZmlsdGVyX2luZl9uYW4KQEAgLTAsMCArMSwxMCBAQAorIyEgL2Jpbi9zaAorCisjIFNvbGFyaXMgbGliYyBwcmludHMgJ0luZmluaXR5JyBpbnN0ZWFkIG9mICdpbmYnIGFuZCAnTmFOJyBpbnN0ZWFkIG9mICduYW4nLgorIyBGaWx0ZXIgdGhlc2UgZGlmZmVyZW5jZXMgaGVyZS4KK3NlZCAicy8tSW5maW5pdHkvICAgICAtaW5mL2ciIHwKK3NlZCAicy9JbmZpbml0eS8gICAgIGluZi9nIiAgIHwKK3NlZCAicy9OYU4vbmFuL2ciCisKK2V4aXQgMAorCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni9meHRyYWN0LnZndGVzdCBiL25vbmUvdGVzdHMveDg2L2Z4dHJhY3Qudmd0ZXN0CmluZGV4IDM0MWIxNWEuLjRiNWVmYzUgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMveDg2L2Z4dHJhY3Qudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMveDg2L2Z4dHJhY3Qudmd0ZXN0CkBAIC0xICsxLDIgQEAKIHByb2c6IGZ4dHJhY3QKK3N0ZG91dF9maWx0ZXI6IGZpbHRlcl9pbmZfbmFuCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni9pbnNuX3NzZS52Z3Rlc3QgYi9ub25lL3Rlc3RzL3g4Ni9pbnNuX3NzZS52Z3Rlc3QKaW5kZXggOGJhYmU3Mi4uYWYyZDI4MSAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy94ODYvaW5zbl9zc2Uudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMveDg2L2luc25fc3NlLnZndGVzdApAQCAtMSwzICsxLDMgQEAKIHByb2c6IC4uLy4uLy4uL25vbmUvdGVzdHMveDg2L2luc25fc3NlCi1wcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL3g4Nl9hbWQ2NF9mZWF0dXJlcyB4ODYtc3NlCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL3g4Nl9hbWQ2NF9mZWF0dXJlcyB4ODYtc3NlICYmIHRlc3QgLWUgLi4vLi4vLi4vbm9uZS90ZXN0cy94ODYvaW5zbl9zc2UKIHZnb3B0czogLXEKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2L2luc25fc3NlMi52Z3Rlc3QgYi9ub25lL3Rlc3RzL3g4Ni9pbnNuX3NzZTIudmd0ZXN0CmluZGV4IDZhZTZhNzQuLmI4NzA3MTkgMTAwNjQ0Ci0tLSBhL25vbmUvdGVzdHMveDg2L2luc25fc3NlMi52Z3Rlc3QKKysrIGIvbm9uZS90ZXN0cy94ODYvaW5zbl9zc2UyLnZndGVzdApAQCAtMSwzICsxLDMgQEAKIHByb2c6IC4uLy4uLy4uL25vbmUvdGVzdHMveDg2L2luc25fc3NlMgotcHJlcmVxOiAuLi8uLi8uLi90ZXN0cy94ODZfYW1kNjRfZmVhdHVyZXMgeDg2LXNzZTIKK3ByZXJlcTogLi4vLi4vLi4vdGVzdHMveDg2X2FtZDY0X2ZlYXR1cmVzIHg4Ni1zc2UyICYmIHRlc3QgLWUgLi4vLi4vLi4vbm9uZS90ZXN0cy94ODYvaW5zbl9zc2UyCiB2Z29wdHM6IC1xCmRpZmYgLS1naXQgYS9ub25lL3Rlc3RzL3g4Ni9pbnNuX3NzZTMudmd0ZXN0IGIvbm9uZS90ZXN0cy94ODYvaW5zbl9zc2UzLnZndGVzdAppbmRleCA0MmE5ZjJhLi42MjJjNGIwIDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3g4Ni9pbnNuX3NzZTMudmd0ZXN0CisrKyBiL25vbmUvdGVzdHMveDg2L2luc25fc3NlMy52Z3Rlc3QKQEAgLTEsMyArMSwzIEBACiBwcm9nOiAuLi8uLi8uLi9ub25lL3Rlc3RzL3g4Ni9pbnNuX3NzZTMKLXByZXJlcTogLi4vLi4vLi4vdGVzdHMveDg2X2FtZDY0X2ZlYXR1cmVzIHg4Ni1zc2UzCitwcmVyZXE6IC4uLy4uLy4uL3Rlc3RzL3g4Nl9hbWQ2NF9mZWF0dXJlcyB4ODYtc3NlMyAmJiB0ZXN0IC1lIC4uLy4uLy4uL25vbmUvdGVzdHMveDg2L2luc25fc3NlMwogdmdvcHRzOiAtcQpkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYvbW92YmUuYyBiL25vbmUvdGVzdHMveDg2L21vdmJlLmMKaW5kZXggZDRmNDk1My4uODgyMTQ2MiAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy94ODYvbW92YmUuYworKysgYi9ub25lL3Rlc3RzL3g4Ni9tb3ZiZS5jCkBAIC0yLDcgKzIsNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVkZSAidGVzdHMvbWFsbG9jLmgiCiAKIHR5cGVkZWYgIHVuc2lnbmVkIGNoYXIgICAgICAgICAgIFVDaGFyOwogdHlwZWRlZiAgdW5zaWduZWQgaW50ICAgICAgICAgICAgVUludDsKQEAgLTQzLDcgKzQzLDcgQEAKICAgICBcCiAgICAgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkgc3RhdGljIHZvaWQgdGVzdF8jI19uYW1lICggdm9pZCApICAgXAogICAgIHsgXAotICAgICAgIEJsb2NrKiBiID0gbWVtYWxpZ24oMzIsIHNpemVvZihCbG9jaykpOyBcCisgICAgICAgQmxvY2sqIGIgPSBtZW1hbGlnbjMyKHNpemVvZihCbG9jaykpOyBcCiAgICAgICAgcmFuZEJsb2NrKGIpOyBcCiAgICAgICAgcHJpbnRmKCIlc1xuIiwgI19uYW1lKTsgXAogICAgICAgIHNob3dCbG9jaygiYmVmb3JlIiwgYik7IFwKZGlmZiAtLWdpdCBhL25vbmUvdGVzdHMveDg2L3g4NmxvY2tlZC5jIGIvbm9uZS90ZXN0cy94ODYveDg2bG9ja2VkLmMKaW5kZXggMzhkMTEwOC4uOGIwMTRjYiAxMDA2NDQKLS0tIGEvbm9uZS90ZXN0cy94ODYveDg2bG9ja2VkLmMKKysrIGIvbm9uZS90ZXN0cy94ODYveDg2bG9ja2VkLmMKQEAgLTE0LDYgKzE0LDE4IEBACiB0eXBlZGVmICB1bnNpZ25lZCBsb25nICAgICAgICAgICBVV29yZDsKIHR5cGVkZWYgIGNoYXIgICAgICAgICAgICAgICAgICAgIEhDaGFyOwogCit1bnNpZ25lZCBteXJhbmRvbSh2b2lkKQoreworICAgLyogU2ltcGxlIG11bHRpcGx5LXdpdGgtY2FycnkgcmFuZG9tIGdlbmVyYXRvci4gKi8KKyAgIHN0YXRpYyB1bnNpZ25lZCBtX3cgPSAxMTsKKyAgIHN0YXRpYyB1bnNpZ25lZCBtX3ogPSAxMzsKKworICAgbV96ID0gMzY5NjkgKiAobV96ICYgNjU1MzUpICsgKG1feiA+PiAxNik7CisgICBtX3cgPSAxODAwMCAqIChtX3cgJiA2NTUzNSkgKyAobV93ID4+IDE2KTsKKworICAgcmV0dXJuIChtX3ogPDwgMTYpICsgbV93OworfQorCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gQkVHSU4gY3JjMzIgc3R1ZmYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBAIC01NzEsOCArNTgzLDggQEAKICAgIC8qIFZhbGlkIGJpdCBvZmZzZXRzIGFyZSAtODAwIC4uIDc5OSBpbmNsdXNpdmUuICovCiAKICAgIGZvciAobiA9IDA7IG4gPCAxMDAwMDsgbisrKSB7Ci0gICAgICBiaXRvZmYgPSAocmFuZG9tKCkgJSAxNjAwKSAtIDgwMDsKLSAgICAgIG9wID0gcmFuZG9tKCkgJSA0OworICAgICAgYml0b2ZmID0gKG15cmFuZG9tKCkgJSAxNjAwKSAtIDgwMDsKKyAgICAgIG9wID0gbXlyYW5kb20oKSAlIDQ7CiAgICAgICBjID0gMjsKICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgIGNhc2UgMDogYyA9IGJ0c2xfbWVtKGJsb2NrLCBiaXRvZmYpOyBicmVhazsKQEAgLTYwNyw4ICs2MTksOCBAQAogICAgLyogVmFsaWQgYml0IG9mZnNldHMgYXJlIC04MDAgLi4gNzk5IGluY2x1c2l2ZS4gKi8KIAogICAgZm9yIChuID0gMDsgbiA8IDEwMDAwOyBuKyspIHsKLSAgICAgIGJpdG9mZiA9IChyYW5kb20oKSAlIDE2MDApIC0gODAwOwotICAgICAgb3AgPSByYW5kb20oKSAlIDQ7CisgICAgICBiaXRvZmYgPSAobXlyYW5kb20oKSAlIDE2MDApIC0gODAwOworICAgICAgb3AgPSBteXJhbmRvbSgpICUgNDsKICAgICAgIGMgPSAyOwogICAgICAgc3dpdGNoIChvcCkgewogICAgICAgICAgY2FzZSAwOiBjID0gYnRzd19tZW0oYmxvY2ssIGJpdG9mZik7IGJyZWFrOwpAQCAtODQ4LDcgKzg2MCw3IEBACiAgIC8vIGNvbmZpcm0gd2l0aAogICAvLyBvYmpkdW1wIC1kIC4veDg2bG9ja2VkIHwgZ3JlcCBsb2NrIHwgZ3JlcCAtdiBkb19sb2NrIHwgZ3JlcCAtdiBlbGYzMiB8IHdjCiAKLSAgeyBVSW50IGNyY0V4cGQgPSAweDgyMzVEQzlDOworICB7IFVJbnQgY3JjRXhwZCA9IDB4QjJENzUwNDU7CiAgICAgdGhlQ1JDID0gY3JjRmluYWxpc2UoIHRoZUNSQyApOwogICAgIGlmICh0aGVDUkMgPT0gY3JjRXhwZCkgewogICAgICAgIHByaW50ZigieDg2bG9ja2VkOiBQQVNTOiBDUkNzIGFjdHVhbCAweCUwOFggZXhwZWN0ZWQgMHglMDhYXG4iLApkaWZmIC0tZ2l0IGEvbm9uZS90ZXN0cy94ODYveDg2bG9ja2VkLnN0ZG91dC5leHAgYi9ub25lL3Rlc3RzL3g4Ni94ODZsb2NrZWQuc3Rkb3V0LmV4cAppbmRleCBlNTE0NWNjLi44MjZhMWI1IDEwMDY0NAotLS0gYS9ub25lL3Rlc3RzL3g4Ni94ODZsb2NrZWQuc3Rkb3V0LmV4cAorKysgYi9ub25lL3Rlc3RzL3g4Ni94ODZsb2NrZWQuc3Rkb3V0LmV4cApAQCAtMSArMSBAQAoteDg2bG9ja2VkOiBQQVNTOiBDUkNzIGFjdHVhbCAweDgyMzVEQzlDIGV4cGVjdGVkIDB4ODIzNURDOUMKK3g4NmxvY2tlZDogUEFTUzogQ1JDcyBhY3R1YWwgMHhCMkQ3NTA0NSBleHBlY3RlZCAweEIyRDc1MDQ1CmRpZmYgLS1naXQgYS9wZXJmL01ha2VmaWxlLmFtIGIvcGVyZi9NYWtlZmlsZS5hbQppbmRleCAyMDE1MDg1Li5hYjUwNGU5IDEwMDY0NAotLS0gYS9wZXJmL01ha2VmaWxlLmFtCisrKyBiL3BlcmYvTWFrZWZpbGUuYW0KQEAgLTMzLDcgKzMzLDUgQEAKIGZmYmVuY2hfTERBREQJPSAtbG0KIG1lbXJ3X0xEQURECT0gLWxwdGhyZWFkCiAKLXRpbnljY19DRkxBR1MJPSAkKEFNX0NGTEFHUykgLVduby1zaGFkb3cgLVduby1pbmxpbmUKLWlmIEhBU19QT0lOVEVSX1NJR05fV0FSTklORwotdGlueWNjX0NGTEFHUyAgKz0gLVduby1wb2ludGVyLXNpZ24KLWVuZGlmCit0aW55Y2NfQ0ZMQUdTCT0gJChBTV9DRkxBR1MpIC1Xbm8tc2hhZG93IC1Xbm8taW5saW5lIFwKKyAgICAgICAgICAgICAgICAgIEBGTEFHX1dfTk9fUE9JTlRFUl9TSUdOQApkaWZmIC0tZ2l0IGEvcGVyZi9iaWdjb2RlLmMgYi9wZXJmL2JpZ2NvZGUuYwppbmRleCA4ZTEyZDdiLi5hZTMxY2JiIDEwMDY0NAotLS0gYS9wZXJmL2JpZ2NvZGUuYworKysgYi9wZXJmL2JpZ2NvZGUuYwpAQCAtOCw2ICs4LDE5IEBACiAvLyB0byBtYWtlIGEgZGlmZmVyZW5jZSksIGJ1dCB1bmRlciBWYWxncmluZCB0aGUgb25lIHJ1bm5pbmcgbW9yZSBjb2RlIGlzCiAvLyBzaWduaWZpY2FudGx5IHNsb3dlciBkdWUgdG8gdGhlIGV4dHJhIHRyYW5zbGF0aW9uIHRpbWUuCiAKKy8vIDMxIEF1ZyAyMDE1OiB0aGlzIG9ubHkgIndvcmtzIiBvbiB4ODYvYW1kNjQvczM5MCBieSBhY2NpZGVudDsgdGhlCisvLyB0ZXN0IGlzIGVzc2VudGlhbGx5IGtsdWRnZWQuICBUaGlzICJnZW5lcmF0ZXMiIGNvZGUgaW50byBtZW1vcnkKKy8vICh0aGUgbW1hcCdkIGFyZWEpIGFuZCB0aGUgZXhlY3V0ZXMgaXQuICBCdXQgaGlzdG9yaWNhbGx5IGFuZCBldmVuCisvLyBhZnRlciB0aGlzIGNvbW1pdCAocjE1NjAxKSwgdGhlIHRlc3QgaGFzIGJlZW4gcnVuIHdpdGhvdXQgCisvLyAtLXNtYy1jaGVjaz1hbGwgb3IgYWxsLW5vbi1maWxlLiAgVGhhdCBqdXN0IGhhcHBlbnMgdG8gd29yayBiZWNhdXNlCisvLyB0aGUgImdlbmVyYXRlZCIgY29kZSBpcyBuZXZlciBtb2RpZmllZCwgc28gdGhlcmUncyBuZXZlciBhCisvLyB0cmFuc2xhdGVkLXZzLXJlYWxpdHkgY29oZXJlbmNlIHByb2JsZW0uICBSZWFsbHkgd2Ugb3VnaHQgdG8gcnVuCisvLyB3aXRoIHRoZSBuZXctYXMtb2YtcjE1NjAxIGRlZmF1bHQgLS1zbWMtY2hlY2s9YWxsLW5vbi1maWxlLCBidXQgdGhhdAorLy8gaHVnZWx5IHNsb3dzIGl0IGRvd24gYW5kIG1ha2VzIHRoZSByZXN1bHRzIG5vbi1jb21wYXJhYmxlIHdpdGgKKy8vIHByZSByMTU2MDEgcmVzdWx0cywgc28gaW5zdGVhZCB0aGUgLnZncGVyZiBmaWxlcyBub3cgc3BlY2lmeSB0aGUKKy8vIG9sZCBkZWZhdWx0IHZhbHVlIC0tc21jLWNoZWNrPXN0YWNrIGV4cGxpY2l0bHkuCisKKwogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CmRpZmYgLS1naXQgYS9wZXJmL2JpZ2NvZGUxLnZncGVyZiBiL3BlcmYvYmlnY29kZTEudmdwZXJmCmluZGV4IDJmZGNiNGMuLmVhNTQ0MGYgMTAwNjQ0Ci0tLSBhL3BlcmYvYmlnY29kZTEudmdwZXJmCisrKyBiL3BlcmYvYmlnY29kZTEudmdwZXJmCkBAIC0xICsxLDIgQEAKIHByb2c6IGJpZ2NvZGUKK3Znb3B0czogLS1zbWMtY2hlY2s9c3RhY2sKZGlmZiAtLWdpdCBhL3BlcmYvYmlnY29kZTIudmdwZXJmIGIvcGVyZi9iaWdjb2RlMi52Z3BlcmYKaW5kZXggZTRhNDJjOS4uZDdkZTNhMSAxMDA2NDQKLS0tIGEvcGVyZi9iaWdjb2RlMi52Z3BlcmYKKysrIGIvcGVyZi9iaWdjb2RlMi52Z3BlcmYKQEAgLTEsMiArMSwzIEBACiBwcm9nOiBiaWdjb2RlCiBhcmdzOiAwCit2Z29wdHM6IC0tc21jLWNoZWNrPXN0YWNrCmRpZmYgLS1naXQgYS9wZXJmL3RpbnljYy5jIGIvcGVyZi90aW55Y2MuYwppbmRleCBlNGNhMzdmLi4zYjQ4N2MxIDEwMDY0NAotLS0gYS9wZXJmL3RpbnljYy5jCisrKyBiL3BlcmYvdGlueWNjLmMKQEAgLTMwODAsNyArMzA4MCw3IEBACiAgREVGX0ZQKG11bCkKIAogIERFRl9BU00oZmNvbSkKLSBERUZfQVNNKGZjb21fMSkgLyogbm9uIGV4aXN0YW50IG9wLCBqdXN0IHRvIGhhdmUgYSByZWd1bGFyIHRhYmxlICovCisgREVGX0FTTShmY29tXzEpIC8qIG5vbiBleGlzdGVudCBvcCwganVzdCB0byBoYXZlIGEgcmVndWxhciB0YWJsZSAqLwogIERFRl9GUDEoY29tKQogCiAgREVGX0ZQKGNvbXApCkBAIC00NDEyLDcgKzQ0MTIsNyBAQAogIERFRl9GUChtdWwpCiAKICBERUZfQVNNKGZjb20pCi0gREVGX0FTTShmY29tXzEpIC8qIG5vbiBleGlzdGFudCBvcCwganVzdCB0byBoYXZlIGEgcmVndWxhciB0YWJsZSAqLworIERFRl9BU00oZmNvbV8xKSAvKiBub24gZXhpc3RlbnQgb3AsIGp1c3QgdG8gaGF2ZSBhIHJlZ3VsYXIgdGFibGUgKi8KICBERUZfRlAxKGNvbSkKIAogIERFRl9GUChjb21wKQpAQCAtMTA0MzMsNyArMTA0MzMsNyBAQAogICAgICAgICBiaXRfcG9zID0gKHZ0b3AtPnR5cGUudCA+PiBWVF9TVFJVQ1RfU0hJRlQpICYgMHgzZjsKICAgICAgICAgYml0X3NpemUgPSAodnRvcC0+dHlwZS50ID4+IChWVF9TVFJVQ1RfU0hJRlQgKyA2KSkgJiAweDNmOwogICAgICAgICAvKiByZW1vdmUgYml0IGZpZWxkIGluZm8gdG8gYXZvaWQgbG9vcHMgKi8KLSAgICAgICAgdnRvcC0+dHlwZS50ICY9IH4oVlRfQklURklFTEQgfCAoLTEgPDwgVlRfU1RSVUNUX1NISUZUKSk7CisgICAgICAgIHZ0b3AtPnR5cGUudCAmPSB+KFZUX0JJVEZJRUxEIHwgKH4wVSA8PCBWVF9TVFJVQ1RfU0hJRlQpKTsKICAgICAgICAgLyogZ2VuZXJhdGUgc2hpZnRzICovCiAgICAgICAgIHZwdXNoaSgzMiAtIChiaXRfcG9zICsgYml0X3NpemUpKTsKICAgICAgICAgZ2VuX29wKFRPS19TSEwpOwpAQCAtMTE5MzAsNyArMTE5MzAsNyBAQAogICAgICAgICBiaXRfcG9zID0gKGZ0ID4+IFZUX1NUUlVDVF9TSElGVCkgJiAweDNmOwogICAgICAgICBiaXRfc2l6ZSA9IChmdCA+PiAoVlRfU1RSVUNUX1NISUZUICsgNikpICYgMHgzZjsKICAgICAgICAgLyogcmVtb3ZlIGJpdCBmaWVsZCBpbmZvIHRvIGF2b2lkIGxvb3BzICovCi0gICAgICAgIHZ0b3BbLTFdLnR5cGUudCA9IGZ0ICYgfihWVF9CSVRGSUVMRCB8ICgtMSA8PCBWVF9TVFJVQ1RfU0hJRlQpKTsKKyAgICAgICAgdnRvcFstMV0udHlwZS50ID0gZnQgJiB+KFZUX0JJVEZJRUxEIHwgKH4wVSA8PCBWVF9TVFJVQ1RfU0hJRlQpKTsKIAogICAgICAgICAvKiBkdXBsaWNhdGUgZGVzdGluYXRpb24gKi8KICAgICAgICAgdmR1cCgpOwpAQCAtMTY5NzAsNyArMTY5NzAsNyBAQAogICAgIH0KIH0KIAotLyogZ2VuZXJhdGUgcHJvbG9nIGFuZCBlcGlsb2cgY29kZSBmb3IgYXNtIHN0YXRtZW50ICovCisvKiBnZW5lcmF0ZSBwcm9sb2cgYW5kIGVwaWxvZyBjb2RlIGZvciBhc20gc3RhdGVtZW50ICovCiBzdGF0aWMgdm9pZCBhc21fZ2VuX2NvZGUoQVNNT3BlcmFuZCAqb3BlcmFuZHMsIGludCBuYl9vcGVyYW5kcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5iX291dHB1dHMsIGludCBpc19vdXRwdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqY2xvYmJlcl9yZWdzLApAQCAtMjEyODUsNyArMjEyODUsNyBAQAogCiB2b2lkIGhlbHAodm9pZCkKIHsKLSAgICBwcmludGYoInRjYyB2ZXJzaW9uICIgVENDX1ZFUlNJT04gIiAtIFRpbnkgQyBDb21waWxlciAtIENvcHlyaWdodCAoQykgMjAwMS0yMDEzIEZhYnJpY2UgQmVsbGFyZFxuIgorICAgIHByaW50ZigidGNjIHZlcnNpb24gIiBUQ0NfVkVSU0lPTiAiIC0gVGlueSBDIENvbXBpbGVyIC0gQ29weXJpZ2h0IChDKSAyMDAxLTIwMTUgRmFicmljZSBCZWxsYXJkXG4iCiAgICAgICAgICAgICJ1c2FnZTogdGNjIFstdl0gWy1jXSBbLW8gb3V0ZmlsZV0gWy1CZGlyXSBbLWJlbmNoXSBbLUlkaXJdIFstRHN5bVs9dmFsXV0gWy1Vc3ltXVxuIgogICAgICAgICAgICAiICAgICAgICAgICBbLVd3YXJuXSBbLWddIFstYl0gWy1idCBOXSBbLUxkaXJdIFstbGxpYl0gWy1zaGFyZWRdIFstc3RhdGljXVxuIgogICAgICAgICAgICAiICAgICAgICAgICBbaW5maWxlMSBpbmZpbGUyLi4uXSBbLXJ1biBpbmZpbGUgYXJncy4uLl1cbiIKZGlmZiAtLWdpdCBhL3BlcmYvdmdfcGVyZi5pbiBiL3BlcmYvdmdfcGVyZi5pbgppbmRleCA1YzQ4MmVmLi43YTgwY2IwIDEwMDY0NAotLS0gYS9wZXJmL3ZnX3BlcmYuaW4KKysrIGIvcGVyZi92Z19wZXJmLmluCkBAIC02LDcgKzYsNyBAQAogIyAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgVmFsZ3JpbmQsIGEgZHluYW1pYyBiaW5hcnkgaW5zdHJ1bWVudGF0aW9uCiAjICBmcmFtZXdvcmsuCiAjCi0jICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBOaWNob2xhcyBOZXRoZXJjb3RlCisjICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNSBOaWNob2xhcyBOZXRoZXJjb3RlCiAjICAgICBuam5AdmFsZ3JpbmQub3JnCiAjCiAjICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCmRpZmYgLS1naXQgYS9zaGFyZWQvdmdfcmVwbGFjZV9zdHJtZW0uYyBiL3NoYXJlZC92Z19yZXBsYWNlX3N0cm1lbS5jCmluZGV4IGQ0ZTU0NDkuLjAwNWI2NzkgMTAwNjQ0Ci0tLSBhL3NoYXJlZC92Z19yZXBsYWNlX3N0cm1lbS5jCisrKyBiL3NoYXJlZC92Z19yZXBsYWNlX3N0cm1lbS5jCkBAIC04LDcgKzgsNyBAQAogLyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFZhbGdyaW5kLgogCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMyBKdWxpYW4gU2V3YXJkCisgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxNSBKdWxpYW4gU2V3YXJkCiAgICAgICBqc2V3YXJkQGFjbS5vcmcKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTAzLDYgKzEwMywxNSBAQAogICAgMjA0MjAgU1RQTkNQWQogKi8KIAorI2lmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisvKgorICAgRGV0b3VyIGZ1bmN0aW9ucyBpbiB0aGUgbGliYyBhbmQgdGhlIHJ1bnRpbWUgbGlua2VyLiBJZiBhIGZ1bmN0aW9uIGlzbid0CisgICBtdWNoIG9wdGltaXplZCAoYW5kIG5vIG92ZXJsYXAgY2hlY2tpbmcgaXMgbmVjZXNzYXJ5KSB0aGVuIHJlZGlyIHRoZQorICAgZnVuY3Rpb24gb25seSBpbiB0aGUgbGliYy4gVGhpcyB3YXkgd2UgY2FuIGtlZXAgc3RhY2t0cmFjZXMgaW4gdGhlIHRlc3RzCisgICBjb25zaXN0ZW50LgorKi8KKyNlbmRpZgorCiAKIC8qIEZpZ3VyZSBvdXQgaWYgW2RzdCAuLiBkc3QrZHN0bGVuLTFdIG92ZXJsYXBzIHdpdGgKICAgICAgICAgICAgICAgICAgW3NyYyAuLiBzcmMrc3JjbGVuLTFdLgpAQCAtMjA0LDEwICsyMTMsMTUgQEAKICAvL1NUUlJDSFIoVkdfWl9EWUxELCAgICAgICAgICBzdHJyY2hyKQogIC8vU1RSUkNIUihWR19aX0RZTEQsICAgICAgICAgIHJpbmRleCkKICBTVFJSQ0hSKFZHX1pfTElCQ19TT05BTUUsIHN0cnJjaHIpCi0jIGlmIERBUldJTl9WRVJTID09IERBUldJTl8xMF85IHx8IERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAorIyBpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfOQogICBTVFJSQ0hSKGxpYnN5c3RlbVp1Y1pkZHlsaWIsIHN0cnJjaHIpCiAjIGVuZGlmCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgU1RSUkNIUihWR19aX0xJQkNfU09OQU1FLCAgIHN0cnJjaHIpCisgU1RSUkNIUihWR19aX0xJQkNfU09OQU1FLCAgIHJpbmRleCkKKyBTVFJSQ0hSKFZHX1pfTERfU09fMSwgICAgICAgc3RycmNocikKKwogI2VuZGlmCiAKIApAQCAtMjQ1LDExICsyNTksMTggQEAKICMgaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzkKICAgU1RSQ0hSKGxpYnN5c3RlbVp1cGxhdGZvcm1aZGR5bGliLCBfcGxhdGZvcm1fc3RyY2hyKQogIyBlbmRpZgotIyBpZiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfMTAKKyMgaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzEwCiAgIC8qIF9wbGF0Zm9ybV9zdHJjaHIkVkFSSUFOVCRHZW5lcmljICovCiAgIFNUUkNIUihsaWJzeXN0ZW1adXBsYXRmb3JtWmRkeWxpYiwgX3BsYXRmb3JtX3N0cmNociRWQVJJQU5UJEdlbmVyaWMpCisgIC8qIF9wbGF0Zm9ybV9zdHJjaHIkVkFSSUFOVCRIYXN3ZWxsICovCiAgIFNUUkNIUihsaWJzeXN0ZW1adXBsYXRmb3JtWmRkeWxpYiwgX3BsYXRmb3JtX3N0cmNociRWQVJJQU5UJEhhc3dlbGwpCiAjIGVuZGlmCisKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgU1RSQ0hSKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cmNocikKKyBTVFJDSFIoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgICAgaW5kZXgpCisgU1RSQ0hSKFZHX1pfTERfU09fMSwgICAgICAgICAgICAgIHN0cmNocikKKwogI2VuZGlmCiAKIApAQCAtMjg1LDYgKzMwNiwxMCBAQAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIC8vU1RSQ0FUKFZHX1pfTElCQ19TT05BTUUsIHN0cmNhdCkKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBTVFJDQVQoVkdfWl9MSUJDX1NPTkFNRSwgc3RyY2F0KQorIFNUUkNBVChWR19aX0xEX1NPXzEsICAgICBzdHJjYXQpCisKICNlbmRpZgogCiAKQEAgLTMyMiw2ICszNDcsOSBAQAogIC8vU1RSTkNBVChWR19aX0xJQkNfU09OQU1FLCBzdHJuY2F0KQogIC8vU1RSTkNBVChWR19aX0RZTEQsICAgICAgICBzdHJuY2F0KQogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIFNUUk5DQVQoVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNhdCkKKwogI2VuZGlmCiAKIApAQCAtMzcwLDYgKzM5OCw5IEBACiAgLy9TVFJMQ0FUKFZHX1pfRFlMRCwgICAgICAgIHN0cmxjYXQpCiAgU1RSTENBVChWR19aX0xJQkNfU09OQU1FLCBzdHJsY2F0KQogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIFNUUkxDQVQoVkdfWl9MSUJDX1NPTkFNRSwgc3RybGNhdCkKKwogI2VuZGlmCiAKIApAQCAtMzk1LDYgKzQyNiw5IEBACiAgIFNUUk5MRU4obGlic3lzdGVtWnVjWmRkeWxpYiwgc3RybmxlbikKICMgZW5kaWYKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBTVFJOTEVOKFZHX1pfTElCQ19TT05BTUUsIHN0cm5sZW4pCisKICNlbmRpZgogCiAKQEAgLTQzMiw5ICs0NjYsMTQgQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIFNUUkxFTihWR19aX0xJQkNfU09OQU1FLCBzdHJsZW4pCi0jIGlmIERBUldJTl9WRVJTID09IERBUldJTl8xMF85IHx8IERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAorIyBpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfOQogICBTVFJMRU4obGlic3lzdGVtWnVjWmRkeWxpYiwgc3RybGVuKQogIyBlbmRpZgorCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIFNUUkxFTihWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBzdHJsZW4pCisgU1RSTEVOKFZHX1pfTERfU09fMSwgICAgICAgICAgICAgIHN0cmxlbikKKwogI2VuZGlmCiAKIApAQCAtNDczLDYgKzUxMiwxMCBAQAogICBTVFJDUFkobGlic3lzdGVtWnVjWmRkeWxpYiwgc3RyY3B5KQogIyBlbmRpZgogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIFNUUkNQWShWR19aX0xJQkNfU09OQU1FLCBzdHJjcHkpCisgU1RSQ1BZKFZHX1pfTERfU09fMSwgICAgIHN0cmNweSkKKwogI2VuZGlmCiAKIApAQCAtNTA2LDEwICs1NDksMTQgQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIFNUUk5DUFkoVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNweSkKLSMgaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzkgfHwgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwCisjIGlmIERBUldJTl9WRVJTID49IERBUldJTl8xMF85CiAgIFNUUk5DUFkobGlic3lzdGVtWnVjWmRkeWxpYiwgc3RybmNweSkKICMgZW5kaWYKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBTVFJOQ1BZKFZHX1pfTElCQ19TT05BTUUsIHN0cm5jcHkpCisgU1RSTkNQWShWR19aX0xEX1NPXzEsICAgICBzdHJuY3B5KQorCiAjZW5kaWYKIAogCkBAIC01MjcsNiArNTc0LDggQEAKICAgICAgIEhDaGFyKiBkc3Rfb3JpZyA9IGRzdDsgXAogICAgICAgU2l6ZVQgbSA9IDA7IFwKICAgICAgIFwKKyAgICAgIFNUUkxDUFlfQ0hFQ0tfRk9SX0RTVFNJWkVfWkVSTyBcCisgICAgICBcCiAgICAgICB3aGlsZSAobSA8IG4tMSAmJiAqc3JjKSB7IG0rKzsgKmRzdCsrID0gKnNyYysrOyB9IFwKICAgICAgIC8qIG0gbm9uLW51bCBieXRlcyBoYXZlIG5vdyBiZWVuIGNvcGllZCwgYW5kIG0gPD0gbi0xLiAqLyBcCiAgICAgICAvKiBDaGVjayBmb3Igb3ZlcmxhcCBhZnRlciBjb3B5aW5nOyBhbGwgbiBieXRlcyBvZiBkc3QgYXJlIHJlbGV2YW50LCAqLyBcCkBAIC01NDQsMTQgKzU5MywyNiBAQAogCiAjaWYgZGVmaW5lZChWR1BWX2FybV9saW51eF9hbmRyb2lkKSB8fCBkZWZpbmVkKFZHUFZfeDg2X2xpbnV4X2FuZHJvaWQpIFwKICAgICB8fCBkZWZpbmVkKFZHUFZfbWlwczMyX2xpbnV4X2FuZHJvaWQpCisgI2RlZmluZSBTVFJMQ1BZX0NIRUNLX0ZPUl9EU1RTSVpFX1pFUk8KICBTVFJMQ1BZKFZHX1pfTElCQ19TT05BTUUsIHN0cmxjcHkpOwogI2VuZGlmCiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKKyAjZGVmaW5lIFNUUkxDUFlfQ0hFQ0tfRk9SX0RTVFNJWkVfWkVSTwogIC8vU1RSTENQWShWR19aX0xJQkNfU09OQU1FLCBzdHJsY3B5KQogIC8vU1RSTENQWShWR19aX0RZTEQsICAgICAgICBzdHJsY3B5KQogIFNUUkxDUFkoVkdfWl9MSUJDX1NPTkFNRSwgc3RybGNweSkKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyAvKiBzcGVjaWFsIGNhc2UgZm9yIG4gPT0gMCB3aGljaCBpcyB1bmRvY3VtZW50ZWQgYnV0IGhlYXZpbHkgdXNlZCAqLworICNkZWZpbmUgU1RSTENQWV9DSEVDS19GT1JfRFNUU0laRV9aRVJPIFwKKyAgICBpZiAobiA9PSAwKSB7IFwKKyAgICAgICB3aGlsZSAoKnNyYykgc3JjKys7IFwKKyAgICAgICByZXR1cm4gc3JjIC0gc3JjX29yaWc7IFwKKyAgICB9CisKKyBTVFJMQ1BZKFZHX1pfTElCQ19TT05BTUUsIHN0cmxjcHkpCisKICNlbmRpZgogCiAKQEAgLTU4NSwxMCArNjQ2LDEzIEBACiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICBTVFJOQ01QKFZHX1pfTElCQ19TT05BTUUsICAgICAgICBzdHJuY21wKQotIyBpZiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfOSB8fCBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfMTAKKyMgaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzkKICAgU1RSTkNNUChsaWJzeXN0ZW1adXBsYXRmb3JtWmRkeWxpYiwgX3BsYXRmb3JtX3N0cm5jbXApCiAjIGVuZGlmCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgU1RSTkNNUChWR19aX0xJQkNfU09OQU1FLCBzdHJuY21wKQorCiAjZW5kaWYKIAogCkBAIC02MjcsNiArNjkxLDkgQEAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAvL1NUUkNBU0VDTVAoVkdfWl9MSUJDX1NPTkFNRSwgc3RyY2FzZWNtcCkKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBTVFJDQVNFQ01QKFZHX1pfTElCQ19TT05BTUUsIHN0cmNhc2VjbXApCisKICNlbmRpZgogCiAKQEAgLTY2OCw2ICs3MzUsOSBAQAogIC8vU1RSTkNBU0VDTVAoVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNhc2VjbXApCiAgLy9TVFJOQ0FTRUNNUChWR19aX0RZTEQsICAgICAgICBzdHJuY2FzZWNtcCkKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBTVFJOQ0FTRUNNUChWR19aX0xJQkNfU09OQU1FLCBzdHJuY2FzZWNtcCkKKwogI2VuZGlmCiAKIApAQCAtNzAyLDYgKzc3Miw4IEBACiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgLy9TVFJDQVNFQ01QX0woVkdfWl9MSUJDX1NPTkFNRSwgc3RyY2FzZWNtcF9sKQogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCiAjZW5kaWYKIAogCkBAIC03MzksNiArODExLDggQEAKICAvL1NUUk5DQVNFQ01QX0woVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNhc2VjbXBfbCkKICAvL1NUUk5DQVNFQ01QX0woVkdfWl9EWUxELCAgICAgICAgc3RybmNhc2VjbXBfbCkKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKwogI2VuZGlmCiAKIApAQCAtNzc4LDEwICs4NTIsMTQgQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIFNUUkNNUChWR19aX0xJQkNfU09OQU1FLCBzdHJjbXApCi0jIGlmIERBUldJTl9WRVJTID09IERBUldJTl8xMF85IHx8IERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAorIyBpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfOQogICBTVFJDTVAobGlic3lzdGVtWnVwbGF0Zm9ybVpkZHlsaWIsIF9wbGF0Zm9ybV9zdHJjbXApCiAjIGVuZGlmCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgU1RSQ01QKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cmNtcCkKKyBTVFJDTVAoVkdfWl9MRF9TT18xLCAgICAgICAgICAgICAgc3RyY21wKQorCiAjZW5kaWYKIAogCkBAIC04MTAsMTIgKzg4OCwxNyBAQAogICBNRU1DSFIoVkdfWl9EWUxELCAgICAgICAgICAgICAgICAgICBtZW1jaHIpCiAgIE1FTUNIUihsaWJzeXN0ZW1adXBsYXRmb3JtWmRkeWxpYiwgX3BsYXRmb3JtX21lbWNocikKICMgZW5kaWYKLSMgaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzEwCisjIGlmIERBUldJTl9WRVJTID49IERBUldJTl8xMF8xMAogICBNRU1DSFIoVkdfWl9EWUxELCAgICAgICAgICAgICAgICAgICBtZW1jaHIpCiAgIC8qIF9wbGF0Zm9ybV9tZW1jaHIkVkFSSUFOVCRHZW5lcmljICovCiAgIE1FTUNIUihsaWJzeXN0ZW1adXBsYXRmb3JtWmRkeWxpYiwgX3BsYXRmb3JtX21lbWNociRWQVJJQU5UJEdlbmVyaWMpCisgIC8qIF9wbGF0Zm9ybV9tZW1jaHIkVkFSSUFOVCRIYXN3ZWxsICovCisgIE1FTUNIUihsaWJzeXN0ZW1adXBsYXRmb3JtWmRkeWxpYiwgX3BsYXRmb3JtX21lbWNociRWQVJJQU5UJEhhc3dlbGwpCiAjIGVuZGlmCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgTUVNQ0hSKFZHX1pfTElCQ19TT05BTUUsIG1lbWNocikKKwogI2VuZGlmCiAKIApAQCAtODQyLDYgKzkyNSw4IEBACiAgLy9NRU1SQ0hSKFZHX1pfTElCQ19TT05BTUUsIG1lbXJjaHIpCiAgLy9NRU1SQ0hSKFZHX1pfRFlMRCwgICAgICAgIG1lbXJjaHIpCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisKICNlbmRpZgogCiAKQEAgLTk1Myw2ICsxMDM4LDEwIEBACiAgTUVNQ1BZKFZHX1pfTElCQ19TT05BTUUsICBtZW1jcHlaRFZBUklBTlRaRHNzZTN4KSAvKiBtZW1jcHkkVkFSSUFOVCRzc2UzeCAqLwogIE1FTUNQWShWR19aX0xJQkNfU09OQU1FLCAgbWVtY3B5WkRWQVJJQU5UWkRzc2U0MikgLyogbWVtY3B5JFZBUklBTlQkc3NlNDIgKi8KIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBNRU1DUFkoVkdfWl9MSUJDX1NPTkFNRSwgIG1lbWNweSkKKyBNRU1DUFkoVkdfWl9MRF9TT18xLCAgICAgIG1lbWNweSkKKwogI2VuZGlmCiAKIApAQCAtMTAwNywxMCArMTA5NiwxNSBAQAogIE1FTUNNUChWR19aX0xEX1NPXzEsICAgICBiY21wKQogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi0jIGlmIERBUldJTl9WRVJTID09IERBUldJTl8xMF85IHx8IERBUldJTl9WRVJTID09IERBUldJTl8xMF8xMAorIyBpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfOQogICBNRU1DTVAobGlic3lzdGVtWnVwbGF0Zm9ybVpkZHlsaWIsIF9wbGF0Zm9ybV9tZW1jbXApCiAjIGVuZGlmCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgTUVNQ01QKFZHX1pfTElCQ19TT05BTUUsIG1lbWNtcCkKKyBNRU1DTVAoVkdfWl9MSUJDX1NPTkFNRSwgYmNtcCkKKyBNRU1DTVAoVkdfWl9MRF9TT18xLCAgICAgbWVtY21wKQorCiAjZW5kaWYKIAogCkBAIC0xMDUzLDYgKzExNDcsOSBAQAogIC8vU1RQQ1BZKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cGNweSkKICAvL1NUUENQWShWR19aX0RZTEQsICAgICAgICAgICAgICAgICBzdHBjcHkpCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgU1RQQ1BZKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cGNweSkKKwogI2VuZGlmCiAKIApAQCAtMTEzMSw2ICsxMjI4LDkgQEAKICAvL01FTVNFVChWR19aX0RZTEQsICAgICAgICBtZW1zZXQpCiAgTUVNU0VUKFZHX1pfTElCQ19TT05BTUUsIG1lbXNldCkKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBNRU1TRVQoVkdfWl9MSUJDX1NPTkFNRSwgbWVtc2V0KQorCiAjZW5kaWYKIAogCkBAIC0xMTQxLDYgKzEyNDEsMTAgQEAKICNpZiBkZWZpbmVkKFZHT19saW51eCkKICBNRU1NT1ZFKFZHX1pfTElCQ19TT05BTUUsIG1lbW1vdmUpCiAgTUVNTU9WRShWR19aX0xJQkNfU09OQU1FLCBfX0dJX21lbW1vdmUpCisgLyogU2VlIGJ1ZyAjMzQ5ODI4IE92ZXJyaWRlIGZvciBsZDY0LnNvLjEgbGlrZSBtZW1jcHksIGJlY2F1c2UgZm9yIHNvbWUKKyAgICBhcmNoZXMgTUVNQ1BZX09LX0ZPUl9GT1JXQVJEX01FTU1PVkUgaXMgc2V0LCB3aGljaCBtaWdodCBjYXVzZSBtZW1tb3ZlCisgICAgdG8gY2FsbCBtZW1jcHkuICAqLworIE1FTU1PVkUoVkdfWl9MRDY0X1NPXzEsIG1lbW1vdmUpCiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICMgaWYgREFSV0lOX1ZFUlMgPD0gREFSV0lOXzEwXzYKQEAgLTExNDgsMTAgKzEyNTIsMTUgQEAKICMgZW5kaWYKICBNRU1NT1ZFKFZHX1pfTElCQ19TT05BTUUsICBtZW1tb3ZlWkRWQVJJQU5UWkRzc2UzeCkgLyogbWVtbW92ZSRWQVJJQU5UJHNzZTN4ICovCiAgTUVNTU9WRShWR19aX0xJQkNfU09OQU1FLCAgbWVtbW92ZVpEVkFSSUFOVFpEc3NlNDIpIC8qIG1lbW1vdmUkVkFSSUFOVCRzc2U0MiAqLwotIyBpZiBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfOSB8fCBEQVJXSU5fVkVSUyA9PSBEQVJXSU5fMTBfMTAKKyMgaWYgREFSV0lOX1ZFUlMgPj0gREFSV0lOXzEwXzkKICAgLyogX3BsYXRmb3JtX21lbW1vdmUkVkFSSUFOVCRJdnlicmlkZ2UgKi8KICAgTUVNTU9WRShsaWJzeXN0ZW1adXBsYXRmb3JtWmRkeWxpYiwgWnVwbGF0Zm9ybVp1bWVtbW92ZVpEVkFSSUFOVFpESXZ5YnJpZGdlKQogIyBlbmRpZgorCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIE1FTU1PVkUoVkdfWl9MSUJDX1NPTkFNRSwgbWVtbW92ZSkKKyBNRU1NT1ZFKFZHX1pfTERfU09fMSwgICAgIG1lbW1vdmUpCisKICNlbmRpZgogCiAKQEAgLTExODQsNiArMTI5Myw5IEBACiAgLy9CQ09QWShWR19aX0xJQkNfU09OQU1FLCBiY29weSkKICAvL0JDT1BZKFZHX1pfRFlMRCwgICAgICAgIGJjb3B5KQogCisjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCisgQkNPUFkoVkdfWl9MSUJDX1NPTkFNRSwgYmNvcHkpCisKICNlbmRpZgogCiAKQEAgLTEyMTYsNyArMTMyOCw3IEBACiAgICAgICBWQUxHUklORF9QUklOVEZfQkFDS1RSQUNFKCBcCiAgICAgICAgICAiKioqIG1lbW1vdmVfY2hrOiBidWZmZXIgb3ZlcmZsb3cgZGV0ZWN0ZWQgKioqOiAiIFwKICAgICAgICAgICJwcm9ncmFtIHRlcm1pbmF0ZWRcbiIpOyBcCi0gICAgIG15X2V4aXQoMTI3KTsgXAorICAgICBteV9leGl0KDEpOyBcCiAgICAgIC8qTk9UUkVBQ0hFRCovIFwKICAgICAgcmV0dXJuIE5VTEw7IFwKICAgIH0KQEAgLTEyMjYsNiArMTMzOCw4IEBACiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKwogI2VuZGlmCiAKIApAQCAtMTI1Miw2ICsxMzY2LDggQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCiAjZW5kaWYKIAogCkBAIC0xMjc4LDYgKzEzOTQsOCBAQAogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisKICNlbmRpZgogCiAKQEAgLTEzMDIsNyArMTQyMCw3IEBACiAgICAgICBWQUxHUklORF9QUklOVEZfQkFDS1RSQUNFKCBcCiAgICAgICAgICAiKioqIHN0cmNweV9jaGs6IGJ1ZmZlciBvdmVyZmxvdyBkZXRlY3RlZCAqKio6ICIgXAogICAgICAgICAgInByb2dyYW0gdGVybWluYXRlZFxuIik7IFwKLSAgICAgbXlfZXhpdCgxMjcpOyBcCisgICAgIG15X2V4aXQoMSk7IFwKICAgICAgLypOT1RSRUFDSEVEKi8gXAogICAgICByZXR1cm4gTlVMTDsgXAogICAgfQpAQCAtMTMxMiw2ICsxNDMwLDggQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCiAjZW5kaWYKIAogCkBAIC0xMzM1LDcgKzE0NTUsNyBAQAogICAgICAgVkFMR1JJTkRfUFJJTlRGX0JBQ0tUUkFDRSggXAogICAgICAgICAgIioqKiBzdHBjcHlfY2hrOiBidWZmZXIgb3ZlcmZsb3cgZGV0ZWN0ZWQgKioqOiAiIFwKICAgICAgICAgICJwcm9ncmFtIHRlcm1pbmF0ZWRcbiIpOyBcCi0gICAgIG15X2V4aXQoMTI3KTsgXAorICAgICBteV9leGl0KDEpOyBcCiAgICAgIC8qTk9UUkVBQ0hFRCovIFwKICAgICAgcmV0dXJuIE5VTEw7IFwKICAgIH0KQEAgLTEzNDUsNiArMTQ2NSw4IEBACiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKwogI2VuZGlmCiAKIApAQCAtMTM5MSw2ICsxNTEzLDggQEAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAvL0dMSUJDMjVfTUVNUENQWShWR19aX0xJQkNfU09OQU1FLCBtZW1wY3B5KQogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorCiAjZW5kaWYKIAogCkBAIC0xNDMxLDcgKzE1NTUsNyBAQAogICAgICAgVkFMR1JJTkRfUFJJTlRGX0JBQ0tUUkFDRSggXAogICAgICAgICAgIioqKiBtZW1jcHlfY2hrOiBidWZmZXIgb3ZlcmZsb3cgZGV0ZWN0ZWQgKioqOiAiIFwKICAgICAgICAgICJwcm9ncmFtIHRlcm1pbmF0ZWRcbiIpOyBcCi0gICAgIG15X2V4aXQoMTI3KTsgXAorICAgICBteV9leGl0KDEpOyBcCiAgICAgIC8qTk9UUkVBQ0hFRCovIFwKICAgICAgcmV0dXJuIE5VTEw7IFwKICAgIH0KQEAgLTE0NDEsNiArMTU2NSw4IEBACiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKwogI2VuZGlmCiAKIApAQCAtMTQ5MCw2ICsxNjE2LDkgQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogCisjZWxpZiBkZWZpbmVkKFZHT19zb2xhcmlzKQorIFNUUlNUUihWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBzdHJzdHIpCisKICNlbmRpZgogCiAKQEAgLTE1MzIsNiArMTY2MSw5IEBACiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBTVFJQQlJLKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cnBicmspCisKICNlbmRpZgogCiAKQEAgLTE1NzUsNiArMTcwNyw5IEBACiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBTVFJDU1BOKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cmNzcG4pCisKICNlbmRpZgogCiAKQEAgLTE2MTksNiArMTc1NCw5IEBACiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKIAorI2VsaWYgZGVmaW5lZChWR09fc29sYXJpcykKKyBTVFJTUE4oVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgICAgc3Ryc3BuKQorCiAjZW5kaWYKIAogCkBAIC0xNjcyLDYgKzE4MTAsOSBAQAogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgIFNUUkNBU0VTVFIoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBzdHJjYXNlc3RyKQorCiAjZW5kaWYKIAogCkBAIC0xNjk4LDYgKzE4MzksOSBAQAogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgV0NTTEVOKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHdjc2xlbikKKwogI2VuZGlmCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB3Y3NjbXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9zb2xhcmlzL01ha2VmaWxlLmFtIGIvc29sYXJpcy9NYWtlZmlsZS5hbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTY2Mzc5Ci0tLSAvZGV2L251bGwKKysrIGIvc29sYXJpcy9NYWtlZmlsZS5hbQpAQCAtMCwwICsxLDkgQEAKKyMgV2UgbmVlZCB0byBsaXN0IGFsbCBmaWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB0aGV5IGFyZSBpbmNsdWRlZCBpbgorIyB0aGUgbWFrZSBkaXN0IHRhcmdldC4KKworZGlzdF9ub2luc3RfU0NSSVBUUyA9IGJ1aWxkX3NvbGFyaXNfcGFja2FnZQorCQkKK0VYVFJBX0RJU1QgPSBcCisJZ2RiLXNvbC10aHJlYWQucGF0Y2ggXAorCXZhbGdyaW5kLnA1bSBcCisJdmdwcmVsb2FkLXNvbGFyaXMubWFwZmlsZQpkaWZmIC0tZ2l0IGEvc29sYXJpcy9idWlsZF9zb2xhcmlzX3BhY2thZ2UgYi9zb2xhcmlzL2J1aWxkX3NvbGFyaXNfcGFja2FnZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ODM5NmM0Ci0tLSAvZGV2L251bGwKKysrIGIvc29sYXJpcy9idWlsZF9zb2xhcmlzX3BhY2thZ2UKQEAgLTAsMCArMSwyMDUgQEAKKyMhL3Vzci9iaW4va3NoCisjCisjIEJ1aWxkcyBhIFNvbGFyaXMgSVBTIHBhY2thZ2UgY2FsbGVkICJ2YWxncmluZCIgZnJvbSB0aGUgc291cmNlCisjIGRpcmVjdG9yeS4gVGhlIFZhbGdyaW5kIGFuZCBWRVggcmV2aXNpb25zIGFyZSB0YWtlbiBmcm9tIHRoYXQKKyMgc291cmNlIGRpcmVjdG9yeSBhbmQgd3JpdHRlbiB0byBzb2xhcmlzL3ZhbGdyaW5kLnA1bSBJUFMgbWFuaWZlc3QuCisjCisjIFJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgcGFja2FnZXMgdG8gYmUgaW5zdGFsbGVkIG9uIFNvbGFyaXMgMTE6CisjIC0gZGF0YS94bWwtY29tbW9uCQkoaW5zdGFsbCBmaXJzdCBiZWZvcmUgYW55IGRvY2Jvb2sgb25lcyEpCisjIC0gZGF0YS9kb2Nib29rL2RvY2Jvb2stc3R5bGUteHNsCisjIC0gZGF0YS9kb2Nib29rL2RvY2Jvb2stZHRkcworIyAtIGRldmVsb3Blci9idWlsZC9hdXRvY29uZgorIyAtIGRldmVsb3Blci9idWlsZC9hdXRvbWFrZS0xMTEKKyMgLSBkZXZlbG9wZXIvZGVidWcvZ2RiCisjIC0gZGV2ZWxvcGVyL2dudS1iaW51dGlscworIyAtIGRldmVsb3Blci92ZXJzaW9uaW5nL21lcmN1cmlhbAorIyAtIHN5c3RlbS9oZWFkZXIKKyMgLSBhbmQgdGhlIGxhdGVzdCBkZXZlbG9wZXIvZ2NjIHBhY2thZ2UuCisjCisjIFJlcXVpcmVzIGEgcHJlLWVzdGFibGlzaGVkIElQUyByZXBvc2l0b3J5LgorIyBGb3IgZXhhbXBsZSB0byBjcmVhdGUgYSBmaWxlLWJhc2VkIHJlcG9zaXRvcnksIGRvOgorIyAtIHBrZ3JlcG8gY3JlYXRlICRyZXBvX3VyaQorIyAtIHBrZ3JlcG8gc2V0IC1zICRyZXBvX3VyaSBwdWJsaXNoZXIvcHJlZml4PXZhbGdyaW5kCisjCisKK1RNUERJUj0vdmFyL3RtcC92YWxncmluZC1idWlsZAorU1JDRElSPSRUTVBESVIvc291cmNlcworSU5TVEFMTERJUj0kVE1QRElSL2luc3RhbGwKK0lQU19NQU5JRkVTVD1zb2xhcmlzL3ZhbGdyaW5kLnA1bQorCit1c2FnZSgpIHsKKyAgICBlY2hvICJVc2FnZToiCisgICAgZWNobyAiYnVpbGRfc29sYXJpc19wYWNrYWdlIC1wIHNvdXJjZV9kaXIgLXMgcmVwb191cmkgWy1yIGxpbnRfcmVwb191cmldIgorICAgIGVjaG8gIlx0LXAgc291cmNlX2RpciBjb250YWlucyB3b3JraW5nIGNvcHkgb2YgdGhlIFZhbGdyaW5kIHNvdXJjZXMiCisgICAgZWNobyAiXHQtcyByZXBvX3VyaSBwdWJsaXNoZXMgdG8gdGhlIHJlcG9zaXRvcnkgbG9jYXRlZCBhdCB0aGUgZ2l2ZW4gVVJJIgorICAgIGVjaG8gIlx0ICAgICAgICAgICAgb3IgZmlsZSBzeXN0ZW0gcGF0aCIKKyAgICBlY2hvICJcdC1yIGxpbnRfcmVwb191cmkgbG9jYXRpb24gb2YgbGludCByZWZlcmVuY2UgcmVwb3NpdG9yeSIKK30KKworZmFpbCgpIHsKKyAgICBtc2c9JDEKKworICAgIGVjaG8gIlxuJG1zZyIKKyAgICBlY2hvICJBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGNvdWxkIGJlIGZvdW5kIGluIGRpcmVjdG9yeSAkVE1QRElSLiIKKyAgICBleGl0IDEKK30KKworcmVtb3ZlX2RpcnMoKSB7CisgICAgcm0gLXJmICRUTVBESVIKK30KKworY3JlYXRlX2RpcnMoKSB7CisgICAgbWtkaXIgLXAgJFRNUERJUgorICAgICgoICQ/ICE9IDAgKSkgJiYgZmFpbCAiRmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJFRNUERJUi4iCisKKyAgICBta2RpciAtcCAkSU5TVEFMTERJUgorICAgICgoICQ/ICE9IDAgKSkgJiYgZmFpbCAiRmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJElOU1RBTExESVIuIgorfQorCitleHBvcnRfc291cmNlcygpIHsKKyAgICBwcmludGYgIkV4cG9ydGluZyBzb3VyY2VzLi4uICIKKyAgICBzdm4gZXhwb3J0IC0tcXVpZXQgLS1pZ25vcmUtZXh0ZXJuYWxzICRzb3VyY2VfZGlyZWN0b3J5ICRTUkNESVIgXAorICAgICAgICAyPiAkVE1QRElSL3N2bi1leHBvcnQtdmFsZ3JpbmQubG9nLnN0ZGVycgorICAgICgoICQ/ICE9IDAgKSkgJiYgZmFpbCAiRmFpbGVkIHRvIGV4cG9ydCB3b3JraW5nIGNvcHkgZnJvbSAkc291cmNlX2RpcmVjdG9yeS4iCisgICAgc3ZuIGV4cG9ydCAtLXF1aWV0IC0taWdub3JlLWV4dGVybmFscyAkc291cmNlX2RpcmVjdG9yeS9WRVggJFNSQ0RJUi9WRVggXAorICAgICAgICAyPiAkVE1QRElSL3N2bi1leHBvcnQtdmV4LmxvZy5zdGRlcnIKKyAgICAoKCAkPyAhPSAwICkpICYmIGZhaWwgIkZhaWxlZCB0byBleHBvcnQgd29ya2luZyBjb3B5IGZyb20gJHNvdXJjZV9kaXJlY3RvcnkvVkVYLiIKKyAgICBwcmludGYgImRvbmUuXG4iCit9CisKK21vZGlmeV9pcHNfbWFuaWZlc3QoKSB7CisgICAgdmFsZ3JpbmRfcmV2PSQoIHN2biBpbmZvICRzb3VyY2VfZGlyZWN0b3J5IHwgZ3JlcCBSZXZpc2lvbiB8IHNlZCAtZSAncy9SZXZpc2lvbjogLy8nICkKKyAgICB2ZXhfcmV2PSQoIHN2biBpbmZvICRzb3VyY2VfZGlyZWN0b3J5L1ZFWCB8IGdyZXAgUmV2aXNpb24gfCBzZWQgLWUgJ3MvUmV2aXNpb246IC8vJyApCisKKyAgICBbWyAteiAkdmFsZ3JpbmRfcmV2IF1dICYmIGZhaWwgIkZhaWxlZCB0byBmaW5kIFZhbGdyaW5kIHJldmlzaW9uLiIKKyAgICBbWyAteiAkdmV4X3JldiBdXSAmJiBmYWlsICJGYWlsZWQgdG8gZmluZCBWRVggcmV2aXNpb24uIgorCisgICAgZWNobyAiVmFsZ3JpbmQgcmV2aXNpb246ICR2YWxncmluZF9yZXYsIFZFWCByZXZpc2lvbiAkdmV4X3Jldi4iCisKKyAgICBzZWQgLWkgLWUgInMvVlZWVlYtWFhYWC8ke3ZhbGdyaW5kX3Jldn0tJHt2ZXhfcmV2fS8iICRTUkNESVIvJElQU19NQU5JRkVTVAorfQorCitydW5fYXV0b2dlbigpIHsKKyAgICBwcmludGYgIkNyZWF0aW5nIGF1dG90b29scyBzdXBwb3J0IGZpbGVzLi4uICIKKyAgICAuL2F1dG9nZW4uc2ggPiAkVE1QRElSL2F1dG9nZW4ubG9nLnN0ZG91dCAyPiAkVE1QRElSL2F1dG9nZW4ubG9nLnN0ZGVycgorICAgICgoICQ/ICE9IDAgKSkgJiYgZmFpbCAiRmFpbGVkIHRvIGdlbmVyYXRlIGF1dG90b29scyBzdXBwb3J0IGZpbGVzLiIKKyAgICBwcmludGYgImRvbmUuXG4iCit9CisKK3J1bl9jb25maWd1cmUoKSB7CisgICAgcHJpbnRmICJSdW5uaW5nIGNvbmZpZ3VyZS4uLiAiCisgICAgLi9jb25maWd1cmUgQ0M9J2djYyAtbTY0JyBDWFg9J2crKyAtbTY0JyAtLXByZWZpeD0vdXNyID4gJFRNUERJUi9jb25maWd1cmUubG9nCisgICAgKCggJD8gIT0gMCApKSAmJiBmYWlsICJGYWlsZWQgdG8gcnVuIGNvbmZpZ3VyZS4iCisgICAgcHJpbnRmICJkb25lLlxuIgorfQorCitydW5fbWFrZV9kb2NzKCkgeworICAgcHJpbnRmICJNYWtpbmcgZG9jcy4uLiAiCisgICBtYWtlIC0tZGlyZWN0b3J5PWRvY3MgaHRtbC1kb2NzID4gJFRNUERJUi9tYWtlLWRvY3MubG9nLnN0ZG91dCAyPiAkVE1QRElSL21ha2UtZG9jcy5sb2cuc3RkZXJyCisgICAoKCAkPyAhPSAwICkpICYmIGZhaWwgIkZhaWxlZCB0byBtYWtlIGh0bWwtZG9jcy4iCisgICBwcmludGYgImRvbmUuXG4iCit9CisKK3J1bl9tYWtlX21hbl9wYWdlcygpIHsKKyAgIHByaW50ZiAiTWFraW5nIG1hbiBwYWdlcy4uLiAiCisgICBtYWtlIC0tZGlyZWN0b3J5PWRvY3MgbWFuLXBhZ2VzID4gJFRNUERJUi9tYWtlLW1hbi1wYWdlcy5sb2cuc3Rkb3V0IDI+ICRUTVBESVIvbWFrZS1tYW4tcGFnZXMubG9nLnN0ZGVycgorICAgKCggJD8gIT0gMCApKSAmJiBmYWlsICJGYWlsZWQgdG8gbWFrZSBtYW4tcGFnZXMuIgorICAgcHJpbnRmICJkb25lLlxuIgorfQorCitydW5fbWFrZSgpIHsKKyAgICBwcmludGYgIlJ1bm5pbmcgbWFrZS4uLiAiCisgICAgbWFrZSAtLXF1aWV0ID4gJFRNUERJUi9tYWtlLmxvZworICAgICgoICQ/ICE9IDAgKSkgJiYgZmFpbCAiRmFpbGVkIHRvIHJ1biBtYWtlLiIKKyAgICBwcmludGYgImRvbmUuXG4iCit9CisKK3J1bl9tYWtlX2luc3RhbGwoKSB7CisgICAgcHJpbnRmICJSdW5uaW5nICdtYWtlIGluc3RhbGwnLi4uICIKKyAgICBtYWtlIC0tcXVpZXQgaW5zdGFsbCBERVNURElSPSRJTlNUQUxMRElSID4gJFRNUERJUi9tYWtlLWluc3RhbGwubG9nCisgICAgKCggJD8gIT0gMCApKSAmJiBmYWlsICJGYWlsZWQgdG8gcnVuICdtYWtlIGluc3RhbGwnLiIKKworICAgIGNwIEFVVEhPUlMgQ09QWUlORyogTkVXUyBORVdTLm9sZCBSRUFETUUqICRJTlNUQUxMRElSL3Vzci9zaGFyZS9kb2MvdmFsZ3JpbmQKKyAgICAoKCAkPyAhPSAwICkpICYmIGZhaWwgIkZhaWxlZCB0byBjb3B5IGFkZGl0aW9uYWwgZmlsZXMgdG8gJElOU1RBTExESVIuIgorCisgICAgcHJpbnRmICJkb25lLlxuIgorfQorCitydW5fcGtnbGludCgpIHsKKyAgICBwcmludGYgIlJ1bm5pbmcgcGtnbGludC4uLiAiCisgICAgcGtnbGludCAtYyAkVE1QRElSL2xpbnQtY2FjaGUgLXIgJGxpbnRfcmVwb191cmkgJFNSQ0RJUi8kSVBTX01BTklGRVNUID4gJFRNUERJUi9wa2dsaW50LmxvZworICAgICgoICQ/ICE9IDAgKSkgJiYgZmFpbCAicGtnbGludCBmYWlsZWQuIgorICAgIHByaW50ZiAiZG9uZS5cbiIKK30KKworcHVibGlzaF9wYWNrYWdlKCkgeworICAgIHByaW50ZiAiUHVibGlzaGluZyBwYWNrYWdlLi4uICIKKyAgICBwa2dzZW5kIHB1Ymxpc2ggLXMgJHJlcG9fdXJpIC1kICRJTlNUQUxMRElSICRTUkNESVIvc29sYXJpcy92YWxncmluZC5wNW0gPiAkVE1QRElSL3BrZ3NlbmQubG9nCisgICAgKCggJD8gIT0gMCApKSAmJiBmYWlsICJGYWlsZWQgdG8gcHVibGlzaCB0aGUgcGFja2FnZS4iCisgICAgcHJpbnRmICJkb25lLlxuIgorfQorCit3aGlsZSBnZXRvcHRzICJwOnI6czoiIGFyZ3M7IGRvCisgICAgY2FzZSAkYXJncyBpbgorICAgIHApCisgICAgICAgIHNvdXJjZV9kaXJlY3Rvcnk9JE9QVEFSRworICAgICAgICA7OworICAgIHIpCisgICAgICAgIGxpbnRfcmVwb191cmk9JE9QVEFSRworICAgICAgICA7OworICAgIHMpCisgICAgICAgIHJlcG9fdXJpPSRPUFRBUkcKKyAgICAgICAgOzsKKyAgICAqKQorICAgICAgICB1c2FnZQorICAgICAgICBleGl0IDEKKyAgICAgICAgOzsKKyAgICBlc2FjCitkb25lCisKK2lmIFtbIC16ICRzb3VyY2VfZGlyZWN0b3J5IF1dOyB0aGVuCisgICAgZWNobyAiTm8gc291cmNlIGRpcmVjdG9yeSBzcGVjaWZpZWQuXG4iCisgICAgdXNhZ2UKKyAgICBleGl0IDEKK2ZpCisKK2lmIFtbIC16ICRyZXBvX3VyaSBdXTsgdGhlbgorICAgIGVjaG8gIk5vIHJlcG9fdXJpIHNwZWNpZmllZC5cbiIKKyAgICB1c2FnZQorICAgIGV4aXQgMQorZmkKKworIyBEZXRlcm1pbmUgdGhlIGxpbnQgcmVwb191cmkgdG8gdXNlIGZyb20gdGhlIGN1cnJlbnQgJ3NvbGFyaXMnIG9uZQorIyBpZiBub3Qgc3BlY2lmaWVkIGV4cGxpY2l0bHkuCitpZiBbWyAteiAkbGludF9yZXBvX3VyaSBdXTsgdGhlbgorICAgIHB1Ymxpc2hlcj0kKCBwa2cgcHVibGlzaGVyIHwgZ3JlcCBzb2xhcmlzIHwgdHIgLXMgJyAnICkKKyAgICBpZiBbWyAkcHVibGlzaGVyID09ICpzdGlja3kqIF1dOyB0aGVuCisgICAgICAgIGxpbnRfcmVwb191cmk9JCggZWNobyAiJHB1Ymxpc2hlciIgfCBjdXQgLWQgJyAnIC1mIDYgKQorICAgIGVsc2UKKyAgICAgICAgbGludF9yZXBvX3VyaT0kKCBlY2hvICIkcHVibGlzaGVyIiB8IGN1dCAtZCAnICcgLWYgNSApCisgICAgZmkKKyAgICBbWyAteiAkbGludF9yZXBvX3VyaSBdXSAmJiBmYWlsICJGYWlsZWQgdG8gZGV0ZXJtaW5lIHNvbGFyaXMgSVBTIHB1Ymxpc2hlci4iCisgICAgZWNobyAibGludF9yZXBvX3VyaSBkZXRlcm1pbmVkIGFzICRsaW50X3JlcG9fdXJpIgorZmkKKworCityZW1vdmVfZGlycworY3JlYXRlX2RpcnMKK2NkICRUTVBESVIKKworZXhwb3J0X3NvdXJjZXMKK21vZGlmeV9pcHNfbWFuaWZlc3QKK2NkICRTUkNESVIKK3J1bl9hdXRvZ2VuCitydW5fY29uZmlndXJlCitydW5fbWFrZV9kb2NzCitydW5fbWFrZV9tYW5fcGFnZXMKK3J1bl9tYWtlCitydW5fbWFrZV9pbnN0YWxsCisKK2NkICRUTVBESVIKK3J1bl9wa2dsaW50CitwdWJsaXNoX3BhY2thZ2UKKworcmVtb3ZlX2RpcnMKK3JldHVybiAwCmRpZmYgLS1naXQgYS9zb2xhcmlzL2dkYi1zb2wtdGhyZWFkLnBhdGNoIGIvc29sYXJpcy9nZGItc29sLXRocmVhZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDY0MTVjCi0tLSAvZGV2L251bGwKKysrIGIvc29sYXJpcy9nZGItc29sLXRocmVhZC5wYXRjaApAQCAtMCwwICsxLDEzIEBACistLS0gZ2RiLTcuNi4yL2dkYi9zb2wtdGhyZWFkLmMub3JpZwkyMDEzLTEyLTI2IDIyOjAyOjA4LjkzMDQzNzYxNSArMDAwMAorKysrIGdkYi03LjYuMi9nZGIvc29sLXRocmVhZC5jCTIwMTMtMTItMjYgMjI6MDU6MDYuNTA2OTc3NjExICswMDAwCitAQCAtNTg4LDYgKzU4OCwxMCBAQAorICAgdGRfZXJyX2UgZXJyOworICAgcHRpZF90IHB0aWQ7CisgCisrICAvKiBEb24ndCBhdHRlbXB0IHRvIHVzZSB0aHJlYWRfZGIgZm9yIHJlbW90ZSB0YXJnZXRzLiAgKi8KKysgIGlmICghKHRhcmdldF9jYW5fcnVuICgmY3VycmVudF90YXJnZXQpIHx8IGNvcmVfYmZkKSkKKysgICAgcmV0dXJuOworKworICAgLyogRG8gbm90aGluZyBpZiB3ZSBjb3VsZG4ndCBsb2FkIGxpYnRocmVhZF9kYi5zby4xLiAgKi8KKyAgIGlmIChwX3RkX3RhX25ldyA9PSBOVUxMKQorICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9zb2xhcmlzL3ZhbGdyaW5kLnA1bSBiL3NvbGFyaXMvdmFsZ3JpbmQucDVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1YzhmYzAKLS0tIC9kZXYvbnVsbAorKysgYi9zb2xhcmlzL3ZhbGdyaW5kLnA1bQpAQCAtMCwwICsxLDE1MyBAQAorc2V0IG5hbWU9cGtnLmZtcmkgdmFsdWU9ZGV2ZWxvcGVyL2RlYnVnL3ZhbGdyaW5kQDMuMTEuMCxWVlZWVi1YWFhYCitzZXQgbmFtZT1wa2cuZGVzY3JpcHRpb24gdmFsdWU9InZhbGdyaW5kOiBpbnN0cnVtZW50YXRpb24gZnJhbWV3b3JrIGFuZCB0b29scyB0byBkZXRlY3QgbWVtb3J5IGFuZCB0aHJlYWRpbmcgcHJvYmxlbXMiCitzZXQgbmFtZT1wa2cuc3VtbWFyeSB2YWx1ZT0iVmFsZ3JpbmQgaXMgYW4gYXdhcmQtd2lubmluZyBpbnN0cnVtZW50YXRpb24gZnJhbWV3b3JrIGZvciBidWlsZGluZyBkeW5hbWljIGFuYWx5c2lzIHRvb2xzLiBUaGVyZSBhcmUgVmFsZ3JpbmQgdG9vbHMgdGhhdCBjYW4gYXV0b21hdGljYWxseSBkZXRlY3QgbWFueSBtZW1vcnkgbWFuYWdlbWVudCBhbmQgdGhyZWFkaW5nIGJ1Z3MsIGFuZCBwcm9maWxlIHlvdXIgcHJvZ3JhbXMgaW4gZGV0YWlsLiBZb3UgY2FuIGFsc28gdXNlIFZhbGdyaW5kIHRvIGJ1aWxkIG5ldyB0b29scy4gQ3VycmVudGx5IHg4NiAoMzItYml0KSBhbmQgYW1kNjQgKDY0LWJpdCkgcGxhdGZvcm1zIGFyZSBzdXBwb3J0ZWQuIgorc2V0IG5hbWU9dmFyaWFudC5hcmNoIHZhbHVlPWkzODYKK3NldCBuYW1lPWluZm8uY2xhc3NpZmljYXRpb24gdmFsdWU9Im9yZy5vcGVuc29sYXJpcy5jYXRlZ29yeS4yMDA4OkRldmVsb3BtZW50L1N5c3RlbSIKK3NldCBuYW1lPWluZm8udXBzdHJlYW0tdXJsIHZhbHVlPWh0dHBzOi8vYml0YnVja2V0Lm9yZy9pcmFpc3IvdmFsZ3JpbmQtc29sYXJpcworc2V0IG5hbWU9aW5mby5zb3VyY2UtdXJsIHZhbHVlPWh0dHA6Ly92YWxncmluZC5vcmcvCisKKyMgQ29udGVudHM6CitkaXIgIHBhdGg9dXNyL2JpbiAgICAgICAgICAgICAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi9jYWxsZ3JpbmRfYW5ub3RhdGUgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi9jYWxsZ3JpbmRfY29udHJvbCAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi9jZ19hbm5vdGF0ZSAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi9jZ19kaWZmICAgICAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi9jZ19tZXJnZSAgICAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi9tc19wcmludCAgICAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi92YWxncmluZCAgICAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi92YWxncmluZC1kaS1zZXJ2ZXIgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi92YWxncmluZC1saXN0ZW5lciAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL2Jpbi92Z2RiICAgICAgICAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CisKK2RpciAgcGF0aD11c3IvaW5jbHVkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitkaXIgIHBhdGg9dXNyL2luY2x1ZGUvdmFsZ3JpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9pbmNsdWRlL3ZhbGdyaW5kL2NhbGxncmluZC5oICAgICAgICAgICAgICAgICBvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3IvaW5jbHVkZS92YWxncmluZC9kcmQuaCAgICAgICAgICAgICAgICAgICAgICAgb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL2luY2x1ZGUvdmFsZ3JpbmQvbWVtY2hlY2suaCAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9pbmNsdWRlL3ZhbGdyaW5kL3ZhbGdyaW5kLmggICAgICAgICAgICAgICAgICBvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKKworZGlyICBwYXRoPXVzci9saWIvdmFsZ3JpbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvMzJiaXQtY29yZS12YWxncmluZC1zMS54bWwgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvMzJiaXQtY29yZS12YWxncmluZC1zMi54bWwgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvMzJiaXQtY29yZS54bWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvMzJiaXQtc3NlLXZhbGdyaW5kLXMxLnhtbCAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvMzJiaXQtc3NlLXZhbGdyaW5kLXMyLnhtbCAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvMzJiaXQtc3NlLnhtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtYXZ4LXZhbGdyaW5kLXMxLnhtbCAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtYXZ4LXZhbGdyaW5kLXMyLnhtbCAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtYXZ4LnhtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtY29yZS12YWxncmluZC1zMS54bWwgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtY29yZS12YWxncmluZC1zMi54bWwgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtY29yZS54bWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtc3NlLXZhbGdyaW5kLXMxLnhtbCAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtc3NlLXZhbGdyaW5kLXMyLnhtbCAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvNjRiaXQtc3NlLnhtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvYW1kNjQtYXZ4LWNvcmVzc2UtdmFsZ3JpbmQueG1sICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvYW1kNjQtYXZ4LWNvcmVzc2UueG1sICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvYW1kNjQtY29yZXNzZS12YWxncmluZC54bWwgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvY2FjaGVncmluZC1hbWQ2NC1zb2xhcmlzICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvY2FjaGVncmluZC14ODYtc29sYXJpcyAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvY2FsbGdyaW5kLWFtZDY0LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvY2FsbGdyaW5kLXg4Ni1zb2xhcmlzICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZGVmYXVsdC5zdXBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZHJkLWFtZDY0LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZHJkLXg4Ni1zb2xhcmlzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZXhwLWJidi1hbWQ2NC1zb2xhcmlzICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZXhwLWJidi14ODYtc29sYXJpcyAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZXhwLWRoYXQtYW1kNjQtc29sYXJpcyAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZXhwLWRoYXQteDg2LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZXhwLXNnY2hlY2stYW1kNjQtc29sYXJpcyAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZXhwLXNnY2hlY2steDg2LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZ2V0b2ZmLWFtZDY0LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvZ2V0b2ZmLXg4Ni1zb2xhcmlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvaGVsZ3JpbmQtYW1kNjQtc29sYXJpcyAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvaGVsZ3JpbmQteDg2LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvaTM4Ni1jb3Jlc3NlLXZhbGdyaW5kLnhtbCAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvbGFja2V5LWFtZDY0LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvbGFja2V5LXg4Ni1zb2xhcmlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvbWFzc2lmLWFtZDY0LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvbWFzc2lmLXg4Ni1zb2xhcmlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvbWVtY2hlY2stYW1kNjQtc29sYXJpcyAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvbWVtY2hlY2steDg2LXNvbGFyaXMgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvbm9uZS1hbWQ2NC1zb2xhcmlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvbm9uZS14ODYtc29sYXJpcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX2NvcmUtYW1kNjQtc29sYXJpcy5zbyAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX2NvcmUteDg2LXNvbGFyaXMuc28gICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX2RyZC1hbWQ2NC1zb2xhcmlzLnNvICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX2RyZC14ODYtc29sYXJpcy5zbyAgICAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX2V4cC1kaGF0LWFtZDY0LXNvbGFyaXMuc28gICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX2V4cC1kaGF0LXg4Ni1zb2xhcmlzLnNvICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX2V4cC1zZ2NoZWNrLWFtZDY0LXNvbGFyaXMuc28gICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX2V4cC1zZ2NoZWNrLXg4Ni1zb2xhcmlzLnNvICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21hc3NpZi1hbWQ2NC1zb2xhcmlzLnNvICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21hc3NpZi14ODYtc29sYXJpcy5zbyAgICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0LXNvbGFyaXMuc28gICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9saWIvdmFsZ3JpbmQvdmdwcmVsb2FkX21lbWNoZWNrLXg4Ni1zb2xhcmlzLnNvICAgICAgICAgICAgIG93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorCisjIERvY3VtZW50YXRpb24gZnJvbSBodG1sLWRvY3MKK2RpciAgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kCQkJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA3NTUKK2RpciAgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwJCQkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZGlyICBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9pbWFnZXMJCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL2Jidi1tYW51YWwuaHRtbAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9jZy1tYW51YWwuaHRtbAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9jbC1mb3JtYXQuaHRtbAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9jbC1tYW51YWwuaHRtbAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9kZXNpZ24taW1wbC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL2RoLW1hbnVhbC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL2Rpc3QuYXV0aG9ycy5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL2Rpc3QuaHRtbAkJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvZGlzdC5uZXdzLmh0bWwJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvZGlzdC5uZXdzLm9sZC5odG1sCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvZGlzdC5yZWFkbWUtZGV2ZWxvcGVycy5odG1sCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9kaXN0LnJlYWRtZS1taXNzaW5nLmh0bWwJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9kaXN0LnJlYWRtZS1zb2xhcmlzLmh0bWwJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9kaXN0LnJlYWRtZS5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL2RyZC1tYW51YWwuaHRtbAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9mYXEuaHRtbAkJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvRkFRLmh0bWwgIAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9oZy1tYW51YWwuaHRtbAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9pbmRleC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL2xpY2Vuc2UuZ2ZkbC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL2xpY2Vuc2UuZ3BsLmh0bWwJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvbGljZW5zZXMuaHRtbAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9say1tYW51YWwuaHRtbAkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9tYW51YWwtY29yZS1hZHYuaHRtbAkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL21hbnVhbC1jb3JlLmh0bWwJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvbWFudWFsLWludHJvLmh0bWwJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvbWFudWFsLXdyaXRpbmctdG9vbHMuaHRtbAkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL21hbnVhbC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL21jLW1hbnVhbC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL21zLW1hbnVhbC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL25sLW1hbnVhbC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL3F1aWNrLXN0YXJ0Lmh0bWwJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvUXVpY2tTdGFydC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL3NnLW1hbnVhbC5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL3RlY2gtZG9jcy5odG1sCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL3ZnX2Jhc2ljLmNzcwkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9pbWFnZXMvaG9tZS5wbmcJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL2h0bWwvaW1hZ2VzL25leHQucG5nCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9odG1sL2ltYWdlcy9wcmV2LnBuZwkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvaHRtbC9pbWFnZXMvdXAucG5nCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9BVVRIT1JTCQkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvQ09QWUlORwkJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL0NPUFlJTkcuRE9DUwkJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL05FV1MJCQkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvTkVXUy5vbGQJCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9SRUFETUUJCQkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvUkVBRE1FX0RFVkVMT1BFUlMJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvZG9jL3ZhbGdyaW5kL1JFQURNRV9ERVZFTE9QRVJTX3Byb2Nlc3NlcwkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL2RvYy92YWxncmluZC9SRUFETUVfTUlTU0lOR19TWVNDQUxMX09SX0lPQ1RMCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9kb2MvdmFsZ3JpbmQvUkVBRE1FLnNvbGFyaXMJCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CisKKyMgTWFuIHBhZ2VzCitkaXIgIHBhdGg9dXNyL3NoYXJlL21hbgkJCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNzU1CitkaXIgIHBhdGg9dXNyL3NoYXJlL21hbi9tYW4xCQkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDc1NQorZmlsZSBwYXRoPXVzci9zaGFyZS9tYW4vbWFuMS9jYWxsZ3JpbmRfYW5ub3RhdGUuMQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvbWFuL21hbjEvY2FsbGdyaW5kX2NvbnRyb2wuMQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvbWFuL21hbjEvY2dfYW5ub3RhdGUuMQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL21hbi9tYW4xL2NnX2RpZmYuMQkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9tYW4vbWFuMS9jZ19tZXJnZS4xCQkJb3duZXI9cm9vdCBncm91cD1iaW4gbW9kZT0wNjQ0CitmaWxlIHBhdGg9dXNyL3NoYXJlL21hbi9tYW4xL21zX3ByaW50LjEJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvbWFuL21hbjEvdmFsZ3JpbmQtbGlzdGVuZXIuMQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKK2ZpbGUgcGF0aD11c3Ivc2hhcmUvbWFuL21hbjEvdmFsZ3JpbmQuMQkJCW93bmVyPXJvb3QgZ3JvdXA9YmluIG1vZGU9MDY0NAorZmlsZSBwYXRoPXVzci9zaGFyZS9tYW4vbWFuMS92Z2RiLjEJCQlvd25lcj1yb290IGdyb3VwPWJpbiBtb2RlPTA2NDQKZGlmZiAtLWdpdCBhL3NvbGFyaXMvdmdwcmVsb2FkLXNvbGFyaXMubWFwZmlsZSBiL3NvbGFyaXMvdmdwcmVsb2FkLXNvbGFyaXMubWFwZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTJhYmMzCi0tLSAvZGV2L251bGwKKysrIGIvc29sYXJpcy92Z3ByZWxvYWQtc29sYXJpcy5tYXBmaWxlCkBAIC0wLDAgKzEsMTkgQEAKKyMgTWFwZmlsZSB1c2VkIGZvciBsaW5raW5nIFZhbGdyaW5kIHByZWxvYWQgbGlicmFyaWVzCisjICh2Z3ByZWxvYWRfY29yZS0qLnNvIGFuZCB2Z3ByZWxvYWRfPHRvb2w+LSouc28pLgorIworIyBMaW5raW5nIFZhbGdyaW5kIHdpdGggJy1zdGQ9Z251OTknIGNhdXNlcyB0aGUgbGluayBlZGl0b3IKKyMgdG8gaW5jbHVkZSBhbHNvIHN5bWJvbHMgd2hpY2ggYWx0ZXIgU29sYXJpcyBsaWJjIGJlaGF2aW91ci4KKyMgVGhpcyBpcyB1bmRlc2lyYWJsZTogaXQgd291bGQgbWVhbiB0aGF0IG5vbiBYUEctYXdhcmUgcHJvZ3JhbQorIyAoY29uZm9ybWluZyBpbXBsaWNpdGx5IHRvIFhQRzMpIHdvdWxkIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuCisjIHJ1biB1bmRlciBWYWxncmluZCwgZHVlIHRvIHByZWxvYWQgbGlicmFyaWVzIGNvbnRhaW5pbmcgc3ltYm9scworIyByZWxldmFudCB0byBYUEc2IChYL09wZW4gUG9ydGFiaWxpdHkgR3VpZGUsIElzc3VlIDYpLgorIworCiskbWFwZmlsZV92ZXJzaW9uIDIKKworU1lNQk9MX1NDT1BFIHsKKwlFTElNSU5BVEU6CisJCV9saWJfdmVyc2lvbjsKKwkJX194cGc0OworCQlfX3hwZzY7Cit9OwpkaWZmIC0tZ2l0IGEvc29sYXJpczExLnN1cHAgYi9zb2xhcmlzMTEuc3VwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDEwOTM2Ci0tLSAvZGV2L251bGwKKysrIGIvc29sYXJpczExLnN1cHAKQEAgLTAsMCArMSw0MyBAQAorIyBUaGlzIGlzIGEgcmVhbCBwcm9ibGVtIGluIHRoZSBTb2xhcmlzIGxpYmMuIEl0IGlzIGNhdXNlZCBieSBhIHJlYWQgcGFzdCB0aGUKKyMgRklMRSBzdHJ1Y3R1cmUuIEl0J3MgYW4gaW50ZW50aW9uYWwgaGFjayB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdHdvIGZpbGUKKyMgc3RydWN0dXJlcywgRklMRSBhbmQgeEZJTEUuCit7CisgICBTb2xhcmlzOnNucHJpbnRmCisgICBNZW1jaGVjazpDb25kCisgICBmdW46Z2V0eGZkYXQKKyAgIC4uLgorICAgZnVuOl9uZG9wcm50CisgICBmdW46c25wcmludGYKK30KKworIyBUaGUgc2FtZSBwcm9ibGVtIGFzIGFib3ZlLgoreworICAgU29sYXJpczp2c25wcmludGYKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIGZ1bjpnZXR4ZmRhdAorICAgLi4uCisgICBmdW46X25kb3BybnQKKyAgIGZ1bjp2c25wcmludGYKK30KKworIyBTb2xhcmlzIGxpYmMgZG9lc24ndCBkZWFsbG9jYXRlIEkvTyBidWZmZXJzIG9uIHByb2dyYW0gZXhpdC4KK3sKKyAgIFNvbGFyaXM6ZmlsZV9idWZmZXJfbWFsbG9jCisgICBNZW1jaGVjazpMZWFrCisgICBmdW46bWFsbG9jCisgICBmdW46X2ZpbmRidWYKKyAgIG9iajovbGliL2xpYmMuc28uMQorICAgb2JqOi9saWIvbGliYy5zby4xCit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIworIyBTb2xhcmlzIGxpYmMgcmVpbml0aWFsaXplcyBtdXRleCB1ZHAtPmxkX2xvY2sgaW4gdGhlIGNoaWxkJ3MgcG9zdC1mb3JrCisjIGhhbmRsZXIuCit7ICAKKyAgIFNvbGFyaXM6cG9zdGZvcmtfY2hpbGRfbXV0ZXhfcmVpbml0CisgICBkcmQ6TXV0ZXhFcnIKKyAgIGZ1bjptdXRleF9pbml0CisgICBmdW46cG9zdGZvcmsxX2NoaWxkCisgICBmdW46Zm9ya3gKK30KKwpkaWZmIC0tZ2l0IGEvc29sYXJpczEyLnN1cHAgYi9zb2xhcmlzMTIuc3VwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzY4NTA4Ci0tLSAvZGV2L251bGwKKysrIGIvc29sYXJpczEyLnN1cHAKQEAgLTAsMCArMSwxNjggQEAKKyMgVGhpcyBpcyBhIHJlYWwgcHJvYmxlbSBpbiB0aGUgU29sYXJpcyBsaWJjLiBJdCBpcyBjYXVzZWQgYnkgYSByZWFkIHBhc3QgdGhlCisjIEZJTEUgc3RydWN0dXJlLiBJdCdzIGFuIGludGVudGlvbmFsIGhhY2sgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHR3byBmaWxlCisjIHN0cnVjdHVyZXMsIEZJTEUgYW5kIHhGSUxFLgoreworICAgU29sYXJpczpzcHJpbnRmCisgICBNZW1jaGVjazpDb25kCisgICBmdW46Z2V0eGZkYXQKKyAgIGZ1bjpfc2V0X21lbXN0cmVhbQorICAgZnVuOnNwcmludGYKK30KKworIyBUaGUgc2FtZSBwcm9ibGVtIGFzIGFib3ZlLgoreworICAgU29sYXJpczpzbnByaW50ZgorICAgTWVtY2hlY2s6Q29uZAorICAgZnVuOmdldHhmZGF0CisgICBmdW46X3NldF9tZW1zdHJlYW0KKyAgIGZ1bjpzbnByaW50ZgorfQorCisjIFRoZSBzYW1lIHByb2JsZW0gYXMgYWJvdmUuCit7CisgICBTb2xhcmlzOnNucHJpbnRmCisgICBNZW1jaGVjazpDb25kCisgICBmdW46Z2V0eGZkYXQKKyAgIGZ1bjpfcmVhbGJ1ZmVuZAorICAgZnVuOl9uZG9wcm50CisgICBmdW46c25wcmludGYKK30KKworIyBUaGUgc2FtZSBwcm9ibGVtIGFzIGFib3ZlLgoreworICAgU29sYXJpczp2c25wcmludGYKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIGZ1bjpnZXR4ZmRhdAorICAgZnVuOl9zZXRfbWVtc3RyZWFtCisgICBmdW46dnNucHJpbnRmCit9CisKKyMgVGhlIHNhbWUgcHJvYmxlbSBhcyBhYm92ZS4KK3sKKyAgIFNvbGFyaXM6dnNucHJpbnRmCisgICBNZW1jaGVjazpDb25kCisgICBmdW46Z2V0eGZkYXQKKyAgIGZ1bjpfcmVhbGJ1ZmVuZAorICAgZnVuOl9uZG9wcm50CisgICBmdW46dnNucHJpbnRmCit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIworIyBTb2xhcmlzIGxpYmMgZG9lc24ndCBkZWFsbG9jYXRlIEkvTyBidWZmZXJzIG9uIHByb2dyYW0gZXhpdC4KK3sKKyAgIFNvbGFyaXM6ZmlsZV9idWZmZXJfbWFsbG9jCisgICBNZW1jaGVjazpMZWFrCisgICBmdW46bWFsbG9jCisgICBmdW46X2ZpbmRidWYKKyAgIG9iajovbGliL2xpYmMuc28uMQorICAgb2JqOi9saWIvbGliYy5zby4xCit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIworIyBTb2xhcmlzIGxpYmMgZG9lc24ndCBkZWFsbG9jYXRlIG5ldGNvbmZpZyBsaXN0IHBvaW50ZWQgdG8gYnkgbmV0cHAuIAorIyBUaGlzIGluY2x1ZGVzIG90aGVyIGFsbG9jYXRlZCBzdHJ1Y3R1cmVzIGFuZCBzdHJpbmdzIGNvbnRhaW5lZCB0aGVyZS4KK3sKKyAgIFNvbGFyaXM6c2V0bmV0Y29uZmlnLWZnZXRuZXRjb25maWcKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IHJlYWNoYWJsZQorICAgZnVuOmNhbGxvYworICAgZnVuOmZnZXRuZXRjb25maWcKKyAgIGZ1bjpnZXRuZXRsaXN0CisgICBmdW46c2V0bmV0Y29uZmlnCit9CisKKyMgVGhlIHNhbWUgcHJvYmxlbSBhcyBhYm92ZS4KK3sKKyAgIFNvbGFyaXM6c2V0bmV0Y29uZmlnLWZnZXRuZXRjb25maWctZ2V0bG9va3Vwcy1zdHJkdXAKKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IHJlYWNoYWJsZQorICAgZnVuOm1hbGxvYworICAgZnVuOnN0cmR1cAorICAgZnVuOmdldGxvb2t1cHMKKyAgIGZ1bjpmZ2V0bmV0Y29uZmlnCisgICBmdW46Z2V0bmV0bGlzdAorICAgZnVuOnNldG5ldGNvbmZpZworfQorCisjIFRoZSBzYW1lIHByb2JsZW0gYXMgYWJvdmUuCit7CisgICBTb2xhcmlzOnNldG5ldGNvbmZpZy1mZ2V0bmV0Y29uZmlnLWdldGxvb2t1cHMtbWFsbG9jCisgICBNZW1jaGVjazpMZWFrCisgICBtYXRjaC1sZWFrLWtpbmRzOiByZWFjaGFibGUKKyAgIGZ1bjptYWxsb2MKKyAgIGZ1bjpnZXRsb29rdXBzCisgICBmdW46ZmdldG5ldGNvbmZpZworICAgZnVuOmdldG5ldGxpc3QKKyAgIGZ1bjpzZXRuZXRjb25maWcKK30KKworIyBUaGUgc2FtZSBwcm9ibGVtIGFzIGFib3ZlLgoreworICAgU29sYXJpczpzZXRuZXRjb25maWctZmdldG5ldGNvbmZpZy1nZXR0b2tlbgorICAgTWVtY2hlY2s6TGVhaworICAgbWF0Y2gtbGVhay1raW5kczogcmVhY2hhYmxlCisgICBmdW46bWFsbG9jCisgICBmdW46c3RyZHVwCisgICBmdW46Z2V0dG9rZW4KKyAgIGZ1bjpmZ2V0bmV0Y29uZmlnCisgICBmdW46Z2V0bmV0bGlzdAorICAgZnVuOnNldG5ldGNvbmZpZworfQorCisjIFRoZSBzYW1lIHByb2JsZW0gYXMgYWJvdmUuCit7CisgICBTb2xhcmlzOnNldG5ldGNvbmZpZy1nZXRuZXRsaXN0CisgICBNZW1jaGVjazpMZWFrCisgICBtYXRjaC1sZWFrLWtpbmRzOiByZWFjaGFibGUKKyAgIGZ1bjptYWxsb2MKKyAgIGZ1bjpnZXRuZXRsaXN0CisgICBmdW46c2V0bmV0Y29uZmlnCit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIworIyBTb2xhcmlzIGxpYmMgZG9lc24ndCBkZWFsbG9jYXRlIHN0YXRpYyBzdHJpbmdzIG5ldGlkX3RjcF9tYWluCisjIGFuZCBuZXRpZF90Y3BfdWRwIGFsbG9jYXRlZCBpbiBfX3JwY19nZXRjb25maXAuCit7CisgICBTb2xhcmlzOl9fcnBjX2dldGNvbmZpcC1uZXRpZF90Y3ArdWRwX21haW4KKyAgIE1lbWNoZWNrOkxlYWsKKyAgIG1hdGNoLWxlYWsta2luZHM6IHJlYWNoYWJsZQorICAgZnVuOm1hbGxvYworICAgZnVuOnN0cmR1cAorICAgZnVuOl9fcnBjX2dldGNvbmZpcAorfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMKKyMgU29sYXJpcyBsaWJjIGRvZXNuJ3QgZGVhbGxvY2F0ZSBnbG9iYWwgdmFyaWFibGUgZ2xvYmFsX2d0LgoreworICAgU29sYXJpczpkZ2V0dGV4dAorICAgTWVtY2hlY2s6TGVhaworICAgbWF0Y2gtbGVhay1raW5kczogcmVhY2hhYmxlCisgICBmdW46Y2FsbG9jCisgICBmdW46ZGdldHRleHQKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCisjIFNvbGFyaXMgbGliYyByZWluaXRpYWxpemVzIG11dGV4IHVkcC0+bGRfbG9jayBpbiB0aGUgY2hpbGQncyBwb3N0LWZvcmsKKyMgaGFuZGxlci4KK3sKKyAgIFNvbGFyaXM6cG9zdGZvcmtfY2hpbGRfbXV0ZXhfcmVpbml0CisgICBkcmQ6TXV0ZXhFcnIKKyAgIGZ1bjptdXRleF9pbml0CisgICBmdW46cG9zdGZvcmsxX2NoaWxkCisgICBmdW46Zm9ya3gKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jCisjIFNvbGFyaXMgbGliYyBpbXBsZW1lbnRzIHB0aHJlYWQgYmFycmllciB3aXRoIGEgbXV0ZXggYW5kIGEgY29uZGl0aW9uCisjIHZhcmlhYmxlLiBJbiBwdGhyZWFkX2JhcnJpZXJfd2FpdCgpLCB0aGUgbGFzdCB0aHJlYWQgcmV0dXJuaW5nIHdpdGgKKyMgU0VSSUFMX1RIUkVBRCBmaXJzdCB1bmxvY2tzIHRoZSBtdXRleCBhbmQgdGhlbiBicm9hZGNhc3RzIHRoZSBjb25kaXRpb24KKyMgdmFyaWFibGUuIFRoaXMgaXMgb2sgaGVyZSBiZWNhdXNlIHRoYXQgbXV0ZXggZG9lcyBub3QgaGF2ZSBhbnkgcHJpb3JpdGllcworIyBhc3NvY2lhdGVkLCB0aGVyZWZvcmUgbm8gdW5wcmVkaWNhdGJsZSBzY2hlZHVsaW5nIGJlaGF2aW91ciBjYW4gb2NjdXJyLgoreworICAgU29sYXJpczpwdGhyZWFkX2JhcnJpZXJfd2FpdAorICAgSGVsZ3JpbmQ6TWlzYworICAgZnVuOnB0aHJlYWRfY29uZF9icm9hZGNhc3RfV1JLCisgICBmdW46Y29uZF9icm9hZGNhc3QKKyAgIGZ1bjpwdGhyZWFkX2JhcnJpZXJfd2FpdAorfQorCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBiL3Rlc3RzL01ha2VmaWxlLmFtCmluZGV4IGIwMWNmYjcuLjljMGNjM2EgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL3Rlc3RzL01ha2VmaWxlLmFtCkBAIC0xLDEzICsxLDMwIEBACiAKIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS50b29sLXRlc3RzLmFtCiAKK2lmIEhBU19JU0FfMl8wNQorSVNBXzJfMDVfRkxBRyA9IC1ESEFTX0lTQV8yXzA1CitlbHNlCitJU0FfMl8wNV9GTEFHID0KK2VuZGlmCisKK2lmIEhBU19JU0FfMl8wNgorSVNBXzJfMDZfRkxBRyA9IC1ESEFTX0lTQV8yXzA2CitlbHNlCitJU0FfMl8wNl9GTEFHID0KK2VuZGlmCisKK2lmIEhBU19JU0FfMl8wNworSVNBXzJfMDdfRkxBRyA9IC1ESEFTX0lTQV8yXzA3CitlbHNlCitJU0FfMl8wN19GTEFHID0KK2VuZGlmCisKK21pbl9wb3dlcl9pc2FfRkxBR1MgPSAkKElTQV8yXzA1X0ZMQUcpICAkKElTQV8yXzA2X0ZMQUcpICQoSVNBXzJfMDdfRkxBRykKKwogZGlzdF9ub2luc3RfU0NSSVBUUyA9IFwKIAljaGVja19oZWFkZXJzX2FuZF9pbmNsdWRlcyBcCi0JY2hlY2tfaXNhLTJfMDZfY2FwIFwKLQljaGVja19pc2EtMl8wN19jYXAgXAogCWNoZWNrX21ha2VmaWxlX2NvbnNpc3RlbmN5IFwKLQljaGVja19kZnBfY2FwIFwKLQljaGVja192bXhfY2FwIFwKKwljaGVja19wcGM2NF9hdXh2X2NhcCBcCiAJZmlsdGVyX2FkZHJlc3NlcyBcCiAJZmlsdGVyX2Rpc2NhcmRzIFwKIAlmaWx0ZXJfbGliYyBcCkBAIC0zMiw3ICs0OSw4IEBACiAJczM5MHhfZmVhdHVyZXMgXAogCW1pcHNfZmVhdHVyZXMgXAogCXBvd2VyX2luc25fYXZhaWxhYmxlIFwKLQlpc19wcGM2NF9CRQorCWlzX3BwYzY0X0JFIFwKKwltaW5fcG93ZXJfaXNhCiAKIEFNX0NGTEFHUyAgICs9ICQoQU1fRkxBR19NMzI2NF9QUkkpCiBBTV9DWFhGTEFHUyArPSAkKEFNX0ZMQUdfTTMyNjRfUFJJKQpAQCAtNDMsMyArNjEsNCBAQAogeDg2X2FtZDY0X2ZlYXR1cmVzX0NGTEFHUyA9ICQoQU1fQ0ZMQUdTKQogZW5kaWYKIAorbWluX3Bvd2VyX2lzYV9DRkxBR1MgPSAkKG1pbl9wb3dlcl9pc2FfRkxBR1MpCmRpZmYgLS1naXQgYS90ZXN0cy9hcmNoX3Rlc3QuYyBiL3Rlc3RzL2FyY2hfdGVzdC5jCmluZGV4IDgxYTEyZWMuLmQ4M2YwZTUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FyY2hfdGVzdC5jCisrKyBiL3Rlc3RzL2FyY2hfdGVzdC5jCkBAIC0zOSwxMCArMzksMTIgQEAKIAogc3RhdGljIEJvb2wgZ28oY2hhciogYXJjaCkKIHsgCi0jaWYgZGVmaW5lZChWR1BfeDg2X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF94ODZfZGFyd2luKQorI2lmIGRlZmluZWQoVkdQX3g4Nl9saW51eCkgfHwgZGVmaW5lZChWR1BfeDg2X2RhcndpbikgXAorICAgfHwgZGVmaW5lZChWR1BfeDg2X3NvbGFyaXMpCiAgICBpZiAoIDAgPT0gc3RyY21wKCBhcmNoLCAieDg2IiAgICkgKSByZXR1cm4gVHJ1ZTsKIAotI2VsaWYgZGVmaW5lZChWR1BfYW1kNjRfbGludXgpIHx8IGRlZmluZWQoVkdQX2FtZDY0X2RhcndpbikKKyNlbGlmIGRlZmluZWQoVkdQX2FtZDY0X2xpbnV4KSB8fCBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pIFwKKyAgIHx8IGRlZmluZWQoVkdQX2FtZDY0X3NvbGFyaXMpCiAjaWYgZGVmaW5lZChWR0FfU0VDX3g4NikKICAgIGlmICggMCA9PSBzdHJjbXAoIGFyY2gsICJ4ODYiICAgKSApIHJldHVybiBUcnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja19kZnBfY2FwIGIvdGVzdHMvY2hlY2tfZGZwX2NhcApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZDliYzI3My4uMDAwMDAwMAotLS0gYS90ZXN0cy9jaGVja19kZnBfY2FwCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotIyEvYmluL3NoCi0KLSMgV2UgdXNlIHRoaXMgc2NyaXB0IHRvIGNoZWNrIHdoZXRoZXIgb3Igbm90IHRoZSBwcm9jZXNzb3Igc3VwcG9ydHMgRGVjaW1hbCBGbG9hdGluZyBQb2ludCAoREZQKS4KLQotTERfU0hPV19BVVhWPTEgL2Jpbi90cnVlIHwgZ3JlcCAgZGZwID4gL2Rldi9udWxsIDI+JjEKLWlmIFsgIiQ/IiAtbmUgIjAiIF07IHRoZW4KLSAgICAgICAgZXhpdCAxCi1lbHNlCi0gICAgICAgIGV4aXQgMAotZmkKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrX2hlYWRlcnNfYW5kX2luY2x1ZGVzIGIvdGVzdHMvY2hlY2tfaGVhZGVyc19hbmRfaW5jbHVkZXMKaW5kZXggM2M1MzM4Ni4uNDc0OTFiMiAxMDA3NTUKLS0tIGEvdGVzdHMvY2hlY2tfaGVhZGVyc19hbmRfaW5jbHVkZXMKKysrIGIvdGVzdHMvY2hlY2tfaGVhZGVyc19hbmRfaW5jbHVkZXMKQEAgLTE0LDYgKzE0LDEwIEBACiAjICg3KSBpbmNsdWRlLyouaCBhbmQgdG9vbCAqLltjaF0gbXVzdCBub3QgdXNlIHZnX2Fzc2VydAogIyAoOCkgY29yZWdyaW5kLyAqLltjaF0gbXVzdCBub3QgdXNlIFZHXyh0b29sX3BhbmljKQogIyAoOSkgaW5jbHVkZS8qLmggYW5kIHRvb2wgKi5bY2hdIG11c3Qgbm90IHVzZSBWR18oY29yZV9wYW5pYykKKyMgKDEwKSAqLlMgbXVzdCB1bmNvbmRpdGlvbmFsbHkgaW5zdGFudGlhdGUgTUFSS19TVEFDS19OT19FWEVDCisjCisjIFRoZXJlIGNhbiBiZSBmYWxzZSBwb3NpdGl2ZXMgYXMgd2UgZG9uJ3QgcmVhbGx5IHBhcnNlIHRoZSBzb3VyY2UgZmlsZXMuCisjIEluc3RlYWQgd2Ugb25seSBtYXRjaCByZWd1bGFyIGV4cHJlc3Npb25zLgogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogdXNlIHN0cmljdDsKQEAgLTY2LDcgKzcwLDggQEAKICAgICAicGVyZiIgPT4gMSwKICAgICAidGVzdHMiID0+IDEsCiAgICAgImdkYnNlcnZlcl90ZXN0cyIgPT4gMSwKLSAgICAibXBpIiA9PiAxCisgICAgIm1waSIgPT4gMSwKKyAgICAic29sYXJpcyIgPT4gMQogICAgICk7CiAKIG15ICV0b29sX2V4cG9ydF9oZWFkZXIgPSAoCkBAIC0xNDMsOCArMTQ4LDggQEAKICAgICAgICAgICAgIG5leHQ7CiAgICAgICAgIH0KIAotIyBSZWd1bGFyIGZpbGVzOyBvbmx5IGludGVyZXN0ZWQgaW4gKi5jIGFuZCAqLmgKLSAgICAgICAgbmV4dCBpZiAoISAoJGZpbGUgPX4gL1wuW2NoXSQvKSk7CisjIFJlZ3VsYXIgZmlsZXM7IG9ubHkgaW50ZXJlc3RlZCBpbiAqLmMsICouUyBhbmQgKi5oCisgICAgICAgIG5leHQgaWYgKCEgKCRmaWxlID1+IC9cLltjU2hdJC8pKTsKICAgICAgICAgbXkgJHBhdGhfbmFtZSA9IGRlZmluZWQgJHBhdGggPyAiJHBhdGgvJGZpbGUiIDogJGZpbGU7CiAgICAgICAgIHByb2Nlc3NfZmlsZSgkcGF0aF9uYW1lKTsKICAgICB9CkBAIC0zMDUsNiArMzEwLDM2IEBACiAgICAgfQogfQogCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIGFuIGFzc2VtYmxlciBmaWxlCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdWIgY2hlY2tfYXNzZW1ibGVyX2ZpbGUgeworICAgIG15ICgkcGF0aF9uYW1lKSA9IEBfOworICAgIG15ICRmaWxlID0gYmFzZW5hbWUoJHBhdGhfbmFtZSk7CisgICAgbXkgJGZvdW5kID0gMDsKKworICAgIG9wZW4oRklMRSwgIjwkZmlsZSIpIHx8IGRpZSAiQ2Fubm90IG9wZW4gZmlsZSAnJGZpbGUnIjsKKworICAgIHdoaWxlIChteSAkbGluZSA9IDxGSUxFPikgeworICAgICAgICBpZiAoJGxpbmUgPX4gL15ccypNQVJLX1NUQUNLX05PX0VYRUMvKSB7CisgICAgICAgICAgICAkZm91bmQgPSAxOworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoJGZvdW5kID09IDApIHsKKyAgICAgICAgZXJyb3IoIkZpbGUgJHBhdGhfbmFtZSBkb2VzIG5vdCBpbnN0YW50aWF0ZSBNQVJLX1NUQUNLX05PX0VYRUNcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHdoaWxlIChteSAkbGluZSA9IDxGSUxFPikgeworICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9eXHMqI1xzKmVuZGlmLykgeworICAgICAgICAgICAgICAgIGVycm9yKCJGaWxlICRwYXRoX25hbWUgaW5zdGFudGlhdGVzIE1BUktfU1RBQ0tfTk9fRVhFQyIKKyAgICAgICAgICAgICAgICAgICAgICAuICIgdW5kZXIgYSBjb25kaXRpb25cbiIpOworICAgICAgICAgICAgICAgIGxhc3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgY2xvc2UgRklMRTsKK30KKwogc3ViIHByb2Nlc3NfZmlsZSB7CiAgICAgbXkgKCRwYXRoX25hbWUpID0gQF87CiAKQEAgLTMxNyw2ICszNTIsMTAgQEAKICAgICB9IGVsc2lmIChpc190b29sX2ZpbGUoJHBhdGhfbmFtZSkpIHsKICAgICAgICAgY2hlY2tfdG9vbF9maWxlKCRwYXRoX25hbWUpOwogICAgIH0KKworICAgIGlmICgkcGF0aF9uYW1lID1+IC9cLlMkLykgeworICAgICAgICBjaGVja19hc3NlbWJsZXJfZmlsZSgkcGF0aF9uYW1lKTsKKyAgICB9CiB9CiAKIHN1YiBlcnJvciB7CmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja19pc2EtMl8wNl9jYXAgYi90ZXN0cy9jaGVja19pc2EtMl8wNl9jYXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGI4ZWMzN2YuLjAwMDAwMDAKLS0tIGEvdGVzdHMvY2hlY2tfaXNhLTJfMDZfY2FwCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotIyEvYmluL3NoCi0KLSMgV2UgdXNlIHRoaXMgc2NyaXB0IHRvIGNoZWNrIHdoZXRoZXIgb3Igbm90IHRoZSBwcm9jZXNzb3Igc3VwcG9ydHMgUG93ZXIgSVNBIDIuMDYgb3IgbGF0ZXIuCi1ESVI9IiQoIGNkICIkKCBkaXJuYW1lICIkMCIgKSIgJiYgcHdkICkiCi1MRF9TSE9XX0FVWFY9MSAkRElSL3RydWUgfCBncmVwICBhcmNoXzJfMDYgPiAvZGV2L251bGwgMj4mMQotCi1pZiBbICIkPyIgLW5lICIwIiBdOyB0aGVuCi0JZXhpdCAxCi1lbHNlCi0JZXhpdCAwCi1maQotCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja19pc2EtMl8wN19jYXAgYi90ZXN0cy9jaGVja19pc2EtMl8wN19jYXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDhiOTkxZTUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvY2hlY2tfaXNhLTJfMDdfY2FwCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotIyEvYmluL3NoCi0KLSMgV2UgdXNlIHRoaXMgc2NyaXB0IHRvIGNoZWNrIHdoZXRoZXIgb3Igbm90IHRoZSBwcm9jZXNzb3Igc3VwcG9ydHMKLSMgUG93ZXIgSVNBIDIuMDcuCi1ESVI9IiQoIGNkICIkKCBkaXJuYW1lICIkMCIgKSIgJiYgcHdkICkiCi1MRF9TSE9XX0FVWFY9MSAkRElSL3RydWUgfCBncmVwICBhcmNoXzJfMDcgPiAvZGV2L251bGwgMj4mMQotCi1pZiBbICIkPyIgLW5lICIwIiBdOyB0aGVuCi0JZXhpdCAxCi1lbHNlCi0JZXhpdCAwCi1maQpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAgYi90ZXN0cy9jaGVja19wcGM2NF9hdXh2X2NhcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OWQ3ODU2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvY2hlY2tfcHBjNjRfYXV4dl9jYXAKQEAgLTAsMCArMSw0NCBAQAorIyEvYmluL3NoCisKKyMgQ2hlY2sgaWYgdGhlIHBhc3NlZCBpbiAoQ0FQQUJJTElUWV9XT1JEKSBtYXRjaGVzIGEgdmFsdWUgZm91bmQgaW4gdGhlCisjIGN1cnJlbnQgaHdjYXAgYXV4IHZlY3Rvci4KKworIyByZXR1cm4gJzAnIHRvIGluZGljYXRlIHRoZSBjYXBhYmlsaXR5IHdhcyBmb3VuZC4KKyMgcmV0dXJuICcxJyBmb3Igbm90IGZvdW5kLCBvciBhbnkgb3RoZXIgZXJyb3IgY29uZGl0aW9uLgorCitDQVBBQklMSVRZX1dPUkQ9JDEKKworIyBTQU5JVFkgQ0hFQ0sgQmVnaW46CisjIFRoZXNlIGFyZSBwb3RlbnRpYWwgaHdjYXAgdmFsdWVzIGFzIGZvdW5kIGluIHRoZSBnbGliYyBkbC1wcm9jaW5mby5jCisjIHNvdXJjZXMgYXMgb2YgSnVseSAyMDE1LgorUF9IV0NBUF8xPSIgdnN4IGFyY2hfMl8wNiBwb3dlcjZ4IGRmcCBwYTZ0IGFyY2hfMl8wNSBpY19zbm9vcCBzbXQgYm9va2UiCitQX0hXQ0FQXzI9IiBjZWxsYmUgcG93ZXI1KyBwb3dlcjUgcG93ZXI0IG5vdGIgZWZwZG91YmxlIGVmcHNpbmdsZSBzcGUiCitQX0hXQ0FQXzM9IiB1Y2FjaGUgNHh4bWFjIG1tdSBmcHUgYWx0aXZlYyBwcGM2MDEgcHBjNjQgcHBjMzIgIgorUF9IV0NBUDJfMT0iIHRhciBpc2VsIGViYiBkc2NyIGh0bSBhcmNoXzJfMDcgIgorQ0FQQUJJTElUWV9GT1VORD0ibm8iCitmb3IgUE9URU5USUFMX0NBUCBpbiAkUF9IV0NBUF8xICRQX0hXQ0FQXzIgJFBfSFdDQVBfMyAkUF9IV0NBUDJfMSA7IGRvCisJaWYgWyAieCRDQVBBQklMSVRZX1dPUkQiID0gIngkUE9URU5USUFMX0NBUCIgXTsgdGhlbgorCQlDQVBBQklMSVRZX0ZPVU5EPSJ5ZXMiCisJCWJyZWFrCisJZmkKK2RvbmUKK2lmIFsgeCRDQVBBQklMSVRZX0ZPVU5EID0gInhubyIgXTsgdGhlbgorCWVjaG8gIldhcm5pbmc6IGRpZCBub3QgZmluZCAkQ0FQQUJJTElUWV9XT1JEIGluIHRoZSBwb3RlbnRpYWwgY2FwYWJpbGl0aWVzIGxpc3QuIgorCWVjaG8gIiAgICAgICAgIExEX1NIT1dfQVVYVj0xIC9iaW4vdHJ1ZSB8IGdyZXAgXkFUX0hXQ0FQICIKKwllY2hvICIgICAgICAgICBEb3VibGUtY2hlY2sgdGhhdCB0aGUgaW5wdXQgdmFsdWUgWyRDQVBBQklMSVRZX1dPUkRdIGlzIHZhbGlkLiIKK2ZpCisjIFNBTklUWSBDSEVDSyBFbmQKKworIyBDYXBhYmlsaXR5IENoZWNrIEJlZ2luOgorTERfU0hPV19BVVhWPTEgL2Jpbi90cnVlIHwgZ3JlcCBeQVRfSFdDQVAgfCBncmVwIC13ICRDQVBBQklMSVRZX1dPUkQgMj4mMSA+IC9kZXYvbnVsbAoraWYgWyAiJD8iIC1lcSAiMCIgXTsgdGhlbgorCSNlY2hvICJmb3VuZCB0aGUgY2FwYWJpbGl0eSIKKwlleGl0IDAKK2VsaWYgWyAiJD8iIC1lcSAiMiIgXTsgdGhlbgorCSMgZWNobyAiZ3JlcCBmYWlsdXJlIgorCWV4aXQgMQorZWxzZQorCSNlY2hvICJkaWQgbm90IGZpbmQgdGhlIGNhcGFiaWxpdHkiCisJZXhpdCAxCitmaQorCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja192bXhfY2FwIGIvdGVzdHMvY2hlY2tfdm14X2NhcApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMTJlNWY2OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9jaGVja192bXhfY2FwCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotIyEvYmluL3NoCi0KLSMgV2UgdXNlIHRoaXMgc2NyaXB0IHRvIGNoZWNrIHdoZXRoZXIgb3Igbm90IHRoZSBwcm9jZXNzb3Igc3VwcG9ydHMgVk1YIChha2EgIkFsdGl2ZWMiKS4KLQotTERfU0hPV19BVVhWPTEgL2Jpbi90cnVlIHwgZ3JlcCBhbHRpdmVjID4gL2Rldi9udWxsIDI+JjEKLWlmIFsgIiQ/IiAtbmUgIjAiIF07IHRoZW4KLQlleGl0IDEKLWVsc2UKLQlleGl0IDAKLWZpCi0KZGlmZiAtLWdpdCBhL3Rlc3RzL2ZpbHRlcl9saWJjIGIvdGVzdHMvZmlsdGVyX2xpYmMKaW5kZXggZGQzMGVmMS4uOWE1MDhiMCAxMDA3NTUKLS0tIGEvdGVzdHMvZmlsdGVyX2xpYmMKKysrIGIvdGVzdHMvZmlsdGVyX2xpYmMKQEAgLTksMTEgKzksOSBAQAogICAgIHMvIF9fR0lfX18vIF9fLzsKICAgICBzLyBfXyhbYS16XSopX25vY2FuY2VsIC8gJDEgLzsKIAotICAgICMgImxpYltTfHNdeXN0ZW0qIiBvY2N1cnMgb24gRGFyd2luLgotICAgIHMvXChpbiBcLy4qKGxpYmN8bGliU3lzdGVtKS4qXCkkLyhpbiBcLy4uLmxpYmMuLi4pLzsKLSAgICBzL1wod2l0aGluIFwvLioobGliY3xsaWJTeXN0ZW0pLipcKSQvKHdpdGhpbiBcLy4uLmxpYmMuLi4pLzsKLSAgICBzL1woaW4gXC8uKihsaWJjfGxpYnN5c3RlbSkuKlwpJC8oaW4gXC8uLi5saWJjLi4uKS87Ci0gICAgcy9cKHdpdGhpbiBcLy4qKGxpYmN8bGlic3lzdGVtKS4qXCkkLyh3aXRoaW4gXC8uLi5saWJjLi4uKS87CisgICAgIyAibGliW1N8c115c3RlbSoiIG9jY3VycyBvbiBEYXJ3aW4sICJsaWJzb2NrZXQiIG9uIG9sZGVyIFNvbGFyaXMvaWxsdW1vcy4KKyAgICBzL1woaW4gXC8uKihsaWJjfGxpYlN5c3RlbXxsaWJzeXN0ZW18bGlic29ja2V0KS4qXCkkLyhpbiBcLy4uLmxpYmMuLi4pLzsKKyAgICBzL1wod2l0aGluIFwvLioobGliY3xsaWJTeXN0ZW18bGlic3lzdGVtfGxpYnNvY2tldCkuKlwpJC8od2l0aGluIFwvLi4ubGliYy4uLikvOwogCiAgICAgIyBGaWx0ZXIgb3V0IGR5bmFtaWMgbG9hZGVyCiAgICAgcy8gXChpbiBcLy4qbGQtLipzb1wpJC8vOwpAQCAtMzgsNiArMzYsOSBAQAogICAgIHMvKGF0LiopX19idWlsdGluX3ZlY19kZWxldGUvJDEuLi5vcGVyYXRvciBkZWxldGVbXS4uLi87CiAgICAgcy8oYXQuKilvcGVyYXRvciBkZWxldGVcW1xdXCh2b2lkXCpcKS8kMS4uLm9wZXJhdG9yIGRlbGV0ZVtdLi4uLzsKIAorICAgICMgU29tZSBnbGliYyB2ZXJzaW9ucyBjb21wbGFpbiBhYm91dCB1bmV4cGVjdGVkIGZ1dGV4IHN5c2NhbGwgZXJyb3JzLgorICAgIHMvVGhlIGZ1dGV4IGZhY2lsaXR5IHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgZXJyb3IgY29kZS4vLzsKKwogICAgIHByaW50OwogfQogCmRpZmYgLS1naXQgYS90ZXN0cy9maWx0ZXJfc3RkZXJyX2Jhc2ljIGIvdGVzdHMvZmlsdGVyX3N0ZGVycl9iYXNpYwppbmRleCBjMjRjZDVlLi40NzJjZDhmIDEwMDc1NQotLS0gYS90ZXN0cy9maWx0ZXJfc3RkZXJyX2Jhc2ljCisrKyBiL3Rlc3RzL2ZpbHRlcl9zdGRlcnJfYmFzaWMKQEAgLTEyLDggKzEyLDkgQEAKICMgUmVtb3ZlID09cGlkPT0gYW5kIC0tcGlkLS0gYW5kICoqcGlkKiogc3RyaW5ncyAKIHBlcmwgLXAgLWUgJ3MvKD09fC0tfFwqXCopWzAtOV17MSw3fVwxIC8vJyB8CiAKLSMgUmVtb3ZlIGFueSAtLXBpZDowOiBzdHJpbmdzIChkZWJ1Z2xvZyBsZXZlbCB6ZXJvIG91dHB1dCkKLXNlZCAiL14tLVswLTldXHsxLDdcfTowOiovZCIgfAorIyBEbyBOT1QgcmVtb3ZlIGRlYnVnIGxldmVsIG91dHB1dCwgaS5lLiBsaW5lcyBiZWdpbm5pbmcgd2l0aCAtLXBpZDoKKyMgRG9pbmcgc28gd291bGQgYWxzbyByZW1vdmUgYXNzZXJ0cyBmcm9tIHRoZSBhZGRyZXNzIHNwYWNlIG1hbmFnZXIKKyMgYW5kIHdlIGFsd2F5cyB0byBzZWUgdGhvc2UuCiAKICMgUmVtb3ZlICJDb21tYW5kOiBsaW5lIi4gIChJZiB3cmFwcGluZyBvY2N1cnMsIGl0IHdvbid0IHJlbW92ZSB0aGUKICMgc3Vic2VxdWVudCBsaW5lcy4uLikKQEAgLTQ3LDkgKzQ4LDEyIEBACiAjIGNvbXBsZXRlIGxpc3Qgb2YgbWVzc2FnZXMgaW4gdGhlIGJhc2ggc291cmNlIGZpbGUgc2lnbGlzdC5jLgogcGVybCAtbiAtZSAncHJpbnQgaWYgIS9eKFNlZ21lbnRhdGlvbiBmYXVsdHxBbGFybSBjbG9ja3xBYm9ydGVkfEJ1cyBlcnJvcikoIFwoY29yZSBkdW1wZWRcKSk/JC8nIHwKIAorIyBTaW1pbGFyIGFzIGFib3ZlLCBidXQgZm9yIGtzaCBvbiBTb2xhcmlzL2lsbHVtb3MuCitwZXJsIC1uIC1lICdwcmludCBpZiAhL14oTWVtb3J5IGZhdWx0fEtpbGxlZCkgJC8nIHwKKwogIyBUcmFuc2xhdGUgaW50ZXJjZXB0ZWQgZ2xpYmMgZnVuY3Rpb25zIGJhY2sgdG8gdGhlaXIgY2Fub25pY2FsIG5hbWUKLXBlcmwgLXAgLWUgInMvOiBtZW1jcHlcQFxAP0dMSUJDX1suMS05XSsgXCh2Z19yZXBsYWNlX3N0cm1lbS5jOi4uLlwpLzogbWVtY3B5IFwodmdfcmVwbGFjZV9zdHJtZW0uYzouLi5cKS8iIHwKLXNlZCAtZSAicy86IFwoX19HSV9cfF9fXHxcKVwobWVtY21wXHxtZW1jcHlcfHN0cmNweVx8c3RybmNweVx8c3RyY2hyXHxzdHJyY2hyXClcKFx8X3NzZTRfMVx8X3NzZTQyXHxfc3NlMl91bmFsaWduZWRcKSAodmdfcmVwbGFjZV9zdHJtZW0uYzovOiBcMiAodmdfcmVwbGFjZV9zdHJtZW0uYzovIiB8CitwZXJsIC1wIC1lICJzLzogbWVtY3B5XEBcQD9HTElCQ19bLjEtOV0rIFwodmdfcmVwbGFjZV9zdHJtZW0uYzouKj9cKS86IG1lbWNweSBcKHZnX3JlcGxhY2Vfc3RybWVtLmM6Li4uXCkvIiB8CitzZWQgLWUgInMvOiBcKF9fR0lfXHxfX1x8XClcKG1lbWNtcFx8bWVtY3B5XHxzdHJjcHlcfHN0cm5jcHlcfHN0cmNoclx8c3RycmNoclwpXChcfF9zc2U0XzFcfF9zc2U0Mlx8X3NzZTJfdW5hbGlnbmVkXHxfc3NlMlwpICh2Z19yZXBsYWNlX3N0cm1lbS5jOi86IFwyICh2Z19yZXBsYWNlX3N0cm1lbS5jOi8iIHwKIAogIyBSZW1vdmUgYW55ICI6IGR1bXBpbmcgY29yZSIgbWVzc2FnZSBhcyB0aGUgdXNlciBtaWdodCBoYXZlIGEKICMgbGltaXQgc2V0IHRoYXQgcHJldmVudHMgdGhlIGNvcmUgZHVtcApkaWZmIC0tZ2l0IGEvdGVzdHMvbWFsbG9jLmggYi90ZXN0cy9tYWxsb2MuaAppbmRleCAwMTc5YjM4Li4xNDY3OTBlIDEwMDY0NAotLS0gYS90ZXN0cy9tYWxsb2MuaAorKysgYi90ZXN0cy9tYWxsb2MuaApAQCAtMTYsMTIgKzE2LDQ0IEBACiAgICB2b2lkKiB4OwogI2lmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIC8vIERhcndpbiBsYWNrcyBtZW1hbGlnbiwgYnV0IGl0cyBtYWxsb2MgaXMgYWx3YXlzIDE2LWFsaWduZWQgYW55d2F5LgotICAgeCA9IG1hbGxvYyhzekIpOworICAgcG9zaXhfbWVtYWxpZ24oKHZvaWQgKiopJngsIDE2LCBzekIpOwogI2Vsc2UKICAgIHggPSBtZW1hbGlnbigxNiwgc3pCKTsKICNlbmRpZgogICAgYXNzZXJ0KHgpOwogICAgYXNzZXJ0KDAgPT0gKCgxNi0xKSAmICh1bnNpZ25lZCBsb25nKXgpKTsKICAgIHJldHVybiB4OwotfSAKK30KKworLy8gQWxsb2NhdGVzIGEgMzItYWxpZ25lZCBibG9jay4gIEFzc2VydHMgaWYgdGhlIGFsbG9jYXRpb24gZmFpbHMuCitfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorc3RhdGljIHZvaWQqIG1lbWFsaWduMzIoc2l6ZV90IHN6QikKK3sKKyAgIHZvaWQqIHg7CisjaWYgZGVmaW5lZChWR09fZGFyd2luKQorICAgLy8gRGFyd2luIGxhY2tzIG1lbWFsaWduCisgICBwb3NpeF9tZW1hbGlnbigodm9pZCAqKikmeCwgMzIsIHN6Qik7CisjZWxzZQorICAgeCA9IG1lbWFsaWduKDMyLCBzekIpOworI2VuZGlmCisgICBhc3NlcnQoeCk7CisgICBhc3NlcnQoMCA9PSAoKDMyLTEpICYgKHVuc2lnbmVkIGxvbmcpeCkpOworICAgcmV0dXJuIHg7Cit9CisKKy8vIEFsbG9jYXRlcyBhIDY0LWFsaWduZWQgYmxvY2suICBBc3NlcnRzIGlmIHRoZSBhbGxvY2F0aW9uIGZhaWxzLgorX19hdHRyaWJ1dGVfXygodW51c2VkKSkKK3N0YXRpYyB2b2lkKiBtZW1hbGlnbjY0KHNpemVfdCBzekIpCit7CisgICB2b2lkKiB4OworI2lmIGRlZmluZWQoVkdPX2RhcndpbikKKyAgIC8vIERhcndpbiBsYWNrcyBtZW1hbGlnbgorICAgcG9zaXhfbWVtYWxpZ24oKHZvaWQgKiopJngsIDY0LCBzekIpOworI2Vsc2UKKyAgIHggPSBtZW1hbGlnbig2NCwgc3pCKTsKKyNlbmRpZgorICAgYXNzZXJ0KHgpOworICAgYXNzZXJ0KDAgPT0gKCg2NC0xKSAmICh1bnNpZ25lZCBsb25nKXgpKTsKKyAgIHJldHVybiB4OworfQogCmRpZmYgLS1naXQgYS90ZXN0cy9taW5fcG93ZXJfaXNhLmMgYi90ZXN0cy9taW5fcG93ZXJfaXNhLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZjZjUyNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL21pbl9wb3dlcl9pc2EuYwpAQCAtMCwwICsxLDY1IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworLyogbWFpbigpICovCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgICAvKiBUaGlzIHByb2dyYW0gaXMgcGFzc2VkIGluIGEgbWluaW11bSBJU0EgdGhhdCB0aGUgdW5kZXJseWluZyBoYXJkd3JlCisgICAgKiBuZWVkcyB0byBzdXBwb3J0LiAgSWYgdGhlIEhXIHN1cHBvcnRzIHRoaXMgSVNBIG9yIG5ld2VyLCByZXR1cm4gMAorICAgICogZm9yIHN1cHBvcnRlZC4gIE90aGVyd2lzZSwgcmV0dXJuIDEgZm9yIG5vdCBzdXBwb3J0ZWQuICBSZXR1cm4gMiBmb3IKKyAgICAqIHVzYWdlIGVycm9yLgorICAgICoKKyAgICAqICBGaXJzdCBhcmd1bWVudCBpcyByZXF1aXJlZCwgaXQgbXVzdCBiZSBhbiBJU0EgdmVyc2lvbiBudW1iZXIuCisgICAgKiAgU2Vjb25kIGFyZ3VtZW50ICItZGVidWciIGlzIG9wdGlvbmFsLiAgSWYgcGFzc2VkLCB0aGVuIHRoZSBkZWZpbmVkIElTQQorICAgICogIHZhbHVlcyBhcmUgcHJpbnRlZC4KKyAgICAqLworICAgY2hhciAqbWluX2lzYTsKKyAgIGludCBpc2FfbGV2ZWwgPSAwOworICAgaW50IGRlYnVnID0gMDsKKworICAgLyogc2V0IHRoZSBpc2FfbGV2ZWwgc2V0IGJ5IHRoZSBNYWtlICovCisKKyAgIGlmICgoYXJnYyA9PSAzKSAmJiAoc3RyY21wKGFyZ3ZbMl0sICItZGVidWciKSA9PSAwKSkgeworICAgICAgZGVidWcgPSAxOworCisgICB9IGVsc2UgaWYgKGFyZ2MgIT0gMikgeworICAgICAgZnByaW50ZihzdGRlcnIsICJ1c2FnZTogbWluX3Bvd2VyX0lTQSA8SVNBPiBbLWRlYnVnXVxuIiApOworICAgICAgZXhpdCgyKTsKKyAgIH0KKworICAgbWluX2lzYSA9IGFyZ3ZbMV07CisKKyNpZmRlZiBIQVNfSVNBXzJfMDUKKyAgIGlmIChkZWJ1ZykgcHJpbnRmKCJIQVNfSVNBXzJfMDUgaXMgc2V0XG4iKTsKKyAgIGlzYV9sZXZlbCA9IDU7CisjZW5kaWYKKworI2lmZGVmIEhBU19JU0FfMl8wNgorICAgaWYgKGRlYnVnKSBwcmludGYoIkhBU19JU0FfMl8wNiBpcyBzZXRcbiIpOworICAgaXNhX2xldmVsID0gNjsKKyNlbmRpZgorCisjaWZkZWYgSEFTX0lTQV8yXzA3CisgICBpZiAoZGVidWcpIHByaW50ZigiSEFTX0lTQV8yXzA3IGlzIHNldFxuIik7CisgICBpc2FfbGV2ZWwgPSA3OworI2VuZGlmCisKKyAgIC8qIHJldHVybiAwIGZvciBzdXBwb3J0ZWQgKHN1Y2Nlc3MpLCAxIGZvciBub3Qgc3VwcG9ydGVkIChmYWlsdXJlKSAqLworICAgaWYgKHN0cmNtcCAobWluX2lzYSwgIjIuMDUiKSA9PSAwKSB7CisgICAgICByZXR1cm4gIShpc2FfbGV2ZWwgPj0gNSk7CisKKyAgIH0gZWxzZSBpZiAoc3RyY21wIChtaW5faXNhLCAiMi4wNiIpID09IDApIHsKKyAgICAgIHJldHVybiAhKGlzYV9sZXZlbCA+PSA2KTsKKworICAgfSBlbHNlIGlmIChzdHJjbXAgKG1pbl9pc2EsICIyLjA3IikgPT0gMCkgeworICAgICAgcmV0dXJuICEoaXNhX2xldmVsID49IDcpOworCisgICB9IGVsc2UgeworICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogaW52YWxpZCBJU0EgdmVyc2lvbi4gIFZhbGlkIHZlcnNpb25zIG51bWJlcnMgYXJlOlxuIiApOworICAgICAgZnByaW50ZihzdGRlcnIsICIgICAgICAgMi4wNSwgMi4wNiwgMi4wN1xuIiApOworICAgICAgZXhpdCgyKTsKKyAgIH0KKworICAgcmV0dXJuIDE7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9vc190ZXN0LmMgYi90ZXN0cy9vc190ZXN0LmMKaW5kZXggYjc1NWUzMC4uZDNjNWE2OSAxMDA2NDQKLS0tIGEvdGVzdHMvb3NfdGVzdC5jCisrKyBiL3Rlc3RzL29zX3Rlc3QuYwpAQCAtMjMsNiArMjMsNyBAQAogY2hhciogYWxsX09TZXNbXSA9IHsKICAgICJsaW51eCIsCiAgICAiZGFyd2luIiwKKyAgICJzb2xhcmlzIiwKICAgIE5VTEwKIH07CiAKQEAgLTYyLDYgKzYzLDkgQEAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKICAgIGlmICggMCA9PSBzdHJjbXAoIE9TLCAiZGFyd2luIiApICkgcmV0dXJuIFRydWU7CiAKKyNlbGlmIGRlZmluZWQoVkdPX3NvbGFyaXMpCisgICBpZiAoIDAgPT0gc3RyY21wKCBPUywgInNvbGFyaXMiICkgKSByZXR1cm4gVHJ1ZTsKKwogI2Vsc2UKICMgIGVycm9yIFVua25vd24gT1MKICNlbmRpZiAgIC8vIFZHT18qCmRpZmYgLS1naXQgYS90ZXN0cy9wbGF0Zm9ybV90ZXN0IGIvdGVzdHMvcGxhdGZvcm1fdGVzdAppbmRleCA0MzI3NWM4Li45NjUzOTIxIDEwMDY0NAotLS0gYS90ZXN0cy9wbGF0Zm9ybV90ZXN0CisrKyBiL3Rlc3RzL3BsYXRmb3JtX3Rlc3QKQEAgLTE1LDYgKzE1LDcgQEAKIGFsbF9wbGF0Zm9ybXM9IiRhbGxfcGxhdGZvcm1zIGFybS1saW51eCIKIGFsbF9wbGF0Zm9ybXM9IiRhbGxfcGxhdGZvcm1zIHMzOTB4LWxpbnV4IG1pcHMzMi1saW51eCBtaXBzNjQtbGludXgiCiBhbGxfcGxhdGZvcm1zPSIkYWxsX3BsYXRmb3JtcyB4ODYtZGFyd2luIGFtZDY0LWRhcndpbiIKK2FsbF9wbGF0Zm9ybXM9IiRhbGxfcGxhdGZvcm1zIHg4Ni1zb2xhcmlzIGFtZDY0LXNvbGFyaXMiCiAKIGlmIFsgJCMgLW5lIDIgXSA7IHRoZW4KICAgICBlY2hvICJ1c2FnZTogcGxhdGZvcm1fdGVzdCA8YXJjaC10eXBlPiA8T1MtdHlwZT4iCmRpZmYgLS1naXQgYS90ZXN0cy92Z19yZWd0ZXN0LmluIGIvdGVzdHMvdmdfcmVndGVzdC5pbgppbmRleCBjOGUxZDJiLi5hNDQxZjQyIDEwMDc1NQotLS0gYS90ZXN0cy92Z19yZWd0ZXN0LmluCisrKyBiL3Rlc3RzL3ZnX3JlZ3Rlc3QuaW4KQEAgLTYsNyArNiw3IEBACiAjICBUaGlzIGZpbGUgaXMgcGFydCBvZiBWYWxncmluZCwgYSBkeW5hbWljIGJpbmFyeSBpbnN0cnVtZW50YXRpb24KICMgIGZyYW1ld29yay4KICMKLSMgIENvcHlyaWdodCAoQykgMjAwMy0yMDEzIE5pY2hvbGFzIE5ldGhlcmNvdGUKKyMgIENvcHlyaWdodCAoQykgMjAwMy0yMDE1IE5pY2hvbGFzIE5ldGhlcmNvdGUKICMgICAgIG5qbkB2YWxncmluZC5vcmcKICMKICMgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTcxLDYgKzcxLDcgQEAKICMgICAtIHN0ZGVycl9maWx0ZXJfYXJnczogPGFyZ3MgZm9yIHN0ZGVycl9maWx0ZXI+ICAoZGVmYXVsdDogYmFzZW5hbWUgb2YgLnZndGVzdCBmaWxlKQogIwogIyAgIC0gcHJvZ0I6ICA8cHJvZyB0byBydW4gaW4gcGFyYWxsZWwgd2l0aCBwcm9nPiAgIChkZWZhdWx0OiBub25lKQorIyAgIC0gZW52QjogPGVudmlyb25tZW50IHZhcmlhYmxlIGZvciBwcm9nQj4gICAgICAgIChkZWZhdWx0OiBub25lKQogIyAgIC0gYXJnc0I6ICA8YXJncyBmb3IgcHJvZ0I+ICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiBub25lKQogIyAgIC0gc3RkaW5COiA8aW5wdXQgZmlsZSBmb3IgcHJvZ0I+ICAgICAgICAgICAgICAgIChkZWZhdWx0OiBub25lKQogIyAgIC0gc3Rkb3V0Ql9maWx0ZXI6IDxmaWx0ZXIgcHJvZ0Igc3Rkb3V0IHRocm91Z2g+IChkZWZhdWx0OiBub25lKQpAQCAtOTEsNiArOTIsNyBAQAogIwogIyBUaGVyZSBjYW4gYmUgbW9yZSB0aGFuIG9uZSBlbnY6IGRlY2xhcmF0aW9uLiBIZXJlIGlzIGFuIGV4YW1wbGU6CiAjICAgZW52OiBQQVRIPS9vcHQvYmluOiRQQVRICisjIExpa2V3aXNlIGZvciBlbnZCLgogIwogIyBFeHBlY3RlZCBzdGRvdXQgKGZpbHRlcmVkKSBpcyBrZXB0IGluIDx0ZXN0Pi5zdGRvdXQuZXhwKiAoY2FuIGJlIG1vcmUKICMgdGhhbiBvbmUgZXhwZWN0ZWQgb3V0cHV0KS4gIEl0IGNhbiBiZSBtaXNzaW5nIGlmIGl0IHdvdWxkIGJlIGVtcHR5LiAgRXhwZWN0ZWQKQEAgLTE2Miw2ICsxNjQsNyBAQAogbXkgJHBvc3Q7ICAgICAgICAgICAgICAgIyBjaGVjayBjb21tYW5kIGFmdGVyIHJ1bm5pbmcgdGVzdAogbXkgJGNsZWFudXA7ICAgICAgICAgICAgIyBjbGVhbnVwIGNvbW1hbmQgdG8gcnVuCiBteSBAZW52ID0gKCk7ICAgICAgICAgICAjIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHNldCBwcmlvciBjYWxsaW5nICRwcm9nCitteSBAZW52QiA9ICgpOyAgICAgICAgICAjIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHNldCBwcmlvciBjYWxsaW5nICRwcm9nQgogCiBteSBAZmFpbHVyZXM7ICAgICAgICAgICAjIExpc3Qgb2YgZmFpbGVkIHRlc3RzCiAKQEAgLTMwNiw3ICszMDksNyBAQAogCSAgICBuZXh0OwogCX0gZWxzaWYgKCRsaW5lID1+IC9eXHMqdmdvcHRzOlxzKiguKikkLykgewogICAgICAgICAgICAgbXkgJGFkZHZnb3B0cyA9ICQxOwotICAgICAgICAgICAgJGFkZHZnb3B0cyA9fiBzL1wke1BXRH0vJEVOVntQV0R9L2c7CisgICAgICAgICAgICAkYWRkdmdvcHRzID1+IHMvXCRce1BXRFx9LyRFTlZ7UFdEfS9nOwogICAgICAgICAgICAgJHZnb3B0cyA9ICR2Z29wdHMgLiAiICIgLiAkYWRkdmdvcHRzOyAgICMgTmI6IE1ha2Ugc3VyZSB0aGVyZSdzIGEgc3BhY2UhCiAgICAgICAgIH0gZWxzaWYgKCRsaW5lID1+IC9eXHMqcHJvZzpccyooLiopJC8pIHsKICAgICAgICAgICAgICRwcm9nID0gdmFsaWRhdGVfcHJvZ3JhbSgiLiIsICQxLCAwLCAwKTsKQEAgLTM0NCw2ICszNDcsOCBAQAogICAgICAgICAgICAgJGNsZWFudXAgPSAkMTsKICAgICAgICAgfSBlbHNpZiAoJGxpbmUgPX4gL15ccyplbnY6XHMqKC4qKSQvKSB7CiAgICAgICAgICAgICBwdXNoIEBlbnYsJDE7CisgICAgICAgIH0gZWxzaWYgKCRsaW5lID1+IC9eXHMqZW52QjpccyooLiopJC8pIHsKKyAgICAgICAgICAgIHB1c2ggQGVudkIsJDE7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBkaWUgIkJhZCBsaW5lIGluICRmOiAkbGluZVxuIjsKICAgICAgICAgfQpAQCAtNDQzLDcgKzQ0OCw3IEBACiAgICAgcmVhZF92Z3Rlc3RfZmlsZSgkdmd0ZXN0KTsKIAogICAgIGlmIChkZWZpbmVkICRwcmVyZXEpIHsKLSAgICAgICAgbXkgJHByZXJlcV9yZXMgPSBzeXN0ZW0oIiRwcmVyZXEiKTsKKyAgICAgICAgbXkgJHByZXJlcV9yZXMgPSBzeXN0ZW0oIi9iaW4vc2giLCAiLWMiLCAkcHJlcmVxKTsKICAgICAgICAgaWYgKDAgPT0gJHByZXJlcV9yZXMpIHsKICAgICAgICAgICAgICMgRG8gbm90aGluZyAoaWUuIGNvbnRpbnVlIHdpdGggdGhlIHRlc3QpCiAgICAgICAgIH0gZWxzaWYgKDI1NiA9PSAkcHJlcmVxX3JlcykgewpAQCAtNDYwLDYgKzQ2NSwxMSBAQAogCiAKICAgICBpZiAoZGVmaW5lZCAkcHJvZ0IpIHsKKyAgICAgICAgIyBDb2xsZWN0IGVudmlyb25tZW50IHZhcmlhYmxlcywgaWYgYW55LgorICAgICAgICBteSAkZW52QnZhcnMgPSAiIjsKKyAgICAgICAgZm9yZWFjaCBteSAkZSAoQGVudkIpIHsKKyAgICAgICAgICAgJGVudkJ2YXJzID0gIiRlbnZCdmFycyAkZSI7CisgICAgICAgIH0KICAgICAgICAgIyBJZiB0aGVyZSBpcyBhIHByb2dCLCBsZXQncyBzdGFydCBpdCBpbiBiYWNrZ3JvdW5kOgogICAgICAgICBwcmludGYoIiUtMTZzIHZhbGdyaW5kICRleHRyYW9wdHMgJHZnb3B0cyAkcHJvZyAkYXJncyAocHJvZ0I6ICRwcm9nQiAkYXJnc0IpXG4iLAogICAgICAgICAgICAgICAgIiRuYW1lOiIpOwpAQCAtNDY4LDExICs0NzgsMTMgQEAKICAgICAgICAgIyB0byBlLmcuIHJlZGlyZWN0IHN0ZG91dEIgdG8gc3RkZXJyQgogICAgICAgICBpZiAoZGVmaW5lZCAkc3RkaW5CKSB7CiAgICAgICAgICAgICBteXN5c3RlbSgiKHJtIC1mIHByb2dCLmRvbmU7IgotICAgICAgICAgICAgICAgICAgICAgLiAiIDwgJHN0ZGluQiA+ICRuYW1lLnN0ZG91dEIub3V0IDI+ICRuYW1lLnN0ZGVyckIub3V0ICRwcm9nQiAkYXJnc0I7IgorICAgICAgICAgICAgICAgICAgICAgLiAiIDwgJHN0ZGluQiA+ICRuYW1lLnN0ZG91dEIub3V0IDI+ICRuYW1lLnN0ZGVyckIub3V0IgorICAgICAgICAgICAgICAgICAgICAgLiAiICRlbnZCdmFycyAkcHJvZ0IgJGFyZ3NCOyIKICAgICAgICAgICAgICAgICAgICAgIC4gInRvdWNoIHByb2dCLmRvbmUpICYiKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG15c3lzdGVtKCIocm0gLWYgcHJvZ0IuZG9uZTsiCi0gICAgICAgICAgICAgICAgICAgICAuICIgPiAkbmFtZS5zdGRvdXRCLm91dCAyPiAkbmFtZS5zdGRlcnJCLm91dCAkcHJvZ0IgJGFyZ3NCOyIKKyAgICAgICAgICAgICAgICAgICAgIC4gIiA+ICRuYW1lLnN0ZG91dEIub3V0IDI+ICRuYW1lLnN0ZGVyckIub3V0IgorICAgICAgICAgICAgICAgICAgICAgLiAiJGVudkJ2YXJzICRwcm9nQiAkYXJnc0I7IgogICAgICAgICAgICAgICAgICAgICAgLiAidG91Y2ggcHJvZ0IuZG9uZSkgICYiKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Cg==